#ifndef FUSE_H_
#define FUSE_H_ 20211204
#include <fcntl.h>
#include <fuse_opt.h>
#include <refuse/buf.h>
#include <refuse/chan.h>
#include <refuse/legacy.h>
#include <refuse/poll.h>
#include <refuse/session.h>
#include <sys/cdefs.h>
#include <sys/stat.h>
#include <sys/statvfs.h>
#include <sys/types.h>
#include <utime.h>
#define FUSE_MAKE_VERSION(maj, min) \
(((maj) > 3 || ((maj) == 3 && (min) >= 10)) \
? (maj) * 100 + (min) \
: (maj) * 10 + (min))
#define _REFUSE_MAJOR_VERSION_ 3
#define _REFUSE_MINOR_VERSION_ 10
#define _REFUSE_VERSION_ FUSE_MAKE_VERSION(_REFUSE_MAJOR_VERSION_, _REFUSE_MINOR_VERSION_)
#if defined(FUSE_USE_VERSION)
# if FUSE_USE_VERSION > _REFUSE_VERSION_
# warning "The requested API version is higher than the latest one supported by refuse."
# elif FUSE_USE_VERSION < 11
# warning "The requested API version is lower than the oldest one supported by refuse."
# endif
#else
# if !defined(_REFUSE_IMPLEMENTATION_)
# warning "User code including <fuse.h> should define FUSE_USE_VERSION before including this header. Defaulting to the latest version."
# define FUSE_USE_VERSION _REFUSE_VERSION_
# endif
#endif
#if defined(FUSE_USE_VERSION)
# define FUSE_VERSION FUSE_USE_VERSION
# define FUSE_MAJOR_VERSION (FUSE_VERSION / 10)
# define FUSE_MINOR_VERSION (FUSE_VERSION % 10)
#endif
#ifdef __cplusplus
extern "C" {
#endif
struct fuse;
struct fuse_file_info {
int32_t flags;
uint32_t fh_old;
int32_t writepage:1;
uint32_t direct_io:1;
uint32_t keep_cache:1;
uint32_t flush:1;
uint32_t nonseekable:1;
uint32_t flock_release:1;
uint32_t cache_readdir:1;
uint32_t padding:26;
uint64_t fh;
uint64_t lock_owner;
uint32_t poll_events;
};
struct fuse_conn_info {
uint32_t proto_major;
uint32_t proto_minor;
uint32_t async_read;
uint32_t max_write;
uint32_t max_read;
uint32_t max_readahead;
uint32_t capable;
uint32_t want;
uint32_t max_background;
uint32_t congestion_threshold;
uint32_t time_gran;
uint32_t reserved[22];
};
struct fuse_context {
struct fuse *fuse;
uid_t uid;
gid_t gid;
pid_t pid;
void *private_data;
mode_t umask;
};
#define FUSE_CAP_ASYNC_READ (1 << 0)
#define FUSE_CAP_POSIX_LOCKS (1 << 1)
#define FUSE_CAP_ATOMIC_O_TRUNC (1 << 3)
#define FUSE_CAP_EXPORT_SUPPORT (1 << 4)
#define FUSE_CAP_BIG_WRITES (1 << 5)
#define FUSE_CAP_DONT_MASK (1 << 6)
#define FUSE_CAP_SPLICE_WRITE (1 << 7)
#define FUSE_CAP_SPLICE_MOVE (1 << 8)
#define FUSE_CAP_SPLICE_READ (1 << 9)
#define FUSE_CAP_FLOCK_LOCKS (1 << 10)
#define FUSE_CAP_IOCTL_DIR (1 << 11)
#define FUSE_CAP_AUTO_INVAL_DATA (1 << 12)
#define FUSE_CAP_READDIRPLUS (1 << 13)
#define FUSE_CAP_READDIRPLUS_AUTO (1 << 14)
#define FUSE_CAP_ASYNC_DIO (1 << 15)
#define FUSE_CAP_WRITEBACK_CACHE (1 << 16)
#define FUSE_CAP_NO_OPEN_SUPPORT (1 << 17)
#define FUSE_CAP_PARALLEL_DIROPS (1 << 18)
#define FUSE_CAP_POSIX_ACL (1 << 19)
#define FUSE_CAP_HANDLE_KILLPRIV (1 << 20)
#define FUSE_CAP_CACHE_SYMLINKS (1 << 23)
#define FUSE_CAP_NO_OPENDIR_SUPPORT (1 << 24)
#define FUSE_IOCTL_COMPAT (1 << 0)
#define FUSE_IOCTL_UNRESTRICTED (1 << 1)
#define FUSE_IOCTL_RETRY (1 << 2)
#define FUSE_IOCTL_DIR (1 << 4)
#define FUSE_IOCTL_MAX_IOV 256
enum fuse_readdir_flags {
FUSE_READDIR_PLUS = (1 << 0),
};
enum fuse_fill_dir_flags {
FUSE_FILL_DIR_PLUS = (1 << 1),
};
struct fuse_config {
int set_gid;
unsigned int gid;
int set_uid;
unsigned int uid;
int set_mode;
unsigned int umask;
double entry_timeout;
double negative_timeout;
double attr_timeout;
int intr;
int intr_signal;
int remember;
int hard_remove;
int use_ino;
int readdir_ino;
int direct_io;
int kernel_cache;
int auto_cache;
int ac_attr_timeout_set;
double ac_attr_timeout;
int nullpath_ok;
};
struct fuse_loop_config {
int clone_fd;
unsigned int max_idle_threads;
};
struct fuse_args {
int argc;
char **argv;
int allocated;
};
#define FUSE_ARGS_INIT(argc, argv) { argc, argv, 0 }
int fuse_loop(struct fuse *);
void fuse_exit(struct fuse *);
struct fuse_context *fuse_get_context(void);
void fuse_lib_help(struct fuse_args *args);
int fuse_daemonize(int foreground) __RENAME(fuse_daemonize_rev1);
int fuse_interrupted(void);
int fuse_invalidate_path(struct fuse *fuse, const char *path);
int fuse_version(void);
const char *fuse_pkgversion(void);
int fuse_getgroups(int size, gid_t list[]);
int fuse_start_cleanup_thread(struct fuse *fuse);
void fuse_stop_cleanup_thread(struct fuse *fuse);
int fuse_clean_cache(struct fuse *fuse);
int __fuse_main(int argc, char* argv[],
const void* op, int op_version, void* user_data);
#include <refuse/v11.h>
#include <refuse/v21.h>
#include <refuse/v22.h>
#include <refuse/v23.h>
#include <refuse/v25.h>
#include <refuse/v26.h>
#include <refuse/v28.h>
#include <refuse/v29.h>
#include <refuse/v30.h>
#include <refuse/v32.h>
#include <refuse/v34.h>
#include <refuse/v35.h>
#include <refuse/v38.h>
#include <refuse/fs.h>
#define _MK_FUSE_OPERATIONS_(VER) __CONCAT(fuse_operations_v,VER)
#if defined(FUSE_USE_VERSION)
# if FUSE_USE_VERSION < 21
# define _FUSE_OP_VERSION__ 11
# define fuse_dirfil_t fuse_dirfil_t_v11
# define fuse_operations _MK_FUSE_OPERATIONS_(_FUSE_OP_VERSION__)
static __inline int
fuse_main(int argc, char *argv[], const struct fuse_operations *op) {
return __fuse_main(argc, argv, op, _FUSE_OP_VERSION__, NULL);
}
# define fuse_mount fuse_mount_v11
# define fuse_unmount fuse_unmount_v11
static __inline struct fuse *
fuse_new(int fd, int flags, const struct fuse_operations *op) {
return fuse_new_v11(fd, flags, op, _FUSE_OP_VERSION__);
}
# define fuse_destroy fuse_destroy_v11
# define fuse_loop_mt fuse_loop_mt_v11
# elif FUSE_USE_VERSION == 21
# define _FUSE_OP_VERSION__ 21
# define fuse_dirfil_t fuse_dirfil_t_v11
# define fuse_operations _MK_FUSE_OPERATIONS_(_FUSE_OP_VERSION__)
static __inline int
fuse_main(int argc, char *argv[], const struct fuse_operations *op) {
return __fuse_main(argc, argv, op, _FUSE_OP_VERSION__, NULL);
}
# define fuse_mount fuse_mount_v21
# define fuse_unmount fuse_unmount_v11
static __inline struct fuse *
fuse_new(int fd, const char *opts, const struct fuse_operations *op) {
return fuse_new_v21(fd, opts, op, _FUSE_OP_VERSION__, NULL);
}
# define fuse_destroy fuse_destroy_v11
# define fuse_loop_mt fuse_loop_mt_v11
# elif FUSE_USE_VERSION == 22
# define _FUSE_OP_VERSION__ 22
# define fuse_dirfil_t fuse_dirfil_t_v22
# define fuse_operations _MK_FUSE_OPERATIONS_(_FUSE_OP_VERSION__)
static __inline int
fuse_main(int argc, char *argv[], const struct fuse_operations *op) {
return __fuse_main(argc, argv, op, _FUSE_OP_VERSION__, NULL);
}
# define fuse_mount fuse_mount_v21
# define fuse_unmount fuse_unmount_v11
static __inline struct fuse *
fuse_new(int fd, const char *opts, const struct fuse_operations *op) {
return fuse_new_v21(fd, opts, op, _FUSE_OP_VERSION__, NULL);
}
# define fuse_destroy fuse_destroy_v11
# define fuse_loop_mt fuse_loop_mt_v11
static __inline struct fuse *
fuse_setup(int argc, char *argv[], const struct fuse_operations *op,
size_t op_size __attribute__((__unused__)),
char **mountpoint, int *multithreaded, int *fd) {
return fuse_setup_v22(argc, argv, op, _FUSE_OP_VERSION__,
mountpoint, multithreaded, fd);
}
# define fuse_teardown fuse_teardown_v22
# elif FUSE_USE_VERSION >= 23 && FUSE_USE_VERSION <= 24
# define _FUSE_OP_VERSION__ 23
# define fuse_dirfil_t fuse_dirfil_t_v22
# define fuse_fill_dir_t fuse_fill_dir_t_v23
# define fuse_operations _MK_FUSE_OPERATIONS_(_FUSE_OP_VERSION__)
static __inline int
fuse_main(int argc, char *argv[], const struct fuse_operations *op) {
return __fuse_main(argc, argv, op, _FUSE_OP_VERSION__, NULL);
}
# define fuse_mount fuse_mount_v21
# define fuse_unmount fuse_unmount_v11
static __inline struct fuse *
fuse_new(int fd, const char *opts, const struct fuse_operations *op,
size_t op_size __attribute__((__unused__))) {
return fuse_new_v21(fd, opts, op, _FUSE_OP_VERSION__, NULL);
}
# define fuse_destroy fuse_destroy_v11
# define fuse_loop_mt fuse_loop_mt_v11
static __inline struct fuse *
fuse_setup(int argc, char *argv[], const struct fuse_operations *op,
size_t op_size __attribute__((__unused__)),
char **mountpoint, int *multithreaded, int *fd) {
return fuse_setup_v22(argc, argv, op, _FUSE_OP_VERSION__,
mountpoint, multithreaded, fd);
}
# define fuse_teardown fuse_teardown_v22
# elif FUSE_USE_VERSION == 25
# define _FUSE_OP_VERSION__ 25
# define fuse_dirfil_t fuse_dirfil_t_v22
# define fuse_fill_dir_t fuse_fill_dir_t_v23
# define fuse_operations _MK_FUSE_OPERATIONS_(_FUSE_OP_VERSION__)
static __inline int
fuse_main(int argc, char *argv[], const struct fuse_operations *op) {
return __fuse_main(argc, argv, op, _FUSE_OP_VERSION__, NULL);
}
# define fuse_mount fuse_mount_v25
# define fuse_unmount fuse_unmount_v11
static __inline struct fuse *
fuse_new(int fd, struct fuse_args *args, const struct fuse_operations *op,
size_t op_size __attribute__((__unused__))) {
return fuse_new_v25(fd, args, op, _FUSE_OP_VERSION__, NULL);
}
# define fuse_destroy fuse_destroy_v11
# define fuse_loop_mt fuse_loop_mt_v11
static __inline struct fuse *
fuse_setup(int argc, char *argv[], const struct fuse_operations *op,
size_t op_size __attribute__((__unused__)),
char **mountpoint, int *multithreaded, int *fd) {
return fuse_setup_v22(argc, argv, op, _FUSE_OP_VERSION__,
mountpoint, multithreaded, fd);
}
# define fuse_teardown fuse_teardown_v22
# define fuse_parse_cmdline fuse_parse_cmdline_v25
# elif FUSE_USE_VERSION >= 26 && FUSE_USE_VERSION <= 27
# define _FUSE_OP_VERSION__ 26
# define fuse_dirfil_t fuse_dirfil_t_v22
# define fuse_fill_dir_t fuse_fill_dir_t_v23
# define fuse_operations _MK_FUSE_OPERATIONS_(_FUSE_OP_VERSION__)
static __inline struct fuse_fs *
fuse_fs_new(const struct fuse_operations *op,
size_t op_size __attribute__((__unused__)), void *user_data) {
return __fuse_fs_new(op, _FUSE_OP_VERSION__, user_data);
}
# define fuse_fs_getattr fuse_fs_getattr_v27
# define fuse_fs_rename fuse_fs_rename_v27
# define fuse_fs_chmod fuse_fs_chmod_v27
# define fuse_fs_chown fuse_fs_chown_v27
# define fuse_fs_readdir fuse_fs_readdir_v27
# define fuse_fs_truncate fuse_fs_truncate_v27
# define fuse_fs_utimens fuse_fs_utimens_v27
# define fuse_fs_init fuse_fs_init_v27
static __inline int
fuse_main(int argc, char *argv[], const struct fuse_operations *op, void* user_data) {
return __fuse_main(argc, argv, op, _FUSE_OP_VERSION__, user_data);
}
# define fuse_mount fuse_mount_v26
# define fuse_unmount fuse_unmount_v26
static __inline struct fuse *
fuse_new(struct fuse_chan *ch, struct fuse_args *args,
const struct fuse_operations *op,
size_t op_size __attribute__((__unused__)), void *user_data) {
return fuse_new_v26(ch, args, op, _FUSE_OP_VERSION__, user_data);
}
# define fuse_destroy fuse_destroy_v11
# define fuse_loop_mt fuse_loop_mt_v11
static __inline struct fuse *
fuse_setup(int argc, char *argv[], const struct fuse_operations *op,
size_t op_size __attribute__((__unused__)),
char **mountpoint, int *multithreaded, void *user_data) {
return fuse_setup_v26(argc, argv, op, _FUSE_OP_VERSION__,
mountpoint, multithreaded, user_data);
}
# define fuse_teardown fuse_teardown_v26
# define fuse_parse_cmdline fuse_parse_cmdline_v25
# elif FUSE_USE_VERSION == 28
# define _FUSE_OP_VERSION__ 28
# define fuse_dirfil_t fuse_dirfil_t_v22
# define fuse_fill_dir_t fuse_fill_dir_t_v23
# define fuse_operations _MK_FUSE_OPERATIONS_(_FUSE_OP_VERSION__)
static __inline struct fuse_fs *
fuse_fs_new(const struct fuse_operations *op,
size_t op_size __attribute__((__unused__)), void *user_data) {
return __fuse_fs_new(op, _FUSE_OP_VERSION__, user_data);
}
# define fuse_fs_getattr fuse_fs_getattr_v27
# define fuse_fs_rename fuse_fs_rename_v27
# define fuse_fs_chmod fuse_fs_chmod_v27
# define fuse_fs_chown fuse_fs_chown_v27
# define fuse_fs_readdir fuse_fs_readdir_v27
# define fuse_fs_truncate fuse_fs_truncate_v27
# define fuse_fs_utimens fuse_fs_utimens_v27
# define fuse_fs_ioctl fuse_fs_ioctl_v28
# define fuse_fs_init fuse_fs_init_v27
static __inline int
fuse_main(int argc, char *argv[], const struct fuse_operations *op, void* user_data) {
return __fuse_main(argc, argv, op, _FUSE_OP_VERSION__, user_data);
}
# define fuse_mount fuse_mount_v26
# define fuse_unmount fuse_unmount_v26
static __inline struct fuse *
fuse_new(struct fuse_chan *ch, struct fuse_args *args,
const struct fuse_operations *op,
size_t op_size __attribute__((__unused__)), void *user_data) {
return fuse_new_v26(ch, args, op, _FUSE_OP_VERSION__, user_data);
}
# define fuse_destroy fuse_destroy_v11
# define fuse_loop_mt fuse_loop_mt_v11
static __inline struct fuse *
fuse_setup(int argc, char *argv[], const struct fuse_operations *op,
size_t op_size __attribute__((__unused__)),
char **mountpoint, int *multithreaded, void *user_data) {
return fuse_setup_v26(argc, argv, op, _FUSE_OP_VERSION__,
mountpoint, multithreaded, user_data);
}
# define fuse_teardown fuse_teardown_v26
# define fuse_parse_cmdline fuse_parse_cmdline_v25
# elif FUSE_USE_VERSION == 29
# define _FUSE_OP_VERSION__ 29
# define fuse_dirfil_t fuse_dirfil_t_v22
# define fuse_fill_dir_t fuse_fill_dir_t_v23
# define fuse_operations _MK_FUSE_OPERATIONS_(_FUSE_OP_VERSION__)
static __inline struct fuse_fs *
fuse_fs_new(const struct fuse_operations *op,
size_t op_size __attribute__((__unused__)), void *user_data) {
return __fuse_fs_new(op, _FUSE_OP_VERSION__, user_data);
}
# define fuse_fs_getattr fuse_fs_getattr_v27
# define fuse_fs_rename fuse_fs_rename_v27
# define fuse_fs_chmod fuse_fs_chmod_v27
# define fuse_fs_chown fuse_fs_chown_v27
# define fuse_fs_readdir fuse_fs_readdir_v27
# define fuse_fs_truncate fuse_fs_truncate_v27
# define fuse_fs_utimens fuse_fs_utimens_v27
# define fuse_fs_ioctl fuse_fs_ioctl_v28
# define fuse_fs_init fuse_fs_init_v27
static __inline int
fuse_main(int argc, char *argv[], const struct fuse_operations *op, void* user_data) {
return __fuse_main(argc, argv, op, _FUSE_OP_VERSION__, user_data);
}
# define fuse_mount fuse_mount_v26
# define fuse_unmount fuse_unmount_v26
static __inline struct fuse *
fuse_new(struct fuse_chan *ch, struct fuse_args *args,
const struct fuse_operations *op,
size_t op_size __attribute__((__unused__)), void *user_data) {
return fuse_new_v26(ch, args, op, _FUSE_OP_VERSION__, user_data);
}
# define fuse_destroy fuse_destroy_v11
# define fuse_loop_mt fuse_loop_mt_v11
static __inline struct fuse *
fuse_setup(int argc, char *argv[], const struct fuse_operations *op,
size_t op_size __attribute__((__unused__)),
char **mountpoint, int *multithreaded, void *user_data) {
return fuse_setup_v26(argc, argv, op, _FUSE_OP_VERSION__,
mountpoint, multithreaded, user_data);
}
# define fuse_teardown fuse_teardown_v26
# define fuse_parse_cmdline fuse_parse_cmdline_v25
# elif FUSE_USE_VERSION >= 30 && FUSE_USE_VERSION <= 31
# define _FUSE_OP_VERSION__ 30
# define fuse_fill_dir_t fuse_fill_dir_t_v30
# define fuse_operations _MK_FUSE_OPERATIONS_(_FUSE_OP_VERSION__)
static __inline struct fuse_fs *
fuse_fs_new(const struct fuse_operations *op,
size_t op_size __attribute__((__unused__)), void *user_data) {
return __fuse_fs_new(op, _FUSE_OP_VERSION__, user_data);
}
# define fuse_fs_getattr fuse_fs_getattr_v30
# define fuse_fs_rename fuse_fs_rename_v30
# define fuse_fs_chmod fuse_fs_chmod_v30
# define fuse_fs_chown fuse_fs_chown_v30
# define fuse_fs_readdir fuse_fs_readdir_v30
# define fuse_fs_truncate fuse_fs_truncate_v30
# define fuse_fs_utimens fuse_fs_utimens_v30
# define fuse_fs_ioctl fuse_fs_ioctl_v28
# define fuse_fs_init fuse_fs_init_v30
static __inline int
fuse_main(int argc, char *argv[], const struct fuse_operations *op, void* user_data) {
return __fuse_main(argc, argv, op, _FUSE_OP_VERSION__, user_data);
}
# define fuse_mount fuse_mount_v30
# define fuse_unmount fuse_unmount_v30
static __inline struct fuse *
fuse_new(struct fuse_args *args, const struct fuse_operations *op,
size_t op_size __attribute__((__unused__)), void *user_data) {
return fuse_new_v30(args, op, _FUSE_OP_VERSION__, user_data);
}
# define fuse_destroy fuse_destroy_v30
# define fuse_loop_mt fuse_loop_mt_v30
# define fuse_parse_cmdline fuse_parse_cmdline_v30
# elif FUSE_USE_VERSION >= 32 && FUSE_USE_VERSION <= 33
# define _FUSE_OP_VERSION__ 30
# define fuse_fill_dir_t fuse_fill_dir_t_v30
# define fuse_operations _MK_FUSE_OPERATIONS_(_FUSE_OP_VERSION__)
static __inline struct fuse_fs *
fuse_fs_new(const struct fuse_operations *op,
size_t op_size __attribute__((__unused__)), void *user_data) {
return __fuse_fs_new(op, _FUSE_OP_VERSION__, user_data);
}
# define fuse_fs_getattr fuse_fs_getattr_v30
# define fuse_fs_rename fuse_fs_rename_v30
# define fuse_fs_chmod fuse_fs_chmod_v30
# define fuse_fs_chown fuse_fs_chown_v30
# define fuse_fs_readdir fuse_fs_readdir_v30
# define fuse_fs_truncate fuse_fs_truncate_v30
# define fuse_fs_utimens fuse_fs_utimens_v30
# define fuse_fs_ioctl fuse_fs_ioctl_v28
# define fuse_fs_init fuse_fs_init_v30
static __inline int
fuse_main(int argc, char *argv[], const struct fuse_operations *op, void* user_data) {
return __fuse_main(argc, argv, op, _FUSE_OP_VERSION__, user_data);
}
# define fuse_mount fuse_mount_v30
# define fuse_unmount fuse_unmount_v30
static __inline struct fuse *
fuse_new(struct fuse_args *args, const struct fuse_operations *op,
size_t op_size __attribute__((__unused__)), void *user_data) {
return fuse_new_v30(args, op, _FUSE_OP_VERSION__, user_data);
}
# define fuse_destroy fuse_destroy_v30
# define fuse_loop_mt fuse_loop_mt_v32
# define fuse_parse_cmdline fuse_parse_cmdline_v30
# elif FUSE_USE_VERSION == 34
# define _FUSE_OP_VERSION__ 34
# define fuse_fill_dir_t fuse_fill_dir_t_v30
# define fuse_operations _MK_FUSE_OPERATIONS_(_FUSE_OP_VERSION__)
static __inline struct fuse_fs *
fuse_fs_new(const struct fuse_operations *op,
size_t op_size __attribute__((__unused__)), void *user_data) {
return __fuse_fs_new(op, _FUSE_OP_VERSION__, user_data);
}
# define fuse_fs_getattr fuse_fs_getattr_v30
# define fuse_fs_rename fuse_fs_rename_v30
# define fuse_fs_chmod fuse_fs_chmod_v30
# define fuse_fs_chown fuse_fs_chown_v30
# define fuse_fs_readdir fuse_fs_readdir_v30
# define fuse_fs_truncate fuse_fs_truncate_v30
# define fuse_fs_utimens fuse_fs_utimens_v30
# define fuse_fs_ioctl fuse_fs_ioctl_v28
# define fuse_fs_init fuse_fs_init_v30
static __inline int
fuse_main(int argc, char *argv[], const struct fuse_operations *op, void* user_data) {
return __fuse_main(argc, argv, op, _FUSE_OP_VERSION__, user_data);
}
# define fuse_mount fuse_mount_v30
# define fuse_unmount fuse_unmount_v30
static __inline struct fuse *
fuse_new(struct fuse_args *args, const struct fuse_operations *op,
size_t op_size __attribute__((__unused__)), void *user_data) {
return fuse_new_v30(args, op, _FUSE_OP_VERSION__, user_data);
}
# define fuse_destroy fuse_destroy_v30
# define fuse_loop_mt fuse_loop_mt_v32
# define fuse_parse_cmdline fuse_parse_cmdline_v30
# elif FUSE_USE_VERSION >= 35 && FUSE_USE_VERSION <= 37
# define _FUSE_OP_VERSION__ 35
# define fuse_fill_dir_t fuse_fill_dir_t_v30
# define fuse_operations _MK_FUSE_OPERATIONS_(_FUSE_OP_VERSION__)
static __inline struct fuse_fs *
fuse_fs_new(const struct fuse_operations *op,
size_t op_size __attribute__((__unused__)), void *user_data) {
return __fuse_fs_new(op, _FUSE_OP_VERSION__, user_data);
}
# define fuse_fs_getattr fuse_fs_getattr_v30
# define fuse_fs_rename fuse_fs_rename_v30
# define fuse_fs_chmod fuse_fs_chmod_v30
# define fuse_fs_chown fuse_fs_chown_v30
# define fuse_fs_readdir fuse_fs_readdir_v30
# define fuse_fs_truncate fuse_fs_truncate_v30
# define fuse_fs_utimens fuse_fs_utimens_v30
# define fuse_fs_ioctl fuse_fs_ioctl_v35
# define fuse_fs_init fuse_fs_init_v30
static __inline int
fuse_main(int argc, char *argv[], const struct fuse_operations *op, void* user_data) {
return __fuse_main(argc, argv, op, _FUSE_OP_VERSION__, user_data);
}
# define fuse_mount fuse_mount_v30
# define fuse_unmount fuse_unmount_v30
static __inline struct fuse *
fuse_new(struct fuse_args *args, const struct fuse_operations *op,
size_t op_size __attribute__((__unused__)), void *user_data) {
return fuse_new_v30(args, op, _FUSE_OP_VERSION__, user_data);
}
# define fuse_destroy fuse_destroy_v30
# define fuse_loop_mt fuse_loop_mt_v32
# define fuse_parse_cmdline fuse_parse_cmdline_v30
# elif FUSE_USE_VERSION >= 38 && FUSE_USE_VERSION <= 310
# define _FUSE_OP_VERSION__ 38
# define fuse_fill_dir_t fuse_fill_dir_t_v30
# define fuse_operations _MK_FUSE_OPERATIONS_(_FUSE_OP_VERSION__)
static __inline struct fuse_fs *
fuse_fs_new(const struct fuse_operations *op,
size_t op_size __attribute__((__unused__)), void *user_data) {
return __fuse_fs_new(op, _FUSE_OP_VERSION__, user_data);
}
# define fuse_fs_getattr fuse_fs_getattr_v30
# define fuse_fs_rename fuse_fs_rename_v30
# define fuse_fs_chmod fuse_fs_chmod_v30
# define fuse_fs_chown fuse_fs_chown_v30
# define fuse_fs_readdir fuse_fs_readdir_v30
# define fuse_fs_truncate fuse_fs_truncate_v30
# define fuse_fs_utimens fuse_fs_utimens_v30
# define fuse_fs_ioctl fuse_fs_ioctl_v35
# define fuse_fs_init fuse_fs_init_v30
static __inline int
fuse_main(int argc, char *argv[], const struct fuse_operations *op, void* user_data) {
return __fuse_main(argc, argv, op, _FUSE_OP_VERSION__, user_data);
}
# define fuse_mount fuse_mount_v30
# define fuse_unmount fuse_unmount_v30
static __inline struct fuse *
fuse_new(struct fuse_args *args, const struct fuse_operations *op,
size_t op_size __attribute__((__unused__)), void *user_data) {
return fuse_new_v30(args, op, _FUSE_OP_VERSION__, user_data);
}
# define fuse_destroy fuse_destroy_v30
# define fuse_loop_mt fuse_loop_mt_v32
# define fuse_parse_cmdline fuse_parse_cmdline_v30
# endif
#endif
#ifdef __cplusplus
}
#endif
#endif