kvm_bindings/x86_64/
bindings.rs

1/* automatically generated by rust-bindgen 0.70.1 */
2
3#[repr(transparent)]
4#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
5#[cfg_attr(
6    feature = "serde",
7    derive(zerocopy::AsBytes, zerocopy::FromBytes, zerocopy::FromZeroes)
8)]
9pub struct __BindgenBitfieldUnit<Storage> {
10    storage: Storage,
11}
12impl<Storage> __BindgenBitfieldUnit<Storage> {
13    #[inline]
14    pub const fn new(storage: Storage) -> Self {
15        Self { storage }
16    }
17}
18impl<Storage> __BindgenBitfieldUnit<Storage>
19where
20    Storage: AsRef<[u8]> + AsMut<[u8]>,
21{
22    #[inline]
23    pub fn get_bit(&self, index: usize) -> bool {
24        debug_assert!(index / 8 < self.storage.as_ref().len());
25        let byte_index = index / 8;
26        let byte = self.storage.as_ref()[byte_index];
27        let bit_index = if cfg!(target_endian = "big") {
28            7 - (index % 8)
29        } else {
30            index % 8
31        };
32        let mask = 1 << bit_index;
33        byte & mask == mask
34    }
35    #[inline]
36    pub fn set_bit(&mut self, index: usize, val: bool) {
37        debug_assert!(index / 8 < self.storage.as_ref().len());
38        let byte_index = index / 8;
39        let byte = &mut self.storage.as_mut()[byte_index];
40        let bit_index = if cfg!(target_endian = "big") {
41            7 - (index % 8)
42        } else {
43            index % 8
44        };
45        let mask = 1 << bit_index;
46        if val {
47            *byte |= mask;
48        } else {
49            *byte &= !mask;
50        }
51    }
52    #[inline]
53    pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
54        debug_assert!(bit_width <= 64);
55        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
56        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
57        let mut val = 0;
58        for i in 0..(bit_width as usize) {
59            if self.get_bit(i + bit_offset) {
60                let index = if cfg!(target_endian = "big") {
61                    bit_width as usize - 1 - i
62                } else {
63                    i
64                };
65                val |= 1 << index;
66            }
67        }
68        val
69    }
70    #[inline]
71    pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
72        debug_assert!(bit_width <= 64);
73        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
74        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
75        for i in 0..(bit_width as usize) {
76            let mask = 1 << i;
77            let val_bit_is_set = val & mask == mask;
78            let index = if cfg!(target_endian = "big") {
79                bit_width as usize - 1 - i
80            } else {
81                i
82            };
83            self.set_bit(index + bit_offset, val_bit_is_set);
84        }
85    }
86}
87#[repr(transparent)]
88#[derive(Default)]
89#[cfg_attr(
90    feature = "serde",
91    derive(zerocopy::AsBytes, zerocopy::FromBytes, zerocopy::FromZeroes)
92)]
93pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]);
94impl<T> __IncompleteArrayField<T> {
95    #[inline]
96    pub const fn new() -> Self {
97        __IncompleteArrayField(::std::marker::PhantomData, [])
98    }
99    #[inline]
100    pub fn as_ptr(&self) -> *const T {
101        self as *const _ as *const T
102    }
103    #[inline]
104    pub fn as_mut_ptr(&mut self) -> *mut T {
105        self as *mut _ as *mut T
106    }
107    #[inline]
108    pub unsafe fn as_slice(&self, len: usize) -> &[T] {
109        ::std::slice::from_raw_parts(self.as_ptr(), len)
110    }
111    #[inline]
112    pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
113        ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
114    }
115}
116impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> {
117    fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
118        fmt.write_str("__IncompleteArrayField")
119    }
120}
121#[repr(C)]
122pub struct __BindgenUnionField<T>(::std::marker::PhantomData<T>);
123impl<T> __BindgenUnionField<T> {
124    #[inline]
125    pub const fn new() -> Self {
126        __BindgenUnionField(::std::marker::PhantomData)
127    }
128    #[inline]
129    pub unsafe fn as_ref(&self) -> &T {
130        ::std::mem::transmute(self)
131    }
132    #[inline]
133    pub unsafe fn as_mut(&mut self) -> &mut T {
134        ::std::mem::transmute(self)
135    }
136}
137impl<T> ::std::default::Default for __BindgenUnionField<T> {
138    #[inline]
139    fn default() -> Self {
140        Self::new()
141    }
142}
143impl<T> ::std::clone::Clone for __BindgenUnionField<T> {
144    #[inline]
145    fn clone(&self) -> Self {
146        *self
147    }
148}
149impl<T> ::std::marker::Copy for __BindgenUnionField<T> {}
150impl<T> ::std::fmt::Debug for __BindgenUnionField<T> {
151    fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
152        fmt.write_str("__BindgenUnionField")
153    }
154}
155impl<T> ::std::hash::Hash for __BindgenUnionField<T> {
156    fn hash<H: ::std::hash::Hasher>(&self, _state: &mut H) {}
157}
158impl<T> ::std::cmp::PartialEq for __BindgenUnionField<T> {
159    fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
160        true
161    }
162}
163impl<T> ::std::cmp::Eq for __BindgenUnionField<T> {}
164pub const __BITS_PER_LONG: u32 = 64;
165pub const __BITS_PER_LONG_LONG: u32 = 64;
166pub const __FD_SETSIZE: u32 = 1024;
167pub const _IOC_NRBITS: u32 = 8;
168pub const _IOC_TYPEBITS: u32 = 8;
169pub const _IOC_SIZEBITS: u32 = 14;
170pub const _IOC_DIRBITS: u32 = 2;
171pub const _IOC_NRMASK: u32 = 255;
172pub const _IOC_TYPEMASK: u32 = 255;
173pub const _IOC_SIZEMASK: u32 = 16383;
174pub const _IOC_DIRMASK: u32 = 3;
175pub const _IOC_NRSHIFT: u32 = 0;
176pub const _IOC_TYPESHIFT: u32 = 8;
177pub const _IOC_SIZESHIFT: u32 = 16;
178pub const _IOC_DIRSHIFT: u32 = 30;
179pub const _IOC_NONE: u32 = 0;
180pub const _IOC_WRITE: u32 = 1;
181pub const _IOC_READ: u32 = 2;
182pub const IOC_IN: u32 = 1073741824;
183pub const IOC_OUT: u32 = 2147483648;
184pub const IOC_INOUT: u32 = 3221225472;
185pub const IOCSIZE_MASK: u32 = 1073676288;
186pub const IOCSIZE_SHIFT: u32 = 16;
187pub const KVM_PIO_PAGE_OFFSET: u32 = 1;
188pub const KVM_COALESCED_MMIO_PAGE_OFFSET: u32 = 2;
189pub const KVM_DIRTY_LOG_PAGE_OFFSET: u32 = 64;
190pub const DE_VECTOR: u32 = 0;
191pub const DB_VECTOR: u32 = 1;
192pub const BP_VECTOR: u32 = 3;
193pub const OF_VECTOR: u32 = 4;
194pub const BR_VECTOR: u32 = 5;
195pub const UD_VECTOR: u32 = 6;
196pub const NM_VECTOR: u32 = 7;
197pub const DF_VECTOR: u32 = 8;
198pub const TS_VECTOR: u32 = 10;
199pub const NP_VECTOR: u32 = 11;
200pub const SS_VECTOR: u32 = 12;
201pub const GP_VECTOR: u32 = 13;
202pub const PF_VECTOR: u32 = 14;
203pub const MF_VECTOR: u32 = 16;
204pub const AC_VECTOR: u32 = 17;
205pub const MC_VECTOR: u32 = 18;
206pub const XM_VECTOR: u32 = 19;
207pub const VE_VECTOR: u32 = 20;
208pub const KVM_NR_INTERRUPTS: u32 = 256;
209pub const KVM_IOAPIC_NUM_PINS: u32 = 24;
210pub const KVM_IRQCHIP_PIC_MASTER: u32 = 0;
211pub const KVM_IRQCHIP_PIC_SLAVE: u32 = 1;
212pub const KVM_IRQCHIP_IOAPIC: u32 = 2;
213pub const KVM_NR_IRQCHIPS: u32 = 3;
214pub const KVM_RUN_X86_SMM: u32 = 1;
215pub const KVM_RUN_X86_BUS_LOCK: u32 = 2;
216pub const KVM_APIC_REG_SIZE: u32 = 1024;
217pub const KVM_SREGS2_FLAGS_PDPTRS_VALID: u32 = 1;
218pub const KVM_MSR_FILTER_MAX_BITMAP_SIZE: u32 = 1536;
219pub const KVM_MSR_FILTER_READ: u32 = 1;
220pub const KVM_MSR_FILTER_WRITE: u32 = 2;
221pub const KVM_MSR_FILTER_RANGE_VALID_MASK: u32 = 3;
222pub const KVM_MSR_FILTER_MAX_RANGES: u32 = 16;
223pub const KVM_MSR_FILTER_DEFAULT_ALLOW: u32 = 0;
224pub const KVM_MSR_FILTER_DEFAULT_DENY: u32 = 1;
225pub const KVM_MSR_FILTER_VALID_MASK: u32 = 1;
226pub const KVM_CPUID_FLAG_SIGNIFCANT_INDEX: u32 = 1;
227pub const KVM_CPUID_FLAG_STATEFUL_FUNC: u32 = 2;
228pub const KVM_CPUID_FLAG_STATE_READ_NEXT: u32 = 4;
229pub const KVM_GUESTDBG_USE_SW_BP: u32 = 65536;
230pub const KVM_GUESTDBG_USE_HW_BP: u32 = 131072;
231pub const KVM_GUESTDBG_INJECT_DB: u32 = 262144;
232pub const KVM_GUESTDBG_INJECT_BP: u32 = 524288;
233pub const KVM_GUESTDBG_BLOCKIRQ: u32 = 1048576;
234pub const KVM_PIT_FLAGS_HPET_LEGACY: u32 = 1;
235pub const KVM_PIT_FLAGS_SPEAKER_DATA_ON: u32 = 2;
236pub const KVM_VCPUEVENT_VALID_NMI_PENDING: u32 = 1;
237pub const KVM_VCPUEVENT_VALID_SIPI_VECTOR: u32 = 2;
238pub const KVM_VCPUEVENT_VALID_SHADOW: u32 = 4;
239pub const KVM_VCPUEVENT_VALID_SMM: u32 = 8;
240pub const KVM_VCPUEVENT_VALID_PAYLOAD: u32 = 16;
241pub const KVM_VCPUEVENT_VALID_TRIPLE_FAULT: u32 = 32;
242pub const KVM_X86_SHADOW_INT_MOV_SS: u32 = 1;
243pub const KVM_X86_SHADOW_INT_STI: u32 = 2;
244pub const KVM_MAX_XCRS: u32 = 16;
245pub const KVM_SYNC_X86_REGS: u32 = 1;
246pub const KVM_SYNC_X86_SREGS: u32 = 2;
247pub const KVM_SYNC_X86_EVENTS: u32 = 4;
248pub const KVM_SYNC_X86_VALID_FIELDS: u32 = 7;
249pub const KVM_X86_QUIRK_LINT0_REENABLED: u32 = 1;
250pub const KVM_X86_QUIRK_CD_NW_CLEARED: u32 = 2;
251pub const KVM_X86_QUIRK_LAPIC_MMIO_HOLE: u32 = 4;
252pub const KVM_X86_QUIRK_OUT_7E_INC_RIP: u32 = 8;
253pub const KVM_X86_QUIRK_MISC_ENABLE_NO_MWAIT: u32 = 16;
254pub const KVM_X86_QUIRK_FIX_HYPERCALL_INSN: u32 = 32;
255pub const KVM_X86_QUIRK_MWAIT_NEVER_UD_FAULTS: u32 = 64;
256pub const KVM_STATE_NESTED_FORMAT_VMX: u32 = 0;
257pub const KVM_STATE_NESTED_FORMAT_SVM: u32 = 1;
258pub const KVM_STATE_NESTED_GUEST_MODE: u32 = 1;
259pub const KVM_STATE_NESTED_RUN_PENDING: u32 = 2;
260pub const KVM_STATE_NESTED_EVMCS: u32 = 4;
261pub const KVM_STATE_NESTED_MTF_PENDING: u32 = 8;
262pub const KVM_STATE_NESTED_GIF_SET: u32 = 256;
263pub const KVM_STATE_NESTED_SMM_GUEST_MODE: u32 = 1;
264pub const KVM_STATE_NESTED_SMM_VMXON: u32 = 2;
265pub const KVM_STATE_NESTED_VMX_VMCS_SIZE: u32 = 4096;
266pub const KVM_STATE_NESTED_SVM_VMCB_SIZE: u32 = 4096;
267pub const KVM_STATE_VMX_PREEMPTION_TIMER_DEADLINE: u32 = 1;
268pub const KVM_X86_XCOMP_GUEST_SUPP: u32 = 0;
269pub const KVM_PMU_EVENT_ALLOW: u32 = 0;
270pub const KVM_PMU_EVENT_DENY: u32 = 1;
271pub const KVM_XEN_HVM_CONFIG_HYPERCALL_MSR: u32 = 1;
272pub const KVM_XEN_HVM_CONFIG_INTERCEPT_HCALL: u32 = 2;
273pub const KVM_XEN_HVM_CONFIG_SHARED_INFO: u32 = 4;
274pub const KVM_XEN_HVM_CONFIG_RUNSTATE: u32 = 8;
275pub const KVM_XEN_HVM_CONFIG_EVTCHN_2LEVEL: u32 = 16;
276pub const KVM_XEN_HVM_CONFIG_EVTCHN_SEND: u32 = 32;
277pub const KVM_XEN_HVM_CONFIG_RUNSTATE_UPDATE_FLAG: u32 = 64;
278pub const KVM_XEN_HVM_CONFIG_PVCLOCK_TSC_UNSTABLE: u32 = 128;
279pub const KVM_XEN_HVM_CONFIG_SHARED_INFO_HVA: u32 = 256;
280pub const KVM_XEN_EVTCHN_DEASSIGN: u32 = 1;
281pub const KVM_XEN_EVTCHN_UPDATE: u32 = 2;
282pub const KVM_XEN_EVTCHN_RESET: u32 = 4;
283pub const KVM_XEN_ATTR_TYPE_LONG_MODE: u32 = 0;
284pub const KVM_XEN_ATTR_TYPE_SHARED_INFO: u32 = 1;
285pub const KVM_XEN_ATTR_TYPE_UPCALL_VECTOR: u32 = 2;
286pub const KVM_XEN_ATTR_TYPE_EVTCHN: u32 = 3;
287pub const KVM_XEN_ATTR_TYPE_XEN_VERSION: u32 = 4;
288pub const KVM_XEN_ATTR_TYPE_RUNSTATE_UPDATE_FLAG: u32 = 5;
289pub const KVM_XEN_ATTR_TYPE_SHARED_INFO_HVA: u32 = 6;
290pub const KVM_XEN_VCPU_ATTR_TYPE_VCPU_INFO: u32 = 0;
291pub const KVM_XEN_VCPU_ATTR_TYPE_VCPU_TIME_INFO: u32 = 1;
292pub const KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_ADDR: u32 = 2;
293pub const KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_CURRENT: u32 = 3;
294pub const KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_DATA: u32 = 4;
295pub const KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_ADJUST: u32 = 5;
296pub const KVM_XEN_VCPU_ATTR_TYPE_VCPU_ID: u32 = 6;
297pub const KVM_XEN_VCPU_ATTR_TYPE_TIMER: u32 = 7;
298pub const KVM_XEN_VCPU_ATTR_TYPE_UPCALL_VECTOR: u32 = 8;
299pub const KVM_XEN_VCPU_ATTR_TYPE_VCPU_INFO_HVA: u32 = 9;
300pub const KVM_X2APIC_API_USE_32BIT_IDS: u32 = 1;
301pub const KVM_X2APIC_API_DISABLE_BROADCAST_QUIRK: u32 = 2;
302pub const KVM_HYPERV_CONN_ID_MASK: u32 = 16777215;
303pub const KVM_HYPERV_EVENTFD_DEASSIGN: u32 = 1;
304pub const KVM_PMU_MASKED_ENTRY_UMASK_MASK_SHIFT: u32 = 56;
305pub const KVM_VCPU_TSC_CTRL: u32 = 0;
306pub const KVM_VCPU_TSC_OFFSET: u32 = 0;
307pub const KVM_X86_DEFAULT_VM: u32 = 0;
308pub const KVM_X86_SW_PROTECTED_VM: u32 = 1;
309pub const KVM_API_VERSION: u32 = 12;
310pub const KVM_MEM_LOG_DIRTY_PAGES: u32 = 1;
311pub const KVM_MEM_READONLY: u32 = 2;
312pub const KVM_MEM_GUEST_MEMFD: u32 = 4;
313pub const KVM_PIT_SPEAKER_DUMMY: u32 = 1;
314pub const KVM_EXIT_HYPERV_SYNIC: u32 = 1;
315pub const KVM_EXIT_HYPERV_HCALL: u32 = 2;
316pub const KVM_EXIT_HYPERV_SYNDBG: u32 = 3;
317pub const KVM_EXIT_XEN_HCALL: u32 = 1;
318pub const KVM_S390_GET_SKEYS_NONE: u32 = 1;
319pub const KVM_S390_SKEYS_MAX: u32 = 1048576;
320pub const KVM_EXIT_UNKNOWN: u32 = 0;
321pub const KVM_EXIT_EXCEPTION: u32 = 1;
322pub const KVM_EXIT_IO: u32 = 2;
323pub const KVM_EXIT_HYPERCALL: u32 = 3;
324pub const KVM_EXIT_DEBUG: u32 = 4;
325pub const KVM_EXIT_HLT: u32 = 5;
326pub const KVM_EXIT_MMIO: u32 = 6;
327pub const KVM_EXIT_IRQ_WINDOW_OPEN: u32 = 7;
328pub const KVM_EXIT_SHUTDOWN: u32 = 8;
329pub const KVM_EXIT_FAIL_ENTRY: u32 = 9;
330pub const KVM_EXIT_INTR: u32 = 10;
331pub const KVM_EXIT_SET_TPR: u32 = 11;
332pub const KVM_EXIT_TPR_ACCESS: u32 = 12;
333pub const KVM_EXIT_S390_SIEIC: u32 = 13;
334pub const KVM_EXIT_S390_RESET: u32 = 14;
335pub const KVM_EXIT_DCR: u32 = 15;
336pub const KVM_EXIT_NMI: u32 = 16;
337pub const KVM_EXIT_INTERNAL_ERROR: u32 = 17;
338pub const KVM_EXIT_OSI: u32 = 18;
339pub const KVM_EXIT_PAPR_HCALL: u32 = 19;
340pub const KVM_EXIT_S390_UCONTROL: u32 = 20;
341pub const KVM_EXIT_WATCHDOG: u32 = 21;
342pub const KVM_EXIT_S390_TSCH: u32 = 22;
343pub const KVM_EXIT_EPR: u32 = 23;
344pub const KVM_EXIT_SYSTEM_EVENT: u32 = 24;
345pub const KVM_EXIT_S390_STSI: u32 = 25;
346pub const KVM_EXIT_IOAPIC_EOI: u32 = 26;
347pub const KVM_EXIT_HYPERV: u32 = 27;
348pub const KVM_EXIT_ARM_NISV: u32 = 28;
349pub const KVM_EXIT_X86_RDMSR: u32 = 29;
350pub const KVM_EXIT_X86_WRMSR: u32 = 30;
351pub const KVM_EXIT_DIRTY_RING_FULL: u32 = 31;
352pub const KVM_EXIT_AP_RESET_HOLD: u32 = 32;
353pub const KVM_EXIT_X86_BUS_LOCK: u32 = 33;
354pub const KVM_EXIT_XEN: u32 = 34;
355pub const KVM_EXIT_RISCV_SBI: u32 = 35;
356pub const KVM_EXIT_RISCV_CSR: u32 = 36;
357pub const KVM_EXIT_NOTIFY: u32 = 37;
358pub const KVM_EXIT_LOONGARCH_IOCSR: u32 = 38;
359pub const KVM_EXIT_MEMORY_FAULT: u32 = 39;
360pub const KVM_INTERNAL_ERROR_EMULATION: u32 = 1;
361pub const KVM_INTERNAL_ERROR_SIMUL_EX: u32 = 2;
362pub const KVM_INTERNAL_ERROR_DELIVERY_EV: u32 = 3;
363pub const KVM_INTERNAL_ERROR_UNEXPECTED_EXIT_REASON: u32 = 4;
364pub const KVM_INTERNAL_ERROR_EMULATION_FLAG_INSTRUCTION_BYTES: u32 = 1;
365pub const KVM_EXIT_IO_IN: u32 = 0;
366pub const KVM_EXIT_IO_OUT: u32 = 1;
367pub const KVM_SYSTEM_EVENT_SHUTDOWN: u32 = 1;
368pub const KVM_SYSTEM_EVENT_RESET: u32 = 2;
369pub const KVM_SYSTEM_EVENT_CRASH: u32 = 3;
370pub const KVM_SYSTEM_EVENT_WAKEUP: u32 = 4;
371pub const KVM_SYSTEM_EVENT_SUSPEND: u32 = 5;
372pub const KVM_SYSTEM_EVENT_SEV_TERM: u32 = 6;
373pub const KVM_MSR_EXIT_REASON_INVAL: u32 = 1;
374pub const KVM_MSR_EXIT_REASON_UNKNOWN: u32 = 2;
375pub const KVM_MSR_EXIT_REASON_FILTER: u32 = 4;
376pub const KVM_MSR_EXIT_REASON_VALID_MASK: u32 = 7;
377pub const KVM_NOTIFY_CONTEXT_INVALID: u32 = 1;
378pub const KVM_MEMORY_EXIT_FLAG_PRIVATE: u32 = 8;
379pub const SYNC_REGS_SIZE_BYTES: u32 = 2048;
380pub const KVM_MP_STATE_RUNNABLE: u32 = 0;
381pub const KVM_MP_STATE_UNINITIALIZED: u32 = 1;
382pub const KVM_MP_STATE_INIT_RECEIVED: u32 = 2;
383pub const KVM_MP_STATE_HALTED: u32 = 3;
384pub const KVM_MP_STATE_SIPI_RECEIVED: u32 = 4;
385pub const KVM_MP_STATE_STOPPED: u32 = 5;
386pub const KVM_MP_STATE_CHECK_STOP: u32 = 6;
387pub const KVM_MP_STATE_OPERATING: u32 = 7;
388pub const KVM_MP_STATE_LOAD: u32 = 8;
389pub const KVM_MP_STATE_AP_RESET_HOLD: u32 = 9;
390pub const KVM_MP_STATE_SUSPENDED: u32 = 10;
391pub const KVM_GUESTDBG_ENABLE: u32 = 1;
392pub const KVM_GUESTDBG_SINGLESTEP: u32 = 2;
393pub const KVM_X86_DISABLE_EXITS_MWAIT: u32 = 1;
394pub const KVM_X86_DISABLE_EXITS_HLT: u32 = 2;
395pub const KVM_X86_DISABLE_EXITS_PAUSE: u32 = 4;
396pub const KVM_X86_DISABLE_EXITS_CSTATE: u32 = 8;
397pub const KVM_X86_DISABLE_VALID_EXITS: u32 = 15;
398pub const KVMIO: u32 = 174;
399pub const KVM_VM_S390_UCONTROL: u32 = 1;
400pub const KVM_VM_PPC_HV: u32 = 1;
401pub const KVM_VM_PPC_PR: u32 = 2;
402pub const KVM_VM_MIPS_AUTO: u32 = 0;
403pub const KVM_VM_MIPS_VZ: u32 = 1;
404pub const KVM_VM_MIPS_TE: u32 = 2;
405pub const KVM_S390_SIE_PAGE_OFFSET: u32 = 1;
406pub const KVM_VM_TYPE_ARM_IPA_SIZE_MASK: u32 = 255;
407pub const KVM_CAP_IRQCHIP: u32 = 0;
408pub const KVM_CAP_HLT: u32 = 1;
409pub const KVM_CAP_MMU_SHADOW_CACHE_CONTROL: u32 = 2;
410pub const KVM_CAP_USER_MEMORY: u32 = 3;
411pub const KVM_CAP_SET_TSS_ADDR: u32 = 4;
412pub const KVM_CAP_VAPIC: u32 = 6;
413pub const KVM_CAP_EXT_CPUID: u32 = 7;
414pub const KVM_CAP_CLOCKSOURCE: u32 = 8;
415pub const KVM_CAP_NR_VCPUS: u32 = 9;
416pub const KVM_CAP_NR_MEMSLOTS: u32 = 10;
417pub const KVM_CAP_PIT: u32 = 11;
418pub const KVM_CAP_NOP_IO_DELAY: u32 = 12;
419pub const KVM_CAP_PV_MMU: u32 = 13;
420pub const KVM_CAP_MP_STATE: u32 = 14;
421pub const KVM_CAP_COALESCED_MMIO: u32 = 15;
422pub const KVM_CAP_SYNC_MMU: u32 = 16;
423pub const KVM_CAP_IOMMU: u32 = 18;
424pub const KVM_CAP_DESTROY_MEMORY_REGION_WORKS: u32 = 21;
425pub const KVM_CAP_USER_NMI: u32 = 22;
426pub const KVM_CAP_SET_GUEST_DEBUG: u32 = 23;
427pub const KVM_CAP_REINJECT_CONTROL: u32 = 24;
428pub const KVM_CAP_IRQ_ROUTING: u32 = 25;
429pub const KVM_CAP_IRQ_INJECT_STATUS: u32 = 26;
430pub const KVM_CAP_ASSIGN_DEV_IRQ: u32 = 29;
431pub const KVM_CAP_JOIN_MEMORY_REGIONS_WORKS: u32 = 30;
432pub const KVM_CAP_MCE: u32 = 31;
433pub const KVM_CAP_IRQFD: u32 = 32;
434pub const KVM_CAP_PIT2: u32 = 33;
435pub const KVM_CAP_SET_BOOT_CPU_ID: u32 = 34;
436pub const KVM_CAP_PIT_STATE2: u32 = 35;
437pub const KVM_CAP_IOEVENTFD: u32 = 36;
438pub const KVM_CAP_SET_IDENTITY_MAP_ADDR: u32 = 37;
439pub const KVM_CAP_XEN_HVM: u32 = 38;
440pub const KVM_CAP_ADJUST_CLOCK: u32 = 39;
441pub const KVM_CAP_INTERNAL_ERROR_DATA: u32 = 40;
442pub const KVM_CAP_VCPU_EVENTS: u32 = 41;
443pub const KVM_CAP_S390_PSW: u32 = 42;
444pub const KVM_CAP_PPC_SEGSTATE: u32 = 43;
445pub const KVM_CAP_HYPERV: u32 = 44;
446pub const KVM_CAP_HYPERV_VAPIC: u32 = 45;
447pub const KVM_CAP_HYPERV_SPIN: u32 = 46;
448pub const KVM_CAP_PCI_SEGMENT: u32 = 47;
449pub const KVM_CAP_PPC_PAIRED_SINGLES: u32 = 48;
450pub const KVM_CAP_INTR_SHADOW: u32 = 49;
451pub const KVM_CAP_DEBUGREGS: u32 = 50;
452pub const KVM_CAP_X86_ROBUST_SINGLESTEP: u32 = 51;
453pub const KVM_CAP_PPC_OSI: u32 = 52;
454pub const KVM_CAP_PPC_UNSET_IRQ: u32 = 53;
455pub const KVM_CAP_ENABLE_CAP: u32 = 54;
456pub const KVM_CAP_XSAVE: u32 = 55;
457pub const KVM_CAP_XCRS: u32 = 56;
458pub const KVM_CAP_PPC_GET_PVINFO: u32 = 57;
459pub const KVM_CAP_PPC_IRQ_LEVEL: u32 = 58;
460pub const KVM_CAP_ASYNC_PF: u32 = 59;
461pub const KVM_CAP_TSC_CONTROL: u32 = 60;
462pub const KVM_CAP_GET_TSC_KHZ: u32 = 61;
463pub const KVM_CAP_PPC_BOOKE_SREGS: u32 = 62;
464pub const KVM_CAP_SPAPR_TCE: u32 = 63;
465pub const KVM_CAP_PPC_SMT: u32 = 64;
466pub const KVM_CAP_PPC_RMA: u32 = 65;
467pub const KVM_CAP_MAX_VCPUS: u32 = 66;
468pub const KVM_CAP_PPC_HIOR: u32 = 67;
469pub const KVM_CAP_PPC_PAPR: u32 = 68;
470pub const KVM_CAP_SW_TLB: u32 = 69;
471pub const KVM_CAP_ONE_REG: u32 = 70;
472pub const KVM_CAP_S390_GMAP: u32 = 71;
473pub const KVM_CAP_TSC_DEADLINE_TIMER: u32 = 72;
474pub const KVM_CAP_S390_UCONTROL: u32 = 73;
475pub const KVM_CAP_SYNC_REGS: u32 = 74;
476pub const KVM_CAP_PCI_2_3: u32 = 75;
477pub const KVM_CAP_KVMCLOCK_CTRL: u32 = 76;
478pub const KVM_CAP_SIGNAL_MSI: u32 = 77;
479pub const KVM_CAP_PPC_GET_SMMU_INFO: u32 = 78;
480pub const KVM_CAP_S390_COW: u32 = 79;
481pub const KVM_CAP_PPC_ALLOC_HTAB: u32 = 80;
482pub const KVM_CAP_READONLY_MEM: u32 = 81;
483pub const KVM_CAP_IRQFD_RESAMPLE: u32 = 82;
484pub const KVM_CAP_PPC_BOOKE_WATCHDOG: u32 = 83;
485pub const KVM_CAP_PPC_HTAB_FD: u32 = 84;
486pub const KVM_CAP_S390_CSS_SUPPORT: u32 = 85;
487pub const KVM_CAP_PPC_EPR: u32 = 86;
488pub const KVM_CAP_ARM_PSCI: u32 = 87;
489pub const KVM_CAP_ARM_SET_DEVICE_ADDR: u32 = 88;
490pub const KVM_CAP_DEVICE_CTRL: u32 = 89;
491pub const KVM_CAP_IRQ_MPIC: u32 = 90;
492pub const KVM_CAP_PPC_RTAS: u32 = 91;
493pub const KVM_CAP_IRQ_XICS: u32 = 92;
494pub const KVM_CAP_ARM_EL1_32BIT: u32 = 93;
495pub const KVM_CAP_SPAPR_MULTITCE: u32 = 94;
496pub const KVM_CAP_EXT_EMUL_CPUID: u32 = 95;
497pub const KVM_CAP_HYPERV_TIME: u32 = 96;
498pub const KVM_CAP_IOAPIC_POLARITY_IGNORED: u32 = 97;
499pub const KVM_CAP_ENABLE_CAP_VM: u32 = 98;
500pub const KVM_CAP_S390_IRQCHIP: u32 = 99;
501pub const KVM_CAP_IOEVENTFD_NO_LENGTH: u32 = 100;
502pub const KVM_CAP_VM_ATTRIBUTES: u32 = 101;
503pub const KVM_CAP_ARM_PSCI_0_2: u32 = 102;
504pub const KVM_CAP_PPC_FIXUP_HCALL: u32 = 103;
505pub const KVM_CAP_PPC_ENABLE_HCALL: u32 = 104;
506pub const KVM_CAP_CHECK_EXTENSION_VM: u32 = 105;
507pub const KVM_CAP_S390_USER_SIGP: u32 = 106;
508pub const KVM_CAP_S390_VECTOR_REGISTERS: u32 = 107;
509pub const KVM_CAP_S390_MEM_OP: u32 = 108;
510pub const KVM_CAP_S390_USER_STSI: u32 = 109;
511pub const KVM_CAP_S390_SKEYS: u32 = 110;
512pub const KVM_CAP_MIPS_FPU: u32 = 111;
513pub const KVM_CAP_MIPS_MSA: u32 = 112;
514pub const KVM_CAP_S390_INJECT_IRQ: u32 = 113;
515pub const KVM_CAP_S390_IRQ_STATE: u32 = 114;
516pub const KVM_CAP_PPC_HWRNG: u32 = 115;
517pub const KVM_CAP_DISABLE_QUIRKS: u32 = 116;
518pub const KVM_CAP_X86_SMM: u32 = 117;
519pub const KVM_CAP_MULTI_ADDRESS_SPACE: u32 = 118;
520pub const KVM_CAP_GUEST_DEBUG_HW_BPS: u32 = 119;
521pub const KVM_CAP_GUEST_DEBUG_HW_WPS: u32 = 120;
522pub const KVM_CAP_SPLIT_IRQCHIP: u32 = 121;
523pub const KVM_CAP_IOEVENTFD_ANY_LENGTH: u32 = 122;
524pub const KVM_CAP_HYPERV_SYNIC: u32 = 123;
525pub const KVM_CAP_S390_RI: u32 = 124;
526pub const KVM_CAP_SPAPR_TCE_64: u32 = 125;
527pub const KVM_CAP_ARM_PMU_V3: u32 = 126;
528pub const KVM_CAP_VCPU_ATTRIBUTES: u32 = 127;
529pub const KVM_CAP_MAX_VCPU_ID: u32 = 128;
530pub const KVM_CAP_X2APIC_API: u32 = 129;
531pub const KVM_CAP_S390_USER_INSTR0: u32 = 130;
532pub const KVM_CAP_MSI_DEVID: u32 = 131;
533pub const KVM_CAP_PPC_HTM: u32 = 132;
534pub const KVM_CAP_SPAPR_RESIZE_HPT: u32 = 133;
535pub const KVM_CAP_PPC_MMU_RADIX: u32 = 134;
536pub const KVM_CAP_PPC_MMU_HASH_V3: u32 = 135;
537pub const KVM_CAP_IMMEDIATE_EXIT: u32 = 136;
538pub const KVM_CAP_MIPS_VZ: u32 = 137;
539pub const KVM_CAP_MIPS_TE: u32 = 138;
540pub const KVM_CAP_MIPS_64BIT: u32 = 139;
541pub const KVM_CAP_S390_GS: u32 = 140;
542pub const KVM_CAP_S390_AIS: u32 = 141;
543pub const KVM_CAP_SPAPR_TCE_VFIO: u32 = 142;
544pub const KVM_CAP_X86_DISABLE_EXITS: u32 = 143;
545pub const KVM_CAP_ARM_USER_IRQ: u32 = 144;
546pub const KVM_CAP_S390_CMMA_MIGRATION: u32 = 145;
547pub const KVM_CAP_PPC_FWNMI: u32 = 146;
548pub const KVM_CAP_PPC_SMT_POSSIBLE: u32 = 147;
549pub const KVM_CAP_HYPERV_SYNIC2: u32 = 148;
550pub const KVM_CAP_HYPERV_VP_INDEX: u32 = 149;
551pub const KVM_CAP_S390_AIS_MIGRATION: u32 = 150;
552pub const KVM_CAP_PPC_GET_CPU_CHAR: u32 = 151;
553pub const KVM_CAP_S390_BPB: u32 = 152;
554pub const KVM_CAP_GET_MSR_FEATURES: u32 = 153;
555pub const KVM_CAP_HYPERV_EVENTFD: u32 = 154;
556pub const KVM_CAP_HYPERV_TLBFLUSH: u32 = 155;
557pub const KVM_CAP_S390_HPAGE_1M: u32 = 156;
558pub const KVM_CAP_NESTED_STATE: u32 = 157;
559pub const KVM_CAP_ARM_INJECT_SERROR_ESR: u32 = 158;
560pub const KVM_CAP_MSR_PLATFORM_INFO: u32 = 159;
561pub const KVM_CAP_PPC_NESTED_HV: u32 = 160;
562pub const KVM_CAP_HYPERV_SEND_IPI: u32 = 161;
563pub const KVM_CAP_COALESCED_PIO: u32 = 162;
564pub const KVM_CAP_HYPERV_ENLIGHTENED_VMCS: u32 = 163;
565pub const KVM_CAP_EXCEPTION_PAYLOAD: u32 = 164;
566pub const KVM_CAP_ARM_VM_IPA_SIZE: u32 = 165;
567pub const KVM_CAP_MANUAL_DIRTY_LOG_PROTECT: u32 = 166;
568pub const KVM_CAP_HYPERV_CPUID: u32 = 167;
569pub const KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2: u32 = 168;
570pub const KVM_CAP_PPC_IRQ_XIVE: u32 = 169;
571pub const KVM_CAP_ARM_SVE: u32 = 170;
572pub const KVM_CAP_ARM_PTRAUTH_ADDRESS: u32 = 171;
573pub const KVM_CAP_ARM_PTRAUTH_GENERIC: u32 = 172;
574pub const KVM_CAP_PMU_EVENT_FILTER: u32 = 173;
575pub const KVM_CAP_ARM_IRQ_LINE_LAYOUT_2: u32 = 174;
576pub const KVM_CAP_HYPERV_DIRECT_TLBFLUSH: u32 = 175;
577pub const KVM_CAP_PPC_GUEST_DEBUG_SSTEP: u32 = 176;
578pub const KVM_CAP_ARM_NISV_TO_USER: u32 = 177;
579pub const KVM_CAP_ARM_INJECT_EXT_DABT: u32 = 178;
580pub const KVM_CAP_S390_VCPU_RESETS: u32 = 179;
581pub const KVM_CAP_S390_PROTECTED: u32 = 180;
582pub const KVM_CAP_PPC_SECURE_GUEST: u32 = 181;
583pub const KVM_CAP_HALT_POLL: u32 = 182;
584pub const KVM_CAP_ASYNC_PF_INT: u32 = 183;
585pub const KVM_CAP_LAST_CPU: u32 = 184;
586pub const KVM_CAP_SMALLER_MAXPHYADDR: u32 = 185;
587pub const KVM_CAP_S390_DIAG318: u32 = 186;
588pub const KVM_CAP_STEAL_TIME: u32 = 187;
589pub const KVM_CAP_X86_USER_SPACE_MSR: u32 = 188;
590pub const KVM_CAP_X86_MSR_FILTER: u32 = 189;
591pub const KVM_CAP_ENFORCE_PV_FEATURE_CPUID: u32 = 190;
592pub const KVM_CAP_SYS_HYPERV_CPUID: u32 = 191;
593pub const KVM_CAP_DIRTY_LOG_RING: u32 = 192;
594pub const KVM_CAP_X86_BUS_LOCK_EXIT: u32 = 193;
595pub const KVM_CAP_PPC_DAWR1: u32 = 194;
596pub const KVM_CAP_SET_GUEST_DEBUG2: u32 = 195;
597pub const KVM_CAP_SGX_ATTRIBUTE: u32 = 196;
598pub const KVM_CAP_VM_COPY_ENC_CONTEXT_FROM: u32 = 197;
599pub const KVM_CAP_PTP_KVM: u32 = 198;
600pub const KVM_CAP_HYPERV_ENFORCE_CPUID: u32 = 199;
601pub const KVM_CAP_SREGS2: u32 = 200;
602pub const KVM_CAP_EXIT_HYPERCALL: u32 = 201;
603pub const KVM_CAP_PPC_RPT_INVALIDATE: u32 = 202;
604pub const KVM_CAP_BINARY_STATS_FD: u32 = 203;
605pub const KVM_CAP_EXIT_ON_EMULATION_FAILURE: u32 = 204;
606pub const KVM_CAP_ARM_MTE: u32 = 205;
607pub const KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM: u32 = 206;
608pub const KVM_CAP_VM_GPA_BITS: u32 = 207;
609pub const KVM_CAP_XSAVE2: u32 = 208;
610pub const KVM_CAP_SYS_ATTRIBUTES: u32 = 209;
611pub const KVM_CAP_PPC_AIL_MODE_3: u32 = 210;
612pub const KVM_CAP_S390_MEM_OP_EXTENSION: u32 = 211;
613pub const KVM_CAP_PMU_CAPABILITY: u32 = 212;
614pub const KVM_CAP_DISABLE_QUIRKS2: u32 = 213;
615pub const KVM_CAP_VM_TSC_CONTROL: u32 = 214;
616pub const KVM_CAP_SYSTEM_EVENT_DATA: u32 = 215;
617pub const KVM_CAP_ARM_SYSTEM_SUSPEND: u32 = 216;
618pub const KVM_CAP_S390_PROTECTED_DUMP: u32 = 217;
619pub const KVM_CAP_X86_TRIPLE_FAULT_EVENT: u32 = 218;
620pub const KVM_CAP_X86_NOTIFY_VMEXIT: u32 = 219;
621pub const KVM_CAP_VM_DISABLE_NX_HUGE_PAGES: u32 = 220;
622pub const KVM_CAP_S390_ZPCI_OP: u32 = 221;
623pub const KVM_CAP_S390_CPU_TOPOLOGY: u32 = 222;
624pub const KVM_CAP_DIRTY_LOG_RING_ACQ_REL: u32 = 223;
625pub const KVM_CAP_S390_PROTECTED_ASYNC_DISABLE: u32 = 224;
626pub const KVM_CAP_DIRTY_LOG_RING_WITH_BITMAP: u32 = 225;
627pub const KVM_CAP_PMU_EVENT_MASKED_EVENTS: u32 = 226;
628pub const KVM_CAP_COUNTER_OFFSET: u32 = 227;
629pub const KVM_CAP_ARM_EAGER_SPLIT_CHUNK_SIZE: u32 = 228;
630pub const KVM_CAP_ARM_SUPPORTED_BLOCK_SIZES: u32 = 229;
631pub const KVM_CAP_ARM_SUPPORTED_REG_MASK_RANGES: u32 = 230;
632pub const KVM_CAP_USER_MEMORY2: u32 = 231;
633pub const KVM_CAP_MEMORY_FAULT_INFO: u32 = 232;
634pub const KVM_CAP_MEMORY_ATTRIBUTES: u32 = 233;
635pub const KVM_CAP_GUEST_MEMFD: u32 = 234;
636pub const KVM_CAP_VM_TYPES: u32 = 235;
637pub const KVM_IRQ_ROUTING_IRQCHIP: u32 = 1;
638pub const KVM_IRQ_ROUTING_MSI: u32 = 2;
639pub const KVM_IRQ_ROUTING_S390_ADAPTER: u32 = 3;
640pub const KVM_IRQ_ROUTING_HV_SINT: u32 = 4;
641pub const KVM_IRQ_ROUTING_XEN_EVTCHN: u32 = 5;
642pub const KVM_IRQFD_FLAG_DEASSIGN: u32 = 1;
643pub const KVM_IRQFD_FLAG_RESAMPLE: u32 = 2;
644pub const KVM_CLOCK_TSC_STABLE: u32 = 2;
645pub const KVM_CLOCK_REALTIME: u32 = 4;
646pub const KVM_CLOCK_HOST_TSC: u32 = 8;
647pub const KVM_MMU_FSL_BOOKE_NOHV: u32 = 0;
648pub const KVM_MMU_FSL_BOOKE_HV: u32 = 1;
649pub const KVM_REG_ARCH_MASK: i64 = -72057594037927936;
650pub const KVM_REG_GENERIC: u32 = 0;
651pub const KVM_REG_PPC: u64 = 1152921504606846976;
652pub const KVM_REG_X86: u64 = 2305843009213693952;
653pub const KVM_REG_IA64: u64 = 3458764513820540928;
654pub const KVM_REG_ARM: u64 = 4611686018427387904;
655pub const KVM_REG_S390: u64 = 5764607523034234880;
656pub const KVM_REG_ARM64: u64 = 6917529027641081856;
657pub const KVM_REG_MIPS: u64 = 8070450532247928832;
658pub const KVM_REG_RISCV: i64 = -9223372036854775808;
659pub const KVM_REG_LOONGARCH: i64 = -8070450532247928832;
660pub const KVM_REG_SIZE_SHIFT: u32 = 52;
661pub const KVM_REG_SIZE_MASK: u64 = 67553994410557440;
662pub const KVM_REG_SIZE_U8: u32 = 0;
663pub const KVM_REG_SIZE_U16: u64 = 4503599627370496;
664pub const KVM_REG_SIZE_U32: u64 = 9007199254740992;
665pub const KVM_REG_SIZE_U64: u64 = 13510798882111488;
666pub const KVM_REG_SIZE_U128: u64 = 18014398509481984;
667pub const KVM_REG_SIZE_U256: u64 = 22517998136852480;
668pub const KVM_REG_SIZE_U512: u64 = 27021597764222976;
669pub const KVM_REG_SIZE_U1024: u64 = 31525197391593472;
670pub const KVM_REG_SIZE_U2048: u64 = 36028797018963968;
671pub const KVM_MSI_VALID_DEVID: u32 = 1;
672pub const KVM_CREATE_DEVICE_TEST: u32 = 1;
673pub const KVM_DEV_VFIO_FILE: u32 = 1;
674pub const KVM_DEV_VFIO_FILE_ADD: u32 = 1;
675pub const KVM_DEV_VFIO_FILE_DEL: u32 = 2;
676pub const KVM_DEV_VFIO_GROUP: u32 = 1;
677pub const KVM_DEV_VFIO_GROUP_ADD: u32 = 1;
678pub const KVM_DEV_VFIO_GROUP_DEL: u32 = 2;
679pub const KVM_DEV_VFIO_GROUP_SET_SPAPR_TCE: u32 = 3;
680pub const KVM_S390_STORE_STATUS_NOADDR: i32 = -1;
681pub const KVM_S390_STORE_STATUS_PREFIXED: i32 = -2;
682pub const KVM_DIRTY_LOG_MANUAL_PROTECT_ENABLE: u32 = 1;
683pub const KVM_DIRTY_LOG_INITIALLY_SET: u32 = 2;
684pub const KVM_DIRTY_GFN_F_MASK: u32 = 3;
685pub const KVM_BUS_LOCK_DETECTION_OFF: u32 = 1;
686pub const KVM_BUS_LOCK_DETECTION_EXIT: u32 = 2;
687pub const KVM_PMU_CAP_DISABLE: u32 = 1;
688pub const KVM_STATS_TYPE_SHIFT: u32 = 0;
689pub const KVM_STATS_TYPE_MASK: u32 = 15;
690pub const KVM_STATS_TYPE_CUMULATIVE: u32 = 0;
691pub const KVM_STATS_TYPE_INSTANT: u32 = 1;
692pub const KVM_STATS_TYPE_PEAK: u32 = 2;
693pub const KVM_STATS_TYPE_LINEAR_HIST: u32 = 3;
694pub const KVM_STATS_TYPE_LOG_HIST: u32 = 4;
695pub const KVM_STATS_TYPE_MAX: u32 = 4;
696pub const KVM_STATS_UNIT_SHIFT: u32 = 4;
697pub const KVM_STATS_UNIT_MASK: u32 = 240;
698pub const KVM_STATS_UNIT_NONE: u32 = 0;
699pub const KVM_STATS_UNIT_BYTES: u32 = 16;
700pub const KVM_STATS_UNIT_SECONDS: u32 = 32;
701pub const KVM_STATS_UNIT_CYCLES: u32 = 48;
702pub const KVM_STATS_UNIT_BOOLEAN: u32 = 64;
703pub const KVM_STATS_UNIT_MAX: u32 = 64;
704pub const KVM_STATS_BASE_SHIFT: u32 = 8;
705pub const KVM_STATS_BASE_MASK: u32 = 3840;
706pub const KVM_STATS_BASE_POW10: u32 = 0;
707pub const KVM_STATS_BASE_POW2: u32 = 256;
708pub const KVM_STATS_BASE_MAX: u32 = 256;
709pub const KVM_X86_NOTIFY_VMEXIT_ENABLED: u32 = 1;
710pub const KVM_X86_NOTIFY_VMEXIT_USER: u32 = 2;
711pub const KVM_MEMORY_ATTRIBUTE_PRIVATE: u32 = 8;
712pub type __s8 = ::std::os::raw::c_schar;
713pub type __u8 = ::std::os::raw::c_uchar;
714pub type __s16 = ::std::os::raw::c_short;
715pub type __u16 = ::std::os::raw::c_ushort;
716pub type __s32 = ::std::os::raw::c_int;
717pub type __u32 = ::std::os::raw::c_uint;
718pub type __s64 = ::std::os::raw::c_longlong;
719pub type __u64 = ::std::os::raw::c_ulonglong;
720#[repr(C)]
721#[derive(Debug, Default, Copy, Clone, PartialEq)]
722pub struct __kernel_fd_set {
723    pub fds_bits: [::std::os::raw::c_ulong; 16usize],
724}
725#[allow(clippy::unnecessary_operation, clippy::identity_op)]
726const _: () = {
727    ["Size of __kernel_fd_set"][::std::mem::size_of::<__kernel_fd_set>() - 128usize];
728    ["Alignment of __kernel_fd_set"][::std::mem::align_of::<__kernel_fd_set>() - 8usize];
729    ["Offset of field: __kernel_fd_set::fds_bits"]
730        [::std::mem::offset_of!(__kernel_fd_set, fds_bits) - 0usize];
731};
732pub type __kernel_sighandler_t =
733    ::std::option::Option<unsafe extern "C" fn(arg1: ::std::os::raw::c_int)>;
734pub type __kernel_key_t = ::std::os::raw::c_int;
735pub type __kernel_mqd_t = ::std::os::raw::c_int;
736pub type __kernel_old_uid_t = ::std::os::raw::c_ushort;
737pub type __kernel_old_gid_t = ::std::os::raw::c_ushort;
738pub type __kernel_old_dev_t = ::std::os::raw::c_ulong;
739pub type __kernel_long_t = ::std::os::raw::c_long;
740pub type __kernel_ulong_t = ::std::os::raw::c_ulong;
741pub type __kernel_ino_t = __kernel_ulong_t;
742pub type __kernel_mode_t = ::std::os::raw::c_uint;
743pub type __kernel_pid_t = ::std::os::raw::c_int;
744pub type __kernel_ipc_pid_t = ::std::os::raw::c_int;
745pub type __kernel_uid_t = ::std::os::raw::c_uint;
746pub type __kernel_gid_t = ::std::os::raw::c_uint;
747pub type __kernel_suseconds_t = __kernel_long_t;
748pub type __kernel_daddr_t = ::std::os::raw::c_int;
749pub type __kernel_uid32_t = ::std::os::raw::c_uint;
750pub type __kernel_gid32_t = ::std::os::raw::c_uint;
751pub type __kernel_size_t = __kernel_ulong_t;
752pub type __kernel_ssize_t = __kernel_long_t;
753pub type __kernel_ptrdiff_t = __kernel_long_t;
754#[repr(C)]
755#[derive(Debug, Default, Copy, Clone, PartialEq)]
756pub struct __kernel_fsid_t {
757    pub val: [::std::os::raw::c_int; 2usize],
758}
759#[allow(clippy::unnecessary_operation, clippy::identity_op)]
760const _: () = {
761    ["Size of __kernel_fsid_t"][::std::mem::size_of::<__kernel_fsid_t>() - 8usize];
762    ["Alignment of __kernel_fsid_t"][::std::mem::align_of::<__kernel_fsid_t>() - 4usize];
763    ["Offset of field: __kernel_fsid_t::val"]
764        [::std::mem::offset_of!(__kernel_fsid_t, val) - 0usize];
765};
766pub type __kernel_off_t = __kernel_long_t;
767pub type __kernel_loff_t = ::std::os::raw::c_longlong;
768pub type __kernel_old_time_t = __kernel_long_t;
769pub type __kernel_time_t = __kernel_long_t;
770pub type __kernel_time64_t = ::std::os::raw::c_longlong;
771pub type __kernel_clock_t = __kernel_long_t;
772pub type __kernel_timer_t = ::std::os::raw::c_int;
773pub type __kernel_clockid_t = ::std::os::raw::c_int;
774pub type __kernel_caddr_t = *mut ::std::os::raw::c_char;
775pub type __kernel_uid16_t = ::std::os::raw::c_ushort;
776pub type __kernel_gid16_t = ::std::os::raw::c_ushort;
777pub type __s128 = i128;
778pub type __u128 = u128;
779pub type __le16 = __u16;
780pub type __be16 = __u16;
781pub type __le32 = __u32;
782pub type __be32 = __u32;
783pub type __le64 = __u64;
784pub type __be64 = __u64;
785pub type __sum16 = __u16;
786pub type __wsum = __u32;
787pub type __poll_t = ::std::os::raw::c_uint;
788#[repr(C)]
789#[derive(Debug, Default, Copy, Clone, PartialEq)]
790#[cfg_attr(
791    feature = "serde",
792    derive(zerocopy::AsBytes, zerocopy::FromBytes, zerocopy::FromZeroes)
793)]
794pub struct kvm_pic_state {
795    pub last_irr: __u8,
796    pub irr: __u8,
797    pub imr: __u8,
798    pub isr: __u8,
799    pub priority_add: __u8,
800    pub irq_base: __u8,
801    pub read_reg_select: __u8,
802    pub poll: __u8,
803    pub special_mask: __u8,
804    pub init_state: __u8,
805    pub auto_eoi: __u8,
806    pub rotate_on_auto_eoi: __u8,
807    pub special_fully_nested_mode: __u8,
808    pub init4: __u8,
809    pub elcr: __u8,
810    pub elcr_mask: __u8,
811}
812#[allow(clippy::unnecessary_operation, clippy::identity_op)]
813const _: () = {
814    ["Size of kvm_pic_state"][::std::mem::size_of::<kvm_pic_state>() - 16usize];
815    ["Alignment of kvm_pic_state"][::std::mem::align_of::<kvm_pic_state>() - 1usize];
816    ["Offset of field: kvm_pic_state::last_irr"]
817        [::std::mem::offset_of!(kvm_pic_state, last_irr) - 0usize];
818    ["Offset of field: kvm_pic_state::irr"][::std::mem::offset_of!(kvm_pic_state, irr) - 1usize];
819    ["Offset of field: kvm_pic_state::imr"][::std::mem::offset_of!(kvm_pic_state, imr) - 2usize];
820    ["Offset of field: kvm_pic_state::isr"][::std::mem::offset_of!(kvm_pic_state, isr) - 3usize];
821    ["Offset of field: kvm_pic_state::priority_add"]
822        [::std::mem::offset_of!(kvm_pic_state, priority_add) - 4usize];
823    ["Offset of field: kvm_pic_state::irq_base"]
824        [::std::mem::offset_of!(kvm_pic_state, irq_base) - 5usize];
825    ["Offset of field: kvm_pic_state::read_reg_select"]
826        [::std::mem::offset_of!(kvm_pic_state, read_reg_select) - 6usize];
827    ["Offset of field: kvm_pic_state::poll"][::std::mem::offset_of!(kvm_pic_state, poll) - 7usize];
828    ["Offset of field: kvm_pic_state::special_mask"]
829        [::std::mem::offset_of!(kvm_pic_state, special_mask) - 8usize];
830    ["Offset of field: kvm_pic_state::init_state"]
831        [::std::mem::offset_of!(kvm_pic_state, init_state) - 9usize];
832    ["Offset of field: kvm_pic_state::auto_eoi"]
833        [::std::mem::offset_of!(kvm_pic_state, auto_eoi) - 10usize];
834    ["Offset of field: kvm_pic_state::rotate_on_auto_eoi"]
835        [::std::mem::offset_of!(kvm_pic_state, rotate_on_auto_eoi) - 11usize];
836    ["Offset of field: kvm_pic_state::special_fully_nested_mode"]
837        [::std::mem::offset_of!(kvm_pic_state, special_fully_nested_mode) - 12usize];
838    ["Offset of field: kvm_pic_state::init4"]
839        [::std::mem::offset_of!(kvm_pic_state, init4) - 13usize];
840    ["Offset of field: kvm_pic_state::elcr"][::std::mem::offset_of!(kvm_pic_state, elcr) - 14usize];
841    ["Offset of field: kvm_pic_state::elcr_mask"]
842        [::std::mem::offset_of!(kvm_pic_state, elcr_mask) - 15usize];
843};
844#[repr(C)]
845#[derive(Copy, Clone)]
846#[cfg_attr(
847    feature = "serde",
848    derive(zerocopy::AsBytes, zerocopy::FromBytes, zerocopy::FromZeroes)
849)]
850pub struct kvm_ioapic_state {
851    pub base_address: __u64,
852    pub ioregsel: __u32,
853    pub id: __u32,
854    pub irr: __u32,
855    pub pad: __u32,
856    pub redirtbl: [kvm_ioapic_state__bindgen_ty_1; 24usize],
857}
858#[repr(C)]
859#[derive(Copy, Clone)]
860#[cfg_attr(
861    feature = "serde",
862    derive(zerocopy::AsBytes, zerocopy::FromBytes, zerocopy::FromZeroes)
863)]
864pub union kvm_ioapic_state__bindgen_ty_1 {
865    pub bits: __u64,
866    pub fields: kvm_ioapic_state__bindgen_ty_1__bindgen_ty_1,
867}
868#[repr(C)]
869#[derive(Debug, Default, Copy, Clone, PartialEq)]
870#[cfg_attr(
871    feature = "serde",
872    derive(zerocopy::AsBytes, zerocopy::FromBytes, zerocopy::FromZeroes)
873)]
874pub struct kvm_ioapic_state__bindgen_ty_1__bindgen_ty_1 {
875    pub vector: __u8,
876    pub _bitfield_align_1: [u8; 0],
877    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
878    pub reserved: [__u8; 4usize],
879    pub dest_id: __u8,
880}
881#[allow(clippy::unnecessary_operation, clippy::identity_op)]
882const _: () = {
883    ["Size of kvm_ioapic_state__bindgen_ty_1__bindgen_ty_1"]
884        [::std::mem::size_of::<kvm_ioapic_state__bindgen_ty_1__bindgen_ty_1>() - 8usize];
885    ["Alignment of kvm_ioapic_state__bindgen_ty_1__bindgen_ty_1"]
886        [::std::mem::align_of::<kvm_ioapic_state__bindgen_ty_1__bindgen_ty_1>() - 1usize];
887    ["Offset of field: kvm_ioapic_state__bindgen_ty_1__bindgen_ty_1::vector"]
888        [::std::mem::offset_of!(kvm_ioapic_state__bindgen_ty_1__bindgen_ty_1, vector) - 0usize];
889    ["Offset of field: kvm_ioapic_state__bindgen_ty_1__bindgen_ty_1::reserved"]
890        [::std::mem::offset_of!(kvm_ioapic_state__bindgen_ty_1__bindgen_ty_1, reserved) - 3usize];
891    ["Offset of field: kvm_ioapic_state__bindgen_ty_1__bindgen_ty_1::dest_id"]
892        [::std::mem::offset_of!(kvm_ioapic_state__bindgen_ty_1__bindgen_ty_1, dest_id) - 7usize];
893};
894impl kvm_ioapic_state__bindgen_ty_1__bindgen_ty_1 {
895    #[inline]
896    pub fn delivery_mode(&self) -> __u8 {
897        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 3u8) as u8) }
898    }
899    #[inline]
900    pub fn set_delivery_mode(&mut self, val: __u8) {
901        unsafe {
902            let val: u8 = ::std::mem::transmute(val);
903            self._bitfield_1.set(0usize, 3u8, val as u64)
904        }
905    }
906    #[inline]
907    pub fn dest_mode(&self) -> __u8 {
908        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) }
909    }
910    #[inline]
911    pub fn set_dest_mode(&mut self, val: __u8) {
912        unsafe {
913            let val: u8 = ::std::mem::transmute(val);
914            self._bitfield_1.set(3usize, 1u8, val as u64)
915        }
916    }
917    #[inline]
918    pub fn delivery_status(&self) -> __u8 {
919        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u8) }
920    }
921    #[inline]
922    pub fn set_delivery_status(&mut self, val: __u8) {
923        unsafe {
924            let val: u8 = ::std::mem::transmute(val);
925            self._bitfield_1.set(4usize, 1u8, val as u64)
926        }
927    }
928    #[inline]
929    pub fn polarity(&self) -> __u8 {
930        unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u8) }
931    }
932    #[inline]
933    pub fn set_polarity(&mut self, val: __u8) {
934        unsafe {
935            let val: u8 = ::std::mem::transmute(val);
936            self._bitfield_1.set(5usize, 1u8, val as u64)
937        }
938    }
939    #[inline]
940    pub fn remote_irr(&self) -> __u8 {
941        unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u8) }
942    }
943    #[inline]
944    pub fn set_remote_irr(&mut self, val: __u8) {
945        unsafe {
946            let val: u8 = ::std::mem::transmute(val);
947            self._bitfield_1.set(6usize, 1u8, val as u64)
948        }
949    }
950    #[inline]
951    pub fn trig_mode(&self) -> __u8 {
952        unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u8) }
953    }
954    #[inline]
955    pub fn set_trig_mode(&mut self, val: __u8) {
956        unsafe {
957            let val: u8 = ::std::mem::transmute(val);
958            self._bitfield_1.set(7usize, 1u8, val as u64)
959        }
960    }
961    #[inline]
962    pub fn mask(&self) -> __u8 {
963        unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u8) }
964    }
965    #[inline]
966    pub fn set_mask(&mut self, val: __u8) {
967        unsafe {
968            let val: u8 = ::std::mem::transmute(val);
969            self._bitfield_1.set(8usize, 1u8, val as u64)
970        }
971    }
972    #[inline]
973    pub fn reserve(&self) -> __u8 {
974        unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 7u8) as u8) }
975    }
976    #[inline]
977    pub fn set_reserve(&mut self, val: __u8) {
978        unsafe {
979            let val: u8 = ::std::mem::transmute(val);
980            self._bitfield_1.set(9usize, 7u8, val as u64)
981        }
982    }
983    #[inline]
984    pub fn new_bitfield_1(
985        delivery_mode: __u8,
986        dest_mode: __u8,
987        delivery_status: __u8,
988        polarity: __u8,
989        remote_irr: __u8,
990        trig_mode: __u8,
991        mask: __u8,
992        reserve: __u8,
993    ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
994        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
995        __bindgen_bitfield_unit.set(0usize, 3u8, {
996            let delivery_mode: u8 = unsafe { ::std::mem::transmute(delivery_mode) };
997            delivery_mode as u64
998        });
999        __bindgen_bitfield_unit.set(3usize, 1u8, {
1000            let dest_mode: u8 = unsafe { ::std::mem::transmute(dest_mode) };
1001            dest_mode as u64
1002        });
1003        __bindgen_bitfield_unit.set(4usize, 1u8, {
1004            let delivery_status: u8 = unsafe { ::std::mem::transmute(delivery_status) };
1005            delivery_status as u64
1006        });
1007        __bindgen_bitfield_unit.set(5usize, 1u8, {
1008            let polarity: u8 = unsafe { ::std::mem::transmute(polarity) };
1009            polarity as u64
1010        });
1011        __bindgen_bitfield_unit.set(6usize, 1u8, {
1012            let remote_irr: u8 = unsafe { ::std::mem::transmute(remote_irr) };
1013            remote_irr as u64
1014        });
1015        __bindgen_bitfield_unit.set(7usize, 1u8, {
1016            let trig_mode: u8 = unsafe { ::std::mem::transmute(trig_mode) };
1017            trig_mode as u64
1018        });
1019        __bindgen_bitfield_unit.set(8usize, 1u8, {
1020            let mask: u8 = unsafe { ::std::mem::transmute(mask) };
1021            mask as u64
1022        });
1023        __bindgen_bitfield_unit.set(9usize, 7u8, {
1024            let reserve: u8 = unsafe { ::std::mem::transmute(reserve) };
1025            reserve as u64
1026        });
1027        __bindgen_bitfield_unit
1028    }
1029}
1030#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1031const _: () = {
1032    ["Size of kvm_ioapic_state__bindgen_ty_1"]
1033        [::std::mem::size_of::<kvm_ioapic_state__bindgen_ty_1>() - 8usize];
1034    ["Alignment of kvm_ioapic_state__bindgen_ty_1"]
1035        [::std::mem::align_of::<kvm_ioapic_state__bindgen_ty_1>() - 8usize];
1036    ["Offset of field: kvm_ioapic_state__bindgen_ty_1::bits"]
1037        [::std::mem::offset_of!(kvm_ioapic_state__bindgen_ty_1, bits) - 0usize];
1038    ["Offset of field: kvm_ioapic_state__bindgen_ty_1::fields"]
1039        [::std::mem::offset_of!(kvm_ioapic_state__bindgen_ty_1, fields) - 0usize];
1040};
1041impl Default for kvm_ioapic_state__bindgen_ty_1 {
1042    fn default() -> Self {
1043        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1044        unsafe {
1045            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1046            s.assume_init()
1047        }
1048    }
1049}
1050impl ::std::fmt::Debug for kvm_ioapic_state__bindgen_ty_1 {
1051    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1052        write!(f, "kvm_ioapic_state__bindgen_ty_1 {{ union }}")
1053    }
1054}
1055#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1056const _: () = {
1057    ["Size of kvm_ioapic_state"][::std::mem::size_of::<kvm_ioapic_state>() - 216usize];
1058    ["Alignment of kvm_ioapic_state"][::std::mem::align_of::<kvm_ioapic_state>() - 8usize];
1059    ["Offset of field: kvm_ioapic_state::base_address"]
1060        [::std::mem::offset_of!(kvm_ioapic_state, base_address) - 0usize];
1061    ["Offset of field: kvm_ioapic_state::ioregsel"]
1062        [::std::mem::offset_of!(kvm_ioapic_state, ioregsel) - 8usize];
1063    ["Offset of field: kvm_ioapic_state::id"]
1064        [::std::mem::offset_of!(kvm_ioapic_state, id) - 12usize];
1065    ["Offset of field: kvm_ioapic_state::irr"]
1066        [::std::mem::offset_of!(kvm_ioapic_state, irr) - 16usize];
1067    ["Offset of field: kvm_ioapic_state::pad"]
1068        [::std::mem::offset_of!(kvm_ioapic_state, pad) - 20usize];
1069    ["Offset of field: kvm_ioapic_state::redirtbl"]
1070        [::std::mem::offset_of!(kvm_ioapic_state, redirtbl) - 24usize];
1071};
1072impl Default for kvm_ioapic_state {
1073    fn default() -> Self {
1074        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1075        unsafe {
1076            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1077            s.assume_init()
1078        }
1079    }
1080}
1081impl ::std::fmt::Debug for kvm_ioapic_state {
1082    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1083        write ! (f , "kvm_ioapic_state {{ base_address: {:?}, ioregsel: {:?}, id: {:?}, irr: {:?}, pad: {:?}, redirtbl: {:?} }}" , self . base_address , self . ioregsel , self . id , self . irr , self . pad , self . redirtbl)
1084    }
1085}
1086#[repr(C)]
1087#[derive(Debug, Default, Copy, Clone, PartialEq)]
1088#[cfg_attr(
1089    feature = "serde",
1090    derive(zerocopy::AsBytes, zerocopy::FromBytes, zerocopy::FromZeroes)
1091)]
1092pub struct kvm_regs {
1093    pub rax: __u64,
1094    pub rbx: __u64,
1095    pub rcx: __u64,
1096    pub rdx: __u64,
1097    pub rsi: __u64,
1098    pub rdi: __u64,
1099    pub rsp: __u64,
1100    pub rbp: __u64,
1101    pub r8: __u64,
1102    pub r9: __u64,
1103    pub r10: __u64,
1104    pub r11: __u64,
1105    pub r12: __u64,
1106    pub r13: __u64,
1107    pub r14: __u64,
1108    pub r15: __u64,
1109    pub rip: __u64,
1110    pub rflags: __u64,
1111}
1112#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1113const _: () = {
1114    ["Size of kvm_regs"][::std::mem::size_of::<kvm_regs>() - 144usize];
1115    ["Alignment of kvm_regs"][::std::mem::align_of::<kvm_regs>() - 8usize];
1116    ["Offset of field: kvm_regs::rax"][::std::mem::offset_of!(kvm_regs, rax) - 0usize];
1117    ["Offset of field: kvm_regs::rbx"][::std::mem::offset_of!(kvm_regs, rbx) - 8usize];
1118    ["Offset of field: kvm_regs::rcx"][::std::mem::offset_of!(kvm_regs, rcx) - 16usize];
1119    ["Offset of field: kvm_regs::rdx"][::std::mem::offset_of!(kvm_regs, rdx) - 24usize];
1120    ["Offset of field: kvm_regs::rsi"][::std::mem::offset_of!(kvm_regs, rsi) - 32usize];
1121    ["Offset of field: kvm_regs::rdi"][::std::mem::offset_of!(kvm_regs, rdi) - 40usize];
1122    ["Offset of field: kvm_regs::rsp"][::std::mem::offset_of!(kvm_regs, rsp) - 48usize];
1123    ["Offset of field: kvm_regs::rbp"][::std::mem::offset_of!(kvm_regs, rbp) - 56usize];
1124    ["Offset of field: kvm_regs::r8"][::std::mem::offset_of!(kvm_regs, r8) - 64usize];
1125    ["Offset of field: kvm_regs::r9"][::std::mem::offset_of!(kvm_regs, r9) - 72usize];
1126    ["Offset of field: kvm_regs::r10"][::std::mem::offset_of!(kvm_regs, r10) - 80usize];
1127    ["Offset of field: kvm_regs::r11"][::std::mem::offset_of!(kvm_regs, r11) - 88usize];
1128    ["Offset of field: kvm_regs::r12"][::std::mem::offset_of!(kvm_regs, r12) - 96usize];
1129    ["Offset of field: kvm_regs::r13"][::std::mem::offset_of!(kvm_regs, r13) - 104usize];
1130    ["Offset of field: kvm_regs::r14"][::std::mem::offset_of!(kvm_regs, r14) - 112usize];
1131    ["Offset of field: kvm_regs::r15"][::std::mem::offset_of!(kvm_regs, r15) - 120usize];
1132    ["Offset of field: kvm_regs::rip"][::std::mem::offset_of!(kvm_regs, rip) - 128usize];
1133    ["Offset of field: kvm_regs::rflags"][::std::mem::offset_of!(kvm_regs, rflags) - 136usize];
1134};
1135#[repr(C)]
1136#[derive(Debug, Copy, Clone, PartialEq)]
1137#[cfg_attr(
1138    feature = "serde",
1139    derive(zerocopy::AsBytes, zerocopy::FromBytes, zerocopy::FromZeroes)
1140)]
1141pub struct kvm_lapic_state {
1142    pub regs: [::std::os::raw::c_char; 1024usize],
1143}
1144#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1145const _: () = {
1146    ["Size of kvm_lapic_state"][::std::mem::size_of::<kvm_lapic_state>() - 1024usize];
1147    ["Alignment of kvm_lapic_state"][::std::mem::align_of::<kvm_lapic_state>() - 1usize];
1148    ["Offset of field: kvm_lapic_state::regs"]
1149        [::std::mem::offset_of!(kvm_lapic_state, regs) - 0usize];
1150};
1151impl Default for kvm_lapic_state {
1152    fn default() -> Self {
1153        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1154        unsafe {
1155            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1156            s.assume_init()
1157        }
1158    }
1159}
1160#[repr(C)]
1161#[derive(Debug, Default, Copy, Clone, PartialEq)]
1162#[cfg_attr(
1163    feature = "serde",
1164    derive(zerocopy::AsBytes, zerocopy::FromBytes, zerocopy::FromZeroes)
1165)]
1166pub struct kvm_segment {
1167    pub base: __u64,
1168    pub limit: __u32,
1169    pub selector: __u16,
1170    pub type_: __u8,
1171    pub present: __u8,
1172    pub dpl: __u8,
1173    pub db: __u8,
1174    pub s: __u8,
1175    pub l: __u8,
1176    pub g: __u8,
1177    pub avl: __u8,
1178    pub unusable: __u8,
1179    pub padding: __u8,
1180}
1181#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1182const _: () = {
1183    ["Size of kvm_segment"][::std::mem::size_of::<kvm_segment>() - 24usize];
1184    ["Alignment of kvm_segment"][::std::mem::align_of::<kvm_segment>() - 8usize];
1185    ["Offset of field: kvm_segment::base"][::std::mem::offset_of!(kvm_segment, base) - 0usize];
1186    ["Offset of field: kvm_segment::limit"][::std::mem::offset_of!(kvm_segment, limit) - 8usize];
1187    ["Offset of field: kvm_segment::selector"]
1188        [::std::mem::offset_of!(kvm_segment, selector) - 12usize];
1189    ["Offset of field: kvm_segment::type_"][::std::mem::offset_of!(kvm_segment, type_) - 14usize];
1190    ["Offset of field: kvm_segment::present"]
1191        [::std::mem::offset_of!(kvm_segment, present) - 15usize];
1192    ["Offset of field: kvm_segment::dpl"][::std::mem::offset_of!(kvm_segment, dpl) - 16usize];
1193    ["Offset of field: kvm_segment::db"][::std::mem::offset_of!(kvm_segment, db) - 17usize];
1194    ["Offset of field: kvm_segment::s"][::std::mem::offset_of!(kvm_segment, s) - 18usize];
1195    ["Offset of field: kvm_segment::l"][::std::mem::offset_of!(kvm_segment, l) - 19usize];
1196    ["Offset of field: kvm_segment::g"][::std::mem::offset_of!(kvm_segment, g) - 20usize];
1197    ["Offset of field: kvm_segment::avl"][::std::mem::offset_of!(kvm_segment, avl) - 21usize];
1198    ["Offset of field: kvm_segment::unusable"]
1199        [::std::mem::offset_of!(kvm_segment, unusable) - 22usize];
1200    ["Offset of field: kvm_segment::padding"]
1201        [::std::mem::offset_of!(kvm_segment, padding) - 23usize];
1202};
1203#[repr(C)]
1204#[derive(Debug, Default, Copy, Clone, PartialEq)]
1205#[cfg_attr(
1206    feature = "serde",
1207    derive(zerocopy::AsBytes, zerocopy::FromBytes, zerocopy::FromZeroes)
1208)]
1209pub struct kvm_dtable {
1210    pub base: __u64,
1211    pub limit: __u16,
1212    pub padding: [__u16; 3usize],
1213}
1214#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1215const _: () = {
1216    ["Size of kvm_dtable"][::std::mem::size_of::<kvm_dtable>() - 16usize];
1217    ["Alignment of kvm_dtable"][::std::mem::align_of::<kvm_dtable>() - 8usize];
1218    ["Offset of field: kvm_dtable::base"][::std::mem::offset_of!(kvm_dtable, base) - 0usize];
1219    ["Offset of field: kvm_dtable::limit"][::std::mem::offset_of!(kvm_dtable, limit) - 8usize];
1220    ["Offset of field: kvm_dtable::padding"][::std::mem::offset_of!(kvm_dtable, padding) - 10usize];
1221};
1222#[repr(C)]
1223#[derive(Debug, Default, Copy, Clone, PartialEq)]
1224#[cfg_attr(
1225    feature = "serde",
1226    derive(zerocopy::AsBytes, zerocopy::FromBytes, zerocopy::FromZeroes)
1227)]
1228pub struct kvm_sregs {
1229    pub cs: kvm_segment,
1230    pub ds: kvm_segment,
1231    pub es: kvm_segment,
1232    pub fs: kvm_segment,
1233    pub gs: kvm_segment,
1234    pub ss: kvm_segment,
1235    pub tr: kvm_segment,
1236    pub ldt: kvm_segment,
1237    pub gdt: kvm_dtable,
1238    pub idt: kvm_dtable,
1239    pub cr0: __u64,
1240    pub cr2: __u64,
1241    pub cr3: __u64,
1242    pub cr4: __u64,
1243    pub cr8: __u64,
1244    pub efer: __u64,
1245    pub apic_base: __u64,
1246    pub interrupt_bitmap: [__u64; 4usize],
1247}
1248#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1249const _: () = {
1250    ["Size of kvm_sregs"][::std::mem::size_of::<kvm_sregs>() - 312usize];
1251    ["Alignment of kvm_sregs"][::std::mem::align_of::<kvm_sregs>() - 8usize];
1252    ["Offset of field: kvm_sregs::cs"][::std::mem::offset_of!(kvm_sregs, cs) - 0usize];
1253    ["Offset of field: kvm_sregs::ds"][::std::mem::offset_of!(kvm_sregs, ds) - 24usize];
1254    ["Offset of field: kvm_sregs::es"][::std::mem::offset_of!(kvm_sregs, es) - 48usize];
1255    ["Offset of field: kvm_sregs::fs"][::std::mem::offset_of!(kvm_sregs, fs) - 72usize];
1256    ["Offset of field: kvm_sregs::gs"][::std::mem::offset_of!(kvm_sregs, gs) - 96usize];
1257    ["Offset of field: kvm_sregs::ss"][::std::mem::offset_of!(kvm_sregs, ss) - 120usize];
1258    ["Offset of field: kvm_sregs::tr"][::std::mem::offset_of!(kvm_sregs, tr) - 144usize];
1259    ["Offset of field: kvm_sregs::ldt"][::std::mem::offset_of!(kvm_sregs, ldt) - 168usize];
1260    ["Offset of field: kvm_sregs::gdt"][::std::mem::offset_of!(kvm_sregs, gdt) - 192usize];
1261    ["Offset of field: kvm_sregs::idt"][::std::mem::offset_of!(kvm_sregs, idt) - 208usize];
1262    ["Offset of field: kvm_sregs::cr0"][::std::mem::offset_of!(kvm_sregs, cr0) - 224usize];
1263    ["Offset of field: kvm_sregs::cr2"][::std::mem::offset_of!(kvm_sregs, cr2) - 232usize];
1264    ["Offset of field: kvm_sregs::cr3"][::std::mem::offset_of!(kvm_sregs, cr3) - 240usize];
1265    ["Offset of field: kvm_sregs::cr4"][::std::mem::offset_of!(kvm_sregs, cr4) - 248usize];
1266    ["Offset of field: kvm_sregs::cr8"][::std::mem::offset_of!(kvm_sregs, cr8) - 256usize];
1267    ["Offset of field: kvm_sregs::efer"][::std::mem::offset_of!(kvm_sregs, efer) - 264usize];
1268    ["Offset of field: kvm_sregs::apic_base"]
1269        [::std::mem::offset_of!(kvm_sregs, apic_base) - 272usize];
1270    ["Offset of field: kvm_sregs::interrupt_bitmap"]
1271        [::std::mem::offset_of!(kvm_sregs, interrupt_bitmap) - 280usize];
1272};
1273#[repr(C)]
1274#[derive(Debug, Default, Copy, Clone, PartialEq)]
1275pub struct kvm_sregs2 {
1276    pub cs: kvm_segment,
1277    pub ds: kvm_segment,
1278    pub es: kvm_segment,
1279    pub fs: kvm_segment,
1280    pub gs: kvm_segment,
1281    pub ss: kvm_segment,
1282    pub tr: kvm_segment,
1283    pub ldt: kvm_segment,
1284    pub gdt: kvm_dtable,
1285    pub idt: kvm_dtable,
1286    pub cr0: __u64,
1287    pub cr2: __u64,
1288    pub cr3: __u64,
1289    pub cr4: __u64,
1290    pub cr8: __u64,
1291    pub efer: __u64,
1292    pub apic_base: __u64,
1293    pub flags: __u64,
1294    pub pdptrs: [__u64; 4usize],
1295}
1296#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1297const _: () = {
1298    ["Size of kvm_sregs2"][::std::mem::size_of::<kvm_sregs2>() - 320usize];
1299    ["Alignment of kvm_sregs2"][::std::mem::align_of::<kvm_sregs2>() - 8usize];
1300    ["Offset of field: kvm_sregs2::cs"][::std::mem::offset_of!(kvm_sregs2, cs) - 0usize];
1301    ["Offset of field: kvm_sregs2::ds"][::std::mem::offset_of!(kvm_sregs2, ds) - 24usize];
1302    ["Offset of field: kvm_sregs2::es"][::std::mem::offset_of!(kvm_sregs2, es) - 48usize];
1303    ["Offset of field: kvm_sregs2::fs"][::std::mem::offset_of!(kvm_sregs2, fs) - 72usize];
1304    ["Offset of field: kvm_sregs2::gs"][::std::mem::offset_of!(kvm_sregs2, gs) - 96usize];
1305    ["Offset of field: kvm_sregs2::ss"][::std::mem::offset_of!(kvm_sregs2, ss) - 120usize];
1306    ["Offset of field: kvm_sregs2::tr"][::std::mem::offset_of!(kvm_sregs2, tr) - 144usize];
1307    ["Offset of field: kvm_sregs2::ldt"][::std::mem::offset_of!(kvm_sregs2, ldt) - 168usize];
1308    ["Offset of field: kvm_sregs2::gdt"][::std::mem::offset_of!(kvm_sregs2, gdt) - 192usize];
1309    ["Offset of field: kvm_sregs2::idt"][::std::mem::offset_of!(kvm_sregs2, idt) - 208usize];
1310    ["Offset of field: kvm_sregs2::cr0"][::std::mem::offset_of!(kvm_sregs2, cr0) - 224usize];
1311    ["Offset of field: kvm_sregs2::cr2"][::std::mem::offset_of!(kvm_sregs2, cr2) - 232usize];
1312    ["Offset of field: kvm_sregs2::cr3"][::std::mem::offset_of!(kvm_sregs2, cr3) - 240usize];
1313    ["Offset of field: kvm_sregs2::cr4"][::std::mem::offset_of!(kvm_sregs2, cr4) - 248usize];
1314    ["Offset of field: kvm_sregs2::cr8"][::std::mem::offset_of!(kvm_sregs2, cr8) - 256usize];
1315    ["Offset of field: kvm_sregs2::efer"][::std::mem::offset_of!(kvm_sregs2, efer) - 264usize];
1316    ["Offset of field: kvm_sregs2::apic_base"]
1317        [::std::mem::offset_of!(kvm_sregs2, apic_base) - 272usize];
1318    ["Offset of field: kvm_sregs2::flags"][::std::mem::offset_of!(kvm_sregs2, flags) - 280usize];
1319    ["Offset of field: kvm_sregs2::pdptrs"][::std::mem::offset_of!(kvm_sregs2, pdptrs) - 288usize];
1320};
1321#[repr(C)]
1322#[derive(Debug, Default, Copy, Clone, PartialEq)]
1323pub struct kvm_fpu {
1324    pub fpr: [[__u8; 16usize]; 8usize],
1325    pub fcw: __u16,
1326    pub fsw: __u16,
1327    pub ftwx: __u8,
1328    pub pad1: __u8,
1329    pub last_opcode: __u16,
1330    pub last_ip: __u64,
1331    pub last_dp: __u64,
1332    pub xmm: [[__u8; 16usize]; 16usize],
1333    pub mxcsr: __u32,
1334    pub pad2: __u32,
1335}
1336#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1337const _: () = {
1338    ["Size of kvm_fpu"][::std::mem::size_of::<kvm_fpu>() - 416usize];
1339    ["Alignment of kvm_fpu"][::std::mem::align_of::<kvm_fpu>() - 8usize];
1340    ["Offset of field: kvm_fpu::fpr"][::std::mem::offset_of!(kvm_fpu, fpr) - 0usize];
1341    ["Offset of field: kvm_fpu::fcw"][::std::mem::offset_of!(kvm_fpu, fcw) - 128usize];
1342    ["Offset of field: kvm_fpu::fsw"][::std::mem::offset_of!(kvm_fpu, fsw) - 130usize];
1343    ["Offset of field: kvm_fpu::ftwx"][::std::mem::offset_of!(kvm_fpu, ftwx) - 132usize];
1344    ["Offset of field: kvm_fpu::pad1"][::std::mem::offset_of!(kvm_fpu, pad1) - 133usize];
1345    ["Offset of field: kvm_fpu::last_opcode"]
1346        [::std::mem::offset_of!(kvm_fpu, last_opcode) - 134usize];
1347    ["Offset of field: kvm_fpu::last_ip"][::std::mem::offset_of!(kvm_fpu, last_ip) - 136usize];
1348    ["Offset of field: kvm_fpu::last_dp"][::std::mem::offset_of!(kvm_fpu, last_dp) - 144usize];
1349    ["Offset of field: kvm_fpu::xmm"][::std::mem::offset_of!(kvm_fpu, xmm) - 152usize];
1350    ["Offset of field: kvm_fpu::mxcsr"][::std::mem::offset_of!(kvm_fpu, mxcsr) - 408usize];
1351    ["Offset of field: kvm_fpu::pad2"][::std::mem::offset_of!(kvm_fpu, pad2) - 412usize];
1352};
1353#[repr(C)]
1354#[derive(Debug, Default, Copy, Clone, PartialEq)]
1355#[cfg_attr(
1356    feature = "serde",
1357    derive(zerocopy::AsBytes, zerocopy::FromBytes, zerocopy::FromZeroes)
1358)]
1359pub struct kvm_msr_entry {
1360    pub index: __u32,
1361    pub reserved: __u32,
1362    pub data: __u64,
1363}
1364#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1365const _: () = {
1366    ["Size of kvm_msr_entry"][::std::mem::size_of::<kvm_msr_entry>() - 16usize];
1367    ["Alignment of kvm_msr_entry"][::std::mem::align_of::<kvm_msr_entry>() - 8usize];
1368    ["Offset of field: kvm_msr_entry::index"]
1369        [::std::mem::offset_of!(kvm_msr_entry, index) - 0usize];
1370    ["Offset of field: kvm_msr_entry::reserved"]
1371        [::std::mem::offset_of!(kvm_msr_entry, reserved) - 4usize];
1372    ["Offset of field: kvm_msr_entry::data"][::std::mem::offset_of!(kvm_msr_entry, data) - 8usize];
1373};
1374#[repr(C)]
1375#[derive(Debug, Default)]
1376#[cfg_attr(
1377    feature = "serde",
1378    derive(zerocopy::AsBytes, zerocopy::FromBytes, zerocopy::FromZeroes)
1379)]
1380pub struct kvm_msrs {
1381    pub nmsrs: __u32,
1382    pub pad: __u32,
1383    pub entries: __IncompleteArrayField<kvm_msr_entry>,
1384}
1385#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1386const _: () = {
1387    ["Size of kvm_msrs"][::std::mem::size_of::<kvm_msrs>() - 8usize];
1388    ["Alignment of kvm_msrs"][::std::mem::align_of::<kvm_msrs>() - 8usize];
1389    ["Offset of field: kvm_msrs::nmsrs"][::std::mem::offset_of!(kvm_msrs, nmsrs) - 0usize];
1390    ["Offset of field: kvm_msrs::pad"][::std::mem::offset_of!(kvm_msrs, pad) - 4usize];
1391    ["Offset of field: kvm_msrs::entries"][::std::mem::offset_of!(kvm_msrs, entries) - 8usize];
1392};
1393#[repr(C)]
1394#[derive(Debug, Default)]
1395pub struct kvm_msr_list {
1396    pub nmsrs: __u32,
1397    pub indices: __IncompleteArrayField<__u32>,
1398}
1399#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1400const _: () = {
1401    ["Size of kvm_msr_list"][::std::mem::size_of::<kvm_msr_list>() - 4usize];
1402    ["Alignment of kvm_msr_list"][::std::mem::align_of::<kvm_msr_list>() - 4usize];
1403    ["Offset of field: kvm_msr_list::nmsrs"][::std::mem::offset_of!(kvm_msr_list, nmsrs) - 0usize];
1404    ["Offset of field: kvm_msr_list::indices"]
1405        [::std::mem::offset_of!(kvm_msr_list, indices) - 4usize];
1406};
1407#[repr(C)]
1408#[derive(Debug, Copy, Clone, PartialEq)]
1409pub struct kvm_msr_filter_range {
1410    pub flags: __u32,
1411    pub nmsrs: __u32,
1412    pub base: __u32,
1413    pub bitmap: *mut __u8,
1414}
1415#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1416const _: () = {
1417    ["Size of kvm_msr_filter_range"][::std::mem::size_of::<kvm_msr_filter_range>() - 24usize];
1418    ["Alignment of kvm_msr_filter_range"][::std::mem::align_of::<kvm_msr_filter_range>() - 8usize];
1419    ["Offset of field: kvm_msr_filter_range::flags"]
1420        [::std::mem::offset_of!(kvm_msr_filter_range, flags) - 0usize];
1421    ["Offset of field: kvm_msr_filter_range::nmsrs"]
1422        [::std::mem::offset_of!(kvm_msr_filter_range, nmsrs) - 4usize];
1423    ["Offset of field: kvm_msr_filter_range::base"]
1424        [::std::mem::offset_of!(kvm_msr_filter_range, base) - 8usize];
1425    ["Offset of field: kvm_msr_filter_range::bitmap"]
1426        [::std::mem::offset_of!(kvm_msr_filter_range, bitmap) - 16usize];
1427};
1428impl Default for kvm_msr_filter_range {
1429    fn default() -> Self {
1430        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1431        unsafe {
1432            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1433            s.assume_init()
1434        }
1435    }
1436}
1437#[repr(C)]
1438#[derive(Debug, Copy, Clone, PartialEq)]
1439pub struct kvm_msr_filter {
1440    pub flags: __u32,
1441    pub ranges: [kvm_msr_filter_range; 16usize],
1442}
1443#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1444const _: () = {
1445    ["Size of kvm_msr_filter"][::std::mem::size_of::<kvm_msr_filter>() - 392usize];
1446    ["Alignment of kvm_msr_filter"][::std::mem::align_of::<kvm_msr_filter>() - 8usize];
1447    ["Offset of field: kvm_msr_filter::flags"]
1448        [::std::mem::offset_of!(kvm_msr_filter, flags) - 0usize];
1449    ["Offset of field: kvm_msr_filter::ranges"]
1450        [::std::mem::offset_of!(kvm_msr_filter, ranges) - 8usize];
1451};
1452impl Default for kvm_msr_filter {
1453    fn default() -> Self {
1454        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1455        unsafe {
1456            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1457            s.assume_init()
1458        }
1459    }
1460}
1461#[repr(C)]
1462#[derive(Debug, Default, Copy, Clone, PartialEq)]
1463pub struct kvm_cpuid_entry {
1464    pub function: __u32,
1465    pub eax: __u32,
1466    pub ebx: __u32,
1467    pub ecx: __u32,
1468    pub edx: __u32,
1469    pub padding: __u32,
1470}
1471#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1472const _: () = {
1473    ["Size of kvm_cpuid_entry"][::std::mem::size_of::<kvm_cpuid_entry>() - 24usize];
1474    ["Alignment of kvm_cpuid_entry"][::std::mem::align_of::<kvm_cpuid_entry>() - 4usize];
1475    ["Offset of field: kvm_cpuid_entry::function"]
1476        [::std::mem::offset_of!(kvm_cpuid_entry, function) - 0usize];
1477    ["Offset of field: kvm_cpuid_entry::eax"]
1478        [::std::mem::offset_of!(kvm_cpuid_entry, eax) - 4usize];
1479    ["Offset of field: kvm_cpuid_entry::ebx"]
1480        [::std::mem::offset_of!(kvm_cpuid_entry, ebx) - 8usize];
1481    ["Offset of field: kvm_cpuid_entry::ecx"]
1482        [::std::mem::offset_of!(kvm_cpuid_entry, ecx) - 12usize];
1483    ["Offset of field: kvm_cpuid_entry::edx"]
1484        [::std::mem::offset_of!(kvm_cpuid_entry, edx) - 16usize];
1485    ["Offset of field: kvm_cpuid_entry::padding"]
1486        [::std::mem::offset_of!(kvm_cpuid_entry, padding) - 20usize];
1487};
1488#[repr(C)]
1489#[derive(Debug, Default)]
1490pub struct kvm_cpuid {
1491    pub nent: __u32,
1492    pub padding: __u32,
1493    pub entries: __IncompleteArrayField<kvm_cpuid_entry>,
1494}
1495#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1496const _: () = {
1497    ["Size of kvm_cpuid"][::std::mem::size_of::<kvm_cpuid>() - 8usize];
1498    ["Alignment of kvm_cpuid"][::std::mem::align_of::<kvm_cpuid>() - 4usize];
1499    ["Offset of field: kvm_cpuid::nent"][::std::mem::offset_of!(kvm_cpuid, nent) - 0usize];
1500    ["Offset of field: kvm_cpuid::padding"][::std::mem::offset_of!(kvm_cpuid, padding) - 4usize];
1501    ["Offset of field: kvm_cpuid::entries"][::std::mem::offset_of!(kvm_cpuid, entries) - 8usize];
1502};
1503#[repr(C)]
1504#[derive(Debug, Default, Copy, Clone, PartialEq)]
1505#[cfg_attr(
1506    feature = "serde",
1507    derive(zerocopy::AsBytes, zerocopy::FromBytes, zerocopy::FromZeroes)
1508)]
1509pub struct kvm_cpuid_entry2 {
1510    pub function: __u32,
1511    pub index: __u32,
1512    pub flags: __u32,
1513    pub eax: __u32,
1514    pub ebx: __u32,
1515    pub ecx: __u32,
1516    pub edx: __u32,
1517    pub padding: [__u32; 3usize],
1518}
1519#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1520const _: () = {
1521    ["Size of kvm_cpuid_entry2"][::std::mem::size_of::<kvm_cpuid_entry2>() - 40usize];
1522    ["Alignment of kvm_cpuid_entry2"][::std::mem::align_of::<kvm_cpuid_entry2>() - 4usize];
1523    ["Offset of field: kvm_cpuid_entry2::function"]
1524        [::std::mem::offset_of!(kvm_cpuid_entry2, function) - 0usize];
1525    ["Offset of field: kvm_cpuid_entry2::index"]
1526        [::std::mem::offset_of!(kvm_cpuid_entry2, index) - 4usize];
1527    ["Offset of field: kvm_cpuid_entry2::flags"]
1528        [::std::mem::offset_of!(kvm_cpuid_entry2, flags) - 8usize];
1529    ["Offset of field: kvm_cpuid_entry2::eax"]
1530        [::std::mem::offset_of!(kvm_cpuid_entry2, eax) - 12usize];
1531    ["Offset of field: kvm_cpuid_entry2::ebx"]
1532        [::std::mem::offset_of!(kvm_cpuid_entry2, ebx) - 16usize];
1533    ["Offset of field: kvm_cpuid_entry2::ecx"]
1534        [::std::mem::offset_of!(kvm_cpuid_entry2, ecx) - 20usize];
1535    ["Offset of field: kvm_cpuid_entry2::edx"]
1536        [::std::mem::offset_of!(kvm_cpuid_entry2, edx) - 24usize];
1537    ["Offset of field: kvm_cpuid_entry2::padding"]
1538        [::std::mem::offset_of!(kvm_cpuid_entry2, padding) - 28usize];
1539};
1540#[repr(C)]
1541#[derive(Debug, Default)]
1542#[cfg_attr(
1543    feature = "serde",
1544    derive(zerocopy::AsBytes, zerocopy::FromBytes, zerocopy::FromZeroes)
1545)]
1546pub struct kvm_cpuid2 {
1547    pub nent: __u32,
1548    pub padding: __u32,
1549    pub entries: __IncompleteArrayField<kvm_cpuid_entry2>,
1550}
1551#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1552const _: () = {
1553    ["Size of kvm_cpuid2"][::std::mem::size_of::<kvm_cpuid2>() - 8usize];
1554    ["Alignment of kvm_cpuid2"][::std::mem::align_of::<kvm_cpuid2>() - 4usize];
1555    ["Offset of field: kvm_cpuid2::nent"][::std::mem::offset_of!(kvm_cpuid2, nent) - 0usize];
1556    ["Offset of field: kvm_cpuid2::padding"][::std::mem::offset_of!(kvm_cpuid2, padding) - 4usize];
1557    ["Offset of field: kvm_cpuid2::entries"][::std::mem::offset_of!(kvm_cpuid2, entries) - 8usize];
1558};
1559#[repr(C)]
1560#[derive(Debug, Default, Copy, Clone, PartialEq)]
1561#[cfg_attr(
1562    feature = "serde",
1563    derive(zerocopy::AsBytes, zerocopy::FromBytes, zerocopy::FromZeroes)
1564)]
1565pub struct kvm_pit_channel_state {
1566    pub count: __u32,
1567    pub latched_count: __u16,
1568    pub count_latched: __u8,
1569    pub status_latched: __u8,
1570    pub status: __u8,
1571    pub read_state: __u8,
1572    pub write_state: __u8,
1573    pub write_latch: __u8,
1574    pub rw_mode: __u8,
1575    pub mode: __u8,
1576    pub bcd: __u8,
1577    pub gate: __u8,
1578    pub count_load_time: __s64,
1579}
1580#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1581const _: () = {
1582    ["Size of kvm_pit_channel_state"][::std::mem::size_of::<kvm_pit_channel_state>() - 24usize];
1583    ["Alignment of kvm_pit_channel_state"]
1584        [::std::mem::align_of::<kvm_pit_channel_state>() - 8usize];
1585    ["Offset of field: kvm_pit_channel_state::count"]
1586        [::std::mem::offset_of!(kvm_pit_channel_state, count) - 0usize];
1587    ["Offset of field: kvm_pit_channel_state::latched_count"]
1588        [::std::mem::offset_of!(kvm_pit_channel_state, latched_count) - 4usize];
1589    ["Offset of field: kvm_pit_channel_state::count_latched"]
1590        [::std::mem::offset_of!(kvm_pit_channel_state, count_latched) - 6usize];
1591    ["Offset of field: kvm_pit_channel_state::status_latched"]
1592        [::std::mem::offset_of!(kvm_pit_channel_state, status_latched) - 7usize];
1593    ["Offset of field: kvm_pit_channel_state::status"]
1594        [::std::mem::offset_of!(kvm_pit_channel_state, status) - 8usize];
1595    ["Offset of field: kvm_pit_channel_state::read_state"]
1596        [::std::mem::offset_of!(kvm_pit_channel_state, read_state) - 9usize];
1597    ["Offset of field: kvm_pit_channel_state::write_state"]
1598        [::std::mem::offset_of!(kvm_pit_channel_state, write_state) - 10usize];
1599    ["Offset of field: kvm_pit_channel_state::write_latch"]
1600        [::std::mem::offset_of!(kvm_pit_channel_state, write_latch) - 11usize];
1601    ["Offset of field: kvm_pit_channel_state::rw_mode"]
1602        [::std::mem::offset_of!(kvm_pit_channel_state, rw_mode) - 12usize];
1603    ["Offset of field: kvm_pit_channel_state::mode"]
1604        [::std::mem::offset_of!(kvm_pit_channel_state, mode) - 13usize];
1605    ["Offset of field: kvm_pit_channel_state::bcd"]
1606        [::std::mem::offset_of!(kvm_pit_channel_state, bcd) - 14usize];
1607    ["Offset of field: kvm_pit_channel_state::gate"]
1608        [::std::mem::offset_of!(kvm_pit_channel_state, gate) - 15usize];
1609    ["Offset of field: kvm_pit_channel_state::count_load_time"]
1610        [::std::mem::offset_of!(kvm_pit_channel_state, count_load_time) - 16usize];
1611};
1612#[repr(C)]
1613#[derive(Debug, Default, Copy, Clone, PartialEq)]
1614pub struct kvm_debug_exit_arch {
1615    pub exception: __u32,
1616    pub pad: __u32,
1617    pub pc: __u64,
1618    pub dr6: __u64,
1619    pub dr7: __u64,
1620}
1621#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1622const _: () = {
1623    ["Size of kvm_debug_exit_arch"][::std::mem::size_of::<kvm_debug_exit_arch>() - 32usize];
1624    ["Alignment of kvm_debug_exit_arch"][::std::mem::align_of::<kvm_debug_exit_arch>() - 8usize];
1625    ["Offset of field: kvm_debug_exit_arch::exception"]
1626        [::std::mem::offset_of!(kvm_debug_exit_arch, exception) - 0usize];
1627    ["Offset of field: kvm_debug_exit_arch::pad"]
1628        [::std::mem::offset_of!(kvm_debug_exit_arch, pad) - 4usize];
1629    ["Offset of field: kvm_debug_exit_arch::pc"]
1630        [::std::mem::offset_of!(kvm_debug_exit_arch, pc) - 8usize];
1631    ["Offset of field: kvm_debug_exit_arch::dr6"]
1632        [::std::mem::offset_of!(kvm_debug_exit_arch, dr6) - 16usize];
1633    ["Offset of field: kvm_debug_exit_arch::dr7"]
1634        [::std::mem::offset_of!(kvm_debug_exit_arch, dr7) - 24usize];
1635};
1636#[repr(C)]
1637#[derive(Debug, Default, Copy, Clone, PartialEq)]
1638pub struct kvm_guest_debug_arch {
1639    pub debugreg: [__u64; 8usize],
1640}
1641#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1642const _: () = {
1643    ["Size of kvm_guest_debug_arch"][::std::mem::size_of::<kvm_guest_debug_arch>() - 64usize];
1644    ["Alignment of kvm_guest_debug_arch"][::std::mem::align_of::<kvm_guest_debug_arch>() - 8usize];
1645    ["Offset of field: kvm_guest_debug_arch::debugreg"]
1646        [::std::mem::offset_of!(kvm_guest_debug_arch, debugreg) - 0usize];
1647};
1648#[repr(C)]
1649#[derive(Debug, Default, Copy, Clone, PartialEq)]
1650pub struct kvm_pit_state {
1651    pub channels: [kvm_pit_channel_state; 3usize],
1652}
1653#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1654const _: () = {
1655    ["Size of kvm_pit_state"][::std::mem::size_of::<kvm_pit_state>() - 72usize];
1656    ["Alignment of kvm_pit_state"][::std::mem::align_of::<kvm_pit_state>() - 8usize];
1657    ["Offset of field: kvm_pit_state::channels"]
1658        [::std::mem::offset_of!(kvm_pit_state, channels) - 0usize];
1659};
1660#[repr(C)]
1661#[derive(Debug, Default, Copy, Clone, PartialEq)]
1662#[cfg_attr(
1663    feature = "serde",
1664    derive(zerocopy::AsBytes, zerocopy::FromBytes, zerocopy::FromZeroes)
1665)]
1666pub struct kvm_pit_state2 {
1667    pub channels: [kvm_pit_channel_state; 3usize],
1668    pub flags: __u32,
1669    pub reserved: [__u32; 9usize],
1670}
1671#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1672const _: () = {
1673    ["Size of kvm_pit_state2"][::std::mem::size_of::<kvm_pit_state2>() - 112usize];
1674    ["Alignment of kvm_pit_state2"][::std::mem::align_of::<kvm_pit_state2>() - 8usize];
1675    ["Offset of field: kvm_pit_state2::channels"]
1676        [::std::mem::offset_of!(kvm_pit_state2, channels) - 0usize];
1677    ["Offset of field: kvm_pit_state2::flags"]
1678        [::std::mem::offset_of!(kvm_pit_state2, flags) - 72usize];
1679    ["Offset of field: kvm_pit_state2::reserved"]
1680        [::std::mem::offset_of!(kvm_pit_state2, reserved) - 76usize];
1681};
1682#[repr(C)]
1683#[derive(Debug, Default, Copy, Clone, PartialEq)]
1684pub struct kvm_reinject_control {
1685    pub pit_reinject: __u8,
1686    pub reserved: [__u8; 31usize],
1687}
1688#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1689const _: () = {
1690    ["Size of kvm_reinject_control"][::std::mem::size_of::<kvm_reinject_control>() - 32usize];
1691    ["Alignment of kvm_reinject_control"][::std::mem::align_of::<kvm_reinject_control>() - 1usize];
1692    ["Offset of field: kvm_reinject_control::pit_reinject"]
1693        [::std::mem::offset_of!(kvm_reinject_control, pit_reinject) - 0usize];
1694    ["Offset of field: kvm_reinject_control::reserved"]
1695        [::std::mem::offset_of!(kvm_reinject_control, reserved) - 1usize];
1696};
1697#[repr(C)]
1698#[derive(Debug, Default, Copy, Clone, PartialEq)]
1699#[cfg_attr(
1700    feature = "serde",
1701    derive(zerocopy::AsBytes, zerocopy::FromBytes, zerocopy::FromZeroes)
1702)]
1703pub struct kvm_vcpu_events {
1704    pub exception: kvm_vcpu_events__bindgen_ty_1,
1705    pub interrupt: kvm_vcpu_events__bindgen_ty_2,
1706    pub nmi: kvm_vcpu_events__bindgen_ty_3,
1707    pub sipi_vector: __u32,
1708    pub flags: __u32,
1709    pub smi: kvm_vcpu_events__bindgen_ty_4,
1710    pub triple_fault: kvm_vcpu_events__bindgen_ty_5,
1711    pub reserved: [__u8; 26usize],
1712    pub exception_has_payload: __u8,
1713    pub exception_payload: __u64,
1714}
1715#[repr(C)]
1716#[derive(Debug, Default, Copy, Clone, PartialEq)]
1717#[cfg_attr(
1718    feature = "serde",
1719    derive(zerocopy::AsBytes, zerocopy::FromBytes, zerocopy::FromZeroes)
1720)]
1721pub struct kvm_vcpu_events__bindgen_ty_1 {
1722    pub injected: __u8,
1723    pub nr: __u8,
1724    pub has_error_code: __u8,
1725    pub pending: __u8,
1726    pub error_code: __u32,
1727}
1728#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1729const _: () = {
1730    ["Size of kvm_vcpu_events__bindgen_ty_1"]
1731        [::std::mem::size_of::<kvm_vcpu_events__bindgen_ty_1>() - 8usize];
1732    ["Alignment of kvm_vcpu_events__bindgen_ty_1"]
1733        [::std::mem::align_of::<kvm_vcpu_events__bindgen_ty_1>() - 4usize];
1734    ["Offset of field: kvm_vcpu_events__bindgen_ty_1::injected"]
1735        [::std::mem::offset_of!(kvm_vcpu_events__bindgen_ty_1, injected) - 0usize];
1736    ["Offset of field: kvm_vcpu_events__bindgen_ty_1::nr"]
1737        [::std::mem::offset_of!(kvm_vcpu_events__bindgen_ty_1, nr) - 1usize];
1738    ["Offset of field: kvm_vcpu_events__bindgen_ty_1::has_error_code"]
1739        [::std::mem::offset_of!(kvm_vcpu_events__bindgen_ty_1, has_error_code) - 2usize];
1740    ["Offset of field: kvm_vcpu_events__bindgen_ty_1::pending"]
1741        [::std::mem::offset_of!(kvm_vcpu_events__bindgen_ty_1, pending) - 3usize];
1742    ["Offset of field: kvm_vcpu_events__bindgen_ty_1::error_code"]
1743        [::std::mem::offset_of!(kvm_vcpu_events__bindgen_ty_1, error_code) - 4usize];
1744};
1745#[repr(C)]
1746#[derive(Debug, Default, Copy, Clone, PartialEq)]
1747#[cfg_attr(
1748    feature = "serde",
1749    derive(zerocopy::AsBytes, zerocopy::FromBytes, zerocopy::FromZeroes)
1750)]
1751pub struct kvm_vcpu_events__bindgen_ty_2 {
1752    pub injected: __u8,
1753    pub nr: __u8,
1754    pub soft: __u8,
1755    pub shadow: __u8,
1756}
1757#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1758const _: () = {
1759    ["Size of kvm_vcpu_events__bindgen_ty_2"]
1760        [::std::mem::size_of::<kvm_vcpu_events__bindgen_ty_2>() - 4usize];
1761    ["Alignment of kvm_vcpu_events__bindgen_ty_2"]
1762        [::std::mem::align_of::<kvm_vcpu_events__bindgen_ty_2>() - 1usize];
1763    ["Offset of field: kvm_vcpu_events__bindgen_ty_2::injected"]
1764        [::std::mem::offset_of!(kvm_vcpu_events__bindgen_ty_2, injected) - 0usize];
1765    ["Offset of field: kvm_vcpu_events__bindgen_ty_2::nr"]
1766        [::std::mem::offset_of!(kvm_vcpu_events__bindgen_ty_2, nr) - 1usize];
1767    ["Offset of field: kvm_vcpu_events__bindgen_ty_2::soft"]
1768        [::std::mem::offset_of!(kvm_vcpu_events__bindgen_ty_2, soft) - 2usize];
1769    ["Offset of field: kvm_vcpu_events__bindgen_ty_2::shadow"]
1770        [::std::mem::offset_of!(kvm_vcpu_events__bindgen_ty_2, shadow) - 3usize];
1771};
1772#[repr(C)]
1773#[derive(Debug, Default, Copy, Clone, PartialEq)]
1774#[cfg_attr(
1775    feature = "serde",
1776    derive(zerocopy::AsBytes, zerocopy::FromBytes, zerocopy::FromZeroes)
1777)]
1778pub struct kvm_vcpu_events__bindgen_ty_3 {
1779    pub injected: __u8,
1780    pub pending: __u8,
1781    pub masked: __u8,
1782    pub pad: __u8,
1783}
1784#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1785const _: () = {
1786    ["Size of kvm_vcpu_events__bindgen_ty_3"]
1787        [::std::mem::size_of::<kvm_vcpu_events__bindgen_ty_3>() - 4usize];
1788    ["Alignment of kvm_vcpu_events__bindgen_ty_3"]
1789        [::std::mem::align_of::<kvm_vcpu_events__bindgen_ty_3>() - 1usize];
1790    ["Offset of field: kvm_vcpu_events__bindgen_ty_3::injected"]
1791        [::std::mem::offset_of!(kvm_vcpu_events__bindgen_ty_3, injected) - 0usize];
1792    ["Offset of field: kvm_vcpu_events__bindgen_ty_3::pending"]
1793        [::std::mem::offset_of!(kvm_vcpu_events__bindgen_ty_3, pending) - 1usize];
1794    ["Offset of field: kvm_vcpu_events__bindgen_ty_3::masked"]
1795        [::std::mem::offset_of!(kvm_vcpu_events__bindgen_ty_3, masked) - 2usize];
1796    ["Offset of field: kvm_vcpu_events__bindgen_ty_3::pad"]
1797        [::std::mem::offset_of!(kvm_vcpu_events__bindgen_ty_3, pad) - 3usize];
1798};
1799#[repr(C)]
1800#[derive(Debug, Default, Copy, Clone, PartialEq)]
1801#[cfg_attr(
1802    feature = "serde",
1803    derive(zerocopy::AsBytes, zerocopy::FromBytes, zerocopy::FromZeroes)
1804)]
1805pub struct kvm_vcpu_events__bindgen_ty_4 {
1806    pub smm: __u8,
1807    pub pending: __u8,
1808    pub smm_inside_nmi: __u8,
1809    pub latched_init: __u8,
1810}
1811#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1812const _: () = {
1813    ["Size of kvm_vcpu_events__bindgen_ty_4"]
1814        [::std::mem::size_of::<kvm_vcpu_events__bindgen_ty_4>() - 4usize];
1815    ["Alignment of kvm_vcpu_events__bindgen_ty_4"]
1816        [::std::mem::align_of::<kvm_vcpu_events__bindgen_ty_4>() - 1usize];
1817    ["Offset of field: kvm_vcpu_events__bindgen_ty_4::smm"]
1818        [::std::mem::offset_of!(kvm_vcpu_events__bindgen_ty_4, smm) - 0usize];
1819    ["Offset of field: kvm_vcpu_events__bindgen_ty_4::pending"]
1820        [::std::mem::offset_of!(kvm_vcpu_events__bindgen_ty_4, pending) - 1usize];
1821    ["Offset of field: kvm_vcpu_events__bindgen_ty_4::smm_inside_nmi"]
1822        [::std::mem::offset_of!(kvm_vcpu_events__bindgen_ty_4, smm_inside_nmi) - 2usize];
1823    ["Offset of field: kvm_vcpu_events__bindgen_ty_4::latched_init"]
1824        [::std::mem::offset_of!(kvm_vcpu_events__bindgen_ty_4, latched_init) - 3usize];
1825};
1826#[repr(C)]
1827#[derive(Debug, Default, Copy, Clone, PartialEq)]
1828#[cfg_attr(
1829    feature = "serde",
1830    derive(zerocopy::AsBytes, zerocopy::FromBytes, zerocopy::FromZeroes)
1831)]
1832pub struct kvm_vcpu_events__bindgen_ty_5 {
1833    pub pending: __u8,
1834}
1835#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1836const _: () = {
1837    ["Size of kvm_vcpu_events__bindgen_ty_5"]
1838        [::std::mem::size_of::<kvm_vcpu_events__bindgen_ty_5>() - 1usize];
1839    ["Alignment of kvm_vcpu_events__bindgen_ty_5"]
1840        [::std::mem::align_of::<kvm_vcpu_events__bindgen_ty_5>() - 1usize];
1841    ["Offset of field: kvm_vcpu_events__bindgen_ty_5::pending"]
1842        [::std::mem::offset_of!(kvm_vcpu_events__bindgen_ty_5, pending) - 0usize];
1843};
1844#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1845const _: () = {
1846    ["Size of kvm_vcpu_events"][::std::mem::size_of::<kvm_vcpu_events>() - 64usize];
1847    ["Alignment of kvm_vcpu_events"][::std::mem::align_of::<kvm_vcpu_events>() - 8usize];
1848    ["Offset of field: kvm_vcpu_events::exception"]
1849        [::std::mem::offset_of!(kvm_vcpu_events, exception) - 0usize];
1850    ["Offset of field: kvm_vcpu_events::interrupt"]
1851        [::std::mem::offset_of!(kvm_vcpu_events, interrupt) - 8usize];
1852    ["Offset of field: kvm_vcpu_events::nmi"]
1853        [::std::mem::offset_of!(kvm_vcpu_events, nmi) - 12usize];
1854    ["Offset of field: kvm_vcpu_events::sipi_vector"]
1855        [::std::mem::offset_of!(kvm_vcpu_events, sipi_vector) - 16usize];
1856    ["Offset of field: kvm_vcpu_events::flags"]
1857        [::std::mem::offset_of!(kvm_vcpu_events, flags) - 20usize];
1858    ["Offset of field: kvm_vcpu_events::smi"]
1859        [::std::mem::offset_of!(kvm_vcpu_events, smi) - 24usize];
1860    ["Offset of field: kvm_vcpu_events::triple_fault"]
1861        [::std::mem::offset_of!(kvm_vcpu_events, triple_fault) - 28usize];
1862    ["Offset of field: kvm_vcpu_events::reserved"]
1863        [::std::mem::offset_of!(kvm_vcpu_events, reserved) - 29usize];
1864    ["Offset of field: kvm_vcpu_events::exception_has_payload"]
1865        [::std::mem::offset_of!(kvm_vcpu_events, exception_has_payload) - 55usize];
1866    ["Offset of field: kvm_vcpu_events::exception_payload"]
1867        [::std::mem::offset_of!(kvm_vcpu_events, exception_payload) - 56usize];
1868};
1869#[repr(C)]
1870#[derive(Debug, Default, Copy, Clone, PartialEq)]
1871#[cfg_attr(
1872    feature = "serde",
1873    derive(zerocopy::AsBytes, zerocopy::FromBytes, zerocopy::FromZeroes)
1874)]
1875pub struct kvm_debugregs {
1876    pub db: [__u64; 4usize],
1877    pub dr6: __u64,
1878    pub dr7: __u64,
1879    pub flags: __u64,
1880    pub reserved: [__u64; 9usize],
1881}
1882#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1883const _: () = {
1884    ["Size of kvm_debugregs"][::std::mem::size_of::<kvm_debugregs>() - 128usize];
1885    ["Alignment of kvm_debugregs"][::std::mem::align_of::<kvm_debugregs>() - 8usize];
1886    ["Offset of field: kvm_debugregs::db"][::std::mem::offset_of!(kvm_debugregs, db) - 0usize];
1887    ["Offset of field: kvm_debugregs::dr6"][::std::mem::offset_of!(kvm_debugregs, dr6) - 32usize];
1888    ["Offset of field: kvm_debugregs::dr7"][::std::mem::offset_of!(kvm_debugregs, dr7) - 40usize];
1889    ["Offset of field: kvm_debugregs::flags"]
1890        [::std::mem::offset_of!(kvm_debugregs, flags) - 48usize];
1891    ["Offset of field: kvm_debugregs::reserved"]
1892        [::std::mem::offset_of!(kvm_debugregs, reserved) - 56usize];
1893};
1894#[repr(C)]
1895#[derive(Debug)]
1896#[cfg_attr(
1897    feature = "serde",
1898    derive(zerocopy::AsBytes, zerocopy::FromBytes, zerocopy::FromZeroes)
1899)]
1900pub struct kvm_xsave {
1901    pub region: [__u32; 1024usize],
1902    pub extra: __IncompleteArrayField<__u32>,
1903}
1904#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1905const _: () = {
1906    ["Size of kvm_xsave"][::std::mem::size_of::<kvm_xsave>() - 4096usize];
1907    ["Alignment of kvm_xsave"][::std::mem::align_of::<kvm_xsave>() - 4usize];
1908    ["Offset of field: kvm_xsave::region"][::std::mem::offset_of!(kvm_xsave, region) - 0usize];
1909    ["Offset of field: kvm_xsave::extra"][::std::mem::offset_of!(kvm_xsave, extra) - 4096usize];
1910};
1911impl Default for kvm_xsave {
1912    fn default() -> Self {
1913        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1914        unsafe {
1915            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1916            s.assume_init()
1917        }
1918    }
1919}
1920#[repr(C)]
1921#[derive(Debug, Default, Copy, Clone, PartialEq)]
1922#[cfg_attr(
1923    feature = "serde",
1924    derive(zerocopy::AsBytes, zerocopy::FromBytes, zerocopy::FromZeroes)
1925)]
1926pub struct kvm_xcr {
1927    pub xcr: __u32,
1928    pub reserved: __u32,
1929    pub value: __u64,
1930}
1931#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1932const _: () = {
1933    ["Size of kvm_xcr"][::std::mem::size_of::<kvm_xcr>() - 16usize];
1934    ["Alignment of kvm_xcr"][::std::mem::align_of::<kvm_xcr>() - 8usize];
1935    ["Offset of field: kvm_xcr::xcr"][::std::mem::offset_of!(kvm_xcr, xcr) - 0usize];
1936    ["Offset of field: kvm_xcr::reserved"][::std::mem::offset_of!(kvm_xcr, reserved) - 4usize];
1937    ["Offset of field: kvm_xcr::value"][::std::mem::offset_of!(kvm_xcr, value) - 8usize];
1938};
1939#[repr(C)]
1940#[derive(Debug, Default, Copy, Clone, PartialEq)]
1941#[cfg_attr(
1942    feature = "serde",
1943    derive(zerocopy::AsBytes, zerocopy::FromBytes, zerocopy::FromZeroes)
1944)]
1945pub struct kvm_xcrs {
1946    pub nr_xcrs: __u32,
1947    pub flags: __u32,
1948    pub xcrs: [kvm_xcr; 16usize],
1949    pub padding: [__u64; 16usize],
1950}
1951#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1952const _: () = {
1953    ["Size of kvm_xcrs"][::std::mem::size_of::<kvm_xcrs>() - 392usize];
1954    ["Alignment of kvm_xcrs"][::std::mem::align_of::<kvm_xcrs>() - 8usize];
1955    ["Offset of field: kvm_xcrs::nr_xcrs"][::std::mem::offset_of!(kvm_xcrs, nr_xcrs) - 0usize];
1956    ["Offset of field: kvm_xcrs::flags"][::std::mem::offset_of!(kvm_xcrs, flags) - 4usize];
1957    ["Offset of field: kvm_xcrs::xcrs"][::std::mem::offset_of!(kvm_xcrs, xcrs) - 8usize];
1958    ["Offset of field: kvm_xcrs::padding"][::std::mem::offset_of!(kvm_xcrs, padding) - 264usize];
1959};
1960#[repr(C)]
1961#[derive(Debug, Default, Copy, Clone, PartialEq)]
1962pub struct kvm_sync_regs {
1963    pub regs: kvm_regs,
1964    pub sregs: kvm_sregs,
1965    pub events: kvm_vcpu_events,
1966}
1967#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1968const _: () = {
1969    ["Size of kvm_sync_regs"][::std::mem::size_of::<kvm_sync_regs>() - 520usize];
1970    ["Alignment of kvm_sync_regs"][::std::mem::align_of::<kvm_sync_regs>() - 8usize];
1971    ["Offset of field: kvm_sync_regs::regs"][::std::mem::offset_of!(kvm_sync_regs, regs) - 0usize];
1972    ["Offset of field: kvm_sync_regs::sregs"]
1973        [::std::mem::offset_of!(kvm_sync_regs, sregs) - 144usize];
1974    ["Offset of field: kvm_sync_regs::events"]
1975        [::std::mem::offset_of!(kvm_sync_regs, events) - 456usize];
1976};
1977#[repr(C)]
1978#[derive(Debug, Copy, Clone, PartialEq)]
1979pub struct kvm_vmx_nested_state_data {
1980    pub vmcs12: [__u8; 4096usize],
1981    pub shadow_vmcs12: [__u8; 4096usize],
1982}
1983#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1984const _: () = {
1985    ["Size of kvm_vmx_nested_state_data"]
1986        [::std::mem::size_of::<kvm_vmx_nested_state_data>() - 8192usize];
1987    ["Alignment of kvm_vmx_nested_state_data"]
1988        [::std::mem::align_of::<kvm_vmx_nested_state_data>() - 1usize];
1989    ["Offset of field: kvm_vmx_nested_state_data::vmcs12"]
1990        [::std::mem::offset_of!(kvm_vmx_nested_state_data, vmcs12) - 0usize];
1991    ["Offset of field: kvm_vmx_nested_state_data::shadow_vmcs12"]
1992        [::std::mem::offset_of!(kvm_vmx_nested_state_data, shadow_vmcs12) - 4096usize];
1993};
1994impl Default for kvm_vmx_nested_state_data {
1995    fn default() -> Self {
1996        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1997        unsafe {
1998            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1999            s.assume_init()
2000        }
2001    }
2002}
2003#[repr(C)]
2004#[derive(Debug, Default, Copy, Clone, PartialEq)]
2005pub struct kvm_vmx_nested_state_hdr {
2006    pub vmxon_pa: __u64,
2007    pub vmcs12_pa: __u64,
2008    pub smm: kvm_vmx_nested_state_hdr__bindgen_ty_1,
2009    pub pad: __u16,
2010    pub flags: __u32,
2011    pub preemption_timer_deadline: __u64,
2012}
2013#[repr(C)]
2014#[derive(Debug, Default, Copy, Clone, PartialEq)]
2015pub struct kvm_vmx_nested_state_hdr__bindgen_ty_1 {
2016    pub flags: __u16,
2017}
2018#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2019const _: () = {
2020    ["Size of kvm_vmx_nested_state_hdr__bindgen_ty_1"]
2021        [::std::mem::size_of::<kvm_vmx_nested_state_hdr__bindgen_ty_1>() - 2usize];
2022    ["Alignment of kvm_vmx_nested_state_hdr__bindgen_ty_1"]
2023        [::std::mem::align_of::<kvm_vmx_nested_state_hdr__bindgen_ty_1>() - 2usize];
2024    ["Offset of field: kvm_vmx_nested_state_hdr__bindgen_ty_1::flags"]
2025        [::std::mem::offset_of!(kvm_vmx_nested_state_hdr__bindgen_ty_1, flags) - 0usize];
2026};
2027#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2028const _: () = {
2029    ["Size of kvm_vmx_nested_state_hdr"]
2030        [::std::mem::size_of::<kvm_vmx_nested_state_hdr>() - 32usize];
2031    ["Alignment of kvm_vmx_nested_state_hdr"]
2032        [::std::mem::align_of::<kvm_vmx_nested_state_hdr>() - 8usize];
2033    ["Offset of field: kvm_vmx_nested_state_hdr::vmxon_pa"]
2034        [::std::mem::offset_of!(kvm_vmx_nested_state_hdr, vmxon_pa) - 0usize];
2035    ["Offset of field: kvm_vmx_nested_state_hdr::vmcs12_pa"]
2036        [::std::mem::offset_of!(kvm_vmx_nested_state_hdr, vmcs12_pa) - 8usize];
2037    ["Offset of field: kvm_vmx_nested_state_hdr::smm"]
2038        [::std::mem::offset_of!(kvm_vmx_nested_state_hdr, smm) - 16usize];
2039    ["Offset of field: kvm_vmx_nested_state_hdr::pad"]
2040        [::std::mem::offset_of!(kvm_vmx_nested_state_hdr, pad) - 18usize];
2041    ["Offset of field: kvm_vmx_nested_state_hdr::flags"]
2042        [::std::mem::offset_of!(kvm_vmx_nested_state_hdr, flags) - 20usize];
2043    ["Offset of field: kvm_vmx_nested_state_hdr::preemption_timer_deadline"]
2044        [::std::mem::offset_of!(kvm_vmx_nested_state_hdr, preemption_timer_deadline) - 24usize];
2045};
2046#[repr(C)]
2047#[derive(Debug, Copy, Clone, PartialEq)]
2048pub struct kvm_svm_nested_state_data {
2049    pub vmcb12: [__u8; 4096usize],
2050}
2051#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2052const _: () = {
2053    ["Size of kvm_svm_nested_state_data"]
2054        [::std::mem::size_of::<kvm_svm_nested_state_data>() - 4096usize];
2055    ["Alignment of kvm_svm_nested_state_data"]
2056        [::std::mem::align_of::<kvm_svm_nested_state_data>() - 1usize];
2057    ["Offset of field: kvm_svm_nested_state_data::vmcb12"]
2058        [::std::mem::offset_of!(kvm_svm_nested_state_data, vmcb12) - 0usize];
2059};
2060impl Default for kvm_svm_nested_state_data {
2061    fn default() -> Self {
2062        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2063        unsafe {
2064            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2065            s.assume_init()
2066        }
2067    }
2068}
2069#[repr(C)]
2070#[derive(Debug, Default, Copy, Clone, PartialEq)]
2071pub struct kvm_svm_nested_state_hdr {
2072    pub vmcb_pa: __u64,
2073}
2074#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2075const _: () = {
2076    ["Size of kvm_svm_nested_state_hdr"]
2077        [::std::mem::size_of::<kvm_svm_nested_state_hdr>() - 8usize];
2078    ["Alignment of kvm_svm_nested_state_hdr"]
2079        [::std::mem::align_of::<kvm_svm_nested_state_hdr>() - 8usize];
2080    ["Offset of field: kvm_svm_nested_state_hdr::vmcb_pa"]
2081        [::std::mem::offset_of!(kvm_svm_nested_state_hdr, vmcb_pa) - 0usize];
2082};
2083#[repr(C)]
2084pub struct kvm_nested_state {
2085    pub flags: __u16,
2086    pub format: __u16,
2087    pub size: __u32,
2088    pub hdr: kvm_nested_state__bindgen_ty_1,
2089    pub data: kvm_nested_state__bindgen_ty_2,
2090}
2091#[repr(C)]
2092#[derive(Copy, Clone)]
2093pub union kvm_nested_state__bindgen_ty_1 {
2094    pub vmx: kvm_vmx_nested_state_hdr,
2095    pub svm: kvm_svm_nested_state_hdr,
2096    pub pad: [__u8; 120usize],
2097}
2098#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2099const _: () = {
2100    ["Size of kvm_nested_state__bindgen_ty_1"]
2101        [::std::mem::size_of::<kvm_nested_state__bindgen_ty_1>() - 120usize];
2102    ["Alignment of kvm_nested_state__bindgen_ty_1"]
2103        [::std::mem::align_of::<kvm_nested_state__bindgen_ty_1>() - 8usize];
2104    ["Offset of field: kvm_nested_state__bindgen_ty_1::vmx"]
2105        [::std::mem::offset_of!(kvm_nested_state__bindgen_ty_1, vmx) - 0usize];
2106    ["Offset of field: kvm_nested_state__bindgen_ty_1::svm"]
2107        [::std::mem::offset_of!(kvm_nested_state__bindgen_ty_1, svm) - 0usize];
2108    ["Offset of field: kvm_nested_state__bindgen_ty_1::pad"]
2109        [::std::mem::offset_of!(kvm_nested_state__bindgen_ty_1, pad) - 0usize];
2110};
2111impl Default for kvm_nested_state__bindgen_ty_1 {
2112    fn default() -> Self {
2113        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2114        unsafe {
2115            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2116            s.assume_init()
2117        }
2118    }
2119}
2120impl ::std::fmt::Debug for kvm_nested_state__bindgen_ty_1 {
2121    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2122        write!(f, "kvm_nested_state__bindgen_ty_1 {{ union }}")
2123    }
2124}
2125#[repr(C)]
2126pub struct kvm_nested_state__bindgen_ty_2 {
2127    pub __bindgen_anon_1: __BindgenUnionField<kvm_nested_state__bindgen_ty_2__bindgen_ty_1>,
2128    pub __bindgen_anon_2: __BindgenUnionField<kvm_nested_state__bindgen_ty_2__bindgen_ty_2>,
2129    pub bindgen_union_field: [u8; 0usize],
2130}
2131#[repr(C)]
2132#[derive(Debug)]
2133pub struct kvm_nested_state__bindgen_ty_2__bindgen_ty_1 {
2134    pub __empty_vmx: kvm_nested_state__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1,
2135    pub vmx: __IncompleteArrayField<kvm_vmx_nested_state_data>,
2136}
2137#[repr(C)]
2138#[derive(Debug, Default, Copy, Clone, PartialEq)]
2139pub struct kvm_nested_state__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1 {}
2140#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2141const _: () = {
2142    ["Size of kvm_nested_state__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1"][::std::mem::size_of::<
2143        kvm_nested_state__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1,
2144    >() - 0usize];
2145    ["Alignment of kvm_nested_state__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1"][::std::mem::align_of::<
2146        kvm_nested_state__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1,
2147    >() - 1usize];
2148};
2149#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2150const _: () = {
2151    ["Size of kvm_nested_state__bindgen_ty_2__bindgen_ty_1"]
2152        [::std::mem::size_of::<kvm_nested_state__bindgen_ty_2__bindgen_ty_1>() - 0usize];
2153    ["Alignment of kvm_nested_state__bindgen_ty_2__bindgen_ty_1"]
2154        [::std::mem::align_of::<kvm_nested_state__bindgen_ty_2__bindgen_ty_1>() - 1usize];
2155    ["Offset of field: kvm_nested_state__bindgen_ty_2__bindgen_ty_1::__empty_vmx"][::std::mem::offset_of!(
2156        kvm_nested_state__bindgen_ty_2__bindgen_ty_1,
2157        __empty_vmx
2158    ) - 0usize];
2159    ["Offset of field: kvm_nested_state__bindgen_ty_2__bindgen_ty_1::vmx"]
2160        [::std::mem::offset_of!(kvm_nested_state__bindgen_ty_2__bindgen_ty_1, vmx) - 0usize];
2161};
2162impl Default for kvm_nested_state__bindgen_ty_2__bindgen_ty_1 {
2163    fn default() -> Self {
2164        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2165        unsafe {
2166            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2167            s.assume_init()
2168        }
2169    }
2170}
2171#[repr(C)]
2172#[derive(Debug)]
2173pub struct kvm_nested_state__bindgen_ty_2__bindgen_ty_2 {
2174    pub __empty_svm: kvm_nested_state__bindgen_ty_2__bindgen_ty_2__bindgen_ty_1,
2175    pub svm: __IncompleteArrayField<kvm_svm_nested_state_data>,
2176}
2177#[repr(C)]
2178#[derive(Debug, Default, Copy, Clone, PartialEq)]
2179pub struct kvm_nested_state__bindgen_ty_2__bindgen_ty_2__bindgen_ty_1 {}
2180#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2181const _: () = {
2182    ["Size of kvm_nested_state__bindgen_ty_2__bindgen_ty_2__bindgen_ty_1"][::std::mem::size_of::<
2183        kvm_nested_state__bindgen_ty_2__bindgen_ty_2__bindgen_ty_1,
2184    >() - 0usize];
2185    ["Alignment of kvm_nested_state__bindgen_ty_2__bindgen_ty_2__bindgen_ty_1"][::std::mem::align_of::<
2186        kvm_nested_state__bindgen_ty_2__bindgen_ty_2__bindgen_ty_1,
2187    >() - 1usize];
2188};
2189#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2190const _: () = {
2191    ["Size of kvm_nested_state__bindgen_ty_2__bindgen_ty_2"]
2192        [::std::mem::size_of::<kvm_nested_state__bindgen_ty_2__bindgen_ty_2>() - 0usize];
2193    ["Alignment of kvm_nested_state__bindgen_ty_2__bindgen_ty_2"]
2194        [::std::mem::align_of::<kvm_nested_state__bindgen_ty_2__bindgen_ty_2>() - 1usize];
2195    ["Offset of field: kvm_nested_state__bindgen_ty_2__bindgen_ty_2::__empty_svm"][::std::mem::offset_of!(
2196        kvm_nested_state__bindgen_ty_2__bindgen_ty_2,
2197        __empty_svm
2198    ) - 0usize];
2199    ["Offset of field: kvm_nested_state__bindgen_ty_2__bindgen_ty_2::svm"]
2200        [::std::mem::offset_of!(kvm_nested_state__bindgen_ty_2__bindgen_ty_2, svm) - 0usize];
2201};
2202impl Default for kvm_nested_state__bindgen_ty_2__bindgen_ty_2 {
2203    fn default() -> Self {
2204        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2205        unsafe {
2206            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2207            s.assume_init()
2208        }
2209    }
2210}
2211#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2212const _: () = {
2213    ["Size of kvm_nested_state__bindgen_ty_2"]
2214        [::std::mem::size_of::<kvm_nested_state__bindgen_ty_2>() - 0usize];
2215    ["Alignment of kvm_nested_state__bindgen_ty_2"]
2216        [::std::mem::align_of::<kvm_nested_state__bindgen_ty_2>() - 1usize];
2217};
2218impl Default for kvm_nested_state__bindgen_ty_2 {
2219    fn default() -> Self {
2220        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2221        unsafe {
2222            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2223            s.assume_init()
2224        }
2225    }
2226}
2227impl ::std::fmt::Debug for kvm_nested_state__bindgen_ty_2 {
2228    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2229        write!(f, "kvm_nested_state__bindgen_ty_2 {{ union }}")
2230    }
2231}
2232#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2233const _: () = {
2234    ["Size of kvm_nested_state"][::std::mem::size_of::<kvm_nested_state>() - 128usize];
2235    ["Alignment of kvm_nested_state"][::std::mem::align_of::<kvm_nested_state>() - 8usize];
2236    ["Offset of field: kvm_nested_state::flags"]
2237        [::std::mem::offset_of!(kvm_nested_state, flags) - 0usize];
2238    ["Offset of field: kvm_nested_state::format"]
2239        [::std::mem::offset_of!(kvm_nested_state, format) - 2usize];
2240    ["Offset of field: kvm_nested_state::size"]
2241        [::std::mem::offset_of!(kvm_nested_state, size) - 4usize];
2242    ["Offset of field: kvm_nested_state::hdr"]
2243        [::std::mem::offset_of!(kvm_nested_state, hdr) - 8usize];
2244    ["Offset of field: kvm_nested_state::data"]
2245        [::std::mem::offset_of!(kvm_nested_state, data) - 128usize];
2246};
2247impl Default for kvm_nested_state {
2248    fn default() -> Self {
2249        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2250        unsafe {
2251            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2252            s.assume_init()
2253        }
2254    }
2255}
2256impl ::std::fmt::Debug for kvm_nested_state {
2257    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2258        write!(
2259            f,
2260            "kvm_nested_state {{ flags: {:?}, format: {:?}, size: {:?}, hdr: {:?}, data: {:?} }}",
2261            self.flags, self.format, self.size, self.hdr, self.data
2262        )
2263    }
2264}
2265#[repr(C)]
2266#[derive(Debug, Default)]
2267pub struct kvm_pmu_event_filter {
2268    pub action: __u32,
2269    pub nevents: __u32,
2270    pub fixed_counter_bitmap: __u32,
2271    pub flags: __u32,
2272    pub pad: [__u32; 4usize],
2273    pub events: __IncompleteArrayField<__u64>,
2274}
2275#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2276const _: () = {
2277    ["Size of kvm_pmu_event_filter"][::std::mem::size_of::<kvm_pmu_event_filter>() - 32usize];
2278    ["Alignment of kvm_pmu_event_filter"][::std::mem::align_of::<kvm_pmu_event_filter>() - 8usize];
2279    ["Offset of field: kvm_pmu_event_filter::action"]
2280        [::std::mem::offset_of!(kvm_pmu_event_filter, action) - 0usize];
2281    ["Offset of field: kvm_pmu_event_filter::nevents"]
2282        [::std::mem::offset_of!(kvm_pmu_event_filter, nevents) - 4usize];
2283    ["Offset of field: kvm_pmu_event_filter::fixed_counter_bitmap"]
2284        [::std::mem::offset_of!(kvm_pmu_event_filter, fixed_counter_bitmap) - 8usize];
2285    ["Offset of field: kvm_pmu_event_filter::flags"]
2286        [::std::mem::offset_of!(kvm_pmu_event_filter, flags) - 12usize];
2287    ["Offset of field: kvm_pmu_event_filter::pad"]
2288        [::std::mem::offset_of!(kvm_pmu_event_filter, pad) - 16usize];
2289    ["Offset of field: kvm_pmu_event_filter::events"]
2290        [::std::mem::offset_of!(kvm_pmu_event_filter, events) - 32usize];
2291};
2292#[repr(C)]
2293#[derive(Debug, Default, Copy, Clone, PartialEq)]
2294pub struct kvm_x86_mce {
2295    pub status: __u64,
2296    pub addr: __u64,
2297    pub misc: __u64,
2298    pub mcg_status: __u64,
2299    pub bank: __u8,
2300    pub pad1: [__u8; 7usize],
2301    pub pad2: [__u64; 3usize],
2302}
2303#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2304const _: () = {
2305    ["Size of kvm_x86_mce"][::std::mem::size_of::<kvm_x86_mce>() - 64usize];
2306    ["Alignment of kvm_x86_mce"][::std::mem::align_of::<kvm_x86_mce>() - 8usize];
2307    ["Offset of field: kvm_x86_mce::status"][::std::mem::offset_of!(kvm_x86_mce, status) - 0usize];
2308    ["Offset of field: kvm_x86_mce::addr"][::std::mem::offset_of!(kvm_x86_mce, addr) - 8usize];
2309    ["Offset of field: kvm_x86_mce::misc"][::std::mem::offset_of!(kvm_x86_mce, misc) - 16usize];
2310    ["Offset of field: kvm_x86_mce::mcg_status"]
2311        [::std::mem::offset_of!(kvm_x86_mce, mcg_status) - 24usize];
2312    ["Offset of field: kvm_x86_mce::bank"][::std::mem::offset_of!(kvm_x86_mce, bank) - 32usize];
2313    ["Offset of field: kvm_x86_mce::pad1"][::std::mem::offset_of!(kvm_x86_mce, pad1) - 33usize];
2314    ["Offset of field: kvm_x86_mce::pad2"][::std::mem::offset_of!(kvm_x86_mce, pad2) - 40usize];
2315};
2316#[repr(C)]
2317#[derive(Debug, Default, Copy, Clone, PartialEq)]
2318pub struct kvm_xen_hvm_config {
2319    pub flags: __u32,
2320    pub msr: __u32,
2321    pub blob_addr_32: __u64,
2322    pub blob_addr_64: __u64,
2323    pub blob_size_32: __u8,
2324    pub blob_size_64: __u8,
2325    pub pad2: [__u8; 30usize],
2326}
2327#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2328const _: () = {
2329    ["Size of kvm_xen_hvm_config"][::std::mem::size_of::<kvm_xen_hvm_config>() - 56usize];
2330    ["Alignment of kvm_xen_hvm_config"][::std::mem::align_of::<kvm_xen_hvm_config>() - 8usize];
2331    ["Offset of field: kvm_xen_hvm_config::flags"]
2332        [::std::mem::offset_of!(kvm_xen_hvm_config, flags) - 0usize];
2333    ["Offset of field: kvm_xen_hvm_config::msr"]
2334        [::std::mem::offset_of!(kvm_xen_hvm_config, msr) - 4usize];
2335    ["Offset of field: kvm_xen_hvm_config::blob_addr_32"]
2336        [::std::mem::offset_of!(kvm_xen_hvm_config, blob_addr_32) - 8usize];
2337    ["Offset of field: kvm_xen_hvm_config::blob_addr_64"]
2338        [::std::mem::offset_of!(kvm_xen_hvm_config, blob_addr_64) - 16usize];
2339    ["Offset of field: kvm_xen_hvm_config::blob_size_32"]
2340        [::std::mem::offset_of!(kvm_xen_hvm_config, blob_size_32) - 24usize];
2341    ["Offset of field: kvm_xen_hvm_config::blob_size_64"]
2342        [::std::mem::offset_of!(kvm_xen_hvm_config, blob_size_64) - 25usize];
2343    ["Offset of field: kvm_xen_hvm_config::pad2"]
2344        [::std::mem::offset_of!(kvm_xen_hvm_config, pad2) - 26usize];
2345};
2346#[repr(C)]
2347#[derive(Copy, Clone)]
2348pub struct kvm_xen_hvm_attr {
2349    pub type_: __u16,
2350    pub pad: [__u16; 3usize],
2351    pub u: kvm_xen_hvm_attr__bindgen_ty_1,
2352}
2353#[repr(C)]
2354#[derive(Copy, Clone)]
2355pub union kvm_xen_hvm_attr__bindgen_ty_1 {
2356    pub long_mode: __u8,
2357    pub vector: __u8,
2358    pub runstate_update_flag: __u8,
2359    pub shared_info: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_1,
2360    pub evtchn: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2,
2361    pub xen_version: __u32,
2362    pub pad: [__u64; 8usize],
2363}
2364#[repr(C)]
2365#[derive(Copy, Clone)]
2366pub union kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_1 {
2367    pub gfn: __u64,
2368    pub hva: __u64,
2369}
2370#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2371const _: () = {
2372    ["Size of kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_1"]
2373        [::std::mem::size_of::<kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_1>() - 8usize];
2374    ["Alignment of kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_1"]
2375        [::std::mem::align_of::<kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_1>() - 8usize];
2376    ["Offset of field: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_1::gfn"]
2377        [::std::mem::offset_of!(kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_1, gfn) - 0usize];
2378    ["Offset of field: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_1::hva"]
2379        [::std::mem::offset_of!(kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_1, hva) - 0usize];
2380};
2381impl Default for kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_1 {
2382    fn default() -> Self {
2383        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2384        unsafe {
2385            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2386            s.assume_init()
2387        }
2388    }
2389}
2390impl ::std::fmt::Debug for kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_1 {
2391    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2392        write!(
2393            f,
2394            "kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_1 {{ union }}"
2395        )
2396    }
2397}
2398#[repr(C)]
2399#[derive(Copy, Clone)]
2400pub struct kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2 {
2401    pub send_port: __u32,
2402    pub type_: __u32,
2403    pub flags: __u32,
2404    pub deliver: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1,
2405}
2406#[repr(C)]
2407#[derive(Copy, Clone)]
2408pub union kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 {
2409    pub port: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1,
2410    pub eventfd: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_2,
2411    pub padding: [__u32; 4usize],
2412}
2413#[repr(C)]
2414#[derive(Debug, Default, Copy, Clone, PartialEq)]
2415pub struct kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1 {
2416    pub port: __u32,
2417    pub vcpu: __u32,
2418    pub priority: __u32,
2419}
2420#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2421const _: () = {
2422    ["Size of kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1"]
2423        [::std::mem::size_of::<
2424            kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1,
2425        >() - 12usize];
2426    ["Alignment of kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1"]
2427        [::std::mem::align_of::<
2428            kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1,
2429        >() - 4usize];
2430    ["Offset of field: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1::port"] [:: std :: mem :: offset_of ! (kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1 , port) - 0usize] ;
2431    ["Offset of field: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1::vcpu"] [:: std :: mem :: offset_of ! (kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1 , vcpu) - 4usize] ;
2432    ["Offset of field: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1::priority"] [:: std :: mem :: offset_of ! (kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1 , priority) - 8usize] ;
2433};
2434#[repr(C)]
2435#[derive(Debug, Default, Copy, Clone, PartialEq)]
2436pub struct kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_2 {
2437    pub port: __u32,
2438    pub fd: __s32,
2439}
2440#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2441const _: () = {
2442    ["Size of kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_2"]
2443        [::std::mem::size_of::<
2444            kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_2,
2445        >() - 8usize];
2446    ["Alignment of kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_2"]
2447        [::std::mem::align_of::<
2448            kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_2,
2449        >() - 4usize];
2450    ["Offset of field: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_2::port"] [:: std :: mem :: offset_of ! (kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_2 , port) - 0usize] ;
2451    ["Offset of field: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_2::fd"] [:: std :: mem :: offset_of ! (kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_2 , fd) - 4usize] ;
2452};
2453#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2454const _: () = {
2455    ["Size of kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1"][::std::mem::size_of::<
2456        kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1,
2457    >() - 16usize];
2458    ["Alignment of kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1"][::std::mem::align_of::<
2459        kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1,
2460    >() - 4usize];
2461    ["Offset of field: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1::port"][::std::mem::offset_of!(
2462        kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1,
2463        port
2464    )
2465        - 0usize];
2466    ["Offset of field: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1::eventfd"][::std::mem::offset_of!(
2467        kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1,
2468        eventfd
2469    )
2470        - 0usize];
2471    ["Offset of field: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1::padding"][::std::mem::offset_of!(
2472        kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1,
2473        padding
2474    )
2475        - 0usize];
2476};
2477impl Default for kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 {
2478    fn default() -> Self {
2479        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2480        unsafe {
2481            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2482            s.assume_init()
2483        }
2484    }
2485}
2486impl ::std::fmt::Debug for kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 {
2487    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2488        write!(
2489            f,
2490            "kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 {{ union }}"
2491        )
2492    }
2493}
2494#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2495const _: () = {
2496    ["Size of kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2"]
2497        [::std::mem::size_of::<kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2>() - 28usize];
2498    ["Alignment of kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2"]
2499        [::std::mem::align_of::<kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2>() - 4usize];
2500    ["Offset of field: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2::send_port"]
2501        [::std::mem::offset_of!(kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2, send_port) - 0usize];
2502    ["Offset of field: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2::type_"]
2503        [::std::mem::offset_of!(kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2, type_) - 4usize];
2504    ["Offset of field: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2::flags"]
2505        [::std::mem::offset_of!(kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2, flags) - 8usize];
2506    ["Offset of field: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2::deliver"]
2507        [::std::mem::offset_of!(kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2, deliver) - 12usize];
2508};
2509impl Default for kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2 {
2510    fn default() -> Self {
2511        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2512        unsafe {
2513            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2514            s.assume_init()
2515        }
2516    }
2517}
2518impl ::std::fmt::Debug for kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2 {
2519    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2520        write ! (f , "kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2 {{ send_port: {:?}, type: {:?}, flags: {:?}, deliver: {:?} }}" , self . send_port , self . type_ , self . flags , self . deliver)
2521    }
2522}
2523#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2524const _: () = {
2525    ["Size of kvm_xen_hvm_attr__bindgen_ty_1"]
2526        [::std::mem::size_of::<kvm_xen_hvm_attr__bindgen_ty_1>() - 64usize];
2527    ["Alignment of kvm_xen_hvm_attr__bindgen_ty_1"]
2528        [::std::mem::align_of::<kvm_xen_hvm_attr__bindgen_ty_1>() - 8usize];
2529    ["Offset of field: kvm_xen_hvm_attr__bindgen_ty_1::long_mode"]
2530        [::std::mem::offset_of!(kvm_xen_hvm_attr__bindgen_ty_1, long_mode) - 0usize];
2531    ["Offset of field: kvm_xen_hvm_attr__bindgen_ty_1::vector"]
2532        [::std::mem::offset_of!(kvm_xen_hvm_attr__bindgen_ty_1, vector) - 0usize];
2533    ["Offset of field: kvm_xen_hvm_attr__bindgen_ty_1::runstate_update_flag"]
2534        [::std::mem::offset_of!(kvm_xen_hvm_attr__bindgen_ty_1, runstate_update_flag) - 0usize];
2535    ["Offset of field: kvm_xen_hvm_attr__bindgen_ty_1::shared_info"]
2536        [::std::mem::offset_of!(kvm_xen_hvm_attr__bindgen_ty_1, shared_info) - 0usize];
2537    ["Offset of field: kvm_xen_hvm_attr__bindgen_ty_1::evtchn"]
2538        [::std::mem::offset_of!(kvm_xen_hvm_attr__bindgen_ty_1, evtchn) - 0usize];
2539    ["Offset of field: kvm_xen_hvm_attr__bindgen_ty_1::xen_version"]
2540        [::std::mem::offset_of!(kvm_xen_hvm_attr__bindgen_ty_1, xen_version) - 0usize];
2541    ["Offset of field: kvm_xen_hvm_attr__bindgen_ty_1::pad"]
2542        [::std::mem::offset_of!(kvm_xen_hvm_attr__bindgen_ty_1, pad) - 0usize];
2543};
2544impl Default for kvm_xen_hvm_attr__bindgen_ty_1 {
2545    fn default() -> Self {
2546        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2547        unsafe {
2548            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2549            s.assume_init()
2550        }
2551    }
2552}
2553impl ::std::fmt::Debug for kvm_xen_hvm_attr__bindgen_ty_1 {
2554    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2555        write!(f, "kvm_xen_hvm_attr__bindgen_ty_1 {{ union }}")
2556    }
2557}
2558#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2559const _: () = {
2560    ["Size of kvm_xen_hvm_attr"][::std::mem::size_of::<kvm_xen_hvm_attr>() - 72usize];
2561    ["Alignment of kvm_xen_hvm_attr"][::std::mem::align_of::<kvm_xen_hvm_attr>() - 8usize];
2562    ["Offset of field: kvm_xen_hvm_attr::type_"]
2563        [::std::mem::offset_of!(kvm_xen_hvm_attr, type_) - 0usize];
2564    ["Offset of field: kvm_xen_hvm_attr::pad"]
2565        [::std::mem::offset_of!(kvm_xen_hvm_attr, pad) - 2usize];
2566    ["Offset of field: kvm_xen_hvm_attr::u"][::std::mem::offset_of!(kvm_xen_hvm_attr, u) - 8usize];
2567};
2568impl Default for kvm_xen_hvm_attr {
2569    fn default() -> Self {
2570        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2571        unsafe {
2572            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2573            s.assume_init()
2574        }
2575    }
2576}
2577impl ::std::fmt::Debug for kvm_xen_hvm_attr {
2578    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2579        write!(
2580            f,
2581            "kvm_xen_hvm_attr {{ type: {:?}, pad: {:?}, u: {:?} }}",
2582            self.type_, self.pad, self.u
2583        )
2584    }
2585}
2586#[repr(C)]
2587#[derive(Copy, Clone)]
2588pub struct kvm_xen_vcpu_attr {
2589    pub type_: __u16,
2590    pub pad: [__u16; 3usize],
2591    pub u: kvm_xen_vcpu_attr__bindgen_ty_1,
2592}
2593#[repr(C)]
2594#[derive(Copy, Clone)]
2595pub union kvm_xen_vcpu_attr__bindgen_ty_1 {
2596    pub gpa: __u64,
2597    pub hva: __u64,
2598    pub pad: [__u64; 8usize],
2599    pub runstate: kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_1,
2600    pub vcpu_id: __u32,
2601    pub timer: kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_2,
2602    pub vector: __u8,
2603}
2604#[repr(C)]
2605#[derive(Debug, Default, Copy, Clone, PartialEq)]
2606pub struct kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_1 {
2607    pub state: __u64,
2608    pub state_entry_time: __u64,
2609    pub time_running: __u64,
2610    pub time_runnable: __u64,
2611    pub time_blocked: __u64,
2612    pub time_offline: __u64,
2613}
2614#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2615const _: () = {
2616    ["Size of kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_1"]
2617        [::std::mem::size_of::<kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_1>() - 48usize];
2618    ["Alignment of kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_1"]
2619        [::std::mem::align_of::<kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_1>() - 8usize];
2620    ["Offset of field: kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_1::state"]
2621        [::std::mem::offset_of!(kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_1, state) - 0usize];
2622    ["Offset of field: kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_1::state_entry_time"][::std::mem::offset_of!(
2623        kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_1,
2624        state_entry_time
2625    )
2626        - 8usize];
2627    ["Offset of field: kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_1::time_running"][::std::mem::offset_of!(
2628        kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_1,
2629        time_running
2630    ) - 16usize];
2631    ["Offset of field: kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_1::time_runnable"][::std::mem::offset_of!(
2632        kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_1,
2633        time_runnable
2634    ) - 24usize];
2635    ["Offset of field: kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_1::time_blocked"][::std::mem::offset_of!(
2636        kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_1,
2637        time_blocked
2638    ) - 32usize];
2639    ["Offset of field: kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_1::time_offline"][::std::mem::offset_of!(
2640        kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_1,
2641        time_offline
2642    ) - 40usize];
2643};
2644#[repr(C)]
2645#[derive(Debug, Default, Copy, Clone, PartialEq)]
2646pub struct kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_2 {
2647    pub port: __u32,
2648    pub priority: __u32,
2649    pub expires_ns: __u64,
2650}
2651#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2652const _: () = {
2653    ["Size of kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_2"]
2654        [::std::mem::size_of::<kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_2>() - 16usize];
2655    ["Alignment of kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_2"]
2656        [::std::mem::align_of::<kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_2>() - 8usize];
2657    ["Offset of field: kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_2::port"]
2658        [::std::mem::offset_of!(kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_2, port) - 0usize];
2659    ["Offset of field: kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_2::priority"]
2660        [::std::mem::offset_of!(kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_2, priority) - 4usize];
2661    ["Offset of field: kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_2::expires_ns"][::std::mem::offset_of!(
2662        kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_2,
2663        expires_ns
2664    ) - 8usize];
2665};
2666#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2667const _: () = {
2668    ["Size of kvm_xen_vcpu_attr__bindgen_ty_1"]
2669        [::std::mem::size_of::<kvm_xen_vcpu_attr__bindgen_ty_1>() - 64usize];
2670    ["Alignment of kvm_xen_vcpu_attr__bindgen_ty_1"]
2671        [::std::mem::align_of::<kvm_xen_vcpu_attr__bindgen_ty_1>() - 8usize];
2672    ["Offset of field: kvm_xen_vcpu_attr__bindgen_ty_1::gpa"]
2673        [::std::mem::offset_of!(kvm_xen_vcpu_attr__bindgen_ty_1, gpa) - 0usize];
2674    ["Offset of field: kvm_xen_vcpu_attr__bindgen_ty_1::hva"]
2675        [::std::mem::offset_of!(kvm_xen_vcpu_attr__bindgen_ty_1, hva) - 0usize];
2676    ["Offset of field: kvm_xen_vcpu_attr__bindgen_ty_1::pad"]
2677        [::std::mem::offset_of!(kvm_xen_vcpu_attr__bindgen_ty_1, pad) - 0usize];
2678    ["Offset of field: kvm_xen_vcpu_attr__bindgen_ty_1::runstate"]
2679        [::std::mem::offset_of!(kvm_xen_vcpu_attr__bindgen_ty_1, runstate) - 0usize];
2680    ["Offset of field: kvm_xen_vcpu_attr__bindgen_ty_1::vcpu_id"]
2681        [::std::mem::offset_of!(kvm_xen_vcpu_attr__bindgen_ty_1, vcpu_id) - 0usize];
2682    ["Offset of field: kvm_xen_vcpu_attr__bindgen_ty_1::timer"]
2683        [::std::mem::offset_of!(kvm_xen_vcpu_attr__bindgen_ty_1, timer) - 0usize];
2684    ["Offset of field: kvm_xen_vcpu_attr__bindgen_ty_1::vector"]
2685        [::std::mem::offset_of!(kvm_xen_vcpu_attr__bindgen_ty_1, vector) - 0usize];
2686};
2687impl Default for kvm_xen_vcpu_attr__bindgen_ty_1 {
2688    fn default() -> Self {
2689        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2690        unsafe {
2691            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2692            s.assume_init()
2693        }
2694    }
2695}
2696impl ::std::fmt::Debug for kvm_xen_vcpu_attr__bindgen_ty_1 {
2697    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2698        write!(f, "kvm_xen_vcpu_attr__bindgen_ty_1 {{ union }}")
2699    }
2700}
2701#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2702const _: () = {
2703    ["Size of kvm_xen_vcpu_attr"][::std::mem::size_of::<kvm_xen_vcpu_attr>() - 72usize];
2704    ["Alignment of kvm_xen_vcpu_attr"][::std::mem::align_of::<kvm_xen_vcpu_attr>() - 8usize];
2705    ["Offset of field: kvm_xen_vcpu_attr::type_"]
2706        [::std::mem::offset_of!(kvm_xen_vcpu_attr, type_) - 0usize];
2707    ["Offset of field: kvm_xen_vcpu_attr::pad"]
2708        [::std::mem::offset_of!(kvm_xen_vcpu_attr, pad) - 2usize];
2709    ["Offset of field: kvm_xen_vcpu_attr::u"]
2710        [::std::mem::offset_of!(kvm_xen_vcpu_attr, u) - 8usize];
2711};
2712impl Default for kvm_xen_vcpu_attr {
2713    fn default() -> Self {
2714        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2715        unsafe {
2716            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2717            s.assume_init()
2718        }
2719    }
2720}
2721impl ::std::fmt::Debug for kvm_xen_vcpu_attr {
2722    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2723        write!(
2724            f,
2725            "kvm_xen_vcpu_attr {{ type: {:?}, pad: {:?}, u: {:?} }}",
2726            self.type_, self.pad, self.u
2727        )
2728    }
2729}
2730pub const sev_cmd_id_KVM_SEV_INIT: sev_cmd_id = 0;
2731pub const sev_cmd_id_KVM_SEV_ES_INIT: sev_cmd_id = 1;
2732pub const sev_cmd_id_KVM_SEV_LAUNCH_START: sev_cmd_id = 2;
2733pub const sev_cmd_id_KVM_SEV_LAUNCH_UPDATE_DATA: sev_cmd_id = 3;
2734pub const sev_cmd_id_KVM_SEV_LAUNCH_UPDATE_VMSA: sev_cmd_id = 4;
2735pub const sev_cmd_id_KVM_SEV_LAUNCH_SECRET: sev_cmd_id = 5;
2736pub const sev_cmd_id_KVM_SEV_LAUNCH_MEASURE: sev_cmd_id = 6;
2737pub const sev_cmd_id_KVM_SEV_LAUNCH_FINISH: sev_cmd_id = 7;
2738pub const sev_cmd_id_KVM_SEV_SEND_START: sev_cmd_id = 8;
2739pub const sev_cmd_id_KVM_SEV_SEND_UPDATE_DATA: sev_cmd_id = 9;
2740pub const sev_cmd_id_KVM_SEV_SEND_UPDATE_VMSA: sev_cmd_id = 10;
2741pub const sev_cmd_id_KVM_SEV_SEND_FINISH: sev_cmd_id = 11;
2742pub const sev_cmd_id_KVM_SEV_RECEIVE_START: sev_cmd_id = 12;
2743pub const sev_cmd_id_KVM_SEV_RECEIVE_UPDATE_DATA: sev_cmd_id = 13;
2744pub const sev_cmd_id_KVM_SEV_RECEIVE_UPDATE_VMSA: sev_cmd_id = 14;
2745pub const sev_cmd_id_KVM_SEV_RECEIVE_FINISH: sev_cmd_id = 15;
2746pub const sev_cmd_id_KVM_SEV_GUEST_STATUS: sev_cmd_id = 16;
2747pub const sev_cmd_id_KVM_SEV_DBG_DECRYPT: sev_cmd_id = 17;
2748pub const sev_cmd_id_KVM_SEV_DBG_ENCRYPT: sev_cmd_id = 18;
2749pub const sev_cmd_id_KVM_SEV_CERT_EXPORT: sev_cmd_id = 19;
2750pub const sev_cmd_id_KVM_SEV_GET_ATTESTATION_REPORT: sev_cmd_id = 20;
2751pub const sev_cmd_id_KVM_SEV_SEND_CANCEL: sev_cmd_id = 21;
2752pub const sev_cmd_id_KVM_SEV_NR_MAX: sev_cmd_id = 22;
2753pub type sev_cmd_id = ::std::os::raw::c_uint;
2754#[repr(C)]
2755#[derive(Debug, Default, Copy, Clone, PartialEq)]
2756pub struct kvm_sev_cmd {
2757    pub id: __u32,
2758    pub pad0: __u32,
2759    pub data: __u64,
2760    pub error: __u32,
2761    pub sev_fd: __u32,
2762}
2763#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2764const _: () = {
2765    ["Size of kvm_sev_cmd"][::std::mem::size_of::<kvm_sev_cmd>() - 24usize];
2766    ["Alignment of kvm_sev_cmd"][::std::mem::align_of::<kvm_sev_cmd>() - 8usize];
2767    ["Offset of field: kvm_sev_cmd::id"][::std::mem::offset_of!(kvm_sev_cmd, id) - 0usize];
2768    ["Offset of field: kvm_sev_cmd::pad0"][::std::mem::offset_of!(kvm_sev_cmd, pad0) - 4usize];
2769    ["Offset of field: kvm_sev_cmd::data"][::std::mem::offset_of!(kvm_sev_cmd, data) - 8usize];
2770    ["Offset of field: kvm_sev_cmd::error"][::std::mem::offset_of!(kvm_sev_cmd, error) - 16usize];
2771    ["Offset of field: kvm_sev_cmd::sev_fd"][::std::mem::offset_of!(kvm_sev_cmd, sev_fd) - 20usize];
2772};
2773#[repr(C)]
2774#[derive(Debug, Default, Copy, Clone, PartialEq)]
2775pub struct kvm_sev_launch_start {
2776    pub handle: __u32,
2777    pub policy: __u32,
2778    pub dh_uaddr: __u64,
2779    pub dh_len: __u32,
2780    pub pad0: __u32,
2781    pub session_uaddr: __u64,
2782    pub session_len: __u32,
2783    pub pad1: __u32,
2784}
2785#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2786const _: () = {
2787    ["Size of kvm_sev_launch_start"][::std::mem::size_of::<kvm_sev_launch_start>() - 40usize];
2788    ["Alignment of kvm_sev_launch_start"][::std::mem::align_of::<kvm_sev_launch_start>() - 8usize];
2789    ["Offset of field: kvm_sev_launch_start::handle"]
2790        [::std::mem::offset_of!(kvm_sev_launch_start, handle) - 0usize];
2791    ["Offset of field: kvm_sev_launch_start::policy"]
2792        [::std::mem::offset_of!(kvm_sev_launch_start, policy) - 4usize];
2793    ["Offset of field: kvm_sev_launch_start::dh_uaddr"]
2794        [::std::mem::offset_of!(kvm_sev_launch_start, dh_uaddr) - 8usize];
2795    ["Offset of field: kvm_sev_launch_start::dh_len"]
2796        [::std::mem::offset_of!(kvm_sev_launch_start, dh_len) - 16usize];
2797    ["Offset of field: kvm_sev_launch_start::pad0"]
2798        [::std::mem::offset_of!(kvm_sev_launch_start, pad0) - 20usize];
2799    ["Offset of field: kvm_sev_launch_start::session_uaddr"]
2800        [::std::mem::offset_of!(kvm_sev_launch_start, session_uaddr) - 24usize];
2801    ["Offset of field: kvm_sev_launch_start::session_len"]
2802        [::std::mem::offset_of!(kvm_sev_launch_start, session_len) - 32usize];
2803    ["Offset of field: kvm_sev_launch_start::pad1"]
2804        [::std::mem::offset_of!(kvm_sev_launch_start, pad1) - 36usize];
2805};
2806#[repr(C)]
2807#[derive(Debug, Default, Copy, Clone, PartialEq)]
2808pub struct kvm_sev_launch_update_data {
2809    pub uaddr: __u64,
2810    pub len: __u32,
2811    pub pad0: __u32,
2812}
2813#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2814const _: () = {
2815    ["Size of kvm_sev_launch_update_data"]
2816        [::std::mem::size_of::<kvm_sev_launch_update_data>() - 16usize];
2817    ["Alignment of kvm_sev_launch_update_data"]
2818        [::std::mem::align_of::<kvm_sev_launch_update_data>() - 8usize];
2819    ["Offset of field: kvm_sev_launch_update_data::uaddr"]
2820        [::std::mem::offset_of!(kvm_sev_launch_update_data, uaddr) - 0usize];
2821    ["Offset of field: kvm_sev_launch_update_data::len"]
2822        [::std::mem::offset_of!(kvm_sev_launch_update_data, len) - 8usize];
2823    ["Offset of field: kvm_sev_launch_update_data::pad0"]
2824        [::std::mem::offset_of!(kvm_sev_launch_update_data, pad0) - 12usize];
2825};
2826#[repr(C)]
2827#[derive(Debug, Default, Copy, Clone, PartialEq)]
2828pub struct kvm_sev_launch_secret {
2829    pub hdr_uaddr: __u64,
2830    pub hdr_len: __u32,
2831    pub pad0: __u32,
2832    pub guest_uaddr: __u64,
2833    pub guest_len: __u32,
2834    pub pad1: __u32,
2835    pub trans_uaddr: __u64,
2836    pub trans_len: __u32,
2837    pub pad2: __u32,
2838}
2839#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2840const _: () = {
2841    ["Size of kvm_sev_launch_secret"][::std::mem::size_of::<kvm_sev_launch_secret>() - 48usize];
2842    ["Alignment of kvm_sev_launch_secret"]
2843        [::std::mem::align_of::<kvm_sev_launch_secret>() - 8usize];
2844    ["Offset of field: kvm_sev_launch_secret::hdr_uaddr"]
2845        [::std::mem::offset_of!(kvm_sev_launch_secret, hdr_uaddr) - 0usize];
2846    ["Offset of field: kvm_sev_launch_secret::hdr_len"]
2847        [::std::mem::offset_of!(kvm_sev_launch_secret, hdr_len) - 8usize];
2848    ["Offset of field: kvm_sev_launch_secret::pad0"]
2849        [::std::mem::offset_of!(kvm_sev_launch_secret, pad0) - 12usize];
2850    ["Offset of field: kvm_sev_launch_secret::guest_uaddr"]
2851        [::std::mem::offset_of!(kvm_sev_launch_secret, guest_uaddr) - 16usize];
2852    ["Offset of field: kvm_sev_launch_secret::guest_len"]
2853        [::std::mem::offset_of!(kvm_sev_launch_secret, guest_len) - 24usize];
2854    ["Offset of field: kvm_sev_launch_secret::pad1"]
2855        [::std::mem::offset_of!(kvm_sev_launch_secret, pad1) - 28usize];
2856    ["Offset of field: kvm_sev_launch_secret::trans_uaddr"]
2857        [::std::mem::offset_of!(kvm_sev_launch_secret, trans_uaddr) - 32usize];
2858    ["Offset of field: kvm_sev_launch_secret::trans_len"]
2859        [::std::mem::offset_of!(kvm_sev_launch_secret, trans_len) - 40usize];
2860    ["Offset of field: kvm_sev_launch_secret::pad2"]
2861        [::std::mem::offset_of!(kvm_sev_launch_secret, pad2) - 44usize];
2862};
2863#[repr(C)]
2864#[derive(Debug, Default, Copy, Clone, PartialEq)]
2865pub struct kvm_sev_launch_measure {
2866    pub uaddr: __u64,
2867    pub len: __u32,
2868    pub pad0: __u32,
2869}
2870#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2871const _: () = {
2872    ["Size of kvm_sev_launch_measure"][::std::mem::size_of::<kvm_sev_launch_measure>() - 16usize];
2873    ["Alignment of kvm_sev_launch_measure"]
2874        [::std::mem::align_of::<kvm_sev_launch_measure>() - 8usize];
2875    ["Offset of field: kvm_sev_launch_measure::uaddr"]
2876        [::std::mem::offset_of!(kvm_sev_launch_measure, uaddr) - 0usize];
2877    ["Offset of field: kvm_sev_launch_measure::len"]
2878        [::std::mem::offset_of!(kvm_sev_launch_measure, len) - 8usize];
2879    ["Offset of field: kvm_sev_launch_measure::pad0"]
2880        [::std::mem::offset_of!(kvm_sev_launch_measure, pad0) - 12usize];
2881};
2882#[repr(C)]
2883#[derive(Debug, Default, Copy, Clone, PartialEq)]
2884pub struct kvm_sev_guest_status {
2885    pub handle: __u32,
2886    pub policy: __u32,
2887    pub state: __u32,
2888}
2889#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2890const _: () = {
2891    ["Size of kvm_sev_guest_status"][::std::mem::size_of::<kvm_sev_guest_status>() - 12usize];
2892    ["Alignment of kvm_sev_guest_status"][::std::mem::align_of::<kvm_sev_guest_status>() - 4usize];
2893    ["Offset of field: kvm_sev_guest_status::handle"]
2894        [::std::mem::offset_of!(kvm_sev_guest_status, handle) - 0usize];
2895    ["Offset of field: kvm_sev_guest_status::policy"]
2896        [::std::mem::offset_of!(kvm_sev_guest_status, policy) - 4usize];
2897    ["Offset of field: kvm_sev_guest_status::state"]
2898        [::std::mem::offset_of!(kvm_sev_guest_status, state) - 8usize];
2899};
2900#[repr(C)]
2901#[derive(Debug, Default, Copy, Clone, PartialEq)]
2902pub struct kvm_sev_dbg {
2903    pub src_uaddr: __u64,
2904    pub dst_uaddr: __u64,
2905    pub len: __u32,
2906    pub pad0: __u32,
2907}
2908#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2909const _: () = {
2910    ["Size of kvm_sev_dbg"][::std::mem::size_of::<kvm_sev_dbg>() - 24usize];
2911    ["Alignment of kvm_sev_dbg"][::std::mem::align_of::<kvm_sev_dbg>() - 8usize];
2912    ["Offset of field: kvm_sev_dbg::src_uaddr"]
2913        [::std::mem::offset_of!(kvm_sev_dbg, src_uaddr) - 0usize];
2914    ["Offset of field: kvm_sev_dbg::dst_uaddr"]
2915        [::std::mem::offset_of!(kvm_sev_dbg, dst_uaddr) - 8usize];
2916    ["Offset of field: kvm_sev_dbg::len"][::std::mem::offset_of!(kvm_sev_dbg, len) - 16usize];
2917    ["Offset of field: kvm_sev_dbg::pad0"][::std::mem::offset_of!(kvm_sev_dbg, pad0) - 20usize];
2918};
2919#[repr(C)]
2920#[derive(Debug, Default, Copy, Clone, PartialEq)]
2921pub struct kvm_sev_attestation_report {
2922    pub mnonce: [__u8; 16usize],
2923    pub uaddr: __u64,
2924    pub len: __u32,
2925    pub pad0: __u32,
2926}
2927#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2928const _: () = {
2929    ["Size of kvm_sev_attestation_report"]
2930        [::std::mem::size_of::<kvm_sev_attestation_report>() - 32usize];
2931    ["Alignment of kvm_sev_attestation_report"]
2932        [::std::mem::align_of::<kvm_sev_attestation_report>() - 8usize];
2933    ["Offset of field: kvm_sev_attestation_report::mnonce"]
2934        [::std::mem::offset_of!(kvm_sev_attestation_report, mnonce) - 0usize];
2935    ["Offset of field: kvm_sev_attestation_report::uaddr"]
2936        [::std::mem::offset_of!(kvm_sev_attestation_report, uaddr) - 16usize];
2937    ["Offset of field: kvm_sev_attestation_report::len"]
2938        [::std::mem::offset_of!(kvm_sev_attestation_report, len) - 24usize];
2939    ["Offset of field: kvm_sev_attestation_report::pad0"]
2940        [::std::mem::offset_of!(kvm_sev_attestation_report, pad0) - 28usize];
2941};
2942#[repr(C)]
2943#[derive(Debug, Default, Copy, Clone, PartialEq)]
2944pub struct kvm_sev_send_start {
2945    pub policy: __u32,
2946    pub pad0: __u32,
2947    pub pdh_cert_uaddr: __u64,
2948    pub pdh_cert_len: __u32,
2949    pub pad1: __u32,
2950    pub plat_certs_uaddr: __u64,
2951    pub plat_certs_len: __u32,
2952    pub pad2: __u32,
2953    pub amd_certs_uaddr: __u64,
2954    pub amd_certs_len: __u32,
2955    pub pad3: __u32,
2956    pub session_uaddr: __u64,
2957    pub session_len: __u32,
2958    pub pad4: __u32,
2959}
2960#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2961const _: () = {
2962    ["Size of kvm_sev_send_start"][::std::mem::size_of::<kvm_sev_send_start>() - 72usize];
2963    ["Alignment of kvm_sev_send_start"][::std::mem::align_of::<kvm_sev_send_start>() - 8usize];
2964    ["Offset of field: kvm_sev_send_start::policy"]
2965        [::std::mem::offset_of!(kvm_sev_send_start, policy) - 0usize];
2966    ["Offset of field: kvm_sev_send_start::pad0"]
2967        [::std::mem::offset_of!(kvm_sev_send_start, pad0) - 4usize];
2968    ["Offset of field: kvm_sev_send_start::pdh_cert_uaddr"]
2969        [::std::mem::offset_of!(kvm_sev_send_start, pdh_cert_uaddr) - 8usize];
2970    ["Offset of field: kvm_sev_send_start::pdh_cert_len"]
2971        [::std::mem::offset_of!(kvm_sev_send_start, pdh_cert_len) - 16usize];
2972    ["Offset of field: kvm_sev_send_start::pad1"]
2973        [::std::mem::offset_of!(kvm_sev_send_start, pad1) - 20usize];
2974    ["Offset of field: kvm_sev_send_start::plat_certs_uaddr"]
2975        [::std::mem::offset_of!(kvm_sev_send_start, plat_certs_uaddr) - 24usize];
2976    ["Offset of field: kvm_sev_send_start::plat_certs_len"]
2977        [::std::mem::offset_of!(kvm_sev_send_start, plat_certs_len) - 32usize];
2978    ["Offset of field: kvm_sev_send_start::pad2"]
2979        [::std::mem::offset_of!(kvm_sev_send_start, pad2) - 36usize];
2980    ["Offset of field: kvm_sev_send_start::amd_certs_uaddr"]
2981        [::std::mem::offset_of!(kvm_sev_send_start, amd_certs_uaddr) - 40usize];
2982    ["Offset of field: kvm_sev_send_start::amd_certs_len"]
2983        [::std::mem::offset_of!(kvm_sev_send_start, amd_certs_len) - 48usize];
2984    ["Offset of field: kvm_sev_send_start::pad3"]
2985        [::std::mem::offset_of!(kvm_sev_send_start, pad3) - 52usize];
2986    ["Offset of field: kvm_sev_send_start::session_uaddr"]
2987        [::std::mem::offset_of!(kvm_sev_send_start, session_uaddr) - 56usize];
2988    ["Offset of field: kvm_sev_send_start::session_len"]
2989        [::std::mem::offset_of!(kvm_sev_send_start, session_len) - 64usize];
2990    ["Offset of field: kvm_sev_send_start::pad4"]
2991        [::std::mem::offset_of!(kvm_sev_send_start, pad4) - 68usize];
2992};
2993#[repr(C)]
2994#[derive(Debug, Default, Copy, Clone, PartialEq)]
2995pub struct kvm_sev_send_update_data {
2996    pub hdr_uaddr: __u64,
2997    pub hdr_len: __u32,
2998    pub pad0: __u32,
2999    pub guest_uaddr: __u64,
3000    pub guest_len: __u32,
3001    pub pad1: __u32,
3002    pub trans_uaddr: __u64,
3003    pub trans_len: __u32,
3004    pub pad2: __u32,
3005}
3006#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3007const _: () = {
3008    ["Size of kvm_sev_send_update_data"]
3009        [::std::mem::size_of::<kvm_sev_send_update_data>() - 48usize];
3010    ["Alignment of kvm_sev_send_update_data"]
3011        [::std::mem::align_of::<kvm_sev_send_update_data>() - 8usize];
3012    ["Offset of field: kvm_sev_send_update_data::hdr_uaddr"]
3013        [::std::mem::offset_of!(kvm_sev_send_update_data, hdr_uaddr) - 0usize];
3014    ["Offset of field: kvm_sev_send_update_data::hdr_len"]
3015        [::std::mem::offset_of!(kvm_sev_send_update_data, hdr_len) - 8usize];
3016    ["Offset of field: kvm_sev_send_update_data::pad0"]
3017        [::std::mem::offset_of!(kvm_sev_send_update_data, pad0) - 12usize];
3018    ["Offset of field: kvm_sev_send_update_data::guest_uaddr"]
3019        [::std::mem::offset_of!(kvm_sev_send_update_data, guest_uaddr) - 16usize];
3020    ["Offset of field: kvm_sev_send_update_data::guest_len"]
3021        [::std::mem::offset_of!(kvm_sev_send_update_data, guest_len) - 24usize];
3022    ["Offset of field: kvm_sev_send_update_data::pad1"]
3023        [::std::mem::offset_of!(kvm_sev_send_update_data, pad1) - 28usize];
3024    ["Offset of field: kvm_sev_send_update_data::trans_uaddr"]
3025        [::std::mem::offset_of!(kvm_sev_send_update_data, trans_uaddr) - 32usize];
3026    ["Offset of field: kvm_sev_send_update_data::trans_len"]
3027        [::std::mem::offset_of!(kvm_sev_send_update_data, trans_len) - 40usize];
3028    ["Offset of field: kvm_sev_send_update_data::pad2"]
3029        [::std::mem::offset_of!(kvm_sev_send_update_data, pad2) - 44usize];
3030};
3031#[repr(C)]
3032#[derive(Debug, Default, Copy, Clone, PartialEq)]
3033pub struct kvm_sev_receive_start {
3034    pub handle: __u32,
3035    pub policy: __u32,
3036    pub pdh_uaddr: __u64,
3037    pub pdh_len: __u32,
3038    pub pad0: __u32,
3039    pub session_uaddr: __u64,
3040    pub session_len: __u32,
3041    pub pad1: __u32,
3042}
3043#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3044const _: () = {
3045    ["Size of kvm_sev_receive_start"][::std::mem::size_of::<kvm_sev_receive_start>() - 40usize];
3046    ["Alignment of kvm_sev_receive_start"]
3047        [::std::mem::align_of::<kvm_sev_receive_start>() - 8usize];
3048    ["Offset of field: kvm_sev_receive_start::handle"]
3049        [::std::mem::offset_of!(kvm_sev_receive_start, handle) - 0usize];
3050    ["Offset of field: kvm_sev_receive_start::policy"]
3051        [::std::mem::offset_of!(kvm_sev_receive_start, policy) - 4usize];
3052    ["Offset of field: kvm_sev_receive_start::pdh_uaddr"]
3053        [::std::mem::offset_of!(kvm_sev_receive_start, pdh_uaddr) - 8usize];
3054    ["Offset of field: kvm_sev_receive_start::pdh_len"]
3055        [::std::mem::offset_of!(kvm_sev_receive_start, pdh_len) - 16usize];
3056    ["Offset of field: kvm_sev_receive_start::pad0"]
3057        [::std::mem::offset_of!(kvm_sev_receive_start, pad0) - 20usize];
3058    ["Offset of field: kvm_sev_receive_start::session_uaddr"]
3059        [::std::mem::offset_of!(kvm_sev_receive_start, session_uaddr) - 24usize];
3060    ["Offset of field: kvm_sev_receive_start::session_len"]
3061        [::std::mem::offset_of!(kvm_sev_receive_start, session_len) - 32usize];
3062    ["Offset of field: kvm_sev_receive_start::pad1"]
3063        [::std::mem::offset_of!(kvm_sev_receive_start, pad1) - 36usize];
3064};
3065#[repr(C)]
3066#[derive(Debug, Default, Copy, Clone, PartialEq)]
3067pub struct kvm_sev_receive_update_data {
3068    pub hdr_uaddr: __u64,
3069    pub hdr_len: __u32,
3070    pub pad0: __u32,
3071    pub guest_uaddr: __u64,
3072    pub guest_len: __u32,
3073    pub pad1: __u32,
3074    pub trans_uaddr: __u64,
3075    pub trans_len: __u32,
3076    pub pad2: __u32,
3077}
3078#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3079const _: () = {
3080    ["Size of kvm_sev_receive_update_data"]
3081        [::std::mem::size_of::<kvm_sev_receive_update_data>() - 48usize];
3082    ["Alignment of kvm_sev_receive_update_data"]
3083        [::std::mem::align_of::<kvm_sev_receive_update_data>() - 8usize];
3084    ["Offset of field: kvm_sev_receive_update_data::hdr_uaddr"]
3085        [::std::mem::offset_of!(kvm_sev_receive_update_data, hdr_uaddr) - 0usize];
3086    ["Offset of field: kvm_sev_receive_update_data::hdr_len"]
3087        [::std::mem::offset_of!(kvm_sev_receive_update_data, hdr_len) - 8usize];
3088    ["Offset of field: kvm_sev_receive_update_data::pad0"]
3089        [::std::mem::offset_of!(kvm_sev_receive_update_data, pad0) - 12usize];
3090    ["Offset of field: kvm_sev_receive_update_data::guest_uaddr"]
3091        [::std::mem::offset_of!(kvm_sev_receive_update_data, guest_uaddr) - 16usize];
3092    ["Offset of field: kvm_sev_receive_update_data::guest_len"]
3093        [::std::mem::offset_of!(kvm_sev_receive_update_data, guest_len) - 24usize];
3094    ["Offset of field: kvm_sev_receive_update_data::pad1"]
3095        [::std::mem::offset_of!(kvm_sev_receive_update_data, pad1) - 28usize];
3096    ["Offset of field: kvm_sev_receive_update_data::trans_uaddr"]
3097        [::std::mem::offset_of!(kvm_sev_receive_update_data, trans_uaddr) - 32usize];
3098    ["Offset of field: kvm_sev_receive_update_data::trans_len"]
3099        [::std::mem::offset_of!(kvm_sev_receive_update_data, trans_len) - 40usize];
3100    ["Offset of field: kvm_sev_receive_update_data::pad2"]
3101        [::std::mem::offset_of!(kvm_sev_receive_update_data, pad2) - 44usize];
3102};
3103#[repr(C)]
3104#[derive(Debug, Default, Copy, Clone, PartialEq)]
3105pub struct kvm_hyperv_eventfd {
3106    pub conn_id: __u32,
3107    pub fd: __s32,
3108    pub flags: __u32,
3109    pub padding: [__u32; 3usize],
3110}
3111#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3112const _: () = {
3113    ["Size of kvm_hyperv_eventfd"][::std::mem::size_of::<kvm_hyperv_eventfd>() - 24usize];
3114    ["Alignment of kvm_hyperv_eventfd"][::std::mem::align_of::<kvm_hyperv_eventfd>() - 4usize];
3115    ["Offset of field: kvm_hyperv_eventfd::conn_id"]
3116        [::std::mem::offset_of!(kvm_hyperv_eventfd, conn_id) - 0usize];
3117    ["Offset of field: kvm_hyperv_eventfd::fd"]
3118        [::std::mem::offset_of!(kvm_hyperv_eventfd, fd) - 4usize];
3119    ["Offset of field: kvm_hyperv_eventfd::flags"]
3120        [::std::mem::offset_of!(kvm_hyperv_eventfd, flags) - 8usize];
3121    ["Offset of field: kvm_hyperv_eventfd::padding"]
3122        [::std::mem::offset_of!(kvm_hyperv_eventfd, padding) - 12usize];
3123};
3124#[repr(C)]
3125#[derive(Debug, Default, Copy, Clone, PartialEq)]
3126pub struct kvm_userspace_memory_region {
3127    pub slot: __u32,
3128    pub flags: __u32,
3129    pub guest_phys_addr: __u64,
3130    pub memory_size: __u64,
3131    pub userspace_addr: __u64,
3132}
3133#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3134const _: () = {
3135    ["Size of kvm_userspace_memory_region"]
3136        [::std::mem::size_of::<kvm_userspace_memory_region>() - 32usize];
3137    ["Alignment of kvm_userspace_memory_region"]
3138        [::std::mem::align_of::<kvm_userspace_memory_region>() - 8usize];
3139    ["Offset of field: kvm_userspace_memory_region::slot"]
3140        [::std::mem::offset_of!(kvm_userspace_memory_region, slot) - 0usize];
3141    ["Offset of field: kvm_userspace_memory_region::flags"]
3142        [::std::mem::offset_of!(kvm_userspace_memory_region, flags) - 4usize];
3143    ["Offset of field: kvm_userspace_memory_region::guest_phys_addr"]
3144        [::std::mem::offset_of!(kvm_userspace_memory_region, guest_phys_addr) - 8usize];
3145    ["Offset of field: kvm_userspace_memory_region::memory_size"]
3146        [::std::mem::offset_of!(kvm_userspace_memory_region, memory_size) - 16usize];
3147    ["Offset of field: kvm_userspace_memory_region::userspace_addr"]
3148        [::std::mem::offset_of!(kvm_userspace_memory_region, userspace_addr) - 24usize];
3149};
3150#[repr(C)]
3151#[derive(Debug, Default, Copy, Clone, PartialEq)]
3152pub struct kvm_userspace_memory_region2 {
3153    pub slot: __u32,
3154    pub flags: __u32,
3155    pub guest_phys_addr: __u64,
3156    pub memory_size: __u64,
3157    pub userspace_addr: __u64,
3158    pub guest_memfd_offset: __u64,
3159    pub guest_memfd: __u32,
3160    pub pad1: __u32,
3161    pub pad2: [__u64; 14usize],
3162}
3163#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3164const _: () = {
3165    ["Size of kvm_userspace_memory_region2"]
3166        [::std::mem::size_of::<kvm_userspace_memory_region2>() - 160usize];
3167    ["Alignment of kvm_userspace_memory_region2"]
3168        [::std::mem::align_of::<kvm_userspace_memory_region2>() - 8usize];
3169    ["Offset of field: kvm_userspace_memory_region2::slot"]
3170        [::std::mem::offset_of!(kvm_userspace_memory_region2, slot) - 0usize];
3171    ["Offset of field: kvm_userspace_memory_region2::flags"]
3172        [::std::mem::offset_of!(kvm_userspace_memory_region2, flags) - 4usize];
3173    ["Offset of field: kvm_userspace_memory_region2::guest_phys_addr"]
3174        [::std::mem::offset_of!(kvm_userspace_memory_region2, guest_phys_addr) - 8usize];
3175    ["Offset of field: kvm_userspace_memory_region2::memory_size"]
3176        [::std::mem::offset_of!(kvm_userspace_memory_region2, memory_size) - 16usize];
3177    ["Offset of field: kvm_userspace_memory_region2::userspace_addr"]
3178        [::std::mem::offset_of!(kvm_userspace_memory_region2, userspace_addr) - 24usize];
3179    ["Offset of field: kvm_userspace_memory_region2::guest_memfd_offset"]
3180        [::std::mem::offset_of!(kvm_userspace_memory_region2, guest_memfd_offset) - 32usize];
3181    ["Offset of field: kvm_userspace_memory_region2::guest_memfd"]
3182        [::std::mem::offset_of!(kvm_userspace_memory_region2, guest_memfd) - 40usize];
3183    ["Offset of field: kvm_userspace_memory_region2::pad1"]
3184        [::std::mem::offset_of!(kvm_userspace_memory_region2, pad1) - 44usize];
3185    ["Offset of field: kvm_userspace_memory_region2::pad2"]
3186        [::std::mem::offset_of!(kvm_userspace_memory_region2, pad2) - 48usize];
3187};
3188#[repr(C)]
3189#[derive(Copy, Clone)]
3190pub struct kvm_irq_level {
3191    pub __bindgen_anon_1: kvm_irq_level__bindgen_ty_1,
3192    pub level: __u32,
3193}
3194#[repr(C)]
3195#[derive(Copy, Clone)]
3196pub union kvm_irq_level__bindgen_ty_1 {
3197    pub irq: __u32,
3198    pub status: __s32,
3199}
3200#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3201const _: () = {
3202    ["Size of kvm_irq_level__bindgen_ty_1"]
3203        [::std::mem::size_of::<kvm_irq_level__bindgen_ty_1>() - 4usize];
3204    ["Alignment of kvm_irq_level__bindgen_ty_1"]
3205        [::std::mem::align_of::<kvm_irq_level__bindgen_ty_1>() - 4usize];
3206    ["Offset of field: kvm_irq_level__bindgen_ty_1::irq"]
3207        [::std::mem::offset_of!(kvm_irq_level__bindgen_ty_1, irq) - 0usize];
3208    ["Offset of field: kvm_irq_level__bindgen_ty_1::status"]
3209        [::std::mem::offset_of!(kvm_irq_level__bindgen_ty_1, status) - 0usize];
3210};
3211impl Default for kvm_irq_level__bindgen_ty_1 {
3212    fn default() -> Self {
3213        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3214        unsafe {
3215            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3216            s.assume_init()
3217        }
3218    }
3219}
3220impl ::std::fmt::Debug for kvm_irq_level__bindgen_ty_1 {
3221    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3222        write!(f, "kvm_irq_level__bindgen_ty_1 {{ union }}")
3223    }
3224}
3225#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3226const _: () = {
3227    ["Size of kvm_irq_level"][::std::mem::size_of::<kvm_irq_level>() - 8usize];
3228    ["Alignment of kvm_irq_level"][::std::mem::align_of::<kvm_irq_level>() - 4usize];
3229    ["Offset of field: kvm_irq_level::level"]
3230        [::std::mem::offset_of!(kvm_irq_level, level) - 4usize];
3231};
3232impl Default for kvm_irq_level {
3233    fn default() -> Self {
3234        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3235        unsafe {
3236            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3237            s.assume_init()
3238        }
3239    }
3240}
3241impl ::std::fmt::Debug for kvm_irq_level {
3242    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3243        write!(
3244            f,
3245            "kvm_irq_level {{ __bindgen_anon_1: {:?}, level: {:?} }}",
3246            self.__bindgen_anon_1, self.level
3247        )
3248    }
3249}
3250#[repr(C)]
3251#[derive(Copy, Clone)]
3252#[cfg_attr(
3253    feature = "serde",
3254    derive(zerocopy::AsBytes, zerocopy::FromBytes, zerocopy::FromZeroes)
3255)]
3256pub struct kvm_irqchip {
3257    pub chip_id: __u32,
3258    pub pad: __u32,
3259    pub chip: kvm_irqchip__bindgen_ty_1,
3260}
3261#[repr(C)]
3262#[derive(Copy, Clone)]
3263pub union kvm_irqchip__bindgen_ty_1 {
3264    pub dummy: [::std::os::raw::c_char; 512usize],
3265    pub pic: kvm_pic_state,
3266    pub ioapic: kvm_ioapic_state,
3267}
3268#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3269const _: () = {
3270    ["Size of kvm_irqchip__bindgen_ty_1"]
3271        [::std::mem::size_of::<kvm_irqchip__bindgen_ty_1>() - 512usize];
3272    ["Alignment of kvm_irqchip__bindgen_ty_1"]
3273        [::std::mem::align_of::<kvm_irqchip__bindgen_ty_1>() - 8usize];
3274    ["Offset of field: kvm_irqchip__bindgen_ty_1::dummy"]
3275        [::std::mem::offset_of!(kvm_irqchip__bindgen_ty_1, dummy) - 0usize];
3276    ["Offset of field: kvm_irqchip__bindgen_ty_1::pic"]
3277        [::std::mem::offset_of!(kvm_irqchip__bindgen_ty_1, pic) - 0usize];
3278    ["Offset of field: kvm_irqchip__bindgen_ty_1::ioapic"]
3279        [::std::mem::offset_of!(kvm_irqchip__bindgen_ty_1, ioapic) - 0usize];
3280};
3281impl Default for kvm_irqchip__bindgen_ty_1 {
3282    fn default() -> Self {
3283        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3284        unsafe {
3285            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3286            s.assume_init()
3287        }
3288    }
3289}
3290impl ::std::fmt::Debug for kvm_irqchip__bindgen_ty_1 {
3291    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3292        write!(f, "kvm_irqchip__bindgen_ty_1 {{ union }}")
3293    }
3294}
3295#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3296const _: () = {
3297    ["Size of kvm_irqchip"][::std::mem::size_of::<kvm_irqchip>() - 520usize];
3298    ["Alignment of kvm_irqchip"][::std::mem::align_of::<kvm_irqchip>() - 8usize];
3299    ["Offset of field: kvm_irqchip::chip_id"]
3300        [::std::mem::offset_of!(kvm_irqchip, chip_id) - 0usize];
3301    ["Offset of field: kvm_irqchip::pad"][::std::mem::offset_of!(kvm_irqchip, pad) - 4usize];
3302    ["Offset of field: kvm_irqchip::chip"][::std::mem::offset_of!(kvm_irqchip, chip) - 8usize];
3303};
3304impl Default for kvm_irqchip {
3305    fn default() -> Self {
3306        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3307        unsafe {
3308            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3309            s.assume_init()
3310        }
3311    }
3312}
3313impl ::std::fmt::Debug for kvm_irqchip {
3314    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3315        write!(
3316            f,
3317            "kvm_irqchip {{ chip_id: {:?}, pad: {:?}, chip: {:?} }}",
3318            self.chip_id, self.pad, self.chip
3319        )
3320    }
3321}
3322#[repr(C)]
3323#[derive(Debug, Default, Copy, Clone, PartialEq)]
3324pub struct kvm_pit_config {
3325    pub flags: __u32,
3326    pub pad: [__u32; 15usize],
3327}
3328#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3329const _: () = {
3330    ["Size of kvm_pit_config"][::std::mem::size_of::<kvm_pit_config>() - 64usize];
3331    ["Alignment of kvm_pit_config"][::std::mem::align_of::<kvm_pit_config>() - 4usize];
3332    ["Offset of field: kvm_pit_config::flags"]
3333        [::std::mem::offset_of!(kvm_pit_config, flags) - 0usize];
3334    ["Offset of field: kvm_pit_config::pad"][::std::mem::offset_of!(kvm_pit_config, pad) - 4usize];
3335};
3336#[repr(C)]
3337#[derive(Copy, Clone)]
3338pub struct kvm_hyperv_exit {
3339    pub type_: __u32,
3340    pub pad1: __u32,
3341    pub u: kvm_hyperv_exit__bindgen_ty_1,
3342}
3343#[repr(C)]
3344#[derive(Copy, Clone)]
3345pub union kvm_hyperv_exit__bindgen_ty_1 {
3346    pub synic: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1,
3347    pub hcall: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_2,
3348    pub syndbg: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3,
3349}
3350#[repr(C)]
3351#[derive(Debug, Default, Copy, Clone, PartialEq)]
3352pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1 {
3353    pub msr: __u32,
3354    pub pad2: __u32,
3355    pub control: __u64,
3356    pub evt_page: __u64,
3357    pub msg_page: __u64,
3358}
3359#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3360const _: () = {
3361    ["Size of kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1"]
3362        [::std::mem::size_of::<kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1>() - 32usize];
3363    ["Alignment of kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1"]
3364        [::std::mem::align_of::<kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1>() - 8usize];
3365    ["Offset of field: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1::msr"]
3366        [::std::mem::offset_of!(kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1, msr) - 0usize];
3367    ["Offset of field: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1::pad2"]
3368        [::std::mem::offset_of!(kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1, pad2) - 4usize];
3369    ["Offset of field: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1::control"]
3370        [::std::mem::offset_of!(kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1, control) - 8usize];
3371    ["Offset of field: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1::evt_page"]
3372        [::std::mem::offset_of!(kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1, evt_page) - 16usize];
3373    ["Offset of field: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1::msg_page"]
3374        [::std::mem::offset_of!(kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1, msg_page) - 24usize];
3375};
3376#[repr(C)]
3377#[derive(Debug, Default, Copy, Clone, PartialEq)]
3378pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_2 {
3379    pub input: __u64,
3380    pub result: __u64,
3381    pub params: [__u64; 2usize],
3382}
3383#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3384const _: () = {
3385    ["Size of kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_2"]
3386        [::std::mem::size_of::<kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_2>() - 32usize];
3387    ["Alignment of kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_2"]
3388        [::std::mem::align_of::<kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_2>() - 8usize];
3389    ["Offset of field: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_2::input"]
3390        [::std::mem::offset_of!(kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_2, input) - 0usize];
3391    ["Offset of field: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_2::result"]
3392        [::std::mem::offset_of!(kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_2, result) - 8usize];
3393    ["Offset of field: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_2::params"]
3394        [::std::mem::offset_of!(kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_2, params) - 16usize];
3395};
3396#[repr(C)]
3397#[derive(Debug, Default, Copy, Clone, PartialEq)]
3398pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3 {
3399    pub msr: __u32,
3400    pub pad2: __u32,
3401    pub control: __u64,
3402    pub status: __u64,
3403    pub send_page: __u64,
3404    pub recv_page: __u64,
3405    pub pending_page: __u64,
3406}
3407#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3408const _: () = {
3409    ["Size of kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3"]
3410        [::std::mem::size_of::<kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3>() - 48usize];
3411    ["Alignment of kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3"]
3412        [::std::mem::align_of::<kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3>() - 8usize];
3413    ["Offset of field: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3::msr"]
3414        [::std::mem::offset_of!(kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3, msr) - 0usize];
3415    ["Offset of field: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3::pad2"]
3416        [::std::mem::offset_of!(kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3, pad2) - 4usize];
3417    ["Offset of field: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3::control"]
3418        [::std::mem::offset_of!(kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3, control) - 8usize];
3419    ["Offset of field: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3::status"]
3420        [::std::mem::offset_of!(kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3, status) - 16usize];
3421    ["Offset of field: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3::send_page"]
3422        [::std::mem::offset_of!(kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3, send_page) - 24usize];
3423    ["Offset of field: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3::recv_page"]
3424        [::std::mem::offset_of!(kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3, recv_page) - 32usize];
3425    ["Offset of field: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3::pending_page"][::std::mem::offset_of!(
3426        kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3,
3427        pending_page
3428    ) - 40usize];
3429};
3430#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3431const _: () = {
3432    ["Size of kvm_hyperv_exit__bindgen_ty_1"]
3433        [::std::mem::size_of::<kvm_hyperv_exit__bindgen_ty_1>() - 48usize];
3434    ["Alignment of kvm_hyperv_exit__bindgen_ty_1"]
3435        [::std::mem::align_of::<kvm_hyperv_exit__bindgen_ty_1>() - 8usize];
3436    ["Offset of field: kvm_hyperv_exit__bindgen_ty_1::synic"]
3437        [::std::mem::offset_of!(kvm_hyperv_exit__bindgen_ty_1, synic) - 0usize];
3438    ["Offset of field: kvm_hyperv_exit__bindgen_ty_1::hcall"]
3439        [::std::mem::offset_of!(kvm_hyperv_exit__bindgen_ty_1, hcall) - 0usize];
3440    ["Offset of field: kvm_hyperv_exit__bindgen_ty_1::syndbg"]
3441        [::std::mem::offset_of!(kvm_hyperv_exit__bindgen_ty_1, syndbg) - 0usize];
3442};
3443impl Default for kvm_hyperv_exit__bindgen_ty_1 {
3444    fn default() -> Self {
3445        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3446        unsafe {
3447            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3448            s.assume_init()
3449        }
3450    }
3451}
3452impl ::std::fmt::Debug for kvm_hyperv_exit__bindgen_ty_1 {
3453    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3454        write!(f, "kvm_hyperv_exit__bindgen_ty_1 {{ union }}")
3455    }
3456}
3457#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3458const _: () = {
3459    ["Size of kvm_hyperv_exit"][::std::mem::size_of::<kvm_hyperv_exit>() - 56usize];
3460    ["Alignment of kvm_hyperv_exit"][::std::mem::align_of::<kvm_hyperv_exit>() - 8usize];
3461    ["Offset of field: kvm_hyperv_exit::type_"]
3462        [::std::mem::offset_of!(kvm_hyperv_exit, type_) - 0usize];
3463    ["Offset of field: kvm_hyperv_exit::pad1"]
3464        [::std::mem::offset_of!(kvm_hyperv_exit, pad1) - 4usize];
3465    ["Offset of field: kvm_hyperv_exit::u"][::std::mem::offset_of!(kvm_hyperv_exit, u) - 8usize];
3466};
3467impl Default for kvm_hyperv_exit {
3468    fn default() -> Self {
3469        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3470        unsafe {
3471            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3472            s.assume_init()
3473        }
3474    }
3475}
3476impl ::std::fmt::Debug for kvm_hyperv_exit {
3477    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3478        write!(
3479            f,
3480            "kvm_hyperv_exit {{ type: {:?}, pad1: {:?}, u: {:?} }}",
3481            self.type_, self.pad1, self.u
3482        )
3483    }
3484}
3485#[repr(C)]
3486#[derive(Copy, Clone)]
3487pub struct kvm_xen_exit {
3488    pub type_: __u32,
3489    pub u: kvm_xen_exit__bindgen_ty_1,
3490}
3491#[repr(C)]
3492#[derive(Copy, Clone)]
3493pub union kvm_xen_exit__bindgen_ty_1 {
3494    pub hcall: kvm_xen_exit__bindgen_ty_1__bindgen_ty_1,
3495}
3496#[repr(C)]
3497#[derive(Debug, Default, Copy, Clone, PartialEq)]
3498pub struct kvm_xen_exit__bindgen_ty_1__bindgen_ty_1 {
3499    pub longmode: __u32,
3500    pub cpl: __u32,
3501    pub input: __u64,
3502    pub result: __u64,
3503    pub params: [__u64; 6usize],
3504}
3505#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3506const _: () = {
3507    ["Size of kvm_xen_exit__bindgen_ty_1__bindgen_ty_1"]
3508        [::std::mem::size_of::<kvm_xen_exit__bindgen_ty_1__bindgen_ty_1>() - 72usize];
3509    ["Alignment of kvm_xen_exit__bindgen_ty_1__bindgen_ty_1"]
3510        [::std::mem::align_of::<kvm_xen_exit__bindgen_ty_1__bindgen_ty_1>() - 8usize];
3511    ["Offset of field: kvm_xen_exit__bindgen_ty_1__bindgen_ty_1::longmode"]
3512        [::std::mem::offset_of!(kvm_xen_exit__bindgen_ty_1__bindgen_ty_1, longmode) - 0usize];
3513    ["Offset of field: kvm_xen_exit__bindgen_ty_1__bindgen_ty_1::cpl"]
3514        [::std::mem::offset_of!(kvm_xen_exit__bindgen_ty_1__bindgen_ty_1, cpl) - 4usize];
3515    ["Offset of field: kvm_xen_exit__bindgen_ty_1__bindgen_ty_1::input"]
3516        [::std::mem::offset_of!(kvm_xen_exit__bindgen_ty_1__bindgen_ty_1, input) - 8usize];
3517    ["Offset of field: kvm_xen_exit__bindgen_ty_1__bindgen_ty_1::result"]
3518        [::std::mem::offset_of!(kvm_xen_exit__bindgen_ty_1__bindgen_ty_1, result) - 16usize];
3519    ["Offset of field: kvm_xen_exit__bindgen_ty_1__bindgen_ty_1::params"]
3520        [::std::mem::offset_of!(kvm_xen_exit__bindgen_ty_1__bindgen_ty_1, params) - 24usize];
3521};
3522#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3523const _: () = {
3524    ["Size of kvm_xen_exit__bindgen_ty_1"]
3525        [::std::mem::size_of::<kvm_xen_exit__bindgen_ty_1>() - 72usize];
3526    ["Alignment of kvm_xen_exit__bindgen_ty_1"]
3527        [::std::mem::align_of::<kvm_xen_exit__bindgen_ty_1>() - 8usize];
3528    ["Offset of field: kvm_xen_exit__bindgen_ty_1::hcall"]
3529        [::std::mem::offset_of!(kvm_xen_exit__bindgen_ty_1, hcall) - 0usize];
3530};
3531impl Default for kvm_xen_exit__bindgen_ty_1 {
3532    fn default() -> Self {
3533        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3534        unsafe {
3535            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3536            s.assume_init()
3537        }
3538    }
3539}
3540impl ::std::fmt::Debug for kvm_xen_exit__bindgen_ty_1 {
3541    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3542        write!(f, "kvm_xen_exit__bindgen_ty_1 {{ union }}")
3543    }
3544}
3545#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3546const _: () = {
3547    ["Size of kvm_xen_exit"][::std::mem::size_of::<kvm_xen_exit>() - 80usize];
3548    ["Alignment of kvm_xen_exit"][::std::mem::align_of::<kvm_xen_exit>() - 8usize];
3549    ["Offset of field: kvm_xen_exit::type_"][::std::mem::offset_of!(kvm_xen_exit, type_) - 0usize];
3550    ["Offset of field: kvm_xen_exit::u"][::std::mem::offset_of!(kvm_xen_exit, u) - 8usize];
3551};
3552impl Default for kvm_xen_exit {
3553    fn default() -> Self {
3554        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3555        unsafe {
3556            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3557            s.assume_init()
3558        }
3559    }
3560}
3561impl ::std::fmt::Debug for kvm_xen_exit {
3562    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3563        write!(
3564            f,
3565            "kvm_xen_exit {{ type: {:?}, u: {:?} }}",
3566            self.type_, self.u
3567        )
3568    }
3569}
3570#[repr(C)]
3571#[derive(Copy, Clone)]
3572pub struct kvm_run {
3573    pub request_interrupt_window: __u8,
3574    pub immediate_exit: __u8,
3575    pub padding1: [__u8; 6usize],
3576    pub exit_reason: __u32,
3577    pub ready_for_interrupt_injection: __u8,
3578    pub if_flag: __u8,
3579    pub flags: __u16,
3580    pub cr8: __u64,
3581    pub apic_base: __u64,
3582    pub __bindgen_anon_1: kvm_run__bindgen_ty_1,
3583    pub kvm_valid_regs: __u64,
3584    pub kvm_dirty_regs: __u64,
3585    pub s: kvm_run__bindgen_ty_2,
3586}
3587#[repr(C)]
3588#[derive(Copy, Clone)]
3589pub union kvm_run__bindgen_ty_1 {
3590    pub hw: kvm_run__bindgen_ty_1__bindgen_ty_1,
3591    pub fail_entry: kvm_run__bindgen_ty_1__bindgen_ty_2,
3592    pub ex: kvm_run__bindgen_ty_1__bindgen_ty_3,
3593    pub io: kvm_run__bindgen_ty_1__bindgen_ty_4,
3594    pub debug: kvm_run__bindgen_ty_1__bindgen_ty_5,
3595    pub mmio: kvm_run__bindgen_ty_1__bindgen_ty_6,
3596    pub iocsr_io: kvm_run__bindgen_ty_1__bindgen_ty_7,
3597    pub hypercall: kvm_run__bindgen_ty_1__bindgen_ty_8,
3598    pub tpr_access: kvm_run__bindgen_ty_1__bindgen_ty_9,
3599    pub s390_sieic: kvm_run__bindgen_ty_1__bindgen_ty_10,
3600    pub s390_reset_flags: __u64,
3601    pub s390_ucontrol: kvm_run__bindgen_ty_1__bindgen_ty_11,
3602    pub dcr: kvm_run__bindgen_ty_1__bindgen_ty_12,
3603    pub internal: kvm_run__bindgen_ty_1__bindgen_ty_13,
3604    pub emulation_failure: kvm_run__bindgen_ty_1__bindgen_ty_14,
3605    pub osi: kvm_run__bindgen_ty_1__bindgen_ty_15,
3606    pub papr_hcall: kvm_run__bindgen_ty_1__bindgen_ty_16,
3607    pub s390_tsch: kvm_run__bindgen_ty_1__bindgen_ty_17,
3608    pub epr: kvm_run__bindgen_ty_1__bindgen_ty_18,
3609    pub system_event: kvm_run__bindgen_ty_1__bindgen_ty_19,
3610    pub s390_stsi: kvm_run__bindgen_ty_1__bindgen_ty_20,
3611    pub eoi: kvm_run__bindgen_ty_1__bindgen_ty_21,
3612    pub hyperv: kvm_hyperv_exit,
3613    pub arm_nisv: kvm_run__bindgen_ty_1__bindgen_ty_22,
3614    pub msr: kvm_run__bindgen_ty_1__bindgen_ty_23,
3615    pub xen: kvm_xen_exit,
3616    pub riscv_sbi: kvm_run__bindgen_ty_1__bindgen_ty_24,
3617    pub riscv_csr: kvm_run__bindgen_ty_1__bindgen_ty_25,
3618    pub notify: kvm_run__bindgen_ty_1__bindgen_ty_26,
3619    pub memory_fault: kvm_run__bindgen_ty_1__bindgen_ty_27,
3620    pub padding: [::std::os::raw::c_char; 256usize],
3621}
3622#[repr(C)]
3623#[derive(Debug, Default, Copy, Clone, PartialEq)]
3624pub struct kvm_run__bindgen_ty_1__bindgen_ty_1 {
3625    pub hardware_exit_reason: __u64,
3626}
3627#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3628const _: () = {
3629    ["Size of kvm_run__bindgen_ty_1__bindgen_ty_1"]
3630        [::std::mem::size_of::<kvm_run__bindgen_ty_1__bindgen_ty_1>() - 8usize];
3631    ["Alignment of kvm_run__bindgen_ty_1__bindgen_ty_1"]
3632        [::std::mem::align_of::<kvm_run__bindgen_ty_1__bindgen_ty_1>() - 8usize];
3633    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_1::hardware_exit_reason"][::std::mem::offset_of!(
3634        kvm_run__bindgen_ty_1__bindgen_ty_1,
3635        hardware_exit_reason
3636    ) - 0usize];
3637};
3638#[repr(C)]
3639#[derive(Debug, Default, Copy, Clone, PartialEq)]
3640pub struct kvm_run__bindgen_ty_1__bindgen_ty_2 {
3641    pub hardware_entry_failure_reason: __u64,
3642    pub cpu: __u32,
3643}
3644#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3645const _: () = {
3646    ["Size of kvm_run__bindgen_ty_1__bindgen_ty_2"]
3647        [::std::mem::size_of::<kvm_run__bindgen_ty_1__bindgen_ty_2>() - 16usize];
3648    ["Alignment of kvm_run__bindgen_ty_1__bindgen_ty_2"]
3649        [::std::mem::align_of::<kvm_run__bindgen_ty_1__bindgen_ty_2>() - 8usize];
3650    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_2::hardware_entry_failure_reason"][::std::mem::offset_of!(
3651        kvm_run__bindgen_ty_1__bindgen_ty_2,
3652        hardware_entry_failure_reason
3653    )
3654        - 0usize];
3655    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_2::cpu"]
3656        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_2, cpu) - 8usize];
3657};
3658#[repr(C)]
3659#[derive(Debug, Default, Copy, Clone, PartialEq)]
3660pub struct kvm_run__bindgen_ty_1__bindgen_ty_3 {
3661    pub exception: __u32,
3662    pub error_code: __u32,
3663}
3664#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3665const _: () = {
3666    ["Size of kvm_run__bindgen_ty_1__bindgen_ty_3"]
3667        [::std::mem::size_of::<kvm_run__bindgen_ty_1__bindgen_ty_3>() - 8usize];
3668    ["Alignment of kvm_run__bindgen_ty_1__bindgen_ty_3"]
3669        [::std::mem::align_of::<kvm_run__bindgen_ty_1__bindgen_ty_3>() - 4usize];
3670    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_3::exception"]
3671        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_3, exception) - 0usize];
3672    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_3::error_code"]
3673        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_3, error_code) - 4usize];
3674};
3675#[repr(C)]
3676#[derive(Debug, Default, Copy, Clone, PartialEq)]
3677pub struct kvm_run__bindgen_ty_1__bindgen_ty_4 {
3678    pub direction: __u8,
3679    pub size: __u8,
3680    pub port: __u16,
3681    pub count: __u32,
3682    pub data_offset: __u64,
3683}
3684#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3685const _: () = {
3686    ["Size of kvm_run__bindgen_ty_1__bindgen_ty_4"]
3687        [::std::mem::size_of::<kvm_run__bindgen_ty_1__bindgen_ty_4>() - 16usize];
3688    ["Alignment of kvm_run__bindgen_ty_1__bindgen_ty_4"]
3689        [::std::mem::align_of::<kvm_run__bindgen_ty_1__bindgen_ty_4>() - 8usize];
3690    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_4::direction"]
3691        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_4, direction) - 0usize];
3692    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_4::size"]
3693        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_4, size) - 1usize];
3694    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_4::port"]
3695        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_4, port) - 2usize];
3696    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_4::count"]
3697        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_4, count) - 4usize];
3698    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_4::data_offset"]
3699        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_4, data_offset) - 8usize];
3700};
3701#[repr(C)]
3702#[derive(Debug, Default, Copy, Clone, PartialEq)]
3703pub struct kvm_run__bindgen_ty_1__bindgen_ty_5 {
3704    pub arch: kvm_debug_exit_arch,
3705}
3706#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3707const _: () = {
3708    ["Size of kvm_run__bindgen_ty_1__bindgen_ty_5"]
3709        [::std::mem::size_of::<kvm_run__bindgen_ty_1__bindgen_ty_5>() - 32usize];
3710    ["Alignment of kvm_run__bindgen_ty_1__bindgen_ty_5"]
3711        [::std::mem::align_of::<kvm_run__bindgen_ty_1__bindgen_ty_5>() - 8usize];
3712    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_5::arch"]
3713        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_5, arch) - 0usize];
3714};
3715#[repr(C)]
3716#[derive(Debug, Default, Copy, Clone, PartialEq)]
3717pub struct kvm_run__bindgen_ty_1__bindgen_ty_6 {
3718    pub phys_addr: __u64,
3719    pub data: [__u8; 8usize],
3720    pub len: __u32,
3721    pub is_write: __u8,
3722}
3723#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3724const _: () = {
3725    ["Size of kvm_run__bindgen_ty_1__bindgen_ty_6"]
3726        [::std::mem::size_of::<kvm_run__bindgen_ty_1__bindgen_ty_6>() - 24usize];
3727    ["Alignment of kvm_run__bindgen_ty_1__bindgen_ty_6"]
3728        [::std::mem::align_of::<kvm_run__bindgen_ty_1__bindgen_ty_6>() - 8usize];
3729    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_6::phys_addr"]
3730        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_6, phys_addr) - 0usize];
3731    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_6::data"]
3732        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_6, data) - 8usize];
3733    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_6::len"]
3734        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_6, len) - 16usize];
3735    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_6::is_write"]
3736        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_6, is_write) - 20usize];
3737};
3738#[repr(C)]
3739#[derive(Debug, Default, Copy, Clone, PartialEq)]
3740pub struct kvm_run__bindgen_ty_1__bindgen_ty_7 {
3741    pub phys_addr: __u64,
3742    pub data: [__u8; 8usize],
3743    pub len: __u32,
3744    pub is_write: __u8,
3745}
3746#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3747const _: () = {
3748    ["Size of kvm_run__bindgen_ty_1__bindgen_ty_7"]
3749        [::std::mem::size_of::<kvm_run__bindgen_ty_1__bindgen_ty_7>() - 24usize];
3750    ["Alignment of kvm_run__bindgen_ty_1__bindgen_ty_7"]
3751        [::std::mem::align_of::<kvm_run__bindgen_ty_1__bindgen_ty_7>() - 8usize];
3752    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_7::phys_addr"]
3753        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_7, phys_addr) - 0usize];
3754    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_7::data"]
3755        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_7, data) - 8usize];
3756    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_7::len"]
3757        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_7, len) - 16usize];
3758    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_7::is_write"]
3759        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_7, is_write) - 20usize];
3760};
3761#[repr(C)]
3762#[derive(Copy, Clone)]
3763pub struct kvm_run__bindgen_ty_1__bindgen_ty_8 {
3764    pub nr: __u64,
3765    pub args: [__u64; 6usize],
3766    pub ret: __u64,
3767    pub __bindgen_anon_1: kvm_run__bindgen_ty_1__bindgen_ty_8__bindgen_ty_1,
3768}
3769#[repr(C)]
3770#[derive(Copy, Clone)]
3771pub union kvm_run__bindgen_ty_1__bindgen_ty_8__bindgen_ty_1 {
3772    pub longmode: __u32,
3773    pub flags: __u64,
3774}
3775#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3776const _: () = {
3777    ["Size of kvm_run__bindgen_ty_1__bindgen_ty_8__bindgen_ty_1"]
3778        [::std::mem::size_of::<kvm_run__bindgen_ty_1__bindgen_ty_8__bindgen_ty_1>() - 8usize];
3779    ["Alignment of kvm_run__bindgen_ty_1__bindgen_ty_8__bindgen_ty_1"]
3780        [::std::mem::align_of::<kvm_run__bindgen_ty_1__bindgen_ty_8__bindgen_ty_1>() - 8usize];
3781    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_8__bindgen_ty_1::longmode"][::std::mem::offset_of!(
3782        kvm_run__bindgen_ty_1__bindgen_ty_8__bindgen_ty_1,
3783        longmode
3784    ) - 0usize];
3785    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_8__bindgen_ty_1::flags"]
3786        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_8__bindgen_ty_1, flags) - 0usize];
3787};
3788impl Default for kvm_run__bindgen_ty_1__bindgen_ty_8__bindgen_ty_1 {
3789    fn default() -> Self {
3790        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3791        unsafe {
3792            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3793            s.assume_init()
3794        }
3795    }
3796}
3797impl ::std::fmt::Debug for kvm_run__bindgen_ty_1__bindgen_ty_8__bindgen_ty_1 {
3798    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3799        write!(
3800            f,
3801            "kvm_run__bindgen_ty_1__bindgen_ty_8__bindgen_ty_1 {{ union }}"
3802        )
3803    }
3804}
3805#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3806const _: () = {
3807    ["Size of kvm_run__bindgen_ty_1__bindgen_ty_8"]
3808        [::std::mem::size_of::<kvm_run__bindgen_ty_1__bindgen_ty_8>() - 72usize];
3809    ["Alignment of kvm_run__bindgen_ty_1__bindgen_ty_8"]
3810        [::std::mem::align_of::<kvm_run__bindgen_ty_1__bindgen_ty_8>() - 8usize];
3811    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_8::nr"]
3812        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_8, nr) - 0usize];
3813    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_8::args"]
3814        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_8, args) - 8usize];
3815    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_8::ret"]
3816        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_8, ret) - 56usize];
3817};
3818impl Default for kvm_run__bindgen_ty_1__bindgen_ty_8 {
3819    fn default() -> Self {
3820        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3821        unsafe {
3822            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3823            s.assume_init()
3824        }
3825    }
3826}
3827impl ::std::fmt::Debug for kvm_run__bindgen_ty_1__bindgen_ty_8 {
3828    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3829        write ! (f , "kvm_run__bindgen_ty_1__bindgen_ty_8 {{ nr: {:?}, args: {:?}, ret: {:?}, __bindgen_anon_1: {:?} }}" , self . nr , self . args , self . ret , self . __bindgen_anon_1)
3830    }
3831}
3832#[repr(C)]
3833#[derive(Debug, Default, Copy, Clone, PartialEq)]
3834pub struct kvm_run__bindgen_ty_1__bindgen_ty_9 {
3835    pub rip: __u64,
3836    pub is_write: __u32,
3837    pub pad: __u32,
3838}
3839#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3840const _: () = {
3841    ["Size of kvm_run__bindgen_ty_1__bindgen_ty_9"]
3842        [::std::mem::size_of::<kvm_run__bindgen_ty_1__bindgen_ty_9>() - 16usize];
3843    ["Alignment of kvm_run__bindgen_ty_1__bindgen_ty_9"]
3844        [::std::mem::align_of::<kvm_run__bindgen_ty_1__bindgen_ty_9>() - 8usize];
3845    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_9::rip"]
3846        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_9, rip) - 0usize];
3847    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_9::is_write"]
3848        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_9, is_write) - 8usize];
3849    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_9::pad"]
3850        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_9, pad) - 12usize];
3851};
3852#[repr(C)]
3853#[derive(Debug, Default, Copy, Clone, PartialEq)]
3854pub struct kvm_run__bindgen_ty_1__bindgen_ty_10 {
3855    pub icptcode: __u8,
3856    pub ipa: __u16,
3857    pub ipb: __u32,
3858}
3859#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3860const _: () = {
3861    ["Size of kvm_run__bindgen_ty_1__bindgen_ty_10"]
3862        [::std::mem::size_of::<kvm_run__bindgen_ty_1__bindgen_ty_10>() - 8usize];
3863    ["Alignment of kvm_run__bindgen_ty_1__bindgen_ty_10"]
3864        [::std::mem::align_of::<kvm_run__bindgen_ty_1__bindgen_ty_10>() - 4usize];
3865    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_10::icptcode"]
3866        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_10, icptcode) - 0usize];
3867    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_10::ipa"]
3868        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_10, ipa) - 2usize];
3869    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_10::ipb"]
3870        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_10, ipb) - 4usize];
3871};
3872#[repr(C)]
3873#[derive(Debug, Default, Copy, Clone, PartialEq)]
3874pub struct kvm_run__bindgen_ty_1__bindgen_ty_11 {
3875    pub trans_exc_code: __u64,
3876    pub pgm_code: __u32,
3877}
3878#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3879const _: () = {
3880    ["Size of kvm_run__bindgen_ty_1__bindgen_ty_11"]
3881        [::std::mem::size_of::<kvm_run__bindgen_ty_1__bindgen_ty_11>() - 16usize];
3882    ["Alignment of kvm_run__bindgen_ty_1__bindgen_ty_11"]
3883        [::std::mem::align_of::<kvm_run__bindgen_ty_1__bindgen_ty_11>() - 8usize];
3884    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_11::trans_exc_code"]
3885        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_11, trans_exc_code) - 0usize];
3886    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_11::pgm_code"]
3887        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_11, pgm_code) - 8usize];
3888};
3889#[repr(C)]
3890#[derive(Debug, Default, Copy, Clone, PartialEq)]
3891pub struct kvm_run__bindgen_ty_1__bindgen_ty_12 {
3892    pub dcrn: __u32,
3893    pub data: __u32,
3894    pub is_write: __u8,
3895}
3896#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3897const _: () = {
3898    ["Size of kvm_run__bindgen_ty_1__bindgen_ty_12"]
3899        [::std::mem::size_of::<kvm_run__bindgen_ty_1__bindgen_ty_12>() - 12usize];
3900    ["Alignment of kvm_run__bindgen_ty_1__bindgen_ty_12"]
3901        [::std::mem::align_of::<kvm_run__bindgen_ty_1__bindgen_ty_12>() - 4usize];
3902    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_12::dcrn"]
3903        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_12, dcrn) - 0usize];
3904    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_12::data"]
3905        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_12, data) - 4usize];
3906    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_12::is_write"]
3907        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_12, is_write) - 8usize];
3908};
3909#[repr(C)]
3910#[derive(Debug, Default, Copy, Clone, PartialEq)]
3911pub struct kvm_run__bindgen_ty_1__bindgen_ty_13 {
3912    pub suberror: __u32,
3913    pub ndata: __u32,
3914    pub data: [__u64; 16usize],
3915}
3916#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3917const _: () = {
3918    ["Size of kvm_run__bindgen_ty_1__bindgen_ty_13"]
3919        [::std::mem::size_of::<kvm_run__bindgen_ty_1__bindgen_ty_13>() - 136usize];
3920    ["Alignment of kvm_run__bindgen_ty_1__bindgen_ty_13"]
3921        [::std::mem::align_of::<kvm_run__bindgen_ty_1__bindgen_ty_13>() - 8usize];
3922    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_13::suberror"]
3923        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_13, suberror) - 0usize];
3924    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_13::ndata"]
3925        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_13, ndata) - 4usize];
3926    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_13::data"]
3927        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_13, data) - 8usize];
3928};
3929#[repr(C)]
3930#[derive(Copy, Clone)]
3931pub struct kvm_run__bindgen_ty_1__bindgen_ty_14 {
3932    pub suberror: __u32,
3933    pub ndata: __u32,
3934    pub flags: __u64,
3935    pub __bindgen_anon_1: kvm_run__bindgen_ty_1__bindgen_ty_14__bindgen_ty_1,
3936}
3937#[repr(C)]
3938#[derive(Copy, Clone)]
3939pub union kvm_run__bindgen_ty_1__bindgen_ty_14__bindgen_ty_1 {
3940    pub __bindgen_anon_1: kvm_run__bindgen_ty_1__bindgen_ty_14__bindgen_ty_1__bindgen_ty_1,
3941}
3942#[repr(C)]
3943#[derive(Debug, Default, Copy, Clone, PartialEq)]
3944pub struct kvm_run__bindgen_ty_1__bindgen_ty_14__bindgen_ty_1__bindgen_ty_1 {
3945    pub insn_size: __u8,
3946    pub insn_bytes: [__u8; 15usize],
3947}
3948#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3949const _: () = {
3950    ["Size of kvm_run__bindgen_ty_1__bindgen_ty_14__bindgen_ty_1__bindgen_ty_1"][::std::mem::size_of::<
3951        kvm_run__bindgen_ty_1__bindgen_ty_14__bindgen_ty_1__bindgen_ty_1,
3952    >() - 16usize];
3953    ["Alignment of kvm_run__bindgen_ty_1__bindgen_ty_14__bindgen_ty_1__bindgen_ty_1"]
3954        [::std::mem::align_of::<kvm_run__bindgen_ty_1__bindgen_ty_14__bindgen_ty_1__bindgen_ty_1>(
3955        ) - 1usize];
3956    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_14__bindgen_ty_1__bindgen_ty_1::insn_size"] [:: std :: mem :: offset_of ! (kvm_run__bindgen_ty_1__bindgen_ty_14__bindgen_ty_1__bindgen_ty_1 , insn_size) - 0usize] ;
3957    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_14__bindgen_ty_1__bindgen_ty_1::insn_bytes"] [:: std :: mem :: offset_of ! (kvm_run__bindgen_ty_1__bindgen_ty_14__bindgen_ty_1__bindgen_ty_1 , insn_bytes) - 1usize] ;
3958};
3959#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3960const _: () = {
3961    ["Size of kvm_run__bindgen_ty_1__bindgen_ty_14__bindgen_ty_1"]
3962        [::std::mem::size_of::<kvm_run__bindgen_ty_1__bindgen_ty_14__bindgen_ty_1>() - 16usize];
3963    ["Alignment of kvm_run__bindgen_ty_1__bindgen_ty_14__bindgen_ty_1"]
3964        [::std::mem::align_of::<kvm_run__bindgen_ty_1__bindgen_ty_14__bindgen_ty_1>() - 1usize];
3965};
3966impl Default for kvm_run__bindgen_ty_1__bindgen_ty_14__bindgen_ty_1 {
3967    fn default() -> Self {
3968        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3969        unsafe {
3970            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3971            s.assume_init()
3972        }
3973    }
3974}
3975impl ::std::fmt::Debug for kvm_run__bindgen_ty_1__bindgen_ty_14__bindgen_ty_1 {
3976    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3977        write!(
3978            f,
3979            "kvm_run__bindgen_ty_1__bindgen_ty_14__bindgen_ty_1 {{ union }}"
3980        )
3981    }
3982}
3983#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3984const _: () = {
3985    ["Size of kvm_run__bindgen_ty_1__bindgen_ty_14"]
3986        [::std::mem::size_of::<kvm_run__bindgen_ty_1__bindgen_ty_14>() - 32usize];
3987    ["Alignment of kvm_run__bindgen_ty_1__bindgen_ty_14"]
3988        [::std::mem::align_of::<kvm_run__bindgen_ty_1__bindgen_ty_14>() - 8usize];
3989    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_14::suberror"]
3990        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_14, suberror) - 0usize];
3991    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_14::ndata"]
3992        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_14, ndata) - 4usize];
3993    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_14::flags"]
3994        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_14, flags) - 8usize];
3995};
3996impl Default for kvm_run__bindgen_ty_1__bindgen_ty_14 {
3997    fn default() -> Self {
3998        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3999        unsafe {
4000            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4001            s.assume_init()
4002        }
4003    }
4004}
4005impl ::std::fmt::Debug for kvm_run__bindgen_ty_1__bindgen_ty_14 {
4006    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4007        write ! (f , "kvm_run__bindgen_ty_1__bindgen_ty_14 {{ suberror: {:?}, ndata: {:?}, flags: {:?}, __bindgen_anon_1: {:?} }}" , self . suberror , self . ndata , self . flags , self . __bindgen_anon_1)
4008    }
4009}
4010#[repr(C)]
4011#[derive(Debug, Default, Copy, Clone, PartialEq)]
4012pub struct kvm_run__bindgen_ty_1__bindgen_ty_15 {
4013    pub gprs: [__u64; 32usize],
4014}
4015#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4016const _: () = {
4017    ["Size of kvm_run__bindgen_ty_1__bindgen_ty_15"]
4018        [::std::mem::size_of::<kvm_run__bindgen_ty_1__bindgen_ty_15>() - 256usize];
4019    ["Alignment of kvm_run__bindgen_ty_1__bindgen_ty_15"]
4020        [::std::mem::align_of::<kvm_run__bindgen_ty_1__bindgen_ty_15>() - 8usize];
4021    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_15::gprs"]
4022        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_15, gprs) - 0usize];
4023};
4024#[repr(C)]
4025#[derive(Debug, Default, Copy, Clone, PartialEq)]
4026pub struct kvm_run__bindgen_ty_1__bindgen_ty_16 {
4027    pub nr: __u64,
4028    pub ret: __u64,
4029    pub args: [__u64; 9usize],
4030}
4031#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4032const _: () = {
4033    ["Size of kvm_run__bindgen_ty_1__bindgen_ty_16"]
4034        [::std::mem::size_of::<kvm_run__bindgen_ty_1__bindgen_ty_16>() - 88usize];
4035    ["Alignment of kvm_run__bindgen_ty_1__bindgen_ty_16"]
4036        [::std::mem::align_of::<kvm_run__bindgen_ty_1__bindgen_ty_16>() - 8usize];
4037    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_16::nr"]
4038        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_16, nr) - 0usize];
4039    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_16::ret"]
4040        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_16, ret) - 8usize];
4041    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_16::args"]
4042        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_16, args) - 16usize];
4043};
4044#[repr(C)]
4045#[derive(Debug, Default, Copy, Clone, PartialEq)]
4046pub struct kvm_run__bindgen_ty_1__bindgen_ty_17 {
4047    pub subchannel_id: __u16,
4048    pub subchannel_nr: __u16,
4049    pub io_int_parm: __u32,
4050    pub io_int_word: __u32,
4051    pub ipb: __u32,
4052    pub dequeued: __u8,
4053}
4054#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4055const _: () = {
4056    ["Size of kvm_run__bindgen_ty_1__bindgen_ty_17"]
4057        [::std::mem::size_of::<kvm_run__bindgen_ty_1__bindgen_ty_17>() - 20usize];
4058    ["Alignment of kvm_run__bindgen_ty_1__bindgen_ty_17"]
4059        [::std::mem::align_of::<kvm_run__bindgen_ty_1__bindgen_ty_17>() - 4usize];
4060    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_17::subchannel_id"]
4061        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_17, subchannel_id) - 0usize];
4062    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_17::subchannel_nr"]
4063        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_17, subchannel_nr) - 2usize];
4064    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_17::io_int_parm"]
4065        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_17, io_int_parm) - 4usize];
4066    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_17::io_int_word"]
4067        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_17, io_int_word) - 8usize];
4068    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_17::ipb"]
4069        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_17, ipb) - 12usize];
4070    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_17::dequeued"]
4071        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_17, dequeued) - 16usize];
4072};
4073#[repr(C)]
4074#[derive(Debug, Default, Copy, Clone, PartialEq)]
4075pub struct kvm_run__bindgen_ty_1__bindgen_ty_18 {
4076    pub epr: __u32,
4077}
4078#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4079const _: () = {
4080    ["Size of kvm_run__bindgen_ty_1__bindgen_ty_18"]
4081        [::std::mem::size_of::<kvm_run__bindgen_ty_1__bindgen_ty_18>() - 4usize];
4082    ["Alignment of kvm_run__bindgen_ty_1__bindgen_ty_18"]
4083        [::std::mem::align_of::<kvm_run__bindgen_ty_1__bindgen_ty_18>() - 4usize];
4084    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_18::epr"]
4085        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_18, epr) - 0usize];
4086};
4087#[repr(C)]
4088#[derive(Copy, Clone)]
4089pub struct kvm_run__bindgen_ty_1__bindgen_ty_19 {
4090    pub type_: __u32,
4091    pub ndata: __u32,
4092    pub __bindgen_anon_1: kvm_run__bindgen_ty_1__bindgen_ty_19__bindgen_ty_1,
4093}
4094#[repr(C)]
4095#[derive(Copy, Clone)]
4096pub union kvm_run__bindgen_ty_1__bindgen_ty_19__bindgen_ty_1 {
4097    pub flags: __u64,
4098    pub data: [__u64; 16usize],
4099}
4100#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4101const _: () = {
4102    ["Size of kvm_run__bindgen_ty_1__bindgen_ty_19__bindgen_ty_1"]
4103        [::std::mem::size_of::<kvm_run__bindgen_ty_1__bindgen_ty_19__bindgen_ty_1>() - 128usize];
4104    ["Alignment of kvm_run__bindgen_ty_1__bindgen_ty_19__bindgen_ty_1"]
4105        [::std::mem::align_of::<kvm_run__bindgen_ty_1__bindgen_ty_19__bindgen_ty_1>() - 8usize];
4106    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_19__bindgen_ty_1::flags"][::std::mem::offset_of!(
4107        kvm_run__bindgen_ty_1__bindgen_ty_19__bindgen_ty_1,
4108        flags
4109    ) - 0usize];
4110    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_19__bindgen_ty_1::data"]
4111        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_19__bindgen_ty_1, data) - 0usize];
4112};
4113impl Default for kvm_run__bindgen_ty_1__bindgen_ty_19__bindgen_ty_1 {
4114    fn default() -> Self {
4115        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4116        unsafe {
4117            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4118            s.assume_init()
4119        }
4120    }
4121}
4122impl ::std::fmt::Debug for kvm_run__bindgen_ty_1__bindgen_ty_19__bindgen_ty_1 {
4123    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4124        write!(
4125            f,
4126            "kvm_run__bindgen_ty_1__bindgen_ty_19__bindgen_ty_1 {{ union }}"
4127        )
4128    }
4129}
4130#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4131const _: () = {
4132    ["Size of kvm_run__bindgen_ty_1__bindgen_ty_19"]
4133        [::std::mem::size_of::<kvm_run__bindgen_ty_1__bindgen_ty_19>() - 136usize];
4134    ["Alignment of kvm_run__bindgen_ty_1__bindgen_ty_19"]
4135        [::std::mem::align_of::<kvm_run__bindgen_ty_1__bindgen_ty_19>() - 8usize];
4136    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_19::type_"]
4137        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_19, type_) - 0usize];
4138    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_19::ndata"]
4139        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_19, ndata) - 4usize];
4140};
4141impl Default for kvm_run__bindgen_ty_1__bindgen_ty_19 {
4142    fn default() -> Self {
4143        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4144        unsafe {
4145            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4146            s.assume_init()
4147        }
4148    }
4149}
4150impl ::std::fmt::Debug for kvm_run__bindgen_ty_1__bindgen_ty_19 {
4151    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4152        write ! (f , "kvm_run__bindgen_ty_1__bindgen_ty_19 {{ type: {:?}, ndata: {:?}, __bindgen_anon_1: {:?} }}" , self . type_ , self . ndata , self . __bindgen_anon_1)
4153    }
4154}
4155#[repr(C)]
4156#[derive(Debug, Default, Copy, Clone, PartialEq)]
4157pub struct kvm_run__bindgen_ty_1__bindgen_ty_20 {
4158    pub addr: __u64,
4159    pub ar: __u8,
4160    pub reserved: __u8,
4161    pub fc: __u8,
4162    pub sel1: __u8,
4163    pub sel2: __u16,
4164}
4165#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4166const _: () = {
4167    ["Size of kvm_run__bindgen_ty_1__bindgen_ty_20"]
4168        [::std::mem::size_of::<kvm_run__bindgen_ty_1__bindgen_ty_20>() - 16usize];
4169    ["Alignment of kvm_run__bindgen_ty_1__bindgen_ty_20"]
4170        [::std::mem::align_of::<kvm_run__bindgen_ty_1__bindgen_ty_20>() - 8usize];
4171    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_20::addr"]
4172        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_20, addr) - 0usize];
4173    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_20::ar"]
4174        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_20, ar) - 8usize];
4175    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_20::reserved"]
4176        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_20, reserved) - 9usize];
4177    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_20::fc"]
4178        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_20, fc) - 10usize];
4179    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_20::sel1"]
4180        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_20, sel1) - 11usize];
4181    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_20::sel2"]
4182        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_20, sel2) - 12usize];
4183};
4184#[repr(C)]
4185#[derive(Debug, Default, Copy, Clone, PartialEq)]
4186pub struct kvm_run__bindgen_ty_1__bindgen_ty_21 {
4187    pub vector: __u8,
4188}
4189#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4190const _: () = {
4191    ["Size of kvm_run__bindgen_ty_1__bindgen_ty_21"]
4192        [::std::mem::size_of::<kvm_run__bindgen_ty_1__bindgen_ty_21>() - 1usize];
4193    ["Alignment of kvm_run__bindgen_ty_1__bindgen_ty_21"]
4194        [::std::mem::align_of::<kvm_run__bindgen_ty_1__bindgen_ty_21>() - 1usize];
4195    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_21::vector"]
4196        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_21, vector) - 0usize];
4197};
4198#[repr(C)]
4199#[derive(Debug, Default, Copy, Clone, PartialEq)]
4200pub struct kvm_run__bindgen_ty_1__bindgen_ty_22 {
4201    pub esr_iss: __u64,
4202    pub fault_ipa: __u64,
4203}
4204#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4205const _: () = {
4206    ["Size of kvm_run__bindgen_ty_1__bindgen_ty_22"]
4207        [::std::mem::size_of::<kvm_run__bindgen_ty_1__bindgen_ty_22>() - 16usize];
4208    ["Alignment of kvm_run__bindgen_ty_1__bindgen_ty_22"]
4209        [::std::mem::align_of::<kvm_run__bindgen_ty_1__bindgen_ty_22>() - 8usize];
4210    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_22::esr_iss"]
4211        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_22, esr_iss) - 0usize];
4212    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_22::fault_ipa"]
4213        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_22, fault_ipa) - 8usize];
4214};
4215#[repr(C)]
4216#[derive(Debug, Default, Copy, Clone, PartialEq)]
4217pub struct kvm_run__bindgen_ty_1__bindgen_ty_23 {
4218    pub error: __u8,
4219    pub pad: [__u8; 7usize],
4220    pub reason: __u32,
4221    pub index: __u32,
4222    pub data: __u64,
4223}
4224#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4225const _: () = {
4226    ["Size of kvm_run__bindgen_ty_1__bindgen_ty_23"]
4227        [::std::mem::size_of::<kvm_run__bindgen_ty_1__bindgen_ty_23>() - 24usize];
4228    ["Alignment of kvm_run__bindgen_ty_1__bindgen_ty_23"]
4229        [::std::mem::align_of::<kvm_run__bindgen_ty_1__bindgen_ty_23>() - 8usize];
4230    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_23::error"]
4231        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_23, error) - 0usize];
4232    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_23::pad"]
4233        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_23, pad) - 1usize];
4234    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_23::reason"]
4235        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_23, reason) - 8usize];
4236    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_23::index"]
4237        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_23, index) - 12usize];
4238    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_23::data"]
4239        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_23, data) - 16usize];
4240};
4241#[repr(C)]
4242#[derive(Debug, Default, Copy, Clone, PartialEq)]
4243pub struct kvm_run__bindgen_ty_1__bindgen_ty_24 {
4244    pub extension_id: ::std::os::raw::c_ulong,
4245    pub function_id: ::std::os::raw::c_ulong,
4246    pub args: [::std::os::raw::c_ulong; 6usize],
4247    pub ret: [::std::os::raw::c_ulong; 2usize],
4248}
4249#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4250const _: () = {
4251    ["Size of kvm_run__bindgen_ty_1__bindgen_ty_24"]
4252        [::std::mem::size_of::<kvm_run__bindgen_ty_1__bindgen_ty_24>() - 80usize];
4253    ["Alignment of kvm_run__bindgen_ty_1__bindgen_ty_24"]
4254        [::std::mem::align_of::<kvm_run__bindgen_ty_1__bindgen_ty_24>() - 8usize];
4255    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_24::extension_id"]
4256        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_24, extension_id) - 0usize];
4257    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_24::function_id"]
4258        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_24, function_id) - 8usize];
4259    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_24::args"]
4260        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_24, args) - 16usize];
4261    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_24::ret"]
4262        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_24, ret) - 64usize];
4263};
4264#[repr(C)]
4265#[derive(Debug, Default, Copy, Clone, PartialEq)]
4266pub struct kvm_run__bindgen_ty_1__bindgen_ty_25 {
4267    pub csr_num: ::std::os::raw::c_ulong,
4268    pub new_value: ::std::os::raw::c_ulong,
4269    pub write_mask: ::std::os::raw::c_ulong,
4270    pub ret_value: ::std::os::raw::c_ulong,
4271}
4272#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4273const _: () = {
4274    ["Size of kvm_run__bindgen_ty_1__bindgen_ty_25"]
4275        [::std::mem::size_of::<kvm_run__bindgen_ty_1__bindgen_ty_25>() - 32usize];
4276    ["Alignment of kvm_run__bindgen_ty_1__bindgen_ty_25"]
4277        [::std::mem::align_of::<kvm_run__bindgen_ty_1__bindgen_ty_25>() - 8usize];
4278    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_25::csr_num"]
4279        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_25, csr_num) - 0usize];
4280    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_25::new_value"]
4281        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_25, new_value) - 8usize];
4282    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_25::write_mask"]
4283        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_25, write_mask) - 16usize];
4284    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_25::ret_value"]
4285        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_25, ret_value) - 24usize];
4286};
4287#[repr(C)]
4288#[derive(Debug, Default, Copy, Clone, PartialEq)]
4289pub struct kvm_run__bindgen_ty_1__bindgen_ty_26 {
4290    pub flags: __u32,
4291}
4292#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4293const _: () = {
4294    ["Size of kvm_run__bindgen_ty_1__bindgen_ty_26"]
4295        [::std::mem::size_of::<kvm_run__bindgen_ty_1__bindgen_ty_26>() - 4usize];
4296    ["Alignment of kvm_run__bindgen_ty_1__bindgen_ty_26"]
4297        [::std::mem::align_of::<kvm_run__bindgen_ty_1__bindgen_ty_26>() - 4usize];
4298    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_26::flags"]
4299        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_26, flags) - 0usize];
4300};
4301#[repr(C)]
4302#[derive(Debug, Default, Copy, Clone, PartialEq)]
4303pub struct kvm_run__bindgen_ty_1__bindgen_ty_27 {
4304    pub flags: __u64,
4305    pub gpa: __u64,
4306    pub size: __u64,
4307}
4308#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4309const _: () = {
4310    ["Size of kvm_run__bindgen_ty_1__bindgen_ty_27"]
4311        [::std::mem::size_of::<kvm_run__bindgen_ty_1__bindgen_ty_27>() - 24usize];
4312    ["Alignment of kvm_run__bindgen_ty_1__bindgen_ty_27"]
4313        [::std::mem::align_of::<kvm_run__bindgen_ty_1__bindgen_ty_27>() - 8usize];
4314    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_27::flags"]
4315        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_27, flags) - 0usize];
4316    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_27::gpa"]
4317        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_27, gpa) - 8usize];
4318    ["Offset of field: kvm_run__bindgen_ty_1__bindgen_ty_27::size"]
4319        [::std::mem::offset_of!(kvm_run__bindgen_ty_1__bindgen_ty_27, size) - 16usize];
4320};
4321#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4322const _: () = {
4323    ["Size of kvm_run__bindgen_ty_1"][::std::mem::size_of::<kvm_run__bindgen_ty_1>() - 256usize];
4324    ["Alignment of kvm_run__bindgen_ty_1"]
4325        [::std::mem::align_of::<kvm_run__bindgen_ty_1>() - 8usize];
4326    ["Offset of field: kvm_run__bindgen_ty_1::hw"]
4327        [::std::mem::offset_of!(kvm_run__bindgen_ty_1, hw) - 0usize];
4328    ["Offset of field: kvm_run__bindgen_ty_1::fail_entry"]
4329        [::std::mem::offset_of!(kvm_run__bindgen_ty_1, fail_entry) - 0usize];
4330    ["Offset of field: kvm_run__bindgen_ty_1::ex"]
4331        [::std::mem::offset_of!(kvm_run__bindgen_ty_1, ex) - 0usize];
4332    ["Offset of field: kvm_run__bindgen_ty_1::io"]
4333        [::std::mem::offset_of!(kvm_run__bindgen_ty_1, io) - 0usize];
4334    ["Offset of field: kvm_run__bindgen_ty_1::debug"]
4335        [::std::mem::offset_of!(kvm_run__bindgen_ty_1, debug) - 0usize];
4336    ["Offset of field: kvm_run__bindgen_ty_1::mmio"]
4337        [::std::mem::offset_of!(kvm_run__bindgen_ty_1, mmio) - 0usize];
4338    ["Offset of field: kvm_run__bindgen_ty_1::iocsr_io"]
4339        [::std::mem::offset_of!(kvm_run__bindgen_ty_1, iocsr_io) - 0usize];
4340    ["Offset of field: kvm_run__bindgen_ty_1::hypercall"]
4341        [::std::mem::offset_of!(kvm_run__bindgen_ty_1, hypercall) - 0usize];
4342    ["Offset of field: kvm_run__bindgen_ty_1::tpr_access"]
4343        [::std::mem::offset_of!(kvm_run__bindgen_ty_1, tpr_access) - 0usize];
4344    ["Offset of field: kvm_run__bindgen_ty_1::s390_sieic"]
4345        [::std::mem::offset_of!(kvm_run__bindgen_ty_1, s390_sieic) - 0usize];
4346    ["Offset of field: kvm_run__bindgen_ty_1::s390_reset_flags"]
4347        [::std::mem::offset_of!(kvm_run__bindgen_ty_1, s390_reset_flags) - 0usize];
4348    ["Offset of field: kvm_run__bindgen_ty_1::s390_ucontrol"]
4349        [::std::mem::offset_of!(kvm_run__bindgen_ty_1, s390_ucontrol) - 0usize];
4350    ["Offset of field: kvm_run__bindgen_ty_1::dcr"]
4351        [::std::mem::offset_of!(kvm_run__bindgen_ty_1, dcr) - 0usize];
4352    ["Offset of field: kvm_run__bindgen_ty_1::internal"]
4353        [::std::mem::offset_of!(kvm_run__bindgen_ty_1, internal) - 0usize];
4354    ["Offset of field: kvm_run__bindgen_ty_1::emulation_failure"]
4355        [::std::mem::offset_of!(kvm_run__bindgen_ty_1, emulation_failure) - 0usize];
4356    ["Offset of field: kvm_run__bindgen_ty_1::osi"]
4357        [::std::mem::offset_of!(kvm_run__bindgen_ty_1, osi) - 0usize];
4358    ["Offset of field: kvm_run__bindgen_ty_1::papr_hcall"]
4359        [::std::mem::offset_of!(kvm_run__bindgen_ty_1, papr_hcall) - 0usize];
4360    ["Offset of field: kvm_run__bindgen_ty_1::s390_tsch"]
4361        [::std::mem::offset_of!(kvm_run__bindgen_ty_1, s390_tsch) - 0usize];
4362    ["Offset of field: kvm_run__bindgen_ty_1::epr"]
4363        [::std::mem::offset_of!(kvm_run__bindgen_ty_1, epr) - 0usize];
4364    ["Offset of field: kvm_run__bindgen_ty_1::system_event"]
4365        [::std::mem::offset_of!(kvm_run__bindgen_ty_1, system_event) - 0usize];
4366    ["Offset of field: kvm_run__bindgen_ty_1::s390_stsi"]
4367        [::std::mem::offset_of!(kvm_run__bindgen_ty_1, s390_stsi) - 0usize];
4368    ["Offset of field: kvm_run__bindgen_ty_1::eoi"]
4369        [::std::mem::offset_of!(kvm_run__bindgen_ty_1, eoi) - 0usize];
4370    ["Offset of field: kvm_run__bindgen_ty_1::hyperv"]
4371        [::std::mem::offset_of!(kvm_run__bindgen_ty_1, hyperv) - 0usize];
4372    ["Offset of field: kvm_run__bindgen_ty_1::arm_nisv"]
4373        [::std::mem::offset_of!(kvm_run__bindgen_ty_1, arm_nisv) - 0usize];
4374    ["Offset of field: kvm_run__bindgen_ty_1::msr"]
4375        [::std::mem::offset_of!(kvm_run__bindgen_ty_1, msr) - 0usize];
4376    ["Offset of field: kvm_run__bindgen_ty_1::xen"]
4377        [::std::mem::offset_of!(kvm_run__bindgen_ty_1, xen) - 0usize];
4378    ["Offset of field: kvm_run__bindgen_ty_1::riscv_sbi"]
4379        [::std::mem::offset_of!(kvm_run__bindgen_ty_1, riscv_sbi) - 0usize];
4380    ["Offset of field: kvm_run__bindgen_ty_1::riscv_csr"]
4381        [::std::mem::offset_of!(kvm_run__bindgen_ty_1, riscv_csr) - 0usize];
4382    ["Offset of field: kvm_run__bindgen_ty_1::notify"]
4383        [::std::mem::offset_of!(kvm_run__bindgen_ty_1, notify) - 0usize];
4384    ["Offset of field: kvm_run__bindgen_ty_1::memory_fault"]
4385        [::std::mem::offset_of!(kvm_run__bindgen_ty_1, memory_fault) - 0usize];
4386    ["Offset of field: kvm_run__bindgen_ty_1::padding"]
4387        [::std::mem::offset_of!(kvm_run__bindgen_ty_1, padding) - 0usize];
4388};
4389impl Default for kvm_run__bindgen_ty_1 {
4390    fn default() -> Self {
4391        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4392        unsafe {
4393            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4394            s.assume_init()
4395        }
4396    }
4397}
4398impl ::std::fmt::Debug for kvm_run__bindgen_ty_1 {
4399    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4400        write!(f, "kvm_run__bindgen_ty_1 {{ union }}")
4401    }
4402}
4403#[repr(C)]
4404#[derive(Copy, Clone)]
4405pub union kvm_run__bindgen_ty_2 {
4406    pub regs: kvm_sync_regs,
4407    pub padding: [::std::os::raw::c_char; 2048usize],
4408}
4409#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4410const _: () = {
4411    ["Size of kvm_run__bindgen_ty_2"][::std::mem::size_of::<kvm_run__bindgen_ty_2>() - 2048usize];
4412    ["Alignment of kvm_run__bindgen_ty_2"]
4413        [::std::mem::align_of::<kvm_run__bindgen_ty_2>() - 8usize];
4414    ["Offset of field: kvm_run__bindgen_ty_2::regs"]
4415        [::std::mem::offset_of!(kvm_run__bindgen_ty_2, regs) - 0usize];
4416    ["Offset of field: kvm_run__bindgen_ty_2::padding"]
4417        [::std::mem::offset_of!(kvm_run__bindgen_ty_2, padding) - 0usize];
4418};
4419impl Default for kvm_run__bindgen_ty_2 {
4420    fn default() -> Self {
4421        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4422        unsafe {
4423            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4424            s.assume_init()
4425        }
4426    }
4427}
4428impl ::std::fmt::Debug for kvm_run__bindgen_ty_2 {
4429    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4430        write!(f, "kvm_run__bindgen_ty_2 {{ union }}")
4431    }
4432}
4433#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4434const _: () = {
4435    ["Size of kvm_run"][::std::mem::size_of::<kvm_run>() - 2352usize];
4436    ["Alignment of kvm_run"][::std::mem::align_of::<kvm_run>() - 8usize];
4437    ["Offset of field: kvm_run::request_interrupt_window"]
4438        [::std::mem::offset_of!(kvm_run, request_interrupt_window) - 0usize];
4439    ["Offset of field: kvm_run::immediate_exit"]
4440        [::std::mem::offset_of!(kvm_run, immediate_exit) - 1usize];
4441    ["Offset of field: kvm_run::padding1"][::std::mem::offset_of!(kvm_run, padding1) - 2usize];
4442    ["Offset of field: kvm_run::exit_reason"]
4443        [::std::mem::offset_of!(kvm_run, exit_reason) - 8usize];
4444    ["Offset of field: kvm_run::ready_for_interrupt_injection"]
4445        [::std::mem::offset_of!(kvm_run, ready_for_interrupt_injection) - 12usize];
4446    ["Offset of field: kvm_run::if_flag"][::std::mem::offset_of!(kvm_run, if_flag) - 13usize];
4447    ["Offset of field: kvm_run::flags"][::std::mem::offset_of!(kvm_run, flags) - 14usize];
4448    ["Offset of field: kvm_run::cr8"][::std::mem::offset_of!(kvm_run, cr8) - 16usize];
4449    ["Offset of field: kvm_run::apic_base"][::std::mem::offset_of!(kvm_run, apic_base) - 24usize];
4450    ["Offset of field: kvm_run::kvm_valid_regs"]
4451        [::std::mem::offset_of!(kvm_run, kvm_valid_regs) - 288usize];
4452    ["Offset of field: kvm_run::kvm_dirty_regs"]
4453        [::std::mem::offset_of!(kvm_run, kvm_dirty_regs) - 296usize];
4454    ["Offset of field: kvm_run::s"][::std::mem::offset_of!(kvm_run, s) - 304usize];
4455};
4456impl Default for kvm_run {
4457    fn default() -> Self {
4458        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4459        unsafe {
4460            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4461            s.assume_init()
4462        }
4463    }
4464}
4465impl ::std::fmt::Debug for kvm_run {
4466    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4467        write ! (f , "kvm_run {{ request_interrupt_window: {:?}, immediate_exit: {:?}, padding1: {:?}, exit_reason: {:?}, ready_for_interrupt_injection: {:?}, if_flag: {:?}, flags: {:?}, cr8: {:?}, apic_base: {:?}, __bindgen_anon_1: {:?}, kvm_valid_regs: {:?}, kvm_dirty_regs: {:?}, s: {:?} }}" , self . request_interrupt_window , self . immediate_exit , self . padding1 , self . exit_reason , self . ready_for_interrupt_injection , self . if_flag , self . flags , self . cr8 , self . apic_base , self . __bindgen_anon_1 , self . kvm_valid_regs , self . kvm_dirty_regs , self . s)
4468    }
4469}
4470#[repr(C)]
4471#[derive(Copy, Clone)]
4472pub struct kvm_coalesced_mmio_zone {
4473    pub addr: __u64,
4474    pub size: __u32,
4475    pub __bindgen_anon_1: kvm_coalesced_mmio_zone__bindgen_ty_1,
4476}
4477#[repr(C)]
4478#[derive(Copy, Clone)]
4479pub union kvm_coalesced_mmio_zone__bindgen_ty_1 {
4480    pub pad: __u32,
4481    pub pio: __u32,
4482}
4483#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4484const _: () = {
4485    ["Size of kvm_coalesced_mmio_zone__bindgen_ty_1"]
4486        [::std::mem::size_of::<kvm_coalesced_mmio_zone__bindgen_ty_1>() - 4usize];
4487    ["Alignment of kvm_coalesced_mmio_zone__bindgen_ty_1"]
4488        [::std::mem::align_of::<kvm_coalesced_mmio_zone__bindgen_ty_1>() - 4usize];
4489    ["Offset of field: kvm_coalesced_mmio_zone__bindgen_ty_1::pad"]
4490        [::std::mem::offset_of!(kvm_coalesced_mmio_zone__bindgen_ty_1, pad) - 0usize];
4491    ["Offset of field: kvm_coalesced_mmio_zone__bindgen_ty_1::pio"]
4492        [::std::mem::offset_of!(kvm_coalesced_mmio_zone__bindgen_ty_1, pio) - 0usize];
4493};
4494impl Default for kvm_coalesced_mmio_zone__bindgen_ty_1 {
4495    fn default() -> Self {
4496        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4497        unsafe {
4498            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4499            s.assume_init()
4500        }
4501    }
4502}
4503impl ::std::fmt::Debug for kvm_coalesced_mmio_zone__bindgen_ty_1 {
4504    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4505        write!(f, "kvm_coalesced_mmio_zone__bindgen_ty_1 {{ union }}")
4506    }
4507}
4508#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4509const _: () = {
4510    ["Size of kvm_coalesced_mmio_zone"][::std::mem::size_of::<kvm_coalesced_mmio_zone>() - 16usize];
4511    ["Alignment of kvm_coalesced_mmio_zone"]
4512        [::std::mem::align_of::<kvm_coalesced_mmio_zone>() - 8usize];
4513    ["Offset of field: kvm_coalesced_mmio_zone::addr"]
4514        [::std::mem::offset_of!(kvm_coalesced_mmio_zone, addr) - 0usize];
4515    ["Offset of field: kvm_coalesced_mmio_zone::size"]
4516        [::std::mem::offset_of!(kvm_coalesced_mmio_zone, size) - 8usize];
4517};
4518impl Default for kvm_coalesced_mmio_zone {
4519    fn default() -> Self {
4520        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4521        unsafe {
4522            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4523            s.assume_init()
4524        }
4525    }
4526}
4527impl ::std::fmt::Debug for kvm_coalesced_mmio_zone {
4528    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4529        write!(
4530            f,
4531            "kvm_coalesced_mmio_zone {{ addr: {:?}, size: {:?}, __bindgen_anon_1: {:?} }}",
4532            self.addr, self.size, self.__bindgen_anon_1
4533        )
4534    }
4535}
4536#[repr(C)]
4537#[derive(Copy, Clone)]
4538pub struct kvm_coalesced_mmio {
4539    pub phys_addr: __u64,
4540    pub len: __u32,
4541    pub __bindgen_anon_1: kvm_coalesced_mmio__bindgen_ty_1,
4542    pub data: [__u8; 8usize],
4543}
4544#[repr(C)]
4545#[derive(Copy, Clone)]
4546pub union kvm_coalesced_mmio__bindgen_ty_1 {
4547    pub pad: __u32,
4548    pub pio: __u32,
4549}
4550#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4551const _: () = {
4552    ["Size of kvm_coalesced_mmio__bindgen_ty_1"]
4553        [::std::mem::size_of::<kvm_coalesced_mmio__bindgen_ty_1>() - 4usize];
4554    ["Alignment of kvm_coalesced_mmio__bindgen_ty_1"]
4555        [::std::mem::align_of::<kvm_coalesced_mmio__bindgen_ty_1>() - 4usize];
4556    ["Offset of field: kvm_coalesced_mmio__bindgen_ty_1::pad"]
4557        [::std::mem::offset_of!(kvm_coalesced_mmio__bindgen_ty_1, pad) - 0usize];
4558    ["Offset of field: kvm_coalesced_mmio__bindgen_ty_1::pio"]
4559        [::std::mem::offset_of!(kvm_coalesced_mmio__bindgen_ty_1, pio) - 0usize];
4560};
4561impl Default for kvm_coalesced_mmio__bindgen_ty_1 {
4562    fn default() -> Self {
4563        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4564        unsafe {
4565            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4566            s.assume_init()
4567        }
4568    }
4569}
4570impl ::std::fmt::Debug for kvm_coalesced_mmio__bindgen_ty_1 {
4571    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4572        write!(f, "kvm_coalesced_mmio__bindgen_ty_1 {{ union }}")
4573    }
4574}
4575#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4576const _: () = {
4577    ["Size of kvm_coalesced_mmio"][::std::mem::size_of::<kvm_coalesced_mmio>() - 24usize];
4578    ["Alignment of kvm_coalesced_mmio"][::std::mem::align_of::<kvm_coalesced_mmio>() - 8usize];
4579    ["Offset of field: kvm_coalesced_mmio::phys_addr"]
4580        [::std::mem::offset_of!(kvm_coalesced_mmio, phys_addr) - 0usize];
4581    ["Offset of field: kvm_coalesced_mmio::len"]
4582        [::std::mem::offset_of!(kvm_coalesced_mmio, len) - 8usize];
4583    ["Offset of field: kvm_coalesced_mmio::data"]
4584        [::std::mem::offset_of!(kvm_coalesced_mmio, data) - 16usize];
4585};
4586impl Default for kvm_coalesced_mmio {
4587    fn default() -> Self {
4588        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4589        unsafe {
4590            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4591            s.assume_init()
4592        }
4593    }
4594}
4595impl ::std::fmt::Debug for kvm_coalesced_mmio {
4596    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4597        write ! (f , "kvm_coalesced_mmio {{ phys_addr: {:?}, len: {:?}, __bindgen_anon_1: {:?}, data: {:?} }}" , self . phys_addr , self . len , self . __bindgen_anon_1 , self . data)
4598    }
4599}
4600#[repr(C)]
4601pub struct kvm_coalesced_mmio_ring {
4602    pub first: __u32,
4603    pub last: __u32,
4604    pub coalesced_mmio: __IncompleteArrayField<kvm_coalesced_mmio>,
4605}
4606#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4607const _: () = {
4608    ["Size of kvm_coalesced_mmio_ring"][::std::mem::size_of::<kvm_coalesced_mmio_ring>() - 8usize];
4609    ["Alignment of kvm_coalesced_mmio_ring"]
4610        [::std::mem::align_of::<kvm_coalesced_mmio_ring>() - 8usize];
4611    ["Offset of field: kvm_coalesced_mmio_ring::first"]
4612        [::std::mem::offset_of!(kvm_coalesced_mmio_ring, first) - 0usize];
4613    ["Offset of field: kvm_coalesced_mmio_ring::last"]
4614        [::std::mem::offset_of!(kvm_coalesced_mmio_ring, last) - 4usize];
4615    ["Offset of field: kvm_coalesced_mmio_ring::coalesced_mmio"]
4616        [::std::mem::offset_of!(kvm_coalesced_mmio_ring, coalesced_mmio) - 8usize];
4617};
4618impl Default for kvm_coalesced_mmio_ring {
4619    fn default() -> Self {
4620        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4621        unsafe {
4622            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4623            s.assume_init()
4624        }
4625    }
4626}
4627impl ::std::fmt::Debug for kvm_coalesced_mmio_ring {
4628    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4629        write!(
4630            f,
4631            "kvm_coalesced_mmio_ring {{ first: {:?}, last: {:?}, coalesced_mmio: {:?} }}",
4632            self.first, self.last, self.coalesced_mmio
4633        )
4634    }
4635}
4636#[repr(C)]
4637#[derive(Debug, Default, Copy, Clone, PartialEq)]
4638pub struct kvm_translation {
4639    pub linear_address: __u64,
4640    pub physical_address: __u64,
4641    pub valid: __u8,
4642    pub writeable: __u8,
4643    pub usermode: __u8,
4644    pub pad: [__u8; 5usize],
4645}
4646#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4647const _: () = {
4648    ["Size of kvm_translation"][::std::mem::size_of::<kvm_translation>() - 24usize];
4649    ["Alignment of kvm_translation"][::std::mem::align_of::<kvm_translation>() - 8usize];
4650    ["Offset of field: kvm_translation::linear_address"]
4651        [::std::mem::offset_of!(kvm_translation, linear_address) - 0usize];
4652    ["Offset of field: kvm_translation::physical_address"]
4653        [::std::mem::offset_of!(kvm_translation, physical_address) - 8usize];
4654    ["Offset of field: kvm_translation::valid"]
4655        [::std::mem::offset_of!(kvm_translation, valid) - 16usize];
4656    ["Offset of field: kvm_translation::writeable"]
4657        [::std::mem::offset_of!(kvm_translation, writeable) - 17usize];
4658    ["Offset of field: kvm_translation::usermode"]
4659        [::std::mem::offset_of!(kvm_translation, usermode) - 18usize];
4660    ["Offset of field: kvm_translation::pad"]
4661        [::std::mem::offset_of!(kvm_translation, pad) - 19usize];
4662};
4663#[repr(C)]
4664#[derive(Debug, Default, Copy, Clone, PartialEq)]
4665pub struct kvm_interrupt {
4666    pub irq: __u32,
4667}
4668#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4669const _: () = {
4670    ["Size of kvm_interrupt"][::std::mem::size_of::<kvm_interrupt>() - 4usize];
4671    ["Alignment of kvm_interrupt"][::std::mem::align_of::<kvm_interrupt>() - 4usize];
4672    ["Offset of field: kvm_interrupt::irq"][::std::mem::offset_of!(kvm_interrupt, irq) - 0usize];
4673};
4674#[repr(C)]
4675#[derive(Copy, Clone)]
4676pub struct kvm_dirty_log {
4677    pub slot: __u32,
4678    pub padding1: __u32,
4679    pub __bindgen_anon_1: kvm_dirty_log__bindgen_ty_1,
4680}
4681#[repr(C)]
4682#[derive(Copy, Clone)]
4683pub union kvm_dirty_log__bindgen_ty_1 {
4684    pub dirty_bitmap: *mut ::std::os::raw::c_void,
4685    pub padding2: __u64,
4686}
4687#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4688const _: () = {
4689    ["Size of kvm_dirty_log__bindgen_ty_1"]
4690        [::std::mem::size_of::<kvm_dirty_log__bindgen_ty_1>() - 8usize];
4691    ["Alignment of kvm_dirty_log__bindgen_ty_1"]
4692        [::std::mem::align_of::<kvm_dirty_log__bindgen_ty_1>() - 8usize];
4693    ["Offset of field: kvm_dirty_log__bindgen_ty_1::dirty_bitmap"]
4694        [::std::mem::offset_of!(kvm_dirty_log__bindgen_ty_1, dirty_bitmap) - 0usize];
4695    ["Offset of field: kvm_dirty_log__bindgen_ty_1::padding2"]
4696        [::std::mem::offset_of!(kvm_dirty_log__bindgen_ty_1, padding2) - 0usize];
4697};
4698impl Default for kvm_dirty_log__bindgen_ty_1 {
4699    fn default() -> Self {
4700        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4701        unsafe {
4702            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4703            s.assume_init()
4704        }
4705    }
4706}
4707impl ::std::fmt::Debug for kvm_dirty_log__bindgen_ty_1 {
4708    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4709        write!(f, "kvm_dirty_log__bindgen_ty_1 {{ union }}")
4710    }
4711}
4712#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4713const _: () = {
4714    ["Size of kvm_dirty_log"][::std::mem::size_of::<kvm_dirty_log>() - 16usize];
4715    ["Alignment of kvm_dirty_log"][::std::mem::align_of::<kvm_dirty_log>() - 8usize];
4716    ["Offset of field: kvm_dirty_log::slot"][::std::mem::offset_of!(kvm_dirty_log, slot) - 0usize];
4717    ["Offset of field: kvm_dirty_log::padding1"]
4718        [::std::mem::offset_of!(kvm_dirty_log, padding1) - 4usize];
4719};
4720impl Default for kvm_dirty_log {
4721    fn default() -> Self {
4722        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4723        unsafe {
4724            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4725            s.assume_init()
4726        }
4727    }
4728}
4729impl ::std::fmt::Debug for kvm_dirty_log {
4730    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4731        write!(
4732            f,
4733            "kvm_dirty_log {{ slot: {:?}, padding1: {:?}, __bindgen_anon_1: {:?} }}",
4734            self.slot, self.padding1, self.__bindgen_anon_1
4735        )
4736    }
4737}
4738#[repr(C)]
4739#[derive(Copy, Clone)]
4740pub struct kvm_clear_dirty_log {
4741    pub slot: __u32,
4742    pub num_pages: __u32,
4743    pub first_page: __u64,
4744    pub __bindgen_anon_1: kvm_clear_dirty_log__bindgen_ty_1,
4745}
4746#[repr(C)]
4747#[derive(Copy, Clone)]
4748pub union kvm_clear_dirty_log__bindgen_ty_1 {
4749    pub dirty_bitmap: *mut ::std::os::raw::c_void,
4750    pub padding2: __u64,
4751}
4752#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4753const _: () = {
4754    ["Size of kvm_clear_dirty_log__bindgen_ty_1"]
4755        [::std::mem::size_of::<kvm_clear_dirty_log__bindgen_ty_1>() - 8usize];
4756    ["Alignment of kvm_clear_dirty_log__bindgen_ty_1"]
4757        [::std::mem::align_of::<kvm_clear_dirty_log__bindgen_ty_1>() - 8usize];
4758    ["Offset of field: kvm_clear_dirty_log__bindgen_ty_1::dirty_bitmap"]
4759        [::std::mem::offset_of!(kvm_clear_dirty_log__bindgen_ty_1, dirty_bitmap) - 0usize];
4760    ["Offset of field: kvm_clear_dirty_log__bindgen_ty_1::padding2"]
4761        [::std::mem::offset_of!(kvm_clear_dirty_log__bindgen_ty_1, padding2) - 0usize];
4762};
4763impl Default for kvm_clear_dirty_log__bindgen_ty_1 {
4764    fn default() -> Self {
4765        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4766        unsafe {
4767            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4768            s.assume_init()
4769        }
4770    }
4771}
4772impl ::std::fmt::Debug for kvm_clear_dirty_log__bindgen_ty_1 {
4773    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4774        write!(f, "kvm_clear_dirty_log__bindgen_ty_1 {{ union }}")
4775    }
4776}
4777#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4778const _: () = {
4779    ["Size of kvm_clear_dirty_log"][::std::mem::size_of::<kvm_clear_dirty_log>() - 24usize];
4780    ["Alignment of kvm_clear_dirty_log"][::std::mem::align_of::<kvm_clear_dirty_log>() - 8usize];
4781    ["Offset of field: kvm_clear_dirty_log::slot"]
4782        [::std::mem::offset_of!(kvm_clear_dirty_log, slot) - 0usize];
4783    ["Offset of field: kvm_clear_dirty_log::num_pages"]
4784        [::std::mem::offset_of!(kvm_clear_dirty_log, num_pages) - 4usize];
4785    ["Offset of field: kvm_clear_dirty_log::first_page"]
4786        [::std::mem::offset_of!(kvm_clear_dirty_log, first_page) - 8usize];
4787};
4788impl Default for kvm_clear_dirty_log {
4789    fn default() -> Self {
4790        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4791        unsafe {
4792            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4793            s.assume_init()
4794        }
4795    }
4796}
4797impl ::std::fmt::Debug for kvm_clear_dirty_log {
4798    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4799        write ! (f , "kvm_clear_dirty_log {{ slot: {:?}, num_pages: {:?}, first_page: {:?}, __bindgen_anon_1: {:?} }}" , self . slot , self . num_pages , self . first_page , self . __bindgen_anon_1)
4800    }
4801}
4802#[repr(C)]
4803#[derive(Debug, Default)]
4804pub struct kvm_signal_mask {
4805    pub len: __u32,
4806    pub sigset: __IncompleteArrayField<__u8>,
4807}
4808#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4809const _: () = {
4810    ["Size of kvm_signal_mask"][::std::mem::size_of::<kvm_signal_mask>() - 4usize];
4811    ["Alignment of kvm_signal_mask"][::std::mem::align_of::<kvm_signal_mask>() - 4usize];
4812    ["Offset of field: kvm_signal_mask::len"]
4813        [::std::mem::offset_of!(kvm_signal_mask, len) - 0usize];
4814    ["Offset of field: kvm_signal_mask::sigset"]
4815        [::std::mem::offset_of!(kvm_signal_mask, sigset) - 4usize];
4816};
4817#[repr(C)]
4818#[derive(Debug, Default, Copy, Clone, PartialEq)]
4819pub struct kvm_tpr_access_ctl {
4820    pub enabled: __u32,
4821    pub flags: __u32,
4822    pub reserved: [__u32; 8usize],
4823}
4824#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4825const _: () = {
4826    ["Size of kvm_tpr_access_ctl"][::std::mem::size_of::<kvm_tpr_access_ctl>() - 40usize];
4827    ["Alignment of kvm_tpr_access_ctl"][::std::mem::align_of::<kvm_tpr_access_ctl>() - 4usize];
4828    ["Offset of field: kvm_tpr_access_ctl::enabled"]
4829        [::std::mem::offset_of!(kvm_tpr_access_ctl, enabled) - 0usize];
4830    ["Offset of field: kvm_tpr_access_ctl::flags"]
4831        [::std::mem::offset_of!(kvm_tpr_access_ctl, flags) - 4usize];
4832    ["Offset of field: kvm_tpr_access_ctl::reserved"]
4833        [::std::mem::offset_of!(kvm_tpr_access_ctl, reserved) - 8usize];
4834};
4835#[repr(C)]
4836#[derive(Debug, Default, Copy, Clone, PartialEq)]
4837pub struct kvm_vapic_addr {
4838    pub vapic_addr: __u64,
4839}
4840#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4841const _: () = {
4842    ["Size of kvm_vapic_addr"][::std::mem::size_of::<kvm_vapic_addr>() - 8usize];
4843    ["Alignment of kvm_vapic_addr"][::std::mem::align_of::<kvm_vapic_addr>() - 8usize];
4844    ["Offset of field: kvm_vapic_addr::vapic_addr"]
4845        [::std::mem::offset_of!(kvm_vapic_addr, vapic_addr) - 0usize];
4846};
4847#[repr(C)]
4848#[derive(Debug, Default, Copy, Clone, PartialEq)]
4849#[cfg_attr(
4850    feature = "serde",
4851    derive(zerocopy::AsBytes, zerocopy::FromBytes, zerocopy::FromZeroes)
4852)]
4853pub struct kvm_mp_state {
4854    pub mp_state: __u32,
4855}
4856#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4857const _: () = {
4858    ["Size of kvm_mp_state"][::std::mem::size_of::<kvm_mp_state>() - 4usize];
4859    ["Alignment of kvm_mp_state"][::std::mem::align_of::<kvm_mp_state>() - 4usize];
4860    ["Offset of field: kvm_mp_state::mp_state"]
4861        [::std::mem::offset_of!(kvm_mp_state, mp_state) - 0usize];
4862};
4863#[repr(C)]
4864#[derive(Debug, Default, Copy, Clone, PartialEq)]
4865pub struct kvm_guest_debug {
4866    pub control: __u32,
4867    pub pad: __u32,
4868    pub arch: kvm_guest_debug_arch,
4869}
4870#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4871const _: () = {
4872    ["Size of kvm_guest_debug"][::std::mem::size_of::<kvm_guest_debug>() - 72usize];
4873    ["Alignment of kvm_guest_debug"][::std::mem::align_of::<kvm_guest_debug>() - 8usize];
4874    ["Offset of field: kvm_guest_debug::control"]
4875        [::std::mem::offset_of!(kvm_guest_debug, control) - 0usize];
4876    ["Offset of field: kvm_guest_debug::pad"]
4877        [::std::mem::offset_of!(kvm_guest_debug, pad) - 4usize];
4878    ["Offset of field: kvm_guest_debug::arch"]
4879        [::std::mem::offset_of!(kvm_guest_debug, arch) - 8usize];
4880};
4881pub const kvm_ioeventfd_flag_nr_datamatch: _bindgen_ty_1 = 0;
4882pub const kvm_ioeventfd_flag_nr_pio: _bindgen_ty_1 = 1;
4883pub const kvm_ioeventfd_flag_nr_deassign: _bindgen_ty_1 = 2;
4884pub const kvm_ioeventfd_flag_nr_virtio_ccw_notify: _bindgen_ty_1 = 3;
4885pub const kvm_ioeventfd_flag_nr_fast_mmio: _bindgen_ty_1 = 4;
4886pub const kvm_ioeventfd_flag_nr_max: _bindgen_ty_1 = 5;
4887pub type _bindgen_ty_1 = ::std::os::raw::c_uint;
4888#[repr(C)]
4889#[derive(Debug, Copy, Clone, PartialEq)]
4890pub struct kvm_ioeventfd {
4891    pub datamatch: __u64,
4892    pub addr: __u64,
4893    pub len: __u32,
4894    pub fd: __s32,
4895    pub flags: __u32,
4896    pub pad: [__u8; 36usize],
4897}
4898#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4899const _: () = {
4900    ["Size of kvm_ioeventfd"][::std::mem::size_of::<kvm_ioeventfd>() - 64usize];
4901    ["Alignment of kvm_ioeventfd"][::std::mem::align_of::<kvm_ioeventfd>() - 8usize];
4902    ["Offset of field: kvm_ioeventfd::datamatch"]
4903        [::std::mem::offset_of!(kvm_ioeventfd, datamatch) - 0usize];
4904    ["Offset of field: kvm_ioeventfd::addr"][::std::mem::offset_of!(kvm_ioeventfd, addr) - 8usize];
4905    ["Offset of field: kvm_ioeventfd::len"][::std::mem::offset_of!(kvm_ioeventfd, len) - 16usize];
4906    ["Offset of field: kvm_ioeventfd::fd"][::std::mem::offset_of!(kvm_ioeventfd, fd) - 20usize];
4907    ["Offset of field: kvm_ioeventfd::flags"]
4908        [::std::mem::offset_of!(kvm_ioeventfd, flags) - 24usize];
4909    ["Offset of field: kvm_ioeventfd::pad"][::std::mem::offset_of!(kvm_ioeventfd, pad) - 28usize];
4910};
4911impl Default for kvm_ioeventfd {
4912    fn default() -> Self {
4913        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4914        unsafe {
4915            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4916            s.assume_init()
4917        }
4918    }
4919}
4920#[repr(C)]
4921#[derive(Debug, Copy, Clone, PartialEq)]
4922pub struct kvm_enable_cap {
4923    pub cap: __u32,
4924    pub flags: __u32,
4925    pub args: [__u64; 4usize],
4926    pub pad: [__u8; 64usize],
4927}
4928#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4929const _: () = {
4930    ["Size of kvm_enable_cap"][::std::mem::size_of::<kvm_enable_cap>() - 104usize];
4931    ["Alignment of kvm_enable_cap"][::std::mem::align_of::<kvm_enable_cap>() - 8usize];
4932    ["Offset of field: kvm_enable_cap::cap"][::std::mem::offset_of!(kvm_enable_cap, cap) - 0usize];
4933    ["Offset of field: kvm_enable_cap::flags"]
4934        [::std::mem::offset_of!(kvm_enable_cap, flags) - 4usize];
4935    ["Offset of field: kvm_enable_cap::args"]
4936        [::std::mem::offset_of!(kvm_enable_cap, args) - 8usize];
4937    ["Offset of field: kvm_enable_cap::pad"][::std::mem::offset_of!(kvm_enable_cap, pad) - 40usize];
4938};
4939impl Default for kvm_enable_cap {
4940    fn default() -> Self {
4941        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4942        unsafe {
4943            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4944            s.assume_init()
4945        }
4946    }
4947}
4948#[repr(C)]
4949#[derive(Debug, Default, Copy, Clone, PartialEq)]
4950pub struct kvm_irq_routing_irqchip {
4951    pub irqchip: __u32,
4952    pub pin: __u32,
4953}
4954#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4955const _: () = {
4956    ["Size of kvm_irq_routing_irqchip"][::std::mem::size_of::<kvm_irq_routing_irqchip>() - 8usize];
4957    ["Alignment of kvm_irq_routing_irqchip"]
4958        [::std::mem::align_of::<kvm_irq_routing_irqchip>() - 4usize];
4959    ["Offset of field: kvm_irq_routing_irqchip::irqchip"]
4960        [::std::mem::offset_of!(kvm_irq_routing_irqchip, irqchip) - 0usize];
4961    ["Offset of field: kvm_irq_routing_irqchip::pin"]
4962        [::std::mem::offset_of!(kvm_irq_routing_irqchip, pin) - 4usize];
4963};
4964#[repr(C)]
4965#[derive(Copy, Clone)]
4966pub struct kvm_irq_routing_msi {
4967    pub address_lo: __u32,
4968    pub address_hi: __u32,
4969    pub data: __u32,
4970    pub __bindgen_anon_1: kvm_irq_routing_msi__bindgen_ty_1,
4971}
4972#[repr(C)]
4973#[derive(Copy, Clone)]
4974pub union kvm_irq_routing_msi__bindgen_ty_1 {
4975    pub pad: __u32,
4976    pub devid: __u32,
4977}
4978#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4979const _: () = {
4980    ["Size of kvm_irq_routing_msi__bindgen_ty_1"]
4981        [::std::mem::size_of::<kvm_irq_routing_msi__bindgen_ty_1>() - 4usize];
4982    ["Alignment of kvm_irq_routing_msi__bindgen_ty_1"]
4983        [::std::mem::align_of::<kvm_irq_routing_msi__bindgen_ty_1>() - 4usize];
4984    ["Offset of field: kvm_irq_routing_msi__bindgen_ty_1::pad"]
4985        [::std::mem::offset_of!(kvm_irq_routing_msi__bindgen_ty_1, pad) - 0usize];
4986    ["Offset of field: kvm_irq_routing_msi__bindgen_ty_1::devid"]
4987        [::std::mem::offset_of!(kvm_irq_routing_msi__bindgen_ty_1, devid) - 0usize];
4988};
4989impl Default for kvm_irq_routing_msi__bindgen_ty_1 {
4990    fn default() -> Self {
4991        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
4992        unsafe {
4993            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
4994            s.assume_init()
4995        }
4996    }
4997}
4998impl ::std::fmt::Debug for kvm_irq_routing_msi__bindgen_ty_1 {
4999    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5000        write!(f, "kvm_irq_routing_msi__bindgen_ty_1 {{ union }}")
5001    }
5002}
5003#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5004const _: () = {
5005    ["Size of kvm_irq_routing_msi"][::std::mem::size_of::<kvm_irq_routing_msi>() - 16usize];
5006    ["Alignment of kvm_irq_routing_msi"][::std::mem::align_of::<kvm_irq_routing_msi>() - 4usize];
5007    ["Offset of field: kvm_irq_routing_msi::address_lo"]
5008        [::std::mem::offset_of!(kvm_irq_routing_msi, address_lo) - 0usize];
5009    ["Offset of field: kvm_irq_routing_msi::address_hi"]
5010        [::std::mem::offset_of!(kvm_irq_routing_msi, address_hi) - 4usize];
5011    ["Offset of field: kvm_irq_routing_msi::data"]
5012        [::std::mem::offset_of!(kvm_irq_routing_msi, data) - 8usize];
5013};
5014impl Default for kvm_irq_routing_msi {
5015    fn default() -> Self {
5016        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5017        unsafe {
5018            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5019            s.assume_init()
5020        }
5021    }
5022}
5023impl ::std::fmt::Debug for kvm_irq_routing_msi {
5024    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5025        write ! (f , "kvm_irq_routing_msi {{ address_lo: {:?}, address_hi: {:?}, data: {:?}, __bindgen_anon_1: {:?} }}" , self . address_lo , self . address_hi , self . data , self . __bindgen_anon_1)
5026    }
5027}
5028#[repr(C)]
5029#[derive(Debug, Default, Copy, Clone, PartialEq)]
5030pub struct kvm_irq_routing_s390_adapter {
5031    pub ind_addr: __u64,
5032    pub summary_addr: __u64,
5033    pub ind_offset: __u64,
5034    pub summary_offset: __u32,
5035    pub adapter_id: __u32,
5036}
5037#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5038const _: () = {
5039    ["Size of kvm_irq_routing_s390_adapter"]
5040        [::std::mem::size_of::<kvm_irq_routing_s390_adapter>() - 32usize];
5041    ["Alignment of kvm_irq_routing_s390_adapter"]
5042        [::std::mem::align_of::<kvm_irq_routing_s390_adapter>() - 8usize];
5043    ["Offset of field: kvm_irq_routing_s390_adapter::ind_addr"]
5044        [::std::mem::offset_of!(kvm_irq_routing_s390_adapter, ind_addr) - 0usize];
5045    ["Offset of field: kvm_irq_routing_s390_adapter::summary_addr"]
5046        [::std::mem::offset_of!(kvm_irq_routing_s390_adapter, summary_addr) - 8usize];
5047    ["Offset of field: kvm_irq_routing_s390_adapter::ind_offset"]
5048        [::std::mem::offset_of!(kvm_irq_routing_s390_adapter, ind_offset) - 16usize];
5049    ["Offset of field: kvm_irq_routing_s390_adapter::summary_offset"]
5050        [::std::mem::offset_of!(kvm_irq_routing_s390_adapter, summary_offset) - 24usize];
5051    ["Offset of field: kvm_irq_routing_s390_adapter::adapter_id"]
5052        [::std::mem::offset_of!(kvm_irq_routing_s390_adapter, adapter_id) - 28usize];
5053};
5054#[repr(C)]
5055#[derive(Debug, Default, Copy, Clone, PartialEq)]
5056pub struct kvm_irq_routing_hv_sint {
5057    pub vcpu: __u32,
5058    pub sint: __u32,
5059}
5060#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5061const _: () = {
5062    ["Size of kvm_irq_routing_hv_sint"][::std::mem::size_of::<kvm_irq_routing_hv_sint>() - 8usize];
5063    ["Alignment of kvm_irq_routing_hv_sint"]
5064        [::std::mem::align_of::<kvm_irq_routing_hv_sint>() - 4usize];
5065    ["Offset of field: kvm_irq_routing_hv_sint::vcpu"]
5066        [::std::mem::offset_of!(kvm_irq_routing_hv_sint, vcpu) - 0usize];
5067    ["Offset of field: kvm_irq_routing_hv_sint::sint"]
5068        [::std::mem::offset_of!(kvm_irq_routing_hv_sint, sint) - 4usize];
5069};
5070#[repr(C)]
5071#[derive(Debug, Default, Copy, Clone, PartialEq)]
5072pub struct kvm_irq_routing_xen_evtchn {
5073    pub port: __u32,
5074    pub vcpu: __u32,
5075    pub priority: __u32,
5076}
5077#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5078const _: () = {
5079    ["Size of kvm_irq_routing_xen_evtchn"]
5080        [::std::mem::size_of::<kvm_irq_routing_xen_evtchn>() - 12usize];
5081    ["Alignment of kvm_irq_routing_xen_evtchn"]
5082        [::std::mem::align_of::<kvm_irq_routing_xen_evtchn>() - 4usize];
5083    ["Offset of field: kvm_irq_routing_xen_evtchn::port"]
5084        [::std::mem::offset_of!(kvm_irq_routing_xen_evtchn, port) - 0usize];
5085    ["Offset of field: kvm_irq_routing_xen_evtchn::vcpu"]
5086        [::std::mem::offset_of!(kvm_irq_routing_xen_evtchn, vcpu) - 4usize];
5087    ["Offset of field: kvm_irq_routing_xen_evtchn::priority"]
5088        [::std::mem::offset_of!(kvm_irq_routing_xen_evtchn, priority) - 8usize];
5089};
5090#[repr(C)]
5091#[derive(Copy, Clone)]
5092pub struct kvm_irq_routing_entry {
5093    pub gsi: __u32,
5094    pub type_: __u32,
5095    pub flags: __u32,
5096    pub pad: __u32,
5097    pub u: kvm_irq_routing_entry__bindgen_ty_1,
5098}
5099#[repr(C)]
5100#[derive(Copy, Clone)]
5101pub union kvm_irq_routing_entry__bindgen_ty_1 {
5102    pub irqchip: kvm_irq_routing_irqchip,
5103    pub msi: kvm_irq_routing_msi,
5104    pub adapter: kvm_irq_routing_s390_adapter,
5105    pub hv_sint: kvm_irq_routing_hv_sint,
5106    pub xen_evtchn: kvm_irq_routing_xen_evtchn,
5107    pub pad: [__u32; 8usize],
5108}
5109#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5110const _: () = {
5111    ["Size of kvm_irq_routing_entry__bindgen_ty_1"]
5112        [::std::mem::size_of::<kvm_irq_routing_entry__bindgen_ty_1>() - 32usize];
5113    ["Alignment of kvm_irq_routing_entry__bindgen_ty_1"]
5114        [::std::mem::align_of::<kvm_irq_routing_entry__bindgen_ty_1>() - 8usize];
5115    ["Offset of field: kvm_irq_routing_entry__bindgen_ty_1::irqchip"]
5116        [::std::mem::offset_of!(kvm_irq_routing_entry__bindgen_ty_1, irqchip) - 0usize];
5117    ["Offset of field: kvm_irq_routing_entry__bindgen_ty_1::msi"]
5118        [::std::mem::offset_of!(kvm_irq_routing_entry__bindgen_ty_1, msi) - 0usize];
5119    ["Offset of field: kvm_irq_routing_entry__bindgen_ty_1::adapter"]
5120        [::std::mem::offset_of!(kvm_irq_routing_entry__bindgen_ty_1, adapter) - 0usize];
5121    ["Offset of field: kvm_irq_routing_entry__bindgen_ty_1::hv_sint"]
5122        [::std::mem::offset_of!(kvm_irq_routing_entry__bindgen_ty_1, hv_sint) - 0usize];
5123    ["Offset of field: kvm_irq_routing_entry__bindgen_ty_1::xen_evtchn"]
5124        [::std::mem::offset_of!(kvm_irq_routing_entry__bindgen_ty_1, xen_evtchn) - 0usize];
5125    ["Offset of field: kvm_irq_routing_entry__bindgen_ty_1::pad"]
5126        [::std::mem::offset_of!(kvm_irq_routing_entry__bindgen_ty_1, pad) - 0usize];
5127};
5128impl Default for kvm_irq_routing_entry__bindgen_ty_1 {
5129    fn default() -> Self {
5130        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5131        unsafe {
5132            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5133            s.assume_init()
5134        }
5135    }
5136}
5137impl ::std::fmt::Debug for kvm_irq_routing_entry__bindgen_ty_1 {
5138    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5139        write!(f, "kvm_irq_routing_entry__bindgen_ty_1 {{ union }}")
5140    }
5141}
5142#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5143const _: () = {
5144    ["Size of kvm_irq_routing_entry"][::std::mem::size_of::<kvm_irq_routing_entry>() - 48usize];
5145    ["Alignment of kvm_irq_routing_entry"]
5146        [::std::mem::align_of::<kvm_irq_routing_entry>() - 8usize];
5147    ["Offset of field: kvm_irq_routing_entry::gsi"]
5148        [::std::mem::offset_of!(kvm_irq_routing_entry, gsi) - 0usize];
5149    ["Offset of field: kvm_irq_routing_entry::type_"]
5150        [::std::mem::offset_of!(kvm_irq_routing_entry, type_) - 4usize];
5151    ["Offset of field: kvm_irq_routing_entry::flags"]
5152        [::std::mem::offset_of!(kvm_irq_routing_entry, flags) - 8usize];
5153    ["Offset of field: kvm_irq_routing_entry::pad"]
5154        [::std::mem::offset_of!(kvm_irq_routing_entry, pad) - 12usize];
5155    ["Offset of field: kvm_irq_routing_entry::u"]
5156        [::std::mem::offset_of!(kvm_irq_routing_entry, u) - 16usize];
5157};
5158impl Default for kvm_irq_routing_entry {
5159    fn default() -> Self {
5160        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5161        unsafe {
5162            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5163            s.assume_init()
5164        }
5165    }
5166}
5167impl ::std::fmt::Debug for kvm_irq_routing_entry {
5168    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5169        write!(
5170            f,
5171            "kvm_irq_routing_entry {{ gsi: {:?}, type: {:?}, flags: {:?}, pad: {:?}, u: {:?} }}",
5172            self.gsi, self.type_, self.flags, self.pad, self.u
5173        )
5174    }
5175}
5176#[repr(C)]
5177pub struct kvm_irq_routing {
5178    pub nr: __u32,
5179    pub flags: __u32,
5180    pub entries: __IncompleteArrayField<kvm_irq_routing_entry>,
5181}
5182#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5183const _: () = {
5184    ["Size of kvm_irq_routing"][::std::mem::size_of::<kvm_irq_routing>() - 8usize];
5185    ["Alignment of kvm_irq_routing"][::std::mem::align_of::<kvm_irq_routing>() - 8usize];
5186    ["Offset of field: kvm_irq_routing::nr"][::std::mem::offset_of!(kvm_irq_routing, nr) - 0usize];
5187    ["Offset of field: kvm_irq_routing::flags"]
5188        [::std::mem::offset_of!(kvm_irq_routing, flags) - 4usize];
5189    ["Offset of field: kvm_irq_routing::entries"]
5190        [::std::mem::offset_of!(kvm_irq_routing, entries) - 8usize];
5191};
5192impl Default for kvm_irq_routing {
5193    fn default() -> Self {
5194        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5195        unsafe {
5196            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5197            s.assume_init()
5198        }
5199    }
5200}
5201impl ::std::fmt::Debug for kvm_irq_routing {
5202    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5203        write!(
5204            f,
5205            "kvm_irq_routing {{ nr: {:?}, flags: {:?}, entries: {:?} }}",
5206            self.nr, self.flags, self.entries
5207        )
5208    }
5209}
5210#[repr(C)]
5211#[derive(Debug, Default, Copy, Clone, PartialEq)]
5212pub struct kvm_irqfd {
5213    pub fd: __u32,
5214    pub gsi: __u32,
5215    pub flags: __u32,
5216    pub resamplefd: __u32,
5217    pub pad: [__u8; 16usize],
5218}
5219#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5220const _: () = {
5221    ["Size of kvm_irqfd"][::std::mem::size_of::<kvm_irqfd>() - 32usize];
5222    ["Alignment of kvm_irqfd"][::std::mem::align_of::<kvm_irqfd>() - 4usize];
5223    ["Offset of field: kvm_irqfd::fd"][::std::mem::offset_of!(kvm_irqfd, fd) - 0usize];
5224    ["Offset of field: kvm_irqfd::gsi"][::std::mem::offset_of!(kvm_irqfd, gsi) - 4usize];
5225    ["Offset of field: kvm_irqfd::flags"][::std::mem::offset_of!(kvm_irqfd, flags) - 8usize];
5226    ["Offset of field: kvm_irqfd::resamplefd"]
5227        [::std::mem::offset_of!(kvm_irqfd, resamplefd) - 12usize];
5228    ["Offset of field: kvm_irqfd::pad"][::std::mem::offset_of!(kvm_irqfd, pad) - 16usize];
5229};
5230#[repr(C)]
5231#[derive(Debug, Default, Copy, Clone, PartialEq)]
5232#[cfg_attr(
5233    feature = "serde",
5234    derive(zerocopy::AsBytes, zerocopy::FromBytes, zerocopy::FromZeroes)
5235)]
5236pub struct kvm_clock_data {
5237    pub clock: __u64,
5238    pub flags: __u32,
5239    pub pad0: __u32,
5240    pub realtime: __u64,
5241    pub host_tsc: __u64,
5242    pub pad: [__u32; 4usize],
5243}
5244#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5245const _: () = {
5246    ["Size of kvm_clock_data"][::std::mem::size_of::<kvm_clock_data>() - 48usize];
5247    ["Alignment of kvm_clock_data"][::std::mem::align_of::<kvm_clock_data>() - 8usize];
5248    ["Offset of field: kvm_clock_data::clock"]
5249        [::std::mem::offset_of!(kvm_clock_data, clock) - 0usize];
5250    ["Offset of field: kvm_clock_data::flags"]
5251        [::std::mem::offset_of!(kvm_clock_data, flags) - 8usize];
5252    ["Offset of field: kvm_clock_data::pad0"]
5253        [::std::mem::offset_of!(kvm_clock_data, pad0) - 12usize];
5254    ["Offset of field: kvm_clock_data::realtime"]
5255        [::std::mem::offset_of!(kvm_clock_data, realtime) - 16usize];
5256    ["Offset of field: kvm_clock_data::host_tsc"]
5257        [::std::mem::offset_of!(kvm_clock_data, host_tsc) - 24usize];
5258    ["Offset of field: kvm_clock_data::pad"][::std::mem::offset_of!(kvm_clock_data, pad) - 32usize];
5259};
5260#[repr(C)]
5261#[derive(Debug, Default, Copy, Clone, PartialEq)]
5262pub struct kvm_config_tlb {
5263    pub params: __u64,
5264    pub array: __u64,
5265    pub mmu_type: __u32,
5266    pub array_len: __u32,
5267}
5268#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5269const _: () = {
5270    ["Size of kvm_config_tlb"][::std::mem::size_of::<kvm_config_tlb>() - 24usize];
5271    ["Alignment of kvm_config_tlb"][::std::mem::align_of::<kvm_config_tlb>() - 8usize];
5272    ["Offset of field: kvm_config_tlb::params"]
5273        [::std::mem::offset_of!(kvm_config_tlb, params) - 0usize];
5274    ["Offset of field: kvm_config_tlb::array"]
5275        [::std::mem::offset_of!(kvm_config_tlb, array) - 8usize];
5276    ["Offset of field: kvm_config_tlb::mmu_type"]
5277        [::std::mem::offset_of!(kvm_config_tlb, mmu_type) - 16usize];
5278    ["Offset of field: kvm_config_tlb::array_len"]
5279        [::std::mem::offset_of!(kvm_config_tlb, array_len) - 20usize];
5280};
5281#[repr(C)]
5282#[derive(Debug, Default, Copy, Clone, PartialEq)]
5283pub struct kvm_dirty_tlb {
5284    pub bitmap: __u64,
5285    pub num_dirty: __u32,
5286}
5287#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5288const _: () = {
5289    ["Size of kvm_dirty_tlb"][::std::mem::size_of::<kvm_dirty_tlb>() - 16usize];
5290    ["Alignment of kvm_dirty_tlb"][::std::mem::align_of::<kvm_dirty_tlb>() - 8usize];
5291    ["Offset of field: kvm_dirty_tlb::bitmap"]
5292        [::std::mem::offset_of!(kvm_dirty_tlb, bitmap) - 0usize];
5293    ["Offset of field: kvm_dirty_tlb::num_dirty"]
5294        [::std::mem::offset_of!(kvm_dirty_tlb, num_dirty) - 8usize];
5295};
5296#[repr(C)]
5297#[derive(Debug, Default)]
5298pub struct kvm_reg_list {
5299    pub n: __u64,
5300    pub reg: __IncompleteArrayField<__u64>,
5301}
5302#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5303const _: () = {
5304    ["Size of kvm_reg_list"][::std::mem::size_of::<kvm_reg_list>() - 8usize];
5305    ["Alignment of kvm_reg_list"][::std::mem::align_of::<kvm_reg_list>() - 8usize];
5306    ["Offset of field: kvm_reg_list::n"][::std::mem::offset_of!(kvm_reg_list, n) - 0usize];
5307    ["Offset of field: kvm_reg_list::reg"][::std::mem::offset_of!(kvm_reg_list, reg) - 8usize];
5308};
5309#[repr(C)]
5310#[derive(Debug, Default, Copy, Clone, PartialEq)]
5311pub struct kvm_one_reg {
5312    pub id: __u64,
5313    pub addr: __u64,
5314}
5315#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5316const _: () = {
5317    ["Size of kvm_one_reg"][::std::mem::size_of::<kvm_one_reg>() - 16usize];
5318    ["Alignment of kvm_one_reg"][::std::mem::align_of::<kvm_one_reg>() - 8usize];
5319    ["Offset of field: kvm_one_reg::id"][::std::mem::offset_of!(kvm_one_reg, id) - 0usize];
5320    ["Offset of field: kvm_one_reg::addr"][::std::mem::offset_of!(kvm_one_reg, addr) - 8usize];
5321};
5322#[repr(C)]
5323#[derive(Debug, Default, Copy, Clone, PartialEq)]
5324pub struct kvm_msi {
5325    pub address_lo: __u32,
5326    pub address_hi: __u32,
5327    pub data: __u32,
5328    pub flags: __u32,
5329    pub devid: __u32,
5330    pub pad: [__u8; 12usize],
5331}
5332#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5333const _: () = {
5334    ["Size of kvm_msi"][::std::mem::size_of::<kvm_msi>() - 32usize];
5335    ["Alignment of kvm_msi"][::std::mem::align_of::<kvm_msi>() - 4usize];
5336    ["Offset of field: kvm_msi::address_lo"][::std::mem::offset_of!(kvm_msi, address_lo) - 0usize];
5337    ["Offset of field: kvm_msi::address_hi"][::std::mem::offset_of!(kvm_msi, address_hi) - 4usize];
5338    ["Offset of field: kvm_msi::data"][::std::mem::offset_of!(kvm_msi, data) - 8usize];
5339    ["Offset of field: kvm_msi::flags"][::std::mem::offset_of!(kvm_msi, flags) - 12usize];
5340    ["Offset of field: kvm_msi::devid"][::std::mem::offset_of!(kvm_msi, devid) - 16usize];
5341    ["Offset of field: kvm_msi::pad"][::std::mem::offset_of!(kvm_msi, pad) - 20usize];
5342};
5343#[repr(C)]
5344#[derive(Debug, Default, Copy, Clone, PartialEq)]
5345pub struct kvm_arm_device_addr {
5346    pub id: __u64,
5347    pub addr: __u64,
5348}
5349#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5350const _: () = {
5351    ["Size of kvm_arm_device_addr"][::std::mem::size_of::<kvm_arm_device_addr>() - 16usize];
5352    ["Alignment of kvm_arm_device_addr"][::std::mem::align_of::<kvm_arm_device_addr>() - 8usize];
5353    ["Offset of field: kvm_arm_device_addr::id"]
5354        [::std::mem::offset_of!(kvm_arm_device_addr, id) - 0usize];
5355    ["Offset of field: kvm_arm_device_addr::addr"]
5356        [::std::mem::offset_of!(kvm_arm_device_addr, addr) - 8usize];
5357};
5358#[repr(C)]
5359#[derive(Debug, Default, Copy, Clone, PartialEq)]
5360pub struct kvm_create_device {
5361    pub type_: __u32,
5362    pub fd: __u32,
5363    pub flags: __u32,
5364}
5365#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5366const _: () = {
5367    ["Size of kvm_create_device"][::std::mem::size_of::<kvm_create_device>() - 12usize];
5368    ["Alignment of kvm_create_device"][::std::mem::align_of::<kvm_create_device>() - 4usize];
5369    ["Offset of field: kvm_create_device::type_"]
5370        [::std::mem::offset_of!(kvm_create_device, type_) - 0usize];
5371    ["Offset of field: kvm_create_device::fd"]
5372        [::std::mem::offset_of!(kvm_create_device, fd) - 4usize];
5373    ["Offset of field: kvm_create_device::flags"]
5374        [::std::mem::offset_of!(kvm_create_device, flags) - 8usize];
5375};
5376#[repr(C)]
5377#[derive(Debug, Default, Copy, Clone, PartialEq)]
5378pub struct kvm_device_attr {
5379    pub flags: __u32,
5380    pub group: __u32,
5381    pub attr: __u64,
5382    pub addr: __u64,
5383}
5384#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5385const _: () = {
5386    ["Size of kvm_device_attr"][::std::mem::size_of::<kvm_device_attr>() - 24usize];
5387    ["Alignment of kvm_device_attr"][::std::mem::align_of::<kvm_device_attr>() - 8usize];
5388    ["Offset of field: kvm_device_attr::flags"]
5389        [::std::mem::offset_of!(kvm_device_attr, flags) - 0usize];
5390    ["Offset of field: kvm_device_attr::group"]
5391        [::std::mem::offset_of!(kvm_device_attr, group) - 4usize];
5392    ["Offset of field: kvm_device_attr::attr"]
5393        [::std::mem::offset_of!(kvm_device_attr, attr) - 8usize];
5394    ["Offset of field: kvm_device_attr::addr"]
5395        [::std::mem::offset_of!(kvm_device_attr, addr) - 16usize];
5396};
5397pub const kvm_device_type_KVM_DEV_TYPE_FSL_MPIC_20: kvm_device_type = 1;
5398pub const kvm_device_type_KVM_DEV_TYPE_FSL_MPIC_42: kvm_device_type = 2;
5399pub const kvm_device_type_KVM_DEV_TYPE_XICS: kvm_device_type = 3;
5400pub const kvm_device_type_KVM_DEV_TYPE_VFIO: kvm_device_type = 4;
5401pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_V2: kvm_device_type = 5;
5402pub const kvm_device_type_KVM_DEV_TYPE_FLIC: kvm_device_type = 6;
5403pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_V3: kvm_device_type = 7;
5404pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_ITS: kvm_device_type = 8;
5405pub const kvm_device_type_KVM_DEV_TYPE_XIVE: kvm_device_type = 9;
5406pub const kvm_device_type_KVM_DEV_TYPE_ARM_PV_TIME: kvm_device_type = 10;
5407pub const kvm_device_type_KVM_DEV_TYPE_RISCV_AIA: kvm_device_type = 11;
5408pub const kvm_device_type_KVM_DEV_TYPE_MAX: kvm_device_type = 12;
5409pub type kvm_device_type = ::std::os::raw::c_uint;
5410#[repr(C)]
5411#[derive(Debug, Default, Copy, Clone, PartialEq)]
5412pub struct kvm_vfio_spapr_tce {
5413    pub groupfd: __s32,
5414    pub tablefd: __s32,
5415}
5416#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5417const _: () = {
5418    ["Size of kvm_vfio_spapr_tce"][::std::mem::size_of::<kvm_vfio_spapr_tce>() - 8usize];
5419    ["Alignment of kvm_vfio_spapr_tce"][::std::mem::align_of::<kvm_vfio_spapr_tce>() - 4usize];
5420    ["Offset of field: kvm_vfio_spapr_tce::groupfd"]
5421        [::std::mem::offset_of!(kvm_vfio_spapr_tce, groupfd) - 0usize];
5422    ["Offset of field: kvm_vfio_spapr_tce::tablefd"]
5423        [::std::mem::offset_of!(kvm_vfio_spapr_tce, tablefd) - 4usize];
5424};
5425#[repr(C)]
5426#[derive(Debug, Default, Copy, Clone, PartialEq)]
5427pub struct kvm_enc_region {
5428    pub addr: __u64,
5429    pub size: __u64,
5430}
5431#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5432const _: () = {
5433    ["Size of kvm_enc_region"][::std::mem::size_of::<kvm_enc_region>() - 16usize];
5434    ["Alignment of kvm_enc_region"][::std::mem::align_of::<kvm_enc_region>() - 8usize];
5435    ["Offset of field: kvm_enc_region::addr"]
5436        [::std::mem::offset_of!(kvm_enc_region, addr) - 0usize];
5437    ["Offset of field: kvm_enc_region::size"]
5438        [::std::mem::offset_of!(kvm_enc_region, size) - 8usize];
5439};
5440#[repr(C)]
5441#[derive(Debug, Default, Copy, Clone, PartialEq)]
5442pub struct kvm_dirty_gfn {
5443    pub flags: __u32,
5444    pub slot: __u32,
5445    pub offset: __u64,
5446}
5447#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5448const _: () = {
5449    ["Size of kvm_dirty_gfn"][::std::mem::size_of::<kvm_dirty_gfn>() - 16usize];
5450    ["Alignment of kvm_dirty_gfn"][::std::mem::align_of::<kvm_dirty_gfn>() - 8usize];
5451    ["Offset of field: kvm_dirty_gfn::flags"]
5452        [::std::mem::offset_of!(kvm_dirty_gfn, flags) - 0usize];
5453    ["Offset of field: kvm_dirty_gfn::slot"][::std::mem::offset_of!(kvm_dirty_gfn, slot) - 4usize];
5454    ["Offset of field: kvm_dirty_gfn::offset"]
5455        [::std::mem::offset_of!(kvm_dirty_gfn, offset) - 8usize];
5456};
5457#[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."]
5458#[repr(C)]
5459#[derive(Debug, Default, Copy, Clone, PartialEq)]
5460pub struct kvm_stats_header {
5461    pub flags: __u32,
5462    pub name_size: __u32,
5463    pub num_desc: __u32,
5464    pub id_offset: __u32,
5465    pub desc_offset: __u32,
5466    pub data_offset: __u32,
5467}
5468#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5469const _: () = {
5470    ["Size of kvm_stats_header"][::std::mem::size_of::<kvm_stats_header>() - 24usize];
5471    ["Alignment of kvm_stats_header"][::std::mem::align_of::<kvm_stats_header>() - 4usize];
5472    ["Offset of field: kvm_stats_header::flags"]
5473        [::std::mem::offset_of!(kvm_stats_header, flags) - 0usize];
5474    ["Offset of field: kvm_stats_header::name_size"]
5475        [::std::mem::offset_of!(kvm_stats_header, name_size) - 4usize];
5476    ["Offset of field: kvm_stats_header::num_desc"]
5477        [::std::mem::offset_of!(kvm_stats_header, num_desc) - 8usize];
5478    ["Offset of field: kvm_stats_header::id_offset"]
5479        [::std::mem::offset_of!(kvm_stats_header, id_offset) - 12usize];
5480    ["Offset of field: kvm_stats_header::desc_offset"]
5481        [::std::mem::offset_of!(kvm_stats_header, desc_offset) - 16usize];
5482    ["Offset of field: kvm_stats_header::data_offset"]
5483        [::std::mem::offset_of!(kvm_stats_header, data_offset) - 20usize];
5484};
5485#[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."]
5486#[repr(C)]
5487#[derive(Debug, Default)]
5488pub struct kvm_stats_desc {
5489    pub flags: __u32,
5490    pub exponent: __s16,
5491    pub size: __u16,
5492    pub offset: __u32,
5493    pub bucket_size: __u32,
5494    pub name: __IncompleteArrayField<::std::os::raw::c_char>,
5495}
5496#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5497const _: () = {
5498    ["Size of kvm_stats_desc"][::std::mem::size_of::<kvm_stats_desc>() - 16usize];
5499    ["Alignment of kvm_stats_desc"][::std::mem::align_of::<kvm_stats_desc>() - 4usize];
5500    ["Offset of field: kvm_stats_desc::flags"]
5501        [::std::mem::offset_of!(kvm_stats_desc, flags) - 0usize];
5502    ["Offset of field: kvm_stats_desc::exponent"]
5503        [::std::mem::offset_of!(kvm_stats_desc, exponent) - 4usize];
5504    ["Offset of field: kvm_stats_desc::size"]
5505        [::std::mem::offset_of!(kvm_stats_desc, size) - 6usize];
5506    ["Offset of field: kvm_stats_desc::offset"]
5507        [::std::mem::offset_of!(kvm_stats_desc, offset) - 8usize];
5508    ["Offset of field: kvm_stats_desc::bucket_size"]
5509        [::std::mem::offset_of!(kvm_stats_desc, bucket_size) - 12usize];
5510    ["Offset of field: kvm_stats_desc::name"]
5511        [::std::mem::offset_of!(kvm_stats_desc, name) - 16usize];
5512};
5513#[repr(C)]
5514#[derive(Debug, Default, Copy, Clone, PartialEq)]
5515pub struct kvm_memory_attributes {
5516    pub address: __u64,
5517    pub size: __u64,
5518    pub attributes: __u64,
5519    pub flags: __u64,
5520}
5521#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5522const _: () = {
5523    ["Size of kvm_memory_attributes"][::std::mem::size_of::<kvm_memory_attributes>() - 32usize];
5524    ["Alignment of kvm_memory_attributes"]
5525        [::std::mem::align_of::<kvm_memory_attributes>() - 8usize];
5526    ["Offset of field: kvm_memory_attributes::address"]
5527        [::std::mem::offset_of!(kvm_memory_attributes, address) - 0usize];
5528    ["Offset of field: kvm_memory_attributes::size"]
5529        [::std::mem::offset_of!(kvm_memory_attributes, size) - 8usize];
5530    ["Offset of field: kvm_memory_attributes::attributes"]
5531        [::std::mem::offset_of!(kvm_memory_attributes, attributes) - 16usize];
5532    ["Offset of field: kvm_memory_attributes::flags"]
5533        [::std::mem::offset_of!(kvm_memory_attributes, flags) - 24usize];
5534};
5535#[repr(C)]
5536#[derive(Debug, Default, Copy, Clone, PartialEq)]
5537pub struct kvm_create_guest_memfd {
5538    pub size: __u64,
5539    pub flags: __u64,
5540    pub reserved: [__u64; 6usize],
5541}
5542#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5543const _: () = {
5544    ["Size of kvm_create_guest_memfd"][::std::mem::size_of::<kvm_create_guest_memfd>() - 64usize];
5545    ["Alignment of kvm_create_guest_memfd"]
5546        [::std::mem::align_of::<kvm_create_guest_memfd>() - 8usize];
5547    ["Offset of field: kvm_create_guest_memfd::size"]
5548        [::std::mem::offset_of!(kvm_create_guest_memfd, size) - 0usize];
5549    ["Offset of field: kvm_create_guest_memfd::flags"]
5550        [::std::mem::offset_of!(kvm_create_guest_memfd, flags) - 8usize];
5551    ["Offset of field: kvm_create_guest_memfd::reserved"]
5552        [::std::mem::offset_of!(kvm_create_guest_memfd, reserved) - 16usize];
5553};