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