Merge pull request #97 from yuriks/more-syscalls
Add a few more SVC call stubs
This commit is contained in:
commit
ce6fce07a1
@ -86,6 +86,14 @@ s32 svcGetSystemInfo(s64* out, u32 type, s32 param);
|
|||||||
s32 svcGetProcessInfo(s64* out, Handle process, u32 type);
|
s32 svcGetProcessInfo(s64* out, Handle process, u32 type);
|
||||||
s32 svcConnectToPort(volatile Handle* out, const char* portName);
|
s32 svcConnectToPort(volatile Handle* out, const char* portName);
|
||||||
s32 svcSendSyncRequest(Handle session);
|
s32 svcSendSyncRequest(Handle session);
|
||||||
|
Result svcOpenProcess(Handle* process, u32 processId);
|
||||||
s32 svcGetProcessId(u32 *out, Handle handle);
|
s32 svcGetProcessId(u32 *out, Handle handle);
|
||||||
s32 svcGetThreadId(u32 *out, Handle handle);
|
s32 svcGetThreadId(u32 *out, Handle handle);
|
||||||
s32 svcOutputDebugString(const char* str, int length);
|
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);
|
||||||
|
@ -247,6 +247,15 @@ svcSendSyncRequest:
|
|||||||
svc 0x32
|
svc 0x32
|
||||||
bx lr
|
bx lr
|
||||||
|
|
||||||
|
.global svcOpenProcess
|
||||||
|
.type svcOpenProcess, %function
|
||||||
|
svcOpenProcess:
|
||||||
|
push {r0}
|
||||||
|
svc 0x33
|
||||||
|
pop {r2}
|
||||||
|
str r1, [r2]
|
||||||
|
bx lr
|
||||||
|
|
||||||
.global svcGetProcessId
|
.global svcGetProcessId
|
||||||
.type svcGetProcessId, %function
|
.type svcGetProcessId, %function
|
||||||
svcGetProcessId:
|
svcGetProcessId:
|
||||||
@ -288,3 +297,67 @@ svcGetThreadId:
|
|||||||
ldr r3, [sp], #4
|
ldr r3, [sp], #4
|
||||||
str r1, [r3]
|
str r1, [r3]
|
||||||
bx lr
|
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
|
||||||
|
Loading…
Reference in New Issue
Block a user