ドライバの登録

新しいファイルシステムを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_FS_UnRegister

int SOLID_FS_UnRegister(SOLID_FS_HANDLER *pHandler)

ドライバの登録を解除します

パラメータ:pHandler – 登録用構造体
戻り値: