Sint32 buInit( capa, drive, work, func )
Sint32 capa
Sint32 drive
void *work
BU_INITCALLBACK func
capa メディアの最大容量 drive 拡張ソケットの番号 work ワークバッファ func 初期化終了コールバック関数
BUD_ERR_OK 正常終了 BUD_ERR_INVALID_PARAM 引数が異常
メモリーカードファイルシステムを初期化します。 メディアの最大容量capaには次の値が指定可能です。拡張ソケットの番号driveには次の値が指定できます。
- BUD_CAPACITY_128KB
- BUD_CAPACITY_256KB
- BUD_CAPACITY_512KB
- BUD_CAPACITY_1MB
定義 意味 BUD_USE_DRIVE_ALL すべての拡張ソケット BUD_USE_DRIVE_A1 ポートAの拡張ソケット1 BUD_USE_DRIVE_A2 ポートAの拡張ソケット2 BUD_USE_DRIVE_B1 ポートBの拡張ソケット1 BUD_USE_DRIVE_B2 ポートBの拡張ソケット2 BUD_USE_DRIVE_C1 ポートCの拡張ソケット1 BUD_USE_DRIVE_C2 ポートCの拡張ソケット2 BUD_USE_DRIVE_D1 ポートDの拡張ソケット1 BUD_USE_DRIVE_D2 ポートDの拡張ソケット2
ワークバッファworkにNULLを指定した場合、capaの設定は無視されメモリーカード用の バッファを動的に管理することができます。
初期化に成功したら指定の関数をコールバックします。 コールバック関数はこの関数からリターンする前に呼び出されます。 その場合、BUD_OP_CONNECTコールバックを検知した後、 挿入されているメモリーカードのサイズに見合ったバッファをアプリケーション側で確保し、 buMountDisk関数でマウント処理を行います。 その後は通常の使い方と同様な使い方ができます。
このような使い方をすることで、あらかじめ大きいバッファサイズを確保すること無く、 大容量のメモリーカードにも対応することが可能になります。
/* Allocating two buffers for memory cards of up to 128K */ Uint32 work[BUM_WORK_SIZE(BUD_CAPACITY_128KB, 2) / sizeof(Uint32)]; void init_callback(void) { : } /* Corresponds to expansion sockets 1 and 2 of control port A */ buInit(BUD_CAPACITY_128KB, BUD_USE_DRIVE_A1 | BUD_USE_DRIVE_A2, work, init_callback);
最大容量や使用しているメモリーカード数によって、必要なワーク容量が大幅に異なります。アプリケーションで対応する必要のない拡張ソケットのメモリーカードはなるべく指定しないようにしてください。 不要なメモリーカードを指定しないことにより、ワーク容量の削減とライブラリの高速化が可能です。 以下に、ワーク容量の目安を記します。
最大容量 1ソケットあたりのワーク容量 8スロットでのワーク容量 128KB 8KB 64KB 256KB 14KB 112KB 512KB 28KB 220KB 1MB 55KB 440KB
使用する拡張ソケットの指定にはBUD_USE_DRIVE_XXXを必ず指定してください。 BUD_DRIVE_XXXを誤って指定することのないようにしてください。
buExit() メモリーカードファイルシステムの終了 buMountDisk() メモリーカードのマウント