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
29 extern "C" {
30#endif
31
32/* ----------------------------------------------------------- *
33 * Basic FUSE API *
34 * ----------------------------------------------------------- */
35
37 struct fuse;
38
42 enum fuse_readdir_flags {
51 FUSE_READDIR_DEFAULTS = 0,
52 FUSE_READDIR_PLUS = (1 << 0)
53};
54
58 enum fuse_fill_dir_flags {
68 FUSE_FILL_DIR_DEFAULTS = 0,
69 FUSE_FILL_DIR_PLUS = (1 << 1)
70};
71
87 typedef 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);
101 struct fuse_config {
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
127 double entry_timeout;
128
137 double negative_timeout;
138
143 double attr_timeout;
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
245 int32_t kernel_cache;
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
297 int32_t no_rofd_flush;
298
312 int32_t parallel_direct_writes;
313
314
318 uint32_t flags;
319
323 uint64_t reserved[48];
324};
325
326
349 struct fuse_operations {
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
860 struct fuse_context {
862 struct fuse *fuse;
863
865 uid_t uid;
866
868 gid_t gid;
869
871 pid_t pid;
872
874 void *private_data;
875
877 mode_t umask;
878};
879
885 static inline int fuse_main_real(int argc, char *argv[],
886 const struct fuse_operations *op,
887 size_t op_size, void *user_data)
888{
889 struct libfuse_version version = { .major = FUSE_MAJOR_VERSION,
890 .minor = FUSE_MINOR_VERSION,
891 .hotfix = FUSE_HOTFIX_VERSION,
892 .padding = 0 };
893
894 fuse_log(FUSE_LOG_ERR,
895 "%s is a libfuse internal function, please use fuse_main()\n",
896 __func__);
897
898 /* not declared globally, to restrict usage of this function */
899 int fuse_main_real_versioned(int argc, char *argv[],
900 const struct fuse_operations *op,
901 size_t op_size,
902 struct libfuse_version *version,
903 void *user_data);
904
905 return fuse_main_real_versioned(argc, argv, op, op_size, &version,
906 user_data);
907}
908
963 static inline int fuse_main_fn(int argc, char *argv[],
964 const struct fuse_operations *op,
965 void *user_data)
966{
967 struct libfuse_version version = {
968 .major = FUSE_MAJOR_VERSION,
969 .minor = FUSE_MINOR_VERSION,
970 .hotfix = FUSE_HOTFIX_VERSION,
971 .padding = 0
972 };
973
974 /* not declared globally, to restrict usage of this function */
975 int fuse_main_real_versioned(int argc, char *argv[],
976 const struct fuse_operations *op,
977 size_t op_size,
978 struct libfuse_version *version,
979 void *user_data);
980 return fuse_main_real_versioned(argc, argv, op, sizeof(*(op)), &version,
981 user_data);
982}
983#define fuse_main(argc, argv, op, user_data) \
984 fuse_main_fn(argc, argv, op, user_data)
985
986/* ----------------------------------------------------------- *
987 * More detailed API *
988 * ----------------------------------------------------------- */
989
1001 void fuse_lib_help(struct fuse_args *args);
1002
1030#if FUSE_USE_VERSION == 30
1031 struct fuse *_fuse_new_30(struct fuse_args *args,
1032 const struct fuse_operations *op,
1033 size_t op_size,
1034 struct libfuse_version *version,
1035 void *user_data);
1036 static inline struct fuse *
1037fuse_new_fn(struct fuse_args *args,
1038 const struct fuse_operations *op, size_t op_size,
1039 void *user_data)
1040{
1041 /* not declared globally, to restrict usage of this function */
1042 struct fuse *_fuse_new_30(struct fuse_args *args,
1043 const struct fuse_operations *op, size_t op_size,
1044 struct libfuse_version *version,
1045 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_30(args, op, op_size, &version, user_data);
1055}
1056#else /* FUSE_USE_VERSION */
1057 static inline struct fuse *
1058fuse_new_fn(struct fuse_args *args,
1059 const struct fuse_operations *op, size_t op_size,
1060 void *user_data)
1061{
1062 struct libfuse_version version = {
1063 .major = FUSE_MAJOR_VERSION,
1064 .minor = FUSE_MINOR_VERSION,
1065 .hotfix = FUSE_HOTFIX_VERSION,
1066 .padding = 0
1067 };
1068
1069 /* not declared globally, to restrict usage of this function */
1070 struct fuse *_fuse_new_31(struct fuse_args *args,
1071 const struct fuse_operations *op,
1072 size_t op_size, struct libfuse_version *version,
1073 void *user_data);
1074 return _fuse_new_31(args, op, op_size, &version, user_data);
1075}
1076#endif
1077#define fuse_new(args, op, size, data) fuse_new_fn(args, op, size, data)
1078
1087 int fuse_mount(struct fuse *f, const char *mountpoint);
1088
1096 void fuse_unmount(struct fuse *f);
1097
1106 void fuse_destroy(struct fuse *f);
1107
1123 int fuse_loop(struct fuse *f);
1124
1133 void fuse_exit(struct fuse *f);
1134
1135#if FUSE_USE_VERSION < 32
1136 int fuse_loop_mt_31(struct fuse *f, int clone_fd);
1137#define fuse_loop_mt(f, clone_fd) fuse_loop_mt_31(f, clone_fd)
1138#elif FUSE_USE_VERSION < FUSE_MAKE_VERSION(3, 12)
1139 int fuse_loop_mt_32(struct fuse *f, struct fuse_loop_config *config);
1140#define fuse_loop_mt(f, config) fuse_loop_mt_32(f, config)
1141#else
1173#if (defined(LIBFUSE_BUILT_WITH_VERSIONED_SYMBOLS))
1174 int fuse_loop_mt(struct fuse *f, struct fuse_loop_config *config);
1175#else
1176#define fuse_loop_mt(f, config) fuse_loop_mt_312(f, config)
1177#endif /* LIBFUSE_BUILT_WITH_VERSIONED_SYMBOLS */
1178#endif
1179
1180
1189 struct fuse_context *fuse_get_context(void);
1190
1209 int fuse_getgroups(int size, gid_t list[]);
1210
1216 int fuse_interrupted(void);
1217
1229 int fuse_invalidate_path(struct fuse *f, const char *path);
1230
1238 int fuse_start_cleanup_thread(struct fuse *fuse);
1239
1246 void fuse_stop_cleanup_thread(struct fuse *fuse);
1247
1257 int fuse_clean_cache(struct fuse *fuse);
1258
1259/*
1260 * Stacking API
1261 */
1262
1268 struct fuse_fs;
1269
1270/*
1271 * These functions call the relevant filesystem operation, and return
1272 * the result.
1273 *
1274 * If the operation is not defined, they return -ENOSYS, with the
1275 * exception of fuse_fs_open, fuse_fs_release, fuse_fs_opendir,
1276 * fuse_fs_releasedir and fuse_fs_statfs, which return 0.
1277 */
1278
1279 int fuse_fs_getattr(struct fuse_fs *fs, const char *path, struct stat *buf,
1280 struct fuse_file_info *fi);
1281 int fuse_fs_rename(struct fuse_fs *fs, const char *oldpath,
1282 const char *newpath, unsigned int flags);
1283 int fuse_fs_unlink(struct fuse_fs *fs, const char *path);
1284 int fuse_fs_rmdir(struct fuse_fs *fs, const char *path);
1285 int fuse_fs_symlink(struct fuse_fs *fs, const char *linkname,
1286 const char *path);
1287 int fuse_fs_link(struct fuse_fs *fs, const char *oldpath, const char *newpath);
1288 int fuse_fs_release(struct fuse_fs *fs, const char *path,
1289 struct fuse_file_info *fi);
1290 int fuse_fs_open(struct fuse_fs *fs, const char *path,
1291 struct fuse_file_info *fi);
1292 int fuse_fs_read(struct fuse_fs *fs, const char *path, char *buf, size_t size,
1293 off_t off, struct fuse_file_info *fi);
1294 int fuse_fs_read_buf(struct fuse_fs *fs, const char *path,
1295 struct fuse_bufvec **bufp, size_t size, off_t off,
1296 struct fuse_file_info *fi);
1297 int fuse_fs_write(struct fuse_fs *fs, const char *path, const char *buf,
1298 size_t size, off_t off, struct fuse_file_info *fi);
1299 int fuse_fs_write_buf(struct fuse_fs *fs, const char *path,
1300 struct fuse_bufvec *buf, off_t off,
1301 struct fuse_file_info *fi);
1302 int fuse_fs_fsync(struct fuse_fs *fs, const char *path, int datasync,
1303 struct fuse_file_info *fi);
1304 int fuse_fs_flush(struct fuse_fs *fs, const char *path,
1305 struct fuse_file_info *fi);
1306 int fuse_fs_statfs(struct fuse_fs *fs, const char *path, struct statvfs *buf);
1307 int fuse_fs_opendir(struct fuse_fs *fs, const char *path,
1308 struct fuse_file_info *fi);
1309 int fuse_fs_readdir(struct fuse_fs *fs, const char *path, void *buf,
1310 fuse_fill_dir_t filler, off_t off,
1311 struct fuse_file_info *fi, enum fuse_readdir_flags flags);
1312 int fuse_fs_fsyncdir(struct fuse_fs *fs, const char *path, int datasync,
1313 struct fuse_file_info *fi);
1314 int fuse_fs_releasedir(struct fuse_fs *fs, const char *path,
1315 struct fuse_file_info *fi);
1316 int fuse_fs_create(struct fuse_fs *fs, const char *path, mode_t mode,
1317 struct fuse_file_info *fi);
1318 int fuse_fs_lock(struct fuse_fs *fs, const char *path,
1319 struct fuse_file_info *fi, int cmd, struct flock *lock);
1320 int fuse_fs_flock(struct fuse_fs *fs, const char *path,
1321 struct fuse_file_info *fi, int op);
1322 int fuse_fs_chmod(struct fuse_fs *fs, const char *path, mode_t mode,
1323 struct fuse_file_info *fi);
1324 int fuse_fs_chown(struct fuse_fs *fs, const char *path, uid_t uid, gid_t gid,
1325 struct fuse_file_info *fi);
1326 int fuse_fs_truncate(struct fuse_fs *fs, const char *path, off_t size,
1327 struct fuse_file_info *fi);
1328 int fuse_fs_utimens(struct fuse_fs *fs, const char *path,
1329 const struct timespec tv[2], struct fuse_file_info *fi);
1330 int fuse_fs_access(struct fuse_fs *fs, const char *path, int mask);
1331 int fuse_fs_readlink(struct fuse_fs *fs, const char *path, char *buf,
1332 size_t len);
1333 int fuse_fs_mknod(struct fuse_fs *fs, const char *path, mode_t mode,
1334 dev_t rdev);
1335 int fuse_fs_mkdir(struct fuse_fs *fs, const char *path, mode_t mode);
1336 int fuse_fs_setxattr(struct fuse_fs *fs, const char *path, const char *name,
1337 const char *value, size_t size, int flags);
1338 int fuse_fs_getxattr(struct fuse_fs *fs, const char *path, const char *name,
1339 char *value, size_t size);
1340 int fuse_fs_listxattr(struct fuse_fs *fs, const char *path, char *list,
1341 size_t size);
1342 int fuse_fs_removexattr(struct fuse_fs *fs, const char *path,
1343 const char *name);
1344 int fuse_fs_bmap(struct fuse_fs *fs, const char *path, size_t blocksize,
1345 uint64_t *idx);
1346#if FUSE_USE_VERSION < 35
1347 int fuse_fs_ioctl(struct fuse_fs *fs, const char *path, int cmd,
1348 void *arg, struct fuse_file_info *fi, unsigned int flags,
1349 void *data);
1350#else
1351 int fuse_fs_ioctl(struct fuse_fs *fs, const char *path, unsigned int cmd,
1352 void *arg, struct fuse_file_info *fi, unsigned int flags,
1353 void *data);
1354#endif
1355 int fuse_fs_poll(struct fuse_fs *fs, const char *path,
1356 struct fuse_file_info *fi, struct fuse_pollhandle *ph,
1357 unsigned *reventsp);
1358 int fuse_fs_fallocate(struct fuse_fs *fs, const char *path, int mode,
1359 off_t offset, off_t length, struct fuse_file_info *fi);
1360ssize_t fuse_fs_copy_file_range(struct fuse_fs *fs, const char *path_in,
1361 struct fuse_file_info *fi_in, off_t off_in,
1362 const char *path_out,
1363 struct fuse_file_info *fi_out, off_t off_out,
1364 size_t len, int flags);
1365off_t fuse_fs_lseek(struct fuse_fs *fs, const char *path, off_t off, int whence,
1366 struct fuse_file_info *fi);
1367 void fuse_fs_init(struct fuse_fs *fs, struct fuse_conn_info *conn,
1368 struct fuse_config *cfg);
1369 void fuse_fs_destroy(struct fuse_fs *fs);
1370
1371 int fuse_notify_poll(struct fuse_pollhandle *ph);
1372
1386 struct fuse_fs *fuse_fs_new(const struct fuse_operations *op, size_t op_size,
1387 void *private_data);
1388
1403 typedef struct fuse_fs *(*fuse_module_factory_t)(struct fuse_args *args,
1404 struct fuse_fs *fs[]);
1415#define FUSE_REGISTER_MODULE(name_, factory_) \
1416 fuse_module_factory_t fuse_module_ ## name_ ## _factory = factory_
1417
1419 struct fuse_session *fuse_get_session(struct fuse *f);
1420
1429 int fuse_open_channel(const char *mountpoint, const char *options);
1430
1431#ifdef __cplusplus
1432}
1433#endif
1434
1435#endif /* FUSE_H_ */
fuse_getgroups
int fuse_getgroups(int size, gid_t list[])
Definition fuse.c:4654
fuse_mount
int fuse_mount(struct fuse *f, const char *mountpoint)
Definition fuse.c:5204
fuse_interrupted
int fuse_interrupted(void)
Definition fuse.c:4663
fuse_destroy
void fuse_destroy(struct fuse *f)
Definition fuse.c:5153
fuse_start_cleanup_thread
int fuse_start_cleanup_thread(struct fuse *fuse)
Definition fuse.c:4904
fuse_invalidate_path
int fuse_invalidate_path(struct fuse *f, const char *path)
Definition fuse.c:4673
fuse_get_context
struct fuse_context * fuse_get_context(void)
Definition fuse.c:4644
fuse_loop
int fuse_loop(struct fuse *f)
Definition fuse.c:4577
fuse_fill_dir_t
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_exit
void fuse_exit(struct fuse *f)
Definition fuse.c:4639
fuse_clean_cache
int fuse_clean_cache(struct fuse *fuse)
Definition fuse.c:4433
fuse_lib_help
void fuse_lib_help(struct fuse_args *args)
Definition fuse.c:4744
fuse_open_channel
int fuse_open_channel(const char *mountpoint, const char *options)
Definition helper.c:479
fuse_get_session
struct fuse_session * fuse_get_session(struct fuse *f)
Definition fuse.c:4520
fuse_unmount
void fuse_unmount(struct fuse *f)
Definition fuse.c:5209
fuse_fs_new
struct fuse_fs * fuse_fs_new(const struct fuse_operations *op, size_t op_size, void *private_data)
Definition fuse.c:4854
fuse_stop_cleanup_thread
void fuse_stop_cleanup_thread(struct fuse *fuse)
Definition fuse.c:4912
fuse_fill_dir_flags
fuse_fill_dir_flags
Definition fuse.h:58
FUSE_FILL_DIR_DEFAULTS
@ FUSE_FILL_DIR_DEFAULTS
Definition fuse.h:68
fuse_readdir_flags
fuse_readdir_flags
Definition fuse.h:42
FUSE_READDIR_DEFAULTS
@ FUSE_READDIR_DEFAULTS
Definition fuse.h:51
fuse_common.h
fuse_log
void fuse_log(enum fuse_log_level level, const char *fmt,...)
Definition fuse_log.c:77
fuse_args
Definition fuse_opt.h:109
fuse_bufvec
Definition fuse_common.h:942
fuse_config
Definition fuse.h:101
fuse_config::fmask
uint32_t fmask
Definition fuse.h:288
fuse_config::show_help
int32_t show_help
Definition fuse.h:279
fuse_config::flags
uint32_t flags
Definition fuse.h:318
fuse_config::direct_io
int32_t direct_io
Definition fuse.h:226
fuse_config::no_rofd_flush
int32_t no_rofd_flush
Definition fuse.h:297
fuse_config::nullpath_ok
int32_t nullpath_ok
Definition fuse.h:273
fuse_config::parallel_direct_writes
int32_t parallel_direct_writes
Definition fuse.h:312
fuse_config::intr_signal
int32_t intr_signal
Definition fuse.h:155
fuse_config::remember
int32_t remember
Definition fuse.h:167
fuse_config::kernel_cache
int32_t kernel_cache
Definition fuse.h:245
fuse_config::readdir_ino
int32_t readdir_ino
Definition fuse.h:207
fuse_config::use_ino
int32_t use_ino
Definition fuse.h:198
fuse_config::entry_timeout
double entry_timeout
Definition fuse.h:127
fuse_config::set_mode
int32_t set_mode
Definition fuse.h:120
fuse_config::auto_cache
int32_t auto_cache
Definition fuse.h:253
fuse_config::reserved
uint64_t reserved[48]
Definition fuse.h:323
fuse_config::intr
int32_t intr
Definition fuse.h:148
fuse_config::negative_timeout
double negative_timeout
Definition fuse.h:137
fuse_config::set_gid
int32_t set_gid
Definition fuse.h:106
fuse_config::set_uid
int32_t set_uid
Definition fuse.h:113
fuse_config::hard_remove
int32_t hard_remove
Definition fuse.h:185
fuse_config::attr_timeout
double attr_timeout
Definition fuse.h:143
fuse_conn_info
Definition fuse_common.h:555
fuse_context
Definition fuse.h:860
fuse_context::private_data
void * private_data
Definition fuse.h:874
fuse_context::uid
uid_t uid
Definition fuse.h:865
fuse_context::pid
pid_t pid
Definition fuse.h:871
fuse_context::fuse
struct fuse * fuse
Definition fuse.h:862
fuse_context::gid
gid_t gid
Definition fuse.h:868
fuse_context::umask
mode_t umask
Definition fuse.h:877
fuse_file_info
Definition fuse_common.h:58
fuse_loop_config
Definition fuse_common.h:149
fuse_operations
Definition fuse.h:349
fuse_operations::mknod
int(* mknod)(const char *, mode_t, dev_t)
Definition fuse.h:379
fuse_operations::open
int(* open)(const char *, struct fuse_file_info *)
Definition fuse.h:486
fuse_operations::readlink
int(* readlink)(const char *, char *, size_t)
Definition fuse.h:371
fuse_operations::write
int(* write)(const char *, const char *, size_t, off_t, struct fuse_file_info *)
Definition fuse.h:509
fuse_operations::fallocate
int(* fallocate)(const char *, int, off_t, off_t, struct fuse_file_info *)
Definition fuse.h:828
fuse_operations::read
int(* read)(const char *, char *, size_t, off_t, struct fuse_file_info *)
Definition fuse.h:497
fuse_operations::symlink
int(* symlink)(const char *, const char *)
Definition fuse.h:396
fuse_operations::write_buf
int(* write_buf)(const char *, struct fuse_bufvec *buf, off_t off, struct fuse_file_info *)
Definition fuse.h:781
fuse_operations::release
int(* release)(const char *, struct fuse_file_info *)
Definition fuse.h:560
fuse_operations::access
int(* access)(const char *, int)
Definition fuse.h:660
fuse_operations::lock
int(* lock)(const char *, struct fuse_file_info *, int cmd, struct flock *)
Definition fuse.h:704
fuse_operations::fsyncdir
int(* fsyncdir)(const char *, int, struct fuse_file_info *)
Definition fuse.h:631
fuse_operations::mkdir
int(* mkdir)(const char *, mode_t)
Definition fuse.h:387
fuse_operations::chown
int(* chown)(const char *, uid_t, gid_t, struct fuse_file_info *fi)
Definition fuse.h:427
fuse_operations::unlink
int(* unlink)(const char *)
Definition fuse.h:390
fuse_operations::flush
int(* flush)(const char *, struct fuse_file_info *)
Definition fuse.h:546
fuse_operations::listxattr
int(* listxattr)(const char *, char *, size_t)
Definition fuse.h:576
fuse_operations::truncate
int(* truncate)(const char *, off_t, struct fuse_file_info *fi)
Definition fuse.h:437
fuse_operations::statfs
int(* statfs)(const char *, struct statvfs *)
Definition fuse.h:516
fuse_operations::copy_file_range
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
fuse_operations::create
int(* create)(const char *, mode_t, struct fuse_file_info *)
Definition fuse.h:672
fuse_operations::utimens
int(* utimens)(const char *, const struct timespec tv[2], struct fuse_file_info *fi)
Definition fuse.h:719
fuse_operations::lseek
off_t(* lseek)(const char *, off_t off, int whence, struct fuse_file_info *)
Definition fuse.h:852
fuse_operations::getxattr
int(* getxattr)(const char *, const char *, char *, size_t)
Definition fuse.h:573
fuse_operations::setxattr
int(* setxattr)(const char *, const char *, const char *, size_t, int)
Definition fuse.h:570
fuse_operations::poll
int(* poll)(const char *, struct fuse_file_info *, struct fuse_pollhandle *ph, unsigned *reventsp)
Definition fuse.h:769
fuse_operations::fsync
int(* fsync)(const char *, int, struct fuse_file_info *)
Definition fuse.h:567
fuse_operations::chmod
int(* chmod)(const char *, mode_t, struct fuse_file_info *fi)
Definition fuse.h:417
fuse_operations::opendir
int(* opendir)(const char *, struct fuse_file_info *)
Definition fuse.h:589
fuse_operations::rmdir
int(* rmdir)(const char *)
Definition fuse.h:393
fuse_operations::releasedir
int(* releasedir)(const char *, struct fuse_file_info *)
Definition fuse.h:621
fuse_operations::getattr
int(* getattr)(const char *, struct stat *, struct fuse_file_info *fi)
Definition fuse.h:361
fuse_operations::read_buf
int(* read_buf)(const char *, struct fuse_bufvec **bufp, size_t size, off_t off, struct fuse_file_info *)
Definition fuse.h:798
fuse_operations::link
int(* link)(const char *, const char *)
Definition fuse.h:410
fuse_operations::flock
int(* flock)(const char *, struct fuse_file_info *, int op)
Definition fuse.h:818
fuse_operations::removexattr
int(* removexattr)(const char *, const char *)
Definition fuse.h:579
fuse_operations::ioctl
int(* ioctl)(const char *, unsigned int cmd, void *arg, struct fuse_file_info *, unsigned int flags, void *data)
Definition fuse.h:750
fuse_operations::rename
int(* rename)(const char *, const char *, unsigned int flags)
Definition fuse.h:407
fuse_operations::readdir
int(* readdir)(const char *, void *, fuse_fill_dir_t, off_t, struct fuse_file_info *, enum fuse_readdir_flags)
Definition fuse.h:613
fuse_operations::destroy
void(* destroy)(void *private_data)
Definition fuse.h:649
fuse_operations::bmap
int(* bmap)(const char *, size_t blocksize, uint64_t *idx)
Definition fuse.h:728
libfuse_version
Definition fuse_common.h:969