picox  0.1

RAM上に作成するファイルシステムモジュールです [詳解]

Xramfs 連携図

データ構造

struct  XRamFs
 

マクロ定義

#define X_RAMFS_TAG   (X_MAKE_TAG('X', 'R', 'A', 'F'))
 

関数

XError xramfs_chdir (XRamFs *fs, const char *path)
 
XError xramfs_close (XFile *fp)
 
XError xramfs_closedir (XDir *dir)
 
void xramfs_deinit (XRamFs *fs)
 ファイルシステムの終了処理を行います [詳解]
 
XError xramfs_flush (XFile *fp)
 
XError xramfs_getcwd (XRamFs *fs, char *buf, size_t size)
 
XError xramfs_init (XRamFs *fs, void *mem, size_t size)
 ファイルシステムを初期化します [詳解]
 
XStreamxramfs_init_stream (XStream *stream, XFile *fp)
 
void xramfs_init_vfs (XRamFs *fs, XVirtualFs *vfs)
 仮想ファイルシステムを初期化します [詳解]
 
XError xramfs_mkdir (XRamFs *fs, const char *path)
 
XError xramfs_open (XRamFs *fs, const char *path, XOpenMode mode, XFile **o_fp)
 
XError xramfs_opendir (XRamFs *fs, const char *path, XDir **o_dir)
 
XError xramfs_read (XFile *fp, void *dst, size_t size, size_t *nread)
 
XError xramfs_readdir (XDir *dir, XDirEnt *dirent, XDirEnt **result)
 
XError xramfs_remove (XRamFs *fs, const char *path)
 
XError xramfs_rename (XRamFs *fs, const char *oldpath, const char *newpath)
 
XError xramfs_seek (XFile *fp, XOffset pos, XSeekMode whence)
 
XError xramfs_stat (XRamFs *fs, const char *path, XStat *statbuf)
 
XError xramfs_tell (XFile *fp, XSize *pos)
 
XError xramfs_utime (XRamFs *fs, const char *path, XTime time)
 
XError xramfs_write (XFile *fp, const void *src, size_t size, size_t *nwritten)
 

詳解

RAM上に作成するファイルシステムモジュールです

RAM上に作成するので当然再起動するたびにクリアされます。 毎回クリアされるとしても、ファイルインターフェースを通してデータのやりとり をしたい、できた方が便利、という局面はそれなりにあるものです。

FatFs等のファイルシステムドライバでRAM上にファイルシステムを構築することも できますが、通常のファイルシステムはある程度大容量(MByte以上)のブロックデバ イスの使用が前提に前提になっているため、数KByteのRAMでは使用できません。

このファイルシステムははじめからRAMの特性に合わせて設計されているため、百 バイトの極小のRAMファイルシステムを構築することも可能です。

参照
Xunionfs
Xvfs

関数詳解

void xramfs_deinit ( XRamFs fs)

ファイルシステムの終了処理を行います

事前条件
  • fs != NULL
XError xramfs_init ( XRamFs fs,
void *  mem,
size_t  size 
)

ファイルシステムを初期化します

引数
memRAMファイルシステムに使用するメモリ
sizememのバイト数
事前条件
  • fs != NULL
  • size > 0

memがNULLを指すときは、ヒープからsizeバイトのメモリを確保します。

void xramfs_init_vfs ( XRamFs fs,
XVirtualFs vfs 
)

仮想ファイルシステムを初期化します

事前条件
  • fs != NULL
  • vfs != NULL