##### Shinobi Library - ペリフェラル・記録デバイス関数

# buInit

メモリーカードファイルシステムの初期化

### 書式

> `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には次の値が指定可能です。
> - BUD_CAPACITY_128KB
> - BUD_CAPACITY_256KB
> - BUD_CAPACITY_512KB
> - BUD_CAPACITY_1MB
> 拡張ソケットの番号driveには次の値が指定できます。

> 定義 | 意味
> 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() | メモリーカードのマウント

buInit

COPYRIGHT © SEGA ENTERPRISES, LTD., 1998-2000