#![warn(missing_debug_implementations, rust_2018_idioms)]
#![allow(missing_docs)]
use std::convert::TryFrom;
pub const FUSE_KERNEL_VERSION: u32 = 7;
#[cfg(not(feature = "abi-7-9"))]
pub const FUSE_KERNEL_MINOR_VERSION: u32 = 8;
#[cfg(all(feature = "abi-7-9", not(feature = "abi-7-10")))]
pub const FUSE_KERNEL_MINOR_VERSION: u32 = 9;
#[cfg(all(feature = "abi-7-10", not(feature = "abi-7-11")))]
pub const FUSE_KERNEL_MINOR_VERSION: u32 = 10;
#[cfg(all(feature = "abi-7-11", not(feature = "abi-7-12")))]
pub const FUSE_KERNEL_MINOR_VERSION: u32 = 11;
#[cfg(all(feature = "abi-7-12", not(feature = "abi-7-13")))]
pub const FUSE_KERNEL_MINOR_VERSION: u32 = 12;
#[cfg(all(feature = "abi-7-13", not(feature = "abi-7-14")))]
pub const FUSE_KERNEL_MINOR_VERSION: u32 = 13;
#[cfg(all(feature = "abi-7-14", not(feature = "abi-7-15")))]
pub const FUSE_KERNEL_MINOR_VERSION: u32 = 14;
#[cfg(all(feature = "abi-7-15", not(feature = "abi-7-16")))]
pub const FUSE_KERNEL_MINOR_VERSION: u32 = 15;
#[cfg(all(feature = "abi-7-16", not(feature = "abi-7-17")))]
pub const FUSE_KERNEL_MINOR_VERSION: u32 = 16;
#[cfg(all(feature = "abi-7-17", not(feature = "abi-7-18")))]
pub const FUSE_KERNEL_MINOR_VERSION: u32 = 17;
#[cfg(all(feature = "abi-7-18", not(feature = "abi-7-19")))]
pub const FUSE_KERNEL_MINOR_VERSION: u32 = 18;
#[cfg(feature = "abi-7-19")]
pub const FUSE_KERNEL_MINOR_VERSION: u32 = 19;
pub const FUSE_ROOT_ID: u64 = 1;
#[repr(C)]
#[derive(Debug)]
pub struct fuse_attr {
pub ino: u64,
pub size: u64,
pub blocks: u64,
pub atime: u64,
pub mtime: u64,
pub ctime: u64,
#[cfg(target_os = "macos")]
pub crtime: u64,
pub atimensec: u32,
pub mtimensec: u32,
pub ctimensec: u32,
#[cfg(target_os = "macos")]
pub crtimensec: u32,
pub mode: u32,
pub nlink: u32,
pub uid: u32,
pub gid: u32,
pub rdev: u32,
#[cfg(target_os = "macos")]
pub flags: u32,
#[cfg(feature = "abi-7-9")]
pub blksize: u32,
#[cfg(feature = "abi-7-9")]
pub padding: u32,
}
#[repr(C)]
#[derive(Debug)]
pub struct fuse_kstatfs {
pub blocks: u64,
pub bfree: u64,
pub bavail: u64,
pub files: u64,
pub ffree: u64,
pub bsize: u32,
pub namelen: u32,
pub frsize: u32,
pub padding: u32,
pub spare: [u32; 6],
}
#[repr(C)]
#[derive(Debug)]
pub struct fuse_file_lock {
pub start: u64,
pub end: u64,
pub typ: u32,
pub pid: u32,
}
pub mod consts {
pub const FATTR_MODE: u32 = 1 << 0;
pub const FATTR_UID: u32 = 1 << 1;
pub const FATTR_GID: u32 = 1 << 2;
pub const FATTR_SIZE: u32 = 1 << 3;
pub const FATTR_ATIME: u32 = 1 << 4;
pub const FATTR_MTIME: u32 = 1 << 5;
pub const FATTR_FH: u32 = 1 << 6;
#[cfg(feature = "abi-7-9")]
pub const FATTR_ATIME_NOW: u32 = 1 << 7;
#[cfg(feature = "abi-7-9")]
pub const FATTR_MTIME_NOW: u32 = 1 << 8;
#[cfg(feature = "abi-7-9")]
pub const FATTR_LOCKOWNER: u32 = 1 << 9;
#[cfg(target_os = "macos")]
pub const FATTR_CRTIME: u32 = 1 << 28;
#[cfg(target_os = "macos")]
pub const FATTR_CHGTIME: u32 = 1 << 29;
#[cfg(target_os = "macos")]
pub const FATTR_BKUPTIME: u32 = 1 << 30;
#[cfg(target_os = "macos")]
pub const FATTR_FLAGS: u32 = 1 << 31;
pub const FOPEN_DIRECT_IO: u32 = 1 << 0;
pub const FOPEN_KEEP_CACHE: u32 = 1 << 1;
#[cfg(feature = "abi-7-10")]
pub const FOPEN_NONSEEKABLE: u32 = 1 << 2;
#[cfg(target_os = "macos")]
pub const FOPEN_PURGE_ATTR: u32 = 1 << 30;
#[cfg(target_os = "macos")]
pub const FOPEN_PURGE_UBC: u32 = 1 << 31;
pub const FUSE_ASYNC_READ: u32 = 1 << 0;
pub const FUSE_POSIX_LOCKS: u32 = 1 << 1;
#[cfg(feature = "abi-7-9")]
pub const FUSE_FILE_OPS: u32 = 1 << 2;
#[cfg(feature = "abi-7-9")]
pub const FUSE_ATOMIC_O_TRUNC: u32 = 1 << 3;
#[cfg(feature = "abi-7-10")]
pub const FUSE_EXPORT_SUPPORT: u32 = 1 << 4;
#[cfg(feature = "abi-7-9")]
pub const FUSE_BIG_WRITES: u32 = 1 << 5;
#[cfg(feature = "abi-7-12")]
pub const FUSE_DONT_MASK: u32 = 1 << 6;
#[cfg(all(feature = "abi-7-14", not(target_os = "macos")))]
pub const FUSE_SPLICE_WRITE: u32 = 1 << 7;
#[cfg(all(feature = "abi-7-14", not(target_os = "macos")))]
pub const FUSE_SPLICE_MOVE: u32 = 1 << 8;
#[cfg(not(target_os = "macos"))]
#[cfg(feature = "abi-7-14")]
pub const FUSE_SPLICE_READ: u32 = 1 << 9;
#[cfg(feature = "abi-7-17")]
pub const FUSE_FLOCK_LOCKS: u32 = 1 << 10;
#[cfg(feature = "abi-7-18")]
pub const FUSE_HAS_IOCTL_DIR: u32 = 1 << 11;
#[cfg(feature = "abi-7-20")]
pub const FUSE_AUTO_INVAL_DATA: u32 = 1 << 12;
#[cfg(feature = "abi-7-21")]
pub const FUSE_DO_READDIRPLUS: u32 = 1 << 13;
#[cfg(feature = "abi-7-21")]
pub const FUSE_READDIRPLUS_AUTO: u32 = 1 << 14;
#[cfg(feature = "abi-7-22")]
pub const FUSE_ASYNC_DIO: u32 = 1 << 15;
#[cfg(feature = "abi-7-23")]
pub const FUSE_WRITEBACK_CACHE: u32 = 1 << 16;
#[cfg(feature = "abi-7-23")]
pub const FUSE_NO_OPEN_SUPPORT: u32 = 1 << 17;
#[cfg(feature = "abi-7-25")]
pub const FUSE_PARALLEL_DIROPS: u32 = 1 << 18;
#[cfg(feature = "abi-7-26")]
pub const FUSE_HANDLE_KILLPRIV: u32 = 1 << 19;
#[cfg(feature = "abi-7-26")]
pub const FUSE_POSIX_ACL: u32 = 1 << 20;
#[cfg(target_os = "macos")]
pub const FUSE_ALLOCATE: u32 = 1 << 27;
#[cfg(target_os = "macos")]
pub const FUSE_EXCHANGE_DATA: u32 = 1 << 28;
#[cfg(target_os = "macos")]
pub const FUSE_CASE_INSENSITIVE: u32 = 1 << 29;
#[cfg(target_os = "macos")]
pub const FUSE_VOL_RENAME: u32 = 1 << 30;
#[cfg(target_os = "macos")]
pub const FUSE_XTIMES: u32 = 1 << 31;
#[cfg(feature = "abi-7-12")]
pub const CUSE_UNRESTRICTED_IOCTL: u32 = 1 << 0;
pub const FUSE_RELEASE_FLUSH: u32 = 1 << 0;
#[cfg(feature = "abi-7-17")]
pub const FUSE_RELEASE_FLOCK_UNLOCK: u32= 1 << 1;
#[cfg(feature = "abi-7-9")]
pub const FUSE_GETATTR_FH: u32 = 1 << 0;
#[cfg(feature = "abi-7-9")]
pub const FUSE_LK_FLOCK: u32 = 1 << 0;
#[cfg(feature = "abi-7-9")]
pub const FUSE_WRITE_CACHE: u32 = 1 << 0;
#[cfg(feature = "abi-7-9")]
pub const FUSE_WRITE_LOCKOWNER: u32 = 1 << 1;
#[cfg(feature = "abi-7-9")]
pub const FUSE_READ_LOCKOWNER: u32 = 1 << 1;
#[cfg(feature = "abi-7-11")]
pub const FUSE_IOCTL_COMPAT: u32 = 1 << 0;
#[cfg(feature = "abi-7-11")]
pub const FUSE_IOCTL_UNRESTRICTED: u32 = 1 << 1;
#[cfg(feature = "abi-7-11")]
pub const FUSE_IOCTL_RETRY: u32 = 1 << 2;
#[cfg(feature = "abi-7-16")]
pub const FUSE_IOCTL_32BIT: u32 = 1 << 3;
#[cfg(feature = "abi-7-18")]
pub const FUSE_IOCTL_DIR: u32 = 1 << 4;
#[cfg(feature = "abi-7-11")]
pub const FUSE_IOCTL_MAX_IOV: u32 = 256;
#[cfg(feature = "abi-7-9")]
pub const FUSE_POLL_SCHEDULE_NOTIFY: u32= 1 << 0;
pub const FUSE_MIN_READ_BUFFER: usize = 8192;
}
#[derive(Debug)]
pub struct InvalidOpcodeError;
#[repr(C)]
#[derive(Debug)]
#[allow(non_camel_case_types)]
pub enum fuse_opcode {
FUSE_LOOKUP = 1,
FUSE_FORGET = 2,
FUSE_GETATTR = 3,
FUSE_SETATTR = 4,
FUSE_READLINK = 5,
FUSE_SYMLINK = 6,
FUSE_MKNOD = 8,
FUSE_MKDIR = 9,
FUSE_UNLINK = 10,
FUSE_RMDIR = 11,
FUSE_RENAME = 12,
FUSE_LINK = 13,
FUSE_OPEN = 14,
FUSE_READ = 15,
FUSE_WRITE = 16,
FUSE_STATFS = 17,
FUSE_RELEASE = 18,
FUSE_FSYNC = 20,
FUSE_SETXATTR = 21,
FUSE_GETXATTR = 22,
FUSE_LISTXATTR = 23,
FUSE_REMOVEXATTR = 24,
FUSE_FLUSH = 25,
FUSE_INIT = 26,
FUSE_OPENDIR = 27,
FUSE_READDIR = 28,
FUSE_RELEASEDIR = 29,
FUSE_FSYNCDIR = 30,
FUSE_GETLK = 31,
FUSE_SETLK = 32,
FUSE_SETLKW = 33,
FUSE_ACCESS = 34,
FUSE_CREATE = 35,
FUSE_INTERRUPT = 36,
FUSE_BMAP = 37,
FUSE_DESTROY = 38,
#[cfg(feature = "abi-7-11")]
FUSE_IOCTL = 39,
#[cfg(feature = "abi-7-11")]
FUSE_POLL = 40,
#[cfg(feature = "abi-7-15")]
FUSE_NOTIFY_REPLY = 41,
#[cfg(feature = "abi-7-16")]
FUSE_BATCH_FORGET = 42,
#[cfg(feature = "abi-7-19")]
FUSE_FALLOCATE = 43,
#[cfg(feature = "abi-7-21")]
FUSE_READDIRPLUS = 44,
#[cfg(feature = "abi-7-23")]
FUSE_RENAME2 = 45,
#[cfg(feature = "abi-7-24")]
FUSE_LSEEK = 46,
#[cfg(target_os = "macos")]
FUSE_SETVOLNAME = 61,
#[cfg(target_os = "macos")]
FUSE_GETXTIMES = 62,
#[cfg(target_os = "macos")]
FUSE_EXCHANGE = 63,
#[cfg(feature = "abi-7-12")]
CUSE_INIT = 4096,
}
impl TryFrom<u32> for fuse_opcode {
type Error = InvalidOpcodeError;
fn try_from(n: u32) -> Result<Self, Self::Error> {
match n {
1 => Ok(fuse_opcode::FUSE_LOOKUP),
2 => Ok(fuse_opcode::FUSE_FORGET),
3 => Ok(fuse_opcode::FUSE_GETATTR),
4 => Ok(fuse_opcode::FUSE_SETATTR),
5 => Ok(fuse_opcode::FUSE_READLINK),
6 => Ok(fuse_opcode::FUSE_SYMLINK),
8 => Ok(fuse_opcode::FUSE_MKNOD),
9 => Ok(fuse_opcode::FUSE_MKDIR),
10 => Ok(fuse_opcode::FUSE_UNLINK),
11 => Ok(fuse_opcode::FUSE_RMDIR),
12 => Ok(fuse_opcode::FUSE_RENAME),
13 => Ok(fuse_opcode::FUSE_LINK),
14 => Ok(fuse_opcode::FUSE_OPEN),
15 => Ok(fuse_opcode::FUSE_READ),
16 => Ok(fuse_opcode::FUSE_WRITE),
17 => Ok(fuse_opcode::FUSE_STATFS),
18 => Ok(fuse_opcode::FUSE_RELEASE),
20 => Ok(fuse_opcode::FUSE_FSYNC),
21 => Ok(fuse_opcode::FUSE_SETXATTR),
22 => Ok(fuse_opcode::FUSE_GETXATTR),
23 => Ok(fuse_opcode::FUSE_LISTXATTR),
24 => Ok(fuse_opcode::FUSE_REMOVEXATTR),
25 => Ok(fuse_opcode::FUSE_FLUSH),
26 => Ok(fuse_opcode::FUSE_INIT),
27 => Ok(fuse_opcode::FUSE_OPENDIR),
28 => Ok(fuse_opcode::FUSE_READDIR),
29 => Ok(fuse_opcode::FUSE_RELEASEDIR),
30 => Ok(fuse_opcode::FUSE_FSYNCDIR),
31 => Ok(fuse_opcode::FUSE_GETLK),
32 => Ok(fuse_opcode::FUSE_SETLK),
33 => Ok(fuse_opcode::FUSE_SETLKW),
34 => Ok(fuse_opcode::FUSE_ACCESS),
35 => Ok(fuse_opcode::FUSE_CREATE),
36 => Ok(fuse_opcode::FUSE_INTERRUPT),
37 => Ok(fuse_opcode::FUSE_BMAP),
38 => Ok(fuse_opcode::FUSE_DESTROY),
#[cfg(feature = "abi-7-11")]
39 => Ok(fuse_opcode::FUSE_IOCTL),
#[cfg(feature = "abi-7-11")]
40 => Ok(fuse_opcode::FUSE_POLL),
#[cfg(feature = "abi-7-15")]
41 => Ok(fuse_opcode::FUSE_NOTIFY_REPLY),
#[cfg(feature = "abi-7-16")]
42 => Ok(fuse_opcode::FUSE_BATCH_FORGET),
#[cfg(feature = "abi-7-19")]
43 => Ok(fuse_opcode::FUSE_FALLOCATE),
#[cfg(feature = "abi-7-21")]
44 => Ok(fuse_opcode::FUSE_READDIRPLUS),
#[cfg(feature = "abi-7-23")]
45 => Ok(fuse_opcode::FUSE_RENAME2),
#[cfg(feature = "abi-7-24")]
46 => Ok(fuse_opcode::FUSE_LSEEK),
#[cfg(target_os = "macos")]
61 => Ok(fuse_opcode::FUSE_SETVOLNAME),
#[cfg(target_os = "macos")]
62 => Ok(fuse_opcode::FUSE_GETXTIMES),
#[cfg(target_os = "macos")]
63 => Ok(fuse_opcode::FUSE_EXCHANGE),
#[cfg(feature = "abi-7-12")]
4096 => Ok(fuse_opcode::CUSE_INIT),
_ => Err(InvalidOpcodeError),
}
}
}
#[cfg(feature = "abi-7-11")]
#[derive(Debug)]
pub struct InvalidNotifyCodeError;
#[cfg(feature = "abi-7-11")]
#[repr(C)]
#[derive(Debug)]
#[allow(non_camel_case_types)]
pub enum fuse_notify_code {
#[cfg(feature = "abi-7-11")]
FUSE_POLL = 1,
#[cfg(feature = "abi-7-12")]
FUSE_NOTIFY_INVAL_INODE = 2,
#[cfg(feature = "abi-7-12")]
FUSE_NOTIFY_INVAL_ENTRY = 3,
#[cfg(feature = "abi-7-15")]
FUSE_NOTIFY_STORE = 4,
#[cfg(feature = "abi-7-15")]
FUSE_NOTIFY_RETRIEVE = 5,
#[cfg(feature = "abi-7-18")]
FUSE_NOTIFY_DELETE = 6,
}
#[cfg(feature = "abi-7-11")]
impl TryFrom<u32> for fuse_notify_code {
type Error = InvalidNotifyCodeError;
fn try_from(n: u32) -> Result<Self, Self::Error> {
match n {
#[cfg(feature = "abi-7-11")]
1 => Ok(fuse_notify_code::FUSE_POLL),
#[cfg(feature = "abi-7-12")]
2 => Ok(fuse_notify_code::FUSE_NOTIFY_INVAL_INODE),
#[cfg(feature = "abi-7-12")]
3 => Ok(fuse_notify_code::FUSE_NOTIFY_INVAL_ENTRY),
#[cfg(feature = "abi-7-15")]
4 => Ok(fuse_notify_code::FUSE_NOTIFY_STORE),
#[cfg(feature = "abi-7-15")]
5 => Ok(fuse_notify_code::FUSE_NOTIFY_RETRIEVE),
#[cfg(feature = "abi-7-18")]
6 => Ok(fuse_notify_code::FUSE_NOTIFY_DELETE),
_ => Err(InvalidNotifyCodeError),
}
}
}
#[repr(C)]
#[derive(Debug)]
pub struct fuse_entry_out {
pub nodeid: u64,
pub generation: u64,
pub entry_valid: u64,
pub attr_valid: u64,
pub entry_valid_nsec: u32,
pub attr_valid_nsec: u32,
pub attr: fuse_attr,
}
#[repr(C)]
#[derive(Debug)]
pub struct fuse_forget_in {
pub nlookup: u64,
}
#[cfg(feature = "abi-7-16")]
#[repr(C)]
#[derive(Debug)]
pub struct fuse_forget_one {
pub nodeid: u64,
pub nlookup: u64,
}
#[cfg(feature = "abi-7-16")]
#[repr(C)]
#[derive(Debug)]
pub struct fuse_batch_forget_in {
pub count: u32,
pub dummy: u32,
}
#[cfg(feature = "abi-7-9")]
#[repr(C)]
#[derive(Debug)]
pub struct fuse_getattr_in {
pub getattr_flags: u32,
pub dummy: u32,
pub fh: u64,
}
#[repr(C)]
#[derive(Debug)]
pub struct fuse_attr_out {
pub attr_valid: u64,
pub attr_valid_nsec: u32,
pub dummy: u32,
pub attr: fuse_attr,
}
#[cfg(target_os = "macos")]
#[repr(C)]
#[derive(Debug)]
pub struct fuse_getxtimes_out {
pub bkuptime: u64,
pub crtime: u64,
pub bkuptimensec: u32,
pub crtimensec: u32,
}
#[repr(C)]
#[derive(Debug)]
pub struct fuse_mknod_in {
pub mode: u32,
pub rdev: u32,
#[cfg(feature = "abi-7-12")]
pub umask: u32,
#[cfg(feature = "abi-7-12")]
pub padding: u32,
}
#[repr(C)]
#[derive(Debug)]
pub struct fuse_mkdir_in {
pub mode: u32,
#[cfg(not(feature = "abi-7-12"))]
pub padding: u32,
#[cfg(feature = "abi-7-12")]
pub umask: u32,
}
#[repr(C)]
#[derive(Debug)]
pub struct fuse_rename_in {
pub newdir: u64,
}
#[repr(C)]
#[derive(Debug)]
pub struct fuse_rename2_in {
pub newdir: u64,
pub flags: u32,
pub padding: u32,
}
#[cfg(target_os = "macos")]
#[repr(C)]
#[derive(Debug)]
pub struct fuse_exchange_in {
pub olddir: u64,
pub newdir: u64,
pub options: u64,
}
#[repr(C)]
#[derive(Debug)]
pub struct fuse_link_in {
pub oldnodeid: u64,
}
#[repr(C)]
#[derive(Debug)]
pub struct fuse_setattr_in {
pub valid: u32,
pub padding: u32,
pub fh: u64,
pub size: u64,
#[cfg(not(feature = "abi-7-9"))]
pub unused1: u64,
#[cfg(feature = "abi-7-9")]
pub lock_owner: u64,
pub atime: u64,
pub mtime: u64,
pub unused2: u64,
pub atimensec: u32,
pub mtimensec: u32,
pub unused3: u32,
pub mode: u32,
pub unused4: u32,
pub uid: u32,
pub gid: u32,
pub unused5: u32,
#[cfg(target_os = "macos")]
pub bkuptime: u64,
#[cfg(target_os = "macos")]
pub chgtime: u64,
#[cfg(target_os = "macos")]
pub crtime: u64,
#[cfg(target_os = "macos")]
pub bkuptimensec: u32,
#[cfg(target_os = "macos")]
pub chgtimensec: u32,
#[cfg(target_os = "macos")]
pub crtimensec: u32,
#[cfg(target_os = "macos")]
pub flags: u32,
}
#[repr(C)]
#[derive(Debug)]
pub struct fuse_open_in {
pub flags: u32,
pub unused: u32,
}
#[repr(C)]
#[derive(Debug)]
pub struct fuse_create_in {
pub flags: u32,
pub mode: u32,
#[cfg(feature = "abi-7-12")]
pub umask: u32,
#[cfg(feature = "abi-7-12")]
pub padding: u32,
}
#[repr(C)]
#[derive(Debug)]
pub struct fuse_open_out {
pub fh: u64,
pub open_flags: u32,
pub padding: u32,
}
#[repr(C)]
#[derive(Debug)]
pub struct fuse_release_in {
pub fh: u64,
pub flags: u32,
pub release_flags: u32,
pub lock_owner: u64,
}
#[repr(C)]
#[derive(Debug)]
pub struct fuse_flush_in {
pub fh: u64,
pub unused: u32,
pub padding: u32,
pub lock_owner: u64,
}
#[repr(C)]
#[derive(Debug)]
pub struct fuse_read_in {
pub fh: u64,
pub offset: u64,
pub size: u32,
#[cfg(feature = "abi-7-9")]
pub read_flags: u32,
#[cfg(feature = "abi-7-9")]
pub lock_owner: u64,
#[cfg(feature = "abi-7-9")]
pub flags: u32,
#[cfg(feature = "abi-7-9")]
pub padding: u32,
}
#[repr(C)]
#[derive(Debug)]
pub struct fuse_write_in {
pub fh: u64,
pub offset: u64,
pub size: u32,
pub write_flags: u32,
#[cfg(feature = "abi-7-9")]
pub lock_owner: u64,
#[cfg(feature = "abi-7-9")]
pub flags: u32,
#[cfg(feature = "abi-7-9")]
pub padding: u32,
}
#[repr(C)]
#[derive(Debug)]
pub struct fuse_write_out {
pub size: u32,
pub padding: u32,
}
#[repr(C)]
#[derive(Debug)]
pub struct fuse_statfs_out {
pub st: fuse_kstatfs,
}
#[repr(C)]
#[derive(Debug)]
pub struct fuse_fsync_in {
pub fh: u64,
pub fsync_flags: u32,
pub padding: u32,
}
#[repr(C)]
#[derive(Debug)]
pub struct fuse_setxattr_in {
pub size: u32,
pub flags: u32,
#[cfg(target_os = "macos")]
pub position: u32,
#[cfg(target_os = "macos")]
pub padding: u32,
}
#[repr(C)]
#[derive(Debug)]
pub struct fuse_getxattr_in {
pub size: u32,
pub padding: u32,
#[cfg(target_os = "macos")]
pub position: u32,
#[cfg(target_os = "macos")]
pub padding2: u32,
}
#[repr(C)]
#[derive(Debug)]
pub struct fuse_getxattr_out {
pub size: u32,
pub padding: u32,
}
#[repr(C)]
#[derive(Debug)]
pub struct fuse_lk_in {
pub fh: u64,
pub owner: u64,
pub lk: fuse_file_lock,
#[cfg(feature = "abi-7-9")]
pub lk_flags: u32,
#[cfg(feature = "abi-7-9")]
pub padding: u32,
}
#[repr(C)]
#[derive(Debug)]
pub struct fuse_lk_out {
pub lk: fuse_file_lock,
}
#[repr(C)]
#[derive(Debug)]
pub struct fuse_access_in {
pub mask: u32,
pub padding: u32,
}
#[repr(C)]
#[derive(Debug)]
pub struct fuse_init_in {
pub major: u32,
pub minor: u32,
pub max_readahead: u32,
pub flags: u32,
}
#[repr(C)]
#[derive(Debug)]
pub struct fuse_init_out_22 {
pub major: u32,
pub minor: u32,
pub max_readahead: u32,
pub flags: u32,
#[cfg(not(feature = "abi-7-13"))]
pub unused: u32,
#[cfg(feature = "abi-7-13")]
pub max_background: u16,
#[cfg(feature = "abi-7-13")]
pub congestion_threshold: u16,
pub max_write: u32,
}
#[repr(C)]
#[derive(Debug)]
pub struct fuse_init_out {
pub major: u32,
pub minor: u32,
pub max_readahead: u32,
pub flags: u32,
#[cfg(not(feature = "abi-7-13"))]
pub unused: u32,
#[cfg(feature = "abi-7-13")]
pub max_background: u16,
#[cfg(feature = "abi-7-13")]
pub congestion_threshold: u16,
pub max_write: u32,
#[cfg(feature = "abi-7-23")]
pub time_gran: u32,
#[cfg(feature = "abi-7-23")]
pub reserved: [u32; 9],
}
#[cfg(feature = "abi-7-12")]
#[repr(C)]
#[derive(Debug)]
pub struct cuse_init_in {
pub major: u32,
pub minor: u32,
pub unused: u32,
pub flags: u32,
}
#[cfg(feature = "abi-7-12")]
#[repr(C)]
#[derive(Debug)]
pub struct cuse_init_out {
pub major: u32,
pub minor: u32,
pub unused: u32,
pub flags: u32,
pub max_read: u32,
pub max_write: u32,
pub dev_major: u32,
pub dev_minor: u32,
pub spare: [u32; 10],
}
#[repr(C)]
#[derive(Debug)]
pub struct fuse_interrupt_in {
pub unique: u64,
}
#[repr(C)]
#[derive(Debug)]
pub struct fuse_bmap_in {
pub block: u64,
pub blocksize: u32,
pub padding: u32,
}
#[repr(C)]
#[derive(Debug)]
pub struct fuse_bmap_out {
pub block: u64,
}
#[cfg(feature = "abi-7-11")]
#[repr(C)]
#[derive(Debug)]
pub struct fuse_ioctl_in {
pub fh: u64,
pub flags: u32,
pub cmd: u32,
pub arg: u64,
pub in_size: u32,
pub out_size: u32,
}
#[cfg(feature = "abi-7-16")]
#[repr(C)]
#[derive(Debug)]
pub struct fuse_ioctl_iovec {
pub base: u64,
pub len: u64,
}
#[cfg(feature = "abi-7-11")]
#[repr(C)]
#[derive(Debug)]
pub struct fuse_ioctl_out {
pub result: i32,
pub flags: u32,
pub in_iovs: u32,
pub out_iovs: u32,
}
#[cfg(feature = "abi-7-11")]
#[repr(C)]
#[derive(Debug)]
pub struct fuse_poll_in {
pub fh: u64,
pub kh: u64,
pub flags: u32,
pub padding: u32,
}
#[cfg(feature = "abi-7-11")]
#[repr(C)]
#[derive(Debug)]
pub struct fuse_poll_out {
pub revents: u32,
pub padding: u32,
}
#[cfg(feature = "abi-7-11")]
#[repr(C)]
#[derive(Debug)]
pub struct fuse_notify_poll_wakeup_out {
pub kh: u64,
}
#[cfg(feature = "abi-7-19")]
#[repr(C)]
#[derive(Debug)]
pub struct fuse_fallocate_in {
pub fh: u64,
pub offset: u64,
pub length: u64,
pub mode: u32,
pub padding: u32,
}
#[repr(C)]
#[derive(Debug)]
pub struct fuse_in_header {
pub len: u32,
pub opcode: u32,
pub unique: u64,
pub nodeid: u64,
pub uid: u32,
pub gid: u32,
pub pid: u32,
pub padding: u32,
}
#[repr(C)]
#[derive(Debug)]
pub struct fuse_out_header {
pub len: u32,
pub error: i32,
pub unique: u64,
}
#[repr(C)]
#[derive(Debug)]
pub struct fuse_dirent {
pub ino: u64,
pub off: u64,
pub namelen: u32,
pub typ: u32,
}
#[repr(C)]
#[derive(Debug)]
pub struct fuse_direntplus {
pub entry_out: fuse_entry_out,
pub dirent: fuse_dirent,
}
#[cfg(feature = "abi-7-12")]
#[repr(C)]
#[derive(Debug)]
pub struct fuse_notify_inval_inode_out {
pub ino: u64,
pub off: i64,
pub len: i64,
}
#[cfg(feature = "abi-7-12")]
#[repr(C)]
#[derive(Debug)]
pub struct fuse_notify_inval_entry_out {
pub parent: u64,
pub namelen: u32,
pub padding: u32,
}
#[cfg(feature = "abi-7-18")]
#[repr(C)]
#[derive(Debug)]
pub struct fuse_notify_delete_out {
parent: u64,
child: u64,
namelen: u32,
padding: u32,
}
#[cfg(feature = "abi-7-15")]
#[repr(C)]
#[derive(Debug)]
pub struct fuse_notify_store_out {
pub nodeid: u64,
pub offset: u64,
pub size: u32,
pub padding: u32,
}
#[cfg(feature = "abi-7-15")]
#[repr(C)]
#[derive(Debug)]
pub struct fuse_notify_retrieve_out {
pub notify_unique: u64,
pub nodeid: u64,
pub offset: u64,
pub size: u32,
pub padding: u32,
}
#[cfg(feature = "abi-7-15")]
#[repr(C)]
#[derive(Debug)]
pub struct fuse_notify_retrieve_in {
pub dummy1: u64,
pub offset: u64,
pub size: u32,
pub dummy2: u32,
pub dummy3: u64,
pub dummy4: u64,
}
#[repr(C)]
#[derive(Debug)]
pub struct fuse_lseek_in {
pub fh: u64,
pub offset: i64,
pub whence: u32,
pub padding: u32,
}
#[repr(C)]
#[derive(Debug)]
pub struct fuse_lseek_out {
pub offset: i64,
}