• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* automatically generated by tools/bindgen-all-the-things */
2 
3 #![allow(non_upper_case_globals)]
4 #![allow(non_camel_case_types)]
5 #![allow(non_snake_case)]
6 #![allow(dead_code)]
7 
8 // Added by kvm_sys/bindgen.sh
9 pub const KVM_SYSTEM_EVENT_S2IDLE: u32 = 4;
10 pub const KVM_SYSTEM_EVENT_RESET_FLAG_PSCI_RESET2: u64 = 0x1;
11 // TODO(tjeznach): Remove this when reporting KVM_IOAPIC_NUM_PINS is no longer required.
12 pub const KVM_CAP_IOAPIC_NUM_PINS: u32 = 8191;
13 // TODO(qwandor): Update this once the pKVM patches are merged upstream with a stable capability ID.
14 pub const KVM_CAP_ARM_PROTECTED_VM: u32 = 0xffbadab1;
15 pub const KVM_CAP_ARM_PROTECTED_VM_FLAGS_SET_FW_IPA: u32 = 0;
16 pub const KVM_CAP_ARM_PROTECTED_VM_FLAGS_INFO: u32 = 1;
17 pub const KVM_VM_TYPE_ARM_PROTECTED: u32 = 0x80000000;
18 
19 #[repr(C)]
20 #[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
21 pub struct __BindgenBitfieldUnit<Storage> {
22     storage: Storage,
23 }
24 impl<Storage> __BindgenBitfieldUnit<Storage> {
25     #[inline]
new(storage: Storage) -> Self26     pub const fn new(storage: Storage) -> Self {
27         Self { storage }
28     }
29 }
30 impl<Storage> __BindgenBitfieldUnit<Storage>
31 where
32     Storage: AsRef<[u8]> + AsMut<[u8]>,
33 {
34     #[inline]
get_bit(&self, index: usize) -> bool35     pub fn get_bit(&self, index: usize) -> bool {
36         debug_assert!(index / 8 < self.storage.as_ref().len());
37         let byte_index = index / 8;
38         let byte = self.storage.as_ref()[byte_index];
39         let bit_index = if cfg!(target_endian = "big") {
40             7 - (index % 8)
41         } else {
42             index % 8
43         };
44         let mask = 1 << bit_index;
45         byte & mask == mask
46     }
47     #[inline]
set_bit(&mut self, index: usize, val: bool)48     pub fn set_bit(&mut self, index: usize, val: bool) {
49         debug_assert!(index / 8 < self.storage.as_ref().len());
50         let byte_index = index / 8;
51         let byte = &mut self.storage.as_mut()[byte_index];
52         let bit_index = if cfg!(target_endian = "big") {
53             7 - (index % 8)
54         } else {
55             index % 8
56         };
57         let mask = 1 << bit_index;
58         if val {
59             *byte |= mask;
60         } else {
61             *byte &= !mask;
62         }
63     }
64     #[inline]
get(&self, bit_offset: usize, bit_width: u8) -> u6465     pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
66         debug_assert!(bit_width <= 64);
67         debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
68         debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
69         let mut val = 0;
70         for i in 0..(bit_width as usize) {
71             if self.get_bit(i + bit_offset) {
72                 let index = if cfg!(target_endian = "big") {
73                     bit_width as usize - 1 - i
74                 } else {
75                     i
76                 };
77                 val |= 1 << index;
78             }
79         }
80         val
81     }
82     #[inline]
set(&mut self, bit_offset: usize, bit_width: u8, val: u64)83     pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
84         debug_assert!(bit_width <= 64);
85         debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
86         debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
87         for i in 0..(bit_width as usize) {
88             let mask = 1 << i;
89             let val_bit_is_set = val & mask == mask;
90             let index = if cfg!(target_endian = "big") {
91                 bit_width as usize - 1 - i
92             } else {
93                 i
94             };
95             self.set_bit(index + bit_offset, val_bit_is_set);
96         }
97     }
98 }
99 #[repr(C)]
100 #[derive(Default)]
101 pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]);
102 impl<T> __IncompleteArrayField<T> {
103     #[inline]
new() -> Self104     pub const fn new() -> Self {
105         __IncompleteArrayField(::std::marker::PhantomData, [])
106     }
107     #[inline]
as_ptr(&self) -> *const T108     pub fn as_ptr(&self) -> *const T {
109         self as *const _ as *const T
110     }
111     #[inline]
as_mut_ptr(&mut self) -> *mut T112     pub fn as_mut_ptr(&mut self) -> *mut T {
113         self as *mut _ as *mut T
114     }
115     #[inline]
as_slice(&self, len: usize) -> &[T]116     pub unsafe fn as_slice(&self, len: usize) -> &[T] {
117         ::std::slice::from_raw_parts(self.as_ptr(), len)
118     }
119     #[inline]
as_mut_slice(&mut self, len: usize) -> &mut [T]120     pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
121         ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
122     }
123 }
124 impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result125     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
126         fmt.write_str("__IncompleteArrayField")
127     }
128 }
129 #[repr(C)]
130 pub struct __BindgenUnionField<T>(::std::marker::PhantomData<T>);
131 impl<T> __BindgenUnionField<T> {
132     #[inline]
new() -> Self133     pub const fn new() -> Self {
134         __BindgenUnionField(::std::marker::PhantomData)
135     }
136     #[inline]
as_ref(&self) -> &T137     pub unsafe fn as_ref(&self) -> &T {
138         ::std::mem::transmute(self)
139     }
140     #[inline]
as_mut(&mut self) -> &mut T141     pub unsafe fn as_mut(&mut self) -> &mut T {
142         ::std::mem::transmute(self)
143     }
144 }
145 impl<T> ::std::default::Default for __BindgenUnionField<T> {
146     #[inline]
default() -> Self147     fn default() -> Self {
148         Self::new()
149     }
150 }
151 impl<T> ::std::clone::Clone for __BindgenUnionField<T> {
152     #[inline]
clone(&self) -> Self153     fn clone(&self) -> Self {
154         Self::new()
155     }
156 }
157 impl<T> ::std::marker::Copy for __BindgenUnionField<T> {}
158 impl<T> ::std::fmt::Debug for __BindgenUnionField<T> {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result159     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
160         fmt.write_str("__BindgenUnionField")
161     }
162 }
163 impl<T> ::std::hash::Hash for __BindgenUnionField<T> {
hash<H: ::std::hash::Hasher>(&self, _state: &mut H)164     fn hash<H: ::std::hash::Hasher>(&self, _state: &mut H) {}
165 }
166 impl<T> ::std::cmp::PartialEq for __BindgenUnionField<T> {
eq(&self, _other: &__BindgenUnionField<T>) -> bool167     fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
168         true
169     }
170 }
171 impl<T> ::std::cmp::Eq for __BindgenUnionField<T> {}
172 pub const KVM_PIO_PAGE_OFFSET: u32 = 1;
173 pub const KVM_COALESCED_MMIO_PAGE_OFFSET: u32 = 2;
174 pub const DE_VECTOR: u32 = 0;
175 pub const DB_VECTOR: u32 = 1;
176 pub const BP_VECTOR: u32 = 3;
177 pub const OF_VECTOR: u32 = 4;
178 pub const BR_VECTOR: u32 = 5;
179 pub const UD_VECTOR: u32 = 6;
180 pub const NM_VECTOR: u32 = 7;
181 pub const DF_VECTOR: u32 = 8;
182 pub const TS_VECTOR: u32 = 10;
183 pub const NP_VECTOR: u32 = 11;
184 pub const SS_VECTOR: u32 = 12;
185 pub const GP_VECTOR: u32 = 13;
186 pub const PF_VECTOR: u32 = 14;
187 pub const MF_VECTOR: u32 = 16;
188 pub const AC_VECTOR: u32 = 17;
189 pub const MC_VECTOR: u32 = 18;
190 pub const XM_VECTOR: u32 = 19;
191 pub const VE_VECTOR: u32 = 20;
192 pub const KVM_NR_INTERRUPTS: u32 = 256;
193 pub const KVM_IOAPIC_NUM_PINS: u32 = 24;
194 pub const KVM_IRQCHIP_PIC_MASTER: u32 = 0;
195 pub const KVM_IRQCHIP_PIC_SLAVE: u32 = 1;
196 pub const KVM_IRQCHIP_IOAPIC: u32 = 2;
197 pub const KVM_NR_IRQCHIPS: u32 = 3;
198 pub const KVM_RUN_X86_SMM: u32 = 1;
199 pub const KVM_APIC_REG_SIZE: u32 = 1024;
200 pub const KVM_MSR_FILTER_MAX_BITMAP_SIZE: u32 = 1536;
201 pub const KVM_MSR_FILTER_READ: u32 = 1;
202 pub const KVM_MSR_FILTER_WRITE: u32 = 2;
203 pub const KVM_MSR_FILTER_MAX_RANGES: u32 = 16;
204 pub const KVM_MSR_FILTER_DEFAULT_ALLOW: u32 = 0;
205 pub const KVM_MSR_FILTER_DEFAULT_DENY: u32 = 1;
206 pub const KVM_CPUID_FLAG_SIGNIFCANT_INDEX: u32 = 1;
207 pub const KVM_CPUID_FLAG_STATEFUL_FUNC: u32 = 2;
208 pub const KVM_CPUID_FLAG_STATE_READ_NEXT: u32 = 4;
209 pub const KVM_GUESTDBG_USE_SW_BP: u32 = 65536;
210 pub const KVM_GUESTDBG_USE_HW_BP: u32 = 131072;
211 pub const KVM_GUESTDBG_INJECT_DB: u32 = 262144;
212 pub const KVM_GUESTDBG_INJECT_BP: u32 = 524288;
213 pub const KVM_PIT_FLAGS_HPET_LEGACY: u32 = 1;
214 pub const KVM_VCPUEVENT_VALID_NMI_PENDING: u32 = 1;
215 pub const KVM_VCPUEVENT_VALID_SIPI_VECTOR: u32 = 2;
216 pub const KVM_VCPUEVENT_VALID_SHADOW: u32 = 4;
217 pub const KVM_VCPUEVENT_VALID_SMM: u32 = 8;
218 pub const KVM_VCPUEVENT_VALID_PAYLOAD: u32 = 16;
219 pub const KVM_X86_SHADOW_INT_MOV_SS: u32 = 1;
220 pub const KVM_X86_SHADOW_INT_STI: u32 = 2;
221 pub const KVM_MAX_XCRS: u32 = 16;
222 pub const KVM_SYNC_X86_REGS: u32 = 1;
223 pub const KVM_SYNC_X86_SREGS: u32 = 2;
224 pub const KVM_SYNC_X86_EVENTS: u32 = 4;
225 pub const KVM_SYNC_X86_VALID_FIELDS: u32 = 7;
226 pub const KVM_X86_QUIRK_LINT0_REENABLED: u32 = 1;
227 pub const KVM_X86_QUIRK_CD_NW_CLEARED: u32 = 2;
228 pub const KVM_X86_QUIRK_LAPIC_MMIO_HOLE: u32 = 4;
229 pub const KVM_X86_QUIRK_OUT_7E_INC_RIP: u32 = 8;
230 pub const KVM_X86_QUIRK_MISC_ENABLE_NO_MWAIT: u32 = 16;
231 pub const KVM_STATE_NESTED_FORMAT_VMX: u32 = 0;
232 pub const KVM_STATE_NESTED_FORMAT_SVM: u32 = 1;
233 pub const KVM_STATE_NESTED_GUEST_MODE: u32 = 1;
234 pub const KVM_STATE_NESTED_RUN_PENDING: u32 = 2;
235 pub const KVM_STATE_NESTED_EVMCS: u32 = 4;
236 pub const KVM_STATE_NESTED_MTF_PENDING: u32 = 8;
237 pub const KVM_STATE_NESTED_GIF_SET: u32 = 256;
238 pub const KVM_STATE_NESTED_SMM_GUEST_MODE: u32 = 1;
239 pub const KVM_STATE_NESTED_SMM_VMXON: u32 = 2;
240 pub const KVM_STATE_NESTED_VMX_VMCS_SIZE: u32 = 4096;
241 pub const KVM_STATE_NESTED_SVM_VMCB_SIZE: u32 = 4096;
242 pub const KVM_STATE_VMX_PREEMPTION_TIMER_DEADLINE: u32 = 1;
243 pub const KVM_PMU_EVENT_ALLOW: u32 = 0;
244 pub const KVM_PMU_EVENT_DENY: u32 = 1;
245 pub const KVM_API_VERSION: u32 = 12;
246 pub const KVM_TRC_SHIFT: u32 = 16;
247 pub const KVM_TRC_ENTRYEXIT: u32 = 65536;
248 pub const KVM_TRC_HANDLER: u32 = 131072;
249 pub const KVM_TRC_VMENTRY: u32 = 65537;
250 pub const KVM_TRC_VMEXIT: u32 = 65538;
251 pub const KVM_TRC_PAGE_FAULT: u32 = 131073;
252 pub const KVM_TRC_HEAD_SIZE: u32 = 12;
253 pub const KVM_TRC_CYCLE_SIZE: u32 = 8;
254 pub const KVM_TRC_EXTRA_MAX: u32 = 7;
255 pub const KVM_TRC_INJ_VIRQ: u32 = 131074;
256 pub const KVM_TRC_REDELIVER_EVT: u32 = 131075;
257 pub const KVM_TRC_PEND_INTR: u32 = 131076;
258 pub const KVM_TRC_IO_READ: u32 = 131077;
259 pub const KVM_TRC_IO_WRITE: u32 = 131078;
260 pub const KVM_TRC_CR_READ: u32 = 131079;
261 pub const KVM_TRC_CR_WRITE: u32 = 131080;
262 pub const KVM_TRC_DR_READ: u32 = 131081;
263 pub const KVM_TRC_DR_WRITE: u32 = 131082;
264 pub const KVM_TRC_MSR_READ: u32 = 131083;
265 pub const KVM_TRC_MSR_WRITE: u32 = 131084;
266 pub const KVM_TRC_CPUID: u32 = 131085;
267 pub const KVM_TRC_INTR: u32 = 131086;
268 pub const KVM_TRC_NMI: u32 = 131087;
269 pub const KVM_TRC_VMMCALL: u32 = 131088;
270 pub const KVM_TRC_HLT: u32 = 131089;
271 pub const KVM_TRC_CLTS: u32 = 131090;
272 pub const KVM_TRC_LMSW: u32 = 131091;
273 pub const KVM_TRC_APIC_ACCESS: u32 = 131092;
274 pub const KVM_TRC_TDP_FAULT: u32 = 131093;
275 pub const KVM_TRC_GTLB_WRITE: u32 = 131094;
276 pub const KVM_TRC_STLB_WRITE: u32 = 131095;
277 pub const KVM_TRC_STLB_INVAL: u32 = 131096;
278 pub const KVM_TRC_PPC_INSTR: u32 = 131097;
279 pub const KVM_MEM_LOG_DIRTY_PAGES: u32 = 1;
280 pub const KVM_MEM_READONLY: u32 = 2;
281 pub const KVM_PIT_SPEAKER_DUMMY: u32 = 1;
282 pub const KVM_S390_CMMA_PEEK: u32 = 1;
283 pub const KVM_EXIT_HYPERV_SYNIC: u32 = 1;
284 pub const KVM_EXIT_HYPERV_HCALL: u32 = 2;
285 pub const KVM_EXIT_HYPERV_SYNDBG: u32 = 3;
286 pub const KVM_S390_GET_SKEYS_NONE: u32 = 1;
287 pub const KVM_S390_SKEYS_MAX: u32 = 1048576;
288 pub const KVM_EXIT_UNKNOWN: u32 = 0;
289 pub const KVM_EXIT_EXCEPTION: u32 = 1;
290 pub const KVM_EXIT_IO: u32 = 2;
291 pub const KVM_EXIT_HYPERCALL: u32 = 3;
292 pub const KVM_EXIT_DEBUG: u32 = 4;
293 pub const KVM_EXIT_HLT: u32 = 5;
294 pub const KVM_EXIT_MMIO: u32 = 6;
295 pub const KVM_EXIT_IRQ_WINDOW_OPEN: u32 = 7;
296 pub const KVM_EXIT_SHUTDOWN: u32 = 8;
297 pub const KVM_EXIT_FAIL_ENTRY: u32 = 9;
298 pub const KVM_EXIT_INTR: u32 = 10;
299 pub const KVM_EXIT_SET_TPR: u32 = 11;
300 pub const KVM_EXIT_TPR_ACCESS: u32 = 12;
301 pub const KVM_EXIT_S390_SIEIC: u32 = 13;
302 pub const KVM_EXIT_S390_RESET: u32 = 14;
303 pub const KVM_EXIT_DCR: u32 = 15;
304 pub const KVM_EXIT_NMI: u32 = 16;
305 pub const KVM_EXIT_INTERNAL_ERROR: u32 = 17;
306 pub const KVM_EXIT_OSI: u32 = 18;
307 pub const KVM_EXIT_PAPR_HCALL: u32 = 19;
308 pub const KVM_EXIT_S390_UCONTROL: u32 = 20;
309 pub const KVM_EXIT_WATCHDOG: u32 = 21;
310 pub const KVM_EXIT_S390_TSCH: u32 = 22;
311 pub const KVM_EXIT_EPR: u32 = 23;
312 pub const KVM_EXIT_SYSTEM_EVENT: u32 = 24;
313 pub const KVM_EXIT_S390_STSI: u32 = 25;
314 pub const KVM_EXIT_IOAPIC_EOI: u32 = 26;
315 pub const KVM_EXIT_HYPERV: u32 = 27;
316 pub const KVM_EXIT_ARM_NISV: u32 = 28;
317 pub const KVM_EXIT_X86_RDMSR: u32 = 29;
318 pub const KVM_EXIT_X86_WRMSR: u32 = 30;
319 pub const KVM_INTERNAL_ERROR_EMULATION: u32 = 1;
320 pub const KVM_INTERNAL_ERROR_SIMUL_EX: u32 = 2;
321 pub const KVM_INTERNAL_ERROR_DELIVERY_EV: u32 = 3;
322 pub const KVM_INTERNAL_ERROR_UNEXPECTED_EXIT_REASON: u32 = 4;
323 pub const KVM_EXIT_IO_IN: u32 = 0;
324 pub const KVM_EXIT_IO_OUT: u32 = 1;
325 pub const KVM_S390_RESET_POR: u32 = 1;
326 pub const KVM_S390_RESET_CLEAR: u32 = 2;
327 pub const KVM_S390_RESET_SUBSYSTEM: u32 = 4;
328 pub const KVM_S390_RESET_CPU_INIT: u32 = 8;
329 pub const KVM_S390_RESET_IPL: u32 = 16;
330 pub const KVM_SYSTEM_EVENT_SHUTDOWN: u32 = 1;
331 pub const KVM_SYSTEM_EVENT_RESET: u32 = 2;
332 pub const KVM_SYSTEM_EVENT_CRASH: u32 = 3;
333 pub const KVM_MSR_EXIT_REASON_INVAL: u32 = 1;
334 pub const KVM_MSR_EXIT_REASON_UNKNOWN: u32 = 2;
335 pub const KVM_MSR_EXIT_REASON_FILTER: u32 = 4;
336 pub const SYNC_REGS_SIZE_BYTES: u32 = 2048;
337 pub const KVM_S390_MEMOP_LOGICAL_READ: u32 = 0;
338 pub const KVM_S390_MEMOP_LOGICAL_WRITE: u32 = 1;
339 pub const KVM_S390_MEMOP_SIDA_READ: u32 = 2;
340 pub const KVM_S390_MEMOP_SIDA_WRITE: u32 = 3;
341 pub const KVM_S390_MEMOP_F_CHECK_ONLY: u32 = 1;
342 pub const KVM_S390_MEMOP_F_INJECT_EXCEPTION: u32 = 2;
343 pub const KVM_MP_STATE_RUNNABLE: u32 = 0;
344 pub const KVM_MP_STATE_UNINITIALIZED: u32 = 1;
345 pub const KVM_MP_STATE_INIT_RECEIVED: u32 = 2;
346 pub const KVM_MP_STATE_HALTED: u32 = 3;
347 pub const KVM_MP_STATE_SIPI_RECEIVED: u32 = 4;
348 pub const KVM_MP_STATE_STOPPED: u32 = 5;
349 pub const KVM_MP_STATE_CHECK_STOP: u32 = 6;
350 pub const KVM_MP_STATE_OPERATING: u32 = 7;
351 pub const KVM_MP_STATE_LOAD: u32 = 8;
352 pub const KVM_S390_SIGP_STOP: u32 = 4294836224;
353 pub const KVM_S390_PROGRAM_INT: u32 = 4294836225;
354 pub const KVM_S390_SIGP_SET_PREFIX: u32 = 4294836226;
355 pub const KVM_S390_RESTART: u32 = 4294836227;
356 pub const KVM_S390_INT_PFAULT_INIT: u32 = 4294836228;
357 pub const KVM_S390_INT_PFAULT_DONE: u32 = 4294836229;
358 pub const KVM_S390_MCHK: u32 = 4294840320;
359 pub const KVM_S390_INT_CLOCK_COMP: u32 = 4294905860;
360 pub const KVM_S390_INT_CPU_TIMER: u32 = 4294905861;
361 pub const KVM_S390_INT_VIRTIO: u32 = 4294911491;
362 pub const KVM_S390_INT_SERVICE: u32 = 4294910977;
363 pub const KVM_S390_INT_EMERGENCY: u32 = 4294906369;
364 pub const KVM_S390_INT_EXTERNAL_CALL: u32 = 4294906370;
365 pub const KVM_S390_INT_IO_MIN: u32 = 0;
366 pub const KVM_S390_INT_IO_MAX: u32 = 4294836223;
367 pub const KVM_S390_INT_IO_AI_MASK: u32 = 67108864;
368 pub const KVM_S390_PGM_FLAGS_ILC_VALID: u32 = 1;
369 pub const KVM_S390_PGM_FLAGS_ILC_0: u32 = 2;
370 pub const KVM_S390_PGM_FLAGS_ILC_1: u32 = 4;
371 pub const KVM_S390_PGM_FLAGS_ILC_MASK: u32 = 6;
372 pub const KVM_S390_PGM_FLAGS_NO_REWIND: u32 = 8;
373 pub const KVM_S390_STOP_FLAG_STORE_STATUS: u32 = 1;
374 pub const KVM_GUESTDBG_ENABLE: u32 = 1;
375 pub const KVM_GUESTDBG_SINGLESTEP: u32 = 2;
376 pub const KVM_X86_DISABLE_EXITS_MWAIT: u32 = 1;
377 pub const KVM_X86_DISABLE_EXITS_HLT: u32 = 2;
378 pub const KVM_X86_DISABLE_EXITS_PAUSE: u32 = 4;
379 pub const KVM_X86_DISABLE_EXITS_CSTATE: u32 = 8;
380 pub const KVM_X86_DISABLE_VALID_EXITS: u32 = 15;
381 pub const KVM_PPC_PVINFO_FLAGS_EV_IDLE: u32 = 1;
382 pub const KVM_PPC_PAGE_SIZES_MAX_SZ: u32 = 8;
383 pub const KVM_PPC_PAGE_SIZES_REAL: u32 = 1;
384 pub const KVM_PPC_1T_SEGMENTS: u32 = 2;
385 pub const KVM_PPC_NO_HASH: u32 = 4;
386 pub const KVMIO: u32 = 174;
387 pub const KVM_VM_S390_UCONTROL: u32 = 1;
388 pub const KVM_VM_PPC_HV: u32 = 1;
389 pub const KVM_VM_PPC_PR: u32 = 2;
390 pub const KVM_VM_MIPS_AUTO: u32 = 0;
391 pub const KVM_VM_MIPS_VZ: u32 = 1;
392 pub const KVM_VM_MIPS_TE: u32 = 2;
393 pub const KVM_S390_SIE_PAGE_OFFSET: u32 = 1;
394 pub const KVM_VM_TYPE_ARM_IPA_SIZE_MASK: u32 = 255;
395 pub const KVM_CAP_IRQCHIP: u32 = 0;
396 pub const KVM_CAP_HLT: u32 = 1;
397 pub const KVM_CAP_MMU_SHADOW_CACHE_CONTROL: u32 = 2;
398 pub const KVM_CAP_USER_MEMORY: u32 = 3;
399 pub const KVM_CAP_SET_TSS_ADDR: u32 = 4;
400 pub const KVM_CAP_VAPIC: u32 = 6;
401 pub const KVM_CAP_EXT_CPUID: u32 = 7;
402 pub const KVM_CAP_CLOCKSOURCE: u32 = 8;
403 pub const KVM_CAP_NR_VCPUS: u32 = 9;
404 pub const KVM_CAP_NR_MEMSLOTS: u32 = 10;
405 pub const KVM_CAP_PIT: u32 = 11;
406 pub const KVM_CAP_NOP_IO_DELAY: u32 = 12;
407 pub const KVM_CAP_PV_MMU: u32 = 13;
408 pub const KVM_CAP_MP_STATE: u32 = 14;
409 pub const KVM_CAP_COALESCED_MMIO: u32 = 15;
410 pub const KVM_CAP_SYNC_MMU: u32 = 16;
411 pub const KVM_CAP_IOMMU: u32 = 18;
412 pub const KVM_CAP_DESTROY_MEMORY_REGION_WORKS: u32 = 21;
413 pub const KVM_CAP_USER_NMI: u32 = 22;
414 pub const KVM_CAP_SET_GUEST_DEBUG: u32 = 23;
415 pub const KVM_CAP_REINJECT_CONTROL: u32 = 24;
416 pub const KVM_CAP_IRQ_ROUTING: u32 = 25;
417 pub const KVM_CAP_IRQ_INJECT_STATUS: u32 = 26;
418 pub const KVM_CAP_ASSIGN_DEV_IRQ: u32 = 29;
419 pub const KVM_CAP_JOIN_MEMORY_REGIONS_WORKS: u32 = 30;
420 pub const KVM_CAP_MCE: u32 = 31;
421 pub const KVM_CAP_IRQFD: u32 = 32;
422 pub const KVM_CAP_PIT2: u32 = 33;
423 pub const KVM_CAP_SET_BOOT_CPU_ID: u32 = 34;
424 pub const KVM_CAP_PIT_STATE2: u32 = 35;
425 pub const KVM_CAP_IOEVENTFD: u32 = 36;
426 pub const KVM_CAP_SET_IDENTITY_MAP_ADDR: u32 = 37;
427 pub const KVM_CAP_XEN_HVM: u32 = 38;
428 pub const KVM_CAP_ADJUST_CLOCK: u32 = 39;
429 pub const KVM_CAP_INTERNAL_ERROR_DATA: u32 = 40;
430 pub const KVM_CAP_VCPU_EVENTS: u32 = 41;
431 pub const KVM_CAP_S390_PSW: u32 = 42;
432 pub const KVM_CAP_PPC_SEGSTATE: u32 = 43;
433 pub const KVM_CAP_HYPERV: u32 = 44;
434 pub const KVM_CAP_HYPERV_VAPIC: u32 = 45;
435 pub const KVM_CAP_HYPERV_SPIN: u32 = 46;
436 pub const KVM_CAP_PCI_SEGMENT: u32 = 47;
437 pub const KVM_CAP_PPC_PAIRED_SINGLES: u32 = 48;
438 pub const KVM_CAP_INTR_SHADOW: u32 = 49;
439 pub const KVM_CAP_DEBUGREGS: u32 = 50;
440 pub const KVM_CAP_X86_ROBUST_SINGLESTEP: u32 = 51;
441 pub const KVM_CAP_PPC_OSI: u32 = 52;
442 pub const KVM_CAP_PPC_UNSET_IRQ: u32 = 53;
443 pub const KVM_CAP_ENABLE_CAP: u32 = 54;
444 pub const KVM_CAP_XSAVE: u32 = 55;
445 pub const KVM_CAP_XCRS: u32 = 56;
446 pub const KVM_CAP_PPC_GET_PVINFO: u32 = 57;
447 pub const KVM_CAP_PPC_IRQ_LEVEL: u32 = 58;
448 pub const KVM_CAP_ASYNC_PF: u32 = 59;
449 pub const KVM_CAP_TSC_CONTROL: u32 = 60;
450 pub const KVM_CAP_GET_TSC_KHZ: u32 = 61;
451 pub const KVM_CAP_PPC_BOOKE_SREGS: u32 = 62;
452 pub const KVM_CAP_SPAPR_TCE: u32 = 63;
453 pub const KVM_CAP_PPC_SMT: u32 = 64;
454 pub const KVM_CAP_PPC_RMA: u32 = 65;
455 pub const KVM_CAP_MAX_VCPUS: u32 = 66;
456 pub const KVM_CAP_PPC_HIOR: u32 = 67;
457 pub const KVM_CAP_PPC_PAPR: u32 = 68;
458 pub const KVM_CAP_SW_TLB: u32 = 69;
459 pub const KVM_CAP_ONE_REG: u32 = 70;
460 pub const KVM_CAP_S390_GMAP: u32 = 71;
461 pub const KVM_CAP_TSC_DEADLINE_TIMER: u32 = 72;
462 pub const KVM_CAP_S390_UCONTROL: u32 = 73;
463 pub const KVM_CAP_SYNC_REGS: u32 = 74;
464 pub const KVM_CAP_PCI_2_3: u32 = 75;
465 pub const KVM_CAP_KVMCLOCK_CTRL: u32 = 76;
466 pub const KVM_CAP_SIGNAL_MSI: u32 = 77;
467 pub const KVM_CAP_PPC_GET_SMMU_INFO: u32 = 78;
468 pub const KVM_CAP_S390_COW: u32 = 79;
469 pub const KVM_CAP_PPC_ALLOC_HTAB: u32 = 80;
470 pub const KVM_CAP_READONLY_MEM: u32 = 81;
471 pub const KVM_CAP_IRQFD_RESAMPLE: u32 = 82;
472 pub const KVM_CAP_PPC_BOOKE_WATCHDOG: u32 = 83;
473 pub const KVM_CAP_PPC_HTAB_FD: u32 = 84;
474 pub const KVM_CAP_S390_CSS_SUPPORT: u32 = 85;
475 pub const KVM_CAP_PPC_EPR: u32 = 86;
476 pub const KVM_CAP_ARM_PSCI: u32 = 87;
477 pub const KVM_CAP_ARM_SET_DEVICE_ADDR: u32 = 88;
478 pub const KVM_CAP_DEVICE_CTRL: u32 = 89;
479 pub const KVM_CAP_IRQ_MPIC: u32 = 90;
480 pub const KVM_CAP_PPC_RTAS: u32 = 91;
481 pub const KVM_CAP_IRQ_XICS: u32 = 92;
482 pub const KVM_CAP_ARM_EL1_32BIT: u32 = 93;
483 pub const KVM_CAP_SPAPR_MULTITCE: u32 = 94;
484 pub const KVM_CAP_EXT_EMUL_CPUID: u32 = 95;
485 pub const KVM_CAP_HYPERV_TIME: u32 = 96;
486 pub const KVM_CAP_IOAPIC_POLARITY_IGNORED: u32 = 97;
487 pub const KVM_CAP_ENABLE_CAP_VM: u32 = 98;
488 pub const KVM_CAP_S390_IRQCHIP: u32 = 99;
489 pub const KVM_CAP_IOEVENTFD_NO_LENGTH: u32 = 100;
490 pub const KVM_CAP_VM_ATTRIBUTES: u32 = 101;
491 pub const KVM_CAP_ARM_PSCI_0_2: u32 = 102;
492 pub const KVM_CAP_PPC_FIXUP_HCALL: u32 = 103;
493 pub const KVM_CAP_PPC_ENABLE_HCALL: u32 = 104;
494 pub const KVM_CAP_CHECK_EXTENSION_VM: u32 = 105;
495 pub const KVM_CAP_S390_USER_SIGP: u32 = 106;
496 pub const KVM_CAP_S390_VECTOR_REGISTERS: u32 = 107;
497 pub const KVM_CAP_S390_MEM_OP: u32 = 108;
498 pub const KVM_CAP_S390_USER_STSI: u32 = 109;
499 pub const KVM_CAP_S390_SKEYS: u32 = 110;
500 pub const KVM_CAP_MIPS_FPU: u32 = 111;
501 pub const KVM_CAP_MIPS_MSA: u32 = 112;
502 pub const KVM_CAP_S390_INJECT_IRQ: u32 = 113;
503 pub const KVM_CAP_S390_IRQ_STATE: u32 = 114;
504 pub const KVM_CAP_PPC_HWRNG: u32 = 115;
505 pub const KVM_CAP_DISABLE_QUIRKS: u32 = 116;
506 pub const KVM_CAP_X86_SMM: u32 = 117;
507 pub const KVM_CAP_MULTI_ADDRESS_SPACE: u32 = 118;
508 pub const KVM_CAP_GUEST_DEBUG_HW_BPS: u32 = 119;
509 pub const KVM_CAP_GUEST_DEBUG_HW_WPS: u32 = 120;
510 pub const KVM_CAP_SPLIT_IRQCHIP: u32 = 121;
511 pub const KVM_CAP_IOEVENTFD_ANY_LENGTH: u32 = 122;
512 pub const KVM_CAP_HYPERV_SYNIC: u32 = 123;
513 pub const KVM_CAP_S390_RI: u32 = 124;
514 pub const KVM_CAP_SPAPR_TCE_64: u32 = 125;
515 pub const KVM_CAP_ARM_PMU_V3: u32 = 126;
516 pub const KVM_CAP_VCPU_ATTRIBUTES: u32 = 127;
517 pub const KVM_CAP_MAX_VCPU_ID: u32 = 128;
518 pub const KVM_CAP_X2APIC_API: u32 = 129;
519 pub const KVM_CAP_S390_USER_INSTR0: u32 = 130;
520 pub const KVM_CAP_MSI_DEVID: u32 = 131;
521 pub const KVM_CAP_PPC_HTM: u32 = 132;
522 pub const KVM_CAP_SPAPR_RESIZE_HPT: u32 = 133;
523 pub const KVM_CAP_PPC_MMU_RADIX: u32 = 134;
524 pub const KVM_CAP_PPC_MMU_HASH_V3: u32 = 135;
525 pub const KVM_CAP_IMMEDIATE_EXIT: u32 = 136;
526 pub const KVM_CAP_MIPS_VZ: u32 = 137;
527 pub const KVM_CAP_MIPS_TE: u32 = 138;
528 pub const KVM_CAP_MIPS_64BIT: u32 = 139;
529 pub const KVM_CAP_S390_GS: u32 = 140;
530 pub const KVM_CAP_S390_AIS: u32 = 141;
531 pub const KVM_CAP_SPAPR_TCE_VFIO: u32 = 142;
532 pub const KVM_CAP_X86_DISABLE_EXITS: u32 = 143;
533 pub const KVM_CAP_ARM_USER_IRQ: u32 = 144;
534 pub const KVM_CAP_S390_CMMA_MIGRATION: u32 = 145;
535 pub const KVM_CAP_PPC_FWNMI: u32 = 146;
536 pub const KVM_CAP_PPC_SMT_POSSIBLE: u32 = 147;
537 pub const KVM_CAP_HYPERV_SYNIC2: u32 = 148;
538 pub const KVM_CAP_HYPERV_VP_INDEX: u32 = 149;
539 pub const KVM_CAP_S390_AIS_MIGRATION: u32 = 150;
540 pub const KVM_CAP_PPC_GET_CPU_CHAR: u32 = 151;
541 pub const KVM_CAP_S390_BPB: u32 = 152;
542 pub const KVM_CAP_GET_MSR_FEATURES: u32 = 153;
543 pub const KVM_CAP_HYPERV_EVENTFD: u32 = 154;
544 pub const KVM_CAP_HYPERV_TLBFLUSH: u32 = 155;
545 pub const KVM_CAP_S390_HPAGE_1M: u32 = 156;
546 pub const KVM_CAP_NESTED_STATE: u32 = 157;
547 pub const KVM_CAP_ARM_INJECT_SERROR_ESR: u32 = 158;
548 pub const KVM_CAP_MSR_PLATFORM_INFO: u32 = 159;
549 pub const KVM_CAP_PPC_NESTED_HV: u32 = 160;
550 pub const KVM_CAP_HYPERV_SEND_IPI: u32 = 161;
551 pub const KVM_CAP_COALESCED_PIO: u32 = 162;
552 pub const KVM_CAP_HYPERV_ENLIGHTENED_VMCS: u32 = 163;
553 pub const KVM_CAP_EXCEPTION_PAYLOAD: u32 = 164;
554 pub const KVM_CAP_ARM_VM_IPA_SIZE: u32 = 165;
555 pub const KVM_CAP_MANUAL_DIRTY_LOG_PROTECT: u32 = 166;
556 pub const KVM_CAP_HYPERV_CPUID: u32 = 167;
557 pub const KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2: u32 = 168;
558 pub const KVM_CAP_PPC_IRQ_XIVE: u32 = 169;
559 pub const KVM_CAP_ARM_SVE: u32 = 170;
560 pub const KVM_CAP_ARM_PTRAUTH_ADDRESS: u32 = 171;
561 pub const KVM_CAP_ARM_PTRAUTH_GENERIC: u32 = 172;
562 pub const KVM_CAP_PMU_EVENT_FILTER: u32 = 173;
563 pub const KVM_CAP_ARM_IRQ_LINE_LAYOUT_2: u32 = 174;
564 pub const KVM_CAP_HYPERV_DIRECT_TLBFLUSH: u32 = 175;
565 pub const KVM_CAP_PPC_GUEST_DEBUG_SSTEP: u32 = 176;
566 pub const KVM_CAP_ARM_NISV_TO_USER: u32 = 177;
567 pub const KVM_CAP_ARM_INJECT_EXT_DABT: u32 = 178;
568 pub const KVM_CAP_S390_VCPU_RESETS: u32 = 179;
569 pub const KVM_CAP_S390_PROTECTED: u32 = 180;
570 pub const KVM_CAP_PPC_SECURE_GUEST: u32 = 181;
571 pub const KVM_CAP_HALT_POLL: u32 = 182;
572 pub const KVM_CAP_ASYNC_PF_INT: u32 = 183;
573 pub const KVM_CAP_LAST_CPU: u32 = 184;
574 pub const KVM_CAP_SMALLER_MAXPHYADDR: u32 = 185;
575 pub const KVM_CAP_S390_DIAG318: u32 = 186;
576 pub const KVM_CAP_STEAL_TIME: u32 = 187;
577 pub const KVM_CAP_X86_USER_SPACE_MSR: u32 = 188;
578 pub const KVM_CAP_X86_MSR_FILTER: u32 = 189;
579 pub const KVM_CAP_ENFORCE_PV_FEATURE_CPUID: u32 = 190;
580 pub const KVM_IRQ_ROUTING_IRQCHIP: u32 = 1;
581 pub const KVM_IRQ_ROUTING_MSI: u32 = 2;
582 pub const KVM_IRQ_ROUTING_S390_ADAPTER: u32 = 3;
583 pub const KVM_IRQ_ROUTING_HV_SINT: u32 = 4;
584 pub const KVM_IRQFD_FLAG_DEASSIGN: u32 = 1;
585 pub const KVM_IRQFD_FLAG_RESAMPLE: u32 = 2;
586 pub const KVM_CLOCK_TSC_STABLE: u32 = 2;
587 pub const KVM_MMU_FSL_BOOKE_NOHV: u32 = 0;
588 pub const KVM_MMU_FSL_BOOKE_HV: u32 = 1;
589 pub const KVM_REG_ARCH_MASK: i64 = -72057594037927936;
590 pub const KVM_REG_GENERIC: u32 = 0;
591 pub const KVM_REG_PPC: u64 = 1152921504606846976;
592 pub const KVM_REG_X86: u64 = 2305843009213693952;
593 pub const KVM_REG_IA64: u64 = 3458764513820540928;
594 pub const KVM_REG_ARM: u64 = 4611686018427387904;
595 pub const KVM_REG_S390: u64 = 5764607523034234880;
596 pub const KVM_REG_ARM64: u64 = 6917529027641081856;
597 pub const KVM_REG_MIPS: u64 = 8070450532247928832;
598 pub const KVM_REG_RISCV: i64 = -9223372036854775808;
599 pub const KVM_REG_SIZE_SHIFT: u32 = 52;
600 pub const KVM_REG_SIZE_MASK: u64 = 67553994410557440;
601 pub const KVM_REG_SIZE_U8: u32 = 0;
602 pub const KVM_REG_SIZE_U16: u64 = 4503599627370496;
603 pub const KVM_REG_SIZE_U32: u64 = 9007199254740992;
604 pub const KVM_REG_SIZE_U64: u64 = 13510798882111488;
605 pub const KVM_REG_SIZE_U128: u64 = 18014398509481984;
606 pub const KVM_REG_SIZE_U256: u64 = 22517998136852480;
607 pub const KVM_REG_SIZE_U512: u64 = 27021597764222976;
608 pub const KVM_REG_SIZE_U1024: u64 = 31525197391593472;
609 pub const KVM_REG_SIZE_U2048: u64 = 36028797018963968;
610 pub const KVM_MSI_VALID_DEVID: u32 = 1;
611 pub const KVM_CREATE_DEVICE_TEST: u32 = 1;
612 pub const KVM_DEV_VFIO_GROUP: u32 = 1;
613 pub const KVM_DEV_VFIO_GROUP_ADD: u32 = 1;
614 pub const KVM_DEV_VFIO_GROUP_DEL: u32 = 2;
615 pub const KVM_DEV_VFIO_GROUP_SET_SPAPR_TCE: u32 = 3;
616 pub const KVM_S390_STORE_STATUS_NOADDR: i32 = -1;
617 pub const KVM_S390_STORE_STATUS_PREFIXED: i32 = -2;
618 pub const KVM_DEV_ASSIGN_ENABLE_IOMMU: u32 = 1;
619 pub const KVM_DEV_ASSIGN_PCI_2_3: u32 = 2;
620 pub const KVM_DEV_ASSIGN_MASK_INTX: u32 = 4;
621 pub const KVM_DEV_IRQ_HOST_INTX: u32 = 1;
622 pub const KVM_DEV_IRQ_HOST_MSI: u32 = 2;
623 pub const KVM_DEV_IRQ_HOST_MSIX: u32 = 4;
624 pub const KVM_DEV_IRQ_GUEST_INTX: u32 = 256;
625 pub const KVM_DEV_IRQ_GUEST_MSI: u32 = 512;
626 pub const KVM_DEV_IRQ_GUEST_MSIX: u32 = 1024;
627 pub const KVM_DEV_IRQ_HOST_MASK: u32 = 255;
628 pub const KVM_DEV_IRQ_GUEST_MASK: u32 = 65280;
629 pub const KVM_MAX_MSIX_PER_DEV: u32 = 256;
630 pub const KVM_X2APIC_API_USE_32BIT_IDS: u32 = 1;
631 pub const KVM_X2APIC_API_DISABLE_BROADCAST_QUIRK: u32 = 2;
632 pub const KVM_ARM_DEV_EL1_VTIMER: u32 = 1;
633 pub const KVM_ARM_DEV_EL1_PTIMER: u32 = 2;
634 pub const KVM_ARM_DEV_PMU: u32 = 4;
635 pub const KVM_HYPERV_CONN_ID_MASK: u32 = 16777215;
636 pub const KVM_HYPERV_EVENTFD_DEASSIGN: u32 = 1;
637 pub const KVM_DIRTY_LOG_MANUAL_PROTECT_ENABLE: u32 = 1;
638 pub const KVM_DIRTY_LOG_INITIALLY_SET: u32 = 2;
639 pub type __le16 = u16;
640 pub type __be16 = u16;
641 pub type __le32 = u32;
642 pub type __be32 = u32;
643 pub type __le64 = u64;
644 pub type __be64 = u64;
645 pub type __sum16 = u16;
646 pub type __wsum = u32;
647 pub type __poll_t = ::std::os::raw::c_uint;
648 #[repr(C)]
649 #[derive(Debug, Default, Copy, Clone)]
650 pub struct kvm_memory_alias {
651     pub slot: u32,
652     pub flags: u32,
653     pub guest_phys_addr: u64,
654     pub memory_size: u64,
655     pub target_phys_addr: u64,
656 }
657 #[repr(C)]
658 #[derive(Debug, Default, Copy, Clone)]
659 pub struct kvm_pic_state {
660     pub last_irr: u8,
661     pub irr: u8,
662     pub imr: u8,
663     pub isr: u8,
664     pub priority_add: u8,
665     pub irq_base: u8,
666     pub read_reg_select: u8,
667     pub poll: u8,
668     pub special_mask: u8,
669     pub init_state: u8,
670     pub auto_eoi: u8,
671     pub rotate_on_auto_eoi: u8,
672     pub special_fully_nested_mode: u8,
673     pub init4: u8,
674     pub elcr: u8,
675     pub elcr_mask: u8,
676 }
677 #[repr(C)]
678 #[derive(Copy, Clone)]
679 pub struct kvm_ioapic_state {
680     pub base_address: u64,
681     pub ioregsel: u32,
682     pub id: u32,
683     pub irr: u32,
684     pub pad: u32,
685     pub redirtbl: [kvm_ioapic_state__bindgen_ty_1; 24usize],
686 }
687 #[repr(C)]
688 #[derive(Copy, Clone)]
689 pub union kvm_ioapic_state__bindgen_ty_1 {
690     pub bits: u64,
691     pub fields: kvm_ioapic_state__bindgen_ty_1__bindgen_ty_1,
692 }
693 #[repr(C)]
694 #[derive(Debug, Default, Copy, Clone)]
695 pub struct kvm_ioapic_state__bindgen_ty_1__bindgen_ty_1 {
696     pub vector: u8,
697     pub _bitfield_align_1: [u8; 0],
698     pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
699     pub reserved: [u8; 4usize],
700     pub dest_id: u8,
701 }
702 impl kvm_ioapic_state__bindgen_ty_1__bindgen_ty_1 {
703     #[inline]
delivery_mode(&self) -> u8704     pub fn delivery_mode(&self) -> u8 {
705         unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 3u8) as u8) }
706     }
707     #[inline]
set_delivery_mode(&mut self, val: u8)708     pub fn set_delivery_mode(&mut self, val: u8) {
709         unsafe {
710             let val: u8 = ::std::mem::transmute(val);
711             self._bitfield_1.set(0usize, 3u8, val as u64)
712         }
713     }
714     #[inline]
dest_mode(&self) -> u8715     pub fn dest_mode(&self) -> u8 {
716         unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) }
717     }
718     #[inline]
set_dest_mode(&mut self, val: u8)719     pub fn set_dest_mode(&mut self, val: u8) {
720         unsafe {
721             let val: u8 = ::std::mem::transmute(val);
722             self._bitfield_1.set(3usize, 1u8, val as u64)
723         }
724     }
725     #[inline]
delivery_status(&self) -> u8726     pub fn delivery_status(&self) -> u8 {
727         unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u8) }
728     }
729     #[inline]
set_delivery_status(&mut self, val: u8)730     pub fn set_delivery_status(&mut self, val: u8) {
731         unsafe {
732             let val: u8 = ::std::mem::transmute(val);
733             self._bitfield_1.set(4usize, 1u8, val as u64)
734         }
735     }
736     #[inline]
polarity(&self) -> u8737     pub fn polarity(&self) -> u8 {
738         unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u8) }
739     }
740     #[inline]
set_polarity(&mut self, val: u8)741     pub fn set_polarity(&mut self, val: u8) {
742         unsafe {
743             let val: u8 = ::std::mem::transmute(val);
744             self._bitfield_1.set(5usize, 1u8, val as u64)
745         }
746     }
747     #[inline]
remote_irr(&self) -> u8748     pub fn remote_irr(&self) -> u8 {
749         unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u8) }
750     }
751     #[inline]
set_remote_irr(&mut self, val: u8)752     pub fn set_remote_irr(&mut self, val: u8) {
753         unsafe {
754             let val: u8 = ::std::mem::transmute(val);
755             self._bitfield_1.set(6usize, 1u8, val as u64)
756         }
757     }
758     #[inline]
trig_mode(&self) -> u8759     pub fn trig_mode(&self) -> u8 {
760         unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u8) }
761     }
762     #[inline]
set_trig_mode(&mut self, val: u8)763     pub fn set_trig_mode(&mut self, val: u8) {
764         unsafe {
765             let val: u8 = ::std::mem::transmute(val);
766             self._bitfield_1.set(7usize, 1u8, val as u64)
767         }
768     }
769     #[inline]
mask(&self) -> u8770     pub fn mask(&self) -> u8 {
771         unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u8) }
772     }
773     #[inline]
set_mask(&mut self, val: u8)774     pub fn set_mask(&mut self, val: u8) {
775         unsafe {
776             let val: u8 = ::std::mem::transmute(val);
777             self._bitfield_1.set(8usize, 1u8, val as u64)
778         }
779     }
780     #[inline]
reserve(&self) -> u8781     pub fn reserve(&self) -> u8 {
782         unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 7u8) as u8) }
783     }
784     #[inline]
set_reserve(&mut self, val: u8)785     pub fn set_reserve(&mut self, val: u8) {
786         unsafe {
787             let val: u8 = ::std::mem::transmute(val);
788             self._bitfield_1.set(9usize, 7u8, val as u64)
789         }
790     }
791     #[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]>792     pub fn new_bitfield_1(
793         delivery_mode: u8,
794         dest_mode: u8,
795         delivery_status: u8,
796         polarity: u8,
797         remote_irr: u8,
798         trig_mode: u8,
799         mask: u8,
800         reserve: u8,
801     ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
802         let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
803         __bindgen_bitfield_unit.set(0usize, 3u8, {
804             let delivery_mode: u8 = unsafe { ::std::mem::transmute(delivery_mode) };
805             delivery_mode as u64
806         });
807         __bindgen_bitfield_unit.set(3usize, 1u8, {
808             let dest_mode: u8 = unsafe { ::std::mem::transmute(dest_mode) };
809             dest_mode as u64
810         });
811         __bindgen_bitfield_unit.set(4usize, 1u8, {
812             let delivery_status: u8 = unsafe { ::std::mem::transmute(delivery_status) };
813             delivery_status as u64
814         });
815         __bindgen_bitfield_unit.set(5usize, 1u8, {
816             let polarity: u8 = unsafe { ::std::mem::transmute(polarity) };
817             polarity as u64
818         });
819         __bindgen_bitfield_unit.set(6usize, 1u8, {
820             let remote_irr: u8 = unsafe { ::std::mem::transmute(remote_irr) };
821             remote_irr as u64
822         });
823         __bindgen_bitfield_unit.set(7usize, 1u8, {
824             let trig_mode: u8 = unsafe { ::std::mem::transmute(trig_mode) };
825             trig_mode as u64
826         });
827         __bindgen_bitfield_unit.set(8usize, 1u8, {
828             let mask: u8 = unsafe { ::std::mem::transmute(mask) };
829             mask as u64
830         });
831         __bindgen_bitfield_unit.set(9usize, 7u8, {
832             let reserve: u8 = unsafe { ::std::mem::transmute(reserve) };
833             reserve as u64
834         });
835         __bindgen_bitfield_unit
836     }
837 }
838 impl Default for kvm_ioapic_state__bindgen_ty_1 {
default() -> Self839     fn default() -> Self {
840         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
841         unsafe {
842             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
843             s.assume_init()
844         }
845     }
846 }
847 impl Default for kvm_ioapic_state {
default() -> Self848     fn default() -> Self {
849         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
850         unsafe {
851             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
852             s.assume_init()
853         }
854     }
855 }
856 #[repr(C)]
857 #[derive(Debug, Default, Copy, Clone)]
858 pub struct kvm_regs {
859     pub rax: u64,
860     pub rbx: u64,
861     pub rcx: u64,
862     pub rdx: u64,
863     pub rsi: u64,
864     pub rdi: u64,
865     pub rsp: u64,
866     pub rbp: u64,
867     pub r8: u64,
868     pub r9: u64,
869     pub r10: u64,
870     pub r11: u64,
871     pub r12: u64,
872     pub r13: u64,
873     pub r14: u64,
874     pub r15: u64,
875     pub rip: u64,
876     pub rflags: u64,
877 }
878 #[repr(C)]
879 #[derive(Debug, Copy, Clone)]
880 pub struct kvm_lapic_state {
881     pub regs: [::std::os::raw::c_char; 1024usize],
882 }
883 impl Default for kvm_lapic_state {
default() -> Self884     fn default() -> Self {
885         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
886         unsafe {
887             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
888             s.assume_init()
889         }
890     }
891 }
892 #[repr(C)]
893 #[derive(Debug, Default, Copy, Clone)]
894 pub struct kvm_segment {
895     pub base: u64,
896     pub limit: u32,
897     pub selector: u16,
898     pub type_: u8,
899     pub present: u8,
900     pub dpl: u8,
901     pub db: u8,
902     pub s: u8,
903     pub l: u8,
904     pub g: u8,
905     pub avl: u8,
906     pub unusable: u8,
907     pub padding: u8,
908 }
909 #[repr(C)]
910 #[derive(Debug, Default, Copy, Clone)]
911 pub struct kvm_dtable {
912     pub base: u64,
913     pub limit: u16,
914     pub padding: [u16; 3usize],
915 }
916 #[repr(C)]
917 #[derive(Debug, Default, Copy, Clone)]
918 pub struct kvm_sregs {
919     pub cs: kvm_segment,
920     pub ds: kvm_segment,
921     pub es: kvm_segment,
922     pub fs: kvm_segment,
923     pub gs: kvm_segment,
924     pub ss: kvm_segment,
925     pub tr: kvm_segment,
926     pub ldt: kvm_segment,
927     pub gdt: kvm_dtable,
928     pub idt: kvm_dtable,
929     pub cr0: u64,
930     pub cr2: u64,
931     pub cr3: u64,
932     pub cr4: u64,
933     pub cr8: u64,
934     pub efer: u64,
935     pub apic_base: u64,
936     pub interrupt_bitmap: [u64; 4usize],
937 }
938 #[repr(C)]
939 #[derive(Debug, Default, Copy, Clone)]
940 pub struct kvm_fpu {
941     pub fpr: [[u8; 16usize]; 8usize],
942     pub fcw: u16,
943     pub fsw: u16,
944     pub ftwx: u8,
945     pub pad1: u8,
946     pub last_opcode: u16,
947     pub last_ip: u64,
948     pub last_dp: u64,
949     pub xmm: [[u8; 16usize]; 16usize],
950     pub mxcsr: u32,
951     pub pad2: u32,
952 }
953 #[repr(C)]
954 #[derive(Debug, Default, Copy, Clone)]
955 pub struct kvm_msr_entry {
956     pub index: u32,
957     pub reserved: u32,
958     pub data: u64,
959 }
960 #[repr(C)]
961 #[derive(Debug, Default)]
962 pub struct kvm_msrs {
963     pub nmsrs: u32,
964     pub pad: u32,
965     pub entries: __IncompleteArrayField<kvm_msr_entry>,
966 }
967 #[repr(C)]
968 #[derive(Debug, Default)]
969 pub struct kvm_msr_list {
970     pub nmsrs: u32,
971     pub indices: __IncompleteArrayField<u32>,
972 }
973 #[repr(C)]
974 #[derive(Debug, Copy, Clone)]
975 pub struct kvm_msr_filter_range {
976     pub flags: u32,
977     pub nmsrs: u32,
978     pub base: u32,
979     pub bitmap: *mut u8,
980 }
981 impl Default for kvm_msr_filter_range {
default() -> Self982     fn default() -> Self {
983         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
984         unsafe {
985             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
986             s.assume_init()
987         }
988     }
989 }
990 #[repr(C)]
991 #[derive(Debug, Copy, Clone)]
992 pub struct kvm_msr_filter {
993     pub flags: u32,
994     pub ranges: [kvm_msr_filter_range; 16usize],
995 }
996 impl Default for kvm_msr_filter {
default() -> Self997     fn default() -> Self {
998         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
999         unsafe {
1000             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1001             s.assume_init()
1002         }
1003     }
1004 }
1005 #[repr(C)]
1006 #[derive(Debug, Default, Copy, Clone)]
1007 pub struct kvm_cpuid_entry {
1008     pub function: u32,
1009     pub eax: u32,
1010     pub ebx: u32,
1011     pub ecx: u32,
1012     pub edx: u32,
1013     pub padding: u32,
1014 }
1015 #[repr(C)]
1016 #[derive(Debug, Default)]
1017 pub struct kvm_cpuid {
1018     pub nent: u32,
1019     pub padding: u32,
1020     pub entries: __IncompleteArrayField<kvm_cpuid_entry>,
1021 }
1022 #[repr(C)]
1023 #[derive(Debug, Default, Copy, Clone)]
1024 pub struct kvm_cpuid_entry2 {
1025     pub function: u32,
1026     pub index: u32,
1027     pub flags: u32,
1028     pub eax: u32,
1029     pub ebx: u32,
1030     pub ecx: u32,
1031     pub edx: u32,
1032     pub padding: [u32; 3usize],
1033 }
1034 #[repr(C)]
1035 #[derive(Debug, Default)]
1036 pub struct kvm_cpuid2 {
1037     pub nent: u32,
1038     pub padding: u32,
1039     pub entries: __IncompleteArrayField<kvm_cpuid_entry2>,
1040 }
1041 #[repr(C)]
1042 #[derive(Debug, Default, Copy, Clone)]
1043 pub struct kvm_pit_channel_state {
1044     pub count: u32,
1045     pub latched_count: u16,
1046     pub count_latched: u8,
1047     pub status_latched: u8,
1048     pub status: u8,
1049     pub read_state: u8,
1050     pub write_state: u8,
1051     pub write_latch: u8,
1052     pub rw_mode: u8,
1053     pub mode: u8,
1054     pub bcd: u8,
1055     pub gate: u8,
1056     pub count_load_time: i64,
1057 }
1058 #[repr(C)]
1059 #[derive(Debug, Default, Copy, Clone)]
1060 pub struct kvm_debug_exit_arch {
1061     pub exception: u32,
1062     pub pad: u32,
1063     pub pc: u64,
1064     pub dr6: u64,
1065     pub dr7: u64,
1066 }
1067 #[repr(C)]
1068 #[derive(Debug, Default, Copy, Clone)]
1069 pub struct kvm_guest_debug_arch {
1070     pub debugreg: [u64; 8usize],
1071 }
1072 #[repr(C)]
1073 #[derive(Debug, Default, Copy, Clone)]
1074 pub struct kvm_pit_state {
1075     pub channels: [kvm_pit_channel_state; 3usize],
1076 }
1077 #[repr(C)]
1078 #[derive(Debug, Default, Copy, Clone)]
1079 pub struct kvm_pit_state2 {
1080     pub channels: [kvm_pit_channel_state; 3usize],
1081     pub flags: u32,
1082     pub reserved: [u32; 9usize],
1083 }
1084 #[repr(C)]
1085 #[derive(Debug, Default, Copy, Clone)]
1086 pub struct kvm_reinject_control {
1087     pub pit_reinject: u8,
1088     pub reserved: [u8; 31usize],
1089 }
1090 #[repr(C)]
1091 #[derive(Debug, Default, Copy, Clone)]
1092 pub struct kvm_vcpu_events {
1093     pub exception: kvm_vcpu_events__bindgen_ty_1,
1094     pub interrupt: kvm_vcpu_events__bindgen_ty_2,
1095     pub nmi: kvm_vcpu_events__bindgen_ty_3,
1096     pub sipi_vector: u32,
1097     pub flags: u32,
1098     pub smi: kvm_vcpu_events__bindgen_ty_4,
1099     pub reserved: [u8; 27usize],
1100     pub exception_has_payload: u8,
1101     pub exception_payload: u64,
1102 }
1103 #[repr(C)]
1104 #[derive(Debug, Default, Copy, Clone)]
1105 pub struct kvm_vcpu_events__bindgen_ty_1 {
1106     pub injected: u8,
1107     pub nr: u8,
1108     pub has_error_code: u8,
1109     pub pending: u8,
1110     pub error_code: u32,
1111 }
1112 #[repr(C)]
1113 #[derive(Debug, Default, Copy, Clone)]
1114 pub struct kvm_vcpu_events__bindgen_ty_2 {
1115     pub injected: u8,
1116     pub nr: u8,
1117     pub soft: u8,
1118     pub shadow: u8,
1119 }
1120 #[repr(C)]
1121 #[derive(Debug, Default, Copy, Clone)]
1122 pub struct kvm_vcpu_events__bindgen_ty_3 {
1123     pub injected: u8,
1124     pub pending: u8,
1125     pub masked: u8,
1126     pub pad: u8,
1127 }
1128 #[repr(C)]
1129 #[derive(Debug, Default, Copy, Clone)]
1130 pub struct kvm_vcpu_events__bindgen_ty_4 {
1131     pub smm: u8,
1132     pub pending: u8,
1133     pub smm_inside_nmi: u8,
1134     pub latched_init: u8,
1135 }
1136 #[repr(C)]
1137 #[derive(Debug, Default, Copy, Clone)]
1138 pub struct kvm_debugregs {
1139     pub db: [u64; 4usize],
1140     pub dr6: u64,
1141     pub dr7: u64,
1142     pub flags: u64,
1143     pub reserved: [u64; 9usize],
1144 }
1145 #[repr(C)]
1146 #[derive(Debug, Copy, Clone)]
1147 pub struct kvm_xsave {
1148     pub region: [u32; 1024usize],
1149 }
1150 impl Default for kvm_xsave {
default() -> Self1151     fn default() -> Self {
1152         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1153         unsafe {
1154             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1155             s.assume_init()
1156         }
1157     }
1158 }
1159 #[repr(C)]
1160 #[derive(Debug, Default, Copy, Clone)]
1161 pub struct kvm_xcr {
1162     pub xcr: u32,
1163     pub reserved: u32,
1164     pub value: u64,
1165 }
1166 #[repr(C)]
1167 #[derive(Debug, Default, Copy, Clone)]
1168 pub struct kvm_xcrs {
1169     pub nr_xcrs: u32,
1170     pub flags: u32,
1171     pub xcrs: [kvm_xcr; 16usize],
1172     pub padding: [u64; 16usize],
1173 }
1174 #[repr(C)]
1175 #[derive(Debug, Default, Copy, Clone)]
1176 pub struct kvm_sync_regs {
1177     pub regs: kvm_regs,
1178     pub sregs: kvm_sregs,
1179     pub events: kvm_vcpu_events,
1180 }
1181 #[repr(C)]
1182 #[derive(Debug, Copy, Clone)]
1183 pub struct kvm_vmx_nested_state_data {
1184     pub vmcs12: [u8; 4096usize],
1185     pub shadow_vmcs12: [u8; 4096usize],
1186 }
1187 impl Default for kvm_vmx_nested_state_data {
default() -> Self1188     fn default() -> Self {
1189         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1190         unsafe {
1191             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1192             s.assume_init()
1193         }
1194     }
1195 }
1196 #[repr(C)]
1197 #[derive(Debug, Default, Copy, Clone)]
1198 pub struct kvm_vmx_nested_state_hdr {
1199     pub vmxon_pa: u64,
1200     pub vmcs12_pa: u64,
1201     pub smm: kvm_vmx_nested_state_hdr__bindgen_ty_1,
1202     pub flags: u32,
1203     pub preemption_timer_deadline: u64,
1204 }
1205 #[repr(C)]
1206 #[derive(Debug, Default, Copy, Clone)]
1207 pub struct kvm_vmx_nested_state_hdr__bindgen_ty_1 {
1208     pub flags: u16,
1209 }
1210 #[repr(C)]
1211 #[derive(Debug, Copy, Clone)]
1212 pub struct kvm_svm_nested_state_data {
1213     pub vmcb12: [u8; 4096usize],
1214 }
1215 impl Default for kvm_svm_nested_state_data {
default() -> Self1216     fn default() -> Self {
1217         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1218         unsafe {
1219             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1220             s.assume_init()
1221         }
1222     }
1223 }
1224 #[repr(C)]
1225 #[derive(Debug, Default, Copy, Clone)]
1226 pub struct kvm_svm_nested_state_hdr {
1227     pub vmcb_pa: u64,
1228 }
1229 #[repr(C)]
1230 pub struct kvm_nested_state {
1231     pub flags: u16,
1232     pub format: u16,
1233     pub size: u32,
1234     pub hdr: kvm_nested_state__bindgen_ty_1,
1235     pub data: kvm_nested_state__bindgen_ty_2,
1236 }
1237 #[repr(C)]
1238 #[derive(Copy, Clone)]
1239 pub union kvm_nested_state__bindgen_ty_1 {
1240     pub vmx: kvm_vmx_nested_state_hdr,
1241     pub svm: kvm_svm_nested_state_hdr,
1242     pub pad: [u8; 120usize],
1243 }
1244 impl Default for kvm_nested_state__bindgen_ty_1 {
default() -> Self1245     fn default() -> Self {
1246         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1247         unsafe {
1248             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1249             s.assume_init()
1250         }
1251     }
1252 }
1253 #[repr(C)]
1254 pub struct kvm_nested_state__bindgen_ty_2 {
1255     pub vmx: __BindgenUnionField<[kvm_vmx_nested_state_data; 0usize]>,
1256     pub svm: __BindgenUnionField<[kvm_svm_nested_state_data; 0usize]>,
1257     pub bindgen_union_field: [u8; 0usize],
1258 }
1259 impl Default for kvm_nested_state__bindgen_ty_2 {
default() -> Self1260     fn default() -> Self {
1261         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1262         unsafe {
1263             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1264             s.assume_init()
1265         }
1266     }
1267 }
1268 impl Default for kvm_nested_state {
default() -> Self1269     fn default() -> Self {
1270         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1271         unsafe {
1272             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1273             s.assume_init()
1274         }
1275     }
1276 }
1277 #[repr(C)]
1278 #[derive(Debug, Default)]
1279 pub struct kvm_pmu_event_filter {
1280     pub action: u32,
1281     pub nevents: u32,
1282     pub fixed_counter_bitmap: u32,
1283     pub flags: u32,
1284     pub pad: [u32; 4usize],
1285     pub events: __IncompleteArrayField<u64>,
1286 }
1287 #[repr(C)]
1288 #[derive(Debug, Default, Copy, Clone)]
1289 pub struct kvm_user_trace_setup {
1290     pub buf_size: u32,
1291     pub buf_nr: u32,
1292 }
1293 #[repr(C)]
1294 #[derive(Debug, Default, Copy, Clone)]
1295 pub struct kvm_breakpoint {
1296     pub enabled: u32,
1297     pub padding: u32,
1298     pub address: u64,
1299 }
1300 #[repr(C)]
1301 #[derive(Debug, Default, Copy, Clone)]
1302 pub struct kvm_debug_guest {
1303     pub enabled: u32,
1304     pub pad: u32,
1305     pub breakpoints: [kvm_breakpoint; 4usize],
1306     pub singlestep: u32,
1307 }
1308 #[repr(C)]
1309 #[derive(Debug, Default, Copy, Clone)]
1310 pub struct kvm_memory_region {
1311     pub slot: u32,
1312     pub flags: u32,
1313     pub guest_phys_addr: u64,
1314     pub memory_size: u64,
1315 }
1316 #[repr(C)]
1317 #[derive(Debug, Default, Copy, Clone)]
1318 pub struct kvm_userspace_memory_region {
1319     pub slot: u32,
1320     pub flags: u32,
1321     pub guest_phys_addr: u64,
1322     pub memory_size: u64,
1323     pub userspace_addr: u64,
1324 }
1325 #[repr(C)]
1326 #[derive(Copy, Clone)]
1327 pub struct kvm_irq_level {
1328     pub __bindgen_anon_1: kvm_irq_level__bindgen_ty_1,
1329     pub level: u32,
1330 }
1331 #[repr(C)]
1332 #[derive(Copy, Clone)]
1333 pub union kvm_irq_level__bindgen_ty_1 {
1334     pub irq: u32,
1335     pub status: i32,
1336 }
1337 impl Default for kvm_irq_level__bindgen_ty_1 {
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 impl Default for kvm_irq_level {
default() -> Self1347     fn default() -> Self {
1348         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1349         unsafe {
1350             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1351             s.assume_init()
1352         }
1353     }
1354 }
1355 #[repr(C)]
1356 #[derive(Copy, Clone)]
1357 pub struct kvm_irqchip {
1358     pub chip_id: u32,
1359     pub pad: u32,
1360     pub chip: kvm_irqchip__bindgen_ty_1,
1361 }
1362 #[repr(C)]
1363 #[derive(Copy, Clone)]
1364 pub union kvm_irqchip__bindgen_ty_1 {
1365     pub dummy: [::std::os::raw::c_char; 512usize],
1366     pub pic: kvm_pic_state,
1367     pub ioapic: kvm_ioapic_state,
1368 }
1369 impl Default for kvm_irqchip__bindgen_ty_1 {
default() -> Self1370     fn default() -> Self {
1371         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1372         unsafe {
1373             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1374             s.assume_init()
1375         }
1376     }
1377 }
1378 impl Default for kvm_irqchip {
default() -> Self1379     fn default() -> Self {
1380         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1381         unsafe {
1382             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1383             s.assume_init()
1384         }
1385     }
1386 }
1387 #[repr(C)]
1388 #[derive(Debug, Default, Copy, Clone)]
1389 pub struct kvm_pit_config {
1390     pub flags: u32,
1391     pub pad: [u32; 15usize],
1392 }
1393 #[repr(C)]
1394 #[derive(Debug, Default, Copy, Clone)]
1395 pub struct kvm_s390_skeys {
1396     pub start_gfn: u64,
1397     pub count: u64,
1398     pub skeydata_addr: u64,
1399     pub flags: u32,
1400     pub reserved: [u32; 9usize],
1401 }
1402 #[repr(C)]
1403 #[derive(Copy, Clone)]
1404 pub struct kvm_s390_cmma_log {
1405     pub start_gfn: u64,
1406     pub count: u32,
1407     pub flags: u32,
1408     pub __bindgen_anon_1: kvm_s390_cmma_log__bindgen_ty_1,
1409     pub values: u64,
1410 }
1411 #[repr(C)]
1412 #[derive(Copy, Clone)]
1413 pub union kvm_s390_cmma_log__bindgen_ty_1 {
1414     pub remaining: u64,
1415     pub mask: u64,
1416 }
1417 impl Default for kvm_s390_cmma_log__bindgen_ty_1 {
default() -> Self1418     fn default() -> Self {
1419         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1420         unsafe {
1421             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1422             s.assume_init()
1423         }
1424     }
1425 }
1426 impl Default for kvm_s390_cmma_log {
default() -> Self1427     fn default() -> Self {
1428         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1429         unsafe {
1430             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1431             s.assume_init()
1432         }
1433     }
1434 }
1435 #[repr(C)]
1436 #[derive(Copy, Clone)]
1437 pub struct kvm_hyperv_exit {
1438     pub type_: u32,
1439     pub pad1: u32,
1440     pub u: kvm_hyperv_exit__bindgen_ty_1,
1441 }
1442 #[repr(C)]
1443 #[derive(Copy, Clone)]
1444 pub union kvm_hyperv_exit__bindgen_ty_1 {
1445     pub synic: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1,
1446     pub hcall: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_2,
1447     pub syndbg: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3,
1448 }
1449 #[repr(C)]
1450 #[derive(Debug, Default, Copy, Clone)]
1451 pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1 {
1452     pub msr: u32,
1453     pub pad2: u32,
1454     pub control: u64,
1455     pub evt_page: u64,
1456     pub msg_page: u64,
1457 }
1458 #[repr(C)]
1459 #[derive(Debug, Default, Copy, Clone)]
1460 pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_2 {
1461     pub input: u64,
1462     pub result: u64,
1463     pub params: [u64; 2usize],
1464 }
1465 #[repr(C)]
1466 #[derive(Debug, Default, Copy, Clone)]
1467 pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3 {
1468     pub msr: u32,
1469     pub pad2: u32,
1470     pub control: u64,
1471     pub status: u64,
1472     pub send_page: u64,
1473     pub recv_page: u64,
1474     pub pending_page: u64,
1475 }
1476 impl Default for kvm_hyperv_exit__bindgen_ty_1 {
default() -> Self1477     fn default() -> Self {
1478         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1479         unsafe {
1480             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1481             s.assume_init()
1482         }
1483     }
1484 }
1485 impl Default for kvm_hyperv_exit {
default() -> Self1486     fn default() -> Self {
1487         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1488         unsafe {
1489             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1490             s.assume_init()
1491         }
1492     }
1493 }
1494 #[repr(C)]
1495 #[derive(Copy, Clone)]
1496 pub struct kvm_run {
1497     pub request_interrupt_window: u8,
1498     pub immediate_exit: u8,
1499     pub padding1: [u8; 6usize],
1500     pub exit_reason: u32,
1501     pub ready_for_interrupt_injection: u8,
1502     pub if_flag: u8,
1503     pub flags: u16,
1504     pub cr8: u64,
1505     pub apic_base: u64,
1506     pub __bindgen_anon_1: kvm_run__bindgen_ty_1,
1507     pub kvm_valid_regs: u64,
1508     pub kvm_dirty_regs: u64,
1509     pub s: kvm_run__bindgen_ty_2,
1510 }
1511 #[repr(C)]
1512 #[derive(Copy, Clone)]
1513 pub union kvm_run__bindgen_ty_1 {
1514     pub hw: kvm_run__bindgen_ty_1__bindgen_ty_1,
1515     pub fail_entry: kvm_run__bindgen_ty_1__bindgen_ty_2,
1516     pub ex: kvm_run__bindgen_ty_1__bindgen_ty_3,
1517     pub io: kvm_run__bindgen_ty_1__bindgen_ty_4,
1518     pub debug: kvm_run__bindgen_ty_1__bindgen_ty_5,
1519     pub mmio: kvm_run__bindgen_ty_1__bindgen_ty_6,
1520     pub hypercall: kvm_run__bindgen_ty_1__bindgen_ty_7,
1521     pub tpr_access: kvm_run__bindgen_ty_1__bindgen_ty_8,
1522     pub s390_sieic: kvm_run__bindgen_ty_1__bindgen_ty_9,
1523     pub s390_reset_flags: u64,
1524     pub s390_ucontrol: kvm_run__bindgen_ty_1__bindgen_ty_10,
1525     pub dcr: kvm_run__bindgen_ty_1__bindgen_ty_11,
1526     pub internal: kvm_run__bindgen_ty_1__bindgen_ty_12,
1527     pub osi: kvm_run__bindgen_ty_1__bindgen_ty_13,
1528     pub papr_hcall: kvm_run__bindgen_ty_1__bindgen_ty_14,
1529     pub s390_tsch: kvm_run__bindgen_ty_1__bindgen_ty_15,
1530     pub epr: kvm_run__bindgen_ty_1__bindgen_ty_16,
1531     pub system_event: kvm_run__bindgen_ty_1__bindgen_ty_17,
1532     pub s390_stsi: kvm_run__bindgen_ty_1__bindgen_ty_18,
1533     pub eoi: kvm_run__bindgen_ty_1__bindgen_ty_19,
1534     pub hyperv: kvm_hyperv_exit,
1535     pub arm_nisv: kvm_run__bindgen_ty_1__bindgen_ty_20,
1536     pub msr: kvm_run__bindgen_ty_1__bindgen_ty_21,
1537     pub padding: [::std::os::raw::c_char; 256usize],
1538 }
1539 #[repr(C)]
1540 #[derive(Debug, Default, Copy, Clone)]
1541 pub struct kvm_run__bindgen_ty_1__bindgen_ty_1 {
1542     pub hardware_exit_reason: u64,
1543 }
1544 #[repr(C)]
1545 #[derive(Debug, Default, Copy, Clone)]
1546 pub struct kvm_run__bindgen_ty_1__bindgen_ty_2 {
1547     pub hardware_entry_failure_reason: u64,
1548     pub cpu: u32,
1549 }
1550 #[repr(C)]
1551 #[derive(Debug, Default, Copy, Clone)]
1552 pub struct kvm_run__bindgen_ty_1__bindgen_ty_3 {
1553     pub exception: u32,
1554     pub error_code: u32,
1555 }
1556 #[repr(C)]
1557 #[derive(Debug, Default, Copy, Clone)]
1558 pub struct kvm_run__bindgen_ty_1__bindgen_ty_4 {
1559     pub direction: u8,
1560     pub size: u8,
1561     pub port: u16,
1562     pub count: u32,
1563     pub data_offset: u64,
1564 }
1565 #[repr(C)]
1566 #[derive(Debug, Default, Copy, Clone)]
1567 pub struct kvm_run__bindgen_ty_1__bindgen_ty_5 {
1568     pub arch: kvm_debug_exit_arch,
1569 }
1570 #[repr(C)]
1571 #[derive(Debug, Default, Copy, Clone)]
1572 pub struct kvm_run__bindgen_ty_1__bindgen_ty_6 {
1573     pub phys_addr: u64,
1574     pub data: [u8; 8usize],
1575     pub len: u32,
1576     pub is_write: u8,
1577 }
1578 #[repr(C)]
1579 #[derive(Debug, Default, Copy, Clone)]
1580 pub struct kvm_run__bindgen_ty_1__bindgen_ty_7 {
1581     pub nr: u64,
1582     pub args: [u64; 6usize],
1583     pub ret: u64,
1584     pub longmode: u32,
1585     pub pad: u32,
1586 }
1587 #[repr(C)]
1588 #[derive(Debug, Default, Copy, Clone)]
1589 pub struct kvm_run__bindgen_ty_1__bindgen_ty_8 {
1590     pub rip: u64,
1591     pub is_write: u32,
1592     pub pad: u32,
1593 }
1594 #[repr(C)]
1595 #[derive(Debug, Default, Copy, Clone)]
1596 pub struct kvm_run__bindgen_ty_1__bindgen_ty_9 {
1597     pub icptcode: u8,
1598     pub ipa: u16,
1599     pub ipb: u32,
1600 }
1601 #[repr(C)]
1602 #[derive(Debug, Default, Copy, Clone)]
1603 pub struct kvm_run__bindgen_ty_1__bindgen_ty_10 {
1604     pub trans_exc_code: u64,
1605     pub pgm_code: u32,
1606 }
1607 #[repr(C)]
1608 #[derive(Debug, Default, Copy, Clone)]
1609 pub struct kvm_run__bindgen_ty_1__bindgen_ty_11 {
1610     pub dcrn: u32,
1611     pub data: u32,
1612     pub is_write: u8,
1613 }
1614 #[repr(C)]
1615 #[derive(Debug, Default, Copy, Clone)]
1616 pub struct kvm_run__bindgen_ty_1__bindgen_ty_12 {
1617     pub suberror: u32,
1618     pub ndata: u32,
1619     pub data: [u64; 16usize],
1620 }
1621 #[repr(C)]
1622 #[derive(Debug, Default, Copy, Clone)]
1623 pub struct kvm_run__bindgen_ty_1__bindgen_ty_13 {
1624     pub gprs: [u64; 32usize],
1625 }
1626 #[repr(C)]
1627 #[derive(Debug, Default, Copy, Clone)]
1628 pub struct kvm_run__bindgen_ty_1__bindgen_ty_14 {
1629     pub nr: u64,
1630     pub ret: u64,
1631     pub args: [u64; 9usize],
1632 }
1633 #[repr(C)]
1634 #[derive(Debug, Default, Copy, Clone)]
1635 pub struct kvm_run__bindgen_ty_1__bindgen_ty_15 {
1636     pub subchannel_id: u16,
1637     pub subchannel_nr: u16,
1638     pub io_int_parm: u32,
1639     pub io_int_word: u32,
1640     pub ipb: u32,
1641     pub dequeued: u8,
1642 }
1643 #[repr(C)]
1644 #[derive(Debug, Default, Copy, Clone)]
1645 pub struct kvm_run__bindgen_ty_1__bindgen_ty_16 {
1646     pub epr: u32,
1647 }
1648 #[repr(C)]
1649 #[derive(Debug, Default, Copy, Clone)]
1650 pub struct kvm_run__bindgen_ty_1__bindgen_ty_17 {
1651     pub type_: u32,
1652     pub flags: u64,
1653 }
1654 #[repr(C)]
1655 #[derive(Debug, Default, Copy, Clone)]
1656 pub struct kvm_run__bindgen_ty_1__bindgen_ty_18 {
1657     pub addr: u64,
1658     pub ar: u8,
1659     pub reserved: u8,
1660     pub fc: u8,
1661     pub sel1: u8,
1662     pub sel2: u16,
1663 }
1664 #[repr(C)]
1665 #[derive(Debug, Default, Copy, Clone)]
1666 pub struct kvm_run__bindgen_ty_1__bindgen_ty_19 {
1667     pub vector: u8,
1668 }
1669 #[repr(C)]
1670 #[derive(Debug, Default, Copy, Clone)]
1671 pub struct kvm_run__bindgen_ty_1__bindgen_ty_20 {
1672     pub esr_iss: u64,
1673     pub fault_ipa: u64,
1674 }
1675 #[repr(C)]
1676 #[derive(Debug, Default, Copy, Clone)]
1677 pub struct kvm_run__bindgen_ty_1__bindgen_ty_21 {
1678     pub error: u8,
1679     pub pad: [u8; 7usize],
1680     pub reason: u32,
1681     pub index: u32,
1682     pub data: u64,
1683 }
1684 impl Default for kvm_run__bindgen_ty_1 {
default() -> Self1685     fn default() -> Self {
1686         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1687         unsafe {
1688             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1689             s.assume_init()
1690         }
1691     }
1692 }
1693 #[repr(C)]
1694 #[derive(Copy, Clone)]
1695 pub union kvm_run__bindgen_ty_2 {
1696     pub regs: kvm_sync_regs,
1697     pub padding: [::std::os::raw::c_char; 2048usize],
1698 }
1699 impl Default for kvm_run__bindgen_ty_2 {
default() -> Self1700     fn default() -> Self {
1701         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1702         unsafe {
1703             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1704             s.assume_init()
1705         }
1706     }
1707 }
1708 impl Default for kvm_run {
default() -> Self1709     fn default() -> Self {
1710         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1711         unsafe {
1712             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1713             s.assume_init()
1714         }
1715     }
1716 }
1717 #[repr(C)]
1718 #[derive(Copy, Clone)]
1719 pub struct kvm_coalesced_mmio_zone {
1720     pub addr: u64,
1721     pub size: u32,
1722     pub __bindgen_anon_1: kvm_coalesced_mmio_zone__bindgen_ty_1,
1723 }
1724 #[repr(C)]
1725 #[derive(Copy, Clone)]
1726 pub union kvm_coalesced_mmio_zone__bindgen_ty_1 {
1727     pub pad: u32,
1728     pub pio: u32,
1729 }
1730 impl Default for kvm_coalesced_mmio_zone__bindgen_ty_1 {
default() -> Self1731     fn default() -> Self {
1732         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1733         unsafe {
1734             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1735             s.assume_init()
1736         }
1737     }
1738 }
1739 impl Default for kvm_coalesced_mmio_zone {
default() -> Self1740     fn default() -> Self {
1741         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1742         unsafe {
1743             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1744             s.assume_init()
1745         }
1746     }
1747 }
1748 #[repr(C)]
1749 #[derive(Copy, Clone)]
1750 pub struct kvm_coalesced_mmio {
1751     pub phys_addr: u64,
1752     pub len: u32,
1753     pub __bindgen_anon_1: kvm_coalesced_mmio__bindgen_ty_1,
1754     pub data: [u8; 8usize],
1755 }
1756 #[repr(C)]
1757 #[derive(Copy, Clone)]
1758 pub union kvm_coalesced_mmio__bindgen_ty_1 {
1759     pub pad: u32,
1760     pub pio: u32,
1761 }
1762 impl Default for kvm_coalesced_mmio__bindgen_ty_1 {
default() -> Self1763     fn default() -> Self {
1764         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1765         unsafe {
1766             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1767             s.assume_init()
1768         }
1769     }
1770 }
1771 impl Default for kvm_coalesced_mmio {
default() -> Self1772     fn default() -> Self {
1773         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1774         unsafe {
1775             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1776             s.assume_init()
1777         }
1778     }
1779 }
1780 #[repr(C)]
1781 pub struct kvm_coalesced_mmio_ring {
1782     pub first: u32,
1783     pub last: u32,
1784     pub coalesced_mmio: __IncompleteArrayField<kvm_coalesced_mmio>,
1785 }
1786 impl Default for kvm_coalesced_mmio_ring {
default() -> Self1787     fn default() -> Self {
1788         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1789         unsafe {
1790             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1791             s.assume_init()
1792         }
1793     }
1794 }
1795 #[repr(C)]
1796 #[derive(Debug, Default, Copy, Clone)]
1797 pub struct kvm_translation {
1798     pub linear_address: u64,
1799     pub physical_address: u64,
1800     pub valid: u8,
1801     pub writeable: u8,
1802     pub usermode: u8,
1803     pub pad: [u8; 5usize],
1804 }
1805 #[repr(C)]
1806 #[derive(Copy, Clone)]
1807 pub struct kvm_s390_mem_op {
1808     pub gaddr: u64,
1809     pub flags: u64,
1810     pub size: u32,
1811     pub op: u32,
1812     pub buf: u64,
1813     pub __bindgen_anon_1: kvm_s390_mem_op__bindgen_ty_1,
1814 }
1815 #[repr(C)]
1816 #[derive(Copy, Clone)]
1817 pub union kvm_s390_mem_op__bindgen_ty_1 {
1818     pub ar: u8,
1819     pub sida_offset: u32,
1820     pub reserved: [u8; 32usize],
1821 }
1822 impl Default for kvm_s390_mem_op__bindgen_ty_1 {
default() -> Self1823     fn default() -> Self {
1824         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1825         unsafe {
1826             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1827             s.assume_init()
1828         }
1829     }
1830 }
1831 impl Default for kvm_s390_mem_op {
default() -> Self1832     fn default() -> Self {
1833         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1834         unsafe {
1835             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1836             s.assume_init()
1837         }
1838     }
1839 }
1840 #[repr(C)]
1841 #[derive(Debug, Default, Copy, Clone)]
1842 pub struct kvm_interrupt {
1843     pub irq: u32,
1844 }
1845 #[repr(C)]
1846 #[derive(Copy, Clone)]
1847 pub struct kvm_dirty_log {
1848     pub slot: u32,
1849     pub padding1: u32,
1850     pub __bindgen_anon_1: kvm_dirty_log__bindgen_ty_1,
1851 }
1852 #[repr(C)]
1853 #[derive(Copy, Clone)]
1854 pub union kvm_dirty_log__bindgen_ty_1 {
1855     pub dirty_bitmap: *mut ::std::os::raw::c_void,
1856     pub padding2: u64,
1857 }
1858 impl Default for kvm_dirty_log__bindgen_ty_1 {
default() -> Self1859     fn default() -> Self {
1860         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1861         unsafe {
1862             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1863             s.assume_init()
1864         }
1865     }
1866 }
1867 impl Default for kvm_dirty_log {
default() -> Self1868     fn default() -> Self {
1869         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1870         unsafe {
1871             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1872             s.assume_init()
1873         }
1874     }
1875 }
1876 #[repr(C)]
1877 #[derive(Copy, Clone)]
1878 pub struct kvm_clear_dirty_log {
1879     pub slot: u32,
1880     pub num_pages: u32,
1881     pub first_page: u64,
1882     pub __bindgen_anon_1: kvm_clear_dirty_log__bindgen_ty_1,
1883 }
1884 #[repr(C)]
1885 #[derive(Copy, Clone)]
1886 pub union kvm_clear_dirty_log__bindgen_ty_1 {
1887     pub dirty_bitmap: *mut ::std::os::raw::c_void,
1888     pub padding2: u64,
1889 }
1890 impl Default for kvm_clear_dirty_log__bindgen_ty_1 {
default() -> Self1891     fn default() -> Self {
1892         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1893         unsafe {
1894             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1895             s.assume_init()
1896         }
1897     }
1898 }
1899 impl Default for kvm_clear_dirty_log {
default() -> Self1900     fn default() -> Self {
1901         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1902         unsafe {
1903             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1904             s.assume_init()
1905         }
1906     }
1907 }
1908 #[repr(C)]
1909 #[derive(Debug, Default)]
1910 pub struct kvm_signal_mask {
1911     pub len: u32,
1912     pub sigset: __IncompleteArrayField<u8>,
1913 }
1914 #[repr(C)]
1915 #[derive(Debug, Default, Copy, Clone)]
1916 pub struct kvm_tpr_access_ctl {
1917     pub enabled: u32,
1918     pub flags: u32,
1919     pub reserved: [u32; 8usize],
1920 }
1921 #[repr(C)]
1922 #[derive(Debug, Default, Copy, Clone)]
1923 pub struct kvm_vapic_addr {
1924     pub vapic_addr: u64,
1925 }
1926 #[repr(C)]
1927 #[derive(Debug, Default, Copy, Clone)]
1928 pub struct kvm_mp_state {
1929     pub mp_state: u32,
1930 }
1931 #[repr(C)]
1932 #[derive(Debug, Default, Copy, Clone)]
1933 pub struct kvm_s390_psw {
1934     pub mask: u64,
1935     pub addr: u64,
1936 }
1937 #[repr(C)]
1938 #[derive(Debug, Default, Copy, Clone)]
1939 pub struct kvm_s390_interrupt {
1940     pub type_: u32,
1941     pub parm: u32,
1942     pub parm64: u64,
1943 }
1944 #[repr(C)]
1945 #[derive(Debug, Default, Copy, Clone)]
1946 pub struct kvm_s390_io_info {
1947     pub subchannel_id: u16,
1948     pub subchannel_nr: u16,
1949     pub io_int_parm: u32,
1950     pub io_int_word: u32,
1951 }
1952 #[repr(C)]
1953 #[derive(Debug, Default, Copy, Clone)]
1954 pub struct kvm_s390_ext_info {
1955     pub ext_params: u32,
1956     pub pad: u32,
1957     pub ext_params2: u64,
1958 }
1959 #[repr(C)]
1960 #[derive(Debug, Default, Copy, Clone)]
1961 pub struct kvm_s390_pgm_info {
1962     pub trans_exc_code: u64,
1963     pub mon_code: u64,
1964     pub per_address: u64,
1965     pub data_exc_code: u32,
1966     pub code: u16,
1967     pub mon_class_nr: u16,
1968     pub per_code: u8,
1969     pub per_atmid: u8,
1970     pub exc_access_id: u8,
1971     pub per_access_id: u8,
1972     pub op_access_id: u8,
1973     pub flags: u8,
1974     pub pad: [u8; 2usize],
1975 }
1976 #[repr(C)]
1977 #[derive(Debug, Default, Copy, Clone)]
1978 pub struct kvm_s390_prefix_info {
1979     pub address: u32,
1980 }
1981 #[repr(C)]
1982 #[derive(Debug, Default, Copy, Clone)]
1983 pub struct kvm_s390_extcall_info {
1984     pub code: u16,
1985 }
1986 #[repr(C)]
1987 #[derive(Debug, Default, Copy, Clone)]
1988 pub struct kvm_s390_emerg_info {
1989     pub code: u16,
1990 }
1991 #[repr(C)]
1992 #[derive(Debug, Default, Copy, Clone)]
1993 pub struct kvm_s390_stop_info {
1994     pub flags: u32,
1995 }
1996 #[repr(C)]
1997 #[derive(Debug, Default, Copy, Clone)]
1998 pub struct kvm_s390_mchk_info {
1999     pub cr14: u64,
2000     pub mcic: u64,
2001     pub failing_storage_address: u64,
2002     pub ext_damage_code: u32,
2003     pub pad: u32,
2004     pub fixed_logout: [u8; 16usize],
2005 }
2006 #[repr(C)]
2007 #[derive(Copy, Clone)]
2008 pub struct kvm_s390_irq {
2009     pub type_: u64,
2010     pub u: kvm_s390_irq__bindgen_ty_1,
2011 }
2012 #[repr(C)]
2013 #[derive(Copy, Clone)]
2014 pub union kvm_s390_irq__bindgen_ty_1 {
2015     pub io: kvm_s390_io_info,
2016     pub ext: kvm_s390_ext_info,
2017     pub pgm: kvm_s390_pgm_info,
2018     pub emerg: kvm_s390_emerg_info,
2019     pub extcall: kvm_s390_extcall_info,
2020     pub prefix: kvm_s390_prefix_info,
2021     pub stop: kvm_s390_stop_info,
2022     pub mchk: kvm_s390_mchk_info,
2023     pub reserved: [::std::os::raw::c_char; 64usize],
2024 }
2025 impl Default for kvm_s390_irq__bindgen_ty_1 {
default() -> Self2026     fn default() -> Self {
2027         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2028         unsafe {
2029             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2030             s.assume_init()
2031         }
2032     }
2033 }
2034 impl Default for kvm_s390_irq {
default() -> Self2035     fn default() -> Self {
2036         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2037         unsafe {
2038             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2039             s.assume_init()
2040         }
2041     }
2042 }
2043 #[repr(C)]
2044 #[derive(Debug, Default, Copy, Clone)]
2045 pub struct kvm_s390_irq_state {
2046     pub buf: u64,
2047     pub flags: u32,
2048     pub len: u32,
2049     pub reserved: [u32; 4usize],
2050 }
2051 #[repr(C)]
2052 #[derive(Debug, Default, Copy, Clone)]
2053 pub struct kvm_guest_debug {
2054     pub control: u32,
2055     pub pad: u32,
2056     pub arch: kvm_guest_debug_arch,
2057 }
2058 pub const kvm_ioeventfd_flag_nr_datamatch: ::std::os::raw::c_uint = 0;
2059 pub const kvm_ioeventfd_flag_nr_pio: ::std::os::raw::c_uint = 1;
2060 pub const kvm_ioeventfd_flag_nr_deassign: ::std::os::raw::c_uint = 2;
2061 pub const kvm_ioeventfd_flag_nr_virtio_ccw_notify: ::std::os::raw::c_uint = 3;
2062 pub const kvm_ioeventfd_flag_nr_fast_mmio: ::std::os::raw::c_uint = 4;
2063 pub const kvm_ioeventfd_flag_nr_max: ::std::os::raw::c_uint = 5;
2064 pub type _bindgen_ty_1 = ::std::os::raw::c_uint;
2065 #[repr(C)]
2066 #[derive(Debug, Copy, Clone)]
2067 pub struct kvm_ioeventfd {
2068     pub datamatch: u64,
2069     pub addr: u64,
2070     pub len: u32,
2071     pub fd: i32,
2072     pub flags: u32,
2073     pub pad: [u8; 36usize],
2074 }
2075 impl Default for kvm_ioeventfd {
default() -> Self2076     fn default() -> Self {
2077         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2078         unsafe {
2079             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2080             s.assume_init()
2081         }
2082     }
2083 }
2084 #[repr(C)]
2085 #[derive(Debug, Copy, Clone)]
2086 pub struct kvm_enable_cap {
2087     pub cap: u32,
2088     pub flags: u32,
2089     pub args: [u64; 4usize],
2090     pub pad: [u8; 64usize],
2091 }
2092 impl Default for kvm_enable_cap {
default() -> Self2093     fn default() -> Self {
2094         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2095         unsafe {
2096             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2097             s.assume_init()
2098         }
2099     }
2100 }
2101 #[repr(C)]
2102 #[derive(Debug, Copy, Clone)]
2103 pub struct kvm_ppc_pvinfo {
2104     pub flags: u32,
2105     pub hcall: [u32; 4usize],
2106     pub pad: [u8; 108usize],
2107 }
2108 impl Default for kvm_ppc_pvinfo {
default() -> Self2109     fn default() -> Self {
2110         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2111         unsafe {
2112             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2113             s.assume_init()
2114         }
2115     }
2116 }
2117 #[repr(C)]
2118 #[derive(Debug, Default, Copy, Clone)]
2119 pub struct kvm_ppc_one_page_size {
2120     pub page_shift: u32,
2121     pub pte_enc: u32,
2122 }
2123 #[repr(C)]
2124 #[derive(Debug, Default, Copy, Clone)]
2125 pub struct kvm_ppc_one_seg_page_size {
2126     pub page_shift: u32,
2127     pub slb_enc: u32,
2128     pub enc: [kvm_ppc_one_page_size; 8usize],
2129 }
2130 #[repr(C)]
2131 #[derive(Debug, Default, Copy, Clone)]
2132 pub struct kvm_ppc_smmu_info {
2133     pub flags: u64,
2134     pub slb_size: u32,
2135     pub data_keys: u16,
2136     pub instr_keys: u16,
2137     pub sps: [kvm_ppc_one_seg_page_size; 8usize],
2138 }
2139 #[repr(C)]
2140 #[derive(Debug, Default, Copy, Clone)]
2141 pub struct kvm_ppc_resize_hpt {
2142     pub flags: u64,
2143     pub shift: u32,
2144     pub pad: u32,
2145 }
2146 #[repr(C)]
2147 #[derive(Debug, Default, Copy, Clone)]
2148 pub struct kvm_irq_routing_irqchip {
2149     pub irqchip: u32,
2150     pub pin: u32,
2151 }
2152 #[repr(C)]
2153 #[derive(Copy, Clone)]
2154 pub struct kvm_irq_routing_msi {
2155     pub address_lo: u32,
2156     pub address_hi: u32,
2157     pub data: u32,
2158     pub __bindgen_anon_1: kvm_irq_routing_msi__bindgen_ty_1,
2159 }
2160 #[repr(C)]
2161 #[derive(Copy, Clone)]
2162 pub union kvm_irq_routing_msi__bindgen_ty_1 {
2163     pub pad: u32,
2164     pub devid: u32,
2165 }
2166 impl Default for kvm_irq_routing_msi__bindgen_ty_1 {
default() -> Self2167     fn default() -> Self {
2168         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2169         unsafe {
2170             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2171             s.assume_init()
2172         }
2173     }
2174 }
2175 impl Default for kvm_irq_routing_msi {
default() -> Self2176     fn default() -> Self {
2177         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2178         unsafe {
2179             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2180             s.assume_init()
2181         }
2182     }
2183 }
2184 #[repr(C)]
2185 #[derive(Debug, Default, Copy, Clone)]
2186 pub struct kvm_irq_routing_s390_adapter {
2187     pub ind_addr: u64,
2188     pub summary_addr: u64,
2189     pub ind_offset: u64,
2190     pub summary_offset: u32,
2191     pub adapter_id: u32,
2192 }
2193 #[repr(C)]
2194 #[derive(Debug, Default, Copy, Clone)]
2195 pub struct kvm_irq_routing_hv_sint {
2196     pub vcpu: u32,
2197     pub sint: u32,
2198 }
2199 #[repr(C)]
2200 #[derive(Copy, Clone)]
2201 pub struct kvm_irq_routing_entry {
2202     pub gsi: u32,
2203     pub type_: u32,
2204     pub flags: u32,
2205     pub pad: u32,
2206     pub u: kvm_irq_routing_entry__bindgen_ty_1,
2207 }
2208 #[repr(C)]
2209 #[derive(Copy, Clone)]
2210 pub union kvm_irq_routing_entry__bindgen_ty_1 {
2211     pub irqchip: kvm_irq_routing_irqchip,
2212     pub msi: kvm_irq_routing_msi,
2213     pub adapter: kvm_irq_routing_s390_adapter,
2214     pub hv_sint: kvm_irq_routing_hv_sint,
2215     pub pad: [u32; 8usize],
2216 }
2217 impl Default for kvm_irq_routing_entry__bindgen_ty_1 {
default() -> Self2218     fn default() -> Self {
2219         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2220         unsafe {
2221             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2222             s.assume_init()
2223         }
2224     }
2225 }
2226 impl Default for kvm_irq_routing_entry {
default() -> Self2227     fn default() -> Self {
2228         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2229         unsafe {
2230             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2231             s.assume_init()
2232         }
2233     }
2234 }
2235 #[repr(C)]
2236 pub struct kvm_irq_routing {
2237     pub nr: u32,
2238     pub flags: u32,
2239     pub entries: __IncompleteArrayField<kvm_irq_routing_entry>,
2240 }
2241 impl Default for kvm_irq_routing {
default() -> Self2242     fn default() -> Self {
2243         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2244         unsafe {
2245             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2246             s.assume_init()
2247         }
2248     }
2249 }
2250 #[repr(C)]
2251 #[derive(Debug, Default, Copy, Clone)]
2252 pub struct kvm_x86_mce {
2253     pub status: u64,
2254     pub addr: u64,
2255     pub misc: u64,
2256     pub mcg_status: u64,
2257     pub bank: u8,
2258     pub pad1: [u8; 7usize],
2259     pub pad2: [u64; 3usize],
2260 }
2261 #[repr(C)]
2262 #[derive(Debug, Default, Copy, Clone)]
2263 pub struct kvm_xen_hvm_config {
2264     pub flags: u32,
2265     pub msr: u32,
2266     pub blob_addr_32: u64,
2267     pub blob_addr_64: u64,
2268     pub blob_size_32: u8,
2269     pub blob_size_64: u8,
2270     pub pad2: [u8; 30usize],
2271 }
2272 #[repr(C)]
2273 #[derive(Debug, Default, Copy, Clone)]
2274 pub struct kvm_irqfd {
2275     pub fd: u32,
2276     pub gsi: u32,
2277     pub flags: u32,
2278     pub resamplefd: u32,
2279     pub pad: [u8; 16usize],
2280 }
2281 #[repr(C)]
2282 #[derive(Debug, Default, Copy, Clone)]
2283 pub struct kvm_clock_data {
2284     pub clock: u64,
2285     pub flags: u32,
2286     pub pad: [u32; 9usize],
2287 }
2288 #[repr(C)]
2289 #[derive(Debug, Default, Copy, Clone)]
2290 pub struct kvm_config_tlb {
2291     pub params: u64,
2292     pub array: u64,
2293     pub mmu_type: u32,
2294     pub array_len: u32,
2295 }
2296 #[repr(C)]
2297 #[derive(Debug, Default, Copy, Clone)]
2298 pub struct kvm_dirty_tlb {
2299     pub bitmap: u64,
2300     pub num_dirty: u32,
2301 }
2302 #[repr(C)]
2303 #[derive(Debug, Default)]
2304 pub struct kvm_reg_list {
2305     pub n: u64,
2306     pub reg: __IncompleteArrayField<u64>,
2307 }
2308 #[repr(C)]
2309 #[derive(Debug, Default, Copy, Clone)]
2310 pub struct kvm_one_reg {
2311     pub id: u64,
2312     pub addr: u64,
2313 }
2314 #[repr(C)]
2315 #[derive(Debug, Default, Copy, Clone)]
2316 pub struct kvm_msi {
2317     pub address_lo: u32,
2318     pub address_hi: u32,
2319     pub data: u32,
2320     pub flags: u32,
2321     pub devid: u32,
2322     pub pad: [u8; 12usize],
2323 }
2324 #[repr(C)]
2325 #[derive(Debug, Default, Copy, Clone)]
2326 pub struct kvm_arm_device_addr {
2327     pub id: u64,
2328     pub addr: u64,
2329 }
2330 #[repr(C)]
2331 #[derive(Debug, Default, Copy, Clone)]
2332 pub struct kvm_create_device {
2333     pub type_: u32,
2334     pub fd: u32,
2335     pub flags: u32,
2336 }
2337 #[repr(C)]
2338 #[derive(Debug, Default, Copy, Clone)]
2339 pub struct kvm_device_attr {
2340     pub flags: u32,
2341     pub group: u32,
2342     pub attr: u64,
2343     pub addr: u64,
2344 }
2345 pub const kvm_device_type_KVM_DEV_TYPE_FSL_MPIC_20: kvm_device_type = 1;
2346 pub const kvm_device_type_KVM_DEV_TYPE_FSL_MPIC_42: kvm_device_type = 2;
2347 pub const kvm_device_type_KVM_DEV_TYPE_XICS: kvm_device_type = 3;
2348 pub const kvm_device_type_KVM_DEV_TYPE_VFIO: kvm_device_type = 4;
2349 pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_V2: kvm_device_type = 5;
2350 pub const kvm_device_type_KVM_DEV_TYPE_FLIC: kvm_device_type = 6;
2351 pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_V3: kvm_device_type = 7;
2352 pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_ITS: kvm_device_type = 8;
2353 pub const kvm_device_type_KVM_DEV_TYPE_XIVE: kvm_device_type = 9;
2354 pub const kvm_device_type_KVM_DEV_TYPE_ARM_PV_TIME: kvm_device_type = 10;
2355 pub const kvm_device_type_KVM_DEV_TYPE_MAX: kvm_device_type = 11;
2356 pub type kvm_device_type = ::std::os::raw::c_uint;
2357 #[repr(C)]
2358 #[derive(Debug, Default, Copy, Clone)]
2359 pub struct kvm_vfio_spapr_tce {
2360     pub groupfd: i32,
2361     pub tablefd: i32,
2362 }
2363 #[repr(C)]
2364 #[derive(Debug, Default, Copy, Clone)]
2365 pub struct kvm_s390_ucas_mapping {
2366     pub user_addr: u64,
2367     pub vcpu_addr: u64,
2368     pub length: u64,
2369 }
2370 #[repr(C)]
2371 #[derive(Debug, Default, Copy, Clone)]
2372 pub struct kvm_enc_region {
2373     pub addr: u64,
2374     pub size: u64,
2375 }
2376 #[repr(C)]
2377 #[derive(Debug, Default, Copy, Clone)]
2378 pub struct kvm_s390_pv_sec_parm {
2379     pub origin: u64,
2380     pub length: u64,
2381 }
2382 #[repr(C)]
2383 #[derive(Debug, Default, Copy, Clone)]
2384 pub struct kvm_s390_pv_unp {
2385     pub addr: u64,
2386     pub size: u64,
2387     pub tweak: u64,
2388 }
2389 pub const pv_cmd_id_KVM_PV_ENABLE: pv_cmd_id = 0;
2390 pub const pv_cmd_id_KVM_PV_DISABLE: pv_cmd_id = 1;
2391 pub const pv_cmd_id_KVM_PV_SET_SEC_PARMS: pv_cmd_id = 2;
2392 pub const pv_cmd_id_KVM_PV_UNPACK: pv_cmd_id = 3;
2393 pub const pv_cmd_id_KVM_PV_VERIFY: pv_cmd_id = 4;
2394 pub const pv_cmd_id_KVM_PV_PREP_RESET: pv_cmd_id = 5;
2395 pub const pv_cmd_id_KVM_PV_UNSHARE_ALL: pv_cmd_id = 6;
2396 pub type pv_cmd_id = ::std::os::raw::c_uint;
2397 #[repr(C)]
2398 #[derive(Debug, Default, Copy, Clone)]
2399 pub struct kvm_pv_cmd {
2400     pub cmd: u32,
2401     pub rc: u16,
2402     pub rrc: u16,
2403     pub data: u64,
2404     pub flags: u32,
2405     pub reserved: [u32; 3usize],
2406 }
2407 pub const sev_cmd_id_KVM_SEV_INIT: sev_cmd_id = 0;
2408 pub const sev_cmd_id_KVM_SEV_ES_INIT: sev_cmd_id = 1;
2409 pub const sev_cmd_id_KVM_SEV_LAUNCH_START: sev_cmd_id = 2;
2410 pub const sev_cmd_id_KVM_SEV_LAUNCH_UPDATE_DATA: sev_cmd_id = 3;
2411 pub const sev_cmd_id_KVM_SEV_LAUNCH_UPDATE_VMSA: sev_cmd_id = 4;
2412 pub const sev_cmd_id_KVM_SEV_LAUNCH_SECRET: sev_cmd_id = 5;
2413 pub const sev_cmd_id_KVM_SEV_LAUNCH_MEASURE: sev_cmd_id = 6;
2414 pub const sev_cmd_id_KVM_SEV_LAUNCH_FINISH: sev_cmd_id = 7;
2415 pub const sev_cmd_id_KVM_SEV_SEND_START: sev_cmd_id = 8;
2416 pub const sev_cmd_id_KVM_SEV_SEND_UPDATE_DATA: sev_cmd_id = 9;
2417 pub const sev_cmd_id_KVM_SEV_SEND_UPDATE_VMSA: sev_cmd_id = 10;
2418 pub const sev_cmd_id_KVM_SEV_SEND_FINISH: sev_cmd_id = 11;
2419 pub const sev_cmd_id_KVM_SEV_RECEIVE_START: sev_cmd_id = 12;
2420 pub const sev_cmd_id_KVM_SEV_RECEIVE_UPDATE_DATA: sev_cmd_id = 13;
2421 pub const sev_cmd_id_KVM_SEV_RECEIVE_UPDATE_VMSA: sev_cmd_id = 14;
2422 pub const sev_cmd_id_KVM_SEV_RECEIVE_FINISH: sev_cmd_id = 15;
2423 pub const sev_cmd_id_KVM_SEV_GUEST_STATUS: sev_cmd_id = 16;
2424 pub const sev_cmd_id_KVM_SEV_DBG_DECRYPT: sev_cmd_id = 17;
2425 pub const sev_cmd_id_KVM_SEV_DBG_ENCRYPT: sev_cmd_id = 18;
2426 pub const sev_cmd_id_KVM_SEV_CERT_EXPORT: sev_cmd_id = 19;
2427 pub const sev_cmd_id_KVM_SEV_NR_MAX: sev_cmd_id = 20;
2428 pub type sev_cmd_id = ::std::os::raw::c_uint;
2429 #[repr(C)]
2430 #[derive(Debug, Default, Copy, Clone)]
2431 pub struct kvm_sev_cmd {
2432     pub id: u32,
2433     pub data: u64,
2434     pub error: u32,
2435     pub sev_fd: u32,
2436 }
2437 #[repr(C)]
2438 #[derive(Debug, Default, Copy, Clone)]
2439 pub struct kvm_sev_launch_start {
2440     pub handle: u32,
2441     pub policy: u32,
2442     pub dh_uaddr: u64,
2443     pub dh_len: u32,
2444     pub session_uaddr: u64,
2445     pub session_len: u32,
2446 }
2447 #[repr(C)]
2448 #[derive(Debug, Default, Copy, Clone)]
2449 pub struct kvm_sev_launch_update_data {
2450     pub uaddr: u64,
2451     pub len: u32,
2452 }
2453 #[repr(C)]
2454 #[derive(Debug, Default, Copy, Clone)]
2455 pub struct kvm_sev_launch_secret {
2456     pub hdr_uaddr: u64,
2457     pub hdr_len: u32,
2458     pub guest_uaddr: u64,
2459     pub guest_len: u32,
2460     pub trans_uaddr: u64,
2461     pub trans_len: u32,
2462 }
2463 #[repr(C)]
2464 #[derive(Debug, Default, Copy, Clone)]
2465 pub struct kvm_sev_launch_measure {
2466     pub uaddr: u64,
2467     pub len: u32,
2468 }
2469 #[repr(C)]
2470 #[derive(Debug, Default, Copy, Clone)]
2471 pub struct kvm_sev_guest_status {
2472     pub handle: u32,
2473     pub policy: u32,
2474     pub state: u32,
2475 }
2476 #[repr(C)]
2477 #[derive(Debug, Default, Copy, Clone)]
2478 pub struct kvm_sev_dbg {
2479     pub src_uaddr: u64,
2480     pub dst_uaddr: u64,
2481     pub len: u32,
2482 }
2483 #[repr(C)]
2484 #[derive(Copy, Clone)]
2485 pub struct kvm_assigned_pci_dev {
2486     pub assigned_dev_id: u32,
2487     pub busnr: u32,
2488     pub devfn: u32,
2489     pub flags: u32,
2490     pub segnr: u32,
2491     pub __bindgen_anon_1: kvm_assigned_pci_dev__bindgen_ty_1,
2492 }
2493 #[repr(C)]
2494 #[derive(Copy, Clone)]
2495 pub union kvm_assigned_pci_dev__bindgen_ty_1 {
2496     pub reserved: [u32; 11usize],
2497 }
2498 impl Default for kvm_assigned_pci_dev__bindgen_ty_1 {
default() -> Self2499     fn default() -> Self {
2500         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2501         unsafe {
2502             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2503             s.assume_init()
2504         }
2505     }
2506 }
2507 impl Default for kvm_assigned_pci_dev {
default() -> Self2508     fn default() -> Self {
2509         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2510         unsafe {
2511             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2512             s.assume_init()
2513         }
2514     }
2515 }
2516 #[repr(C)]
2517 #[derive(Copy, Clone)]
2518 pub struct kvm_assigned_irq {
2519     pub assigned_dev_id: u32,
2520     pub host_irq: u32,
2521     pub guest_irq: u32,
2522     pub flags: u32,
2523     pub __bindgen_anon_1: kvm_assigned_irq__bindgen_ty_1,
2524 }
2525 #[repr(C)]
2526 #[derive(Copy, Clone)]
2527 pub union kvm_assigned_irq__bindgen_ty_1 {
2528     pub reserved: [u32; 12usize],
2529 }
2530 impl Default for kvm_assigned_irq__bindgen_ty_1 {
default() -> Self2531     fn default() -> Self {
2532         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2533         unsafe {
2534             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2535             s.assume_init()
2536         }
2537     }
2538 }
2539 impl Default for kvm_assigned_irq {
default() -> Self2540     fn default() -> Self {
2541         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2542         unsafe {
2543             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2544             s.assume_init()
2545         }
2546     }
2547 }
2548 #[repr(C)]
2549 #[derive(Debug, Default, Copy, Clone)]
2550 pub struct kvm_assigned_msix_nr {
2551     pub assigned_dev_id: u32,
2552     pub entry_nr: u16,
2553     pub padding: u16,
2554 }
2555 #[repr(C)]
2556 #[derive(Debug, Default, Copy, Clone)]
2557 pub struct kvm_assigned_msix_entry {
2558     pub assigned_dev_id: u32,
2559     pub gsi: u32,
2560     pub entry: u16,
2561     pub padding: [u16; 3usize],
2562 }
2563 #[repr(C)]
2564 #[derive(Debug, Default, Copy, Clone)]
2565 pub struct kvm_hyperv_eventfd {
2566     pub conn_id: u32,
2567     pub fd: i32,
2568     pub flags: u32,
2569     pub padding: [u32; 3usize],
2570 }
2571