diff --git a/libctru/source/services/cfgnor.c b/libctru/source/services/cfgnor.c index e467655..c21c830 100644 --- a/libctru/source/services/cfgnor.c +++ b/libctru/source/services/cfgnor.c @@ -3,6 +3,7 @@ #include <3ds/svc.h> #include <3ds/srv.h> #include <3ds/services/cfgnor.h> +#include <3ds/ipc.h> Handle CFGNOR_handle = 0; @@ -14,7 +15,7 @@ Result CFGNOR_Initialize(u8 value) ret = srvGetServiceHandle(&CFGNOR_handle, "cfg:nor"); if(ret!=0)return ret; - cmdbuf[0] = 0x00010040; + cmdbuf[0] = IPC_MakeHeader(0x1,1,0); // 0x10040 cmdbuf[1] = (u32)value; if((ret = svcSendSyncRequest(CFGNOR_handle))!=0)return ret; @@ -28,7 +29,7 @@ Result CFGNOR_Shutdown() Result ret = 0; u32 *cmdbuf = getThreadCommandBuffer(); - cmdbuf[0] = 0x00020000; + cmdbuf[0] = IPC_MakeHeader(0x2,0,0); // 0x20000 if((ret = svcSendSyncRequest(CFGNOR_handle))!=0)return ret; ret = (Result)cmdbuf[1]; @@ -44,10 +45,10 @@ Result CFGNOR_ReadData(u32 offset, u32 *buf, u32 size) Result ret = 0; u32 *cmdbuf = getThreadCommandBuffer(); - cmdbuf[0] = 0x00050082; + cmdbuf[0] = IPC_MakeHeader(0x5,2,2); // 0x50082 cmdbuf[1] = offset; cmdbuf[2] = size; - cmdbuf[3] = (size<<4) | 12; + cmdbuf[3] = IPC_Desc_Buffer(size,IPC_BUFFER_W); cmdbuf[4] = (u32)buf; if((ret = svcSendSyncRequest(CFGNOR_handle))!=0)return ret; @@ -61,10 +62,10 @@ Result CFGNOR_WriteData(u32 offset, u32 *buf, u32 size) u32 ret = 0; u32 *cmdbuf = getThreadCommandBuffer(); - cmdbuf[0] = 0x00060082; + cmdbuf[0] = IPC_MakeHeader(0x6,2,2); // 0x60082 cmdbuf[1] = offset; cmdbuf[2] = size; - cmdbuf[3] = (size<<4) | 10; + cmdbuf[3] = IPC_Desc_Buffer(size,IPC_BUFFER_R); cmdbuf[4] = (u32)buf; if((ret = svcSendSyncRequest(CFGNOR_handle))!=0)return ret;