1 /* automatically generated by tools/bindgen-all-the-things */ 2 3 #![allow(non_upper_case_globals)] 4 #![allow(non_camel_case_types)] 5 #![allow(non_snake_case)] 6 #![allow(dead_code)] 7 8 // Added by kvm_sys/bindgen.sh 9 pub const KVM_SYSTEM_EVENT_S2IDLE: u32 = 4; 10 pub const KVM_SYSTEM_EVENT_RESET_FLAG_PSCI_RESET2: u64 = 0x1; 11 // TODO(tjeznach): Remove this when reporting KVM_IOAPIC_NUM_PINS is no longer required. 12 pub const KVM_CAP_IOAPIC_NUM_PINS: u32 = 8191; 13 // TODO(qwandor): Update this once the pKVM patches are merged upstream with a stable capability ID. 14 pub const KVM_CAP_ARM_PROTECTED_VM: u32 = 0xffbadab1; 15 pub const KVM_CAP_ARM_PROTECTED_VM_FLAGS_SET_FW_IPA: u32 = 0; 16 pub const KVM_CAP_ARM_PROTECTED_VM_FLAGS_INFO: u32 = 1; 17 pub const KVM_VM_TYPE_ARM_PROTECTED: u32 = 0x80000000; 18 19 #[repr(C)] 20 #[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)] 21 pub struct __BindgenBitfieldUnit<Storage> { 22 storage: Storage, 23 } 24 impl<Storage> __BindgenBitfieldUnit<Storage> { 25 #[inline] new(storage: Storage) -> Self26 pub const fn new(storage: Storage) -> Self { 27 Self { storage } 28 } 29 } 30 impl<Storage> __BindgenBitfieldUnit<Storage> 31 where 32 Storage: AsRef<[u8]> + AsMut<[u8]>, 33 { 34 #[inline] get_bit(&self, index: usize) -> bool35 pub fn get_bit(&self, index: usize) -> bool { 36 debug_assert!(index / 8 < self.storage.as_ref().len()); 37 let byte_index = index / 8; 38 let byte = self.storage.as_ref()[byte_index]; 39 let bit_index = if cfg!(target_endian = "big") { 40 7 - (index % 8) 41 } else { 42 index % 8 43 }; 44 let mask = 1 << bit_index; 45 byte & mask == mask 46 } 47 #[inline] set_bit(&mut self, index: usize, val: bool)48 pub fn set_bit(&mut self, index: usize, val: bool) { 49 debug_assert!(index / 8 < self.storage.as_ref().len()); 50 let byte_index = index / 8; 51 let byte = &mut self.storage.as_mut()[byte_index]; 52 let bit_index = if cfg!(target_endian = "big") { 53 7 - (index % 8) 54 } else { 55 index % 8 56 }; 57 let mask = 1 << bit_index; 58 if val { 59 *byte |= mask; 60 } else { 61 *byte &= !mask; 62 } 63 } 64 #[inline] get(&self, bit_offset: usize, bit_width: u8) -> u6465 pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 { 66 debug_assert!(bit_width <= 64); 67 debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); 68 debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); 69 let mut val = 0; 70 for i in 0..(bit_width as usize) { 71 if self.get_bit(i + bit_offset) { 72 let index = if cfg!(target_endian = "big") { 73 bit_width as usize - 1 - i 74 } else { 75 i 76 }; 77 val |= 1 << index; 78 } 79 } 80 val 81 } 82 #[inline] set(&mut self, bit_offset: usize, bit_width: u8, val: u64)83 pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) { 84 debug_assert!(bit_width <= 64); 85 debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); 86 debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); 87 for i in 0..(bit_width as usize) { 88 let mask = 1 << i; 89 let val_bit_is_set = val & mask == mask; 90 let index = if cfg!(target_endian = "big") { 91 bit_width as usize - 1 - i 92 } else { 93 i 94 }; 95 self.set_bit(index + bit_offset, val_bit_is_set); 96 } 97 } 98 } 99 #[repr(C)] 100 #[derive(Default)] 101 pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]); 102 impl<T> __IncompleteArrayField<T> { 103 #[inline] new() -> Self104 pub const fn new() -> Self { 105 __IncompleteArrayField(::std::marker::PhantomData, []) 106 } 107 #[inline] as_ptr(&self) -> *const T108 pub fn as_ptr(&self) -> *const T { 109 self as *const _ as *const T 110 } 111 #[inline] as_mut_ptr(&mut self) -> *mut T112 pub fn as_mut_ptr(&mut self) -> *mut T { 113 self as *mut _ as *mut T 114 } 115 #[inline] as_slice(&self, len: usize) -> &[T]116 pub unsafe fn as_slice(&self, len: usize) -> &[T] { 117 ::std::slice::from_raw_parts(self.as_ptr(), len) 118 } 119 #[inline] as_mut_slice(&mut self, len: usize) -> &mut [T]120 pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { 121 ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len) 122 } 123 } 124 impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> { fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result125 fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { 126 fmt.write_str("__IncompleteArrayField") 127 } 128 } 129 #[repr(C)] 130 pub struct __BindgenUnionField<T>(::std::marker::PhantomData<T>); 131 impl<T> __BindgenUnionField<T> { 132 #[inline] new() -> Self133 pub const fn new() -> Self { 134 __BindgenUnionField(::std::marker::PhantomData) 135 } 136 #[inline] as_ref(&self) -> &T137 pub unsafe fn as_ref(&self) -> &T { 138 ::std::mem::transmute(self) 139 } 140 #[inline] as_mut(&mut self) -> &mut T141 pub unsafe fn as_mut(&mut self) -> &mut T { 142 ::std::mem::transmute(self) 143 } 144 } 145 impl<T> ::std::default::Default for __BindgenUnionField<T> { 146 #[inline] default() -> Self147 fn default() -> Self { 148 Self::new() 149 } 150 } 151 impl<T> ::std::clone::Clone for __BindgenUnionField<T> { 152 #[inline] clone(&self) -> Self153 fn clone(&self) -> Self { 154 Self::new() 155 } 156 } 157 impl<T> ::std::marker::Copy for __BindgenUnionField<T> {} 158 impl<T> ::std::fmt::Debug for __BindgenUnionField<T> { fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result159 fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { 160 fmt.write_str("__BindgenUnionField") 161 } 162 } 163 impl<T> ::std::hash::Hash for __BindgenUnionField<T> { hash<H: ::std::hash::Hasher>(&self, _state: &mut H)164 fn hash<H: ::std::hash::Hasher>(&self, _state: &mut H) {} 165 } 166 impl<T> ::std::cmp::PartialEq for __BindgenUnionField<T> { eq(&self, _other: &__BindgenUnionField<T>) -> bool167 fn eq(&self, _other: &__BindgenUnionField<T>) -> bool { 168 true 169 } 170 } 171 impl<T> ::std::cmp::Eq for __BindgenUnionField<T> {} 172 pub const KVM_PIO_PAGE_OFFSET: u32 = 1; 173 pub const KVM_COALESCED_MMIO_PAGE_OFFSET: u32 = 2; 174 pub const DE_VECTOR: u32 = 0; 175 pub const DB_VECTOR: u32 = 1; 176 pub const BP_VECTOR: u32 = 3; 177 pub const OF_VECTOR: u32 = 4; 178 pub const BR_VECTOR: u32 = 5; 179 pub const UD_VECTOR: u32 = 6; 180 pub const NM_VECTOR: u32 = 7; 181 pub const DF_VECTOR: u32 = 8; 182 pub const TS_VECTOR: u32 = 10; 183 pub const NP_VECTOR: u32 = 11; 184 pub const SS_VECTOR: u32 = 12; 185 pub const GP_VECTOR: u32 = 13; 186 pub const PF_VECTOR: u32 = 14; 187 pub const MF_VECTOR: u32 = 16; 188 pub const AC_VECTOR: u32 = 17; 189 pub const MC_VECTOR: u32 = 18; 190 pub const XM_VECTOR: u32 = 19; 191 pub const VE_VECTOR: u32 = 20; 192 pub const KVM_NR_INTERRUPTS: u32 = 256; 193 pub const KVM_IOAPIC_NUM_PINS: u32 = 24; 194 pub const KVM_IRQCHIP_PIC_MASTER: u32 = 0; 195 pub const KVM_IRQCHIP_PIC_SLAVE: u32 = 1; 196 pub const KVM_IRQCHIP_IOAPIC: u32 = 2; 197 pub const KVM_NR_IRQCHIPS: u32 = 3; 198 pub const KVM_RUN_X86_SMM: u32 = 1; 199 pub const KVM_APIC_REG_SIZE: u32 = 1024; 200 pub const KVM_MSR_FILTER_MAX_BITMAP_SIZE: u32 = 1536; 201 pub const KVM_MSR_FILTER_READ: u32 = 1; 202 pub const KVM_MSR_FILTER_WRITE: u32 = 2; 203 pub const KVM_MSR_FILTER_MAX_RANGES: u32 = 16; 204 pub const KVM_MSR_FILTER_DEFAULT_ALLOW: u32 = 0; 205 pub const KVM_MSR_FILTER_DEFAULT_DENY: u32 = 1; 206 pub const KVM_CPUID_FLAG_SIGNIFCANT_INDEX: u32 = 1; 207 pub const KVM_CPUID_FLAG_STATEFUL_FUNC: u32 = 2; 208 pub const KVM_CPUID_FLAG_STATE_READ_NEXT: u32 = 4; 209 pub const KVM_GUESTDBG_USE_SW_BP: u32 = 65536; 210 pub const KVM_GUESTDBG_USE_HW_BP: u32 = 131072; 211 pub const KVM_GUESTDBG_INJECT_DB: u32 = 262144; 212 pub const KVM_GUESTDBG_INJECT_BP: u32 = 524288; 213 pub const KVM_PIT_FLAGS_HPET_LEGACY: u32 = 1; 214 pub const KVM_VCPUEVENT_VALID_NMI_PENDING: u32 = 1; 215 pub const KVM_VCPUEVENT_VALID_SIPI_VECTOR: u32 = 2; 216 pub const KVM_VCPUEVENT_VALID_SHADOW: u32 = 4; 217 pub const KVM_VCPUEVENT_VALID_SMM: u32 = 8; 218 pub const KVM_VCPUEVENT_VALID_PAYLOAD: u32 = 16; 219 pub const KVM_X86_SHADOW_INT_MOV_SS: u32 = 1; 220 pub const KVM_X86_SHADOW_INT_STI: u32 = 2; 221 pub const KVM_MAX_XCRS: u32 = 16; 222 pub const KVM_SYNC_X86_REGS: u32 = 1; 223 pub const KVM_SYNC_X86_SREGS: u32 = 2; 224 pub const KVM_SYNC_X86_EVENTS: u32 = 4; 225 pub const KVM_SYNC_X86_VALID_FIELDS: u32 = 7; 226 pub const KVM_X86_QUIRK_LINT0_REENABLED: u32 = 1; 227 pub const KVM_X86_QUIRK_CD_NW_CLEARED: u32 = 2; 228 pub const KVM_X86_QUIRK_LAPIC_MMIO_HOLE: u32 = 4; 229 pub const KVM_X86_QUIRK_OUT_7E_INC_RIP: u32 = 8; 230 pub const KVM_X86_QUIRK_MISC_ENABLE_NO_MWAIT: u32 = 16; 231 pub const KVM_STATE_NESTED_FORMAT_VMX: u32 = 0; 232 pub const KVM_STATE_NESTED_FORMAT_SVM: u32 = 1; 233 pub const KVM_STATE_NESTED_GUEST_MODE: u32 = 1; 234 pub const KVM_STATE_NESTED_RUN_PENDING: u32 = 2; 235 pub const KVM_STATE_NESTED_EVMCS: u32 = 4; 236 pub const KVM_STATE_NESTED_MTF_PENDING: u32 = 8; 237 pub const KVM_STATE_NESTED_GIF_SET: u32 = 256; 238 pub const KVM_STATE_NESTED_SMM_GUEST_MODE: u32 = 1; 239 pub const KVM_STATE_NESTED_SMM_VMXON: u32 = 2; 240 pub const KVM_STATE_NESTED_VMX_VMCS_SIZE: u32 = 4096; 241 pub const KVM_STATE_NESTED_SVM_VMCB_SIZE: u32 = 4096; 242 pub const KVM_STATE_VMX_PREEMPTION_TIMER_DEADLINE: u32 = 1; 243 pub const KVM_PMU_EVENT_ALLOW: u32 = 0; 244 pub const KVM_PMU_EVENT_DENY: u32 = 1; 245 pub const KVM_API_VERSION: u32 = 12; 246 pub const KVM_TRC_SHIFT: u32 = 16; 247 pub const KVM_TRC_ENTRYEXIT: u32 = 65536; 248 pub const KVM_TRC_HANDLER: u32 = 131072; 249 pub const KVM_TRC_VMENTRY: u32 = 65537; 250 pub const KVM_TRC_VMEXIT: u32 = 65538; 251 pub const KVM_TRC_PAGE_FAULT: u32 = 131073; 252 pub const KVM_TRC_HEAD_SIZE: u32 = 12; 253 pub const KVM_TRC_CYCLE_SIZE: u32 = 8; 254 pub const KVM_TRC_EXTRA_MAX: u32 = 7; 255 pub const KVM_TRC_INJ_VIRQ: u32 = 131074; 256 pub const KVM_TRC_REDELIVER_EVT: u32 = 131075; 257 pub const KVM_TRC_PEND_INTR: u32 = 131076; 258 pub const KVM_TRC_IO_READ: u32 = 131077; 259 pub const KVM_TRC_IO_WRITE: u32 = 131078; 260 pub const KVM_TRC_CR_READ: u32 = 131079; 261 pub const KVM_TRC_CR_WRITE: u32 = 131080; 262 pub const KVM_TRC_DR_READ: u32 = 131081; 263 pub const KVM_TRC_DR_WRITE: u32 = 131082; 264 pub const KVM_TRC_MSR_READ: u32 = 131083; 265 pub const KVM_TRC_MSR_WRITE: u32 = 131084; 266 pub const KVM_TRC_CPUID: u32 = 131085; 267 pub const KVM_TRC_INTR: u32 = 131086; 268 pub const KVM_TRC_NMI: u32 = 131087; 269 pub const KVM_TRC_VMMCALL: u32 = 131088; 270 pub const KVM_TRC_HLT: u32 = 131089; 271 pub const KVM_TRC_CLTS: u32 = 131090; 272 pub const KVM_TRC_LMSW: u32 = 131091; 273 pub const KVM_TRC_APIC_ACCESS: u32 = 131092; 274 pub const KVM_TRC_TDP_FAULT: u32 = 131093; 275 pub const KVM_TRC_GTLB_WRITE: u32 = 131094; 276 pub const KVM_TRC_STLB_WRITE: u32 = 131095; 277 pub const KVM_TRC_STLB_INVAL: u32 = 131096; 278 pub const KVM_TRC_PPC_INSTR: u32 = 131097; 279 pub const KVM_MEM_LOG_DIRTY_PAGES: u32 = 1; 280 pub const KVM_MEM_READONLY: u32 = 2; 281 pub const KVM_PIT_SPEAKER_DUMMY: u32 = 1; 282 pub const KVM_S390_CMMA_PEEK: u32 = 1; 283 pub const KVM_EXIT_HYPERV_SYNIC: u32 = 1; 284 pub const KVM_EXIT_HYPERV_HCALL: u32 = 2; 285 pub const KVM_EXIT_HYPERV_SYNDBG: u32 = 3; 286 pub const KVM_S390_GET_SKEYS_NONE: u32 = 1; 287 pub const KVM_S390_SKEYS_MAX: u32 = 1048576; 288 pub const KVM_EXIT_UNKNOWN: u32 = 0; 289 pub const KVM_EXIT_EXCEPTION: u32 = 1; 290 pub const KVM_EXIT_IO: u32 = 2; 291 pub const KVM_EXIT_HYPERCALL: u32 = 3; 292 pub const KVM_EXIT_DEBUG: u32 = 4; 293 pub const KVM_EXIT_HLT: u32 = 5; 294 pub const KVM_EXIT_MMIO: u32 = 6; 295 pub const KVM_EXIT_IRQ_WINDOW_OPEN: u32 = 7; 296 pub const KVM_EXIT_SHUTDOWN: u32 = 8; 297 pub const KVM_EXIT_FAIL_ENTRY: u32 = 9; 298 pub const KVM_EXIT_INTR: u32 = 10; 299 pub const KVM_EXIT_SET_TPR: u32 = 11; 300 pub const KVM_EXIT_TPR_ACCESS: u32 = 12; 301 pub const KVM_EXIT_S390_SIEIC: u32 = 13; 302 pub const KVM_EXIT_S390_RESET: u32 = 14; 303 pub const KVM_EXIT_DCR: u32 = 15; 304 pub const KVM_EXIT_NMI: u32 = 16; 305 pub const KVM_EXIT_INTERNAL_ERROR: u32 = 17; 306 pub const KVM_EXIT_OSI: u32 = 18; 307 pub const KVM_EXIT_PAPR_HCALL: u32 = 19; 308 pub const KVM_EXIT_S390_UCONTROL: u32 = 20; 309 pub const KVM_EXIT_WATCHDOG: u32 = 21; 310 pub const KVM_EXIT_S390_TSCH: u32 = 22; 311 pub const KVM_EXIT_EPR: u32 = 23; 312 pub const KVM_EXIT_SYSTEM_EVENT: u32 = 24; 313 pub const KVM_EXIT_S390_STSI: u32 = 25; 314 pub const KVM_EXIT_IOAPIC_EOI: u32 = 26; 315 pub const KVM_EXIT_HYPERV: u32 = 27; 316 pub const KVM_EXIT_ARM_NISV: u32 = 28; 317 pub const KVM_EXIT_X86_RDMSR: u32 = 29; 318 pub const KVM_EXIT_X86_WRMSR: u32 = 30; 319 pub const KVM_INTERNAL_ERROR_EMULATION: u32 = 1; 320 pub const KVM_INTERNAL_ERROR_SIMUL_EX: u32 = 2; 321 pub const KVM_INTERNAL_ERROR_DELIVERY_EV: u32 = 3; 322 pub const KVM_INTERNAL_ERROR_UNEXPECTED_EXIT_REASON: u32 = 4; 323 pub const KVM_EXIT_IO_IN: u32 = 0; 324 pub const KVM_EXIT_IO_OUT: u32 = 1; 325 pub const KVM_S390_RESET_POR: u32 = 1; 326 pub const KVM_S390_RESET_CLEAR: u32 = 2; 327 pub const KVM_S390_RESET_SUBSYSTEM: u32 = 4; 328 pub const KVM_S390_RESET_CPU_INIT: u32 = 8; 329 pub const KVM_S390_RESET_IPL: u32 = 16; 330 pub const KVM_SYSTEM_EVENT_SHUTDOWN: u32 = 1; 331 pub const KVM_SYSTEM_EVENT_RESET: u32 = 2; 332 pub const KVM_SYSTEM_EVENT_CRASH: u32 = 3; 333 pub const KVM_MSR_EXIT_REASON_INVAL: u32 = 1; 334 pub const KVM_MSR_EXIT_REASON_UNKNOWN: u32 = 2; 335 pub const KVM_MSR_EXIT_REASON_FILTER: u32 = 4; 336 pub const SYNC_REGS_SIZE_BYTES: u32 = 2048; 337 pub const KVM_S390_MEMOP_LOGICAL_READ: u32 = 0; 338 pub const KVM_S390_MEMOP_LOGICAL_WRITE: u32 = 1; 339 pub const KVM_S390_MEMOP_SIDA_READ: u32 = 2; 340 pub const KVM_S390_MEMOP_SIDA_WRITE: u32 = 3; 341 pub const KVM_S390_MEMOP_F_CHECK_ONLY: u32 = 1; 342 pub const KVM_S390_MEMOP_F_INJECT_EXCEPTION: u32 = 2; 343 pub const KVM_MP_STATE_RUNNABLE: u32 = 0; 344 pub const KVM_MP_STATE_UNINITIALIZED: u32 = 1; 345 pub const KVM_MP_STATE_INIT_RECEIVED: u32 = 2; 346 pub const KVM_MP_STATE_HALTED: u32 = 3; 347 pub const KVM_MP_STATE_SIPI_RECEIVED: u32 = 4; 348 pub const KVM_MP_STATE_STOPPED: u32 = 5; 349 pub const KVM_MP_STATE_CHECK_STOP: u32 = 6; 350 pub const KVM_MP_STATE_OPERATING: u32 = 7; 351 pub const KVM_MP_STATE_LOAD: u32 = 8; 352 pub const KVM_S390_SIGP_STOP: u32 = 4294836224; 353 pub const KVM_S390_PROGRAM_INT: u32 = 4294836225; 354 pub const KVM_S390_SIGP_SET_PREFIX: u32 = 4294836226; 355 pub const KVM_S390_RESTART: u32 = 4294836227; 356 pub const KVM_S390_INT_PFAULT_INIT: u32 = 4294836228; 357 pub const KVM_S390_INT_PFAULT_DONE: u32 = 4294836229; 358 pub const KVM_S390_MCHK: u32 = 4294840320; 359 pub const KVM_S390_INT_CLOCK_COMP: u32 = 4294905860; 360 pub const KVM_S390_INT_CPU_TIMER: u32 = 4294905861; 361 pub const KVM_S390_INT_VIRTIO: u32 = 4294911491; 362 pub const KVM_S390_INT_SERVICE: u32 = 4294910977; 363 pub const KVM_S390_INT_EMERGENCY: u32 = 4294906369; 364 pub const KVM_S390_INT_EXTERNAL_CALL: u32 = 4294906370; 365 pub const KVM_S390_INT_IO_MIN: u32 = 0; 366 pub const KVM_S390_INT_IO_MAX: u32 = 4294836223; 367 pub const KVM_S390_INT_IO_AI_MASK: u32 = 67108864; 368 pub const KVM_S390_PGM_FLAGS_ILC_VALID: u32 = 1; 369 pub const KVM_S390_PGM_FLAGS_ILC_0: u32 = 2; 370 pub const KVM_S390_PGM_FLAGS_ILC_1: u32 = 4; 371 pub const KVM_S390_PGM_FLAGS_ILC_MASK: u32 = 6; 372 pub const KVM_S390_PGM_FLAGS_NO_REWIND: u32 = 8; 373 pub const KVM_S390_STOP_FLAG_STORE_STATUS: u32 = 1; 374 pub const KVM_GUESTDBG_ENABLE: u32 = 1; 375 pub const KVM_GUESTDBG_SINGLESTEP: u32 = 2; 376 pub const KVM_X86_DISABLE_EXITS_MWAIT: u32 = 1; 377 pub const KVM_X86_DISABLE_EXITS_HLT: u32 = 2; 378 pub const KVM_X86_DISABLE_EXITS_PAUSE: u32 = 4; 379 pub const KVM_X86_DISABLE_EXITS_CSTATE: u32 = 8; 380 pub const KVM_X86_DISABLE_VALID_EXITS: u32 = 15; 381 pub const KVM_PPC_PVINFO_FLAGS_EV_IDLE: u32 = 1; 382 pub const KVM_PPC_PAGE_SIZES_MAX_SZ: u32 = 8; 383 pub const KVM_PPC_PAGE_SIZES_REAL: u32 = 1; 384 pub const KVM_PPC_1T_SEGMENTS: u32 = 2; 385 pub const KVM_PPC_NO_HASH: u32 = 4; 386 pub const KVMIO: u32 = 174; 387 pub const KVM_VM_S390_UCONTROL: u32 = 1; 388 pub const KVM_VM_PPC_HV: u32 = 1; 389 pub const KVM_VM_PPC_PR: u32 = 2; 390 pub const KVM_VM_MIPS_AUTO: u32 = 0; 391 pub const KVM_VM_MIPS_VZ: u32 = 1; 392 pub const KVM_VM_MIPS_TE: u32 = 2; 393 pub const KVM_S390_SIE_PAGE_OFFSET: u32 = 1; 394 pub const KVM_VM_TYPE_ARM_IPA_SIZE_MASK: u32 = 255; 395 pub const KVM_CAP_IRQCHIP: u32 = 0; 396 pub const KVM_CAP_HLT: u32 = 1; 397 pub const KVM_CAP_MMU_SHADOW_CACHE_CONTROL: u32 = 2; 398 pub const KVM_CAP_USER_MEMORY: u32 = 3; 399 pub const KVM_CAP_SET_TSS_ADDR: u32 = 4; 400 pub const KVM_CAP_VAPIC: u32 = 6; 401 pub const KVM_CAP_EXT_CPUID: u32 = 7; 402 pub const KVM_CAP_CLOCKSOURCE: u32 = 8; 403 pub const KVM_CAP_NR_VCPUS: u32 = 9; 404 pub const KVM_CAP_NR_MEMSLOTS: u32 = 10; 405 pub const KVM_CAP_PIT: u32 = 11; 406 pub const KVM_CAP_NOP_IO_DELAY: u32 = 12; 407 pub const KVM_CAP_PV_MMU: u32 = 13; 408 pub const KVM_CAP_MP_STATE: u32 = 14; 409 pub const KVM_CAP_COALESCED_MMIO: u32 = 15; 410 pub const KVM_CAP_SYNC_MMU: u32 = 16; 411 pub const KVM_CAP_IOMMU: u32 = 18; 412 pub const KVM_CAP_DESTROY_MEMORY_REGION_WORKS: u32 = 21; 413 pub const KVM_CAP_USER_NMI: u32 = 22; 414 pub const KVM_CAP_SET_GUEST_DEBUG: u32 = 23; 415 pub const KVM_CAP_REINJECT_CONTROL: u32 = 24; 416 pub const KVM_CAP_IRQ_ROUTING: u32 = 25; 417 pub const KVM_CAP_IRQ_INJECT_STATUS: u32 = 26; 418 pub const KVM_CAP_ASSIGN_DEV_IRQ: u32 = 29; 419 pub const KVM_CAP_JOIN_MEMORY_REGIONS_WORKS: u32 = 30; 420 pub const KVM_CAP_MCE: u32 = 31; 421 pub const KVM_CAP_IRQFD: u32 = 32; 422 pub const KVM_CAP_PIT2: u32 = 33; 423 pub const KVM_CAP_SET_BOOT_CPU_ID: u32 = 34; 424 pub const KVM_CAP_PIT_STATE2: u32 = 35; 425 pub const KVM_CAP_IOEVENTFD: u32 = 36; 426 pub const KVM_CAP_SET_IDENTITY_MAP_ADDR: u32 = 37; 427 pub const KVM_CAP_XEN_HVM: u32 = 38; 428 pub const KVM_CAP_ADJUST_CLOCK: u32 = 39; 429 pub const KVM_CAP_INTERNAL_ERROR_DATA: u32 = 40; 430 pub const KVM_CAP_VCPU_EVENTS: u32 = 41; 431 pub const KVM_CAP_S390_PSW: u32 = 42; 432 pub const KVM_CAP_PPC_SEGSTATE: u32 = 43; 433 pub const KVM_CAP_HYPERV: u32 = 44; 434 pub const KVM_CAP_HYPERV_VAPIC: u32 = 45; 435 pub const KVM_CAP_HYPERV_SPIN: u32 = 46; 436 pub const KVM_CAP_PCI_SEGMENT: u32 = 47; 437 pub const KVM_CAP_PPC_PAIRED_SINGLES: u32 = 48; 438 pub const KVM_CAP_INTR_SHADOW: u32 = 49; 439 pub const KVM_CAP_DEBUGREGS: u32 = 50; 440 pub const KVM_CAP_X86_ROBUST_SINGLESTEP: u32 = 51; 441 pub const KVM_CAP_PPC_OSI: u32 = 52; 442 pub const KVM_CAP_PPC_UNSET_IRQ: u32 = 53; 443 pub const KVM_CAP_ENABLE_CAP: u32 = 54; 444 pub const KVM_CAP_XSAVE: u32 = 55; 445 pub const KVM_CAP_XCRS: u32 = 56; 446 pub const KVM_CAP_PPC_GET_PVINFO: u32 = 57; 447 pub const KVM_CAP_PPC_IRQ_LEVEL: u32 = 58; 448 pub const KVM_CAP_ASYNC_PF: u32 = 59; 449 pub const KVM_CAP_TSC_CONTROL: u32 = 60; 450 pub const KVM_CAP_GET_TSC_KHZ: u32 = 61; 451 pub const KVM_CAP_PPC_BOOKE_SREGS: u32 = 62; 452 pub const KVM_CAP_SPAPR_TCE: u32 = 63; 453 pub const KVM_CAP_PPC_SMT: u32 = 64; 454 pub const KVM_CAP_PPC_RMA: u32 = 65; 455 pub const KVM_CAP_MAX_VCPUS: u32 = 66; 456 pub const KVM_CAP_PPC_HIOR: u32 = 67; 457 pub const KVM_CAP_PPC_PAPR: u32 = 68; 458 pub const KVM_CAP_SW_TLB: u32 = 69; 459 pub const KVM_CAP_ONE_REG: u32 = 70; 460 pub const KVM_CAP_S390_GMAP: u32 = 71; 461 pub const KVM_CAP_TSC_DEADLINE_TIMER: u32 = 72; 462 pub const KVM_CAP_S390_UCONTROL: u32 = 73; 463 pub const KVM_CAP_SYNC_REGS: u32 = 74; 464 pub const KVM_CAP_PCI_2_3: u32 = 75; 465 pub const KVM_CAP_KVMCLOCK_CTRL: u32 = 76; 466 pub const KVM_CAP_SIGNAL_MSI: u32 = 77; 467 pub const KVM_CAP_PPC_GET_SMMU_INFO: u32 = 78; 468 pub const KVM_CAP_S390_COW: u32 = 79; 469 pub const KVM_CAP_PPC_ALLOC_HTAB: u32 = 80; 470 pub const KVM_CAP_READONLY_MEM: u32 = 81; 471 pub const KVM_CAP_IRQFD_RESAMPLE: u32 = 82; 472 pub const KVM_CAP_PPC_BOOKE_WATCHDOG: u32 = 83; 473 pub const KVM_CAP_PPC_HTAB_FD: u32 = 84; 474 pub const KVM_CAP_S390_CSS_SUPPORT: u32 = 85; 475 pub const KVM_CAP_PPC_EPR: u32 = 86; 476 pub const KVM_CAP_ARM_PSCI: u32 = 87; 477 pub const KVM_CAP_ARM_SET_DEVICE_ADDR: u32 = 88; 478 pub const KVM_CAP_DEVICE_CTRL: u32 = 89; 479 pub const KVM_CAP_IRQ_MPIC: u32 = 90; 480 pub const KVM_CAP_PPC_RTAS: u32 = 91; 481 pub const KVM_CAP_IRQ_XICS: u32 = 92; 482 pub const KVM_CAP_ARM_EL1_32BIT: u32 = 93; 483 pub const KVM_CAP_SPAPR_MULTITCE: u32 = 94; 484 pub const KVM_CAP_EXT_EMUL_CPUID: u32 = 95; 485 pub const KVM_CAP_HYPERV_TIME: u32 = 96; 486 pub const KVM_CAP_IOAPIC_POLARITY_IGNORED: u32 = 97; 487 pub const KVM_CAP_ENABLE_CAP_VM: u32 = 98; 488 pub const KVM_CAP_S390_IRQCHIP: u32 = 99; 489 pub const KVM_CAP_IOEVENTFD_NO_LENGTH: u32 = 100; 490 pub const KVM_CAP_VM_ATTRIBUTES: u32 = 101; 491 pub const KVM_CAP_ARM_PSCI_0_2: u32 = 102; 492 pub const KVM_CAP_PPC_FIXUP_HCALL: u32 = 103; 493 pub const KVM_CAP_PPC_ENABLE_HCALL: u32 = 104; 494 pub const KVM_CAP_CHECK_EXTENSION_VM: u32 = 105; 495 pub const KVM_CAP_S390_USER_SIGP: u32 = 106; 496 pub const KVM_CAP_S390_VECTOR_REGISTERS: u32 = 107; 497 pub const KVM_CAP_S390_MEM_OP: u32 = 108; 498 pub const KVM_CAP_S390_USER_STSI: u32 = 109; 499 pub const KVM_CAP_S390_SKEYS: u32 = 110; 500 pub const KVM_CAP_MIPS_FPU: u32 = 111; 501 pub const KVM_CAP_MIPS_MSA: u32 = 112; 502 pub const KVM_CAP_S390_INJECT_IRQ: u32 = 113; 503 pub const KVM_CAP_S390_IRQ_STATE: u32 = 114; 504 pub const KVM_CAP_PPC_HWRNG: u32 = 115; 505 pub const KVM_CAP_DISABLE_QUIRKS: u32 = 116; 506 pub const KVM_CAP_X86_SMM: u32 = 117; 507 pub const KVM_CAP_MULTI_ADDRESS_SPACE: u32 = 118; 508 pub const KVM_CAP_GUEST_DEBUG_HW_BPS: u32 = 119; 509 pub const KVM_CAP_GUEST_DEBUG_HW_WPS: u32 = 120; 510 pub const KVM_CAP_SPLIT_IRQCHIP: u32 = 121; 511 pub const KVM_CAP_IOEVENTFD_ANY_LENGTH: u32 = 122; 512 pub const KVM_CAP_HYPERV_SYNIC: u32 = 123; 513 pub const KVM_CAP_S390_RI: u32 = 124; 514 pub const KVM_CAP_SPAPR_TCE_64: u32 = 125; 515 pub const KVM_CAP_ARM_PMU_V3: u32 = 126; 516 pub const KVM_CAP_VCPU_ATTRIBUTES: u32 = 127; 517 pub const KVM_CAP_MAX_VCPU_ID: u32 = 128; 518 pub const KVM_CAP_X2APIC_API: u32 = 129; 519 pub const KVM_CAP_S390_USER_INSTR0: u32 = 130; 520 pub const KVM_CAP_MSI_DEVID: u32 = 131; 521 pub const KVM_CAP_PPC_HTM: u32 = 132; 522 pub const KVM_CAP_SPAPR_RESIZE_HPT: u32 = 133; 523 pub const KVM_CAP_PPC_MMU_RADIX: u32 = 134; 524 pub const KVM_CAP_PPC_MMU_HASH_V3: u32 = 135; 525 pub const KVM_CAP_IMMEDIATE_EXIT: u32 = 136; 526 pub const KVM_CAP_MIPS_VZ: u32 = 137; 527 pub const KVM_CAP_MIPS_TE: u32 = 138; 528 pub const KVM_CAP_MIPS_64BIT: u32 = 139; 529 pub const KVM_CAP_S390_GS: u32 = 140; 530 pub const KVM_CAP_S390_AIS: u32 = 141; 531 pub const KVM_CAP_SPAPR_TCE_VFIO: u32 = 142; 532 pub const KVM_CAP_X86_DISABLE_EXITS: u32 = 143; 533 pub const KVM_CAP_ARM_USER_IRQ: u32 = 144; 534 pub const KVM_CAP_S390_CMMA_MIGRATION: u32 = 145; 535 pub const KVM_CAP_PPC_FWNMI: u32 = 146; 536 pub const KVM_CAP_PPC_SMT_POSSIBLE: u32 = 147; 537 pub const KVM_CAP_HYPERV_SYNIC2: u32 = 148; 538 pub const KVM_CAP_HYPERV_VP_INDEX: u32 = 149; 539 pub const KVM_CAP_S390_AIS_MIGRATION: u32 = 150; 540 pub const KVM_CAP_PPC_GET_CPU_CHAR: u32 = 151; 541 pub const KVM_CAP_S390_BPB: u32 = 152; 542 pub const KVM_CAP_GET_MSR_FEATURES: u32 = 153; 543 pub const KVM_CAP_HYPERV_EVENTFD: u32 = 154; 544 pub const KVM_CAP_HYPERV_TLBFLUSH: u32 = 155; 545 pub const KVM_CAP_S390_HPAGE_1M: u32 = 156; 546 pub const KVM_CAP_NESTED_STATE: u32 = 157; 547 pub const KVM_CAP_ARM_INJECT_SERROR_ESR: u32 = 158; 548 pub const KVM_CAP_MSR_PLATFORM_INFO: u32 = 159; 549 pub const KVM_CAP_PPC_NESTED_HV: u32 = 160; 550 pub const KVM_CAP_HYPERV_SEND_IPI: u32 = 161; 551 pub const KVM_CAP_COALESCED_PIO: u32 = 162; 552 pub const KVM_CAP_HYPERV_ENLIGHTENED_VMCS: u32 = 163; 553 pub const KVM_CAP_EXCEPTION_PAYLOAD: u32 = 164; 554 pub const KVM_CAP_ARM_VM_IPA_SIZE: u32 = 165; 555 pub const KVM_CAP_MANUAL_DIRTY_LOG_PROTECT: u32 = 166; 556 pub const KVM_CAP_HYPERV_CPUID: u32 = 167; 557 pub const KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2: u32 = 168; 558 pub const KVM_CAP_PPC_IRQ_XIVE: u32 = 169; 559 pub const KVM_CAP_ARM_SVE: u32 = 170; 560 pub const KVM_CAP_ARM_PTRAUTH_ADDRESS: u32 = 171; 561 pub const KVM_CAP_ARM_PTRAUTH_GENERIC: u32 = 172; 562 pub const KVM_CAP_PMU_EVENT_FILTER: u32 = 173; 563 pub const KVM_CAP_ARM_IRQ_LINE_LAYOUT_2: u32 = 174; 564 pub const KVM_CAP_HYPERV_DIRECT_TLBFLUSH: u32 = 175; 565 pub const KVM_CAP_PPC_GUEST_DEBUG_SSTEP: u32 = 176; 566 pub const KVM_CAP_ARM_NISV_TO_USER: u32 = 177; 567 pub const KVM_CAP_ARM_INJECT_EXT_DABT: u32 = 178; 568 pub const KVM_CAP_S390_VCPU_RESETS: u32 = 179; 569 pub const KVM_CAP_S390_PROTECTED: u32 = 180; 570 pub const KVM_CAP_PPC_SECURE_GUEST: u32 = 181; 571 pub const KVM_CAP_HALT_POLL: u32 = 182; 572 pub const KVM_CAP_ASYNC_PF_INT: u32 = 183; 573 pub const KVM_CAP_LAST_CPU: u32 = 184; 574 pub const KVM_CAP_SMALLER_MAXPHYADDR: u32 = 185; 575 pub const KVM_CAP_S390_DIAG318: u32 = 186; 576 pub const KVM_CAP_STEAL_TIME: u32 = 187; 577 pub const KVM_CAP_X86_USER_SPACE_MSR: u32 = 188; 578 pub const KVM_CAP_X86_MSR_FILTER: u32 = 189; 579 pub const KVM_CAP_ENFORCE_PV_FEATURE_CPUID: u32 = 190; 580 pub const KVM_IRQ_ROUTING_IRQCHIP: u32 = 1; 581 pub const KVM_IRQ_ROUTING_MSI: u32 = 2; 582 pub const KVM_IRQ_ROUTING_S390_ADAPTER: u32 = 3; 583 pub const KVM_IRQ_ROUTING_HV_SINT: u32 = 4; 584 pub const KVM_IRQFD_FLAG_DEASSIGN: u32 = 1; 585 pub const KVM_IRQFD_FLAG_RESAMPLE: u32 = 2; 586 pub const KVM_CLOCK_TSC_STABLE: u32 = 2; 587 pub const KVM_MMU_FSL_BOOKE_NOHV: u32 = 0; 588 pub const KVM_MMU_FSL_BOOKE_HV: u32 = 1; 589 pub const KVM_REG_ARCH_MASK: i64 = -72057594037927936; 590 pub const KVM_REG_GENERIC: u32 = 0; 591 pub const KVM_REG_PPC: u64 = 1152921504606846976; 592 pub const KVM_REG_X86: u64 = 2305843009213693952; 593 pub const KVM_REG_IA64: u64 = 3458764513820540928; 594 pub const KVM_REG_ARM: u64 = 4611686018427387904; 595 pub const KVM_REG_S390: u64 = 5764607523034234880; 596 pub const KVM_REG_ARM64: u64 = 6917529027641081856; 597 pub const KVM_REG_MIPS: u64 = 8070450532247928832; 598 pub const KVM_REG_RISCV: i64 = -9223372036854775808; 599 pub const KVM_REG_SIZE_SHIFT: u32 = 52; 600 pub const KVM_REG_SIZE_MASK: u64 = 67553994410557440; 601 pub const KVM_REG_SIZE_U8: u32 = 0; 602 pub const KVM_REG_SIZE_U16: u64 = 4503599627370496; 603 pub const KVM_REG_SIZE_U32: u64 = 9007199254740992; 604 pub const KVM_REG_SIZE_U64: u64 = 13510798882111488; 605 pub const KVM_REG_SIZE_U128: u64 = 18014398509481984; 606 pub const KVM_REG_SIZE_U256: u64 = 22517998136852480; 607 pub const KVM_REG_SIZE_U512: u64 = 27021597764222976; 608 pub const KVM_REG_SIZE_U1024: u64 = 31525197391593472; 609 pub const KVM_REG_SIZE_U2048: u64 = 36028797018963968; 610 pub const KVM_MSI_VALID_DEVID: u32 = 1; 611 pub const KVM_CREATE_DEVICE_TEST: u32 = 1; 612 pub const KVM_DEV_VFIO_GROUP: u32 = 1; 613 pub const KVM_DEV_VFIO_GROUP_ADD: u32 = 1; 614 pub const KVM_DEV_VFIO_GROUP_DEL: u32 = 2; 615 pub const KVM_DEV_VFIO_GROUP_SET_SPAPR_TCE: u32 = 3; 616 pub const KVM_S390_STORE_STATUS_NOADDR: i32 = -1; 617 pub const KVM_S390_STORE_STATUS_PREFIXED: i32 = -2; 618 pub const KVM_DEV_ASSIGN_ENABLE_IOMMU: u32 = 1; 619 pub const KVM_DEV_ASSIGN_PCI_2_3: u32 = 2; 620 pub const KVM_DEV_ASSIGN_MASK_INTX: u32 = 4; 621 pub const KVM_DEV_IRQ_HOST_INTX: u32 = 1; 622 pub const KVM_DEV_IRQ_HOST_MSI: u32 = 2; 623 pub const KVM_DEV_IRQ_HOST_MSIX: u32 = 4; 624 pub const KVM_DEV_IRQ_GUEST_INTX: u32 = 256; 625 pub const KVM_DEV_IRQ_GUEST_MSI: u32 = 512; 626 pub const KVM_DEV_IRQ_GUEST_MSIX: u32 = 1024; 627 pub const KVM_DEV_IRQ_HOST_MASK: u32 = 255; 628 pub const KVM_DEV_IRQ_GUEST_MASK: u32 = 65280; 629 pub const KVM_MAX_MSIX_PER_DEV: u32 = 256; 630 pub const KVM_X2APIC_API_USE_32BIT_IDS: u32 = 1; 631 pub const KVM_X2APIC_API_DISABLE_BROADCAST_QUIRK: u32 = 2; 632 pub const KVM_ARM_DEV_EL1_VTIMER: u32 = 1; 633 pub const KVM_ARM_DEV_EL1_PTIMER: u32 = 2; 634 pub const KVM_ARM_DEV_PMU: u32 = 4; 635 pub const KVM_HYPERV_CONN_ID_MASK: u32 = 16777215; 636 pub const KVM_HYPERV_EVENTFD_DEASSIGN: u32 = 1; 637 pub const KVM_DIRTY_LOG_MANUAL_PROTECT_ENABLE: u32 = 1; 638 pub const KVM_DIRTY_LOG_INITIALLY_SET: u32 = 2; 639 pub type __le16 = u16; 640 pub type __be16 = u16; 641 pub type __le32 = u32; 642 pub type __be32 = u32; 643 pub type __le64 = u64; 644 pub type __be64 = u64; 645 pub type __sum16 = u16; 646 pub type __wsum = u32; 647 pub type __poll_t = ::std::os::raw::c_uint; 648 #[repr(C)] 649 #[derive(Debug, Default, Copy, Clone)] 650 pub struct kvm_memory_alias { 651 pub slot: u32, 652 pub flags: u32, 653 pub guest_phys_addr: u64, 654 pub memory_size: u64, 655 pub target_phys_addr: u64, 656 } 657 #[repr(C)] 658 #[derive(Debug, Default, Copy, Clone)] 659 pub struct kvm_pic_state { 660 pub last_irr: u8, 661 pub irr: u8, 662 pub imr: u8, 663 pub isr: u8, 664 pub priority_add: u8, 665 pub irq_base: u8, 666 pub read_reg_select: u8, 667 pub poll: u8, 668 pub special_mask: u8, 669 pub init_state: u8, 670 pub auto_eoi: u8, 671 pub rotate_on_auto_eoi: u8, 672 pub special_fully_nested_mode: u8, 673 pub init4: u8, 674 pub elcr: u8, 675 pub elcr_mask: u8, 676 } 677 #[repr(C)] 678 #[derive(Copy, Clone)] 679 pub struct kvm_ioapic_state { 680 pub base_address: u64, 681 pub ioregsel: u32, 682 pub id: u32, 683 pub irr: u32, 684 pub pad: u32, 685 pub redirtbl: [kvm_ioapic_state__bindgen_ty_1; 24usize], 686 } 687 #[repr(C)] 688 #[derive(Copy, Clone)] 689 pub union kvm_ioapic_state__bindgen_ty_1 { 690 pub bits: u64, 691 pub fields: kvm_ioapic_state__bindgen_ty_1__bindgen_ty_1, 692 } 693 #[repr(C)] 694 #[derive(Debug, Default, Copy, Clone)] 695 pub struct kvm_ioapic_state__bindgen_ty_1__bindgen_ty_1 { 696 pub vector: u8, 697 pub _bitfield_align_1: [u8; 0], 698 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, 699 pub reserved: [u8; 4usize], 700 pub dest_id: u8, 701 } 702 impl kvm_ioapic_state__bindgen_ty_1__bindgen_ty_1 { 703 #[inline] delivery_mode(&self) -> u8704 pub fn delivery_mode(&self) -> u8 { 705 unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 3u8) as u8) } 706 } 707 #[inline] set_delivery_mode(&mut self, val: u8)708 pub fn set_delivery_mode(&mut self, val: u8) { 709 unsafe { 710 let val: u8 = ::std::mem::transmute(val); 711 self._bitfield_1.set(0usize, 3u8, val as u64) 712 } 713 } 714 #[inline] dest_mode(&self) -> u8715 pub fn dest_mode(&self) -> u8 { 716 unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) } 717 } 718 #[inline] set_dest_mode(&mut self, val: u8)719 pub fn set_dest_mode(&mut self, val: u8) { 720 unsafe { 721 let val: u8 = ::std::mem::transmute(val); 722 self._bitfield_1.set(3usize, 1u8, val as u64) 723 } 724 } 725 #[inline] delivery_status(&self) -> u8726 pub fn delivery_status(&self) -> u8 { 727 unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u8) } 728 } 729 #[inline] set_delivery_status(&mut self, val: u8)730 pub fn set_delivery_status(&mut self, val: u8) { 731 unsafe { 732 let val: u8 = ::std::mem::transmute(val); 733 self._bitfield_1.set(4usize, 1u8, val as u64) 734 } 735 } 736 #[inline] polarity(&self) -> u8737 pub fn polarity(&self) -> u8 { 738 unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u8) } 739 } 740 #[inline] set_polarity(&mut self, val: u8)741 pub fn set_polarity(&mut self, val: u8) { 742 unsafe { 743 let val: u8 = ::std::mem::transmute(val); 744 self._bitfield_1.set(5usize, 1u8, val as u64) 745 } 746 } 747 #[inline] remote_irr(&self) -> u8748 pub fn remote_irr(&self) -> u8 { 749 unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u8) } 750 } 751 #[inline] set_remote_irr(&mut self, val: u8)752 pub fn set_remote_irr(&mut self, val: u8) { 753 unsafe { 754 let val: u8 = ::std::mem::transmute(val); 755 self._bitfield_1.set(6usize, 1u8, val as u64) 756 } 757 } 758 #[inline] trig_mode(&self) -> u8759 pub fn trig_mode(&self) -> u8 { 760 unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u8) } 761 } 762 #[inline] set_trig_mode(&mut self, val: u8)763 pub fn set_trig_mode(&mut self, val: u8) { 764 unsafe { 765 let val: u8 = ::std::mem::transmute(val); 766 self._bitfield_1.set(7usize, 1u8, val as u64) 767 } 768 } 769 #[inline] mask(&self) -> u8770 pub fn mask(&self) -> u8 { 771 unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u8) } 772 } 773 #[inline] set_mask(&mut self, val: u8)774 pub fn set_mask(&mut self, val: u8) { 775 unsafe { 776 let val: u8 = ::std::mem::transmute(val); 777 self._bitfield_1.set(8usize, 1u8, val as u64) 778 } 779 } 780 #[inline] reserve(&self) -> u8781 pub fn reserve(&self) -> u8 { 782 unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 7u8) as u8) } 783 } 784 #[inline] set_reserve(&mut self, val: u8)785 pub fn set_reserve(&mut self, val: u8) { 786 unsafe { 787 let val: u8 = ::std::mem::transmute(val); 788 self._bitfield_1.set(9usize, 7u8, val as u64) 789 } 790 } 791 #[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]>792 pub fn new_bitfield_1( 793 delivery_mode: u8, 794 dest_mode: u8, 795 delivery_status: u8, 796 polarity: u8, 797 remote_irr: u8, 798 trig_mode: u8, 799 mask: u8, 800 reserve: u8, 801 ) -> __BindgenBitfieldUnit<[u8; 2usize]> { 802 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); 803 __bindgen_bitfield_unit.set(0usize, 3u8, { 804 let delivery_mode: u8 = unsafe { ::std::mem::transmute(delivery_mode) }; 805 delivery_mode as u64 806 }); 807 __bindgen_bitfield_unit.set(3usize, 1u8, { 808 let dest_mode: u8 = unsafe { ::std::mem::transmute(dest_mode) }; 809 dest_mode as u64 810 }); 811 __bindgen_bitfield_unit.set(4usize, 1u8, { 812 let delivery_status: u8 = unsafe { ::std::mem::transmute(delivery_status) }; 813 delivery_status as u64 814 }); 815 __bindgen_bitfield_unit.set(5usize, 1u8, { 816 let polarity: u8 = unsafe { ::std::mem::transmute(polarity) }; 817 polarity as u64 818 }); 819 __bindgen_bitfield_unit.set(6usize, 1u8, { 820 let remote_irr: u8 = unsafe { ::std::mem::transmute(remote_irr) }; 821 remote_irr as u64 822 }); 823 __bindgen_bitfield_unit.set(7usize, 1u8, { 824 let trig_mode: u8 = unsafe { ::std::mem::transmute(trig_mode) }; 825 trig_mode as u64 826 }); 827 __bindgen_bitfield_unit.set(8usize, 1u8, { 828 let mask: u8 = unsafe { ::std::mem::transmute(mask) }; 829 mask as u64 830 }); 831 __bindgen_bitfield_unit.set(9usize, 7u8, { 832 let reserve: u8 = unsafe { ::std::mem::transmute(reserve) }; 833 reserve as u64 834 }); 835 __bindgen_bitfield_unit 836 } 837 } 838 impl Default for kvm_ioapic_state__bindgen_ty_1 { default() -> Self839 fn default() -> Self { 840 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 841 unsafe { 842 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 843 s.assume_init() 844 } 845 } 846 } 847 impl Default for kvm_ioapic_state { default() -> Self848 fn default() -> Self { 849 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 850 unsafe { 851 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 852 s.assume_init() 853 } 854 } 855 } 856 #[repr(C)] 857 #[derive(Debug, Default, Copy, Clone)] 858 pub struct kvm_regs { 859 pub rax: u64, 860 pub rbx: u64, 861 pub rcx: u64, 862 pub rdx: u64, 863 pub rsi: u64, 864 pub rdi: u64, 865 pub rsp: u64, 866 pub rbp: u64, 867 pub r8: u64, 868 pub r9: u64, 869 pub r10: u64, 870 pub r11: u64, 871 pub r12: u64, 872 pub r13: u64, 873 pub r14: u64, 874 pub r15: u64, 875 pub rip: u64, 876 pub rflags: u64, 877 } 878 #[repr(C)] 879 #[derive(Debug, Copy, Clone)] 880 pub struct kvm_lapic_state { 881 pub regs: [::std::os::raw::c_char; 1024usize], 882 } 883 impl Default for kvm_lapic_state { default() -> Self884 fn default() -> Self { 885 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 886 unsafe { 887 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 888 s.assume_init() 889 } 890 } 891 } 892 #[repr(C)] 893 #[derive(Debug, Default, Copy, Clone)] 894 pub struct kvm_segment { 895 pub base: u64, 896 pub limit: u32, 897 pub selector: u16, 898 pub type_: u8, 899 pub present: u8, 900 pub dpl: u8, 901 pub db: u8, 902 pub s: u8, 903 pub l: u8, 904 pub g: u8, 905 pub avl: u8, 906 pub unusable: u8, 907 pub padding: u8, 908 } 909 #[repr(C)] 910 #[derive(Debug, Default, Copy, Clone)] 911 pub struct kvm_dtable { 912 pub base: u64, 913 pub limit: u16, 914 pub padding: [u16; 3usize], 915 } 916 #[repr(C)] 917 #[derive(Debug, Default, Copy, Clone)] 918 pub struct kvm_sregs { 919 pub cs: kvm_segment, 920 pub ds: kvm_segment, 921 pub es: kvm_segment, 922 pub fs: kvm_segment, 923 pub gs: kvm_segment, 924 pub ss: kvm_segment, 925 pub tr: kvm_segment, 926 pub ldt: kvm_segment, 927 pub gdt: kvm_dtable, 928 pub idt: kvm_dtable, 929 pub cr0: u64, 930 pub cr2: u64, 931 pub cr3: u64, 932 pub cr4: u64, 933 pub cr8: u64, 934 pub efer: u64, 935 pub apic_base: u64, 936 pub interrupt_bitmap: [u64; 4usize], 937 } 938 #[repr(C)] 939 #[derive(Debug, Default, Copy, Clone)] 940 pub struct kvm_fpu { 941 pub fpr: [[u8; 16usize]; 8usize], 942 pub fcw: u16, 943 pub fsw: u16, 944 pub ftwx: u8, 945 pub pad1: u8, 946 pub last_opcode: u16, 947 pub last_ip: u64, 948 pub last_dp: u64, 949 pub xmm: [[u8; 16usize]; 16usize], 950 pub mxcsr: u32, 951 pub pad2: u32, 952 } 953 #[repr(C)] 954 #[derive(Debug, Default, Copy, Clone)] 955 pub struct kvm_msr_entry { 956 pub index: u32, 957 pub reserved: u32, 958 pub data: u64, 959 } 960 #[repr(C)] 961 #[derive(Debug, Default)] 962 pub struct kvm_msrs { 963 pub nmsrs: u32, 964 pub pad: u32, 965 pub entries: __IncompleteArrayField<kvm_msr_entry>, 966 } 967 #[repr(C)] 968 #[derive(Debug, Default)] 969 pub struct kvm_msr_list { 970 pub nmsrs: u32, 971 pub indices: __IncompleteArrayField<u32>, 972 } 973 #[repr(C)] 974 #[derive(Debug, Copy, Clone)] 975 pub struct kvm_msr_filter_range { 976 pub flags: u32, 977 pub nmsrs: u32, 978 pub base: u32, 979 pub bitmap: *mut u8, 980 } 981 impl Default for kvm_msr_filter_range { default() -> Self982 fn default() -> Self { 983 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 984 unsafe { 985 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 986 s.assume_init() 987 } 988 } 989 } 990 #[repr(C)] 991 #[derive(Debug, Copy, Clone)] 992 pub struct kvm_msr_filter { 993 pub flags: u32, 994 pub ranges: [kvm_msr_filter_range; 16usize], 995 } 996 impl Default for kvm_msr_filter { default() -> Self997 fn default() -> Self { 998 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 999 unsafe { 1000 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1001 s.assume_init() 1002 } 1003 } 1004 } 1005 #[repr(C)] 1006 #[derive(Debug, Default, Copy, Clone)] 1007 pub struct kvm_cpuid_entry { 1008 pub function: u32, 1009 pub eax: u32, 1010 pub ebx: u32, 1011 pub ecx: u32, 1012 pub edx: u32, 1013 pub padding: u32, 1014 } 1015 #[repr(C)] 1016 #[derive(Debug, Default)] 1017 pub struct kvm_cpuid { 1018 pub nent: u32, 1019 pub padding: u32, 1020 pub entries: __IncompleteArrayField<kvm_cpuid_entry>, 1021 } 1022 #[repr(C)] 1023 #[derive(Debug, Default, Copy, Clone)] 1024 pub struct kvm_cpuid_entry2 { 1025 pub function: u32, 1026 pub index: u32, 1027 pub flags: u32, 1028 pub eax: u32, 1029 pub ebx: u32, 1030 pub ecx: u32, 1031 pub edx: u32, 1032 pub padding: [u32; 3usize], 1033 } 1034 #[repr(C)] 1035 #[derive(Debug, Default)] 1036 pub struct kvm_cpuid2 { 1037 pub nent: u32, 1038 pub padding: u32, 1039 pub entries: __IncompleteArrayField<kvm_cpuid_entry2>, 1040 } 1041 #[repr(C)] 1042 #[derive(Debug, Default, Copy, Clone)] 1043 pub struct kvm_pit_channel_state { 1044 pub count: u32, 1045 pub latched_count: u16, 1046 pub count_latched: u8, 1047 pub status_latched: u8, 1048 pub status: u8, 1049 pub read_state: u8, 1050 pub write_state: u8, 1051 pub write_latch: u8, 1052 pub rw_mode: u8, 1053 pub mode: u8, 1054 pub bcd: u8, 1055 pub gate: u8, 1056 pub count_load_time: i64, 1057 } 1058 #[repr(C)] 1059 #[derive(Debug, Default, Copy, Clone)] 1060 pub struct kvm_debug_exit_arch { 1061 pub exception: u32, 1062 pub pad: u32, 1063 pub pc: u64, 1064 pub dr6: u64, 1065 pub dr7: u64, 1066 } 1067 #[repr(C)] 1068 #[derive(Debug, Default, Copy, Clone)] 1069 pub struct kvm_guest_debug_arch { 1070 pub debugreg: [u64; 8usize], 1071 } 1072 #[repr(C)] 1073 #[derive(Debug, Default, Copy, Clone)] 1074 pub struct kvm_pit_state { 1075 pub channels: [kvm_pit_channel_state; 3usize], 1076 } 1077 #[repr(C)] 1078 #[derive(Debug, Default, Copy, Clone)] 1079 pub struct kvm_pit_state2 { 1080 pub channels: [kvm_pit_channel_state; 3usize], 1081 pub flags: u32, 1082 pub reserved: [u32; 9usize], 1083 } 1084 #[repr(C)] 1085 #[derive(Debug, Default, Copy, Clone)] 1086 pub struct kvm_reinject_control { 1087 pub pit_reinject: u8, 1088 pub reserved: [u8; 31usize], 1089 } 1090 #[repr(C)] 1091 #[derive(Debug, Default, Copy, Clone)] 1092 pub struct kvm_vcpu_events { 1093 pub exception: kvm_vcpu_events__bindgen_ty_1, 1094 pub interrupt: kvm_vcpu_events__bindgen_ty_2, 1095 pub nmi: kvm_vcpu_events__bindgen_ty_3, 1096 pub sipi_vector: u32, 1097 pub flags: u32, 1098 pub smi: kvm_vcpu_events__bindgen_ty_4, 1099 pub reserved: [u8; 27usize], 1100 pub exception_has_payload: u8, 1101 pub exception_payload: u64, 1102 } 1103 #[repr(C)] 1104 #[derive(Debug, Default, Copy, Clone)] 1105 pub struct kvm_vcpu_events__bindgen_ty_1 { 1106 pub injected: u8, 1107 pub nr: u8, 1108 pub has_error_code: u8, 1109 pub pending: u8, 1110 pub error_code: u32, 1111 } 1112 #[repr(C)] 1113 #[derive(Debug, Default, Copy, Clone)] 1114 pub struct kvm_vcpu_events__bindgen_ty_2 { 1115 pub injected: u8, 1116 pub nr: u8, 1117 pub soft: u8, 1118 pub shadow: u8, 1119 } 1120 #[repr(C)] 1121 #[derive(Debug, Default, Copy, Clone)] 1122 pub struct kvm_vcpu_events__bindgen_ty_3 { 1123 pub injected: u8, 1124 pub pending: u8, 1125 pub masked: u8, 1126 pub pad: u8, 1127 } 1128 #[repr(C)] 1129 #[derive(Debug, Default, Copy, Clone)] 1130 pub struct kvm_vcpu_events__bindgen_ty_4 { 1131 pub smm: u8, 1132 pub pending: u8, 1133 pub smm_inside_nmi: u8, 1134 pub latched_init: u8, 1135 } 1136 #[repr(C)] 1137 #[derive(Debug, Default, Copy, Clone)] 1138 pub struct kvm_debugregs { 1139 pub db: [u64; 4usize], 1140 pub dr6: u64, 1141 pub dr7: u64, 1142 pub flags: u64, 1143 pub reserved: [u64; 9usize], 1144 } 1145 #[repr(C)] 1146 #[derive(Debug, Copy, Clone)] 1147 pub struct kvm_xsave { 1148 pub region: [u32; 1024usize], 1149 } 1150 impl Default for kvm_xsave { default() -> Self1151 fn default() -> Self { 1152 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1153 unsafe { 1154 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1155 s.assume_init() 1156 } 1157 } 1158 } 1159 #[repr(C)] 1160 #[derive(Debug, Default, Copy, Clone)] 1161 pub struct kvm_xcr { 1162 pub xcr: u32, 1163 pub reserved: u32, 1164 pub value: u64, 1165 } 1166 #[repr(C)] 1167 #[derive(Debug, Default, Copy, Clone)] 1168 pub struct kvm_xcrs { 1169 pub nr_xcrs: u32, 1170 pub flags: u32, 1171 pub xcrs: [kvm_xcr; 16usize], 1172 pub padding: [u64; 16usize], 1173 } 1174 #[repr(C)] 1175 #[derive(Debug, Default, Copy, Clone)] 1176 pub struct kvm_sync_regs { 1177 pub regs: kvm_regs, 1178 pub sregs: kvm_sregs, 1179 pub events: kvm_vcpu_events, 1180 } 1181 #[repr(C)] 1182 #[derive(Debug, Copy, Clone)] 1183 pub struct kvm_vmx_nested_state_data { 1184 pub vmcs12: [u8; 4096usize], 1185 pub shadow_vmcs12: [u8; 4096usize], 1186 } 1187 impl Default for kvm_vmx_nested_state_data { default() -> Self1188 fn default() -> Self { 1189 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1190 unsafe { 1191 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1192 s.assume_init() 1193 } 1194 } 1195 } 1196 #[repr(C)] 1197 #[derive(Debug, Default, Copy, Clone)] 1198 pub struct kvm_vmx_nested_state_hdr { 1199 pub vmxon_pa: u64, 1200 pub vmcs12_pa: u64, 1201 pub smm: kvm_vmx_nested_state_hdr__bindgen_ty_1, 1202 pub flags: u32, 1203 pub preemption_timer_deadline: u64, 1204 } 1205 #[repr(C)] 1206 #[derive(Debug, Default, Copy, Clone)] 1207 pub struct kvm_vmx_nested_state_hdr__bindgen_ty_1 { 1208 pub flags: u16, 1209 } 1210 #[repr(C)] 1211 #[derive(Debug, Copy, Clone)] 1212 pub struct kvm_svm_nested_state_data { 1213 pub vmcb12: [u8; 4096usize], 1214 } 1215 impl Default for kvm_svm_nested_state_data { default() -> Self1216 fn default() -> Self { 1217 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1218 unsafe { 1219 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1220 s.assume_init() 1221 } 1222 } 1223 } 1224 #[repr(C)] 1225 #[derive(Debug, Default, Copy, Clone)] 1226 pub struct kvm_svm_nested_state_hdr { 1227 pub vmcb_pa: u64, 1228 } 1229 #[repr(C)] 1230 pub struct kvm_nested_state { 1231 pub flags: u16, 1232 pub format: u16, 1233 pub size: u32, 1234 pub hdr: kvm_nested_state__bindgen_ty_1, 1235 pub data: kvm_nested_state__bindgen_ty_2, 1236 } 1237 #[repr(C)] 1238 #[derive(Copy, Clone)] 1239 pub union kvm_nested_state__bindgen_ty_1 { 1240 pub vmx: kvm_vmx_nested_state_hdr, 1241 pub svm: kvm_svm_nested_state_hdr, 1242 pub pad: [u8; 120usize], 1243 } 1244 impl Default for kvm_nested_state__bindgen_ty_1 { default() -> Self1245 fn default() -> Self { 1246 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1247 unsafe { 1248 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1249 s.assume_init() 1250 } 1251 } 1252 } 1253 #[repr(C)] 1254 pub struct kvm_nested_state__bindgen_ty_2 { 1255 pub vmx: __BindgenUnionField<[kvm_vmx_nested_state_data; 0usize]>, 1256 pub svm: __BindgenUnionField<[kvm_svm_nested_state_data; 0usize]>, 1257 pub bindgen_union_field: [u8; 0usize], 1258 } 1259 impl Default for kvm_nested_state__bindgen_ty_2 { default() -> Self1260 fn default() -> Self { 1261 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1262 unsafe { 1263 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1264 s.assume_init() 1265 } 1266 } 1267 } 1268 impl Default for kvm_nested_state { default() -> Self1269 fn default() -> Self { 1270 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1271 unsafe { 1272 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1273 s.assume_init() 1274 } 1275 } 1276 } 1277 #[repr(C)] 1278 #[derive(Debug, Default)] 1279 pub struct kvm_pmu_event_filter { 1280 pub action: u32, 1281 pub nevents: u32, 1282 pub fixed_counter_bitmap: u32, 1283 pub flags: u32, 1284 pub pad: [u32; 4usize], 1285 pub events: __IncompleteArrayField<u64>, 1286 } 1287 #[repr(C)] 1288 #[derive(Debug, Default, Copy, Clone)] 1289 pub struct kvm_user_trace_setup { 1290 pub buf_size: u32, 1291 pub buf_nr: u32, 1292 } 1293 #[repr(C)] 1294 #[derive(Debug, Default, Copy, Clone)] 1295 pub struct kvm_breakpoint { 1296 pub enabled: u32, 1297 pub padding: u32, 1298 pub address: u64, 1299 } 1300 #[repr(C)] 1301 #[derive(Debug, Default, Copy, Clone)] 1302 pub struct kvm_debug_guest { 1303 pub enabled: u32, 1304 pub pad: u32, 1305 pub breakpoints: [kvm_breakpoint; 4usize], 1306 pub singlestep: u32, 1307 } 1308 #[repr(C)] 1309 #[derive(Debug, Default, Copy, Clone)] 1310 pub struct kvm_memory_region { 1311 pub slot: u32, 1312 pub flags: u32, 1313 pub guest_phys_addr: u64, 1314 pub memory_size: u64, 1315 } 1316 #[repr(C)] 1317 #[derive(Debug, Default, Copy, Clone)] 1318 pub struct kvm_userspace_memory_region { 1319 pub slot: u32, 1320 pub flags: u32, 1321 pub guest_phys_addr: u64, 1322 pub memory_size: u64, 1323 pub userspace_addr: u64, 1324 } 1325 #[repr(C)] 1326 #[derive(Copy, Clone)] 1327 pub struct kvm_irq_level { 1328 pub __bindgen_anon_1: kvm_irq_level__bindgen_ty_1, 1329 pub level: u32, 1330 } 1331 #[repr(C)] 1332 #[derive(Copy, Clone)] 1333 pub union kvm_irq_level__bindgen_ty_1 { 1334 pub irq: u32, 1335 pub status: i32, 1336 } 1337 impl Default for kvm_irq_level__bindgen_ty_1 { 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 impl Default for kvm_irq_level { default() -> Self1347 fn default() -> Self { 1348 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1349 unsafe { 1350 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1351 s.assume_init() 1352 } 1353 } 1354 } 1355 #[repr(C)] 1356 #[derive(Copy, Clone)] 1357 pub struct kvm_irqchip { 1358 pub chip_id: u32, 1359 pub pad: u32, 1360 pub chip: kvm_irqchip__bindgen_ty_1, 1361 } 1362 #[repr(C)] 1363 #[derive(Copy, Clone)] 1364 pub union kvm_irqchip__bindgen_ty_1 { 1365 pub dummy: [::std::os::raw::c_char; 512usize], 1366 pub pic: kvm_pic_state, 1367 pub ioapic: kvm_ioapic_state, 1368 } 1369 impl Default for kvm_irqchip__bindgen_ty_1 { default() -> Self1370 fn default() -> Self { 1371 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1372 unsafe { 1373 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1374 s.assume_init() 1375 } 1376 } 1377 } 1378 impl Default for kvm_irqchip { default() -> Self1379 fn default() -> Self { 1380 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1381 unsafe { 1382 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1383 s.assume_init() 1384 } 1385 } 1386 } 1387 #[repr(C)] 1388 #[derive(Debug, Default, Copy, Clone)] 1389 pub struct kvm_pit_config { 1390 pub flags: u32, 1391 pub pad: [u32; 15usize], 1392 } 1393 #[repr(C)] 1394 #[derive(Debug, Default, Copy, Clone)] 1395 pub struct kvm_s390_skeys { 1396 pub start_gfn: u64, 1397 pub count: u64, 1398 pub skeydata_addr: u64, 1399 pub flags: u32, 1400 pub reserved: [u32; 9usize], 1401 } 1402 #[repr(C)] 1403 #[derive(Copy, Clone)] 1404 pub struct kvm_s390_cmma_log { 1405 pub start_gfn: u64, 1406 pub count: u32, 1407 pub flags: u32, 1408 pub __bindgen_anon_1: kvm_s390_cmma_log__bindgen_ty_1, 1409 pub values: u64, 1410 } 1411 #[repr(C)] 1412 #[derive(Copy, Clone)] 1413 pub union kvm_s390_cmma_log__bindgen_ty_1 { 1414 pub remaining: u64, 1415 pub mask: u64, 1416 } 1417 impl Default for kvm_s390_cmma_log__bindgen_ty_1 { default() -> Self1418 fn default() -> Self { 1419 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1420 unsafe { 1421 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1422 s.assume_init() 1423 } 1424 } 1425 } 1426 impl Default for kvm_s390_cmma_log { default() -> Self1427 fn default() -> Self { 1428 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1429 unsafe { 1430 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1431 s.assume_init() 1432 } 1433 } 1434 } 1435 #[repr(C)] 1436 #[derive(Copy, Clone)] 1437 pub struct kvm_hyperv_exit { 1438 pub type_: u32, 1439 pub pad1: u32, 1440 pub u: kvm_hyperv_exit__bindgen_ty_1, 1441 } 1442 #[repr(C)] 1443 #[derive(Copy, Clone)] 1444 pub union kvm_hyperv_exit__bindgen_ty_1 { 1445 pub synic: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1, 1446 pub hcall: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_2, 1447 pub syndbg: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3, 1448 } 1449 #[repr(C)] 1450 #[derive(Debug, Default, Copy, Clone)] 1451 pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1 { 1452 pub msr: u32, 1453 pub pad2: u32, 1454 pub control: u64, 1455 pub evt_page: u64, 1456 pub msg_page: u64, 1457 } 1458 #[repr(C)] 1459 #[derive(Debug, Default, Copy, Clone)] 1460 pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_2 { 1461 pub input: u64, 1462 pub result: u64, 1463 pub params: [u64; 2usize], 1464 } 1465 #[repr(C)] 1466 #[derive(Debug, Default, Copy, Clone)] 1467 pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3 { 1468 pub msr: u32, 1469 pub pad2: u32, 1470 pub control: u64, 1471 pub status: u64, 1472 pub send_page: u64, 1473 pub recv_page: u64, 1474 pub pending_page: u64, 1475 } 1476 impl Default for kvm_hyperv_exit__bindgen_ty_1 { default() -> Self1477 fn default() -> Self { 1478 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1479 unsafe { 1480 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1481 s.assume_init() 1482 } 1483 } 1484 } 1485 impl Default for kvm_hyperv_exit { default() -> Self1486 fn default() -> Self { 1487 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1488 unsafe { 1489 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1490 s.assume_init() 1491 } 1492 } 1493 } 1494 #[repr(C)] 1495 #[derive(Copy, Clone)] 1496 pub struct kvm_run { 1497 pub request_interrupt_window: u8, 1498 pub immediate_exit: u8, 1499 pub padding1: [u8; 6usize], 1500 pub exit_reason: u32, 1501 pub ready_for_interrupt_injection: u8, 1502 pub if_flag: u8, 1503 pub flags: u16, 1504 pub cr8: u64, 1505 pub apic_base: u64, 1506 pub __bindgen_anon_1: kvm_run__bindgen_ty_1, 1507 pub kvm_valid_regs: u64, 1508 pub kvm_dirty_regs: u64, 1509 pub s: kvm_run__bindgen_ty_2, 1510 } 1511 #[repr(C)] 1512 #[derive(Copy, Clone)] 1513 pub union kvm_run__bindgen_ty_1 { 1514 pub hw: kvm_run__bindgen_ty_1__bindgen_ty_1, 1515 pub fail_entry: kvm_run__bindgen_ty_1__bindgen_ty_2, 1516 pub ex: kvm_run__bindgen_ty_1__bindgen_ty_3, 1517 pub io: kvm_run__bindgen_ty_1__bindgen_ty_4, 1518 pub debug: kvm_run__bindgen_ty_1__bindgen_ty_5, 1519 pub mmio: kvm_run__bindgen_ty_1__bindgen_ty_6, 1520 pub hypercall: kvm_run__bindgen_ty_1__bindgen_ty_7, 1521 pub tpr_access: kvm_run__bindgen_ty_1__bindgen_ty_8, 1522 pub s390_sieic: kvm_run__bindgen_ty_1__bindgen_ty_9, 1523 pub s390_reset_flags: u64, 1524 pub s390_ucontrol: kvm_run__bindgen_ty_1__bindgen_ty_10, 1525 pub dcr: kvm_run__bindgen_ty_1__bindgen_ty_11, 1526 pub internal: kvm_run__bindgen_ty_1__bindgen_ty_12, 1527 pub osi: kvm_run__bindgen_ty_1__bindgen_ty_13, 1528 pub papr_hcall: kvm_run__bindgen_ty_1__bindgen_ty_14, 1529 pub s390_tsch: kvm_run__bindgen_ty_1__bindgen_ty_15, 1530 pub epr: kvm_run__bindgen_ty_1__bindgen_ty_16, 1531 pub system_event: kvm_run__bindgen_ty_1__bindgen_ty_17, 1532 pub s390_stsi: kvm_run__bindgen_ty_1__bindgen_ty_18, 1533 pub eoi: kvm_run__bindgen_ty_1__bindgen_ty_19, 1534 pub hyperv: kvm_hyperv_exit, 1535 pub arm_nisv: kvm_run__bindgen_ty_1__bindgen_ty_20, 1536 pub msr: kvm_run__bindgen_ty_1__bindgen_ty_21, 1537 pub padding: [::std::os::raw::c_char; 256usize], 1538 } 1539 #[repr(C)] 1540 #[derive(Debug, Default, Copy, Clone)] 1541 pub struct kvm_run__bindgen_ty_1__bindgen_ty_1 { 1542 pub hardware_exit_reason: u64, 1543 } 1544 #[repr(C)] 1545 #[derive(Debug, Default, Copy, Clone)] 1546 pub struct kvm_run__bindgen_ty_1__bindgen_ty_2 { 1547 pub hardware_entry_failure_reason: u64, 1548 pub cpu: u32, 1549 } 1550 #[repr(C)] 1551 #[derive(Debug, Default, Copy, Clone)] 1552 pub struct kvm_run__bindgen_ty_1__bindgen_ty_3 { 1553 pub exception: u32, 1554 pub error_code: u32, 1555 } 1556 #[repr(C)] 1557 #[derive(Debug, Default, Copy, Clone)] 1558 pub struct kvm_run__bindgen_ty_1__bindgen_ty_4 { 1559 pub direction: u8, 1560 pub size: u8, 1561 pub port: u16, 1562 pub count: u32, 1563 pub data_offset: u64, 1564 } 1565 #[repr(C)] 1566 #[derive(Debug, Default, Copy, Clone)] 1567 pub struct kvm_run__bindgen_ty_1__bindgen_ty_5 { 1568 pub arch: kvm_debug_exit_arch, 1569 } 1570 #[repr(C)] 1571 #[derive(Debug, Default, Copy, Clone)] 1572 pub struct kvm_run__bindgen_ty_1__bindgen_ty_6 { 1573 pub phys_addr: u64, 1574 pub data: [u8; 8usize], 1575 pub len: u32, 1576 pub is_write: u8, 1577 } 1578 #[repr(C)] 1579 #[derive(Debug, Default, Copy, Clone)] 1580 pub struct kvm_run__bindgen_ty_1__bindgen_ty_7 { 1581 pub nr: u64, 1582 pub args: [u64; 6usize], 1583 pub ret: u64, 1584 pub longmode: u32, 1585 pub pad: u32, 1586 } 1587 #[repr(C)] 1588 #[derive(Debug, Default, Copy, Clone)] 1589 pub struct kvm_run__bindgen_ty_1__bindgen_ty_8 { 1590 pub rip: u64, 1591 pub is_write: u32, 1592 pub pad: u32, 1593 } 1594 #[repr(C)] 1595 #[derive(Debug, Default, Copy, Clone)] 1596 pub struct kvm_run__bindgen_ty_1__bindgen_ty_9 { 1597 pub icptcode: u8, 1598 pub ipa: u16, 1599 pub ipb: u32, 1600 } 1601 #[repr(C)] 1602 #[derive(Debug, Default, Copy, Clone)] 1603 pub struct kvm_run__bindgen_ty_1__bindgen_ty_10 { 1604 pub trans_exc_code: u64, 1605 pub pgm_code: u32, 1606 } 1607 #[repr(C)] 1608 #[derive(Debug, Default, Copy, Clone)] 1609 pub struct kvm_run__bindgen_ty_1__bindgen_ty_11 { 1610 pub dcrn: u32, 1611 pub data: u32, 1612 pub is_write: u8, 1613 } 1614 #[repr(C)] 1615 #[derive(Debug, Default, Copy, Clone)] 1616 pub struct kvm_run__bindgen_ty_1__bindgen_ty_12 { 1617 pub suberror: u32, 1618 pub ndata: u32, 1619 pub data: [u64; 16usize], 1620 } 1621 #[repr(C)] 1622 #[derive(Debug, Default, Copy, Clone)] 1623 pub struct kvm_run__bindgen_ty_1__bindgen_ty_13 { 1624 pub gprs: [u64; 32usize], 1625 } 1626 #[repr(C)] 1627 #[derive(Debug, Default, Copy, Clone)] 1628 pub struct kvm_run__bindgen_ty_1__bindgen_ty_14 { 1629 pub nr: u64, 1630 pub ret: u64, 1631 pub args: [u64; 9usize], 1632 } 1633 #[repr(C)] 1634 #[derive(Debug, Default, Copy, Clone)] 1635 pub struct kvm_run__bindgen_ty_1__bindgen_ty_15 { 1636 pub subchannel_id: u16, 1637 pub subchannel_nr: u16, 1638 pub io_int_parm: u32, 1639 pub io_int_word: u32, 1640 pub ipb: u32, 1641 pub dequeued: u8, 1642 } 1643 #[repr(C)] 1644 #[derive(Debug, Default, Copy, Clone)] 1645 pub struct kvm_run__bindgen_ty_1__bindgen_ty_16 { 1646 pub epr: u32, 1647 } 1648 #[repr(C)] 1649 #[derive(Debug, Default, Copy, Clone)] 1650 pub struct kvm_run__bindgen_ty_1__bindgen_ty_17 { 1651 pub type_: u32, 1652 pub flags: u64, 1653 } 1654 #[repr(C)] 1655 #[derive(Debug, Default, Copy, Clone)] 1656 pub struct kvm_run__bindgen_ty_1__bindgen_ty_18 { 1657 pub addr: u64, 1658 pub ar: u8, 1659 pub reserved: u8, 1660 pub fc: u8, 1661 pub sel1: u8, 1662 pub sel2: u16, 1663 } 1664 #[repr(C)] 1665 #[derive(Debug, Default, Copy, Clone)] 1666 pub struct kvm_run__bindgen_ty_1__bindgen_ty_19 { 1667 pub vector: u8, 1668 } 1669 #[repr(C)] 1670 #[derive(Debug, Default, Copy, Clone)] 1671 pub struct kvm_run__bindgen_ty_1__bindgen_ty_20 { 1672 pub esr_iss: u64, 1673 pub fault_ipa: u64, 1674 } 1675 #[repr(C)] 1676 #[derive(Debug, Default, Copy, Clone)] 1677 pub struct kvm_run__bindgen_ty_1__bindgen_ty_21 { 1678 pub error: u8, 1679 pub pad: [u8; 7usize], 1680 pub reason: u32, 1681 pub index: u32, 1682 pub data: u64, 1683 } 1684 impl Default for kvm_run__bindgen_ty_1 { default() -> Self1685 fn default() -> Self { 1686 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1687 unsafe { 1688 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1689 s.assume_init() 1690 } 1691 } 1692 } 1693 #[repr(C)] 1694 #[derive(Copy, Clone)] 1695 pub union kvm_run__bindgen_ty_2 { 1696 pub regs: kvm_sync_regs, 1697 pub padding: [::std::os::raw::c_char; 2048usize], 1698 } 1699 impl Default for kvm_run__bindgen_ty_2 { default() -> Self1700 fn default() -> Self { 1701 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1702 unsafe { 1703 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1704 s.assume_init() 1705 } 1706 } 1707 } 1708 impl Default for kvm_run { default() -> Self1709 fn default() -> Self { 1710 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1711 unsafe { 1712 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1713 s.assume_init() 1714 } 1715 } 1716 } 1717 #[repr(C)] 1718 #[derive(Copy, Clone)] 1719 pub struct kvm_coalesced_mmio_zone { 1720 pub addr: u64, 1721 pub size: u32, 1722 pub __bindgen_anon_1: kvm_coalesced_mmio_zone__bindgen_ty_1, 1723 } 1724 #[repr(C)] 1725 #[derive(Copy, Clone)] 1726 pub union kvm_coalesced_mmio_zone__bindgen_ty_1 { 1727 pub pad: u32, 1728 pub pio: u32, 1729 } 1730 impl Default for kvm_coalesced_mmio_zone__bindgen_ty_1 { default() -> Self1731 fn default() -> Self { 1732 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1733 unsafe { 1734 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1735 s.assume_init() 1736 } 1737 } 1738 } 1739 impl Default for kvm_coalesced_mmio_zone { default() -> Self1740 fn default() -> Self { 1741 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1742 unsafe { 1743 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1744 s.assume_init() 1745 } 1746 } 1747 } 1748 #[repr(C)] 1749 #[derive(Copy, Clone)] 1750 pub struct kvm_coalesced_mmio { 1751 pub phys_addr: u64, 1752 pub len: u32, 1753 pub __bindgen_anon_1: kvm_coalesced_mmio__bindgen_ty_1, 1754 pub data: [u8; 8usize], 1755 } 1756 #[repr(C)] 1757 #[derive(Copy, Clone)] 1758 pub union kvm_coalesced_mmio__bindgen_ty_1 { 1759 pub pad: u32, 1760 pub pio: u32, 1761 } 1762 impl Default for kvm_coalesced_mmio__bindgen_ty_1 { default() -> Self1763 fn default() -> Self { 1764 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1765 unsafe { 1766 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1767 s.assume_init() 1768 } 1769 } 1770 } 1771 impl Default for kvm_coalesced_mmio { default() -> Self1772 fn default() -> Self { 1773 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1774 unsafe { 1775 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1776 s.assume_init() 1777 } 1778 } 1779 } 1780 #[repr(C)] 1781 pub struct kvm_coalesced_mmio_ring { 1782 pub first: u32, 1783 pub last: u32, 1784 pub coalesced_mmio: __IncompleteArrayField<kvm_coalesced_mmio>, 1785 } 1786 impl Default for kvm_coalesced_mmio_ring { default() -> Self1787 fn default() -> Self { 1788 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1789 unsafe { 1790 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1791 s.assume_init() 1792 } 1793 } 1794 } 1795 #[repr(C)] 1796 #[derive(Debug, Default, Copy, Clone)] 1797 pub struct kvm_translation { 1798 pub linear_address: u64, 1799 pub physical_address: u64, 1800 pub valid: u8, 1801 pub writeable: u8, 1802 pub usermode: u8, 1803 pub pad: [u8; 5usize], 1804 } 1805 #[repr(C)] 1806 #[derive(Copy, Clone)] 1807 pub struct kvm_s390_mem_op { 1808 pub gaddr: u64, 1809 pub flags: u64, 1810 pub size: u32, 1811 pub op: u32, 1812 pub buf: u64, 1813 pub __bindgen_anon_1: kvm_s390_mem_op__bindgen_ty_1, 1814 } 1815 #[repr(C)] 1816 #[derive(Copy, Clone)] 1817 pub union kvm_s390_mem_op__bindgen_ty_1 { 1818 pub ar: u8, 1819 pub sida_offset: u32, 1820 pub reserved: [u8; 32usize], 1821 } 1822 impl Default for kvm_s390_mem_op__bindgen_ty_1 { default() -> Self1823 fn default() -> Self { 1824 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1825 unsafe { 1826 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1827 s.assume_init() 1828 } 1829 } 1830 } 1831 impl Default for kvm_s390_mem_op { default() -> Self1832 fn default() -> Self { 1833 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1834 unsafe { 1835 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1836 s.assume_init() 1837 } 1838 } 1839 } 1840 #[repr(C)] 1841 #[derive(Debug, Default, Copy, Clone)] 1842 pub struct kvm_interrupt { 1843 pub irq: u32, 1844 } 1845 #[repr(C)] 1846 #[derive(Copy, Clone)] 1847 pub struct kvm_dirty_log { 1848 pub slot: u32, 1849 pub padding1: u32, 1850 pub __bindgen_anon_1: kvm_dirty_log__bindgen_ty_1, 1851 } 1852 #[repr(C)] 1853 #[derive(Copy, Clone)] 1854 pub union kvm_dirty_log__bindgen_ty_1 { 1855 pub dirty_bitmap: *mut ::std::os::raw::c_void, 1856 pub padding2: u64, 1857 } 1858 impl Default for kvm_dirty_log__bindgen_ty_1 { default() -> Self1859 fn default() -> Self { 1860 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1861 unsafe { 1862 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1863 s.assume_init() 1864 } 1865 } 1866 } 1867 impl Default for kvm_dirty_log { default() -> Self1868 fn default() -> Self { 1869 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1870 unsafe { 1871 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1872 s.assume_init() 1873 } 1874 } 1875 } 1876 #[repr(C)] 1877 #[derive(Copy, Clone)] 1878 pub struct kvm_clear_dirty_log { 1879 pub slot: u32, 1880 pub num_pages: u32, 1881 pub first_page: u64, 1882 pub __bindgen_anon_1: kvm_clear_dirty_log__bindgen_ty_1, 1883 } 1884 #[repr(C)] 1885 #[derive(Copy, Clone)] 1886 pub union kvm_clear_dirty_log__bindgen_ty_1 { 1887 pub dirty_bitmap: *mut ::std::os::raw::c_void, 1888 pub padding2: u64, 1889 } 1890 impl Default for kvm_clear_dirty_log__bindgen_ty_1 { default() -> Self1891 fn default() -> Self { 1892 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1893 unsafe { 1894 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1895 s.assume_init() 1896 } 1897 } 1898 } 1899 impl Default for kvm_clear_dirty_log { default() -> Self1900 fn default() -> Self { 1901 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 1902 unsafe { 1903 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 1904 s.assume_init() 1905 } 1906 } 1907 } 1908 #[repr(C)] 1909 #[derive(Debug, Default)] 1910 pub struct kvm_signal_mask { 1911 pub len: u32, 1912 pub sigset: __IncompleteArrayField<u8>, 1913 } 1914 #[repr(C)] 1915 #[derive(Debug, Default, Copy, Clone)] 1916 pub struct kvm_tpr_access_ctl { 1917 pub enabled: u32, 1918 pub flags: u32, 1919 pub reserved: [u32; 8usize], 1920 } 1921 #[repr(C)] 1922 #[derive(Debug, Default, Copy, Clone)] 1923 pub struct kvm_vapic_addr { 1924 pub vapic_addr: u64, 1925 } 1926 #[repr(C)] 1927 #[derive(Debug, Default, Copy, Clone)] 1928 pub struct kvm_mp_state { 1929 pub mp_state: u32, 1930 } 1931 #[repr(C)] 1932 #[derive(Debug, Default, Copy, Clone)] 1933 pub struct kvm_s390_psw { 1934 pub mask: u64, 1935 pub addr: u64, 1936 } 1937 #[repr(C)] 1938 #[derive(Debug, Default, Copy, Clone)] 1939 pub struct kvm_s390_interrupt { 1940 pub type_: u32, 1941 pub parm: u32, 1942 pub parm64: u64, 1943 } 1944 #[repr(C)] 1945 #[derive(Debug, Default, Copy, Clone)] 1946 pub struct kvm_s390_io_info { 1947 pub subchannel_id: u16, 1948 pub subchannel_nr: u16, 1949 pub io_int_parm: u32, 1950 pub io_int_word: u32, 1951 } 1952 #[repr(C)] 1953 #[derive(Debug, Default, Copy, Clone)] 1954 pub struct kvm_s390_ext_info { 1955 pub ext_params: u32, 1956 pub pad: u32, 1957 pub ext_params2: u64, 1958 } 1959 #[repr(C)] 1960 #[derive(Debug, Default, Copy, Clone)] 1961 pub struct kvm_s390_pgm_info { 1962 pub trans_exc_code: u64, 1963 pub mon_code: u64, 1964 pub per_address: u64, 1965 pub data_exc_code: u32, 1966 pub code: u16, 1967 pub mon_class_nr: u16, 1968 pub per_code: u8, 1969 pub per_atmid: u8, 1970 pub exc_access_id: u8, 1971 pub per_access_id: u8, 1972 pub op_access_id: u8, 1973 pub flags: u8, 1974 pub pad: [u8; 2usize], 1975 } 1976 #[repr(C)] 1977 #[derive(Debug, Default, Copy, Clone)] 1978 pub struct kvm_s390_prefix_info { 1979 pub address: u32, 1980 } 1981 #[repr(C)] 1982 #[derive(Debug, Default, Copy, Clone)] 1983 pub struct kvm_s390_extcall_info { 1984 pub code: u16, 1985 } 1986 #[repr(C)] 1987 #[derive(Debug, Default, Copy, Clone)] 1988 pub struct kvm_s390_emerg_info { 1989 pub code: u16, 1990 } 1991 #[repr(C)] 1992 #[derive(Debug, Default, Copy, Clone)] 1993 pub struct kvm_s390_stop_info { 1994 pub flags: u32, 1995 } 1996 #[repr(C)] 1997 #[derive(Debug, Default, Copy, Clone)] 1998 pub struct kvm_s390_mchk_info { 1999 pub cr14: u64, 2000 pub mcic: u64, 2001 pub failing_storage_address: u64, 2002 pub ext_damage_code: u32, 2003 pub pad: u32, 2004 pub fixed_logout: [u8; 16usize], 2005 } 2006 #[repr(C)] 2007 #[derive(Copy, Clone)] 2008 pub struct kvm_s390_irq { 2009 pub type_: u64, 2010 pub u: kvm_s390_irq__bindgen_ty_1, 2011 } 2012 #[repr(C)] 2013 #[derive(Copy, Clone)] 2014 pub union kvm_s390_irq__bindgen_ty_1 { 2015 pub io: kvm_s390_io_info, 2016 pub ext: kvm_s390_ext_info, 2017 pub pgm: kvm_s390_pgm_info, 2018 pub emerg: kvm_s390_emerg_info, 2019 pub extcall: kvm_s390_extcall_info, 2020 pub prefix: kvm_s390_prefix_info, 2021 pub stop: kvm_s390_stop_info, 2022 pub mchk: kvm_s390_mchk_info, 2023 pub reserved: [::std::os::raw::c_char; 64usize], 2024 } 2025 impl Default for kvm_s390_irq__bindgen_ty_1 { default() -> Self2026 fn default() -> Self { 2027 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2028 unsafe { 2029 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2030 s.assume_init() 2031 } 2032 } 2033 } 2034 impl Default for kvm_s390_irq { default() -> Self2035 fn default() -> Self { 2036 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2037 unsafe { 2038 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2039 s.assume_init() 2040 } 2041 } 2042 } 2043 #[repr(C)] 2044 #[derive(Debug, Default, Copy, Clone)] 2045 pub struct kvm_s390_irq_state { 2046 pub buf: u64, 2047 pub flags: u32, 2048 pub len: u32, 2049 pub reserved: [u32; 4usize], 2050 } 2051 #[repr(C)] 2052 #[derive(Debug, Default, Copy, Clone)] 2053 pub struct kvm_guest_debug { 2054 pub control: u32, 2055 pub pad: u32, 2056 pub arch: kvm_guest_debug_arch, 2057 } 2058 pub const kvm_ioeventfd_flag_nr_datamatch: ::std::os::raw::c_uint = 0; 2059 pub const kvm_ioeventfd_flag_nr_pio: ::std::os::raw::c_uint = 1; 2060 pub const kvm_ioeventfd_flag_nr_deassign: ::std::os::raw::c_uint = 2; 2061 pub const kvm_ioeventfd_flag_nr_virtio_ccw_notify: ::std::os::raw::c_uint = 3; 2062 pub const kvm_ioeventfd_flag_nr_fast_mmio: ::std::os::raw::c_uint = 4; 2063 pub const kvm_ioeventfd_flag_nr_max: ::std::os::raw::c_uint = 5; 2064 pub type _bindgen_ty_1 = ::std::os::raw::c_uint; 2065 #[repr(C)] 2066 #[derive(Debug, Copy, Clone)] 2067 pub struct kvm_ioeventfd { 2068 pub datamatch: u64, 2069 pub addr: u64, 2070 pub len: u32, 2071 pub fd: i32, 2072 pub flags: u32, 2073 pub pad: [u8; 36usize], 2074 } 2075 impl Default for kvm_ioeventfd { default() -> Self2076 fn default() -> Self { 2077 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2078 unsafe { 2079 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2080 s.assume_init() 2081 } 2082 } 2083 } 2084 #[repr(C)] 2085 #[derive(Debug, Copy, Clone)] 2086 pub struct kvm_enable_cap { 2087 pub cap: u32, 2088 pub flags: u32, 2089 pub args: [u64; 4usize], 2090 pub pad: [u8; 64usize], 2091 } 2092 impl Default for kvm_enable_cap { default() -> Self2093 fn default() -> Self { 2094 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2095 unsafe { 2096 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2097 s.assume_init() 2098 } 2099 } 2100 } 2101 #[repr(C)] 2102 #[derive(Debug, Copy, Clone)] 2103 pub struct kvm_ppc_pvinfo { 2104 pub flags: u32, 2105 pub hcall: [u32; 4usize], 2106 pub pad: [u8; 108usize], 2107 } 2108 impl Default for kvm_ppc_pvinfo { default() -> Self2109 fn default() -> Self { 2110 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2111 unsafe { 2112 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2113 s.assume_init() 2114 } 2115 } 2116 } 2117 #[repr(C)] 2118 #[derive(Debug, Default, Copy, Clone)] 2119 pub struct kvm_ppc_one_page_size { 2120 pub page_shift: u32, 2121 pub pte_enc: u32, 2122 } 2123 #[repr(C)] 2124 #[derive(Debug, Default, Copy, Clone)] 2125 pub struct kvm_ppc_one_seg_page_size { 2126 pub page_shift: u32, 2127 pub slb_enc: u32, 2128 pub enc: [kvm_ppc_one_page_size; 8usize], 2129 } 2130 #[repr(C)] 2131 #[derive(Debug, Default, Copy, Clone)] 2132 pub struct kvm_ppc_smmu_info { 2133 pub flags: u64, 2134 pub slb_size: u32, 2135 pub data_keys: u16, 2136 pub instr_keys: u16, 2137 pub sps: [kvm_ppc_one_seg_page_size; 8usize], 2138 } 2139 #[repr(C)] 2140 #[derive(Debug, Default, Copy, Clone)] 2141 pub struct kvm_ppc_resize_hpt { 2142 pub flags: u64, 2143 pub shift: u32, 2144 pub pad: u32, 2145 } 2146 #[repr(C)] 2147 #[derive(Debug, Default, Copy, Clone)] 2148 pub struct kvm_irq_routing_irqchip { 2149 pub irqchip: u32, 2150 pub pin: u32, 2151 } 2152 #[repr(C)] 2153 #[derive(Copy, Clone)] 2154 pub struct kvm_irq_routing_msi { 2155 pub address_lo: u32, 2156 pub address_hi: u32, 2157 pub data: u32, 2158 pub __bindgen_anon_1: kvm_irq_routing_msi__bindgen_ty_1, 2159 } 2160 #[repr(C)] 2161 #[derive(Copy, Clone)] 2162 pub union kvm_irq_routing_msi__bindgen_ty_1 { 2163 pub pad: u32, 2164 pub devid: u32, 2165 } 2166 impl Default for kvm_irq_routing_msi__bindgen_ty_1 { default() -> Self2167 fn default() -> Self { 2168 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2169 unsafe { 2170 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2171 s.assume_init() 2172 } 2173 } 2174 } 2175 impl Default for kvm_irq_routing_msi { default() -> Self2176 fn default() -> Self { 2177 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2178 unsafe { 2179 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2180 s.assume_init() 2181 } 2182 } 2183 } 2184 #[repr(C)] 2185 #[derive(Debug, Default, Copy, Clone)] 2186 pub struct kvm_irq_routing_s390_adapter { 2187 pub ind_addr: u64, 2188 pub summary_addr: u64, 2189 pub ind_offset: u64, 2190 pub summary_offset: u32, 2191 pub adapter_id: u32, 2192 } 2193 #[repr(C)] 2194 #[derive(Debug, Default, Copy, Clone)] 2195 pub struct kvm_irq_routing_hv_sint { 2196 pub vcpu: u32, 2197 pub sint: u32, 2198 } 2199 #[repr(C)] 2200 #[derive(Copy, Clone)] 2201 pub struct kvm_irq_routing_entry { 2202 pub gsi: u32, 2203 pub type_: u32, 2204 pub flags: u32, 2205 pub pad: u32, 2206 pub u: kvm_irq_routing_entry__bindgen_ty_1, 2207 } 2208 #[repr(C)] 2209 #[derive(Copy, Clone)] 2210 pub union kvm_irq_routing_entry__bindgen_ty_1 { 2211 pub irqchip: kvm_irq_routing_irqchip, 2212 pub msi: kvm_irq_routing_msi, 2213 pub adapter: kvm_irq_routing_s390_adapter, 2214 pub hv_sint: kvm_irq_routing_hv_sint, 2215 pub pad: [u32; 8usize], 2216 } 2217 impl Default for kvm_irq_routing_entry__bindgen_ty_1 { default() -> Self2218 fn default() -> Self { 2219 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2220 unsafe { 2221 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2222 s.assume_init() 2223 } 2224 } 2225 } 2226 impl Default for kvm_irq_routing_entry { default() -> Self2227 fn default() -> Self { 2228 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2229 unsafe { 2230 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2231 s.assume_init() 2232 } 2233 } 2234 } 2235 #[repr(C)] 2236 pub struct kvm_irq_routing { 2237 pub nr: u32, 2238 pub flags: u32, 2239 pub entries: __IncompleteArrayField<kvm_irq_routing_entry>, 2240 } 2241 impl Default for kvm_irq_routing { default() -> Self2242 fn default() -> Self { 2243 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2244 unsafe { 2245 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2246 s.assume_init() 2247 } 2248 } 2249 } 2250 #[repr(C)] 2251 #[derive(Debug, Default, Copy, Clone)] 2252 pub struct kvm_x86_mce { 2253 pub status: u64, 2254 pub addr: u64, 2255 pub misc: u64, 2256 pub mcg_status: u64, 2257 pub bank: u8, 2258 pub pad1: [u8; 7usize], 2259 pub pad2: [u64; 3usize], 2260 } 2261 #[repr(C)] 2262 #[derive(Debug, Default, Copy, Clone)] 2263 pub struct kvm_xen_hvm_config { 2264 pub flags: u32, 2265 pub msr: u32, 2266 pub blob_addr_32: u64, 2267 pub blob_addr_64: u64, 2268 pub blob_size_32: u8, 2269 pub blob_size_64: u8, 2270 pub pad2: [u8; 30usize], 2271 } 2272 #[repr(C)] 2273 #[derive(Debug, Default, Copy, Clone)] 2274 pub struct kvm_irqfd { 2275 pub fd: u32, 2276 pub gsi: u32, 2277 pub flags: u32, 2278 pub resamplefd: u32, 2279 pub pad: [u8; 16usize], 2280 } 2281 #[repr(C)] 2282 #[derive(Debug, Default, Copy, Clone)] 2283 pub struct kvm_clock_data { 2284 pub clock: u64, 2285 pub flags: u32, 2286 pub pad: [u32; 9usize], 2287 } 2288 #[repr(C)] 2289 #[derive(Debug, Default, Copy, Clone)] 2290 pub struct kvm_config_tlb { 2291 pub params: u64, 2292 pub array: u64, 2293 pub mmu_type: u32, 2294 pub array_len: u32, 2295 } 2296 #[repr(C)] 2297 #[derive(Debug, Default, Copy, Clone)] 2298 pub struct kvm_dirty_tlb { 2299 pub bitmap: u64, 2300 pub num_dirty: u32, 2301 } 2302 #[repr(C)] 2303 #[derive(Debug, Default)] 2304 pub struct kvm_reg_list { 2305 pub n: u64, 2306 pub reg: __IncompleteArrayField<u64>, 2307 } 2308 #[repr(C)] 2309 #[derive(Debug, Default, Copy, Clone)] 2310 pub struct kvm_one_reg { 2311 pub id: u64, 2312 pub addr: u64, 2313 } 2314 #[repr(C)] 2315 #[derive(Debug, Default, Copy, Clone)] 2316 pub struct kvm_msi { 2317 pub address_lo: u32, 2318 pub address_hi: u32, 2319 pub data: u32, 2320 pub flags: u32, 2321 pub devid: u32, 2322 pub pad: [u8; 12usize], 2323 } 2324 #[repr(C)] 2325 #[derive(Debug, Default, Copy, Clone)] 2326 pub struct kvm_arm_device_addr { 2327 pub id: u64, 2328 pub addr: u64, 2329 } 2330 #[repr(C)] 2331 #[derive(Debug, Default, Copy, Clone)] 2332 pub struct kvm_create_device { 2333 pub type_: u32, 2334 pub fd: u32, 2335 pub flags: u32, 2336 } 2337 #[repr(C)] 2338 #[derive(Debug, Default, Copy, Clone)] 2339 pub struct kvm_device_attr { 2340 pub flags: u32, 2341 pub group: u32, 2342 pub attr: u64, 2343 pub addr: u64, 2344 } 2345 pub const kvm_device_type_KVM_DEV_TYPE_FSL_MPIC_20: kvm_device_type = 1; 2346 pub const kvm_device_type_KVM_DEV_TYPE_FSL_MPIC_42: kvm_device_type = 2; 2347 pub const kvm_device_type_KVM_DEV_TYPE_XICS: kvm_device_type = 3; 2348 pub const kvm_device_type_KVM_DEV_TYPE_VFIO: kvm_device_type = 4; 2349 pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_V2: kvm_device_type = 5; 2350 pub const kvm_device_type_KVM_DEV_TYPE_FLIC: kvm_device_type = 6; 2351 pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_V3: kvm_device_type = 7; 2352 pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_ITS: kvm_device_type = 8; 2353 pub const kvm_device_type_KVM_DEV_TYPE_XIVE: kvm_device_type = 9; 2354 pub const kvm_device_type_KVM_DEV_TYPE_ARM_PV_TIME: kvm_device_type = 10; 2355 pub const kvm_device_type_KVM_DEV_TYPE_MAX: kvm_device_type = 11; 2356 pub type kvm_device_type = ::std::os::raw::c_uint; 2357 #[repr(C)] 2358 #[derive(Debug, Default, Copy, Clone)] 2359 pub struct kvm_vfio_spapr_tce { 2360 pub groupfd: i32, 2361 pub tablefd: i32, 2362 } 2363 #[repr(C)] 2364 #[derive(Debug, Default, Copy, Clone)] 2365 pub struct kvm_s390_ucas_mapping { 2366 pub user_addr: u64, 2367 pub vcpu_addr: u64, 2368 pub length: u64, 2369 } 2370 #[repr(C)] 2371 #[derive(Debug, Default, Copy, Clone)] 2372 pub struct kvm_enc_region { 2373 pub addr: u64, 2374 pub size: u64, 2375 } 2376 #[repr(C)] 2377 #[derive(Debug, Default, Copy, Clone)] 2378 pub struct kvm_s390_pv_sec_parm { 2379 pub origin: u64, 2380 pub length: u64, 2381 } 2382 #[repr(C)] 2383 #[derive(Debug, Default, Copy, Clone)] 2384 pub struct kvm_s390_pv_unp { 2385 pub addr: u64, 2386 pub size: u64, 2387 pub tweak: u64, 2388 } 2389 pub const pv_cmd_id_KVM_PV_ENABLE: pv_cmd_id = 0; 2390 pub const pv_cmd_id_KVM_PV_DISABLE: pv_cmd_id = 1; 2391 pub const pv_cmd_id_KVM_PV_SET_SEC_PARMS: pv_cmd_id = 2; 2392 pub const pv_cmd_id_KVM_PV_UNPACK: pv_cmd_id = 3; 2393 pub const pv_cmd_id_KVM_PV_VERIFY: pv_cmd_id = 4; 2394 pub const pv_cmd_id_KVM_PV_PREP_RESET: pv_cmd_id = 5; 2395 pub const pv_cmd_id_KVM_PV_UNSHARE_ALL: pv_cmd_id = 6; 2396 pub type pv_cmd_id = ::std::os::raw::c_uint; 2397 #[repr(C)] 2398 #[derive(Debug, Default, Copy, Clone)] 2399 pub struct kvm_pv_cmd { 2400 pub cmd: u32, 2401 pub rc: u16, 2402 pub rrc: u16, 2403 pub data: u64, 2404 pub flags: u32, 2405 pub reserved: [u32; 3usize], 2406 } 2407 pub const sev_cmd_id_KVM_SEV_INIT: sev_cmd_id = 0; 2408 pub const sev_cmd_id_KVM_SEV_ES_INIT: sev_cmd_id = 1; 2409 pub const sev_cmd_id_KVM_SEV_LAUNCH_START: sev_cmd_id = 2; 2410 pub const sev_cmd_id_KVM_SEV_LAUNCH_UPDATE_DATA: sev_cmd_id = 3; 2411 pub const sev_cmd_id_KVM_SEV_LAUNCH_UPDATE_VMSA: sev_cmd_id = 4; 2412 pub const sev_cmd_id_KVM_SEV_LAUNCH_SECRET: sev_cmd_id = 5; 2413 pub const sev_cmd_id_KVM_SEV_LAUNCH_MEASURE: sev_cmd_id = 6; 2414 pub const sev_cmd_id_KVM_SEV_LAUNCH_FINISH: sev_cmd_id = 7; 2415 pub const sev_cmd_id_KVM_SEV_SEND_START: sev_cmd_id = 8; 2416 pub const sev_cmd_id_KVM_SEV_SEND_UPDATE_DATA: sev_cmd_id = 9; 2417 pub const sev_cmd_id_KVM_SEV_SEND_UPDATE_VMSA: sev_cmd_id = 10; 2418 pub const sev_cmd_id_KVM_SEV_SEND_FINISH: sev_cmd_id = 11; 2419 pub const sev_cmd_id_KVM_SEV_RECEIVE_START: sev_cmd_id = 12; 2420 pub const sev_cmd_id_KVM_SEV_RECEIVE_UPDATE_DATA: sev_cmd_id = 13; 2421 pub const sev_cmd_id_KVM_SEV_RECEIVE_UPDATE_VMSA: sev_cmd_id = 14; 2422 pub const sev_cmd_id_KVM_SEV_RECEIVE_FINISH: sev_cmd_id = 15; 2423 pub const sev_cmd_id_KVM_SEV_GUEST_STATUS: sev_cmd_id = 16; 2424 pub const sev_cmd_id_KVM_SEV_DBG_DECRYPT: sev_cmd_id = 17; 2425 pub const sev_cmd_id_KVM_SEV_DBG_ENCRYPT: sev_cmd_id = 18; 2426 pub const sev_cmd_id_KVM_SEV_CERT_EXPORT: sev_cmd_id = 19; 2427 pub const sev_cmd_id_KVM_SEV_NR_MAX: sev_cmd_id = 20; 2428 pub type sev_cmd_id = ::std::os::raw::c_uint; 2429 #[repr(C)] 2430 #[derive(Debug, Default, Copy, Clone)] 2431 pub struct kvm_sev_cmd { 2432 pub id: u32, 2433 pub data: u64, 2434 pub error: u32, 2435 pub sev_fd: u32, 2436 } 2437 #[repr(C)] 2438 #[derive(Debug, Default, Copy, Clone)] 2439 pub struct kvm_sev_launch_start { 2440 pub handle: u32, 2441 pub policy: u32, 2442 pub dh_uaddr: u64, 2443 pub dh_len: u32, 2444 pub session_uaddr: u64, 2445 pub session_len: u32, 2446 } 2447 #[repr(C)] 2448 #[derive(Debug, Default, Copy, Clone)] 2449 pub struct kvm_sev_launch_update_data { 2450 pub uaddr: u64, 2451 pub len: u32, 2452 } 2453 #[repr(C)] 2454 #[derive(Debug, Default, Copy, Clone)] 2455 pub struct kvm_sev_launch_secret { 2456 pub hdr_uaddr: u64, 2457 pub hdr_len: u32, 2458 pub guest_uaddr: u64, 2459 pub guest_len: u32, 2460 pub trans_uaddr: u64, 2461 pub trans_len: u32, 2462 } 2463 #[repr(C)] 2464 #[derive(Debug, Default, Copy, Clone)] 2465 pub struct kvm_sev_launch_measure { 2466 pub uaddr: u64, 2467 pub len: u32, 2468 } 2469 #[repr(C)] 2470 #[derive(Debug, Default, Copy, Clone)] 2471 pub struct kvm_sev_guest_status { 2472 pub handle: u32, 2473 pub policy: u32, 2474 pub state: u32, 2475 } 2476 #[repr(C)] 2477 #[derive(Debug, Default, Copy, Clone)] 2478 pub struct kvm_sev_dbg { 2479 pub src_uaddr: u64, 2480 pub dst_uaddr: u64, 2481 pub len: u32, 2482 } 2483 #[repr(C)] 2484 #[derive(Copy, Clone)] 2485 pub struct kvm_assigned_pci_dev { 2486 pub assigned_dev_id: u32, 2487 pub busnr: u32, 2488 pub devfn: u32, 2489 pub flags: u32, 2490 pub segnr: u32, 2491 pub __bindgen_anon_1: kvm_assigned_pci_dev__bindgen_ty_1, 2492 } 2493 #[repr(C)] 2494 #[derive(Copy, Clone)] 2495 pub union kvm_assigned_pci_dev__bindgen_ty_1 { 2496 pub reserved: [u32; 11usize], 2497 } 2498 impl Default for kvm_assigned_pci_dev__bindgen_ty_1 { default() -> Self2499 fn default() -> Self { 2500 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2501 unsafe { 2502 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2503 s.assume_init() 2504 } 2505 } 2506 } 2507 impl Default for kvm_assigned_pci_dev { default() -> Self2508 fn default() -> Self { 2509 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2510 unsafe { 2511 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2512 s.assume_init() 2513 } 2514 } 2515 } 2516 #[repr(C)] 2517 #[derive(Copy, Clone)] 2518 pub struct kvm_assigned_irq { 2519 pub assigned_dev_id: u32, 2520 pub host_irq: u32, 2521 pub guest_irq: u32, 2522 pub flags: u32, 2523 pub __bindgen_anon_1: kvm_assigned_irq__bindgen_ty_1, 2524 } 2525 #[repr(C)] 2526 #[derive(Copy, Clone)] 2527 pub union kvm_assigned_irq__bindgen_ty_1 { 2528 pub reserved: [u32; 12usize], 2529 } 2530 impl Default for kvm_assigned_irq__bindgen_ty_1 { default() -> Self2531 fn default() -> Self { 2532 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2533 unsafe { 2534 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2535 s.assume_init() 2536 } 2537 } 2538 } 2539 impl Default for kvm_assigned_irq { default() -> Self2540 fn default() -> Self { 2541 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 2542 unsafe { 2543 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 2544 s.assume_init() 2545 } 2546 } 2547 } 2548 #[repr(C)] 2549 #[derive(Debug, Default, Copy, Clone)] 2550 pub struct kvm_assigned_msix_nr { 2551 pub assigned_dev_id: u32, 2552 pub entry_nr: u16, 2553 pub padding: u16, 2554 } 2555 #[repr(C)] 2556 #[derive(Debug, Default, Copy, Clone)] 2557 pub struct kvm_assigned_msix_entry { 2558 pub assigned_dev_id: u32, 2559 pub gsi: u32, 2560 pub entry: u16, 2561 pub padding: [u16; 3usize], 2562 } 2563 #[repr(C)] 2564 #[derive(Debug, Default, Copy, Clone)] 2565 pub struct kvm_hyperv_eventfd { 2566 pub conn_id: u32, 2567 pub fd: i32, 2568 pub flags: u32, 2569 pub padding: [u32; 3usize], 2570 } 2571