Files
Anghelo Carvajal 94c8f704af z_std_dma.c (#75)
* C file

* func_80026A64_jp, DmaMgr_RequestSync

* func_80026714_jp, func_80026814_jp, func_800269E4_jp, func_80026C4C_jp, func_80026DA0_jp, func_80026DCC_jp, func_80026E10_jp

* func_80026770_jp, func_800267DC_jp, func_80026BC0_jp, func_80026C00_jp, func_80026C28_jp

* DmaMgr_DmaRomToRam

* func_800266C4_jp, func_80026828_jp

* func_800263F0_jp

* func_80026CAC_jp

* migrate other strings

* Fix some warnings

* start renamings

* Improve func_800263F0_jp

* steal stuff from OoT

* dmaEntryMsgBufs

* name the remaining stuff

* format

* minor cleanups

* review

* format

* review
2023-08-24 11:40:56 -07:00

56 lines
1.5 KiB
C

#ifndef IRQMGR_H
#define IRQMGR_H
#include "ultra64.h"
#define IRQ_RETRACE_MSG 666
#define IRQ_PRENMI_MSG 669
#define IRQ_PRENMI450_MSG 671
#define IRQ_PRENMI480_MSG 672
#define IRQ_PRENMI500_MSG 673
typedef struct {
/* 0x00 */ s16 type;
/* 0x02 */ s8 data[30];
} IrqmgrMsg; //size = 0x20
typedef struct IrqmgrClient {
/* 0x0 */ struct IrqmgrClient* next;
/* 0x4 */ OSMesgQueue* msgQueue;
} IrqmgrClient; // size = 0x8
typedef struct {
/* 0x000 */ IrqmgrMsg msgRetrace;
/* 0x020 */ IrqmgrMsg msgPreNMI;
/* 0x040 */ IrqmgrMsg msgDelayPreNMI;
/* 0x060 */ OSMesgQueue _msgQueue;
/* 0x078 */ OSMesg msgBuf[8];
/* 0x098 */ OSThread thread;
/* 0x248 */ IrqmgrClient* clients;
/* 0x24C */ u8 prenmi;
/* 0x250 */ OSTime prenmiTime;
/* 0x258 */ OSTimer timer;
/* 0x278 */ OSTime retraceTime;
} Irqmgr; // size = 0x280
void irqmgr_AddClient(IrqmgrClient* client, OSMesgQueue* msgQueue);
void irqmgr_RemoveClient(IrqmgrClient* client);
void irqmgr_SendMesgToClients(IrqmgrMsg* msg);
void irqmgr_JamMesgForClient(IrqmgrMsg* msg);
void irqmgr_HandlePreNMI(void);
void IrqMgr_CheckStacks(void);
void irqmgr_HandlePreNMI450(void);
void irqmgr_HandlePreNMI480(void);
void irqmgr_HandlePreNMI500(void);
void IrqMgr_HandleRetrace(void);
void irqmgr_Main(void* arg);
void CreateIRQManager(void* stack, OSPri priority, u8 retracecount);
extern vs32 ResetStatus;
extern volatile OSTime ResetTime;
extern volatile OSTime RetraceTime;
extern u32 RetraceCount;
#endif