CC = arm-none-eabi-gcc
LINK = arm-none-eabi-ld
OBJCOPY = arm-none-eabi-objcopy
-CTRULIB = ../libctru
-CFLAGS += -Wall -std=c99 -march=armv6 -O3 -I"$(CTRULIB)/include" -I$(DEVKITPRO)/libnds/include
+CTRULIB = ../../libctru
+CFLAGS += -Wall -std=c99 -march=armv6 -O3 -I"$(CTRULIB)/include"
LDFLAGS += --script=ccd00.ld -L"$(DEVKITARM)/arm-none-eabi/lib" -L"$(CTRULIB)/lib"
CFILES = $(wildcard source/*.c)
//setup our gsp shared mem section
u8 threadID;
- svc_createEvent(&gspEvent, 0x0);
+ svcCreateEvent(&gspEvent, 0x0);
GSPGPU_RegisterInterruptRelayQueue(NULL, gspEvent, 0x1, &gspSharedMemHandle, &threadID);
- svc_mapMemoryBlock(gspSharedMemHandle, 0x10002000, 0x3, 0x10000000);
+ svcMapMemoryBlock(gspSharedMemHandle, 0x10002000, 0x3, 0x10000000);
//map GSP heap
- svc_controlMemory((u32*)&gspHeap, 0x0, 0x0, 0x2000000, 0x10003, 0x3);
+ svcControlMemory((u32*)&gspHeap, 0x0, 0x0, 0x2000000, 0x10003, 0x3);
//wait until we can write stuff to it
- svc_waitSynchronization1(gspEvent, 0x55bcb0);
+ svcWaitSynchronization1(gspEvent, 0x55bcb0);
//GSP shared mem : 0x2779F000
gxCmdBuf=(u32*)(0x10002000+0x800+threadID*0x200);
GSPGPU_UnregisterInterruptRelayQueue(NULL);
//unmap GSP shared mem
- svc_unmapMemoryBlock(gspSharedMemHandle, 0x10002000);
- svc_closeHandle(gspSharedMemHandle);
- svc_closeHandle(gspEvent);
+ svcUnmapMemoryBlock(gspSharedMemHandle, 0x10002000);
+ svcCloseHandle(gspSharedMemHandle);
+ svcCloseHandle(gspEvent);
gspExit();
//free GSP heap
- svc_controlMemory((u32*)&gspHeap, (u32)gspHeap, 0x0, 0x2000000, MEMOP_FREE, 0x0);
+ svcControlMemory((u32*)&gspHeap, (u32)gspHeap, 0x0, 0x2000000, MEMOP_FREE, 0x0);
}
void swapBuffers()
{
aptWaitStatusEvent();
}
- svc_sleepThread(16666666);
+ svcSleepThread(16666666);
}
hidExit();
gspGpuExit();
aptExit();
- svc_exitProcess();
+ svcExitProcess();
return 0;
}
//setup our gsp shared mem section
u8 threadID;
- svc_createEvent(&gspEvent, 0x0);
+ svcCreateEvent(&gspEvent, 0x0);
GSPGPU_RegisterInterruptRelayQueue(NULL, gspEvent, 0x1, &gspSharedMemHandle, &threadID);
- svc_mapMemoryBlock(gspSharedMemHandle, 0x10002000, 0x3, 0x10000000);
+ svcMapMemoryBlock(gspSharedMemHandle, 0x10002000, 0x3, 0x10000000);
//map GSP heap
- svc_controlMemory((u32*)&gspHeap, 0x0, 0x0, 0x2000000, 0x10003, 0x3);
+ svcControlMemory((u32*)&gspHeap, 0x0, 0x0, 0x2000000, 0x10003, 0x3);
//wait until we can write stuff to it
- svc_waitSynchronization1(gspEvent, 0x55bcb0);
+ svcWaitSynchronization1(gspEvent, 0x55bcb0);
//GSP shared mem : 0x2779F000
gxCmdBuf=(u32*)(0x10002000+0x800+threadID*0x200);
GSPGPU_UnregisterInterruptRelayQueue(NULL);
//unmap GSP shared mem
- svc_unmapMemoryBlock(gspSharedMemHandle, 0x10002000);
- svc_closeHandle(gspSharedMemHandle);
- svc_closeHandle(gspEvent);
+ svcUnmapMemoryBlock(gspSharedMemHandle, 0x10002000);
+ svcCloseHandle(gspSharedMemHandle);
+ svcCloseHandle(gspEvent);
gspExit();
//free GSP heap
- svc_controlMemory((u32*)&gspHeap, (u32)gspHeap, 0x0, 0x2000000, MEMOP_FREE, 0x0);
+ svcControlMemory((u32*)&gspHeap, (u32)gspHeap, 0x0, 0x2000000, MEMOP_FREE, 0x0);
}
void swapBuffers()
{
aptWaitStatusEvent();
}
- svc_sleepThread(16666666);
+ svcSleepThread(16666666);
}
hidExit();
gspGpuExit();
aptExit();
- svc_exitProcess();
+ svcExitProcess();
return 0;
}
//setup our gsp shared mem section
u8 threadID;
- svc_createEvent(&gspEvent, 0x0);
+ svcCreateEvent(&gspEvent, 0x0);
GSPGPU_RegisterInterruptRelayQueue(NULL, gspEvent, 0x1, &gspSharedMemHandle, &threadID);
- svc_mapMemoryBlock(gspSharedMemHandle, 0x10002000, 0x3, 0x10000000);
+ svcMapMemoryBlock(gspSharedMemHandle, 0x10002000, 0x3, 0x10000000);
//map GSP heap
- svc_controlMemory((u32*)&gspHeap, 0x0, 0x0, 0x2000000, 0x10003, 0x3);
+ svcControlMemory((u32*)&gspHeap, 0x0, 0x0, 0x2000000, 0x10003, 0x3);
//wait until we can write stuff to it
- svc_waitSynchronization1(gspEvent, 0x55bcb0);
+ svcWaitSynchronization1(gspEvent, 0x55bcb0);
//GSP shared mem : 0x2779F000
gxCmdBuf=(u32*)(0x10002000+0x800+threadID*0x200);
GSPGPU_UnregisterInterruptRelayQueue(NULL);
//unmap GSP shared mem
- svc_unmapMemoryBlock(gspSharedMemHandle, 0x10002000);
- svc_closeHandle(gspSharedMemHandle);
- svc_closeHandle(gspEvent);
+ svcUnmapMemoryBlock(gspSharedMemHandle, 0x10002000);
+ svcCloseHandle(gspSharedMemHandle);
+ svcCloseHandle(gspEvent);
gspExit();
//free GSP heap
- svc_controlMemory((u32*)&gspHeap, (u32)gspHeap, 0x0, 0x2000000, MEMOP_FREE, 0x0);
+ svcControlMemory((u32*)&gspHeap, (u32)gspHeap, 0x0, 0x2000000, MEMOP_FREE, 0x0);
}
copyBuffer();
u32 regData=PAD|0x01000000;
GSPGPU_WriteHWRegs(NULL, 0x202A04, ®Data, 4);
- svc_sleepThread(1000000000);
+ svcSleepThread(1000000000);
}
else if(status == APP_SUSPENDING)
{
}
}
- svc_closeHandle(fsuHandle);
+ svcCloseHandle(fsuHandle);
hidExit();
gspGpuExit();
aptExit();
- svc_exitProcess();
+ svcExitProcess();
return 0;
}
+/*
+ svc.h _ Syscall wrappers.
+*/
+
#ifndef SVC_H
#define SVC_H
-typedef enum{
- MEMOP_FREE = 1,
- MEMOP_RESERVE = 2,
- MEMOP_COMMIT = 3,
- MEMOP_MAP = 4,
- MEMOP_UNMAP = 5,
- MEMOP_PROTECT = 6,
- MEMOP_REGION_APP = 0x100,
- MEMOP_REGION_SYSTEM = 0x200,
- MEMOP_REGION_BASE = 0x300,
- MEMOP_LINEAR = 0x1000,
-}MEMORY_OPERATION;
-
- u32* getThreadCommandBuffer(void);
-
- Result svc_controlMemory(u32* outaddr, u32 addr0, u32 addr1, u32 size, u32 operation, u32 permissions); //(outaddr is usually the same as the input addr0)
- void svc_exitProcess(void);
- Result svc_createThread(Handle* thread, ThreadFunc entrypoint, u32 arg, u32* stacktop, s32 threadpriority, s32 processorid);
- void svc_exitThread();
- void svc_sleepThread(s64 ns);
- Result svc_createMutex(Handle* mutex, bool initialLocked);
- Result svc_releaseMutex(Handle handle);
- Result svc_createEvent(Handle* event, u8 resettype);
- Result svc_signalEvent(Handle handle);
- Result svc_clearEvent(Handle handle);
- Result svc_createMemoryBlock(Handle* memblock, u32 addr, u32 size, u32 mypermission, u32 otherpermission);
- Result svc_mapMemoryBlock(Handle memblock, u32 addr, u32 mypermissions, u32 otherpermission);
- Result svc_unmapMemoryBlock(Handle memblock, u32 addr);
- Result svc_waitSynchronization1(Handle handle, s64 nanoseconds);
- Result svc_waitSynchronizationN(s32* out, Handle* handles, s32 handlecount, bool waitAll, s64 nanoseconds);
- Result svc_closeHandle(Handle handle);
- u64 svc_getSystemTick();
- Result svc_getSystemInfo(s64* out, u32 type, s32 param);
- Result svc_getProcessInfo(s64* out, Handle process, u32 type);
- Result svc_connectToPort(volatile Handle* out, const char* portName);
- Result svc_sendSyncRequest(Handle session);
- Result svc_getProcessId(u32 *out, Handle handle);
+
+typedef enum {
+ MEMOP_FREE =1, // Free heap
+ MEMOP_ALLOC=3, // Allocate heap
+ MEMOP_MAP =4, // Mirror mapping
+ MEMOP_UNMAP=5, // Mirror unmapping
+ MEMOP_PROT =6, // Change protection
+
+ MEMOP_FREE_LINEAR =0x10001, // Free linear heap
+ MEMOP_ALLOC_LINEAR=0x10003 // Allocate linear heap
+} MemOp;
+
+typedef enum {
+ MEMPERM_READ =1,
+ MEMPERM_WRITE =2,
+ MEMPERM_EXECUTE=4
+} MemPerm;
+
+s32 svcControlMemory(u32* addr_out, u32 addr0, u32 addr1, u32 size, MemOp op, MemPerm perm);
+void svcExitProcess();
+s32 svcCreateThread(Handle* thread, ThreadFunc entrypoint, u32 arg, u32* stack_top, s32 thread_priority, s32 processor_id);
+void svcExitThread();
+void svcSleepThread(s64 ns);
+s32 svcCreateMutex(Handle* mutex, bool initially_locked);
+s32 svcReleaseMutex(Handle handle);
+s32 svcCreateEvent(Handle* event, u8 reset_type);
+s32 svcSignalEvent(Handle handle);
+s32 svcClearEvent(Handle handle);
+s32 svcCreateMemoryBlock(Handle* memblock, u32 addr, u32 size, MemPerm my_perm, MemPerm other_perm);
+s32 svcMapMemoryBlock(Handle memblock, u32 addr, MemPerm my_perm, MemPerm other_perm);
+s32 svcUnmapMemoryBlock(Handle memblock, u32 addr);
+s32 svcWaitSynchronization(Handle handle, s64 nanoseconds);
+s32 svcWaitSynchronizationN(s32* out, Handle* handles, s32 handles_num, bool wait_all, s64 nanoseconds);
+s32 svcCloseHandle(Handle handle);
+u64 svcGetSystemTick();
+s32 svcGetSystemInfo(s64* out, u32 type, s32 param);
+s32 svcGetProcessInfo(s64* out, Handle process, u32 type);
+s32 svcConnectToPort(volatile Handle* out, const char* portName);
+s32 svcSendSyncRequest(Handle session);
+s32 svcGetProcessId(u32 *out, Handle handle);
+
#endif
+/*
+ types.h _ Various system types.
+*/
+
#ifndef TYPES_H
#define TYPES_H
- #include <stdint.h>
- #include <stdbool.h>
- #define U64_MAX UINT64_MAX
+#include <stdint.h>
+#include <stdbool.h>
+
+#define U64_MAX UINT64_MAX
+
+typedef uint8_t u8;
+typedef uint16_t u16;
+typedef uint32_t u32;
+typedef uint64_t u64;
- typedef uint8_t u8;
- typedef uint16_t u16;
- typedef uint32_t u32;
- typedef uint64_t u64;
+typedef int8_t s8;
+typedef int16_t s16;
+typedef int32_t s32;
+typedef int64_t s64;
- typedef int8_t s8;
- typedef int16_t s16;
- typedef int32_t s32;
- typedef int64_t s64;
+typedef volatile u8 vu8;
+typedef volatile u16 vu16;
+typedef volatile u32 vu32;
+typedef volatile u64 vu64;
- typedef volatile u8 vu8;
- typedef volatile u16 vu16;
- typedef volatile u32 vu32;
- typedef volatile u64 vu64;
+typedef volatile s8 vs8;
+typedef volatile s16 vs16;
+typedef volatile s32 vs32;
+typedef volatile s64 vs64;
- typedef volatile s8 vs8;
- typedef volatile s16 vs16;
- typedef volatile s32 vs32;
- typedef volatile s64 vs64;
+typedef u32 Handle;
+typedef s32 Result;
+typedef void (*ThreadFunc)(u32);
- typedef u32 Handle;
- typedef s32 Result;
- typedef void (*ThreadFunc)(u32);
#endif
cmdbuf[0x100>>2] = 0x00800002;
cmdbuf[0x104>>2] = (u32)ptr;
- if((ret = svc_sendSyncRequest(servhandle))!=0)return ret;
+ if((ret = svcSendSyncRequest(servhandle))!=0)return ret;
cmdbuf[0x100>>2] = tmp0;
cmdbuf[0x104>>2] = tmp1;
cmdbuf[2] = 0x00800002;
cmdbuf[3] = (u32)ptr;
- if((ret = svc_sendSyncRequest(servhandle))!=0)return ret;
+ if((ret = svcSendSyncRequest(servhandle))!=0)return ret;
cmdbuf[0x100>>2] = tmp0;
cmdbuf[0x104>>2] = tmp1;
cmdbuf[0] = 0x000D0000;
- if((ret = svc_sendSyncRequest(servhandle))!=0)return ret;
+ if((ret = svcSendSyncRequest(servhandle))!=0)return ret;
*out = cmdbuf[2];
if(ret==0 && outval==1)break;
}
- svc_closeHandle(servhandle);
+ svcCloseHandle(servhandle);
return ret;
}
void aptWaitStatusEvent()
{
- svc_waitSynchronization1(aptStatusEvent, U64_MAX);
- svc_clearEvent(aptStatusEvent);
+ svcWaitSynchronization1(aptStatusEvent, U64_MAX);
+ svcClearEvent(aptStatusEvent);
}
void aptAppletUtility_Exit_RetToApp()
APT_PrepareToJumpToHomeMenu(NULL); //prepare for return to menu
aptCloseSession();
- svc_clearEvent(aptStatusEvent);
+ svcClearEvent(aptStatusEvent);
aptSetStatus(APP_SUSPENDED);
GSPGPU_SaveVramSysArea(NULL);
while(runThread)
{
s32 syncedID=0x0;
- svc_waitSynchronizationN(&syncedID, aptEvents, 2, 0, U64_MAX);
- svc_clearEvent(aptEvents[syncedID]);
+ svcWaitSynchronizationN(&syncedID, aptEvents, 2, 0, U64_MAX);
+ svcClearEvent(aptEvents[syncedID]);
switch(syncedID)
{
break;
}
}
- svc_exitThread();
+ svcExitThread();
}
Result aptInit(NS_APPID appID)
//initialize APT stuff, escape load screen
srv_getServiceHandle(NULL, &aptuHandle, "APT:U");
if((ret=APT_GetLockHandle(&aptuHandle, 0x0, &aptLockHandle)))return ret;
- svc_closeHandle(aptuHandle);
+ svcCloseHandle(aptuHandle);
currentAppId=appID;
if((ret=APT_NotifyToWait(NULL, currentAppId)))return ret;
aptCloseSession();
- svc_createEvent(&aptStatusEvent, 0);
+ svcCreateEvent(&aptStatusEvent, 0);
return 0;
}
APT_CloseApplication(NULL, 0x0, 0x0, 0x0);
aptCloseSession();
- svc_closeHandle(aptStatusMutex);
- // svc_closeHandle(aptLockHandle);
- svc_closeHandle(aptStatusEvent);
+ svcCloseHandle(aptStatusMutex);
+ // svcCloseHandle(aptLockHandle);
+ svcCloseHandle(aptStatusEvent);
}
void aptSetupEventHandler()
APT_AppletUtility(NULL, NULL, 0x4, 0x1, buf1, 0x1, buf2);
aptCloseSession();
- svc_createMutex(&aptStatusMutex, true);
+ svcCreateMutex(&aptStatusMutex, true);
aptStatus=0;
- svc_releaseMutex(aptStatusMutex);
+ svcReleaseMutex(aptStatusMutex);
aptSetStatus(APP_RUNNING);
//create thread for stuff handling APT events
- svc_createThread(&aptEventHandlerThread, aptEventHandler, 0x0, (u32*)(&aptEventHandlerStack[APT_HANDLER_STACKSIZE/8]), 0x31, 0xfffffffe);
+ svcCreateThread(&aptEventHandlerThread, aptEventHandler, 0x0, (u32*)(&aptEventHandlerStack[APT_HANDLER_STACKSIZE/8]), 0x31, 0xfffffffe);
}
APP_STATUS aptGetStatus()
{
APP_STATUS ret;
- svc_waitSynchronization1(aptStatusMutex, U64_MAX);
+ svcWaitSynchronization1(aptStatusMutex, U64_MAX);
ret=aptStatus;
- svc_releaseMutex(aptStatusMutex);
+ svcReleaseMutex(aptStatusMutex);
return ret;
}
{
u32 prevstatus;
- svc_waitSynchronization1(aptStatusMutex, U64_MAX);
+ svcWaitSynchronization1(aptStatusMutex, U64_MAX);
prevstatus = status;
aptStatus = status;
if(prevstatus!=APP_NOTINITIALIZED)
{
- if(status==APP_RUNNING)svc_signalEvent(aptStatusEvent);
- if(status==APP_EXITING)svc_signalEvent(aptStatusEvent);
+ if(status==APP_RUNNING)svcSignalEvent(aptStatusEvent);
+ if(status==APP_EXITING)svcSignalEvent(aptStatusEvent);
}
- svc_releaseMutex(aptStatusMutex);
+ svcReleaseMutex(aptStatusMutex);
}
u32 aptGetStatusPower()
{
u32 ret;
- svc_waitSynchronization1(aptStatusMutex, U64_MAX);
+ svcWaitSynchronization1(aptStatusMutex, U64_MAX);
ret=aptStatusPower;
- svc_releaseMutex(aptStatusMutex);
+ svcReleaseMutex(aptStatusMutex);
return ret;
}
void aptSetStatusPower(u32 status)
{
- svc_waitSynchronization1(aptStatusMutex, U64_MAX);
+ svcWaitSynchronization1(aptStatusMutex, U64_MAX);
aptStatusPower = status;
- svc_releaseMutex(aptStatusMutex);
+ svcReleaseMutex(aptStatusMutex);
}
void aptOpenSession()
{
- svc_waitSynchronization1(aptLockHandle, U64_MAX);
+ svcWaitSynchronization1(aptLockHandle, U64_MAX);
srv_getServiceHandle(NULL, &aptuHandle, "APT:U");
}
void aptCloseSession()
{
- svc_closeHandle(aptuHandle);
- svc_releaseMutex(aptLockHandle);
+ svcCloseHandle(aptuHandle);
+ svcReleaseMutex(aptLockHandle);
}
Result APT_GetLockHandle(Handle* handle, u16 flags, Handle* lockHandle)
cmdbuf[1]=flags;
Result ret=0;
- if((ret=svc_sendSyncRequest(*handle)))return ret;
+ if((ret=svcSendSyncRequest(*handle)))return ret;
if(lockHandle)*lockHandle=cmdbuf[5];
cmdbuf[2]=0x0;
Result ret=0;
- if((ret=svc_sendSyncRequest(*handle)))return ret;
+ if((ret=svcSendSyncRequest(*handle)))return ret;
if(eventHandle1)*eventHandle1=cmdbuf[3]; //return to menu event ?
if(eventHandle2)*eventHandle2=cmdbuf[4];
cmdbuf[1]=a;
Result ret=0;
- if((ret=svc_sendSyncRequest(*handle)))return ret;
+ if((ret=svcSendSyncRequest(*handle)))return ret;
return cmdbuf[1];
}
cmdbuf[1]=inval;
Result ret=0;
- if((ret=svc_sendSyncRequest(*handle)))return ret;
+ if((ret=svcSendSyncRequest(*handle)))return ret;
if(outval8)*outval8=cmdbuf[2];
if(outval32)*outval32=cmdbuf[3];
cmdbuf[1]=appID;
Result ret=0;
- if((ret=svc_sendSyncRequest(*handle)))return ret;
+ if((ret=svcSendSyncRequest(*handle)))return ret;
if(signalType)*signalType=cmdbuf[2];
cmdbuf[0]=0x2b0000; //request header code
Result ret=0;
- if((ret=svc_sendSyncRequest(*handle)))return ret;
+ if((ret=svcSendSyncRequest(*handle)))return ret;
return cmdbuf[1];
}
cmdbuf[4]=(b<<14)|2;
Result ret=0;
- if((ret=svc_sendSyncRequest(*handle)))return ret;
+ if((ret=svcSendSyncRequest(*handle)))return ret;
return cmdbuf[1];
}
cmdbuf[1]=appID;
Result ret=0;
- if((ret=svc_sendSyncRequest(*handle)))return ret;
+ if((ret=svcSendSyncRequest(*handle)))return ret;
return cmdbuf[1];
}
cmdbuf[1+0x100/4]=(u32)buf2;
Result ret=0;
- if((ret=svc_sendSyncRequest(*handle)))return ret;
+ if((ret=svcSendSyncRequest(*handle)))return ret;
if(out)*out=cmdbuf[2];
cmdbuf[1+0x100/4]=(u32)buffer;
Result ret=0;
- if((ret=svc_sendSyncRequest(*handle)))return ret;
+ if((ret=svcSendSyncRequest(*handle)))return ret;
if(signalType)*signalType=cmdbuf[3];
if(actualSize)*actualSize=cmdbuf[4];
cmdbuf[1+0x100/4]=(u32)buffer;
Result ret=0;
- if((ret=svc_sendSyncRequest(*handle)))return ret;
+ if((ret=svcSendSyncRequest(*handle)))return ret;
if(signalType)*signalType=cmdbuf[3];
if(actualSize)*actualSize=cmdbuf[4];
cmdbuf[8] = (u32)buffer;
Result ret=0;
- if((ret=svc_sendSyncRequest(*handle)))return ret;
+ if((ret=svcSendSyncRequest(*handle)))return ret;
return cmdbuf[1];
}
cmdbuf[3] = (u32)buffer;
Result ret=0;
- if((ret=svc_sendSyncRequest(*handle)))return ret;
+ if((ret=svcSendSyncRequest(*handle)))return ret;
return cmdbuf[1];
}
cmdbuf[2]=a;
Result ret=0;
- if((ret=svc_sendSyncRequest(*handle)))return ret;
+ if((ret=svcSendSyncRequest(*handle)))return ret;
return cmdbuf[1];
}
cmdbuf[1]=appID;
Result ret=0;
- if((ret=svc_sendSyncRequest(*handle)))return ret;
+ if((ret=svcSendSyncRequest(*handle)))return ret;
return cmdbuf[1];
}
cmdbuf[1]=a;
Result ret=0;
- if((ret=svc_sendSyncRequest(*handle)))return ret;
+ if((ret=svcSendSyncRequest(*handle)))return ret;
return cmdbuf[1];
}
cmdbuf[5]=c;
Result ret=0;
- if((ret=svc_sendSyncRequest(*handle)))return ret;
+ if((ret=svcSendSyncRequest(*handle)))return ret;
return cmdbuf[1];
}
cmdbuf[0] = 0x00010040;
cmdbuf[1] = (u32)value;
- if((ret = svc_sendSyncRequest(CFGNOR_handle))!=0)return ret;
+ if((ret = svcSendSyncRequest(CFGNOR_handle))!=0)return ret;
ret = (Result)cmdbuf[1];
return ret;
cmdbuf[0] = 0x00020000;
- if((ret = svc_sendSyncRequest(CFGNOR_handle))!=0)return ret;
+ if((ret = svcSendSyncRequest(CFGNOR_handle))!=0)return ret;
ret = (Result)cmdbuf[1];
- svc_closeHandle(CFGNOR_handle);
+ svcCloseHandle(CFGNOR_handle);
CFGNOR_handle = 0;
return ret;
cmdbuf[3] = (size<<4) | 12;
cmdbuf[4] = (u32)buf;
- if((ret = svc_sendSyncRequest(CFGNOR_handle))!=0)return ret;
+ if((ret = svcSendSyncRequest(CFGNOR_handle))!=0)return ret;
ret = (Result)cmdbuf[1];
return ret;
cmdbuf[3] = (size<<4) | 10;
cmdbuf[4] = (u32)buf;
- if((ret = svc_sendSyncRequest(CFGNOR_handle))!=0)return ret;
+ if((ret = svcSendSyncRequest(CFGNOR_handle))!=0)return ret;
ret = (Result)cmdbuf[1];
return ret;
cmdbuf[4] = off2;
cmdbuf[5] = off3;
- if((ret = svc_sendSyncRequest(CSND_handle))!=0)return ret;
+ if((ret = svcSendSyncRequest(CSND_handle))!=0)return ret;
*mutexhandle = cmdbuf[3];
*sharedmemhandle = cmdbuf[4];
cmdbuf[0] = 0x00020000;
- if((ret = svc_sendSyncRequest(CSND_handle))!=0)return ret;
+ if((ret = svcSendSyncRequest(CSND_handle))!=0)return ret;
return (Result)cmdbuf[1];
}
cmdbuf[0] = 0x00050000;
- if((ret = svc_sendSyncRequest(CSND_handle))!=0)return ret;
+ if((ret = svcSendSyncRequest(CSND_handle))!=0)return ret;
*bitmask = cmdbuf[2];
ret = CSND_cmd1(&CSND_mutexhandle, &CSND_sharedmemhandle, CSND_sharedmem_cmdblocksize+0x114, CSND_sharedmem_cmdblocksize, CSND_sharedmem_cmdblocksize+8, CSND_sharedmem_cmdblocksize+0xc8, CSND_sharedmem_cmdblocksize+0xd8);
if(ret!=0)return ret;
- ret = svc_mapMemoryBlock(CSND_sharedmemhandle, (u32)CSND_sharedmem, 3, 0x10000000);
+ ret = svcMapMemoryBlock(CSND_sharedmemhandle, (u32)CSND_sharedmem, 3, 0x10000000);
if(ret!=0)return ret;
memset(CSND_sharedmem, 0, 0x2114);
{
Result ret;
- svc_unmapMemoryBlock(CSND_sharedmemhandle, (u32)CSND_sharedmem);
- svc_closeHandle(CSND_sharedmemhandle);
+ svcUnmapMemoryBlock(CSND_sharedmemhandle, (u32)CSND_sharedmem);
+ svcCloseHandle(CSND_sharedmemhandle);
ret = CSND_cmd2();
if(ret!=0)return ret;
- return svc_closeHandle(CSND_handle);
+ return svcCloseHandle(CSND_handle);
}
Result CSND_cmd3(u32 offset)
cmdbuf[0] = 0x00030040;
cmdbuf[1] = offset;
- if((ret = svc_sendSyncRequest(CSND_handle))!=0)return ret;
+ if((ret = svcSendSyncRequest(CSND_handle))!=0)return ret;
return (Result)cmdbuf[1];
}
u32 prevoff;
s32 outindex=0;
- svc_waitSynchronizationN(&outindex, &CSND_mutexhandle, 1, 0, ~0);
+ svcWaitSynchronizationN(&outindex, &CSND_mutexhandle, 1, 0, ~0);
if(CSND_sharedmem_startcmdoff != CSND_sharedmem_currentcmdoff)
{
CSND_sharedmem_currentcmdoff+= 0x20;
if(CSND_sharedmem_currentcmdoff >= CSND_sharedmem_cmdblocksize)CSND_sharedmem_currentcmdoff = 0;
- svc_releaseMutex(CSND_mutexhandle);
+ svcReleaseMutex(CSND_mutexhandle);
}
Result CSND_processtype0cmds()
cmdbuf[1]=32;
Result ret=0;
- if((ret=svc_sendSyncRequest(handle)))return ret;
+ if((ret=svcSendSyncRequest(handle)))return ret;
return cmdbuf[1];
}
cmdbuf[9]=(u32)fileLowPath.data;
Result ret=0;
- if((ret=svc_sendSyncRequest(handle)))return ret;
+ if((ret=svcSendSyncRequest(handle)))return ret;
if(out)*out=cmdbuf[3];
cmdbuf[12]=(u32)fileLowPath.data;
Result ret=0;
- if((ret=svc_sendSyncRequest(handle)))return ret;
+ if((ret=svcSendSyncRequest(handle)))return ret;
if(out)*out=cmdbuf[3];
cmdbuf[5]=(u32)archive->lowPath.data;
Result ret=0;
- if((ret=svc_sendSyncRequest(handle)))return ret;
+ if((ret=svcSendSyncRequest(handle)))return ret;
archive->handleLow=cmdbuf[2];
archive->handleHigh=cmdbuf[3];
cmdbuf[6]=(u32)dirLowPath.data;
Result ret=0;
- if((ret=svc_sendSyncRequest(handle)))return ret;
+ if((ret=svcSendSyncRequest(handle)))return ret;
if(out)*out=cmdbuf[3];
cmdbuf[2]=archive->handleLow;
Result ret=0;
- if((ret=svc_sendSyncRequest(handle)))return ret;
+ if((ret=svcSendSyncRequest(handle)))return ret;
return cmdbuf[1];
}
cmdbuf[0]=0x08080000;
Result ret=0;
- if((ret=svc_sendSyncRequest(handle)))return ret;
+ if((ret=svcSendSyncRequest(handle)))return ret;
return cmdbuf[1];
}
cmdbuf[5]=(u32)buffer;
Result ret=0;
- if((ret=svc_sendSyncRequest(handle)))return ret;
+ if((ret=svcSendSyncRequest(handle)))return ret;
if(bytesRead)*bytesRead=cmdbuf[2];
cmdbuf[6]=(u32)data;
Result ret=0;
- if((ret=svc_sendSyncRequest(handle)))return ret;
+ if((ret=svcSendSyncRequest(handle)))return ret;
if(bytesWritten)*bytesWritten=cmdbuf[2];
cmdbuf[0] = 0x08040000;
Result ret=0;
- if((ret=svc_sendSyncRequest(handle)))return ret;
+ if((ret=svcSendSyncRequest(handle)))return ret;
if(size)*size = *((u64*)&cmdbuf[2]);
cmdbuf[2] = (u32)(size >> 32);
Result ret = 0;
- if ((ret = svc_sendSyncRequest(handle)))return ret;
+ if ((ret = svcSendSyncRequest(handle)))return ret;
return cmdbuf[1];
cmdbuf[3]=(u32)buffer;
Result ret=0;
- if((ret=svc_sendSyncRequest(handle)))return ret;
+ if((ret=svcSendSyncRequest(handle)))return ret;
if(entriesRead)*entriesRead=cmdbuf[2];
cmdbuf[0]=0x08020000;
Result ret=0;
- if((ret=svc_sendSyncRequest(handle)))return ret;
+ if((ret=svcSendSyncRequest(handle)))return ret;
return cmdbuf[1];
}
void gspExit()
{
- if(gspGpuHandle)svc_closeHandle(gspGpuHandle);
+ if(gspGpuHandle)svcCloseHandle(gspGpuHandle);
}
Result GSPGPU_AcquireRight(Handle* handle, u8 flags)
cmdbuf[3]=0xffff8001;
Result ret=0;
- if((ret=svc_sendSyncRequest(*handle)))return ret;
+ if((ret=svcSendSyncRequest(*handle)))return ret;
return cmdbuf[1];
}
cmdbuf[0]=0x170000; //request header code
Result ret=0;
- if((ret=svc_sendSyncRequest(*handle)))return ret;
+ if((ret=svcSendSyncRequest(*handle)))return ret;
return cmdbuf[1];
}
cmdbuf[0]=0x00180000; //request header code
Result ret=0;
- if((ret=svc_sendSyncRequest(*handle)))return ret;
+ if((ret=svcSendSyncRequest(*handle)))return ret;
ret = cmdbuf[1];
cmdbuf[0]=0x00190000; //request header code
Result ret=0;
- if((ret=svc_sendSyncRequest(*handle)))return ret;
+ if((ret=svcSendSyncRequest(*handle)))return ret;
return cmdbuf[1];
}
cmdbuf[0]=0x001A0000; //request header code
Result ret=0;
- if((ret=svc_sendSyncRequest(*handle)))return ret;
+ if((ret=svcSendSyncRequest(*handle)))return ret;
return cmdbuf[1];
}
cmdbuf[1]=flags;
Result ret=0;
- if((ret=svc_sendSyncRequest(*handle)))return ret;
+ if((ret=svcSendSyncRequest(*handle)))return ret;
return cmdbuf[1];
}
cmdbuf[1] = screenid;
memcpy(&cmdbuf[2], framebufinfo, sizeof(GSP_FramebufferInfo));
- if((ret=svc_sendSyncRequest(*handle)))return ret;
+ if((ret=svcSendSyncRequest(*handle)))return ret;
return cmdbuf[1];
}
cmdbuf[4]=0xffff8001;
Result ret=0;
- if((ret=svc_sendSyncRequest(*handle)))return ret;
+ if((ret=svcSendSyncRequest(*handle)))return ret;
return cmdbuf[1];
}
cmdbuf[3] = 0;
cmdbuf[4] = 0xFFFF8001;
- if((ret=svc_sendSyncRequest(*handle)))return ret;
+ if((ret=svcSendSyncRequest(*handle)))return ret;
return cmdbuf[1];
}
cmdbuf[4]=(u32)data;
Result ret=0;
- if((ret=svc_sendSyncRequest(*handle)))return ret;
+ if((ret=svcSendSyncRequest(*handle)))return ret;
return cmdbuf[1];
}
cmdbuf[6]=(u32)maskdata;
Result ret=0;
- if((ret=svc_sendSyncRequest(*handle)))return ret;
+ if((ret=svcSendSyncRequest(*handle)))return ret;
return cmdbuf[1];
}
cmdbuf[0x40+1]=(u32)data;
Result ret=0;
- if((ret=svc_sendSyncRequest(*handle)))return ret;
+ if((ret=svcSendSyncRequest(*handle)))return ret;
return cmdbuf[1];
}
cmdbuf[3]=eventHandle;
Result ret=0;
- if((ret=svc_sendSyncRequest(*handle)))return ret;
+ if((ret=svcSendSyncRequest(*handle)))return ret;
if(threadID)*threadID=cmdbuf[2];
if(outMemHandle)*outMemHandle=cmdbuf[4];
cmdbuf[0]=0x00140000; //request header code
Result ret=0;
- if((ret=svc_sendSyncRequest(*handle)))return ret;
+ if((ret=svcSendSyncRequest(*handle)))return ret;
return cmdbuf[1];
}
cmdbuf[0]=0xC0000; //request header code
Result ret=0;
- if((ret=svc_sendSyncRequest(*handle)))return ret;
+ if((ret=svcSendSyncRequest(*handle)))return ret;
return cmdbuf[1];
}
if((ret=HIDUSER_GetInfo(NULL, &hidMemHandle)))return ret;
hidSharedMem=sharedMem;
- svc_mapMemoryBlock(hidMemHandle, (u32)hidSharedMem, 0x1, 0x10000000);
+ svcMapMemoryBlock(hidMemHandle, (u32)hidSharedMem, 0x1, 0x10000000);
if((ret=HIDUSER_EnableAccelerometer(NULL)))return ret;
void hidExit()
{
- svc_unmapMemoryBlock(hidMemHandle, (u32)hidSharedMem);
- svc_closeHandle(hidMemHandle);
- svc_closeHandle(hidHandle);
+ svcUnmapMemoryBlock(hidMemHandle, (u32)hidSharedMem);
+ svcCloseHandle(hidMemHandle);
+ svcCloseHandle(hidHandle);
}
Result HIDUSER_GetInfo(Handle* handle, Handle* outMemHandle)
cmdbuf[0]=0xa0000; //request header code
Result ret=0;
- if((ret=svc_sendSyncRequest(*handle)))return ret;
+ if((ret=svcSendSyncRequest(*handle)))return ret;
if(outMemHandle)*outMemHandle=cmdbuf[3];
cmdbuf[0]=0x110000; //request header code
Result ret=0;
- if((ret=svc_sendSyncRequest(*handle)))return ret;
+ if((ret=svcSendSyncRequest(*handle)))return ret;
return cmdbuf[1];
}
cmdbuf[2]=0x20; //unk
Result ret=0;
- if((ret=svc_sendSyncRequest(handle)))return ret;
+ if((ret=svcSendSyncRequest(handle)))return ret;
return cmdbuf[1];
}
cmdbuf[4]=(u32)url;
Result ret=0;
- if((ret=svc_sendSyncRequest(handle)))return ret;
+ if((ret=svcSendSyncRequest(handle)))return ret;
if(contextHandle)*contextHandle=cmdbuf[2];
cmdbuf[2]=0x20; //unk, constant afaict
Result ret=0;
- if((ret=svc_sendSyncRequest(handle)))return ret;
+ if((ret=svcSendSyncRequest(handle)))return ret;
return cmdbuf[1];
}
cmdbuf[1]=contextHandle;
Result ret=0;
- if((ret=svc_sendSyncRequest(handle)))return ret;
+ if((ret=svcSendSyncRequest(handle)))return ret;
return cmdbuf[1];
}
cmdbuf[1]=contextHandle;
Result ret=0;
- if((ret=svc_sendSyncRequest(handle)))return ret;
+ if((ret=svcSendSyncRequest(handle)))return ret;
return cmdbuf[1];
}
cmdbuf[7]=(u32)value;
Result ret=0;
- if((ret=svc_sendSyncRequest(handle)))return ret;
+ if((ret=svcSendSyncRequest(handle)))return ret;
return cmdbuf[1];
}
cmdbuf[1]=contextHandle;
Result ret=0;
- if((ret=svc_sendSyncRequest(handle)))return ret;
+ if((ret=svcSendSyncRequest(handle)))return ret;
return cmdbuf[1];
}
cmdbuf[4]=(u32)buffer;
Result ret=0;
- if((ret=svc_sendSyncRequest(handle)))return ret;
+ if((ret=svcSendSyncRequest(handle)))return ret;
return cmdbuf[1];
}
cmdbuf[0] = 0x00010000;
- if((ret = svc_sendSyncRequest(iru_handle))!=0)return ret;
+ if((ret = svcSendSyncRequest(iru_handle))!=0)return ret;
ret = (Result)cmdbuf[1];
return ret;
cmdbuf[0] = 0x00020000;
- if((ret = svc_sendSyncRequest(iru_handle))!=0)return ret;
+ if((ret = svcSendSyncRequest(iru_handle))!=0)return ret;
ret = (Result)cmdbuf[1];
return ret;
cmdbuf[2] = (size<<4) | 10;
cmdbuf[3] = (u32)buf;
- if((ret = svc_sendSyncRequest(iru_handle))!=0)return ret;
+ if((ret = svcSendSyncRequest(iru_handle))!=0)return ret;
ret = (Result)cmdbuf[1];
return ret;
cmdbuf[0] = 0x00040000;
- if((ret = svc_sendSyncRequest(iru_handle))!=0)return ret;
+ if((ret = svcSendSyncRequest(iru_handle))!=0)return ret;
ret = (Result)cmdbuf[1];
return ret;
cmdbuf[4] = 0;
cmdbuf[5] = iru_sharedmem_handle;
- if((ret = svc_sendSyncRequest(iru_handle))!=0)return ret;
+ if((ret = svcSendSyncRequest(iru_handle))!=0)return ret;
ret = (Result)cmdbuf[1];
return ret;
cmdbuf[0] = 0x00060000;
- if((ret = svc_sendSyncRequest(iru_handle))!=0)return ret;
+ if((ret = svcSendSyncRequest(iru_handle))!=0)return ret;
ret = (Result)cmdbuf[1];
*transfercount = cmdbuf[2];
cmdbuf[0] = 0x00090040;
cmdbuf[1] = (u32)value;
- if((ret = svc_sendSyncRequest(iru_handle))!=0)return ret;
+ if((ret = svcSendSyncRequest(iru_handle))!=0)return ret;
ret = (Result)cmdbuf[1];
return ret;
cmdbuf[0] = 0x000A0000;
- if((ret = svc_sendSyncRequest(iru_handle))!=0)return ret;
+ if((ret = svcSendSyncRequest(iru_handle))!=0)return ret;
ret = (Result)cmdbuf[1];
*out = (u8)cmdbuf[2];
cmdbuf[0] = 0x000B0040;
cmdbuf[1] = value;
- if((ret = svc_sendSyncRequest(iru_handle))!=0)return ret;
+ if((ret = svcSendSyncRequest(iru_handle))!=0)return ret;
ret = (Result)cmdbuf[1];
return ret;
cmdbuf[0] = 0x000C0000;
- if((ret = svc_sendSyncRequest(iru_handle))!=0)return ret;
+ if((ret = svcSendSyncRequest(iru_handle))!=0)return ret;
ret = (Result)cmdbuf[1];
*out = cmdbuf[2];
ret = irucmd_Initialize();
if(ret!=0)return ret;
- ret = svc_createMemoryBlock(&iru_sharedmem_handle, (u32)sharedmem_addr, sharedmem_size, 1, 3);
+ ret = svcCreateMemoryBlock(&iru_sharedmem_handle, (u32)sharedmem_addr, sharedmem_size, 1, 3);
if(ret!=0)return ret;
iru_sharedmem = sharedmem_addr;
ret = irucmd_Shutdown();
if(ret!=0)return ret;
- svc_closeHandle(iru_handle);
- svc_closeHandle(iru_sharedmem_handle);
+ svcCloseHandle(iru_handle);
+ svcCloseHandle(iru_sharedmem_handle);
iru_handle = 0;
iru_sharedmem_handle = 0;
cmdbuf[4] = 0;
cmdbuf[5] = memhandle;
- if((ret = svc_sendSyncRequest(SOCU_handle))!=0)return ret;
+ if((ret = svcSendSyncRequest(SOCU_handle))!=0)return ret;
return cmdbuf[1];
}
cmdbuf[0] = 0x00190000;
- if((ret = svc_sendSyncRequest(SOCU_handle))!=0)return ret;
+ if((ret = svcSendSyncRequest(SOCU_handle))!=0)return ret;
- svc_closeHandle(SOCU_handle);
+ svcCloseHandle(SOCU_handle);
return cmdbuf[1];
}
Result ret=0;
Handle memhandle = 0;
- ret = svc_createMemoryBlock(&memhandle, (u32)context_addr, context_size, 0, 3);
+ ret = svcCreateMemoryBlock(&memhandle, (u32)context_addr, context_size, 0, 3);
if(ret!=0)return ret;
if((ret = srv_getServiceHandle(NULL, &SOCU_handle, "soc:U"))!=0)return ret;
cmdbuf[3] = protocol;
cmdbuf[4] = 0x20;
- if((ret = svc_sendSyncRequest(SOCU_handle))!=0)return ret;
+ if((ret = svcSendSyncRequest(SOCU_handle))!=0)return ret;
ret = (int)cmdbuf[1];
SOCU_errno = ret;
cmdbuf[1] = (u32)sockfd;
cmdbuf[2] = 0x20;
- if((ret = svc_sendSyncRequest(SOCU_handle))!=0)return ret;
+ if((ret = svcSendSyncRequest(SOCU_handle))!=0)return ret;
ret = (int)cmdbuf[1];
if(ret==0)ret =_net_convert_error(cmdbuf[2]);
cmdbuf[2] = (u32)shutdown_type;
cmdbuf[3] = 0x20;
- if((ret = svc_sendSyncRequest(SOCU_handle))!=0)return ret;
+ if((ret = svcSendSyncRequest(SOCU_handle))!=0)return ret;
ret = (int)cmdbuf[1];
if(ret==0)ret = _net_convert_error(cmdbuf[2]);
cmdbuf[2] = (u32)max_connections;
cmdbuf[3] = 0x20;
- if((ret = svc_sendSyncRequest(SOCU_handle))!=0)return ret;
+ if((ret = svcSendSyncRequest(SOCU_handle))!=0)return ret;
ret = (int)cmdbuf[1];
if(ret==0)ret = _net_convert_error(cmdbuf[2]);
cmdbuf[0x100>>2] = (tmp_addrlen<<14) | 2;
cmdbuf[0x104>>2] = (u32)tmpaddr;
- if((ret = svc_sendSyncRequest(SOCU_handle))!=0)return ret;
+ if((ret = svcSendSyncRequest(SOCU_handle))!=0)return ret;
cmdbuf[0x100>>2] = saved_threadstorage[0];
cmdbuf[0x104>>2] = saved_threadstorage[1];
cmdbuf[5] = (((u32)tmp_addrlen)<<14) | 2;
cmdbuf[6] = (u32)tmpaddr;
- if((ret = svc_sendSyncRequest(SOCU_handle))!=0)return ret;
+ if((ret = svcSendSyncRequest(SOCU_handle))!=0)return ret;
ret = (int)cmdbuf[1];
if(ret==0)ret = _net_convert_error(cmdbuf[2]);
cmdbuf[5] = (((u32)tmp_addrlen)<<14) | 2;
cmdbuf[6] = (u32)tmpaddr;
- if((ret = svc_sendSyncRequest(SOCU_handle))!=0)return ret;
+ if((ret = svcSendSyncRequest(SOCU_handle))!=0)return ret;
ret = (int)cmdbuf[1];
if(ret==0)ret = _net_convert_error(cmdbuf[2]);
cmdbuf[0x100>>2] = (tmp_addrlen<<14) | 2;
cmdbuf[0x104>>2] = (u32)tmpaddr;
- if((ret = svc_sendSyncRequest(SOCU_handle))!=0)return ret;
+ if((ret = svcSendSyncRequest(SOCU_handle))!=0)return ret;
cmdbuf[0x100>>2] = saved_threadstorage[0];
cmdbuf[0x104>>2] = saved_threadstorage[1];
cmdbuf[0x108>>2] = (tmp_addrlen<<14) | 2;
cmdbuf[0x10c>>2] = (u32)tmpaddr;
- if((ret = svc_sendSyncRequest(SOCU_handle))!=0)return ret;
+ if((ret = svcSendSyncRequest(SOCU_handle))!=0)return ret;
cmdbuf[0x100>>2] = saved_threadstorage[0];
cmdbuf[0x104>>2] = saved_threadstorage[1];
cmdbuf[9] = (((u32)len)<<4) | 10;
cmdbuf[10] = (u32)buf;
- if((ret = svc_sendSyncRequest(SOCU_handle))!=0)return ret;
+ if((ret = svcSendSyncRequest(SOCU_handle))!=0)return ret;
ret = (int)cmdbuf[1];
if(ret==0)ret = _net_convert_error(cmdbuf[2]);
cmdbuf[9] = (tmp_addrlen<<14) | 0x402;
cmdbuf[10] = (u32)tmpaddr;
- if((ret = svc_sendSyncRequest(SOCU_handle))!=0)return ret;
+ if((ret = svcSendSyncRequest(SOCU_handle))!=0)return ret;
ret = (int)cmdbuf[1];
if(ret==0)ret = _net_convert_error(cmdbuf[2]);
cmdbuf[0x100>>2] = ((*data_len)<<14) | 2;
cmdbuf[0x104>>2] = (u32)data;
- if((ret = svc_sendSyncRequest(SOCU_handle))!=0)return ret;
+ if((ret = svcSendSyncRequest(SOCU_handle))!=0)return ret;
cmdbuf[0x100>>2] = saved_threadstorage[0];
cmdbuf[0x104>>2] = saved_threadstorage[1];
cmdbuf[7] = (data_len<<14) | 0x2402;
cmdbuf[8] = (u32)data;
- if((ret = svc_sendSyncRequest(SOCU_handle))!=0)return ret;
+ if((ret = svcSendSyncRequest(SOCU_handle))!=0)return ret;
ret = (int)cmdbuf[1];
if(ret==0)ret = _net_convert_error(cmdbuf[2]);
cmdbuf[3] = (u32)arg;
cmdbuf[4] = 0x20;
- if((ret = svc_sendSyncRequest(SOCU_handle))!=0)return ret;
+ if((ret = svcSendSyncRequest(SOCU_handle))!=0)return ret;
ret = (int)cmdbuf[1];
if(ret==0)ret = _net_convert_error(cmdbuf[2]);
cmdbuf[1] = (u32)sockfd;
cmdbuf[2] = 0x20;
- if((ret = svc_sendSyncRequest(SOCU_handle))!=0)return ret;
+ if((ret = svcSendSyncRequest(SOCU_handle))!=0)return ret;
ret = (int)cmdbuf[1];
if(ret==0)ret = _net_convert_error(cmdbuf[2]);
cmdbuf[0] = 0x00160000;
- if((ret = svc_sendSyncRequest(SOCU_handle))!=0)return ret;
+ if((ret = svcSendSyncRequest(SOCU_handle))!=0)return ret;
ret = (int)cmdbuf[1];
if(ret==0)ret = cmdbuf[2];
cmdbuf[0x100>>2] = (0x1c<<14) | 2;
cmdbuf[0x104>>2] = (u32)tmpaddr;
- if((ret = svc_sendSyncRequest(SOCU_handle))!=0)return ret;
+ if((ret = svcSendSyncRequest(SOCU_handle))!=0)return ret;
cmdbuf[0x100>>2] = saved_threadstorage[0];
cmdbuf[0x104>>2] = saved_threadstorage[1];
cmdbuf[0x100>>2] = (0x1c<<14) | 2;
cmdbuf[0x104>>2] = (u32)tmpaddr;
- if((ret = svc_sendSyncRequest(SOCU_handle))!=0)return ret;
+ if((ret = svcSendSyncRequest(SOCU_handle))!=0)return ret;
cmdbuf[0x100>>2] = saved_threadstorage[0];
cmdbuf[0x104>>2] = saved_threadstorage[1];
Result initSrv()
{
Result ret=0;
- if(svc_connectToPort(&srvHandle, "srv:"))return ret;
+ if(svcConnectToPort(&srvHandle, "srv:"))return ret;
return srv_RegisterClient(&srvHandle);
}
Result exitSrv()
{
- if(srvHandle)svc_closeHandle(srvHandle);
+ if(srvHandle)svcCloseHandle(srvHandle);
}
Result srv_RegisterClient(Handle* handleptr)
cmdbuf[1]=0x20;
Result ret=0;
- if((ret=svc_sendSyncRequest(*handleptr)))return ret;
+ if((ret=svcSendSyncRequest(*handleptr)))return ret;
return cmdbuf[1];
}
cmdbuf[4]=0x0;
Result ret=0;
- if((ret=svc_sendSyncRequest(*handleptr)))return ret;
+ if((ret=svcSendSyncRequest(*handleptr)))return ret;
*out=cmdbuf[3];
.arm
-
.align 4
+/* THIS DOES NOT BELONG HERE */
.global getThreadCommandBuffer
.type getThreadCommandBuffer, %function
getThreadCommandBuffer:
bx lr
-.global svc_controlMemory
-.type svc_controlMemory, %function
-svc_controlMemory:
+.global svcControlMemory
+.type svcControlMemory, %function
+svcControlMemory:
stmfd sp!, {r0, r4}
ldr r0, [sp, #0x8]
ldr r4, [sp, #0x8+0x4]
ldr r4, [sp], #4
bx lr
-.global svc_exitProcess
-.type svc_exitProcess, %function
-svc_exitProcess:
+.global svcExitProcess
+.type svcExitProcess, %function
+svcExitProcess:
svc 0x03
bx lr
-.global svc_createThread
-.type svc_createThread, %function
-svc_createThread:
+.global svcCreateThread
+.type svcCreateThread, %function
+svcCreateThread:
stmfd sp!, {r0, r4}
ldr r0, [sp, #0x8]
ldr r4, [sp, #0x8+0x4]
ldr r4, [sp], #4
bx lr
-.global svc_exitThread
-.type svc_exitThread, %function
-svc_exitThread:
+.global svcExitThread
+.type svcExitThread, %function
+svcExitThread:
svc 0x09
bx lr
-.global svc_sleepThread
-.type svc_sleepThread, %function
-svc_sleepThread:
+.global svcSleepThread
+.type svcSleepThread, %function
+svcSleepThread:
svc 0x0A
bx lr
-.global svc_createMutex
-.type svc_createMutex, %function
-svc_createMutex:
+.global svcCreateMutex
+.type svcCreateMutex, %function
+svcCreateMutex:
str r0, [sp, #-4]!
svc 0x13
ldr r3, [sp], #4
str r1, [r3]
bx lr
-.global svc_releaseMutex
-.type svc_releaseMutex, %function
-svc_releaseMutex:
+.global svcReleaseMutex
+.type svcReleaseMutex, %function
+svcReleaseMutex:
svc 0x14
bx lr
-.global svc_createEvent
-.type svc_createEvent, %function
-svc_createEvent:
+.global svcCreateEvent
+.type svcCreateEvent, %function
+svcCreateEvent:
str r0, [sp,#-4]!
svc 0x17
ldr r2, [sp], #4
str r1, [r2]
bx lr
-.global svc_signalEvent
-.type svc_signalEvent, %function
-svc_signalEvent:
+.global svcSignalEvent
+.type svcSignalEvent, %function
+svcSignalEvent:
svc 0x18
bx lr
-.global svc_clearEvent
-.type svc_clearEvent, %function
-svc_clearEvent:
+.global svcClearEvent
+.type svcClearEvent, %function
+svcClearEvent:
svc 0x19
bx lr
-.global svc_createMemoryBlock
-.type svc_createMemoryBlock, %function
-svc_createMemoryBlock:
+.global svcCreateMemoryBlock
+.type svcCreateMemoryBlock, %function
+svcCreateMemoryBlock:
str r0, [sp, #-4]!
ldr r0, [sp, #4]
svc 0x1E
str r1, [r2]
bx lr
-.global svc_mapMemoryBlock
-.type svc_mapMemoryBlock, %function
-svc_mapMemoryBlock:
+.global svcMapMemoryBlock
+.type svcMapMemoryBlock, %function
+svcMapMemoryBlock:
svc 0x1F
bx lr
-.global svc_unmapMemoryBlock
-.type svc_unmapMemoryBlock, %function
-svc_unmapMemoryBlock:
+.global svcUnmapMemoryBlock
+.type svcUnmapMemoryBlock, %function
+svcUnmapMemoryBlock:
svc 0x20
bx lr
-.global svc_closeHandle
-.type svc_closeHandle, %function
-svc_closeHandle:
+.global svcCloseHandle
+.type svcCloseHandle, %function
+svcCloseHandle:
svc 0x23
bx lr
-.global svc_waitSynchronization1
-.type svc_waitSynchronization1, %function
-svc_waitSynchronization1:
+.global svcWaitSynchronization
+.type svcWaitSynchronization, %function
+svcWaitSynchronization:
svc 0x24
bx lr
-.global svc_waitSynchronizationN
-.type svc_waitSynchronizationN, %function
-svc_waitSynchronizationN:
+.global svcWaitSynchronizationN
+.type svcWaitSynchronizationN, %function
+svcWaitSynchronizationN:
str r5, [sp, #-4]!
mov r5, r0
ldr r0, [sp, #0x4]
ldr r5, [sp], #4
bx lr
-.global svc_getSystemTick
-.type svc_getSystemTick, %function
-svc_getSystemTick:
+.global svcGetSystemTick
+.type svcGetSystemTick, %function
+svcGetSystemTick:
svc 0x28
bx lr
-.global svc_getSystemInfo
-.type svc_getSystemInfo, %function
-svc_getSystemInfo:
+.global svcGetSystemInfo
+.type svcGetSystemInfo, %function
+svcGetSystemInfo:
stmfd sp!, {r0, r4}
svc 0x2A
ldr r4, [sp], #4
str r1, [r4]
str r2, [r4, #4]
- # str r3, [r4, #8] # ?
+ str r3, [r4, #8]
ldr r4, [sp], #4
bx lr
-.global svc_getProcessInfo
-.type svc_getProcessInfo, %function
-svc_getProcessInfo:
+.global svcGetProcessInfo
+.type svcGetProcessInfo, %function
+svcGetProcessInfo:
stmfd sp!, {r0, r4}
svc 0x2B
ldr r4, [sp], #4
ldr r4, [sp], #4
bx lr
-.global svc_connectToPort
-.type svc_connectToPort, %function
-svc_connectToPort:
+.global svcConnectToPort
+.type svcConnectToPort, %function
+svcConnectToPort:
str r0, [sp,#-0x4]!
svc 0x2D
ldr r3, [sp], #4
str r1, [r3]
bx lr
-.global svc_sendSyncRequest
-.type svc_sendSyncRequest, %function
-svc_sendSyncRequest:
+.global svcSendSyncRequest
+.type svcSendSyncRequest, %function
+svcSendSyncRequest:
svc 0x32
bx lr
-.global svc_getProcessId
-.type svc_getProcessId, %function
-svc_getProcessId:
+.global svcGetProcessId
+.type svcGetProcessId, %function
+svcGetProcessId:
str r0, [sp,#-0x4]!
svc 0x35
ldr r3, [sp], #4