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