diff --git a/lib/asm/__osExceptionPreamble.s b/lib/asm/__osExceptionPreamble.s index c3b9799..4e841ea 100644 --- a/lib/asm/__osExceptionPreamble.s +++ b/lib/asm/__osExceptionPreamble.s @@ -7,7 +7,7 @@ .section .text, "ax" #ifdef AVOID_UB -.set D_80334890, D_80334890_fix +.set __osThreadTail, __osThreadTail_fix #endif glabel __osExceptionPreamble @@ -60,8 +60,8 @@ glabel __osException #if !defined(VERSION_EU) && !defined(VERSION_SH) sw $zero, %lo(D_80334938)($at) #endif - lui $k0, %hi(D_80334890 + 0x10) - lw $k0, %lo(D_80334890 + 0x10)($k0) + lui $k0, %hi(__osThreadTail + 0x10) + lw $k0, %lo(__osThreadTail + 0x10)($k0) ld $t1, 0x20($t0) sd $t1, 0x20($k0) ld $t1, 0x118($t0) @@ -433,8 +433,8 @@ glabel L80326AE8 sw $t2, ($t1) jal send_mesg li $a0, 112 - lui $t2, %hi(D_80334890 + 0x8) - lw $t2, %lo(D_80334890 + 0x8)($t2) + lui $t2, %hi(__osThreadTail + 0x8) + lw $t2, %lo(__osThreadTail + 0x8)($t2) li $at, -4097 and $s0, $s0, $at lw $k1, 0x118($t2) @@ -469,23 +469,23 @@ glabel L80326B64 .L80326B9C: glabel L80326B9C - lui $t2, %hi(D_80334890 + 0x8) - lw $t2, %lo(D_80334890 + 0x8)($t2) + lui $t2, %hi(__osThreadTail + 0x8) + lw $t2, %lo(__osThreadTail + 0x8)($t2) lw $t1, 4($k0) lw $t3, 4($t2) slt $at, $t1, $t3 beqz $at, .L80326BD0 nop - lui $a0, %hi(D_80334890 + 0x8) + lui $a0, %hi(__osThreadTail + 0x8) move $a1, $k0 jal __osEnqueueThread - addiu $a0, %lo(D_80334890 + 0x8) + addiu $a0, %lo(__osThreadTail + 0x8) j __osDispatchThread nop .L80326BD0: - lui $t1, %hi(D_80334890 + 0x8) - addiu $t1, %lo(D_80334890 + 0x8) + lui $t1, %hi(__osThreadTail + 0x8) + addiu $t1, %lo(__osThreadTail + 0x8) lw $t2, ($t1) sw $t2, ($k0) j __osDispatchThread @@ -493,8 +493,8 @@ glabel L80326B9C .L80326BE8: glabel L80326BE8 - lui $at, %hi(D_80334890 + 0x14) - sw $k0, %lo(D_80334890 + 0x14)($at) + lui $at, %hi(__osThreadTail + 0x14) + sw $k0, %lo(__osThreadTail + 0x14)($at) li $t1, 1 sh $t1, 0x10($k0) li $t1, 2 @@ -548,10 +548,10 @@ glabel send_mesg jal __osPopThread move $a0, $t1 move $t2, $v0 - lui $a0, %hi(D_80334890 + 0x8) + lui $a0, %hi(__osThreadTail + 0x8) move $a1, $t2 jal __osEnqueueThread - addiu $a0, %lo(D_80334890 + 0x8) + addiu $a0, %lo(__osThreadTail + 0x8) .L80326CC4: jr $s2 nop @@ -572,8 +572,8 @@ glabel send_mesg glabel __osEnqueueAndYield - lui $a1, %hi(D_80334890 + 0x10) - lw $a1, %lo(D_80334890 + 0x10)($a1) + lui $a1, %hi(__osThreadTail + 0x10) + lw $a1, %lo(__osThreadTail + 0x10)($a1) mfc0 $t0, $12 lw $k1, 0x18($a1) ori $t0, $t0, 2 @@ -676,11 +676,11 @@ glabel __osPopThread sw $t9, ($a0) glabel __osDispatchThread - lui $a0, %hi(D_80334890 + 0x8) + lui $a0, %hi(__osThreadTail + 0x8) jal __osPopThread - addiu $a0, %lo(D_80334890 + 0x8) - lui $at, %hi(D_80334890 + 0x10) - sw $v0, %lo(D_80334890 + 0x10)($at) + addiu $a0, %lo(__osThreadTail + 0x8) + lui $at, %hi(__osThreadTail + 0x10) + sw $v0, %lo(__osThreadTail + 0x10)($at) li $t0, 4 sh $t0, 0x10($v0) move $k0, $v0 diff --git a/lib/src/_Printf.c b/lib/src/_Printf.c index e42bf04..1ec1ae3 100644 --- a/lib/src/_Printf.c +++ b/lib/src/_Printf.c @@ -28,8 +28,8 @@ const char length_str[] = "hlL"; const char flags_str[] = " +-#0"; const u32 flags_arr[] = { FLAGS_SPACE, FLAGS_PLUS, FLAGS_MINUS, FLAGS_HASH, FLAGS_ZERO, 0 }; -char _spaces[] = " "; -char _zeroes[] = "00000000000000000000000000000000"; +char spaces[] = " "; +char zeroes[] = "00000000000000000000000000000000"; static void _Putfld(printf_struct *, va_list *, u8, u8 *); @@ -99,14 +99,14 @@ s32 _Printf(char *(*prout)(char *, const char *, size_t), char *dst, const char _Putfld(&sp78, &args, *fmt_ptr, sp4c); sp78.width -= sp78.part1_len + sp78.num_leading_zeros + sp78.part2_len + sp78.num_mid_zeros + sp78.part3_len + sp78.num_trailing_zeros; - _PAD(sp44, sp78.width, sp48, _spaces, !(sp78.flags & FLAGS_MINUS)); + _PAD(sp44, sp78.width, sp48, spaces, !(sp78.flags & FLAGS_MINUS)); _PROUT(dst, (char *) sp4c, sp78.part1_len); - _PAD(sp3c, sp78.num_leading_zeros, sp40, _zeroes, 1); + _PAD(sp3c, sp78.num_leading_zeros, sp40, zeroes, 1); _PROUT(dst, sp78.buff, sp78.part2_len); - _PAD(sp34, sp78.num_mid_zeros, sp38, _zeroes, 1); + _PAD(sp34, sp78.num_mid_zeros, sp38, zeroes, 1); _PROUT(dst, (char *) (&sp78.buff[sp78.part2_len]), sp78.part3_len) - _PAD(sp2c, sp78.num_trailing_zeros, sp30, _zeroes, 1); - _PAD(sp24, sp78.width, sp28, _spaces, sp78.flags & FLAGS_MINUS); + _PAD(sp2c, sp78.num_trailing_zeros, sp30, zeroes, 1); + _PAD(sp24, sp78.width, sp28, spaces, sp78.flags & FLAGS_MINUS); fmt = (char *) fmt_ptr + 1; } } diff --git a/lib/src/__osDequeueThread.c b/lib/src/__osDequeueThread.c index 0875837..32d31ba 100644 --- a/lib/src/__osDequeueThread.c +++ b/lib/src/__osDequeueThread.c @@ -3,14 +3,14 @@ // these don't feel like they belong here // but it makes the most logical since there was printf data before #ifndef AVOID_UB -OSThread *D_80334890 = NULL; +OSThread *__osThreadTail = NULL; u32 D_80334894 = -1; -OSThread *D_80334898 = (OSThread *) &D_80334890; -OSThread *D_8033489C = (OSThread *) &D_80334890; -OSThread *D_803348A0 = NULL; -u32 D_803348A4 = 0; // UNKNOWN +OSThread *__osRunQueue = (OSThread *) &__osThreadTail; +OSThread *__osActiveQueue = (OSThread *) &__osThreadTail; +OSThread *__osRunningThread = { 0 }; +OSThread *__osFaultedThread = { 0 }; #else -OSThread_ListHead D_80334890_fix = {NULL, -1, (OSThread *) &D_80334890_fix, (OSThread *) &D_80334890_fix, NULL, 0}; +OSThread_ListHead __osThreadTail_fix = {NULL, -1, (OSThread *) &__osThreadTail_fix, (OSThread *) &__osThreadTail_fix, NULL, 0}; #endif void __osDequeueThread(OSThread **queue, OSThread *thread) { diff --git a/lib/src/__osGetCurrFaultedThread.c b/lib/src/__osGetCurrFaultedThread.c index f4951ff..eede93e 100644 --- a/lib/src/__osGetCurrFaultedThread.c +++ b/lib/src/__osGetCurrFaultedThread.c @@ -1,5 +1,5 @@ #include "libultra_internal.h" OSThread *__osGetCurrFaultedThread() { - return D_8033489C; // 80302efc + return __osActiveQueue; } diff --git a/lib/src/__osViInit.c b/lib/src/__osViInit.c index 9e0c916..2f7cac8 100644 --- a/lib/src/__osViInit.c +++ b/lib/src/__osViInit.c @@ -12,10 +12,10 @@ u32 sTvType = TV_TYPE_NTSC; u32 osViClock = 0x02E6D354; #endif -extern OSViMode D_80334990; -extern OSViMode D_803349E0; +extern OSViMode osViModePalLan1; +extern OSViMode osViModeMpalLan1; #if defined(VERSION_EU) || defined(VERSION_SH) -extern OSViMode D_80302FD0; +extern OSViMode osViModeNtscLan1; #endif void __osViInit(void) { @@ -32,13 +32,13 @@ void __osViInit(void) { #if defined(VERSION_EU) if (osTvType == TV_TYPE_PAL) { - __osViNext->modep = &D_80334990; + __osViNext->modep = &osViModePalLan1; osViClock = 0x02F5B2D2; } else if (osTvType == TV_TYPE_MPAL) { - __osViNext->modep = &D_803349E0; + __osViNext->modep = &osViModeMpalLan1; osViClock = 0x02E6025C; } else { - __osViNext->modep = &D_80302FD0; + __osViNext->modep = &osViModeNtscLan1; osViClock = 0x02E6D354; } @@ -47,11 +47,11 @@ void __osViInit(void) { __osViNext->buffer = (void *) 0x80000000; __osViCurr->buffer = (void *) 0x80000000; if (osTvType == TV_TYPE_PAL) { - __osViNext->modep = &D_80334990; + __osViNext->modep = &osViModePalLan1; } else if (osTvType == TV_TYPE_MPAL) { - __osViNext->modep = &D_803349E0; + __osViNext->modep = &osViModeMpalLan1; } else { - __osViNext->modep = &D_80302FD0; + __osViNext->modep = &osViModeNtscLan1; } #else @@ -62,10 +62,10 @@ void __osViInit(void) { if (sTvType == TV_TYPE_NTSC) #endif { - __osViNext->modep = &D_80334990; + __osViNext->modep = &osViModePalLan1; osViClock = 0x02E6D354; } else { - __osViNext->modep = &D_803349E0; + __osViNext->modep = &osViModeMpalLan1; #if defined(VERSION_JP) osViClock = 0x02F5B2D2; #elif defined(VERSION_US) diff --git a/lib/src/contramread.c b/lib/src/contramread.c index cd74bb2..d237fa6 100644 --- a/lib/src/contramread.c +++ b/lib/src/contramread.c @@ -1,6 +1,7 @@ #include "libultra_internal.h" #include "PR/rcp.h" #include "controller.h" +#include "macros.h" extern s32 func_8030A5C0(OSMesgQueue *, s32); void __osPackRamReadData(int channel, u16 address); @@ -41,7 +42,7 @@ s32 __osContRamRead(OSMesgQueue *mq, int channel, u16 address, u8 *buffer) { } ret = PFS_ERR_CONTRFAIL; } else { - for (i = 0; i < ARRLEN(ramreadformat.data); i++) { + for (i = 0; i < ARRAY_COUNT(ramreadformat.data); i++) { *buffer++ = ramreadformat.data[i]; } } @@ -63,7 +64,7 @@ void __osPackRamReadData(int channel, u16 address) { ptr = (u8 *)__osPfsPifRam.ramarray; - for (i = 0; i < ARRLEN(__osPfsPifRam.ramarray) + 1; i++) { // also clear pifstatus + for (i = 0; i < ARRAY_COUNT(__osPfsPifRam.ramarray) + 1; i++) { // also clear pifstatus __osPfsPifRam.ramarray[i] = 0; } @@ -74,7 +75,7 @@ void __osPackRamReadData(int channel, u16 address) { ramreadformat.cmd = CONT_CMD_READ_MEMPACK; ramreadformat.address = (address << 0x5) | __osContAddressCrc(address); ramreadformat.datacrc = CONT_CMD_NOP; - for (i = 0; i < ARRLEN(ramreadformat.data); i++) { + for (i = 0; i < ARRAY_COUNT(ramreadformat.data); i++) { ramreadformat.data[i] = CONT_CMD_NOP; } if (channel != 0) { diff --git a/lib/src/contramwrite.c b/lib/src/contramwrite.c index f72d6ff..1e44448 100644 --- a/lib/src/contramwrite.c +++ b/lib/src/contramwrite.c @@ -1,6 +1,7 @@ #include "libultra_internal.h" #include "PR/rcp.h" #include "controller.h" +#include "macros.h" extern s32 func_8030A5C0(OSMesgQueue *, s32); void __osPackRamWriteData(int channel, u16 address, u8 *buffer); @@ -63,7 +64,7 @@ void __osPackRamWriteData(int channel, u16 address, u8 *buffer) { ptr = (u8 *)__osPfsPifRam.ramarray; - for (i = 0; i < ARRLEN(__osPfsPifRam.ramarray) + 1; i++) { // also clear pifstatus + for (i = 0; i < ARRAY_COUNT(__osPfsPifRam.ramarray) + 1; i++) { // also clear pifstatus __osPfsPifRam.ramarray[i] = 0; } @@ -74,7 +75,7 @@ void __osPackRamWriteData(int channel, u16 address, u8 *buffer) { ramreadformat.cmd = CONT_CMD_WRITE_MEMPACK; ramreadformat.address = (address << 0x5) | __osContAddressCrc(address); ramreadformat.datacrc = CONT_CMD_NOP; - for (i = 0; i < ARRLEN(ramreadformat.data); i++) { + for (i = 0; i < ARRAY_COUNT(ramreadformat.data); i++) { ramreadformat.data[i] = *buffer++; } if (channel != 0) { diff --git a/lib/src/controller.h b/lib/src/controller.h index 518b113..36bc651 100644 --- a/lib/src/controller.h +++ b/lib/src/controller.h @@ -5,7 +5,6 @@ #include "PR/rcp.h" //should go somewhere else but -#define ARRLEN(x) ((s32)(sizeof(x) / sizeof(x[0]))) #define CHNL_ERR(format) ((format.rxsize & CHNL_ERR_MASK) >> 4) typedef struct diff --git a/lib/src/func_802F4A20.c b/lib/src/func_802F4A20.c index 499697d..666e86f 100644 --- a/lib/src/func_802F4A20.c +++ b/lib/src/func_802F4A20.c @@ -35,6 +35,6 @@ void func_802F4B08(void) { sp28->validCount++; if (sp28->mtqueue->next != NULL) { s0 = __osPopThread(&sp28->mtqueue); - __osEnqueueThread(&D_80334898, s0); + __osEnqueueThread(&__osRunQueue, s0); } } diff --git a/lib/src/func_802F71F0.c b/lib/src/func_802F71F0.c index e829ae4..ec72e53 100644 --- a/lib/src/func_802F71F0.c +++ b/lib/src/func_802F71F0.c @@ -2,7 +2,7 @@ void func_802F71F0(void) { register u32 s0 = __osDisableInt(); - D_803348A0->state = OS_STATE_RUNNABLE; - __osEnqueueAndYield(&D_80334898); + __osRunningThread->state = OS_STATE_RUNNABLE; + __osEnqueueAndYield(&__osRunQueue); __osRestoreInt(s0); } diff --git a/lib/src/leointerrupt.c b/lib/src/leointerrupt.c index 83a4f39..2a3dab5 100644 --- a/lib/src/leointerrupt.c +++ b/lib/src/leointerrupt.c @@ -177,7 +177,7 @@ static void __osLeoResume(void) { mq->msg[last] = es->message; mq->validCount++; if (mq->mtqueue->next != NULL) { - __osEnqueueThread(&D_80334898, __osPopThread(&mq->mtqueue)); + __osEnqueueThread(&__osRunQueue, __osPopThread(&mq->mtqueue)); } } diff --git a/lib/src/libultra_internal.h b/lib/src/libultra_internal.h index 5639c6a..c42c951 100644 --- a/lib/src/libultra_internal.h +++ b/lib/src/libultra_internal.h @@ -20,13 +20,13 @@ typedef struct OSThread_ListHead_s } OSThread_ListHead; // Now fix the symbols to the new one. -extern OSThread_ListHead D_80334890_fix; +extern OSThread_ListHead __osThreadTail_fix; -#define D_80334890 D_80334890_fix.next -#define D_80334894 D_80334890_fix.priority -#define D_80334898 D_80334890_fix.queue -#define D_8033489C D_80334890_fix.tlnext -#define D_803348A0 D_80334890_fix.unk10 +#define __osThreadTail __osThreadTail_fix.next +#define D_80334894 __osThreadTail_fix.priority +#define __osRunQueue __osThreadTail_fix.queue +#define __osActiveQueue __osThreadTail_fix.tlnext +#define __osRunningThread __osThreadTail_fix.unk10 // Fix for the EEPROM array. extern u32 D_80365E00[16]; @@ -35,11 +35,11 @@ extern u32 D_80365E00[16]; #define D_80365E3C D_80365E00[15] #else // Original OSThread_ListHead definitions -extern OSThread *D_80334890; +extern OSThread *__osThreadTail; extern u32 D_80334894; -extern OSThread *D_80334898; -extern OSThread *D_8033489C; -extern OSThread *D_803348A0; +extern OSThread *__osRunQueue; +extern OSThread *__osActiveQueue; +extern OSThread *__osRunningThread; // Original EEPROM definitions extern u32 D_80365E00[15]; diff --git a/lib/src/motor.c b/lib/src/motor.c index 3183fe2..3a73bfe 100644 --- a/lib/src/motor.c +++ b/lib/src/motor.c @@ -2,6 +2,7 @@ #include "PR/os_pi.h" #include "libultra_internal.h" #include "controller.h" +#include "macros.h" void _MakeMotorData(int channel, u16 address, u8 *buffer, OSPifRam *mdata); u32 __osMotorinitialized[MAXCONTROLLERS] = { 0, 0, 0, 0 }; @@ -86,7 +87,7 @@ void _MakeMotorData(int channel, u16 address, u8 *buffer, OSPifRam *mdata) { int i; ptr = (u8 *) mdata->ramarray; - for (i = 0; i < ARRLEN(mdata->ramarray); i++) { + for (i = 0; i < ARRAY_COUNT(mdata->ramarray); i++) { mdata->ramarray[i] = 0; } mdata->pifstatus = CONT_CMD_EXE; @@ -97,7 +98,7 @@ void _MakeMotorData(int channel, u16 address, u8 *buffer, OSPifRam *mdata) { ramreadformat.address = (address << 0x5) | __osContAddressCrc(address); ramreadformat.datacrc = CONT_CMD_NOP; - for (i = 0; i < ARRLEN(ramreadformat.data); i++) { + for (i = 0; i < ARRAY_COUNT(ramreadformat.data); i++) { ramreadformat.data[i] = *buffer++; } if (channel != 0) { @@ -119,7 +120,7 @@ s32 osMotorInit(OSMesgQueue *mq, OSPfs *pfs, int channel) { pfs->status = 0; pfs->activebank = 128; - for (i = 0; i < ARRLEN(temp); i++) { + for (i = 0; i < ARRAY_COUNT(temp); i++) { temp[i] = 254; } @@ -142,7 +143,7 @@ s32 osMotorInit(OSMesgQueue *mq, OSPfs *pfs, int channel) { return PFS_ERR_DEVICE; } - for (i = 0; i < ARRLEN(temp); i++) { + for (i = 0; i < ARRAY_COUNT(temp); i++) { temp[i] = 128; } @@ -166,7 +167,7 @@ s32 osMotorInit(OSMesgQueue *mq, OSPfs *pfs, int channel) { } if (!__osMotorinitialized[channel]) { - for (i = 0; i < ARRLEN(_motorstartbuf); i++) { + for (i = 0; i < ARRAY_COUNT(_motorstartbuf); i++) { _motorstartbuf[i] = 1; _motorstopbuf[i] = 0; } diff --git a/lib/src/osAiSetNextBuffer.c b/lib/src/osAiSetNextBuffer.c index cc27ae4..72cde47 100644 --- a/lib/src/osAiSetNextBuffer.c +++ b/lib/src/osAiSetNextBuffer.c @@ -2,8 +2,6 @@ #include "osAi.h" #include "hardware.h" -u8 D_80334820 = 0; - /** * It is worth noting that a previous hardware bug has been fixed by a software * patch in osAiSetNextBuffer. This bug occurred when the address of the end of the @@ -19,22 +17,23 @@ u8 D_80334820 = 0; */ s32 osAiSetNextBuffer(void *buff, u32 len) { - u8 *sp1c = buff; - if (D_80334820 != 0) { - sp1c -= 0x2000; + static u8 hdwrBugFlag = 0; + char *bptr = buff; + if (hdwrBugFlag != 0) { + bptr -= 0x2000; } if ((((uintptr_t) buff + len) & 0x3fff) == 0x2000) { - D_80334820 = 1; + hdwrBugFlag = 1; } else { - D_80334820 = 0; + hdwrBugFlag = 0; } if (__osAiDeviceBusy()) { return -1; } - HW_REG(AI_DRAM_ADDR_REG, void *) = (void *) osVirtualToPhysical(sp1c); + HW_REG(AI_DRAM_ADDR_REG, void *) = (void *) osVirtualToPhysical(bptr); HW_REG(AI_LEN_REG, u32) = len; return 0; } diff --git a/lib/src/osCreateMesgQueue.c b/lib/src/osCreateMesgQueue.c index 727c0af..baf5007 100644 --- a/lib/src/osCreateMesgQueue.c +++ b/lib/src/osCreateMesgQueue.c @@ -1,8 +1,8 @@ #include "libultra_internal.h" void osCreateMesgQueue(OSMesgQueue *mq, OSMesg *msgBuf, s32 count) { - mq->mtqueue = (OSThread *) &D_80334890; //? - mq->fullqueue = (OSThread *) &D_80334890; + mq->mtqueue = (OSThread *) &__osThreadTail; + mq->fullqueue = (OSThread *) &__osThreadTail; mq->validCount = 0; mq->first = 0; mq->msgCount = count; diff --git a/lib/src/osCreateThread.c b/lib/src/osCreateThread.c index b4e283f..7326c20 100644 --- a/lib/src/osCreateThread.c +++ b/lib/src/osCreateThread.c @@ -1,4 +1,5 @@ #include "libultra_internal.h" +#include void __osCleanupThread(void); @@ -7,8 +8,8 @@ void __osCleanupThread(void); #pragma GCC diagnostic ignored "-Wpointer-to-int-cast" void osCreateThread(OSThread *thread, OSId id, void (*entry)(void *), void *arg, void *sp, OSPri pri) { - register u32 int_disabled; - u32 tmp; + register u32 saveMask; + OSIntMask mask; thread->id = id; thread->priority = pri; thread->next = NULL; @@ -17,18 +18,18 @@ void osCreateThread(OSThread *thread, OSId id, void (*entry)(void *), void *arg, thread->context.a0 = (u64) arg; thread->context.sp = (u64) sp - 16; thread->context.ra = (u64) __osCleanupThread; - tmp = OS_IM_ALL; - thread->context.sr = 65283; - thread->context.rcp = (tmp & 0x3f0000) >> 16; - thread->context.fpcsr = (u32) 0x01000800; + mask = OS_IM_ALL; + thread->context.sr = SR_IMASK | SR_EXL | SR_IE; + thread->context.rcp = (mask & RCP_IMASK) >> RCP_IMASKSHIFT; + thread->context.fpcsr = (u32) (FPCSR_FS | FPCSR_EV); thread->fp = 0; thread->state = OS_STATE_STOPPED; thread->flags = 0; - int_disabled = __osDisableInt(); - thread->tlnext = D_8033489C; + saveMask = __osDisableInt(); + thread->tlnext = __osActiveQueue; - D_8033489C = thread; - __osRestoreInt(int_disabled); + __osActiveQueue = thread; + __osRestoreInt(saveMask); } #pragma GCC diagnostic pop diff --git a/lib/src/osDestroyThread.c b/lib/src/osDestroyThread.c index 215ce07..ef8520a 100644 --- a/lib/src/osDestroyThread.c +++ b/lib/src/osDestroyThread.c @@ -8,15 +8,15 @@ void osDestroyThread(OSThread *thread) { int_disabled = __osDisableInt(); if (thread == NULL) { - thread = D_803348A0; + thread = __osRunningThread; } else if (thread->state != OS_STATE_STOPPED) { __osDequeueThread(thread->queue, thread); } - if (D_8033489C == thread) { - D_8033489C = D_8033489C->tlnext; + if (__osActiveQueue == thread) { + __osActiveQueue = __osActiveQueue->tlnext; } else { - s1 = D_8033489C; + s1 = __osActiveQueue; s2 = s1->tlnext; while (s2 != NULL) { if (s2 == thread) { @@ -29,7 +29,7 @@ void osDestroyThread(OSThread *thread) { } } - if (thread == D_803348A0) { + if (thread == __osRunningThread) { __osDispatchThread(); } diff --git a/lib/src/osEepromLongRead.c b/lib/src/osEepromLongRead.c index 3260d13..691f538 100644 --- a/lib/src/osEepromLongRead.c +++ b/lib/src/osEepromLongRead.c @@ -19,9 +19,9 @@ s32 osEepromLongRead(OSMesgQueue *mq, u8 address, u8 *buffer, int nbytes) { return status; } - nbytes -= 8; + nbytes -= EEPROM_BLOCK_SIZE; address++; - buffer += 8; + buffer += EEPROM_BLOCK_SIZE; osSetTimer(&D_80365D28, 12000 * osClockRate / 1000000, 0, &_osContMesgQueue, _osContMesgBuff); osRecvMesg(&_osContMesgQueue, NULL, OS_MESG_BLOCK); } diff --git a/lib/src/osEepromLongWrite.c b/lib/src/osEepromLongWrite.c index 69d367e..de15a8b 100644 --- a/lib/src/osEepromLongWrite.c +++ b/lib/src/osEepromLongWrite.c @@ -20,9 +20,9 @@ s32 osEepromLongWrite(OSMesgQueue *mq, u8 address, u8 *buffer, int nbytes) { return result; } - nbytes -= 8; + nbytes -= EEPROM_BLOCK_SIZE; address++; - buffer += 8; + buffer += EEPROM_BLOCK_SIZE; osSetTimer(&D_80365D28, 12000 * osClockRate / 1000000, 0, &_osContMesgQueue, _osContMesgBuff); osRecvMesg(&_osContMesgQueue, NULL, OS_MESG_BLOCK); } diff --git a/lib/src/osGetThreadPri.c b/lib/src/osGetThreadPri.c index 7b5b58c..43a0145 100644 --- a/lib/src/osGetThreadPri.c +++ b/lib/src/osGetThreadPri.c @@ -2,7 +2,7 @@ OSPri osGetThreadPri(OSThread *thread) { if (thread == NULL) { - thread = D_803348A0; + thread = __osRunningThread; } return thread->priority; } diff --git a/lib/src/osJamMesg.c b/lib/src/osJamMesg.c index 7251313..6afddc6 100644 --- a/lib/src/osJamMesg.c +++ b/lib/src/osJamMesg.c @@ -5,7 +5,7 @@ s32 osJamMesg(OSMesgQueue *mq, OSMesg msg, s32 flag) { int_disabled = __osDisableInt(); while (mq->validCount >= mq->msgCount) { if (flag == OS_MESG_BLOCK) { - D_803348A0->state = OS_STATE_WAITING; + __osRunningThread->state = OS_STATE_WAITING; __osEnqueueAndYield(&mq->fullqueue); } else { __osRestoreInt(int_disabled); diff --git a/lib/src/osPfsIsPlug.c b/lib/src/osPfsIsPlug.c index 6165e32..aad0a5b 100644 --- a/lib/src/osPfsIsPlug.c +++ b/lib/src/osPfsIsPlug.c @@ -1,6 +1,7 @@ #include "PR/os_pi.h" #include "libultra_internal.h" #include "controller.h" +#include "macros.h" OSPifRam __osPfsPifRam; @@ -52,7 +53,7 @@ void __osPfsRequestData(u8 cmd) { _osLastSentSiCmd = cmd; - for (i = 0; i < ARRLEN(__osPfsPifRam.ramarray) + 1; i++) { // also clear pifstatus + for (i = 0; i < ARRAY_COUNT(__osPfsPifRam.ramarray) + 1; i++) { // also clear pifstatus __osPfsPifRam.ramarray[i] = 0; } diff --git a/lib/src/osRecvMesg.c b/lib/src/osRecvMesg.c index 057ec9f..1878e85 100644 --- a/lib/src/osRecvMesg.c +++ b/lib/src/osRecvMesg.c @@ -10,7 +10,7 @@ s32 osRecvMesg(OSMesgQueue *mq, OSMesg *msg, s32 flag) { __osRestoreInt(int_disabled); return -1; } - D_803348A0->state = OS_STATE_WAITING; + __osRunningThread->state = OS_STATE_WAITING; __osEnqueueAndYield(&mq->mtqueue); } diff --git a/lib/src/osSendMesg.c b/lib/src/osSendMesg.c index f0d02ff..ee1b502 100644 --- a/lib/src/osSendMesg.c +++ b/lib/src/osSendMesg.c @@ -8,7 +8,7 @@ s32 osSendMesg(OSMesgQueue *mq, OSMesg msg, s32 flag) { while (mq->validCount >= mq->msgCount) { if (flag == OS_MESG_BLOCK) { - D_803348A0->state = 8; + __osRunningThread->state = 8; __osEnqueueAndYield(&mq->fullqueue); } else { __osRestoreInt(int_disabled); diff --git a/lib/src/osSetThreadPri.c b/lib/src/osSetThreadPri.c index 1c78253..84a9a4c 100644 --- a/lib/src/osSetThreadPri.c +++ b/lib/src/osSetThreadPri.c @@ -3,20 +3,20 @@ void osSetThreadPri(OSThread *thread, OSPri pri) { register u32 int_disabled = __osDisableInt(); if (thread == NULL) { - thread = D_803348A0; + thread = __osRunningThread; } if (thread->priority != pri) { thread->priority = pri; - if (thread != D_803348A0) { + if (thread != __osRunningThread) { if (thread->state != OS_STATE_STOPPED) { __osDequeueThread(thread->queue, thread); __osEnqueueThread(thread->queue, thread); } } - if (D_803348A0->priority < D_80334898->priority) { - D_803348A0->state = OS_STATE_RUNNABLE; - __osEnqueueAndYield(&D_80334898); + if (__osRunningThread->priority < __osRunQueue->priority) { + __osRunningThread->state = OS_STATE_RUNNABLE; + __osEnqueueAndYield(&__osRunQueue); } } diff --git a/lib/src/osStartThread.c b/lib/src/osStartThread.c index c241e38..a9a8ce8 100644 --- a/lib/src/osStartThread.c +++ b/lib/src/osStartThread.c @@ -11,26 +11,26 @@ void osStartThread(OSThread *thread) { do { } while (0); thread->state = OS_STATE_RUNNABLE; - __osEnqueueThread(&D_80334898, thread); + __osEnqueueThread(&__osRunQueue, thread); } } else { - if (thread->queue == NULL || thread->queue == &D_80334898) { + if (thread->queue == NULL || thread->queue == &__osRunQueue) { thread->state = OS_STATE_RUNNABLE; - __osEnqueueThread(&D_80334898, thread); + __osEnqueueThread(&__osRunQueue, thread); } else { thread->state = OS_STATE_WAITING; __osEnqueueThread(thread->queue, thread); state = (uintptr_t) __osPopThread(thread->queue); - __osEnqueueThread(&D_80334898, (OSThread *) state); + __osEnqueueThread(&__osRunQueue, (OSThread *) state); } } - if (D_803348A0 == NULL) { + if (__osRunningThread == NULL) { __osDispatchThread(); } else { - if (D_803348A0->priority < D_80334898->priority) { - D_803348A0->state = OS_STATE_RUNNABLE; - __osEnqueueAndYield(&D_80334898); + if (__osRunningThread->priority < __osRunQueue->priority) { + __osRunningThread->state = OS_STATE_RUNNABLE; + __osEnqueueAndYield(&__osRunQueue); } } __osRestoreInt(int_disabled); diff --git a/lib/src/osViData.c b/lib/src/osViData.c index 6f39210..feab7e1 100644 --- a/lib/src/osViData.c +++ b/lib/src/osViData.c @@ -1,7 +1,7 @@ #include "libultra_internal.h" #if defined(VERSION_EU) || defined(VERSION_SH) -OSViMode D_80334990 = { +OSViMode osViModePalLan1 = { /*type*/ 16, /*comRegs*/ { /*ctrl*/ 12574, @@ -35,7 +35,7 @@ OSViMode D_80334990 = { /*vIntr*/ 2 } } }; -OSViMode D_803349E0 = { +OSViMode osViModeMpalLan1 = { /*type*/ 30, //osViModePalLan1 /*comRegs*/ { /*ctrl*/ 12574, @@ -60,7 +60,7 @@ OSViMode D_803349E0 = { /*vIntr*/ 2 } } }; -OSViMode D_80302FD0 = { +OSViMode osViModeNtscLan1 = { /*type*/ 2, /*comRegs*/ { /*ctrl*/ 12574, @@ -85,7 +85,7 @@ OSViMode D_80302FD0 = { /*vIntr*/ 2 } } }; #else -OSViMode D_80334990 = { +OSViMode osViModePalLan1 = { /*type*/ 2, /*comRegs*/ { /*ctrl*/ 12574, @@ -110,7 +110,7 @@ OSViMode D_80334990 = { /*vIntr*/ 2 } } }; -OSViMode D_803349E0 = { +OSViMode osViModeMpalLan1 = { /*type*/ 16, /*comRegs*/ { /*ctrl*/ 12574, diff --git a/lib/src/osint.h b/lib/src/osint.h index ba5d7db..5638a4b 100644 --- a/lib/src/osint.h +++ b/lib/src/osint.h @@ -7,11 +7,6 @@ typedef struct __OSEventState OSMesgQueue *messageQueue; OSMesg message; } __OSEventState; -extern struct __osThreadTail -{ - OSThread *next; - OSPri priority; -} __osThreadTail; //maybe should be in exceptasm.h? extern void __osEnqueueAndYield(OSThread **); @@ -27,12 +22,12 @@ extern u32 __osProbeTLB(void *); extern int __osSpDeviceBusy(void); #ifdef AVOID_UB -extern OSThread_ListHead D_80334890_fix; +extern OSThread_ListHead __osThreadTail_fix; #else extern OSThread *__osRunningThread; -extern OSThread *D_8033489C; +extern OSThread *__osActiveQueue; extern OSThread *__osFaultedThread; -extern OSThread *D_80334898; +extern OSThread *__osRunQueue; #endif extern OSTimer *__osTimerList;