• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* automatically generated by tools/bindgen-all-the-things */
2 
3 #![allow(non_upper_case_globals)]
4 #![allow(non_camel_case_types)]
5 #![allow(non_snake_case)]
6 #![allow(dead_code)]
7 
8 // Added by kvm_sys/bindgen.sh
9 pub const KVM_SYSTEM_EVENT_S2IDLE: u32 = 4;
10 pub const KVM_SYSTEM_EVENT_RESET_FLAG_PSCI_RESET2: u64 = 0x1;
11 // TODO(tjeznach): Remove this when reporting KVM_IOAPIC_NUM_PINS is no longer required.
12 pub const KVM_CAP_IOAPIC_NUM_PINS: u32 = 8191;
13 // TODO(qwandor): Update this once the pKVM patches are merged upstream with a stable capability ID.
14 pub const KVM_CAP_ARM_PROTECTED_VM: u32 = 0xffbadab1;
15 pub const KVM_CAP_ARM_PROTECTED_VM_FLAGS_SET_FW_IPA: u32 = 0;
16 pub const KVM_CAP_ARM_PROTECTED_VM_FLAGS_INFO: u32 = 1;
17 pub const KVM_VM_TYPE_ARM_PROTECTED: u32 = 0x80000000;
18 
19 #[repr(C)]
20 #[derive(Default)]
21 pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]);
22 impl<T> __IncompleteArrayField<T> {
23     #[inline]
new() -> Self24     pub const fn new() -> Self {
25         __IncompleteArrayField(::std::marker::PhantomData, [])
26     }
27     #[inline]
as_ptr(&self) -> *const T28     pub fn as_ptr(&self) -> *const T {
29         self as *const _ as *const T
30     }
31     #[inline]
as_mut_ptr(&mut self) -> *mut T32     pub fn as_mut_ptr(&mut self) -> *mut T {
33         self as *mut _ as *mut T
34     }
35     #[inline]
as_slice(&self, len: usize) -> &[T]36     pub unsafe fn as_slice(&self, len: usize) -> &[T] {
37         ::std::slice::from_raw_parts(self.as_ptr(), len)
38     }
39     #[inline]
as_mut_slice(&mut self, len: usize) -> &mut [T]40     pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
41         ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
42     }
43 }
44 impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result45     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
46         fmt.write_str("__IncompleteArrayField")
47     }
48 }
49 pub const KVM_SPSR_EL1: u32 = 0;
50 pub const KVM_SPSR_SVC: u32 = 0;
51 pub const KVM_SPSR_ABT: u32 = 1;
52 pub const KVM_SPSR_UND: u32 = 2;
53 pub const KVM_SPSR_IRQ: u32 = 3;
54 pub const KVM_SPSR_FIQ: u32 = 4;
55 pub const KVM_NR_SPSR: u32 = 5;
56 pub const PSCI_0_2_FN_BASE: u32 = 2214592512;
57 pub const PSCI_0_2_64BIT: u32 = 1073741824;
58 pub const PSCI_0_2_FN64_BASE: u32 = 3288334336;
59 pub const PSCI_0_2_POWER_STATE_ID_MASK: u32 = 65535;
60 pub const PSCI_0_2_POWER_STATE_ID_SHIFT: u32 = 0;
61 pub const PSCI_0_2_POWER_STATE_TYPE_SHIFT: u32 = 16;
62 pub const PSCI_0_2_POWER_STATE_TYPE_MASK: u32 = 65536;
63 pub const PSCI_0_2_POWER_STATE_AFFL_SHIFT: u32 = 24;
64 pub const PSCI_0_2_POWER_STATE_AFFL_MASK: u32 = 50331648;
65 pub const PSCI_1_0_EXT_POWER_STATE_ID_MASK: u32 = 268435455;
66 pub const PSCI_1_0_EXT_POWER_STATE_ID_SHIFT: u32 = 0;
67 pub const PSCI_1_0_EXT_POWER_STATE_TYPE_SHIFT: u32 = 30;
68 pub const PSCI_1_0_EXT_POWER_STATE_TYPE_MASK: u32 = 1073741824;
69 pub const PSCI_0_2_AFFINITY_LEVEL_ON: u32 = 0;
70 pub const PSCI_0_2_AFFINITY_LEVEL_OFF: u32 = 1;
71 pub const PSCI_0_2_AFFINITY_LEVEL_ON_PENDING: u32 = 2;
72 pub const PSCI_0_2_TOS_UP_MIGRATE: u32 = 0;
73 pub const PSCI_0_2_TOS_UP_NO_MIGRATE: u32 = 1;
74 pub const PSCI_0_2_TOS_MP: u32 = 2;
75 pub const PSCI_VERSION_MAJOR_SHIFT: u32 = 16;
76 pub const PSCI_VERSION_MINOR_MASK: u32 = 65535;
77 pub const PSCI_VERSION_MAJOR_MASK: i32 = -65536;
78 pub const PSCI_1_0_FEATURES_CPU_SUSPEND_PF_SHIFT: u32 = 1;
79 pub const PSCI_1_0_FEATURES_CPU_SUSPEND_PF_MASK: u32 = 2;
80 pub const PSCI_1_0_SUSPEND_MODE_PC: u32 = 0;
81 pub const PSCI_1_0_SUSPEND_MODE_OSI: u32 = 1;
82 pub const PSCI_RET_SUCCESS: u32 = 0;
83 pub const PSCI_RET_NOT_SUPPORTED: i32 = -1;
84 pub const PSCI_RET_INVALID_PARAMS: i32 = -2;
85 pub const PSCI_RET_DENIED: i32 = -3;
86 pub const PSCI_RET_ALREADY_ON: i32 = -4;
87 pub const PSCI_RET_ON_PENDING: i32 = -5;
88 pub const PSCI_RET_INTERNAL_FAILURE: i32 = -6;
89 pub const PSCI_RET_NOT_PRESENT: i32 = -7;
90 pub const PSCI_RET_DISABLED: i32 = -8;
91 pub const PSCI_RET_INVALID_ADDRESS: i32 = -9;
92 pub const HWCAP_FP: u32 = 1;
93 pub const HWCAP_ASIMD: u32 = 2;
94 pub const HWCAP_EVTSTRM: u32 = 4;
95 pub const HWCAP_AES: u32 = 8;
96 pub const HWCAP_PMULL: u32 = 16;
97 pub const HWCAP_SHA1: u32 = 32;
98 pub const HWCAP_SHA2: u32 = 64;
99 pub const HWCAP_CRC32: u32 = 128;
100 pub const HWCAP_ATOMICS: u32 = 256;
101 pub const HWCAP_FPHP: u32 = 512;
102 pub const HWCAP_ASIMDHP: u32 = 1024;
103 pub const HWCAP_CPUID: u32 = 2048;
104 pub const HWCAP_ASIMDRDM: u32 = 4096;
105 pub const HWCAP_JSCVT: u32 = 8192;
106 pub const HWCAP_FCMA: u32 = 16384;
107 pub const HWCAP_LRCPC: u32 = 32768;
108 pub const HWCAP_DCPOP: u32 = 65536;
109 pub const HWCAP_SHA3: u32 = 131072;
110 pub const HWCAP_SM3: u32 = 262144;
111 pub const HWCAP_SM4: u32 = 524288;
112 pub const HWCAP_ASIMDDP: u32 = 1048576;
113 pub const HWCAP_SHA512: u32 = 2097152;
114 pub const HWCAP_SVE: u32 = 4194304;
115 pub const HWCAP_ASIMDFHM: u32 = 8388608;
116 pub const HWCAP_DIT: u32 = 16777216;
117 pub const HWCAP_USCAT: u32 = 33554432;
118 pub const HWCAP_ILRCPC: u32 = 67108864;
119 pub const HWCAP_FLAGM: u32 = 134217728;
120 pub const HWCAP_SSBS: u32 = 268435456;
121 pub const HWCAP_SB: u32 = 536870912;
122 pub const HWCAP_PACA: u32 = 1073741824;
123 pub const HWCAP_PACG: u32 = 2147483648;
124 pub const HWCAP2_DCPODP: u32 = 1;
125 pub const HWCAP2_SVE2: u32 = 2;
126 pub const HWCAP2_SVEAES: u32 = 4;
127 pub const HWCAP2_SVEPMULL: u32 = 8;
128 pub const HWCAP2_SVEBITPERM: u32 = 16;
129 pub const HWCAP2_SVESHA3: u32 = 32;
130 pub const HWCAP2_SVESM4: u32 = 64;
131 pub const HWCAP2_FLAGM2: u32 = 128;
132 pub const HWCAP2_FRINT: u32 = 256;
133 pub const HWCAP2_SVEI8MM: u32 = 512;
134 pub const HWCAP2_SVEF32MM: u32 = 1024;
135 pub const HWCAP2_SVEF64MM: u32 = 2048;
136 pub const HWCAP2_SVEBF16: u32 = 4096;
137 pub const HWCAP2_I8MM: u32 = 8192;
138 pub const HWCAP2_BF16: u32 = 16384;
139 pub const HWCAP2_DGH: u32 = 32768;
140 pub const HWCAP2_RNG: u32 = 65536;
141 pub const HWCAP2_BTI: u32 = 131072;
142 pub const HWCAP2_MTE: u32 = 262144;
143 pub const __SVE_VQ_BYTES: u32 = 16;
144 pub const __SVE_VQ_MIN: u32 = 1;
145 pub const __SVE_VQ_MAX: u32 = 512;
146 pub const __SVE_VL_MIN: u32 = 16;
147 pub const __SVE_VL_MAX: u32 = 8192;
148 pub const __SVE_NUM_ZREGS: u32 = 32;
149 pub const __SVE_NUM_PREGS: u32 = 16;
150 pub const __SVE_ZREGS_OFFSET: u32 = 0;
151 pub const PSR_MODE_EL0t: u32 = 0;
152 pub const PSR_MODE_EL1t: u32 = 4;
153 pub const PSR_MODE_EL1h: u32 = 5;
154 pub const PSR_MODE_EL2t: u32 = 8;
155 pub const PSR_MODE_EL2h: u32 = 9;
156 pub const PSR_MODE_EL3t: u32 = 12;
157 pub const PSR_MODE_EL3h: u32 = 13;
158 pub const PSR_MODE_MASK: u32 = 15;
159 pub const PSR_MODE32_BIT: u32 = 16;
160 pub const PSR_F_BIT: u32 = 64;
161 pub const PSR_I_BIT: u32 = 128;
162 pub const PSR_A_BIT: u32 = 256;
163 pub const PSR_D_BIT: u32 = 512;
164 pub const PSR_BTYPE_MASK: u32 = 3072;
165 pub const PSR_SSBS_BIT: u32 = 4096;
166 pub const PSR_PAN_BIT: u32 = 4194304;
167 pub const PSR_UAO_BIT: u32 = 8388608;
168 pub const PSR_DIT_BIT: u32 = 16777216;
169 pub const PSR_TCO_BIT: u32 = 33554432;
170 pub const PSR_V_BIT: u32 = 268435456;
171 pub const PSR_C_BIT: u32 = 536870912;
172 pub const PSR_Z_BIT: u32 = 1073741824;
173 pub const PSR_N_BIT: u32 = 2147483648;
174 pub const PSR_BTYPE_SHIFT: u32 = 10;
175 pub const PSR_f: u32 = 4278190080;
176 pub const PSR_s: u32 = 16711680;
177 pub const PSR_x: u32 = 65280;
178 pub const PSR_c: u32 = 255;
179 pub const PSR_BTYPE_NONE: u32 = 0;
180 pub const PSR_BTYPE_JC: u32 = 1024;
181 pub const PSR_BTYPE_C: u32 = 2048;
182 pub const PSR_BTYPE_J: u32 = 3072;
183 pub const PTRACE_SYSEMU: u32 = 31;
184 pub const PTRACE_SYSEMU_SINGLESTEP: u32 = 32;
185 pub const PTRACE_PEEKMTETAGS: u32 = 33;
186 pub const PTRACE_POKEMTETAGS: u32 = 34;
187 pub const SVE_PT_REGS_MASK: u32 = 1;
188 pub const SVE_PT_REGS_FPSIMD: u32 = 0;
189 pub const SVE_PT_REGS_SVE: u32 = 1;
190 pub const SVE_PT_VL_INHERIT: u32 = 2;
191 pub const SVE_PT_VL_ONEXEC: u32 = 4;
192 pub const KVM_COALESCED_MMIO_PAGE_OFFSET: u32 = 1;
193 pub const KVM_ARM_TARGET_AEM_V8: u32 = 0;
194 pub const KVM_ARM_TARGET_FOUNDATION_V8: u32 = 1;
195 pub const KVM_ARM_TARGET_CORTEX_A57: u32 = 2;
196 pub const KVM_ARM_TARGET_XGENE_POTENZA: u32 = 3;
197 pub const KVM_ARM_TARGET_CORTEX_A53: u32 = 4;
198 pub const KVM_ARM_TARGET_GENERIC_V8: u32 = 5;
199 pub const KVM_ARM_NUM_TARGETS: u32 = 6;
200 pub const KVM_ARM_DEVICE_TYPE_SHIFT: u32 = 0;
201 pub const KVM_ARM_DEVICE_TYPE_MASK: u32 = 65535;
202 pub const KVM_ARM_DEVICE_ID_SHIFT: u32 = 16;
203 pub const KVM_ARM_DEVICE_ID_MASK: u32 = 4294901760;
204 pub const KVM_ARM_DEVICE_VGIC_V2: u32 = 0;
205 pub const KVM_VGIC_V2_ADDR_TYPE_DIST: u32 = 0;
206 pub const KVM_VGIC_V2_ADDR_TYPE_CPU: u32 = 1;
207 pub const KVM_VGIC_V2_DIST_SIZE: u32 = 4096;
208 pub const KVM_VGIC_V2_CPU_SIZE: u32 = 8192;
209 pub const KVM_VGIC_V3_ADDR_TYPE_DIST: u32 = 2;
210 pub const KVM_VGIC_V3_ADDR_TYPE_REDIST: u32 = 3;
211 pub const KVM_VGIC_ITS_ADDR_TYPE: u32 = 4;
212 pub const KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION: u32 = 5;
213 pub const KVM_ARM_VCPU_POWER_OFF: u32 = 0;
214 pub const KVM_ARM_VCPU_EL1_32BIT: u32 = 1;
215 pub const KVM_ARM_VCPU_PSCI_0_2: u32 = 2;
216 pub const KVM_ARM_VCPU_PMU_V3: u32 = 3;
217 pub const KVM_ARM_VCPU_SVE: u32 = 4;
218 pub const KVM_ARM_VCPU_PTRAUTH_ADDRESS: u32 = 5;
219 pub const KVM_ARM_VCPU_PTRAUTH_GENERIC: u32 = 6;
220 pub const KVM_ARM_MAX_DBG_REGS: u32 = 16;
221 pub const KVM_GUESTDBG_USE_SW_BP: u32 = 65536;
222 pub const KVM_GUESTDBG_USE_HW: u32 = 131072;
223 pub const KVM_PMU_EVENT_ALLOW: u32 = 0;
224 pub const KVM_PMU_EVENT_DENY: u32 = 1;
225 pub const KVM_REG_ARM_COPROC_MASK: u32 = 268369920;
226 pub const KVM_REG_ARM_COPROC_SHIFT: u32 = 16;
227 pub const KVM_REG_ARM_CORE: u32 = 1048576;
228 pub const KVM_REG_ARM_DEMUX: u32 = 1114112;
229 pub const KVM_REG_ARM_DEMUX_ID_MASK: u32 = 65280;
230 pub const KVM_REG_ARM_DEMUX_ID_SHIFT: u32 = 8;
231 pub const KVM_REG_ARM_DEMUX_ID_CCSIDR: u32 = 0;
232 pub const KVM_REG_ARM_DEMUX_VAL_MASK: u32 = 255;
233 pub const KVM_REG_ARM_DEMUX_VAL_SHIFT: u32 = 0;
234 pub const KVM_REG_ARM64_SYSREG: u32 = 1245184;
235 pub const KVM_REG_ARM64_SYSREG_OP0_MASK: u32 = 49152;
236 pub const KVM_REG_ARM64_SYSREG_OP0_SHIFT: u32 = 14;
237 pub const KVM_REG_ARM64_SYSREG_OP1_MASK: u32 = 14336;
238 pub const KVM_REG_ARM64_SYSREG_OP1_SHIFT: u32 = 11;
239 pub const KVM_REG_ARM64_SYSREG_CRN_MASK: u32 = 1920;
240 pub const KVM_REG_ARM64_SYSREG_CRN_SHIFT: u32 = 7;
241 pub const KVM_REG_ARM64_SYSREG_CRM_MASK: u32 = 120;
242 pub const KVM_REG_ARM64_SYSREG_CRM_SHIFT: u32 = 3;
243 pub const KVM_REG_ARM64_SYSREG_OP2_MASK: u32 = 7;
244 pub const KVM_REG_ARM64_SYSREG_OP2_SHIFT: u32 = 0;
245 pub const KVM_REG_ARM_FW: u32 = 1310720;
246 pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_1_NOT_AVAIL: u32 = 0;
247 pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_1_AVAIL: u32 = 1;
248 pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_1_NOT_REQUIRED: u32 = 2;
249 pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_NOT_AVAIL: u32 = 0;
250 pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_UNKNOWN: u32 = 1;
251 pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_AVAIL: u32 = 2;
252 pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_NOT_REQUIRED: u32 = 3;
253 pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_ENABLED: u32 = 16;
254 pub const KVM_REG_ARM64_SVE: u32 = 1376256;
255 pub const KVM_REG_ARM64_SVE_ZREG_BASE: u32 = 0;
256 pub const KVM_REG_ARM64_SVE_PREG_BASE: u32 = 1024;
257 pub const KVM_REG_ARM64_SVE_FFR_BASE: u32 = 1536;
258 pub const KVM_ARM64_SVE_NUM_ZREGS: u32 = 32;
259 pub const KVM_ARM64_SVE_NUM_PREGS: u32 = 16;
260 pub const KVM_ARM64_SVE_MAX_SLICES: u32 = 32;
261 pub const KVM_ARM64_SVE_VQ_MIN: u32 = 1;
262 pub const KVM_ARM64_SVE_VQ_MAX: u32 = 512;
263 pub const KVM_ARM64_SVE_VLS_WORDS: u32 = 8;
264 pub const KVM_DEV_ARM_VGIC_GRP_ADDR: u32 = 0;
265 pub const KVM_DEV_ARM_VGIC_GRP_DIST_REGS: u32 = 1;
266 pub const KVM_DEV_ARM_VGIC_GRP_CPU_REGS: u32 = 2;
267 pub const KVM_DEV_ARM_VGIC_CPUID_SHIFT: u32 = 32;
268 pub const KVM_DEV_ARM_VGIC_CPUID_MASK: u64 = 1095216660480;
269 pub const KVM_DEV_ARM_VGIC_V3_MPIDR_SHIFT: u32 = 32;
270 pub const KVM_DEV_ARM_VGIC_V3_MPIDR_MASK: i64 = -4294967296;
271 pub const KVM_DEV_ARM_VGIC_OFFSET_SHIFT: u32 = 0;
272 pub const KVM_DEV_ARM_VGIC_OFFSET_MASK: u32 = 4294967295;
273 pub const KVM_DEV_ARM_VGIC_SYSREG_INSTR_MASK: u32 = 65535;
274 pub const KVM_DEV_ARM_VGIC_GRP_NR_IRQS: u32 = 3;
275 pub const KVM_DEV_ARM_VGIC_GRP_CTRL: u32 = 4;
276 pub const KVM_DEV_ARM_VGIC_GRP_REDIST_REGS: u32 = 5;
277 pub const KVM_DEV_ARM_VGIC_GRP_CPU_SYSREGS: u32 = 6;
278 pub const KVM_DEV_ARM_VGIC_GRP_LEVEL_INFO: u32 = 7;
279 pub const KVM_DEV_ARM_VGIC_GRP_ITS_REGS: u32 = 8;
280 pub const KVM_DEV_ARM_VGIC_LINE_LEVEL_INFO_SHIFT: u32 = 10;
281 pub const KVM_DEV_ARM_VGIC_LINE_LEVEL_INFO_MASK: u32 = 4294966272;
282 pub const KVM_DEV_ARM_VGIC_LINE_LEVEL_INTID_MASK: u32 = 1023;
283 pub const VGIC_LEVEL_INFO_LINE_LEVEL: u32 = 0;
284 pub const KVM_DEV_ARM_VGIC_CTRL_INIT: u32 = 0;
285 pub const KVM_DEV_ARM_ITS_SAVE_TABLES: u32 = 1;
286 pub const KVM_DEV_ARM_ITS_RESTORE_TABLES: u32 = 2;
287 pub const KVM_DEV_ARM_VGIC_SAVE_PENDING_TABLES: u32 = 3;
288 pub const KVM_DEV_ARM_ITS_CTRL_RESET: u32 = 4;
289 pub const KVM_ARM_VCPU_PMU_V3_CTRL: u32 = 0;
290 pub const KVM_ARM_VCPU_PMU_V3_IRQ: u32 = 0;
291 pub const KVM_ARM_VCPU_PMU_V3_INIT: u32 = 1;
292 pub const KVM_ARM_VCPU_PMU_V3_FILTER: u32 = 2;
293 pub const KVM_ARM_VCPU_TIMER_CTRL: u32 = 1;
294 pub const KVM_ARM_VCPU_TIMER_IRQ_VTIMER: u32 = 0;
295 pub const KVM_ARM_VCPU_TIMER_IRQ_PTIMER: u32 = 1;
296 pub const KVM_ARM_VCPU_PVTIME_CTRL: u32 = 2;
297 pub const KVM_ARM_VCPU_PVTIME_IPA: u32 = 0;
298 pub const KVM_ARM_IRQ_VCPU2_SHIFT: u32 = 28;
299 pub const KVM_ARM_IRQ_VCPU2_MASK: u32 = 15;
300 pub const KVM_ARM_IRQ_TYPE_SHIFT: u32 = 24;
301 pub const KVM_ARM_IRQ_TYPE_MASK: u32 = 15;
302 pub const KVM_ARM_IRQ_VCPU_SHIFT: u32 = 16;
303 pub const KVM_ARM_IRQ_VCPU_MASK: u32 = 255;
304 pub const KVM_ARM_IRQ_NUM_SHIFT: u32 = 0;
305 pub const KVM_ARM_IRQ_NUM_MASK: u32 = 65535;
306 pub const KVM_ARM_IRQ_TYPE_CPU: u32 = 0;
307 pub const KVM_ARM_IRQ_TYPE_SPI: u32 = 1;
308 pub const KVM_ARM_IRQ_TYPE_PPI: u32 = 2;
309 pub const KVM_ARM_IRQ_CPU_IRQ: u32 = 0;
310 pub const KVM_ARM_IRQ_CPU_FIQ: u32 = 1;
311 pub const KVM_ARM_IRQ_GIC_MAX: u32 = 127;
312 pub const KVM_NR_IRQCHIPS: u32 = 1;
313 pub const KVM_PSCI_FN_BASE: u32 = 2512501342;
314 pub const KVM_PSCI_RET_SUCCESS: u32 = 0;
315 pub const KVM_PSCI_RET_NI: i32 = -1;
316 pub const KVM_PSCI_RET_INVAL: i32 = -2;
317 pub const KVM_PSCI_RET_DENIED: i32 = -3;
318 pub const KVM_API_VERSION: u32 = 12;
319 pub const KVM_TRC_SHIFT: u32 = 16;
320 pub const KVM_TRC_ENTRYEXIT: u32 = 65536;
321 pub const KVM_TRC_HANDLER: u32 = 131072;
322 pub const KVM_TRC_VMENTRY: u32 = 65537;
323 pub const KVM_TRC_VMEXIT: u32 = 65538;
324 pub const KVM_TRC_PAGE_FAULT: u32 = 131073;
325 pub const KVM_TRC_HEAD_SIZE: u32 = 12;
326 pub const KVM_TRC_CYCLE_SIZE: u32 = 8;
327 pub const KVM_TRC_EXTRA_MAX: u32 = 7;
328 pub const KVM_TRC_INJ_VIRQ: u32 = 131074;
329 pub const KVM_TRC_REDELIVER_EVT: u32 = 131075;
330 pub const KVM_TRC_PEND_INTR: u32 = 131076;
331 pub const KVM_TRC_IO_READ: u32 = 131077;
332 pub const KVM_TRC_IO_WRITE: u32 = 131078;
333 pub const KVM_TRC_CR_READ: u32 = 131079;
334 pub const KVM_TRC_CR_WRITE: u32 = 131080;
335 pub const KVM_TRC_DR_READ: u32 = 131081;
336 pub const KVM_TRC_DR_WRITE: u32 = 131082;
337 pub const KVM_TRC_MSR_READ: u32 = 131083;
338 pub const KVM_TRC_MSR_WRITE: u32 = 131084;
339 pub const KVM_TRC_CPUID: u32 = 131085;
340 pub const KVM_TRC_INTR: u32 = 131086;
341 pub const KVM_TRC_NMI: u32 = 131087;
342 pub const KVM_TRC_VMMCALL: u32 = 131088;
343 pub const KVM_TRC_HLT: u32 = 131089;
344 pub const KVM_TRC_CLTS: u32 = 131090;
345 pub const KVM_TRC_LMSW: u32 = 131091;
346 pub const KVM_TRC_APIC_ACCESS: u32 = 131092;
347 pub const KVM_TRC_TDP_FAULT: u32 = 131093;
348 pub const KVM_TRC_GTLB_WRITE: u32 = 131094;
349 pub const KVM_TRC_STLB_WRITE: u32 = 131095;
350 pub const KVM_TRC_STLB_INVAL: u32 = 131096;
351 pub const KVM_TRC_PPC_INSTR: u32 = 131097;
352 pub const KVM_MEM_LOG_DIRTY_PAGES: u32 = 1;
353 pub const KVM_MEM_READONLY: u32 = 2;
354 pub const KVM_PIT_SPEAKER_DUMMY: u32 = 1;
355 pub const KVM_S390_CMMA_PEEK: u32 = 1;
356 pub const KVM_EXIT_HYPERV_SYNIC: u32 = 1;
357 pub const KVM_EXIT_HYPERV_HCALL: u32 = 2;
358 pub const KVM_EXIT_HYPERV_SYNDBG: u32 = 3;
359 pub const KVM_S390_GET_SKEYS_NONE: u32 = 1;
360 pub const KVM_S390_SKEYS_MAX: u32 = 1048576;
361 pub const KVM_EXIT_UNKNOWN: u32 = 0;
362 pub const KVM_EXIT_EXCEPTION: u32 = 1;
363 pub const KVM_EXIT_IO: u32 = 2;
364 pub const KVM_EXIT_HYPERCALL: u32 = 3;
365 pub const KVM_EXIT_DEBUG: u32 = 4;
366 pub const KVM_EXIT_HLT: u32 = 5;
367 pub const KVM_EXIT_MMIO: u32 = 6;
368 pub const KVM_EXIT_IRQ_WINDOW_OPEN: u32 = 7;
369 pub const KVM_EXIT_SHUTDOWN: u32 = 8;
370 pub const KVM_EXIT_FAIL_ENTRY: u32 = 9;
371 pub const KVM_EXIT_INTR: u32 = 10;
372 pub const KVM_EXIT_SET_TPR: u32 = 11;
373 pub const KVM_EXIT_TPR_ACCESS: u32 = 12;
374 pub const KVM_EXIT_S390_SIEIC: u32 = 13;
375 pub const KVM_EXIT_S390_RESET: u32 = 14;
376 pub const KVM_EXIT_DCR: u32 = 15;
377 pub const KVM_EXIT_NMI: u32 = 16;
378 pub const KVM_EXIT_INTERNAL_ERROR: u32 = 17;
379 pub const KVM_EXIT_OSI: u32 = 18;
380 pub const KVM_EXIT_PAPR_HCALL: u32 = 19;
381 pub const KVM_EXIT_S390_UCONTROL: u32 = 20;
382 pub const KVM_EXIT_WATCHDOG: u32 = 21;
383 pub const KVM_EXIT_S390_TSCH: u32 = 22;
384 pub const KVM_EXIT_EPR: u32 = 23;
385 pub const KVM_EXIT_SYSTEM_EVENT: u32 = 24;
386 pub const KVM_EXIT_S390_STSI: u32 = 25;
387 pub const KVM_EXIT_IOAPIC_EOI: u32 = 26;
388 pub const KVM_EXIT_HYPERV: u32 = 27;
389 pub const KVM_EXIT_ARM_NISV: u32 = 28;
390 pub const KVM_EXIT_X86_RDMSR: u32 = 29;
391 pub const KVM_EXIT_X86_WRMSR: u32 = 30;
392 pub const KVM_INTERNAL_ERROR_EMULATION: u32 = 1;
393 pub const KVM_INTERNAL_ERROR_SIMUL_EX: u32 = 2;
394 pub const KVM_INTERNAL_ERROR_DELIVERY_EV: u32 = 3;
395 pub const KVM_INTERNAL_ERROR_UNEXPECTED_EXIT_REASON: u32 = 4;
396 pub const KVM_EXIT_IO_IN: u32 = 0;
397 pub const KVM_EXIT_IO_OUT: u32 = 1;
398 pub const KVM_S390_RESET_POR: u32 = 1;
399 pub const KVM_S390_RESET_CLEAR: u32 = 2;
400 pub const KVM_S390_RESET_SUBSYSTEM: u32 = 4;
401 pub const KVM_S390_RESET_CPU_INIT: u32 = 8;
402 pub const KVM_S390_RESET_IPL: u32 = 16;
403 pub const KVM_SYSTEM_EVENT_SHUTDOWN: u32 = 1;
404 pub const KVM_SYSTEM_EVENT_RESET: u32 = 2;
405 pub const KVM_SYSTEM_EVENT_CRASH: u32 = 3;
406 pub const KVM_MSR_EXIT_REASON_INVAL: u32 = 1;
407 pub const KVM_MSR_EXIT_REASON_UNKNOWN: u32 = 2;
408 pub const KVM_MSR_EXIT_REASON_FILTER: u32 = 4;
409 pub const SYNC_REGS_SIZE_BYTES: u32 = 2048;
410 pub const KVM_S390_MEMOP_LOGICAL_READ: u32 = 0;
411 pub const KVM_S390_MEMOP_LOGICAL_WRITE: u32 = 1;
412 pub const KVM_S390_MEMOP_SIDA_READ: u32 = 2;
413 pub const KVM_S390_MEMOP_SIDA_WRITE: u32 = 3;
414 pub const KVM_S390_MEMOP_F_CHECK_ONLY: u32 = 1;
415 pub const KVM_S390_MEMOP_F_INJECT_EXCEPTION: u32 = 2;
416 pub const KVM_MP_STATE_RUNNABLE: u32 = 0;
417 pub const KVM_MP_STATE_UNINITIALIZED: u32 = 1;
418 pub const KVM_MP_STATE_INIT_RECEIVED: u32 = 2;
419 pub const KVM_MP_STATE_HALTED: u32 = 3;
420 pub const KVM_MP_STATE_SIPI_RECEIVED: u32 = 4;
421 pub const KVM_MP_STATE_STOPPED: u32 = 5;
422 pub const KVM_MP_STATE_CHECK_STOP: u32 = 6;
423 pub const KVM_MP_STATE_OPERATING: u32 = 7;
424 pub const KVM_MP_STATE_LOAD: u32 = 8;
425 pub const KVM_S390_SIGP_STOP: u32 = 4294836224;
426 pub const KVM_S390_PROGRAM_INT: u32 = 4294836225;
427 pub const KVM_S390_SIGP_SET_PREFIX: u32 = 4294836226;
428 pub const KVM_S390_RESTART: u32 = 4294836227;
429 pub const KVM_S390_INT_PFAULT_INIT: u32 = 4294836228;
430 pub const KVM_S390_INT_PFAULT_DONE: u32 = 4294836229;
431 pub const KVM_S390_MCHK: u32 = 4294840320;
432 pub const KVM_S390_INT_CLOCK_COMP: u32 = 4294905860;
433 pub const KVM_S390_INT_CPU_TIMER: u32 = 4294905861;
434 pub const KVM_S390_INT_VIRTIO: u32 = 4294911491;
435 pub const KVM_S390_INT_SERVICE: u32 = 4294910977;
436 pub const KVM_S390_INT_EMERGENCY: u32 = 4294906369;
437 pub const KVM_S390_INT_EXTERNAL_CALL: u32 = 4294906370;
438 pub const KVM_S390_INT_IO_MIN: u32 = 0;
439 pub const KVM_S390_INT_IO_MAX: u32 = 4294836223;
440 pub const KVM_S390_INT_IO_AI_MASK: u32 = 67108864;
441 pub const KVM_S390_PGM_FLAGS_ILC_VALID: u32 = 1;
442 pub const KVM_S390_PGM_FLAGS_ILC_0: u32 = 2;
443 pub const KVM_S390_PGM_FLAGS_ILC_1: u32 = 4;
444 pub const KVM_S390_PGM_FLAGS_ILC_MASK: u32 = 6;
445 pub const KVM_S390_PGM_FLAGS_NO_REWIND: u32 = 8;
446 pub const KVM_S390_STOP_FLAG_STORE_STATUS: u32 = 1;
447 pub const KVM_GUESTDBG_ENABLE: u32 = 1;
448 pub const KVM_GUESTDBG_SINGLESTEP: u32 = 2;
449 pub const KVM_X86_DISABLE_EXITS_MWAIT: u32 = 1;
450 pub const KVM_X86_DISABLE_EXITS_HLT: u32 = 2;
451 pub const KVM_X86_DISABLE_EXITS_PAUSE: u32 = 4;
452 pub const KVM_X86_DISABLE_EXITS_CSTATE: u32 = 8;
453 pub const KVM_X86_DISABLE_VALID_EXITS: u32 = 15;
454 pub const KVM_PPC_PVINFO_FLAGS_EV_IDLE: u32 = 1;
455 pub const KVM_PPC_PAGE_SIZES_MAX_SZ: u32 = 8;
456 pub const KVM_PPC_PAGE_SIZES_REAL: u32 = 1;
457 pub const KVM_PPC_1T_SEGMENTS: u32 = 2;
458 pub const KVM_PPC_NO_HASH: u32 = 4;
459 pub const KVMIO: u32 = 174;
460 pub const KVM_VM_S390_UCONTROL: u32 = 1;
461 pub const KVM_VM_PPC_HV: u32 = 1;
462 pub const KVM_VM_PPC_PR: u32 = 2;
463 pub const KVM_VM_MIPS_AUTO: u32 = 0;
464 pub const KVM_VM_MIPS_VZ: u32 = 1;
465 pub const KVM_VM_MIPS_TE: u32 = 2;
466 pub const KVM_S390_SIE_PAGE_OFFSET: u32 = 1;
467 pub const KVM_VM_TYPE_ARM_IPA_SIZE_MASK: u32 = 255;
468 pub const KVM_CAP_IRQCHIP: u32 = 0;
469 pub const KVM_CAP_HLT: u32 = 1;
470 pub const KVM_CAP_MMU_SHADOW_CACHE_CONTROL: u32 = 2;
471 pub const KVM_CAP_USER_MEMORY: u32 = 3;
472 pub const KVM_CAP_SET_TSS_ADDR: u32 = 4;
473 pub const KVM_CAP_VAPIC: u32 = 6;
474 pub const KVM_CAP_EXT_CPUID: u32 = 7;
475 pub const KVM_CAP_CLOCKSOURCE: u32 = 8;
476 pub const KVM_CAP_NR_VCPUS: u32 = 9;
477 pub const KVM_CAP_NR_MEMSLOTS: u32 = 10;
478 pub const KVM_CAP_PIT: u32 = 11;
479 pub const KVM_CAP_NOP_IO_DELAY: u32 = 12;
480 pub const KVM_CAP_PV_MMU: u32 = 13;
481 pub const KVM_CAP_MP_STATE: u32 = 14;
482 pub const KVM_CAP_COALESCED_MMIO: u32 = 15;
483 pub const KVM_CAP_SYNC_MMU: u32 = 16;
484 pub const KVM_CAP_IOMMU: u32 = 18;
485 pub const KVM_CAP_DESTROY_MEMORY_REGION_WORKS: u32 = 21;
486 pub const KVM_CAP_USER_NMI: u32 = 22;
487 pub const KVM_CAP_SET_GUEST_DEBUG: u32 = 23;
488 pub const KVM_CAP_IRQ_ROUTING: u32 = 25;
489 pub const KVM_CAP_IRQ_INJECT_STATUS: u32 = 26;
490 pub const KVM_CAP_ASSIGN_DEV_IRQ: u32 = 29;
491 pub const KVM_CAP_JOIN_MEMORY_REGIONS_WORKS: u32 = 30;
492 pub const KVM_CAP_IRQFD: u32 = 32;
493 pub const KVM_CAP_SET_BOOT_CPU_ID: u32 = 34;
494 pub const KVM_CAP_IOEVENTFD: u32 = 36;
495 pub const KVM_CAP_SET_IDENTITY_MAP_ADDR: u32 = 37;
496 pub const KVM_CAP_ADJUST_CLOCK: u32 = 39;
497 pub const KVM_CAP_INTERNAL_ERROR_DATA: u32 = 40;
498 pub const KVM_CAP_VCPU_EVENTS: u32 = 41;
499 pub const KVM_CAP_S390_PSW: u32 = 42;
500 pub const KVM_CAP_PPC_SEGSTATE: u32 = 43;
501 pub const KVM_CAP_HYPERV: u32 = 44;
502 pub const KVM_CAP_HYPERV_VAPIC: u32 = 45;
503 pub const KVM_CAP_HYPERV_SPIN: u32 = 46;
504 pub const KVM_CAP_PCI_SEGMENT: u32 = 47;
505 pub const KVM_CAP_PPC_PAIRED_SINGLES: u32 = 48;
506 pub const KVM_CAP_INTR_SHADOW: u32 = 49;
507 pub const KVM_CAP_X86_ROBUST_SINGLESTEP: u32 = 51;
508 pub const KVM_CAP_PPC_OSI: u32 = 52;
509 pub const KVM_CAP_PPC_UNSET_IRQ: u32 = 53;
510 pub const KVM_CAP_ENABLE_CAP: u32 = 54;
511 pub const KVM_CAP_PPC_GET_PVINFO: u32 = 57;
512 pub const KVM_CAP_PPC_IRQ_LEVEL: u32 = 58;
513 pub const KVM_CAP_ASYNC_PF: u32 = 59;
514 pub const KVM_CAP_TSC_CONTROL: u32 = 60;
515 pub const KVM_CAP_GET_TSC_KHZ: u32 = 61;
516 pub const KVM_CAP_PPC_BOOKE_SREGS: u32 = 62;
517 pub const KVM_CAP_SPAPR_TCE: u32 = 63;
518 pub const KVM_CAP_PPC_SMT: u32 = 64;
519 pub const KVM_CAP_PPC_RMA: u32 = 65;
520 pub const KVM_CAP_MAX_VCPUS: u32 = 66;
521 pub const KVM_CAP_PPC_HIOR: u32 = 67;
522 pub const KVM_CAP_PPC_PAPR: u32 = 68;
523 pub const KVM_CAP_SW_TLB: u32 = 69;
524 pub const KVM_CAP_ONE_REG: u32 = 70;
525 pub const KVM_CAP_S390_GMAP: u32 = 71;
526 pub const KVM_CAP_TSC_DEADLINE_TIMER: u32 = 72;
527 pub const KVM_CAP_S390_UCONTROL: u32 = 73;
528 pub const KVM_CAP_SYNC_REGS: u32 = 74;
529 pub const KVM_CAP_PCI_2_3: u32 = 75;
530 pub const KVM_CAP_KVMCLOCK_CTRL: u32 = 76;
531 pub const KVM_CAP_SIGNAL_MSI: u32 = 77;
532 pub const KVM_CAP_PPC_GET_SMMU_INFO: u32 = 78;
533 pub const KVM_CAP_S390_COW: u32 = 79;
534 pub const KVM_CAP_PPC_ALLOC_HTAB: u32 = 80;
535 pub const KVM_CAP_READONLY_MEM: u32 = 81;
536 pub const KVM_CAP_IRQFD_RESAMPLE: u32 = 82;
537 pub const KVM_CAP_PPC_BOOKE_WATCHDOG: u32 = 83;
538 pub const KVM_CAP_PPC_HTAB_FD: u32 = 84;
539 pub const KVM_CAP_S390_CSS_SUPPORT: u32 = 85;
540 pub const KVM_CAP_PPC_EPR: u32 = 86;
541 pub const KVM_CAP_ARM_PSCI: u32 = 87;
542 pub const KVM_CAP_ARM_SET_DEVICE_ADDR: u32 = 88;
543 pub const KVM_CAP_DEVICE_CTRL: u32 = 89;
544 pub const KVM_CAP_IRQ_MPIC: u32 = 90;
545 pub const KVM_CAP_PPC_RTAS: u32 = 91;
546 pub const KVM_CAP_IRQ_XICS: u32 = 92;
547 pub const KVM_CAP_ARM_EL1_32BIT: u32 = 93;
548 pub const KVM_CAP_SPAPR_MULTITCE: u32 = 94;
549 pub const KVM_CAP_EXT_EMUL_CPUID: u32 = 95;
550 pub const KVM_CAP_HYPERV_TIME: u32 = 96;
551 pub const KVM_CAP_IOAPIC_POLARITY_IGNORED: u32 = 97;
552 pub const KVM_CAP_ENABLE_CAP_VM: u32 = 98;
553 pub const KVM_CAP_S390_IRQCHIP: u32 = 99;
554 pub const KVM_CAP_IOEVENTFD_NO_LENGTH: u32 = 100;
555 pub const KVM_CAP_VM_ATTRIBUTES: u32 = 101;
556 pub const KVM_CAP_ARM_PSCI_0_2: u32 = 102;
557 pub const KVM_CAP_PPC_FIXUP_HCALL: u32 = 103;
558 pub const KVM_CAP_PPC_ENABLE_HCALL: u32 = 104;
559 pub const KVM_CAP_CHECK_EXTENSION_VM: u32 = 105;
560 pub const KVM_CAP_S390_USER_SIGP: u32 = 106;
561 pub const KVM_CAP_S390_VECTOR_REGISTERS: u32 = 107;
562 pub const KVM_CAP_S390_MEM_OP: u32 = 108;
563 pub const KVM_CAP_S390_USER_STSI: u32 = 109;
564 pub const KVM_CAP_S390_SKEYS: u32 = 110;
565 pub const KVM_CAP_MIPS_FPU: u32 = 111;
566 pub const KVM_CAP_MIPS_MSA: u32 = 112;
567 pub const KVM_CAP_S390_INJECT_IRQ: u32 = 113;
568 pub const KVM_CAP_S390_IRQ_STATE: u32 = 114;
569 pub const KVM_CAP_PPC_HWRNG: u32 = 115;
570 pub const KVM_CAP_DISABLE_QUIRKS: u32 = 116;
571 pub const KVM_CAP_X86_SMM: u32 = 117;
572 pub const KVM_CAP_MULTI_ADDRESS_SPACE: u32 = 118;
573 pub const KVM_CAP_GUEST_DEBUG_HW_BPS: u32 = 119;
574 pub const KVM_CAP_GUEST_DEBUG_HW_WPS: u32 = 120;
575 pub const KVM_CAP_SPLIT_IRQCHIP: u32 = 121;
576 pub const KVM_CAP_IOEVENTFD_ANY_LENGTH: u32 = 122;
577 pub const KVM_CAP_HYPERV_SYNIC: u32 = 123;
578 pub const KVM_CAP_S390_RI: u32 = 124;
579 pub const KVM_CAP_SPAPR_TCE_64: u32 = 125;
580 pub const KVM_CAP_ARM_PMU_V3: u32 = 126;
581 pub const KVM_CAP_VCPU_ATTRIBUTES: u32 = 127;
582 pub const KVM_CAP_MAX_VCPU_ID: u32 = 128;
583 pub const KVM_CAP_X2APIC_API: u32 = 129;
584 pub const KVM_CAP_S390_USER_INSTR0: u32 = 130;
585 pub const KVM_CAP_MSI_DEVID: u32 = 131;
586 pub const KVM_CAP_PPC_HTM: u32 = 132;
587 pub const KVM_CAP_SPAPR_RESIZE_HPT: u32 = 133;
588 pub const KVM_CAP_PPC_MMU_RADIX: u32 = 134;
589 pub const KVM_CAP_PPC_MMU_HASH_V3: u32 = 135;
590 pub const KVM_CAP_IMMEDIATE_EXIT: u32 = 136;
591 pub const KVM_CAP_MIPS_VZ: u32 = 137;
592 pub const KVM_CAP_MIPS_TE: u32 = 138;
593 pub const KVM_CAP_MIPS_64BIT: u32 = 139;
594 pub const KVM_CAP_S390_GS: u32 = 140;
595 pub const KVM_CAP_S390_AIS: u32 = 141;
596 pub const KVM_CAP_SPAPR_TCE_VFIO: u32 = 142;
597 pub const KVM_CAP_X86_DISABLE_EXITS: u32 = 143;
598 pub const KVM_CAP_ARM_USER_IRQ: u32 = 144;
599 pub const KVM_CAP_S390_CMMA_MIGRATION: u32 = 145;
600 pub const KVM_CAP_PPC_FWNMI: u32 = 146;
601 pub const KVM_CAP_PPC_SMT_POSSIBLE: u32 = 147;
602 pub const KVM_CAP_HYPERV_SYNIC2: u32 = 148;
603 pub const KVM_CAP_HYPERV_VP_INDEX: u32 = 149;
604 pub const KVM_CAP_S390_AIS_MIGRATION: u32 = 150;
605 pub const KVM_CAP_PPC_GET_CPU_CHAR: u32 = 151;
606 pub const KVM_CAP_S390_BPB: u32 = 152;
607 pub const KVM_CAP_GET_MSR_FEATURES: u32 = 153;
608 pub const KVM_CAP_HYPERV_EVENTFD: u32 = 154;
609 pub const KVM_CAP_HYPERV_TLBFLUSH: u32 = 155;
610 pub const KVM_CAP_S390_HPAGE_1M: u32 = 156;
611 pub const KVM_CAP_NESTED_STATE: u32 = 157;
612 pub const KVM_CAP_ARM_INJECT_SERROR_ESR: u32 = 158;
613 pub const KVM_CAP_MSR_PLATFORM_INFO: u32 = 159;
614 pub const KVM_CAP_PPC_NESTED_HV: u32 = 160;
615 pub const KVM_CAP_HYPERV_SEND_IPI: u32 = 161;
616 pub const KVM_CAP_COALESCED_PIO: u32 = 162;
617 pub const KVM_CAP_HYPERV_ENLIGHTENED_VMCS: u32 = 163;
618 pub const KVM_CAP_EXCEPTION_PAYLOAD: u32 = 164;
619 pub const KVM_CAP_ARM_VM_IPA_SIZE: u32 = 165;
620 pub const KVM_CAP_MANUAL_DIRTY_LOG_PROTECT: u32 = 166;
621 pub const KVM_CAP_HYPERV_CPUID: u32 = 167;
622 pub const KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2: u32 = 168;
623 pub const KVM_CAP_PPC_IRQ_XIVE: u32 = 169;
624 pub const KVM_CAP_ARM_SVE: u32 = 170;
625 pub const KVM_CAP_ARM_PTRAUTH_ADDRESS: u32 = 171;
626 pub const KVM_CAP_ARM_PTRAUTH_GENERIC: u32 = 172;
627 pub const KVM_CAP_PMU_EVENT_FILTER: u32 = 173;
628 pub const KVM_CAP_ARM_IRQ_LINE_LAYOUT_2: u32 = 174;
629 pub const KVM_CAP_HYPERV_DIRECT_TLBFLUSH: u32 = 175;
630 pub const KVM_CAP_PPC_GUEST_DEBUG_SSTEP: u32 = 176;
631 pub const KVM_CAP_ARM_NISV_TO_USER: u32 = 177;
632 pub const KVM_CAP_ARM_INJECT_EXT_DABT: u32 = 178;
633 pub const KVM_CAP_S390_VCPU_RESETS: u32 = 179;
634 pub const KVM_CAP_S390_PROTECTED: u32 = 180;
635 pub const KVM_CAP_PPC_SECURE_GUEST: u32 = 181;
636 pub const KVM_CAP_HALT_POLL: u32 = 182;
637 pub const KVM_CAP_ASYNC_PF_INT: u32 = 183;
638 pub const KVM_CAP_LAST_CPU: u32 = 184;
639 pub const KVM_CAP_SMALLER_MAXPHYADDR: u32 = 185;
640 pub const KVM_CAP_S390_DIAG318: u32 = 186;
641 pub const KVM_CAP_STEAL_TIME: u32 = 187;
642 pub const KVM_CAP_X86_USER_SPACE_MSR: u32 = 188;
643 pub const KVM_CAP_X86_MSR_FILTER: u32 = 189;
644 pub const KVM_CAP_ENFORCE_PV_FEATURE_CPUID: u32 = 190;
645 pub const KVM_IRQ_ROUTING_IRQCHIP: u32 = 1;
646 pub const KVM_IRQ_ROUTING_MSI: u32 = 2;
647 pub const KVM_IRQ_ROUTING_S390_ADAPTER: u32 = 3;
648 pub const KVM_IRQ_ROUTING_HV_SINT: u32 = 4;
649 pub const KVM_IRQFD_FLAG_DEASSIGN: u32 = 1;
650 pub const KVM_IRQFD_FLAG_RESAMPLE: u32 = 2;
651 pub const KVM_CLOCK_TSC_STABLE: u32 = 2;
652 pub const KVM_MMU_FSL_BOOKE_NOHV: u32 = 0;
653 pub const KVM_MMU_FSL_BOOKE_HV: u32 = 1;
654 pub const KVM_REG_ARCH_MASK: i64 = -72057594037927936;
655 pub const KVM_REG_GENERIC: u32 = 0;
656 pub const KVM_REG_PPC: u64 = 1152921504606846976;
657 pub const KVM_REG_X86: u64 = 2305843009213693952;
658 pub const KVM_REG_IA64: u64 = 3458764513820540928;
659 pub const KVM_REG_ARM: u64 = 4611686018427387904;
660 pub const KVM_REG_S390: u64 = 5764607523034234880;
661 pub const KVM_REG_ARM64: u64 = 6917529027641081856;
662 pub const KVM_REG_MIPS: u64 = 8070450532247928832;
663 pub const KVM_REG_RISCV: i64 = -9223372036854775808;
664 pub const KVM_REG_SIZE_SHIFT: u32 = 52;
665 pub const KVM_REG_SIZE_MASK: u64 = 67553994410557440;
666 pub const KVM_REG_SIZE_U8: u32 = 0;
667 pub const KVM_REG_SIZE_U16: u64 = 4503599627370496;
668 pub const KVM_REG_SIZE_U32: u64 = 9007199254740992;
669 pub const KVM_REG_SIZE_U64: u64 = 13510798882111488;
670 pub const KVM_REG_SIZE_U128: u64 = 18014398509481984;
671 pub const KVM_REG_SIZE_U256: u64 = 22517998136852480;
672 pub const KVM_REG_SIZE_U512: u64 = 27021597764222976;
673 pub const KVM_REG_SIZE_U1024: u64 = 31525197391593472;
674 pub const KVM_REG_SIZE_U2048: u64 = 36028797018963968;
675 pub const KVM_MSI_VALID_DEVID: u32 = 1;
676 pub const KVM_CREATE_DEVICE_TEST: u32 = 1;
677 pub const KVM_DEV_VFIO_GROUP: u32 = 1;
678 pub const KVM_DEV_VFIO_GROUP_ADD: u32 = 1;
679 pub const KVM_DEV_VFIO_GROUP_DEL: u32 = 2;
680 pub const KVM_DEV_VFIO_GROUP_SET_SPAPR_TCE: u32 = 3;
681 pub const KVM_S390_STORE_STATUS_NOADDR: i32 = -1;
682 pub const KVM_S390_STORE_STATUS_PREFIXED: i32 = -2;
683 pub const KVM_DEV_ASSIGN_ENABLE_IOMMU: u32 = 1;
684 pub const KVM_DEV_ASSIGN_PCI_2_3: u32 = 2;
685 pub const KVM_DEV_ASSIGN_MASK_INTX: u32 = 4;
686 pub const KVM_DEV_IRQ_HOST_INTX: u32 = 1;
687 pub const KVM_DEV_IRQ_HOST_MSI: u32 = 2;
688 pub const KVM_DEV_IRQ_HOST_MSIX: u32 = 4;
689 pub const KVM_DEV_IRQ_GUEST_INTX: u32 = 256;
690 pub const KVM_DEV_IRQ_GUEST_MSI: u32 = 512;
691 pub const KVM_DEV_IRQ_GUEST_MSIX: u32 = 1024;
692 pub const KVM_DEV_IRQ_HOST_MASK: u32 = 255;
693 pub const KVM_DEV_IRQ_GUEST_MASK: u32 = 65280;
694 pub const KVM_MAX_MSIX_PER_DEV: u32 = 256;
695 pub const KVM_X2APIC_API_USE_32BIT_IDS: u32 = 1;
696 pub const KVM_X2APIC_API_DISABLE_BROADCAST_QUIRK: u32 = 2;
697 pub const KVM_ARM_DEV_EL1_VTIMER: u32 = 1;
698 pub const KVM_ARM_DEV_EL1_PTIMER: u32 = 2;
699 pub const KVM_ARM_DEV_PMU: u32 = 4;
700 pub const KVM_HYPERV_CONN_ID_MASK: u32 = 16777215;
701 pub const KVM_HYPERV_EVENTFD_DEASSIGN: u32 = 1;
702 pub const KVM_DIRTY_LOG_MANUAL_PROTECT_ENABLE: u32 = 1;
703 pub const KVM_DIRTY_LOG_INITIALLY_SET: u32 = 2;
704 pub type __le16 = u16;
705 pub type __be16 = u16;
706 pub type __le32 = u32;
707 pub type __be32 = u32;
708 pub type __le64 = u64;
709 pub type __be64 = u64;
710 pub type __sum16 = u16;
711 pub type __wsum = u32;
712 pub type __poll_t = ::std::os::raw::c_uint;
713 #[repr(C)]
714 #[derive(Debug, Default, Copy, Clone)]
715 pub struct user_pt_regs {
716     pub regs: [u64; 31usize],
717     pub sp: u64,
718     pub pc: u64,
719     pub pstate: u64,
720 }
721 #[repr(C)]
722 #[repr(align(16))]
723 #[derive(Debug, Default, Copy, Clone)]
724 pub struct user_fpsimd_state {
725     pub vregs: [__uint128_t; 32usize],
726     pub fpsr: u32,
727     pub fpcr: u32,
728     pub __reserved: [u32; 2usize],
729 }
730 #[repr(C)]
731 #[derive(Debug, Default, Copy, Clone)]
732 pub struct user_hwdebug_state {
733     pub dbg_info: u32,
734     pub pad: u32,
735     pub dbg_regs: [user_hwdebug_state__bindgen_ty_1; 16usize],
736 }
737 #[repr(C)]
738 #[derive(Debug, Default, Copy, Clone)]
739 pub struct user_hwdebug_state__bindgen_ty_1 {
740     pub addr: u64,
741     pub ctrl: u32,
742     pub pad: u32,
743 }
744 #[repr(C)]
745 #[derive(Debug, Default, Copy, Clone)]
746 pub struct user_sve_header {
747     pub size: u32,
748     pub max_size: u32,
749     pub vl: u16,
750     pub max_vl: u16,
751     pub flags: u16,
752     pub __reserved: u16,
753 }
754 #[repr(C)]
755 #[derive(Debug, Default, Copy, Clone)]
756 pub struct user_pac_mask {
757     pub data_mask: u64,
758     pub insn_mask: u64,
759 }
760 #[repr(C)]
761 #[repr(align(16))]
762 #[derive(Debug, Default, Copy, Clone)]
763 pub struct user_pac_address_keys {
764     pub apiakey: __uint128_t,
765     pub apibkey: __uint128_t,
766     pub apdakey: __uint128_t,
767     pub apdbkey: __uint128_t,
768 }
769 #[repr(C)]
770 #[repr(align(16))]
771 #[derive(Debug, Default, Copy, Clone)]
772 pub struct user_pac_generic_keys {
773     pub apgakey: __uint128_t,
774 }
775 #[repr(C)]
776 #[repr(align(16))]
777 #[derive(Debug, Default, Copy, Clone)]
778 pub struct kvm_regs {
779     pub regs: user_pt_regs,
780     pub sp_el1: u64,
781     pub elr_el1: u64,
782     pub spsr: [u64; 5usize],
783     pub __bindgen_padding_0: u64,
784     pub fp_regs: user_fpsimd_state,
785 }
786 #[repr(C)]
787 #[derive(Debug, Default, Copy, Clone)]
788 pub struct kvm_vcpu_init {
789     pub target: u32,
790     pub features: [u32; 7usize],
791 }
792 #[repr(C)]
793 #[derive(Debug, Default, Copy, Clone)]
794 pub struct kvm_sregs {}
795 #[repr(C)]
796 #[derive(Debug, Default, Copy, Clone)]
797 pub struct kvm_fpu {}
798 #[repr(C)]
799 #[derive(Debug, Default, Copy, Clone)]
800 pub struct kvm_guest_debug_arch {
801     pub dbg_bcr: [u64; 16usize],
802     pub dbg_bvr: [u64; 16usize],
803     pub dbg_wcr: [u64; 16usize],
804     pub dbg_wvr: [u64; 16usize],
805 }
806 #[repr(C)]
807 #[derive(Debug, Default, Copy, Clone)]
808 pub struct kvm_debug_exit_arch {
809     pub hsr: u32,
810     pub far: u64,
811 }
812 #[repr(C)]
813 #[derive(Debug, Default, Copy, Clone)]
814 pub struct kvm_sync_regs {
815     pub device_irq_level: u64,
816 }
817 #[repr(C)]
818 #[derive(Debug, Default, Copy, Clone)]
819 pub struct kvm_pmu_event_filter {
820     pub base_event: u16,
821     pub nevents: u16,
822     pub action: u8,
823     pub pad: [u8; 3usize],
824 }
825 #[repr(C)]
826 #[derive(Debug, Default, Copy, Clone)]
827 pub struct kvm_vcpu_events {
828     pub exception: kvm_vcpu_events__bindgen_ty_1,
829     pub reserved: [u32; 12usize],
830 }
831 #[repr(C)]
832 #[derive(Debug, Default, Copy, Clone)]
833 pub struct kvm_vcpu_events__bindgen_ty_1 {
834     pub serror_pending: u8,
835     pub serror_has_esr: u8,
836     pub ext_dabt_pending: u8,
837     pub pad: [u8; 5usize],
838     pub serror_esr: u64,
839 }
840 #[repr(C)]
841 #[derive(Debug, Default, Copy, Clone)]
842 pub struct kvm_user_trace_setup {
843     pub buf_size: u32,
844     pub buf_nr: u32,
845 }
846 #[repr(C)]
847 #[derive(Debug, Default, Copy, Clone)]
848 pub struct kvm_breakpoint {
849     pub enabled: u32,
850     pub padding: u32,
851     pub address: u64,
852 }
853 #[repr(C)]
854 #[derive(Debug, Default, Copy, Clone)]
855 pub struct kvm_debug_guest {
856     pub enabled: u32,
857     pub pad: u32,
858     pub breakpoints: [kvm_breakpoint; 4usize],
859     pub singlestep: u32,
860 }
861 #[repr(C)]
862 #[derive(Debug, Default, Copy, Clone)]
863 pub struct kvm_memory_region {
864     pub slot: u32,
865     pub flags: u32,
866     pub guest_phys_addr: u64,
867     pub memory_size: u64,
868 }
869 #[repr(C)]
870 #[derive(Debug, Default, Copy, Clone)]
871 pub struct kvm_userspace_memory_region {
872     pub slot: u32,
873     pub flags: u32,
874     pub guest_phys_addr: u64,
875     pub memory_size: u64,
876     pub userspace_addr: u64,
877 }
878 #[repr(C)]
879 #[derive(Copy, Clone)]
880 pub struct kvm_irq_level {
881     pub __bindgen_anon_1: kvm_irq_level__bindgen_ty_1,
882     pub level: u32,
883 }
884 #[repr(C)]
885 #[derive(Copy, Clone)]
886 pub union kvm_irq_level__bindgen_ty_1 {
887     pub irq: u32,
888     pub status: i32,
889 }
890 impl Default for kvm_irq_level__bindgen_ty_1 {
default() -> Self891     fn default() -> Self {
892         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
893         unsafe {
894             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
895             s.assume_init()
896         }
897     }
898 }
899 impl Default for kvm_irq_level {
default() -> Self900     fn default() -> Self {
901         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
902         unsafe {
903             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
904             s.assume_init()
905         }
906     }
907 }
908 #[repr(C)]
909 #[derive(Copy, Clone)]
910 pub struct kvm_irqchip {
911     pub chip_id: u32,
912     pub pad: u32,
913     pub chip: kvm_irqchip__bindgen_ty_1,
914 }
915 #[repr(C)]
916 #[derive(Copy, Clone)]
917 pub union kvm_irqchip__bindgen_ty_1 {
918     pub dummy: [::std::os::raw::c_char; 512usize],
919 }
920 impl Default for kvm_irqchip__bindgen_ty_1 {
default() -> Self921     fn default() -> Self {
922         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
923         unsafe {
924             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
925             s.assume_init()
926         }
927     }
928 }
929 impl Default for kvm_irqchip {
default() -> Self930     fn default() -> Self {
931         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
932         unsafe {
933             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
934             s.assume_init()
935         }
936     }
937 }
938 #[repr(C)]
939 #[derive(Debug, Default, Copy, Clone)]
940 pub struct kvm_pit_config {
941     pub flags: u32,
942     pub pad: [u32; 15usize],
943 }
944 #[repr(C)]
945 #[derive(Debug, Default, Copy, Clone)]
946 pub struct kvm_s390_skeys {
947     pub start_gfn: u64,
948     pub count: u64,
949     pub skeydata_addr: u64,
950     pub flags: u32,
951     pub reserved: [u32; 9usize],
952 }
953 #[repr(C)]
954 #[derive(Copy, Clone)]
955 pub struct kvm_s390_cmma_log {
956     pub start_gfn: u64,
957     pub count: u32,
958     pub flags: u32,
959     pub __bindgen_anon_1: kvm_s390_cmma_log__bindgen_ty_1,
960     pub values: u64,
961 }
962 #[repr(C)]
963 #[derive(Copy, Clone)]
964 pub union kvm_s390_cmma_log__bindgen_ty_1 {
965     pub remaining: u64,
966     pub mask: u64,
967 }
968 impl Default for kvm_s390_cmma_log__bindgen_ty_1 {
default() -> Self969     fn default() -> Self {
970         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
971         unsafe {
972             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
973             s.assume_init()
974         }
975     }
976 }
977 impl Default for kvm_s390_cmma_log {
default() -> Self978     fn default() -> Self {
979         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
980         unsafe {
981             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
982             s.assume_init()
983         }
984     }
985 }
986 #[repr(C)]
987 #[derive(Copy, Clone)]
988 pub struct kvm_hyperv_exit {
989     pub type_: u32,
990     pub pad1: u32,
991     pub u: kvm_hyperv_exit__bindgen_ty_1,
992 }
993 #[repr(C)]
994 #[derive(Copy, Clone)]
995 pub union kvm_hyperv_exit__bindgen_ty_1 {
996     pub synic: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1,
997     pub hcall: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_2,
998     pub syndbg: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3,
999 }
1000 #[repr(C)]
1001 #[derive(Debug, Default, Copy, Clone)]
1002 pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1 {
1003     pub msr: u32,
1004     pub pad2: u32,
1005     pub control: u64,
1006     pub evt_page: u64,
1007     pub msg_page: u64,
1008 }
1009 #[repr(C)]
1010 #[derive(Debug, Default, Copy, Clone)]
1011 pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_2 {
1012     pub input: u64,
1013     pub result: u64,
1014     pub params: [u64; 2usize],
1015 }
1016 #[repr(C)]
1017 #[derive(Debug, Default, Copy, Clone)]
1018 pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3 {
1019     pub msr: u32,
1020     pub pad2: u32,
1021     pub control: u64,
1022     pub status: u64,
1023     pub send_page: u64,
1024     pub recv_page: u64,
1025     pub pending_page: u64,
1026 }
1027 impl Default for kvm_hyperv_exit__bindgen_ty_1 {
default() -> Self1028     fn default() -> Self {
1029         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1030         unsafe {
1031             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1032             s.assume_init()
1033         }
1034     }
1035 }
1036 impl Default for kvm_hyperv_exit {
default() -> Self1037     fn default() -> Self {
1038         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1039         unsafe {
1040             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1041             s.assume_init()
1042         }
1043     }
1044 }
1045 #[repr(C)]
1046 #[derive(Copy, Clone)]
1047 pub struct kvm_run {
1048     pub request_interrupt_window: u8,
1049     pub immediate_exit: u8,
1050     pub padding1: [u8; 6usize],
1051     pub exit_reason: u32,
1052     pub ready_for_interrupt_injection: u8,
1053     pub if_flag: u8,
1054     pub flags: u16,
1055     pub cr8: u64,
1056     pub apic_base: u64,
1057     pub __bindgen_anon_1: kvm_run__bindgen_ty_1,
1058     pub kvm_valid_regs: u64,
1059     pub kvm_dirty_regs: u64,
1060     pub s: kvm_run__bindgen_ty_2,
1061 }
1062 #[repr(C)]
1063 #[derive(Copy, Clone)]
1064 pub union kvm_run__bindgen_ty_1 {
1065     pub hw: kvm_run__bindgen_ty_1__bindgen_ty_1,
1066     pub fail_entry: kvm_run__bindgen_ty_1__bindgen_ty_2,
1067     pub ex: kvm_run__bindgen_ty_1__bindgen_ty_3,
1068     pub io: kvm_run__bindgen_ty_1__bindgen_ty_4,
1069     pub debug: kvm_run__bindgen_ty_1__bindgen_ty_5,
1070     pub mmio: kvm_run__bindgen_ty_1__bindgen_ty_6,
1071     pub hypercall: kvm_run__bindgen_ty_1__bindgen_ty_7,
1072     pub tpr_access: kvm_run__bindgen_ty_1__bindgen_ty_8,
1073     pub s390_sieic: kvm_run__bindgen_ty_1__bindgen_ty_9,
1074     pub s390_reset_flags: u64,
1075     pub s390_ucontrol: kvm_run__bindgen_ty_1__bindgen_ty_10,
1076     pub dcr: kvm_run__bindgen_ty_1__bindgen_ty_11,
1077     pub internal: kvm_run__bindgen_ty_1__bindgen_ty_12,
1078     pub osi: kvm_run__bindgen_ty_1__bindgen_ty_13,
1079     pub papr_hcall: kvm_run__bindgen_ty_1__bindgen_ty_14,
1080     pub s390_tsch: kvm_run__bindgen_ty_1__bindgen_ty_15,
1081     pub epr: kvm_run__bindgen_ty_1__bindgen_ty_16,
1082     pub system_event: kvm_run__bindgen_ty_1__bindgen_ty_17,
1083     pub s390_stsi: kvm_run__bindgen_ty_1__bindgen_ty_18,
1084     pub eoi: kvm_run__bindgen_ty_1__bindgen_ty_19,
1085     pub hyperv: kvm_hyperv_exit,
1086     pub arm_nisv: kvm_run__bindgen_ty_1__bindgen_ty_20,
1087     pub msr: kvm_run__bindgen_ty_1__bindgen_ty_21,
1088     pub padding: [::std::os::raw::c_char; 256usize],
1089 }
1090 #[repr(C)]
1091 #[derive(Debug, Default, Copy, Clone)]
1092 pub struct kvm_run__bindgen_ty_1__bindgen_ty_1 {
1093     pub hardware_exit_reason: u64,
1094 }
1095 #[repr(C)]
1096 #[derive(Debug, Default, Copy, Clone)]
1097 pub struct kvm_run__bindgen_ty_1__bindgen_ty_2 {
1098     pub hardware_entry_failure_reason: u64,
1099     pub cpu: u32,
1100 }
1101 #[repr(C)]
1102 #[derive(Debug, Default, Copy, Clone)]
1103 pub struct kvm_run__bindgen_ty_1__bindgen_ty_3 {
1104     pub exception: u32,
1105     pub error_code: u32,
1106 }
1107 #[repr(C)]
1108 #[derive(Debug, Default, Copy, Clone)]
1109 pub struct kvm_run__bindgen_ty_1__bindgen_ty_4 {
1110     pub direction: u8,
1111     pub size: u8,
1112     pub port: u16,
1113     pub count: u32,
1114     pub data_offset: u64,
1115 }
1116 #[repr(C)]
1117 #[derive(Debug, Default, Copy, Clone)]
1118 pub struct kvm_run__bindgen_ty_1__bindgen_ty_5 {
1119     pub arch: kvm_debug_exit_arch,
1120 }
1121 #[repr(C)]
1122 #[derive(Debug, Default, Copy, Clone)]
1123 pub struct kvm_run__bindgen_ty_1__bindgen_ty_6 {
1124     pub phys_addr: u64,
1125     pub data: [u8; 8usize],
1126     pub len: u32,
1127     pub is_write: u8,
1128 }
1129 #[repr(C)]
1130 #[derive(Debug, Default, Copy, Clone)]
1131 pub struct kvm_run__bindgen_ty_1__bindgen_ty_7 {
1132     pub nr: u64,
1133     pub args: [u64; 6usize],
1134     pub ret: u64,
1135     pub longmode: u32,
1136     pub pad: u32,
1137 }
1138 #[repr(C)]
1139 #[derive(Debug, Default, Copy, Clone)]
1140 pub struct kvm_run__bindgen_ty_1__bindgen_ty_8 {
1141     pub rip: u64,
1142     pub is_write: u32,
1143     pub pad: u32,
1144 }
1145 #[repr(C)]
1146 #[derive(Debug, Default, Copy, Clone)]
1147 pub struct kvm_run__bindgen_ty_1__bindgen_ty_9 {
1148     pub icptcode: u8,
1149     pub ipa: u16,
1150     pub ipb: u32,
1151 }
1152 #[repr(C)]
1153 #[derive(Debug, Default, Copy, Clone)]
1154 pub struct kvm_run__bindgen_ty_1__bindgen_ty_10 {
1155     pub trans_exc_code: u64,
1156     pub pgm_code: u32,
1157 }
1158 #[repr(C)]
1159 #[derive(Debug, Default, Copy, Clone)]
1160 pub struct kvm_run__bindgen_ty_1__bindgen_ty_11 {
1161     pub dcrn: u32,
1162     pub data: u32,
1163     pub is_write: u8,
1164 }
1165 #[repr(C)]
1166 #[derive(Debug, Default, Copy, Clone)]
1167 pub struct kvm_run__bindgen_ty_1__bindgen_ty_12 {
1168     pub suberror: u32,
1169     pub ndata: u32,
1170     pub data: [u64; 16usize],
1171 }
1172 #[repr(C)]
1173 #[derive(Debug, Default, Copy, Clone)]
1174 pub struct kvm_run__bindgen_ty_1__bindgen_ty_13 {
1175     pub gprs: [u64; 32usize],
1176 }
1177 #[repr(C)]
1178 #[derive(Debug, Default, Copy, Clone)]
1179 pub struct kvm_run__bindgen_ty_1__bindgen_ty_14 {
1180     pub nr: u64,
1181     pub ret: u64,
1182     pub args: [u64; 9usize],
1183 }
1184 #[repr(C)]
1185 #[derive(Debug, Default, Copy, Clone)]
1186 pub struct kvm_run__bindgen_ty_1__bindgen_ty_15 {
1187     pub subchannel_id: u16,
1188     pub subchannel_nr: u16,
1189     pub io_int_parm: u32,
1190     pub io_int_word: u32,
1191     pub ipb: u32,
1192     pub dequeued: u8,
1193 }
1194 #[repr(C)]
1195 #[derive(Debug, Default, Copy, Clone)]
1196 pub struct kvm_run__bindgen_ty_1__bindgen_ty_16 {
1197     pub epr: u32,
1198 }
1199 #[repr(C)]
1200 #[derive(Debug, Default, Copy, Clone)]
1201 pub struct kvm_run__bindgen_ty_1__bindgen_ty_17 {
1202     pub type_: u32,
1203     pub flags: u64,
1204 }
1205 #[repr(C)]
1206 #[derive(Debug, Default, Copy, Clone)]
1207 pub struct kvm_run__bindgen_ty_1__bindgen_ty_18 {
1208     pub addr: u64,
1209     pub ar: u8,
1210     pub reserved: u8,
1211     pub fc: u8,
1212     pub sel1: u8,
1213     pub sel2: u16,
1214 }
1215 #[repr(C)]
1216 #[derive(Debug, Default, Copy, Clone)]
1217 pub struct kvm_run__bindgen_ty_1__bindgen_ty_19 {
1218     pub vector: u8,
1219 }
1220 #[repr(C)]
1221 #[derive(Debug, Default, Copy, Clone)]
1222 pub struct kvm_run__bindgen_ty_1__bindgen_ty_20 {
1223     pub esr_iss: u64,
1224     pub fault_ipa: u64,
1225 }
1226 #[repr(C)]
1227 #[derive(Debug, Default, Copy, Clone)]
1228 pub struct kvm_run__bindgen_ty_1__bindgen_ty_21 {
1229     pub error: u8,
1230     pub pad: [u8; 7usize],
1231     pub reason: u32,
1232     pub index: u32,
1233     pub data: u64,
1234 }
1235 impl Default for kvm_run__bindgen_ty_1 {
default() -> Self1236     fn default() -> Self {
1237         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1238         unsafe {
1239             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1240             s.assume_init()
1241         }
1242     }
1243 }
1244 #[repr(C)]
1245 #[derive(Copy, Clone)]
1246 pub union kvm_run__bindgen_ty_2 {
1247     pub regs: kvm_sync_regs,
1248     pub padding: [::std::os::raw::c_char; 2048usize],
1249 }
1250 impl Default for kvm_run__bindgen_ty_2 {
default() -> Self1251     fn default() -> Self {
1252         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1253         unsafe {
1254             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1255             s.assume_init()
1256         }
1257     }
1258 }
1259 impl Default for kvm_run {
default() -> Self1260     fn default() -> Self {
1261         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1262         unsafe {
1263             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1264             s.assume_init()
1265         }
1266     }
1267 }
1268 #[repr(C)]
1269 #[derive(Copy, Clone)]
1270 pub struct kvm_coalesced_mmio_zone {
1271     pub addr: u64,
1272     pub size: u32,
1273     pub __bindgen_anon_1: kvm_coalesced_mmio_zone__bindgen_ty_1,
1274 }
1275 #[repr(C)]
1276 #[derive(Copy, Clone)]
1277 pub union kvm_coalesced_mmio_zone__bindgen_ty_1 {
1278     pub pad: u32,
1279     pub pio: u32,
1280 }
1281 impl Default for kvm_coalesced_mmio_zone__bindgen_ty_1 {
default() -> Self1282     fn default() -> Self {
1283         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1284         unsafe {
1285             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1286             s.assume_init()
1287         }
1288     }
1289 }
1290 impl Default for kvm_coalesced_mmio_zone {
default() -> Self1291     fn default() -> Self {
1292         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1293         unsafe {
1294             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1295             s.assume_init()
1296         }
1297     }
1298 }
1299 #[repr(C)]
1300 #[derive(Copy, Clone)]
1301 pub struct kvm_coalesced_mmio {
1302     pub phys_addr: u64,
1303     pub len: u32,
1304     pub __bindgen_anon_1: kvm_coalesced_mmio__bindgen_ty_1,
1305     pub data: [u8; 8usize],
1306 }
1307 #[repr(C)]
1308 #[derive(Copy, Clone)]
1309 pub union kvm_coalesced_mmio__bindgen_ty_1 {
1310     pub pad: u32,
1311     pub pio: u32,
1312 }
1313 impl Default for kvm_coalesced_mmio__bindgen_ty_1 {
default() -> Self1314     fn default() -> Self {
1315         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1316         unsafe {
1317             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1318             s.assume_init()
1319         }
1320     }
1321 }
1322 impl Default for kvm_coalesced_mmio {
default() -> Self1323     fn default() -> Self {
1324         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1325         unsafe {
1326             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1327             s.assume_init()
1328         }
1329     }
1330 }
1331 #[repr(C)]
1332 pub struct kvm_coalesced_mmio_ring {
1333     pub first: u32,
1334     pub last: u32,
1335     pub coalesced_mmio: __IncompleteArrayField<kvm_coalesced_mmio>,
1336 }
1337 impl Default for kvm_coalesced_mmio_ring {
default() -> Self1338     fn default() -> Self {
1339         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1340         unsafe {
1341             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1342             s.assume_init()
1343         }
1344     }
1345 }
1346 #[repr(C)]
1347 #[derive(Debug, Default, Copy, Clone)]
1348 pub struct kvm_translation {
1349     pub linear_address: u64,
1350     pub physical_address: u64,
1351     pub valid: u8,
1352     pub writeable: u8,
1353     pub usermode: u8,
1354     pub pad: [u8; 5usize],
1355 }
1356 #[repr(C)]
1357 #[derive(Copy, Clone)]
1358 pub struct kvm_s390_mem_op {
1359     pub gaddr: u64,
1360     pub flags: u64,
1361     pub size: u32,
1362     pub op: u32,
1363     pub buf: u64,
1364     pub __bindgen_anon_1: kvm_s390_mem_op__bindgen_ty_1,
1365 }
1366 #[repr(C)]
1367 #[derive(Copy, Clone)]
1368 pub union kvm_s390_mem_op__bindgen_ty_1 {
1369     pub ar: u8,
1370     pub sida_offset: u32,
1371     pub reserved: [u8; 32usize],
1372 }
1373 impl Default for kvm_s390_mem_op__bindgen_ty_1 {
default() -> Self1374     fn default() -> Self {
1375         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1376         unsafe {
1377             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1378             s.assume_init()
1379         }
1380     }
1381 }
1382 impl Default for kvm_s390_mem_op {
default() -> Self1383     fn default() -> Self {
1384         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1385         unsafe {
1386             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1387             s.assume_init()
1388         }
1389     }
1390 }
1391 #[repr(C)]
1392 #[derive(Debug, Default, Copy, Clone)]
1393 pub struct kvm_interrupt {
1394     pub irq: u32,
1395 }
1396 #[repr(C)]
1397 #[derive(Copy, Clone)]
1398 pub struct kvm_dirty_log {
1399     pub slot: u32,
1400     pub padding1: u32,
1401     pub __bindgen_anon_1: kvm_dirty_log__bindgen_ty_1,
1402 }
1403 #[repr(C)]
1404 #[derive(Copy, Clone)]
1405 pub union kvm_dirty_log__bindgen_ty_1 {
1406     pub dirty_bitmap: *mut ::std::os::raw::c_void,
1407     pub padding2: u64,
1408 }
1409 impl Default for kvm_dirty_log__bindgen_ty_1 {
default() -> Self1410     fn default() -> Self {
1411         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1412         unsafe {
1413             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1414             s.assume_init()
1415         }
1416     }
1417 }
1418 impl Default for kvm_dirty_log {
default() -> Self1419     fn default() -> Self {
1420         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1421         unsafe {
1422             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1423             s.assume_init()
1424         }
1425     }
1426 }
1427 #[repr(C)]
1428 #[derive(Copy, Clone)]
1429 pub struct kvm_clear_dirty_log {
1430     pub slot: u32,
1431     pub num_pages: u32,
1432     pub first_page: u64,
1433     pub __bindgen_anon_1: kvm_clear_dirty_log__bindgen_ty_1,
1434 }
1435 #[repr(C)]
1436 #[derive(Copy, Clone)]
1437 pub union kvm_clear_dirty_log__bindgen_ty_1 {
1438     pub dirty_bitmap: *mut ::std::os::raw::c_void,
1439     pub padding2: u64,
1440 }
1441 impl Default for kvm_clear_dirty_log__bindgen_ty_1 {
default() -> Self1442     fn default() -> Self {
1443         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1444         unsafe {
1445             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1446             s.assume_init()
1447         }
1448     }
1449 }
1450 impl Default for kvm_clear_dirty_log {
default() -> Self1451     fn default() -> Self {
1452         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1453         unsafe {
1454             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1455             s.assume_init()
1456         }
1457     }
1458 }
1459 #[repr(C)]
1460 #[derive(Debug, Default)]
1461 pub struct kvm_signal_mask {
1462     pub len: u32,
1463     pub sigset: __IncompleteArrayField<u8>,
1464 }
1465 #[repr(C)]
1466 #[derive(Debug, Default, Copy, Clone)]
1467 pub struct kvm_tpr_access_ctl {
1468     pub enabled: u32,
1469     pub flags: u32,
1470     pub reserved: [u32; 8usize],
1471 }
1472 #[repr(C)]
1473 #[derive(Debug, Default, Copy, Clone)]
1474 pub struct kvm_vapic_addr {
1475     pub vapic_addr: u64,
1476 }
1477 #[repr(C)]
1478 #[derive(Debug, Default, Copy, Clone)]
1479 pub struct kvm_mp_state {
1480     pub mp_state: u32,
1481 }
1482 #[repr(C)]
1483 #[derive(Debug, Default, Copy, Clone)]
1484 pub struct kvm_s390_psw {
1485     pub mask: u64,
1486     pub addr: u64,
1487 }
1488 #[repr(C)]
1489 #[derive(Debug, Default, Copy, Clone)]
1490 pub struct kvm_s390_interrupt {
1491     pub type_: u32,
1492     pub parm: u32,
1493     pub parm64: u64,
1494 }
1495 #[repr(C)]
1496 #[derive(Debug, Default, Copy, Clone)]
1497 pub struct kvm_s390_io_info {
1498     pub subchannel_id: u16,
1499     pub subchannel_nr: u16,
1500     pub io_int_parm: u32,
1501     pub io_int_word: u32,
1502 }
1503 #[repr(C)]
1504 #[derive(Debug, Default, Copy, Clone)]
1505 pub struct kvm_s390_ext_info {
1506     pub ext_params: u32,
1507     pub pad: u32,
1508     pub ext_params2: u64,
1509 }
1510 #[repr(C)]
1511 #[derive(Debug, Default, Copy, Clone)]
1512 pub struct kvm_s390_pgm_info {
1513     pub trans_exc_code: u64,
1514     pub mon_code: u64,
1515     pub per_address: u64,
1516     pub data_exc_code: u32,
1517     pub code: u16,
1518     pub mon_class_nr: u16,
1519     pub per_code: u8,
1520     pub per_atmid: u8,
1521     pub exc_access_id: u8,
1522     pub per_access_id: u8,
1523     pub op_access_id: u8,
1524     pub flags: u8,
1525     pub pad: [u8; 2usize],
1526 }
1527 #[repr(C)]
1528 #[derive(Debug, Default, Copy, Clone)]
1529 pub struct kvm_s390_prefix_info {
1530     pub address: u32,
1531 }
1532 #[repr(C)]
1533 #[derive(Debug, Default, Copy, Clone)]
1534 pub struct kvm_s390_extcall_info {
1535     pub code: u16,
1536 }
1537 #[repr(C)]
1538 #[derive(Debug, Default, Copy, Clone)]
1539 pub struct kvm_s390_emerg_info {
1540     pub code: u16,
1541 }
1542 #[repr(C)]
1543 #[derive(Debug, Default, Copy, Clone)]
1544 pub struct kvm_s390_stop_info {
1545     pub flags: u32,
1546 }
1547 #[repr(C)]
1548 #[derive(Debug, Default, Copy, Clone)]
1549 pub struct kvm_s390_mchk_info {
1550     pub cr14: u64,
1551     pub mcic: u64,
1552     pub failing_storage_address: u64,
1553     pub ext_damage_code: u32,
1554     pub pad: u32,
1555     pub fixed_logout: [u8; 16usize],
1556 }
1557 #[repr(C)]
1558 #[derive(Copy, Clone)]
1559 pub struct kvm_s390_irq {
1560     pub type_: u64,
1561     pub u: kvm_s390_irq__bindgen_ty_1,
1562 }
1563 #[repr(C)]
1564 #[derive(Copy, Clone)]
1565 pub union kvm_s390_irq__bindgen_ty_1 {
1566     pub io: kvm_s390_io_info,
1567     pub ext: kvm_s390_ext_info,
1568     pub pgm: kvm_s390_pgm_info,
1569     pub emerg: kvm_s390_emerg_info,
1570     pub extcall: kvm_s390_extcall_info,
1571     pub prefix: kvm_s390_prefix_info,
1572     pub stop: kvm_s390_stop_info,
1573     pub mchk: kvm_s390_mchk_info,
1574     pub reserved: [::std::os::raw::c_char; 64usize],
1575 }
1576 impl Default for kvm_s390_irq__bindgen_ty_1 {
default() -> Self1577     fn default() -> Self {
1578         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1579         unsafe {
1580             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1581             s.assume_init()
1582         }
1583     }
1584 }
1585 impl Default for kvm_s390_irq {
default() -> Self1586     fn default() -> Self {
1587         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1588         unsafe {
1589             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1590             s.assume_init()
1591         }
1592     }
1593 }
1594 #[repr(C)]
1595 #[derive(Debug, Default, Copy, Clone)]
1596 pub struct kvm_s390_irq_state {
1597     pub buf: u64,
1598     pub flags: u32,
1599     pub len: u32,
1600     pub reserved: [u32; 4usize],
1601 }
1602 #[repr(C)]
1603 #[derive(Debug, Default, Copy, Clone)]
1604 pub struct kvm_guest_debug {
1605     pub control: u32,
1606     pub pad: u32,
1607     pub arch: kvm_guest_debug_arch,
1608 }
1609 pub const kvm_ioeventfd_flag_nr_datamatch: ::std::os::raw::c_uint = 0;
1610 pub const kvm_ioeventfd_flag_nr_pio: ::std::os::raw::c_uint = 1;
1611 pub const kvm_ioeventfd_flag_nr_deassign: ::std::os::raw::c_uint = 2;
1612 pub const kvm_ioeventfd_flag_nr_virtio_ccw_notify: ::std::os::raw::c_uint = 3;
1613 pub const kvm_ioeventfd_flag_nr_fast_mmio: ::std::os::raw::c_uint = 4;
1614 pub const kvm_ioeventfd_flag_nr_max: ::std::os::raw::c_uint = 5;
1615 pub type _bindgen_ty_1 = ::std::os::raw::c_uint;
1616 #[repr(C)]
1617 #[derive(Debug, Copy, Clone)]
1618 pub struct kvm_ioeventfd {
1619     pub datamatch: u64,
1620     pub addr: u64,
1621     pub len: u32,
1622     pub fd: i32,
1623     pub flags: u32,
1624     pub pad: [u8; 36usize],
1625 }
1626 impl Default for kvm_ioeventfd {
default() -> Self1627     fn default() -> Self {
1628         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1629         unsafe {
1630             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1631             s.assume_init()
1632         }
1633     }
1634 }
1635 #[repr(C)]
1636 #[derive(Debug, Copy, Clone)]
1637 pub struct kvm_enable_cap {
1638     pub cap: u32,
1639     pub flags: u32,
1640     pub args: [u64; 4usize],
1641     pub pad: [u8; 64usize],
1642 }
1643 impl Default for kvm_enable_cap {
default() -> Self1644     fn default() -> Self {
1645         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1646         unsafe {
1647             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1648             s.assume_init()
1649         }
1650     }
1651 }
1652 #[repr(C)]
1653 #[derive(Debug, Copy, Clone)]
1654 pub struct kvm_ppc_pvinfo {
1655     pub flags: u32,
1656     pub hcall: [u32; 4usize],
1657     pub pad: [u8; 108usize],
1658 }
1659 impl Default for kvm_ppc_pvinfo {
default() -> Self1660     fn default() -> Self {
1661         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1662         unsafe {
1663             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1664             s.assume_init()
1665         }
1666     }
1667 }
1668 #[repr(C)]
1669 #[derive(Debug, Default, Copy, Clone)]
1670 pub struct kvm_ppc_one_page_size {
1671     pub page_shift: u32,
1672     pub pte_enc: u32,
1673 }
1674 #[repr(C)]
1675 #[derive(Debug, Default, Copy, Clone)]
1676 pub struct kvm_ppc_one_seg_page_size {
1677     pub page_shift: u32,
1678     pub slb_enc: u32,
1679     pub enc: [kvm_ppc_one_page_size; 8usize],
1680 }
1681 #[repr(C)]
1682 #[derive(Debug, Default, Copy, Clone)]
1683 pub struct kvm_ppc_smmu_info {
1684     pub flags: u64,
1685     pub slb_size: u32,
1686     pub data_keys: u16,
1687     pub instr_keys: u16,
1688     pub sps: [kvm_ppc_one_seg_page_size; 8usize],
1689 }
1690 #[repr(C)]
1691 #[derive(Debug, Default, Copy, Clone)]
1692 pub struct kvm_ppc_resize_hpt {
1693     pub flags: u64,
1694     pub shift: u32,
1695     pub pad: u32,
1696 }
1697 #[repr(C)]
1698 #[derive(Debug, Default, Copy, Clone)]
1699 pub struct kvm_irq_routing_irqchip {
1700     pub irqchip: u32,
1701     pub pin: u32,
1702 }
1703 #[repr(C)]
1704 #[derive(Copy, Clone)]
1705 pub struct kvm_irq_routing_msi {
1706     pub address_lo: u32,
1707     pub address_hi: u32,
1708     pub data: u32,
1709     pub __bindgen_anon_1: kvm_irq_routing_msi__bindgen_ty_1,
1710 }
1711 #[repr(C)]
1712 #[derive(Copy, Clone)]
1713 pub union kvm_irq_routing_msi__bindgen_ty_1 {
1714     pub pad: u32,
1715     pub devid: u32,
1716 }
1717 impl Default for kvm_irq_routing_msi__bindgen_ty_1 {
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 impl Default for kvm_irq_routing_msi {
default() -> Self1727     fn default() -> Self {
1728         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1729         unsafe {
1730             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1731             s.assume_init()
1732         }
1733     }
1734 }
1735 #[repr(C)]
1736 #[derive(Debug, Default, Copy, Clone)]
1737 pub struct kvm_irq_routing_s390_adapter {
1738     pub ind_addr: u64,
1739     pub summary_addr: u64,
1740     pub ind_offset: u64,
1741     pub summary_offset: u32,
1742     pub adapter_id: u32,
1743 }
1744 #[repr(C)]
1745 #[derive(Debug, Default, Copy, Clone)]
1746 pub struct kvm_irq_routing_hv_sint {
1747     pub vcpu: u32,
1748     pub sint: u32,
1749 }
1750 #[repr(C)]
1751 #[derive(Copy, Clone)]
1752 pub struct kvm_irq_routing_entry {
1753     pub gsi: u32,
1754     pub type_: u32,
1755     pub flags: u32,
1756     pub pad: u32,
1757     pub u: kvm_irq_routing_entry__bindgen_ty_1,
1758 }
1759 #[repr(C)]
1760 #[derive(Copy, Clone)]
1761 pub union kvm_irq_routing_entry__bindgen_ty_1 {
1762     pub irqchip: kvm_irq_routing_irqchip,
1763     pub msi: kvm_irq_routing_msi,
1764     pub adapter: kvm_irq_routing_s390_adapter,
1765     pub hv_sint: kvm_irq_routing_hv_sint,
1766     pub pad: [u32; 8usize],
1767 }
1768 impl Default for kvm_irq_routing_entry__bindgen_ty_1 {
default() -> Self1769     fn default() -> Self {
1770         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1771         unsafe {
1772             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1773             s.assume_init()
1774         }
1775     }
1776 }
1777 impl Default for kvm_irq_routing_entry {
default() -> Self1778     fn default() -> Self {
1779         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1780         unsafe {
1781             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1782             s.assume_init()
1783         }
1784     }
1785 }
1786 #[repr(C)]
1787 pub struct kvm_irq_routing {
1788     pub nr: u32,
1789     pub flags: u32,
1790     pub entries: __IncompleteArrayField<kvm_irq_routing_entry>,
1791 }
1792 impl Default for kvm_irq_routing {
default() -> Self1793     fn default() -> Self {
1794         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1795         unsafe {
1796             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1797             s.assume_init()
1798         }
1799     }
1800 }
1801 #[repr(C)]
1802 #[derive(Debug, Default, Copy, Clone)]
1803 pub struct kvm_irqfd {
1804     pub fd: u32,
1805     pub gsi: u32,
1806     pub flags: u32,
1807     pub resamplefd: u32,
1808     pub pad: [u8; 16usize],
1809 }
1810 #[repr(C)]
1811 #[derive(Debug, Default, Copy, Clone)]
1812 pub struct kvm_clock_data {
1813     pub clock: u64,
1814     pub flags: u32,
1815     pub pad: [u32; 9usize],
1816 }
1817 #[repr(C)]
1818 #[derive(Debug, Default, Copy, Clone)]
1819 pub struct kvm_config_tlb {
1820     pub params: u64,
1821     pub array: u64,
1822     pub mmu_type: u32,
1823     pub array_len: u32,
1824 }
1825 #[repr(C)]
1826 #[derive(Debug, Default, Copy, Clone)]
1827 pub struct kvm_dirty_tlb {
1828     pub bitmap: u64,
1829     pub num_dirty: u32,
1830 }
1831 #[repr(C)]
1832 #[derive(Debug, Default)]
1833 pub struct kvm_reg_list {
1834     pub n: u64,
1835     pub reg: __IncompleteArrayField<u64>,
1836 }
1837 #[repr(C)]
1838 #[derive(Debug, Default, Copy, Clone)]
1839 pub struct kvm_one_reg {
1840     pub id: u64,
1841     pub addr: u64,
1842 }
1843 #[repr(C)]
1844 #[derive(Debug, Default, Copy, Clone)]
1845 pub struct kvm_msi {
1846     pub address_lo: u32,
1847     pub address_hi: u32,
1848     pub data: u32,
1849     pub flags: u32,
1850     pub devid: u32,
1851     pub pad: [u8; 12usize],
1852 }
1853 #[repr(C)]
1854 #[derive(Debug, Default, Copy, Clone)]
1855 pub struct kvm_arm_device_addr {
1856     pub id: u64,
1857     pub addr: u64,
1858 }
1859 #[repr(C)]
1860 #[derive(Debug, Default, Copy, Clone)]
1861 pub struct kvm_create_device {
1862     pub type_: u32,
1863     pub fd: u32,
1864     pub flags: u32,
1865 }
1866 #[repr(C)]
1867 #[derive(Debug, Default, Copy, Clone)]
1868 pub struct kvm_device_attr {
1869     pub flags: u32,
1870     pub group: u32,
1871     pub attr: u64,
1872     pub addr: u64,
1873 }
1874 pub const kvm_device_type_KVM_DEV_TYPE_FSL_MPIC_20: kvm_device_type = 1;
1875 pub const kvm_device_type_KVM_DEV_TYPE_FSL_MPIC_42: kvm_device_type = 2;
1876 pub const kvm_device_type_KVM_DEV_TYPE_XICS: kvm_device_type = 3;
1877 pub const kvm_device_type_KVM_DEV_TYPE_VFIO: kvm_device_type = 4;
1878 pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_V2: kvm_device_type = 5;
1879 pub const kvm_device_type_KVM_DEV_TYPE_FLIC: kvm_device_type = 6;
1880 pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_V3: kvm_device_type = 7;
1881 pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_ITS: kvm_device_type = 8;
1882 pub const kvm_device_type_KVM_DEV_TYPE_XIVE: kvm_device_type = 9;
1883 pub const kvm_device_type_KVM_DEV_TYPE_ARM_PV_TIME: kvm_device_type = 10;
1884 pub const kvm_device_type_KVM_DEV_TYPE_MAX: kvm_device_type = 11;
1885 pub type kvm_device_type = ::std::os::raw::c_uint;
1886 #[repr(C)]
1887 #[derive(Debug, Default, Copy, Clone)]
1888 pub struct kvm_vfio_spapr_tce {
1889     pub groupfd: i32,
1890     pub tablefd: i32,
1891 }
1892 #[repr(C)]
1893 #[derive(Debug, Default, Copy, Clone)]
1894 pub struct kvm_s390_ucas_mapping {
1895     pub user_addr: u64,
1896     pub vcpu_addr: u64,
1897     pub length: u64,
1898 }
1899 #[repr(C)]
1900 #[derive(Debug, Default, Copy, Clone)]
1901 pub struct kvm_enc_region {
1902     pub addr: u64,
1903     pub size: u64,
1904 }
1905 #[repr(C)]
1906 #[derive(Debug, Default, Copy, Clone)]
1907 pub struct kvm_s390_pv_sec_parm {
1908     pub origin: u64,
1909     pub length: u64,
1910 }
1911 #[repr(C)]
1912 #[derive(Debug, Default, Copy, Clone)]
1913 pub struct kvm_s390_pv_unp {
1914     pub addr: u64,
1915     pub size: u64,
1916     pub tweak: u64,
1917 }
1918 pub const pv_cmd_id_KVM_PV_ENABLE: pv_cmd_id = 0;
1919 pub const pv_cmd_id_KVM_PV_DISABLE: pv_cmd_id = 1;
1920 pub const pv_cmd_id_KVM_PV_SET_SEC_PARMS: pv_cmd_id = 2;
1921 pub const pv_cmd_id_KVM_PV_UNPACK: pv_cmd_id = 3;
1922 pub const pv_cmd_id_KVM_PV_VERIFY: pv_cmd_id = 4;
1923 pub const pv_cmd_id_KVM_PV_PREP_RESET: pv_cmd_id = 5;
1924 pub const pv_cmd_id_KVM_PV_UNSHARE_ALL: pv_cmd_id = 6;
1925 pub type pv_cmd_id = ::std::os::raw::c_uint;
1926 #[repr(C)]
1927 #[derive(Debug, Default, Copy, Clone)]
1928 pub struct kvm_pv_cmd {
1929     pub cmd: u32,
1930     pub rc: u16,
1931     pub rrc: u16,
1932     pub data: u64,
1933     pub flags: u32,
1934     pub reserved: [u32; 3usize],
1935 }
1936 pub const sev_cmd_id_KVM_SEV_INIT: sev_cmd_id = 0;
1937 pub const sev_cmd_id_KVM_SEV_ES_INIT: sev_cmd_id = 1;
1938 pub const sev_cmd_id_KVM_SEV_LAUNCH_START: sev_cmd_id = 2;
1939 pub const sev_cmd_id_KVM_SEV_LAUNCH_UPDATE_DATA: sev_cmd_id = 3;
1940 pub const sev_cmd_id_KVM_SEV_LAUNCH_UPDATE_VMSA: sev_cmd_id = 4;
1941 pub const sev_cmd_id_KVM_SEV_LAUNCH_SECRET: sev_cmd_id = 5;
1942 pub const sev_cmd_id_KVM_SEV_LAUNCH_MEASURE: sev_cmd_id = 6;
1943 pub const sev_cmd_id_KVM_SEV_LAUNCH_FINISH: sev_cmd_id = 7;
1944 pub const sev_cmd_id_KVM_SEV_SEND_START: sev_cmd_id = 8;
1945 pub const sev_cmd_id_KVM_SEV_SEND_UPDATE_DATA: sev_cmd_id = 9;
1946 pub const sev_cmd_id_KVM_SEV_SEND_UPDATE_VMSA: sev_cmd_id = 10;
1947 pub const sev_cmd_id_KVM_SEV_SEND_FINISH: sev_cmd_id = 11;
1948 pub const sev_cmd_id_KVM_SEV_RECEIVE_START: sev_cmd_id = 12;
1949 pub const sev_cmd_id_KVM_SEV_RECEIVE_UPDATE_DATA: sev_cmd_id = 13;
1950 pub const sev_cmd_id_KVM_SEV_RECEIVE_UPDATE_VMSA: sev_cmd_id = 14;
1951 pub const sev_cmd_id_KVM_SEV_RECEIVE_FINISH: sev_cmd_id = 15;
1952 pub const sev_cmd_id_KVM_SEV_GUEST_STATUS: sev_cmd_id = 16;
1953 pub const sev_cmd_id_KVM_SEV_DBG_DECRYPT: sev_cmd_id = 17;
1954 pub const sev_cmd_id_KVM_SEV_DBG_ENCRYPT: sev_cmd_id = 18;
1955 pub const sev_cmd_id_KVM_SEV_CERT_EXPORT: sev_cmd_id = 19;
1956 pub const sev_cmd_id_KVM_SEV_NR_MAX: sev_cmd_id = 20;
1957 pub type sev_cmd_id = ::std::os::raw::c_uint;
1958 #[repr(C)]
1959 #[derive(Debug, Default, Copy, Clone)]
1960 pub struct kvm_sev_cmd {
1961     pub id: u32,
1962     pub data: u64,
1963     pub error: u32,
1964     pub sev_fd: u32,
1965 }
1966 #[repr(C)]
1967 #[derive(Debug, Default, Copy, Clone)]
1968 pub struct kvm_sev_launch_start {
1969     pub handle: u32,
1970     pub policy: u32,
1971     pub dh_uaddr: u64,
1972     pub dh_len: u32,
1973     pub session_uaddr: u64,
1974     pub session_len: u32,
1975 }
1976 #[repr(C)]
1977 #[derive(Debug, Default, Copy, Clone)]
1978 pub struct kvm_sev_launch_update_data {
1979     pub uaddr: u64,
1980     pub len: u32,
1981 }
1982 #[repr(C)]
1983 #[derive(Debug, Default, Copy, Clone)]
1984 pub struct kvm_sev_launch_secret {
1985     pub hdr_uaddr: u64,
1986     pub hdr_len: u32,
1987     pub guest_uaddr: u64,
1988     pub guest_len: u32,
1989     pub trans_uaddr: u64,
1990     pub trans_len: u32,
1991 }
1992 #[repr(C)]
1993 #[derive(Debug, Default, Copy, Clone)]
1994 pub struct kvm_sev_launch_measure {
1995     pub uaddr: u64,
1996     pub len: u32,
1997 }
1998 #[repr(C)]
1999 #[derive(Debug, Default, Copy, Clone)]
2000 pub struct kvm_sev_guest_status {
2001     pub handle: u32,
2002     pub policy: u32,
2003     pub state: u32,
2004 }
2005 #[repr(C)]
2006 #[derive(Debug, Default, Copy, Clone)]
2007 pub struct kvm_sev_dbg {
2008     pub src_uaddr: u64,
2009     pub dst_uaddr: u64,
2010     pub len: u32,
2011 }
2012 #[repr(C)]
2013 #[derive(Copy, Clone)]
2014 pub struct kvm_assigned_pci_dev {
2015     pub assigned_dev_id: u32,
2016     pub busnr: u32,
2017     pub devfn: u32,
2018     pub flags: u32,
2019     pub segnr: u32,
2020     pub __bindgen_anon_1: kvm_assigned_pci_dev__bindgen_ty_1,
2021 }
2022 #[repr(C)]
2023 #[derive(Copy, Clone)]
2024 pub union kvm_assigned_pci_dev__bindgen_ty_1 {
2025     pub reserved: [u32; 11usize],
2026 }
2027 impl Default for kvm_assigned_pci_dev__bindgen_ty_1 {
default() -> Self2028     fn default() -> Self {
2029         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2030         unsafe {
2031             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2032             s.assume_init()
2033         }
2034     }
2035 }
2036 impl Default for kvm_assigned_pci_dev {
default() -> Self2037     fn default() -> Self {
2038         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2039         unsafe {
2040             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2041             s.assume_init()
2042         }
2043     }
2044 }
2045 #[repr(C)]
2046 #[derive(Copy, Clone)]
2047 pub struct kvm_assigned_irq {
2048     pub assigned_dev_id: u32,
2049     pub host_irq: u32,
2050     pub guest_irq: u32,
2051     pub flags: u32,
2052     pub __bindgen_anon_1: kvm_assigned_irq__bindgen_ty_1,
2053 }
2054 #[repr(C)]
2055 #[derive(Copy, Clone)]
2056 pub union kvm_assigned_irq__bindgen_ty_1 {
2057     pub reserved: [u32; 12usize],
2058 }
2059 impl Default for kvm_assigned_irq__bindgen_ty_1 {
default() -> Self2060     fn default() -> Self {
2061         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2062         unsafe {
2063             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2064             s.assume_init()
2065         }
2066     }
2067 }
2068 impl Default for kvm_assigned_irq {
default() -> Self2069     fn default() -> Self {
2070         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2071         unsafe {
2072             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2073             s.assume_init()
2074         }
2075     }
2076 }
2077 #[repr(C)]
2078 #[derive(Debug, Default, Copy, Clone)]
2079 pub struct kvm_assigned_msix_nr {
2080     pub assigned_dev_id: u32,
2081     pub entry_nr: u16,
2082     pub padding: u16,
2083 }
2084 #[repr(C)]
2085 #[derive(Debug, Default, Copy, Clone)]
2086 pub struct kvm_assigned_msix_entry {
2087     pub assigned_dev_id: u32,
2088     pub gsi: u32,
2089     pub entry: u16,
2090     pub padding: [u16; 3usize],
2091 }
2092 #[repr(C)]
2093 #[derive(Debug, Default, Copy, Clone)]
2094 pub struct kvm_hyperv_eventfd {
2095     pub conn_id: u32,
2096     pub fd: i32,
2097     pub flags: u32,
2098     pub padding: [u32; 3usize],
2099 }
2100 pub type __uint128_t = u128;
2101