some os files

This commit is contained in:
angie 2023-09-03 15:56:25 -03:00
parent 1bf2fbaf79
commit ec1e7a0f5e
7 changed files with 16 additions and 18 deletions

View File

@ -1,5 +1,4 @@
#include "ultra64.h"
#include "global.h"
s32 osAfterPreNMI(void) {
return __osSpSetPc(0);

View File

@ -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;

View File

@ -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();

View File

@ -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);
}

View File

@ -1,4 +1,4 @@
#include "global.h"
#include "ultra64.h"
OSThread* __osGetActiveQueue(void) {
return __osActiveQueue;

View File

@ -1,4 +1,4 @@
#include "global.h"
#include "ultra64.h"
OSThread* __osGetCurrFaultedThread(void) {
return __osFaultedThread;

View File

@ -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;
}