23 #include <sys/types.h> 25 #include <sys/statvfs.h> 83 const struct stat *stbuf, off_t off,
253 double ac_attr_timeout;
311 int (*getattr) (
const char *,
struct stat *,
struct fuse_file_info *fi);
321 int (*readlink) (
const char *,
char *, size_t);
329 int (*mknod) (
const char *, mode_t, dev_t);
337 int (*mkdir) (
const char *, mode_t);
340 int (*unlink) (
const char *);
343 int (*rmdir) (
const char *);
346 int (*symlink) (
const char *,
const char *);
357 int (*rename) (
const char *,
const char *,
unsigned int flags);
360 int (*link) (
const char *,
const char *);
377 int (*chown) (
const char *, uid_t, gid_t,
struct fuse_file_info *fi);
447 int (*read) (
const char *,
char *, size_t, off_t,
459 int (*write) (
const char *,
const char *, size_t, off_t,
466 int (*statfs) (
const char *,
struct statvfs *);
520 int (*setxattr) (
const char *,
const char *,
const char *, size_t, int);
523 int (*getxattr) (
const char *,
const char *,
char *, size_t);
526 int (*listxattr) (
const char *,
char *, size_t);
529 int (*removexattr) (
const char *,
const char *);
586 void (*destroy) (
void *private_data);
597 int (*access) (
const char *, int);
656 int (*utimens) (
const char *,
const struct timespec tv[2],
657 struct fuse_file_info *fi);
665 int (*bmap) (
const char *,
size_t blocksize, uint64_t *idx);
683 #if FUSE_USE_VERSION < 35 684 int (*ioctl) (
const char *,
int cmd,
void *arg,
685 struct fuse_file_info *,
unsigned int flags,
void *data);
687 int (*ioctl) (
const char *,
unsigned int cmd,
void *arg,
688 struct fuse_file_info *,
unsigned int flags,
void *data);
706 int (*poll) (
const char *,
struct fuse_file_info *,
707 struct fuse_pollhandle *ph,
unsigned *reventsp);
719 struct fuse_file_info *);
735 int (*read_buf) (
const char *,
struct fuse_bufvec **bufp,
736 size_t size, off_t
off,
struct fuse_file_info *);
755 int (*flock) (
const char *,
struct fuse_file_info *,
int op);
765 int (*fallocate) (
const char *, int, off_t, off_t,
766 struct fuse_file_info *);
780 ssize_t (*copy_file_range) (
const char *path_in,
781 struct fuse_file_info *fi_in,
782 off_t offset_in,
const char *path_out,
783 struct fuse_file_info *fi_out,
784 off_t offset_out,
size_t size,
int flags);
789 off_t (*lseek) (
const char *, off_t off,
int whence,
struct fuse_file_info *);
875 #define fuse_main(argc, argv, op, private_data) \ 876 fuse_main_real(argc, argv, op, sizeof(*(op)), private_data) 922 #if FUSE_USE_VERSION == 30 924 size_t op_size,
void *private_data);
925 #define fuse_new(args, op, size, data) fuse_new_30(args, op, size, data) 928 size_t op_size,
void *private_data);
939 int fuse_mount(
struct fuse *f,
const char *mountpoint);
1018 #if FUSE_USE_VERSION < 32 1020 #define fuse_loop_mt(f, clone_fd) fuse_loop_mt_31(f, clone_fd) 1131 int fuse_fs_getattr(
struct fuse_fs *fs,
const char *path,
struct stat *buf,
1133 int fuse_fs_rename(
struct fuse_fs *fs,
const char *oldpath,
1134 const char *newpath,
unsigned int flags);
1135 int fuse_fs_unlink(
struct fuse_fs *fs,
const char *path);
1136 int fuse_fs_rmdir(
struct fuse_fs *fs,
const char *path);
1137 int fuse_fs_symlink(
struct fuse_fs *fs,
const char *linkname,
1139 int fuse_fs_link(
struct fuse_fs *fs,
const char *oldpath,
const char *newpath);
1140 int fuse_fs_release(
struct fuse_fs *fs,
const char *path,
1142 int fuse_fs_open(
struct fuse_fs *fs,
const char *path,
1144 int fuse_fs_read(
struct fuse_fs *fs,
const char *path,
char *buf,
size_t size,
1146 int fuse_fs_read_buf(
struct fuse_fs *fs,
const char *path,
1147 struct fuse_bufvec **bufp,
size_t size, off_t off,
1149 int fuse_fs_write(
struct fuse_fs *fs,
const char *path,
const char *buf,
1151 int fuse_fs_write_buf(
struct fuse_fs *fs,
const char *path,
1154 int fuse_fs_fsync(
struct fuse_fs *fs,
const char *path,
int datasync,
1156 int fuse_fs_flush(
struct fuse_fs *fs,
const char *path,
1158 int fuse_fs_statfs(
struct fuse_fs *fs,
const char *path,
struct statvfs *buf);
1159 int fuse_fs_opendir(
struct fuse_fs *fs,
const char *path,
1161 int fuse_fs_readdir(
struct fuse_fs *fs,
const char *path,
void *buf,
1164 int fuse_fs_fsyncdir(
struct fuse_fs *fs,
const char *path,
int datasync,
1166 int fuse_fs_releasedir(
struct fuse_fs *fs,
const char *path,
1168 int fuse_fs_create(
struct fuse_fs *fs,
const char *path, mode_t mode,
1170 int fuse_fs_lock(
struct fuse_fs *fs,
const char *path,
1172 int fuse_fs_flock(
struct fuse_fs *fs,
const char *path,
1174 int fuse_fs_chmod(
struct fuse_fs *fs,
const char *path, mode_t mode,
1176 int fuse_fs_chown(
struct fuse_fs *fs,
const char *path, uid_t uid, gid_t gid,
1178 int fuse_fs_truncate(
struct fuse_fs *fs,
const char *path, off_t size,
1180 int fuse_fs_utimens(
struct fuse_fs *fs,
const char *path,
1182 int fuse_fs_access(
struct fuse_fs *fs,
const char *path,
int mask);
1183 int fuse_fs_readlink(
struct fuse_fs *fs,
const char *path,
char *buf,
1185 int fuse_fs_mknod(
struct fuse_fs *fs,
const char *path, mode_t mode,
1187 int fuse_fs_mkdir(
struct fuse_fs *fs,
const char *path, mode_t mode);
1188 int fuse_fs_setxattr(
struct fuse_fs *fs,
const char *path,
const char *name,
1189 const char *value,
size_t size,
int flags);
1190 int fuse_fs_getxattr(
struct fuse_fs *fs,
const char *path,
const char *name,
1191 char *value,
size_t size);
1192 int fuse_fs_listxattr(
struct fuse_fs *fs,
const char *path,
char *list,
1194 int fuse_fs_removexattr(
struct fuse_fs *fs,
const char *path,
1196 int fuse_fs_bmap(
struct fuse_fs *fs,
const char *path,
size_t blocksize,
1198 #if FUSE_USE_VERSION < 35 1199 int fuse_fs_ioctl(
struct fuse_fs *fs,
const char *path,
int cmd,
1203 int fuse_fs_ioctl(
struct fuse_fs *fs,
const char *path,
unsigned int cmd,
1207 int fuse_fs_poll(
struct fuse_fs *fs,
const char *path,
1209 unsigned *reventsp);
1210 int fuse_fs_fallocate(
struct fuse_fs *fs,
const char *path,
int mode,
1212 ssize_t fuse_fs_copy_file_range(
struct fuse_fs *fs,
const char *path_in,
1214 const char *path_out,
1216 size_t len,
int flags);
1217 off_t fuse_fs_lseek(
struct fuse_fs *fs,
const char *path, off_t off,
int whence,
1219 void fuse_fs_init(
struct fuse_fs *fs,
struct fuse_conn_info *conn,
1221 void fuse_fs_destroy(
struct fuse_fs *fs);
1223 int fuse_notify_poll(
struct fuse_pollhandle *ph);
1239 void *private_data);
1255 typedef struct fuse_fs *(*fuse_module_factory_t)(
struct fuse_args *args,
1256 struct fuse_fs *fs[]);
1267 #define FUSE_REGISTER_MODULE(name_, factory_) \ 1268 fuse_module_factory_t fuse_module_ ## name_ ## _factory = factory_ int fuse_main_real(int argc, char *argv[], const struct fuse_operations *op, size_t op_size, void *private_data)
int fuse_invalidate_path(struct fuse *f, const char *path)
struct fuse_session * fuse_get_session(struct fuse *f)
int fuse_open_channel(const char *mountpoint, const char *options)
struct fuse_fs * fuse_fs_new(const struct fuse_operations *op, size_t op_size, void *private_data)
int fuse_clean_cache(struct fuse *fuse)
struct fuse_context * fuse_get_context(void)
void fuse_lib_help(struct fuse_args *args)
int fuse_loop(struct fuse *f)
int fuse_interrupted(void)
struct fuse * fuse_new(struct fuse_args *args, const struct fuse_operations *op, size_t op_size, void *private_data)
void fuse_exit(struct fuse *f)
void fuse_stop_cleanup_thread(struct fuse *fuse)
void fuse_unmount(struct fuse *f)
int fuse_getgroups(int size, gid_t list[])
int fuse_mount(struct fuse *f, const char *mountpoint)
void fuse_destroy(struct fuse *f)
int(* fuse_fill_dir_t)(void *buf, const char *name, const struct stat *stbuf, off_t off, enum fuse_fill_dir_flags flags)
int fuse_start_cleanup_thread(struct fuse *fuse)
int fuse_loop_mt_31(struct fuse *f, int clone_fd)