• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* automatically generated by tools/bindgen-all-the-things */
2 
3 #![allow(clippy::missing_safety_doc)]
4 #![allow(clippy::undocumented_unsafe_blocks)]
5 #![allow(clippy::upper_case_acronyms)]
6 #![allow(non_upper_case_globals)]
7 #![allow(non_camel_case_types)]
8 #![allow(non_snake_case)]
9 #![allow(dead_code)]
10 
11 // Added by kvm_sys/bindgen.sh
12 use zerocopy::FromBytes;
13 use zerocopy::Immutable;
14 use zerocopy::IntoBytes;
15 use zerocopy::KnownLayout;
16 
17 // TODO(b/388092267): Replace this with an upstream equivalent when available.
18 // The original index (236) used in the ChromeOS v6.6 kernel was reused upstream for another
19 // capability, so this may return incorrect information on some kernels.
20 pub const KVM_CAP_USER_CONFIGURE_NONCOHERENT_DMA_CROS: u32 = 236;
21 
22 // TODO(qwandor): Update this once the pKVM patches are merged upstream with a stable capability ID.
23 pub const KVM_CAP_ARM_PROTECTED_VM: u32 = 0xffbadab1;
24 pub const KVM_CAP_ARM_PROTECTED_VM_FLAGS_SET_FW_IPA: u32 = 0;
25 pub const KVM_CAP_ARM_PROTECTED_VM_FLAGS_INFO: u32 = 1;
26 pub const KVM_VM_TYPE_ARM_PROTECTED: u32 = 0x80000000;
27 pub const KVM_X86_PKVM_PROTECTED_VM: u32 = 28;
28 pub const KVM_CAP_X86_PROTECTED_VM: u32 = 0xffbadab2;
29 pub const KVM_CAP_X86_PROTECTED_VM_FLAGS_SET_FW_GPA: u32 = 0;
30 pub const KVM_CAP_X86_PROTECTED_VM_FLAGS_INFO: u32 = 1;
31 pub const KVM_DEV_VFIO_PVIOMMU: u32 = 2;
32 pub const KVM_DEV_VFIO_PVIOMMU_ATTACH: u32 = 1;
33 #[repr(C)]
34 #[derive(Debug, Default, Copy, Clone)]
35 pub struct kvm_vfio_iommu_info {
36     pub device_fd: i32,
37     pub nr_sids: u32,
38 }
39 pub const KVM_DEV_VFIO_PVIOMMU_GET_INFO: u32 = 2;
40 #[repr(C)]
41 #[derive(Debug, Default, Copy, Clone)]
42 pub struct kvm_vfio_iommu_config {
43     pub device_fd: i32,
44     pub sid_idx: u32,
45     pub vsid: u32,
46 }
47 
48 #[repr(C)]
49 #[derive(Default)]
50 pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]);
51 impl<T> __IncompleteArrayField<T> {
52     #[inline]
new() -> Self53     pub const fn new() -> Self {
54         __IncompleteArrayField(::std::marker::PhantomData, [])
55     }
56     #[inline]
as_ptr(&self) -> *const T57     pub fn as_ptr(&self) -> *const T {
58         self as *const _ as *const T
59     }
60     #[inline]
as_mut_ptr(&mut self) -> *mut T61     pub fn as_mut_ptr(&mut self) -> *mut T {
62         self as *mut _ as *mut T
63     }
64     #[inline]
as_slice(&self, len: usize) -> &[T]65     pub unsafe fn as_slice(&self, len: usize) -> &[T] {
66         ::std::slice::from_raw_parts(self.as_ptr(), len)
67     }
68     #[inline]
as_mut_slice(&mut self, len: usize) -> &mut [T]69     pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
70         ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
71     }
72 }
73 impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result74     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
75         fmt.write_str("__IncompleteArrayField")
76     }
77 }
78 pub const PTRACE_GETFDPIC: u32 = 33;
79 pub const PTRACE_GETFDPIC_EXEC: u32 = 0;
80 pub const PTRACE_GETFDPIC_INTERP: u32 = 1;
81 pub const RISCV_MAX_VLENB: u32 = 8192;
82 pub const KVM_COALESCED_MMIO_PAGE_OFFSET: u32 = 1;
83 pub const KVM_INTERRUPT_SET: i32 = -1;
84 pub const KVM_INTERRUPT_UNSET: i32 = -2;
85 pub const KVM_RISCV_MODE_S: u32 = 1;
86 pub const KVM_RISCV_MODE_U: u32 = 0;
87 pub const KVM_RISCV_TIMER_STATE_OFF: u32 = 0;
88 pub const KVM_RISCV_TIMER_STATE_ON: u32 = 1;
89 pub const KVM_REG_RISCV_TYPE_MASK: u32 = 4278190080;
90 pub const KVM_REG_RISCV_TYPE_SHIFT: u32 = 24;
91 pub const KVM_REG_RISCV_SUBTYPE_MASK: u32 = 16711680;
92 pub const KVM_REG_RISCV_SUBTYPE_SHIFT: u32 = 16;
93 pub const KVM_REG_RISCV_CONFIG: u32 = 16777216;
94 pub const KVM_REG_RISCV_CORE: u32 = 33554432;
95 pub const KVM_REG_RISCV_CSR: u32 = 50331648;
96 pub const KVM_REG_RISCV_CSR_GENERAL: u32 = 0;
97 pub const KVM_REG_RISCV_CSR_AIA: u32 = 65536;
98 pub const KVM_REG_RISCV_CSR_SMSTATEEN: u32 = 131072;
99 pub const KVM_REG_RISCV_TIMER: u32 = 67108864;
100 pub const KVM_REG_RISCV_FP_F: u32 = 83886080;
101 pub const KVM_REG_RISCV_FP_D: u32 = 100663296;
102 pub const KVM_REG_RISCV_ISA_EXT: u32 = 117440512;
103 pub const KVM_REG_RISCV_ISA_SINGLE: u32 = 0;
104 pub const KVM_REG_RISCV_ISA_MULTI_EN: u32 = 65536;
105 pub const KVM_REG_RISCV_ISA_MULTI_DIS: u32 = 131072;
106 pub const KVM_REG_RISCV_SBI_EXT: u32 = 134217728;
107 pub const KVM_REG_RISCV_SBI_SINGLE: u32 = 0;
108 pub const KVM_REG_RISCV_SBI_MULTI_EN: u32 = 65536;
109 pub const KVM_REG_RISCV_SBI_MULTI_DIS: u32 = 131072;
110 pub const KVM_REG_RISCV_VECTOR: u32 = 150994944;
111 pub const KVM_REG_RISCV_SBI_STATE: u32 = 167772160;
112 pub const KVM_REG_RISCV_SBI_STA: u32 = 0;
113 pub const KVM_DEV_RISCV_APLIC_ALIGN: u32 = 4096;
114 pub const KVM_DEV_RISCV_APLIC_SIZE: u32 = 16384;
115 pub const KVM_DEV_RISCV_APLIC_MAX_HARTS: u32 = 16384;
116 pub const KVM_DEV_RISCV_IMSIC_ALIGN: u32 = 4096;
117 pub const KVM_DEV_RISCV_IMSIC_SIZE: u32 = 4096;
118 pub const KVM_DEV_RISCV_AIA_GRP_CONFIG: u32 = 0;
119 pub const KVM_DEV_RISCV_AIA_CONFIG_MODE: u32 = 0;
120 pub const KVM_DEV_RISCV_AIA_CONFIG_IDS: u32 = 1;
121 pub const KVM_DEV_RISCV_AIA_CONFIG_SRCS: u32 = 2;
122 pub const KVM_DEV_RISCV_AIA_CONFIG_GROUP_BITS: u32 = 3;
123 pub const KVM_DEV_RISCV_AIA_CONFIG_GROUP_SHIFT: u32 = 4;
124 pub const KVM_DEV_RISCV_AIA_CONFIG_HART_BITS: u32 = 5;
125 pub const KVM_DEV_RISCV_AIA_CONFIG_GUEST_BITS: u32 = 6;
126 pub const KVM_DEV_RISCV_AIA_MODE_EMUL: u32 = 0;
127 pub const KVM_DEV_RISCV_AIA_MODE_HWACCEL: u32 = 1;
128 pub const KVM_DEV_RISCV_AIA_MODE_AUTO: u32 = 2;
129 pub const KVM_DEV_RISCV_AIA_IDS_MIN: u32 = 63;
130 pub const KVM_DEV_RISCV_AIA_IDS_MAX: u32 = 2048;
131 pub const KVM_DEV_RISCV_AIA_SRCS_MAX: u32 = 1024;
132 pub const KVM_DEV_RISCV_AIA_GROUP_BITS_MAX: u32 = 8;
133 pub const KVM_DEV_RISCV_AIA_GROUP_SHIFT_MIN: u32 = 24;
134 pub const KVM_DEV_RISCV_AIA_GROUP_SHIFT_MAX: u32 = 56;
135 pub const KVM_DEV_RISCV_AIA_HART_BITS_MAX: u32 = 16;
136 pub const KVM_DEV_RISCV_AIA_GUEST_BITS_MAX: u32 = 8;
137 pub const KVM_DEV_RISCV_AIA_GRP_ADDR: u32 = 1;
138 pub const KVM_DEV_RISCV_AIA_ADDR_APLIC: u32 = 0;
139 pub const KVM_DEV_RISCV_AIA_ADDR_MAX: u32 = 16385;
140 pub const KVM_DEV_RISCV_AIA_GRP_CTRL: u32 = 2;
141 pub const KVM_DEV_RISCV_AIA_CTRL_INIT: u32 = 0;
142 pub const KVM_DEV_RISCV_AIA_GRP_APLIC: u32 = 3;
143 pub const KVM_DEV_RISCV_AIA_GRP_IMSIC: u32 = 4;
144 pub const KVM_DEV_RISCV_AIA_IMSIC_ISEL_BITS: u32 = 12;
145 pub const KVM_DEV_RISCV_AIA_IMSIC_ISEL_MASK: u32 = 4095;
146 pub const KVM_NR_IRQCHIPS: u32 = 1;
147 pub const KVM_API_VERSION: u32 = 12;
148 pub const KVM_MEM_LOG_DIRTY_PAGES: u32 = 1;
149 pub const KVM_MEM_READONLY: u32 = 2;
150 pub const KVM_MEM_GUEST_MEMFD: u32 = 4;
151 pub const KVM_MEM_NON_COHERENT_DMA: u32 = 8;
152 pub const KVM_PIT_SPEAKER_DUMMY: u32 = 1;
153 pub const KVM_EXIT_HYPERV_SYNIC: u32 = 1;
154 pub const KVM_EXIT_HYPERV_HCALL: u32 = 2;
155 pub const KVM_EXIT_HYPERV_SYNDBG: u32 = 3;
156 pub const KVM_EXIT_XEN_HCALL: u32 = 1;
157 pub const KVM_S390_GET_SKEYS_NONE: u32 = 1;
158 pub const KVM_S390_SKEYS_MAX: u32 = 1048576;
159 pub const KVM_EXIT_UNKNOWN: u32 = 0;
160 pub const KVM_EXIT_EXCEPTION: u32 = 1;
161 pub const KVM_EXIT_IO: u32 = 2;
162 pub const KVM_EXIT_HYPERCALL: u32 = 3;
163 pub const KVM_EXIT_DEBUG: u32 = 4;
164 pub const KVM_EXIT_HLT: u32 = 5;
165 pub const KVM_EXIT_MMIO: u32 = 6;
166 pub const KVM_EXIT_IRQ_WINDOW_OPEN: u32 = 7;
167 pub const KVM_EXIT_SHUTDOWN: u32 = 8;
168 pub const KVM_EXIT_FAIL_ENTRY: u32 = 9;
169 pub const KVM_EXIT_INTR: u32 = 10;
170 pub const KVM_EXIT_SET_TPR: u32 = 11;
171 pub const KVM_EXIT_TPR_ACCESS: u32 = 12;
172 pub const KVM_EXIT_S390_SIEIC: u32 = 13;
173 pub const KVM_EXIT_S390_RESET: u32 = 14;
174 pub const KVM_EXIT_DCR: u32 = 15;
175 pub const KVM_EXIT_NMI: u32 = 16;
176 pub const KVM_EXIT_INTERNAL_ERROR: u32 = 17;
177 pub const KVM_EXIT_OSI: u32 = 18;
178 pub const KVM_EXIT_PAPR_HCALL: u32 = 19;
179 pub const KVM_EXIT_S390_UCONTROL: u32 = 20;
180 pub const KVM_EXIT_WATCHDOG: u32 = 21;
181 pub const KVM_EXIT_S390_TSCH: u32 = 22;
182 pub const KVM_EXIT_EPR: u32 = 23;
183 pub const KVM_EXIT_SYSTEM_EVENT: u32 = 24;
184 pub const KVM_EXIT_S390_STSI: u32 = 25;
185 pub const KVM_EXIT_IOAPIC_EOI: u32 = 26;
186 pub const KVM_EXIT_HYPERV: u32 = 27;
187 pub const KVM_EXIT_ARM_NISV: u32 = 28;
188 pub const KVM_EXIT_X86_RDMSR: u32 = 29;
189 pub const KVM_EXIT_X86_WRMSR: u32 = 30;
190 pub const KVM_EXIT_DIRTY_RING_FULL: u32 = 31;
191 pub const KVM_EXIT_AP_RESET_HOLD: u32 = 32;
192 pub const KVM_EXIT_X86_BUS_LOCK: u32 = 33;
193 pub const KVM_EXIT_XEN: u32 = 34;
194 pub const KVM_EXIT_RISCV_SBI: u32 = 35;
195 pub const KVM_EXIT_RISCV_CSR: u32 = 36;
196 pub const KVM_EXIT_NOTIFY: u32 = 37;
197 pub const KVM_EXIT_LOONGARCH_IOCSR: u32 = 38;
198 pub const KVM_EXIT_MEMORY_FAULT: u32 = 39;
199 pub const KVM_INTERNAL_ERROR_EMULATION: u32 = 1;
200 pub const KVM_INTERNAL_ERROR_SIMUL_EX: u32 = 2;
201 pub const KVM_INTERNAL_ERROR_DELIVERY_EV: u32 = 3;
202 pub const KVM_INTERNAL_ERROR_UNEXPECTED_EXIT_REASON: u32 = 4;
203 pub const KVM_INTERNAL_ERROR_EMULATION_FLAG_INSTRUCTION_BYTES: u32 = 1;
204 pub const KVM_EXIT_IO_IN: u32 = 0;
205 pub const KVM_EXIT_IO_OUT: u32 = 1;
206 pub const KVM_SYSTEM_EVENT_SHUTDOWN: u32 = 1;
207 pub const KVM_SYSTEM_EVENT_RESET: u32 = 2;
208 pub const KVM_SYSTEM_EVENT_CRASH: u32 = 3;
209 pub const KVM_SYSTEM_EVENT_WAKEUP: u32 = 4;
210 pub const KVM_SYSTEM_EVENT_SUSPEND: u32 = 5;
211 pub const KVM_SYSTEM_EVENT_SEV_TERM: u32 = 6;
212 pub const KVM_MSR_EXIT_REASON_INVAL: u32 = 1;
213 pub const KVM_MSR_EXIT_REASON_UNKNOWN: u32 = 2;
214 pub const KVM_MSR_EXIT_REASON_FILTER: u32 = 4;
215 pub const KVM_MSR_EXIT_REASON_VALID_MASK: u32 = 7;
216 pub const KVM_NOTIFY_CONTEXT_INVALID: u32 = 1;
217 pub const KVM_MEMORY_EXIT_FLAG_PRIVATE: u32 = 8;
218 pub const SYNC_REGS_SIZE_BYTES: u32 = 2048;
219 pub const KVM_MP_STATE_RUNNABLE: u32 = 0;
220 pub const KVM_MP_STATE_UNINITIALIZED: u32 = 1;
221 pub const KVM_MP_STATE_INIT_RECEIVED: u32 = 2;
222 pub const KVM_MP_STATE_HALTED: u32 = 3;
223 pub const KVM_MP_STATE_SIPI_RECEIVED: u32 = 4;
224 pub const KVM_MP_STATE_STOPPED: u32 = 5;
225 pub const KVM_MP_STATE_CHECK_STOP: u32 = 6;
226 pub const KVM_MP_STATE_OPERATING: u32 = 7;
227 pub const KVM_MP_STATE_LOAD: u32 = 8;
228 pub const KVM_MP_STATE_AP_RESET_HOLD: u32 = 9;
229 pub const KVM_MP_STATE_SUSPENDED: u32 = 10;
230 pub const KVM_GUESTDBG_ENABLE: u32 = 1;
231 pub const KVM_GUESTDBG_SINGLESTEP: u32 = 2;
232 pub const KVM_X86_DISABLE_EXITS_MWAIT: u32 = 1;
233 pub const KVM_X86_DISABLE_EXITS_HLT: u32 = 2;
234 pub const KVM_X86_DISABLE_EXITS_PAUSE: u32 = 4;
235 pub const KVM_X86_DISABLE_EXITS_CSTATE: u32 = 8;
236 pub const KVM_X86_DISABLE_VALID_EXITS: u32 = 15;
237 pub const KVMIO: u32 = 174;
238 pub const KVM_VM_S390_UCONTROL: u32 = 1;
239 pub const KVM_VM_PPC_HV: u32 = 1;
240 pub const KVM_VM_PPC_PR: u32 = 2;
241 pub const KVM_VM_MIPS_AUTO: u32 = 0;
242 pub const KVM_VM_MIPS_VZ: u32 = 1;
243 pub const KVM_VM_MIPS_TE: u32 = 2;
244 pub const KVM_S390_SIE_PAGE_OFFSET: u32 = 1;
245 pub const KVM_VM_TYPE_ARM_IPA_SIZE_MASK: u32 = 255;
246 pub const KVM_CAP_IRQCHIP: u32 = 0;
247 pub const KVM_CAP_HLT: u32 = 1;
248 pub const KVM_CAP_MMU_SHADOW_CACHE_CONTROL: u32 = 2;
249 pub const KVM_CAP_USER_MEMORY: u32 = 3;
250 pub const KVM_CAP_SET_TSS_ADDR: u32 = 4;
251 pub const KVM_CAP_VAPIC: u32 = 6;
252 pub const KVM_CAP_EXT_CPUID: u32 = 7;
253 pub const KVM_CAP_CLOCKSOURCE: u32 = 8;
254 pub const KVM_CAP_NR_VCPUS: u32 = 9;
255 pub const KVM_CAP_NR_MEMSLOTS: u32 = 10;
256 pub const KVM_CAP_PIT: u32 = 11;
257 pub const KVM_CAP_NOP_IO_DELAY: u32 = 12;
258 pub const KVM_CAP_PV_MMU: u32 = 13;
259 pub const KVM_CAP_MP_STATE: u32 = 14;
260 pub const KVM_CAP_COALESCED_MMIO: u32 = 15;
261 pub const KVM_CAP_SYNC_MMU: u32 = 16;
262 pub const KVM_CAP_IOMMU: u32 = 18;
263 pub const KVM_CAP_DESTROY_MEMORY_REGION_WORKS: u32 = 21;
264 pub const KVM_CAP_USER_NMI: u32 = 22;
265 pub const KVM_CAP_SET_GUEST_DEBUG: u32 = 23;
266 pub const KVM_CAP_IRQ_ROUTING: u32 = 25;
267 pub const KVM_CAP_IRQ_INJECT_STATUS: u32 = 26;
268 pub const KVM_CAP_ASSIGN_DEV_IRQ: u32 = 29;
269 pub const KVM_CAP_JOIN_MEMORY_REGIONS_WORKS: u32 = 30;
270 pub const KVM_CAP_IRQFD: u32 = 32;
271 pub const KVM_CAP_SET_BOOT_CPU_ID: u32 = 34;
272 pub const KVM_CAP_IOEVENTFD: u32 = 36;
273 pub const KVM_CAP_SET_IDENTITY_MAP_ADDR: u32 = 37;
274 pub const KVM_CAP_ADJUST_CLOCK: u32 = 39;
275 pub const KVM_CAP_INTERNAL_ERROR_DATA: u32 = 40;
276 pub const KVM_CAP_S390_PSW: u32 = 42;
277 pub const KVM_CAP_PPC_SEGSTATE: u32 = 43;
278 pub const KVM_CAP_HYPERV: u32 = 44;
279 pub const KVM_CAP_HYPERV_VAPIC: u32 = 45;
280 pub const KVM_CAP_HYPERV_SPIN: u32 = 46;
281 pub const KVM_CAP_PCI_SEGMENT: u32 = 47;
282 pub const KVM_CAP_PPC_PAIRED_SINGLES: u32 = 48;
283 pub const KVM_CAP_INTR_SHADOW: u32 = 49;
284 pub const KVM_CAP_X86_ROBUST_SINGLESTEP: u32 = 51;
285 pub const KVM_CAP_PPC_OSI: u32 = 52;
286 pub const KVM_CAP_PPC_UNSET_IRQ: u32 = 53;
287 pub const KVM_CAP_ENABLE_CAP: u32 = 54;
288 pub const KVM_CAP_PPC_GET_PVINFO: u32 = 57;
289 pub const KVM_CAP_PPC_IRQ_LEVEL: u32 = 58;
290 pub const KVM_CAP_ASYNC_PF: u32 = 59;
291 pub const KVM_CAP_TSC_CONTROL: u32 = 60;
292 pub const KVM_CAP_GET_TSC_KHZ: u32 = 61;
293 pub const KVM_CAP_PPC_BOOKE_SREGS: u32 = 62;
294 pub const KVM_CAP_SPAPR_TCE: u32 = 63;
295 pub const KVM_CAP_PPC_SMT: u32 = 64;
296 pub const KVM_CAP_PPC_RMA: u32 = 65;
297 pub const KVM_CAP_MAX_VCPUS: u32 = 66;
298 pub const KVM_CAP_PPC_HIOR: u32 = 67;
299 pub const KVM_CAP_PPC_PAPR: u32 = 68;
300 pub const KVM_CAP_SW_TLB: u32 = 69;
301 pub const KVM_CAP_ONE_REG: u32 = 70;
302 pub const KVM_CAP_S390_GMAP: u32 = 71;
303 pub const KVM_CAP_TSC_DEADLINE_TIMER: u32 = 72;
304 pub const KVM_CAP_S390_UCONTROL: u32 = 73;
305 pub const KVM_CAP_SYNC_REGS: u32 = 74;
306 pub const KVM_CAP_PCI_2_3: u32 = 75;
307 pub const KVM_CAP_KVMCLOCK_CTRL: u32 = 76;
308 pub const KVM_CAP_SIGNAL_MSI: u32 = 77;
309 pub const KVM_CAP_PPC_GET_SMMU_INFO: u32 = 78;
310 pub const KVM_CAP_S390_COW: u32 = 79;
311 pub const KVM_CAP_PPC_ALLOC_HTAB: u32 = 80;
312 pub const KVM_CAP_READONLY_MEM: u32 = 81;
313 pub const KVM_CAP_IRQFD_RESAMPLE: u32 = 82;
314 pub const KVM_CAP_PPC_BOOKE_WATCHDOG: u32 = 83;
315 pub const KVM_CAP_PPC_HTAB_FD: u32 = 84;
316 pub const KVM_CAP_S390_CSS_SUPPORT: u32 = 85;
317 pub const KVM_CAP_PPC_EPR: u32 = 86;
318 pub const KVM_CAP_ARM_PSCI: u32 = 87;
319 pub const KVM_CAP_ARM_SET_DEVICE_ADDR: u32 = 88;
320 pub const KVM_CAP_DEVICE_CTRL: u32 = 89;
321 pub const KVM_CAP_IRQ_MPIC: u32 = 90;
322 pub const KVM_CAP_PPC_RTAS: u32 = 91;
323 pub const KVM_CAP_IRQ_XICS: u32 = 92;
324 pub const KVM_CAP_ARM_EL1_32BIT: u32 = 93;
325 pub const KVM_CAP_SPAPR_MULTITCE: u32 = 94;
326 pub const KVM_CAP_EXT_EMUL_CPUID: u32 = 95;
327 pub const KVM_CAP_HYPERV_TIME: u32 = 96;
328 pub const KVM_CAP_IOAPIC_POLARITY_IGNORED: u32 = 97;
329 pub const KVM_CAP_ENABLE_CAP_VM: u32 = 98;
330 pub const KVM_CAP_S390_IRQCHIP: u32 = 99;
331 pub const KVM_CAP_IOEVENTFD_NO_LENGTH: u32 = 100;
332 pub const KVM_CAP_VM_ATTRIBUTES: u32 = 101;
333 pub const KVM_CAP_ARM_PSCI_0_2: u32 = 102;
334 pub const KVM_CAP_PPC_FIXUP_HCALL: u32 = 103;
335 pub const KVM_CAP_PPC_ENABLE_HCALL: u32 = 104;
336 pub const KVM_CAP_CHECK_EXTENSION_VM: u32 = 105;
337 pub const KVM_CAP_S390_USER_SIGP: u32 = 106;
338 pub const KVM_CAP_S390_VECTOR_REGISTERS: u32 = 107;
339 pub const KVM_CAP_S390_MEM_OP: u32 = 108;
340 pub const KVM_CAP_S390_USER_STSI: u32 = 109;
341 pub const KVM_CAP_S390_SKEYS: u32 = 110;
342 pub const KVM_CAP_MIPS_FPU: u32 = 111;
343 pub const KVM_CAP_MIPS_MSA: u32 = 112;
344 pub const KVM_CAP_S390_INJECT_IRQ: u32 = 113;
345 pub const KVM_CAP_S390_IRQ_STATE: u32 = 114;
346 pub const KVM_CAP_PPC_HWRNG: u32 = 115;
347 pub const KVM_CAP_DISABLE_QUIRKS: u32 = 116;
348 pub const KVM_CAP_X86_SMM: u32 = 117;
349 pub const KVM_CAP_MULTI_ADDRESS_SPACE: u32 = 118;
350 pub const KVM_CAP_GUEST_DEBUG_HW_BPS: u32 = 119;
351 pub const KVM_CAP_GUEST_DEBUG_HW_WPS: u32 = 120;
352 pub const KVM_CAP_SPLIT_IRQCHIP: u32 = 121;
353 pub const KVM_CAP_IOEVENTFD_ANY_LENGTH: u32 = 122;
354 pub const KVM_CAP_HYPERV_SYNIC: u32 = 123;
355 pub const KVM_CAP_S390_RI: u32 = 124;
356 pub const KVM_CAP_SPAPR_TCE_64: u32 = 125;
357 pub const KVM_CAP_ARM_PMU_V3: u32 = 126;
358 pub const KVM_CAP_VCPU_ATTRIBUTES: u32 = 127;
359 pub const KVM_CAP_MAX_VCPU_ID: u32 = 128;
360 pub const KVM_CAP_X2APIC_API: u32 = 129;
361 pub const KVM_CAP_S390_USER_INSTR0: u32 = 130;
362 pub const KVM_CAP_MSI_DEVID: u32 = 131;
363 pub const KVM_CAP_PPC_HTM: u32 = 132;
364 pub const KVM_CAP_SPAPR_RESIZE_HPT: u32 = 133;
365 pub const KVM_CAP_PPC_MMU_RADIX: u32 = 134;
366 pub const KVM_CAP_PPC_MMU_HASH_V3: u32 = 135;
367 pub const KVM_CAP_IMMEDIATE_EXIT: u32 = 136;
368 pub const KVM_CAP_MIPS_VZ: u32 = 137;
369 pub const KVM_CAP_MIPS_TE: u32 = 138;
370 pub const KVM_CAP_MIPS_64BIT: u32 = 139;
371 pub const KVM_CAP_S390_GS: u32 = 140;
372 pub const KVM_CAP_S390_AIS: u32 = 141;
373 pub const KVM_CAP_SPAPR_TCE_VFIO: u32 = 142;
374 pub const KVM_CAP_X86_DISABLE_EXITS: u32 = 143;
375 pub const KVM_CAP_ARM_USER_IRQ: u32 = 144;
376 pub const KVM_CAP_S390_CMMA_MIGRATION: u32 = 145;
377 pub const KVM_CAP_PPC_FWNMI: u32 = 146;
378 pub const KVM_CAP_PPC_SMT_POSSIBLE: u32 = 147;
379 pub const KVM_CAP_HYPERV_SYNIC2: u32 = 148;
380 pub const KVM_CAP_HYPERV_VP_INDEX: u32 = 149;
381 pub const KVM_CAP_S390_AIS_MIGRATION: u32 = 150;
382 pub const KVM_CAP_PPC_GET_CPU_CHAR: u32 = 151;
383 pub const KVM_CAP_S390_BPB: u32 = 152;
384 pub const KVM_CAP_GET_MSR_FEATURES: u32 = 153;
385 pub const KVM_CAP_HYPERV_EVENTFD: u32 = 154;
386 pub const KVM_CAP_HYPERV_TLBFLUSH: u32 = 155;
387 pub const KVM_CAP_S390_HPAGE_1M: u32 = 156;
388 pub const KVM_CAP_NESTED_STATE: u32 = 157;
389 pub const KVM_CAP_ARM_INJECT_SERROR_ESR: u32 = 158;
390 pub const KVM_CAP_MSR_PLATFORM_INFO: u32 = 159;
391 pub const KVM_CAP_PPC_NESTED_HV: u32 = 160;
392 pub const KVM_CAP_HYPERV_SEND_IPI: u32 = 161;
393 pub const KVM_CAP_COALESCED_PIO: u32 = 162;
394 pub const KVM_CAP_HYPERV_ENLIGHTENED_VMCS: u32 = 163;
395 pub const KVM_CAP_EXCEPTION_PAYLOAD: u32 = 164;
396 pub const KVM_CAP_ARM_VM_IPA_SIZE: u32 = 165;
397 pub const KVM_CAP_MANUAL_DIRTY_LOG_PROTECT: u32 = 166;
398 pub const KVM_CAP_HYPERV_CPUID: u32 = 167;
399 pub const KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2: u32 = 168;
400 pub const KVM_CAP_PPC_IRQ_XIVE: u32 = 169;
401 pub const KVM_CAP_ARM_SVE: u32 = 170;
402 pub const KVM_CAP_ARM_PTRAUTH_ADDRESS: u32 = 171;
403 pub const KVM_CAP_ARM_PTRAUTH_GENERIC: u32 = 172;
404 pub const KVM_CAP_PMU_EVENT_FILTER: u32 = 173;
405 pub const KVM_CAP_ARM_IRQ_LINE_LAYOUT_2: u32 = 174;
406 pub const KVM_CAP_HYPERV_DIRECT_TLBFLUSH: u32 = 175;
407 pub const KVM_CAP_PPC_GUEST_DEBUG_SSTEP: u32 = 176;
408 pub const KVM_CAP_ARM_NISV_TO_USER: u32 = 177;
409 pub const KVM_CAP_ARM_INJECT_EXT_DABT: u32 = 178;
410 pub const KVM_CAP_S390_VCPU_RESETS: u32 = 179;
411 pub const KVM_CAP_S390_PROTECTED: u32 = 180;
412 pub const KVM_CAP_PPC_SECURE_GUEST: u32 = 181;
413 pub const KVM_CAP_HALT_POLL: u32 = 182;
414 pub const KVM_CAP_ASYNC_PF_INT: u32 = 183;
415 pub const KVM_CAP_LAST_CPU: u32 = 184;
416 pub const KVM_CAP_SMALLER_MAXPHYADDR: u32 = 185;
417 pub const KVM_CAP_S390_DIAG318: u32 = 186;
418 pub const KVM_CAP_STEAL_TIME: u32 = 187;
419 pub const KVM_CAP_X86_USER_SPACE_MSR: u32 = 188;
420 pub const KVM_CAP_X86_MSR_FILTER: u32 = 189;
421 pub const KVM_CAP_ENFORCE_PV_FEATURE_CPUID: u32 = 190;
422 pub const KVM_CAP_SYS_HYPERV_CPUID: u32 = 191;
423 pub const KVM_CAP_DIRTY_LOG_RING: u32 = 192;
424 pub const KVM_CAP_X86_BUS_LOCK_EXIT: u32 = 193;
425 pub const KVM_CAP_PPC_DAWR1: u32 = 194;
426 pub const KVM_CAP_SET_GUEST_DEBUG2: u32 = 195;
427 pub const KVM_CAP_SGX_ATTRIBUTE: u32 = 196;
428 pub const KVM_CAP_VM_COPY_ENC_CONTEXT_FROM: u32 = 197;
429 pub const KVM_CAP_PTP_KVM: u32 = 198;
430 pub const KVM_CAP_HYPERV_ENFORCE_CPUID: u32 = 199;
431 pub const KVM_CAP_SREGS2: u32 = 200;
432 pub const KVM_CAP_EXIT_HYPERCALL: u32 = 201;
433 pub const KVM_CAP_PPC_RPT_INVALIDATE: u32 = 202;
434 pub const KVM_CAP_BINARY_STATS_FD: u32 = 203;
435 pub const KVM_CAP_EXIT_ON_EMULATION_FAILURE: u32 = 204;
436 pub const KVM_CAP_ARM_MTE: u32 = 205;
437 pub const KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM: u32 = 206;
438 pub const KVM_CAP_VM_GPA_BITS: u32 = 207;
439 pub const KVM_CAP_XSAVE2: u32 = 208;
440 pub const KVM_CAP_SYS_ATTRIBUTES: u32 = 209;
441 pub const KVM_CAP_PPC_AIL_MODE_3: u32 = 210;
442 pub const KVM_CAP_S390_MEM_OP_EXTENSION: u32 = 211;
443 pub const KVM_CAP_PMU_CAPABILITY: u32 = 212;
444 pub const KVM_CAP_DISABLE_QUIRKS2: u32 = 213;
445 pub const KVM_CAP_VM_TSC_CONTROL: u32 = 214;
446 pub const KVM_CAP_SYSTEM_EVENT_DATA: u32 = 215;
447 pub const KVM_CAP_ARM_SYSTEM_SUSPEND: u32 = 216;
448 pub const KVM_CAP_S390_PROTECTED_DUMP: u32 = 217;
449 pub const KVM_CAP_X86_TRIPLE_FAULT_EVENT: u32 = 218;
450 pub const KVM_CAP_X86_NOTIFY_VMEXIT: u32 = 219;
451 pub const KVM_CAP_VM_DISABLE_NX_HUGE_PAGES: u32 = 220;
452 pub const KVM_CAP_S390_ZPCI_OP: u32 = 221;
453 pub const KVM_CAP_S390_CPU_TOPOLOGY: u32 = 222;
454 pub const KVM_CAP_DIRTY_LOG_RING_ACQ_REL: u32 = 223;
455 pub const KVM_CAP_S390_PROTECTED_ASYNC_DISABLE: u32 = 224;
456 pub const KVM_CAP_DIRTY_LOG_RING_WITH_BITMAP: u32 = 225;
457 pub const KVM_CAP_PMU_EVENT_MASKED_EVENTS: u32 = 226;
458 pub const KVM_CAP_COUNTER_OFFSET: u32 = 227;
459 pub const KVM_CAP_ARM_EAGER_SPLIT_CHUNK_SIZE: u32 = 228;
460 pub const KVM_CAP_ARM_SUPPORTED_BLOCK_SIZES: u32 = 229;
461 pub const KVM_CAP_ARM_SUPPORTED_REG_MASK_RANGES: u32 = 230;
462 pub const KVM_CAP_USER_MEMORY2: u32 = 231;
463 pub const KVM_CAP_MEMORY_FAULT_INFO: u32 = 232;
464 pub const KVM_CAP_MEMORY_ATTRIBUTES: u32 = 233;
465 pub const KVM_CAP_GUEST_MEMFD: u32 = 234;
466 pub const KVM_CAP_VM_TYPES: u32 = 235;
467 pub const KVM_CAP_PRE_FAULT_MEMORY: u32 = 236;
468 pub const KVM_CAP_X86_APIC_BUS_CYCLES_NS: u32 = 237;
469 pub const KVM_CAP_X86_GUEST_MODE: u32 = 238;
470 pub const KVM_CAP_USER_CONFIGURE_NONCOHERENT_DMA: u32 = 239;
471 pub const KVM_CAP_GET_CUR_CPUFREQ: u32 = 512;
472 pub const KVM_CAP_UTIL_HINT: u32 = 513;
473 pub const KVM_CAP_GET_CPUFREQ_TBL: u32 = 514;
474 pub const KVM_IRQ_ROUTING_IRQCHIP: u32 = 1;
475 pub const KVM_IRQ_ROUTING_MSI: u32 = 2;
476 pub const KVM_IRQ_ROUTING_S390_ADAPTER: u32 = 3;
477 pub const KVM_IRQ_ROUTING_HV_SINT: u32 = 4;
478 pub const KVM_IRQ_ROUTING_XEN_EVTCHN: u32 = 5;
479 pub const KVM_IRQFD_FLAG_DEASSIGN: u32 = 1;
480 pub const KVM_IRQFD_FLAG_RESAMPLE: u32 = 2;
481 pub const KVM_CLOCK_TSC_STABLE: u32 = 2;
482 pub const KVM_CLOCK_REALTIME: u32 = 4;
483 pub const KVM_CLOCK_HOST_TSC: u32 = 8;
484 pub const KVM_MMU_FSL_BOOKE_NOHV: u32 = 0;
485 pub const KVM_MMU_FSL_BOOKE_HV: u32 = 1;
486 pub const KVM_REG_ARCH_MASK: i64 = -72057594037927936;
487 pub const KVM_REG_GENERIC: u32 = 0;
488 pub const KVM_REG_PPC: u64 = 1152921504606846976;
489 pub const KVM_REG_X86: u64 = 2305843009213693952;
490 pub const KVM_REG_IA64: u64 = 3458764513820540928;
491 pub const KVM_REG_ARM: u64 = 4611686018427387904;
492 pub const KVM_REG_S390: u64 = 5764607523034234880;
493 pub const KVM_REG_ARM64: u64 = 6917529027641081856;
494 pub const KVM_REG_MIPS: u64 = 8070450532247928832;
495 pub const KVM_REG_RISCV: i64 = -9223372036854775808;
496 pub const KVM_REG_LOONGARCH: i64 = -8070450532247928832;
497 pub const KVM_REG_SIZE_SHIFT: u32 = 52;
498 pub const KVM_REG_SIZE_MASK: u64 = 67553994410557440;
499 pub const KVM_REG_SIZE_U8: u32 = 0;
500 pub const KVM_REG_SIZE_U16: u64 = 4503599627370496;
501 pub const KVM_REG_SIZE_U32: u64 = 9007199254740992;
502 pub const KVM_REG_SIZE_U64: u64 = 13510798882111488;
503 pub const KVM_REG_SIZE_U128: u64 = 18014398509481984;
504 pub const KVM_REG_SIZE_U256: u64 = 22517998136852480;
505 pub const KVM_REG_SIZE_U512: u64 = 27021597764222976;
506 pub const KVM_REG_SIZE_U1024: u64 = 31525197391593472;
507 pub const KVM_REG_SIZE_U2048: u64 = 36028797018963968;
508 pub const KVM_MSI_VALID_DEVID: u32 = 1;
509 pub const KVM_CREATE_DEVICE_TEST: u32 = 1;
510 pub const KVM_DEV_VFIO_FILE: u32 = 1;
511 pub const KVM_DEV_VFIO_FILE_ADD: u32 = 1;
512 pub const KVM_DEV_VFIO_FILE_DEL: u32 = 2;
513 pub const KVM_DEV_VFIO_GROUP: u32 = 1;
514 pub const KVM_DEV_VFIO_GROUP_ADD: u32 = 1;
515 pub const KVM_DEV_VFIO_GROUP_DEL: u32 = 2;
516 pub const KVM_DEV_VFIO_GROUP_SET_SPAPR_TCE: u32 = 3;
517 pub const KVM_S390_STORE_STATUS_NOADDR: i32 = -1;
518 pub const KVM_S390_STORE_STATUS_PREFIXED: i32 = -2;
519 pub const KVM_DIRTY_LOG_MANUAL_PROTECT_ENABLE: u32 = 1;
520 pub const KVM_DIRTY_LOG_INITIALLY_SET: u32 = 2;
521 pub const KVM_DIRTY_LOG_PAGE_OFFSET: u32 = 0;
522 pub const KVM_DIRTY_GFN_F_MASK: u32 = 3;
523 pub const KVM_BUS_LOCK_DETECTION_OFF: u32 = 1;
524 pub const KVM_BUS_LOCK_DETECTION_EXIT: u32 = 2;
525 pub const KVM_PMU_CAP_DISABLE: u32 = 1;
526 pub const KVM_STATS_TYPE_SHIFT: u32 = 0;
527 pub const KVM_STATS_TYPE_MASK: u32 = 15;
528 pub const KVM_STATS_TYPE_CUMULATIVE: u32 = 0;
529 pub const KVM_STATS_TYPE_INSTANT: u32 = 1;
530 pub const KVM_STATS_TYPE_PEAK: u32 = 2;
531 pub const KVM_STATS_TYPE_LINEAR_HIST: u32 = 3;
532 pub const KVM_STATS_TYPE_LOG_HIST: u32 = 4;
533 pub const KVM_STATS_TYPE_MAX: u32 = 4;
534 pub const KVM_STATS_UNIT_SHIFT: u32 = 4;
535 pub const KVM_STATS_UNIT_MASK: u32 = 240;
536 pub const KVM_STATS_UNIT_NONE: u32 = 0;
537 pub const KVM_STATS_UNIT_BYTES: u32 = 16;
538 pub const KVM_STATS_UNIT_SECONDS: u32 = 32;
539 pub const KVM_STATS_UNIT_CYCLES: u32 = 48;
540 pub const KVM_STATS_UNIT_BOOLEAN: u32 = 64;
541 pub const KVM_STATS_UNIT_MAX: u32 = 64;
542 pub const KVM_STATS_BASE_SHIFT: u32 = 8;
543 pub const KVM_STATS_BASE_MASK: u32 = 3840;
544 pub const KVM_STATS_BASE_POW10: u32 = 0;
545 pub const KVM_STATS_BASE_POW2: u32 = 256;
546 pub const KVM_STATS_BASE_MAX: u32 = 256;
547 pub const KVM_X86_NOTIFY_VMEXIT_ENABLED: u32 = 1;
548 pub const KVM_X86_NOTIFY_VMEXIT_USER: u32 = 2;
549 pub const KVM_MEMORY_ATTRIBUTE_PRIVATE: u32 = 8;
550 pub type __s128 = i128;
551 pub type __u128 = u128;
552 pub type __le16 = u16;
553 pub type __be16 = u16;
554 pub type __le32 = u32;
555 pub type __be32 = u32;
556 pub type __le64 = u64;
557 pub type __be64 = u64;
558 pub type __sum16 = u16;
559 pub type __wsum = u32;
560 pub type __poll_t = ::std::os::raw::c_uint;
561 #[repr(C)]
562 #[derive(Debug, Default, Copy, Clone)]
563 pub struct user_regs_struct {
564     pub pc: ::std::os::raw::c_ulong,
565     pub ra: ::std::os::raw::c_ulong,
566     pub sp: ::std::os::raw::c_ulong,
567     pub gp: ::std::os::raw::c_ulong,
568     pub tp: ::std::os::raw::c_ulong,
569     pub t0: ::std::os::raw::c_ulong,
570     pub t1: ::std::os::raw::c_ulong,
571     pub t2: ::std::os::raw::c_ulong,
572     pub s0: ::std::os::raw::c_ulong,
573     pub s1: ::std::os::raw::c_ulong,
574     pub a0: ::std::os::raw::c_ulong,
575     pub a1: ::std::os::raw::c_ulong,
576     pub a2: ::std::os::raw::c_ulong,
577     pub a3: ::std::os::raw::c_ulong,
578     pub a4: ::std::os::raw::c_ulong,
579     pub a5: ::std::os::raw::c_ulong,
580     pub a6: ::std::os::raw::c_ulong,
581     pub a7: ::std::os::raw::c_ulong,
582     pub s2: ::std::os::raw::c_ulong,
583     pub s3: ::std::os::raw::c_ulong,
584     pub s4: ::std::os::raw::c_ulong,
585     pub s5: ::std::os::raw::c_ulong,
586     pub s6: ::std::os::raw::c_ulong,
587     pub s7: ::std::os::raw::c_ulong,
588     pub s8: ::std::os::raw::c_ulong,
589     pub s9: ::std::os::raw::c_ulong,
590     pub s10: ::std::os::raw::c_ulong,
591     pub s11: ::std::os::raw::c_ulong,
592     pub t3: ::std::os::raw::c_ulong,
593     pub t4: ::std::os::raw::c_ulong,
594     pub t5: ::std::os::raw::c_ulong,
595     pub t6: ::std::os::raw::c_ulong,
596 }
597 #[repr(C)]
598 #[derive(Debug, Default, Copy, Clone)]
599 pub struct __riscv_f_ext_state {
600     pub f: [u32; 32usize],
601     pub fcsr: u32,
602 }
603 #[repr(C)]
604 #[derive(Debug, Default, Copy, Clone)]
605 pub struct __riscv_d_ext_state {
606     pub f: [u64; 32usize],
607     pub fcsr: u32,
608 }
609 #[repr(C)]
610 #[repr(align(16))]
611 #[derive(Debug, Copy, Clone)]
612 pub struct __riscv_q_ext_state {
613     pub f: [u64; 64usize],
614     pub fcsr: u32,
615     pub reserved: [u32; 3usize],
616 }
617 impl Default for __riscv_q_ext_state {
default() -> Self618     fn default() -> Self {
619         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
620         unsafe {
621             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
622             s.assume_init()
623         }
624     }
625 }
626 #[repr(C)]
627 #[derive(Debug, Default, Copy, Clone)]
628 pub struct __riscv_ctx_hdr {
629     pub magic: u32,
630     pub size: u32,
631 }
632 #[repr(C)]
633 #[repr(align(16))]
634 #[derive(Debug, Copy, Clone)]
635 pub struct __riscv_extra_ext_header {
636     pub __padding: [u32; 129usize],
637     pub reserved: u32,
638     pub hdr: __riscv_ctx_hdr,
639 }
640 impl Default for __riscv_extra_ext_header {
default() -> Self641     fn default() -> Self {
642         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
643         unsafe {
644             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
645             s.assume_init()
646         }
647     }
648 }
649 #[repr(C)]
650 #[repr(align(16))]
651 #[derive(Copy, Clone)]
652 pub union __riscv_fp_state {
653     pub f: __riscv_f_ext_state,
654     pub d: __riscv_d_ext_state,
655     pub q: __riscv_q_ext_state,
656 }
657 impl Default for __riscv_fp_state {
default() -> Self658     fn default() -> Self {
659         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
660         unsafe {
661             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
662             s.assume_init()
663         }
664     }
665 }
666 #[repr(C)]
667 #[derive(Debug, Copy, Clone)]
668 pub struct __riscv_v_ext_state {
669     pub vstart: ::std::os::raw::c_ulong,
670     pub vl: ::std::os::raw::c_ulong,
671     pub vtype: ::std::os::raw::c_ulong,
672     pub vcsr: ::std::os::raw::c_ulong,
673     pub vlenb: ::std::os::raw::c_ulong,
674     pub datap: *mut ::std::os::raw::c_void,
675 }
676 impl Default for __riscv_v_ext_state {
default() -> Self677     fn default() -> Self {
678         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
679         unsafe {
680             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
681             s.assume_init()
682         }
683     }
684 }
685 #[repr(C)]
686 #[derive(Debug, Default)]
687 pub struct __riscv_v_regset_state {
688     pub vstart: ::std::os::raw::c_ulong,
689     pub vl: ::std::os::raw::c_ulong,
690     pub vtype: ::std::os::raw::c_ulong,
691     pub vcsr: ::std::os::raw::c_ulong,
692     pub vlenb: ::std::os::raw::c_ulong,
693     pub vreg: __IncompleteArrayField<::std::os::raw::c_char>,
694 }
695 #[repr(C)]
696 #[derive(Debug, Default, Copy, Clone)]
697 pub struct kvm_regs {}
698 #[repr(C)]
699 #[derive(Debug, Default, Copy, Clone)]
700 pub struct kvm_fpu {}
701 #[repr(C)]
702 #[derive(Debug, Default, Copy, Clone)]
703 pub struct kvm_debug_exit_arch {}
704 #[repr(C)]
705 #[derive(Debug, Default, Copy, Clone)]
706 pub struct kvm_guest_debug_arch {}
707 #[repr(C)]
708 #[derive(Debug, Default, Copy, Clone)]
709 pub struct kvm_sync_regs {}
710 #[repr(C)]
711 #[derive(Debug, Default, Copy, Clone)]
712 pub struct kvm_sregs {}
713 #[repr(C)]
714 #[derive(Debug, Default, Copy, Clone)]
715 pub struct kvm_riscv_config {
716     pub isa: ::std::os::raw::c_ulong,
717     pub zicbom_block_size: ::std::os::raw::c_ulong,
718     pub mvendorid: ::std::os::raw::c_ulong,
719     pub marchid: ::std::os::raw::c_ulong,
720     pub mimpid: ::std::os::raw::c_ulong,
721     pub zicboz_block_size: ::std::os::raw::c_ulong,
722     pub satp_mode: ::std::os::raw::c_ulong,
723 }
724 #[repr(C)]
725 #[derive(Debug, Default, Copy, Clone)]
726 pub struct kvm_riscv_core {
727     pub regs: user_regs_struct,
728     pub mode: ::std::os::raw::c_ulong,
729 }
730 #[repr(C)]
731 #[derive(Debug, Default, Copy, Clone)]
732 pub struct kvm_riscv_csr {
733     pub sstatus: ::std::os::raw::c_ulong,
734     pub sie: ::std::os::raw::c_ulong,
735     pub stvec: ::std::os::raw::c_ulong,
736     pub sscratch: ::std::os::raw::c_ulong,
737     pub sepc: ::std::os::raw::c_ulong,
738     pub scause: ::std::os::raw::c_ulong,
739     pub stval: ::std::os::raw::c_ulong,
740     pub sip: ::std::os::raw::c_ulong,
741     pub satp: ::std::os::raw::c_ulong,
742     pub scounteren: ::std::os::raw::c_ulong,
743     pub senvcfg: ::std::os::raw::c_ulong,
744 }
745 #[repr(C)]
746 #[derive(Debug, Default, Copy, Clone)]
747 pub struct kvm_riscv_aia_csr {
748     pub siselect: ::std::os::raw::c_ulong,
749     pub iprio1: ::std::os::raw::c_ulong,
750     pub iprio2: ::std::os::raw::c_ulong,
751     pub sieh: ::std::os::raw::c_ulong,
752     pub siph: ::std::os::raw::c_ulong,
753     pub iprio1h: ::std::os::raw::c_ulong,
754     pub iprio2h: ::std::os::raw::c_ulong,
755 }
756 #[repr(C)]
757 #[derive(Debug, Default, Copy, Clone)]
758 pub struct kvm_riscv_smstateen_csr {
759     pub sstateen0: ::std::os::raw::c_ulong,
760 }
761 #[repr(C)]
762 #[derive(Debug, Default, Copy, Clone)]
763 pub struct kvm_riscv_timer {
764     pub frequency: u64,
765     pub time: u64,
766     pub compare: u64,
767     pub state: u64,
768 }
769 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_A: KVM_RISCV_ISA_EXT_ID = 0;
770 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_C: KVM_RISCV_ISA_EXT_ID = 1;
771 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_D: KVM_RISCV_ISA_EXT_ID = 2;
772 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_F: KVM_RISCV_ISA_EXT_ID = 3;
773 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_H: KVM_RISCV_ISA_EXT_ID = 4;
774 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_I: KVM_RISCV_ISA_EXT_ID = 5;
775 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_M: KVM_RISCV_ISA_EXT_ID = 6;
776 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_SVPBMT: KVM_RISCV_ISA_EXT_ID = 7;
777 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_SSTC: KVM_RISCV_ISA_EXT_ID = 8;
778 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_SVINVAL: KVM_RISCV_ISA_EXT_ID = 9;
779 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZIHINTPAUSE: KVM_RISCV_ISA_EXT_ID = 10;
780 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZICBOM: KVM_RISCV_ISA_EXT_ID = 11;
781 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZICBOZ: KVM_RISCV_ISA_EXT_ID = 12;
782 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZBB: KVM_RISCV_ISA_EXT_ID = 13;
783 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_SSAIA: KVM_RISCV_ISA_EXT_ID = 14;
784 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_V: KVM_RISCV_ISA_EXT_ID = 15;
785 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_SVNAPOT: KVM_RISCV_ISA_EXT_ID = 16;
786 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZBA: KVM_RISCV_ISA_EXT_ID = 17;
787 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZBS: KVM_RISCV_ISA_EXT_ID = 18;
788 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZICNTR: KVM_RISCV_ISA_EXT_ID = 19;
789 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZICSR: KVM_RISCV_ISA_EXT_ID = 20;
790 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZIFENCEI: KVM_RISCV_ISA_EXT_ID = 21;
791 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZIHPM: KVM_RISCV_ISA_EXT_ID = 22;
792 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_SMSTATEEN: KVM_RISCV_ISA_EXT_ID = 23;
793 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZICOND: KVM_RISCV_ISA_EXT_ID = 24;
794 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZBC: KVM_RISCV_ISA_EXT_ID = 25;
795 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZBKB: KVM_RISCV_ISA_EXT_ID = 26;
796 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZBKC: KVM_RISCV_ISA_EXT_ID = 27;
797 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZBKX: KVM_RISCV_ISA_EXT_ID = 28;
798 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZKND: KVM_RISCV_ISA_EXT_ID = 29;
799 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZKNE: KVM_RISCV_ISA_EXT_ID = 30;
800 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZKNH: KVM_RISCV_ISA_EXT_ID = 31;
801 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZKR: KVM_RISCV_ISA_EXT_ID = 32;
802 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZKSED: KVM_RISCV_ISA_EXT_ID = 33;
803 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZKSH: KVM_RISCV_ISA_EXT_ID = 34;
804 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZKT: KVM_RISCV_ISA_EXT_ID = 35;
805 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZVBB: KVM_RISCV_ISA_EXT_ID = 36;
806 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZVBC: KVM_RISCV_ISA_EXT_ID = 37;
807 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZVKB: KVM_RISCV_ISA_EXT_ID = 38;
808 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZVKG: KVM_RISCV_ISA_EXT_ID = 39;
809 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZVKNED: KVM_RISCV_ISA_EXT_ID = 40;
810 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZVKNHA: KVM_RISCV_ISA_EXT_ID = 41;
811 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZVKNHB: KVM_RISCV_ISA_EXT_ID = 42;
812 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZVKSED: KVM_RISCV_ISA_EXT_ID = 43;
813 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZVKSH: KVM_RISCV_ISA_EXT_ID = 44;
814 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZVKT: KVM_RISCV_ISA_EXT_ID = 45;
815 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZFH: KVM_RISCV_ISA_EXT_ID = 46;
816 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZFHMIN: KVM_RISCV_ISA_EXT_ID = 47;
817 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZIHINTNTL: KVM_RISCV_ISA_EXT_ID = 48;
818 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZVFH: KVM_RISCV_ISA_EXT_ID = 49;
819 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZVFHMIN: KVM_RISCV_ISA_EXT_ID = 50;
820 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZFA: KVM_RISCV_ISA_EXT_ID = 51;
821 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZTSO: KVM_RISCV_ISA_EXT_ID = 52;
822 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZACAS: KVM_RISCV_ISA_EXT_ID = 53;
823 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_SSCOFPMF: KVM_RISCV_ISA_EXT_ID = 54;
824 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZIMOP: KVM_RISCV_ISA_EXT_ID = 55;
825 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZCA: KVM_RISCV_ISA_EXT_ID = 56;
826 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZCB: KVM_RISCV_ISA_EXT_ID = 57;
827 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZCD: KVM_RISCV_ISA_EXT_ID = 58;
828 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZCF: KVM_RISCV_ISA_EXT_ID = 59;
829 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZCMOP: KVM_RISCV_ISA_EXT_ID = 60;
830 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZAWRS: KVM_RISCV_ISA_EXT_ID = 61;
831 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_MAX: KVM_RISCV_ISA_EXT_ID = 62;
832 pub type KVM_RISCV_ISA_EXT_ID = ::std::os::raw::c_uint;
833 pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_V01: KVM_RISCV_SBI_EXT_ID = 0;
834 pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_TIME: KVM_RISCV_SBI_EXT_ID = 1;
835 pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_IPI: KVM_RISCV_SBI_EXT_ID = 2;
836 pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_RFENCE: KVM_RISCV_SBI_EXT_ID = 3;
837 pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_SRST: KVM_RISCV_SBI_EXT_ID = 4;
838 pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_HSM: KVM_RISCV_SBI_EXT_ID = 5;
839 pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_PMU: KVM_RISCV_SBI_EXT_ID = 6;
840 pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_EXPERIMENTAL: KVM_RISCV_SBI_EXT_ID = 7;
841 pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_VENDOR: KVM_RISCV_SBI_EXT_ID = 8;
842 pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_DBCN: KVM_RISCV_SBI_EXT_ID = 9;
843 pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_STA: KVM_RISCV_SBI_EXT_ID = 10;
844 pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_MAX: KVM_RISCV_SBI_EXT_ID = 11;
845 pub type KVM_RISCV_SBI_EXT_ID = ::std::os::raw::c_uint;
846 #[repr(C)]
847 #[derive(Debug, Default, Copy, Clone)]
848 pub struct kvm_riscv_sbi_sta {
849     pub shmem_lo: ::std::os::raw::c_ulong,
850     pub shmem_hi: ::std::os::raw::c_ulong,
851 }
852 #[repr(C)]
853 #[derive(Debug, Default, Copy, Clone)]
854 pub struct kvm_userspace_memory_region {
855     pub slot: u32,
856     pub flags: u32,
857     pub guest_phys_addr: u64,
858     pub memory_size: u64,
859     pub userspace_addr: u64,
860 }
861 #[repr(C)]
862 #[derive(Debug, Default, Copy, Clone)]
863 pub struct kvm_userspace_memory_region2 {
864     pub slot: u32,
865     pub flags: u32,
866     pub guest_phys_addr: u64,
867     pub memory_size: u64,
868     pub userspace_addr: u64,
869     pub guest_memfd_offset: u64,
870     pub guest_memfd: u32,
871     pub pad1: u32,
872     pub pad2: [u64; 14usize],
873 }
874 #[repr(C)]
875 #[derive(Copy, Clone)]
876 pub struct kvm_irq_level {
877     pub __bindgen_anon_1: kvm_irq_level__bindgen_ty_1,
878     pub level: u32,
879 }
880 #[repr(C)]
881 #[derive(Copy, Clone)]
882 pub union kvm_irq_level__bindgen_ty_1 {
883     pub irq: u32,
884     pub status: i32,
885 }
886 impl Default for kvm_irq_level__bindgen_ty_1 {
default() -> Self887     fn default() -> Self {
888         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
889         unsafe {
890             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
891             s.assume_init()
892         }
893     }
894 }
895 impl Default for kvm_irq_level {
default() -> Self896     fn default() -> Self {
897         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
898         unsafe {
899             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
900             s.assume_init()
901         }
902     }
903 }
904 #[repr(C)]
905 #[derive(Copy, Clone)]
906 pub struct kvm_irqchip {
907     pub chip_id: u32,
908     pub pad: u32,
909     pub chip: kvm_irqchip__bindgen_ty_1,
910 }
911 #[repr(C)]
912 #[derive(Copy, Clone)]
913 pub union kvm_irqchip__bindgen_ty_1 {
914     pub dummy: [::std::os::raw::c_char; 512usize],
915 }
916 impl Default for kvm_irqchip__bindgen_ty_1 {
default() -> Self917     fn default() -> Self {
918         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
919         unsafe {
920             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
921             s.assume_init()
922         }
923     }
924 }
925 impl Default for kvm_irqchip {
default() -> Self926     fn default() -> Self {
927         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
928         unsafe {
929             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
930             s.assume_init()
931         }
932     }
933 }
934 #[repr(C)]
935 #[derive(Debug, Default, Copy, Clone)]
936 pub struct kvm_pit_config {
937     pub flags: u32,
938     pub pad: [u32; 15usize],
939 }
940 #[repr(C)]
941 #[derive(Copy, Clone)]
942 pub struct kvm_hyperv_exit {
943     pub type_: u32,
944     pub pad1: u32,
945     pub u: kvm_hyperv_exit__bindgen_ty_1,
946 }
947 #[repr(C)]
948 #[derive(Copy, Clone)]
949 pub union kvm_hyperv_exit__bindgen_ty_1 {
950     pub synic: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1,
951     pub hcall: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_2,
952     pub syndbg: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3,
953 }
954 #[repr(C)]
955 #[derive(Debug, Default, Copy, Clone)]
956 pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1 {
957     pub msr: u32,
958     pub pad2: u32,
959     pub control: u64,
960     pub evt_page: u64,
961     pub msg_page: u64,
962 }
963 #[repr(C)]
964 #[derive(Debug, Default, Copy, Clone)]
965 pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_2 {
966     pub input: u64,
967     pub result: u64,
968     pub params: [u64; 2usize],
969 }
970 #[repr(C)]
971 #[derive(Debug, Default, Copy, Clone)]
972 pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3 {
973     pub msr: u32,
974     pub pad2: u32,
975     pub control: u64,
976     pub status: u64,
977     pub send_page: u64,
978     pub recv_page: u64,
979     pub pending_page: u64,
980 }
981 impl Default for kvm_hyperv_exit__bindgen_ty_1 {
default() -> Self982     fn default() -> Self {
983         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
984         unsafe {
985             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
986             s.assume_init()
987         }
988     }
989 }
990 impl Default for kvm_hyperv_exit {
default() -> Self991     fn default() -> Self {
992         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
993         unsafe {
994             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
995             s.assume_init()
996         }
997     }
998 }
999 #[repr(C)]
1000 #[derive(Copy, Clone)]
1001 pub struct kvm_xen_exit {
1002     pub type_: u32,
1003     pub u: kvm_xen_exit__bindgen_ty_1,
1004 }
1005 #[repr(C)]
1006 #[derive(Copy, Clone)]
1007 pub union kvm_xen_exit__bindgen_ty_1 {
1008     pub hcall: kvm_xen_exit__bindgen_ty_1__bindgen_ty_1,
1009 }
1010 #[repr(C)]
1011 #[derive(Debug, Default, Copy, Clone)]
1012 pub struct kvm_xen_exit__bindgen_ty_1__bindgen_ty_1 {
1013     pub longmode: u32,
1014     pub cpl: u32,
1015     pub input: u64,
1016     pub result: u64,
1017     pub params: [u64; 6usize],
1018 }
1019 impl Default for kvm_xen_exit__bindgen_ty_1 {
default() -> Self1020     fn default() -> Self {
1021         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1022         unsafe {
1023             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1024             s.assume_init()
1025         }
1026     }
1027 }
1028 impl Default for kvm_xen_exit {
default() -> Self1029     fn default() -> Self {
1030         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1031         unsafe {
1032             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1033             s.assume_init()
1034         }
1035     }
1036 }
1037 #[repr(C)]
1038 #[derive(Copy, Clone)]
1039 pub struct kvm_run {
1040     pub request_interrupt_window: u8,
1041     pub immediate_exit: u8,
1042     pub padding1: [u8; 6usize],
1043     pub exit_reason: u32,
1044     pub ready_for_interrupt_injection: u8,
1045     pub if_flag: u8,
1046     pub flags: u16,
1047     pub cr8: u64,
1048     pub apic_base: u64,
1049     pub __bindgen_anon_1: kvm_run__bindgen_ty_1,
1050     pub kvm_valid_regs: u64,
1051     pub kvm_dirty_regs: u64,
1052     pub s: kvm_run__bindgen_ty_2,
1053 }
1054 #[repr(C)]
1055 #[derive(Copy, Clone)]
1056 pub union kvm_run__bindgen_ty_1 {
1057     pub hw: kvm_run__bindgen_ty_1__bindgen_ty_1,
1058     pub fail_entry: kvm_run__bindgen_ty_1__bindgen_ty_2,
1059     pub ex: kvm_run__bindgen_ty_1__bindgen_ty_3,
1060     pub io: kvm_run__bindgen_ty_1__bindgen_ty_4,
1061     pub debug: kvm_run__bindgen_ty_1__bindgen_ty_5,
1062     pub mmio: kvm_run__bindgen_ty_1__bindgen_ty_6,
1063     pub iocsr_io: kvm_run__bindgen_ty_1__bindgen_ty_7,
1064     pub hypercall: kvm_run__bindgen_ty_1__bindgen_ty_8,
1065     pub tpr_access: kvm_run__bindgen_ty_1__bindgen_ty_9,
1066     pub s390_sieic: kvm_run__bindgen_ty_1__bindgen_ty_10,
1067     pub s390_reset_flags: u64,
1068     pub s390_ucontrol: kvm_run__bindgen_ty_1__bindgen_ty_11,
1069     pub dcr: kvm_run__bindgen_ty_1__bindgen_ty_12,
1070     pub internal: kvm_run__bindgen_ty_1__bindgen_ty_13,
1071     pub emulation_failure: kvm_run__bindgen_ty_1__bindgen_ty_14,
1072     pub osi: kvm_run__bindgen_ty_1__bindgen_ty_15,
1073     pub papr_hcall: kvm_run__bindgen_ty_1__bindgen_ty_16,
1074     pub s390_tsch: kvm_run__bindgen_ty_1__bindgen_ty_17,
1075     pub epr: kvm_run__bindgen_ty_1__bindgen_ty_18,
1076     pub system_event: kvm_run__bindgen_ty_1__bindgen_ty_19,
1077     pub s390_stsi: kvm_run__bindgen_ty_1__bindgen_ty_20,
1078     pub eoi: kvm_run__bindgen_ty_1__bindgen_ty_21,
1079     pub hyperv: kvm_hyperv_exit,
1080     pub arm_nisv: kvm_run__bindgen_ty_1__bindgen_ty_22,
1081     pub msr: kvm_run__bindgen_ty_1__bindgen_ty_23,
1082     pub xen: kvm_xen_exit,
1083     pub riscv_sbi: kvm_run__bindgen_ty_1__bindgen_ty_24,
1084     pub riscv_csr: kvm_run__bindgen_ty_1__bindgen_ty_25,
1085     pub notify: kvm_run__bindgen_ty_1__bindgen_ty_26,
1086     pub memory_fault: kvm_run__bindgen_ty_1__bindgen_ty_27,
1087     pub padding: [::std::os::raw::c_char; 256usize],
1088 }
1089 #[repr(C)]
1090 #[derive(Debug, Default, Copy, Clone)]
1091 pub struct kvm_run__bindgen_ty_1__bindgen_ty_1 {
1092     pub hardware_exit_reason: u64,
1093 }
1094 #[repr(C)]
1095 #[derive(Debug, Default, Copy, Clone)]
1096 pub struct kvm_run__bindgen_ty_1__bindgen_ty_2 {
1097     pub hardware_entry_failure_reason: u64,
1098     pub cpu: u32,
1099 }
1100 #[repr(C)]
1101 #[derive(Debug, Default, Copy, Clone)]
1102 pub struct kvm_run__bindgen_ty_1__bindgen_ty_3 {
1103     pub exception: u32,
1104     pub error_code: u32,
1105 }
1106 #[repr(C)]
1107 #[derive(Debug, Default, Copy, Clone)]
1108 pub struct kvm_run__bindgen_ty_1__bindgen_ty_4 {
1109     pub direction: u8,
1110     pub size: u8,
1111     pub port: u16,
1112     pub count: u32,
1113     pub data_offset: u64,
1114 }
1115 #[repr(C)]
1116 #[derive(Debug, Default, Copy, Clone)]
1117 pub struct kvm_run__bindgen_ty_1__bindgen_ty_5 {
1118     pub arch: kvm_debug_exit_arch,
1119 }
1120 #[repr(C)]
1121 #[derive(Debug, Default, Copy, Clone)]
1122 pub struct kvm_run__bindgen_ty_1__bindgen_ty_6 {
1123     pub phys_addr: u64,
1124     pub data: [u8; 8usize],
1125     pub len: u32,
1126     pub is_write: u8,
1127 }
1128 #[repr(C)]
1129 #[derive(Debug, Default, Copy, Clone)]
1130 pub struct kvm_run__bindgen_ty_1__bindgen_ty_7 {
1131     pub phys_addr: u64,
1132     pub data: [u8; 8usize],
1133     pub len: u32,
1134     pub is_write: u8,
1135 }
1136 #[repr(C)]
1137 #[derive(Copy, Clone)]
1138 pub struct kvm_run__bindgen_ty_1__bindgen_ty_8 {
1139     pub nr: u64,
1140     pub args: [u64; 6usize],
1141     pub ret: u64,
1142     pub __bindgen_anon_1: kvm_run__bindgen_ty_1__bindgen_ty_8__bindgen_ty_1,
1143 }
1144 #[repr(C)]
1145 #[derive(Copy, Clone)]
1146 pub union kvm_run__bindgen_ty_1__bindgen_ty_8__bindgen_ty_1 {
1147     pub longmode: u32,
1148     pub flags: u64,
1149 }
1150 impl Default for kvm_run__bindgen_ty_1__bindgen_ty_8__bindgen_ty_1 {
default() -> Self1151     fn default() -> Self {
1152         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1153         unsafe {
1154             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1155             s.assume_init()
1156         }
1157     }
1158 }
1159 impl Default for kvm_run__bindgen_ty_1__bindgen_ty_8 {
default() -> Self1160     fn default() -> Self {
1161         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1162         unsafe {
1163             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1164             s.assume_init()
1165         }
1166     }
1167 }
1168 #[repr(C)]
1169 #[derive(Debug, Default, Copy, Clone)]
1170 pub struct kvm_run__bindgen_ty_1__bindgen_ty_9 {
1171     pub rip: u64,
1172     pub is_write: u32,
1173     pub pad: u32,
1174 }
1175 #[repr(C)]
1176 #[derive(Debug, Default, Copy, Clone)]
1177 pub struct kvm_run__bindgen_ty_1__bindgen_ty_10 {
1178     pub icptcode: u8,
1179     pub ipa: u16,
1180     pub ipb: u32,
1181 }
1182 #[repr(C)]
1183 #[derive(Debug, Default, Copy, Clone)]
1184 pub struct kvm_run__bindgen_ty_1__bindgen_ty_11 {
1185     pub trans_exc_code: u64,
1186     pub pgm_code: u32,
1187 }
1188 #[repr(C)]
1189 #[derive(Debug, Default, Copy, Clone)]
1190 pub struct kvm_run__bindgen_ty_1__bindgen_ty_12 {
1191     pub dcrn: u32,
1192     pub data: u32,
1193     pub is_write: u8,
1194 }
1195 #[repr(C)]
1196 #[derive(Debug, Default, Copy, Clone)]
1197 pub struct kvm_run__bindgen_ty_1__bindgen_ty_13 {
1198     pub suberror: u32,
1199     pub ndata: u32,
1200     pub data: [u64; 16usize],
1201 }
1202 #[repr(C)]
1203 #[derive(Copy, Clone)]
1204 pub struct kvm_run__bindgen_ty_1__bindgen_ty_14 {
1205     pub suberror: u32,
1206     pub ndata: u32,
1207     pub flags: u64,
1208     pub __bindgen_anon_1: kvm_run__bindgen_ty_1__bindgen_ty_14__bindgen_ty_1,
1209 }
1210 #[repr(C)]
1211 #[derive(Copy, Clone)]
1212 pub union kvm_run__bindgen_ty_1__bindgen_ty_14__bindgen_ty_1 {
1213     pub __bindgen_anon_1: kvm_run__bindgen_ty_1__bindgen_ty_14__bindgen_ty_1__bindgen_ty_1,
1214 }
1215 #[repr(C)]
1216 #[derive(Debug, Default, Copy, Clone)]
1217 pub struct kvm_run__bindgen_ty_1__bindgen_ty_14__bindgen_ty_1__bindgen_ty_1 {
1218     pub insn_size: u8,
1219     pub insn_bytes: [u8; 15usize],
1220 }
1221 impl Default for kvm_run__bindgen_ty_1__bindgen_ty_14__bindgen_ty_1 {
default() -> Self1222     fn default() -> Self {
1223         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1224         unsafe {
1225             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1226             s.assume_init()
1227         }
1228     }
1229 }
1230 impl Default for kvm_run__bindgen_ty_1__bindgen_ty_14 {
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 #[repr(C)]
1240 #[derive(Debug, Default, Copy, Clone)]
1241 pub struct kvm_run__bindgen_ty_1__bindgen_ty_15 {
1242     pub gprs: [u64; 32usize],
1243 }
1244 #[repr(C)]
1245 #[derive(Debug, Default, Copy, Clone)]
1246 pub struct kvm_run__bindgen_ty_1__bindgen_ty_16 {
1247     pub nr: u64,
1248     pub ret: u64,
1249     pub args: [u64; 9usize],
1250 }
1251 #[repr(C)]
1252 #[derive(Debug, Default, Copy, Clone)]
1253 pub struct kvm_run__bindgen_ty_1__bindgen_ty_17 {
1254     pub subchannel_id: u16,
1255     pub subchannel_nr: u16,
1256     pub io_int_parm: u32,
1257     pub io_int_word: u32,
1258     pub ipb: u32,
1259     pub dequeued: u8,
1260 }
1261 #[repr(C)]
1262 #[derive(Debug, Default, Copy, Clone)]
1263 pub struct kvm_run__bindgen_ty_1__bindgen_ty_18 {
1264     pub epr: u32,
1265 }
1266 #[repr(C)]
1267 #[derive(Copy, Clone)]
1268 pub struct kvm_run__bindgen_ty_1__bindgen_ty_19 {
1269     pub type_: u32,
1270     pub ndata: u32,
1271     pub __bindgen_anon_1: kvm_run__bindgen_ty_1__bindgen_ty_19__bindgen_ty_1,
1272 }
1273 #[repr(C)]
1274 #[derive(Copy, Clone)]
1275 pub union kvm_run__bindgen_ty_1__bindgen_ty_19__bindgen_ty_1 {
1276     pub flags: u64,
1277     pub data: [u64; 16usize],
1278 }
1279 impl Default for kvm_run__bindgen_ty_1__bindgen_ty_19__bindgen_ty_1 {
default() -> Self1280     fn default() -> Self {
1281         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1282         unsafe {
1283             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1284             s.assume_init()
1285         }
1286     }
1287 }
1288 impl Default for kvm_run__bindgen_ty_1__bindgen_ty_19 {
default() -> Self1289     fn default() -> Self {
1290         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1291         unsafe {
1292             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1293             s.assume_init()
1294         }
1295     }
1296 }
1297 #[repr(C)]
1298 #[derive(Debug, Default, Copy, Clone)]
1299 pub struct kvm_run__bindgen_ty_1__bindgen_ty_20 {
1300     pub addr: u64,
1301     pub ar: u8,
1302     pub reserved: u8,
1303     pub fc: u8,
1304     pub sel1: u8,
1305     pub sel2: u16,
1306 }
1307 #[repr(C)]
1308 #[derive(Debug, Default, Copy, Clone)]
1309 pub struct kvm_run__bindgen_ty_1__bindgen_ty_21 {
1310     pub vector: u8,
1311 }
1312 #[repr(C)]
1313 #[derive(Debug, Default, Copy, Clone)]
1314 pub struct kvm_run__bindgen_ty_1__bindgen_ty_22 {
1315     pub esr_iss: u64,
1316     pub fault_ipa: u64,
1317 }
1318 #[repr(C)]
1319 #[derive(Debug, Default, Copy, Clone)]
1320 pub struct kvm_run__bindgen_ty_1__bindgen_ty_23 {
1321     pub error: u8,
1322     pub pad: [u8; 7usize],
1323     pub reason: u32,
1324     pub index: u32,
1325     pub data: u64,
1326 }
1327 #[repr(C)]
1328 #[derive(Debug, Default, Copy, Clone)]
1329 pub struct kvm_run__bindgen_ty_1__bindgen_ty_24 {
1330     pub extension_id: ::std::os::raw::c_ulong,
1331     pub function_id: ::std::os::raw::c_ulong,
1332     pub args: [::std::os::raw::c_ulong; 6usize],
1333     pub ret: [::std::os::raw::c_ulong; 2usize],
1334 }
1335 #[repr(C)]
1336 #[derive(Debug, Default, Copy, Clone)]
1337 pub struct kvm_run__bindgen_ty_1__bindgen_ty_25 {
1338     pub csr_num: ::std::os::raw::c_ulong,
1339     pub new_value: ::std::os::raw::c_ulong,
1340     pub write_mask: ::std::os::raw::c_ulong,
1341     pub ret_value: ::std::os::raw::c_ulong,
1342 }
1343 #[repr(C)]
1344 #[derive(Debug, Default, Copy, Clone)]
1345 pub struct kvm_run__bindgen_ty_1__bindgen_ty_26 {
1346     pub flags: u32,
1347 }
1348 #[repr(C)]
1349 #[derive(Debug, Default, Copy, Clone)]
1350 pub struct kvm_run__bindgen_ty_1__bindgen_ty_27 {
1351     pub flags: u64,
1352     pub gpa: u64,
1353     pub size: u64,
1354 }
1355 impl Default for kvm_run__bindgen_ty_1 {
default() -> Self1356     fn default() -> Self {
1357         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1358         unsafe {
1359             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1360             s.assume_init()
1361         }
1362     }
1363 }
1364 #[repr(C)]
1365 #[derive(Copy, Clone)]
1366 pub union kvm_run__bindgen_ty_2 {
1367     pub regs: kvm_sync_regs,
1368     pub padding: [::std::os::raw::c_char; 2048usize],
1369 }
1370 impl Default for kvm_run__bindgen_ty_2 {
default() -> Self1371     fn default() -> Self {
1372         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1373         unsafe {
1374             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1375             s.assume_init()
1376         }
1377     }
1378 }
1379 impl Default for kvm_run {
default() -> Self1380     fn default() -> Self {
1381         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1382         unsafe {
1383             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1384             s.assume_init()
1385         }
1386     }
1387 }
1388 #[repr(C)]
1389 #[derive(Copy, Clone)]
1390 pub struct kvm_coalesced_mmio_zone {
1391     pub addr: u64,
1392     pub size: u32,
1393     pub __bindgen_anon_1: kvm_coalesced_mmio_zone__bindgen_ty_1,
1394 }
1395 #[repr(C)]
1396 #[derive(Copy, Clone)]
1397 pub union kvm_coalesced_mmio_zone__bindgen_ty_1 {
1398     pub pad: u32,
1399     pub pio: u32,
1400 }
1401 impl Default for kvm_coalesced_mmio_zone__bindgen_ty_1 {
default() -> Self1402     fn default() -> Self {
1403         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1404         unsafe {
1405             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1406             s.assume_init()
1407         }
1408     }
1409 }
1410 impl Default for kvm_coalesced_mmio_zone {
default() -> Self1411     fn default() -> Self {
1412         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1413         unsafe {
1414             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1415             s.assume_init()
1416         }
1417     }
1418 }
1419 #[repr(C)]
1420 #[derive(Copy, Clone)]
1421 pub struct kvm_coalesced_mmio {
1422     pub phys_addr: u64,
1423     pub len: u32,
1424     pub __bindgen_anon_1: kvm_coalesced_mmio__bindgen_ty_1,
1425     pub data: [u8; 8usize],
1426 }
1427 #[repr(C)]
1428 #[derive(Copy, Clone)]
1429 pub union kvm_coalesced_mmio__bindgen_ty_1 {
1430     pub pad: u32,
1431     pub pio: u32,
1432 }
1433 impl Default for kvm_coalesced_mmio__bindgen_ty_1 {
default() -> Self1434     fn default() -> Self {
1435         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1436         unsafe {
1437             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1438             s.assume_init()
1439         }
1440     }
1441 }
1442 impl Default for kvm_coalesced_mmio {
default() -> Self1443     fn default() -> Self {
1444         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1445         unsafe {
1446             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1447             s.assume_init()
1448         }
1449     }
1450 }
1451 #[repr(C)]
1452 pub struct kvm_coalesced_mmio_ring {
1453     pub first: u32,
1454     pub last: u32,
1455     pub coalesced_mmio: __IncompleteArrayField<kvm_coalesced_mmio>,
1456 }
1457 impl Default for kvm_coalesced_mmio_ring {
default() -> Self1458     fn default() -> Self {
1459         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1460         unsafe {
1461             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1462             s.assume_init()
1463         }
1464     }
1465 }
1466 #[repr(C)]
1467 #[derive(Debug, Default, Copy, Clone)]
1468 pub struct kvm_translation {
1469     pub linear_address: u64,
1470     pub physical_address: u64,
1471     pub valid: u8,
1472     pub writeable: u8,
1473     pub usermode: u8,
1474     pub pad: [u8; 5usize],
1475 }
1476 #[repr(C)]
1477 #[derive(Debug, Default, Copy, Clone)]
1478 pub struct kvm_interrupt {
1479     pub irq: u32,
1480 }
1481 #[repr(C)]
1482 #[derive(Copy, Clone)]
1483 pub struct kvm_dirty_log {
1484     pub slot: u32,
1485     pub padding1: u32,
1486     pub __bindgen_anon_1: kvm_dirty_log__bindgen_ty_1,
1487 }
1488 #[repr(C)]
1489 #[derive(Copy, Clone)]
1490 pub union kvm_dirty_log__bindgen_ty_1 {
1491     pub dirty_bitmap: *mut ::std::os::raw::c_void,
1492     pub padding2: u64,
1493 }
1494 impl Default for kvm_dirty_log__bindgen_ty_1 {
default() -> Self1495     fn default() -> Self {
1496         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1497         unsafe {
1498             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1499             s.assume_init()
1500         }
1501     }
1502 }
1503 impl Default for kvm_dirty_log {
default() -> Self1504     fn default() -> Self {
1505         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1506         unsafe {
1507             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1508             s.assume_init()
1509         }
1510     }
1511 }
1512 #[repr(C)]
1513 #[derive(Copy, Clone)]
1514 pub struct kvm_clear_dirty_log {
1515     pub slot: u32,
1516     pub num_pages: u32,
1517     pub first_page: u64,
1518     pub __bindgen_anon_1: kvm_clear_dirty_log__bindgen_ty_1,
1519 }
1520 #[repr(C)]
1521 #[derive(Copy, Clone)]
1522 pub union kvm_clear_dirty_log__bindgen_ty_1 {
1523     pub dirty_bitmap: *mut ::std::os::raw::c_void,
1524     pub padding2: u64,
1525 }
1526 impl Default for kvm_clear_dirty_log__bindgen_ty_1 {
default() -> Self1527     fn default() -> Self {
1528         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1529         unsafe {
1530             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1531             s.assume_init()
1532         }
1533     }
1534 }
1535 impl Default for kvm_clear_dirty_log {
default() -> Self1536     fn default() -> Self {
1537         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1538         unsafe {
1539             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1540             s.assume_init()
1541         }
1542     }
1543 }
1544 #[repr(C)]
1545 #[derive(Debug, Default)]
1546 pub struct kvm_signal_mask {
1547     pub len: u32,
1548     pub sigset: __IncompleteArrayField<u8>,
1549 }
1550 #[repr(C)]
1551 #[derive(Debug, Default, Copy, Clone)]
1552 pub struct kvm_tpr_access_ctl {
1553     pub enabled: u32,
1554     pub flags: u32,
1555     pub reserved: [u32; 8usize],
1556 }
1557 #[repr(C)]
1558 #[derive(Debug, Default, Copy, Clone)]
1559 pub struct kvm_vapic_addr {
1560     pub vapic_addr: u64,
1561 }
1562 #[repr(C)]
1563 #[derive(Debug, Default, Copy, Clone)]
1564 pub struct kvm_mp_state {
1565     pub mp_state: u32,
1566 }
1567 #[repr(C)]
1568 #[derive(Debug, Default, Copy, Clone)]
1569 pub struct kvm_guest_debug {
1570     pub control: u32,
1571     pub pad: u32,
1572     pub arch: kvm_guest_debug_arch,
1573 }
1574 pub const kvm_ioeventfd_flag_nr_datamatch: _bindgen_ty_1 = 0;
1575 pub const kvm_ioeventfd_flag_nr_pio: _bindgen_ty_1 = 1;
1576 pub const kvm_ioeventfd_flag_nr_deassign: _bindgen_ty_1 = 2;
1577 pub const kvm_ioeventfd_flag_nr_virtio_ccw_notify: _bindgen_ty_1 = 3;
1578 pub const kvm_ioeventfd_flag_nr_fast_mmio: _bindgen_ty_1 = 4;
1579 pub const kvm_ioeventfd_flag_nr_max: _bindgen_ty_1 = 5;
1580 pub type _bindgen_ty_1 = ::std::os::raw::c_uint;
1581 #[repr(C)]
1582 #[derive(Debug, Copy, Clone)]
1583 pub struct kvm_ioeventfd {
1584     pub datamatch: u64,
1585     pub addr: u64,
1586     pub len: u32,
1587     pub fd: i32,
1588     pub flags: u32,
1589     pub pad: [u8; 36usize],
1590 }
1591 impl Default for kvm_ioeventfd {
default() -> Self1592     fn default() -> Self {
1593         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1594         unsafe {
1595             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1596             s.assume_init()
1597         }
1598     }
1599 }
1600 #[repr(C)]
1601 #[derive(Debug, Copy, Clone)]
1602 pub struct kvm_enable_cap {
1603     pub cap: u32,
1604     pub flags: u32,
1605     pub args: [u64; 4usize],
1606     pub pad: [u8; 64usize],
1607 }
1608 impl Default for kvm_enable_cap {
default() -> Self1609     fn default() -> Self {
1610         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1611         unsafe {
1612             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1613             s.assume_init()
1614         }
1615     }
1616 }
1617 #[repr(C)]
1618 #[derive(Debug, Default, Copy, Clone)]
1619 pub struct kvm_irq_routing_irqchip {
1620     pub irqchip: u32,
1621     pub pin: u32,
1622 }
1623 #[repr(C)]
1624 #[derive(Copy, Clone)]
1625 pub struct kvm_irq_routing_msi {
1626     pub address_lo: u32,
1627     pub address_hi: u32,
1628     pub data: u32,
1629     pub __bindgen_anon_1: kvm_irq_routing_msi__bindgen_ty_1,
1630 }
1631 #[repr(C)]
1632 #[derive(Copy, Clone)]
1633 pub union kvm_irq_routing_msi__bindgen_ty_1 {
1634     pub pad: u32,
1635     pub devid: u32,
1636 }
1637 impl Default for kvm_irq_routing_msi__bindgen_ty_1 {
default() -> Self1638     fn default() -> Self {
1639         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1640         unsafe {
1641             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1642             s.assume_init()
1643         }
1644     }
1645 }
1646 impl Default for kvm_irq_routing_msi {
default() -> Self1647     fn default() -> Self {
1648         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1649         unsafe {
1650             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1651             s.assume_init()
1652         }
1653     }
1654 }
1655 #[repr(C)]
1656 #[derive(Debug, Default, Copy, Clone)]
1657 pub struct kvm_irq_routing_s390_adapter {
1658     pub ind_addr: u64,
1659     pub summary_addr: u64,
1660     pub ind_offset: u64,
1661     pub summary_offset: u32,
1662     pub adapter_id: u32,
1663 }
1664 #[repr(C)]
1665 #[derive(Debug, Default, Copy, Clone)]
1666 pub struct kvm_irq_routing_hv_sint {
1667     pub vcpu: u32,
1668     pub sint: u32,
1669 }
1670 #[repr(C)]
1671 #[derive(Debug, Default, Copy, Clone)]
1672 pub struct kvm_irq_routing_xen_evtchn {
1673     pub port: u32,
1674     pub vcpu: u32,
1675     pub priority: u32,
1676 }
1677 #[repr(C)]
1678 #[derive(Copy, Clone)]
1679 pub struct kvm_irq_routing_entry {
1680     pub gsi: u32,
1681     pub type_: u32,
1682     pub flags: u32,
1683     pub pad: u32,
1684     pub u: kvm_irq_routing_entry__bindgen_ty_1,
1685 }
1686 #[repr(C)]
1687 #[derive(Copy, Clone)]
1688 pub union kvm_irq_routing_entry__bindgen_ty_1 {
1689     pub irqchip: kvm_irq_routing_irqchip,
1690     pub msi: kvm_irq_routing_msi,
1691     pub adapter: kvm_irq_routing_s390_adapter,
1692     pub hv_sint: kvm_irq_routing_hv_sint,
1693     pub xen_evtchn: kvm_irq_routing_xen_evtchn,
1694     pub pad: [u32; 8usize],
1695 }
1696 impl Default for kvm_irq_routing_entry__bindgen_ty_1 {
default() -> Self1697     fn default() -> Self {
1698         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1699         unsafe {
1700             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1701             s.assume_init()
1702         }
1703     }
1704 }
1705 impl Default for kvm_irq_routing_entry {
default() -> Self1706     fn default() -> Self {
1707         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1708         unsafe {
1709             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1710             s.assume_init()
1711         }
1712     }
1713 }
1714 #[repr(C)]
1715 pub struct kvm_irq_routing {
1716     pub nr: u32,
1717     pub flags: u32,
1718     pub entries: __IncompleteArrayField<kvm_irq_routing_entry>,
1719 }
1720 impl Default for kvm_irq_routing {
default() -> Self1721     fn default() -> Self {
1722         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1723         unsafe {
1724             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1725             s.assume_init()
1726         }
1727     }
1728 }
1729 #[repr(C)]
1730 #[derive(Debug, Default, Copy, Clone)]
1731 pub struct kvm_irqfd {
1732     pub fd: u32,
1733     pub gsi: u32,
1734     pub flags: u32,
1735     pub resamplefd: u32,
1736     pub pad: [u8; 16usize],
1737 }
1738 #[repr(C)]
1739 #[derive(Debug, Default, Copy, Clone)]
1740 pub struct kvm_clock_data {
1741     pub clock: u64,
1742     pub flags: u32,
1743     pub pad0: u32,
1744     pub realtime: u64,
1745     pub host_tsc: u64,
1746     pub pad: [u32; 4usize],
1747 }
1748 #[repr(C)]
1749 #[derive(Debug, Default, Copy, Clone)]
1750 pub struct kvm_config_tlb {
1751     pub params: u64,
1752     pub array: u64,
1753     pub mmu_type: u32,
1754     pub array_len: u32,
1755 }
1756 #[repr(C)]
1757 #[derive(Debug, Default, Copy, Clone)]
1758 pub struct kvm_dirty_tlb {
1759     pub bitmap: u64,
1760     pub num_dirty: u32,
1761 }
1762 #[repr(C)]
1763 #[derive(Debug, Default)]
1764 pub struct kvm_reg_list {
1765     pub n: u64,
1766     pub reg: __IncompleteArrayField<u64>,
1767 }
1768 #[repr(C)]
1769 #[derive(Debug, Default, Copy, Clone)]
1770 pub struct kvm_one_reg {
1771     pub id: u64,
1772     pub addr: u64,
1773 }
1774 #[repr(C)]
1775 #[derive(Debug, Default, Copy, Clone)]
1776 pub struct kvm_msi {
1777     pub address_lo: u32,
1778     pub address_hi: u32,
1779     pub data: u32,
1780     pub flags: u32,
1781     pub devid: u32,
1782     pub pad: [u8; 12usize],
1783 }
1784 #[repr(C)]
1785 #[derive(Debug, Default, Copy, Clone)]
1786 pub struct kvm_arm_device_addr {
1787     pub id: u64,
1788     pub addr: u64,
1789 }
1790 #[repr(C)]
1791 #[derive(Debug, Default, Copy, Clone)]
1792 pub struct kvm_create_device {
1793     pub type_: u32,
1794     pub fd: u32,
1795     pub flags: u32,
1796 }
1797 #[repr(C)]
1798 #[derive(Debug, Default, Copy, Clone)]
1799 pub struct kvm_device_attr {
1800     pub flags: u32,
1801     pub group: u32,
1802     pub attr: u64,
1803     pub addr: u64,
1804 }
1805 pub const kvm_device_type_KVM_DEV_TYPE_FSL_MPIC_20: kvm_device_type = 1;
1806 pub const kvm_device_type_KVM_DEV_TYPE_FSL_MPIC_42: kvm_device_type = 2;
1807 pub const kvm_device_type_KVM_DEV_TYPE_XICS: kvm_device_type = 3;
1808 pub const kvm_device_type_KVM_DEV_TYPE_VFIO: kvm_device_type = 4;
1809 pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_V2: kvm_device_type = 5;
1810 pub const kvm_device_type_KVM_DEV_TYPE_FLIC: kvm_device_type = 6;
1811 pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_V3: kvm_device_type = 7;
1812 pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_ITS: kvm_device_type = 8;
1813 pub const kvm_device_type_KVM_DEV_TYPE_XIVE: kvm_device_type = 9;
1814 pub const kvm_device_type_KVM_DEV_TYPE_ARM_PV_TIME: kvm_device_type = 10;
1815 pub const kvm_device_type_KVM_DEV_TYPE_RISCV_AIA: kvm_device_type = 11;
1816 pub const kvm_device_type_KVM_DEV_TYPE_MAX: kvm_device_type = 12;
1817 pub type kvm_device_type = ::std::os::raw::c_uint;
1818 #[repr(C)]
1819 #[derive(Debug, Default, Copy, Clone)]
1820 pub struct kvm_vfio_spapr_tce {
1821     pub groupfd: i32,
1822     pub tablefd: i32,
1823 }
1824 #[repr(C)]
1825 #[derive(Debug, Default, Copy, Clone)]
1826 pub struct kvm_enc_region {
1827     pub addr: u64,
1828     pub size: u64,
1829 }
1830 #[repr(C)]
1831 #[derive(Debug, Default, Copy, Clone)]
1832 pub struct kvm_dirty_gfn {
1833     pub flags: u32,
1834     pub slot: u32,
1835     pub offset: u64,
1836 }
1837 #[repr(C)]
1838 #[derive(Debug, Default, Copy, Clone)]
1839 pub struct kvm_stats_header {
1840     pub flags: u32,
1841     pub name_size: u32,
1842     pub num_desc: u32,
1843     pub id_offset: u32,
1844     pub desc_offset: u32,
1845     pub data_offset: u32,
1846 }
1847 #[repr(C)]
1848 #[derive(Debug, Default)]
1849 pub struct kvm_stats_desc {
1850     pub flags: u32,
1851     pub exponent: i16,
1852     pub size: u16,
1853     pub offset: u32,
1854     pub bucket_size: u32,
1855     pub name: __IncompleteArrayField<::std::os::raw::c_char>,
1856 }
1857 #[repr(C)]
1858 #[derive(Debug, Default, Copy, Clone)]
1859 pub struct kvm_memory_attributes {
1860     pub address: u64,
1861     pub size: u64,
1862     pub attributes: u64,
1863     pub flags: u64,
1864 }
1865 #[repr(C)]
1866 #[derive(Debug, Default, Copy, Clone)]
1867 pub struct kvm_create_guest_memfd {
1868     pub size: u64,
1869     pub flags: u64,
1870     pub reserved: [u64; 6usize],
1871 }
1872 #[repr(C)]
1873 #[derive(Debug, Default, Copy, Clone)]
1874 pub struct kvm_pre_fault_memory {
1875     pub gpa: u64,
1876     pub size: u64,
1877     pub flags: u64,
1878     pub padding: [u64; 5usize],
1879 }
1880