diff --git a/Cargo.toml b/Cargo.toml index 399b543..0cfc530 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,6 +7,7 @@ repository = "https://github.com/rust-vmm/kvm-bindings" readme = "README.md" keywords = ["kvm"] license = "Apache-2.0" +edition = "2021" [package.metadata.docs.rs] all-features = true @@ -16,6 +17,7 @@ rustdoc-args = ["--cfg", "docsrs"] fam-wrappers = ["vmm-sys-util"] [dependencies] -versionize = "0.2.0" -versionize_derive = "0.1.6" -vmm-sys-util = { version = "0.12.1", optional = true } +vmm-sys-util = { version = "0.12.1", optional = true, features = ["with-serde"] } + +serde = { version = "1.0.136", features = ["derive"] } +serde-big-array = "0.5.1" diff --git a/coverage_config_aarch64.json b/coverage_config_aarch64.json index 54fd8ea..a5595be 100644 --- a/coverage_config_aarch64.json +++ b/coverage_config_aarch64.json @@ -1,5 +1,5 @@ { - "coverage_score": 60.9, - "exclude_path": "", + "coverage_score": 100.0, + "exclude_path": ".*bindings\\.rs", "crate_features": "fam-wrappers" } diff --git a/src/arm64/bindings.rs b/src/arm64/bindings.rs index 5fc72de..75a56ad 100644 --- a/src/arm64/bindings.rs +++ b/src/arm64/bindings.rs @@ -1,7 +1,7 @@ /* automatically generated by rust-bindgen 0.64.0 */ -use versionize::{VersionMap, Versionize, VersionizeResult}; -use versionize_derive::Versionize; +use serde::{Deserialize, Serialize}; +use serde_big_array::BigArray; #[repr(C)] #[derive(Default)] @@ -855,7 +855,7 @@ pub type __u32 = ::std::os::raw::c_uint; pub type __s64 = ::std::os::raw::c_longlong; pub type __u64 = ::std::os::raw::c_ulonglong; #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct __kernel_fd_set { pub fds_bits: [::std::os::raw::c_ulong; 16usize], } @@ -907,7 +907,7 @@ pub type __kernel_size_t = __kernel_ulong_t; pub type __kernel_ssize_t = __kernel_long_t; pub type __kernel_ptrdiff_t = __kernel_long_t; #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct __kernel_fsid_t { pub val: [::std::os::raw::c_int; 2usize], } @@ -957,7 +957,7 @@ pub type __sum16 = __u16; pub type __wsum = __u32; pub type __poll_t = ::std::os::raw::c_uint; #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct user_pt_regs { pub regs: [__u64; 31usize], pub sp: __u64, @@ -1021,7 +1021,7 @@ fn bindgen_test_layout_user_pt_regs() { } #[repr(C)] #[repr(align(16))] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct user_fpsimd_state { pub vregs: [__uint128_t; 32usize], pub fpsr: __u32, @@ -1084,14 +1084,14 @@ fn bindgen_test_layout_user_fpsimd_state() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct user_hwdebug_state { pub dbg_info: __u32, pub pad: __u32, pub dbg_regs: [user_hwdebug_state__bindgen_ty_1; 16usize], } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct user_hwdebug_state__bindgen_ty_1 { pub addr: __u64, pub ctrl: __u32, @@ -1192,7 +1192,7 @@ fn bindgen_test_layout_user_hwdebug_state() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct user_sve_header { pub size: __u32, pub max_size: __u32, @@ -1277,7 +1277,7 @@ fn bindgen_test_layout_user_sve_header() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct user_pac_mask { pub data_mask: __u64, pub insn_mask: __u64, @@ -1319,7 +1319,7 @@ fn bindgen_test_layout_user_pac_mask() { } #[repr(C)] #[repr(align(16))] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct user_pac_address_keys { pub apiakey: __uint128_t, pub apibkey: __uint128_t, @@ -1384,7 +1384,7 @@ fn bindgen_test_layout_user_pac_address_keys() { } #[repr(C)] #[repr(align(16))] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct user_pac_generic_keys { pub apgakey: __uint128_t, } @@ -1415,7 +1415,7 @@ fn bindgen_test_layout_user_pac_generic_keys() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct user_za_header { pub size: __u32, pub max_size: __u32, @@ -1501,7 +1501,7 @@ fn bindgen_test_layout_user_za_header() { } #[repr(C)] #[repr(align(16))] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_regs { pub regs: user_pt_regs, pub sp_el1: __u64, @@ -1576,7 +1576,7 @@ fn bindgen_test_layout_kvm_regs() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_vcpu_init { pub target: __u32, pub features: [__u32; 7usize], @@ -1649,7 +1649,7 @@ fn bindgen_test_layout_kvm_fpu() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_guest_debug_arch { pub dbg_bcr: [__u64; 16usize], pub dbg_bvr: [__u64; 16usize], @@ -1712,7 +1712,7 @@ fn bindgen_test_layout_kvm_guest_debug_arch() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_debug_exit_arch { pub hsr: __u32, pub hsr_high: __u32, @@ -1764,7 +1764,7 @@ fn bindgen_test_layout_kvm_debug_exit_arch() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_sync_regs { pub device_irq_level: __u64, } @@ -1794,7 +1794,7 @@ fn bindgen_test_layout_kvm_sync_regs() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_pmu_event_filter { pub base_event: __u16, pub nevents: __u16, @@ -1857,13 +1857,13 @@ fn bindgen_test_layout_kvm_pmu_event_filter() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct kvm_vcpu_events { pub exception: kvm_vcpu_events__bindgen_ty_1, pub reserved: [__u32; 12usize], } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_vcpu_events__bindgen_ty_1 { pub serror_pending: __u8, pub serror_has_esr: __u8, @@ -2064,7 +2064,7 @@ pub const KVM_REG_ARM_VENDOR_HYP_BIT_FUNC_FEAT: _bindgen_ty_3 = 0; pub const KVM_REG_ARM_VENDOR_HYP_BIT_PTP: _bindgen_ty_3 = 1; pub type _bindgen_ty_3 = ::std::os::raw::c_uint; #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_user_trace_setup { pub buf_size: __u32, pub buf_nr: __u32, @@ -2105,7 +2105,7 @@ fn bindgen_test_layout_kvm_user_trace_setup() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_breakpoint { pub enabled: __u32, pub padding: __u32, @@ -2157,7 +2157,7 @@ fn bindgen_test_layout_kvm_breakpoint() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_debug_guest { pub enabled: __u32, pub pad: __u32, @@ -2220,7 +2220,7 @@ fn bindgen_test_layout_kvm_debug_guest() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_userspace_memory_region { pub slot: __u32, pub flags: __u32, @@ -2515,7 +2515,7 @@ impl ::std::fmt::Debug for kvm_irqchip { } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_pit_config { pub flags: __u32, pub pad: [__u32; 15usize], @@ -2556,7 +2556,7 @@ fn bindgen_test_layout_kvm_pit_config() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_s390_skeys { pub start_gfn: __u64, pub count: __u64, @@ -2779,7 +2779,7 @@ pub union kvm_hyperv_exit__bindgen_ty_1 { pub syndbg: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3, } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1 { pub msr: __u32, pub pad2: __u32, @@ -2860,7 +2860,7 @@ fn bindgen_test_layout_kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_2 { pub input: __u64, pub result: __u64, @@ -2919,7 +2919,7 @@ fn bindgen_test_layout_kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_2() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3 { pub msr: __u32, pub pad2: __u32, @@ -3156,7 +3156,7 @@ pub union kvm_xen_exit__bindgen_ty_1 { pub hcall: kvm_xen_exit__bindgen_ty_1__bindgen_ty_1, } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct kvm_xen_exit__bindgen_ty_1__bindgen_ty_1 { pub longmode: __u32, pub cpl: __u32, @@ -3380,7 +3380,7 @@ pub union kvm_run__bindgen_ty_1 { pub padding: [::std::os::raw::c_char; 256usize], } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_1 { pub hardware_exit_reason: __u64, } @@ -3414,7 +3414,7 @@ fn bindgen_test_layout_kvm_run__bindgen_ty_1__bindgen_ty_1() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_2 { pub hardware_entry_failure_reason: __u64, pub cpu: __u32, @@ -3461,7 +3461,7 @@ fn bindgen_test_layout_kvm_run__bindgen_ty_1__bindgen_ty_2() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_3 { pub exception: __u32, pub error_code: __u32, @@ -3506,7 +3506,7 @@ fn bindgen_test_layout_kvm_run__bindgen_ty_1__bindgen_ty_3() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_4 { pub direction: __u8, pub size: __u8, @@ -3584,7 +3584,7 @@ fn bindgen_test_layout_kvm_run__bindgen_ty_1__bindgen_ty_4() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_5 { pub arch: kvm_debug_exit_arch, } @@ -3618,7 +3618,7 @@ fn bindgen_test_layout_kvm_run__bindgen_ty_1__bindgen_ty_5() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_6 { pub phys_addr: __u64, pub data: [__u8; 8usize], @@ -3685,7 +3685,7 @@ fn bindgen_test_layout_kvm_run__bindgen_ty_1__bindgen_ty_6() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_7 { pub nr: __u64, pub args: [__u64; 6usize], @@ -3763,7 +3763,7 @@ fn bindgen_test_layout_kvm_run__bindgen_ty_1__bindgen_ty_7() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_8 { pub rip: __u64, pub is_write: __u32, @@ -3819,7 +3819,7 @@ fn bindgen_test_layout_kvm_run__bindgen_ty_1__bindgen_ty_8() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_9 { pub icptcode: __u8, pub ipa: __u16, @@ -3875,7 +3875,7 @@ fn bindgen_test_layout_kvm_run__bindgen_ty_1__bindgen_ty_9() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_10 { pub trans_exc_code: __u64, pub pgm_code: __u32, @@ -3923,7 +3923,7 @@ fn bindgen_test_layout_kvm_run__bindgen_ty_1__bindgen_ty_10() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_11 { pub dcrn: __u32, pub data: __u32, @@ -3982,7 +3982,7 @@ fn bindgen_test_layout_kvm_run__bindgen_ty_1__bindgen_ty_11() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_12 { pub suberror: __u32, pub ndata: __u32, @@ -4054,7 +4054,7 @@ pub union kvm_run__bindgen_ty_1__bindgen_ty_13__bindgen_ty_1 { pub __bindgen_anon_1: kvm_run__bindgen_ty_1__bindgen_ty_13__bindgen_ty_1__bindgen_ty_1, } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_13__bindgen_ty_1__bindgen_ty_1 { pub insn_size: __u8, pub insn_bytes: [__u8; 15usize], @@ -4205,7 +4205,7 @@ impl ::std::fmt::Debug for kvm_run__bindgen_ty_1__bindgen_ty_13 { } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_14 { pub gprs: [__u64; 32usize], } @@ -4242,7 +4242,7 @@ fn bindgen_test_layout_kvm_run__bindgen_ty_1__bindgen_ty_14() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_15 { pub nr: __u64, pub ret: __u64, @@ -4301,7 +4301,7 @@ fn bindgen_test_layout_kvm_run__bindgen_ty_1__bindgen_ty_15() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_16 { pub subchannel_id: __u16, pub subchannel_nr: __u16, @@ -4393,7 +4393,7 @@ fn bindgen_test_layout_kvm_run__bindgen_ty_1__bindgen_ty_16() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_17 { pub epr: __u32, } @@ -4558,7 +4558,7 @@ impl ::std::fmt::Debug for kvm_run__bindgen_ty_1__bindgen_ty_18 { } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_19 { pub addr: __u64, pub ar: __u8, @@ -4650,7 +4650,7 @@ fn bindgen_test_layout_kvm_run__bindgen_ty_1__bindgen_ty_19() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_20 { pub vector: __u8, } @@ -4687,7 +4687,7 @@ fn bindgen_test_layout_kvm_run__bindgen_ty_1__bindgen_ty_20() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_21 { pub esr_iss: __u64, pub fault_ipa: __u64, @@ -4735,7 +4735,7 @@ fn bindgen_test_layout_kvm_run__bindgen_ty_1__bindgen_ty_21() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_22 { pub error: __u8, pub pad: [__u8; 7usize], @@ -4816,7 +4816,7 @@ fn bindgen_test_layout_kvm_run__bindgen_ty_1__bindgen_ty_22() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_23 { pub extension_id: ::std::os::raw::c_ulong, pub function_id: ::std::os::raw::c_ulong, @@ -4886,7 +4886,7 @@ fn bindgen_test_layout_kvm_run__bindgen_ty_1__bindgen_ty_23() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_24 { pub csr_num: ::std::os::raw::c_ulong, pub new_value: ::std::os::raw::c_ulong, @@ -4956,7 +4956,7 @@ fn bindgen_test_layout_kvm_run__bindgen_ty_1__bindgen_ty_24() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_25 { pub flags: __u32, } @@ -5839,7 +5839,7 @@ impl ::std::fmt::Debug for kvm_coalesced_mmio_ring { } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_translation { pub linear_address: __u64, pub physical_address: __u64, @@ -5941,7 +5941,7 @@ pub union kvm_s390_mem_op__bindgen_ty_1 { pub reserved: [__u8; 32usize], } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_s390_mem_op__bindgen_ty_1__bindgen_ty_1 { pub ar: __u8, pub key: __u8, @@ -6118,7 +6118,7 @@ impl ::std::fmt::Debug for kvm_s390_mem_op { } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_interrupt { pub irq: __u32, } @@ -6431,7 +6431,7 @@ fn bindgen_test_layout_kvm_signal_mask() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_tpr_access_ctl { pub enabled: __u32, pub flags: __u32, @@ -6483,7 +6483,7 @@ fn bindgen_test_layout_kvm_tpr_access_ctl() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_vapic_addr { pub vapic_addr: __u64, } @@ -6513,7 +6513,7 @@ fn bindgen_test_layout_kvm_vapic_addr() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_mp_state { pub mp_state: __u32, } @@ -6543,7 +6543,7 @@ fn bindgen_test_layout_kvm_mp_state() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_s390_psw { pub mask: __u64, pub addr: __u64, @@ -6584,7 +6584,7 @@ fn bindgen_test_layout_kvm_s390_psw() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_s390_interrupt { pub type_: __u32, pub parm: __u32, @@ -6636,7 +6636,7 @@ fn bindgen_test_layout_kvm_s390_interrupt() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_s390_io_info { pub subchannel_id: __u16, pub subchannel_nr: __u16, @@ -6699,7 +6699,7 @@ fn bindgen_test_layout_kvm_s390_io_info() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_s390_ext_info { pub ext_params: __u32, pub pad: __u32, @@ -6751,7 +6751,7 @@ fn bindgen_test_layout_kvm_s390_ext_info() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_s390_pgm_info { pub trans_exc_code: __u64, pub mon_code: __u64, @@ -6913,7 +6913,7 @@ fn bindgen_test_layout_kvm_s390_pgm_info() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_s390_prefix_info { pub address: __u32, } @@ -6943,7 +6943,7 @@ fn bindgen_test_layout_kvm_s390_prefix_info() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_s390_extcall_info { pub code: __u16, } @@ -6974,7 +6974,7 @@ fn bindgen_test_layout_kvm_s390_extcall_info() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_s390_emerg_info { pub code: __u16, } @@ -7004,7 +7004,7 @@ fn bindgen_test_layout_kvm_s390_emerg_info() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_s390_stop_info { pub flags: __u32, } @@ -7034,7 +7034,7 @@ fn bindgen_test_layout_kvm_s390_stop_info() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_s390_mchk_info { pub cr14: __u64, pub mcic: __u64, @@ -7311,7 +7311,7 @@ impl ::std::fmt::Debug for kvm_s390_irq { } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_s390_irq_state { pub buf: __u64, pub flags: __u32, @@ -7374,7 +7374,7 @@ fn bindgen_test_layout_kvm_s390_irq_state() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_guest_debug { pub control: __u32, pub pad: __u32, @@ -7433,13 +7433,14 @@ pub const kvm_ioeventfd_flag_nr_fast_mmio: _bindgen_ty_4 = 4; pub const kvm_ioeventfd_flag_nr_max: _bindgen_ty_4 = 5; pub type _bindgen_ty_4 = ::std::os::raw::c_uint; #[repr(C)] -#[derive(Debug, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_ioeventfd { pub datamatch: __u64, pub addr: __u64, pub len: __u32, pub fd: __s32, pub flags: __u32, + #[serde(with = "BigArray")] pub pad: [__u8; 36usize], } #[test] @@ -7527,11 +7528,12 @@ impl Default for kvm_ioeventfd { } } #[repr(C)] -#[derive(Debug, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_enable_cap { pub cap: __u32, pub flags: __u32, pub args: [__u64; 4usize], + #[serde(with = "BigArray")] pub pad: [__u8; 64usize], } #[test] @@ -7599,10 +7601,11 @@ impl Default for kvm_enable_cap { } } #[repr(C)] -#[derive(Debug, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_ppc_pvinfo { pub flags: __u32, pub hcall: [__u32; 4usize], + #[serde(with = "BigArray")] pub pad: [__u8; 108usize], } #[test] @@ -7660,7 +7663,7 @@ impl Default for kvm_ppc_pvinfo { } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_ppc_one_page_size { pub page_shift: __u32, pub pte_enc: __u32, @@ -7702,7 +7705,7 @@ fn bindgen_test_layout_kvm_ppc_one_page_size() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_ppc_one_seg_page_size { pub page_shift: __u32, pub slb_enc: __u32, @@ -7755,7 +7758,7 @@ fn bindgen_test_layout_kvm_ppc_one_seg_page_size() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_ppc_smmu_info { pub flags: __u64, pub slb_size: __u32, @@ -7829,7 +7832,7 @@ fn bindgen_test_layout_kvm_ppc_smmu_info() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_ppc_resize_hpt { pub flags: __u64, pub shift: __u32, @@ -7881,7 +7884,7 @@ fn bindgen_test_layout_kvm_ppc_resize_hpt() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_irq_routing_irqchip { pub irqchip: __u32, pub pin: __u32, @@ -8049,7 +8052,7 @@ impl ::std::fmt::Debug for kvm_irq_routing_msi { } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_irq_routing_s390_adapter { pub ind_addr: __u64, pub summary_addr: __u64, @@ -8124,7 +8127,7 @@ fn bindgen_test_layout_kvm_irq_routing_s390_adapter() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_irq_routing_hv_sint { pub vcpu: __u32, pub sint: __u32, @@ -8166,7 +8169,7 @@ fn bindgen_test_layout_kvm_irq_routing_hv_sint() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_irq_routing_xen_evtchn { pub port: __u32, pub vcpu: __u32, @@ -8484,7 +8487,7 @@ impl ::std::fmt::Debug for kvm_irq_routing { } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_irqfd { pub fd: __u32, pub gsi: __u32, @@ -8558,7 +8561,7 @@ fn bindgen_test_layout_kvm_irqfd() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_clock_data { pub clock: __u64, pub flags: __u32, @@ -8643,7 +8646,7 @@ fn bindgen_test_layout_kvm_clock_data() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_config_tlb { pub params: __u64, pub array: __u64, @@ -8706,7 +8709,7 @@ fn bindgen_test_layout_kvm_config_tlb() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_dirty_tlb { pub bitmap: __u64, pub num_dirty: __u32, @@ -8788,7 +8791,7 @@ fn bindgen_test_layout_kvm_reg_list() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_one_reg { pub id: __u64, pub addr: __u64, @@ -8829,7 +8832,7 @@ fn bindgen_test_layout_kvm_one_reg() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_msi { pub address_lo: __u32, pub address_hi: __u32, @@ -8914,7 +8917,7 @@ fn bindgen_test_layout_kvm_msi() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_arm_device_addr { pub id: __u64, pub addr: __u64, @@ -8955,7 +8958,7 @@ fn bindgen_test_layout_kvm_arm_device_addr() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_create_device { pub type_: __u32, pub fd: __u32, @@ -9007,7 +9010,7 @@ fn bindgen_test_layout_kvm_create_device() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_device_attr { pub flags: __u32, pub group: __u32, @@ -9082,7 +9085,7 @@ pub const kvm_device_type_KVM_DEV_TYPE_ARM_PV_TIME: kvm_device_type = 10; pub const kvm_device_type_KVM_DEV_TYPE_MAX: kvm_device_type = 11; pub type kvm_device_type = ::std::os::raw::c_uint; #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_vfio_spapr_tce { pub groupfd: __s32, pub tablefd: __s32, @@ -9123,7 +9126,7 @@ fn bindgen_test_layout_kvm_vfio_spapr_tce() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_s390_ucas_mapping { pub user_addr: __u64, pub vcpu_addr: __u64, @@ -9176,7 +9179,7 @@ fn bindgen_test_layout_kvm_s390_ucas_mapping() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_enc_region { pub addr: __u64, pub size: __u64, @@ -9217,7 +9220,7 @@ fn bindgen_test_layout_kvm_enc_region() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_s390_pv_sec_parm { pub origin: __u64, pub length: __u64, @@ -9258,7 +9261,7 @@ fn bindgen_test_layout_kvm_s390_pv_sec_parm() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_s390_pv_unp { pub addr: __u64, pub size: __u64, @@ -9315,7 +9318,7 @@ pub const pv_cmd_dmp_id_KVM_PV_DUMP_COMPLETE: pv_cmd_dmp_id = 2; pub const pv_cmd_dmp_id_KVM_PV_DUMP_CPU: pv_cmd_dmp_id = 3; pub type pv_cmd_dmp_id = ::std::os::raw::c_uint; #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_s390_pv_dmp { pub subcmd: __u64, pub buff_addr: __u64, @@ -9392,7 +9395,7 @@ pub const pv_cmd_info_id_KVM_PV_INFO_VM: pv_cmd_info_id = 0; pub const pv_cmd_info_id_KVM_PV_INFO_DUMP: pv_cmd_info_id = 1; pub type pv_cmd_info_id = ::std::os::raw::c_uint; #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_s390_pv_info_dump { pub dump_cpu_buffer_len: __u64, pub dump_config_mem_buffer_per_1m: __u64, @@ -9447,7 +9450,7 @@ fn bindgen_test_layout_kvm_s390_pv_info_dump() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_s390_pv_info_vm { pub inst_calls_list: [__u64; 4usize], pub max_cpus: __u64, @@ -9521,7 +9524,7 @@ fn bindgen_test_layout_kvm_s390_pv_info_vm() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_s390_pv_info_header { pub id: __u32, pub len_max: __u32, @@ -9702,7 +9705,7 @@ pub const pv_cmd_id_KVM_PV_ASYNC_CLEANUP_PREPARE: pv_cmd_id = 9; pub const pv_cmd_id_KVM_PV_ASYNC_CLEANUP_PERFORM: pv_cmd_id = 10; pub type pv_cmd_id = ::std::os::raw::c_uint; #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_pv_cmd { pub cmd: __u32, pub rc: __u16, @@ -9805,7 +9808,7 @@ pub union kvm_xen_hvm_attr__bindgen_ty_1 { pub pad: [__u64; 8usize], } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_1 { pub gfn: __u64, } @@ -9857,7 +9860,7 @@ pub union kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 { pub padding: [__u32; 4usize], } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1 { pub port: __u32, pub vcpu: __u32, @@ -9921,7 +9924,7 @@ fn bindgen_test_layout_kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_ ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_2 { pub port: __u32, pub fd: __s32, @@ -10300,7 +10303,7 @@ pub union kvm_xen_vcpu_attr__bindgen_ty_1 { pub vector: __u8, } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_1 { pub state: __u64, pub state_entry_time: __u64, @@ -10392,7 +10395,7 @@ fn bindgen_test_layout_kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_1() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_2 { pub port: __u32, pub priority: __u32, @@ -10628,7 +10631,7 @@ pub const sev_cmd_id_KVM_SEV_SEND_CANCEL: sev_cmd_id = 21; pub const sev_cmd_id_KVM_SEV_NR_MAX: sev_cmd_id = 22; pub type sev_cmd_id = ::std::os::raw::c_uint; #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_sev_cmd { pub id: __u32, pub data: __u64, @@ -10691,7 +10694,7 @@ fn bindgen_test_layout_kvm_sev_cmd() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_sev_launch_start { pub handle: __u32, pub policy: __u32, @@ -10776,7 +10779,7 @@ fn bindgen_test_layout_kvm_sev_launch_start() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_sev_launch_update_data { pub uaddr: __u64, pub len: __u32, @@ -10818,7 +10821,7 @@ fn bindgen_test_layout_kvm_sev_launch_update_data() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_sev_launch_secret { pub hdr_uaddr: __u64, pub hdr_len: __u32, @@ -10904,7 +10907,7 @@ fn bindgen_test_layout_kvm_sev_launch_secret() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_sev_launch_measure { pub uaddr: __u64, pub len: __u32, @@ -10946,7 +10949,7 @@ fn bindgen_test_layout_kvm_sev_launch_measure() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_sev_guest_status { pub handle: __u32, pub policy: __u32, @@ -10998,7 +11001,7 @@ fn bindgen_test_layout_kvm_sev_guest_status() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_sev_dbg { pub src_uaddr: __u64, pub dst_uaddr: __u64, @@ -11050,7 +11053,7 @@ fn bindgen_test_layout_kvm_sev_dbg() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_sev_attestation_report { pub mnonce: [__u8; 16usize], pub uaddr: __u64, @@ -11103,7 +11106,7 @@ fn bindgen_test_layout_kvm_sev_attestation_report() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_sev_send_start { pub policy: __u32, pub pdh_cert_uaddr: __u64, @@ -11221,7 +11224,7 @@ fn bindgen_test_layout_kvm_sev_send_start() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_sev_send_update_data { pub hdr_uaddr: __u64, pub hdr_len: __u32, @@ -11307,7 +11310,7 @@ fn bindgen_test_layout_kvm_sev_send_update_data() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_sev_receive_start { pub handle: __u32, pub policy: __u32, @@ -11393,7 +11396,7 @@ fn bindgen_test_layout_kvm_sev_receive_start() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_sev_receive_update_data { pub hdr_uaddr: __u64, pub hdr_len: __u32, @@ -11739,7 +11742,7 @@ impl ::std::fmt::Debug for kvm_assigned_irq { } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_assigned_msix_nr { pub assigned_dev_id: __u32, pub entry_nr: __u16, @@ -11791,7 +11794,7 @@ fn bindgen_test_layout_kvm_assigned_msix_nr() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_assigned_msix_entry { pub assigned_dev_id: __u32, pub gsi: __u32, @@ -11855,7 +11858,7 @@ fn bindgen_test_layout_kvm_assigned_msix_entry() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_hyperv_eventfd { pub conn_id: __u32, pub fd: __s32, @@ -11918,7 +11921,7 @@ fn bindgen_test_layout_kvm_hyperv_eventfd() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_dirty_gfn { pub flags: __u32, pub slot: __u32, @@ -11971,7 +11974,7 @@ fn bindgen_test_layout_kvm_dirty_gfn() { } #[doc = " struct kvm_stats_header - Header of per vm/vcpu binary statistics data.\n @flags: Some extra information for header, always 0 for now.\n @name_size: The size in bytes of the memory which contains statistics\n name string including trailing '\\0'. The memory is allocated\n at the send of statistics descriptor.\n @num_desc: The number of statistics the vm or vcpu has.\n @id_offset: The offset of the vm/vcpu stats' id string in the file pointed\n by vm/vcpu stats fd.\n @desc_offset: The offset of the vm/vcpu stats' descriptor block in the file\n pointd by vm/vcpu stats fd.\n @data_offset: The offset of the vm/vcpu stats' data block in the file\n pointed by vm/vcpu stats fd.\n\n This is the header userspace needs to read from stats fd before any other\n readings. It is used by userspace to discover all the information about the\n vm/vcpu's binary statistics.\n Userspace reads this header from the start of the vm/vcpu's stats fd."] #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_stats_header { pub flags: __u32, pub name_size: __u32, @@ -12156,7 +12159,7 @@ pub union kvm_s390_zpci_op__bindgen_ty_1 { pub reserved: [__u64; 8usize], } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_s390_zpci_op__bindgen_ty_1__bindgen_ty_1 { pub ibv: __u64, pub sb: __u64, diff --git a/src/arm64/fam_wrappers.rs b/src/arm64/fam_wrappers.rs index 6a26609..e52568b 100644 --- a/src/arm64/fam_wrappers.rs +++ b/src/arm64/fam_wrappers.rs @@ -3,7 +3,7 @@ use vmm_sys_util::fam::{FamStruct, FamStructWrapper}; -use arm64::bindings::*; +use crate::arm64::bindings::*; // There is no constant in the kernel as far as the maximum number // of registers on arm, but KVM_GET_REG_LIST usually returns around 450. diff --git a/src/lib.rs b/src/lib.rs index 2b805a9..a465cb6 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -12,8 +12,8 @@ #[cfg(feature = "fam-wrappers")] extern crate vmm_sys_util; -extern crate versionize; -extern crate versionize_derive; +extern crate serde; +extern crate serde_big_array; #[cfg(target_arch = "x86_64")] mod x86_64; diff --git a/src/x86_64/bindings.rs b/src/x86_64/bindings.rs index d545a21..1a61bf6 100644 --- a/src/x86_64/bindings.rs +++ b/src/x86_64/bindings.rs @@ -1,10 +1,12 @@ /* automatically generated by rust-bindgen 0.64.0 */ -use versionize::{VersionMap, Versionize, VersionizeResult}; -use versionize_derive::Versionize; +use serde::{Deserialize, Serialize}; +use serde_big_array::BigArray; #[repr(C)] -#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)] +#[derive( + Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize, Deserialize, +)] pub struct __BindgenBitfieldUnit { storage: Storage, } @@ -14,35 +16,6 @@ impl __BindgenBitfieldUnit { Self { storage } } } -// Implementing Versionize by hand due to some weird errors when trying to derive (most likely -// because versionize_derive does not support structs with generics at this point). -impl Versionize for __BindgenBitfieldUnit -where - Storage: AsRef<[u8]> + AsMut<[u8]> + Versionize, -{ - fn serialize( - &self, - writer: &mut W, - version_map: &VersionMap, - app_version: u16, - ) -> VersionizeResult<()> { - Versionize::serialize(&self.storage, writer, version_map, app_version) - } - - fn deserialize( - reader: &mut R, - version_map: &VersionMap, - app_version: u16, - ) -> VersionizeResult { - let storage = Versionize::deserialize(reader, version_map, app_version)?; - - Ok(__BindgenBitfieldUnit { storage }) - } - - fn version() -> u16 { - 1 - } -} impl __BindgenBitfieldUnit where Storage: AsRef<[u8]> + AsMut<[u8]>, @@ -113,7 +86,7 @@ where } } #[repr(C)] -#[derive(Default)] +#[derive(Default, Serialize, Deserialize)] pub struct __IncompleteArrayField(::std::marker::PhantomData, [T; 0]); impl __IncompleteArrayField { #[inline] @@ -185,31 +158,7 @@ impl ::std::cmp::PartialEq for __BindgenUnionField { } } impl ::std::cmp::Eq for __BindgenUnionField {} -impl Versionize for __IncompleteArrayField { - #[inline] - fn serialize( - &self, - _writer: &mut W, - _version_map: &VersionMap, - _app_version: u16, - ) -> VersionizeResult<()> { - Ok(()) - } - #[inline] - fn deserialize( - _reader: &mut R, - _version_map: &VersionMap, - _app_version: u16, - ) -> VersionizeResult { - Ok(Self::new()) - } - - // Not used. - fn version() -> u16 { - 1 - } -} pub const __BITS_PER_LONG: u32 = 64; pub const __FD_SETSIZE: u32 = 1024; pub const _IOC_NRBITS: u32 = 8; @@ -833,7 +782,7 @@ pub type __u32 = ::std::os::raw::c_uint; pub type __s64 = ::std::os::raw::c_longlong; pub type __u64 = ::std::os::raw::c_ulonglong; #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct __kernel_fd_set { pub fds_bits: [::std::os::raw::c_ulong; 16usize], } @@ -885,7 +834,7 @@ pub type __kernel_size_t = __kernel_ulong_t; pub type __kernel_ssize_t = __kernel_long_t; pub type __kernel_ptrdiff_t = __kernel_long_t; #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct __kernel_fsid_t { pub val: [::std::os::raw::c_int; 2usize], } @@ -935,7 +884,7 @@ pub type __sum16 = __u16; pub type __wsum = __u32; pub type __poll_t = ::std::os::raw::c_uint; #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_pic_state { pub last_irr: __u8, pub irr: __u8, @@ -1130,7 +1079,7 @@ fn bindgen_test_layout_kvm_pic_state() { ); } #[repr(C)] -#[derive(Copy, Clone, Versionize)] +#[derive(Copy, Clone, Serialize, Deserialize)] pub struct kvm_ioapic_state { pub base_address: __u64, pub ioregsel: __u32, @@ -1139,45 +1088,39 @@ pub struct kvm_ioapic_state { pub pad: __u32, pub redirtbl: [kvm_ioapic_state__bindgen_ty_1; 24usize], } + #[repr(C)] #[derive(Copy, Clone)] pub union kvm_ioapic_state__bindgen_ty_1 { pub bits: __u64, pub fields: kvm_ioapic_state__bindgen_ty_1__bindgen_ty_1, } -// Manual implementation of `Versionize` since `versionize_derive` doesn't support unions -// anymore. What we're doing here is equivalent to the old autogenerated implementation, namely -// we're creating a bitwise serialization of the object. -impl Versionize for kvm_ioapic_state__bindgen_ty_1 { - fn serialize( - &self, - writer: &mut W, - version_map: &VersionMap, - app_version: u16, - ) -> VersionizeResult<()> { - // Safe because this is a POD object and we're only using the read result to serialize - // the underlying bytes. + +impl Serialize for kvm_ioapic_state__bindgen_ty_1 { + fn serialize(&self, serializer: S) -> Result + where + S: serde::Serializer, + { + // SAFETY: Safe because this is a POD object and we're only using the read result to + // serialize the underlying bytes. let bits = unsafe { self.bits }; assert_eq!(std::mem::size_of_val(&bits), std::mem::size_of::()); - Versionize::serialize(&bits, writer, version_map, app_version) + serializer.serialize_u64(bits) } +} - fn deserialize( - reader: &mut R, - version_map: &VersionMap, - app_version: u16, - ) -> VersionizeResult { - let bits: __u64 = Versionize::deserialize(reader, version_map, app_version)?; +impl<'de> Deserialize<'de> for kvm_ioapic_state__bindgen_ty_1 { + fn deserialize(deserializer: D) -> Result + where + D: serde::Deserializer<'de>, + { + let bits: __u64 = Deserialize::deserialize(deserializer)?; assert_eq!(std::mem::size_of_val(&bits), std::mem::size_of::()); Ok(Self { bits }) } - - fn version() -> u16 { - 1 - } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct kvm_ioapic_state__bindgen_ty_1__bindgen_ty_1 { pub vector: __u8, pub _bitfield_align_1: [u8; 0], @@ -1513,7 +1456,7 @@ impl ::std::fmt::Debug for kvm_ioapic_state { } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_regs { pub rax: __u64, pub rbx: __u64, @@ -1730,8 +1673,9 @@ fn bindgen_test_layout_kvm_regs() { ); } #[repr(C)] -#[derive(Debug, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_lapic_state { + #[serde(with = "BigArray")] pub regs: [::std::os::raw::c_char; 1024usize], } #[test] @@ -1769,7 +1713,7 @@ impl Default for kvm_lapic_state { } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_segment { pub base: __u64, pub limit: __u32, @@ -1931,7 +1875,7 @@ fn bindgen_test_layout_kvm_segment() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_dtable { pub base: __u64, pub limit: __u16, @@ -1983,7 +1927,7 @@ fn bindgen_test_layout_kvm_dtable() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_sregs { pub cs: kvm_segment, pub ds: kvm_segment, @@ -2200,7 +2144,7 @@ fn bindgen_test_layout_kvm_sregs() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_sregs2 { pub cs: kvm_segment, pub ds: kvm_segment, @@ -2568,7 +2512,7 @@ fn bindgen_test_layout_kvm_fpu() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_msr_entry { pub index: __u32, pub reserved: __u32, @@ -2620,7 +2564,7 @@ fn bindgen_test_layout_kvm_msr_entry() { ); } #[repr(C)] -#[derive(Debug, Default, Versionize)] +#[derive(Debug, Default, Serialize, Deserialize)] pub struct kvm_msrs { pub nmsrs: __u32, pub pad: __u32, @@ -2672,7 +2616,7 @@ fn bindgen_test_layout_kvm_msrs() { ); } #[repr(C)] -#[derive(Debug, Default, Versionize)] +#[derive(Debug, Default, Serialize, Deserialize)] pub struct kvm_msr_list { pub nmsrs: __u32, pub indices: __IncompleteArrayField<__u32>, @@ -2835,7 +2779,7 @@ impl Default for kvm_msr_filter { } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_cpuid_entry { pub function: __u32, pub eax: __u32, @@ -2920,7 +2864,7 @@ fn bindgen_test_layout_kvm_cpuid_entry() { ); } #[repr(C)] -#[derive(Debug, Default, Versionize)] +#[derive(Debug, Default, Serialize, Deserialize)] pub struct kvm_cpuid { pub nent: __u32, pub padding: __u32, @@ -2972,7 +2916,7 @@ fn bindgen_test_layout_kvm_cpuid() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_cpuid_entry2 { pub function: __u32, pub index: __u32, @@ -3079,7 +3023,7 @@ fn bindgen_test_layout_kvm_cpuid_entry2() { ); } #[repr(C)] -#[derive(Debug, Default, Versionize)] +#[derive(Debug, Default, Serialize, Deserialize)] pub struct kvm_cpuid2 { pub nent: __u32, pub padding: __u32, @@ -3131,7 +3075,7 @@ fn bindgen_test_layout_kvm_cpuid2() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_pit_channel_state { pub count: __u32, pub latched_count: __u16, @@ -3294,7 +3238,7 @@ fn bindgen_test_layout_kvm_pit_channel_state() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_debug_exit_arch { pub exception: __u32, pub pad: __u32, @@ -3368,7 +3312,7 @@ fn bindgen_test_layout_kvm_debug_exit_arch() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_guest_debug_arch { pub debugreg: [__u64; 8usize], } @@ -3398,7 +3342,7 @@ fn bindgen_test_layout_kvm_guest_debug_arch() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_pit_state { pub channels: [kvm_pit_channel_state; 3usize], } @@ -3428,7 +3372,7 @@ fn bindgen_test_layout_kvm_pit_state() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_pit_state2 { pub channels: [kvm_pit_channel_state; 3usize], pub flags: __u32, @@ -3480,7 +3424,7 @@ fn bindgen_test_layout_kvm_pit_state2() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_reinject_control { pub pit_reinject: __u8, pub reserved: [__u8; 31usize], @@ -3521,7 +3465,7 @@ fn bindgen_test_layout_kvm_reinject_control() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_vcpu_events { pub exception: kvm_vcpu_events__bindgen_ty_1, pub interrupt: kvm_vcpu_events__bindgen_ty_2, @@ -3535,7 +3479,7 @@ pub struct kvm_vcpu_events { pub exception_payload: __u64, } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_vcpu_events__bindgen_ty_1 { pub injected: __u8, pub nr: __u8, @@ -3610,7 +3554,7 @@ fn bindgen_test_layout_kvm_vcpu_events__bindgen_ty_1() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_vcpu_events__bindgen_ty_2 { pub injected: __u8, pub nr: __u8, @@ -3674,7 +3618,7 @@ fn bindgen_test_layout_kvm_vcpu_events__bindgen_ty_2() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_vcpu_events__bindgen_ty_3 { pub injected: __u8, pub pending: __u8, @@ -3738,7 +3682,7 @@ fn bindgen_test_layout_kvm_vcpu_events__bindgen_ty_3() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_vcpu_events__bindgen_ty_4 { pub smm: __u8, pub pending: __u8, @@ -3802,7 +3746,7 @@ fn bindgen_test_layout_kvm_vcpu_events__bindgen_ty_4() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_vcpu_events__bindgen_ty_5 { pub pending: __u8, } @@ -3948,7 +3892,7 @@ fn bindgen_test_layout_kvm_vcpu_events() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_debugregs { pub db: [__u64; 4usize], pub dr6: __u64, @@ -4022,8 +3966,9 @@ fn bindgen_test_layout_kvm_debugregs() { ); } #[repr(C)] -#[derive(Debug, Versionize)] +#[derive(Debug, Serialize, Deserialize)] pub struct kvm_xsave { + #[serde(with = "BigArray")] pub region: [__u32; 1024usize], pub extra: __IncompleteArrayField<__u32>, } @@ -4080,7 +4025,7 @@ impl Default for kvm_xsave { } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_xcr { pub xcr: __u32, pub reserved: __u32, @@ -4132,7 +4077,7 @@ fn bindgen_test_layout_kvm_xcr() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_xcrs { pub nr_xcrs: __u32, pub flags: __u32, @@ -4195,7 +4140,7 @@ fn bindgen_test_layout_kvm_xcrs() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_sync_regs { pub regs: kvm_regs, pub sregs: kvm_sregs, @@ -4247,9 +4192,11 @@ fn bindgen_test_layout_kvm_sync_regs() { ); } #[repr(C)] -#[derive(Debug, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_vmx_nested_state_data { + #[serde(with = "BigArray")] pub vmcs12: [__u8; 4096usize], + #[serde(with = "BigArray")] pub shadow_vmcs12: [__u8; 4096usize], } #[test] @@ -4298,7 +4245,7 @@ impl Default for kvm_vmx_nested_state_data { } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_vmx_nested_state_hdr { pub vmxon_pa: __u64, pub vmcs12_pa: __u64, @@ -4308,7 +4255,7 @@ pub struct kvm_vmx_nested_state_hdr { pub preemption_timer_deadline: __u64, } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_vmx_nested_state_hdr__bindgen_ty_1 { pub flags: __u16, } @@ -4421,8 +4368,9 @@ fn bindgen_test_layout_kvm_vmx_nested_state_hdr() { ); } #[repr(C)] -#[derive(Debug, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_svm_nested_state_data { + #[serde(with = "BigArray")] pub vmcb12: [__u8; 4096usize], } #[test] @@ -4461,7 +4409,7 @@ impl Default for kvm_svm_nested_state_data { } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_svm_nested_state_hdr { pub vmcb_pa: __u64, } @@ -4706,7 +4654,7 @@ impl ::std::fmt::Debug for kvm_nested_state { } } #[repr(C)] -#[derive(Debug, Default, Versionize)] +#[derive(Debug, Default, Serialize, Deserialize)] pub struct kvm_pmu_event_filter { pub action: __u32, pub nevents: __u32, @@ -4791,7 +4739,7 @@ fn bindgen_test_layout_kvm_pmu_event_filter() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_user_trace_setup { pub buf_size: __u32, pub buf_nr: __u32, @@ -4832,7 +4780,7 @@ fn bindgen_test_layout_kvm_user_trace_setup() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_breakpoint { pub enabled: __u32, pub padding: __u32, @@ -4884,7 +4832,7 @@ fn bindgen_test_layout_kvm_breakpoint() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_debug_guest { pub enabled: __u32, pub pad: __u32, @@ -4947,7 +4895,7 @@ fn bindgen_test_layout_kvm_debug_guest() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_userspace_memory_region { pub slot: __u32, pub flags: __u32, @@ -5127,7 +5075,7 @@ impl ::std::fmt::Debug for kvm_irq_level { } } #[repr(C)] -#[derive(Copy, Clone, Versionize)] +#[derive(Copy, Clone, Serialize, Deserialize)] pub struct kvm_irqchip { pub chip_id: __u32, pub pad: __u32, @@ -5141,11 +5089,12 @@ pub union kvm_irqchip__bindgen_ty_1 { pub ioapic: kvm_ioapic_state, } -// Helper struct for the manual `Versionize` implementation below. This makes things easier, +// Helper struct for the manual `Serialize, Deserialize` implementation below. This makes things easier, // because there's no default way of serializing larger arrays. #[repr(transparent)] -#[derive(Versionize)] +#[derive(Serialize, Deserialize)] struct kvm_irqchip__bindgen_ty_1_dummy { + #[serde(with = "BigArray")] dummy: [::std::os::raw::c_char; 512usize], } @@ -5155,37 +5104,28 @@ impl kvm_irqchip__bindgen_ty_1_dummy { } } -// Manual implementation of `Versionize` since `versionize_derive` doesn't support unions -// anymore. What we're doing here is equivalent to the old autogenerated implementation, namely -// we're creating a bitwise serialization of the object. -impl Versionize for kvm_irqchip__bindgen_ty_1 { - fn serialize( - &self, - writer: &mut W, - version_map: &VersionMap, - app_version: u16, - ) -> VersionizeResult<()> { - // Safe because this is a POD struct and we're only using the read result to serialize - // the underlying bytes. +impl Serialize for kvm_irqchip__bindgen_ty_1 { + fn serialize(&self, serializer: S) -> Result + where + S: serde::Serializer, + { + // SAFETY: Safe because this is a POD struct and we're only using the read result to + // serialize the underlying bytes. let dummy = kvm_irqchip__bindgen_ty_1_dummy::new(unsafe { self.dummy }); assert_eq!(std::mem::size_of_val(&dummy), std::mem::size_of::()); - Versionize::serialize(&dummy, writer, version_map, app_version) + dummy.serialize(serializer) } +} - fn deserialize( - reader: &mut R, - version_map: &VersionMap, - app_version: u16, - ) -> VersionizeResult { - let dummy: kvm_irqchip__bindgen_ty_1_dummy = - Versionize::deserialize(reader, version_map, app_version)?; +impl<'de> Deserialize<'de> for kvm_irqchip__bindgen_ty_1 { + fn deserialize(deserializer: D) -> Result + where + D: serde::Deserializer<'de>, + { + let dummy: kvm_irqchip__bindgen_ty_1_dummy = Deserialize::deserialize(deserializer)?; assert_eq!(std::mem::size_of_val(&dummy), std::mem::size_of::()); Ok(Self { dummy: dummy.dummy }) } - - fn version() -> u16 { - 1 - } } #[test] fn bindgen_test_layout_kvm_irqchip__bindgen_ty_1() { @@ -5311,7 +5251,7 @@ impl ::std::fmt::Debug for kvm_irqchip { } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_pit_config { pub flags: __u32, pub pad: [__u32; 15usize], @@ -5352,7 +5292,7 @@ fn bindgen_test_layout_kvm_pit_config() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_s390_skeys { pub start_gfn: __u64, pub count: __u64, @@ -5575,7 +5515,7 @@ pub union kvm_hyperv_exit__bindgen_ty_1 { pub syndbg: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3, } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1 { pub msr: __u32, pub pad2: __u32, @@ -5656,7 +5596,7 @@ fn bindgen_test_layout_kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_2 { pub input: __u64, pub result: __u64, @@ -5715,7 +5655,7 @@ fn bindgen_test_layout_kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_2() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3 { pub msr: __u32, pub pad2: __u32, @@ -5952,7 +5892,7 @@ pub union kvm_xen_exit__bindgen_ty_1 { pub hcall: kvm_xen_exit__bindgen_ty_1__bindgen_ty_1, } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_xen_exit__bindgen_ty_1__bindgen_ty_1 { pub longmode: __u32, pub cpl: __u32, @@ -6176,7 +6116,7 @@ pub union kvm_run__bindgen_ty_1 { pub padding: [::std::os::raw::c_char; 256usize], } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_1 { pub hardware_exit_reason: __u64, } @@ -6210,7 +6150,7 @@ fn bindgen_test_layout_kvm_run__bindgen_ty_1__bindgen_ty_1() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_2 { pub hardware_entry_failure_reason: __u64, pub cpu: __u32, @@ -6257,7 +6197,7 @@ fn bindgen_test_layout_kvm_run__bindgen_ty_1__bindgen_ty_2() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_3 { pub exception: __u32, pub error_code: __u32, @@ -6302,7 +6242,7 @@ fn bindgen_test_layout_kvm_run__bindgen_ty_1__bindgen_ty_3() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_4 { pub direction: __u8, pub size: __u8, @@ -6380,7 +6320,7 @@ fn bindgen_test_layout_kvm_run__bindgen_ty_1__bindgen_ty_4() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_5 { pub arch: kvm_debug_exit_arch, } @@ -6414,7 +6354,7 @@ fn bindgen_test_layout_kvm_run__bindgen_ty_1__bindgen_ty_5() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_6 { pub phys_addr: __u64, pub data: [__u8; 8usize], @@ -6481,7 +6421,7 @@ fn bindgen_test_layout_kvm_run__bindgen_ty_1__bindgen_ty_6() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_7 { pub nr: __u64, pub args: [__u64; 6usize], @@ -6559,7 +6499,7 @@ fn bindgen_test_layout_kvm_run__bindgen_ty_1__bindgen_ty_7() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_8 { pub rip: __u64, pub is_write: __u32, @@ -6615,7 +6555,7 @@ fn bindgen_test_layout_kvm_run__bindgen_ty_1__bindgen_ty_8() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_9 { pub icptcode: __u8, pub ipa: __u16, @@ -6671,7 +6611,7 @@ fn bindgen_test_layout_kvm_run__bindgen_ty_1__bindgen_ty_9() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_10 { pub trans_exc_code: __u64, pub pgm_code: __u32, @@ -6719,7 +6659,7 @@ fn bindgen_test_layout_kvm_run__bindgen_ty_1__bindgen_ty_10() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_11 { pub dcrn: __u32, pub data: __u32, @@ -6778,7 +6718,7 @@ fn bindgen_test_layout_kvm_run__bindgen_ty_1__bindgen_ty_11() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_12 { pub suberror: __u32, pub ndata: __u32, @@ -6850,7 +6790,7 @@ pub union kvm_run__bindgen_ty_1__bindgen_ty_13__bindgen_ty_1 { pub __bindgen_anon_1: kvm_run__bindgen_ty_1__bindgen_ty_13__bindgen_ty_1__bindgen_ty_1, } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_13__bindgen_ty_1__bindgen_ty_1 { pub insn_size: __u8, pub insn_bytes: [__u8; 15usize], @@ -7001,7 +6941,7 @@ impl ::std::fmt::Debug for kvm_run__bindgen_ty_1__bindgen_ty_13 { } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_14 { pub gprs: [__u64; 32usize], } @@ -7038,7 +6978,7 @@ fn bindgen_test_layout_kvm_run__bindgen_ty_1__bindgen_ty_14() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_15 { pub nr: __u64, pub ret: __u64, @@ -7097,7 +7037,7 @@ fn bindgen_test_layout_kvm_run__bindgen_ty_1__bindgen_ty_15() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_16 { pub subchannel_id: __u16, pub subchannel_nr: __u16, @@ -7189,7 +7129,7 @@ fn bindgen_test_layout_kvm_run__bindgen_ty_1__bindgen_ty_16() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_17 { pub epr: __u32, } @@ -7354,7 +7294,7 @@ impl ::std::fmt::Debug for kvm_run__bindgen_ty_1__bindgen_ty_18 { } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_19 { pub addr: __u64, pub ar: __u8, @@ -7446,7 +7386,7 @@ fn bindgen_test_layout_kvm_run__bindgen_ty_1__bindgen_ty_19() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_20 { pub vector: __u8, } @@ -7483,7 +7423,7 @@ fn bindgen_test_layout_kvm_run__bindgen_ty_1__bindgen_ty_20() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_21 { pub esr_iss: __u64, pub fault_ipa: __u64, @@ -7531,7 +7471,7 @@ fn bindgen_test_layout_kvm_run__bindgen_ty_1__bindgen_ty_21() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_22 { pub error: __u8, pub pad: [__u8; 7usize], @@ -7612,7 +7552,7 @@ fn bindgen_test_layout_kvm_run__bindgen_ty_1__bindgen_ty_22() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_23 { pub extension_id: ::std::os::raw::c_ulong, pub function_id: ::std::os::raw::c_ulong, @@ -7682,7 +7622,7 @@ fn bindgen_test_layout_kvm_run__bindgen_ty_1__bindgen_ty_23() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_24 { pub csr_num: ::std::os::raw::c_ulong, pub new_value: ::std::os::raw::c_ulong, @@ -7752,7 +7692,7 @@ fn bindgen_test_layout_kvm_run__bindgen_ty_1__bindgen_ty_24() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_run__bindgen_ty_1__bindgen_ty_25 { pub flags: __u32, } @@ -8635,7 +8575,7 @@ impl ::std::fmt::Debug for kvm_coalesced_mmio_ring { } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_translation { pub linear_address: __u64, pub physical_address: __u64, @@ -8737,7 +8677,7 @@ pub union kvm_s390_mem_op__bindgen_ty_1 { pub reserved: [__u8; 32usize], } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_s390_mem_op__bindgen_ty_1__bindgen_ty_1 { pub ar: __u8, pub key: __u8, @@ -8914,7 +8854,7 @@ impl ::std::fmt::Debug for kvm_s390_mem_op { } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_interrupt { pub irq: __u32, } @@ -9186,7 +9126,7 @@ impl ::std::fmt::Debug for kvm_clear_dirty_log { } } #[repr(C)] -#[derive(Debug, Default, Versionize)] +#[derive(Debug, Default, Serialize, Deserialize)] pub struct kvm_signal_mask { pub len: __u32, pub sigset: __IncompleteArrayField<__u8>, @@ -9227,7 +9167,7 @@ fn bindgen_test_layout_kvm_signal_mask() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_tpr_access_ctl { pub enabled: __u32, pub flags: __u32, @@ -9279,7 +9219,7 @@ fn bindgen_test_layout_kvm_tpr_access_ctl() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_vapic_addr { pub vapic_addr: __u64, } @@ -9309,7 +9249,7 @@ fn bindgen_test_layout_kvm_vapic_addr() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_mp_state { pub mp_state: __u32, } @@ -9339,7 +9279,7 @@ fn bindgen_test_layout_kvm_mp_state() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_s390_psw { pub mask: __u64, pub addr: __u64, @@ -9380,7 +9320,7 @@ fn bindgen_test_layout_kvm_s390_psw() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_s390_interrupt { pub type_: __u32, pub parm: __u32, @@ -9432,7 +9372,7 @@ fn bindgen_test_layout_kvm_s390_interrupt() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_s390_io_info { pub subchannel_id: __u16, pub subchannel_nr: __u16, @@ -9495,7 +9435,7 @@ fn bindgen_test_layout_kvm_s390_io_info() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_s390_ext_info { pub ext_params: __u32, pub pad: __u32, @@ -9547,7 +9487,7 @@ fn bindgen_test_layout_kvm_s390_ext_info() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_s390_pgm_info { pub trans_exc_code: __u64, pub mon_code: __u64, @@ -9709,7 +9649,7 @@ fn bindgen_test_layout_kvm_s390_pgm_info() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_s390_prefix_info { pub address: __u32, } @@ -9739,7 +9679,7 @@ fn bindgen_test_layout_kvm_s390_prefix_info() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_s390_extcall_info { pub code: __u16, } @@ -9770,7 +9710,7 @@ fn bindgen_test_layout_kvm_s390_extcall_info() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_s390_emerg_info { pub code: __u16, } @@ -9800,7 +9740,7 @@ fn bindgen_test_layout_kvm_s390_emerg_info() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_s390_stop_info { pub flags: __u32, } @@ -9830,7 +9770,7 @@ fn bindgen_test_layout_kvm_s390_stop_info() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_s390_mchk_info { pub cr14: __u64, pub mcic: __u64, @@ -10107,7 +10047,7 @@ impl ::std::fmt::Debug for kvm_s390_irq { } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_s390_irq_state { pub buf: __u64, pub flags: __u32, @@ -10170,7 +10110,7 @@ fn bindgen_test_layout_kvm_s390_irq_state() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_guest_debug { pub control: __u32, pub pad: __u32, @@ -10229,13 +10169,14 @@ pub const kvm_ioeventfd_flag_nr_fast_mmio: _bindgen_ty_1 = 4; pub const kvm_ioeventfd_flag_nr_max: _bindgen_ty_1 = 5; pub type _bindgen_ty_1 = ::std::os::raw::c_uint; #[repr(C)] -#[derive(Debug, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_ioeventfd { pub datamatch: __u64, pub addr: __u64, pub len: __u32, pub fd: __s32, pub flags: __u32, + #[serde(with = "BigArray")] pub pad: [__u8; 36usize], } #[test] @@ -10323,11 +10264,12 @@ impl Default for kvm_ioeventfd { } } #[repr(C)] -#[derive(Debug, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_enable_cap { pub cap: __u32, pub flags: __u32, pub args: [__u64; 4usize], + #[serde(with = "BigArray")] pub pad: [__u8; 64usize], } #[test] @@ -10395,10 +10337,11 @@ impl Default for kvm_enable_cap { } } #[repr(C)] -#[derive(Debug, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_ppc_pvinfo { pub flags: __u32, pub hcall: [__u32; 4usize], + #[serde(with = "BigArray")] pub pad: [__u8; 108usize], } #[test] @@ -10456,7 +10399,7 @@ impl Default for kvm_ppc_pvinfo { } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_ppc_one_page_size { pub page_shift: __u32, pub pte_enc: __u32, @@ -10498,7 +10441,7 @@ fn bindgen_test_layout_kvm_ppc_one_page_size() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_ppc_one_seg_page_size { pub page_shift: __u32, pub slb_enc: __u32, @@ -10551,7 +10494,7 @@ fn bindgen_test_layout_kvm_ppc_one_seg_page_size() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_ppc_smmu_info { pub flags: __u64, pub slb_size: __u32, @@ -10625,7 +10568,7 @@ fn bindgen_test_layout_kvm_ppc_smmu_info() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_ppc_resize_hpt { pub flags: __u64, pub shift: __u32, @@ -10677,7 +10620,7 @@ fn bindgen_test_layout_kvm_ppc_resize_hpt() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_irq_routing_irqchip { pub irqchip: __u32, pub pin: __u32, @@ -10845,7 +10788,7 @@ impl ::std::fmt::Debug for kvm_irq_routing_msi { } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_irq_routing_s390_adapter { pub ind_addr: __u64, pub summary_addr: __u64, @@ -10920,7 +10863,7 @@ fn bindgen_test_layout_kvm_irq_routing_s390_adapter() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_irq_routing_hv_sint { pub vcpu: __u32, pub sint: __u32, @@ -10962,7 +10905,7 @@ fn bindgen_test_layout_kvm_irq_routing_hv_sint() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_irq_routing_xen_evtchn { pub port: __u32, pub vcpu: __u32, @@ -11280,7 +11223,7 @@ impl ::std::fmt::Debug for kvm_irq_routing { } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_x86_mce { pub status: __u64, pub addr: __u64, @@ -11376,7 +11319,7 @@ fn bindgen_test_layout_kvm_x86_mce() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_xen_hvm_config { pub flags: __u32, pub msr: __u32, @@ -11472,7 +11415,7 @@ fn bindgen_test_layout_kvm_xen_hvm_config() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_irqfd { pub fd: __u32, pub gsi: __u32, @@ -11546,7 +11489,7 @@ fn bindgen_test_layout_kvm_irqfd() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_clock_data { pub clock: __u64, pub flags: __u32, @@ -11631,7 +11574,7 @@ fn bindgen_test_layout_kvm_clock_data() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_config_tlb { pub params: __u64, pub array: __u64, @@ -11694,7 +11637,7 @@ fn bindgen_test_layout_kvm_config_tlb() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_dirty_tlb { pub bitmap: __u64, pub num_dirty: __u32, @@ -11735,7 +11678,7 @@ fn bindgen_test_layout_kvm_dirty_tlb() { ); } #[repr(C)] -#[derive(Debug, Default, Versionize)] +#[derive(Debug, Default, Serialize, Deserialize)] pub struct kvm_reg_list { pub n: __u64, pub reg: __IncompleteArrayField<__u64>, @@ -11776,7 +11719,7 @@ fn bindgen_test_layout_kvm_reg_list() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_one_reg { pub id: __u64, pub addr: __u64, @@ -11817,7 +11760,7 @@ fn bindgen_test_layout_kvm_one_reg() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_msi { pub address_lo: __u32, pub address_hi: __u32, @@ -11902,7 +11845,7 @@ fn bindgen_test_layout_kvm_msi() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_arm_device_addr { pub id: __u64, pub addr: __u64, @@ -11943,7 +11886,7 @@ fn bindgen_test_layout_kvm_arm_device_addr() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_create_device { pub type_: __u32, pub fd: __u32, @@ -11995,7 +11938,7 @@ fn bindgen_test_layout_kvm_create_device() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_device_attr { pub flags: __u32, pub group: __u32, @@ -12070,7 +12013,7 @@ pub const kvm_device_type_KVM_DEV_TYPE_ARM_PV_TIME: kvm_device_type = 10; pub const kvm_device_type_KVM_DEV_TYPE_MAX: kvm_device_type = 11; pub type kvm_device_type = ::std::os::raw::c_uint; #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_vfio_spapr_tce { pub groupfd: __s32, pub tablefd: __s32, @@ -12111,7 +12054,7 @@ fn bindgen_test_layout_kvm_vfio_spapr_tce() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_s390_ucas_mapping { pub user_addr: __u64, pub vcpu_addr: __u64, @@ -12164,7 +12107,7 @@ fn bindgen_test_layout_kvm_s390_ucas_mapping() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_enc_region { pub addr: __u64, pub size: __u64, @@ -12205,7 +12148,7 @@ fn bindgen_test_layout_kvm_enc_region() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_s390_pv_sec_parm { pub origin: __u64, pub length: __u64, @@ -12246,7 +12189,7 @@ fn bindgen_test_layout_kvm_s390_pv_sec_parm() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_s390_pv_unp { pub addr: __u64, pub size: __u64, @@ -12303,7 +12246,7 @@ pub const pv_cmd_dmp_id_KVM_PV_DUMP_COMPLETE: pv_cmd_dmp_id = 2; pub const pv_cmd_dmp_id_KVM_PV_DUMP_CPU: pv_cmd_dmp_id = 3; pub type pv_cmd_dmp_id = ::std::os::raw::c_uint; #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_s390_pv_dmp { pub subcmd: __u64, pub buff_addr: __u64, @@ -12380,7 +12323,7 @@ pub const pv_cmd_info_id_KVM_PV_INFO_VM: pv_cmd_info_id = 0; pub const pv_cmd_info_id_KVM_PV_INFO_DUMP: pv_cmd_info_id = 1; pub type pv_cmd_info_id = ::std::os::raw::c_uint; #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_s390_pv_info_dump { pub dump_cpu_buffer_len: __u64, pub dump_config_mem_buffer_per_1m: __u64, @@ -12435,7 +12378,7 @@ fn bindgen_test_layout_kvm_s390_pv_info_dump() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_s390_pv_info_vm { pub inst_calls_list: [__u64; 4usize], pub max_cpus: __u64, @@ -12509,7 +12452,7 @@ fn bindgen_test_layout_kvm_s390_pv_info_vm() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_s390_pv_info_header { pub id: __u32, pub len_max: __u32, @@ -12690,7 +12633,7 @@ pub const pv_cmd_id_KVM_PV_ASYNC_CLEANUP_PREPARE: pv_cmd_id = 9; pub const pv_cmd_id_KVM_PV_ASYNC_CLEANUP_PERFORM: pv_cmd_id = 10; pub type pv_cmd_id = ::std::os::raw::c_uint; #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_pv_cmd { pub cmd: __u32, pub rc: __u16, @@ -12793,7 +12736,7 @@ pub union kvm_xen_hvm_attr__bindgen_ty_1 { pub pad: [__u64; 8usize], } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_1 { pub gfn: __u64, } @@ -12845,7 +12788,7 @@ pub union kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 { pub padding: [__u32; 4usize], } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1 { pub port: __u32, pub vcpu: __u32, @@ -12909,7 +12852,7 @@ fn bindgen_test_layout_kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_ ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_2 { pub port: __u32, pub fd: __s32, @@ -13288,7 +13231,7 @@ pub union kvm_xen_vcpu_attr__bindgen_ty_1 { pub vector: __u8, } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_1 { pub state: __u64, pub state_entry_time: __u64, @@ -13380,7 +13323,7 @@ fn bindgen_test_layout_kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_1() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_2 { pub port: __u32, pub priority: __u32, @@ -13616,7 +13559,7 @@ pub const sev_cmd_id_KVM_SEV_SEND_CANCEL: sev_cmd_id = 21; pub const sev_cmd_id_KVM_SEV_NR_MAX: sev_cmd_id = 22; pub type sev_cmd_id = ::std::os::raw::c_uint; #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_sev_cmd { pub id: __u32, pub data: __u64, @@ -13679,7 +13622,7 @@ fn bindgen_test_layout_kvm_sev_cmd() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_sev_launch_start { pub handle: __u32, pub policy: __u32, @@ -13764,7 +13707,7 @@ fn bindgen_test_layout_kvm_sev_launch_start() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_sev_launch_update_data { pub uaddr: __u64, pub len: __u32, @@ -13806,7 +13749,7 @@ fn bindgen_test_layout_kvm_sev_launch_update_data() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_sev_launch_secret { pub hdr_uaddr: __u64, pub hdr_len: __u32, @@ -13892,7 +13835,7 @@ fn bindgen_test_layout_kvm_sev_launch_secret() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_sev_launch_measure { pub uaddr: __u64, pub len: __u32, @@ -13934,7 +13877,7 @@ fn bindgen_test_layout_kvm_sev_launch_measure() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_sev_guest_status { pub handle: __u32, pub policy: __u32, @@ -13986,7 +13929,7 @@ fn bindgen_test_layout_kvm_sev_guest_status() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_sev_dbg { pub src_uaddr: __u64, pub dst_uaddr: __u64, @@ -14038,7 +13981,7 @@ fn bindgen_test_layout_kvm_sev_dbg() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_sev_attestation_report { pub mnonce: [__u8; 16usize], pub uaddr: __u64, @@ -14091,7 +14034,7 @@ fn bindgen_test_layout_kvm_sev_attestation_report() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_sev_send_start { pub policy: __u32, pub pdh_cert_uaddr: __u64, @@ -14209,7 +14152,7 @@ fn bindgen_test_layout_kvm_sev_send_start() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_sev_send_update_data { pub hdr_uaddr: __u64, pub hdr_len: __u32, @@ -14295,7 +14238,7 @@ fn bindgen_test_layout_kvm_sev_send_update_data() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_sev_receive_start { pub handle: __u32, pub policy: __u32, @@ -14381,7 +14324,7 @@ fn bindgen_test_layout_kvm_sev_receive_start() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_sev_receive_update_data { pub hdr_uaddr: __u64, pub hdr_len: __u32, @@ -14727,7 +14670,7 @@ impl ::std::fmt::Debug for kvm_assigned_irq { } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_assigned_msix_nr { pub assigned_dev_id: __u32, pub entry_nr: __u16, @@ -14779,7 +14722,7 @@ fn bindgen_test_layout_kvm_assigned_msix_nr() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_assigned_msix_entry { pub assigned_dev_id: __u32, pub gsi: __u32, @@ -14843,7 +14786,7 @@ fn bindgen_test_layout_kvm_assigned_msix_entry() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_hyperv_eventfd { pub conn_id: __u32, pub fd: __s32, @@ -14906,7 +14849,7 @@ fn bindgen_test_layout_kvm_hyperv_eventfd() { ); } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_dirty_gfn { pub flags: __u32, pub slot: __u32, @@ -14959,7 +14902,7 @@ fn bindgen_test_layout_kvm_dirty_gfn() { } #[doc = " struct kvm_stats_header - Header of per vm/vcpu binary statistics data.\n @flags: Some extra information for header, always 0 for now.\n @name_size: The size in bytes of the memory which contains statistics\n name string including trailing '\\0'. The memory is allocated\n at the send of statistics descriptor.\n @num_desc: The number of statistics the vm or vcpu has.\n @id_offset: The offset of the vm/vcpu stats' id string in the file pointed\n by vm/vcpu stats fd.\n @desc_offset: The offset of the vm/vcpu stats' descriptor block in the file\n pointd by vm/vcpu stats fd.\n @data_offset: The offset of the vm/vcpu stats' data block in the file\n pointed by vm/vcpu stats fd.\n\n This is the header userspace needs to read from stats fd before any other\n readings. It is used by userspace to discover all the information about the\n vm/vcpu's binary statistics.\n Userspace reads this header from the start of the vm/vcpu's stats fd."] #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_stats_header { pub flags: __u32, pub name_size: __u32, @@ -15045,7 +14988,7 @@ fn bindgen_test_layout_kvm_stats_header() { } #[doc = " struct kvm_stats_desc - Descriptor of a KVM statistics.\n @flags: Annotations of the stats, like type, unit, etc.\n @exponent: Used together with @flags to determine the unit.\n @size: The number of data items for this stats.\n Every data item is of type __u64.\n @offset: The offset of the stats to the start of stat structure in\n structure kvm or kvm_vcpu.\n @bucket_size: A parameter value used for histogram stats. It is only used\n\t\tfor linear histogram stats, specifying the size of the bucket;\n @name: The name string for the stats. Its size is indicated by the\n &kvm_stats_header->name_size."] #[repr(C)] -#[derive(Debug, Default, Versionize)] +#[derive(Debug, Default, Serialize, Deserialize)] pub struct kvm_stats_desc { pub flags: __u32, pub exponent: __s16, @@ -15144,7 +15087,7 @@ pub union kvm_s390_zpci_op__bindgen_ty_1 { pub reserved: [__u64; 8usize], } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq, Versionize)] +#[derive(Debug, Default, Copy, Clone, PartialEq, Serialize, Deserialize)] pub struct kvm_s390_zpci_op__bindgen_ty_1__bindgen_ty_1 { pub ibv: __u64, pub sb: __u64, diff --git a/src/x86_64/fam_wrappers.rs b/src/x86_64/fam_wrappers.rs index 032879d..ab94433 100644 --- a/src/x86_64/fam_wrappers.rs +++ b/src/x86_64/fam_wrappers.rs @@ -3,7 +3,7 @@ use vmm_sys_util::fam::{FamStruct, FamStructWrapper}; -use x86_64::bindings::*; +use crate::x86_64::bindings::*; /// Maximum number of CPUID entries that can be returned by a call to KVM ioctls. /// @@ -97,7 +97,7 @@ pub type MsrList = FamStructWrapper; #[cfg(test)] mod tests { use super::{CpuId, MsrList, Msrs}; - use x86_64::bindings::kvm_cpuid_entry2; + use crate::x86_64::bindings::kvm_cpuid_entry2; #[test] fn test_cpuid_eq() {