Refactor common headers
This commit is contained in:
parent
c84fd24517
commit
53082cd3d2
|
@ -6,36 +6,35 @@
|
|||
#ifndef _FUSE_IOCTL_H_
|
||||
#define _FUSE_IOCTL_H_
|
||||
|
||||
#include <sys/ioctl.h>
|
||||
#include <stdint.h>
|
||||
#include <sys/ioctl.h>
|
||||
|
||||
/* FUSEDEVIOCxxx */
|
||||
|
||||
/* Get mounter's pid. */
|
||||
// Get mounter's pid
|
||||
#define FUSEDEVGETMOUNTERPID _IOR('F', 1, u_int32_t)
|
||||
|
||||
/* Check if FUSE_INIT kernel-user handshake is complete. */
|
||||
// Check if FUSE_INIT kernel-user handshake is complete
|
||||
#define FUSEDEVIOCGETHANDSHAKECOMPLETE _IOR('F', 2, u_int32_t)
|
||||
|
||||
/* Mark the daemon as dead. */
|
||||
// Mark the daemon as dead
|
||||
#define FUSEDEVIOCSETDAEMONDEAD _IOW('F', 3, u_int32_t)
|
||||
|
||||
/* Tell the kernel which operations the daemon implements. */
|
||||
// Tell the kernel which operations the daemon implements
|
||||
#define FUSEDEVIOCSETIMPLEMENTEDBITS _IOW('F', 4, u_int64_t)
|
||||
|
||||
/* Get device's random "secret". */
|
||||
// Get device's random "secret"
|
||||
#define FUSEDEVIOCGETRANDOM _IOR('F', 5, u_int32_t)
|
||||
|
||||
/*
|
||||
* The 'AVFI' (alter-vnode-for-inode) ioctls all require an inode number
|
||||
* as an argument. In the user-space library, you can get the inode number
|
||||
* from a path by using fuse_lookup_inode_by_path_np() [lib/fuse.c].
|
||||
* The "AVFI" (alter-vnode-for-inode) ioctls all require an inode number as an
|
||||
* argument. In the user-space library, you can get the inode number from a
|
||||
* path by using fuse_lookup_inode_by_path_np().
|
||||
*
|
||||
* To see an example of using this, see the implementation of
|
||||
* fuse_purge_path_np() in lib/fuse_darwin.c.
|
||||
*/
|
||||
|
||||
struct fuse_avfi_ioctl {
|
||||
struct fuse_avfi_ioctl
|
||||
{
|
||||
uint64_t inode;
|
||||
uint64_t cmd;
|
||||
uint32_t ubc_flags;
|
||||
|
@ -43,21 +42,20 @@ struct fuse_avfi_ioctl {
|
|||
off_t size;
|
||||
};
|
||||
|
||||
/* Alter the vnode (if any) specified by the given inode. */
|
||||
// Alter the vnode (if any) specified by the given inode
|
||||
#define FUSEDEVIOCALTERVNODEFORINODE _IOW('F', 6, struct fuse_avfi_ioctl)
|
||||
#define FSCTLALTERVNODEFORINODE IOCBASECMD(FUSEDEVIOCALTERVNODEFORINODE)
|
||||
|
||||
/*
|
||||
* Possible cmd values for AVFI.
|
||||
*/
|
||||
/* Possible cmd values for AVFI */
|
||||
|
||||
#define FUSE_AVFI_MARKGONE 0x00000001 /* no ubc_flags */
|
||||
#define FUSE_AVFI_PURGEATTRCACHE 0x00000002 /* no ubc_flags */
|
||||
#define FUSE_AVFI_PURGEVNCACHE 0x00000004 /* no ubc_flags */
|
||||
#define FUSE_AVFI_UBC 0x00000008 /* uses ubc_flags */
|
||||
#define FUSE_AVFI_UBC_SETSIZE 0x00000010 /* uses ubc_flags, size */
|
||||
#define FUSE_AVFI_KNOTE 0x00000020 /* uses note */
|
||||
#define FUSE_AVFI_MARKGONE 0x00000001 // no ubc_flags
|
||||
#define FUSE_AVFI_PURGEATTRCACHE 0x00000002 // no ubc_flags
|
||||
#define FUSE_AVFI_PURGEVNCACHE 0x00000004 // no ubc_flags
|
||||
#define FUSE_AVFI_UBC 0x00000008 // uses ubc_flags
|
||||
#define FUSE_AVFI_UBC_SETSIZE 0x00000010 // uses ubc_flags, size
|
||||
#define FUSE_AVFI_KNOTE 0x00000020 // uses note
|
||||
|
||||
// Enable or disable ACL
|
||||
#define FUSE_SETACLSTATE _IOW('h', 10, int32_t)
|
||||
#define FSCTLSETACLSTATE IOCBASECMD(FUSE_SETACLSTATE)
|
||||
|
||||
|
|
|
@ -13,39 +13,50 @@
|
|||
#include <sys/param.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#ifndef KERNEL
|
||||
#include <unistd.h>
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Shared between the kernel and user spaces. This is 64-bit invariant.
|
||||
* Mount arguments, shared between the kernel and user-space. This structure
|
||||
* is 64-bit invariant.
|
||||
*/
|
||||
struct fuse_mount_args {
|
||||
char mntpath[MAXPATHLEN]; // path to the mount point
|
||||
char fsname[MAXPATHLEN]; // file system description string
|
||||
|
||||
struct fuse_mount_args
|
||||
{
|
||||
char mntpath[MAXPATHLEN]; // path to the mount point
|
||||
char fsname[MAXPATHLEN]; // file system description string
|
||||
char fstypename[MFSTYPENAMELEN]; // file system type name
|
||||
char volname[MAXPATHLEN]; // volume name
|
||||
uint64_t altflags; // see mount-time flags below
|
||||
uint32_t blocksize; // fictitious block size of our "storage"
|
||||
uint32_t daemon_timeout; // timeout in seconds for upcalls to daemon
|
||||
uint32_t fsid; // optional custom value for part of fsid[0]
|
||||
uint32_t fssubtype; // file system sub type id (type is "osxfuse")
|
||||
uint32_t iosize; // maximum size for reading or writing
|
||||
uint32_t random; // random "secret" from device
|
||||
uint32_t rdev; // dev_t for the /dev/osxfuseN in question
|
||||
char volname[MAXPATHLEN]; // volume name
|
||||
uint64_t altflags; // see mount-time flags below
|
||||
uint32_t blocksize; // fictitious block size of our "storage"
|
||||
uint32_t daemon_timeout; // timeout in seconds for upcalls to daemon
|
||||
uint32_t fsid; // optional custom value for part of fsid[0]
|
||||
uint32_t fssubtype; // file system sub type id
|
||||
uint32_t iosize; // maximum size for reading or writing
|
||||
uint32_t random; // random "secret" from device
|
||||
uint32_t rdev; // dev_t for the /dev/osxfuse{n} in question
|
||||
};
|
||||
|
||||
typedef struct fuse_mount_args fuse_mount_args;
|
||||
|
||||
/* file system subtype */
|
||||
enum {
|
||||
/* File system subtypes */
|
||||
|
||||
enum
|
||||
{
|
||||
FUSE_FSSUBTYPE_UNKNOWN = 0,
|
||||
FUSE_FSSUBTYPE_INVALID = -1,
|
||||
};
|
||||
|
||||
/* Courtesy of the Finder, this is 1 less than what you think it should be. */
|
||||
#define FUSE_FSTYPENAME_MAXLEN (MFSTYPENAMELEN - sizeof(OSXFUSE_FSTYPENAME_PREFIX) - 1)
|
||||
/*
|
||||
* Maximum file system type name length. Courtesy of the Finder, this is 1
|
||||
* less than what you think it should be.
|
||||
*/
|
||||
#define FUSE_TYPE_NAME_MAXLEN (MFSTYPENAMELEN - sizeof(OSXFUSE_TYPE_NAME_PREFIX) - 1)
|
||||
|
||||
/* Mount-time flags */
|
||||
|
||||
/* mount-time flags */
|
||||
#define FUSE_MOPT_IGNORE 0x0000000000000000ULL
|
||||
#define FUSE_MOPT_ALLOW_OTHER 0x0000000000000001ULL
|
||||
#define FUSE_MOPT_ALLOW_RECURSION 0x0000000000000002ULL
|
||||
|
@ -76,8 +87,6 @@ enum {
|
|||
#define FUSE_MOPT_NO_SYNCWRITES 0x0000000020000000ULL
|
||||
#define FUSE_MOPT_NO_UBC 0x0000000040000000ULL
|
||||
#define FUSE_MOPT_NO_VNCACHE 0x0000000080000000ULL
|
||||
|
||||
/* Next 32 bits */
|
||||
#define FUSE_MOPT_USE_INO 0x0000000100000000ULL
|
||||
#define FUSE_MOPT_VOLNAME 0x0000000200000000ULL
|
||||
#define FUSE_MOPT_AUTO_CACHE 0x0000000800000000ULL
|
||||
|
|
|
@ -1,163 +1,181 @@
|
|||
/*
|
||||
* Copyright (c) 2006-2008 Amit Singh/Google Inc.
|
||||
* Copyright (c) 2010 Tuxera Inc.
|
||||
* Copyright (c) 2011-2014 Benjamin Fleischer
|
||||
* Copyright (c) 2011-2015 Benjamin Fleischer
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef _FUSE_PARAM_H_
|
||||
#define _FUSE_PARAM_H_
|
||||
|
||||
#include <fuse_preprocessor.h>
|
||||
#include <fuse_version.h>
|
||||
|
||||
#include <AvailabilityMacros.h>
|
||||
#include <mach/vm_param.h>
|
||||
|
||||
/* Compile-time tunables */
|
||||
|
||||
#define M_OSXFUSE_ENABLE_FIFOFS 0
|
||||
#define M_OSXFUSE_ENABLE_INTERRUPT 1
|
||||
#define M_OSXFUSE_ENABLE_SPECFS 0
|
||||
#define M_OSXFUSE_ENABLE_TSLOCKING 1
|
||||
#define M_OSXFUSE_ENABLE_UNSUPPORTED 1
|
||||
#define M_OSXFUSE_ENABLE_XATTR 1
|
||||
#define M_OSXFUSE_ENABLE_DSELECT 1
|
||||
#define M_OSXFUSE_ENABLE_KEXT_VERSION_CHECK 0
|
||||
|
||||
#if M_OSXFUSE_ENABLE_UNSUPPORTED
|
||||
#define M_OSXFUSE_ENABLE_EXCHANGE 1
|
||||
#define M_OSXFUSE_ENABLE_INTERIM_FSNODE_LOCK 1
|
||||
#ifdef KERNEL
|
||||
#include <libkern/version.h>
|
||||
#endif
|
||||
|
||||
#if MAC_OS_X_VERSION_MIN_REQUIRED < 1060
|
||||
/*
|
||||
* Compile-time tunables
|
||||
*/
|
||||
|
||||
#ifdef KERNEL
|
||||
/* Kernel-space compile-time tunables */
|
||||
|
||||
#define M_OSXFUSE_ENABLE_FIFOFS 0
|
||||
#define M_OSXFUSE_ENABLE_INTERRUPT 1
|
||||
#define M_OSXFUSE_ENABLE_SPECFS 0
|
||||
#define M_OSXFUSE_ENABLE_TSLOCKING 1
|
||||
#define M_OSXFUSE_ENABLE_UNSUPPORTED 1
|
||||
#define M_OSXFUSE_ENABLE_XATTR 1
|
||||
#define M_OSXFUSE_ENABLE_DSELECT 1
|
||||
|
||||
#if M_OSXFUSE_ENABLE_UNSUPPORTED
|
||||
#define M_OSXFUSE_ENABLE_EXCHANGE 1
|
||||
#define M_OSXFUSE_ENABLE_INTERIM_FSNODE_LOCK 1
|
||||
|
||||
/*
|
||||
* In Mac OS X 10.5 the file system implementation is responsible for
|
||||
* posting kqueue events. Starting with Mac OS X 10.6 VFS took over
|
||||
* that job.
|
||||
* In Mac OS X 10.5 the file system implementation is responsible for posting
|
||||
* kqueue events. Starting with Mac OS X 10.6 VFS took over that job.
|
||||
*/
|
||||
#if VERSION_MAJOR < 10
|
||||
#define M_OSXFUSE_ENABLE_KQUEUE 1
|
||||
#endif
|
||||
#endif /* M_OSXFUSE_ENABLE_UNSUPPORTED */
|
||||
|
||||
#if M_OSXFUSE_ENABLE_INTERIM_FSNODE_LOCK
|
||||
/*
|
||||
* Options M_OSXFUSE_ENABLE_BIG_LOCK and M_OSXFUSE_ENABLE_HUGE_LOCK are
|
||||
* mutually exclusive.
|
||||
*/
|
||||
#define M_OSXFUSE_ENABLE_KQUEUE 1
|
||||
#endif
|
||||
#endif /* MAC_OS_X_VERSION_MIN_REQUIRED < 1060 */
|
||||
#define M_OSXFUSE_ENABLE_HUGE_LOCK 0
|
||||
#define M_OSXFUSE_ENABLE_BIG_LOCK 1
|
||||
|
||||
#if M_OSXFUSE_ENABLE_INTERIM_FSNODE_LOCK
|
||||
/*
|
||||
* Options M_OSXFUSE_ENABLE_BIG_LOCK and M_OSXFUSE_ENABLE_HUGE_LOCK are
|
||||
* mutually exclusive.
|
||||
*/
|
||||
#define M_OSXFUSE_ENABLE_HUGE_LOCK 0
|
||||
#define M_OSXFUSE_ENABLE_BIG_LOCK 1
|
||||
#define M_OSXFUSE_ENABLE_LOCK_LOGGING 0
|
||||
#endif /* M_OSXFUSE_ENABLE_INTERIM_FSNODE_LOCK */
|
||||
|
||||
#define M_OSXFUSE_ENABLE_LOCK_LOGGING 0
|
||||
#define FUSE_VNOP_EXPORT __private_extern__
|
||||
#else
|
||||
#define FUSE_VNOP_EXPORT static
|
||||
#endif /* M_OSXFUSE_ENABLE_INTERIM_FSNODE_LOCK */
|
||||
#else /* !KERNEL */
|
||||
/* User-space compile-time tunables */
|
||||
|
||||
/* User Control */
|
||||
#define M_OSXFUSE_ENABLE_KEXT_VERSION_CHECK 0
|
||||
#endif /* KERNEL */
|
||||
|
||||
#define MACOSX_ADMIN_GROUP_NAME "admin"
|
||||
/*
|
||||
* Availability
|
||||
*/
|
||||
|
||||
// Minimum supported Darwin version
|
||||
#define OSXFUSE_MIN_DARWIN_VERSION 9 /* Mac OS X 10.5 */
|
||||
|
||||
#define SYSCTL_OSXFUSE_TUNABLES_ADMIN "vfs.generic." OSXFUSE_NAME ".tunables.admin_group"
|
||||
#define SYSCTL_OSXFUSE_VERSION_NUMBER "vfs.generic." OSXFUSE_NAME ".version.number"
|
||||
/* Compatible API version */
|
||||
|
||||
#if OSXFUSE_ENABLE_MACFUSE_MODE
|
||||
#define SYSCTL_OSXFUSE_MACFUSE_MODE "vfs.generic." OSXFUSE_NAME ".control.macfuse_mode"
|
||||
#endif
|
||||
#define FUSE_ABI_VERSION_MAX (FUSE_KERNEL_VERSION * 100 + FUSE_KERNEL_MINOR_VERSION)
|
||||
#define FUSE_ABI_VERSION_MIN 708
|
||||
|
||||
/* Paths */
|
||||
/*
|
||||
* Paths
|
||||
*/
|
||||
|
||||
#ifndef OSXFUSE_BUNDLE_PREFIX_LITERAL
|
||||
#define OSXFUSE_BUNDLE_PREFIX_LITERAL
|
||||
#endif
|
||||
#define OSXFUSE_BUNDLE_PREFIX FUSE_PP_STRINGIFY(OSXFUSE_BUNDLE_PREFIX_LITERAL)
|
||||
|
||||
#define OSXFUSE_BUNDLE_PREFIX OSXFUSE_STRINGIFY(OSXFUSE_BUNDLE_PREFIX_LITERAL)
|
||||
|
||||
#define OSXFUSE_BUNDLE_PATH OSXFUSE_BUNDLE_PREFIX "/Library/Filesystems/osxfuse.fs"
|
||||
#define OSXFUSE_RESOURCES_PATH OSXFUSE_BUNDLE_PATH "/Contents/Resources"
|
||||
#define OSXFUSE_EXTENSIONS_PATH OSXFUSE_BUNDLE_PATH "/Contents/Extensions"
|
||||
#define OSXFUSE_KEXT_NAME "osxfuse.kext"
|
||||
#define OSXFUSE_LOAD_PROG OSXFUSE_RESOURCES_PATH "/load_osxfuse"
|
||||
#define OSXFUSE_MOUNT_PROG OSXFUSE_RESOURCES_PATH "/mount_osxfuse"
|
||||
#define SYSTEM_KEXTLOAD "/sbin/kextload"
|
||||
#define SYSTEM_KEXTUNLOAD "/sbin/kextunload"
|
||||
|
||||
/* Minimum supported Darwin version */
|
||||
|
||||
#define OSXFUSE_MIN_DARWIN_VERSION 9
|
||||
|
||||
/* Compatible API version */
|
||||
|
||||
#define FUSE_ABI_VERSION_MAX (FUSE_KERNEL_VERSION * 100 + FUSE_KERNEL_MINOR_VERSION)
|
||||
#define FUSE_ABI_VERSION_MIN 708
|
||||
|
||||
/* Device Interface */
|
||||
#define OSXFUSE_BUNDLE_PATH OSXFUSE_BUNDLE_PREFIX "/Library/Filesystems/osxfuse.fs"
|
||||
#define OSXFUSE_RESOURCES_PATH OSXFUSE_BUNDLE_PATH "/Contents/Resources"
|
||||
#define OSXFUSE_EXTENSIONS_PATH OSXFUSE_BUNDLE_PATH "/Contents/Extensions"
|
||||
#define OSXFUSE_KEXT_NAME "osxfuse.kext"
|
||||
#define OSXFUSE_LOAD_PROG OSXFUSE_RESOURCES_PATH "/load_osxfuse"
|
||||
#define OSXFUSE_MOUNT_PROG OSXFUSE_RESOURCES_PATH "/mount_osxfuse"
|
||||
#define SYSTEM_KEXTLOAD "/sbin/kextload"
|
||||
#define SYSTEM_KEXTUNLOAD "/sbin/kextunload"
|
||||
|
||||
/*
|
||||
* This is the prefix ("osxfuse" by default) of the name of a FUSE device node
|
||||
* in devfs. The suffix is the device number. "/dev/osxfuse0" is the first FUSE
|
||||
* device by default. If you change the prefix from the default to something
|
||||
* else, the user-space FUSE library will need to know about it too.
|
||||
* User Control
|
||||
*/
|
||||
|
||||
#define MACOSX_ADMIN_GROUP_NAME "admin"
|
||||
|
||||
#define OSXFUSE_SYSCTL_TUNABLES_ADMIN "vfs.generic." OSXFUSE_NAME ".tunables.admin_group"
|
||||
#define OSXFUSE_SYSCTL_VERSION_NUMBER "vfs.generic." OSXFUSE_NAME ".version.number"
|
||||
|
||||
#if OSXFUSE_ENABLE_MACFUSE_MODE
|
||||
#define OSXFUSE_SYSCTL_MACFUSE_MODE "vfs.generic." OSXFUSE_NAME ".control.macfuse_mode"
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Device interface
|
||||
*/
|
||||
|
||||
/*
|
||||
* This is the prefix of the name of a FUSE device node in devfs. The suffix is
|
||||
* the device number. "/dev/osxfuse0" is the first FUSE device by default.
|
||||
*/
|
||||
#define OSXFUSE_DEVICE_BASENAME OSXFUSE_NAME
|
||||
|
||||
/*
|
||||
* This is the number of /dev/osxfuse<n> nodes we will create. <n> goes from
|
||||
* This is the number of /dev/osxfuse{n} nodes we will create. {n} goes from
|
||||
* 0 to (OSXFUSE_NDEVICES - 1).
|
||||
*/
|
||||
#define OSXFUSE_NDEVICES 24
|
||||
|
||||
/*
|
||||
* File system interface
|
||||
*/
|
||||
|
||||
#define FUSE_MAX_UPL_TRANSFER 256
|
||||
|
||||
/*
|
||||
* This is the default block size of the virtual storage devices that are
|
||||
* implicitly implemented by the FUSE kernel extension. This can be changed
|
||||
* on a per-mount basis (there's one such virtual device for each mount).
|
||||
* on a per-mount basis.
|
||||
*/
|
||||
#define FUSE_DEFAULT_BLOCKSIZE 4096
|
||||
|
||||
#define FUSE_MIN_BLOCKSIZE 512
|
||||
#define FUSE_MAX_BLOCKSIZE MAXPHYS
|
||||
|
||||
#ifndef MAX_UPL_TRANSFER
|
||||
#define MAX_UPL_TRANSFER 256
|
||||
#endif
|
||||
|
||||
/*
|
||||
* This is default I/O size used while accessing the virtual storage devices.
|
||||
* This can be changed on a per-mount and per-file basis.
|
||||
* This is the default I/O size used while accessing the virtual storage
|
||||
* devices. It can be changed on a per-mount and per-file basis.
|
||||
*
|
||||
* Nevertheless, the I/O size must be at least as big as the block size.
|
||||
*/
|
||||
#define FUSE_DEFAULT_IOSIZE (16 * PAGE_SIZE)
|
||||
|
||||
#define FUSE_MIN_IOSIZE 512
|
||||
#define FUSE_MAX_IOSIZE (MAX_UPL_TRANSFER * PAGE_SIZE)
|
||||
#define FUSE_MAX_IOSIZE (FUSE_MAX_UPL_TRANSFER * PAGE_SIZE)
|
||||
|
||||
#define FUSE_DEFAULT_DAEMON_TIMEOUT 60 /* s */
|
||||
#define FUSE_MIN_DAEMON_TIMEOUT 0 /* s */
|
||||
#define FUSE_MAX_DAEMON_TIMEOUT 600 /* s */
|
||||
/* User-Kernel IPC buffer */
|
||||
|
||||
#define FUSE_DEFAULT_USERKERNEL_BUFSIZE FUSE_MAX_IOSIZE
|
||||
#define FUSE_MIN_USERKERNEL_BUFSIZE (128 * 1024)
|
||||
#define FUSE_MAX_USERKERNEL_BUFSIZE (16 * 1024 * 1024)
|
||||
|
||||
/* Daemon timeout */
|
||||
|
||||
#define FUSE_DEFAULT_DAEMON_TIMEOUT 60 /* s */
|
||||
#define FUSE_MIN_DAEMON_TIMEOUT 0 /* s */
|
||||
#define FUSE_MAX_DAEMON_TIMEOUT 600 /* s */
|
||||
|
||||
#ifdef KERNEL
|
||||
/*
|
||||
* This is the soft upper limit on the number of "request tickets" FUSE's
|
||||
* user-kernel IPC layer can have for a given mount. This can be modified
|
||||
* through the fuse.* sysctl interface.
|
||||
* through the vfs.generic.osxfuse.* sysctl interface.
|
||||
*/
|
||||
#define FUSE_DEFAULT_MAX_FREE_TICKETS 1024
|
||||
#define FUSE_DEFAULT_IOV_PERMANENT_BUFSIZE (1 << 19)
|
||||
#define FUSE_DEFAULT_IOV_CREDIT 16
|
||||
|
||||
/* User-Kernel IPC Buffer */
|
||||
|
||||
#define FUSE_MIN_USERKERNEL_BUFSIZE ( 128 * 1024)
|
||||
#define FUSE_MAX_USERKERNEL_BUFSIZE (16 * 1024 * 1024)
|
||||
|
||||
#define FUSE_REASONABLE_XATTRSIZE FUSE_MIN_USERKERNEL_BUFSIZE
|
||||
|
||||
#define FUSE_LINK_MAX LINK_MAX
|
||||
#define FUSE_UIO_BACKUP_MAX 8
|
||||
|
||||
#define FUSE_MAXNAMLEN 255
|
||||
#endif /* KERNEL */
|
||||
|
||||
#define FUSE_DEFAULT_USERKERNEL_BUFSIZE (16 * 1024 * 1024)
|
||||
|
||||
#define FUSE_LINK_MAX LINK_MAX
|
||||
#define FUSE_UIO_BACKUP_MAX 8
|
||||
|
||||
#define FUSE_MAXNAMLEN 255
|
||||
|
||||
#endif /* _FUSE_PARAM_H_ */
|
||||
|
|
|
@ -0,0 +1,129 @@
|
|||
/*
|
||||
* Copyright (c) 2015 Benjamin Fleischer
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef _FUSE_PREPROCESSOR_H_
|
||||
#define _FUSE_PREPROCESSOR_H_
|
||||
|
||||
/*
|
||||
* Stringification
|
||||
*/
|
||||
|
||||
#define FUSE_PP_STRINGIFY_I(s) #s
|
||||
|
||||
/* Expands to the stringified argument. */
|
||||
#define FUSE_PP_STRINGIFY(s) FUSE_PP_STRINGIFY_I(s)
|
||||
|
||||
/*
|
||||
* Count variadic arguments
|
||||
*/
|
||||
|
||||
#define FUSE_PP_VARIADIC_COUNT_I(e00, e01, e02, e03, e04, e05, e06, e07, e08, e09, e10, e11, e12, e13, e14, e15, \
|
||||
e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, \
|
||||
e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, \
|
||||
e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63, \
|
||||
size, ...) size
|
||||
|
||||
/*
|
||||
* Expands to the number of the variadic arguments passed to it. Supports up to
|
||||
* 64 arguments.
|
||||
*/
|
||||
#define FUSE_PP_VARIADIC_COUNT(...) \
|
||||
FUSE_PP_VARIADIC_COUNT_I(__VA_ARGS__, \
|
||||
64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, \
|
||||
48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, \
|
||||
32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, \
|
||||
16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1)
|
||||
|
||||
/*
|
||||
* Overload function-like variadic macros
|
||||
*/
|
||||
|
||||
#define FUSE_PP_OVERLOAD_COUNT_I(prefix, count) prefix ## count
|
||||
#define FUSE_PP_OVERLOAD_COUNT(prefix, count) FUSE_PP_OVERLOAD_COUNT_I(prefix, count)
|
||||
|
||||
/*
|
||||
* Expands to a the name of a function-like macro with the specified prefix
|
||||
* that accepts the given number of arguments.
|
||||
*/
|
||||
#define FUSE_PP_OVERLOAD(prefix, ...) FUSE_PP_OVERLOAD_COUNT(prefix, FUSE_PP_VARIADIC_COUNT(__VA_ARGS__))
|
||||
|
||||
/*
|
||||
* Concatenate expanded arguments
|
||||
*/
|
||||
|
||||
#define FUSE_PP_CAT_I(e0, e1) e0 ## e1
|
||||
|
||||
#define FUSE_PP_CAT_1(e0) e0
|
||||
#define FUSE_PP_CAT_2(e0, e1) FUSE_PP_CAT_I(e0, e1)
|
||||
#define FUSE_PP_CAT_3(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_2(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_4(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_3(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_5(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_4(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_6(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_5(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_7(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_6(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_8(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_7(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_9(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_8(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_10(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_9(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_11(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_10(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_12(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_11(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_13(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_12(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_14(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_13(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_15(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_14(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_16(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_15(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_17(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_16(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_18(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_17(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_19(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_18(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_20(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_19(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_21(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_20(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_22(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_21(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_23(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_22(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_24(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_23(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_25(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_24(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_26(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_25(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_27(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_26(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_28(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_27(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_29(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_28(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_30(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_29(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_31(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_30(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_32(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_31(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_33(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_32(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_34(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_33(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_35(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_34(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_36(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_35(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_37(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_36(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_38(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_37(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_39(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_38(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_40(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_39(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_41(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_40(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_42(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_41(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_43(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_42(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_44(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_43(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_45(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_44(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_46(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_45(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_47(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_46(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_48(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_47(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_49(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_48(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_50(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_49(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_51(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_50(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_52(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_51(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_53(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_52(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_54(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_53(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_55(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_54(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_56(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_55(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_57(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_56(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_58(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_57(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_59(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_58(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_60(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_59(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_61(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_60(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_62(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_61(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_63(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_62(__VA_ARGS__))
|
||||
#define FUSE_PP_CAT_64(e0, ...) FUSE_PP_CAT_2(e0, FUSE_PP_CAT_63(__VA_ARGS__))
|
||||
|
||||
/*
|
||||
* Expands to the concatenation of the given arguments. The arguments are
|
||||
* expanded before performing the concatenation. Supports up to 64 arguments.
|
||||
*/
|
||||
#define FUSE_PP_CAT(...) FUSE_PP_OVERLOAD(FUSE_PP_CAT_, __VA_ARGS__)(__VA_ARGS__)
|
||||
|
||||
#endif /* _FUSE_PREPROCESSOR_H_ */
|
|
@ -1,91 +1,45 @@
|
|||
/*
|
||||
* Copyright (c) 2006-2008 Amit Singh/Google Inc.
|
||||
* Copyright (c) 2010 Tuxera Inc.
|
||||
* Copyright (c) 2011-2014 Benjamin Fleischer
|
||||
* Copyright (c) 2011-2015 Benjamin Fleischer
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef _FUSE_VERSION_H_
|
||||
#define _FUSE_VERSION_H_
|
||||
|
||||
#include <fuse_preprocessor.h>
|
||||
|
||||
/* Count macro arguments */
|
||||
/* File system name */
|
||||
|
||||
#define _N_ARGS_REVERSE_SEQUENCE 8, 7, 6, 5, 4, 3, 2, 1, 0
|
||||
#define _N_ARGS_N(_1, _2, _3, _4, _5, _6, _7, _8, N, ...) N
|
||||
#define OSXFUSE_NAME_LITERAL osxfuse
|
||||
#define OSXFUSE_DISPLAY_NAME_LITERAL OSXFUSE
|
||||
|
||||
#define _N_ARGS(...) _N_ARGS_N(__VA_ARGS__)
|
||||
#define N_ARGS(...) _N_ARGS(__VA_ARGS__, _N_ARGS_REVERSE_SEQUENCE)
|
||||
#define OSXFUSE_NAME FUSE_PP_STRINGIFY(OSXFUSE_NAME_LITERAL)
|
||||
#define OSXFUSE_DISPLAY_NAME FUSE_PP_STRINGIFY(OSXFUSE_DISPLAY_NAME_LITERAL)
|
||||
|
||||
/* Identifier */
|
||||
|
||||
/* Macro indirection */
|
||||
#define OSXFUSE_IDENTIFIER_LITERAL com.github.osxfuse
|
||||
#define OSXFUSE_BUNDLE_IDENTIFIER_LITERAL OSXFUSE_IDENTIFIER_LITERAL.filesystems.OSXFUSE_NAME_LITERAL
|
||||
|
||||
/* Expands arguments before invoking macro */
|
||||
#define CALL(macro, ...) macro(__VA_ARGS__)
|
||||
#define OSXFUSE_IDENTIFIER FUSE_PP_STRINGIFY(OSXFUSE_IDENTIFIER_LITARAL)
|
||||
#define OSXFUSE_BUNDLE_IDENTIFIER FUSE_PP_STRINGIFY(OSXFUSE_BUNDLE_IDENTIFIER_LITERAL)
|
||||
|
||||
/* Version */
|
||||
|
||||
/* Concatenate macros */
|
||||
#define OSXFUSE_VERSION_LITERAL 2.9.8
|
||||
#define OSXFUSE_TIMESTAMP __DATE__ ", " __TIME__
|
||||
|
||||
#define CONCAT_1(_1) \
|
||||
_1
|
||||
#define CONCAT_2(_1, _2) \
|
||||
_1##_2
|
||||
#define CONCAT_3(_1, _2, _3) \
|
||||
_1##_2##_3
|
||||
#define CONCAT_4(_1, _2, _3, _4) \
|
||||
_1##_2##_3##_4
|
||||
#define CONCAT_5(_1, _2, _3, _4, _5) \
|
||||
_1##_2##_3##_4##_5
|
||||
#define CONCAT_6(_1, _2, _3, _4, _5, _6) \
|
||||
_1##_2##_3##_4##_5##_6
|
||||
#define CONCAT_7(_1, _2, _3, _4, _5, _6, _7) \
|
||||
_1##_2##_3##_4##_5##_6##_7
|
||||
#define CONCAT_8(_1, _2, _3, _4, _5, _6, _7, _8) \
|
||||
_1##_2##_3##_4##_5##_6##_7##_8
|
||||
#define OSXFUSE_VERSION FUSE_PP_STRINGIFY(OSXFUSE_VERSION_LITERAL)
|
||||
|
||||
#define CONCAT_N(n) CONCAT_##n
|
||||
/* File system type */
|
||||
|
||||
/* Concatenates up to eight arguments */
|
||||
#define CONCAT(...) CALL(CALL(CONCAT_N, N_ARGS(__VA_ARGS__)), __VA_ARGS__)
|
||||
#define OSXFUSE_TYPE_NAME_PREFIX OSXFUSE_NAME "_"
|
||||
|
||||
/* Volume name */
|
||||
|
||||
/* Stringify */
|
||||
|
||||
#define OSXFUSE_STRINGIFY(s) OSXFUSE_STRINGIFY_BACKEND(s)
|
||||
#define OSXFUSE_STRINGIFY_BACKEND(s) #s
|
||||
|
||||
|
||||
/* Add things here. */
|
||||
|
||||
#define OSXFUSE_NAME_LITERAL osxfuse
|
||||
#define OSXFUSE_NAME OSXFUSE_STRINGIFY(OSXFUSE_NAME_LITERAL)
|
||||
|
||||
#define OSXFUSE_DISPLAY_NAME_LITERAL OSXFUSE
|
||||
#define OSXFUSE_DISPLAY_NAME OSXFUSE_STRINGIFY(OSXFUSE_DISPLAY_NAME_LITERAL)
|
||||
|
||||
#define OSXFUSE_FS_TYPE_LITERAL OSXFUSE_NAME_LITERAL
|
||||
#define OSXFUSE_FS_TYPE OSXFUSE_STRINGIFY(OSXFUSE_FS_TYPE_LITERAL)
|
||||
|
||||
#define OSXFUSE_FSTYPENAME_PREFIX OSXFUSE_FS_TYPE "_"
|
||||
|
||||
#define OSXFUSE_VOLNAME_FORMAT OSXFUSE_DISPLAY_NAME " Volume %d"
|
||||
#define OSXFUSE_VOLNAME_FORMAT_DAEMON OSXFUSE_VOLNAME_FORMAT " (%s)"
|
||||
|
||||
#define OSXFUSE_IDENTIFIER_LITERAL com.github.osxfuse
|
||||
#define OSXFUSE_IDENTIFIER OSXFUSE_STRINGIFY(OSXFUSE_IDENTIFIER_LITERAL)
|
||||
|
||||
#define OSXFUSE_BUNDLE_IDENTIFIER_LITERAL \
|
||||
OSXFUSE_IDENTIFIER_LITERAL.filesystems.OSXFUSE_NAME_LITERAL
|
||||
#define OSXFUSE_BUNDLE_IDENTIFIER \
|
||||
OSXFUSE_STRINGIFY(OSXFUSE_BUNDLE_IDENTIFIER_LITERAL)
|
||||
|
||||
#define OSXFUSE_TIMESTAMP __DATE__ ", " __TIME__
|
||||
|
||||
#define OSXFUSE_VERSION_LITERAL 2.9.8
|
||||
#define OSXFUSE_VERSION OSXFUSE_STRINGIFY(OSXFUSE_VERSION_LITERAL)
|
||||
|
||||
#define FUSE_KPI_GEQ(M, m) \
|
||||
(FUSE_KERNEL_VERSION > (M) || \
|
||||
(FUSE_KERNEL_VERSION == (M) && FUSE_KERNEL_MINOR_VERSION >= (m)))
|
||||
#define OSXFUSE_VOLNAME_FORMAT OSXFUSE_DISPLAY_NAME " Volume %d"
|
||||
#define OSXFUSE_VOLNAME_DAEMON_FORMAT OSXFUSE_DISPLAY_NAME " Volume %d (%s)"
|
||||
|
||||
#endif /* _FUSE_VERSION_H_ */
|
||||
|
|
2
fuse
2
fuse
|
@ -1 +1 @@
|
|||
Subproject commit 4b73ca3ff7f941ede44ab861c29117558136371e
|
||||
Subproject commit 992181fbbbd2094aee79384437861cd57cd27ca1
|
2
kext
2
kext
|
@ -1 +1 @@
|
|||
Subproject commit 819dc3ee083f0f2251587f078ef04144e4344f7e
|
||||
Subproject commit 24e4bdaac49a7d209672cdcf0af4612fc373d7d6
|
|
@ -1 +1 @@
|
|||
Subproject commit 625f07133540a5272bc77878e886d7715c6f8772
|
||||
Subproject commit f8b9b68c95b4aefd8fe25995f9bd38c0349e4ad0
|
2
support
2
support
|
@ -1 +1 @@
|
|||
Subproject commit ff039fe0f481c39effa25443137a636b1bc7e831
|
||||
Subproject commit 5d25d12049713aeb34b4f84936ea19e03a8f3ae1
|
Loading…
Reference in New Issue