# FS_ARCHIVE_READ_FUNC, FS_ARCHIVE_WRITE_FUNC

## 定義

  `#include <nitro/fs.h>`
  `typedef FSResult (*FS_ARCHIVE_READ_FUNC)(struct FSArchive *p, void *dst, u32 pos, u32 size);
  typedef FSResult (*FS_ARCHIVE_WRITE_FUNC)(struct FSArchive *p, const void *src, u32 pos, u32 size);
  `

## 説明

アーカイブに指定する基本アクセスコールバックの関数形式を定義します。
ファイルシステムはこの２つのコールバックとFATおよびFNT情報を使用することにより、
NitroROMフォーマットに基づいたリニアなメモリ空間の存在を仮定します。
ファイルシステムの全てのコマンドのデフォルト実装は、このコールバックで構築されています。
FS_ARCHIVE_READ_FUNCには、アーカイブオフセット pos の位置から size BYTE だけを
メモリバッファ dst へ読み出すための処理を行う関数を指定します。
FS_ARCHIVE_WRITE_FUNCには、アーカイブオフセット pos の位置から size BYTE だけを
メモリバッファ src の内容で書き込むための処理を行う関数を指定します。
いずれのコールバックも、呼び出しの中で処理が同期的に完了すれば FS_RESULT_SUCCESS を返し、
関数の外で非同期的に完了する場合は FS_RESULT_PROC_ASYNC を返す必要があります。
また、FS_RESULT_PROC_ASYNC を返した場合は、完了時に必ず `FS_NotifyArchiveAsyncEnd()` を呼び出す必要があります。

## 参照

`FSResult FSArchive
FS_LoadArchive FS_NotifyArchiveAsyncEnd`

## 履歴

2004/07/12 戻り値の型を変更
2004/06/30 初版