Use IPC helpers for cfgnor
This commit is contained in:
parent
bc3ef580b2
commit
383acf6575
@ -3,6 +3,7 @@
|
|||||||
#include <3ds/svc.h>
|
#include <3ds/svc.h>
|
||||||
#include <3ds/srv.h>
|
#include <3ds/srv.h>
|
||||||
#include <3ds/services/cfgnor.h>
|
#include <3ds/services/cfgnor.h>
|
||||||
|
#include <3ds/ipc.h>
|
||||||
|
|
||||||
Handle CFGNOR_handle = 0;
|
Handle CFGNOR_handle = 0;
|
||||||
|
|
||||||
@ -14,7 +15,7 @@ Result CFGNOR_Initialize(u8 value)
|
|||||||
ret = srvGetServiceHandle(&CFGNOR_handle, "cfg:nor");
|
ret = srvGetServiceHandle(&CFGNOR_handle, "cfg:nor");
|
||||||
if(ret!=0)return ret;
|
if(ret!=0)return ret;
|
||||||
|
|
||||||
cmdbuf[0] = 0x00010040;
|
cmdbuf[0] = IPC_MakeHeader(0x1,1,0); // 0x10040
|
||||||
cmdbuf[1] = (u32)value;
|
cmdbuf[1] = (u32)value;
|
||||||
|
|
||||||
if((ret = svcSendSyncRequest(CFGNOR_handle))!=0)return ret;
|
if((ret = svcSendSyncRequest(CFGNOR_handle))!=0)return ret;
|
||||||
@ -28,7 +29,7 @@ Result CFGNOR_Shutdown()
|
|||||||
Result ret = 0;
|
Result ret = 0;
|
||||||
u32 *cmdbuf = getThreadCommandBuffer();
|
u32 *cmdbuf = getThreadCommandBuffer();
|
||||||
|
|
||||||
cmdbuf[0] = 0x00020000;
|
cmdbuf[0] = IPC_MakeHeader(0x2,0,0); // 0x20000
|
||||||
|
|
||||||
if((ret = svcSendSyncRequest(CFGNOR_handle))!=0)return ret;
|
if((ret = svcSendSyncRequest(CFGNOR_handle))!=0)return ret;
|
||||||
ret = (Result)cmdbuf[1];
|
ret = (Result)cmdbuf[1];
|
||||||
@ -44,10 +45,10 @@ Result CFGNOR_ReadData(u32 offset, u32 *buf, u32 size)
|
|||||||
Result ret = 0;
|
Result ret = 0;
|
||||||
u32 *cmdbuf = getThreadCommandBuffer();
|
u32 *cmdbuf = getThreadCommandBuffer();
|
||||||
|
|
||||||
cmdbuf[0] = 0x00050082;
|
cmdbuf[0] = IPC_MakeHeader(0x5,2,2); // 0x50082
|
||||||
cmdbuf[1] = offset;
|
cmdbuf[1] = offset;
|
||||||
cmdbuf[2] = size;
|
cmdbuf[2] = size;
|
||||||
cmdbuf[3] = (size<<4) | 12;
|
cmdbuf[3] = IPC_Desc_Buffer(size,IPC_BUFFER_W);
|
||||||
cmdbuf[4] = (u32)buf;
|
cmdbuf[4] = (u32)buf;
|
||||||
|
|
||||||
if((ret = svcSendSyncRequest(CFGNOR_handle))!=0)return ret;
|
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 ret = 0;
|
||||||
u32 *cmdbuf = getThreadCommandBuffer();
|
u32 *cmdbuf = getThreadCommandBuffer();
|
||||||
|
|
||||||
cmdbuf[0] = 0x00060082;
|
cmdbuf[0] = IPC_MakeHeader(0x6,2,2); // 0x60082
|
||||||
cmdbuf[1] = offset;
|
cmdbuf[1] = offset;
|
||||||
cmdbuf[2] = size;
|
cmdbuf[2] = size;
|
||||||
cmdbuf[3] = (size<<4) | 10;
|
cmdbuf[3] = IPC_Desc_Buffer(size,IPC_BUFFER_R);
|
||||||
cmdbuf[4] = (u32)buf;
|
cmdbuf[4] = (u32)buf;
|
||||||
|
|
||||||
if((ret = svcSendSyncRequest(CFGNOR_handle))!=0)return ret;
|
if((ret = svcSendSyncRequest(CFGNOR_handle))!=0)return ret;
|
||||||
|
Loading…
Reference in New Issue
Block a user