From 22f9ef17d22ca46feb6e51a9693ed6a77e597f13 Mon Sep 17 00:00:00 2001 From: Takahiro Itazuri Date: Fri, 22 Mar 2024 21:04:50 +0000 Subject: [PATCH 1/2] fix(tool): Fix bindgen.sh `bindgen.sh` was broken for the following reasons: - `--size_t-is-usize` was removed since it became default behavior. - `*_gen` crates were moved under `vmm` crate and patching `iff.rs` no longer works. - `io_uring` crate was moved under `vmm` crate and the bindings path became wrong. Fix `bindgen.sh` and regenerates bindings. Signed-off-by: Takahiro Itazuri --- src/vmm/src/arch_gen/x86/hyperv.rs | 2 +- src/vmm/src/arch_gen/x86/hyperv_tlfs.rs | 2 +- src/vmm/src/arch_gen/x86/mpspec.rs | 1543 ++++------ src/vmm/src/arch_gen/x86/msr_index.rs | 9 +- src/vmm/src/arch_gen/x86/perf_event.rs | 2 +- src/vmm/src/devices/virtio/gen/virtio_blk.rs | 11 +- src/vmm/src/devices/virtio/gen/virtio_net.rs | 389 ++- src/vmm/src/devices/virtio/gen/virtio_ring.rs | 2 +- src/vmm/src/devices/virtio/gen/virtio_rng.rs | 2 +- src/vmm/src/devices/virtio/net/gen/if_tun.rs | 175 +- src/vmm/src/devices/virtio/net/gen/iff.rs | 1764 +++++------ src/vmm/src/devices/virtio/net/gen/sockios.rs | 7 +- src/vmm/src/io_uring/bindings.rs | 2619 ++++++++--------- ...hange-c_char-to-c_uchar-in-ifrn_name.patch | 26 + ...hange-c-char-to-c-uchar-in-ifrn-name.patch | 11 - tools/bindgen.sh | 17 +- 16 files changed, 2917 insertions(+), 3664 deletions(-) create mode 100644 tools/bindgen-patches/0001-change-c_char-to-c_uchar-in-ifrn_name.patch delete mode 100644 tools/bindgen-patches/net_gen/0001-change-c-char-to-c-uchar-in-ifrn-name.patch diff --git a/src/vmm/src/arch_gen/x86/hyperv.rs b/src/vmm/src/arch_gen/x86/hyperv.rs index 8e312fa6654..1f1e3caed51 100644 --- a/src/vmm/src/arch_gen/x86/hyperv.rs +++ b/src/vmm/src/arch_gen/x86/hyperv.rs @@ -1,4 +1,4 @@ -// Copyright 2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. +// Copyright 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 // automatically generated by tools/bindgen.sh diff --git a/src/vmm/src/arch_gen/x86/hyperv_tlfs.rs b/src/vmm/src/arch_gen/x86/hyperv_tlfs.rs index 02750ebd4e6..9c7b667b465 100644 --- a/src/vmm/src/arch_gen/x86/hyperv_tlfs.rs +++ b/src/vmm/src/arch_gen/x86/hyperv_tlfs.rs @@ -1,4 +1,4 @@ -// Copyright 2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. +// Copyright 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 // automatically generated by tools/bindgen.sh diff --git a/src/vmm/src/arch_gen/x86/mpspec.rs b/src/vmm/src/arch_gen/x86/mpspec.rs index 9ed50be7a23..8d561474abc 100644 --- a/src/vmm/src/arch_gen/x86/mpspec.rs +++ b/src/vmm/src/arch_gen/x86/mpspec.rs @@ -1,4 +1,4 @@ -// Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. +// Copyright 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 // automatically generated by tools/bindgen.sh @@ -15,7 +15,7 @@ clippy::tests_outside_test_module )] -pub const MPC_SIGNATURE: &[u8; 5usize] = b"PCMP\0"; +pub const MPC_SIGNATURE: &[u8; 5] = b"PCMP\0"; pub const MP_PROCESSOR: u32 = 0; pub const MP_BUS: u32 = 1; pub const MP_IOAPIC: u32 = 2; @@ -27,24 +27,24 @@ pub const CPU_BOOTPROCESSOR: u32 = 2; pub const CPU_STEPPING_MASK: u32 = 15; pub const CPU_MODEL_MASK: u32 = 240; pub const CPU_FAMILY_MASK: u32 = 3840; -pub const BUSTYPE_EISA: &[u8; 5usize] = b"EISA\0"; -pub const BUSTYPE_ISA: &[u8; 4usize] = b"ISA\0"; -pub const BUSTYPE_INTERN: &[u8; 7usize] = b"INTERN\0"; -pub const BUSTYPE_MCA: &[u8; 4usize] = b"MCA\0"; -pub const BUSTYPE_VL: &[u8; 3usize] = b"VL\0"; -pub const BUSTYPE_PCI: &[u8; 4usize] = b"PCI\0"; -pub const BUSTYPE_PCMCIA: &[u8; 7usize] = b"PCMCIA\0"; -pub const BUSTYPE_CBUS: &[u8; 5usize] = b"CBUS\0"; -pub const BUSTYPE_CBUSII: &[u8; 7usize] = b"CBUSII\0"; -pub const BUSTYPE_FUTURE: &[u8; 7usize] = b"FUTURE\0"; -pub const BUSTYPE_MBI: &[u8; 4usize] = b"MBI\0"; -pub const BUSTYPE_MBII: &[u8; 5usize] = b"MBII\0"; -pub const BUSTYPE_MPI: &[u8; 4usize] = b"MPI\0"; -pub const BUSTYPE_MPSA: &[u8; 5usize] = b"MPSA\0"; -pub const BUSTYPE_NUBUS: &[u8; 6usize] = b"NUBUS\0"; -pub const BUSTYPE_TC: &[u8; 3usize] = b"TC\0"; -pub const BUSTYPE_VME: &[u8; 4usize] = b"VME\0"; -pub const BUSTYPE_XPRESS: &[u8; 7usize] = b"XPRESS\0"; +pub const BUSTYPE_EISA: &[u8; 5] = b"EISA\0"; +pub const BUSTYPE_ISA: &[u8; 4] = b"ISA\0"; +pub const BUSTYPE_INTERN: &[u8; 7] = b"INTERN\0"; +pub const BUSTYPE_MCA: &[u8; 4] = b"MCA\0"; +pub const BUSTYPE_VL: &[u8; 3] = b"VL\0"; +pub const BUSTYPE_PCI: &[u8; 4] = b"PCI\0"; +pub const BUSTYPE_PCMCIA: &[u8; 7] = b"PCMCIA\0"; +pub const BUSTYPE_CBUS: &[u8; 5] = b"CBUS\0"; +pub const BUSTYPE_CBUSII: &[u8; 7] = b"CBUSII\0"; +pub const BUSTYPE_FUTURE: &[u8; 7] = b"FUTURE\0"; +pub const BUSTYPE_MBI: &[u8; 4] = b"MBI\0"; +pub const BUSTYPE_MBII: &[u8; 5] = b"MBII\0"; +pub const BUSTYPE_MPI: &[u8; 4] = b"MPI\0"; +pub const BUSTYPE_MPSA: &[u8; 5] = b"MPSA\0"; +pub const BUSTYPE_NUBUS: &[u8; 6] = b"NUBUS\0"; +pub const BUSTYPE_TC: &[u8; 3] = b"TC\0"; +pub const BUSTYPE_VME: &[u8; 4] = b"VME\0"; +pub const BUSTYPE_XPRESS: &[u8; 7] = b"XPRESS\0"; pub const MPC_APIC_USABLE: u32 = 1; pub const MP_IRQPOL_DEFAULT: u32 = 0; pub const MP_IRQPOL_ACTIVE_HIGH: u32 = 1; @@ -57,7 +57,7 @@ pub const MP_IRQTRIG_RESERVED: u32 = 8; pub const MP_IRQTRIG_LEVEL: u32 = 12; pub const MP_IRQTRIG_MASK: u32 = 12; pub const MP_APIC_ALL: u32 = 255; -pub const MPC_OEM_SIGNATURE: &[u8; 5usize] = b"_OEM\0"; +pub const MPC_OEM_SIGNATURE: &[u8; 5] = b"_OEM\0"; #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct mpf_intel { @@ -74,6 +74,8 @@ pub struct mpf_intel { } #[test] fn bindgen_test_layout_mpf_intel() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 16usize, @@ -84,176 +86,106 @@ fn bindgen_test_layout_mpf_intel() { 4usize, concat!("Alignment of ", stringify!(mpf_intel)) ); - fn test_field_signature() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).signature) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mpf_intel), - "::", - stringify!(signature) - ) - ); - } - test_field_signature(); - fn test_field_physptr() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).physptr) as usize - ptr as usize - }, - 4usize, - concat!( - "Offset of field: ", - stringify!(mpf_intel), - "::", - stringify!(physptr) - ) - ); - } - test_field_physptr(); - fn test_field_length() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mpf_intel), - "::", - stringify!(length) - ) - ); - } - test_field_length(); - fn test_field_specification() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).specification) as usize - ptr as usize - }, - 9usize, - concat!( - "Offset of field: ", - stringify!(mpf_intel), - "::", - stringify!(specification) - ) - ); - } - test_field_specification(); - fn test_field_checksum() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).checksum) as usize - ptr as usize - }, - 10usize, - concat!( - "Offset of field: ", - stringify!(mpf_intel), - "::", - stringify!(checksum) - ) - ); - } - test_field_checksum(); - fn test_field_feature1() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).feature1) as usize - ptr as usize - }, - 11usize, - concat!( - "Offset of field: ", - stringify!(mpf_intel), - "::", - stringify!(feature1) - ) - ); - } - test_field_feature1(); - fn test_field_feature2() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).feature2) as usize - ptr as usize - }, - 12usize, - concat!( - "Offset of field: ", - stringify!(mpf_intel), - "::", - stringify!(feature2) - ) - ); - } - test_field_feature2(); - fn test_field_feature3() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).feature3) as usize - ptr as usize - }, - 13usize, - concat!( - "Offset of field: ", - stringify!(mpf_intel), - "::", - stringify!(feature3) - ) - ); - } - test_field_feature3(); - fn test_field_feature4() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).feature4) as usize - ptr as usize - }, - 14usize, - concat!( - "Offset of field: ", - stringify!(mpf_intel), - "::", - stringify!(feature4) - ) - ); - } - test_field_feature4(); - fn test_field_feature5() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).feature5) as usize - ptr as usize - }, - 15usize, - concat!( - "Offset of field: ", - stringify!(mpf_intel), - "::", - stringify!(feature5) - ) - ); - } - test_field_feature5(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).signature) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(mpf_intel), + "::", + stringify!(signature) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).physptr) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(mpf_intel), + "::", + stringify!(physptr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(mpf_intel), + "::", + stringify!(length) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).specification) as usize - ptr as usize }, + 9usize, + concat!( + "Offset of field: ", + stringify!(mpf_intel), + "::", + stringify!(specification) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).checksum) as usize - ptr as usize }, + 10usize, + concat!( + "Offset of field: ", + stringify!(mpf_intel), + "::", + stringify!(checksum) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).feature1) as usize - ptr as usize }, + 11usize, + concat!( + "Offset of field: ", + stringify!(mpf_intel), + "::", + stringify!(feature1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).feature2) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(mpf_intel), + "::", + stringify!(feature2) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).feature3) as usize - ptr as usize }, + 13usize, + concat!( + "Offset of field: ", + stringify!(mpf_intel), + "::", + stringify!(feature3) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).feature4) as usize - ptr as usize }, + 14usize, + concat!( + "Offset of field: ", + stringify!(mpf_intel), + "::", + stringify!(feature4) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).feature5) as usize - ptr as usize }, + 15usize, + concat!( + "Offset of field: ", + stringify!(mpf_intel), + "::", + stringify!(feature5) + ) + ); } #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] @@ -272,6 +204,8 @@ pub struct mpc_table { } #[test] fn bindgen_test_layout_mpc_table() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 44usize, @@ -282,193 +216,116 @@ fn bindgen_test_layout_mpc_table() { 4usize, concat!("Alignment of ", stringify!(mpc_table)) ); - fn test_field_signature() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).signature) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mpc_table), - "::", - stringify!(signature) - ) - ); - } - test_field_signature(); - fn test_field_length() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize - }, - 4usize, - concat!( - "Offset of field: ", - stringify!(mpc_table), - "::", - stringify!(length) - ) - ); - } - test_field_length(); - fn test_field_spec() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).spec) as usize - ptr as usize - }, - 6usize, - concat!( - "Offset of field: ", - stringify!(mpc_table), - "::", - stringify!(spec) - ) - ); - } - test_field_spec(); - fn test_field_checksum() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).checksum) as usize - ptr as usize - }, - 7usize, - concat!( - "Offset of field: ", - stringify!(mpc_table), - "::", - stringify!(checksum) - ) - ); - } - test_field_checksum(); - fn test_field_oem() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).oem) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mpc_table), - "::", - stringify!(oem) - ) - ); - } - test_field_oem(); - fn test_field_productid() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).productid) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mpc_table), - "::", - stringify!(productid) - ) - ); - } - test_field_productid(); - fn test_field_oemptr() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).oemptr) as usize - ptr as usize - }, - 28usize, - concat!( - "Offset of field: ", - stringify!(mpc_table), - "::", - stringify!(oemptr) - ) - ); - } - test_field_oemptr(); - fn test_field_oemsize() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).oemsize) as usize - ptr as usize - }, - 32usize, - concat!( - "Offset of field: ", - stringify!(mpc_table), - "::", - stringify!(oemsize) - ) - ); - } - test_field_oemsize(); - fn test_field_oemcount() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).oemcount) as usize - ptr as usize - }, - 34usize, - concat!( - "Offset of field: ", - stringify!(mpc_table), - "::", - stringify!(oemcount) - ) - ); - } - test_field_oemcount(); - fn test_field_lapic() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).lapic) as usize - ptr as usize - }, - 36usize, - concat!( - "Offset of field: ", - stringify!(mpc_table), - "::", - stringify!(lapic) - ) - ); - } - test_field_lapic(); - fn test_field_reserved() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize - }, - 40usize, - concat!( - "Offset of field: ", - stringify!(mpc_table), - "::", - stringify!(reserved) - ) - ); - } - test_field_reserved(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).signature) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(mpc_table), + "::", + stringify!(signature) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(mpc_table), + "::", + stringify!(length) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).spec) as usize - ptr as usize }, + 6usize, + concat!( + "Offset of field: ", + stringify!(mpc_table), + "::", + stringify!(spec) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).checksum) as usize - ptr as usize }, + 7usize, + concat!( + "Offset of field: ", + stringify!(mpc_table), + "::", + stringify!(checksum) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).oem) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(mpc_table), + "::", + stringify!(oem) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).productid) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(mpc_table), + "::", + stringify!(productid) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).oemptr) as usize - ptr as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(mpc_table), + "::", + stringify!(oemptr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).oemsize) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(mpc_table), + "::", + stringify!(oemsize) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).oemcount) as usize - ptr as usize }, + 34usize, + concat!( + "Offset of field: ", + stringify!(mpc_table), + "::", + stringify!(oemcount) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).lapic) as usize - ptr as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(mpc_table), + "::", + stringify!(lapic) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(mpc_table), + "::", + stringify!(reserved) + ) + ); } #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] @@ -483,6 +340,8 @@ pub struct mpc_cpu { } #[test] fn bindgen_test_layout_mpc_cpu() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 20usize, @@ -493,125 +352,76 @@ fn bindgen_test_layout_mpc_cpu() { 4usize, concat!("Alignment of ", stringify!(mpc_cpu)) ); - fn test_field_type() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mpc_cpu), - "::", - stringify!(type_) - ) - ); - } - test_field_type(); - fn test_field_apicid() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).apicid) as usize - ptr as usize - }, - 1usize, - concat!( - "Offset of field: ", - stringify!(mpc_cpu), - "::", - stringify!(apicid) - ) - ); - } - test_field_apicid(); - fn test_field_apicver() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).apicver) as usize - ptr as usize - }, - 2usize, - concat!( - "Offset of field: ", - stringify!(mpc_cpu), - "::", - stringify!(apicver) - ) - ); - } - test_field_apicver(); - fn test_field_cpuflag() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).cpuflag) as usize - ptr as usize - }, - 3usize, - concat!( - "Offset of field: ", - stringify!(mpc_cpu), - "::", - stringify!(cpuflag) - ) - ); - } - test_field_cpuflag(); - fn test_field_cpufeature() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).cpufeature) as usize - ptr as usize - }, - 4usize, - concat!( - "Offset of field: ", - stringify!(mpc_cpu), - "::", - stringify!(cpufeature) - ) - ); - } - test_field_cpufeature(); - fn test_field_featureflag() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).featureflag) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mpc_cpu), - "::", - stringify!(featureflag) - ) - ); - } - test_field_featureflag(); - fn test_field_reserved() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize - }, - 12usize, - concat!( - "Offset of field: ", - stringify!(mpc_cpu), - "::", - stringify!(reserved) - ) - ); - } - test_field_reserved(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(mpc_cpu), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).apicid) as usize - ptr as usize }, + 1usize, + concat!( + "Offset of field: ", + stringify!(mpc_cpu), + "::", + stringify!(apicid) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).apicver) as usize - ptr as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(mpc_cpu), + "::", + stringify!(apicver) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).cpuflag) as usize - ptr as usize }, + 3usize, + concat!( + "Offset of field: ", + stringify!(mpc_cpu), + "::", + stringify!(cpuflag) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).cpufeature) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(mpc_cpu), + "::", + stringify!(cpufeature) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).featureflag) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(mpc_cpu), + "::", + stringify!(featureflag) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(mpc_cpu), + "::", + stringify!(reserved) + ) + ); } #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] @@ -622,6 +432,8 @@ pub struct mpc_bus { } #[test] fn bindgen_test_layout_mpc_bus() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 8usize, @@ -632,57 +444,36 @@ fn bindgen_test_layout_mpc_bus() { 1usize, concat!("Alignment of ", stringify!(mpc_bus)) ); - fn test_field_type() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mpc_bus), - "::", - stringify!(type_) - ) - ); - } - test_field_type(); - fn test_field_busid() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).busid) as usize - ptr as usize - }, - 1usize, - concat!( - "Offset of field: ", - stringify!(mpc_bus), - "::", - stringify!(busid) - ) - ); - } - test_field_busid(); - fn test_field_bustype() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).bustype) as usize - ptr as usize - }, - 2usize, - concat!( - "Offset of field: ", - stringify!(mpc_bus), - "::", - stringify!(bustype) - ) - ); - } - test_field_bustype(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(mpc_bus), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).busid) as usize - ptr as usize }, + 1usize, + concat!( + "Offset of field: ", + stringify!(mpc_bus), + "::", + stringify!(busid) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).bustype) as usize - ptr as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(mpc_bus), + "::", + stringify!(bustype) + ) + ); } #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] @@ -695,6 +486,8 @@ pub struct mpc_ioapic { } #[test] fn bindgen_test_layout_mpc_ioapic() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 8usize, @@ -705,91 +498,56 @@ fn bindgen_test_layout_mpc_ioapic() { 4usize, concat!("Alignment of ", stringify!(mpc_ioapic)) ); - fn test_field_type() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mpc_ioapic), - "::", - stringify!(type_) - ) - ); - } - test_field_type(); - fn test_field_apicid() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).apicid) as usize - ptr as usize - }, - 1usize, - concat!( - "Offset of field: ", - stringify!(mpc_ioapic), - "::", - stringify!(apicid) - ) - ); - } - test_field_apicid(); - fn test_field_apicver() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).apicver) as usize - ptr as usize - }, - 2usize, - concat!( - "Offset of field: ", - stringify!(mpc_ioapic), - "::", - stringify!(apicver) - ) - ); - } - test_field_apicver(); - fn test_field_flags() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize - }, - 3usize, - concat!( - "Offset of field: ", - stringify!(mpc_ioapic), - "::", - stringify!(flags) - ) - ); - } - test_field_flags(); - fn test_field_apicaddr() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).apicaddr) as usize - ptr as usize - }, - 4usize, - concat!( - "Offset of field: ", - stringify!(mpc_ioapic), - "::", - stringify!(apicaddr) - ) - ); - } - test_field_apicaddr(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(mpc_ioapic), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).apicid) as usize - ptr as usize }, + 1usize, + concat!( + "Offset of field: ", + stringify!(mpc_ioapic), + "::", + stringify!(apicid) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).apicver) as usize - ptr as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(mpc_ioapic), + "::", + stringify!(apicver) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 3usize, + concat!( + "Offset of field: ", + stringify!(mpc_ioapic), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).apicaddr) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(mpc_ioapic), + "::", + stringify!(apicaddr) + ) + ); } #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] @@ -804,6 +562,8 @@ pub struct mpc_intsrc { } #[test] fn bindgen_test_layout_mpc_intsrc() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 8usize, @@ -814,125 +574,76 @@ fn bindgen_test_layout_mpc_intsrc() { 2usize, concat!("Alignment of ", stringify!(mpc_intsrc)) ); - fn test_field_type() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mpc_intsrc), - "::", - stringify!(type_) - ) - ); - } - test_field_type(); - fn test_field_irqtype() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).irqtype) as usize - ptr as usize - }, - 1usize, - concat!( - "Offset of field: ", - stringify!(mpc_intsrc), - "::", - stringify!(irqtype) - ) - ); - } - test_field_irqtype(); - fn test_field_irqflag() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).irqflag) as usize - ptr as usize - }, - 2usize, - concat!( - "Offset of field: ", - stringify!(mpc_intsrc), - "::", - stringify!(irqflag) - ) - ); - } - test_field_irqflag(); - fn test_field_srcbus() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).srcbus) as usize - ptr as usize - }, - 4usize, - concat!( - "Offset of field: ", - stringify!(mpc_intsrc), - "::", - stringify!(srcbus) - ) - ); - } - test_field_srcbus(); - fn test_field_srcbusirq() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).srcbusirq) as usize - ptr as usize - }, - 5usize, - concat!( - "Offset of field: ", - stringify!(mpc_intsrc), - "::", - stringify!(srcbusirq) - ) - ); - } - test_field_srcbusirq(); - fn test_field_dstapic() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).dstapic) as usize - ptr as usize - }, - 6usize, - concat!( - "Offset of field: ", - stringify!(mpc_intsrc), - "::", - stringify!(dstapic) - ) - ); - } - test_field_dstapic(); - fn test_field_dstirq() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).dstirq) as usize - ptr as usize - }, - 7usize, - concat!( - "Offset of field: ", - stringify!(mpc_intsrc), - "::", - stringify!(dstirq) - ) - ); - } - test_field_dstirq(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(mpc_intsrc), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).irqtype) as usize - ptr as usize }, + 1usize, + concat!( + "Offset of field: ", + stringify!(mpc_intsrc), + "::", + stringify!(irqtype) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).irqflag) as usize - ptr as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(mpc_intsrc), + "::", + stringify!(irqflag) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).srcbus) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(mpc_intsrc), + "::", + stringify!(srcbus) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).srcbusirq) as usize - ptr as usize }, + 5usize, + concat!( + "Offset of field: ", + stringify!(mpc_intsrc), + "::", + stringify!(srcbusirq) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dstapic) as usize - ptr as usize }, + 6usize, + concat!( + "Offset of field: ", + stringify!(mpc_intsrc), + "::", + stringify!(dstapic) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dstirq) as usize - ptr as usize }, + 7usize, + concat!( + "Offset of field: ", + stringify!(mpc_intsrc), + "::", + stringify!(dstirq) + ) + ); } pub const mp_irq_source_types_mp_INT: mp_irq_source_types = 0; pub const mp_irq_source_types_mp_NMI: mp_irq_source_types = 1; @@ -952,6 +663,8 @@ pub struct mpc_lintsrc { } #[test] fn bindgen_test_layout_mpc_lintsrc() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 8usize, @@ -962,125 +675,76 @@ fn bindgen_test_layout_mpc_lintsrc() { 2usize, concat!("Alignment of ", stringify!(mpc_lintsrc)) ); - fn test_field_type() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mpc_lintsrc), - "::", - stringify!(type_) - ) - ); - } - test_field_type(); - fn test_field_irqtype() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).irqtype) as usize - ptr as usize - }, - 1usize, - concat!( - "Offset of field: ", - stringify!(mpc_lintsrc), - "::", - stringify!(irqtype) - ) - ); - } - test_field_irqtype(); - fn test_field_irqflag() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).irqflag) as usize - ptr as usize - }, - 2usize, - concat!( - "Offset of field: ", - stringify!(mpc_lintsrc), - "::", - stringify!(irqflag) - ) - ); - } - test_field_irqflag(); - fn test_field_srcbusid() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).srcbusid) as usize - ptr as usize - }, - 4usize, - concat!( - "Offset of field: ", - stringify!(mpc_lintsrc), - "::", - stringify!(srcbusid) - ) - ); - } - test_field_srcbusid(); - fn test_field_srcbusirq() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).srcbusirq) as usize - ptr as usize - }, - 5usize, - concat!( - "Offset of field: ", - stringify!(mpc_lintsrc), - "::", - stringify!(srcbusirq) - ) - ); - } - test_field_srcbusirq(); - fn test_field_destapic() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).destapic) as usize - ptr as usize - }, - 6usize, - concat!( - "Offset of field: ", - stringify!(mpc_lintsrc), - "::", - stringify!(destapic) - ) - ); - } - test_field_destapic(); - fn test_field_destapiclint() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).destapiclint) as usize - ptr as usize - }, - 7usize, - concat!( - "Offset of field: ", - stringify!(mpc_lintsrc), - "::", - stringify!(destapiclint) - ) - ); - } - test_field_destapiclint(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(mpc_lintsrc), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).irqtype) as usize - ptr as usize }, + 1usize, + concat!( + "Offset of field: ", + stringify!(mpc_lintsrc), + "::", + stringify!(irqtype) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).irqflag) as usize - ptr as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(mpc_lintsrc), + "::", + stringify!(irqflag) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).srcbusid) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(mpc_lintsrc), + "::", + stringify!(srcbusid) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).srcbusirq) as usize - ptr as usize }, + 5usize, + concat!( + "Offset of field: ", + stringify!(mpc_lintsrc), + "::", + stringify!(srcbusirq) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).destapic) as usize - ptr as usize }, + 6usize, + concat!( + "Offset of field: ", + stringify!(mpc_lintsrc), + "::", + stringify!(destapic) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).destapiclint) as usize - ptr as usize }, + 7usize, + concat!( + "Offset of field: ", + stringify!(mpc_lintsrc), + "::", + stringify!(destapiclint) + ) + ); } #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] @@ -1093,6 +757,8 @@ pub struct mpc_oemtable { } #[test] fn bindgen_test_layout_mpc_oemtable() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 16usize, @@ -1103,91 +769,56 @@ fn bindgen_test_layout_mpc_oemtable() { 2usize, concat!("Alignment of ", stringify!(mpc_oemtable)) ); - fn test_field_signature() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).signature) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mpc_oemtable), - "::", - stringify!(signature) - ) - ); - } - test_field_signature(); - fn test_field_length() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize - }, - 4usize, - concat!( - "Offset of field: ", - stringify!(mpc_oemtable), - "::", - stringify!(length) - ) - ); - } - test_field_length(); - fn test_field_rev() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).rev) as usize - ptr as usize - }, - 6usize, - concat!( - "Offset of field: ", - stringify!(mpc_oemtable), - "::", - stringify!(rev) - ) - ); - } - test_field_rev(); - fn test_field_checksum() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).checksum) as usize - ptr as usize - }, - 7usize, - concat!( - "Offset of field: ", - stringify!(mpc_oemtable), - "::", - stringify!(checksum) - ) - ); - } - test_field_checksum(); - fn test_field_mpc() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).mpc) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mpc_oemtable), - "::", - stringify!(mpc) - ) - ); - } - test_field_mpc(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).signature) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(mpc_oemtable), + "::", + stringify!(signature) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(mpc_oemtable), + "::", + stringify!(length) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).rev) as usize - ptr as usize }, + 6usize, + concat!( + "Offset of field: ", + stringify!(mpc_oemtable), + "::", + stringify!(rev) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).checksum) as usize - ptr as usize }, + 7usize, + concat!( + "Offset of field: ", + stringify!(mpc_oemtable), + "::", + stringify!(checksum) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).mpc) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(mpc_oemtable), + "::", + stringify!(mpc) + ) + ); } pub const mp_bustype_MP_BUS_ISA: mp_bustype = 1; pub const mp_bustype_MP_BUS_EISA: mp_bustype = 2; diff --git a/src/vmm/src/arch_gen/x86/msr_index.rs b/src/vmm/src/arch_gen/x86/msr_index.rs index 2a0daf3b0ab..d4917b98b5e 100644 --- a/src/vmm/src/arch_gen/x86/msr_index.rs +++ b/src/vmm/src/arch_gen/x86/msr_index.rs @@ -1,4 +1,4 @@ -// Copyright 2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. +// Copyright 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 // automatically generated by tools/bindgen.sh @@ -207,8 +207,10 @@ pub const MSR_AMD_PPIN: u32 = 0xc00102f1; pub const MSR_AMD64_CPUID_FN_1: u32 = 0xc0011004; pub const MSR_AMD64_LS_CFG: u32 = 0xc0011020; pub const MSR_AMD64_DC_CFG: u32 = 0xc0011022; +pub const MSR_AMD64_TW_CFG: u32 = 0xc0011023; pub const MSR_AMD64_DE_CFG: u32 = 0xc0011029; pub const MSR_AMD64_DE_CFG_LFENCE_SERIALIZE_BIT: u32 = 0x1; +pub const MSR_AMD64_DE_CFG_ZEN2_FP_BACKUP_FIX_BIT: u32 = 0x9; pub const MSR_AMD64_BU_CFG2: u32 = 0xc001102a; pub const MSR_AMD64_IBSFETCHCTL: u32 = 0xc0011030; pub const MSR_AMD64_IBSFETCHLINAD: u32 = 0xc0011031; @@ -229,13 +231,16 @@ pub const MSR_AMD64_IBSBRTARGET: u32 = 0xc001103b; pub const MSR_AMD64_ICIBSEXTDCTL: u32 = 0xc001103c; pub const MSR_AMD64_IBSOPDATA4: u32 = 0xc001103d; pub const MSR_AMD64_IBS_REG_COUNT_MAX: u32 = 0x8; +pub const MSR_AMD64_VM_PAGE_FLUSH: u32 = 0xc001011e; pub const MSR_AMD64_SEV_ES_GHCB: u32 = 0xc0010130; pub const MSR_AMD64_SEV: u32 = 0xc0010131; pub const MSR_AMD64_SEV_ENABLED_BIT: u32 = 0x0; pub const MSR_AMD64_SEV_ES_ENABLED_BIT: u32 = 0x1; pub const MSR_AMD64_VIRT_SPEC_CTRL: u32 = 0xc001011f; -pub const MSR_F17H_IRPERF: u32 = 0xc00000e9; +pub const MSR_ZEN4_BP_CFG: u32 = 0xc001102e; +pub const MSR_ZEN4_BP_CFG_SHARED_BTB_FIX_BIT: u32 = 0x5; pub const MSR_ZEN2_SPECTRAL_CHICKEN: u32 = 0xc00110e3; +pub const MSR_F17H_IRPERF: u32 = 0xc00000e9; pub const MSR_F16H_L2I_PERF_CTL: u32 = 0xc0010230; pub const MSR_F16H_L2I_PERF_CTR: u32 = 0xc0010231; pub const MSR_F16H_DR1_ADDR_MASK: u32 = 0xc0011019; diff --git a/src/vmm/src/arch_gen/x86/perf_event.rs b/src/vmm/src/arch_gen/x86/perf_event.rs index 556fcfde8e2..3cbe8a2ca74 100644 --- a/src/vmm/src/arch_gen/x86/perf_event.rs +++ b/src/vmm/src/arch_gen/x86/perf_event.rs @@ -1,4 +1,4 @@ -// Copyright 2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. +// Copyright 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 // automatically generated by tools/bindgen.sh diff --git a/src/vmm/src/devices/virtio/gen/virtio_blk.rs b/src/vmm/src/devices/virtio/gen/virtio_blk.rs index a382201dbd2..ced7469ecdd 100644 --- a/src/vmm/src/devices/virtio/gen/virtio_blk.rs +++ b/src/vmm/src/devices/virtio/gen/virtio_blk.rs @@ -1,4 +1,4 @@ -// Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. +// Copyright 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 // automatically generated by tools/bindgen.sh @@ -18,7 +18,11 @@ pub const VIRTIO_F_NOTIFY_ON_EMPTY: u32 = 24; pub const VIRTIO_F_ANY_LAYOUT: u32 = 27; pub const VIRTIO_F_VERSION_1: u32 = 32; +pub const VIRTIO_F_ACCESS_PLATFORM: u32 = 33; pub const VIRTIO_F_IOMMU_PLATFORM: u32 = 33; +pub const VIRTIO_F_RING_PACKED: u32 = 34; +pub const VIRTIO_F_ORDER_PLATFORM: u32 = 36; +pub const VIRTIO_F_SR_IOV: u32 = 37; pub const VIRTIO_BLK_F_SIZE_MAX: u32 = 1; pub const VIRTIO_BLK_F_SEG_MAX: u32 = 2; pub const VIRTIO_BLK_F_GEOMETRY: u32 = 4; @@ -26,6 +30,8 @@ pub const VIRTIO_BLK_F_RO: u32 = 5; pub const VIRTIO_BLK_F_BLK_SIZE: u32 = 6; pub const VIRTIO_BLK_F_TOPOLOGY: u32 = 10; pub const VIRTIO_BLK_F_MQ: u32 = 12; +pub const VIRTIO_BLK_F_DISCARD: u32 = 13; +pub const VIRTIO_BLK_F_WRITE_ZEROES: u32 = 14; pub const VIRTIO_BLK_F_BARRIER: u32 = 0; pub const VIRTIO_BLK_F_SCSI: u32 = 7; pub const VIRTIO_BLK_F_FLUSH: u32 = 9; @@ -37,7 +43,10 @@ pub const VIRTIO_BLK_T_OUT: u32 = 1; pub const VIRTIO_BLK_T_SCSI_CMD: u32 = 2; pub const VIRTIO_BLK_T_FLUSH: u32 = 4; pub const VIRTIO_BLK_T_GET_ID: u32 = 8; +pub const VIRTIO_BLK_T_DISCARD: u32 = 11; +pub const VIRTIO_BLK_T_WRITE_ZEROES: u32 = 13; pub const VIRTIO_BLK_T_BARRIER: u32 = 2147483648; +pub const VIRTIO_BLK_WRITE_ZEROES_FLAG_UNMAP: u32 = 1; pub const VIRTIO_BLK_S_OK: u32 = 0; pub const VIRTIO_BLK_S_IOERR: u32 = 1; pub const VIRTIO_BLK_S_UNSUPP: u32 = 2; diff --git a/src/vmm/src/devices/virtio/gen/virtio_net.rs b/src/vmm/src/devices/virtio/gen/virtio_net.rs index 2f8c36b021e..382657e6617 100644 --- a/src/vmm/src/devices/virtio/gen/virtio_net.rs +++ b/src/vmm/src/devices/virtio/gen/virtio_net.rs @@ -1,4 +1,4 @@ -// Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. +// Copyright 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 // automatically generated by tools/bindgen.sh @@ -18,7 +18,11 @@ pub const VIRTIO_F_NOTIFY_ON_EMPTY: u32 = 24; pub const VIRTIO_F_ANY_LAYOUT: u32 = 27; pub const VIRTIO_F_VERSION_1: u32 = 32; +pub const VIRTIO_F_ACCESS_PLATFORM: u32 = 33; pub const VIRTIO_F_IOMMU_PLATFORM: u32 = 33; +pub const VIRTIO_F_RING_PACKED: u32 = 34; +pub const VIRTIO_F_ORDER_PLATFORM: u32 = 36; +pub const VIRTIO_F_SR_IOV: u32 = 37; pub const VIRTIO_NET_F_CSUM: u32 = 0; pub const VIRTIO_NET_F_GUEST_CSUM: u32 = 1; pub const VIRTIO_NET_F_CTRL_GUEST_OFFLOADS: u32 = 2; @@ -41,23 +45,226 @@ pub const VIRTIO_NET_F_CTRL_RX_EXTRA: u32 = 20; pub const VIRTIO_NET_F_GUEST_ANNOUNCE: u32 = 21; pub const VIRTIO_NET_F_MQ: u32 = 22; pub const VIRTIO_NET_F_CTRL_MAC_ADDR: u32 = 23; +pub const VIRTIO_NET_F_HASH_REPORT: u32 = 57; +pub const VIRTIO_NET_F_RSS: u32 = 60; +pub const VIRTIO_NET_F_RSC_EXT: u32 = 61; +pub const VIRTIO_NET_F_STANDBY: u32 = 62; +pub const VIRTIO_NET_F_SPEED_DUPLEX: u32 = 63; pub const VIRTIO_NET_F_GSO: u32 = 6; pub type __u8 = ::std::os::raw::c_uchar; pub type __u16 = ::std::os::raw::c_ushort; +pub type __le16 = __u16; pub type __virtio16 = __u16; #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq)] +#[derive(Copy, Clone)] pub struct virtio_net_hdr_v1 { pub flags: __u8, pub gso_type: __u8, pub hdr_len: __virtio16, pub gso_size: __virtio16, + pub __bindgen_anon_1: virtio_net_hdr_v1__bindgen_ty_1, + pub num_buffers: __virtio16, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union virtio_net_hdr_v1__bindgen_ty_1 { + pub __bindgen_anon_1: virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_1, + pub csum: virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_2, + pub rsc: virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_3, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_1 { pub csum_start: __virtio16, pub csum_offset: __virtio16, - pub num_buffers: __virtio16, +} +#[test] +fn bindgen_test_layout_virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_1() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 4usize, + concat!( + "Size of: ", + stringify!(virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + ::std::mem::align_of::(), + 2usize, + concat!( + "Alignment of ", + stringify!(virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).csum_start) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(csum_start) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).csum_offset) as usize - ptr as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(csum_offset) + ) + ); +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_2 { + pub start: __virtio16, + pub offset: __virtio16, +} +#[test] +fn bindgen_test_layout_virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_2() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 4usize, + concat!( + "Size of: ", + stringify!(virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_2) + ) + ); + assert_eq!( + ::std::mem::align_of::(), + 2usize, + concat!( + "Alignment of ", + stringify!(virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_2) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_2), + "::", + stringify!(start) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_2), + "::", + stringify!(offset) + ) + ); +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_3 { + pub segments: __le16, + pub dup_acks: __le16, +} +#[test] +fn bindgen_test_layout_virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_3() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 4usize, + concat!( + "Size of: ", + stringify!(virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_3) + ) + ); + assert_eq!( + ::std::mem::align_of::(), + 2usize, + concat!( + "Alignment of ", + stringify!(virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_3) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).segments) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_3), + "::", + stringify!(segments) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dup_acks) as usize - ptr as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_3), + "::", + stringify!(dup_acks) + ) + ); +} +#[test] +fn bindgen_test_layout_virtio_net_hdr_v1__bindgen_ty_1() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(virtio_net_hdr_v1__bindgen_ty_1)) + ); + assert_eq!( + ::std::mem::align_of::(), + 2usize, + concat!("Alignment of ", stringify!(virtio_net_hdr_v1__bindgen_ty_1)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).csum) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(virtio_net_hdr_v1__bindgen_ty_1), + "::", + stringify!(csum) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).rsc) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(virtio_net_hdr_v1__bindgen_ty_1), + "::", + stringify!(rsc) + ) + ); +} +impl Default for virtio_net_hdr_v1__bindgen_ty_1 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } } #[test] fn bindgen_test_layout_virtio_net_hdr_v1() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 12usize, @@ -68,123 +275,63 @@ fn bindgen_test_layout_virtio_net_hdr_v1() { 2usize, concat!("Alignment of ", stringify!(virtio_net_hdr_v1)) ); - fn test_field_flags() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(virtio_net_hdr_v1), - "::", - stringify!(flags) - ) - ); - } - test_field_flags(); - fn test_field_gso_type() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).gso_type) as usize - ptr as usize - }, - 1usize, - concat!( - "Offset of field: ", - stringify!(virtio_net_hdr_v1), - "::", - stringify!(gso_type) - ) - ); - } - test_field_gso_type(); - fn test_field_hdr_len() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).hdr_len) as usize - ptr as usize - }, - 2usize, - concat!( - "Offset of field: ", - stringify!(virtio_net_hdr_v1), - "::", - stringify!(hdr_len) - ) - ); - } - test_field_hdr_len(); - fn test_field_gso_size() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).gso_size) as usize - ptr as usize - }, - 4usize, - concat!( - "Offset of field: ", - stringify!(virtio_net_hdr_v1), - "::", - stringify!(gso_size) - ) - ); - } - test_field_gso_size(); - fn test_field_csum_start() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).csum_start) as usize - ptr as usize - }, - 6usize, - concat!( - "Offset of field: ", - stringify!(virtio_net_hdr_v1), - "::", - stringify!(csum_start) - ) - ); - } - test_field_csum_start(); - fn test_field_csum_offset() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).csum_offset) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(virtio_net_hdr_v1), - "::", - stringify!(csum_offset) - ) - ); - } - test_field_csum_offset(); - fn test_field_num_buffers() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).num_buffers) as usize - ptr as usize - }, - 10usize, - concat!( - "Offset of field: ", - stringify!(virtio_net_hdr_v1), - "::", - stringify!(num_buffers) - ) - ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(virtio_net_hdr_v1), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gso_type) as usize - ptr as usize }, + 1usize, + concat!( + "Offset of field: ", + stringify!(virtio_net_hdr_v1), + "::", + stringify!(gso_type) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).hdr_len) as usize - ptr as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(virtio_net_hdr_v1), + "::", + stringify!(hdr_len) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).gso_size) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(virtio_net_hdr_v1), + "::", + stringify!(gso_size) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).num_buffers) as usize - ptr as usize }, + 10usize, + concat!( + "Offset of field: ", + stringify!(virtio_net_hdr_v1), + "::", + stringify!(num_buffers) + ) + ); +} +impl Default for virtio_net_hdr_v1 { + fn default() -> Self { + let mut s = ::std::mem::MaybeUninit::::uninit(); + unsafe { + ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } } - test_field_num_buffers(); } diff --git a/src/vmm/src/devices/virtio/gen/virtio_ring.rs b/src/vmm/src/devices/virtio/gen/virtio_ring.rs index 9db5403b12f..2d78d70ec59 100644 --- a/src/vmm/src/devices/virtio/gen/virtio_ring.rs +++ b/src/vmm/src/devices/virtio/gen/virtio_ring.rs @@ -1,4 +1,4 @@ -// Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. +// Copyright 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 // automatically generated by tools/bindgen.sh diff --git a/src/vmm/src/devices/virtio/gen/virtio_rng.rs b/src/vmm/src/devices/virtio/gen/virtio_rng.rs index 968da9b7cfc..b82afc69ea0 100644 --- a/src/vmm/src/devices/virtio/gen/virtio_rng.rs +++ b/src/vmm/src/devices/virtio/gen/virtio_rng.rs @@ -1,4 +1,4 @@ -// Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. +// Copyright 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 // automatically generated by tools/bindgen.sh diff --git a/src/vmm/src/devices/virtio/net/gen/if_tun.rs b/src/vmm/src/devices/virtio/net/gen/if_tun.rs index 6ec1a3ca7fc..da8c88ca228 100644 --- a/src/vmm/src/devices/virtio/net/gen/if_tun.rs +++ b/src/vmm/src/devices/virtio/net/gen/if_tun.rs @@ -1,4 +1,4 @@ -// Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. +// Copyright 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 // automatically generated by tools/bindgen.sh @@ -28,6 +28,7 @@ pub const ETH_P_LOOP: u32 = 96; pub const ETH_P_PUP: u32 = 512; pub const ETH_P_PUPAT: u32 = 513; pub const ETH_P_TSN: u32 = 8944; +pub const ETH_P_ERSPAN2: u32 = 8939; pub const ETH_P_IP: u32 = 2048; pub const ETH_P_X25: u32 = 2053; pub const ETH_P_ARP: u32 = 2054; @@ -65,13 +66,17 @@ pub const ETH_P_PAE: u32 = 34958; pub const ETH_P_AOE: u32 = 34978; pub const ETH_P_8021AD: u32 = 34984; pub const ETH_P_802_EX1: u32 = 34997; +pub const ETH_P_PREAUTH: u32 = 35015; pub const ETH_P_TIPC: u32 = 35018; +pub const ETH_P_LLDP: u32 = 35020; +pub const ETH_P_MRP: u32 = 35043; pub const ETH_P_MACSEC: u32 = 35045; pub const ETH_P_8021AH: u32 = 35047; pub const ETH_P_MVRP: u32 = 35061; pub const ETH_P_1588: u32 = 35063; pub const ETH_P_NCSI: u32 = 35064; pub const ETH_P_PRP: u32 = 35067; +pub const ETH_P_CFM: u32 = 35074; pub const ETH_P_FCOE: u32 = 35078; pub const ETH_P_IBOE: u32 = 35093; pub const ETH_P_TDLS: u32 = 35085; @@ -84,6 +89,7 @@ pub const ETH_P_QINQ1: u32 = 37120; pub const ETH_P_QINQ2: u32 = 37376; pub const ETH_P_QINQ3: u32 = 37632; pub const ETH_P_EDSA: u32 = 56026; +pub const ETH_P_DSA_8021Q: u32 = 56027; pub const ETH_P_IFE: u32 = 60734; pub const ETH_P_AF_IUCV: u32 = 64507; pub const ETH_P_802_3_MIN: u32 = 1536; @@ -113,6 +119,7 @@ pub const ETH_P_IEEE802154: u32 = 246; pub const ETH_P_CAIF: u32 = 247; pub const ETH_P_XDSA: u32 = 248; pub const ETH_P_MAP: u32 = 249; +pub const ETH_P_MCTP: u32 = 250; pub const TUN_READQ_SIZE: u32 = 500; pub const TUN_TYPE_MASK: u32 = 15; pub const IFF_TAP: u32 = 2; @@ -140,6 +147,8 @@ pub struct sock_filter { } #[test] fn bindgen_test_layout_sock_filter() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 8usize, @@ -150,74 +159,46 @@ fn bindgen_test_layout_sock_filter() { 4usize, concat!("Alignment of ", stringify!(sock_filter)) ); - fn test_field_code() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).code) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sock_filter), - "::", - stringify!(code) - ) - ); - } - test_field_code(); - fn test_field_jt() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).jt) as usize - ptr as usize - }, - 2usize, - concat!( - "Offset of field: ", - stringify!(sock_filter), - "::", - stringify!(jt) - ) - ); - } - test_field_jt(); - fn test_field_jf() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).jf) as usize - ptr as usize - }, - 3usize, - concat!( - "Offset of field: ", - stringify!(sock_filter), - "::", - stringify!(jf) - ) - ); - } - test_field_jf(); - fn test_field_k() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).k) as usize - ptr as usize - }, - 4usize, - concat!( - "Offset of field: ", - stringify!(sock_filter), - "::", - stringify!(k) - ) - ); - } - test_field_k(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).code) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sock_filter), + "::", + stringify!(code) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).jt) as usize - ptr as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(sock_filter), + "::", + stringify!(jt) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).jf) as usize - ptr as usize }, + 3usize, + concat!( + "Offset of field: ", + stringify!(sock_filter), + "::", + stringify!(jf) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).k) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(sock_filter), + "::", + stringify!(k) + ) + ); } #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] @@ -227,6 +208,8 @@ pub struct sock_fprog { } #[test] fn bindgen_test_layout_sock_fprog() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 16usize, @@ -237,40 +220,26 @@ fn bindgen_test_layout_sock_fprog() { 8usize, concat!("Alignment of ", stringify!(sock_fprog)) ); - fn test_field_len() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sock_fprog), - "::", - stringify!(len) - ) - ); - } - test_field_len(); - fn test_field_filter() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).filter) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(sock_fprog), - "::", - stringify!(filter) - ) - ); - } - test_field_filter(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sock_fprog), + "::", + stringify!(len) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).filter) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(sock_fprog), + "::", + stringify!(filter) + ) + ); } impl Default for sock_fprog { fn default() -> Self { diff --git a/src/vmm/src/devices/virtio/net/gen/iff.rs b/src/vmm/src/devices/virtio/net/gen/iff.rs index 93df0cc8e53..54111c6ba87 100644 --- a/src/vmm/src/devices/virtio/net/gen/iff.rs +++ b/src/vmm/src/devices/virtio/net/gen/iff.rs @@ -1,4 +1,4 @@ -// Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. +// Copyright 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 // automatically generated by tools/bindgen.sh @@ -49,6 +49,8 @@ pub struct sockaddr { } #[test] fn bindgen_test_layout_sockaddr() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 16usize, @@ -59,40 +61,26 @@ fn bindgen_test_layout_sockaddr() { 2usize, concat!("Alignment of ", stringify!(sockaddr)) ); - fn test_field_sa_family() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).sa_family) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sockaddr), - "::", - stringify!(sa_family) - ) - ); - } - test_field_sa_family(); - fn test_field_sa_data() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).sa_data) as usize - ptr as usize - }, - 2usize, - concat!( - "Offset of field: ", - stringify!(sockaddr), - "::", - stringify!(sa_data) - ) - ); - } - test_field_sa_data(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).sa_family) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sockaddr), + "::", + stringify!(sa_family) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).sa_data) as usize - ptr as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(sockaddr), + "::", + stringify!(sa_data) + ) + ); } #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] @@ -103,6 +91,8 @@ pub struct sync_serial_settings { } #[test] fn bindgen_test_layout_sync_serial_settings() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 12usize, @@ -113,57 +103,36 @@ fn bindgen_test_layout_sync_serial_settings() { 4usize, concat!("Alignment of ", stringify!(sync_serial_settings)) ); - fn test_field_clock_rate() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).clock_rate) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sync_serial_settings), - "::", - stringify!(clock_rate) - ) - ); - } - test_field_clock_rate(); - fn test_field_clock_type() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).clock_type) as usize - ptr as usize - }, - 4usize, - concat!( - "Offset of field: ", - stringify!(sync_serial_settings), - "::", - stringify!(clock_type) - ) - ); - } - test_field_clock_type(); - fn test_field_loopback() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).loopback) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(sync_serial_settings), - "::", - stringify!(loopback) - ) - ); - } - test_field_loopback(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).clock_rate) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(sync_serial_settings), + "::", + stringify!(clock_rate) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).clock_type) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(sync_serial_settings), + "::", + stringify!(clock_type) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).loopback) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(sync_serial_settings), + "::", + stringify!(loopback) + ) + ); } #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] @@ -175,6 +144,8 @@ pub struct te1_settings { } #[test] fn bindgen_test_layout_te1_settings() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 16usize, @@ -185,74 +156,46 @@ fn bindgen_test_layout_te1_settings() { 4usize, concat!("Alignment of ", stringify!(te1_settings)) ); - fn test_field_clock_rate() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).clock_rate) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(te1_settings), - "::", - stringify!(clock_rate) - ) - ); - } - test_field_clock_rate(); - fn test_field_clock_type() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).clock_type) as usize - ptr as usize - }, - 4usize, - concat!( - "Offset of field: ", - stringify!(te1_settings), - "::", - stringify!(clock_type) - ) - ); - } - test_field_clock_type(); - fn test_field_loopback() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).loopback) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(te1_settings), - "::", - stringify!(loopback) - ) - ); - } - test_field_loopback(); - fn test_field_slot_map() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).slot_map) as usize - ptr as usize - }, - 12usize, - concat!( - "Offset of field: ", - stringify!(te1_settings), - "::", - stringify!(slot_map) - ) - ); - } - test_field_slot_map(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).clock_rate) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(te1_settings), + "::", + stringify!(clock_rate) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).clock_type) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(te1_settings), + "::", + stringify!(clock_type) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).loopback) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(te1_settings), + "::", + stringify!(loopback) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).slot_map) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(te1_settings), + "::", + stringify!(slot_map) + ) + ); } #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] @@ -262,6 +205,8 @@ pub struct raw_hdlc_proto { } #[test] fn bindgen_test_layout_raw_hdlc_proto() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 4usize, @@ -272,40 +217,26 @@ fn bindgen_test_layout_raw_hdlc_proto() { 2usize, concat!("Alignment of ", stringify!(raw_hdlc_proto)) ); - fn test_field_encoding() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).encoding) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(raw_hdlc_proto), - "::", - stringify!(encoding) - ) - ); - } - test_field_encoding(); - fn test_field_parity() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).parity) as usize - ptr as usize - }, - 2usize, - concat!( - "Offset of field: ", - stringify!(raw_hdlc_proto), - "::", - stringify!(parity) - ) - ); - } - test_field_parity(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).encoding) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(raw_hdlc_proto), + "::", + stringify!(encoding) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).parity) as usize - ptr as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(raw_hdlc_proto), + "::", + stringify!(parity) + ) + ); } #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] @@ -320,6 +251,8 @@ pub struct fr_proto { } #[test] fn bindgen_test_layout_fr_proto() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 24usize, @@ -330,125 +263,76 @@ fn bindgen_test_layout_fr_proto() { 4usize, concat!("Alignment of ", stringify!(fr_proto)) ); - fn test_field_t391() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).t391) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(fr_proto), - "::", - stringify!(t391) - ) - ); - } - test_field_t391(); - fn test_field_t392() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).t392) as usize - ptr as usize - }, - 4usize, - concat!( - "Offset of field: ", - stringify!(fr_proto), - "::", - stringify!(t392) - ) - ); - } - test_field_t392(); - fn test_field_n391() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).n391) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(fr_proto), - "::", - stringify!(n391) - ) - ); - } - test_field_n391(); - fn test_field_n392() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).n392) as usize - ptr as usize - }, - 12usize, - concat!( - "Offset of field: ", - stringify!(fr_proto), - "::", - stringify!(n392) - ) - ); - } - test_field_n392(); - fn test_field_n393() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).n393) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(fr_proto), - "::", - stringify!(n393) - ) - ); - } - test_field_n393(); - fn test_field_lmi() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).lmi) as usize - ptr as usize - }, - 20usize, - concat!( - "Offset of field: ", - stringify!(fr_proto), - "::", - stringify!(lmi) - ) - ); - } - test_field_lmi(); - fn test_field_dce() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).dce) as usize - ptr as usize - }, - 22usize, - concat!( - "Offset of field: ", - stringify!(fr_proto), - "::", - stringify!(dce) - ) - ); - } - test_field_dce(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).t391) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(fr_proto), + "::", + stringify!(t391) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).t392) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(fr_proto), + "::", + stringify!(t392) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).n391) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(fr_proto), + "::", + stringify!(n391) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).n392) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(fr_proto), + "::", + stringify!(n392) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).n393) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(fr_proto), + "::", + stringify!(n393) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).lmi) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(fr_proto), + "::", + stringify!(lmi) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dce) as usize - ptr as usize }, + 22usize, + concat!( + "Offset of field: ", + stringify!(fr_proto), + "::", + stringify!(dce) + ) + ); } #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] @@ -457,6 +341,8 @@ pub struct fr_proto_pvc { } #[test] fn bindgen_test_layout_fr_proto_pvc() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 4usize, @@ -467,23 +353,16 @@ fn bindgen_test_layout_fr_proto_pvc() { 4usize, concat!("Alignment of ", stringify!(fr_proto_pvc)) ); - fn test_field_dlci() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).dlci) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(fr_proto_pvc), - "::", - stringify!(dlci) - ) - ); - } - test_field_dlci(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dlci) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(fr_proto_pvc), + "::", + stringify!(dlci) + ) + ); } #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] @@ -493,6 +372,8 @@ pub struct fr_proto_pvc_info { } #[test] fn bindgen_test_layout_fr_proto_pvc_info() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 20usize, @@ -503,40 +384,26 @@ fn bindgen_test_layout_fr_proto_pvc_info() { 4usize, concat!("Alignment of ", stringify!(fr_proto_pvc_info)) ); - fn test_field_dlci() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).dlci) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(fr_proto_pvc_info), - "::", - stringify!(dlci) - ) - ); - } - test_field_dlci(); - fn test_field_master() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).master) as usize - ptr as usize - }, - 4usize, - concat!( - "Offset of field: ", - stringify!(fr_proto_pvc_info), - "::", - stringify!(master) - ) - ); - } - test_field_master(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dlci) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(fr_proto_pvc_info), + "::", + stringify!(dlci) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).master) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(fr_proto_pvc_info), + "::", + stringify!(master) + ) + ); } #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] @@ -546,6 +413,8 @@ pub struct cisco_proto { } #[test] fn bindgen_test_layout_cisco_proto() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 8usize, @@ -556,40 +425,111 @@ fn bindgen_test_layout_cisco_proto() { 4usize, concat!("Alignment of ", stringify!(cisco_proto)) ); - fn test_field_interval() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).interval) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cisco_proto), - "::", - stringify!(interval) - ) - ); - } - test_field_interval(); - fn test_field_timeout() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).timeout) as usize - ptr as usize - }, - 4usize, - concat!( - "Offset of field: ", - stringify!(cisco_proto), - "::", - stringify!(timeout) - ) - ); - } - test_field_timeout(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).interval) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(cisco_proto), + "::", + stringify!(interval) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).timeout) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(cisco_proto), + "::", + stringify!(timeout) + ) + ); +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct x25_hdlc_proto { + pub dce: ::std::os::raw::c_ushort, + pub modulo: ::std::os::raw::c_uint, + pub window: ::std::os::raw::c_uint, + pub t1: ::std::os::raw::c_uint, + pub t2: ::std::os::raw::c_uint, + pub n2: ::std::os::raw::c_uint, +} +#[test] +fn bindgen_test_layout_x25_hdlc_proto() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(x25_hdlc_proto)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(x25_hdlc_proto)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dce) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(x25_hdlc_proto), + "::", + stringify!(dce) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).modulo) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(x25_hdlc_proto), + "::", + stringify!(modulo) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).window) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(x25_hdlc_proto), + "::", + stringify!(window) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).t1) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(x25_hdlc_proto), + "::", + stringify!(t1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).t2) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(x25_hdlc_proto), + "::", + stringify!(t2) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).n2) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(x25_hdlc_proto), + "::", + stringify!(n2) + ) + ); } pub const net_device_flags_IFF_UP: net_device_flags = 1; pub const net_device_flags_IFF_BROADCAST: net_device_flags = 2; @@ -610,44 +550,7 @@ pub const net_device_flags_IFF_DYNAMIC: net_device_flags = 32768; pub const net_device_flags_IFF_LOWER_UP: net_device_flags = 65536; pub const net_device_flags_IFF_DORMANT: net_device_flags = 131072; pub const net_device_flags_IFF_ECHO: net_device_flags = 262144; -/// enum net_device_flags - &struct net_device flags -/// -/// These are the &struct net_device flags, they can be set by drivers, the -/// kernel and some can be triggered by userspace. Userspace can query and -/// set these flags using userspace utilities but there is also a sysfs -/// entry available for all dev flags which can be queried and set. These flags -/// are shared for all types of net_devices. The sysfs entries are available -/// via /sys/class/net//flags. Flags which can be toggled through sysfs -/// are annotated below, note that only a few flags can be toggled and some -/// other flags are always preserved from the original net_device flags -/// even if you try to set them via sysfs. Flags which are always preserved -/// are kept under the flag grouping @IFF_VOLATILE. Flags which are __volatile__ -/// are annotated below as such. -/// -/// You should have a pretty good reason to be extending these flags. -/// -/// @IFF_UP: interface is up. Can be toggled through sysfs. -/// @IFF_BROADCAST: broadcast address valid. Volatile. -/// @IFF_DEBUG: turn on debugging. Can be toggled through sysfs. -/// @IFF_LOOPBACK: is a loopback net. Volatile. -/// @IFF_POINTOPOINT: interface is has p-p link. Volatile. -/// @IFF_NOTRAILERS: avoid use of trailers. Can be toggled through sysfs. -/// Volatile. -/// @IFF_RUNNING: interface RFC2863 OPER_UP. Volatile. -/// @IFF_NOARP: no ARP protocol. Can be toggled through sysfs. Volatile. -/// @IFF_PROMISC: receive all packets. Can be toggled through sysfs. -/// @IFF_ALLMULTI: receive all multicast packets. Can be toggled through -/// sysfs. -/// @IFF_MASTER: master of a load balancer. Volatile. -/// @IFF_SLAVE: slave of a load balancer. Volatile. -/// @IFF_MULTICAST: Supports multicast. Can be toggled through sysfs. -/// @IFF_PORTSEL: can set media type. Can be toggled through sysfs. -/// @IFF_AUTOMEDIA: auto media select active. Can be toggled through sysfs. -/// @IFF_DYNAMIC: dialup device with changing addresses. Can be toggled -/// through sysfs. -/// @IFF_LOWER_UP: driver signals L1 up. Volatile. -/// @IFF_DORMANT: driver signals dormant. Volatile. -/// @IFF_ECHO: echo sent packets. Volatile. +#[doc = " enum net_device_flags - &struct net_device flags\n\n These are the &struct net_device flags, they can be set by drivers, the\n kernel and some can be triggered by userspace. Userspace can query and\n set these flags using userspace utilities but there is also a sysfs\n entry available for all dev flags which can be queried and set. These flags\n are shared for all types of net_devices. The sysfs entries are available\n via /sys/class/net//flags. Flags which can be toggled through sysfs\n are annotated below, note that only a few flags can be toggled and some\n other flags are always preserved from the original net_device flags\n even if you try to set them via sysfs. Flags which are always preserved\n are kept under the flag grouping @IFF_VOLATILE. Flags which are __volatile__\n are annotated below as such.\n\n You should have a pretty good reason to be extending these flags.\n\n @IFF_UP: interface is up. Can be toggled through sysfs.\n @IFF_BROADCAST: broadcast address valid. Volatile.\n @IFF_DEBUG: turn on debugging. Can be toggled through sysfs.\n @IFF_LOOPBACK: is a loopback net. Volatile.\n @IFF_POINTOPOINT: interface is has p-p link. Volatile.\n @IFF_NOTRAILERS: avoid use of trailers. Can be toggled through sysfs.\n\tVolatile.\n @IFF_RUNNING: interface RFC2863 OPER_UP. Volatile.\n @IFF_NOARP: no ARP protocol. Can be toggled through sysfs. Volatile.\n @IFF_PROMISC: receive all packets. Can be toggled through sysfs.\n @IFF_ALLMULTI: receive all multicast packets. Can be toggled through\n\tsysfs.\n @IFF_MASTER: master of a load balancer. Volatile.\n @IFF_SLAVE: slave of a load balancer. Volatile.\n @IFF_MULTICAST: Supports multicast. Can be toggled through sysfs.\n @IFF_PORTSEL: can set media type. Can be toggled through sysfs.\n @IFF_AUTOMEDIA: auto media select active. Can be toggled through sysfs.\n @IFF_DYNAMIC: dialup device with changing addresses. Can be toggled\n\tthrough sysfs.\n @IFF_LOWER_UP: driver signals L1 up. Volatile.\n @IFF_DORMANT: driver signals dormant. Volatile.\n @IFF_ECHO: echo sent packets. Volatile."] pub type net_device_flags = ::std::os::raw::c_uint; pub const IF_OPER_UNKNOWN: _bindgen_ty_4 = 0; pub const IF_OPER_NOTPRESENT: _bindgen_ty_4 = 1; @@ -659,6 +562,7 @@ pub const IF_OPER_UP: _bindgen_ty_4 = 6; pub type _bindgen_ty_4 = ::std::os::raw::c_uint; pub const IF_LINK_MODE_DEFAULT: _bindgen_ty_5 = 0; pub const IF_LINK_MODE_DORMANT: _bindgen_ty_5 = 1; +pub const IF_LINK_MODE_TESTING: _bindgen_ty_5 = 2; pub type _bindgen_ty_5 = ::std::os::raw::c_uint; #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] @@ -672,6 +576,8 @@ pub struct ifmap { } #[test] fn bindgen_test_layout_ifmap() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 24usize, @@ -682,108 +588,66 @@ fn bindgen_test_layout_ifmap() { 8usize, concat!("Alignment of ", stringify!(ifmap)) ); - fn test_field_mem_start() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).mem_start) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(mem_start) - ) - ); - } - test_field_mem_start(); - fn test_field_mem_end() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).mem_end) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(mem_end) - ) - ); - } - test_field_mem_end(); - fn test_field_base_addr() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).base_addr) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(base_addr) - ) - ); - } - test_field_base_addr(); - fn test_field_irq() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).irq) as usize - ptr as usize - }, - 18usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(irq) - ) - ); - } - test_field_irq(); - fn test_field_dma() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).dma) as usize - ptr as usize - }, - 19usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(dma) - ) - ); - } - test_field_dma(); - fn test_field_port() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).port) as usize - ptr as usize - }, - 20usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(port) - ) - ); - } - test_field_port(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).mem_start) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ifmap), + "::", + stringify!(mem_start) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).mem_end) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ifmap), + "::", + stringify!(mem_end) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).base_addr) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(ifmap), + "::", + stringify!(base_addr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).irq) as usize - ptr as usize }, + 18usize, + concat!( + "Offset of field: ", + stringify!(ifmap), + "::", + stringify!(irq) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dma) as usize - ptr as usize }, + 19usize, + concat!( + "Offset of field: ", + stringify!(ifmap), + "::", + stringify!(dma) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).port) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(ifmap), + "::", + stringify!(port) + ) + ); } #[repr(C)] #[derive(Copy, Clone)] @@ -800,11 +664,15 @@ pub union if_settings__bindgen_ty_1 { pub fr: *mut fr_proto, pub fr_pvc: *mut fr_proto_pvc, pub fr_pvc_info: *mut fr_proto_pvc_info, + pub x25: *mut x25_hdlc_proto, pub sync: *mut sync_serial_settings, pub te1: *mut te1_settings, } #[test] fn bindgen_test_layout_if_settings__bindgen_ty_1() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 8usize, @@ -815,125 +683,86 @@ fn bindgen_test_layout_if_settings__bindgen_ty_1() { 8usize, concat!("Alignment of ", stringify!(if_settings__bindgen_ty_1)) ); - fn test_field_raw_hdlc() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).raw_hdlc) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(if_settings__bindgen_ty_1), - "::", - stringify!(raw_hdlc) - ) - ); - } - test_field_raw_hdlc(); - fn test_field_cisco() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).cisco) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(if_settings__bindgen_ty_1), - "::", - stringify!(cisco) - ) - ); - } - test_field_cisco(); - fn test_field_fr() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).fr) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(if_settings__bindgen_ty_1), - "::", - stringify!(fr) - ) - ); - } - test_field_fr(); - fn test_field_fr_pvc() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).fr_pvc) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(if_settings__bindgen_ty_1), - "::", - stringify!(fr_pvc) - ) - ); - } - test_field_fr_pvc(); - fn test_field_fr_pvc_info() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).fr_pvc_info) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(if_settings__bindgen_ty_1), - "::", - stringify!(fr_pvc_info) - ) - ); - } - test_field_fr_pvc_info(); - fn test_field_sync() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).sync) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(if_settings__bindgen_ty_1), - "::", - stringify!(sync) - ) - ); - } - test_field_sync(); - fn test_field_te1() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).te1) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(if_settings__bindgen_ty_1), - "::", - stringify!(te1) - ) - ); - } - test_field_te1(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).raw_hdlc) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(if_settings__bindgen_ty_1), + "::", + stringify!(raw_hdlc) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).cisco) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(if_settings__bindgen_ty_1), + "::", + stringify!(cisco) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).fr) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(if_settings__bindgen_ty_1), + "::", + stringify!(fr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).fr_pvc) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(if_settings__bindgen_ty_1), + "::", + stringify!(fr_pvc) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).fr_pvc_info) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(if_settings__bindgen_ty_1), + "::", + stringify!(fr_pvc_info) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).x25) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(if_settings__bindgen_ty_1), + "::", + stringify!(x25) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).sync) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(if_settings__bindgen_ty_1), + "::", + stringify!(sync) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).te1) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(if_settings__bindgen_ty_1), + "::", + stringify!(te1) + ) + ); } impl Default for if_settings__bindgen_ty_1 { fn default() -> Self { @@ -946,6 +775,8 @@ impl Default for if_settings__bindgen_ty_1 { } #[test] fn bindgen_test_layout_if_settings() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 16usize, @@ -956,57 +787,36 @@ fn bindgen_test_layout_if_settings() { 8usize, concat!("Alignment of ", stringify!(if_settings)) ); - fn test_field_type() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(if_settings), - "::", - stringify!(type_) - ) - ); - } - test_field_type(); - fn test_field_size() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize - }, - 4usize, - concat!( - "Offset of field: ", - stringify!(if_settings), - "::", - stringify!(size) - ) - ); - } - test_field_size(); - fn test_field_ifs_ifsu() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).ifs_ifsu) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(if_settings), - "::", - stringify!(ifs_ifsu) - ) - ); - } - test_field_ifs_ifsu(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(if_settings), + "::", + stringify!(type_) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(if_settings), + "::", + stringify!(size) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ifs_ifsu) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(if_settings), + "::", + stringify!(ifs_ifsu) + ) + ); } impl Default for if_settings { fn default() -> Self { @@ -1030,6 +840,8 @@ pub union ifreq__bindgen_ty_1 { } #[test] fn bindgen_test_layout_ifreq__bindgen_ty_1() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 16usize, @@ -1040,23 +852,16 @@ fn bindgen_test_layout_ifreq__bindgen_ty_1() { 1usize, concat!("Alignment of ", stringify!(ifreq__bindgen_ty_1)) ); - fn test_field_ifrn_name() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).ifrn_name) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_1), - "::", - stringify!(ifrn_name) - ) - ); - } - test_field_ifrn_name(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ifrn_name) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ifreq__bindgen_ty_1), + "::", + stringify!(ifrn_name) + ) + ); } impl Default for ifreq__bindgen_ty_1 { fn default() -> Self { @@ -1086,6 +891,8 @@ pub union ifreq__bindgen_ty_2 { } #[test] fn bindgen_test_layout_ifreq__bindgen_ty_2() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 24usize, @@ -1096,227 +903,136 @@ fn bindgen_test_layout_ifreq__bindgen_ty_2() { 8usize, concat!("Alignment of ", stringify!(ifreq__bindgen_ty_2)) ); - fn test_field_ifru_addr() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).ifru_addr) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_addr) - ) - ); - } - test_field_ifru_addr(); - fn test_field_ifru_dstaddr() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).ifru_dstaddr) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_dstaddr) - ) - ); - } - test_field_ifru_dstaddr(); - fn test_field_ifru_broadaddr() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).ifru_broadaddr) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_broadaddr) - ) - ); - } - test_field_ifru_broadaddr(); - fn test_field_ifru_netmask() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).ifru_netmask) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_netmask) - ) - ); - } - test_field_ifru_netmask(); - fn test_field_ifru_hwaddr() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).ifru_hwaddr) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_hwaddr) - ) - ); - } - test_field_ifru_hwaddr(); - fn test_field_ifru_flags() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).ifru_flags) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_flags) - ) - ); - } - test_field_ifru_flags(); - fn test_field_ifru_ivalue() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).ifru_ivalue) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_ivalue) - ) - ); - } - test_field_ifru_ivalue(); - fn test_field_ifru_mtu() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).ifru_mtu) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_mtu) - ) - ); - } - test_field_ifru_mtu(); - fn test_field_ifru_map() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).ifru_map) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_map) - ) - ); - } - test_field_ifru_map(); - fn test_field_ifru_slave() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).ifru_slave) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_slave) - ) - ); - } - test_field_ifru_slave(); - fn test_field_ifru_newname() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).ifru_newname) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_newname) - ) - ); - } - test_field_ifru_newname(); - fn test_field_ifru_data() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).ifru_data) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_data) - ) - ); - } - test_field_ifru_data(); - fn test_field_ifru_settings() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).ifru_settings) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_settings) - ) - ); - } - test_field_ifru_settings(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ifru_addr) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ifreq__bindgen_ty_2), + "::", + stringify!(ifru_addr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ifru_dstaddr) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ifreq__bindgen_ty_2), + "::", + stringify!(ifru_dstaddr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ifru_broadaddr) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ifreq__bindgen_ty_2), + "::", + stringify!(ifru_broadaddr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ifru_netmask) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ifreq__bindgen_ty_2), + "::", + stringify!(ifru_netmask) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ifru_hwaddr) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ifreq__bindgen_ty_2), + "::", + stringify!(ifru_hwaddr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ifru_flags) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ifreq__bindgen_ty_2), + "::", + stringify!(ifru_flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ifru_ivalue) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ifreq__bindgen_ty_2), + "::", + stringify!(ifru_ivalue) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ifru_mtu) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ifreq__bindgen_ty_2), + "::", + stringify!(ifru_mtu) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ifru_map) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ifreq__bindgen_ty_2), + "::", + stringify!(ifru_map) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ifru_slave) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ifreq__bindgen_ty_2), + "::", + stringify!(ifru_slave) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ifru_newname) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ifreq__bindgen_ty_2), + "::", + stringify!(ifru_newname) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ifru_data) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ifreq__bindgen_ty_2), + "::", + stringify!(ifru_data) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ifru_settings) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ifreq__bindgen_ty_2), + "::", + stringify!(ifru_settings) + ) + ); } impl Default for ifreq__bindgen_ty_2 { fn default() -> Self { @@ -1329,6 +1045,8 @@ impl Default for ifreq__bindgen_ty_2 { } #[test] fn bindgen_test_layout_ifreq() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 40usize, @@ -1339,40 +1057,26 @@ fn bindgen_test_layout_ifreq() { 8usize, concat!("Alignment of ", stringify!(ifreq)) ); - fn test_field_ifr_ifrn() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).ifr_ifrn) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq), - "::", - stringify!(ifr_ifrn) - ) - ); - } - test_field_ifr_ifrn(); - fn test_field_ifr_ifru() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).ifr_ifru) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ifreq), - "::", - stringify!(ifr_ifru) - ) - ); - } - test_field_ifr_ifru(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ifr_ifrn) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ifreq), + "::", + stringify!(ifr_ifrn) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ifr_ifru) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(ifreq), + "::", + stringify!(ifr_ifru) + ) + ); } impl Default for ifreq { fn default() -> Self { @@ -1397,6 +1101,8 @@ pub union ifconf__bindgen_ty_1 { } #[test] fn bindgen_test_layout_ifconf__bindgen_ty_1() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 8usize, @@ -1407,40 +1113,26 @@ fn bindgen_test_layout_ifconf__bindgen_ty_1() { 8usize, concat!("Alignment of ", stringify!(ifconf__bindgen_ty_1)) ); - fn test_field_ifcu_buf() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).ifcu_buf) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifconf__bindgen_ty_1), - "::", - stringify!(ifcu_buf) - ) - ); - } - test_field_ifcu_buf(); - fn test_field_ifcu_req() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).ifcu_req) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifconf__bindgen_ty_1), - "::", - stringify!(ifcu_req) - ) - ); - } - test_field_ifcu_req(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ifcu_buf) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ifconf__bindgen_ty_1), + "::", + stringify!(ifcu_buf) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ifcu_req) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ifconf__bindgen_ty_1), + "::", + stringify!(ifcu_req) + ) + ); } impl Default for ifconf__bindgen_ty_1 { fn default() -> Self { @@ -1453,6 +1145,8 @@ impl Default for ifconf__bindgen_ty_1 { } #[test] fn bindgen_test_layout_ifconf() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 16usize, @@ -1463,40 +1157,26 @@ fn bindgen_test_layout_ifconf() { 8usize, concat!("Alignment of ", stringify!(ifconf)) ); - fn test_field_ifc_len() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).ifc_len) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifconf), - "::", - stringify!(ifc_len) - ) - ); - } - test_field_ifc_len(); - fn test_field_ifc_ifcu() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).ifc_ifcu) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ifconf), - "::", - stringify!(ifc_ifcu) - ) - ); - } - test_field_ifc_ifcu(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ifc_len) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ifconf), + "::", + stringify!(ifc_len) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ifc_ifcu) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ifconf), + "::", + stringify!(ifc_ifcu) + ) + ); } impl Default for ifconf { fn default() -> Self { diff --git a/src/vmm/src/devices/virtio/net/gen/sockios.rs b/src/vmm/src/devices/virtio/net/gen/sockios.rs index e8a25ca53ad..9f8c8cd45f7 100644 --- a/src/vmm/src/devices/virtio/net/gen/sockios.rs +++ b/src/vmm/src/devices/virtio/net/gen/sockios.rs @@ -1,4 +1,4 @@ -// Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. +// Copyright 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 // automatically generated by tools/bindgen.sh @@ -15,14 +15,17 @@ clippy::tests_outside_test_module )] +pub const __BITS_PER_LONG: u32 = 64; pub const FIOSETOWN: u32 = 35073; pub const SIOCSPGRP: u32 = 35074; pub const FIOGETOWN: u32 = 35075; pub const SIOCGPGRP: u32 = 35076; pub const SIOCATMARK: u32 = 35077; +pub const SIOCGSTAMP_OLD: u32 = 35078; +pub const SIOCGSTAMPNS_OLD: u32 = 35079; +pub const SOCK_IOC_TYPE: u32 = 137; pub const SIOCGSTAMP: u32 = 35078; pub const SIOCGSTAMPNS: u32 = 35079; -pub const SOCK_IOC_TYPE: u32 = 137; pub const SIOCADDRT: u32 = 35083; pub const SIOCDELRT: u32 = 35084; pub const SIOCRTMSG: u32 = 35085; diff --git a/src/vmm/src/io_uring/bindings.rs b/src/vmm/src/io_uring/bindings.rs index c15ed873807..6572b8462d5 100644 --- a/src/vmm/src/io_uring/bindings.rs +++ b/src/vmm/src/io_uring/bindings.rs @@ -1,4 +1,4 @@ -// Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. +// Copyright 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 // automatically generated by tools/bindgen.sh @@ -54,7 +54,17 @@ pub const IORING_SETUP_ATTACH_WQ: u32 = 32; pub const IORING_SETUP_R_DISABLED: u32 = 64; pub const IORING_FSYNC_DATASYNC: u32 = 1; pub const IORING_TIMEOUT_ABS: u32 = 1; +pub const IORING_TIMEOUT_UPDATE: u32 = 2; +pub const IORING_TIMEOUT_BOOTTIME: u32 = 4; +pub const IORING_TIMEOUT_REALTIME: u32 = 8; +pub const IORING_LINK_TIMEOUT_UPDATE: u32 = 16; +pub const IORING_TIMEOUT_CLOCK_MASK: u32 = 12; +pub const IORING_TIMEOUT_UPDATE_MASK: u32 = 18; +pub const IORING_POLL_ADD_MULTI: u32 = 1; +pub const IORING_POLL_UPDATE_EVENTS: u32 = 2; +pub const IORING_POLL_UPDATE_USER_DATA: u32 = 4; pub const IORING_CQE_F_BUFFER: u32 = 1; +pub const IORING_CQE_F_MORE: u32 = 2; pub const IORING_OFF_SQ_RING: u32 = 0; pub const IORING_OFF_CQ_RING: u32 = 134217728; pub const IORING_OFF_SQES: u32 = 268435456; @@ -64,6 +74,7 @@ pub const IORING_CQ_EVENTFD_DISABLED: u32 = 1; pub const IORING_ENTER_GETEVENTS: u32 = 1; pub const IORING_ENTER_SQ_WAKEUP: u32 = 2; pub const IORING_ENTER_SQ_WAIT: u32 = 4; +pub const IORING_ENTER_EXT_ARG: u32 = 8; pub const IORING_FEAT_SINGLE_MMAP: u32 = 1; pub const IORING_FEAT_NODROP: u32 = 2; pub const IORING_FEAT_SUBMIT_STABLE: u32 = 4; @@ -71,6 +82,11 @@ pub const IORING_FEAT_RW_CUR_POS: u32 = 8; pub const IORING_FEAT_CUR_PERSONALITY: u32 = 16; pub const IORING_FEAT_FAST_POLL: u32 = 32; pub const IORING_FEAT_POLL_32BITS: u32 = 64; +pub const IORING_FEAT_SQPOLL_NONFIXED: u32 = 128; +pub const IORING_FEAT_EXT_ARG: u32 = 256; +pub const IORING_FEAT_NATIVE_WORKERS: u32 = 512; +pub const IORING_FEAT_RSRC_TAGS: u32 = 1024; +pub const IORING_REGISTER_FILES_SKIP: i32 = -2; pub const IO_URING_OP_SUPPORTED: u32 = 1; pub type __u8 = ::std::os::raw::c_uchar; pub type __u16 = ::std::os::raw::c_ushort; @@ -91,6 +107,9 @@ pub struct io_uring_sqe { pub __bindgen_anon_3: io_uring_sqe__bindgen_ty_3, pub user_data: __u64, pub __bindgen_anon_4: io_uring_sqe__bindgen_ty_4, + pub personality: __u16, + pub __bindgen_anon_5: io_uring_sqe__bindgen_ty_5, + pub __pad2: [__u64; 2usize], } #[repr(C)] #[derive(Copy, Clone)] @@ -100,6 +119,9 @@ pub union io_uring_sqe__bindgen_ty_1 { } #[test] fn bindgen_test_layout_io_uring_sqe__bindgen_ty_1() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 8usize, @@ -110,40 +132,26 @@ fn bindgen_test_layout_io_uring_sqe__bindgen_ty_1() { 8usize, concat!("Alignment of ", stringify!(io_uring_sqe__bindgen_ty_1)) ); - fn test_field_off() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).off) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(io_uring_sqe__bindgen_ty_1), - "::", - stringify!(off) - ) - ); - } - test_field_off(); - fn test_field_addr2() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).addr2) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(io_uring_sqe__bindgen_ty_1), - "::", - stringify!(addr2) - ) - ); - } - test_field_addr2(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).off) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(io_uring_sqe__bindgen_ty_1), + "::", + stringify!(off) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).addr2) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(io_uring_sqe__bindgen_ty_1), + "::", + stringify!(addr2) + ) + ); } impl Default for io_uring_sqe__bindgen_ty_1 { fn default() -> Self { @@ -162,6 +170,9 @@ pub union io_uring_sqe__bindgen_ty_2 { } #[test] fn bindgen_test_layout_io_uring_sqe__bindgen_ty_2() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 8usize, @@ -172,40 +183,26 @@ fn bindgen_test_layout_io_uring_sqe__bindgen_ty_2() { 8usize, concat!("Alignment of ", stringify!(io_uring_sqe__bindgen_ty_2)) ); - fn test_field_addr() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).addr) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(io_uring_sqe__bindgen_ty_2), - "::", - stringify!(addr) - ) - ); - } - test_field_addr(); - fn test_field_splice_off_in() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).splice_off_in) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(io_uring_sqe__bindgen_ty_2), - "::", - stringify!(splice_off_in) - ) - ); - } - test_field_splice_off_in(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).addr) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(io_uring_sqe__bindgen_ty_2), + "::", + stringify!(addr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).splice_off_in) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(io_uring_sqe__bindgen_ty_2), + "::", + stringify!(splice_off_in) + ) + ); } impl Default for io_uring_sqe__bindgen_ty_2 { fn default() -> Self { @@ -232,9 +229,15 @@ pub union io_uring_sqe__bindgen_ty_3 { pub statx_flags: __u32, pub fadvise_advice: __u32, pub splice_flags: __u32, + pub rename_flags: __u32, + pub unlink_flags: __u32, + pub hardlink_flags: __u32, } #[test] fn bindgen_test_layout_io_uring_sqe__bindgen_ty_3() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 4usize, @@ -245,227 +248,166 @@ fn bindgen_test_layout_io_uring_sqe__bindgen_ty_3() { 4usize, concat!("Alignment of ", stringify!(io_uring_sqe__bindgen_ty_3)) ); - fn test_field_rw_flags() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).rw_flags) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(io_uring_sqe__bindgen_ty_3), - "::", - stringify!(rw_flags) - ) - ); - } - test_field_rw_flags(); - fn test_field_fsync_flags() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).fsync_flags) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(io_uring_sqe__bindgen_ty_3), - "::", - stringify!(fsync_flags) - ) - ); - } - test_field_fsync_flags(); - fn test_field_poll_events() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).poll_events) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(io_uring_sqe__bindgen_ty_3), - "::", - stringify!(poll_events) - ) - ); - } - test_field_poll_events(); - fn test_field_poll32_events() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).poll32_events) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(io_uring_sqe__bindgen_ty_3), - "::", - stringify!(poll32_events) - ) - ); - } - test_field_poll32_events(); - fn test_field_sync_range_flags() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).sync_range_flags) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(io_uring_sqe__bindgen_ty_3), - "::", - stringify!(sync_range_flags) - ) - ); - } - test_field_sync_range_flags(); - fn test_field_msg_flags() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).msg_flags) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(io_uring_sqe__bindgen_ty_3), - "::", - stringify!(msg_flags) - ) - ); - } - test_field_msg_flags(); - fn test_field_timeout_flags() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).timeout_flags) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(io_uring_sqe__bindgen_ty_3), - "::", - stringify!(timeout_flags) - ) - ); - } - test_field_timeout_flags(); - fn test_field_accept_flags() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).accept_flags) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(io_uring_sqe__bindgen_ty_3), - "::", - stringify!(accept_flags) - ) - ); - } - test_field_accept_flags(); - fn test_field_cancel_flags() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).cancel_flags) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(io_uring_sqe__bindgen_ty_3), - "::", - stringify!(cancel_flags) - ) - ); - } - test_field_cancel_flags(); - fn test_field_open_flags() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).open_flags) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(io_uring_sqe__bindgen_ty_3), - "::", - stringify!(open_flags) - ) - ); - } - test_field_open_flags(); - fn test_field_statx_flags() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).statx_flags) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(io_uring_sqe__bindgen_ty_3), - "::", - stringify!(statx_flags) - ) - ); - } - test_field_statx_flags(); - fn test_field_fadvise_advice() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).fadvise_advice) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(io_uring_sqe__bindgen_ty_3), - "::", - stringify!(fadvise_advice) - ) - ); - } - test_field_fadvise_advice(); - fn test_field_splice_flags() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).splice_flags) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(io_uring_sqe__bindgen_ty_3), - "::", - stringify!(splice_flags) - ) - ); - } - test_field_splice_flags(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).rw_flags) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(io_uring_sqe__bindgen_ty_3), + "::", + stringify!(rw_flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).fsync_flags) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(io_uring_sqe__bindgen_ty_3), + "::", + stringify!(fsync_flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).poll_events) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(io_uring_sqe__bindgen_ty_3), + "::", + stringify!(poll_events) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).poll32_events) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(io_uring_sqe__bindgen_ty_3), + "::", + stringify!(poll32_events) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).sync_range_flags) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(io_uring_sqe__bindgen_ty_3), + "::", + stringify!(sync_range_flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).msg_flags) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(io_uring_sqe__bindgen_ty_3), + "::", + stringify!(msg_flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).timeout_flags) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(io_uring_sqe__bindgen_ty_3), + "::", + stringify!(timeout_flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).accept_flags) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(io_uring_sqe__bindgen_ty_3), + "::", + stringify!(accept_flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).cancel_flags) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(io_uring_sqe__bindgen_ty_3), + "::", + stringify!(cancel_flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).open_flags) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(io_uring_sqe__bindgen_ty_3), + "::", + stringify!(open_flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).statx_flags) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(io_uring_sqe__bindgen_ty_3), + "::", + stringify!(statx_flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).fadvise_advice) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(io_uring_sqe__bindgen_ty_3), + "::", + stringify!(fadvise_advice) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).splice_flags) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(io_uring_sqe__bindgen_ty_3), + "::", + stringify!(splice_flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).rename_flags) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(io_uring_sqe__bindgen_ty_3), + "::", + stringify!(rename_flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).unlink_flags) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(io_uring_sqe__bindgen_ty_3), + "::", + stringify!(unlink_flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).hardlink_flags) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(io_uring_sqe__bindgen_ty_3), + "::", + stringify!(hardlink_flags) + ) + ); } impl Default for io_uring_sqe__bindgen_ty_3 { fn default() -> Self { @@ -476,147 +418,49 @@ impl Default for io_uring_sqe__bindgen_ty_3 { } } } -#[repr(C)] -#[derive(Copy, Clone)] -pub union io_uring_sqe__bindgen_ty_4 { - pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_4__bindgen_ty_1, - pub __pad2: [__u64; 3usize], -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct io_uring_sqe__bindgen_ty_4__bindgen_ty_1 { - pub __bindgen_anon_1: io_uring_sqe__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1, - pub personality: __u16, - pub splice_fd_in: __s32, -} #[repr(C, packed)] #[derive(Copy, Clone)] -pub union io_uring_sqe__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1 { +pub union io_uring_sqe__bindgen_ty_4 { pub buf_index: __u16, pub buf_group: __u16, } #[test] -fn bindgen_test_layout_io_uring_sqe__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1() { +fn bindgen_test_layout_io_uring_sqe__bindgen_ty_4() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( - ::std::mem::size_of::(), + ::std::mem::size_of::(), 2usize, - concat!( - "Size of: ", - stringify!(io_uring_sqe__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1) - ) + concat!("Size of: ", stringify!(io_uring_sqe__bindgen_ty_4)) ); assert_eq!( - ::std::mem::align_of::(), + ::std::mem::align_of::(), 1usize, - concat!( - "Alignment of ", - stringify!(io_uring_sqe__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1) - ) - ); - fn test_field_buf_index() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::< - io_uring_sqe__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1, - >::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).buf_index) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(io_uring_sqe__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(buf_index) - ) - ); - } - test_field_buf_index(); - fn test_field_buf_group() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::< - io_uring_sqe__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1, - >::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).buf_group) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(io_uring_sqe__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(buf_group) - ) - ); - } - test_field_buf_group(); -} -impl Default for io_uring_sqe__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_io_uring_sqe__bindgen_ty_4__bindgen_ty_1() { + concat!("Alignment of ", stringify!(io_uring_sqe__bindgen_ty_4)) + ); assert_eq!( - ::std::mem::size_of::(), - 8usize, + unsafe { ::std::ptr::addr_of!((*ptr).buf_index) as usize - ptr as usize }, + 0usize, concat!( - "Size of: ", - stringify!(io_uring_sqe__bindgen_ty_4__bindgen_ty_1) + "Offset of field: ", + stringify!(io_uring_sqe__bindgen_ty_4), + "::", + stringify!(buf_index) ) ); assert_eq!( - ::std::mem::align_of::(), - 4usize, + unsafe { ::std::ptr::addr_of!((*ptr).buf_group) as usize - ptr as usize }, + 0usize, concat!( - "Alignment of ", - stringify!(io_uring_sqe__bindgen_ty_4__bindgen_ty_1) - ) - ); - fn test_field_personality() { - assert_eq!( - unsafe { - let uninit = - ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).personality) as usize - ptr as usize - }, - 2usize, - concat!( - "Offset of field: ", - stringify!(io_uring_sqe__bindgen_ty_4__bindgen_ty_1), - "::", - stringify!(personality) - ) - ); - } - test_field_personality(); - fn test_field_splice_fd_in() { - assert_eq!( - unsafe { - let uninit = - ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).splice_fd_in) as usize - ptr as usize - }, - 4usize, - concat!( - "Offset of field: ", - stringify!(io_uring_sqe__bindgen_ty_4__bindgen_ty_1), - "::", - stringify!(splice_fd_in) - ) - ); - } - test_field_splice_fd_in(); + "Offset of field: ", + stringify!(io_uring_sqe__bindgen_ty_4), + "::", + stringify!(buf_group) + ) + ); } -impl Default for io_uring_sqe__bindgen_ty_4__bindgen_ty_1 { +impl Default for io_uring_sqe__bindgen_ty_4 { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { @@ -625,37 +469,49 @@ impl Default for io_uring_sqe__bindgen_ty_4__bindgen_ty_1 { } } } +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_5 { + pub splice_fd_in: __s32, + pub file_index: __u32, +} #[test] -fn bindgen_test_layout_io_uring_sqe__bindgen_ty_4() { +fn bindgen_test_layout_io_uring_sqe__bindgen_ty_5() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(io_uring_sqe__bindgen_ty_4)) + ::std::mem::size_of::(), + 4usize, + concat!("Size of: ", stringify!(io_uring_sqe__bindgen_ty_5)) ); assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(io_uring_sqe__bindgen_ty_4)) + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(io_uring_sqe__bindgen_ty_5)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).splice_fd_in) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(io_uring_sqe__bindgen_ty_5), + "::", + stringify!(splice_fd_in) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).file_index) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(io_uring_sqe__bindgen_ty_5), + "::", + stringify!(file_index) + ) ); - fn test_field___pad2() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).__pad2) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(io_uring_sqe__bindgen_ty_4), - "::", - stringify!(__pad2) - ) - ); - } - test_field___pad2(); } -impl Default for io_uring_sqe__bindgen_ty_4 { +impl Default for io_uring_sqe__bindgen_ty_5 { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { @@ -666,6 +522,8 @@ impl Default for io_uring_sqe__bindgen_ty_4 { } #[test] fn bindgen_test_layout_io_uring_sqe() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 64usize, @@ -676,108 +534,86 @@ fn bindgen_test_layout_io_uring_sqe() { 8usize, concat!("Alignment of ", stringify!(io_uring_sqe)) ); - fn test_field_opcode() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).opcode) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(io_uring_sqe), - "::", - stringify!(opcode) - ) - ); - } - test_field_opcode(); - fn test_field_flags() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize - }, - 1usize, - concat!( - "Offset of field: ", - stringify!(io_uring_sqe), - "::", - stringify!(flags) - ) - ); - } - test_field_flags(); - fn test_field_ioprio() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).ioprio) as usize - ptr as usize - }, - 2usize, - concat!( - "Offset of field: ", - stringify!(io_uring_sqe), - "::", - stringify!(ioprio) - ) - ); - } - test_field_ioprio(); - fn test_field_fd() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).fd) as usize - ptr as usize - }, - 4usize, - concat!( - "Offset of field: ", - stringify!(io_uring_sqe), - "::", - stringify!(fd) - ) - ); - } - test_field_fd(); - fn test_field_len() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize - }, - 24usize, - concat!( - "Offset of field: ", - stringify!(io_uring_sqe), - "::", - stringify!(len) - ) - ); - } - test_field_len(); - fn test_field_user_data() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).user_data) as usize - ptr as usize - }, - 32usize, - concat!( - "Offset of field: ", - stringify!(io_uring_sqe), - "::", - stringify!(user_data) - ) - ); - } - test_field_user_data(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).opcode) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(io_uring_sqe), + "::", + stringify!(opcode) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 1usize, + concat!( + "Offset of field: ", + stringify!(io_uring_sqe), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ioprio) as usize - ptr as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(io_uring_sqe), + "::", + stringify!(ioprio) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).fd) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(io_uring_sqe), + "::", + stringify!(fd) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(io_uring_sqe), + "::", + stringify!(len) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).user_data) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(io_uring_sqe), + "::", + stringify!(user_data) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).personality) as usize - ptr as usize }, + 42usize, + concat!( + "Offset of field: ", + stringify!(io_uring_sqe), + "::", + stringify!(personality) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).__pad2) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(io_uring_sqe), + "::", + stringify!(__pad2) + ) + ); } impl Default for io_uring_sqe { fn default() -> Self { @@ -829,10 +665,13 @@ pub const IORING_OP_SPLICE: _bindgen_ty_2 = 30; pub const IORING_OP_PROVIDE_BUFFERS: _bindgen_ty_2 = 31; pub const IORING_OP_REMOVE_BUFFERS: _bindgen_ty_2 = 32; pub const IORING_OP_TEE: _bindgen_ty_2 = 33; -pub const IORING_OP_LAST: _bindgen_ty_2 = 34; +pub const IORING_OP_SHUTDOWN: _bindgen_ty_2 = 34; +pub const IORING_OP_RENAMEAT: _bindgen_ty_2 = 35; +pub const IORING_OP_UNLINKAT: _bindgen_ty_2 = 36; +pub const IORING_OP_LAST: _bindgen_ty_2 = 37; pub type _bindgen_ty_2 = ::std::os::raw::c_uint; #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct io_uring_cqe { pub user_data: __u64, pub res: __s32, @@ -840,6 +679,8 @@ pub struct io_uring_cqe { } #[test] fn bindgen_test_layout_io_uring_cqe() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 16usize, @@ -850,62 +691,41 @@ fn bindgen_test_layout_io_uring_cqe() { 8usize, concat!("Alignment of ", stringify!(io_uring_cqe)) ); - fn test_field_user_data() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).user_data) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(io_uring_cqe), - "::", - stringify!(user_data) - ) - ); - } - test_field_user_data(); - fn test_field_res() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).res) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(io_uring_cqe), - "::", - stringify!(res) - ) - ); - } - test_field_res(); - fn test_field_flags() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize - }, - 12usize, - concat!( - "Offset of field: ", - stringify!(io_uring_cqe), - "::", - stringify!(flags) - ) - ); - } - test_field_flags(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).user_data) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(io_uring_cqe), + "::", + stringify!(user_data) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).res) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(io_uring_cqe), + "::", + stringify!(res) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(io_uring_cqe), + "::", + stringify!(flags) + ) + ); } pub const IORING_CQE_BUFFER_SHIFT: _bindgen_ty_3 = 16; pub type _bindgen_ty_3 = ::std::os::raw::c_uint; #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct io_sqring_offsets { pub head: __u32, pub tail: __u32, @@ -919,6 +739,8 @@ pub struct io_sqring_offsets { } #[test] fn bindgen_test_layout_io_sqring_offsets() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 40usize, @@ -929,341 +751,217 @@ fn bindgen_test_layout_io_sqring_offsets() { 8usize, concat!("Alignment of ", stringify!(io_sqring_offsets)) ); - fn test_field_head() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).head) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(io_sqring_offsets), - "::", - stringify!(head) - ) - ); - } - test_field_head(); - fn test_field_tail() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).tail) as usize - ptr as usize - }, - 4usize, - concat!( - "Offset of field: ", - stringify!(io_sqring_offsets), - "::", - stringify!(tail) - ) - ); - } - test_field_tail(); - fn test_field_ring_mask() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).ring_mask) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(io_sqring_offsets), - "::", - stringify!(ring_mask) - ) - ); - } - test_field_ring_mask(); - fn test_field_ring_entries() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).ring_entries) as usize - ptr as usize - }, - 12usize, - concat!( - "Offset of field: ", - stringify!(io_sqring_offsets), - "::", - stringify!(ring_entries) - ) - ); - } - test_field_ring_entries(); - fn test_field_flags() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(io_sqring_offsets), - "::", - stringify!(flags) - ) - ); - } - test_field_flags(); - fn test_field_dropped() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).dropped) as usize - ptr as usize - }, - 20usize, - concat!( - "Offset of field: ", - stringify!(io_sqring_offsets), - "::", - stringify!(dropped) - ) - ); - } - test_field_dropped(); - fn test_field_array() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).array) as usize - ptr as usize - }, - 24usize, - concat!( - "Offset of field: ", - stringify!(io_sqring_offsets), - "::", - stringify!(array) - ) - ); - } - test_field_array(); - fn test_field_resv1() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).resv1) as usize - ptr as usize - }, - 28usize, - concat!( - "Offset of field: ", - stringify!(io_sqring_offsets), - "::", - stringify!(resv1) - ) - ); - } - test_field_resv1(); - fn test_field_resv2() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).resv2) as usize - ptr as usize - }, - 32usize, - concat!( - "Offset of field: ", - stringify!(io_sqring_offsets), - "::", - stringify!(resv2) - ) - ); - } - test_field_resv2(); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)] -pub struct io_cqring_offsets { - pub head: __u32, - pub tail: __u32, - pub ring_mask: __u32, - pub ring_entries: __u32, - pub overflow: __u32, - pub cqes: __u32, - pub flags: __u32, - pub resv1: __u32, - pub resv2: __u64, -} -#[test] -fn bindgen_test_layout_io_cqring_offsets() { assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(io_cqring_offsets)) + unsafe { ::std::ptr::addr_of!((*ptr).head) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(io_sqring_offsets), + "::", + stringify!(head) + ) ); assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(io_cqring_offsets)) + unsafe { ::std::ptr::addr_of!((*ptr).tail) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(io_sqring_offsets), + "::", + stringify!(tail) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ring_mask) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(io_sqring_offsets), + "::", + stringify!(ring_mask) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ring_entries) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(io_sqring_offsets), + "::", + stringify!(ring_entries) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(io_sqring_offsets), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dropped) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(io_sqring_offsets), + "::", + stringify!(dropped) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).array) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(io_sqring_offsets), + "::", + stringify!(array) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).resv1) as usize - ptr as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(io_sqring_offsets), + "::", + stringify!(resv1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).resv2) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(io_sqring_offsets), + "::", + stringify!(resv2) + ) + ); +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct io_cqring_offsets { + pub head: __u32, + pub tail: __u32, + pub ring_mask: __u32, + pub ring_entries: __u32, + pub overflow: __u32, + pub cqes: __u32, + pub flags: __u32, + pub resv1: __u32, + pub resv2: __u64, +} +#[test] +fn bindgen_test_layout_io_cqring_offsets() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 40usize, + concat!("Size of: ", stringify!(io_cqring_offsets)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(io_cqring_offsets)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).head) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(io_cqring_offsets), + "::", + stringify!(head) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tail) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(io_cqring_offsets), + "::", + stringify!(tail) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ring_mask) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(io_cqring_offsets), + "::", + stringify!(ring_mask) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ring_entries) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(io_cqring_offsets), + "::", + stringify!(ring_entries) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).overflow) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(io_cqring_offsets), + "::", + stringify!(overflow) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).cqes) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(io_cqring_offsets), + "::", + stringify!(cqes) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(io_cqring_offsets), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).resv1) as usize - ptr as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(io_cqring_offsets), + "::", + stringify!(resv1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).resv2) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(io_cqring_offsets), + "::", + stringify!(resv2) + ) ); - fn test_field_head() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).head) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(io_cqring_offsets), - "::", - stringify!(head) - ) - ); - } - test_field_head(); - fn test_field_tail() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).tail) as usize - ptr as usize - }, - 4usize, - concat!( - "Offset of field: ", - stringify!(io_cqring_offsets), - "::", - stringify!(tail) - ) - ); - } - test_field_tail(); - fn test_field_ring_mask() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).ring_mask) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(io_cqring_offsets), - "::", - stringify!(ring_mask) - ) - ); - } - test_field_ring_mask(); - fn test_field_ring_entries() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).ring_entries) as usize - ptr as usize - }, - 12usize, - concat!( - "Offset of field: ", - stringify!(io_cqring_offsets), - "::", - stringify!(ring_entries) - ) - ); - } - test_field_ring_entries(); - fn test_field_overflow() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).overflow) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(io_cqring_offsets), - "::", - stringify!(overflow) - ) - ); - } - test_field_overflow(); - fn test_field_cqes() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).cqes) as usize - ptr as usize - }, - 20usize, - concat!( - "Offset of field: ", - stringify!(io_cqring_offsets), - "::", - stringify!(cqes) - ) - ); - } - test_field_cqes(); - fn test_field_flags() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize - }, - 24usize, - concat!( - "Offset of field: ", - stringify!(io_cqring_offsets), - "::", - stringify!(flags) - ) - ); - } - test_field_flags(); - fn test_field_resv1() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).resv1) as usize - ptr as usize - }, - 28usize, - concat!( - "Offset of field: ", - stringify!(io_cqring_offsets), - "::", - stringify!(resv1) - ) - ); - } - test_field_resv1(); - fn test_field_resv2() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).resv2) as usize - ptr as usize - }, - 32usize, - concat!( - "Offset of field: ", - stringify!(io_cqring_offsets), - "::", - stringify!(resv2) - ) - ); - } - test_field_resv2(); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct io_uring_params { pub sq_entries: __u32, pub cq_entries: __u32, @@ -1278,6 +976,8 @@ pub struct io_uring_params { } #[test] fn bindgen_test_layout_io_uring_params() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 120usize, @@ -1288,176 +988,106 @@ fn bindgen_test_layout_io_uring_params() { 8usize, concat!("Alignment of ", stringify!(io_uring_params)) ); - fn test_field_sq_entries() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).sq_entries) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(io_uring_params), - "::", - stringify!(sq_entries) - ) - ); - } - test_field_sq_entries(); - fn test_field_cq_entries() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).cq_entries) as usize - ptr as usize - }, - 4usize, - concat!( - "Offset of field: ", - stringify!(io_uring_params), - "::", - stringify!(cq_entries) - ) - ); - } - test_field_cq_entries(); - fn test_field_flags() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(io_uring_params), - "::", - stringify!(flags) - ) - ); - } - test_field_flags(); - fn test_field_sq_thread_cpu() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).sq_thread_cpu) as usize - ptr as usize - }, - 12usize, - concat!( - "Offset of field: ", - stringify!(io_uring_params), - "::", - stringify!(sq_thread_cpu) - ) - ); - } - test_field_sq_thread_cpu(); - fn test_field_sq_thread_idle() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).sq_thread_idle) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(io_uring_params), - "::", - stringify!(sq_thread_idle) - ) - ); - } - test_field_sq_thread_idle(); - fn test_field_features() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).features) as usize - ptr as usize - }, - 20usize, - concat!( - "Offset of field: ", - stringify!(io_uring_params), - "::", - stringify!(features) - ) - ); - } - test_field_features(); - fn test_field_wq_fd() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).wq_fd) as usize - ptr as usize - }, - 24usize, - concat!( - "Offset of field: ", - stringify!(io_uring_params), - "::", - stringify!(wq_fd) - ) - ); - } - test_field_wq_fd(); - fn test_field_resv() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).resv) as usize - ptr as usize - }, - 28usize, - concat!( - "Offset of field: ", - stringify!(io_uring_params), - "::", - stringify!(resv) - ) - ); - } - test_field_resv(); - fn test_field_sq_off() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).sq_off) as usize - ptr as usize - }, - 40usize, - concat!( - "Offset of field: ", - stringify!(io_uring_params), - "::", - stringify!(sq_off) - ) - ); - } - test_field_sq_off(); - fn test_field_cq_off() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).cq_off) as usize - ptr as usize - }, - 80usize, - concat!( - "Offset of field: ", - stringify!(io_uring_params), - "::", - stringify!(cq_off) - ) - ); - } - test_field_cq_off(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).sq_entries) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(io_uring_params), + "::", + stringify!(sq_entries) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).cq_entries) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(io_uring_params), + "::", + stringify!(cq_entries) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(io_uring_params), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).sq_thread_cpu) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(io_uring_params), + "::", + stringify!(sq_thread_cpu) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).sq_thread_idle) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(io_uring_params), + "::", + stringify!(sq_thread_idle) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).features) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(io_uring_params), + "::", + stringify!(features) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).wq_fd) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(io_uring_params), + "::", + stringify!(wq_fd) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).resv) as usize - ptr as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(io_uring_params), + "::", + stringify!(resv) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).sq_off) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(io_uring_params), + "::", + stringify!(sq_off) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).cq_off) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(io_uring_params), + "::", + stringify!(cq_off) + ) + ); } pub const IORING_REGISTER_BUFFERS: _bindgen_ty_4 = 0; pub const IORING_UNREGISTER_BUFFERS: _bindgen_ty_4 = 1; @@ -1472,10 +1102,17 @@ pub const IORING_REGISTER_PERSONALITY: _bindgen_ty_4 = 9; pub const IORING_UNREGISTER_PERSONALITY: _bindgen_ty_4 = 10; pub const IORING_REGISTER_RESTRICTIONS: _bindgen_ty_4 = 11; pub const IORING_REGISTER_ENABLE_RINGS: _bindgen_ty_4 = 12; -pub const IORING_REGISTER_LAST: _bindgen_ty_4 = 13; +pub const IORING_REGISTER_FILES2: _bindgen_ty_4 = 13; +pub const IORING_REGISTER_FILES_UPDATE2: _bindgen_ty_4 = 14; +pub const IORING_REGISTER_BUFFERS2: _bindgen_ty_4 = 15; +pub const IORING_REGISTER_BUFFERS_UPDATE: _bindgen_ty_4 = 16; +pub const IORING_REGISTER_IOWQ_AFF: _bindgen_ty_4 = 17; +pub const IORING_UNREGISTER_IOWQ_AFF: _bindgen_ty_4 = 18; +pub const IORING_REGISTER_IOWQ_MAX_WORKERS: _bindgen_ty_4 = 19; +pub const IORING_REGISTER_LAST: _bindgen_ty_4 = 20; pub type _bindgen_ty_4 = ::std::os::raw::c_uint; #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct io_uring_files_update { pub offset: __u32, pub resv: __u32, @@ -1483,6 +1120,9 @@ pub struct io_uring_files_update { } #[test] fn bindgen_test_layout_io_uring_files_update() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 16usize, @@ -1493,60 +1133,252 @@ fn bindgen_test_layout_io_uring_files_update() { 8usize, concat!("Alignment of ", stringify!(io_uring_files_update)) ); - fn test_field_offset() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(io_uring_files_update), - "::", - stringify!(offset) - ) - ); - } - test_field_offset(); - fn test_field_resv() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).resv) as usize - ptr as usize - }, - 4usize, - concat!( - "Offset of field: ", - stringify!(io_uring_files_update), - "::", - stringify!(resv) - ) - ); - } - test_field_resv(); - fn test_field_fds() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).fds) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(io_uring_files_update), - "::", - stringify!(fds) - ) - ); - } - test_field_fds(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(io_uring_files_update), + "::", + stringify!(offset) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).resv) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(io_uring_files_update), + "::", + stringify!(resv) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).fds) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(io_uring_files_update), + "::", + stringify!(fds) + ) + ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct io_uring_rsrc_register { + pub nr: __u32, + pub resv: __u32, + pub resv2: __u64, + pub data: __u64, + pub tags: __u64, +} +#[test] +fn bindgen_test_layout_io_uring_rsrc_register() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(io_uring_rsrc_register)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(io_uring_rsrc_register)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).nr) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(io_uring_rsrc_register), + "::", + stringify!(nr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).resv) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(io_uring_rsrc_register), + "::", + stringify!(resv) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).resv2) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(io_uring_rsrc_register), + "::", + stringify!(resv2) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(io_uring_rsrc_register), + "::", + stringify!(data) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tags) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(io_uring_rsrc_register), + "::", + stringify!(tags) + ) + ); +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct io_uring_rsrc_update { + pub offset: __u32, + pub resv: __u32, + pub data: __u64, +} +#[test] +fn bindgen_test_layout_io_uring_rsrc_update() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(io_uring_rsrc_update)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(io_uring_rsrc_update)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(io_uring_rsrc_update), + "::", + stringify!(offset) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).resv) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(io_uring_rsrc_update), + "::", + stringify!(resv) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(io_uring_rsrc_update), + "::", + stringify!(data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct io_uring_rsrc_update2 { + pub offset: __u32, + pub resv: __u32, + pub data: __u64, + pub tags: __u64, + pub nr: __u32, + pub resv2: __u32, +} +#[test] +fn bindgen_test_layout_io_uring_rsrc_update2() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(io_uring_rsrc_update2)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(io_uring_rsrc_update2)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(io_uring_rsrc_update2), + "::", + stringify!(offset) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).resv) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(io_uring_rsrc_update2), + "::", + stringify!(resv) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(io_uring_rsrc_update2), + "::", + stringify!(data) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).tags) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(io_uring_rsrc_update2), + "::", + stringify!(tags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).nr) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(io_uring_rsrc_update2), + "::", + stringify!(nr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).resv2) as usize - ptr as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(io_uring_rsrc_update2), + "::", + stringify!(resv2) + ) + ); +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct io_uring_probe_op { pub op: __u8, pub resv: __u8, @@ -1555,6 +1387,8 @@ pub struct io_uring_probe_op { } #[test] fn bindgen_test_layout_io_uring_probe_op() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 8usize, @@ -1565,74 +1399,46 @@ fn bindgen_test_layout_io_uring_probe_op() { 4usize, concat!("Alignment of ", stringify!(io_uring_probe_op)) ); - fn test_field_op() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).op) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(io_uring_probe_op), - "::", - stringify!(op) - ) - ); - } - test_field_op(); - fn test_field_resv() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).resv) as usize - ptr as usize - }, - 1usize, - concat!( - "Offset of field: ", - stringify!(io_uring_probe_op), - "::", - stringify!(resv) - ) - ); - } - test_field_resv(); - fn test_field_flags() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize - }, - 2usize, - concat!( - "Offset of field: ", - stringify!(io_uring_probe_op), - "::", - stringify!(flags) - ) - ); - } - test_field_flags(); - fn test_field_resv2() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).resv2) as usize - ptr as usize - }, - 4usize, - concat!( - "Offset of field: ", - stringify!(io_uring_probe_op), - "::", - stringify!(resv2) - ) - ); - } - test_field_resv2(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).op) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(io_uring_probe_op), + "::", + stringify!(op) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).resv) as usize - ptr as usize }, + 1usize, + concat!( + "Offset of field: ", + stringify!(io_uring_probe_op), + "::", + stringify!(resv) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(io_uring_probe_op), + "::", + stringify!(flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).resv2) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(io_uring_probe_op), + "::", + stringify!(resv2) + ) + ); } #[repr(C)] #[derive(Debug, Default)] @@ -1645,6 +1451,8 @@ pub struct io_uring_probe { } #[test] fn bindgen_test_layout_io_uring_probe() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 16usize, @@ -1655,91 +1463,56 @@ fn bindgen_test_layout_io_uring_probe() { 4usize, concat!("Alignment of ", stringify!(io_uring_probe)) ); - fn test_field_last_op() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).last_op) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(io_uring_probe), - "::", - stringify!(last_op) - ) - ); - } - test_field_last_op(); - fn test_field_ops_len() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).ops_len) as usize - ptr as usize - }, - 1usize, - concat!( - "Offset of field: ", - stringify!(io_uring_probe), - "::", - stringify!(ops_len) - ) - ); - } - test_field_ops_len(); - fn test_field_resv() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).resv) as usize - ptr as usize - }, - 2usize, - concat!( - "Offset of field: ", - stringify!(io_uring_probe), - "::", - stringify!(resv) - ) - ); - } - test_field_resv(); - fn test_field_resv2() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).resv2) as usize - ptr as usize - }, - 4usize, - concat!( - "Offset of field: ", - stringify!(io_uring_probe), - "::", - stringify!(resv2) - ) - ); - } - test_field_resv2(); - fn test_field_ops() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).ops) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(io_uring_probe), - "::", - stringify!(ops) - ) - ); - } - test_field_ops(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).last_op) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(io_uring_probe), + "::", + stringify!(last_op) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ops_len) as usize - ptr as usize }, + 1usize, + concat!( + "Offset of field: ", + stringify!(io_uring_probe), + "::", + stringify!(ops_len) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).resv) as usize - ptr as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(io_uring_probe), + "::", + stringify!(resv) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).resv2) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(io_uring_probe), + "::", + stringify!(resv2) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ops) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(io_uring_probe), + "::", + stringify!(ops) + ) + ); } #[repr(C)] #[derive(Copy, Clone)] @@ -1758,6 +1531,9 @@ pub union io_uring_restriction__bindgen_ty_1 { } #[test] fn bindgen_test_layout_io_uring_restriction__bindgen_ty_1() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 1usize, @@ -1771,60 +1547,36 @@ fn bindgen_test_layout_io_uring_restriction__bindgen_ty_1() { stringify!(io_uring_restriction__bindgen_ty_1) ) ); - fn test_field_register_op() { - assert_eq!( - unsafe { - let uninit = - ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).register_op) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(io_uring_restriction__bindgen_ty_1), - "::", - stringify!(register_op) - ) - ); - } - test_field_register_op(); - fn test_field_sqe_op() { - assert_eq!( - unsafe { - let uninit = - ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).sqe_op) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(io_uring_restriction__bindgen_ty_1), - "::", - stringify!(sqe_op) - ) - ); - } - test_field_sqe_op(); - fn test_field_sqe_flags() { - assert_eq!( - unsafe { - let uninit = - ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).sqe_flags) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(io_uring_restriction__bindgen_ty_1), - "::", - stringify!(sqe_flags) - ) - ); - } - test_field_sqe_flags(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).register_op) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(io_uring_restriction__bindgen_ty_1), + "::", + stringify!(register_op) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).sqe_op) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(io_uring_restriction__bindgen_ty_1), + "::", + stringify!(sqe_op) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).sqe_flags) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(io_uring_restriction__bindgen_ty_1), + "::", + stringify!(sqe_flags) + ) + ); } impl Default for io_uring_restriction__bindgen_ty_1 { fn default() -> Self { @@ -1837,6 +1589,8 @@ impl Default for io_uring_restriction__bindgen_ty_1 { } #[test] fn bindgen_test_layout_io_uring_restriction() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::(), 16usize, @@ -1847,57 +1601,36 @@ fn bindgen_test_layout_io_uring_restriction() { 4usize, concat!("Alignment of ", stringify!(io_uring_restriction)) ); - fn test_field_opcode() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).opcode) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(io_uring_restriction), - "::", - stringify!(opcode) - ) - ); - } - test_field_opcode(); - fn test_field_resv() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).resv) as usize - ptr as usize - }, - 3usize, - concat!( - "Offset of field: ", - stringify!(io_uring_restriction), - "::", - stringify!(resv) - ) - ); - } - test_field_resv(); - fn test_field_resv2() { - assert_eq!( - unsafe { - let uninit = ::std::mem::MaybeUninit::::uninit(); - let ptr = uninit.as_ptr(); - ::std::ptr::addr_of!((*ptr).resv2) as usize - ptr as usize - }, - 4usize, - concat!( - "Offset of field: ", - stringify!(io_uring_restriction), - "::", - stringify!(resv2) - ) - ); - } - test_field_resv2(); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).opcode) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(io_uring_restriction), + "::", + stringify!(opcode) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).resv) as usize - ptr as usize }, + 3usize, + concat!( + "Offset of field: ", + stringify!(io_uring_restriction), + "::", + stringify!(resv) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).resv2) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(io_uring_restriction), + "::", + stringify!(resv2) + ) + ); } impl Default for io_uring_restriction { fn default() -> Self { @@ -1908,9 +1641,73 @@ impl Default for io_uring_restriction { } } } -pub const IORING_RESTRICTION_REGISTER_OP: _bindgen_ty_5 = 0; -pub const IORING_RESTRICTION_SQE_OP: _bindgen_ty_5 = 1; -pub const IORING_RESTRICTION_SQE_FLAGS_ALLOWED: _bindgen_ty_5 = 2; -pub const IORING_RESTRICTION_SQE_FLAGS_REQUIRED: _bindgen_ty_5 = 3; -pub const IORING_RESTRICTION_LAST: _bindgen_ty_5 = 4; -pub type _bindgen_ty_5 = ::std::os::raw::c_uint; +pub const IORING_RESTRICTION_REGISTER_OP: _bindgen_ty_6 = 0; +pub const IORING_RESTRICTION_SQE_OP: _bindgen_ty_6 = 1; +pub const IORING_RESTRICTION_SQE_FLAGS_ALLOWED: _bindgen_ty_6 = 2; +pub const IORING_RESTRICTION_SQE_FLAGS_REQUIRED: _bindgen_ty_6 = 3; +pub const IORING_RESTRICTION_LAST: _bindgen_ty_6 = 4; +pub type _bindgen_ty_6 = ::std::os::raw::c_uint; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct io_uring_getevents_arg { + pub sigmask: __u64, + pub sigmask_sz: __u32, + pub pad: __u32, + pub ts: __u64, +} +#[test] +fn bindgen_test_layout_io_uring_getevents_arg() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(io_uring_getevents_arg)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(io_uring_getevents_arg)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).sigmask) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(io_uring_getevents_arg), + "::", + stringify!(sigmask) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).sigmask_sz) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(io_uring_getevents_arg), + "::", + stringify!(sigmask_sz) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pad) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(io_uring_getevents_arg), + "::", + stringify!(pad) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ts) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(io_uring_getevents_arg), + "::", + stringify!(ts) + ) + ); +} diff --git a/tools/bindgen-patches/0001-change-c_char-to-c_uchar-in-ifrn_name.patch b/tools/bindgen-patches/0001-change-c_char-to-c_uchar-in-ifrn_name.patch new file mode 100644 index 00000000000..71b5cfa76e7 --- /dev/null +++ b/tools/bindgen-patches/0001-change-c_char-to-c_uchar-in-ifrn_name.patch @@ -0,0 +1,26 @@ +From 8faa5d38ebe9b6bd27fda01dd8f54d3d91583166 Mon Sep 17 00:00:00 2001 +From: Takahiro Itazuri +Date: Fri, 22 Mar 2024 21:13:26 +0000 +Subject: [PATCH] change c_char to c_uchar in ifrn_name + +Signed-off-by: Takahiro Itazuri +--- + src/vmm/src/devices/virtio/net/gen/iff.rs | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/vmm/src/devices/virtio/net/gen/iff.rs b/src/vmm/src/devices/virtio/net/gen/iff.rs +index 04e38396..54111c6b 100644 +--- a/src/vmm/src/devices/virtio/net/gen/iff.rs ++++ b/src/vmm/src/devices/virtio/net/gen/iff.rs +@@ -836,7 +836,7 @@ pub struct ifreq { + #[repr(C)] + #[derive(Copy, Clone)] + pub union ifreq__bindgen_ty_1 { +- pub ifrn_name: [::std::os::raw::c_char; 16usize], ++ pub ifrn_name: [::std::os::raw::c_uchar; 16usize], + } + #[test] + fn bindgen_test_layout_ifreq__bindgen_ty_1() { +-- +2.40.1 + diff --git a/tools/bindgen-patches/net_gen/0001-change-c-char-to-c-uchar-in-ifrn-name.patch b/tools/bindgen-patches/net_gen/0001-change-c-char-to-c-uchar-in-ifrn-name.patch deleted file mode 100644 index 21cb3274f60..00000000000 --- a/tools/bindgen-patches/net_gen/0001-change-c-char-to-c-uchar-in-ifrn-name.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/src/iff.rs 2022-05-24 21:21:30.126264289 +0200 -+++ b/src/iff.rs 2022-05-24 21:21:58.758061199 +0200 -@@ -3303,7 +3303,7 @@ - #[repr(C)] - #[derive(Copy, Clone)] - pub union ifreq__bindgen_ty_1 { -- pub ifrn_name: [::std::os::raw::c_char; 16usize], -+ pub ifrn_name: [::std::os::raw::c_uchar; 16usize], - } - #[test] - fn bindgen_test_layout_ifreq__bindgen_ty_1() { diff --git a/tools/bindgen.sh b/tools/bindgen.sh index c8873fc6c27..4aa755143f4 100755 --- a/tools/bindgen.sh +++ b/tools/bindgen.sh @@ -4,9 +4,9 @@ # SPDX-License-Identifier: Apache-2.0 # ./tools/devtool shell --privileged -# bindgen-0.60 has a dependency that needs Rust edition 2021 -# cargo +stable install bindgen +# cargo install bindgen-cli # apt update && apt install patch +# ./tools/bindgen.sh set -eu @@ -39,7 +39,7 @@ function fc-bindgen { )] EOF - bindgen --disable-header-comment --size_t-is-usize --constified-enum '*' --with-derive-default --with-derive-partialeq $@ + bindgen --disable-header-comment --constified-enum '*' --with-derive-default --with-derive-partialeq $@ } KERNEL_HEADERS_HOME="/usr" @@ -147,15 +147,12 @@ fc-bindgen \ --allowlist-type "io_uring_.+" \ --allowlist-type "io_.qring_offsets" \ "amazonlinux-v5.10.y/include/uapi/linux/io_uring.h" \ - >src/io_uring/src/bindings.rs + >src/vmm/src/io_uring/bindings.rs # Apply any patches -# src/virtio_gen -for crate in src/vmm/src/devices/virtio/net/gen/; do - for patch in $(dirname $0)/bindgen-patches/$(basename $crate)/*.patch; do - echo PATCH $crate/$patch - (cd $crate; patch -p1) <$patch - done +info "Apply patches" +for PATCH in $(dirname $0)/bindgen-patches/*.patch; do + patch -p1 <$PATCH done echo "Bindings created correctly! You might want to run ./tools/test_bindings.py to test for ABI incompatibilities" From 8608190c5c97b6a49bcab95e659281a7ca4f7644 Mon Sep 17 00:00:00 2001 From: Takahiro Itazuri Date: Fri, 22 Mar 2024 21:38:02 +0000 Subject: [PATCH 2/2] chore(firecracker): generate prctl.rs Generates Rust code from `prctl.h` and removes TODO. Signed-off-by: Takahiro Itazuri --- src/firecracker/src/gen/mod.rs | 4 + src/firecracker/src/gen/prctl.rs | 155 ++++++++++++++++++++++ src/firecracker/src/main.rs | 14 +- src/vmm/src/devices/virtio/net/gen/iff.rs | 1 - tools/bindgen.sh | 8 +- 5 files changed, 170 insertions(+), 12 deletions(-) create mode 100644 src/firecracker/src/gen/mod.rs create mode 100644 src/firecracker/src/gen/prctl.rs diff --git a/src/firecracker/src/gen/mod.rs b/src/firecracker/src/gen/mod.rs new file mode 100644 index 00000000000..8419fadef62 --- /dev/null +++ b/src/firecracker/src/gen/mod.rs @@ -0,0 +1,4 @@ +// Copyright 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +pub mod prctl; diff --git a/src/firecracker/src/gen/prctl.rs b/src/firecracker/src/gen/prctl.rs new file mode 100644 index 00000000000..019cb58e5ce --- /dev/null +++ b/src/firecracker/src/gen/prctl.rs @@ -0,0 +1,155 @@ +// Copyright 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +// automatically generated by tools/bindgen.sh + +#![allow( + non_camel_case_types, + non_upper_case_globals, + dead_code, + non_snake_case, + clippy::ptr_as_ptr, + clippy::undocumented_unsafe_blocks, + clippy::cast_lossless, + missing_debug_implementations, + clippy::tests_outside_test_module +)] + +pub const PR_SET_PDEATHSIG: u32 = 1; +pub const PR_GET_PDEATHSIG: u32 = 2; +pub const PR_GET_DUMPABLE: u32 = 3; +pub const PR_SET_DUMPABLE: u32 = 4; +pub const PR_GET_UNALIGN: u32 = 5; +pub const PR_SET_UNALIGN: u32 = 6; +pub const PR_UNALIGN_NOPRINT: u32 = 1; +pub const PR_UNALIGN_SIGBUS: u32 = 2; +pub const PR_GET_KEEPCAPS: u32 = 7; +pub const PR_SET_KEEPCAPS: u32 = 8; +pub const PR_GET_FPEMU: u32 = 9; +pub const PR_SET_FPEMU: u32 = 10; +pub const PR_FPEMU_NOPRINT: u32 = 1; +pub const PR_FPEMU_SIGFPE: u32 = 2; +pub const PR_GET_FPEXC: u32 = 11; +pub const PR_SET_FPEXC: u32 = 12; +pub const PR_FP_EXC_SW_ENABLE: u32 = 128; +pub const PR_FP_EXC_DIV: u32 = 65536; +pub const PR_FP_EXC_OVF: u32 = 131072; +pub const PR_FP_EXC_UND: u32 = 262144; +pub const PR_FP_EXC_RES: u32 = 524288; +pub const PR_FP_EXC_INV: u32 = 1048576; +pub const PR_FP_EXC_DISABLED: u32 = 0; +pub const PR_FP_EXC_NONRECOV: u32 = 1; +pub const PR_FP_EXC_ASYNC: u32 = 2; +pub const PR_FP_EXC_PRECISE: u32 = 3; +pub const PR_GET_TIMING: u32 = 13; +pub const PR_SET_TIMING: u32 = 14; +pub const PR_TIMING_STATISTICAL: u32 = 0; +pub const PR_TIMING_TIMESTAMP: u32 = 1; +pub const PR_SET_NAME: u32 = 15; +pub const PR_GET_NAME: u32 = 16; +pub const PR_GET_ENDIAN: u32 = 19; +pub const PR_SET_ENDIAN: u32 = 20; +pub const PR_ENDIAN_BIG: u32 = 0; +pub const PR_ENDIAN_LITTLE: u32 = 1; +pub const PR_ENDIAN_PPC_LITTLE: u32 = 2; +pub const PR_GET_SECCOMP: u32 = 21; +pub const PR_SET_SECCOMP: u32 = 22; +pub const PR_CAPBSET_READ: u32 = 23; +pub const PR_CAPBSET_DROP: u32 = 24; +pub const PR_GET_TSC: u32 = 25; +pub const PR_SET_TSC: u32 = 26; +pub const PR_TSC_ENABLE: u32 = 1; +pub const PR_TSC_SIGSEGV: u32 = 2; +pub const PR_GET_SECUREBITS: u32 = 27; +pub const PR_SET_SECUREBITS: u32 = 28; +pub const PR_SET_TIMERSLACK: u32 = 29; +pub const PR_GET_TIMERSLACK: u32 = 30; +pub const PR_TASK_PERF_EVENTS_DISABLE: u32 = 31; +pub const PR_TASK_PERF_EVENTS_ENABLE: u32 = 32; +pub const PR_MCE_KILL: u32 = 33; +pub const PR_MCE_KILL_CLEAR: u32 = 0; +pub const PR_MCE_KILL_SET: u32 = 1; +pub const PR_MCE_KILL_LATE: u32 = 0; +pub const PR_MCE_KILL_EARLY: u32 = 1; +pub const PR_MCE_KILL_DEFAULT: u32 = 2; +pub const PR_MCE_KILL_GET: u32 = 34; +pub const PR_SET_MM: u32 = 35; +pub const PR_SET_MM_START_CODE: u32 = 1; +pub const PR_SET_MM_END_CODE: u32 = 2; +pub const PR_SET_MM_START_DATA: u32 = 3; +pub const PR_SET_MM_END_DATA: u32 = 4; +pub const PR_SET_MM_START_STACK: u32 = 5; +pub const PR_SET_MM_START_BRK: u32 = 6; +pub const PR_SET_MM_BRK: u32 = 7; +pub const PR_SET_MM_ARG_START: u32 = 8; +pub const PR_SET_MM_ARG_END: u32 = 9; +pub const PR_SET_MM_ENV_START: u32 = 10; +pub const PR_SET_MM_ENV_END: u32 = 11; +pub const PR_SET_MM_AUXV: u32 = 12; +pub const PR_SET_MM_EXE_FILE: u32 = 13; +pub const PR_SET_MM_MAP: u32 = 14; +pub const PR_SET_MM_MAP_SIZE: u32 = 15; +pub const PR_SET_PTRACER: u32 = 1499557217; +pub const PR_SET_CHILD_SUBREAPER: u32 = 36; +pub const PR_GET_CHILD_SUBREAPER: u32 = 37; +pub const PR_SET_NO_NEW_PRIVS: u32 = 38; +pub const PR_GET_NO_NEW_PRIVS: u32 = 39; +pub const PR_GET_TID_ADDRESS: u32 = 40; +pub const PR_SET_THP_DISABLE: u32 = 41; +pub const PR_GET_THP_DISABLE: u32 = 42; +pub const PR_MPX_ENABLE_MANAGEMENT: u32 = 43; +pub const PR_MPX_DISABLE_MANAGEMENT: u32 = 44; +pub const PR_SET_FP_MODE: u32 = 45; +pub const PR_GET_FP_MODE: u32 = 46; +pub const PR_FP_MODE_FR: u32 = 1; +pub const PR_FP_MODE_FRE: u32 = 2; +pub const PR_CAP_AMBIENT: u32 = 47; +pub const PR_CAP_AMBIENT_IS_SET: u32 = 1; +pub const PR_CAP_AMBIENT_RAISE: u32 = 2; +pub const PR_CAP_AMBIENT_LOWER: u32 = 3; +pub const PR_CAP_AMBIENT_CLEAR_ALL: u32 = 4; +pub const PR_SVE_SET_VL: u32 = 50; +pub const PR_SVE_SET_VL_ONEXEC: u32 = 262144; +pub const PR_SVE_GET_VL: u32 = 51; +pub const PR_SVE_VL_LEN_MASK: u32 = 65535; +pub const PR_SVE_VL_INHERIT: u32 = 131072; +pub const PR_GET_SPECULATION_CTRL: u32 = 52; +pub const PR_SET_SPECULATION_CTRL: i32 = 53; +pub const PR_SPEC_STORE_BYPASS: u32 = 0; +pub const PR_SPEC_INDIRECT_BRANCH: u32 = 1; +pub const PR_SPEC_L1D_FLUSH: u32 = 2; +pub const PR_SPEC_NOT_AFFECTED: u32 = 0; +pub const PR_SPEC_PRCTL: u32 = 1; +pub const PR_SPEC_ENABLE: u32 = 2; +pub const PR_SPEC_DISABLE: u32 = 4; +pub const PR_SPEC_FORCE_DISABLE: u32 = 8; +pub const PR_SPEC_DISABLE_NOEXEC: u32 = 16; +pub const PR_PAC_RESET_KEYS: u32 = 54; +pub const PR_PAC_APIAKEY: u32 = 1; +pub const PR_PAC_APIBKEY: u32 = 2; +pub const PR_PAC_APDAKEY: u32 = 4; +pub const PR_PAC_APDBKEY: u32 = 8; +pub const PR_PAC_APGAKEY: u32 = 16; +pub const PR_SET_TAGGED_ADDR_CTRL: u32 = 55; +pub const PR_GET_TAGGED_ADDR_CTRL: u32 = 56; +pub const PR_TAGGED_ADDR_ENABLE: u32 = 1; +pub const PR_MTE_TCF_NONE: u32 = 0; +pub const PR_MTE_TCF_SYNC: u32 = 2; +pub const PR_MTE_TCF_ASYNC: u32 = 4; +pub const PR_MTE_TCF_MASK: u32 = 6; +pub const PR_MTE_TAG_SHIFT: u32 = 3; +pub const PR_MTE_TAG_MASK: u32 = 524280; +pub const PR_MTE_TCF_SHIFT: u32 = 1; +pub const PR_SET_IO_FLUSHER: u32 = 57; +pub const PR_GET_IO_FLUSHER: u32 = 58; +pub const PR_SET_SYSCALL_USER_DISPATCH: u32 = 59; +pub const PR_SYS_DISPATCH_OFF: u32 = 0; +pub const PR_SYS_DISPATCH_ON: u32 = 1; +pub const PR_PAC_SET_ENABLED_KEYS: u32 = 60; +pub const PR_PAC_GET_ENABLED_KEYS: u32 = 61; +pub const PR_SCHED_CORE: u32 = 62; +pub const PR_SCHED_CORE_GET: u32 = 0; +pub const PR_SCHED_CORE_CREATE: u32 = 1; +pub const PR_SCHED_CORE_SHARE_TO: u32 = 2; +pub const PR_SCHED_CORE_SHARE_FROM: u32 = 3; +pub const PR_SCHED_CORE_MAX: u32 = 4; diff --git a/src/firecracker/src/main.rs b/src/firecracker/src/main.rs index 9ec166f649c..c9c802ed133 100644 --- a/src/firecracker/src/main.rs +++ b/src/firecracker/src/main.rs @@ -3,6 +3,7 @@ mod api_server; mod api_server_adapter; +mod gen; mod metrics; mod seccomp; @@ -489,22 +490,15 @@ fn resize_fdtable() -> Result<(), ResizeFdTableError> { /// Enable SSBD mitigation through `prctl`. #[cfg(target_arch = "aarch64")] pub fn enable_ssbd_mitigation() { - // Parameters for `prctl` - // TODO: generate bindings for these from the kernel sources. - // https://elixir.bootlin.com/linux/v4.17/source/include/uapi/linux/prctl.h#L212 - const PR_SET_SPECULATION_CTRL: i32 = 53; - const PR_SPEC_STORE_BYPASS: u64 = 0; - const PR_SPEC_FORCE_DISABLE: u64 = 1u64 << 3; - // SAFETY: Parameters are valid since they are copied verbatim // from the kernel's UAPI. // PR_SET_SPECULATION_CTRL only uses those 2 parameters, so it's ok // to leave the latter 2 as zero. let ret = unsafe { libc::prctl( - PR_SET_SPECULATION_CTRL, - PR_SPEC_STORE_BYPASS, - PR_SPEC_FORCE_DISABLE, + gen::prctl::PR_SET_SPECULATION_CTRL, + gen::prctl::PR_SPEC_STORE_BYPASS, + gen::prctl::PR_SPEC_FORCE_DISABLE, 0, 0, ) diff --git a/src/vmm/src/devices/virtio/net/gen/iff.rs b/src/vmm/src/devices/virtio/net/gen/iff.rs index 54111c6ba87..a28214b5cf8 100644 --- a/src/vmm/src/devices/virtio/net/gen/iff.rs +++ b/src/vmm/src/devices/virtio/net/gen/iff.rs @@ -550,7 +550,6 @@ pub const net_device_flags_IFF_DYNAMIC: net_device_flags = 32768; pub const net_device_flags_IFF_LOWER_UP: net_device_flags = 65536; pub const net_device_flags_IFF_DORMANT: net_device_flags = 131072; pub const net_device_flags_IFF_ECHO: net_device_flags = 262144; -#[doc = " enum net_device_flags - &struct net_device flags\n\n These are the &struct net_device flags, they can be set by drivers, the\n kernel and some can be triggered by userspace. Userspace can query and\n set these flags using userspace utilities but there is also a sysfs\n entry available for all dev flags which can be queried and set. These flags\n are shared for all types of net_devices. The sysfs entries are available\n via /sys/class/net//flags. Flags which can be toggled through sysfs\n are annotated below, note that only a few flags can be toggled and some\n other flags are always preserved from the original net_device flags\n even if you try to set them via sysfs. Flags which are always preserved\n are kept under the flag grouping @IFF_VOLATILE. Flags which are __volatile__\n are annotated below as such.\n\n You should have a pretty good reason to be extending these flags.\n\n @IFF_UP: interface is up. Can be toggled through sysfs.\n @IFF_BROADCAST: broadcast address valid. Volatile.\n @IFF_DEBUG: turn on debugging. Can be toggled through sysfs.\n @IFF_LOOPBACK: is a loopback net. Volatile.\n @IFF_POINTOPOINT: interface is has p-p link. Volatile.\n @IFF_NOTRAILERS: avoid use of trailers. Can be toggled through sysfs.\n\tVolatile.\n @IFF_RUNNING: interface RFC2863 OPER_UP. Volatile.\n @IFF_NOARP: no ARP protocol. Can be toggled through sysfs. Volatile.\n @IFF_PROMISC: receive all packets. Can be toggled through sysfs.\n @IFF_ALLMULTI: receive all multicast packets. Can be toggled through\n\tsysfs.\n @IFF_MASTER: master of a load balancer. Volatile.\n @IFF_SLAVE: slave of a load balancer. Volatile.\n @IFF_MULTICAST: Supports multicast. Can be toggled through sysfs.\n @IFF_PORTSEL: can set media type. Can be toggled through sysfs.\n @IFF_AUTOMEDIA: auto media select active. Can be toggled through sysfs.\n @IFF_DYNAMIC: dialup device with changing addresses. Can be toggled\n\tthrough sysfs.\n @IFF_LOWER_UP: driver signals L1 up. Volatile.\n @IFF_DORMANT: driver signals dormant. Volatile.\n @IFF_ECHO: echo sent packets. Volatile."] pub type net_device_flags = ::std::os::raw::c_uint; pub const IF_OPER_UNKNOWN: _bindgen_ty_4 = 0; pub const IF_OPER_NOTPRESENT: _bindgen_ty_4 = 1; diff --git a/tools/bindgen.sh b/tools/bindgen.sh index 4aa755143f4..5c81efffe4f 100755 --- a/tools/bindgen.sh +++ b/tools/bindgen.sh @@ -39,7 +39,7 @@ function fc-bindgen { )] EOF - bindgen --disable-header-comment --constified-enum '*' --with-derive-default --with-derive-partialeq $@ + bindgen --no-doc-comments --disable-header-comment --constified-enum '*' --with-derive-default --with-derive-partialeq $@ } KERNEL_HEADERS_HOME="/usr" @@ -90,6 +90,12 @@ fc-bindgen \ --allowlist-var "VIRTIO_F_.*" \ "$KERNEL_HEADERS_HOME/include/linux/virtio_rng.h" >src/vmm/src/devices/virtio/gen/virtio_rng.rs +info "BINDGEN prctl.h" +fc-bindgen \ + --allowlist-var "PR_.*" \ + "$KERNEL_HEADERS_HOME/include/linux/prctl.h" >src/firecracker/src/gen/prctl.rs +sed -i '/PR_SET_SPECULATION_CTRL/s/u32/i32/g' src/firecracker/src/gen/prctl.rs + # https://www.kernel.org/doc/Documentation/kbuild/headers_install.txt # The Linux repo is huge. Just copy what we need. # git clone --branch v5.10 --depth 1 https://github.com/torvalds/linux.git linux