Added some srv commands

This commit is contained in:
fincs 2015-05-06 21:59:47 +02:00
parent 5a28a7398a
commit 004dfff8bd
2 changed files with 30 additions and 0 deletions

View File

@ -4,6 +4,8 @@ Result srvInit();
Result srvExit(); Result srvExit();
Result srvRegisterClient(); Result srvRegisterClient();
Result srvGetServiceHandle(Handle* out, const char* name); Result srvGetServiceHandle(Handle* out, const char* name);
Result srvRegisterService(Handle* out, const char* name, int maxSessions);
Result srvUnregisterService(const char* name);
Result srvPmInit(); Result srvPmInit();
Result srvRegisterProcess(u32 procid, u32 count, void *serviceaccesscontrol); Result srvRegisterProcess(u32 procid, u32 count, void *serviceaccesscontrol);

View File

@ -136,6 +136,34 @@ Result srvGetServiceHandle(Handle* out, const char* name)
return cmdbuf[1]; return cmdbuf[1];
} }
Result srvRegisterService(Handle* out, const char* name, int maxSessions)
{
u32* cmdbuf = getThreadCommandBuffer();
cmdbuf[0] = 0x30100;
strcpy((char*) &cmdbuf[1], name);
cmdbuf[3] = strlen(name);
cmdbuf[4] = maxSessions;
Result rc;
if((rc = svcSendSyncRequest(g_srv_handle)))return rc;
*out = cmdbuf[3];
return cmdbuf[1];
}
Result srvUnregisterService(const char* name)
{
u32* cmdbuf = getThreadCommandBuffer();
cmdbuf[0] = 0x400C0;
strcpy((char*) &cmdbuf[1], name);
cmdbuf[3] = strlen(name);
Result rc;
if((rc = svcSendSyncRequest(g_srv_handle)))return rc;
return cmdbuf[1];
}
// Old srv:pm interface, will only work on systems where srv:pm was a port (<7.X) // Old srv:pm interface, will only work on systems where srv:pm was a port (<7.X)
Result srvPmInit() Result srvPmInit()
{ {