From 8f00d34099a9e845e9a213af164d8ff7a02c3373 Mon Sep 17 00:00:00 2001 From: Lectem Date: Wed, 9 Sep 2015 15:38:38 -0400 Subject: [PATCH] Use IPC helpers for ir --- libctru/source/services/ir.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/libctru/source/services/ir.c b/libctru/source/services/ir.c index 65eef42..b883fcb 100644 --- a/libctru/source/services/ir.c +++ b/libctru/source/services/ir.c @@ -4,6 +4,7 @@ #include <3ds/svc.h> #include <3ds/srv.h> #include <3ds/services/ir.h> +#include <3ds/ipc.h> static Handle iru_handle=0; static Handle iru_sharedmem_handle=0; @@ -15,7 +16,7 @@ Result irucmd_Initialize(void) Result ret = 0; u32 *cmdbuf = getThreadCommandBuffer(); - cmdbuf[0] = 0x00010000; + cmdbuf[0] = IPC_MakeHeader(0x1,0,0); // 0x10000 if((ret = svcSendSyncRequest(iru_handle))!=0)return ret; ret = (Result)cmdbuf[1]; @@ -28,7 +29,7 @@ Result irucmd_Shutdown(void) Result ret = 0; u32 *cmdbuf = getThreadCommandBuffer(); - cmdbuf[0] = 0x00020000; + cmdbuf[0] = IPC_MakeHeader(0x2,0,0); // 0x20000 if((ret = svcSendSyncRequest(iru_handle))!=0)return ret; ret = (Result)cmdbuf[1]; @@ -41,9 +42,9 @@ Result irucmd_StartSendTransfer(u8 *buf, u32 size) Result ret = 0; u32 *cmdbuf = getThreadCommandBuffer(); - cmdbuf[0] = 0x00030042; + cmdbuf[0] = IPC_MakeHeader(0x3,1,2); // 0x30042 cmdbuf[1] = size; - cmdbuf[2] = (size<<4) | 10; + cmdbuf[2] = IPC_Desc_Buffer(size,IPC_BUFFER_R); cmdbuf[3] = (u32)buf; if((ret = svcSendSyncRequest(iru_handle))!=0)return ret; @@ -57,7 +58,7 @@ Result irucmd_WaitSendTransfer(void) Result ret = 0; u32 *cmdbuf = getThreadCommandBuffer(); - cmdbuf[0] = 0x00040000; + cmdbuf[0] = IPC_MakeHeader(0x4,0,0); // 0x40000 if((ret = svcSendSyncRequest(iru_handle))!=0)return ret; ret = (Result)cmdbuf[1]; @@ -70,11 +71,11 @@ Result irucmd_StartRecvTransfer(u32 size, u8 flag) Result ret = 0; u32 *cmdbuf = getThreadCommandBuffer(); - cmdbuf[0] = 0x000500C2; + cmdbuf[0] = IPC_MakeHeader(0x5,3,2); // 0x500C2 cmdbuf[1] = iru_sharedmem_size; cmdbuf[2] = size; cmdbuf[3] = (u8)flag; - cmdbuf[4] = 0; + cmdbuf[4] = IPC_Desc_SharedHandles(1); cmdbuf[5] = iru_sharedmem_handle; if((ret = svcSendSyncRequest(iru_handle))!=0)return ret; @@ -88,7 +89,7 @@ Result irucmd_WaitRecvTransfer(u32 *transfercount) Result ret = 0; u32 *cmdbuf = getThreadCommandBuffer(); - cmdbuf[0] = 0x00060000; + cmdbuf[0] = IPC_MakeHeader(0x6,0,0); // 0x60000 if((ret = svcSendSyncRequest(iru_handle))!=0)return ret; ret = (Result)cmdbuf[1]; @@ -103,7 +104,7 @@ Result IRU_SetBitRate(u8 value) Result ret = 0; u32 *cmdbuf = getThreadCommandBuffer(); - cmdbuf[0] = 0x00090040; + cmdbuf[0] = IPC_MakeHeader(0x9,1,0); // 0x90040 cmdbuf[1] = (u32)value; if((ret = svcSendSyncRequest(iru_handle))!=0)return ret; @@ -117,7 +118,7 @@ Result IRU_GetBitRate(u8 *out) Result ret = 0; u32 *cmdbuf = getThreadCommandBuffer(); - cmdbuf[0] = 0x000A0000; + cmdbuf[0] = IPC_MakeHeader(0xA,0,0); // 0xA0000 if((ret = svcSendSyncRequest(iru_handle))!=0)return ret; ret = (Result)cmdbuf[1]; @@ -132,7 +133,7 @@ Result IRU_SetIRLEDState(u32 value) Result ret = 0; u32 *cmdbuf = getThreadCommandBuffer(); - cmdbuf[0] = 0x000B0040; + cmdbuf[0] = IPC_MakeHeader(0xB,1,0); // 0xB0040 cmdbuf[1] = value; if((ret = svcSendSyncRequest(iru_handle))!=0)return ret; @@ -146,7 +147,7 @@ Result IRU_GetIRLEDRecvState(u32 *out) Result ret = 0; u32 *cmdbuf = getThreadCommandBuffer(); - cmdbuf[0] = 0x000C0000; + cmdbuf[0] = IPC_MakeHeader(0xC,0,0); // 0xC0000 if((ret = svcSendSyncRequest(iru_handle))!=0)return ret; ret = (Result)cmdbuf[1];