Revamped "srv.c".
This commit is contained in:
parent
ec9734bdeb
commit
d35233fb1c
@ -112,7 +112,7 @@ void renderEffect()
|
||||
|
||||
int main()
|
||||
{
|
||||
initSrv();
|
||||
srvInit();
|
||||
|
||||
aptInit(APPID_APPLICATION);
|
||||
|
||||
|
@ -81,7 +81,7 @@ void swapBuffers()
|
||||
|
||||
int main()
|
||||
{
|
||||
initSrv();
|
||||
srvInit();
|
||||
|
||||
aptInit(APPID_APPLICATION);
|
||||
|
||||
|
@ -112,7 +112,7 @@ void renderEffect()
|
||||
|
||||
int main()
|
||||
{
|
||||
initSrv();
|
||||
srvInit();
|
||||
|
||||
aptInit(APPID_APPLICATION);
|
||||
|
||||
@ -121,7 +121,7 @@ int main()
|
||||
hidInit(NULL);
|
||||
|
||||
Handle fsuHandle;
|
||||
srv_getServiceHandle(NULL, &fsuHandle, "fs:USER");
|
||||
srvGetServiceHandle(&fsuHandle, "fs:USER");
|
||||
FSUSER_Initialize(fsuHandle);
|
||||
|
||||
Handle fileHandle;
|
||||
|
@ -1,9 +1,9 @@
|
||||
#ifndef SRV_H
|
||||
#define SRV_H
|
||||
|
||||
Result initSrv();
|
||||
Result exitSrv();
|
||||
Result srv_RegisterClient(Handle* handleptr);
|
||||
Result srv_getServiceHandle(Handle* handleptr, Handle* out, char* server);
|
||||
Result srvInit();
|
||||
Result srvExit();
|
||||
Result srvRegisterClient();
|
||||
Result srvGetServiceHandle(Handle* out, char* name);
|
||||
|
||||
#endif
|
||||
|
@ -69,7 +69,7 @@ Result ACU_WaitInternetConnection()
|
||||
Result ret=0;
|
||||
u32 outval=0;
|
||||
|
||||
if((ret = srv_getServiceHandle(NULL, &servhandle, "ac:u"))!=0)return ret;
|
||||
if((ret = srvGetServiceHandle(&servhandle, "ac:u"))!=0)return ret;
|
||||
|
||||
while(1)
|
||||
{
|
||||
|
@ -275,7 +275,7 @@ Result aptInit(NS_APPID appID)
|
||||
Result ret=0;
|
||||
|
||||
//initialize APT stuff, escape load screen
|
||||
srv_getServiceHandle(NULL, &aptuHandle, "APT:U");
|
||||
srvGetServiceHandle(&aptuHandle, "APT:U");
|
||||
if((ret=APT_GetLockHandle(&aptuHandle, 0x0, &aptLockHandle)))return ret;
|
||||
svcCloseHandle(aptuHandle);
|
||||
|
||||
@ -420,7 +420,7 @@ void aptSetStatusPower(u32 status)
|
||||
void aptOpenSession()
|
||||
{
|
||||
svcWaitSynchronization1(aptLockHandle, U64_MAX);
|
||||
srv_getServiceHandle(NULL, &aptuHandle, "APT:U");
|
||||
srvGetServiceHandle(&aptuHandle, "APT:U");
|
||||
}
|
||||
|
||||
void aptCloseSession()
|
||||
|
@ -11,7 +11,7 @@ Result CFGNOR_Initialize(u8 value)
|
||||
Result ret = 0;
|
||||
u32 *cmdbuf = getThreadCommandBuffer();
|
||||
|
||||
ret = srv_getServiceHandle(NULL, &CFGNOR_handle, "cfg:nor");
|
||||
ret = srvGetServiceHandle(&CFGNOR_handle, "cfg:nor");
|
||||
if(ret!=0)return ret;
|
||||
|
||||
cmdbuf[0] = 0x00010040;
|
||||
|
@ -70,7 +70,7 @@ Result CSND_initialize(u32* sharedMem)
|
||||
if(sharedMem==NULL)sharedMem = (u32*)CSND_SHAREDMEM_DEFAULT;
|
||||
CSND_sharedmem = sharedMem;
|
||||
|
||||
ret = srv_getServiceHandle(NULL, &CSND_handle, "csnd:SND");
|
||||
ret = srvGetServiceHandle(&CSND_handle, "csnd:SND");
|
||||
if(ret!=0)return ret;
|
||||
|
||||
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);
|
||||
|
@ -8,7 +8,7 @@ Handle gspGpuHandle=0;
|
||||
|
||||
Result gspInit()
|
||||
{
|
||||
return srv_getServiceHandle(NULL, &gspGpuHandle, "gsp::Gpu");
|
||||
return srvGetServiceHandle(&gspGpuHandle, "gsp::Gpu");
|
||||
}
|
||||
|
||||
void gspExit()
|
||||
|
@ -14,7 +14,7 @@ Result hidInit(u32* sharedMem)
|
||||
if(!sharedMem)sharedMem=(u32*)HID_SHAREDMEM_DEFAULT;
|
||||
Result ret=0;
|
||||
|
||||
if((ret=srv_getServiceHandle(NULL, &hidHandle, "hid:USER")))return ret;
|
||||
if((ret=srvGetServiceHandle(&hidHandle, "hid:USER")))return ret;
|
||||
|
||||
if((ret=HIDUSER_GetInfo(NULL, &hidMemHandle)))return ret;
|
||||
hidSharedMem=sharedMem;
|
||||
|
@ -162,7 +162,7 @@ Result IRU_Initialize(u32 *sharedmem_addr, u32 sharedmem_size)
|
||||
|
||||
if(iru_handle)return 0;
|
||||
|
||||
ret = srv_getServiceHandle(NULL, &iru_handle, "ir:u");
|
||||
ret = srvGetServiceHandle(&iru_handle, "ir:u");
|
||||
if(ret!=0)return ret;
|
||||
|
||||
ret = irucmd_Initialize();
|
||||
|
@ -142,7 +142,7 @@ Result SOC_Initialize(u32 *context_addr, u32 context_size)
|
||||
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;
|
||||
if((ret = srvGetServiceHandle(&SOCU_handle, "soc:U"))!=0)return ret;
|
||||
|
||||
return socu_cmd1(memhandle, context_size);
|
||||
}
|
||||
|
@ -1,51 +1,64 @@
|
||||
/*
|
||||
srv.c _ Service manager.
|
||||
*/
|
||||
|
||||
#include <3ds/types.h>
|
||||
#include <3ds/srv.h>
|
||||
#include <3ds/svc.h>
|
||||
|
||||
Handle srvHandle=0;
|
||||
|
||||
Result initSrv()
|
||||
static Handle g_srv_handle = 0;
|
||||
|
||||
Result srvInit()
|
||||
{
|
||||
Result ret=0;
|
||||
if(svcConnectToPort(&srvHandle, "srv:"))return ret;
|
||||
return srv_RegisterClient(&srvHandle);
|
||||
Result rc = 0;
|
||||
|
||||
if(rc = svcConnectToPort(&g_srv_handle, "srv:"))
|
||||
return rc;
|
||||
|
||||
if(rc = srvRegisterClient()) {
|
||||
svcCloseHandle(g_srv_handle);
|
||||
g_srv_handle = 0;
|
||||
}
|
||||
|
||||
Result exitSrv()
|
||||
{
|
||||
if(srvHandle)svcCloseHandle(srvHandle);
|
||||
return rc;
|
||||
}
|
||||
|
||||
Result srv_RegisterClient(Handle* handleptr)
|
||||
Result srvExit()
|
||||
{
|
||||
if(g_srv_handle != 0)
|
||||
svcCloseHandle(g_srv_handle);
|
||||
|
||||
g_srv_handle = 0;
|
||||
}
|
||||
|
||||
Result srvRegisterClient()
|
||||
{
|
||||
if(!handleptr)handleptr=&srvHandle;
|
||||
u32* cmdbuf = getThreadCommandBuffer();
|
||||
cmdbuf[0]=0x10002; //request header code
|
||||
cmdbuf[0] = 0x10002;
|
||||
cmdbuf[1] = 0x20;
|
||||
|
||||
Result ret=0;
|
||||
if((ret=svcSendSyncRequest(*handleptr)))return ret;
|
||||
Result rc;
|
||||
if(rc = svcSendSyncRequest(g_srv_handle))
|
||||
return rc;
|
||||
|
||||
return cmdbuf[1];
|
||||
}
|
||||
|
||||
Result srv_getServiceHandle(Handle* handleptr, Handle* out, char* server)
|
||||
Result srvGetServiceHandle(Handle* out, char* name)
|
||||
{
|
||||
if(!handleptr)handleptr=&srvHandle;
|
||||
u8 l=strlen(server);
|
||||
if(!out || !server || l>8)return -1;
|
||||
u8 len = strlen(name);
|
||||
Result rc;
|
||||
|
||||
u32* cmdbuf = getThreadCommandBuffer();
|
||||
|
||||
cmdbuf[0]=0x50100; //request header code
|
||||
strcpy((char*)&cmdbuf[1], server);
|
||||
cmdbuf[3]=l;
|
||||
cmdbuf[0] = 0x50100;
|
||||
strcpy((char*) &cmdbuf[1], name);
|
||||
cmdbuf[3] = len;
|
||||
cmdbuf[4] = 0x0;
|
||||
|
||||
Result ret=0;
|
||||
if((ret=svcSendSyncRequest(*handleptr)))return ret;
|
||||
if(rc = svcSendSyncRequest(g_srv_handle))
|
||||
return rc;
|
||||
|
||||
*out = cmdbuf[3];
|
||||
|
||||
return cmdbuf[1];
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user