]> Chaos Git - corbenik/ctrulib.git/commitdiff
Use IPC helpers for pm
authorLectem <lectem@gmail.com>
Wed, 9 Sep 2015 19:56:27 +0000 (15:56 -0400)
committerLectem <lectem@gmail.com>
Sat, 3 Oct 2015 10:59:10 +0000 (06:59 -0400)
libctru/source/services/pm.c

index 26a03e2cab84437678f1e007572dda595c09dce6..a21de43665f36229468003fdee15e5b44c070f13 100644 (file)
@@ -4,6 +4,7 @@
 #include <3ds/svc.h>
 #include <3ds/srv.h>
 #include <3ds/services/pm.h>
+#include <3ds/ipc.h>
 
 static Handle pmHandle;
 
@@ -22,7 +23,7 @@ Result PM_LaunchTitle(u8 mediatype, u64 titleid, u32 launch_flags)
        Result ret = 0;
        u32 *cmdbuf = getThreadCommandBuffer();
 
-       cmdbuf[0] = 0x00010140;
+       cmdbuf[0] = IPC_MakeHeader(0x1,5,0); // 0x10140
        cmdbuf[1] = titleid & 0xffffffff;
        cmdbuf[2] = (titleid >> 32) & 0xffffffff;
        cmdbuf[3] = mediatype;
@@ -39,7 +40,7 @@ Result PM_GetTitleExheaderFlags(u8 mediatype, u64 titleid, u8* out)
        Result ret = 0;
        u32 *cmdbuf = getThreadCommandBuffer();
 
-       cmdbuf[0] = 0x00080100;
+       cmdbuf[0] = IPC_MakeHeader(0x8,4,0); // 0x80100
        cmdbuf[1] = titleid & 0xffffffff;
        cmdbuf[2] = (titleid >> 32) & 0xffffffff;
        cmdbuf[3] = mediatype;
@@ -57,9 +58,9 @@ Result PM_SetFIRMLaunchParams(u32 size, u8* in)
        Result ret = 0;
        u32 *cmdbuf = getThreadCommandBuffer();
 
-       cmdbuf[0] = 0x00090042;
+       cmdbuf[0] = IPC_MakeHeader(0x9,1,2); // 0x90042
        cmdbuf[1] = size;
-       cmdbuf[2] = (size << 0x4) | 0xa;
+       cmdbuf[2] = IPC_Desc_Buffer(size,IPC_BUFFER_R);
        cmdbuf[3] = (u32)in;
        
        if((ret = svcSendSyncRequest(pmHandle))!=0)return ret;
@@ -72,9 +73,9 @@ Result PM_GetFIRMLaunchParams(u32 size, u8* out)
        Result ret = 0;
        u32 *cmdbuf = getThreadCommandBuffer();
 
-       cmdbuf[0] = 0x00070042;
+       cmdbuf[0] = IPC_MakeHeader(0x7,1,2); // 0x70042
        cmdbuf[1] = size;
-       cmdbuf[2] = (size << 0x4) | 0xc;
+       cmdbuf[2] = IPC_Desc_Buffer(size,IPC_BUFFER_W);
        cmdbuf[3] = (u32)out;
        
        if((ret = svcSendSyncRequest(pmHandle))!=0)return ret;
@@ -87,10 +88,10 @@ Result PM_LaunchFIRMSetParams(u32 firm_titleid_low, u32 size, u8* in)
        Result ret = 0;
        u32 *cmdbuf = getThreadCommandBuffer();
 
-       cmdbuf[0] = 0x00020082;
+       cmdbuf[0] = IPC_MakeHeader(0x2,2,2); // 0x20082
        cmdbuf[1] = firm_titleid_low;
        cmdbuf[2] = size;
-       cmdbuf[3] = (size << 0x4) | 0xa;
+       cmdbuf[3] = IPC_Desc_Buffer(size,IPC_BUFFER_R);
        cmdbuf[4] = (u32)in;
        
        if((ret = svcSendSyncRequest(pmHandle))!=0)return ret;