mirror of
https://github.com/zeldaret/oot
synced 2026-08-06 01:48:49 -04:00
More documentation for IrqMgr (#1144)
* doc irqmgr * Fix * Format * Review suggestions * Fix * Some more review * Further changes
This commit is contained in:
@@ -1792,18 +1792,6 @@ void func_800D3178(UnkRumbleStruct* arg0);
|
||||
void func_800D31A0(void);
|
||||
void func_800D31F0(void);
|
||||
void func_800D3210(void);
|
||||
void IrqMgr_AddClient(IrqMgr* this, IrqMgrClient* c, OSMesgQueue* msgQ);
|
||||
void IrqMgr_RemoveClient(IrqMgr* this, IrqMgrClient* c);
|
||||
void IrqMgr_SendMesgForClient(IrqMgr* this, OSMesg msg);
|
||||
void IrqMgr_JamMesgForClient(IrqMgr* this, OSMesg msg);
|
||||
void IrqMgr_HandlePreNMI(IrqMgr* this);
|
||||
void IrqMgr_CheckStack();
|
||||
void IrqMgr_HandlePRENMI450(IrqMgr* this);
|
||||
void IrqMgr_HandlePRENMI480(IrqMgr* this);
|
||||
void IrqMgr_HandlePRENMI500(IrqMgr* this);
|
||||
void IrqMgr_HandleRetrace(IrqMgr* this);
|
||||
void IrqMgr_ThreadEntry(void* arg0);
|
||||
void IrqMgr_Init(IrqMgr* this, void* stack, OSPri pri, u8 retraceCount);
|
||||
void DebugArena_CheckPointer(void* ptr, u32 size, const char* name, const char* action);
|
||||
void* DebugArena_Malloc(u32 size);
|
||||
void* DebugArena_MallocDebug(u32 size, const char* file, s32 line);
|
||||
|
||||
+18
-2
@@ -3,6 +3,17 @@
|
||||
|
||||
#include "ultra64.h"
|
||||
|
||||
#define OS_SC_RETRACE_MSG 1
|
||||
#define OS_SC_DONE_MSG 2
|
||||
#define OS_SC_NMI_MSG 3 // name is made up, 3 is OS_SC_RDP_DONE_MSG in the original sched.c
|
||||
#define OS_SC_PRE_NMI_MSG 4
|
||||
|
||||
typedef enum {
|
||||
IRQ_RESET_STATUS_IDLE,
|
||||
IRQ_RESET_STATUS_PRENMI,
|
||||
IRQ_RESET_STATUS_NMI
|
||||
} IrqResetStatus;
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ s16 type;
|
||||
/* 0x02 */ char misc[0x1E];
|
||||
@@ -14,8 +25,8 @@ typedef struct IrqMgrClient {
|
||||
} IrqMgrClient;
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ OSScMsg retraceMsg; // this apparently got moved from OSSched
|
||||
/* 0x020 */ OSScMsg prenmiMsg; // this apparently got moved from OSSched
|
||||
/* 0x000 */ OSScMsg retraceMsg;
|
||||
/* 0x020 */ OSScMsg prenmiMsg;
|
||||
/* 0x040 */ OSScMsg nmiMsg;
|
||||
/* 0x060 */ OSMesgQueue queue;
|
||||
/* 0x078 */ OSMesg msgBuf[8];
|
||||
@@ -27,4 +38,9 @@ typedef struct {
|
||||
/* 0x278 */ OSTime retraceTime;
|
||||
} IrqMgr; // size = 0x280
|
||||
|
||||
void IrqMgr_Init(IrqMgr* irqMgr, void* stack, OSPri pri, u8 retraceCount);
|
||||
|
||||
void IrqMgr_AddClient(IrqMgr* irqMgr, IrqMgrClient* client, OSMesgQueue* msgQ);
|
||||
void IrqMgr_RemoveClient(IrqMgr* irqMgr, IrqMgrClient* client);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
#define OS_PHYSICAL_TO_K0(x) (void*)(((u32)(x)+0x80000000))
|
||||
#define OS_PHYSICAL_TO_K1(x) (void*)(((u32)(x)+0xA0000000))
|
||||
|
||||
#define OS_SEC_TO_CYCLES(n) OS_USEC_TO_CYCLES((n) * 1000 * 1000)
|
||||
#define OS_MSEC_TO_CYCLES(n) OS_USEC_TO_CYCLES((n) * 1000)
|
||||
#define OS_SEC_TO_CYCLES(n) OS_MSEC_TO_CYCLES((n) * 1000)
|
||||
|
||||
#endif
|
||||
|
||||
@@ -36,4 +36,11 @@ typedef struct OSMesgQueue {
|
||||
/* 0x14 */ OSMesg* msg;
|
||||
} OSMesgQueue; // size = 0x18
|
||||
|
||||
/* Get count of valid messages in queue */
|
||||
#define MQ_GET_COUNT(mq) ((mq)->validCount)
|
||||
|
||||
/* Determine if message queue is empty or full */
|
||||
#define MQ_IS_EMPTY(mq) (MQ_GET_COUNT(mq) == 0)
|
||||
#define MQ_IS_FULL(mq) (MQ_GET_COUNT(mq) >= (mq)->msgCount)
|
||||
|
||||
#endif
|
||||
|
||||
@@ -31,4 +31,7 @@
|
||||
#define VT_RST VT_SGR("")
|
||||
#define VT_CLS VT_ED(2)
|
||||
|
||||
// ASCII BEL character, plays an alert tone
|
||||
#define BEL '\a'
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1587,11 +1587,6 @@ typedef struct {
|
||||
|
||||
// ========================
|
||||
|
||||
#define OS_SC_RETRACE_MSG 1
|
||||
#define OS_SC_DONE_MSG 2
|
||||
#define OS_SC_NMI_MSG 3 // name is made up, 3 is OS_SC_RDP_DONE_MSG in the original sched.c
|
||||
#define OS_SC_PRE_NMI_MSG 4
|
||||
|
||||
#define OS_SC_DP 0x0001
|
||||
#define OS_SC_SP 0x0002
|
||||
#define OS_SC_YIELD 0x0010
|
||||
|
||||
Reference in New Issue
Block a user