Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
google
GitHub Repository: google/crosvm
Path: blob/main/kvm_sys/src/aarch64/bindings.rs
5394 views
1
/* automatically generated by tools/bindgen-all-the-things */
2
3
#![allow(clippy::missing_safety_doc)]
4
#![allow(clippy::ptr_offset_with_cast)] // https://github.com/rust-lang/rust-bindgen/issues/3053
5
#![allow(clippy::undocumented_unsafe_blocks)]
6
#![allow(clippy::upper_case_acronyms)]
7
#![allow(non_upper_case_globals)]
8
#![allow(non_camel_case_types)]
9
#![allow(non_snake_case)]
10
#![allow(dead_code)]
11
12
// Added by kvm_sys/bindgen.sh
13
use zerocopy::FromBytes;
14
use zerocopy::Immutable;
15
use zerocopy::IntoBytes;
16
use zerocopy::KnownLayout;
17
18
// TODO(b/388092267): Replace this with an upstream equivalent when available.
19
// The original index (236) used in the ChromeOS v6.6 kernel was reused upstream for another
20
// capability, so this may return incorrect information on some kernels.
21
pub const KVM_CAP_USER_CONFIGURE_NONCOHERENT_DMA_CROS: u32 = 236;
22
pub const KVM_CAP_USER_CONFIGURE_NONCOHERENT_DMA: u32 = 239;
23
pub const KVM_MEM_NON_COHERENT_DMA: u32 = 8;
24
25
// TODO(qwandor): Update this once the pKVM patches are merged upstream with a stable capability ID.
26
pub const KVM_CAP_ARM_PROTECTED_VM: u32 = 0xffbadab1;
27
pub const KVM_CAP_ARM_PROTECTED_VM_FLAGS_SET_FW_IPA: u32 = 0;
28
pub const KVM_CAP_ARM_PROTECTED_VM_FLAGS_INFO: u32 = 1;
29
pub const KVM_CAP_ARM_PROTECTED_VM_FLAGS_SET_FFA: u32 = 2;
30
pub const KVM_VM_TYPE_ARM_PROTECTED: u32 = 0x80000000;
31
pub const KVM_X86_PKVM_PROTECTED_VM: u32 = 28;
32
pub const KVM_CAP_X86_PROTECTED_VM: u32 = 0xffbadab2;
33
pub const KVM_CAP_X86_PROTECTED_VM_FLAGS_SET_FW_GPA: u32 = 0;
34
pub const KVM_CAP_X86_PROTECTED_VM_FLAGS_INFO: u32 = 1;
35
pub const KVM_DEV_VFIO_PVIOMMU: u32 = 5;
36
pub const KVM_DEV_VFIO_PVIOMMU_ATTACH: u32 = 1;
37
#[repr(C)]
38
#[derive(Debug, Default, Copy, Clone)]
39
pub struct kvm_vfio_iommu_info {
40
pub size: u32,
41
pub device_fd: i32,
42
pub nr_sids: u32,
43
pub __reserved: u32,
44
}
45
pub const KVM_DEV_VFIO_PVIOMMU_GET_INFO: u32 = 2;
46
#[repr(C)]
47
#[derive(Debug, Default, Copy, Clone)]
48
pub struct kvm_vfio_iommu_config {
49
pub size: u32,
50
pub device_fd: i32,
51
pub sid_idx: u32,
52
pub vsid: u32,
53
pub __reserved: u32,
54
}
55
56
pub const KVM_SPSR_EL1: u32 = 0;
57
pub const KVM_SPSR_SVC: u32 = 0;
58
pub const KVM_SPSR_ABT: u32 = 1;
59
pub const KVM_SPSR_UND: u32 = 2;
60
pub const KVM_SPSR_IRQ: u32 = 3;
61
pub const KVM_SPSR_FIQ: u32 = 4;
62
pub const KVM_NR_SPSR: u32 = 5;
63
pub const PSCI_0_2_FN_BASE: u32 = 2214592512;
64
pub const PSCI_0_2_64BIT: u32 = 1073741824;
65
pub const PSCI_0_2_FN64_BASE: u32 = 3288334336;
66
pub const PSCI_0_2_POWER_STATE_ID_MASK: u32 = 65535;
67
pub const PSCI_0_2_POWER_STATE_ID_SHIFT: u32 = 0;
68
pub const PSCI_0_2_POWER_STATE_TYPE_SHIFT: u32 = 16;
69
pub const PSCI_0_2_POWER_STATE_TYPE_MASK: u32 = 65536;
70
pub const PSCI_0_2_POWER_STATE_AFFL_SHIFT: u32 = 24;
71
pub const PSCI_0_2_POWER_STATE_AFFL_MASK: u32 = 50331648;
72
pub const PSCI_1_0_EXT_POWER_STATE_ID_MASK: u32 = 268435455;
73
pub const PSCI_1_0_EXT_POWER_STATE_ID_SHIFT: u32 = 0;
74
pub const PSCI_1_0_EXT_POWER_STATE_TYPE_SHIFT: u32 = 30;
75
pub const PSCI_1_0_EXT_POWER_STATE_TYPE_MASK: u32 = 1073741824;
76
pub const PSCI_0_2_AFFINITY_LEVEL_ON: u32 = 0;
77
pub const PSCI_0_2_AFFINITY_LEVEL_OFF: u32 = 1;
78
pub const PSCI_0_2_AFFINITY_LEVEL_ON_PENDING: u32 = 2;
79
pub const PSCI_0_2_TOS_UP_MIGRATE: u32 = 0;
80
pub const PSCI_0_2_TOS_UP_NO_MIGRATE: u32 = 1;
81
pub const PSCI_0_2_TOS_MP: u32 = 2;
82
pub const PSCI_1_1_RESET_TYPE_SYSTEM_WARM_RESET: u32 = 0;
83
pub const PSCI_1_1_RESET_TYPE_VENDOR_START: u32 = 2147483648;
84
pub const PSCI_VERSION_MAJOR_SHIFT: u32 = 16;
85
pub const PSCI_VERSION_MINOR_MASK: u32 = 65535;
86
pub const PSCI_VERSION_MAJOR_MASK: i32 = -65536;
87
pub const PSCI_1_0_FEATURES_CPU_SUSPEND_PF_SHIFT: u32 = 1;
88
pub const PSCI_1_0_FEATURES_CPU_SUSPEND_PF_MASK: u32 = 2;
89
pub const PSCI_1_0_SUSPEND_MODE_PC: u32 = 0;
90
pub const PSCI_1_0_SUSPEND_MODE_OSI: u32 = 1;
91
pub const PSCI_RET_SUCCESS: u32 = 0;
92
pub const PSCI_RET_NOT_SUPPORTED: i32 = -1;
93
pub const PSCI_RET_INVALID_PARAMS: i32 = -2;
94
pub const PSCI_RET_DENIED: i32 = -3;
95
pub const PSCI_RET_ALREADY_ON: i32 = -4;
96
pub const PSCI_RET_ON_PENDING: i32 = -5;
97
pub const PSCI_RET_INTERNAL_FAILURE: i32 = -6;
98
pub const PSCI_RET_NOT_PRESENT: i32 = -7;
99
pub const PSCI_RET_DISABLED: i32 = -8;
100
pub const PSCI_RET_INVALID_ADDRESS: i32 = -9;
101
pub const HWCAP_FP: u32 = 1;
102
pub const HWCAP_ASIMD: u32 = 2;
103
pub const HWCAP_EVTSTRM: u32 = 4;
104
pub const HWCAP_AES: u32 = 8;
105
pub const HWCAP_PMULL: u32 = 16;
106
pub const HWCAP_SHA1: u32 = 32;
107
pub const HWCAP_SHA2: u32 = 64;
108
pub const HWCAP_CRC32: u32 = 128;
109
pub const HWCAP_ATOMICS: u32 = 256;
110
pub const HWCAP_FPHP: u32 = 512;
111
pub const HWCAP_ASIMDHP: u32 = 1024;
112
pub const HWCAP_CPUID: u32 = 2048;
113
pub const HWCAP_ASIMDRDM: u32 = 4096;
114
pub const HWCAP_JSCVT: u32 = 8192;
115
pub const HWCAP_FCMA: u32 = 16384;
116
pub const HWCAP_LRCPC: u32 = 32768;
117
pub const HWCAP_DCPOP: u32 = 65536;
118
pub const HWCAP_SHA3: u32 = 131072;
119
pub const HWCAP_SM3: u32 = 262144;
120
pub const HWCAP_SM4: u32 = 524288;
121
pub const HWCAP_ASIMDDP: u32 = 1048576;
122
pub const HWCAP_SHA512: u32 = 2097152;
123
pub const HWCAP_SVE: u32 = 4194304;
124
pub const HWCAP_ASIMDFHM: u32 = 8388608;
125
pub const HWCAP_DIT: u32 = 16777216;
126
pub const HWCAP_USCAT: u32 = 33554432;
127
pub const HWCAP_ILRCPC: u32 = 67108864;
128
pub const HWCAP_FLAGM: u32 = 134217728;
129
pub const HWCAP_SSBS: u32 = 268435456;
130
pub const HWCAP_SB: u32 = 536870912;
131
pub const HWCAP_PACA: u32 = 1073741824;
132
pub const HWCAP_PACG: u32 = 2147483648;
133
pub const HWCAP2_DCPODP: u32 = 1;
134
pub const HWCAP2_SVE2: u32 = 2;
135
pub const HWCAP2_SVEAES: u32 = 4;
136
pub const HWCAP2_SVEPMULL: u32 = 8;
137
pub const HWCAP2_SVEBITPERM: u32 = 16;
138
pub const HWCAP2_SVESHA3: u32 = 32;
139
pub const HWCAP2_SVESM4: u32 = 64;
140
pub const HWCAP2_FLAGM2: u32 = 128;
141
pub const HWCAP2_FRINT: u32 = 256;
142
pub const HWCAP2_SVEI8MM: u32 = 512;
143
pub const HWCAP2_SVEF32MM: u32 = 1024;
144
pub const HWCAP2_SVEF64MM: u32 = 2048;
145
pub const HWCAP2_SVEBF16: u32 = 4096;
146
pub const HWCAP2_I8MM: u32 = 8192;
147
pub const HWCAP2_BF16: u32 = 16384;
148
pub const HWCAP2_DGH: u32 = 32768;
149
pub const HWCAP2_RNG: u32 = 65536;
150
pub const HWCAP2_BTI: u32 = 131072;
151
pub const HWCAP2_MTE: u32 = 262144;
152
pub const HWCAP2_ECV: u32 = 524288;
153
pub const HWCAP2_AFP: u32 = 1048576;
154
pub const HWCAP2_RPRES: u32 = 2097152;
155
pub const HWCAP2_MTE3: u32 = 4194304;
156
pub const HWCAP2_SME: u32 = 8388608;
157
pub const HWCAP2_SME_I16I64: u32 = 16777216;
158
pub const HWCAP2_SME_F64F64: u32 = 33554432;
159
pub const HWCAP2_SME_I8I32: u32 = 67108864;
160
pub const HWCAP2_SME_F16F32: u32 = 134217728;
161
pub const HWCAP2_SME_B16F32: u32 = 268435456;
162
pub const HWCAP2_SME_F32F32: u32 = 536870912;
163
pub const HWCAP2_SME_FA64: u32 = 1073741824;
164
pub const HWCAP2_WFXT: u32 = 2147483648;
165
pub const HWCAP2_EBF16: u64 = 4294967296;
166
pub const HWCAP2_SVE_EBF16: u64 = 8589934592;
167
pub const HWCAP2_CSSC: u64 = 17179869184;
168
pub const HWCAP2_RPRFM: u64 = 34359738368;
169
pub const HWCAP2_SVE2P1: u64 = 68719476736;
170
pub const HWCAP2_SME2: u64 = 137438953472;
171
pub const HWCAP2_SME2P1: u64 = 274877906944;
172
pub const HWCAP2_SME_I16I32: u64 = 549755813888;
173
pub const HWCAP2_SME_BI32I32: u64 = 1099511627776;
174
pub const HWCAP2_SME_B16B16: u64 = 2199023255552;
175
pub const HWCAP2_SME_F16F16: u64 = 4398046511104;
176
pub const HWCAP2_MOPS: u64 = 8796093022208;
177
pub const HWCAP2_HBC: u64 = 17592186044416;
178
pub const HWCAP2_SVE_B16B16: u64 = 35184372088832;
179
pub const HWCAP2_LRCPC3: u64 = 70368744177664;
180
pub const HWCAP2_LSE128: u64 = 140737488355328;
181
pub const HWCAP2_FPMR: u64 = 281474976710656;
182
pub const HWCAP2_LUT: u64 = 562949953421312;
183
pub const HWCAP2_FAMINMAX: u64 = 1125899906842624;
184
pub const HWCAP2_F8CVT: u64 = 2251799813685248;
185
pub const HWCAP2_F8FMA: u64 = 4503599627370496;
186
pub const HWCAP2_F8DP4: u64 = 9007199254740992;
187
pub const HWCAP2_F8DP2: u64 = 18014398509481984;
188
pub const HWCAP2_F8E4M3: u64 = 36028797018963968;
189
pub const HWCAP2_F8E5M2: u64 = 72057594037927936;
190
pub const HWCAP2_SME_LUTV2: u64 = 144115188075855872;
191
pub const HWCAP2_SME_F8F16: u64 = 288230376151711744;
192
pub const HWCAP2_SME_F8F32: u64 = 576460752303423488;
193
pub const HWCAP2_SME_SF8FMA: u64 = 1152921504606846976;
194
pub const HWCAP2_SME_SF8DP4: u64 = 2305843009213693952;
195
pub const HWCAP2_SME_SF8DP2: u64 = 4611686018427387904;
196
pub const HWCAP2_POE: i64 = -9223372036854775808;
197
pub const __SVE_VQ_BYTES: u32 = 16;
198
pub const __SVE_VQ_MIN: u32 = 1;
199
pub const __SVE_VQ_MAX: u32 = 512;
200
pub const __SVE_VL_MIN: u32 = 16;
201
pub const __SVE_VL_MAX: u32 = 8192;
202
pub const __SVE_NUM_ZREGS: u32 = 32;
203
pub const __SVE_NUM_PREGS: u32 = 16;
204
pub const __SVE_ZREGS_OFFSET: u32 = 0;
205
pub const PSR_MODE_EL0t: u32 = 0;
206
pub const PSR_MODE_EL1t: u32 = 4;
207
pub const PSR_MODE_EL1h: u32 = 5;
208
pub const PSR_MODE_EL2t: u32 = 8;
209
pub const PSR_MODE_EL2h: u32 = 9;
210
pub const PSR_MODE_EL3t: u32 = 12;
211
pub const PSR_MODE_EL3h: u32 = 13;
212
pub const PSR_MODE_MASK: u32 = 15;
213
pub const PSR_MODE32_BIT: u32 = 16;
214
pub const PSR_F_BIT: u32 = 64;
215
pub const PSR_I_BIT: u32 = 128;
216
pub const PSR_A_BIT: u32 = 256;
217
pub const PSR_D_BIT: u32 = 512;
218
pub const PSR_BTYPE_MASK: u32 = 3072;
219
pub const PSR_SSBS_BIT: u32 = 4096;
220
pub const PSR_PAN_BIT: u32 = 4194304;
221
pub const PSR_UAO_BIT: u32 = 8388608;
222
pub const PSR_DIT_BIT: u32 = 16777216;
223
pub const PSR_TCO_BIT: u32 = 33554432;
224
pub const PSR_V_BIT: u32 = 268435456;
225
pub const PSR_C_BIT: u32 = 536870912;
226
pub const PSR_Z_BIT: u32 = 1073741824;
227
pub const PSR_N_BIT: u32 = 2147483648;
228
pub const PSR_BTYPE_SHIFT: u32 = 10;
229
pub const PSR_f: u32 = 4278190080;
230
pub const PSR_s: u32 = 16711680;
231
pub const PSR_x: u32 = 65280;
232
pub const PSR_c: u32 = 255;
233
pub const PSR_BTYPE_NONE: u32 = 0;
234
pub const PSR_BTYPE_JC: u32 = 1024;
235
pub const PSR_BTYPE_C: u32 = 2048;
236
pub const PSR_BTYPE_J: u32 = 3072;
237
pub const PTRACE_SYSEMU: u32 = 31;
238
pub const PTRACE_SYSEMU_SINGLESTEP: u32 = 32;
239
pub const PTRACE_PEEKMTETAGS: u32 = 33;
240
pub const PTRACE_POKEMTETAGS: u32 = 34;
241
pub const SVE_PT_REGS_MASK: u32 = 1;
242
pub const SVE_PT_REGS_FPSIMD: u32 = 0;
243
pub const SVE_PT_REGS_SVE: u32 = 1;
244
pub const SVE_PT_VL_INHERIT: u32 = 2;
245
pub const SVE_PT_VL_ONEXEC: u32 = 4;
246
pub const ZA_PT_VL_INHERIT: u32 = 2;
247
pub const ZA_PT_VL_ONEXEC: u32 = 4;
248
pub const KVM_COALESCED_MMIO_PAGE_OFFSET: u32 = 1;
249
pub const KVM_DIRTY_LOG_PAGE_OFFSET: u32 = 64;
250
pub const KVM_ARM_TARGET_AEM_V8: u32 = 0;
251
pub const KVM_ARM_TARGET_FOUNDATION_V8: u32 = 1;
252
pub const KVM_ARM_TARGET_CORTEX_A57: u32 = 2;
253
pub const KVM_ARM_TARGET_XGENE_POTENZA: u32 = 3;
254
pub const KVM_ARM_TARGET_CORTEX_A53: u32 = 4;
255
pub const KVM_ARM_TARGET_GENERIC_V8: u32 = 5;
256
pub const KVM_ARM_NUM_TARGETS: u32 = 6;
257
pub const KVM_ARM_DEVICE_TYPE_SHIFT: u32 = 0;
258
pub const KVM_ARM_DEVICE_ID_SHIFT: u32 = 16;
259
pub const KVM_ARM_DEVICE_VGIC_V2: u32 = 0;
260
pub const KVM_VGIC_V2_ADDR_TYPE_DIST: u32 = 0;
261
pub const KVM_VGIC_V2_ADDR_TYPE_CPU: u32 = 1;
262
pub const KVM_VGIC_V2_DIST_SIZE: u32 = 4096;
263
pub const KVM_VGIC_V2_CPU_SIZE: u32 = 8192;
264
pub const KVM_VGIC_V3_ADDR_TYPE_DIST: u32 = 2;
265
pub const KVM_VGIC_V3_ADDR_TYPE_REDIST: u32 = 3;
266
pub const KVM_VGIC_ITS_ADDR_TYPE: u32 = 4;
267
pub const KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION: u32 = 5;
268
pub const KVM_ARM_VCPU_POWER_OFF: u32 = 0;
269
pub const KVM_ARM_VCPU_EL1_32BIT: u32 = 1;
270
pub const KVM_ARM_VCPU_PSCI_0_2: u32 = 2;
271
pub const KVM_ARM_VCPU_PMU_V3: u32 = 3;
272
pub const KVM_ARM_VCPU_SVE: u32 = 4;
273
pub const KVM_ARM_VCPU_PTRAUTH_ADDRESS: u32 = 5;
274
pub const KVM_ARM_VCPU_PTRAUTH_GENERIC: u32 = 6;
275
pub const KVM_ARM_VCPU_HAS_EL2: u32 = 7;
276
pub const KVM_ARM_MAX_DBG_REGS: u32 = 16;
277
pub const KVM_DEBUG_ARCH_HSR_HIGH_VALID: u32 = 1;
278
pub const KVM_GUESTDBG_USE_SW_BP: u32 = 65536;
279
pub const KVM_GUESTDBG_USE_HW: u32 = 131072;
280
pub const KVM_ARM_DEV_EL1_VTIMER: u32 = 1;
281
pub const KVM_ARM_DEV_EL1_PTIMER: u32 = 2;
282
pub const KVM_ARM_DEV_PMU: u32 = 4;
283
pub const KVM_PMU_EVENT_ALLOW: u32 = 0;
284
pub const KVM_PMU_EVENT_DENY: u32 = 1;
285
pub const KVM_ARM_TAGS_TO_GUEST: u32 = 0;
286
pub const KVM_ARM_TAGS_FROM_GUEST: u32 = 1;
287
pub const KVM_REG_ARM_COPROC_MASK: u32 = 268369920;
288
pub const KVM_REG_ARM_COPROC_SHIFT: u32 = 16;
289
pub const KVM_REG_ARM_CORE: u32 = 1048576;
290
pub const KVM_REG_ARM_DEMUX: u32 = 1114112;
291
pub const KVM_REG_ARM_DEMUX_ID_MASK: u32 = 65280;
292
pub const KVM_REG_ARM_DEMUX_ID_SHIFT: u32 = 8;
293
pub const KVM_REG_ARM_DEMUX_ID_CCSIDR: u32 = 0;
294
pub const KVM_REG_ARM_DEMUX_VAL_MASK: u32 = 255;
295
pub const KVM_REG_ARM_DEMUX_VAL_SHIFT: u32 = 0;
296
pub const KVM_REG_ARM64_SYSREG: u32 = 1245184;
297
pub const KVM_REG_ARM64_SYSREG_OP0_MASK: u32 = 49152;
298
pub const KVM_REG_ARM64_SYSREG_OP0_SHIFT: u32 = 14;
299
pub const KVM_REG_ARM64_SYSREG_OP1_MASK: u32 = 14336;
300
pub const KVM_REG_ARM64_SYSREG_OP1_SHIFT: u32 = 11;
301
pub const KVM_REG_ARM64_SYSREG_CRN_MASK: u32 = 1920;
302
pub const KVM_REG_ARM64_SYSREG_CRN_SHIFT: u32 = 7;
303
pub const KVM_REG_ARM64_SYSREG_CRM_MASK: u32 = 120;
304
pub const KVM_REG_ARM64_SYSREG_CRM_SHIFT: u32 = 3;
305
pub const KVM_REG_ARM64_SYSREG_OP2_MASK: u32 = 7;
306
pub const KVM_REG_ARM64_SYSREG_OP2_SHIFT: u32 = 0;
307
pub const KVM_REG_ARM_FW: u32 = 1310720;
308
pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_1_NOT_AVAIL: u32 = 0;
309
pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_1_AVAIL: u32 = 1;
310
pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_1_NOT_REQUIRED: u32 = 2;
311
pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_NOT_AVAIL: u32 = 0;
312
pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_UNKNOWN: u32 = 1;
313
pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_AVAIL: u32 = 2;
314
pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_NOT_REQUIRED: u32 = 3;
315
pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_ENABLED: u32 = 16;
316
pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_3_NOT_AVAIL: u32 = 0;
317
pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_3_AVAIL: u32 = 1;
318
pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_3_NOT_REQUIRED: u32 = 2;
319
pub const KVM_REG_ARM64_SVE: u32 = 1376256;
320
pub const KVM_REG_ARM64_SVE_ZREG_BASE: u32 = 0;
321
pub const KVM_REG_ARM64_SVE_PREG_BASE: u32 = 1024;
322
pub const KVM_REG_ARM64_SVE_FFR_BASE: u32 = 1536;
323
pub const KVM_ARM64_SVE_NUM_ZREGS: u32 = 32;
324
pub const KVM_ARM64_SVE_NUM_PREGS: u32 = 16;
325
pub const KVM_ARM64_SVE_MAX_SLICES: u32 = 32;
326
pub const KVM_ARM64_SVE_VQ_MIN: u32 = 1;
327
pub const KVM_ARM64_SVE_VQ_MAX: u32 = 512;
328
pub const KVM_ARM64_SVE_VLS_WORDS: u32 = 8;
329
pub const KVM_REG_ARM_FW_FEAT_BMAP: u32 = 1441792;
330
pub const KVM_ARM_VM_SMCCC_CTRL: u32 = 0;
331
pub const KVM_ARM_VM_SMCCC_FILTER: u32 = 0;
332
pub const KVM_DEV_ARM_VGIC_GRP_ADDR: u32 = 0;
333
pub const KVM_DEV_ARM_VGIC_GRP_DIST_REGS: u32 = 1;
334
pub const KVM_DEV_ARM_VGIC_GRP_CPU_REGS: u32 = 2;
335
pub const KVM_DEV_ARM_VGIC_CPUID_SHIFT: u32 = 32;
336
pub const KVM_DEV_ARM_VGIC_CPUID_MASK: u64 = 1095216660480;
337
pub const KVM_DEV_ARM_VGIC_V3_MPIDR_SHIFT: u32 = 32;
338
pub const KVM_DEV_ARM_VGIC_V3_MPIDR_MASK: i64 = -4294967296;
339
pub const KVM_DEV_ARM_VGIC_OFFSET_SHIFT: u32 = 0;
340
pub const KVM_DEV_ARM_VGIC_OFFSET_MASK: u32 = 4294967295;
341
pub const KVM_DEV_ARM_VGIC_SYSREG_INSTR_MASK: u32 = 65535;
342
pub const KVM_DEV_ARM_VGIC_GRP_NR_IRQS: u32 = 3;
343
pub const KVM_DEV_ARM_VGIC_GRP_CTRL: u32 = 4;
344
pub const KVM_DEV_ARM_VGIC_GRP_REDIST_REGS: u32 = 5;
345
pub const KVM_DEV_ARM_VGIC_GRP_CPU_SYSREGS: u32 = 6;
346
pub const KVM_DEV_ARM_VGIC_GRP_LEVEL_INFO: u32 = 7;
347
pub const KVM_DEV_ARM_VGIC_GRP_ITS_REGS: u32 = 8;
348
pub const KVM_DEV_ARM_VGIC_LINE_LEVEL_INFO_SHIFT: u32 = 10;
349
pub const KVM_DEV_ARM_VGIC_LINE_LEVEL_INFO_MASK: u32 = 4294966272;
350
pub const KVM_DEV_ARM_VGIC_LINE_LEVEL_INTID_MASK: u32 = 1023;
351
pub const VGIC_LEVEL_INFO_LINE_LEVEL: u32 = 0;
352
pub const KVM_DEV_ARM_VGIC_CTRL_INIT: u32 = 0;
353
pub const KVM_DEV_ARM_ITS_SAVE_TABLES: u32 = 1;
354
pub const KVM_DEV_ARM_ITS_RESTORE_TABLES: u32 = 2;
355
pub const KVM_DEV_ARM_VGIC_SAVE_PENDING_TABLES: u32 = 3;
356
pub const KVM_DEV_ARM_ITS_CTRL_RESET: u32 = 4;
357
pub const KVM_ARM_VCPU_PMU_V3_CTRL: u32 = 0;
358
pub const KVM_ARM_VCPU_PMU_V3_IRQ: u32 = 0;
359
pub const KVM_ARM_VCPU_PMU_V3_INIT: u32 = 1;
360
pub const KVM_ARM_VCPU_PMU_V3_FILTER: u32 = 2;
361
pub const KVM_ARM_VCPU_PMU_V3_SET_PMU: u32 = 3;
362
pub const KVM_ARM_VCPU_TIMER_CTRL: u32 = 1;
363
pub const KVM_ARM_VCPU_TIMER_IRQ_VTIMER: u32 = 0;
364
pub const KVM_ARM_VCPU_TIMER_IRQ_PTIMER: u32 = 1;
365
pub const KVM_ARM_VCPU_TIMER_IRQ_HVTIMER: u32 = 2;
366
pub const KVM_ARM_VCPU_TIMER_IRQ_HPTIMER: u32 = 3;
367
pub const KVM_ARM_VCPU_PVTIME_CTRL: u32 = 2;
368
pub const KVM_ARM_VCPU_PVTIME_IPA: u32 = 0;
369
pub const KVM_ARM_IRQ_VCPU2_SHIFT: u32 = 28;
370
pub const KVM_ARM_IRQ_VCPU2_MASK: u32 = 15;
371
pub const KVM_ARM_IRQ_TYPE_SHIFT: u32 = 24;
372
pub const KVM_ARM_IRQ_TYPE_MASK: u32 = 15;
373
pub const KVM_ARM_IRQ_VCPU_SHIFT: u32 = 16;
374
pub const KVM_ARM_IRQ_VCPU_MASK: u32 = 255;
375
pub const KVM_ARM_IRQ_NUM_SHIFT: u32 = 0;
376
pub const KVM_ARM_IRQ_NUM_MASK: u32 = 65535;
377
pub const KVM_ARM_IRQ_TYPE_CPU: u32 = 0;
378
pub const KVM_ARM_IRQ_TYPE_SPI: u32 = 1;
379
pub const KVM_ARM_IRQ_TYPE_PPI: u32 = 2;
380
pub const KVM_ARM_IRQ_CPU_IRQ: u32 = 0;
381
pub const KVM_ARM_IRQ_CPU_FIQ: u32 = 1;
382
pub const KVM_ARM_IRQ_GIC_MAX: u32 = 127;
383
pub const KVM_NR_IRQCHIPS: u32 = 1;
384
pub const KVM_PSCI_FN_BASE: u32 = 2512501342;
385
pub const KVM_PSCI_RET_SUCCESS: u32 = 0;
386
pub const KVM_PSCI_RET_NI: i32 = -1;
387
pub const KVM_PSCI_RET_INVAL: i32 = -2;
388
pub const KVM_PSCI_RET_DENIED: i32 = -3;
389
pub const KVM_SYSTEM_EVENT_RESET_FLAG_PSCI_RESET2: u32 = 1;
390
pub const KVM_EXIT_FAIL_ENTRY_CPU_UNSUPPORTED: u32 = 1;
391
pub const KVM_HYPERCALL_EXIT_SMC: u32 = 1;
392
pub const KVM_HYPERCALL_EXIT_16BIT: u32 = 2;
393
pub const KVM_ARM_FEATURE_ID_RANGE: u32 = 0;
394
pub const KVM_ARM_FEATURE_ID_RANGE_SIZE: u32 = 192;
395
pub const KVM_API_VERSION: u32 = 12;
396
pub const KVM_MEM_LOG_DIRTY_PAGES: u32 = 1;
397
pub const KVM_MEM_READONLY: u32 = 2;
398
pub const KVM_MEM_GUEST_MEMFD: u32 = 4;
399
pub const KVM_PIT_SPEAKER_DUMMY: u32 = 1;
400
pub const KVM_EXIT_HYPERV_SYNIC: u32 = 1;
401
pub const KVM_EXIT_HYPERV_HCALL: u32 = 2;
402
pub const KVM_EXIT_HYPERV_SYNDBG: u32 = 3;
403
pub const KVM_EXIT_XEN_HCALL: u32 = 1;
404
pub const KVM_S390_GET_SKEYS_NONE: u32 = 1;
405
pub const KVM_S390_SKEYS_MAX: u32 = 1048576;
406
pub const KVM_EXIT_UNKNOWN: u32 = 0;
407
pub const KVM_EXIT_EXCEPTION: u32 = 1;
408
pub const KVM_EXIT_IO: u32 = 2;
409
pub const KVM_EXIT_HYPERCALL: u32 = 3;
410
pub const KVM_EXIT_DEBUG: u32 = 4;
411
pub const KVM_EXIT_HLT: u32 = 5;
412
pub const KVM_EXIT_MMIO: u32 = 6;
413
pub const KVM_EXIT_IRQ_WINDOW_OPEN: u32 = 7;
414
pub const KVM_EXIT_SHUTDOWN: u32 = 8;
415
pub const KVM_EXIT_FAIL_ENTRY: u32 = 9;
416
pub const KVM_EXIT_INTR: u32 = 10;
417
pub const KVM_EXIT_SET_TPR: u32 = 11;
418
pub const KVM_EXIT_TPR_ACCESS: u32 = 12;
419
pub const KVM_EXIT_S390_SIEIC: u32 = 13;
420
pub const KVM_EXIT_S390_RESET: u32 = 14;
421
pub const KVM_EXIT_DCR: u32 = 15;
422
pub const KVM_EXIT_NMI: u32 = 16;
423
pub const KVM_EXIT_INTERNAL_ERROR: u32 = 17;
424
pub const KVM_EXIT_OSI: u32 = 18;
425
pub const KVM_EXIT_PAPR_HCALL: u32 = 19;
426
pub const KVM_EXIT_S390_UCONTROL: u32 = 20;
427
pub const KVM_EXIT_WATCHDOG: u32 = 21;
428
pub const KVM_EXIT_S390_TSCH: u32 = 22;
429
pub const KVM_EXIT_EPR: u32 = 23;
430
pub const KVM_EXIT_SYSTEM_EVENT: u32 = 24;
431
pub const KVM_EXIT_S390_STSI: u32 = 25;
432
pub const KVM_EXIT_IOAPIC_EOI: u32 = 26;
433
pub const KVM_EXIT_HYPERV: u32 = 27;
434
pub const KVM_EXIT_ARM_NISV: u32 = 28;
435
pub const KVM_EXIT_X86_RDMSR: u32 = 29;
436
pub const KVM_EXIT_X86_WRMSR: u32 = 30;
437
pub const KVM_EXIT_DIRTY_RING_FULL: u32 = 31;
438
pub const KVM_EXIT_AP_RESET_HOLD: u32 = 32;
439
pub const KVM_EXIT_X86_BUS_LOCK: u32 = 33;
440
pub const KVM_EXIT_XEN: u32 = 34;
441
pub const KVM_EXIT_RISCV_SBI: u32 = 35;
442
pub const KVM_EXIT_RISCV_CSR: u32 = 36;
443
pub const KVM_EXIT_NOTIFY: u32 = 37;
444
pub const KVM_EXIT_LOONGARCH_IOCSR: u32 = 38;
445
pub const KVM_EXIT_MEMORY_FAULT: u32 = 39;
446
pub const KVM_INTERNAL_ERROR_EMULATION: u32 = 1;
447
pub const KVM_INTERNAL_ERROR_SIMUL_EX: u32 = 2;
448
pub const KVM_INTERNAL_ERROR_DELIVERY_EV: u32 = 3;
449
pub const KVM_INTERNAL_ERROR_UNEXPECTED_EXIT_REASON: u32 = 4;
450
pub const KVM_INTERNAL_ERROR_EMULATION_FLAG_INSTRUCTION_BYTES: u32 = 1;
451
pub const KVM_EXIT_IO_IN: u32 = 0;
452
pub const KVM_EXIT_IO_OUT: u32 = 1;
453
pub const KVM_SYSTEM_EVENT_SHUTDOWN: u32 = 1;
454
pub const KVM_SYSTEM_EVENT_RESET: u32 = 2;
455
pub const KVM_SYSTEM_EVENT_CRASH: u32 = 3;
456
pub const KVM_SYSTEM_EVENT_WAKEUP: u32 = 4;
457
pub const KVM_SYSTEM_EVENT_SUSPEND: u32 = 5;
458
pub const KVM_SYSTEM_EVENT_SEV_TERM: u32 = 6;
459
pub const KVM_MSR_EXIT_REASON_INVAL: u32 = 1;
460
pub const KVM_MSR_EXIT_REASON_UNKNOWN: u32 = 2;
461
pub const KVM_MSR_EXIT_REASON_FILTER: u32 = 4;
462
pub const KVM_MSR_EXIT_REASON_VALID_MASK: u32 = 7;
463
pub const KVM_NOTIFY_CONTEXT_INVALID: u32 = 1;
464
pub const KVM_MEMORY_EXIT_FLAG_PRIVATE: u32 = 8;
465
pub const SYNC_REGS_SIZE_BYTES: u32 = 2048;
466
pub const KVM_MP_STATE_RUNNABLE: u32 = 0;
467
pub const KVM_MP_STATE_UNINITIALIZED: u32 = 1;
468
pub const KVM_MP_STATE_INIT_RECEIVED: u32 = 2;
469
pub const KVM_MP_STATE_HALTED: u32 = 3;
470
pub const KVM_MP_STATE_SIPI_RECEIVED: u32 = 4;
471
pub const KVM_MP_STATE_STOPPED: u32 = 5;
472
pub const KVM_MP_STATE_CHECK_STOP: u32 = 6;
473
pub const KVM_MP_STATE_OPERATING: u32 = 7;
474
pub const KVM_MP_STATE_LOAD: u32 = 8;
475
pub const KVM_MP_STATE_AP_RESET_HOLD: u32 = 9;
476
pub const KVM_MP_STATE_SUSPENDED: u32 = 10;
477
pub const KVM_GUESTDBG_ENABLE: u32 = 1;
478
pub const KVM_GUESTDBG_SINGLESTEP: u32 = 2;
479
pub const KVM_X86_DISABLE_EXITS_MWAIT: u32 = 1;
480
pub const KVM_X86_DISABLE_EXITS_HLT: u32 = 2;
481
pub const KVM_X86_DISABLE_EXITS_PAUSE: u32 = 4;
482
pub const KVM_X86_DISABLE_EXITS_CSTATE: u32 = 8;
483
pub const KVM_X86_DISABLE_VALID_EXITS: u32 = 15;
484
pub const KVMIO: u32 = 174;
485
pub const KVM_VM_S390_UCONTROL: u32 = 1;
486
pub const KVM_VM_PPC_HV: u32 = 1;
487
pub const KVM_VM_PPC_PR: u32 = 2;
488
pub const KVM_VM_MIPS_AUTO: u32 = 0;
489
pub const KVM_VM_MIPS_VZ: u32 = 1;
490
pub const KVM_VM_MIPS_TE: u32 = 2;
491
pub const KVM_S390_SIE_PAGE_OFFSET: u32 = 1;
492
pub const KVM_VM_TYPE_ARM_IPA_SIZE_MASK: u32 = 255;
493
pub const KVM_CAP_IRQCHIP: u32 = 0;
494
pub const KVM_CAP_HLT: u32 = 1;
495
pub const KVM_CAP_MMU_SHADOW_CACHE_CONTROL: u32 = 2;
496
pub const KVM_CAP_USER_MEMORY: u32 = 3;
497
pub const KVM_CAP_SET_TSS_ADDR: u32 = 4;
498
pub const KVM_CAP_VAPIC: u32 = 6;
499
pub const KVM_CAP_EXT_CPUID: u32 = 7;
500
pub const KVM_CAP_CLOCKSOURCE: u32 = 8;
501
pub const KVM_CAP_NR_VCPUS: u32 = 9;
502
pub const KVM_CAP_NR_MEMSLOTS: u32 = 10;
503
pub const KVM_CAP_PIT: u32 = 11;
504
pub const KVM_CAP_NOP_IO_DELAY: u32 = 12;
505
pub const KVM_CAP_PV_MMU: u32 = 13;
506
pub const KVM_CAP_MP_STATE: u32 = 14;
507
pub const KVM_CAP_COALESCED_MMIO: u32 = 15;
508
pub const KVM_CAP_SYNC_MMU: u32 = 16;
509
pub const KVM_CAP_IOMMU: u32 = 18;
510
pub const KVM_CAP_DESTROY_MEMORY_REGION_WORKS: u32 = 21;
511
pub const KVM_CAP_USER_NMI: u32 = 22;
512
pub const KVM_CAP_SET_GUEST_DEBUG: u32 = 23;
513
pub const KVM_CAP_IRQ_ROUTING: u32 = 25;
514
pub const KVM_CAP_IRQ_INJECT_STATUS: u32 = 26;
515
pub const KVM_CAP_ASSIGN_DEV_IRQ: u32 = 29;
516
pub const KVM_CAP_JOIN_MEMORY_REGIONS_WORKS: u32 = 30;
517
pub const KVM_CAP_IRQFD: u32 = 32;
518
pub const KVM_CAP_SET_BOOT_CPU_ID: u32 = 34;
519
pub const KVM_CAP_IOEVENTFD: u32 = 36;
520
pub const KVM_CAP_SET_IDENTITY_MAP_ADDR: u32 = 37;
521
pub const KVM_CAP_ADJUST_CLOCK: u32 = 39;
522
pub const KVM_CAP_INTERNAL_ERROR_DATA: u32 = 40;
523
pub const KVM_CAP_VCPU_EVENTS: u32 = 41;
524
pub const KVM_CAP_S390_PSW: u32 = 42;
525
pub const KVM_CAP_PPC_SEGSTATE: u32 = 43;
526
pub const KVM_CAP_HYPERV: u32 = 44;
527
pub const KVM_CAP_HYPERV_VAPIC: u32 = 45;
528
pub const KVM_CAP_HYPERV_SPIN: u32 = 46;
529
pub const KVM_CAP_PCI_SEGMENT: u32 = 47;
530
pub const KVM_CAP_PPC_PAIRED_SINGLES: u32 = 48;
531
pub const KVM_CAP_INTR_SHADOW: u32 = 49;
532
pub const KVM_CAP_X86_ROBUST_SINGLESTEP: u32 = 51;
533
pub const KVM_CAP_PPC_OSI: u32 = 52;
534
pub const KVM_CAP_PPC_UNSET_IRQ: u32 = 53;
535
pub const KVM_CAP_ENABLE_CAP: u32 = 54;
536
pub const KVM_CAP_PPC_GET_PVINFO: u32 = 57;
537
pub const KVM_CAP_PPC_IRQ_LEVEL: u32 = 58;
538
pub const KVM_CAP_ASYNC_PF: u32 = 59;
539
pub const KVM_CAP_TSC_CONTROL: u32 = 60;
540
pub const KVM_CAP_GET_TSC_KHZ: u32 = 61;
541
pub const KVM_CAP_PPC_BOOKE_SREGS: u32 = 62;
542
pub const KVM_CAP_SPAPR_TCE: u32 = 63;
543
pub const KVM_CAP_PPC_SMT: u32 = 64;
544
pub const KVM_CAP_PPC_RMA: u32 = 65;
545
pub const KVM_CAP_MAX_VCPUS: u32 = 66;
546
pub const KVM_CAP_PPC_HIOR: u32 = 67;
547
pub const KVM_CAP_PPC_PAPR: u32 = 68;
548
pub const KVM_CAP_SW_TLB: u32 = 69;
549
pub const KVM_CAP_ONE_REG: u32 = 70;
550
pub const KVM_CAP_S390_GMAP: u32 = 71;
551
pub const KVM_CAP_TSC_DEADLINE_TIMER: u32 = 72;
552
pub const KVM_CAP_S390_UCONTROL: u32 = 73;
553
pub const KVM_CAP_SYNC_REGS: u32 = 74;
554
pub const KVM_CAP_PCI_2_3: u32 = 75;
555
pub const KVM_CAP_KVMCLOCK_CTRL: u32 = 76;
556
pub const KVM_CAP_SIGNAL_MSI: u32 = 77;
557
pub const KVM_CAP_PPC_GET_SMMU_INFO: u32 = 78;
558
pub const KVM_CAP_S390_COW: u32 = 79;
559
pub const KVM_CAP_PPC_ALLOC_HTAB: u32 = 80;
560
pub const KVM_CAP_READONLY_MEM: u32 = 81;
561
pub const KVM_CAP_IRQFD_RESAMPLE: u32 = 82;
562
pub const KVM_CAP_PPC_BOOKE_WATCHDOG: u32 = 83;
563
pub const KVM_CAP_PPC_HTAB_FD: u32 = 84;
564
pub const KVM_CAP_S390_CSS_SUPPORT: u32 = 85;
565
pub const KVM_CAP_PPC_EPR: u32 = 86;
566
pub const KVM_CAP_ARM_PSCI: u32 = 87;
567
pub const KVM_CAP_ARM_SET_DEVICE_ADDR: u32 = 88;
568
pub const KVM_CAP_DEVICE_CTRL: u32 = 89;
569
pub const KVM_CAP_IRQ_MPIC: u32 = 90;
570
pub const KVM_CAP_PPC_RTAS: u32 = 91;
571
pub const KVM_CAP_IRQ_XICS: u32 = 92;
572
pub const KVM_CAP_ARM_EL1_32BIT: u32 = 93;
573
pub const KVM_CAP_SPAPR_MULTITCE: u32 = 94;
574
pub const KVM_CAP_EXT_EMUL_CPUID: u32 = 95;
575
pub const KVM_CAP_HYPERV_TIME: u32 = 96;
576
pub const KVM_CAP_IOAPIC_POLARITY_IGNORED: u32 = 97;
577
pub const KVM_CAP_ENABLE_CAP_VM: u32 = 98;
578
pub const KVM_CAP_S390_IRQCHIP: u32 = 99;
579
pub const KVM_CAP_IOEVENTFD_NO_LENGTH: u32 = 100;
580
pub const KVM_CAP_VM_ATTRIBUTES: u32 = 101;
581
pub const KVM_CAP_ARM_PSCI_0_2: u32 = 102;
582
pub const KVM_CAP_PPC_FIXUP_HCALL: u32 = 103;
583
pub const KVM_CAP_PPC_ENABLE_HCALL: u32 = 104;
584
pub const KVM_CAP_CHECK_EXTENSION_VM: u32 = 105;
585
pub const KVM_CAP_S390_USER_SIGP: u32 = 106;
586
pub const KVM_CAP_S390_VECTOR_REGISTERS: u32 = 107;
587
pub const KVM_CAP_S390_MEM_OP: u32 = 108;
588
pub const KVM_CAP_S390_USER_STSI: u32 = 109;
589
pub const KVM_CAP_S390_SKEYS: u32 = 110;
590
pub const KVM_CAP_MIPS_FPU: u32 = 111;
591
pub const KVM_CAP_MIPS_MSA: u32 = 112;
592
pub const KVM_CAP_S390_INJECT_IRQ: u32 = 113;
593
pub const KVM_CAP_S390_IRQ_STATE: u32 = 114;
594
pub const KVM_CAP_PPC_HWRNG: u32 = 115;
595
pub const KVM_CAP_DISABLE_QUIRKS: u32 = 116;
596
pub const KVM_CAP_X86_SMM: u32 = 117;
597
pub const KVM_CAP_MULTI_ADDRESS_SPACE: u32 = 118;
598
pub const KVM_CAP_GUEST_DEBUG_HW_BPS: u32 = 119;
599
pub const KVM_CAP_GUEST_DEBUG_HW_WPS: u32 = 120;
600
pub const KVM_CAP_SPLIT_IRQCHIP: u32 = 121;
601
pub const KVM_CAP_IOEVENTFD_ANY_LENGTH: u32 = 122;
602
pub const KVM_CAP_HYPERV_SYNIC: u32 = 123;
603
pub const KVM_CAP_S390_RI: u32 = 124;
604
pub const KVM_CAP_SPAPR_TCE_64: u32 = 125;
605
pub const KVM_CAP_ARM_PMU_V3: u32 = 126;
606
pub const KVM_CAP_VCPU_ATTRIBUTES: u32 = 127;
607
pub const KVM_CAP_MAX_VCPU_ID: u32 = 128;
608
pub const KVM_CAP_X2APIC_API: u32 = 129;
609
pub const KVM_CAP_S390_USER_INSTR0: u32 = 130;
610
pub const KVM_CAP_MSI_DEVID: u32 = 131;
611
pub const KVM_CAP_PPC_HTM: u32 = 132;
612
pub const KVM_CAP_SPAPR_RESIZE_HPT: u32 = 133;
613
pub const KVM_CAP_PPC_MMU_RADIX: u32 = 134;
614
pub const KVM_CAP_PPC_MMU_HASH_V3: u32 = 135;
615
pub const KVM_CAP_IMMEDIATE_EXIT: u32 = 136;
616
pub const KVM_CAP_MIPS_VZ: u32 = 137;
617
pub const KVM_CAP_MIPS_TE: u32 = 138;
618
pub const KVM_CAP_MIPS_64BIT: u32 = 139;
619
pub const KVM_CAP_S390_GS: u32 = 140;
620
pub const KVM_CAP_S390_AIS: u32 = 141;
621
pub const KVM_CAP_SPAPR_TCE_VFIO: u32 = 142;
622
pub const KVM_CAP_X86_DISABLE_EXITS: u32 = 143;
623
pub const KVM_CAP_ARM_USER_IRQ: u32 = 144;
624
pub const KVM_CAP_S390_CMMA_MIGRATION: u32 = 145;
625
pub const KVM_CAP_PPC_FWNMI: u32 = 146;
626
pub const KVM_CAP_PPC_SMT_POSSIBLE: u32 = 147;
627
pub const KVM_CAP_HYPERV_SYNIC2: u32 = 148;
628
pub const KVM_CAP_HYPERV_VP_INDEX: u32 = 149;
629
pub const KVM_CAP_S390_AIS_MIGRATION: u32 = 150;
630
pub const KVM_CAP_PPC_GET_CPU_CHAR: u32 = 151;
631
pub const KVM_CAP_S390_BPB: u32 = 152;
632
pub const KVM_CAP_GET_MSR_FEATURES: u32 = 153;
633
pub const KVM_CAP_HYPERV_EVENTFD: u32 = 154;
634
pub const KVM_CAP_HYPERV_TLBFLUSH: u32 = 155;
635
pub const KVM_CAP_S390_HPAGE_1M: u32 = 156;
636
pub const KVM_CAP_NESTED_STATE: u32 = 157;
637
pub const KVM_CAP_ARM_INJECT_SERROR_ESR: u32 = 158;
638
pub const KVM_CAP_MSR_PLATFORM_INFO: u32 = 159;
639
pub const KVM_CAP_PPC_NESTED_HV: u32 = 160;
640
pub const KVM_CAP_HYPERV_SEND_IPI: u32 = 161;
641
pub const KVM_CAP_COALESCED_PIO: u32 = 162;
642
pub const KVM_CAP_HYPERV_ENLIGHTENED_VMCS: u32 = 163;
643
pub const KVM_CAP_EXCEPTION_PAYLOAD: u32 = 164;
644
pub const KVM_CAP_ARM_VM_IPA_SIZE: u32 = 165;
645
pub const KVM_CAP_MANUAL_DIRTY_LOG_PROTECT: u32 = 166;
646
pub const KVM_CAP_HYPERV_CPUID: u32 = 167;
647
pub const KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2: u32 = 168;
648
pub const KVM_CAP_PPC_IRQ_XIVE: u32 = 169;
649
pub const KVM_CAP_ARM_SVE: u32 = 170;
650
pub const KVM_CAP_ARM_PTRAUTH_ADDRESS: u32 = 171;
651
pub const KVM_CAP_ARM_PTRAUTH_GENERIC: u32 = 172;
652
pub const KVM_CAP_PMU_EVENT_FILTER: u32 = 173;
653
pub const KVM_CAP_ARM_IRQ_LINE_LAYOUT_2: u32 = 174;
654
pub const KVM_CAP_HYPERV_DIRECT_TLBFLUSH: u32 = 175;
655
pub const KVM_CAP_PPC_GUEST_DEBUG_SSTEP: u32 = 176;
656
pub const KVM_CAP_ARM_NISV_TO_USER: u32 = 177;
657
pub const KVM_CAP_ARM_INJECT_EXT_DABT: u32 = 178;
658
pub const KVM_CAP_S390_VCPU_RESETS: u32 = 179;
659
pub const KVM_CAP_S390_PROTECTED: u32 = 180;
660
pub const KVM_CAP_PPC_SECURE_GUEST: u32 = 181;
661
pub const KVM_CAP_HALT_POLL: u32 = 182;
662
pub const KVM_CAP_ASYNC_PF_INT: u32 = 183;
663
pub const KVM_CAP_LAST_CPU: u32 = 184;
664
pub const KVM_CAP_SMALLER_MAXPHYADDR: u32 = 185;
665
pub const KVM_CAP_S390_DIAG318: u32 = 186;
666
pub const KVM_CAP_STEAL_TIME: u32 = 187;
667
pub const KVM_CAP_X86_USER_SPACE_MSR: u32 = 188;
668
pub const KVM_CAP_X86_MSR_FILTER: u32 = 189;
669
pub const KVM_CAP_ENFORCE_PV_FEATURE_CPUID: u32 = 190;
670
pub const KVM_CAP_SYS_HYPERV_CPUID: u32 = 191;
671
pub const KVM_CAP_DIRTY_LOG_RING: u32 = 192;
672
pub const KVM_CAP_X86_BUS_LOCK_EXIT: u32 = 193;
673
pub const KVM_CAP_PPC_DAWR1: u32 = 194;
674
pub const KVM_CAP_SET_GUEST_DEBUG2: u32 = 195;
675
pub const KVM_CAP_SGX_ATTRIBUTE: u32 = 196;
676
pub const KVM_CAP_VM_COPY_ENC_CONTEXT_FROM: u32 = 197;
677
pub const KVM_CAP_PTP_KVM: u32 = 198;
678
pub const KVM_CAP_HYPERV_ENFORCE_CPUID: u32 = 199;
679
pub const KVM_CAP_SREGS2: u32 = 200;
680
pub const KVM_CAP_EXIT_HYPERCALL: u32 = 201;
681
pub const KVM_CAP_PPC_RPT_INVALIDATE: u32 = 202;
682
pub const KVM_CAP_BINARY_STATS_FD: u32 = 203;
683
pub const KVM_CAP_EXIT_ON_EMULATION_FAILURE: u32 = 204;
684
pub const KVM_CAP_ARM_MTE: u32 = 205;
685
pub const KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM: u32 = 206;
686
pub const KVM_CAP_VM_GPA_BITS: u32 = 207;
687
pub const KVM_CAP_XSAVE2: u32 = 208;
688
pub const KVM_CAP_SYS_ATTRIBUTES: u32 = 209;
689
pub const KVM_CAP_PPC_AIL_MODE_3: u32 = 210;
690
pub const KVM_CAP_S390_MEM_OP_EXTENSION: u32 = 211;
691
pub const KVM_CAP_PMU_CAPABILITY: u32 = 212;
692
pub const KVM_CAP_DISABLE_QUIRKS2: u32 = 213;
693
pub const KVM_CAP_VM_TSC_CONTROL: u32 = 214;
694
pub const KVM_CAP_SYSTEM_EVENT_DATA: u32 = 215;
695
pub const KVM_CAP_ARM_SYSTEM_SUSPEND: u32 = 216;
696
pub const KVM_CAP_S390_PROTECTED_DUMP: u32 = 217;
697
pub const KVM_CAP_X86_TRIPLE_FAULT_EVENT: u32 = 218;
698
pub const KVM_CAP_X86_NOTIFY_VMEXIT: u32 = 219;
699
pub const KVM_CAP_VM_DISABLE_NX_HUGE_PAGES: u32 = 220;
700
pub const KVM_CAP_S390_ZPCI_OP: u32 = 221;
701
pub const KVM_CAP_S390_CPU_TOPOLOGY: u32 = 222;
702
pub const KVM_CAP_DIRTY_LOG_RING_ACQ_REL: u32 = 223;
703
pub const KVM_CAP_S390_PROTECTED_ASYNC_DISABLE: u32 = 224;
704
pub const KVM_CAP_DIRTY_LOG_RING_WITH_BITMAP: u32 = 225;
705
pub const KVM_CAP_PMU_EVENT_MASKED_EVENTS: u32 = 226;
706
pub const KVM_CAP_COUNTER_OFFSET: u32 = 227;
707
pub const KVM_CAP_ARM_EAGER_SPLIT_CHUNK_SIZE: u32 = 228;
708
pub const KVM_CAP_ARM_SUPPORTED_BLOCK_SIZES: u32 = 229;
709
pub const KVM_CAP_ARM_SUPPORTED_REG_MASK_RANGES: u32 = 230;
710
pub const KVM_CAP_USER_MEMORY2: u32 = 231;
711
pub const KVM_CAP_MEMORY_FAULT_INFO: u32 = 232;
712
pub const KVM_CAP_MEMORY_ATTRIBUTES: u32 = 233;
713
pub const KVM_CAP_GUEST_MEMFD: u32 = 234;
714
pub const KVM_CAP_VM_TYPES: u32 = 235;
715
pub const KVM_CAP_PRE_FAULT_MEMORY: u32 = 236;
716
pub const KVM_CAP_X86_APIC_BUS_CYCLES_NS: u32 = 237;
717
pub const KVM_CAP_X86_GUEST_MODE: u32 = 238;
718
pub const KVM_IRQ_ROUTING_IRQCHIP: u32 = 1;
719
pub const KVM_IRQ_ROUTING_MSI: u32 = 2;
720
pub const KVM_IRQ_ROUTING_S390_ADAPTER: u32 = 3;
721
pub const KVM_IRQ_ROUTING_HV_SINT: u32 = 4;
722
pub const KVM_IRQ_ROUTING_XEN_EVTCHN: u32 = 5;
723
pub const KVM_IRQFD_FLAG_DEASSIGN: u32 = 1;
724
pub const KVM_IRQFD_FLAG_RESAMPLE: u32 = 2;
725
pub const KVM_CLOCK_TSC_STABLE: u32 = 2;
726
pub const KVM_CLOCK_REALTIME: u32 = 4;
727
pub const KVM_CLOCK_HOST_TSC: u32 = 8;
728
pub const KVM_MMU_FSL_BOOKE_NOHV: u32 = 0;
729
pub const KVM_MMU_FSL_BOOKE_HV: u32 = 1;
730
pub const KVM_REG_ARCH_MASK: i64 = -72057594037927936;
731
pub const KVM_REG_GENERIC: u32 = 0;
732
pub const KVM_REG_PPC: u64 = 1152921504606846976;
733
pub const KVM_REG_X86: u64 = 2305843009213693952;
734
pub const KVM_REG_IA64: u64 = 3458764513820540928;
735
pub const KVM_REG_ARM: u64 = 4611686018427387904;
736
pub const KVM_REG_S390: u64 = 5764607523034234880;
737
pub const KVM_REG_ARM64: u64 = 6917529027641081856;
738
pub const KVM_REG_MIPS: u64 = 8070450532247928832;
739
pub const KVM_REG_RISCV: i64 = -9223372036854775808;
740
pub const KVM_REG_LOONGARCH: i64 = -8070450532247928832;
741
pub const KVM_REG_SIZE_SHIFT: u32 = 52;
742
pub const KVM_REG_SIZE_MASK: u64 = 67553994410557440;
743
pub const KVM_REG_SIZE_U8: u32 = 0;
744
pub const KVM_REG_SIZE_U16: u64 = 4503599627370496;
745
pub const KVM_REG_SIZE_U32: u64 = 9007199254740992;
746
pub const KVM_REG_SIZE_U64: u64 = 13510798882111488;
747
pub const KVM_REG_SIZE_U128: u64 = 18014398509481984;
748
pub const KVM_REG_SIZE_U256: u64 = 22517998136852480;
749
pub const KVM_REG_SIZE_U512: u64 = 27021597764222976;
750
pub const KVM_REG_SIZE_U1024: u64 = 31525197391593472;
751
pub const KVM_REG_SIZE_U2048: u64 = 36028797018963968;
752
pub const KVM_MSI_VALID_DEVID: u32 = 1;
753
pub const KVM_CREATE_DEVICE_TEST: u32 = 1;
754
pub const KVM_DEV_VFIO_FILE: u32 = 1;
755
pub const KVM_DEV_VFIO_FILE_ADD: u32 = 1;
756
pub const KVM_DEV_VFIO_FILE_DEL: u32 = 2;
757
pub const KVM_DEV_VFIO_GROUP: u32 = 1;
758
pub const KVM_DEV_VFIO_GROUP_ADD: u32 = 1;
759
pub const KVM_DEV_VFIO_GROUP_DEL: u32 = 2;
760
pub const KVM_DEV_VFIO_GROUP_SET_SPAPR_TCE: u32 = 3;
761
pub const KVM_S390_STORE_STATUS_NOADDR: i32 = -1;
762
pub const KVM_S390_STORE_STATUS_PREFIXED: i32 = -2;
763
pub const KVM_DIRTY_LOG_MANUAL_PROTECT_ENABLE: u32 = 1;
764
pub const KVM_DIRTY_LOG_INITIALLY_SET: u32 = 2;
765
pub const KVM_DIRTY_GFN_F_MASK: u32 = 3;
766
pub const KVM_BUS_LOCK_DETECTION_OFF: u32 = 1;
767
pub const KVM_BUS_LOCK_DETECTION_EXIT: u32 = 2;
768
pub const KVM_PMU_CAP_DISABLE: u32 = 1;
769
pub const KVM_STATS_TYPE_SHIFT: u32 = 0;
770
pub const KVM_STATS_TYPE_MASK: u32 = 15;
771
pub const KVM_STATS_TYPE_CUMULATIVE: u32 = 0;
772
pub const KVM_STATS_TYPE_INSTANT: u32 = 1;
773
pub const KVM_STATS_TYPE_PEAK: u32 = 2;
774
pub const KVM_STATS_TYPE_LINEAR_HIST: u32 = 3;
775
pub const KVM_STATS_TYPE_LOG_HIST: u32 = 4;
776
pub const KVM_STATS_TYPE_MAX: u32 = 4;
777
pub const KVM_STATS_UNIT_SHIFT: u32 = 4;
778
pub const KVM_STATS_UNIT_MASK: u32 = 240;
779
pub const KVM_STATS_UNIT_NONE: u32 = 0;
780
pub const KVM_STATS_UNIT_BYTES: u32 = 16;
781
pub const KVM_STATS_UNIT_SECONDS: u32 = 32;
782
pub const KVM_STATS_UNIT_CYCLES: u32 = 48;
783
pub const KVM_STATS_UNIT_BOOLEAN: u32 = 64;
784
pub const KVM_STATS_UNIT_MAX: u32 = 64;
785
pub const KVM_STATS_BASE_SHIFT: u32 = 8;
786
pub const KVM_STATS_BASE_MASK: u32 = 3840;
787
pub const KVM_STATS_BASE_POW10: u32 = 0;
788
pub const KVM_STATS_BASE_POW2: u32 = 256;
789
pub const KVM_STATS_BASE_MAX: u32 = 256;
790
pub const KVM_X86_NOTIFY_VMEXIT_ENABLED: u32 = 1;
791
pub const KVM_X86_NOTIFY_VMEXIT_USER: u32 = 2;
792
pub const KVM_MEMORY_ATTRIBUTE_PRIVATE: u32 = 8;
793
pub type __s128 = i128;
794
pub type __u128 = u128;
795
pub type __le16 = u16;
796
pub type __be16 = u16;
797
pub type __le32 = u32;
798
pub type __be32 = u32;
799
pub type __le64 = u64;
800
pub type __be64 = u64;
801
pub type __sum16 = u16;
802
pub type __wsum = u32;
803
pub type __poll_t = ::std::os::raw::c_uint;
804
#[repr(C)]
805
#[derive(Debug, Default, Copy, Clone, FromBytes, Immutable, IntoBytes, KnownLayout)]
806
pub struct user_pt_regs {
807
pub regs: [u64; 31usize],
808
pub sp: u64,
809
pub pc: u64,
810
pub pstate: u64,
811
}
812
#[repr(C)]
813
#[repr(align(16))]
814
#[derive(Debug, Default, Copy, Clone, FromBytes, Immutable, IntoBytes, KnownLayout)]
815
pub struct user_fpsimd_state {
816
pub vregs: [__uint128_t; 32usize],
817
pub fpsr: u32,
818
pub fpcr: u32,
819
pub __reserved: [u32; 2usize],
820
}
821
#[repr(C)]
822
#[derive(Debug, Default, Copy, Clone)]
823
pub struct user_hwdebug_state {
824
pub dbg_info: u32,
825
pub pad: u32,
826
pub dbg_regs: [user_hwdebug_state__bindgen_ty_1; 16usize],
827
}
828
#[repr(C)]
829
#[derive(Debug, Default, Copy, Clone)]
830
pub struct user_hwdebug_state__bindgen_ty_1 {
831
pub addr: u64,
832
pub ctrl: u32,
833
pub pad: u32,
834
}
835
#[repr(C)]
836
#[derive(Debug, Default, Copy, Clone)]
837
pub struct user_sve_header {
838
pub size: u32,
839
pub max_size: u32,
840
pub vl: u16,
841
pub max_vl: u16,
842
pub flags: u16,
843
pub __reserved: u16,
844
}
845
#[repr(C)]
846
#[derive(Debug, Default, Copy, Clone)]
847
pub struct user_pac_mask {
848
pub data_mask: u64,
849
pub insn_mask: u64,
850
}
851
#[repr(C)]
852
#[repr(align(16))]
853
#[derive(Debug, Default, Copy, Clone)]
854
pub struct user_pac_address_keys {
855
pub apiakey: __uint128_t,
856
pub apibkey: __uint128_t,
857
pub apdakey: __uint128_t,
858
pub apdbkey: __uint128_t,
859
}
860
#[repr(C)]
861
#[repr(align(16))]
862
#[derive(Debug, Default, Copy, Clone)]
863
pub struct user_pac_generic_keys {
864
pub apgakey: __uint128_t,
865
}
866
#[repr(C)]
867
#[derive(Debug, Default, Copy, Clone)]
868
pub struct user_za_header {
869
pub size: u32,
870
pub max_size: u32,
871
pub vl: u16,
872
pub max_vl: u16,
873
pub flags: u16,
874
pub __reserved: u16,
875
}
876
#[repr(C)]
877
#[repr(align(16))]
878
#[derive(Debug, Default, Copy, Clone, FromBytes, Immutable, IntoBytes, KnownLayout)]
879
pub struct kvm_regs {
880
pub regs: user_pt_regs,
881
pub sp_el1: u64,
882
pub elr_el1: u64,
883
pub spsr: [u64; 5usize],
884
pub __bindgen_padding_0: u64,
885
pub fp_regs: user_fpsimd_state,
886
}
887
#[repr(C)]
888
#[derive(Debug, Default, Copy, Clone)]
889
pub struct kvm_vcpu_init {
890
pub target: u32,
891
pub features: [u32; 7usize],
892
}
893
#[repr(C)]
894
#[derive(Debug, Default, Copy, Clone, FromBytes, Immutable, IntoBytes, KnownLayout)]
895
pub struct kvm_sregs {}
896
#[repr(C)]
897
#[derive(Debug, Default, Copy, Clone, FromBytes, Immutable, IntoBytes, KnownLayout)]
898
pub struct kvm_fpu {}
899
#[repr(C)]
900
#[derive(Debug, Default, Copy, Clone)]
901
pub struct kvm_guest_debug_arch {
902
pub dbg_bcr: [u64; 16usize],
903
pub dbg_bvr: [u64; 16usize],
904
pub dbg_wcr: [u64; 16usize],
905
pub dbg_wvr: [u64; 16usize],
906
}
907
#[repr(C)]
908
#[derive(Debug, Default, Copy, Clone)]
909
pub struct kvm_debug_exit_arch {
910
pub hsr: u32,
911
pub hsr_high: u32,
912
pub far: u64,
913
}
914
#[repr(C)]
915
#[derive(Debug, Default, Copy, Clone)]
916
pub struct kvm_sync_regs {
917
pub device_irq_level: u64,
918
}
919
#[repr(C)]
920
#[derive(Debug, Default, Copy, Clone)]
921
pub struct kvm_pmu_event_filter {
922
pub base_event: u16,
923
pub nevents: u16,
924
pub action: u8,
925
pub pad: [u8; 3usize],
926
}
927
#[repr(C)]
928
#[derive(Debug, Default, Copy, Clone, FromBytes, Immutable, IntoBytes, KnownLayout)]
929
pub struct kvm_vcpu_events {
930
pub exception: kvm_vcpu_events__bindgen_ty_1,
931
pub reserved: [u32; 12usize],
932
}
933
#[repr(C)]
934
#[derive(Debug, Default, Copy, Clone, FromBytes, Immutable, IntoBytes, KnownLayout)]
935
pub struct kvm_vcpu_events__bindgen_ty_1 {
936
pub serror_pending: u8,
937
pub serror_has_esr: u8,
938
pub ext_dabt_pending: u8,
939
pub pad: [u8; 5usize],
940
pub serror_esr: u64,
941
}
942
#[repr(C)]
943
#[derive(Debug, Copy, Clone)]
944
pub struct kvm_arm_copy_mte_tags {
945
pub guest_ipa: u64,
946
pub length: u64,
947
pub addr: *mut ::std::os::raw::c_void,
948
pub flags: u64,
949
pub reserved: [u64; 2usize],
950
}
951
impl Default for kvm_arm_copy_mte_tags {
952
fn default() -> Self {
953
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
954
unsafe {
955
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
956
s.assume_init()
957
}
958
}
959
}
960
#[repr(C)]
961
#[derive(Debug, Default, Copy, Clone)]
962
pub struct kvm_arm_counter_offset {
963
pub counter_offset: u64,
964
pub reserved: u64,
965
}
966
pub const KVM_REG_ARM_STD_BIT_TRNG_V1_0: _bindgen_ty_1 = 0;
967
pub type _bindgen_ty_1 = ::std::os::raw::c_uint;
968
pub const KVM_REG_ARM_STD_HYP_BIT_PV_TIME: _bindgen_ty_2 = 0;
969
pub type _bindgen_ty_2 = ::std::os::raw::c_uint;
970
pub const KVM_REG_ARM_VENDOR_HYP_BIT_FUNC_FEAT: _bindgen_ty_3 = 0;
971
pub const KVM_REG_ARM_VENDOR_HYP_BIT_PTP: _bindgen_ty_3 = 1;
972
pub type _bindgen_ty_3 = ::std::os::raw::c_uint;
973
pub const kvm_smccc_filter_action_KVM_SMCCC_FILTER_HANDLE: kvm_smccc_filter_action = 0;
974
pub const kvm_smccc_filter_action_KVM_SMCCC_FILTER_DENY: kvm_smccc_filter_action = 1;
975
pub const kvm_smccc_filter_action_KVM_SMCCC_FILTER_FWD_TO_USER: kvm_smccc_filter_action = 2;
976
pub type kvm_smccc_filter_action = ::std::os::raw::c_uint;
977
#[repr(C)]
978
#[derive(Debug, Default, Copy, Clone)]
979
pub struct kvm_smccc_filter {
980
pub base: u32,
981
pub nr_functions: u32,
982
pub action: u8,
983
pub pad: [u8; 15usize],
984
}
985
#[repr(C)]
986
#[derive(Debug, Default, Copy, Clone)]
987
pub struct reg_mask_range {
988
pub addr: u64,
989
pub range: u32,
990
pub reserved: [u32; 13usize],
991
}
992
#[repr(C)]
993
#[derive(Debug, Default, Copy, Clone)]
994
pub struct kvm_userspace_memory_region {
995
pub slot: u32,
996
pub flags: u32,
997
pub guest_phys_addr: u64,
998
pub memory_size: u64,
999
pub userspace_addr: u64,
1000
}
1001
#[repr(C)]
1002
#[derive(Debug, Default, Copy, Clone)]
1003
pub struct kvm_userspace_memory_region2 {
1004
pub slot: u32,
1005
pub flags: u32,
1006
pub guest_phys_addr: u64,
1007
pub memory_size: u64,
1008
pub userspace_addr: u64,
1009
pub guest_memfd_offset: u64,
1010
pub guest_memfd: u32,
1011
pub pad1: u32,
1012
pub pad2: [u64; 14usize],
1013
}
1014
#[repr(C)]
1015
#[derive(Copy, Clone)]
1016
pub struct kvm_irq_level {
1017
pub __bindgen_anon_1: kvm_irq_level__bindgen_ty_1,
1018
pub level: u32,
1019
}
1020
#[repr(C)]
1021
#[derive(Copy, Clone)]
1022
pub union kvm_irq_level__bindgen_ty_1 {
1023
pub irq: u32,
1024
pub status: i32,
1025
}
1026
impl Default for kvm_irq_level__bindgen_ty_1 {
1027
fn default() -> Self {
1028
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1029
unsafe {
1030
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1031
s.assume_init()
1032
}
1033
}
1034
}
1035
impl Default for kvm_irq_level {
1036
fn default() -> Self {
1037
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1038
unsafe {
1039
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1040
s.assume_init()
1041
}
1042
}
1043
}
1044
#[repr(C)]
1045
#[derive(Copy, Clone)]
1046
pub struct kvm_irqchip {
1047
pub chip_id: u32,
1048
pub pad: u32,
1049
pub chip: kvm_irqchip__bindgen_ty_1,
1050
}
1051
#[repr(C)]
1052
#[derive(Copy, Clone)]
1053
pub union kvm_irqchip__bindgen_ty_1 {
1054
pub dummy: [::std::os::raw::c_char; 512usize],
1055
}
1056
impl Default for kvm_irqchip__bindgen_ty_1 {
1057
fn default() -> Self {
1058
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1059
unsafe {
1060
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1061
s.assume_init()
1062
}
1063
}
1064
}
1065
impl Default for kvm_irqchip {
1066
fn default() -> Self {
1067
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1068
unsafe {
1069
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1070
s.assume_init()
1071
}
1072
}
1073
}
1074
#[repr(C)]
1075
#[derive(Debug, Default, Copy, Clone)]
1076
pub struct kvm_pit_config {
1077
pub flags: u32,
1078
pub pad: [u32; 15usize],
1079
}
1080
#[repr(C)]
1081
#[derive(Copy, Clone)]
1082
pub struct kvm_hyperv_exit {
1083
pub type_: u32,
1084
pub pad1: u32,
1085
pub u: kvm_hyperv_exit__bindgen_ty_1,
1086
}
1087
#[repr(C)]
1088
#[derive(Copy, Clone)]
1089
pub union kvm_hyperv_exit__bindgen_ty_1 {
1090
pub synic: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1,
1091
pub hcall: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_2,
1092
pub syndbg: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3,
1093
}
1094
#[repr(C)]
1095
#[derive(Debug, Default, Copy, Clone)]
1096
pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1 {
1097
pub msr: u32,
1098
pub pad2: u32,
1099
pub control: u64,
1100
pub evt_page: u64,
1101
pub msg_page: u64,
1102
}
1103
#[repr(C)]
1104
#[derive(Debug, Default, Copy, Clone)]
1105
pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_2 {
1106
pub input: u64,
1107
pub result: u64,
1108
pub params: [u64; 2usize],
1109
}
1110
#[repr(C)]
1111
#[derive(Debug, Default, Copy, Clone)]
1112
pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3 {
1113
pub msr: u32,
1114
pub pad2: u32,
1115
pub control: u64,
1116
pub status: u64,
1117
pub send_page: u64,
1118
pub recv_page: u64,
1119
pub pending_page: u64,
1120
}
1121
impl Default for kvm_hyperv_exit__bindgen_ty_1 {
1122
fn default() -> Self {
1123
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1124
unsafe {
1125
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1126
s.assume_init()
1127
}
1128
}
1129
}
1130
impl Default for kvm_hyperv_exit {
1131
fn default() -> Self {
1132
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1133
unsafe {
1134
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1135
s.assume_init()
1136
}
1137
}
1138
}
1139
#[repr(C)]
1140
#[derive(Copy, Clone)]
1141
pub struct kvm_xen_exit {
1142
pub type_: u32,
1143
pub u: kvm_xen_exit__bindgen_ty_1,
1144
}
1145
#[repr(C)]
1146
#[derive(Copy, Clone)]
1147
pub union kvm_xen_exit__bindgen_ty_1 {
1148
pub hcall: kvm_xen_exit__bindgen_ty_1__bindgen_ty_1,
1149
}
1150
#[repr(C)]
1151
#[derive(Debug, Default, Copy, Clone)]
1152
pub struct kvm_xen_exit__bindgen_ty_1__bindgen_ty_1 {
1153
pub longmode: u32,
1154
pub cpl: u32,
1155
pub input: u64,
1156
pub result: u64,
1157
pub params: [u64; 6usize],
1158
}
1159
impl Default for kvm_xen_exit__bindgen_ty_1 {
1160
fn default() -> Self {
1161
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1162
unsafe {
1163
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1164
s.assume_init()
1165
}
1166
}
1167
}
1168
impl Default for kvm_xen_exit {
1169
fn default() -> Self {
1170
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1171
unsafe {
1172
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1173
s.assume_init()
1174
}
1175
}
1176
}
1177
#[repr(C)]
1178
#[derive(Copy, Clone)]
1179
pub struct kvm_run {
1180
pub request_interrupt_window: u8,
1181
pub immediate_exit: u8,
1182
pub padding1: [u8; 6usize],
1183
pub exit_reason: u32,
1184
pub ready_for_interrupt_injection: u8,
1185
pub if_flag: u8,
1186
pub flags: u16,
1187
pub cr8: u64,
1188
pub apic_base: u64,
1189
pub __bindgen_anon_1: kvm_run__bindgen_ty_1,
1190
pub kvm_valid_regs: u64,
1191
pub kvm_dirty_regs: u64,
1192
pub s: kvm_run__bindgen_ty_2,
1193
}
1194
#[repr(C)]
1195
#[derive(Copy, Clone)]
1196
pub union kvm_run__bindgen_ty_1 {
1197
pub hw: kvm_run__bindgen_ty_1__bindgen_ty_1,
1198
pub fail_entry: kvm_run__bindgen_ty_1__bindgen_ty_2,
1199
pub ex: kvm_run__bindgen_ty_1__bindgen_ty_3,
1200
pub io: kvm_run__bindgen_ty_1__bindgen_ty_4,
1201
pub debug: kvm_run__bindgen_ty_1__bindgen_ty_5,
1202
pub mmio: kvm_run__bindgen_ty_1__bindgen_ty_6,
1203
pub iocsr_io: kvm_run__bindgen_ty_1__bindgen_ty_7,
1204
pub hypercall: kvm_run__bindgen_ty_1__bindgen_ty_8,
1205
pub tpr_access: kvm_run__bindgen_ty_1__bindgen_ty_9,
1206
pub s390_sieic: kvm_run__bindgen_ty_1__bindgen_ty_10,
1207
pub s390_reset_flags: u64,
1208
pub s390_ucontrol: kvm_run__bindgen_ty_1__bindgen_ty_11,
1209
pub dcr: kvm_run__bindgen_ty_1__bindgen_ty_12,
1210
pub internal: kvm_run__bindgen_ty_1__bindgen_ty_13,
1211
pub emulation_failure: kvm_run__bindgen_ty_1__bindgen_ty_14,
1212
pub osi: kvm_run__bindgen_ty_1__bindgen_ty_15,
1213
pub papr_hcall: kvm_run__bindgen_ty_1__bindgen_ty_16,
1214
pub s390_tsch: kvm_run__bindgen_ty_1__bindgen_ty_17,
1215
pub epr: kvm_run__bindgen_ty_1__bindgen_ty_18,
1216
pub system_event: kvm_run__bindgen_ty_1__bindgen_ty_19,
1217
pub s390_stsi: kvm_run__bindgen_ty_1__bindgen_ty_20,
1218
pub eoi: kvm_run__bindgen_ty_1__bindgen_ty_21,
1219
pub hyperv: kvm_hyperv_exit,
1220
pub arm_nisv: kvm_run__bindgen_ty_1__bindgen_ty_22,
1221
pub msr: kvm_run__bindgen_ty_1__bindgen_ty_23,
1222
pub xen: kvm_xen_exit,
1223
pub riscv_sbi: kvm_run__bindgen_ty_1__bindgen_ty_24,
1224
pub riscv_csr: kvm_run__bindgen_ty_1__bindgen_ty_25,
1225
pub notify: kvm_run__bindgen_ty_1__bindgen_ty_26,
1226
pub memory_fault: kvm_run__bindgen_ty_1__bindgen_ty_27,
1227
pub padding: [::std::os::raw::c_char; 256usize],
1228
}
1229
#[repr(C)]
1230
#[derive(Debug, Default, Copy, Clone)]
1231
pub struct kvm_run__bindgen_ty_1__bindgen_ty_1 {
1232
pub hardware_exit_reason: u64,
1233
}
1234
#[repr(C)]
1235
#[derive(Debug, Default, Copy, Clone)]
1236
pub struct kvm_run__bindgen_ty_1__bindgen_ty_2 {
1237
pub hardware_entry_failure_reason: u64,
1238
pub cpu: u32,
1239
}
1240
#[repr(C)]
1241
#[derive(Debug, Default, Copy, Clone)]
1242
pub struct kvm_run__bindgen_ty_1__bindgen_ty_3 {
1243
pub exception: u32,
1244
pub error_code: u32,
1245
}
1246
#[repr(C)]
1247
#[derive(Debug, Default, Copy, Clone)]
1248
pub struct kvm_run__bindgen_ty_1__bindgen_ty_4 {
1249
pub direction: u8,
1250
pub size: u8,
1251
pub port: u16,
1252
pub count: u32,
1253
pub data_offset: u64,
1254
}
1255
#[repr(C)]
1256
#[derive(Debug, Default, Copy, Clone)]
1257
pub struct kvm_run__bindgen_ty_1__bindgen_ty_5 {
1258
pub arch: kvm_debug_exit_arch,
1259
}
1260
#[repr(C)]
1261
#[derive(Debug, Default, Copy, Clone)]
1262
pub struct kvm_run__bindgen_ty_1__bindgen_ty_6 {
1263
pub phys_addr: u64,
1264
pub data: [u8; 8usize],
1265
pub len: u32,
1266
pub is_write: u8,
1267
}
1268
#[repr(C)]
1269
#[derive(Debug, Default, Copy, Clone)]
1270
pub struct kvm_run__bindgen_ty_1__bindgen_ty_7 {
1271
pub phys_addr: u64,
1272
pub data: [u8; 8usize],
1273
pub len: u32,
1274
pub is_write: u8,
1275
}
1276
#[repr(C)]
1277
#[derive(Copy, Clone)]
1278
pub struct kvm_run__bindgen_ty_1__bindgen_ty_8 {
1279
pub nr: u64,
1280
pub args: [u64; 6usize],
1281
pub ret: u64,
1282
pub __bindgen_anon_1: kvm_run__bindgen_ty_1__bindgen_ty_8__bindgen_ty_1,
1283
}
1284
#[repr(C)]
1285
#[derive(Copy, Clone)]
1286
pub union kvm_run__bindgen_ty_1__bindgen_ty_8__bindgen_ty_1 {
1287
pub longmode: u32,
1288
pub flags: u64,
1289
}
1290
impl Default for kvm_run__bindgen_ty_1__bindgen_ty_8__bindgen_ty_1 {
1291
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
impl Default for kvm_run__bindgen_ty_1__bindgen_ty_8 {
1300
fn default() -> Self {
1301
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1302
unsafe {
1303
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1304
s.assume_init()
1305
}
1306
}
1307
}
1308
#[repr(C)]
1309
#[derive(Debug, Default, Copy, Clone)]
1310
pub struct kvm_run__bindgen_ty_1__bindgen_ty_9 {
1311
pub rip: u64,
1312
pub is_write: u32,
1313
pub pad: u32,
1314
}
1315
#[repr(C)]
1316
#[derive(Debug, Default, Copy, Clone)]
1317
pub struct kvm_run__bindgen_ty_1__bindgen_ty_10 {
1318
pub icptcode: u8,
1319
pub ipa: u16,
1320
pub ipb: u32,
1321
}
1322
#[repr(C)]
1323
#[derive(Debug, Default, Copy, Clone)]
1324
pub struct kvm_run__bindgen_ty_1__bindgen_ty_11 {
1325
pub trans_exc_code: u64,
1326
pub pgm_code: u32,
1327
}
1328
#[repr(C)]
1329
#[derive(Debug, Default, Copy, Clone)]
1330
pub struct kvm_run__bindgen_ty_1__bindgen_ty_12 {
1331
pub dcrn: u32,
1332
pub data: u32,
1333
pub is_write: u8,
1334
}
1335
#[repr(C)]
1336
#[derive(Debug, Default, Copy, Clone)]
1337
pub struct kvm_run__bindgen_ty_1__bindgen_ty_13 {
1338
pub suberror: u32,
1339
pub ndata: u32,
1340
pub data: [u64; 16usize],
1341
}
1342
#[repr(C)]
1343
#[derive(Copy, Clone)]
1344
pub struct kvm_run__bindgen_ty_1__bindgen_ty_14 {
1345
pub suberror: u32,
1346
pub ndata: u32,
1347
pub flags: u64,
1348
pub __bindgen_anon_1: kvm_run__bindgen_ty_1__bindgen_ty_14__bindgen_ty_1,
1349
}
1350
#[repr(C)]
1351
#[derive(Copy, Clone)]
1352
pub union kvm_run__bindgen_ty_1__bindgen_ty_14__bindgen_ty_1 {
1353
pub __bindgen_anon_1: kvm_run__bindgen_ty_1__bindgen_ty_14__bindgen_ty_1__bindgen_ty_1,
1354
}
1355
#[repr(C)]
1356
#[derive(Debug, Default, Copy, Clone)]
1357
pub struct kvm_run__bindgen_ty_1__bindgen_ty_14__bindgen_ty_1__bindgen_ty_1 {
1358
pub insn_size: u8,
1359
pub insn_bytes: [u8; 15usize],
1360
}
1361
impl Default for kvm_run__bindgen_ty_1__bindgen_ty_14__bindgen_ty_1 {
1362
fn default() -> Self {
1363
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1364
unsafe {
1365
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1366
s.assume_init()
1367
}
1368
}
1369
}
1370
impl Default for kvm_run__bindgen_ty_1__bindgen_ty_14 {
1371
fn default() -> Self {
1372
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1373
unsafe {
1374
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1375
s.assume_init()
1376
}
1377
}
1378
}
1379
#[repr(C)]
1380
#[derive(Debug, Default, Copy, Clone)]
1381
pub struct kvm_run__bindgen_ty_1__bindgen_ty_15 {
1382
pub gprs: [u64; 32usize],
1383
}
1384
#[repr(C)]
1385
#[derive(Debug, Default, Copy, Clone)]
1386
pub struct kvm_run__bindgen_ty_1__bindgen_ty_16 {
1387
pub nr: u64,
1388
pub ret: u64,
1389
pub args: [u64; 9usize],
1390
}
1391
#[repr(C)]
1392
#[derive(Debug, Default, Copy, Clone)]
1393
pub struct kvm_run__bindgen_ty_1__bindgen_ty_17 {
1394
pub subchannel_id: u16,
1395
pub subchannel_nr: u16,
1396
pub io_int_parm: u32,
1397
pub io_int_word: u32,
1398
pub ipb: u32,
1399
pub dequeued: u8,
1400
}
1401
#[repr(C)]
1402
#[derive(Debug, Default, Copy, Clone)]
1403
pub struct kvm_run__bindgen_ty_1__bindgen_ty_18 {
1404
pub epr: u32,
1405
}
1406
#[repr(C)]
1407
#[derive(Copy, Clone)]
1408
pub struct kvm_run__bindgen_ty_1__bindgen_ty_19 {
1409
pub type_: u32,
1410
pub ndata: u32,
1411
pub __bindgen_anon_1: kvm_run__bindgen_ty_1__bindgen_ty_19__bindgen_ty_1,
1412
}
1413
#[repr(C)]
1414
#[derive(Copy, Clone)]
1415
pub union kvm_run__bindgen_ty_1__bindgen_ty_19__bindgen_ty_1 {
1416
pub flags: u64,
1417
pub data: [u64; 16usize],
1418
}
1419
impl Default for kvm_run__bindgen_ty_1__bindgen_ty_19__bindgen_ty_1 {
1420
fn default() -> Self {
1421
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1422
unsafe {
1423
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1424
s.assume_init()
1425
}
1426
}
1427
}
1428
impl Default for kvm_run__bindgen_ty_1__bindgen_ty_19 {
1429
fn default() -> Self {
1430
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1431
unsafe {
1432
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1433
s.assume_init()
1434
}
1435
}
1436
}
1437
#[repr(C)]
1438
#[derive(Debug, Default, Copy, Clone)]
1439
pub struct kvm_run__bindgen_ty_1__bindgen_ty_20 {
1440
pub addr: u64,
1441
pub ar: u8,
1442
pub reserved: u8,
1443
pub fc: u8,
1444
pub sel1: u8,
1445
pub sel2: u16,
1446
}
1447
#[repr(C)]
1448
#[derive(Debug, Default, Copy, Clone)]
1449
pub struct kvm_run__bindgen_ty_1__bindgen_ty_21 {
1450
pub vector: u8,
1451
}
1452
#[repr(C)]
1453
#[derive(Debug, Default, Copy, Clone)]
1454
pub struct kvm_run__bindgen_ty_1__bindgen_ty_22 {
1455
pub esr_iss: u64,
1456
pub fault_ipa: u64,
1457
}
1458
#[repr(C)]
1459
#[derive(Debug, Default, Copy, Clone)]
1460
pub struct kvm_run__bindgen_ty_1__bindgen_ty_23 {
1461
pub error: u8,
1462
pub pad: [u8; 7usize],
1463
pub reason: u32,
1464
pub index: u32,
1465
pub data: u64,
1466
}
1467
#[repr(C)]
1468
#[derive(Debug, Default, Copy, Clone)]
1469
pub struct kvm_run__bindgen_ty_1__bindgen_ty_24 {
1470
pub extension_id: ::std::os::raw::c_ulong,
1471
pub function_id: ::std::os::raw::c_ulong,
1472
pub args: [::std::os::raw::c_ulong; 6usize],
1473
pub ret: [::std::os::raw::c_ulong; 2usize],
1474
}
1475
#[repr(C)]
1476
#[derive(Debug, Default, Copy, Clone)]
1477
pub struct kvm_run__bindgen_ty_1__bindgen_ty_25 {
1478
pub csr_num: ::std::os::raw::c_ulong,
1479
pub new_value: ::std::os::raw::c_ulong,
1480
pub write_mask: ::std::os::raw::c_ulong,
1481
pub ret_value: ::std::os::raw::c_ulong,
1482
}
1483
#[repr(C)]
1484
#[derive(Debug, Default, Copy, Clone)]
1485
pub struct kvm_run__bindgen_ty_1__bindgen_ty_26 {
1486
pub flags: u32,
1487
}
1488
#[repr(C)]
1489
#[derive(Debug, Default, Copy, Clone)]
1490
pub struct kvm_run__bindgen_ty_1__bindgen_ty_27 {
1491
pub flags: u64,
1492
pub gpa: u64,
1493
pub size: u64,
1494
}
1495
impl Default for kvm_run__bindgen_ty_1 {
1496
fn default() -> Self {
1497
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1498
unsafe {
1499
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1500
s.assume_init()
1501
}
1502
}
1503
}
1504
#[repr(C)]
1505
#[derive(Copy, Clone)]
1506
pub union kvm_run__bindgen_ty_2 {
1507
pub regs: kvm_sync_regs,
1508
pub padding: [::std::os::raw::c_char; 2048usize],
1509
}
1510
impl Default for kvm_run__bindgen_ty_2 {
1511
fn default() -> Self {
1512
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1513
unsafe {
1514
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1515
s.assume_init()
1516
}
1517
}
1518
}
1519
impl Default for kvm_run {
1520
fn default() -> Self {
1521
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1522
unsafe {
1523
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1524
s.assume_init()
1525
}
1526
}
1527
}
1528
#[repr(C)]
1529
#[derive(Copy, Clone)]
1530
pub struct kvm_coalesced_mmio_zone {
1531
pub addr: u64,
1532
pub size: u32,
1533
pub __bindgen_anon_1: kvm_coalesced_mmio_zone__bindgen_ty_1,
1534
}
1535
#[repr(C)]
1536
#[derive(Copy, Clone)]
1537
pub union kvm_coalesced_mmio_zone__bindgen_ty_1 {
1538
pub pad: u32,
1539
pub pio: u32,
1540
}
1541
impl Default for kvm_coalesced_mmio_zone__bindgen_ty_1 {
1542
fn default() -> Self {
1543
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1544
unsafe {
1545
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1546
s.assume_init()
1547
}
1548
}
1549
}
1550
impl Default for kvm_coalesced_mmio_zone {
1551
fn default() -> Self {
1552
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1553
unsafe {
1554
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1555
s.assume_init()
1556
}
1557
}
1558
}
1559
#[repr(C)]
1560
#[derive(Copy, Clone)]
1561
pub struct kvm_coalesced_mmio {
1562
pub phys_addr: u64,
1563
pub len: u32,
1564
pub __bindgen_anon_1: kvm_coalesced_mmio__bindgen_ty_1,
1565
pub data: [u8; 8usize],
1566
}
1567
#[repr(C)]
1568
#[derive(Copy, Clone)]
1569
pub union kvm_coalesced_mmio__bindgen_ty_1 {
1570
pub pad: u32,
1571
pub pio: u32,
1572
}
1573
impl Default for kvm_coalesced_mmio__bindgen_ty_1 {
1574
fn default() -> Self {
1575
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1576
unsafe {
1577
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1578
s.assume_init()
1579
}
1580
}
1581
}
1582
impl Default for kvm_coalesced_mmio {
1583
fn default() -> Self {
1584
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1585
unsafe {
1586
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1587
s.assume_init()
1588
}
1589
}
1590
}
1591
#[repr(C)]
1592
pub struct kvm_coalesced_mmio_ring<FAM: ?Sized = [kvm_coalesced_mmio; 0]> {
1593
pub first: u32,
1594
pub last: u32,
1595
pub coalesced_mmio: FAM,
1596
}
1597
impl kvm_coalesced_mmio_ring<[kvm_coalesced_mmio]> {}
1598
impl kvm_coalesced_mmio_ring<[kvm_coalesced_mmio; 0]> {}
1599
impl Default for kvm_coalesced_mmio_ring<[kvm_coalesced_mmio; 0]> {
1600
fn default() -> Self {
1601
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1602
unsafe {
1603
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1604
s.assume_init()
1605
}
1606
}
1607
}
1608
#[repr(C)]
1609
#[derive(Debug, Default, Copy, Clone)]
1610
pub struct kvm_translation {
1611
pub linear_address: u64,
1612
pub physical_address: u64,
1613
pub valid: u8,
1614
pub writeable: u8,
1615
pub usermode: u8,
1616
pub pad: [u8; 5usize],
1617
}
1618
#[repr(C)]
1619
#[derive(Debug, Default, Copy, Clone)]
1620
pub struct kvm_interrupt {
1621
pub irq: u32,
1622
}
1623
#[repr(C)]
1624
#[derive(Copy, Clone)]
1625
pub struct kvm_dirty_log {
1626
pub slot: u32,
1627
pub padding1: u32,
1628
pub __bindgen_anon_1: kvm_dirty_log__bindgen_ty_1,
1629
}
1630
#[repr(C)]
1631
#[derive(Copy, Clone)]
1632
pub union kvm_dirty_log__bindgen_ty_1 {
1633
pub dirty_bitmap: *mut ::std::os::raw::c_void,
1634
pub padding2: u64,
1635
}
1636
impl Default for kvm_dirty_log__bindgen_ty_1 {
1637
fn default() -> Self {
1638
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1639
unsafe {
1640
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1641
s.assume_init()
1642
}
1643
}
1644
}
1645
impl Default for kvm_dirty_log {
1646
fn default() -> Self {
1647
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1648
unsafe {
1649
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1650
s.assume_init()
1651
}
1652
}
1653
}
1654
#[repr(C)]
1655
#[derive(Copy, Clone)]
1656
pub struct kvm_clear_dirty_log {
1657
pub slot: u32,
1658
pub num_pages: u32,
1659
pub first_page: u64,
1660
pub __bindgen_anon_1: kvm_clear_dirty_log__bindgen_ty_1,
1661
}
1662
#[repr(C)]
1663
#[derive(Copy, Clone)]
1664
pub union kvm_clear_dirty_log__bindgen_ty_1 {
1665
pub dirty_bitmap: *mut ::std::os::raw::c_void,
1666
pub padding2: u64,
1667
}
1668
impl Default for kvm_clear_dirty_log__bindgen_ty_1 {
1669
fn default() -> Self {
1670
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1671
unsafe {
1672
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1673
s.assume_init()
1674
}
1675
}
1676
}
1677
impl Default for kvm_clear_dirty_log {
1678
fn default() -> Self {
1679
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1680
unsafe {
1681
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1682
s.assume_init()
1683
}
1684
}
1685
}
1686
#[repr(C)]
1687
#[derive(Debug, Default)]
1688
pub struct kvm_signal_mask<FAM: ?Sized = [u8; 0]> {
1689
pub len: u32,
1690
pub sigset: FAM,
1691
}
1692
impl kvm_signal_mask<[u8]> {}
1693
impl kvm_signal_mask<[u8; 0]> {}
1694
#[repr(C)]
1695
#[derive(Debug, Default, Copy, Clone)]
1696
pub struct kvm_tpr_access_ctl {
1697
pub enabled: u32,
1698
pub flags: u32,
1699
pub reserved: [u32; 8usize],
1700
}
1701
#[repr(C)]
1702
#[derive(Debug, Default, Copy, Clone)]
1703
pub struct kvm_vapic_addr {
1704
pub vapic_addr: u64,
1705
}
1706
#[repr(C)]
1707
#[derive(Debug, Default, Copy, Clone, FromBytes, Immutable, IntoBytes, KnownLayout)]
1708
pub struct kvm_mp_state {
1709
pub mp_state: u32,
1710
}
1711
#[repr(C)]
1712
#[derive(Debug, Default, Copy, Clone)]
1713
pub struct kvm_guest_debug {
1714
pub control: u32,
1715
pub pad: u32,
1716
pub arch: kvm_guest_debug_arch,
1717
}
1718
pub const kvm_ioeventfd_flag_nr_datamatch: _bindgen_ty_4 = 0;
1719
pub const kvm_ioeventfd_flag_nr_pio: _bindgen_ty_4 = 1;
1720
pub const kvm_ioeventfd_flag_nr_deassign: _bindgen_ty_4 = 2;
1721
pub const kvm_ioeventfd_flag_nr_virtio_ccw_notify: _bindgen_ty_4 = 3;
1722
pub const kvm_ioeventfd_flag_nr_fast_mmio: _bindgen_ty_4 = 4;
1723
pub const kvm_ioeventfd_flag_nr_max: _bindgen_ty_4 = 5;
1724
pub type _bindgen_ty_4 = ::std::os::raw::c_uint;
1725
#[repr(C)]
1726
#[derive(Debug, Copy, Clone)]
1727
pub struct kvm_ioeventfd {
1728
pub datamatch: u64,
1729
pub addr: u64,
1730
pub len: u32,
1731
pub fd: i32,
1732
pub flags: u32,
1733
pub pad: [u8; 36usize],
1734
}
1735
impl Default for kvm_ioeventfd {
1736
fn default() -> Self {
1737
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1738
unsafe {
1739
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1740
s.assume_init()
1741
}
1742
}
1743
}
1744
#[repr(C)]
1745
#[derive(Debug, Copy, Clone)]
1746
pub struct kvm_enable_cap {
1747
pub cap: u32,
1748
pub flags: u32,
1749
pub args: [u64; 4usize],
1750
pub pad: [u8; 64usize],
1751
}
1752
impl Default for kvm_enable_cap {
1753
fn default() -> Self {
1754
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1755
unsafe {
1756
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1757
s.assume_init()
1758
}
1759
}
1760
}
1761
#[repr(C)]
1762
#[derive(Debug, Default, Copy, Clone, FromBytes, Immutable, KnownLayout)]
1763
pub struct kvm_irq_routing_irqchip {
1764
pub irqchip: u32,
1765
pub pin: u32,
1766
}
1767
#[repr(C)]
1768
#[derive(Copy, Clone, FromBytes, Immutable, KnownLayout)]
1769
pub struct kvm_irq_routing_msi {
1770
pub address_lo: u32,
1771
pub address_hi: u32,
1772
pub data: u32,
1773
pub __bindgen_anon_1: kvm_irq_routing_msi__bindgen_ty_1,
1774
}
1775
#[repr(C)]
1776
#[derive(Copy, Clone, FromBytes, Immutable, KnownLayout)]
1777
pub union kvm_irq_routing_msi__bindgen_ty_1 {
1778
pub pad: u32,
1779
pub devid: u32,
1780
}
1781
impl Default for kvm_irq_routing_msi__bindgen_ty_1 {
1782
fn default() -> Self {
1783
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1784
unsafe {
1785
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1786
s.assume_init()
1787
}
1788
}
1789
}
1790
impl Default for kvm_irq_routing_msi {
1791
fn default() -> Self {
1792
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1793
unsafe {
1794
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1795
s.assume_init()
1796
}
1797
}
1798
}
1799
#[repr(C)]
1800
#[derive(Debug, Default, Copy, Clone, FromBytes, Immutable, KnownLayout)]
1801
pub struct kvm_irq_routing_s390_adapter {
1802
pub ind_addr: u64,
1803
pub summary_addr: u64,
1804
pub ind_offset: u64,
1805
pub summary_offset: u32,
1806
pub adapter_id: u32,
1807
}
1808
#[repr(C)]
1809
#[derive(Debug, Default, Copy, Clone, FromBytes, Immutable, KnownLayout)]
1810
pub struct kvm_irq_routing_hv_sint {
1811
pub vcpu: u32,
1812
pub sint: u32,
1813
}
1814
#[repr(C)]
1815
#[derive(Debug, Default, Copy, Clone, FromBytes, Immutable, KnownLayout)]
1816
pub struct kvm_irq_routing_xen_evtchn {
1817
pub port: u32,
1818
pub vcpu: u32,
1819
pub priority: u32,
1820
}
1821
#[repr(C)]
1822
#[derive(Copy, Clone, FromBytes, Immutable, KnownLayout)]
1823
pub struct kvm_irq_routing_entry {
1824
pub gsi: u32,
1825
pub type_: u32,
1826
pub flags: u32,
1827
pub pad: u32,
1828
pub u: kvm_irq_routing_entry__bindgen_ty_1,
1829
}
1830
#[repr(C)]
1831
#[derive(Copy, Clone, FromBytes, Immutable, KnownLayout)]
1832
pub union kvm_irq_routing_entry__bindgen_ty_1 {
1833
pub irqchip: kvm_irq_routing_irqchip,
1834
pub msi: kvm_irq_routing_msi,
1835
pub adapter: kvm_irq_routing_s390_adapter,
1836
pub hv_sint: kvm_irq_routing_hv_sint,
1837
pub xen_evtchn: kvm_irq_routing_xen_evtchn,
1838
pub pad: [u32; 8usize],
1839
}
1840
impl Default for kvm_irq_routing_entry__bindgen_ty_1 {
1841
fn default() -> Self {
1842
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1843
unsafe {
1844
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1845
s.assume_init()
1846
}
1847
}
1848
}
1849
impl Default for kvm_irq_routing_entry {
1850
fn default() -> Self {
1851
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1852
unsafe {
1853
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1854
s.assume_init()
1855
}
1856
}
1857
}
1858
#[repr(C)]
1859
#[derive(FromBytes, Immutable, KnownLayout)]
1860
pub struct kvm_irq_routing<FAM: ?Sized = [kvm_irq_routing_entry; 0]> {
1861
pub nr: u32,
1862
pub flags: u32,
1863
pub entries: FAM,
1864
}
1865
impl kvm_irq_routing<[kvm_irq_routing_entry]> {}
1866
impl kvm_irq_routing<[kvm_irq_routing_entry; 0]> {}
1867
impl Default for kvm_irq_routing<[kvm_irq_routing_entry; 0]> {
1868
fn default() -> Self {
1869
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1870
unsafe {
1871
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1872
s.assume_init()
1873
}
1874
}
1875
}
1876
#[repr(C)]
1877
#[derive(Debug, Default, Copy, Clone)]
1878
pub struct kvm_irqfd {
1879
pub fd: u32,
1880
pub gsi: u32,
1881
pub flags: u32,
1882
pub resamplefd: u32,
1883
pub pad: [u8; 16usize],
1884
}
1885
#[repr(C)]
1886
#[derive(Debug, Default, Copy, Clone)]
1887
pub struct kvm_clock_data {
1888
pub clock: u64,
1889
pub flags: u32,
1890
pub pad0: u32,
1891
pub realtime: u64,
1892
pub host_tsc: u64,
1893
pub pad: [u32; 4usize],
1894
}
1895
#[repr(C)]
1896
#[derive(Debug, Default, Copy, Clone)]
1897
pub struct kvm_config_tlb {
1898
pub params: u64,
1899
pub array: u64,
1900
pub mmu_type: u32,
1901
pub array_len: u32,
1902
}
1903
#[repr(C)]
1904
#[derive(Debug, Default, Copy, Clone)]
1905
pub struct kvm_dirty_tlb {
1906
pub bitmap: u64,
1907
pub num_dirty: u32,
1908
}
1909
#[repr(C)]
1910
#[derive(Debug, Default, FromBytes, Immutable, KnownLayout)]
1911
pub struct kvm_reg_list<FAM: ?Sized = [u64; 0]> {
1912
pub n: u64,
1913
pub reg: FAM,
1914
}
1915
impl kvm_reg_list<[u64]> {}
1916
impl kvm_reg_list<[u64; 0]> {}
1917
#[repr(C)]
1918
#[derive(Debug, Default, Copy, Clone)]
1919
pub struct kvm_one_reg {
1920
pub id: u64,
1921
pub addr: u64,
1922
}
1923
#[repr(C)]
1924
#[derive(Debug, Default, Copy, Clone)]
1925
pub struct kvm_msi {
1926
pub address_lo: u32,
1927
pub address_hi: u32,
1928
pub data: u32,
1929
pub flags: u32,
1930
pub devid: u32,
1931
pub pad: [u8; 12usize],
1932
}
1933
#[repr(C)]
1934
#[derive(Debug, Default, Copy, Clone)]
1935
pub struct kvm_arm_device_addr {
1936
pub id: u64,
1937
pub addr: u64,
1938
}
1939
#[repr(C)]
1940
#[derive(Debug, Default, Copy, Clone)]
1941
pub struct kvm_create_device {
1942
pub type_: u32,
1943
pub fd: u32,
1944
pub flags: u32,
1945
}
1946
#[repr(C)]
1947
#[derive(Debug, Default, Copy, Clone)]
1948
pub struct kvm_device_attr {
1949
pub flags: u32,
1950
pub group: u32,
1951
pub attr: u64,
1952
pub addr: u64,
1953
}
1954
pub const kvm_device_type_KVM_DEV_TYPE_FSL_MPIC_20: kvm_device_type = 1;
1955
pub const kvm_device_type_KVM_DEV_TYPE_FSL_MPIC_42: kvm_device_type = 2;
1956
pub const kvm_device_type_KVM_DEV_TYPE_XICS: kvm_device_type = 3;
1957
pub const kvm_device_type_KVM_DEV_TYPE_VFIO: kvm_device_type = 4;
1958
pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_V2: kvm_device_type = 5;
1959
pub const kvm_device_type_KVM_DEV_TYPE_FLIC: kvm_device_type = 6;
1960
pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_V3: kvm_device_type = 7;
1961
pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_ITS: kvm_device_type = 8;
1962
pub const kvm_device_type_KVM_DEV_TYPE_XIVE: kvm_device_type = 9;
1963
pub const kvm_device_type_KVM_DEV_TYPE_ARM_PV_TIME: kvm_device_type = 10;
1964
pub const kvm_device_type_KVM_DEV_TYPE_RISCV_AIA: kvm_device_type = 11;
1965
pub const kvm_device_type_KVM_DEV_TYPE_MAX: kvm_device_type = 12;
1966
pub type kvm_device_type = ::std::os::raw::c_uint;
1967
#[repr(C)]
1968
#[derive(Debug, Default, Copy, Clone)]
1969
pub struct kvm_vfio_spapr_tce {
1970
pub groupfd: i32,
1971
pub tablefd: i32,
1972
}
1973
#[repr(C)]
1974
#[derive(Debug, Default, Copy, Clone)]
1975
pub struct kvm_enc_region {
1976
pub addr: u64,
1977
pub size: u64,
1978
}
1979
#[repr(C)]
1980
#[derive(Debug, Default, Copy, Clone)]
1981
pub struct kvm_dirty_gfn {
1982
pub flags: u32,
1983
pub slot: u32,
1984
pub offset: u64,
1985
}
1986
#[repr(C)]
1987
#[derive(Debug, Default, Copy, Clone)]
1988
pub struct kvm_stats_header {
1989
pub flags: u32,
1990
pub name_size: u32,
1991
pub num_desc: u32,
1992
pub id_offset: u32,
1993
pub desc_offset: u32,
1994
pub data_offset: u32,
1995
}
1996
#[repr(C)]
1997
#[derive(Debug, Default)]
1998
pub struct kvm_stats_desc<FAM: ?Sized = [::std::os::raw::c_char; 0]> {
1999
pub flags: u32,
2000
pub exponent: i16,
2001
pub size: u16,
2002
pub offset: u32,
2003
pub bucket_size: u32,
2004
pub name: FAM,
2005
}
2006
impl kvm_stats_desc<[::std::os::raw::c_char]> {}
2007
impl kvm_stats_desc<[::std::os::raw::c_char; 0]> {}
2008
#[repr(C)]
2009
#[derive(Debug, Default, Copy, Clone)]
2010
pub struct kvm_memory_attributes {
2011
pub address: u64,
2012
pub size: u64,
2013
pub attributes: u64,
2014
pub flags: u64,
2015
}
2016
#[repr(C)]
2017
#[derive(Debug, Default, Copy, Clone)]
2018
pub struct kvm_create_guest_memfd {
2019
pub size: u64,
2020
pub flags: u64,
2021
pub reserved: [u64; 6usize],
2022
}
2023
#[repr(C)]
2024
#[derive(Debug, Default, Copy, Clone)]
2025
pub struct kvm_pre_fault_memory {
2026
pub gpa: u64,
2027
pub size: u64,
2028
pub flags: u64,
2029
pub padding: [u64; 5usize],
2030
}
2031
pub type __uint128_t = u128;
2032
2033