Mario Kart 64
libultra_internal.h
Go to the documentation of this file.
1 #ifndef _LIBULTRA_INTERNAL_H_
2 #define _LIBULTRA_INTERNAL_H_
3 #include <ultra64.h>
4 #include "macros.h"
5 
6 typedef struct __OSEventState
7 {
8  OSMesgQueue *messageQueue;
9  OSMesg message;
11 
12 typedef struct __osThreadTail
13 {
17 
18 // Original OSThread_ListHead definitions
21 extern OSThread *__osRunQueue;
23 
24 
25 // Original EEPROM definitions
26 extern ALIGNED8 u32 D_80365E00[15];
27 extern u32 D_80365E3C;
28 
29 typedef struct {
30  u32 initialized; // probably something like initialized?
32  OSMesgQueue *cmdQueue;
33  OSMesgQueue *eventQueue;
34  OSMesgQueue *accessQueue;
35  s32 (*dma_func)(s32, u32, void *, size_t);
36  s32 (*edma_func)(OSPiHandle*, s32, u32, void *, size_t);
37 } OSMgrArgs;
38 
45 s32 __osSiRawStartDma(s32, void *);
46 void __osSiCreateAccessQueue(void);
47 void __osSiGetAccess(void);
48 void __osSiRelAccess(void);
49 u32 __osProbeTLB(void *);
50 void __osPiCreateAccessQueue(void);
51 void __osPiGetAccess(void);
52 void __osSetSR(u32);
53 u32 __osGetSR(void);
55 s32 __osSiRawReadIo(void *, u32 *);
56 s32 __osSiRawWriteIo(void *, u32);
57 s32 osPiRawReadIo(u32 a0, u32 *a1);
58 void __osSpSetStatus(u32);
59 u32 __osSpGetStatus(void);
60 s32 __osSpSetPc(void *);
61 s32 __osSpDeviceBusy(void);
62 s32 __osSiDeviceBusy(void);
63 s32 __osSpRawStartDma(u32 dir, void *sp_ptr, void *dram_ptr, size_t size);
64 void __osSetHWIntrRoutine(OSHWIntr interrupt, s32 (*handler)(void));
66 void __osViInit(void);
69 void __osViSwapContext(void);
70 void __osSetTimerIntr(u64);
73 s32 __osAiDeviceBusy(void);
74 void __osDispatchThread(void);
77 #endif
s32 __osSiRawWriteIo(void *, u32)
Definition: __osSiRawWriteIo.c:4
s32 __osSpSetPc(void *)
Definition: __osSpSetPc.c:4
s32 __osSpDeviceBusy(void)
Definition: __osSpDeviceBusy.c:4
void __osSetSR(u32)
OSViContext * __osViGetCurrentContext(void)
Definition: __osViGetCurrentContext.c:5
OSThread * __osActiveQueue
Definition: __osDequeueThread.c:5
s32 __osAtomicDec(u32 *)
Definition: __osAtomicDec.c:3
void __osViSwapContext(void)
Definition: __osViSwapContext.c:7
struct __osThreadTail OSThreadTail
OSViContext * __osViGetCurrentContext2(void)
u32 __osSpGetStatus(void)
Definition: __osSpGetStatus.c:4
void __osSetTimerIntr(u64)
Definition: osTimer.c:59
u32 __osGetCause(void)
OSThread * __osRunningThread
Definition: __osDequeueThread.c:6
void __osSpSetStatus(u32)
Definition: __osSpSetStatus.c:4
u32 __osProbeTLB(void *)
s32 __osSiRawReadIo(void *, u32 *)
Definition: __osSiRawReadIo.c:4
void __osDispatchThread(void)
void __osSetCompare(u32)
s32 __osSiRawStartDma(s32, void *)
Definition: __osSiRawStartDma.c:4
void __osSetHWIntrRoutine(OSHWIntr interrupt, s32(*handler)(void))
Definition: __osSetHWIntrRoutine.c:8
OSThread * __osPopThread(OSThread **)
void __osDequeueThread(OSThread **, OSThread *)
Definition: __osDequeueThread.c:9
void __osViInit(void)
Definition: __osViInit.c:16
s32 __osDisableInt(void)
OSThread * __osRunQueue
Definition: __osDequeueThread.c:4
u64 __osInsertTimer(OSTimer *)
Definition: osTimer.c:68
OSThreadTail __osThreadTail
Definition: __osDequeueThread.c:3
void __osSiRelAccess(void)
Definition: __osSiCreateAccessQueue.c:23
s32 __osAiDeviceBusy(void)
Definition: __osAiDeviceBusy.c:4
s32 __osSiDeviceBusy(void)
Definition: __osSiDeviceBusy.c:4
u32 __osGetSR(void)
s32 osPiRawReadIo(u32 a0, u32 *a1)
Definition: osPiRawReadIo.c:6
ALIGNED8 u32 D_80365E00[15]
void __osSiCreateAccessQueue(void)
Definition: __osSiCreateAccessQueue.c:9
void __osEnqueueThread(OSThread **, OSThread *)
void __osSetFpcCsr(u32)
struct __OSEventState __OSEventState
void __osSiGetAccess(void)
Definition: __osSiCreateAccessQueue.c:15
void __osRestoreInt(s32)
s32 __osSpRawStartDma(u32 dir, void *sp_ptr, void *dram_ptr, size_t size)
Definition: __osSpRawStartDma.c:4
u32 D_80365E3C
s32 __osLeoInterrupt()
Definition: __osLeoInterrupt.c:12
void __osPiCreateAccessQueue(void)
Definition: __osPiCreateAccessQueue.c:9
void __osPiGetAccess(void)
Definition: __osPiCreateAccessQueue.c:15
void __osEnqueueAndYield(OSThread **)
unsigned long long int u64
Definition: llconv.c:2
#define ALIGNED8
Definition: macros.h:45
s32 OSPri
Definition: os_thread.h:21
Definition: libultra_internal.h:29
OSMesgQueue * eventQueue
Definition: libultra_internal.h:33
OSMesgQueue * accessQueue
Definition: libultra_internal.h:34
u32 initialized
Definition: libultra_internal.h:30
OSMesgQueue * cmdQueue
Definition: libultra_internal.h:32
OSThread * mgrThread
Definition: libultra_internal.h:31
Definition: os_pi.h:28
Definition: os_thread.h:51
Definition: os_time.h:10
Definition: os_vi.h:60
Definition: libultra_internal.h:7
OSMesg message
Definition: libultra_internal.h:9
OSMesgQueue * messageQueue
Definition: libultra_internal.h:8
Definition: libultra_internal.h:13
OSThread * next
Definition: libultra_internal.h:14
OSPri priority
Definition: libultra_internal.h:15
signed int s32
Definition: ultratypes.h:15
unsigned int u32
Definition: ultratypes.h:16