[INFO] crate userfaultfd-sys 0.2.0 is already in cache [INFO] checking userfaultfd-sys-0.2.0 against try#1a399c10897767c36d147199696c96f193034e49 for pr-72644 [INFO] extracting crate userfaultfd-sys 0.2.0 into /workspace/builds/worker-8/source [INFO] validating manifest of crates.io crate userfaultfd-sys 0.2.0 on toolchain 1a399c10897767c36d147199696c96f193034e49 [INFO] running `"/workspace/cargo-home/bin/cargo" "+1a399c10897767c36d147199696c96f193034e49" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started tweaking crates.io crate userfaultfd-sys 0.2.0 [INFO] finished tweaking crates.io crate userfaultfd-sys 0.2.0 [INFO] tweaked toml for crates.io crate userfaultfd-sys 0.2.0 written to /workspace/builds/worker-8/source/Cargo.toml [INFO] running `"/workspace/cargo-home/bin/cargo" "+1a399c10897767c36d147199696c96f193034e49" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/workspace/cargo-home/bin/cargo" "+1a399c10897767c36d147199696c96f193034e49" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+1a399c10897767c36d147199696c96f193034e49" "check" "--frozen" "--all" "--all-targets"` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 56bf201c99bde31f3de58bcbaf3833bd60cb6857e32efa8081f10d781a3459d3 [INFO] running `"docker" "start" "-a" "56bf201c99bde31f3de58bcbaf3833bd60cb6857e32efa8081f10d781a3459d3"` [INFO] [stderr] sudo: setrlimit(RLIMIT_CORE): Operation not permitted [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Compiling libc v0.2.71 [INFO] [stderr] Compiling lazy_static v1.4.0 [INFO] [stderr] Compiling regex-syntax v0.6.18 [INFO] [stderr] Compiling bindgen v0.51.1 [INFO] [stderr] Compiling cfg-if v0.1.10 [INFO] [stderr] Compiling libloading v0.5.2 [INFO] [stderr] Compiling proc-macro2 v1.0.17 [INFO] [stderr] Compiling memchr v2.3.3 [INFO] [stderr] Compiling bitflags v1.2.1 [INFO] [stderr] Compiling thread_local v1.0.1 [INFO] [stderr] Compiling nom v4.2.3 [INFO] [stderr] Compiling aho-corasick v0.7.10 [INFO] [stderr] Compiling quote v1.0.6 [INFO] [stderr] Compiling clang-sys v0.28.1 [INFO] [stderr] Compiling cexpr v0.3.6 [INFO] [stderr] Compiling regex v1.3.9 [INFO] [stderr] Compiling userfaultfd-sys v0.2.0 (/opt/rustwide/workdir) [INFO] [stderr] error: reference to packed field is unaligned [INFO] [stderr] --> /opt/rustwide/target/debug/build/userfaultfd-sys-1452bdcf536a4306/out/bindings.rs:3:11703 [INFO] [stderr] | [INFO] [stderr] 3 | pub const _UFFDIO_REGISTER : u64 = 0 ; pub const _UFFDIO_UNREGISTER : u64 = 1 ; pub const _UFFDIO_WAKE : u64 = 2 ; pub const _UFFDIO_COPY : u64 = 3 ; pub const _UFFDIO_ZEROPAGE : u64 = 4 ; pub const _UFFDIO_API : u64 = 63 ; pub const UFFDIO : u8 = 170 ; pub const UFFD_EVENT_PAGEFAULT : u8 = 18 ; pub const UFFD_EVENT_FORK : u8 = 19 ; pub const UFFD_EVENT_REMAP : u8 = 20 ; pub const UFFD_EVENT_REMOVE : u8 = 21 ; pub const UFFD_EVENT_UNMAP : u8 = 22 ; pub const UFFD_PAGEFAULT_FLAG_WRITE : u64 = 1 ; pub const UFFD_PAGEFAULT_FLAG_WP : u64 = 2 ; pub const UFFD_FEATURE_PAGEFAULT_FLAG_WP : u64 = 1 ; pub const UFFD_FEATURE_EVENT_FORK : u64 = 2 ; pub const UFFD_FEATURE_EVENT_REMAP : u64 = 4 ; pub const UFFD_FEATURE_EVENT_REMOVE : u64 = 8 ; pub const UFFD_FEATURE_MISSING_HUGETLBFS : u64 = 16 ; pub const UFFD_FEATURE_MISSING_SHMEM : u64 = 32 ; pub const UFFD_FEATURE_EVENT_UNMAP : u64 = 64 ; pub const UFFD_FEATURE_SIGBUS : u64 = 128 ; pub const UFFD_FEATURE_THREAD_ID : u64 = 256 ; pub type __s8 = :: std :: os :: raw :: c_schar ; pub type __u8 = :: std :: os :: raw :: c_uchar ; pub type __s16 = :: std :: os :: raw :: c_short ; pub type __u16 = :: std :: os :: raw :: c_ushort ; pub type __s32 = :: std :: os :: raw :: c_int ; pub type __u32 = :: std :: os :: raw :: c_uint ; pub type __s64 = :: std :: os :: raw :: c_longlong ; pub type __u64 = :: std :: os :: raw :: c_ulonglong ; pub type __poll_t = :: std :: os :: raw :: c_uint ; # [ repr ( C , packed ) ] # [ derive ( Copy , Clone ) ] pub struct uffd_msg { pub event : __u8 , pub reserved1 : __u8 , pub reserved2 : __u16 , pub reserved3 : __u32 , pub arg : uffd_msg__bindgen_ty_1 , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union uffd_msg__bindgen_ty_1 { pub pagefault : uffd_msg__bindgen_ty_1__bindgen_ty_1 , pub fork : uffd_msg__bindgen_ty_1__bindgen_ty_2 , pub remap : uffd_msg__bindgen_ty_1__bindgen_ty_3 , pub remove : uffd_msg__bindgen_ty_1__bindgen_ty_4 , pub reserved : uffd_msg__bindgen_ty_1__bindgen_ty_5 , _bindgen_union_align : [ u64 ; 3usize ] , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct uffd_msg__bindgen_ty_1__bindgen_ty_1 { pub flags : __u64 , pub address : __u64 , pub feat : uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { pub ptid : __u32 , _bindgen_union_align : u32 , } # [ test ] fn bindgen_test_layout_uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 > ( ) , 4usize , concat ! ( "Size of: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . ptid as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( ptid ) ) ) ; } # [ test ] fn bindgen_test_layout_uffd_msg__bindgen_ty_1__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < uffd_msg__bindgen_ty_1__bindgen_ty_1 > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < uffd_msg__bindgen_ty_1__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . flags as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . address as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( address ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . feat as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( feat ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct uffd_msg__bindgen_ty_1__bindgen_ty_2 { pub ufd : __u32 , } # [ test ] fn bindgen_test_layout_uffd_msg__bindgen_ty_1__bindgen_ty_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < uffd_msg__bindgen_ty_1__bindgen_ty_2 > ( ) , 4usize , concat ! ( "Size of: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_2 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < uffd_msg__bindgen_ty_1__bindgen_ty_2 > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . ufd as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( ufd ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct uffd_msg__bindgen_ty_1__bindgen_ty_3 { pub from : __u64 , pub to : __u64 , pub len : __u64 , } # [ test ] fn bindgen_test_layout_uffd_msg__bindgen_ty_1__bindgen_ty_3 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < uffd_msg__bindgen_ty_1__bindgen_ty_3 > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_3 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < uffd_msg__bindgen_ty_1__bindgen_ty_3 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_3 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1__bindgen_ty_3 > ( ) ) ) . from as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_3 ) , "::" , stringify ! ( from ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1__bindgen_ty_3 > ( ) ) ) . to as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_3 ) , "::" , stringify ! ( to ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1__bindgen_ty_3 > ( ) ) ) . len as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_3 ) , "::" , stringify ! ( len ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct uffd_msg__bindgen_ty_1__bindgen_ty_4 { pub start : __u64 , pub end : __u64 , } # [ test ] fn bindgen_test_layout_uffd_msg__bindgen_ty_1__bindgen_ty_4 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < uffd_msg__bindgen_ty_1__bindgen_ty_4 > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_4 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < uffd_msg__bindgen_ty_1__bindgen_ty_4 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_4 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1__bindgen_ty_4 > ( ) ) ) . start as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_4 ) , "::" , stringify ! ( start ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1__bindgen_ty_4 > ( ) ) ) . end as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_4 ) , "::" , stringify ! ( end ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct uffd_msg__bindgen_ty_1__bindgen_ty_5 { pub reserved1 : __u64 , pub reserved2 : __u64 , pub reserved3 : __u64 , } # [ test ] fn bindgen_test_layout_uffd_msg__bindgen_ty_1__bindgen_ty_5 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < uffd_msg__bindgen_ty_1__bindgen_ty_5 > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_5 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < uffd_msg__bindgen_ty_1__bindgen_ty_5 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_5 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1__bindgen_ty_5 > ( ) ) ) . reserved1 as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_5 ) , "::" , stringify ! ( reserved1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1__bindgen_ty_5 > ( ) ) ) . reserved2 as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_5 ) , "::" , stringify ! ( reserved2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1__bindgen_ty_5 > ( ) ) ) . reserved3 as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_5 ) , "::" , stringify ! ( reserved3 ) ) ) ; } # [ test ] fn bindgen_test_layout_uffd_msg__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < uffd_msg__bindgen_ty_1 > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( uffd_msg__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < uffd_msg__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( uffd_msg__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1 > ( ) ) ) . pagefault as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1 ) , "::" , stringify ! ( pagefault ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1 > ( ) ) ) . fork as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1 ) , "::" , stringify ! ( fork ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1 > ( ) ) ) . remap as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1 ) , "::" , stringify ! ( remap ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1 > ( ) ) ) . remove as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1 ) , "::" , stringify ! ( remove ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1 > ( ) ) ) . reserved as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1 ) , "::" , stringify ! ( reserved ) ) ) ; } # [ test ] fn bindgen_test_layout_uffd_msg ( ) { assert_eq ! ( :: std :: mem :: size_of :: < uffd_msg > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( uffd_msg ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < uffd_msg > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( uffd_msg ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg > ( ) ) ) . event as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg ) , "::" , stringify ! ( event ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg > ( ) ) ) . reserved1 as * const _ as usize } , 1usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg ) , "::" , stringify ! ( reserved1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg > ( ) ) ) . reserved2 as * const _ as usize } , 2usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg ) , "::" , stringify ! ( reserved2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg > ( ) ) ) . reserved3 as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg ) , "::" , stringify ! ( reserved3 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg > ( ) ) ) . arg as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg ) , "::" , stringify ! ( arg ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct uffdio_api { pub api : __u64 , pub features : __u64 , pub ioctls : __u64 , } # [ test ] fn bindgen_test_layout_uffdio_api ( ) { assert_eq ! ( :: std :: mem :: size_of :: < uffdio_api > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( uffdio_api ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < uffdio_api > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( uffdio_api ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_api > ( ) ) ) . api as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_api ) , "::" , stringify ! ( api ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_api > ( ) ) ) . features as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_api ) , "::" , stringify ! ( features ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_api > ( ) ) ) . ioctls as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_api ) , "::" , stringify ! ( ioctls ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct uffdio_range { pub start : __u64 , pub len : __u64 , } # [ test ] fn bindgen_test_layout_uffdio_range ( ) { assert_eq ! ( :: std :: mem :: size_of :: < uffdio_range > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( uffdio_range ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < uffdio_range > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( uffdio_range ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_range > ( ) ) ) . start as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_range ) , "::" , stringify ! ( start ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_range > ( ) ) ) . len as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_range ) , "::" , stringify ! ( len ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct uffdio_register { pub range : uffdio_range , pub mode : __u64 , pub ioctls : __u64 , } # [ test ] fn bindgen_test_layout_uffdio_register ( ) { assert_eq ! ( :: std :: mem :: size_of :: < uffdio_register > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( uffdio_register ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < uffdio_register > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( uffdio_register ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_register > ( ) ) ) . range as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_register ) , "::" , stringify ! ( range ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_register > ( ) ) ) . mode as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_register ) , "::" , stringify ! ( mode ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_register > ( ) ) ) . ioctls as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_register ) , "::" , stringify ! ( ioctls ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct uffdio_copy { pub dst : __u64 , pub src : __u64 , pub len : __u64 , pub mode : __u64 , pub copy : __s64 , } # [ test ] fn bindgen_test_layout_uffdio_copy ( ) { assert_eq ! ( :: std :: mem :: size_of :: < uffdio_copy > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( uffdio_copy ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < uffdio_copy > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( uffdio_copy ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_copy > ( ) ) ) . dst as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_copy ) , "::" , stringify ! ( dst ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_copy > ( ) ) ) . src as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_copy ) , "::" , stringify ! ( src ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_copy > ( ) ) ) . len as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_copy ) , "::" , stringify ! ( len ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_copy > ( ) ) ) . mode as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_copy ) , "::" , stringify ! ( mode ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_copy > ( ) ) ) . copy as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_copy ) , "::" , stringify ! ( copy ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct uffdio_zeropage { pub range : uffdio_range , pub mode : __u64 , pub zeropage : __s64 , } # [ test ] fn bindgen_test_layout_uffdio_zeropage ( ) { assert_eq ! ( :: std :: mem :: size_of :: < uffdio_zeropage > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( uffdio_zeropage ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < uffdio_zeropage > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( uffdio_zeropage ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_zeropage > ( ) ) ) . range as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_zeropage ) , "::" , stringify ! ( range ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_zeropage > ( ) ) ) . mode as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_zeropage ) , "::" , stringify ! ( mode ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_zeropage > ( ) ) ) . zeropage as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_zeropage ) , "::" , stringify ! ( zeropage ) ) ) ; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[deny(unaligned_references)]` on by default [INFO] [stderr] = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) [INFO] [stderr] [INFO] [stderr] error: reference to packed field is unaligned [INFO] [stderr] --> /opt/rustwide/target/debug/build/userfaultfd-sys-1452bdcf536a4306/out/bindings.rs:3:11926 [INFO] [stderr] | [INFO] [stderr] 3 | pub const _UFFDIO_REGISTER : u64 = 0 ; pub const _UFFDIO_UNREGISTER : u64 = 1 ; pub const _UFFDIO_WAKE : u64 = 2 ; pub const _UFFDIO_COPY : u64 = 3 ; pub const _UFFDIO_ZEROPAGE : u64 = 4 ; pub const _UFFDIO_API : u64 = 63 ; pub const UFFDIO : u8 = 170 ; pub const UFFD_EVENT_PAGEFAULT : u8 = 18 ; pub const UFFD_EVENT_FORK : u8 = 19 ; pub const UFFD_EVENT_REMAP : u8 = 20 ; pub const UFFD_EVENT_REMOVE : u8 = 21 ; pub const UFFD_EVENT_UNMAP : u8 = 22 ; pub const UFFD_PAGEFAULT_FLAG_WRITE : u64 = 1 ; pub const UFFD_PAGEFAULT_FLAG_WP : u64 = 2 ; pub const UFFD_FEATURE_PAGEFAULT_FLAG_WP : u64 = 1 ; pub const UFFD_FEATURE_EVENT_FORK : u64 = 2 ; pub const UFFD_FEATURE_EVENT_REMAP : u64 = 4 ; pub const UFFD_FEATURE_EVENT_REMOVE : u64 = 8 ; pub const UFFD_FEATURE_MISSING_HUGETLBFS : u64 = 16 ; pub const UFFD_FEATURE_MISSING_SHMEM : u64 = 32 ; pub const UFFD_FEATURE_EVENT_UNMAP : u64 = 64 ; pub const UFFD_FEATURE_SIGBUS : u64 = 128 ; pub const UFFD_FEATURE_THREAD_ID : u64 = 256 ; pub type __s8 = :: std :: os :: raw :: c_schar ; pub type __u8 = :: std :: os :: raw :: c_uchar ; pub type __s16 = :: std :: os :: raw :: c_short ; pub type __u16 = :: std :: os :: raw :: c_ushort ; pub type __s32 = :: std :: os :: raw :: c_int ; pub type __u32 = :: std :: os :: raw :: c_uint ; pub type __s64 = :: std :: os :: raw :: c_longlong ; pub type __u64 = :: std :: os :: raw :: c_ulonglong ; pub type __poll_t = :: std :: os :: raw :: c_uint ; # [ repr ( C , packed ) ] # [ derive ( Copy , Clone ) ] pub struct uffd_msg { pub event : __u8 , pub reserved1 : __u8 , pub reserved2 : __u16 , pub reserved3 : __u32 , pub arg : uffd_msg__bindgen_ty_1 , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union uffd_msg__bindgen_ty_1 { pub pagefault : uffd_msg__bindgen_ty_1__bindgen_ty_1 , pub fork : uffd_msg__bindgen_ty_1__bindgen_ty_2 , pub remap : uffd_msg__bindgen_ty_1__bindgen_ty_3 , pub remove : uffd_msg__bindgen_ty_1__bindgen_ty_4 , pub reserved : uffd_msg__bindgen_ty_1__bindgen_ty_5 , _bindgen_union_align : [ u64 ; 3usize ] , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct uffd_msg__bindgen_ty_1__bindgen_ty_1 { pub flags : __u64 , pub address : __u64 , pub feat : uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { pub ptid : __u32 , _bindgen_union_align : u32 , } # [ test ] fn bindgen_test_layout_uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 > ( ) , 4usize , concat ! ( "Size of: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . ptid as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( ptid ) ) ) ; } # [ test ] fn bindgen_test_layout_uffd_msg__bindgen_ty_1__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < uffd_msg__bindgen_ty_1__bindgen_ty_1 > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < uffd_msg__bindgen_ty_1__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . flags as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . address as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( address ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . feat as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( feat ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct uffd_msg__bindgen_ty_1__bindgen_ty_2 { pub ufd : __u32 , } # [ test ] fn bindgen_test_layout_uffd_msg__bindgen_ty_1__bindgen_ty_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < uffd_msg__bindgen_ty_1__bindgen_ty_2 > ( ) , 4usize , concat ! ( "Size of: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_2 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < uffd_msg__bindgen_ty_1__bindgen_ty_2 > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . ufd as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( ufd ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct uffd_msg__bindgen_ty_1__bindgen_ty_3 { pub from : __u64 , pub to : __u64 , pub len : __u64 , } # [ test ] fn bindgen_test_layout_uffd_msg__bindgen_ty_1__bindgen_ty_3 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < uffd_msg__bindgen_ty_1__bindgen_ty_3 > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_3 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < uffd_msg__bindgen_ty_1__bindgen_ty_3 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_3 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1__bindgen_ty_3 > ( ) ) ) . from as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_3 ) , "::" , stringify ! ( from ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1__bindgen_ty_3 > ( ) ) ) . to as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_3 ) , "::" , stringify ! ( to ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1__bindgen_ty_3 > ( ) ) ) . len as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_3 ) , "::" , stringify ! ( len ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct uffd_msg__bindgen_ty_1__bindgen_ty_4 { pub start : __u64 , pub end : __u64 , } # [ test ] fn bindgen_test_layout_uffd_msg__bindgen_ty_1__bindgen_ty_4 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < uffd_msg__bindgen_ty_1__bindgen_ty_4 > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_4 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < uffd_msg__bindgen_ty_1__bindgen_ty_4 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_4 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1__bindgen_ty_4 > ( ) ) ) . start as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_4 ) , "::" , stringify ! ( start ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1__bindgen_ty_4 > ( ) ) ) . end as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_4 ) , "::" , stringify ! ( end ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct uffd_msg__bindgen_ty_1__bindgen_ty_5 { pub reserved1 : __u64 , pub reserved2 : __u64 , pub reserved3 : __u64 , } # [ test ] fn bindgen_test_layout_uffd_msg__bindgen_ty_1__bindgen_ty_5 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < uffd_msg__bindgen_ty_1__bindgen_ty_5 > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_5 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < uffd_msg__bindgen_ty_1__bindgen_ty_5 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_5 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1__bindgen_ty_5 > ( ) ) ) . reserved1 as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_5 ) , "::" , stringify ! ( reserved1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1__bindgen_ty_5 > ( ) ) ) . reserved2 as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_5 ) , "::" , stringify ! ( reserved2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1__bindgen_ty_5 > ( ) ) ) . reserved3 as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_5 ) , "::" , stringify ! ( reserved3 ) ) ) ; } # [ test ] fn bindgen_test_layout_uffd_msg__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < uffd_msg__bindgen_ty_1 > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( uffd_msg__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < uffd_msg__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( uffd_msg__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1 > ( ) ) ) . pagefault as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1 ) , "::" , stringify ! ( pagefault ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1 > ( ) ) ) . fork as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1 ) , "::" , stringify ! ( fork ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1 > ( ) ) ) . remap as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1 ) , "::" , stringify ! ( remap ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1 > ( ) ) ) . remove as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1 ) , "::" , stringify ! ( remove ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1 > ( ) ) ) . reserved as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1 ) , "::" , stringify ! ( reserved ) ) ) ; } # [ test ] fn bindgen_test_layout_uffd_msg ( ) { assert_eq ! ( :: std :: mem :: size_of :: < uffd_msg > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( uffd_msg ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < uffd_msg > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( uffd_msg ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg > ( ) ) ) . event as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg ) , "::" , stringify ! ( event ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg > ( ) ) ) . reserved1 as * const _ as usize } , 1usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg ) , "::" , stringify ! ( reserved1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg > ( ) ) ) . reserved2 as * const _ as usize } , 2usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg ) , "::" , stringify ! ( reserved2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg > ( ) ) ) . reserved3 as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg ) , "::" , stringify ! ( reserved3 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg > ( ) ) ) . arg as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg ) , "::" , stringify ! ( arg ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct uffdio_api { pub api : __u64 , pub features : __u64 , pub ioctls : __u64 , } # [ test ] fn bindgen_test_layout_uffdio_api ( ) { assert_eq ! ( :: std :: mem :: size_of :: < uffdio_api > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( uffdio_api ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < uffdio_api > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( uffdio_api ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_api > ( ) ) ) . api as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_api ) , "::" , stringify ! ( api ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_api > ( ) ) ) . features as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_api ) , "::" , stringify ! ( features ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_api > ( ) ) ) . ioctls as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_api ) , "::" , stringify ! ( ioctls ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct uffdio_range { pub start : __u64 , pub len : __u64 , } # [ test ] fn bindgen_test_layout_uffdio_range ( ) { assert_eq ! ( :: std :: mem :: size_of :: < uffdio_range > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( uffdio_range ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < uffdio_range > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( uffdio_range ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_range > ( ) ) ) . start as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_range ) , "::" , stringify ! ( start ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_range > ( ) ) ) . len as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_range ) , "::" , stringify ! ( len ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct uffdio_register { pub range : uffdio_range , pub mode : __u64 , pub ioctls : __u64 , } # [ test ] fn bindgen_test_layout_uffdio_register ( ) { assert_eq ! ( :: std :: mem :: size_of :: < uffdio_register > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( uffdio_register ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < uffdio_register > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( uffdio_register ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_register > ( ) ) ) . range as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_register ) , "::" , stringify ! ( range ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_register > ( ) ) ) . mode as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_register ) , "::" , stringify ! ( mode ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_register > ( ) ) ) . ioctls as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_register ) , "::" , stringify ! ( ioctls ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct uffdio_copy { pub dst : __u64 , pub src : __u64 , pub len : __u64 , pub mode : __u64 , pub copy : __s64 , } # [ test ] fn bindgen_test_layout_uffdio_copy ( ) { assert_eq ! ( :: std :: mem :: size_of :: < uffdio_copy > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( uffdio_copy ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < uffdio_copy > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( uffdio_copy ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_copy > ( ) ) ) . dst as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_copy ) , "::" , stringify ! ( dst ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_copy > ( ) ) ) . src as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_copy ) , "::" , stringify ! ( src ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_copy > ( ) ) ) . len as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_copy ) , "::" , stringify ! ( len ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_copy > ( ) ) ) . mode as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_copy ) , "::" , stringify ! ( mode ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_copy > ( ) ) ) . copy as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_copy ) , "::" , stringify ! ( copy ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct uffdio_zeropage { pub range : uffdio_range , pub mode : __u64 , pub zeropage : __s64 , } # [ test ] fn bindgen_test_layout_uffdio_zeropage ( ) { assert_eq ! ( :: std :: mem :: size_of :: < uffdio_zeropage > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( uffdio_zeropage ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < uffdio_zeropage > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( uffdio_zeropage ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_zeropage > ( ) ) ) . range as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_zeropage ) , "::" , stringify ! ( range ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_zeropage > ( ) ) ) . mode as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_zeropage ) , "::" , stringify ! ( mode ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_zeropage > ( ) ) ) . zeropage as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_zeropage ) , "::" , stringify ! ( zeropage ) ) ) ; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) [INFO] [stderr] [INFO] [stderr] error: reference to packed field is unaligned [INFO] [stderr] --> /opt/rustwide/target/debug/build/userfaultfd-sys-1452bdcf536a4306/out/bindings.rs:3:12149 [INFO] [stderr] | [INFO] [stderr] 3 | pub const _UFFDIO_REGISTER : u64 = 0 ; pub const _UFFDIO_UNREGISTER : u64 = 1 ; pub const _UFFDIO_WAKE : u64 = 2 ; pub const _UFFDIO_COPY : u64 = 3 ; pub const _UFFDIO_ZEROPAGE : u64 = 4 ; pub const _UFFDIO_API : u64 = 63 ; pub const UFFDIO : u8 = 170 ; pub const UFFD_EVENT_PAGEFAULT : u8 = 18 ; pub const UFFD_EVENT_FORK : u8 = 19 ; pub const UFFD_EVENT_REMAP : u8 = 20 ; pub const UFFD_EVENT_REMOVE : u8 = 21 ; pub const UFFD_EVENT_UNMAP : u8 = 22 ; pub const UFFD_PAGEFAULT_FLAG_WRITE : u64 = 1 ; pub const UFFD_PAGEFAULT_FLAG_WP : u64 = 2 ; pub const UFFD_FEATURE_PAGEFAULT_FLAG_WP : u64 = 1 ; pub const UFFD_FEATURE_EVENT_FORK : u64 = 2 ; pub const UFFD_FEATURE_EVENT_REMAP : u64 = 4 ; pub const UFFD_FEATURE_EVENT_REMOVE : u64 = 8 ; pub const UFFD_FEATURE_MISSING_HUGETLBFS : u64 = 16 ; pub const UFFD_FEATURE_MISSING_SHMEM : u64 = 32 ; pub const UFFD_FEATURE_EVENT_UNMAP : u64 = 64 ; pub const UFFD_FEATURE_SIGBUS : u64 = 128 ; pub const UFFD_FEATURE_THREAD_ID : u64 = 256 ; pub type __s8 = :: std :: os :: raw :: c_schar ; pub type __u8 = :: std :: os :: raw :: c_uchar ; pub type __s16 = :: std :: os :: raw :: c_short ; pub type __u16 = :: std :: os :: raw :: c_ushort ; pub type __s32 = :: std :: os :: raw :: c_int ; pub type __u32 = :: std :: os :: raw :: c_uint ; pub type __s64 = :: std :: os :: raw :: c_longlong ; pub type __u64 = :: std :: os :: raw :: c_ulonglong ; pub type __poll_t = :: std :: os :: raw :: c_uint ; # [ repr ( C , packed ) ] # [ derive ( Copy , Clone ) ] pub struct uffd_msg { pub event : __u8 , pub reserved1 : __u8 , pub reserved2 : __u16 , pub reserved3 : __u32 , pub arg : uffd_msg__bindgen_ty_1 , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union uffd_msg__bindgen_ty_1 { pub pagefault : uffd_msg__bindgen_ty_1__bindgen_ty_1 , pub fork : uffd_msg__bindgen_ty_1__bindgen_ty_2 , pub remap : uffd_msg__bindgen_ty_1__bindgen_ty_3 , pub remove : uffd_msg__bindgen_ty_1__bindgen_ty_4 , pub reserved : uffd_msg__bindgen_ty_1__bindgen_ty_5 , _bindgen_union_align : [ u64 ; 3usize ] , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub struct uffd_msg__bindgen_ty_1__bindgen_ty_1 { pub flags : __u64 , pub address : __u64 , pub feat : uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 , } # [ repr ( C ) ] # [ derive ( Copy , Clone ) ] pub union uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { pub ptid : __u32 , _bindgen_union_align : u32 , } # [ test ] fn bindgen_test_layout_uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 > ( ) , 4usize , concat ! ( "Size of: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . ptid as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( ptid ) ) ) ; } # [ test ] fn bindgen_test_layout_uffd_msg__bindgen_ty_1__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < uffd_msg__bindgen_ty_1__bindgen_ty_1 > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < uffd_msg__bindgen_ty_1__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . flags as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( flags ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . address as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( address ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1__bindgen_ty_1 > ( ) ) ) . feat as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! ( feat ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct uffd_msg__bindgen_ty_1__bindgen_ty_2 { pub ufd : __u32 , } # [ test ] fn bindgen_test_layout_uffd_msg__bindgen_ty_1__bindgen_ty_2 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < uffd_msg__bindgen_ty_1__bindgen_ty_2 > ( ) , 4usize , concat ! ( "Size of: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_2 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < uffd_msg__bindgen_ty_1__bindgen_ty_2 > ( ) , 4usize , concat ! ( "Alignment of " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1__bindgen_ty_2 > ( ) ) ) . ufd as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_2 ) , "::" , stringify ! ( ufd ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct uffd_msg__bindgen_ty_1__bindgen_ty_3 { pub from : __u64 , pub to : __u64 , pub len : __u64 , } # [ test ] fn bindgen_test_layout_uffd_msg__bindgen_ty_1__bindgen_ty_3 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < uffd_msg__bindgen_ty_1__bindgen_ty_3 > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_3 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < uffd_msg__bindgen_ty_1__bindgen_ty_3 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_3 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1__bindgen_ty_3 > ( ) ) ) . from as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_3 ) , "::" , stringify ! ( from ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1__bindgen_ty_3 > ( ) ) ) . to as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_3 ) , "::" , stringify ! ( to ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1__bindgen_ty_3 > ( ) ) ) . len as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_3 ) , "::" , stringify ! ( len ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct uffd_msg__bindgen_ty_1__bindgen_ty_4 { pub start : __u64 , pub end : __u64 , } # [ test ] fn bindgen_test_layout_uffd_msg__bindgen_ty_1__bindgen_ty_4 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < uffd_msg__bindgen_ty_1__bindgen_ty_4 > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_4 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < uffd_msg__bindgen_ty_1__bindgen_ty_4 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_4 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1__bindgen_ty_4 > ( ) ) ) . start as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_4 ) , "::" , stringify ! ( start ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1__bindgen_ty_4 > ( ) ) ) . end as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_4 ) , "::" , stringify ! ( end ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct uffd_msg__bindgen_ty_1__bindgen_ty_5 { pub reserved1 : __u64 , pub reserved2 : __u64 , pub reserved3 : __u64 , } # [ test ] fn bindgen_test_layout_uffd_msg__bindgen_ty_1__bindgen_ty_5 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < uffd_msg__bindgen_ty_1__bindgen_ty_5 > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_5 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < uffd_msg__bindgen_ty_1__bindgen_ty_5 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_5 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1__bindgen_ty_5 > ( ) ) ) . reserved1 as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_5 ) , "::" , stringify ! ( reserved1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1__bindgen_ty_5 > ( ) ) ) . reserved2 as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_5 ) , "::" , stringify ! ( reserved2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1__bindgen_ty_5 > ( ) ) ) . reserved3 as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1__bindgen_ty_5 ) , "::" , stringify ! ( reserved3 ) ) ) ; } # [ test ] fn bindgen_test_layout_uffd_msg__bindgen_ty_1 ( ) { assert_eq ! ( :: std :: mem :: size_of :: < uffd_msg__bindgen_ty_1 > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( uffd_msg__bindgen_ty_1 ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < uffd_msg__bindgen_ty_1 > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( uffd_msg__bindgen_ty_1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1 > ( ) ) ) . pagefault as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1 ) , "::" , stringify ! ( pagefault ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1 > ( ) ) ) . fork as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1 ) , "::" , stringify ! ( fork ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1 > ( ) ) ) . remap as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1 ) , "::" , stringify ! ( remap ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1 > ( ) ) ) . remove as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1 ) , "::" , stringify ! ( remove ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg__bindgen_ty_1 > ( ) ) ) . reserved as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg__bindgen_ty_1 ) , "::" , stringify ! ( reserved ) ) ) ; } # [ test ] fn bindgen_test_layout_uffd_msg ( ) { assert_eq ! ( :: std :: mem :: size_of :: < uffd_msg > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( uffd_msg ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < uffd_msg > ( ) , 1usize , concat ! ( "Alignment of " , stringify ! ( uffd_msg ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg > ( ) ) ) . event as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg ) , "::" , stringify ! ( event ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg > ( ) ) ) . reserved1 as * const _ as usize } , 1usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg ) , "::" , stringify ! ( reserved1 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg > ( ) ) ) . reserved2 as * const _ as usize } , 2usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg ) , "::" , stringify ! ( reserved2 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg > ( ) ) ) . reserved3 as * const _ as usize } , 4usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg ) , "::" , stringify ! ( reserved3 ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffd_msg > ( ) ) ) . arg as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( uffd_msg ) , "::" , stringify ! ( arg ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct uffdio_api { pub api : __u64 , pub features : __u64 , pub ioctls : __u64 , } # [ test ] fn bindgen_test_layout_uffdio_api ( ) { assert_eq ! ( :: std :: mem :: size_of :: < uffdio_api > ( ) , 24usize , concat ! ( "Size of: " , stringify ! ( uffdio_api ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < uffdio_api > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( uffdio_api ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_api > ( ) ) ) . api as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_api ) , "::" , stringify ! ( api ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_api > ( ) ) ) . features as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_api ) , "::" , stringify ! ( features ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_api > ( ) ) ) . ioctls as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_api ) , "::" , stringify ! ( ioctls ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct uffdio_range { pub start : __u64 , pub len : __u64 , } # [ test ] fn bindgen_test_layout_uffdio_range ( ) { assert_eq ! ( :: std :: mem :: size_of :: < uffdio_range > ( ) , 16usize , concat ! ( "Size of: " , stringify ! ( uffdio_range ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < uffdio_range > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( uffdio_range ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_range > ( ) ) ) . start as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_range ) , "::" , stringify ! ( start ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_range > ( ) ) ) . len as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_range ) , "::" , stringify ! ( len ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct uffdio_register { pub range : uffdio_range , pub mode : __u64 , pub ioctls : __u64 , } # [ test ] fn bindgen_test_layout_uffdio_register ( ) { assert_eq ! ( :: std :: mem :: size_of :: < uffdio_register > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( uffdio_register ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < uffdio_register > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( uffdio_register ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_register > ( ) ) ) . range as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_register ) , "::" , stringify ! ( range ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_register > ( ) ) ) . mode as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_register ) , "::" , stringify ! ( mode ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_register > ( ) ) ) . ioctls as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_register ) , "::" , stringify ! ( ioctls ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct uffdio_copy { pub dst : __u64 , pub src : __u64 , pub len : __u64 , pub mode : __u64 , pub copy : __s64 , } # [ test ] fn bindgen_test_layout_uffdio_copy ( ) { assert_eq ! ( :: std :: mem :: size_of :: < uffdio_copy > ( ) , 40usize , concat ! ( "Size of: " , stringify ! ( uffdio_copy ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < uffdio_copy > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( uffdio_copy ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_copy > ( ) ) ) . dst as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_copy ) , "::" , stringify ! ( dst ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_copy > ( ) ) ) . src as * const _ as usize } , 8usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_copy ) , "::" , stringify ! ( src ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_copy > ( ) ) ) . len as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_copy ) , "::" , stringify ! ( len ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_copy > ( ) ) ) . mode as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_copy ) , "::" , stringify ! ( mode ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_copy > ( ) ) ) . copy as * const _ as usize } , 32usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_copy ) , "::" , stringify ! ( copy ) ) ) ; } # [ repr ( C ) ] # [ derive ( Debug , Copy , Clone ) ] pub struct uffdio_zeropage { pub range : uffdio_range , pub mode : __u64 , pub zeropage : __s64 , } # [ test ] fn bindgen_test_layout_uffdio_zeropage ( ) { assert_eq ! ( :: std :: mem :: size_of :: < uffdio_zeropage > ( ) , 32usize , concat ! ( "Size of: " , stringify ! ( uffdio_zeropage ) ) ) ; assert_eq ! ( :: std :: mem :: align_of :: < uffdio_zeropage > ( ) , 8usize , concat ! ( "Alignment of " , stringify ! ( uffdio_zeropage ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_zeropage > ( ) ) ) . range as * const _ as usize } , 0usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_zeropage ) , "::" , stringify ! ( range ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_zeropage > ( ) ) ) . mode as * const _ as usize } , 16usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_zeropage ) , "::" , stringify ! ( mode ) ) ) ; assert_eq ! ( unsafe { & ( * ( :: std :: ptr :: null :: < uffdio_zeropage > ( ) ) ) . zeropage as * const _ as usize } , 24usize , concat ! ( "Offset of field: " , stringify ! ( uffdio_zeropage ) , "::" , stringify ! ( zeropage ) ) ) ; } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) [INFO] [stderr] [INFO] [stderr] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] error: could not compile `userfaultfd-sys`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "56bf201c99bde31f3de58bcbaf3833bd60cb6857e32efa8081f10d781a3459d3"` [INFO] running `"docker" "rm" "-f" "56bf201c99bde31f3de58bcbaf3833bd60cb6857e32efa8081f10d781a3459d3"` [INFO] [stdout] 56bf201c99bde31f3de58bcbaf3833bd60cb6857e32efa8081f10d781a3459d3