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