Super Mario 64 Source
A Super Mario 64 decompilation, brought to you by a bunch of clever folks.
os_pi.h
Go to the documentation of this file.
1 #ifndef _ULTRA64_PI_H_
2 #define _ULTRA64_PI_H_
3 
4 /* Ultra64 Parallel Interface */
5 
6 /* Types */
7 
8 typedef struct
9 {
11  void *dramAddr;
12  void *C2Addr;
15  u32 C1ErrSector[4];
17 
18 typedef struct
19 {
27  __OSBlockInfo block[2];
29 
30 typedef struct OSPiHandle_s
31 {
32  struct OSPiHandle_s *next;
42 } OSPiHandle;
43 
44 typedef struct
45 {
48 } OSPiInfo;
49 
50 typedef struct
51 {
55  OSMesgQueue *retQueue;
56 } OSIoMesgHdr;
57 
58 typedef struct
59 {
60  /*0x00*/ OSIoMesgHdr hdr;
61  /*0x08*/ void *dramAddr;
62  /*0x0C*/ u32 devAddr;
63  /*0x10*/ u32 size;
64  //OSPiHandle *piHandle; //from the official definition
65 } OSIoMesg;
66 
67 /* Definitions */
68 
69 #define OS_READ 0 // device -> RDRAM
70 #define OS_WRITE 1 // device <- RDRAM
71 
72 #define OS_MESG_PRI_NORMAL 0
73 #define OS_MESG_PRI_HIGH 1
74 
75 /* Functions */
76 
77 s32 osPiStartDma(OSIoMesg *mb, s32 priority, s32 direction,
78  u32 devAddr, void *vAddr, u32 nbytes, OSMesgQueue *mq);
79 void osCreatePiManager(OSPri pri, OSMesgQueue *cmdQ, OSMesg *cmdBuf,
80  s32 cmdMsgCnt);
81 OSMesgQueue *osPiGetCmdQueue(void);
82 s32 osPiWriteIo(u32 devAddr, u32 data);
83 s32 osPiReadIo(u32 devAddr, u32 *data);
84 
85 #endif
u32 sectorSize
Definition: os_pi.h:13
s32 osPiReadIo(u32 devAddr, u32 *data)
s32 OSPri
Definition: os_thread.h:21
unsigned short int u16
Definition: ultratypes.h:14
struct OSPiHandle_s * next
Definition: os_pi.h:32
void * dramAddr
Definition: os_pi.h:61
u32 size
Definition: os_pi.h:63
Definition: os_pi.h:50
u8 type
Definition: os_pi.h:33
u8 pulse
Definition: os_pi.h:37
u32 baseAddress
Definition: os_pi.h:39
Definition: os_pi.h:58
u32 devAddr
Definition: os_pi.h:24
Definition: os_pi.h:30
void osCreatePiManager(OSPri pri, OSMesgQueue *cmdQ, OSMesg *cmdBuf, s32 cmdMsgCnt)
Definition: osCreatePiManager.c:15
OSIoMesgHdr hdr
Definition: os_pi.h:60
void * dramAddr
Definition: os_pi.h:11
u8 pri
Definition: os_pi.h:53
u8 type
Definition: os_pi.h:46
u32 speed
Definition: os_pi.h:40
u32 cmdType
Definition: os_pi.h:20
u8 domain
Definition: os_pi.h:38
u16 blockNum
Definition: os_pi.h:22
data
Definition: seq_decoder.py:292
Definition: os_pi.h:18
u8 pageSize
Definition: os_pi.h:35
u32 C1ErrNum
Definition: os_pi.h:14
void * C2Addr
Definition: os_pi.h:12
Definition: os_pi.h:44
Definition: os_pi.h:8
s32 osPiWriteIo(u32 devAddr, u32 data)
OSMesgQueue * osPiGetCmdQueue(void)
Definition: osPiGetCmdQueue.c:5
__OSTranxInfo transferInfo
Definition: os_pi.h:41
u32 errStatus
Definition: os_pi.h:10
struct OSPiHandle_s OSPiHandle
u16 transferMode
Definition: os_pi.h:21
u32 address
Definition: os_pi.h:47
u8 status
Definition: os_pi.h:54
s32 sectorNum
Definition: os_pi.h:23
unsigned char u8
Definition: ultratypes.h:12
OSMesgQueue * retQueue
Definition: os_pi.h:55
u8 relDuration
Definition: os_pi.h:36
u32 seqCtlShadow
Definition: os_pi.h:26
signed int s32
Definition: ultratypes.h:15
u32 bmCtlShadow
Definition: os_pi.h:25
u8 latency
Definition: os_pi.h:34
u32 devAddr
Definition: os_pi.h:62
u16 type
Definition: os_pi.h:52
s32 osPiStartDma(OSIoMesg *mb, s32 priority, s32 direction, u32 devAddr, void *vAddr, u32 nbytes, OSMesgQueue *mq)
Definition: osPiStartDma.c:5
unsigned int u32
Definition: ultratypes.h:16