• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* automatically generated by tools/bindgen-all-the-things */
2 
3 #![allow(clippy::missing_safety_doc)]
4 #![allow(clippy::upper_case_acronyms)]
5 #![allow(non_upper_case_globals)]
6 #![allow(non_camel_case_types)]
7 #![allow(non_snake_case)]
8 #![allow(dead_code)]
9 
10 // Added by kvm_sys/bindgen.sh
11 pub const KVM_SYSTEM_EVENT_S2IDLE: u32 = 4;
12 // TODO(tjeznach): Remove this when reporting KVM_IOAPIC_NUM_PINS is no longer required.
13 pub const KVM_CAP_IOAPIC_NUM_PINS: u32 = 8191;
14 // TODO(qwandor): Update this once the pKVM patches are merged upstream with a stable capability ID.
15 pub const KVM_CAP_ARM_PROTECTED_VM: u32 = 0xffbadab1;
16 pub const KVM_CAP_ARM_PROTECTED_VM_FLAGS_SET_FW_IPA: u32 = 0;
17 pub const KVM_CAP_ARM_PROTECTED_VM_FLAGS_INFO: u32 = 1;
18 pub const KVM_VM_TYPE_ARM_PROTECTED: u32 = 0x80000000;
19 
20 #[repr(C)]
21 #[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
22 pub struct __BindgenBitfieldUnit<Storage> {
23     storage: Storage,
24 }
25 impl<Storage> __BindgenBitfieldUnit<Storage> {
26     #[inline]
new(storage: Storage) -> Self27     pub const fn new(storage: Storage) -> Self {
28         Self { storage }
29     }
30 }
31 impl<Storage> __BindgenBitfieldUnit<Storage>
32 where
33     Storage: AsRef<[u8]> + AsMut<[u8]>,
34 {
35     #[inline]
get_bit(&self, index: usize) -> bool36     pub fn get_bit(&self, index: usize) -> bool {
37         debug_assert!(index / 8 < self.storage.as_ref().len());
38         let byte_index = index / 8;
39         let byte = self.storage.as_ref()[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         byte & mask == mask
47     }
48     #[inline]
set_bit(&mut self, index: usize, val: bool)49     pub fn set_bit(&mut self, index: usize, val: bool) {
50         debug_assert!(index / 8 < self.storage.as_ref().len());
51         let byte_index = index / 8;
52         let byte = &mut self.storage.as_mut()[byte_index];
53         let bit_index = if cfg!(target_endian = "big") {
54             7 - (index % 8)
55         } else {
56             index % 8
57         };
58         let mask = 1 << bit_index;
59         if val {
60             *byte |= mask;
61         } else {
62             *byte &= !mask;
63         }
64     }
65     #[inline]
get(&self, bit_offset: usize, bit_width: u8) -> u6466     pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
67         debug_assert!(bit_width <= 64);
68         debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
69         debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
70         let mut val = 0;
71         for i in 0..(bit_width as usize) {
72             if self.get_bit(i + bit_offset) {
73                 let index = if cfg!(target_endian = "big") {
74                     bit_width as usize - 1 - i
75                 } else {
76                     i
77                 };
78                 val |= 1 << index;
79             }
80         }
81         val
82     }
83     #[inline]
set(&mut self, bit_offset: usize, bit_width: u8, val: u64)84     pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
85         debug_assert!(bit_width <= 64);
86         debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
87         debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
88         for i in 0..(bit_width as usize) {
89             let mask = 1 << i;
90             let val_bit_is_set = val & mask == mask;
91             let index = if cfg!(target_endian = "big") {
92                 bit_width as usize - 1 - i
93             } else {
94                 i
95             };
96             self.set_bit(index + bit_offset, val_bit_is_set);
97         }
98     }
99 }
100 #[repr(C)]
101 #[derive(Default)]
102 pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]);
103 impl<T> __IncompleteArrayField<T> {
104     #[inline]
new() -> Self105     pub const fn new() -> Self {
106         __IncompleteArrayField(::std::marker::PhantomData, [])
107     }
108     #[inline]
as_ptr(&self) -> *const T109     pub fn as_ptr(&self) -> *const T {
110         self as *const _ as *const T
111     }
112     #[inline]
as_mut_ptr(&mut self) -> *mut T113     pub fn as_mut_ptr(&mut self) -> *mut T {
114         self as *mut _ as *mut T
115     }
116     #[inline]
as_slice(&self, len: usize) -> &[T]117     pub unsafe fn as_slice(&self, len: usize) -> &[T] {
118         ::std::slice::from_raw_parts(self.as_ptr(), len)
119     }
120     #[inline]
as_mut_slice(&mut self, len: usize) -> &mut [T]121     pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
122         ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
123     }
124 }
125 impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result126     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
127         fmt.write_str("__IncompleteArrayField")
128     }
129 }
130 #[repr(C)]
131 pub struct __BindgenUnionField<T>(::std::marker::PhantomData<T>);
132 impl<T> __BindgenUnionField<T> {
133     #[inline]
new() -> Self134     pub const fn new() -> Self {
135         __BindgenUnionField(::std::marker::PhantomData)
136     }
137     #[inline]
as_ref(&self) -> &T138     pub unsafe fn as_ref(&self) -> &T {
139         ::std::mem::transmute(self)
140     }
141     #[inline]
as_mut(&mut self) -> &mut T142     pub unsafe fn as_mut(&mut self) -> &mut T {
143         ::std::mem::transmute(self)
144     }
145 }
146 impl<T> ::std::default::Default for __BindgenUnionField<T> {
147     #[inline]
default() -> Self148     fn default() -> Self {
149         Self::new()
150     }
151 }
152 impl<T> ::std::clone::Clone for __BindgenUnionField<T> {
153     #[inline]
clone(&self) -> Self154     fn clone(&self) -> Self {
155         Self::new()
156     }
157 }
158 impl<T> ::std::marker::Copy for __BindgenUnionField<T> {}
159 impl<T> ::std::fmt::Debug for __BindgenUnionField<T> {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result160     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
161         fmt.write_str("__BindgenUnionField")
162     }
163 }
164 impl<T> ::std::hash::Hash for __BindgenUnionField<T> {
hash<H: ::std::hash::Hasher>(&self, _state: &mut H)165     fn hash<H: ::std::hash::Hasher>(&self, _state: &mut H) {}
166 }
167 impl<T> ::std::cmp::PartialEq for __BindgenUnionField<T> {
eq(&self, _other: &__BindgenUnionField<T>) -> bool168     fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
169         true
170     }
171 }
172 impl<T> ::std::cmp::Eq for __BindgenUnionField<T> {}
173 pub const KVM_PIO_PAGE_OFFSET: u32 = 1;
174 pub const KVM_COALESCED_MMIO_PAGE_OFFSET: u32 = 2;
175 pub const KVM_DIRTY_LOG_PAGE_OFFSET: u32 = 64;
176 pub const DE_VECTOR: u32 = 0;
177 pub const DB_VECTOR: u32 = 1;
178 pub const BP_VECTOR: u32 = 3;
179 pub const OF_VECTOR: u32 = 4;
180 pub const BR_VECTOR: u32 = 5;
181 pub const UD_VECTOR: u32 = 6;
182 pub const NM_VECTOR: u32 = 7;
183 pub const DF_VECTOR: u32 = 8;
184 pub const TS_VECTOR: u32 = 10;
185 pub const NP_VECTOR: u32 = 11;
186 pub const SS_VECTOR: u32 = 12;
187 pub const GP_VECTOR: u32 = 13;
188 pub const PF_VECTOR: u32 = 14;
189 pub const MF_VECTOR: u32 = 16;
190 pub const AC_VECTOR: u32 = 17;
191 pub const MC_VECTOR: u32 = 18;
192 pub const XM_VECTOR: u32 = 19;
193 pub const VE_VECTOR: u32 = 20;
194 pub const KVM_NR_INTERRUPTS: u32 = 256;
195 pub const KVM_IOAPIC_NUM_PINS: u32 = 24;
196 pub const KVM_IRQCHIP_PIC_MASTER: u32 = 0;
197 pub const KVM_IRQCHIP_PIC_SLAVE: u32 = 1;
198 pub const KVM_IRQCHIP_IOAPIC: u32 = 2;
199 pub const KVM_NR_IRQCHIPS: u32 = 3;
200 pub const KVM_RUN_X86_SMM: u32 = 1;
201 pub const KVM_RUN_X86_BUS_LOCK: u32 = 2;
202 pub const KVM_APIC_REG_SIZE: u32 = 1024;
203 pub const KVM_SREGS2_FLAGS_PDPTRS_VALID: u32 = 1;
204 pub const KVM_MSR_FILTER_MAX_BITMAP_SIZE: u32 = 1536;
205 pub const KVM_MSR_FILTER_READ: u32 = 1;
206 pub const KVM_MSR_FILTER_WRITE: u32 = 2;
207 pub const KVM_MSR_FILTER_MAX_RANGES: u32 = 16;
208 pub const KVM_MSR_FILTER_DEFAULT_ALLOW: u32 = 0;
209 pub const KVM_MSR_FILTER_DEFAULT_DENY: u32 = 1;
210 pub const KVM_CPUID_FLAG_SIGNIFCANT_INDEX: u32 = 1;
211 pub const KVM_CPUID_FLAG_STATEFUL_FUNC: u32 = 2;
212 pub const KVM_CPUID_FLAG_STATE_READ_NEXT: u32 = 4;
213 pub const KVM_GUESTDBG_USE_SW_BP: u32 = 65536;
214 pub const KVM_GUESTDBG_USE_HW_BP: u32 = 131072;
215 pub const KVM_GUESTDBG_INJECT_DB: u32 = 262144;
216 pub const KVM_GUESTDBG_INJECT_BP: u32 = 524288;
217 pub const KVM_GUESTDBG_BLOCKIRQ: u32 = 1048576;
218 pub const KVM_PIT_FLAGS_HPET_LEGACY: u32 = 1;
219 pub const KVM_PIT_FLAGS_SPEAKER_DATA_ON: u32 = 2;
220 pub const KVM_VCPUEVENT_VALID_NMI_PENDING: u32 = 1;
221 pub const KVM_VCPUEVENT_VALID_SIPI_VECTOR: u32 = 2;
222 pub const KVM_VCPUEVENT_VALID_SHADOW: u32 = 4;
223 pub const KVM_VCPUEVENT_VALID_SMM: u32 = 8;
224 pub const KVM_VCPUEVENT_VALID_PAYLOAD: u32 = 16;
225 pub const KVM_VCPUEVENT_VALID_TRIPLE_FAULT: u32 = 32;
226 pub const KVM_X86_SHADOW_INT_MOV_SS: u32 = 1;
227 pub const KVM_X86_SHADOW_INT_STI: u32 = 2;
228 pub const KVM_MAX_XCRS: u32 = 16;
229 pub const KVM_SYNC_X86_REGS: u32 = 1;
230 pub const KVM_SYNC_X86_SREGS: u32 = 2;
231 pub const KVM_SYNC_X86_EVENTS: u32 = 4;
232 pub const KVM_SYNC_X86_VALID_FIELDS: u32 = 7;
233 pub const KVM_X86_QUIRK_LINT0_REENABLED: u32 = 1;
234 pub const KVM_X86_QUIRK_CD_NW_CLEARED: u32 = 2;
235 pub const KVM_X86_QUIRK_LAPIC_MMIO_HOLE: u32 = 4;
236 pub const KVM_X86_QUIRK_OUT_7E_INC_RIP: u32 = 8;
237 pub const KVM_X86_QUIRK_MISC_ENABLE_NO_MWAIT: u32 = 16;
238 pub const KVM_X86_QUIRK_FIX_HYPERCALL_INSN: u32 = 32;
239 pub const KVM_X86_QUIRK_MWAIT_NEVER_UD_FAULTS: u32 = 64;
240 pub const KVM_STATE_NESTED_FORMAT_VMX: u32 = 0;
241 pub const KVM_STATE_NESTED_FORMAT_SVM: u32 = 1;
242 pub const KVM_STATE_NESTED_GUEST_MODE: u32 = 1;
243 pub const KVM_STATE_NESTED_RUN_PENDING: u32 = 2;
244 pub const KVM_STATE_NESTED_EVMCS: u32 = 4;
245 pub const KVM_STATE_NESTED_MTF_PENDING: u32 = 8;
246 pub const KVM_STATE_NESTED_GIF_SET: u32 = 256;
247 pub const KVM_STATE_NESTED_SMM_GUEST_MODE: u32 = 1;
248 pub const KVM_STATE_NESTED_SMM_VMXON: u32 = 2;
249 pub const KVM_STATE_NESTED_VMX_VMCS_SIZE: u32 = 4096;
250 pub const KVM_STATE_NESTED_SVM_VMCB_SIZE: u32 = 4096;
251 pub const KVM_STATE_VMX_PREEMPTION_TIMER_DEADLINE: u32 = 1;
252 pub const KVM_X86_XCOMP_GUEST_SUPP: u32 = 0;
253 pub const KVM_PMU_EVENT_ALLOW: u32 = 0;
254 pub const KVM_PMU_EVENT_DENY: u32 = 1;
255 pub const KVM_VCPU_TSC_CTRL: u32 = 0;
256 pub const KVM_VCPU_TSC_OFFSET: u32 = 0;
257 pub const KVM_API_VERSION: u32 = 12;
258 pub const KVM_TRC_SHIFT: u32 = 16;
259 pub const KVM_TRC_ENTRYEXIT: u32 = 65536;
260 pub const KVM_TRC_HANDLER: u32 = 131072;
261 pub const KVM_TRC_VMENTRY: u32 = 65537;
262 pub const KVM_TRC_VMEXIT: u32 = 65538;
263 pub const KVM_TRC_PAGE_FAULT: u32 = 131073;
264 pub const KVM_TRC_HEAD_SIZE: u32 = 12;
265 pub const KVM_TRC_CYCLE_SIZE: u32 = 8;
266 pub const KVM_TRC_EXTRA_MAX: u32 = 7;
267 pub const KVM_TRC_INJ_VIRQ: u32 = 131074;
268 pub const KVM_TRC_REDELIVER_EVT: u32 = 131075;
269 pub const KVM_TRC_PEND_INTR: u32 = 131076;
270 pub const KVM_TRC_IO_READ: u32 = 131077;
271 pub const KVM_TRC_IO_WRITE: u32 = 131078;
272 pub const KVM_TRC_CR_READ: u32 = 131079;
273 pub const KVM_TRC_CR_WRITE: u32 = 131080;
274 pub const KVM_TRC_DR_READ: u32 = 131081;
275 pub const KVM_TRC_DR_WRITE: u32 = 131082;
276 pub const KVM_TRC_MSR_READ: u32 = 131083;
277 pub const KVM_TRC_MSR_WRITE: u32 = 131084;
278 pub const KVM_TRC_CPUID: u32 = 131085;
279 pub const KVM_TRC_INTR: u32 = 131086;
280 pub const KVM_TRC_NMI: u32 = 131087;
281 pub const KVM_TRC_VMMCALL: u32 = 131088;
282 pub const KVM_TRC_HLT: u32 = 131089;
283 pub const KVM_TRC_CLTS: u32 = 131090;
284 pub const KVM_TRC_LMSW: u32 = 131091;
285 pub const KVM_TRC_APIC_ACCESS: u32 = 131092;
286 pub const KVM_TRC_TDP_FAULT: u32 = 131093;
287 pub const KVM_TRC_GTLB_WRITE: u32 = 131094;
288 pub const KVM_TRC_STLB_WRITE: u32 = 131095;
289 pub const KVM_TRC_STLB_INVAL: u32 = 131096;
290 pub const KVM_TRC_PPC_INSTR: u32 = 131097;
291 pub const KVM_MEM_LOG_DIRTY_PAGES: u32 = 1;
292 pub const KVM_MEM_READONLY: u32 = 2;
293 pub const KVM_PIT_SPEAKER_DUMMY: u32 = 1;
294 pub const KVM_S390_CMMA_PEEK: u32 = 1;
295 pub const KVM_EXIT_HYPERV_SYNIC: u32 = 1;
296 pub const KVM_EXIT_HYPERV_HCALL: u32 = 2;
297 pub const KVM_EXIT_HYPERV_SYNDBG: u32 = 3;
298 pub const KVM_EXIT_XEN_HCALL: u32 = 1;
299 pub const KVM_S390_GET_SKEYS_NONE: u32 = 1;
300 pub const KVM_S390_SKEYS_MAX: u32 = 1048576;
301 pub const KVM_EXIT_UNKNOWN: u32 = 0;
302 pub const KVM_EXIT_EXCEPTION: u32 = 1;
303 pub const KVM_EXIT_IO: u32 = 2;
304 pub const KVM_EXIT_HYPERCALL: u32 = 3;
305 pub const KVM_EXIT_DEBUG: u32 = 4;
306 pub const KVM_EXIT_HLT: u32 = 5;
307 pub const KVM_EXIT_MMIO: u32 = 6;
308 pub const KVM_EXIT_IRQ_WINDOW_OPEN: u32 = 7;
309 pub const KVM_EXIT_SHUTDOWN: u32 = 8;
310 pub const KVM_EXIT_FAIL_ENTRY: u32 = 9;
311 pub const KVM_EXIT_INTR: u32 = 10;
312 pub const KVM_EXIT_SET_TPR: u32 = 11;
313 pub const KVM_EXIT_TPR_ACCESS: u32 = 12;
314 pub const KVM_EXIT_S390_SIEIC: u32 = 13;
315 pub const KVM_EXIT_S390_RESET: u32 = 14;
316 pub const KVM_EXIT_DCR: u32 = 15;
317 pub const KVM_EXIT_NMI: u32 = 16;
318 pub const KVM_EXIT_INTERNAL_ERROR: u32 = 17;
319 pub const KVM_EXIT_OSI: u32 = 18;
320 pub const KVM_EXIT_PAPR_HCALL: u32 = 19;
321 pub const KVM_EXIT_S390_UCONTROL: u32 = 20;
322 pub const KVM_EXIT_WATCHDOG: u32 = 21;
323 pub const KVM_EXIT_S390_TSCH: u32 = 22;
324 pub const KVM_EXIT_EPR: u32 = 23;
325 pub const KVM_EXIT_SYSTEM_EVENT: u32 = 24;
326 pub const KVM_EXIT_S390_STSI: u32 = 25;
327 pub const KVM_EXIT_IOAPIC_EOI: u32 = 26;
328 pub const KVM_EXIT_HYPERV: u32 = 27;
329 pub const KVM_EXIT_ARM_NISV: u32 = 28;
330 pub const KVM_EXIT_X86_RDMSR: u32 = 29;
331 pub const KVM_EXIT_X86_WRMSR: u32 = 30;
332 pub const KVM_EXIT_DIRTY_RING_FULL: u32 = 31;
333 pub const KVM_EXIT_AP_RESET_HOLD: u32 = 32;
334 pub const KVM_EXIT_X86_BUS_LOCK: u32 = 33;
335 pub const KVM_EXIT_XEN: u32 = 34;
336 pub const KVM_EXIT_RISCV_SBI: u32 = 35;
337 pub const KVM_EXIT_RISCV_CSR: u32 = 36;
338 pub const KVM_EXIT_NOTIFY: u32 = 37;
339 pub const KVM_INTERNAL_ERROR_EMULATION: u32 = 1;
340 pub const KVM_INTERNAL_ERROR_SIMUL_EX: u32 = 2;
341 pub const KVM_INTERNAL_ERROR_DELIVERY_EV: u32 = 3;
342 pub const KVM_INTERNAL_ERROR_UNEXPECTED_EXIT_REASON: u32 = 4;
343 pub const KVM_INTERNAL_ERROR_EMULATION_FLAG_INSTRUCTION_BYTES: u32 = 1;
344 pub const KVM_EXIT_IO_IN: u32 = 0;
345 pub const KVM_EXIT_IO_OUT: u32 = 1;
346 pub const KVM_S390_RESET_POR: u32 = 1;
347 pub const KVM_S390_RESET_CLEAR: u32 = 2;
348 pub const KVM_S390_RESET_SUBSYSTEM: u32 = 4;
349 pub const KVM_S390_RESET_CPU_INIT: u32 = 8;
350 pub const KVM_S390_RESET_IPL: u32 = 16;
351 pub const KVM_SYSTEM_EVENT_SHUTDOWN: u32 = 1;
352 pub const KVM_SYSTEM_EVENT_RESET: u32 = 2;
353 pub const KVM_SYSTEM_EVENT_CRASH: u32 = 3;
354 pub const KVM_SYSTEM_EVENT_WAKEUP: u32 = 4;
355 pub const KVM_SYSTEM_EVENT_SUSPEND: u32 = 5;
356 pub const KVM_SYSTEM_EVENT_SEV_TERM: u32 = 6;
357 pub const KVM_MSR_EXIT_REASON_INVAL: u32 = 1;
358 pub const KVM_MSR_EXIT_REASON_UNKNOWN: u32 = 2;
359 pub const KVM_MSR_EXIT_REASON_FILTER: u32 = 4;
360 pub const KVM_NOTIFY_CONTEXT_INVALID: u32 = 1;
361 pub const SYNC_REGS_SIZE_BYTES: u32 = 2048;
362 pub const KVM_S390_MEMOP_LOGICAL_READ: u32 = 0;
363 pub const KVM_S390_MEMOP_LOGICAL_WRITE: u32 = 1;
364 pub const KVM_S390_MEMOP_SIDA_READ: u32 = 2;
365 pub const KVM_S390_MEMOP_SIDA_WRITE: u32 = 3;
366 pub const KVM_S390_MEMOP_ABSOLUTE_READ: u32 = 4;
367 pub const KVM_S390_MEMOP_ABSOLUTE_WRITE: u32 = 5;
368 pub const KVM_S390_MEMOP_F_CHECK_ONLY: u32 = 1;
369 pub const KVM_S390_MEMOP_F_INJECT_EXCEPTION: u32 = 2;
370 pub const KVM_S390_MEMOP_F_SKEY_PROTECTION: u32 = 4;
371 pub const KVM_MP_STATE_RUNNABLE: u32 = 0;
372 pub const KVM_MP_STATE_UNINITIALIZED: u32 = 1;
373 pub const KVM_MP_STATE_INIT_RECEIVED: u32 = 2;
374 pub const KVM_MP_STATE_HALTED: u32 = 3;
375 pub const KVM_MP_STATE_SIPI_RECEIVED: u32 = 4;
376 pub const KVM_MP_STATE_STOPPED: u32 = 5;
377 pub const KVM_MP_STATE_CHECK_STOP: u32 = 6;
378 pub const KVM_MP_STATE_OPERATING: u32 = 7;
379 pub const KVM_MP_STATE_LOAD: u32 = 8;
380 pub const KVM_MP_STATE_AP_RESET_HOLD: u32 = 9;
381 pub const KVM_MP_STATE_SUSPENDED: u32 = 10;
382 pub const KVM_S390_SIGP_STOP: u32 = 4294836224;
383 pub const KVM_S390_PROGRAM_INT: u32 = 4294836225;
384 pub const KVM_S390_SIGP_SET_PREFIX: u32 = 4294836226;
385 pub const KVM_S390_RESTART: u32 = 4294836227;
386 pub const KVM_S390_INT_PFAULT_INIT: u32 = 4294836228;
387 pub const KVM_S390_INT_PFAULT_DONE: u32 = 4294836229;
388 pub const KVM_S390_MCHK: u32 = 4294840320;
389 pub const KVM_S390_INT_CLOCK_COMP: u32 = 4294905860;
390 pub const KVM_S390_INT_CPU_TIMER: u32 = 4294905861;
391 pub const KVM_S390_INT_VIRTIO: u32 = 4294911491;
392 pub const KVM_S390_INT_SERVICE: u32 = 4294910977;
393 pub const KVM_S390_INT_EMERGENCY: u32 = 4294906369;
394 pub const KVM_S390_INT_EXTERNAL_CALL: u32 = 4294906370;
395 pub const KVM_S390_INT_IO_MIN: u32 = 0;
396 pub const KVM_S390_INT_IO_MAX: u32 = 4294836223;
397 pub const KVM_S390_INT_IO_AI_MASK: u32 = 67108864;
398 pub const KVM_S390_PGM_FLAGS_ILC_VALID: u32 = 1;
399 pub const KVM_S390_PGM_FLAGS_ILC_0: u32 = 2;
400 pub const KVM_S390_PGM_FLAGS_ILC_1: u32 = 4;
401 pub const KVM_S390_PGM_FLAGS_ILC_MASK: u32 = 6;
402 pub const KVM_S390_PGM_FLAGS_NO_REWIND: u32 = 8;
403 pub const KVM_S390_STOP_FLAG_STORE_STATUS: u32 = 1;
404 pub const KVM_GUESTDBG_ENABLE: u32 = 1;
405 pub const KVM_GUESTDBG_SINGLESTEP: u32 = 2;
406 pub const KVM_X86_DISABLE_EXITS_MWAIT: u32 = 1;
407 pub const KVM_X86_DISABLE_EXITS_HLT: u32 = 2;
408 pub const KVM_X86_DISABLE_EXITS_PAUSE: u32 = 4;
409 pub const KVM_X86_DISABLE_EXITS_CSTATE: u32 = 8;
410 pub const KVM_X86_DISABLE_VALID_EXITS: u32 = 15;
411 pub const KVM_PPC_PVINFO_FLAGS_EV_IDLE: u32 = 1;
412 pub const KVM_PPC_PAGE_SIZES_MAX_SZ: u32 = 8;
413 pub const KVM_PPC_PAGE_SIZES_REAL: u32 = 1;
414 pub const KVM_PPC_1T_SEGMENTS: u32 = 2;
415 pub const KVM_PPC_NO_HASH: u32 = 4;
416 pub const KVMIO: u32 = 174;
417 pub const KVM_VM_S390_UCONTROL: u32 = 1;
418 pub const KVM_VM_PPC_HV: u32 = 1;
419 pub const KVM_VM_PPC_PR: u32 = 2;
420 pub const KVM_VM_MIPS_AUTO: u32 = 0;
421 pub const KVM_VM_MIPS_VZ: u32 = 1;
422 pub const KVM_VM_MIPS_TE: u32 = 2;
423 pub const KVM_S390_SIE_PAGE_OFFSET: u32 = 1;
424 pub const KVM_VM_TYPE_ARM_IPA_SIZE_MASK: u32 = 255;
425 pub const KVM_CAP_IRQCHIP: u32 = 0;
426 pub const KVM_CAP_HLT: u32 = 1;
427 pub const KVM_CAP_MMU_SHADOW_CACHE_CONTROL: u32 = 2;
428 pub const KVM_CAP_USER_MEMORY: u32 = 3;
429 pub const KVM_CAP_SET_TSS_ADDR: u32 = 4;
430 pub const KVM_CAP_VAPIC: u32 = 6;
431 pub const KVM_CAP_EXT_CPUID: u32 = 7;
432 pub const KVM_CAP_CLOCKSOURCE: u32 = 8;
433 pub const KVM_CAP_NR_VCPUS: u32 = 9;
434 pub const KVM_CAP_NR_MEMSLOTS: u32 = 10;
435 pub const KVM_CAP_PIT: u32 = 11;
436 pub const KVM_CAP_NOP_IO_DELAY: u32 = 12;
437 pub const KVM_CAP_PV_MMU: u32 = 13;
438 pub const KVM_CAP_MP_STATE: u32 = 14;
439 pub const KVM_CAP_COALESCED_MMIO: u32 = 15;
440 pub const KVM_CAP_SYNC_MMU: u32 = 16;
441 pub const KVM_CAP_IOMMU: u32 = 18;
442 pub const KVM_CAP_DESTROY_MEMORY_REGION_WORKS: u32 = 21;
443 pub const KVM_CAP_USER_NMI: u32 = 22;
444 pub const KVM_CAP_SET_GUEST_DEBUG: u32 = 23;
445 pub const KVM_CAP_REINJECT_CONTROL: u32 = 24;
446 pub const KVM_CAP_IRQ_ROUTING: u32 = 25;
447 pub const KVM_CAP_IRQ_INJECT_STATUS: u32 = 26;
448 pub const KVM_CAP_ASSIGN_DEV_IRQ: u32 = 29;
449 pub const KVM_CAP_JOIN_MEMORY_REGIONS_WORKS: u32 = 30;
450 pub const KVM_CAP_MCE: u32 = 31;
451 pub const KVM_CAP_IRQFD: u32 = 32;
452 pub const KVM_CAP_PIT2: u32 = 33;
453 pub const KVM_CAP_SET_BOOT_CPU_ID: u32 = 34;
454 pub const KVM_CAP_PIT_STATE2: u32 = 35;
455 pub const KVM_CAP_IOEVENTFD: u32 = 36;
456 pub const KVM_CAP_SET_IDENTITY_MAP_ADDR: u32 = 37;
457 pub const KVM_CAP_XEN_HVM: u32 = 38;
458 pub const KVM_CAP_ADJUST_CLOCK: u32 = 39;
459 pub const KVM_CAP_INTERNAL_ERROR_DATA: u32 = 40;
460 pub const KVM_CAP_VCPU_EVENTS: u32 = 41;
461 pub const KVM_CAP_S390_PSW: u32 = 42;
462 pub const KVM_CAP_PPC_SEGSTATE: u32 = 43;
463 pub const KVM_CAP_HYPERV: u32 = 44;
464 pub const KVM_CAP_HYPERV_VAPIC: u32 = 45;
465 pub const KVM_CAP_HYPERV_SPIN: u32 = 46;
466 pub const KVM_CAP_PCI_SEGMENT: u32 = 47;
467 pub const KVM_CAP_PPC_PAIRED_SINGLES: u32 = 48;
468 pub const KVM_CAP_INTR_SHADOW: u32 = 49;
469 pub const KVM_CAP_DEBUGREGS: u32 = 50;
470 pub const KVM_CAP_X86_ROBUST_SINGLESTEP: u32 = 51;
471 pub const KVM_CAP_PPC_OSI: u32 = 52;
472 pub const KVM_CAP_PPC_UNSET_IRQ: u32 = 53;
473 pub const KVM_CAP_ENABLE_CAP: u32 = 54;
474 pub const KVM_CAP_XSAVE: u32 = 55;
475 pub const KVM_CAP_XCRS: u32 = 56;
476 pub const KVM_CAP_PPC_GET_PVINFO: u32 = 57;
477 pub const KVM_CAP_PPC_IRQ_LEVEL: u32 = 58;
478 pub const KVM_CAP_ASYNC_PF: u32 = 59;
479 pub const KVM_CAP_TSC_CONTROL: u32 = 60;
480 pub const KVM_CAP_GET_TSC_KHZ: u32 = 61;
481 pub const KVM_CAP_PPC_BOOKE_SREGS: u32 = 62;
482 pub const KVM_CAP_SPAPR_TCE: u32 = 63;
483 pub const KVM_CAP_PPC_SMT: u32 = 64;
484 pub const KVM_CAP_PPC_RMA: u32 = 65;
485 pub const KVM_CAP_MAX_VCPUS: u32 = 66;
486 pub const KVM_CAP_PPC_HIOR: u32 = 67;
487 pub const KVM_CAP_PPC_PAPR: u32 = 68;
488 pub const KVM_CAP_SW_TLB: u32 = 69;
489 pub const KVM_CAP_ONE_REG: u32 = 70;
490 pub const KVM_CAP_S390_GMAP: u32 = 71;
491 pub const KVM_CAP_TSC_DEADLINE_TIMER: u32 = 72;
492 pub const KVM_CAP_S390_UCONTROL: u32 = 73;
493 pub const KVM_CAP_SYNC_REGS: u32 = 74;
494 pub const KVM_CAP_PCI_2_3: u32 = 75;
495 pub const KVM_CAP_KVMCLOCK_CTRL: u32 = 76;
496 pub const KVM_CAP_SIGNAL_MSI: u32 = 77;
497 pub const KVM_CAP_PPC_GET_SMMU_INFO: u32 = 78;
498 pub const KVM_CAP_S390_COW: u32 = 79;
499 pub const KVM_CAP_PPC_ALLOC_HTAB: u32 = 80;
500 pub const KVM_CAP_READONLY_MEM: u32 = 81;
501 pub const KVM_CAP_IRQFD_RESAMPLE: u32 = 82;
502 pub const KVM_CAP_PPC_BOOKE_WATCHDOG: u32 = 83;
503 pub const KVM_CAP_PPC_HTAB_FD: u32 = 84;
504 pub const KVM_CAP_S390_CSS_SUPPORT: u32 = 85;
505 pub const KVM_CAP_PPC_EPR: u32 = 86;
506 pub const KVM_CAP_ARM_PSCI: u32 = 87;
507 pub const KVM_CAP_ARM_SET_DEVICE_ADDR: u32 = 88;
508 pub const KVM_CAP_DEVICE_CTRL: u32 = 89;
509 pub const KVM_CAP_IRQ_MPIC: u32 = 90;
510 pub const KVM_CAP_PPC_RTAS: u32 = 91;
511 pub const KVM_CAP_IRQ_XICS: u32 = 92;
512 pub const KVM_CAP_ARM_EL1_32BIT: u32 = 93;
513 pub const KVM_CAP_SPAPR_MULTITCE: u32 = 94;
514 pub const KVM_CAP_EXT_EMUL_CPUID: u32 = 95;
515 pub const KVM_CAP_HYPERV_TIME: u32 = 96;
516 pub const KVM_CAP_IOAPIC_POLARITY_IGNORED: u32 = 97;
517 pub const KVM_CAP_ENABLE_CAP_VM: u32 = 98;
518 pub const KVM_CAP_S390_IRQCHIP: u32 = 99;
519 pub const KVM_CAP_IOEVENTFD_NO_LENGTH: u32 = 100;
520 pub const KVM_CAP_VM_ATTRIBUTES: u32 = 101;
521 pub const KVM_CAP_ARM_PSCI_0_2: u32 = 102;
522 pub const KVM_CAP_PPC_FIXUP_HCALL: u32 = 103;
523 pub const KVM_CAP_PPC_ENABLE_HCALL: u32 = 104;
524 pub const KVM_CAP_CHECK_EXTENSION_VM: u32 = 105;
525 pub const KVM_CAP_S390_USER_SIGP: u32 = 106;
526 pub const KVM_CAP_S390_VECTOR_REGISTERS: u32 = 107;
527 pub const KVM_CAP_S390_MEM_OP: u32 = 108;
528 pub const KVM_CAP_S390_USER_STSI: u32 = 109;
529 pub const KVM_CAP_S390_SKEYS: u32 = 110;
530 pub const KVM_CAP_MIPS_FPU: u32 = 111;
531 pub const KVM_CAP_MIPS_MSA: u32 = 112;
532 pub const KVM_CAP_S390_INJECT_IRQ: u32 = 113;
533 pub const KVM_CAP_S390_IRQ_STATE: u32 = 114;
534 pub const KVM_CAP_PPC_HWRNG: u32 = 115;
535 pub const KVM_CAP_DISABLE_QUIRKS: u32 = 116;
536 pub const KVM_CAP_X86_SMM: u32 = 117;
537 pub const KVM_CAP_MULTI_ADDRESS_SPACE: u32 = 118;
538 pub const KVM_CAP_GUEST_DEBUG_HW_BPS: u32 = 119;
539 pub const KVM_CAP_GUEST_DEBUG_HW_WPS: u32 = 120;
540 pub const KVM_CAP_SPLIT_IRQCHIP: u32 = 121;
541 pub const KVM_CAP_IOEVENTFD_ANY_LENGTH: u32 = 122;
542 pub const KVM_CAP_HYPERV_SYNIC: u32 = 123;
543 pub const KVM_CAP_S390_RI: u32 = 124;
544 pub const KVM_CAP_SPAPR_TCE_64: u32 = 125;
545 pub const KVM_CAP_ARM_PMU_V3: u32 = 126;
546 pub const KVM_CAP_VCPU_ATTRIBUTES: u32 = 127;
547 pub const KVM_CAP_MAX_VCPU_ID: u32 = 128;
548 pub const KVM_CAP_X2APIC_API: u32 = 129;
549 pub const KVM_CAP_S390_USER_INSTR0: u32 = 130;
550 pub const KVM_CAP_MSI_DEVID: u32 = 131;
551 pub const KVM_CAP_PPC_HTM: u32 = 132;
552 pub const KVM_CAP_SPAPR_RESIZE_HPT: u32 = 133;
553 pub const KVM_CAP_PPC_MMU_RADIX: u32 = 134;
554 pub const KVM_CAP_PPC_MMU_HASH_V3: u32 = 135;
555 pub const KVM_CAP_IMMEDIATE_EXIT: u32 = 136;
556 pub const KVM_CAP_MIPS_VZ: u32 = 137;
557 pub const KVM_CAP_MIPS_TE: u32 = 138;
558 pub const KVM_CAP_MIPS_64BIT: u32 = 139;
559 pub const KVM_CAP_S390_GS: u32 = 140;
560 pub const KVM_CAP_S390_AIS: u32 = 141;
561 pub const KVM_CAP_SPAPR_TCE_VFIO: u32 = 142;
562 pub const KVM_CAP_X86_DISABLE_EXITS: u32 = 143;
563 pub const KVM_CAP_ARM_USER_IRQ: u32 = 144;
564 pub const KVM_CAP_S390_CMMA_MIGRATION: u32 = 145;
565 pub const KVM_CAP_PPC_FWNMI: u32 = 146;
566 pub const KVM_CAP_PPC_SMT_POSSIBLE: u32 = 147;
567 pub const KVM_CAP_HYPERV_SYNIC2: u32 = 148;
568 pub const KVM_CAP_HYPERV_VP_INDEX: u32 = 149;
569 pub const KVM_CAP_S390_AIS_MIGRATION: u32 = 150;
570 pub const KVM_CAP_PPC_GET_CPU_CHAR: u32 = 151;
571 pub const KVM_CAP_S390_BPB: u32 = 152;
572 pub const KVM_CAP_GET_MSR_FEATURES: u32 = 153;
573 pub const KVM_CAP_HYPERV_EVENTFD: u32 = 154;
574 pub const KVM_CAP_HYPERV_TLBFLUSH: u32 = 155;
575 pub const KVM_CAP_S390_HPAGE_1M: u32 = 156;
576 pub const KVM_CAP_NESTED_STATE: u32 = 157;
577 pub const KVM_CAP_ARM_INJECT_SERROR_ESR: u32 = 158;
578 pub const KVM_CAP_MSR_PLATFORM_INFO: u32 = 159;
579 pub const KVM_CAP_PPC_NESTED_HV: u32 = 160;
580 pub const KVM_CAP_HYPERV_SEND_IPI: u32 = 161;
581 pub const KVM_CAP_COALESCED_PIO: u32 = 162;
582 pub const KVM_CAP_HYPERV_ENLIGHTENED_VMCS: u32 = 163;
583 pub const KVM_CAP_EXCEPTION_PAYLOAD: u32 = 164;
584 pub const KVM_CAP_ARM_VM_IPA_SIZE: u32 = 165;
585 pub const KVM_CAP_MANUAL_DIRTY_LOG_PROTECT: u32 = 166;
586 pub const KVM_CAP_HYPERV_CPUID: u32 = 167;
587 pub const KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2: u32 = 168;
588 pub const KVM_CAP_PPC_IRQ_XIVE: u32 = 169;
589 pub const KVM_CAP_ARM_SVE: u32 = 170;
590 pub const KVM_CAP_ARM_PTRAUTH_ADDRESS: u32 = 171;
591 pub const KVM_CAP_ARM_PTRAUTH_GENERIC: u32 = 172;
592 pub const KVM_CAP_PMU_EVENT_FILTER: u32 = 173;
593 pub const KVM_CAP_ARM_IRQ_LINE_LAYOUT_2: u32 = 174;
594 pub const KVM_CAP_HYPERV_DIRECT_TLBFLUSH: u32 = 175;
595 pub const KVM_CAP_PPC_GUEST_DEBUG_SSTEP: u32 = 176;
596 pub const KVM_CAP_ARM_NISV_TO_USER: u32 = 177;
597 pub const KVM_CAP_ARM_INJECT_EXT_DABT: u32 = 178;
598 pub const KVM_CAP_S390_VCPU_RESETS: u32 = 179;
599 pub const KVM_CAP_S390_PROTECTED: u32 = 180;
600 pub const KVM_CAP_PPC_SECURE_GUEST: u32 = 181;
601 pub const KVM_CAP_HALT_POLL: u32 = 182;
602 pub const KVM_CAP_ASYNC_PF_INT: u32 = 183;
603 pub const KVM_CAP_LAST_CPU: u32 = 184;
604 pub const KVM_CAP_SMALLER_MAXPHYADDR: u32 = 185;
605 pub const KVM_CAP_S390_DIAG318: u32 = 186;
606 pub const KVM_CAP_STEAL_TIME: u32 = 187;
607 pub const KVM_CAP_X86_USER_SPACE_MSR: u32 = 188;
608 pub const KVM_CAP_X86_MSR_FILTER: u32 = 189;
609 pub const KVM_CAP_ENFORCE_PV_FEATURE_CPUID: u32 = 190;
610 pub const KVM_CAP_SYS_HYPERV_CPUID: u32 = 191;
611 pub const KVM_CAP_DIRTY_LOG_RING: u32 = 192;
612 pub const KVM_CAP_X86_BUS_LOCK_EXIT: u32 = 193;
613 pub const KVM_CAP_PPC_DAWR1: u32 = 194;
614 pub const KVM_CAP_SET_GUEST_DEBUG2: u32 = 195;
615 pub const KVM_CAP_SGX_ATTRIBUTE: u32 = 196;
616 pub const KVM_CAP_VM_COPY_ENC_CONTEXT_FROM: u32 = 197;
617 pub const KVM_CAP_PTP_KVM: u32 = 198;
618 pub const KVM_CAP_HYPERV_ENFORCE_CPUID: u32 = 199;
619 pub const KVM_CAP_SREGS2: u32 = 200;
620 pub const KVM_CAP_EXIT_HYPERCALL: u32 = 201;
621 pub const KVM_CAP_PPC_RPT_INVALIDATE: u32 = 202;
622 pub const KVM_CAP_BINARY_STATS_FD: u32 = 203;
623 pub const KVM_CAP_EXIT_ON_EMULATION_FAILURE: u32 = 204;
624 pub const KVM_CAP_ARM_MTE: u32 = 205;
625 pub const KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM: u32 = 206;
626 pub const KVM_CAP_VM_GPA_BITS: u32 = 207;
627 pub const KVM_CAP_XSAVE2: u32 = 208;
628 pub const KVM_CAP_SYS_ATTRIBUTES: u32 = 209;
629 pub const KVM_CAP_PPC_AIL_MODE_3: u32 = 210;
630 pub const KVM_CAP_S390_MEM_OP_EXTENSION: u32 = 211;
631 pub const KVM_CAP_PMU_CAPABILITY: u32 = 212;
632 pub const KVM_CAP_DISABLE_QUIRKS2: u32 = 213;
633 pub const KVM_CAP_VM_TSC_CONTROL: u32 = 214;
634 pub const KVM_CAP_SYSTEM_EVENT_DATA: u32 = 215;
635 pub const KVM_CAP_ARM_SYSTEM_SUSPEND: u32 = 216;
636 pub const KVM_CAP_S390_PROTECTED_DUMP: u32 = 217;
637 pub const KVM_CAP_X86_TRIPLE_FAULT_EVENT: u32 = 218;
638 pub const KVM_CAP_X86_NOTIFY_VMEXIT: u32 = 219;
639 pub const KVM_CAP_VM_DISABLE_NX_HUGE_PAGES: u32 = 220;
640 pub const KVM_CAP_S390_ZPCI_OP: u32 = 221;
641 pub const KVM_CAP_S390_CPU_TOPOLOGY: u32 = 222;
642 pub const KVM_CAP_DIRTY_LOG_RING_ACQ_REL: u32 = 223;
643 pub const KVM_CAP_UCLAMP_SYNC: u32 = 1024;
644 pub const KVM_IRQ_ROUTING_IRQCHIP: u32 = 1;
645 pub const KVM_IRQ_ROUTING_MSI: u32 = 2;
646 pub const KVM_IRQ_ROUTING_S390_ADAPTER: u32 = 3;
647 pub const KVM_IRQ_ROUTING_HV_SINT: u32 = 4;
648 pub const KVM_IRQ_ROUTING_XEN_EVTCHN: u32 = 5;
649 pub const KVM_XEN_HVM_CONFIG_HYPERCALL_MSR: u32 = 1;
650 pub const KVM_XEN_HVM_CONFIG_INTERCEPT_HCALL: u32 = 2;
651 pub const KVM_XEN_HVM_CONFIG_SHARED_INFO: u32 = 4;
652 pub const KVM_XEN_HVM_CONFIG_RUNSTATE: u32 = 8;
653 pub const KVM_XEN_HVM_CONFIG_EVTCHN_2LEVEL: u32 = 16;
654 pub const KVM_XEN_HVM_CONFIG_EVTCHN_SEND: u32 = 32;
655 pub const KVM_IRQFD_FLAG_DEASSIGN: u32 = 1;
656 pub const KVM_IRQFD_FLAG_RESAMPLE: u32 = 2;
657 pub const KVM_CLOCK_TSC_STABLE: u32 = 2;
658 pub const KVM_CLOCK_REALTIME: u32 = 4;
659 pub const KVM_CLOCK_HOST_TSC: u32 = 8;
660 pub const KVM_MMU_FSL_BOOKE_NOHV: u32 = 0;
661 pub const KVM_MMU_FSL_BOOKE_HV: u32 = 1;
662 pub const KVM_REG_ARCH_MASK: i64 = -72057594037927936;
663 pub const KVM_REG_GENERIC: u32 = 0;
664 pub const KVM_REG_PPC: u64 = 1152921504606846976;
665 pub const KVM_REG_X86: u64 = 2305843009213693952;
666 pub const KVM_REG_IA64: u64 = 3458764513820540928;
667 pub const KVM_REG_ARM: u64 = 4611686018427387904;
668 pub const KVM_REG_S390: u64 = 5764607523034234880;
669 pub const KVM_REG_ARM64: u64 = 6917529027641081856;
670 pub const KVM_REG_MIPS: u64 = 8070450532247928832;
671 pub const KVM_REG_RISCV: i64 = -9223372036854775808;
672 pub const KVM_REG_SIZE_SHIFT: u32 = 52;
673 pub const KVM_REG_SIZE_MASK: u64 = 67553994410557440;
674 pub const KVM_REG_SIZE_U8: u32 = 0;
675 pub const KVM_REG_SIZE_U16: u64 = 4503599627370496;
676 pub const KVM_REG_SIZE_U32: u64 = 9007199254740992;
677 pub const KVM_REG_SIZE_U64: u64 = 13510798882111488;
678 pub const KVM_REG_SIZE_U128: u64 = 18014398509481984;
679 pub const KVM_REG_SIZE_U256: u64 = 22517998136852480;
680 pub const KVM_REG_SIZE_U512: u64 = 27021597764222976;
681 pub const KVM_REG_SIZE_U1024: u64 = 31525197391593472;
682 pub const KVM_REG_SIZE_U2048: u64 = 36028797018963968;
683 pub const KVM_MSI_VALID_DEVID: u32 = 1;
684 pub const KVM_CREATE_DEVICE_TEST: u32 = 1;
685 pub const KVM_DEV_VFIO_GROUP: u32 = 1;
686 pub const KVM_DEV_VFIO_GROUP_ADD: u32 = 1;
687 pub const KVM_DEV_VFIO_GROUP_DEL: u32 = 2;
688 pub const KVM_DEV_VFIO_GROUP_SET_SPAPR_TCE: u32 = 3;
689 pub const KVM_S390_STORE_STATUS_NOADDR: i32 = -1;
690 pub const KVM_S390_STORE_STATUS_PREFIXED: i32 = -2;
691 pub const KVM_XEN_EVTCHN_DEASSIGN: u32 = 1;
692 pub const KVM_XEN_EVTCHN_UPDATE: u32 = 2;
693 pub const KVM_XEN_EVTCHN_RESET: u32 = 4;
694 pub const KVM_XEN_ATTR_TYPE_LONG_MODE: u32 = 0;
695 pub const KVM_XEN_ATTR_TYPE_SHARED_INFO: u32 = 1;
696 pub const KVM_XEN_ATTR_TYPE_UPCALL_VECTOR: u32 = 2;
697 pub const KVM_XEN_ATTR_TYPE_EVTCHN: u32 = 3;
698 pub const KVM_XEN_ATTR_TYPE_XEN_VERSION: u32 = 4;
699 pub const KVM_XEN_VCPU_ATTR_TYPE_VCPU_INFO: u32 = 0;
700 pub const KVM_XEN_VCPU_ATTR_TYPE_VCPU_TIME_INFO: u32 = 1;
701 pub const KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_ADDR: u32 = 2;
702 pub const KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_CURRENT: u32 = 3;
703 pub const KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_DATA: u32 = 4;
704 pub const KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_ADJUST: u32 = 5;
705 pub const KVM_XEN_VCPU_ATTR_TYPE_VCPU_ID: u32 = 6;
706 pub const KVM_XEN_VCPU_ATTR_TYPE_TIMER: u32 = 7;
707 pub const KVM_XEN_VCPU_ATTR_TYPE_UPCALL_VECTOR: u32 = 8;
708 pub const KVM_DEV_ASSIGN_ENABLE_IOMMU: u32 = 1;
709 pub const KVM_DEV_ASSIGN_PCI_2_3: u32 = 2;
710 pub const KVM_DEV_ASSIGN_MASK_INTX: u32 = 4;
711 pub const KVM_DEV_IRQ_HOST_INTX: u32 = 1;
712 pub const KVM_DEV_IRQ_HOST_MSI: u32 = 2;
713 pub const KVM_DEV_IRQ_HOST_MSIX: u32 = 4;
714 pub const KVM_DEV_IRQ_GUEST_INTX: u32 = 256;
715 pub const KVM_DEV_IRQ_GUEST_MSI: u32 = 512;
716 pub const KVM_DEV_IRQ_GUEST_MSIX: u32 = 1024;
717 pub const KVM_DEV_IRQ_HOST_MASK: u32 = 255;
718 pub const KVM_DEV_IRQ_GUEST_MASK: u32 = 65280;
719 pub const KVM_MAX_MSIX_PER_DEV: u32 = 256;
720 pub const KVM_X2APIC_API_USE_32BIT_IDS: u32 = 1;
721 pub const KVM_X2APIC_API_DISABLE_BROADCAST_QUIRK: u32 = 2;
722 pub const KVM_ARM_DEV_EL1_VTIMER: u32 = 1;
723 pub const KVM_ARM_DEV_EL1_PTIMER: u32 = 2;
724 pub const KVM_ARM_DEV_PMU: u32 = 4;
725 pub const KVM_HYPERV_CONN_ID_MASK: u32 = 16777215;
726 pub const KVM_HYPERV_EVENTFD_DEASSIGN: u32 = 1;
727 pub const KVM_DIRTY_LOG_MANUAL_PROTECT_ENABLE: u32 = 1;
728 pub const KVM_DIRTY_LOG_INITIALLY_SET: u32 = 2;
729 pub const KVM_DIRTY_GFN_F_MASK: u32 = 3;
730 pub const KVM_BUS_LOCK_DETECTION_OFF: u32 = 1;
731 pub const KVM_BUS_LOCK_DETECTION_EXIT: u32 = 2;
732 pub const KVM_PMU_CAP_DISABLE: u32 = 1;
733 pub const KVM_STATS_TYPE_SHIFT: u32 = 0;
734 pub const KVM_STATS_TYPE_MASK: u32 = 15;
735 pub const KVM_STATS_TYPE_CUMULATIVE: u32 = 0;
736 pub const KVM_STATS_TYPE_INSTANT: u32 = 1;
737 pub const KVM_STATS_TYPE_PEAK: u32 = 2;
738 pub const KVM_STATS_TYPE_LINEAR_HIST: u32 = 3;
739 pub const KVM_STATS_TYPE_LOG_HIST: u32 = 4;
740 pub const KVM_STATS_TYPE_MAX: u32 = 4;
741 pub const KVM_STATS_UNIT_SHIFT: u32 = 4;
742 pub const KVM_STATS_UNIT_MASK: u32 = 240;
743 pub const KVM_STATS_UNIT_NONE: u32 = 0;
744 pub const KVM_STATS_UNIT_BYTES: u32 = 16;
745 pub const KVM_STATS_UNIT_SECONDS: u32 = 32;
746 pub const KVM_STATS_UNIT_CYCLES: u32 = 48;
747 pub const KVM_STATS_UNIT_BOOLEAN: u32 = 64;
748 pub const KVM_STATS_UNIT_MAX: u32 = 64;
749 pub const KVM_STATS_BASE_SHIFT: u32 = 8;
750 pub const KVM_STATS_BASE_MASK: u32 = 3840;
751 pub const KVM_STATS_BASE_POW10: u32 = 0;
752 pub const KVM_STATS_BASE_POW2: u32 = 256;
753 pub const KVM_STATS_BASE_MAX: u32 = 256;
754 pub const KVM_X86_NOTIFY_VMEXIT_ENABLED: u32 = 1;
755 pub const KVM_X86_NOTIFY_VMEXIT_USER: u32 = 2;
756 pub const KVM_S390_ZPCIOP_REG_AEN: u32 = 0;
757 pub const KVM_S390_ZPCIOP_DEREG_AEN: u32 = 1;
758 pub const KVM_S390_ZPCIOP_REGAEN_HOST: u32 = 1;
759 pub type __le16 = u16;
760 pub type __be16 = u16;
761 pub type __le32 = u32;
762 pub type __be32 = u32;
763 pub type __le64 = u64;
764 pub type __be64 = u64;
765 pub type __sum16 = u16;
766 pub type __wsum = u32;
767 pub type __poll_t = ::std::os::raw::c_uint;
768 #[repr(C)]
769 #[derive(Debug, Default, Copy, Clone)]
770 pub struct kvm_memory_alias {
771     pub slot: u32,
772     pub flags: u32,
773     pub guest_phys_addr: u64,
774     pub memory_size: u64,
775     pub target_phys_addr: u64,
776 }
777 #[repr(C)]
778 #[derive(Debug, Default, Copy, Clone)]
779 pub struct kvm_pic_state {
780     pub last_irr: u8,
781     pub irr: u8,
782     pub imr: u8,
783     pub isr: u8,
784     pub priority_add: u8,
785     pub irq_base: u8,
786     pub read_reg_select: u8,
787     pub poll: u8,
788     pub special_mask: u8,
789     pub init_state: u8,
790     pub auto_eoi: u8,
791     pub rotate_on_auto_eoi: u8,
792     pub special_fully_nested_mode: u8,
793     pub init4: u8,
794     pub elcr: u8,
795     pub elcr_mask: u8,
796 }
797 #[repr(C)]
798 #[derive(Copy, Clone)]
799 pub struct kvm_ioapic_state {
800     pub base_address: u64,
801     pub ioregsel: u32,
802     pub id: u32,
803     pub irr: u32,
804     pub pad: u32,
805     pub redirtbl: [kvm_ioapic_state__bindgen_ty_1; 24usize],
806 }
807 #[repr(C)]
808 #[derive(Copy, Clone)]
809 pub union kvm_ioapic_state__bindgen_ty_1 {
810     pub bits: u64,
811     pub fields: kvm_ioapic_state__bindgen_ty_1__bindgen_ty_1,
812 }
813 #[repr(C)]
814 #[derive(Debug, Default, Copy, Clone)]
815 pub struct kvm_ioapic_state__bindgen_ty_1__bindgen_ty_1 {
816     pub vector: u8,
817     pub _bitfield_align_1: [u8; 0],
818     pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
819     pub reserved: [u8; 4usize],
820     pub dest_id: u8,
821 }
822 impl kvm_ioapic_state__bindgen_ty_1__bindgen_ty_1 {
823     #[inline]
delivery_mode(&self) -> u8824     pub fn delivery_mode(&self) -> u8 {
825         unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 3u8) as u8) }
826     }
827     #[inline]
set_delivery_mode(&mut self, val: u8)828     pub fn set_delivery_mode(&mut self, val: u8) {
829         unsafe {
830             let val: u8 = ::std::mem::transmute(val);
831             self._bitfield_1.set(0usize, 3u8, val as u64)
832         }
833     }
834     #[inline]
dest_mode(&self) -> u8835     pub fn dest_mode(&self) -> u8 {
836         unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) }
837     }
838     #[inline]
set_dest_mode(&mut self, val: u8)839     pub fn set_dest_mode(&mut self, val: u8) {
840         unsafe {
841             let val: u8 = ::std::mem::transmute(val);
842             self._bitfield_1.set(3usize, 1u8, val as u64)
843         }
844     }
845     #[inline]
delivery_status(&self) -> u8846     pub fn delivery_status(&self) -> u8 {
847         unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u8) }
848     }
849     #[inline]
set_delivery_status(&mut self, val: u8)850     pub fn set_delivery_status(&mut self, val: u8) {
851         unsafe {
852             let val: u8 = ::std::mem::transmute(val);
853             self._bitfield_1.set(4usize, 1u8, val as u64)
854         }
855     }
856     #[inline]
polarity(&self) -> u8857     pub fn polarity(&self) -> u8 {
858         unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u8) }
859     }
860     #[inline]
set_polarity(&mut self, val: u8)861     pub fn set_polarity(&mut self, val: u8) {
862         unsafe {
863             let val: u8 = ::std::mem::transmute(val);
864             self._bitfield_1.set(5usize, 1u8, val as u64)
865         }
866     }
867     #[inline]
remote_irr(&self) -> u8868     pub fn remote_irr(&self) -> u8 {
869         unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u8) }
870     }
871     #[inline]
set_remote_irr(&mut self, val: u8)872     pub fn set_remote_irr(&mut self, val: u8) {
873         unsafe {
874             let val: u8 = ::std::mem::transmute(val);
875             self._bitfield_1.set(6usize, 1u8, val as u64)
876         }
877     }
878     #[inline]
trig_mode(&self) -> u8879     pub fn trig_mode(&self) -> u8 {
880         unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u8) }
881     }
882     #[inline]
set_trig_mode(&mut self, val: u8)883     pub fn set_trig_mode(&mut self, val: u8) {
884         unsafe {
885             let val: u8 = ::std::mem::transmute(val);
886             self._bitfield_1.set(7usize, 1u8, val as u64)
887         }
888     }
889     #[inline]
mask(&self) -> u8890     pub fn mask(&self) -> u8 {
891         unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u8) }
892     }
893     #[inline]
set_mask(&mut self, val: u8)894     pub fn set_mask(&mut self, val: u8) {
895         unsafe {
896             let val: u8 = ::std::mem::transmute(val);
897             self._bitfield_1.set(8usize, 1u8, val as u64)
898         }
899     }
900     #[inline]
reserve(&self) -> u8901     pub fn reserve(&self) -> u8 {
902         unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 7u8) as u8) }
903     }
904     #[inline]
set_reserve(&mut self, val: u8)905     pub fn set_reserve(&mut self, val: u8) {
906         unsafe {
907             let val: u8 = ::std::mem::transmute(val);
908             self._bitfield_1.set(9usize, 7u8, val as u64)
909         }
910     }
911     #[inline]
new_bitfield_1( delivery_mode: u8, dest_mode: u8, delivery_status: u8, polarity: u8, remote_irr: u8, trig_mode: u8, mask: u8, reserve: u8, ) -> __BindgenBitfieldUnit<[u8; 2usize]>912     pub fn new_bitfield_1(
913         delivery_mode: u8,
914         dest_mode: u8,
915         delivery_status: u8,
916         polarity: u8,
917         remote_irr: u8,
918         trig_mode: u8,
919         mask: u8,
920         reserve: u8,
921     ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
922         let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
923         __bindgen_bitfield_unit.set(0usize, 3u8, {
924             let delivery_mode: u8 = unsafe { ::std::mem::transmute(delivery_mode) };
925             delivery_mode as u64
926         });
927         __bindgen_bitfield_unit.set(3usize, 1u8, {
928             let dest_mode: u8 = unsafe { ::std::mem::transmute(dest_mode) };
929             dest_mode as u64
930         });
931         __bindgen_bitfield_unit.set(4usize, 1u8, {
932             let delivery_status: u8 = unsafe { ::std::mem::transmute(delivery_status) };
933             delivery_status as u64
934         });
935         __bindgen_bitfield_unit.set(5usize, 1u8, {
936             let polarity: u8 = unsafe { ::std::mem::transmute(polarity) };
937             polarity as u64
938         });
939         __bindgen_bitfield_unit.set(6usize, 1u8, {
940             let remote_irr: u8 = unsafe { ::std::mem::transmute(remote_irr) };
941             remote_irr as u64
942         });
943         __bindgen_bitfield_unit.set(7usize, 1u8, {
944             let trig_mode: u8 = unsafe { ::std::mem::transmute(trig_mode) };
945             trig_mode as u64
946         });
947         __bindgen_bitfield_unit.set(8usize, 1u8, {
948             let mask: u8 = unsafe { ::std::mem::transmute(mask) };
949             mask as u64
950         });
951         __bindgen_bitfield_unit.set(9usize, 7u8, {
952             let reserve: u8 = unsafe { ::std::mem::transmute(reserve) };
953             reserve as u64
954         });
955         __bindgen_bitfield_unit
956     }
957 }
958 impl Default for kvm_ioapic_state__bindgen_ty_1 {
default() -> Self959     fn default() -> Self {
960         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
961         unsafe {
962             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
963             s.assume_init()
964         }
965     }
966 }
967 impl Default for kvm_ioapic_state {
default() -> Self968     fn default() -> Self {
969         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
970         unsafe {
971             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
972             s.assume_init()
973         }
974     }
975 }
976 #[repr(C)]
977 #[derive(Debug, Default, Copy, Clone)]
978 pub struct kvm_regs {
979     pub rax: u64,
980     pub rbx: u64,
981     pub rcx: u64,
982     pub rdx: u64,
983     pub rsi: u64,
984     pub rdi: u64,
985     pub rsp: u64,
986     pub rbp: u64,
987     pub r8: u64,
988     pub r9: u64,
989     pub r10: u64,
990     pub r11: u64,
991     pub r12: u64,
992     pub r13: u64,
993     pub r14: u64,
994     pub r15: u64,
995     pub rip: u64,
996     pub rflags: u64,
997 }
998 #[repr(C)]
999 #[derive(Debug, Copy, Clone)]
1000 pub struct kvm_lapic_state {
1001     pub regs: [::std::os::raw::c_char; 1024usize],
1002 }
1003 impl Default for kvm_lapic_state {
default() -> Self1004     fn default() -> Self {
1005         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1006         unsafe {
1007             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1008             s.assume_init()
1009         }
1010     }
1011 }
1012 #[repr(C)]
1013 #[derive(Debug, Default, Copy, Clone)]
1014 pub struct kvm_segment {
1015     pub base: u64,
1016     pub limit: u32,
1017     pub selector: u16,
1018     pub type_: u8,
1019     pub present: u8,
1020     pub dpl: u8,
1021     pub db: u8,
1022     pub s: u8,
1023     pub l: u8,
1024     pub g: u8,
1025     pub avl: u8,
1026     pub unusable: u8,
1027     pub padding: u8,
1028 }
1029 #[repr(C)]
1030 #[derive(Debug, Default, Copy, Clone)]
1031 pub struct kvm_dtable {
1032     pub base: u64,
1033     pub limit: u16,
1034     pub padding: [u16; 3usize],
1035 }
1036 #[repr(C)]
1037 #[derive(Debug, Default, Copy, Clone)]
1038 pub struct kvm_sregs {
1039     pub cs: kvm_segment,
1040     pub ds: kvm_segment,
1041     pub es: kvm_segment,
1042     pub fs: kvm_segment,
1043     pub gs: kvm_segment,
1044     pub ss: kvm_segment,
1045     pub tr: kvm_segment,
1046     pub ldt: kvm_segment,
1047     pub gdt: kvm_dtable,
1048     pub idt: kvm_dtable,
1049     pub cr0: u64,
1050     pub cr2: u64,
1051     pub cr3: u64,
1052     pub cr4: u64,
1053     pub cr8: u64,
1054     pub efer: u64,
1055     pub apic_base: u64,
1056     pub interrupt_bitmap: [u64; 4usize],
1057 }
1058 #[repr(C)]
1059 #[derive(Debug, Default, Copy, Clone)]
1060 pub struct kvm_sregs2 {
1061     pub cs: kvm_segment,
1062     pub ds: kvm_segment,
1063     pub es: kvm_segment,
1064     pub fs: kvm_segment,
1065     pub gs: kvm_segment,
1066     pub ss: kvm_segment,
1067     pub tr: kvm_segment,
1068     pub ldt: kvm_segment,
1069     pub gdt: kvm_dtable,
1070     pub idt: kvm_dtable,
1071     pub cr0: u64,
1072     pub cr2: u64,
1073     pub cr3: u64,
1074     pub cr4: u64,
1075     pub cr8: u64,
1076     pub efer: u64,
1077     pub apic_base: u64,
1078     pub flags: u64,
1079     pub pdptrs: [u64; 4usize],
1080 }
1081 #[repr(C)]
1082 #[derive(Debug, Default, Copy, Clone)]
1083 pub struct kvm_fpu {
1084     pub fpr: [[u8; 16usize]; 8usize],
1085     pub fcw: u16,
1086     pub fsw: u16,
1087     pub ftwx: u8,
1088     pub pad1: u8,
1089     pub last_opcode: u16,
1090     pub last_ip: u64,
1091     pub last_dp: u64,
1092     pub xmm: [[u8; 16usize]; 16usize],
1093     pub mxcsr: u32,
1094     pub pad2: u32,
1095 }
1096 #[repr(C)]
1097 #[derive(Debug, Default, Copy, Clone)]
1098 pub struct kvm_msr_entry {
1099     pub index: u32,
1100     pub reserved: u32,
1101     pub data: u64,
1102 }
1103 #[repr(C)]
1104 #[derive(Debug, Default)]
1105 pub struct kvm_msrs {
1106     pub nmsrs: u32,
1107     pub pad: u32,
1108     pub entries: __IncompleteArrayField<kvm_msr_entry>,
1109 }
1110 #[repr(C)]
1111 #[derive(Debug, Default)]
1112 pub struct kvm_msr_list {
1113     pub nmsrs: u32,
1114     pub indices: __IncompleteArrayField<u32>,
1115 }
1116 #[repr(C)]
1117 #[derive(Debug, Copy, Clone)]
1118 pub struct kvm_msr_filter_range {
1119     pub flags: u32,
1120     pub nmsrs: u32,
1121     pub base: u32,
1122     pub bitmap: *mut u8,
1123 }
1124 impl Default for kvm_msr_filter_range {
default() -> Self1125     fn default() -> Self {
1126         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1127         unsafe {
1128             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1129             s.assume_init()
1130         }
1131     }
1132 }
1133 #[repr(C)]
1134 #[derive(Debug, Copy, Clone)]
1135 pub struct kvm_msr_filter {
1136     pub flags: u32,
1137     pub ranges: [kvm_msr_filter_range; 16usize],
1138 }
1139 impl Default for kvm_msr_filter {
default() -> Self1140     fn default() -> Self {
1141         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1142         unsafe {
1143             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1144             s.assume_init()
1145         }
1146     }
1147 }
1148 #[repr(C)]
1149 #[derive(Debug, Default, Copy, Clone)]
1150 pub struct kvm_cpuid_entry {
1151     pub function: u32,
1152     pub eax: u32,
1153     pub ebx: u32,
1154     pub ecx: u32,
1155     pub edx: u32,
1156     pub padding: u32,
1157 }
1158 #[repr(C)]
1159 #[derive(Debug, Default)]
1160 pub struct kvm_cpuid {
1161     pub nent: u32,
1162     pub padding: u32,
1163     pub entries: __IncompleteArrayField<kvm_cpuid_entry>,
1164 }
1165 #[repr(C)]
1166 #[derive(Debug, Default, Copy, Clone)]
1167 pub struct kvm_cpuid_entry2 {
1168     pub function: u32,
1169     pub index: u32,
1170     pub flags: u32,
1171     pub eax: u32,
1172     pub ebx: u32,
1173     pub ecx: u32,
1174     pub edx: u32,
1175     pub padding: [u32; 3usize],
1176 }
1177 #[repr(C)]
1178 #[derive(Debug, Default)]
1179 pub struct kvm_cpuid2 {
1180     pub nent: u32,
1181     pub padding: u32,
1182     pub entries: __IncompleteArrayField<kvm_cpuid_entry2>,
1183 }
1184 #[repr(C)]
1185 #[derive(Debug, Default, Copy, Clone)]
1186 pub struct kvm_pit_channel_state {
1187     pub count: u32,
1188     pub latched_count: u16,
1189     pub count_latched: u8,
1190     pub status_latched: u8,
1191     pub status: u8,
1192     pub read_state: u8,
1193     pub write_state: u8,
1194     pub write_latch: u8,
1195     pub rw_mode: u8,
1196     pub mode: u8,
1197     pub bcd: u8,
1198     pub gate: u8,
1199     pub count_load_time: i64,
1200 }
1201 #[repr(C)]
1202 #[derive(Debug, Default, Copy, Clone)]
1203 pub struct kvm_debug_exit_arch {
1204     pub exception: u32,
1205     pub pad: u32,
1206     pub pc: u64,
1207     pub dr6: u64,
1208     pub dr7: u64,
1209 }
1210 #[repr(C)]
1211 #[derive(Debug, Default, Copy, Clone)]
1212 pub struct kvm_guest_debug_arch {
1213     pub debugreg: [u64; 8usize],
1214 }
1215 #[repr(C)]
1216 #[derive(Debug, Default, Copy, Clone)]
1217 pub struct kvm_pit_state {
1218     pub channels: [kvm_pit_channel_state; 3usize],
1219 }
1220 #[repr(C)]
1221 #[derive(Debug, Default, Copy, Clone)]
1222 pub struct kvm_pit_state2 {
1223     pub channels: [kvm_pit_channel_state; 3usize],
1224     pub flags: u32,
1225     pub reserved: [u32; 9usize],
1226 }
1227 #[repr(C)]
1228 #[derive(Debug, Default, Copy, Clone)]
1229 pub struct kvm_reinject_control {
1230     pub pit_reinject: u8,
1231     pub reserved: [u8; 31usize],
1232 }
1233 #[repr(C)]
1234 #[derive(Debug, Default, Copy, Clone)]
1235 pub struct kvm_vcpu_events {
1236     pub exception: kvm_vcpu_events__bindgen_ty_1,
1237     pub interrupt: kvm_vcpu_events__bindgen_ty_2,
1238     pub nmi: kvm_vcpu_events__bindgen_ty_3,
1239     pub sipi_vector: u32,
1240     pub flags: u32,
1241     pub smi: kvm_vcpu_events__bindgen_ty_4,
1242     pub triple_fault: kvm_vcpu_events__bindgen_ty_5,
1243     pub reserved: [u8; 26usize],
1244     pub exception_has_payload: u8,
1245     pub exception_payload: u64,
1246 }
1247 #[repr(C)]
1248 #[derive(Debug, Default, Copy, Clone)]
1249 pub struct kvm_vcpu_events__bindgen_ty_1 {
1250     pub injected: u8,
1251     pub nr: u8,
1252     pub has_error_code: u8,
1253     pub pending: u8,
1254     pub error_code: u32,
1255 }
1256 #[repr(C)]
1257 #[derive(Debug, Default, Copy, Clone)]
1258 pub struct kvm_vcpu_events__bindgen_ty_2 {
1259     pub injected: u8,
1260     pub nr: u8,
1261     pub soft: u8,
1262     pub shadow: u8,
1263 }
1264 #[repr(C)]
1265 #[derive(Debug, Default, Copy, Clone)]
1266 pub struct kvm_vcpu_events__bindgen_ty_3 {
1267     pub injected: u8,
1268     pub pending: u8,
1269     pub masked: u8,
1270     pub pad: u8,
1271 }
1272 #[repr(C)]
1273 #[derive(Debug, Default, Copy, Clone)]
1274 pub struct kvm_vcpu_events__bindgen_ty_4 {
1275     pub smm: u8,
1276     pub pending: u8,
1277     pub smm_inside_nmi: u8,
1278     pub latched_init: u8,
1279 }
1280 #[repr(C)]
1281 #[derive(Debug, Default, Copy, Clone)]
1282 pub struct kvm_vcpu_events__bindgen_ty_5 {
1283     pub pending: u8,
1284 }
1285 #[repr(C)]
1286 #[derive(Debug, Default, Copy, Clone)]
1287 pub struct kvm_debugregs {
1288     pub db: [u64; 4usize],
1289     pub dr6: u64,
1290     pub dr7: u64,
1291     pub flags: u64,
1292     pub reserved: [u64; 9usize],
1293 }
1294 #[repr(C)]
1295 #[derive(Debug)]
1296 pub struct kvm_xsave {
1297     pub region: [u32; 1024usize],
1298     pub extra: __IncompleteArrayField<u32>,
1299 }
1300 impl Default for kvm_xsave {
default() -> Self1301     fn default() -> Self {
1302         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1303         unsafe {
1304             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1305             s.assume_init()
1306         }
1307     }
1308 }
1309 #[repr(C)]
1310 #[derive(Debug, Default, Copy, Clone)]
1311 pub struct kvm_xcr {
1312     pub xcr: u32,
1313     pub reserved: u32,
1314     pub value: u64,
1315 }
1316 #[repr(C)]
1317 #[derive(Debug, Default, Copy, Clone)]
1318 pub struct kvm_xcrs {
1319     pub nr_xcrs: u32,
1320     pub flags: u32,
1321     pub xcrs: [kvm_xcr; 16usize],
1322     pub padding: [u64; 16usize],
1323 }
1324 #[repr(C)]
1325 #[derive(Debug, Default, Copy, Clone)]
1326 pub struct kvm_sync_regs {
1327     pub regs: kvm_regs,
1328     pub sregs: kvm_sregs,
1329     pub events: kvm_vcpu_events,
1330 }
1331 #[repr(C)]
1332 #[derive(Debug, Copy, Clone)]
1333 pub struct kvm_vmx_nested_state_data {
1334     pub vmcs12: [u8; 4096usize],
1335     pub shadow_vmcs12: [u8; 4096usize],
1336 }
1337 impl Default for kvm_vmx_nested_state_data {
default() -> Self1338     fn default() -> Self {
1339         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1340         unsafe {
1341             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1342             s.assume_init()
1343         }
1344     }
1345 }
1346 #[repr(C)]
1347 #[derive(Debug, Default, Copy, Clone)]
1348 pub struct kvm_vmx_nested_state_hdr {
1349     pub vmxon_pa: u64,
1350     pub vmcs12_pa: u64,
1351     pub smm: kvm_vmx_nested_state_hdr__bindgen_ty_1,
1352     pub pad: u16,
1353     pub flags: u32,
1354     pub preemption_timer_deadline: u64,
1355 }
1356 #[repr(C)]
1357 #[derive(Debug, Default, Copy, Clone)]
1358 pub struct kvm_vmx_nested_state_hdr__bindgen_ty_1 {
1359     pub flags: u16,
1360 }
1361 #[repr(C)]
1362 #[derive(Debug, Copy, Clone)]
1363 pub struct kvm_svm_nested_state_data {
1364     pub vmcb12: [u8; 4096usize],
1365 }
1366 impl Default for kvm_svm_nested_state_data {
default() -> Self1367     fn default() -> Self {
1368         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1369         unsafe {
1370             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1371             s.assume_init()
1372         }
1373     }
1374 }
1375 #[repr(C)]
1376 #[derive(Debug, Default, Copy, Clone)]
1377 pub struct kvm_svm_nested_state_hdr {
1378     pub vmcb_pa: u64,
1379 }
1380 #[repr(C)]
1381 pub struct kvm_nested_state {
1382     pub flags: u16,
1383     pub format: u16,
1384     pub size: u32,
1385     pub hdr: kvm_nested_state__bindgen_ty_1,
1386     pub data: kvm_nested_state__bindgen_ty_2,
1387 }
1388 #[repr(C)]
1389 #[derive(Copy, Clone)]
1390 pub union kvm_nested_state__bindgen_ty_1 {
1391     pub vmx: kvm_vmx_nested_state_hdr,
1392     pub svm: kvm_svm_nested_state_hdr,
1393     pub pad: [u8; 120usize],
1394 }
1395 impl Default for kvm_nested_state__bindgen_ty_1 {
default() -> Self1396     fn default() -> Self {
1397         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1398         unsafe {
1399             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1400             s.assume_init()
1401         }
1402     }
1403 }
1404 #[repr(C)]
1405 pub struct kvm_nested_state__bindgen_ty_2 {
1406     pub vmx: __BindgenUnionField<[kvm_vmx_nested_state_data; 0usize]>,
1407     pub svm: __BindgenUnionField<[kvm_svm_nested_state_data; 0usize]>,
1408     pub bindgen_union_field: [u8; 0usize],
1409 }
1410 impl Default for kvm_nested_state__bindgen_ty_2 {
default() -> Self1411     fn default() -> Self {
1412         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1413         unsafe {
1414             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1415             s.assume_init()
1416         }
1417     }
1418 }
1419 impl Default for kvm_nested_state {
default() -> Self1420     fn default() -> Self {
1421         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1422         unsafe {
1423             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1424             s.assume_init()
1425         }
1426     }
1427 }
1428 #[repr(C)]
1429 #[derive(Debug, Default)]
1430 pub struct kvm_pmu_event_filter {
1431     pub action: u32,
1432     pub nevents: u32,
1433     pub fixed_counter_bitmap: u32,
1434     pub flags: u32,
1435     pub pad: [u32; 4usize],
1436     pub events: __IncompleteArrayField<u64>,
1437 }
1438 #[repr(C)]
1439 #[derive(Debug, Default, Copy, Clone)]
1440 pub struct kvm_user_trace_setup {
1441     pub buf_size: u32,
1442     pub buf_nr: u32,
1443 }
1444 #[repr(C)]
1445 #[derive(Debug, Default, Copy, Clone)]
1446 pub struct kvm_breakpoint {
1447     pub enabled: u32,
1448     pub padding: u32,
1449     pub address: u64,
1450 }
1451 #[repr(C)]
1452 #[derive(Debug, Default, Copy, Clone)]
1453 pub struct kvm_debug_guest {
1454     pub enabled: u32,
1455     pub pad: u32,
1456     pub breakpoints: [kvm_breakpoint; 4usize],
1457     pub singlestep: u32,
1458 }
1459 #[repr(C)]
1460 #[derive(Debug, Default, Copy, Clone)]
1461 pub struct kvm_memory_region {
1462     pub slot: u32,
1463     pub flags: u32,
1464     pub guest_phys_addr: u64,
1465     pub memory_size: u64,
1466 }
1467 #[repr(C)]
1468 #[derive(Debug, Default, Copy, Clone)]
1469 pub struct kvm_userspace_memory_region {
1470     pub slot: u32,
1471     pub flags: u32,
1472     pub guest_phys_addr: u64,
1473     pub memory_size: u64,
1474     pub userspace_addr: u64,
1475 }
1476 #[repr(C)]
1477 #[derive(Copy, Clone)]
1478 pub struct kvm_irq_level {
1479     pub __bindgen_anon_1: kvm_irq_level__bindgen_ty_1,
1480     pub level: u32,
1481 }
1482 #[repr(C)]
1483 #[derive(Copy, Clone)]
1484 pub union kvm_irq_level__bindgen_ty_1 {
1485     pub irq: u32,
1486     pub status: i32,
1487 }
1488 impl Default for kvm_irq_level__bindgen_ty_1 {
default() -> Self1489     fn default() -> Self {
1490         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1491         unsafe {
1492             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1493             s.assume_init()
1494         }
1495     }
1496 }
1497 impl Default for kvm_irq_level {
default() -> Self1498     fn default() -> Self {
1499         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1500         unsafe {
1501             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1502             s.assume_init()
1503         }
1504     }
1505 }
1506 #[repr(C)]
1507 #[derive(Copy, Clone)]
1508 pub struct kvm_irqchip {
1509     pub chip_id: u32,
1510     pub pad: u32,
1511     pub chip: kvm_irqchip__bindgen_ty_1,
1512 }
1513 #[repr(C)]
1514 #[derive(Copy, Clone)]
1515 pub union kvm_irqchip__bindgen_ty_1 {
1516     pub dummy: [::std::os::raw::c_char; 512usize],
1517     pub pic: kvm_pic_state,
1518     pub ioapic: kvm_ioapic_state,
1519 }
1520 impl Default for kvm_irqchip__bindgen_ty_1 {
default() -> Self1521     fn default() -> Self {
1522         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1523         unsafe {
1524             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1525             s.assume_init()
1526         }
1527     }
1528 }
1529 impl Default for kvm_irqchip {
default() -> Self1530     fn default() -> Self {
1531         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1532         unsafe {
1533             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1534             s.assume_init()
1535         }
1536     }
1537 }
1538 #[repr(C)]
1539 #[derive(Debug, Default, Copy, Clone)]
1540 pub struct kvm_pit_config {
1541     pub flags: u32,
1542     pub pad: [u32; 15usize],
1543 }
1544 #[repr(C)]
1545 #[derive(Debug, Default, Copy, Clone)]
1546 pub struct kvm_s390_skeys {
1547     pub start_gfn: u64,
1548     pub count: u64,
1549     pub skeydata_addr: u64,
1550     pub flags: u32,
1551     pub reserved: [u32; 9usize],
1552 }
1553 #[repr(C)]
1554 #[derive(Copy, Clone)]
1555 pub struct kvm_s390_cmma_log {
1556     pub start_gfn: u64,
1557     pub count: u32,
1558     pub flags: u32,
1559     pub __bindgen_anon_1: kvm_s390_cmma_log__bindgen_ty_1,
1560     pub values: u64,
1561 }
1562 #[repr(C)]
1563 #[derive(Copy, Clone)]
1564 pub union kvm_s390_cmma_log__bindgen_ty_1 {
1565     pub remaining: u64,
1566     pub mask: u64,
1567 }
1568 impl Default for kvm_s390_cmma_log__bindgen_ty_1 {
default() -> Self1569     fn default() -> Self {
1570         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1571         unsafe {
1572             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1573             s.assume_init()
1574         }
1575     }
1576 }
1577 impl Default for kvm_s390_cmma_log {
default() -> Self1578     fn default() -> Self {
1579         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1580         unsafe {
1581             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1582             s.assume_init()
1583         }
1584     }
1585 }
1586 #[repr(C)]
1587 #[derive(Copy, Clone)]
1588 pub struct kvm_hyperv_exit {
1589     pub type_: u32,
1590     pub pad1: u32,
1591     pub u: kvm_hyperv_exit__bindgen_ty_1,
1592 }
1593 #[repr(C)]
1594 #[derive(Copy, Clone)]
1595 pub union kvm_hyperv_exit__bindgen_ty_1 {
1596     pub synic: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1,
1597     pub hcall: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_2,
1598     pub syndbg: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3,
1599 }
1600 #[repr(C)]
1601 #[derive(Debug, Default, Copy, Clone)]
1602 pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1 {
1603     pub msr: u32,
1604     pub pad2: u32,
1605     pub control: u64,
1606     pub evt_page: u64,
1607     pub msg_page: u64,
1608 }
1609 #[repr(C)]
1610 #[derive(Debug, Default, Copy, Clone)]
1611 pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_2 {
1612     pub input: u64,
1613     pub result: u64,
1614     pub params: [u64; 2usize],
1615 }
1616 #[repr(C)]
1617 #[derive(Debug, Default, Copy, Clone)]
1618 pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3 {
1619     pub msr: u32,
1620     pub pad2: u32,
1621     pub control: u64,
1622     pub status: u64,
1623     pub send_page: u64,
1624     pub recv_page: u64,
1625     pub pending_page: u64,
1626 }
1627 impl Default for kvm_hyperv_exit__bindgen_ty_1 {
default() -> Self1628     fn default() -> Self {
1629         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1630         unsafe {
1631             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1632             s.assume_init()
1633         }
1634     }
1635 }
1636 impl Default for kvm_hyperv_exit {
default() -> Self1637     fn default() -> Self {
1638         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1639         unsafe {
1640             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1641             s.assume_init()
1642         }
1643     }
1644 }
1645 #[repr(C)]
1646 #[derive(Copy, Clone)]
1647 pub struct kvm_xen_exit {
1648     pub type_: u32,
1649     pub u: kvm_xen_exit__bindgen_ty_1,
1650 }
1651 #[repr(C)]
1652 #[derive(Copy, Clone)]
1653 pub union kvm_xen_exit__bindgen_ty_1 {
1654     pub hcall: kvm_xen_exit__bindgen_ty_1__bindgen_ty_1,
1655 }
1656 #[repr(C)]
1657 #[derive(Debug, Default, Copy, Clone)]
1658 pub struct kvm_xen_exit__bindgen_ty_1__bindgen_ty_1 {
1659     pub longmode: u32,
1660     pub cpl: u32,
1661     pub input: u64,
1662     pub result: u64,
1663     pub params: [u64; 6usize],
1664 }
1665 impl Default for kvm_xen_exit__bindgen_ty_1 {
default() -> Self1666     fn default() -> Self {
1667         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1668         unsafe {
1669             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1670             s.assume_init()
1671         }
1672     }
1673 }
1674 impl Default for kvm_xen_exit {
default() -> Self1675     fn default() -> Self {
1676         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1677         unsafe {
1678             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1679             s.assume_init()
1680         }
1681     }
1682 }
1683 #[repr(C)]
1684 #[derive(Copy, Clone)]
1685 pub struct kvm_run {
1686     pub request_interrupt_window: u8,
1687     pub immediate_exit: u8,
1688     pub padding1: [u8; 6usize],
1689     pub exit_reason: u32,
1690     pub ready_for_interrupt_injection: u8,
1691     pub if_flag: u8,
1692     pub flags: u16,
1693     pub cr8: u64,
1694     pub apic_base: u64,
1695     pub __bindgen_anon_1: kvm_run__bindgen_ty_1,
1696     pub kvm_valid_regs: u64,
1697     pub kvm_dirty_regs: u64,
1698     pub s: kvm_run__bindgen_ty_2,
1699 }
1700 #[repr(C)]
1701 #[derive(Copy, Clone)]
1702 pub union kvm_run__bindgen_ty_1 {
1703     pub hw: kvm_run__bindgen_ty_1__bindgen_ty_1,
1704     pub fail_entry: kvm_run__bindgen_ty_1__bindgen_ty_2,
1705     pub ex: kvm_run__bindgen_ty_1__bindgen_ty_3,
1706     pub io: kvm_run__bindgen_ty_1__bindgen_ty_4,
1707     pub debug: kvm_run__bindgen_ty_1__bindgen_ty_5,
1708     pub mmio: kvm_run__bindgen_ty_1__bindgen_ty_6,
1709     pub hypercall: kvm_run__bindgen_ty_1__bindgen_ty_7,
1710     pub tpr_access: kvm_run__bindgen_ty_1__bindgen_ty_8,
1711     pub s390_sieic: kvm_run__bindgen_ty_1__bindgen_ty_9,
1712     pub s390_reset_flags: u64,
1713     pub s390_ucontrol: kvm_run__bindgen_ty_1__bindgen_ty_10,
1714     pub dcr: kvm_run__bindgen_ty_1__bindgen_ty_11,
1715     pub internal: kvm_run__bindgen_ty_1__bindgen_ty_12,
1716     pub emulation_failure: kvm_run__bindgen_ty_1__bindgen_ty_13,
1717     pub osi: kvm_run__bindgen_ty_1__bindgen_ty_14,
1718     pub papr_hcall: kvm_run__bindgen_ty_1__bindgen_ty_15,
1719     pub s390_tsch: kvm_run__bindgen_ty_1__bindgen_ty_16,
1720     pub epr: kvm_run__bindgen_ty_1__bindgen_ty_17,
1721     pub system_event: kvm_run__bindgen_ty_1__bindgen_ty_18,
1722     pub s390_stsi: kvm_run__bindgen_ty_1__bindgen_ty_19,
1723     pub eoi: kvm_run__bindgen_ty_1__bindgen_ty_20,
1724     pub hyperv: kvm_hyperv_exit,
1725     pub arm_nisv: kvm_run__bindgen_ty_1__bindgen_ty_21,
1726     pub msr: kvm_run__bindgen_ty_1__bindgen_ty_22,
1727     pub xen: kvm_xen_exit,
1728     pub riscv_sbi: kvm_run__bindgen_ty_1__bindgen_ty_23,
1729     pub riscv_csr: kvm_run__bindgen_ty_1__bindgen_ty_24,
1730     pub notify: kvm_run__bindgen_ty_1__bindgen_ty_25,
1731     pub padding: [::std::os::raw::c_char; 256usize],
1732 }
1733 #[repr(C)]
1734 #[derive(Debug, Default, Copy, Clone)]
1735 pub struct kvm_run__bindgen_ty_1__bindgen_ty_1 {
1736     pub hardware_exit_reason: u64,
1737 }
1738 #[repr(C)]
1739 #[derive(Debug, Default, Copy, Clone)]
1740 pub struct kvm_run__bindgen_ty_1__bindgen_ty_2 {
1741     pub hardware_entry_failure_reason: u64,
1742     pub cpu: u32,
1743 }
1744 #[repr(C)]
1745 #[derive(Debug, Default, Copy, Clone)]
1746 pub struct kvm_run__bindgen_ty_1__bindgen_ty_3 {
1747     pub exception: u32,
1748     pub error_code: u32,
1749 }
1750 #[repr(C)]
1751 #[derive(Debug, Default, Copy, Clone)]
1752 pub struct kvm_run__bindgen_ty_1__bindgen_ty_4 {
1753     pub direction: u8,
1754     pub size: u8,
1755     pub port: u16,
1756     pub count: u32,
1757     pub data_offset: u64,
1758 }
1759 #[repr(C)]
1760 #[derive(Debug, Default, Copy, Clone)]
1761 pub struct kvm_run__bindgen_ty_1__bindgen_ty_5 {
1762     pub arch: kvm_debug_exit_arch,
1763 }
1764 #[repr(C)]
1765 #[derive(Debug, Default, Copy, Clone)]
1766 pub struct kvm_run__bindgen_ty_1__bindgen_ty_6 {
1767     pub phys_addr: u64,
1768     pub data: [u8; 8usize],
1769     pub len: u32,
1770     pub is_write: u8,
1771 }
1772 #[repr(C)]
1773 #[derive(Debug, Default, Copy, Clone)]
1774 pub struct kvm_run__bindgen_ty_1__bindgen_ty_7 {
1775     pub nr: u64,
1776     pub args: [u64; 6usize],
1777     pub ret: u64,
1778     pub longmode: u32,
1779     pub pad: u32,
1780 }
1781 #[repr(C)]
1782 #[derive(Debug, Default, Copy, Clone)]
1783 pub struct kvm_run__bindgen_ty_1__bindgen_ty_8 {
1784     pub rip: u64,
1785     pub is_write: u32,
1786     pub pad: u32,
1787 }
1788 #[repr(C)]
1789 #[derive(Debug, Default, Copy, Clone)]
1790 pub struct kvm_run__bindgen_ty_1__bindgen_ty_9 {
1791     pub icptcode: u8,
1792     pub ipa: u16,
1793     pub ipb: u32,
1794 }
1795 #[repr(C)]
1796 #[derive(Debug, Default, Copy, Clone)]
1797 pub struct kvm_run__bindgen_ty_1__bindgen_ty_10 {
1798     pub trans_exc_code: u64,
1799     pub pgm_code: u32,
1800 }
1801 #[repr(C)]
1802 #[derive(Debug, Default, Copy, Clone)]
1803 pub struct kvm_run__bindgen_ty_1__bindgen_ty_11 {
1804     pub dcrn: u32,
1805     pub data: u32,
1806     pub is_write: u8,
1807 }
1808 #[repr(C)]
1809 #[derive(Debug, Default, Copy, Clone)]
1810 pub struct kvm_run__bindgen_ty_1__bindgen_ty_12 {
1811     pub suberror: u32,
1812     pub ndata: u32,
1813     pub data: [u64; 16usize],
1814 }
1815 #[repr(C)]
1816 #[derive(Copy, Clone)]
1817 pub struct kvm_run__bindgen_ty_1__bindgen_ty_13 {
1818     pub suberror: u32,
1819     pub ndata: u32,
1820     pub flags: u64,
1821     pub __bindgen_anon_1: kvm_run__bindgen_ty_1__bindgen_ty_13__bindgen_ty_1,
1822 }
1823 #[repr(C)]
1824 #[derive(Copy, Clone)]
1825 pub union kvm_run__bindgen_ty_1__bindgen_ty_13__bindgen_ty_1 {
1826     pub __bindgen_anon_1: kvm_run__bindgen_ty_1__bindgen_ty_13__bindgen_ty_1__bindgen_ty_1,
1827 }
1828 #[repr(C)]
1829 #[derive(Debug, Default, Copy, Clone)]
1830 pub struct kvm_run__bindgen_ty_1__bindgen_ty_13__bindgen_ty_1__bindgen_ty_1 {
1831     pub insn_size: u8,
1832     pub insn_bytes: [u8; 15usize],
1833 }
1834 impl Default for kvm_run__bindgen_ty_1__bindgen_ty_13__bindgen_ty_1 {
default() -> Self1835     fn default() -> Self {
1836         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1837         unsafe {
1838             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1839             s.assume_init()
1840         }
1841     }
1842 }
1843 impl Default for kvm_run__bindgen_ty_1__bindgen_ty_13 {
default() -> Self1844     fn default() -> Self {
1845         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1846         unsafe {
1847             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1848             s.assume_init()
1849         }
1850     }
1851 }
1852 #[repr(C)]
1853 #[derive(Debug, Default, Copy, Clone)]
1854 pub struct kvm_run__bindgen_ty_1__bindgen_ty_14 {
1855     pub gprs: [u64; 32usize],
1856 }
1857 #[repr(C)]
1858 #[derive(Debug, Default, Copy, Clone)]
1859 pub struct kvm_run__bindgen_ty_1__bindgen_ty_15 {
1860     pub nr: u64,
1861     pub ret: u64,
1862     pub args: [u64; 9usize],
1863 }
1864 #[repr(C)]
1865 #[derive(Debug, Default, Copy, Clone)]
1866 pub struct kvm_run__bindgen_ty_1__bindgen_ty_16 {
1867     pub subchannel_id: u16,
1868     pub subchannel_nr: u16,
1869     pub io_int_parm: u32,
1870     pub io_int_word: u32,
1871     pub ipb: u32,
1872     pub dequeued: u8,
1873 }
1874 #[repr(C)]
1875 #[derive(Debug, Default, Copy, Clone)]
1876 pub struct kvm_run__bindgen_ty_1__bindgen_ty_17 {
1877     pub epr: u32,
1878 }
1879 #[repr(C)]
1880 #[derive(Copy, Clone)]
1881 pub struct kvm_run__bindgen_ty_1__bindgen_ty_18 {
1882     pub type_: u32,
1883     pub ndata: u32,
1884     pub __bindgen_anon_1: kvm_run__bindgen_ty_1__bindgen_ty_18__bindgen_ty_1,
1885 }
1886 #[repr(C)]
1887 #[derive(Copy, Clone)]
1888 pub union kvm_run__bindgen_ty_1__bindgen_ty_18__bindgen_ty_1 {
1889     pub flags: u64,
1890     pub data: [u64; 16usize],
1891 }
1892 impl Default for kvm_run__bindgen_ty_1__bindgen_ty_18__bindgen_ty_1 {
default() -> Self1893     fn default() -> Self {
1894         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1895         unsafe {
1896             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1897             s.assume_init()
1898         }
1899     }
1900 }
1901 impl Default for kvm_run__bindgen_ty_1__bindgen_ty_18 {
default() -> Self1902     fn default() -> Self {
1903         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1904         unsafe {
1905             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1906             s.assume_init()
1907         }
1908     }
1909 }
1910 #[repr(C)]
1911 #[derive(Debug, Default, Copy, Clone)]
1912 pub struct kvm_run__bindgen_ty_1__bindgen_ty_19 {
1913     pub addr: u64,
1914     pub ar: u8,
1915     pub reserved: u8,
1916     pub fc: u8,
1917     pub sel1: u8,
1918     pub sel2: u16,
1919 }
1920 #[repr(C)]
1921 #[derive(Debug, Default, Copy, Clone)]
1922 pub struct kvm_run__bindgen_ty_1__bindgen_ty_20 {
1923     pub vector: u8,
1924 }
1925 #[repr(C)]
1926 #[derive(Debug, Default, Copy, Clone)]
1927 pub struct kvm_run__bindgen_ty_1__bindgen_ty_21 {
1928     pub esr_iss: u64,
1929     pub fault_ipa: u64,
1930 }
1931 #[repr(C)]
1932 #[derive(Debug, Default, Copy, Clone)]
1933 pub struct kvm_run__bindgen_ty_1__bindgen_ty_22 {
1934     pub error: u8,
1935     pub pad: [u8; 7usize],
1936     pub reason: u32,
1937     pub index: u32,
1938     pub data: u64,
1939 }
1940 #[repr(C)]
1941 #[derive(Debug, Default, Copy, Clone)]
1942 pub struct kvm_run__bindgen_ty_1__bindgen_ty_23 {
1943     pub extension_id: ::std::os::raw::c_ulong,
1944     pub function_id: ::std::os::raw::c_ulong,
1945     pub args: [::std::os::raw::c_ulong; 6usize],
1946     pub ret: [::std::os::raw::c_ulong; 2usize],
1947 }
1948 #[repr(C)]
1949 #[derive(Debug, Default, Copy, Clone)]
1950 pub struct kvm_run__bindgen_ty_1__bindgen_ty_24 {
1951     pub csr_num: ::std::os::raw::c_ulong,
1952     pub new_value: ::std::os::raw::c_ulong,
1953     pub write_mask: ::std::os::raw::c_ulong,
1954     pub ret_value: ::std::os::raw::c_ulong,
1955 }
1956 #[repr(C)]
1957 #[derive(Debug, Default, Copy, Clone)]
1958 pub struct kvm_run__bindgen_ty_1__bindgen_ty_25 {
1959     pub flags: u32,
1960 }
1961 impl Default for kvm_run__bindgen_ty_1 {
default() -> Self1962     fn default() -> Self {
1963         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1964         unsafe {
1965             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1966             s.assume_init()
1967         }
1968     }
1969 }
1970 #[repr(C)]
1971 #[derive(Copy, Clone)]
1972 pub union kvm_run__bindgen_ty_2 {
1973     pub regs: kvm_sync_regs,
1974     pub padding: [::std::os::raw::c_char; 2048usize],
1975 }
1976 impl Default for kvm_run__bindgen_ty_2 {
default() -> Self1977     fn default() -> Self {
1978         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1979         unsafe {
1980             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1981             s.assume_init()
1982         }
1983     }
1984 }
1985 impl Default for kvm_run {
default() -> Self1986     fn default() -> Self {
1987         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1988         unsafe {
1989             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1990             s.assume_init()
1991         }
1992     }
1993 }
1994 #[repr(C)]
1995 #[derive(Copy, Clone)]
1996 pub struct kvm_coalesced_mmio_zone {
1997     pub addr: u64,
1998     pub size: u32,
1999     pub __bindgen_anon_1: kvm_coalesced_mmio_zone__bindgen_ty_1,
2000 }
2001 #[repr(C)]
2002 #[derive(Copy, Clone)]
2003 pub union kvm_coalesced_mmio_zone__bindgen_ty_1 {
2004     pub pad: u32,
2005     pub pio: u32,
2006 }
2007 impl Default for kvm_coalesced_mmio_zone__bindgen_ty_1 {
default() -> Self2008     fn default() -> Self {
2009         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2010         unsafe {
2011             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2012             s.assume_init()
2013         }
2014     }
2015 }
2016 impl Default for kvm_coalesced_mmio_zone {
default() -> Self2017     fn default() -> Self {
2018         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2019         unsafe {
2020             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2021             s.assume_init()
2022         }
2023     }
2024 }
2025 #[repr(C)]
2026 #[derive(Copy, Clone)]
2027 pub struct kvm_coalesced_mmio {
2028     pub phys_addr: u64,
2029     pub len: u32,
2030     pub __bindgen_anon_1: kvm_coalesced_mmio__bindgen_ty_1,
2031     pub data: [u8; 8usize],
2032 }
2033 #[repr(C)]
2034 #[derive(Copy, Clone)]
2035 pub union kvm_coalesced_mmio__bindgen_ty_1 {
2036     pub pad: u32,
2037     pub pio: u32,
2038 }
2039 impl Default for kvm_coalesced_mmio__bindgen_ty_1 {
default() -> Self2040     fn default() -> Self {
2041         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2042         unsafe {
2043             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2044             s.assume_init()
2045         }
2046     }
2047 }
2048 impl Default for kvm_coalesced_mmio {
default() -> Self2049     fn default() -> Self {
2050         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2051         unsafe {
2052             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2053             s.assume_init()
2054         }
2055     }
2056 }
2057 #[repr(C)]
2058 pub struct kvm_coalesced_mmio_ring {
2059     pub first: u32,
2060     pub last: u32,
2061     pub coalesced_mmio: __IncompleteArrayField<kvm_coalesced_mmio>,
2062 }
2063 impl Default for kvm_coalesced_mmio_ring {
default() -> Self2064     fn default() -> Self {
2065         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2066         unsafe {
2067             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2068             s.assume_init()
2069         }
2070     }
2071 }
2072 #[repr(C)]
2073 #[derive(Debug, Default, Copy, Clone)]
2074 pub struct kvm_translation {
2075     pub linear_address: u64,
2076     pub physical_address: u64,
2077     pub valid: u8,
2078     pub writeable: u8,
2079     pub usermode: u8,
2080     pub pad: [u8; 5usize],
2081 }
2082 #[repr(C)]
2083 #[derive(Copy, Clone)]
2084 pub struct kvm_s390_mem_op {
2085     pub gaddr: u64,
2086     pub flags: u64,
2087     pub size: u32,
2088     pub op: u32,
2089     pub buf: u64,
2090     pub __bindgen_anon_1: kvm_s390_mem_op__bindgen_ty_1,
2091 }
2092 #[repr(C)]
2093 #[derive(Copy, Clone)]
2094 pub union kvm_s390_mem_op__bindgen_ty_1 {
2095     pub __bindgen_anon_1: kvm_s390_mem_op__bindgen_ty_1__bindgen_ty_1,
2096     pub sida_offset: u32,
2097     pub reserved: [u8; 32usize],
2098 }
2099 #[repr(C)]
2100 #[derive(Debug, Default, Copy, Clone)]
2101 pub struct kvm_s390_mem_op__bindgen_ty_1__bindgen_ty_1 {
2102     pub ar: u8,
2103     pub key: u8,
2104 }
2105 impl Default for kvm_s390_mem_op__bindgen_ty_1 {
default() -> Self2106     fn default() -> Self {
2107         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2108         unsafe {
2109             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2110             s.assume_init()
2111         }
2112     }
2113 }
2114 impl Default for kvm_s390_mem_op {
default() -> Self2115     fn default() -> Self {
2116         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2117         unsafe {
2118             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2119             s.assume_init()
2120         }
2121     }
2122 }
2123 #[repr(C)]
2124 #[derive(Debug, Default, Copy, Clone)]
2125 pub struct kvm_interrupt {
2126     pub irq: u32,
2127 }
2128 #[repr(C)]
2129 #[derive(Copy, Clone)]
2130 pub struct kvm_dirty_log {
2131     pub slot: u32,
2132     pub padding1: u32,
2133     pub __bindgen_anon_1: kvm_dirty_log__bindgen_ty_1,
2134 }
2135 #[repr(C)]
2136 #[derive(Copy, Clone)]
2137 pub union kvm_dirty_log__bindgen_ty_1 {
2138     pub dirty_bitmap: *mut ::std::os::raw::c_void,
2139     pub padding2: u64,
2140 }
2141 impl Default for kvm_dirty_log__bindgen_ty_1 {
default() -> Self2142     fn default() -> Self {
2143         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2144         unsafe {
2145             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2146             s.assume_init()
2147         }
2148     }
2149 }
2150 impl Default for kvm_dirty_log {
default() -> Self2151     fn default() -> Self {
2152         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2153         unsafe {
2154             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2155             s.assume_init()
2156         }
2157     }
2158 }
2159 #[repr(C)]
2160 #[derive(Copy, Clone)]
2161 pub struct kvm_clear_dirty_log {
2162     pub slot: u32,
2163     pub num_pages: u32,
2164     pub first_page: u64,
2165     pub __bindgen_anon_1: kvm_clear_dirty_log__bindgen_ty_1,
2166 }
2167 #[repr(C)]
2168 #[derive(Copy, Clone)]
2169 pub union kvm_clear_dirty_log__bindgen_ty_1 {
2170     pub dirty_bitmap: *mut ::std::os::raw::c_void,
2171     pub padding2: u64,
2172 }
2173 impl Default for kvm_clear_dirty_log__bindgen_ty_1 {
default() -> Self2174     fn default() -> Self {
2175         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2176         unsafe {
2177             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2178             s.assume_init()
2179         }
2180     }
2181 }
2182 impl Default for kvm_clear_dirty_log {
default() -> Self2183     fn default() -> Self {
2184         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2185         unsafe {
2186             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2187             s.assume_init()
2188         }
2189     }
2190 }
2191 #[repr(C)]
2192 #[derive(Debug, Default)]
2193 pub struct kvm_signal_mask {
2194     pub len: u32,
2195     pub sigset: __IncompleteArrayField<u8>,
2196 }
2197 #[repr(C)]
2198 #[derive(Debug, Default, Copy, Clone)]
2199 pub struct kvm_tpr_access_ctl {
2200     pub enabled: u32,
2201     pub flags: u32,
2202     pub reserved: [u32; 8usize],
2203 }
2204 #[repr(C)]
2205 #[derive(Debug, Default, Copy, Clone)]
2206 pub struct kvm_vapic_addr {
2207     pub vapic_addr: u64,
2208 }
2209 #[repr(C)]
2210 #[derive(Debug, Default, Copy, Clone)]
2211 pub struct kvm_mp_state {
2212     pub mp_state: u32,
2213 }
2214 #[repr(C)]
2215 #[derive(Debug, Default, Copy, Clone)]
2216 pub struct kvm_s390_psw {
2217     pub mask: u64,
2218     pub addr: u64,
2219 }
2220 #[repr(C)]
2221 #[derive(Debug, Default, Copy, Clone)]
2222 pub struct kvm_s390_interrupt {
2223     pub type_: u32,
2224     pub parm: u32,
2225     pub parm64: u64,
2226 }
2227 #[repr(C)]
2228 #[derive(Debug, Default, Copy, Clone)]
2229 pub struct kvm_s390_io_info {
2230     pub subchannel_id: u16,
2231     pub subchannel_nr: u16,
2232     pub io_int_parm: u32,
2233     pub io_int_word: u32,
2234 }
2235 #[repr(C)]
2236 #[derive(Debug, Default, Copy, Clone)]
2237 pub struct kvm_s390_ext_info {
2238     pub ext_params: u32,
2239     pub pad: u32,
2240     pub ext_params2: u64,
2241 }
2242 #[repr(C)]
2243 #[derive(Debug, Default, Copy, Clone)]
2244 pub struct kvm_s390_pgm_info {
2245     pub trans_exc_code: u64,
2246     pub mon_code: u64,
2247     pub per_address: u64,
2248     pub data_exc_code: u32,
2249     pub code: u16,
2250     pub mon_class_nr: u16,
2251     pub per_code: u8,
2252     pub per_atmid: u8,
2253     pub exc_access_id: u8,
2254     pub per_access_id: u8,
2255     pub op_access_id: u8,
2256     pub flags: u8,
2257     pub pad: [u8; 2usize],
2258 }
2259 #[repr(C)]
2260 #[derive(Debug, Default, Copy, Clone)]
2261 pub struct kvm_s390_prefix_info {
2262     pub address: u32,
2263 }
2264 #[repr(C)]
2265 #[derive(Debug, Default, Copy, Clone)]
2266 pub struct kvm_s390_extcall_info {
2267     pub code: u16,
2268 }
2269 #[repr(C)]
2270 #[derive(Debug, Default, Copy, Clone)]
2271 pub struct kvm_s390_emerg_info {
2272     pub code: u16,
2273 }
2274 #[repr(C)]
2275 #[derive(Debug, Default, Copy, Clone)]
2276 pub struct kvm_s390_stop_info {
2277     pub flags: u32,
2278 }
2279 #[repr(C)]
2280 #[derive(Debug, Default, Copy, Clone)]
2281 pub struct kvm_s390_mchk_info {
2282     pub cr14: u64,
2283     pub mcic: u64,
2284     pub failing_storage_address: u64,
2285     pub ext_damage_code: u32,
2286     pub pad: u32,
2287     pub fixed_logout: [u8; 16usize],
2288 }
2289 #[repr(C)]
2290 #[derive(Copy, Clone)]
2291 pub struct kvm_s390_irq {
2292     pub type_: u64,
2293     pub u: kvm_s390_irq__bindgen_ty_1,
2294 }
2295 #[repr(C)]
2296 #[derive(Copy, Clone)]
2297 pub union kvm_s390_irq__bindgen_ty_1 {
2298     pub io: kvm_s390_io_info,
2299     pub ext: kvm_s390_ext_info,
2300     pub pgm: kvm_s390_pgm_info,
2301     pub emerg: kvm_s390_emerg_info,
2302     pub extcall: kvm_s390_extcall_info,
2303     pub prefix: kvm_s390_prefix_info,
2304     pub stop: kvm_s390_stop_info,
2305     pub mchk: kvm_s390_mchk_info,
2306     pub reserved: [::std::os::raw::c_char; 64usize],
2307 }
2308 impl Default for kvm_s390_irq__bindgen_ty_1 {
default() -> Self2309     fn default() -> Self {
2310         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2311         unsafe {
2312             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2313             s.assume_init()
2314         }
2315     }
2316 }
2317 impl Default for kvm_s390_irq {
default() -> Self2318     fn default() -> Self {
2319         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2320         unsafe {
2321             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2322             s.assume_init()
2323         }
2324     }
2325 }
2326 #[repr(C)]
2327 #[derive(Debug, Default, Copy, Clone)]
2328 pub struct kvm_s390_irq_state {
2329     pub buf: u64,
2330     pub flags: u32,
2331     pub len: u32,
2332     pub reserved: [u32; 4usize],
2333 }
2334 #[repr(C)]
2335 #[derive(Debug, Default, Copy, Clone)]
2336 pub struct kvm_guest_debug {
2337     pub control: u32,
2338     pub pad: u32,
2339     pub arch: kvm_guest_debug_arch,
2340 }
2341 pub const kvm_ioeventfd_flag_nr_datamatch: _bindgen_ty_1 = 0;
2342 pub const kvm_ioeventfd_flag_nr_pio: _bindgen_ty_1 = 1;
2343 pub const kvm_ioeventfd_flag_nr_deassign: _bindgen_ty_1 = 2;
2344 pub const kvm_ioeventfd_flag_nr_virtio_ccw_notify: _bindgen_ty_1 = 3;
2345 pub const kvm_ioeventfd_flag_nr_fast_mmio: _bindgen_ty_1 = 4;
2346 pub const kvm_ioeventfd_flag_nr_max: _bindgen_ty_1 = 5;
2347 pub type _bindgen_ty_1 = ::std::os::raw::c_uint;
2348 #[repr(C)]
2349 #[derive(Debug, Copy, Clone)]
2350 pub struct kvm_ioeventfd {
2351     pub datamatch: u64,
2352     pub addr: u64,
2353     pub len: u32,
2354     pub fd: i32,
2355     pub flags: u32,
2356     pub pad: [u8; 36usize],
2357 }
2358 impl Default for kvm_ioeventfd {
default() -> Self2359     fn default() -> Self {
2360         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2361         unsafe {
2362             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2363             s.assume_init()
2364         }
2365     }
2366 }
2367 #[repr(C)]
2368 #[derive(Debug, Copy, Clone)]
2369 pub struct kvm_enable_cap {
2370     pub cap: u32,
2371     pub flags: u32,
2372     pub args: [u64; 4usize],
2373     pub pad: [u8; 64usize],
2374 }
2375 impl Default for kvm_enable_cap {
default() -> Self2376     fn default() -> Self {
2377         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2378         unsafe {
2379             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2380             s.assume_init()
2381         }
2382     }
2383 }
2384 #[repr(C)]
2385 #[derive(Debug, Copy, Clone)]
2386 pub struct kvm_ppc_pvinfo {
2387     pub flags: u32,
2388     pub hcall: [u32; 4usize],
2389     pub pad: [u8; 108usize],
2390 }
2391 impl Default for kvm_ppc_pvinfo {
default() -> Self2392     fn default() -> Self {
2393         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2394         unsafe {
2395             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2396             s.assume_init()
2397         }
2398     }
2399 }
2400 #[repr(C)]
2401 #[derive(Debug, Default, Copy, Clone)]
2402 pub struct kvm_ppc_one_page_size {
2403     pub page_shift: u32,
2404     pub pte_enc: u32,
2405 }
2406 #[repr(C)]
2407 #[derive(Debug, Default, Copy, Clone)]
2408 pub struct kvm_ppc_one_seg_page_size {
2409     pub page_shift: u32,
2410     pub slb_enc: u32,
2411     pub enc: [kvm_ppc_one_page_size; 8usize],
2412 }
2413 #[repr(C)]
2414 #[derive(Debug, Default, Copy, Clone)]
2415 pub struct kvm_ppc_smmu_info {
2416     pub flags: u64,
2417     pub slb_size: u32,
2418     pub data_keys: u16,
2419     pub instr_keys: u16,
2420     pub sps: [kvm_ppc_one_seg_page_size; 8usize],
2421 }
2422 #[repr(C)]
2423 #[derive(Debug, Default, Copy, Clone)]
2424 pub struct kvm_ppc_resize_hpt {
2425     pub flags: u64,
2426     pub shift: u32,
2427     pub pad: u32,
2428 }
2429 #[repr(C)]
2430 #[derive(Debug, Default, Copy, Clone)]
2431 pub struct kvm_irq_routing_irqchip {
2432     pub irqchip: u32,
2433     pub pin: u32,
2434 }
2435 #[repr(C)]
2436 #[derive(Copy, Clone)]
2437 pub struct kvm_irq_routing_msi {
2438     pub address_lo: u32,
2439     pub address_hi: u32,
2440     pub data: u32,
2441     pub __bindgen_anon_1: kvm_irq_routing_msi__bindgen_ty_1,
2442 }
2443 #[repr(C)]
2444 #[derive(Copy, Clone)]
2445 pub union kvm_irq_routing_msi__bindgen_ty_1 {
2446     pub pad: u32,
2447     pub devid: u32,
2448 }
2449 impl Default for kvm_irq_routing_msi__bindgen_ty_1 {
default() -> Self2450     fn default() -> Self {
2451         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2452         unsafe {
2453             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2454             s.assume_init()
2455         }
2456     }
2457 }
2458 impl Default for kvm_irq_routing_msi {
default() -> Self2459     fn default() -> Self {
2460         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2461         unsafe {
2462             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2463             s.assume_init()
2464         }
2465     }
2466 }
2467 #[repr(C)]
2468 #[derive(Debug, Default, Copy, Clone)]
2469 pub struct kvm_irq_routing_s390_adapter {
2470     pub ind_addr: u64,
2471     pub summary_addr: u64,
2472     pub ind_offset: u64,
2473     pub summary_offset: u32,
2474     pub adapter_id: u32,
2475 }
2476 #[repr(C)]
2477 #[derive(Debug, Default, Copy, Clone)]
2478 pub struct kvm_irq_routing_hv_sint {
2479     pub vcpu: u32,
2480     pub sint: u32,
2481 }
2482 #[repr(C)]
2483 #[derive(Debug, Default, Copy, Clone)]
2484 pub struct kvm_irq_routing_xen_evtchn {
2485     pub port: u32,
2486     pub vcpu: u32,
2487     pub priority: u32,
2488 }
2489 #[repr(C)]
2490 #[derive(Copy, Clone)]
2491 pub struct kvm_irq_routing_entry {
2492     pub gsi: u32,
2493     pub type_: u32,
2494     pub flags: u32,
2495     pub pad: u32,
2496     pub u: kvm_irq_routing_entry__bindgen_ty_1,
2497 }
2498 #[repr(C)]
2499 #[derive(Copy, Clone)]
2500 pub union kvm_irq_routing_entry__bindgen_ty_1 {
2501     pub irqchip: kvm_irq_routing_irqchip,
2502     pub msi: kvm_irq_routing_msi,
2503     pub adapter: kvm_irq_routing_s390_adapter,
2504     pub hv_sint: kvm_irq_routing_hv_sint,
2505     pub xen_evtchn: kvm_irq_routing_xen_evtchn,
2506     pub pad: [u32; 8usize],
2507 }
2508 impl Default for kvm_irq_routing_entry__bindgen_ty_1 {
default() -> Self2509     fn default() -> Self {
2510         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2511         unsafe {
2512             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2513             s.assume_init()
2514         }
2515     }
2516 }
2517 impl Default for kvm_irq_routing_entry {
default() -> Self2518     fn default() -> Self {
2519         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2520         unsafe {
2521             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2522             s.assume_init()
2523         }
2524     }
2525 }
2526 #[repr(C)]
2527 pub struct kvm_irq_routing {
2528     pub nr: u32,
2529     pub flags: u32,
2530     pub entries: __IncompleteArrayField<kvm_irq_routing_entry>,
2531 }
2532 impl Default for kvm_irq_routing {
default() -> Self2533     fn default() -> Self {
2534         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2535         unsafe {
2536             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2537             s.assume_init()
2538         }
2539     }
2540 }
2541 #[repr(C)]
2542 #[derive(Debug, Default, Copy, Clone)]
2543 pub struct kvm_x86_mce {
2544     pub status: u64,
2545     pub addr: u64,
2546     pub misc: u64,
2547     pub mcg_status: u64,
2548     pub bank: u8,
2549     pub pad1: [u8; 7usize],
2550     pub pad2: [u64; 3usize],
2551 }
2552 #[repr(C)]
2553 #[derive(Debug, Default, Copy, Clone)]
2554 pub struct kvm_xen_hvm_config {
2555     pub flags: u32,
2556     pub msr: u32,
2557     pub blob_addr_32: u64,
2558     pub blob_addr_64: u64,
2559     pub blob_size_32: u8,
2560     pub blob_size_64: u8,
2561     pub pad2: [u8; 30usize],
2562 }
2563 #[repr(C)]
2564 #[derive(Debug, Default, Copy, Clone)]
2565 pub struct kvm_irqfd {
2566     pub fd: u32,
2567     pub gsi: u32,
2568     pub flags: u32,
2569     pub resamplefd: u32,
2570     pub pad: [u8; 16usize],
2571 }
2572 #[repr(C)]
2573 #[derive(Debug, Default, Copy, Clone)]
2574 pub struct kvm_clock_data {
2575     pub clock: u64,
2576     pub flags: u32,
2577     pub pad0: u32,
2578     pub realtime: u64,
2579     pub host_tsc: u64,
2580     pub pad: [u32; 4usize],
2581 }
2582 #[repr(C)]
2583 #[derive(Debug, Default, Copy, Clone)]
2584 pub struct kvm_config_tlb {
2585     pub params: u64,
2586     pub array: u64,
2587     pub mmu_type: u32,
2588     pub array_len: u32,
2589 }
2590 #[repr(C)]
2591 #[derive(Debug, Default, Copy, Clone)]
2592 pub struct kvm_dirty_tlb {
2593     pub bitmap: u64,
2594     pub num_dirty: u32,
2595 }
2596 #[repr(C)]
2597 #[derive(Debug, Default)]
2598 pub struct kvm_reg_list {
2599     pub n: u64,
2600     pub reg: __IncompleteArrayField<u64>,
2601 }
2602 #[repr(C)]
2603 #[derive(Debug, Default, Copy, Clone)]
2604 pub struct kvm_one_reg {
2605     pub id: u64,
2606     pub addr: u64,
2607 }
2608 #[repr(C)]
2609 #[derive(Debug, Default, Copy, Clone)]
2610 pub struct kvm_msi {
2611     pub address_lo: u32,
2612     pub address_hi: u32,
2613     pub data: u32,
2614     pub flags: u32,
2615     pub devid: u32,
2616     pub pad: [u8; 12usize],
2617 }
2618 #[repr(C)]
2619 #[derive(Debug, Default, Copy, Clone)]
2620 pub struct kvm_arm_device_addr {
2621     pub id: u64,
2622     pub addr: u64,
2623 }
2624 #[repr(C)]
2625 #[derive(Debug, Default, Copy, Clone)]
2626 pub struct kvm_create_device {
2627     pub type_: u32,
2628     pub fd: u32,
2629     pub flags: u32,
2630 }
2631 #[repr(C)]
2632 #[derive(Debug, Default, Copy, Clone)]
2633 pub struct kvm_device_attr {
2634     pub flags: u32,
2635     pub group: u32,
2636     pub attr: u64,
2637     pub addr: u64,
2638 }
2639 pub const kvm_device_type_KVM_DEV_TYPE_FSL_MPIC_20: kvm_device_type = 1;
2640 pub const kvm_device_type_KVM_DEV_TYPE_FSL_MPIC_42: kvm_device_type = 2;
2641 pub const kvm_device_type_KVM_DEV_TYPE_XICS: kvm_device_type = 3;
2642 pub const kvm_device_type_KVM_DEV_TYPE_VFIO: kvm_device_type = 4;
2643 pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_V2: kvm_device_type = 5;
2644 pub const kvm_device_type_KVM_DEV_TYPE_FLIC: kvm_device_type = 6;
2645 pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_V3: kvm_device_type = 7;
2646 pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_ITS: kvm_device_type = 8;
2647 pub const kvm_device_type_KVM_DEV_TYPE_XIVE: kvm_device_type = 9;
2648 pub const kvm_device_type_KVM_DEV_TYPE_ARM_PV_TIME: kvm_device_type = 10;
2649 pub const kvm_device_type_KVM_DEV_TYPE_MAX: kvm_device_type = 11;
2650 pub type kvm_device_type = ::std::os::raw::c_uint;
2651 #[repr(C)]
2652 #[derive(Debug, Default, Copy, Clone)]
2653 pub struct kvm_vfio_spapr_tce {
2654     pub groupfd: i32,
2655     pub tablefd: i32,
2656 }
2657 #[repr(C)]
2658 #[derive(Debug, Default, Copy, Clone)]
2659 pub struct kvm_s390_ucas_mapping {
2660     pub user_addr: u64,
2661     pub vcpu_addr: u64,
2662     pub length: u64,
2663 }
2664 #[repr(C)]
2665 #[derive(Debug, Default, Copy, Clone)]
2666 pub struct kvm_enc_region {
2667     pub addr: u64,
2668     pub size: u64,
2669 }
2670 #[repr(C)]
2671 #[derive(Debug, Default, Copy, Clone)]
2672 pub struct kvm_s390_pv_sec_parm {
2673     pub origin: u64,
2674     pub length: u64,
2675 }
2676 #[repr(C)]
2677 #[derive(Debug, Default, Copy, Clone)]
2678 pub struct kvm_s390_pv_unp {
2679     pub addr: u64,
2680     pub size: u64,
2681     pub tweak: u64,
2682 }
2683 pub const pv_cmd_dmp_id_KVM_PV_DUMP_INIT: pv_cmd_dmp_id = 0;
2684 pub const pv_cmd_dmp_id_KVM_PV_DUMP_CONFIG_STOR_STATE: pv_cmd_dmp_id = 1;
2685 pub const pv_cmd_dmp_id_KVM_PV_DUMP_COMPLETE: pv_cmd_dmp_id = 2;
2686 pub const pv_cmd_dmp_id_KVM_PV_DUMP_CPU: pv_cmd_dmp_id = 3;
2687 pub type pv_cmd_dmp_id = ::std::os::raw::c_uint;
2688 #[repr(C)]
2689 #[derive(Debug, Default, Copy, Clone)]
2690 pub struct kvm_s390_pv_dmp {
2691     pub subcmd: u64,
2692     pub buff_addr: u64,
2693     pub buff_len: u64,
2694     pub gaddr: u64,
2695     pub reserved: [u64; 4usize],
2696 }
2697 pub const pv_cmd_info_id_KVM_PV_INFO_VM: pv_cmd_info_id = 0;
2698 pub const pv_cmd_info_id_KVM_PV_INFO_DUMP: pv_cmd_info_id = 1;
2699 pub type pv_cmd_info_id = ::std::os::raw::c_uint;
2700 #[repr(C)]
2701 #[derive(Debug, Default, Copy, Clone)]
2702 pub struct kvm_s390_pv_info_dump {
2703     pub dump_cpu_buffer_len: u64,
2704     pub dump_config_mem_buffer_per_1m: u64,
2705     pub dump_config_finalize_len: u64,
2706 }
2707 #[repr(C)]
2708 #[derive(Debug, Default, Copy, Clone)]
2709 pub struct kvm_s390_pv_info_vm {
2710     pub inst_calls_list: [u64; 4usize],
2711     pub max_cpus: u64,
2712     pub max_guests: u64,
2713     pub max_guest_addr: u64,
2714     pub feature_indication: u64,
2715 }
2716 #[repr(C)]
2717 #[derive(Debug, Default, Copy, Clone)]
2718 pub struct kvm_s390_pv_info_header {
2719     pub id: u32,
2720     pub len_max: u32,
2721     pub len_written: u32,
2722     pub reserved: u32,
2723 }
2724 #[repr(C)]
2725 #[derive(Copy, Clone)]
2726 pub struct kvm_s390_pv_info {
2727     pub header: kvm_s390_pv_info_header,
2728     pub __bindgen_anon_1: kvm_s390_pv_info__bindgen_ty_1,
2729 }
2730 #[repr(C)]
2731 #[derive(Copy, Clone)]
2732 pub union kvm_s390_pv_info__bindgen_ty_1 {
2733     pub dump: kvm_s390_pv_info_dump,
2734     pub vm: kvm_s390_pv_info_vm,
2735 }
2736 impl Default for kvm_s390_pv_info__bindgen_ty_1 {
default() -> Self2737     fn default() -> Self {
2738         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2739         unsafe {
2740             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2741             s.assume_init()
2742         }
2743     }
2744 }
2745 impl Default for kvm_s390_pv_info {
default() -> Self2746     fn default() -> Self {
2747         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2748         unsafe {
2749             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2750             s.assume_init()
2751         }
2752     }
2753 }
2754 pub const pv_cmd_id_KVM_PV_ENABLE: pv_cmd_id = 0;
2755 pub const pv_cmd_id_KVM_PV_DISABLE: pv_cmd_id = 1;
2756 pub const pv_cmd_id_KVM_PV_SET_SEC_PARMS: pv_cmd_id = 2;
2757 pub const pv_cmd_id_KVM_PV_UNPACK: pv_cmd_id = 3;
2758 pub const pv_cmd_id_KVM_PV_VERIFY: pv_cmd_id = 4;
2759 pub const pv_cmd_id_KVM_PV_PREP_RESET: pv_cmd_id = 5;
2760 pub const pv_cmd_id_KVM_PV_UNSHARE_ALL: pv_cmd_id = 6;
2761 pub const pv_cmd_id_KVM_PV_INFO: pv_cmd_id = 7;
2762 pub const pv_cmd_id_KVM_PV_DUMP: pv_cmd_id = 8;
2763 pub type pv_cmd_id = ::std::os::raw::c_uint;
2764 #[repr(C)]
2765 #[derive(Debug, Default, Copy, Clone)]
2766 pub struct kvm_pv_cmd {
2767     pub cmd: u32,
2768     pub rc: u16,
2769     pub rrc: u16,
2770     pub data: u64,
2771     pub flags: u32,
2772     pub reserved: [u32; 3usize],
2773 }
2774 #[repr(C)]
2775 #[derive(Copy, Clone)]
2776 pub struct kvm_xen_hvm_attr {
2777     pub type_: u16,
2778     pub pad: [u16; 3usize],
2779     pub u: kvm_xen_hvm_attr__bindgen_ty_1,
2780 }
2781 #[repr(C)]
2782 #[derive(Copy, Clone)]
2783 pub union kvm_xen_hvm_attr__bindgen_ty_1 {
2784     pub long_mode: u8,
2785     pub vector: u8,
2786     pub shared_info: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_1,
2787     pub evtchn: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2,
2788     pub xen_version: u32,
2789     pub pad: [u64; 8usize],
2790 }
2791 #[repr(C)]
2792 #[derive(Debug, Default, Copy, Clone)]
2793 pub struct kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_1 {
2794     pub gfn: u64,
2795 }
2796 #[repr(C)]
2797 #[derive(Copy, Clone)]
2798 pub struct kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2 {
2799     pub send_port: u32,
2800     pub type_: u32,
2801     pub flags: u32,
2802     pub deliver: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1,
2803 }
2804 #[repr(C)]
2805 #[derive(Copy, Clone)]
2806 pub union kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 {
2807     pub port: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1,
2808     pub eventfd: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_2,
2809     pub padding: [u32; 4usize],
2810 }
2811 #[repr(C)]
2812 #[derive(Debug, Default, Copy, Clone)]
2813 pub struct kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1 {
2814     pub port: u32,
2815     pub vcpu: u32,
2816     pub priority: u32,
2817 }
2818 #[repr(C)]
2819 #[derive(Debug, Default, Copy, Clone)]
2820 pub struct kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_2 {
2821     pub port: u32,
2822     pub fd: i32,
2823 }
2824 impl Default for kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 {
default() -> Self2825     fn default() -> Self {
2826         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2827         unsafe {
2828             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2829             s.assume_init()
2830         }
2831     }
2832 }
2833 impl Default for kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2 {
default() -> Self2834     fn default() -> Self {
2835         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2836         unsafe {
2837             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2838             s.assume_init()
2839         }
2840     }
2841 }
2842 impl Default for kvm_xen_hvm_attr__bindgen_ty_1 {
default() -> Self2843     fn default() -> Self {
2844         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2845         unsafe {
2846             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2847             s.assume_init()
2848         }
2849     }
2850 }
2851 impl Default for kvm_xen_hvm_attr {
default() -> Self2852     fn default() -> Self {
2853         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2854         unsafe {
2855             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2856             s.assume_init()
2857         }
2858     }
2859 }
2860 #[repr(C)]
2861 #[derive(Copy, Clone)]
2862 pub struct kvm_xen_vcpu_attr {
2863     pub type_: u16,
2864     pub pad: [u16; 3usize],
2865     pub u: kvm_xen_vcpu_attr__bindgen_ty_1,
2866 }
2867 #[repr(C)]
2868 #[derive(Copy, Clone)]
2869 pub union kvm_xen_vcpu_attr__bindgen_ty_1 {
2870     pub gpa: u64,
2871     pub pad: [u64; 8usize],
2872     pub runstate: kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_1,
2873     pub vcpu_id: u32,
2874     pub timer: kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_2,
2875     pub vector: u8,
2876 }
2877 #[repr(C)]
2878 #[derive(Debug, Default, Copy, Clone)]
2879 pub struct kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_1 {
2880     pub state: u64,
2881     pub state_entry_time: u64,
2882     pub time_running: u64,
2883     pub time_runnable: u64,
2884     pub time_blocked: u64,
2885     pub time_offline: u64,
2886 }
2887 #[repr(C)]
2888 #[derive(Debug, Default, Copy, Clone)]
2889 pub struct kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_2 {
2890     pub port: u32,
2891     pub priority: u32,
2892     pub expires_ns: u64,
2893 }
2894 impl Default for kvm_xen_vcpu_attr__bindgen_ty_1 {
default() -> Self2895     fn default() -> Self {
2896         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2897         unsafe {
2898             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2899             s.assume_init()
2900         }
2901     }
2902 }
2903 impl Default for kvm_xen_vcpu_attr {
default() -> Self2904     fn default() -> Self {
2905         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2906         unsafe {
2907             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2908             s.assume_init()
2909         }
2910     }
2911 }
2912 pub const sev_cmd_id_KVM_SEV_INIT: sev_cmd_id = 0;
2913 pub const sev_cmd_id_KVM_SEV_ES_INIT: sev_cmd_id = 1;
2914 pub const sev_cmd_id_KVM_SEV_LAUNCH_START: sev_cmd_id = 2;
2915 pub const sev_cmd_id_KVM_SEV_LAUNCH_UPDATE_DATA: sev_cmd_id = 3;
2916 pub const sev_cmd_id_KVM_SEV_LAUNCH_UPDATE_VMSA: sev_cmd_id = 4;
2917 pub const sev_cmd_id_KVM_SEV_LAUNCH_SECRET: sev_cmd_id = 5;
2918 pub const sev_cmd_id_KVM_SEV_LAUNCH_MEASURE: sev_cmd_id = 6;
2919 pub const sev_cmd_id_KVM_SEV_LAUNCH_FINISH: sev_cmd_id = 7;
2920 pub const sev_cmd_id_KVM_SEV_SEND_START: sev_cmd_id = 8;
2921 pub const sev_cmd_id_KVM_SEV_SEND_UPDATE_DATA: sev_cmd_id = 9;
2922 pub const sev_cmd_id_KVM_SEV_SEND_UPDATE_VMSA: sev_cmd_id = 10;
2923 pub const sev_cmd_id_KVM_SEV_SEND_FINISH: sev_cmd_id = 11;
2924 pub const sev_cmd_id_KVM_SEV_RECEIVE_START: sev_cmd_id = 12;
2925 pub const sev_cmd_id_KVM_SEV_RECEIVE_UPDATE_DATA: sev_cmd_id = 13;
2926 pub const sev_cmd_id_KVM_SEV_RECEIVE_UPDATE_VMSA: sev_cmd_id = 14;
2927 pub const sev_cmd_id_KVM_SEV_RECEIVE_FINISH: sev_cmd_id = 15;
2928 pub const sev_cmd_id_KVM_SEV_GUEST_STATUS: sev_cmd_id = 16;
2929 pub const sev_cmd_id_KVM_SEV_DBG_DECRYPT: sev_cmd_id = 17;
2930 pub const sev_cmd_id_KVM_SEV_DBG_ENCRYPT: sev_cmd_id = 18;
2931 pub const sev_cmd_id_KVM_SEV_CERT_EXPORT: sev_cmd_id = 19;
2932 pub const sev_cmd_id_KVM_SEV_GET_ATTESTATION_REPORT: sev_cmd_id = 20;
2933 pub const sev_cmd_id_KVM_SEV_SEND_CANCEL: sev_cmd_id = 21;
2934 pub const sev_cmd_id_KVM_SEV_NR_MAX: sev_cmd_id = 22;
2935 pub type sev_cmd_id = ::std::os::raw::c_uint;
2936 #[repr(C)]
2937 #[derive(Debug, Default, Copy, Clone)]
2938 pub struct kvm_sev_cmd {
2939     pub id: u32,
2940     pub data: u64,
2941     pub error: u32,
2942     pub sev_fd: u32,
2943 }
2944 #[repr(C)]
2945 #[derive(Debug, Default, Copy, Clone)]
2946 pub struct kvm_sev_launch_start {
2947     pub handle: u32,
2948     pub policy: u32,
2949     pub dh_uaddr: u64,
2950     pub dh_len: u32,
2951     pub session_uaddr: u64,
2952     pub session_len: u32,
2953 }
2954 #[repr(C)]
2955 #[derive(Debug, Default, Copy, Clone)]
2956 pub struct kvm_sev_launch_update_data {
2957     pub uaddr: u64,
2958     pub len: u32,
2959 }
2960 #[repr(C)]
2961 #[derive(Debug, Default, Copy, Clone)]
2962 pub struct kvm_sev_launch_secret {
2963     pub hdr_uaddr: u64,
2964     pub hdr_len: u32,
2965     pub guest_uaddr: u64,
2966     pub guest_len: u32,
2967     pub trans_uaddr: u64,
2968     pub trans_len: u32,
2969 }
2970 #[repr(C)]
2971 #[derive(Debug, Default, Copy, Clone)]
2972 pub struct kvm_sev_launch_measure {
2973     pub uaddr: u64,
2974     pub len: u32,
2975 }
2976 #[repr(C)]
2977 #[derive(Debug, Default, Copy, Clone)]
2978 pub struct kvm_sev_guest_status {
2979     pub handle: u32,
2980     pub policy: u32,
2981     pub state: u32,
2982 }
2983 #[repr(C)]
2984 #[derive(Debug, Default, Copy, Clone)]
2985 pub struct kvm_sev_dbg {
2986     pub src_uaddr: u64,
2987     pub dst_uaddr: u64,
2988     pub len: u32,
2989 }
2990 #[repr(C)]
2991 #[derive(Debug, Default, Copy, Clone)]
2992 pub struct kvm_sev_attestation_report {
2993     pub mnonce: [u8; 16usize],
2994     pub uaddr: u64,
2995     pub len: u32,
2996 }
2997 #[repr(C)]
2998 #[derive(Debug, Default, Copy, Clone)]
2999 pub struct kvm_sev_send_start {
3000     pub policy: u32,
3001     pub pdh_cert_uaddr: u64,
3002     pub pdh_cert_len: u32,
3003     pub plat_certs_uaddr: u64,
3004     pub plat_certs_len: u32,
3005     pub amd_certs_uaddr: u64,
3006     pub amd_certs_len: u32,
3007     pub session_uaddr: u64,
3008     pub session_len: u32,
3009 }
3010 #[repr(C)]
3011 #[derive(Debug, Default, Copy, Clone)]
3012 pub struct kvm_sev_send_update_data {
3013     pub hdr_uaddr: u64,
3014     pub hdr_len: u32,
3015     pub guest_uaddr: u64,
3016     pub guest_len: u32,
3017     pub trans_uaddr: u64,
3018     pub trans_len: u32,
3019 }
3020 #[repr(C)]
3021 #[derive(Debug, Default, Copy, Clone)]
3022 pub struct kvm_sev_receive_start {
3023     pub handle: u32,
3024     pub policy: u32,
3025     pub pdh_uaddr: u64,
3026     pub pdh_len: u32,
3027     pub session_uaddr: u64,
3028     pub session_len: u32,
3029 }
3030 #[repr(C)]
3031 #[derive(Debug, Default, Copy, Clone)]
3032 pub struct kvm_sev_receive_update_data {
3033     pub hdr_uaddr: u64,
3034     pub hdr_len: u32,
3035     pub guest_uaddr: u64,
3036     pub guest_len: u32,
3037     pub trans_uaddr: u64,
3038     pub trans_len: u32,
3039 }
3040 #[repr(C)]
3041 #[derive(Copy, Clone)]
3042 pub struct kvm_assigned_pci_dev {
3043     pub assigned_dev_id: u32,
3044     pub busnr: u32,
3045     pub devfn: u32,
3046     pub flags: u32,
3047     pub segnr: u32,
3048     pub __bindgen_anon_1: kvm_assigned_pci_dev__bindgen_ty_1,
3049 }
3050 #[repr(C)]
3051 #[derive(Copy, Clone)]
3052 pub union kvm_assigned_pci_dev__bindgen_ty_1 {
3053     pub reserved: [u32; 11usize],
3054 }
3055 impl Default for kvm_assigned_pci_dev__bindgen_ty_1 {
default() -> Self3056     fn default() -> Self {
3057         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3058         unsafe {
3059             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3060             s.assume_init()
3061         }
3062     }
3063 }
3064 impl Default for kvm_assigned_pci_dev {
default() -> Self3065     fn default() -> Self {
3066         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3067         unsafe {
3068             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3069             s.assume_init()
3070         }
3071     }
3072 }
3073 #[repr(C)]
3074 #[derive(Copy, Clone)]
3075 pub struct kvm_assigned_irq {
3076     pub assigned_dev_id: u32,
3077     pub host_irq: u32,
3078     pub guest_irq: u32,
3079     pub flags: u32,
3080     pub __bindgen_anon_1: kvm_assigned_irq__bindgen_ty_1,
3081 }
3082 #[repr(C)]
3083 #[derive(Copy, Clone)]
3084 pub union kvm_assigned_irq__bindgen_ty_1 {
3085     pub reserved: [u32; 12usize],
3086 }
3087 impl Default for kvm_assigned_irq__bindgen_ty_1 {
default() -> Self3088     fn default() -> Self {
3089         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3090         unsafe {
3091             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3092             s.assume_init()
3093         }
3094     }
3095 }
3096 impl Default for kvm_assigned_irq {
default() -> Self3097     fn default() -> Self {
3098         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3099         unsafe {
3100             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3101             s.assume_init()
3102         }
3103     }
3104 }
3105 #[repr(C)]
3106 #[derive(Debug, Default, Copy, Clone)]
3107 pub struct kvm_assigned_msix_nr {
3108     pub assigned_dev_id: u32,
3109     pub entry_nr: u16,
3110     pub padding: u16,
3111 }
3112 #[repr(C)]
3113 #[derive(Debug, Default, Copy, Clone)]
3114 pub struct kvm_assigned_msix_entry {
3115     pub assigned_dev_id: u32,
3116     pub gsi: u32,
3117     pub entry: u16,
3118     pub padding: [u16; 3usize],
3119 }
3120 #[repr(C)]
3121 #[derive(Debug, Default, Copy, Clone)]
3122 pub struct kvm_hyperv_eventfd {
3123     pub conn_id: u32,
3124     pub fd: i32,
3125     pub flags: u32,
3126     pub padding: [u32; 3usize],
3127 }
3128 #[repr(C)]
3129 #[derive(Debug, Default, Copy, Clone)]
3130 pub struct kvm_dirty_gfn {
3131     pub flags: u32,
3132     pub slot: u32,
3133     pub offset: u64,
3134 }
3135 #[repr(C)]
3136 #[derive(Debug, Default, Copy, Clone)]
3137 pub struct kvm_stats_header {
3138     pub flags: u32,
3139     pub name_size: u32,
3140     pub num_desc: u32,
3141     pub id_offset: u32,
3142     pub desc_offset: u32,
3143     pub data_offset: u32,
3144 }
3145 #[repr(C)]
3146 #[derive(Debug, Default)]
3147 pub struct kvm_stats_desc {
3148     pub flags: u32,
3149     pub exponent: i16,
3150     pub size: u16,
3151     pub offset: u32,
3152     pub bucket_size: u32,
3153     pub name: __IncompleteArrayField<::std::os::raw::c_char>,
3154 }
3155 #[repr(C)]
3156 #[derive(Copy, Clone)]
3157 pub struct kvm_s390_zpci_op {
3158     pub fh: u32,
3159     pub op: u8,
3160     pub pad: [u8; 3usize],
3161     pub u: kvm_s390_zpci_op__bindgen_ty_1,
3162 }
3163 #[repr(C)]
3164 #[derive(Copy, Clone)]
3165 pub union kvm_s390_zpci_op__bindgen_ty_1 {
3166     pub reg_aen: kvm_s390_zpci_op__bindgen_ty_1__bindgen_ty_1,
3167     pub reserved: [u64; 8usize],
3168 }
3169 #[repr(C)]
3170 #[derive(Debug, Default, Copy, Clone)]
3171 pub struct kvm_s390_zpci_op__bindgen_ty_1__bindgen_ty_1 {
3172     pub ibv: u64,
3173     pub sb: u64,
3174     pub flags: u32,
3175     pub noi: u32,
3176     pub isc: u8,
3177     pub sbo: u8,
3178     pub pad: u16,
3179 }
3180 impl Default for kvm_s390_zpci_op__bindgen_ty_1 {
default() -> Self3181     fn default() -> Self {
3182         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3183         unsafe {
3184             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3185             s.assume_init()
3186         }
3187     }
3188 }
3189 impl Default for kvm_s390_zpci_op {
default() -> Self3190     fn default() -> Self {
3191         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3192         unsafe {
3193             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3194             s.assume_init()
3195         }
3196     }
3197 }
3198