SSBM Decomp
Loading...
Searching...
No Matches
OSExi.c File Reference
#include <placeholder.h>
#include <cstring.h>
#include <dolphin/os/OSExi.h>
#include <dolphin/os/OSInit.h>
#include <dolphin/os/OSInterrupt.h>
#include <dolphin/os/OSTime.h>

Macros

#define EXI_FREQ_1M   0
 
#define REG(chan, idx)   (__EXIRegs[(chan)][(idx)])
 
#define EXI_0CR(tstart, dma, rw, tlen)
 
#define CPR_CLK(x)   ((x) << 4)
 
#define CPR_CS(x)   ((1u << (x)) << 7)
 

Functions

s32 __EXIProbeStartTime[2] AT_ADDRESS (0x800030C0)
 
void SetExiInterruptMask (EXIChannel chan, volatile EXIControl *exi)
 
static void CompleteTransfer (EXIChannel chan)
 
bool EXIImm (EXIChannel chan, void *buf, s32 len, u32 type, EXICallback callback)
 
bool EXIImmEx (EXIChannel chan, void *buf, s32 len, u32 mode)
 
bool EXIDma (EXIChannel chan, void *buf, s32 len, u32 type, EXICallback callback)
 
u32 __OSGetDIConfig (void)
 
bool EXISync (EXIChannel _)
 
u32 EXIClearInterrupts (EXIChannel chan, bool exi, bool tc, bool ext)
 
EXICallback EXISetExiCallback (EXIChannel chan, EXICallback exiCallback)
 
static bool __EXIProbe (EXIChannel chan)
 
bool EXIProbe (EXIChannel chan)
 
s32 EXIProbeEx (EXIChannel chan)
 
static bool __EXIAttach (EXIChannel chan, EXICallback extCallback)
 
bool EXIAttach (EXIChannel chan, EXICallback extCallback)
 
bool EXIDetach (EXIChannel chan)
 
bool EXISelect (s32 chan, u32 dev, u32 freq)
 
bool EXIDeselect (EXIChannel chan)
 
static void EXIIntrruptHandler (__OSInterrupt interrupt, OSContext *context)
 
static void TCIntrruptHandler (__OSInterrupt interrupt, OSContext *context)
 
static void EXTIntrruptHandler (__OSInterrupt unused0, OSContext *unused1)
 
void EXIInit (void)
 
bool EXILock (s32 chan, u32 dev, EXICallback unlockedCallback)
 
bool EXIUnlock (EXIChannel chan)
 
u32 EXIGetState (EXIChannel chan)
 
static void UnlockedHandler (s32 chan, OSContext *context)
 
s32 EXIGetID (EXIChannel chan, u32 dev, u32 *id)
 

Variables

EXIControl Ecb [EXI_MAX_CHAN]
 

Macro Definition Documentation

◆ EXI_FREQ_1M

#define EXI_FREQ_1M   0

◆ REG

#define REG (   chan,
  idx 
)    (__EXIRegs[(chan)][(idx)])

◆ EXI_0CR

#define EXI_0CR (   tstart,
  dma,
  rw,
  tlen 
)
Value:
((((u32) (tstart)) << 0) | (((u32) (dma)) << 1) | (((u32) (rw)) << 2) | \
(((u32) (tlen)) << 4))
unsigned long u32
An unsigned 32-bit integer.
Definition platform.h:26

◆ CPR_CLK

#define CPR_CLK (   x)    ((x) << 4)

◆ CPR_CS

#define CPR_CS (   x)    ((1u << (x)) << 7)

Function Documentation

◆ AT_ADDRESS()

s32 __EXIProbeStartTime[2] AT_ADDRESS ( 0x800030C0  )
extern

◆ SetExiInterruptMask()

void SetExiInterruptMask ( EXIChannel  chan,
volatile EXIControl exi 
)

◆ CompleteTransfer()

static void CompleteTransfer ( EXIChannel  chan)
static

◆ EXIImm()

bool EXIImm ( EXIChannel  chan,
void *  buf,
s32  len,
u32  type,
EXICallback  callback 
)

◆ EXIImmEx()

bool EXIImmEx ( EXIChannel  chan,
void *  buf,
s32  len,
u32  mode 
)

◆ EXIDma()

bool EXIDma ( EXIChannel  chan,
void *  buf,
s32  len,
u32  type,
EXICallback  callback 
)

◆ __OSGetDIConfig()

u32 __OSGetDIConfig ( void  )
extern

◆ EXISync()

bool EXISync ( EXIChannel  _)

◆ EXIClearInterrupts()

u32 EXIClearInterrupts ( EXIChannel  chan,
bool  exi,
bool  tc,
bool  ext 
)

◆ EXISetExiCallback()

EXICallback EXISetExiCallback ( EXIChannel  chan,
EXICallback  exiCallback 
)

◆ __EXIProbe()

static bool __EXIProbe ( EXIChannel  chan)
static

◆ EXIProbe()

bool EXIProbe ( EXIChannel  chan)

◆ EXIProbeEx()

s32 EXIProbeEx ( EXIChannel  chan)

◆ __EXIAttach()

static bool __EXIAttach ( EXIChannel  chan,
EXICallback  extCallback 
)
static

◆ EXIAttach()

bool EXIAttach ( EXIChannel  chan,
EXICallback  extCallback 
)

◆ EXIDetach()

bool EXIDetach ( EXIChannel  chan)

◆ EXISelect()

bool EXISelect ( s32  chan,
u32  dev,
u32  freq 
)

◆ EXIDeselect()

bool EXIDeselect ( EXIChannel  chan)

◆ EXIIntrruptHandler()

static void EXIIntrruptHandler ( __OSInterrupt  interrupt,
OSContext context 
)
static

◆ TCIntrruptHandler()

static void TCIntrruptHandler ( __OSInterrupt  interrupt,
OSContext context 
)
static

◆ EXTIntrruptHandler()

static void EXTIntrruptHandler ( __OSInterrupt  unused0,
OSContext unused1 
)
static

◆ EXIInit()

void EXIInit ( void  )

◆ EXILock()

bool EXILock ( s32  chan,
u32  dev,
EXICallback  unlockedCallback 
)

◆ EXIUnlock()

bool EXIUnlock ( EXIChannel  chan)

◆ EXIGetState()

u32 EXIGetState ( EXIChannel  chan)

◆ UnlockedHandler()

static void UnlockedHandler ( s32  chan,
OSContext context 
)
static

◆ EXIGetID()

s32 EXIGetID ( EXIChannel  chan,
u32  dev,
u32 id 
)

Variable Documentation

◆ Ecb