Result svc_controlMemory(u32* outaddr, u32 addr0, u32 addr1, u32 size, u32 operation, u32 permissions); //(outaddr is usually the same as the input addr0)
Result svc_createEvent(Handle* event, u8 resettype);
Result svc_clearEvent(Handle handle);
+ Result svc_createMemoryBlock(Handle* memblock, u32 addr, u32 size, u32 mypermission, u32 otherpermission);
Result svc_mapMemoryBlock(Handle memblock, u32 addr, u32 mypermissions, u32 otherpermission);
Result svc_waitSynchronization1(Handle handle, s64 nanoseconds);
Result svc_waitSynchronizationN(s32* out, Handle* handles, s32 handlecount, bool waitAll, s64 nanoseconds);
svc 0x19
bx lr
+.global svc_createMemoryBlock
+.type svc_createMemoryBlock, %function
+svc_createMemoryBlock:
+ str r0, [sp, #-4]!
+ ldr r0, [sp, #4]
+ svc 0x1E
+ ldr r2, [sp], #4
+ str r1, [r2]
+ bx lr
+
.global svc_mapMemoryBlock
.type svc_mapMemoryBlock, %function
svc_mapMemoryBlock: