FS_LoadArchive

構文

#include <nitro/fs.h>

BOOL FS_LoadArchive(FSArchive *p_arc,
u32 base, u32 fat, u32 fat_size, u32 fnt, u32 fnt_size,
FS_ARCHIVE_READ_FUNC read_func,
FS_ARCHIVE_WRITE_FUNC write_func);


引数

p_arc FSArchive構造体のアドレス
base アーカイブ固有のアドレス空間におけるベースオフセット値
これはアーカイブ実装の利便性のために用意されており、
FS_GetArchiveBase()で取得するだけのものです。
fat アーカイブ固有のアドレス空間におけるFATの先頭位置オフセット
fat_size アーカイブのFATバイトサイズ
fnt アーカイブ固有のアドレス空間におけるFNTの先頭位置オフセット
fnt_size アーカイブのFNTバイトサイズ
read_func アーカイブ固有のアドレス空間へリードアクセスするためのコールバック関数
このコールバックはアーカイブコマンドを内部で使用するFS関数の内部から呼び出されます。
write_func アーカイブ固有のアドレス空間へライトアクセスするためのコールバック関数
このコールバックはアーカイブコマンドを内部で使用するFS関数の内部から呼び出されます。

返り値

アーカイブが正しくファイルシステムにロードされた場合は TRUE を、そうでないなら FALSE を返します。

説明

指定された実装のもとに、アーカイブをファイルシステムへロードします。
アーカイブは、FS_RegisterArchiveName() で前もって名前を登録してある必要があります。

ファイルシステムは与えられた引数の組み合わせから、アーカイブに以下の動作を仮定します。

・アーカイブは read_func および write_func でのみアクセス可能なリニアメモリ状の固有なデータ構造を持つ
・アーカイブはfatの位置からfat_sizeバイト分の領域にTwlROMフォーマット準拠のFAT情報を持ち、read_func によってアクセスできる
・アーカイブはfntの位置からfnt_sizeバイト分の領域にTwlROMフォーマット準拠のFNT情報を持ち、read_func によってアクセスできる
・アーカイブはFAT情報で指定されるすべての範囲の領域にファイルデータを持ち、read_funcによってアクセスできる

関数の成功後、アーカイブはファイルシステムからコールバック経由でアクセスされます。
ロードしたアーカイブは FS_UnloadArchive()でアンロードすることができます。

この関数を呼び出す前に FS_SuspendArchive() で明示的にサスペンド状態へ設定していない場合、
関数の成功とともにアーカイブはファイルシステム内で有効な状態になります。

参照

FSArchive FS_ARCHIVE_NAME_LEN_MAX
FS_ReleaseArchiveName FS_UnloadArchive

履歴

2005/06/01 コールバックがFS関数の内部から呼び出される旨を補足
2004/11/02 リンク先訂正
2004/06/30 初版