10 #if !defined(FUSE_H_) && !defined(FUSE_LOWLEVEL_H_)
11 #error "Never include <fuse_common.h> directly; use <fuse.h> or <fuse_lowlevel.h> instead."
14 #ifndef FUSE_COMMON_H_
15 #define FUSE_COMMON_H_
17 #ifdef HAVE_LIBFUSE_PRIVATE_CONFIG_H
18 #include "fuse_config.h"
21 #include "libfuse_config.h"
26 #include <sys/types.h>
29 #define FUSE_MAJOR_VERSION 3
32 #define FUSE_MINOR_VERSION 15
34 #define FUSE_MAKE_VERSION(maj, min) ((maj) * 100 + (min))
35 #define FUSE_VERSION FUSE_MAKE_VERSION(FUSE_MAJOR_VERSION, FUSE_MINOR_VERSION)
78 unsigned int flush : 1;
87 unsigned int flock_release : 1;
101 unsigned int padding2 : 32;
124 #if FUSE_USE_VERSION < FUSE_MAKE_VERSION(3, 12)
125 struct fuse_loop_config_v1;
128 struct fuse_loop_config_v1 {
164 #define FUSE_CAP_ASYNC_READ (1 << 0)
172 #define FUSE_CAP_POSIX_LOCKS (1 << 1)
181 #define FUSE_CAP_ATOMIC_O_TRUNC (1 << 3)
188 #define FUSE_CAP_EXPORT_SUPPORT (1 << 4)
196 #define FUSE_CAP_DONT_MASK (1 << 6)
204 #define FUSE_CAP_SPLICE_WRITE (1 << 7)
212 #define FUSE_CAP_SPLICE_MOVE (1 << 8)
221 #define FUSE_CAP_SPLICE_READ (1 << 9)
234 #define FUSE_CAP_FLOCK_LOCKS (1 << 10)
241 #define FUSE_CAP_IOCTL_DIR (1 << 11)
263 #define FUSE_CAP_AUTO_INVAL_DATA (1 << 12)
271 #define FUSE_CAP_READDIRPLUS (1 << 13)
299 #define FUSE_CAP_READDIRPLUS_AUTO (1 << 14)
310 #define FUSE_CAP_ASYNC_DIO (1 << 15)
319 #define FUSE_CAP_WRITEBACK_CACHE (1 << 16)
332 #define FUSE_CAP_NO_OPEN_SUPPORT (1 << 17)
342 #define FUSE_CAP_PARALLEL_DIROPS (1 << 18)
361 #define FUSE_CAP_POSIX_ACL (1 << 19)
370 #define FUSE_CAP_HANDLE_KILLPRIV (1 << 20)
383 #define FUSE_CAP_CACHE_SYMLINKS (1 << 23)
395 #define FUSE_CAP_NO_OPENDIR_SUPPORT (1 << 24)
418 #define FUSE_CAP_EXPLICIT_INVAL_DATA (1 << 25)
434 #define FUSE_CAP_EXPIRE_ONLY (1 << 26)
441 #define FUSE_CAP_SETXATTR_EXT (1 << 27)
453 #define FUSE_IOCTL_COMPAT (1 << 0)
454 #define FUSE_IOCTL_UNRESTRICTED (1 << 1)
455 #define FUSE_IOCTL_RETRY (1 << 2)
456 #define FUSE_IOCTL_DIR (1 << 4)
458 #define FUSE_IOCTL_MAX_IOV 256
471 unsigned proto_major;
476 unsigned proto_minor;
500 unsigned max_readahead;
543 unsigned max_background;
553 unsigned congestion_threshold;
575 unsigned reserved[22];
579 struct fuse_pollhandle;
580 struct fuse_conn_info_opts;
812 #define FUSE_BUFVEC_INIT(size__) \
813 ((struct fuse_bufvec) { \
819 (enum fuse_buf_flags) 0, \
916 struct fuse_loop_config_v1 *v1_conf);
922 #if !defined(FUSE_USE_VERSION) || FUSE_USE_VERSION < 30
923 # error only API version 30 or greater is supported
937 #if defined(__GNUC__) && (__GNUC__ > 4 || __GNUC__ == 4 && __GNUC_MINOR__ >= 6) && !defined __cplusplus
938 _Static_assert(
sizeof(off_t) == 8,
"fuse: off_t must be 64bit");
940 struct _fuse_off_t_must_be_64bit_dummy_struct \
941 {
unsigned _fuse_off_t_must_be_64bit:((
sizeof(off_t) == 8) ? 1 : -1); };
void fuse_loop_cfg_convert(struct fuse_loop_config *config, struct fuse_loop_config_v1 *v1_conf)
void fuse_loop_cfg_set_idle_threads(struct fuse_loop_config *config, unsigned int value)
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)
struct fuse_loop_config * fuse_loop_cfg_create(void)
void fuse_loop_cfg_set_clone_fd(struct fuse_loop_config *config, unsigned int value)
ssize_t fuse_buf_copy(struct fuse_bufvec *dst, struct fuse_bufvec *src, enum fuse_buf_copy_flags flags)
void fuse_loop_cfg_destroy(struct fuse_loop_config *config)
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)
void fuse_loop_cfg_set_max_threads(struct fuse_loop_config *config, unsigned int value)
struct fuse_conn_info_opts * fuse_parse_conn_info_opts(struct fuse_args *args)
enum fuse_buf_flags flags
unsigned int parallel_direct_writes
unsigned int cache_readdir
unsigned int max_idle_threads