From 8dd1bbb0ce66427fc76c5fdda3e070ce8f3d552c Mon Sep 17 00:00:00 2001 From: Lectem Date: Wed, 9 Sep 2015 15:56:27 -0400 Subject: [PATCH] Use IPC helpers for pm --- libctru/source/services/pm.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/libctru/source/services/pm.c b/libctru/source/services/pm.c index 26a03e2..a21de43 100644 --- a/libctru/source/services/pm.c +++ b/libctru/source/services/pm.c @@ -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;