libfuse
fuse.h
Go to the documentation of this file.
1/*
2 FUSE: Filesystem in Userspace
3 Copyright (C) 2001-2007 Miklos Szeredi <miklos@szeredi.hu>
4
5 This program can be distributed under the terms of the GNU LGPLv2.
6 See the file COPYING.LIB.
7*/
8
9#ifndef FUSE_H_
10#define FUSE_H_
11
19#include "fuse_common.h"
20
21#include <fcntl.h>
22#include <time.h>
23#include <sys/types.h>
24#include <sys/stat.h>
25#include <sys/statvfs.h>
26#include <sys/uio.h>
27
28#ifdef __cplusplus
29extern "C" {
30#endif
31
32/* ----------------------------------------------------------- *
33 * Basic FUSE API *
34 * ----------------------------------------------------------- */
35
37struct fuse;
38
52 FUSE_READDIR_PLUS = (1 << 0)
53};
54
69 FUSE_FILL_DIR_PLUS = (1 << 1)
70};
71
87typedef int (*fuse_fill_dir_t) (void *buf, const char *name,
88 const struct stat *stbuf, off_t off,
89 enum fuse_fill_dir_flags flags);
106 int32_t set_gid;
107 uint32_t gid;
108
113 int32_t set_uid;
114 uint32_t uid;
115
120 int32_t set_mode;
121 uint32_t umask;
122
128
138
144
148 int32_t intr;
149
155 int32_t intr_signal;
156
167 int32_t remember;
168
185 int32_t hard_remove;
186
198 int32_t use_ino;
199
207 int32_t readdir_ino;
208
226 int32_t direct_io;
227
246
253 int32_t auto_cache;
254
255 /*
256 * The timeout in seconds for which file attributes are cached
257 * for the purpose of checking if auto_cache should flush the
258 * file data on open.
259 */
260 int32_t ac_attr_timeout_set;
261 double ac_attr_timeout;
262
273 int32_t nullpath_ok;
274
279 int32_t show_help;
280 char *modules;
281 int32_t debug;
282
288 uint32_t fmask;
289 uint32_t dmask;
290
298
313
314
318 uint32_t flags;
319
323 uint64_t reserved[48];
324};
325
326
361 int (*getattr) (const char *, struct stat *, struct fuse_file_info *fi);
362
371 int (*readlink) (const char *, char *, size_t);
372
379 int (*mknod) (const char *, mode_t, dev_t);
380
387 int (*mkdir) (const char *, mode_t);
388
390 int (*unlink) (const char *);
391
393 int (*rmdir) (const char *);
394
396 int (*symlink) (const char *, const char *);
397
407 int (*rename) (const char *, const char *, unsigned int flags);
408
410 int (*link) (const char *, const char *);
411
417 int (*chmod) (const char *, mode_t, struct fuse_file_info *fi);
418
427 int (*chown) (const char *, uid_t, gid_t, struct fuse_file_info *fi);
428
437 int (*truncate) (const char *, off_t, struct fuse_file_info *fi);
438
486 int (*open) (const char *, struct fuse_file_info *);
487
497 int (*read) (const char *, char *, size_t, off_t,
498 struct fuse_file_info *);
499
509 int (*write) (const char *, const char *, size_t, off_t,
510 struct fuse_file_info *);
511
516 int (*statfs) (const char *, struct statvfs *);
517
546 int (*flush) (const char *, struct fuse_file_info *);
547
560 int (*release) (const char *, struct fuse_file_info *);
561
567 int (*fsync) (const char *, int, struct fuse_file_info *);
568
570 int (*setxattr) (const char *, const char *, const char *, size_t, int);
571
573 int (*getxattr) (const char *, const char *, char *, size_t);
574
576 int (*listxattr) (const char *, char *, size_t);
577
579 int (*removexattr) (const char *, const char *);
580
589 int (*opendir) (const char *, struct fuse_file_info *);
590
613 int (*readdir) (const char *, void *, fuse_fill_dir_t, off_t,
614 struct fuse_file_info *, enum fuse_readdir_flags);
615
621 int (*releasedir) (const char *, struct fuse_file_info *);
622
631 int (*fsyncdir) (const char *, int, struct fuse_file_info *);
632
641 void *(*init) (struct fuse_conn_info *conn,
642 struct fuse_config *cfg);
643
649 void (*destroy) (void *private_data);
650
660 int (*access) (const char *, int);
661
672 int (*create) (const char *, mode_t, struct fuse_file_info *);
673
704 int (*lock) (const char *, struct fuse_file_info *, int cmd,
705 struct flock *);
706
719 int (*utimens) (const char *, const struct timespec tv[2],
720 struct fuse_file_info *fi);
721
728 int (*bmap) (const char *, size_t blocksize, uint64_t *idx);
729
730#if FUSE_USE_VERSION < 35
731 int (*ioctl) (const char *, int cmd, void *arg,
732 struct fuse_file_info *, unsigned int flags, void *data);
733#else
750 int (*ioctl) (const char *, unsigned int cmd, void *arg,
751 struct fuse_file_info *, unsigned int flags, void *data);
752#endif
753
769 int (*poll) (const char *, struct fuse_file_info *,
770 struct fuse_pollhandle *ph, unsigned *reventsp);
771
781 int (*write_buf) (const char *, struct fuse_bufvec *buf, off_t off,
782 struct fuse_file_info *);
783
798 int (*read_buf) (const char *, struct fuse_bufvec **bufp,
799 size_t size, off_t off, struct fuse_file_info *);
818 int (*flock) (const char *, struct fuse_file_info *, int op);
819
828 int (*fallocate) (const char *, int, off_t, off_t,
829 struct fuse_file_info *);
830
843 ssize_t (*copy_file_range) (const char *path_in,
844 struct fuse_file_info *fi_in,
845 off_t offset_in, const char *path_out,
846 struct fuse_file_info *fi_out,
847 off_t offset_out, size_t size, int flags);
848
852 off_t (*lseek) (const char *, off_t off, int whence, struct fuse_file_info *);
853};
854
862 struct fuse *fuse;
863
865 uid_t uid;
866
868 gid_t gid;
869
871 pid_t pid;
872
875
877 mode_t umask;
878};
879
885int fuse_main_real_versioned(int argc, char *argv[],
886 const struct fuse_operations *op, size_t op_size,
887 struct libfuse_version *version, void *user_data);
888static inline int fuse_main_real(int argc, char *argv[],
889 const struct fuse_operations *op,
890 size_t op_size, void *user_data)
891{
892 struct libfuse_version version = { .major = FUSE_MAJOR_VERSION,
893 .minor = FUSE_MINOR_VERSION,
894 .hotfix = FUSE_HOTFIX_VERSION,
895 .padding = 0 };
896
897 fuse_log(FUSE_LOG_ERR,
898 "%s is a libfuse internal function, please use fuse_main()\n",
899 __func__);
900
901 return fuse_main_real_versioned(argc, argv, op, op_size, &version,
902 user_data);
903}
904
959static inline int fuse_main_fn(int argc, char *argv[],
960 const struct fuse_operations *op,
961 void *user_data)
962{
963 struct libfuse_version version = {
964 .major = FUSE_MAJOR_VERSION,
965 .minor = FUSE_MINOR_VERSION,
966 .hotfix = FUSE_HOTFIX_VERSION,
967 .padding = 0
968 };
969
970 return fuse_main_real_versioned(argc, argv, op, sizeof(*(op)), &version,
971 user_data);
972}
973#define fuse_main(argc, argv, op, user_data) \
974 fuse_main_fn(argc, argv, op, user_data)
975
976/* ----------------------------------------------------------- *
977 * More detailed API *
978 * ----------------------------------------------------------- */
979
991void fuse_lib_help(struct fuse_args *args);
992
993/* Do not call this directly, use fuse_new() instead */
994struct fuse *_fuse_new_30(struct fuse_args *args,
995 const struct fuse_operations *op, size_t op_size,
996 struct libfuse_version *version, void *user_data);
997struct fuse *_fuse_new_31(struct fuse_args *args,
998 const struct fuse_operations *op, size_t op_size,
999 struct libfuse_version *version, void *user_data);
1000
1028#if FUSE_USE_VERSION == 30
1029static inline struct fuse *fuse_new_fn(struct fuse_args *args,
1030 const struct fuse_operations *op,
1031 size_t op_size, void *user_data)
1032{
1033 struct libfuse_version version = {
1034 .major = FUSE_MAJOR_VERSION,
1035 .minor = FUSE_MINOR_VERSION,
1036 .hotfix = FUSE_HOTFIX_VERSION,
1037 .padding = 0
1038 };
1039
1040 return _fuse_new_30(args, op, op_size, &version, user_data);
1041}
1042#else /* FUSE_USE_VERSION */
1043static inline struct fuse *fuse_new_fn(struct fuse_args *args,
1044 const struct fuse_operations *op,
1045 size_t op_size, void *user_data)
1046{
1047 struct libfuse_version version = {
1048 .major = FUSE_MAJOR_VERSION,
1049 .minor = FUSE_MINOR_VERSION,
1050 .hotfix = FUSE_HOTFIX_VERSION,
1051 .padding = 0
1052 };
1053
1054 return _fuse_new_31(args, op, op_size, &version, user_data);
1055}
1056#endif
1057#define fuse_new(args, op, size, data) fuse_new_fn(args, op, size, data)
1058
1067int fuse_mount(struct fuse *f, const char *mountpoint);
1068
1076void fuse_unmount(struct fuse *f);
1077
1086void fuse_destroy(struct fuse *f);
1087
1103int fuse_loop(struct fuse *f);
1104
1113void fuse_exit(struct fuse *f);
1114
1115#if FUSE_USE_VERSION < 32
1116int fuse_loop_mt_31(struct fuse *f, int clone_fd);
1117#define fuse_loop_mt(f, clone_fd) fuse_loop_mt_31(f, clone_fd)
1118#elif FUSE_USE_VERSION < FUSE_MAKE_VERSION(3, 12)
1119int fuse_loop_mt_32(struct fuse *f, struct fuse_loop_config *config);
1120#define fuse_loop_mt(f, config) fuse_loop_mt_32(f, config)
1121#else
1153#if (defined(LIBFUSE_BUILT_WITH_VERSIONED_SYMBOLS))
1154int fuse_loop_mt(struct fuse *f, struct fuse_loop_config *config);
1155#else
1156#define fuse_loop_mt(f, config) fuse_loop_mt_312(f, config)
1157#endif /* LIBFUSE_BUILT_WITH_VERSIONED_SYMBOLS */
1158#endif
1159
1160
1169struct fuse_context *fuse_get_context(void);
1170
1189int fuse_getgroups(int size, gid_t list[]);
1190
1196int fuse_interrupted(void);
1197
1209int fuse_invalidate_path(struct fuse *f, const char *path);
1210
1219
1226void fuse_stop_cleanup_thread(struct fuse *fuse);
1227
1237int fuse_clean_cache(struct fuse *fuse);
1238
1239/*
1240 * Stacking API
1241 */
1242
1248struct fuse_fs;
1249
1250/*
1251 * These functions call the relevant filesystem operation, and return
1252 * the result.
1253 *
1254 * If the operation is not defined, they return -ENOSYS, with the
1255 * exception of fuse_fs_open, fuse_fs_release, fuse_fs_opendir,
1256 * fuse_fs_releasedir and fuse_fs_statfs, which return 0.
1257 */
1258
1259int fuse_fs_getattr(struct fuse_fs *fs, const char *path, struct stat *buf,
1260 struct fuse_file_info *fi);
1261int fuse_fs_rename(struct fuse_fs *fs, const char *oldpath,
1262 const char *newpath, unsigned int flags);
1263int fuse_fs_unlink(struct fuse_fs *fs, const char *path);
1264int fuse_fs_rmdir(struct fuse_fs *fs, const char *path);
1265int fuse_fs_symlink(struct fuse_fs *fs, const char *linkname,
1266 const char *path);
1267int fuse_fs_link(struct fuse_fs *fs, const char *oldpath, const char *newpath);
1268int fuse_fs_release(struct fuse_fs *fs, const char *path,
1269 struct fuse_file_info *fi);
1270int fuse_fs_open(struct fuse_fs *fs, const char *path,
1271 struct fuse_file_info *fi);
1272int fuse_fs_read(struct fuse_fs *fs, const char *path, char *buf, size_t size,
1273 off_t off, struct fuse_file_info *fi);
1274int fuse_fs_read_buf(struct fuse_fs *fs, const char *path,
1275 struct fuse_bufvec **bufp, size_t size, off_t off,
1276 struct fuse_file_info *fi);
1277int fuse_fs_write(struct fuse_fs *fs, const char *path, const char *buf,
1278 size_t size, off_t off, struct fuse_file_info *fi);
1279int fuse_fs_write_buf(struct fuse_fs *fs, const char *path,
1280 struct fuse_bufvec *buf, off_t off,
1281 struct fuse_file_info *fi);
1282int fuse_fs_fsync(struct fuse_fs *fs, const char *path, int datasync,
1283 struct fuse_file_info *fi);
1284int fuse_fs_flush(struct fuse_fs *fs, const char *path,
1285 struct fuse_file_info *fi);
1286int fuse_fs_statfs(struct fuse_fs *fs, const char *path, struct statvfs *buf);
1287int fuse_fs_opendir(struct fuse_fs *fs, const char *path,
1288 struct fuse_file_info *fi);
1289int fuse_fs_readdir(struct fuse_fs *fs, const char *path, void *buf,
1290 fuse_fill_dir_t filler, off_t off,
1291 struct fuse_file_info *fi, enum fuse_readdir_flags flags);
1292int fuse_fs_fsyncdir(struct fuse_fs *fs, const char *path, int datasync,
1293 struct fuse_file_info *fi);
1294int fuse_fs_releasedir(struct fuse_fs *fs, const char *path,
1295 struct fuse_file_info *fi);
1296int fuse_fs_create(struct fuse_fs *fs, const char *path, mode_t mode,
1297 struct fuse_file_info *fi);
1298int fuse_fs_lock(struct fuse_fs *fs, const char *path,
1299 struct fuse_file_info *fi, int cmd, struct flock *lock);
1300int fuse_fs_flock(struct fuse_fs *fs, const char *path,
1301 struct fuse_file_info *fi, int op);
1302int fuse_fs_chmod(struct fuse_fs *fs, const char *path, mode_t mode,
1303 struct fuse_file_info *fi);
1304int fuse_fs_chown(struct fuse_fs *fs, const char *path, uid_t uid, gid_t gid,
1305 struct fuse_file_info *fi);
1306int fuse_fs_truncate(struct fuse_fs *fs, const char *path, off_t size,
1307 struct fuse_file_info *fi);
1308int fuse_fs_utimens(struct fuse_fs *fs, const char *path,
1309 const struct timespec tv[2], struct fuse_file_info *fi);
1310int fuse_fs_access(struct fuse_fs *fs, const char *path, int mask);
1311int fuse_fs_readlink(struct fuse_fs *fs, const char *path, char *buf,
1312 size_t len);
1313int fuse_fs_mknod(struct fuse_fs *fs, const char *path, mode_t mode,
1314 dev_t rdev);
1315int fuse_fs_mkdir(struct fuse_fs *fs, const char *path, mode_t mode);
1316int fuse_fs_setxattr(struct fuse_fs *fs, const char *path, const char *name,
1317 const char *value, size_t size, int flags);
1318int fuse_fs_getxattr(struct fuse_fs *fs, const char *path, const char *name,
1319 char *value, size_t size);
1320int fuse_fs_listxattr(struct fuse_fs *fs, const char *path, char *list,
1321 size_t size);
1322int fuse_fs_removexattr(struct fuse_fs *fs, const char *path,
1323 const char *name);
1324int fuse_fs_bmap(struct fuse_fs *fs, const char *path, size_t blocksize,
1325 uint64_t *idx);
1326#if FUSE_USE_VERSION < 35
1327int fuse_fs_ioctl(struct fuse_fs *fs, const char *path, int cmd,
1328 void *arg, struct fuse_file_info *fi, unsigned int flags,
1329 void *data);
1330#else
1331int fuse_fs_ioctl(struct fuse_fs *fs, const char *path, unsigned int cmd,
1332 void *arg, struct fuse_file_info *fi, unsigned int flags,
1333 void *data);
1334#endif
1335int fuse_fs_poll(struct fuse_fs *fs, const char *path,
1336 struct fuse_file_info *fi, struct fuse_pollhandle *ph,
1337 unsigned *reventsp);
1338int fuse_fs_fallocate(struct fuse_fs *fs, const char *path, int mode,
1339 off_t offset, off_t length, struct fuse_file_info *fi);
1340ssize_t fuse_fs_copy_file_range(struct fuse_fs *fs, const char *path_in,
1341 struct fuse_file_info *fi_in, off_t off_in,
1342 const char *path_out,
1343 struct fuse_file_info *fi_out, off_t off_out,
1344 size_t len, int flags);
1345off_t fuse_fs_lseek(struct fuse_fs *fs, const char *path, off_t off, int whence,
1346 struct fuse_file_info *fi);
1347void fuse_fs_init(struct fuse_fs *fs, struct fuse_conn_info *conn,
1348 struct fuse_config *cfg);
1349void fuse_fs_destroy(struct fuse_fs *fs);
1350
1351int fuse_notify_poll(struct fuse_pollhandle *ph);
1352
1366struct fuse_fs *fuse_fs_new(const struct fuse_operations *op, size_t op_size,
1367 void *private_data);
1368
1383typedef struct fuse_fs *(*fuse_module_factory_t)(struct fuse_args *args,
1384 struct fuse_fs *fs[]);
1395#define FUSE_REGISTER_MODULE(name_, factory_) \
1396 fuse_module_factory_t fuse_module_ ## name_ ## _factory = factory_
1397
1399struct fuse_session *fuse_get_session(struct fuse *f);
1400
1409int fuse_open_channel(const char *mountpoint, const char *options);
1410
1411#ifdef __cplusplus
1412}
1413#endif
1414
1415#endif /* FUSE_H_ */
int fuse_getgroups(int size, gid_t list[])
Definition fuse.c:4654
int fuse_mount(struct fuse *f, const char *mountpoint)
Definition fuse.c:5197
int fuse_interrupted(void)
Definition fuse.c:4663
void fuse_destroy(struct fuse *f)
Definition fuse.c:5146
int fuse_main_real_versioned(int argc, char *argv[], const struct fuse_operations *op, size_t op_size, struct libfuse_version *version, void *user_data)
Definition helper.c:307
int fuse_start_cleanup_thread(struct fuse *fuse)
Definition fuse.c:4906
int fuse_invalidate_path(struct fuse *f, const char *path)
Definition fuse.c:4673
struct fuse_context * fuse_get_context(void)
Definition fuse.c:4644
int fuse_loop(struct fuse *f)
Definition fuse.c:4577
int(* fuse_fill_dir_t)(void *buf, const char *name, const struct stat *stbuf, off_t off, enum fuse_fill_dir_flags flags)
Definition fuse.h:87
void fuse_exit(struct fuse *f)
Definition fuse.c:4639
int fuse_clean_cache(struct fuse *fuse)
Definition fuse.c:4433
void fuse_lib_help(struct fuse_args *args)
Definition fuse.c:4744
int fuse_open_channel(const char *mountpoint, const char *options)
Definition helper.c:482
struct fuse_session * fuse_get_session(struct fuse *f)
Definition fuse.c:4520
void fuse_unmount(struct fuse *f)
Definition fuse.c:5202
struct fuse_fs * fuse_fs_new(const struct fuse_operations *op, size_t op_size, void *private_data)
Definition fuse.c:4854
void fuse_stop_cleanup_thread(struct fuse *fuse)
Definition fuse.c:4914
fuse_fill_dir_flags
Definition fuse.h:58
@ FUSE_FILL_DIR_DEFAULTS
Definition fuse.h:68
fuse_readdir_flags
Definition fuse.h:42
@ FUSE_READDIR_DEFAULTS
Definition fuse.h:51
void fuse_log(enum fuse_log_level level, const char *fmt,...)
Definition fuse_log.c:77
uint32_t fmask
Definition fuse.h:288
int32_t show_help
Definition fuse.h:279
uint32_t flags
Definition fuse.h:318
int32_t direct_io
Definition fuse.h:226
int32_t no_rofd_flush
Definition fuse.h:297
int32_t nullpath_ok
Definition fuse.h:273
int32_t parallel_direct_writes
Definition fuse.h:312
int32_t intr_signal
Definition fuse.h:155
int32_t remember
Definition fuse.h:167
int32_t kernel_cache
Definition fuse.h:245
int32_t readdir_ino
Definition fuse.h:207
int32_t use_ino
Definition fuse.h:198
double entry_timeout
Definition fuse.h:127
int32_t set_mode
Definition fuse.h:120
int32_t auto_cache
Definition fuse.h:253
uint64_t reserved[48]
Definition fuse.h:323
int32_t intr
Definition fuse.h:148
double negative_timeout
Definition fuse.h:137
int32_t set_gid
Definition fuse.h:106
int32_t set_uid
Definition fuse.h:113
int32_t hard_remove
Definition fuse.h:185
double attr_timeout
Definition fuse.h:143
void * private_data
Definition fuse.h:874
uid_t uid
Definition fuse.h:865
pid_t pid
Definition fuse.h:871
struct fuse * fuse
Definition fuse.h:862
gid_t gid
Definition fuse.h:868
mode_t umask
Definition fuse.h:877
int(* mknod)(const char *, mode_t, dev_t)
Definition fuse.h:379
int(* open)(const char *, struct fuse_file_info *)
Definition fuse.h:486
int(* readlink)(const char *, char *, size_t)
Definition fuse.h:371
int(* write)(const char *, const char *, size_t, off_t, struct fuse_file_info *)
Definition fuse.h:509
int(* fallocate)(const char *, int, off_t, off_t, struct fuse_file_info *)
Definition fuse.h:828
int(* read)(const char *, char *, size_t, off_t, struct fuse_file_info *)
Definition fuse.h:497
int(* symlink)(const char *, const char *)
Definition fuse.h:396
int(* write_buf)(const char *, struct fuse_bufvec *buf, off_t off, struct fuse_file_info *)
Definition fuse.h:781
int(* release)(const char *, struct fuse_file_info *)
Definition fuse.h:560
int(* access)(const char *, int)
Definition fuse.h:660
int(* lock)(const char *, struct fuse_file_info *, int cmd, struct flock *)
Definition fuse.h:704
int(* fsyncdir)(const char *, int, struct fuse_file_info *)
Definition fuse.h:631
int(* mkdir)(const char *, mode_t)
Definition fuse.h:387
int(* chown)(const char *, uid_t, gid_t, struct fuse_file_info *fi)
Definition fuse.h:427
int(* unlink)(const char *)
Definition fuse.h:390
int(* flush)(const char *, struct fuse_file_info *)
Definition fuse.h:546
int(* listxattr)(const char *, char *, size_t)
Definition fuse.h:576
int(* truncate)(const char *, off_t, struct fuse_file_info *fi)
Definition fuse.h:437
int(* statfs)(const char *, struct statvfs *)
Definition fuse.h:516
ssize_t(* copy_file_range)(const char *path_in, struct fuse_file_info *fi_in, off_t offset_in, const char *path_out, struct fuse_file_info *fi_out, off_t offset_out, size_t size, int flags)
Definition fuse.h:843
int(* create)(const char *, mode_t, struct fuse_file_info *)
Definition fuse.h:672
int(* utimens)(const char *, const struct timespec tv[2], struct fuse_file_info *fi)
Definition fuse.h:719
off_t(* lseek)(const char *, off_t off, int whence, struct fuse_file_info *)
Definition fuse.h:852
int(* getxattr)(const char *, const char *, char *, size_t)
Definition fuse.h:573
int(* setxattr)(const char *, const char *, const char *, size_t, int)
Definition fuse.h:570
int(* poll)(const char *, struct fuse_file_info *, struct fuse_pollhandle *ph, unsigned *reventsp)
Definition fuse.h:769
int(* fsync)(const char *, int, struct fuse_file_info *)
Definition fuse.h:567
int(* chmod)(const char *, mode_t, struct fuse_file_info *fi)
Definition fuse.h:417
int(* opendir)(const char *, struct fuse_file_info *)
Definition fuse.h:589
int(* rmdir)(const char *)
Definition fuse.h:393
int(* releasedir)(const char *, struct fuse_file_info *)
Definition fuse.h:621
int(* getattr)(const char *, struct stat *, struct fuse_file_info *fi)
Definition fuse.h:361
int(* read_buf)(const char *, struct fuse_bufvec **bufp, size_t size, off_t off, struct fuse_file_info *)
Definition fuse.h:798
int(* link)(const char *, const char *)
Definition fuse.h:410
int(* flock)(const char *, struct fuse_file_info *, int op)
Definition fuse.h:818
int(* removexattr)(const char *, const char *)
Definition fuse.h:579
int(* ioctl)(const char *, unsigned int cmd, void *arg, struct fuse_file_info *, unsigned int flags, void *data)
Definition fuse.h:750
int(* rename)(const char *, const char *, unsigned int flags)
Definition fuse.h:407
int(* readdir)(const char *, void *, fuse_fill_dir_t, off_t, struct fuse_file_info *, enum fuse_readdir_flags)
Definition fuse.h:613
void(* destroy)(void *private_data)
Definition fuse.h:649
int(* bmap)(const char *, size_t blocksize, uint64_t *idx)
Definition fuse.h:728