]> Chaos Git - corbenik/ctrulib.git/commitdiff
Implement APT_GetProgramID
authorsuloku <sulokutdcmago@gmail.com>
Thu, 1 Oct 2015 15:19:13 +0000 (17:19 +0200)
committersuloku <sulokutdcmago@gmail.com>
Thu, 1 Oct 2015 15:19:13 +0000 (17:19 +0200)
libctru/source/services/apt.c

index 1d01d4d4c9d7e8a8ac1cb33e716f67bb9f96bc6e..2b3c97b472809cf865806e8997141b64ca91fc74 100644 (file)
@@ -833,6 +833,28 @@ Result APT_GetAppletProgramInfo(Handle* handle, u32 id, u32 flags, u16 *titlever
        return cmdbuf[1];
 }
 
+Result APT_GetProgramID(Handle* handle, u64* pProgramID)
+{
+       if(!handle)handle=&aptuHandle;
+
+       u32* cmdbuf=getThreadCommandBuffer();
+       cmdbuf[0] = 0x00580002; //request header code
+       cmdbuf[1] = 0x20;
+       
+       Result ret=0;
+       if((ret=svcSendSyncRequest(*handle)))return ret;
+
+       if(ret==0)ret = cmdbuf[1];
+
+       if(pProgramID)
+       {
+               *pProgramID = 0;
+               if(ret==0) *pProgramID=((u64)cmdbuf[3]<<32)|cmdbuf[2];
+       }
+
+       return ret;
+}
+
 Result APT_IsRegistered(Handle* handle, NS_APPID appID, u8* out)
 {
        if(!handle)handle=&aptuHandle;