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::AsBytes; 13 use zerocopy::FromBytes; 14 use zerocopy::FromZeroes; 15 16 // TODO(b/316337317): Update if new memslot flag is accepted in upstream 17 pub const KVM_MEM_NON_COHERENT_DMA: u32 = 8; 18 pub const KVM_CAP_USER_CONFIGURE_NONCOHERENT_DMA: u32 = 236; 19 20 // TODO(qwandor): Update this once the pKVM patches are merged upstream with a stable capability ID. 21 pub const KVM_CAP_ARM_PROTECTED_VM: u32 = 0xffbadab1; 22 pub const KVM_CAP_ARM_PROTECTED_VM_FLAGS_SET_FW_IPA: u32 = 0; 23 pub const KVM_CAP_ARM_PROTECTED_VM_FLAGS_INFO: u32 = 1; 24 pub const KVM_VM_TYPE_ARM_PROTECTED: u32 = 0x80000000; 25 pub const KVM_X86_PKVM_PROTECTED_VM: u32 = 28; 26 pub const KVM_DEV_VFIO_PVIOMMU: u32 = 2; 27 pub const KVM_DEV_VFIO_PVIOMMU_ATTACH: u32 = 1; 28 #[repr(C)] 29 #[derive(Debug, Default, Copy, Clone)] 30 pub struct kvm_vfio_iommu_info { 31 pub device_fd: i32, 32 pub nr_sids: u32, 33 } 34 pub const KVM_DEV_VFIO_PVIOMMU_GET_INFO: u32 = 2; 35 #[repr(C)] 36 #[derive(Debug, Default, Copy, Clone)] 37 pub struct kvm_vfio_iommu_config { 38 pub device_fd: i32, 39 pub sid_idx: u32, 40 pub vsid: u32, 41 } 42 pub const KVM_PVIOMMU_SET_CONFIG: i32 = 1; 43 44 #[repr(C)] 45 #[derive(Default)] 46 pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]); 47 impl<T> __IncompleteArrayField<T> { 48 #[inline] new() -> Self49 pub const fn new() -> Self { 50 __IncompleteArrayField(::std::marker::PhantomData, []) 51 } 52 #[inline] as_ptr(&self) -> *const T53 pub fn as_ptr(&self) -> *const T { 54 self as *const _ as *const T 55 } 56 #[inline] as_mut_ptr(&mut self) -> *mut T57 pub fn as_mut_ptr(&mut self) -> *mut T { 58 self as *mut _ as *mut T 59 } 60 #[inline] as_slice(&self, len: usize) -> &[T]61 pub unsafe fn as_slice(&self, len: usize) -> &[T] { 62 ::std::slice::from_raw_parts(self.as_ptr(), len) 63 } 64 #[inline] as_mut_slice(&mut self, len: usize) -> &mut [T]65 pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { 66 ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len) 67 } 68 } 69 impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> { fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result70 fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { 71 fmt.write_str("__IncompleteArrayField") 72 } 73 } 74 pub const PTRACE_GETFDPIC: u32 = 33; 75 pub const PTRACE_GETFDPIC_EXEC: u32 = 0; 76 pub const PTRACE_GETFDPIC_INTERP: u32 = 1; 77 pub const RISCV_MAX_VLENB: u32 = 8192; 78 pub const KVM_COALESCED_MMIO_PAGE_OFFSET: u32 = 1; 79 pub const KVM_INTERRUPT_SET: i32 = -1; 80 pub const KVM_INTERRUPT_UNSET: i32 = -2; 81 pub const KVM_RISCV_MODE_S: u32 = 1; 82 pub const KVM_RISCV_MODE_U: u32 = 0; 83 pub const KVM_RISCV_TIMER_STATE_OFF: u32 = 0; 84 pub const KVM_RISCV_TIMER_STATE_ON: u32 = 1; 85 pub const KVM_REG_RISCV_TYPE_MASK: u32 = 4278190080; 86 pub const KVM_REG_RISCV_TYPE_SHIFT: u32 = 24; 87 pub const KVM_REG_RISCV_SUBTYPE_MASK: u32 = 16711680; 88 pub const KVM_REG_RISCV_SUBTYPE_SHIFT: u32 = 16; 89 pub const KVM_REG_RISCV_CONFIG: u32 = 16777216; 90 pub const KVM_REG_RISCV_CORE: u32 = 33554432; 91 pub const KVM_REG_RISCV_CSR: u32 = 50331648; 92 pub const KVM_REG_RISCV_CSR_GENERAL: u32 = 0; 93 pub const KVM_REG_RISCV_CSR_AIA: u32 = 65536; 94 pub const KVM_REG_RISCV_TIMER: u32 = 67108864; 95 pub const KVM_REG_RISCV_FP_F: u32 = 83886080; 96 pub const KVM_REG_RISCV_FP_D: u32 = 100663296; 97 pub const KVM_REG_RISCV_ISA_EXT: u32 = 117440512; 98 pub const KVM_REG_RISCV_ISA_SINGLE: u32 = 0; 99 pub const KVM_REG_RISCV_ISA_MULTI_EN: u32 = 65536; 100 pub const KVM_REG_RISCV_ISA_MULTI_DIS: u32 = 131072; 101 pub const KVM_REG_RISCV_SBI_EXT: u32 = 134217728; 102 pub const KVM_REG_RISCV_SBI_SINGLE: u32 = 0; 103 pub const KVM_REG_RISCV_SBI_MULTI_EN: u32 = 65536; 104 pub const KVM_REG_RISCV_SBI_MULTI_DIS: u32 = 131072; 105 pub const KVM_REG_RISCV_VECTOR: u32 = 150994944; 106 pub const KVM_DEV_RISCV_APLIC_ALIGN: u32 = 4096; 107 pub const KVM_DEV_RISCV_APLIC_SIZE: u32 = 16384; 108 pub const KVM_DEV_RISCV_APLIC_MAX_HARTS: u32 = 16384; 109 pub const KVM_DEV_RISCV_IMSIC_ALIGN: u32 = 4096; 110 pub const KVM_DEV_RISCV_IMSIC_SIZE: u32 = 4096; 111 pub const KVM_DEV_RISCV_AIA_GRP_CONFIG: u32 = 0; 112 pub const KVM_DEV_RISCV_AIA_CONFIG_MODE: u32 = 0; 113 pub const KVM_DEV_RISCV_AIA_CONFIG_IDS: u32 = 1; 114 pub const KVM_DEV_RISCV_AIA_CONFIG_SRCS: u32 = 2; 115 pub const KVM_DEV_RISCV_AIA_CONFIG_GROUP_BITS: u32 = 3; 116 pub const KVM_DEV_RISCV_AIA_CONFIG_GROUP_SHIFT: u32 = 4; 117 pub const KVM_DEV_RISCV_AIA_CONFIG_HART_BITS: u32 = 5; 118 pub const KVM_DEV_RISCV_AIA_CONFIG_GUEST_BITS: u32 = 6; 119 pub const KVM_DEV_RISCV_AIA_MODE_EMUL: u32 = 0; 120 pub const KVM_DEV_RISCV_AIA_MODE_HWACCEL: u32 = 1; 121 pub const KVM_DEV_RISCV_AIA_MODE_AUTO: u32 = 2; 122 pub const KVM_DEV_RISCV_AIA_IDS_MIN: u32 = 63; 123 pub const KVM_DEV_RISCV_AIA_IDS_MAX: u32 = 2048; 124 pub const KVM_DEV_RISCV_AIA_SRCS_MAX: u32 = 1024; 125 pub const KVM_DEV_RISCV_AIA_GROUP_BITS_MAX: u32 = 8; 126 pub const KVM_DEV_RISCV_AIA_GROUP_SHIFT_MIN: u32 = 24; 127 pub const KVM_DEV_RISCV_AIA_GROUP_SHIFT_MAX: u32 = 56; 128 pub const KVM_DEV_RISCV_AIA_HART_BITS_MAX: u32 = 16; 129 pub const KVM_DEV_RISCV_AIA_GUEST_BITS_MAX: u32 = 8; 130 pub const KVM_DEV_RISCV_AIA_GRP_ADDR: u32 = 1; 131 pub const KVM_DEV_RISCV_AIA_ADDR_APLIC: u32 = 0; 132 pub const KVM_DEV_RISCV_AIA_ADDR_MAX: u32 = 16385; 133 pub const KVM_DEV_RISCV_AIA_GRP_CTRL: u32 = 2; 134 pub const KVM_DEV_RISCV_AIA_CTRL_INIT: u32 = 0; 135 pub const KVM_DEV_RISCV_AIA_GRP_APLIC: u32 = 3; 136 pub const KVM_DEV_RISCV_AIA_GRP_IMSIC: u32 = 4; 137 pub const KVM_DEV_RISCV_AIA_IMSIC_ISEL_BITS: u32 = 12; 138 pub const KVM_DEV_RISCV_AIA_IMSIC_ISEL_MASK: u32 = 4095; 139 pub const KVM_NR_IRQCHIPS: u32 = 1; 140 pub const KVM_API_VERSION: u32 = 12; 141 pub const KVM_TRC_SHIFT: u32 = 16; 142 pub const KVM_TRC_ENTRYEXIT: u32 = 65536; 143 pub const KVM_TRC_HANDLER: u32 = 131072; 144 pub const KVM_TRC_VMENTRY: u32 = 65537; 145 pub const KVM_TRC_VMEXIT: u32 = 65538; 146 pub const KVM_TRC_PAGE_FAULT: u32 = 131073; 147 pub const KVM_TRC_HEAD_SIZE: u32 = 12; 148 pub const KVM_TRC_CYCLE_SIZE: u32 = 8; 149 pub const KVM_TRC_EXTRA_MAX: u32 = 7; 150 pub const KVM_TRC_INJ_VIRQ: u32 = 131074; 151 pub const KVM_TRC_REDELIVER_EVT: u32 = 131075; 152 pub const KVM_TRC_PEND_INTR: u32 = 131076; 153 pub const KVM_TRC_IO_READ: u32 = 131077; 154 pub const KVM_TRC_IO_WRITE: u32 = 131078; 155 pub const KVM_TRC_CR_READ: u32 = 131079; 156 pub const KVM_TRC_CR_WRITE: u32 = 131080; 157 pub const KVM_TRC_DR_READ: u32 = 131081; 158 pub const KVM_TRC_DR_WRITE: u32 = 131082; 159 pub const KVM_TRC_MSR_READ: u32 = 131083; 160 pub const KVM_TRC_MSR_WRITE: u32 = 131084; 161 pub const KVM_TRC_CPUID: u32 = 131085; 162 pub const KVM_TRC_INTR: u32 = 131086; 163 pub const KVM_TRC_NMI: u32 = 131087; 164 pub const KVM_TRC_VMMCALL: u32 = 131088; 165 pub const KVM_TRC_HLT: u32 = 131089; 166 pub const KVM_TRC_CLTS: u32 = 131090; 167 pub const KVM_TRC_LMSW: u32 = 131091; 168 pub const KVM_TRC_APIC_ACCESS: u32 = 131092; 169 pub const KVM_TRC_TDP_FAULT: u32 = 131093; 170 pub const KVM_TRC_GTLB_WRITE: u32 = 131094; 171 pub const KVM_TRC_STLB_WRITE: u32 = 131095; 172 pub const KVM_TRC_STLB_INVAL: u32 = 131096; 173 pub const KVM_TRC_PPC_INSTR: u32 = 131097; 174 pub const KVM_MEM_LOG_DIRTY_PAGES: u32 = 1; 175 pub const KVM_MEM_READONLY: u32 = 2; 176 pub const KVM_PIT_SPEAKER_DUMMY: u32 = 1; 177 pub const KVM_S390_CMMA_PEEK: u32 = 1; 178 pub const KVM_EXIT_HYPERV_SYNIC: u32 = 1; 179 pub const KVM_EXIT_HYPERV_HCALL: u32 = 2; 180 pub const KVM_EXIT_HYPERV_SYNDBG: u32 = 3; 181 pub const KVM_EXIT_XEN_HCALL: u32 = 1; 182 pub const KVM_S390_GET_SKEYS_NONE: u32 = 1; 183 pub const KVM_S390_SKEYS_MAX: u32 = 1048576; 184 pub const KVM_EXIT_UNKNOWN: u32 = 0; 185 pub const KVM_EXIT_EXCEPTION: u32 = 1; 186 pub const KVM_EXIT_IO: u32 = 2; 187 pub const KVM_EXIT_HYPERCALL: u32 = 3; 188 pub const KVM_EXIT_DEBUG: u32 = 4; 189 pub const KVM_EXIT_HLT: u32 = 5; 190 pub const KVM_EXIT_MMIO: u32 = 6; 191 pub const KVM_EXIT_IRQ_WINDOW_OPEN: u32 = 7; 192 pub const KVM_EXIT_SHUTDOWN: u32 = 8; 193 pub const KVM_EXIT_FAIL_ENTRY: u32 = 9; 194 pub const KVM_EXIT_INTR: u32 = 10; 195 pub const KVM_EXIT_SET_TPR: u32 = 11; 196 pub const KVM_EXIT_TPR_ACCESS: u32 = 12; 197 pub const KVM_EXIT_S390_SIEIC: u32 = 13; 198 pub const KVM_EXIT_S390_RESET: u32 = 14; 199 pub const KVM_EXIT_DCR: u32 = 15; 200 pub const KVM_EXIT_NMI: u32 = 16; 201 pub const KVM_EXIT_INTERNAL_ERROR: u32 = 17; 202 pub const KVM_EXIT_OSI: u32 = 18; 203 pub const KVM_EXIT_PAPR_HCALL: u32 = 19; 204 pub const KVM_EXIT_S390_UCONTROL: u32 = 20; 205 pub const KVM_EXIT_WATCHDOG: u32 = 21; 206 pub const KVM_EXIT_S390_TSCH: u32 = 22; 207 pub const KVM_EXIT_EPR: u32 = 23; 208 pub const KVM_EXIT_SYSTEM_EVENT: u32 = 24; 209 pub const KVM_EXIT_S390_STSI: u32 = 25; 210 pub const KVM_EXIT_IOAPIC_EOI: u32 = 26; 211 pub const KVM_EXIT_HYPERV: u32 = 27; 212 pub const KVM_EXIT_ARM_NISV: u32 = 28; 213 pub const KVM_EXIT_X86_RDMSR: u32 = 29; 214 pub const KVM_EXIT_X86_WRMSR: u32 = 30; 215 pub const KVM_EXIT_DIRTY_RING_FULL: u32 = 31; 216 pub const KVM_EXIT_AP_RESET_HOLD: u32 = 32; 217 pub const KVM_EXIT_X86_BUS_LOCK: u32 = 33; 218 pub const KVM_EXIT_XEN: u32 = 34; 219 pub const KVM_EXIT_RISCV_SBI: u32 = 35; 220 pub const KVM_EXIT_RISCV_CSR: u32 = 36; 221 pub const KVM_EXIT_NOTIFY: u32 = 37; 222 pub const KVM_INTERNAL_ERROR_EMULATION: u32 = 1; 223 pub const KVM_INTERNAL_ERROR_SIMUL_EX: u32 = 2; 224 pub const KVM_INTERNAL_ERROR_DELIVERY_EV: u32 = 3; 225 pub const KVM_INTERNAL_ERROR_UNEXPECTED_EXIT_REASON: u32 = 4; 226 pub const KVM_INTERNAL_ERROR_EMULATION_FLAG_INSTRUCTION_BYTES: u32 = 1; 227 pub const KVM_EXIT_IO_IN: u32 = 0; 228 pub const KVM_EXIT_IO_OUT: u32 = 1; 229 pub const KVM_S390_RESET_POR: u32 = 1; 230 pub const KVM_S390_RESET_CLEAR: u32 = 2; 231 pub const KVM_S390_RESET_SUBSYSTEM: u32 = 4; 232 pub const KVM_S390_RESET_CPU_INIT: u32 = 8; 233 pub const KVM_S390_RESET_IPL: u32 = 16; 234 pub const KVM_SYSTEM_EVENT_SHUTDOWN: u32 = 1; 235 pub const KVM_SYSTEM_EVENT_RESET: u32 = 2; 236 pub const KVM_SYSTEM_EVENT_CRASH: u32 = 3; 237 pub const KVM_SYSTEM_EVENT_WAKEUP: u32 = 4; 238 pub const KVM_SYSTEM_EVENT_SUSPEND: u32 = 5; 239 pub const KVM_SYSTEM_EVENT_SEV_TERM: u32 = 6; 240 pub const KVM_MSR_EXIT_REASON_INVAL: u32 = 1; 241 pub const KVM_MSR_EXIT_REASON_UNKNOWN: u32 = 2; 242 pub const KVM_MSR_EXIT_REASON_FILTER: u32 = 4; 243 pub const KVM_MSR_EXIT_REASON_VALID_MASK: u32 = 7; 244 pub const KVM_NOTIFY_CONTEXT_INVALID: u32 = 1; 245 pub const SYNC_REGS_SIZE_BYTES: u32 = 2048; 246 pub const KVM_S390_MEMOP_LOGICAL_READ: u32 = 0; 247 pub const KVM_S390_MEMOP_LOGICAL_WRITE: u32 = 1; 248 pub const KVM_S390_MEMOP_SIDA_READ: u32 = 2; 249 pub const KVM_S390_MEMOP_SIDA_WRITE: u32 = 3; 250 pub const KVM_S390_MEMOP_ABSOLUTE_READ: u32 = 4; 251 pub const KVM_S390_MEMOP_ABSOLUTE_WRITE: u32 = 5; 252 pub const KVM_S390_MEMOP_ABSOLUTE_CMPXCHG: u32 = 6; 253 pub const KVM_S390_MEMOP_F_CHECK_ONLY: u32 = 1; 254 pub const KVM_S390_MEMOP_F_INJECT_EXCEPTION: u32 = 2; 255 pub const KVM_S390_MEMOP_F_SKEY_PROTECTION: u32 = 4; 256 pub const KVM_S390_MEMOP_EXTENSION_CAP_BASE: u32 = 1; 257 pub const KVM_S390_MEMOP_EXTENSION_CAP_CMPXCHG: u32 = 2; 258 pub const KVM_MP_STATE_RUNNABLE: u32 = 0; 259 pub const KVM_MP_STATE_UNINITIALIZED: u32 = 1; 260 pub const KVM_MP_STATE_INIT_RECEIVED: u32 = 2; 261 pub const KVM_MP_STATE_HALTED: u32 = 3; 262 pub const KVM_MP_STATE_SIPI_RECEIVED: u32 = 4; 263 pub const KVM_MP_STATE_STOPPED: u32 = 5; 264 pub const KVM_MP_STATE_CHECK_STOP: u32 = 6; 265 pub const KVM_MP_STATE_OPERATING: u32 = 7; 266 pub const KVM_MP_STATE_LOAD: u32 = 8; 267 pub const KVM_MP_STATE_AP_RESET_HOLD: u32 = 9; 268 pub const KVM_MP_STATE_SUSPENDED: u32 = 10; 269 pub const KVM_S390_SIGP_STOP: u32 = 4294836224; 270 pub const KVM_S390_PROGRAM_INT: u32 = 4294836225; 271 pub const KVM_S390_SIGP_SET_PREFIX: u32 = 4294836226; 272 pub const KVM_S390_RESTART: u32 = 4294836227; 273 pub const KVM_S390_INT_PFAULT_INIT: u32 = 4294836228; 274 pub const KVM_S390_INT_PFAULT_DONE: u32 = 4294836229; 275 pub const KVM_S390_MCHK: u32 = 4294840320; 276 pub const KVM_S390_INT_CLOCK_COMP: u32 = 4294905860; 277 pub const KVM_S390_INT_CPU_TIMER: u32 = 4294905861; 278 pub const KVM_S390_INT_VIRTIO: u32 = 4294911491; 279 pub const KVM_S390_INT_SERVICE: u32 = 4294910977; 280 pub const KVM_S390_INT_EMERGENCY: u32 = 4294906369; 281 pub const KVM_S390_INT_EXTERNAL_CALL: u32 = 4294906370; 282 pub const KVM_S390_INT_IO_MIN: u32 = 0; 283 pub const KVM_S390_INT_IO_MAX: u32 = 4294836223; 284 pub const KVM_S390_INT_IO_AI_MASK: u32 = 67108864; 285 pub const KVM_S390_PGM_FLAGS_ILC_VALID: u32 = 1; 286 pub const KVM_S390_PGM_FLAGS_ILC_0: u32 = 2; 287 pub const KVM_S390_PGM_FLAGS_ILC_1: u32 = 4; 288 pub const KVM_S390_PGM_FLAGS_ILC_MASK: u32 = 6; 289 pub const KVM_S390_PGM_FLAGS_NO_REWIND: u32 = 8; 290 pub const KVM_S390_STOP_FLAG_STORE_STATUS: u32 = 1; 291 pub const KVM_GUESTDBG_ENABLE: u32 = 1; 292 pub const KVM_GUESTDBG_SINGLESTEP: u32 = 2; 293 pub const KVM_X86_DISABLE_EXITS_MWAIT: u32 = 1; 294 pub const KVM_X86_DISABLE_EXITS_HLT: u32 = 2; 295 pub const KVM_X86_DISABLE_EXITS_PAUSE: u32 = 4; 296 pub const KVM_X86_DISABLE_EXITS_CSTATE: u32 = 8; 297 pub const KVM_X86_DISABLE_VALID_EXITS: u32 = 15; 298 pub const KVM_PPC_PVINFO_FLAGS_EV_IDLE: u32 = 1; 299 pub const KVM_PPC_PAGE_SIZES_MAX_SZ: u32 = 8; 300 pub const KVM_PPC_PAGE_SIZES_REAL: u32 = 1; 301 pub const KVM_PPC_1T_SEGMENTS: u32 = 2; 302 pub const KVM_PPC_NO_HASH: u32 = 4; 303 pub const KVMIO: u32 = 174; 304 pub const KVM_VM_S390_UCONTROL: u32 = 1; 305 pub const KVM_VM_PPC_HV: u32 = 1; 306 pub const KVM_VM_PPC_PR: u32 = 2; 307 pub const KVM_VM_MIPS_AUTO: u32 = 0; 308 pub const KVM_VM_MIPS_VZ: u32 = 1; 309 pub const KVM_VM_MIPS_TE: u32 = 2; 310 pub const KVM_S390_SIE_PAGE_OFFSET: u32 = 1; 311 pub const KVM_VM_TYPE_ARM_IPA_SIZE_MASK: u32 = 255; 312 pub const KVM_CAP_IRQCHIP: u32 = 0; 313 pub const KVM_CAP_HLT: u32 = 1; 314 pub const KVM_CAP_MMU_SHADOW_CACHE_CONTROL: u32 = 2; 315 pub const KVM_CAP_USER_MEMORY: u32 = 3; 316 pub const KVM_CAP_SET_TSS_ADDR: u32 = 4; 317 pub const KVM_CAP_VAPIC: u32 = 6; 318 pub const KVM_CAP_EXT_CPUID: u32 = 7; 319 pub const KVM_CAP_CLOCKSOURCE: u32 = 8; 320 pub const KVM_CAP_NR_VCPUS: u32 = 9; 321 pub const KVM_CAP_NR_MEMSLOTS: u32 = 10; 322 pub const KVM_CAP_PIT: u32 = 11; 323 pub const KVM_CAP_NOP_IO_DELAY: u32 = 12; 324 pub const KVM_CAP_PV_MMU: u32 = 13; 325 pub const KVM_CAP_MP_STATE: u32 = 14; 326 pub const KVM_CAP_COALESCED_MMIO: u32 = 15; 327 pub const KVM_CAP_SYNC_MMU: u32 = 16; 328 pub const KVM_CAP_IOMMU: u32 = 18; 329 pub const KVM_CAP_DESTROY_MEMORY_REGION_WORKS: u32 = 21; 330 pub const KVM_CAP_USER_NMI: u32 = 22; 331 pub const KVM_CAP_IRQ_ROUTING: u32 = 25; 332 pub const KVM_CAP_IRQ_INJECT_STATUS: u32 = 26; 333 pub const KVM_CAP_ASSIGN_DEV_IRQ: u32 = 29; 334 pub const KVM_CAP_JOIN_MEMORY_REGIONS_WORKS: u32 = 30; 335 pub const KVM_CAP_IRQFD: u32 = 32; 336 pub const KVM_CAP_SET_BOOT_CPU_ID: u32 = 34; 337 pub const KVM_CAP_IOEVENTFD: u32 = 36; 338 pub const KVM_CAP_SET_IDENTITY_MAP_ADDR: u32 = 37; 339 pub const KVM_CAP_ADJUST_CLOCK: u32 = 39; 340 pub const KVM_CAP_INTERNAL_ERROR_DATA: u32 = 40; 341 pub const KVM_CAP_S390_PSW: u32 = 42; 342 pub const KVM_CAP_PPC_SEGSTATE: u32 = 43; 343 pub const KVM_CAP_HYPERV: u32 = 44; 344 pub const KVM_CAP_HYPERV_VAPIC: u32 = 45; 345 pub const KVM_CAP_HYPERV_SPIN: u32 = 46; 346 pub const KVM_CAP_PCI_SEGMENT: u32 = 47; 347 pub const KVM_CAP_PPC_PAIRED_SINGLES: u32 = 48; 348 pub const KVM_CAP_INTR_SHADOW: u32 = 49; 349 pub const KVM_CAP_X86_ROBUST_SINGLESTEP: u32 = 51; 350 pub const KVM_CAP_PPC_OSI: u32 = 52; 351 pub const KVM_CAP_PPC_UNSET_IRQ: u32 = 53; 352 pub const KVM_CAP_ENABLE_CAP: u32 = 54; 353 pub const KVM_CAP_PPC_GET_PVINFO: u32 = 57; 354 pub const KVM_CAP_PPC_IRQ_LEVEL: u32 = 58; 355 pub const KVM_CAP_ASYNC_PF: u32 = 59; 356 pub const KVM_CAP_TSC_CONTROL: u32 = 60; 357 pub const KVM_CAP_GET_TSC_KHZ: u32 = 61; 358 pub const KVM_CAP_PPC_BOOKE_SREGS: u32 = 62; 359 pub const KVM_CAP_SPAPR_TCE: u32 = 63; 360 pub const KVM_CAP_PPC_SMT: u32 = 64; 361 pub const KVM_CAP_PPC_RMA: u32 = 65; 362 pub const KVM_CAP_MAX_VCPUS: u32 = 66; 363 pub const KVM_CAP_PPC_HIOR: u32 = 67; 364 pub const KVM_CAP_PPC_PAPR: u32 = 68; 365 pub const KVM_CAP_SW_TLB: u32 = 69; 366 pub const KVM_CAP_ONE_REG: u32 = 70; 367 pub const KVM_CAP_S390_GMAP: u32 = 71; 368 pub const KVM_CAP_TSC_DEADLINE_TIMER: u32 = 72; 369 pub const KVM_CAP_S390_UCONTROL: u32 = 73; 370 pub const KVM_CAP_SYNC_REGS: u32 = 74; 371 pub const KVM_CAP_PCI_2_3: u32 = 75; 372 pub const KVM_CAP_KVMCLOCK_CTRL: u32 = 76; 373 pub const KVM_CAP_SIGNAL_MSI: u32 = 77; 374 pub const KVM_CAP_PPC_GET_SMMU_INFO: u32 = 78; 375 pub const KVM_CAP_S390_COW: u32 = 79; 376 pub const KVM_CAP_PPC_ALLOC_HTAB: u32 = 80; 377 pub const KVM_CAP_READONLY_MEM: u32 = 81; 378 pub const KVM_CAP_IRQFD_RESAMPLE: u32 = 82; 379 pub const KVM_CAP_PPC_BOOKE_WATCHDOG: u32 = 83; 380 pub const KVM_CAP_PPC_HTAB_FD: u32 = 84; 381 pub const KVM_CAP_S390_CSS_SUPPORT: u32 = 85; 382 pub const KVM_CAP_PPC_EPR: u32 = 86; 383 pub const KVM_CAP_ARM_PSCI: u32 = 87; 384 pub const KVM_CAP_ARM_SET_DEVICE_ADDR: u32 = 88; 385 pub const KVM_CAP_DEVICE_CTRL: u32 = 89; 386 pub const KVM_CAP_IRQ_MPIC: u32 = 90; 387 pub const KVM_CAP_PPC_RTAS: u32 = 91; 388 pub const KVM_CAP_IRQ_XICS: u32 = 92; 389 pub const KVM_CAP_ARM_EL1_32BIT: u32 = 93; 390 pub const KVM_CAP_SPAPR_MULTITCE: u32 = 94; 391 pub const KVM_CAP_EXT_EMUL_CPUID: u32 = 95; 392 pub const KVM_CAP_HYPERV_TIME: u32 = 96; 393 pub const KVM_CAP_IOAPIC_POLARITY_IGNORED: u32 = 97; 394 pub const KVM_CAP_ENABLE_CAP_VM: u32 = 98; 395 pub const KVM_CAP_S390_IRQCHIP: u32 = 99; 396 pub const KVM_CAP_IOEVENTFD_NO_LENGTH: u32 = 100; 397 pub const KVM_CAP_VM_ATTRIBUTES: u32 = 101; 398 pub const KVM_CAP_ARM_PSCI_0_2: u32 = 102; 399 pub const KVM_CAP_PPC_FIXUP_HCALL: u32 = 103; 400 pub const KVM_CAP_PPC_ENABLE_HCALL: u32 = 104; 401 pub const KVM_CAP_CHECK_EXTENSION_VM: u32 = 105; 402 pub const KVM_CAP_S390_USER_SIGP: u32 = 106; 403 pub const KVM_CAP_S390_VECTOR_REGISTERS: u32 = 107; 404 pub const KVM_CAP_S390_MEM_OP: u32 = 108; 405 pub const KVM_CAP_S390_USER_STSI: u32 = 109; 406 pub const KVM_CAP_S390_SKEYS: u32 = 110; 407 pub const KVM_CAP_MIPS_FPU: u32 = 111; 408 pub const KVM_CAP_MIPS_MSA: u32 = 112; 409 pub const KVM_CAP_S390_INJECT_IRQ: u32 = 113; 410 pub const KVM_CAP_S390_IRQ_STATE: u32 = 114; 411 pub const KVM_CAP_PPC_HWRNG: u32 = 115; 412 pub const KVM_CAP_DISABLE_QUIRKS: u32 = 116; 413 pub const KVM_CAP_X86_SMM: u32 = 117; 414 pub const KVM_CAP_MULTI_ADDRESS_SPACE: u32 = 118; 415 pub const KVM_CAP_GUEST_DEBUG_HW_BPS: u32 = 119; 416 pub const KVM_CAP_GUEST_DEBUG_HW_WPS: u32 = 120; 417 pub const KVM_CAP_SPLIT_IRQCHIP: u32 = 121; 418 pub const KVM_CAP_IOEVENTFD_ANY_LENGTH: u32 = 122; 419 pub const KVM_CAP_HYPERV_SYNIC: u32 = 123; 420 pub const KVM_CAP_S390_RI: u32 = 124; 421 pub const KVM_CAP_SPAPR_TCE_64: u32 = 125; 422 pub const KVM_CAP_ARM_PMU_V3: u32 = 126; 423 pub const KVM_CAP_VCPU_ATTRIBUTES: u32 = 127; 424 pub const KVM_CAP_MAX_VCPU_ID: u32 = 128; 425 pub const KVM_CAP_X2APIC_API: u32 = 129; 426 pub const KVM_CAP_S390_USER_INSTR0: u32 = 130; 427 pub const KVM_CAP_MSI_DEVID: u32 = 131; 428 pub const KVM_CAP_PPC_HTM: u32 = 132; 429 pub const KVM_CAP_SPAPR_RESIZE_HPT: u32 = 133; 430 pub const KVM_CAP_PPC_MMU_RADIX: u32 = 134; 431 pub const KVM_CAP_PPC_MMU_HASH_V3: u32 = 135; 432 pub const KVM_CAP_IMMEDIATE_EXIT: u32 = 136; 433 pub const KVM_CAP_MIPS_VZ: u32 = 137; 434 pub const KVM_CAP_MIPS_TE: u32 = 138; 435 pub const KVM_CAP_MIPS_64BIT: u32 = 139; 436 pub const KVM_CAP_S390_GS: u32 = 140; 437 pub const KVM_CAP_S390_AIS: u32 = 141; 438 pub const KVM_CAP_SPAPR_TCE_VFIO: u32 = 142; 439 pub const KVM_CAP_X86_DISABLE_EXITS: u32 = 143; 440 pub const KVM_CAP_ARM_USER_IRQ: u32 = 144; 441 pub const KVM_CAP_S390_CMMA_MIGRATION: u32 = 145; 442 pub const KVM_CAP_PPC_FWNMI: u32 = 146; 443 pub const KVM_CAP_PPC_SMT_POSSIBLE: u32 = 147; 444 pub const KVM_CAP_HYPERV_SYNIC2: u32 = 148; 445 pub const KVM_CAP_HYPERV_VP_INDEX: u32 = 149; 446 pub const KVM_CAP_S390_AIS_MIGRATION: u32 = 150; 447 pub const KVM_CAP_PPC_GET_CPU_CHAR: u32 = 151; 448 pub const KVM_CAP_S390_BPB: u32 = 152; 449 pub const KVM_CAP_GET_MSR_FEATURES: u32 = 153; 450 pub const KVM_CAP_HYPERV_EVENTFD: u32 = 154; 451 pub const KVM_CAP_HYPERV_TLBFLUSH: u32 = 155; 452 pub const KVM_CAP_S390_HPAGE_1M: u32 = 156; 453 pub const KVM_CAP_NESTED_STATE: u32 = 157; 454 pub const KVM_CAP_ARM_INJECT_SERROR_ESR: u32 = 158; 455 pub const KVM_CAP_MSR_PLATFORM_INFO: u32 = 159; 456 pub const KVM_CAP_PPC_NESTED_HV: u32 = 160; 457 pub const KVM_CAP_HYPERV_SEND_IPI: u32 = 161; 458 pub const KVM_CAP_COALESCED_PIO: u32 = 162; 459 pub const KVM_CAP_HYPERV_ENLIGHTENED_VMCS: u32 = 163; 460 pub const KVM_CAP_EXCEPTION_PAYLOAD: u32 = 164; 461 pub const KVM_CAP_ARM_VM_IPA_SIZE: u32 = 165; 462 pub const KVM_CAP_MANUAL_DIRTY_LOG_PROTECT: u32 = 166; 463 pub const KVM_CAP_HYPERV_CPUID: u32 = 167; 464 pub const KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2: u32 = 168; 465 pub const KVM_CAP_PPC_IRQ_XIVE: u32 = 169; 466 pub const KVM_CAP_ARM_SVE: u32 = 170; 467 pub const KVM_CAP_ARM_PTRAUTH_ADDRESS: u32 = 171; 468 pub const KVM_CAP_ARM_PTRAUTH_GENERIC: u32 = 172; 469 pub const KVM_CAP_PMU_EVENT_FILTER: u32 = 173; 470 pub const KVM_CAP_ARM_IRQ_LINE_LAYOUT_2: u32 = 174; 471 pub const KVM_CAP_HYPERV_DIRECT_TLBFLUSH: u32 = 175; 472 pub const KVM_CAP_PPC_GUEST_DEBUG_SSTEP: u32 = 176; 473 pub const KVM_CAP_ARM_NISV_TO_USER: u32 = 177; 474 pub const KVM_CAP_ARM_INJECT_EXT_DABT: u32 = 178; 475 pub const KVM_CAP_S390_VCPU_RESETS: u32 = 179; 476 pub const KVM_CAP_S390_PROTECTED: u32 = 180; 477 pub const KVM_CAP_PPC_SECURE_GUEST: u32 = 181; 478 pub const KVM_CAP_HALT_POLL: u32 = 182; 479 pub const KVM_CAP_ASYNC_PF_INT: u32 = 183; 480 pub const KVM_CAP_LAST_CPU: u32 = 184; 481 pub const KVM_CAP_SMALLER_MAXPHYADDR: u32 = 185; 482 pub const KVM_CAP_S390_DIAG318: u32 = 186; 483 pub const KVM_CAP_STEAL_TIME: u32 = 187; 484 pub const KVM_CAP_X86_USER_SPACE_MSR: u32 = 188; 485 pub const KVM_CAP_X86_MSR_FILTER: u32 = 189; 486 pub const KVM_CAP_ENFORCE_PV_FEATURE_CPUID: u32 = 190; 487 pub const KVM_CAP_SYS_HYPERV_CPUID: u32 = 191; 488 pub const KVM_CAP_DIRTY_LOG_RING: u32 = 192; 489 pub const KVM_CAP_X86_BUS_LOCK_EXIT: u32 = 193; 490 pub const KVM_CAP_PPC_DAWR1: u32 = 194; 491 pub const KVM_CAP_SET_GUEST_DEBUG2: u32 = 195; 492 pub const KVM_CAP_SGX_ATTRIBUTE: u32 = 196; 493 pub const KVM_CAP_VM_COPY_ENC_CONTEXT_FROM: u32 = 197; 494 pub const KVM_CAP_PTP_KVM: u32 = 198; 495 pub const KVM_CAP_HYPERV_ENFORCE_CPUID: u32 = 199; 496 pub const KVM_CAP_SREGS2: u32 = 200; 497 pub const KVM_CAP_EXIT_HYPERCALL: u32 = 201; 498 pub const KVM_CAP_PPC_RPT_INVALIDATE: u32 = 202; 499 pub const KVM_CAP_BINARY_STATS_FD: u32 = 203; 500 pub const KVM_CAP_EXIT_ON_EMULATION_FAILURE: u32 = 204; 501 pub const KVM_CAP_ARM_MTE: u32 = 205; 502 pub const KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM: u32 = 206; 503 pub const KVM_CAP_VM_GPA_BITS: u32 = 207; 504 pub const KVM_CAP_XSAVE2: u32 = 208; 505 pub const KVM_CAP_SYS_ATTRIBUTES: u32 = 209; 506 pub const KVM_CAP_PPC_AIL_MODE_3: u32 = 210; 507 pub const KVM_CAP_S390_MEM_OP_EXTENSION: u32 = 211; 508 pub const KVM_CAP_PMU_CAPABILITY: u32 = 212; 509 pub const KVM_CAP_DISABLE_QUIRKS2: u32 = 213; 510 pub const KVM_CAP_VM_TSC_CONTROL: u32 = 214; 511 pub const KVM_CAP_SYSTEM_EVENT_DATA: u32 = 215; 512 pub const KVM_CAP_ARM_SYSTEM_SUSPEND: u32 = 216; 513 pub const KVM_CAP_S390_PROTECTED_DUMP: u32 = 217; 514 pub const KVM_CAP_X86_TRIPLE_FAULT_EVENT: u32 = 218; 515 pub const KVM_CAP_X86_NOTIFY_VMEXIT: u32 = 219; 516 pub const KVM_CAP_VM_DISABLE_NX_HUGE_PAGES: u32 = 220; 517 pub const KVM_CAP_S390_ZPCI_OP: u32 = 221; 518 pub const KVM_CAP_S390_CPU_TOPOLOGY: u32 = 222; 519 pub const KVM_CAP_DIRTY_LOG_RING_ACQ_REL: u32 = 223; 520 pub const KVM_CAP_S390_PROTECTED_ASYNC_DISABLE: u32 = 224; 521 pub const KVM_CAP_DIRTY_LOG_RING_WITH_BITMAP: u32 = 225; 522 pub const KVM_CAP_PMU_EVENT_MASKED_EVENTS: u32 = 226; 523 pub const KVM_CAP_COUNTER_OFFSET: u32 = 227; 524 pub const KVM_CAP_ARM_EAGER_SPLIT_CHUNK_SIZE: u32 = 228; 525 pub const KVM_CAP_ARM_SUPPORTED_BLOCK_SIZES: u32 = 229; 526 pub const KVM_CAP_GET_CUR_CPUFREQ: u32 = 512; 527 pub const KVM_CAP_UTIL_HINT: u32 = 513; 528 pub const KVM_CAP_GET_CPUFREQ_TBL: u32 = 514; 529 pub const KVM_IRQ_ROUTING_IRQCHIP: u32 = 1; 530 pub const KVM_IRQ_ROUTING_MSI: u32 = 2; 531 pub const KVM_IRQ_ROUTING_S390_ADAPTER: u32 = 3; 532 pub const KVM_IRQ_ROUTING_HV_SINT: u32 = 4; 533 pub const KVM_IRQ_ROUTING_XEN_EVTCHN: u32 = 5; 534 pub const KVM_IRQFD_FLAG_DEASSIGN: u32 = 1; 535 pub const KVM_IRQFD_FLAG_RESAMPLE: u32 = 2; 536 pub const KVM_CLOCK_TSC_STABLE: u32 = 2; 537 pub const KVM_CLOCK_REALTIME: u32 = 4; 538 pub const KVM_CLOCK_HOST_TSC: u32 = 8; 539 pub const KVM_MMU_FSL_BOOKE_NOHV: u32 = 0; 540 pub const KVM_MMU_FSL_BOOKE_HV: u32 = 1; 541 pub const KVM_REG_ARCH_MASK: i64 = -72057594037927936; 542 pub const KVM_REG_GENERIC: u32 = 0; 543 pub const KVM_REG_PPC: u64 = 1152921504606846976; 544 pub const KVM_REG_X86: u64 = 2305843009213693952; 545 pub const KVM_REG_IA64: u64 = 3458764513820540928; 546 pub const KVM_REG_ARM: u64 = 4611686018427387904; 547 pub const KVM_REG_S390: u64 = 5764607523034234880; 548 pub const KVM_REG_ARM64: u64 = 6917529027641081856; 549 pub const KVM_REG_MIPS: u64 = 8070450532247928832; 550 pub const KVM_REG_RISCV: i64 = -9223372036854775808; 551 pub const KVM_REG_SIZE_SHIFT: u32 = 52; 552 pub const KVM_REG_SIZE_MASK: u64 = 67553994410557440; 553 pub const KVM_REG_SIZE_U8: u32 = 0; 554 pub const KVM_REG_SIZE_U16: u64 = 4503599627370496; 555 pub const KVM_REG_SIZE_U32: u64 = 9007199254740992; 556 pub const KVM_REG_SIZE_U64: u64 = 13510798882111488; 557 pub const KVM_REG_SIZE_U128: u64 = 18014398509481984; 558 pub const KVM_REG_SIZE_U256: u64 = 22517998136852480; 559 pub const KVM_REG_SIZE_U512: u64 = 27021597764222976; 560 pub const KVM_REG_SIZE_U1024: u64 = 31525197391593472; 561 pub const KVM_REG_SIZE_U2048: u64 = 36028797018963968; 562 pub const KVM_MSI_VALID_DEVID: u32 = 1; 563 pub const KVM_CREATE_DEVICE_TEST: u32 = 1; 564 pub const KVM_DEV_VFIO_FILE: u32 = 1; 565 pub const KVM_DEV_VFIO_FILE_ADD: u32 = 1; 566 pub const KVM_DEV_VFIO_FILE_DEL: u32 = 2; 567 pub const KVM_DEV_VFIO_GROUP: u32 = 1; 568 pub const KVM_DEV_VFIO_GROUP_ADD: u32 = 1; 569 pub const KVM_DEV_VFIO_GROUP_DEL: u32 = 2; 570 pub const KVM_DEV_VFIO_GROUP_SET_SPAPR_TCE: u32 = 3; 571 pub const KVM_S390_STORE_STATUS_NOADDR: i32 = -1; 572 pub const KVM_S390_STORE_STATUS_PREFIXED: i32 = -2; 573 pub const KVM_XEN_EVTCHN_DEASSIGN: u32 = 1; 574 pub const KVM_XEN_EVTCHN_UPDATE: u32 = 2; 575 pub const KVM_XEN_EVTCHN_RESET: u32 = 4; 576 pub const KVM_XEN_ATTR_TYPE_LONG_MODE: u32 = 0; 577 pub const KVM_XEN_ATTR_TYPE_SHARED_INFO: u32 = 1; 578 pub const KVM_XEN_ATTR_TYPE_UPCALL_VECTOR: u32 = 2; 579 pub const KVM_XEN_ATTR_TYPE_EVTCHN: u32 = 3; 580 pub const KVM_XEN_ATTR_TYPE_XEN_VERSION: u32 = 4; 581 pub const KVM_XEN_ATTR_TYPE_RUNSTATE_UPDATE_FLAG: u32 = 5; 582 pub const KVM_XEN_VCPU_ATTR_TYPE_VCPU_INFO: u32 = 0; 583 pub const KVM_XEN_VCPU_ATTR_TYPE_VCPU_TIME_INFO: u32 = 1; 584 pub const KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_ADDR: u32 = 2; 585 pub const KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_CURRENT: u32 = 3; 586 pub const KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_DATA: u32 = 4; 587 pub const KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_ADJUST: u32 = 5; 588 pub const KVM_XEN_VCPU_ATTR_TYPE_VCPU_ID: u32 = 6; 589 pub const KVM_XEN_VCPU_ATTR_TYPE_TIMER: u32 = 7; 590 pub const KVM_XEN_VCPU_ATTR_TYPE_UPCALL_VECTOR: u32 = 8; 591 pub const KVM_DEV_ASSIGN_ENABLE_IOMMU: u32 = 1; 592 pub const KVM_DEV_ASSIGN_PCI_2_3: u32 = 2; 593 pub const KVM_DEV_ASSIGN_MASK_INTX: u32 = 4; 594 pub const KVM_DEV_IRQ_HOST_INTX: u32 = 1; 595 pub const KVM_DEV_IRQ_HOST_MSI: u32 = 2; 596 pub const KVM_DEV_IRQ_HOST_MSIX: u32 = 4; 597 pub const KVM_DEV_IRQ_GUEST_INTX: u32 = 256; 598 pub const KVM_DEV_IRQ_GUEST_MSI: u32 = 512; 599 pub const KVM_DEV_IRQ_GUEST_MSIX: u32 = 1024; 600 pub const KVM_DEV_IRQ_HOST_MASK: u32 = 255; 601 pub const KVM_DEV_IRQ_GUEST_MASK: u32 = 65280; 602 pub const KVM_MAX_MSIX_PER_DEV: u32 = 256; 603 pub const KVM_X2APIC_API_USE_32BIT_IDS: u32 = 1; 604 pub const KVM_X2APIC_API_DISABLE_BROADCAST_QUIRK: u32 = 2; 605 pub const KVM_ARM_DEV_EL1_VTIMER: u32 = 1; 606 pub const KVM_ARM_DEV_EL1_PTIMER: u32 = 2; 607 pub const KVM_ARM_DEV_PMU: u32 = 4; 608 pub const KVM_HYPERV_CONN_ID_MASK: u32 = 16777215; 609 pub const KVM_HYPERV_EVENTFD_DEASSIGN: u32 = 1; 610 pub const KVM_DIRTY_LOG_MANUAL_PROTECT_ENABLE: u32 = 1; 611 pub const KVM_DIRTY_LOG_INITIALLY_SET: u32 = 2; 612 pub const KVM_DIRTY_LOG_PAGE_OFFSET: u32 = 0; 613 pub const KVM_DIRTY_GFN_F_MASK: u32 = 3; 614 pub const KVM_BUS_LOCK_DETECTION_OFF: u32 = 1; 615 pub const KVM_BUS_LOCK_DETECTION_EXIT: u32 = 2; 616 pub const KVM_PMU_CAP_DISABLE: u32 = 1; 617 pub const KVM_STATS_TYPE_SHIFT: u32 = 0; 618 pub const KVM_STATS_TYPE_MASK: u32 = 15; 619 pub const KVM_STATS_TYPE_CUMULATIVE: u32 = 0; 620 pub const KVM_STATS_TYPE_INSTANT: u32 = 1; 621 pub const KVM_STATS_TYPE_PEAK: u32 = 2; 622 pub const KVM_STATS_TYPE_LINEAR_HIST: u32 = 3; 623 pub const KVM_STATS_TYPE_LOG_HIST: u32 = 4; 624 pub const KVM_STATS_TYPE_MAX: u32 = 4; 625 pub const KVM_STATS_UNIT_SHIFT: u32 = 4; 626 pub const KVM_STATS_UNIT_MASK: u32 = 240; 627 pub const KVM_STATS_UNIT_NONE: u32 = 0; 628 pub const KVM_STATS_UNIT_BYTES: u32 = 16; 629 pub const KVM_STATS_UNIT_SECONDS: u32 = 32; 630 pub const KVM_STATS_UNIT_CYCLES: u32 = 48; 631 pub const KVM_STATS_UNIT_BOOLEAN: u32 = 64; 632 pub const KVM_STATS_UNIT_MAX: u32 = 64; 633 pub const KVM_STATS_BASE_SHIFT: u32 = 8; 634 pub const KVM_STATS_BASE_MASK: u32 = 3840; 635 pub const KVM_STATS_BASE_POW10: u32 = 0; 636 pub const KVM_STATS_BASE_POW2: u32 = 256; 637 pub const KVM_STATS_BASE_MAX: u32 = 256; 638 pub const KVM_X86_NOTIFY_VMEXIT_ENABLED: u32 = 1; 639 pub const KVM_X86_NOTIFY_VMEXIT_USER: u32 = 2; 640 pub const KVM_S390_ZPCIOP_REG_AEN: u32 = 0; 641 pub const KVM_S390_ZPCIOP_DEREG_AEN: u32 = 1; 642 pub const KVM_S390_ZPCIOP_REGAEN_HOST: u32 = 1; 643 pub type __s128 = i128; 644 pub type __u128 = u128; 645 pub type __le16 = u16; 646 pub type __be16 = u16; 647 pub type __le32 = u32; 648 pub type __be32 = u32; 649 pub type __le64 = u64; 650 pub type __be64 = u64; 651 pub type __sum16 = u16; 652 pub type __wsum = u32; 653 pub type __poll_t = ::std::os::raw::c_uint; 654 #[repr(C)] 655 #[derive(Debug, Default, Copy, Clone)] 656 pub struct user_regs_struct { 657 pub pc: ::std::os::raw::c_ulong, 658 pub ra: ::std::os::raw::c_ulong, 659 pub sp: ::std::os::raw::c_ulong, 660 pub gp: ::std::os::raw::c_ulong, 661 pub tp: ::std::os::raw::c_ulong, 662 pub t0: ::std::os::raw::c_ulong, 663 pub t1: ::std::os::raw::c_ulong, 664 pub t2: ::std::os::raw::c_ulong, 665 pub s0: ::std::os::raw::c_ulong, 666 pub s1: ::std::os::raw::c_ulong, 667 pub a0: ::std::os::raw::c_ulong, 668 pub a1: ::std::os::raw::c_ulong, 669 pub a2: ::std::os::raw::c_ulong, 670 pub a3: ::std::os::raw::c_ulong, 671 pub a4: ::std::os::raw::c_ulong, 672 pub a5: ::std::os::raw::c_ulong, 673 pub a6: ::std::os::raw::c_ulong, 674 pub a7: ::std::os::raw::c_ulong, 675 pub s2: ::std::os::raw::c_ulong, 676 pub s3: ::std::os::raw::c_ulong, 677 pub s4: ::std::os::raw::c_ulong, 678 pub s5: ::std::os::raw::c_ulong, 679 pub s6: ::std::os::raw::c_ulong, 680 pub s7: ::std::os::raw::c_ulong, 681 pub s8: ::std::os::raw::c_ulong, 682 pub s9: ::std::os::raw::c_ulong, 683 pub s10: ::std::os::raw::c_ulong, 684 pub s11: ::std::os::raw::c_ulong, 685 pub t3: ::std::os::raw::c_ulong, 686 pub t4: ::std::os::raw::c_ulong, 687 pub t5: ::std::os::raw::c_ulong, 688 pub t6: ::std::os::raw::c_ulong, 689 } 690 #[repr(C)] 691 #[derive(Debug, Default, Copy, Clone)] 692 pub struct __riscv_f_ext_state { 693 pub f: [u32; 32usize], 694 pub fcsr: u32, 695 } 696 #[repr(C)] 697 #[derive(Debug, Default, Copy, Clone)] 698 pub struct __riscv_d_ext_state { 699 pub f: [u64; 32usize], 700 pub fcsr: u32, 701 } 702 #[repr(C)] 703 #[repr(align(16))] 704 #[derive(Debug, Copy, Clone)] 705 pub struct __riscv_q_ext_state { 706 pub f: [u64; 64usize], 707 pub fcsr: u32, 708 pub reserved: [u32; 3usize], 709 } 710 impl Default for __riscv_q_ext_state { default() -> Self711 fn default() -> Self { 712 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 713 unsafe { 714 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 715 s.assume_init() 716 } 717 } 718 } 719 #[repr(C)] 720 #[derive(Debug, Default, Copy, Clone)] 721 pub struct __riscv_ctx_hdr { 722 pub magic: u32, 723 pub size: u32, 724 } 725 #[repr(C)] 726 #[repr(align(16))] 727 #[derive(Debug, Copy, Clone)] 728 pub struct __riscv_extra_ext_header { 729 pub __padding: [u32; 129usize], 730 pub reserved: u32, 731 pub hdr: __riscv_ctx_hdr, 732 } 733 impl Default for __riscv_extra_ext_header { default() -> Self734 fn default() -> Self { 735 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 736 unsafe { 737 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 738 s.assume_init() 739 } 740 } 741 } 742 #[repr(C)] 743 #[repr(align(16))] 744 #[derive(Copy, Clone)] 745 pub union __riscv_fp_state { 746 pub f: __riscv_f_ext_state, 747 pub d: __riscv_d_ext_state, 748 pub q: __riscv_q_ext_state, 749 } 750 impl Default for __riscv_fp_state { default() -> Self751 fn default() -> Self { 752 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 753 unsafe { 754 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 755 s.assume_init() 756 } 757 } 758 } 759 #[repr(C)] 760 #[derive(Debug, Copy, Clone)] 761 pub struct __riscv_v_ext_state { 762 pub vstart: ::std::os::raw::c_ulong, 763 pub vl: ::std::os::raw::c_ulong, 764 pub vtype: ::std::os::raw::c_ulong, 765 pub vcsr: ::std::os::raw::c_ulong, 766 pub vlenb: ::std::os::raw::c_ulong, 767 pub datap: *mut ::std::os::raw::c_void, 768 } 769 impl Default for __riscv_v_ext_state { default() -> Self770 fn default() -> Self { 771 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 772 unsafe { 773 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 774 s.assume_init() 775 } 776 } 777 } 778 #[repr(C)] 779 #[derive(Debug, Default)] 780 pub struct __riscv_v_regset_state { 781 pub vstart: ::std::os::raw::c_ulong, 782 pub vl: ::std::os::raw::c_ulong, 783 pub vtype: ::std::os::raw::c_ulong, 784 pub vcsr: ::std::os::raw::c_ulong, 785 pub vlenb: ::std::os::raw::c_ulong, 786 pub vreg: __IncompleteArrayField<::std::os::raw::c_char>, 787 } 788 #[repr(C)] 789 #[derive(Debug, Default, Copy, Clone)] 790 pub struct kvm_regs {} 791 #[repr(C)] 792 #[derive(Debug, Default, Copy, Clone)] 793 pub struct kvm_fpu {} 794 #[repr(C)] 795 #[derive(Debug, Default, Copy, Clone)] 796 pub struct kvm_debug_exit_arch {} 797 #[repr(C)] 798 #[derive(Debug, Default, Copy, Clone)] 799 pub struct kvm_guest_debug_arch {} 800 #[repr(C)] 801 #[derive(Debug, Default, Copy, Clone)] 802 pub struct kvm_sync_regs {} 803 #[repr(C)] 804 #[derive(Debug, Default, Copy, Clone)] 805 pub struct kvm_sregs {} 806 #[repr(C)] 807 #[derive(Debug, Default, Copy, Clone)] 808 pub struct kvm_riscv_config { 809 pub isa: ::std::os::raw::c_ulong, 810 pub zicbom_block_size: ::std::os::raw::c_ulong, 811 pub mvendorid: ::std::os::raw::c_ulong, 812 pub marchid: ::std::os::raw::c_ulong, 813 pub mimpid: ::std::os::raw::c_ulong, 814 pub zicboz_block_size: ::std::os::raw::c_ulong, 815 pub satp_mode: ::std::os::raw::c_ulong, 816 } 817 #[repr(C)] 818 #[derive(Debug, Default, Copy, Clone)] 819 pub struct kvm_riscv_core { 820 pub regs: user_regs_struct, 821 pub mode: ::std::os::raw::c_ulong, 822 } 823 #[repr(C)] 824 #[derive(Debug, Default, Copy, Clone)] 825 pub struct kvm_riscv_csr { 826 pub sstatus: ::std::os::raw::c_ulong, 827 pub sie: ::std::os::raw::c_ulong, 828 pub stvec: ::std::os::raw::c_ulong, 829 pub sscratch: ::std::os::raw::c_ulong, 830 pub sepc: ::std::os::raw::c_ulong, 831 pub scause: ::std::os::raw::c_ulong, 832 pub stval: ::std::os::raw::c_ulong, 833 pub sip: ::std::os::raw::c_ulong, 834 pub satp: ::std::os::raw::c_ulong, 835 pub scounteren: ::std::os::raw::c_ulong, 836 } 837 #[repr(C)] 838 #[derive(Debug, Default, Copy, Clone)] 839 pub struct kvm_riscv_aia_csr { 840 pub siselect: ::std::os::raw::c_ulong, 841 pub iprio1: ::std::os::raw::c_ulong, 842 pub iprio2: ::std::os::raw::c_ulong, 843 pub sieh: ::std::os::raw::c_ulong, 844 pub siph: ::std::os::raw::c_ulong, 845 pub iprio1h: ::std::os::raw::c_ulong, 846 pub iprio2h: ::std::os::raw::c_ulong, 847 } 848 #[repr(C)] 849 #[derive(Debug, Default, Copy, Clone)] 850 pub struct kvm_riscv_timer { 851 pub frequency: u64, 852 pub time: u64, 853 pub compare: u64, 854 pub state: u64, 855 } 856 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_A: KVM_RISCV_ISA_EXT_ID = 0; 857 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_C: KVM_RISCV_ISA_EXT_ID = 1; 858 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_D: KVM_RISCV_ISA_EXT_ID = 2; 859 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_F: KVM_RISCV_ISA_EXT_ID = 3; 860 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_H: KVM_RISCV_ISA_EXT_ID = 4; 861 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_I: KVM_RISCV_ISA_EXT_ID = 5; 862 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_M: KVM_RISCV_ISA_EXT_ID = 6; 863 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_SVPBMT: KVM_RISCV_ISA_EXT_ID = 7; 864 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_SSTC: KVM_RISCV_ISA_EXT_ID = 8; 865 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_SVINVAL: KVM_RISCV_ISA_EXT_ID = 9; 866 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZIHINTPAUSE: KVM_RISCV_ISA_EXT_ID = 10; 867 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZICBOM: KVM_RISCV_ISA_EXT_ID = 11; 868 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZICBOZ: KVM_RISCV_ISA_EXT_ID = 12; 869 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZBB: KVM_RISCV_ISA_EXT_ID = 13; 870 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_SSAIA: KVM_RISCV_ISA_EXT_ID = 14; 871 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_V: KVM_RISCV_ISA_EXT_ID = 15; 872 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_SVNAPOT: KVM_RISCV_ISA_EXT_ID = 16; 873 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZBA: KVM_RISCV_ISA_EXT_ID = 17; 874 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZBS: KVM_RISCV_ISA_EXT_ID = 18; 875 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZICNTR: KVM_RISCV_ISA_EXT_ID = 19; 876 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZICSR: KVM_RISCV_ISA_EXT_ID = 20; 877 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZIFENCEI: KVM_RISCV_ISA_EXT_ID = 21; 878 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZIHPM: KVM_RISCV_ISA_EXT_ID = 22; 879 pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_MAX: KVM_RISCV_ISA_EXT_ID = 23; 880 pub type KVM_RISCV_ISA_EXT_ID = ::std::os::raw::c_uint; 881 pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_V01: KVM_RISCV_SBI_EXT_ID = 0; 882 pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_TIME: KVM_RISCV_SBI_EXT_ID = 1; 883 pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_IPI: KVM_RISCV_SBI_EXT_ID = 2; 884 pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_RFENCE: KVM_RISCV_SBI_EXT_ID = 3; 885 pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_SRST: KVM_RISCV_SBI_EXT_ID = 4; 886 pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_HSM: KVM_RISCV_SBI_EXT_ID = 5; 887 pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_PMU: KVM_RISCV_SBI_EXT_ID = 6; 888 pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_EXPERIMENTAL: KVM_RISCV_SBI_EXT_ID = 7; 889 pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_VENDOR: KVM_RISCV_SBI_EXT_ID = 8; 890 pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_MAX: KVM_RISCV_SBI_EXT_ID = 9; 891 pub type KVM_RISCV_SBI_EXT_ID = ::std::os::raw::c_uint; 892 #[repr(C)] 893 #[derive(Debug, Default, Copy, Clone)] 894 pub struct kvm_user_trace_setup { 895 pub buf_size: u32, 896 pub buf_nr: u32, 897 } 898 #[repr(C)] 899 #[derive(Debug, Default, Copy, Clone)] 900 pub struct kvm_breakpoint { 901 pub enabled: u32, 902 pub padding: u32, 903 pub address: u64, 904 } 905 #[repr(C)] 906 #[derive(Debug, Default, Copy, Clone)] 907 pub struct kvm_debug_guest { 908 pub enabled: u32, 909 pub pad: u32, 910 pub breakpoints: [kvm_breakpoint; 4usize], 911 pub singlestep: u32, 912 } 913 #[repr(C)] 914 #[derive(Debug, Default, Copy, Clone)] 915 pub struct kvm_userspace_memory_region { 916 pub slot: u32, 917 pub flags: u32, 918 pub guest_phys_addr: u64, 919 pub memory_size: u64, 920 pub userspace_addr: u64, 921 } 922 #[repr(C)] 923 #[derive(Copy, Clone)] 924 pub struct kvm_irq_level { 925 pub __bindgen_anon_1: kvm_irq_level__bindgen_ty_1, 926 pub level: u32, 927 } 928 #[repr(C)] 929 #[derive(Copy, Clone)] 930 pub union kvm_irq_level__bindgen_ty_1 { 931 pub irq: u32, 932 pub status: i32, 933 } 934 impl Default for kvm_irq_level__bindgen_ty_1 { default() -> Self935 fn default() -> Self { 936 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 937 unsafe { 938 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 939 s.assume_init() 940 } 941 } 942 } 943 impl Default for kvm_irq_level { default() -> Self944 fn default() -> Self { 945 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 946 unsafe { 947 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 948 s.assume_init() 949 } 950 } 951 } 952 #[repr(C)] 953 #[derive(Copy, Clone)] 954 pub struct kvm_irqchip { 955 pub chip_id: u32, 956 pub pad: u32, 957 pub chip: kvm_irqchip__bindgen_ty_1, 958 } 959 #[repr(C)] 960 #[derive(Copy, Clone)] 961 pub union kvm_irqchip__bindgen_ty_1 { 962 pub dummy: [::std::os::raw::c_char; 512usize], 963 } 964 impl Default for kvm_irqchip__bindgen_ty_1 { default() -> Self965 fn default() -> Self { 966 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 967 unsafe { 968 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 969 s.assume_init() 970 } 971 } 972 } 973 impl Default for kvm_irqchip { default() -> Self974 fn default() -> Self { 975 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 976 unsafe { 977 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 978 s.assume_init() 979 } 980 } 981 } 982 #[repr(C)] 983 #[derive(Debug, Default, Copy, Clone)] 984 pub struct kvm_pit_config { 985 pub flags: u32, 986 pub pad: [u32; 15usize], 987 } 988 #[repr(C)] 989 #[derive(Debug, Default, Copy, Clone)] 990 pub struct kvm_s390_skeys { 991 pub start_gfn: u64, 992 pub count: u64, 993 pub skeydata_addr: u64, 994 pub flags: u32, 995 pub reserved: [u32; 9usize], 996 } 997 #[repr(C)] 998 #[derive(Copy, Clone)] 999 pub struct kvm_s390_cmma_log { 1000 pub start_gfn: u64, 1001 pub count: u32, 1002 pub flags: u32, 1003 pub __bindgen_anon_1: kvm_s390_cmma_log__bindgen_ty_1, 1004 pub values: u64, 1005 } 1006 #[repr(C)] 1007 #[derive(Copy, Clone)] 1008 pub union kvm_s390_cmma_log__bindgen_ty_1 { 1009 pub remaining: u64, 1010 pub mask: u64, 1011 } 1012 impl Default for kvm_s390_cmma_log__bindgen_ty_1 { default() -> Self1013 fn default() -> Self { 1014 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1015 unsafe { 1016 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1017 s.assume_init() 1018 } 1019 } 1020 } 1021 impl Default for kvm_s390_cmma_log { default() -> Self1022 fn default() -> Self { 1023 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1024 unsafe { 1025 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1026 s.assume_init() 1027 } 1028 } 1029 } 1030 #[repr(C)] 1031 #[derive(Copy, Clone)] 1032 pub struct kvm_hyperv_exit { 1033 pub type_: u32, 1034 pub pad1: u32, 1035 pub u: kvm_hyperv_exit__bindgen_ty_1, 1036 } 1037 #[repr(C)] 1038 #[derive(Copy, Clone)] 1039 pub union kvm_hyperv_exit__bindgen_ty_1 { 1040 pub synic: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1, 1041 pub hcall: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_2, 1042 pub syndbg: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3, 1043 } 1044 #[repr(C)] 1045 #[derive(Debug, Default, Copy, Clone)] 1046 pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1 { 1047 pub msr: u32, 1048 pub pad2: u32, 1049 pub control: u64, 1050 pub evt_page: u64, 1051 pub msg_page: u64, 1052 } 1053 #[repr(C)] 1054 #[derive(Debug, Default, Copy, Clone)] 1055 pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_2 { 1056 pub input: u64, 1057 pub result: u64, 1058 pub params: [u64; 2usize], 1059 } 1060 #[repr(C)] 1061 #[derive(Debug, Default, Copy, Clone)] 1062 pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3 { 1063 pub msr: u32, 1064 pub pad2: u32, 1065 pub control: u64, 1066 pub status: u64, 1067 pub send_page: u64, 1068 pub recv_page: u64, 1069 pub pending_page: u64, 1070 } 1071 impl Default for kvm_hyperv_exit__bindgen_ty_1 { default() -> Self1072 fn default() -> Self { 1073 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1074 unsafe { 1075 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1076 s.assume_init() 1077 } 1078 } 1079 } 1080 impl Default for kvm_hyperv_exit { default() -> Self1081 fn default() -> Self { 1082 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1083 unsafe { 1084 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1085 s.assume_init() 1086 } 1087 } 1088 } 1089 #[repr(C)] 1090 #[derive(Copy, Clone)] 1091 pub struct kvm_xen_exit { 1092 pub type_: u32, 1093 pub u: kvm_xen_exit__bindgen_ty_1, 1094 } 1095 #[repr(C)] 1096 #[derive(Copy, Clone)] 1097 pub union kvm_xen_exit__bindgen_ty_1 { 1098 pub hcall: kvm_xen_exit__bindgen_ty_1__bindgen_ty_1, 1099 } 1100 #[repr(C)] 1101 #[derive(Debug, Default, Copy, Clone)] 1102 pub struct kvm_xen_exit__bindgen_ty_1__bindgen_ty_1 { 1103 pub longmode: u32, 1104 pub cpl: u32, 1105 pub input: u64, 1106 pub result: u64, 1107 pub params: [u64; 6usize], 1108 } 1109 impl Default for kvm_xen_exit__bindgen_ty_1 { default() -> Self1110 fn default() -> Self { 1111 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1112 unsafe { 1113 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1114 s.assume_init() 1115 } 1116 } 1117 } 1118 impl Default for kvm_xen_exit { default() -> Self1119 fn default() -> Self { 1120 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1121 unsafe { 1122 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1123 s.assume_init() 1124 } 1125 } 1126 } 1127 #[repr(C)] 1128 #[derive(Copy, Clone)] 1129 pub struct kvm_run { 1130 pub request_interrupt_window: u8, 1131 pub immediate_exit: u8, 1132 pub padding1: [u8; 6usize], 1133 pub exit_reason: u32, 1134 pub ready_for_interrupt_injection: u8, 1135 pub if_flag: u8, 1136 pub flags: u16, 1137 pub cr8: u64, 1138 pub apic_base: u64, 1139 pub __bindgen_anon_1: kvm_run__bindgen_ty_1, 1140 pub kvm_valid_regs: u64, 1141 pub kvm_dirty_regs: u64, 1142 pub s: kvm_run__bindgen_ty_2, 1143 } 1144 #[repr(C)] 1145 #[derive(Copy, Clone)] 1146 pub union kvm_run__bindgen_ty_1 { 1147 pub hw: kvm_run__bindgen_ty_1__bindgen_ty_1, 1148 pub fail_entry: kvm_run__bindgen_ty_1__bindgen_ty_2, 1149 pub ex: kvm_run__bindgen_ty_1__bindgen_ty_3, 1150 pub io: kvm_run__bindgen_ty_1__bindgen_ty_4, 1151 pub debug: kvm_run__bindgen_ty_1__bindgen_ty_5, 1152 pub mmio: kvm_run__bindgen_ty_1__bindgen_ty_6, 1153 pub hypercall: kvm_run__bindgen_ty_1__bindgen_ty_7, 1154 pub tpr_access: kvm_run__bindgen_ty_1__bindgen_ty_8, 1155 pub s390_sieic: kvm_run__bindgen_ty_1__bindgen_ty_9, 1156 pub s390_reset_flags: u64, 1157 pub s390_ucontrol: kvm_run__bindgen_ty_1__bindgen_ty_10, 1158 pub dcr: kvm_run__bindgen_ty_1__bindgen_ty_11, 1159 pub internal: kvm_run__bindgen_ty_1__bindgen_ty_12, 1160 pub emulation_failure: kvm_run__bindgen_ty_1__bindgen_ty_13, 1161 pub osi: kvm_run__bindgen_ty_1__bindgen_ty_14, 1162 pub papr_hcall: kvm_run__bindgen_ty_1__bindgen_ty_15, 1163 pub s390_tsch: kvm_run__bindgen_ty_1__bindgen_ty_16, 1164 pub epr: kvm_run__bindgen_ty_1__bindgen_ty_17, 1165 pub system_event: kvm_run__bindgen_ty_1__bindgen_ty_18, 1166 pub s390_stsi: kvm_run__bindgen_ty_1__bindgen_ty_19, 1167 pub eoi: kvm_run__bindgen_ty_1__bindgen_ty_20, 1168 pub hyperv: kvm_hyperv_exit, 1169 pub arm_nisv: kvm_run__bindgen_ty_1__bindgen_ty_21, 1170 pub msr: kvm_run__bindgen_ty_1__bindgen_ty_22, 1171 pub xen: kvm_xen_exit, 1172 pub riscv_sbi: kvm_run__bindgen_ty_1__bindgen_ty_23, 1173 pub riscv_csr: kvm_run__bindgen_ty_1__bindgen_ty_24, 1174 pub notify: kvm_run__bindgen_ty_1__bindgen_ty_25, 1175 pub padding: [::std::os::raw::c_char; 256usize], 1176 } 1177 #[repr(C)] 1178 #[derive(Debug, Default, Copy, Clone)] 1179 pub struct kvm_run__bindgen_ty_1__bindgen_ty_1 { 1180 pub hardware_exit_reason: u64, 1181 } 1182 #[repr(C)] 1183 #[derive(Debug, Default, Copy, Clone)] 1184 pub struct kvm_run__bindgen_ty_1__bindgen_ty_2 { 1185 pub hardware_entry_failure_reason: u64, 1186 pub cpu: u32, 1187 } 1188 #[repr(C)] 1189 #[derive(Debug, Default, Copy, Clone)] 1190 pub struct kvm_run__bindgen_ty_1__bindgen_ty_3 { 1191 pub exception: u32, 1192 pub error_code: u32, 1193 } 1194 #[repr(C)] 1195 #[derive(Debug, Default, Copy, Clone)] 1196 pub struct kvm_run__bindgen_ty_1__bindgen_ty_4 { 1197 pub direction: u8, 1198 pub size: u8, 1199 pub port: u16, 1200 pub count: u32, 1201 pub data_offset: u64, 1202 } 1203 #[repr(C)] 1204 #[derive(Debug, Default, Copy, Clone)] 1205 pub struct kvm_run__bindgen_ty_1__bindgen_ty_5 { 1206 pub arch: kvm_debug_exit_arch, 1207 } 1208 #[repr(C)] 1209 #[derive(Debug, Default, Copy, Clone)] 1210 pub struct kvm_run__bindgen_ty_1__bindgen_ty_6 { 1211 pub phys_addr: u64, 1212 pub data: [u8; 8usize], 1213 pub len: u32, 1214 pub is_write: u8, 1215 } 1216 #[repr(C)] 1217 #[derive(Copy, Clone)] 1218 pub struct kvm_run__bindgen_ty_1__bindgen_ty_7 { 1219 pub nr: u64, 1220 pub args: [u64; 6usize], 1221 pub ret: u64, 1222 pub __bindgen_anon_1: kvm_run__bindgen_ty_1__bindgen_ty_7__bindgen_ty_1, 1223 } 1224 #[repr(C)] 1225 #[derive(Copy, Clone)] 1226 pub union kvm_run__bindgen_ty_1__bindgen_ty_7__bindgen_ty_1 { 1227 pub longmode: u32, 1228 pub flags: u64, 1229 } 1230 impl Default for kvm_run__bindgen_ty_1__bindgen_ty_7__bindgen_ty_1 { 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 impl Default for kvm_run__bindgen_ty_1__bindgen_ty_7 { default() -> Self1240 fn default() -> Self { 1241 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1242 unsafe { 1243 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1244 s.assume_init() 1245 } 1246 } 1247 } 1248 #[repr(C)] 1249 #[derive(Debug, Default, Copy, Clone)] 1250 pub struct kvm_run__bindgen_ty_1__bindgen_ty_8 { 1251 pub rip: u64, 1252 pub is_write: u32, 1253 pub pad: u32, 1254 } 1255 #[repr(C)] 1256 #[derive(Debug, Default, Copy, Clone)] 1257 pub struct kvm_run__bindgen_ty_1__bindgen_ty_9 { 1258 pub icptcode: u8, 1259 pub ipa: u16, 1260 pub ipb: u32, 1261 } 1262 #[repr(C)] 1263 #[derive(Debug, Default, Copy, Clone)] 1264 pub struct kvm_run__bindgen_ty_1__bindgen_ty_10 { 1265 pub trans_exc_code: u64, 1266 pub pgm_code: u32, 1267 } 1268 #[repr(C)] 1269 #[derive(Debug, Default, Copy, Clone)] 1270 pub struct kvm_run__bindgen_ty_1__bindgen_ty_11 { 1271 pub dcrn: u32, 1272 pub data: u32, 1273 pub is_write: u8, 1274 } 1275 #[repr(C)] 1276 #[derive(Debug, Default, Copy, Clone)] 1277 pub struct kvm_run__bindgen_ty_1__bindgen_ty_12 { 1278 pub suberror: u32, 1279 pub ndata: u32, 1280 pub data: [u64; 16usize], 1281 } 1282 #[repr(C)] 1283 #[derive(Copy, Clone)] 1284 pub struct kvm_run__bindgen_ty_1__bindgen_ty_13 { 1285 pub suberror: u32, 1286 pub ndata: u32, 1287 pub flags: u64, 1288 pub __bindgen_anon_1: kvm_run__bindgen_ty_1__bindgen_ty_13__bindgen_ty_1, 1289 } 1290 #[repr(C)] 1291 #[derive(Copy, Clone)] 1292 pub union kvm_run__bindgen_ty_1__bindgen_ty_13__bindgen_ty_1 { 1293 pub __bindgen_anon_1: kvm_run__bindgen_ty_1__bindgen_ty_13__bindgen_ty_1__bindgen_ty_1, 1294 } 1295 #[repr(C)] 1296 #[derive(Debug, Default, Copy, Clone)] 1297 pub struct kvm_run__bindgen_ty_1__bindgen_ty_13__bindgen_ty_1__bindgen_ty_1 { 1298 pub insn_size: u8, 1299 pub insn_bytes: [u8; 15usize], 1300 } 1301 impl Default for kvm_run__bindgen_ty_1__bindgen_ty_13__bindgen_ty_1 { default() -> Self1302 fn default() -> Self { 1303 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1304 unsafe { 1305 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1306 s.assume_init() 1307 } 1308 } 1309 } 1310 impl Default for kvm_run__bindgen_ty_1__bindgen_ty_13 { default() -> Self1311 fn default() -> Self { 1312 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1313 unsafe { 1314 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1315 s.assume_init() 1316 } 1317 } 1318 } 1319 #[repr(C)] 1320 #[derive(Debug, Default, Copy, Clone)] 1321 pub struct kvm_run__bindgen_ty_1__bindgen_ty_14 { 1322 pub gprs: [u64; 32usize], 1323 } 1324 #[repr(C)] 1325 #[derive(Debug, Default, Copy, Clone)] 1326 pub struct kvm_run__bindgen_ty_1__bindgen_ty_15 { 1327 pub nr: u64, 1328 pub ret: u64, 1329 pub args: [u64; 9usize], 1330 } 1331 #[repr(C)] 1332 #[derive(Debug, Default, Copy, Clone)] 1333 pub struct kvm_run__bindgen_ty_1__bindgen_ty_16 { 1334 pub subchannel_id: u16, 1335 pub subchannel_nr: u16, 1336 pub io_int_parm: u32, 1337 pub io_int_word: u32, 1338 pub ipb: u32, 1339 pub dequeued: u8, 1340 } 1341 #[repr(C)] 1342 #[derive(Debug, Default, Copy, Clone)] 1343 pub struct kvm_run__bindgen_ty_1__bindgen_ty_17 { 1344 pub epr: u32, 1345 } 1346 #[repr(C)] 1347 #[derive(Copy, Clone)] 1348 pub struct kvm_run__bindgen_ty_1__bindgen_ty_18 { 1349 pub type_: u32, 1350 pub ndata: u32, 1351 pub __bindgen_anon_1: kvm_run__bindgen_ty_1__bindgen_ty_18__bindgen_ty_1, 1352 } 1353 #[repr(C)] 1354 #[derive(Copy, Clone)] 1355 pub union kvm_run__bindgen_ty_1__bindgen_ty_18__bindgen_ty_1 { 1356 pub flags: u64, 1357 pub data: [u64; 16usize], 1358 } 1359 impl Default for kvm_run__bindgen_ty_1__bindgen_ty_18__bindgen_ty_1 { default() -> Self1360 fn default() -> Self { 1361 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1362 unsafe { 1363 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1364 s.assume_init() 1365 } 1366 } 1367 } 1368 impl Default for kvm_run__bindgen_ty_1__bindgen_ty_18 { default() -> Self1369 fn default() -> Self { 1370 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1371 unsafe { 1372 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1373 s.assume_init() 1374 } 1375 } 1376 } 1377 #[repr(C)] 1378 #[derive(Debug, Default, Copy, Clone)] 1379 pub struct kvm_run__bindgen_ty_1__bindgen_ty_19 { 1380 pub addr: u64, 1381 pub ar: u8, 1382 pub reserved: u8, 1383 pub fc: u8, 1384 pub sel1: u8, 1385 pub sel2: u16, 1386 } 1387 #[repr(C)] 1388 #[derive(Debug, Default, Copy, Clone)] 1389 pub struct kvm_run__bindgen_ty_1__bindgen_ty_20 { 1390 pub vector: u8, 1391 } 1392 #[repr(C)] 1393 #[derive(Debug, Default, Copy, Clone)] 1394 pub struct kvm_run__bindgen_ty_1__bindgen_ty_21 { 1395 pub esr_iss: u64, 1396 pub fault_ipa: u64, 1397 } 1398 #[repr(C)] 1399 #[derive(Debug, Default, Copy, Clone)] 1400 pub struct kvm_run__bindgen_ty_1__bindgen_ty_22 { 1401 pub error: u8, 1402 pub pad: [u8; 7usize], 1403 pub reason: u32, 1404 pub index: u32, 1405 pub data: u64, 1406 } 1407 #[repr(C)] 1408 #[derive(Debug, Default, Copy, Clone)] 1409 pub struct kvm_run__bindgen_ty_1__bindgen_ty_23 { 1410 pub extension_id: ::std::os::raw::c_ulong, 1411 pub function_id: ::std::os::raw::c_ulong, 1412 pub args: [::std::os::raw::c_ulong; 6usize], 1413 pub ret: [::std::os::raw::c_ulong; 2usize], 1414 } 1415 #[repr(C)] 1416 #[derive(Debug, Default, Copy, Clone)] 1417 pub struct kvm_run__bindgen_ty_1__bindgen_ty_24 { 1418 pub csr_num: ::std::os::raw::c_ulong, 1419 pub new_value: ::std::os::raw::c_ulong, 1420 pub write_mask: ::std::os::raw::c_ulong, 1421 pub ret_value: ::std::os::raw::c_ulong, 1422 } 1423 #[repr(C)] 1424 #[derive(Debug, Default, Copy, Clone)] 1425 pub struct kvm_run__bindgen_ty_1__bindgen_ty_25 { 1426 pub flags: u32, 1427 } 1428 impl Default for kvm_run__bindgen_ty_1 { default() -> Self1429 fn default() -> Self { 1430 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1431 unsafe { 1432 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1433 s.assume_init() 1434 } 1435 } 1436 } 1437 #[repr(C)] 1438 #[derive(Copy, Clone)] 1439 pub union kvm_run__bindgen_ty_2 { 1440 pub regs: kvm_sync_regs, 1441 pub padding: [::std::os::raw::c_char; 2048usize], 1442 } 1443 impl Default for kvm_run__bindgen_ty_2 { default() -> Self1444 fn default() -> Self { 1445 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1446 unsafe { 1447 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1448 s.assume_init() 1449 } 1450 } 1451 } 1452 impl Default for kvm_run { default() -> Self1453 fn default() -> Self { 1454 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1455 unsafe { 1456 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1457 s.assume_init() 1458 } 1459 } 1460 } 1461 #[repr(C)] 1462 #[derive(Copy, Clone)] 1463 pub struct kvm_coalesced_mmio_zone { 1464 pub addr: u64, 1465 pub size: u32, 1466 pub __bindgen_anon_1: kvm_coalesced_mmio_zone__bindgen_ty_1, 1467 } 1468 #[repr(C)] 1469 #[derive(Copy, Clone)] 1470 pub union kvm_coalesced_mmio_zone__bindgen_ty_1 { 1471 pub pad: u32, 1472 pub pio: u32, 1473 } 1474 impl Default for kvm_coalesced_mmio_zone__bindgen_ty_1 { default() -> Self1475 fn default() -> Self { 1476 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1477 unsafe { 1478 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1479 s.assume_init() 1480 } 1481 } 1482 } 1483 impl Default for kvm_coalesced_mmio_zone { default() -> Self1484 fn default() -> Self { 1485 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1486 unsafe { 1487 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1488 s.assume_init() 1489 } 1490 } 1491 } 1492 #[repr(C)] 1493 #[derive(Copy, Clone)] 1494 pub struct kvm_coalesced_mmio { 1495 pub phys_addr: u64, 1496 pub len: u32, 1497 pub __bindgen_anon_1: kvm_coalesced_mmio__bindgen_ty_1, 1498 pub data: [u8; 8usize], 1499 } 1500 #[repr(C)] 1501 #[derive(Copy, Clone)] 1502 pub union kvm_coalesced_mmio__bindgen_ty_1 { 1503 pub pad: u32, 1504 pub pio: u32, 1505 } 1506 impl Default for kvm_coalesced_mmio__bindgen_ty_1 { default() -> Self1507 fn default() -> Self { 1508 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1509 unsafe { 1510 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1511 s.assume_init() 1512 } 1513 } 1514 } 1515 impl Default for kvm_coalesced_mmio { default() -> Self1516 fn default() -> Self { 1517 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1518 unsafe { 1519 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1520 s.assume_init() 1521 } 1522 } 1523 } 1524 #[repr(C)] 1525 pub struct kvm_coalesced_mmio_ring { 1526 pub first: u32, 1527 pub last: u32, 1528 pub coalesced_mmio: __IncompleteArrayField<kvm_coalesced_mmio>, 1529 } 1530 impl Default for kvm_coalesced_mmio_ring { default() -> Self1531 fn default() -> Self { 1532 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1533 unsafe { 1534 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1535 s.assume_init() 1536 } 1537 } 1538 } 1539 #[repr(C)] 1540 #[derive(Debug, Default, Copy, Clone)] 1541 pub struct kvm_translation { 1542 pub linear_address: u64, 1543 pub physical_address: u64, 1544 pub valid: u8, 1545 pub writeable: u8, 1546 pub usermode: u8, 1547 pub pad: [u8; 5usize], 1548 } 1549 #[repr(C)] 1550 #[derive(Copy, Clone)] 1551 pub struct kvm_s390_mem_op { 1552 pub gaddr: u64, 1553 pub flags: u64, 1554 pub size: u32, 1555 pub op: u32, 1556 pub buf: u64, 1557 pub __bindgen_anon_1: kvm_s390_mem_op__bindgen_ty_1, 1558 } 1559 #[repr(C)] 1560 #[derive(Copy, Clone)] 1561 pub union kvm_s390_mem_op__bindgen_ty_1 { 1562 pub __bindgen_anon_1: kvm_s390_mem_op__bindgen_ty_1__bindgen_ty_1, 1563 pub sida_offset: u32, 1564 pub reserved: [u8; 32usize], 1565 } 1566 #[repr(C)] 1567 #[derive(Debug, Default, Copy, Clone)] 1568 pub struct kvm_s390_mem_op__bindgen_ty_1__bindgen_ty_1 { 1569 pub ar: u8, 1570 pub key: u8, 1571 pub pad1: [u8; 6usize], 1572 pub old_addr: u64, 1573 } 1574 impl Default for kvm_s390_mem_op__bindgen_ty_1 { default() -> Self1575 fn default() -> Self { 1576 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1577 unsafe { 1578 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1579 s.assume_init() 1580 } 1581 } 1582 } 1583 impl Default for kvm_s390_mem_op { default() -> Self1584 fn default() -> Self { 1585 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1586 unsafe { 1587 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1588 s.assume_init() 1589 } 1590 } 1591 } 1592 #[repr(C)] 1593 #[derive(Debug, Default, Copy, Clone)] 1594 pub struct kvm_interrupt { 1595 pub irq: u32, 1596 } 1597 #[repr(C)] 1598 #[derive(Copy, Clone)] 1599 pub struct kvm_dirty_log { 1600 pub slot: u32, 1601 pub padding1: u32, 1602 pub __bindgen_anon_1: kvm_dirty_log__bindgen_ty_1, 1603 } 1604 #[repr(C)] 1605 #[derive(Copy, Clone)] 1606 pub union kvm_dirty_log__bindgen_ty_1 { 1607 pub dirty_bitmap: *mut ::std::os::raw::c_void, 1608 pub padding2: u64, 1609 } 1610 impl Default for kvm_dirty_log__bindgen_ty_1 { default() -> Self1611 fn default() -> Self { 1612 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1613 unsafe { 1614 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1615 s.assume_init() 1616 } 1617 } 1618 } 1619 impl Default for kvm_dirty_log { default() -> Self1620 fn default() -> Self { 1621 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1622 unsafe { 1623 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1624 s.assume_init() 1625 } 1626 } 1627 } 1628 #[repr(C)] 1629 #[derive(Copy, Clone)] 1630 pub struct kvm_clear_dirty_log { 1631 pub slot: u32, 1632 pub num_pages: u32, 1633 pub first_page: u64, 1634 pub __bindgen_anon_1: kvm_clear_dirty_log__bindgen_ty_1, 1635 } 1636 #[repr(C)] 1637 #[derive(Copy, Clone)] 1638 pub union kvm_clear_dirty_log__bindgen_ty_1 { 1639 pub dirty_bitmap: *mut ::std::os::raw::c_void, 1640 pub padding2: u64, 1641 } 1642 impl Default for kvm_clear_dirty_log__bindgen_ty_1 { default() -> Self1643 fn default() -> Self { 1644 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1645 unsafe { 1646 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1647 s.assume_init() 1648 } 1649 } 1650 } 1651 impl Default for kvm_clear_dirty_log { default() -> Self1652 fn default() -> Self { 1653 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1654 unsafe { 1655 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1656 s.assume_init() 1657 } 1658 } 1659 } 1660 #[repr(C)] 1661 #[derive(Debug, Default)] 1662 pub struct kvm_signal_mask { 1663 pub len: u32, 1664 pub sigset: __IncompleteArrayField<u8>, 1665 } 1666 #[repr(C)] 1667 #[derive(Debug, Default, Copy, Clone)] 1668 pub struct kvm_tpr_access_ctl { 1669 pub enabled: u32, 1670 pub flags: u32, 1671 pub reserved: [u32; 8usize], 1672 } 1673 #[repr(C)] 1674 #[derive(Debug, Default, Copy, Clone)] 1675 pub struct kvm_vapic_addr { 1676 pub vapic_addr: u64, 1677 } 1678 #[repr(C)] 1679 #[derive(Debug, Default, Copy, Clone)] 1680 pub struct kvm_mp_state { 1681 pub mp_state: u32, 1682 } 1683 #[repr(C)] 1684 #[derive(Debug, Default, Copy, Clone)] 1685 pub struct kvm_s390_psw { 1686 pub mask: u64, 1687 pub addr: u64, 1688 } 1689 #[repr(C)] 1690 #[derive(Debug, Default, Copy, Clone)] 1691 pub struct kvm_s390_interrupt { 1692 pub type_: u32, 1693 pub parm: u32, 1694 pub parm64: u64, 1695 } 1696 #[repr(C)] 1697 #[derive(Debug, Default, Copy, Clone)] 1698 pub struct kvm_s390_io_info { 1699 pub subchannel_id: u16, 1700 pub subchannel_nr: u16, 1701 pub io_int_parm: u32, 1702 pub io_int_word: u32, 1703 } 1704 #[repr(C)] 1705 #[derive(Debug, Default, Copy, Clone)] 1706 pub struct kvm_s390_ext_info { 1707 pub ext_params: u32, 1708 pub pad: u32, 1709 pub ext_params2: u64, 1710 } 1711 #[repr(C)] 1712 #[derive(Debug, Default, Copy, Clone)] 1713 pub struct kvm_s390_pgm_info { 1714 pub trans_exc_code: u64, 1715 pub mon_code: u64, 1716 pub per_address: u64, 1717 pub data_exc_code: u32, 1718 pub code: u16, 1719 pub mon_class_nr: u16, 1720 pub per_code: u8, 1721 pub per_atmid: u8, 1722 pub exc_access_id: u8, 1723 pub per_access_id: u8, 1724 pub op_access_id: u8, 1725 pub flags: u8, 1726 pub pad: [u8; 2usize], 1727 } 1728 #[repr(C)] 1729 #[derive(Debug, Default, Copy, Clone)] 1730 pub struct kvm_s390_prefix_info { 1731 pub address: u32, 1732 } 1733 #[repr(C)] 1734 #[derive(Debug, Default, Copy, Clone)] 1735 pub struct kvm_s390_extcall_info { 1736 pub code: u16, 1737 } 1738 #[repr(C)] 1739 #[derive(Debug, Default, Copy, Clone)] 1740 pub struct kvm_s390_emerg_info { 1741 pub code: u16, 1742 } 1743 #[repr(C)] 1744 #[derive(Debug, Default, Copy, Clone)] 1745 pub struct kvm_s390_stop_info { 1746 pub flags: u32, 1747 } 1748 #[repr(C)] 1749 #[derive(Debug, Default, Copy, Clone)] 1750 pub struct kvm_s390_mchk_info { 1751 pub cr14: u64, 1752 pub mcic: u64, 1753 pub failing_storage_address: u64, 1754 pub ext_damage_code: u32, 1755 pub pad: u32, 1756 pub fixed_logout: [u8; 16usize], 1757 } 1758 #[repr(C)] 1759 #[derive(Copy, Clone)] 1760 pub struct kvm_s390_irq { 1761 pub type_: u64, 1762 pub u: kvm_s390_irq__bindgen_ty_1, 1763 } 1764 #[repr(C)] 1765 #[derive(Copy, Clone)] 1766 pub union kvm_s390_irq__bindgen_ty_1 { 1767 pub io: kvm_s390_io_info, 1768 pub ext: kvm_s390_ext_info, 1769 pub pgm: kvm_s390_pgm_info, 1770 pub emerg: kvm_s390_emerg_info, 1771 pub extcall: kvm_s390_extcall_info, 1772 pub prefix: kvm_s390_prefix_info, 1773 pub stop: kvm_s390_stop_info, 1774 pub mchk: kvm_s390_mchk_info, 1775 pub reserved: [::std::os::raw::c_char; 64usize], 1776 } 1777 impl Default for kvm_s390_irq__bindgen_ty_1 { default() -> Self1778 fn default() -> Self { 1779 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1780 unsafe { 1781 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1782 s.assume_init() 1783 } 1784 } 1785 } 1786 impl Default for kvm_s390_irq { default() -> Self1787 fn default() -> Self { 1788 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1789 unsafe { 1790 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1791 s.assume_init() 1792 } 1793 } 1794 } 1795 #[repr(C)] 1796 #[derive(Debug, Default, Copy, Clone)] 1797 pub struct kvm_s390_irq_state { 1798 pub buf: u64, 1799 pub flags: u32, 1800 pub len: u32, 1801 pub reserved: [u32; 4usize], 1802 } 1803 #[repr(C)] 1804 #[derive(Debug, Default, Copy, Clone)] 1805 pub struct kvm_guest_debug { 1806 pub control: u32, 1807 pub pad: u32, 1808 pub arch: kvm_guest_debug_arch, 1809 } 1810 pub const kvm_ioeventfd_flag_nr_datamatch: _bindgen_ty_1 = 0; 1811 pub const kvm_ioeventfd_flag_nr_pio: _bindgen_ty_1 = 1; 1812 pub const kvm_ioeventfd_flag_nr_deassign: _bindgen_ty_1 = 2; 1813 pub const kvm_ioeventfd_flag_nr_virtio_ccw_notify: _bindgen_ty_1 = 3; 1814 pub const kvm_ioeventfd_flag_nr_fast_mmio: _bindgen_ty_1 = 4; 1815 pub const kvm_ioeventfd_flag_nr_max: _bindgen_ty_1 = 5; 1816 pub type _bindgen_ty_1 = ::std::os::raw::c_uint; 1817 #[repr(C)] 1818 #[derive(Debug, Copy, Clone)] 1819 pub struct kvm_ioeventfd { 1820 pub datamatch: u64, 1821 pub addr: u64, 1822 pub len: u32, 1823 pub fd: i32, 1824 pub flags: u32, 1825 pub pad: [u8; 36usize], 1826 } 1827 impl Default for kvm_ioeventfd { default() -> Self1828 fn default() -> Self { 1829 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1830 unsafe { 1831 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1832 s.assume_init() 1833 } 1834 } 1835 } 1836 #[repr(C)] 1837 #[derive(Debug, Copy, Clone)] 1838 pub struct kvm_enable_cap { 1839 pub cap: u32, 1840 pub flags: u32, 1841 pub args: [u64; 4usize], 1842 pub pad: [u8; 64usize], 1843 } 1844 impl Default for kvm_enable_cap { default() -> Self1845 fn default() -> Self { 1846 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1847 unsafe { 1848 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1849 s.assume_init() 1850 } 1851 } 1852 } 1853 #[repr(C)] 1854 #[derive(Debug, Copy, Clone)] 1855 pub struct kvm_ppc_pvinfo { 1856 pub flags: u32, 1857 pub hcall: [u32; 4usize], 1858 pub pad: [u8; 108usize], 1859 } 1860 impl Default for kvm_ppc_pvinfo { default() -> Self1861 fn default() -> Self { 1862 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1863 unsafe { 1864 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1865 s.assume_init() 1866 } 1867 } 1868 } 1869 #[repr(C)] 1870 #[derive(Debug, Default, Copy, Clone)] 1871 pub struct kvm_ppc_one_page_size { 1872 pub page_shift: u32, 1873 pub pte_enc: u32, 1874 } 1875 #[repr(C)] 1876 #[derive(Debug, Default, Copy, Clone)] 1877 pub struct kvm_ppc_one_seg_page_size { 1878 pub page_shift: u32, 1879 pub slb_enc: u32, 1880 pub enc: [kvm_ppc_one_page_size; 8usize], 1881 } 1882 #[repr(C)] 1883 #[derive(Debug, Default, Copy, Clone)] 1884 pub struct kvm_ppc_smmu_info { 1885 pub flags: u64, 1886 pub slb_size: u32, 1887 pub data_keys: u16, 1888 pub instr_keys: u16, 1889 pub sps: [kvm_ppc_one_seg_page_size; 8usize], 1890 } 1891 #[repr(C)] 1892 #[derive(Debug, Default, Copy, Clone)] 1893 pub struct kvm_ppc_resize_hpt { 1894 pub flags: u64, 1895 pub shift: u32, 1896 pub pad: u32, 1897 } 1898 #[repr(C)] 1899 #[derive(Debug, Default, Copy, Clone)] 1900 pub struct kvm_irq_routing_irqchip { 1901 pub irqchip: u32, 1902 pub pin: u32, 1903 } 1904 #[repr(C)] 1905 #[derive(Copy, Clone)] 1906 pub struct kvm_irq_routing_msi { 1907 pub address_lo: u32, 1908 pub address_hi: u32, 1909 pub data: u32, 1910 pub __bindgen_anon_1: kvm_irq_routing_msi__bindgen_ty_1, 1911 } 1912 #[repr(C)] 1913 #[derive(Copy, Clone)] 1914 pub union kvm_irq_routing_msi__bindgen_ty_1 { 1915 pub pad: u32, 1916 pub devid: u32, 1917 } 1918 impl Default for kvm_irq_routing_msi__bindgen_ty_1 { default() -> Self1919 fn default() -> Self { 1920 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1921 unsafe { 1922 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1923 s.assume_init() 1924 } 1925 } 1926 } 1927 impl Default for kvm_irq_routing_msi { default() -> Self1928 fn default() -> Self { 1929 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1930 unsafe { 1931 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1932 s.assume_init() 1933 } 1934 } 1935 } 1936 #[repr(C)] 1937 #[derive(Debug, Default, Copy, Clone)] 1938 pub struct kvm_irq_routing_s390_adapter { 1939 pub ind_addr: u64, 1940 pub summary_addr: u64, 1941 pub ind_offset: u64, 1942 pub summary_offset: u32, 1943 pub adapter_id: u32, 1944 } 1945 #[repr(C)] 1946 #[derive(Debug, Default, Copy, Clone)] 1947 pub struct kvm_irq_routing_hv_sint { 1948 pub vcpu: u32, 1949 pub sint: u32, 1950 } 1951 #[repr(C)] 1952 #[derive(Debug, Default, Copy, Clone)] 1953 pub struct kvm_irq_routing_xen_evtchn { 1954 pub port: u32, 1955 pub vcpu: u32, 1956 pub priority: u32, 1957 } 1958 #[repr(C)] 1959 #[derive(Copy, Clone)] 1960 pub struct kvm_irq_routing_entry { 1961 pub gsi: u32, 1962 pub type_: u32, 1963 pub flags: u32, 1964 pub pad: u32, 1965 pub u: kvm_irq_routing_entry__bindgen_ty_1, 1966 } 1967 #[repr(C)] 1968 #[derive(Copy, Clone)] 1969 pub union kvm_irq_routing_entry__bindgen_ty_1 { 1970 pub irqchip: kvm_irq_routing_irqchip, 1971 pub msi: kvm_irq_routing_msi, 1972 pub adapter: kvm_irq_routing_s390_adapter, 1973 pub hv_sint: kvm_irq_routing_hv_sint, 1974 pub xen_evtchn: kvm_irq_routing_xen_evtchn, 1975 pub pad: [u32; 8usize], 1976 } 1977 impl Default for kvm_irq_routing_entry__bindgen_ty_1 { default() -> Self1978 fn default() -> Self { 1979 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1980 unsafe { 1981 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1982 s.assume_init() 1983 } 1984 } 1985 } 1986 impl Default for kvm_irq_routing_entry { default() -> Self1987 fn default() -> Self { 1988 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1989 unsafe { 1990 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1991 s.assume_init() 1992 } 1993 } 1994 } 1995 #[repr(C)] 1996 pub struct kvm_irq_routing { 1997 pub nr: u32, 1998 pub flags: u32, 1999 pub entries: __IncompleteArrayField<kvm_irq_routing_entry>, 2000 } 2001 impl Default for kvm_irq_routing { default() -> Self2002 fn default() -> Self { 2003 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2004 unsafe { 2005 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2006 s.assume_init() 2007 } 2008 } 2009 } 2010 #[repr(C)] 2011 #[derive(Debug, Default, Copy, Clone)] 2012 pub struct kvm_irqfd { 2013 pub fd: u32, 2014 pub gsi: u32, 2015 pub flags: u32, 2016 pub resamplefd: u32, 2017 pub pad: [u8; 16usize], 2018 } 2019 #[repr(C)] 2020 #[derive(Debug, Default, Copy, Clone)] 2021 pub struct kvm_clock_data { 2022 pub clock: u64, 2023 pub flags: u32, 2024 pub pad0: u32, 2025 pub realtime: u64, 2026 pub host_tsc: u64, 2027 pub pad: [u32; 4usize], 2028 } 2029 #[repr(C)] 2030 #[derive(Debug, Default, Copy, Clone)] 2031 pub struct kvm_config_tlb { 2032 pub params: u64, 2033 pub array: u64, 2034 pub mmu_type: u32, 2035 pub array_len: u32, 2036 } 2037 #[repr(C)] 2038 #[derive(Debug, Default, Copy, Clone)] 2039 pub struct kvm_dirty_tlb { 2040 pub bitmap: u64, 2041 pub num_dirty: u32, 2042 } 2043 #[repr(C)] 2044 #[derive(Debug, Default)] 2045 pub struct kvm_reg_list { 2046 pub n: u64, 2047 pub reg: __IncompleteArrayField<u64>, 2048 } 2049 #[repr(C)] 2050 #[derive(Debug, Default, Copy, Clone)] 2051 pub struct kvm_one_reg { 2052 pub id: u64, 2053 pub addr: u64, 2054 } 2055 #[repr(C)] 2056 #[derive(Debug, Default, Copy, Clone)] 2057 pub struct kvm_msi { 2058 pub address_lo: u32, 2059 pub address_hi: u32, 2060 pub data: u32, 2061 pub flags: u32, 2062 pub devid: u32, 2063 pub pad: [u8; 12usize], 2064 } 2065 #[repr(C)] 2066 #[derive(Debug, Default, Copy, Clone)] 2067 pub struct kvm_arm_device_addr { 2068 pub id: u64, 2069 pub addr: u64, 2070 } 2071 #[repr(C)] 2072 #[derive(Debug, Default, Copy, Clone)] 2073 pub struct kvm_create_device { 2074 pub type_: u32, 2075 pub fd: u32, 2076 pub flags: u32, 2077 } 2078 #[repr(C)] 2079 #[derive(Debug, Default, Copy, Clone)] 2080 pub struct kvm_device_attr { 2081 pub flags: u32, 2082 pub group: u32, 2083 pub attr: u64, 2084 pub addr: u64, 2085 } 2086 pub const kvm_device_type_KVM_DEV_TYPE_FSL_MPIC_20: kvm_device_type = 1; 2087 pub const kvm_device_type_KVM_DEV_TYPE_FSL_MPIC_42: kvm_device_type = 2; 2088 pub const kvm_device_type_KVM_DEV_TYPE_XICS: kvm_device_type = 3; 2089 pub const kvm_device_type_KVM_DEV_TYPE_VFIO: kvm_device_type = 4; 2090 pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_V2: kvm_device_type = 5; 2091 pub const kvm_device_type_KVM_DEV_TYPE_FLIC: kvm_device_type = 6; 2092 pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_V3: kvm_device_type = 7; 2093 pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_ITS: kvm_device_type = 8; 2094 pub const kvm_device_type_KVM_DEV_TYPE_XIVE: kvm_device_type = 9; 2095 pub const kvm_device_type_KVM_DEV_TYPE_ARM_PV_TIME: kvm_device_type = 10; 2096 pub const kvm_device_type_KVM_DEV_TYPE_RISCV_AIA: kvm_device_type = 11; 2097 pub const kvm_device_type_KVM_DEV_TYPE_MAX: kvm_device_type = 12; 2098 pub type kvm_device_type = ::std::os::raw::c_uint; 2099 #[repr(C)] 2100 #[derive(Debug, Default, Copy, Clone)] 2101 pub struct kvm_vfio_spapr_tce { 2102 pub groupfd: i32, 2103 pub tablefd: i32, 2104 } 2105 #[repr(C)] 2106 #[derive(Debug, Default, Copy, Clone)] 2107 pub struct kvm_s390_ucas_mapping { 2108 pub user_addr: u64, 2109 pub vcpu_addr: u64, 2110 pub length: u64, 2111 } 2112 #[repr(C)] 2113 #[derive(Debug, Default, Copy, Clone)] 2114 pub struct kvm_enc_region { 2115 pub addr: u64, 2116 pub size: u64, 2117 } 2118 #[repr(C)] 2119 #[derive(Debug, Default, Copy, Clone)] 2120 pub struct kvm_s390_pv_sec_parm { 2121 pub origin: u64, 2122 pub length: u64, 2123 } 2124 #[repr(C)] 2125 #[derive(Debug, Default, Copy, Clone)] 2126 pub struct kvm_s390_pv_unp { 2127 pub addr: u64, 2128 pub size: u64, 2129 pub tweak: u64, 2130 } 2131 pub const pv_cmd_dmp_id_KVM_PV_DUMP_INIT: pv_cmd_dmp_id = 0; 2132 pub const pv_cmd_dmp_id_KVM_PV_DUMP_CONFIG_STOR_STATE: pv_cmd_dmp_id = 1; 2133 pub const pv_cmd_dmp_id_KVM_PV_DUMP_COMPLETE: pv_cmd_dmp_id = 2; 2134 pub const pv_cmd_dmp_id_KVM_PV_DUMP_CPU: pv_cmd_dmp_id = 3; 2135 pub type pv_cmd_dmp_id = ::std::os::raw::c_uint; 2136 #[repr(C)] 2137 #[derive(Debug, Default, Copy, Clone)] 2138 pub struct kvm_s390_pv_dmp { 2139 pub subcmd: u64, 2140 pub buff_addr: u64, 2141 pub buff_len: u64, 2142 pub gaddr: u64, 2143 pub reserved: [u64; 4usize], 2144 } 2145 pub const pv_cmd_info_id_KVM_PV_INFO_VM: pv_cmd_info_id = 0; 2146 pub const pv_cmd_info_id_KVM_PV_INFO_DUMP: pv_cmd_info_id = 1; 2147 pub type pv_cmd_info_id = ::std::os::raw::c_uint; 2148 #[repr(C)] 2149 #[derive(Debug, Default, Copy, Clone)] 2150 pub struct kvm_s390_pv_info_dump { 2151 pub dump_cpu_buffer_len: u64, 2152 pub dump_config_mem_buffer_per_1m: u64, 2153 pub dump_config_finalize_len: u64, 2154 } 2155 #[repr(C)] 2156 #[derive(Debug, Default, Copy, Clone)] 2157 pub struct kvm_s390_pv_info_vm { 2158 pub inst_calls_list: [u64; 4usize], 2159 pub max_cpus: u64, 2160 pub max_guests: u64, 2161 pub max_guest_addr: u64, 2162 pub feature_indication: u64, 2163 } 2164 #[repr(C)] 2165 #[derive(Debug, Default, Copy, Clone)] 2166 pub struct kvm_s390_pv_info_header { 2167 pub id: u32, 2168 pub len_max: u32, 2169 pub len_written: u32, 2170 pub reserved: u32, 2171 } 2172 #[repr(C)] 2173 #[derive(Copy, Clone)] 2174 pub struct kvm_s390_pv_info { 2175 pub header: kvm_s390_pv_info_header, 2176 pub __bindgen_anon_1: kvm_s390_pv_info__bindgen_ty_1, 2177 } 2178 #[repr(C)] 2179 #[derive(Copy, Clone)] 2180 pub union kvm_s390_pv_info__bindgen_ty_1 { 2181 pub dump: kvm_s390_pv_info_dump, 2182 pub vm: kvm_s390_pv_info_vm, 2183 } 2184 impl Default for kvm_s390_pv_info__bindgen_ty_1 { default() -> Self2185 fn default() -> Self { 2186 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2187 unsafe { 2188 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2189 s.assume_init() 2190 } 2191 } 2192 } 2193 impl Default for kvm_s390_pv_info { default() -> Self2194 fn default() -> Self { 2195 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2196 unsafe { 2197 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2198 s.assume_init() 2199 } 2200 } 2201 } 2202 pub const pv_cmd_id_KVM_PV_ENABLE: pv_cmd_id = 0; 2203 pub const pv_cmd_id_KVM_PV_DISABLE: pv_cmd_id = 1; 2204 pub const pv_cmd_id_KVM_PV_SET_SEC_PARMS: pv_cmd_id = 2; 2205 pub const pv_cmd_id_KVM_PV_UNPACK: pv_cmd_id = 3; 2206 pub const pv_cmd_id_KVM_PV_VERIFY: pv_cmd_id = 4; 2207 pub const pv_cmd_id_KVM_PV_PREP_RESET: pv_cmd_id = 5; 2208 pub const pv_cmd_id_KVM_PV_UNSHARE_ALL: pv_cmd_id = 6; 2209 pub const pv_cmd_id_KVM_PV_INFO: pv_cmd_id = 7; 2210 pub const pv_cmd_id_KVM_PV_DUMP: pv_cmd_id = 8; 2211 pub const pv_cmd_id_KVM_PV_ASYNC_CLEANUP_PREPARE: pv_cmd_id = 9; 2212 pub const pv_cmd_id_KVM_PV_ASYNC_CLEANUP_PERFORM: pv_cmd_id = 10; 2213 pub type pv_cmd_id = ::std::os::raw::c_uint; 2214 #[repr(C)] 2215 #[derive(Debug, Default, Copy, Clone)] 2216 pub struct kvm_pv_cmd { 2217 pub cmd: u32, 2218 pub rc: u16, 2219 pub rrc: u16, 2220 pub data: u64, 2221 pub flags: u32, 2222 pub reserved: [u32; 3usize], 2223 } 2224 #[repr(C)] 2225 #[derive(Copy, Clone)] 2226 pub struct kvm_xen_hvm_attr { 2227 pub type_: u16, 2228 pub pad: [u16; 3usize], 2229 pub u: kvm_xen_hvm_attr__bindgen_ty_1, 2230 } 2231 #[repr(C)] 2232 #[derive(Copy, Clone)] 2233 pub union kvm_xen_hvm_attr__bindgen_ty_1 { 2234 pub long_mode: u8, 2235 pub vector: u8, 2236 pub runstate_update_flag: u8, 2237 pub shared_info: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_1, 2238 pub evtchn: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2, 2239 pub xen_version: u32, 2240 pub pad: [u64; 8usize], 2241 } 2242 #[repr(C)] 2243 #[derive(Debug, Default, Copy, Clone)] 2244 pub struct kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_1 { 2245 pub gfn: u64, 2246 } 2247 #[repr(C)] 2248 #[derive(Copy, Clone)] 2249 pub struct kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2 { 2250 pub send_port: u32, 2251 pub type_: u32, 2252 pub flags: u32, 2253 pub deliver: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1, 2254 } 2255 #[repr(C)] 2256 #[derive(Copy, Clone)] 2257 pub union kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 { 2258 pub port: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1, 2259 pub eventfd: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_2, 2260 pub padding: [u32; 4usize], 2261 } 2262 #[repr(C)] 2263 #[derive(Debug, Default, Copy, Clone)] 2264 pub struct kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1 { 2265 pub port: u32, 2266 pub vcpu: u32, 2267 pub priority: u32, 2268 } 2269 #[repr(C)] 2270 #[derive(Debug, Default, Copy, Clone)] 2271 pub struct kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_2 { 2272 pub port: u32, 2273 pub fd: i32, 2274 } 2275 impl Default for kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 { default() -> Self2276 fn default() -> Self { 2277 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2278 unsafe { 2279 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2280 s.assume_init() 2281 } 2282 } 2283 } 2284 impl Default for kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2 { default() -> Self2285 fn default() -> Self { 2286 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2287 unsafe { 2288 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2289 s.assume_init() 2290 } 2291 } 2292 } 2293 impl Default for kvm_xen_hvm_attr__bindgen_ty_1 { default() -> Self2294 fn default() -> Self { 2295 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2296 unsafe { 2297 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2298 s.assume_init() 2299 } 2300 } 2301 } 2302 impl Default for kvm_xen_hvm_attr { default() -> Self2303 fn default() -> Self { 2304 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2305 unsafe { 2306 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2307 s.assume_init() 2308 } 2309 } 2310 } 2311 #[repr(C)] 2312 #[derive(Copy, Clone)] 2313 pub struct kvm_xen_vcpu_attr { 2314 pub type_: u16, 2315 pub pad: [u16; 3usize], 2316 pub u: kvm_xen_vcpu_attr__bindgen_ty_1, 2317 } 2318 #[repr(C)] 2319 #[derive(Copy, Clone)] 2320 pub union kvm_xen_vcpu_attr__bindgen_ty_1 { 2321 pub gpa: u64, 2322 pub pad: [u64; 8usize], 2323 pub runstate: kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_1, 2324 pub vcpu_id: u32, 2325 pub timer: kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_2, 2326 pub vector: u8, 2327 } 2328 #[repr(C)] 2329 #[derive(Debug, Default, Copy, Clone)] 2330 pub struct kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_1 { 2331 pub state: u64, 2332 pub state_entry_time: u64, 2333 pub time_running: u64, 2334 pub time_runnable: u64, 2335 pub time_blocked: u64, 2336 pub time_offline: u64, 2337 } 2338 #[repr(C)] 2339 #[derive(Debug, Default, Copy, Clone)] 2340 pub struct kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_2 { 2341 pub port: u32, 2342 pub priority: u32, 2343 pub expires_ns: u64, 2344 } 2345 impl Default for kvm_xen_vcpu_attr__bindgen_ty_1 { default() -> Self2346 fn default() -> Self { 2347 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2348 unsafe { 2349 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2350 s.assume_init() 2351 } 2352 } 2353 } 2354 impl Default for kvm_xen_vcpu_attr { default() -> Self2355 fn default() -> Self { 2356 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2357 unsafe { 2358 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2359 s.assume_init() 2360 } 2361 } 2362 } 2363 pub const sev_cmd_id_KVM_SEV_INIT: sev_cmd_id = 0; 2364 pub const sev_cmd_id_KVM_SEV_ES_INIT: sev_cmd_id = 1; 2365 pub const sev_cmd_id_KVM_SEV_LAUNCH_START: sev_cmd_id = 2; 2366 pub const sev_cmd_id_KVM_SEV_LAUNCH_UPDATE_DATA: sev_cmd_id = 3; 2367 pub const sev_cmd_id_KVM_SEV_LAUNCH_UPDATE_VMSA: sev_cmd_id = 4; 2368 pub const sev_cmd_id_KVM_SEV_LAUNCH_SECRET: sev_cmd_id = 5; 2369 pub const sev_cmd_id_KVM_SEV_LAUNCH_MEASURE: sev_cmd_id = 6; 2370 pub const sev_cmd_id_KVM_SEV_LAUNCH_FINISH: sev_cmd_id = 7; 2371 pub const sev_cmd_id_KVM_SEV_SEND_START: sev_cmd_id = 8; 2372 pub const sev_cmd_id_KVM_SEV_SEND_UPDATE_DATA: sev_cmd_id = 9; 2373 pub const sev_cmd_id_KVM_SEV_SEND_UPDATE_VMSA: sev_cmd_id = 10; 2374 pub const sev_cmd_id_KVM_SEV_SEND_FINISH: sev_cmd_id = 11; 2375 pub const sev_cmd_id_KVM_SEV_RECEIVE_START: sev_cmd_id = 12; 2376 pub const sev_cmd_id_KVM_SEV_RECEIVE_UPDATE_DATA: sev_cmd_id = 13; 2377 pub const sev_cmd_id_KVM_SEV_RECEIVE_UPDATE_VMSA: sev_cmd_id = 14; 2378 pub const sev_cmd_id_KVM_SEV_RECEIVE_FINISH: sev_cmd_id = 15; 2379 pub const sev_cmd_id_KVM_SEV_GUEST_STATUS: sev_cmd_id = 16; 2380 pub const sev_cmd_id_KVM_SEV_DBG_DECRYPT: sev_cmd_id = 17; 2381 pub const sev_cmd_id_KVM_SEV_DBG_ENCRYPT: sev_cmd_id = 18; 2382 pub const sev_cmd_id_KVM_SEV_CERT_EXPORT: sev_cmd_id = 19; 2383 pub const sev_cmd_id_KVM_SEV_GET_ATTESTATION_REPORT: sev_cmd_id = 20; 2384 pub const sev_cmd_id_KVM_SEV_SEND_CANCEL: sev_cmd_id = 21; 2385 pub const sev_cmd_id_KVM_SEV_NR_MAX: sev_cmd_id = 22; 2386 pub type sev_cmd_id = ::std::os::raw::c_uint; 2387 #[repr(C)] 2388 #[derive(Debug, Default, Copy, Clone)] 2389 pub struct kvm_sev_cmd { 2390 pub id: u32, 2391 pub data: u64, 2392 pub error: u32, 2393 pub sev_fd: u32, 2394 } 2395 #[repr(C)] 2396 #[derive(Debug, Default, Copy, Clone)] 2397 pub struct kvm_sev_launch_start { 2398 pub handle: u32, 2399 pub policy: u32, 2400 pub dh_uaddr: u64, 2401 pub dh_len: u32, 2402 pub session_uaddr: u64, 2403 pub session_len: u32, 2404 } 2405 #[repr(C)] 2406 #[derive(Debug, Default, Copy, Clone)] 2407 pub struct kvm_sev_launch_update_data { 2408 pub uaddr: u64, 2409 pub len: u32, 2410 } 2411 #[repr(C)] 2412 #[derive(Debug, Default, Copy, Clone)] 2413 pub struct kvm_sev_launch_secret { 2414 pub hdr_uaddr: u64, 2415 pub hdr_len: u32, 2416 pub guest_uaddr: u64, 2417 pub guest_len: u32, 2418 pub trans_uaddr: u64, 2419 pub trans_len: u32, 2420 } 2421 #[repr(C)] 2422 #[derive(Debug, Default, Copy, Clone)] 2423 pub struct kvm_sev_launch_measure { 2424 pub uaddr: u64, 2425 pub len: u32, 2426 } 2427 #[repr(C)] 2428 #[derive(Debug, Default, Copy, Clone)] 2429 pub struct kvm_sev_guest_status { 2430 pub handle: u32, 2431 pub policy: u32, 2432 pub state: u32, 2433 } 2434 #[repr(C)] 2435 #[derive(Debug, Default, Copy, Clone)] 2436 pub struct kvm_sev_dbg { 2437 pub src_uaddr: u64, 2438 pub dst_uaddr: u64, 2439 pub len: u32, 2440 } 2441 #[repr(C)] 2442 #[derive(Debug, Default, Copy, Clone)] 2443 pub struct kvm_sev_attestation_report { 2444 pub mnonce: [u8; 16usize], 2445 pub uaddr: u64, 2446 pub len: u32, 2447 } 2448 #[repr(C)] 2449 #[derive(Debug, Default, Copy, Clone)] 2450 pub struct kvm_sev_send_start { 2451 pub policy: u32, 2452 pub pdh_cert_uaddr: u64, 2453 pub pdh_cert_len: u32, 2454 pub plat_certs_uaddr: u64, 2455 pub plat_certs_len: u32, 2456 pub amd_certs_uaddr: u64, 2457 pub amd_certs_len: u32, 2458 pub session_uaddr: u64, 2459 pub session_len: u32, 2460 } 2461 #[repr(C)] 2462 #[derive(Debug, Default, Copy, Clone)] 2463 pub struct kvm_sev_send_update_data { 2464 pub hdr_uaddr: u64, 2465 pub hdr_len: u32, 2466 pub guest_uaddr: u64, 2467 pub guest_len: u32, 2468 pub trans_uaddr: u64, 2469 pub trans_len: u32, 2470 } 2471 #[repr(C)] 2472 #[derive(Debug, Default, Copy, Clone)] 2473 pub struct kvm_sev_receive_start { 2474 pub handle: u32, 2475 pub policy: u32, 2476 pub pdh_uaddr: u64, 2477 pub pdh_len: u32, 2478 pub session_uaddr: u64, 2479 pub session_len: u32, 2480 } 2481 #[repr(C)] 2482 #[derive(Debug, Default, Copy, Clone)] 2483 pub struct kvm_sev_receive_update_data { 2484 pub hdr_uaddr: u64, 2485 pub hdr_len: u32, 2486 pub guest_uaddr: u64, 2487 pub guest_len: u32, 2488 pub trans_uaddr: u64, 2489 pub trans_len: u32, 2490 } 2491 #[repr(C)] 2492 #[derive(Copy, Clone)] 2493 pub struct kvm_assigned_pci_dev { 2494 pub assigned_dev_id: u32, 2495 pub busnr: u32, 2496 pub devfn: u32, 2497 pub flags: u32, 2498 pub segnr: u32, 2499 pub __bindgen_anon_1: kvm_assigned_pci_dev__bindgen_ty_1, 2500 } 2501 #[repr(C)] 2502 #[derive(Copy, Clone)] 2503 pub union kvm_assigned_pci_dev__bindgen_ty_1 { 2504 pub reserved: [u32; 11usize], 2505 } 2506 impl Default for kvm_assigned_pci_dev__bindgen_ty_1 { default() -> Self2507 fn default() -> Self { 2508 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2509 unsafe { 2510 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2511 s.assume_init() 2512 } 2513 } 2514 } 2515 impl Default for kvm_assigned_pci_dev { default() -> Self2516 fn default() -> Self { 2517 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2518 unsafe { 2519 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2520 s.assume_init() 2521 } 2522 } 2523 } 2524 #[repr(C)] 2525 #[derive(Copy, Clone)] 2526 pub struct kvm_assigned_irq { 2527 pub assigned_dev_id: u32, 2528 pub host_irq: u32, 2529 pub guest_irq: u32, 2530 pub flags: u32, 2531 pub __bindgen_anon_1: kvm_assigned_irq__bindgen_ty_1, 2532 } 2533 #[repr(C)] 2534 #[derive(Copy, Clone)] 2535 pub union kvm_assigned_irq__bindgen_ty_1 { 2536 pub reserved: [u32; 12usize], 2537 } 2538 impl Default for kvm_assigned_irq__bindgen_ty_1 { default() -> Self2539 fn default() -> Self { 2540 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2541 unsafe { 2542 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2543 s.assume_init() 2544 } 2545 } 2546 } 2547 impl Default for kvm_assigned_irq { default() -> Self2548 fn default() -> Self { 2549 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2550 unsafe { 2551 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2552 s.assume_init() 2553 } 2554 } 2555 } 2556 #[repr(C)] 2557 #[derive(Debug, Default, Copy, Clone)] 2558 pub struct kvm_assigned_msix_nr { 2559 pub assigned_dev_id: u32, 2560 pub entry_nr: u16, 2561 pub padding: u16, 2562 } 2563 #[repr(C)] 2564 #[derive(Debug, Default, Copy, Clone)] 2565 pub struct kvm_assigned_msix_entry { 2566 pub assigned_dev_id: u32, 2567 pub gsi: u32, 2568 pub entry: u16, 2569 pub padding: [u16; 3usize], 2570 } 2571 #[repr(C)] 2572 #[derive(Debug, Default, Copy, Clone)] 2573 pub struct kvm_hyperv_eventfd { 2574 pub conn_id: u32, 2575 pub fd: i32, 2576 pub flags: u32, 2577 pub padding: [u32; 3usize], 2578 } 2579 #[repr(C)] 2580 #[derive(Debug, Default, Copy, Clone)] 2581 pub struct kvm_dirty_gfn { 2582 pub flags: u32, 2583 pub slot: u32, 2584 pub offset: u64, 2585 } 2586 #[repr(C)] 2587 #[derive(Debug, Default, Copy, Clone)] 2588 pub struct kvm_stats_header { 2589 pub flags: u32, 2590 pub name_size: u32, 2591 pub num_desc: u32, 2592 pub id_offset: u32, 2593 pub desc_offset: u32, 2594 pub data_offset: u32, 2595 } 2596 #[repr(C)] 2597 #[derive(Debug, Default)] 2598 pub struct kvm_stats_desc { 2599 pub flags: u32, 2600 pub exponent: i16, 2601 pub size: u16, 2602 pub offset: u32, 2603 pub bucket_size: u32, 2604 pub name: __IncompleteArrayField<::std::os::raw::c_char>, 2605 } 2606 #[repr(C)] 2607 #[derive(Copy, Clone)] 2608 pub struct kvm_s390_zpci_op { 2609 pub fh: u32, 2610 pub op: u8, 2611 pub pad: [u8; 3usize], 2612 pub u: kvm_s390_zpci_op__bindgen_ty_1, 2613 } 2614 #[repr(C)] 2615 #[derive(Copy, Clone)] 2616 pub union kvm_s390_zpci_op__bindgen_ty_1 { 2617 pub reg_aen: kvm_s390_zpci_op__bindgen_ty_1__bindgen_ty_1, 2618 pub reserved: [u64; 8usize], 2619 } 2620 #[repr(C)] 2621 #[derive(Debug, Default, Copy, Clone)] 2622 pub struct kvm_s390_zpci_op__bindgen_ty_1__bindgen_ty_1 { 2623 pub ibv: u64, 2624 pub sb: u64, 2625 pub flags: u32, 2626 pub noi: u32, 2627 pub isc: u8, 2628 pub sbo: u8, 2629 pub pad: u16, 2630 } 2631 impl Default for kvm_s390_zpci_op__bindgen_ty_1 { default() -> Self2632 fn default() -> Self { 2633 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2634 unsafe { 2635 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2636 s.assume_init() 2637 } 2638 } 2639 } 2640 impl Default for kvm_s390_zpci_op { default() -> Self2641 fn default() -> Self { 2642 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2643 unsafe { 2644 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2645 s.assume_init() 2646 } 2647 } 2648 } 2649