diff --git a/asm/include/itcm.inc b/asm/include/itcm.inc index b0dbea07..55c91ec6 100644 --- a/asm/include/itcm.inc +++ b/asm/include/itcm.inc @@ -8,7 +8,7 @@ .public _020A2CF8 .public _022A88F0 .public _022A88FC -.public _022B966C +.public OSi_ThreadInfo .public OSi_IsInitReset .public CP_SaveContext .public CPi_RestoreContext diff --git a/asm/include/main_020022C4.inc b/asm/include/main_020022C4.inc index 50f6ce7d..e9a2a2eb 100644 --- a/asm/include/main_020022C4.inc +++ b/asm/include/main_020022C4.inc @@ -12,7 +12,7 @@ .public _0229B0F8 .public _0229B110 .public _0229B114 -.public _022B966C +.public OSi_ThreadInfo .public Card_LockBackup .public Card_LockRom .public Card_SetPulledOutCallback diff --git a/asm/include/main_02075600.inc b/asm/include/main_02075600.inc index 132cc1c7..4c046e69 100644 --- a/asm/include/main_02075600.inc +++ b/asm/include/main_02075600.inc @@ -23,7 +23,7 @@ .public _022B961C .public _022B9644 .public OSi_IsThreadInitialized -.public _022B966C +.public OSi_ThreadInfo .public _022B9670 .public _022B967C .public _022B973C diff --git a/asm/include/main_0207F894.inc b/asm/include/main_0207F894.inc index 10b60972..debf42e8 100644 --- a/asm/include/main_0207F894.inc +++ b/asm/include/main_0207F894.inc @@ -12,7 +12,7 @@ .public _020B2ED4 .public _020B2FBC .public _020B3364 -.public _022B966C +.public OSi_ThreadInfo .public _022BB5EC .public _022BB5FC .public _022BB604 diff --git a/asm/include/main_02086568.inc b/asm/include/main_02086568.inc index 9c8858fd..b240759f 100644 --- a/asm/include/main_02086568.inc +++ b/asm/include/main_02086568.inc @@ -16,7 +16,7 @@ .public _020B3218 .public _020B321C .public _020B3220 -.public _022B966C +.public OSi_ThreadInfo .public _022BC650 .public _022BC674 .public _022BC698 diff --git a/asm/include/overlay_00.inc b/asm/include/overlay_00.inc index 7c8a7040..a5d3136d 100644 --- a/asm/include/overlay_00.inc +++ b/asm/include/overlay_00.inc @@ -6,7 +6,7 @@ .public _020AECB0 .public _020AED30 .public _020AEDB0 -.public _022B966C +.public OSi_ThreadInfo .public _022BCA70 .public _d2f .public _dadd diff --git a/asm/itcm.s b/asm/itcm.s index e8345f6a..d7b1cf2e 100644 --- a/asm/itcm.s +++ b/asm/itcm.s @@ -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 diff --git a/asm/main_020022C4.s b/asm/main_020022C4.s index 58e0e193..1d69c42f 100644 --- a/asm/main_020022C4.s +++ b/asm/main_020022C4.s @@ -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 diff --git a/asm/main_02086568.s b/asm/main_02086568.s index 186da76b..5ac2775e 100644 --- a/asm/main_02086568.s +++ b/asm/main_02086568.s @@ -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 diff --git a/asm/main_bss_022AB0AC.s b/asm/main_bss_022AB0AC.s index 299d2826..a5a07253 100644 --- a/asm/main_bss_022AB0AC.s +++ b/asm/main_bss_022AB0AC.s @@ -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: diff --git a/asm/overlay_00.s b/asm/overlay_00.s index 359b3b91..5fa6b6f4 100644 --- a/asm/overlay_00.s +++ b/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 diff --git a/lib/MSL_C/asm/include/main_0207F894.inc b/lib/MSL_C/asm/include/main_0207F894.inc index 69d19100..25688c38 100644 --- a/lib/MSL_C/asm/include/main_0207F894.inc +++ b/lib/MSL_C/asm/include/main_0207F894.inc @@ -12,7 +12,7 @@ .public _020B2ED4 .public _020B2FBC .public _020B3364 -.public _022B966C +.public OSi_ThreadInfo .public _022BB5EC .public _022BB5FC .public _022BB604 diff --git a/lib/NitroSDK/asm/card_backup.s b/lib/NitroSDK/asm/card_backup.s index ff0f56a3..acd60846 100644 --- a/lib/NitroSDK/asm/card_backup.s +++ b/lib/NitroSDK/asm/card_backup.s @@ -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 diff --git a/lib/NitroSDK/asm/card_rom.s b/lib/NitroSDK/asm/card_rom.s index ea94cd38..97638238 100644 --- a/lib/NitroSDK/asm/card_rom.s +++ b/lib/NitroSDK/asm/card_rom.s @@ -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 diff --git a/lib/NitroSDK/asm/cp_context.s b/lib/NitroSDK/asm/cp_context.s deleted file mode 100644 index 3f03294f..00000000 --- a/lib/NitroSDK/asm/cp_context.s +++ /dev/null @@ -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 - diff --git a/lib/NitroSDK/asm/include/fx_vec.inc b/lib/NitroSDK/asm/include/fx_vec.inc index e3862ef8..b031b53f 100644 --- a/lib/NitroSDK/asm/include/fx_vec.inc +++ b/lib/NitroSDK/asm/include/fx_vec.inc @@ -24,7 +24,7 @@ .public _022B961C .public _022B9644 .public OSi_IsThreadInitialized -.public _022B966C +.public OSi_ThreadInfo .public _022B9670 .public _022B967C .public _022B973C diff --git a/lib/NitroSDK/asm/include/g2.inc b/lib/NitroSDK/asm/include/g2.inc index b6c4d560..056779f0 100644 --- a/lib/NitroSDK/asm/include/g2.inc +++ b/lib/NitroSDK/asm/include/g2.inc @@ -23,7 +23,7 @@ .public _022B961C .public _022B9644 .public OSi_IsThreadInitialized -.public _022B966C +.public OSi_ThreadInfo .public _022B9670 .public _022B967C .public _022B973C diff --git a/lib/NitroSDK/asm/include/gx.inc b/lib/NitroSDK/asm/include/gx.inc index 94b6b9bf..6bf8554b 100644 --- a/lib/NitroSDK/asm/include/gx.inc +++ b/lib/NitroSDK/asm/include/gx.inc @@ -23,7 +23,7 @@ .public _022B961C .public _022B9644 .public OSi_IsThreadInitialized -.public _022B966C +.public OSi_ThreadInfo .public _022B9670 .public _022B967C .public _022B973C diff --git a/lib/NitroSDK/asm/include/gx_bgcnt.inc b/lib/NitroSDK/asm/include/gx_bgcnt.inc index 0d75bc7b..65fc7295 100644 --- a/lib/NitroSDK/asm/include/gx_bgcnt.inc +++ b/lib/NitroSDK/asm/include/gx_bgcnt.inc @@ -24,7 +24,7 @@ .public _022B961C .public _022B9644 .public OSi_IsThreadInitialized -.public _022B966C +.public OSi_ThreadInfo .public _022B9670 .public _022B967C .public _022B973C diff --git a/lib/NitroSDK/asm/include/gx_load2d.inc b/lib/NitroSDK/asm/include/gx_load2d.inc index 4ff34d2f..42d72a75 100644 --- a/lib/NitroSDK/asm/include/gx_load2d.inc +++ b/lib/NitroSDK/asm/include/gx_load2d.inc @@ -23,7 +23,7 @@ .public _022B961C .public _022B9644 .public OSi_IsThreadInitialized -.public _022B966C +.public OSi_ThreadInfo .public _022B9670 .public _022B967C .public _022B973C diff --git a/lib/NitroSDK/asm/include/main_0207F894.inc b/lib/NitroSDK/asm/include/main_0207F894.inc index 0429a3eb..ff8f3457 100644 --- a/lib/NitroSDK/asm/include/main_0207F894.inc +++ b/lib/NitroSDK/asm/include/main_0207F894.inc @@ -12,7 +12,7 @@ .public _020B2ED4 .public _020B2FBC .public _020B3364 -.public _022B966C +.public OSi_ThreadInfo .public _022BB5EC .public _022BB5FC .public _022BB604 diff --git a/lib/NitroSDK/asm/include/mtx.inc b/lib/NitroSDK/asm/include/mtx.inc index e47d8e72..d026ecf3 100644 --- a/lib/NitroSDK/asm/include/mtx.inc +++ b/lib/NitroSDK/asm/include/mtx.inc @@ -23,7 +23,7 @@ .public _022B961C .public _022B9644 .public OSi_IsThreadInitialized -.public _022B966C +.public OSi_ThreadInfo .public _022B9670 .public _022B967C .public _022B973C diff --git a/lib/NitroSDK/asm/include/os_arena.inc b/lib/NitroSDK/asm/include/os_arena.inc index d3ae29dc..d74d7ee8 100644 --- a/lib/NitroSDK/asm/include/os_arena.inc +++ b/lib/NitroSDK/asm/include/os_arena.inc @@ -24,7 +24,7 @@ .public _022B961C .public _022B9644 .public OSi_IsThreadInitialized -.public _022B966C +.public OSi_ThreadInfo .public _022B9670 .public _022B967C .public _022B973C diff --git a/lib/NitroSDK/asm/include/os_exception.inc b/lib/NitroSDK/asm/include/os_exception.inc index 896289c8..8b0ef923 100644 --- a/lib/NitroSDK/asm/include/os_exception.inc +++ b/lib/NitroSDK/asm/include/os_exception.inc @@ -24,7 +24,7 @@ .public _022B961C .public _022B9644 .public OSi_IsThreadInitialized -.public _022B966C +.public OSi_ThreadInfo .public _022B9670 .public _022B967C .public _022B973C diff --git a/lib/NitroSDK/asm/include/os_interrupt.inc b/lib/NitroSDK/asm/include/os_interrupt.inc index f0969a0a..6e5463c1 100644 --- a/lib/NitroSDK/asm/include/os_interrupt.inc +++ b/lib/NitroSDK/asm/include/os_interrupt.inc @@ -24,7 +24,7 @@ .public _022B961C .public _022B9644 .public OSi_IsThreadInitialized -.public _022B966C +.public OSi_ThreadInfo .public _022B9670 .public _022B967C .public _022B973C diff --git a/lib/NitroSDK/asm/include/os_spinlock.inc b/lib/NitroSDK/asm/include/os_spinlock.inc index f7341e8d..7c751732 100644 --- a/lib/NitroSDK/asm/include/os_spinlock.inc +++ b/lib/NitroSDK/asm/include/os_spinlock.inc @@ -23,7 +23,7 @@ .public _022B961C .public _022B9644 .public OSi_IsThreadInitialized -.public _022B966C +.public OSi_ThreadInfo .public _022B9670 .public _022B967C .public _022B973C diff --git a/lib/NitroSDK/asm/include/os_thread.inc b/lib/NitroSDK/asm/include/os_thread.inc index 0c0836fd..5f170d2b 100644 --- a/lib/NitroSDK/asm/include/os_thread.inc +++ b/lib/NitroSDK/asm/include/os_thread.inc @@ -24,7 +24,7 @@ .public _022B961C .public _022B9644 .public OSi_IsThreadInitialized -.public _022B966C +.public OSi_ThreadInfo .public _022B9670 .public _022B967C .public _022B973C diff --git a/lib/NitroSDK/asm/include/os_timer.inc b/lib/NitroSDK/asm/include/os_timer.inc index 5db3791b..fd452201 100644 --- a/lib/NitroSDK/asm/include/os_timer.inc +++ b/lib/NitroSDK/asm/include/os_timer.inc @@ -24,7 +24,7 @@ .public _022B961C .public _022B9644 .public OSi_IsThreadInitialized -.public _022B966C +.public OSi_ThreadInfo .public _022B9670 .public _022B967C .public _022B973C diff --git a/lib/NitroSDK/asm/os_mutex.s b/lib/NitroSDK/asm/os_mutex.s deleted file mode 100644 index c27ae755..00000000 --- a/lib/NitroSDK/asm/os_mutex.s +++ /dev/null @@ -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 - diff --git a/lib/NitroSDK/asm/os_ownerInfo.s b/lib/NitroSDK/asm/os_ownerInfo.s deleted file mode 100644 index 448d41aa..00000000 --- a/lib/NitroSDK/asm/os_ownerInfo.s +++ /dev/null @@ -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 - diff --git a/lib/NitroSDK/asm/os_thread.s b/lib/NitroSDK/asm/os_thread.s index 2bf0f935..79af6841 100644 --- a/lib/NitroSDK/asm/os_thread.s +++ b/lib/NitroSDK/asm/os_thread.s @@ -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 diff --git a/lib/NitroSDK/src/cp_context.c b/lib/NitroSDK/src/cp_context.c new file mode 100644 index 00000000..78588db0 --- /dev/null +++ b/lib/NitroSDK/src/cp_context.c @@ -0,0 +1,47 @@ +#include +#include + +#if defined(SDK_TCM_APPLY) && defined(SDK_ARM9) + #include +#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 +#endif diff --git a/lib/NitroSDK/src/os_mutex.c b/lib/NitroSDK/src/os_mutex.c new file mode 100644 index 00000000..9121b19d --- /dev/null +++ b/lib/NitroSDK/src/os_mutex.c @@ -0,0 +1,117 @@ +#include + +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; + } +} diff --git a/lib/NitroSDK/src/os_ownerInfo.c b/lib/NitroSDK/src/os_ownerInfo.c new file mode 100644 index 00000000..7a091a07 --- /dev/null +++ b/lib/NitroSDK/src/os_ownerInfo.c @@ -0,0 +1,28 @@ +#include + +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; +//} diff --git a/lib/include/nitro/cp/context.h b/lib/include/nitro/cp/context.h index 9c8fac7b..d27d56c5 100644 --- a/lib/include/nitro/cp/context.h +++ b/lib/include/nitro/cp/context.h @@ -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_ diff --git a/lib/include/nitro/os.h b/lib/include/nitro/os.h index 05187297..e7d0dc53 100644 --- a/lib/include/nitro/os.h +++ b/lib/include/nitro/os.h @@ -18,12 +18,12 @@ //#include #include //#include -//#include +#include //#include //#include //#include //#include -//#include +#include //#include #include //#include diff --git a/lib/include/nitro/os/mutex.h b/lib/include/nitro/os/mutex.h new file mode 100644 index 00000000..b432014e --- /dev/null +++ b/lib/include/nitro/os/mutex.h @@ -0,0 +1,15 @@ +#ifndef NITRO_OS_MUTEX_H +#define NITRO_OS_MUTEX_H + +#include +#include + +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 diff --git a/lib/include/nitro/os/ownerInfo.h b/lib/include/nitro/os/ownerInfo.h new file mode 100644 index 00000000..948063fb --- /dev/null +++ b/lib/include/nitro/os/ownerInfo.h @@ -0,0 +1,28 @@ +#ifndef NITRO_OS_OWNERINFO_H_ +#define NITRO_OS_OWNERINFO_H_ + +#include + +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_ diff --git a/main.lsf b/main.lsf index 36e5e99d..054f87e0 100644 --- a/main.lsf +++ b/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 diff --git a/src/main_02000C6C.c b/src/main_02000C6C.c index 5f6f40e0..1e378985 100644 --- a/src/main_02000C6C.c +++ b/src/main_02000C6C.c @@ -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]);