Sint32 buDefragDisk( drive, work )
Sint32 drive
void *work
drive 拡張ソケットの番号 work ワークバッファ(512バイト)
BUD_ERR_OK 処理要求を受けつけた BUD_ERR_BUSY 処理中のため要求を受けつけられなかった
実行ファイル書き込みエリアを確保するために、メモリーカード内のメモリの最適化を行います。拡張ソケットの番号driveには次の値が指定できます。
定義 意味 BUD_DRIVE_A1 コントロールポートAの拡張ソケット1 BUD_DRIVE_A2 コントロールポートAの拡張ソケット2 BUD_DRIVE_B1 コントロールポートBの拡張ソケット1 BUD_DRIVE_B2 コントロールポートBの拡張ソケット2 BUD_DRIVE_C1 コントロールポートCの拡張ソケット1 BUD_DRIVE_C2 コントロールポートCの拡張ソケット2 BUD_DRIVE_D1 コントロールポートDの拡張ソケット1 BUD_DRIVE_D2 コントロールポートDの拡張ソケット2
ワークバッファworkには、ワークエリアとして 512バイトを与えてください。
実行ファイルのセーブには十分な空き容量があるが、 セーブに必要な連続した空き容量が確保できない場合にこの関数を使います。
Sint32 ret; Uint32 DefragWork[512 / sizeof(Uint32)]; ret = buDefragDisk(BUD_DRIVE_A1, DefragWork); if (ret != BUD_ERR_OK) return NG; while (buStat(BUD_DRIVE_A1) == BUD_STAT_BUSY) { } if (buGetLastError(BUD_DRIVE_A1) != BUD_ERR_OK) return NG; return OK;
最適化処理中はworkで示されるワークバッファの内容を書き換えないでください。また、workには必ず4バイト境界で512バイトのバッファを与えるようにしてください。
この関数の実行中にメモリーカードが抜かれると、ほとんどの場合すべてのデータが消失してしまいます。 アプリケーションプログラムは、この関数の実行中はメモリーカードの抜き挿しを決して行わないよう、 何らかの方法でプレーヤーに促してください。