mirror of
https://github.com/pret/pmd-sky.git
synced 2026-08-28 05:38:04 -05:00
migrate os_mutex to c
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
.public _020A2CF8
|
||||
.public _022A88F0
|
||||
.public _022A88FC
|
||||
.public _022B966C
|
||||
.public OSi_ThreadInfo
|
||||
.public OSi_IsInitReset
|
||||
.public CP_SaveContext
|
||||
.public CPi_RestoreContext
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
.public _0229B0F8
|
||||
.public _0229B110
|
||||
.public _0229B114
|
||||
.public _022B966C
|
||||
.public OSi_ThreadInfo
|
||||
.public Card_LockBackup
|
||||
.public Card_LockRom
|
||||
.public Card_SetPulledOutCallback
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
.public _022B961C
|
||||
.public _022B9644
|
||||
.public OSi_IsThreadInitialized
|
||||
.public _022B966C
|
||||
.public OSi_ThreadInfo
|
||||
.public _022B9670
|
||||
.public _022B967C
|
||||
.public _022B973C
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
.public _020B2ED4
|
||||
.public _020B2FBC
|
||||
.public _020B3364
|
||||
.public _022B966C
|
||||
.public OSi_ThreadInfo
|
||||
.public _022BB5EC
|
||||
.public _022BB5FC
|
||||
.public _022BB604
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
.public _020B3218
|
||||
.public _020B321C
|
||||
.public _020B3220
|
||||
.public _022B966C
|
||||
.public OSi_ThreadInfo
|
||||
.public _022BC650
|
||||
.public _022BC674
|
||||
.public _022BC698
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
.public _020AECB0
|
||||
.public _020AED30
|
||||
.public _020AEDB0
|
||||
.public _022B966C
|
||||
.public OSi_ThreadInfo
|
||||
.public _022BCA70
|
||||
.public _d2f
|
||||
.public _dadd
|
||||
|
||||
@@ -1841,11 +1841,11 @@ _01FF9668:
|
||||
ldr ip, _01FF97BC ; =DTCM_BSS
|
||||
str r3, [ip]
|
||||
str r3, [ip, #4]
|
||||
ldr ip, _01FF97C0 ; =_022B966C
|
||||
ldr ip, _01FF97C0 ; =OSi_ThreadInfo
|
||||
mov r1, #1
|
||||
strh r1, [ip]
|
||||
_01FF96A0:
|
||||
ldr ip, _01FF97C0 ; =_022B966C
|
||||
ldr ip, _01FF97C0 ; =OSi_ThreadInfo
|
||||
ldrh r1, [ip]
|
||||
cmp r1, #0
|
||||
beq _01FF96B4
|
||||
@@ -1931,7 +1931,7 @@ _01FF9738:
|
||||
ldmia sp!, {pc}
|
||||
.align 2, 0
|
||||
_01FF97BC: .word DTCM_BSS
|
||||
_01FF97C0: .word _022B966C
|
||||
_01FF97C0: .word OSi_ThreadInfo
|
||||
_01FF97C4: .word CP_SaveContext
|
||||
_01FF97C8: .word CPi_RestoreContext
|
||||
arm_func_end ReturnFromInterrupt
|
||||
|
||||
@@ -234,7 +234,7 @@ _02002504:
|
||||
str r2, [r1, #4]
|
||||
str r2, [r1, #8]
|
||||
bl OS_UnlockMutex
|
||||
ldr r1, _02002578 ; =_022B966C
|
||||
ldr r1, _02002578 ; =OSi_ThreadInfo
|
||||
ldr r0, _0200257C ; =_0229B004
|
||||
ldr r1, [r1, #4]
|
||||
mov r2, #0
|
||||
@@ -245,7 +245,7 @@ _02002504:
|
||||
str r1, [r0, #0x10]
|
||||
str r2, [r0, #0x14]
|
||||
bl sub_020026E4
|
||||
ldr r0, _02002578 ; =_022B966C
|
||||
ldr r0, _02002578 ; =OSi_ThreadInfo
|
||||
mov r1, #7
|
||||
ldr r0, [r0, #4]
|
||||
bl OS_SetThreadPriority
|
||||
@@ -254,14 +254,14 @@ _02002504:
|
||||
_0200256C: .word _0229AFCC
|
||||
_02002570: .word _0229AFE4
|
||||
_02002574: .word _0229AFC0
|
||||
_02002578: .word _022B966C
|
||||
_02002578: .word OSi_ThreadInfo
|
||||
_0200257C: .word _0229B004
|
||||
arm_func_end sub_020024E4
|
||||
|
||||
arm_func_start sub_02002580
|
||||
sub_02002580: ; 0x02002580
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
ldr r1, _020025E8 ; =_022B966C
|
||||
ldr r1, _020025E8 ; =OSi_ThreadInfo
|
||||
ldr r0, _020025EC ; =_0229AFCC
|
||||
ldr r4, [r1, #4]
|
||||
bl OS_LockMutex
|
||||
@@ -291,7 +291,7 @@ _020025E0:
|
||||
mov r0, r5
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
_020025E8: .word _022B966C
|
||||
_020025E8: .word OSi_ThreadInfo
|
||||
_020025EC: .word _0229AFCC
|
||||
_020025F0: .word _0229AFC0
|
||||
_020025F4: .word _0229AFE4
|
||||
@@ -323,7 +323,7 @@ sub_02002624: ; 0x02002624
|
||||
arm_func_start sub_02002628
|
||||
sub_02002628: ; 0x02002628
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
ldr r2, _02002658 ; =_022B966C
|
||||
ldr r2, _02002658 ; =OSi_ThreadInfo
|
||||
mov r5, r0
|
||||
ldr r0, [r2, #4]
|
||||
mov r4, r1
|
||||
@@ -335,7 +335,7 @@ sub_02002628: ; 0x02002628
|
||||
bl OS_SetThreadPriority
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
_02002658: .word _022B966C
|
||||
_02002658: .word OSi_ThreadInfo
|
||||
arm_func_end sub_02002628
|
||||
|
||||
arm_func_start sub_0200265C
|
||||
@@ -351,7 +351,7 @@ _0200266C: .word OS_SetThreadPriority
|
||||
arm_func_start sub_02002670
|
||||
sub_02002670: ; 0x02002670
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
ldr r0, _020026AC ; =_022B966C
|
||||
ldr r0, _020026AC ; =OSi_ThreadInfo
|
||||
ldr r5, [r0, #4]
|
||||
mov r0, r5
|
||||
bl OS_GetThreadPriority
|
||||
@@ -366,7 +366,7 @@ sub_02002670: ; 0x02002670
|
||||
str r4, [r0, #4]
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
_020026AC: .word _022B966C
|
||||
_020026AC: .word OSi_ThreadInfo
|
||||
_020026B0: .word _0229AFCC
|
||||
_020026B4: .word _020AEF30
|
||||
arm_func_end sub_02002670
|
||||
@@ -390,7 +390,7 @@ _020026E0: .word _0229AFCC
|
||||
arm_func_start sub_020026E4
|
||||
sub_020026E4: ; 0x020026E4
|
||||
stmdb sp!, {r4, r5, r6, lr}
|
||||
ldr r1, _02002768 ; =_022B966C
|
||||
ldr r1, _02002768 ; =OSi_ThreadInfo
|
||||
mov r6, r0
|
||||
ldr r5, [r1, #4]
|
||||
mov r0, r5
|
||||
@@ -424,7 +424,7 @@ _02002750:
|
||||
bl OS_SetThreadPriority
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_02002768: .word _022B966C
|
||||
_02002768: .word OSi_ThreadInfo
|
||||
_0200276C: .word _0229AFCC
|
||||
_02002770: .word _0229AFC0
|
||||
_02002774: .word _0229AFE4
|
||||
@@ -489,7 +489,7 @@ sub_020027F8: ; 0x020027F8
|
||||
arm_func_start sub_02002824
|
||||
sub_02002824: ; 0x02002824
|
||||
stmdb sp!, {r4, r5, r6, lr}
|
||||
ldr r1, _02002854 ; =_022B966C
|
||||
ldr r1, _02002854 ; =OSi_ThreadInfo
|
||||
mov r6, r0
|
||||
ldr r5, [r1, #4]
|
||||
mov r0, r5
|
||||
@@ -501,7 +501,7 @@ sub_02002824: ; 0x02002824
|
||||
mov r0, r4
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_02002854: .word _022B966C
|
||||
_02002854: .word OSi_ThreadInfo
|
||||
arm_func_end sub_02002824
|
||||
|
||||
arm_func_start sub_02002858
|
||||
@@ -646,7 +646,7 @@ _020029B4: .word OS_SendMessage
|
||||
arm_func_start sub_020029B8
|
||||
sub_020029B8: ; 0x020029B8
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
||||
ldr r1, _02002A40 ; =_022B966C
|
||||
ldr r1, _02002A40 ; =OSi_ThreadInfo
|
||||
mov r4, r0
|
||||
ldr sb, [r1, #4]
|
||||
mov r7, #0
|
||||
@@ -683,14 +683,14 @@ _02002A10:
|
||||
mov r0, r7
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
.align 2, 0
|
||||
_02002A40: .word _022B966C
|
||||
_02002A40: .word OSi_ThreadInfo
|
||||
arm_func_end sub_020029B8
|
||||
|
||||
arm_func_start sub_02002A44
|
||||
sub_02002A44: ; 0x02002A44
|
||||
stmdb sp!, {r3, r4, r5, r6, lr}
|
||||
sub sp, sp, #4
|
||||
ldr r1, _02002A94 ; =_022B966C
|
||||
ldr r1, _02002A94 ; =OSi_ThreadInfo
|
||||
mov r6, r0
|
||||
ldr r5, [r1, #4]
|
||||
mov r0, r5
|
||||
@@ -709,7 +709,7 @@ sub_02002A44: ; 0x02002A44
|
||||
add sp, sp, #4
|
||||
ldmia sp!, {r3, r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_02002A94: .word _022B966C
|
||||
_02002A94: .word OSi_ThreadInfo
|
||||
arm_func_end sub_02002A44
|
||||
|
||||
arm_func_start sub_02002A98
|
||||
@@ -798,7 +798,7 @@ sub_02002B50: ; 0x02002B50
|
||||
sub_02002B7C: ; 0x02002B7C
|
||||
stmdb sp!, {r3, r4, r5, r6, lr}
|
||||
sub sp, sp, #4
|
||||
ldr r1, _02002BCC ; =_022B966C
|
||||
ldr r1, _02002BCC ; =OSi_ThreadInfo
|
||||
mov r6, r0
|
||||
ldr r5, [r1, #4]
|
||||
mov r0, r5
|
||||
@@ -817,14 +817,14 @@ sub_02002B7C: ; 0x02002B7C
|
||||
add sp, sp, #4
|
||||
ldmia sp!, {r3, r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_02002BCC: .word _022B966C
|
||||
_02002BCC: .word OSi_ThreadInfo
|
||||
arm_func_end sub_02002B7C
|
||||
|
||||
arm_func_start sub_02002BD0
|
||||
sub_02002BD0: ; 0x02002BD0
|
||||
stmdb sp!, {r3, r4, r5, r6, lr}
|
||||
sub sp, sp, #4
|
||||
ldr r1, _02002C28 ; =_022B966C
|
||||
ldr r1, _02002C28 ; =OSi_ThreadInfo
|
||||
mov r5, r0
|
||||
ldr r6, [r1, #4]
|
||||
mov r0, r6
|
||||
@@ -845,7 +845,7 @@ sub_02002BD0: ; 0x02002BD0
|
||||
add sp, sp, #4
|
||||
ldmia sp!, {r3, r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_02002C28: .word _022B966C
|
||||
_02002C28: .word OSi_ThreadInfo
|
||||
arm_func_end sub_02002BD0
|
||||
|
||||
arm_func_start sub_02002C2C
|
||||
@@ -861,7 +861,7 @@ _02002C3C: .word _0229B0F8
|
||||
arm_func_start sub_02002C40
|
||||
sub_02002C40: ; 0x02002C40
|
||||
stmdb sp!, {r4, r5, r6, lr}
|
||||
ldr r1, _02002CA4 ; =_022B966C
|
||||
ldr r1, _02002CA4 ; =OSi_ThreadInfo
|
||||
mov r6, r0
|
||||
ldr r5, [r1, #4]
|
||||
mov r0, r5
|
||||
@@ -886,7 +886,7 @@ sub_02002C40: ; 0x02002C40
|
||||
bl OS_SetThreadPriority
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_02002CA4: .word _022B966C
|
||||
_02002CA4: .word OSi_ThreadInfo
|
||||
_02002CA8: .word _0229B0F8
|
||||
arm_func_end sub_02002C40
|
||||
|
||||
@@ -899,7 +899,7 @@ sub_02002CAC: ; 0x02002CAC
|
||||
arm_func_start sub_02002CB4
|
||||
sub_02002CB4: ; 0x02002CB4
|
||||
stmdb sp!, {r4, r5, r6, lr}
|
||||
ldr r1, _02002D10 ; =_022B966C
|
||||
ldr r1, _02002D10 ; =OSi_ThreadInfo
|
||||
mov r6, r0
|
||||
ldr r5, [r1, #4]
|
||||
mov r0, r5
|
||||
@@ -924,13 +924,13 @@ _02002CF8:
|
||||
str r0, [r6, #0x18]
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_02002D10: .word _022B966C
|
||||
_02002D10: .word OSi_ThreadInfo
|
||||
arm_func_end sub_02002CB4
|
||||
|
||||
arm_func_start sub_02002D14
|
||||
sub_02002D14: ; 0x02002D14
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
||||
ldr r2, _02002D7C ; =_022B966C
|
||||
ldr r2, _02002D7C ; =OSi_ThreadInfo
|
||||
mov r7, r0
|
||||
ldr r5, [r2, #4]
|
||||
mov r6, r1
|
||||
@@ -958,7 +958,7 @@ _02002D5C:
|
||||
str r0, [r7, #0x18]
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_02002D7C: .word _022B966C
|
||||
_02002D7C: .word OSi_ThreadInfo
|
||||
arm_func_end sub_02002D14
|
||||
|
||||
arm_func_start sub_02002D80
|
||||
@@ -1008,7 +1008,7 @@ _02002E08:
|
||||
arm_func_start sub_02002E10
|
||||
sub_02002E10: ; 0x02002E10
|
||||
stmdb sp!, {r4, r5, r6, lr}
|
||||
ldr r1, _02002E94 ; =_022B966C
|
||||
ldr r1, _02002E94 ; =OSi_ThreadInfo
|
||||
mov r6, r0
|
||||
ldr r5, [r1, #4]
|
||||
mov r0, r5
|
||||
@@ -1045,7 +1045,7 @@ _02002E8C:
|
||||
mov r0, #0
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_02002E94: .word _022B966C
|
||||
_02002E94: .word OSi_ThreadInfo
|
||||
arm_func_end sub_02002E10
|
||||
|
||||
arm_func_start sub_02002E98
|
||||
|
||||
@@ -21,7 +21,7 @@ fread: ; 0x020866B4
|
||||
bl OS_TryLockMutex
|
||||
cmp r0, #0
|
||||
bne _02086718
|
||||
ldr r0, _020867B4 ; =_022B966C
|
||||
ldr r0, _020867B4 ; =OSi_ThreadInfo
|
||||
ldr r2, _020867B8 ; =_022BC650
|
||||
ldr r1, [r0, #4]
|
||||
ldr r0, _020867BC ; =_022BC674
|
||||
@@ -31,7 +31,7 @@ fread: ; 0x020866B4
|
||||
str r1, [r0, r6, lsl #2]
|
||||
b _02086770
|
||||
_02086718:
|
||||
ldr r0, _020867B4 ; =_022B966C
|
||||
ldr r0, _020867B4 ; =OSi_ThreadInfo
|
||||
ldr r1, _020867B8 ; =_022BC650
|
||||
ldr r0, [r0, #4]
|
||||
ldr r1, [r1, r6, lsl #2]
|
||||
@@ -46,7 +46,7 @@ _02086718:
|
||||
_02086748:
|
||||
add r0, r5, r4
|
||||
bl OS_LockMutex
|
||||
ldr r0, _020867B4 ; =_022B966C
|
||||
ldr r0, _020867B4 ; =OSi_ThreadInfo
|
||||
ldr r2, _020867B8 ; =_022BC650
|
||||
ldr r1, [r0, #4]
|
||||
ldr r0, _020867BC ; =_022BC674
|
||||
@@ -74,7 +74,7 @@ _020867A4:
|
||||
.align 2, 0
|
||||
_020867AC: .word _020B2ED4
|
||||
_020867B0: .word _022BC698
|
||||
_020867B4: .word _022B966C
|
||||
_020867B4: .word OSi_ThreadInfo
|
||||
_020867B8: .word _022BC650
|
||||
_020867BC: .word _022BC674
|
||||
arm_func_end fread
|
||||
@@ -516,7 +516,7 @@ _02086DA0:
|
||||
bl OS_TryLockMutex
|
||||
cmp r0, #0
|
||||
bne _02086DE0
|
||||
ldr r0, _02086E78 ; =_022B966C
|
||||
ldr r0, _02086E78 ; =OSi_ThreadInfo
|
||||
ldr r2, _02086E7C ; =_022BC650
|
||||
ldr r1, [r0, #4]
|
||||
ldr r0, _02086E80 ; =_022BC674
|
||||
@@ -526,7 +526,7 @@ _02086DA0:
|
||||
str r1, [r0, r6, lsl #2]
|
||||
b _02086E38
|
||||
_02086DE0:
|
||||
ldr r0, _02086E78 ; =_022B966C
|
||||
ldr r0, _02086E78 ; =OSi_ThreadInfo
|
||||
ldr r1, _02086E7C ; =_022BC650
|
||||
ldr r0, [r0, #4]
|
||||
ldr r1, [r1, r6, lsl #2]
|
||||
@@ -541,7 +541,7 @@ _02086DE0:
|
||||
_02086E10:
|
||||
add r0, r5, r4
|
||||
bl OS_LockMutex
|
||||
ldr r0, _02086E78 ; =_022B966C
|
||||
ldr r0, _02086E78 ; =OSi_ThreadInfo
|
||||
ldr r2, _02086E7C ; =_022BC650
|
||||
ldr r1, [r0, #4]
|
||||
ldr r0, _02086E80 ; =_022BC674
|
||||
@@ -568,7 +568,7 @@ _02086E68: .word _020B2ED4
|
||||
_02086E6C: .word _020B2F20
|
||||
_02086E70: .word _020B2F6C
|
||||
_02086E74: .word _022BC698
|
||||
_02086E78: .word _022B966C
|
||||
_02086E78: .word OSi_ThreadInfo
|
||||
_02086E7C: .word _022BC650
|
||||
_02086E80: .word _022BC674
|
||||
arm_func_end ftell
|
||||
@@ -735,7 +735,7 @@ _020870AC:
|
||||
bl OS_TryLockMutex
|
||||
cmp r0, #0
|
||||
bne _020870EC
|
||||
ldr r0, _0208718C ; =_022B966C
|
||||
ldr r0, _0208718C ; =OSi_ThreadInfo
|
||||
ldr r2, _02087190 ; =_022BC650
|
||||
ldr r1, [r0, #4]
|
||||
ldr r0, _02087194 ; =_022BC674
|
||||
@@ -745,7 +745,7 @@ _020870AC:
|
||||
str r1, [r0, r6, lsl #2]
|
||||
b _02087144
|
||||
_020870EC:
|
||||
ldr r0, _0208718C ; =_022B966C
|
||||
ldr r0, _0208718C ; =OSi_ThreadInfo
|
||||
ldr r1, _02087190 ; =_022BC650
|
||||
ldr r0, [r0, #4]
|
||||
ldr r1, [r1, r6, lsl #2]
|
||||
@@ -760,7 +760,7 @@ _020870EC:
|
||||
_0208711C:
|
||||
add r0, r5, r4
|
||||
bl OS_LockMutex
|
||||
ldr r0, _0208718C ; =_022B966C
|
||||
ldr r0, _0208718C ; =OSi_ThreadInfo
|
||||
ldr r2, _02087190 ; =_022BC650
|
||||
ldr r1, [r0, #4]
|
||||
ldr r0, _02087194 ; =_022BC674
|
||||
@@ -789,7 +789,7 @@ _0208717C: .word _020B2ED4
|
||||
_02087180: .word _020B2F20
|
||||
_02087184: .word _020B2F6C
|
||||
_02087188: .word _022BC698
|
||||
_0208718C: .word _022B966C
|
||||
_0208718C: .word OSi_ThreadInfo
|
||||
_02087190: .word _022BC650
|
||||
_02087194: .word _022BC674
|
||||
arm_func_end fseek
|
||||
|
||||
@@ -237,8 +237,8 @@ THREAD_INFO_STRUCT:
|
||||
.global OSi_IsThreadInitialized
|
||||
OSi_IsThreadInitialized:
|
||||
.space 0x18
|
||||
.global _022B966C
|
||||
_022B966C:
|
||||
.global OSi_ThreadInfo
|
||||
OSi_ThreadInfo:
|
||||
.space 0x4
|
||||
.global _022B9670
|
||||
_022B9670:
|
||||
|
||||
154
asm/overlay_00.s
154
asm/overlay_00.s
@@ -14166,7 +14166,7 @@ reset_network_vars: ; 0x022C8134
|
||||
ldr r0, _022C822C ; =ov00_023250F8
|
||||
mov r2, #0x60
|
||||
bl MI_CpuFill8
|
||||
ldr r0, _022C8230 ; =_022B966C
|
||||
ldr r0, _022C8230 ; =OSi_ThreadInfo
|
||||
ldr r6, [r0, #8]
|
||||
cmp r6, #0
|
||||
beq _022C81E4
|
||||
@@ -14215,7 +14215,7 @@ _022C8210:
|
||||
.align 2, 0
|
||||
_022C8228: .word ov00_02325078
|
||||
_022C822C: .word ov00_023250F8
|
||||
_022C8230: .word _022B966C
|
||||
_022C8230: .word OSi_ThreadInfo
|
||||
_022C8234: .word ov00_023253A0
|
||||
arm_func_end reset_network_vars
|
||||
|
||||
@@ -14902,7 +14902,7 @@ receive_packet: ; 0x022C8ACC
|
||||
cmp r1, r0
|
||||
bne _022C8B20
|
||||
mov r5, #0
|
||||
ldr r8, _022C8B88 ; =_022B966C
|
||||
ldr r8, _022C8B88 ; =OSi_ThreadInfo
|
||||
mov r4, r5
|
||||
_022C8AFC:
|
||||
ldr r1, [r8, #4]
|
||||
@@ -14943,7 +14943,7 @@ _022C8B38:
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
.align 2, 0
|
||||
_022C8B84: .word ov00_02325078
|
||||
_022C8B88: .word _022B966C
|
||||
_022C8B88: .word OSi_ThreadInfo
|
||||
arm_func_end receive_packet
|
||||
|
||||
arm_func_start throw_packet
|
||||
@@ -15509,7 +15509,7 @@ send_ping: ; 0x022C9338
|
||||
mov r6, r1
|
||||
mov r1, #8
|
||||
ldr r3, _022C93E0 ; =ov00_02325078
|
||||
ldr r2, _022C93E4 ; =_022B966C
|
||||
ldr r2, _022C93E4 ; =OSi_ThreadInfo
|
||||
strh r1, [r4, #0x22]
|
||||
ldr r2, [r2, #4]
|
||||
ldrh lr, [r3, #4]
|
||||
@@ -15546,7 +15546,7 @@ send_ping: ; 0x022C9338
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_022C93E0: .word ov00_02325078
|
||||
_022C93E4: .word _022B966C
|
||||
_022C93E4: .word OSi_ThreadInfo
|
||||
arm_func_end send_ping
|
||||
|
||||
arm_func_start send_udp
|
||||
@@ -15645,7 +15645,7 @@ send_tcp: ; 0x022C9524
|
||||
mov r6, r3
|
||||
addeq sp, sp, #8
|
||||
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
|
||||
ldr r0, _022C9788 ; =_022B966C
|
||||
ldr r0, _022C9788 ; =OSi_ThreadInfo
|
||||
ldr r1, _022C978C ; =ov00_023252E0
|
||||
ldr r0, [r0, #4]
|
||||
cmp r0, r1
|
||||
@@ -15790,7 +15790,7 @@ _022C9708:
|
||||
add sp, sp, #8
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
|
||||
.align 2, 0
|
||||
_022C9788: .word _022B966C
|
||||
_022C9788: .word OSi_ThreadInfo
|
||||
_022C978C: .word ov00_023252E0
|
||||
_022C9790: .word ov00_0232558A
|
||||
_022C9794: .word ov00_02325078
|
||||
@@ -16000,7 +16000,7 @@ process_icmp_reply: ; 0x022C9A68
|
||||
mov r7, r1
|
||||
mov r6, r2
|
||||
bl EnableIrqFlag
|
||||
ldr r1, _022C9B64 ; =_022B966C
|
||||
ldr r1, _022C9B64 ; =OSi_ThreadInfo
|
||||
mov r5, r0
|
||||
ldr r1, [r1, #8]
|
||||
cmp r1, #0
|
||||
@@ -16062,7 +16062,7 @@ _022C9B58:
|
||||
bl SetIrqFlag
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
||||
.align 2, 0
|
||||
_022C9B64: .word _022B966C
|
||||
_022C9B64: .word OSi_ThreadInfo
|
||||
arm_func_end process_icmp_reply
|
||||
|
||||
arm_func_start valid_ip
|
||||
@@ -16139,7 +16139,7 @@ _022C9C54: .word 0x0000FFFF
|
||||
arm_func_start check_listener
|
||||
check_listener: ; 0x022C9C58
|
||||
stmdb sp!, {r4, r5, r6, lr}
|
||||
ldr r2, _022C9D28 ; =_022B966C
|
||||
ldr r2, _022C9D28 ; =OSi_ThreadInfo
|
||||
ldr ip, [r2, #8]
|
||||
cmp ip, #0
|
||||
beq _022C9D20
|
||||
@@ -16196,7 +16196,7 @@ _022C9D20:
|
||||
mov r0, #0
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_022C9D28: .word _022B966C
|
||||
_022C9D28: .word OSi_ThreadInfo
|
||||
arm_func_end check_listener
|
||||
|
||||
arm_func_start check_socket
|
||||
@@ -16254,7 +16254,7 @@ _022C9DD8:
|
||||
arm_func_start find_socket
|
||||
find_socket: ; 0x022C9DE0
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
||||
ldr r2, _022C9E40 ; =_022B966C
|
||||
ldr r2, _022C9E40 ; =OSi_ThreadInfo
|
||||
mov r7, r0
|
||||
ldr r5, [r2, #8]
|
||||
mov r6, r1
|
||||
@@ -16281,7 +16281,7 @@ _022C9E38:
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_022C9E40: .word _022B966C
|
||||
_022C9E40: .word OSi_ThreadInfo
|
||||
arm_func_end find_socket
|
||||
|
||||
arm_func_start parse_mss
|
||||
@@ -16346,7 +16346,7 @@ tcp_send_handshake: ; 0x022C9EE4
|
||||
bl no_need_inq
|
||||
cmp r0, #0
|
||||
bne _022C9F1C
|
||||
ldr r0, _022C9F50 ; =_022B966C
|
||||
ldr r0, _022C9F50 ; =OSi_ThreadInfo
|
||||
ldr r1, _022C9F54 ; =ov00_023252E0
|
||||
ldr r0, [r0, #4]
|
||||
cmp r0, r1
|
||||
@@ -16367,7 +16367,7 @@ _022C9F3C:
|
||||
add sp, sp, #4
|
||||
ldmia sp!, {r3, r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_022C9F50: .word _022B966C
|
||||
_022C9F50: .word OSi_ThreadInfo
|
||||
_022C9F54: .word ov00_023252E0
|
||||
arm_func_end tcp_send_handshake
|
||||
|
||||
@@ -17104,7 +17104,7 @@ dispatch_udp: ; 0x022CA940
|
||||
ldmneia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
_022CA978:
|
||||
bl EnableIrqFlag
|
||||
ldr r1, _022CAB48 ; =_022B966C
|
||||
ldr r1, _022CAB48 ; =OSi_ThreadInfo
|
||||
mov r5, r0
|
||||
ldr r1, [r1, #8]
|
||||
cmp r1, #0
|
||||
@@ -17227,7 +17227,7 @@ _022CAB3C:
|
||||
bl SetIrqFlag
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
.align 2, 0
|
||||
_022CAB48: .word _022B966C
|
||||
_022CAB48: .word OSi_ThreadInfo
|
||||
arm_func_end dispatch_udp
|
||||
|
||||
arm_func_start check_frag
|
||||
@@ -17588,7 +17588,7 @@ _022CB048: .word 0x00000806
|
||||
arm_func_start Cps_SocGetEport
|
||||
Cps_SocGetEport: ; 0x022CB04C
|
||||
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
||||
ldr r0, _022CB0E8 ; =_022B966C
|
||||
ldr r0, _022CB0E8 ; =OSi_ThreadInfo
|
||||
ldr r2, _022CB0EC ; =ov00_02325078
|
||||
ldr r0, [r0, #8]
|
||||
ldr r1, _022CB0F0 ; =0x00001388
|
||||
@@ -17633,7 +17633,7 @@ _022CB0D4:
|
||||
ldrh r0, [r0, #8]
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
||||
.align 2, 0
|
||||
_022CB0E8: .word _022B966C
|
||||
_022CB0E8: .word OSi_ThreadInfo
|
||||
_022CB0EC: .word ov00_02325078
|
||||
_022CB0F0: .word 0x00001388
|
||||
arm_func_end Cps_SocGetEport
|
||||
@@ -17662,28 +17662,28 @@ _022CB134: .word ov00_02325078
|
||||
|
||||
arm_func_start Cps_SocRegister
|
||||
Cps_SocRegister: ; 0x022CB138
|
||||
ldr r1, _022CB148 ; =_022B966C
|
||||
ldr r1, _022CB148 ; =OSi_ThreadInfo
|
||||
ldr r1, [r1, #4]
|
||||
str r0, [r1, #0xa4]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_022CB148: .word _022B966C
|
||||
_022CB148: .word OSi_ThreadInfo
|
||||
arm_func_end Cps_SocRegister
|
||||
|
||||
arm_func_start Cps_SocUnRegister
|
||||
Cps_SocUnRegister: ; 0x022CB14C
|
||||
ldr r0, _022CB160 ; =_022B966C
|
||||
ldr r0, _022CB160 ; =OSi_ThreadInfo
|
||||
mov r1, #0
|
||||
ldr r0, [r0, #4]
|
||||
str r1, [r0, #0xa4]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_022CB160: .word _022B966C
|
||||
_022CB160: .word OSi_ThreadInfo
|
||||
arm_func_end Cps_SocUnRegister
|
||||
|
||||
arm_func_start Cps_SocDatagramMode
|
||||
Cps_SocDatagramMode: ; 0x022CB164
|
||||
ldr r0, _022CB18C ; =_022B966C
|
||||
ldr r0, _022CB18C ; =OSi_ThreadInfo
|
||||
ldr r0, [r0, #4]
|
||||
ldr r1, [r0, #0xa4]
|
||||
cmp r1, #0
|
||||
@@ -17694,13 +17694,13 @@ Cps_SocDatagramMode: ; 0x022CB164
|
||||
str r0, [r1, #0x44]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_022CB18C: .word _022B966C
|
||||
_022CB18C: .word OSi_ThreadInfo
|
||||
arm_func_end Cps_SocDatagramMode
|
||||
|
||||
arm_func_start Cps_SocBind
|
||||
Cps_SocBind: ; 0x022CB190
|
||||
stmdb sp!, {r4, lr}
|
||||
ldr r3, _022CB1E4 ; =_022B966C
|
||||
ldr r3, _022CB1E4 ; =OSi_ThreadInfo
|
||||
ldr r3, [r3, #4]
|
||||
ldr r4, [r3, #0xa4]
|
||||
cmp r4, #0
|
||||
@@ -17721,14 +17721,14 @@ Cps_SocBind: ; 0x022CB190
|
||||
strh r0, [r4, #0xa]
|
||||
ldmia sp!, {r4, pc}
|
||||
.align 2, 0
|
||||
_022CB1E4: .word _022B966C
|
||||
_022CB1E4: .word OSi_ThreadInfo
|
||||
_022CB1E8: .word 0x7F000001
|
||||
_022CB1EC: .word ov00_02325078
|
||||
arm_func_end Cps_SocBind
|
||||
|
||||
arm_func_start Cps_SocUse
|
||||
Cps_SocUse: ; 0x022CB1F0
|
||||
ldr r0, _022CB220 ; =_022B966C
|
||||
ldr r0, _022CB220 ; =OSi_ThreadInfo
|
||||
ldr r0, [r0, #4]
|
||||
ldr r1, [r0, #0xa4]
|
||||
cmp r1, #0
|
||||
@@ -17741,12 +17741,12 @@ Cps_SocUse: ; 0x022CB1F0
|
||||
str r0, [r1, #0x38]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_022CB220: .word _022B966C
|
||||
_022CB220: .word OSi_ThreadInfo
|
||||
arm_func_end Cps_SocUse
|
||||
|
||||
arm_func_start Cps_SocRelease
|
||||
Cps_SocRelease: ; 0x022CB224
|
||||
ldr r0, _022CB240 ; =_022B966C
|
||||
ldr r0, _022CB240 ; =OSi_ThreadInfo
|
||||
ldr r0, [r0, #4]
|
||||
ldr r1, [r0, #0xa4]
|
||||
cmp r1, #0
|
||||
@@ -17754,30 +17754,30 @@ Cps_SocRelease: ; 0x022CB224
|
||||
strne r0, [r1]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_022CB240: .word _022B966C
|
||||
_022CB240: .word OSi_ThreadInfo
|
||||
arm_func_end Cps_SocRelease
|
||||
|
||||
arm_func_start Cps_SocDup
|
||||
Cps_SocDup: ; 0x022CB244
|
||||
ldr r1, _022CB258 ; =_022B966C
|
||||
ldr r1, _022CB258 ; =OSi_ThreadInfo
|
||||
ldr r1, [r1, #4]
|
||||
ldr r1, [r1, #0xa4]
|
||||
str r1, [r0, #0xa4]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_022CB258: .word _022B966C
|
||||
_022CB258: .word OSi_ThreadInfo
|
||||
arm_func_end Cps_SocDup
|
||||
|
||||
arm_func_start Cps_SetUdpCallback
|
||||
Cps_SetUdpCallback: ; 0x022CB25C
|
||||
ldr r1, _022CB274 ; =_022B966C
|
||||
ldr r1, _022CB274 ; =OSi_ThreadInfo
|
||||
ldr r1, [r1, #4]
|
||||
ldr r1, [r1, #0xa4]
|
||||
cmp r1, #0
|
||||
strne r0, [r1, #0x38]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_022CB274: .word _022B966C
|
||||
_022CB274: .word OSi_ThreadInfo
|
||||
arm_func_end Cps_SetUdpCallback
|
||||
|
||||
arm_func_start Cpsi_TcpConnectRaw
|
||||
@@ -17836,7 +17836,7 @@ _022CB328: .word ov00_02325078
|
||||
arm_func_start Cps_TcpConnect
|
||||
Cps_TcpConnect: ; 0x022CB32C
|
||||
stmdb sp!, {r3, lr}
|
||||
ldr r0, _022CB368 ; =_022B966C
|
||||
ldr r0, _022CB368 ; =OSi_ThreadInfo
|
||||
ldr r0, [r0, #4]
|
||||
ldr r0, [r0, #0xa4]
|
||||
cmp r0, #0
|
||||
@@ -17853,7 +17853,7 @@ _022CB360:
|
||||
mov r0, #1
|
||||
ldmia sp!, {r3, pc}
|
||||
.align 2, 0
|
||||
_022CB368: .word _022B966C
|
||||
_022CB368: .word OSi_ThreadInfo
|
||||
arm_func_end Cps_TcpConnect
|
||||
|
||||
arm_func_start Cpsi_TcpShutdownRaw
|
||||
@@ -17884,7 +17884,7 @@ _022CB3A4:
|
||||
arm_func_start Cps_TcpShutdown
|
||||
Cps_TcpShutdown: ; 0x022CB3BC
|
||||
stmdb sp!, {r4, lr}
|
||||
ldr r0, _022CB3F4 ; =_022B966C
|
||||
ldr r0, _022CB3F4 ; =OSi_ThreadInfo
|
||||
ldr r0, [r0, #4]
|
||||
ldr r4, [r0, #0xa4]
|
||||
cmp r4, #0
|
||||
@@ -17899,13 +17899,13 @@ _022CB3E8:
|
||||
bl Cpsi_TcpShutdownRaw
|
||||
ldmia sp!, {r4, pc}
|
||||
.align 2, 0
|
||||
_022CB3F4: .word _022B966C
|
||||
_022CB3F4: .word OSi_ThreadInfo
|
||||
arm_func_end Cps_TcpShutdown
|
||||
|
||||
arm_func_start Cps_TcpClose
|
||||
Cps_TcpClose: ; 0x022CB3F8
|
||||
stmdb sp!, {r4, r5, r6, lr}
|
||||
ldr r0, _022CB478 ; =_022B966C
|
||||
ldr r0, _022CB478 ; =OSi_ThreadInfo
|
||||
ldr r0, [r0, #4]
|
||||
ldr r4, [r0, #0xa4]
|
||||
cmp r4, #0
|
||||
@@ -17941,7 +17941,7 @@ _022CB46C:
|
||||
strb r0, [r4, #8]
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_022CB478: .word _022B966C
|
||||
_022CB478: .word OSi_ThreadInfo
|
||||
_022CB47C: .word ov00_02325078
|
||||
arm_func_end Cps_TcpClose
|
||||
|
||||
@@ -18014,7 +18014,7 @@ _022CB538:
|
||||
arm_func_start Cps_SocRead
|
||||
Cps_SocRead: ; 0x022CB550
|
||||
stmdb sp!, {r3, lr}
|
||||
ldr r1, _022CB5B0 ; =_022B966C
|
||||
ldr r1, _022CB5B0 ; =OSi_ThreadInfo
|
||||
ldr r1, [r1, #4]
|
||||
ldr r1, [r1, #0xa4]
|
||||
cmp r1, #0
|
||||
@@ -18041,7 +18041,7 @@ _022CB5A0:
|
||||
mov r0, r1
|
||||
ldmia sp!, {r3, pc}
|
||||
.align 2, 0
|
||||
_022CB5B0: .word _022B966C
|
||||
_022CB5B0: .word OSi_ThreadInfo
|
||||
arm_func_end Cps_SocRead
|
||||
|
||||
arm_func_start Cpsi_SocConsumeRaw
|
||||
@@ -18090,7 +18090,7 @@ _022CB634:
|
||||
arm_func_start Cps_SocConsume
|
||||
Cps_SocConsume: ; 0x022CB644
|
||||
stmdb sp!, {r3, lr}
|
||||
ldr r1, _022CB678 ; =_022B966C
|
||||
ldr r1, _022CB678 ; =OSi_ThreadInfo
|
||||
ldr r1, [r1, #4]
|
||||
ldr r1, [r1, #0xa4]
|
||||
cmp r1, #0
|
||||
@@ -18104,7 +18104,7 @@ _022CB670:
|
||||
bl Cpsi_SocConsumeRaw
|
||||
ldmia sp!, {r3, pc}
|
||||
.align 2, 0
|
||||
_022CB678: .word _022B966C
|
||||
_022CB678: .word OSi_ThreadInfo
|
||||
arm_func_end Cps_SocConsume
|
||||
|
||||
arm_func_start tcp_write_do
|
||||
@@ -18332,7 +18332,7 @@ _022CB980: .word ov00_02325078
|
||||
arm_func_start Cpsi_SocWrite2
|
||||
Cpsi_SocWrite2: ; 0x022CB984
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
||||
ldr ip, _022CBA50 ; =_022B966C
|
||||
ldr ip, _022CBA50 ; =OSi_ThreadInfo
|
||||
mov r7, r1
|
||||
ldr ip, [ip, #4]
|
||||
mov r6, r2
|
||||
@@ -18392,14 +18392,14 @@ _022CBA48:
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_022CBA50: .word _022B966C
|
||||
_022CBA50: .word OSi_ThreadInfo
|
||||
_022CBA54: .word ov00_02325078
|
||||
arm_func_end Cpsi_SocWrite2
|
||||
|
||||
arm_func_start Cps_SocWrite
|
||||
Cps_SocWrite: ; 0x022CBA58
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
ldr r3, _022CBAEC ; =_022B966C
|
||||
ldr r3, _022CBAEC ; =OSi_ThreadInfo
|
||||
mov r2, r0
|
||||
ldr r4, [r3, #4]
|
||||
mov r3, r1
|
||||
@@ -18439,13 +18439,13 @@ _022CBAE4:
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
_022CBAEC: .word _022B966C
|
||||
_022CBAEC: .word OSi_ThreadInfo
|
||||
arm_func_end Cps_SocWrite
|
||||
|
||||
arm_func_start Cps_SocGetLength
|
||||
Cps_SocGetLength: ; 0x022CBAF0
|
||||
stmdb sp!, {r3, lr}
|
||||
ldr r0, _022CBB5C ; =_022B966C
|
||||
ldr r0, _022CBB5C ; =OSi_ThreadInfo
|
||||
ldr r0, [r0, #4]
|
||||
ldr r0, [r0, #0xa4]
|
||||
cmp r0, #0
|
||||
@@ -18476,13 +18476,13 @@ _022CBB54:
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, pc}
|
||||
.align 2, 0
|
||||
_022CBB5C: .word _022B966C
|
||||
_022CBB5C: .word OSi_ThreadInfo
|
||||
arm_func_end Cps_SocGetLength
|
||||
|
||||
arm_func_start Cps_SocFlush
|
||||
Cps_SocFlush: ; 0x022CBB60
|
||||
stmdb sp!, {r4, lr}
|
||||
ldr r0, _022CBB9C ; =_022B966C
|
||||
ldr r0, _022CBB9C ; =OSi_ThreadInfo
|
||||
ldr r0, [r0, #4]
|
||||
ldr r4, [r0, #0xa4]
|
||||
cmp r4, #0
|
||||
@@ -18497,7 +18497,7 @@ Cps_SocFlush: ; 0x022CBB60
|
||||
str r0, [r4, #0x60]
|
||||
ldmia sp!, {r4, pc}
|
||||
.align 2, 0
|
||||
_022CBB9C: .word _022B966C
|
||||
_022CBB9C: .word OSi_ThreadInfo
|
||||
arm_func_end Cps_SocFlush
|
||||
|
||||
arm_func_start set_fixed_ip
|
||||
@@ -18690,7 +18690,7 @@ _022CBE0C:
|
||||
bl send_arprequest
|
||||
mov sl, #0x69
|
||||
_022CBE3C:
|
||||
ldr r0, _022CBFA8 ; =_022B966C
|
||||
ldr r0, _022CBFA8 ; =OSi_ThreadInfo
|
||||
ldr sb, [r0, #8]
|
||||
cmp sb, #0
|
||||
beq _022CBF04
|
||||
@@ -18791,7 +18791,7 @@ _022CBF98: .word ov00_02325724
|
||||
_022CBF9C: .word ov00_023255A4
|
||||
_022CBFA0: .word ov00_023250F8
|
||||
_022CBFA4: .word 0x000003BD
|
||||
_022CBFA8: .word _022B966C
|
||||
_022CBFA8: .word OSi_ThreadInfo
|
||||
_022CBFAC: .word ov00_023253A0
|
||||
arm_func_end scavenger
|
||||
|
||||
@@ -21723,7 +21723,7 @@ _022CE66C:
|
||||
arm_func_start Socli_GetOptimumSendBufLen
|
||||
Socli_GetOptimumSendBufLen: ; 0x022CE688
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
ldr r1, _022CE724 ; =_022B966C
|
||||
ldr r1, _022CE724 ; =OSi_ThreadInfo
|
||||
mov r4, r0
|
||||
ldr r0, [r1, #4]
|
||||
ldr r5, [r0, #0xa4]
|
||||
@@ -21766,7 +21766,7 @@ _022CE71C:
|
||||
mov r0, r4
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
_022CE724: .word _022B966C
|
||||
_022CE724: .word OSi_ThreadInfo
|
||||
_022CE728: .word ov00_023268D0
|
||||
arm_func_end Socli_GetOptimumSendBufLen
|
||||
|
||||
@@ -23582,7 +23582,7 @@ enter_computebound: ; 0x022CFDCC
|
||||
cmp r0, #0x20
|
||||
mvnhs r0, #0
|
||||
ldmhsia sp!, {r3, r4, r5, pc}
|
||||
ldr r0, _022CFE14 ; =_022B966C
|
||||
ldr r0, _022CFE14 ; =OSi_ThreadInfo
|
||||
ldr r5, [r0, #4]
|
||||
mov r0, r5
|
||||
bl OS_GetThreadPriority
|
||||
@@ -23595,7 +23595,7 @@ enter_computebound: ; 0x022CFDCC
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
_022CFE10: .word ov00_023188CC
|
||||
_022CFE14: .word _022B966C
|
||||
_022CFE14: .word OSi_ThreadInfo
|
||||
arm_func_end enter_computebound
|
||||
|
||||
arm_func_start exit_computebound
|
||||
@@ -23604,17 +23604,17 @@ exit_computebound: ; 0x022CFE18
|
||||
mov r1, r0
|
||||
cmp r1, #0x20
|
||||
ldmhsia sp!, {r3, pc}
|
||||
ldr r0, _022CFE38 ; =_022B966C
|
||||
ldr r0, _022CFE38 ; =OSi_ThreadInfo
|
||||
ldr r0, [r0, #4]
|
||||
bl OS_SetThreadPriority
|
||||
ldmia sp!, {r3, pc}
|
||||
.align 2, 0
|
||||
_022CFE38: .word _022B966C
|
||||
_022CFE38: .word OSi_ThreadInfo
|
||||
arm_func_end exit_computebound
|
||||
|
||||
arm_func_start Cps_SetRootCa
|
||||
Cps_SetRootCa: ; 0x022CFE3C
|
||||
ldr r2, _022CFE60 ; =_022B966C
|
||||
ldr r2, _022CFE60 ; =OSi_ThreadInfo
|
||||
ldr r2, [r2, #4]
|
||||
ldr r2, [r2, #0xa4]
|
||||
cmp r2, #0
|
||||
@@ -23624,7 +23624,7 @@ Cps_SetRootCa: ; 0x022CFE3C
|
||||
strne r1, [r2, #0x818]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_022CFE60: .word _022B966C
|
||||
_022CFE60: .word OSi_ThreadInfo
|
||||
arm_func_end Cps_SetRootCa
|
||||
|
||||
arm_func_start Get_RootCA
|
||||
@@ -26884,7 +26884,7 @@ Cps_SetSsl: ; 0x022D2B44
|
||||
mov r4, r0
|
||||
ldr r0, _022D2B6C ; =_02000C1C
|
||||
bl OSi_ReferSymbol
|
||||
ldr r0, _022D2B70 ; =_022B966C
|
||||
ldr r0, _022D2B70 ; =OSi_ThreadInfo
|
||||
ldr r0, [r0, #4]
|
||||
ldr r0, [r0, #0xa4]
|
||||
cmp r0, #0
|
||||
@@ -26892,7 +26892,7 @@ Cps_SetSsl: ; 0x022D2B44
|
||||
ldmia sp!, {r4, pc}
|
||||
.align 2, 0
|
||||
_022D2B6C: .word _02000C1C
|
||||
_022D2B70: .word _022B966C
|
||||
_022D2B70: .word OSi_ThreadInfo
|
||||
arm_func_end Cps_SetSsl
|
||||
|
||||
arm_func_start Cpsi_SslPeriodical
|
||||
@@ -26918,7 +26918,7 @@ _022D2BAC:
|
||||
add r6, r6, #0x5c
|
||||
blt _022D2B90
|
||||
bl SetIrqFlag
|
||||
ldr r0, _022D2C50 ; =_022B966C
|
||||
ldr r0, _022D2C50 ; =OSi_ThreadInfo
|
||||
ldr r4, [r0, #8]
|
||||
cmp r4, #0
|
||||
ldmeqia sp!, {r4, r5, r6, pc}
|
||||
@@ -26957,7 +26957,7 @@ _022D2C38:
|
||||
.align 2, 0
|
||||
_022D2C48: .word ov00_02326AC8
|
||||
_022D2C4C: .word 0x000003BD
|
||||
_022D2C50: .word _022B966C
|
||||
_022D2C50: .word OSi_ThreadInfo
|
||||
arm_func_end Cpsi_SslPeriodical
|
||||
|
||||
arm_func_start Cpsi_SslCleanup
|
||||
@@ -38353,7 +38353,7 @@ _022DC0DC:
|
||||
cmp r0, #0
|
||||
movne r0, #4
|
||||
ldmneia sp!, {r4, pc}
|
||||
ldr r0, _022DC178 ; =_022B966C
|
||||
ldr r0, _022DC178 ; =OSi_ThreadInfo
|
||||
ldr r0, [r0, #4]
|
||||
bl OS_GetThreadPriority
|
||||
ldr r1, _022DC16C ; =ov00_02326CB4
|
||||
@@ -38370,7 +38370,7 @@ _022DC168: .word ov00_02318C2C
|
||||
_022DC16C: .word ov00_02326CB4
|
||||
_022DC170: .word ov00_02318BC8
|
||||
_022DC174: .word ov00_02326CC0
|
||||
_022DC178: .word _022B966C
|
||||
_022DC178: .word OSi_ThreadInfo
|
||||
arm_func_end Dwci_Auth_Start
|
||||
|
||||
arm_func_start Dwci_Auth_Thread
|
||||
@@ -41167,7 +41167,7 @@ _022DE864:
|
||||
bl Dwci_Netcheck_SetError
|
||||
b _022DF5D4
|
||||
_022DE88C:
|
||||
ldr r0, _022DF638 ; =_022B966C
|
||||
ldr r0, _022DF638 ; =OSi_ThreadInfo
|
||||
ldr r0, [r0, #4]
|
||||
bl OS_GetThreadPriority
|
||||
sub r1, r0, #1
|
||||
@@ -41356,7 +41356,7 @@ _022DEAF0:
|
||||
bl Dwci_Netcheck_SetError
|
||||
b _022DF5D4
|
||||
_022DEB48:
|
||||
ldr r0, _022DF638 ; =_022B966C
|
||||
ldr r0, _022DF638 ; =OSi_ThreadInfo
|
||||
ldr r0, [r0, #4]
|
||||
bl OS_GetThreadPriority
|
||||
ldr r2, _022DF628 ; =ov00_02326CD8
|
||||
@@ -41642,7 +41642,7 @@ _022DEF14:
|
||||
bl Dwci_Netcheck_SetError
|
||||
b _022DF5D4
|
||||
_022DEF64:
|
||||
ldr r0, _022DF638 ; =_022B966C
|
||||
ldr r0, _022DF638 ; =OSi_ThreadInfo
|
||||
ldr r0, [r0, #4]
|
||||
bl OS_GetThreadPriority
|
||||
sub r1, r0, #1
|
||||
@@ -41997,7 +41997,7 @@ _022DF45C:
|
||||
bl Dwci_Netcheck_SetError
|
||||
b _022DF5D4
|
||||
_022DF484:
|
||||
ldr r0, _022DF638 ; =_022B966C
|
||||
ldr r0, _022DF638 ; =OSi_ThreadInfo
|
||||
ldr r0, [r0, #4]
|
||||
bl OS_GetThreadPriority
|
||||
sub r1, r0, #1
|
||||
@@ -42117,7 +42117,7 @@ _022DF628: .word ov00_02326CD8
|
||||
_022DF62C: .word 0x00009C40
|
||||
_022DF630: .word ov00_02319084
|
||||
_022DF634: .word ov00_02326CF0
|
||||
_022DF638: .word _022B966C
|
||||
_022DF638: .word OSi_ThreadInfo
|
||||
_022DF63C: .word ov00_02319198
|
||||
_022DF640: .word _022BCA70
|
||||
_022DF644: .word 0x0000012E
|
||||
@@ -42513,7 +42513,7 @@ _022DFB98:
|
||||
mov r0, #0
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
_022DFBD8:
|
||||
ldr r0, _022DFC58 ; =_022B966C
|
||||
ldr r0, _022DFC58 ; =OSi_ThreadInfo
|
||||
ldr r0, [r0, #4]
|
||||
bl OS_GetThreadPriority
|
||||
ldr r1, _022DFC38 ; =ov00_02326D68
|
||||
@@ -42546,7 +42546,7 @@ _022DFC48: .word 0xFFFFA1DC
|
||||
_022DFC4C: .word ov00_023192F8
|
||||
_022DFC50: .word ov00_02319300
|
||||
_022DFC54: .word ov00_02319308
|
||||
_022DFC58: .word _022B966C
|
||||
_022DFC58: .word OSi_ThreadInfo
|
||||
arm_func_end Dwc_Svl_GetTokenAsync
|
||||
|
||||
arm_func_start Dwc_Svl_Process
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
.public _020B2ED4
|
||||
.public _020B2FBC
|
||||
.public _020B3364
|
||||
.public _022B966C
|
||||
.public OSi_ThreadInfo
|
||||
.public _022BB5EC
|
||||
.public _022BB5FC
|
||||
.public _022BB604
|
||||
|
||||
@@ -192,7 +192,7 @@ _02083A60:
|
||||
mov r0, #1
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
||||
_02083AC0:
|
||||
ldr r0, _02083AFC ; =_022B966C
|
||||
ldr r0, _02083AFC ; =OSi_ThreadInfo
|
||||
ldr r1, _02083AF0 ; =_022BB7E0
|
||||
ldr r2, [r0, #4]
|
||||
mov r0, r4
|
||||
@@ -208,7 +208,7 @@ _02083AC0:
|
||||
_02083AF0: .word _022BB7E0
|
||||
_02083AF4: .word _02000BC4
|
||||
_02083AF8: .word Cardi_RequestStreamCommandCore
|
||||
_02083AFC: .word _022B966C
|
||||
_02083AFC: .word OSi_ThreadInfo
|
||||
arm_func_end Cardi_RequestStreamCommand
|
||||
|
||||
arm_func_start Card_GetCurrentBackupType
|
||||
@@ -275,7 +275,7 @@ _02083B88:
|
||||
bl SetIrqFlag
|
||||
mov r0, r6
|
||||
bl Cardi_IdentifyBackupCore
|
||||
ldr r0, _02083C70 ; =_022B966C
|
||||
ldr r0, _02083C70 ; =OSi_ThreadInfo
|
||||
ldr r1, _02083C6C ; =_022BB7E0
|
||||
ldr r2, [r0, #4]
|
||||
mov r0, r4
|
||||
@@ -326,7 +326,7 @@ _02083C50:
|
||||
.align 2, 0
|
||||
_02083C68: .word _02000BC4
|
||||
_02083C6C: .word _022BB7E0
|
||||
_02083C70: .word _022B966C
|
||||
_02083C70: .word OSi_ThreadInfo
|
||||
arm_func_end Card_IdentifyBackup
|
||||
|
||||
arm_func_start Card_WaitBackupAsync
|
||||
|
||||
@@ -478,7 +478,7 @@ _020842C0:
|
||||
bl Cardi_SetTask
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
|
||||
_020842D8:
|
||||
ldr r1, _02084300 ; =_022B966C
|
||||
ldr r1, _02084300 ; =OSi_ThreadInfo
|
||||
mov r0, r5
|
||||
ldr r1, [r1, #4]
|
||||
str r1, [r5, #0x104]
|
||||
@@ -489,7 +489,7 @@ _020842F0: .word _022BBE20
|
||||
_020842F4: .word _022BB7E0
|
||||
_020842F8: .word _022BBE00
|
||||
_020842FC: .word Cardi_ReadRomSyncCore
|
||||
_02084300: .word _022B966C
|
||||
_02084300: .word OSi_ThreadInfo
|
||||
arm_func_end Cardi_ReadRom
|
||||
|
||||
arm_func_start CARD_Init
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start CP_SaveContext
|
||||
CP_SaveContext: ; 0x02080EF0
|
||||
ldr r1, _02080F2C ; =0x04000290
|
||||
stmdb sp!, {r4}
|
||||
ldmia r1, {r2, r3, r4, ip}
|
||||
stmia r0!, {r2, r3, r4, ip}
|
||||
ldrh ip, [r1, #-0x10]
|
||||
add r1, r1, #0x28
|
||||
ldmia r1, {r2, r3}
|
||||
stmia r0!, {r2, r3}
|
||||
and ip, ip, #3
|
||||
ldrh r2, [r1, #-8]
|
||||
strh ip, [r0]
|
||||
and r2, r2, #1
|
||||
strh r2, [r0, #2]
|
||||
ldmia sp!, {r4}
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_02080F2C: .word 0x04000290
|
||||
arm_func_end CP_SaveContext
|
||||
|
||||
arm_func_start CPi_RestoreContext
|
||||
CPi_RestoreContext: ; 0x02080F30
|
||||
stmdb sp!, {r4}
|
||||
ldr r1, _02080F68 ; =0x04000290
|
||||
ldmia r0, {r2, r3, r4, ip}
|
||||
stmia r1, {r2, r3, r4, ip}
|
||||
ldrh r2, [r0, #0x18]
|
||||
ldrh r3, [r0, #0x1a]
|
||||
strh r2, [r1, #-0x10]
|
||||
strh r3, [r1, #0x20]
|
||||
add r0, r0, #0x10
|
||||
add r1, r1, #0x28
|
||||
ldmia r0, {r2, r3}
|
||||
stmia r1, {r2, r3}
|
||||
ldmia sp!, {r4}
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_02080F68: .word 0x04000290
|
||||
arm_func_end CPi_RestoreContext
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
.public _022B961C
|
||||
.public _022B9644
|
||||
.public OSi_IsThreadInitialized
|
||||
.public _022B966C
|
||||
.public OSi_ThreadInfo
|
||||
.public _022B9670
|
||||
.public _022B967C
|
||||
.public _022B973C
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
.public _022B961C
|
||||
.public _022B9644
|
||||
.public OSi_IsThreadInitialized
|
||||
.public _022B966C
|
||||
.public OSi_ThreadInfo
|
||||
.public _022B9670
|
||||
.public _022B967C
|
||||
.public _022B973C
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
.public _022B961C
|
||||
.public _022B9644
|
||||
.public OSi_IsThreadInitialized
|
||||
.public _022B966C
|
||||
.public OSi_ThreadInfo
|
||||
.public _022B9670
|
||||
.public _022B967C
|
||||
.public _022B973C
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
.public _022B961C
|
||||
.public _022B9644
|
||||
.public OSi_IsThreadInitialized
|
||||
.public _022B966C
|
||||
.public OSi_ThreadInfo
|
||||
.public _022B9670
|
||||
.public _022B967C
|
||||
.public _022B973C
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
.public _022B961C
|
||||
.public _022B9644
|
||||
.public OSi_IsThreadInitialized
|
||||
.public _022B966C
|
||||
.public OSi_ThreadInfo
|
||||
.public _022B9670
|
||||
.public _022B967C
|
||||
.public _022B973C
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
.public _020B2ED4
|
||||
.public _020B2FBC
|
||||
.public _020B3364
|
||||
.public _022B966C
|
||||
.public OSi_ThreadInfo
|
||||
.public _022BB5EC
|
||||
.public _022BB5FC
|
||||
.public _022BB604
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
.public _022B961C
|
||||
.public _022B9644
|
||||
.public OSi_IsThreadInitialized
|
||||
.public _022B966C
|
||||
.public OSi_ThreadInfo
|
||||
.public _022B9670
|
||||
.public _022B967C
|
||||
.public _022B973C
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
.public _022B961C
|
||||
.public _022B9644
|
||||
.public OSi_IsThreadInitialized
|
||||
.public _022B966C
|
||||
.public OSi_ThreadInfo
|
||||
.public _022B9670
|
||||
.public _022B967C
|
||||
.public _022B973C
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
.public _022B961C
|
||||
.public _022B9644
|
||||
.public OSi_IsThreadInitialized
|
||||
.public _022B966C
|
||||
.public OSi_ThreadInfo
|
||||
.public _022B9670
|
||||
.public _022B967C
|
||||
.public _022B973C
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
.public _022B961C
|
||||
.public _022B9644
|
||||
.public OSi_IsThreadInitialized
|
||||
.public _022B966C
|
||||
.public OSi_ThreadInfo
|
||||
.public _022B9670
|
||||
.public _022B967C
|
||||
.public _022B973C
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
.public _022B961C
|
||||
.public _022B9644
|
||||
.public OSi_IsThreadInitialized
|
||||
.public _022B966C
|
||||
.public OSi_ThreadInfo
|
||||
.public _022B9670
|
||||
.public _022B967C
|
||||
.public _022B973C
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
.public _022B961C
|
||||
.public _022B9644
|
||||
.public OSi_IsThreadInitialized
|
||||
.public _022B966C
|
||||
.public OSi_ThreadInfo
|
||||
.public _022B9670
|
||||
.public _022B967C
|
||||
.public _022B973C
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
.public _022B961C
|
||||
.public _022B9644
|
||||
.public OSi_IsThreadInitialized
|
||||
.public _022B966C
|
||||
.public OSi_ThreadInfo
|
||||
.public _022B9670
|
||||
.public _022B967C
|
||||
.public _022B973C
|
||||
|
||||
@@ -1,168 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "include/os_thread.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start OS_InitMutex
|
||||
OS_InitMutex: ; 0x0207A030
|
||||
mov r1, #0
|
||||
str r1, [r0, #4]
|
||||
str r1, [r0]
|
||||
str r1, [r0, #8]
|
||||
str r1, [r0, #0xc]
|
||||
bx lr
|
||||
arm_func_end OS_InitMutex
|
||||
|
||||
arm_func_start OS_LockMutex
|
||||
OS_LockMutex: ; 0x0207A048
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
||||
mov r5, r0
|
||||
bl EnableIrqFlag
|
||||
ldr r1, _0207A0C8 ; =_022B966C
|
||||
mov r4, r0
|
||||
ldr r7, [r1, #4]
|
||||
mov r6, #0
|
||||
_0207A064:
|
||||
ldr r0, [r5, #8]
|
||||
cmp r0, #0
|
||||
bne _0207A090
|
||||
str r7, [r5, #8]
|
||||
ldr r1, [r5, #0xc]
|
||||
mov r0, r7
|
||||
add r2, r1, #1
|
||||
mov r1, r5
|
||||
str r2, [r5, #0xc]
|
||||
bl OSi_EnqueueTail
|
||||
b _0207A0BC
|
||||
_0207A090:
|
||||
cmp r0, r7
|
||||
bne _0207A0A8
|
||||
ldr r0, [r5, #0xc]
|
||||
add r0, r0, #1
|
||||
str r0, [r5, #0xc]
|
||||
b _0207A0BC
|
||||
_0207A0A8:
|
||||
mov r0, r5
|
||||
str r5, [r7, #0x84]
|
||||
bl OS_SleepThread
|
||||
str r6, [r7, #0x84]
|
||||
b _0207A064
|
||||
_0207A0BC:
|
||||
mov r0, r4
|
||||
bl SetIrqFlag
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0207A0C8: .word _022B966C
|
||||
arm_func_end OS_LockMutex
|
||||
|
||||
arm_func_start OS_UnlockMutex
|
||||
OS_UnlockMutex: ; 0x0207A0CC
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
mov r5, r0
|
||||
bl EnableIrqFlag
|
||||
ldr r1, _0207A124 ; =_022B966C
|
||||
mov r4, r0
|
||||
ldr r0, [r1, #4]
|
||||
ldr r1, [r5, #8]
|
||||
cmp r1, r0
|
||||
bne _0207A118
|
||||
ldr r1, [r5, #0xc]
|
||||
subs r1, r1, #1
|
||||
str r1, [r5, #0xc]
|
||||
bne _0207A118
|
||||
mov r1, r5
|
||||
bl OSi_DequeueItem
|
||||
mov r1, #0
|
||||
mov r0, r5
|
||||
str r1, [r5, #8]
|
||||
bl OS_WakeupThread
|
||||
_0207A118:
|
||||
mov r0, r4
|
||||
bl SetIrqFlag
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0207A124: .word _022B966C
|
||||
arm_func_end OS_UnlockMutex
|
||||
|
||||
arm_func_start OSi_UnlockAllMutex
|
||||
OSi_UnlockAllMutex: ; 0x0207A128
|
||||
stmdb sp!, {r3, r4, r5, lr}
|
||||
mov r5, r0
|
||||
ldr r0, [r5, #0x88]
|
||||
cmp r0, #0
|
||||
ldmeqia sp!, {r3, r4, r5, pc}
|
||||
mov r4, #0
|
||||
_0207A140:
|
||||
add r0, r5, #0x88
|
||||
bl OSi_RemoveMutexLinkFromQueue
|
||||
str r4, [r0, #0xc]
|
||||
str r4, [r0, #8]
|
||||
bl OS_WakeupThread
|
||||
ldr r0, [r5, #0x88]
|
||||
cmp r0, #0
|
||||
bne _0207A140
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
arm_func_end OSi_UnlockAllMutex
|
||||
|
||||
arm_func_start OS_TryLockMutex
|
||||
OS_TryLockMutex: ; 0x0207A164
|
||||
stmdb sp!, {r4, r5, r6, lr}
|
||||
mov r5, r0
|
||||
bl EnableIrqFlag
|
||||
ldr r2, [r5, #8]
|
||||
ldr r1, _0207A1D4 ; =_022B966C
|
||||
mov r4, r0
|
||||
cmp r2, #0
|
||||
ldr r0, [r1, #4]
|
||||
bne _0207A1A8
|
||||
str r0, [r5, #8]
|
||||
ldr r2, [r5, #0xc]
|
||||
mov r1, r5
|
||||
add r2, r2, #1
|
||||
str r2, [r5, #0xc]
|
||||
bl OSi_EnqueueTail
|
||||
mov r6, #1
|
||||
b _0207A1C4
|
||||
_0207A1A8:
|
||||
cmp r2, r0
|
||||
movne r6, #0
|
||||
bne _0207A1C4
|
||||
ldr r0, [r5, #0xc]
|
||||
mov r6, #1
|
||||
add r0, r0, #1
|
||||
str r0, [r5, #0xc]
|
||||
_0207A1C4:
|
||||
mov r0, r4
|
||||
bl SetIrqFlag
|
||||
mov r0, r6
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0207A1D4: .word _022B966C
|
||||
arm_func_end OS_TryLockMutex
|
||||
|
||||
arm_func_start OSi_EnqueueTail
|
||||
OSi_EnqueueTail: ; 0x0207A1D8
|
||||
ldr r2, [r0, #0x8c]
|
||||
cmp r2, #0
|
||||
streq r1, [r0, #0x88]
|
||||
strne r1, [r2, #0x10]
|
||||
str r2, [r1, #0x14]
|
||||
mov r2, #0
|
||||
str r2, [r1, #0x10]
|
||||
str r1, [r0, #0x8c]
|
||||
bx lr
|
||||
arm_func_end OSi_EnqueueTail
|
||||
|
||||
arm_func_start OSi_DequeueItem
|
||||
OSi_DequeueItem: ; 0x0207A1FC
|
||||
ldr r2, [r1, #0x10]
|
||||
ldr r1, [r1, #0x14]
|
||||
cmp r2, #0
|
||||
streq r1, [r0, #0x8c]
|
||||
strne r1, [r2, #0x14]
|
||||
cmp r1, #0
|
||||
streq r2, [r0, #0x88]
|
||||
strne r2, [r1, #0x10]
|
||||
bx lr
|
||||
arm_func_end OSi_DequeueItem
|
||||
|
||||
@@ -1,57 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.text
|
||||
|
||||
.public MI_CpuCopy8
|
||||
.public MTi_CpuCopy16
|
||||
|
||||
arm_func_start OS_GetMacAddress
|
||||
OS_GetMacAddress: ; 0x0207B9EC
|
||||
ldr ip, _0207BA00 ; =MI_CpuCopy8
|
||||
mov r1, r0
|
||||
ldr r0, _0207BA04 ; =0x027FFCF4
|
||||
mov r2, #6
|
||||
bx ip
|
||||
.align 2, 0
|
||||
_0207BA00: .word MI_CpuCopy8
|
||||
_0207BA04: .word 0x027FFCF4
|
||||
arm_func_end OS_GetMacAddress
|
||||
|
||||
arm_func_start GetDsFirmwareUserSettings ; OS_GetOwnerInfo
|
||||
GetDsFirmwareUserSettings: ; 0x0207BA08
|
||||
stmdb sp!, {r4, lr}
|
||||
ldr ip, _0207BA88 ; =0x027FFC80
|
||||
mov r4, r0
|
||||
ldrh r2, [ip, #0x64]
|
||||
add r0, ip, #6
|
||||
add r1, r4, #4
|
||||
mov r2, r2, lsl #0x1d
|
||||
mov r2, r2, lsr #0x1d
|
||||
strb r2, [r4]
|
||||
ldrb r3, [ip, #2]
|
||||
mov r2, #0x14
|
||||
mov r3, r3, lsl #0x1c
|
||||
mov r3, r3, lsr #0x1c
|
||||
strb r3, [r4, #1]
|
||||
ldrb r3, [ip, #3]
|
||||
strb r3, [r4, #2]
|
||||
ldrb r3, [ip, #4]
|
||||
strb r3, [r4, #3]
|
||||
ldrb r3, [ip, #0x1a]
|
||||
strh r3, [r4, #0x1a]
|
||||
ldrb r3, [ip, #0x50]
|
||||
strh r3, [r4, #0x52]
|
||||
bl MTi_CpuCopy16
|
||||
ldr r0, _0207BA88 ; =0x027FFC80
|
||||
add r1, r4, #0x1c
|
||||
add r0, r0, #0x1c
|
||||
mov r2, #0x34
|
||||
bl MTi_CpuCopy16
|
||||
mov r0, #0
|
||||
strh r0, [r4, #0x18]
|
||||
strh r0, [r4, #0x50]
|
||||
ldmia sp!, {r4, pc}
|
||||
.align 2, 0
|
||||
_0207BA88: .word 0x027FFC80
|
||||
arm_func_end GetDsFirmwareUserSettings
|
||||
|
||||
@@ -180,7 +180,7 @@ OS_RescheduleThread: ; 0x02079340
|
||||
cmp r1, #0
|
||||
ldmneia sp!, {r4, r5, r6, pc}
|
||||
ldrh r0, [r0, #0x26]
|
||||
ldr r4, _02079404 ; =_022B966C
|
||||
ldr r4, _02079404 ; =OSi_ThreadInfo
|
||||
cmp r0, #0
|
||||
bne _02079370
|
||||
bl GetProcessorMode
|
||||
@@ -229,7 +229,7 @@ _020793EC:
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_02079400: .word THREAD_INFO_STRUCT
|
||||
_02079404: .word _022B966C
|
||||
_02079404: .word OSi_ThreadInfo
|
||||
arm_func_end OS_RescheduleThread
|
||||
|
||||
arm_func_start OS_InitThread
|
||||
@@ -278,7 +278,7 @@ _0207947C:
|
||||
str r2, [r3, #-4]
|
||||
ldr r2, [r1, #0x184]
|
||||
ldr ip, _02079538 ; =0x7BF9DD5B
|
||||
ldr r3, _0207953C ; =_022B966C
|
||||
ldr r3, _0207953C ; =OSi_ThreadInfo
|
||||
str ip, [r2]
|
||||
str r0, [r1, #0x194]
|
||||
str r0, [r1, #0x190]
|
||||
@@ -313,7 +313,7 @@ _0207952C: .word OS_IRQTable
|
||||
_02079530: .word 0x00000800
|
||||
_02079534: .word 0xFDDB597D
|
||||
_02079538: .word 0x7BF9DD5B
|
||||
_0207953C: .word _022B966C
|
||||
_0207953C: .word OSi_ThreadInfo
|
||||
_02079540: .word 0x027FFFA0
|
||||
_02079544: .word _022B967C
|
||||
_02079548: .word OSi_IdleThreadProc
|
||||
|
||||
47
lib/NitroSDK/src/cp_context.c
Normal file
47
lib/NitroSDK/src/cp_context.c
Normal file
@@ -0,0 +1,47 @@
|
||||
#include <nitro.h>
|
||||
#include <nitro/cp/context.h>
|
||||
|
||||
#if defined(SDK_TCM_APPLY) && defined(SDK_ARM9)
|
||||
#include <nitro/itcm_begin.h>
|
||||
#endif
|
||||
|
||||
asm void CP_SaveContext (register CPContext *context)
|
||||
{
|
||||
ldr r1, = REG_DIV_NUMER_ADDR
|
||||
stmfd sp !, {r4}
|
||||
ldmia r1, {r2 - r4, r12}
|
||||
stmia r0 !, {r2 - r4, r12}
|
||||
ldrh r12, [r1, #REG_DIVCNT_OFFSET - REG_DIV_NUMER_OFFSET]
|
||||
add r1, r1, #REG_SQRT_PARAM_OFFSET - REG_DIV_NUMER_OFFSET
|
||||
ldmia r1, {r2 - r3}
|
||||
stmia r0 !, {r2 - r3}
|
||||
and r12, r12, #REG_CP_DIVCNT_MODE_MASK
|
||||
ldrh r2, [r1, #REG_SQRTCNT_OFFSET - REG_SQRT_PARAM_OFFSET]
|
||||
strh r12, [r0]
|
||||
and r2, r2, #REG_CP_SQRTCNT_MODE_MASK
|
||||
strh r2, [r0, #2]
|
||||
ldmfd sp !, {r4}
|
||||
bx lr
|
||||
}
|
||||
|
||||
asm void CPi_RestoreContext (register const CPContext *context)
|
||||
{
|
||||
stmfd sp !, {r4}
|
||||
ldr r1, = REG_DIV_NUMER_ADDR
|
||||
ldmia r0, {r2 - r4, r12}
|
||||
stmia r1, {r2 - r4, r12}
|
||||
ldrh r2, [r0, #CPContext.div_mode]
|
||||
ldrh r3, [r0, #CPContext.sqrt_mode]
|
||||
strh r2, [r1, #REG_DIVCNT_OFFSET - REG_DIV_NUMER_OFFSET]
|
||||
strh r3, [r1, #REG_SQRTCNT_OFFSET - REG_DIV_NUMER_OFFSET]
|
||||
add r0, r0, #CPContext.sqrt
|
||||
add r1, r1, #REG_SQRT_PARAM_OFFSET - REG_DIV_NUMER_OFFSET
|
||||
ldmia r0, {r2 - r3}
|
||||
stmia r1, {r2 - r3}
|
||||
ldmfd sp !, {r4}
|
||||
bx lr
|
||||
}
|
||||
|
||||
#if defined(SDK_TCM_APPLY) && defined(SDK_ARM9)
|
||||
#include <nitro/itcm_end.h>
|
||||
#endif
|
||||
117
lib/NitroSDK/src/os_mutex.c
Normal file
117
lib/NitroSDK/src/os_mutex.c
Normal file
@@ -0,0 +1,117 @@
|
||||
#include <nitro.h>
|
||||
|
||||
void OSi_EnqueueTail(OSThread *thread, OSMutex *mtx);
|
||||
void OSi_DequeueItem(OSThread *thread, OSMutex *mtx);
|
||||
|
||||
extern void OS_SleepThread(void *);
|
||||
extern void OS_WakeupThread(void *);
|
||||
extern OSMutex *OSi_RemoveMutexLinkFromQueue(void *);
|
||||
|
||||
void OS_InitMutex(OSMutex *mtx) {
|
||||
OS_InitThreadQueue(&mtx->queue);
|
||||
mtx->thread = NULL;
|
||||
mtx->count = 0;
|
||||
}
|
||||
|
||||
void OS_LockMutex(OSMutex *mtx) {
|
||||
OSIntrMode enable;
|
||||
OSThread *currentThread;
|
||||
|
||||
enable = EnableIrqFlag();
|
||||
currentThread = OS_GetCurrentThread();
|
||||
while (1) {
|
||||
if (mtx->thread == NULL) {
|
||||
mtx->thread = currentThread;
|
||||
mtx->count++;
|
||||
OSi_EnqueueTail(currentThread, mtx);
|
||||
break;
|
||||
} else if (mtx->thread == currentThread) {
|
||||
mtx->count++;
|
||||
break;
|
||||
} else {
|
||||
currentThread->mutex = mtx;
|
||||
OS_SleepThread(&mtx->queue);
|
||||
currentThread->mutex = NULL;
|
||||
}
|
||||
}
|
||||
SetIrqFlag(enable);
|
||||
}
|
||||
|
||||
void OS_UnlockMutex(OSMutex *mtx) {
|
||||
OSIntrMode enable;
|
||||
OSThread *currentThread;
|
||||
|
||||
enable = EnableIrqFlag();
|
||||
currentThread = OS_GetCurrentThread();
|
||||
if (mtx->thread == currentThread && --mtx->count == 0) {
|
||||
OSi_DequeueItem(currentThread, mtx);
|
||||
mtx->thread = NULL;
|
||||
OS_WakeupThread(&mtx->queue);
|
||||
}
|
||||
SetIrqFlag(enable);
|
||||
}
|
||||
|
||||
void OSi_UnlockAllMutex(OSThread *thread) {
|
||||
while (thread->mutexQueue.head) {
|
||||
OSMutex *mtx = OSi_RemoveMutexLinkFromQueue(&thread->mutexQueue);
|
||||
mtx->count = 0;
|
||||
mtx->thread = NULL;
|
||||
OS_WakeupThread(&mtx->queue);
|
||||
}
|
||||
}
|
||||
|
||||
BOOL OS_TryLockMutex(OSMutex *mtx) {
|
||||
OSIntrMode enable;
|
||||
OSThread *currentThread;
|
||||
BOOL success;
|
||||
|
||||
enable = EnableIrqFlag();
|
||||
currentThread = OS_GetCurrentThread();
|
||||
if (mtx->thread == NULL) {
|
||||
mtx->thread = currentThread;
|
||||
mtx->count++;
|
||||
OSi_EnqueueTail(currentThread, mtx);
|
||||
success = TRUE;
|
||||
} else if (mtx->thread == currentThread) {
|
||||
mtx->count++;
|
||||
success = TRUE;
|
||||
} else {
|
||||
success = FALSE;
|
||||
}
|
||||
SetIrqFlag(enable);
|
||||
return success;
|
||||
}
|
||||
|
||||
void OSi_EnqueueTail(OSThread *thread, OSMutex *mtx) {
|
||||
OSMutex *prev;
|
||||
|
||||
prev = thread->mutexQueue.tail;
|
||||
if (prev == NULL) {
|
||||
thread->mutexQueue.head = mtx;
|
||||
} else {
|
||||
prev->link.next = mtx;
|
||||
}
|
||||
mtx->link.prev = prev;
|
||||
mtx->link.next = NULL;
|
||||
thread->mutexQueue.tail = mtx;
|
||||
}
|
||||
|
||||
void OSi_DequeueItem(OSThread *thread, OSMutex *mtx) {
|
||||
OSMutex *next;
|
||||
OSMutex *prev;
|
||||
|
||||
next = mtx->link.next;
|
||||
prev = mtx->link.prev;
|
||||
|
||||
if (next == NULL) {
|
||||
thread->mutexQueue.tail = prev;
|
||||
} else {
|
||||
next->link.prev = prev;
|
||||
}
|
||||
|
||||
if (prev == NULL) {
|
||||
thread->mutexQueue.head = next;
|
||||
} else {
|
||||
prev->link.next = next;
|
||||
}
|
||||
}
|
||||
28
lib/NitroSDK/src/os_ownerInfo.c
Normal file
28
lib/NitroSDK/src/os_ownerInfo.c
Normal file
@@ -0,0 +1,28 @@
|
||||
#include <nitro.h>
|
||||
|
||||
extern void MTi_CpuCopy16(void *, void *, u32);
|
||||
extern void MI_CpuCopy8(void *, void *, u32);
|
||||
|
||||
void OS_GetMacAddress(u8 *macAddr) {
|
||||
MI_CpuCopy8(OS_GetSystemWork()->nvramUserInfo + ((sizeof(NVRAMConfig) + 3) & ~3), macAddr, 6);
|
||||
}
|
||||
|
||||
//void OS_GetOwnerInfo(OSOwnerInfo *info) {
|
||||
void GetDsFirmwareUserSettings(OSOwnerInfo *info) {
|
||||
NVRAMConfig *src = (NVRAMConfig *)OS_GetSystemWork()->nvramUserInfo;
|
||||
info->language = src->ncd.option.language;
|
||||
info->favoriteColor = src->ncd.owner.favouriteColour;
|
||||
info->birthday.month = src->ncd.owner.birthday.month;
|
||||
info->birthday.day = src->ncd.owner.birthday.day;
|
||||
info->nickNameLength = src->ncd.owner.nickname.length;
|
||||
info->commentLength = src->ncd.owner.comment.length;
|
||||
MTi_CpuCopy16(src->ncd.owner.nickname.str, info->nickName, 20);
|
||||
MTi_CpuCopy16(src->ncd.owner.comment.str, info->comment, 52);
|
||||
info->nickName[10] = 0;
|
||||
info->comment[26] = 0;
|
||||
}
|
||||
|
||||
//s64 OS_GetOwnerRtcOffset(void) {
|
||||
// NVRAMConfig *cfg = (NVRAMConfig *)OS_GetSystemWork()->nvramUserInfo;
|
||||
// return cfg->ncd.option.rtcOffset;
|
||||
//}
|
||||
@@ -12,6 +12,6 @@ typedef struct CPContext {
|
||||
} CPContext;
|
||||
|
||||
void CP_SaveContext(register CPContext *context);
|
||||
void CPi_RestoreContext(register CPContext *context);
|
||||
void CPi_RestoreContext(register const CPContext *context);
|
||||
|
||||
#endif //NITRO_CP_CONTEXT_H_
|
||||
|
||||
@@ -18,12 +18,12 @@
|
||||
//#include <nitro/os/tick.h>
|
||||
#include <nitro/os/timer.h>
|
||||
//#include <nitro/os/alarm.h>
|
||||
//#include <nitro/os/ownerInfo.h>
|
||||
#include <nitro/os/ownerInfo.h>
|
||||
//#include <nitro/os/context.h>
|
||||
//#include <nitro/os/system.h>
|
||||
//#include <nitro/os/systemWork.h>
|
||||
//#include <nitro/os/thread.h>
|
||||
//#include <nitro/os/mutex.h>
|
||||
#include <nitro/os/mutex.h>
|
||||
//#include <nitro/os/interrupt.h>
|
||||
#include <nitro/os/systemCall.h>
|
||||
//#include <nitro/os/spinLock.h>
|
||||
|
||||
15
lib/include/nitro/os/mutex.h
Normal file
15
lib/include/nitro/os/mutex.h
Normal file
@@ -0,0 +1,15 @@
|
||||
#ifndef NITRO_OS_MUTEX_H
|
||||
#define NITRO_OS_MUTEX_H
|
||||
|
||||
#include <nitro/os/context.h>
|
||||
#include <nitro/os/common/mutex_shared.h>
|
||||
|
||||
void OSi_DequeueItem(OSThread * thread, OSMutex * mutex);
|
||||
void OSi_EnqueueTail(OSThread * thread, OSMutex * mutex);
|
||||
void OS_InitMutex(OSMutex* mutex);
|
||||
void OS_LockMutex(OSMutex* mutex);
|
||||
void OS_UnlockMutex(OSMutex* mutex);
|
||||
void OSi_UnlockAllMutex(OSThread * thread);
|
||||
BOOL OS_TryLockMutex(OSMutex *mtx);
|
||||
|
||||
#endif //NITRO_OS_MUTEX_H
|
||||
28
lib/include/nitro/os/ownerInfo.h
Normal file
28
lib/include/nitro/os/ownerInfo.h
Normal file
@@ -0,0 +1,28 @@
|
||||
#ifndef NITRO_OS_OWNERINFO_H_
|
||||
#define NITRO_OS_OWNERINFO_H_
|
||||
|
||||
#include <nitro/types.h>
|
||||
|
||||
typedef struct OSBirthday {
|
||||
u8 month;
|
||||
u8 day;
|
||||
} OSBirthday;
|
||||
|
||||
typedef struct OSOwnerInfo {
|
||||
u8 language;
|
||||
u8 favoriteColor;
|
||||
OSBirthday birthday;
|
||||
u16 nickName[11];
|
||||
u16 nickNameLength;
|
||||
u16 comment[27];
|
||||
u16 commentLength;
|
||||
} OSOwnerInfo;
|
||||
|
||||
void OS_GetMacAddress(u8 *macAddr);
|
||||
|
||||
//void OS_GetOwnerInfo(OSOwnerInfo *info);
|
||||
void GetDsFirmwareUserSettings(OSOwnerInfo *info);
|
||||
|
||||
s64 OS_GetOwnerRtcOffset(void);
|
||||
|
||||
#endif //NITRO_OS_OWNERINFO_H_
|
||||
6
main.lsf
6
main.lsf
@@ -242,7 +242,7 @@ Static main
|
||||
Object lib/NitroSDK/asm/os_context.o
|
||||
Object lib/NitroSDK/asm/os_emulator.o
|
||||
Object lib/NitroSDK/asm/os_message.o
|
||||
Object lib/NitroSDK/asm/os_mutex.o
|
||||
Object lib/NitroSDK/src/os_mutex.o
|
||||
Object lib/NitroSDK/src/os_cache.o
|
||||
Object lib/NitroSDK/src/os_init.o
|
||||
Object lib/NitroSDK/asm/os_arena.o
|
||||
@@ -257,7 +257,7 @@ Static main
|
||||
Object lib/NitroSDK/asm/os_valarm.o
|
||||
Object lib/NitroSDK/src/os_system.o
|
||||
object lib/NitroSDK/asm/os_reset.o
|
||||
object lib/NitroSDK/asm/os_ownerinfo.o
|
||||
object lib/NitroSDK/src/os_ownerinfo.o
|
||||
Object lib/NitroSDK/src/os_vramExclusive.o
|
||||
Object lib/NitroSDK/src/os_entropy.o
|
||||
Object lib/NitroSDK/src/os_terminate_proc.o
|
||||
@@ -288,7 +288,7 @@ Static main
|
||||
Object lib/NitroSDK/asm/fs_overlay.o
|
||||
Object lib/NitroSDK/asm/md5.o
|
||||
Object lib/NitroSDK/asm/dgt.o
|
||||
Object lib/NitroSDK/asm/cp_context.o
|
||||
Object lib/NitroSDK/src/cp_context.o
|
||||
Object lib/NitroSDK/asm/spi_tp.o
|
||||
Object lib/NitroSDK/asm/spi_pm.o
|
||||
Object lib/NitroSDK/asm/rtc_external.o
|
||||
|
||||
@@ -25,7 +25,6 @@ extern void sub_0207A95C(u32, u32);
|
||||
extern u32 sub_0207A98C(u32, u32, u32, u32);
|
||||
extern u32 sub_0207AA34(u32, u32, u32);
|
||||
extern void OS_InitTick();
|
||||
extern void OS_GetMacAddress(u8(*)[6]);
|
||||
extern void FS_Init(u32);
|
||||
extern void sub_02008DAC();
|
||||
extern void Card_SetThreadPriority(u32);
|
||||
@@ -73,7 +72,7 @@ void NitroMain(void)
|
||||
reg_OS_IME = 1;
|
||||
ClearIrqFlag(1,old_ime);
|
||||
sub_02008DAC();
|
||||
OS_GetMacAddress(&macAddr);
|
||||
OS_GetMacAddress(macAddr);
|
||||
sub_02002228(macAddr[0] * macAddr[1] +
|
||||
macAddr[2] * macAddr[3] +
|
||||
macAddr[4] * macAddr[5]);
|
||||
|
||||
Reference in New Issue
Block a user