Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/lib/librefuse Add some missing struct fields, structs, and c...



details:   https://anonhg.NetBSD.org/src/rev/3c28277db470
branches:  trunk
changeset: 359770:3c28277db470
user:      pho <pho%NetBSD.org@localhost>
date:      Sat Jan 22 08:06:21 2022 +0000

description:
Add some missing struct fields, structs, and constants that are part of the API

diffstat:

 lib/librefuse/fuse.h |  106 +++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 94 insertions(+), 12 deletions(-)

diffs (144 lines):

diff -r 28eb63e9be79 -r 3c28277db470 lib/librefuse/fuse.h
--- a/lib/librefuse/fuse.h      Sat Jan 22 08:05:35 2022 +0000
+++ b/lib/librefuse/fuse.h      Sat Jan 22 08:06:21 2022 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: fuse.h,v 1.32 2022/01/22 08:03:32 pho Exp $ */
+/* $NetBSD: fuse.h,v 1.33 2022/01/22 08:06:21 pho Exp $ */
 
 /*
  * Copyright © 2007 Alistair Crooks.  All rights reserved.
@@ -30,6 +30,7 @@
 #ifndef FUSE_H_
 #define FUSE_H_        20211204
 
+#include <fcntl.h>
 #include <fuse_opt.h>
 #include <refuse/buf.h>
 #include <refuse/legacy.h>
@@ -94,27 +95,36 @@
 #endif
 
 struct fuse;
-struct fuse_args; /* XXXsupportme */
 
 struct fuse_file_info {
        int32_t         flags;
-       uint32_t        fh_old;
-       int32_t         writepage;
+       uint32_t        fh_old;                 /* Removed as of FUSE 3.0. */
+       int32_t         writepage:1;
        uint32_t        direct_io:1;
        uint32_t        keep_cache:1;
        uint32_t        flush:1;
-       uint32_t        padding:29;
+       uint32_t        nonseekable:1;          /* Added on FUSE 2.8. */
+       uint32_t        flock_release:1;        /* Added on FUSE 2.9. */
+       uint32_t        cache_readdir:1;        /* Added on FUSE 3.5. */
+       uint32_t        padding:26;
        uint64_t        fh;
-       uint64_t        lock_owner;
+       uint64_t        lock_owner;             /* Added on FUSE 2.6. */
+       uint32_t        poll_events;            /* Added on FUSE 3.0. */
 };
 
 struct fuse_conn_info {
-       uint32_t proto_major;
-       uint32_t proto_minor;
-       uint32_t async_read;
-       uint32_t max_write;
-       uint32_t max_readahead;
-       uint32_t reserved[27];
+       uint32_t        proto_major;
+       uint32_t        proto_minor;
+       uint32_t        async_read;             /* Removed as of FUSE 3.0. */
+       uint32_t        max_write;
+       uint32_t        max_read;               /* Added on FUSE 3.0. */
+       uint32_t        max_readahead;
+       uint32_t        capable;                /* Added on FUSE 2.8. */
+       uint32_t        want;                   /* Added on FUSE 2.8. */
+       uint32_t        max_background;         /* Added on FUSE 3.0. */
+       uint32_t        congestion_threshold;   /* Added on FUSE 3.0. */
+       uint32_t        time_gran;              /* Added on FUSE 3.0. */
+       uint32_t        reserved[22];
 };
 
 /* equivalent'ish of puffs_cc */
@@ -124,6 +134,78 @@
        gid_t           gid;
        pid_t           pid;
        void            *private_data;
+       mode_t          umask;                  /* Added on FUSE 2.8. */
+};
+
+/* Capability bits for fuse_conn_info.capable and
+ * fuse_conn_info.want */
+#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)        /* Removed as of FUSE 3.0. */
+#define FUSE_CAP_DONT_MASK             (1 << 6)
+#define FUSE_CAP_SPLICE_WRITE          (1 << 7)        /* Added on FUSE 3.0. */
+#define FUSE_CAP_SPLICE_MOVE           (1 << 8)        /* Added on FUSE 3.0. */
+#define FUSE_CAP_SPLICE_READ           (1 << 9)        /* Added on FUSE 3.0. */
+#define FUSE_CAP_FLOCK_LOCKS           (1 << 10)       /* Added on FUSE 3.0. */
+#define FUSE_CAP_IOCTL_DIR             (1 << 11)       /* Added on FUSE 3.0. */
+#define FUSE_CAP_AUTO_INVAL_DATA       (1 << 12)       /* Added on FUSE 3.0. */
+#define FUSE_CAP_READDIRPLUS           (1 << 13)       /* Added on FUSE 3.0. */
+#define FUSE_CAP_READDIRPLUS_AUTO      (1 << 14)       /* Added on FUSE 3.0. */
+#define FUSE_CAP_ASYNC_DIO             (1 << 15)       /* Added on FUSE 3.0. */
+#define FUSE_CAP_WRITEBACK_CACHE       (1 << 16)       /* Added on FUSE 3.0. */
+#define FUSE_CAP_NO_OPEN_SUPPORT       (1 << 17)       /* Added on FUSE 3.0. */
+#define FUSE_CAP_PARALLEL_DIROPS       (1 << 18)       /* Added on FUSE 3.0. */
+#define FUSE_CAP_POSIX_ACL             (1 << 19)       /* Added on FUSE 3.0. */
+#define FUSE_CAP_HANDLE_KILLPRIV       (1 << 20)       /* Added on FUSE 3.0. */
+#define FUSE_CAP_CACHE_SYMLINKS                (1 << 23)       /* Added on FUSE 3.10. */
+#define FUSE_CAP_NO_OPENDIR_SUPPORT    (1 << 24)       /* Added on FUSE 3.5. */
+
+/* ioctl flags */
+#define FUSE_IOCTL_COMPAT      (1 << 0)
+#define FUSE_IOCTL_UNRESTRICTED        (1 << 1)
+#define FUSE_IOCTL_RETRY       (1 << 2)
+#define FUSE_IOCTL_DIR         (1 << 4)        /* Added on FUSE 2.9. */
+#define FUSE_IOCTL_MAX_IOV     256
+
+/* readdir() flags, appeared on FUSE 3.0. */
+enum fuse_readdir_flags {
+       FUSE_READDIR_PLUS       = (1 << 0),
+};
+enum fuse_fill_dir_flags {
+       FUSE_FILL_DIR_PLUS      = (1 << 1),
+};
+
+/* Configuration of the high-level API, appeared on FUSE 3.0. */
+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;
+};
+
+/* Configuration of fuse_loop_mt(), appeared on FUSE 3.2. */
+struct fuse_loop_config {
+       int             clone_fd;
+       unsigned int    max_idle_threads;
 };
 
 /**



Home | Main Index | Thread Index | Old Index