Add call frame information for SVC wrappers
This commit is contained in:
parent
f4232926c3
commit
cdababc38d
@ -6,9 +6,14 @@
|
|||||||
.global \name
|
.global \name
|
||||||
.type \name, %function
|
.type \name, %function
|
||||||
.align 2
|
.align 2
|
||||||
|
.cfi_startproc
|
||||||
\name:
|
\name:
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
|
.macro SVC_END
|
||||||
|
.cfi_endproc
|
||||||
|
.endm
|
||||||
|
|
||||||
SVC_BEGIN svcControlMemory
|
SVC_BEGIN svcControlMemory
|
||||||
push {r0, r4}
|
push {r0, r4}
|
||||||
ldr r0, [sp, #0x8]
|
ldr r0, [sp, #0x8]
|
||||||
@ -18,6 +23,7 @@ SVC_BEGIN svcControlMemory
|
|||||||
str r1, [r2]
|
str r1, [r2]
|
||||||
ldr r4, [sp], #4
|
ldr r4, [sp], #4
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcQueryMemory
|
SVC_BEGIN svcQueryMemory
|
||||||
push {r0, r1, r4-r6}
|
push {r0, r1, r4-r6}
|
||||||
@ -32,18 +38,22 @@ SVC_BEGIN svcQueryMemory
|
|||||||
add sp, sp, #8
|
add sp, sp, #8
|
||||||
pop {r4-r6}
|
pop {r4-r6}
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcExitProcess
|
SVC_BEGIN svcExitProcess
|
||||||
svc 0x03
|
svc 0x03
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcGetProcessAffinityMask
|
SVC_BEGIN svcGetProcessAffinityMask
|
||||||
svc 0x04
|
svc 0x04
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcSetProcessAffinityMask
|
SVC_BEGIN svcSetProcessAffinityMask
|
||||||
svc 0x05
|
svc 0x05
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcGetProcessIdealProcessor
|
SVC_BEGIN svcGetProcessIdealProcessor
|
||||||
str r0, [sp, #-0x4]!
|
str r0, [sp, #-0x4]!
|
||||||
@ -51,10 +61,12 @@ SVC_BEGIN svcGetProcessIdealProcessor
|
|||||||
ldr r3, [sp], #4
|
ldr r3, [sp], #4
|
||||||
str r1, [r3]
|
str r1, [r3]
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcSetProcessIdealProcessor
|
SVC_BEGIN svcSetProcessIdealProcessor
|
||||||
svc 0x07
|
svc 0x07
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcCreateThread
|
SVC_BEGIN svcCreateThread
|
||||||
push {r0, r4}
|
push {r0, r4}
|
||||||
@ -65,14 +77,17 @@ SVC_BEGIN svcCreateThread
|
|||||||
str r1, [r2]
|
str r1, [r2]
|
||||||
ldr r4, [sp], #4
|
ldr r4, [sp], #4
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcExitThread
|
SVC_BEGIN svcExitThread
|
||||||
svc 0x09
|
svc 0x09
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcSleepThread
|
SVC_BEGIN svcSleepThread
|
||||||
svc 0x0A
|
svc 0x0A
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcGetThreadPriority
|
SVC_BEGIN svcGetThreadPriority
|
||||||
str r0, [sp, #-0x4]!
|
str r0, [sp, #-0x4]!
|
||||||
@ -80,18 +95,22 @@ SVC_BEGIN svcGetThreadPriority
|
|||||||
ldr r3, [sp], #4
|
ldr r3, [sp], #4
|
||||||
str r1, [r3]
|
str r1, [r3]
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcSetThreadPriority
|
SVC_BEGIN svcSetThreadPriority
|
||||||
svc 0x0C
|
svc 0x0C
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcGetThreadAffinityMask
|
SVC_BEGIN svcGetThreadAffinityMask
|
||||||
svc 0x0D
|
svc 0x0D
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcSetThreadAffinityMask
|
SVC_BEGIN svcSetThreadAffinityMask
|
||||||
svc 0x0E
|
svc 0x0E
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcGetThreadIdealProcessor
|
SVC_BEGIN svcGetThreadIdealProcessor
|
||||||
str r0, [sp, #-0x4]!
|
str r0, [sp, #-0x4]!
|
||||||
@ -99,14 +118,17 @@ SVC_BEGIN svcGetThreadIdealProcessor
|
|||||||
ldr r3, [sp], #4
|
ldr r3, [sp], #4
|
||||||
str r1, [r3]
|
str r1, [r3]
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcSetThreadIdealProcessor
|
SVC_BEGIN svcSetThreadIdealProcessor
|
||||||
svc 0x10
|
svc 0x10
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcGetProcessorID
|
SVC_BEGIN svcGetProcessorID
|
||||||
svc 0x11
|
svc 0x11
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcRun
|
SVC_BEGIN svcRun
|
||||||
push {r4,r5}
|
push {r4,r5}
|
||||||
@ -118,6 +140,7 @@ SVC_BEGIN svcRun
|
|||||||
svc 0x12
|
svc 0x12
|
||||||
pop {r4,r5}
|
pop {r4,r5}
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcCreateMutex
|
SVC_BEGIN svcCreateMutex
|
||||||
str r0, [sp, #-4]!
|
str r0, [sp, #-4]!
|
||||||
@ -125,10 +148,12 @@ SVC_BEGIN svcCreateMutex
|
|||||||
ldr r3, [sp], #4
|
ldr r3, [sp], #4
|
||||||
str r1, [r3]
|
str r1, [r3]
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcReleaseMutex
|
SVC_BEGIN svcReleaseMutex
|
||||||
svc 0x14
|
svc 0x14
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcCreateSemaphore
|
SVC_BEGIN svcCreateSemaphore
|
||||||
push {r0}
|
push {r0}
|
||||||
@ -136,6 +161,7 @@ SVC_BEGIN svcCreateSemaphore
|
|||||||
pop {r3}
|
pop {r3}
|
||||||
str r1, [r3]
|
str r1, [r3]
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcReleaseSemaphore
|
SVC_BEGIN svcReleaseSemaphore
|
||||||
push {r0}
|
push {r0}
|
||||||
@ -143,6 +169,7 @@ SVC_BEGIN svcReleaseSemaphore
|
|||||||
pop {r3}
|
pop {r3}
|
||||||
str r1, [r3]
|
str r1, [r3]
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcCreateEvent
|
SVC_BEGIN svcCreateEvent
|
||||||
str r0, [sp, #-4]!
|
str r0, [sp, #-4]!
|
||||||
@ -150,14 +177,17 @@ SVC_BEGIN svcCreateEvent
|
|||||||
ldr r2, [sp], #4
|
ldr r2, [sp], #4
|
||||||
str r1, [r2]
|
str r1, [r2]
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcSignalEvent
|
SVC_BEGIN svcSignalEvent
|
||||||
svc 0x18
|
svc 0x18
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcClearEvent
|
SVC_BEGIN svcClearEvent
|
||||||
svc 0x19
|
svc 0x19
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcCreateTimer
|
SVC_BEGIN svcCreateTimer
|
||||||
str r0, [sp, #-4]!
|
str r0, [sp, #-4]!
|
||||||
@ -165,6 +195,7 @@ SVC_BEGIN svcCreateTimer
|
|||||||
ldr r2, [sp], #4
|
ldr r2, [sp], #4
|
||||||
str r1, [r2]
|
str r1, [r2]
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcSetTimer
|
SVC_BEGIN svcSetTimer
|
||||||
str r4, [sp, #-4]!
|
str r4, [sp, #-4]!
|
||||||
@ -173,14 +204,17 @@ SVC_BEGIN svcSetTimer
|
|||||||
svc 0x1B
|
svc 0x1B
|
||||||
ldr r4, [sp], #4
|
ldr r4, [sp], #4
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcCancelTimer
|
SVC_BEGIN svcCancelTimer
|
||||||
svc 0x1C
|
svc 0x1C
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcClearTimer
|
SVC_BEGIN svcClearTimer
|
||||||
svc 0x1D
|
svc 0x1D
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcCreateMemoryBlock
|
SVC_BEGIN svcCreateMemoryBlock
|
||||||
str r0, [sp, #-4]!
|
str r0, [sp, #-4]!
|
||||||
@ -189,14 +223,17 @@ SVC_BEGIN svcCreateMemoryBlock
|
|||||||
ldr r2, [sp], #4
|
ldr r2, [sp], #4
|
||||||
str r1, [r2]
|
str r1, [r2]
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcMapMemoryBlock
|
SVC_BEGIN svcMapMemoryBlock
|
||||||
svc 0x1F
|
svc 0x1F
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcUnmapMemoryBlock
|
SVC_BEGIN svcUnmapMemoryBlock
|
||||||
svc 0x20
|
svc 0x20
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcCreateAddressArbiter
|
SVC_BEGIN svcCreateAddressArbiter
|
||||||
push {r0}
|
push {r0}
|
||||||
@ -204,6 +241,7 @@ SVC_BEGIN svcCreateAddressArbiter
|
|||||||
pop {r2}
|
pop {r2}
|
||||||
str r1, [r2]
|
str r1, [r2]
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcArbitrateAddress
|
SVC_BEGIN svcArbitrateAddress
|
||||||
push {r4, r5}
|
push {r4, r5}
|
||||||
@ -212,14 +250,17 @@ SVC_BEGIN svcArbitrateAddress
|
|||||||
svc 0x22
|
svc 0x22
|
||||||
pop {r4, r5}
|
pop {r4, r5}
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcCloseHandle
|
SVC_BEGIN svcCloseHandle
|
||||||
svc 0x23
|
svc 0x23
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcWaitSynchronization
|
SVC_BEGIN svcWaitSynchronization
|
||||||
svc 0x24
|
svc 0x24
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcWaitSynchronizationN
|
SVC_BEGIN svcWaitSynchronizationN
|
||||||
str r5, [sp, #-4]!
|
str r5, [sp, #-4]!
|
||||||
@ -232,6 +273,7 @@ SVC_BEGIN svcWaitSynchronizationN
|
|||||||
ldr r4, [sp], #4
|
ldr r4, [sp], #4
|
||||||
ldr r5, [sp], #4
|
ldr r5, [sp], #4
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcDuplicateHandle
|
SVC_BEGIN svcDuplicateHandle
|
||||||
str r0, [sp, #-0x4]!
|
str r0, [sp, #-0x4]!
|
||||||
@ -239,10 +281,12 @@ SVC_BEGIN svcDuplicateHandle
|
|||||||
ldr r3, [sp], #4
|
ldr r3, [sp], #4
|
||||||
str r1, [r3]
|
str r1, [r3]
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcGetSystemTick
|
SVC_BEGIN svcGetSystemTick
|
||||||
svc 0x28
|
svc 0x28
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcGetHandleInfo
|
SVC_BEGIN svcGetHandleInfo
|
||||||
str r0, [sp, #-0x4]!
|
str r0, [sp, #-0x4]!
|
||||||
@ -251,6 +295,7 @@ SVC_BEGIN svcGetHandleInfo
|
|||||||
str r1, [r3]
|
str r1, [r3]
|
||||||
str r2, [r3,#4]
|
str r2, [r3,#4]
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcGetSystemInfo
|
SVC_BEGIN svcGetSystemInfo
|
||||||
str r0, [sp, #-0x4]!
|
str r0, [sp, #-0x4]!
|
||||||
@ -259,6 +304,7 @@ SVC_BEGIN svcGetSystemInfo
|
|||||||
str r1, [r3]
|
str r1, [r3]
|
||||||
str r2, [r3,#4]
|
str r2, [r3,#4]
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcGetProcessInfo
|
SVC_BEGIN svcGetProcessInfo
|
||||||
str r0, [sp, #-0x4]!
|
str r0, [sp, #-0x4]!
|
||||||
@ -267,6 +313,7 @@ SVC_BEGIN svcGetProcessInfo
|
|||||||
str r1, [r3]
|
str r1, [r3]
|
||||||
str r2, [r3,#4]
|
str r2, [r3,#4]
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcGetThreadInfo
|
SVC_BEGIN svcGetThreadInfo
|
||||||
str r0, [sp, #-0x4]!
|
str r0, [sp, #-0x4]!
|
||||||
@ -275,6 +322,7 @@ SVC_BEGIN svcGetThreadInfo
|
|||||||
str r1, [r3]
|
str r1, [r3]
|
||||||
str r2, [r3,#4]
|
str r2, [r3,#4]
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcConnectToPort
|
SVC_BEGIN svcConnectToPort
|
||||||
str r0, [sp, #-0x4]!
|
str r0, [sp, #-0x4]!
|
||||||
@ -282,10 +330,12 @@ SVC_BEGIN svcConnectToPort
|
|||||||
ldr r3, [sp], #4
|
ldr r3, [sp], #4
|
||||||
str r1, [r3]
|
str r1, [r3]
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcSendSyncRequest
|
SVC_BEGIN svcSendSyncRequest
|
||||||
svc 0x32
|
svc 0x32
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcOpenProcess
|
SVC_BEGIN svcOpenProcess
|
||||||
push {r0}
|
push {r0}
|
||||||
@ -293,6 +343,7 @@ SVC_BEGIN svcOpenProcess
|
|||||||
pop {r2}
|
pop {r2}
|
||||||
str r1, [r2]
|
str r1, [r2]
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcOpenThread
|
SVC_BEGIN svcOpenThread
|
||||||
push {r0}
|
push {r0}
|
||||||
@ -300,6 +351,7 @@ SVC_BEGIN svcOpenThread
|
|||||||
pop {r2}
|
pop {r2}
|
||||||
str r1, [r2]
|
str r1, [r2]
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcGetProcessId
|
SVC_BEGIN svcGetProcessId
|
||||||
str r0, [sp, #-0x4]!
|
str r0, [sp, #-0x4]!
|
||||||
@ -307,6 +359,7 @@ SVC_BEGIN svcGetProcessId
|
|||||||
ldr r3, [sp], #4
|
ldr r3, [sp], #4
|
||||||
str r1, [r3]
|
str r1, [r3]
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcGetProcessIdOfThread
|
SVC_BEGIN svcGetProcessIdOfThread
|
||||||
str r0, [sp, #-0x4]!
|
str r0, [sp, #-0x4]!
|
||||||
@ -314,6 +367,7 @@ SVC_BEGIN svcGetProcessIdOfThread
|
|||||||
ldr r3, [sp], #4
|
ldr r3, [sp], #4
|
||||||
str r1, [r3]
|
str r1, [r3]
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcGetThreadId
|
SVC_BEGIN svcGetThreadId
|
||||||
str r0, [sp, #-0x4]!
|
str r0, [sp, #-0x4]!
|
||||||
@ -321,6 +375,7 @@ SVC_BEGIN svcGetThreadId
|
|||||||
ldr r3, [sp], #4
|
ldr r3, [sp], #4
|
||||||
str r1, [r3]
|
str r1, [r3]
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcGetResourceLimit
|
SVC_BEGIN svcGetResourceLimit
|
||||||
str r0, [sp, #-0x4]!
|
str r0, [sp, #-0x4]!
|
||||||
@ -328,22 +383,27 @@ SVC_BEGIN svcGetResourceLimit
|
|||||||
ldr r3, [sp], #4
|
ldr r3, [sp], #4
|
||||||
str r1, [r3]
|
str r1, [r3]
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcGetResourceLimitLimitValues
|
SVC_BEGIN svcGetResourceLimitLimitValues
|
||||||
svc 0x39
|
svc 0x39
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcGetResourceLimitCurrentValues
|
SVC_BEGIN svcGetResourceLimitCurrentValues
|
||||||
svc 0x3A
|
svc 0x3A
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcBreak
|
SVC_BEGIN svcBreak
|
||||||
svc 0x3C
|
svc 0x3C
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcOutputDebugString
|
SVC_BEGIN svcOutputDebugString
|
||||||
svc 0x3D
|
svc 0x3D
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcCreatePort
|
SVC_BEGIN svcCreatePort
|
||||||
push {r0, r1}
|
push {r0, r1}
|
||||||
@ -354,6 +414,7 @@ SVC_BEGIN svcCreatePort
|
|||||||
str r2, [r3]
|
str r2, [r3]
|
||||||
add sp, sp, #8
|
add sp, sp, #8
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcAcceptSession
|
SVC_BEGIN svcAcceptSession
|
||||||
str r0, [sp, #-4]!
|
str r0, [sp, #-4]!
|
||||||
@ -362,6 +423,7 @@ SVC_BEGIN svcAcceptSession
|
|||||||
str r1, [r2]
|
str r1, [r2]
|
||||||
add sp, sp, #4
|
add sp, sp, #4
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcReplyAndReceive
|
SVC_BEGIN svcReplyAndReceive
|
||||||
str r0, [sp, #-4]!
|
str r0, [sp, #-4]!
|
||||||
@ -370,26 +432,32 @@ SVC_BEGIN svcReplyAndReceive
|
|||||||
str r1, [r2]
|
str r1, [r2]
|
||||||
add sp, sp, #4
|
add sp, sp, #4
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcBindInterrupt
|
SVC_BEGIN svcBindInterrupt
|
||||||
svc 0x50
|
svc 0x50
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcUnbindInterrupt
|
SVC_BEGIN svcUnbindInterrupt
|
||||||
svc 0x51
|
svc 0x51
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcInvalidateProcessDataCache
|
SVC_BEGIN svcInvalidateProcessDataCache
|
||||||
svc 0x52
|
svc 0x52
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcStoreProcessDataCache
|
SVC_BEGIN svcStoreProcessDataCache
|
||||||
svc 0x53
|
svc 0x53
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcFlushProcessDataCache
|
SVC_BEGIN svcFlushProcessDataCache
|
||||||
svc 0x54
|
svc 0x54
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcStartInterProcessDma
|
SVC_BEGIN svcStartInterProcessDma
|
||||||
stmfd sp!, {r0, r4, r5}
|
stmfd sp!, {r0, r4, r5}
|
||||||
@ -400,10 +468,12 @@ SVC_BEGIN svcStartInterProcessDma
|
|||||||
ldmfd sp!, {r2, r4, r5}
|
ldmfd sp!, {r2, r4, r5}
|
||||||
str r1, [r2]
|
str r1, [r2]
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcStopDma
|
SVC_BEGIN svcStopDma
|
||||||
svc 0x56
|
svc 0x56
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcGetDmaState
|
SVC_BEGIN svcGetDmaState
|
||||||
str r0, [sp, #-4]!
|
str r0, [sp, #-4]!
|
||||||
@ -411,6 +481,7 @@ SVC_BEGIN svcGetDmaState
|
|||||||
ldr r3, [sp], #4
|
ldr r3, [sp], #4
|
||||||
str r1, [r3]
|
str r1, [r3]
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcDebugActiveProcess
|
SVC_BEGIN svcDebugActiveProcess
|
||||||
push {r0}
|
push {r0}
|
||||||
@ -418,22 +489,27 @@ SVC_BEGIN svcDebugActiveProcess
|
|||||||
pop {r2}
|
pop {r2}
|
||||||
str r1, [r2]
|
str r1, [r2]
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcBreakDebugProcess
|
SVC_BEGIN svcBreakDebugProcess
|
||||||
svc 0x61
|
svc 0x61
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcTerminateDebugProcess
|
SVC_BEGIN svcTerminateDebugProcess
|
||||||
svc 0x62
|
svc 0x62
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcGetProcessDebugEvent
|
SVC_BEGIN svcGetProcessDebugEvent
|
||||||
svc 0x63
|
svc 0x63
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcContinueDebugEvent
|
SVC_BEGIN svcContinueDebugEvent
|
||||||
svc 0x64
|
svc 0x64
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcGetProcessList
|
SVC_BEGIN svcGetProcessList
|
||||||
str r0, [sp, #-0x4]!
|
str r0, [sp, #-0x4]!
|
||||||
@ -441,6 +517,7 @@ SVC_BEGIN svcGetProcessList
|
|||||||
ldr r3, [sp], #4
|
ldr r3, [sp], #4
|
||||||
str r1, [r3]
|
str r1, [r3]
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcGetThreadList
|
SVC_BEGIN svcGetThreadList
|
||||||
str r0, [sp, #-0x4]!
|
str r0, [sp, #-0x4]!
|
||||||
@ -448,14 +525,17 @@ SVC_BEGIN svcGetThreadList
|
|||||||
ldr r3, [sp], #4
|
ldr r3, [sp], #4
|
||||||
str r1, [r3]
|
str r1, [r3]
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcGetDebugThreadContext
|
SVC_BEGIN svcGetDebugThreadContext
|
||||||
svc 0x67
|
svc 0x67
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcSetDebugThreadContext
|
SVC_BEGIN svcSetDebugThreadContext
|
||||||
svc 0x68
|
svc 0x68
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcQueryDebugProcessMemory
|
SVC_BEGIN svcQueryDebugProcessMemory
|
||||||
push {r0, r1, r4-r6}
|
push {r0, r1, r4-r6}
|
||||||
@ -467,18 +547,22 @@ SVC_BEGIN svcQueryDebugProcessMemory
|
|||||||
add sp, sp, #8
|
add sp, sp, #8
|
||||||
pop {r4-r6}
|
pop {r4-r6}
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcReadProcessMemory
|
SVC_BEGIN svcReadProcessMemory
|
||||||
svc 0x6A
|
svc 0x6A
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcWriteProcessMemory
|
SVC_BEGIN svcWriteProcessMemory
|
||||||
svc 0x6B
|
svc 0x6B
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcSetHardwareBreakPoint
|
SVC_BEGIN svcSetHardwareBreakPoint
|
||||||
svc 0x6C
|
svc 0x6C
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcGetDebugThreadParam
|
SVC_BEGIN svcGetDebugThreadParam
|
||||||
push {r0, r1, r4, r5}
|
push {r0, r1, r4, r5}
|
||||||
@ -489,6 +573,7 @@ SVC_BEGIN svcGetDebugThreadParam
|
|||||||
str r3, [r5]
|
str r3, [r5]
|
||||||
pop {r4, r5}
|
pop {r4, r5}
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcControlProcessMemory
|
SVC_BEGIN svcControlProcessMemory
|
||||||
push {r4-r5}
|
push {r4-r5}
|
||||||
@ -497,14 +582,17 @@ SVC_BEGIN svcControlProcessMemory
|
|||||||
svc 0x70
|
svc 0x70
|
||||||
pop {r4-r5}
|
pop {r4-r5}
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcMapProcessMemory
|
SVC_BEGIN svcMapProcessMemory
|
||||||
svc 0x71
|
svc 0x71
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcUnmapProcessMemory
|
SVC_BEGIN svcUnmapProcessMemory
|
||||||
svc 0x72
|
svc 0x72
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcCreateCodeSet
|
SVC_BEGIN svcCreateCodeSet
|
||||||
str r0, [sp, #-0x4]!
|
str r0, [sp, #-0x4]!
|
||||||
@ -514,6 +602,7 @@ SVC_BEGIN svcCreateCodeSet
|
|||||||
str r1, [r2]
|
str r1, [r2]
|
||||||
add sp, sp, #4
|
add sp, sp, #4
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcCreateProcess
|
SVC_BEGIN svcCreateProcess
|
||||||
str r0, [sp, #-0x4]!
|
str r0, [sp, #-0x4]!
|
||||||
@ -522,18 +611,22 @@ SVC_BEGIN svcCreateProcess
|
|||||||
str r1, [r2]
|
str r1, [r2]
|
||||||
add sp, sp, #4
|
add sp, sp, #4
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcTerminateProcess
|
SVC_BEGIN svcTerminateProcess
|
||||||
svc 0x76
|
svc 0x76
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcBackdoor
|
SVC_BEGIN svcBackdoor
|
||||||
svc 0x7B
|
svc 0x7B
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcKernelSetState
|
SVC_BEGIN svcKernelSetState
|
||||||
svc 0x7C
|
svc 0x7C
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
|
||||||
SVC_BEGIN svcQueryProcessMemory
|
SVC_BEGIN svcQueryProcessMemory
|
||||||
push {r0, r1, r4-r6}
|
push {r0, r1, r4-r6}
|
||||||
@ -545,3 +638,4 @@ SVC_BEGIN svcQueryProcessMemory
|
|||||||
add sp, sp, #8
|
add sp, sp, #8
|
||||||
pop {r4-r6}
|
pop {r4-r6}
|
||||||
bx lr
|
bx lr
|
||||||
|
SVC_END
|
||||||
|
Loading…
Reference in New Issue
Block a user