Clean up svc.s

This commit is contained in:
fincs 2015-10-07 23:32:20 +02:00
parent 506d9205f3
commit c25e04295a

View File

@ -1,9 +1,15 @@
.arm .arm
.align 4 .align 4
.global svcControlMemory .macro SVC_BEGIN name
.type svcControlMemory, %function .section .text.\name, "ax", %progbits
svcControlMemory: .global \name
.type \name, %function
.align 2
\name:
.endm
SVC_BEGIN svcControlMemory
push {r0, r4} push {r0, r4}
ldr r0, [sp, #0x8] ldr r0, [sp, #0x8]
ldr r4, [sp, #0x8+0x4] ldr r4, [sp, #0x8+0x4]
@ -13,9 +19,7 @@ svcControlMemory:
ldr r4, [sp], #4 ldr r4, [sp], #4
bx lr bx lr
.global svcQueryMemory SVC_BEGIN svcQueryMemory
.type svcQueryMemory, %function
svcQueryMemory:
push {r0, r1, r4-r6} push {r0, r1, r4-r6}
svc 0x02 svc 0x02
ldr r6, [sp] ldr r6, [sp]
@ -29,15 +33,11 @@ svcQueryMemory:
pop {r4-r6} pop {r4-r6}
bx lr bx lr
.global svcExitProcess SVC_BEGIN svcExitProcess
.type svcExitProcess, %function
svcExitProcess:
svc 0x03 svc 0x03
bx lr bx lr
.global svcCreateThread SVC_BEGIN svcCreateThread
.type svcCreateThread, %function
svcCreateThread:
push {r0, r4} push {r0, r4}
ldr r0, [sp, #0x8] ldr r0, [sp, #0x8]
ldr r4, [sp, #0x8+0x4] ldr r4, [sp, #0x8+0x4]
@ -47,150 +47,108 @@ svcCreateThread:
ldr r4, [sp], #4 ldr r4, [sp], #4
bx lr bx lr
.global svcExitThread SVC_BEGIN svcExitThread
.type svcExitThread, %function
svcExitThread:
svc 0x09 svc 0x09
bx lr bx lr
.global svcSleepThread SVC_BEGIN svcSleepThread
.type svcSleepThread, %function
svcSleepThread:
svc 0x0A svc 0x0A
bx lr bx lr
.global svcGetThreadPriority SVC_BEGIN svcGetThreadPriority
.type svcGetThreadPriority, %function
svcGetThreadPriority:
str r0, [sp, #-0x4]! str r0, [sp, #-0x4]!
svc 0x0B svc 0x0B
ldr r3, [sp], #4 ldr r3, [sp], #4
str r1, [r3] str r1, [r3]
bx lr bx lr
.global svcSetThreadPriority SVC_BEGIN svcSetThreadPriority
.type svcSetThreadPriority, %function
svcSetThreadPriority:
svc 0x0C svc 0x0C
bx lr bx lr
.global svcGetThreadAffinityMask SVC_BEGIN svcGetThreadAffinityMask
.type svcGetThreadAffinityMask, %function
svcGetThreadAffinityMask:
svc 0x0D svc 0x0D
bx lr bx lr
.global svcSetThreadAffinityMask SVC_BEGIN svcSetThreadAffinityMask
.type svcSetThreadAffinityMask, %function
svcSetThreadAffinityMask:
svc 0x0E svc 0x0E
bx lr bx lr
.global svcGetThreadIdealProcessor SVC_BEGIN svcGetThreadIdealProcessor
.type svcGetThreadIdealProcessor, %function
svcGetThreadIdealProcessor:
str r0, [sp, #-0x4]! str r0, [sp, #-0x4]!
svc 0x0F svc 0x0F
ldr r3, [sp], #4 ldr r3, [sp], #4
str r1, [r3] str r1, [r3]
bx lr bx lr
.global svcSetThreadIdealProcessor SVC_BEGIN svcSetThreadIdealProcessor
.type svcSetThreadIdealProcessor, %function
svcSetThreadIdealProcessor:
svc 0x10 svc 0x10
bx lr bx lr
.global svcGetProcessorID SVC_BEGIN svcGetProcessorID
.type svcGetProcessorID, %function
svcGetProcessorID:
svc 0x11 svc 0x11
bx lr bx lr
.global svcCreateMutex SVC_BEGIN svcCreateMutex
.type svcCreateMutex, %function
svcCreateMutex:
str r0, [sp, #-4]! str r0, [sp, #-4]!
svc 0x13 svc 0x13
ldr r3, [sp], #4 ldr r3, [sp], #4
str r1, [r3] str r1, [r3]
bx lr bx lr
.global svcReleaseMutex SVC_BEGIN svcReleaseMutex
.type svcReleaseMutex, %function
svcReleaseMutex:
svc 0x14 svc 0x14
bx lr bx lr
.global svcCreateSemaphore SVC_BEGIN svcCreateSemaphore
.type svcCreateSemaphore, %function
svcCreateSemaphore:
push {r0} push {r0}
svc 0x15 svc 0x15
pop {r3} pop {r3}
str r1, [r3] str r1, [r3]
bx lr bx lr
.global svcReleaseSemaphore SVC_BEGIN svcReleaseSemaphore
.type svcReleaseSemaphore, %function
svcReleaseSemaphore:
push {r0} push {r0}
svc 0x16 svc 0x16
pop {r3} pop {r3}
str r1, [r3] str r1, [r3]
bx lr bx lr
.global svcCreateEvent SVC_BEGIN svcCreateEvent
.type svcCreateEvent, %function
svcCreateEvent:
str r0, [sp, #-4]! str r0, [sp, #-4]!
svc 0x17 svc 0x17
ldr r2, [sp], #4 ldr r2, [sp], #4
str r1, [r2] str r1, [r2]
bx lr bx lr
.global svcSignalEvent SVC_BEGIN svcSignalEvent
.type svcSignalEvent, %function
svcSignalEvent:
svc 0x18 svc 0x18
bx lr bx lr
.global svcClearEvent SVC_BEGIN svcClearEvent
.type svcClearEvent, %function
svcClearEvent:
svc 0x19 svc 0x19
bx lr bx lr
.global svcCreateTimer SVC_BEGIN svcCreateTimer
.type svcCreateTimer, %function
svcCreateTimer:
str r0, [sp, #-4]! str r0, [sp, #-4]!
svc 0x1A svc 0x1A
ldr r2, [sp], #4 ldr r2, [sp], #4
str r1, [r2] str r1, [r2]
bx lr bx lr
.global svcSetTimer SVC_BEGIN svcSetTimer
.type svcSetTimer, %function
svcSetTimer:
svc 0x1B svc 0x1B
bx lr bx lr
.global svcCancelTimer SVC_BEGIN svcCancelTimer
.type svcCancelTimer, %function
svcCancelTimer:
svc 0x1C svc 0x1C
bx lr bx lr
.global svcClearTimer SVC_BEGIN svcClearTimer
.type svcClearTimer, %function
svcClearTimer:
svc 0x1D svc 0x1D
bx lr bx lr
.global svcCreateMemoryBlock SVC_BEGIN svcCreateMemoryBlock
.type svcCreateMemoryBlock, %function
svcCreateMemoryBlock:
str r0, [sp, #-4]! str r0, [sp, #-4]!
ldr r0, [sp, #4] ldr r0, [sp, #4]
svc 0x1E svc 0x1E
@ -198,30 +156,22 @@ svcCreateMemoryBlock:
str r1, [r2] str r1, [r2]
bx lr bx lr
.global svcMapMemoryBlock SVC_BEGIN svcMapMemoryBlock
.type svcMapMemoryBlock, %function
svcMapMemoryBlock:
svc 0x1F svc 0x1F
bx lr bx lr
.global svcUnmapMemoryBlock SVC_BEGIN svcUnmapMemoryBlock
.type svcUnmapMemoryBlock, %function
svcUnmapMemoryBlock:
svc 0x20 svc 0x20
bx lr bx lr
.global svcCreateAddressArbiter SVC_BEGIN svcCreateAddressArbiter
.type svcCreateAddressArbiter, %function
svcCreateAddressArbiter:
push {r0} push {r0}
svc 0x21 svc 0x21
pop {r2} pop {r2}
str r1, [r2] str r1, [r2]
bx lr bx lr
.global svcArbitrateAddress SVC_BEGIN svcArbitrateAddress
.type svcArbitrateAddress, %function
svcArbitrateAddress:
push {r4, r5} push {r4, r5}
add sp, #8 add sp, #8
ldr r5, [sp] ldr r5, [sp]
@ -231,21 +181,15 @@ svcArbitrateAddress:
pop {r4, r5} pop {r4, r5}
bx lr bx lr
.global svcCloseHandle SVC_BEGIN svcCloseHandle
.type svcCloseHandle, %function
svcCloseHandle:
svc 0x23 svc 0x23
bx lr bx lr
.global svcWaitSynchronization SVC_BEGIN svcWaitSynchronization
.type svcWaitSynchronization, %function
svcWaitSynchronization:
svc 0x24 svc 0x24
bx lr bx lr
.global svcWaitSynchronizationN SVC_BEGIN svcWaitSynchronizationN
.type svcWaitSynchronizationN, %function
svcWaitSynchronizationN:
str r5, [sp, #-4]! str r5, [sp, #-4]!
str r4, [sp, #-4]! str r4, [sp, #-4]!
mov r5, r0 mov r5, r0
@ -257,24 +201,18 @@ svcWaitSynchronizationN:
ldr r5, [sp], #4 ldr r5, [sp], #4
bx lr bx lr
.global svcDuplicateHandle SVC_BEGIN svcDuplicateHandle
.type svcDuplicateHandle, %function
svcDuplicateHandle:
str r0, [sp, #-0x4]! str r0, [sp, #-0x4]!
svc 0x27 svc 0x27
ldr r3, [sp], #4 ldr r3, [sp], #4
str r1, [r3] str r1, [r3]
bx lr bx lr
.global svcGetSystemTick SVC_BEGIN svcGetSystemTick
.type svcGetSystemTick, %function
svcGetSystemTick:
svc 0x28 svc 0x28
bx lr bx lr
.global svcGetSystemInfo SVC_BEGIN svcGetSystemInfo
.type svcGetSystemInfo, %function
svcGetSystemInfo:
str r0, [sp, #-0x4]! str r0, [sp, #-0x4]!
svc 0x2A svc 0x2A
ldr r3, [sp], #4 ldr r3, [sp], #4
@ -282,9 +220,7 @@ svcGetSystemInfo:
str r2, [r3,#4] str r2, [r3,#4]
bx lr bx lr
.global svcGetProcessInfo SVC_BEGIN svcGetProcessInfo
.type svcGetProcessInfo, %function
svcGetProcessInfo:
str r0, [sp, #-0x4]! str r0, [sp, #-0x4]!
svc 0x2B svc 0x2B
ldr r3, [sp], #4 ldr r3, [sp], #4
@ -292,9 +228,7 @@ svcGetProcessInfo:
str r2, [r3,#4] str r2, [r3,#4]
bx lr bx lr
.global svcGetThreadInfo SVC_BEGIN svcGetThreadInfo
.type svcGetThreadInfo, %function
svcGetThreadInfo:
str r0, [sp, #-0x4]! str r0, [sp, #-0x4]!
svc 0x2C svc 0x2C
ldr r3, [sp], #4 ldr r3, [sp], #4
@ -302,81 +236,61 @@ svcGetThreadInfo:
str r2, [r3,#4] str r2, [r3,#4]
bx lr bx lr
.global svcConnectToPort SVC_BEGIN svcConnectToPort
.type svcConnectToPort, %function
svcConnectToPort:
str r0, [sp, #-0x4]! str r0, [sp, #-0x4]!
svc 0x2D svc 0x2D
ldr r3, [sp], #4 ldr r3, [sp], #4
str r1, [r3] str r1, [r3]
bx lr bx lr
.global svcSendSyncRequest SVC_BEGIN svcSendSyncRequest
.type svcSendSyncRequest, %function
svcSendSyncRequest:
svc 0x32 svc 0x32
bx lr bx lr
.global svcOpenProcess SVC_BEGIN svcOpenProcess
.type svcOpenProcess, %function
svcOpenProcess:
push {r0} push {r0}
svc 0x33 svc 0x33
pop {r2} pop {r2}
str r1, [r2] str r1, [r2]
bx lr bx lr
.global svcOpenThread SVC_BEGIN svcOpenThread
.type svcOpenThread, %function
svcOpenThread:
push {r0} push {r0}
svc 0x34 svc 0x34
pop {r2} pop {r2}
str r1, [r2] str r1, [r2]
bx lr bx lr
.global svcGetProcessId SVC_BEGIN svcGetProcessId
.type svcGetProcessId, %function
svcGetProcessId:
str r0, [sp, #-0x4]! str r0, [sp, #-0x4]!
svc 0x35 svc 0x35
ldr r3, [sp], #4 ldr r3, [sp], #4
str r1, [r3] str r1, [r3]
bx lr bx lr
.global svcGetProcessIdOfThread SVC_BEGIN svcGetProcessIdOfThread
.type svcGetProcessIdOfThread, %function
svcGetProcessIdOfThread:
str r0, [sp, #-0x4]! str r0, [sp, #-0x4]!
svc 0x36 svc 0x36
ldr r3, [sp], #4 ldr r3, [sp], #4
str r1, [r3] str r1, [r3]
bx lr bx lr
.global svcGetThreadId SVC_BEGIN svcGetThreadId
.type svcGetThreadId, %function
svcGetThreadId:
str r0, [sp, #-0x4]! str r0, [sp, #-0x4]!
svc 0x37 svc 0x37
ldr r3, [sp], #4 ldr r3, [sp], #4
str r1, [r3] str r1, [r3]
bx lr bx lr
.global svcBreak SVC_BEGIN svcBreak
.type svcBreak, %function
svcBreak:
svc 0x3C svc 0x3C
bx lr bx lr
.global svcOutputDebugString SVC_BEGIN svcOutputDebugString
.type svcOutputDebugString, %function
svcOutputDebugString:
svc 0x3D svc 0x3D
bx lr bx lr
.global svcCreatePort SVC_BEGIN svcCreatePort
.type svcCreatePort, %function
svcCreatePort:
push {r0, r1} push {r0, r1}
svc 0x47 svc 0x47
ldr r3, [sp, #0] ldr r3, [sp, #0]
@ -386,9 +300,7 @@ svcCreatePort:
add sp, sp, #8 add sp, sp, #8
bx lr bx lr
.global svcAcceptSession SVC_BEGIN svcAcceptSession
.type svcAcceptSession, %function
svcAcceptSession:
str r0, [sp, #-4]! str r0, [sp, #-4]!
svc 0x4A svc 0x4A
ldr r2, [sp] ldr r2, [sp]
@ -396,9 +308,7 @@ svcAcceptSession:
add sp, sp, #4 add sp, sp, #4
bx lr bx lr
.global svcReplyAndReceive SVC_BEGIN svcReplyAndReceive
.type svcReplyAndReceive, %function
svcReplyAndReceive:
str r0, [sp, #-4]! str r0, [sp, #-4]!
svc 0x4F svc 0x4F
ldr r2, [sp] ldr r2, [sp]
@ -406,21 +316,15 @@ svcReplyAndReceive:
add sp, sp, #4 add sp, sp, #4
bx lr bx lr
.global svcInvalidateProcessDataCache SVC_BEGIN svcInvalidateProcessDataCache
.type svcInvalidateProcessDataCache, %function
svcInvalidateProcessDataCache:
svc 0x52 svc 0x52
bx lr bx lr
.global svcFlushProcessDataCache SVC_BEGIN svcFlushProcessDataCache
.type svcFlushProcessDataCache, %function
svcFlushProcessDataCache:
svc 0x54 svc 0x54
bx lr bx lr
.global svcStartInterProcessDma SVC_BEGIN svcStartInterProcessDma
.type svcStartInterProcessDma, %function
svcStartInterProcessDma:
stmfd sp!, {r0, r4, r5} stmfd sp!, {r0, r4, r5}
ldr r0, [sp, #0xC] ldr r0, [sp, #0xC]
ldr r4, [sp, #0x10] ldr r4, [sp, #0x10]
@ -430,57 +334,41 @@ svcStartInterProcessDma:
str r1, [r2] str r1, [r2]
bx lr bx lr
.global svcStopDma SVC_BEGIN svcStopDma
.type svcStopDma, %function
svcStopDma:
svc 0x56 svc 0x56
bx lr bx lr
.global svcGetDmaState SVC_BEGIN svcGetDmaState
.type svcGetDmaState, %function
svcGetDmaState:
str r0, [sp, #-4]! str r0, [sp, #-4]!
svc 0x57 svc 0x57
ldr r3, [sp], #4 ldr r3, [sp], #4
str r1, [r3] str r1, [r3]
bx lr bx lr
.global svcDebugActiveProcess SVC_BEGIN svcDebugActiveProcess
.type svcDebugActiveProcess, %function
svcDebugActiveProcess:
push {r0} push {r0}
svc 0x60 svc 0x60
pop {r2} pop {r2}
str r1, [r2] str r1, [r2]
bx lr bx lr
.global svcBreakDebugProcess SVC_BEGIN svcBreakDebugProcess
.type svcBreakDebugProcess, %function
svcBreakDebugProcess:
svc 0x61 svc 0x61
bx lr bx lr
.global svcTerminateDebugProcess SVC_BEGIN svcTerminateDebugProcess
.type svcTerminateDebugProcess, %function
svcTerminateDebugProcess:
svc 0x62 svc 0x62
bx lr bx lr
.global svcGetProcessDebugEvent SVC_BEGIN svcGetProcessDebugEvent
.type svcGetProcessDebugEvent, %function
svcGetProcessDebugEvent:
svc 0x63 svc 0x63
bx lr bx lr
.global svcContinueDebugEvent SVC_BEGIN svcContinueDebugEvent
.type svcContinueDebugEvent, %function
svcContinueDebugEvent:
svc 0x64 svc 0x64
bx lr bx lr
.global svcGetProcessList SVC_BEGIN svcGetProcessList
.type svcGetProcessList, %function
svcGetProcessList:
push {r0, r1} push {r0, r1}
svc 0x65 svc 0x65
ldr r3, [sp, #0] ldr r3, [sp, #0]
@ -490,21 +378,15 @@ svcGetProcessList:
add sp, sp, #8 add sp, sp, #8
bx lr bx lr
.global svcReadProcessMemory SVC_BEGIN svcReadProcessMemory
.type svcReadProcessMemory, %function
svcReadProcessMemory:
svc 0x6A svc 0x6A
bx lr bx lr
.global svcWriteProcessMemory SVC_BEGIN svcWriteProcessMemory
.type svcWriteProcessMemory, %function
svcWriteProcessMemory:
svc 0x6B svc 0x6B
bx lr bx lr
.global svcControlProcessMemory SVC_BEGIN svcControlProcessMemory
.type svcControlProcessMemory, %function
svcControlProcessMemory:
push {r4-r5} push {r4-r5}
ldr r4, [sp, #0x8] ldr r4, [sp, #0x8]
ldr r5, [sp, #0xC] ldr r5, [sp, #0xC]
@ -512,39 +394,27 @@ svcControlProcessMemory:
pop {r4-r5} pop {r4-r5}
bx lr bx lr
.global svcMapProcessMemory SVC_BEGIN svcMapProcessMemory
.type svcMapProcessMemory, %function
svcMapProcessMemory:
svc 0x71 svc 0x71
bx lr bx lr
.global svcUnmapProcessMemory SVC_BEGIN svcUnmapProcessMemory
.type svcUnmapProcessMemory, %function
svcUnmapProcessMemory:
svc 0x72 svc 0x72
bx lr bx lr
.global svcTerminateProcess SVC_BEGIN svcTerminateProcess
.type svcTerminateProcess, %function
svcTerminateProcess:
svc 0x76 svc 0x76
bx lr bx lr
.global svcBackdoor SVC_BEGIN svcBackdoor
.type svcBackdoor, %function
svcBackdoor:
svc 0x7B svc 0x7B
bx lr bx lr
.global svcKernelSetState SVC_BEGIN svcKernelSetState
.type svcKernelSetState, %function
svcKernelSetState:
svc 0x7C svc 0x7C
bx lr bx lr
.global svcQueryProcessMemory SVC_BEGIN svcQueryProcessMemory
.type svcQueryProcessMemory, %function
svcQueryProcessMemory:
push {r0, r1, r4-r6} push {r0, r1, r4-r6}
svc 0x7D svc 0x7D
ldr r6, [sp] ldr r6, [sp]