#include <iris/mi.h>void MI_SendGXCommand( u32 dmaNo, const void* src, u32 commandLength );void MI_SendGXCommandAsync( u32 dmaNo, const void* src, u32 commandLength,
MIDmaCallback callback,
void* arg ); | dmaNo | 使用DMAチャンネル |
| src | 転送元アドレス |
| commandLength | 転送コマンドサイズ(バイト数) |
| callback | DMA終了時のコールバック |
| arg | DMA終了時のコールバック引数 |
なし。
DMAを用いてGXコマンドをコマンドFIFOに送ります。
転送元アドレスは 4バイトアラインメントする必要があります。
MI_SendGXCommand() は DMAの終了を関数内で待ちます。
MI_SendGXCommandAsync() 関数は、DMA終了時にコールバックを呼びます。コールバックは
MIDmaCallback 型(void* 引数1つを取る void 型関数)です。
IOレジスタのDMAnソースレジスタ(0x40000B0 + 12n)、DMAnデスティネーションレジスタ(0x40000B4 + 12n)、DMAnコントロールレジスタ(0x40000B8 + 12n)を使用します。( n は 使用するDMAチャンネルです。)
また、IOレジスタの GXFIFO(0x4000400) にアクセスします。
2003/12/01 初版