picox  0.1
xromfs.c ファイル

RAMファイルシステム実装 [詳解]

xromfs.c の依存先関係図:

マクロ定義

#define X__ASSERT_TAG(p)    (X_ASSERT_TAG(((const XRomFs*)p)->m_tag == X_ROMFS_TAG))
 
#define X__DATA_OFFSET   (20)
 
#define X__DATA_SIZE   (24)
 
#define X__EXIT_IF(cond, v)    X_ASSIGN_AND_GOTO_IF(cond, err, v, x__exit)
 
#define X__FIRST_CHILD_OFFSET   (20)
 
#define X__FLAGS   (0)
 
#define X__GET_DIR_HANDLE(dir)   ((X__Dir*)dir)
 
#define X__GET_FILE_HANDLE(fp)   ((X__File*)fp)
 
#define X__GET_PTR_FROM_OFFSET(ptr)    (fs->m_top + X__LOAD_U32(ptr))
 
#define X__INVALID   (UINT32_MAX)
 
#define X__LOAD_U16(ptr)    X_LOAD_U16_LIT(ptr)
 
#define X__LOAD_U32(ptr)    X_LOAD_U32_LIT(ptr)
 
#define X__LOAD_U32_FROM_OFFSET(ptr)    X__LOAD_U32(X__GET_PTR_FROM_OFFSET(ptr))
 
#define X__NAME_OFFSET   (12)
 
#define X__PARENT_OFFSET   (4)
 
#define X__SIBLING_OFFSET   (8)
 
#define X__TIMESTAMP   (16)
 
#define X__TYPE_DIR   (0)
 
#define X__TYPE_FILE   (1)
 

関数

static XError X__FindEntry (const XRomFs *fs, const char *path, char const **o_ent)
 
XError xromfs_chdir (XRomFs *fs, const char *path)
 
XError xromfs_close (XFile *fp)
 
XError xromfs_closedir (XDir *dir)
 
void xromfs_deinit (XRomFs *fs)
 ファイルシステムの終了処理を行います [詳解]
 
XError xromfs_flush (XFile *fp)
 
XError xromfs_getcwd (XRomFs *fs, char *buf, size_t size)
 
XError xromfs_init (XRomFs *fs, const void *romimage)
 ファイルシステムを初期化します [詳解]
 
XStreamxromfs_init_stream (XStream *stream, XFile *fp)
 
void xromfs_init_vfs (XRomFs *fs, XVirtualFs *vfs)
 仮想ファイルシステムを初期化します [詳解]
 
XError xromfs_open (XRomFs *fs, const char *path, XOpenMode mode, XFile **o_fp)
 
XError xromfs_opendir (XRomFs *fs, const char *path, XDir **o_dir)
 
XError xromfs_read (XFile *fp, void *dst, size_t size, size_t *nread)
 
XError xromfs_readdir (XDir *dir, XDirEnt *dirent, XDirEnt **result)
 
XError xromfs_seek (XFile *fp, XOffset pos, XSeekMode whence)
 
XError xromfs_stat (XRomFs *fs, const char *path, XStat *statbuf)
 
XError xromfs_tell (XFile *fp, XSize *pos)
 

詳解

RAMファイルシステム実装

著者
MaskedW