ドライバの登録¶
新しいファイルシステムをSOLIDに追加する場合、solid_fs_driver.h にある、
SOLID_FS_Register 関数を使って登録してください。
#include "solid_fs_driver.h"
データタイプ¶
SOLID_FS_HANDLER¶
-
typedef struct _SOLID_FS_HANDLER_ SOLID_FS_HANDLER¶
-
struct _SOLID_FS_HANDLER_¶
説明
ファイルシステムの登録用構造体
定義
typedef struct _SOLID_FS_HANDLER_ { struct _SOLID_FS_HANDLER_ * pNext; size_t mlen; char mount[SOLID_MAX_PATH]; void* param; /* 常に第一引数に渡されるパラメータ */ int (*open)(void*,void**, const char*, int); /* File Open */ int (*close)(void*,void*); /* File Close */ int (*read)(void*,void*,void*,size_t,size_t*); /* File Read */ int (*write)(void*,void*,const void*,size_t,size_t*); /* File Write */ int (*lseek)(void*,void*,off_t); /* File Seek */ int (*sync)(void*,void*); /* File Sync */ int (*ftell)(void*,void*, off_t*); /* File Ftell */ int (*eof)(void*,void*, int*); /* File EOF */ int (*fsize)(void*,void*, size_t*); /* File Size */ int (*truncate)(void*,const char*, off_t); /* File Truncate */ int (*opendir)(void*,const char*, void**); /* Dir Open */ int (*closedir)(void*,void*); /* Dir Close */ int (*readdir)(void*,void*,struct dirent*); /* Dir Read */ int (*stat)(void*,const char*, struct stat*); /* File/Dir Stat */ int (*unlink)(void*,const char*); /* File/Dir Delete */ int (*rename)(void*,const char*,const char*); /* File/Dir Rename */ int (*chmod)(void*,const char*, int); /* File/Dir Chmod */ int (*utime)(void*,const char*, time_t); /* File/Dir Utime */ int (*mkdir)(void*,const char*); /* Dir Mkdir */ /* SOLIDが設定する関数 */ void* (*malloc)(size_t size); /* malloc */ void (*free)(void*); /* free */ } SOLID_FS_HANDLER;
メンバー
-
struct _SOLID_FS_HANDLER_ *pNext¶
-
size_t mlen¶
コアサービスが使用します。
-
char mount[SOLID_MAX_PATH]¶
ファイルシステムの識別に使用するprefix(例: FATFS)を格納してください。
-
void *param¶
各関数を呼び出す際、常に第一引数として渡されるパラメータです。 ドライバ側で任意に利用できます。
-
int (*open)(void*, void**, const char*, int)¶
-
int (*close)(void*, void*)¶
-
int (*read)(void*, void*, void*, size_t, size_t*)¶
-
int (*write)(void*, void*, const void*, size_t, size_t*)¶
-
int (*lseek)(void*, void*, off_t)¶
-
int (*sync)(void*, void*)¶
-
int (*ftell)(void*, void*, off_t*)¶
-
int (*eof)(void*, void*, int*)¶
-
int (*fsize)(void*, void*, size_t*)¶
-
int (*truncate)(void*, const char*, off_t)¶
-
int (*opendir)(void*, const char*, void**)¶
-
int (*closedir)(void*, void*)¶
-
int (*readdir)(void*, void*, struct dirent*)¶
-
int (*stat)(void*, const char*, struct stat*)¶
-
int (*unlink)(void*, const char*)¶
-
int (*rename)(void*, const char*, const char*)¶
-
int (*chmod)(void*, const char*, int)¶
-
int (*utime)(void*, const char*, time_t)¶
-
int (*mkdir)(void*, const char*)¶
ファイルシステムが提供する関数を登録してください。 サポートされない関数はNULLを指定してください。 各関数の第一引数には
paramが渡されます。
-
struct _SOLID_FS_HANDLER_ *pNext¶
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: 正常終了それ以外: エラー