diff options
author | Ludovic Barman <ludovicb@google.com> | 2024-01-05 11:21:00 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2024-01-05 11:21:00 +0000 |
commit | 21e13e43fe25aaaa6ac2324f444d3ec08a10f818 (patch) | |
tree | 6615bddb635b73f47409218a2e4a00e5db3f92de | |
parent | bf7e1484f16bc73af6da3da11d04e38d5b40f962 (diff) | |
parent | 45811f60b78b5c05a8c525a42551f243331b0ce0 (diff) | |
download | userfaultfd-sys-21e13e43fe25aaaa6ac2324f444d3ec08a10f818.tar.gz |
Upgrade userfaultfd-sys to 0.5.0 am: f1ac6acd0b am: e8235061b2 am: 45811f60b7
Original change: https://android-review.googlesource.com/c/platform/external/rust/crates/userfaultfd-sys/+/2878121
Change-Id: I24d81ff148b968675a4b99609e3cd54bdcf092c6
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | .cargo_vcs_info.json | 2 | ||||
-rw-r--r-- | Android.bp | 2 | ||||
-rw-r--r-- | Cargo.toml | 4 | ||||
-rw-r--r-- | Cargo.toml.orig | 4 | ||||
-rw-r--r-- | METADATA | 21 | ||||
-rw-r--r-- | src/consts.c | 4 | ||||
-rw-r--r-- | src/out/bindings.rs | 1303 | ||||
-rw-r--r-- | wrapper.h | 6 |
8 files changed, 531 insertions, 815 deletions
diff --git a/.cargo_vcs_info.json b/.cargo_vcs_info.json index 9652dcc..fd6166e 100644 --- a/.cargo_vcs_info.json +++ b/.cargo_vcs_info.json @@ -1,6 +1,6 @@ { "git": { - "sha1": "cb2cd6d359b715e24144242e4580679897268ffd" + "sha1": "afcbd90872e7fa0fca2c416e786e4d62e948bced" }, "path_in_vcs": "userfaultfd-sys" }
\ No newline at end of file @@ -44,7 +44,7 @@ rust_library { host_supported: true, crate_name: "userfaultfd_sys", cargo_env_compat: true, - cargo_pkg_version: "0.4.3", + cargo_pkg_version: "0.5.0", srcs: ["src/lib.rs"], edition: "2018", features: ["default"], @@ -12,7 +12,7 @@ [package] edition = "2018" name = "userfaultfd-sys" -version = "0.4.3" +version = "0.5.0" authors = ["The Wasmtime Project Developers"] build = "build.rs" description = "Low-level bindings for userfaultfd functionality on Linux." @@ -23,7 +23,7 @@ repository = "https://github.com/bytecodealliance/userfaultfd-rs" version = "^1.0.0" [build-dependencies.bindgen] -version = "^0.60.1" +version = "^0.68.1" features = ["runtime"] default-features = false diff --git a/Cargo.toml.orig b/Cargo.toml.orig index 840d295..9062ce7 100644 --- a/Cargo.toml.orig +++ b/Cargo.toml.orig @@ -1,6 +1,6 @@ [package] name = "userfaultfd-sys" -version = "0.4.3" +version = "0.5.0" authors = ["The Wasmtime Project Developers"] edition = "2018" license = "MIT OR Apache-2.0" @@ -13,7 +13,7 @@ build = "build.rs" cfg-if = "^1.0.0" [build-dependencies] -bindgen = { version = "^0.60.1", default-features = false, features = ["runtime"] } +bindgen = { version = "^0.68.1", default-features = false, features = ["runtime"] } cc = "1.0" [features] @@ -1,23 +1,20 @@ # This project was upgraded with external_updater. # Usage: tools/external_updater/updater.sh update rust/crates/userfaultfd-sys -# For more info, check https://cs.android.com/android/platform/superproject/+/master:tools/external_updater/README.md +# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md name: "userfaultfd-sys" description: "Low-level bindings for userfaultfd functionality on Linux." third_party { - url { - type: HOMEPAGE - value: "https://crates.io/crates/userfaultfd-sys" - } - url { - type: ARCHIVE - value: "https://static.crates.io/crates/userfaultfd-sys/userfaultfd-sys-0.4.3.crate" - } - version: "0.4.3" license_type: NOTICE last_upgrade_date { year: 2023 - month: 3 - day: 30 + month: 12 + day: 16 + } + homepage: "https://crates.io/crates/userfaultfd-sys" + identifier { + type: "Archive" + value: "https://static.crates.io/crates/userfaultfd-sys/userfaultfd-sys-0.5.0.crate" + version: "0.5.0" } } diff --git a/src/consts.c b/src/consts.c index e19ca74..df78dbb 100644 --- a/src/consts.c +++ b/src/consts.c @@ -69,3 +69,7 @@ const __u32 _const_UFFDIO_ZEROPAGE = UFFDIO_ZEROPAGE; #ifdef UFFDIO_WRITEPROTECT const __u32 _const_UFFDIO_WRITEPROTECT = UFFDIO_WRITEPROTECT; #endif + +#ifdef USERFAULTFD_IOC +const __u32 _const_USERFAULTFD_IOC = USERFAULTFD_IOC; +#endif diff --git a/src/out/bindings.rs b/src/out/bindings.rs index 45e46fb..cff34be 100644 --- a/src/out/bindings.rs +++ b/src/out/bindings.rs @@ -1,5 +1,6 @@ -/* automatically generated by rust-bindgen 0.60.1 */ +/* automatically generated by rust-bindgen 0.68.1 */ +pub const USERFAULTFD_IOC: u32 = 170; pub const _UFFDIO_REGISTER: u64 = 0; pub const _UFFDIO_UNREGISTER: u64 = 1; pub const _UFFDIO_WAKE: u64 = 2; @@ -30,6 +31,7 @@ pub const UFFD_FEATURE_MINOR_HUGETLBFS: u64 = 512; pub const UFFD_FEATURE_MINOR_SHMEM: u64 = 1024; pub const UFFD_FEATURE_EXACT_ADDRESS: u64 = 2048; pub const UFFD_FEATURE_WP_HUGETLBFS_SHMEM: u64 = 4096; +pub const UFFD_FEATURE_WP_UNPOPULATED: u64 = 8192; pub const UFFD_USER_MODE_ONLY: u32 = 1; pub type __s8 = ::std::os::raw::c_schar; pub type __u8 = ::std::os::raw::c_uchar; @@ -46,6 +48,8 @@ pub struct __kernel_fd_set { } #[test] fn bindgen_test_layout___kernel_fd_set() { + const UNINIT: ::std::mem::MaybeUninit<__kernel_fd_set> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<__kernel_fd_set>(), 128usize, @@ -56,23 +60,16 @@ fn bindgen_test_layout___kernel_fd_set() { 8usize, concat!("Alignment of ", stringify!(__kernel_fd_set)) ); - fn test_field_fds_bits() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::<__kernel_fd_set>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).fds_bits) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__kernel_fd_set), - "::", - stringify!(fds_bits) - ) - ); - } - test_field_fds_bits(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).fds_bits) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__kernel_fd_set), + "::", + stringify!(fds_bits) + ) + ); } pub type __kernel_sighandler_t = ::std::option::Option<unsafe extern "C" fn(arg1: ::std::os::raw::c_int)>; @@ -103,6 +100,8 @@ pub struct __kernel_fsid_t { } #[test] fn bindgen_test_layout___kernel_fsid_t() { + const UNINIT: ::std::mem::MaybeUninit<__kernel_fsid_t> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<__kernel_fsid_t>(), 8usize, @@ -113,23 +112,16 @@ fn bindgen_test_layout___kernel_fsid_t() { 4usize, concat!("Alignment of ", stringify!(__kernel_fsid_t)) ); - fn test_field_val() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::<__kernel_fsid_t>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__kernel_fsid_t), - "::", - stringify!(val) - ) - ); - } - test_field_val(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(__kernel_fsid_t), + "::", + stringify!(val) + ) + ); } pub type __kernel_off_t = __kernel_long_t; pub type __kernel_loff_t = ::std::os::raw::c_longlong; @@ -142,6 +134,8 @@ pub type __kernel_clockid_t = ::std::os::raw::c_int; pub type __kernel_caddr_t = *mut ::std::os::raw::c_char; pub type __kernel_uid16_t = ::std::os::raw::c_ushort; pub type __kernel_gid16_t = ::std::os::raw::c_ushort; +pub type __s128 = i128; +pub type __u128 = u128; pub type __poll_t = ::std::os::raw::c_uint; #[repr(C, packed)] #[derive(Copy, Clone)] @@ -175,6 +169,9 @@ pub union uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { } #[test] fn bindgen_test_layout_uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1() { + const UNINIT: ::std::mem::MaybeUninit<uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>(), 4usize, @@ -191,28 +188,22 @@ fn bindgen_test_layout_uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1() { stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1) ) ); - fn test_field_ptid() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::< - uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1, - >::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).ptid) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(ptid) - ) - ); - } - test_field_ptid(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ptid) as usize - ptr 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() { + const UNINIT: ::std::mem::MaybeUninit<uffd_msg__bindgen_ty_1__bindgen_ty_1> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<uffd_msg__bindgen_ty_1__bindgen_ty_1>(), 24usize, @@ -229,60 +220,36 @@ fn bindgen_test_layout_uffd_msg__bindgen_ty_1__bindgen_ty_1() { stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_1) ) ); - fn test_field_flags() { - assert_eq!( - unsafe { - let uninit = - ::std::mem::MaybeUninit::<uffd_msg__bindgen_ty_1__bindgen_ty_1>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(flags) - ) - ); - } - test_field_flags(); - fn test_field_address() { - assert_eq!( - unsafe { - let uninit = - ::std::mem::MaybeUninit::<uffd_msg__bindgen_ty_1__bindgen_ty_1>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(address) - ) - ); - } - test_field_address(); - fn test_field_feat() { - assert_eq!( - unsafe { - let uninit = - ::std::mem::MaybeUninit::<uffd_msg__bindgen_ty_1__bindgen_ty_1>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).feat) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(feat) - ) - ); - } - test_field_feat(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(address) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).feat) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(feat) + ) + ); } #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -291,6 +258,9 @@ pub struct uffd_msg__bindgen_ty_1__bindgen_ty_2 { } #[test] fn bindgen_test_layout_uffd_msg__bindgen_ty_1__bindgen_ty_2() { + const UNINIT: ::std::mem::MaybeUninit<uffd_msg__bindgen_ty_1__bindgen_ty_2> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<uffd_msg__bindgen_ty_1__bindgen_ty_2>(), 4usize, @@ -307,24 +277,16 @@ fn bindgen_test_layout_uffd_msg__bindgen_ty_1__bindgen_ty_2() { stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_2) ) ); - fn test_field_ufd() { - assert_eq!( - unsafe { - let uninit = - ::std::mem::MaybeUninit::<uffd_msg__bindgen_ty_1__bindgen_ty_2>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).ufd) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(ufd) - ) - ); - } - test_field_ufd(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ufd) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_2), + "::", + stringify!(ufd) + ) + ); } #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -335,6 +297,9 @@ pub struct uffd_msg__bindgen_ty_1__bindgen_ty_3 { } #[test] fn bindgen_test_layout_uffd_msg__bindgen_ty_1__bindgen_ty_3() { + const UNINIT: ::std::mem::MaybeUninit<uffd_msg__bindgen_ty_1__bindgen_ty_3> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<uffd_msg__bindgen_ty_1__bindgen_ty_3>(), 24usize, @@ -351,60 +316,36 @@ fn bindgen_test_layout_uffd_msg__bindgen_ty_1__bindgen_ty_3() { stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_3) ) ); - fn test_field_from() { - assert_eq!( - unsafe { - let uninit = - ::std::mem::MaybeUninit::<uffd_msg__bindgen_ty_1__bindgen_ty_3>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).from) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(from) - ) - ); - } - test_field_from(); - fn test_field_to() { - assert_eq!( - unsafe { - let uninit = - ::std::mem::MaybeUninit::<uffd_msg__bindgen_ty_1__bindgen_ty_3>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).to) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(to) - ) - ); - } - test_field_to(); - fn test_field_len() { - assert_eq!( - unsafe { - let uninit = - ::std::mem::MaybeUninit::<uffd_msg__bindgen_ty_1__bindgen_ty_3>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(len) - ) - ); - } - test_field_len(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).from) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_3), + "::", + stringify!(from) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).to) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_3), + "::", + stringify!(to) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_3), + "::", + stringify!(len) + ) + ); } #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -414,6 +355,9 @@ pub struct uffd_msg__bindgen_ty_1__bindgen_ty_4 { } #[test] fn bindgen_test_layout_uffd_msg__bindgen_ty_1__bindgen_ty_4() { + const UNINIT: ::std::mem::MaybeUninit<uffd_msg__bindgen_ty_1__bindgen_ty_4> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<uffd_msg__bindgen_ty_1__bindgen_ty_4>(), 16usize, @@ -430,42 +374,26 @@ fn bindgen_test_layout_uffd_msg__bindgen_ty_1__bindgen_ty_4() { stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_4) ) ); - fn test_field_start() { - assert_eq!( - unsafe { - let uninit = - ::std::mem::MaybeUninit::<uffd_msg__bindgen_ty_1__bindgen_ty_4>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_4), - "::", - stringify!(start) - ) - ); - } - test_field_start(); - fn test_field_end() { - assert_eq!( - unsafe { - let uninit = - ::std::mem::MaybeUninit::<uffd_msg__bindgen_ty_1__bindgen_ty_4>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_4), - "::", - stringify!(end) - ) - ); - } - test_field_end(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_4), + "::", + stringify!(start) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_4), + "::", + stringify!(end) + ) + ); } #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -476,6 +404,9 @@ pub struct uffd_msg__bindgen_ty_1__bindgen_ty_5 { } #[test] fn bindgen_test_layout_uffd_msg__bindgen_ty_1__bindgen_ty_5() { + const UNINIT: ::std::mem::MaybeUninit<uffd_msg__bindgen_ty_1__bindgen_ty_5> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<uffd_msg__bindgen_ty_1__bindgen_ty_5>(), 24usize, @@ -492,63 +423,42 @@ fn bindgen_test_layout_uffd_msg__bindgen_ty_1__bindgen_ty_5() { stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_5) ) ); - fn test_field_reserved1() { - assert_eq!( - unsafe { - let uninit = - ::std::mem::MaybeUninit::<uffd_msg__bindgen_ty_1__bindgen_ty_5>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(reserved1) - ) - ); - } - test_field_reserved1(); - fn test_field_reserved2() { - assert_eq!( - unsafe { - let uninit = - ::std::mem::MaybeUninit::<uffd_msg__bindgen_ty_1__bindgen_ty_5>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(reserved2) - ) - ); - } - test_field_reserved2(); - fn test_field_reserved3() { - assert_eq!( - unsafe { - let uninit = - ::std::mem::MaybeUninit::<uffd_msg__bindgen_ty_1__bindgen_ty_5>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).reserved3) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(reserved3) - ) - ); - } - test_field_reserved3(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_5), + "::", + stringify!(reserved1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(uffd_msg__bindgen_ty_1__bindgen_ty_5), + "::", + stringify!(reserved2) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).reserved3) as usize - ptr 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() { + const UNINIT: ::std::mem::MaybeUninit<uffd_msg__bindgen_ty_1> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<uffd_msg__bindgen_ty_1>(), 24usize, @@ -559,94 +469,61 @@ fn bindgen_test_layout_uffd_msg__bindgen_ty_1() { 8usize, concat!("Alignment of ", stringify!(uffd_msg__bindgen_ty_1)) ); - fn test_field_pagefault() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::<uffd_msg__bindgen_ty_1>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).pagefault) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(uffd_msg__bindgen_ty_1), - "::", - stringify!(pagefault) - ) - ); - } - test_field_pagefault(); - fn test_field_fork() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::<uffd_msg__bindgen_ty_1>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).fork) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(uffd_msg__bindgen_ty_1), - "::", - stringify!(fork) - ) - ); - } - test_field_fork(); - fn test_field_remap() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::<uffd_msg__bindgen_ty_1>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).remap) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(uffd_msg__bindgen_ty_1), - "::", - stringify!(remap) - ) - ); - } - test_field_remap(); - fn test_field_remove() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::<uffd_msg__bindgen_ty_1>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(uffd_msg__bindgen_ty_1), - "::", - stringify!(remove) - ) - ); - } - test_field_remove(); - fn test_field_reserved() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::<uffd_msg__bindgen_ty_1>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(uffd_msg__bindgen_ty_1), - "::", - stringify!(reserved) - ) - ); - } - test_field_reserved(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pagefault) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(uffd_msg__bindgen_ty_1), + "::", + stringify!(pagefault) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).fork) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(uffd_msg__bindgen_ty_1), + "::", + stringify!(fork) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).remap) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(uffd_msg__bindgen_ty_1), + "::", + stringify!(remap) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(uffd_msg__bindgen_ty_1), + "::", + stringify!(remove) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(uffd_msg__bindgen_ty_1), + "::", + stringify!(reserved) + ) + ); } #[test] fn bindgen_test_layout_uffd_msg() { + const UNINIT: ::std::mem::MaybeUninit<uffd_msg> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<uffd_msg>(), 32usize, @@ -657,91 +534,56 @@ fn bindgen_test_layout_uffd_msg() { 1usize, concat!("Alignment of ", stringify!(uffd_msg)) ); - fn test_field_event() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::<uffd_msg>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).event) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(uffd_msg), - "::", - stringify!(event) - ) - ); - } - test_field_event(); - fn test_field_reserved1() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::<uffd_msg>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize - }, - 1usize, - concat!( - "Offset of field: ", - stringify!(uffd_msg), - "::", - stringify!(reserved1) - ) - ); - } - test_field_reserved1(); - fn test_field_reserved2() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::<uffd_msg>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize - }, - 2usize, - concat!( - "Offset of field: ", - stringify!(uffd_msg), - "::", - stringify!(reserved2) - ) - ); - } - test_field_reserved2(); - fn test_field_reserved3() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::<uffd_msg>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).reserved3) as usize - ptr as usize - }, - 4usize, - concat!( - "Offset of field: ", - stringify!(uffd_msg), - "::", - stringify!(reserved3) - ) - ); - } - test_field_reserved3(); - fn test_field_arg() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::<uffd_msg>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).arg) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(uffd_msg), - "::", - stringify!(arg) - ) - ); - } - test_field_arg(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).event) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(uffd_msg), + "::", + stringify!(event) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).reserved1) as usize - ptr as usize }, + 1usize, + concat!( + "Offset of field: ", + stringify!(uffd_msg), + "::", + stringify!(reserved1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(uffd_msg), + "::", + stringify!(reserved2) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).reserved3) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(uffd_msg), + "::", + stringify!(reserved3) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).arg) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(uffd_msg), + "::", + stringify!(arg) + ) + ); } #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -752,6 +594,8 @@ pub struct uffdio_api { } #[test] fn bindgen_test_layout_uffdio_api() { + const UNINIT: ::std::mem::MaybeUninit<uffdio_api> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<uffdio_api>(), 24usize, @@ -762,57 +606,36 @@ fn bindgen_test_layout_uffdio_api() { 8usize, concat!("Alignment of ", stringify!(uffdio_api)) ); - fn test_field_api() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::<uffdio_api>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).api) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(uffdio_api), - "::", - stringify!(api) - ) - ); - } - test_field_api(); - fn test_field_features() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::<uffdio_api>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).features) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(uffdio_api), - "::", - stringify!(features) - ) - ); - } - test_field_features(); - fn test_field_ioctls() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::<uffdio_api>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).ioctls) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(uffdio_api), - "::", - stringify!(ioctls) - ) - ); - } - test_field_ioctls(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).api) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(uffdio_api), + "::", + stringify!(api) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).features) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(uffdio_api), + "::", + stringify!(features) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ioctls) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(uffdio_api), + "::", + stringify!(ioctls) + ) + ); } #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -822,6 +645,8 @@ pub struct uffdio_range { } #[test] fn bindgen_test_layout_uffdio_range() { + const UNINIT: ::std::mem::MaybeUninit<uffdio_range> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<uffdio_range>(), 16usize, @@ -832,40 +657,26 @@ fn bindgen_test_layout_uffdio_range() { 8usize, concat!("Alignment of ", stringify!(uffdio_range)) ); - fn test_field_start() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::<uffdio_range>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(uffdio_range), - "::", - stringify!(start) - ) - ); - } - test_field_start(); - fn test_field_len() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::<uffdio_range>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(uffdio_range), - "::", - stringify!(len) - ) - ); - } - test_field_len(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(uffdio_range), + "::", + stringify!(start) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(uffdio_range), + "::", + stringify!(len) + ) + ); } #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -876,6 +687,8 @@ pub struct uffdio_register { } #[test] fn bindgen_test_layout_uffdio_register() { + const UNINIT: ::std::mem::MaybeUninit<uffdio_register> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<uffdio_register>(), 32usize, @@ -886,57 +699,36 @@ fn bindgen_test_layout_uffdio_register() { 8usize, concat!("Alignment of ", stringify!(uffdio_register)) ); - fn test_field_range() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::<uffdio_register>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).range) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(uffdio_register), - "::", - stringify!(range) - ) - ); - } - test_field_range(); - fn test_field_mode() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::<uffdio_register>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(uffdio_register), - "::", - stringify!(mode) - ) - ); - } - test_field_mode(); - fn test_field_ioctls() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::<uffdio_register>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).ioctls) as usize - ptr as usize - }, - 24usize, - concat!( - "Offset of field: ", - stringify!(uffdio_register), - "::", - stringify!(ioctls) - ) - ); - } - test_field_ioctls(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).range) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(uffdio_register), + "::", + stringify!(range) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(uffdio_register), + "::", + stringify!(mode) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ioctls) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(uffdio_register), + "::", + stringify!(ioctls) + ) + ); } #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -949,6 +741,8 @@ pub struct uffdio_copy { } #[test] fn bindgen_test_layout_uffdio_copy() { + const UNINIT: ::std::mem::MaybeUninit<uffdio_copy> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<uffdio_copy>(), 40usize, @@ -959,91 +753,56 @@ fn bindgen_test_layout_uffdio_copy() { 8usize, concat!("Alignment of ", stringify!(uffdio_copy)) ); - fn test_field_dst() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::<uffdio_copy>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).dst) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(uffdio_copy), - "::", - stringify!(dst) - ) - ); - } - test_field_dst(); - fn test_field_src() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::<uffdio_copy>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).src) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(uffdio_copy), - "::", - stringify!(src) - ) - ); - } - test_field_src(); - fn test_field_len() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::<uffdio_copy>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(uffdio_copy), - "::", - stringify!(len) - ) - ); - } - test_field_len(); - fn test_field_mode() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::<uffdio_copy>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize - }, - 24usize, - concat!( - "Offset of field: ", - stringify!(uffdio_copy), - "::", - stringify!(mode) - ) - ); - } - test_field_mode(); - fn test_field_copy() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::<uffdio_copy>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).copy) as usize - ptr as usize - }, - 32usize, - concat!( - "Offset of field: ", - stringify!(uffdio_copy), - "::", - stringify!(copy) - ) - ); - } - test_field_copy(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dst) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(uffdio_copy), + "::", + stringify!(dst) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).src) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(uffdio_copy), + "::", + stringify!(src) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(uffdio_copy), + "::", + stringify!(len) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(uffdio_copy), + "::", + stringify!(mode) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).copy) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(uffdio_copy), + "::", + stringify!(copy) + ) + ); } #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -1054,6 +813,8 @@ pub struct uffdio_zeropage { } #[test] fn bindgen_test_layout_uffdio_zeropage() { + const UNINIT: ::std::mem::MaybeUninit<uffdio_zeropage> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<uffdio_zeropage>(), 32usize, @@ -1064,57 +825,36 @@ fn bindgen_test_layout_uffdio_zeropage() { 8usize, concat!("Alignment of ", stringify!(uffdio_zeropage)) ); - fn test_field_range() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::<uffdio_zeropage>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).range) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(uffdio_zeropage), - "::", - stringify!(range) - ) - ); - } - test_field_range(); - fn test_field_mode() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::<uffdio_zeropage>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(uffdio_zeropage), - "::", - stringify!(mode) - ) - ); - } - test_field_mode(); - fn test_field_zeropage() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::<uffdio_zeropage>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).zeropage) as usize - ptr as usize - }, - 24usize, - concat!( - "Offset of field: ", - stringify!(uffdio_zeropage), - "::", - stringify!(zeropage) - ) - ); - } - test_field_zeropage(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).range) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(uffdio_zeropage), + "::", + stringify!(range) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(uffdio_zeropage), + "::", + stringify!(mode) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).zeropage) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(uffdio_zeropage), + "::", + stringify!(zeropage) + ) + ); } #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -1124,6 +864,8 @@ pub struct uffdio_writeprotect { } #[test] fn bindgen_test_layout_uffdio_writeprotect() { + const UNINIT: ::std::mem::MaybeUninit<uffdio_writeprotect> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<uffdio_writeprotect>(), 24usize, @@ -1134,40 +876,26 @@ fn bindgen_test_layout_uffdio_writeprotect() { 8usize, concat!("Alignment of ", stringify!(uffdio_writeprotect)) ); - fn test_field_range() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::<uffdio_writeprotect>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).range) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(uffdio_writeprotect), - "::", - stringify!(range) - ) - ); - } - test_field_range(); - fn test_field_mode() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::<uffdio_writeprotect>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(uffdio_writeprotect), - "::", - stringify!(mode) - ) - ); - } - test_field_mode(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).range) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(uffdio_writeprotect), + "::", + stringify!(range) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(uffdio_writeprotect), + "::", + stringify!(mode) + ) + ); } #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -1178,6 +906,8 @@ pub struct uffdio_continue { } #[test] fn bindgen_test_layout_uffdio_continue() { + const UNINIT: ::std::mem::MaybeUninit<uffdio_continue> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<uffdio_continue>(), 32usize, @@ -1188,55 +918,34 @@ fn bindgen_test_layout_uffdio_continue() { 8usize, concat!("Alignment of ", stringify!(uffdio_continue)) ); - fn test_field_range() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::<uffdio_continue>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).range) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(uffdio_continue), - "::", - stringify!(range) - ) - ); - } - test_field_range(); - fn test_field_mode() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::<uffdio_continue>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(uffdio_continue), - "::", - stringify!(mode) - ) - ); - } - test_field_mode(); - fn test_field_mapped() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::<uffdio_continue>::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).mapped) as usize - ptr as usize - }, - 24usize, - concat!( - "Offset of field: ", - stringify!(uffdio_continue), - "::", - stringify!(mapped) - ) - ); - } - test_field_mapped(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).range) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(uffdio_continue), + "::", + stringify!(range) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(uffdio_continue), + "::", + stringify!(mode) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).mapped) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(uffdio_continue), + "::", + stringify!(mapped) + ) + ); } @@ -4,3 +4,9 @@ // userfaultfd-sys has the same exports on all kernels #define UFFD_USER_MODE_ONLY 1 #endif + + +#ifndef USERFAULTFD_IOC +// Similarly, the ioctl() for `/dev/userfaultfd` is introduced with Linux 6.1. +#define USERFAULTFD_IOC 0xAA +#endif |