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