exi.h File Reference

EXI subsystem. More...

#include <gctypes.h>

Defines

#define EXI_READ   0
#define EXI_WRITE   1
#define EXI_READWRITE   2
#define EXI_CHANNEL_0   0
#define EXI_CHANNEL_1   1
#define EXI_CHANNEL_2   2
#define EXI_CHANNEL_MAX   3
#define EXI_DEVICE_0   0
#define EXI_DEVICE_1   1
#define EXI_DEVICE_2   2
#define EXI_DEVICE_MAX   3
#define EXI_SPEED1MHZ   0
#define EXI_SPEED2MHZ   1
#define EXI_SPEED4MHZ   2
#define EXI_SPEED8MHZ   3
#define EXI_SPEED16MHZ   4
#define EXI_SPEED32MHZ   5
#define EXI_FLAG_DMA   0x0001
#define EXI_FLAG_IMM   0x0002
#define EXI_FLAG_SELECT   0x0004
#define EXI_FLAG_ATTACH   0x0008
#define EXI_FLAG_LOCKED   0x0010
#define EXI_MEMCARD59   0x00000004
#define EXI_MEMCARD123   0x00000008
#define EXI_MEMCARD251   0x00000010
#define EXI_MEMCARD507   0x00000020
#define EXI_MEMCARD1019   0x00000040
#define EXI_MEMCARD2043   0x00000080

Typedefs

typedef s32(*) EXICallback (s32 chn, s32 dev)
 function pointer typedef for the user's EXI callback

Functions

s32 EXI_ProbeEx (s32 nChn)
 Performs an extended probe of the EXI channel.
s32 EXI_Probe (s32 nChn)
 Probes the EXI channel.
s32 EXI_Lock (s32 nChn, s32 nDev, EXICallback unlockCB)
 Try to lock the desired EXI channel on the given device.
s32 EXI_Unlock (s32 nChn)
 Unlock the desired EXI channel.
s32 EXI_Select (s32 nChn, s32 nDev, s32 nFrq)
 Selects the spedified EXI channel on the given device with the given frequency.
s32 EXI_SelectSD (s32 nChn, s32 nDev, s32 nFrq)
 Performs a special select, for SD cards or adapters respectively, on the given device with the given frequence.
s32 EXI_Deselect (s32 nChn)
 Deselects the EXI channel.
s32 EXI_Sync (s32 nChn)
 Synchronize or finish respectively the last EXI transfer.
s32 EXI_Imm (s32 nChn, void *pData, u32 nLen, u32 nMode, EXICallback tc_cb)
 Initializes an immediate mode EXI transfer.
s32 EXI_ImmEx (s32 nChn, void *pData, u32 nLen, u32 nMode)
 Initializes an extended immediate mode EXI transfer.
s32 EXI_Dma (s32 nChn, void *pData, u32 nLen, u32 nMode, EXICallback tc_cb)
 Initializes a DMA mode EXI transfer.
s32 EXI_GetState (s32 nChn)
 Get the EXI state.
s32 EXI_GetID (s32 nChn, s32 nDev, u32 *nId)
 Get the ID of the connected EXI device on the given channel.
s32 EXI_Attach (s32 nChn, EXICallback ext_cb)
 Attach the device on the given channel.
s32 EXI_Detach (s32 nChn)
 Detach the device on the given channel.
void EXI_ProbeReset ()
 Resets certain internal flags and counters and performs a probe on all 3 channels.
EXICallback EXI_RegisterEXICallback (s32 nChn, EXICallback exi_cb)
 Register a callback function in the EXI driver for the EXI interrupt.


Detailed Description

EXI subsystem.


Typedef Documentation

s32(* EXICallback)(s32 chn, s32 dev)

function pointer typedef for the user's EXI callback

Parameters:
chn EXI channel
dev EXI device


Function Documentation

s32 EXI_Attach ( s32  nChn,
EXICallback  ext_cb 
)

Attach the device on the given channel.

Parameters:
[in] nChn EXI channel to select
[in] ext_cb pointer to callback to call when device is physically removed.
Returns:
1 on success, <=0 on error

s32 EXI_Deselect ( s32  nChn  ) 

Deselects the EXI channel.

Parameters:
[in] nChn EXI channel to deselect
Returns:
1 on success, <=0 on error

s32 EXI_Detach ( s32  nChn  ) 

Detach the device on the given channel.

Parameters:
[in] nChn EXI channel to select
Returns:
1 on success, <=0 on error

s32 EXI_Dma ( s32  nChn,
void *  pData,
u32  nLen,
u32  nMode,
EXICallback  tc_cb 
)

Initializes a DMA mode EXI transfer.

Parameters:
[in] nChn EXI channel to select
[in,out] pData pointer to a buffer to read/copy from/to data.
[in] nLen lenght of data to transfer.
[in] nMode direction of transferoperation(EXI_READ,EXI_WRITE,EXI_READWRITE)
[in] tc_cb pointer to a callback to call when transfer has completed. May be NULL.
Returns:
1 on success, <=0 on error

s32 EXI_GetID ( s32  nChn,
s32  nDev,
u32 nId 
)

Get the ID of the connected EXI device on the given channel.

Parameters:
[in] nChn EXI channel to select
[in] nDev EXI device to select
[out] nId EXI device ID to return.
Returns:
1 on success, <=0 on error

s32 EXI_GetState ( s32  nChn  ) 

Get the EXI state.

Parameters:
[in] nChn EXI channel to select
Returns:
EXI channels state flag.

s32 EXI_Imm ( s32  nChn,
void *  pData,
u32  nLen,
u32  nMode,
EXICallback  tc_cb 
)

Initializes an immediate mode EXI transfer.

Parameters:
[in] nChn EXI channel to select
[in,out] pData pointer to a buffer to read/copy from/to data.
[in] nLen lenght of data to transfer <=4.
[in] nMode direction of transferoperation(EXI_READ,EXI_WRITE,EXI_READWRITE)
[in] tc_cb pointer to a callback to call when transfer has completed. May be NULL.
Returns:
1 on success, <=0 on error

s32 EXI_ImmEx ( s32  nChn,
void *  pData,
u32  nLen,
u32  nMode 
)

Initializes an extended immediate mode EXI transfer.

Parameters:
[in] nChn EXI channel to select
[in,out] pData pointer to a buffer to read/copy from/to data.
[in] nLen lenght of data to transfer.
[in] nMode direction of transferoperation(EXI_READ,EXI_WRITE,EXI_READWRITE)
Returns:
1 on success, <=0 on error

s32 EXI_Lock ( s32  nChn,
s32  nDev,
EXICallback  unlockCB 
)

Try to lock the desired EXI channel on the given device.

Parameters:
[in] nChn EXI channel to lock
[in] nDev EXI device to lock
[in] unlockCB pointer to callback to call when EXI_Unlock() is called. Thus allowing us a small way of mutual exclusion.
Returns:
1 on success, <=0 on error

s32 EXI_Probe ( s32  nChn  ) 

Probes the EXI channel.

Parameters:
[in] nChn EXI channel to probe
Returns:
1 on success, <=0 on error

s32 EXI_ProbeEx ( s32  nChn  ) 

Performs an extended probe of the EXI channel.

Parameters:
[in] nChn EXI channel to probe
Returns:
1 on success, <=0 on error

void EXI_ProbeReset (  ) 

Resets certain internal flags and counters and performs a probe on all 3 channels.

Returns:
nothing

EXICallback EXI_RegisterEXICallback ( s32  nChn,
EXICallback  exi_cb 
)

Register a callback function in the EXI driver for the EXI interrupt.

Parameters:
[in] nChn EXI channel to select
[in] exi_cb pointer to the function which to call when EXI interrupt has triggered.
Returns:
old callback function pointer or NULL

s32 EXI_Select ( s32  nChn,
s32  nDev,
s32  nFrq 
)

Selects the spedified EXI channel on the given device with the given frequency.

Parameters:
[in] nChn EXI channel to select
[in] nDev EXI device to select
[in] nFrq EXI frequency to select
Returns:
1 on success, <=0 on error

s32 EXI_SelectSD ( s32  nChn,
s32  nDev,
s32  nFrq 
)

Performs a special select, for SD cards or adapters respectively, on the given device with the given frequence.

Parameters:
[in] nChn EXI channel to select
[in] nDev EXI device to select
[in] nFrq EXI frequency to select
Returns:
1 on success, <=0 on error

s32 EXI_Sync ( s32  nChn  ) 

Synchronize or finish respectively the last EXI transfer.

Parameters:
[in] nChn EXI channel to select
Returns:
1 on success, <=0 on error

s32 EXI_Unlock ( s32  nChn  ) 

Unlock the desired EXI channel.

Parameters:
[in] nChn EXI channel to unlock
Returns:
1 on success, <=0 on error


Generated on Sun Feb 4 18:14:34 2007 for libOGC by  doxygen 1.4.7