1 1.36 pho /* $NetBSD: fuse.h,v 1.36 2025/01/26 02:06:39 pho Exp $ */ 2 1.18 xtraeme 3 1.1 agc /* 4 1.1 agc * Copyright 2007 Alistair Crooks. All rights reserved. 5 1.1 agc * 6 1.1 agc * Redistribution and use in source and binary forms, with or without 7 1.1 agc * modification, are permitted provided that the following conditions 8 1.1 agc * are met: 9 1.1 agc * 1. Redistributions of source code must retain the above copyright 10 1.1 agc * notice, this list of conditions and the following disclaimer. 11 1.1 agc * 2. Redistributions in binary form must reproduce the above copyright 12 1.1 agc * notice, this list of conditions and the following disclaimer in the 13 1.1 agc * documentation and/or other materials provided with the distribution. 14 1.1 agc * 3. The name of the author may not be used to endorse or promote 15 1.1 agc * products derived from this software without specific prior written 16 1.1 agc * permission. 17 1.1 agc * 18 1.1 agc * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS 19 1.1 agc * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 1.1 agc * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 21 1.1 agc * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 22 1.1 agc * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 23 1.1 agc * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 24 1.1 agc * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 25 1.1 agc * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 26 1.1 agc * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 27 1.1 agc * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 28 1.1 agc * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 1.1 agc */ 30 1.1 agc #ifndef FUSE_H_ 31 1.24 pho #define FUSE_H_ 20211204 32 1.16 agc 33 1.33 pho #include <fcntl.h> 34 1.30 pho #include <fuse_opt.h> 35 1.26 pho #include <refuse/buf.h> 36 1.34 pho #include <refuse/chan.h> 37 1.28 pho #include <refuse/legacy.h> 38 1.27 pho #include <refuse/poll.h> 39 1.25 pho #include <refuse/session.h> 40 1.25 pho #include <sys/cdefs.h> 41 1.25 pho #include <sys/stat.h> 42 1.25 pho #include <sys/statvfs.h> 43 1.1 agc #include <sys/types.h> 44 1.1 agc #include <utime.h> 45 1.1 agc 46 1.29 pho /* This used to be (maj) * 10 + (min) until FUSE 3.10, and then 47 1.29 pho * changed to (maj) * 100 + (min). We can't just use the "newer" 48 1.29 pho * definition because filesystems in the wild still use the older one 49 1.29 pho * in their FUSE_USE_VERSION request. */ 50 1.29 pho #define FUSE_MAKE_VERSION(maj, min) \ 51 1.29 pho (((maj) > 3 || ((maj) == 3 && (min) >= 10)) \ 52 1.29 pho ? (maj) * 100 + (min) \ 53 1.29 pho : (maj) * 10 + (min)) 54 1.29 pho 55 1.29 pho /* The latest version of FUSE API currently provided by ReFUSE. This 56 1.29 pho * is an implementation detail. User code should not rely on this 57 1.29 pho * constant. */ 58 1.34 pho #define _REFUSE_MAJOR_VERSION_ 3 59 1.34 pho #define _REFUSE_MINOR_VERSION_ 10 60 1.24 pho 61 1.29 pho #define _REFUSE_VERSION_ FUSE_MAKE_VERSION(_REFUSE_MAJOR_VERSION_, _REFUSE_MINOR_VERSION_) 62 1.24 pho 63 1.24 pho /* FUSE_USE_VERSION is expected to be defined by user code to 64 1.24 pho * determine the API to be used. Although defining this macro is 65 1.24 pho * mandatory in the original FUSE implementation, refuse hasn't 66 1.24 pho * required this so we only emit a warning if it's undefined. */ 67 1.24 pho #if defined(FUSE_USE_VERSION) 68 1.29 pho # if FUSE_USE_VERSION > _REFUSE_VERSION_ 69 1.24 pho # warning "The requested API version is higher than the latest one supported by refuse." 70 1.29 pho # elif FUSE_USE_VERSION < 11 71 1.29 pho # warning "The requested API version is lower than the oldest one supported by refuse." 72 1.24 pho # endif 73 1.24 pho #else 74 1.29 pho # if !defined(_REFUSE_IMPLEMENTATION_) 75 1.29 pho # warning "User code including <fuse.h> should define FUSE_USE_VERSION before including this header. Defaulting to the latest version." 76 1.29 pho # define FUSE_USE_VERSION _REFUSE_VERSION_ 77 1.29 pho # endif 78 1.29 pho #endif 79 1.29 pho 80 1.29 pho /* FUSE_VERSION is supposed to be the latest version of FUSE API 81 1.29 pho * supported by the library. However, due to the way how original FUSE 82 1.29 pho * is implemented, some filesystems set FUSE_USE_VERSION to some old 83 1.29 pho * one and then expect the actual API version exposed by the library 84 1.29 pho * to be something newer if FUSE_VERSION is higher than that. ReFUSE 85 1.29 pho * doesn't work that way, so this has to be always identical to 86 1.29 pho * FUSE_USE_VERSION. 87 1.29 pho */ 88 1.29 pho #if defined(FUSE_USE_VERSION) 89 1.29 pho # define FUSE_VERSION FUSE_USE_VERSION 90 1.29 pho # define FUSE_MAJOR_VERSION (FUSE_VERSION / 10) 91 1.29 pho # define FUSE_MINOR_VERSION (FUSE_VERSION % 10) 92 1.24 pho #endif 93 1.24 pho 94 1.1 agc #ifdef __cplusplus 95 1.1 agc extern "C" { 96 1.1 agc #endif 97 1.1 agc 98 1.4 agc struct fuse; 99 1.4 agc 100 1.1 agc struct fuse_file_info { 101 1.1 agc int32_t flags; 102 1.33 pho uint32_t fh_old; /* Removed as of FUSE 3.0. */ 103 1.33 pho int32_t writepage:1; 104 1.1 agc uint32_t direct_io:1; 105 1.1 agc uint32_t keep_cache:1; 106 1.1 agc uint32_t flush:1; 107 1.33 pho uint32_t nonseekable:1; /* Added on FUSE 2.8. */ 108 1.33 pho uint32_t flock_release:1; /* Added on FUSE 2.9. */ 109 1.33 pho uint32_t cache_readdir:1; /* Added on FUSE 3.5. */ 110 1.33 pho uint32_t padding:26; 111 1.1 agc uint64_t fh; 112 1.33 pho uint64_t lock_owner; /* Added on FUSE 2.6. */ 113 1.33 pho uint32_t poll_events; /* Added on FUSE 3.0. */ 114 1.1 agc }; 115 1.1 agc 116 1.1 agc struct fuse_conn_info { 117 1.33 pho uint32_t proto_major; 118 1.33 pho uint32_t proto_minor; 119 1.33 pho uint32_t async_read; /* Removed as of FUSE 3.0. */ 120 1.33 pho uint32_t max_write; 121 1.33 pho uint32_t max_read; /* Added on FUSE 3.0. */ 122 1.33 pho uint32_t max_readahead; 123 1.33 pho uint32_t capable; /* Added on FUSE 2.8. */ 124 1.33 pho uint32_t want; /* Added on FUSE 2.8. */ 125 1.33 pho uint32_t max_background; /* Added on FUSE 3.0. */ 126 1.33 pho uint32_t congestion_threshold; /* Added on FUSE 3.0. */ 127 1.33 pho uint32_t time_gran; /* Added on FUSE 3.0. */ 128 1.33 pho uint32_t reserved[22]; 129 1.1 agc }; 130 1.1 agc 131 1.3 pooka /* equivalent'ish of puffs_cc */ 132 1.3 pooka struct fuse_context { 133 1.3 pooka struct fuse *fuse; 134 1.3 pooka uid_t uid; 135 1.3 pooka gid_t gid; 136 1.3 pooka pid_t pid; 137 1.3 pooka void *private_data; 138 1.33 pho mode_t umask; /* Added on FUSE 2.8. */ 139 1.33 pho }; 140 1.33 pho 141 1.33 pho /* Capability bits for fuse_conn_info.capable and 142 1.33 pho * fuse_conn_info.want */ 143 1.33 pho #define FUSE_CAP_ASYNC_READ (1 << 0) 144 1.33 pho #define FUSE_CAP_POSIX_LOCKS (1 << 1) 145 1.33 pho #define FUSE_CAP_ATOMIC_O_TRUNC (1 << 3) 146 1.33 pho #define FUSE_CAP_EXPORT_SUPPORT (1 << 4) 147 1.33 pho #define FUSE_CAP_BIG_WRITES (1 << 5) /* Removed as of FUSE 3.0. */ 148 1.33 pho #define FUSE_CAP_DONT_MASK (1 << 6) 149 1.33 pho #define FUSE_CAP_SPLICE_WRITE (1 << 7) /* Added on FUSE 3.0. */ 150 1.33 pho #define FUSE_CAP_SPLICE_MOVE (1 << 8) /* Added on FUSE 3.0. */ 151 1.33 pho #define FUSE_CAP_SPLICE_READ (1 << 9) /* Added on FUSE 3.0. */ 152 1.33 pho #define FUSE_CAP_FLOCK_LOCKS (1 << 10) /* Added on FUSE 3.0. */ 153 1.33 pho #define FUSE_CAP_IOCTL_DIR (1 << 11) /* Added on FUSE 3.0. */ 154 1.33 pho #define FUSE_CAP_AUTO_INVAL_DATA (1 << 12) /* Added on FUSE 3.0. */ 155 1.33 pho #define FUSE_CAP_READDIRPLUS (1 << 13) /* Added on FUSE 3.0. */ 156 1.33 pho #define FUSE_CAP_READDIRPLUS_AUTO (1 << 14) /* Added on FUSE 3.0. */ 157 1.33 pho #define FUSE_CAP_ASYNC_DIO (1 << 15) /* Added on FUSE 3.0. */ 158 1.33 pho #define FUSE_CAP_WRITEBACK_CACHE (1 << 16) /* Added on FUSE 3.0. */ 159 1.33 pho #define FUSE_CAP_NO_OPEN_SUPPORT (1 << 17) /* Added on FUSE 3.0. */ 160 1.33 pho #define FUSE_CAP_PARALLEL_DIROPS (1 << 18) /* Added on FUSE 3.0. */ 161 1.33 pho #define FUSE_CAP_POSIX_ACL (1 << 19) /* Added on FUSE 3.0. */ 162 1.33 pho #define FUSE_CAP_HANDLE_KILLPRIV (1 << 20) /* Added on FUSE 3.0. */ 163 1.33 pho #define FUSE_CAP_CACHE_SYMLINKS (1 << 23) /* Added on FUSE 3.10. */ 164 1.33 pho #define FUSE_CAP_NO_OPENDIR_SUPPORT (1 << 24) /* Added on FUSE 3.5. */ 165 1.33 pho 166 1.33 pho /* ioctl flags */ 167 1.33 pho #define FUSE_IOCTL_COMPAT (1 << 0) 168 1.33 pho #define FUSE_IOCTL_UNRESTRICTED (1 << 1) 169 1.33 pho #define FUSE_IOCTL_RETRY (1 << 2) 170 1.33 pho #define FUSE_IOCTL_DIR (1 << 4) /* Added on FUSE 2.9. */ 171 1.33 pho #define FUSE_IOCTL_MAX_IOV 256 172 1.33 pho 173 1.33 pho /* readdir() flags, appeared on FUSE 3.0. */ 174 1.33 pho enum fuse_readdir_flags { 175 1.33 pho FUSE_READDIR_PLUS = (1 << 0), 176 1.33 pho }; 177 1.33 pho enum fuse_fill_dir_flags { 178 1.33 pho FUSE_FILL_DIR_PLUS = (1 << 1), 179 1.33 pho }; 180 1.33 pho 181 1.33 pho /* Configuration of the high-level API, appeared on FUSE 3.0. */ 182 1.33 pho struct fuse_config { 183 1.33 pho int set_gid; 184 1.33 pho unsigned int gid; 185 1.33 pho int set_uid; 186 1.33 pho unsigned int uid; 187 1.33 pho int set_mode; 188 1.33 pho unsigned int umask; 189 1.33 pho double entry_timeout; 190 1.33 pho double negative_timeout; 191 1.33 pho double attr_timeout; 192 1.33 pho int intr; 193 1.33 pho int intr_signal; 194 1.33 pho int remember; 195 1.33 pho int hard_remove; 196 1.33 pho int use_ino; 197 1.33 pho int readdir_ino; 198 1.33 pho int direct_io; 199 1.33 pho int kernel_cache; 200 1.33 pho int auto_cache; 201 1.33 pho int ac_attr_timeout_set; 202 1.33 pho double ac_attr_timeout; 203 1.33 pho int nullpath_ok; 204 1.33 pho }; 205 1.33 pho 206 1.33 pho /* Configuration of fuse_loop_mt(), appeared on FUSE 3.2. */ 207 1.33 pho struct fuse_loop_config { 208 1.33 pho int clone_fd; 209 1.33 pho unsigned int max_idle_threads; 210 1.3 pooka }; 211 1.3 pooka 212 1.1 agc /** 213 1.1 agc * Argument list 214 1.1 agc */ 215 1.1 agc struct fuse_args { 216 1.1 agc int argc; 217 1.1 agc char **argv; 218 1.1 agc int allocated; 219 1.1 agc }; 220 1.1 agc 221 1.1 agc /** 222 1.1 agc * Initializer for 'struct fuse_args' 223 1.1 agc */ 224 1.1 agc #define FUSE_ARGS_INIT(argc, argv) { argc, argv, 0 } 225 1.1 agc 226 1.31 pho /* Functions that have existed since the beginning and have never 227 1.31 pho * changed between API versions. */ 228 1.8 pooka int fuse_loop(struct fuse *); 229 1.4 agc void fuse_exit(struct fuse *); 230 1.32 pho struct fuse_context *fuse_get_context(void); 231 1.32 pho 232 1.32 pho /* Print available library options. Appeared on FUSE 3.1. */ 233 1.32 pho void fuse_lib_help(struct fuse_args *args); 234 1.31 pho 235 1.31 pho /* Daemonize the calling process. Appeared on FUSE 2.6. 236 1.31 pho * 237 1.31 pho * NOTE: This function used to have a wrong prototype in librefuse at 238 1.31 pho * the time when FUSE_H_ < 20211204. */ 239 1.31 pho int fuse_daemonize(int foreground) __RENAME(fuse_daemonize_rev1); 240 1.31 pho 241 1.32 pho /* Check if a request has been interrupted. Appeared on FUSE 2.6. */ 242 1.32 pho int fuse_interrupted(void); 243 1.32 pho 244 1.32 pho /* Invalidate cache for a given path. Appeared on FUSE 3.2. */ 245 1.32 pho int fuse_invalidate_path(struct fuse *fuse, const char *path); 246 1.32 pho 247 1.32 pho /* Get the version number of the library. Appeared on FUSE 2.7. */ 248 1.23 maya int fuse_version(void); 249 1.8 pooka 250 1.32 pho /* Get the version string of the library. Appeared on FUSE 3.0. */ 251 1.32 pho const char *fuse_pkgversion(void); 252 1.32 pho 253 1.32 pho /* Get the current supplementary group IDs for the current request, or 254 1.32 pho * return -errno on failure. Appeared on FUSE 2.8. */ 255 1.32 pho int fuse_getgroups(int size, gid_t list[]); 256 1.32 pho 257 1.32 pho /* Start the cleanup thread when using option "-oremember". Appeared 258 1.32 pho * on FUSE 2.9. */ 259 1.32 pho int fuse_start_cleanup_thread(struct fuse *fuse); 260 1.32 pho 261 1.32 pho /* Stop the cleanup thread when using "-oremember". Appeared on FUSE 262 1.32 pho * 2.9. */ 263 1.32 pho void fuse_stop_cleanup_thread(struct fuse *fuse); 264 1.32 pho 265 1.32 pho /* Iterate over cache removing stale entries, used in conjunction with 266 1.32 pho * "-oremember". Return the number of seconds until the next 267 1.32 pho * cleanup. Appeared on FUSE 2.9. */ 268 1.32 pho int fuse_clean_cache(struct fuse *fuse); 269 1.1 agc 270 1.34 pho /* Generic implementation of fuse_main(). The exact type of "op" is 271 1.34 pho * determined by op_version. This is only an implementation detail: 272 1.34 pho * user code should never call this directly. */ 273 1.34 pho int __fuse_main(int argc, char* argv[], 274 1.34 pho const void* op, int op_version, void* user_data); 275 1.34 pho 276 1.34 pho /* NOTE: Compatibility headers are included 277 1.34 pho * unconditionally. Declarations in these headers all have a version 278 1.34 pho * postfix, and need to be aliased depending on FUSE_USE_VERSION. */ 279 1.34 pho #include <refuse/v11.h> 280 1.34 pho #include <refuse/v21.h> 281 1.34 pho #include <refuse/v22.h> 282 1.34 pho #include <refuse/v23.h> 283 1.34 pho #include <refuse/v25.h> 284 1.34 pho #include <refuse/v26.h> 285 1.34 pho #include <refuse/v28.h> 286 1.34 pho #include <refuse/v29.h> 287 1.34 pho #include <refuse/v30.h> 288 1.34 pho #include <refuse/v32.h> 289 1.34 pho #include <refuse/v34.h> 290 1.34 pho #include <refuse/v35.h> 291 1.34 pho #include <refuse/v38.h> 292 1.34 pho 293 1.34 pho /* NOTE: refuse/fs.h relies on some typedef's in refuse/v*.h */ 294 1.34 pho #include <refuse/fs.h> 295 1.34 pho 296 1.34 pho #define _MK_FUSE_OPERATIONS_(VER) __CONCAT(fuse_operations_v,VER) 297 1.34 pho 298 1.34 pho /* Version specific types and functions. */ 299 1.34 pho #if defined(FUSE_USE_VERSION) 300 1.34 pho /* ===== FUSE 1.x ===== */ 301 1.34 pho # if FUSE_USE_VERSION < 21 302 1.34 pho /* Types */ 303 1.34 pho # define _FUSE_OP_VERSION__ 11 /* Implementation detail */ 304 1.34 pho # define fuse_dirfil_t fuse_dirfil_t_v11 305 1.34 pho # define fuse_operations _MK_FUSE_OPERATIONS_(_FUSE_OP_VERSION__) 306 1.34 pho /* Functions */ 307 1.34 pho static __inline int 308 1.34 pho fuse_main(int argc, char *argv[], const struct fuse_operations *op) { 309 1.34 pho return __fuse_main(argc, argv, op, _FUSE_OP_VERSION__, NULL); 310 1.34 pho } 311 1.34 pho # define fuse_mount fuse_mount_v11 312 1.34 pho # define fuse_unmount fuse_unmount_v11 313 1.34 pho static __inline struct fuse * 314 1.34 pho fuse_new(int fd, int flags, const struct fuse_operations *op) { 315 1.34 pho return fuse_new_v11(fd, flags, op, _FUSE_OP_VERSION__); 316 1.34 pho } 317 1.34 pho # define fuse_destroy fuse_destroy_v11 318 1.34 pho # define fuse_loop_mt fuse_loop_mt_v11 319 1.34 pho 320 1.34 pho /* ===== FUSE 2.1 ===== */ 321 1.34 pho # elif FUSE_USE_VERSION == 21 322 1.34 pho /* Types */ 323 1.34 pho # define _FUSE_OP_VERSION__ 21 324 1.34 pho # define fuse_dirfil_t fuse_dirfil_t_v11 325 1.34 pho # define fuse_operations _MK_FUSE_OPERATIONS_(_FUSE_OP_VERSION__) 326 1.34 pho /* Functions */ 327 1.34 pho static __inline int 328 1.34 pho fuse_main(int argc, char *argv[], const struct fuse_operations *op) { 329 1.34 pho return __fuse_main(argc, argv, op, _FUSE_OP_VERSION__, NULL); 330 1.34 pho } 331 1.34 pho # define fuse_mount fuse_mount_v21 332 1.34 pho # define fuse_unmount fuse_unmount_v11 333 1.34 pho static __inline struct fuse * 334 1.34 pho fuse_new(int fd, const char *opts, const struct fuse_operations *op) { 335 1.34 pho return fuse_new_v21(fd, opts, op, _FUSE_OP_VERSION__, NULL); 336 1.34 pho } 337 1.34 pho # define fuse_destroy fuse_destroy_v11 338 1.34 pho # define fuse_loop_mt fuse_loop_mt_v11 339 1.34 pho 340 1.34 pho /* ===== FUSE 2.2 ===== */ 341 1.34 pho # elif FUSE_USE_VERSION == 22 342 1.34 pho /* Types */ 343 1.34 pho # define _FUSE_OP_VERSION__ 22 344 1.34 pho # define fuse_dirfil_t fuse_dirfil_t_v22 345 1.34 pho # define fuse_operations _MK_FUSE_OPERATIONS_(_FUSE_OP_VERSION__) 346 1.34 pho /* Functions */ 347 1.34 pho static __inline int 348 1.34 pho fuse_main(int argc, char *argv[], const struct fuse_operations *op) { 349 1.34 pho return __fuse_main(argc, argv, op, _FUSE_OP_VERSION__, NULL); 350 1.34 pho } 351 1.34 pho # define fuse_mount fuse_mount_v21 352 1.34 pho # define fuse_unmount fuse_unmount_v11 353 1.34 pho static __inline struct fuse * 354 1.34 pho fuse_new(int fd, const char *opts, const struct fuse_operations *op) { 355 1.34 pho return fuse_new_v21(fd, opts, op, _FUSE_OP_VERSION__, NULL); 356 1.34 pho } 357 1.34 pho # define fuse_destroy fuse_destroy_v11 358 1.34 pho # define fuse_loop_mt fuse_loop_mt_v11 359 1.34 pho static __inline struct fuse * 360 1.34 pho fuse_setup(int argc, char *argv[], const struct fuse_operations *op, 361 1.34 pho size_t op_size __attribute__((__unused__)), 362 1.34 pho char **mountpoint, int *multithreaded, int *fd) { 363 1.34 pho return fuse_setup_v22(argc, argv, op, _FUSE_OP_VERSION__, 364 1.34 pho mountpoint, multithreaded, fd); 365 1.34 pho } 366 1.34 pho # define fuse_teardown fuse_teardown_v22 367 1.34 pho 368 1.34 pho /* ===== FUSE 2.3, 2.4 ===== */ 369 1.34 pho # elif FUSE_USE_VERSION >= 23 && FUSE_USE_VERSION <= 24 370 1.34 pho /* Types */ 371 1.34 pho # define _FUSE_OP_VERSION__ 23 372 1.34 pho # define fuse_dirfil_t fuse_dirfil_t_v22 373 1.34 pho # define fuse_fill_dir_t fuse_fill_dir_t_v23 374 1.34 pho # define fuse_operations _MK_FUSE_OPERATIONS_(_FUSE_OP_VERSION__) 375 1.34 pho /* Functions */ 376 1.34 pho static __inline int 377 1.34 pho fuse_main(int argc, char *argv[], const struct fuse_operations *op) { 378 1.34 pho return __fuse_main(argc, argv, op, _FUSE_OP_VERSION__, NULL); 379 1.34 pho } 380 1.34 pho # define fuse_mount fuse_mount_v21 381 1.34 pho # define fuse_unmount fuse_unmount_v11 382 1.34 pho static __inline struct fuse * 383 1.34 pho fuse_new(int fd, const char *opts, const struct fuse_operations *op, 384 1.34 pho size_t op_size __attribute__((__unused__))) { 385 1.34 pho return fuse_new_v21(fd, opts, op, _FUSE_OP_VERSION__, NULL); 386 1.34 pho } 387 1.34 pho # define fuse_destroy fuse_destroy_v11 388 1.34 pho # define fuse_loop_mt fuse_loop_mt_v11 389 1.34 pho static __inline struct fuse * 390 1.34 pho fuse_setup(int argc, char *argv[], const struct fuse_operations *op, 391 1.34 pho size_t op_size __attribute__((__unused__)), 392 1.34 pho char **mountpoint, int *multithreaded, int *fd) { 393 1.34 pho return fuse_setup_v22(argc, argv, op, _FUSE_OP_VERSION__, 394 1.34 pho mountpoint, multithreaded, fd); 395 1.34 pho } 396 1.34 pho # define fuse_teardown fuse_teardown_v22 397 1.34 pho 398 1.34 pho /* ===== FUSE 2.5 ===== */ 399 1.34 pho # elif FUSE_USE_VERSION == 25 400 1.34 pho /* Types */ 401 1.34 pho # define _FUSE_OP_VERSION__ 25 402 1.34 pho # define fuse_dirfil_t fuse_dirfil_t_v22 403 1.34 pho # define fuse_fill_dir_t fuse_fill_dir_t_v23 404 1.34 pho # define fuse_operations _MK_FUSE_OPERATIONS_(_FUSE_OP_VERSION__) 405 1.34 pho /* Functions */ 406 1.34 pho static __inline int 407 1.34 pho fuse_main(int argc, char *argv[], const struct fuse_operations *op) { 408 1.34 pho return __fuse_main(argc, argv, op, _FUSE_OP_VERSION__, NULL); 409 1.34 pho } 410 1.34 pho # define fuse_mount fuse_mount_v25 411 1.34 pho # define fuse_unmount fuse_unmount_v11 412 1.34 pho static __inline struct fuse * 413 1.34 pho fuse_new(int fd, struct fuse_args *args, const struct fuse_operations *op, 414 1.34 pho size_t op_size __attribute__((__unused__))) { 415 1.34 pho return fuse_new_v25(fd, args, op, _FUSE_OP_VERSION__, NULL); 416 1.34 pho } 417 1.34 pho # define fuse_destroy fuse_destroy_v11 418 1.34 pho # define fuse_loop_mt fuse_loop_mt_v11 419 1.34 pho static __inline struct fuse * 420 1.34 pho fuse_setup(int argc, char *argv[], const struct fuse_operations *op, 421 1.34 pho size_t op_size __attribute__((__unused__)), 422 1.34 pho char **mountpoint, int *multithreaded, int *fd) { 423 1.34 pho return fuse_setup_v22(argc, argv, op, _FUSE_OP_VERSION__, 424 1.34 pho mountpoint, multithreaded, fd); 425 1.34 pho } 426 1.34 pho # define fuse_teardown fuse_teardown_v22 427 1.34 pho # define fuse_parse_cmdline fuse_parse_cmdline_v25 428 1.34 pho 429 1.34 pho /* ===== FUSE 2.6, 2.7 ===== */ 430 1.34 pho # elif FUSE_USE_VERSION >= 26 && FUSE_USE_VERSION <= 27 431 1.34 pho /* Types */ 432 1.34 pho # define _FUSE_OP_VERSION__ 26 433 1.34 pho # define fuse_dirfil_t fuse_dirfil_t_v22 434 1.34 pho # define fuse_fill_dir_t fuse_fill_dir_t_v23 435 1.34 pho # define fuse_operations _MK_FUSE_OPERATIONS_(_FUSE_OP_VERSION__) 436 1.34 pho /* Functions */ 437 1.34 pho static __inline struct fuse_fs * 438 1.34 pho fuse_fs_new(const struct fuse_operations *op, 439 1.34 pho size_t op_size __attribute__((__unused__)), void *user_data) { 440 1.34 pho return __fuse_fs_new(op, _FUSE_OP_VERSION__, user_data); 441 1.34 pho } 442 1.34 pho # define fuse_fs_getattr fuse_fs_getattr_v27 443 1.34 pho # define fuse_fs_rename fuse_fs_rename_v27 444 1.34 pho # define fuse_fs_chmod fuse_fs_chmod_v27 445 1.34 pho # define fuse_fs_chown fuse_fs_chown_v27 446 1.34 pho # define fuse_fs_readdir fuse_fs_readdir_v27 447 1.34 pho # define fuse_fs_truncate fuse_fs_truncate_v27 448 1.34 pho # define fuse_fs_utimens fuse_fs_utimens_v27 449 1.34 pho # define fuse_fs_init fuse_fs_init_v27 450 1.34 pho static __inline int 451 1.34 pho fuse_main(int argc, char *argv[], const struct fuse_operations *op, void* user_data) { 452 1.34 pho return __fuse_main(argc, argv, op, _FUSE_OP_VERSION__, user_data); 453 1.34 pho } 454 1.34 pho # define fuse_mount fuse_mount_v26 455 1.34 pho # define fuse_unmount fuse_unmount_v26 456 1.34 pho static __inline struct fuse * 457 1.34 pho fuse_new(struct fuse_chan *ch, struct fuse_args *args, 458 1.34 pho const struct fuse_operations *op, 459 1.34 pho size_t op_size __attribute__((__unused__)), void *user_data) { 460 1.34 pho return fuse_new_v26(ch, args, op, _FUSE_OP_VERSION__, user_data); 461 1.34 pho } 462 1.34 pho # define fuse_destroy fuse_destroy_v11 463 1.34 pho # define fuse_loop_mt fuse_loop_mt_v11 464 1.34 pho static __inline struct fuse * 465 1.34 pho fuse_setup(int argc, char *argv[], const struct fuse_operations *op, 466 1.34 pho size_t op_size __attribute__((__unused__)), 467 1.34 pho char **mountpoint, int *multithreaded, void *user_data) { 468 1.34 pho return fuse_setup_v26(argc, argv, op, _FUSE_OP_VERSION__, 469 1.34 pho mountpoint, multithreaded, user_data); 470 1.34 pho } 471 1.34 pho # define fuse_teardown fuse_teardown_v26 472 1.34 pho # define fuse_parse_cmdline fuse_parse_cmdline_v25 473 1.34 pho 474 1.34 pho /* ===== FUSE 2.8 ===== */ 475 1.34 pho # elif FUSE_USE_VERSION == 28 476 1.34 pho /* Types */ 477 1.34 pho # define _FUSE_OP_VERSION__ 28 478 1.34 pho # define fuse_dirfil_t fuse_dirfil_t_v22 479 1.34 pho # define fuse_fill_dir_t fuse_fill_dir_t_v23 480 1.34 pho # define fuse_operations _MK_FUSE_OPERATIONS_(_FUSE_OP_VERSION__) 481 1.34 pho /* Functions */ 482 1.34 pho static __inline struct fuse_fs * 483 1.34 pho fuse_fs_new(const struct fuse_operations *op, 484 1.34 pho size_t op_size __attribute__((__unused__)), void *user_data) { 485 1.34 pho return __fuse_fs_new(op, _FUSE_OP_VERSION__, user_data); 486 1.34 pho } 487 1.34 pho # define fuse_fs_getattr fuse_fs_getattr_v27 488 1.34 pho # define fuse_fs_rename fuse_fs_rename_v27 489 1.34 pho # define fuse_fs_chmod fuse_fs_chmod_v27 490 1.34 pho # define fuse_fs_chown fuse_fs_chown_v27 491 1.34 pho # define fuse_fs_readdir fuse_fs_readdir_v27 492 1.34 pho # define fuse_fs_truncate fuse_fs_truncate_v27 493 1.34 pho # define fuse_fs_utimens fuse_fs_utimens_v27 494 1.34 pho # define fuse_fs_ioctl fuse_fs_ioctl_v28 495 1.34 pho # define fuse_fs_init fuse_fs_init_v27 496 1.34 pho static __inline int 497 1.34 pho fuse_main(int argc, char *argv[], const struct fuse_operations *op, void* user_data) { 498 1.34 pho return __fuse_main(argc, argv, op, _FUSE_OP_VERSION__, user_data); 499 1.34 pho } 500 1.34 pho # define fuse_mount fuse_mount_v26 501 1.34 pho # define fuse_unmount fuse_unmount_v26 502 1.34 pho static __inline struct fuse * 503 1.34 pho fuse_new(struct fuse_chan *ch, struct fuse_args *args, 504 1.34 pho const struct fuse_operations *op, 505 1.34 pho size_t op_size __attribute__((__unused__)), void *user_data) { 506 1.34 pho return fuse_new_v26(ch, args, op, _FUSE_OP_VERSION__, user_data); 507 1.34 pho } 508 1.34 pho # define fuse_destroy fuse_destroy_v11 509 1.34 pho # define fuse_loop_mt fuse_loop_mt_v11 510 1.34 pho static __inline struct fuse * 511 1.34 pho fuse_setup(int argc, char *argv[], const struct fuse_operations *op, 512 1.34 pho size_t op_size __attribute__((__unused__)), 513 1.34 pho char **mountpoint, int *multithreaded, void *user_data) { 514 1.34 pho return fuse_setup_v26(argc, argv, op, _FUSE_OP_VERSION__, 515 1.34 pho mountpoint, multithreaded, user_data); 516 1.34 pho } 517 1.34 pho # define fuse_teardown fuse_teardown_v26 518 1.34 pho # define fuse_parse_cmdline fuse_parse_cmdline_v25 519 1.34 pho 520 1.34 pho /* ===== FUSE 2.9 ===== */ 521 1.34 pho # elif FUSE_USE_VERSION == 29 522 1.34 pho /* Types */ 523 1.34 pho # define _FUSE_OP_VERSION__ 29 524 1.34 pho # define fuse_dirfil_t fuse_dirfil_t_v22 525 1.34 pho # define fuse_fill_dir_t fuse_fill_dir_t_v23 526 1.34 pho # define fuse_operations _MK_FUSE_OPERATIONS_(_FUSE_OP_VERSION__) 527 1.34 pho /* Functions */ 528 1.34 pho static __inline struct fuse_fs * 529 1.34 pho fuse_fs_new(const struct fuse_operations *op, 530 1.34 pho size_t op_size __attribute__((__unused__)), void *user_data) { 531 1.34 pho return __fuse_fs_new(op, _FUSE_OP_VERSION__, user_data); 532 1.34 pho } 533 1.34 pho # define fuse_fs_getattr fuse_fs_getattr_v27 534 1.34 pho # define fuse_fs_rename fuse_fs_rename_v27 535 1.34 pho # define fuse_fs_chmod fuse_fs_chmod_v27 536 1.34 pho # define fuse_fs_chown fuse_fs_chown_v27 537 1.34 pho # define fuse_fs_readdir fuse_fs_readdir_v27 538 1.34 pho # define fuse_fs_truncate fuse_fs_truncate_v27 539 1.34 pho # define fuse_fs_utimens fuse_fs_utimens_v27 540 1.34 pho # define fuse_fs_ioctl fuse_fs_ioctl_v28 541 1.34 pho # define fuse_fs_init fuse_fs_init_v27 542 1.34 pho static __inline int 543 1.34 pho fuse_main(int argc, char *argv[], const struct fuse_operations *op, void* user_data) { 544 1.34 pho return __fuse_main(argc, argv, op, _FUSE_OP_VERSION__, user_data); 545 1.34 pho } 546 1.34 pho # define fuse_mount fuse_mount_v26 547 1.34 pho # define fuse_unmount fuse_unmount_v26 548 1.34 pho static __inline struct fuse * 549 1.34 pho fuse_new(struct fuse_chan *ch, struct fuse_args *args, 550 1.34 pho const struct fuse_operations *op, 551 1.34 pho size_t op_size __attribute__((__unused__)), void *user_data) { 552 1.34 pho return fuse_new_v26(ch, args, op, _FUSE_OP_VERSION__, user_data); 553 1.34 pho } 554 1.34 pho # define fuse_destroy fuse_destroy_v11 555 1.34 pho # define fuse_loop_mt fuse_loop_mt_v11 556 1.34 pho static __inline struct fuse * 557 1.34 pho fuse_setup(int argc, char *argv[], const struct fuse_operations *op, 558 1.34 pho size_t op_size __attribute__((__unused__)), 559 1.34 pho char **mountpoint, int *multithreaded, void *user_data) { 560 1.34 pho return fuse_setup_v26(argc, argv, op, _FUSE_OP_VERSION__, 561 1.34 pho mountpoint, multithreaded, user_data); 562 1.34 pho } 563 1.34 pho # define fuse_teardown fuse_teardown_v26 564 1.34 pho # define fuse_parse_cmdline fuse_parse_cmdline_v25 565 1.34 pho 566 1.34 pho /* ===== FUSE 3.0, 3.1 ===== */ 567 1.34 pho # elif FUSE_USE_VERSION >= 30 && FUSE_USE_VERSION <= 31 568 1.34 pho /* Types */ 569 1.34 pho # define _FUSE_OP_VERSION__ 30 570 1.34 pho # define fuse_fill_dir_t fuse_fill_dir_t_v30 571 1.34 pho # define fuse_operations _MK_FUSE_OPERATIONS_(_FUSE_OP_VERSION__) 572 1.34 pho /* Functions */ 573 1.34 pho static __inline struct fuse_fs * 574 1.34 pho fuse_fs_new(const struct fuse_operations *op, 575 1.34 pho size_t op_size __attribute__((__unused__)), void *user_data) { 576 1.34 pho return __fuse_fs_new(op, _FUSE_OP_VERSION__, user_data); 577 1.34 pho } 578 1.34 pho # define fuse_fs_getattr fuse_fs_getattr_v30 579 1.34 pho # define fuse_fs_rename fuse_fs_rename_v30 580 1.34 pho # define fuse_fs_chmod fuse_fs_chmod_v30 581 1.34 pho # define fuse_fs_chown fuse_fs_chown_v30 582 1.34 pho # define fuse_fs_readdir fuse_fs_readdir_v30 583 1.34 pho # define fuse_fs_truncate fuse_fs_truncate_v30 584 1.34 pho # define fuse_fs_utimens fuse_fs_utimens_v30 585 1.34 pho # define fuse_fs_ioctl fuse_fs_ioctl_v28 586 1.34 pho # define fuse_fs_init fuse_fs_init_v30 587 1.34 pho static __inline int 588 1.34 pho fuse_main(int argc, char *argv[], const struct fuse_operations *op, void* user_data) { 589 1.34 pho return __fuse_main(argc, argv, op, _FUSE_OP_VERSION__, user_data); 590 1.34 pho } 591 1.34 pho # define fuse_mount fuse_mount_v30 592 1.34 pho # define fuse_unmount fuse_unmount_v30 593 1.34 pho static __inline struct fuse * 594 1.34 pho fuse_new(struct fuse_args *args, const struct fuse_operations *op, 595 1.34 pho size_t op_size __attribute__((__unused__)), void *user_data) { 596 1.34 pho return fuse_new_v30(args, op, _FUSE_OP_VERSION__, user_data); 597 1.34 pho } 598 1.34 pho # define fuse_destroy fuse_destroy_v30 599 1.34 pho # define fuse_loop_mt fuse_loop_mt_v30 600 1.34 pho /* fuse_setup(3) and fuse_teardown(3) have been removed as of FUSE 3.0. */ 601 1.34 pho # define fuse_parse_cmdline fuse_parse_cmdline_v30 602 1.34 pho 603 1.34 pho /* ===== FUSE 3.2, 3.3 ===== */ 604 1.34 pho # elif FUSE_USE_VERSION >= 32 && FUSE_USE_VERSION <= 33 605 1.34 pho /* Types */ 606 1.34 pho # define _FUSE_OP_VERSION__ 30 607 1.34 pho # define fuse_fill_dir_t fuse_fill_dir_t_v30 608 1.34 pho # define fuse_operations _MK_FUSE_OPERATIONS_(_FUSE_OP_VERSION__) 609 1.34 pho /* Functions */ 610 1.34 pho static __inline struct fuse_fs * 611 1.34 pho fuse_fs_new(const struct fuse_operations *op, 612 1.34 pho size_t op_size __attribute__((__unused__)), void *user_data) { 613 1.34 pho return __fuse_fs_new(op, _FUSE_OP_VERSION__, user_data); 614 1.34 pho } 615 1.34 pho # define fuse_fs_getattr fuse_fs_getattr_v30 616 1.34 pho # define fuse_fs_rename fuse_fs_rename_v30 617 1.34 pho # define fuse_fs_chmod fuse_fs_chmod_v30 618 1.34 pho # define fuse_fs_chown fuse_fs_chown_v30 619 1.34 pho # define fuse_fs_readdir fuse_fs_readdir_v30 620 1.34 pho # define fuse_fs_truncate fuse_fs_truncate_v30 621 1.34 pho # define fuse_fs_utimens fuse_fs_utimens_v30 622 1.34 pho # define fuse_fs_ioctl fuse_fs_ioctl_v28 623 1.34 pho # define fuse_fs_init fuse_fs_init_v30 624 1.34 pho static __inline int 625 1.34 pho fuse_main(int argc, char *argv[], const struct fuse_operations *op, void* user_data) { 626 1.34 pho return __fuse_main(argc, argv, op, _FUSE_OP_VERSION__, user_data); 627 1.34 pho } 628 1.34 pho # define fuse_mount fuse_mount_v30 629 1.34 pho # define fuse_unmount fuse_unmount_v30 630 1.34 pho static __inline struct fuse * 631 1.34 pho fuse_new(struct fuse_args *args, const struct fuse_operations *op, 632 1.34 pho size_t op_size __attribute__((__unused__)), void *user_data) { 633 1.34 pho return fuse_new_v30(args, op, _FUSE_OP_VERSION__, user_data); 634 1.34 pho } 635 1.34 pho # define fuse_destroy fuse_destroy_v30 636 1.34 pho # define fuse_loop_mt fuse_loop_mt_v32 637 1.34 pho # define fuse_parse_cmdline fuse_parse_cmdline_v30 638 1.34 pho 639 1.34 pho /* ===== FUSE 3.4 ===== */ 640 1.35 abs # elif FUSE_USE_VERSION == 34 641 1.34 pho /* Types */ 642 1.34 pho # define _FUSE_OP_VERSION__ 34 643 1.34 pho # define fuse_fill_dir_t fuse_fill_dir_t_v30 644 1.36 pho # define fuse_operations _MK_FUSE_OPERATIONS_(_FUSE_OP_VERSION__) 645 1.34 pho /* Functions */ 646 1.34 pho static __inline struct fuse_fs * 647 1.34 pho fuse_fs_new(const struct fuse_operations *op, 648 1.34 pho size_t op_size __attribute__((__unused__)), void *user_data) { 649 1.34 pho return __fuse_fs_new(op, _FUSE_OP_VERSION__, user_data); 650 1.34 pho } 651 1.34 pho # define fuse_fs_getattr fuse_fs_getattr_v30 652 1.34 pho # define fuse_fs_rename fuse_fs_rename_v30 653 1.34 pho # define fuse_fs_chmod fuse_fs_chmod_v30 654 1.34 pho # define fuse_fs_chown fuse_fs_chown_v30 655 1.34 pho # define fuse_fs_readdir fuse_fs_readdir_v30 656 1.34 pho # define fuse_fs_truncate fuse_fs_truncate_v30 657 1.34 pho # define fuse_fs_utimens fuse_fs_utimens_v30 658 1.34 pho # define fuse_fs_ioctl fuse_fs_ioctl_v28 659 1.34 pho # define fuse_fs_init fuse_fs_init_v30 660 1.34 pho static __inline int 661 1.34 pho fuse_main(int argc, char *argv[], const struct fuse_operations *op, void* user_data) { 662 1.34 pho return __fuse_main(argc, argv, op, _FUSE_OP_VERSION__, user_data); 663 1.34 pho } 664 1.34 pho # define fuse_mount fuse_mount_v30 665 1.34 pho # define fuse_unmount fuse_unmount_v30 666 1.34 pho static __inline struct fuse * 667 1.34 pho fuse_new(struct fuse_args *args, const struct fuse_operations *op, 668 1.34 pho size_t op_size __attribute__((__unused__)), void *user_data) { 669 1.34 pho return fuse_new_v30(args, op, _FUSE_OP_VERSION__, user_data); 670 1.34 pho } 671 1.34 pho # define fuse_destroy fuse_destroy_v30 672 1.34 pho # define fuse_loop_mt fuse_loop_mt_v32 673 1.34 pho # define fuse_parse_cmdline fuse_parse_cmdline_v30 674 1.34 pho 675 1.34 pho /* ===== FUSE 3.5, 3.6, 3.7 ===== */ 676 1.34 pho # elif FUSE_USE_VERSION >= 35 && FUSE_USE_VERSION <= 37 677 1.34 pho /* Types */ 678 1.34 pho # define _FUSE_OP_VERSION__ 35 679 1.34 pho # define fuse_fill_dir_t fuse_fill_dir_t_v30 680 1.34 pho # define fuse_operations _MK_FUSE_OPERATIONS_(_FUSE_OP_VERSION__) 681 1.34 pho /* Functions */ 682 1.34 pho static __inline struct fuse_fs * 683 1.34 pho fuse_fs_new(const struct fuse_operations *op, 684 1.34 pho size_t op_size __attribute__((__unused__)), void *user_data) { 685 1.34 pho return __fuse_fs_new(op, _FUSE_OP_VERSION__, user_data); 686 1.34 pho } 687 1.34 pho # define fuse_fs_getattr fuse_fs_getattr_v30 688 1.34 pho # define fuse_fs_rename fuse_fs_rename_v30 689 1.34 pho # define fuse_fs_chmod fuse_fs_chmod_v30 690 1.34 pho # define fuse_fs_chown fuse_fs_chown_v30 691 1.34 pho # define fuse_fs_readdir fuse_fs_readdir_v30 692 1.34 pho # define fuse_fs_truncate fuse_fs_truncate_v30 693 1.34 pho # define fuse_fs_utimens fuse_fs_utimens_v30 694 1.34 pho # define fuse_fs_ioctl fuse_fs_ioctl_v35 695 1.34 pho # define fuse_fs_init fuse_fs_init_v30 696 1.34 pho static __inline int 697 1.34 pho fuse_main(int argc, char *argv[], const struct fuse_operations *op, void* user_data) { 698 1.34 pho return __fuse_main(argc, argv, op, _FUSE_OP_VERSION__, user_data); 699 1.34 pho } 700 1.34 pho # define fuse_mount fuse_mount_v30 701 1.34 pho # define fuse_unmount fuse_unmount_v30 702 1.34 pho static __inline struct fuse * 703 1.34 pho fuse_new(struct fuse_args *args, const struct fuse_operations *op, 704 1.34 pho size_t op_size __attribute__((__unused__)), void *user_data) { 705 1.34 pho return fuse_new_v30(args, op, _FUSE_OP_VERSION__, user_data); 706 1.34 pho } 707 1.34 pho # define fuse_destroy fuse_destroy_v30 708 1.34 pho # define fuse_loop_mt fuse_loop_mt_v32 709 1.34 pho # define fuse_parse_cmdline fuse_parse_cmdline_v30 710 1.34 pho 711 1.34 pho /* ===== FUSE 3.8, 3.9, 3.10 ===== */ 712 1.34 pho # elif FUSE_USE_VERSION >= 38 && FUSE_USE_VERSION <= 310 713 1.34 pho /* Types */ 714 1.34 pho # define _FUSE_OP_VERSION__ 38 715 1.34 pho # define fuse_fill_dir_t fuse_fill_dir_t_v30 716 1.34 pho # define fuse_operations _MK_FUSE_OPERATIONS_(_FUSE_OP_VERSION__) 717 1.34 pho /* Functions */ 718 1.34 pho static __inline struct fuse_fs * 719 1.34 pho fuse_fs_new(const struct fuse_operations *op, 720 1.34 pho size_t op_size __attribute__((__unused__)), void *user_data) { 721 1.34 pho return __fuse_fs_new(op, _FUSE_OP_VERSION__, user_data); 722 1.34 pho } 723 1.34 pho # define fuse_fs_getattr fuse_fs_getattr_v30 724 1.34 pho # define fuse_fs_rename fuse_fs_rename_v30 725 1.34 pho # define fuse_fs_chmod fuse_fs_chmod_v30 726 1.34 pho # define fuse_fs_chown fuse_fs_chown_v30 727 1.34 pho # define fuse_fs_readdir fuse_fs_readdir_v30 728 1.34 pho # define fuse_fs_truncate fuse_fs_truncate_v30 729 1.34 pho # define fuse_fs_utimens fuse_fs_utimens_v30 730 1.34 pho # define fuse_fs_ioctl fuse_fs_ioctl_v35 731 1.34 pho # define fuse_fs_init fuse_fs_init_v30 732 1.34 pho static __inline int 733 1.34 pho fuse_main(int argc, char *argv[], const struct fuse_operations *op, void* user_data) { 734 1.34 pho return __fuse_main(argc, argv, op, _FUSE_OP_VERSION__, user_data); 735 1.34 pho } 736 1.34 pho # define fuse_mount fuse_mount_v30 737 1.34 pho # define fuse_unmount fuse_unmount_v30 738 1.34 pho static __inline struct fuse * 739 1.34 pho fuse_new(struct fuse_args *args, const struct fuse_operations *op, 740 1.34 pho size_t op_size __attribute__((__unused__)), void *user_data) { 741 1.34 pho return fuse_new_v30(args, op, _FUSE_OP_VERSION__, user_data); 742 1.34 pho } 743 1.34 pho # define fuse_destroy fuse_destroy_v30 744 1.34 pho # define fuse_loop_mt fuse_loop_mt_v32 745 1.34 pho # define fuse_parse_cmdline fuse_parse_cmdline_v30 746 1.34 pho 747 1.34 pho # endif 748 1.34 pho #endif /* defined(FUSE_USE_VERSION) */ 749 1.34 pho 750 1.1 agc #ifdef __cplusplus 751 1.1 agc } 752 1.1 agc #endif 753 1.1 agc 754 1.1 agc #endif 755