1 /* automatically generated by tools/bindgen-all-the-things */ 2 3 #![allow(clippy::missing_safety_doc)] 4 #![allow(clippy::upper_case_acronyms)] 5 #![allow(non_upper_case_globals)] 6 #![allow(non_camel_case_types)] 7 #![allow(non_snake_case)] 8 #![allow(dead_code)] 9 10 // Added by kvm_sys/bindgen.sh 11 pub const KVM_SYSTEM_EVENT_S2IDLE: u32 = 4; 12 // TODO(tjeznach): Remove this when reporting KVM_IOAPIC_NUM_PINS is no longer required. 13 pub const KVM_CAP_IOAPIC_NUM_PINS: u32 = 8191; 14 // TODO(qwandor): Update this once the pKVM patches are merged upstream with a stable capability ID. 15 pub const KVM_CAP_ARM_PROTECTED_VM: u32 = 0xffbadab1; 16 pub const KVM_CAP_ARM_PROTECTED_VM_FLAGS_SET_FW_IPA: u32 = 0; 17 pub const KVM_CAP_ARM_PROTECTED_VM_FLAGS_INFO: u32 = 1; 18 pub const KVM_VM_TYPE_ARM_PROTECTED: u32 = 0x80000000; 19 20 #[repr(C)] 21 #[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)] 22 pub struct __BindgenBitfieldUnit<Storage> { 23 storage: Storage, 24 } 25 impl<Storage> __BindgenBitfieldUnit<Storage> { 26 #[inline] new(storage: Storage) -> Self27 pub const fn new(storage: Storage) -> Self { 28 Self { storage } 29 } 30 } 31 impl<Storage> __BindgenBitfieldUnit<Storage> 32 where 33 Storage: AsRef<[u8]> + AsMut<[u8]>, 34 { 35 #[inline] get_bit(&self, index: usize) -> bool36 pub fn get_bit(&self, index: usize) -> bool { 37 debug_assert!(index / 8 < self.storage.as_ref().len()); 38 let byte_index = index / 8; 39 let byte = self.storage.as_ref()[byte_index]; 40 let bit_index = if cfg!(target_endian = "big") { 41 7 - (index % 8) 42 } else { 43 index % 8 44 }; 45 let mask = 1 << bit_index; 46 byte & mask == mask 47 } 48 #[inline] set_bit(&mut self, index: usize, val: bool)49 pub fn set_bit(&mut self, index: usize, val: bool) { 50 debug_assert!(index / 8 < self.storage.as_ref().len()); 51 let byte_index = index / 8; 52 let byte = &mut self.storage.as_mut()[byte_index]; 53 let bit_index = if cfg!(target_endian = "big") { 54 7 - (index % 8) 55 } else { 56 index % 8 57 }; 58 let mask = 1 << bit_index; 59 if val { 60 *byte |= mask; 61 } else { 62 *byte &= !mask; 63 } 64 } 65 #[inline] get(&self, bit_offset: usize, bit_width: u8) -> u6466 pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 { 67 debug_assert!(bit_width <= 64); 68 debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); 69 debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); 70 let mut val = 0; 71 for i in 0..(bit_width as usize) { 72 if self.get_bit(i + bit_offset) { 73 let index = if cfg!(target_endian = "big") { 74 bit_width as usize - 1 - i 75 } else { 76 i 77 }; 78 val |= 1 << index; 79 } 80 } 81 val 82 } 83 #[inline] set(&mut self, bit_offset: usize, bit_width: u8, val: u64)84 pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) { 85 debug_assert!(bit_width <= 64); 86 debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); 87 debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); 88 for i in 0..(bit_width as usize) { 89 let mask = 1 << i; 90 let val_bit_is_set = val & mask == mask; 91 let index = if cfg!(target_endian = "big") { 92 bit_width as usize - 1 - i 93 } else { 94 i 95 }; 96 self.set_bit(index + bit_offset, val_bit_is_set); 97 } 98 } 99 } 100 #[repr(C)] 101 #[derive(Default)] 102 pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]); 103 impl<T> __IncompleteArrayField<T> { 104 #[inline] new() -> Self105 pub const fn new() -> Self { 106 __IncompleteArrayField(::std::marker::PhantomData, []) 107 } 108 #[inline] as_ptr(&self) -> *const T109 pub fn as_ptr(&self) -> *const T { 110 self as *const _ as *const T 111 } 112 #[inline] as_mut_ptr(&mut self) -> *mut T113 pub fn as_mut_ptr(&mut self) -> *mut T { 114 self as *mut _ as *mut T 115 } 116 #[inline] as_slice(&self, len: usize) -> &[T]117 pub unsafe fn as_slice(&self, len: usize) -> &[T] { 118 ::std::slice::from_raw_parts(self.as_ptr(), len) 119 } 120 #[inline] as_mut_slice(&mut self, len: usize) -> &mut [T]121 pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { 122 ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len) 123 } 124 } 125 impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> { fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result126 fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { 127 fmt.write_str("__IncompleteArrayField") 128 } 129 } 130 #[repr(C)] 131 pub struct __BindgenUnionField<T>(::std::marker::PhantomData<T>); 132 impl<T> __BindgenUnionField<T> { 133 #[inline] new() -> Self134 pub const fn new() -> Self { 135 __BindgenUnionField(::std::marker::PhantomData) 136 } 137 #[inline] as_ref(&self) -> &T138 pub unsafe fn as_ref(&self) -> &T { 139 ::std::mem::transmute(self) 140 } 141 #[inline] as_mut(&mut self) -> &mut T142 pub unsafe fn as_mut(&mut self) -> &mut T { 143 ::std::mem::transmute(self) 144 } 145 } 146 impl<T> ::std::default::Default for __BindgenUnionField<T> { 147 #[inline] default() -> Self148 fn default() -> Self { 149 Self::new() 150 } 151 } 152 impl<T> ::std::clone::Clone for __BindgenUnionField<T> { 153 #[inline] clone(&self) -> Self154 fn clone(&self) -> Self { 155 Self::new() 156 } 157 } 158 impl<T> ::std::marker::Copy for __BindgenUnionField<T> {} 159 impl<T> ::std::fmt::Debug for __BindgenUnionField<T> { fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result160 fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { 161 fmt.write_str("__BindgenUnionField") 162 } 163 } 164 impl<T> ::std::hash::Hash for __BindgenUnionField<T> { hash<H: ::std::hash::Hasher>(&self, _state: &mut H)165 fn hash<H: ::std::hash::Hasher>(&self, _state: &mut H) {} 166 } 167 impl<T> ::std::cmp::PartialEq for __BindgenUnionField<T> { eq(&self, _other: &__BindgenUnionField<T>) -> bool168 fn eq(&self, _other: &__BindgenUnionField<T>) -> bool { 169 true 170 } 171 } 172 impl<T> ::std::cmp::Eq for __BindgenUnionField<T> {} 173 pub const KVM_PIO_PAGE_OFFSET: u32 = 1; 174 pub const KVM_COALESCED_MMIO_PAGE_OFFSET: u32 = 2; 175 pub const KVM_DIRTY_LOG_PAGE_OFFSET: u32 = 64; 176 pub const DE_VECTOR: u32 = 0; 177 pub const DB_VECTOR: u32 = 1; 178 pub const BP_VECTOR: u32 = 3; 179 pub const OF_VECTOR: u32 = 4; 180 pub const BR_VECTOR: u32 = 5; 181 pub const UD_VECTOR: u32 = 6; 182 pub const NM_VECTOR: u32 = 7; 183 pub const DF_VECTOR: u32 = 8; 184 pub const TS_VECTOR: u32 = 10; 185 pub const NP_VECTOR: u32 = 11; 186 pub const SS_VECTOR: u32 = 12; 187 pub const GP_VECTOR: u32 = 13; 188 pub const PF_VECTOR: u32 = 14; 189 pub const MF_VECTOR: u32 = 16; 190 pub const AC_VECTOR: u32 = 17; 191 pub const MC_VECTOR: u32 = 18; 192 pub const XM_VECTOR: u32 = 19; 193 pub const VE_VECTOR: u32 = 20; 194 pub const KVM_NR_INTERRUPTS: u32 = 256; 195 pub const KVM_IOAPIC_NUM_PINS: u32 = 24; 196 pub const KVM_IRQCHIP_PIC_MASTER: u32 = 0; 197 pub const KVM_IRQCHIP_PIC_SLAVE: u32 = 1; 198 pub const KVM_IRQCHIP_IOAPIC: u32 = 2; 199 pub const KVM_NR_IRQCHIPS: u32 = 3; 200 pub const KVM_RUN_X86_SMM: u32 = 1; 201 pub const KVM_RUN_X86_BUS_LOCK: u32 = 2; 202 pub const KVM_APIC_REG_SIZE: u32 = 1024; 203 pub const KVM_SREGS2_FLAGS_PDPTRS_VALID: u32 = 1; 204 pub const KVM_MSR_FILTER_MAX_BITMAP_SIZE: u32 = 1536; 205 pub const KVM_MSR_FILTER_READ: u32 = 1; 206 pub const KVM_MSR_FILTER_WRITE: u32 = 2; 207 pub const KVM_MSR_FILTER_MAX_RANGES: u32 = 16; 208 pub const KVM_MSR_FILTER_DEFAULT_ALLOW: u32 = 0; 209 pub const KVM_MSR_FILTER_DEFAULT_DENY: u32 = 1; 210 pub const KVM_CPUID_FLAG_SIGNIFCANT_INDEX: u32 = 1; 211 pub const KVM_CPUID_FLAG_STATEFUL_FUNC: u32 = 2; 212 pub const KVM_CPUID_FLAG_STATE_READ_NEXT: u32 = 4; 213 pub const KVM_GUESTDBG_USE_SW_BP: u32 = 65536; 214 pub const KVM_GUESTDBG_USE_HW_BP: u32 = 131072; 215 pub const KVM_GUESTDBG_INJECT_DB: u32 = 262144; 216 pub const KVM_GUESTDBG_INJECT_BP: u32 = 524288; 217 pub const KVM_GUESTDBG_BLOCKIRQ: u32 = 1048576; 218 pub const KVM_PIT_FLAGS_HPET_LEGACY: u32 = 1; 219 pub const KVM_PIT_FLAGS_SPEAKER_DATA_ON: u32 = 2; 220 pub const KVM_VCPUEVENT_VALID_NMI_PENDING: u32 = 1; 221 pub const KVM_VCPUEVENT_VALID_SIPI_VECTOR: u32 = 2; 222 pub const KVM_VCPUEVENT_VALID_SHADOW: u32 = 4; 223 pub const KVM_VCPUEVENT_VALID_SMM: u32 = 8; 224 pub const KVM_VCPUEVENT_VALID_PAYLOAD: u32 = 16; 225 pub const KVM_VCPUEVENT_VALID_TRIPLE_FAULT: u32 = 32; 226 pub const KVM_X86_SHADOW_INT_MOV_SS: u32 = 1; 227 pub const KVM_X86_SHADOW_INT_STI: u32 = 2; 228 pub const KVM_MAX_XCRS: u32 = 16; 229 pub const KVM_SYNC_X86_REGS: u32 = 1; 230 pub const KVM_SYNC_X86_SREGS: u32 = 2; 231 pub const KVM_SYNC_X86_EVENTS: u32 = 4; 232 pub const KVM_SYNC_X86_VALID_FIELDS: u32 = 7; 233 pub const KVM_X86_QUIRK_LINT0_REENABLED: u32 = 1; 234 pub const KVM_X86_QUIRK_CD_NW_CLEARED: u32 = 2; 235 pub const KVM_X86_QUIRK_LAPIC_MMIO_HOLE: u32 = 4; 236 pub const KVM_X86_QUIRK_OUT_7E_INC_RIP: u32 = 8; 237 pub const KVM_X86_QUIRK_MISC_ENABLE_NO_MWAIT: u32 = 16; 238 pub const KVM_X86_QUIRK_FIX_HYPERCALL_INSN: u32 = 32; 239 pub const KVM_X86_QUIRK_MWAIT_NEVER_UD_FAULTS: u32 = 64; 240 pub const KVM_STATE_NESTED_FORMAT_VMX: u32 = 0; 241 pub const KVM_STATE_NESTED_FORMAT_SVM: u32 = 1; 242 pub const KVM_STATE_NESTED_GUEST_MODE: u32 = 1; 243 pub const KVM_STATE_NESTED_RUN_PENDING: u32 = 2; 244 pub const KVM_STATE_NESTED_EVMCS: u32 = 4; 245 pub const KVM_STATE_NESTED_MTF_PENDING: u32 = 8; 246 pub const KVM_STATE_NESTED_GIF_SET: u32 = 256; 247 pub const KVM_STATE_NESTED_SMM_GUEST_MODE: u32 = 1; 248 pub const KVM_STATE_NESTED_SMM_VMXON: u32 = 2; 249 pub const KVM_STATE_NESTED_VMX_VMCS_SIZE: u32 = 4096; 250 pub const KVM_STATE_NESTED_SVM_VMCB_SIZE: u32 = 4096; 251 pub const KVM_STATE_VMX_PREEMPTION_TIMER_DEADLINE: u32 = 1; 252 pub const KVM_X86_XCOMP_GUEST_SUPP: u32 = 0; 253 pub const KVM_PMU_EVENT_ALLOW: u32 = 0; 254 pub const KVM_PMU_EVENT_DENY: u32 = 1; 255 pub const KVM_VCPU_TSC_CTRL: u32 = 0; 256 pub const KVM_VCPU_TSC_OFFSET: u32 = 0; 257 pub const KVM_API_VERSION: u32 = 12; 258 pub const KVM_TRC_SHIFT: u32 = 16; 259 pub const KVM_TRC_ENTRYEXIT: u32 = 65536; 260 pub const KVM_TRC_HANDLER: u32 = 131072; 261 pub const KVM_TRC_VMENTRY: u32 = 65537; 262 pub const KVM_TRC_VMEXIT: u32 = 65538; 263 pub const KVM_TRC_PAGE_FAULT: u32 = 131073; 264 pub const KVM_TRC_HEAD_SIZE: u32 = 12; 265 pub const KVM_TRC_CYCLE_SIZE: u32 = 8; 266 pub const KVM_TRC_EXTRA_MAX: u32 = 7; 267 pub const KVM_TRC_INJ_VIRQ: u32 = 131074; 268 pub const KVM_TRC_REDELIVER_EVT: u32 = 131075; 269 pub const KVM_TRC_PEND_INTR: u32 = 131076; 270 pub const KVM_TRC_IO_READ: u32 = 131077; 271 pub const KVM_TRC_IO_WRITE: u32 = 131078; 272 pub const KVM_TRC_CR_READ: u32 = 131079; 273 pub const KVM_TRC_CR_WRITE: u32 = 131080; 274 pub const KVM_TRC_DR_READ: u32 = 131081; 275 pub const KVM_TRC_DR_WRITE: u32 = 131082; 276 pub const KVM_TRC_MSR_READ: u32 = 131083; 277 pub const KVM_TRC_MSR_WRITE: u32 = 131084; 278 pub const KVM_TRC_CPUID: u32 = 131085; 279 pub const KVM_TRC_INTR: u32 = 131086; 280 pub const KVM_TRC_NMI: u32 = 131087; 281 pub const KVM_TRC_VMMCALL: u32 = 131088; 282 pub const KVM_TRC_HLT: u32 = 131089; 283 pub const KVM_TRC_CLTS: u32 = 131090; 284 pub const KVM_TRC_LMSW: u32 = 131091; 285 pub const KVM_TRC_APIC_ACCESS: u32 = 131092; 286 pub const KVM_TRC_TDP_FAULT: u32 = 131093; 287 pub const KVM_TRC_GTLB_WRITE: u32 = 131094; 288 pub const KVM_TRC_STLB_WRITE: u32 = 131095; 289 pub const KVM_TRC_STLB_INVAL: u32 = 131096; 290 pub const KVM_TRC_PPC_INSTR: u32 = 131097; 291 pub const KVM_MEM_LOG_DIRTY_PAGES: u32 = 1; 292 pub const KVM_MEM_READONLY: u32 = 2; 293 pub const KVM_PIT_SPEAKER_DUMMY: u32 = 1; 294 pub const KVM_S390_CMMA_PEEK: u32 = 1; 295 pub const KVM_EXIT_HYPERV_SYNIC: u32 = 1; 296 pub const KVM_EXIT_HYPERV_HCALL: u32 = 2; 297 pub const KVM_EXIT_HYPERV_SYNDBG: u32 = 3; 298 pub const KVM_EXIT_XEN_HCALL: u32 = 1; 299 pub const KVM_S390_GET_SKEYS_NONE: u32 = 1; 300 pub const KVM_S390_SKEYS_MAX: u32 = 1048576; 301 pub const KVM_EXIT_UNKNOWN: u32 = 0; 302 pub const KVM_EXIT_EXCEPTION: u32 = 1; 303 pub const KVM_EXIT_IO: u32 = 2; 304 pub const KVM_EXIT_HYPERCALL: u32 = 3; 305 pub const KVM_EXIT_DEBUG: u32 = 4; 306 pub const KVM_EXIT_HLT: u32 = 5; 307 pub const KVM_EXIT_MMIO: u32 = 6; 308 pub const KVM_EXIT_IRQ_WINDOW_OPEN: u32 = 7; 309 pub const KVM_EXIT_SHUTDOWN: u32 = 8; 310 pub const KVM_EXIT_FAIL_ENTRY: u32 = 9; 311 pub const KVM_EXIT_INTR: u32 = 10; 312 pub const KVM_EXIT_SET_TPR: u32 = 11; 313 pub const KVM_EXIT_TPR_ACCESS: u32 = 12; 314 pub const KVM_EXIT_S390_SIEIC: u32 = 13; 315 pub const KVM_EXIT_S390_RESET: u32 = 14; 316 pub const KVM_EXIT_DCR: u32 = 15; 317 pub const KVM_EXIT_NMI: u32 = 16; 318 pub const KVM_EXIT_INTERNAL_ERROR: u32 = 17; 319 pub const KVM_EXIT_OSI: u32 = 18; 320 pub const KVM_EXIT_PAPR_HCALL: u32 = 19; 321 pub const KVM_EXIT_S390_UCONTROL: u32 = 20; 322 pub const KVM_EXIT_WATCHDOG: u32 = 21; 323 pub const KVM_EXIT_S390_TSCH: u32 = 22; 324 pub const KVM_EXIT_EPR: u32 = 23; 325 pub const KVM_EXIT_SYSTEM_EVENT: u32 = 24; 326 pub const KVM_EXIT_S390_STSI: u32 = 25; 327 pub const KVM_EXIT_IOAPIC_EOI: u32 = 26; 328 pub const KVM_EXIT_HYPERV: u32 = 27; 329 pub const KVM_EXIT_ARM_NISV: u32 = 28; 330 pub const KVM_EXIT_X86_RDMSR: u32 = 29; 331 pub const KVM_EXIT_X86_WRMSR: u32 = 30; 332 pub const KVM_EXIT_DIRTY_RING_FULL: u32 = 31; 333 pub const KVM_EXIT_AP_RESET_HOLD: u32 = 32; 334 pub const KVM_EXIT_X86_BUS_LOCK: u32 = 33; 335 pub const KVM_EXIT_XEN: u32 = 34; 336 pub const KVM_EXIT_RISCV_SBI: u32 = 35; 337 pub const KVM_EXIT_RISCV_CSR: u32 = 36; 338 pub const KVM_EXIT_NOTIFY: u32 = 37; 339 pub const KVM_INTERNAL_ERROR_EMULATION: u32 = 1; 340 pub const KVM_INTERNAL_ERROR_SIMUL_EX: u32 = 2; 341 pub const KVM_INTERNAL_ERROR_DELIVERY_EV: u32 = 3; 342 pub const KVM_INTERNAL_ERROR_UNEXPECTED_EXIT_REASON: u32 = 4; 343 pub const KVM_INTERNAL_ERROR_EMULATION_FLAG_INSTRUCTION_BYTES: u32 = 1; 344 pub const KVM_EXIT_IO_IN: u32 = 0; 345 pub const KVM_EXIT_IO_OUT: u32 = 1; 346 pub const KVM_S390_RESET_POR: u32 = 1; 347 pub const KVM_S390_RESET_CLEAR: u32 = 2; 348 pub const KVM_S390_RESET_SUBSYSTEM: u32 = 4; 349 pub const KVM_S390_RESET_CPU_INIT: u32 = 8; 350 pub const KVM_S390_RESET_IPL: u32 = 16; 351 pub const KVM_SYSTEM_EVENT_SHUTDOWN: u32 = 1; 352 pub const KVM_SYSTEM_EVENT_RESET: u32 = 2; 353 pub const KVM_SYSTEM_EVENT_CRASH: u32 = 3; 354 pub const KVM_SYSTEM_EVENT_WAKEUP: u32 = 4; 355 pub const KVM_SYSTEM_EVENT_SUSPEND: u32 = 5; 356 pub const KVM_SYSTEM_EVENT_SEV_TERM: u32 = 6; 357 pub const KVM_MSR_EXIT_REASON_INVAL: u32 = 1; 358 pub const KVM_MSR_EXIT_REASON_UNKNOWN: u32 = 2; 359 pub const KVM_MSR_EXIT_REASON_FILTER: u32 = 4; 360 pub const KVM_NOTIFY_CONTEXT_INVALID: u32 = 1; 361 pub const SYNC_REGS_SIZE_BYTES: u32 = 2048; 362 pub const KVM_S390_MEMOP_LOGICAL_READ: u32 = 0; 363 pub const KVM_S390_MEMOP_LOGICAL_WRITE: u32 = 1; 364 pub const KVM_S390_MEMOP_SIDA_READ: u32 = 2; 365 pub const KVM_S390_MEMOP_SIDA_WRITE: u32 = 3; 366 pub const KVM_S390_MEMOP_ABSOLUTE_READ: u32 = 4; 367 pub const KVM_S390_MEMOP_ABSOLUTE_WRITE: u32 = 5; 368 pub const KVM_S390_MEMOP_F_CHECK_ONLY: u32 = 1; 369 pub const KVM_S390_MEMOP_F_INJECT_EXCEPTION: u32 = 2; 370 pub const KVM_S390_MEMOP_F_SKEY_PROTECTION: u32 = 4; 371 pub const KVM_MP_STATE_RUNNABLE: u32 = 0; 372 pub const KVM_MP_STATE_UNINITIALIZED: u32 = 1; 373 pub const KVM_MP_STATE_INIT_RECEIVED: u32 = 2; 374 pub const KVM_MP_STATE_HALTED: u32 = 3; 375 pub const KVM_MP_STATE_SIPI_RECEIVED: u32 = 4; 376 pub const KVM_MP_STATE_STOPPED: u32 = 5; 377 pub const KVM_MP_STATE_CHECK_STOP: u32 = 6; 378 pub const KVM_MP_STATE_OPERATING: u32 = 7; 379 pub const KVM_MP_STATE_LOAD: u32 = 8; 380 pub const KVM_MP_STATE_AP_RESET_HOLD: u32 = 9; 381 pub const KVM_MP_STATE_SUSPENDED: u32 = 10; 382 pub const KVM_S390_SIGP_STOP: u32 = 4294836224; 383 pub const KVM_S390_PROGRAM_INT: u32 = 4294836225; 384 pub const KVM_S390_SIGP_SET_PREFIX: u32 = 4294836226; 385 pub const KVM_S390_RESTART: u32 = 4294836227; 386 pub const KVM_S390_INT_PFAULT_INIT: u32 = 4294836228; 387 pub const KVM_S390_INT_PFAULT_DONE: u32 = 4294836229; 388 pub const KVM_S390_MCHK: u32 = 4294840320; 389 pub const KVM_S390_INT_CLOCK_COMP: u32 = 4294905860; 390 pub const KVM_S390_INT_CPU_TIMER: u32 = 4294905861; 391 pub const KVM_S390_INT_VIRTIO: u32 = 4294911491; 392 pub const KVM_S390_INT_SERVICE: u32 = 4294910977; 393 pub const KVM_S390_INT_EMERGENCY: u32 = 4294906369; 394 pub const KVM_S390_INT_EXTERNAL_CALL: u32 = 4294906370; 395 pub const KVM_S390_INT_IO_MIN: u32 = 0; 396 pub const KVM_S390_INT_IO_MAX: u32 = 4294836223; 397 pub const KVM_S390_INT_IO_AI_MASK: u32 = 67108864; 398 pub const KVM_S390_PGM_FLAGS_ILC_VALID: u32 = 1; 399 pub const KVM_S390_PGM_FLAGS_ILC_0: u32 = 2; 400 pub const KVM_S390_PGM_FLAGS_ILC_1: u32 = 4; 401 pub const KVM_S390_PGM_FLAGS_ILC_MASK: u32 = 6; 402 pub const KVM_S390_PGM_FLAGS_NO_REWIND: u32 = 8; 403 pub const KVM_S390_STOP_FLAG_STORE_STATUS: u32 = 1; 404 pub const KVM_GUESTDBG_ENABLE: u32 = 1; 405 pub const KVM_GUESTDBG_SINGLESTEP: u32 = 2; 406 pub const KVM_X86_DISABLE_EXITS_MWAIT: u32 = 1; 407 pub const KVM_X86_DISABLE_EXITS_HLT: u32 = 2; 408 pub const KVM_X86_DISABLE_EXITS_PAUSE: u32 = 4; 409 pub const KVM_X86_DISABLE_EXITS_CSTATE: u32 = 8; 410 pub const KVM_X86_DISABLE_VALID_EXITS: u32 = 15; 411 pub const KVM_PPC_PVINFO_FLAGS_EV_IDLE: u32 = 1; 412 pub const KVM_PPC_PAGE_SIZES_MAX_SZ: u32 = 8; 413 pub const KVM_PPC_PAGE_SIZES_REAL: u32 = 1; 414 pub const KVM_PPC_1T_SEGMENTS: u32 = 2; 415 pub const KVM_PPC_NO_HASH: u32 = 4; 416 pub const KVMIO: u32 = 174; 417 pub const KVM_VM_S390_UCONTROL: u32 = 1; 418 pub const KVM_VM_PPC_HV: u32 = 1; 419 pub const KVM_VM_PPC_PR: u32 = 2; 420 pub const KVM_VM_MIPS_AUTO: u32 = 0; 421 pub const KVM_VM_MIPS_VZ: u32 = 1; 422 pub const KVM_VM_MIPS_TE: u32 = 2; 423 pub const KVM_S390_SIE_PAGE_OFFSET: u32 = 1; 424 pub const KVM_VM_TYPE_ARM_IPA_SIZE_MASK: u32 = 255; 425 pub const KVM_CAP_IRQCHIP: u32 = 0; 426 pub const KVM_CAP_HLT: u32 = 1; 427 pub const KVM_CAP_MMU_SHADOW_CACHE_CONTROL: u32 = 2; 428 pub const KVM_CAP_USER_MEMORY: u32 = 3; 429 pub const KVM_CAP_SET_TSS_ADDR: u32 = 4; 430 pub const KVM_CAP_VAPIC: u32 = 6; 431 pub const KVM_CAP_EXT_CPUID: u32 = 7; 432 pub const KVM_CAP_CLOCKSOURCE: u32 = 8; 433 pub const KVM_CAP_NR_VCPUS: u32 = 9; 434 pub const KVM_CAP_NR_MEMSLOTS: u32 = 10; 435 pub const KVM_CAP_PIT: u32 = 11; 436 pub const KVM_CAP_NOP_IO_DELAY: u32 = 12; 437 pub const KVM_CAP_PV_MMU: u32 = 13; 438 pub const KVM_CAP_MP_STATE: u32 = 14; 439 pub const KVM_CAP_COALESCED_MMIO: u32 = 15; 440 pub const KVM_CAP_SYNC_MMU: u32 = 16; 441 pub const KVM_CAP_IOMMU: u32 = 18; 442 pub const KVM_CAP_DESTROY_MEMORY_REGION_WORKS: u32 = 21; 443 pub const KVM_CAP_USER_NMI: u32 = 22; 444 pub const KVM_CAP_SET_GUEST_DEBUG: u32 = 23; 445 pub const KVM_CAP_REINJECT_CONTROL: u32 = 24; 446 pub const KVM_CAP_IRQ_ROUTING: u32 = 25; 447 pub const KVM_CAP_IRQ_INJECT_STATUS: u32 = 26; 448 pub const KVM_CAP_ASSIGN_DEV_IRQ: u32 = 29; 449 pub const KVM_CAP_JOIN_MEMORY_REGIONS_WORKS: u32 = 30; 450 pub const KVM_CAP_MCE: u32 = 31; 451 pub const KVM_CAP_IRQFD: u32 = 32; 452 pub const KVM_CAP_PIT2: u32 = 33; 453 pub const KVM_CAP_SET_BOOT_CPU_ID: u32 = 34; 454 pub const KVM_CAP_PIT_STATE2: u32 = 35; 455 pub const KVM_CAP_IOEVENTFD: u32 = 36; 456 pub const KVM_CAP_SET_IDENTITY_MAP_ADDR: u32 = 37; 457 pub const KVM_CAP_XEN_HVM: u32 = 38; 458 pub const KVM_CAP_ADJUST_CLOCK: u32 = 39; 459 pub const KVM_CAP_INTERNAL_ERROR_DATA: u32 = 40; 460 pub const KVM_CAP_VCPU_EVENTS: u32 = 41; 461 pub const KVM_CAP_S390_PSW: u32 = 42; 462 pub const KVM_CAP_PPC_SEGSTATE: u32 = 43; 463 pub const KVM_CAP_HYPERV: u32 = 44; 464 pub const KVM_CAP_HYPERV_VAPIC: u32 = 45; 465 pub const KVM_CAP_HYPERV_SPIN: u32 = 46; 466 pub const KVM_CAP_PCI_SEGMENT: u32 = 47; 467 pub const KVM_CAP_PPC_PAIRED_SINGLES: u32 = 48; 468 pub const KVM_CAP_INTR_SHADOW: u32 = 49; 469 pub const KVM_CAP_DEBUGREGS: u32 = 50; 470 pub const KVM_CAP_X86_ROBUST_SINGLESTEP: u32 = 51; 471 pub const KVM_CAP_PPC_OSI: u32 = 52; 472 pub const KVM_CAP_PPC_UNSET_IRQ: u32 = 53; 473 pub const KVM_CAP_ENABLE_CAP: u32 = 54; 474 pub const KVM_CAP_XSAVE: u32 = 55; 475 pub const KVM_CAP_XCRS: u32 = 56; 476 pub const KVM_CAP_PPC_GET_PVINFO: u32 = 57; 477 pub const KVM_CAP_PPC_IRQ_LEVEL: u32 = 58; 478 pub const KVM_CAP_ASYNC_PF: u32 = 59; 479 pub const KVM_CAP_TSC_CONTROL: u32 = 60; 480 pub const KVM_CAP_GET_TSC_KHZ: u32 = 61; 481 pub const KVM_CAP_PPC_BOOKE_SREGS: u32 = 62; 482 pub const KVM_CAP_SPAPR_TCE: u32 = 63; 483 pub const KVM_CAP_PPC_SMT: u32 = 64; 484 pub const KVM_CAP_PPC_RMA: u32 = 65; 485 pub const KVM_CAP_MAX_VCPUS: u32 = 66; 486 pub const KVM_CAP_PPC_HIOR: u32 = 67; 487 pub const KVM_CAP_PPC_PAPR: u32 = 68; 488 pub const KVM_CAP_SW_TLB: u32 = 69; 489 pub const KVM_CAP_ONE_REG: u32 = 70; 490 pub const KVM_CAP_S390_GMAP: u32 = 71; 491 pub const KVM_CAP_TSC_DEADLINE_TIMER: u32 = 72; 492 pub const KVM_CAP_S390_UCONTROL: u32 = 73; 493 pub const KVM_CAP_SYNC_REGS: u32 = 74; 494 pub const KVM_CAP_PCI_2_3: u32 = 75; 495 pub const KVM_CAP_KVMCLOCK_CTRL: u32 = 76; 496 pub const KVM_CAP_SIGNAL_MSI: u32 = 77; 497 pub const KVM_CAP_PPC_GET_SMMU_INFO: u32 = 78; 498 pub const KVM_CAP_S390_COW: u32 = 79; 499 pub const KVM_CAP_PPC_ALLOC_HTAB: u32 = 80; 500 pub const KVM_CAP_READONLY_MEM: u32 = 81; 501 pub const KVM_CAP_IRQFD_RESAMPLE: u32 = 82; 502 pub const KVM_CAP_PPC_BOOKE_WATCHDOG: u32 = 83; 503 pub const KVM_CAP_PPC_HTAB_FD: u32 = 84; 504 pub const KVM_CAP_S390_CSS_SUPPORT: u32 = 85; 505 pub const KVM_CAP_PPC_EPR: u32 = 86; 506 pub const KVM_CAP_ARM_PSCI: u32 = 87; 507 pub const KVM_CAP_ARM_SET_DEVICE_ADDR: u32 = 88; 508 pub const KVM_CAP_DEVICE_CTRL: u32 = 89; 509 pub const KVM_CAP_IRQ_MPIC: u32 = 90; 510 pub const KVM_CAP_PPC_RTAS: u32 = 91; 511 pub const KVM_CAP_IRQ_XICS: u32 = 92; 512 pub const KVM_CAP_ARM_EL1_32BIT: u32 = 93; 513 pub const KVM_CAP_SPAPR_MULTITCE: u32 = 94; 514 pub const KVM_CAP_EXT_EMUL_CPUID: u32 = 95; 515 pub const KVM_CAP_HYPERV_TIME: u32 = 96; 516 pub const KVM_CAP_IOAPIC_POLARITY_IGNORED: u32 = 97; 517 pub const KVM_CAP_ENABLE_CAP_VM: u32 = 98; 518 pub const KVM_CAP_S390_IRQCHIP: u32 = 99; 519 pub const KVM_CAP_IOEVENTFD_NO_LENGTH: u32 = 100; 520 pub const KVM_CAP_VM_ATTRIBUTES: u32 = 101; 521 pub const KVM_CAP_ARM_PSCI_0_2: u32 = 102; 522 pub const KVM_CAP_PPC_FIXUP_HCALL: u32 = 103; 523 pub const KVM_CAP_PPC_ENABLE_HCALL: u32 = 104; 524 pub const KVM_CAP_CHECK_EXTENSION_VM: u32 = 105; 525 pub const KVM_CAP_S390_USER_SIGP: u32 = 106; 526 pub const KVM_CAP_S390_VECTOR_REGISTERS: u32 = 107; 527 pub const KVM_CAP_S390_MEM_OP: u32 = 108; 528 pub const KVM_CAP_S390_USER_STSI: u32 = 109; 529 pub const KVM_CAP_S390_SKEYS: u32 = 110; 530 pub const KVM_CAP_MIPS_FPU: u32 = 111; 531 pub const KVM_CAP_MIPS_MSA: u32 = 112; 532 pub const KVM_CAP_S390_INJECT_IRQ: u32 = 113; 533 pub const KVM_CAP_S390_IRQ_STATE: u32 = 114; 534 pub const KVM_CAP_PPC_HWRNG: u32 = 115; 535 pub const KVM_CAP_DISABLE_QUIRKS: u32 = 116; 536 pub const KVM_CAP_X86_SMM: u32 = 117; 537 pub const KVM_CAP_MULTI_ADDRESS_SPACE: u32 = 118; 538 pub const KVM_CAP_GUEST_DEBUG_HW_BPS: u32 = 119; 539 pub const KVM_CAP_GUEST_DEBUG_HW_WPS: u32 = 120; 540 pub const KVM_CAP_SPLIT_IRQCHIP: u32 = 121; 541 pub const KVM_CAP_IOEVENTFD_ANY_LENGTH: u32 = 122; 542 pub const KVM_CAP_HYPERV_SYNIC: u32 = 123; 543 pub const KVM_CAP_S390_RI: u32 = 124; 544 pub const KVM_CAP_SPAPR_TCE_64: u32 = 125; 545 pub const KVM_CAP_ARM_PMU_V3: u32 = 126; 546 pub const KVM_CAP_VCPU_ATTRIBUTES: u32 = 127; 547 pub const KVM_CAP_MAX_VCPU_ID: u32 = 128; 548 pub const KVM_CAP_X2APIC_API: u32 = 129; 549 pub const KVM_CAP_S390_USER_INSTR0: u32 = 130; 550 pub const KVM_CAP_MSI_DEVID: u32 = 131; 551 pub const KVM_CAP_PPC_HTM: u32 = 132; 552 pub const KVM_CAP_SPAPR_RESIZE_HPT: u32 = 133; 553 pub const KVM_CAP_PPC_MMU_RADIX: u32 = 134; 554 pub const KVM_CAP_PPC_MMU_HASH_V3: u32 = 135; 555 pub const KVM_CAP_IMMEDIATE_EXIT: u32 = 136; 556 pub const KVM_CAP_MIPS_VZ: u32 = 137; 557 pub const KVM_CAP_MIPS_TE: u32 = 138; 558 pub const KVM_CAP_MIPS_64BIT: u32 = 139; 559 pub const KVM_CAP_S390_GS: u32 = 140; 560 pub const KVM_CAP_S390_AIS: u32 = 141; 561 pub const KVM_CAP_SPAPR_TCE_VFIO: u32 = 142; 562 pub const KVM_CAP_X86_DISABLE_EXITS: u32 = 143; 563 pub const KVM_CAP_ARM_USER_IRQ: u32 = 144; 564 pub const KVM_CAP_S390_CMMA_MIGRATION: u32 = 145; 565 pub const KVM_CAP_PPC_FWNMI: u32 = 146; 566 pub const KVM_CAP_PPC_SMT_POSSIBLE: u32 = 147; 567 pub const KVM_CAP_HYPERV_SYNIC2: u32 = 148; 568 pub const KVM_CAP_HYPERV_VP_INDEX: u32 = 149; 569 pub const KVM_CAP_S390_AIS_MIGRATION: u32 = 150; 570 pub const KVM_CAP_PPC_GET_CPU_CHAR: u32 = 151; 571 pub const KVM_CAP_S390_BPB: u32 = 152; 572 pub const KVM_CAP_GET_MSR_FEATURES: u32 = 153; 573 pub const KVM_CAP_HYPERV_EVENTFD: u32 = 154; 574 pub const KVM_CAP_HYPERV_TLBFLUSH: u32 = 155; 575 pub const KVM_CAP_S390_HPAGE_1M: u32 = 156; 576 pub const KVM_CAP_NESTED_STATE: u32 = 157; 577 pub const KVM_CAP_ARM_INJECT_SERROR_ESR: u32 = 158; 578 pub const KVM_CAP_MSR_PLATFORM_INFO: u32 = 159; 579 pub const KVM_CAP_PPC_NESTED_HV: u32 = 160; 580 pub const KVM_CAP_HYPERV_SEND_IPI: u32 = 161; 581 pub const KVM_CAP_COALESCED_PIO: u32 = 162; 582 pub const KVM_CAP_HYPERV_ENLIGHTENED_VMCS: u32 = 163; 583 pub const KVM_CAP_EXCEPTION_PAYLOAD: u32 = 164; 584 pub const KVM_CAP_ARM_VM_IPA_SIZE: u32 = 165; 585 pub const KVM_CAP_MANUAL_DIRTY_LOG_PROTECT: u32 = 166; 586 pub const KVM_CAP_HYPERV_CPUID: u32 = 167; 587 pub const KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2: u32 = 168; 588 pub const KVM_CAP_PPC_IRQ_XIVE: u32 = 169; 589 pub const KVM_CAP_ARM_SVE: u32 = 170; 590 pub const KVM_CAP_ARM_PTRAUTH_ADDRESS: u32 = 171; 591 pub const KVM_CAP_ARM_PTRAUTH_GENERIC: u32 = 172; 592 pub const KVM_CAP_PMU_EVENT_FILTER: u32 = 173; 593 pub const KVM_CAP_ARM_IRQ_LINE_LAYOUT_2: u32 = 174; 594 pub const KVM_CAP_HYPERV_DIRECT_TLBFLUSH: u32 = 175; 595 pub const KVM_CAP_PPC_GUEST_DEBUG_SSTEP: u32 = 176; 596 pub const KVM_CAP_ARM_NISV_TO_USER: u32 = 177; 597 pub const KVM_CAP_ARM_INJECT_EXT_DABT: u32 = 178; 598 pub const KVM_CAP_S390_VCPU_RESETS: u32 = 179; 599 pub const KVM_CAP_S390_PROTECTED: u32 = 180; 600 pub const KVM_CAP_PPC_SECURE_GUEST: u32 = 181; 601 pub const KVM_CAP_HALT_POLL: u32 = 182; 602 pub const KVM_CAP_ASYNC_PF_INT: u32 = 183; 603 pub const KVM_CAP_LAST_CPU: u32 = 184; 604 pub const KVM_CAP_SMALLER_MAXPHYADDR: u32 = 185; 605 pub const KVM_CAP_S390_DIAG318: u32 = 186; 606 pub const KVM_CAP_STEAL_TIME: u32 = 187; 607 pub const KVM_CAP_X86_USER_SPACE_MSR: u32 = 188; 608 pub const KVM_CAP_X86_MSR_FILTER: u32 = 189; 609 pub const KVM_CAP_ENFORCE_PV_FEATURE_CPUID: u32 = 190; 610 pub const KVM_CAP_SYS_HYPERV_CPUID: u32 = 191; 611 pub const KVM_CAP_DIRTY_LOG_RING: u32 = 192; 612 pub const KVM_CAP_X86_BUS_LOCK_EXIT: u32 = 193; 613 pub const KVM_CAP_PPC_DAWR1: u32 = 194; 614 pub const KVM_CAP_SET_GUEST_DEBUG2: u32 = 195; 615 pub const KVM_CAP_SGX_ATTRIBUTE: u32 = 196; 616 pub const KVM_CAP_VM_COPY_ENC_CONTEXT_FROM: u32 = 197; 617 pub const KVM_CAP_PTP_KVM: u32 = 198; 618 pub const KVM_CAP_HYPERV_ENFORCE_CPUID: u32 = 199; 619 pub const KVM_CAP_SREGS2: u32 = 200; 620 pub const KVM_CAP_EXIT_HYPERCALL: u32 = 201; 621 pub const KVM_CAP_PPC_RPT_INVALIDATE: u32 = 202; 622 pub const KVM_CAP_BINARY_STATS_FD: u32 = 203; 623 pub const KVM_CAP_EXIT_ON_EMULATION_FAILURE: u32 = 204; 624 pub const KVM_CAP_ARM_MTE: u32 = 205; 625 pub const KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM: u32 = 206; 626 pub const KVM_CAP_VM_GPA_BITS: u32 = 207; 627 pub const KVM_CAP_XSAVE2: u32 = 208; 628 pub const KVM_CAP_SYS_ATTRIBUTES: u32 = 209; 629 pub const KVM_CAP_PPC_AIL_MODE_3: u32 = 210; 630 pub const KVM_CAP_S390_MEM_OP_EXTENSION: u32 = 211; 631 pub const KVM_CAP_PMU_CAPABILITY: u32 = 212; 632 pub const KVM_CAP_DISABLE_QUIRKS2: u32 = 213; 633 pub const KVM_CAP_VM_TSC_CONTROL: u32 = 214; 634 pub const KVM_CAP_SYSTEM_EVENT_DATA: u32 = 215; 635 pub const KVM_CAP_ARM_SYSTEM_SUSPEND: u32 = 216; 636 pub const KVM_CAP_S390_PROTECTED_DUMP: u32 = 217; 637 pub const KVM_CAP_X86_TRIPLE_FAULT_EVENT: u32 = 218; 638 pub const KVM_CAP_X86_NOTIFY_VMEXIT: u32 = 219; 639 pub const KVM_CAP_VM_DISABLE_NX_HUGE_PAGES: u32 = 220; 640 pub const KVM_CAP_S390_ZPCI_OP: u32 = 221; 641 pub const KVM_CAP_S390_CPU_TOPOLOGY: u32 = 222; 642 pub const KVM_CAP_DIRTY_LOG_RING_ACQ_REL: u32 = 223; 643 pub const KVM_CAP_UCLAMP_SYNC: u32 = 1024; 644 pub const KVM_IRQ_ROUTING_IRQCHIP: u32 = 1; 645 pub const KVM_IRQ_ROUTING_MSI: u32 = 2; 646 pub const KVM_IRQ_ROUTING_S390_ADAPTER: u32 = 3; 647 pub const KVM_IRQ_ROUTING_HV_SINT: u32 = 4; 648 pub const KVM_IRQ_ROUTING_XEN_EVTCHN: u32 = 5; 649 pub const KVM_XEN_HVM_CONFIG_HYPERCALL_MSR: u32 = 1; 650 pub const KVM_XEN_HVM_CONFIG_INTERCEPT_HCALL: u32 = 2; 651 pub const KVM_XEN_HVM_CONFIG_SHARED_INFO: u32 = 4; 652 pub const KVM_XEN_HVM_CONFIG_RUNSTATE: u32 = 8; 653 pub const KVM_XEN_HVM_CONFIG_EVTCHN_2LEVEL: u32 = 16; 654 pub const KVM_XEN_HVM_CONFIG_EVTCHN_SEND: u32 = 32; 655 pub const KVM_IRQFD_FLAG_DEASSIGN: u32 = 1; 656 pub const KVM_IRQFD_FLAG_RESAMPLE: u32 = 2; 657 pub const KVM_CLOCK_TSC_STABLE: u32 = 2; 658 pub const KVM_CLOCK_REALTIME: u32 = 4; 659 pub const KVM_CLOCK_HOST_TSC: u32 = 8; 660 pub const KVM_MMU_FSL_BOOKE_NOHV: u32 = 0; 661 pub const KVM_MMU_FSL_BOOKE_HV: u32 = 1; 662 pub const KVM_REG_ARCH_MASK: i64 = -72057594037927936; 663 pub const KVM_REG_GENERIC: u32 = 0; 664 pub const KVM_REG_PPC: u64 = 1152921504606846976; 665 pub const KVM_REG_X86: u64 = 2305843009213693952; 666 pub const KVM_REG_IA64: u64 = 3458764513820540928; 667 pub const KVM_REG_ARM: u64 = 4611686018427387904; 668 pub const KVM_REG_S390: u64 = 5764607523034234880; 669 pub const KVM_REG_ARM64: u64 = 6917529027641081856; 670 pub const KVM_REG_MIPS: u64 = 8070450532247928832; 671 pub const KVM_REG_RISCV: i64 = -9223372036854775808; 672 pub const KVM_REG_SIZE_SHIFT: u32 = 52; 673 pub const KVM_REG_SIZE_MASK: u64 = 67553994410557440; 674 pub const KVM_REG_SIZE_U8: u32 = 0; 675 pub const KVM_REG_SIZE_U16: u64 = 4503599627370496; 676 pub const KVM_REG_SIZE_U32: u64 = 9007199254740992; 677 pub const KVM_REG_SIZE_U64: u64 = 13510798882111488; 678 pub const KVM_REG_SIZE_U128: u64 = 18014398509481984; 679 pub const KVM_REG_SIZE_U256: u64 = 22517998136852480; 680 pub const KVM_REG_SIZE_U512: u64 = 27021597764222976; 681 pub const KVM_REG_SIZE_U1024: u64 = 31525197391593472; 682 pub const KVM_REG_SIZE_U2048: u64 = 36028797018963968; 683 pub const KVM_MSI_VALID_DEVID: u32 = 1; 684 pub const KVM_CREATE_DEVICE_TEST: u32 = 1; 685 pub const KVM_DEV_VFIO_GROUP: u32 = 1; 686 pub const KVM_DEV_VFIO_GROUP_ADD: u32 = 1; 687 pub const KVM_DEV_VFIO_GROUP_DEL: u32 = 2; 688 pub const KVM_DEV_VFIO_GROUP_SET_SPAPR_TCE: u32 = 3; 689 pub const KVM_S390_STORE_STATUS_NOADDR: i32 = -1; 690 pub const KVM_S390_STORE_STATUS_PREFIXED: i32 = -2; 691 pub const KVM_XEN_EVTCHN_DEASSIGN: u32 = 1; 692 pub const KVM_XEN_EVTCHN_UPDATE: u32 = 2; 693 pub const KVM_XEN_EVTCHN_RESET: u32 = 4; 694 pub const KVM_XEN_ATTR_TYPE_LONG_MODE: u32 = 0; 695 pub const KVM_XEN_ATTR_TYPE_SHARED_INFO: u32 = 1; 696 pub const KVM_XEN_ATTR_TYPE_UPCALL_VECTOR: u32 = 2; 697 pub const KVM_XEN_ATTR_TYPE_EVTCHN: u32 = 3; 698 pub const KVM_XEN_ATTR_TYPE_XEN_VERSION: u32 = 4; 699 pub const KVM_XEN_VCPU_ATTR_TYPE_VCPU_INFO: u32 = 0; 700 pub const KVM_XEN_VCPU_ATTR_TYPE_VCPU_TIME_INFO: u32 = 1; 701 pub const KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_ADDR: u32 = 2; 702 pub const KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_CURRENT: u32 = 3; 703 pub const KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_DATA: u32 = 4; 704 pub const KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_ADJUST: u32 = 5; 705 pub const KVM_XEN_VCPU_ATTR_TYPE_VCPU_ID: u32 = 6; 706 pub const KVM_XEN_VCPU_ATTR_TYPE_TIMER: u32 = 7; 707 pub const KVM_XEN_VCPU_ATTR_TYPE_UPCALL_VECTOR: u32 = 8; 708 pub const KVM_DEV_ASSIGN_ENABLE_IOMMU: u32 = 1; 709 pub const KVM_DEV_ASSIGN_PCI_2_3: u32 = 2; 710 pub const KVM_DEV_ASSIGN_MASK_INTX: u32 = 4; 711 pub const KVM_DEV_IRQ_HOST_INTX: u32 = 1; 712 pub const KVM_DEV_IRQ_HOST_MSI: u32 = 2; 713 pub const KVM_DEV_IRQ_HOST_MSIX: u32 = 4; 714 pub const KVM_DEV_IRQ_GUEST_INTX: u32 = 256; 715 pub const KVM_DEV_IRQ_GUEST_MSI: u32 = 512; 716 pub const KVM_DEV_IRQ_GUEST_MSIX: u32 = 1024; 717 pub const KVM_DEV_IRQ_HOST_MASK: u32 = 255; 718 pub const KVM_DEV_IRQ_GUEST_MASK: u32 = 65280; 719 pub const KVM_MAX_MSIX_PER_DEV: u32 = 256; 720 pub const KVM_X2APIC_API_USE_32BIT_IDS: u32 = 1; 721 pub const KVM_X2APIC_API_DISABLE_BROADCAST_QUIRK: u32 = 2; 722 pub const KVM_ARM_DEV_EL1_VTIMER: u32 = 1; 723 pub const KVM_ARM_DEV_EL1_PTIMER: u32 = 2; 724 pub const KVM_ARM_DEV_PMU: u32 = 4; 725 pub const KVM_HYPERV_CONN_ID_MASK: u32 = 16777215; 726 pub const KVM_HYPERV_EVENTFD_DEASSIGN: u32 = 1; 727 pub const KVM_DIRTY_LOG_MANUAL_PROTECT_ENABLE: u32 = 1; 728 pub const KVM_DIRTY_LOG_INITIALLY_SET: u32 = 2; 729 pub const KVM_DIRTY_GFN_F_MASK: u32 = 3; 730 pub const KVM_BUS_LOCK_DETECTION_OFF: u32 = 1; 731 pub const KVM_BUS_LOCK_DETECTION_EXIT: u32 = 2; 732 pub const KVM_PMU_CAP_DISABLE: u32 = 1; 733 pub const KVM_STATS_TYPE_SHIFT: u32 = 0; 734 pub const KVM_STATS_TYPE_MASK: u32 = 15; 735 pub const KVM_STATS_TYPE_CUMULATIVE: u32 = 0; 736 pub const KVM_STATS_TYPE_INSTANT: u32 = 1; 737 pub const KVM_STATS_TYPE_PEAK: u32 = 2; 738 pub const KVM_STATS_TYPE_LINEAR_HIST: u32 = 3; 739 pub const KVM_STATS_TYPE_LOG_HIST: u32 = 4; 740 pub const KVM_STATS_TYPE_MAX: u32 = 4; 741 pub const KVM_STATS_UNIT_SHIFT: u32 = 4; 742 pub const KVM_STATS_UNIT_MASK: u32 = 240; 743 pub const KVM_STATS_UNIT_NONE: u32 = 0; 744 pub const KVM_STATS_UNIT_BYTES: u32 = 16; 745 pub const KVM_STATS_UNIT_SECONDS: u32 = 32; 746 pub const KVM_STATS_UNIT_CYCLES: u32 = 48; 747 pub const KVM_STATS_UNIT_BOOLEAN: u32 = 64; 748 pub const KVM_STATS_UNIT_MAX: u32 = 64; 749 pub const KVM_STATS_BASE_SHIFT: u32 = 8; 750 pub const KVM_STATS_BASE_MASK: u32 = 3840; 751 pub const KVM_STATS_BASE_POW10: u32 = 0; 752 pub const KVM_STATS_BASE_POW2: u32 = 256; 753 pub const KVM_STATS_BASE_MAX: u32 = 256; 754 pub const KVM_X86_NOTIFY_VMEXIT_ENABLED: u32 = 1; 755 pub const KVM_X86_NOTIFY_VMEXIT_USER: u32 = 2; 756 pub const KVM_S390_ZPCIOP_REG_AEN: u32 = 0; 757 pub const KVM_S390_ZPCIOP_DEREG_AEN: u32 = 1; 758 pub const KVM_S390_ZPCIOP_REGAEN_HOST: u32 = 1; 759 pub type __le16 = u16; 760 pub type __be16 = u16; 761 pub type __le32 = u32; 762 pub type __be32 = u32; 763 pub type __le64 = u64; 764 pub type __be64 = u64; 765 pub type __sum16 = u16; 766 pub type __wsum = u32; 767 pub type __poll_t = ::std::os::raw::c_uint; 768 #[repr(C)] 769 #[derive(Debug, Default, Copy, Clone)] 770 pub struct kvm_memory_alias { 771 pub slot: u32, 772 pub flags: u32, 773 pub guest_phys_addr: u64, 774 pub memory_size: u64, 775 pub target_phys_addr: u64, 776 } 777 #[repr(C)] 778 #[derive(Debug, Default, Copy, Clone)] 779 pub struct kvm_pic_state { 780 pub last_irr: u8, 781 pub irr: u8, 782 pub imr: u8, 783 pub isr: u8, 784 pub priority_add: u8, 785 pub irq_base: u8, 786 pub read_reg_select: u8, 787 pub poll: u8, 788 pub special_mask: u8, 789 pub init_state: u8, 790 pub auto_eoi: u8, 791 pub rotate_on_auto_eoi: u8, 792 pub special_fully_nested_mode: u8, 793 pub init4: u8, 794 pub elcr: u8, 795 pub elcr_mask: u8, 796 } 797 #[repr(C)] 798 #[derive(Copy, Clone)] 799 pub struct kvm_ioapic_state { 800 pub base_address: u64, 801 pub ioregsel: u32, 802 pub id: u32, 803 pub irr: u32, 804 pub pad: u32, 805 pub redirtbl: [kvm_ioapic_state__bindgen_ty_1; 24usize], 806 } 807 #[repr(C)] 808 #[derive(Copy, Clone)] 809 pub union kvm_ioapic_state__bindgen_ty_1 { 810 pub bits: u64, 811 pub fields: kvm_ioapic_state__bindgen_ty_1__bindgen_ty_1, 812 } 813 #[repr(C)] 814 #[derive(Debug, Default, Copy, Clone)] 815 pub struct kvm_ioapic_state__bindgen_ty_1__bindgen_ty_1 { 816 pub vector: u8, 817 pub _bitfield_align_1: [u8; 0], 818 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, 819 pub reserved: [u8; 4usize], 820 pub dest_id: u8, 821 } 822 impl kvm_ioapic_state__bindgen_ty_1__bindgen_ty_1 { 823 #[inline] delivery_mode(&self) -> u8824 pub fn delivery_mode(&self) -> u8 { 825 unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 3u8) as u8) } 826 } 827 #[inline] set_delivery_mode(&mut self, val: u8)828 pub fn set_delivery_mode(&mut self, val: u8) { 829 unsafe { 830 let val: u8 = ::std::mem::transmute(val); 831 self._bitfield_1.set(0usize, 3u8, val as u64) 832 } 833 } 834 #[inline] dest_mode(&self) -> u8835 pub fn dest_mode(&self) -> u8 { 836 unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) } 837 } 838 #[inline] set_dest_mode(&mut self, val: u8)839 pub fn set_dest_mode(&mut self, val: u8) { 840 unsafe { 841 let val: u8 = ::std::mem::transmute(val); 842 self._bitfield_1.set(3usize, 1u8, val as u64) 843 } 844 } 845 #[inline] delivery_status(&self) -> u8846 pub fn delivery_status(&self) -> u8 { 847 unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u8) } 848 } 849 #[inline] set_delivery_status(&mut self, val: u8)850 pub fn set_delivery_status(&mut self, val: u8) { 851 unsafe { 852 let val: u8 = ::std::mem::transmute(val); 853 self._bitfield_1.set(4usize, 1u8, val as u64) 854 } 855 } 856 #[inline] polarity(&self) -> u8857 pub fn polarity(&self) -> u8 { 858 unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u8) } 859 } 860 #[inline] set_polarity(&mut self, val: u8)861 pub fn set_polarity(&mut self, val: u8) { 862 unsafe { 863 let val: u8 = ::std::mem::transmute(val); 864 self._bitfield_1.set(5usize, 1u8, val as u64) 865 } 866 } 867 #[inline] remote_irr(&self) -> u8868 pub fn remote_irr(&self) -> u8 { 869 unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u8) } 870 } 871 #[inline] set_remote_irr(&mut self, val: u8)872 pub fn set_remote_irr(&mut self, val: u8) { 873 unsafe { 874 let val: u8 = ::std::mem::transmute(val); 875 self._bitfield_1.set(6usize, 1u8, val as u64) 876 } 877 } 878 #[inline] trig_mode(&self) -> u8879 pub fn trig_mode(&self) -> u8 { 880 unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u8) } 881 } 882 #[inline] set_trig_mode(&mut self, val: u8)883 pub fn set_trig_mode(&mut self, val: u8) { 884 unsafe { 885 let val: u8 = ::std::mem::transmute(val); 886 self._bitfield_1.set(7usize, 1u8, val as u64) 887 } 888 } 889 #[inline] mask(&self) -> u8890 pub fn mask(&self) -> u8 { 891 unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u8) } 892 } 893 #[inline] set_mask(&mut self, val: u8)894 pub fn set_mask(&mut self, val: u8) { 895 unsafe { 896 let val: u8 = ::std::mem::transmute(val); 897 self._bitfield_1.set(8usize, 1u8, val as u64) 898 } 899 } 900 #[inline] reserve(&self) -> u8901 pub fn reserve(&self) -> u8 { 902 unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 7u8) as u8) } 903 } 904 #[inline] set_reserve(&mut self, val: u8)905 pub fn set_reserve(&mut self, val: u8) { 906 unsafe { 907 let val: u8 = ::std::mem::transmute(val); 908 self._bitfield_1.set(9usize, 7u8, val as u64) 909 } 910 } 911 #[inline] new_bitfield_1( delivery_mode: u8, dest_mode: u8, delivery_status: u8, polarity: u8, remote_irr: u8, trig_mode: u8, mask: u8, reserve: u8, ) -> __BindgenBitfieldUnit<[u8; 2usize]>912 pub fn new_bitfield_1( 913 delivery_mode: u8, 914 dest_mode: u8, 915 delivery_status: u8, 916 polarity: u8, 917 remote_irr: u8, 918 trig_mode: u8, 919 mask: u8, 920 reserve: u8, 921 ) -> __BindgenBitfieldUnit<[u8; 2usize]> { 922 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); 923 __bindgen_bitfield_unit.set(0usize, 3u8, { 924 let delivery_mode: u8 = unsafe { ::std::mem::transmute(delivery_mode) }; 925 delivery_mode as u64 926 }); 927 __bindgen_bitfield_unit.set(3usize, 1u8, { 928 let dest_mode: u8 = unsafe { ::std::mem::transmute(dest_mode) }; 929 dest_mode as u64 930 }); 931 __bindgen_bitfield_unit.set(4usize, 1u8, { 932 let delivery_status: u8 = unsafe { ::std::mem::transmute(delivery_status) }; 933 delivery_status as u64 934 }); 935 __bindgen_bitfield_unit.set(5usize, 1u8, { 936 let polarity: u8 = unsafe { ::std::mem::transmute(polarity) }; 937 polarity as u64 938 }); 939 __bindgen_bitfield_unit.set(6usize, 1u8, { 940 let remote_irr: u8 = unsafe { ::std::mem::transmute(remote_irr) }; 941 remote_irr as u64 942 }); 943 __bindgen_bitfield_unit.set(7usize, 1u8, { 944 let trig_mode: u8 = unsafe { ::std::mem::transmute(trig_mode) }; 945 trig_mode as u64 946 }); 947 __bindgen_bitfield_unit.set(8usize, 1u8, { 948 let mask: u8 = unsafe { ::std::mem::transmute(mask) }; 949 mask as u64 950 }); 951 __bindgen_bitfield_unit.set(9usize, 7u8, { 952 let reserve: u8 = unsafe { ::std::mem::transmute(reserve) }; 953 reserve as u64 954 }); 955 __bindgen_bitfield_unit 956 } 957 } 958 impl Default for kvm_ioapic_state__bindgen_ty_1 { default() -> Self959 fn default() -> Self { 960 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 961 unsafe { 962 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 963 s.assume_init() 964 } 965 } 966 } 967 impl Default for kvm_ioapic_state { default() -> Self968 fn default() -> Self { 969 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 970 unsafe { 971 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 972 s.assume_init() 973 } 974 } 975 } 976 #[repr(C)] 977 #[derive(Debug, Default, Copy, Clone)] 978 pub struct kvm_regs { 979 pub rax: u64, 980 pub rbx: u64, 981 pub rcx: u64, 982 pub rdx: u64, 983 pub rsi: u64, 984 pub rdi: u64, 985 pub rsp: u64, 986 pub rbp: u64, 987 pub r8: u64, 988 pub r9: u64, 989 pub r10: u64, 990 pub r11: u64, 991 pub r12: u64, 992 pub r13: u64, 993 pub r14: u64, 994 pub r15: u64, 995 pub rip: u64, 996 pub rflags: u64, 997 } 998 #[repr(C)] 999 #[derive(Debug, Copy, Clone)] 1000 pub struct kvm_lapic_state { 1001 pub regs: [::std::os::raw::c_char; 1024usize], 1002 } 1003 impl Default for kvm_lapic_state { default() -> Self1004 fn default() -> Self { 1005 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1006 unsafe { 1007 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1008 s.assume_init() 1009 } 1010 } 1011 } 1012 #[repr(C)] 1013 #[derive(Debug, Default, Copy, Clone)] 1014 pub struct kvm_segment { 1015 pub base: u64, 1016 pub limit: u32, 1017 pub selector: u16, 1018 pub type_: u8, 1019 pub present: u8, 1020 pub dpl: u8, 1021 pub db: u8, 1022 pub s: u8, 1023 pub l: u8, 1024 pub g: u8, 1025 pub avl: u8, 1026 pub unusable: u8, 1027 pub padding: u8, 1028 } 1029 #[repr(C)] 1030 #[derive(Debug, Default, Copy, Clone)] 1031 pub struct kvm_dtable { 1032 pub base: u64, 1033 pub limit: u16, 1034 pub padding: [u16; 3usize], 1035 } 1036 #[repr(C)] 1037 #[derive(Debug, Default, Copy, Clone)] 1038 pub struct kvm_sregs { 1039 pub cs: kvm_segment, 1040 pub ds: kvm_segment, 1041 pub es: kvm_segment, 1042 pub fs: kvm_segment, 1043 pub gs: kvm_segment, 1044 pub ss: kvm_segment, 1045 pub tr: kvm_segment, 1046 pub ldt: kvm_segment, 1047 pub gdt: kvm_dtable, 1048 pub idt: kvm_dtable, 1049 pub cr0: u64, 1050 pub cr2: u64, 1051 pub cr3: u64, 1052 pub cr4: u64, 1053 pub cr8: u64, 1054 pub efer: u64, 1055 pub apic_base: u64, 1056 pub interrupt_bitmap: [u64; 4usize], 1057 } 1058 #[repr(C)] 1059 #[derive(Debug, Default, Copy, Clone)] 1060 pub struct kvm_sregs2 { 1061 pub cs: kvm_segment, 1062 pub ds: kvm_segment, 1063 pub es: kvm_segment, 1064 pub fs: kvm_segment, 1065 pub gs: kvm_segment, 1066 pub ss: kvm_segment, 1067 pub tr: kvm_segment, 1068 pub ldt: kvm_segment, 1069 pub gdt: kvm_dtable, 1070 pub idt: kvm_dtable, 1071 pub cr0: u64, 1072 pub cr2: u64, 1073 pub cr3: u64, 1074 pub cr4: u64, 1075 pub cr8: u64, 1076 pub efer: u64, 1077 pub apic_base: u64, 1078 pub flags: u64, 1079 pub pdptrs: [u64; 4usize], 1080 } 1081 #[repr(C)] 1082 #[derive(Debug, Default, Copy, Clone)] 1083 pub struct kvm_fpu { 1084 pub fpr: [[u8; 16usize]; 8usize], 1085 pub fcw: u16, 1086 pub fsw: u16, 1087 pub ftwx: u8, 1088 pub pad1: u8, 1089 pub last_opcode: u16, 1090 pub last_ip: u64, 1091 pub last_dp: u64, 1092 pub xmm: [[u8; 16usize]; 16usize], 1093 pub mxcsr: u32, 1094 pub pad2: u32, 1095 } 1096 #[repr(C)] 1097 #[derive(Debug, Default, Copy, Clone)] 1098 pub struct kvm_msr_entry { 1099 pub index: u32, 1100 pub reserved: u32, 1101 pub data: u64, 1102 } 1103 #[repr(C)] 1104 #[derive(Debug, Default)] 1105 pub struct kvm_msrs { 1106 pub nmsrs: u32, 1107 pub pad: u32, 1108 pub entries: __IncompleteArrayField<kvm_msr_entry>, 1109 } 1110 #[repr(C)] 1111 #[derive(Debug, Default)] 1112 pub struct kvm_msr_list { 1113 pub nmsrs: u32, 1114 pub indices: __IncompleteArrayField<u32>, 1115 } 1116 #[repr(C)] 1117 #[derive(Debug, Copy, Clone)] 1118 pub struct kvm_msr_filter_range { 1119 pub flags: u32, 1120 pub nmsrs: u32, 1121 pub base: u32, 1122 pub bitmap: *mut u8, 1123 } 1124 impl Default for kvm_msr_filter_range { default() -> Self1125 fn default() -> Self { 1126 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1127 unsafe { 1128 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1129 s.assume_init() 1130 } 1131 } 1132 } 1133 #[repr(C)] 1134 #[derive(Debug, Copy, Clone)] 1135 pub struct kvm_msr_filter { 1136 pub flags: u32, 1137 pub ranges: [kvm_msr_filter_range; 16usize], 1138 } 1139 impl Default for kvm_msr_filter { default() -> Self1140 fn default() -> Self { 1141 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1142 unsafe { 1143 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1144 s.assume_init() 1145 } 1146 } 1147 } 1148 #[repr(C)] 1149 #[derive(Debug, Default, Copy, Clone)] 1150 pub struct kvm_cpuid_entry { 1151 pub function: u32, 1152 pub eax: u32, 1153 pub ebx: u32, 1154 pub ecx: u32, 1155 pub edx: u32, 1156 pub padding: u32, 1157 } 1158 #[repr(C)] 1159 #[derive(Debug, Default)] 1160 pub struct kvm_cpuid { 1161 pub nent: u32, 1162 pub padding: u32, 1163 pub entries: __IncompleteArrayField<kvm_cpuid_entry>, 1164 } 1165 #[repr(C)] 1166 #[derive(Debug, Default, Copy, Clone)] 1167 pub struct kvm_cpuid_entry2 { 1168 pub function: u32, 1169 pub index: u32, 1170 pub flags: u32, 1171 pub eax: u32, 1172 pub ebx: u32, 1173 pub ecx: u32, 1174 pub edx: u32, 1175 pub padding: [u32; 3usize], 1176 } 1177 #[repr(C)] 1178 #[derive(Debug, Default)] 1179 pub struct kvm_cpuid2 { 1180 pub nent: u32, 1181 pub padding: u32, 1182 pub entries: __IncompleteArrayField<kvm_cpuid_entry2>, 1183 } 1184 #[repr(C)] 1185 #[derive(Debug, Default, Copy, Clone)] 1186 pub struct kvm_pit_channel_state { 1187 pub count: u32, 1188 pub latched_count: u16, 1189 pub count_latched: u8, 1190 pub status_latched: u8, 1191 pub status: u8, 1192 pub read_state: u8, 1193 pub write_state: u8, 1194 pub write_latch: u8, 1195 pub rw_mode: u8, 1196 pub mode: u8, 1197 pub bcd: u8, 1198 pub gate: u8, 1199 pub count_load_time: i64, 1200 } 1201 #[repr(C)] 1202 #[derive(Debug, Default, Copy, Clone)] 1203 pub struct kvm_debug_exit_arch { 1204 pub exception: u32, 1205 pub pad: u32, 1206 pub pc: u64, 1207 pub dr6: u64, 1208 pub dr7: u64, 1209 } 1210 #[repr(C)] 1211 #[derive(Debug, Default, Copy, Clone)] 1212 pub struct kvm_guest_debug_arch { 1213 pub debugreg: [u64; 8usize], 1214 } 1215 #[repr(C)] 1216 #[derive(Debug, Default, Copy, Clone)] 1217 pub struct kvm_pit_state { 1218 pub channels: [kvm_pit_channel_state; 3usize], 1219 } 1220 #[repr(C)] 1221 #[derive(Debug, Default, Copy, Clone)] 1222 pub struct kvm_pit_state2 { 1223 pub channels: [kvm_pit_channel_state; 3usize], 1224 pub flags: u32, 1225 pub reserved: [u32; 9usize], 1226 } 1227 #[repr(C)] 1228 #[derive(Debug, Default, Copy, Clone)] 1229 pub struct kvm_reinject_control { 1230 pub pit_reinject: u8, 1231 pub reserved: [u8; 31usize], 1232 } 1233 #[repr(C)] 1234 #[derive(Debug, Default, Copy, Clone)] 1235 pub struct kvm_vcpu_events { 1236 pub exception: kvm_vcpu_events__bindgen_ty_1, 1237 pub interrupt: kvm_vcpu_events__bindgen_ty_2, 1238 pub nmi: kvm_vcpu_events__bindgen_ty_3, 1239 pub sipi_vector: u32, 1240 pub flags: u32, 1241 pub smi: kvm_vcpu_events__bindgen_ty_4, 1242 pub triple_fault: kvm_vcpu_events__bindgen_ty_5, 1243 pub reserved: [u8; 26usize], 1244 pub exception_has_payload: u8, 1245 pub exception_payload: u64, 1246 } 1247 #[repr(C)] 1248 #[derive(Debug, Default, Copy, Clone)] 1249 pub struct kvm_vcpu_events__bindgen_ty_1 { 1250 pub injected: u8, 1251 pub nr: u8, 1252 pub has_error_code: u8, 1253 pub pending: u8, 1254 pub error_code: u32, 1255 } 1256 #[repr(C)] 1257 #[derive(Debug, Default, Copy, Clone)] 1258 pub struct kvm_vcpu_events__bindgen_ty_2 { 1259 pub injected: u8, 1260 pub nr: u8, 1261 pub soft: u8, 1262 pub shadow: u8, 1263 } 1264 #[repr(C)] 1265 #[derive(Debug, Default, Copy, Clone)] 1266 pub struct kvm_vcpu_events__bindgen_ty_3 { 1267 pub injected: u8, 1268 pub pending: u8, 1269 pub masked: u8, 1270 pub pad: u8, 1271 } 1272 #[repr(C)] 1273 #[derive(Debug, Default, Copy, Clone)] 1274 pub struct kvm_vcpu_events__bindgen_ty_4 { 1275 pub smm: u8, 1276 pub pending: u8, 1277 pub smm_inside_nmi: u8, 1278 pub latched_init: u8, 1279 } 1280 #[repr(C)] 1281 #[derive(Debug, Default, Copy, Clone)] 1282 pub struct kvm_vcpu_events__bindgen_ty_5 { 1283 pub pending: u8, 1284 } 1285 #[repr(C)] 1286 #[derive(Debug, Default, Copy, Clone)] 1287 pub struct kvm_debugregs { 1288 pub db: [u64; 4usize], 1289 pub dr6: u64, 1290 pub dr7: u64, 1291 pub flags: u64, 1292 pub reserved: [u64; 9usize], 1293 } 1294 #[repr(C)] 1295 #[derive(Debug)] 1296 pub struct kvm_xsave { 1297 pub region: [u32; 1024usize], 1298 pub extra: __IncompleteArrayField<u32>, 1299 } 1300 impl Default for kvm_xsave { 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 #[repr(C)] 1310 #[derive(Debug, Default, Copy, Clone)] 1311 pub struct kvm_xcr { 1312 pub xcr: u32, 1313 pub reserved: u32, 1314 pub value: u64, 1315 } 1316 #[repr(C)] 1317 #[derive(Debug, Default, Copy, Clone)] 1318 pub struct kvm_xcrs { 1319 pub nr_xcrs: u32, 1320 pub flags: u32, 1321 pub xcrs: [kvm_xcr; 16usize], 1322 pub padding: [u64; 16usize], 1323 } 1324 #[repr(C)] 1325 #[derive(Debug, Default, Copy, Clone)] 1326 pub struct kvm_sync_regs { 1327 pub regs: kvm_regs, 1328 pub sregs: kvm_sregs, 1329 pub events: kvm_vcpu_events, 1330 } 1331 #[repr(C)] 1332 #[derive(Debug, Copy, Clone)] 1333 pub struct kvm_vmx_nested_state_data { 1334 pub vmcs12: [u8; 4096usize], 1335 pub shadow_vmcs12: [u8; 4096usize], 1336 } 1337 impl Default for kvm_vmx_nested_state_data { 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_vmx_nested_state_hdr { 1349 pub vmxon_pa: u64, 1350 pub vmcs12_pa: u64, 1351 pub smm: kvm_vmx_nested_state_hdr__bindgen_ty_1, 1352 pub pad: u16, 1353 pub flags: u32, 1354 pub preemption_timer_deadline: u64, 1355 } 1356 #[repr(C)] 1357 #[derive(Debug, Default, Copy, Clone)] 1358 pub struct kvm_vmx_nested_state_hdr__bindgen_ty_1 { 1359 pub flags: u16, 1360 } 1361 #[repr(C)] 1362 #[derive(Debug, Copy, Clone)] 1363 pub struct kvm_svm_nested_state_data { 1364 pub vmcb12: [u8; 4096usize], 1365 } 1366 impl Default for kvm_svm_nested_state_data { default() -> Self1367 fn default() -> Self { 1368 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1369 unsafe { 1370 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1371 s.assume_init() 1372 } 1373 } 1374 } 1375 #[repr(C)] 1376 #[derive(Debug, Default, Copy, Clone)] 1377 pub struct kvm_svm_nested_state_hdr { 1378 pub vmcb_pa: u64, 1379 } 1380 #[repr(C)] 1381 pub struct kvm_nested_state { 1382 pub flags: u16, 1383 pub format: u16, 1384 pub size: u32, 1385 pub hdr: kvm_nested_state__bindgen_ty_1, 1386 pub data: kvm_nested_state__bindgen_ty_2, 1387 } 1388 #[repr(C)] 1389 #[derive(Copy, Clone)] 1390 pub union kvm_nested_state__bindgen_ty_1 { 1391 pub vmx: kvm_vmx_nested_state_hdr, 1392 pub svm: kvm_svm_nested_state_hdr, 1393 pub pad: [u8; 120usize], 1394 } 1395 impl Default for kvm_nested_state__bindgen_ty_1 { default() -> Self1396 fn default() -> Self { 1397 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1398 unsafe { 1399 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1400 s.assume_init() 1401 } 1402 } 1403 } 1404 #[repr(C)] 1405 pub struct kvm_nested_state__bindgen_ty_2 { 1406 pub vmx: __BindgenUnionField<[kvm_vmx_nested_state_data; 0usize]>, 1407 pub svm: __BindgenUnionField<[kvm_svm_nested_state_data; 0usize]>, 1408 pub bindgen_union_field: [u8; 0usize], 1409 } 1410 impl Default for kvm_nested_state__bindgen_ty_2 { default() -> Self1411 fn default() -> Self { 1412 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1413 unsafe { 1414 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1415 s.assume_init() 1416 } 1417 } 1418 } 1419 impl Default for kvm_nested_state { default() -> Self1420 fn default() -> Self { 1421 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1422 unsafe { 1423 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1424 s.assume_init() 1425 } 1426 } 1427 } 1428 #[repr(C)] 1429 #[derive(Debug, Default)] 1430 pub struct kvm_pmu_event_filter { 1431 pub action: u32, 1432 pub nevents: u32, 1433 pub fixed_counter_bitmap: u32, 1434 pub flags: u32, 1435 pub pad: [u32; 4usize], 1436 pub events: __IncompleteArrayField<u64>, 1437 } 1438 #[repr(C)] 1439 #[derive(Debug, Default, Copy, Clone)] 1440 pub struct kvm_user_trace_setup { 1441 pub buf_size: u32, 1442 pub buf_nr: u32, 1443 } 1444 #[repr(C)] 1445 #[derive(Debug, Default, Copy, Clone)] 1446 pub struct kvm_breakpoint { 1447 pub enabled: u32, 1448 pub padding: u32, 1449 pub address: u64, 1450 } 1451 #[repr(C)] 1452 #[derive(Debug, Default, Copy, Clone)] 1453 pub struct kvm_debug_guest { 1454 pub enabled: u32, 1455 pub pad: u32, 1456 pub breakpoints: [kvm_breakpoint; 4usize], 1457 pub singlestep: u32, 1458 } 1459 #[repr(C)] 1460 #[derive(Debug, Default, Copy, Clone)] 1461 pub struct kvm_memory_region { 1462 pub slot: u32, 1463 pub flags: u32, 1464 pub guest_phys_addr: u64, 1465 pub memory_size: u64, 1466 } 1467 #[repr(C)] 1468 #[derive(Debug, Default, Copy, Clone)] 1469 pub struct kvm_userspace_memory_region { 1470 pub slot: u32, 1471 pub flags: u32, 1472 pub guest_phys_addr: u64, 1473 pub memory_size: u64, 1474 pub userspace_addr: u64, 1475 } 1476 #[repr(C)] 1477 #[derive(Copy, Clone)] 1478 pub struct kvm_irq_level { 1479 pub __bindgen_anon_1: kvm_irq_level__bindgen_ty_1, 1480 pub level: u32, 1481 } 1482 #[repr(C)] 1483 #[derive(Copy, Clone)] 1484 pub union kvm_irq_level__bindgen_ty_1 { 1485 pub irq: u32, 1486 pub status: i32, 1487 } 1488 impl Default for kvm_irq_level__bindgen_ty_1 { default() -> Self1489 fn default() -> Self { 1490 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1491 unsafe { 1492 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1493 s.assume_init() 1494 } 1495 } 1496 } 1497 impl Default for kvm_irq_level { default() -> Self1498 fn default() -> Self { 1499 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1500 unsafe { 1501 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1502 s.assume_init() 1503 } 1504 } 1505 } 1506 #[repr(C)] 1507 #[derive(Copy, Clone)] 1508 pub struct kvm_irqchip { 1509 pub chip_id: u32, 1510 pub pad: u32, 1511 pub chip: kvm_irqchip__bindgen_ty_1, 1512 } 1513 #[repr(C)] 1514 #[derive(Copy, Clone)] 1515 pub union kvm_irqchip__bindgen_ty_1 { 1516 pub dummy: [::std::os::raw::c_char; 512usize], 1517 pub pic: kvm_pic_state, 1518 pub ioapic: kvm_ioapic_state, 1519 } 1520 impl Default for kvm_irqchip__bindgen_ty_1 { default() -> Self1521 fn default() -> Self { 1522 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1523 unsafe { 1524 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1525 s.assume_init() 1526 } 1527 } 1528 } 1529 impl Default for kvm_irqchip { 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_pit_config { 1541 pub flags: u32, 1542 pub pad: [u32; 15usize], 1543 } 1544 #[repr(C)] 1545 #[derive(Debug, Default, Copy, Clone)] 1546 pub struct kvm_s390_skeys { 1547 pub start_gfn: u64, 1548 pub count: u64, 1549 pub skeydata_addr: u64, 1550 pub flags: u32, 1551 pub reserved: [u32; 9usize], 1552 } 1553 #[repr(C)] 1554 #[derive(Copy, Clone)] 1555 pub struct kvm_s390_cmma_log { 1556 pub start_gfn: u64, 1557 pub count: u32, 1558 pub flags: u32, 1559 pub __bindgen_anon_1: kvm_s390_cmma_log__bindgen_ty_1, 1560 pub values: u64, 1561 } 1562 #[repr(C)] 1563 #[derive(Copy, Clone)] 1564 pub union kvm_s390_cmma_log__bindgen_ty_1 { 1565 pub remaining: u64, 1566 pub mask: u64, 1567 } 1568 impl Default for kvm_s390_cmma_log__bindgen_ty_1 { default() -> Self1569 fn default() -> Self { 1570 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1571 unsafe { 1572 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1573 s.assume_init() 1574 } 1575 } 1576 } 1577 impl Default for kvm_s390_cmma_log { default() -> Self1578 fn default() -> Self { 1579 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1580 unsafe { 1581 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1582 s.assume_init() 1583 } 1584 } 1585 } 1586 #[repr(C)] 1587 #[derive(Copy, Clone)] 1588 pub struct kvm_hyperv_exit { 1589 pub type_: u32, 1590 pub pad1: u32, 1591 pub u: kvm_hyperv_exit__bindgen_ty_1, 1592 } 1593 #[repr(C)] 1594 #[derive(Copy, Clone)] 1595 pub union kvm_hyperv_exit__bindgen_ty_1 { 1596 pub synic: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1, 1597 pub hcall: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_2, 1598 pub syndbg: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3, 1599 } 1600 #[repr(C)] 1601 #[derive(Debug, Default, Copy, Clone)] 1602 pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1 { 1603 pub msr: u32, 1604 pub pad2: u32, 1605 pub control: u64, 1606 pub evt_page: u64, 1607 pub msg_page: u64, 1608 } 1609 #[repr(C)] 1610 #[derive(Debug, Default, Copy, Clone)] 1611 pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_2 { 1612 pub input: u64, 1613 pub result: u64, 1614 pub params: [u64; 2usize], 1615 } 1616 #[repr(C)] 1617 #[derive(Debug, Default, Copy, Clone)] 1618 pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3 { 1619 pub msr: u32, 1620 pub pad2: u32, 1621 pub control: u64, 1622 pub status: u64, 1623 pub send_page: u64, 1624 pub recv_page: u64, 1625 pub pending_page: u64, 1626 } 1627 impl Default for kvm_hyperv_exit__bindgen_ty_1 { default() -> Self1628 fn default() -> Self { 1629 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1630 unsafe { 1631 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1632 s.assume_init() 1633 } 1634 } 1635 } 1636 impl Default for kvm_hyperv_exit { default() -> Self1637 fn default() -> Self { 1638 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1639 unsafe { 1640 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1641 s.assume_init() 1642 } 1643 } 1644 } 1645 #[repr(C)] 1646 #[derive(Copy, Clone)] 1647 pub struct kvm_xen_exit { 1648 pub type_: u32, 1649 pub u: kvm_xen_exit__bindgen_ty_1, 1650 } 1651 #[repr(C)] 1652 #[derive(Copy, Clone)] 1653 pub union kvm_xen_exit__bindgen_ty_1 { 1654 pub hcall: kvm_xen_exit__bindgen_ty_1__bindgen_ty_1, 1655 } 1656 #[repr(C)] 1657 #[derive(Debug, Default, Copy, Clone)] 1658 pub struct kvm_xen_exit__bindgen_ty_1__bindgen_ty_1 { 1659 pub longmode: u32, 1660 pub cpl: u32, 1661 pub input: u64, 1662 pub result: u64, 1663 pub params: [u64; 6usize], 1664 } 1665 impl Default for kvm_xen_exit__bindgen_ty_1 { default() -> Self1666 fn default() -> Self { 1667 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1668 unsafe { 1669 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1670 s.assume_init() 1671 } 1672 } 1673 } 1674 impl Default for kvm_xen_exit { default() -> Self1675 fn default() -> Self { 1676 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1677 unsafe { 1678 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1679 s.assume_init() 1680 } 1681 } 1682 } 1683 #[repr(C)] 1684 #[derive(Copy, Clone)] 1685 pub struct kvm_run { 1686 pub request_interrupt_window: u8, 1687 pub immediate_exit: u8, 1688 pub padding1: [u8; 6usize], 1689 pub exit_reason: u32, 1690 pub ready_for_interrupt_injection: u8, 1691 pub if_flag: u8, 1692 pub flags: u16, 1693 pub cr8: u64, 1694 pub apic_base: u64, 1695 pub __bindgen_anon_1: kvm_run__bindgen_ty_1, 1696 pub kvm_valid_regs: u64, 1697 pub kvm_dirty_regs: u64, 1698 pub s: kvm_run__bindgen_ty_2, 1699 } 1700 #[repr(C)] 1701 #[derive(Copy, Clone)] 1702 pub union kvm_run__bindgen_ty_1 { 1703 pub hw: kvm_run__bindgen_ty_1__bindgen_ty_1, 1704 pub fail_entry: kvm_run__bindgen_ty_1__bindgen_ty_2, 1705 pub ex: kvm_run__bindgen_ty_1__bindgen_ty_3, 1706 pub io: kvm_run__bindgen_ty_1__bindgen_ty_4, 1707 pub debug: kvm_run__bindgen_ty_1__bindgen_ty_5, 1708 pub mmio: kvm_run__bindgen_ty_1__bindgen_ty_6, 1709 pub hypercall: kvm_run__bindgen_ty_1__bindgen_ty_7, 1710 pub tpr_access: kvm_run__bindgen_ty_1__bindgen_ty_8, 1711 pub s390_sieic: kvm_run__bindgen_ty_1__bindgen_ty_9, 1712 pub s390_reset_flags: u64, 1713 pub s390_ucontrol: kvm_run__bindgen_ty_1__bindgen_ty_10, 1714 pub dcr: kvm_run__bindgen_ty_1__bindgen_ty_11, 1715 pub internal: kvm_run__bindgen_ty_1__bindgen_ty_12, 1716 pub emulation_failure: kvm_run__bindgen_ty_1__bindgen_ty_13, 1717 pub osi: kvm_run__bindgen_ty_1__bindgen_ty_14, 1718 pub papr_hcall: kvm_run__bindgen_ty_1__bindgen_ty_15, 1719 pub s390_tsch: kvm_run__bindgen_ty_1__bindgen_ty_16, 1720 pub epr: kvm_run__bindgen_ty_1__bindgen_ty_17, 1721 pub system_event: kvm_run__bindgen_ty_1__bindgen_ty_18, 1722 pub s390_stsi: kvm_run__bindgen_ty_1__bindgen_ty_19, 1723 pub eoi: kvm_run__bindgen_ty_1__bindgen_ty_20, 1724 pub hyperv: kvm_hyperv_exit, 1725 pub arm_nisv: kvm_run__bindgen_ty_1__bindgen_ty_21, 1726 pub msr: kvm_run__bindgen_ty_1__bindgen_ty_22, 1727 pub xen: kvm_xen_exit, 1728 pub riscv_sbi: kvm_run__bindgen_ty_1__bindgen_ty_23, 1729 pub riscv_csr: kvm_run__bindgen_ty_1__bindgen_ty_24, 1730 pub notify: kvm_run__bindgen_ty_1__bindgen_ty_25, 1731 pub padding: [::std::os::raw::c_char; 256usize], 1732 } 1733 #[repr(C)] 1734 #[derive(Debug, Default, Copy, Clone)] 1735 pub struct kvm_run__bindgen_ty_1__bindgen_ty_1 { 1736 pub hardware_exit_reason: u64, 1737 } 1738 #[repr(C)] 1739 #[derive(Debug, Default, Copy, Clone)] 1740 pub struct kvm_run__bindgen_ty_1__bindgen_ty_2 { 1741 pub hardware_entry_failure_reason: u64, 1742 pub cpu: u32, 1743 } 1744 #[repr(C)] 1745 #[derive(Debug, Default, Copy, Clone)] 1746 pub struct kvm_run__bindgen_ty_1__bindgen_ty_3 { 1747 pub exception: u32, 1748 pub error_code: u32, 1749 } 1750 #[repr(C)] 1751 #[derive(Debug, Default, Copy, Clone)] 1752 pub struct kvm_run__bindgen_ty_1__bindgen_ty_4 { 1753 pub direction: u8, 1754 pub size: u8, 1755 pub port: u16, 1756 pub count: u32, 1757 pub data_offset: u64, 1758 } 1759 #[repr(C)] 1760 #[derive(Debug, Default, Copy, Clone)] 1761 pub struct kvm_run__bindgen_ty_1__bindgen_ty_5 { 1762 pub arch: kvm_debug_exit_arch, 1763 } 1764 #[repr(C)] 1765 #[derive(Debug, Default, Copy, Clone)] 1766 pub struct kvm_run__bindgen_ty_1__bindgen_ty_6 { 1767 pub phys_addr: u64, 1768 pub data: [u8; 8usize], 1769 pub len: u32, 1770 pub is_write: u8, 1771 } 1772 #[repr(C)] 1773 #[derive(Debug, Default, Copy, Clone)] 1774 pub struct kvm_run__bindgen_ty_1__bindgen_ty_7 { 1775 pub nr: u64, 1776 pub args: [u64; 6usize], 1777 pub ret: u64, 1778 pub longmode: u32, 1779 pub pad: u32, 1780 } 1781 #[repr(C)] 1782 #[derive(Debug, Default, Copy, Clone)] 1783 pub struct kvm_run__bindgen_ty_1__bindgen_ty_8 { 1784 pub rip: u64, 1785 pub is_write: u32, 1786 pub pad: u32, 1787 } 1788 #[repr(C)] 1789 #[derive(Debug, Default, Copy, Clone)] 1790 pub struct kvm_run__bindgen_ty_1__bindgen_ty_9 { 1791 pub icptcode: u8, 1792 pub ipa: u16, 1793 pub ipb: u32, 1794 } 1795 #[repr(C)] 1796 #[derive(Debug, Default, Copy, Clone)] 1797 pub struct kvm_run__bindgen_ty_1__bindgen_ty_10 { 1798 pub trans_exc_code: u64, 1799 pub pgm_code: u32, 1800 } 1801 #[repr(C)] 1802 #[derive(Debug, Default, Copy, Clone)] 1803 pub struct kvm_run__bindgen_ty_1__bindgen_ty_11 { 1804 pub dcrn: u32, 1805 pub data: u32, 1806 pub is_write: u8, 1807 } 1808 #[repr(C)] 1809 #[derive(Debug, Default, Copy, Clone)] 1810 pub struct kvm_run__bindgen_ty_1__bindgen_ty_12 { 1811 pub suberror: u32, 1812 pub ndata: u32, 1813 pub data: [u64; 16usize], 1814 } 1815 #[repr(C)] 1816 #[derive(Copy, Clone)] 1817 pub struct kvm_run__bindgen_ty_1__bindgen_ty_13 { 1818 pub suberror: u32, 1819 pub ndata: u32, 1820 pub flags: u64, 1821 pub __bindgen_anon_1: kvm_run__bindgen_ty_1__bindgen_ty_13__bindgen_ty_1, 1822 } 1823 #[repr(C)] 1824 #[derive(Copy, Clone)] 1825 pub union kvm_run__bindgen_ty_1__bindgen_ty_13__bindgen_ty_1 { 1826 pub __bindgen_anon_1: kvm_run__bindgen_ty_1__bindgen_ty_13__bindgen_ty_1__bindgen_ty_1, 1827 } 1828 #[repr(C)] 1829 #[derive(Debug, Default, Copy, Clone)] 1830 pub struct kvm_run__bindgen_ty_1__bindgen_ty_13__bindgen_ty_1__bindgen_ty_1 { 1831 pub insn_size: u8, 1832 pub insn_bytes: [u8; 15usize], 1833 } 1834 impl Default for kvm_run__bindgen_ty_1__bindgen_ty_13__bindgen_ty_1 { default() -> Self1835 fn default() -> Self { 1836 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1837 unsafe { 1838 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1839 s.assume_init() 1840 } 1841 } 1842 } 1843 impl Default for kvm_run__bindgen_ty_1__bindgen_ty_13 { 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, Default, Copy, Clone)] 1854 pub struct kvm_run__bindgen_ty_1__bindgen_ty_14 { 1855 pub gprs: [u64; 32usize], 1856 } 1857 #[repr(C)] 1858 #[derive(Debug, Default, Copy, Clone)] 1859 pub struct kvm_run__bindgen_ty_1__bindgen_ty_15 { 1860 pub nr: u64, 1861 pub ret: u64, 1862 pub args: [u64; 9usize], 1863 } 1864 #[repr(C)] 1865 #[derive(Debug, Default, Copy, Clone)] 1866 pub struct kvm_run__bindgen_ty_1__bindgen_ty_16 { 1867 pub subchannel_id: u16, 1868 pub subchannel_nr: u16, 1869 pub io_int_parm: u32, 1870 pub io_int_word: u32, 1871 pub ipb: u32, 1872 pub dequeued: u8, 1873 } 1874 #[repr(C)] 1875 #[derive(Debug, Default, Copy, Clone)] 1876 pub struct kvm_run__bindgen_ty_1__bindgen_ty_17 { 1877 pub epr: u32, 1878 } 1879 #[repr(C)] 1880 #[derive(Copy, Clone)] 1881 pub struct kvm_run__bindgen_ty_1__bindgen_ty_18 { 1882 pub type_: u32, 1883 pub ndata: u32, 1884 pub __bindgen_anon_1: kvm_run__bindgen_ty_1__bindgen_ty_18__bindgen_ty_1, 1885 } 1886 #[repr(C)] 1887 #[derive(Copy, Clone)] 1888 pub union kvm_run__bindgen_ty_1__bindgen_ty_18__bindgen_ty_1 { 1889 pub flags: u64, 1890 pub data: [u64; 16usize], 1891 } 1892 impl Default for kvm_run__bindgen_ty_1__bindgen_ty_18__bindgen_ty_1 { default() -> Self1893 fn default() -> Self { 1894 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1895 unsafe { 1896 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1897 s.assume_init() 1898 } 1899 } 1900 } 1901 impl Default for kvm_run__bindgen_ty_1__bindgen_ty_18 { default() -> Self1902 fn default() -> Self { 1903 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1904 unsafe { 1905 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1906 s.assume_init() 1907 } 1908 } 1909 } 1910 #[repr(C)] 1911 #[derive(Debug, Default, Copy, Clone)] 1912 pub struct kvm_run__bindgen_ty_1__bindgen_ty_19 { 1913 pub addr: u64, 1914 pub ar: u8, 1915 pub reserved: u8, 1916 pub fc: u8, 1917 pub sel1: u8, 1918 pub sel2: u16, 1919 } 1920 #[repr(C)] 1921 #[derive(Debug, Default, Copy, Clone)] 1922 pub struct kvm_run__bindgen_ty_1__bindgen_ty_20 { 1923 pub vector: u8, 1924 } 1925 #[repr(C)] 1926 #[derive(Debug, Default, Copy, Clone)] 1927 pub struct kvm_run__bindgen_ty_1__bindgen_ty_21 { 1928 pub esr_iss: u64, 1929 pub fault_ipa: u64, 1930 } 1931 #[repr(C)] 1932 #[derive(Debug, Default, Copy, Clone)] 1933 pub struct kvm_run__bindgen_ty_1__bindgen_ty_22 { 1934 pub error: u8, 1935 pub pad: [u8; 7usize], 1936 pub reason: u32, 1937 pub index: u32, 1938 pub data: u64, 1939 } 1940 #[repr(C)] 1941 #[derive(Debug, Default, Copy, Clone)] 1942 pub struct kvm_run__bindgen_ty_1__bindgen_ty_23 { 1943 pub extension_id: ::std::os::raw::c_ulong, 1944 pub function_id: ::std::os::raw::c_ulong, 1945 pub args: [::std::os::raw::c_ulong; 6usize], 1946 pub ret: [::std::os::raw::c_ulong; 2usize], 1947 } 1948 #[repr(C)] 1949 #[derive(Debug, Default, Copy, Clone)] 1950 pub struct kvm_run__bindgen_ty_1__bindgen_ty_24 { 1951 pub csr_num: ::std::os::raw::c_ulong, 1952 pub new_value: ::std::os::raw::c_ulong, 1953 pub write_mask: ::std::os::raw::c_ulong, 1954 pub ret_value: ::std::os::raw::c_ulong, 1955 } 1956 #[repr(C)] 1957 #[derive(Debug, Default, Copy, Clone)] 1958 pub struct kvm_run__bindgen_ty_1__bindgen_ty_25 { 1959 pub flags: u32, 1960 } 1961 impl Default for kvm_run__bindgen_ty_1 { default() -> Self1962 fn default() -> Self { 1963 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1964 unsafe { 1965 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1966 s.assume_init() 1967 } 1968 } 1969 } 1970 #[repr(C)] 1971 #[derive(Copy, Clone)] 1972 pub union kvm_run__bindgen_ty_2 { 1973 pub regs: kvm_sync_regs, 1974 pub padding: [::std::os::raw::c_char; 2048usize], 1975 } 1976 impl Default for kvm_run__bindgen_ty_2 { 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_run { 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 #[derive(Copy, Clone)] 1996 pub struct kvm_coalesced_mmio_zone { 1997 pub addr: u64, 1998 pub size: u32, 1999 pub __bindgen_anon_1: kvm_coalesced_mmio_zone__bindgen_ty_1, 2000 } 2001 #[repr(C)] 2002 #[derive(Copy, Clone)] 2003 pub union kvm_coalesced_mmio_zone__bindgen_ty_1 { 2004 pub pad: u32, 2005 pub pio: u32, 2006 } 2007 impl Default for kvm_coalesced_mmio_zone__bindgen_ty_1 { default() -> Self2008 fn default() -> Self { 2009 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2010 unsafe { 2011 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2012 s.assume_init() 2013 } 2014 } 2015 } 2016 impl Default for kvm_coalesced_mmio_zone { default() -> Self2017 fn default() -> Self { 2018 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2019 unsafe { 2020 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2021 s.assume_init() 2022 } 2023 } 2024 } 2025 #[repr(C)] 2026 #[derive(Copy, Clone)] 2027 pub struct kvm_coalesced_mmio { 2028 pub phys_addr: u64, 2029 pub len: u32, 2030 pub __bindgen_anon_1: kvm_coalesced_mmio__bindgen_ty_1, 2031 pub data: [u8; 8usize], 2032 } 2033 #[repr(C)] 2034 #[derive(Copy, Clone)] 2035 pub union kvm_coalesced_mmio__bindgen_ty_1 { 2036 pub pad: u32, 2037 pub pio: u32, 2038 } 2039 impl Default for kvm_coalesced_mmio__bindgen_ty_1 { default() -> Self2040 fn default() -> Self { 2041 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2042 unsafe { 2043 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2044 s.assume_init() 2045 } 2046 } 2047 } 2048 impl Default for kvm_coalesced_mmio { default() -> Self2049 fn default() -> Self { 2050 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2051 unsafe { 2052 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2053 s.assume_init() 2054 } 2055 } 2056 } 2057 #[repr(C)] 2058 pub struct kvm_coalesced_mmio_ring { 2059 pub first: u32, 2060 pub last: u32, 2061 pub coalesced_mmio: __IncompleteArrayField<kvm_coalesced_mmio>, 2062 } 2063 impl Default for kvm_coalesced_mmio_ring { default() -> Self2064 fn default() -> Self { 2065 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2066 unsafe { 2067 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2068 s.assume_init() 2069 } 2070 } 2071 } 2072 #[repr(C)] 2073 #[derive(Debug, Default, Copy, Clone)] 2074 pub struct kvm_translation { 2075 pub linear_address: u64, 2076 pub physical_address: u64, 2077 pub valid: u8, 2078 pub writeable: u8, 2079 pub usermode: u8, 2080 pub pad: [u8; 5usize], 2081 } 2082 #[repr(C)] 2083 #[derive(Copy, Clone)] 2084 pub struct kvm_s390_mem_op { 2085 pub gaddr: u64, 2086 pub flags: u64, 2087 pub size: u32, 2088 pub op: u32, 2089 pub buf: u64, 2090 pub __bindgen_anon_1: kvm_s390_mem_op__bindgen_ty_1, 2091 } 2092 #[repr(C)] 2093 #[derive(Copy, Clone)] 2094 pub union kvm_s390_mem_op__bindgen_ty_1 { 2095 pub __bindgen_anon_1: kvm_s390_mem_op__bindgen_ty_1__bindgen_ty_1, 2096 pub sida_offset: u32, 2097 pub reserved: [u8; 32usize], 2098 } 2099 #[repr(C)] 2100 #[derive(Debug, Default, Copy, Clone)] 2101 pub struct kvm_s390_mem_op__bindgen_ty_1__bindgen_ty_1 { 2102 pub ar: u8, 2103 pub key: u8, 2104 } 2105 impl Default for kvm_s390_mem_op__bindgen_ty_1 { default() -> Self2106 fn default() -> Self { 2107 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2108 unsafe { 2109 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2110 s.assume_init() 2111 } 2112 } 2113 } 2114 impl Default for kvm_s390_mem_op { default() -> Self2115 fn default() -> Self { 2116 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2117 unsafe { 2118 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2119 s.assume_init() 2120 } 2121 } 2122 } 2123 #[repr(C)] 2124 #[derive(Debug, Default, Copy, Clone)] 2125 pub struct kvm_interrupt { 2126 pub irq: u32, 2127 } 2128 #[repr(C)] 2129 #[derive(Copy, Clone)] 2130 pub struct kvm_dirty_log { 2131 pub slot: u32, 2132 pub padding1: u32, 2133 pub __bindgen_anon_1: kvm_dirty_log__bindgen_ty_1, 2134 } 2135 #[repr(C)] 2136 #[derive(Copy, Clone)] 2137 pub union kvm_dirty_log__bindgen_ty_1 { 2138 pub dirty_bitmap: *mut ::std::os::raw::c_void, 2139 pub padding2: u64, 2140 } 2141 impl Default for kvm_dirty_log__bindgen_ty_1 { default() -> Self2142 fn default() -> Self { 2143 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2144 unsafe { 2145 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2146 s.assume_init() 2147 } 2148 } 2149 } 2150 impl Default for kvm_dirty_log { default() -> Self2151 fn default() -> Self { 2152 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2153 unsafe { 2154 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2155 s.assume_init() 2156 } 2157 } 2158 } 2159 #[repr(C)] 2160 #[derive(Copy, Clone)] 2161 pub struct kvm_clear_dirty_log { 2162 pub slot: u32, 2163 pub num_pages: u32, 2164 pub first_page: u64, 2165 pub __bindgen_anon_1: kvm_clear_dirty_log__bindgen_ty_1, 2166 } 2167 #[repr(C)] 2168 #[derive(Copy, Clone)] 2169 pub union kvm_clear_dirty_log__bindgen_ty_1 { 2170 pub dirty_bitmap: *mut ::std::os::raw::c_void, 2171 pub padding2: u64, 2172 } 2173 impl Default for kvm_clear_dirty_log__bindgen_ty_1 { default() -> Self2174 fn default() -> Self { 2175 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2176 unsafe { 2177 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2178 s.assume_init() 2179 } 2180 } 2181 } 2182 impl Default for kvm_clear_dirty_log { default() -> Self2183 fn default() -> Self { 2184 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2185 unsafe { 2186 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2187 s.assume_init() 2188 } 2189 } 2190 } 2191 #[repr(C)] 2192 #[derive(Debug, Default)] 2193 pub struct kvm_signal_mask { 2194 pub len: u32, 2195 pub sigset: __IncompleteArrayField<u8>, 2196 } 2197 #[repr(C)] 2198 #[derive(Debug, Default, Copy, Clone)] 2199 pub struct kvm_tpr_access_ctl { 2200 pub enabled: u32, 2201 pub flags: u32, 2202 pub reserved: [u32; 8usize], 2203 } 2204 #[repr(C)] 2205 #[derive(Debug, Default, Copy, Clone)] 2206 pub struct kvm_vapic_addr { 2207 pub vapic_addr: u64, 2208 } 2209 #[repr(C)] 2210 #[derive(Debug, Default, Copy, Clone)] 2211 pub struct kvm_mp_state { 2212 pub mp_state: u32, 2213 } 2214 #[repr(C)] 2215 #[derive(Debug, Default, Copy, Clone)] 2216 pub struct kvm_s390_psw { 2217 pub mask: u64, 2218 pub addr: u64, 2219 } 2220 #[repr(C)] 2221 #[derive(Debug, Default, Copy, Clone)] 2222 pub struct kvm_s390_interrupt { 2223 pub type_: u32, 2224 pub parm: u32, 2225 pub parm64: u64, 2226 } 2227 #[repr(C)] 2228 #[derive(Debug, Default, Copy, Clone)] 2229 pub struct kvm_s390_io_info { 2230 pub subchannel_id: u16, 2231 pub subchannel_nr: u16, 2232 pub io_int_parm: u32, 2233 pub io_int_word: u32, 2234 } 2235 #[repr(C)] 2236 #[derive(Debug, Default, Copy, Clone)] 2237 pub struct kvm_s390_ext_info { 2238 pub ext_params: u32, 2239 pub pad: u32, 2240 pub ext_params2: u64, 2241 } 2242 #[repr(C)] 2243 #[derive(Debug, Default, Copy, Clone)] 2244 pub struct kvm_s390_pgm_info { 2245 pub trans_exc_code: u64, 2246 pub mon_code: u64, 2247 pub per_address: u64, 2248 pub data_exc_code: u32, 2249 pub code: u16, 2250 pub mon_class_nr: u16, 2251 pub per_code: u8, 2252 pub per_atmid: u8, 2253 pub exc_access_id: u8, 2254 pub per_access_id: u8, 2255 pub op_access_id: u8, 2256 pub flags: u8, 2257 pub pad: [u8; 2usize], 2258 } 2259 #[repr(C)] 2260 #[derive(Debug, Default, Copy, Clone)] 2261 pub struct kvm_s390_prefix_info { 2262 pub address: u32, 2263 } 2264 #[repr(C)] 2265 #[derive(Debug, Default, Copy, Clone)] 2266 pub struct kvm_s390_extcall_info { 2267 pub code: u16, 2268 } 2269 #[repr(C)] 2270 #[derive(Debug, Default, Copy, Clone)] 2271 pub struct kvm_s390_emerg_info { 2272 pub code: u16, 2273 } 2274 #[repr(C)] 2275 #[derive(Debug, Default, Copy, Clone)] 2276 pub struct kvm_s390_stop_info { 2277 pub flags: u32, 2278 } 2279 #[repr(C)] 2280 #[derive(Debug, Default, Copy, Clone)] 2281 pub struct kvm_s390_mchk_info { 2282 pub cr14: u64, 2283 pub mcic: u64, 2284 pub failing_storage_address: u64, 2285 pub ext_damage_code: u32, 2286 pub pad: u32, 2287 pub fixed_logout: [u8; 16usize], 2288 } 2289 #[repr(C)] 2290 #[derive(Copy, Clone)] 2291 pub struct kvm_s390_irq { 2292 pub type_: u64, 2293 pub u: kvm_s390_irq__bindgen_ty_1, 2294 } 2295 #[repr(C)] 2296 #[derive(Copy, Clone)] 2297 pub union kvm_s390_irq__bindgen_ty_1 { 2298 pub io: kvm_s390_io_info, 2299 pub ext: kvm_s390_ext_info, 2300 pub pgm: kvm_s390_pgm_info, 2301 pub emerg: kvm_s390_emerg_info, 2302 pub extcall: kvm_s390_extcall_info, 2303 pub prefix: kvm_s390_prefix_info, 2304 pub stop: kvm_s390_stop_info, 2305 pub mchk: kvm_s390_mchk_info, 2306 pub reserved: [::std::os::raw::c_char; 64usize], 2307 } 2308 impl Default for kvm_s390_irq__bindgen_ty_1 { default() -> Self2309 fn default() -> Self { 2310 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2311 unsafe { 2312 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2313 s.assume_init() 2314 } 2315 } 2316 } 2317 impl Default for kvm_s390_irq { default() -> Self2318 fn default() -> Self { 2319 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2320 unsafe { 2321 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2322 s.assume_init() 2323 } 2324 } 2325 } 2326 #[repr(C)] 2327 #[derive(Debug, Default, Copy, Clone)] 2328 pub struct kvm_s390_irq_state { 2329 pub buf: u64, 2330 pub flags: u32, 2331 pub len: u32, 2332 pub reserved: [u32; 4usize], 2333 } 2334 #[repr(C)] 2335 #[derive(Debug, Default, Copy, Clone)] 2336 pub struct kvm_guest_debug { 2337 pub control: u32, 2338 pub pad: u32, 2339 pub arch: kvm_guest_debug_arch, 2340 } 2341 pub const kvm_ioeventfd_flag_nr_datamatch: _bindgen_ty_1 = 0; 2342 pub const kvm_ioeventfd_flag_nr_pio: _bindgen_ty_1 = 1; 2343 pub const kvm_ioeventfd_flag_nr_deassign: _bindgen_ty_1 = 2; 2344 pub const kvm_ioeventfd_flag_nr_virtio_ccw_notify: _bindgen_ty_1 = 3; 2345 pub const kvm_ioeventfd_flag_nr_fast_mmio: _bindgen_ty_1 = 4; 2346 pub const kvm_ioeventfd_flag_nr_max: _bindgen_ty_1 = 5; 2347 pub type _bindgen_ty_1 = ::std::os::raw::c_uint; 2348 #[repr(C)] 2349 #[derive(Debug, Copy, Clone)] 2350 pub struct kvm_ioeventfd { 2351 pub datamatch: u64, 2352 pub addr: u64, 2353 pub len: u32, 2354 pub fd: i32, 2355 pub flags: u32, 2356 pub pad: [u8; 36usize], 2357 } 2358 impl Default for kvm_ioeventfd { default() -> Self2359 fn default() -> Self { 2360 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2361 unsafe { 2362 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2363 s.assume_init() 2364 } 2365 } 2366 } 2367 #[repr(C)] 2368 #[derive(Debug, Copy, Clone)] 2369 pub struct kvm_enable_cap { 2370 pub cap: u32, 2371 pub flags: u32, 2372 pub args: [u64; 4usize], 2373 pub pad: [u8; 64usize], 2374 } 2375 impl Default for kvm_enable_cap { default() -> Self2376 fn default() -> Self { 2377 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2378 unsafe { 2379 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2380 s.assume_init() 2381 } 2382 } 2383 } 2384 #[repr(C)] 2385 #[derive(Debug, Copy, Clone)] 2386 pub struct kvm_ppc_pvinfo { 2387 pub flags: u32, 2388 pub hcall: [u32; 4usize], 2389 pub pad: [u8; 108usize], 2390 } 2391 impl Default for kvm_ppc_pvinfo { default() -> Self2392 fn default() -> Self { 2393 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2394 unsafe { 2395 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2396 s.assume_init() 2397 } 2398 } 2399 } 2400 #[repr(C)] 2401 #[derive(Debug, Default, Copy, Clone)] 2402 pub struct kvm_ppc_one_page_size { 2403 pub page_shift: u32, 2404 pub pte_enc: u32, 2405 } 2406 #[repr(C)] 2407 #[derive(Debug, Default, Copy, Clone)] 2408 pub struct kvm_ppc_one_seg_page_size { 2409 pub page_shift: u32, 2410 pub slb_enc: u32, 2411 pub enc: [kvm_ppc_one_page_size; 8usize], 2412 } 2413 #[repr(C)] 2414 #[derive(Debug, Default, Copy, Clone)] 2415 pub struct kvm_ppc_smmu_info { 2416 pub flags: u64, 2417 pub slb_size: u32, 2418 pub data_keys: u16, 2419 pub instr_keys: u16, 2420 pub sps: [kvm_ppc_one_seg_page_size; 8usize], 2421 } 2422 #[repr(C)] 2423 #[derive(Debug, Default, Copy, Clone)] 2424 pub struct kvm_ppc_resize_hpt { 2425 pub flags: u64, 2426 pub shift: u32, 2427 pub pad: u32, 2428 } 2429 #[repr(C)] 2430 #[derive(Debug, Default, Copy, Clone)] 2431 pub struct kvm_irq_routing_irqchip { 2432 pub irqchip: u32, 2433 pub pin: u32, 2434 } 2435 #[repr(C)] 2436 #[derive(Copy, Clone)] 2437 pub struct kvm_irq_routing_msi { 2438 pub address_lo: u32, 2439 pub address_hi: u32, 2440 pub data: u32, 2441 pub __bindgen_anon_1: kvm_irq_routing_msi__bindgen_ty_1, 2442 } 2443 #[repr(C)] 2444 #[derive(Copy, Clone)] 2445 pub union kvm_irq_routing_msi__bindgen_ty_1 { 2446 pub pad: u32, 2447 pub devid: u32, 2448 } 2449 impl Default for kvm_irq_routing_msi__bindgen_ty_1 { default() -> Self2450 fn default() -> Self { 2451 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2452 unsafe { 2453 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2454 s.assume_init() 2455 } 2456 } 2457 } 2458 impl Default for kvm_irq_routing_msi { default() -> Self2459 fn default() -> Self { 2460 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2461 unsafe { 2462 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2463 s.assume_init() 2464 } 2465 } 2466 } 2467 #[repr(C)] 2468 #[derive(Debug, Default, Copy, Clone)] 2469 pub struct kvm_irq_routing_s390_adapter { 2470 pub ind_addr: u64, 2471 pub summary_addr: u64, 2472 pub ind_offset: u64, 2473 pub summary_offset: u32, 2474 pub adapter_id: u32, 2475 } 2476 #[repr(C)] 2477 #[derive(Debug, Default, Copy, Clone)] 2478 pub struct kvm_irq_routing_hv_sint { 2479 pub vcpu: u32, 2480 pub sint: u32, 2481 } 2482 #[repr(C)] 2483 #[derive(Debug, Default, Copy, Clone)] 2484 pub struct kvm_irq_routing_xen_evtchn { 2485 pub port: u32, 2486 pub vcpu: u32, 2487 pub priority: u32, 2488 } 2489 #[repr(C)] 2490 #[derive(Copy, Clone)] 2491 pub struct kvm_irq_routing_entry { 2492 pub gsi: u32, 2493 pub type_: u32, 2494 pub flags: u32, 2495 pub pad: u32, 2496 pub u: kvm_irq_routing_entry__bindgen_ty_1, 2497 } 2498 #[repr(C)] 2499 #[derive(Copy, Clone)] 2500 pub union kvm_irq_routing_entry__bindgen_ty_1 { 2501 pub irqchip: kvm_irq_routing_irqchip, 2502 pub msi: kvm_irq_routing_msi, 2503 pub adapter: kvm_irq_routing_s390_adapter, 2504 pub hv_sint: kvm_irq_routing_hv_sint, 2505 pub xen_evtchn: kvm_irq_routing_xen_evtchn, 2506 pub pad: [u32; 8usize], 2507 } 2508 impl Default for kvm_irq_routing_entry__bindgen_ty_1 { default() -> Self2509 fn default() -> Self { 2510 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2511 unsafe { 2512 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2513 s.assume_init() 2514 } 2515 } 2516 } 2517 impl Default for kvm_irq_routing_entry { default() -> Self2518 fn default() -> Self { 2519 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2520 unsafe { 2521 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2522 s.assume_init() 2523 } 2524 } 2525 } 2526 #[repr(C)] 2527 pub struct kvm_irq_routing { 2528 pub nr: u32, 2529 pub flags: u32, 2530 pub entries: __IncompleteArrayField<kvm_irq_routing_entry>, 2531 } 2532 impl Default for kvm_irq_routing { default() -> Self2533 fn default() -> Self { 2534 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2535 unsafe { 2536 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2537 s.assume_init() 2538 } 2539 } 2540 } 2541 #[repr(C)] 2542 #[derive(Debug, Default, Copy, Clone)] 2543 pub struct kvm_x86_mce { 2544 pub status: u64, 2545 pub addr: u64, 2546 pub misc: u64, 2547 pub mcg_status: u64, 2548 pub bank: u8, 2549 pub pad1: [u8; 7usize], 2550 pub pad2: [u64; 3usize], 2551 } 2552 #[repr(C)] 2553 #[derive(Debug, Default, Copy, Clone)] 2554 pub struct kvm_xen_hvm_config { 2555 pub flags: u32, 2556 pub msr: u32, 2557 pub blob_addr_32: u64, 2558 pub blob_addr_64: u64, 2559 pub blob_size_32: u8, 2560 pub blob_size_64: u8, 2561 pub pad2: [u8; 30usize], 2562 } 2563 #[repr(C)] 2564 #[derive(Debug, Default, Copy, Clone)] 2565 pub struct kvm_irqfd { 2566 pub fd: u32, 2567 pub gsi: u32, 2568 pub flags: u32, 2569 pub resamplefd: u32, 2570 pub pad: [u8; 16usize], 2571 } 2572 #[repr(C)] 2573 #[derive(Debug, Default, Copy, Clone)] 2574 pub struct kvm_clock_data { 2575 pub clock: u64, 2576 pub flags: u32, 2577 pub pad0: u32, 2578 pub realtime: u64, 2579 pub host_tsc: u64, 2580 pub pad: [u32; 4usize], 2581 } 2582 #[repr(C)] 2583 #[derive(Debug, Default, Copy, Clone)] 2584 pub struct kvm_config_tlb { 2585 pub params: u64, 2586 pub array: u64, 2587 pub mmu_type: u32, 2588 pub array_len: u32, 2589 } 2590 #[repr(C)] 2591 #[derive(Debug, Default, Copy, Clone)] 2592 pub struct kvm_dirty_tlb { 2593 pub bitmap: u64, 2594 pub num_dirty: u32, 2595 } 2596 #[repr(C)] 2597 #[derive(Debug, Default)] 2598 pub struct kvm_reg_list { 2599 pub n: u64, 2600 pub reg: __IncompleteArrayField<u64>, 2601 } 2602 #[repr(C)] 2603 #[derive(Debug, Default, Copy, Clone)] 2604 pub struct kvm_one_reg { 2605 pub id: u64, 2606 pub addr: u64, 2607 } 2608 #[repr(C)] 2609 #[derive(Debug, Default, Copy, Clone)] 2610 pub struct kvm_msi { 2611 pub address_lo: u32, 2612 pub address_hi: u32, 2613 pub data: u32, 2614 pub flags: u32, 2615 pub devid: u32, 2616 pub pad: [u8; 12usize], 2617 } 2618 #[repr(C)] 2619 #[derive(Debug, Default, Copy, Clone)] 2620 pub struct kvm_arm_device_addr { 2621 pub id: u64, 2622 pub addr: u64, 2623 } 2624 #[repr(C)] 2625 #[derive(Debug, Default, Copy, Clone)] 2626 pub struct kvm_create_device { 2627 pub type_: u32, 2628 pub fd: u32, 2629 pub flags: u32, 2630 } 2631 #[repr(C)] 2632 #[derive(Debug, Default, Copy, Clone)] 2633 pub struct kvm_device_attr { 2634 pub flags: u32, 2635 pub group: u32, 2636 pub attr: u64, 2637 pub addr: u64, 2638 } 2639 pub const kvm_device_type_KVM_DEV_TYPE_FSL_MPIC_20: kvm_device_type = 1; 2640 pub const kvm_device_type_KVM_DEV_TYPE_FSL_MPIC_42: kvm_device_type = 2; 2641 pub const kvm_device_type_KVM_DEV_TYPE_XICS: kvm_device_type = 3; 2642 pub const kvm_device_type_KVM_DEV_TYPE_VFIO: kvm_device_type = 4; 2643 pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_V2: kvm_device_type = 5; 2644 pub const kvm_device_type_KVM_DEV_TYPE_FLIC: kvm_device_type = 6; 2645 pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_V3: kvm_device_type = 7; 2646 pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_ITS: kvm_device_type = 8; 2647 pub const kvm_device_type_KVM_DEV_TYPE_XIVE: kvm_device_type = 9; 2648 pub const kvm_device_type_KVM_DEV_TYPE_ARM_PV_TIME: kvm_device_type = 10; 2649 pub const kvm_device_type_KVM_DEV_TYPE_MAX: kvm_device_type = 11; 2650 pub type kvm_device_type = ::std::os::raw::c_uint; 2651 #[repr(C)] 2652 #[derive(Debug, Default, Copy, Clone)] 2653 pub struct kvm_vfio_spapr_tce { 2654 pub groupfd: i32, 2655 pub tablefd: i32, 2656 } 2657 #[repr(C)] 2658 #[derive(Debug, Default, Copy, Clone)] 2659 pub struct kvm_s390_ucas_mapping { 2660 pub user_addr: u64, 2661 pub vcpu_addr: u64, 2662 pub length: u64, 2663 } 2664 #[repr(C)] 2665 #[derive(Debug, Default, Copy, Clone)] 2666 pub struct kvm_enc_region { 2667 pub addr: u64, 2668 pub size: u64, 2669 } 2670 #[repr(C)] 2671 #[derive(Debug, Default, Copy, Clone)] 2672 pub struct kvm_s390_pv_sec_parm { 2673 pub origin: u64, 2674 pub length: u64, 2675 } 2676 #[repr(C)] 2677 #[derive(Debug, Default, Copy, Clone)] 2678 pub struct kvm_s390_pv_unp { 2679 pub addr: u64, 2680 pub size: u64, 2681 pub tweak: u64, 2682 } 2683 pub const pv_cmd_dmp_id_KVM_PV_DUMP_INIT: pv_cmd_dmp_id = 0; 2684 pub const pv_cmd_dmp_id_KVM_PV_DUMP_CONFIG_STOR_STATE: pv_cmd_dmp_id = 1; 2685 pub const pv_cmd_dmp_id_KVM_PV_DUMP_COMPLETE: pv_cmd_dmp_id = 2; 2686 pub const pv_cmd_dmp_id_KVM_PV_DUMP_CPU: pv_cmd_dmp_id = 3; 2687 pub type pv_cmd_dmp_id = ::std::os::raw::c_uint; 2688 #[repr(C)] 2689 #[derive(Debug, Default, Copy, Clone)] 2690 pub struct kvm_s390_pv_dmp { 2691 pub subcmd: u64, 2692 pub buff_addr: u64, 2693 pub buff_len: u64, 2694 pub gaddr: u64, 2695 pub reserved: [u64; 4usize], 2696 } 2697 pub const pv_cmd_info_id_KVM_PV_INFO_VM: pv_cmd_info_id = 0; 2698 pub const pv_cmd_info_id_KVM_PV_INFO_DUMP: pv_cmd_info_id = 1; 2699 pub type pv_cmd_info_id = ::std::os::raw::c_uint; 2700 #[repr(C)] 2701 #[derive(Debug, Default, Copy, Clone)] 2702 pub struct kvm_s390_pv_info_dump { 2703 pub dump_cpu_buffer_len: u64, 2704 pub dump_config_mem_buffer_per_1m: u64, 2705 pub dump_config_finalize_len: u64, 2706 } 2707 #[repr(C)] 2708 #[derive(Debug, Default, Copy, Clone)] 2709 pub struct kvm_s390_pv_info_vm { 2710 pub inst_calls_list: [u64; 4usize], 2711 pub max_cpus: u64, 2712 pub max_guests: u64, 2713 pub max_guest_addr: u64, 2714 pub feature_indication: u64, 2715 } 2716 #[repr(C)] 2717 #[derive(Debug, Default, Copy, Clone)] 2718 pub struct kvm_s390_pv_info_header { 2719 pub id: u32, 2720 pub len_max: u32, 2721 pub len_written: u32, 2722 pub reserved: u32, 2723 } 2724 #[repr(C)] 2725 #[derive(Copy, Clone)] 2726 pub struct kvm_s390_pv_info { 2727 pub header: kvm_s390_pv_info_header, 2728 pub __bindgen_anon_1: kvm_s390_pv_info__bindgen_ty_1, 2729 } 2730 #[repr(C)] 2731 #[derive(Copy, Clone)] 2732 pub union kvm_s390_pv_info__bindgen_ty_1 { 2733 pub dump: kvm_s390_pv_info_dump, 2734 pub vm: kvm_s390_pv_info_vm, 2735 } 2736 impl Default for kvm_s390_pv_info__bindgen_ty_1 { default() -> Self2737 fn default() -> Self { 2738 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2739 unsafe { 2740 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2741 s.assume_init() 2742 } 2743 } 2744 } 2745 impl Default for kvm_s390_pv_info { default() -> Self2746 fn default() -> Self { 2747 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2748 unsafe { 2749 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2750 s.assume_init() 2751 } 2752 } 2753 } 2754 pub const pv_cmd_id_KVM_PV_ENABLE: pv_cmd_id = 0; 2755 pub const pv_cmd_id_KVM_PV_DISABLE: pv_cmd_id = 1; 2756 pub const pv_cmd_id_KVM_PV_SET_SEC_PARMS: pv_cmd_id = 2; 2757 pub const pv_cmd_id_KVM_PV_UNPACK: pv_cmd_id = 3; 2758 pub const pv_cmd_id_KVM_PV_VERIFY: pv_cmd_id = 4; 2759 pub const pv_cmd_id_KVM_PV_PREP_RESET: pv_cmd_id = 5; 2760 pub const pv_cmd_id_KVM_PV_UNSHARE_ALL: pv_cmd_id = 6; 2761 pub const pv_cmd_id_KVM_PV_INFO: pv_cmd_id = 7; 2762 pub const pv_cmd_id_KVM_PV_DUMP: pv_cmd_id = 8; 2763 pub type pv_cmd_id = ::std::os::raw::c_uint; 2764 #[repr(C)] 2765 #[derive(Debug, Default, Copy, Clone)] 2766 pub struct kvm_pv_cmd { 2767 pub cmd: u32, 2768 pub rc: u16, 2769 pub rrc: u16, 2770 pub data: u64, 2771 pub flags: u32, 2772 pub reserved: [u32; 3usize], 2773 } 2774 #[repr(C)] 2775 #[derive(Copy, Clone)] 2776 pub struct kvm_xen_hvm_attr { 2777 pub type_: u16, 2778 pub pad: [u16; 3usize], 2779 pub u: kvm_xen_hvm_attr__bindgen_ty_1, 2780 } 2781 #[repr(C)] 2782 #[derive(Copy, Clone)] 2783 pub union kvm_xen_hvm_attr__bindgen_ty_1 { 2784 pub long_mode: u8, 2785 pub vector: u8, 2786 pub shared_info: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_1, 2787 pub evtchn: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2, 2788 pub xen_version: u32, 2789 pub pad: [u64; 8usize], 2790 } 2791 #[repr(C)] 2792 #[derive(Debug, Default, Copy, Clone)] 2793 pub struct kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_1 { 2794 pub gfn: u64, 2795 } 2796 #[repr(C)] 2797 #[derive(Copy, Clone)] 2798 pub struct kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2 { 2799 pub send_port: u32, 2800 pub type_: u32, 2801 pub flags: u32, 2802 pub deliver: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1, 2803 } 2804 #[repr(C)] 2805 #[derive(Copy, Clone)] 2806 pub union kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 { 2807 pub port: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1, 2808 pub eventfd: kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_2, 2809 pub padding: [u32; 4usize], 2810 } 2811 #[repr(C)] 2812 #[derive(Debug, Default, Copy, Clone)] 2813 pub struct kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1 { 2814 pub port: u32, 2815 pub vcpu: u32, 2816 pub priority: u32, 2817 } 2818 #[repr(C)] 2819 #[derive(Debug, Default, Copy, Clone)] 2820 pub struct kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_2 { 2821 pub port: u32, 2822 pub fd: i32, 2823 } 2824 impl Default for kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 { default() -> Self2825 fn default() -> Self { 2826 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2827 unsafe { 2828 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2829 s.assume_init() 2830 } 2831 } 2832 } 2833 impl Default for kvm_xen_hvm_attr__bindgen_ty_1__bindgen_ty_2 { default() -> Self2834 fn default() -> Self { 2835 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2836 unsafe { 2837 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2838 s.assume_init() 2839 } 2840 } 2841 } 2842 impl Default for kvm_xen_hvm_attr__bindgen_ty_1 { default() -> Self2843 fn default() -> Self { 2844 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2845 unsafe { 2846 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2847 s.assume_init() 2848 } 2849 } 2850 } 2851 impl Default for kvm_xen_hvm_attr { default() -> Self2852 fn default() -> Self { 2853 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2854 unsafe { 2855 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2856 s.assume_init() 2857 } 2858 } 2859 } 2860 #[repr(C)] 2861 #[derive(Copy, Clone)] 2862 pub struct kvm_xen_vcpu_attr { 2863 pub type_: u16, 2864 pub pad: [u16; 3usize], 2865 pub u: kvm_xen_vcpu_attr__bindgen_ty_1, 2866 } 2867 #[repr(C)] 2868 #[derive(Copy, Clone)] 2869 pub union kvm_xen_vcpu_attr__bindgen_ty_1 { 2870 pub gpa: u64, 2871 pub pad: [u64; 8usize], 2872 pub runstate: kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_1, 2873 pub vcpu_id: u32, 2874 pub timer: kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_2, 2875 pub vector: u8, 2876 } 2877 #[repr(C)] 2878 #[derive(Debug, Default, Copy, Clone)] 2879 pub struct kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_1 { 2880 pub state: u64, 2881 pub state_entry_time: u64, 2882 pub time_running: u64, 2883 pub time_runnable: u64, 2884 pub time_blocked: u64, 2885 pub time_offline: u64, 2886 } 2887 #[repr(C)] 2888 #[derive(Debug, Default, Copy, Clone)] 2889 pub struct kvm_xen_vcpu_attr__bindgen_ty_1__bindgen_ty_2 { 2890 pub port: u32, 2891 pub priority: u32, 2892 pub expires_ns: u64, 2893 } 2894 impl Default for kvm_xen_vcpu_attr__bindgen_ty_1 { default() -> Self2895 fn default() -> Self { 2896 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2897 unsafe { 2898 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2899 s.assume_init() 2900 } 2901 } 2902 } 2903 impl Default for kvm_xen_vcpu_attr { default() -> Self2904 fn default() -> Self { 2905 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2906 unsafe { 2907 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2908 s.assume_init() 2909 } 2910 } 2911 } 2912 pub const sev_cmd_id_KVM_SEV_INIT: sev_cmd_id = 0; 2913 pub const sev_cmd_id_KVM_SEV_ES_INIT: sev_cmd_id = 1; 2914 pub const sev_cmd_id_KVM_SEV_LAUNCH_START: sev_cmd_id = 2; 2915 pub const sev_cmd_id_KVM_SEV_LAUNCH_UPDATE_DATA: sev_cmd_id = 3; 2916 pub const sev_cmd_id_KVM_SEV_LAUNCH_UPDATE_VMSA: sev_cmd_id = 4; 2917 pub const sev_cmd_id_KVM_SEV_LAUNCH_SECRET: sev_cmd_id = 5; 2918 pub const sev_cmd_id_KVM_SEV_LAUNCH_MEASURE: sev_cmd_id = 6; 2919 pub const sev_cmd_id_KVM_SEV_LAUNCH_FINISH: sev_cmd_id = 7; 2920 pub const sev_cmd_id_KVM_SEV_SEND_START: sev_cmd_id = 8; 2921 pub const sev_cmd_id_KVM_SEV_SEND_UPDATE_DATA: sev_cmd_id = 9; 2922 pub const sev_cmd_id_KVM_SEV_SEND_UPDATE_VMSA: sev_cmd_id = 10; 2923 pub const sev_cmd_id_KVM_SEV_SEND_FINISH: sev_cmd_id = 11; 2924 pub const sev_cmd_id_KVM_SEV_RECEIVE_START: sev_cmd_id = 12; 2925 pub const sev_cmd_id_KVM_SEV_RECEIVE_UPDATE_DATA: sev_cmd_id = 13; 2926 pub const sev_cmd_id_KVM_SEV_RECEIVE_UPDATE_VMSA: sev_cmd_id = 14; 2927 pub const sev_cmd_id_KVM_SEV_RECEIVE_FINISH: sev_cmd_id = 15; 2928 pub const sev_cmd_id_KVM_SEV_GUEST_STATUS: sev_cmd_id = 16; 2929 pub const sev_cmd_id_KVM_SEV_DBG_DECRYPT: sev_cmd_id = 17; 2930 pub const sev_cmd_id_KVM_SEV_DBG_ENCRYPT: sev_cmd_id = 18; 2931 pub const sev_cmd_id_KVM_SEV_CERT_EXPORT: sev_cmd_id = 19; 2932 pub const sev_cmd_id_KVM_SEV_GET_ATTESTATION_REPORT: sev_cmd_id = 20; 2933 pub const sev_cmd_id_KVM_SEV_SEND_CANCEL: sev_cmd_id = 21; 2934 pub const sev_cmd_id_KVM_SEV_NR_MAX: sev_cmd_id = 22; 2935 pub type sev_cmd_id = ::std::os::raw::c_uint; 2936 #[repr(C)] 2937 #[derive(Debug, Default, Copy, Clone)] 2938 pub struct kvm_sev_cmd { 2939 pub id: u32, 2940 pub data: u64, 2941 pub error: u32, 2942 pub sev_fd: u32, 2943 } 2944 #[repr(C)] 2945 #[derive(Debug, Default, Copy, Clone)] 2946 pub struct kvm_sev_launch_start { 2947 pub handle: u32, 2948 pub policy: u32, 2949 pub dh_uaddr: u64, 2950 pub dh_len: u32, 2951 pub session_uaddr: u64, 2952 pub session_len: u32, 2953 } 2954 #[repr(C)] 2955 #[derive(Debug, Default, Copy, Clone)] 2956 pub struct kvm_sev_launch_update_data { 2957 pub uaddr: u64, 2958 pub len: u32, 2959 } 2960 #[repr(C)] 2961 #[derive(Debug, Default, Copy, Clone)] 2962 pub struct kvm_sev_launch_secret { 2963 pub hdr_uaddr: u64, 2964 pub hdr_len: u32, 2965 pub guest_uaddr: u64, 2966 pub guest_len: u32, 2967 pub trans_uaddr: u64, 2968 pub trans_len: u32, 2969 } 2970 #[repr(C)] 2971 #[derive(Debug, Default, Copy, Clone)] 2972 pub struct kvm_sev_launch_measure { 2973 pub uaddr: u64, 2974 pub len: u32, 2975 } 2976 #[repr(C)] 2977 #[derive(Debug, Default, Copy, Clone)] 2978 pub struct kvm_sev_guest_status { 2979 pub handle: u32, 2980 pub policy: u32, 2981 pub state: u32, 2982 } 2983 #[repr(C)] 2984 #[derive(Debug, Default, Copy, Clone)] 2985 pub struct kvm_sev_dbg { 2986 pub src_uaddr: u64, 2987 pub dst_uaddr: u64, 2988 pub len: u32, 2989 } 2990 #[repr(C)] 2991 #[derive(Debug, Default, Copy, Clone)] 2992 pub struct kvm_sev_attestation_report { 2993 pub mnonce: [u8; 16usize], 2994 pub uaddr: u64, 2995 pub len: u32, 2996 } 2997 #[repr(C)] 2998 #[derive(Debug, Default, Copy, Clone)] 2999 pub struct kvm_sev_send_start { 3000 pub policy: u32, 3001 pub pdh_cert_uaddr: u64, 3002 pub pdh_cert_len: u32, 3003 pub plat_certs_uaddr: u64, 3004 pub plat_certs_len: u32, 3005 pub amd_certs_uaddr: u64, 3006 pub amd_certs_len: u32, 3007 pub session_uaddr: u64, 3008 pub session_len: u32, 3009 } 3010 #[repr(C)] 3011 #[derive(Debug, Default, Copy, Clone)] 3012 pub struct kvm_sev_send_update_data { 3013 pub hdr_uaddr: u64, 3014 pub hdr_len: u32, 3015 pub guest_uaddr: u64, 3016 pub guest_len: u32, 3017 pub trans_uaddr: u64, 3018 pub trans_len: u32, 3019 } 3020 #[repr(C)] 3021 #[derive(Debug, Default, Copy, Clone)] 3022 pub struct kvm_sev_receive_start { 3023 pub handle: u32, 3024 pub policy: u32, 3025 pub pdh_uaddr: u64, 3026 pub pdh_len: u32, 3027 pub session_uaddr: u64, 3028 pub session_len: u32, 3029 } 3030 #[repr(C)] 3031 #[derive(Debug, Default, Copy, Clone)] 3032 pub struct kvm_sev_receive_update_data { 3033 pub hdr_uaddr: u64, 3034 pub hdr_len: u32, 3035 pub guest_uaddr: u64, 3036 pub guest_len: u32, 3037 pub trans_uaddr: u64, 3038 pub trans_len: u32, 3039 } 3040 #[repr(C)] 3041 #[derive(Copy, Clone)] 3042 pub struct kvm_assigned_pci_dev { 3043 pub assigned_dev_id: u32, 3044 pub busnr: u32, 3045 pub devfn: u32, 3046 pub flags: u32, 3047 pub segnr: u32, 3048 pub __bindgen_anon_1: kvm_assigned_pci_dev__bindgen_ty_1, 3049 } 3050 #[repr(C)] 3051 #[derive(Copy, Clone)] 3052 pub union kvm_assigned_pci_dev__bindgen_ty_1 { 3053 pub reserved: [u32; 11usize], 3054 } 3055 impl Default for kvm_assigned_pci_dev__bindgen_ty_1 { default() -> Self3056 fn default() -> Self { 3057 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 3058 unsafe { 3059 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 3060 s.assume_init() 3061 } 3062 } 3063 } 3064 impl Default for kvm_assigned_pci_dev { default() -> Self3065 fn default() -> Self { 3066 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 3067 unsafe { 3068 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 3069 s.assume_init() 3070 } 3071 } 3072 } 3073 #[repr(C)] 3074 #[derive(Copy, Clone)] 3075 pub struct kvm_assigned_irq { 3076 pub assigned_dev_id: u32, 3077 pub host_irq: u32, 3078 pub guest_irq: u32, 3079 pub flags: u32, 3080 pub __bindgen_anon_1: kvm_assigned_irq__bindgen_ty_1, 3081 } 3082 #[repr(C)] 3083 #[derive(Copy, Clone)] 3084 pub union kvm_assigned_irq__bindgen_ty_1 { 3085 pub reserved: [u32; 12usize], 3086 } 3087 impl Default for kvm_assigned_irq__bindgen_ty_1 { default() -> Self3088 fn default() -> Self { 3089 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 3090 unsafe { 3091 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 3092 s.assume_init() 3093 } 3094 } 3095 } 3096 impl Default for kvm_assigned_irq { default() -> Self3097 fn default() -> Self { 3098 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 3099 unsafe { 3100 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 3101 s.assume_init() 3102 } 3103 } 3104 } 3105 #[repr(C)] 3106 #[derive(Debug, Default, Copy, Clone)] 3107 pub struct kvm_assigned_msix_nr { 3108 pub assigned_dev_id: u32, 3109 pub entry_nr: u16, 3110 pub padding: u16, 3111 } 3112 #[repr(C)] 3113 #[derive(Debug, Default, Copy, Clone)] 3114 pub struct kvm_assigned_msix_entry { 3115 pub assigned_dev_id: u32, 3116 pub gsi: u32, 3117 pub entry: u16, 3118 pub padding: [u16; 3usize], 3119 } 3120 #[repr(C)] 3121 #[derive(Debug, Default, Copy, Clone)] 3122 pub struct kvm_hyperv_eventfd { 3123 pub conn_id: u32, 3124 pub fd: i32, 3125 pub flags: u32, 3126 pub padding: [u32; 3usize], 3127 } 3128 #[repr(C)] 3129 #[derive(Debug, Default, Copy, Clone)] 3130 pub struct kvm_dirty_gfn { 3131 pub flags: u32, 3132 pub slot: u32, 3133 pub offset: u64, 3134 } 3135 #[repr(C)] 3136 #[derive(Debug, Default, Copy, Clone)] 3137 pub struct kvm_stats_header { 3138 pub flags: u32, 3139 pub name_size: u32, 3140 pub num_desc: u32, 3141 pub id_offset: u32, 3142 pub desc_offset: u32, 3143 pub data_offset: u32, 3144 } 3145 #[repr(C)] 3146 #[derive(Debug, Default)] 3147 pub struct kvm_stats_desc { 3148 pub flags: u32, 3149 pub exponent: i16, 3150 pub size: u16, 3151 pub offset: u32, 3152 pub bucket_size: u32, 3153 pub name: __IncompleteArrayField<::std::os::raw::c_char>, 3154 } 3155 #[repr(C)] 3156 #[derive(Copy, Clone)] 3157 pub struct kvm_s390_zpci_op { 3158 pub fh: u32, 3159 pub op: u8, 3160 pub pad: [u8; 3usize], 3161 pub u: kvm_s390_zpci_op__bindgen_ty_1, 3162 } 3163 #[repr(C)] 3164 #[derive(Copy, Clone)] 3165 pub union kvm_s390_zpci_op__bindgen_ty_1 { 3166 pub reg_aen: kvm_s390_zpci_op__bindgen_ty_1__bindgen_ty_1, 3167 pub reserved: [u64; 8usize], 3168 } 3169 #[repr(C)] 3170 #[derive(Debug, Default, Copy, Clone)] 3171 pub struct kvm_s390_zpci_op__bindgen_ty_1__bindgen_ty_1 { 3172 pub ibv: u64, 3173 pub sb: u64, 3174 pub flags: u32, 3175 pub noi: u32, 3176 pub isc: u8, 3177 pub sbo: u8, 3178 pub pad: u16, 3179 } 3180 impl Default for kvm_s390_zpci_op__bindgen_ty_1 { default() -> Self3181 fn default() -> Self { 3182 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 3183 unsafe { 3184 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 3185 s.assume_init() 3186 } 3187 } 3188 } 3189 impl Default for kvm_s390_zpci_op { default() -> Self3190 fn default() -> Self { 3191 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 3192 unsafe { 3193 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 3194 s.assume_init() 3195 } 3196 } 3197 } 3198