Initial commit

This commit is contained in:
2025-11-06 10:49:44 +08:00
commit 2d16528ac4
20 changed files with 4653 additions and 0 deletions

33
include/fuse_ops.h Normal file
View File

@@ -0,0 +1,33 @@
#pragma once
#include <fuse_lowlevel.h>
#include <fuse.h>
#include "simplefs_context.h"
#include "simplefs.h"
// 获取文件系统上下文
SimpleFS_Context* get_fs_context();
// FUSE操作实现
int simplefs_getattr(const char *path, struct stat *stbuf);
int simplefs_readdir(const char *path, void *buf, fuse_fill_dir_t filler,
off_t offset, struct fuse_file_info *fi);
int simplefs_mknod(const char *path, mode_t mode, dev_t rdev);
int simplefs_mkdir(const char *path, mode_t mode);
int simplefs_unlink(const char *path);
int simplefs_rmdir(const char *path);
int simplefs_read(const char *path, char *buf, size_t size, off_t offset,
struct fuse_file_info *fi);
int simplefs_write(const char *path, const char *buf, size_t size, off_t offset,
struct fuse_file_info *fi);
int simplefs_truncate(const char *path, off_t size);
int simplefs_chmod(const char *path, mode_t mode);
int simplefs_chown(const char *path, uid_t uid, gid_t gid);
int simplefs_utimens(const char *path, const struct timespec tv[2]);
int simplefs_access(const char *path, int mask);
int simplefs_statfs(const char *path, struct statvfs *stbuf);
int simplefs_symlink(const char *target, const char *linkpath);
int simplefs_readlink(const char *path, char *buf, size_t size);
// 初始化FUSE操作结构
void init_fuse_operations(struct fuse_operations *ops);