SSBM Decomp
Loading...
Searching...
No Matches
OSExi.c File Reference
#include <dolphin.h>
#include <string.h>
#include "__os.h"
#include <dolphin/os.h>

Data Structures

struct  EXIControl

Macros

#define MAX_CHAN   3
#define STATE_BUSY   3
#define STATE_SELECTED   4
#define MAX_IMM   4
#define MAX_TYPE   3
#define MAX_DEV   3
#define MAX_FREQ   6
#define EXI_0LENGTH_EXILENGTH_MASK   0x03FFFFE0
#define EXI_READ   0
#define EXI_WRITE   1
#define EXI_REG_MAX   5
#define EXI_USB_ADAPTER   0x01010000
#define EXI_FREQ_1M   0
#define EXIREG(chan, idx)

Typedefs

typedef void(* EXICallback) (s32, OSContext *)

Functions

static void SetExiInterruptMask (long chan, struct EXIControl *exi)
static void CompleteTransfer (long chan)
int EXIImm (long chan, void *buf, long len, unsigned long type, EXICallback callback)
int EXIImmEx (long chan, void *buf, long len, unsigned long mode)
int EXIDma (long chan, void *buf, long len, unsigned long type, EXICallback callback)
int EXISync (long chan)
unsigned long EXIClearInterrupts (long chan, int exi, int tc, int ext)
EXICallback EXISetExiCallback (long chan, EXICallback exiCallback)
void EXIProbeReset ()
static int __EXIProbe (long chan)
int EXIProbe (long chan)
int EXIProbeEx (long chan)
int EXIAttach (long chan, EXICallback extCallback)
int EXIDetach (long chan)
int EXISelect (long chan, unsigned long dev, unsigned long freq)
int EXIDeselect (long chan)
static void EXIIntrruptHandler (signed short interrupt, struct OSContext *context)
static void TCIntrruptHandler (signed short interrupt, struct OSContext *context)
static void EXTIntrruptHandler (signed short interrupt, struct OSContext *context)
void EXIInit ()
int EXILock (long chan, unsigned long dev, void(*unlockedCallback)(long, struct OSContext *))
int EXIUnlock (long chan)
unsigned long EXIGetState (long chan)
int EXIGetID (long chan, unsigned long dev, unsigned long *id)
static int __EXIAttach (long chan, EXICallback extCallback)
static void UnlockedHandler (long chan, OSContext *context)

Variables

static struct EXIControl Ecb [3]

Macro Definition Documentation

◆ MAX_CHAN

#define MAX_CHAN   3

◆ STATE_BUSY

#define STATE_BUSY   3

◆ STATE_SELECTED

#define STATE_SELECTED   4

◆ MAX_IMM

#define MAX_IMM   4

◆ MAX_TYPE

#define MAX_TYPE   3

◆ MAX_DEV

#define MAX_DEV   3

◆ MAX_FREQ

#define MAX_FREQ   6

◆ EXI_0LENGTH_EXILENGTH_MASK

#define EXI_0LENGTH_EXILENGTH_MASK   0x03FFFFE0

◆ EXI_READ

#define EXI_READ   0

◆ EXI_WRITE

#define EXI_WRITE   1

◆ EXI_REG_MAX

#define EXI_REG_MAX   5

◆ EXI_USB_ADAPTER

#define EXI_USB_ADAPTER   0x01010000

◆ EXI_FREQ_1M

#define EXI_FREQ_1M   0

◆ EXIREG

#define EXIREG ( chan,
idx )
Value:
(__EXIRegs[((chan) * EXI_REG_MAX) + (idx)])
#define EXI_REG_MAX
Definition OSExi.c:218
#define __EXIRegs
Definition hw_regs.h:20

Typedef Documentation

◆ EXICallback

typedef void(* EXICallback) (s32, OSContext *)

Function Documentation

◆ SetExiInterruptMask()

void SetExiInterruptMask ( long chan,
struct EXIControl * exi )
static

◆ CompleteTransfer()

void CompleteTransfer ( long chan)
static

◆ EXIImm()

int EXIImm ( long chan,
void * buf,
long len,
unsigned long type,
EXICallback callback )

◆ EXIImmEx()

int EXIImmEx ( long chan,
void * buf,
long len,
unsigned long mode )

◆ EXIDma()

int EXIDma ( long chan,
void * buf,
long len,
unsigned long type,
EXICallback callback )

◆ EXISync()

int EXISync ( long chan)

◆ EXIClearInterrupts()

unsigned long EXIClearInterrupts ( long chan,
int exi,
int tc,
int ext )

◆ EXISetExiCallback()

EXICallback EXISetExiCallback ( long chan,
EXICallback exiCallback )

◆ EXIProbeReset()

void EXIProbeReset ( void )

◆ __EXIProbe()

int __EXIProbe ( long chan)
static

◆ EXIProbe()

int EXIProbe ( long chan)

◆ EXIProbeEx()

int EXIProbeEx ( long chan)

◆ EXIAttach()

int EXIAttach ( long chan,
EXICallback extCallback )

◆ EXIDetach()

int EXIDetach ( long chan)

◆ EXISelect()

int EXISelect ( long chan,
unsigned long dev,
unsigned long freq )

◆ EXIDeselect()

int EXIDeselect ( long chan)

◆ EXIIntrruptHandler()

void EXIIntrruptHandler ( signed short interrupt,
struct OSContext * context )
static

◆ TCIntrruptHandler()

void TCIntrruptHandler ( signed short interrupt,
struct OSContext * context )
static

◆ EXTIntrruptHandler()

void EXTIntrruptHandler ( signed short interrupt,
struct OSContext * context )
static

◆ EXIInit()

void EXIInit ( void )

◆ EXILock()

int EXILock ( long chan,
unsigned long dev,
void(* unlockedCallback )(long, struct OSContext *) )

◆ EXIUnlock()

int EXIUnlock ( long chan)

◆ EXIGetState()

unsigned long EXIGetState ( long chan)

◆ EXIGetID()

int EXIGetID ( long chan,
unsigned long dev,
unsigned long * id )

◆ __EXIAttach()

int __EXIAttach ( long chan,
EXICallback extCallback )
static

◆ UnlockedHandler()

void UnlockedHandler ( long chan,
OSContext * context )
static

Variable Documentation

◆ Ecb

struct EXIControl Ecb[3]
static