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 LGPL2.txt.
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
36/* Forward declaration */
37struct statx;
38
40struct fuse;
41
55 FUSE_READDIR_PLUS = (1 << 0)
56};
57
75 FUSE_FILL_DIR_PLUS = (1 << 1)
76};
77
93typedef int (*fuse_fill_dir_t) (void *buf, const char *name,
94 const struct stat *stbuf, off_t off,
95 enum fuse_fill_dir_flags flags);
107struct fuse_config {
112 int32_t set_gid;
113 uint32_t gid;
114
119 int32_t set_uid;
120 uint32_t uid;
121
126 int32_t set_mode;
127 uint32_t umask;
128
133 double entry_timeout;
134
143 double negative_timeout;
144
149 double attr_timeout;
150
154 int32_t intr;
155
161 int32_t intr_signal;
162
173 int32_t remember;
174
191 int32_t hard_remove;
192
204 int32_t use_ino;
205
213 int32_t readdir_ino;
214
232 int32_t direct_io;
233
251 int32_t kernel_cache;
252
259 int32_t auto_cache;
260
261 /*
262 * The timeout in seconds for which file attributes are cached
263 * for the purpose of checking if auto_cache should flush the
264 * file data on open.
265 */
266 int32_t ac_attr_timeout_set;
267 double ac_attr_timeout;
268
279 int32_t nullpath_ok;
280
285 int32_t show_help;
286 char *modules;
287 int32_t debug;
288
294 uint32_t fmask;
295 uint32_t dmask;
296
303 int32_t no_rofd_flush;
304
319
320
324 uint32_t flags;
325
329 uint64_t reserved[48];
330};
331
332
355struct fuse_operations {
367 int (*getattr) (const char *, struct stat *, struct fuse_file_info *fi);
368
377 int (*readlink) (const char *, char *, size_t);
378
385 int (*mknod) (const char *, mode_t, dev_t);
386
393 int (*mkdir) (const char *, mode_t);
394
396 int (*unlink) (const char *);
397
399 int (*rmdir) (const char *);
400
402 int (*symlink) (const char *, const char *);
403
413 int (*rename) (const char *, const char *, unsigned int flags);
414
416 int (*link) (const char *, const char *);
417
423 int (*chmod) (const char *, mode_t, struct fuse_file_info *fi);
424
433 int (*chown) (const char *, uid_t, gid_t, struct fuse_file_info *fi);
434
443 int (*truncate) (const char *, off_t, struct fuse_file_info *fi);
444
492 int (*open) (const char *, struct fuse_file_info *);
493
503 int (*read) (const char *, char *, size_t, off_t,
504 struct fuse_file_info *);
505
515 int (*write) (const char *, const char *, size_t, off_t,
516 struct fuse_file_info *);
517
522 int (*statfs) (const char *, struct statvfs *);
523
552 int (*flush) (const char *, struct fuse_file_info *);
553
566 int (*release) (const char *, struct fuse_file_info *);
567
573 int (*fsync) (const char *, int, struct fuse_file_info *);
574
576 int (*setxattr) (const char *, const char *, const char *, size_t, int);
577
579 int (*getxattr) (const char *, const char *, char *, size_t);
580
582 int (*listxattr) (const char *, char *, size_t);
583
585 int (*removexattr) (const char *, const char *);
586
595 int (*opendir) (const char *, struct fuse_file_info *);
596
619 int (*readdir) (const char *, void *, fuse_fill_dir_t, off_t,
620 struct fuse_file_info *, enum fuse_readdir_flags);
621
627 int (*releasedir) (const char *, struct fuse_file_info *);
628
637 int (*fsyncdir) (const char *, int, struct fuse_file_info *);
638
647 void *(*init) (struct fuse_conn_info *conn,
648 struct fuse_config *cfg);
649
655 void (*destroy) (void *private_data);
656
666 int (*access) (const char *, int);
667
678 int (*create) (const char *, mode_t, struct fuse_file_info *);
679
710 int (*lock) (const char *, struct fuse_file_info *, int cmd,
711 struct flock *);
712
725 int (*utimens) (const char *, const struct timespec tv[2],
726 struct fuse_file_info *fi);
727
734 int (*bmap) (const char *, size_t blocksize, uint64_t *idx);
735
736#if FUSE_USE_VERSION < 35
737 int (*ioctl) (const char *, int cmd, void *arg,
738 struct fuse_file_info *, unsigned int flags, void *data);
739#else
756 int (*ioctl) (const char *, unsigned int cmd, void *arg,
757 struct fuse_file_info *, unsigned int flags, void *data);
758#endif
759
775 int (*poll) (const char *, struct fuse_file_info *,
776 struct fuse_pollhandle *ph, unsigned *reventsp);
777
787 int (*write_buf) (const char *, struct fuse_bufvec *buf, off_t off,
788 struct fuse_file_info *);
789
804 int (*read_buf) (const char *, struct fuse_bufvec **bufp,
805 size_t size, off_t off, struct fuse_file_info *);
824 int (*flock) (const char *, struct fuse_file_info *, int op);
825
834 int (*fallocate) (const char *, int, off_t, off_t,
835 struct fuse_file_info *);
836
849 ssize_t (*copy_file_range) (const char *path_in,
850 struct fuse_file_info *fi_in,
851 off_t offset_in, const char *path_out,
852 struct fuse_file_info *fi_out,
853 off_t offset_out, size_t size, int flags);
854
858 off_t (*lseek) (const char *, off_t off, int whence, struct fuse_file_info *);
859
868 int (*statx)(const char *path, int flags, int mask, struct statx *stxbuf,
869 struct fuse_file_info *fi);
870};
871
877struct fuse_context {
879 struct fuse *fuse;
880
882 uid_t uid;
883
885 gid_t gid;
886
888 pid_t pid;
889
891 void *private_data;
892
894 mode_t umask;
895};
896
902int fuse_main_real_versioned(int argc, char *argv[],
903 const struct fuse_operations *op, size_t op_size,
904 struct libfuse_version *version, void *user_data);
905static inline int fuse_main_real(int argc, char *argv[],
906 const struct fuse_operations *op,
907 size_t op_size, void *user_data)
908{
909 struct libfuse_version version = { .major = FUSE_MAJOR_VERSION,
910 .minor = FUSE_MINOR_VERSION,
911 .hotfix = FUSE_HOTFIX_VERSION,
912 .padding = 0 };
913
914 fuse_log(FUSE_LOG_ERR,
915 "%s is a libfuse internal function, please use fuse_main()\n",
916 __func__);
917
918 return fuse_main_real_versioned(argc, argv, op, op_size, &version,
919 user_data);
920}
921
976static inline int fuse_main_fn(int argc, char *argv[],
977 const struct fuse_operations *op,
978 void *user_data)
979{
980 struct libfuse_version version = {
981 .major = FUSE_MAJOR_VERSION,
982 .minor = FUSE_MINOR_VERSION,
983 .hotfix = FUSE_HOTFIX_VERSION,
984 .padding = 0
985 };
986
987 return fuse_main_real_versioned(argc, argv, op, sizeof(*(op)), &version,
988 user_data);
989}
990#define fuse_main(argc, argv, op, user_data) \
991 fuse_main_fn(argc, argv, op, user_data)
992
993/* ----------------------------------------------------------- *
994 * More detailed API *
995 * ----------------------------------------------------------- */
996
1008void fuse_lib_help(struct fuse_args *args);
1009
1010/* Do not call this directly, use fuse_new() instead */
1011struct fuse *_fuse_new_30(struct fuse_args *args,
1012 const struct fuse_operations *op, size_t op_size,
1013 struct libfuse_version *version, void *user_data);
1014struct fuse *_fuse_new_31(struct fuse_args *args,
1015 const struct fuse_operations *op, size_t op_size,
1016 struct libfuse_version *version, void *user_data);
1017
1045#if FUSE_USE_VERSION == 30
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_30(args, op, op_size, &version, user_data);
1058}
1059#else /* FUSE_USE_VERSION */
1060static inline struct fuse *fuse_new_fn(struct fuse_args *args,
1061 const struct fuse_operations *op,
1062 size_t op_size, void *user_data)
1063{
1064 struct libfuse_version version = {
1065 .major = FUSE_MAJOR_VERSION,
1066 .minor = FUSE_MINOR_VERSION,
1067 .hotfix = FUSE_HOTFIX_VERSION,
1068 .padding = 0
1069 };
1070
1071 return _fuse_new_31(args, op, op_size, &version, user_data);
1072}
1073#endif
1074#define fuse_new(args, op, size, data) fuse_new_fn(args, op, size, data)
1075
1084int fuse_mount(struct fuse *f, const char *mountpoint);
1085
1093void fuse_unmount(struct fuse *f);
1094
1103void fuse_destroy(struct fuse *f);
1104
1120int fuse_loop(struct fuse *f);
1121
1130void fuse_exit(struct fuse *f);
1131
1132#if FUSE_USE_VERSION < 32
1133int fuse_loop_mt_31(struct fuse *f, int clone_fd);
1134#define fuse_loop_mt(f, clone_fd) fuse_loop_mt_31(f, clone_fd)
1135#elif FUSE_USE_VERSION < FUSE_MAKE_VERSION(3, 12)
1136int fuse_loop_mt_32(struct fuse *f, struct fuse_loop_config *config);
1137#define fuse_loop_mt(f, config) fuse_loop_mt_32(f, config)
1138#else
1170#if (defined(LIBFUSE_BUILT_WITH_VERSIONED_SYMBOLS))
1171int fuse_loop_mt(struct fuse *f, struct fuse_loop_config *config);
1172#else
1173#define fuse_loop_mt(f, config) fuse_loop_mt_312(f, config)
1174#endif /* LIBFUSE_BUILT_WITH_VERSIONED_SYMBOLS */
1175#endif
1176
1177
1186struct fuse_context *fuse_get_context(void);
1187
1206int fuse_getgroups(int size, gid_t list[]);
1207
1213int fuse_interrupted(void);
1214
1226int fuse_invalidate_path(struct fuse *f, const char *path);
1227
1236
1243void fuse_stop_cleanup_thread(struct fuse *fuse);
1244
1254int fuse_clean_cache(struct fuse *fuse);
1255
1256/*
1257 * Stacking API
1258 */
1259
1265struct fuse_fs;
1266
1267/*
1268 * These functions call the relevant filesystem operation, and return
1269 * the result.
1270 *
1271 * If the operation is not defined, they return -ENOSYS, with the
1272 * exception of fuse_fs_open, fuse_fs_release, fuse_fs_opendir,
1273 * fuse_fs_releasedir and fuse_fs_statfs, which return 0.
1274 */
1275
1276int fuse_fs_getattr(struct fuse_fs *fs, const char *path, struct stat *buf,
1277 struct fuse_file_info *fi);
1278int fuse_fs_rename(struct fuse_fs *fs, const char *oldpath,
1279 const char *newpath, unsigned int flags);
1280int fuse_fs_unlink(struct fuse_fs *fs, const char *path);
1281int fuse_fs_rmdir(struct fuse_fs *fs, const char *path);
1282int fuse_fs_symlink(struct fuse_fs *fs, const char *linkname,
1283 const char *path);
1284int fuse_fs_link(struct fuse_fs *fs, const char *oldpath, const char *newpath);
1285int fuse_fs_release(struct fuse_fs *fs, const char *path,
1286 struct fuse_file_info *fi);
1287int fuse_fs_open(struct fuse_fs *fs, const char *path,
1288 struct fuse_file_info *fi);
1289int fuse_fs_read(struct fuse_fs *fs, const char *path, char *buf, size_t size,
1290 off_t off, struct fuse_file_info *fi);
1291int fuse_fs_read_buf(struct fuse_fs *fs, const char *path,
1292 struct fuse_bufvec **bufp, size_t size, off_t off,
1293 struct fuse_file_info *fi);
1294int fuse_fs_write(struct fuse_fs *fs, const char *path, const char *buf,
1295 size_t size, off_t off, struct fuse_file_info *fi);
1296int fuse_fs_write_buf(struct fuse_fs *fs, const char *path,
1297 struct fuse_bufvec *buf, off_t off,
1298 struct fuse_file_info *fi);
1299int fuse_fs_fsync(struct fuse_fs *fs, const char *path, int datasync,
1300 struct fuse_file_info *fi);
1301int fuse_fs_flush(struct fuse_fs *fs, const char *path,
1302 struct fuse_file_info *fi);
1303int fuse_fs_statfs(struct fuse_fs *fs, const char *path, struct statvfs *buf);
1304int fuse_fs_opendir(struct fuse_fs *fs, const char *path,
1305 struct fuse_file_info *fi);
1306int fuse_fs_readdir(struct fuse_fs *fs, const char *path, void *buf,
1307 fuse_fill_dir_t filler, off_t off,
1308 struct fuse_file_info *fi, enum fuse_readdir_flags flags);
1309int fuse_fs_fsyncdir(struct fuse_fs *fs, const char *path, int datasync,
1310 struct fuse_file_info *fi);
1311int fuse_fs_releasedir(struct fuse_fs *fs, const char *path,
1312 struct fuse_file_info *fi);
1313int fuse_fs_create(struct fuse_fs *fs, const char *path, mode_t mode,
1314 struct fuse_file_info *fi);
1315int fuse_fs_lock(struct fuse_fs *fs, const char *path,
1316 struct fuse_file_info *fi, int cmd, struct flock *lock);
1317int fuse_fs_flock(struct fuse_fs *fs, const char *path,
1318 struct fuse_file_info *fi, int op);
1319int fuse_fs_chmod(struct fuse_fs *fs, const char *path, mode_t mode,
1320 struct fuse_file_info *fi);
1321int fuse_fs_chown(struct fuse_fs *fs, const char *path, uid_t uid, gid_t gid,
1322 struct fuse_file_info *fi);
1323int fuse_fs_truncate(struct fuse_fs *fs, const char *path, off_t size,
1324 struct fuse_file_info *fi);
1325int fuse_fs_utimens(struct fuse_fs *fs, const char *path,
1326 const struct timespec tv[2], struct fuse_file_info *fi);
1327int fuse_fs_access(struct fuse_fs *fs, const char *path, int mask);
1328int fuse_fs_readlink(struct fuse_fs *fs, const char *path, char *buf,
1329 size_t len);
1330int fuse_fs_mknod(struct fuse_fs *fs, const char *path, mode_t mode,
1331 dev_t rdev);
1332int fuse_fs_mkdir(struct fuse_fs *fs, const char *path, mode_t mode);
1333int fuse_fs_setxattr(struct fuse_fs *fs, const char *path, const char *name,
1334 const char *value, size_t size, int flags);
1335int fuse_fs_getxattr(struct fuse_fs *fs, const char *path, const char *name,
1336 char *value, size_t size);
1337int fuse_fs_listxattr(struct fuse_fs *fs, const char *path, char *list,
1338 size_t size);
1339int fuse_fs_removexattr(struct fuse_fs *fs, const char *path,
1340 const char *name);
1341int fuse_fs_bmap(struct fuse_fs *fs, const char *path, size_t blocksize,
1342 uint64_t *idx);
1343#if FUSE_USE_VERSION < 35
1344int fuse_fs_ioctl(struct fuse_fs *fs, const char *path, int cmd,
1345 void *arg, struct fuse_file_info *fi, unsigned int flags,
1346 void *data);
1347#else
1348int fuse_fs_ioctl(struct fuse_fs *fs, const char *path, unsigned int cmd,
1349 void *arg, struct fuse_file_info *fi, unsigned int flags,
1350 void *data);
1351#endif
1352int fuse_fs_poll(struct fuse_fs *fs, const char *path,
1353 struct fuse_file_info *fi, struct fuse_pollhandle *ph,
1354 unsigned *reventsp);
1355int fuse_fs_fallocate(struct fuse_fs *fs, const char *path, int mode,
1356 off_t offset, off_t length, struct fuse_file_info *fi);
1357ssize_t fuse_fs_copy_file_range(struct fuse_fs *fs, const char *path_in,
1358 struct fuse_file_info *fi_in, off_t off_in,
1359 const char *path_out,
1360 struct fuse_file_info *fi_out, off_t off_out,
1361 size_t len, int flags);
1362off_t fuse_fs_lseek(struct fuse_fs *fs, const char *path, off_t off, int whence,
1363 struct fuse_file_info *fi);
1364int fuse_fs_statx(struct fuse_fs *fs, const char *path, int flags, int mask,
1365 struct statx *stxbuf, struct fuse_file_info *fi);
1366void fuse_fs_init(struct fuse_fs *fs, struct fuse_conn_info *conn,
1367 struct fuse_config *cfg);
1368void fuse_fs_destroy(struct fuse_fs *fs);
1369
1370int fuse_notify_poll(struct fuse_pollhandle *ph);
1371
1385struct fuse_fs *fuse_fs_new(const struct fuse_operations *op, size_t op_size,
1386 void *private_data);
1387
1402typedef struct fuse_fs *(*fuse_module_factory_t)(struct fuse_args *args,
1403 struct fuse_fs *fs[]);
1414#define FUSE_REGISTER_MODULE(name_, factory_) \
1415 fuse_module_factory_t fuse_module_ ## name_ ## _factory = factory_
1416
1418struct fuse_session *fuse_get_session(struct fuse *f);
1419
1428int fuse_open_channel(const char *mountpoint, const char *options);
1429
1430#ifdef __cplusplus
1431}
1432#endif
1433
1434#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
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:93
fuse_readdir_flags
Definition fuse.h:45
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(* statx)(const char *path, int flags, int mask, struct statx *stxbuf, struct fuse_file_info *fi)
Definition fuse.h:868
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