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