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

index 65eef42970ded79e984c83c385e61861466e5fae..b883fcbe479bbee6777cff34ac695a1fee1687a4 100644 (file)
@@ -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];