]> Chaos Git - corbenik/ctrulib.git/commitdiff
svc.h/s cleanup; add svcWriteProcessMemory & svcControlProcessMemory
authorfincs <fincs.alt1@gmail.com>
Mon, 13 Apr 2015 15:56:38 +0000 (17:56 +0200)
committerfincs <fincs.alt1@gmail.com>
Mon, 13 Apr 2015 15:56:38 +0000 (17:56 +0200)
libctru/include/3ds/svc.h
libctru/source/svc.s

index 9d41ec2350d6db70c3f552ace3212e83b3ca6f76..11a934e496a3b0da80ccf6ab093217247d4a6685 100644 (file)
@@ -195,6 +195,7 @@ s32  svcCreateThread(Handle* thread, ThreadFunc entrypoint, u32 arg, u32* stack_
 void __attribute__((noreturn)) svcExitThread();
 void svcSleepThread(s64 ns);
 s32  svcSetThreadPriority(Handle thread, s32 prio);
+s32  svcGetProcessorID();
 s32  svcCreateMutex(Handle* mutex, bool initially_locked);
 s32  svcReleaseMutex(Handle handle);
 s32  svcCreateSemaphore(Handle* semaphore, s32 initial_count, s32 max_count);
@@ -228,12 +229,13 @@ Result svcCreatePort(Handle* portServer, Handle* portClient, const char* name, s
 Result svcDebugActiveProcess(Handle* debug, u32 processId);
 Result svcBreakDebugProcess(Handle debug);
 Result svcTerminateDebugProcess(Handle debug);
-Result svcGetProcessDebugEvent(DebugEventInfo *info, Handle debug);
+Result svcGetProcessDebugEvent(DebugEventInfoinfo, Handle debug);
 Result svcContinueDebugEvent(Handle debug, u32 flags);
 Result svcGetProcessList(s32* processCount, u32* processIds, s32 processIdMaxCount);
 Result svcReadProcessMemory(void* buffer, Handle debug, u32 addr, u32 size);
+Result svcWriteProcessMemory(Handle debug, const void* buffer, u32 addr, u32 size);
+Result svcControlProcessMemory(Handle process, u32 addr0, u32 addr1, u32 size, u32 type, u32 perm);
 Result svcMapProcessMemory(Handle process, u32 startAddr, u32 endAddr);
 Result svcUnmapProcessMemory(Handle process, u32 startAddr, u32 endAddr);
 Result svcBackdoor(s32 (*callback)(void));
 Result svcQueryProcessMemory(MemInfo* info, PageInfo* out, Handle process, u32 addr);
-s32 svcGetProcessorID();
index 8e0fb7b56d1854d97a05f63151c66392de34ca17..76d633211261389e40503372231abffef3365a84 100644 (file)
@@ -65,6 +65,12 @@ svcSetThreadPriority:
        svc 0x0C
        bx  lr
 
+.global svcGetProcessorID
+.type svcGetProcessorID, %function
+svcGetProcessorID:
+       svc 0x11
+       bx  lr
+
 .global svcCreateMutex
 .type svcCreateMutex, %function
 svcCreateMutex:
@@ -80,6 +86,24 @@ svcReleaseMutex:
        svc 0x14
        bx  lr
 
+.global svcCreateSemaphore
+.type svcCreateSemaphore, %function
+svcCreateSemaphore:
+       push {r0}
+       svc 0x15
+       pop {r3}
+       str r1, [r3]
+       bx  lr
+
+.global svcReleaseSemaphore
+.type svcReleaseSemaphore, %function
+svcReleaseSemaphore:
+       push {r0}
+       svc  0x16
+       pop  {r3}
+       str  r1, [r3]
+       bx   lr
+
 .global svcCreateEvent
 .type svcCreateEvent, %function
 svcCreateEvent:
@@ -265,30 +289,6 @@ svcGetProcessId:
        str r1, [r3]
        bx  lr
 
-.global svcOutputDebugString
-.type svcOutputDebugString, %function
-svcOutputDebugString:
-       svc 0x3D
-       bx  lr
-
-.global svcCreateSemaphore
-.type svcCreateSemaphore, %function
-svcCreateSemaphore:
-       push {r0}
-       svc 0x15
-       pop {r3}
-       str r1, [r3]
-       bx  lr
-
-.global svcReleaseSemaphore
-.type svcReleaseSemaphore, %function
-svcReleaseSemaphore:
-       push {r0}
-       svc  0x16
-       pop  {r3}
-       str  r1, [r3]
-       bx   lr
-
 .global svcGetThreadId
 .type svcGetThreadId, %function
 svcGetThreadId:
@@ -298,6 +298,12 @@ svcGetThreadId:
        str r1, [r3]
        bx  lr
 
+.global svcOutputDebugString
+.type svcOutputDebugString, %function
+svcOutputDebugString:
+       svc 0x3D
+       bx  lr
+
 .global svcCreatePort
 .type svcCreatePort, %function
 svcCreatePort:
@@ -361,6 +367,22 @@ svcReadProcessMemory:
        svc 0x6A
        bx lr
 
+.global svcWriteProcessMemory
+.type svcWriteProcessMemory, %function
+svcWriteProcessMemory:
+       svc 0x6B
+       bx  lr
+
+.global svcControlProcessMemory
+.type svcControlProcessMemory, %function
+svcControlProcessMemory:
+       push {r4-r5}
+       ldr r4, [sp, #0x8]
+       ldr r5, [sp, #0xC]
+       svc 0x70
+       pop {r4-r5}
+       bx lr
+
 .global svcMapProcessMemory
 .type svcMapProcessMemory, %function
 svcMapProcessMemory:
@@ -376,8 +398,8 @@ svcUnmapProcessMemory:
 .global svcBackdoor
 .type svcBackdoor, %function
 svcBackdoor:
-    svc 0x7B
-    bx lr
+       svc 0x7B
+       bx lr
 
 .global svcQueryProcessMemory
 .type svcQueryProcessMemory, %function
@@ -391,9 +413,3 @@ svcQueryProcessMemory:
        add sp, sp, #8
        pop {r4-r6}
        bx lr
-
-.global svcGetProcessorID
-.type svcGetProcessorID, %function
-svcGetProcessorID:
-       svc 0x11
-       bx  lr