1 /* automatically generated by tools/bindgen-all-the-things */ 2 3 #![allow(non_upper_case_globals)] 4 #![allow(non_camel_case_types)] 5 #![allow(non_snake_case)] 6 #![allow(dead_code)] 7 8 // Added by kvm_sys/bindgen.sh 9 pub const KVM_SYSTEM_EVENT_S2IDLE: u32 = 4; 10 pub const KVM_SYSTEM_EVENT_RESET_FLAG_PSCI_RESET2: u64 = 0x1; 11 // TODO(tjeznach): Remove this when reporting KVM_IOAPIC_NUM_PINS is no longer required. 12 pub const KVM_CAP_IOAPIC_NUM_PINS: u32 = 8191; 13 // TODO(qwandor): Update this once the pKVM patches are merged upstream with a stable capability ID. 14 pub const KVM_CAP_ARM_PROTECTED_VM: u32 = 0xffbadab1; 15 pub const KVM_CAP_ARM_PROTECTED_VM_FLAGS_SET_FW_IPA: u32 = 0; 16 pub const KVM_CAP_ARM_PROTECTED_VM_FLAGS_INFO: u32 = 1; 17 pub const KVM_VM_TYPE_ARM_PROTECTED: u32 = 0x80000000; 18 19 #[repr(C)] 20 #[derive(Default)] 21 pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]); 22 impl<T> __IncompleteArrayField<T> { 23 #[inline] new() -> Self24 pub const fn new() -> Self { 25 __IncompleteArrayField(::std::marker::PhantomData, []) 26 } 27 #[inline] as_ptr(&self) -> *const T28 pub fn as_ptr(&self) -> *const T { 29 self as *const _ as *const T 30 } 31 #[inline] as_mut_ptr(&mut self) -> *mut T32 pub fn as_mut_ptr(&mut self) -> *mut T { 33 self as *mut _ as *mut T 34 } 35 #[inline] as_slice(&self, len: usize) -> &[T]36 pub unsafe fn as_slice(&self, len: usize) -> &[T] { 37 ::std::slice::from_raw_parts(self.as_ptr(), len) 38 } 39 #[inline] as_mut_slice(&mut self, len: usize) -> &mut [T]40 pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { 41 ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len) 42 } 43 } 44 impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> { fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result45 fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { 46 fmt.write_str("__IncompleteArrayField") 47 } 48 } 49 pub const KVM_SPSR_EL1: u32 = 0; 50 pub const KVM_SPSR_SVC: u32 = 0; 51 pub const KVM_SPSR_ABT: u32 = 1; 52 pub const KVM_SPSR_UND: u32 = 2; 53 pub const KVM_SPSR_IRQ: u32 = 3; 54 pub const KVM_SPSR_FIQ: u32 = 4; 55 pub const KVM_NR_SPSR: u32 = 5; 56 pub const PSCI_0_2_FN_BASE: u32 = 2214592512; 57 pub const PSCI_0_2_64BIT: u32 = 1073741824; 58 pub const PSCI_0_2_FN64_BASE: u32 = 3288334336; 59 pub const PSCI_0_2_POWER_STATE_ID_MASK: u32 = 65535; 60 pub const PSCI_0_2_POWER_STATE_ID_SHIFT: u32 = 0; 61 pub const PSCI_0_2_POWER_STATE_TYPE_SHIFT: u32 = 16; 62 pub const PSCI_0_2_POWER_STATE_TYPE_MASK: u32 = 65536; 63 pub const PSCI_0_2_POWER_STATE_AFFL_SHIFT: u32 = 24; 64 pub const PSCI_0_2_POWER_STATE_AFFL_MASK: u32 = 50331648; 65 pub const PSCI_1_0_EXT_POWER_STATE_ID_MASK: u32 = 268435455; 66 pub const PSCI_1_0_EXT_POWER_STATE_ID_SHIFT: u32 = 0; 67 pub const PSCI_1_0_EXT_POWER_STATE_TYPE_SHIFT: u32 = 30; 68 pub const PSCI_1_0_EXT_POWER_STATE_TYPE_MASK: u32 = 1073741824; 69 pub const PSCI_0_2_AFFINITY_LEVEL_ON: u32 = 0; 70 pub const PSCI_0_2_AFFINITY_LEVEL_OFF: u32 = 1; 71 pub const PSCI_0_2_AFFINITY_LEVEL_ON_PENDING: u32 = 2; 72 pub const PSCI_0_2_TOS_UP_MIGRATE: u32 = 0; 73 pub const PSCI_0_2_TOS_UP_NO_MIGRATE: u32 = 1; 74 pub const PSCI_0_2_TOS_MP: u32 = 2; 75 pub const PSCI_VERSION_MAJOR_SHIFT: u32 = 16; 76 pub const PSCI_VERSION_MINOR_MASK: u32 = 65535; 77 pub const PSCI_VERSION_MAJOR_MASK: i32 = -65536; 78 pub const PSCI_1_0_FEATURES_CPU_SUSPEND_PF_SHIFT: u32 = 1; 79 pub const PSCI_1_0_FEATURES_CPU_SUSPEND_PF_MASK: u32 = 2; 80 pub const PSCI_1_0_SUSPEND_MODE_PC: u32 = 0; 81 pub const PSCI_1_0_SUSPEND_MODE_OSI: u32 = 1; 82 pub const PSCI_RET_SUCCESS: u32 = 0; 83 pub const PSCI_RET_NOT_SUPPORTED: i32 = -1; 84 pub const PSCI_RET_INVALID_PARAMS: i32 = -2; 85 pub const PSCI_RET_DENIED: i32 = -3; 86 pub const PSCI_RET_ALREADY_ON: i32 = -4; 87 pub const PSCI_RET_ON_PENDING: i32 = -5; 88 pub const PSCI_RET_INTERNAL_FAILURE: i32 = -6; 89 pub const PSCI_RET_NOT_PRESENT: i32 = -7; 90 pub const PSCI_RET_DISABLED: i32 = -8; 91 pub const PSCI_RET_INVALID_ADDRESS: i32 = -9; 92 pub const HWCAP_FP: u32 = 1; 93 pub const HWCAP_ASIMD: u32 = 2; 94 pub const HWCAP_EVTSTRM: u32 = 4; 95 pub const HWCAP_AES: u32 = 8; 96 pub const HWCAP_PMULL: u32 = 16; 97 pub const HWCAP_SHA1: u32 = 32; 98 pub const HWCAP_SHA2: u32 = 64; 99 pub const HWCAP_CRC32: u32 = 128; 100 pub const HWCAP_ATOMICS: u32 = 256; 101 pub const HWCAP_FPHP: u32 = 512; 102 pub const HWCAP_ASIMDHP: u32 = 1024; 103 pub const HWCAP_CPUID: u32 = 2048; 104 pub const HWCAP_ASIMDRDM: u32 = 4096; 105 pub const HWCAP_JSCVT: u32 = 8192; 106 pub const HWCAP_FCMA: u32 = 16384; 107 pub const HWCAP_LRCPC: u32 = 32768; 108 pub const HWCAP_DCPOP: u32 = 65536; 109 pub const HWCAP_SHA3: u32 = 131072; 110 pub const HWCAP_SM3: u32 = 262144; 111 pub const HWCAP_SM4: u32 = 524288; 112 pub const HWCAP_ASIMDDP: u32 = 1048576; 113 pub const HWCAP_SHA512: u32 = 2097152; 114 pub const HWCAP_SVE: u32 = 4194304; 115 pub const HWCAP_ASIMDFHM: u32 = 8388608; 116 pub const HWCAP_DIT: u32 = 16777216; 117 pub const HWCAP_USCAT: u32 = 33554432; 118 pub const HWCAP_ILRCPC: u32 = 67108864; 119 pub const HWCAP_FLAGM: u32 = 134217728; 120 pub const HWCAP_SSBS: u32 = 268435456; 121 pub const HWCAP_SB: u32 = 536870912; 122 pub const HWCAP_PACA: u32 = 1073741824; 123 pub const HWCAP_PACG: u32 = 2147483648; 124 pub const HWCAP2_DCPODP: u32 = 1; 125 pub const HWCAP2_SVE2: u32 = 2; 126 pub const HWCAP2_SVEAES: u32 = 4; 127 pub const HWCAP2_SVEPMULL: u32 = 8; 128 pub const HWCAP2_SVEBITPERM: u32 = 16; 129 pub const HWCAP2_SVESHA3: u32 = 32; 130 pub const HWCAP2_SVESM4: u32 = 64; 131 pub const HWCAP2_FLAGM2: u32 = 128; 132 pub const HWCAP2_FRINT: u32 = 256; 133 pub const HWCAP2_SVEI8MM: u32 = 512; 134 pub const HWCAP2_SVEF32MM: u32 = 1024; 135 pub const HWCAP2_SVEF64MM: u32 = 2048; 136 pub const HWCAP2_SVEBF16: u32 = 4096; 137 pub const HWCAP2_I8MM: u32 = 8192; 138 pub const HWCAP2_BF16: u32 = 16384; 139 pub const HWCAP2_DGH: u32 = 32768; 140 pub const HWCAP2_RNG: u32 = 65536; 141 pub const HWCAP2_BTI: u32 = 131072; 142 pub const HWCAP2_MTE: u32 = 262144; 143 pub const __SVE_VQ_BYTES: u32 = 16; 144 pub const __SVE_VQ_MIN: u32 = 1; 145 pub const __SVE_VQ_MAX: u32 = 512; 146 pub const __SVE_VL_MIN: u32 = 16; 147 pub const __SVE_VL_MAX: u32 = 8192; 148 pub const __SVE_NUM_ZREGS: u32 = 32; 149 pub const __SVE_NUM_PREGS: u32 = 16; 150 pub const __SVE_ZREGS_OFFSET: u32 = 0; 151 pub const PSR_MODE_EL0t: u32 = 0; 152 pub const PSR_MODE_EL1t: u32 = 4; 153 pub const PSR_MODE_EL1h: u32 = 5; 154 pub const PSR_MODE_EL2t: u32 = 8; 155 pub const PSR_MODE_EL2h: u32 = 9; 156 pub const PSR_MODE_EL3t: u32 = 12; 157 pub const PSR_MODE_EL3h: u32 = 13; 158 pub const PSR_MODE_MASK: u32 = 15; 159 pub const PSR_MODE32_BIT: u32 = 16; 160 pub const PSR_F_BIT: u32 = 64; 161 pub const PSR_I_BIT: u32 = 128; 162 pub const PSR_A_BIT: u32 = 256; 163 pub const PSR_D_BIT: u32 = 512; 164 pub const PSR_BTYPE_MASK: u32 = 3072; 165 pub const PSR_SSBS_BIT: u32 = 4096; 166 pub const PSR_PAN_BIT: u32 = 4194304; 167 pub const PSR_UAO_BIT: u32 = 8388608; 168 pub const PSR_DIT_BIT: u32 = 16777216; 169 pub const PSR_TCO_BIT: u32 = 33554432; 170 pub const PSR_V_BIT: u32 = 268435456; 171 pub const PSR_C_BIT: u32 = 536870912; 172 pub const PSR_Z_BIT: u32 = 1073741824; 173 pub const PSR_N_BIT: u32 = 2147483648; 174 pub const PSR_BTYPE_SHIFT: u32 = 10; 175 pub const PSR_f: u32 = 4278190080; 176 pub const PSR_s: u32 = 16711680; 177 pub const PSR_x: u32 = 65280; 178 pub const PSR_c: u32 = 255; 179 pub const PSR_BTYPE_NONE: u32 = 0; 180 pub const PSR_BTYPE_JC: u32 = 1024; 181 pub const PSR_BTYPE_C: u32 = 2048; 182 pub const PSR_BTYPE_J: u32 = 3072; 183 pub const PTRACE_SYSEMU: u32 = 31; 184 pub const PTRACE_SYSEMU_SINGLESTEP: u32 = 32; 185 pub const PTRACE_PEEKMTETAGS: u32 = 33; 186 pub const PTRACE_POKEMTETAGS: u32 = 34; 187 pub const SVE_PT_REGS_MASK: u32 = 1; 188 pub const SVE_PT_REGS_FPSIMD: u32 = 0; 189 pub const SVE_PT_REGS_SVE: u32 = 1; 190 pub const SVE_PT_VL_INHERIT: u32 = 2; 191 pub const SVE_PT_VL_ONEXEC: u32 = 4; 192 pub const KVM_COALESCED_MMIO_PAGE_OFFSET: u32 = 1; 193 pub const KVM_ARM_TARGET_AEM_V8: u32 = 0; 194 pub const KVM_ARM_TARGET_FOUNDATION_V8: u32 = 1; 195 pub const KVM_ARM_TARGET_CORTEX_A57: u32 = 2; 196 pub const KVM_ARM_TARGET_XGENE_POTENZA: u32 = 3; 197 pub const KVM_ARM_TARGET_CORTEX_A53: u32 = 4; 198 pub const KVM_ARM_TARGET_GENERIC_V8: u32 = 5; 199 pub const KVM_ARM_NUM_TARGETS: u32 = 6; 200 pub const KVM_ARM_DEVICE_TYPE_SHIFT: u32 = 0; 201 pub const KVM_ARM_DEVICE_TYPE_MASK: u32 = 65535; 202 pub const KVM_ARM_DEVICE_ID_SHIFT: u32 = 16; 203 pub const KVM_ARM_DEVICE_ID_MASK: u32 = 4294901760; 204 pub const KVM_ARM_DEVICE_VGIC_V2: u32 = 0; 205 pub const KVM_VGIC_V2_ADDR_TYPE_DIST: u32 = 0; 206 pub const KVM_VGIC_V2_ADDR_TYPE_CPU: u32 = 1; 207 pub const KVM_VGIC_V2_DIST_SIZE: u32 = 4096; 208 pub const KVM_VGIC_V2_CPU_SIZE: u32 = 8192; 209 pub const KVM_VGIC_V3_ADDR_TYPE_DIST: u32 = 2; 210 pub const KVM_VGIC_V3_ADDR_TYPE_REDIST: u32 = 3; 211 pub const KVM_VGIC_ITS_ADDR_TYPE: u32 = 4; 212 pub const KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION: u32 = 5; 213 pub const KVM_ARM_VCPU_POWER_OFF: u32 = 0; 214 pub const KVM_ARM_VCPU_EL1_32BIT: u32 = 1; 215 pub const KVM_ARM_VCPU_PSCI_0_2: u32 = 2; 216 pub const KVM_ARM_VCPU_PMU_V3: u32 = 3; 217 pub const KVM_ARM_VCPU_SVE: u32 = 4; 218 pub const KVM_ARM_VCPU_PTRAUTH_ADDRESS: u32 = 5; 219 pub const KVM_ARM_VCPU_PTRAUTH_GENERIC: u32 = 6; 220 pub const KVM_ARM_MAX_DBG_REGS: u32 = 16; 221 pub const KVM_GUESTDBG_USE_SW_BP: u32 = 65536; 222 pub const KVM_GUESTDBG_USE_HW: u32 = 131072; 223 pub const KVM_PMU_EVENT_ALLOW: u32 = 0; 224 pub const KVM_PMU_EVENT_DENY: u32 = 1; 225 pub const KVM_REG_ARM_COPROC_MASK: u32 = 268369920; 226 pub const KVM_REG_ARM_COPROC_SHIFT: u32 = 16; 227 pub const KVM_REG_ARM_CORE: u32 = 1048576; 228 pub const KVM_REG_ARM_DEMUX: u32 = 1114112; 229 pub const KVM_REG_ARM_DEMUX_ID_MASK: u32 = 65280; 230 pub const KVM_REG_ARM_DEMUX_ID_SHIFT: u32 = 8; 231 pub const KVM_REG_ARM_DEMUX_ID_CCSIDR: u32 = 0; 232 pub const KVM_REG_ARM_DEMUX_VAL_MASK: u32 = 255; 233 pub const KVM_REG_ARM_DEMUX_VAL_SHIFT: u32 = 0; 234 pub const KVM_REG_ARM64_SYSREG: u32 = 1245184; 235 pub const KVM_REG_ARM64_SYSREG_OP0_MASK: u32 = 49152; 236 pub const KVM_REG_ARM64_SYSREG_OP0_SHIFT: u32 = 14; 237 pub const KVM_REG_ARM64_SYSREG_OP1_MASK: u32 = 14336; 238 pub const KVM_REG_ARM64_SYSREG_OP1_SHIFT: u32 = 11; 239 pub const KVM_REG_ARM64_SYSREG_CRN_MASK: u32 = 1920; 240 pub const KVM_REG_ARM64_SYSREG_CRN_SHIFT: u32 = 7; 241 pub const KVM_REG_ARM64_SYSREG_CRM_MASK: u32 = 120; 242 pub const KVM_REG_ARM64_SYSREG_CRM_SHIFT: u32 = 3; 243 pub const KVM_REG_ARM64_SYSREG_OP2_MASK: u32 = 7; 244 pub const KVM_REG_ARM64_SYSREG_OP2_SHIFT: u32 = 0; 245 pub const KVM_REG_ARM_FW: u32 = 1310720; 246 pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_1_NOT_AVAIL: u32 = 0; 247 pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_1_AVAIL: u32 = 1; 248 pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_1_NOT_REQUIRED: u32 = 2; 249 pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_NOT_AVAIL: u32 = 0; 250 pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_UNKNOWN: u32 = 1; 251 pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_AVAIL: u32 = 2; 252 pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_NOT_REQUIRED: u32 = 3; 253 pub const KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_ENABLED: u32 = 16; 254 pub const KVM_REG_ARM64_SVE: u32 = 1376256; 255 pub const KVM_REG_ARM64_SVE_ZREG_BASE: u32 = 0; 256 pub const KVM_REG_ARM64_SVE_PREG_BASE: u32 = 1024; 257 pub const KVM_REG_ARM64_SVE_FFR_BASE: u32 = 1536; 258 pub const KVM_ARM64_SVE_NUM_ZREGS: u32 = 32; 259 pub const KVM_ARM64_SVE_NUM_PREGS: u32 = 16; 260 pub const KVM_ARM64_SVE_MAX_SLICES: u32 = 32; 261 pub const KVM_ARM64_SVE_VQ_MIN: u32 = 1; 262 pub const KVM_ARM64_SVE_VQ_MAX: u32 = 512; 263 pub const KVM_ARM64_SVE_VLS_WORDS: u32 = 8; 264 pub const KVM_DEV_ARM_VGIC_GRP_ADDR: u32 = 0; 265 pub const KVM_DEV_ARM_VGIC_GRP_DIST_REGS: u32 = 1; 266 pub const KVM_DEV_ARM_VGIC_GRP_CPU_REGS: u32 = 2; 267 pub const KVM_DEV_ARM_VGIC_CPUID_SHIFT: u32 = 32; 268 pub const KVM_DEV_ARM_VGIC_CPUID_MASK: u64 = 1095216660480; 269 pub const KVM_DEV_ARM_VGIC_V3_MPIDR_SHIFT: u32 = 32; 270 pub const KVM_DEV_ARM_VGIC_V3_MPIDR_MASK: i64 = -4294967296; 271 pub const KVM_DEV_ARM_VGIC_OFFSET_SHIFT: u32 = 0; 272 pub const KVM_DEV_ARM_VGIC_OFFSET_MASK: u32 = 4294967295; 273 pub const KVM_DEV_ARM_VGIC_SYSREG_INSTR_MASK: u32 = 65535; 274 pub const KVM_DEV_ARM_VGIC_GRP_NR_IRQS: u32 = 3; 275 pub const KVM_DEV_ARM_VGIC_GRP_CTRL: u32 = 4; 276 pub const KVM_DEV_ARM_VGIC_GRP_REDIST_REGS: u32 = 5; 277 pub const KVM_DEV_ARM_VGIC_GRP_CPU_SYSREGS: u32 = 6; 278 pub const KVM_DEV_ARM_VGIC_GRP_LEVEL_INFO: u32 = 7; 279 pub const KVM_DEV_ARM_VGIC_GRP_ITS_REGS: u32 = 8; 280 pub const KVM_DEV_ARM_VGIC_LINE_LEVEL_INFO_SHIFT: u32 = 10; 281 pub const KVM_DEV_ARM_VGIC_LINE_LEVEL_INFO_MASK: u32 = 4294966272; 282 pub const KVM_DEV_ARM_VGIC_LINE_LEVEL_INTID_MASK: u32 = 1023; 283 pub const VGIC_LEVEL_INFO_LINE_LEVEL: u32 = 0; 284 pub const KVM_DEV_ARM_VGIC_CTRL_INIT: u32 = 0; 285 pub const KVM_DEV_ARM_ITS_SAVE_TABLES: u32 = 1; 286 pub const KVM_DEV_ARM_ITS_RESTORE_TABLES: u32 = 2; 287 pub const KVM_DEV_ARM_VGIC_SAVE_PENDING_TABLES: u32 = 3; 288 pub const KVM_DEV_ARM_ITS_CTRL_RESET: u32 = 4; 289 pub const KVM_ARM_VCPU_PMU_V3_CTRL: u32 = 0; 290 pub const KVM_ARM_VCPU_PMU_V3_IRQ: u32 = 0; 291 pub const KVM_ARM_VCPU_PMU_V3_INIT: u32 = 1; 292 pub const KVM_ARM_VCPU_PMU_V3_FILTER: u32 = 2; 293 pub const KVM_ARM_VCPU_TIMER_CTRL: u32 = 1; 294 pub const KVM_ARM_VCPU_TIMER_IRQ_VTIMER: u32 = 0; 295 pub const KVM_ARM_VCPU_TIMER_IRQ_PTIMER: u32 = 1; 296 pub const KVM_ARM_VCPU_PVTIME_CTRL: u32 = 2; 297 pub const KVM_ARM_VCPU_PVTIME_IPA: u32 = 0; 298 pub const KVM_ARM_IRQ_VCPU2_SHIFT: u32 = 28; 299 pub const KVM_ARM_IRQ_VCPU2_MASK: u32 = 15; 300 pub const KVM_ARM_IRQ_TYPE_SHIFT: u32 = 24; 301 pub const KVM_ARM_IRQ_TYPE_MASK: u32 = 15; 302 pub const KVM_ARM_IRQ_VCPU_SHIFT: u32 = 16; 303 pub const KVM_ARM_IRQ_VCPU_MASK: u32 = 255; 304 pub const KVM_ARM_IRQ_NUM_SHIFT: u32 = 0; 305 pub const KVM_ARM_IRQ_NUM_MASK: u32 = 65535; 306 pub const KVM_ARM_IRQ_TYPE_CPU: u32 = 0; 307 pub const KVM_ARM_IRQ_TYPE_SPI: u32 = 1; 308 pub const KVM_ARM_IRQ_TYPE_PPI: u32 = 2; 309 pub const KVM_ARM_IRQ_CPU_IRQ: u32 = 0; 310 pub const KVM_ARM_IRQ_CPU_FIQ: u32 = 1; 311 pub const KVM_ARM_IRQ_GIC_MAX: u32 = 127; 312 pub const KVM_NR_IRQCHIPS: u32 = 1; 313 pub const KVM_PSCI_FN_BASE: u32 = 2512501342; 314 pub const KVM_PSCI_RET_SUCCESS: u32 = 0; 315 pub const KVM_PSCI_RET_NI: i32 = -1; 316 pub const KVM_PSCI_RET_INVAL: i32 = -2; 317 pub const KVM_PSCI_RET_DENIED: i32 = -3; 318 pub const KVM_API_VERSION: u32 = 12; 319 pub const KVM_TRC_SHIFT: u32 = 16; 320 pub const KVM_TRC_ENTRYEXIT: u32 = 65536; 321 pub const KVM_TRC_HANDLER: u32 = 131072; 322 pub const KVM_TRC_VMENTRY: u32 = 65537; 323 pub const KVM_TRC_VMEXIT: u32 = 65538; 324 pub const KVM_TRC_PAGE_FAULT: u32 = 131073; 325 pub const KVM_TRC_HEAD_SIZE: u32 = 12; 326 pub const KVM_TRC_CYCLE_SIZE: u32 = 8; 327 pub const KVM_TRC_EXTRA_MAX: u32 = 7; 328 pub const KVM_TRC_INJ_VIRQ: u32 = 131074; 329 pub const KVM_TRC_REDELIVER_EVT: u32 = 131075; 330 pub const KVM_TRC_PEND_INTR: u32 = 131076; 331 pub const KVM_TRC_IO_READ: u32 = 131077; 332 pub const KVM_TRC_IO_WRITE: u32 = 131078; 333 pub const KVM_TRC_CR_READ: u32 = 131079; 334 pub const KVM_TRC_CR_WRITE: u32 = 131080; 335 pub const KVM_TRC_DR_READ: u32 = 131081; 336 pub const KVM_TRC_DR_WRITE: u32 = 131082; 337 pub const KVM_TRC_MSR_READ: u32 = 131083; 338 pub const KVM_TRC_MSR_WRITE: u32 = 131084; 339 pub const KVM_TRC_CPUID: u32 = 131085; 340 pub const KVM_TRC_INTR: u32 = 131086; 341 pub const KVM_TRC_NMI: u32 = 131087; 342 pub const KVM_TRC_VMMCALL: u32 = 131088; 343 pub const KVM_TRC_HLT: u32 = 131089; 344 pub const KVM_TRC_CLTS: u32 = 131090; 345 pub const KVM_TRC_LMSW: u32 = 131091; 346 pub const KVM_TRC_APIC_ACCESS: u32 = 131092; 347 pub const KVM_TRC_TDP_FAULT: u32 = 131093; 348 pub const KVM_TRC_GTLB_WRITE: u32 = 131094; 349 pub const KVM_TRC_STLB_WRITE: u32 = 131095; 350 pub const KVM_TRC_STLB_INVAL: u32 = 131096; 351 pub const KVM_TRC_PPC_INSTR: u32 = 131097; 352 pub const KVM_MEM_LOG_DIRTY_PAGES: u32 = 1; 353 pub const KVM_MEM_READONLY: u32 = 2; 354 pub const KVM_PIT_SPEAKER_DUMMY: u32 = 1; 355 pub const KVM_S390_CMMA_PEEK: u32 = 1; 356 pub const KVM_EXIT_HYPERV_SYNIC: u32 = 1; 357 pub const KVM_EXIT_HYPERV_HCALL: u32 = 2; 358 pub const KVM_EXIT_HYPERV_SYNDBG: u32 = 3; 359 pub const KVM_S390_GET_SKEYS_NONE: u32 = 1; 360 pub const KVM_S390_SKEYS_MAX: u32 = 1048576; 361 pub const KVM_EXIT_UNKNOWN: u32 = 0; 362 pub const KVM_EXIT_EXCEPTION: u32 = 1; 363 pub const KVM_EXIT_IO: u32 = 2; 364 pub const KVM_EXIT_HYPERCALL: u32 = 3; 365 pub const KVM_EXIT_DEBUG: u32 = 4; 366 pub const KVM_EXIT_HLT: u32 = 5; 367 pub const KVM_EXIT_MMIO: u32 = 6; 368 pub const KVM_EXIT_IRQ_WINDOW_OPEN: u32 = 7; 369 pub const KVM_EXIT_SHUTDOWN: u32 = 8; 370 pub const KVM_EXIT_FAIL_ENTRY: u32 = 9; 371 pub const KVM_EXIT_INTR: u32 = 10; 372 pub const KVM_EXIT_SET_TPR: u32 = 11; 373 pub const KVM_EXIT_TPR_ACCESS: u32 = 12; 374 pub const KVM_EXIT_S390_SIEIC: u32 = 13; 375 pub const KVM_EXIT_S390_RESET: u32 = 14; 376 pub const KVM_EXIT_DCR: u32 = 15; 377 pub const KVM_EXIT_NMI: u32 = 16; 378 pub const KVM_EXIT_INTERNAL_ERROR: u32 = 17; 379 pub const KVM_EXIT_OSI: u32 = 18; 380 pub const KVM_EXIT_PAPR_HCALL: u32 = 19; 381 pub const KVM_EXIT_S390_UCONTROL: u32 = 20; 382 pub const KVM_EXIT_WATCHDOG: u32 = 21; 383 pub const KVM_EXIT_S390_TSCH: u32 = 22; 384 pub const KVM_EXIT_EPR: u32 = 23; 385 pub const KVM_EXIT_SYSTEM_EVENT: u32 = 24; 386 pub const KVM_EXIT_S390_STSI: u32 = 25; 387 pub const KVM_EXIT_IOAPIC_EOI: u32 = 26; 388 pub const KVM_EXIT_HYPERV: u32 = 27; 389 pub const KVM_EXIT_ARM_NISV: u32 = 28; 390 pub const KVM_EXIT_X86_RDMSR: u32 = 29; 391 pub const KVM_EXIT_X86_WRMSR: u32 = 30; 392 pub const KVM_INTERNAL_ERROR_EMULATION: u32 = 1; 393 pub const KVM_INTERNAL_ERROR_SIMUL_EX: u32 = 2; 394 pub const KVM_INTERNAL_ERROR_DELIVERY_EV: u32 = 3; 395 pub const KVM_INTERNAL_ERROR_UNEXPECTED_EXIT_REASON: u32 = 4; 396 pub const KVM_EXIT_IO_IN: u32 = 0; 397 pub const KVM_EXIT_IO_OUT: u32 = 1; 398 pub const KVM_S390_RESET_POR: u32 = 1; 399 pub const KVM_S390_RESET_CLEAR: u32 = 2; 400 pub const KVM_S390_RESET_SUBSYSTEM: u32 = 4; 401 pub const KVM_S390_RESET_CPU_INIT: u32 = 8; 402 pub const KVM_S390_RESET_IPL: u32 = 16; 403 pub const KVM_SYSTEM_EVENT_SHUTDOWN: u32 = 1; 404 pub const KVM_SYSTEM_EVENT_RESET: u32 = 2; 405 pub const KVM_SYSTEM_EVENT_CRASH: u32 = 3; 406 pub const KVM_MSR_EXIT_REASON_INVAL: u32 = 1; 407 pub const KVM_MSR_EXIT_REASON_UNKNOWN: u32 = 2; 408 pub const KVM_MSR_EXIT_REASON_FILTER: u32 = 4; 409 pub const SYNC_REGS_SIZE_BYTES: u32 = 2048; 410 pub const KVM_S390_MEMOP_LOGICAL_READ: u32 = 0; 411 pub const KVM_S390_MEMOP_LOGICAL_WRITE: u32 = 1; 412 pub const KVM_S390_MEMOP_SIDA_READ: u32 = 2; 413 pub const KVM_S390_MEMOP_SIDA_WRITE: u32 = 3; 414 pub const KVM_S390_MEMOP_F_CHECK_ONLY: u32 = 1; 415 pub const KVM_S390_MEMOP_F_INJECT_EXCEPTION: u32 = 2; 416 pub const KVM_MP_STATE_RUNNABLE: u32 = 0; 417 pub const KVM_MP_STATE_UNINITIALIZED: u32 = 1; 418 pub const KVM_MP_STATE_INIT_RECEIVED: u32 = 2; 419 pub const KVM_MP_STATE_HALTED: u32 = 3; 420 pub const KVM_MP_STATE_SIPI_RECEIVED: u32 = 4; 421 pub const KVM_MP_STATE_STOPPED: u32 = 5; 422 pub const KVM_MP_STATE_CHECK_STOP: u32 = 6; 423 pub const KVM_MP_STATE_OPERATING: u32 = 7; 424 pub const KVM_MP_STATE_LOAD: u32 = 8; 425 pub const KVM_S390_SIGP_STOP: u32 = 4294836224; 426 pub const KVM_S390_PROGRAM_INT: u32 = 4294836225; 427 pub const KVM_S390_SIGP_SET_PREFIX: u32 = 4294836226; 428 pub const KVM_S390_RESTART: u32 = 4294836227; 429 pub const KVM_S390_INT_PFAULT_INIT: u32 = 4294836228; 430 pub const KVM_S390_INT_PFAULT_DONE: u32 = 4294836229; 431 pub const KVM_S390_MCHK: u32 = 4294840320; 432 pub const KVM_S390_INT_CLOCK_COMP: u32 = 4294905860; 433 pub const KVM_S390_INT_CPU_TIMER: u32 = 4294905861; 434 pub const KVM_S390_INT_VIRTIO: u32 = 4294911491; 435 pub const KVM_S390_INT_SERVICE: u32 = 4294910977; 436 pub const KVM_S390_INT_EMERGENCY: u32 = 4294906369; 437 pub const KVM_S390_INT_EXTERNAL_CALL: u32 = 4294906370; 438 pub const KVM_S390_INT_IO_MIN: u32 = 0; 439 pub const KVM_S390_INT_IO_MAX: u32 = 4294836223; 440 pub const KVM_S390_INT_IO_AI_MASK: u32 = 67108864; 441 pub const KVM_S390_PGM_FLAGS_ILC_VALID: u32 = 1; 442 pub const KVM_S390_PGM_FLAGS_ILC_0: u32 = 2; 443 pub const KVM_S390_PGM_FLAGS_ILC_1: u32 = 4; 444 pub const KVM_S390_PGM_FLAGS_ILC_MASK: u32 = 6; 445 pub const KVM_S390_PGM_FLAGS_NO_REWIND: u32 = 8; 446 pub const KVM_S390_STOP_FLAG_STORE_STATUS: u32 = 1; 447 pub const KVM_GUESTDBG_ENABLE: u32 = 1; 448 pub const KVM_GUESTDBG_SINGLESTEP: u32 = 2; 449 pub const KVM_X86_DISABLE_EXITS_MWAIT: u32 = 1; 450 pub const KVM_X86_DISABLE_EXITS_HLT: u32 = 2; 451 pub const KVM_X86_DISABLE_EXITS_PAUSE: u32 = 4; 452 pub const KVM_X86_DISABLE_EXITS_CSTATE: u32 = 8; 453 pub const KVM_X86_DISABLE_VALID_EXITS: u32 = 15; 454 pub const KVM_PPC_PVINFO_FLAGS_EV_IDLE: u32 = 1; 455 pub const KVM_PPC_PAGE_SIZES_MAX_SZ: u32 = 8; 456 pub const KVM_PPC_PAGE_SIZES_REAL: u32 = 1; 457 pub const KVM_PPC_1T_SEGMENTS: u32 = 2; 458 pub const KVM_PPC_NO_HASH: u32 = 4; 459 pub const KVMIO: u32 = 174; 460 pub const KVM_VM_S390_UCONTROL: u32 = 1; 461 pub const KVM_VM_PPC_HV: u32 = 1; 462 pub const KVM_VM_PPC_PR: u32 = 2; 463 pub const KVM_VM_MIPS_AUTO: u32 = 0; 464 pub const KVM_VM_MIPS_VZ: u32 = 1; 465 pub const KVM_VM_MIPS_TE: u32 = 2; 466 pub const KVM_S390_SIE_PAGE_OFFSET: u32 = 1; 467 pub const KVM_VM_TYPE_ARM_IPA_SIZE_MASK: u32 = 255; 468 pub const KVM_CAP_IRQCHIP: u32 = 0; 469 pub const KVM_CAP_HLT: u32 = 1; 470 pub const KVM_CAP_MMU_SHADOW_CACHE_CONTROL: u32 = 2; 471 pub const KVM_CAP_USER_MEMORY: u32 = 3; 472 pub const KVM_CAP_SET_TSS_ADDR: u32 = 4; 473 pub const KVM_CAP_VAPIC: u32 = 6; 474 pub const KVM_CAP_EXT_CPUID: u32 = 7; 475 pub const KVM_CAP_CLOCKSOURCE: u32 = 8; 476 pub const KVM_CAP_NR_VCPUS: u32 = 9; 477 pub const KVM_CAP_NR_MEMSLOTS: u32 = 10; 478 pub const KVM_CAP_PIT: u32 = 11; 479 pub const KVM_CAP_NOP_IO_DELAY: u32 = 12; 480 pub const KVM_CAP_PV_MMU: u32 = 13; 481 pub const KVM_CAP_MP_STATE: u32 = 14; 482 pub const KVM_CAP_COALESCED_MMIO: u32 = 15; 483 pub const KVM_CAP_SYNC_MMU: u32 = 16; 484 pub const KVM_CAP_IOMMU: u32 = 18; 485 pub const KVM_CAP_DESTROY_MEMORY_REGION_WORKS: u32 = 21; 486 pub const KVM_CAP_USER_NMI: u32 = 22; 487 pub const KVM_CAP_SET_GUEST_DEBUG: u32 = 23; 488 pub const KVM_CAP_IRQ_ROUTING: u32 = 25; 489 pub const KVM_CAP_IRQ_INJECT_STATUS: u32 = 26; 490 pub const KVM_CAP_ASSIGN_DEV_IRQ: u32 = 29; 491 pub const KVM_CAP_JOIN_MEMORY_REGIONS_WORKS: u32 = 30; 492 pub const KVM_CAP_IRQFD: u32 = 32; 493 pub const KVM_CAP_SET_BOOT_CPU_ID: u32 = 34; 494 pub const KVM_CAP_IOEVENTFD: u32 = 36; 495 pub const KVM_CAP_SET_IDENTITY_MAP_ADDR: u32 = 37; 496 pub const KVM_CAP_ADJUST_CLOCK: u32 = 39; 497 pub const KVM_CAP_INTERNAL_ERROR_DATA: u32 = 40; 498 pub const KVM_CAP_VCPU_EVENTS: u32 = 41; 499 pub const KVM_CAP_S390_PSW: u32 = 42; 500 pub const KVM_CAP_PPC_SEGSTATE: u32 = 43; 501 pub const KVM_CAP_HYPERV: u32 = 44; 502 pub const KVM_CAP_HYPERV_VAPIC: u32 = 45; 503 pub const KVM_CAP_HYPERV_SPIN: u32 = 46; 504 pub const KVM_CAP_PCI_SEGMENT: u32 = 47; 505 pub const KVM_CAP_PPC_PAIRED_SINGLES: u32 = 48; 506 pub const KVM_CAP_INTR_SHADOW: u32 = 49; 507 pub const KVM_CAP_X86_ROBUST_SINGLESTEP: u32 = 51; 508 pub const KVM_CAP_PPC_OSI: u32 = 52; 509 pub const KVM_CAP_PPC_UNSET_IRQ: u32 = 53; 510 pub const KVM_CAP_ENABLE_CAP: u32 = 54; 511 pub const KVM_CAP_PPC_GET_PVINFO: u32 = 57; 512 pub const KVM_CAP_PPC_IRQ_LEVEL: u32 = 58; 513 pub const KVM_CAP_ASYNC_PF: u32 = 59; 514 pub const KVM_CAP_TSC_CONTROL: u32 = 60; 515 pub const KVM_CAP_GET_TSC_KHZ: u32 = 61; 516 pub const KVM_CAP_PPC_BOOKE_SREGS: u32 = 62; 517 pub const KVM_CAP_SPAPR_TCE: u32 = 63; 518 pub const KVM_CAP_PPC_SMT: u32 = 64; 519 pub const KVM_CAP_PPC_RMA: u32 = 65; 520 pub const KVM_CAP_MAX_VCPUS: u32 = 66; 521 pub const KVM_CAP_PPC_HIOR: u32 = 67; 522 pub const KVM_CAP_PPC_PAPR: u32 = 68; 523 pub const KVM_CAP_SW_TLB: u32 = 69; 524 pub const KVM_CAP_ONE_REG: u32 = 70; 525 pub const KVM_CAP_S390_GMAP: u32 = 71; 526 pub const KVM_CAP_TSC_DEADLINE_TIMER: u32 = 72; 527 pub const KVM_CAP_S390_UCONTROL: u32 = 73; 528 pub const KVM_CAP_SYNC_REGS: u32 = 74; 529 pub const KVM_CAP_PCI_2_3: u32 = 75; 530 pub const KVM_CAP_KVMCLOCK_CTRL: u32 = 76; 531 pub const KVM_CAP_SIGNAL_MSI: u32 = 77; 532 pub const KVM_CAP_PPC_GET_SMMU_INFO: u32 = 78; 533 pub const KVM_CAP_S390_COW: u32 = 79; 534 pub const KVM_CAP_PPC_ALLOC_HTAB: u32 = 80; 535 pub const KVM_CAP_READONLY_MEM: u32 = 81; 536 pub const KVM_CAP_IRQFD_RESAMPLE: u32 = 82; 537 pub const KVM_CAP_PPC_BOOKE_WATCHDOG: u32 = 83; 538 pub const KVM_CAP_PPC_HTAB_FD: u32 = 84; 539 pub const KVM_CAP_S390_CSS_SUPPORT: u32 = 85; 540 pub const KVM_CAP_PPC_EPR: u32 = 86; 541 pub const KVM_CAP_ARM_PSCI: u32 = 87; 542 pub const KVM_CAP_ARM_SET_DEVICE_ADDR: u32 = 88; 543 pub const KVM_CAP_DEVICE_CTRL: u32 = 89; 544 pub const KVM_CAP_IRQ_MPIC: u32 = 90; 545 pub const KVM_CAP_PPC_RTAS: u32 = 91; 546 pub const KVM_CAP_IRQ_XICS: u32 = 92; 547 pub const KVM_CAP_ARM_EL1_32BIT: u32 = 93; 548 pub const KVM_CAP_SPAPR_MULTITCE: u32 = 94; 549 pub const KVM_CAP_EXT_EMUL_CPUID: u32 = 95; 550 pub const KVM_CAP_HYPERV_TIME: u32 = 96; 551 pub const KVM_CAP_IOAPIC_POLARITY_IGNORED: u32 = 97; 552 pub const KVM_CAP_ENABLE_CAP_VM: u32 = 98; 553 pub const KVM_CAP_S390_IRQCHIP: u32 = 99; 554 pub const KVM_CAP_IOEVENTFD_NO_LENGTH: u32 = 100; 555 pub const KVM_CAP_VM_ATTRIBUTES: u32 = 101; 556 pub const KVM_CAP_ARM_PSCI_0_2: u32 = 102; 557 pub const KVM_CAP_PPC_FIXUP_HCALL: u32 = 103; 558 pub const KVM_CAP_PPC_ENABLE_HCALL: u32 = 104; 559 pub const KVM_CAP_CHECK_EXTENSION_VM: u32 = 105; 560 pub const KVM_CAP_S390_USER_SIGP: u32 = 106; 561 pub const KVM_CAP_S390_VECTOR_REGISTERS: u32 = 107; 562 pub const KVM_CAP_S390_MEM_OP: u32 = 108; 563 pub const KVM_CAP_S390_USER_STSI: u32 = 109; 564 pub const KVM_CAP_S390_SKEYS: u32 = 110; 565 pub const KVM_CAP_MIPS_FPU: u32 = 111; 566 pub const KVM_CAP_MIPS_MSA: u32 = 112; 567 pub const KVM_CAP_S390_INJECT_IRQ: u32 = 113; 568 pub const KVM_CAP_S390_IRQ_STATE: u32 = 114; 569 pub const KVM_CAP_PPC_HWRNG: u32 = 115; 570 pub const KVM_CAP_DISABLE_QUIRKS: u32 = 116; 571 pub const KVM_CAP_X86_SMM: u32 = 117; 572 pub const KVM_CAP_MULTI_ADDRESS_SPACE: u32 = 118; 573 pub const KVM_CAP_GUEST_DEBUG_HW_BPS: u32 = 119; 574 pub const KVM_CAP_GUEST_DEBUG_HW_WPS: u32 = 120; 575 pub const KVM_CAP_SPLIT_IRQCHIP: u32 = 121; 576 pub const KVM_CAP_IOEVENTFD_ANY_LENGTH: u32 = 122; 577 pub const KVM_CAP_HYPERV_SYNIC: u32 = 123; 578 pub const KVM_CAP_S390_RI: u32 = 124; 579 pub const KVM_CAP_SPAPR_TCE_64: u32 = 125; 580 pub const KVM_CAP_ARM_PMU_V3: u32 = 126; 581 pub const KVM_CAP_VCPU_ATTRIBUTES: u32 = 127; 582 pub const KVM_CAP_MAX_VCPU_ID: u32 = 128; 583 pub const KVM_CAP_X2APIC_API: u32 = 129; 584 pub const KVM_CAP_S390_USER_INSTR0: u32 = 130; 585 pub const KVM_CAP_MSI_DEVID: u32 = 131; 586 pub const KVM_CAP_PPC_HTM: u32 = 132; 587 pub const KVM_CAP_SPAPR_RESIZE_HPT: u32 = 133; 588 pub const KVM_CAP_PPC_MMU_RADIX: u32 = 134; 589 pub const KVM_CAP_PPC_MMU_HASH_V3: u32 = 135; 590 pub const KVM_CAP_IMMEDIATE_EXIT: u32 = 136; 591 pub const KVM_CAP_MIPS_VZ: u32 = 137; 592 pub const KVM_CAP_MIPS_TE: u32 = 138; 593 pub const KVM_CAP_MIPS_64BIT: u32 = 139; 594 pub const KVM_CAP_S390_GS: u32 = 140; 595 pub const KVM_CAP_S390_AIS: u32 = 141; 596 pub const KVM_CAP_SPAPR_TCE_VFIO: u32 = 142; 597 pub const KVM_CAP_X86_DISABLE_EXITS: u32 = 143; 598 pub const KVM_CAP_ARM_USER_IRQ: u32 = 144; 599 pub const KVM_CAP_S390_CMMA_MIGRATION: u32 = 145; 600 pub const KVM_CAP_PPC_FWNMI: u32 = 146; 601 pub const KVM_CAP_PPC_SMT_POSSIBLE: u32 = 147; 602 pub const KVM_CAP_HYPERV_SYNIC2: u32 = 148; 603 pub const KVM_CAP_HYPERV_VP_INDEX: u32 = 149; 604 pub const KVM_CAP_S390_AIS_MIGRATION: u32 = 150; 605 pub const KVM_CAP_PPC_GET_CPU_CHAR: u32 = 151; 606 pub const KVM_CAP_S390_BPB: u32 = 152; 607 pub const KVM_CAP_GET_MSR_FEATURES: u32 = 153; 608 pub const KVM_CAP_HYPERV_EVENTFD: u32 = 154; 609 pub const KVM_CAP_HYPERV_TLBFLUSH: u32 = 155; 610 pub const KVM_CAP_S390_HPAGE_1M: u32 = 156; 611 pub const KVM_CAP_NESTED_STATE: u32 = 157; 612 pub const KVM_CAP_ARM_INJECT_SERROR_ESR: u32 = 158; 613 pub const KVM_CAP_MSR_PLATFORM_INFO: u32 = 159; 614 pub const KVM_CAP_PPC_NESTED_HV: u32 = 160; 615 pub const KVM_CAP_HYPERV_SEND_IPI: u32 = 161; 616 pub const KVM_CAP_COALESCED_PIO: u32 = 162; 617 pub const KVM_CAP_HYPERV_ENLIGHTENED_VMCS: u32 = 163; 618 pub const KVM_CAP_EXCEPTION_PAYLOAD: u32 = 164; 619 pub const KVM_CAP_ARM_VM_IPA_SIZE: u32 = 165; 620 pub const KVM_CAP_MANUAL_DIRTY_LOG_PROTECT: u32 = 166; 621 pub const KVM_CAP_HYPERV_CPUID: u32 = 167; 622 pub const KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2: u32 = 168; 623 pub const KVM_CAP_PPC_IRQ_XIVE: u32 = 169; 624 pub const KVM_CAP_ARM_SVE: u32 = 170; 625 pub const KVM_CAP_ARM_PTRAUTH_ADDRESS: u32 = 171; 626 pub const KVM_CAP_ARM_PTRAUTH_GENERIC: u32 = 172; 627 pub const KVM_CAP_PMU_EVENT_FILTER: u32 = 173; 628 pub const KVM_CAP_ARM_IRQ_LINE_LAYOUT_2: u32 = 174; 629 pub const KVM_CAP_HYPERV_DIRECT_TLBFLUSH: u32 = 175; 630 pub const KVM_CAP_PPC_GUEST_DEBUG_SSTEP: u32 = 176; 631 pub const KVM_CAP_ARM_NISV_TO_USER: u32 = 177; 632 pub const KVM_CAP_ARM_INJECT_EXT_DABT: u32 = 178; 633 pub const KVM_CAP_S390_VCPU_RESETS: u32 = 179; 634 pub const KVM_CAP_S390_PROTECTED: u32 = 180; 635 pub const KVM_CAP_PPC_SECURE_GUEST: u32 = 181; 636 pub const KVM_CAP_HALT_POLL: u32 = 182; 637 pub const KVM_CAP_ASYNC_PF_INT: u32 = 183; 638 pub const KVM_CAP_LAST_CPU: u32 = 184; 639 pub const KVM_CAP_SMALLER_MAXPHYADDR: u32 = 185; 640 pub const KVM_CAP_S390_DIAG318: u32 = 186; 641 pub const KVM_CAP_STEAL_TIME: u32 = 187; 642 pub const KVM_CAP_X86_USER_SPACE_MSR: u32 = 188; 643 pub const KVM_CAP_X86_MSR_FILTER: u32 = 189; 644 pub const KVM_CAP_ENFORCE_PV_FEATURE_CPUID: u32 = 190; 645 pub const KVM_IRQ_ROUTING_IRQCHIP: u32 = 1; 646 pub const KVM_IRQ_ROUTING_MSI: u32 = 2; 647 pub const KVM_IRQ_ROUTING_S390_ADAPTER: u32 = 3; 648 pub const KVM_IRQ_ROUTING_HV_SINT: u32 = 4; 649 pub const KVM_IRQFD_FLAG_DEASSIGN: u32 = 1; 650 pub const KVM_IRQFD_FLAG_RESAMPLE: u32 = 2; 651 pub const KVM_CLOCK_TSC_STABLE: u32 = 2; 652 pub const KVM_MMU_FSL_BOOKE_NOHV: u32 = 0; 653 pub const KVM_MMU_FSL_BOOKE_HV: u32 = 1; 654 pub const KVM_REG_ARCH_MASK: i64 = -72057594037927936; 655 pub const KVM_REG_GENERIC: u32 = 0; 656 pub const KVM_REG_PPC: u64 = 1152921504606846976; 657 pub const KVM_REG_X86: u64 = 2305843009213693952; 658 pub const KVM_REG_IA64: u64 = 3458764513820540928; 659 pub const KVM_REG_ARM: u64 = 4611686018427387904; 660 pub const KVM_REG_S390: u64 = 5764607523034234880; 661 pub const KVM_REG_ARM64: u64 = 6917529027641081856; 662 pub const KVM_REG_MIPS: u64 = 8070450532247928832; 663 pub const KVM_REG_RISCV: i64 = -9223372036854775808; 664 pub const KVM_REG_SIZE_SHIFT: u32 = 52; 665 pub const KVM_REG_SIZE_MASK: u64 = 67553994410557440; 666 pub const KVM_REG_SIZE_U8: u32 = 0; 667 pub const KVM_REG_SIZE_U16: u64 = 4503599627370496; 668 pub const KVM_REG_SIZE_U32: u64 = 9007199254740992; 669 pub const KVM_REG_SIZE_U64: u64 = 13510798882111488; 670 pub const KVM_REG_SIZE_U128: u64 = 18014398509481984; 671 pub const KVM_REG_SIZE_U256: u64 = 22517998136852480; 672 pub const KVM_REG_SIZE_U512: u64 = 27021597764222976; 673 pub const KVM_REG_SIZE_U1024: u64 = 31525197391593472; 674 pub const KVM_REG_SIZE_U2048: u64 = 36028797018963968; 675 pub const KVM_MSI_VALID_DEVID: u32 = 1; 676 pub const KVM_CREATE_DEVICE_TEST: u32 = 1; 677 pub const KVM_DEV_VFIO_GROUP: u32 = 1; 678 pub const KVM_DEV_VFIO_GROUP_ADD: u32 = 1; 679 pub const KVM_DEV_VFIO_GROUP_DEL: u32 = 2; 680 pub const KVM_DEV_VFIO_GROUP_SET_SPAPR_TCE: u32 = 3; 681 pub const KVM_S390_STORE_STATUS_NOADDR: i32 = -1; 682 pub const KVM_S390_STORE_STATUS_PREFIXED: i32 = -2; 683 pub const KVM_DEV_ASSIGN_ENABLE_IOMMU: u32 = 1; 684 pub const KVM_DEV_ASSIGN_PCI_2_3: u32 = 2; 685 pub const KVM_DEV_ASSIGN_MASK_INTX: u32 = 4; 686 pub const KVM_DEV_IRQ_HOST_INTX: u32 = 1; 687 pub const KVM_DEV_IRQ_HOST_MSI: u32 = 2; 688 pub const KVM_DEV_IRQ_HOST_MSIX: u32 = 4; 689 pub const KVM_DEV_IRQ_GUEST_INTX: u32 = 256; 690 pub const KVM_DEV_IRQ_GUEST_MSI: u32 = 512; 691 pub const KVM_DEV_IRQ_GUEST_MSIX: u32 = 1024; 692 pub const KVM_DEV_IRQ_HOST_MASK: u32 = 255; 693 pub const KVM_DEV_IRQ_GUEST_MASK: u32 = 65280; 694 pub const KVM_MAX_MSIX_PER_DEV: u32 = 256; 695 pub const KVM_X2APIC_API_USE_32BIT_IDS: u32 = 1; 696 pub const KVM_X2APIC_API_DISABLE_BROADCAST_QUIRK: u32 = 2; 697 pub const KVM_ARM_DEV_EL1_VTIMER: u32 = 1; 698 pub const KVM_ARM_DEV_EL1_PTIMER: u32 = 2; 699 pub const KVM_ARM_DEV_PMU: u32 = 4; 700 pub const KVM_HYPERV_CONN_ID_MASK: u32 = 16777215; 701 pub const KVM_HYPERV_EVENTFD_DEASSIGN: u32 = 1; 702 pub const KVM_DIRTY_LOG_MANUAL_PROTECT_ENABLE: u32 = 1; 703 pub const KVM_DIRTY_LOG_INITIALLY_SET: u32 = 2; 704 pub type __le16 = u16; 705 pub type __be16 = u16; 706 pub type __le32 = u32; 707 pub type __be32 = u32; 708 pub type __le64 = u64; 709 pub type __be64 = u64; 710 pub type __sum16 = u16; 711 pub type __wsum = u32; 712 pub type __poll_t = ::std::os::raw::c_uint; 713 #[repr(C)] 714 #[derive(Debug, Default, Copy, Clone)] 715 pub struct user_pt_regs { 716 pub regs: [u64; 31usize], 717 pub sp: u64, 718 pub pc: u64, 719 pub pstate: u64, 720 } 721 #[repr(C)] 722 #[repr(align(16))] 723 #[derive(Debug, Default, Copy, Clone)] 724 pub struct user_fpsimd_state { 725 pub vregs: [__uint128_t; 32usize], 726 pub fpsr: u32, 727 pub fpcr: u32, 728 pub __reserved: [u32; 2usize], 729 } 730 #[repr(C)] 731 #[derive(Debug, Default, Copy, Clone)] 732 pub struct user_hwdebug_state { 733 pub dbg_info: u32, 734 pub pad: u32, 735 pub dbg_regs: [user_hwdebug_state__bindgen_ty_1; 16usize], 736 } 737 #[repr(C)] 738 #[derive(Debug, Default, Copy, Clone)] 739 pub struct user_hwdebug_state__bindgen_ty_1 { 740 pub addr: u64, 741 pub ctrl: u32, 742 pub pad: u32, 743 } 744 #[repr(C)] 745 #[derive(Debug, Default, Copy, Clone)] 746 pub struct user_sve_header { 747 pub size: u32, 748 pub max_size: u32, 749 pub vl: u16, 750 pub max_vl: u16, 751 pub flags: u16, 752 pub __reserved: u16, 753 } 754 #[repr(C)] 755 #[derive(Debug, Default, Copy, Clone)] 756 pub struct user_pac_mask { 757 pub data_mask: u64, 758 pub insn_mask: u64, 759 } 760 #[repr(C)] 761 #[repr(align(16))] 762 #[derive(Debug, Default, Copy, Clone)] 763 pub struct user_pac_address_keys { 764 pub apiakey: __uint128_t, 765 pub apibkey: __uint128_t, 766 pub apdakey: __uint128_t, 767 pub apdbkey: __uint128_t, 768 } 769 #[repr(C)] 770 #[repr(align(16))] 771 #[derive(Debug, Default, Copy, Clone)] 772 pub struct user_pac_generic_keys { 773 pub apgakey: __uint128_t, 774 } 775 #[repr(C)] 776 #[repr(align(16))] 777 #[derive(Debug, Default, Copy, Clone)] 778 pub struct kvm_regs { 779 pub regs: user_pt_regs, 780 pub sp_el1: u64, 781 pub elr_el1: u64, 782 pub spsr: [u64; 5usize], 783 pub __bindgen_padding_0: u64, 784 pub fp_regs: user_fpsimd_state, 785 } 786 #[repr(C)] 787 #[derive(Debug, Default, Copy, Clone)] 788 pub struct kvm_vcpu_init { 789 pub target: u32, 790 pub features: [u32; 7usize], 791 } 792 #[repr(C)] 793 #[derive(Debug, Default, Copy, Clone)] 794 pub struct kvm_sregs {} 795 #[repr(C)] 796 #[derive(Debug, Default, Copy, Clone)] 797 pub struct kvm_fpu {} 798 #[repr(C)] 799 #[derive(Debug, Default, Copy, Clone)] 800 pub struct kvm_guest_debug_arch { 801 pub dbg_bcr: [u64; 16usize], 802 pub dbg_bvr: [u64; 16usize], 803 pub dbg_wcr: [u64; 16usize], 804 pub dbg_wvr: [u64; 16usize], 805 } 806 #[repr(C)] 807 #[derive(Debug, Default, Copy, Clone)] 808 pub struct kvm_debug_exit_arch { 809 pub hsr: u32, 810 pub far: u64, 811 } 812 #[repr(C)] 813 #[derive(Debug, Default, Copy, Clone)] 814 pub struct kvm_sync_regs { 815 pub device_irq_level: u64, 816 } 817 #[repr(C)] 818 #[derive(Debug, Default, Copy, Clone)] 819 pub struct kvm_pmu_event_filter { 820 pub base_event: u16, 821 pub nevents: u16, 822 pub action: u8, 823 pub pad: [u8; 3usize], 824 } 825 #[repr(C)] 826 #[derive(Debug, Default, Copy, Clone)] 827 pub struct kvm_vcpu_events { 828 pub exception: kvm_vcpu_events__bindgen_ty_1, 829 pub reserved: [u32; 12usize], 830 } 831 #[repr(C)] 832 #[derive(Debug, Default, Copy, Clone)] 833 pub struct kvm_vcpu_events__bindgen_ty_1 { 834 pub serror_pending: u8, 835 pub serror_has_esr: u8, 836 pub ext_dabt_pending: u8, 837 pub pad: [u8; 5usize], 838 pub serror_esr: u64, 839 } 840 #[repr(C)] 841 #[derive(Debug, Default, Copy, Clone)] 842 pub struct kvm_user_trace_setup { 843 pub buf_size: u32, 844 pub buf_nr: u32, 845 } 846 #[repr(C)] 847 #[derive(Debug, Default, Copy, Clone)] 848 pub struct kvm_breakpoint { 849 pub enabled: u32, 850 pub padding: u32, 851 pub address: u64, 852 } 853 #[repr(C)] 854 #[derive(Debug, Default, Copy, Clone)] 855 pub struct kvm_debug_guest { 856 pub enabled: u32, 857 pub pad: u32, 858 pub breakpoints: [kvm_breakpoint; 4usize], 859 pub singlestep: u32, 860 } 861 #[repr(C)] 862 #[derive(Debug, Default, Copy, Clone)] 863 pub struct kvm_memory_region { 864 pub slot: u32, 865 pub flags: u32, 866 pub guest_phys_addr: u64, 867 pub memory_size: u64, 868 } 869 #[repr(C)] 870 #[derive(Debug, Default, Copy, Clone)] 871 pub struct kvm_userspace_memory_region { 872 pub slot: u32, 873 pub flags: u32, 874 pub guest_phys_addr: u64, 875 pub memory_size: u64, 876 pub userspace_addr: u64, 877 } 878 #[repr(C)] 879 #[derive(Copy, Clone)] 880 pub struct kvm_irq_level { 881 pub __bindgen_anon_1: kvm_irq_level__bindgen_ty_1, 882 pub level: u32, 883 } 884 #[repr(C)] 885 #[derive(Copy, Clone)] 886 pub union kvm_irq_level__bindgen_ty_1 { 887 pub irq: u32, 888 pub status: i32, 889 } 890 impl Default for kvm_irq_level__bindgen_ty_1 { default() -> Self891 fn default() -> Self { 892 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 893 unsafe { 894 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 895 s.assume_init() 896 } 897 } 898 } 899 impl Default for kvm_irq_level { default() -> Self900 fn default() -> Self { 901 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 902 unsafe { 903 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 904 s.assume_init() 905 } 906 } 907 } 908 #[repr(C)] 909 #[derive(Copy, Clone)] 910 pub struct kvm_irqchip { 911 pub chip_id: u32, 912 pub pad: u32, 913 pub chip: kvm_irqchip__bindgen_ty_1, 914 } 915 #[repr(C)] 916 #[derive(Copy, Clone)] 917 pub union kvm_irqchip__bindgen_ty_1 { 918 pub dummy: [::std::os::raw::c_char; 512usize], 919 } 920 impl Default for kvm_irqchip__bindgen_ty_1 { default() -> Self921 fn default() -> Self { 922 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 923 unsafe { 924 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 925 s.assume_init() 926 } 927 } 928 } 929 impl Default for kvm_irqchip { default() -> Self930 fn default() -> Self { 931 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 932 unsafe { 933 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 934 s.assume_init() 935 } 936 } 937 } 938 #[repr(C)] 939 #[derive(Debug, Default, Copy, Clone)] 940 pub struct kvm_pit_config { 941 pub flags: u32, 942 pub pad: [u32; 15usize], 943 } 944 #[repr(C)] 945 #[derive(Debug, Default, Copy, Clone)] 946 pub struct kvm_s390_skeys { 947 pub start_gfn: u64, 948 pub count: u64, 949 pub skeydata_addr: u64, 950 pub flags: u32, 951 pub reserved: [u32; 9usize], 952 } 953 #[repr(C)] 954 #[derive(Copy, Clone)] 955 pub struct kvm_s390_cmma_log { 956 pub start_gfn: u64, 957 pub count: u32, 958 pub flags: u32, 959 pub __bindgen_anon_1: kvm_s390_cmma_log__bindgen_ty_1, 960 pub values: u64, 961 } 962 #[repr(C)] 963 #[derive(Copy, Clone)] 964 pub union kvm_s390_cmma_log__bindgen_ty_1 { 965 pub remaining: u64, 966 pub mask: u64, 967 } 968 impl Default for kvm_s390_cmma_log__bindgen_ty_1 { default() -> Self969 fn default() -> Self { 970 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 971 unsafe { 972 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 973 s.assume_init() 974 } 975 } 976 } 977 impl Default for kvm_s390_cmma_log { default() -> Self978 fn default() -> Self { 979 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 980 unsafe { 981 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 982 s.assume_init() 983 } 984 } 985 } 986 #[repr(C)] 987 #[derive(Copy, Clone)] 988 pub struct kvm_hyperv_exit { 989 pub type_: u32, 990 pub pad1: u32, 991 pub u: kvm_hyperv_exit__bindgen_ty_1, 992 } 993 #[repr(C)] 994 #[derive(Copy, Clone)] 995 pub union kvm_hyperv_exit__bindgen_ty_1 { 996 pub synic: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1, 997 pub hcall: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_2, 998 pub syndbg: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3, 999 } 1000 #[repr(C)] 1001 #[derive(Debug, Default, Copy, Clone)] 1002 pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1 { 1003 pub msr: u32, 1004 pub pad2: u32, 1005 pub control: u64, 1006 pub evt_page: u64, 1007 pub msg_page: u64, 1008 } 1009 #[repr(C)] 1010 #[derive(Debug, Default, Copy, Clone)] 1011 pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_2 { 1012 pub input: u64, 1013 pub result: u64, 1014 pub params: [u64; 2usize], 1015 } 1016 #[repr(C)] 1017 #[derive(Debug, Default, Copy, Clone)] 1018 pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3 { 1019 pub msr: u32, 1020 pub pad2: u32, 1021 pub control: u64, 1022 pub status: u64, 1023 pub send_page: u64, 1024 pub recv_page: u64, 1025 pub pending_page: u64, 1026 } 1027 impl Default for kvm_hyperv_exit__bindgen_ty_1 { default() -> Self1028 fn default() -> Self { 1029 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1030 unsafe { 1031 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1032 s.assume_init() 1033 } 1034 } 1035 } 1036 impl Default for kvm_hyperv_exit { default() -> Self1037 fn default() -> Self { 1038 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1039 unsafe { 1040 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1041 s.assume_init() 1042 } 1043 } 1044 } 1045 #[repr(C)] 1046 #[derive(Copy, Clone)] 1047 pub struct kvm_run { 1048 pub request_interrupt_window: u8, 1049 pub immediate_exit: u8, 1050 pub padding1: [u8; 6usize], 1051 pub exit_reason: u32, 1052 pub ready_for_interrupt_injection: u8, 1053 pub if_flag: u8, 1054 pub flags: u16, 1055 pub cr8: u64, 1056 pub apic_base: u64, 1057 pub __bindgen_anon_1: kvm_run__bindgen_ty_1, 1058 pub kvm_valid_regs: u64, 1059 pub kvm_dirty_regs: u64, 1060 pub s: kvm_run__bindgen_ty_2, 1061 } 1062 #[repr(C)] 1063 #[derive(Copy, Clone)] 1064 pub union kvm_run__bindgen_ty_1 { 1065 pub hw: kvm_run__bindgen_ty_1__bindgen_ty_1, 1066 pub fail_entry: kvm_run__bindgen_ty_1__bindgen_ty_2, 1067 pub ex: kvm_run__bindgen_ty_1__bindgen_ty_3, 1068 pub io: kvm_run__bindgen_ty_1__bindgen_ty_4, 1069 pub debug: kvm_run__bindgen_ty_1__bindgen_ty_5, 1070 pub mmio: kvm_run__bindgen_ty_1__bindgen_ty_6, 1071 pub hypercall: kvm_run__bindgen_ty_1__bindgen_ty_7, 1072 pub tpr_access: kvm_run__bindgen_ty_1__bindgen_ty_8, 1073 pub s390_sieic: kvm_run__bindgen_ty_1__bindgen_ty_9, 1074 pub s390_reset_flags: u64, 1075 pub s390_ucontrol: kvm_run__bindgen_ty_1__bindgen_ty_10, 1076 pub dcr: kvm_run__bindgen_ty_1__bindgen_ty_11, 1077 pub internal: kvm_run__bindgen_ty_1__bindgen_ty_12, 1078 pub osi: kvm_run__bindgen_ty_1__bindgen_ty_13, 1079 pub papr_hcall: kvm_run__bindgen_ty_1__bindgen_ty_14, 1080 pub s390_tsch: kvm_run__bindgen_ty_1__bindgen_ty_15, 1081 pub epr: kvm_run__bindgen_ty_1__bindgen_ty_16, 1082 pub system_event: kvm_run__bindgen_ty_1__bindgen_ty_17, 1083 pub s390_stsi: kvm_run__bindgen_ty_1__bindgen_ty_18, 1084 pub eoi: kvm_run__bindgen_ty_1__bindgen_ty_19, 1085 pub hyperv: kvm_hyperv_exit, 1086 pub arm_nisv: kvm_run__bindgen_ty_1__bindgen_ty_20, 1087 pub msr: kvm_run__bindgen_ty_1__bindgen_ty_21, 1088 pub padding: [::std::os::raw::c_char; 256usize], 1089 } 1090 #[repr(C)] 1091 #[derive(Debug, Default, Copy, Clone)] 1092 pub struct kvm_run__bindgen_ty_1__bindgen_ty_1 { 1093 pub hardware_exit_reason: u64, 1094 } 1095 #[repr(C)] 1096 #[derive(Debug, Default, Copy, Clone)] 1097 pub struct kvm_run__bindgen_ty_1__bindgen_ty_2 { 1098 pub hardware_entry_failure_reason: u64, 1099 pub cpu: u32, 1100 } 1101 #[repr(C)] 1102 #[derive(Debug, Default, Copy, Clone)] 1103 pub struct kvm_run__bindgen_ty_1__bindgen_ty_3 { 1104 pub exception: u32, 1105 pub error_code: u32, 1106 } 1107 #[repr(C)] 1108 #[derive(Debug, Default, Copy, Clone)] 1109 pub struct kvm_run__bindgen_ty_1__bindgen_ty_4 { 1110 pub direction: u8, 1111 pub size: u8, 1112 pub port: u16, 1113 pub count: u32, 1114 pub data_offset: u64, 1115 } 1116 #[repr(C)] 1117 #[derive(Debug, Default, Copy, Clone)] 1118 pub struct kvm_run__bindgen_ty_1__bindgen_ty_5 { 1119 pub arch: kvm_debug_exit_arch, 1120 } 1121 #[repr(C)] 1122 #[derive(Debug, Default, Copy, Clone)] 1123 pub struct kvm_run__bindgen_ty_1__bindgen_ty_6 { 1124 pub phys_addr: u64, 1125 pub data: [u8; 8usize], 1126 pub len: u32, 1127 pub is_write: u8, 1128 } 1129 #[repr(C)] 1130 #[derive(Debug, Default, Copy, Clone)] 1131 pub struct kvm_run__bindgen_ty_1__bindgen_ty_7 { 1132 pub nr: u64, 1133 pub args: [u64; 6usize], 1134 pub ret: u64, 1135 pub longmode: u32, 1136 pub pad: u32, 1137 } 1138 #[repr(C)] 1139 #[derive(Debug, Default, Copy, Clone)] 1140 pub struct kvm_run__bindgen_ty_1__bindgen_ty_8 { 1141 pub rip: u64, 1142 pub is_write: u32, 1143 pub pad: u32, 1144 } 1145 #[repr(C)] 1146 #[derive(Debug, Default, Copy, Clone)] 1147 pub struct kvm_run__bindgen_ty_1__bindgen_ty_9 { 1148 pub icptcode: u8, 1149 pub ipa: u16, 1150 pub ipb: u32, 1151 } 1152 #[repr(C)] 1153 #[derive(Debug, Default, Copy, Clone)] 1154 pub struct kvm_run__bindgen_ty_1__bindgen_ty_10 { 1155 pub trans_exc_code: u64, 1156 pub pgm_code: u32, 1157 } 1158 #[repr(C)] 1159 #[derive(Debug, Default, Copy, Clone)] 1160 pub struct kvm_run__bindgen_ty_1__bindgen_ty_11 { 1161 pub dcrn: u32, 1162 pub data: u32, 1163 pub is_write: u8, 1164 } 1165 #[repr(C)] 1166 #[derive(Debug, Default, Copy, Clone)] 1167 pub struct kvm_run__bindgen_ty_1__bindgen_ty_12 { 1168 pub suberror: u32, 1169 pub ndata: u32, 1170 pub data: [u64; 16usize], 1171 } 1172 #[repr(C)] 1173 #[derive(Debug, Default, Copy, Clone)] 1174 pub struct kvm_run__bindgen_ty_1__bindgen_ty_13 { 1175 pub gprs: [u64; 32usize], 1176 } 1177 #[repr(C)] 1178 #[derive(Debug, Default, Copy, Clone)] 1179 pub struct kvm_run__bindgen_ty_1__bindgen_ty_14 { 1180 pub nr: u64, 1181 pub ret: u64, 1182 pub args: [u64; 9usize], 1183 } 1184 #[repr(C)] 1185 #[derive(Debug, Default, Copy, Clone)] 1186 pub struct kvm_run__bindgen_ty_1__bindgen_ty_15 { 1187 pub subchannel_id: u16, 1188 pub subchannel_nr: u16, 1189 pub io_int_parm: u32, 1190 pub io_int_word: u32, 1191 pub ipb: u32, 1192 pub dequeued: u8, 1193 } 1194 #[repr(C)] 1195 #[derive(Debug, Default, Copy, Clone)] 1196 pub struct kvm_run__bindgen_ty_1__bindgen_ty_16 { 1197 pub epr: u32, 1198 } 1199 #[repr(C)] 1200 #[derive(Debug, Default, Copy, Clone)] 1201 pub struct kvm_run__bindgen_ty_1__bindgen_ty_17 { 1202 pub type_: u32, 1203 pub flags: u64, 1204 } 1205 #[repr(C)] 1206 #[derive(Debug, Default, Copy, Clone)] 1207 pub struct kvm_run__bindgen_ty_1__bindgen_ty_18 { 1208 pub addr: u64, 1209 pub ar: u8, 1210 pub reserved: u8, 1211 pub fc: u8, 1212 pub sel1: u8, 1213 pub sel2: u16, 1214 } 1215 #[repr(C)] 1216 #[derive(Debug, Default, Copy, Clone)] 1217 pub struct kvm_run__bindgen_ty_1__bindgen_ty_19 { 1218 pub vector: u8, 1219 } 1220 #[repr(C)] 1221 #[derive(Debug, Default, Copy, Clone)] 1222 pub struct kvm_run__bindgen_ty_1__bindgen_ty_20 { 1223 pub esr_iss: u64, 1224 pub fault_ipa: u64, 1225 } 1226 #[repr(C)] 1227 #[derive(Debug, Default, Copy, Clone)] 1228 pub struct kvm_run__bindgen_ty_1__bindgen_ty_21 { 1229 pub error: u8, 1230 pub pad: [u8; 7usize], 1231 pub reason: u32, 1232 pub index: u32, 1233 pub data: u64, 1234 } 1235 impl Default for kvm_run__bindgen_ty_1 { default() -> Self1236 fn default() -> Self { 1237 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1238 unsafe { 1239 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1240 s.assume_init() 1241 } 1242 } 1243 } 1244 #[repr(C)] 1245 #[derive(Copy, Clone)] 1246 pub union kvm_run__bindgen_ty_2 { 1247 pub regs: kvm_sync_regs, 1248 pub padding: [::std::os::raw::c_char; 2048usize], 1249 } 1250 impl Default for kvm_run__bindgen_ty_2 { default() -> Self1251 fn default() -> Self { 1252 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1253 unsafe { 1254 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1255 s.assume_init() 1256 } 1257 } 1258 } 1259 impl Default for kvm_run { default() -> Self1260 fn default() -> Self { 1261 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1262 unsafe { 1263 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1264 s.assume_init() 1265 } 1266 } 1267 } 1268 #[repr(C)] 1269 #[derive(Copy, Clone)] 1270 pub struct kvm_coalesced_mmio_zone { 1271 pub addr: u64, 1272 pub size: u32, 1273 pub __bindgen_anon_1: kvm_coalesced_mmio_zone__bindgen_ty_1, 1274 } 1275 #[repr(C)] 1276 #[derive(Copy, Clone)] 1277 pub union kvm_coalesced_mmio_zone__bindgen_ty_1 { 1278 pub pad: u32, 1279 pub pio: u32, 1280 } 1281 impl Default for kvm_coalesced_mmio_zone__bindgen_ty_1 { default() -> Self1282 fn default() -> Self { 1283 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1284 unsafe { 1285 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1286 s.assume_init() 1287 } 1288 } 1289 } 1290 impl Default for kvm_coalesced_mmio_zone { default() -> Self1291 fn default() -> Self { 1292 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1293 unsafe { 1294 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1295 s.assume_init() 1296 } 1297 } 1298 } 1299 #[repr(C)] 1300 #[derive(Copy, Clone)] 1301 pub struct kvm_coalesced_mmio { 1302 pub phys_addr: u64, 1303 pub len: u32, 1304 pub __bindgen_anon_1: kvm_coalesced_mmio__bindgen_ty_1, 1305 pub data: [u8; 8usize], 1306 } 1307 #[repr(C)] 1308 #[derive(Copy, Clone)] 1309 pub union kvm_coalesced_mmio__bindgen_ty_1 { 1310 pub pad: u32, 1311 pub pio: u32, 1312 } 1313 impl Default for kvm_coalesced_mmio__bindgen_ty_1 { default() -> Self1314 fn default() -> Self { 1315 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1316 unsafe { 1317 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1318 s.assume_init() 1319 } 1320 } 1321 } 1322 impl Default for kvm_coalesced_mmio { default() -> Self1323 fn default() -> Self { 1324 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1325 unsafe { 1326 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1327 s.assume_init() 1328 } 1329 } 1330 } 1331 #[repr(C)] 1332 pub struct kvm_coalesced_mmio_ring { 1333 pub first: u32, 1334 pub last: u32, 1335 pub coalesced_mmio: __IncompleteArrayField<kvm_coalesced_mmio>, 1336 } 1337 impl Default for kvm_coalesced_mmio_ring { default() -> Self1338 fn default() -> Self { 1339 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1340 unsafe { 1341 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1342 s.assume_init() 1343 } 1344 } 1345 } 1346 #[repr(C)] 1347 #[derive(Debug, Default, Copy, Clone)] 1348 pub struct kvm_translation { 1349 pub linear_address: u64, 1350 pub physical_address: u64, 1351 pub valid: u8, 1352 pub writeable: u8, 1353 pub usermode: u8, 1354 pub pad: [u8; 5usize], 1355 } 1356 #[repr(C)] 1357 #[derive(Copy, Clone)] 1358 pub struct kvm_s390_mem_op { 1359 pub gaddr: u64, 1360 pub flags: u64, 1361 pub size: u32, 1362 pub op: u32, 1363 pub buf: u64, 1364 pub __bindgen_anon_1: kvm_s390_mem_op__bindgen_ty_1, 1365 } 1366 #[repr(C)] 1367 #[derive(Copy, Clone)] 1368 pub union kvm_s390_mem_op__bindgen_ty_1 { 1369 pub ar: u8, 1370 pub sida_offset: u32, 1371 pub reserved: [u8; 32usize], 1372 } 1373 impl Default for kvm_s390_mem_op__bindgen_ty_1 { default() -> Self1374 fn default() -> Self { 1375 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1376 unsafe { 1377 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1378 s.assume_init() 1379 } 1380 } 1381 } 1382 impl Default for kvm_s390_mem_op { default() -> Self1383 fn default() -> Self { 1384 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1385 unsafe { 1386 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1387 s.assume_init() 1388 } 1389 } 1390 } 1391 #[repr(C)] 1392 #[derive(Debug, Default, Copy, Clone)] 1393 pub struct kvm_interrupt { 1394 pub irq: u32, 1395 } 1396 #[repr(C)] 1397 #[derive(Copy, Clone)] 1398 pub struct kvm_dirty_log { 1399 pub slot: u32, 1400 pub padding1: u32, 1401 pub __bindgen_anon_1: kvm_dirty_log__bindgen_ty_1, 1402 } 1403 #[repr(C)] 1404 #[derive(Copy, Clone)] 1405 pub union kvm_dirty_log__bindgen_ty_1 { 1406 pub dirty_bitmap: *mut ::std::os::raw::c_void, 1407 pub padding2: u64, 1408 } 1409 impl Default for kvm_dirty_log__bindgen_ty_1 { default() -> Self1410 fn default() -> Self { 1411 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1412 unsafe { 1413 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1414 s.assume_init() 1415 } 1416 } 1417 } 1418 impl Default for kvm_dirty_log { default() -> Self1419 fn default() -> Self { 1420 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1421 unsafe { 1422 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1423 s.assume_init() 1424 } 1425 } 1426 } 1427 #[repr(C)] 1428 #[derive(Copy, Clone)] 1429 pub struct kvm_clear_dirty_log { 1430 pub slot: u32, 1431 pub num_pages: u32, 1432 pub first_page: u64, 1433 pub __bindgen_anon_1: kvm_clear_dirty_log__bindgen_ty_1, 1434 } 1435 #[repr(C)] 1436 #[derive(Copy, Clone)] 1437 pub union kvm_clear_dirty_log__bindgen_ty_1 { 1438 pub dirty_bitmap: *mut ::std::os::raw::c_void, 1439 pub padding2: u64, 1440 } 1441 impl Default for kvm_clear_dirty_log__bindgen_ty_1 { default() -> Self1442 fn default() -> Self { 1443 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1444 unsafe { 1445 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1446 s.assume_init() 1447 } 1448 } 1449 } 1450 impl Default for kvm_clear_dirty_log { default() -> Self1451 fn default() -> Self { 1452 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1453 unsafe { 1454 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1455 s.assume_init() 1456 } 1457 } 1458 } 1459 #[repr(C)] 1460 #[derive(Debug, Default)] 1461 pub struct kvm_signal_mask { 1462 pub len: u32, 1463 pub sigset: __IncompleteArrayField<u8>, 1464 } 1465 #[repr(C)] 1466 #[derive(Debug, Default, Copy, Clone)] 1467 pub struct kvm_tpr_access_ctl { 1468 pub enabled: u32, 1469 pub flags: u32, 1470 pub reserved: [u32; 8usize], 1471 } 1472 #[repr(C)] 1473 #[derive(Debug, Default, Copy, Clone)] 1474 pub struct kvm_vapic_addr { 1475 pub vapic_addr: u64, 1476 } 1477 #[repr(C)] 1478 #[derive(Debug, Default, Copy, Clone)] 1479 pub struct kvm_mp_state { 1480 pub mp_state: u32, 1481 } 1482 #[repr(C)] 1483 #[derive(Debug, Default, Copy, Clone)] 1484 pub struct kvm_s390_psw { 1485 pub mask: u64, 1486 pub addr: u64, 1487 } 1488 #[repr(C)] 1489 #[derive(Debug, Default, Copy, Clone)] 1490 pub struct kvm_s390_interrupt { 1491 pub type_: u32, 1492 pub parm: u32, 1493 pub parm64: u64, 1494 } 1495 #[repr(C)] 1496 #[derive(Debug, Default, Copy, Clone)] 1497 pub struct kvm_s390_io_info { 1498 pub subchannel_id: u16, 1499 pub subchannel_nr: u16, 1500 pub io_int_parm: u32, 1501 pub io_int_word: u32, 1502 } 1503 #[repr(C)] 1504 #[derive(Debug, Default, Copy, Clone)] 1505 pub struct kvm_s390_ext_info { 1506 pub ext_params: u32, 1507 pub pad: u32, 1508 pub ext_params2: u64, 1509 } 1510 #[repr(C)] 1511 #[derive(Debug, Default, Copy, Clone)] 1512 pub struct kvm_s390_pgm_info { 1513 pub trans_exc_code: u64, 1514 pub mon_code: u64, 1515 pub per_address: u64, 1516 pub data_exc_code: u32, 1517 pub code: u16, 1518 pub mon_class_nr: u16, 1519 pub per_code: u8, 1520 pub per_atmid: u8, 1521 pub exc_access_id: u8, 1522 pub per_access_id: u8, 1523 pub op_access_id: u8, 1524 pub flags: u8, 1525 pub pad: [u8; 2usize], 1526 } 1527 #[repr(C)] 1528 #[derive(Debug, Default, Copy, Clone)] 1529 pub struct kvm_s390_prefix_info { 1530 pub address: u32, 1531 } 1532 #[repr(C)] 1533 #[derive(Debug, Default, Copy, Clone)] 1534 pub struct kvm_s390_extcall_info { 1535 pub code: u16, 1536 } 1537 #[repr(C)] 1538 #[derive(Debug, Default, Copy, Clone)] 1539 pub struct kvm_s390_emerg_info { 1540 pub code: u16, 1541 } 1542 #[repr(C)] 1543 #[derive(Debug, Default, Copy, Clone)] 1544 pub struct kvm_s390_stop_info { 1545 pub flags: u32, 1546 } 1547 #[repr(C)] 1548 #[derive(Debug, Default, Copy, Clone)] 1549 pub struct kvm_s390_mchk_info { 1550 pub cr14: u64, 1551 pub mcic: u64, 1552 pub failing_storage_address: u64, 1553 pub ext_damage_code: u32, 1554 pub pad: u32, 1555 pub fixed_logout: [u8; 16usize], 1556 } 1557 #[repr(C)] 1558 #[derive(Copy, Clone)] 1559 pub struct kvm_s390_irq { 1560 pub type_: u64, 1561 pub u: kvm_s390_irq__bindgen_ty_1, 1562 } 1563 #[repr(C)] 1564 #[derive(Copy, Clone)] 1565 pub union kvm_s390_irq__bindgen_ty_1 { 1566 pub io: kvm_s390_io_info, 1567 pub ext: kvm_s390_ext_info, 1568 pub pgm: kvm_s390_pgm_info, 1569 pub emerg: kvm_s390_emerg_info, 1570 pub extcall: kvm_s390_extcall_info, 1571 pub prefix: kvm_s390_prefix_info, 1572 pub stop: kvm_s390_stop_info, 1573 pub mchk: kvm_s390_mchk_info, 1574 pub reserved: [::std::os::raw::c_char; 64usize], 1575 } 1576 impl Default for kvm_s390_irq__bindgen_ty_1 { default() -> Self1577 fn default() -> Self { 1578 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1579 unsafe { 1580 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1581 s.assume_init() 1582 } 1583 } 1584 } 1585 impl Default for kvm_s390_irq { default() -> Self1586 fn default() -> Self { 1587 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1588 unsafe { 1589 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1590 s.assume_init() 1591 } 1592 } 1593 } 1594 #[repr(C)] 1595 #[derive(Debug, Default, Copy, Clone)] 1596 pub struct kvm_s390_irq_state { 1597 pub buf: u64, 1598 pub flags: u32, 1599 pub len: u32, 1600 pub reserved: [u32; 4usize], 1601 } 1602 #[repr(C)] 1603 #[derive(Debug, Default, Copy, Clone)] 1604 pub struct kvm_guest_debug { 1605 pub control: u32, 1606 pub pad: u32, 1607 pub arch: kvm_guest_debug_arch, 1608 } 1609 pub const kvm_ioeventfd_flag_nr_datamatch: ::std::os::raw::c_uint = 0; 1610 pub const kvm_ioeventfd_flag_nr_pio: ::std::os::raw::c_uint = 1; 1611 pub const kvm_ioeventfd_flag_nr_deassign: ::std::os::raw::c_uint = 2; 1612 pub const kvm_ioeventfd_flag_nr_virtio_ccw_notify: ::std::os::raw::c_uint = 3; 1613 pub const kvm_ioeventfd_flag_nr_fast_mmio: ::std::os::raw::c_uint = 4; 1614 pub const kvm_ioeventfd_flag_nr_max: ::std::os::raw::c_uint = 5; 1615 pub type _bindgen_ty_1 = ::std::os::raw::c_uint; 1616 #[repr(C)] 1617 #[derive(Debug, Copy, Clone)] 1618 pub struct kvm_ioeventfd { 1619 pub datamatch: u64, 1620 pub addr: u64, 1621 pub len: u32, 1622 pub fd: i32, 1623 pub flags: u32, 1624 pub pad: [u8; 36usize], 1625 } 1626 impl Default for kvm_ioeventfd { default() -> Self1627 fn default() -> Self { 1628 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1629 unsafe { 1630 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1631 s.assume_init() 1632 } 1633 } 1634 } 1635 #[repr(C)] 1636 #[derive(Debug, Copy, Clone)] 1637 pub struct kvm_enable_cap { 1638 pub cap: u32, 1639 pub flags: u32, 1640 pub args: [u64; 4usize], 1641 pub pad: [u8; 64usize], 1642 } 1643 impl Default for kvm_enable_cap { default() -> Self1644 fn default() -> Self { 1645 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1646 unsafe { 1647 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1648 s.assume_init() 1649 } 1650 } 1651 } 1652 #[repr(C)] 1653 #[derive(Debug, Copy, Clone)] 1654 pub struct kvm_ppc_pvinfo { 1655 pub flags: u32, 1656 pub hcall: [u32; 4usize], 1657 pub pad: [u8; 108usize], 1658 } 1659 impl Default for kvm_ppc_pvinfo { default() -> Self1660 fn default() -> Self { 1661 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1662 unsafe { 1663 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1664 s.assume_init() 1665 } 1666 } 1667 } 1668 #[repr(C)] 1669 #[derive(Debug, Default, Copy, Clone)] 1670 pub struct kvm_ppc_one_page_size { 1671 pub page_shift: u32, 1672 pub pte_enc: u32, 1673 } 1674 #[repr(C)] 1675 #[derive(Debug, Default, Copy, Clone)] 1676 pub struct kvm_ppc_one_seg_page_size { 1677 pub page_shift: u32, 1678 pub slb_enc: u32, 1679 pub enc: [kvm_ppc_one_page_size; 8usize], 1680 } 1681 #[repr(C)] 1682 #[derive(Debug, Default, Copy, Clone)] 1683 pub struct kvm_ppc_smmu_info { 1684 pub flags: u64, 1685 pub slb_size: u32, 1686 pub data_keys: u16, 1687 pub instr_keys: u16, 1688 pub sps: [kvm_ppc_one_seg_page_size; 8usize], 1689 } 1690 #[repr(C)] 1691 #[derive(Debug, Default, Copy, Clone)] 1692 pub struct kvm_ppc_resize_hpt { 1693 pub flags: u64, 1694 pub shift: u32, 1695 pub pad: u32, 1696 } 1697 #[repr(C)] 1698 #[derive(Debug, Default, Copy, Clone)] 1699 pub struct kvm_irq_routing_irqchip { 1700 pub irqchip: u32, 1701 pub pin: u32, 1702 } 1703 #[repr(C)] 1704 #[derive(Copy, Clone)] 1705 pub struct kvm_irq_routing_msi { 1706 pub address_lo: u32, 1707 pub address_hi: u32, 1708 pub data: u32, 1709 pub __bindgen_anon_1: kvm_irq_routing_msi__bindgen_ty_1, 1710 } 1711 #[repr(C)] 1712 #[derive(Copy, Clone)] 1713 pub union kvm_irq_routing_msi__bindgen_ty_1 { 1714 pub pad: u32, 1715 pub devid: u32, 1716 } 1717 impl Default for kvm_irq_routing_msi__bindgen_ty_1 { 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 impl Default for kvm_irq_routing_msi { default() -> Self1727 fn default() -> Self { 1728 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1729 unsafe { 1730 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1731 s.assume_init() 1732 } 1733 } 1734 } 1735 #[repr(C)] 1736 #[derive(Debug, Default, Copy, Clone)] 1737 pub struct kvm_irq_routing_s390_adapter { 1738 pub ind_addr: u64, 1739 pub summary_addr: u64, 1740 pub ind_offset: u64, 1741 pub summary_offset: u32, 1742 pub adapter_id: u32, 1743 } 1744 #[repr(C)] 1745 #[derive(Debug, Default, Copy, Clone)] 1746 pub struct kvm_irq_routing_hv_sint { 1747 pub vcpu: u32, 1748 pub sint: u32, 1749 } 1750 #[repr(C)] 1751 #[derive(Copy, Clone)] 1752 pub struct kvm_irq_routing_entry { 1753 pub gsi: u32, 1754 pub type_: u32, 1755 pub flags: u32, 1756 pub pad: u32, 1757 pub u: kvm_irq_routing_entry__bindgen_ty_1, 1758 } 1759 #[repr(C)] 1760 #[derive(Copy, Clone)] 1761 pub union kvm_irq_routing_entry__bindgen_ty_1 { 1762 pub irqchip: kvm_irq_routing_irqchip, 1763 pub msi: kvm_irq_routing_msi, 1764 pub adapter: kvm_irq_routing_s390_adapter, 1765 pub hv_sint: kvm_irq_routing_hv_sint, 1766 pub pad: [u32; 8usize], 1767 } 1768 impl Default for kvm_irq_routing_entry__bindgen_ty_1 { default() -> Self1769 fn default() -> Self { 1770 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1771 unsafe { 1772 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1773 s.assume_init() 1774 } 1775 } 1776 } 1777 impl Default for kvm_irq_routing_entry { default() -> Self1778 fn default() -> Self { 1779 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1780 unsafe { 1781 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1782 s.assume_init() 1783 } 1784 } 1785 } 1786 #[repr(C)] 1787 pub struct kvm_irq_routing { 1788 pub nr: u32, 1789 pub flags: u32, 1790 pub entries: __IncompleteArrayField<kvm_irq_routing_entry>, 1791 } 1792 impl Default for kvm_irq_routing { default() -> Self1793 fn default() -> Self { 1794 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1795 unsafe { 1796 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1797 s.assume_init() 1798 } 1799 } 1800 } 1801 #[repr(C)] 1802 #[derive(Debug, Default, Copy, Clone)] 1803 pub struct kvm_irqfd { 1804 pub fd: u32, 1805 pub gsi: u32, 1806 pub flags: u32, 1807 pub resamplefd: u32, 1808 pub pad: [u8; 16usize], 1809 } 1810 #[repr(C)] 1811 #[derive(Debug, Default, Copy, Clone)] 1812 pub struct kvm_clock_data { 1813 pub clock: u64, 1814 pub flags: u32, 1815 pub pad: [u32; 9usize], 1816 } 1817 #[repr(C)] 1818 #[derive(Debug, Default, Copy, Clone)] 1819 pub struct kvm_config_tlb { 1820 pub params: u64, 1821 pub array: u64, 1822 pub mmu_type: u32, 1823 pub array_len: u32, 1824 } 1825 #[repr(C)] 1826 #[derive(Debug, Default, Copy, Clone)] 1827 pub struct kvm_dirty_tlb { 1828 pub bitmap: u64, 1829 pub num_dirty: u32, 1830 } 1831 #[repr(C)] 1832 #[derive(Debug, Default)] 1833 pub struct kvm_reg_list { 1834 pub n: u64, 1835 pub reg: __IncompleteArrayField<u64>, 1836 } 1837 #[repr(C)] 1838 #[derive(Debug, Default, Copy, Clone)] 1839 pub struct kvm_one_reg { 1840 pub id: u64, 1841 pub addr: u64, 1842 } 1843 #[repr(C)] 1844 #[derive(Debug, Default, Copy, Clone)] 1845 pub struct kvm_msi { 1846 pub address_lo: u32, 1847 pub address_hi: u32, 1848 pub data: u32, 1849 pub flags: u32, 1850 pub devid: u32, 1851 pub pad: [u8; 12usize], 1852 } 1853 #[repr(C)] 1854 #[derive(Debug, Default, Copy, Clone)] 1855 pub struct kvm_arm_device_addr { 1856 pub id: u64, 1857 pub addr: u64, 1858 } 1859 #[repr(C)] 1860 #[derive(Debug, Default, Copy, Clone)] 1861 pub struct kvm_create_device { 1862 pub type_: u32, 1863 pub fd: u32, 1864 pub flags: u32, 1865 } 1866 #[repr(C)] 1867 #[derive(Debug, Default, Copy, Clone)] 1868 pub struct kvm_device_attr { 1869 pub flags: u32, 1870 pub group: u32, 1871 pub attr: u64, 1872 pub addr: u64, 1873 } 1874 pub const kvm_device_type_KVM_DEV_TYPE_FSL_MPIC_20: kvm_device_type = 1; 1875 pub const kvm_device_type_KVM_DEV_TYPE_FSL_MPIC_42: kvm_device_type = 2; 1876 pub const kvm_device_type_KVM_DEV_TYPE_XICS: kvm_device_type = 3; 1877 pub const kvm_device_type_KVM_DEV_TYPE_VFIO: kvm_device_type = 4; 1878 pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_V2: kvm_device_type = 5; 1879 pub const kvm_device_type_KVM_DEV_TYPE_FLIC: kvm_device_type = 6; 1880 pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_V3: kvm_device_type = 7; 1881 pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_ITS: kvm_device_type = 8; 1882 pub const kvm_device_type_KVM_DEV_TYPE_XIVE: kvm_device_type = 9; 1883 pub const kvm_device_type_KVM_DEV_TYPE_ARM_PV_TIME: kvm_device_type = 10; 1884 pub const kvm_device_type_KVM_DEV_TYPE_MAX: kvm_device_type = 11; 1885 pub type kvm_device_type = ::std::os::raw::c_uint; 1886 #[repr(C)] 1887 #[derive(Debug, Default, Copy, Clone)] 1888 pub struct kvm_vfio_spapr_tce { 1889 pub groupfd: i32, 1890 pub tablefd: i32, 1891 } 1892 #[repr(C)] 1893 #[derive(Debug, Default, Copy, Clone)] 1894 pub struct kvm_s390_ucas_mapping { 1895 pub user_addr: u64, 1896 pub vcpu_addr: u64, 1897 pub length: u64, 1898 } 1899 #[repr(C)] 1900 #[derive(Debug, Default, Copy, Clone)] 1901 pub struct kvm_enc_region { 1902 pub addr: u64, 1903 pub size: u64, 1904 } 1905 #[repr(C)] 1906 #[derive(Debug, Default, Copy, Clone)] 1907 pub struct kvm_s390_pv_sec_parm { 1908 pub origin: u64, 1909 pub length: u64, 1910 } 1911 #[repr(C)] 1912 #[derive(Debug, Default, Copy, Clone)] 1913 pub struct kvm_s390_pv_unp { 1914 pub addr: u64, 1915 pub size: u64, 1916 pub tweak: u64, 1917 } 1918 pub const pv_cmd_id_KVM_PV_ENABLE: pv_cmd_id = 0; 1919 pub const pv_cmd_id_KVM_PV_DISABLE: pv_cmd_id = 1; 1920 pub const pv_cmd_id_KVM_PV_SET_SEC_PARMS: pv_cmd_id = 2; 1921 pub const pv_cmd_id_KVM_PV_UNPACK: pv_cmd_id = 3; 1922 pub const pv_cmd_id_KVM_PV_VERIFY: pv_cmd_id = 4; 1923 pub const pv_cmd_id_KVM_PV_PREP_RESET: pv_cmd_id = 5; 1924 pub const pv_cmd_id_KVM_PV_UNSHARE_ALL: pv_cmd_id = 6; 1925 pub type pv_cmd_id = ::std::os::raw::c_uint; 1926 #[repr(C)] 1927 #[derive(Debug, Default, Copy, Clone)] 1928 pub struct kvm_pv_cmd { 1929 pub cmd: u32, 1930 pub rc: u16, 1931 pub rrc: u16, 1932 pub data: u64, 1933 pub flags: u32, 1934 pub reserved: [u32; 3usize], 1935 } 1936 pub const sev_cmd_id_KVM_SEV_INIT: sev_cmd_id = 0; 1937 pub const sev_cmd_id_KVM_SEV_ES_INIT: sev_cmd_id = 1; 1938 pub const sev_cmd_id_KVM_SEV_LAUNCH_START: sev_cmd_id = 2; 1939 pub const sev_cmd_id_KVM_SEV_LAUNCH_UPDATE_DATA: sev_cmd_id = 3; 1940 pub const sev_cmd_id_KVM_SEV_LAUNCH_UPDATE_VMSA: sev_cmd_id = 4; 1941 pub const sev_cmd_id_KVM_SEV_LAUNCH_SECRET: sev_cmd_id = 5; 1942 pub const sev_cmd_id_KVM_SEV_LAUNCH_MEASURE: sev_cmd_id = 6; 1943 pub const sev_cmd_id_KVM_SEV_LAUNCH_FINISH: sev_cmd_id = 7; 1944 pub const sev_cmd_id_KVM_SEV_SEND_START: sev_cmd_id = 8; 1945 pub const sev_cmd_id_KVM_SEV_SEND_UPDATE_DATA: sev_cmd_id = 9; 1946 pub const sev_cmd_id_KVM_SEV_SEND_UPDATE_VMSA: sev_cmd_id = 10; 1947 pub const sev_cmd_id_KVM_SEV_SEND_FINISH: sev_cmd_id = 11; 1948 pub const sev_cmd_id_KVM_SEV_RECEIVE_START: sev_cmd_id = 12; 1949 pub const sev_cmd_id_KVM_SEV_RECEIVE_UPDATE_DATA: sev_cmd_id = 13; 1950 pub const sev_cmd_id_KVM_SEV_RECEIVE_UPDATE_VMSA: sev_cmd_id = 14; 1951 pub const sev_cmd_id_KVM_SEV_RECEIVE_FINISH: sev_cmd_id = 15; 1952 pub const sev_cmd_id_KVM_SEV_GUEST_STATUS: sev_cmd_id = 16; 1953 pub const sev_cmd_id_KVM_SEV_DBG_DECRYPT: sev_cmd_id = 17; 1954 pub const sev_cmd_id_KVM_SEV_DBG_ENCRYPT: sev_cmd_id = 18; 1955 pub const sev_cmd_id_KVM_SEV_CERT_EXPORT: sev_cmd_id = 19; 1956 pub const sev_cmd_id_KVM_SEV_NR_MAX: sev_cmd_id = 20; 1957 pub type sev_cmd_id = ::std::os::raw::c_uint; 1958 #[repr(C)] 1959 #[derive(Debug, Default, Copy, Clone)] 1960 pub struct kvm_sev_cmd { 1961 pub id: u32, 1962 pub data: u64, 1963 pub error: u32, 1964 pub sev_fd: u32, 1965 } 1966 #[repr(C)] 1967 #[derive(Debug, Default, Copy, Clone)] 1968 pub struct kvm_sev_launch_start { 1969 pub handle: u32, 1970 pub policy: u32, 1971 pub dh_uaddr: u64, 1972 pub dh_len: u32, 1973 pub session_uaddr: u64, 1974 pub session_len: u32, 1975 } 1976 #[repr(C)] 1977 #[derive(Debug, Default, Copy, Clone)] 1978 pub struct kvm_sev_launch_update_data { 1979 pub uaddr: u64, 1980 pub len: u32, 1981 } 1982 #[repr(C)] 1983 #[derive(Debug, Default, Copy, Clone)] 1984 pub struct kvm_sev_launch_secret { 1985 pub hdr_uaddr: u64, 1986 pub hdr_len: u32, 1987 pub guest_uaddr: u64, 1988 pub guest_len: u32, 1989 pub trans_uaddr: u64, 1990 pub trans_len: u32, 1991 } 1992 #[repr(C)] 1993 #[derive(Debug, Default, Copy, Clone)] 1994 pub struct kvm_sev_launch_measure { 1995 pub uaddr: u64, 1996 pub len: u32, 1997 } 1998 #[repr(C)] 1999 #[derive(Debug, Default, Copy, Clone)] 2000 pub struct kvm_sev_guest_status { 2001 pub handle: u32, 2002 pub policy: u32, 2003 pub state: u32, 2004 } 2005 #[repr(C)] 2006 #[derive(Debug, Default, Copy, Clone)] 2007 pub struct kvm_sev_dbg { 2008 pub src_uaddr: u64, 2009 pub dst_uaddr: u64, 2010 pub len: u32, 2011 } 2012 #[repr(C)] 2013 #[derive(Copy, Clone)] 2014 pub struct kvm_assigned_pci_dev { 2015 pub assigned_dev_id: u32, 2016 pub busnr: u32, 2017 pub devfn: u32, 2018 pub flags: u32, 2019 pub segnr: u32, 2020 pub __bindgen_anon_1: kvm_assigned_pci_dev__bindgen_ty_1, 2021 } 2022 #[repr(C)] 2023 #[derive(Copy, Clone)] 2024 pub union kvm_assigned_pci_dev__bindgen_ty_1 { 2025 pub reserved: [u32; 11usize], 2026 } 2027 impl Default for kvm_assigned_pci_dev__bindgen_ty_1 { default() -> Self2028 fn default() -> Self { 2029 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2030 unsafe { 2031 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2032 s.assume_init() 2033 } 2034 } 2035 } 2036 impl Default for kvm_assigned_pci_dev { default() -> Self2037 fn default() -> Self { 2038 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2039 unsafe { 2040 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2041 s.assume_init() 2042 } 2043 } 2044 } 2045 #[repr(C)] 2046 #[derive(Copy, Clone)] 2047 pub struct kvm_assigned_irq { 2048 pub assigned_dev_id: u32, 2049 pub host_irq: u32, 2050 pub guest_irq: u32, 2051 pub flags: u32, 2052 pub __bindgen_anon_1: kvm_assigned_irq__bindgen_ty_1, 2053 } 2054 #[repr(C)] 2055 #[derive(Copy, Clone)] 2056 pub union kvm_assigned_irq__bindgen_ty_1 { 2057 pub reserved: [u32; 12usize], 2058 } 2059 impl Default for kvm_assigned_irq__bindgen_ty_1 { default() -> Self2060 fn default() -> Self { 2061 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2062 unsafe { 2063 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2064 s.assume_init() 2065 } 2066 } 2067 } 2068 impl Default for kvm_assigned_irq { default() -> Self2069 fn default() -> Self { 2070 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2071 unsafe { 2072 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2073 s.assume_init() 2074 } 2075 } 2076 } 2077 #[repr(C)] 2078 #[derive(Debug, Default, Copy, Clone)] 2079 pub struct kvm_assigned_msix_nr { 2080 pub assigned_dev_id: u32, 2081 pub entry_nr: u16, 2082 pub padding: u16, 2083 } 2084 #[repr(C)] 2085 #[derive(Debug, Default, Copy, Clone)] 2086 pub struct kvm_assigned_msix_entry { 2087 pub assigned_dev_id: u32, 2088 pub gsi: u32, 2089 pub entry: u16, 2090 pub padding: [u16; 3usize], 2091 } 2092 #[repr(C)] 2093 #[derive(Debug, Default, Copy, Clone)] 2094 pub struct kvm_hyperv_eventfd { 2095 pub conn_id: u32, 2096 pub fd: i32, 2097 pub flags: u32, 2098 pub padding: [u32; 3usize], 2099 } 2100 pub type __uint128_t = u128; 2101