misc : renamed svc_getData to getThreadCommandBuffer and srv_10002 to srv_Initialize
This commit is contained in:
parent
5d7e2c389f
commit
f2d577a3e9
@ -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);
|
||||
|
@ -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];
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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...
|
||||
}
|
||||
|
@ -5,13 +5,13 @@
|
||||
#include <ctr/srv.h>
|
||||
#include <ctr/svc.h>
|
||||
|
||||
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];
|
||||
}
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user