ドライバの登録
新しいファイルシステムをSOLIDに追加する場合、solid_fs_driver.h にある、
SOLID_FS_Register()
関数を使って登録してください。
#include "solid_fs_driver.h"
データタイプ
SOLID_FS_HANDLER
-
typedef struct _SOLID_FS_HANDLER_ SOLID_FS_HANDLER
説明
ファイルシステムの登録用構造体
定義
typedef struct _SOLID_FS_HANDLER_ { struct _SOLID_FS_HANDLER_ * pNext; size_t mlen; char mount[SOLID_MAX_PATH]; int (*open)(void**, const char*, int); /* File Open */ int (*close)(void*); /* File Close */ int (*read)(void*,void*,size_t,size_t*); /* File Read */ int (*write)(void*,const void*,size_t,size_t*); /* File Write */ int (*lseek)(void*,off_t); /* File Seek */ int (*sync)(void*); /* File Sync */ int (*ftell)(void*, off_t*); /* File Ftell */ int (*eof)(void*, int*); /* File EOF */ int (*fsize)(void*, size_t*); /* File Size */ int (*truncate)(const char*, off_t); /* File Truncate */ int (*opendir)(const char*, void**); /* Dir Open */ int (*closedir)(void*); /* Dir Close */ int (*readdir)(void*,struct dirent*); /* Dir Read */ int (*stat)(const char*, struct stat*); /* File/Dir Stat */ int (*unlink)(const char*); /* File/Dir Delete */ int (*rename)(const char*,const char*); /* File/Dir Rename */ int (*chmod)(const char*, int); /* File/Dir Chmod */ int (*utime)(const char*, time_t); /* File/Dir Utime */ int (*mkdir)(const char*); /* Dir Mkdir */ /* SOLIDが設定する関数 */ void* (*malloc)(size_t size); /* malloc */ void (*free)(void*); /* free */ } SOLID_FS_HANDLER;
メンバー
- pNext, mlen
コアサービスが使用します。
- mount
ファイルシステムの識別に使用するprefix(例: FATFS)を格納してください。
- open~mkdir
ファイルシステムが提供する関数を登録してください。 サポートされない関数はNULLを指定してください。
- malloc, free
コアサービスが提供する動的メモリ関数です。ドライバ内のメモリの確保、解放は こちらを使用してください。
API
SOLID_FS_Register
-
int SOLID_FS_Register(SOLID_FS_HANDLER *pHandler)
ファイルシステム用ドライバを登録します
- パラメータ:
pHandler -- 登録用構造体
- 戻り値:
SOLID_ERR_OK
: 正常終了それ以外: エラー
SOLID_FS_UnRegister
-
int SOLID_FS_UnRegister(SOLID_FS_HANDLER *pHandler)
ドライバの登録を解除します
- パラメータ:
pHandler -- 登録用構造体
- 戻り値:
SOLID_ERR_OK
: 正常終了それ以外: エラー