Lines Matching defs:fuse
1 /* $NetBSD: fuse.h,v 1.36 2025/01/26 02:06:39 pho Exp $ */
46 /* This used to be (maj) * 10 + (min) until FUSE 3.10, and then
55 /* The latest version of FUSE API currently provided by ReFUSE. This
65 * mandatory in the original FUSE implementation, refuse hasn't
75 # warning "User code including <fuse.h> should define FUSE_USE_VERSION before including this header. Defaulting to the latest version."
80 /* FUSE_VERSION is supposed to be the latest version of FUSE API
81 * supported by the library. However, due to the way how original FUSE
98 struct fuse;
102 uint32_t fh_old; /* Removed as of FUSE 3.0. */
107 uint32_t nonseekable:1; /* Added on FUSE 2.8. */
108 uint32_t flock_release:1; /* Added on FUSE 2.9. */
109 uint32_t cache_readdir:1; /* Added on FUSE 3.5. */
112 uint64_t lock_owner; /* Added on FUSE 2.6. */
113 uint32_t poll_events; /* Added on FUSE 3.0. */
119 uint32_t async_read; /* Removed as of FUSE 3.0. */
121 uint32_t max_read; /* Added on FUSE 3.0. */
123 uint32_t capable; /* Added on FUSE 2.8. */
124 uint32_t want; /* Added on FUSE 2.8. */
125 uint32_t max_background; /* Added on FUSE 3.0. */
126 uint32_t congestion_threshold; /* Added on FUSE 3.0. */
127 uint32_t time_gran; /* Added on FUSE 3.0. */
133 struct fuse *fuse;
138 mode_t umask; /* Added on FUSE 2.8. */
147 #define FUSE_CAP_BIG_WRITES (1 << 5) /* Removed as of FUSE 3.0. */
149 #define FUSE_CAP_SPLICE_WRITE (1 << 7) /* Added on FUSE 3.0. */
150 #define FUSE_CAP_SPLICE_MOVE (1 << 8) /* Added on FUSE 3.0. */
151 #define FUSE_CAP_SPLICE_READ (1 << 9) /* Added on FUSE 3.0. */
152 #define FUSE_CAP_FLOCK_LOCKS (1 << 10) /* Added on FUSE 3.0. */
153 #define FUSE_CAP_IOCTL_DIR (1 << 11) /* Added on FUSE 3.0. */
154 #define FUSE_CAP_AUTO_INVAL_DATA (1 << 12) /* Added on FUSE 3.0. */
155 #define FUSE_CAP_READDIRPLUS (1 << 13) /* Added on FUSE 3.0. */
156 #define FUSE_CAP_READDIRPLUS_AUTO (1 << 14) /* Added on FUSE 3.0. */
157 #define FUSE_CAP_ASYNC_DIO (1 << 15) /* Added on FUSE 3.0. */
158 #define FUSE_CAP_WRITEBACK_CACHE (1 << 16) /* Added on FUSE 3.0. */
159 #define FUSE_CAP_NO_OPEN_SUPPORT (1 << 17) /* Added on FUSE 3.0. */
160 #define FUSE_CAP_PARALLEL_DIROPS (1 << 18) /* Added on FUSE 3.0. */
161 #define FUSE_CAP_POSIX_ACL (1 << 19) /* Added on FUSE 3.0. */
162 #define FUSE_CAP_HANDLE_KILLPRIV (1 << 20) /* Added on FUSE 3.0. */
163 #define FUSE_CAP_CACHE_SYMLINKS (1 << 23) /* Added on FUSE 3.10. */
164 #define FUSE_CAP_NO_OPENDIR_SUPPORT (1 << 24) /* Added on FUSE 3.5. */
170 #define FUSE_IOCTL_DIR (1 << 4) /* Added on FUSE 2.9. */
173 /* readdir() flags, appeared on FUSE 3.0. */
181 /* Configuration of the high-level API, appeared on FUSE 3.0. */
206 /* Configuration of fuse_loop_mt(), appeared on FUSE 3.2. */
228 int fuse_loop(struct fuse *);
229 void fuse_exit(struct fuse *);
232 /* Print available library options. Appeared on FUSE 3.1. */
235 /* Daemonize the calling process. Appeared on FUSE 2.6.
241 /* Check if a request has been interrupted. Appeared on FUSE 2.6. */
244 /* Invalidate cache for a given path. Appeared on FUSE 3.2. */
245 int fuse_invalidate_path(struct fuse *fuse, const char *path);
247 /* Get the version number of the library. Appeared on FUSE 2.7. */
250 /* Get the version string of the library. Appeared on FUSE 3.0. */
254 * return -errno on failure. Appeared on FUSE 2.8. */
258 * on FUSE 2.9. */
259 int fuse_start_cleanup_thread(struct fuse *fuse);
261 /* Stop the cleanup thread when using "-oremember". Appeared on FUSE
263 void fuse_stop_cleanup_thread(struct fuse *fuse);
267 * cleanup. Appeared on FUSE 2.9. */
268 int fuse_clean_cache(struct fuse *fuse);
300 /* ===== FUSE 1.x ===== */
313 static __inline struct fuse *
320 /* ===== FUSE 2.1 ===== */
333 static __inline struct fuse *
340 /* ===== FUSE 2.2 ===== */
353 static __inline struct fuse *
359 static __inline struct fuse *
368 /* ===== FUSE 2.3, 2.4 ===== */
382 static __inline struct fuse *
389 static __inline struct fuse *
398 /* ===== FUSE 2.5 ===== */
412 static __inline struct fuse *
419 static __inline struct fuse *
429 /* ===== FUSE 2.6, 2.7 ===== */
456 static __inline struct fuse *
464 static __inline struct fuse *
474 /* ===== FUSE 2.8 ===== */
502 static __inline struct fuse *
510 static __inline struct fuse *
520 /* ===== FUSE 2.9 ===== */
548 static __inline struct fuse *
556 static __inline struct fuse *
566 /* ===== FUSE 3.0, 3.1 ===== */
593 static __inline struct fuse *
600 /* fuse_setup(3) and fuse_teardown(3) have been removed as of FUSE 3.0. */
603 /* ===== FUSE 3.2, 3.3 ===== */
630 static __inline struct fuse *
639 /* ===== FUSE 3.4 ===== */
666 static __inline struct fuse *
675 /* ===== FUSE 3.5, 3.6, 3.7 ===== */
702 static __inline struct fuse *
711 /* ===== FUSE 3.8, 3.9, 3.10 ===== */
738 static __inline struct fuse *