Merge pull request #97 from yuriks/more-syscalls

Add a few more SVC call stubs
This commit is contained in:
Dave Murphy 2015-02-28 00:59:28 +00:00
commit ce6fce07a1
2 changed files with 81 additions and 0 deletions

View 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);

View 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