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