• 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::undocumented_unsafe_blocks)]
5 #![allow(clippy::upper_case_acronyms)]
6 #![allow(non_upper_case_globals)]
7 #![allow(non_camel_case_types)]
8 #![allow(non_snake_case)]
9 #![allow(dead_code)]
10 
11 // Added by kvm_sys/bindgen.sh
12 use zerocopy::AsBytes;
13 use zerocopy::FromBytes;
14 use zerocopy::FromZeroes;
15 
16 // TODO(b/316337317): Update if new memslot flag is accepted in upstream
17 pub const KVM_MEM_NON_COHERENT_DMA: u32 = 8;
18 pub const KVM_CAP_USER_CONFIGURE_NONCOHERENT_DMA: u32 = 236;
19 
20 // TODO(qwandor): Update this once the pKVM patches are merged upstream with a stable capability ID.
21 pub const KVM_CAP_ARM_PROTECTED_VM: u32 = 0xffbadab1;
22 pub const KVM_CAP_ARM_PROTECTED_VM_FLAGS_SET_FW_IPA: u32 = 0;
23 pub const KVM_CAP_ARM_PROTECTED_VM_FLAGS_INFO: u32 = 1;
24 pub const KVM_VM_TYPE_ARM_PROTECTED: u32 = 0x80000000;
25 pub const KVM_DEV_VFIO_PVIOMMU: u32 = 2;
26 pub const KVM_DEV_VFIO_PVIOMMU_ATTACH: u32 = 1;
27 #[repr(C)]
28 #[derive(Debug, Default, Copy, Clone)]
29 pub struct kvm_vfio_iommu_info {
30     pub device_fd: i32,
31     pub nr_sids: u32,
32 }
33 pub const KVM_DEV_VFIO_PVIOMMU_GET_INFO: u32 = 2;
34 #[repr(C)]
35 #[derive(Debug, Default, Copy, Clone)]
36 pub struct kvm_vfio_iommu_config {
37     pub device_fd: i32,
38     pub sid_idx: u32,
39     pub vsid: u32,
40 }
41 pub const KVM_PVIOMMU_SET_CONFIG: i32 = 1;
42 
43 #[repr(C)]
44 #[derive(Default)]
45 pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]);
46 impl<T> __IncompleteArrayField<T> {
47     #[inline]
new() -> Self48     pub const fn new() -> Self {
49         __IncompleteArrayField(::std::marker::PhantomData, [])
50     }
51     #[inline]
as_ptr(&self) -> *const T52     pub fn as_ptr(&self) -> *const T {
53         self as *const _ as *const T
54     }
55     #[inline]
as_mut_ptr(&mut self) -> *mut T56     pub fn as_mut_ptr(&mut self) -> *mut T {
57         self as *mut _ as *mut T
58     }
59     #[inline]
as_slice(&self, len: usize) -> &[T]60     pub unsafe fn as_slice(&self, len: usize) -> &[T] {
61         ::std::slice::from_raw_parts(self.as_ptr(), len)
62     }
63     #[inline]
as_mut_slice(&mut self, len: usize) -> &mut [T]64     pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
65         ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
66     }
67 }
68 impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result69     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
70         fmt.write_str("__IncompleteArrayField")
71     }
72 }
73 pub const PTRACE_GETFDPIC: u32 = 33;
74 pub const PTRACE_GETFDPIC_EXEC: u32 = 0;
75 pub const PTRACE_GETFDPIC_INTERP: u32 = 1;
76 pub const RISCV_MAX_VLENB: u32 = 8192;
77 pub const KVM_COALESCED_MMIO_PAGE_OFFSET: u32 = 1;
78 pub const KVM_INTERRUPT_SET: i32 = -1;
79 pub const KVM_INTERRUPT_UNSET: i32 = -2;
80 pub const KVM_RISCV_MODE_S: u32 = 1;
81 pub const KVM_RISCV_MODE_U: u32 = 0;
82 pub const KVM_RISCV_TIMER_STATE_OFF: u32 = 0;
83 pub const KVM_RISCV_TIMER_STATE_ON: u32 = 1;
84 pub const KVM_REG_RISCV_TYPE_MASK: u32 = 4278190080;
85 pub const KVM_REG_RISCV_TYPE_SHIFT: u32 = 24;
86 pub const KVM_REG_RISCV_SUBTYPE_MASK: u32 = 16711680;
87 pub const KVM_REG_RISCV_SUBTYPE_SHIFT: u32 = 16;
88 pub const KVM_REG_RISCV_CONFIG: u32 = 16777216;
89 pub const KVM_REG_RISCV_CORE: u32 = 33554432;
90 pub const KVM_REG_RISCV_CSR: u32 = 50331648;
91 pub const KVM_REG_RISCV_CSR_GENERAL: u32 = 0;
92 pub const KVM_REG_RISCV_CSR_AIA: u32 = 65536;
93 pub const KVM_REG_RISCV_TIMER: u32 = 67108864;
94 pub const KVM_REG_RISCV_FP_F: u32 = 83886080;
95 pub const KVM_REG_RISCV_FP_D: u32 = 100663296;
96 pub const KVM_REG_RISCV_ISA_EXT: u32 = 117440512;
97 pub const KVM_REG_RISCV_ISA_SINGLE: u32 = 0;
98 pub const KVM_REG_RISCV_ISA_MULTI_EN: u32 = 65536;
99 pub const KVM_REG_RISCV_ISA_MULTI_DIS: u32 = 131072;
100 pub const KVM_REG_RISCV_SBI_EXT: u32 = 134217728;
101 pub const KVM_REG_RISCV_SBI_SINGLE: u32 = 0;
102 pub const KVM_REG_RISCV_SBI_MULTI_EN: u32 = 65536;
103 pub const KVM_REG_RISCV_SBI_MULTI_DIS: u32 = 131072;
104 pub const KVM_REG_RISCV_VECTOR: u32 = 150994944;
105 pub const KVM_DEV_RISCV_APLIC_ALIGN: u32 = 4096;
106 pub const KVM_DEV_RISCV_APLIC_SIZE: u32 = 16384;
107 pub const KVM_DEV_RISCV_APLIC_MAX_HARTS: u32 = 16384;
108 pub const KVM_DEV_RISCV_IMSIC_ALIGN: u32 = 4096;
109 pub const KVM_DEV_RISCV_IMSIC_SIZE: u32 = 4096;
110 pub const KVM_DEV_RISCV_AIA_GRP_CONFIG: u32 = 0;
111 pub const KVM_DEV_RISCV_AIA_CONFIG_MODE: u32 = 0;
112 pub const KVM_DEV_RISCV_AIA_CONFIG_IDS: u32 = 1;
113 pub const KVM_DEV_RISCV_AIA_CONFIG_SRCS: u32 = 2;
114 pub const KVM_DEV_RISCV_AIA_CONFIG_GROUP_BITS: u32 = 3;
115 pub const KVM_DEV_RISCV_AIA_CONFIG_GROUP_SHIFT: u32 = 4;
116 pub const KVM_DEV_RISCV_AIA_CONFIG_HART_BITS: u32 = 5;
117 pub const KVM_DEV_RISCV_AIA_CONFIG_GUEST_BITS: u32 = 6;
118 pub const KVM_DEV_RISCV_AIA_MODE_EMUL: u32 = 0;
119 pub const KVM_DEV_RISCV_AIA_MODE_HWACCEL: u32 = 1;
120 pub const KVM_DEV_RISCV_AIA_MODE_AUTO: u32 = 2;
121 pub const KVM_DEV_RISCV_AIA_IDS_MIN: u32 = 63;
122 pub const KVM_DEV_RISCV_AIA_IDS_MAX: u32 = 2048;
123 pub const KVM_DEV_RISCV_AIA_SRCS_MAX: u32 = 1024;
124 pub const KVM_DEV_RISCV_AIA_GROUP_BITS_MAX: u32 = 8;
125 pub const KVM_DEV_RISCV_AIA_GROUP_SHIFT_MIN: u32 = 24;
126 pub const KVM_DEV_RISCV_AIA_GROUP_SHIFT_MAX: u32 = 56;
127 pub const KVM_DEV_RISCV_AIA_HART_BITS_MAX: u32 = 16;
128 pub const KVM_DEV_RISCV_AIA_GUEST_BITS_MAX: u32 = 8;
129 pub const KVM_DEV_RISCV_AIA_GRP_ADDR: u32 = 1;
130 pub const KVM_DEV_RISCV_AIA_ADDR_APLIC: u32 = 0;
131 pub const KVM_DEV_RISCV_AIA_ADDR_MAX: u32 = 16385;
132 pub const KVM_DEV_RISCV_AIA_GRP_CTRL: u32 = 2;
133 pub const KVM_DEV_RISCV_AIA_CTRL_INIT: u32 = 0;
134 pub const KVM_DEV_RISCV_AIA_GRP_APLIC: u32 = 3;
135 pub const KVM_DEV_RISCV_AIA_GRP_IMSIC: u32 = 4;
136 pub const KVM_DEV_RISCV_AIA_IMSIC_ISEL_BITS: u32 = 12;
137 pub const KVM_DEV_RISCV_AIA_IMSIC_ISEL_MASK: u32 = 4095;
138 pub const KVM_NR_IRQCHIPS: u32 = 1;
139 pub const KVM_API_VERSION: u32 = 12;
140 pub const KVM_TRC_SHIFT: u32 = 16;
141 pub const KVM_TRC_ENTRYEXIT: u32 = 65536;
142 pub const KVM_TRC_HANDLER: u32 = 131072;
143 pub const KVM_TRC_VMENTRY: u32 = 65537;
144 pub const KVM_TRC_VMEXIT: u32 = 65538;
145 pub const KVM_TRC_PAGE_FAULT: u32 = 131073;
146 pub const KVM_TRC_HEAD_SIZE: u32 = 12;
147 pub const KVM_TRC_CYCLE_SIZE: u32 = 8;
148 pub const KVM_TRC_EXTRA_MAX: u32 = 7;
149 pub const KVM_TRC_INJ_VIRQ: u32 = 131074;
150 pub const KVM_TRC_REDELIVER_EVT: u32 = 131075;
151 pub const KVM_TRC_PEND_INTR: u32 = 131076;
152 pub const KVM_TRC_IO_READ: u32 = 131077;
153 pub const KVM_TRC_IO_WRITE: u32 = 131078;
154 pub const KVM_TRC_CR_READ: u32 = 131079;
155 pub const KVM_TRC_CR_WRITE: u32 = 131080;
156 pub const KVM_TRC_DR_READ: u32 = 131081;
157 pub const KVM_TRC_DR_WRITE: u32 = 131082;
158 pub const KVM_TRC_MSR_READ: u32 = 131083;
159 pub const KVM_TRC_MSR_WRITE: u32 = 131084;
160 pub const KVM_TRC_CPUID: u32 = 131085;
161 pub const KVM_TRC_INTR: u32 = 131086;
162 pub const KVM_TRC_NMI: u32 = 131087;
163 pub const KVM_TRC_VMMCALL: u32 = 131088;
164 pub const KVM_TRC_HLT: u32 = 131089;
165 pub const KVM_TRC_CLTS: u32 = 131090;
166 pub const KVM_TRC_LMSW: u32 = 131091;
167 pub const KVM_TRC_APIC_ACCESS: u32 = 131092;
168 pub const KVM_TRC_TDP_FAULT: u32 = 131093;
169 pub const KVM_TRC_GTLB_WRITE: u32 = 131094;
170 pub const KVM_TRC_STLB_WRITE: u32 = 131095;
171 pub const KVM_TRC_STLB_INVAL: u32 = 131096;
172 pub const KVM_TRC_PPC_INSTR: u32 = 131097;
173 pub const KVM_MEM_LOG_DIRTY_PAGES: u32 = 1;
174 pub const KVM_MEM_READONLY: u32 = 2;
175 pub const KVM_PIT_SPEAKER_DUMMY: u32 = 1;
176 pub const KVM_S390_CMMA_PEEK: u32 = 1;
177 pub const KVM_EXIT_HYPERV_SYNIC: u32 = 1;
178 pub const KVM_EXIT_HYPERV_HCALL: u32 = 2;
179 pub const KVM_EXIT_HYPERV_SYNDBG: u32 = 3;
180 pub const KVM_EXIT_XEN_HCALL: u32 = 1;
181 pub const KVM_S390_GET_SKEYS_NONE: u32 = 1;
182 pub const KVM_S390_SKEYS_MAX: u32 = 1048576;
183 pub const KVM_EXIT_UNKNOWN: u32 = 0;
184 pub const KVM_EXIT_EXCEPTION: u32 = 1;
185 pub const KVM_EXIT_IO: u32 = 2;
186 pub const KVM_EXIT_HYPERCALL: u32 = 3;
187 pub const KVM_EXIT_DEBUG: u32 = 4;
188 pub const KVM_EXIT_HLT: u32 = 5;
189 pub const KVM_EXIT_MMIO: u32 = 6;
190 pub const KVM_EXIT_IRQ_WINDOW_OPEN: u32 = 7;
191 pub const KVM_EXIT_SHUTDOWN: u32 = 8;
192 pub const KVM_EXIT_FAIL_ENTRY: u32 = 9;
193 pub const KVM_EXIT_INTR: u32 = 10;
194 pub const KVM_EXIT_SET_TPR: u32 = 11;
195 pub const KVM_EXIT_TPR_ACCESS: u32 = 12;
196 pub const KVM_EXIT_S390_SIEIC: u32 = 13;
197 pub const KVM_EXIT_S390_RESET: u32 = 14;
198 pub const KVM_EXIT_DCR: u32 = 15;
199 pub const KVM_EXIT_NMI: u32 = 16;
200 pub const KVM_EXIT_INTERNAL_ERROR: u32 = 17;
201 pub const KVM_EXIT_OSI: u32 = 18;
202 pub const KVM_EXIT_PAPR_HCALL: u32 = 19;
203 pub const KVM_EXIT_S390_UCONTROL: u32 = 20;
204 pub const KVM_EXIT_WATCHDOG: u32 = 21;
205 pub const KVM_EXIT_S390_TSCH: u32 = 22;
206 pub const KVM_EXIT_EPR: u32 = 23;
207 pub const KVM_EXIT_SYSTEM_EVENT: u32 = 24;
208 pub const KVM_EXIT_S390_STSI: u32 = 25;
209 pub const KVM_EXIT_IOAPIC_EOI: u32 = 26;
210 pub const KVM_EXIT_HYPERV: u32 = 27;
211 pub const KVM_EXIT_ARM_NISV: u32 = 28;
212 pub const KVM_EXIT_X86_RDMSR: u32 = 29;
213 pub const KVM_EXIT_X86_WRMSR: u32 = 30;
214 pub const KVM_EXIT_DIRTY_RING_FULL: u32 = 31;
215 pub const KVM_EXIT_AP_RESET_HOLD: u32 = 32;
216 pub const KVM_EXIT_X86_BUS_LOCK: u32 = 33;
217 pub const KVM_EXIT_XEN: u32 = 34;
218 pub const KVM_EXIT_RISCV_SBI: u32 = 35;
219 pub const KVM_EXIT_RISCV_CSR: u32 = 36;
220 pub const KVM_EXIT_NOTIFY: u32 = 37;
221 pub const KVM_INTERNAL_ERROR_EMULATION: u32 = 1;
222 pub const KVM_INTERNAL_ERROR_SIMUL_EX: u32 = 2;
223 pub const KVM_INTERNAL_ERROR_DELIVERY_EV: u32 = 3;
224 pub const KVM_INTERNAL_ERROR_UNEXPECTED_EXIT_REASON: u32 = 4;
225 pub const KVM_INTERNAL_ERROR_EMULATION_FLAG_INSTRUCTION_BYTES: u32 = 1;
226 pub const KVM_EXIT_IO_IN: u32 = 0;
227 pub const KVM_EXIT_IO_OUT: u32 = 1;
228 pub const KVM_S390_RESET_POR: u32 = 1;
229 pub const KVM_S390_RESET_CLEAR: u32 = 2;
230 pub const KVM_S390_RESET_SUBSYSTEM: u32 = 4;
231 pub const KVM_S390_RESET_CPU_INIT: u32 = 8;
232 pub const KVM_S390_RESET_IPL: u32 = 16;
233 pub const KVM_SYSTEM_EVENT_SHUTDOWN: u32 = 1;
234 pub const KVM_SYSTEM_EVENT_RESET: u32 = 2;
235 pub const KVM_SYSTEM_EVENT_CRASH: u32 = 3;
236 pub const KVM_SYSTEM_EVENT_WAKEUP: u32 = 4;
237 pub const KVM_SYSTEM_EVENT_SUSPEND: u32 = 5;
238 pub const KVM_SYSTEM_EVENT_SEV_TERM: u32 = 6;
239 pub const KVM_MSR_EXIT_REASON_INVAL: u32 = 1;
240 pub const KVM_MSR_EXIT_REASON_UNKNOWN: u32 = 2;
241 pub const KVM_MSR_EXIT_REASON_FILTER: u32 = 4;
242 pub const KVM_MSR_EXIT_REASON_VALID_MASK: u32 = 7;
243 pub const KVM_NOTIFY_CONTEXT_INVALID: u32 = 1;
244 pub const SYNC_REGS_SIZE_BYTES: u32 = 2048;
245 pub const KVM_S390_MEMOP_LOGICAL_READ: u32 = 0;
246 pub const KVM_S390_MEMOP_LOGICAL_WRITE: u32 = 1;
247 pub const KVM_S390_MEMOP_SIDA_READ: u32 = 2;
248 pub const KVM_S390_MEMOP_SIDA_WRITE: u32 = 3;
249 pub const KVM_S390_MEMOP_ABSOLUTE_READ: u32 = 4;
250 pub const KVM_S390_MEMOP_ABSOLUTE_WRITE: u32 = 5;
251 pub const KVM_S390_MEMOP_ABSOLUTE_CMPXCHG: u32 = 6;
252 pub const KVM_S390_MEMOP_F_CHECK_ONLY: u32 = 1;
253 pub const KVM_S390_MEMOP_F_INJECT_EXCEPTION: u32 = 2;
254 pub const KVM_S390_MEMOP_F_SKEY_PROTECTION: u32 = 4;
255 pub const KVM_S390_MEMOP_EXTENSION_CAP_BASE: u32 = 1;
256 pub const KVM_S390_MEMOP_EXTENSION_CAP_CMPXCHG: u32 = 2;
257 pub const KVM_MP_STATE_RUNNABLE: u32 = 0;
258 pub const KVM_MP_STATE_UNINITIALIZED: u32 = 1;
259 pub const KVM_MP_STATE_INIT_RECEIVED: u32 = 2;
260 pub const KVM_MP_STATE_HALTED: u32 = 3;
261 pub const KVM_MP_STATE_SIPI_RECEIVED: u32 = 4;
262 pub const KVM_MP_STATE_STOPPED: u32 = 5;
263 pub const KVM_MP_STATE_CHECK_STOP: u32 = 6;
264 pub const KVM_MP_STATE_OPERATING: u32 = 7;
265 pub const KVM_MP_STATE_LOAD: u32 = 8;
266 pub const KVM_MP_STATE_AP_RESET_HOLD: u32 = 9;
267 pub const KVM_MP_STATE_SUSPENDED: u32 = 10;
268 pub const KVM_S390_SIGP_STOP: u32 = 4294836224;
269 pub const KVM_S390_PROGRAM_INT: u32 = 4294836225;
270 pub const KVM_S390_SIGP_SET_PREFIX: u32 = 4294836226;
271 pub const KVM_S390_RESTART: u32 = 4294836227;
272 pub const KVM_S390_INT_PFAULT_INIT: u32 = 4294836228;
273 pub const KVM_S390_INT_PFAULT_DONE: u32 = 4294836229;
274 pub const KVM_S390_MCHK: u32 = 4294840320;
275 pub const KVM_S390_INT_CLOCK_COMP: u32 = 4294905860;
276 pub const KVM_S390_INT_CPU_TIMER: u32 = 4294905861;
277 pub const KVM_S390_INT_VIRTIO: u32 = 4294911491;
278 pub const KVM_S390_INT_SERVICE: u32 = 4294910977;
279 pub const KVM_S390_INT_EMERGENCY: u32 = 4294906369;
280 pub const KVM_S390_INT_EXTERNAL_CALL: u32 = 4294906370;
281 pub const KVM_S390_INT_IO_MIN: u32 = 0;
282 pub const KVM_S390_INT_IO_MAX: u32 = 4294836223;
283 pub const KVM_S390_INT_IO_AI_MASK: u32 = 67108864;
284 pub const KVM_S390_PGM_FLAGS_ILC_VALID: u32 = 1;
285 pub const KVM_S390_PGM_FLAGS_ILC_0: u32 = 2;
286 pub const KVM_S390_PGM_FLAGS_ILC_1: u32 = 4;
287 pub const KVM_S390_PGM_FLAGS_ILC_MASK: u32 = 6;
288 pub const KVM_S390_PGM_FLAGS_NO_REWIND: u32 = 8;
289 pub const KVM_S390_STOP_FLAG_STORE_STATUS: u32 = 1;
290 pub const KVM_GUESTDBG_ENABLE: u32 = 1;
291 pub const KVM_GUESTDBG_SINGLESTEP: u32 = 2;
292 pub const KVM_X86_DISABLE_EXITS_MWAIT: u32 = 1;
293 pub const KVM_X86_DISABLE_EXITS_HLT: u32 = 2;
294 pub const KVM_X86_DISABLE_EXITS_PAUSE: u32 = 4;
295 pub const KVM_X86_DISABLE_EXITS_CSTATE: u32 = 8;
296 pub const KVM_X86_DISABLE_VALID_EXITS: u32 = 15;
297 pub const KVM_PPC_PVINFO_FLAGS_EV_IDLE: u32 = 1;
298 pub const KVM_PPC_PAGE_SIZES_MAX_SZ: u32 = 8;
299 pub const KVM_PPC_PAGE_SIZES_REAL: u32 = 1;
300 pub const KVM_PPC_1T_SEGMENTS: u32 = 2;
301 pub const KVM_PPC_NO_HASH: u32 = 4;
302 pub const KVMIO: u32 = 174;
303 pub const KVM_VM_S390_UCONTROL: u32 = 1;
304 pub const KVM_VM_PPC_HV: u32 = 1;
305 pub const KVM_VM_PPC_PR: u32 = 2;
306 pub const KVM_VM_MIPS_AUTO: u32 = 0;
307 pub const KVM_VM_MIPS_VZ: u32 = 1;
308 pub const KVM_VM_MIPS_TE: u32 = 2;
309 pub const KVM_S390_SIE_PAGE_OFFSET: u32 = 1;
310 pub const KVM_VM_TYPE_ARM_IPA_SIZE_MASK: u32 = 255;
311 pub const KVM_CAP_IRQCHIP: u32 = 0;
312 pub const KVM_CAP_HLT: u32 = 1;
313 pub const KVM_CAP_MMU_SHADOW_CACHE_CONTROL: u32 = 2;
314 pub const KVM_CAP_USER_MEMORY: u32 = 3;
315 pub const KVM_CAP_SET_TSS_ADDR: u32 = 4;
316 pub const KVM_CAP_VAPIC: u32 = 6;
317 pub const KVM_CAP_EXT_CPUID: u32 = 7;
318 pub const KVM_CAP_CLOCKSOURCE: u32 = 8;
319 pub const KVM_CAP_NR_VCPUS: u32 = 9;
320 pub const KVM_CAP_NR_MEMSLOTS: u32 = 10;
321 pub const KVM_CAP_PIT: u32 = 11;
322 pub const KVM_CAP_NOP_IO_DELAY: u32 = 12;
323 pub const KVM_CAP_PV_MMU: u32 = 13;
324 pub const KVM_CAP_MP_STATE: u32 = 14;
325 pub const KVM_CAP_COALESCED_MMIO: u32 = 15;
326 pub const KVM_CAP_SYNC_MMU: u32 = 16;
327 pub const KVM_CAP_IOMMU: u32 = 18;
328 pub const KVM_CAP_DESTROY_MEMORY_REGION_WORKS: u32 = 21;
329 pub const KVM_CAP_USER_NMI: u32 = 22;
330 pub const KVM_CAP_IRQ_ROUTING: u32 = 25;
331 pub const KVM_CAP_IRQ_INJECT_STATUS: u32 = 26;
332 pub const KVM_CAP_ASSIGN_DEV_IRQ: u32 = 29;
333 pub const KVM_CAP_JOIN_MEMORY_REGIONS_WORKS: u32 = 30;
334 pub const KVM_CAP_IRQFD: u32 = 32;
335 pub const KVM_CAP_SET_BOOT_CPU_ID: u32 = 34;
336 pub const KVM_CAP_IOEVENTFD: u32 = 36;
337 pub const KVM_CAP_SET_IDENTITY_MAP_ADDR: u32 = 37;
338 pub const KVM_CAP_ADJUST_CLOCK: u32 = 39;
339 pub const KVM_CAP_INTERNAL_ERROR_DATA: u32 = 40;
340 pub const KVM_CAP_S390_PSW: u32 = 42;
341 pub const KVM_CAP_PPC_SEGSTATE: u32 = 43;
342 pub const KVM_CAP_HYPERV: u32 = 44;
343 pub const KVM_CAP_HYPERV_VAPIC: u32 = 45;
344 pub const KVM_CAP_HYPERV_SPIN: u32 = 46;
345 pub const KVM_CAP_PCI_SEGMENT: u32 = 47;
346 pub const KVM_CAP_PPC_PAIRED_SINGLES: u32 = 48;
347 pub const KVM_CAP_INTR_SHADOW: u32 = 49;
348 pub const KVM_CAP_X86_ROBUST_SINGLESTEP: u32 = 51;
349 pub const KVM_CAP_PPC_OSI: u32 = 52;
350 pub const KVM_CAP_PPC_UNSET_IRQ: u32 = 53;
351 pub const KVM_CAP_ENABLE_CAP: u32 = 54;
352 pub const KVM_CAP_PPC_GET_PVINFO: u32 = 57;
353 pub const KVM_CAP_PPC_IRQ_LEVEL: u32 = 58;
354 pub const KVM_CAP_ASYNC_PF: u32 = 59;
355 pub const KVM_CAP_TSC_CONTROL: u32 = 60;
356 pub const KVM_CAP_GET_TSC_KHZ: u32 = 61;
357 pub const KVM_CAP_PPC_BOOKE_SREGS: u32 = 62;
358 pub const KVM_CAP_SPAPR_TCE: u32 = 63;
359 pub const KVM_CAP_PPC_SMT: u32 = 64;
360 pub const KVM_CAP_PPC_RMA: u32 = 65;
361 pub const KVM_CAP_MAX_VCPUS: u32 = 66;
362 pub const KVM_CAP_PPC_HIOR: u32 = 67;
363 pub const KVM_CAP_PPC_PAPR: u32 = 68;
364 pub const KVM_CAP_SW_TLB: u32 = 69;
365 pub const KVM_CAP_ONE_REG: u32 = 70;
366 pub const KVM_CAP_S390_GMAP: u32 = 71;
367 pub const KVM_CAP_TSC_DEADLINE_TIMER: u32 = 72;
368 pub const KVM_CAP_S390_UCONTROL: u32 = 73;
369 pub const KVM_CAP_SYNC_REGS: u32 = 74;
370 pub const KVM_CAP_PCI_2_3: u32 = 75;
371 pub const KVM_CAP_KVMCLOCK_CTRL: u32 = 76;
372 pub const KVM_CAP_SIGNAL_MSI: u32 = 77;
373 pub const KVM_CAP_PPC_GET_SMMU_INFO: u32 = 78;
374 pub const KVM_CAP_S390_COW: u32 = 79;
375 pub const KVM_CAP_PPC_ALLOC_HTAB: u32 = 80;
376 pub const KVM_CAP_READONLY_MEM: u32 = 81;
377 pub const KVM_CAP_IRQFD_RESAMPLE: u32 = 82;
378 pub const KVM_CAP_PPC_BOOKE_WATCHDOG: u32 = 83;
379 pub const KVM_CAP_PPC_HTAB_FD: u32 = 84;
380 pub const KVM_CAP_S390_CSS_SUPPORT: u32 = 85;
381 pub const KVM_CAP_PPC_EPR: u32 = 86;
382 pub const KVM_CAP_ARM_PSCI: u32 = 87;
383 pub const KVM_CAP_ARM_SET_DEVICE_ADDR: u32 = 88;
384 pub const KVM_CAP_DEVICE_CTRL: u32 = 89;
385 pub const KVM_CAP_IRQ_MPIC: u32 = 90;
386 pub const KVM_CAP_PPC_RTAS: u32 = 91;
387 pub const KVM_CAP_IRQ_XICS: u32 = 92;
388 pub const KVM_CAP_ARM_EL1_32BIT: u32 = 93;
389 pub const KVM_CAP_SPAPR_MULTITCE: u32 = 94;
390 pub const KVM_CAP_EXT_EMUL_CPUID: u32 = 95;
391 pub const KVM_CAP_HYPERV_TIME: u32 = 96;
392 pub const KVM_CAP_IOAPIC_POLARITY_IGNORED: u32 = 97;
393 pub const KVM_CAP_ENABLE_CAP_VM: u32 = 98;
394 pub const KVM_CAP_S390_IRQCHIP: u32 = 99;
395 pub const KVM_CAP_IOEVENTFD_NO_LENGTH: u32 = 100;
396 pub const KVM_CAP_VM_ATTRIBUTES: u32 = 101;
397 pub const KVM_CAP_ARM_PSCI_0_2: u32 = 102;
398 pub const KVM_CAP_PPC_FIXUP_HCALL: u32 = 103;
399 pub const KVM_CAP_PPC_ENABLE_HCALL: u32 = 104;
400 pub const KVM_CAP_CHECK_EXTENSION_VM: u32 = 105;
401 pub const KVM_CAP_S390_USER_SIGP: u32 = 106;
402 pub const KVM_CAP_S390_VECTOR_REGISTERS: u32 = 107;
403 pub const KVM_CAP_S390_MEM_OP: u32 = 108;
404 pub const KVM_CAP_S390_USER_STSI: u32 = 109;
405 pub const KVM_CAP_S390_SKEYS: u32 = 110;
406 pub const KVM_CAP_MIPS_FPU: u32 = 111;
407 pub const KVM_CAP_MIPS_MSA: u32 = 112;
408 pub const KVM_CAP_S390_INJECT_IRQ: u32 = 113;
409 pub const KVM_CAP_S390_IRQ_STATE: u32 = 114;
410 pub const KVM_CAP_PPC_HWRNG: u32 = 115;
411 pub const KVM_CAP_DISABLE_QUIRKS: u32 = 116;
412 pub const KVM_CAP_X86_SMM: u32 = 117;
413 pub const KVM_CAP_MULTI_ADDRESS_SPACE: u32 = 118;
414 pub const KVM_CAP_GUEST_DEBUG_HW_BPS: u32 = 119;
415 pub const KVM_CAP_GUEST_DEBUG_HW_WPS: u32 = 120;
416 pub const KVM_CAP_SPLIT_IRQCHIP: u32 = 121;
417 pub const KVM_CAP_IOEVENTFD_ANY_LENGTH: u32 = 122;
418 pub const KVM_CAP_HYPERV_SYNIC: u32 = 123;
419 pub const KVM_CAP_S390_RI: u32 = 124;
420 pub const KVM_CAP_SPAPR_TCE_64: u32 = 125;
421 pub const KVM_CAP_ARM_PMU_V3: u32 = 126;
422 pub const KVM_CAP_VCPU_ATTRIBUTES: u32 = 127;
423 pub const KVM_CAP_MAX_VCPU_ID: u32 = 128;
424 pub const KVM_CAP_X2APIC_API: u32 = 129;
425 pub const KVM_CAP_S390_USER_INSTR0: u32 = 130;
426 pub const KVM_CAP_MSI_DEVID: u32 = 131;
427 pub const KVM_CAP_PPC_HTM: u32 = 132;
428 pub const KVM_CAP_SPAPR_RESIZE_HPT: u32 = 133;
429 pub const KVM_CAP_PPC_MMU_RADIX: u32 = 134;
430 pub const KVM_CAP_PPC_MMU_HASH_V3: u32 = 135;
431 pub const KVM_CAP_IMMEDIATE_EXIT: u32 = 136;
432 pub const KVM_CAP_MIPS_VZ: u32 = 137;
433 pub const KVM_CAP_MIPS_TE: u32 = 138;
434 pub const KVM_CAP_MIPS_64BIT: u32 = 139;
435 pub const KVM_CAP_S390_GS: u32 = 140;
436 pub const KVM_CAP_S390_AIS: u32 = 141;
437 pub const KVM_CAP_SPAPR_TCE_VFIO: u32 = 142;
438 pub const KVM_CAP_X86_DISABLE_EXITS: u32 = 143;
439 pub const KVM_CAP_ARM_USER_IRQ: u32 = 144;
440 pub const KVM_CAP_S390_CMMA_MIGRATION: u32 = 145;
441 pub const KVM_CAP_PPC_FWNMI: u32 = 146;
442 pub const KVM_CAP_PPC_SMT_POSSIBLE: u32 = 147;
443 pub const KVM_CAP_HYPERV_SYNIC2: u32 = 148;
444 pub const KVM_CAP_HYPERV_VP_INDEX: u32 = 149;
445 pub const KVM_CAP_S390_AIS_MIGRATION: u32 = 150;
446 pub const KVM_CAP_PPC_GET_CPU_CHAR: u32 = 151;
447 pub const KVM_CAP_S390_BPB: u32 = 152;
448 pub const KVM_CAP_GET_MSR_FEATURES: u32 = 153;
449 pub const KVM_CAP_HYPERV_EVENTFD: u32 = 154;
450 pub const KVM_CAP_HYPERV_TLBFLUSH: u32 = 155;
451 pub const KVM_CAP_S390_HPAGE_1M: u32 = 156;
452 pub const KVM_CAP_NESTED_STATE: u32 = 157;
453 pub const KVM_CAP_ARM_INJECT_SERROR_ESR: u32 = 158;
454 pub const KVM_CAP_MSR_PLATFORM_INFO: u32 = 159;
455 pub const KVM_CAP_PPC_NESTED_HV: u32 = 160;
456 pub const KVM_CAP_HYPERV_SEND_IPI: u32 = 161;
457 pub const KVM_CAP_COALESCED_PIO: u32 = 162;
458 pub const KVM_CAP_HYPERV_ENLIGHTENED_VMCS: u32 = 163;
459 pub const KVM_CAP_EXCEPTION_PAYLOAD: u32 = 164;
460 pub const KVM_CAP_ARM_VM_IPA_SIZE: u32 = 165;
461 pub const KVM_CAP_MANUAL_DIRTY_LOG_PROTECT: u32 = 166;
462 pub const KVM_CAP_HYPERV_CPUID: u32 = 167;
463 pub const KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2: u32 = 168;
464 pub const KVM_CAP_PPC_IRQ_XIVE: u32 = 169;
465 pub const KVM_CAP_ARM_SVE: u32 = 170;
466 pub const KVM_CAP_ARM_PTRAUTH_ADDRESS: u32 = 171;
467 pub const KVM_CAP_ARM_PTRAUTH_GENERIC: u32 = 172;
468 pub const KVM_CAP_PMU_EVENT_FILTER: u32 = 173;
469 pub const KVM_CAP_ARM_IRQ_LINE_LAYOUT_2: u32 = 174;
470 pub const KVM_CAP_HYPERV_DIRECT_TLBFLUSH: u32 = 175;
471 pub const KVM_CAP_PPC_GUEST_DEBUG_SSTEP: u32 = 176;
472 pub const KVM_CAP_ARM_NISV_TO_USER: u32 = 177;
473 pub const KVM_CAP_ARM_INJECT_EXT_DABT: u32 = 178;
474 pub const KVM_CAP_S390_VCPU_RESETS: u32 = 179;
475 pub const KVM_CAP_S390_PROTECTED: u32 = 180;
476 pub const KVM_CAP_PPC_SECURE_GUEST: u32 = 181;
477 pub const KVM_CAP_HALT_POLL: u32 = 182;
478 pub const KVM_CAP_ASYNC_PF_INT: u32 = 183;
479 pub const KVM_CAP_LAST_CPU: u32 = 184;
480 pub const KVM_CAP_SMALLER_MAXPHYADDR: u32 = 185;
481 pub const KVM_CAP_S390_DIAG318: u32 = 186;
482 pub const KVM_CAP_STEAL_TIME: u32 = 187;
483 pub const KVM_CAP_X86_USER_SPACE_MSR: u32 = 188;
484 pub const KVM_CAP_X86_MSR_FILTER: u32 = 189;
485 pub const KVM_CAP_ENFORCE_PV_FEATURE_CPUID: u32 = 190;
486 pub const KVM_CAP_SYS_HYPERV_CPUID: u32 = 191;
487 pub const KVM_CAP_DIRTY_LOG_RING: u32 = 192;
488 pub const KVM_CAP_X86_BUS_LOCK_EXIT: u32 = 193;
489 pub const KVM_CAP_PPC_DAWR1: u32 = 194;
490 pub const KVM_CAP_SET_GUEST_DEBUG2: u32 = 195;
491 pub const KVM_CAP_SGX_ATTRIBUTE: u32 = 196;
492 pub const KVM_CAP_VM_COPY_ENC_CONTEXT_FROM: u32 = 197;
493 pub const KVM_CAP_PTP_KVM: u32 = 198;
494 pub const KVM_CAP_HYPERV_ENFORCE_CPUID: u32 = 199;
495 pub const KVM_CAP_SREGS2: u32 = 200;
496 pub const KVM_CAP_EXIT_HYPERCALL: u32 = 201;
497 pub const KVM_CAP_PPC_RPT_INVALIDATE: u32 = 202;
498 pub const KVM_CAP_BINARY_STATS_FD: u32 = 203;
499 pub const KVM_CAP_EXIT_ON_EMULATION_FAILURE: u32 = 204;
500 pub const KVM_CAP_ARM_MTE: u32 = 205;
501 pub const KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM: u32 = 206;
502 pub const KVM_CAP_VM_GPA_BITS: u32 = 207;
503 pub const KVM_CAP_XSAVE2: u32 = 208;
504 pub const KVM_CAP_SYS_ATTRIBUTES: u32 = 209;
505 pub const KVM_CAP_PPC_AIL_MODE_3: u32 = 210;
506 pub const KVM_CAP_S390_MEM_OP_EXTENSION: u32 = 211;
507 pub const KVM_CAP_PMU_CAPABILITY: u32 = 212;
508 pub const KVM_CAP_DISABLE_QUIRKS2: u32 = 213;
509 pub const KVM_CAP_VM_TSC_CONTROL: u32 = 214;
510 pub const KVM_CAP_SYSTEM_EVENT_DATA: u32 = 215;
511 pub const KVM_CAP_ARM_SYSTEM_SUSPEND: u32 = 216;
512 pub const KVM_CAP_S390_PROTECTED_DUMP: u32 = 217;
513 pub const KVM_CAP_X86_TRIPLE_FAULT_EVENT: u32 = 218;
514 pub const KVM_CAP_X86_NOTIFY_VMEXIT: u32 = 219;
515 pub const KVM_CAP_VM_DISABLE_NX_HUGE_PAGES: u32 = 220;
516 pub const KVM_CAP_S390_ZPCI_OP: u32 = 221;
517 pub const KVM_CAP_S390_CPU_TOPOLOGY: u32 = 222;
518 pub const KVM_CAP_DIRTY_LOG_RING_ACQ_REL: u32 = 223;
519 pub const KVM_CAP_S390_PROTECTED_ASYNC_DISABLE: u32 = 224;
520 pub const KVM_CAP_DIRTY_LOG_RING_WITH_BITMAP: u32 = 225;
521 pub const KVM_CAP_PMU_EVENT_MASKED_EVENTS: u32 = 226;
522 pub const KVM_CAP_COUNTER_OFFSET: u32 = 227;
523 pub const KVM_CAP_ARM_EAGER_SPLIT_CHUNK_SIZE: u32 = 228;
524 pub const KVM_CAP_ARM_SUPPORTED_BLOCK_SIZES: u32 = 229;
525 pub const KVM_CAP_GET_CUR_CPUFREQ: u32 = 512;
526 pub const KVM_CAP_UTIL_HINT: u32 = 513;
527 pub const KVM_CAP_GET_CPUFREQ_TBL: u32 = 514;
528 pub const KVM_IRQ_ROUTING_IRQCHIP: u32 = 1;
529 pub const KVM_IRQ_ROUTING_MSI: u32 = 2;
530 pub const KVM_IRQ_ROUTING_S390_ADAPTER: u32 = 3;
531 pub const KVM_IRQ_ROUTING_HV_SINT: u32 = 4;
532 pub const KVM_IRQ_ROUTING_XEN_EVTCHN: u32 = 5;
533 pub const KVM_IRQFD_FLAG_DEASSIGN: u32 = 1;
534 pub const KVM_IRQFD_FLAG_RESAMPLE: u32 = 2;
535 pub const KVM_CLOCK_TSC_STABLE: u32 = 2;
536 pub const KVM_CLOCK_REALTIME: u32 = 4;
537 pub const KVM_CLOCK_HOST_TSC: u32 = 8;
538 pub const KVM_MMU_FSL_BOOKE_NOHV: u32 = 0;
539 pub const KVM_MMU_FSL_BOOKE_HV: u32 = 1;
540 pub const KVM_REG_ARCH_MASK: i64 = -72057594037927936;
541 pub const KVM_REG_GENERIC: u32 = 0;
542 pub const KVM_REG_PPC: u64 = 1152921504606846976;
543 pub const KVM_REG_X86: u64 = 2305843009213693952;
544 pub const KVM_REG_IA64: u64 = 3458764513820540928;
545 pub const KVM_REG_ARM: u64 = 4611686018427387904;
546 pub const KVM_REG_S390: u64 = 5764607523034234880;
547 pub const KVM_REG_ARM64: u64 = 6917529027641081856;
548 pub const KVM_REG_MIPS: u64 = 8070450532247928832;
549 pub const KVM_REG_RISCV: i64 = -9223372036854775808;
550 pub const KVM_REG_SIZE_SHIFT: u32 = 52;
551 pub const KVM_REG_SIZE_MASK: u64 = 67553994410557440;
552 pub const KVM_REG_SIZE_U8: u32 = 0;
553 pub const KVM_REG_SIZE_U16: u64 = 4503599627370496;
554 pub const KVM_REG_SIZE_U32: u64 = 9007199254740992;
555 pub const KVM_REG_SIZE_U64: u64 = 13510798882111488;
556 pub const KVM_REG_SIZE_U128: u64 = 18014398509481984;
557 pub const KVM_REG_SIZE_U256: u64 = 22517998136852480;
558 pub const KVM_REG_SIZE_U512: u64 = 27021597764222976;
559 pub const KVM_REG_SIZE_U1024: u64 = 31525197391593472;
560 pub const KVM_REG_SIZE_U2048: u64 = 36028797018963968;
561 pub const KVM_MSI_VALID_DEVID: u32 = 1;
562 pub const KVM_CREATE_DEVICE_TEST: u32 = 1;
563 pub const KVM_DEV_VFIO_FILE: u32 = 1;
564 pub const KVM_DEV_VFIO_FILE_ADD: u32 = 1;
565 pub const KVM_DEV_VFIO_FILE_DEL: u32 = 2;
566 pub const KVM_DEV_VFIO_GROUP: u32 = 1;
567 pub const KVM_DEV_VFIO_GROUP_ADD: u32 = 1;
568 pub const KVM_DEV_VFIO_GROUP_DEL: u32 = 2;
569 pub const KVM_DEV_VFIO_GROUP_SET_SPAPR_TCE: u32 = 3;
570 pub const KVM_S390_STORE_STATUS_NOADDR: i32 = -1;
571 pub const KVM_S390_STORE_STATUS_PREFIXED: i32 = -2;
572 pub const KVM_XEN_EVTCHN_DEASSIGN: u32 = 1;
573 pub const KVM_XEN_EVTCHN_UPDATE: u32 = 2;
574 pub const KVM_XEN_EVTCHN_RESET: u32 = 4;
575 pub const KVM_XEN_ATTR_TYPE_LONG_MODE: u32 = 0;
576 pub const KVM_XEN_ATTR_TYPE_SHARED_INFO: u32 = 1;
577 pub const KVM_XEN_ATTR_TYPE_UPCALL_VECTOR: u32 = 2;
578 pub const KVM_XEN_ATTR_TYPE_EVTCHN: u32 = 3;
579 pub const KVM_XEN_ATTR_TYPE_XEN_VERSION: u32 = 4;
580 pub const KVM_XEN_ATTR_TYPE_RUNSTATE_UPDATE_FLAG: u32 = 5;
581 pub const KVM_XEN_VCPU_ATTR_TYPE_VCPU_INFO: u32 = 0;
582 pub const KVM_XEN_VCPU_ATTR_TYPE_VCPU_TIME_INFO: u32 = 1;
583 pub const KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_ADDR: u32 = 2;
584 pub const KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_CURRENT: u32 = 3;
585 pub const KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_DATA: u32 = 4;
586 pub const KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_ADJUST: u32 = 5;
587 pub const KVM_XEN_VCPU_ATTR_TYPE_VCPU_ID: u32 = 6;
588 pub const KVM_XEN_VCPU_ATTR_TYPE_TIMER: u32 = 7;
589 pub const KVM_XEN_VCPU_ATTR_TYPE_UPCALL_VECTOR: u32 = 8;
590 pub const KVM_DEV_ASSIGN_ENABLE_IOMMU: u32 = 1;
591 pub const KVM_DEV_ASSIGN_PCI_2_3: u32 = 2;
592 pub const KVM_DEV_ASSIGN_MASK_INTX: u32 = 4;
593 pub const KVM_DEV_IRQ_HOST_INTX: u32 = 1;
594 pub const KVM_DEV_IRQ_HOST_MSI: u32 = 2;
595 pub const KVM_DEV_IRQ_HOST_MSIX: u32 = 4;
596 pub const KVM_DEV_IRQ_GUEST_INTX: u32 = 256;
597 pub const KVM_DEV_IRQ_GUEST_MSI: u32 = 512;
598 pub const KVM_DEV_IRQ_GUEST_MSIX: u32 = 1024;
599 pub const KVM_DEV_IRQ_HOST_MASK: u32 = 255;
600 pub const KVM_DEV_IRQ_GUEST_MASK: u32 = 65280;
601 pub const KVM_MAX_MSIX_PER_DEV: u32 = 256;
602 pub const KVM_X2APIC_API_USE_32BIT_IDS: u32 = 1;
603 pub const KVM_X2APIC_API_DISABLE_BROADCAST_QUIRK: u32 = 2;
604 pub const KVM_ARM_DEV_EL1_VTIMER: u32 = 1;
605 pub const KVM_ARM_DEV_EL1_PTIMER: u32 = 2;
606 pub const KVM_ARM_DEV_PMU: u32 = 4;
607 pub const KVM_HYPERV_CONN_ID_MASK: u32 = 16777215;
608 pub const KVM_HYPERV_EVENTFD_DEASSIGN: u32 = 1;
609 pub const KVM_DIRTY_LOG_MANUAL_PROTECT_ENABLE: u32 = 1;
610 pub const KVM_DIRTY_LOG_INITIALLY_SET: u32 = 2;
611 pub const KVM_DIRTY_LOG_PAGE_OFFSET: u32 = 0;
612 pub const KVM_DIRTY_GFN_F_MASK: u32 = 3;
613 pub const KVM_BUS_LOCK_DETECTION_OFF: u32 = 1;
614 pub const KVM_BUS_LOCK_DETECTION_EXIT: u32 = 2;
615 pub const KVM_PMU_CAP_DISABLE: u32 = 1;
616 pub const KVM_STATS_TYPE_SHIFT: u32 = 0;
617 pub const KVM_STATS_TYPE_MASK: u32 = 15;
618 pub const KVM_STATS_TYPE_CUMULATIVE: u32 = 0;
619 pub const KVM_STATS_TYPE_INSTANT: u32 = 1;
620 pub const KVM_STATS_TYPE_PEAK: u32 = 2;
621 pub const KVM_STATS_TYPE_LINEAR_HIST: u32 = 3;
622 pub const KVM_STATS_TYPE_LOG_HIST: u32 = 4;
623 pub const KVM_STATS_TYPE_MAX: u32 = 4;
624 pub const KVM_STATS_UNIT_SHIFT: u32 = 4;
625 pub const KVM_STATS_UNIT_MASK: u32 = 240;
626 pub const KVM_STATS_UNIT_NONE: u32 = 0;
627 pub const KVM_STATS_UNIT_BYTES: u32 = 16;
628 pub const KVM_STATS_UNIT_SECONDS: u32 = 32;
629 pub const KVM_STATS_UNIT_CYCLES: u32 = 48;
630 pub const KVM_STATS_UNIT_BOOLEAN: u32 = 64;
631 pub const KVM_STATS_UNIT_MAX: u32 = 64;
632 pub const KVM_STATS_BASE_SHIFT: u32 = 8;
633 pub const KVM_STATS_BASE_MASK: u32 = 3840;
634 pub const KVM_STATS_BASE_POW10: u32 = 0;
635 pub const KVM_STATS_BASE_POW2: u32 = 256;
636 pub const KVM_STATS_BASE_MAX: u32 = 256;
637 pub const KVM_X86_NOTIFY_VMEXIT_ENABLED: u32 = 1;
638 pub const KVM_X86_NOTIFY_VMEXIT_USER: u32 = 2;
639 pub const KVM_S390_ZPCIOP_REG_AEN: u32 = 0;
640 pub const KVM_S390_ZPCIOP_DEREG_AEN: u32 = 1;
641 pub const KVM_S390_ZPCIOP_REGAEN_HOST: u32 = 1;
642 pub type __s128 = i128;
643 pub type __u128 = u128;
644 pub type __le16 = u16;
645 pub type __be16 = u16;
646 pub type __le32 = u32;
647 pub type __be32 = u32;
648 pub type __le64 = u64;
649 pub type __be64 = u64;
650 pub type __sum16 = u16;
651 pub type __wsum = u32;
652 pub type __poll_t = ::std::os::raw::c_uint;
653 #[repr(C)]
654 #[derive(Debug, Default, Copy, Clone)]
655 pub struct user_regs_struct {
656     pub pc: ::std::os::raw::c_ulong,
657     pub ra: ::std::os::raw::c_ulong,
658     pub sp: ::std::os::raw::c_ulong,
659     pub gp: ::std::os::raw::c_ulong,
660     pub tp: ::std::os::raw::c_ulong,
661     pub t0: ::std::os::raw::c_ulong,
662     pub t1: ::std::os::raw::c_ulong,
663     pub t2: ::std::os::raw::c_ulong,
664     pub s0: ::std::os::raw::c_ulong,
665     pub s1: ::std::os::raw::c_ulong,
666     pub a0: ::std::os::raw::c_ulong,
667     pub a1: ::std::os::raw::c_ulong,
668     pub a2: ::std::os::raw::c_ulong,
669     pub a3: ::std::os::raw::c_ulong,
670     pub a4: ::std::os::raw::c_ulong,
671     pub a5: ::std::os::raw::c_ulong,
672     pub a6: ::std::os::raw::c_ulong,
673     pub a7: ::std::os::raw::c_ulong,
674     pub s2: ::std::os::raw::c_ulong,
675     pub s3: ::std::os::raw::c_ulong,
676     pub s4: ::std::os::raw::c_ulong,
677     pub s5: ::std::os::raw::c_ulong,
678     pub s6: ::std::os::raw::c_ulong,
679     pub s7: ::std::os::raw::c_ulong,
680     pub s8: ::std::os::raw::c_ulong,
681     pub s9: ::std::os::raw::c_ulong,
682     pub s10: ::std::os::raw::c_ulong,
683     pub s11: ::std::os::raw::c_ulong,
684     pub t3: ::std::os::raw::c_ulong,
685     pub t4: ::std::os::raw::c_ulong,
686     pub t5: ::std::os::raw::c_ulong,
687     pub t6: ::std::os::raw::c_ulong,
688 }
689 #[repr(C)]
690 #[derive(Debug, Default, Copy, Clone)]
691 pub struct __riscv_f_ext_state {
692     pub f: [u32; 32usize],
693     pub fcsr: u32,
694 }
695 #[repr(C)]
696 #[derive(Debug, Default, Copy, Clone)]
697 pub struct __riscv_d_ext_state {
698     pub f: [u64; 32usize],
699     pub fcsr: u32,
700 }
701 #[repr(C)]
702 #[repr(align(16))]
703 #[derive(Debug, Copy, Clone)]
704 pub struct __riscv_q_ext_state {
705     pub f: [u64; 64usize],
706     pub fcsr: u32,
707     pub reserved: [u32; 3usize],
708 }
709 impl Default for __riscv_q_ext_state {
default() -> Self710     fn default() -> Self {
711         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
712         unsafe {
713             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
714             s.assume_init()
715         }
716     }
717 }
718 #[repr(C)]
719 #[derive(Debug, Default, Copy, Clone)]
720 pub struct __riscv_ctx_hdr {
721     pub magic: u32,
722     pub size: u32,
723 }
724 #[repr(C)]
725 #[repr(align(16))]
726 #[derive(Debug, Copy, Clone)]
727 pub struct __riscv_extra_ext_header {
728     pub __padding: [u32; 129usize],
729     pub reserved: u32,
730     pub hdr: __riscv_ctx_hdr,
731 }
732 impl Default for __riscv_extra_ext_header {
default() -> Self733     fn default() -> Self {
734         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
735         unsafe {
736             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
737             s.assume_init()
738         }
739     }
740 }
741 #[repr(C)]
742 #[repr(align(16))]
743 #[derive(Copy, Clone)]
744 pub union __riscv_fp_state {
745     pub f: __riscv_f_ext_state,
746     pub d: __riscv_d_ext_state,
747     pub q: __riscv_q_ext_state,
748 }
749 impl Default for __riscv_fp_state {
default() -> Self750     fn default() -> Self {
751         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
752         unsafe {
753             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
754             s.assume_init()
755         }
756     }
757 }
758 #[repr(C)]
759 #[derive(Debug, Copy, Clone)]
760 pub struct __riscv_v_ext_state {
761     pub vstart: ::std::os::raw::c_ulong,
762     pub vl: ::std::os::raw::c_ulong,
763     pub vtype: ::std::os::raw::c_ulong,
764     pub vcsr: ::std::os::raw::c_ulong,
765     pub vlenb: ::std::os::raw::c_ulong,
766     pub datap: *mut ::std::os::raw::c_void,
767 }
768 impl Default for __riscv_v_ext_state {
default() -> Self769     fn default() -> Self {
770         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
771         unsafe {
772             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
773             s.assume_init()
774         }
775     }
776 }
777 #[repr(C)]
778 #[derive(Debug, Default)]
779 pub struct __riscv_v_regset_state {
780     pub vstart: ::std::os::raw::c_ulong,
781     pub vl: ::std::os::raw::c_ulong,
782     pub vtype: ::std::os::raw::c_ulong,
783     pub vcsr: ::std::os::raw::c_ulong,
784     pub vlenb: ::std::os::raw::c_ulong,
785     pub vreg: __IncompleteArrayField<::std::os::raw::c_char>,
786 }
787 #[repr(C)]
788 #[derive(Debug, Default, Copy, Clone)]
789 pub struct kvm_regs {}
790 #[repr(C)]
791 #[derive(Debug, Default, Copy, Clone)]
792 pub struct kvm_fpu {}
793 #[repr(C)]
794 #[derive(Debug, Default, Copy, Clone)]
795 pub struct kvm_debug_exit_arch {}
796 #[repr(C)]
797 #[derive(Debug, Default, Copy, Clone)]
798 pub struct kvm_guest_debug_arch {}
799 #[repr(C)]
800 #[derive(Debug, Default, Copy, Clone)]
801 pub struct kvm_sync_regs {}
802 #[repr(C)]
803 #[derive(Debug, Default, Copy, Clone)]
804 pub struct kvm_sregs {}
805 #[repr(C)]
806 #[derive(Debug, Default, Copy, Clone)]
807 pub struct kvm_riscv_config {
808     pub isa: ::std::os::raw::c_ulong,
809     pub zicbom_block_size: ::std::os::raw::c_ulong,
810     pub mvendorid: ::std::os::raw::c_ulong,
811     pub marchid: ::std::os::raw::c_ulong,
812     pub mimpid: ::std::os::raw::c_ulong,
813     pub zicboz_block_size: ::std::os::raw::c_ulong,
814     pub satp_mode: ::std::os::raw::c_ulong,
815 }
816 #[repr(C)]
817 #[derive(Debug, Default, Copy, Clone)]
818 pub struct kvm_riscv_core {
819     pub regs: user_regs_struct,
820     pub mode: ::std::os::raw::c_ulong,
821 }
822 #[repr(C)]
823 #[derive(Debug, Default, Copy, Clone)]
824 pub struct kvm_riscv_csr {
825     pub sstatus: ::std::os::raw::c_ulong,
826     pub sie: ::std::os::raw::c_ulong,
827     pub stvec: ::std::os::raw::c_ulong,
828     pub sscratch: ::std::os::raw::c_ulong,
829     pub sepc: ::std::os::raw::c_ulong,
830     pub scause: ::std::os::raw::c_ulong,
831     pub stval: ::std::os::raw::c_ulong,
832     pub sip: ::std::os::raw::c_ulong,
833     pub satp: ::std::os::raw::c_ulong,
834     pub scounteren: ::std::os::raw::c_ulong,
835 }
836 #[repr(C)]
837 #[derive(Debug, Default, Copy, Clone)]
838 pub struct kvm_riscv_aia_csr {
839     pub siselect: ::std::os::raw::c_ulong,
840     pub iprio1: ::std::os::raw::c_ulong,
841     pub iprio2: ::std::os::raw::c_ulong,
842     pub sieh: ::std::os::raw::c_ulong,
843     pub siph: ::std::os::raw::c_ulong,
844     pub iprio1h: ::std::os::raw::c_ulong,
845     pub iprio2h: ::std::os::raw::c_ulong,
846 }
847 #[repr(C)]
848 #[derive(Debug, Default, Copy, Clone)]
849 pub struct kvm_riscv_timer {
850     pub frequency: u64,
851     pub time: u64,
852     pub compare: u64,
853     pub state: u64,
854 }
855 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_A: KVM_RISCV_ISA_EXT_ID = 0;
856 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_C: KVM_RISCV_ISA_EXT_ID = 1;
857 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_D: KVM_RISCV_ISA_EXT_ID = 2;
858 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_F: KVM_RISCV_ISA_EXT_ID = 3;
859 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_H: KVM_RISCV_ISA_EXT_ID = 4;
860 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_I: KVM_RISCV_ISA_EXT_ID = 5;
861 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_M: KVM_RISCV_ISA_EXT_ID = 6;
862 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_SVPBMT: KVM_RISCV_ISA_EXT_ID = 7;
863 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_SSTC: KVM_RISCV_ISA_EXT_ID = 8;
864 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_SVINVAL: KVM_RISCV_ISA_EXT_ID = 9;
865 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZIHINTPAUSE: KVM_RISCV_ISA_EXT_ID = 10;
866 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZICBOM: KVM_RISCV_ISA_EXT_ID = 11;
867 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZICBOZ: KVM_RISCV_ISA_EXT_ID = 12;
868 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZBB: KVM_RISCV_ISA_EXT_ID = 13;
869 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_SSAIA: KVM_RISCV_ISA_EXT_ID = 14;
870 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_V: KVM_RISCV_ISA_EXT_ID = 15;
871 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_SVNAPOT: KVM_RISCV_ISA_EXT_ID = 16;
872 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZBA: KVM_RISCV_ISA_EXT_ID = 17;
873 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZBS: KVM_RISCV_ISA_EXT_ID = 18;
874 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZICNTR: KVM_RISCV_ISA_EXT_ID = 19;
875 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZICSR: KVM_RISCV_ISA_EXT_ID = 20;
876 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZIFENCEI: KVM_RISCV_ISA_EXT_ID = 21;
877 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZIHPM: KVM_RISCV_ISA_EXT_ID = 22;
878 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_MAX: KVM_RISCV_ISA_EXT_ID = 23;
879 pub type KVM_RISCV_ISA_EXT_ID = ::std::os::raw::c_uint;
880 pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_V01: KVM_RISCV_SBI_EXT_ID = 0;
881 pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_TIME: KVM_RISCV_SBI_EXT_ID = 1;
882 pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_IPI: KVM_RISCV_SBI_EXT_ID = 2;
883 pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_RFENCE: KVM_RISCV_SBI_EXT_ID = 3;
884 pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_SRST: KVM_RISCV_SBI_EXT_ID = 4;
885 pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_HSM: KVM_RISCV_SBI_EXT_ID = 5;
886 pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_PMU: KVM_RISCV_SBI_EXT_ID = 6;
887 pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_EXPERIMENTAL: KVM_RISCV_SBI_EXT_ID = 7;
888 pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_VENDOR: KVM_RISCV_SBI_EXT_ID = 8;
889 pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_MAX: KVM_RISCV_SBI_EXT_ID = 9;
890 pub type KVM_RISCV_SBI_EXT_ID = ::std::os::raw::c_uint;
891 #[repr(C)]
892 #[derive(Debug, Default, Copy, Clone)]
893 pub struct kvm_user_trace_setup {
894     pub buf_size: u32,
895     pub buf_nr: u32,
896 }
897 #[repr(C)]
898 #[derive(Debug, Default, Copy, Clone)]
899 pub struct kvm_breakpoint {
900     pub enabled: u32,
901     pub padding: u32,
902     pub address: u64,
903 }
904 #[repr(C)]
905 #[derive(Debug, Default, Copy, Clone)]
906 pub struct kvm_debug_guest {
907     pub enabled: u32,
908     pub pad: u32,
909     pub breakpoints: [kvm_breakpoint; 4usize],
910     pub singlestep: u32,
911 }
912 #[repr(C)]
913 #[derive(Debug, Default, Copy, Clone)]
914 pub struct kvm_userspace_memory_region {
915     pub slot: u32,
916     pub flags: u32,
917     pub guest_phys_addr: u64,
918     pub memory_size: u64,
919     pub userspace_addr: u64,
920 }
921 #[repr(C)]
922 #[derive(Copy, Clone)]
923 pub struct kvm_irq_level {
924     pub __bindgen_anon_1: kvm_irq_level__bindgen_ty_1,
925     pub level: u32,
926 }
927 #[repr(C)]
928 #[derive(Copy, Clone)]
929 pub union kvm_irq_level__bindgen_ty_1 {
930     pub irq: u32,
931     pub status: i32,
932 }
933 impl Default for kvm_irq_level__bindgen_ty_1 {
default() -> Self934     fn default() -> Self {
935         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
936         unsafe {
937             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
938             s.assume_init()
939         }
940     }
941 }
942 impl Default for kvm_irq_level {
default() -> Self943     fn default() -> Self {
944         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
945         unsafe {
946             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
947             s.assume_init()
948         }
949     }
950 }
951 #[repr(C)]
952 #[derive(Copy, Clone)]
953 pub struct kvm_irqchip {
954     pub chip_id: u32,
955     pub pad: u32,
956     pub chip: kvm_irqchip__bindgen_ty_1,
957 }
958 #[repr(C)]
959 #[derive(Copy, Clone)]
960 pub union kvm_irqchip__bindgen_ty_1 {
961     pub dummy: [::std::os::raw::c_char; 512usize],
962 }
963 impl Default for kvm_irqchip__bindgen_ty_1 {
default() -> Self964     fn default() -> Self {
965         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
966         unsafe {
967             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
968             s.assume_init()
969         }
970     }
971 }
972 impl Default for kvm_irqchip {
default() -> Self973     fn default() -> Self {
974         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
975         unsafe {
976             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
977             s.assume_init()
978         }
979     }
980 }
981 #[repr(C)]
982 #[derive(Debug, Default, Copy, Clone)]
983 pub struct kvm_pit_config {
984     pub flags: u32,
985     pub pad: [u32; 15usize],
986 }
987 #[repr(C)]
988 #[derive(Debug, Default, Copy, Clone)]
989 pub struct kvm_s390_skeys {
990     pub start_gfn: u64,
991     pub count: u64,
992     pub skeydata_addr: u64,
993     pub flags: u32,
994     pub reserved: [u32; 9usize],
995 }
996 #[repr(C)]
997 #[derive(Copy, Clone)]
998 pub struct kvm_s390_cmma_log {
999     pub start_gfn: u64,
1000     pub count: u32,
1001     pub flags: u32,
1002     pub __bindgen_anon_1: kvm_s390_cmma_log__bindgen_ty_1,
1003     pub values: u64,
1004 }
1005 #[repr(C)]
1006 #[derive(Copy, Clone)]
1007 pub union kvm_s390_cmma_log__bindgen_ty_1 {
1008     pub remaining: u64,
1009     pub mask: u64,
1010 }
1011 impl Default for kvm_s390_cmma_log__bindgen_ty_1 {
default() -> Self1012     fn default() -> Self {
1013         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1014         unsafe {
1015             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1016             s.assume_init()
1017         }
1018     }
1019 }
1020 impl Default for kvm_s390_cmma_log {
default() -> Self1021     fn default() -> Self {
1022         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1023         unsafe {
1024             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1025             s.assume_init()
1026         }
1027     }
1028 }
1029 #[repr(C)]
1030 #[derive(Copy, Clone)]
1031 pub struct kvm_hyperv_exit {
1032     pub type_: u32,
1033     pub pad1: u32,
1034     pub u: kvm_hyperv_exit__bindgen_ty_1,
1035 }
1036 #[repr(C)]
1037 #[derive(Copy, Clone)]
1038 pub union kvm_hyperv_exit__bindgen_ty_1 {
1039     pub synic: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1,
1040     pub hcall: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_2,
1041     pub syndbg: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3,
1042 }
1043 #[repr(C)]
1044 #[derive(Debug, Default, Copy, Clone)]
1045 pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1 {
1046     pub msr: u32,
1047     pub pad2: u32,
1048     pub control: u64,
1049     pub evt_page: u64,
1050     pub msg_page: u64,
1051 }
1052 #[repr(C)]
1053 #[derive(Debug, Default, Copy, Clone)]
1054 pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_2 {
1055     pub input: u64,
1056     pub result: u64,
1057     pub params: [u64; 2usize],
1058 }
1059 #[repr(C)]
1060 #[derive(Debug, Default, Copy, Clone)]
1061 pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3 {
1062     pub msr: u32,
1063     pub pad2: u32,
1064     pub control: u64,
1065     pub status: u64,
1066     pub send_page: u64,
1067     pub recv_page: u64,
1068     pub pending_page: u64,
1069 }
1070 impl Default for kvm_hyperv_exit__bindgen_ty_1 {
default() -> Self1071     fn default() -> Self {
1072         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1073         unsafe {
1074             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1075             s.assume_init()
1076         }
1077     }
1078 }
1079 impl Default for kvm_hyperv_exit {
default() -> Self1080     fn default() -> Self {
1081         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1082         unsafe {
1083             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1084             s.assume_init()
1085         }
1086     }
1087 }
1088 #[repr(C)]
1089 #[derive(Copy, Clone)]
1090 pub struct kvm_xen_exit {
1091     pub type_: u32,
1092     pub u: kvm_xen_exit__bindgen_ty_1,
1093 }
1094 #[repr(C)]
1095 #[derive(Copy, Clone)]
1096 pub union kvm_xen_exit__bindgen_ty_1 {
1097     pub hcall: kvm_xen_exit__bindgen_ty_1__bindgen_ty_1,
1098 }
1099 #[repr(C)]
1100 #[derive(Debug, Default, Copy, Clone)]
1101 pub struct kvm_xen_exit__bindgen_ty_1__bindgen_ty_1 {
1102     pub longmode: u32,
1103     pub cpl: u32,
1104     pub input: u64,
1105     pub result: u64,
1106     pub params: [u64; 6usize],
1107 }
1108 impl Default for kvm_xen_exit__bindgen_ty_1 {
default() -> Self1109     fn default() -> Self {
1110         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1111         unsafe {
1112             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1113             s.assume_init()
1114         }
1115     }
1116 }
1117 impl Default for kvm_xen_exit {
default() -> Self1118     fn default() -> Self {
1119         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1120         unsafe {
1121             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1122             s.assume_init()
1123         }
1124     }
1125 }
1126 #[repr(C)]
1127 #[derive(Copy, Clone)]
1128 pub struct kvm_run {
1129     pub request_interrupt_window: u8,
1130     pub immediate_exit: u8,
1131     pub padding1: [u8; 6usize],
1132     pub exit_reason: u32,
1133     pub ready_for_interrupt_injection: u8,
1134     pub if_flag: u8,
1135     pub flags: u16,
1136     pub cr8: u64,
1137     pub apic_base: u64,
1138     pub __bindgen_anon_1: kvm_run__bindgen_ty_1,
1139     pub kvm_valid_regs: u64,
1140     pub kvm_dirty_regs: u64,
1141     pub s: kvm_run__bindgen_ty_2,
1142 }
1143 #[repr(C)]
1144 #[derive(Copy, Clone)]
1145 pub union kvm_run__bindgen_ty_1 {
1146     pub hw: kvm_run__bindgen_ty_1__bindgen_ty_1,
1147     pub fail_entry: kvm_run__bindgen_ty_1__bindgen_ty_2,
1148     pub ex: kvm_run__bindgen_ty_1__bindgen_ty_3,
1149     pub io: kvm_run__bindgen_ty_1__bindgen_ty_4,
1150     pub debug: kvm_run__bindgen_ty_1__bindgen_ty_5,
1151     pub mmio: kvm_run__bindgen_ty_1__bindgen_ty_6,
1152     pub hypercall: kvm_run__bindgen_ty_1__bindgen_ty_7,
1153     pub tpr_access: kvm_run__bindgen_ty_1__bindgen_ty_8,
1154     pub s390_sieic: kvm_run__bindgen_ty_1__bindgen_ty_9,
1155     pub s390_reset_flags: u64,
1156     pub s390_ucontrol: kvm_run__bindgen_ty_1__bindgen_ty_10,
1157     pub dcr: kvm_run__bindgen_ty_1__bindgen_ty_11,
1158     pub internal: kvm_run__bindgen_ty_1__bindgen_ty_12,
1159     pub emulation_failure: kvm_run__bindgen_ty_1__bindgen_ty_13,
1160     pub osi: kvm_run__bindgen_ty_1__bindgen_ty_14,
1161     pub papr_hcall: kvm_run__bindgen_ty_1__bindgen_ty_15,
1162     pub s390_tsch: kvm_run__bindgen_ty_1__bindgen_ty_16,
1163     pub epr: kvm_run__bindgen_ty_1__bindgen_ty_17,
1164     pub system_event: kvm_run__bindgen_ty_1__bindgen_ty_18,
1165     pub s390_stsi: kvm_run__bindgen_ty_1__bindgen_ty_19,
1166     pub eoi: kvm_run__bindgen_ty_1__bindgen_ty_20,
1167     pub hyperv: kvm_hyperv_exit,
1168     pub arm_nisv: kvm_run__bindgen_ty_1__bindgen_ty_21,
1169     pub msr: kvm_run__bindgen_ty_1__bindgen_ty_22,
1170     pub xen: kvm_xen_exit,
1171     pub riscv_sbi: kvm_run__bindgen_ty_1__bindgen_ty_23,
1172     pub riscv_csr: kvm_run__bindgen_ty_1__bindgen_ty_24,
1173     pub notify: kvm_run__bindgen_ty_1__bindgen_ty_25,
1174     pub padding: [::std::os::raw::c_char; 256usize],
1175 }
1176 #[repr(C)]
1177 #[derive(Debug, Default, Copy, Clone)]
1178 pub struct kvm_run__bindgen_ty_1__bindgen_ty_1 {
1179     pub hardware_exit_reason: u64,
1180 }
1181 #[repr(C)]
1182 #[derive(Debug, Default, Copy, Clone)]
1183 pub struct kvm_run__bindgen_ty_1__bindgen_ty_2 {
1184     pub hardware_entry_failure_reason: u64,
1185     pub cpu: u32,
1186 }
1187 #[repr(C)]
1188 #[derive(Debug, Default, Copy, Clone)]
1189 pub struct kvm_run__bindgen_ty_1__bindgen_ty_3 {
1190     pub exception: u32,
1191     pub error_code: u32,
1192 }
1193 #[repr(C)]
1194 #[derive(Debug, Default, Copy, Clone)]
1195 pub struct kvm_run__bindgen_ty_1__bindgen_ty_4 {
1196     pub direction: u8,
1197     pub size: u8,
1198     pub port: u16,
1199     pub count: u32,
1200     pub data_offset: u64,
1201 }
1202 #[repr(C)]
1203 #[derive(Debug, Default, Copy, Clone)]
1204 pub struct kvm_run__bindgen_ty_1__bindgen_ty_5 {
1205     pub arch: kvm_debug_exit_arch,
1206 }
1207 #[repr(C)]
1208 #[derive(Debug, Default, Copy, Clone)]
1209 pub struct kvm_run__bindgen_ty_1__bindgen_ty_6 {
1210     pub phys_addr: u64,
1211     pub data: [u8; 8usize],
1212     pub len: u32,
1213     pub is_write: u8,
1214 }
1215 #[repr(C)]
1216 #[derive(Copy, Clone)]
1217 pub struct kvm_run__bindgen_ty_1__bindgen_ty_7 {
1218     pub nr: u64,
1219     pub args: [u64; 6usize],
1220     pub ret: u64,
1221     pub __bindgen_anon_1: kvm_run__bindgen_ty_1__bindgen_ty_7__bindgen_ty_1,
1222 }
1223 #[repr(C)]
1224 #[derive(Copy, Clone)]
1225 pub union kvm_run__bindgen_ty_1__bindgen_ty_7__bindgen_ty_1 {
1226     pub longmode: u32,
1227     pub flags: u64,
1228 }
1229 impl Default for kvm_run__bindgen_ty_1__bindgen_ty_7__bindgen_ty_1 {
default() -> Self1230     fn default() -> Self {
1231         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1232         unsafe {
1233             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1234             s.assume_init()
1235         }
1236     }
1237 }
1238 impl Default for kvm_run__bindgen_ty_1__bindgen_ty_7 {
default() -> Self1239     fn default() -> Self {
1240         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1241         unsafe {
1242             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1243             s.assume_init()
1244         }
1245     }
1246 }
1247 #[repr(C)]
1248 #[derive(Debug, Default, Copy, Clone)]
1249 pub struct kvm_run__bindgen_ty_1__bindgen_ty_8 {
1250     pub rip: u64,
1251     pub is_write: u32,
1252     pub pad: u32,
1253 }
1254 #[repr(C)]
1255 #[derive(Debug, Default, Copy, Clone)]
1256 pub struct kvm_run__bindgen_ty_1__bindgen_ty_9 {
1257     pub icptcode: u8,
1258     pub ipa: u16,
1259     pub ipb: u32,
1260 }
1261 #[repr(C)]
1262 #[derive(Debug, Default, Copy, Clone)]
1263 pub struct kvm_run__bindgen_ty_1__bindgen_ty_10 {
1264     pub trans_exc_code: u64,
1265     pub pgm_code: u32,
1266 }
1267 #[repr(C)]
1268 #[derive(Debug, Default, Copy, Clone)]
1269 pub struct kvm_run__bindgen_ty_1__bindgen_ty_11 {
1270     pub dcrn: u32,
1271     pub data: u32,
1272     pub is_write: u8,
1273 }
1274 #[repr(C)]
1275 #[derive(Debug, Default, Copy, Clone)]
1276 pub struct kvm_run__bindgen_ty_1__bindgen_ty_12 {
1277     pub suberror: u32,
1278     pub ndata: u32,
1279     pub data: [u64; 16usize],
1280 }
1281 #[repr(C)]
1282 #[derive(Copy, Clone)]
1283 pub struct kvm_run__bindgen_ty_1__bindgen_ty_13 {
1284     pub suberror: u32,
1285     pub ndata: u32,
1286     pub flags: u64,
1287     pub __bindgen_anon_1: kvm_run__bindgen_ty_1__bindgen_ty_13__bindgen_ty_1,
1288 }
1289 #[repr(C)]
1290 #[derive(Copy, Clone)]
1291 pub union kvm_run__bindgen_ty_1__bindgen_ty_13__bindgen_ty_1 {
1292     pub __bindgen_anon_1: kvm_run__bindgen_ty_1__bindgen_ty_13__bindgen_ty_1__bindgen_ty_1,
1293 }
1294 #[repr(C)]
1295 #[derive(Debug, Default, Copy, Clone)]
1296 pub struct kvm_run__bindgen_ty_1__bindgen_ty_13__bindgen_ty_1__bindgen_ty_1 {
1297     pub insn_size: u8,
1298     pub insn_bytes: [u8; 15usize],
1299 }
1300 impl Default for kvm_run__bindgen_ty_1__bindgen_ty_13__bindgen_ty_1 {
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 impl Default for kvm_run__bindgen_ty_1__bindgen_ty_13 {
default() -> Self1310     fn default() -> Self {
1311         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1312         unsafe {
1313             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1314             s.assume_init()
1315         }
1316     }
1317 }
1318 #[repr(C)]
1319 #[derive(Debug, Default, Copy, Clone)]
1320 pub struct kvm_run__bindgen_ty_1__bindgen_ty_14 {
1321     pub gprs: [u64; 32usize],
1322 }
1323 #[repr(C)]
1324 #[derive(Debug, Default, Copy, Clone)]
1325 pub struct kvm_run__bindgen_ty_1__bindgen_ty_15 {
1326     pub nr: u64,
1327     pub ret: u64,
1328     pub args: [u64; 9usize],
1329 }
1330 #[repr(C)]
1331 #[derive(Debug, Default, Copy, Clone)]
1332 pub struct kvm_run__bindgen_ty_1__bindgen_ty_16 {
1333     pub subchannel_id: u16,
1334     pub subchannel_nr: u16,
1335     pub io_int_parm: u32,
1336     pub io_int_word: u32,
1337     pub ipb: u32,
1338     pub dequeued: u8,
1339 }
1340 #[repr(C)]
1341 #[derive(Debug, Default, Copy, Clone)]
1342 pub struct kvm_run__bindgen_ty_1__bindgen_ty_17 {
1343     pub epr: u32,
1344 }
1345 #[repr(C)]
1346 #[derive(Copy, Clone)]
1347 pub struct kvm_run__bindgen_ty_1__bindgen_ty_18 {
1348     pub type_: u32,
1349     pub ndata: u32,
1350     pub __bindgen_anon_1: kvm_run__bindgen_ty_1__bindgen_ty_18__bindgen_ty_1,
1351 }
1352 #[repr(C)]
1353 #[derive(Copy, Clone)]
1354 pub union kvm_run__bindgen_ty_1__bindgen_ty_18__bindgen_ty_1 {
1355     pub flags: u64,
1356     pub data: [u64; 16usize],
1357 }
1358 impl Default for kvm_run__bindgen_ty_1__bindgen_ty_18__bindgen_ty_1 {
default() -> Self1359     fn default() -> Self {
1360         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1361         unsafe {
1362             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1363             s.assume_init()
1364         }
1365     }
1366 }
1367 impl Default for kvm_run__bindgen_ty_1__bindgen_ty_18 {
default() -> Self1368     fn default() -> Self {
1369         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1370         unsafe {
1371             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1372             s.assume_init()
1373         }
1374     }
1375 }
1376 #[repr(C)]
1377 #[derive(Debug, Default, Copy, Clone)]
1378 pub struct kvm_run__bindgen_ty_1__bindgen_ty_19 {
1379     pub addr: u64,
1380     pub ar: u8,
1381     pub reserved: u8,
1382     pub fc: u8,
1383     pub sel1: u8,
1384     pub sel2: u16,
1385 }
1386 #[repr(C)]
1387 #[derive(Debug, Default, Copy, Clone)]
1388 pub struct kvm_run__bindgen_ty_1__bindgen_ty_20 {
1389     pub vector: u8,
1390 }
1391 #[repr(C)]
1392 #[derive(Debug, Default, Copy, Clone)]
1393 pub struct kvm_run__bindgen_ty_1__bindgen_ty_21 {
1394     pub esr_iss: u64,
1395     pub fault_ipa: u64,
1396 }
1397 #[repr(C)]
1398 #[derive(Debug, Default, Copy, Clone)]
1399 pub struct kvm_run__bindgen_ty_1__bindgen_ty_22 {
1400     pub error: u8,
1401     pub pad: [u8; 7usize],
1402     pub reason: u32,
1403     pub index: u32,
1404     pub data: u64,
1405 }
1406 #[repr(C)]
1407 #[derive(Debug, Default, Copy, Clone)]
1408 pub struct kvm_run__bindgen_ty_1__bindgen_ty_23 {
1409     pub extension_id: ::std::os::raw::c_ulong,
1410     pub function_id: ::std::os::raw::c_ulong,
1411     pub args: [::std::os::raw::c_ulong; 6usize],
1412     pub ret: [::std::os::raw::c_ulong; 2usize],
1413 }
1414 #[repr(C)]
1415 #[derive(Debug, Default, Copy, Clone)]
1416 pub struct kvm_run__bindgen_ty_1__bindgen_ty_24 {
1417     pub csr_num: ::std::os::raw::c_ulong,
1418     pub new_value: ::std::os::raw::c_ulong,
1419     pub write_mask: ::std::os::raw::c_ulong,
1420     pub ret_value: ::std::os::raw::c_ulong,
1421 }
1422 #[repr(C)]
1423 #[derive(Debug, Default, Copy, Clone)]
1424 pub struct kvm_run__bindgen_ty_1__bindgen_ty_25 {
1425     pub flags: u32,
1426 }
1427 impl Default for kvm_run__bindgen_ty_1 {
default() -> Self1428     fn default() -> Self {
1429         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1430         unsafe {
1431             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1432             s.assume_init()
1433         }
1434     }
1435 }
1436 #[repr(C)]
1437 #[derive(Copy, Clone)]
1438 pub union kvm_run__bindgen_ty_2 {
1439     pub regs: kvm_sync_regs,
1440     pub padding: [::std::os::raw::c_char; 2048usize],
1441 }
1442 impl Default for kvm_run__bindgen_ty_2 {
default() -> Self1443     fn default() -> Self {
1444         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1445         unsafe {
1446             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1447             s.assume_init()
1448         }
1449     }
1450 }
1451 impl Default for kvm_run {
default() -> Self1452     fn default() -> Self {
1453         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1454         unsafe {
1455             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1456             s.assume_init()
1457         }
1458     }
1459 }
1460 #[repr(C)]
1461 #[derive(Copy, Clone)]
1462 pub struct kvm_coalesced_mmio_zone {
1463     pub addr: u64,
1464     pub size: u32,
1465     pub __bindgen_anon_1: kvm_coalesced_mmio_zone__bindgen_ty_1,
1466 }
1467 #[repr(C)]
1468 #[derive(Copy, Clone)]
1469 pub union kvm_coalesced_mmio_zone__bindgen_ty_1 {
1470     pub pad: u32,
1471     pub pio: u32,
1472 }
1473 impl Default for kvm_coalesced_mmio_zone__bindgen_ty_1 {
default() -> Self1474     fn default() -> Self {
1475         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1476         unsafe {
1477             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1478             s.assume_init()
1479         }
1480     }
1481 }
1482 impl Default for kvm_coalesced_mmio_zone {
default() -> Self1483     fn default() -> Self {
1484         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1485         unsafe {
1486             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1487             s.assume_init()
1488         }
1489     }
1490 }
1491 #[repr(C)]
1492 #[derive(Copy, Clone)]
1493 pub struct kvm_coalesced_mmio {
1494     pub phys_addr: u64,
1495     pub len: u32,
1496     pub __bindgen_anon_1: kvm_coalesced_mmio__bindgen_ty_1,
1497     pub data: [u8; 8usize],
1498 }
1499 #[repr(C)]
1500 #[derive(Copy, Clone)]
1501 pub union kvm_coalesced_mmio__bindgen_ty_1 {
1502     pub pad: u32,
1503     pub pio: u32,
1504 }
1505 impl Default for kvm_coalesced_mmio__bindgen_ty_1 {
default() -> Self1506     fn default() -> Self {
1507         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1508         unsafe {
1509             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1510             s.assume_init()
1511         }
1512     }
1513 }
1514 impl Default for kvm_coalesced_mmio {
default() -> Self1515     fn default() -> Self {
1516         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1517         unsafe {
1518             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1519             s.assume_init()
1520         }
1521     }
1522 }
1523 #[repr(C)]
1524 pub struct kvm_coalesced_mmio_ring {
1525     pub first: u32,
1526     pub last: u32,
1527     pub coalesced_mmio: __IncompleteArrayField<kvm_coalesced_mmio>,
1528 }
1529 impl Default for kvm_coalesced_mmio_ring {
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_translation {
1541     pub linear_address: u64,
1542     pub physical_address: u64,
1543     pub valid: u8,
1544     pub writeable: u8,
1545     pub usermode: u8,
1546     pub pad: [u8; 5usize],
1547 }
1548 #[repr(C)]
1549 #[derive(Copy, Clone)]
1550 pub struct kvm_s390_mem_op {
1551     pub gaddr: u64,
1552     pub flags: u64,
1553     pub size: u32,
1554     pub op: u32,
1555     pub buf: u64,
1556     pub __bindgen_anon_1: kvm_s390_mem_op__bindgen_ty_1,
1557 }
1558 #[repr(C)]
1559 #[derive(Copy, Clone)]
1560 pub union kvm_s390_mem_op__bindgen_ty_1 {
1561     pub __bindgen_anon_1: kvm_s390_mem_op__bindgen_ty_1__bindgen_ty_1,
1562     pub sida_offset: u32,
1563     pub reserved: [u8; 32usize],
1564 }
1565 #[repr(C)]
1566 #[derive(Debug, Default, Copy, Clone)]
1567 pub struct kvm_s390_mem_op__bindgen_ty_1__bindgen_ty_1 {
1568     pub ar: u8,
1569     pub key: u8,
1570     pub pad1: [u8; 6usize],
1571     pub old_addr: u64,
1572 }
1573 impl Default for kvm_s390_mem_op__bindgen_ty_1 {
default() -> Self1574     fn default() -> Self {
1575         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1576         unsafe {
1577             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1578             s.assume_init()
1579         }
1580     }
1581 }
1582 impl Default for kvm_s390_mem_op {
default() -> Self1583     fn default() -> Self {
1584         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1585         unsafe {
1586             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1587             s.assume_init()
1588         }
1589     }
1590 }
1591 #[repr(C)]
1592 #[derive(Debug, Default, Copy, Clone)]
1593 pub struct kvm_interrupt {
1594     pub irq: u32,
1595 }
1596 #[repr(C)]
1597 #[derive(Copy, Clone)]
1598 pub struct kvm_dirty_log {
1599     pub slot: u32,
1600     pub padding1: u32,
1601     pub __bindgen_anon_1: kvm_dirty_log__bindgen_ty_1,
1602 }
1603 #[repr(C)]
1604 #[derive(Copy, Clone)]
1605 pub union kvm_dirty_log__bindgen_ty_1 {
1606     pub dirty_bitmap: *mut ::std::os::raw::c_void,
1607     pub padding2: u64,
1608 }
1609 impl Default for kvm_dirty_log__bindgen_ty_1 {
default() -> Self1610     fn default() -> Self {
1611         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1612         unsafe {
1613             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1614             s.assume_init()
1615         }
1616     }
1617 }
1618 impl Default for kvm_dirty_log {
default() -> Self1619     fn default() -> Self {
1620         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1621         unsafe {
1622             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1623             s.assume_init()
1624         }
1625     }
1626 }
1627 #[repr(C)]
1628 #[derive(Copy, Clone)]
1629 pub struct kvm_clear_dirty_log {
1630     pub slot: u32,
1631     pub num_pages: u32,
1632     pub first_page: u64,
1633     pub __bindgen_anon_1: kvm_clear_dirty_log__bindgen_ty_1,
1634 }
1635 #[repr(C)]
1636 #[derive(Copy, Clone)]
1637 pub union kvm_clear_dirty_log__bindgen_ty_1 {
1638     pub dirty_bitmap: *mut ::std::os::raw::c_void,
1639     pub padding2: u64,
1640 }
1641 impl Default for kvm_clear_dirty_log__bindgen_ty_1 {
default() -> Self1642     fn default() -> Self {
1643         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1644         unsafe {
1645             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1646             s.assume_init()
1647         }
1648     }
1649 }
1650 impl Default for kvm_clear_dirty_log {
default() -> Self1651     fn default() -> Self {
1652         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1653         unsafe {
1654             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1655             s.assume_init()
1656         }
1657     }
1658 }
1659 #[repr(C)]
1660 #[derive(Debug, Default)]
1661 pub struct kvm_signal_mask {
1662     pub len: u32,
1663     pub sigset: __IncompleteArrayField<u8>,
1664 }
1665 #[repr(C)]
1666 #[derive(Debug, Default, Copy, Clone)]
1667 pub struct kvm_tpr_access_ctl {
1668     pub enabled: u32,
1669     pub flags: u32,
1670     pub reserved: [u32; 8usize],
1671 }
1672 #[repr(C)]
1673 #[derive(Debug, Default, Copy, Clone)]
1674 pub struct kvm_vapic_addr {
1675     pub vapic_addr: u64,
1676 }
1677 #[repr(C)]
1678 #[derive(Debug, Default, Copy, Clone)]
1679 pub struct kvm_mp_state {
1680     pub mp_state: u32,
1681 }
1682 #[repr(C)]
1683 #[derive(Debug, Default, Copy, Clone)]
1684 pub struct kvm_s390_psw {
1685     pub mask: u64,
1686     pub addr: u64,
1687 }
1688 #[repr(C)]
1689 #[derive(Debug, Default, Copy, Clone)]
1690 pub struct kvm_s390_interrupt {
1691     pub type_: u32,
1692     pub parm: u32,
1693     pub parm64: u64,
1694 }
1695 #[repr(C)]
1696 #[derive(Debug, Default, Copy, Clone)]
1697 pub struct kvm_s390_io_info {
1698     pub subchannel_id: u16,
1699     pub subchannel_nr: u16,
1700     pub io_int_parm: u32,
1701     pub io_int_word: u32,
1702 }
1703 #[repr(C)]
1704 #[derive(Debug, Default, Copy, Clone)]
1705 pub struct kvm_s390_ext_info {
1706     pub ext_params: u32,
1707     pub pad: u32,
1708     pub ext_params2: u64,
1709 }
1710 #[repr(C)]
1711 #[derive(Debug, Default, Copy, Clone)]
1712 pub struct kvm_s390_pgm_info {
1713     pub trans_exc_code: u64,
1714     pub mon_code: u64,
1715     pub per_address: u64,
1716     pub data_exc_code: u32,
1717     pub code: u16,
1718     pub mon_class_nr: u16,
1719     pub per_code: u8,
1720     pub per_atmid: u8,
1721     pub exc_access_id: u8,
1722     pub per_access_id: u8,
1723     pub op_access_id: u8,
1724     pub flags: u8,
1725     pub pad: [u8; 2usize],
1726 }
1727 #[repr(C)]
1728 #[derive(Debug, Default, Copy, Clone)]
1729 pub struct kvm_s390_prefix_info {
1730     pub address: u32,
1731 }
1732 #[repr(C)]
1733 #[derive(Debug, Default, Copy, Clone)]
1734 pub struct kvm_s390_extcall_info {
1735     pub code: u16,
1736 }
1737 #[repr(C)]
1738 #[derive(Debug, Default, Copy, Clone)]
1739 pub struct kvm_s390_emerg_info {
1740     pub code: u16,
1741 }
1742 #[repr(C)]
1743 #[derive(Debug, Default, Copy, Clone)]
1744 pub struct kvm_s390_stop_info {
1745     pub flags: u32,
1746 }
1747 #[repr(C)]
1748 #[derive(Debug, Default, Copy, Clone)]
1749 pub struct kvm_s390_mchk_info {
1750     pub cr14: u64,
1751     pub mcic: u64,
1752     pub failing_storage_address: u64,
1753     pub ext_damage_code: u32,
1754     pub pad: u32,
1755     pub fixed_logout: [u8; 16usize],
1756 }
1757 #[repr(C)]
1758 #[derive(Copy, Clone)]
1759 pub struct kvm_s390_irq {
1760     pub type_: u64,
1761     pub u: kvm_s390_irq__bindgen_ty_1,
1762 }
1763 #[repr(C)]
1764 #[derive(Copy, Clone)]
1765 pub union kvm_s390_irq__bindgen_ty_1 {
1766     pub io: kvm_s390_io_info,
1767     pub ext: kvm_s390_ext_info,
1768     pub pgm: kvm_s390_pgm_info,
1769     pub emerg: kvm_s390_emerg_info,
1770     pub extcall: kvm_s390_extcall_info,
1771     pub prefix: kvm_s390_prefix_info,
1772     pub stop: kvm_s390_stop_info,
1773     pub mchk: kvm_s390_mchk_info,
1774     pub reserved: [::std::os::raw::c_char; 64usize],
1775 }
1776 impl Default for kvm_s390_irq__bindgen_ty_1 {
default() -> Self1777     fn default() -> Self {
1778         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1779         unsafe {
1780             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1781             s.assume_init()
1782         }
1783     }
1784 }
1785 impl Default for kvm_s390_irq {
default() -> Self1786     fn default() -> Self {
1787         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1788         unsafe {
1789             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1790             s.assume_init()
1791         }
1792     }
1793 }
1794 #[repr(C)]
1795 #[derive(Debug, Default, Copy, Clone)]
1796 pub struct kvm_s390_irq_state {
1797     pub buf: u64,
1798     pub flags: u32,
1799     pub len: u32,
1800     pub reserved: [u32; 4usize],
1801 }
1802 #[repr(C)]
1803 #[derive(Debug, Default, Copy, Clone)]
1804 pub struct kvm_guest_debug {
1805     pub control: u32,
1806     pub pad: u32,
1807     pub arch: kvm_guest_debug_arch,
1808 }
1809 pub const kvm_ioeventfd_flag_nr_datamatch: _bindgen_ty_1 = 0;
1810 pub const kvm_ioeventfd_flag_nr_pio: _bindgen_ty_1 = 1;
1811 pub const kvm_ioeventfd_flag_nr_deassign: _bindgen_ty_1 = 2;
1812 pub const kvm_ioeventfd_flag_nr_virtio_ccw_notify: _bindgen_ty_1 = 3;
1813 pub const kvm_ioeventfd_flag_nr_fast_mmio: _bindgen_ty_1 = 4;
1814 pub const kvm_ioeventfd_flag_nr_max: _bindgen_ty_1 = 5;
1815 pub type _bindgen_ty_1 = ::std::os::raw::c_uint;
1816 #[repr(C)]
1817 #[derive(Debug, Copy, Clone)]
1818 pub struct kvm_ioeventfd {
1819     pub datamatch: u64,
1820     pub addr: u64,
1821     pub len: u32,
1822     pub fd: i32,
1823     pub flags: u32,
1824     pub pad: [u8; 36usize],
1825 }
1826 impl Default for kvm_ioeventfd {
default() -> Self1827     fn default() -> Self {
1828         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1829         unsafe {
1830             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1831             s.assume_init()
1832         }
1833     }
1834 }
1835 #[repr(C)]
1836 #[derive(Debug, Copy, Clone)]
1837 pub struct kvm_enable_cap {
1838     pub cap: u32,
1839     pub flags: u32,
1840     pub args: [u64; 4usize],
1841     pub pad: [u8; 64usize],
1842 }
1843 impl Default for kvm_enable_cap {
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, Copy, Clone)]
1854 pub struct kvm_ppc_pvinfo {
1855     pub flags: u32,
1856     pub hcall: [u32; 4usize],
1857     pub pad: [u8; 108usize],
1858 }
1859 impl Default for kvm_ppc_pvinfo {
default() -> Self1860     fn default() -> Self {
1861         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1862         unsafe {
1863             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1864             s.assume_init()
1865         }
1866     }
1867 }
1868 #[repr(C)]
1869 #[derive(Debug, Default, Copy, Clone)]
1870 pub struct kvm_ppc_one_page_size {
1871     pub page_shift: u32,
1872     pub pte_enc: u32,
1873 }
1874 #[repr(C)]
1875 #[derive(Debug, Default, Copy, Clone)]
1876 pub struct kvm_ppc_one_seg_page_size {
1877     pub page_shift: u32,
1878     pub slb_enc: u32,
1879     pub enc: [kvm_ppc_one_page_size; 8usize],
1880 }
1881 #[repr(C)]
1882 #[derive(Debug, Default, Copy, Clone)]
1883 pub struct kvm_ppc_smmu_info {
1884     pub flags: u64,
1885     pub slb_size: u32,
1886     pub data_keys: u16,
1887     pub instr_keys: u16,
1888     pub sps: [kvm_ppc_one_seg_page_size; 8usize],
1889 }
1890 #[repr(C)]
1891 #[derive(Debug, Default, Copy, Clone)]
1892 pub struct kvm_ppc_resize_hpt {
1893     pub flags: u64,
1894     pub shift: u32,
1895     pub pad: u32,
1896 }
1897 #[repr(C)]
1898 #[derive(Debug, Default, Copy, Clone)]
1899 pub struct kvm_irq_routing_irqchip {
1900     pub irqchip: u32,
1901     pub pin: u32,
1902 }
1903 #[repr(C)]
1904 #[derive(Copy, Clone)]
1905 pub struct kvm_irq_routing_msi {
1906     pub address_lo: u32,
1907     pub address_hi: u32,
1908     pub data: u32,
1909     pub __bindgen_anon_1: kvm_irq_routing_msi__bindgen_ty_1,
1910 }
1911 #[repr(C)]
1912 #[derive(Copy, Clone)]
1913 pub union kvm_irq_routing_msi__bindgen_ty_1 {
1914     pub pad: u32,
1915     pub devid: u32,
1916 }
1917 impl Default for kvm_irq_routing_msi__bindgen_ty_1 {
default() -> Self1918     fn default() -> Self {
1919         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1920         unsafe {
1921             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1922             s.assume_init()
1923         }
1924     }
1925 }
1926 impl Default for kvm_irq_routing_msi {
default() -> Self1927     fn default() -> Self {
1928         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1929         unsafe {
1930             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1931             s.assume_init()
1932         }
1933     }
1934 }
1935 #[repr(C)]
1936 #[derive(Debug, Default, Copy, Clone)]
1937 pub struct kvm_irq_routing_s390_adapter {
1938     pub ind_addr: u64,
1939     pub summary_addr: u64,
1940     pub ind_offset: u64,
1941     pub summary_offset: u32,
1942     pub adapter_id: u32,
1943 }
1944 #[repr(C)]
1945 #[derive(Debug, Default, Copy, Clone)]
1946 pub struct kvm_irq_routing_hv_sint {
1947     pub vcpu: u32,
1948     pub sint: u32,
1949 }
1950 #[repr(C)]
1951 #[derive(Debug, Default, Copy, Clone)]
1952 pub struct kvm_irq_routing_xen_evtchn {
1953     pub port: u32,
1954     pub vcpu: u32,
1955     pub priority: u32,
1956 }
1957 #[repr(C)]
1958 #[derive(Copy, Clone)]
1959 pub struct kvm_irq_routing_entry {
1960     pub gsi: u32,
1961     pub type_: u32,
1962     pub flags: u32,
1963     pub pad: u32,
1964     pub u: kvm_irq_routing_entry__bindgen_ty_1,
1965 }
1966 #[repr(C)]
1967 #[derive(Copy, Clone)]
1968 pub union kvm_irq_routing_entry__bindgen_ty_1 {
1969     pub irqchip: kvm_irq_routing_irqchip,
1970     pub msi: kvm_irq_routing_msi,
1971     pub adapter: kvm_irq_routing_s390_adapter,
1972     pub hv_sint: kvm_irq_routing_hv_sint,
1973     pub xen_evtchn: kvm_irq_routing_xen_evtchn,
1974     pub pad: [u32; 8usize],
1975 }
1976 impl Default for kvm_irq_routing_entry__bindgen_ty_1 {
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_irq_routing_entry {
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 pub struct kvm_irq_routing {
1996     pub nr: u32,
1997     pub flags: u32,
1998     pub entries: __IncompleteArrayField<kvm_irq_routing_entry>,
1999 }
2000 impl Default for kvm_irq_routing {
default() -> Self2001     fn default() -> Self {
2002         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2003         unsafe {
2004             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2005             s.assume_init()
2006         }
2007     }
2008 }
2009 #[repr(C)]
2010 #[derive(Debug, Default, Copy, Clone)]
2011 pub struct kvm_irqfd {
2012     pub fd: u32,
2013     pub gsi: u32,
2014     pub flags: u32,
2015     pub resamplefd: u32,
2016     pub pad: [u8; 16usize],
2017 }
2018 #[repr(C)]
2019 #[derive(Debug, Default, Copy, Clone)]
2020 pub struct kvm_clock_data {
2021     pub clock: u64,
2022     pub flags: u32,
2023     pub pad0: u32,
2024     pub realtime: u64,
2025     pub host_tsc: u64,
2026     pub pad: [u32; 4usize],
2027 }
2028 #[repr(C)]
2029 #[derive(Debug, Default, Copy, Clone)]
2030 pub struct kvm_config_tlb {
2031     pub params: u64,
2032     pub array: u64,
2033     pub mmu_type: u32,
2034     pub array_len: u32,
2035 }
2036 #[repr(C)]
2037 #[derive(Debug, Default, Copy, Clone)]
2038 pub struct kvm_dirty_tlb {
2039     pub bitmap: u64,
2040     pub num_dirty: u32,
2041 }
2042 #[repr(C)]
2043 #[derive(Debug, Default)]
2044 pub struct kvm_reg_list {
2045     pub n: u64,
2046     pub reg: __IncompleteArrayField<u64>,
2047 }
2048 #[repr(C)]
2049 #[derive(Debug, Default, Copy, Clone)]
2050 pub struct kvm_one_reg {
2051     pub id: u64,
2052     pub addr: u64,
2053 }
2054 #[repr(C)]
2055 #[derive(Debug, Default, Copy, Clone)]
2056 pub struct kvm_msi {
2057     pub address_lo: u32,
2058     pub address_hi: u32,
2059     pub data: u32,
2060     pub flags: u32,
2061     pub devid: u32,
2062     pub pad: [u8; 12usize],
2063 }
2064 #[repr(C)]
2065 #[derive(Debug, Default, Copy, Clone)]
2066 pub struct kvm_arm_device_addr {
2067     pub id: u64,
2068     pub addr: u64,
2069 }
2070 #[repr(C)]
2071 #[derive(Debug, Default, Copy, Clone)]
2072 pub struct kvm_create_device {
2073     pub type_: u32,
2074     pub fd: u32,
2075     pub flags: u32,
2076 }
2077 #[repr(C)]
2078 #[derive(Debug, Default, Copy, Clone)]
2079 pub struct kvm_device_attr {
2080     pub flags: u32,
2081     pub group: u32,
2082     pub attr: u64,
2083     pub addr: u64,
2084 }
2085 pub const kvm_device_type_KVM_DEV_TYPE_FSL_MPIC_20: kvm_device_type = 1;
2086 pub const kvm_device_type_KVM_DEV_TYPE_FSL_MPIC_42: kvm_device_type = 2;
2087 pub const kvm_device_type_KVM_DEV_TYPE_XICS: kvm_device_type = 3;
2088 pub const kvm_device_type_KVM_DEV_TYPE_VFIO: kvm_device_type = 4;
2089 pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_V2: kvm_device_type = 5;
2090 pub const kvm_device_type_KVM_DEV_TYPE_FLIC: kvm_device_type = 6;
2091 pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_V3: kvm_device_type = 7;
2092 pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_ITS: kvm_device_type = 8;
2093 pub const kvm_device_type_KVM_DEV_TYPE_XIVE: kvm_device_type = 9;
2094 pub const kvm_device_type_KVM_DEV_TYPE_ARM_PV_TIME: kvm_device_type = 10;
2095 pub const kvm_device_type_KVM_DEV_TYPE_RISCV_AIA: kvm_device_type = 11;
2096 pub const kvm_device_type_KVM_DEV_TYPE_MAX: kvm_device_type = 12;
2097 pub type kvm_device_type = ::std::os::raw::c_uint;
2098 #[repr(C)]
2099 #[derive(Debug, Default, Copy, Clone)]
2100 pub struct kvm_vfio_spapr_tce {
2101     pub groupfd: i32,
2102     pub tablefd: i32,
2103 }
2104 #[repr(C)]
2105 #[derive(Debug, Default, Copy, Clone)]
2106 pub struct kvm_s390_ucas_mapping {
2107     pub user_addr: u64,
2108     pub vcpu_addr: u64,
2109     pub length: u64,
2110 }
2111 #[repr(C)]
2112 #[derive(Debug, Default, Copy, Clone)]
2113 pub struct kvm_enc_region {
2114     pub addr: u64,
2115     pub size: u64,
2116 }
2117 #[repr(C)]
2118 #[derive(Debug, Default, Copy, Clone)]
2119 pub struct kvm_s390_pv_sec_parm {
2120     pub origin: u64,
2121     pub length: u64,
2122 }
2123 #[repr(C)]
2124 #[derive(Debug, Default, Copy, Clone)]
2125 pub struct kvm_s390_pv_unp {
2126     pub addr: u64,
2127     pub size: u64,
2128     pub tweak: u64,
2129 }
2130 pub const pv_cmd_dmp_id_KVM_PV_DUMP_INIT: pv_cmd_dmp_id = 0;
2131 pub const pv_cmd_dmp_id_KVM_PV_DUMP_CONFIG_STOR_STATE: pv_cmd_dmp_id = 1;
2132 pub const pv_cmd_dmp_id_KVM_PV_DUMP_COMPLETE: pv_cmd_dmp_id = 2;
2133 pub const pv_cmd_dmp_id_KVM_PV_DUMP_CPU: pv_cmd_dmp_id = 3;
2134 pub type pv_cmd_dmp_id = ::std::os::raw::c_uint;
2135 #[repr(C)]
2136 #[derive(Debug, Default, Copy, Clone)]
2137 pub struct kvm_s390_pv_dmp {
2138     pub subcmd: u64,
2139     pub buff_addr: u64,
2140     pub buff_len: u64,
2141     pub gaddr: u64,
2142     pub reserved: [u64; 4usize],
2143 }
2144 pub const pv_cmd_info_id_KVM_PV_INFO_VM: pv_cmd_info_id = 0;
2145 pub const pv_cmd_info_id_KVM_PV_INFO_DUMP: pv_cmd_info_id = 1;
2146 pub type pv_cmd_info_id = ::std::os::raw::c_uint;
2147 #[repr(C)]
2148 #[derive(Debug, Default, Copy, Clone)]
2149 pub struct kvm_s390_pv_info_dump {
2150     pub dump_cpu_buffer_len: u64,
2151     pub dump_config_mem_buffer_per_1m: u64,
2152     pub dump_config_finalize_len: u64,
2153 }
2154 #[repr(C)]
2155 #[derive(Debug, Default, Copy, Clone)]
2156 pub struct kvm_s390_pv_info_vm {
2157     pub inst_calls_list: [u64; 4usize],
2158     pub max_cpus: u64,
2159     pub max_guests: u64,
2160     pub max_guest_addr: u64,
2161     pub feature_indication: u64,
2162 }
2163 #[repr(C)]
2164 #[derive(Debug, Default, Copy, Clone)]
2165 pub struct kvm_s390_pv_info_header {
2166     pub id: u32,
2167     pub len_max: u32,
2168     pub len_written: u32,
2169     pub reserved: u32,
2170 }
2171 #[repr(C)]
2172 #[derive(Copy, Clone)]
2173 pub struct kvm_s390_pv_info {
2174     pub header: kvm_s390_pv_info_header,
2175     pub __bindgen_anon_1: kvm_s390_pv_info__bindgen_ty_1,
2176 }
2177 #[repr(C)]
2178 #[derive(Copy, Clone)]
2179 pub union kvm_s390_pv_info__bindgen_ty_1 {
2180     pub dump: kvm_s390_pv_info_dump,
2181     pub vm: kvm_s390_pv_info_vm,
2182 }
2183 impl Default for kvm_s390_pv_info__bindgen_ty_1 {
default() -> Self2184     fn default() -> Self {
2185         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2186         unsafe {
2187             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2188             s.assume_init()
2189         }
2190     }
2191 }
2192 impl Default for kvm_s390_pv_info {
default() -> Self2193     fn default() -> Self {
2194         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2195         unsafe {
2196             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2197             s.assume_init()
2198         }
2199     }
2200 }
2201 pub const pv_cmd_id_KVM_PV_ENABLE: pv_cmd_id = 0;
2202 pub const pv_cmd_id_KVM_PV_DISABLE: pv_cmd_id = 1;
2203 pub const pv_cmd_id_KVM_PV_SET_SEC_PARMS: pv_cmd_id = 2;
2204 pub const pv_cmd_id_KVM_PV_UNPACK: pv_cmd_id = 3;
2205 pub const pv_cmd_id_KVM_PV_VERIFY: pv_cmd_id = 4;
2206 pub const pv_cmd_id_KVM_PV_PREP_RESET: pv_cmd_id = 5;
2207 pub const pv_cmd_id_KVM_PV_UNSHARE_ALL: pv_cmd_id = 6;
2208 pub const pv_cmd_id_KVM_PV_INFO: pv_cmd_id = 7;
2209 pub const pv_cmd_id_KVM_PV_DUMP: pv_cmd_id = 8;
2210 pub const pv_cmd_id_KVM_PV_ASYNC_CLEANUP_PREPARE: pv_cmd_id = 9;
2211 pub const pv_cmd_id_KVM_PV_ASYNC_CLEANUP_PERFORM: pv_cmd_id = 10;
2212 pub type pv_cmd_id = ::std::os::raw::c_uint;
2213 #[repr(C)]
2214 #[derive(Debug, Default, Copy, Clone)]
2215 pub struct kvm_pv_cmd {
2216     pub cmd: u32,
2217     pub rc: u16,
2218     pub rrc: u16,
2219     pub data: u64,
2220     pub flags: u32,
2221     pub reserved: [u32; 3usize],
2222 }
2223 #[repr(C)]
2224 #[derive(Copy, Clone)]
2225 pub struct kvm_xen_hvm_attr {
2226     pub type_: u16,
2227     pub pad: [u16; 3usize],
2228     pub u: kvm_xen_hvm_attr__bindgen_ty_1,
2229 }
2230 #[repr(C)]
2231 #[derive(Copy, Clone)]
2232 pub union kvm_xen_hvm_attr__bindgen_ty_1 {
2233     pub long_mode: u8,
2234     pub vector: u8,
2235     pub runstate_update_flag: u8,
2236     pub shared_info: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_1,
2237     pub evtchn: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2,
2238     pub xen_version: u32,
2239     pub pad: [u64; 8usize],
2240 }
2241 #[repr(C)]
2242 #[derive(Debug, Default, Copy, Clone)]
2243 pub struct kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_1 {
2244     pub gfn: u64,
2245 }
2246 #[repr(C)]
2247 #[derive(Copy, Clone)]
2248 pub struct kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2 {
2249     pub send_port: u32,
2250     pub type_: u32,
2251     pub flags: u32,
2252     pub deliver: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1,
2253 }
2254 #[repr(C)]
2255 #[derive(Copy, Clone)]
2256 pub union kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 {
2257     pub port: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1,
2258     pub eventfd: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_2,
2259     pub padding: [u32; 4usize],
2260 }
2261 #[repr(C)]
2262 #[derive(Debug, Default, Copy, Clone)]
2263 pub struct kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1 {
2264     pub port: u32,
2265     pub vcpu: u32,
2266     pub priority: u32,
2267 }
2268 #[repr(C)]
2269 #[derive(Debug, Default, Copy, Clone)]
2270 pub struct kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_2 {
2271     pub port: u32,
2272     pub fd: i32,
2273 }
2274 impl Default for kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 {
default() -> Self2275     fn default() -> Self {
2276         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2277         unsafe {
2278             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2279             s.assume_init()
2280         }
2281     }
2282 }
2283 impl Default for kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2 {
default() -> Self2284     fn default() -> Self {
2285         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2286         unsafe {
2287             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2288             s.assume_init()
2289         }
2290     }
2291 }
2292 impl Default for kvm_xen_hvm_attr__bindgen_ty_1 {
default() -> Self2293     fn default() -> Self {
2294         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2295         unsafe {
2296             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2297             s.assume_init()
2298         }
2299     }
2300 }
2301 impl Default for kvm_xen_hvm_attr {
default() -> Self2302     fn default() -> Self {
2303         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2304         unsafe {
2305             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2306             s.assume_init()
2307         }
2308     }
2309 }
2310 #[repr(C)]
2311 #[derive(Copy, Clone)]
2312 pub struct kvm_xen_vcpu_attr {
2313     pub type_: u16,
2314     pub pad: [u16; 3usize],
2315     pub u: kvm_xen_vcpu_attr__bindgen_ty_1,
2316 }
2317 #[repr(C)]
2318 #[derive(Copy, Clone)]
2319 pub union kvm_xen_vcpu_attr__bindgen_ty_1 {
2320     pub gpa: u64,
2321     pub pad: [u64; 8usize],
2322     pub runstate: kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_1,
2323     pub vcpu_id: u32,
2324     pub timer: kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_2,
2325     pub vector: u8,
2326 }
2327 #[repr(C)]
2328 #[derive(Debug, Default, Copy, Clone)]
2329 pub struct kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_1 {
2330     pub state: u64,
2331     pub state_entry_time: u64,
2332     pub time_running: u64,
2333     pub time_runnable: u64,
2334     pub time_blocked: u64,
2335     pub time_offline: u64,
2336 }
2337 #[repr(C)]
2338 #[derive(Debug, Default, Copy, Clone)]
2339 pub struct kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_2 {
2340     pub port: u32,
2341     pub priority: u32,
2342     pub expires_ns: u64,
2343 }
2344 impl Default for kvm_xen_vcpu_attr__bindgen_ty_1 {
default() -> Self2345     fn default() -> Self {
2346         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2347         unsafe {
2348             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2349             s.assume_init()
2350         }
2351     }
2352 }
2353 impl Default for kvm_xen_vcpu_attr {
default() -> Self2354     fn default() -> Self {
2355         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2356         unsafe {
2357             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2358             s.assume_init()
2359         }
2360     }
2361 }
2362 pub const sev_cmd_id_KVM_SEV_INIT: sev_cmd_id = 0;
2363 pub const sev_cmd_id_KVM_SEV_ES_INIT: sev_cmd_id = 1;
2364 pub const sev_cmd_id_KVM_SEV_LAUNCH_START: sev_cmd_id = 2;
2365 pub const sev_cmd_id_KVM_SEV_LAUNCH_UPDATE_DATA: sev_cmd_id = 3;
2366 pub const sev_cmd_id_KVM_SEV_LAUNCH_UPDATE_VMSA: sev_cmd_id = 4;
2367 pub const sev_cmd_id_KVM_SEV_LAUNCH_SECRET: sev_cmd_id = 5;
2368 pub const sev_cmd_id_KVM_SEV_LAUNCH_MEASURE: sev_cmd_id = 6;
2369 pub const sev_cmd_id_KVM_SEV_LAUNCH_FINISH: sev_cmd_id = 7;
2370 pub const sev_cmd_id_KVM_SEV_SEND_START: sev_cmd_id = 8;
2371 pub const sev_cmd_id_KVM_SEV_SEND_UPDATE_DATA: sev_cmd_id = 9;
2372 pub const sev_cmd_id_KVM_SEV_SEND_UPDATE_VMSA: sev_cmd_id = 10;
2373 pub const sev_cmd_id_KVM_SEV_SEND_FINISH: sev_cmd_id = 11;
2374 pub const sev_cmd_id_KVM_SEV_RECEIVE_START: sev_cmd_id = 12;
2375 pub const sev_cmd_id_KVM_SEV_RECEIVE_UPDATE_DATA: sev_cmd_id = 13;
2376 pub const sev_cmd_id_KVM_SEV_RECEIVE_UPDATE_VMSA: sev_cmd_id = 14;
2377 pub const sev_cmd_id_KVM_SEV_RECEIVE_FINISH: sev_cmd_id = 15;
2378 pub const sev_cmd_id_KVM_SEV_GUEST_STATUS: sev_cmd_id = 16;
2379 pub const sev_cmd_id_KVM_SEV_DBG_DECRYPT: sev_cmd_id = 17;
2380 pub const sev_cmd_id_KVM_SEV_DBG_ENCRYPT: sev_cmd_id = 18;
2381 pub const sev_cmd_id_KVM_SEV_CERT_EXPORT: sev_cmd_id = 19;
2382 pub const sev_cmd_id_KVM_SEV_GET_ATTESTATION_REPORT: sev_cmd_id = 20;
2383 pub const sev_cmd_id_KVM_SEV_SEND_CANCEL: sev_cmd_id = 21;
2384 pub const sev_cmd_id_KVM_SEV_NR_MAX: sev_cmd_id = 22;
2385 pub type sev_cmd_id = ::std::os::raw::c_uint;
2386 #[repr(C)]
2387 #[derive(Debug, Default, Copy, Clone)]
2388 pub struct kvm_sev_cmd {
2389     pub id: u32,
2390     pub data: u64,
2391     pub error: u32,
2392     pub sev_fd: u32,
2393 }
2394 #[repr(C)]
2395 #[derive(Debug, Default, Copy, Clone)]
2396 pub struct kvm_sev_launch_start {
2397     pub handle: u32,
2398     pub policy: u32,
2399     pub dh_uaddr: u64,
2400     pub dh_len: u32,
2401     pub session_uaddr: u64,
2402     pub session_len: u32,
2403 }
2404 #[repr(C)]
2405 #[derive(Debug, Default, Copy, Clone)]
2406 pub struct kvm_sev_launch_update_data {
2407     pub uaddr: u64,
2408     pub len: u32,
2409 }
2410 #[repr(C)]
2411 #[derive(Debug, Default, Copy, Clone)]
2412 pub struct kvm_sev_launch_secret {
2413     pub hdr_uaddr: u64,
2414     pub hdr_len: u32,
2415     pub guest_uaddr: u64,
2416     pub guest_len: u32,
2417     pub trans_uaddr: u64,
2418     pub trans_len: u32,
2419 }
2420 #[repr(C)]
2421 #[derive(Debug, Default, Copy, Clone)]
2422 pub struct kvm_sev_launch_measure {
2423     pub uaddr: u64,
2424     pub len: u32,
2425 }
2426 #[repr(C)]
2427 #[derive(Debug, Default, Copy, Clone)]
2428 pub struct kvm_sev_guest_status {
2429     pub handle: u32,
2430     pub policy: u32,
2431     pub state: u32,
2432 }
2433 #[repr(C)]
2434 #[derive(Debug, Default, Copy, Clone)]
2435 pub struct kvm_sev_dbg {
2436     pub src_uaddr: u64,
2437     pub dst_uaddr: u64,
2438     pub len: u32,
2439 }
2440 #[repr(C)]
2441 #[derive(Debug, Default, Copy, Clone)]
2442 pub struct kvm_sev_attestation_report {
2443     pub mnonce: [u8; 16usize],
2444     pub uaddr: u64,
2445     pub len: u32,
2446 }
2447 #[repr(C)]
2448 #[derive(Debug, Default, Copy, Clone)]
2449 pub struct kvm_sev_send_start {
2450     pub policy: u32,
2451     pub pdh_cert_uaddr: u64,
2452     pub pdh_cert_len: u32,
2453     pub plat_certs_uaddr: u64,
2454     pub plat_certs_len: u32,
2455     pub amd_certs_uaddr: u64,
2456     pub amd_certs_len: u32,
2457     pub session_uaddr: u64,
2458     pub session_len: u32,
2459 }
2460 #[repr(C)]
2461 #[derive(Debug, Default, Copy, Clone)]
2462 pub struct kvm_sev_send_update_data {
2463     pub hdr_uaddr: u64,
2464     pub hdr_len: u32,
2465     pub guest_uaddr: u64,
2466     pub guest_len: u32,
2467     pub trans_uaddr: u64,
2468     pub trans_len: u32,
2469 }
2470 #[repr(C)]
2471 #[derive(Debug, Default, Copy, Clone)]
2472 pub struct kvm_sev_receive_start {
2473     pub handle: u32,
2474     pub policy: u32,
2475     pub pdh_uaddr: u64,
2476     pub pdh_len: u32,
2477     pub session_uaddr: u64,
2478     pub session_len: u32,
2479 }
2480 #[repr(C)]
2481 #[derive(Debug, Default, Copy, Clone)]
2482 pub struct kvm_sev_receive_update_data {
2483     pub hdr_uaddr: u64,
2484     pub hdr_len: u32,
2485     pub guest_uaddr: u64,
2486     pub guest_len: u32,
2487     pub trans_uaddr: u64,
2488     pub trans_len: u32,
2489 }
2490 #[repr(C)]
2491 #[derive(Copy, Clone)]
2492 pub struct kvm_assigned_pci_dev {
2493     pub assigned_dev_id: u32,
2494     pub busnr: u32,
2495     pub devfn: u32,
2496     pub flags: u32,
2497     pub segnr: u32,
2498     pub __bindgen_anon_1: kvm_assigned_pci_dev__bindgen_ty_1,
2499 }
2500 #[repr(C)]
2501 #[derive(Copy, Clone)]
2502 pub union kvm_assigned_pci_dev__bindgen_ty_1 {
2503     pub reserved: [u32; 11usize],
2504 }
2505 impl Default for kvm_assigned_pci_dev__bindgen_ty_1 {
default() -> Self2506     fn default() -> Self {
2507         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2508         unsafe {
2509             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2510             s.assume_init()
2511         }
2512     }
2513 }
2514 impl Default for kvm_assigned_pci_dev {
default() -> Self2515     fn default() -> Self {
2516         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2517         unsafe {
2518             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2519             s.assume_init()
2520         }
2521     }
2522 }
2523 #[repr(C)]
2524 #[derive(Copy, Clone)]
2525 pub struct kvm_assigned_irq {
2526     pub assigned_dev_id: u32,
2527     pub host_irq: u32,
2528     pub guest_irq: u32,
2529     pub flags: u32,
2530     pub __bindgen_anon_1: kvm_assigned_irq__bindgen_ty_1,
2531 }
2532 #[repr(C)]
2533 #[derive(Copy, Clone)]
2534 pub union kvm_assigned_irq__bindgen_ty_1 {
2535     pub reserved: [u32; 12usize],
2536 }
2537 impl Default for kvm_assigned_irq__bindgen_ty_1 {
default() -> Self2538     fn default() -> Self {
2539         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2540         unsafe {
2541             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2542             s.assume_init()
2543         }
2544     }
2545 }
2546 impl Default for kvm_assigned_irq {
default() -> Self2547     fn default() -> Self {
2548         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2549         unsafe {
2550             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2551             s.assume_init()
2552         }
2553     }
2554 }
2555 #[repr(C)]
2556 #[derive(Debug, Default, Copy, Clone)]
2557 pub struct kvm_assigned_msix_nr {
2558     pub assigned_dev_id: u32,
2559     pub entry_nr: u16,
2560     pub padding: u16,
2561 }
2562 #[repr(C)]
2563 #[derive(Debug, Default, Copy, Clone)]
2564 pub struct kvm_assigned_msix_entry {
2565     pub assigned_dev_id: u32,
2566     pub gsi: u32,
2567     pub entry: u16,
2568     pub padding: [u16; 3usize],
2569 }
2570 #[repr(C)]
2571 #[derive(Debug, Default, Copy, Clone)]
2572 pub struct kvm_hyperv_eventfd {
2573     pub conn_id: u32,
2574     pub fd: i32,
2575     pub flags: u32,
2576     pub padding: [u32; 3usize],
2577 }
2578 #[repr(C)]
2579 #[derive(Debug, Default, Copy, Clone)]
2580 pub struct kvm_dirty_gfn {
2581     pub flags: u32,
2582     pub slot: u32,
2583     pub offset: u64,
2584 }
2585 #[repr(C)]
2586 #[derive(Debug, Default, Copy, Clone)]
2587 pub struct kvm_stats_header {
2588     pub flags: u32,
2589     pub name_size: u32,
2590     pub num_desc: u32,
2591     pub id_offset: u32,
2592     pub desc_offset: u32,
2593     pub data_offset: u32,
2594 }
2595 #[repr(C)]
2596 #[derive(Debug, Default)]
2597 pub struct kvm_stats_desc {
2598     pub flags: u32,
2599     pub exponent: i16,
2600     pub size: u16,
2601     pub offset: u32,
2602     pub bucket_size: u32,
2603     pub name: __IncompleteArrayField<::std::os::raw::c_char>,
2604 }
2605 #[repr(C)]
2606 #[derive(Copy, Clone)]
2607 pub struct kvm_s390_zpci_op {
2608     pub fh: u32,
2609     pub op: u8,
2610     pub pad: [u8; 3usize],
2611     pub u: kvm_s390_zpci_op__bindgen_ty_1,
2612 }
2613 #[repr(C)]
2614 #[derive(Copy, Clone)]
2615 pub union kvm_s390_zpci_op__bindgen_ty_1 {
2616     pub reg_aen: kvm_s390_zpci_op__bindgen_ty_1__bindgen_ty_1,
2617     pub reserved: [u64; 8usize],
2618 }
2619 #[repr(C)]
2620 #[derive(Debug, Default, Copy, Clone)]
2621 pub struct kvm_s390_zpci_op__bindgen_ty_1__bindgen_ty_1 {
2622     pub ibv: u64,
2623     pub sb: u64,
2624     pub flags: u32,
2625     pub noi: u32,
2626     pub isc: u8,
2627     pub sbo: u8,
2628     pub pad: u16,
2629 }
2630 impl Default for kvm_s390_zpci_op__bindgen_ty_1 {
default() -> Self2631     fn default() -> Self {
2632         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2633         unsafe {
2634             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2635             s.assume_init()
2636         }
2637     }
2638 }
2639 impl Default for kvm_s390_zpci_op {
default() -> Self2640     fn default() -> Self {
2641         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2642         unsafe {
2643             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2644             s.assume_init()
2645         }
2646     }
2647 }
2648