diff options
author | Matthew Schauer <matthew.schauer@e10x.net> | 2022-10-31 09:51:27 -0700 |
---|---|---|
committer | Matthew Schauer <matthew.schauer@e10x.net> | 2022-10-31 09:51:27 -0700 |
commit | 0ed81b4f2039b2a6d2b18740af9e0288602d7adf (patch) | |
tree | 3eb1354170916c695807950a75daed01d7688b9c | |
parent | 511e1b910f8c332c0078bef3ae67da7ddbf85a01 (diff) |
Add pre-generated bindings for docs.rs builds
-rw-r--r-- | Cargo.toml | 8 | ||||
-rw-r--r-- | build.rs | 5 | ||||
-rw-r--r-- | src/bindings.rs | 4091 | ||||
-rw-r--r-- | src/lib.rs | 3 |
4 files changed, 4106 insertions, 1 deletions
@@ -1,6 +1,6 @@ [package] name = "squashfs-ng" -version = "0.1.1" +version = "0.1.2" authors = ["Matthew Schauer <matthew.schauer@e10x.net>"] edition = "2021" description = "High-level Rust wrapper for squashfs-tools-ng" @@ -24,3 +24,9 @@ owning_ref = "0.4" thiserror = "1.0" walkdir = "2.3" xattr = "0.2" + +[features] +hermetic = [] + +[package.metadata.docs.rs] +features = ["hermetic"] @@ -3,6 +3,7 @@ extern crate bindgen; use std::env; use std::path::PathBuf; +#[cfg(not(feature = "hermetic"))] fn main() { println!("cargo:rustc-link-lib=squashfs"); println!("cargo:rerun-if-changed=wrapper.h"); @@ -13,3 +14,7 @@ fn main() { .expect("Failed to generate SquashFS bindings"); bindings.write_to_file(PathBuf::from(env::var("OUT_DIR").unwrap()).join("bindings.rs")).expect("Failed to write SquashFS bindings"); } + +// Don't generate bindings or linking directives if we're building hermetically +#[cfg(feature = "hermetic")] +fn main() { } diff --git a/src/bindings.rs b/src/bindings.rs new file mode 100644 index 0000000..8260cdc --- /dev/null +++ b/src/bindings.rs @@ -0,0 +1,4091 @@ +/* automatically generated by rust-bindgen */ + +#[repr(C)] +#[derive(Default)] +pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]); +impl<T> __IncompleteArrayField<T> { + #[inline] + pub const fn new() -> Self { + __IncompleteArrayField(::std::marker::PhantomData, []) + } + #[inline] + pub fn as_ptr(&self) -> *const T { + self as *const _ as *const T + } + #[inline] + pub fn as_mut_ptr(&mut self) -> *mut T { + self as *mut _ as *mut T + } + #[inline] + pub unsafe fn as_slice(&self, len: usize) -> &[T] { + ::std::slice::from_raw_parts(self.as_ptr(), len) + } + #[inline] + pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { + ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len) + } +} +impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> { + fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { + fmt.write_str("__IncompleteArrayField") + } +} +pub const _SYS_STAT_H: u32 = 1; +pub const _FEATURES_H: u32 = 1; +pub const _DEFAULT_SOURCE: u32 = 1; +pub const __GLIBC_USE_ISOC2X: u32 = 0; +pub const __USE_ISOC11: u32 = 1; +pub const __USE_ISOC99: u32 = 1; +pub const __USE_ISOC95: u32 = 1; +pub const __USE_POSIX_IMPLICITLY: u32 = 1; +pub const _POSIX_SOURCE: u32 = 1; +pub const _POSIX_C_SOURCE: u32 = 200809; +pub const __USE_POSIX: u32 = 1; +pub const __USE_POSIX2: u32 = 1; +pub const __USE_POSIX199309: u32 = 1; +pub const __USE_POSIX199506: u32 = 1; +pub const __USE_XOPEN2K: u32 = 1; +pub const __USE_XOPEN2K8: u32 = 1; +pub const _ATFILE_SOURCE: u32 = 1; +pub const __WORDSIZE: u32 = 64; +pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1; +pub const __SYSCALL_WORDSIZE: u32 = 64; +pub const __TIMESIZE: u32 = 64; +pub const __USE_MISC: u32 = 1; +pub const __USE_ATFILE: u32 = 1; +pub const __USE_FORTIFY_LEVEL: u32 = 0; +pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0; +pub const __GLIBC_USE_DEPRECATED_SCANF: u32 = 0; +pub const _STDC_PREDEF_H: u32 = 1; +pub const __STDC_IEC_559__: u32 = 1; +pub const __STDC_IEC_60559_BFP__: u32 = 201404; +pub const __STDC_IEC_559_COMPLEX__: u32 = 1; +pub const __STDC_IEC_60559_COMPLEX__: u32 = 201404; +pub const __STDC_ISO_10646__: u32 = 201706; +pub const __GNU_LIBRARY__: u32 = 6; +pub const __GLIBC__: u32 = 2; +pub const __GLIBC_MINOR__: u32 = 36; +pub const _SYS_CDEFS_H: u32 = 1; +pub const __glibc_c99_flexarr_available: u32 = 1; +pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI: u32 = 0; +pub const __HAVE_GENERIC_SELECTION: u32 = 1; +pub const _BITS_TYPES_H: u32 = 1; +pub const _BITS_TYPESIZES_H: u32 = 1; +pub const __OFF_T_MATCHES_OFF64_T: u32 = 1; +pub const __INO_T_MATCHES_INO64_T: u32 = 1; +pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1; +pub const __STATFS_MATCHES_STATFS64: u32 = 1; +pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64: u32 = 1; +pub const __FD_SETSIZE: u32 = 1024; +pub const _BITS_TIME64_H: u32 = 1; +pub const _STRUCT_TIMESPEC: u32 = 1; +pub const _BITS_ENDIAN_H: u32 = 1; +pub const __LITTLE_ENDIAN: u32 = 1234; +pub const __BIG_ENDIAN: u32 = 4321; +pub const __PDP_ENDIAN: u32 = 3412; +pub const _BITS_ENDIANNESS_H: u32 = 1; +pub const __BYTE_ORDER: u32 = 1234; +pub const __FLOAT_WORD_ORDER: u32 = 1234; +pub const __time_t_defined: u32 = 1; +pub const _BITS_STAT_H: u32 = 1; +pub const _BITS_STRUCT_STAT_H: u32 = 1; +pub const __S_IFMT: u32 = 61440; +pub const __S_IFDIR: u32 = 16384; +pub const __S_IFCHR: u32 = 8192; +pub const __S_IFBLK: u32 = 24576; +pub const __S_IFREG: u32 = 32768; +pub const __S_IFIFO: u32 = 4096; +pub const __S_IFLNK: u32 = 40960; +pub const __S_IFSOCK: u32 = 49152; +pub const __S_ISUID: u32 = 2048; +pub const __S_ISGID: u32 = 1024; +pub const __S_ISVTX: u32 = 512; +pub const __S_IREAD: u32 = 256; +pub const __S_IWRITE: u32 = 128; +pub const __S_IEXEC: u32 = 64; +pub const UTIME_NOW: u32 = 1073741823; +pub const UTIME_OMIT: u32 = 1073741822; +pub const S_IFMT: u32 = 61440; +pub const S_IFDIR: u32 = 16384; +pub const S_IFCHR: u32 = 8192; +pub const S_IFBLK: u32 = 24576; +pub const S_IFREG: u32 = 32768; +pub const S_IFIFO: u32 = 4096; +pub const S_IFLNK: u32 = 40960; +pub const S_IFSOCK: u32 = 49152; +pub const S_ISUID: u32 = 2048; +pub const S_ISGID: u32 = 1024; +pub const S_ISVTX: u32 = 512; +pub const S_IRUSR: u32 = 256; +pub const S_IWUSR: u32 = 128; +pub const S_IXUSR: u32 = 64; +pub const S_IRWXU: u32 = 448; +pub const S_IREAD: u32 = 256; +pub const S_IWRITE: u32 = 128; +pub const S_IEXEC: u32 = 64; +pub const S_IRGRP: u32 = 32; +pub const S_IWGRP: u32 = 16; +pub const S_IXGRP: u32 = 8; +pub const S_IRWXG: u32 = 56; +pub const S_IROTH: u32 = 4; +pub const S_IWOTH: u32 = 2; +pub const S_IXOTH: u32 = 1; +pub const S_IRWXO: u32 = 7; +pub const ACCESSPERMS: u32 = 511; +pub const ALLPERMS: u32 = 4095; +pub const DEFFILEMODE: u32 = 438; +pub const S_BLKSIZE: u32 = 512; +pub const true_: u32 = 1; +pub const false_: u32 = 0; +pub const __bool_true_false_are_defined: u32 = 1; +pub const _STDINT_H: u32 = 1; +pub const __GLIBC_USE_LIB_EXT2: u32 = 0; +pub const __GLIBC_USE_IEC_60559_BFP_EXT: u32 = 0; +pub const __GLIBC_USE_IEC_60559_BFP_EXT_C2X: u32 = 0; +pub const __GLIBC_USE_IEC_60559_EXT: u32 = 0; +pub const __GLIBC_USE_IEC_60559_FUNCS_EXT: u32 = 0; +pub const __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X: u32 = 0; +pub const __GLIBC_USE_IEC_60559_TYPES_EXT: u32 = 0; +pub const _BITS_WCHAR_H: u32 = 1; +pub const _BITS_STDINT_INTN_H: u32 = 1; +pub const _BITS_STDINT_UINTN_H: u32 = 1; +pub const INT8_MIN: i32 = -128; +pub const INT16_MIN: i32 = -32768; +pub const INT32_MIN: i32 = -2147483648; +pub const INT8_MAX: u32 = 127; +pub const INT16_MAX: u32 = 32767; +pub const INT32_MAX: u32 = 2147483647; +pub const UINT8_MAX: u32 = 255; +pub const UINT16_MAX: u32 = 65535; +pub const UINT32_MAX: u32 = 4294967295; +pub const INT_LEAST8_MIN: i32 = -128; +pub const INT_LEAST16_MIN: i32 = -32768; +pub const INT_LEAST32_MIN: i32 = -2147483648; +pub const INT_LEAST8_MAX: u32 = 127; +pub const INT_LEAST16_MAX: u32 = 32767; +pub const INT_LEAST32_MAX: u32 = 2147483647; +pub const UINT_LEAST8_MAX: u32 = 255; +pub const UINT_LEAST16_MAX: u32 = 65535; +pub const UINT_LEAST32_MAX: u32 = 4294967295; +pub const INT_FAST8_MIN: i32 = -128; +pub const INT_FAST16_MIN: i64 = -9223372036854775808; +pub const INT_FAST32_MIN: i64 = -9223372036854775808; +pub const INT_FAST8_MAX: u32 = 127; +pub const INT_FAST16_MAX: u64 = 9223372036854775807; +pub const INT_FAST32_MAX: u64 = 9223372036854775807; +pub const UINT_FAST8_MAX: u32 = 255; +pub const UINT_FAST16_MAX: i32 = -1; +pub const UINT_FAST32_MAX: i32 = -1; +pub const INTPTR_MIN: i64 = -9223372036854775808; +pub const INTPTR_MAX: u64 = 9223372036854775807; +pub const UINTPTR_MAX: i32 = -1; +pub const PTRDIFF_MIN: i64 = -9223372036854775808; +pub const PTRDIFF_MAX: u64 = 9223372036854775807; +pub const SIG_ATOMIC_MIN: i32 = -2147483648; +pub const SIG_ATOMIC_MAX: u32 = 2147483647; +pub const SIZE_MAX: i32 = -1; +pub const WINT_MIN: u32 = 0; +pub const WINT_MAX: u32 = 4294967295; +pub const SQFS_META_BLOCK_SIZE: u32 = 8192; +pub const SQFS_MAGIC: u32 = 1936814952; +pub const SQFS_VERSION_MAJOR: u32 = 4; +pub const SQFS_VERSION_MINOR: u32 = 0; +pub const SQFS_DEVBLK_SIZE: u32 = 4096; +pub const SQFS_MIN_BLOCK_SIZE: u32 = 4096; +pub const SQFS_MAX_BLOCK_SIZE: u32 = 1048576; +pub const SQFS_DEFAULT_BLOCK_SIZE: u32 = 131072; +pub const SQFS_GZIP_DEFAULT_LEVEL: u32 = 9; +pub const SQFS_GZIP_DEFAULT_WINDOW: u32 = 15; +pub const SQFS_LZO_DEFAULT_LEVEL: u32 = 8; +pub const SQFS_ZSTD_DEFAULT_LEVEL: u32 = 15; +pub const SQFS_GZIP_MIN_LEVEL: u32 = 1; +pub const SQFS_GZIP_MAX_LEVEL: u32 = 9; +pub const SQFS_LZO_MIN_LEVEL: u32 = 0; +pub const SQFS_LZO_MAX_LEVEL: u32 = 9; +pub const SQFS_ZSTD_MIN_LEVEL: u32 = 1; +pub const SQFS_ZSTD_MAX_LEVEL: u32 = 22; +pub const SQFS_GZIP_MIN_WINDOW: u32 = 8; +pub const SQFS_GZIP_MAX_WINDOW: u32 = 15; +pub const SQFS_XZ_MIN_LEVEL: u32 = 0; +pub const SQFS_XZ_MAX_LEVEL: u32 = 9; +pub const SQFS_XZ_DEFAULT_LEVEL: u32 = 6; +pub const SQFS_XZ_MIN_LC: u32 = 0; +pub const SQFS_XZ_MAX_LC: u32 = 4; +pub const SQFS_XZ_DEFAULT_LC: u32 = 3; +pub const SQFS_XZ_MIN_LP: u32 = 0; +pub const SQFS_XZ_MAX_LP: u32 = 4; +pub const SQFS_XZ_DEFAULT_LP: u32 = 0; +pub const SQFS_XZ_MIN_PB: u32 = 0; +pub const SQFS_XZ_MAX_PB: u32 = 4; +pub const SQFS_XZ_DEFAULT_PB: u32 = 2; +pub const SQFS_LZMA_MIN_LEVEL: u32 = 0; +pub const SQFS_LZMA_MAX_LEVEL: u32 = 9; +pub const SQFS_LZMA_DEFAULT_LEVEL: u32 = 5; +pub const SQFS_LZMA_MIN_LC: u32 = 0; +pub const SQFS_LZMA_MAX_LC: u32 = 4; +pub const SQFS_LZMA_DEFAULT_LC: u32 = 3; +pub const SQFS_LZMA_MIN_LP: u32 = 0; +pub const SQFS_LZMA_MAX_LP: u32 = 4; +pub const SQFS_LZMA_DEFAULT_LP: u32 = 0; +pub const SQFS_LZMA_MIN_PB: u32 = 0; +pub const SQFS_LZMA_MAX_PB: u32 = 4; +pub const SQFS_LZMA_DEFAULT_PB: u32 = 2; +pub const SQFS_LZMA_MIN_DICT_SIZE: u32 = 8192; +pub const SQFS_LZMA_MAX_DICT_SIZE: u32 = 1048576; +pub const SQFS_XZ_MIN_DICT_SIZE: u32 = 8192; +pub const SQFS_XZ_MAX_DICT_SIZE: u32 = 1048576; +pub const SQFS_MAX_DIR_ENT: u32 = 256; +pub type __u_char = ::std::os::raw::c_uchar; +pub type __u_short = ::std::os::raw::c_ushort; +pub type __u_int = ::std::os::raw::c_uint; +pub type __u_long = ::std::os::raw::c_ulong; +pub type __int8_t = ::std::os::raw::c_schar; +pub type __uint8_t = ::std::os::raw::c_uchar; +pub type __int16_t = ::std::os::raw::c_short; +pub type __uint16_t = ::std::os::raw::c_ushort; +pub type __int32_t = ::std::os::raw::c_int; +pub type __uint32_t = ::std::os::raw::c_uint; +pub type __int64_t = ::std::os::raw::c_long; +pub type __uint64_t = ::std::os::raw::c_ulong; +pub type __int_least8_t = __int8_t; +pub type __uint_least8_t = __uint8_t; +pub type __int_least16_t = __int16_t; +pub type __uint_least16_t = __uint16_t; +pub type __int_least32_t = __int32_t; +pub type __uint_least32_t = __uint32_t; +pub type __int_least64_t = __int64_t; +pub type __uint_least64_t = __uint64_t; +pub type __quad_t = ::std::os::raw::c_long; +pub type __u_quad_t = ::std::os::raw::c_ulong; +pub type __intmax_t = ::std::os::raw::c_long; +pub type __uintmax_t = ::std::os::raw::c_ulong; +pub type __dev_t = ::std::os::raw::c_ulong; +pub type __uid_t = ::std::os::raw::c_uint; +pub type __gid_t = ::std::os::raw::c_uint; +pub type __ino_t = ::std::os::raw::c_ulong; +pub type __ino64_t = ::std::os::raw::c_ulong; +pub type __mode_t = ::std::os::raw::c_uint; +pub type __nlink_t = ::std::os::raw::c_ulong; +pub type __off_t = ::std::os::raw::c_long; +pub type __off64_t = ::std::os::raw::c_long; +pub type __pid_t = ::std::os::raw::c_int; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __fsid_t { + pub __val: [::std::os::raw::c_int; 2usize], +} +#[test] +fn bindgen_test_layout___fsid_t() { + assert_eq!( + ::std::mem::size_of::<__fsid_t>(), + 8usize, + concat!("Size of: ", stringify!(__fsid_t)) + ); + assert_eq!( + ::std::mem::align_of::<__fsid_t>(), + 4usize, + concat!("Alignment of ", stringify!(__fsid_t)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<__fsid_t>())).__val as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__fsid_t), + "::", + stringify!(__val) + ) + ); +} +pub type __clock_t = ::std::os::raw::c_long; +pub type __rlim_t = ::std::os::raw::c_ulong; +pub type __rlim64_t = ::std::os::raw::c_ulong; +pub type __id_t = ::std::os::raw::c_uint; +pub type __time_t = ::std::os::raw::c_long; +pub type __useconds_t = ::std::os::raw::c_uint; +pub type __suseconds_t = ::std::os::raw::c_long; +pub type __suseconds64_t = ::std::os::raw::c_long; +pub type __daddr_t = ::std::os::raw::c_int; +pub type __key_t = ::std::os::raw::c_int; +pub type __clockid_t = ::std::os::raw::c_int; +pub type __timer_t = *mut ::std::os::raw::c_void; +pub type __blksize_t = ::std::os::raw::c_long; +pub type __blkcnt_t = ::std::os::raw::c_long; +pub type __blkcnt64_t = ::std::os::raw::c_long; +pub type __fsblkcnt_t = ::std::os::raw::c_ulong; +pub type __fsblkcnt64_t = ::std::os::raw::c_ulong; +pub type __fsfilcnt_t = ::std::os::raw::c_ulong; +pub type __fsfilcnt64_t = ::std::os::raw::c_ulong; +pub type __fsword_t = ::std::os::raw::c_long; +pub type __ssize_t = ::std::os::raw::c_long; +pub type __syscall_slong_t = ::std::os::raw::c_long; +pub type __syscall_ulong_t = ::std::os::raw::c_ulong; +pub type __loff_t = __off64_t; +pub type __caddr_t = *mut ::std::os::raw::c_char; +pub type __intptr_t = ::std::os::raw::c_long; +pub type __socklen_t = ::std::os::raw::c_uint; +pub type __sig_atomic_t = ::std::os::raw::c_int; +pub type time_t = __time_t; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timespec { + pub tv_sec: __time_t, + pub tv_nsec: __syscall_slong_t, +} +#[test] +fn bindgen_test_layout_timespec() { + assert_eq!( + ::std::mem::size_of::<timespec>(), + 16usize, + concat!("Size of: ", stringify!(timespec)) + ); + assert_eq!( + ::std::mem::align_of::<timespec>(), + 8usize, + concat!("Alignment of ", stringify!(timespec)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<timespec>())).tv_sec as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(timespec), + "::", + stringify!(tv_sec) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<timespec>())).tv_nsec as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(timespec), + "::", + stringify!(tv_nsec) + ) + ); +} +pub type dev_t = __dev_t; +pub type gid_t = __gid_t; +pub type ino_t = __ino_t; +pub type mode_t = __mode_t; +pub type nlink_t = __nlink_t; +pub type off_t = __off_t; +pub type uid_t = __uid_t; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct stat { + pub st_dev: __dev_t, + pub st_ino: __ino_t, + pub st_nlink: __nlink_t, + pub st_mode: __mode_t, + pub st_uid: __uid_t, + pub st_gid: __gid_t, + pub __pad0: ::std::os::raw::c_int, + pub st_rdev: __dev_t, + pub st_size: __off_t, + pub st_blksize: __blksize_t, + pub st_blocks: __blkcnt_t, + pub st_atim: timespec, + pub st_mtim: timespec, + pub st_ctim: timespec, + pub __glibc_reserved: [__syscall_slong_t; 3usize], +} +#[test] +fn bindgen_test_layout_stat() { + assert_eq!( + ::std::mem::size_of::<stat>(), + 144usize, + concat!("Size of: ", stringify!(stat)) + ); + assert_eq!( + ::std::mem::align_of::<stat>(), + 8usize, + concat!("Alignment of ", stringify!(stat)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<stat>())).st_dev as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(stat), + "::", + stringify!(st_dev) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<stat>())).st_ino as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(stat), + "::", + stringify!(st_ino) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<stat>())).st_nlink as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(stat), + "::", + stringify!(st_nlink) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<stat>())).st_mode as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(stat), + "::", + stringify!(st_mode) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<stat>())).st_uid as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(stat), + "::", + stringify!(st_uid) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<stat>())).st_gid as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(stat), + "::", + stringify!(st_gid) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<stat>())).__pad0 as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(stat), + "::", + stringify!(__pad0) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<stat>())).st_rdev as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(stat), + "::", + stringify!(st_rdev) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<stat>())).st_size as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(stat), + "::", + stringify!(st_size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<stat>())).st_blksize as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(stat), + "::", + stringify!(st_blksize) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<stat>())).st_blocks as *const _ as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(stat), + "::", + stringify!(st_blocks) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<stat>())).st_atim as *const _ as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(stat), + "::", + stringify!(st_atim) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<stat>())).st_mtim as *const _ as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(stat), + "::", + stringify!(st_mtim) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<stat>())).st_ctim as *const _ as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(stat), + "::", + stringify!(st_ctim) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<stat>())).__glibc_reserved as *const _ as usize }, + 120usize, + concat!( + "Offset of field: ", + stringify!(stat), + "::", + stringify!(__glibc_reserved) + ) + ); +} +extern "C" { + pub fn stat(__file: *const ::std::os::raw::c_char, __buf: *mut stat) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fstat(__fd: ::std::os::raw::c_int, __buf: *mut stat) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fstatat( + __fd: ::std::os::raw::c_int, + __file: *const ::std::os::raw::c_char, + __buf: *mut stat, + __flag: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn lstat(__file: *const ::std::os::raw::c_char, __buf: *mut stat) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn chmod(__file: *const ::std::os::raw::c_char, __mode: __mode_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn lchmod(__file: *const ::std::os::raw::c_char, __mode: __mode_t) + -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fchmod(__fd: ::std::os::raw::c_int, __mode: __mode_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn fchmodat( + __fd: ::std::os::raw::c_int, + __file: *const ::std::os::raw::c_char, + __mode: __mode_t, + __flag: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn umask(__mask: __mode_t) -> __mode_t; +} +extern "C" { + pub fn mkdir(__path: *const ::std::os::raw::c_char, __mode: __mode_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn mkdirat( + __fd: ::std::os::raw::c_int, + __path: *const ::std::os::raw::c_char, + __mode: __mode_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn mknod( + __path: *const ::std::os::raw::c_char, + __mode: __mode_t, + __dev: __dev_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn mknodat( + __fd: ::std::os::raw::c_int, + __path: *const ::std::os::raw::c_char, + __mode: __mode_t, + __dev: __dev_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn mkfifo(__path: *const ::std::os::raw::c_char, __mode: __mode_t) + -> ::std::os::raw::c_int; +} +extern "C" { + pub fn mkfifoat( + __fd: ::std::os::raw::c_int, + __path: *const ::std::os::raw::c_char, + __mode: __mode_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn utimensat( + __fd: ::std::os::raw::c_int, + __path: *const ::std::os::raw::c_char, + __times: *const timespec, + __flags: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn futimens(__fd: ::std::os::raw::c_int, __times: *const timespec) + -> ::std::os::raw::c_int; +} +pub type size_t = ::std::os::raw::c_ulong; +pub type wchar_t = ::std::os::raw::c_int; +#[repr(C)] +#[repr(align(16))] +#[derive(Debug, Copy, Clone)] +pub struct max_align_t { + pub __clang_max_align_nonce1: ::std::os::raw::c_longlong, + pub __bindgen_padding_0: u64, + pub __clang_max_align_nonce2: u128, +} +#[test] +fn bindgen_test_layout_max_align_t() { + assert_eq!( + ::std::mem::size_of::<max_align_t>(), + 32usize, + concat!("Size of: ", stringify!(max_align_t)) + ); + assert_eq!( + ::std::mem::align_of::<max_align_t>(), + 16usize, + concat!("Alignment of ", stringify!(max_align_t)) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<max_align_t>())).__clang_max_align_nonce1 as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(max_align_t), + "::", + stringify!(__clang_max_align_nonce1) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<max_align_t>())).__clang_max_align_nonce2 as *const _ as usize + }, + 16usize, + concat!( + "Offset of field: ", + stringify!(max_align_t), + "::", + stringify!(__clang_max_align_nonce2) + ) + ); +} +pub type int_least8_t = __int_least8_t; +pub type int_least16_t = __int_least16_t; +pub type int_least32_t = __int_least32_t; +pub type int_least64_t = __int_least64_t; +pub type uint_least8_t = __uint_least8_t; +pub type uint_least16_t = __uint_least16_t; +pub type uint_least32_t = __uint_least32_t; +pub type uint_least64_t = __uint_least64_t; +pub type int_fast8_t = ::std::os::raw::c_schar; +pub type int_fast16_t = ::std::os::raw::c_long; +pub type int_fast32_t = ::std::os::raw::c_long; +pub type int_fast64_t = ::std::os::raw::c_long; +pub type uint_fast8_t = ::std::os::raw::c_uchar; +pub type uint_fast16_t = ::std::os::raw::c_ulong; +pub type uint_fast32_t = ::std::os::raw::c_ulong; +pub type uint_fast64_t = ::std::os::raw::c_ulong; +pub type intmax_t = __intmax_t; +pub type uintmax_t = __uintmax_t; +pub type sqfs_u8 = u8; +pub type sqfs_u16 = u16; +pub type sqfs_u32 = u32; +pub type sqfs_u64 = u64; +pub type sqfs_s8 = i8; +pub type sqfs_s16 = i16; +pub type sqfs_s32 = i32; +pub type sqfs_s64 = i64; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sqfs_block_processor_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sqfs_dir_writer_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sqfs_dir_reader_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sqfs_id_table_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sqfs_meta_reader_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sqfs_meta_writer_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sqfs_xattr_reader_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sqfs_data_reader_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sqfs_block_hooks_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sqfs_xattr_writer_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sqfs_frag_table_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sqfs_block_writer_stats_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sqfs_object_t { + pub destroy: ::std::option::Option<unsafe extern "C" fn(instance: *mut sqfs_object_t)>, + pub copy: ::std::option::Option< + unsafe extern "C" fn(orig: *const sqfs_object_t) -> *mut sqfs_object_t, + >, +} +#[test] +fn bindgen_test_layout_sqfs_object_t() { + assert_eq!( + ::std::mem::size_of::<sqfs_object_t>(), + 16usize, + concat!("Size of: ", stringify!(sqfs_object_t)) + ); + assert_eq!( + ::std::mem::align_of::<sqfs_object_t>(), + 8usize, + concat!("Alignment of ", stringify!(sqfs_object_t)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_object_t>())).destroy as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_object_t), + "::", + stringify!(destroy) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_object_t>())).copy as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(sqfs_object_t), + "::", + stringify!(copy) + ) + ); +} +extern "C" { + pub fn sqfs_free(ptr: *mut ::std::os::raw::c_void); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sqfs_fragment_t { + pub start_offset: sqfs_u64, + pub size: sqfs_u32, + pub pad0: sqfs_u32, +} +#[test] +fn bindgen_test_layout_sqfs_fragment_t() { + assert_eq!( + ::std::mem::size_of::<sqfs_fragment_t>(), + 16usize, + concat!("Size of: ", stringify!(sqfs_fragment_t)) + ); + assert_eq!( + ::std::mem::align_of::<sqfs_fragment_t>(), + 8usize, + concat!("Alignment of ", stringify!(sqfs_fragment_t)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_fragment_t>())).start_offset as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_fragment_t), + "::", + stringify!(start_offset) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_fragment_t>())).size as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(sqfs_fragment_t), + "::", + stringify!(size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_fragment_t>())).pad0 as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(sqfs_fragment_t), + "::", + stringify!(pad0) + ) + ); +} +pub const SQFS_BLK_FLAGS_SQFS_BLK_DONT_COMPRESS: SQFS_BLK_FLAGS = 1; +pub const SQFS_BLK_FLAGS_SQFS_BLK_ALIGN: SQFS_BLK_FLAGS = 2; +pub const SQFS_BLK_FLAGS_SQFS_BLK_DONT_FRAGMENT: SQFS_BLK_FLAGS = 4; +pub const SQFS_BLK_FLAGS_SQFS_BLK_DONT_DEDUPLICATE: SQFS_BLK_FLAGS = 8; +pub const SQFS_BLK_FLAGS_SQFS_BLK_IGNORE_SPARSE: SQFS_BLK_FLAGS = 16; +pub const SQFS_BLK_FLAGS_SQFS_BLK_DONT_HASH: SQFS_BLK_FLAGS = 32; +pub const SQFS_BLK_FLAGS_SQFS_BLK_IS_SPARSE: SQFS_BLK_FLAGS = 1024; +pub const SQFS_BLK_FLAGS_SQFS_BLK_FIRST_BLOCK: SQFS_BLK_FLAGS = 2048; +pub const SQFS_BLK_FLAGS_SQFS_BLK_LAST_BLOCK: SQFS_BLK_FLAGS = 4096; +pub const SQFS_BLK_FLAGS_SQFS_BLK_IS_FRAGMENT: SQFS_BLK_FLAGS = 8192; +pub const SQFS_BLK_FLAGS_SQFS_BLK_FRAGMENT_BLOCK: SQFS_BLK_FLAGS = 16384; +pub const SQFS_BLK_FLAGS_SQFS_BLK_IS_COMPRESSED: SQFS_BLK_FLAGS = 32768; +pub const SQFS_BLK_FLAGS_SQFS_BLK_USER_SETTABLE_FLAGS: SQFS_BLK_FLAGS = 63; +pub const SQFS_BLK_FLAGS_SQFS_BLK_FLAGS_ALL: SQFS_BLK_FLAGS = 64575; +pub type SQFS_BLK_FLAGS = u32; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sqfs_block_processor_stats_t { + pub size: size_t, + pub input_bytes_read: sqfs_u64, + pub output_bytes_generated: sqfs_u64, + pub data_block_count: sqfs_u64, + pub frag_block_count: sqfs_u64, + pub sparse_block_count: sqfs_u64, + pub total_frag_count: sqfs_u64, + pub actual_frag_count: sqfs_u64, +} +#[test] +fn bindgen_test_layout_sqfs_block_processor_stats_t() { + assert_eq!( + ::std::mem::size_of::<sqfs_block_processor_stats_t>(), + 64usize, + concat!("Size of: ", stringify!(sqfs_block_processor_stats_t)) + ); + assert_eq!( + ::std::mem::align_of::<sqfs_block_processor_stats_t>(), + 8usize, + concat!("Alignment of ", stringify!(sqfs_block_processor_stats_t)) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_block_processor_stats_t>())).size as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_block_processor_stats_t), + "::", + stringify!(size) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_block_processor_stats_t>())).input_bytes_read as *const _ + as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(sqfs_block_processor_stats_t), + "::", + stringify!(input_bytes_read) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_block_processor_stats_t>())).output_bytes_generated + as *const _ as usize + }, + 16usize, + concat!( + "Offset of field: ", + stringify!(sqfs_block_processor_stats_t), + "::", + stringify!(output_bytes_generated) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_block_processor_stats_t>())).data_block_count as *const _ + as usize + }, + 24usize, + concat!( + "Offset of field: ", + stringify!(sqfs_block_processor_stats_t), + "::", + stringify!(data_block_count) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_block_processor_stats_t>())).frag_block_count as *const _ + as usize + }, + 32usize, + concat!( + "Offset of field: ", + stringify!(sqfs_block_processor_stats_t), + "::", + stringify!(frag_block_count) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_block_processor_stats_t>())).sparse_block_count as *const _ + as usize + }, + 40usize, + concat!( + "Offset of field: ", + stringify!(sqfs_block_processor_stats_t), + "::", + stringify!(sparse_block_count) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_block_processor_stats_t>())).total_frag_count as *const _ + as usize + }, + 48usize, + concat!( + "Offset of field: ", + stringify!(sqfs_block_processor_stats_t), + "::", + stringify!(total_frag_count) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_block_processor_stats_t>())).actual_frag_count as *const _ + as usize + }, + 56usize, + concat!( + "Offset of field: ", + stringify!(sqfs_block_processor_stats_t), + "::", + stringify!(actual_frag_count) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sqfs_block_processor_desc_t { + pub size: sqfs_u32, + pub max_block_size: sqfs_u32, + pub num_workers: sqfs_u32, + pub max_backlog: sqfs_u32, + pub cmp: *mut sqfs_compressor_t, + pub wr: *mut sqfs_block_writer_t, + pub tbl: *mut sqfs_frag_table_t, + pub file: *mut sqfs_file_t, + pub uncmp: *mut sqfs_compressor_t, +} +#[test] +fn bindgen_test_layout_sqfs_block_processor_desc_t() { + assert_eq!( + ::std::mem::size_of::<sqfs_block_processor_desc_t>(), + 56usize, + concat!("Size of: ", stringify!(sqfs_block_processor_desc_t)) + ); + assert_eq!( + ::std::mem::align_of::<sqfs_block_processor_desc_t>(), + 8usize, + concat!("Alignment of ", stringify!(sqfs_block_processor_desc_t)) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_block_processor_desc_t>())).size as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_block_processor_desc_t), + "::", + stringify!(size) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_block_processor_desc_t>())).max_block_size as *const _ + as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(sqfs_block_processor_desc_t), + "::", + stringify!(max_block_size) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_block_processor_desc_t>())).num_workers as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(sqfs_block_processor_desc_t), + "::", + stringify!(num_workers) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_block_processor_desc_t>())).max_backlog as *const _ as usize + }, + 12usize, + concat!( + "Offset of field: ", + stringify!(sqfs_block_processor_desc_t), + "::", + stringify!(max_backlog) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_block_processor_desc_t>())).cmp as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(sqfs_block_processor_desc_t), + "::", + stringify!(cmp) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_block_processor_desc_t>())).wr as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(sqfs_block_processor_desc_t), + "::", + stringify!(wr) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_block_processor_desc_t>())).tbl as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(sqfs_block_processor_desc_t), + "::", + stringify!(tbl) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_block_processor_desc_t>())).file as *const _ as usize + }, + 40usize, + concat!( + "Offset of field: ", + stringify!(sqfs_block_processor_desc_t), + "::", + stringify!(file) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_block_processor_desc_t>())).uncmp as *const _ as usize + }, + 48usize, + concat!( + "Offset of field: ", + stringify!(sqfs_block_processor_desc_t), + "::", + stringify!(uncmp) + ) + ); +} +extern "C" { + pub fn sqfs_block_processor_create( + max_block_size: size_t, + cmp: *mut sqfs_compressor_t, + num_workers: ::std::os::raw::c_uint, + max_backlog: size_t, + wr: *mut sqfs_block_writer_t, + tbl: *mut sqfs_frag_table_t, + ) -> *mut sqfs_block_processor_t; +} +extern "C" { + pub fn sqfs_block_processor_create_ex( + desc: *const sqfs_block_processor_desc_t, + out: *mut *mut sqfs_block_processor_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_block_processor_begin_file( + proc_: *mut sqfs_block_processor_t, + inode: *mut *mut sqfs_inode_generic_t, + user: *mut ::std::os::raw::c_void, + flags: sqfs_u32, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_block_processor_append( + proc_: *mut sqfs_block_processor_t, + data: *const ::std::os::raw::c_void, + size: size_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_block_processor_end_file( + proc_: *mut sqfs_block_processor_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_block_processor_submit_block( + proc_: *mut sqfs_block_processor_t, + user: *mut ::std::os::raw::c_void, + flags: sqfs_u32, + data: *const ::std::os::raw::c_void, + size: size_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_block_processor_sync(proc_: *mut sqfs_block_processor_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_block_processor_finish(proc_: *mut sqfs_block_processor_t) + -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_block_processor_get_stats( + proc_: *const sqfs_block_processor_t, + ) -> *const sqfs_block_processor_stats_t; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sqfs_block_writer_t { + pub base: sqfs_object_t, + pub write_data_block: ::std::option::Option< + unsafe extern "C" fn( + wr: *mut sqfs_block_writer_t, + user: *mut ::std::os::raw::c_void, + size: sqfs_u32, + checksum: sqfs_u32, + flags: sqfs_u32, + data: *const sqfs_u8, + location: *mut sqfs_u64, + ) -> ::std::os::raw::c_int, + >, + pub get_block_count: + ::std::option::Option<unsafe extern "C" fn(wr: *const sqfs_block_writer_t) -> sqfs_u64>, +} +#[test] +fn bindgen_test_layout_sqfs_block_writer_t() { + assert_eq!( + ::std::mem::size_of::<sqfs_block_writer_t>(), + 32usize, + concat!("Size of: ", stringify!(sqfs_block_writer_t)) + ); + assert_eq!( + ::std::mem::align_of::<sqfs_block_writer_t>(), + 8usize, + concat!("Alignment of ", stringify!(sqfs_block_writer_t)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_block_writer_t>())).base as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_block_writer_t), + "::", + stringify!(base) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_block_writer_t>())).write_data_block as *const _ as usize + }, + 16usize, + concat!( + "Offset of field: ", + stringify!(sqfs_block_writer_t), + "::", + stringify!(write_data_block) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_block_writer_t>())).get_block_count as *const _ as usize + }, + 24usize, + concat!( + "Offset of field: ", + stringify!(sqfs_block_writer_t), + "::", + stringify!(get_block_count) + ) + ); +} +pub const SQFS_BLOCK_WRITER_FLAGS_SQFS_BLOCK_WRITER_HASH_COMPARE_ONLY: SQFS_BLOCK_WRITER_FLAGS = 1; +pub const SQFS_BLOCK_WRITER_FLAGS_SQFS_BLOCK_WRITER_ALL_FLAGS: SQFS_BLOCK_WRITER_FLAGS = 1; +pub type SQFS_BLOCK_WRITER_FLAGS = u32; +extern "C" { + pub fn sqfs_block_writer_create( + file: *mut sqfs_file_t, + devblksz: size_t, + flags: sqfs_u32, + ) -> *mut sqfs_block_writer_t; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sqfs_super_t { + pub magic: sqfs_u32, + pub inode_count: sqfs_u32, + pub modification_time: sqfs_u32, + pub block_size: sqfs_u32, + pub fragment_entry_count: sqfs_u32, + pub compression_id: sqfs_u16, + pub block_log: sqfs_u16, + pub flags: sqfs_u16, + pub id_count: sqfs_u16, + pub version_major: sqfs_u16, + pub version_minor: sqfs_u16, + pub root_inode_ref: sqfs_u64, + pub bytes_used: sqfs_u64, + pub id_table_start: sqfs_u64, + pub xattr_id_table_start: sqfs_u64, + pub inode_table_start: sqfs_u64, + pub directory_table_start: sqfs_u64, + pub fragment_table_start: sqfs_u64, + pub export_table_start: sqfs_u64, +} +#[test] +fn bindgen_test_layout_sqfs_super_t() { + assert_eq!( + ::std::mem::size_of::<sqfs_super_t>(), + 96usize, + concat!("Size of: ", stringify!(sqfs_super_t)) + ); + assert_eq!( + ::std::mem::align_of::<sqfs_super_t>(), + 8usize, + concat!("Alignment of ", stringify!(sqfs_super_t)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_super_t>())).magic as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_super_t), + "::", + stringify!(magic) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_super_t>())).inode_count as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(sqfs_super_t), + "::", + stringify!(inode_count) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_super_t>())).modification_time as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(sqfs_super_t), + "::", + stringify!(modification_time) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_super_t>())).block_size as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(sqfs_super_t), + "::", + stringify!(block_size) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_super_t>())).fragment_entry_count as *const _ as usize + }, + 16usize, + concat!( + "Offset of field: ", + stringify!(sqfs_super_t), + "::", + stringify!(fragment_entry_count) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_super_t>())).compression_id as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(sqfs_super_t), + "::", + stringify!(compression_id) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_super_t>())).block_log as *const _ as usize }, + 22usize, + concat!( + "Offset of field: ", + stringify!(sqfs_super_t), + "::", + stringify!(block_log) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_super_t>())).flags as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(sqfs_super_t), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_super_t>())).id_count as *const _ as usize }, + 26usize, + concat!( + "Offset of field: ", + stringify!(sqfs_super_t), + "::", + stringify!(id_count) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_super_t>())).version_major as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(sqfs_super_t), + "::", + stringify!(version_major) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_super_t>())).version_minor as *const _ as usize }, + 30usize, + concat!( + "Offset of field: ", + stringify!(sqfs_super_t), + "::", + stringify!(version_minor) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_super_t>())).root_inode_ref as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(sqfs_super_t), + "::", + stringify!(root_inode_ref) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_super_t>())).bytes_used as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(sqfs_super_t), + "::", + stringify!(bytes_used) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_super_t>())).id_table_start as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(sqfs_super_t), + "::", + stringify!(id_table_start) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_super_t>())).xattr_id_table_start as *const _ as usize + }, + 56usize, + concat!( + "Offset of field: ", + stringify!(sqfs_super_t), + "::", + stringify!(xattr_id_table_start) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_super_t>())).inode_table_start as *const _ as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(sqfs_super_t), + "::", + stringify!(inode_table_start) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_super_t>())).directory_table_start as *const _ as usize + }, + 72usize, + concat!( + "Offset of field: ", + stringify!(sqfs_super_t), + "::", + stringify!(directory_table_start) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_super_t>())).fragment_table_start as *const _ as usize + }, + 80usize, + concat!( + "Offset of field: ", + stringify!(sqfs_super_t), + "::", + stringify!(fragment_table_start) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_super_t>())).export_table_start as *const _ as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(sqfs_super_t), + "::", + stringify!(export_table_start) + ) + ); +} +pub const SQFS_COMPRESSOR_SQFS_COMP_GZIP: SQFS_COMPRESSOR = 1; +pub const SQFS_COMPRESSOR_SQFS_COMP_LZMA: SQFS_COMPRESSOR = 2; +pub const SQFS_COMPRESSOR_SQFS_COMP_LZO: SQFS_COMPRESSOR = 3; +pub const SQFS_COMPRESSOR_SQFS_COMP_XZ: SQFS_COMPRESSOR = 4; +pub const SQFS_COMPRESSOR_SQFS_COMP_LZ4: SQFS_COMPRESSOR = 5; +pub const SQFS_COMPRESSOR_SQFS_COMP_ZSTD: SQFS_COMPRESSOR = 6; +pub const SQFS_COMPRESSOR_SQFS_COMP_MIN: SQFS_COMPRESSOR = 1; +pub const SQFS_COMPRESSOR_SQFS_COMP_MAX: SQFS_COMPRESSOR = 6; +pub type SQFS_COMPRESSOR = u32; +pub const SQFS_SUPER_FLAGS_SQFS_FLAG_UNCOMPRESSED_INODES: SQFS_SUPER_FLAGS = 1; +pub const SQFS_SUPER_FLAGS_SQFS_FLAG_UNCOMPRESSED_DATA: SQFS_SUPER_FLAGS = 2; +pub const SQFS_SUPER_FLAGS_SQFS_FLAG_UNCOMPRESSED_FRAGMENTS: SQFS_SUPER_FLAGS = 8; +pub const SQFS_SUPER_FLAGS_SQFS_FLAG_NO_FRAGMENTS: SQFS_SUPER_FLAGS = 16; +pub const SQFS_SUPER_FLAGS_SQFS_FLAG_ALWAYS_FRAGMENTS: SQFS_SUPER_FLAGS = 32; +pub const SQFS_SUPER_FLAGS_SQFS_FLAG_NO_DUPLICATES: SQFS_SUPER_FLAGS = 64; +pub const SQFS_SUPER_FLAGS_SQFS_FLAG_EXPORTABLE: SQFS_SUPER_FLAGS = 128; +pub const SQFS_SUPER_FLAGS_SQFS_FLAG_UNCOMPRESSED_XATTRS: SQFS_SUPER_FLAGS = 256; +pub const SQFS_SUPER_FLAGS_SQFS_FLAG_NO_XATTRS: SQFS_SUPER_FLAGS = 512; +pub const SQFS_SUPER_FLAGS_SQFS_FLAG_COMPRESSOR_OPTIONS: SQFS_SUPER_FLAGS = 1024; +pub const SQFS_SUPER_FLAGS_SQFS_FLAG_UNCOMPRESSED_IDS: SQFS_SUPER_FLAGS = 2048; +pub type SQFS_SUPER_FLAGS = u32; +extern "C" { + pub fn sqfs_super_init( + super_: *mut sqfs_super_t, + block_size: size_t, + mtime: sqfs_u32, + compressor: SQFS_COMPRESSOR, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_super_write( + super_: *const sqfs_super_t, + file: *mut sqfs_file_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_super_read( + super_: *mut sqfs_super_t, + file: *mut sqfs_file_t, + ) -> ::std::os::raw::c_int; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sqfs_compressor_t { + pub base: sqfs_object_t, + pub get_configuration: ::std::option::Option< + unsafe extern "C" fn(cmp: *const sqfs_compressor_t, cfg: *mut sqfs_compressor_config_t), + >, + pub write_options: ::std::option::Option< + unsafe extern "C" fn( + cmp: *mut sqfs_compressor_t, + file: *mut sqfs_file_t, + ) -> ::std::os::raw::c_int, + >, + pub read_options: ::std::option::Option< + unsafe extern "C" fn( + cmp: *mut sqfs_compressor_t, + file: *mut sqfs_file_t, + ) -> ::std::os::raw::c_int, + >, + pub do_block: ::std::option::Option< + unsafe extern "C" fn( + cmp: *mut sqfs_compressor_t, + in_: *const sqfs_u8, + size: sqfs_u32, + out: *mut sqfs_u8, + outsize: sqfs_u32, + ) -> sqfs_s32, + >, +} +#[test] +fn bindgen_test_layout_sqfs_compressor_t() { + assert_eq!( + ::std::mem::size_of::<sqfs_compressor_t>(), + 48usize, + concat!("Size of: ", stringify!(sqfs_compressor_t)) + ); + assert_eq!( + ::std::mem::align_of::<sqfs_compressor_t>(), + 8usize, + concat!("Alignment of ", stringify!(sqfs_compressor_t)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_compressor_t>())).base as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_compressor_t), + "::", + stringify!(base) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_compressor_t>())).get_configuration as *const _ as usize + }, + 16usize, + concat!( + "Offset of field: ", + stringify!(sqfs_compressor_t), + "::", + stringify!(get_configuration) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_compressor_t>())).write_options as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(sqfs_compressor_t), + "::", + stringify!(write_options) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_compressor_t>())).read_options as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(sqfs_compressor_t), + "::", + stringify!(read_options) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_compressor_t>())).do_block as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(sqfs_compressor_t), + "::", + stringify!(do_block) + ) + ); +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct sqfs_compressor_config_t { + pub id: sqfs_u16, + pub flags: sqfs_u16, + pub block_size: sqfs_u32, + pub level: sqfs_u32, + pub opt: sqfs_compressor_config_t__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sqfs_compressor_config_t__bindgen_ty_1 { + pub gzip: sqfs_compressor_config_t__bindgen_ty_1__bindgen_ty_1, + pub lzo: sqfs_compressor_config_t__bindgen_ty_1__bindgen_ty_2, + pub xz: sqfs_compressor_config_t__bindgen_ty_1__bindgen_ty_3, + pub lzma: sqfs_compressor_config_t__bindgen_ty_1__bindgen_ty_3, + pub padd0: [sqfs_u64; 2usize], + _bindgen_union_align: [u64; 2usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sqfs_compressor_config_t__bindgen_ty_1__bindgen_ty_1 { + pub window_size: sqfs_u16, + pub padd0: [sqfs_u8; 14usize], +} +#[test] +fn bindgen_test_layout_sqfs_compressor_config_t__bindgen_ty_1__bindgen_ty_1() { + assert_eq!( + ::std::mem::size_of::<sqfs_compressor_config_t__bindgen_ty_1__bindgen_ty_1>(), + 16usize, + concat!( + "Size of: ", + stringify!(sqfs_compressor_config_t__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + ::std::mem::align_of::<sqfs_compressor_config_t__bindgen_ty_1__bindgen_ty_1>(), + 2usize, + concat!( + "Alignment of ", + stringify!(sqfs_compressor_config_t__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_compressor_config_t__bindgen_ty_1__bindgen_ty_1>())) + .window_size as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_compressor_config_t__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(window_size) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_compressor_config_t__bindgen_ty_1__bindgen_ty_1>())).padd0 + as *const _ as usize + }, + 2usize, + concat!( + "Offset of field: ", + stringify!(sqfs_compressor_config_t__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(padd0) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sqfs_compressor_config_t__bindgen_ty_1__bindgen_ty_2 { + pub algorithm: sqfs_u16, + pub padd0: [sqfs_u8; 14usize], +} +#[test] +fn bindgen_test_layout_sqfs_compressor_config_t__bindgen_ty_1__bindgen_ty_2() { + assert_eq!( + ::std::mem::size_of::<sqfs_compressor_config_t__bindgen_ty_1__bindgen_ty_2>(), + 16usize, + concat!( + "Size of: ", + stringify!(sqfs_compressor_config_t__bindgen_ty_1__bindgen_ty_2) + ) + ); + assert_eq!( + ::std::mem::align_of::<sqfs_compressor_config_t__bindgen_ty_1__bindgen_ty_2>(), + 2usize, + concat!( + "Alignment of ", + stringify!(sqfs_compressor_config_t__bindgen_ty_1__bindgen_ty_2) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_compressor_config_t__bindgen_ty_1__bindgen_ty_2>())) + .algorithm as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_compressor_config_t__bindgen_ty_1__bindgen_ty_2), + "::", + stringify!(algorithm) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_compressor_config_t__bindgen_ty_1__bindgen_ty_2>())).padd0 + as *const _ as usize + }, + 2usize, + concat!( + "Offset of field: ", + stringify!(sqfs_compressor_config_t__bindgen_ty_1__bindgen_ty_2), + "::", + stringify!(padd0) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sqfs_compressor_config_t__bindgen_ty_1__bindgen_ty_3 { + pub dict_size: sqfs_u32, + pub lc: sqfs_u8, + pub lp: sqfs_u8, + pub pb: sqfs_u8, + pub padd0: [sqfs_u8; 9usize], +} +#[test] +fn bindgen_test_layout_sqfs_compressor_config_t__bindgen_ty_1__bindgen_ty_3() { + assert_eq!( + ::std::mem::size_of::<sqfs_compressor_config_t__bindgen_ty_1__bindgen_ty_3>(), + 16usize, + concat!( + "Size of: ", + stringify!(sqfs_compressor_config_t__bindgen_ty_1__bindgen_ty_3) + ) + ); + assert_eq!( + ::std::mem::align_of::<sqfs_compressor_config_t__bindgen_ty_1__bindgen_ty_3>(), + 4usize, + concat!( + "Alignment of ", + stringify!(sqfs_compressor_config_t__bindgen_ty_1__bindgen_ty_3) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_compressor_config_t__bindgen_ty_1__bindgen_ty_3>())) + .dict_size as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_compressor_config_t__bindgen_ty_1__bindgen_ty_3), + "::", + stringify!(dict_size) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_compressor_config_t__bindgen_ty_1__bindgen_ty_3>())).lc + as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(sqfs_compressor_config_t__bindgen_ty_1__bindgen_ty_3), + "::", + stringify!(lc) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_compressor_config_t__bindgen_ty_1__bindgen_ty_3>())).lp + as *const _ as usize + }, + 5usize, + concat!( + "Offset of field: ", + stringify!(sqfs_compressor_config_t__bindgen_ty_1__bindgen_ty_3), + "::", + stringify!(lp) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_compressor_config_t__bindgen_ty_1__bindgen_ty_3>())).pb + as *const _ as usize + }, + 6usize, + concat!( + "Offset of field: ", + stringify!(sqfs_compressor_config_t__bindgen_ty_1__bindgen_ty_3), + "::", + stringify!(pb) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_compressor_config_t__bindgen_ty_1__bindgen_ty_3>())).padd0 + as *const _ as usize + }, + 7usize, + concat!( + "Offset of field: ", + stringify!(sqfs_compressor_config_t__bindgen_ty_1__bindgen_ty_3), + "::", + stringify!(padd0) + ) + ); +} +#[test] +fn bindgen_test_layout_sqfs_compressor_config_t__bindgen_ty_1() { + assert_eq!( + ::std::mem::size_of::<sqfs_compressor_config_t__bindgen_ty_1>(), + 16usize, + concat!( + "Size of: ", + stringify!(sqfs_compressor_config_t__bindgen_ty_1) + ) + ); + assert_eq!( + ::std::mem::align_of::<sqfs_compressor_config_t__bindgen_ty_1>(), + 8usize, + concat!( + "Alignment of ", + stringify!(sqfs_compressor_config_t__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_compressor_config_t__bindgen_ty_1>())).gzip as *const _ + as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_compressor_config_t__bindgen_ty_1), + "::", + stringify!(gzip) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_compressor_config_t__bindgen_ty_1>())).lzo as *const _ + as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_compressor_config_t__bindgen_ty_1), + "::", + stringify!(lzo) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_compressor_config_t__bindgen_ty_1>())).xz as *const _ + as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_compressor_config_t__bindgen_ty_1), + "::", + stringify!(xz) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_compressor_config_t__bindgen_ty_1>())).lzma as *const _ + as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_compressor_config_t__bindgen_ty_1), + "::", + stringify!(lzma) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_compressor_config_t__bindgen_ty_1>())).padd0 as *const _ + as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_compressor_config_t__bindgen_ty_1), + "::", + stringify!(padd0) + ) + ); +} +#[test] +fn bindgen_test_layout_sqfs_compressor_config_t() { + assert_eq!( + ::std::mem::size_of::<sqfs_compressor_config_t>(), + 32usize, + concat!("Size of: ", stringify!(sqfs_compressor_config_t)) + ); + assert_eq!( + ::std::mem::align_of::<sqfs_compressor_config_t>(), + 8usize, + concat!("Alignment of ", stringify!(sqfs_compressor_config_t)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_compressor_config_t>())).id as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_compressor_config_t), + "::", + stringify!(id) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_compressor_config_t>())).flags as *const _ as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(sqfs_compressor_config_t), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_compressor_config_t>())).block_size as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(sqfs_compressor_config_t), + "::", + stringify!(block_size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_compressor_config_t>())).level as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(sqfs_compressor_config_t), + "::", + stringify!(level) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_compressor_config_t>())).opt as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(sqfs_compressor_config_t), + "::", + stringify!(opt) + ) + ); +} +pub const SQFS_COMP_FLAG_SQFS_COMP_FLAG_LZ4_HC: SQFS_COMP_FLAG = 1; +pub const SQFS_COMP_FLAG_SQFS_COMP_FLAG_LZ4_ALL: SQFS_COMP_FLAG = 1; +pub const SQFS_COMP_FLAG_SQFS_COMP_FLAG_LZMA_EXTREME: SQFS_COMP_FLAG = 1; +pub const SQFS_COMP_FLAG_SQFS_COMP_FLAG_LZMA_ALL: SQFS_COMP_FLAG = 1; +pub const SQFS_COMP_FLAG_SQFS_COMP_FLAG_XZ_X86: SQFS_COMP_FLAG = 1; +pub const SQFS_COMP_FLAG_SQFS_COMP_FLAG_XZ_POWERPC: SQFS_COMP_FLAG = 2; +pub const SQFS_COMP_FLAG_SQFS_COMP_FLAG_XZ_IA64: SQFS_COMP_FLAG = 4; +pub const SQFS_COMP_FLAG_SQFS_COMP_FLAG_XZ_ARM: SQFS_COMP_FLAG = 8; +pub const SQFS_COMP_FLAG_SQFS_COMP_FLAG_XZ_ARMTHUMB: SQFS_COMP_FLAG = 16; +pub const SQFS_COMP_FLAG_SQFS_COMP_FLAG_XZ_SPARC: SQFS_COMP_FLAG = 32; +pub const SQFS_COMP_FLAG_SQFS_COMP_FLAG_XZ_EXTREME: SQFS_COMP_FLAG = 256; +pub const SQFS_COMP_FLAG_SQFS_COMP_FLAG_XZ_ALL: SQFS_COMP_FLAG = 319; +pub const SQFS_COMP_FLAG_SQFS_COMP_FLAG_GZIP_DEFAULT: SQFS_COMP_FLAG = 1; +pub const SQFS_COMP_FLAG_SQFS_COMP_FLAG_GZIP_FILTERED: SQFS_COMP_FLAG = 2; +pub const SQFS_COMP_FLAG_SQFS_COMP_FLAG_GZIP_HUFFMAN: SQFS_COMP_FLAG = 4; +pub const SQFS_COMP_FLAG_SQFS_COMP_FLAG_GZIP_RLE: SQFS_COMP_FLAG = 8; +pub const SQFS_COMP_FLAG_SQFS_COMP_FLAG_GZIP_FIXED: SQFS_COMP_FLAG = 16; +pub const SQFS_COMP_FLAG_SQFS_COMP_FLAG_GZIP_ALL: SQFS_COMP_FLAG = 31; +pub const SQFS_COMP_FLAG_SQFS_COMP_FLAG_UNCOMPRESS: SQFS_COMP_FLAG = 32768; +pub const SQFS_COMP_FLAG_SQFS_COMP_FLAG_GENERIC_ALL: SQFS_COMP_FLAG = 32768; +pub type SQFS_COMP_FLAG = u32; +pub const SQFS_LZO_ALGORITHM_SQFS_LZO1X_1: SQFS_LZO_ALGORITHM = 0; +pub const SQFS_LZO_ALGORITHM_SQFS_LZO1X_1_11: SQFS_LZO_ALGORITHM = 1; +pub const SQFS_LZO_ALGORITHM_SQFS_LZO1X_1_12: SQFS_LZO_ALGORITHM = 2; +pub const SQFS_LZO_ALGORITHM_SQFS_LZO1X_1_15: SQFS_LZO_ALGORITHM = 3; +pub const SQFS_LZO_ALGORITHM_SQFS_LZO1X_999: SQFS_LZO_ALGORITHM = 4; +pub type SQFS_LZO_ALGORITHM = u32; +extern "C" { + pub fn sqfs_compressor_config_init( + cfg: *mut sqfs_compressor_config_t, + id: SQFS_COMPRESSOR, + block_size: size_t, + flags: sqfs_u16, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_compressor_create( + cfg: *const sqfs_compressor_config_t, + out: *mut *mut sqfs_compressor_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_compressor_name_from_id(id: SQFS_COMPRESSOR) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn sqfs_compressor_id_from_name( + name: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_data_reader_create( + file: *mut sqfs_file_t, + block_size: size_t, + cmp: *mut sqfs_compressor_t, + flags: sqfs_u32, + ) -> *mut sqfs_data_reader_t; +} +extern "C" { + pub fn sqfs_data_reader_load_fragment_table( + data: *mut sqfs_data_reader_t, + super_: *const sqfs_super_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_data_reader_get_fragment( + data: *mut sqfs_data_reader_t, + inode: *const sqfs_inode_generic_t, + size: *mut size_t, + out: *mut *mut sqfs_u8, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_data_reader_get_block( + data: *mut sqfs_data_reader_t, + inode: *const sqfs_inode_generic_t, + index: size_t, + size: *mut size_t, + out: *mut *mut sqfs_u8, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_data_reader_read( + data: *mut sqfs_data_reader_t, + inode: *const sqfs_inode_generic_t, + offset: sqfs_u64, + buffer: *mut ::std::os::raw::c_void, + size: sqfs_u32, + ) -> sqfs_s32; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sqfs_dir_header_t { + pub count: sqfs_u32, + pub start_block: sqfs_u32, + pub inode_number: sqfs_u32, +} +#[test] +fn bindgen_test_layout_sqfs_dir_header_t() { + assert_eq!( + ::std::mem::size_of::<sqfs_dir_header_t>(), + 12usize, + concat!("Size of: ", stringify!(sqfs_dir_header_t)) + ); + assert_eq!( + ::std::mem::align_of::<sqfs_dir_header_t>(), + 4usize, + concat!("Alignment of ", stringify!(sqfs_dir_header_t)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_dir_header_t>())).count as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_dir_header_t), + "::", + stringify!(count) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_dir_header_t>())).start_block as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(sqfs_dir_header_t), + "::", + stringify!(start_block) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_dir_header_t>())).inode_number as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(sqfs_dir_header_t), + "::", + stringify!(inode_number) + ) + ); +} +#[repr(C)] +#[derive(Debug)] +pub struct sqfs_dir_entry_t { + pub offset: sqfs_u16, + pub inode_diff: sqfs_s16, + pub type_: sqfs_u16, + pub size: sqfs_u16, + pub name: __IncompleteArrayField<sqfs_u8>, +} +#[test] +fn bindgen_test_layout_sqfs_dir_entry_t() { + assert_eq!( + ::std::mem::size_of::<sqfs_dir_entry_t>(), + 8usize, + concat!("Size of: ", stringify!(sqfs_dir_entry_t)) + ); + assert_eq!( + ::std::mem::align_of::<sqfs_dir_entry_t>(), + 2usize, + concat!("Alignment of ", stringify!(sqfs_dir_entry_t)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_dir_entry_t>())).offset as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_dir_entry_t), + "::", + stringify!(offset) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_dir_entry_t>())).inode_diff as *const _ as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(sqfs_dir_entry_t), + "::", + stringify!(inode_diff) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_dir_entry_t>())).type_ as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(sqfs_dir_entry_t), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_dir_entry_t>())).size as *const _ as usize }, + 6usize, + concat!( + "Offset of field: ", + stringify!(sqfs_dir_entry_t), + "::", + stringify!(size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_dir_entry_t>())).name as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(sqfs_dir_entry_t), + "::", + stringify!(name) + ) + ); +} +#[repr(C)] +#[derive(Debug)] +pub struct sqfs_dir_index_t { + pub index: sqfs_u32, + pub start_block: sqfs_u32, + pub size: sqfs_u32, + pub name: __IncompleteArrayField<sqfs_u8>, +} +#[test] +fn bindgen_test_layout_sqfs_dir_index_t() { + assert_eq!( + ::std::mem::size_of::<sqfs_dir_index_t>(), + 12usize, + concat!("Size of: ", stringify!(sqfs_dir_index_t)) + ); + assert_eq!( + ::std::mem::align_of::<sqfs_dir_index_t>(), + 4usize, + concat!("Alignment of ", stringify!(sqfs_dir_index_t)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_dir_index_t>())).index as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_dir_index_t), + "::", + stringify!(index) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_dir_index_t>())).start_block as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(sqfs_dir_index_t), + "::", + stringify!(start_block) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_dir_index_t>())).size as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(sqfs_dir_index_t), + "::", + stringify!(size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_dir_index_t>())).name as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(sqfs_dir_index_t), + "::", + stringify!(name) + ) + ); +} +pub const SQFS_TREE_FILTER_FLAGS_SQFS_TREE_NO_DEVICES: SQFS_TREE_FILTER_FLAGS = 1; +pub const SQFS_TREE_FILTER_FLAGS_SQFS_TREE_NO_SOCKETS: SQFS_TREE_FILTER_FLAGS = 2; +pub const SQFS_TREE_FILTER_FLAGS_SQFS_TREE_NO_FIFO: SQFS_TREE_FILTER_FLAGS = 4; +pub const SQFS_TREE_FILTER_FLAGS_SQFS_TREE_NO_SLINKS: SQFS_TREE_FILTER_FLAGS = 8; +pub const SQFS_TREE_FILTER_FLAGS_SQFS_TREE_NO_EMPTY: SQFS_TREE_FILTER_FLAGS = 16; +pub const SQFS_TREE_FILTER_FLAGS_SQFS_TREE_NO_RECURSE: SQFS_TREE_FILTER_FLAGS = 32; +pub const SQFS_TREE_FILTER_FLAGS_SQFS_TREE_STORE_PARENTS: SQFS_TREE_FILTER_FLAGS = 64; +pub const SQFS_TREE_FILTER_FLAGS_SQFS_TREE_ALL_FLAGS: SQFS_TREE_FILTER_FLAGS = 127; +pub type SQFS_TREE_FILTER_FLAGS = u32; +#[repr(C)] +#[derive(Debug)] +pub struct sqfs_tree_node_t { + pub parent: *mut sqfs_tree_node_t, + pub children: *mut sqfs_tree_node_t, + pub next: *mut sqfs_tree_node_t, + pub inode: *mut sqfs_inode_generic_t, + pub uid: sqfs_u32, + pub gid: sqfs_u32, + pub name: __IncompleteArrayField<sqfs_u8>, +} +#[test] +fn bindgen_test_layout_sqfs_tree_node_t() { + assert_eq!( + ::std::mem::size_of::<sqfs_tree_node_t>(), + 40usize, + concat!("Size of: ", stringify!(sqfs_tree_node_t)) + ); + assert_eq!( + ::std::mem::align_of::<sqfs_tree_node_t>(), + 8usize, + concat!("Alignment of ", stringify!(sqfs_tree_node_t)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_tree_node_t>())).parent as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_tree_node_t), + "::", + stringify!(parent) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_tree_node_t>())).children as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(sqfs_tree_node_t), + "::", + stringify!(children) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_tree_node_t>())).next as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(sqfs_tree_node_t), + "::", + stringify!(next) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_tree_node_t>())).inode as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(sqfs_tree_node_t), + "::", + stringify!(inode) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_tree_node_t>())).uid as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(sqfs_tree_node_t), + "::", + stringify!(uid) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_tree_node_t>())).gid as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(sqfs_tree_node_t), + "::", + stringify!(gid) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_tree_node_t>())).name as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(sqfs_tree_node_t), + "::", + stringify!(name) + ) + ); +} +extern "C" { + pub fn sqfs_dir_reader_create( + super_: *const sqfs_super_t, + cmp: *mut sqfs_compressor_t, + file: *mut sqfs_file_t, + flags: sqfs_u32, + ) -> *mut sqfs_dir_reader_t; +} +extern "C" { + pub fn sqfs_dir_reader_open_dir( + rd: *mut sqfs_dir_reader_t, + inode: *const sqfs_inode_generic_t, + flags: sqfs_u32, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_dir_reader_rewind(rd: *mut sqfs_dir_reader_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_dir_reader_find( + rd: *mut sqfs_dir_reader_t, + name: *const ::std::os::raw::c_char, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_dir_reader_read( + rd: *mut sqfs_dir_reader_t, + out: *mut *mut sqfs_dir_entry_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_dir_reader_get_inode( + rd: *mut sqfs_dir_reader_t, + inode: *mut *mut sqfs_inode_generic_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_dir_reader_get_root_inode( + rd: *mut sqfs_dir_reader_t, + inode: *mut *mut sqfs_inode_generic_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_dir_reader_find_by_path( + rd: *mut sqfs_dir_reader_t, + start: *const sqfs_inode_generic_t, + path: *const ::std::os::raw::c_char, + out: *mut *mut sqfs_inode_generic_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_dir_reader_get_full_hierarchy( + rd: *mut sqfs_dir_reader_t, + idtbl: *const sqfs_id_table_t, + path: *const ::std::os::raw::c_char, + flags: sqfs_u32, + out: *mut *mut sqfs_tree_node_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_dir_tree_destroy(root: *mut sqfs_tree_node_t); +} +pub const SQFS_DIR_WRITER_CREATE_FLAGS_SQFS_DIR_WRITER_CREATE_EXPORT_TABLE: + SQFS_DIR_WRITER_CREATE_FLAGS = 1; +pub const SQFS_DIR_WRITER_CREATE_FLAGS_SQFS_DIR_WRITER_CREATE_ALL_FLAGS: + SQFS_DIR_WRITER_CREATE_FLAGS = 1; +pub type SQFS_DIR_WRITER_CREATE_FLAGS = u32; +extern "C" { + pub fn sqfs_dir_writer_create( + dm: *mut sqfs_meta_writer_t, + flags: sqfs_u32, + ) -> *mut sqfs_dir_writer_t; +} +extern "C" { + pub fn sqfs_dir_writer_begin( + writer: *mut sqfs_dir_writer_t, + flags: sqfs_u32, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_dir_writer_add_entry( + writer: *mut sqfs_dir_writer_t, + name: *const ::std::os::raw::c_char, + inode_num: sqfs_u32, + inode_ref: sqfs_u64, + mode: sqfs_u16, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_dir_writer_end(writer: *mut sqfs_dir_writer_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_dir_writer_get_size(writer: *const sqfs_dir_writer_t) -> size_t; +} +extern "C" { + pub fn sqfs_dir_writer_get_entry_count(writer: *const sqfs_dir_writer_t) -> size_t; +} +extern "C" { + pub fn sqfs_dir_writer_get_dir_reference(writer: *const sqfs_dir_writer_t) -> sqfs_u64; +} +extern "C" { + pub fn sqfs_dir_writer_get_index_size(writer: *const sqfs_dir_writer_t) -> size_t; +} +extern "C" { + pub fn sqfs_dir_writer_create_inode( + writer: *const sqfs_dir_writer_t, + hlinks: size_t, + xattr: sqfs_u32, + parent_ino: sqfs_u32, + ) -> *mut sqfs_inode_generic_t; +} +extern "C" { + pub fn sqfs_dir_writer_write_export_table( + writer: *mut sqfs_dir_writer_t, + file: *mut sqfs_file_t, + cmp: *mut sqfs_compressor_t, + root_inode_num: sqfs_u32, + root_inode_ref: sqfs_u64, + super_: *mut sqfs_super_t, + ) -> ::std::os::raw::c_int; +} +pub const SQFS_ERROR_SQFS_ERROR_ALLOC: SQFS_ERROR = -1; +pub const SQFS_ERROR_SQFS_ERROR_IO: SQFS_ERROR = -2; +pub const SQFS_ERROR_SQFS_ERROR_COMPRESSOR: SQFS_ERROR = -3; +pub const SQFS_ERROR_SQFS_ERROR_INTERNAL: SQFS_ERROR = -4; +pub const SQFS_ERROR_SQFS_ERROR_CORRUPTED: SQFS_ERROR = -5; +pub const SQFS_ERROR_SQFS_ERROR_UNSUPPORTED: SQFS_ERROR = -6; +pub const SQFS_ERROR_SQFS_ERROR_OVERFLOW: SQFS_ERROR = -7; +pub const SQFS_ERROR_SQFS_ERROR_OUT_OF_BOUNDS: SQFS_ERROR = -8; +pub const SQFS_ERROR_SFQS_ERROR_SUPER_MAGIC: SQFS_ERROR = -9; +pub const SQFS_ERROR_SFQS_ERROR_SUPER_VERSION: SQFS_ERROR = -10; +pub const SQFS_ERROR_SQFS_ERROR_SUPER_BLOCK_SIZE: SQFS_ERROR = -11; +pub const SQFS_ERROR_SQFS_ERROR_NOT_DIR: SQFS_ERROR = -12; +pub const SQFS_ERROR_SQFS_ERROR_NO_ENTRY: SQFS_ERROR = -13; +pub const SQFS_ERROR_SQFS_ERROR_LINK_LOOP: SQFS_ERROR = -14; +pub const SQFS_ERROR_SQFS_ERROR_NOT_FILE: SQFS_ERROR = -15; +pub const SQFS_ERROR_SQFS_ERROR_ARG_INVALID: SQFS_ERROR = -16; +pub const SQFS_ERROR_SQFS_ERROR_SEQUENCE: SQFS_ERROR = -17; +pub type SQFS_ERROR = i32; +extern "C" { + pub fn sqfs_frag_table_create(flags: sqfs_u32) -> *mut sqfs_frag_table_t; +} +extern "C" { + pub fn sqfs_frag_table_read( + tbl: *mut sqfs_frag_table_t, + file: *mut sqfs_file_t, + super_: *const sqfs_super_t, + cmp: *mut sqfs_compressor_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_frag_table_write( + tbl: *mut sqfs_frag_table_t, + file: *mut sqfs_file_t, + super_: *mut sqfs_super_t, + cmp: *mut sqfs_compressor_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_frag_table_lookup( + tbl: *mut sqfs_frag_table_t, + index: sqfs_u32, + out: *mut sqfs_fragment_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_frag_table_append( + tbl: *mut sqfs_frag_table_t, + location: sqfs_u64, + size: sqfs_u32, + index: *mut sqfs_u32, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_frag_table_set( + tbl: *mut sqfs_frag_table_t, + index: sqfs_u32, + location: sqfs_u64, + size: sqfs_u32, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_frag_table_get_size(tbl: *mut sqfs_frag_table_t) -> size_t; +} +extern "C" { + pub fn sqfs_id_table_create(flags: sqfs_u32) -> *mut sqfs_id_table_t; +} +extern "C" { + pub fn sqfs_id_table_id_to_index( + tbl: *mut sqfs_id_table_t, + id: sqfs_u32, + out: *mut sqfs_u16, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_id_table_write( + tbl: *mut sqfs_id_table_t, + file: *mut sqfs_file_t, + super_: *mut sqfs_super_t, + cmp: *mut sqfs_compressor_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_id_table_read( + tbl: *mut sqfs_id_table_t, + file: *mut sqfs_file_t, + super_: *const sqfs_super_t, + cmp: *mut sqfs_compressor_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_id_table_index_to_id( + tbl: *const sqfs_id_table_t, + index: sqfs_u16, + out: *mut sqfs_u32, + ) -> ::std::os::raw::c_int; +} +pub const SQFS_INODE_TYPE_SQFS_INODE_DIR: SQFS_INODE_TYPE = 1; +pub const SQFS_INODE_TYPE_SQFS_INODE_FILE: SQFS_INODE_TYPE = 2; +pub const SQFS_INODE_TYPE_SQFS_INODE_SLINK: SQFS_INODE_TYPE = 3; +pub const SQFS_INODE_TYPE_SQFS_INODE_BDEV: SQFS_INODE_TYPE = 4; +pub const SQFS_INODE_TYPE_SQFS_INODE_CDEV: SQFS_INODE_TYPE = 5; +pub const SQFS_INODE_TYPE_SQFS_INODE_FIFO: SQFS_INODE_TYPE = 6; +pub const SQFS_INODE_TYPE_SQFS_INODE_SOCKET: SQFS_INODE_TYPE = 7; +pub const SQFS_INODE_TYPE_SQFS_INODE_EXT_DIR: SQFS_INODE_TYPE = 8; +pub const SQFS_INODE_TYPE_SQFS_INODE_EXT_FILE: SQFS_INODE_TYPE = 9; +pub const SQFS_INODE_TYPE_SQFS_INODE_EXT_SLINK: SQFS_INODE_TYPE = 10; +pub const SQFS_INODE_TYPE_SQFS_INODE_EXT_BDEV: SQFS_INODE_TYPE = 11; +pub const SQFS_INODE_TYPE_SQFS_INODE_EXT_CDEV: SQFS_INODE_TYPE = 12; +pub const SQFS_INODE_TYPE_SQFS_INODE_EXT_FIFO: SQFS_INODE_TYPE = 13; +pub const SQFS_INODE_TYPE_SQFS_INODE_EXT_SOCKET: SQFS_INODE_TYPE = 14; +pub type SQFS_INODE_TYPE = u32; +pub const SQFS_INODE_MODE_SQFS_INODE_OTHERS_X: SQFS_INODE_MODE = 1; +pub const SQFS_INODE_MODE_SQFS_INODE_OTHERS_W: SQFS_INODE_MODE = 2; +pub const SQFS_INODE_MODE_SQFS_INODE_OTHERS_R: SQFS_INODE_MODE = 4; +pub const SQFS_INODE_MODE_SQFS_INODE_OTHERS_MASK: SQFS_INODE_MODE = 7; +pub const SQFS_INODE_MODE_SQFS_INODE_GROUP_X: SQFS_INODE_MODE = 8; +pub const SQFS_INODE_MODE_SQFS_INODE_GROUP_W: SQFS_INODE_MODE = 16; +pub const SQFS_INODE_MODE_SQFS_INODE_GROUP_R: SQFS_INODE_MODE = 32; +pub const SQFS_INODE_MODE_SQFS_INODE_GROUP_MASK: SQFS_INODE_MODE = 56; +pub const SQFS_INODE_MODE_SQFS_INODE_OWNER_X: SQFS_INODE_MODE = 64; +pub const SQFS_INODE_MODE_SQFS_INODE_OWNER_W: SQFS_INODE_MODE = 128; +pub const SQFS_INODE_MODE_SQFS_INODE_OWNER_R: SQFS_INODE_MODE = 256; +pub const SQFS_INODE_MODE_SQFS_INODE_OWNER_MASK: SQFS_INODE_MODE = 448; +pub const SQFS_INODE_MODE_SQFS_INODE_STICKY: SQFS_INODE_MODE = 512; +pub const SQFS_INODE_MODE_SQFS_INODE_SET_GID: SQFS_INODE_MODE = 1024; +pub const SQFS_INODE_MODE_SQFS_INODE_SET_UID: SQFS_INODE_MODE = 2048; +pub const SQFS_INODE_MODE_SQFS_INODE_MODE_FIFO: SQFS_INODE_MODE = 4096; +pub const SQFS_INODE_MODE_SQFS_INODE_MODE_CHR: SQFS_INODE_MODE = 8192; +pub const SQFS_INODE_MODE_SQFS_INODE_MODE_DIR: SQFS_INODE_MODE = 16384; +pub const SQFS_INODE_MODE_SQFS_INODE_MODE_BLK: SQFS_INODE_MODE = 24576; +pub const SQFS_INODE_MODE_SQFS_INODE_MODE_REG: SQFS_INODE_MODE = 32768; +pub const SQFS_INODE_MODE_SQFS_INODE_MODE_LNK: SQFS_INODE_MODE = 40960; +pub const SQFS_INODE_MODE_SQFS_INODE_MODE_SOCK: SQFS_INODE_MODE = 49152; +pub const SQFS_INODE_MODE_SQFS_INODE_MODE_MASK: SQFS_INODE_MODE = 61440; +pub type SQFS_INODE_MODE = u32; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sqfs_inode_t { + pub type_: sqfs_u16, + pub mode: sqfs_u16, + pub uid_idx: sqfs_u16, + pub gid_idx: sqfs_u16, + pub mod_time: sqfs_u32, + pub inode_number: sqfs_u32, +} +#[test] +fn bindgen_test_layout_sqfs_inode_t() { + assert_eq!( + ::std::mem::size_of::<sqfs_inode_t>(), + 16usize, + concat!("Size of: ", stringify!(sqfs_inode_t)) + ); + assert_eq!( + ::std::mem::align_of::<sqfs_inode_t>(), + 4usize, + concat!("Alignment of ", stringify!(sqfs_inode_t)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_inode_t>())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_t), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_inode_t>())).mode as *const _ as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_t), + "::", + stringify!(mode) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_inode_t>())).uid_idx as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_t), + "::", + stringify!(uid_idx) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_inode_t>())).gid_idx as *const _ as usize }, + 6usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_t), + "::", + stringify!(gid_idx) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_inode_t>())).mod_time as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_t), + "::", + stringify!(mod_time) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_inode_t>())).inode_number as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_t), + "::", + stringify!(inode_number) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sqfs_inode_dev_t { + pub nlink: sqfs_u32, + pub devno: sqfs_u32, +} +#[test] +fn bindgen_test_layout_sqfs_inode_dev_t() { + assert_eq!( + ::std::mem::size_of::<sqfs_inode_dev_t>(), + 8usize, + concat!("Size of: ", stringify!(sqfs_inode_dev_t)) + ); + assert_eq!( + ::std::mem::align_of::<sqfs_inode_dev_t>(), + 4usize, + concat!("Alignment of ", stringify!(sqfs_inode_dev_t)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_inode_dev_t>())).nlink as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_dev_t), + "::", + stringify!(nlink) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_inode_dev_t>())).devno as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_dev_t), + "::", + stringify!(devno) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sqfs_inode_dev_ext_t { + pub nlink: sqfs_u32, + pub devno: sqfs_u32, + pub xattr_idx: sqfs_u32, +} +#[test] +fn bindgen_test_layout_sqfs_inode_dev_ext_t() { + assert_eq!( + ::std::mem::size_of::<sqfs_inode_dev_ext_t>(), + 12usize, + concat!("Size of: ", stringify!(sqfs_inode_dev_ext_t)) + ); + assert_eq!( + ::std::mem::align_of::<sqfs_inode_dev_ext_t>(), + 4usize, + concat!("Alignment of ", stringify!(sqfs_inode_dev_ext_t)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_inode_dev_ext_t>())).nlink as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_dev_ext_t), + "::", + stringify!(nlink) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_inode_dev_ext_t>())).devno as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_dev_ext_t), + "::", + stringify!(devno) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_inode_dev_ext_t>())).xattr_idx as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_dev_ext_t), + "::", + stringify!(xattr_idx) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sqfs_inode_ipc_t { + pub nlink: sqfs_u32, +} +#[test] +fn bindgen_test_layout_sqfs_inode_ipc_t() { + assert_eq!( + ::std::mem::size_of::<sqfs_inode_ipc_t>(), + 4usize, + concat!("Size of: ", stringify!(sqfs_inode_ipc_t)) + ); + assert_eq!( + ::std::mem::align_of::<sqfs_inode_ipc_t>(), + 4usize, + concat!("Alignment of ", stringify!(sqfs_inode_ipc_t)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_inode_ipc_t>())).nlink as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_ipc_t), + "::", + stringify!(nlink) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sqfs_inode_ipc_ext_t { + pub nlink: sqfs_u32, + pub xattr_idx: sqfs_u32, +} +#[test] +fn bindgen_test_layout_sqfs_inode_ipc_ext_t() { + assert_eq!( + ::std::mem::size_of::<sqfs_inode_ipc_ext_t>(), + 8usize, + concat!("Size of: ", stringify!(sqfs_inode_ipc_ext_t)) + ); + assert_eq!( + ::std::mem::align_of::<sqfs_inode_ipc_ext_t>(), + 4usize, + concat!("Alignment of ", stringify!(sqfs_inode_ipc_ext_t)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_inode_ipc_ext_t>())).nlink as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_ipc_ext_t), + "::", + stringify!(nlink) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_inode_ipc_ext_t>())).xattr_idx as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_ipc_ext_t), + "::", + stringify!(xattr_idx) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sqfs_inode_slink_t { + pub nlink: sqfs_u32, + pub target_size: sqfs_u32, +} +#[test] +fn bindgen_test_layout_sqfs_inode_slink_t() { + assert_eq!( + ::std::mem::size_of::<sqfs_inode_slink_t>(), + 8usize, + concat!("Size of: ", stringify!(sqfs_inode_slink_t)) + ); + assert_eq!( + ::std::mem::align_of::<sqfs_inode_slink_t>(), + 4usize, + concat!("Alignment of ", stringify!(sqfs_inode_slink_t)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_inode_slink_t>())).nlink as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_slink_t), + "::", + stringify!(nlink) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_inode_slink_t>())).target_size as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_slink_t), + "::", + stringify!(target_size) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sqfs_inode_slink_ext_t { + pub nlink: sqfs_u32, + pub target_size: sqfs_u32, + pub xattr_idx: sqfs_u32, +} +#[test] +fn bindgen_test_layout_sqfs_inode_slink_ext_t() { + assert_eq!( + ::std::mem::size_of::<sqfs_inode_slink_ext_t>(), + 12usize, + concat!("Size of: ", stringify!(sqfs_inode_slink_ext_t)) + ); + assert_eq!( + ::std::mem::align_of::<sqfs_inode_slink_ext_t>(), + 4usize, + concat!("Alignment of ", stringify!(sqfs_inode_slink_ext_t)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_inode_slink_ext_t>())).nlink as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_slink_ext_t), + "::", + stringify!(nlink) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_inode_slink_ext_t>())).target_size as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_slink_ext_t), + "::", + stringify!(target_size) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_inode_slink_ext_t>())).xattr_idx as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_slink_ext_t), + "::", + stringify!(xattr_idx) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sqfs_inode_file_t { + pub blocks_start: sqfs_u32, + pub fragment_index: sqfs_u32, + pub fragment_offset: sqfs_u32, + pub file_size: sqfs_u32, +} +#[test] +fn bindgen_test_layout_sqfs_inode_file_t() { + assert_eq!( + ::std::mem::size_of::<sqfs_inode_file_t>(), + 16usize, + concat!("Size of: ", stringify!(sqfs_inode_file_t)) + ); + assert_eq!( + ::std::mem::align_of::<sqfs_inode_file_t>(), + 4usize, + concat!("Alignment of ", stringify!(sqfs_inode_file_t)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_inode_file_t>())).blocks_start as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_file_t), + "::", + stringify!(blocks_start) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_inode_file_t>())).fragment_index as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_file_t), + "::", + stringify!(fragment_index) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_inode_file_t>())).fragment_offset as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_file_t), + "::", + stringify!(fragment_offset) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_inode_file_t>())).file_size as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_file_t), + "::", + stringify!(file_size) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sqfs_inode_file_ext_t { + pub blocks_start: sqfs_u64, + pub file_size: sqfs_u64, + pub sparse: sqfs_u64, + pub nlink: sqfs_u32, + pub fragment_idx: sqfs_u32, + pub fragment_offset: sqfs_u32, + pub xattr_idx: sqfs_u32, +} +#[test] +fn bindgen_test_layout_sqfs_inode_file_ext_t() { + assert_eq!( + ::std::mem::size_of::<sqfs_inode_file_ext_t>(), + 40usize, + concat!("Size of: ", stringify!(sqfs_inode_file_ext_t)) + ); + assert_eq!( + ::std::mem::align_of::<sqfs_inode_file_ext_t>(), + 8usize, + concat!("Alignment of ", stringify!(sqfs_inode_file_ext_t)) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_inode_file_ext_t>())).blocks_start as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_file_ext_t), + "::", + stringify!(blocks_start) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_inode_file_ext_t>())).file_size as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_file_ext_t), + "::", + stringify!(file_size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_inode_file_ext_t>())).sparse as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_file_ext_t), + "::", + stringify!(sparse) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_inode_file_ext_t>())).nlink as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_file_ext_t), + "::", + stringify!(nlink) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_inode_file_ext_t>())).fragment_idx as *const _ as usize + }, + 28usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_file_ext_t), + "::", + stringify!(fragment_idx) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_inode_file_ext_t>())).fragment_offset as *const _ as usize + }, + 32usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_file_ext_t), + "::", + stringify!(fragment_offset) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_inode_file_ext_t>())).xattr_idx as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_file_ext_t), + "::", + stringify!(xattr_idx) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sqfs_inode_dir_t { + pub start_block: sqfs_u32, + pub nlink: sqfs_u32, + pub size: sqfs_u16, + pub offset: sqfs_u16, + pub parent_inode: sqfs_u32, +} +#[test] +fn bindgen_test_layout_sqfs_inode_dir_t() { + assert_eq!( + ::std::mem::size_of::<sqfs_inode_dir_t>(), + 16usize, + concat!("Size of: ", stringify!(sqfs_inode_dir_t)) + ); + assert_eq!( + ::std::mem::align_of::<sqfs_inode_dir_t>(), + 4usize, + concat!("Alignment of ", stringify!(sqfs_inode_dir_t)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_inode_dir_t>())).start_block as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_dir_t), + "::", + stringify!(start_block) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_inode_dir_t>())).nlink as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_dir_t), + "::", + stringify!(nlink) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_inode_dir_t>())).size as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_dir_t), + "::", + stringify!(size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_inode_dir_t>())).offset as *const _ as usize }, + 10usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_dir_t), + "::", + stringify!(offset) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_inode_dir_t>())).parent_inode as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_dir_t), + "::", + stringify!(parent_inode) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sqfs_inode_dir_ext_t { + pub nlink: sqfs_u32, + pub size: sqfs_u32, + pub start_block: sqfs_u32, + pub parent_inode: sqfs_u32, + pub inodex_count: sqfs_u16, + pub offset: sqfs_u16, + pub xattr_idx: sqfs_u32, +} +#[test] +fn bindgen_test_layout_sqfs_inode_dir_ext_t() { + assert_eq!( + ::std::mem::size_of::<sqfs_inode_dir_ext_t>(), + 24usize, + concat!("Size of: ", stringify!(sqfs_inode_dir_ext_t)) + ); + assert_eq!( + ::std::mem::align_of::<sqfs_inode_dir_ext_t>(), + 4usize, + concat!("Alignment of ", stringify!(sqfs_inode_dir_ext_t)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_inode_dir_ext_t>())).nlink as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_dir_ext_t), + "::", + stringify!(nlink) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_inode_dir_ext_t>())).size as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_dir_ext_t), + "::", + stringify!(size) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_inode_dir_ext_t>())).start_block as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_dir_ext_t), + "::", + stringify!(start_block) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_inode_dir_ext_t>())).parent_inode as *const _ as usize + }, + 12usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_dir_ext_t), + "::", + stringify!(parent_inode) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_inode_dir_ext_t>())).inodex_count as *const _ as usize + }, + 16usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_dir_ext_t), + "::", + stringify!(inodex_count) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_inode_dir_ext_t>())).offset as *const _ as usize }, + 18usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_dir_ext_t), + "::", + stringify!(offset) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_inode_dir_ext_t>())).xattr_idx as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_dir_ext_t), + "::", + stringify!(xattr_idx) + ) + ); +} +#[repr(C)] +pub struct sqfs_inode_generic_t { + pub base: sqfs_inode_t, + pub payload_bytes_available: sqfs_u32, + pub payload_bytes_used: sqfs_u32, + pub data: sqfs_inode_generic_t__bindgen_ty_1, + pub extra: __IncompleteArrayField<sqfs_u32>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sqfs_inode_generic_t__bindgen_ty_1 { + pub dev: sqfs_inode_dev_t, + pub dev_ext: sqfs_inode_dev_ext_t, + pub ipc: sqfs_inode_ipc_t, + pub ipc_ext: sqfs_inode_ipc_ext_t, + pub slink: sqfs_inode_slink_t, + pub slink_ext: sqfs_inode_slink_ext_t, + pub file: sqfs_inode_file_t, + pub file_ext: sqfs_inode_file_ext_t, + pub dir: sqfs_inode_dir_t, + pub dir_ext: sqfs_inode_dir_ext_t, + _bindgen_union_align: [u64; 5usize], +} +#[test] +fn bindgen_test_layout_sqfs_inode_generic_t__bindgen_ty_1() { + assert_eq!( + ::std::mem::size_of::<sqfs_inode_generic_t__bindgen_ty_1>(), + 40usize, + concat!("Size of: ", stringify!(sqfs_inode_generic_t__bindgen_ty_1)) + ); + assert_eq!( + ::std::mem::align_of::<sqfs_inode_generic_t__bindgen_ty_1>(), + 8usize, + concat!( + "Alignment of ", + stringify!(sqfs_inode_generic_t__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_inode_generic_t__bindgen_ty_1>())).dev as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_generic_t__bindgen_ty_1), + "::", + stringify!(dev) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_inode_generic_t__bindgen_ty_1>())).dev_ext as *const _ + as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_generic_t__bindgen_ty_1), + "::", + stringify!(dev_ext) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_inode_generic_t__bindgen_ty_1>())).ipc as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_generic_t__bindgen_ty_1), + "::", + stringify!(ipc) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_inode_generic_t__bindgen_ty_1>())).ipc_ext as *const _ + as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_generic_t__bindgen_ty_1), + "::", + stringify!(ipc_ext) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_inode_generic_t__bindgen_ty_1>())).slink as *const _ + as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_generic_t__bindgen_ty_1), + "::", + stringify!(slink) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_inode_generic_t__bindgen_ty_1>())).slink_ext as *const _ + as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_generic_t__bindgen_ty_1), + "::", + stringify!(slink_ext) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_inode_generic_t__bindgen_ty_1>())).file as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_generic_t__bindgen_ty_1), + "::", + stringify!(file) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_inode_generic_t__bindgen_ty_1>())).file_ext as *const _ + as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_generic_t__bindgen_ty_1), + "::", + stringify!(file_ext) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_inode_generic_t__bindgen_ty_1>())).dir as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_generic_t__bindgen_ty_1), + "::", + stringify!(dir) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_inode_generic_t__bindgen_ty_1>())).dir_ext as *const _ + as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_generic_t__bindgen_ty_1), + "::", + stringify!(dir_ext) + ) + ); +} +#[test] +fn bindgen_test_layout_sqfs_inode_generic_t() { + assert_eq!( + ::std::mem::size_of::<sqfs_inode_generic_t>(), + 64usize, + concat!("Size of: ", stringify!(sqfs_inode_generic_t)) + ); + assert_eq!( + ::std::mem::align_of::<sqfs_inode_generic_t>(), + 8usize, + concat!("Alignment of ", stringify!(sqfs_inode_generic_t)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_inode_generic_t>())).base as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_generic_t), + "::", + stringify!(base) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_inode_generic_t>())).payload_bytes_available as *const _ + as usize + }, + 16usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_generic_t), + "::", + stringify!(payload_bytes_available) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_inode_generic_t>())).payload_bytes_used as *const _ as usize + }, + 20usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_generic_t), + "::", + stringify!(payload_bytes_used) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_inode_generic_t>())).data as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_generic_t), + "::", + stringify!(data) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_inode_generic_t>())).extra as *const _ as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(sqfs_inode_generic_t), + "::", + stringify!(extra) + ) + ); +} +extern "C" { + pub fn sqfs_inode_get_xattr_index( + inode: *const sqfs_inode_generic_t, + out: *mut sqfs_u32, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_inode_set_xattr_index( + inode: *mut sqfs_inode_generic_t, + index: sqfs_u32, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_inode_make_extended(inode: *mut sqfs_inode_generic_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_inode_make_basic(inode: *mut sqfs_inode_generic_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_inode_set_file_size( + inode: *mut sqfs_inode_generic_t, + size: sqfs_u64, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_inode_set_file_block_start( + inode: *mut sqfs_inode_generic_t, + location: sqfs_u64, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_inode_set_frag_location( + inode: *mut sqfs_inode_generic_t, + index: sqfs_u32, + offset: sqfs_u32, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_inode_get_file_size( + inode: *const sqfs_inode_generic_t, + size: *mut sqfs_u64, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_inode_get_frag_location( + inode: *const sqfs_inode_generic_t, + index: *mut sqfs_u32, + offset: *mut sqfs_u32, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_inode_get_file_block_start( + inode: *const sqfs_inode_generic_t, + location: *mut sqfs_u64, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_inode_unpack_dir_index_entry( + inode: *const sqfs_inode_generic_t, + out: *mut *mut sqfs_dir_index_t, + index: size_t, + ) -> ::std::os::raw::c_int; +} +pub const SQFS_FILE_OPEN_FLAGS_SQFS_FILE_OPEN_READ_ONLY: SQFS_FILE_OPEN_FLAGS = 1; +pub const SQFS_FILE_OPEN_FLAGS_SQFS_FILE_OPEN_OVERWRITE: SQFS_FILE_OPEN_FLAGS = 2; +pub const SQFS_FILE_OPEN_FLAGS_SQFS_FILE_OPEN_NO_CHARSET_XFRM: SQFS_FILE_OPEN_FLAGS = 4; +pub const SQFS_FILE_OPEN_FLAGS_SQFS_FILE_OPEN_ALL_FLAGS: SQFS_FILE_OPEN_FLAGS = 7; +pub type SQFS_FILE_OPEN_FLAGS = u32; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sqfs_file_t { + pub base: sqfs_object_t, + pub read_at: ::std::option::Option< + unsafe extern "C" fn( + file: *mut sqfs_file_t, + offset: sqfs_u64, + buffer: *mut ::std::os::raw::c_void, + size: size_t, + ) -> ::std::os::raw::c_int, + >, + pub write_at: ::std::option::Option< + unsafe extern "C" fn( + file: *mut sqfs_file_t, + offset: sqfs_u64, + buffer: *const ::std::os::raw::c_void, + size: size_t, + ) -> ::std::os::raw::c_int, + >, + pub get_size: ::std::option::Option<unsafe extern "C" fn(file: *const sqfs_file_t) -> sqfs_u64>, + pub truncate: ::std::option::Option< + unsafe extern "C" fn(file: *mut sqfs_file_t, size: sqfs_u64) -> ::std::os::raw::c_int, + >, +} +#[test] +fn bindgen_test_layout_sqfs_file_t() { + assert_eq!( + ::std::mem::size_of::<sqfs_file_t>(), + 48usize, + concat!("Size of: ", stringify!(sqfs_file_t)) + ); + assert_eq!( + ::std::mem::align_of::<sqfs_file_t>(), + 8usize, + concat!("Alignment of ", stringify!(sqfs_file_t)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_file_t>())).base as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_file_t), + "::", + stringify!(base) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_file_t>())).read_at as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(sqfs_file_t), + "::", + stringify!(read_at) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_file_t>())).write_at as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(sqfs_file_t), + "::", + stringify!(write_at) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_file_t>())).get_size as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(sqfs_file_t), + "::", + stringify!(get_size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_file_t>())).truncate as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(sqfs_file_t), + "::", + stringify!(truncate) + ) + ); +} +extern "C" { + pub fn sqfs_open_file( + filename: *const ::std::os::raw::c_char, + flags: sqfs_u32, + ) -> *mut sqfs_file_t; +} +extern "C" { + pub fn sqfs_meta_reader_create( + file: *mut sqfs_file_t, + cmp: *mut sqfs_compressor_t, + start: sqfs_u64, + limit: sqfs_u64, + ) -> *mut sqfs_meta_reader_t; +} +extern "C" { + pub fn sqfs_meta_reader_seek( + m: *mut sqfs_meta_reader_t, + block_start: sqfs_u64, + offset: size_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_meta_reader_get_position( + m: *const sqfs_meta_reader_t, + block_start: *mut sqfs_u64, + offset: *mut size_t, + ); +} +extern "C" { + pub fn sqfs_meta_reader_read( + m: *mut sqfs_meta_reader_t, + data: *mut ::std::os::raw::c_void, + size: size_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_meta_reader_read_dir_header( + m: *mut sqfs_meta_reader_t, + hdr: *mut sqfs_dir_header_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_meta_reader_read_dir_ent( + m: *mut sqfs_meta_reader_t, + ent: *mut *mut sqfs_dir_entry_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_meta_reader_read_inode( + ir: *mut sqfs_meta_reader_t, + super_: *const sqfs_super_t, + block_start: sqfs_u64, + offset: size_t, + out: *mut *mut sqfs_inode_generic_t, + ) -> ::std::os::raw::c_int; +} +pub const SQFS_META_WRITER_FLAGS_SQFS_META_WRITER_KEEP_IN_MEMORY: SQFS_META_WRITER_FLAGS = 1; +pub const SQFS_META_WRITER_FLAGS_SQFS_META_WRITER_ALL_FLAGS: SQFS_META_WRITER_FLAGS = 1; +pub type SQFS_META_WRITER_FLAGS = u32; +extern "C" { + pub fn sqfs_meta_writer_create( + file: *mut sqfs_file_t, + cmp: *mut sqfs_compressor_t, + flags: sqfs_u32, + ) -> *mut sqfs_meta_writer_t; +} +extern "C" { + pub fn sqfs_meta_writer_flush(m: *mut sqfs_meta_writer_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_meta_writer_append( + m: *mut sqfs_meta_writer_t, + data: *const ::std::os::raw::c_void, + size: size_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_meta_writer_get_position( + m: *const sqfs_meta_writer_t, + block_start: *mut sqfs_u64, + offset: *mut sqfs_u32, + ); +} +extern "C" { + pub fn sqfs_meta_writer_reset(m: *mut sqfs_meta_writer_t); +} +extern "C" { + pub fn sqfs_meta_write_write_to_file(m: *mut sqfs_meta_writer_t) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_meta_writer_write_inode( + iw: *mut sqfs_meta_writer_t, + n: *const sqfs_inode_generic_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_write_table( + file: *mut sqfs_file_t, + cmp: *mut sqfs_compressor_t, + data: *const ::std::os::raw::c_void, + table_size: size_t, + start: *mut sqfs_u64, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_read_table( + file: *mut sqfs_file_t, + cmp: *mut sqfs_compressor_t, + table_size: size_t, + location: sqfs_u64, + lower_limit: sqfs_u64, + upper_limit: sqfs_u64, + out: *mut *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; +} +pub const SQFS_XATTR_TYPE_SQFS_XATTR_USER: SQFS_XATTR_TYPE = 0; +pub const SQFS_XATTR_TYPE_SQFS_XATTR_TRUSTED: SQFS_XATTR_TYPE = 1; +pub const SQFS_XATTR_TYPE_SQFS_XATTR_SECURITY: SQFS_XATTR_TYPE = 2; +pub const SQFS_XATTR_TYPE_SQFS_XATTR_FLAG_OOL: SQFS_XATTR_TYPE = 256; +pub const SQFS_XATTR_TYPE_SQFS_XATTR_PREFIX_MASK: SQFS_XATTR_TYPE = 255; +pub type SQFS_XATTR_TYPE = u32; +#[repr(C)] +#[derive(Debug)] +pub struct sqfs_xattr_entry_t { + pub type_: sqfs_u16, + pub size: sqfs_u16, + pub key: __IncompleteArrayField<sqfs_u8>, +} +#[test] +fn bindgen_test_layout_sqfs_xattr_entry_t() { + assert_eq!( + ::std::mem::size_of::<sqfs_xattr_entry_t>(), + 4usize, + concat!("Size of: ", stringify!(sqfs_xattr_entry_t)) + ); + assert_eq!( + ::std::mem::align_of::<sqfs_xattr_entry_t>(), + 2usize, + concat!("Alignment of ", stringify!(sqfs_xattr_entry_t)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_xattr_entry_t>())).type_ as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_xattr_entry_t), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_xattr_entry_t>())).size as *const _ as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(sqfs_xattr_entry_t), + "::", + stringify!(size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_xattr_entry_t>())).key as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(sqfs_xattr_entry_t), + "::", + stringify!(key) + ) + ); +} +#[repr(C)] +#[derive(Debug)] +pub struct sqfs_xattr_value_t { + pub size: sqfs_u32, + pub value: __IncompleteArrayField<sqfs_u8>, +} +#[test] +fn bindgen_test_layout_sqfs_xattr_value_t() { + assert_eq!( + ::std::mem::size_of::<sqfs_xattr_value_t>(), + 4usize, + concat!("Size of: ", stringify!(sqfs_xattr_value_t)) + ); + assert_eq!( + ::std::mem::align_of::<sqfs_xattr_value_t>(), + 4usize, + concat!("Alignment of ", stringify!(sqfs_xattr_value_t)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_xattr_value_t>())).size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_xattr_value_t), + "::", + stringify!(size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_xattr_value_t>())).value as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(sqfs_xattr_value_t), + "::", + stringify!(value) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sqfs_xattr_id_t { + pub xattr: sqfs_u64, + pub count: sqfs_u32, + pub size: sqfs_u32, +} +#[test] +fn bindgen_test_layout_sqfs_xattr_id_t() { + assert_eq!( + ::std::mem::size_of::<sqfs_xattr_id_t>(), + 16usize, + concat!("Size of: ", stringify!(sqfs_xattr_id_t)) + ); + assert_eq!( + ::std::mem::align_of::<sqfs_xattr_id_t>(), + 8usize, + concat!("Alignment of ", stringify!(sqfs_xattr_id_t)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_xattr_id_t>())).xattr as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_xattr_id_t), + "::", + stringify!(xattr) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_xattr_id_t>())).count as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(sqfs_xattr_id_t), + "::", + stringify!(count) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_xattr_id_t>())).size as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(sqfs_xattr_id_t), + "::", + stringify!(size) + ) + ); +} +#[repr(C)] +#[derive(Debug)] +pub struct sqfs_xattr_id_table_t { + pub xattr_table_start: sqfs_u64, + pub xattr_ids: sqfs_u32, + pub unused: sqfs_u32, + pub locations: __IncompleteArrayField<sqfs_u64>, +} +#[test] +fn bindgen_test_layout_sqfs_xattr_id_table_t() { + assert_eq!( + ::std::mem::size_of::<sqfs_xattr_id_table_t>(), + 16usize, + concat!("Size of: ", stringify!(sqfs_xattr_id_table_t)) + ); + assert_eq!( + ::std::mem::align_of::<sqfs_xattr_id_table_t>(), + 8usize, + concat!("Alignment of ", stringify!(sqfs_xattr_id_table_t)) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::<sqfs_xattr_id_table_t>())).xattr_table_start as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sqfs_xattr_id_table_t), + "::", + stringify!(xattr_table_start) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_xattr_id_table_t>())).xattr_ids as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(sqfs_xattr_id_table_t), + "::", + stringify!(xattr_ids) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_xattr_id_table_t>())).unused as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(sqfs_xattr_id_table_t), + "::", + stringify!(unused) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::<sqfs_xattr_id_table_t>())).locations as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(sqfs_xattr_id_table_t), + "::", + stringify!(locations) + ) + ); +} +extern "C" { + pub fn sqfs_get_xattr_prefix(id: SQFS_XATTR_TYPE) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn sqfs_get_xattr_prefix_id(key: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_xattr_reader_create(flags: sqfs_u32) -> *mut sqfs_xattr_reader_t; +} +extern "C" { + pub fn sqfs_xattr_reader_load( + xr: *mut sqfs_xattr_reader_t, + super_: *const sqfs_super_t, + file: *mut sqfs_file_t, + cmp: *mut sqfs_compressor_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_xattr_reader_get_desc( + xr: *mut sqfs_xattr_reader_t, + idx: sqfs_u32, + desc: *mut sqfs_xattr_id_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_xattr_reader_seek_kv( + xr: *mut sqfs_xattr_reader_t, + desc: *const sqfs_xattr_id_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_xattr_reader_read_key( + xr: *mut sqfs_xattr_reader_t, + key_out: *mut *mut sqfs_xattr_entry_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_xattr_reader_read_value( + xr: *mut sqfs_xattr_reader_t, + key: *const sqfs_xattr_entry_t, + val_out: *mut *mut sqfs_xattr_value_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_xattr_writer_create(flags: sqfs_u32) -> *mut sqfs_xattr_writer_t; +} +extern "C" { + pub fn sqfs_xattr_writer_begin( + xwr: *mut sqfs_xattr_writer_t, + flags: sqfs_u32, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_xattr_writer_add( + xwr: *mut sqfs_xattr_writer_t, + key: *const ::std::os::raw::c_char, + value: *const ::std::os::raw::c_void, + size: size_t, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_xattr_writer_end( + xwr: *mut sqfs_xattr_writer_t, + out: *mut sqfs_u32, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn sqfs_xattr_writer_flush( + xwr: *const sqfs_xattr_writer_t, + file: *mut sqfs_file_t, + super_: *mut sqfs_super_t, + cmp: *mut sqfs_compressor_t, + ) -> ::std::os::raw::c_int; +} @@ -37,6 +37,7 @@ use num_derive::FromPrimitive; use num_traits::FromPrimitive; use thiserror::Error; +#[cfg(not(feature = "hermetic"))] mod bindings { #![allow(non_camel_case_types)] #![allow(non_snake_case)] @@ -44,6 +45,8 @@ mod bindings { #![allow(dead_code)] include!(concat!(env!("OUT_DIR"), "/bindings.rs")); } +#[cfg(feature = "hermetic")] +mod bindings; use bindings::*; |