]> Chaos Git - corbenik/ctrulib.git/commitdiff
Add a few more SVC call stubs
authorYuri Kunde Schlesner <yuriks@yuriks.net>
Sat, 28 Feb 2015 00:20:41 +0000 (21:20 -0300)
committerYuri Kunde Schlesner <yuriks@yuriks.net>
Sat, 28 Feb 2015 00:20:55 +0000 (21:20 -0300)
libctru/include/3ds/svc.h
libctru/source/svc.s

index 271408f29e5b83b0aac21c4555824a727adf47a4..a95674b40375e7a9934a65d8cf5a60a894d8f89f 100644 (file)
@@ -86,6 +86,14 @@ s32  svcGetSystemInfo(s64* out, u32 type, s32 param);
 s32  svcGetProcessInfo(s64* out, Handle process, u32 type);
 s32  svcConnectToPort(volatile Handle* out, const char* portName);
 s32  svcSendSyncRequest(Handle session);
+Result svcOpenProcess(Handle* process, u32 processId);
 s32  svcGetProcessId(u32 *out, Handle handle);
 s32  svcGetThreadId(u32 *out, Handle handle);
 s32  svcOutputDebugString(const char* str, int length);
+Result svcCreatePort(Handle* portServer, Handle* portClient, const char* name, s32 maxSessions);
+Result svcDebugActiveProcess(Handle* debug, u32 processId);
+Result svcGetProcessList(s32* processCount, u32* processIds, s32 processIdMaxCount);
+Result svcReadProcessMemory(void* buffer, Handle debug, u32 addr, u32 size);
+Result svcMapProcessMemory(Handle process, u32 startAddr, u32 endAddr);
+Result svcUnmapProcessMemory(Handle process, u32 startAddr, u32 endAddr);
+Result svcQueryProcessMemory(MemInfo* info, PageInfo* out, Handle process, u32 addr);
index 555eb13f0a61728633c6cc050a4ed6a2bbd3f9d8..18ee93ed86f84a2e360570ba760c1b28b9068e71 100644 (file)
@@ -247,6 +247,15 @@ svcSendSyncRequest:
        svc 0x32
        bx lr
 
+.global svcOpenProcess
+.type svcOpenProcess, %function
+svcOpenProcess:
+       push {r0}
+       svc 0x33
+       pop {r2}
+       str r1, [r2]
+       bx lr
+
 .global svcGetProcessId
 .type svcGetProcessId, %function
 svcGetProcessId:
@@ -288,3 +297,67 @@ svcGetThreadId:
        ldr r3, [sp], #4
        str r1, [r3]
        bx  lr
+
+.global svcCreatePort
+.type svcCreatePort, %function
+svcCreatePort:
+       push {r0, r1}
+       svc 0x47
+       ldr r3, [sp, #0]
+       str r1, [r3]
+       ldr r3, [sp, #4]
+       str r2, [r3]
+       add sp, sp, #8
+       bx lr
+
+.global svcDebugActiveProcess
+.type svcDebugActiveProcess, %function
+svcDebugActiveProcess:
+       push {r0}
+       svc 0x60
+       pop {r2}
+       str r1, [r2]
+       bx lr
+
+.global svcGetProcessList
+.type svcGetProcessList, %function
+svcGetProcessList:
+       push {r0, r1}
+       svc 0x65
+       ldr r3, [sp, #0]
+       str r1, [r3]
+       ldr r3, [sp, #4]
+       str r2, [r3]
+       add sp, sp, #8
+       bx lr
+
+.global svcReadProcessMemory
+.type svcReadProcessMemory, %function
+svcReadProcessMemory:
+       svc 0x6A
+       bx lr
+
+.global svcMapProcessMemory
+.type svcMapProcessMemory, %function
+svcMapProcessMemory:
+       svc 0x71
+       bx lr
+
+.global svcUnmapProcessMemory
+.type svcUnmapProcessMemory, %function
+svcUnmapProcessMemory:
+       svc 0x72
+       bx lr
+
+.global svcQueryProcessMemory
+.type svcQueryProcessMemory, %function
+svcQueryProcessMemory:
+       push {r0, r1, r4-r6}
+       svc 0x7D
+       ldr r6, [sp]
+       stm r6, {r1-r4}
+       ldr r6, [sp, #4]
+       str r5, [r6]
+       add sp, sp, #8
+       pop {r4-r6}
+       bx lr