138 #ifndef _LINUX_FUSE_H   139 #define _LINUX_FUSE_H   142 #include <linux/types.h>   168 #define FUSE_KERNEL_VERSION 7   171 #define FUSE_KERNEL_MINOR_VERSION 31   174 #define FUSE_ROOT_ID 1   198 struct fuse_kstatfs {
   211 struct fuse_file_lock {
   221 #define FATTR_MODE      (1 << 0)   222 #define FATTR_UID       (1 << 1)   223 #define FATTR_GID       (1 << 2)   224 #define FATTR_SIZE      (1 << 3)   225 #define FATTR_ATIME     (1 << 4)   226 #define FATTR_MTIME     (1 << 5)   227 #define FATTR_FH        (1 << 6)   228 #define FATTR_ATIME_NOW (1 << 7)   229 #define FATTR_MTIME_NOW (1 << 8)   230 #define FATTR_LOCKOWNER (1 << 9)   231 #define FATTR_CTIME     (1 << 10)   242 #define FOPEN_DIRECT_IO         (1 << 0)   243 #define FOPEN_KEEP_CACHE        (1 << 1)   244 #define FOPEN_NONSEEKABLE       (1 << 2)   245 #define FOPEN_CACHE_DIR         (1 << 3)   246 #define FOPEN_STREAM            (1 << 4)   278 #define FUSE_ASYNC_READ         (1 << 0)   279 #define FUSE_POSIX_LOCKS        (1 << 1)   280 #define FUSE_FILE_OPS           (1 << 2)   281 #define FUSE_ATOMIC_O_TRUNC     (1 << 3)   282 #define FUSE_EXPORT_SUPPORT     (1 << 4)   283 #define FUSE_BIG_WRITES         (1 << 5)   284 #define FUSE_DONT_MASK          (1 << 6)   285 #define FUSE_SPLICE_WRITE       (1 << 7)   286 #define FUSE_SPLICE_MOVE        (1 << 8)   287 #define FUSE_SPLICE_READ        (1 << 9)   288 #define FUSE_FLOCK_LOCKS        (1 << 10)   289 #define FUSE_HAS_IOCTL_DIR      (1 << 11)   290 #define FUSE_AUTO_INVAL_DATA    (1 << 12)   291 #define FUSE_DO_READDIRPLUS     (1 << 13)   292 #define FUSE_READDIRPLUS_AUTO   (1 << 14)   293 #define FUSE_ASYNC_DIO          (1 << 15)   294 #define FUSE_WRITEBACK_CACHE    (1 << 16)   295 #define FUSE_NO_OPEN_SUPPORT    (1 << 17)   296 #define FUSE_PARALLEL_DIROPS    (1 << 18)   297 #define FUSE_HANDLE_KILLPRIV    (1 << 19)   298 #define FUSE_POSIX_ACL          (1 << 20)   299 #define FUSE_ABORT_ERROR        (1 << 21)   300 #define FUSE_MAX_PAGES          (1 << 22)   301 #define FUSE_CACHE_SYMLINKS     (1 << 23)   302 #define FUSE_NO_OPENDIR_SUPPORT (1 << 24)   303 #define FUSE_EXPLICIT_INVAL_DATA (1 << 25)   310 #define CUSE_UNRESTRICTED_IOCTL (1 << 0)   315 #define FUSE_RELEASE_FLUSH      (1 << 0)   316 #define FUSE_RELEASE_FLOCK_UNLOCK       (1 << 1)   321 #define FUSE_GETATTR_FH         (1 << 0)   326 #define FUSE_LK_FLOCK           (1 << 0)   335 #define FUSE_WRITE_CACHE        (1 << 0)   336 #define FUSE_WRITE_LOCKOWNER    (1 << 1)   337 #define FUSE_WRITE_KILL_PRIV    (1 << 2)   342 #define FUSE_READ_LOCKOWNER     (1 << 1)   356 #define FUSE_IOCTL_COMPAT       (1 << 0)   357 #define FUSE_IOCTL_UNRESTRICTED (1 << 1)   358 #define FUSE_IOCTL_RETRY        (1 << 2)   359 #define FUSE_IOCTL_32BIT        (1 << 3)   360 #define FUSE_IOCTL_DIR          (1 << 4)   361 #define FUSE_IOCTL_COMPAT_X32   (1 << 5)   363 #define FUSE_IOCTL_MAX_IOV      256   370 #define FUSE_POLL_SCHEDULE_NOTIFY (1 << 0)   377 #define FUSE_FSYNC_FDATASYNC    (1 << 0)   401         FUSE_REMOVEXATTR        = 24,
   406         FUSE_RELEASEDIR         = 29,
   418         FUSE_NOTIFY_REPLY       = 41,
   419         FUSE_BATCH_FORGET       = 42,
   421         FUSE_READDIRPLUS        = 44,
   424         FUSE_COPY_FILE_RANGE    = 47,
   430 enum fuse_notify_code {
   431         FUSE_NOTIFY_POLL   = 1,
   432         FUSE_NOTIFY_INVAL_INODE = 2,
   433         FUSE_NOTIFY_INVAL_ENTRY = 3,
   434         FUSE_NOTIFY_STORE = 4,
   435         FUSE_NOTIFY_RETRIEVE = 5,
   436         FUSE_NOTIFY_DELETE = 6,
   441 #define FUSE_MIN_READ_BUFFER 8192   443 #define FUSE_COMPAT_ENTRY_OUT_SIZE 120   445 struct fuse_entry_out {
   449         uint64_t        entry_valid;    
   451         uint32_t        entry_valid_nsec;
   452         uint32_t        attr_valid_nsec;
   453         struct fuse_attr attr;
   456 struct fuse_forget_in {
   460 struct fuse_forget_one {
   465 struct fuse_batch_forget_in {
   470 struct fuse_getattr_in {
   471         uint32_t        getattr_flags;
   476 #define FUSE_COMPAT_ATTR_OUT_SIZE 96   478 struct fuse_attr_out {
   480         uint32_t        attr_valid_nsec;
   482         struct fuse_attr attr;
   485 #define FUSE_COMPAT_MKNOD_IN_SIZE 8   487 struct fuse_mknod_in {
   494 struct fuse_mkdir_in {
   499 struct fuse_rename_in {
   503 struct fuse_rename2_in {
   509 struct fuse_link_in {
   513 struct fuse_setattr_in {
   532 struct fuse_open_in {
   537 struct fuse_create_in {
   544 struct fuse_open_out {
   550 struct fuse_release_in {
   553         uint32_t        release_flags;
   557 struct fuse_flush_in {
   564 struct fuse_read_in {
   574 #define FUSE_COMPAT_WRITE_IN_SIZE 24   576 struct fuse_write_in {
   580         uint32_t        write_flags;
   586 struct fuse_write_out {
   591 #define FUSE_COMPAT_STATFS_SIZE 48   593 struct fuse_statfs_out {
   594         struct fuse_kstatfs st;
   597 struct fuse_fsync_in {
   599         uint32_t        fsync_flags;
   603 struct fuse_setxattr_in {
   608 struct fuse_getxattr_in {
   613 struct fuse_getxattr_out {
   621         struct fuse_file_lock lk;
   627         struct fuse_file_lock lk;
   630 struct fuse_access_in {
   635 struct fuse_init_in {
   638         uint32_t        max_readahead;
   642 #define FUSE_COMPAT_INIT_OUT_SIZE 8   643 #define FUSE_COMPAT_22_INIT_OUT_SIZE 24   645 struct fuse_init_out {
   648         uint32_t        max_readahead;
   650         uint16_t        max_background;
   651         uint16_t        congestion_threshold;
   659 #define CUSE_INIT_INFO_MAX 4096   661 struct cuse_init_in {
   668 struct cuse_init_out {
   680 struct fuse_interrupt_in {
   684 struct fuse_bmap_in {
   690 struct fuse_bmap_out {
   694 struct fuse_ioctl_in {
   703 struct fuse_ioctl_iovec {
   708 struct fuse_ioctl_out {
   715 struct fuse_poll_in {
   722 struct fuse_poll_out {
   727 struct fuse_notify_poll_wakeup_out {
   731 struct fuse_fallocate_in {
   739 struct fuse_in_header {
   750 struct fuse_out_header {
   764 #define FUSE_NAME_OFFSET offsetof(struct fuse_dirent, name)   765 #define FUSE_DIRENT_ALIGN(x) \   766         (((x) + sizeof(uint64_t) - 1) & ~(sizeof(uint64_t) - 1))   767 #define FUSE_DIRENT_SIZE(d) \   768         FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET + (d)->namelen)   770 struct fuse_direntplus {
   771         struct fuse_entry_out entry_out;
   772         struct fuse_dirent dirent;
   775 #define FUSE_NAME_OFFSET_DIRENTPLUS \   776         offsetof(struct fuse_direntplus, dirent.name)   777 #define FUSE_DIRENTPLUS_SIZE(d) \   778         FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET_DIRENTPLUS + (d)->dirent.namelen)   780 struct fuse_notify_inval_inode_out {
   786 struct fuse_notify_inval_entry_out {
   792 struct fuse_notify_delete_out {
   799 struct fuse_notify_store_out {
   806 struct fuse_notify_retrieve_out {
   807         uint64_t        notify_unique;
   815 struct fuse_notify_retrieve_in {
   825 #define FUSE_DEV_IOC_CLONE      _IOR(229, 0, uint32_t)   827 struct fuse_lseek_in {
   834 struct fuse_lseek_out {
   838 struct fuse_copy_file_range_in {