11#if !defined(FUSE_H_) && !defined(FUSE_LOWLEVEL_H_)
12#error "Never include <fuse_common.h> directly; use <fuse.h> or <fuse_lowlevel.h> instead."
18#ifdef HAVE_LIBFUSE_PRIVATE_CONFIG_H
19#include "fuse_config.h"
22#include "libfuse_config.h"
30#define FUSE_MAKE_VERSION(maj, min) ((maj) * 100 + (min))
31#define FUSE_VERSION FUSE_MAKE_VERSION(FUSE_MAJOR_VERSION, FUSE_MINOR_VERSION)
83 uint32_t flock_release : 1;
101 uint32_t padding2 : 32;
102 uint32_t padding3 : 32;
124 uint64_t reserved[2];
137#if FUSE_USE_VERSION < FUSE_MAKE_VERSION(3, 12)
138struct fuse_loop_config_v1;
141struct fuse_loop_config_v1 {
159 unsigned int max_idle_threads;
177#define FUSE_CAP_ASYNC_READ (1 << 0)
185#define FUSE_CAP_POSIX_LOCKS (1 << 1)
194#define FUSE_CAP_ATOMIC_O_TRUNC (1 << 3)
206#define FUSE_CAP_EXPORT_SUPPORT (1 << 4)
214#define FUSE_CAP_DONT_MASK (1 << 6)
222#define FUSE_CAP_SPLICE_WRITE (1 << 7)
230#define FUSE_CAP_SPLICE_MOVE (1 << 8)
239#define FUSE_CAP_SPLICE_READ (1 << 9)
252#define FUSE_CAP_FLOCK_LOCKS (1 << 10)
259#define FUSE_CAP_IOCTL_DIR (1 << 11)
281#define FUSE_CAP_AUTO_INVAL_DATA (1 << 12)
289#define FUSE_CAP_READDIRPLUS (1 << 13)
317#define FUSE_CAP_READDIRPLUS_AUTO (1 << 14)
328#define FUSE_CAP_ASYNC_DIO (1 << 15)
337#define FUSE_CAP_WRITEBACK_CACHE (1 << 16)
352#define FUSE_CAP_NO_OPEN_SUPPORT (1 << 17)
360#define FUSE_CAP_PARALLEL_DIROPS (1 << 18)
379#define FUSE_CAP_POSIX_ACL (1 << 19)
388#define FUSE_CAP_HANDLE_KILLPRIV (1 << 20)
405#define FUSE_CAP_HANDLE_KILLPRIV_V2 (1 << 21)
418#define FUSE_CAP_CACHE_SYMLINKS (1 << 23)
433#define FUSE_CAP_NO_OPENDIR_SUPPORT (1 << 24)
456#define FUSE_CAP_EXPLICIT_INVAL_DATA (1 << 25)
472#define FUSE_CAP_EXPIRE_ONLY (1 << 26)
479#define FUSE_CAP_SETXATTR_EXT (1 << 27)
488#define FUSE_CAP_DIRECT_IO_ALLOW_MMAP (1 << 28)
500#define FUSE_CAP_PASSTHROUGH (1 << 29)
508#define FUSE_CAP_NO_EXPORT_SUPPORT (1 << 30)
520#define FUSE_IOCTL_COMPAT (1 << 0)
521#define FUSE_IOCTL_UNRESTRICTED (1 << 1)
522#define FUSE_IOCTL_RETRY (1 << 2)
523#define FUSE_IOCTL_DIR (1 << 4)
525#define FUSE_IOCTL_MAX_IOV 256
542 uint32_t proto_major;
547 uint32_t proto_minor;
571 uint32_t max_readahead;
620 uint32_t max_background;
630 uint32_t congestion_threshold;
665#define FUSE_BACKING_STACKED_UNDER (0)
666#define FUSE_BACKING_STACKED_OVER (1)
667 uint32_t max_backing_stack_depth;
677 uint32_t no_interrupt : 1;
680 uint32_t padding : 31;
686 uint64_t capable_ext;
701 uint32_t reserved[16];
705struct fuse_pollhandle;
706struct fuse_conn_info_opts;
958#define FUSE_BUFVEC_INIT(size__) \
959 ((struct fuse_bufvec) { \
965 (enum fuse_buf_flags) 0, \
1048#if FUSE_USE_VERSION >= FUSE_MAKE_VERSION(3, 12)
1065 unsigned int value);
1071 unsigned int value);
1077 unsigned int value);
1086 struct fuse_loop_config_v1 *v1_conf);
1128#if !defined(FUSE_USE_VERSION) || FUSE_USE_VERSION < 30
1129# error only API version 30 or greater is supported
1143#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)
1144_Static_assert(
sizeof(off_t) == 8,
"fuse: off_t must be 64bit");
1146struct _fuse_off_t_must_be_64bit_dummy_struct \
1147 {
unsigned _fuse_off_t_must_be_64bit:((
sizeof(off_t) == 8) ? 1 : -1); };
void fuse_unset_feature_flag(struct fuse_conn_info *conn, uint64_t flag)
int fuse_convert_to_conn_want_ext(struct fuse_conn_info *conn)
int fuse_set_fail_signal_handlers(struct fuse_session *se)
bool fuse_set_feature_flag(struct fuse_conn_info *conn, uint64_t flag)
int fuse_set_signal_handlers(struct fuse_session *se)
size_t fuse_buf_size(const struct fuse_bufvec *bufv)
void fuse_apply_conn_info_opts(struct fuse_conn_info_opts *opts, struct fuse_conn_info *conn)
ssize_t fuse_buf_copy(struct fuse_bufvec *dst, struct fuse_bufvec *src, enum fuse_buf_copy_flags flags)
struct fuse_conn_info_opts * fuse_parse_conn_info_opts(struct fuse_args *args)
bool fuse_get_feature_flag(struct fuse_conn_info *conn, uint64_t flag)
const char * fuse_pkgversion(void)
void fuse_pollhandle_destroy(struct fuse_pollhandle *ph)
void fuse_remove_signal_handlers(struct fuse_session *se)
@ FUSE_BUF_SPLICE_NONBLOCK
int fuse_daemonize(int foreground)
uint32_t parallel_direct_writes