SSBM Decomp
Loading...
Searching...
No Matches
OSExi.h
Go to the documentation of this file.
1#ifndef DOLPHIN_OS_OSEXI_H
2#define DOLPHIN_OS_OSEXI_H
3
4#include <platform.h>
5
8
9typedef void (*EXICallback)(s32 chan, OSContext* context);
10
19
26
33
50
51#define EXI_REG_MAX 5
52extern vu32 __EXIRegs[EXI_MAX_CHAN][EXI_REG_MAX] AT_ADDRESS(0xCC006800);
53
55bool EXIImm(EXIChannel, void* buf, s32 len, u32 type, EXICallback);
56bool EXIImmEx(EXIChannel, void* buf, s32 len, u32 mode);
57bool EXIDma(EXIChannel, void* buf, s32 len, u32 type, EXICallback);
59u32 EXIClearInterrupts(EXIChannel, bool exi, bool tc, bool ext);
65bool EXISelect(s32, u32 dev, u32 freq);
67void EXIInit(void);
68bool EXILock(s32, u32 dev, EXICallback unlockedCallback);
71s32 EXIGetID(EXIChannel, u32 dev, u32* id);
72
73#endif
EXIChannel
Definition OSExi.h:20
@ EXI_MAX_CHAN
Definition OSExi.h:24
@ EXI_CHAN_0
Definition OSExi.h:21
@ EXI_CHAN_1
Definition OSExi.h:22
@ EXI_CHAN_2
Definition OSExi.h:23
s32 EXIGetID(EXIChannel, u32 dev, u32 *id)
Definition OSExi.c:772
void SetExiInterruptMask(EXIChannel, volatile EXIControl *)
Definition OSExi.c:21
bool EXISelect(s32, u32 dev, u32 freq)
Definition OSExi.c:485
u32 EXIGetState(EXIChannel)
Definition OSExi.c:760
bool EXIDeselect(EXIChannel)
Definition OSExi.c:521
bool EXIDetach(EXIChannel)
Definition OSExi.c:463
u32 EXIClearInterrupts(EXIChannel, bool exi, bool tc, bool ext)
Definition OSExi.c:323
#define EXI_REG_MAX
Definition OSExi.h:51
void EXIInit(void)
Definition OSExi.c:674
s32 EXIProbeEx(EXIChannel)
Definition OSExi.c:415
bool EXIUnlock(EXIChannel)
Definition OSExi.c:733
void(* EXICallback)(s32 chan, OSContext *context)
Definition OSExi.h:9
bool EXIProbe(EXIChannel)
Definition OSExi.c:402
bool EXILock(s32, u32 dev, EXICallback unlockedCallback)
Definition OSExi.c:704
EXIType
Definition OSExi.h:27
@ EXI_READ
Definition OSExi.h:28
@ EXI_MAX_TYPE
Definition OSExi.h:31
@ EXI_WRITE
Definition OSExi.h:29
@ EXI_TYPE_2
Definition OSExi.h:30
EXICallback EXISetExiCallback(EXIChannel, EXICallback exiCallback)
Definition OSExi.c:341
bool EXISync(EXIChannel)
Definition OSExi.c:315
bool EXIAttach(EXIChannel, EXICallback)
Definition OSExi.c:445
bool EXIImm(EXIChannel, void *buf, s32 len, u32 type, EXICallback)
Definition OSExi.c:74
bool EXIDma(EXIChannel, void *buf, s32 len, u32 type, EXICallback)
Definition OSExi.c:135
EXIState
Definition OSExi.h:11
@ EXI_STATE_BUSY
Definition OSExi.h:17
@ EXI_STATE_SELECTED
Definition OSExi.h:14
@ EXI_STATE_ATTACHED
Definition OSExi.h:15
@ EXI_STATE_IMM_ACCESS
Definition OSExi.h:13
@ EXI_STATE_LOCKED
Definition OSExi.h:16
@ EXI_STATE_DMA_ACCESS
Definition OSExi.h:12
bool EXIImmEx(EXIChannel, void *buf, s32 len, u32 mode)
Definition OSExi.c:114
unsigned long u32
An unsigned 32-bit integer.
Definition platform.h:26
#define AT_ADDRESS(x)
Definition platform.h:122
volatile u32 vu32
A volatile, unsigned 32-bit integer.
Definition platform.h:44
signed long s32
A signed 32-bit integer.
Definition platform.h:14
unsigned char u8
An unsigned 8-bit integer.
Definition platform.h:20
Definition OSExi.h:34
int immLen
Definition OSExi.h:39
EXICallback exiCallback
Definition OSExi.h:35
s32 idTime
Definition OSExi.h:43
int items
Definition OSExi.h:44
struct EXIControl::@6 queue[3]
u32 id
Definition OSExi.h:42
vu32 state
Definition OSExi.h:38
EXICallback callback
Definition OSExi.h:47
EXICallback extCallback
Definition OSExi.h:37
EXICallback tcCallback
Definition OSExi.h:36
u8 * immBuf
Definition OSExi.h:40
u32 dev
Definition OSExi.h:41
Definition OSContext.h:133