40#define XT_VFS_O_RDONLY 0x01
42#define XT_VFS_O_WRONLY 0x02
44#define XT_VFS_O_RDWR 0x04
46#define XT_VFS_O_CREAT 0x08
48#define XT_VFS_O_EXCL 0x10
50#define XT_VFS_O_TRUNC 0x20
52#define XT_VFS_O_APPEND 0x40
57#define XT_VFS_TYPE_REG 0x01
59#define XT_VFS_TYPE_DIR 0x02
61#define XT_VFS_TYPE_UNKNOWN 0xFF
66#define XT_VFS_F_OK 0x00
68#define XT_VFS_R_OK 0x04
70#define XT_VFS_W_OK 0x02
72#define XT_VFS_X_OK 0x01
77#define XT_VFS_S_IFMT 0xF000
79#define XT_VFS_S_IFREG 0x1000
81#define XT_VFS_S_IFDIR 0x2000
86#define XT_VFS_S_IRWXU 0x01C0
88#define XT_VFS_S_IRUSR 0x0100
90#define XT_VFS_S_IWUSR 0x0080
92#define XT_VFS_S_IXUSR 0x0040
94#define XT_VFS_S_IRWXG 0x0038
96#define XT_VFS_S_IRGRP 0x0020
98#define XT_VFS_S_IWGRP 0x0010
100#define XT_VFS_S_IXGRP 0x0008
102#define XT_VFS_S_IRWXO 0x0007
104#define XT_VFS_S_IROTH 0x0004
106#define XT_VFS_S_IWOTH 0x0002
108#define XT_VFS_S_IXOTH 0x0001
113#define XT_VFS_S_DEFAULT_FILE (XT_VFS_S_IFREG | XT_VFS_S_IRUSR | XT_VFS_S_IWUSR | XT_VFS_S_IRGRP | XT_VFS_S_IROTH)
115#define XT_VFS_S_DEFAULT_DIR (XT_VFS_S_IFDIR | XT_VFS_S_IRWXU | XT_VFS_S_IRGRP | XT_VFS_S_IXGRP | XT_VFS_S_IROTH | XT_VFS_S_IXOTH)
120#define XT_VFS_SEEK_SET 0
122#define XT_VFS_SEEK_CUR 1
124#define XT_VFS_SEEK_END 2
129#define XT_VFS_ERR_OK 0
131#define XT_VFS_ERR_EOF -1
133#define XT_VFS_ERR_NOTFOUND -2
135#define XT_VFS_ERR_EXIST -3
137#define XT_VFS_ERR_NOSPC -4
139#define XT_VFS_ERR_NOMEM -5
141#define XT_VFS_ERR_IO -6
143#define XT_VFS_ERR_INVAL -7
145#define XT_VFS_ERR_DENIED -8
147#define XT_VFS_ERR_NFILE -9
149#define XT_VFS_ERR_NOTDIR -10
151#define XT_VFS_ERR_ISDIR -11
153#define XT_VFS_ERR_NOTEMPTY -12
155#define XT_VFS_ERR_BUSY -13
157#define XT_VFS_ERR_NOSYS -14
160#define XT_VFS_INVALID_FD ((xt_vfs_fd_t)(-1))
xt_vfs_err_t xt_vfs_remove(const char *path)
删除文件
xt_vfs_dirent_t * xt_vfs_readdir(xt_vfs_dir_t *dir)
读取目录项
xt_vfs_err_t xt_vfs_seekdir(xt_vfs_dir_t *dir, xt_vfs_off_t loc)
设置目录读取位置
bool xt_vfs_is_active(void)
检查 VFS 实例是否已激活
struct xt_vfs_ops xt_vfs_ops_t
后端操作接口(前向声明)
int32_t xt_vfs_whence_t
寻址基准类型
int32_t xt_vfs_fd_t
文件描述符类型,内部编码 generation+index,由 VFS Core 生成,用户不应自行构造
xt_vfs_err_t xt_vfs_rmdir(const char *path)
删除空目录
xt_vfs_off_t xt_vfs_telldir(xt_vfs_dir_t *dir)
获取目录读取位置
xt_vfs_ssize_t xt_vfs_read(xt_vfs_fd_t fd, void *buf, xt_vfs_size_t size)
读取文件
xt_vfs_err_t xt_vfs_utime(const char *path, const xt_vfs_utimbuf_t *buf)
更新文件时间
struct xt_vfs_stat xt_vfs_stat_t
文件状态信息
xt_vfs_err_t xt_vfs_closedir(xt_vfs_dir_t *dir)
关闭目录
const char * xt_vfs_strerror(xt_vfs_err_t err)
获取错误码对应的字符串描述
xt_vfs_err_t xt_vfs_ftruncate(xt_vfs_fd_t fd, xt_vfs_off_t length)
截断已打开的文件
struct xt_vfs xt_vfs_t
VFS 实例(前向声明)
xt_vfs_err_t xt_vfs_init(const xt_vfs_config_t *config)
初始化 VFS 实例
xt_vfs_err_t xt_vfs_truncate(const char *path, xt_vfs_off_t length)
截断文件到指定大小
xt_vfs_err_t xt_vfs_unmount(const char *path)
卸载后端文件系统
struct xt_vfs_dirent xt_vfs_dirent_t
目录项信息
uint32_t xt_vfs_mode_t
文件模式类型(权限 + 类型)
xt_vfs_err_t xt_vfs_fstat(xt_vfs_fd_t fd, xt_vfs_stat_t *stat)
获取已打开文件的状态
xt_vfs_ssize_t xt_vfs_write(xt_vfs_fd_t fd, const void *buf, xt_vfs_size_t size)
写入文件
xt_vfs_err_t xt_vfs_mkdir(const char *path)
创建目录
int32_t xt_vfs_off_t
偏移量类型
xt_vfs_ssize_t xt_vfs_tell(xt_vfs_fd_t fd)
获取当前文件位置
xt_vfs_dir_t * xt_vfs_opendir(const char *path)
打开目录
xt_vfs_err_t xt_vfs_rewinddir(xt_vfs_dir_t *dir)
重置目录读取位置
xt_vfs_err_t xt_vfs_deinit(void)
销毁 VFS 实例
xt_vfs_err_t xt_vfs_chdir(const char *path)
切换当前工作目录
char * xt_vfs_getcwd(char *buf, xt_vfs_size_t size)
获取当前工作目录
xt_vfs_err_t xt_vfs_rename(const char *old_path, const char *new_path)
重命名文件
int32_t xt_vfs_err_t
错误码类型,详细错误码见 XT_VFS_ERR_* 系列宏
xt_vfs_err_t xt_vfs_fsync(xt_vfs_fd_t fd)
同步单个文件到存储设备
xt_vfs_err_t xt_vfs_sync_all(const char *path)
同步所有文件到存储设备
xt_vfs_err_t xt_vfs_access(const char *path, xt_vfs_mode_t amode)
检查文件访问权限
xt_vfs_ssize_t xt_vfs_seek(xt_vfs_fd_t fd, xt_vfs_off_t offset, xt_vfs_whence_t whence)
文件定位
xt_vfs_err_t xt_vfs_close(xt_vfs_fd_t fd)
关闭文件
xt_vfs_err_t xt_vfs_mount(const char *path, const xt_vfs_ops_t *ops, void *ctx)
挂载后端文件系统
xt_vfs_err_t xt_vfs_stat(const char *path, xt_vfs_stat_t *stat)
获取文件状态
uint32_t xt_vfs_time_t
时间类型(固定 32 位)
int32_t xt_vfs_ino_t
inode 编号类型
xt_vfs_err_t xt_vfs_errno(void)
获取当前线程的最后一个错误码
uint32_t xt_vfs_size_t
文件大小类型(无符号)
struct xt_vfs_dir xt_vfs_dir_t
目录句柄(opaque,内部字段不暴露)
struct xt_vfs_statfs xt_vfs_statfs_t
文件系统状态信息
xt_vfs_err_t xt_vfs_statfs(const char *path, xt_vfs_statfs_t *statfs)
获取文件系统状态
xt_vfs_fd_t xt_vfs_open(const char *path, xt_vfs_mode_t flags)
打开文件
struct xt_vfs_utimbuf xt_vfs_utimbuf_t
文件时间信息
int32_t xt_vfs_ssize_t
文件大小类型(有符号)
xt_vfs_off_t(* telldir)(void *ctx, void *dh)
获取目录读取位置
xt_vfs_err_t(* ftruncate)(void *ctx, void *fh, xt_vfs_off_t length)
截断已打开的文件
xt_vfs_ssize_t(* seek)(void *ctx, void *fh, xt_vfs_off_t offset, xt_vfs_whence_t whence)
文件定位
xt_vfs_ssize_t(* tell)(void *ctx, void *fh)
获取当前文件位置
xt_vfs_err_t(* mount)(void *ctx)
挂载后端
xt_vfs_err_t(* truncate)(void *ctx, const char *path, xt_vfs_off_t length)
截断文件到指定大小
xt_vfs_err_t(* open)(void *ctx, const char *path, xt_vfs_mode_t flags, void **fh)
打开文件
xt_vfs_err_t(* remove)(void *ctx, const char *path)
删除文件
xt_vfs_err_t(* fstat)(void *ctx, void *fh, xt_vfs_stat_t *stat)
获取已打开文件的状态
xt_vfs_err_t(* seekdir)(void *ctx, void *dh, xt_vfs_off_t loc)
设置目录读取位置
xt_vfs_err_t(* closedir)(void *ctx, void *dh)
关闭目录
xt_vfs_err_t(* access)(void *ctx, const char *path, xt_vfs_mode_t amode)
检查文件访问权限
xt_vfs_err_t(* unmount)(void *ctx)
卸载后端
xt_vfs_err_t(* mkdir)(void *ctx, const char *path)
创建目录
xt_vfs_err_t(* fsync)(void *ctx, void *fh)
同步单个文件到存储设备
xt_vfs_ssize_t(* read)(void *ctx, void *fh, void *buf, xt_vfs_size_t size)
读取文件
xt_vfs_err_t(* rmdir)(void *ctx, const char *path)
删除空目录
xt_vfs_err_t(* close)(void *ctx, void *fh)
关闭文件
xt_vfs_ssize_t(* write)(void *ctx, void *fh, const void *buf, xt_vfs_size_t size)
写入文件
xt_vfs_err_t(* sync_all)(void *ctx, const char *path)
同步所有文件到存储设备
xt_vfs_err_t(* utime)(void *ctx, const char *path, const xt_vfs_utimbuf_t *buf)
更新文件时间
xt_vfs_err_t(* opendir)(void *ctx, const char *path, void **dh)
打开目录
xt_vfs_err_t(* rename)(void *ctx, const char *old_path, const char *new_path)
重命名文件
xt_vfs_err_t(* stat)(void *ctx, const char *path, xt_vfs_stat_t *stat)
获取文件状态
xt_vfs_err_t(* statfs)(void *ctx, xt_vfs_statfs_t *statfs)
获取文件系统状态
xt_vfs 可移植层——锁宏、内存宏、线程上下文
struct xt_vfs_config xt_vfs_config_t
VFS 初始化配置
#define XT_VFS_FILENAME_MAX
最大文件名长度(含结尾 '\0')