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
959int fuse_main_real_versioned(int argc, char *argv[],
960 const struct fuse_operations *op, size_t op_size,
961 struct libfuse_version *version, void *user_data);
962static inline int fuse_main_fn(int argc, char *argv[],
963 const struct fuse_operations *op,
964 void *user_data)
965{
966 struct libfuse_version version = {
967 .major = FUSE_MAJOR_VERSION,
968 .minor = FUSE_MINOR_VERSION,
969 .hotfix = FUSE_HOTFIX_VERSION,
970 .padding = 0
971 };
972
973 return fuse_main_real_versioned(argc, argv, op, sizeof(*(op)), &version,
974 user_data);
975}
976#define fuse_main(argc, argv, op, user_data) \
977 fuse_main_fn(argc, argv, op, user_data)
978
979/* ----------------------------------------------------------- *
980 * More detailed API *
981 * ----------------------------------------------------------- */
982
994void fuse_lib_help(struct fuse_args *args);
995
996/* Do not call this directly, use fuse_new() instead */
997struct fuse *_fuse_new_30(struct fuse_args *args,
998 const struct fuse_operations *op, size_t op_size,
999 struct libfuse_version *version, void *user_data);
1000struct fuse *_fuse_new_31(struct fuse_args *args,
1001 const struct fuse_operations *op, size_t op_size,
1002 struct libfuse_version *version, void *user_data);
1003
1031#if FUSE_USE_VERSION == 30
1032static inline struct fuse *fuse_new_fn(struct fuse_args *args,
1033 const struct fuse_operations *op,
1034 size_t op_size, void *user_data)
1035{
1036 struct libfuse_version version = {
1037 .major = FUSE_MAJOR_VERSION,
1038 .minor = FUSE_MINOR_VERSION,
1039 .hotfix = FUSE_HOTFIX_VERSION,
1040 .padding = 0
1041 };
1042
1043 return _fuse_new_30(args, op, op_size, &version, user_data);
1044}
1045#else /* FUSE_USE_VERSION */
1046static inline struct fuse *fuse_new_fn(struct fuse_args *args,
1047 const struct fuse_operations *op,
1048 size_t op_size, void *user_data)
1049{
1050 struct libfuse_version version = {
1051 .major = FUSE_MAJOR_VERSION,
1052 .minor = FUSE_MINOR_VERSION,
1053 .hotfix = FUSE_HOTFIX_VERSION,
1054 .padding = 0
1055 };
1056
1057 return _fuse_new_31(args, op, op_size, &version, user_data);
1058}
1059#endif
1060#define fuse_new(args, op, size, data) fuse_new_fn(args, op, size, data)
1061
1070int fuse_mount(struct fuse *f, const char *mountpoint);
1071
1079void fuse_unmount(struct fuse *f);
1080
1089void fuse_destroy(struct fuse *f);
1090
1106int fuse_loop(struct fuse *f);
1107
1116void fuse_exit(struct fuse *f);
1117
1118#if FUSE_USE_VERSION < 32
1119int fuse_loop_mt_31(struct fuse *f, int clone_fd);
1120#define fuse_loop_mt(f, clone_fd) fuse_loop_mt_31(f, clone_fd)
1121#elif FUSE_USE_VERSION < FUSE_MAKE_VERSION(3, 12)
1122int fuse_loop_mt_32(struct fuse *f, struct fuse_loop_config *config);
1123#define fuse_loop_mt(f, config) fuse_loop_mt_32(f, config)
1124#else
1156#if (defined(LIBFUSE_BUILT_WITH_VERSIONED_SYMBOLS))
1157int fuse_loop_mt(struct fuse *f, struct fuse_loop_config *config);
1158#else
1159#define fuse_loop_mt(f, config) fuse_loop_mt_312(f, config)
1160#endif /* LIBFUSE_BUILT_WITH_VERSIONED_SYMBOLS */
1161#endif
1162
1163
1172struct fuse_context *fuse_get_context(void);
1173
1192int fuse_getgroups(int size, gid_t list[]);
1193
1199int fuse_interrupted(void);
1200
1212int fuse_invalidate_path(struct fuse *f, const char *path);
1213
1222
1229void fuse_stop_cleanup_thread(struct fuse *fuse);
1230
1240int fuse_clean_cache(struct fuse *fuse);
1241
1242/*
1243 * Stacking API
1244 */
1245
1251struct fuse_fs;
1252
1253/*
1254 * These functions call the relevant filesystem operation, and return
1255 * the result.
1256 *
1257 * If the operation is not defined, they return -ENOSYS, with the
1258 * exception of fuse_fs_open, fuse_fs_release, fuse_fs_opendir,
1259 * fuse_fs_releasedir and fuse_fs_statfs, which return 0.
1260 */
1261
1262int fuse_fs_getattr(struct fuse_fs *fs, const char *path, struct stat *buf,
1263 struct fuse_file_info *fi);
1264int fuse_fs_rename(struct fuse_fs *fs, const char *oldpath,
1265 const char *newpath, unsigned int flags);
1266int fuse_fs_unlink(struct fuse_fs *fs, const char *path);
1267int fuse_fs_rmdir(struct fuse_fs *fs, const char *path);
1268int fuse_fs_symlink(struct fuse_fs *fs, const char *linkname,
1269 const char *path);
1270int fuse_fs_link(struct fuse_fs *fs, const char *oldpath, const char *newpath);
1271int fuse_fs_release(struct fuse_fs *fs, const char *path,
1272 struct fuse_file_info *fi);
1273int fuse_fs_open(struct fuse_fs *fs, const char *path,
1274 struct fuse_file_info *fi);
1275int fuse_fs_read(struct fuse_fs *fs, const char *path, char *buf, size_t size,
1276 off_t off, struct fuse_file_info *fi);
1277int fuse_fs_read_buf(struct fuse_fs *fs, const char *path,
1278 struct fuse_bufvec **bufp, size_t size, off_t off,
1279 struct fuse_file_info *fi);
1280int fuse_fs_write(struct fuse_fs *fs, const char *path, const char *buf,
1281 size_t size, off_t off, struct fuse_file_info *fi);
1282int fuse_fs_write_buf(struct fuse_fs *fs, const char *path,
1283 struct fuse_bufvec *buf, off_t off,
1284 struct fuse_file_info *fi);
1285int fuse_fs_fsync(struct fuse_fs *fs, const char *path, int datasync,
1286 struct fuse_file_info *fi);
1287int fuse_fs_flush(struct fuse_fs *fs, const char *path,
1288 struct fuse_file_info *fi);
1289int fuse_fs_statfs(struct fuse_fs *fs, const char *path, struct statvfs *buf);
1290int fuse_fs_opendir(struct fuse_fs *fs, const char *path,
1291 struct fuse_file_info *fi);
1292int fuse_fs_readdir(struct fuse_fs *fs, const char *path, void *buf,
1293 fuse_fill_dir_t filler, off_t off,
1294 struct fuse_file_info *fi, enum fuse_readdir_flags flags);
1295int fuse_fs_fsyncdir(struct fuse_fs *fs, const char *path, int datasync,
1296 struct fuse_file_info *fi);
1297int fuse_fs_releasedir(struct fuse_fs *fs, const char *path,
1298 struct fuse_file_info *fi);
1299int fuse_fs_create(struct fuse_fs *fs, const char *path, mode_t mode,
1300 struct fuse_file_info *fi);
1301int fuse_fs_lock(struct fuse_fs *fs, const char *path,
1302 struct fuse_file_info *fi, int cmd, struct flock *lock);
1303int fuse_fs_flock(struct fuse_fs *fs, const char *path,
1304 struct fuse_file_info *fi, int op);
1305int fuse_fs_chmod(struct fuse_fs *fs, const char *path, mode_t mode,
1306 struct fuse_file_info *fi);
1307int fuse_fs_chown(struct fuse_fs *fs, const char *path, uid_t uid, gid_t gid,
1308 struct fuse_file_info *fi);
1309int fuse_fs_truncate(struct fuse_fs *fs, const char *path, off_t size,
1310 struct fuse_file_info *fi);
1311int fuse_fs_utimens(struct fuse_fs *fs, const char *path,
1312 const struct timespec tv[2], struct fuse_file_info *fi);
1313int fuse_fs_access(struct fuse_fs *fs, const char *path, int mask);
1314int fuse_fs_readlink(struct fuse_fs *fs, const char *path, char *buf,
1315 size_t len);
1316int fuse_fs_mknod(struct fuse_fs *fs, const char *path, mode_t mode,
1317 dev_t rdev);
1318int fuse_fs_mkdir(struct fuse_fs *fs, const char *path, mode_t mode);
1319int fuse_fs_setxattr(struct fuse_fs *fs, const char *path, const char *name,
1320 const char *value, size_t size, int flags);
1321int fuse_fs_getxattr(struct fuse_fs *fs, const char *path, const char *name,
1322 char *value, size_t size);
1323int fuse_fs_listxattr(struct fuse_fs *fs, const char *path, char *list,
1324 size_t size);
1325int fuse_fs_removexattr(struct fuse_fs *fs, const char *path,
1326 const char *name);
1327int fuse_fs_bmap(struct fuse_fs *fs, const char *path, size_t blocksize,
1328 uint64_t *idx);
1329#if FUSE_USE_VERSION < 35
1330int fuse_fs_ioctl(struct fuse_fs *fs, const char *path, int cmd,
1331 void *arg, struct fuse_file_info *fi, unsigned int flags,
1332 void *data);
1333#else
1334int fuse_fs_ioctl(struct fuse_fs *fs, const char *path, unsigned int cmd,
1335 void *arg, struct fuse_file_info *fi, unsigned int flags,
1336 void *data);
1337#endif
1338int fuse_fs_poll(struct fuse_fs *fs, const char *path,
1339 struct fuse_file_info *fi, struct fuse_pollhandle *ph,
1340 unsigned *reventsp);
1341int fuse_fs_fallocate(struct fuse_fs *fs, const char *path, int mode,
1342 off_t offset, off_t length, struct fuse_file_info *fi);
1343ssize_t fuse_fs_copy_file_range(struct fuse_fs *fs, const char *path_in,
1344 struct fuse_file_info *fi_in, off_t off_in,
1345 const char *path_out,
1346 struct fuse_file_info *fi_out, off_t off_out,
1347 size_t len, int flags);
1348off_t fuse_fs_lseek(struct fuse_fs *fs, const char *path, off_t off, int whence,
1349 struct fuse_file_info *fi);
1350void fuse_fs_init(struct fuse_fs *fs, struct fuse_conn_info *conn,
1351 struct fuse_config *cfg);
1352void fuse_fs_destroy(struct fuse_fs *fs);
1353
1354int fuse_notify_poll(struct fuse_pollhandle *ph);
1355
1369struct fuse_fs *fuse_fs_new(const struct fuse_operations *op, size_t op_size,
1370 void *private_data);
1371
1386typedef struct fuse_fs *(*fuse_module_factory_t)(struct fuse_args *args,
1387 struct fuse_fs *fs[]);
1398#define FUSE_REGISTER_MODULE(name_, factory_) \
1399 fuse_module_factory_t fuse_module_ ## name_ ## _factory = factory_
1400
1402struct fuse_session *fuse_get_session(struct fuse *f);
1403
1412int fuse_open_channel(const char *mountpoint, const char *options);
1413
1414#ifdef __cplusplus
1415}
1416#endif
1417
1418#endif /* FUSE_H_ */
int fuse_getgroups(int size, gid_t list[])
Definition fuse.c:4679
int fuse_mount(struct fuse *f, const char *mountpoint)
Definition fuse.c:5220
int fuse_interrupted(void)
Definition fuse.c:4688
void fuse_destroy(struct fuse *f)
Definition fuse.c:5169
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:4929
int fuse_invalidate_path(struct fuse *f, const char *path)
Definition fuse.c:4698
struct fuse_context * fuse_get_context(void)
Definition fuse.c:4669
int fuse_loop(struct fuse *f)
Definition fuse.c:4602
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:4664
int fuse_clean_cache(struct fuse *fuse)
Definition fuse.c:4458
void fuse_lib_help(struct fuse_args *args)
Definition fuse.c:4769
int fuse_open_channel(const char *mountpoint, const char *options)
Definition helper.c:475
struct fuse_session * fuse_get_session(struct fuse *f)
Definition fuse.c:4545
void fuse_unmount(struct fuse *f)
Definition fuse.c:5225
struct fuse_fs * fuse_fs_new(const struct fuse_operations *op, size_t op_size, void *private_data)
Definition fuse.c:4879
void fuse_stop_cleanup_thread(struct fuse *fuse)
Definition fuse.c:4937
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
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
fuse_readdir_flags
Definition fuse.h:42
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(* mkdir)(const char *, mode_t)
Definition fuse.h:387
int(* truncate)(const char *, off_t, struct fuse_file_info *fi)
Definition fuse.h:437
int(* mknod)(const char *, mode_t, dev_t)
Definition fuse.h:379
int(* utimens)(const char *, const struct timespec tv[2], struct fuse_file_info *fi)
Definition fuse.h:719
int(* open)(const char *, struct fuse_file_info *)
Definition fuse.h:486
int(* opendir)(const char *, struct fuse_file_info *)
Definition fuse.h:589
int(* link)(const char *, const char *)
Definition fuse.h:410
int(* lock)(const char *, struct fuse_file_info *, int cmd, struct flock *)
Definition fuse.h:704
int(* read_buf)(const char *, struct fuse_bufvec **bufp, size_t size, off_t off, struct fuse_file_info *)
Definition fuse.h:798
int(* access)(const char *, int)
Definition fuse.h:660
int(* read)(const char *, char *, size_t, off_t, struct fuse_file_info *)
Definition fuse.h:497
int(* poll)(const char *, struct fuse_file_info *, struct fuse_pollhandle *ph, unsigned *reventsp)
Definition fuse.h:769
void(* destroy)(void *private_data)
Definition fuse.h:649
int(* statfs)(const char *, struct statvfs *)
Definition fuse.h:516
int(* fallocate)(const char *, int, off_t, off_t, struct fuse_file_info *)
Definition fuse.h:828
int(* removexattr)(const char *, const char *)
Definition fuse.h:579
int(* getattr)(const char *, struct stat *, struct fuse_file_info *fi)
Definition fuse.h:361
int(* releasedir)(const char *, struct fuse_file_info *)
Definition fuse.h:621
int(* rename)(const char *, const char *, unsigned int flags)
Definition fuse.h:407
off_t(* lseek)(const char *, off_t off, int whence, struct fuse_file_info *)
Definition fuse.h:852
int(* write)(const char *, const char *, size_t, off_t, struct fuse_file_info *)
Definition fuse.h:509
int(* write_buf)(const char *, struct fuse_bufvec *buf, off_t off, struct fuse_file_info *)
Definition fuse.h:781
int(* unlink)(const char *)
Definition fuse.h:390
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(* fsync)(const char *, int, struct fuse_file_info *)
Definition fuse.h:567
int(* create)(const char *, mode_t, struct fuse_file_info *)
Definition fuse.h:672
int(* setxattr)(const char *, const char *, const char *, size_t, int)
Definition fuse.h:570
int(* listxattr)(const char *, char *, size_t)
Definition fuse.h:576
int(* readlink)(const char *, char *, size_t)
Definition fuse.h:371
int(* symlink)(const char *, const char *)
Definition fuse.h:396
int(* fsyncdir)(const char *, int, struct fuse_file_info *)
Definition fuse.h:631
int(* release)(const char *, struct fuse_file_info *)
Definition fuse.h:560
int(* chown)(const char *, uid_t, gid_t, struct fuse_file_info *fi)
Definition fuse.h:427
int(* chmod)(const char *, mode_t, struct fuse_file_info *fi)
Definition fuse.h:417
int(* rmdir)(const char *)
Definition fuse.h:393
int(* flush)(const char *, struct fuse_file_info *)
Definition fuse.h:546
int(* flock)(const char *, struct fuse_file_info *, int op)
Definition fuse.h:818
int(* ioctl)(const char *, unsigned int cmd, void *arg, struct fuse_file_info *, unsigned int flags, void *data)
Definition fuse.h:750
int(* readdir)(const char *, void *, fuse_fill_dir_t, off_t, struct fuse_file_info *, enum fuse_readdir_flags)
Definition fuse.h:613
int(* getxattr)(const char *, const char *, char *, size_t)
Definition fuse.h:573
int(* bmap)(const char *, size_t blocksize, uint64_t *idx)
Definition fuse.h:728