xref: /aosp_15_r20/external/crosvm/kvm_sys/src/aarch64/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 
43 #[repr(C)]
44 #[derive(Default)]
45 pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]);
46 impl<T> __IncompleteArrayField<T> {
47     #[inline]
new() -> Self48     pub const fn new() -> Self {
49         __IncompleteArrayField(::std::marker::PhantomData, [])
50     }
51     #[inline]
as_ptr(&self) -> *const T52     pub fn as_ptr(&self) -> *const T {
53         self as *const _ as *const T
54     }
55     #[inline]
as_mut_ptr(&mut self) -> *mut T56     pub fn as_mut_ptr(&mut self) -> *mut T {
57         self as *mut _ as *mut T
58     }
59     #[inline]
as_slice(&self, len: usize) -> &[T]60     pub unsafe fn as_slice(&self, len: usize) -> &[T] {
61         ::std::slice::from_raw_parts(self.as_ptr(), len)
62     }
63     #[inline]
as_mut_slice(&mut self, len: usize) -> &mut [T]64     pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
65         ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
66     }
67 }
68 impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result69     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
70         fmt.write_str("__IncompleteArrayField")
71     }
72 }
73 pub const KVM_SPSR_EL1: u32 = 0;
74 pub const KVM_SPSR_SVC: u32 = 0;
75 pub const KVM_SPSR_ABT: u32 = 1;
76 pub const KVM_SPSR_UND: u32 = 2;
77 pub const KVM_SPSR_IRQ: u32 = 3;
78 pub const KVM_SPSR_FIQ: u32 = 4;
79 pub const KVM_NR_SPSR: u32 = 5;
80 pub const PSCI_0_2_FN_BASE: u32 = 2214592512;
81 pub const PSCI_0_2_64BIT: u32 = 1073741824;
82 pub const PSCI_0_2_FN64_BASE: u32 = 3288334336;
83 pub const PSCI_0_2_POWER_STATE_ID_MASK: u32 = 65535;
84 pub const PSCI_0_2_POWER_STATE_ID_SHIFT: u32 = 0;
85 pub const PSCI_0_2_POWER_STATE_TYPE_SHIFT: u32 = 16;
86 pub const PSCI_0_2_POWER_STATE_TYPE_MASK: u32 = 65536;
87 pub const PSCI_0_2_POWER_STATE_AFFL_SHIFT: u32 = 24;
88 pub const PSCI_0_2_POWER_STATE_AFFL_MASK: u32 = 50331648;
89 pub const PSCI_1_0_EXT_POWER_STATE_ID_MASK: u32 = 268435455;
90 pub const PSCI_1_0_EXT_POWER_STATE_ID_SHIFT: u32 = 0;
91 pub const PSCI_1_0_EXT_POWER_STATE_TYPE_SHIFT: u32 = 30;
92 pub const PSCI_1_0_EXT_POWER_STATE_TYPE_MASK: u32 = 1073741824;
93 pub const PSCI_0_2_AFFINITY_LEVEL_ON: u32 = 0;
94 pub const PSCI_0_2_AFFINITY_LEVEL_OFF: u32 = 1;
95 pub const PSCI_0_2_AFFINITY_LEVEL_ON_PENDING: u32 = 2;
96 pub const PSCI_0_2_TOS_UP_MIGRATE: u32 = 0;
97 pub const PSCI_0_2_TOS_UP_NO_MIGRATE: u32 = 1;
98 pub const PSCI_0_2_TOS_MP: u32 = 2;
99 pub const PSCI_1_1_RESET_TYPE_SYSTEM_WARM_RESET: u32 = 0;
100 pub const PSCI_1_1_RESET_TYPE_VENDOR_START: u32 = 2147483648;
101 pub const PSCI_VERSION_MAJOR_SHIFT: u32 = 16;
102 pub const PSCI_VERSION_MINOR_MASK: u32 = 65535;
103 pub const PSCI_VERSION_MAJOR_MASK: i32 = -65536;
104 pub const PSCI_1_0_FEATURES_CPU_SUSPEND_PF_SHIFT: u32 = 1;
105 pub const PSCI_1_0_FEATURES_CPU_SUSPEND_PF_MASK: u32 = 2;
106 pub const PSCI_1_0_SUSPEND_MODE_PC: u32 = 0;
107 pub const PSCI_1_0_SUSPEND_MODE_OSI: u32 = 1;
108 pub const PSCI_RET_SUCCESS: u32 = 0;
109 pub const PSCI_RET_NOT_SUPPORTED: i32 = -1;
110 pub const PSCI_RET_INVALID_PARAMS: i32 = -2;
111 pub const PSCI_RET_DENIED: i32 = -3;
112 pub const PSCI_RET_ALREADY_ON: i32 = -4;
113 pub const PSCI_RET_ON_PENDING: i32 = -5;
114 pub const PSCI_RET_INTERNAL_FAILURE: i32 = -6;
115 pub const PSCI_RET_NOT_PRESENT: i32 = -7;
116 pub const PSCI_RET_DISABLED: i32 = -8;
117 pub const PSCI_RET_INVALID_ADDRESS: i32 = -9;
118 pub const HWCAP_FP: u32 = 1;
119 pub const HWCAP_ASIMD: u32 = 2;
120 pub const HWCAP_EVTSTRM: u32 = 4;
121 pub const HWCAP_AES: u32 = 8;
122 pub const HWCAP_PMULL: u32 = 16;
123 pub const HWCAP_SHA1: u32 = 32;
124 pub const HWCAP_SHA2: u32 = 64;
125 pub const HWCAP_CRC32: u32 = 128;
126 pub const HWCAP_ATOMICS: u32 = 256;
127 pub const HWCAP_FPHP: u32 = 512;
128 pub const HWCAP_ASIMDHP: u32 = 1024;
129 pub const HWCAP_CPUID: u32 = 2048;
130 pub const HWCAP_ASIMDRDM: u32 = 4096;
131 pub const HWCAP_JSCVT: u32 = 8192;
132 pub const HWCAP_FCMA: u32 = 16384;
133 pub const HWCAP_LRCPC: u32 = 32768;
134 pub const HWCAP_DCPOP: u32 = 65536;
135 pub const HWCAP_SHA3: u32 = 131072;
136 pub const HWCAP_SM3: u32 = 262144;
137 pub const HWCAP_SM4: u32 = 524288;
138 pub const HWCAP_ASIMDDP: u32 = 1048576;
139 pub const HWCAP_SHA512: u32 = 2097152;
140 pub const HWCAP_SVE: u32 = 4194304;
141 pub const HWCAP_ASIMDFHM: u32 = 8388608;
142 pub const HWCAP_DIT: u32 = 16777216;
143 pub const HWCAP_USCAT: u32 = 33554432;
144 pub const HWCAP_ILRCPC: u32 = 67108864;
145 pub const HWCAP_FLAGM: u32 = 134217728;
146 pub const HWCAP_SSBS: u32 = 268435456;
147 pub const HWCAP_SB: u32 = 536870912;
148 pub const HWCAP_PACA: u32 = 1073741824;
149 pub const HWCAP_PACG: u32 = 2147483648;
150 pub const HWCAP2_DCPODP: u32 = 1;
151 pub const HWCAP2_SVE2: u32 = 2;
152 pub const HWCAP2_SVEAES: u32 = 4;
153 pub const HWCAP2_SVEPMULL: u32 = 8;
154 pub const HWCAP2_SVEBITPERM: u32 = 16;
155 pub const HWCAP2_SVESHA3: u32 = 32;
156 pub const HWCAP2_SVESM4: u32 = 64;
157 pub const HWCAP2_FLAGM2: u32 = 128;
158 pub const HWCAP2_FRINT: u32 = 256;
159 pub const HWCAP2_SVEI8MM: u32 = 512;
160 pub const HWCAP2_SVEF32MM: u32 = 1024;
161 pub const HWCAP2_SVEF64MM: u32 = 2048;
162 pub const HWCAP2_SVEBF16: u32 = 4096;
163 pub const HWCAP2_I8MM: u32 = 8192;
164 pub const HWCAP2_BF16: u32 = 16384;
165 pub const HWCAP2_DGH: u32 = 32768;
166 pub const HWCAP2_RNG: u32 = 65536;
167 pub const HWCAP2_BTI: u32 = 131072;
168 pub const HWCAP2_MTE: u32 = 262144;
169 pub const HWCAP2_ECV: u32 = 524288;
170 pub const HWCAP2_AFP: u32 = 1048576;
171 pub const HWCAP2_RPRES: u32 = 2097152;
172 pub const HWCAP2_MTE3: u32 = 4194304;
173 pub const HWCAP2_SME: u32 = 8388608;
174 pub const HWCAP2_SME_I16I64: u32 = 16777216;
175 pub const HWCAP2_SME_F64F64: u32 = 33554432;
176 pub const HWCAP2_SME_I8I32: u32 = 67108864;
177 pub const HWCAP2_SME_F16F32: u32 = 134217728;
178 pub const HWCAP2_SME_B16F32: u32 = 268435456;
179 pub const HWCAP2_SME_F32F32: u32 = 536870912;
180 pub const HWCAP2_SME_FA64: u32 = 1073741824;
181 pub const HWCAP2_WFXT: u32 = 2147483648;
182 pub const HWCAP2_EBF16: u64 = 4294967296;
183 pub const HWCAP2_SVE_EBF16: u64 = 8589934592;
184 pub const HWCAP2_CSSC: u64 = 17179869184;
185 pub const HWCAP2_RPRFM: u64 = 34359738368;
186 pub const HWCAP2_SVE2P1: u64 = 68719476736;
187 pub const HWCAP2_SME2: u64 = 137438953472;
188 pub const HWCAP2_SME2P1: u64 = 274877906944;
189 pub const HWCAP2_SME_I16I32: u64 = 549755813888;
190 pub const HWCAP2_SME_BI32I32: u64 = 1099511627776;
191 pub const HWCAP2_SME_B16B16: u64 = 2199023255552;
192 pub const HWCAP2_SME_F16F16: u64 = 4398046511104;
193 pub const HWCAP2_MOPS: u64 = 8796093022208;
194 pub const HWCAP2_HBC: u64 = 17592186044416;
195 pub const __SVE_VQ_BYTES: u32 = 16;
196 pub const __SVE_VQ_MIN: u32 = 1;
197 pub const __SVE_VQ_MAX: u32 = 512;
198 pub const __SVE_VL_MIN: u32 = 16;
199 pub const __SVE_VL_MAX: u32 = 8192;
200 pub const __SVE_NUM_ZREGS: u32 = 32;
201 pub const __SVE_NUM_PREGS: u32 = 16;
202 pub const __SVE_ZREGS_OFFSET: u32 = 0;
203 pub const PSR_MODE_EL0t: u32 = 0;
204 pub const PSR_MODE_EL1t: u32 = 4;
205 pub const PSR_MODE_EL1h: u32 = 5;
206 pub const PSR_MODE_EL2t: u32 = 8;
207 pub const PSR_MODE_EL2h: u32 = 9;
208 pub const PSR_MODE_EL3t: u32 = 12;
209 pub const PSR_MODE_EL3h: u32 = 13;
210 pub const PSR_MODE_MASK: u32 = 15;
211 pub const PSR_MODE32_BIT: u32 = 16;
212 pub const PSR_F_BIT: u32 = 64;
213 pub const PSR_I_BIT: u32 = 128;
214 pub const PSR_A_BIT: u32 = 256;
215 pub const PSR_D_BIT: u32 = 512;
216 pub const PSR_BTYPE_MASK: u32 = 3072;
217 pub const PSR_SSBS_BIT: u32 = 4096;
218 pub const PSR_PAN_BIT: u32 = 4194304;
219 pub const PSR_UAO_BIT: u32 = 8388608;
220 pub const PSR_DIT_BIT: u32 = 16777216;
221 pub const PSR_TCO_BIT: u32 = 33554432;
222 pub const PSR_V_BIT: u32 = 268435456;
223 pub const PSR_C_BIT: u32 = 536870912;
224 pub const PSR_Z_BIT: u32 = 1073741824;
225 pub const PSR_N_BIT: u32 = 2147483648;
226 pub const PSR_BTYPE_SHIFT: u32 = 10;
227 pub const PSR_f: u32 = 4278190080;
228 pub const PSR_s: u32 = 16711680;
229 pub const PSR_x: u32 = 65280;
230 pub const PSR_c: u32 = 255;
231 pub const PSR_BTYPE_NONE: u32 = 0;
232 pub const PSR_BTYPE_JC: u32 = 1024;
233 pub const PSR_BTYPE_C: u32 = 2048;
234 pub const PSR_BTYPE_J: u32 = 3072;
235 pub const PTRACE_SYSEMU: u32 = 31;
236 pub const PTRACE_SYSEMU_SINGLESTEP: u32 = 32;
237 pub const PTRACE_PEEKMTETAGS: u32 = 33;
238 pub const PTRACE_POKEMTETAGS: u32 = 34;
239 pub const SVE_PT_REGS_MASK: u32 = 1;
240 pub const SVE_PT_REGS_FPSIMD: u32 = 0;
241 pub const SVE_PT_REGS_SVE: u32 = 1;
242 pub const SVE_PT_VL_INHERIT: u32 = 2;
243 pub const SVE_PT_VL_ONEXEC: u32 = 4;
244 pub const ZA_PT_VL_INHERIT: u32 = 2;
245 pub const ZA_PT_VL_ONEXEC: u32 = 4;
246 pub const KVM_COALESCED_MMIO_PAGE_OFFSET: u32 = 1;
247 pub const KVM_DIRTY_LOG_PAGE_OFFSET: u32 = 64;
248 pub const KVM_ARM_TARGET_AEM_V8: u32 = 0;
249 pub const KVM_ARM_TARGET_FOUNDATION_V8: u32 = 1;
250 pub const KVM_ARM_TARGET_CORTEX_A57: u32 = 2;
251 pub const KVM_ARM_TARGET_XGENE_POTENZA: u32 = 3;
252 pub const KVM_ARM_TARGET_CORTEX_A53: u32 = 4;
253 pub const KVM_ARM_TARGET_GENERIC_V8: u32 = 5;
254 pub const KVM_ARM_NUM_TARGETS: u32 = 6;
255 pub const KVM_ARM_DEVICE_TYPE_SHIFT: u32 = 0;
256 pub const KVM_ARM_DEVICE_ID_SHIFT: u32 = 16;
257 pub const KVM_ARM_DEVICE_VGIC_V2: u32 = 0;
258 pub const KVM_VGIC_V2_ADDR_TYPE_DIST: u32 = 0;
259 pub const KVM_VGIC_V2_ADDR_TYPE_CPU: u32 = 1;
260 pub const KVM_VGIC_V2_DIST_SIZE: u32 = 4096;
261 pub const KVM_VGIC_V2_CPU_SIZE: u32 = 8192;
262 pub const KVM_VGIC_V3_ADDR_TYPE_DIST: u32 = 2;
263 pub const KVM_VGIC_V3_ADDR_TYPE_REDIST: u32 = 3;
264 pub const KVM_VGIC_ITS_ADDR_TYPE: u32 = 4;
265 pub const KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION: u32 = 5;
266 pub const KVM_ARM_VCPU_POWER_OFF: u32 = 0;
267 pub const KVM_ARM_VCPU_EL1_32BIT: u32 = 1;
268 pub const KVM_ARM_VCPU_PSCI_0_2: u32 = 2;
269 pub const KVM_ARM_VCPU_PMU_V3: u32 = 3;
270 pub const KVM_ARM_VCPU_SVE: u32 = 4;
271 pub const KVM_ARM_VCPU_PTRAUTH_ADDRESS: u32 = 5;
272 pub const KVM_ARM_VCPU_PTRAUTH_GENERIC: u32 = 6;
273 pub const KVM_ARM_VCPU_HAS_EL2: u32 = 7;
274 pub const KVM_ARM_MAX_DBG_REGS: u32 = 16;
275 pub const KVM_DEBUG_ARCH_HSR_HIGH_VALID: u32 = 1;
276 pub const KVM_GUESTDBG_USE_SW_BP: u32 = 65536;
277 pub const KVM_GUESTDBG_USE_HW: u32 = 131072;
278 pub const KVM_PMU_EVENT_ALLOW: u32 = 0;
279 pub const KVM_PMU_EVENT_DENY: u32 = 1;
280 pub const KVM_ARM_TAGS_TO_GUEST: u32 = 0;
281 pub const KVM_ARM_TAGS_FROM_GUEST: u32 = 1;
282 pub const KVM_REG_ARM_COPROC_MASK: u32 = 268369920;
283 pub const KVM_REG_ARM_COPROC_SHIFT: u32 = 16;
284 pub const KVM_REG_ARM_CORE: u32 = 1048576;
285 pub const KVM_REG_ARM_DEMUX: u32 = 1114112;
286 pub const KVM_REG_ARM_DEMUX_ID_MASK: u32 = 65280;
287 pub const KVM_REG_ARM_DEMUX_ID_SHIFT: u32 = 8;
288 pub const KVM_REG_ARM_DEMUX_ID_CCSIDR: u32 = 0;
289 pub const KVM_REG_ARM_DEMUX_VAL_MASK: u32 = 255;
290 pub const KVM_REG_ARM_DEMUX_VAL_SHIFT: u32 = 0;
291 pub const KVM_REG_ARM64_SYSREG: u32 = 1245184;
292 pub const KVM_REG_ARM64_SYSREG_OP0_MASK: u32 = 49152;
293 pub const KVM_REG_ARM64_SYSREG_OP0_SHIFT: u32 = 14;
294 pub const KVM_REG_ARM64_SYSREG_OP1_MASK: u32 = 14336;
295 pub const KVM_REG_ARM64_SYSREG_OP1_SHIFT: u32 = 11;
296 pub const KVM_REG_ARM64_SYSREG_CRN_MASK: u32 = 1920;
297 pub const KVM_REG_ARM64_SYSREG_CRN_SHIFT: u32 = 7;
298 pub const KVM_REG_ARM64_SYSREG_CRM_MASK: u32 = 120;
299 pub const KVM_REG_ARM64_SYSREG_CRM_SHIFT: u32 = 3;
300 pub const KVM_REG_ARM64_SYSREG_OP2_MASK: u32 = 7;
301 pub const KVM_REG_ARM64_SYSREG_OP2_SHIFT: u32 = 0;
302 pub const KVM_REG_ARM_FW: u32 = 1310720;
303 pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_1_NOT_AVAIL: u32 = 0;
304 pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_1_AVAIL: u32 = 1;
305 pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_1_NOT_REQUIRED: u32 = 2;
306 pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_NOT_AVAIL: u32 = 0;
307 pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_UNKNOWN: u32 = 1;
308 pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_AVAIL: u32 = 2;
309 pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_NOT_REQUIRED: u32 = 3;
310 pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_ENABLED: u32 = 16;
311 pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_3_NOT_AVAIL: u32 = 0;
312 pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_3_AVAIL: u32 = 1;
313 pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_3_NOT_REQUIRED: u32 = 2;
314 pub const KVM_REG_ARM64_SVE: u32 = 1376256;
315 pub const KVM_REG_ARM64_SVE_ZREG_BASE: u32 = 0;
316 pub const KVM_REG_ARM64_SVE_PREG_BASE: u32 = 1024;
317 pub const KVM_REG_ARM64_SVE_FFR_BASE: u32 = 1536;
318 pub const KVM_ARM64_SVE_NUM_ZREGS: u32 = 32;
319 pub const KVM_ARM64_SVE_NUM_PREGS: u32 = 16;
320 pub const KVM_ARM64_SVE_MAX_SLICES: u32 = 32;
321 pub const KVM_ARM64_SVE_VQ_MIN: u32 = 1;
322 pub const KVM_ARM64_SVE_VQ_MAX: u32 = 512;
323 pub const KVM_ARM64_SVE_VLS_WORDS: u32 = 8;
324 pub const KVM_REG_ARM_FW_FEAT_BMAP: u32 = 1441792;
325 pub const KVM_ARM_VM_SMCCC_CTRL: u32 = 0;
326 pub const KVM_ARM_VM_SMCCC_FILTER: u32 = 0;
327 pub const KVM_DEV_ARM_VGIC_GRP_ADDR: u32 = 0;
328 pub const KVM_DEV_ARM_VGIC_GRP_DIST_REGS: u32 = 1;
329 pub const KVM_DEV_ARM_VGIC_GRP_CPU_REGS: u32 = 2;
330 pub const KVM_DEV_ARM_VGIC_CPUID_SHIFT: u32 = 32;
331 pub const KVM_DEV_ARM_VGIC_CPUID_MASK: u64 = 1095216660480;
332 pub const KVM_DEV_ARM_VGIC_V3_MPIDR_SHIFT: u32 = 32;
333 pub const KVM_DEV_ARM_VGIC_V3_MPIDR_MASK: i64 = -4294967296;
334 pub const KVM_DEV_ARM_VGIC_OFFSET_SHIFT: u32 = 0;
335 pub const KVM_DEV_ARM_VGIC_OFFSET_MASK: u32 = 4294967295;
336 pub const KVM_DEV_ARM_VGIC_SYSREG_INSTR_MASK: u32 = 65535;
337 pub const KVM_DEV_ARM_VGIC_GRP_NR_IRQS: u32 = 3;
338 pub const KVM_DEV_ARM_VGIC_GRP_CTRL: u32 = 4;
339 pub const KVM_DEV_ARM_VGIC_GRP_REDIST_REGS: u32 = 5;
340 pub const KVM_DEV_ARM_VGIC_GRP_CPU_SYSREGS: u32 = 6;
341 pub const KVM_DEV_ARM_VGIC_GRP_LEVEL_INFO: u32 = 7;
342 pub const KVM_DEV_ARM_VGIC_GRP_ITS_REGS: u32 = 8;
343 pub const KVM_DEV_ARM_VGIC_LINE_LEVEL_INFO_SHIFT: u32 = 10;
344 pub const KVM_DEV_ARM_VGIC_LINE_LEVEL_INFO_MASK: u32 = 4294966272;
345 pub const KVM_DEV_ARM_VGIC_LINE_LEVEL_INTID_MASK: u32 = 1023;
346 pub const VGIC_LEVEL_INFO_LINE_LEVEL: u32 = 0;
347 pub const KVM_DEV_ARM_VGIC_CTRL_INIT: u32 = 0;
348 pub const KVM_DEV_ARM_ITS_SAVE_TABLES: u32 = 1;
349 pub const KVM_DEV_ARM_ITS_RESTORE_TABLES: u32 = 2;
350 pub const KVM_DEV_ARM_VGIC_SAVE_PENDING_TABLES: u32 = 3;
351 pub const KVM_DEV_ARM_ITS_CTRL_RESET: u32 = 4;
352 pub const KVM_ARM_VCPU_PMU_V3_CTRL: u32 = 0;
353 pub const KVM_ARM_VCPU_PMU_V3_IRQ: u32 = 0;
354 pub const KVM_ARM_VCPU_PMU_V3_INIT: u32 = 1;
355 pub const KVM_ARM_VCPU_PMU_V3_FILTER: u32 = 2;
356 pub const KVM_ARM_VCPU_PMU_V3_SET_PMU: u32 = 3;
357 pub const KVM_ARM_VCPU_TIMER_CTRL: u32 = 1;
358 pub const KVM_ARM_VCPU_TIMER_IRQ_VTIMER: u32 = 0;
359 pub const KVM_ARM_VCPU_TIMER_IRQ_PTIMER: u32 = 1;
360 pub const KVM_ARM_VCPU_TIMER_IRQ_HVTIMER: u32 = 2;
361 pub const KVM_ARM_VCPU_TIMER_IRQ_HPTIMER: u32 = 3;
362 pub const KVM_ARM_VCPU_PVTIME_CTRL: u32 = 2;
363 pub const KVM_ARM_VCPU_PVTIME_IPA: u32 = 0;
364 pub const KVM_ARM_IRQ_VCPU2_SHIFT: u32 = 28;
365 pub const KVM_ARM_IRQ_VCPU2_MASK: u32 = 15;
366 pub const KVM_ARM_IRQ_TYPE_SHIFT: u32 = 24;
367 pub const KVM_ARM_IRQ_TYPE_MASK: u32 = 15;
368 pub const KVM_ARM_IRQ_VCPU_SHIFT: u32 = 16;
369 pub const KVM_ARM_IRQ_VCPU_MASK: u32 = 255;
370 pub const KVM_ARM_IRQ_NUM_SHIFT: u32 = 0;
371 pub const KVM_ARM_IRQ_NUM_MASK: u32 = 65535;
372 pub const KVM_ARM_IRQ_TYPE_CPU: u32 = 0;
373 pub const KVM_ARM_IRQ_TYPE_SPI: u32 = 1;
374 pub const KVM_ARM_IRQ_TYPE_PPI: u32 = 2;
375 pub const KVM_ARM_IRQ_CPU_IRQ: u32 = 0;
376 pub const KVM_ARM_IRQ_CPU_FIQ: u32 = 1;
377 pub const KVM_ARM_IRQ_GIC_MAX: u32 = 127;
378 pub const KVM_NR_IRQCHIPS: u32 = 1;
379 pub const KVM_PSCI_FN_BASE: u32 = 2512501342;
380 pub const KVM_PSCI_RET_SUCCESS: u32 = 0;
381 pub const KVM_PSCI_RET_NI: i32 = -1;
382 pub const KVM_PSCI_RET_INVAL: i32 = -2;
383 pub const KVM_PSCI_RET_DENIED: i32 = -3;
384 pub const KVM_SYSTEM_EVENT_RESET_FLAG_PSCI_RESET2: u32 = 1;
385 pub const KVM_EXIT_FAIL_ENTRY_CPU_UNSUPPORTED: u32 = 1;
386 pub const KVM_HYPERCALL_EXIT_SMC: u32 = 1;
387 pub const KVM_HYPERCALL_EXIT_16BIT: u32 = 2;
388 pub const KVM_API_VERSION: u32 = 12;
389 pub const KVM_TRC_SHIFT: u32 = 16;
390 pub const KVM_TRC_ENTRYEXIT: u32 = 65536;
391 pub const KVM_TRC_HANDLER: u32 = 131072;
392 pub const KVM_TRC_VMENTRY: u32 = 65537;
393 pub const KVM_TRC_VMEXIT: u32 = 65538;
394 pub const KVM_TRC_PAGE_FAULT: u32 = 131073;
395 pub const KVM_TRC_HEAD_SIZE: u32 = 12;
396 pub const KVM_TRC_CYCLE_SIZE: u32 = 8;
397 pub const KVM_TRC_EXTRA_MAX: u32 = 7;
398 pub const KVM_TRC_INJ_VIRQ: u32 = 131074;
399 pub const KVM_TRC_REDELIVER_EVT: u32 = 131075;
400 pub const KVM_TRC_PEND_INTR: u32 = 131076;
401 pub const KVM_TRC_IO_READ: u32 = 131077;
402 pub const KVM_TRC_IO_WRITE: u32 = 131078;
403 pub const KVM_TRC_CR_READ: u32 = 131079;
404 pub const KVM_TRC_CR_WRITE: u32 = 131080;
405 pub const KVM_TRC_DR_READ: u32 = 131081;
406 pub const KVM_TRC_DR_WRITE: u32 = 131082;
407 pub const KVM_TRC_MSR_READ: u32 = 131083;
408 pub const KVM_TRC_MSR_WRITE: u32 = 131084;
409 pub const KVM_TRC_CPUID: u32 = 131085;
410 pub const KVM_TRC_INTR: u32 = 131086;
411 pub const KVM_TRC_NMI: u32 = 131087;
412 pub const KVM_TRC_VMMCALL: u32 = 131088;
413 pub const KVM_TRC_HLT: u32 = 131089;
414 pub const KVM_TRC_CLTS: u32 = 131090;
415 pub const KVM_TRC_LMSW: u32 = 131091;
416 pub const KVM_TRC_APIC_ACCESS: u32 = 131092;
417 pub const KVM_TRC_TDP_FAULT: u32 = 131093;
418 pub const KVM_TRC_GTLB_WRITE: u32 = 131094;
419 pub const KVM_TRC_STLB_WRITE: u32 = 131095;
420 pub const KVM_TRC_STLB_INVAL: u32 = 131096;
421 pub const KVM_TRC_PPC_INSTR: u32 = 131097;
422 pub const KVM_MEM_LOG_DIRTY_PAGES: u32 = 1;
423 pub const KVM_MEM_READONLY: u32 = 2;
424 pub const KVM_PIT_SPEAKER_DUMMY: u32 = 1;
425 pub const KVM_S390_CMMA_PEEK: u32 = 1;
426 pub const KVM_EXIT_HYPERV_SYNIC: u32 = 1;
427 pub const KVM_EXIT_HYPERV_HCALL: u32 = 2;
428 pub const KVM_EXIT_HYPERV_SYNDBG: u32 = 3;
429 pub const KVM_EXIT_XEN_HCALL: u32 = 1;
430 pub const KVM_S390_GET_SKEYS_NONE: u32 = 1;
431 pub const KVM_S390_SKEYS_MAX: u32 = 1048576;
432 pub const KVM_EXIT_UNKNOWN: u32 = 0;
433 pub const KVM_EXIT_EXCEPTION: u32 = 1;
434 pub const KVM_EXIT_IO: u32 = 2;
435 pub const KVM_EXIT_HYPERCALL: u32 = 3;
436 pub const KVM_EXIT_DEBUG: u32 = 4;
437 pub const KVM_EXIT_HLT: u32 = 5;
438 pub const KVM_EXIT_MMIO: u32 = 6;
439 pub const KVM_EXIT_IRQ_WINDOW_OPEN: u32 = 7;
440 pub const KVM_EXIT_SHUTDOWN: u32 = 8;
441 pub const KVM_EXIT_FAIL_ENTRY: u32 = 9;
442 pub const KVM_EXIT_INTR: u32 = 10;
443 pub const KVM_EXIT_SET_TPR: u32 = 11;
444 pub const KVM_EXIT_TPR_ACCESS: u32 = 12;
445 pub const KVM_EXIT_S390_SIEIC: u32 = 13;
446 pub const KVM_EXIT_S390_RESET: u32 = 14;
447 pub const KVM_EXIT_DCR: u32 = 15;
448 pub const KVM_EXIT_NMI: u32 = 16;
449 pub const KVM_EXIT_INTERNAL_ERROR: u32 = 17;
450 pub const KVM_EXIT_OSI: u32 = 18;
451 pub const KVM_EXIT_PAPR_HCALL: u32 = 19;
452 pub const KVM_EXIT_S390_UCONTROL: u32 = 20;
453 pub const KVM_EXIT_WATCHDOG: u32 = 21;
454 pub const KVM_EXIT_S390_TSCH: u32 = 22;
455 pub const KVM_EXIT_EPR: u32 = 23;
456 pub const KVM_EXIT_SYSTEM_EVENT: u32 = 24;
457 pub const KVM_EXIT_S390_STSI: u32 = 25;
458 pub const KVM_EXIT_IOAPIC_EOI: u32 = 26;
459 pub const KVM_EXIT_HYPERV: u32 = 27;
460 pub const KVM_EXIT_ARM_NISV: u32 = 28;
461 pub const KVM_EXIT_X86_RDMSR: u32 = 29;
462 pub const KVM_EXIT_X86_WRMSR: u32 = 30;
463 pub const KVM_EXIT_DIRTY_RING_FULL: u32 = 31;
464 pub const KVM_EXIT_AP_RESET_HOLD: u32 = 32;
465 pub const KVM_EXIT_X86_BUS_LOCK: u32 = 33;
466 pub const KVM_EXIT_XEN: u32 = 34;
467 pub const KVM_EXIT_RISCV_SBI: u32 = 35;
468 pub const KVM_EXIT_RISCV_CSR: u32 = 36;
469 pub const KVM_EXIT_NOTIFY: u32 = 37;
470 pub const KVM_INTERNAL_ERROR_EMULATION: u32 = 1;
471 pub const KVM_INTERNAL_ERROR_SIMUL_EX: u32 = 2;
472 pub const KVM_INTERNAL_ERROR_DELIVERY_EV: u32 = 3;
473 pub const KVM_INTERNAL_ERROR_UNEXPECTED_EXIT_REASON: u32 = 4;
474 pub const KVM_INTERNAL_ERROR_EMULATION_FLAG_INSTRUCTION_BYTES: u32 = 1;
475 pub const KVM_EXIT_IO_IN: u32 = 0;
476 pub const KVM_EXIT_IO_OUT: u32 = 1;
477 pub const KVM_S390_RESET_POR: u32 = 1;
478 pub const KVM_S390_RESET_CLEAR: u32 = 2;
479 pub const KVM_S390_RESET_SUBSYSTEM: u32 = 4;
480 pub const KVM_S390_RESET_CPU_INIT: u32 = 8;
481 pub const KVM_S390_RESET_IPL: u32 = 16;
482 pub const KVM_SYSTEM_EVENT_SHUTDOWN: u32 = 1;
483 pub const KVM_SYSTEM_EVENT_RESET: u32 = 2;
484 pub const KVM_SYSTEM_EVENT_CRASH: u32 = 3;
485 pub const KVM_SYSTEM_EVENT_WAKEUP: u32 = 4;
486 pub const KVM_SYSTEM_EVENT_SUSPEND: u32 = 5;
487 pub const KVM_SYSTEM_EVENT_SEV_TERM: u32 = 6;
488 pub const KVM_MSR_EXIT_REASON_INVAL: u32 = 1;
489 pub const KVM_MSR_EXIT_REASON_UNKNOWN: u32 = 2;
490 pub const KVM_MSR_EXIT_REASON_FILTER: u32 = 4;
491 pub const KVM_MSR_EXIT_REASON_VALID_MASK: u32 = 7;
492 pub const KVM_NOTIFY_CONTEXT_INVALID: u32 = 1;
493 pub const SYNC_REGS_SIZE_BYTES: u32 = 2048;
494 pub const KVM_S390_MEMOP_LOGICAL_READ: u32 = 0;
495 pub const KVM_S390_MEMOP_LOGICAL_WRITE: u32 = 1;
496 pub const KVM_S390_MEMOP_SIDA_READ: u32 = 2;
497 pub const KVM_S390_MEMOP_SIDA_WRITE: u32 = 3;
498 pub const KVM_S390_MEMOP_ABSOLUTE_READ: u32 = 4;
499 pub const KVM_S390_MEMOP_ABSOLUTE_WRITE: u32 = 5;
500 pub const KVM_S390_MEMOP_ABSOLUTE_CMPXCHG: u32 = 6;
501 pub const KVM_S390_MEMOP_F_CHECK_ONLY: u32 = 1;
502 pub const KVM_S390_MEMOP_F_INJECT_EXCEPTION: u32 = 2;
503 pub const KVM_S390_MEMOP_F_SKEY_PROTECTION: u32 = 4;
504 pub const KVM_S390_MEMOP_EXTENSION_CAP_BASE: u32 = 1;
505 pub const KVM_S390_MEMOP_EXTENSION_CAP_CMPXCHG: u32 = 2;
506 pub const KVM_MP_STATE_RUNNABLE: u32 = 0;
507 pub const KVM_MP_STATE_UNINITIALIZED: u32 = 1;
508 pub const KVM_MP_STATE_INIT_RECEIVED: u32 = 2;
509 pub const KVM_MP_STATE_HALTED: u32 = 3;
510 pub const KVM_MP_STATE_SIPI_RECEIVED: u32 = 4;
511 pub const KVM_MP_STATE_STOPPED: u32 = 5;
512 pub const KVM_MP_STATE_CHECK_STOP: u32 = 6;
513 pub const KVM_MP_STATE_OPERATING: u32 = 7;
514 pub const KVM_MP_STATE_LOAD: u32 = 8;
515 pub const KVM_MP_STATE_AP_RESET_HOLD: u32 = 9;
516 pub const KVM_MP_STATE_SUSPENDED: u32 = 10;
517 pub const KVM_S390_SIGP_STOP: u32 = 4294836224;
518 pub const KVM_S390_PROGRAM_INT: u32 = 4294836225;
519 pub const KVM_S390_SIGP_SET_PREFIX: u32 = 4294836226;
520 pub const KVM_S390_RESTART: u32 = 4294836227;
521 pub const KVM_S390_INT_PFAULT_INIT: u32 = 4294836228;
522 pub const KVM_S390_INT_PFAULT_DONE: u32 = 4294836229;
523 pub const KVM_S390_MCHK: u32 = 4294840320;
524 pub const KVM_S390_INT_CLOCK_COMP: u32 = 4294905860;
525 pub const KVM_S390_INT_CPU_TIMER: u32 = 4294905861;
526 pub const KVM_S390_INT_VIRTIO: u32 = 4294911491;
527 pub const KVM_S390_INT_SERVICE: u32 = 4294910977;
528 pub const KVM_S390_INT_EMERGENCY: u32 = 4294906369;
529 pub const KVM_S390_INT_EXTERNAL_CALL: u32 = 4294906370;
530 pub const KVM_S390_INT_IO_MIN: u32 = 0;
531 pub const KVM_S390_INT_IO_MAX: u32 = 4294836223;
532 pub const KVM_S390_INT_IO_AI_MASK: u32 = 67108864;
533 pub const KVM_S390_PGM_FLAGS_ILC_VALID: u32 = 1;
534 pub const KVM_S390_PGM_FLAGS_ILC_0: u32 = 2;
535 pub const KVM_S390_PGM_FLAGS_ILC_1: u32 = 4;
536 pub const KVM_S390_PGM_FLAGS_ILC_MASK: u32 = 6;
537 pub const KVM_S390_PGM_FLAGS_NO_REWIND: u32 = 8;
538 pub const KVM_S390_STOP_FLAG_STORE_STATUS: u32 = 1;
539 pub const KVM_GUESTDBG_ENABLE: u32 = 1;
540 pub const KVM_GUESTDBG_SINGLESTEP: u32 = 2;
541 pub const KVM_X86_DISABLE_EXITS_MWAIT: u32 = 1;
542 pub const KVM_X86_DISABLE_EXITS_HLT: u32 = 2;
543 pub const KVM_X86_DISABLE_EXITS_PAUSE: u32 = 4;
544 pub const KVM_X86_DISABLE_EXITS_CSTATE: u32 = 8;
545 pub const KVM_X86_DISABLE_VALID_EXITS: u32 = 15;
546 pub const KVM_PPC_PVINFO_FLAGS_EV_IDLE: u32 = 1;
547 pub const KVM_PPC_PAGE_SIZES_MAX_SZ: u32 = 8;
548 pub const KVM_PPC_PAGE_SIZES_REAL: u32 = 1;
549 pub const KVM_PPC_1T_SEGMENTS: u32 = 2;
550 pub const KVM_PPC_NO_HASH: u32 = 4;
551 pub const KVMIO: u32 = 174;
552 pub const KVM_VM_S390_UCONTROL: u32 = 1;
553 pub const KVM_VM_PPC_HV: u32 = 1;
554 pub const KVM_VM_PPC_PR: u32 = 2;
555 pub const KVM_VM_MIPS_AUTO: u32 = 0;
556 pub const KVM_VM_MIPS_VZ: u32 = 1;
557 pub const KVM_VM_MIPS_TE: u32 = 2;
558 pub const KVM_S390_SIE_PAGE_OFFSET: u32 = 1;
559 pub const KVM_VM_TYPE_ARM_IPA_SIZE_MASK: u32 = 255;
560 pub const KVM_CAP_IRQCHIP: u32 = 0;
561 pub const KVM_CAP_HLT: u32 = 1;
562 pub const KVM_CAP_MMU_SHADOW_CACHE_CONTROL: u32 = 2;
563 pub const KVM_CAP_USER_MEMORY: u32 = 3;
564 pub const KVM_CAP_SET_TSS_ADDR: u32 = 4;
565 pub const KVM_CAP_VAPIC: u32 = 6;
566 pub const KVM_CAP_EXT_CPUID: u32 = 7;
567 pub const KVM_CAP_CLOCKSOURCE: u32 = 8;
568 pub const KVM_CAP_NR_VCPUS: u32 = 9;
569 pub const KVM_CAP_NR_MEMSLOTS: u32 = 10;
570 pub const KVM_CAP_PIT: u32 = 11;
571 pub const KVM_CAP_NOP_IO_DELAY: u32 = 12;
572 pub const KVM_CAP_PV_MMU: u32 = 13;
573 pub const KVM_CAP_MP_STATE: u32 = 14;
574 pub const KVM_CAP_COALESCED_MMIO: u32 = 15;
575 pub const KVM_CAP_SYNC_MMU: u32 = 16;
576 pub const KVM_CAP_IOMMU: u32 = 18;
577 pub const KVM_CAP_DESTROY_MEMORY_REGION_WORKS: u32 = 21;
578 pub const KVM_CAP_USER_NMI: u32 = 22;
579 pub const KVM_CAP_SET_GUEST_DEBUG: u32 = 23;
580 pub const KVM_CAP_IRQ_ROUTING: u32 = 25;
581 pub const KVM_CAP_IRQ_INJECT_STATUS: u32 = 26;
582 pub const KVM_CAP_ASSIGN_DEV_IRQ: u32 = 29;
583 pub const KVM_CAP_JOIN_MEMORY_REGIONS_WORKS: u32 = 30;
584 pub const KVM_CAP_IRQFD: u32 = 32;
585 pub const KVM_CAP_SET_BOOT_CPU_ID: u32 = 34;
586 pub const KVM_CAP_IOEVENTFD: u32 = 36;
587 pub const KVM_CAP_SET_IDENTITY_MAP_ADDR: u32 = 37;
588 pub const KVM_CAP_ADJUST_CLOCK: u32 = 39;
589 pub const KVM_CAP_INTERNAL_ERROR_DATA: u32 = 40;
590 pub const KVM_CAP_VCPU_EVENTS: u32 = 41;
591 pub const KVM_CAP_S390_PSW: u32 = 42;
592 pub const KVM_CAP_PPC_SEGSTATE: u32 = 43;
593 pub const KVM_CAP_HYPERV: u32 = 44;
594 pub const KVM_CAP_HYPERV_VAPIC: u32 = 45;
595 pub const KVM_CAP_HYPERV_SPIN: u32 = 46;
596 pub const KVM_CAP_PCI_SEGMENT: u32 = 47;
597 pub const KVM_CAP_PPC_PAIRED_SINGLES: u32 = 48;
598 pub const KVM_CAP_INTR_SHADOW: u32 = 49;
599 pub const KVM_CAP_X86_ROBUST_SINGLESTEP: u32 = 51;
600 pub const KVM_CAP_PPC_OSI: u32 = 52;
601 pub const KVM_CAP_PPC_UNSET_IRQ: u32 = 53;
602 pub const KVM_CAP_ENABLE_CAP: u32 = 54;
603 pub const KVM_CAP_PPC_GET_PVINFO: u32 = 57;
604 pub const KVM_CAP_PPC_IRQ_LEVEL: u32 = 58;
605 pub const KVM_CAP_ASYNC_PF: u32 = 59;
606 pub const KVM_CAP_TSC_CONTROL: u32 = 60;
607 pub const KVM_CAP_GET_TSC_KHZ: u32 = 61;
608 pub const KVM_CAP_PPC_BOOKE_SREGS: u32 = 62;
609 pub const KVM_CAP_SPAPR_TCE: u32 = 63;
610 pub const KVM_CAP_PPC_SMT: u32 = 64;
611 pub const KVM_CAP_PPC_RMA: u32 = 65;
612 pub const KVM_CAP_MAX_VCPUS: u32 = 66;
613 pub const KVM_CAP_PPC_HIOR: u32 = 67;
614 pub const KVM_CAP_PPC_PAPR: u32 = 68;
615 pub const KVM_CAP_SW_TLB: u32 = 69;
616 pub const KVM_CAP_ONE_REG: u32 = 70;
617 pub const KVM_CAP_S390_GMAP: u32 = 71;
618 pub const KVM_CAP_TSC_DEADLINE_TIMER: u32 = 72;
619 pub const KVM_CAP_S390_UCONTROL: u32 = 73;
620 pub const KVM_CAP_SYNC_REGS: u32 = 74;
621 pub const KVM_CAP_PCI_2_3: u32 = 75;
622 pub const KVM_CAP_KVMCLOCK_CTRL: u32 = 76;
623 pub const KVM_CAP_SIGNAL_MSI: u32 = 77;
624 pub const KVM_CAP_PPC_GET_SMMU_INFO: u32 = 78;
625 pub const KVM_CAP_S390_COW: u32 = 79;
626 pub const KVM_CAP_PPC_ALLOC_HTAB: u32 = 80;
627 pub const KVM_CAP_READONLY_MEM: u32 = 81;
628 pub const KVM_CAP_IRQFD_RESAMPLE: u32 = 82;
629 pub const KVM_CAP_PPC_BOOKE_WATCHDOG: u32 = 83;
630 pub const KVM_CAP_PPC_HTAB_FD: u32 = 84;
631 pub const KVM_CAP_S390_CSS_SUPPORT: u32 = 85;
632 pub const KVM_CAP_PPC_EPR: u32 = 86;
633 pub const KVM_CAP_ARM_PSCI: u32 = 87;
634 pub const KVM_CAP_ARM_SET_DEVICE_ADDR: u32 = 88;
635 pub const KVM_CAP_DEVICE_CTRL: u32 = 89;
636 pub const KVM_CAP_IRQ_MPIC: u32 = 90;
637 pub const KVM_CAP_PPC_RTAS: u32 = 91;
638 pub const KVM_CAP_IRQ_XICS: u32 = 92;
639 pub const KVM_CAP_ARM_EL1_32BIT: u32 = 93;
640 pub const KVM_CAP_SPAPR_MULTITCE: u32 = 94;
641 pub const KVM_CAP_EXT_EMUL_CPUID: u32 = 95;
642 pub const KVM_CAP_HYPERV_TIME: u32 = 96;
643 pub const KVM_CAP_IOAPIC_POLARITY_IGNORED: u32 = 97;
644 pub const KVM_CAP_ENABLE_CAP_VM: u32 = 98;
645 pub const KVM_CAP_S390_IRQCHIP: u32 = 99;
646 pub const KVM_CAP_IOEVENTFD_NO_LENGTH: u32 = 100;
647 pub const KVM_CAP_VM_ATTRIBUTES: u32 = 101;
648 pub const KVM_CAP_ARM_PSCI_0_2: u32 = 102;
649 pub const KVM_CAP_PPC_FIXUP_HCALL: u32 = 103;
650 pub const KVM_CAP_PPC_ENABLE_HCALL: u32 = 104;
651 pub const KVM_CAP_CHECK_EXTENSION_VM: u32 = 105;
652 pub const KVM_CAP_S390_USER_SIGP: u32 = 106;
653 pub const KVM_CAP_S390_VECTOR_REGISTERS: u32 = 107;
654 pub const KVM_CAP_S390_MEM_OP: u32 = 108;
655 pub const KVM_CAP_S390_USER_STSI: u32 = 109;
656 pub const KVM_CAP_S390_SKEYS: u32 = 110;
657 pub const KVM_CAP_MIPS_FPU: u32 = 111;
658 pub const KVM_CAP_MIPS_MSA: u32 = 112;
659 pub const KVM_CAP_S390_INJECT_IRQ: u32 = 113;
660 pub const KVM_CAP_S390_IRQ_STATE: u32 = 114;
661 pub const KVM_CAP_PPC_HWRNG: u32 = 115;
662 pub const KVM_CAP_DISABLE_QUIRKS: u32 = 116;
663 pub const KVM_CAP_X86_SMM: u32 = 117;
664 pub const KVM_CAP_MULTI_ADDRESS_SPACE: u32 = 118;
665 pub const KVM_CAP_GUEST_DEBUG_HW_BPS: u32 = 119;
666 pub const KVM_CAP_GUEST_DEBUG_HW_WPS: u32 = 120;
667 pub const KVM_CAP_SPLIT_IRQCHIP: u32 = 121;
668 pub const KVM_CAP_IOEVENTFD_ANY_LENGTH: u32 = 122;
669 pub const KVM_CAP_HYPERV_SYNIC: u32 = 123;
670 pub const KVM_CAP_S390_RI: u32 = 124;
671 pub const KVM_CAP_SPAPR_TCE_64: u32 = 125;
672 pub const KVM_CAP_ARM_PMU_V3: u32 = 126;
673 pub const KVM_CAP_VCPU_ATTRIBUTES: u32 = 127;
674 pub const KVM_CAP_MAX_VCPU_ID: u32 = 128;
675 pub const KVM_CAP_X2APIC_API: u32 = 129;
676 pub const KVM_CAP_S390_USER_INSTR0: u32 = 130;
677 pub const KVM_CAP_MSI_DEVID: u32 = 131;
678 pub const KVM_CAP_PPC_HTM: u32 = 132;
679 pub const KVM_CAP_SPAPR_RESIZE_HPT: u32 = 133;
680 pub const KVM_CAP_PPC_MMU_RADIX: u32 = 134;
681 pub const KVM_CAP_PPC_MMU_HASH_V3: u32 = 135;
682 pub const KVM_CAP_IMMEDIATE_EXIT: u32 = 136;
683 pub const KVM_CAP_MIPS_VZ: u32 = 137;
684 pub const KVM_CAP_MIPS_TE: u32 = 138;
685 pub const KVM_CAP_MIPS_64BIT: u32 = 139;
686 pub const KVM_CAP_S390_GS: u32 = 140;
687 pub const KVM_CAP_S390_AIS: u32 = 141;
688 pub const KVM_CAP_SPAPR_TCE_VFIO: u32 = 142;
689 pub const KVM_CAP_X86_DISABLE_EXITS: u32 = 143;
690 pub const KVM_CAP_ARM_USER_IRQ: u32 = 144;
691 pub const KVM_CAP_S390_CMMA_MIGRATION: u32 = 145;
692 pub const KVM_CAP_PPC_FWNMI: u32 = 146;
693 pub const KVM_CAP_PPC_SMT_POSSIBLE: u32 = 147;
694 pub const KVM_CAP_HYPERV_SYNIC2: u32 = 148;
695 pub const KVM_CAP_HYPERV_VP_INDEX: u32 = 149;
696 pub const KVM_CAP_S390_AIS_MIGRATION: u32 = 150;
697 pub const KVM_CAP_PPC_GET_CPU_CHAR: u32 = 151;
698 pub const KVM_CAP_S390_BPB: u32 = 152;
699 pub const KVM_CAP_GET_MSR_FEATURES: u32 = 153;
700 pub const KVM_CAP_HYPERV_EVENTFD: u32 = 154;
701 pub const KVM_CAP_HYPERV_TLBFLUSH: u32 = 155;
702 pub const KVM_CAP_S390_HPAGE_1M: u32 = 156;
703 pub const KVM_CAP_NESTED_STATE: u32 = 157;
704 pub const KVM_CAP_ARM_INJECT_SERROR_ESR: u32 = 158;
705 pub const KVM_CAP_MSR_PLATFORM_INFO: u32 = 159;
706 pub const KVM_CAP_PPC_NESTED_HV: u32 = 160;
707 pub const KVM_CAP_HYPERV_SEND_IPI: u32 = 161;
708 pub const KVM_CAP_COALESCED_PIO: u32 = 162;
709 pub const KVM_CAP_HYPERV_ENLIGHTENED_VMCS: u32 = 163;
710 pub const KVM_CAP_EXCEPTION_PAYLOAD: u32 = 164;
711 pub const KVM_CAP_ARM_VM_IPA_SIZE: u32 = 165;
712 pub const KVM_CAP_MANUAL_DIRTY_LOG_PROTECT: u32 = 166;
713 pub const KVM_CAP_HYPERV_CPUID: u32 = 167;
714 pub const KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2: u32 = 168;
715 pub const KVM_CAP_PPC_IRQ_XIVE: u32 = 169;
716 pub const KVM_CAP_ARM_SVE: u32 = 170;
717 pub const KVM_CAP_ARM_PTRAUTH_ADDRESS: u32 = 171;
718 pub const KVM_CAP_ARM_PTRAUTH_GENERIC: u32 = 172;
719 pub const KVM_CAP_PMU_EVENT_FILTER: u32 = 173;
720 pub const KVM_CAP_ARM_IRQ_LINE_LAYOUT_2: u32 = 174;
721 pub const KVM_CAP_HYPERV_DIRECT_TLBFLUSH: u32 = 175;
722 pub const KVM_CAP_PPC_GUEST_DEBUG_SSTEP: u32 = 176;
723 pub const KVM_CAP_ARM_NISV_TO_USER: u32 = 177;
724 pub const KVM_CAP_ARM_INJECT_EXT_DABT: u32 = 178;
725 pub const KVM_CAP_S390_VCPU_RESETS: u32 = 179;
726 pub const KVM_CAP_S390_PROTECTED: u32 = 180;
727 pub const KVM_CAP_PPC_SECURE_GUEST: u32 = 181;
728 pub const KVM_CAP_HALT_POLL: u32 = 182;
729 pub const KVM_CAP_ASYNC_PF_INT: u32 = 183;
730 pub const KVM_CAP_LAST_CPU: u32 = 184;
731 pub const KVM_CAP_SMALLER_MAXPHYADDR: u32 = 185;
732 pub const KVM_CAP_S390_DIAG318: u32 = 186;
733 pub const KVM_CAP_STEAL_TIME: u32 = 187;
734 pub const KVM_CAP_X86_USER_SPACE_MSR: u32 = 188;
735 pub const KVM_CAP_X86_MSR_FILTER: u32 = 189;
736 pub const KVM_CAP_ENFORCE_PV_FEATURE_CPUID: u32 = 190;
737 pub const KVM_CAP_SYS_HYPERV_CPUID: u32 = 191;
738 pub const KVM_CAP_DIRTY_LOG_RING: u32 = 192;
739 pub const KVM_CAP_X86_BUS_LOCK_EXIT: u32 = 193;
740 pub const KVM_CAP_PPC_DAWR1: u32 = 194;
741 pub const KVM_CAP_SET_GUEST_DEBUG2: u32 = 195;
742 pub const KVM_CAP_SGX_ATTRIBUTE: u32 = 196;
743 pub const KVM_CAP_VM_COPY_ENC_CONTEXT_FROM: u32 = 197;
744 pub const KVM_CAP_PTP_KVM: u32 = 198;
745 pub const KVM_CAP_HYPERV_ENFORCE_CPUID: u32 = 199;
746 pub const KVM_CAP_SREGS2: u32 = 200;
747 pub const KVM_CAP_EXIT_HYPERCALL: u32 = 201;
748 pub const KVM_CAP_PPC_RPT_INVALIDATE: u32 = 202;
749 pub const KVM_CAP_BINARY_STATS_FD: u32 = 203;
750 pub const KVM_CAP_EXIT_ON_EMULATION_FAILURE: u32 = 204;
751 pub const KVM_CAP_ARM_MTE: u32 = 205;
752 pub const KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM: u32 = 206;
753 pub const KVM_CAP_VM_GPA_BITS: u32 = 207;
754 pub const KVM_CAP_XSAVE2: u32 = 208;
755 pub const KVM_CAP_SYS_ATTRIBUTES: u32 = 209;
756 pub const KVM_CAP_PPC_AIL_MODE_3: u32 = 210;
757 pub const KVM_CAP_S390_MEM_OP_EXTENSION: u32 = 211;
758 pub const KVM_CAP_PMU_CAPABILITY: u32 = 212;
759 pub const KVM_CAP_DISABLE_QUIRKS2: u32 = 213;
760 pub const KVM_CAP_VM_TSC_CONTROL: u32 = 214;
761 pub const KVM_CAP_SYSTEM_EVENT_DATA: u32 = 215;
762 pub const KVM_CAP_ARM_SYSTEM_SUSPEND: u32 = 216;
763 pub const KVM_CAP_S390_PROTECTED_DUMP: u32 = 217;
764 pub const KVM_CAP_X86_TRIPLE_FAULT_EVENT: u32 = 218;
765 pub const KVM_CAP_X86_NOTIFY_VMEXIT: u32 = 219;
766 pub const KVM_CAP_VM_DISABLE_NX_HUGE_PAGES: u32 = 220;
767 pub const KVM_CAP_S390_ZPCI_OP: u32 = 221;
768 pub const KVM_CAP_S390_CPU_TOPOLOGY: u32 = 222;
769 pub const KVM_CAP_DIRTY_LOG_RING_ACQ_REL: u32 = 223;
770 pub const KVM_CAP_S390_PROTECTED_ASYNC_DISABLE: u32 = 224;
771 pub const KVM_CAP_DIRTY_LOG_RING_WITH_BITMAP: u32 = 225;
772 pub const KVM_CAP_PMU_EVENT_MASKED_EVENTS: u32 = 226;
773 pub const KVM_CAP_COUNTER_OFFSET: u32 = 227;
774 pub const KVM_CAP_ARM_EAGER_SPLIT_CHUNK_SIZE: u32 = 228;
775 pub const KVM_CAP_ARM_SUPPORTED_BLOCK_SIZES: u32 = 229;
776 pub const KVM_CAP_GET_CUR_CPUFREQ: u32 = 512;
777 pub const KVM_CAP_UTIL_HINT: u32 = 513;
778 pub const KVM_CAP_GET_CPUFREQ_TBL: u32 = 514;
779 pub const KVM_IRQ_ROUTING_IRQCHIP: u32 = 1;
780 pub const KVM_IRQ_ROUTING_MSI: u32 = 2;
781 pub const KVM_IRQ_ROUTING_S390_ADAPTER: u32 = 3;
782 pub const KVM_IRQ_ROUTING_HV_SINT: u32 = 4;
783 pub const KVM_IRQ_ROUTING_XEN_EVTCHN: u32 = 5;
784 pub const KVM_IRQFD_FLAG_DEASSIGN: u32 = 1;
785 pub const KVM_IRQFD_FLAG_RESAMPLE: u32 = 2;
786 pub const KVM_CLOCK_TSC_STABLE: u32 = 2;
787 pub const KVM_CLOCK_REALTIME: u32 = 4;
788 pub const KVM_CLOCK_HOST_TSC: u32 = 8;
789 pub const KVM_MMU_FSL_BOOKE_NOHV: u32 = 0;
790 pub const KVM_MMU_FSL_BOOKE_HV: u32 = 1;
791 pub const KVM_REG_ARCH_MASK: i64 = -72057594037927936;
792 pub const KVM_REG_GENERIC: u32 = 0;
793 pub const KVM_REG_PPC: u64 = 1152921504606846976;
794 pub const KVM_REG_X86: u64 = 2305843009213693952;
795 pub const KVM_REG_IA64: u64 = 3458764513820540928;
796 pub const KVM_REG_ARM: u64 = 4611686018427387904;
797 pub const KVM_REG_S390: u64 = 5764607523034234880;
798 pub const KVM_REG_ARM64: u64 = 6917529027641081856;
799 pub const KVM_REG_MIPS: u64 = 8070450532247928832;
800 pub const KVM_REG_RISCV: i64 = -9223372036854775808;
801 pub const KVM_REG_SIZE_SHIFT: u32 = 52;
802 pub const KVM_REG_SIZE_MASK: u64 = 67553994410557440;
803 pub const KVM_REG_SIZE_U8: u32 = 0;
804 pub const KVM_REG_SIZE_U16: u64 = 4503599627370496;
805 pub const KVM_REG_SIZE_U32: u64 = 9007199254740992;
806 pub const KVM_REG_SIZE_U64: u64 = 13510798882111488;
807 pub const KVM_REG_SIZE_U128: u64 = 18014398509481984;
808 pub const KVM_REG_SIZE_U256: u64 = 22517998136852480;
809 pub const KVM_REG_SIZE_U512: u64 = 27021597764222976;
810 pub const KVM_REG_SIZE_U1024: u64 = 31525197391593472;
811 pub const KVM_REG_SIZE_U2048: u64 = 36028797018963968;
812 pub const KVM_MSI_VALID_DEVID: u32 = 1;
813 pub const KVM_CREATE_DEVICE_TEST: u32 = 1;
814 pub const KVM_DEV_VFIO_FILE: u32 = 1;
815 pub const KVM_DEV_VFIO_FILE_ADD: u32 = 1;
816 pub const KVM_DEV_VFIO_FILE_DEL: u32 = 2;
817 pub const KVM_DEV_VFIO_GROUP: u32 = 1;
818 pub const KVM_DEV_VFIO_GROUP_ADD: u32 = 1;
819 pub const KVM_DEV_VFIO_GROUP_DEL: u32 = 2;
820 pub const KVM_DEV_VFIO_GROUP_SET_SPAPR_TCE: u32 = 3;
821 pub const KVM_S390_STORE_STATUS_NOADDR: i32 = -1;
822 pub const KVM_S390_STORE_STATUS_PREFIXED: i32 = -2;
823 pub const KVM_XEN_EVTCHN_DEASSIGN: u32 = 1;
824 pub const KVM_XEN_EVTCHN_UPDATE: u32 = 2;
825 pub const KVM_XEN_EVTCHN_RESET: u32 = 4;
826 pub const KVM_XEN_ATTR_TYPE_LONG_MODE: u32 = 0;
827 pub const KVM_XEN_ATTR_TYPE_SHARED_INFO: u32 = 1;
828 pub const KVM_XEN_ATTR_TYPE_UPCALL_VECTOR: u32 = 2;
829 pub const KVM_XEN_ATTR_TYPE_EVTCHN: u32 = 3;
830 pub const KVM_XEN_ATTR_TYPE_XEN_VERSION: u32 = 4;
831 pub const KVM_XEN_ATTR_TYPE_RUNSTATE_UPDATE_FLAG: u32 = 5;
832 pub const KVM_XEN_VCPU_ATTR_TYPE_VCPU_INFO: u32 = 0;
833 pub const KVM_XEN_VCPU_ATTR_TYPE_VCPU_TIME_INFO: u32 = 1;
834 pub const KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_ADDR: u32 = 2;
835 pub const KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_CURRENT: u32 = 3;
836 pub const KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_DATA: u32 = 4;
837 pub const KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_ADJUST: u32 = 5;
838 pub const KVM_XEN_VCPU_ATTR_TYPE_VCPU_ID: u32 = 6;
839 pub const KVM_XEN_VCPU_ATTR_TYPE_TIMER: u32 = 7;
840 pub const KVM_XEN_VCPU_ATTR_TYPE_UPCALL_VECTOR: u32 = 8;
841 pub const KVM_DEV_ASSIGN_ENABLE_IOMMU: u32 = 1;
842 pub const KVM_DEV_ASSIGN_PCI_2_3: u32 = 2;
843 pub const KVM_DEV_ASSIGN_MASK_INTX: u32 = 4;
844 pub const KVM_DEV_IRQ_HOST_INTX: u32 = 1;
845 pub const KVM_DEV_IRQ_HOST_MSI: u32 = 2;
846 pub const KVM_DEV_IRQ_HOST_MSIX: u32 = 4;
847 pub const KVM_DEV_IRQ_GUEST_INTX: u32 = 256;
848 pub const KVM_DEV_IRQ_GUEST_MSI: u32 = 512;
849 pub const KVM_DEV_IRQ_GUEST_MSIX: u32 = 1024;
850 pub const KVM_DEV_IRQ_HOST_MASK: u32 = 255;
851 pub const KVM_DEV_IRQ_GUEST_MASK: u32 = 65280;
852 pub const KVM_MAX_MSIX_PER_DEV: u32 = 256;
853 pub const KVM_X2APIC_API_USE_32BIT_IDS: u32 = 1;
854 pub const KVM_X2APIC_API_DISABLE_BROADCAST_QUIRK: u32 = 2;
855 pub const KVM_ARM_DEV_EL1_VTIMER: u32 = 1;
856 pub const KVM_ARM_DEV_EL1_PTIMER: u32 = 2;
857 pub const KVM_ARM_DEV_PMU: u32 = 4;
858 pub const KVM_HYPERV_CONN_ID_MASK: u32 = 16777215;
859 pub const KVM_HYPERV_EVENTFD_DEASSIGN: u32 = 1;
860 pub const KVM_DIRTY_LOG_MANUAL_PROTECT_ENABLE: u32 = 1;
861 pub const KVM_DIRTY_LOG_INITIALLY_SET: u32 = 2;
862 pub const KVM_DIRTY_GFN_F_MASK: u32 = 3;
863 pub const KVM_BUS_LOCK_DETECTION_OFF: u32 = 1;
864 pub const KVM_BUS_LOCK_DETECTION_EXIT: u32 = 2;
865 pub const KVM_PMU_CAP_DISABLE: u32 = 1;
866 pub const KVM_STATS_TYPE_SHIFT: u32 = 0;
867 pub const KVM_STATS_TYPE_MASK: u32 = 15;
868 pub const KVM_STATS_TYPE_CUMULATIVE: u32 = 0;
869 pub const KVM_STATS_TYPE_INSTANT: u32 = 1;
870 pub const KVM_STATS_TYPE_PEAK: u32 = 2;
871 pub const KVM_STATS_TYPE_LINEAR_HIST: u32 = 3;
872 pub const KVM_STATS_TYPE_LOG_HIST: u32 = 4;
873 pub const KVM_STATS_TYPE_MAX: u32 = 4;
874 pub const KVM_STATS_UNIT_SHIFT: u32 = 4;
875 pub const KVM_STATS_UNIT_MASK: u32 = 240;
876 pub const KVM_STATS_UNIT_NONE: u32 = 0;
877 pub const KVM_STATS_UNIT_BYTES: u32 = 16;
878 pub const KVM_STATS_UNIT_SECONDS: u32 = 32;
879 pub const KVM_STATS_UNIT_CYCLES: u32 = 48;
880 pub const KVM_STATS_UNIT_BOOLEAN: u32 = 64;
881 pub const KVM_STATS_UNIT_MAX: u32 = 64;
882 pub const KVM_STATS_BASE_SHIFT: u32 = 8;
883 pub const KVM_STATS_BASE_MASK: u32 = 3840;
884 pub const KVM_STATS_BASE_POW10: u32 = 0;
885 pub const KVM_STATS_BASE_POW2: u32 = 256;
886 pub const KVM_STATS_BASE_MAX: u32 = 256;
887 pub const KVM_X86_NOTIFY_VMEXIT_ENABLED: u32 = 1;
888 pub const KVM_X86_NOTIFY_VMEXIT_USER: u32 = 2;
889 pub const KVM_S390_ZPCIOP_REG_AEN: u32 = 0;
890 pub const KVM_S390_ZPCIOP_DEREG_AEN: u32 = 1;
891 pub const KVM_S390_ZPCIOP_REGAEN_HOST: u32 = 1;
892 pub type __s128 = i128;
893 pub type __u128 = u128;
894 pub type __le16 = u16;
895 pub type __be16 = u16;
896 pub type __le32 = u32;
897 pub type __be32 = u32;
898 pub type __le64 = u64;
899 pub type __be64 = u64;
900 pub type __sum16 = u16;
901 pub type __wsum = u32;
902 pub type __poll_t = ::std::os::raw::c_uint;
903 #[repr(C)]
904 #[derive(Debug, Default, Copy, Clone, FromZeroes, FromBytes, AsBytes)]
905 pub struct user_pt_regs {
906     pub regs: [u64; 31usize],
907     pub sp: u64,
908     pub pc: u64,
909     pub pstate: u64,
910 }
911 #[repr(C)]
912 #[repr(align(16))]
913 #[derive(Debug, Default, Copy, Clone, FromZeroes, FromBytes, AsBytes)]
914 pub struct user_fpsimd_state {
915     pub vregs: [__uint128_t; 32usize],
916     pub fpsr: u32,
917     pub fpcr: u32,
918     pub __reserved: [u32; 2usize],
919 }
920 #[repr(C)]
921 #[derive(Debug, Default, Copy, Clone)]
922 pub struct user_hwdebug_state {
923     pub dbg_info: u32,
924     pub pad: u32,
925     pub dbg_regs: [user_hwdebug_state__bindgen_ty_1; 16usize],
926 }
927 #[repr(C)]
928 #[derive(Debug, Default, Copy, Clone)]
929 pub struct user_hwdebug_state__bindgen_ty_1 {
930     pub addr: u64,
931     pub ctrl: u32,
932     pub pad: u32,
933 }
934 #[repr(C)]
935 #[derive(Debug, Default, Copy, Clone)]
936 pub struct user_sve_header {
937     pub size: u32,
938     pub max_size: u32,
939     pub vl: u16,
940     pub max_vl: u16,
941     pub flags: u16,
942     pub __reserved: u16,
943 }
944 #[repr(C)]
945 #[derive(Debug, Default, Copy, Clone)]
946 pub struct user_pac_mask {
947     pub data_mask: u64,
948     pub insn_mask: u64,
949 }
950 #[repr(C)]
951 #[repr(align(16))]
952 #[derive(Debug, Default, Copy, Clone)]
953 pub struct user_pac_address_keys {
954     pub apiakey: __uint128_t,
955     pub apibkey: __uint128_t,
956     pub apdakey: __uint128_t,
957     pub apdbkey: __uint128_t,
958 }
959 #[repr(C)]
960 #[repr(align(16))]
961 #[derive(Debug, Default, Copy, Clone)]
962 pub struct user_pac_generic_keys {
963     pub apgakey: __uint128_t,
964 }
965 #[repr(C)]
966 #[derive(Debug, Default, Copy, Clone)]
967 pub struct user_za_header {
968     pub size: u32,
969     pub max_size: u32,
970     pub vl: u16,
971     pub max_vl: u16,
972     pub flags: u16,
973     pub __reserved: u16,
974 }
975 #[repr(C)]
976 #[repr(align(16))]
977 #[derive(Debug, Default, Copy, Clone, FromZeroes, FromBytes, AsBytes)]
978 pub struct kvm_regs {
979     pub regs: user_pt_regs,
980     pub sp_el1: u64,
981     pub elr_el1: u64,
982     pub spsr: [u64; 5usize],
983     pub __bindgen_padding_0: u64,
984     pub fp_regs: user_fpsimd_state,
985 }
986 #[repr(C)]
987 #[derive(Debug, Default, Copy, Clone)]
988 pub struct kvm_vcpu_init {
989     pub target: u32,
990     pub features: [u32; 7usize],
991 }
992 #[repr(C)]
993 #[derive(Debug, Default, Copy, Clone, FromZeroes, FromBytes, AsBytes)]
994 pub struct kvm_sregs {}
995 #[repr(C)]
996 #[derive(Debug, Default, Copy, Clone, FromZeroes, FromBytes, AsBytes)]
997 pub struct kvm_fpu {}
998 #[repr(C)]
999 #[derive(Debug, Default, Copy, Clone)]
1000 pub struct kvm_guest_debug_arch {
1001     pub dbg_bcr: [u64; 16usize],
1002     pub dbg_bvr: [u64; 16usize],
1003     pub dbg_wcr: [u64; 16usize],
1004     pub dbg_wvr: [u64; 16usize],
1005 }
1006 #[repr(C)]
1007 #[derive(Debug, Default, Copy, Clone)]
1008 pub struct kvm_debug_exit_arch {
1009     pub hsr: u32,
1010     pub hsr_high: u32,
1011     pub far: u64,
1012 }
1013 #[repr(C)]
1014 #[derive(Debug, Default, Copy, Clone)]
1015 pub struct kvm_sync_regs {
1016     pub device_irq_level: u64,
1017 }
1018 #[repr(C)]
1019 #[derive(Debug, Default, Copy, Clone)]
1020 pub struct kvm_pmu_event_filter {
1021     pub base_event: u16,
1022     pub nevents: u16,
1023     pub action: u8,
1024     pub pad: [u8; 3usize],
1025 }
1026 #[repr(C)]
1027 #[derive(Debug, Default, Copy, Clone, FromZeroes, FromBytes, AsBytes)]
1028 pub struct kvm_vcpu_events {
1029     pub exception: kvm_vcpu_events__bindgen_ty_1,
1030     pub reserved: [u32; 12usize],
1031 }
1032 #[repr(C)]
1033 #[derive(Debug, Default, Copy, Clone, FromZeroes, FromBytes, AsBytes)]
1034 pub struct kvm_vcpu_events__bindgen_ty_1 {
1035     pub serror_pending: u8,
1036     pub serror_has_esr: u8,
1037     pub ext_dabt_pending: u8,
1038     pub pad: [u8; 5usize],
1039     pub serror_esr: u64,
1040 }
1041 #[repr(C)]
1042 #[derive(Debug, Copy, Clone)]
1043 pub struct kvm_arm_copy_mte_tags {
1044     pub guest_ipa: u64,
1045     pub length: u64,
1046     pub addr: *mut ::std::os::raw::c_void,
1047     pub flags: u64,
1048     pub reserved: [u64; 2usize],
1049 }
1050 impl Default for kvm_arm_copy_mte_tags {
default() -> Self1051     fn default() -> Self {
1052         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1053         unsafe {
1054             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1055             s.assume_init()
1056         }
1057     }
1058 }
1059 #[repr(C)]
1060 #[derive(Debug, Default, Copy, Clone)]
1061 pub struct kvm_arm_counter_offset {
1062     pub counter_offset: u64,
1063     pub reserved: u64,
1064 }
1065 pub const KVM_REG_ARM_STD_BIT_TRNG_V1_0: _bindgen_ty_1 = 0;
1066 pub type _bindgen_ty_1 = ::std::os::raw::c_uint;
1067 pub const KVM_REG_ARM_STD_HYP_BIT_PV_TIME: _bindgen_ty_2 = 0;
1068 pub type _bindgen_ty_2 = ::std::os::raw::c_uint;
1069 pub const KVM_REG_ARM_VENDOR_HYP_BIT_FUNC_FEAT: _bindgen_ty_3 = 0;
1070 pub const KVM_REG_ARM_VENDOR_HYP_BIT_PTP: _bindgen_ty_3 = 1;
1071 pub type _bindgen_ty_3 = ::std::os::raw::c_uint;
1072 pub const kvm_smccc_filter_action_KVM_SMCCC_FILTER_HANDLE: kvm_smccc_filter_action = 0;
1073 pub const kvm_smccc_filter_action_KVM_SMCCC_FILTER_DENY: kvm_smccc_filter_action = 1;
1074 pub const kvm_smccc_filter_action_KVM_SMCCC_FILTER_FWD_TO_USER: kvm_smccc_filter_action = 2;
1075 pub type kvm_smccc_filter_action = ::std::os::raw::c_uint;
1076 #[repr(C)]
1077 #[derive(Debug, Default, Copy, Clone)]
1078 pub struct kvm_smccc_filter {
1079     pub base: u32,
1080     pub nr_functions: u32,
1081     pub action: u8,
1082     pub pad: [u8; 15usize],
1083 }
1084 #[repr(C)]
1085 #[derive(Debug, Default, Copy, Clone)]
1086 pub struct kvm_user_trace_setup {
1087     pub buf_size: u32,
1088     pub buf_nr: u32,
1089 }
1090 #[repr(C)]
1091 #[derive(Debug, Default, Copy, Clone)]
1092 pub struct kvm_breakpoint {
1093     pub enabled: u32,
1094     pub padding: u32,
1095     pub address: u64,
1096 }
1097 #[repr(C)]
1098 #[derive(Debug, Default, Copy, Clone)]
1099 pub struct kvm_debug_guest {
1100     pub enabled: u32,
1101     pub pad: u32,
1102     pub breakpoints: [kvm_breakpoint; 4usize],
1103     pub singlestep: u32,
1104 }
1105 #[repr(C)]
1106 #[derive(Debug, Default, Copy, Clone)]
1107 pub struct kvm_userspace_memory_region {
1108     pub slot: u32,
1109     pub flags: u32,
1110     pub guest_phys_addr: u64,
1111     pub memory_size: u64,
1112     pub userspace_addr: u64,
1113 }
1114 #[repr(C)]
1115 #[derive(Copy, Clone)]
1116 pub struct kvm_irq_level {
1117     pub __bindgen_anon_1: kvm_irq_level__bindgen_ty_1,
1118     pub level: u32,
1119 }
1120 #[repr(C)]
1121 #[derive(Copy, Clone)]
1122 pub union kvm_irq_level__bindgen_ty_1 {
1123     pub irq: u32,
1124     pub status: i32,
1125 }
1126 impl Default for kvm_irq_level__bindgen_ty_1 {
default() -> Self1127     fn default() -> Self {
1128         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1129         unsafe {
1130             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1131             s.assume_init()
1132         }
1133     }
1134 }
1135 impl Default for kvm_irq_level {
default() -> Self1136     fn default() -> Self {
1137         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1138         unsafe {
1139             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1140             s.assume_init()
1141         }
1142     }
1143 }
1144 #[repr(C)]
1145 #[derive(Copy, Clone)]
1146 pub struct kvm_irqchip {
1147     pub chip_id: u32,
1148     pub pad: u32,
1149     pub chip: kvm_irqchip__bindgen_ty_1,
1150 }
1151 #[repr(C)]
1152 #[derive(Copy, Clone)]
1153 pub union kvm_irqchip__bindgen_ty_1 {
1154     pub dummy: [::std::os::raw::c_char; 512usize],
1155 }
1156 impl Default for kvm_irqchip__bindgen_ty_1 {
default() -> Self1157     fn default() -> Self {
1158         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1159         unsafe {
1160             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1161             s.assume_init()
1162         }
1163     }
1164 }
1165 impl Default for kvm_irqchip {
default() -> Self1166     fn default() -> Self {
1167         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1168         unsafe {
1169             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1170             s.assume_init()
1171         }
1172     }
1173 }
1174 #[repr(C)]
1175 #[derive(Debug, Default, Copy, Clone)]
1176 pub struct kvm_pit_config {
1177     pub flags: u32,
1178     pub pad: [u32; 15usize],
1179 }
1180 #[repr(C)]
1181 #[derive(Debug, Default, Copy, Clone)]
1182 pub struct kvm_s390_skeys {
1183     pub start_gfn: u64,
1184     pub count: u64,
1185     pub skeydata_addr: u64,
1186     pub flags: u32,
1187     pub reserved: [u32; 9usize],
1188 }
1189 #[repr(C)]
1190 #[derive(Copy, Clone)]
1191 pub struct kvm_s390_cmma_log {
1192     pub start_gfn: u64,
1193     pub count: u32,
1194     pub flags: u32,
1195     pub __bindgen_anon_1: kvm_s390_cmma_log__bindgen_ty_1,
1196     pub values: u64,
1197 }
1198 #[repr(C)]
1199 #[derive(Copy, Clone)]
1200 pub union kvm_s390_cmma_log__bindgen_ty_1 {
1201     pub remaining: u64,
1202     pub mask: u64,
1203 }
1204 impl Default for kvm_s390_cmma_log__bindgen_ty_1 {
default() -> Self1205     fn default() -> Self {
1206         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1207         unsafe {
1208             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1209             s.assume_init()
1210         }
1211     }
1212 }
1213 impl Default for kvm_s390_cmma_log {
default() -> Self1214     fn default() -> Self {
1215         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1216         unsafe {
1217             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1218             s.assume_init()
1219         }
1220     }
1221 }
1222 #[repr(C)]
1223 #[derive(Copy, Clone)]
1224 pub struct kvm_hyperv_exit {
1225     pub type_: u32,
1226     pub pad1: u32,
1227     pub u: kvm_hyperv_exit__bindgen_ty_1,
1228 }
1229 #[repr(C)]
1230 #[derive(Copy, Clone)]
1231 pub union kvm_hyperv_exit__bindgen_ty_1 {
1232     pub synic: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1,
1233     pub hcall: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_2,
1234     pub syndbg: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3,
1235 }
1236 #[repr(C)]
1237 #[derive(Debug, Default, Copy, Clone)]
1238 pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1 {
1239     pub msr: u32,
1240     pub pad2: u32,
1241     pub control: u64,
1242     pub evt_page: u64,
1243     pub msg_page: u64,
1244 }
1245 #[repr(C)]
1246 #[derive(Debug, Default, Copy, Clone)]
1247 pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_2 {
1248     pub input: u64,
1249     pub result: u64,
1250     pub params: [u64; 2usize],
1251 }
1252 #[repr(C)]
1253 #[derive(Debug, Default, Copy, Clone)]
1254 pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3 {
1255     pub msr: u32,
1256     pub pad2: u32,
1257     pub control: u64,
1258     pub status: u64,
1259     pub send_page: u64,
1260     pub recv_page: u64,
1261     pub pending_page: u64,
1262 }
1263 impl Default for kvm_hyperv_exit__bindgen_ty_1 {
default() -> Self1264     fn default() -> Self {
1265         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1266         unsafe {
1267             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1268             s.assume_init()
1269         }
1270     }
1271 }
1272 impl Default for kvm_hyperv_exit {
default() -> Self1273     fn default() -> Self {
1274         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1275         unsafe {
1276             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1277             s.assume_init()
1278         }
1279     }
1280 }
1281 #[repr(C)]
1282 #[derive(Copy, Clone)]
1283 pub struct kvm_xen_exit {
1284     pub type_: u32,
1285     pub u: kvm_xen_exit__bindgen_ty_1,
1286 }
1287 #[repr(C)]
1288 #[derive(Copy, Clone)]
1289 pub union kvm_xen_exit__bindgen_ty_1 {
1290     pub hcall: kvm_xen_exit__bindgen_ty_1__bindgen_ty_1,
1291 }
1292 #[repr(C)]
1293 #[derive(Debug, Default, Copy, Clone)]
1294 pub struct kvm_xen_exit__bindgen_ty_1__bindgen_ty_1 {
1295     pub longmode: u32,
1296     pub cpl: u32,
1297     pub input: u64,
1298     pub result: u64,
1299     pub params: [u64; 6usize],
1300 }
1301 impl Default for kvm_xen_exit__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_xen_exit {
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(Copy, Clone)]
1321 pub struct kvm_run {
1322     pub request_interrupt_window: u8,
1323     pub immediate_exit: u8,
1324     pub padding1: [u8; 6usize],
1325     pub exit_reason: u32,
1326     pub ready_for_interrupt_injection: u8,
1327     pub if_flag: u8,
1328     pub flags: u16,
1329     pub cr8: u64,
1330     pub apic_base: u64,
1331     pub __bindgen_anon_1: kvm_run__bindgen_ty_1,
1332     pub kvm_valid_regs: u64,
1333     pub kvm_dirty_regs: u64,
1334     pub s: kvm_run__bindgen_ty_2,
1335 }
1336 #[repr(C)]
1337 #[derive(Copy, Clone)]
1338 pub union kvm_run__bindgen_ty_1 {
1339     pub hw: kvm_run__bindgen_ty_1__bindgen_ty_1,
1340     pub fail_entry: kvm_run__bindgen_ty_1__bindgen_ty_2,
1341     pub ex: kvm_run__bindgen_ty_1__bindgen_ty_3,
1342     pub io: kvm_run__bindgen_ty_1__bindgen_ty_4,
1343     pub debug: kvm_run__bindgen_ty_1__bindgen_ty_5,
1344     pub mmio: kvm_run__bindgen_ty_1__bindgen_ty_6,
1345     pub hypercall: kvm_run__bindgen_ty_1__bindgen_ty_7,
1346     pub tpr_access: kvm_run__bindgen_ty_1__bindgen_ty_8,
1347     pub s390_sieic: kvm_run__bindgen_ty_1__bindgen_ty_9,
1348     pub s390_reset_flags: u64,
1349     pub s390_ucontrol: kvm_run__bindgen_ty_1__bindgen_ty_10,
1350     pub dcr: kvm_run__bindgen_ty_1__bindgen_ty_11,
1351     pub internal: kvm_run__bindgen_ty_1__bindgen_ty_12,
1352     pub emulation_failure: kvm_run__bindgen_ty_1__bindgen_ty_13,
1353     pub osi: kvm_run__bindgen_ty_1__bindgen_ty_14,
1354     pub papr_hcall: kvm_run__bindgen_ty_1__bindgen_ty_15,
1355     pub s390_tsch: kvm_run__bindgen_ty_1__bindgen_ty_16,
1356     pub epr: kvm_run__bindgen_ty_1__bindgen_ty_17,
1357     pub system_event: kvm_run__bindgen_ty_1__bindgen_ty_18,
1358     pub s390_stsi: kvm_run__bindgen_ty_1__bindgen_ty_19,
1359     pub eoi: kvm_run__bindgen_ty_1__bindgen_ty_20,
1360     pub hyperv: kvm_hyperv_exit,
1361     pub arm_nisv: kvm_run__bindgen_ty_1__bindgen_ty_21,
1362     pub msr: kvm_run__bindgen_ty_1__bindgen_ty_22,
1363     pub xen: kvm_xen_exit,
1364     pub riscv_sbi: kvm_run__bindgen_ty_1__bindgen_ty_23,
1365     pub riscv_csr: kvm_run__bindgen_ty_1__bindgen_ty_24,
1366     pub notify: kvm_run__bindgen_ty_1__bindgen_ty_25,
1367     pub padding: [::std::os::raw::c_char; 256usize],
1368 }
1369 #[repr(C)]
1370 #[derive(Debug, Default, Copy, Clone)]
1371 pub struct kvm_run__bindgen_ty_1__bindgen_ty_1 {
1372     pub hardware_exit_reason: u64,
1373 }
1374 #[repr(C)]
1375 #[derive(Debug, Default, Copy, Clone)]
1376 pub struct kvm_run__bindgen_ty_1__bindgen_ty_2 {
1377     pub hardware_entry_failure_reason: u64,
1378     pub cpu: u32,
1379 }
1380 #[repr(C)]
1381 #[derive(Debug, Default, Copy, Clone)]
1382 pub struct kvm_run__bindgen_ty_1__bindgen_ty_3 {
1383     pub exception: u32,
1384     pub error_code: u32,
1385 }
1386 #[repr(C)]
1387 #[derive(Debug, Default, Copy, Clone)]
1388 pub struct kvm_run__bindgen_ty_1__bindgen_ty_4 {
1389     pub direction: u8,
1390     pub size: u8,
1391     pub port: u16,
1392     pub count: u32,
1393     pub data_offset: u64,
1394 }
1395 #[repr(C)]
1396 #[derive(Debug, Default, Copy, Clone)]
1397 pub struct kvm_run__bindgen_ty_1__bindgen_ty_5 {
1398     pub arch: kvm_debug_exit_arch,
1399 }
1400 #[repr(C)]
1401 #[derive(Debug, Default, Copy, Clone)]
1402 pub struct kvm_run__bindgen_ty_1__bindgen_ty_6 {
1403     pub phys_addr: u64,
1404     pub data: [u8; 8usize],
1405     pub len: u32,
1406     pub is_write: u8,
1407 }
1408 #[repr(C)]
1409 #[derive(Copy, Clone)]
1410 pub struct kvm_run__bindgen_ty_1__bindgen_ty_7 {
1411     pub nr: u64,
1412     pub args: [u64; 6usize],
1413     pub ret: u64,
1414     pub __bindgen_anon_1: kvm_run__bindgen_ty_1__bindgen_ty_7__bindgen_ty_1,
1415 }
1416 #[repr(C)]
1417 #[derive(Copy, Clone)]
1418 pub union kvm_run__bindgen_ty_1__bindgen_ty_7__bindgen_ty_1 {
1419     pub longmode: u32,
1420     pub flags: u64,
1421 }
1422 impl Default for kvm_run__bindgen_ty_1__bindgen_ty_7__bindgen_ty_1 {
default() -> Self1423     fn default() -> Self {
1424         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1425         unsafe {
1426             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1427             s.assume_init()
1428         }
1429     }
1430 }
1431 impl Default for kvm_run__bindgen_ty_1__bindgen_ty_7 {
default() -> Self1432     fn default() -> Self {
1433         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1434         unsafe {
1435             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1436             s.assume_init()
1437         }
1438     }
1439 }
1440 #[repr(C)]
1441 #[derive(Debug, Default, Copy, Clone)]
1442 pub struct kvm_run__bindgen_ty_1__bindgen_ty_8 {
1443     pub rip: u64,
1444     pub is_write: u32,
1445     pub pad: u32,
1446 }
1447 #[repr(C)]
1448 #[derive(Debug, Default, Copy, Clone)]
1449 pub struct kvm_run__bindgen_ty_1__bindgen_ty_9 {
1450     pub icptcode: u8,
1451     pub ipa: u16,
1452     pub ipb: u32,
1453 }
1454 #[repr(C)]
1455 #[derive(Debug, Default, Copy, Clone)]
1456 pub struct kvm_run__bindgen_ty_1__bindgen_ty_10 {
1457     pub trans_exc_code: u64,
1458     pub pgm_code: u32,
1459 }
1460 #[repr(C)]
1461 #[derive(Debug, Default, Copy, Clone)]
1462 pub struct kvm_run__bindgen_ty_1__bindgen_ty_11 {
1463     pub dcrn: u32,
1464     pub data: u32,
1465     pub is_write: u8,
1466 }
1467 #[repr(C)]
1468 #[derive(Debug, Default, Copy, Clone)]
1469 pub struct kvm_run__bindgen_ty_1__bindgen_ty_12 {
1470     pub suberror: u32,
1471     pub ndata: u32,
1472     pub data: [u64; 16usize],
1473 }
1474 #[repr(C)]
1475 #[derive(Copy, Clone)]
1476 pub struct kvm_run__bindgen_ty_1__bindgen_ty_13 {
1477     pub suberror: u32,
1478     pub ndata: u32,
1479     pub flags: u64,
1480     pub __bindgen_anon_1: kvm_run__bindgen_ty_1__bindgen_ty_13__bindgen_ty_1,
1481 }
1482 #[repr(C)]
1483 #[derive(Copy, Clone)]
1484 pub union kvm_run__bindgen_ty_1__bindgen_ty_13__bindgen_ty_1 {
1485     pub __bindgen_anon_1: kvm_run__bindgen_ty_1__bindgen_ty_13__bindgen_ty_1__bindgen_ty_1,
1486 }
1487 #[repr(C)]
1488 #[derive(Debug, Default, Copy, Clone)]
1489 pub struct kvm_run__bindgen_ty_1__bindgen_ty_13__bindgen_ty_1__bindgen_ty_1 {
1490     pub insn_size: u8,
1491     pub insn_bytes: [u8; 15usize],
1492 }
1493 impl Default for kvm_run__bindgen_ty_1__bindgen_ty_13__bindgen_ty_1 {
default() -> Self1494     fn default() -> Self {
1495         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1496         unsafe {
1497             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1498             s.assume_init()
1499         }
1500     }
1501 }
1502 impl Default for kvm_run__bindgen_ty_1__bindgen_ty_13 {
default() -> Self1503     fn default() -> Self {
1504         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1505         unsafe {
1506             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1507             s.assume_init()
1508         }
1509     }
1510 }
1511 #[repr(C)]
1512 #[derive(Debug, Default, Copy, Clone)]
1513 pub struct kvm_run__bindgen_ty_1__bindgen_ty_14 {
1514     pub gprs: [u64; 32usize],
1515 }
1516 #[repr(C)]
1517 #[derive(Debug, Default, Copy, Clone)]
1518 pub struct kvm_run__bindgen_ty_1__bindgen_ty_15 {
1519     pub nr: u64,
1520     pub ret: u64,
1521     pub args: [u64; 9usize],
1522 }
1523 #[repr(C)]
1524 #[derive(Debug, Default, Copy, Clone)]
1525 pub struct kvm_run__bindgen_ty_1__bindgen_ty_16 {
1526     pub subchannel_id: u16,
1527     pub subchannel_nr: u16,
1528     pub io_int_parm: u32,
1529     pub io_int_word: u32,
1530     pub ipb: u32,
1531     pub dequeued: u8,
1532 }
1533 #[repr(C)]
1534 #[derive(Debug, Default, Copy, Clone)]
1535 pub struct kvm_run__bindgen_ty_1__bindgen_ty_17 {
1536     pub epr: u32,
1537 }
1538 #[repr(C)]
1539 #[derive(Copy, Clone)]
1540 pub struct kvm_run__bindgen_ty_1__bindgen_ty_18 {
1541     pub type_: u32,
1542     pub ndata: u32,
1543     pub __bindgen_anon_1: kvm_run__bindgen_ty_1__bindgen_ty_18__bindgen_ty_1,
1544 }
1545 #[repr(C)]
1546 #[derive(Copy, Clone)]
1547 pub union kvm_run__bindgen_ty_1__bindgen_ty_18__bindgen_ty_1 {
1548     pub flags: u64,
1549     pub data: [u64; 16usize],
1550 }
1551 impl Default for kvm_run__bindgen_ty_1__bindgen_ty_18__bindgen_ty_1 {
default() -> Self1552     fn default() -> Self {
1553         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1554         unsafe {
1555             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1556             s.assume_init()
1557         }
1558     }
1559 }
1560 impl Default for kvm_run__bindgen_ty_1__bindgen_ty_18 {
default() -> Self1561     fn default() -> Self {
1562         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1563         unsafe {
1564             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1565             s.assume_init()
1566         }
1567     }
1568 }
1569 #[repr(C)]
1570 #[derive(Debug, Default, Copy, Clone)]
1571 pub struct kvm_run__bindgen_ty_1__bindgen_ty_19 {
1572     pub addr: u64,
1573     pub ar: u8,
1574     pub reserved: u8,
1575     pub fc: u8,
1576     pub sel1: u8,
1577     pub sel2: u16,
1578 }
1579 #[repr(C)]
1580 #[derive(Debug, Default, Copy, Clone)]
1581 pub struct kvm_run__bindgen_ty_1__bindgen_ty_20 {
1582     pub vector: u8,
1583 }
1584 #[repr(C)]
1585 #[derive(Debug, Default, Copy, Clone)]
1586 pub struct kvm_run__bindgen_ty_1__bindgen_ty_21 {
1587     pub esr_iss: u64,
1588     pub fault_ipa: u64,
1589 }
1590 #[repr(C)]
1591 #[derive(Debug, Default, Copy, Clone)]
1592 pub struct kvm_run__bindgen_ty_1__bindgen_ty_22 {
1593     pub error: u8,
1594     pub pad: [u8; 7usize],
1595     pub reason: u32,
1596     pub index: u32,
1597     pub data: u64,
1598 }
1599 #[repr(C)]
1600 #[derive(Debug, Default, Copy, Clone)]
1601 pub struct kvm_run__bindgen_ty_1__bindgen_ty_23 {
1602     pub extension_id: ::std::os::raw::c_ulong,
1603     pub function_id: ::std::os::raw::c_ulong,
1604     pub args: [::std::os::raw::c_ulong; 6usize],
1605     pub ret: [::std::os::raw::c_ulong; 2usize],
1606 }
1607 #[repr(C)]
1608 #[derive(Debug, Default, Copy, Clone)]
1609 pub struct kvm_run__bindgen_ty_1__bindgen_ty_24 {
1610     pub csr_num: ::std::os::raw::c_ulong,
1611     pub new_value: ::std::os::raw::c_ulong,
1612     pub write_mask: ::std::os::raw::c_ulong,
1613     pub ret_value: ::std::os::raw::c_ulong,
1614 }
1615 #[repr(C)]
1616 #[derive(Debug, Default, Copy, Clone)]
1617 pub struct kvm_run__bindgen_ty_1__bindgen_ty_25 {
1618     pub flags: u32,
1619 }
1620 impl Default for kvm_run__bindgen_ty_1 {
default() -> Self1621     fn default() -> Self {
1622         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1623         unsafe {
1624             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1625             s.assume_init()
1626         }
1627     }
1628 }
1629 #[repr(C)]
1630 #[derive(Copy, Clone)]
1631 pub union kvm_run__bindgen_ty_2 {
1632     pub regs: kvm_sync_regs,
1633     pub padding: [::std::os::raw::c_char; 2048usize],
1634 }
1635 impl Default for kvm_run__bindgen_ty_2 {
default() -> Self1636     fn default() -> Self {
1637         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1638         unsafe {
1639             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1640             s.assume_init()
1641         }
1642     }
1643 }
1644 impl Default for kvm_run {
default() -> Self1645     fn default() -> Self {
1646         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1647         unsafe {
1648             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1649             s.assume_init()
1650         }
1651     }
1652 }
1653 #[repr(C)]
1654 #[derive(Copy, Clone)]
1655 pub struct kvm_coalesced_mmio_zone {
1656     pub addr: u64,
1657     pub size: u32,
1658     pub __bindgen_anon_1: kvm_coalesced_mmio_zone__bindgen_ty_1,
1659 }
1660 #[repr(C)]
1661 #[derive(Copy, Clone)]
1662 pub union kvm_coalesced_mmio_zone__bindgen_ty_1 {
1663     pub pad: u32,
1664     pub pio: u32,
1665 }
1666 impl Default for kvm_coalesced_mmio_zone__bindgen_ty_1 {
default() -> Self1667     fn default() -> Self {
1668         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1669         unsafe {
1670             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1671             s.assume_init()
1672         }
1673     }
1674 }
1675 impl Default for kvm_coalesced_mmio_zone {
default() -> Self1676     fn default() -> Self {
1677         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1678         unsafe {
1679             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1680             s.assume_init()
1681         }
1682     }
1683 }
1684 #[repr(C)]
1685 #[derive(Copy, Clone)]
1686 pub struct kvm_coalesced_mmio {
1687     pub phys_addr: u64,
1688     pub len: u32,
1689     pub __bindgen_anon_1: kvm_coalesced_mmio__bindgen_ty_1,
1690     pub data: [u8; 8usize],
1691 }
1692 #[repr(C)]
1693 #[derive(Copy, Clone)]
1694 pub union kvm_coalesced_mmio__bindgen_ty_1 {
1695     pub pad: u32,
1696     pub pio: u32,
1697 }
1698 impl Default for kvm_coalesced_mmio__bindgen_ty_1 {
default() -> Self1699     fn default() -> Self {
1700         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1701         unsafe {
1702             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1703             s.assume_init()
1704         }
1705     }
1706 }
1707 impl Default for kvm_coalesced_mmio {
default() -> Self1708     fn default() -> Self {
1709         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1710         unsafe {
1711             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1712             s.assume_init()
1713         }
1714     }
1715 }
1716 #[repr(C)]
1717 pub struct kvm_coalesced_mmio_ring {
1718     pub first: u32,
1719     pub last: u32,
1720     pub coalesced_mmio: __IncompleteArrayField<kvm_coalesced_mmio>,
1721 }
1722 impl Default for kvm_coalesced_mmio_ring {
default() -> Self1723     fn default() -> Self {
1724         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1725         unsafe {
1726             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1727             s.assume_init()
1728         }
1729     }
1730 }
1731 #[repr(C)]
1732 #[derive(Debug, Default, Copy, Clone)]
1733 pub struct kvm_translation {
1734     pub linear_address: u64,
1735     pub physical_address: u64,
1736     pub valid: u8,
1737     pub writeable: u8,
1738     pub usermode: u8,
1739     pub pad: [u8; 5usize],
1740 }
1741 #[repr(C)]
1742 #[derive(Copy, Clone)]
1743 pub struct kvm_s390_mem_op {
1744     pub gaddr: u64,
1745     pub flags: u64,
1746     pub size: u32,
1747     pub op: u32,
1748     pub buf: u64,
1749     pub __bindgen_anon_1: kvm_s390_mem_op__bindgen_ty_1,
1750 }
1751 #[repr(C)]
1752 #[derive(Copy, Clone)]
1753 pub union kvm_s390_mem_op__bindgen_ty_1 {
1754     pub __bindgen_anon_1: kvm_s390_mem_op__bindgen_ty_1__bindgen_ty_1,
1755     pub sida_offset: u32,
1756     pub reserved: [u8; 32usize],
1757 }
1758 #[repr(C)]
1759 #[derive(Debug, Default, Copy, Clone)]
1760 pub struct kvm_s390_mem_op__bindgen_ty_1__bindgen_ty_1 {
1761     pub ar: u8,
1762     pub key: u8,
1763     pub pad1: [u8; 6usize],
1764     pub old_addr: u64,
1765 }
1766 impl Default for kvm_s390_mem_op__bindgen_ty_1 {
default() -> Self1767     fn default() -> Self {
1768         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1769         unsafe {
1770             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1771             s.assume_init()
1772         }
1773     }
1774 }
1775 impl Default for kvm_s390_mem_op {
default() -> Self1776     fn default() -> Self {
1777         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1778         unsafe {
1779             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1780             s.assume_init()
1781         }
1782     }
1783 }
1784 #[repr(C)]
1785 #[derive(Debug, Default, Copy, Clone)]
1786 pub struct kvm_interrupt {
1787     pub irq: u32,
1788 }
1789 #[repr(C)]
1790 #[derive(Copy, Clone)]
1791 pub struct kvm_dirty_log {
1792     pub slot: u32,
1793     pub padding1: u32,
1794     pub __bindgen_anon_1: kvm_dirty_log__bindgen_ty_1,
1795 }
1796 #[repr(C)]
1797 #[derive(Copy, Clone)]
1798 pub union kvm_dirty_log__bindgen_ty_1 {
1799     pub dirty_bitmap: *mut ::std::os::raw::c_void,
1800     pub padding2: u64,
1801 }
1802 impl Default for kvm_dirty_log__bindgen_ty_1 {
default() -> Self1803     fn default() -> Self {
1804         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1805         unsafe {
1806             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1807             s.assume_init()
1808         }
1809     }
1810 }
1811 impl Default for kvm_dirty_log {
default() -> Self1812     fn default() -> Self {
1813         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1814         unsafe {
1815             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1816             s.assume_init()
1817         }
1818     }
1819 }
1820 #[repr(C)]
1821 #[derive(Copy, Clone)]
1822 pub struct kvm_clear_dirty_log {
1823     pub slot: u32,
1824     pub num_pages: u32,
1825     pub first_page: u64,
1826     pub __bindgen_anon_1: kvm_clear_dirty_log__bindgen_ty_1,
1827 }
1828 #[repr(C)]
1829 #[derive(Copy, Clone)]
1830 pub union kvm_clear_dirty_log__bindgen_ty_1 {
1831     pub dirty_bitmap: *mut ::std::os::raw::c_void,
1832     pub padding2: u64,
1833 }
1834 impl Default for kvm_clear_dirty_log__bindgen_ty_1 {
default() -> Self1835     fn default() -> Self {
1836         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1837         unsafe {
1838             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1839             s.assume_init()
1840         }
1841     }
1842 }
1843 impl Default for kvm_clear_dirty_log {
default() -> Self1844     fn default() -> Self {
1845         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1846         unsafe {
1847             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1848             s.assume_init()
1849         }
1850     }
1851 }
1852 #[repr(C)]
1853 #[derive(Debug, Default)]
1854 pub struct kvm_signal_mask {
1855     pub len: u32,
1856     pub sigset: __IncompleteArrayField<u8>,
1857 }
1858 #[repr(C)]
1859 #[derive(Debug, Default, Copy, Clone)]
1860 pub struct kvm_tpr_access_ctl {
1861     pub enabled: u32,
1862     pub flags: u32,
1863     pub reserved: [u32; 8usize],
1864 }
1865 #[repr(C)]
1866 #[derive(Debug, Default, Copy, Clone)]
1867 pub struct kvm_vapic_addr {
1868     pub vapic_addr: u64,
1869 }
1870 #[repr(C)]
1871 #[derive(Debug, Default, Copy, Clone, FromZeroes, FromBytes, AsBytes)]
1872 pub struct kvm_mp_state {
1873     pub mp_state: u32,
1874 }
1875 #[repr(C)]
1876 #[derive(Debug, Default, Copy, Clone)]
1877 pub struct kvm_s390_psw {
1878     pub mask: u64,
1879     pub addr: u64,
1880 }
1881 #[repr(C)]
1882 #[derive(Debug, Default, Copy, Clone)]
1883 pub struct kvm_s390_interrupt {
1884     pub type_: u32,
1885     pub parm: u32,
1886     pub parm64: u64,
1887 }
1888 #[repr(C)]
1889 #[derive(Debug, Default, Copy, Clone)]
1890 pub struct kvm_s390_io_info {
1891     pub subchannel_id: u16,
1892     pub subchannel_nr: u16,
1893     pub io_int_parm: u32,
1894     pub io_int_word: u32,
1895 }
1896 #[repr(C)]
1897 #[derive(Debug, Default, Copy, Clone)]
1898 pub struct kvm_s390_ext_info {
1899     pub ext_params: u32,
1900     pub pad: u32,
1901     pub ext_params2: u64,
1902 }
1903 #[repr(C)]
1904 #[derive(Debug, Default, Copy, Clone)]
1905 pub struct kvm_s390_pgm_info {
1906     pub trans_exc_code: u64,
1907     pub mon_code: u64,
1908     pub per_address: u64,
1909     pub data_exc_code: u32,
1910     pub code: u16,
1911     pub mon_class_nr: u16,
1912     pub per_code: u8,
1913     pub per_atmid: u8,
1914     pub exc_access_id: u8,
1915     pub per_access_id: u8,
1916     pub op_access_id: u8,
1917     pub flags: u8,
1918     pub pad: [u8; 2usize],
1919 }
1920 #[repr(C)]
1921 #[derive(Debug, Default, Copy, Clone)]
1922 pub struct kvm_s390_prefix_info {
1923     pub address: u32,
1924 }
1925 #[repr(C)]
1926 #[derive(Debug, Default, Copy, Clone)]
1927 pub struct kvm_s390_extcall_info {
1928     pub code: u16,
1929 }
1930 #[repr(C)]
1931 #[derive(Debug, Default, Copy, Clone)]
1932 pub struct kvm_s390_emerg_info {
1933     pub code: u16,
1934 }
1935 #[repr(C)]
1936 #[derive(Debug, Default, Copy, Clone)]
1937 pub struct kvm_s390_stop_info {
1938     pub flags: u32,
1939 }
1940 #[repr(C)]
1941 #[derive(Debug, Default, Copy, Clone)]
1942 pub struct kvm_s390_mchk_info {
1943     pub cr14: u64,
1944     pub mcic: u64,
1945     pub failing_storage_address: u64,
1946     pub ext_damage_code: u32,
1947     pub pad: u32,
1948     pub fixed_logout: [u8; 16usize],
1949 }
1950 #[repr(C)]
1951 #[derive(Copy, Clone)]
1952 pub struct kvm_s390_irq {
1953     pub type_: u64,
1954     pub u: kvm_s390_irq__bindgen_ty_1,
1955 }
1956 #[repr(C)]
1957 #[derive(Copy, Clone)]
1958 pub union kvm_s390_irq__bindgen_ty_1 {
1959     pub io: kvm_s390_io_info,
1960     pub ext: kvm_s390_ext_info,
1961     pub pgm: kvm_s390_pgm_info,
1962     pub emerg: kvm_s390_emerg_info,
1963     pub extcall: kvm_s390_extcall_info,
1964     pub prefix: kvm_s390_prefix_info,
1965     pub stop: kvm_s390_stop_info,
1966     pub mchk: kvm_s390_mchk_info,
1967     pub reserved: [::std::os::raw::c_char; 64usize],
1968 }
1969 impl Default for kvm_s390_irq__bindgen_ty_1 {
default() -> Self1970     fn default() -> Self {
1971         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1972         unsafe {
1973             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1974             s.assume_init()
1975         }
1976     }
1977 }
1978 impl Default for kvm_s390_irq {
default() -> Self1979     fn default() -> Self {
1980         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1981         unsafe {
1982             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1983             s.assume_init()
1984         }
1985     }
1986 }
1987 #[repr(C)]
1988 #[derive(Debug, Default, Copy, Clone)]
1989 pub struct kvm_s390_irq_state {
1990     pub buf: u64,
1991     pub flags: u32,
1992     pub len: u32,
1993     pub reserved: [u32; 4usize],
1994 }
1995 #[repr(C)]
1996 #[derive(Debug, Default, Copy, Clone)]
1997 pub struct kvm_guest_debug {
1998     pub control: u32,
1999     pub pad: u32,
2000     pub arch: kvm_guest_debug_arch,
2001 }
2002 pub const kvm_ioeventfd_flag_nr_datamatch: _bindgen_ty_4 = 0;
2003 pub const kvm_ioeventfd_flag_nr_pio: _bindgen_ty_4 = 1;
2004 pub const kvm_ioeventfd_flag_nr_deassign: _bindgen_ty_4 = 2;
2005 pub const kvm_ioeventfd_flag_nr_virtio_ccw_notify: _bindgen_ty_4 = 3;
2006 pub const kvm_ioeventfd_flag_nr_fast_mmio: _bindgen_ty_4 = 4;
2007 pub const kvm_ioeventfd_flag_nr_max: _bindgen_ty_4 = 5;
2008 pub type _bindgen_ty_4 = ::std::os::raw::c_uint;
2009 #[repr(C)]
2010 #[derive(Debug, Copy, Clone)]
2011 pub struct kvm_ioeventfd {
2012     pub datamatch: u64,
2013     pub addr: u64,
2014     pub len: u32,
2015     pub fd: i32,
2016     pub flags: u32,
2017     pub pad: [u8; 36usize],
2018 }
2019 impl Default for kvm_ioeventfd {
default() -> Self2020     fn default() -> Self {
2021         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2022         unsafe {
2023             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2024             s.assume_init()
2025         }
2026     }
2027 }
2028 #[repr(C)]
2029 #[derive(Debug, Copy, Clone)]
2030 pub struct kvm_enable_cap {
2031     pub cap: u32,
2032     pub flags: u32,
2033     pub args: [u64; 4usize],
2034     pub pad: [u8; 64usize],
2035 }
2036 impl Default for kvm_enable_cap {
default() -> Self2037     fn default() -> Self {
2038         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2039         unsafe {
2040             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2041             s.assume_init()
2042         }
2043     }
2044 }
2045 #[repr(C)]
2046 #[derive(Debug, Copy, Clone)]
2047 pub struct kvm_ppc_pvinfo {
2048     pub flags: u32,
2049     pub hcall: [u32; 4usize],
2050     pub pad: [u8; 108usize],
2051 }
2052 impl Default for kvm_ppc_pvinfo {
default() -> Self2053     fn default() -> Self {
2054         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2055         unsafe {
2056             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2057             s.assume_init()
2058         }
2059     }
2060 }
2061 #[repr(C)]
2062 #[derive(Debug, Default, Copy, Clone)]
2063 pub struct kvm_ppc_one_page_size {
2064     pub page_shift: u32,
2065     pub pte_enc: u32,
2066 }
2067 #[repr(C)]
2068 #[derive(Debug, Default, Copy, Clone)]
2069 pub struct kvm_ppc_one_seg_page_size {
2070     pub page_shift: u32,
2071     pub slb_enc: u32,
2072     pub enc: [kvm_ppc_one_page_size; 8usize],
2073 }
2074 #[repr(C)]
2075 #[derive(Debug, Default, Copy, Clone)]
2076 pub struct kvm_ppc_smmu_info {
2077     pub flags: u64,
2078     pub slb_size: u32,
2079     pub data_keys: u16,
2080     pub instr_keys: u16,
2081     pub sps: [kvm_ppc_one_seg_page_size; 8usize],
2082 }
2083 #[repr(C)]
2084 #[derive(Debug, Default, Copy, Clone)]
2085 pub struct kvm_ppc_resize_hpt {
2086     pub flags: u64,
2087     pub shift: u32,
2088     pub pad: u32,
2089 }
2090 #[repr(C)]
2091 #[derive(Debug, Default, Copy, Clone)]
2092 pub struct kvm_irq_routing_irqchip {
2093     pub irqchip: u32,
2094     pub pin: u32,
2095 }
2096 #[repr(C)]
2097 #[derive(Copy, Clone)]
2098 pub struct kvm_irq_routing_msi {
2099     pub address_lo: u32,
2100     pub address_hi: u32,
2101     pub data: u32,
2102     pub __bindgen_anon_1: kvm_irq_routing_msi__bindgen_ty_1,
2103 }
2104 #[repr(C)]
2105 #[derive(Copy, Clone)]
2106 pub union kvm_irq_routing_msi__bindgen_ty_1 {
2107     pub pad: u32,
2108     pub devid: u32,
2109 }
2110 impl Default for kvm_irq_routing_msi__bindgen_ty_1 {
default() -> Self2111     fn default() -> Self {
2112         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2113         unsafe {
2114             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2115             s.assume_init()
2116         }
2117     }
2118 }
2119 impl Default for kvm_irq_routing_msi {
default() -> Self2120     fn default() -> Self {
2121         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2122         unsafe {
2123             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2124             s.assume_init()
2125         }
2126     }
2127 }
2128 #[repr(C)]
2129 #[derive(Debug, Default, Copy, Clone)]
2130 pub struct kvm_irq_routing_s390_adapter {
2131     pub ind_addr: u64,
2132     pub summary_addr: u64,
2133     pub ind_offset: u64,
2134     pub summary_offset: u32,
2135     pub adapter_id: u32,
2136 }
2137 #[repr(C)]
2138 #[derive(Debug, Default, Copy, Clone)]
2139 pub struct kvm_irq_routing_hv_sint {
2140     pub vcpu: u32,
2141     pub sint: u32,
2142 }
2143 #[repr(C)]
2144 #[derive(Debug, Default, Copy, Clone)]
2145 pub struct kvm_irq_routing_xen_evtchn {
2146     pub port: u32,
2147     pub vcpu: u32,
2148     pub priority: u32,
2149 }
2150 #[repr(C)]
2151 #[derive(Copy, Clone)]
2152 pub struct kvm_irq_routing_entry {
2153     pub gsi: u32,
2154     pub type_: u32,
2155     pub flags: u32,
2156     pub pad: u32,
2157     pub u: kvm_irq_routing_entry__bindgen_ty_1,
2158 }
2159 #[repr(C)]
2160 #[derive(Copy, Clone)]
2161 pub union kvm_irq_routing_entry__bindgen_ty_1 {
2162     pub irqchip: kvm_irq_routing_irqchip,
2163     pub msi: kvm_irq_routing_msi,
2164     pub adapter: kvm_irq_routing_s390_adapter,
2165     pub hv_sint: kvm_irq_routing_hv_sint,
2166     pub xen_evtchn: kvm_irq_routing_xen_evtchn,
2167     pub pad: [u32; 8usize],
2168 }
2169 impl Default for kvm_irq_routing_entry__bindgen_ty_1 {
default() -> Self2170     fn default() -> Self {
2171         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2172         unsafe {
2173             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2174             s.assume_init()
2175         }
2176     }
2177 }
2178 impl Default for kvm_irq_routing_entry {
default() -> Self2179     fn default() -> Self {
2180         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2181         unsafe {
2182             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2183             s.assume_init()
2184         }
2185     }
2186 }
2187 #[repr(C)]
2188 pub struct kvm_irq_routing {
2189     pub nr: u32,
2190     pub flags: u32,
2191     pub entries: __IncompleteArrayField<kvm_irq_routing_entry>,
2192 }
2193 impl Default for kvm_irq_routing {
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 #[repr(C)]
2203 #[derive(Debug, Default, Copy, Clone)]
2204 pub struct kvm_irqfd {
2205     pub fd: u32,
2206     pub gsi: u32,
2207     pub flags: u32,
2208     pub resamplefd: u32,
2209     pub pad: [u8; 16usize],
2210 }
2211 #[repr(C)]
2212 #[derive(Debug, Default, Copy, Clone)]
2213 pub struct kvm_clock_data {
2214     pub clock: u64,
2215     pub flags: u32,
2216     pub pad0: u32,
2217     pub realtime: u64,
2218     pub host_tsc: u64,
2219     pub pad: [u32; 4usize],
2220 }
2221 #[repr(C)]
2222 #[derive(Debug, Default, Copy, Clone)]
2223 pub struct kvm_config_tlb {
2224     pub params: u64,
2225     pub array: u64,
2226     pub mmu_type: u32,
2227     pub array_len: u32,
2228 }
2229 #[repr(C)]
2230 #[derive(Debug, Default, Copy, Clone)]
2231 pub struct kvm_dirty_tlb {
2232     pub bitmap: u64,
2233     pub num_dirty: u32,
2234 }
2235 #[repr(C)]
2236 #[derive(Debug, Default)]
2237 pub struct kvm_reg_list {
2238     pub n: u64,
2239     pub reg: __IncompleteArrayField<u64>,
2240 }
2241 #[repr(C)]
2242 #[derive(Debug, Default, Copy, Clone)]
2243 pub struct kvm_one_reg {
2244     pub id: u64,
2245     pub addr: u64,
2246 }
2247 #[repr(C)]
2248 #[derive(Debug, Default, Copy, Clone)]
2249 pub struct kvm_msi {
2250     pub address_lo: u32,
2251     pub address_hi: u32,
2252     pub data: u32,
2253     pub flags: u32,
2254     pub devid: u32,
2255     pub pad: [u8; 12usize],
2256 }
2257 #[repr(C)]
2258 #[derive(Debug, Default, Copy, Clone)]
2259 pub struct kvm_arm_device_addr {
2260     pub id: u64,
2261     pub addr: u64,
2262 }
2263 #[repr(C)]
2264 #[derive(Debug, Default, Copy, Clone)]
2265 pub struct kvm_create_device {
2266     pub type_: u32,
2267     pub fd: u32,
2268     pub flags: u32,
2269 }
2270 #[repr(C)]
2271 #[derive(Debug, Default, Copy, Clone)]
2272 pub struct kvm_device_attr {
2273     pub flags: u32,
2274     pub group: u32,
2275     pub attr: u64,
2276     pub addr: u64,
2277 }
2278 pub const kvm_device_type_KVM_DEV_TYPE_FSL_MPIC_20: kvm_device_type = 1;
2279 pub const kvm_device_type_KVM_DEV_TYPE_FSL_MPIC_42: kvm_device_type = 2;
2280 pub const kvm_device_type_KVM_DEV_TYPE_XICS: kvm_device_type = 3;
2281 pub const kvm_device_type_KVM_DEV_TYPE_VFIO: kvm_device_type = 4;
2282 pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_V2: kvm_device_type = 5;
2283 pub const kvm_device_type_KVM_DEV_TYPE_FLIC: kvm_device_type = 6;
2284 pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_V3: kvm_device_type = 7;
2285 pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_ITS: kvm_device_type = 8;
2286 pub const kvm_device_type_KVM_DEV_TYPE_XIVE: kvm_device_type = 9;
2287 pub const kvm_device_type_KVM_DEV_TYPE_ARM_PV_TIME: kvm_device_type = 10;
2288 pub const kvm_device_type_KVM_DEV_TYPE_RISCV_AIA: kvm_device_type = 11;
2289 pub const kvm_device_type_KVM_DEV_TYPE_MAX: kvm_device_type = 12;
2290 pub type kvm_device_type = ::std::os::raw::c_uint;
2291 #[repr(C)]
2292 #[derive(Debug, Default, Copy, Clone)]
2293 pub struct kvm_vfio_spapr_tce {
2294     pub groupfd: i32,
2295     pub tablefd: i32,
2296 }
2297 #[repr(C)]
2298 #[derive(Debug, Default, Copy, Clone)]
2299 pub struct kvm_s390_ucas_mapping {
2300     pub user_addr: u64,
2301     pub vcpu_addr: u64,
2302     pub length: u64,
2303 }
2304 #[repr(C)]
2305 #[derive(Debug, Default, Copy, Clone)]
2306 pub struct kvm_enc_region {
2307     pub addr: u64,
2308     pub size: u64,
2309 }
2310 #[repr(C)]
2311 #[derive(Debug, Default, Copy, Clone)]
2312 pub struct kvm_s390_pv_sec_parm {
2313     pub origin: u64,
2314     pub length: u64,
2315 }
2316 #[repr(C)]
2317 #[derive(Debug, Default, Copy, Clone)]
2318 pub struct kvm_s390_pv_unp {
2319     pub addr: u64,
2320     pub size: u64,
2321     pub tweak: u64,
2322 }
2323 pub const pv_cmd_dmp_id_KVM_PV_DUMP_INIT: pv_cmd_dmp_id = 0;
2324 pub const pv_cmd_dmp_id_KVM_PV_DUMP_CONFIG_STOR_STATE: pv_cmd_dmp_id = 1;
2325 pub const pv_cmd_dmp_id_KVM_PV_DUMP_COMPLETE: pv_cmd_dmp_id = 2;
2326 pub const pv_cmd_dmp_id_KVM_PV_DUMP_CPU: pv_cmd_dmp_id = 3;
2327 pub type pv_cmd_dmp_id = ::std::os::raw::c_uint;
2328 #[repr(C)]
2329 #[derive(Debug, Default, Copy, Clone)]
2330 pub struct kvm_s390_pv_dmp {
2331     pub subcmd: u64,
2332     pub buff_addr: u64,
2333     pub buff_len: u64,
2334     pub gaddr: u64,
2335     pub reserved: [u64; 4usize],
2336 }
2337 pub const pv_cmd_info_id_KVM_PV_INFO_VM: pv_cmd_info_id = 0;
2338 pub const pv_cmd_info_id_KVM_PV_INFO_DUMP: pv_cmd_info_id = 1;
2339 pub type pv_cmd_info_id = ::std::os::raw::c_uint;
2340 #[repr(C)]
2341 #[derive(Debug, Default, Copy, Clone)]
2342 pub struct kvm_s390_pv_info_dump {
2343     pub dump_cpu_buffer_len: u64,
2344     pub dump_config_mem_buffer_per_1m: u64,
2345     pub dump_config_finalize_len: u64,
2346 }
2347 #[repr(C)]
2348 #[derive(Debug, Default, Copy, Clone)]
2349 pub struct kvm_s390_pv_info_vm {
2350     pub inst_calls_list: [u64; 4usize],
2351     pub max_cpus: u64,
2352     pub max_guests: u64,
2353     pub max_guest_addr: u64,
2354     pub feature_indication: u64,
2355 }
2356 #[repr(C)]
2357 #[derive(Debug, Default, Copy, Clone)]
2358 pub struct kvm_s390_pv_info_header {
2359     pub id: u32,
2360     pub len_max: u32,
2361     pub len_written: u32,
2362     pub reserved: u32,
2363 }
2364 #[repr(C)]
2365 #[derive(Copy, Clone)]
2366 pub struct kvm_s390_pv_info {
2367     pub header: kvm_s390_pv_info_header,
2368     pub __bindgen_anon_1: kvm_s390_pv_info__bindgen_ty_1,
2369 }
2370 #[repr(C)]
2371 #[derive(Copy, Clone)]
2372 pub union kvm_s390_pv_info__bindgen_ty_1 {
2373     pub dump: kvm_s390_pv_info_dump,
2374     pub vm: kvm_s390_pv_info_vm,
2375 }
2376 impl Default for kvm_s390_pv_info__bindgen_ty_1 {
default() -> Self2377     fn default() -> Self {
2378         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2379         unsafe {
2380             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2381             s.assume_init()
2382         }
2383     }
2384 }
2385 impl Default for kvm_s390_pv_info {
default() -> Self2386     fn default() -> Self {
2387         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2388         unsafe {
2389             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2390             s.assume_init()
2391         }
2392     }
2393 }
2394 pub const pv_cmd_id_KVM_PV_ENABLE: pv_cmd_id = 0;
2395 pub const pv_cmd_id_KVM_PV_DISABLE: pv_cmd_id = 1;
2396 pub const pv_cmd_id_KVM_PV_SET_SEC_PARMS: pv_cmd_id = 2;
2397 pub const pv_cmd_id_KVM_PV_UNPACK: pv_cmd_id = 3;
2398 pub const pv_cmd_id_KVM_PV_VERIFY: pv_cmd_id = 4;
2399 pub const pv_cmd_id_KVM_PV_PREP_RESET: pv_cmd_id = 5;
2400 pub const pv_cmd_id_KVM_PV_UNSHARE_ALL: pv_cmd_id = 6;
2401 pub const pv_cmd_id_KVM_PV_INFO: pv_cmd_id = 7;
2402 pub const pv_cmd_id_KVM_PV_DUMP: pv_cmd_id = 8;
2403 pub const pv_cmd_id_KVM_PV_ASYNC_CLEANUP_PREPARE: pv_cmd_id = 9;
2404 pub const pv_cmd_id_KVM_PV_ASYNC_CLEANUP_PERFORM: pv_cmd_id = 10;
2405 pub type pv_cmd_id = ::std::os::raw::c_uint;
2406 #[repr(C)]
2407 #[derive(Debug, Default, Copy, Clone)]
2408 pub struct kvm_pv_cmd {
2409     pub cmd: u32,
2410     pub rc: u16,
2411     pub rrc: u16,
2412     pub data: u64,
2413     pub flags: u32,
2414     pub reserved: [u32; 3usize],
2415 }
2416 #[repr(C)]
2417 #[derive(Copy, Clone)]
2418 pub struct kvm_xen_hvm_attr {
2419     pub type_: u16,
2420     pub pad: [u16; 3usize],
2421     pub u: kvm_xen_hvm_attr__bindgen_ty_1,
2422 }
2423 #[repr(C)]
2424 #[derive(Copy, Clone)]
2425 pub union kvm_xen_hvm_attr__bindgen_ty_1 {
2426     pub long_mode: u8,
2427     pub vector: u8,
2428     pub runstate_update_flag: u8,
2429     pub shared_info: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_1,
2430     pub evtchn: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2,
2431     pub xen_version: u32,
2432     pub pad: [u64; 8usize],
2433 }
2434 #[repr(C)]
2435 #[derive(Debug, Default, Copy, Clone)]
2436 pub struct kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_1 {
2437     pub gfn: u64,
2438 }
2439 #[repr(C)]
2440 #[derive(Copy, Clone)]
2441 pub struct kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2 {
2442     pub send_port: u32,
2443     pub type_: u32,
2444     pub flags: u32,
2445     pub deliver: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1,
2446 }
2447 #[repr(C)]
2448 #[derive(Copy, Clone)]
2449 pub union kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 {
2450     pub port: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1,
2451     pub eventfd: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_2,
2452     pub padding: [u32; 4usize],
2453 }
2454 #[repr(C)]
2455 #[derive(Debug, Default, Copy, Clone)]
2456 pub struct kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1 {
2457     pub port: u32,
2458     pub vcpu: u32,
2459     pub priority: u32,
2460 }
2461 #[repr(C)]
2462 #[derive(Debug, Default, Copy, Clone)]
2463 pub struct kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_2 {
2464     pub port: u32,
2465     pub fd: i32,
2466 }
2467 impl Default for kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 {
default() -> Self2468     fn default() -> Self {
2469         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2470         unsafe {
2471             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2472             s.assume_init()
2473         }
2474     }
2475 }
2476 impl Default for kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2 {
default() -> Self2477     fn default() -> Self {
2478         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2479         unsafe {
2480             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2481             s.assume_init()
2482         }
2483     }
2484 }
2485 impl Default for kvm_xen_hvm_attr__bindgen_ty_1 {
default() -> Self2486     fn default() -> Self {
2487         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2488         unsafe {
2489             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2490             s.assume_init()
2491         }
2492     }
2493 }
2494 impl Default for kvm_xen_hvm_attr {
default() -> Self2495     fn default() -> Self {
2496         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2497         unsafe {
2498             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2499             s.assume_init()
2500         }
2501     }
2502 }
2503 #[repr(C)]
2504 #[derive(Copy, Clone)]
2505 pub struct kvm_xen_vcpu_attr {
2506     pub type_: u16,
2507     pub pad: [u16; 3usize],
2508     pub u: kvm_xen_vcpu_attr__bindgen_ty_1,
2509 }
2510 #[repr(C)]
2511 #[derive(Copy, Clone)]
2512 pub union kvm_xen_vcpu_attr__bindgen_ty_1 {
2513     pub gpa: u64,
2514     pub pad: [u64; 8usize],
2515     pub runstate: kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_1,
2516     pub vcpu_id: u32,
2517     pub timer: kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_2,
2518     pub vector: u8,
2519 }
2520 #[repr(C)]
2521 #[derive(Debug, Default, Copy, Clone)]
2522 pub struct kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_1 {
2523     pub state: u64,
2524     pub state_entry_time: u64,
2525     pub time_running: u64,
2526     pub time_runnable: u64,
2527     pub time_blocked: u64,
2528     pub time_offline: u64,
2529 }
2530 #[repr(C)]
2531 #[derive(Debug, Default, Copy, Clone)]
2532 pub struct kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_2 {
2533     pub port: u32,
2534     pub priority: u32,
2535     pub expires_ns: u64,
2536 }
2537 impl Default for kvm_xen_vcpu_attr__bindgen_ty_1 {
default() -> Self2538     fn default() -> Self {
2539         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2540         unsafe {
2541             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2542             s.assume_init()
2543         }
2544     }
2545 }
2546 impl Default for kvm_xen_vcpu_attr {
default() -> Self2547     fn default() -> Self {
2548         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2549         unsafe {
2550             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2551             s.assume_init()
2552         }
2553     }
2554 }
2555 pub const sev_cmd_id_KVM_SEV_INIT: sev_cmd_id = 0;
2556 pub const sev_cmd_id_KVM_SEV_ES_INIT: sev_cmd_id = 1;
2557 pub const sev_cmd_id_KVM_SEV_LAUNCH_START: sev_cmd_id = 2;
2558 pub const sev_cmd_id_KVM_SEV_LAUNCH_UPDATE_DATA: sev_cmd_id = 3;
2559 pub const sev_cmd_id_KVM_SEV_LAUNCH_UPDATE_VMSA: sev_cmd_id = 4;
2560 pub const sev_cmd_id_KVM_SEV_LAUNCH_SECRET: sev_cmd_id = 5;
2561 pub const sev_cmd_id_KVM_SEV_LAUNCH_MEASURE: sev_cmd_id = 6;
2562 pub const sev_cmd_id_KVM_SEV_LAUNCH_FINISH: sev_cmd_id = 7;
2563 pub const sev_cmd_id_KVM_SEV_SEND_START: sev_cmd_id = 8;
2564 pub const sev_cmd_id_KVM_SEV_SEND_UPDATE_DATA: sev_cmd_id = 9;
2565 pub const sev_cmd_id_KVM_SEV_SEND_UPDATE_VMSA: sev_cmd_id = 10;
2566 pub const sev_cmd_id_KVM_SEV_SEND_FINISH: sev_cmd_id = 11;
2567 pub const sev_cmd_id_KVM_SEV_RECEIVE_START: sev_cmd_id = 12;
2568 pub const sev_cmd_id_KVM_SEV_RECEIVE_UPDATE_DATA: sev_cmd_id = 13;
2569 pub const sev_cmd_id_KVM_SEV_RECEIVE_UPDATE_VMSA: sev_cmd_id = 14;
2570 pub const sev_cmd_id_KVM_SEV_RECEIVE_FINISH: sev_cmd_id = 15;
2571 pub const sev_cmd_id_KVM_SEV_GUEST_STATUS: sev_cmd_id = 16;
2572 pub const sev_cmd_id_KVM_SEV_DBG_DECRYPT: sev_cmd_id = 17;
2573 pub const sev_cmd_id_KVM_SEV_DBG_ENCRYPT: sev_cmd_id = 18;
2574 pub const sev_cmd_id_KVM_SEV_CERT_EXPORT: sev_cmd_id = 19;
2575 pub const sev_cmd_id_KVM_SEV_GET_ATTESTATION_REPORT: sev_cmd_id = 20;
2576 pub const sev_cmd_id_KVM_SEV_SEND_CANCEL: sev_cmd_id = 21;
2577 pub const sev_cmd_id_KVM_SEV_NR_MAX: sev_cmd_id = 22;
2578 pub type sev_cmd_id = ::std::os::raw::c_uint;
2579 #[repr(C)]
2580 #[derive(Debug, Default, Copy, Clone)]
2581 pub struct kvm_sev_cmd {
2582     pub id: u32,
2583     pub data: u64,
2584     pub error: u32,
2585     pub sev_fd: u32,
2586 }
2587 #[repr(C)]
2588 #[derive(Debug, Default, Copy, Clone)]
2589 pub struct kvm_sev_launch_start {
2590     pub handle: u32,
2591     pub policy: u32,
2592     pub dh_uaddr: u64,
2593     pub dh_len: u32,
2594     pub session_uaddr: u64,
2595     pub session_len: u32,
2596 }
2597 #[repr(C)]
2598 #[derive(Debug, Default, Copy, Clone)]
2599 pub struct kvm_sev_launch_update_data {
2600     pub uaddr: u64,
2601     pub len: u32,
2602 }
2603 #[repr(C)]
2604 #[derive(Debug, Default, Copy, Clone)]
2605 pub struct kvm_sev_launch_secret {
2606     pub hdr_uaddr: u64,
2607     pub hdr_len: u32,
2608     pub guest_uaddr: u64,
2609     pub guest_len: u32,
2610     pub trans_uaddr: u64,
2611     pub trans_len: u32,
2612 }
2613 #[repr(C)]
2614 #[derive(Debug, Default, Copy, Clone)]
2615 pub struct kvm_sev_launch_measure {
2616     pub uaddr: u64,
2617     pub len: u32,
2618 }
2619 #[repr(C)]
2620 #[derive(Debug, Default, Copy, Clone)]
2621 pub struct kvm_sev_guest_status {
2622     pub handle: u32,
2623     pub policy: u32,
2624     pub state: u32,
2625 }
2626 #[repr(C)]
2627 #[derive(Debug, Default, Copy, Clone)]
2628 pub struct kvm_sev_dbg {
2629     pub src_uaddr: u64,
2630     pub dst_uaddr: u64,
2631     pub len: u32,
2632 }
2633 #[repr(C)]
2634 #[derive(Debug, Default, Copy, Clone)]
2635 pub struct kvm_sev_attestation_report {
2636     pub mnonce: [u8; 16usize],
2637     pub uaddr: u64,
2638     pub len: u32,
2639 }
2640 #[repr(C)]
2641 #[derive(Debug, Default, Copy, Clone)]
2642 pub struct kvm_sev_send_start {
2643     pub policy: u32,
2644     pub pdh_cert_uaddr: u64,
2645     pub pdh_cert_len: u32,
2646     pub plat_certs_uaddr: u64,
2647     pub plat_certs_len: u32,
2648     pub amd_certs_uaddr: u64,
2649     pub amd_certs_len: u32,
2650     pub session_uaddr: u64,
2651     pub session_len: u32,
2652 }
2653 #[repr(C)]
2654 #[derive(Debug, Default, Copy, Clone)]
2655 pub struct kvm_sev_send_update_data {
2656     pub hdr_uaddr: u64,
2657     pub hdr_len: u32,
2658     pub guest_uaddr: u64,
2659     pub guest_len: u32,
2660     pub trans_uaddr: u64,
2661     pub trans_len: u32,
2662 }
2663 #[repr(C)]
2664 #[derive(Debug, Default, Copy, Clone)]
2665 pub struct kvm_sev_receive_start {
2666     pub handle: u32,
2667     pub policy: u32,
2668     pub pdh_uaddr: u64,
2669     pub pdh_len: u32,
2670     pub session_uaddr: u64,
2671     pub session_len: u32,
2672 }
2673 #[repr(C)]
2674 #[derive(Debug, Default, Copy, Clone)]
2675 pub struct kvm_sev_receive_update_data {
2676     pub hdr_uaddr: u64,
2677     pub hdr_len: u32,
2678     pub guest_uaddr: u64,
2679     pub guest_len: u32,
2680     pub trans_uaddr: u64,
2681     pub trans_len: u32,
2682 }
2683 #[repr(C)]
2684 #[derive(Copy, Clone)]
2685 pub struct kvm_assigned_pci_dev {
2686     pub assigned_dev_id: u32,
2687     pub busnr: u32,
2688     pub devfn: u32,
2689     pub flags: u32,
2690     pub segnr: u32,
2691     pub __bindgen_anon_1: kvm_assigned_pci_dev__bindgen_ty_1,
2692 }
2693 #[repr(C)]
2694 #[derive(Copy, Clone)]
2695 pub union kvm_assigned_pci_dev__bindgen_ty_1 {
2696     pub reserved: [u32; 11usize],
2697 }
2698 impl Default for kvm_assigned_pci_dev__bindgen_ty_1 {
default() -> Self2699     fn default() -> Self {
2700         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2701         unsafe {
2702             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2703             s.assume_init()
2704         }
2705     }
2706 }
2707 impl Default for kvm_assigned_pci_dev {
default() -> Self2708     fn default() -> Self {
2709         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2710         unsafe {
2711             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2712             s.assume_init()
2713         }
2714     }
2715 }
2716 #[repr(C)]
2717 #[derive(Copy, Clone)]
2718 pub struct kvm_assigned_irq {
2719     pub assigned_dev_id: u32,
2720     pub host_irq: u32,
2721     pub guest_irq: u32,
2722     pub flags: u32,
2723     pub __bindgen_anon_1: kvm_assigned_irq__bindgen_ty_1,
2724 }
2725 #[repr(C)]
2726 #[derive(Copy, Clone)]
2727 pub union kvm_assigned_irq__bindgen_ty_1 {
2728     pub reserved: [u32; 12usize],
2729 }
2730 impl Default for kvm_assigned_irq__bindgen_ty_1 {
default() -> Self2731     fn default() -> Self {
2732         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2733         unsafe {
2734             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2735             s.assume_init()
2736         }
2737     }
2738 }
2739 impl Default for kvm_assigned_irq {
default() -> Self2740     fn default() -> Self {
2741         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2742         unsafe {
2743             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2744             s.assume_init()
2745         }
2746     }
2747 }
2748 #[repr(C)]
2749 #[derive(Debug, Default, Copy, Clone)]
2750 pub struct kvm_assigned_msix_nr {
2751     pub assigned_dev_id: u32,
2752     pub entry_nr: u16,
2753     pub padding: u16,
2754 }
2755 #[repr(C)]
2756 #[derive(Debug, Default, Copy, Clone)]
2757 pub struct kvm_assigned_msix_entry {
2758     pub assigned_dev_id: u32,
2759     pub gsi: u32,
2760     pub entry: u16,
2761     pub padding: [u16; 3usize],
2762 }
2763 #[repr(C)]
2764 #[derive(Debug, Default, Copy, Clone)]
2765 pub struct kvm_hyperv_eventfd {
2766     pub conn_id: u32,
2767     pub fd: i32,
2768     pub flags: u32,
2769     pub padding: [u32; 3usize],
2770 }
2771 #[repr(C)]
2772 #[derive(Debug, Default, Copy, Clone)]
2773 pub struct kvm_dirty_gfn {
2774     pub flags: u32,
2775     pub slot: u32,
2776     pub offset: u64,
2777 }
2778 #[repr(C)]
2779 #[derive(Debug, Default, Copy, Clone)]
2780 pub struct kvm_stats_header {
2781     pub flags: u32,
2782     pub name_size: u32,
2783     pub num_desc: u32,
2784     pub id_offset: u32,
2785     pub desc_offset: u32,
2786     pub data_offset: u32,
2787 }
2788 #[repr(C)]
2789 #[derive(Debug, Default)]
2790 pub struct kvm_stats_desc {
2791     pub flags: u32,
2792     pub exponent: i16,
2793     pub size: u16,
2794     pub offset: u32,
2795     pub bucket_size: u32,
2796     pub name: __IncompleteArrayField<::std::os::raw::c_char>,
2797 }
2798 #[repr(C)]
2799 #[derive(Copy, Clone)]
2800 pub struct kvm_s390_zpci_op {
2801     pub fh: u32,
2802     pub op: u8,
2803     pub pad: [u8; 3usize],
2804     pub u: kvm_s390_zpci_op__bindgen_ty_1,
2805 }
2806 #[repr(C)]
2807 #[derive(Copy, Clone)]
2808 pub union kvm_s390_zpci_op__bindgen_ty_1 {
2809     pub reg_aen: kvm_s390_zpci_op__bindgen_ty_1__bindgen_ty_1,
2810     pub reserved: [u64; 8usize],
2811 }
2812 #[repr(C)]
2813 #[derive(Debug, Default, Copy, Clone)]
2814 pub struct kvm_s390_zpci_op__bindgen_ty_1__bindgen_ty_1 {
2815     pub ibv: u64,
2816     pub sb: u64,
2817     pub flags: u32,
2818     pub noi: u32,
2819     pub isc: u8,
2820     pub sbo: u8,
2821     pub pad: u16,
2822 }
2823 impl Default for kvm_s390_zpci_op__bindgen_ty_1 {
default() -> Self2824     fn default() -> Self {
2825         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2826         unsafe {
2827             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2828             s.assume_init()
2829         }
2830     }
2831 }
2832 impl Default for kvm_s390_zpci_op {
default() -> Self2833     fn default() -> Self {
2834         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2835         unsafe {
2836             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2837             s.assume_init()
2838         }
2839     }
2840 }
2841 pub type __uint128_t = u128;
2842