FSCommandType

定義

#include <nitro/fs.h>

typedef	enum {
	FS_COMMAND_ASYNC_BEGIN = 0,
	FS_COMMAND_READFILE = FS_COMMAND_ASYNC_BEGIN,
	FS_COMMAND_WRITEFILE,
	FS_COMMAND_ASYNC_END,

	FS_COMMAND_SYNC_BEGIN = FS_COMMAND_ASYNC_END,
	FS_COMMAND_SEEKDIR = FS_COMMAND_SYNC_BEGIN,
	FS_COMMAND_READDIR,
	FS_COMMAND_FINDPATH,
	FS_COMMAND_GETPATH,
	FS_COMMAND_OPENFILEFAST,
	FS_COMMAND_OPENFILEDIRECT,
	FS_COMMAND_CLOSEFILE,
	FS_COMMAND_SYNC_END,

	FS_COMMAND_STATUS_BEGIN = FS_COMMAND_SYNC_END,
	FS_COMMAND_ACTIVATE = FS_COMMAND_STATUS_BEGIN,
	FS_COMMAND_IDLE,
	FS_COMMAND_STATUS_END,

	FS_COMMAND_INVALID

} FSCommandType;



説明

アーカイブに対してファイルシステムが送るコマンドを表現する列挙型です。
以下のように定義されます。

FS_COMMAND_STATUS_BEGIN アーカイブ状態の変更に関するメッセージコマンドIDの先頭を表します。
FS_COMMAND_STATUS_END アーカイブ状態の変更に関するメッセージコマンドIDの終端 + 1 を表します。
以下は、FS_COMMAND_STATUS_BEGIN 〜 FS_COMMAND_STATUS_END に含まれるメッセージです。
FS_COMMAND_ACTIVATE アイドル状態のアーカイブが最初の処理を始める前に発生します。
FS_COMMAND_IDLE アーカイブが最後の処理を終えアイドル状態になった後に発生します。
FS_COMMAND_SYNC_BEGIN 同期系コマンドIDの先頭を表します。
FS_COMMAND_SYNC_END 同期系コマンドIDの終端 + 1 を表します。
以下は、FS_COMMAND_SYNC_BEGIN 〜 FS_COMMAND_SYNC_END に含まれるメッセージです。
FS_COMMAND_SEEKDIR ディレクトリ位置を検索する必要のある関数からのコマンドとして発生します。
FS_COMMAND_READDIR ディレクトリエントリを読み出す必要のある関数からのコマンドとして発生します。
FS_COMMAND_OPENFILEDIRECT 領域の直接指定によってファイルを開く必要のある関数からのコマンドとして発生します。
FS_COMMAND_OPENFILEFAST ファイルIDによってファイルを開く必要のある関数からのコマンドとして発生します。
FS_COMMAND_CLOSEFILE ファイルを閉じる必要のある関数からのコマンドとして発生します。
FS_COMMAND_FINDPATH パス名でファイルやディレクトリを特定する関数からのコマンドとして発生します。
FS_COMMAND_GETPATH フルパス名またはその長さを必要とする関数からのコマンドとして発生します。
FS_COMMAND_ASYNC_BEGIN 非同期系コマンドIDの先頭を表します。
FS_COMMAND_ASYNC_END 非同期系コマンドIDの終端 + 1 を表します。
以下は、FS_COMMAND_ASYNC_BEGIN 〜 FS_COMMAND_ASYNC_END に含まれるメッセージです。
FS_COMMAND_READFILE ファイルへのリードアクセスを行う必要のある関数からのコマンドとして発生します。
FS_COMMAND_WRITEFILE ファイルへのライトアクセスを行う必要のある関数からのコマンドとして発生します。
FS_COMMAND_INVALID 不正なコマンドを表す内部定数として用意されています。

非同期コマンドは、単にアーカイブのコールバック関数を1回呼び出すことで完了するコマンドです。
同期コマンドは、コールバック関数の呼び出しに加えて何らかの処理を行う必要があるコマンドです。

デフォルトの実装における同期コマンドには依存関係があり、一部のコマンドは内部で下位コマンドを使用します。
コマンド間の依存関係はおおむね以下のとおりです。

No. コマンド 使用するコマンドおよびアーカイブ情報
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1 ( FS_ARCHIVE_READ_FUNC )
2 ( FS_ARCHIVE_WRITE_FUNC )
3 ( FAT 情報 )
4 ( FNT 情報 )
5 FS_COMMAND_ACTIVATE
6 FS_COMMAND_IDLE
7 FS_COMMAND_SEEKDIR Yes Yes
8 FS_COMMAND_READDIR Yes Yes
9 FS_COMMAND_OPENFILEDIRECT
10 FS_COMMAND_OPENFILEFAST Yes Yes Yes
11 FS_COMMAND_CLOSEFILE
12 FS_COMMAND_FINDPATH Yes Yes
13 FS_COMMAND_GETPATH Yes Yes
14 FS_COMMAND_READFILE Yes
15 FS_COMMAND_WRITEFILE Yes


参照

FSArchive FS_ARCHIVE_PROC_FUNC
FS_SetArchiveProc

履歴

2009/04/10 表中で使用する記号を標準的な表記に置き換え。
2004/07/12 コマンドに関する記述全体を修正
2004/06/30 初版