Add srvGetServiceHandleDirect()
This commit is contained in:
parent
04ed53659a
commit
e409f1ea1d
@ -4,6 +4,7 @@ Result srvInit(void);
|
|||||||
Result srvExit(void);
|
Result srvExit(void);
|
||||||
Handle *srvGetSessionHandle(void);
|
Handle *srvGetSessionHandle(void);
|
||||||
Result srvRegisterClient(void);
|
Result srvRegisterClient(void);
|
||||||
|
Result srvGetServiceHandleDirect(Handle* out, const char* name);
|
||||||
Result srvGetServiceHandle(Handle* out, const char* name);
|
Result srvGetServiceHandle(Handle* out, const char* name);
|
||||||
Result srvRegisterService(Handle* out, const char* name, int maxSessions);
|
Result srvRegisterService(Handle* out, const char* name, int maxSessions);
|
||||||
Result srvUnregisterService(const char* name);
|
Result srvUnregisterService(const char* name);
|
||||||
|
@ -116,19 +116,10 @@ Result srvRegisterClient(void)
|
|||||||
return cmdbuf[1];
|
return cmdbuf[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
Result srvGetServiceHandle(Handle* out, const char* name)
|
Result srvGetServiceHandleDirect(Handle* out, const char* name)
|
||||||
{
|
{
|
||||||
Result rc = 0;
|
Result rc = 0;
|
||||||
|
|
||||||
/* Look in service-list given to us by loader. If we find find a match,
|
|
||||||
we return it. */
|
|
||||||
Handle h = __get_handle_from_list(name);
|
|
||||||
|
|
||||||
if(h != 0) {
|
|
||||||
return svcDuplicateHandle(out, h);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Normal request to service manager. */
|
|
||||||
u32* cmdbuf = getThreadCommandBuffer();
|
u32* cmdbuf = getThreadCommandBuffer();
|
||||||
cmdbuf[0] = 0x50100;
|
cmdbuf[0] = 0x50100;
|
||||||
strcpy((char*) &cmdbuf[1], name);
|
strcpy((char*) &cmdbuf[1], name);
|
||||||
@ -141,6 +132,20 @@ Result srvGetServiceHandle(Handle* out, const char* name)
|
|||||||
return cmdbuf[1];
|
return cmdbuf[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Result srvGetServiceHandle(Handle* out, const char* name)
|
||||||
|
{
|
||||||
|
/* Look in service-list given to us by loader. If we find find a match,
|
||||||
|
we return it. */
|
||||||
|
Handle h = __get_handle_from_list(name);
|
||||||
|
|
||||||
|
if(h != 0) {
|
||||||
|
return svcDuplicateHandle(out, h);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Normal request to service manager. */
|
||||||
|
return srvGetServiceHandleDirect(out, name);
|
||||||
|
}
|
||||||
|
|
||||||
Result srvRegisterService(Handle* out, const char* name, int maxSessions)
|
Result srvRegisterService(Handle* out, const char* name, int maxSessions)
|
||||||
{
|
{
|
||||||
u32* cmdbuf = getThreadCommandBuffer();
|
u32* cmdbuf = getThreadCommandBuffer();
|
||||||
|
Loading…
Reference in New Issue
Block a user