My Project
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules
soc_init.c
Go to the documentation of this file.
1 #include "soc_common.h"
2 
3 static Result socu_cmd1(Handle memhandle, u32 memsize)
4 {
5  Result ret=0;
6  u32 *cmdbuf = getThreadCommandBuffer();
7 
8  cmdbuf[0] = 0x00010044;
9  cmdbuf[1] = memsize;
10  cmdbuf[2] = 0x20;
11  cmdbuf[4] = 0;
12  cmdbuf[5] = memhandle;
13 
14  if((ret = svcSendSyncRequest(SOCU_handle))!=0)return ret;
15 
16  return cmdbuf[1];
17 }
18 
19 Result SOC_Initialize(u32 *context_addr, u32 context_size)
20 {
21  Result ret=0;
22 
23  ret = svcCreateMemoryBlock(&socMemhandle, (u32)context_addr, context_size, 0, 3);
24  if(ret!=0)return ret;
25 
26  if((ret = srvGetServiceHandle(&SOCU_handle, "soc:U"))!=0)return ret;
27 
28  return socu_cmd1(socMemhandle, context_size);
29 }
30 
32 {
33  Result ret=0;
34  u32 *cmdbuf = getThreadCommandBuffer();
35 
36  cmdbuf[0] = 0x00190000;
37 
38  if((ret = svcSendSyncRequest(SOCU_handle))!=0)return ret;
39 
42 
43  return cmdbuf[1];
44 }
s32 Result
Definition: types.h:42
s32 svcCloseHandle(Handle handle)
Result srvGetServiceHandle(Handle *out, const char *name)
Definition: srv.c:109
u32 Handle
Definition: types.h:41
u32 * getThreadCommandBuffer(void)
Result SOC_Initialize(u32 *context_addr, u32 context_size)
Definition: soc_init.c:19
Result SOC_Shutdown(void)
Definition: soc_init.c:31
uint32_t u32
Definition: types.h:23
Handle socMemhandle
Definition: soc_common.c:6
s32 svcSendSyncRequest(Handle session)
Handle SOCU_handle
Definition: soc_common.c:4
s32 svcCreateMemoryBlock(Handle *memblock, u32 addr, u32 size, MemPerm my_perm, MemPerm other_perm)