diff --git a/src/libultra/os/afterprenmi.c b/src/libultra/os/afterprenmi.c index b59814763f..6a9a83de33 100644 --- a/src/libultra/os/afterprenmi.c +++ b/src/libultra/os/afterprenmi.c @@ -1,5 +1,4 @@ #include "ultra64.h" -#include "global.h" s32 osAfterPreNMI(void) { return __osSpSetPc(0); diff --git a/src/libultra/os/createmesgqueue.c b/src/libultra/os/createmesgqueue.c index bcbaf1c547..34f85f867b 100644 --- a/src/libultra/os/createmesgqueue.c +++ b/src/libultra/os/createmesgqueue.c @@ -1,8 +1,8 @@ -#include "global.h" +#include "ultra64.h" void osCreateMesgQueue(OSMesgQueue* mq, OSMesg* msq, s32 count) { - mq->mtQueue = (OSThread*)&__osThreadTail; - mq->fullQueue = (OSThread*)&__osThreadTail; + mq->mtQueue = (OSThread*)&__osThreadTail.next; + mq->fullQueue = (OSThread*)&__osThreadTail.next; mq->validCount = 0; mq->first = 0; mq->msgCount = count; diff --git a/src/libultra/os/createthread.c b/src/libultra/os/createthread.c index e67743eb31..d0f3a74197 100644 --- a/src/libultra/os/createthread.c +++ b/src/libultra/os/createthread.c @@ -1,4 +1,4 @@ -#include "global.h" +#include "ultra64.h" void osCreateThread(OSThread* thread, OSId id, void* entry, void* arg, void* sp, OSPri p) { register u32 saveMask; @@ -13,12 +13,12 @@ void osCreateThread(OSThread* thread, OSId id, void* entry, void* arg, void* sp, thread->context.sp = (u64)(s32)sp - 16; thread->context.ra = __osCleanupThread; - mask = 0x3FFF01; - thread->context.sr = 0xFF03; - thread->context.rcp = (mask & 0x3F0000) >> 16; - thread->context.fpcsr = 0x01000800; + mask = OS_IM_ALL; + thread->context.sr = (mask & (SR_IMASK | SR_IE)) | SR_EXL; + thread->context.rcp = (mask & RCP_IMASK) >> RCP_IMASKSHIFT; + thread->context.fpcsr = (u32)(FPCSR_FS | FPCSR_EV); thread->fp = 0; - thread->state = 1; + thread->state = OS_STATE_STOPPED; thread->flags = 0; saveMask = __osDisableInt(); diff --git a/src/libultra/os/destroythread.c b/src/libultra/os/destroythread.c index 0e92d2fcfe..d86a4db6e2 100644 --- a/src/libultra/os/destroythread.c +++ b/src/libultra/os/destroythread.c @@ -1,4 +1,4 @@ -#include "global.h" +#include "ultra64.h" void osDestroyThread(OSThread* t) { register u32 saveMask; @@ -9,7 +9,7 @@ void osDestroyThread(OSThread* t) { if (t == NULL) { t = __osRunningThread; - } else if (t->state != 1) { + } else if (t->state != OS_STATE_STOPPED) { __osDequeueThread(t->queue, t); } diff --git a/src/libultra/os/getactivequeue.c b/src/libultra/os/getactivequeue.c index de55d7f041..633e01814a 100644 --- a/src/libultra/os/getactivequeue.c +++ b/src/libultra/os/getactivequeue.c @@ -1,4 +1,4 @@ -#include "global.h" +#include "ultra64.h" OSThread* __osGetActiveQueue(void) { return __osActiveQueue; diff --git a/src/libultra/os/getcurrfaultthread.c b/src/libultra/os/getcurrfaultthread.c index f36799b26f..bf2edb92d3 100644 --- a/src/libultra/os/getcurrfaultthread.c +++ b/src/libultra/os/getcurrfaultthread.c @@ -1,4 +1,4 @@ -#include "global.h" +#include "ultra64.h" OSThread* __osGetCurrFaultedThread(void) { return __osFaultedThread; diff --git a/src/libultra/os/gethwinterrupt.c b/src/libultra/os/gethwinterrupt.c index 711985df79..eee73dc772 100644 --- a/src/libultra/os/gethwinterrupt.c +++ b/src/libultra/os/gethwinterrupt.c @@ -1,8 +1,7 @@ -#include "global.h" #include "PR/os_internal.h" #include "PR/osint.h" -void __osGetHWIntrRoutine(OSHWIntr idx, OSMesgQueue** outQueue, OSMesg* outMsg) { - *outQueue = __osHwIntTable[idx].queue; - *outMsg = __osHwIntTable[idx].msg; +void __osGetHWIntrRoutine(OSHWIntr interrupt, OSMesgQueue** outQueue, OSMesg* outMsg) { + *outQueue = __osHwIntTable[interrupt].queue; + *outMsg = __osHwIntTable[interrupt].msg; }