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