From f2d577a3e936b7735c6282b76ea00ea9435cd7c2 Mon Sep 17 00:00:00 2001 From: smea Date: Wed, 22 Jan 2014 22:04:12 +0100 Subject: [PATCH] misc : renamed svc_getData to getThreadCommandBuffer and srv_10002 to srv_Initialize --- libctru/include/ctr/svc.h | 3 +- libctru/source/APT.c | 64 +++++++++++++++++----------------- libctru/source/GSP.c | 72 +++++++++++++++++++-------------------- libctru/source/HID.c | 4 +-- libctru/source/srv.c | 22 ++++++------ libctru/source/svc.s | 6 ++-- 6 files changed, 86 insertions(+), 85 deletions(-) diff --git a/libctru/include/ctr/svc.h b/libctru/include/ctr/svc.h index a68a716..574ffe9 100644 --- a/libctru/include/ctr/svc.h +++ b/libctru/include/ctr/svc.h @@ -1,7 +1,8 @@ #ifndef SVC_H #define SVC_H - u32* svc_getData(void); + u32* getThreadCommandBuffer(void); + void svc_exitProcess(void); void svc_sleepThread(s64 ns); Result svc_releaseMutex(Handle handle); diff --git a/libctru/source/APT.c b/libctru/source/APT.c index 6ecba90..da110c3 100644 --- a/libctru/source/APT.c +++ b/libctru/source/APT.c @@ -7,67 +7,67 @@ void APT_GetLockHandle(Handle handle, u16 flags, Handle* lockHandle) { - u32* svcData=svc_getData(); - svcData[0]=0x10040; //request header code - svcData[1]=flags; + u32* cmdbuf=getThreadCommandBuffer(); + cmdbuf[0]=0x10040; //request header code + cmdbuf[1]=flags; svc_sendSyncRequest(handle); //check return value... - if(lockHandle)*lockHandle=svcData[5]; + if(lockHandle)*lockHandle=cmdbuf[5]; } void APT_Initialize(Handle handle, NS_APPID appId, Handle* eventHandle1, Handle* eventHandle2) { - u32* svcData=svc_getData(); - svcData[0]=0x20080; //request header code - svcData[1]=appId; - svcData[2]=0x0; + u32* cmdbuf=getThreadCommandBuffer(); + cmdbuf[0]=0x20080; //request header code + cmdbuf[1]=appId; + cmdbuf[2]=0x0; svc_sendSyncRequest(handle); //check return value... - if(eventHandle1)*eventHandle1=svcData[3]; //return to menu event ? - if(eventHandle2)*eventHandle2=svcData[4]; + if(eventHandle1)*eventHandle1=cmdbuf[3]; //return to menu event ? + if(eventHandle2)*eventHandle2=cmdbuf[4]; } Result APT_Enable(Handle handle, u32 a) { - u32* svcData=svc_getData(); - svcData[0]=0x30040; //request header code - svcData[1]=a; + u32* cmdbuf=getThreadCommandBuffer(); + cmdbuf[0]=0x30040; //request header code + cmdbuf[1]=a; svc_sendSyncRequest(handle); //check return value... - return svcData[1]; + return cmdbuf[1]; } u8 APT_InquireNotification(Handle handle, u32 appID) { - u32* svcData=svc_getData(); - svcData[0]=0xB0040; //request header code - svcData[1]=appID; + u32* cmdbuf=getThreadCommandBuffer(); + cmdbuf[0]=0xB0040; //request header code + cmdbuf[1]=appID; svc_sendSyncRequest(handle); //check return value... - return svcData[2]; + return cmdbuf[2]; } Result APT_PrepareToJumpToHomeMenu(Handle handle) { - u32* svcData=svc_getData(); - svcData[0]=0x2b0000; //request header code + u32* cmdbuf=getThreadCommandBuffer(); + cmdbuf[0]=0x2b0000; //request header code svc_sendSyncRequest(handle); //check return value... - return svcData[1]; + return cmdbuf[1]; } Result APT_JumpToHomeMenu(Handle handle, u32 a, u32 b, u32 c) { - u32* svcData=svc_getData(); - svcData[0]=0x2C0044; //request header code - svcData[1]=a; - svcData[2]=b; - svcData[3]=c; - svcData[4]=(b<<14)|2; + u32* cmdbuf=getThreadCommandBuffer(); + cmdbuf[0]=0x2C0044; //request header code + cmdbuf[1]=a; + cmdbuf[2]=b; + cmdbuf[3]=c; + cmdbuf[4]=(b<<14)|2; svc_sendSyncRequest(handle); //check return value... - return svcData[1]; + return cmdbuf[1]; } Result APT_NotifyToWait(Handle handle, u32 a) { - u32* svcData=svc_getData(); - svcData[0]=0x430040; //request header code - svcData[1]=a; + u32* cmdbuf=getThreadCommandBuffer(); + cmdbuf[0]=0x430040; //request header code + cmdbuf[1]=a; svc_sendSyncRequest(handle); //check return value... - return svcData[1]; + return cmdbuf[1]; } diff --git a/libctru/source/GSP.c b/libctru/source/GSP.c index ba7d9f5..d8b5e61 100644 --- a/libctru/source/GSP.c +++ b/libctru/source/GSP.c @@ -8,30 +8,30 @@ void GSPGPU_AcquireRight(Handle handle, u8 flags) { - u32* svcData=svc_getData(); - svcData[0]=0x160042; //request header code - svcData[1]=flags; - svcData[2]=0x0; - svcData[3]=0xffff8001; + u32* cmdbuf=getThreadCommandBuffer(); + cmdbuf[0]=0x160042; //request header code + cmdbuf[1]=flags; + cmdbuf[2]=0x0; + cmdbuf[3]=0xffff8001; svc_sendSyncRequest(handle); //check return value... } void GSPGPU_SetLcdForceBlack(Handle handle, u8 flags) { - u32* svcData=svc_getData(); - svcData[0]=0xB0040; //request header code - svcData[1]=flags; + u32* cmdbuf=getThreadCommandBuffer(); + cmdbuf[0]=0xB0040; //request header code + cmdbuf[1]=flags; svc_sendSyncRequest(handle); //check return value... } void GSPGPU_FlushDataCache(Handle handle, u8* adr, u32 size) { - u32* svcData=svc_getData(); - svcData[0]=0x80082; //request header code - svcData[1]=(u32)adr; - svcData[2]=size; - svcData[3]=0x0; - svcData[4]=0xffff8001; + u32* cmdbuf=getThreadCommandBuffer(); + cmdbuf[0]=0x80082; //request header code + cmdbuf[1]=(u32)adr; + cmdbuf[2]=size; + cmdbuf[3]=0x0; + cmdbuf[4]=0xffff8001; svc_sendSyncRequest(handle); //check return value... } @@ -39,12 +39,12 @@ void GSPGPU_WriteHWRegs(Handle handle, u32 regAddr, u8* data, u8 size) { if(size>0x80 || !data)return; - u32* svcData=svc_getData(); - svcData[0]=0x10082; //request header code - svcData[1]=regAddr; - svcData[2]=size; - svcData[3]=(size<<14)|2; - svcData[4]=(u32)data; + u32* cmdbuf=getThreadCommandBuffer(); + cmdbuf[0]=0x10082; //request header code + cmdbuf[1]=regAddr; + cmdbuf[2]=size; + cmdbuf[3]=(size<<14)|2; + cmdbuf[4]=(u32)data; svc_sendSyncRequest(handle); //check return value... } @@ -52,33 +52,33 @@ void GSPGPU_ReadHWRegs(Handle handle, u32 regAddr, u8* data, u8 size) { if(size>0x80 || !data)return; - u32* svcData=svc_getData(); - svcData[0]=0x40080; //request header code - svcData[1]=regAddr; - svcData[2]=size; - svcData[0x40]=(size<<14)|2; - svcData[0x40+1]=(u32)data; + u32* cmdbuf=getThreadCommandBuffer(); + cmdbuf[0]=0x40080; //request header code + cmdbuf[1]=regAddr; + cmdbuf[2]=size; + cmdbuf[0x40]=(size<<14)|2; + cmdbuf[0x40+1]=(u32)data; svc_sendSyncRequest(handle); //check return value... } void GSPGPU_RegisterInterruptRelayQueue(Handle handle, Handle eventHandle, u32 flags, Handle* outMemHandle, u8* threadID) { - u32* svcData=svc_getData(); - svcData[0]=0x130042; //request header code - svcData[1]=flags; - svcData[2]=0x0; - svcData[3]=eventHandle; + u32* cmdbuf=getThreadCommandBuffer(); + cmdbuf[0]=0x130042; //request header code + cmdbuf[1]=flags; + cmdbuf[2]=0x0; + cmdbuf[3]=eventHandle; svc_sendSyncRequest(handle); //check return value... - if(threadID)*threadID=svcData[2]; - if(outMemHandle)*outMemHandle=svcData[4]; + if(threadID)*threadID=cmdbuf[2]; + if(outMemHandle)*outMemHandle=cmdbuf[4]; } Result GSPGPU_TriggerCmdReqQueue(Handle handle) { - u32* svcData=svc_getData(); - svcData[0]=0xC0000; //request header code + u32* cmdbuf=getThreadCommandBuffer(); + cmdbuf[0]=0xC0000; //request header code svc_sendSyncRequest(handle); //check return value... - return svcData[0]; + return cmdbuf[0]; } //essentially : get commandIndex and totalCommands, calculate offset of new command, copy command and update totalCommands diff --git a/libctru/source/HID.c b/libctru/source/HID.c index 45e8c4d..2c2b31c 100644 --- a/libctru/source/HID.c +++ b/libctru/source/HID.c @@ -7,7 +7,7 @@ void HIDUSER_GetInfo(Handle handle, Handle* outMemHandle) { - u32* svcData=svc_getData(); + u32* svcData=getThreadCommandBuffer(); svcData[0]=0xa0000; //request header code svc_sendSyncRequest(handle); //check return value... if(outMemHandle)*outMemHandle=svcData[3]; @@ -15,7 +15,7 @@ void HIDUSER_GetInfo(Handle handle, Handle* outMemHandle) void HIDUSER_Init(Handle handle) { - u32* svcData=svc_getData(); + u32* svcData=getThreadCommandBuffer(); svcData[0]=0x110000; //request header code svc_sendSyncRequest(handle); //check return value... } diff --git a/libctru/source/srv.c b/libctru/source/srv.c index cf4e4a2..1fee413 100644 --- a/libctru/source/srv.c +++ b/libctru/source/srv.c @@ -5,13 +5,13 @@ #include #include -Result srv_10002(Handle handle) +Result srv_Initialize(Handle handle) { - u32* svcData=svc_getData(); - svcData[0]=0x10002; //request header code - svcData[1]=0x20; + u32* cmdbuf=getThreadCommandBuffer(); + cmdbuf[0]=0x10002; //request header code + cmdbuf[1]=0x20; svc_sendSyncRequest(handle); //check return value... - return svcData[1]; + return cmdbuf[1]; } void getSrvHandle(Handle* out) @@ -26,11 +26,11 @@ void srv_getServiceHandle(Handle handle, Handle* out, char* server) { u8 l=strlen(server); if(!out || !server || l>8)return; - u32* svcData=svc_getData(); - svcData[0]=0x50100; //request header code - strcpy((char*)&svcData[1], server); - svcData[3]=l; - svcData[4]=0x0; + u32* cmdbuf=getThreadCommandBuffer(); + cmdbuf[0]=0x50100; //request header code + strcpy((char*)&cmdbuf[1], server); + cmdbuf[3]=l; + cmdbuf[4]=0x0; svc_sendSyncRequest(handle); //check return value... - *out=svcData[3]; + *out=cmdbuf[3]; } diff --git a/libctru/source/svc.s b/libctru/source/svc.s index 6e6b556..0c974ab 100644 --- a/libctru/source/svc.s +++ b/libctru/source/svc.s @@ -2,9 +2,9 @@ .align 4 -.global svc_getData -.type svc_getData, %function -svc_getData: +.global getThreadCommandBuffer +.type getThreadCommandBuffer, %function +getThreadCommandBuffer: mrc p15, 0, r0, c13, c0, 3 add r0, #0x80 bx lr