1 /* automatically generated by tools/bindgen-all-the-things */ 2 3 #![allow(clippy::missing_safety_doc)] 4 #![allow(clippy::upper_case_acronyms)] 5 #![allow(non_upper_case_globals)] 6 #![allow(non_camel_case_types)] 7 #![allow(non_snake_case)] 8 #![allow(dead_code)] 9 10 // Added by kvm_sys/bindgen.sh 11 pub const KVM_SYSTEM_EVENT_S2IDLE: u32 = 4; 12 // TODO(tjeznach): Remove this when reporting KVM_IOAPIC_NUM_PINS is no longer required. 13 pub const KVM_CAP_IOAPIC_NUM_PINS: u32 = 8191; 14 // TODO(qwandor): Update this once the pKVM patches are merged upstream with a stable capability ID. 15 pub const KVM_CAP_ARM_PROTECTED_VM: u32 = 0xffbadab1; 16 pub const KVM_CAP_ARM_PROTECTED_VM_FLAGS_SET_FW_IPA: u32 = 0; 17 pub const KVM_CAP_ARM_PROTECTED_VM_FLAGS_INFO: u32 = 1; 18 pub const KVM_VM_TYPE_ARM_PROTECTED: u32 = 0x80000000; 19 20 #[repr(C)] 21 #[derive(Default)] 22 pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]); 23 impl<T> __IncompleteArrayField<T> { 24 #[inline] new() -> Self25 pub const fn new() -> Self { 26 __IncompleteArrayField(::std::marker::PhantomData, []) 27 } 28 #[inline] as_ptr(&self) -> *const T29 pub fn as_ptr(&self) -> *const T { 30 self as *const _ as *const T 31 } 32 #[inline] as_mut_ptr(&mut self) -> *mut T33 pub fn as_mut_ptr(&mut self) -> *mut T { 34 self as *mut _ as *mut T 35 } 36 #[inline] as_slice(&self, len: usize) -> &[T]37 pub unsafe fn as_slice(&self, len: usize) -> &[T] { 38 ::std::slice::from_raw_parts(self.as_ptr(), len) 39 } 40 #[inline] as_mut_slice(&mut self, len: usize) -> &mut [T]41 pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { 42 ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len) 43 } 44 } 45 impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> { fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result46 fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { 47 fmt.write_str("__IncompleteArrayField") 48 } 49 } 50 pub const KVM_SPSR_EL1: u32 = 0; 51 pub const KVM_SPSR_SVC: u32 = 0; 52 pub const KVM_SPSR_ABT: u32 = 1; 53 pub const KVM_SPSR_UND: u32 = 2; 54 pub const KVM_SPSR_IRQ: u32 = 3; 55 pub const KVM_SPSR_FIQ: u32 = 4; 56 pub const KVM_NR_SPSR: u32 = 5; 57 pub const PSCI_0_2_FN_BASE: u32 = 2214592512; 58 pub const PSCI_0_2_64BIT: u32 = 1073741824; 59 pub const PSCI_0_2_FN64_BASE: u32 = 3288334336; 60 pub const PSCI_0_2_POWER_STATE_ID_MASK: u32 = 65535; 61 pub const PSCI_0_2_POWER_STATE_ID_SHIFT: u32 = 0; 62 pub const PSCI_0_2_POWER_STATE_TYPE_SHIFT: u32 = 16; 63 pub const PSCI_0_2_POWER_STATE_TYPE_MASK: u32 = 65536; 64 pub const PSCI_0_2_POWER_STATE_AFFL_SHIFT: u32 = 24; 65 pub const PSCI_0_2_POWER_STATE_AFFL_MASK: u32 = 50331648; 66 pub const PSCI_1_0_EXT_POWER_STATE_ID_MASK: u32 = 268435455; 67 pub const PSCI_1_0_EXT_POWER_STATE_ID_SHIFT: u32 = 0; 68 pub const PSCI_1_0_EXT_POWER_STATE_TYPE_SHIFT: u32 = 30; 69 pub const PSCI_1_0_EXT_POWER_STATE_TYPE_MASK: u32 = 1073741824; 70 pub const PSCI_0_2_AFFINITY_LEVEL_ON: u32 = 0; 71 pub const PSCI_0_2_AFFINITY_LEVEL_OFF: u32 = 1; 72 pub const PSCI_0_2_AFFINITY_LEVEL_ON_PENDING: u32 = 2; 73 pub const PSCI_0_2_TOS_UP_MIGRATE: u32 = 0; 74 pub const PSCI_0_2_TOS_UP_NO_MIGRATE: u32 = 1; 75 pub const PSCI_0_2_TOS_MP: u32 = 2; 76 pub const PSCI_1_1_RESET_TYPE_SYSTEM_WARM_RESET: u32 = 0; 77 pub const PSCI_1_1_RESET_TYPE_VENDOR_START: u32 = 2147483648; 78 pub const PSCI_VERSION_MAJOR_SHIFT: u32 = 16; 79 pub const PSCI_VERSION_MINOR_MASK: u32 = 65535; 80 pub const PSCI_VERSION_MAJOR_MASK: i32 = -65536; 81 pub const PSCI_1_0_FEATURES_CPU_SUSPEND_PF_SHIFT: u32 = 1; 82 pub const PSCI_1_0_FEATURES_CPU_SUSPEND_PF_MASK: u32 = 2; 83 pub const PSCI_1_0_SUSPEND_MODE_PC: u32 = 0; 84 pub const PSCI_1_0_SUSPEND_MODE_OSI: u32 = 1; 85 pub const PSCI_RET_SUCCESS: u32 = 0; 86 pub const PSCI_RET_NOT_SUPPORTED: i32 = -1; 87 pub const PSCI_RET_INVALID_PARAMS: i32 = -2; 88 pub const PSCI_RET_DENIED: i32 = -3; 89 pub const PSCI_RET_ALREADY_ON: i32 = -4; 90 pub const PSCI_RET_ON_PENDING: i32 = -5; 91 pub const PSCI_RET_INTERNAL_FAILURE: i32 = -6; 92 pub const PSCI_RET_NOT_PRESENT: i32 = -7; 93 pub const PSCI_RET_DISABLED: i32 = -8; 94 pub const PSCI_RET_INVALID_ADDRESS: i32 = -9; 95 pub const HWCAP_FP: u32 = 1; 96 pub const HWCAP_ASIMD: u32 = 2; 97 pub const HWCAP_EVTSTRM: u32 = 4; 98 pub const HWCAP_AES: u32 = 8; 99 pub const HWCAP_PMULL: u32 = 16; 100 pub const HWCAP_SHA1: u32 = 32; 101 pub const HWCAP_SHA2: u32 = 64; 102 pub const HWCAP_CRC32: u32 = 128; 103 pub const HWCAP_ATOMICS: u32 = 256; 104 pub const HWCAP_FPHP: u32 = 512; 105 pub const HWCAP_ASIMDHP: u32 = 1024; 106 pub const HWCAP_CPUID: u32 = 2048; 107 pub const HWCAP_ASIMDRDM: u32 = 4096; 108 pub const HWCAP_JSCVT: u32 = 8192; 109 pub const HWCAP_FCMA: u32 = 16384; 110 pub const HWCAP_LRCPC: u32 = 32768; 111 pub const HWCAP_DCPOP: u32 = 65536; 112 pub const HWCAP_SHA3: u32 = 131072; 113 pub const HWCAP_SM3: u32 = 262144; 114 pub const HWCAP_SM4: u32 = 524288; 115 pub const HWCAP_ASIMDDP: u32 = 1048576; 116 pub const HWCAP_SHA512: u32 = 2097152; 117 pub const HWCAP_SVE: u32 = 4194304; 118 pub const HWCAP_ASIMDFHM: u32 = 8388608; 119 pub const HWCAP_DIT: u32 = 16777216; 120 pub const HWCAP_USCAT: u32 = 33554432; 121 pub const HWCAP_ILRCPC: u32 = 67108864; 122 pub const HWCAP_FLAGM: u32 = 134217728; 123 pub const HWCAP_SSBS: u32 = 268435456; 124 pub const HWCAP_SB: u32 = 536870912; 125 pub const HWCAP_PACA: u32 = 1073741824; 126 pub const HWCAP_PACG: u32 = 2147483648; 127 pub const HWCAP2_DCPODP: u32 = 1; 128 pub const HWCAP2_SVE2: u32 = 2; 129 pub const HWCAP2_SVEAES: u32 = 4; 130 pub const HWCAP2_SVEPMULL: u32 = 8; 131 pub const HWCAP2_SVEBITPERM: u32 = 16; 132 pub const HWCAP2_SVESHA3: u32 = 32; 133 pub const HWCAP2_SVESM4: u32 = 64; 134 pub const HWCAP2_FLAGM2: u32 = 128; 135 pub const HWCAP2_FRINT: u32 = 256; 136 pub const HWCAP2_SVEI8MM: u32 = 512; 137 pub const HWCAP2_SVEF32MM: u32 = 1024; 138 pub const HWCAP2_SVEF64MM: u32 = 2048; 139 pub const HWCAP2_SVEBF16: u32 = 4096; 140 pub const HWCAP2_I8MM: u32 = 8192; 141 pub const HWCAP2_BF16: u32 = 16384; 142 pub const HWCAP2_DGH: u32 = 32768; 143 pub const HWCAP2_RNG: u32 = 65536; 144 pub const HWCAP2_BTI: u32 = 131072; 145 pub const HWCAP2_MTE: u32 = 262144; 146 pub const HWCAP2_ECV: u32 = 524288; 147 pub const HWCAP2_AFP: u32 = 1048576; 148 pub const HWCAP2_RPRES: u32 = 2097152; 149 pub const HWCAP2_MTE3: u32 = 4194304; 150 pub const HWCAP2_SME: u32 = 8388608; 151 pub const HWCAP2_SME_I16I64: u32 = 16777216; 152 pub const HWCAP2_SME_F64F64: u32 = 33554432; 153 pub const HWCAP2_SME_I8I32: u32 = 67108864; 154 pub const HWCAP2_SME_F16F32: u32 = 134217728; 155 pub const HWCAP2_SME_B16F32: u32 = 268435456; 156 pub const HWCAP2_SME_F32F32: u32 = 536870912; 157 pub const HWCAP2_SME_FA64: u32 = 1073741824; 158 pub const HWCAP2_WFXT: u32 = 2147483648; 159 pub const HWCAP2_EBF16: u64 = 4294967296; 160 pub const HWCAP2_SVE_EBF16: u64 = 8589934592; 161 pub const __SVE_VQ_BYTES: u32 = 16; 162 pub const __SVE_VQ_MIN: u32 = 1; 163 pub const __SVE_VQ_MAX: u32 = 512; 164 pub const __SVE_VL_MIN: u32 = 16; 165 pub const __SVE_VL_MAX: u32 = 8192; 166 pub const __SVE_NUM_ZREGS: u32 = 32; 167 pub const __SVE_NUM_PREGS: u32 = 16; 168 pub const __SVE_ZREGS_OFFSET: u32 = 0; 169 pub const PSR_MODE_EL0t: u32 = 0; 170 pub const PSR_MODE_EL1t: u32 = 4; 171 pub const PSR_MODE_EL1h: u32 = 5; 172 pub const PSR_MODE_EL2t: u32 = 8; 173 pub const PSR_MODE_EL2h: u32 = 9; 174 pub const PSR_MODE_EL3t: u32 = 12; 175 pub const PSR_MODE_EL3h: u32 = 13; 176 pub const PSR_MODE_MASK: u32 = 15; 177 pub const PSR_MODE32_BIT: u32 = 16; 178 pub const PSR_F_BIT: u32 = 64; 179 pub const PSR_I_BIT: u32 = 128; 180 pub const PSR_A_BIT: u32 = 256; 181 pub const PSR_D_BIT: u32 = 512; 182 pub const PSR_BTYPE_MASK: u32 = 3072; 183 pub const PSR_SSBS_BIT: u32 = 4096; 184 pub const PSR_PAN_BIT: u32 = 4194304; 185 pub const PSR_UAO_BIT: u32 = 8388608; 186 pub const PSR_DIT_BIT: u32 = 16777216; 187 pub const PSR_TCO_BIT: u32 = 33554432; 188 pub const PSR_V_BIT: u32 = 268435456; 189 pub const PSR_C_BIT: u32 = 536870912; 190 pub const PSR_Z_BIT: u32 = 1073741824; 191 pub const PSR_N_BIT: u32 = 2147483648; 192 pub const PSR_BTYPE_SHIFT: u32 = 10; 193 pub const PSR_f: u32 = 4278190080; 194 pub const PSR_s: u32 = 16711680; 195 pub const PSR_x: u32 = 65280; 196 pub const PSR_c: u32 = 255; 197 pub const PSR_BTYPE_NONE: u32 = 0; 198 pub const PSR_BTYPE_JC: u32 = 1024; 199 pub const PSR_BTYPE_C: u32 = 2048; 200 pub const PSR_BTYPE_J: u32 = 3072; 201 pub const PTRACE_SYSEMU: u32 = 31; 202 pub const PTRACE_SYSEMU_SINGLESTEP: u32 = 32; 203 pub const PTRACE_PEEKMTETAGS: u32 = 33; 204 pub const PTRACE_POKEMTETAGS: u32 = 34; 205 pub const SVE_PT_REGS_MASK: u32 = 1; 206 pub const SVE_PT_REGS_FPSIMD: u32 = 0; 207 pub const SVE_PT_REGS_SVE: u32 = 1; 208 pub const SVE_PT_VL_INHERIT: u32 = 2; 209 pub const SVE_PT_VL_ONEXEC: u32 = 4; 210 pub const ZA_PT_VL_INHERIT: u32 = 2; 211 pub const ZA_PT_VL_ONEXEC: u32 = 4; 212 pub const KVM_COALESCED_MMIO_PAGE_OFFSET: u32 = 1; 213 pub const KVM_ARM_TARGET_AEM_V8: u32 = 0; 214 pub const KVM_ARM_TARGET_FOUNDATION_V8: u32 = 1; 215 pub const KVM_ARM_TARGET_CORTEX_A57: u32 = 2; 216 pub const KVM_ARM_TARGET_XGENE_POTENZA: u32 = 3; 217 pub const KVM_ARM_TARGET_CORTEX_A53: u32 = 4; 218 pub const KVM_ARM_TARGET_GENERIC_V8: u32 = 5; 219 pub const KVM_ARM_NUM_TARGETS: u32 = 6; 220 pub const KVM_ARM_DEVICE_TYPE_SHIFT: u32 = 0; 221 pub const KVM_ARM_DEVICE_ID_SHIFT: u32 = 16; 222 pub const KVM_ARM_DEVICE_VGIC_V2: u32 = 0; 223 pub const KVM_VGIC_V2_ADDR_TYPE_DIST: u32 = 0; 224 pub const KVM_VGIC_V2_ADDR_TYPE_CPU: u32 = 1; 225 pub const KVM_VGIC_V2_DIST_SIZE: u32 = 4096; 226 pub const KVM_VGIC_V2_CPU_SIZE: u32 = 8192; 227 pub const KVM_VGIC_V3_ADDR_TYPE_DIST: u32 = 2; 228 pub const KVM_VGIC_V3_ADDR_TYPE_REDIST: u32 = 3; 229 pub const KVM_VGIC_ITS_ADDR_TYPE: u32 = 4; 230 pub const KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION: u32 = 5; 231 pub const KVM_ARM_VCPU_POWER_OFF: u32 = 0; 232 pub const KVM_ARM_VCPU_EL1_32BIT: u32 = 1; 233 pub const KVM_ARM_VCPU_PSCI_0_2: u32 = 2; 234 pub const KVM_ARM_VCPU_PMU_V3: u32 = 3; 235 pub const KVM_ARM_VCPU_SVE: u32 = 4; 236 pub const KVM_ARM_VCPU_PTRAUTH_ADDRESS: u32 = 5; 237 pub const KVM_ARM_VCPU_PTRAUTH_GENERIC: u32 = 6; 238 pub const KVM_ARM_MAX_DBG_REGS: u32 = 16; 239 pub const KVM_DEBUG_ARCH_HSR_HIGH_VALID: u32 = 1; 240 pub const KVM_GUESTDBG_USE_SW_BP: u32 = 65536; 241 pub const KVM_GUESTDBG_USE_HW: u32 = 131072; 242 pub const KVM_PMU_EVENT_ALLOW: u32 = 0; 243 pub const KVM_PMU_EVENT_DENY: u32 = 1; 244 pub const KVM_ARM_TAGS_TO_GUEST: u32 = 0; 245 pub const KVM_ARM_TAGS_FROM_GUEST: u32 = 1; 246 pub const KVM_REG_ARM_COPROC_MASK: u32 = 268369920; 247 pub const KVM_REG_ARM_COPROC_SHIFT: u32 = 16; 248 pub const KVM_REG_ARM_CORE: u32 = 1048576; 249 pub const KVM_REG_ARM_DEMUX: u32 = 1114112; 250 pub const KVM_REG_ARM_DEMUX_ID_MASK: u32 = 65280; 251 pub const KVM_REG_ARM_DEMUX_ID_SHIFT: u32 = 8; 252 pub const KVM_REG_ARM_DEMUX_ID_CCSIDR: u32 = 0; 253 pub const KVM_REG_ARM_DEMUX_VAL_MASK: u32 = 255; 254 pub const KVM_REG_ARM_DEMUX_VAL_SHIFT: u32 = 0; 255 pub const KVM_REG_ARM64_SYSREG: u32 = 1245184; 256 pub const KVM_REG_ARM64_SYSREG_OP0_MASK: u32 = 49152; 257 pub const KVM_REG_ARM64_SYSREG_OP0_SHIFT: u32 = 14; 258 pub const KVM_REG_ARM64_SYSREG_OP1_MASK: u32 = 14336; 259 pub const KVM_REG_ARM64_SYSREG_OP1_SHIFT: u32 = 11; 260 pub const KVM_REG_ARM64_SYSREG_CRN_MASK: u32 = 1920; 261 pub const KVM_REG_ARM64_SYSREG_CRN_SHIFT: u32 = 7; 262 pub const KVM_REG_ARM64_SYSREG_CRM_MASK: u32 = 120; 263 pub const KVM_REG_ARM64_SYSREG_CRM_SHIFT: u32 = 3; 264 pub const KVM_REG_ARM64_SYSREG_OP2_MASK: u32 = 7; 265 pub const KVM_REG_ARM64_SYSREG_OP2_SHIFT: u32 = 0; 266 pub const KVM_REG_ARM_FW: u32 = 1310720; 267 pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_1_NOT_AVAIL: u32 = 0; 268 pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_1_AVAIL: u32 = 1; 269 pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_1_NOT_REQUIRED: u32 = 2; 270 pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_NOT_AVAIL: u32 = 0; 271 pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_UNKNOWN: u32 = 1; 272 pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_AVAIL: u32 = 2; 273 pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_NOT_REQUIRED: u32 = 3; 274 pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_ENABLED: u32 = 16; 275 pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_3_NOT_AVAIL: u32 = 0; 276 pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_3_AVAIL: u32 = 1; 277 pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_3_NOT_REQUIRED: u32 = 2; 278 pub const KVM_REG_ARM64_SVE: u32 = 1376256; 279 pub const KVM_REG_ARM64_SVE_ZREG_BASE: u32 = 0; 280 pub const KVM_REG_ARM64_SVE_PREG_BASE: u32 = 1024; 281 pub const KVM_REG_ARM64_SVE_FFR_BASE: u32 = 1536; 282 pub const KVM_ARM64_SVE_NUM_ZREGS: u32 = 32; 283 pub const KVM_ARM64_SVE_NUM_PREGS: u32 = 16; 284 pub const KVM_ARM64_SVE_MAX_SLICES: u32 = 32; 285 pub const KVM_ARM64_SVE_VQ_MIN: u32 = 1; 286 pub const KVM_ARM64_SVE_VQ_MAX: u32 = 512; 287 pub const KVM_ARM64_SVE_VLS_WORDS: u32 = 8; 288 pub const KVM_REG_ARM_FW_FEAT_BMAP: u32 = 1441792; 289 pub const KVM_DEV_ARM_VGIC_GRP_ADDR: u32 = 0; 290 pub const KVM_DEV_ARM_VGIC_GRP_DIST_REGS: u32 = 1; 291 pub const KVM_DEV_ARM_VGIC_GRP_CPU_REGS: u32 = 2; 292 pub const KVM_DEV_ARM_VGIC_CPUID_SHIFT: u32 = 32; 293 pub const KVM_DEV_ARM_VGIC_CPUID_MASK: u64 = 1095216660480; 294 pub const KVM_DEV_ARM_VGIC_V3_MPIDR_SHIFT: u32 = 32; 295 pub const KVM_DEV_ARM_VGIC_V3_MPIDR_MASK: i64 = -4294967296; 296 pub const KVM_DEV_ARM_VGIC_OFFSET_SHIFT: u32 = 0; 297 pub const KVM_DEV_ARM_VGIC_OFFSET_MASK: u32 = 4294967295; 298 pub const KVM_DEV_ARM_VGIC_SYSREG_INSTR_MASK: u32 = 65535; 299 pub const KVM_DEV_ARM_VGIC_GRP_NR_IRQS: u32 = 3; 300 pub const KVM_DEV_ARM_VGIC_GRP_CTRL: u32 = 4; 301 pub const KVM_DEV_ARM_VGIC_GRP_REDIST_REGS: u32 = 5; 302 pub const KVM_DEV_ARM_VGIC_GRP_CPU_SYSREGS: u32 = 6; 303 pub const KVM_DEV_ARM_VGIC_GRP_LEVEL_INFO: u32 = 7; 304 pub const KVM_DEV_ARM_VGIC_GRP_ITS_REGS: u32 = 8; 305 pub const KVM_DEV_ARM_VGIC_LINE_LEVEL_INFO_SHIFT: u32 = 10; 306 pub const KVM_DEV_ARM_VGIC_LINE_LEVEL_INFO_MASK: u32 = 4294966272; 307 pub const KVM_DEV_ARM_VGIC_LINE_LEVEL_INTID_MASK: u32 = 1023; 308 pub const VGIC_LEVEL_INFO_LINE_LEVEL: u32 = 0; 309 pub const KVM_DEV_ARM_VGIC_CTRL_INIT: u32 = 0; 310 pub const KVM_DEV_ARM_ITS_SAVE_TABLES: u32 = 1; 311 pub const KVM_DEV_ARM_ITS_RESTORE_TABLES: u32 = 2; 312 pub const KVM_DEV_ARM_VGIC_SAVE_PENDING_TABLES: u32 = 3; 313 pub const KVM_DEV_ARM_ITS_CTRL_RESET: u32 = 4; 314 pub const KVM_ARM_VCPU_PMU_V3_CTRL: u32 = 0; 315 pub const KVM_ARM_VCPU_PMU_V3_IRQ: u32 = 0; 316 pub const KVM_ARM_VCPU_PMU_V3_INIT: u32 = 1; 317 pub const KVM_ARM_VCPU_PMU_V3_FILTER: u32 = 2; 318 pub const KVM_ARM_VCPU_PMU_V3_SET_PMU: u32 = 3; 319 pub const KVM_ARM_VCPU_TIMER_CTRL: u32 = 1; 320 pub const KVM_ARM_VCPU_TIMER_IRQ_VTIMER: u32 = 0; 321 pub const KVM_ARM_VCPU_TIMER_IRQ_PTIMER: u32 = 1; 322 pub const KVM_ARM_VCPU_PVTIME_CTRL: u32 = 2; 323 pub const KVM_ARM_VCPU_PVTIME_IPA: u32 = 0; 324 pub const KVM_ARM_IRQ_VCPU2_SHIFT: u32 = 28; 325 pub const KVM_ARM_IRQ_VCPU2_MASK: u32 = 15; 326 pub const KVM_ARM_IRQ_TYPE_SHIFT: u32 = 24; 327 pub const KVM_ARM_IRQ_TYPE_MASK: u32 = 15; 328 pub const KVM_ARM_IRQ_VCPU_SHIFT: u32 = 16; 329 pub const KVM_ARM_IRQ_VCPU_MASK: u32 = 255; 330 pub const KVM_ARM_IRQ_NUM_SHIFT: u32 = 0; 331 pub const KVM_ARM_IRQ_NUM_MASK: u32 = 65535; 332 pub const KVM_ARM_IRQ_TYPE_CPU: u32 = 0; 333 pub const KVM_ARM_IRQ_TYPE_SPI: u32 = 1; 334 pub const KVM_ARM_IRQ_TYPE_PPI: u32 = 2; 335 pub const KVM_ARM_IRQ_CPU_IRQ: u32 = 0; 336 pub const KVM_ARM_IRQ_CPU_FIQ: u32 = 1; 337 pub const KVM_ARM_IRQ_GIC_MAX: u32 = 127; 338 pub const KVM_NR_IRQCHIPS: u32 = 1; 339 pub const KVM_PSCI_FN_BASE: u32 = 2512501342; 340 pub const KVM_PSCI_RET_SUCCESS: u32 = 0; 341 pub const KVM_PSCI_RET_NI: i32 = -1; 342 pub const KVM_PSCI_RET_INVAL: i32 = -2; 343 pub const KVM_PSCI_RET_DENIED: i32 = -3; 344 pub const KVM_SYSTEM_EVENT_RESET_FLAG_PSCI_RESET2: u32 = 1; 345 pub const KVM_EXIT_FAIL_ENTRY_CPU_UNSUPPORTED: u32 = 1; 346 pub const KVM_API_VERSION: u32 = 12; 347 pub const KVM_TRC_SHIFT: u32 = 16; 348 pub const KVM_TRC_ENTRYEXIT: u32 = 65536; 349 pub const KVM_TRC_HANDLER: u32 = 131072; 350 pub const KVM_TRC_VMENTRY: u32 = 65537; 351 pub const KVM_TRC_VMEXIT: u32 = 65538; 352 pub const KVM_TRC_PAGE_FAULT: u32 = 131073; 353 pub const KVM_TRC_HEAD_SIZE: u32 = 12; 354 pub const KVM_TRC_CYCLE_SIZE: u32 = 8; 355 pub const KVM_TRC_EXTRA_MAX: u32 = 7; 356 pub const KVM_TRC_INJ_VIRQ: u32 = 131074; 357 pub const KVM_TRC_REDELIVER_EVT: u32 = 131075; 358 pub const KVM_TRC_PEND_INTR: u32 = 131076; 359 pub const KVM_TRC_IO_READ: u32 = 131077; 360 pub const KVM_TRC_IO_WRITE: u32 = 131078; 361 pub const KVM_TRC_CR_READ: u32 = 131079; 362 pub const KVM_TRC_CR_WRITE: u32 = 131080; 363 pub const KVM_TRC_DR_READ: u32 = 131081; 364 pub const KVM_TRC_DR_WRITE: u32 = 131082; 365 pub const KVM_TRC_MSR_READ: u32 = 131083; 366 pub const KVM_TRC_MSR_WRITE: u32 = 131084; 367 pub const KVM_TRC_CPUID: u32 = 131085; 368 pub const KVM_TRC_INTR: u32 = 131086; 369 pub const KVM_TRC_NMI: u32 = 131087; 370 pub const KVM_TRC_VMMCALL: u32 = 131088; 371 pub const KVM_TRC_HLT: u32 = 131089; 372 pub const KVM_TRC_CLTS: u32 = 131090; 373 pub const KVM_TRC_LMSW: u32 = 131091; 374 pub const KVM_TRC_APIC_ACCESS: u32 = 131092; 375 pub const KVM_TRC_TDP_FAULT: u32 = 131093; 376 pub const KVM_TRC_GTLB_WRITE: u32 = 131094; 377 pub const KVM_TRC_STLB_WRITE: u32 = 131095; 378 pub const KVM_TRC_STLB_INVAL: u32 = 131096; 379 pub const KVM_TRC_PPC_INSTR: u32 = 131097; 380 pub const KVM_MEM_LOG_DIRTY_PAGES: u32 = 1; 381 pub const KVM_MEM_READONLY: u32 = 2; 382 pub const KVM_PIT_SPEAKER_DUMMY: u32 = 1; 383 pub const KVM_S390_CMMA_PEEK: u32 = 1; 384 pub const KVM_EXIT_HYPERV_SYNIC: u32 = 1; 385 pub const KVM_EXIT_HYPERV_HCALL: u32 = 2; 386 pub const KVM_EXIT_HYPERV_SYNDBG: u32 = 3; 387 pub const KVM_EXIT_XEN_HCALL: u32 = 1; 388 pub const KVM_S390_GET_SKEYS_NONE: u32 = 1; 389 pub const KVM_S390_SKEYS_MAX: u32 = 1048576; 390 pub const KVM_EXIT_UNKNOWN: u32 = 0; 391 pub const KVM_EXIT_EXCEPTION: u32 = 1; 392 pub const KVM_EXIT_IO: u32 = 2; 393 pub const KVM_EXIT_HYPERCALL: u32 = 3; 394 pub const KVM_EXIT_DEBUG: u32 = 4; 395 pub const KVM_EXIT_HLT: u32 = 5; 396 pub const KVM_EXIT_MMIO: u32 = 6; 397 pub const KVM_EXIT_IRQ_WINDOW_OPEN: u32 = 7; 398 pub const KVM_EXIT_SHUTDOWN: u32 = 8; 399 pub const KVM_EXIT_FAIL_ENTRY: u32 = 9; 400 pub const KVM_EXIT_INTR: u32 = 10; 401 pub const KVM_EXIT_SET_TPR: u32 = 11; 402 pub const KVM_EXIT_TPR_ACCESS: u32 = 12; 403 pub const KVM_EXIT_S390_SIEIC: u32 = 13; 404 pub const KVM_EXIT_S390_RESET: u32 = 14; 405 pub const KVM_EXIT_DCR: u32 = 15; 406 pub const KVM_EXIT_NMI: u32 = 16; 407 pub const KVM_EXIT_INTERNAL_ERROR: u32 = 17; 408 pub const KVM_EXIT_OSI: u32 = 18; 409 pub const KVM_EXIT_PAPR_HCALL: u32 = 19; 410 pub const KVM_EXIT_S390_UCONTROL: u32 = 20; 411 pub const KVM_EXIT_WATCHDOG: u32 = 21; 412 pub const KVM_EXIT_S390_TSCH: u32 = 22; 413 pub const KVM_EXIT_EPR: u32 = 23; 414 pub const KVM_EXIT_SYSTEM_EVENT: u32 = 24; 415 pub const KVM_EXIT_S390_STSI: u32 = 25; 416 pub const KVM_EXIT_IOAPIC_EOI: u32 = 26; 417 pub const KVM_EXIT_HYPERV: u32 = 27; 418 pub const KVM_EXIT_ARM_NISV: u32 = 28; 419 pub const KVM_EXIT_X86_RDMSR: u32 = 29; 420 pub const KVM_EXIT_X86_WRMSR: u32 = 30; 421 pub const KVM_EXIT_DIRTY_RING_FULL: u32 = 31; 422 pub const KVM_EXIT_AP_RESET_HOLD: u32 = 32; 423 pub const KVM_EXIT_X86_BUS_LOCK: u32 = 33; 424 pub const KVM_EXIT_XEN: u32 = 34; 425 pub const KVM_EXIT_RISCV_SBI: u32 = 35; 426 pub const KVM_EXIT_RISCV_CSR: u32 = 36; 427 pub const KVM_EXIT_NOTIFY: u32 = 37; 428 pub const KVM_INTERNAL_ERROR_EMULATION: u32 = 1; 429 pub const KVM_INTERNAL_ERROR_SIMUL_EX: u32 = 2; 430 pub const KVM_INTERNAL_ERROR_DELIVERY_EV: u32 = 3; 431 pub const KVM_INTERNAL_ERROR_UNEXPECTED_EXIT_REASON: u32 = 4; 432 pub const KVM_INTERNAL_ERROR_EMULATION_FLAG_INSTRUCTION_BYTES: u32 = 1; 433 pub const KVM_EXIT_IO_IN: u32 = 0; 434 pub const KVM_EXIT_IO_OUT: u32 = 1; 435 pub const KVM_S390_RESET_POR: u32 = 1; 436 pub const KVM_S390_RESET_CLEAR: u32 = 2; 437 pub const KVM_S390_RESET_SUBSYSTEM: u32 = 4; 438 pub const KVM_S390_RESET_CPU_INIT: u32 = 8; 439 pub const KVM_S390_RESET_IPL: u32 = 16; 440 pub const KVM_SYSTEM_EVENT_SHUTDOWN: u32 = 1; 441 pub const KVM_SYSTEM_EVENT_RESET: u32 = 2; 442 pub const KVM_SYSTEM_EVENT_CRASH: u32 = 3; 443 pub const KVM_SYSTEM_EVENT_WAKEUP: u32 = 4; 444 pub const KVM_SYSTEM_EVENT_SUSPEND: u32 = 5; 445 pub const KVM_SYSTEM_EVENT_SEV_TERM: u32 = 6; 446 pub const KVM_MSR_EXIT_REASON_INVAL: u32 = 1; 447 pub const KVM_MSR_EXIT_REASON_UNKNOWN: u32 = 2; 448 pub const KVM_MSR_EXIT_REASON_FILTER: u32 = 4; 449 pub const KVM_NOTIFY_CONTEXT_INVALID: u32 = 1; 450 pub const SYNC_REGS_SIZE_BYTES: u32 = 2048; 451 pub const KVM_S390_MEMOP_LOGICAL_READ: u32 = 0; 452 pub const KVM_S390_MEMOP_LOGICAL_WRITE: u32 = 1; 453 pub const KVM_S390_MEMOP_SIDA_READ: u32 = 2; 454 pub const KVM_S390_MEMOP_SIDA_WRITE: u32 = 3; 455 pub const KVM_S390_MEMOP_ABSOLUTE_READ: u32 = 4; 456 pub const KVM_S390_MEMOP_ABSOLUTE_WRITE: u32 = 5; 457 pub const KVM_S390_MEMOP_F_CHECK_ONLY: u32 = 1; 458 pub const KVM_S390_MEMOP_F_INJECT_EXCEPTION: u32 = 2; 459 pub const KVM_S390_MEMOP_F_SKEY_PROTECTION: u32 = 4; 460 pub const KVM_MP_STATE_RUNNABLE: u32 = 0; 461 pub const KVM_MP_STATE_UNINITIALIZED: u32 = 1; 462 pub const KVM_MP_STATE_INIT_RECEIVED: u32 = 2; 463 pub const KVM_MP_STATE_HALTED: u32 = 3; 464 pub const KVM_MP_STATE_SIPI_RECEIVED: u32 = 4; 465 pub const KVM_MP_STATE_STOPPED: u32 = 5; 466 pub const KVM_MP_STATE_CHECK_STOP: u32 = 6; 467 pub const KVM_MP_STATE_OPERATING: u32 = 7; 468 pub const KVM_MP_STATE_LOAD: u32 = 8; 469 pub const KVM_MP_STATE_AP_RESET_HOLD: u32 = 9; 470 pub const KVM_MP_STATE_SUSPENDED: u32 = 10; 471 pub const KVM_S390_SIGP_STOP: u32 = 4294836224; 472 pub const KVM_S390_PROGRAM_INT: u32 = 4294836225; 473 pub const KVM_S390_SIGP_SET_PREFIX: u32 = 4294836226; 474 pub const KVM_S390_RESTART: u32 = 4294836227; 475 pub const KVM_S390_INT_PFAULT_INIT: u32 = 4294836228; 476 pub const KVM_S390_INT_PFAULT_DONE: u32 = 4294836229; 477 pub const KVM_S390_MCHK: u32 = 4294840320; 478 pub const KVM_S390_INT_CLOCK_COMP: u32 = 4294905860; 479 pub const KVM_S390_INT_CPU_TIMER: u32 = 4294905861; 480 pub const KVM_S390_INT_VIRTIO: u32 = 4294911491; 481 pub const KVM_S390_INT_SERVICE: u32 = 4294910977; 482 pub const KVM_S390_INT_EMERGENCY: u32 = 4294906369; 483 pub const KVM_S390_INT_EXTERNAL_CALL: u32 = 4294906370; 484 pub const KVM_S390_INT_IO_MIN: u32 = 0; 485 pub const KVM_S390_INT_IO_MAX: u32 = 4294836223; 486 pub const KVM_S390_INT_IO_AI_MASK: u32 = 67108864; 487 pub const KVM_S390_PGM_FLAGS_ILC_VALID: u32 = 1; 488 pub const KVM_S390_PGM_FLAGS_ILC_0: u32 = 2; 489 pub const KVM_S390_PGM_FLAGS_ILC_1: u32 = 4; 490 pub const KVM_S390_PGM_FLAGS_ILC_MASK: u32 = 6; 491 pub const KVM_S390_PGM_FLAGS_NO_REWIND: u32 = 8; 492 pub const KVM_S390_STOP_FLAG_STORE_STATUS: u32 = 1; 493 pub const KVM_GUESTDBG_ENABLE: u32 = 1; 494 pub const KVM_GUESTDBG_SINGLESTEP: u32 = 2; 495 pub const KVM_X86_DISABLE_EXITS_MWAIT: u32 = 1; 496 pub const KVM_X86_DISABLE_EXITS_HLT: u32 = 2; 497 pub const KVM_X86_DISABLE_EXITS_PAUSE: u32 = 4; 498 pub const KVM_X86_DISABLE_EXITS_CSTATE: u32 = 8; 499 pub const KVM_X86_DISABLE_VALID_EXITS: u32 = 15; 500 pub const KVM_PPC_PVINFO_FLAGS_EV_IDLE: u32 = 1; 501 pub const KVM_PPC_PAGE_SIZES_MAX_SZ: u32 = 8; 502 pub const KVM_PPC_PAGE_SIZES_REAL: u32 = 1; 503 pub const KVM_PPC_1T_SEGMENTS: u32 = 2; 504 pub const KVM_PPC_NO_HASH: u32 = 4; 505 pub const KVMIO: u32 = 174; 506 pub const KVM_VM_S390_UCONTROL: u32 = 1; 507 pub const KVM_VM_PPC_HV: u32 = 1; 508 pub const KVM_VM_PPC_PR: u32 = 2; 509 pub const KVM_VM_MIPS_AUTO: u32 = 0; 510 pub const KVM_VM_MIPS_VZ: u32 = 1; 511 pub const KVM_VM_MIPS_TE: u32 = 2; 512 pub const KVM_S390_SIE_PAGE_OFFSET: u32 = 1; 513 pub const KVM_VM_TYPE_ARM_IPA_SIZE_MASK: u32 = 255; 514 pub const KVM_CAP_IRQCHIP: u32 = 0; 515 pub const KVM_CAP_HLT: u32 = 1; 516 pub const KVM_CAP_MMU_SHADOW_CACHE_CONTROL: u32 = 2; 517 pub const KVM_CAP_USER_MEMORY: u32 = 3; 518 pub const KVM_CAP_SET_TSS_ADDR: u32 = 4; 519 pub const KVM_CAP_VAPIC: u32 = 6; 520 pub const KVM_CAP_EXT_CPUID: u32 = 7; 521 pub const KVM_CAP_CLOCKSOURCE: u32 = 8; 522 pub const KVM_CAP_NR_VCPUS: u32 = 9; 523 pub const KVM_CAP_NR_MEMSLOTS: u32 = 10; 524 pub const KVM_CAP_PIT: u32 = 11; 525 pub const KVM_CAP_NOP_IO_DELAY: u32 = 12; 526 pub const KVM_CAP_PV_MMU: u32 = 13; 527 pub const KVM_CAP_MP_STATE: u32 = 14; 528 pub const KVM_CAP_COALESCED_MMIO: u32 = 15; 529 pub const KVM_CAP_SYNC_MMU: u32 = 16; 530 pub const KVM_CAP_IOMMU: u32 = 18; 531 pub const KVM_CAP_DESTROY_MEMORY_REGION_WORKS: u32 = 21; 532 pub const KVM_CAP_USER_NMI: u32 = 22; 533 pub const KVM_CAP_SET_GUEST_DEBUG: u32 = 23; 534 pub const KVM_CAP_IRQ_ROUTING: u32 = 25; 535 pub const KVM_CAP_IRQ_INJECT_STATUS: u32 = 26; 536 pub const KVM_CAP_ASSIGN_DEV_IRQ: u32 = 29; 537 pub const KVM_CAP_JOIN_MEMORY_REGIONS_WORKS: u32 = 30; 538 pub const KVM_CAP_IRQFD: u32 = 32; 539 pub const KVM_CAP_SET_BOOT_CPU_ID: u32 = 34; 540 pub const KVM_CAP_IOEVENTFD: u32 = 36; 541 pub const KVM_CAP_SET_IDENTITY_MAP_ADDR: u32 = 37; 542 pub const KVM_CAP_ADJUST_CLOCK: u32 = 39; 543 pub const KVM_CAP_INTERNAL_ERROR_DATA: u32 = 40; 544 pub const KVM_CAP_VCPU_EVENTS: u32 = 41; 545 pub const KVM_CAP_S390_PSW: u32 = 42; 546 pub const KVM_CAP_PPC_SEGSTATE: u32 = 43; 547 pub const KVM_CAP_HYPERV: u32 = 44; 548 pub const KVM_CAP_HYPERV_VAPIC: u32 = 45; 549 pub const KVM_CAP_HYPERV_SPIN: u32 = 46; 550 pub const KVM_CAP_PCI_SEGMENT: u32 = 47; 551 pub const KVM_CAP_PPC_PAIRED_SINGLES: u32 = 48; 552 pub const KVM_CAP_INTR_SHADOW: u32 = 49; 553 pub const KVM_CAP_X86_ROBUST_SINGLESTEP: u32 = 51; 554 pub const KVM_CAP_PPC_OSI: u32 = 52; 555 pub const KVM_CAP_PPC_UNSET_IRQ: u32 = 53; 556 pub const KVM_CAP_ENABLE_CAP: u32 = 54; 557 pub const KVM_CAP_PPC_GET_PVINFO: u32 = 57; 558 pub const KVM_CAP_PPC_IRQ_LEVEL: u32 = 58; 559 pub const KVM_CAP_ASYNC_PF: u32 = 59; 560 pub const KVM_CAP_TSC_CONTROL: u32 = 60; 561 pub const KVM_CAP_GET_TSC_KHZ: u32 = 61; 562 pub const KVM_CAP_PPC_BOOKE_SREGS: u32 = 62; 563 pub const KVM_CAP_SPAPR_TCE: u32 = 63; 564 pub const KVM_CAP_PPC_SMT: u32 = 64; 565 pub const KVM_CAP_PPC_RMA: u32 = 65; 566 pub const KVM_CAP_MAX_VCPUS: u32 = 66; 567 pub const KVM_CAP_PPC_HIOR: u32 = 67; 568 pub const KVM_CAP_PPC_PAPR: u32 = 68; 569 pub const KVM_CAP_SW_TLB: u32 = 69; 570 pub const KVM_CAP_ONE_REG: u32 = 70; 571 pub const KVM_CAP_S390_GMAP: u32 = 71; 572 pub const KVM_CAP_TSC_DEADLINE_TIMER: u32 = 72; 573 pub const KVM_CAP_S390_UCONTROL: u32 = 73; 574 pub const KVM_CAP_SYNC_REGS: u32 = 74; 575 pub const KVM_CAP_PCI_2_3: u32 = 75; 576 pub const KVM_CAP_KVMCLOCK_CTRL: u32 = 76; 577 pub const KVM_CAP_SIGNAL_MSI: u32 = 77; 578 pub const KVM_CAP_PPC_GET_SMMU_INFO: u32 = 78; 579 pub const KVM_CAP_S390_COW: u32 = 79; 580 pub const KVM_CAP_PPC_ALLOC_HTAB: u32 = 80; 581 pub const KVM_CAP_READONLY_MEM: u32 = 81; 582 pub const KVM_CAP_IRQFD_RESAMPLE: u32 = 82; 583 pub const KVM_CAP_PPC_BOOKE_WATCHDOG: u32 = 83; 584 pub const KVM_CAP_PPC_HTAB_FD: u32 = 84; 585 pub const KVM_CAP_S390_CSS_SUPPORT: u32 = 85; 586 pub const KVM_CAP_PPC_EPR: u32 = 86; 587 pub const KVM_CAP_ARM_PSCI: u32 = 87; 588 pub const KVM_CAP_ARM_SET_DEVICE_ADDR: u32 = 88; 589 pub const KVM_CAP_DEVICE_CTRL: u32 = 89; 590 pub const KVM_CAP_IRQ_MPIC: u32 = 90; 591 pub const KVM_CAP_PPC_RTAS: u32 = 91; 592 pub const KVM_CAP_IRQ_XICS: u32 = 92; 593 pub const KVM_CAP_ARM_EL1_32BIT: u32 = 93; 594 pub const KVM_CAP_SPAPR_MULTITCE: u32 = 94; 595 pub const KVM_CAP_EXT_EMUL_CPUID: u32 = 95; 596 pub const KVM_CAP_HYPERV_TIME: u32 = 96; 597 pub const KVM_CAP_IOAPIC_POLARITY_IGNORED: u32 = 97; 598 pub const KVM_CAP_ENABLE_CAP_VM: u32 = 98; 599 pub const KVM_CAP_S390_IRQCHIP: u32 = 99; 600 pub const KVM_CAP_IOEVENTFD_NO_LENGTH: u32 = 100; 601 pub const KVM_CAP_VM_ATTRIBUTES: u32 = 101; 602 pub const KVM_CAP_ARM_PSCI_0_2: u32 = 102; 603 pub const KVM_CAP_PPC_FIXUP_HCALL: u32 = 103; 604 pub const KVM_CAP_PPC_ENABLE_HCALL: u32 = 104; 605 pub const KVM_CAP_CHECK_EXTENSION_VM: u32 = 105; 606 pub const KVM_CAP_S390_USER_SIGP: u32 = 106; 607 pub const KVM_CAP_S390_VECTOR_REGISTERS: u32 = 107; 608 pub const KVM_CAP_S390_MEM_OP: u32 = 108; 609 pub const KVM_CAP_S390_USER_STSI: u32 = 109; 610 pub const KVM_CAP_S390_SKEYS: u32 = 110; 611 pub const KVM_CAP_MIPS_FPU: u32 = 111; 612 pub const KVM_CAP_MIPS_MSA: u32 = 112; 613 pub const KVM_CAP_S390_INJECT_IRQ: u32 = 113; 614 pub const KVM_CAP_S390_IRQ_STATE: u32 = 114; 615 pub const KVM_CAP_PPC_HWRNG: u32 = 115; 616 pub const KVM_CAP_DISABLE_QUIRKS: u32 = 116; 617 pub const KVM_CAP_X86_SMM: u32 = 117; 618 pub const KVM_CAP_MULTI_ADDRESS_SPACE: u32 = 118; 619 pub const KVM_CAP_GUEST_DEBUG_HW_BPS: u32 = 119; 620 pub const KVM_CAP_GUEST_DEBUG_HW_WPS: u32 = 120; 621 pub const KVM_CAP_SPLIT_IRQCHIP: u32 = 121; 622 pub const KVM_CAP_IOEVENTFD_ANY_LENGTH: u32 = 122; 623 pub const KVM_CAP_HYPERV_SYNIC: u32 = 123; 624 pub const KVM_CAP_S390_RI: u32 = 124; 625 pub const KVM_CAP_SPAPR_TCE_64: u32 = 125; 626 pub const KVM_CAP_ARM_PMU_V3: u32 = 126; 627 pub const KVM_CAP_VCPU_ATTRIBUTES: u32 = 127; 628 pub const KVM_CAP_MAX_VCPU_ID: u32 = 128; 629 pub const KVM_CAP_X2APIC_API: u32 = 129; 630 pub const KVM_CAP_S390_USER_INSTR0: u32 = 130; 631 pub const KVM_CAP_MSI_DEVID: u32 = 131; 632 pub const KVM_CAP_PPC_HTM: u32 = 132; 633 pub const KVM_CAP_SPAPR_RESIZE_HPT: u32 = 133; 634 pub const KVM_CAP_PPC_MMU_RADIX: u32 = 134; 635 pub const KVM_CAP_PPC_MMU_HASH_V3: u32 = 135; 636 pub const KVM_CAP_IMMEDIATE_EXIT: u32 = 136; 637 pub const KVM_CAP_MIPS_VZ: u32 = 137; 638 pub const KVM_CAP_MIPS_TE: u32 = 138; 639 pub const KVM_CAP_MIPS_64BIT: u32 = 139; 640 pub const KVM_CAP_S390_GS: u32 = 140; 641 pub const KVM_CAP_S390_AIS: u32 = 141; 642 pub const KVM_CAP_SPAPR_TCE_VFIO: u32 = 142; 643 pub const KVM_CAP_X86_DISABLE_EXITS: u32 = 143; 644 pub const KVM_CAP_ARM_USER_IRQ: u32 = 144; 645 pub const KVM_CAP_S390_CMMA_MIGRATION: u32 = 145; 646 pub const KVM_CAP_PPC_FWNMI: u32 = 146; 647 pub const KVM_CAP_PPC_SMT_POSSIBLE: u32 = 147; 648 pub const KVM_CAP_HYPERV_SYNIC2: u32 = 148; 649 pub const KVM_CAP_HYPERV_VP_INDEX: u32 = 149; 650 pub const KVM_CAP_S390_AIS_MIGRATION: u32 = 150; 651 pub const KVM_CAP_PPC_GET_CPU_CHAR: u32 = 151; 652 pub const KVM_CAP_S390_BPB: u32 = 152; 653 pub const KVM_CAP_GET_MSR_FEATURES: u32 = 153; 654 pub const KVM_CAP_HYPERV_EVENTFD: u32 = 154; 655 pub const KVM_CAP_HYPERV_TLBFLUSH: u32 = 155; 656 pub const KVM_CAP_S390_HPAGE_1M: u32 = 156; 657 pub const KVM_CAP_NESTED_STATE: u32 = 157; 658 pub const KVM_CAP_ARM_INJECT_SERROR_ESR: u32 = 158; 659 pub const KVM_CAP_MSR_PLATFORM_INFO: u32 = 159; 660 pub const KVM_CAP_PPC_NESTED_HV: u32 = 160; 661 pub const KVM_CAP_HYPERV_SEND_IPI: u32 = 161; 662 pub const KVM_CAP_COALESCED_PIO: u32 = 162; 663 pub const KVM_CAP_HYPERV_ENLIGHTENED_VMCS: u32 = 163; 664 pub const KVM_CAP_EXCEPTION_PAYLOAD: u32 = 164; 665 pub const KVM_CAP_ARM_VM_IPA_SIZE: u32 = 165; 666 pub const KVM_CAP_MANUAL_DIRTY_LOG_PROTECT: u32 = 166; 667 pub const KVM_CAP_HYPERV_CPUID: u32 = 167; 668 pub const KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2: u32 = 168; 669 pub const KVM_CAP_PPC_IRQ_XIVE: u32 = 169; 670 pub const KVM_CAP_ARM_SVE: u32 = 170; 671 pub const KVM_CAP_ARM_PTRAUTH_ADDRESS: u32 = 171; 672 pub const KVM_CAP_ARM_PTRAUTH_GENERIC: u32 = 172; 673 pub const KVM_CAP_PMU_EVENT_FILTER: u32 = 173; 674 pub const KVM_CAP_ARM_IRQ_LINE_LAYOUT_2: u32 = 174; 675 pub const KVM_CAP_HYPERV_DIRECT_TLBFLUSH: u32 = 175; 676 pub const KVM_CAP_PPC_GUEST_DEBUG_SSTEP: u32 = 176; 677 pub const KVM_CAP_ARM_NISV_TO_USER: u32 = 177; 678 pub const KVM_CAP_ARM_INJECT_EXT_DABT: u32 = 178; 679 pub const KVM_CAP_S390_VCPU_RESETS: u32 = 179; 680 pub const KVM_CAP_S390_PROTECTED: u32 = 180; 681 pub const KVM_CAP_PPC_SECURE_GUEST: u32 = 181; 682 pub const KVM_CAP_HALT_POLL: u32 = 182; 683 pub const KVM_CAP_ASYNC_PF_INT: u32 = 183; 684 pub const KVM_CAP_LAST_CPU: u32 = 184; 685 pub const KVM_CAP_SMALLER_MAXPHYADDR: u32 = 185; 686 pub const KVM_CAP_S390_DIAG318: u32 = 186; 687 pub const KVM_CAP_STEAL_TIME: u32 = 187; 688 pub const KVM_CAP_X86_USER_SPACE_MSR: u32 = 188; 689 pub const KVM_CAP_X86_MSR_FILTER: u32 = 189; 690 pub const KVM_CAP_ENFORCE_PV_FEATURE_CPUID: u32 = 190; 691 pub const KVM_CAP_SYS_HYPERV_CPUID: u32 = 191; 692 pub const KVM_CAP_DIRTY_LOG_RING: u32 = 192; 693 pub const KVM_CAP_X86_BUS_LOCK_EXIT: u32 = 193; 694 pub const KVM_CAP_PPC_DAWR1: u32 = 194; 695 pub const KVM_CAP_SET_GUEST_DEBUG2: u32 = 195; 696 pub const KVM_CAP_SGX_ATTRIBUTE: u32 = 196; 697 pub const KVM_CAP_VM_COPY_ENC_CONTEXT_FROM: u32 = 197; 698 pub const KVM_CAP_PTP_KVM: u32 = 198; 699 pub const KVM_CAP_HYPERV_ENFORCE_CPUID: u32 = 199; 700 pub const KVM_CAP_SREGS2: u32 = 200; 701 pub const KVM_CAP_EXIT_HYPERCALL: u32 = 201; 702 pub const KVM_CAP_PPC_RPT_INVALIDATE: u32 = 202; 703 pub const KVM_CAP_BINARY_STATS_FD: u32 = 203; 704 pub const KVM_CAP_EXIT_ON_EMULATION_FAILURE: u32 = 204; 705 pub const KVM_CAP_ARM_MTE: u32 = 205; 706 pub const KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM: u32 = 206; 707 pub const KVM_CAP_VM_GPA_BITS: u32 = 207; 708 pub const KVM_CAP_XSAVE2: u32 = 208; 709 pub const KVM_CAP_SYS_ATTRIBUTES: u32 = 209; 710 pub const KVM_CAP_PPC_AIL_MODE_3: u32 = 210; 711 pub const KVM_CAP_S390_MEM_OP_EXTENSION: u32 = 211; 712 pub const KVM_CAP_PMU_CAPABILITY: u32 = 212; 713 pub const KVM_CAP_DISABLE_QUIRKS2: u32 = 213; 714 pub const KVM_CAP_VM_TSC_CONTROL: u32 = 214; 715 pub const KVM_CAP_SYSTEM_EVENT_DATA: u32 = 215; 716 pub const KVM_CAP_ARM_SYSTEM_SUSPEND: u32 = 216; 717 pub const KVM_CAP_S390_PROTECTED_DUMP: u32 = 217; 718 pub const KVM_CAP_X86_TRIPLE_FAULT_EVENT: u32 = 218; 719 pub const KVM_CAP_X86_NOTIFY_VMEXIT: u32 = 219; 720 pub const KVM_CAP_VM_DISABLE_NX_HUGE_PAGES: u32 = 220; 721 pub const KVM_CAP_S390_ZPCI_OP: u32 = 221; 722 pub const KVM_CAP_S390_CPU_TOPOLOGY: u32 = 222; 723 pub const KVM_CAP_DIRTY_LOG_RING_ACQ_REL: u32 = 223; 724 pub const KVM_CAP_UCLAMP_SYNC: u32 = 1024; 725 pub const KVM_IRQ_ROUTING_IRQCHIP: u32 = 1; 726 pub const KVM_IRQ_ROUTING_MSI: u32 = 2; 727 pub const KVM_IRQ_ROUTING_S390_ADAPTER: u32 = 3; 728 pub const KVM_IRQ_ROUTING_HV_SINT: u32 = 4; 729 pub const KVM_IRQ_ROUTING_XEN_EVTCHN: u32 = 5; 730 pub const KVM_IRQFD_FLAG_DEASSIGN: u32 = 1; 731 pub const KVM_IRQFD_FLAG_RESAMPLE: u32 = 2; 732 pub const KVM_CLOCK_TSC_STABLE: u32 = 2; 733 pub const KVM_CLOCK_REALTIME: u32 = 4; 734 pub const KVM_CLOCK_HOST_TSC: u32 = 8; 735 pub const KVM_MMU_FSL_BOOKE_NOHV: u32 = 0; 736 pub const KVM_MMU_FSL_BOOKE_HV: u32 = 1; 737 pub const KVM_REG_ARCH_MASK: i64 = -72057594037927936; 738 pub const KVM_REG_GENERIC: u32 = 0; 739 pub const KVM_REG_PPC: u64 = 1152921504606846976; 740 pub const KVM_REG_X86: u64 = 2305843009213693952; 741 pub const KVM_REG_IA64: u64 = 3458764513820540928; 742 pub const KVM_REG_ARM: u64 = 4611686018427387904; 743 pub const KVM_REG_S390: u64 = 5764607523034234880; 744 pub const KVM_REG_ARM64: u64 = 6917529027641081856; 745 pub const KVM_REG_MIPS: u64 = 8070450532247928832; 746 pub const KVM_REG_RISCV: i64 = -9223372036854775808; 747 pub const KVM_REG_SIZE_SHIFT: u32 = 52; 748 pub const KVM_REG_SIZE_MASK: u64 = 67553994410557440; 749 pub const KVM_REG_SIZE_U8: u32 = 0; 750 pub const KVM_REG_SIZE_U16: u64 = 4503599627370496; 751 pub const KVM_REG_SIZE_U32: u64 = 9007199254740992; 752 pub const KVM_REG_SIZE_U64: u64 = 13510798882111488; 753 pub const KVM_REG_SIZE_U128: u64 = 18014398509481984; 754 pub const KVM_REG_SIZE_U256: u64 = 22517998136852480; 755 pub const KVM_REG_SIZE_U512: u64 = 27021597764222976; 756 pub const KVM_REG_SIZE_U1024: u64 = 31525197391593472; 757 pub const KVM_REG_SIZE_U2048: u64 = 36028797018963968; 758 pub const KVM_MSI_VALID_DEVID: u32 = 1; 759 pub const KVM_CREATE_DEVICE_TEST: u32 = 1; 760 pub const KVM_DEV_VFIO_GROUP: u32 = 1; 761 pub const KVM_DEV_VFIO_GROUP_ADD: u32 = 1; 762 pub const KVM_DEV_VFIO_GROUP_DEL: u32 = 2; 763 pub const KVM_DEV_VFIO_GROUP_SET_SPAPR_TCE: u32 = 3; 764 pub const KVM_S390_STORE_STATUS_NOADDR: i32 = -1; 765 pub const KVM_S390_STORE_STATUS_PREFIXED: i32 = -2; 766 pub const KVM_XEN_EVTCHN_DEASSIGN: u32 = 1; 767 pub const KVM_XEN_EVTCHN_UPDATE: u32 = 2; 768 pub const KVM_XEN_EVTCHN_RESET: u32 = 4; 769 pub const KVM_XEN_ATTR_TYPE_LONG_MODE: u32 = 0; 770 pub const KVM_XEN_ATTR_TYPE_SHARED_INFO: u32 = 1; 771 pub const KVM_XEN_ATTR_TYPE_UPCALL_VECTOR: u32 = 2; 772 pub const KVM_XEN_ATTR_TYPE_EVTCHN: u32 = 3; 773 pub const KVM_XEN_ATTR_TYPE_XEN_VERSION: u32 = 4; 774 pub const KVM_XEN_VCPU_ATTR_TYPE_VCPU_INFO: u32 = 0; 775 pub const KVM_XEN_VCPU_ATTR_TYPE_VCPU_TIME_INFO: u32 = 1; 776 pub const KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_ADDR: u32 = 2; 777 pub const KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_CURRENT: u32 = 3; 778 pub const KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_DATA: u32 = 4; 779 pub const KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_ADJUST: u32 = 5; 780 pub const KVM_XEN_VCPU_ATTR_TYPE_VCPU_ID: u32 = 6; 781 pub const KVM_XEN_VCPU_ATTR_TYPE_TIMER: u32 = 7; 782 pub const KVM_XEN_VCPU_ATTR_TYPE_UPCALL_VECTOR: u32 = 8; 783 pub const KVM_DEV_ASSIGN_ENABLE_IOMMU: u32 = 1; 784 pub const KVM_DEV_ASSIGN_PCI_2_3: u32 = 2; 785 pub const KVM_DEV_ASSIGN_MASK_INTX: u32 = 4; 786 pub const KVM_DEV_IRQ_HOST_INTX: u32 = 1; 787 pub const KVM_DEV_IRQ_HOST_MSI: u32 = 2; 788 pub const KVM_DEV_IRQ_HOST_MSIX: u32 = 4; 789 pub const KVM_DEV_IRQ_GUEST_INTX: u32 = 256; 790 pub const KVM_DEV_IRQ_GUEST_MSI: u32 = 512; 791 pub const KVM_DEV_IRQ_GUEST_MSIX: u32 = 1024; 792 pub const KVM_DEV_IRQ_HOST_MASK: u32 = 255; 793 pub const KVM_DEV_IRQ_GUEST_MASK: u32 = 65280; 794 pub const KVM_MAX_MSIX_PER_DEV: u32 = 256; 795 pub const KVM_X2APIC_API_USE_32BIT_IDS: u32 = 1; 796 pub const KVM_X2APIC_API_DISABLE_BROADCAST_QUIRK: u32 = 2; 797 pub const KVM_ARM_DEV_EL1_VTIMER: u32 = 1; 798 pub const KVM_ARM_DEV_EL1_PTIMER: u32 = 2; 799 pub const KVM_ARM_DEV_PMU: u32 = 4; 800 pub const KVM_HYPERV_CONN_ID_MASK: u32 = 16777215; 801 pub const KVM_HYPERV_EVENTFD_DEASSIGN: u32 = 1; 802 pub const KVM_DIRTY_LOG_MANUAL_PROTECT_ENABLE: u32 = 1; 803 pub const KVM_DIRTY_LOG_INITIALLY_SET: u32 = 2; 804 pub const KVM_DIRTY_LOG_PAGE_OFFSET: u32 = 0; 805 pub const KVM_DIRTY_GFN_F_MASK: u32 = 3; 806 pub const KVM_BUS_LOCK_DETECTION_OFF: u32 = 1; 807 pub const KVM_BUS_LOCK_DETECTION_EXIT: u32 = 2; 808 pub const KVM_PMU_CAP_DISABLE: u32 = 1; 809 pub const KVM_STATS_TYPE_SHIFT: u32 = 0; 810 pub const KVM_STATS_TYPE_MASK: u32 = 15; 811 pub const KVM_STATS_TYPE_CUMULATIVE: u32 = 0; 812 pub const KVM_STATS_TYPE_INSTANT: u32 = 1; 813 pub const KVM_STATS_TYPE_PEAK: u32 = 2; 814 pub const KVM_STATS_TYPE_LINEAR_HIST: u32 = 3; 815 pub const KVM_STATS_TYPE_LOG_HIST: u32 = 4; 816 pub const KVM_STATS_TYPE_MAX: u32 = 4; 817 pub const KVM_STATS_UNIT_SHIFT: u32 = 4; 818 pub const KVM_STATS_UNIT_MASK: u32 = 240; 819 pub const KVM_STATS_UNIT_NONE: u32 = 0; 820 pub const KVM_STATS_UNIT_BYTES: u32 = 16; 821 pub const KVM_STATS_UNIT_SECONDS: u32 = 32; 822 pub const KVM_STATS_UNIT_CYCLES: u32 = 48; 823 pub const KVM_STATS_UNIT_BOOLEAN: u32 = 64; 824 pub const KVM_STATS_UNIT_MAX: u32 = 64; 825 pub const KVM_STATS_BASE_SHIFT: u32 = 8; 826 pub const KVM_STATS_BASE_MASK: u32 = 3840; 827 pub const KVM_STATS_BASE_POW10: u32 = 0; 828 pub const KVM_STATS_BASE_POW2: u32 = 256; 829 pub const KVM_STATS_BASE_MAX: u32 = 256; 830 pub const KVM_X86_NOTIFY_VMEXIT_ENABLED: u32 = 1; 831 pub const KVM_X86_NOTIFY_VMEXIT_USER: u32 = 2; 832 pub const KVM_S390_ZPCIOP_REG_AEN: u32 = 0; 833 pub const KVM_S390_ZPCIOP_DEREG_AEN: u32 = 1; 834 pub const KVM_S390_ZPCIOP_REGAEN_HOST: u32 = 1; 835 pub type __le16 = u16; 836 pub type __be16 = u16; 837 pub type __le32 = u32; 838 pub type __be32 = u32; 839 pub type __le64 = u64; 840 pub type __be64 = u64; 841 pub type __sum16 = u16; 842 pub type __wsum = u32; 843 pub type __poll_t = ::std::os::raw::c_uint; 844 #[repr(C)] 845 #[derive(Debug, Default, Copy, Clone)] 846 pub struct user_pt_regs { 847 pub regs: [u64; 31usize], 848 pub sp: u64, 849 pub pc: u64, 850 pub pstate: u64, 851 } 852 #[repr(C)] 853 #[repr(align(16))] 854 #[derive(Debug, Default, Copy, Clone)] 855 pub struct user_fpsimd_state { 856 pub vregs: [__uint128_t; 32usize], 857 pub fpsr: u32, 858 pub fpcr: u32, 859 pub __reserved: [u32; 2usize], 860 } 861 #[repr(C)] 862 #[derive(Debug, Default, Copy, Clone)] 863 pub struct user_hwdebug_state { 864 pub dbg_info: u32, 865 pub pad: u32, 866 pub dbg_regs: [user_hwdebug_state__bindgen_ty_1; 16usize], 867 } 868 #[repr(C)] 869 #[derive(Debug, Default, Copy, Clone)] 870 pub struct user_hwdebug_state__bindgen_ty_1 { 871 pub addr: u64, 872 pub ctrl: u32, 873 pub pad: u32, 874 } 875 #[repr(C)] 876 #[derive(Debug, Default, Copy, Clone)] 877 pub struct user_sve_header { 878 pub size: u32, 879 pub max_size: u32, 880 pub vl: u16, 881 pub max_vl: u16, 882 pub flags: u16, 883 pub __reserved: u16, 884 } 885 #[repr(C)] 886 #[derive(Debug, Default, Copy, Clone)] 887 pub struct user_pac_mask { 888 pub data_mask: u64, 889 pub insn_mask: u64, 890 } 891 #[repr(C)] 892 #[repr(align(16))] 893 #[derive(Debug, Default, Copy, Clone)] 894 pub struct user_pac_address_keys { 895 pub apiakey: __uint128_t, 896 pub apibkey: __uint128_t, 897 pub apdakey: __uint128_t, 898 pub apdbkey: __uint128_t, 899 } 900 #[repr(C)] 901 #[repr(align(16))] 902 #[derive(Debug, Default, Copy, Clone)] 903 pub struct user_pac_generic_keys { 904 pub apgakey: __uint128_t, 905 } 906 #[repr(C)] 907 #[derive(Debug, Default, Copy, Clone)] 908 pub struct user_za_header { 909 pub size: u32, 910 pub max_size: u32, 911 pub vl: u16, 912 pub max_vl: u16, 913 pub flags: u16, 914 pub __reserved: u16, 915 } 916 #[repr(C)] 917 #[repr(align(16))] 918 #[derive(Debug, Default, Copy, Clone)] 919 pub struct kvm_regs { 920 pub regs: user_pt_regs, 921 pub sp_el1: u64, 922 pub elr_el1: u64, 923 pub spsr: [u64; 5usize], 924 pub __bindgen_padding_0: u64, 925 pub fp_regs: user_fpsimd_state, 926 } 927 #[repr(C)] 928 #[derive(Debug, Default, Copy, Clone)] 929 pub struct kvm_vcpu_init { 930 pub target: u32, 931 pub features: [u32; 7usize], 932 } 933 #[repr(C)] 934 #[derive(Debug, Default, Copy, Clone)] 935 pub struct kvm_sregs {} 936 #[repr(C)] 937 #[derive(Debug, Default, Copy, Clone)] 938 pub struct kvm_fpu {} 939 #[repr(C)] 940 #[derive(Debug, Default, Copy, Clone)] 941 pub struct kvm_guest_debug_arch { 942 pub dbg_bcr: [u64; 16usize], 943 pub dbg_bvr: [u64; 16usize], 944 pub dbg_wcr: [u64; 16usize], 945 pub dbg_wvr: [u64; 16usize], 946 } 947 #[repr(C)] 948 #[derive(Debug, Default, Copy, Clone)] 949 pub struct kvm_debug_exit_arch { 950 pub hsr: u32, 951 pub hsr_high: u32, 952 pub far: u64, 953 } 954 #[repr(C)] 955 #[derive(Debug, Default, Copy, Clone)] 956 pub struct kvm_sync_regs { 957 pub device_irq_level: u64, 958 } 959 #[repr(C)] 960 #[derive(Debug, Default, Copy, Clone)] 961 pub struct kvm_pmu_event_filter { 962 pub base_event: u16, 963 pub nevents: u16, 964 pub action: u8, 965 pub pad: [u8; 3usize], 966 } 967 #[repr(C)] 968 #[derive(Debug, Default, Copy, Clone)] 969 pub struct kvm_vcpu_events { 970 pub exception: kvm_vcpu_events__bindgen_ty_1, 971 pub reserved: [u32; 12usize], 972 } 973 #[repr(C)] 974 #[derive(Debug, Default, Copy, Clone)] 975 pub struct kvm_vcpu_events__bindgen_ty_1 { 976 pub serror_pending: u8, 977 pub serror_has_esr: u8, 978 pub ext_dabt_pending: u8, 979 pub pad: [u8; 5usize], 980 pub serror_esr: u64, 981 } 982 #[repr(C)] 983 #[derive(Debug, Copy, Clone)] 984 pub struct kvm_arm_copy_mte_tags { 985 pub guest_ipa: u64, 986 pub length: u64, 987 pub addr: *mut ::std::os::raw::c_void, 988 pub flags: u64, 989 pub reserved: [u64; 2usize], 990 } 991 impl Default for kvm_arm_copy_mte_tags { default() -> Self992 fn default() -> Self { 993 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 994 unsafe { 995 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 996 s.assume_init() 997 } 998 } 999 } 1000 pub const KVM_REG_ARM_STD_BIT_TRNG_V1_0: _bindgen_ty_1 = 0; 1001 pub type _bindgen_ty_1 = ::std::os::raw::c_uint; 1002 pub const KVM_REG_ARM_STD_HYP_BIT_PV_TIME: _bindgen_ty_2 = 0; 1003 pub type _bindgen_ty_2 = ::std::os::raw::c_uint; 1004 pub const KVM_REG_ARM_VENDOR_HYP_BIT_FUNC_FEAT: _bindgen_ty_3 = 0; 1005 pub const KVM_REG_ARM_VENDOR_HYP_BIT_PTP: _bindgen_ty_3 = 1; 1006 pub type _bindgen_ty_3 = ::std::os::raw::c_uint; 1007 #[repr(C)] 1008 #[derive(Debug, Default, Copy, Clone)] 1009 pub struct kvm_user_trace_setup { 1010 pub buf_size: u32, 1011 pub buf_nr: u32, 1012 } 1013 #[repr(C)] 1014 #[derive(Debug, Default, Copy, Clone)] 1015 pub struct kvm_breakpoint { 1016 pub enabled: u32, 1017 pub padding: u32, 1018 pub address: u64, 1019 } 1020 #[repr(C)] 1021 #[derive(Debug, Default, Copy, Clone)] 1022 pub struct kvm_debug_guest { 1023 pub enabled: u32, 1024 pub pad: u32, 1025 pub breakpoints: [kvm_breakpoint; 4usize], 1026 pub singlestep: u32, 1027 } 1028 #[repr(C)] 1029 #[derive(Debug, Default, Copy, Clone)] 1030 pub struct kvm_memory_region { 1031 pub slot: u32, 1032 pub flags: u32, 1033 pub guest_phys_addr: u64, 1034 pub memory_size: u64, 1035 } 1036 #[repr(C)] 1037 #[derive(Debug, Default, Copy, Clone)] 1038 pub struct kvm_userspace_memory_region { 1039 pub slot: u32, 1040 pub flags: u32, 1041 pub guest_phys_addr: u64, 1042 pub memory_size: u64, 1043 pub userspace_addr: u64, 1044 } 1045 #[repr(C)] 1046 #[derive(Copy, Clone)] 1047 pub struct kvm_irq_level { 1048 pub __bindgen_anon_1: kvm_irq_level__bindgen_ty_1, 1049 pub level: u32, 1050 } 1051 #[repr(C)] 1052 #[derive(Copy, Clone)] 1053 pub union kvm_irq_level__bindgen_ty_1 { 1054 pub irq: u32, 1055 pub status: i32, 1056 } 1057 impl Default for kvm_irq_level__bindgen_ty_1 { default() -> Self1058 fn default() -> Self { 1059 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1060 unsafe { 1061 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1062 s.assume_init() 1063 } 1064 } 1065 } 1066 impl Default for kvm_irq_level { default() -> Self1067 fn default() -> Self { 1068 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1069 unsafe { 1070 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1071 s.assume_init() 1072 } 1073 } 1074 } 1075 #[repr(C)] 1076 #[derive(Copy, Clone)] 1077 pub struct kvm_irqchip { 1078 pub chip_id: u32, 1079 pub pad: u32, 1080 pub chip: kvm_irqchip__bindgen_ty_1, 1081 } 1082 #[repr(C)] 1083 #[derive(Copy, Clone)] 1084 pub union kvm_irqchip__bindgen_ty_1 { 1085 pub dummy: [::std::os::raw::c_char; 512usize], 1086 } 1087 impl Default for kvm_irqchip__bindgen_ty_1 { default() -> Self1088 fn default() -> Self { 1089 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1090 unsafe { 1091 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1092 s.assume_init() 1093 } 1094 } 1095 } 1096 impl Default for kvm_irqchip { default() -> Self1097 fn default() -> Self { 1098 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1099 unsafe { 1100 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1101 s.assume_init() 1102 } 1103 } 1104 } 1105 #[repr(C)] 1106 #[derive(Debug, Default, Copy, Clone)] 1107 pub struct kvm_pit_config { 1108 pub flags: u32, 1109 pub pad: [u32; 15usize], 1110 } 1111 #[repr(C)] 1112 #[derive(Debug, Default, Copy, Clone)] 1113 pub struct kvm_s390_skeys { 1114 pub start_gfn: u64, 1115 pub count: u64, 1116 pub skeydata_addr: u64, 1117 pub flags: u32, 1118 pub reserved: [u32; 9usize], 1119 } 1120 #[repr(C)] 1121 #[derive(Copy, Clone)] 1122 pub struct kvm_s390_cmma_log { 1123 pub start_gfn: u64, 1124 pub count: u32, 1125 pub flags: u32, 1126 pub __bindgen_anon_1: kvm_s390_cmma_log__bindgen_ty_1, 1127 pub values: u64, 1128 } 1129 #[repr(C)] 1130 #[derive(Copy, Clone)] 1131 pub union kvm_s390_cmma_log__bindgen_ty_1 { 1132 pub remaining: u64, 1133 pub mask: u64, 1134 } 1135 impl Default for kvm_s390_cmma_log__bindgen_ty_1 { default() -> Self1136 fn default() -> Self { 1137 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1138 unsafe { 1139 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1140 s.assume_init() 1141 } 1142 } 1143 } 1144 impl Default for kvm_s390_cmma_log { default() -> Self1145 fn default() -> Self { 1146 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1147 unsafe { 1148 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1149 s.assume_init() 1150 } 1151 } 1152 } 1153 #[repr(C)] 1154 #[derive(Copy, Clone)] 1155 pub struct kvm_hyperv_exit { 1156 pub type_: u32, 1157 pub pad1: u32, 1158 pub u: kvm_hyperv_exit__bindgen_ty_1, 1159 } 1160 #[repr(C)] 1161 #[derive(Copy, Clone)] 1162 pub union kvm_hyperv_exit__bindgen_ty_1 { 1163 pub synic: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1, 1164 pub hcall: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_2, 1165 pub syndbg: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3, 1166 } 1167 #[repr(C)] 1168 #[derive(Debug, Default, Copy, Clone)] 1169 pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1 { 1170 pub msr: u32, 1171 pub pad2: u32, 1172 pub control: u64, 1173 pub evt_page: u64, 1174 pub msg_page: u64, 1175 } 1176 #[repr(C)] 1177 #[derive(Debug, Default, Copy, Clone)] 1178 pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_2 { 1179 pub input: u64, 1180 pub result: u64, 1181 pub params: [u64; 2usize], 1182 } 1183 #[repr(C)] 1184 #[derive(Debug, Default, Copy, Clone)] 1185 pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3 { 1186 pub msr: u32, 1187 pub pad2: u32, 1188 pub control: u64, 1189 pub status: u64, 1190 pub send_page: u64, 1191 pub recv_page: u64, 1192 pub pending_page: u64, 1193 } 1194 impl Default for kvm_hyperv_exit__bindgen_ty_1 { default() -> Self1195 fn default() -> Self { 1196 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1197 unsafe { 1198 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1199 s.assume_init() 1200 } 1201 } 1202 } 1203 impl Default for kvm_hyperv_exit { default() -> Self1204 fn default() -> Self { 1205 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1206 unsafe { 1207 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1208 s.assume_init() 1209 } 1210 } 1211 } 1212 #[repr(C)] 1213 #[derive(Copy, Clone)] 1214 pub struct kvm_xen_exit { 1215 pub type_: u32, 1216 pub u: kvm_xen_exit__bindgen_ty_1, 1217 } 1218 #[repr(C)] 1219 #[derive(Copy, Clone)] 1220 pub union kvm_xen_exit__bindgen_ty_1 { 1221 pub hcall: kvm_xen_exit__bindgen_ty_1__bindgen_ty_1, 1222 } 1223 #[repr(C)] 1224 #[derive(Debug, Default, Copy, Clone)] 1225 pub struct kvm_xen_exit__bindgen_ty_1__bindgen_ty_1 { 1226 pub longmode: u32, 1227 pub cpl: u32, 1228 pub input: u64, 1229 pub result: u64, 1230 pub params: [u64; 6usize], 1231 } 1232 impl Default for kvm_xen_exit__bindgen_ty_1 { default() -> Self1233 fn default() -> Self { 1234 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1235 unsafe { 1236 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1237 s.assume_init() 1238 } 1239 } 1240 } 1241 impl Default for kvm_xen_exit { default() -> Self1242 fn default() -> Self { 1243 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1244 unsafe { 1245 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1246 s.assume_init() 1247 } 1248 } 1249 } 1250 #[repr(C)] 1251 #[derive(Copy, Clone)] 1252 pub struct kvm_run { 1253 pub request_interrupt_window: u8, 1254 pub immediate_exit: u8, 1255 pub padding1: [u8; 6usize], 1256 pub exit_reason: u32, 1257 pub ready_for_interrupt_injection: u8, 1258 pub if_flag: u8, 1259 pub flags: u16, 1260 pub cr8: u64, 1261 pub apic_base: u64, 1262 pub __bindgen_anon_1: kvm_run__bindgen_ty_1, 1263 pub kvm_valid_regs: u64, 1264 pub kvm_dirty_regs: u64, 1265 pub s: kvm_run__bindgen_ty_2, 1266 } 1267 #[repr(C)] 1268 #[derive(Copy, Clone)] 1269 pub union kvm_run__bindgen_ty_1 { 1270 pub hw: kvm_run__bindgen_ty_1__bindgen_ty_1, 1271 pub fail_entry: kvm_run__bindgen_ty_1__bindgen_ty_2, 1272 pub ex: kvm_run__bindgen_ty_1__bindgen_ty_3, 1273 pub io: kvm_run__bindgen_ty_1__bindgen_ty_4, 1274 pub debug: kvm_run__bindgen_ty_1__bindgen_ty_5, 1275 pub mmio: kvm_run__bindgen_ty_1__bindgen_ty_6, 1276 pub hypercall: kvm_run__bindgen_ty_1__bindgen_ty_7, 1277 pub tpr_access: kvm_run__bindgen_ty_1__bindgen_ty_8, 1278 pub s390_sieic: kvm_run__bindgen_ty_1__bindgen_ty_9, 1279 pub s390_reset_flags: u64, 1280 pub s390_ucontrol: kvm_run__bindgen_ty_1__bindgen_ty_10, 1281 pub dcr: kvm_run__bindgen_ty_1__bindgen_ty_11, 1282 pub internal: kvm_run__bindgen_ty_1__bindgen_ty_12, 1283 pub emulation_failure: kvm_run__bindgen_ty_1__bindgen_ty_13, 1284 pub osi: kvm_run__bindgen_ty_1__bindgen_ty_14, 1285 pub papr_hcall: kvm_run__bindgen_ty_1__bindgen_ty_15, 1286 pub s390_tsch: kvm_run__bindgen_ty_1__bindgen_ty_16, 1287 pub epr: kvm_run__bindgen_ty_1__bindgen_ty_17, 1288 pub system_event: kvm_run__bindgen_ty_1__bindgen_ty_18, 1289 pub s390_stsi: kvm_run__bindgen_ty_1__bindgen_ty_19, 1290 pub eoi: kvm_run__bindgen_ty_1__bindgen_ty_20, 1291 pub hyperv: kvm_hyperv_exit, 1292 pub arm_nisv: kvm_run__bindgen_ty_1__bindgen_ty_21, 1293 pub msr: kvm_run__bindgen_ty_1__bindgen_ty_22, 1294 pub xen: kvm_xen_exit, 1295 pub riscv_sbi: kvm_run__bindgen_ty_1__bindgen_ty_23, 1296 pub riscv_csr: kvm_run__bindgen_ty_1__bindgen_ty_24, 1297 pub notify: kvm_run__bindgen_ty_1__bindgen_ty_25, 1298 pub padding: [::std::os::raw::c_char; 256usize], 1299 } 1300 #[repr(C)] 1301 #[derive(Debug, Default, Copy, Clone)] 1302 pub struct kvm_run__bindgen_ty_1__bindgen_ty_1 { 1303 pub hardware_exit_reason: u64, 1304 } 1305 #[repr(C)] 1306 #[derive(Debug, Default, Copy, Clone)] 1307 pub struct kvm_run__bindgen_ty_1__bindgen_ty_2 { 1308 pub hardware_entry_failure_reason: u64, 1309 pub cpu: u32, 1310 } 1311 #[repr(C)] 1312 #[derive(Debug, Default, Copy, Clone)] 1313 pub struct kvm_run__bindgen_ty_1__bindgen_ty_3 { 1314 pub exception: u32, 1315 pub error_code: u32, 1316 } 1317 #[repr(C)] 1318 #[derive(Debug, Default, Copy, Clone)] 1319 pub struct kvm_run__bindgen_ty_1__bindgen_ty_4 { 1320 pub direction: u8, 1321 pub size: u8, 1322 pub port: u16, 1323 pub count: u32, 1324 pub data_offset: u64, 1325 } 1326 #[repr(C)] 1327 #[derive(Debug, Default, Copy, Clone)] 1328 pub struct kvm_run__bindgen_ty_1__bindgen_ty_5 { 1329 pub arch: kvm_debug_exit_arch, 1330 } 1331 #[repr(C)] 1332 #[derive(Debug, Default, Copy, Clone)] 1333 pub struct kvm_run__bindgen_ty_1__bindgen_ty_6 { 1334 pub phys_addr: u64, 1335 pub data: [u8; 8usize], 1336 pub len: u32, 1337 pub is_write: u8, 1338 } 1339 #[repr(C)] 1340 #[derive(Debug, Default, Copy, Clone)] 1341 pub struct kvm_run__bindgen_ty_1__bindgen_ty_7 { 1342 pub nr: u64, 1343 pub args: [u64; 6usize], 1344 pub ret: u64, 1345 pub longmode: u32, 1346 pub pad: u32, 1347 } 1348 #[repr(C)] 1349 #[derive(Debug, Default, Copy, Clone)] 1350 pub struct kvm_run__bindgen_ty_1__bindgen_ty_8 { 1351 pub rip: u64, 1352 pub is_write: u32, 1353 pub pad: u32, 1354 } 1355 #[repr(C)] 1356 #[derive(Debug, Default, Copy, Clone)] 1357 pub struct kvm_run__bindgen_ty_1__bindgen_ty_9 { 1358 pub icptcode: u8, 1359 pub ipa: u16, 1360 pub ipb: u32, 1361 } 1362 #[repr(C)] 1363 #[derive(Debug, Default, Copy, Clone)] 1364 pub struct kvm_run__bindgen_ty_1__bindgen_ty_10 { 1365 pub trans_exc_code: u64, 1366 pub pgm_code: u32, 1367 } 1368 #[repr(C)] 1369 #[derive(Debug, Default, Copy, Clone)] 1370 pub struct kvm_run__bindgen_ty_1__bindgen_ty_11 { 1371 pub dcrn: u32, 1372 pub data: u32, 1373 pub is_write: u8, 1374 } 1375 #[repr(C)] 1376 #[derive(Debug, Default, Copy, Clone)] 1377 pub struct kvm_run__bindgen_ty_1__bindgen_ty_12 { 1378 pub suberror: u32, 1379 pub ndata: u32, 1380 pub data: [u64; 16usize], 1381 } 1382 #[repr(C)] 1383 #[derive(Copy, Clone)] 1384 pub struct kvm_run__bindgen_ty_1__bindgen_ty_13 { 1385 pub suberror: u32, 1386 pub ndata: u32, 1387 pub flags: u64, 1388 pub __bindgen_anon_1: kvm_run__bindgen_ty_1__bindgen_ty_13__bindgen_ty_1, 1389 } 1390 #[repr(C)] 1391 #[derive(Copy, Clone)] 1392 pub union kvm_run__bindgen_ty_1__bindgen_ty_13__bindgen_ty_1 { 1393 pub __bindgen_anon_1: kvm_run__bindgen_ty_1__bindgen_ty_13__bindgen_ty_1__bindgen_ty_1, 1394 } 1395 #[repr(C)] 1396 #[derive(Debug, Default, Copy, Clone)] 1397 pub struct kvm_run__bindgen_ty_1__bindgen_ty_13__bindgen_ty_1__bindgen_ty_1 { 1398 pub insn_size: u8, 1399 pub insn_bytes: [u8; 15usize], 1400 } 1401 impl Default for kvm_run__bindgen_ty_1__bindgen_ty_13__bindgen_ty_1 { default() -> Self1402 fn default() -> Self { 1403 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1404 unsafe { 1405 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1406 s.assume_init() 1407 } 1408 } 1409 } 1410 impl Default for kvm_run__bindgen_ty_1__bindgen_ty_13 { default() -> Self1411 fn default() -> Self { 1412 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1413 unsafe { 1414 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1415 s.assume_init() 1416 } 1417 } 1418 } 1419 #[repr(C)] 1420 #[derive(Debug, Default, Copy, Clone)] 1421 pub struct kvm_run__bindgen_ty_1__bindgen_ty_14 { 1422 pub gprs: [u64; 32usize], 1423 } 1424 #[repr(C)] 1425 #[derive(Debug, Default, Copy, Clone)] 1426 pub struct kvm_run__bindgen_ty_1__bindgen_ty_15 { 1427 pub nr: u64, 1428 pub ret: u64, 1429 pub args: [u64; 9usize], 1430 } 1431 #[repr(C)] 1432 #[derive(Debug, Default, Copy, Clone)] 1433 pub struct kvm_run__bindgen_ty_1__bindgen_ty_16 { 1434 pub subchannel_id: u16, 1435 pub subchannel_nr: u16, 1436 pub io_int_parm: u32, 1437 pub io_int_word: u32, 1438 pub ipb: u32, 1439 pub dequeued: u8, 1440 } 1441 #[repr(C)] 1442 #[derive(Debug, Default, Copy, Clone)] 1443 pub struct kvm_run__bindgen_ty_1__bindgen_ty_17 { 1444 pub epr: u32, 1445 } 1446 #[repr(C)] 1447 #[derive(Copy, Clone)] 1448 pub struct kvm_run__bindgen_ty_1__bindgen_ty_18 { 1449 pub type_: u32, 1450 pub ndata: u32, 1451 pub __bindgen_anon_1: kvm_run__bindgen_ty_1__bindgen_ty_18__bindgen_ty_1, 1452 } 1453 #[repr(C)] 1454 #[derive(Copy, Clone)] 1455 pub union kvm_run__bindgen_ty_1__bindgen_ty_18__bindgen_ty_1 { 1456 pub flags: u64, 1457 pub data: [u64; 16usize], 1458 } 1459 impl Default for kvm_run__bindgen_ty_1__bindgen_ty_18__bindgen_ty_1 { default() -> Self1460 fn default() -> Self { 1461 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1462 unsafe { 1463 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1464 s.assume_init() 1465 } 1466 } 1467 } 1468 impl Default for kvm_run__bindgen_ty_1__bindgen_ty_18 { default() -> Self1469 fn default() -> Self { 1470 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1471 unsafe { 1472 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1473 s.assume_init() 1474 } 1475 } 1476 } 1477 #[repr(C)] 1478 #[derive(Debug, Default, Copy, Clone)] 1479 pub struct kvm_run__bindgen_ty_1__bindgen_ty_19 { 1480 pub addr: u64, 1481 pub ar: u8, 1482 pub reserved: u8, 1483 pub fc: u8, 1484 pub sel1: u8, 1485 pub sel2: u16, 1486 } 1487 #[repr(C)] 1488 #[derive(Debug, Default, Copy, Clone)] 1489 pub struct kvm_run__bindgen_ty_1__bindgen_ty_20 { 1490 pub vector: u8, 1491 } 1492 #[repr(C)] 1493 #[derive(Debug, Default, Copy, Clone)] 1494 pub struct kvm_run__bindgen_ty_1__bindgen_ty_21 { 1495 pub esr_iss: u64, 1496 pub fault_ipa: u64, 1497 } 1498 #[repr(C)] 1499 #[derive(Debug, Default, Copy, Clone)] 1500 pub struct kvm_run__bindgen_ty_1__bindgen_ty_22 { 1501 pub error: u8, 1502 pub pad: [u8; 7usize], 1503 pub reason: u32, 1504 pub index: u32, 1505 pub data: u64, 1506 } 1507 #[repr(C)] 1508 #[derive(Debug, Default, Copy, Clone)] 1509 pub struct kvm_run__bindgen_ty_1__bindgen_ty_23 { 1510 pub extension_id: ::std::os::raw::c_ulong, 1511 pub function_id: ::std::os::raw::c_ulong, 1512 pub args: [::std::os::raw::c_ulong; 6usize], 1513 pub ret: [::std::os::raw::c_ulong; 2usize], 1514 } 1515 #[repr(C)] 1516 #[derive(Debug, Default, Copy, Clone)] 1517 pub struct kvm_run__bindgen_ty_1__bindgen_ty_24 { 1518 pub csr_num: ::std::os::raw::c_ulong, 1519 pub new_value: ::std::os::raw::c_ulong, 1520 pub write_mask: ::std::os::raw::c_ulong, 1521 pub ret_value: ::std::os::raw::c_ulong, 1522 } 1523 #[repr(C)] 1524 #[derive(Debug, Default, Copy, Clone)] 1525 pub struct kvm_run__bindgen_ty_1__bindgen_ty_25 { 1526 pub flags: u32, 1527 } 1528 impl Default for kvm_run__bindgen_ty_1 { default() -> Self1529 fn default() -> Self { 1530 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1531 unsafe { 1532 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1533 s.assume_init() 1534 } 1535 } 1536 } 1537 #[repr(C)] 1538 #[derive(Copy, Clone)] 1539 pub union kvm_run__bindgen_ty_2 { 1540 pub regs: kvm_sync_regs, 1541 pub padding: [::std::os::raw::c_char; 2048usize], 1542 } 1543 impl Default for kvm_run__bindgen_ty_2 { default() -> Self1544 fn default() -> Self { 1545 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1546 unsafe { 1547 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1548 s.assume_init() 1549 } 1550 } 1551 } 1552 impl Default for kvm_run { default() -> Self1553 fn default() -> Self { 1554 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1555 unsafe { 1556 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1557 s.assume_init() 1558 } 1559 } 1560 } 1561 #[repr(C)] 1562 #[derive(Copy, Clone)] 1563 pub struct kvm_coalesced_mmio_zone { 1564 pub addr: u64, 1565 pub size: u32, 1566 pub __bindgen_anon_1: kvm_coalesced_mmio_zone__bindgen_ty_1, 1567 } 1568 #[repr(C)] 1569 #[derive(Copy, Clone)] 1570 pub union kvm_coalesced_mmio_zone__bindgen_ty_1 { 1571 pub pad: u32, 1572 pub pio: u32, 1573 } 1574 impl Default for kvm_coalesced_mmio_zone__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_coalesced_mmio_zone { 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(Copy, Clone)] 1594 pub struct kvm_coalesced_mmio { 1595 pub phys_addr: u64, 1596 pub len: u32, 1597 pub __bindgen_anon_1: kvm_coalesced_mmio__bindgen_ty_1, 1598 pub data: [u8; 8usize], 1599 } 1600 #[repr(C)] 1601 #[derive(Copy, Clone)] 1602 pub union kvm_coalesced_mmio__bindgen_ty_1 { 1603 pub pad: u32, 1604 pub pio: u32, 1605 } 1606 impl Default for kvm_coalesced_mmio__bindgen_ty_1 { default() -> Self1607 fn default() -> Self { 1608 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1609 unsafe { 1610 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1611 s.assume_init() 1612 } 1613 } 1614 } 1615 impl Default for kvm_coalesced_mmio { default() -> Self1616 fn default() -> Self { 1617 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1618 unsafe { 1619 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1620 s.assume_init() 1621 } 1622 } 1623 } 1624 #[repr(C)] 1625 pub struct kvm_coalesced_mmio_ring { 1626 pub first: u32, 1627 pub last: u32, 1628 pub coalesced_mmio: __IncompleteArrayField<kvm_coalesced_mmio>, 1629 } 1630 impl Default for kvm_coalesced_mmio_ring { default() -> Self1631 fn default() -> Self { 1632 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1633 unsafe { 1634 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1635 s.assume_init() 1636 } 1637 } 1638 } 1639 #[repr(C)] 1640 #[derive(Debug, Default, Copy, Clone)] 1641 pub struct kvm_translation { 1642 pub linear_address: u64, 1643 pub physical_address: u64, 1644 pub valid: u8, 1645 pub writeable: u8, 1646 pub usermode: u8, 1647 pub pad: [u8; 5usize], 1648 } 1649 #[repr(C)] 1650 #[derive(Copy, Clone)] 1651 pub struct kvm_s390_mem_op { 1652 pub gaddr: u64, 1653 pub flags: u64, 1654 pub size: u32, 1655 pub op: u32, 1656 pub buf: u64, 1657 pub __bindgen_anon_1: kvm_s390_mem_op__bindgen_ty_1, 1658 } 1659 #[repr(C)] 1660 #[derive(Copy, Clone)] 1661 pub union kvm_s390_mem_op__bindgen_ty_1 { 1662 pub __bindgen_anon_1: kvm_s390_mem_op__bindgen_ty_1__bindgen_ty_1, 1663 pub sida_offset: u32, 1664 pub reserved: [u8; 32usize], 1665 } 1666 #[repr(C)] 1667 #[derive(Debug, Default, Copy, Clone)] 1668 pub struct kvm_s390_mem_op__bindgen_ty_1__bindgen_ty_1 { 1669 pub ar: u8, 1670 pub key: u8, 1671 } 1672 impl Default for kvm_s390_mem_op__bindgen_ty_1 { default() -> Self1673 fn default() -> Self { 1674 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1675 unsafe { 1676 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1677 s.assume_init() 1678 } 1679 } 1680 } 1681 impl Default for kvm_s390_mem_op { default() -> Self1682 fn default() -> Self { 1683 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1684 unsafe { 1685 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1686 s.assume_init() 1687 } 1688 } 1689 } 1690 #[repr(C)] 1691 #[derive(Debug, Default, Copy, Clone)] 1692 pub struct kvm_interrupt { 1693 pub irq: u32, 1694 } 1695 #[repr(C)] 1696 #[derive(Copy, Clone)] 1697 pub struct kvm_dirty_log { 1698 pub slot: u32, 1699 pub padding1: u32, 1700 pub __bindgen_anon_1: kvm_dirty_log__bindgen_ty_1, 1701 } 1702 #[repr(C)] 1703 #[derive(Copy, Clone)] 1704 pub union kvm_dirty_log__bindgen_ty_1 { 1705 pub dirty_bitmap: *mut ::std::os::raw::c_void, 1706 pub padding2: u64, 1707 } 1708 impl Default for kvm_dirty_log__bindgen_ty_1 { default() -> Self1709 fn default() -> Self { 1710 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1711 unsafe { 1712 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1713 s.assume_init() 1714 } 1715 } 1716 } 1717 impl Default for kvm_dirty_log { default() -> Self1718 fn default() -> Self { 1719 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1720 unsafe { 1721 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1722 s.assume_init() 1723 } 1724 } 1725 } 1726 #[repr(C)] 1727 #[derive(Copy, Clone)] 1728 pub struct kvm_clear_dirty_log { 1729 pub slot: u32, 1730 pub num_pages: u32, 1731 pub first_page: u64, 1732 pub __bindgen_anon_1: kvm_clear_dirty_log__bindgen_ty_1, 1733 } 1734 #[repr(C)] 1735 #[derive(Copy, Clone)] 1736 pub union kvm_clear_dirty_log__bindgen_ty_1 { 1737 pub dirty_bitmap: *mut ::std::os::raw::c_void, 1738 pub padding2: u64, 1739 } 1740 impl Default for kvm_clear_dirty_log__bindgen_ty_1 { default() -> Self1741 fn default() -> Self { 1742 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1743 unsafe { 1744 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1745 s.assume_init() 1746 } 1747 } 1748 } 1749 impl Default for kvm_clear_dirty_log { default() -> Self1750 fn default() -> Self { 1751 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1752 unsafe { 1753 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1754 s.assume_init() 1755 } 1756 } 1757 } 1758 #[repr(C)] 1759 #[derive(Debug, Default)] 1760 pub struct kvm_signal_mask { 1761 pub len: u32, 1762 pub sigset: __IncompleteArrayField<u8>, 1763 } 1764 #[repr(C)] 1765 #[derive(Debug, Default, Copy, Clone)] 1766 pub struct kvm_tpr_access_ctl { 1767 pub enabled: u32, 1768 pub flags: u32, 1769 pub reserved: [u32; 8usize], 1770 } 1771 #[repr(C)] 1772 #[derive(Debug, Default, Copy, Clone)] 1773 pub struct kvm_vapic_addr { 1774 pub vapic_addr: u64, 1775 } 1776 #[repr(C)] 1777 #[derive(Debug, Default, Copy, Clone)] 1778 pub struct kvm_mp_state { 1779 pub mp_state: u32, 1780 } 1781 #[repr(C)] 1782 #[derive(Debug, Default, Copy, Clone)] 1783 pub struct kvm_s390_psw { 1784 pub mask: u64, 1785 pub addr: u64, 1786 } 1787 #[repr(C)] 1788 #[derive(Debug, Default, Copy, Clone)] 1789 pub struct kvm_s390_interrupt { 1790 pub type_: u32, 1791 pub parm: u32, 1792 pub parm64: u64, 1793 } 1794 #[repr(C)] 1795 #[derive(Debug, Default, Copy, Clone)] 1796 pub struct kvm_s390_io_info { 1797 pub subchannel_id: u16, 1798 pub subchannel_nr: u16, 1799 pub io_int_parm: u32, 1800 pub io_int_word: u32, 1801 } 1802 #[repr(C)] 1803 #[derive(Debug, Default, Copy, Clone)] 1804 pub struct kvm_s390_ext_info { 1805 pub ext_params: u32, 1806 pub pad: u32, 1807 pub ext_params2: u64, 1808 } 1809 #[repr(C)] 1810 #[derive(Debug, Default, Copy, Clone)] 1811 pub struct kvm_s390_pgm_info { 1812 pub trans_exc_code: u64, 1813 pub mon_code: u64, 1814 pub per_address: u64, 1815 pub data_exc_code: u32, 1816 pub code: u16, 1817 pub mon_class_nr: u16, 1818 pub per_code: u8, 1819 pub per_atmid: u8, 1820 pub exc_access_id: u8, 1821 pub per_access_id: u8, 1822 pub op_access_id: u8, 1823 pub flags: u8, 1824 pub pad: [u8; 2usize], 1825 } 1826 #[repr(C)] 1827 #[derive(Debug, Default, Copy, Clone)] 1828 pub struct kvm_s390_prefix_info { 1829 pub address: u32, 1830 } 1831 #[repr(C)] 1832 #[derive(Debug, Default, Copy, Clone)] 1833 pub struct kvm_s390_extcall_info { 1834 pub code: u16, 1835 } 1836 #[repr(C)] 1837 #[derive(Debug, Default, Copy, Clone)] 1838 pub struct kvm_s390_emerg_info { 1839 pub code: u16, 1840 } 1841 #[repr(C)] 1842 #[derive(Debug, Default, Copy, Clone)] 1843 pub struct kvm_s390_stop_info { 1844 pub flags: u32, 1845 } 1846 #[repr(C)] 1847 #[derive(Debug, Default, Copy, Clone)] 1848 pub struct kvm_s390_mchk_info { 1849 pub cr14: u64, 1850 pub mcic: u64, 1851 pub failing_storage_address: u64, 1852 pub ext_damage_code: u32, 1853 pub pad: u32, 1854 pub fixed_logout: [u8; 16usize], 1855 } 1856 #[repr(C)] 1857 #[derive(Copy, Clone)] 1858 pub struct kvm_s390_irq { 1859 pub type_: u64, 1860 pub u: kvm_s390_irq__bindgen_ty_1, 1861 } 1862 #[repr(C)] 1863 #[derive(Copy, Clone)] 1864 pub union kvm_s390_irq__bindgen_ty_1 { 1865 pub io: kvm_s390_io_info, 1866 pub ext: kvm_s390_ext_info, 1867 pub pgm: kvm_s390_pgm_info, 1868 pub emerg: kvm_s390_emerg_info, 1869 pub extcall: kvm_s390_extcall_info, 1870 pub prefix: kvm_s390_prefix_info, 1871 pub stop: kvm_s390_stop_info, 1872 pub mchk: kvm_s390_mchk_info, 1873 pub reserved: [::std::os::raw::c_char; 64usize], 1874 } 1875 impl Default for kvm_s390_irq__bindgen_ty_1 { default() -> Self1876 fn default() -> Self { 1877 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1878 unsafe { 1879 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1880 s.assume_init() 1881 } 1882 } 1883 } 1884 impl Default for kvm_s390_irq { default() -> Self1885 fn default() -> Self { 1886 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1887 unsafe { 1888 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1889 s.assume_init() 1890 } 1891 } 1892 } 1893 #[repr(C)] 1894 #[derive(Debug, Default, Copy, Clone)] 1895 pub struct kvm_s390_irq_state { 1896 pub buf: u64, 1897 pub flags: u32, 1898 pub len: u32, 1899 pub reserved: [u32; 4usize], 1900 } 1901 #[repr(C)] 1902 #[derive(Debug, Default, Copy, Clone)] 1903 pub struct kvm_guest_debug { 1904 pub control: u32, 1905 pub pad: u32, 1906 pub arch: kvm_guest_debug_arch, 1907 } 1908 pub const kvm_ioeventfd_flag_nr_datamatch: _bindgen_ty_4 = 0; 1909 pub const kvm_ioeventfd_flag_nr_pio: _bindgen_ty_4 = 1; 1910 pub const kvm_ioeventfd_flag_nr_deassign: _bindgen_ty_4 = 2; 1911 pub const kvm_ioeventfd_flag_nr_virtio_ccw_notify: _bindgen_ty_4 = 3; 1912 pub const kvm_ioeventfd_flag_nr_fast_mmio: _bindgen_ty_4 = 4; 1913 pub const kvm_ioeventfd_flag_nr_max: _bindgen_ty_4 = 5; 1914 pub type _bindgen_ty_4 = ::std::os::raw::c_uint; 1915 #[repr(C)] 1916 #[derive(Debug, Copy, Clone)] 1917 pub struct kvm_ioeventfd { 1918 pub datamatch: u64, 1919 pub addr: u64, 1920 pub len: u32, 1921 pub fd: i32, 1922 pub flags: u32, 1923 pub pad: [u8; 36usize], 1924 } 1925 impl Default for kvm_ioeventfd { default() -> Self1926 fn default() -> Self { 1927 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1928 unsafe { 1929 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1930 s.assume_init() 1931 } 1932 } 1933 } 1934 #[repr(C)] 1935 #[derive(Debug, Copy, Clone)] 1936 pub struct kvm_enable_cap { 1937 pub cap: u32, 1938 pub flags: u32, 1939 pub args: [u64; 4usize], 1940 pub pad: [u8; 64usize], 1941 } 1942 impl Default for kvm_enable_cap { default() -> Self1943 fn default() -> Self { 1944 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1945 unsafe { 1946 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1947 s.assume_init() 1948 } 1949 } 1950 } 1951 #[repr(C)] 1952 #[derive(Debug, Copy, Clone)] 1953 pub struct kvm_ppc_pvinfo { 1954 pub flags: u32, 1955 pub hcall: [u32; 4usize], 1956 pub pad: [u8; 108usize], 1957 } 1958 impl Default for kvm_ppc_pvinfo { default() -> Self1959 fn default() -> Self { 1960 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1961 unsafe { 1962 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1963 s.assume_init() 1964 } 1965 } 1966 } 1967 #[repr(C)] 1968 #[derive(Debug, Default, Copy, Clone)] 1969 pub struct kvm_ppc_one_page_size { 1970 pub page_shift: u32, 1971 pub pte_enc: u32, 1972 } 1973 #[repr(C)] 1974 #[derive(Debug, Default, Copy, Clone)] 1975 pub struct kvm_ppc_one_seg_page_size { 1976 pub page_shift: u32, 1977 pub slb_enc: u32, 1978 pub enc: [kvm_ppc_one_page_size; 8usize], 1979 } 1980 #[repr(C)] 1981 #[derive(Debug, Default, Copy, Clone)] 1982 pub struct kvm_ppc_smmu_info { 1983 pub flags: u64, 1984 pub slb_size: u32, 1985 pub data_keys: u16, 1986 pub instr_keys: u16, 1987 pub sps: [kvm_ppc_one_seg_page_size; 8usize], 1988 } 1989 #[repr(C)] 1990 #[derive(Debug, Default, Copy, Clone)] 1991 pub struct kvm_ppc_resize_hpt { 1992 pub flags: u64, 1993 pub shift: u32, 1994 pub pad: u32, 1995 } 1996 #[repr(C)] 1997 #[derive(Debug, Default, Copy, Clone)] 1998 pub struct kvm_irq_routing_irqchip { 1999 pub irqchip: u32, 2000 pub pin: u32, 2001 } 2002 #[repr(C)] 2003 #[derive(Copy, Clone)] 2004 pub struct kvm_irq_routing_msi { 2005 pub address_lo: u32, 2006 pub address_hi: u32, 2007 pub data: u32, 2008 pub __bindgen_anon_1: kvm_irq_routing_msi__bindgen_ty_1, 2009 } 2010 #[repr(C)] 2011 #[derive(Copy, Clone)] 2012 pub union kvm_irq_routing_msi__bindgen_ty_1 { 2013 pub pad: u32, 2014 pub devid: u32, 2015 } 2016 impl Default for kvm_irq_routing_msi__bindgen_ty_1 { default() -> Self2017 fn default() -> Self { 2018 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2019 unsafe { 2020 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2021 s.assume_init() 2022 } 2023 } 2024 } 2025 impl Default for kvm_irq_routing_msi { default() -> Self2026 fn default() -> Self { 2027 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2028 unsafe { 2029 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2030 s.assume_init() 2031 } 2032 } 2033 } 2034 #[repr(C)] 2035 #[derive(Debug, Default, Copy, Clone)] 2036 pub struct kvm_irq_routing_s390_adapter { 2037 pub ind_addr: u64, 2038 pub summary_addr: u64, 2039 pub ind_offset: u64, 2040 pub summary_offset: u32, 2041 pub adapter_id: u32, 2042 } 2043 #[repr(C)] 2044 #[derive(Debug, Default, Copy, Clone)] 2045 pub struct kvm_irq_routing_hv_sint { 2046 pub vcpu: u32, 2047 pub sint: u32, 2048 } 2049 #[repr(C)] 2050 #[derive(Debug, Default, Copy, Clone)] 2051 pub struct kvm_irq_routing_xen_evtchn { 2052 pub port: u32, 2053 pub vcpu: u32, 2054 pub priority: u32, 2055 } 2056 #[repr(C)] 2057 #[derive(Copy, Clone)] 2058 pub struct kvm_irq_routing_entry { 2059 pub gsi: u32, 2060 pub type_: u32, 2061 pub flags: u32, 2062 pub pad: u32, 2063 pub u: kvm_irq_routing_entry__bindgen_ty_1, 2064 } 2065 #[repr(C)] 2066 #[derive(Copy, Clone)] 2067 pub union kvm_irq_routing_entry__bindgen_ty_1 { 2068 pub irqchip: kvm_irq_routing_irqchip, 2069 pub msi: kvm_irq_routing_msi, 2070 pub adapter: kvm_irq_routing_s390_adapter, 2071 pub hv_sint: kvm_irq_routing_hv_sint, 2072 pub xen_evtchn: kvm_irq_routing_xen_evtchn, 2073 pub pad: [u32; 8usize], 2074 } 2075 impl Default for kvm_irq_routing_entry__bindgen_ty_1 { default() -> Self2076 fn default() -> Self { 2077 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2078 unsafe { 2079 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2080 s.assume_init() 2081 } 2082 } 2083 } 2084 impl Default for kvm_irq_routing_entry { default() -> Self2085 fn default() -> Self { 2086 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2087 unsafe { 2088 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2089 s.assume_init() 2090 } 2091 } 2092 } 2093 #[repr(C)] 2094 pub struct kvm_irq_routing { 2095 pub nr: u32, 2096 pub flags: u32, 2097 pub entries: __IncompleteArrayField<kvm_irq_routing_entry>, 2098 } 2099 impl Default for kvm_irq_routing { default() -> Self2100 fn default() -> Self { 2101 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2102 unsafe { 2103 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2104 s.assume_init() 2105 } 2106 } 2107 } 2108 #[repr(C)] 2109 #[derive(Debug, Default, Copy, Clone)] 2110 pub struct kvm_irqfd { 2111 pub fd: u32, 2112 pub gsi: u32, 2113 pub flags: u32, 2114 pub resamplefd: u32, 2115 pub pad: [u8; 16usize], 2116 } 2117 #[repr(C)] 2118 #[derive(Debug, Default, Copy, Clone)] 2119 pub struct kvm_clock_data { 2120 pub clock: u64, 2121 pub flags: u32, 2122 pub pad0: u32, 2123 pub realtime: u64, 2124 pub host_tsc: u64, 2125 pub pad: [u32; 4usize], 2126 } 2127 #[repr(C)] 2128 #[derive(Debug, Default, Copy, Clone)] 2129 pub struct kvm_config_tlb { 2130 pub params: u64, 2131 pub array: u64, 2132 pub mmu_type: u32, 2133 pub array_len: u32, 2134 } 2135 #[repr(C)] 2136 #[derive(Debug, Default, Copy, Clone)] 2137 pub struct kvm_dirty_tlb { 2138 pub bitmap: u64, 2139 pub num_dirty: u32, 2140 } 2141 #[repr(C)] 2142 #[derive(Debug, Default)] 2143 pub struct kvm_reg_list { 2144 pub n: u64, 2145 pub reg: __IncompleteArrayField<u64>, 2146 } 2147 #[repr(C)] 2148 #[derive(Debug, Default, Copy, Clone)] 2149 pub struct kvm_one_reg { 2150 pub id: u64, 2151 pub addr: u64, 2152 } 2153 #[repr(C)] 2154 #[derive(Debug, Default, Copy, Clone)] 2155 pub struct kvm_msi { 2156 pub address_lo: u32, 2157 pub address_hi: u32, 2158 pub data: u32, 2159 pub flags: u32, 2160 pub devid: u32, 2161 pub pad: [u8; 12usize], 2162 } 2163 #[repr(C)] 2164 #[derive(Debug, Default, Copy, Clone)] 2165 pub struct kvm_arm_device_addr { 2166 pub id: u64, 2167 pub addr: u64, 2168 } 2169 #[repr(C)] 2170 #[derive(Debug, Default, Copy, Clone)] 2171 pub struct kvm_create_device { 2172 pub type_: u32, 2173 pub fd: u32, 2174 pub flags: u32, 2175 } 2176 #[repr(C)] 2177 #[derive(Debug, Default, Copy, Clone)] 2178 pub struct kvm_device_attr { 2179 pub flags: u32, 2180 pub group: u32, 2181 pub attr: u64, 2182 pub addr: u64, 2183 } 2184 pub const kvm_device_type_KVM_DEV_TYPE_FSL_MPIC_20: kvm_device_type = 1; 2185 pub const kvm_device_type_KVM_DEV_TYPE_FSL_MPIC_42: kvm_device_type = 2; 2186 pub const kvm_device_type_KVM_DEV_TYPE_XICS: kvm_device_type = 3; 2187 pub const kvm_device_type_KVM_DEV_TYPE_VFIO: kvm_device_type = 4; 2188 pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_V2: kvm_device_type = 5; 2189 pub const kvm_device_type_KVM_DEV_TYPE_FLIC: kvm_device_type = 6; 2190 pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_V3: kvm_device_type = 7; 2191 pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_ITS: kvm_device_type = 8; 2192 pub const kvm_device_type_KVM_DEV_TYPE_XIVE: kvm_device_type = 9; 2193 pub const kvm_device_type_KVM_DEV_TYPE_ARM_PV_TIME: kvm_device_type = 10; 2194 pub const kvm_device_type_KVM_DEV_TYPE_MAX: kvm_device_type = 11; 2195 pub type kvm_device_type = ::std::os::raw::c_uint; 2196 #[repr(C)] 2197 #[derive(Debug, Default, Copy, Clone)] 2198 pub struct kvm_vfio_spapr_tce { 2199 pub groupfd: i32, 2200 pub tablefd: i32, 2201 } 2202 #[repr(C)] 2203 #[derive(Debug, Default, Copy, Clone)] 2204 pub struct kvm_s390_ucas_mapping { 2205 pub user_addr: u64, 2206 pub vcpu_addr: u64, 2207 pub length: u64, 2208 } 2209 #[repr(C)] 2210 #[derive(Debug, Default, Copy, Clone)] 2211 pub struct kvm_enc_region { 2212 pub addr: u64, 2213 pub size: u64, 2214 } 2215 #[repr(C)] 2216 #[derive(Debug, Default, Copy, Clone)] 2217 pub struct kvm_s390_pv_sec_parm { 2218 pub origin: u64, 2219 pub length: u64, 2220 } 2221 #[repr(C)] 2222 #[derive(Debug, Default, Copy, Clone)] 2223 pub struct kvm_s390_pv_unp { 2224 pub addr: u64, 2225 pub size: u64, 2226 pub tweak: u64, 2227 } 2228 pub const pv_cmd_dmp_id_KVM_PV_DUMP_INIT: pv_cmd_dmp_id = 0; 2229 pub const pv_cmd_dmp_id_KVM_PV_DUMP_CONFIG_STOR_STATE: pv_cmd_dmp_id = 1; 2230 pub const pv_cmd_dmp_id_KVM_PV_DUMP_COMPLETE: pv_cmd_dmp_id = 2; 2231 pub const pv_cmd_dmp_id_KVM_PV_DUMP_CPU: pv_cmd_dmp_id = 3; 2232 pub type pv_cmd_dmp_id = ::std::os::raw::c_uint; 2233 #[repr(C)] 2234 #[derive(Debug, Default, Copy, Clone)] 2235 pub struct kvm_s390_pv_dmp { 2236 pub subcmd: u64, 2237 pub buff_addr: u64, 2238 pub buff_len: u64, 2239 pub gaddr: u64, 2240 pub reserved: [u64; 4usize], 2241 } 2242 pub const pv_cmd_info_id_KVM_PV_INFO_VM: pv_cmd_info_id = 0; 2243 pub const pv_cmd_info_id_KVM_PV_INFO_DUMP: pv_cmd_info_id = 1; 2244 pub type pv_cmd_info_id = ::std::os::raw::c_uint; 2245 #[repr(C)] 2246 #[derive(Debug, Default, Copy, Clone)] 2247 pub struct kvm_s390_pv_info_dump { 2248 pub dump_cpu_buffer_len: u64, 2249 pub dump_config_mem_buffer_per_1m: u64, 2250 pub dump_config_finalize_len: u64, 2251 } 2252 #[repr(C)] 2253 #[derive(Debug, Default, Copy, Clone)] 2254 pub struct kvm_s390_pv_info_vm { 2255 pub inst_calls_list: [u64; 4usize], 2256 pub max_cpus: u64, 2257 pub max_guests: u64, 2258 pub max_guest_addr: u64, 2259 pub feature_indication: u64, 2260 } 2261 #[repr(C)] 2262 #[derive(Debug, Default, Copy, Clone)] 2263 pub struct kvm_s390_pv_info_header { 2264 pub id: u32, 2265 pub len_max: u32, 2266 pub len_written: u32, 2267 pub reserved: u32, 2268 } 2269 #[repr(C)] 2270 #[derive(Copy, Clone)] 2271 pub struct kvm_s390_pv_info { 2272 pub header: kvm_s390_pv_info_header, 2273 pub __bindgen_anon_1: kvm_s390_pv_info__bindgen_ty_1, 2274 } 2275 #[repr(C)] 2276 #[derive(Copy, Clone)] 2277 pub union kvm_s390_pv_info__bindgen_ty_1 { 2278 pub dump: kvm_s390_pv_info_dump, 2279 pub vm: kvm_s390_pv_info_vm, 2280 } 2281 impl Default for kvm_s390_pv_info__bindgen_ty_1 { default() -> Self2282 fn default() -> Self { 2283 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2284 unsafe { 2285 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2286 s.assume_init() 2287 } 2288 } 2289 } 2290 impl Default for kvm_s390_pv_info { default() -> Self2291 fn default() -> Self { 2292 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2293 unsafe { 2294 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2295 s.assume_init() 2296 } 2297 } 2298 } 2299 pub const pv_cmd_id_KVM_PV_ENABLE: pv_cmd_id = 0; 2300 pub const pv_cmd_id_KVM_PV_DISABLE: pv_cmd_id = 1; 2301 pub const pv_cmd_id_KVM_PV_SET_SEC_PARMS: pv_cmd_id = 2; 2302 pub const pv_cmd_id_KVM_PV_UNPACK: pv_cmd_id = 3; 2303 pub const pv_cmd_id_KVM_PV_VERIFY: pv_cmd_id = 4; 2304 pub const pv_cmd_id_KVM_PV_PREP_RESET: pv_cmd_id = 5; 2305 pub const pv_cmd_id_KVM_PV_UNSHARE_ALL: pv_cmd_id = 6; 2306 pub const pv_cmd_id_KVM_PV_INFO: pv_cmd_id = 7; 2307 pub const pv_cmd_id_KVM_PV_DUMP: pv_cmd_id = 8; 2308 pub type pv_cmd_id = ::std::os::raw::c_uint; 2309 #[repr(C)] 2310 #[derive(Debug, Default, Copy, Clone)] 2311 pub struct kvm_pv_cmd { 2312 pub cmd: u32, 2313 pub rc: u16, 2314 pub rrc: u16, 2315 pub data: u64, 2316 pub flags: u32, 2317 pub reserved: [u32; 3usize], 2318 } 2319 #[repr(C)] 2320 #[derive(Copy, Clone)] 2321 pub struct kvm_xen_hvm_attr { 2322 pub type_: u16, 2323 pub pad: [u16; 3usize], 2324 pub u: kvm_xen_hvm_attr__bindgen_ty_1, 2325 } 2326 #[repr(C)] 2327 #[derive(Copy, Clone)] 2328 pub union kvm_xen_hvm_attr__bindgen_ty_1 { 2329 pub long_mode: u8, 2330 pub vector: u8, 2331 pub shared_info: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_1, 2332 pub evtchn: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2, 2333 pub xen_version: u32, 2334 pub pad: [u64; 8usize], 2335 } 2336 #[repr(C)] 2337 #[derive(Debug, Default, Copy, Clone)] 2338 pub struct kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_1 { 2339 pub gfn: u64, 2340 } 2341 #[repr(C)] 2342 #[derive(Copy, Clone)] 2343 pub struct kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2 { 2344 pub send_port: u32, 2345 pub type_: u32, 2346 pub flags: u32, 2347 pub deliver: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1, 2348 } 2349 #[repr(C)] 2350 #[derive(Copy, Clone)] 2351 pub union kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 { 2352 pub port: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1, 2353 pub eventfd: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_2, 2354 pub padding: [u32; 4usize], 2355 } 2356 #[repr(C)] 2357 #[derive(Debug, Default, Copy, Clone)] 2358 pub struct kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1 { 2359 pub port: u32, 2360 pub vcpu: u32, 2361 pub priority: u32, 2362 } 2363 #[repr(C)] 2364 #[derive(Debug, Default, Copy, Clone)] 2365 pub struct kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_2 { 2366 pub port: u32, 2367 pub fd: i32, 2368 } 2369 impl Default for kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 { default() -> Self2370 fn default() -> Self { 2371 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2372 unsafe { 2373 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2374 s.assume_init() 2375 } 2376 } 2377 } 2378 impl Default for kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2 { default() -> Self2379 fn default() -> Self { 2380 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2381 unsafe { 2382 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2383 s.assume_init() 2384 } 2385 } 2386 } 2387 impl Default for kvm_xen_hvm_attr__bindgen_ty_1 { default() -> Self2388 fn default() -> Self { 2389 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2390 unsafe { 2391 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2392 s.assume_init() 2393 } 2394 } 2395 } 2396 impl Default for kvm_xen_hvm_attr { default() -> Self2397 fn default() -> Self { 2398 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2399 unsafe { 2400 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2401 s.assume_init() 2402 } 2403 } 2404 } 2405 #[repr(C)] 2406 #[derive(Copy, Clone)] 2407 pub struct kvm_xen_vcpu_attr { 2408 pub type_: u16, 2409 pub pad: [u16; 3usize], 2410 pub u: kvm_xen_vcpu_attr__bindgen_ty_1, 2411 } 2412 #[repr(C)] 2413 #[derive(Copy, Clone)] 2414 pub union kvm_xen_vcpu_attr__bindgen_ty_1 { 2415 pub gpa: u64, 2416 pub pad: [u64; 8usize], 2417 pub runstate: kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_1, 2418 pub vcpu_id: u32, 2419 pub timer: kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_2, 2420 pub vector: u8, 2421 } 2422 #[repr(C)] 2423 #[derive(Debug, Default, Copy, Clone)] 2424 pub struct kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_1 { 2425 pub state: u64, 2426 pub state_entry_time: u64, 2427 pub time_running: u64, 2428 pub time_runnable: u64, 2429 pub time_blocked: u64, 2430 pub time_offline: u64, 2431 } 2432 #[repr(C)] 2433 #[derive(Debug, Default, Copy, Clone)] 2434 pub struct kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_2 { 2435 pub port: u32, 2436 pub priority: u32, 2437 pub expires_ns: u64, 2438 } 2439 impl Default for kvm_xen_vcpu_attr__bindgen_ty_1 { default() -> Self2440 fn default() -> Self { 2441 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2442 unsafe { 2443 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2444 s.assume_init() 2445 } 2446 } 2447 } 2448 impl Default for kvm_xen_vcpu_attr { default() -> Self2449 fn default() -> Self { 2450 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2451 unsafe { 2452 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2453 s.assume_init() 2454 } 2455 } 2456 } 2457 pub const sev_cmd_id_KVM_SEV_INIT: sev_cmd_id = 0; 2458 pub const sev_cmd_id_KVM_SEV_ES_INIT: sev_cmd_id = 1; 2459 pub const sev_cmd_id_KVM_SEV_LAUNCH_START: sev_cmd_id = 2; 2460 pub const sev_cmd_id_KVM_SEV_LAUNCH_UPDATE_DATA: sev_cmd_id = 3; 2461 pub const sev_cmd_id_KVM_SEV_LAUNCH_UPDATE_VMSA: sev_cmd_id = 4; 2462 pub const sev_cmd_id_KVM_SEV_LAUNCH_SECRET: sev_cmd_id = 5; 2463 pub const sev_cmd_id_KVM_SEV_LAUNCH_MEASURE: sev_cmd_id = 6; 2464 pub const sev_cmd_id_KVM_SEV_LAUNCH_FINISH: sev_cmd_id = 7; 2465 pub const sev_cmd_id_KVM_SEV_SEND_START: sev_cmd_id = 8; 2466 pub const sev_cmd_id_KVM_SEV_SEND_UPDATE_DATA: sev_cmd_id = 9; 2467 pub const sev_cmd_id_KVM_SEV_SEND_UPDATE_VMSA: sev_cmd_id = 10; 2468 pub const sev_cmd_id_KVM_SEV_SEND_FINISH: sev_cmd_id = 11; 2469 pub const sev_cmd_id_KVM_SEV_RECEIVE_START: sev_cmd_id = 12; 2470 pub const sev_cmd_id_KVM_SEV_RECEIVE_UPDATE_DATA: sev_cmd_id = 13; 2471 pub const sev_cmd_id_KVM_SEV_RECEIVE_UPDATE_VMSA: sev_cmd_id = 14; 2472 pub const sev_cmd_id_KVM_SEV_RECEIVE_FINISH: sev_cmd_id = 15; 2473 pub const sev_cmd_id_KVM_SEV_GUEST_STATUS: sev_cmd_id = 16; 2474 pub const sev_cmd_id_KVM_SEV_DBG_DECRYPT: sev_cmd_id = 17; 2475 pub const sev_cmd_id_KVM_SEV_DBG_ENCRYPT: sev_cmd_id = 18; 2476 pub const sev_cmd_id_KVM_SEV_CERT_EXPORT: sev_cmd_id = 19; 2477 pub const sev_cmd_id_KVM_SEV_GET_ATTESTATION_REPORT: sev_cmd_id = 20; 2478 pub const sev_cmd_id_KVM_SEV_SEND_CANCEL: sev_cmd_id = 21; 2479 pub const sev_cmd_id_KVM_SEV_NR_MAX: sev_cmd_id = 22; 2480 pub type sev_cmd_id = ::std::os::raw::c_uint; 2481 #[repr(C)] 2482 #[derive(Debug, Default, Copy, Clone)] 2483 pub struct kvm_sev_cmd { 2484 pub id: u32, 2485 pub data: u64, 2486 pub error: u32, 2487 pub sev_fd: u32, 2488 } 2489 #[repr(C)] 2490 #[derive(Debug, Default, Copy, Clone)] 2491 pub struct kvm_sev_launch_start { 2492 pub handle: u32, 2493 pub policy: u32, 2494 pub dh_uaddr: u64, 2495 pub dh_len: u32, 2496 pub session_uaddr: u64, 2497 pub session_len: u32, 2498 } 2499 #[repr(C)] 2500 #[derive(Debug, Default, Copy, Clone)] 2501 pub struct kvm_sev_launch_update_data { 2502 pub uaddr: u64, 2503 pub len: u32, 2504 } 2505 #[repr(C)] 2506 #[derive(Debug, Default, Copy, Clone)] 2507 pub struct kvm_sev_launch_secret { 2508 pub hdr_uaddr: u64, 2509 pub hdr_len: u32, 2510 pub guest_uaddr: u64, 2511 pub guest_len: u32, 2512 pub trans_uaddr: u64, 2513 pub trans_len: u32, 2514 } 2515 #[repr(C)] 2516 #[derive(Debug, Default, Copy, Clone)] 2517 pub struct kvm_sev_launch_measure { 2518 pub uaddr: u64, 2519 pub len: u32, 2520 } 2521 #[repr(C)] 2522 #[derive(Debug, Default, Copy, Clone)] 2523 pub struct kvm_sev_guest_status { 2524 pub handle: u32, 2525 pub policy: u32, 2526 pub state: u32, 2527 } 2528 #[repr(C)] 2529 #[derive(Debug, Default, Copy, Clone)] 2530 pub struct kvm_sev_dbg { 2531 pub src_uaddr: u64, 2532 pub dst_uaddr: u64, 2533 pub len: u32, 2534 } 2535 #[repr(C)] 2536 #[derive(Debug, Default, Copy, Clone)] 2537 pub struct kvm_sev_attestation_report { 2538 pub mnonce: [u8; 16usize], 2539 pub uaddr: u64, 2540 pub len: u32, 2541 } 2542 #[repr(C)] 2543 #[derive(Debug, Default, Copy, Clone)] 2544 pub struct kvm_sev_send_start { 2545 pub policy: u32, 2546 pub pdh_cert_uaddr: u64, 2547 pub pdh_cert_len: u32, 2548 pub plat_certs_uaddr: u64, 2549 pub plat_certs_len: u32, 2550 pub amd_certs_uaddr: u64, 2551 pub amd_certs_len: u32, 2552 pub session_uaddr: u64, 2553 pub session_len: u32, 2554 } 2555 #[repr(C)] 2556 #[derive(Debug, Default, Copy, Clone)] 2557 pub struct kvm_sev_send_update_data { 2558 pub hdr_uaddr: u64, 2559 pub hdr_len: u32, 2560 pub guest_uaddr: u64, 2561 pub guest_len: u32, 2562 pub trans_uaddr: u64, 2563 pub trans_len: u32, 2564 } 2565 #[repr(C)] 2566 #[derive(Debug, Default, Copy, Clone)] 2567 pub struct kvm_sev_receive_start { 2568 pub handle: u32, 2569 pub policy: u32, 2570 pub pdh_uaddr: u64, 2571 pub pdh_len: u32, 2572 pub session_uaddr: u64, 2573 pub session_len: u32, 2574 } 2575 #[repr(C)] 2576 #[derive(Debug, Default, Copy, Clone)] 2577 pub struct kvm_sev_receive_update_data { 2578 pub hdr_uaddr: u64, 2579 pub hdr_len: u32, 2580 pub guest_uaddr: u64, 2581 pub guest_len: u32, 2582 pub trans_uaddr: u64, 2583 pub trans_len: u32, 2584 } 2585 #[repr(C)] 2586 #[derive(Copy, Clone)] 2587 pub struct kvm_assigned_pci_dev { 2588 pub assigned_dev_id: u32, 2589 pub busnr: u32, 2590 pub devfn: u32, 2591 pub flags: u32, 2592 pub segnr: u32, 2593 pub __bindgen_anon_1: kvm_assigned_pci_dev__bindgen_ty_1, 2594 } 2595 #[repr(C)] 2596 #[derive(Copy, Clone)] 2597 pub union kvm_assigned_pci_dev__bindgen_ty_1 { 2598 pub reserved: [u32; 11usize], 2599 } 2600 impl Default for kvm_assigned_pci_dev__bindgen_ty_1 { default() -> Self2601 fn default() -> Self { 2602 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2603 unsafe { 2604 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2605 s.assume_init() 2606 } 2607 } 2608 } 2609 impl Default for kvm_assigned_pci_dev { default() -> Self2610 fn default() -> Self { 2611 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2612 unsafe { 2613 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2614 s.assume_init() 2615 } 2616 } 2617 } 2618 #[repr(C)] 2619 #[derive(Copy, Clone)] 2620 pub struct kvm_assigned_irq { 2621 pub assigned_dev_id: u32, 2622 pub host_irq: u32, 2623 pub guest_irq: u32, 2624 pub flags: u32, 2625 pub __bindgen_anon_1: kvm_assigned_irq__bindgen_ty_1, 2626 } 2627 #[repr(C)] 2628 #[derive(Copy, Clone)] 2629 pub union kvm_assigned_irq__bindgen_ty_1 { 2630 pub reserved: [u32; 12usize], 2631 } 2632 impl Default for kvm_assigned_irq__bindgen_ty_1 { default() -> Self2633 fn default() -> Self { 2634 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2635 unsafe { 2636 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2637 s.assume_init() 2638 } 2639 } 2640 } 2641 impl Default for kvm_assigned_irq { default() -> Self2642 fn default() -> Self { 2643 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2644 unsafe { 2645 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2646 s.assume_init() 2647 } 2648 } 2649 } 2650 #[repr(C)] 2651 #[derive(Debug, Default, Copy, Clone)] 2652 pub struct kvm_assigned_msix_nr { 2653 pub assigned_dev_id: u32, 2654 pub entry_nr: u16, 2655 pub padding: u16, 2656 } 2657 #[repr(C)] 2658 #[derive(Debug, Default, Copy, Clone)] 2659 pub struct kvm_assigned_msix_entry { 2660 pub assigned_dev_id: u32, 2661 pub gsi: u32, 2662 pub entry: u16, 2663 pub padding: [u16; 3usize], 2664 } 2665 #[repr(C)] 2666 #[derive(Debug, Default, Copy, Clone)] 2667 pub struct kvm_hyperv_eventfd { 2668 pub conn_id: u32, 2669 pub fd: i32, 2670 pub flags: u32, 2671 pub padding: [u32; 3usize], 2672 } 2673 #[repr(C)] 2674 #[derive(Debug, Default, Copy, Clone)] 2675 pub struct kvm_dirty_gfn { 2676 pub flags: u32, 2677 pub slot: u32, 2678 pub offset: u64, 2679 } 2680 #[repr(C)] 2681 #[derive(Debug, Default, Copy, Clone)] 2682 pub struct kvm_stats_header { 2683 pub flags: u32, 2684 pub name_size: u32, 2685 pub num_desc: u32, 2686 pub id_offset: u32, 2687 pub desc_offset: u32, 2688 pub data_offset: u32, 2689 } 2690 #[repr(C)] 2691 #[derive(Debug, Default)] 2692 pub struct kvm_stats_desc { 2693 pub flags: u32, 2694 pub exponent: i16, 2695 pub size: u16, 2696 pub offset: u32, 2697 pub bucket_size: u32, 2698 pub name: __IncompleteArrayField<::std::os::raw::c_char>, 2699 } 2700 #[repr(C)] 2701 #[derive(Copy, Clone)] 2702 pub struct kvm_s390_zpci_op { 2703 pub fh: u32, 2704 pub op: u8, 2705 pub pad: [u8; 3usize], 2706 pub u: kvm_s390_zpci_op__bindgen_ty_1, 2707 } 2708 #[repr(C)] 2709 #[derive(Copy, Clone)] 2710 pub union kvm_s390_zpci_op__bindgen_ty_1 { 2711 pub reg_aen: kvm_s390_zpci_op__bindgen_ty_1__bindgen_ty_1, 2712 pub reserved: [u64; 8usize], 2713 } 2714 #[repr(C)] 2715 #[derive(Debug, Default, Copy, Clone)] 2716 pub struct kvm_s390_zpci_op__bindgen_ty_1__bindgen_ty_1 { 2717 pub ibv: u64, 2718 pub sb: u64, 2719 pub flags: u32, 2720 pub noi: u32, 2721 pub isc: u8, 2722 pub sbo: u8, 2723 pub pad: u16, 2724 } 2725 impl Default for kvm_s390_zpci_op__bindgen_ty_1 { default() -> Self2726 fn default() -> Self { 2727 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2728 unsafe { 2729 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2730 s.assume_init() 2731 } 2732 } 2733 } 2734 impl Default for kvm_s390_zpci_op { default() -> Self2735 fn default() -> Self { 2736 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2737 unsafe { 2738 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2739 s.assume_init() 2740 } 2741 } 2742 } 2743 pub type __uint128_t = u128; 2744