#![allow(clippy::missing_safety_doc)]
#![allow(clippy::ptr_offset_with_cast)]
#![allow(clippy::undocumented_unsafe_blocks)]
#![allow(clippy::upper_case_acronyms)]
#![allow(non_upper_case_globals)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
#![allow(dead_code)]
use zerocopy::FromBytes;
use zerocopy::Immutable;
use zerocopy::IntoBytes;
use zerocopy::KnownLayout;
pub const KVM_CAP_USER_CONFIGURE_NONCOHERENT_DMA_CROS: u32 = 236;
pub const KVM_CAP_USER_CONFIGURE_NONCOHERENT_DMA: u32 = 239;
pub const KVM_MEM_NON_COHERENT_DMA: u32 = 8;
pub const KVM_CAP_ARM_PROTECTED_VM: u32 = 0xffbadab1;
pub const KVM_CAP_ARM_PROTECTED_VM_FLAGS_SET_FW_IPA: u32 = 0;
pub const KVM_CAP_ARM_PROTECTED_VM_FLAGS_INFO: u32 = 1;
pub const KVM_CAP_ARM_PROTECTED_VM_FLAGS_SET_FFA: u32 = 2;
pub const KVM_VM_TYPE_ARM_PROTECTED: u32 = 0x80000000;
pub const KVM_X86_PKVM_PROTECTED_VM: u32 = 28;
pub const KVM_CAP_X86_PROTECTED_VM: u32 = 0xffbadab2;
pub const KVM_CAP_X86_PROTECTED_VM_FLAGS_SET_FW_GPA: u32 = 0;
pub const KVM_CAP_X86_PROTECTED_VM_FLAGS_INFO: u32 = 1;
pub const KVM_DEV_VFIO_PVIOMMU: u32 = 5;
pub const KVM_DEV_VFIO_PVIOMMU_ATTACH: u32 = 1;
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_vfio_iommu_info {
pub size: u32,
pub device_fd: i32,
pub nr_sids: u32,
pub __reserved: u32,
}
pub const KVM_DEV_VFIO_PVIOMMU_GET_INFO: u32 = 2;
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_vfio_iommu_config {
pub size: u32,
pub device_fd: i32,
pub sid_idx: u32,
pub vsid: u32,
pub __reserved: u32,
}
pub const PTRACE_GETFDPIC: u32 = 33;
pub const PTRACE_GETFDPIC_EXEC: u32 = 0;
pub const PTRACE_GETFDPIC_INTERP: u32 = 1;
pub const RISCV_MAX_VLENB: u32 = 8192;
pub const KVM_COALESCED_MMIO_PAGE_OFFSET: u32 = 1;
pub const KVM_INTERRUPT_SET: i32 = -1;
pub const KVM_INTERRUPT_UNSET: i32 = -2;
pub const KVM_RISCV_MODE_S: u32 = 1;
pub const KVM_RISCV_MODE_U: u32 = 0;
pub const KVM_RISCV_TIMER_STATE_OFF: u32 = 0;
pub const KVM_RISCV_TIMER_STATE_ON: u32 = 1;
pub const KVM_REG_RISCV_TYPE_MASK: u32 = 4278190080;
pub const KVM_REG_RISCV_TYPE_SHIFT: u32 = 24;
pub const KVM_REG_RISCV_SUBTYPE_MASK: u32 = 16711680;
pub const KVM_REG_RISCV_SUBTYPE_SHIFT: u32 = 16;
pub const KVM_REG_RISCV_CONFIG: u32 = 16777216;
pub const KVM_REG_RISCV_CORE: u32 = 33554432;
pub const KVM_REG_RISCV_CSR: u32 = 50331648;
pub const KVM_REG_RISCV_CSR_GENERAL: u32 = 0;
pub const KVM_REG_RISCV_CSR_AIA: u32 = 65536;
pub const KVM_REG_RISCV_CSR_SMSTATEEN: u32 = 131072;
pub const KVM_REG_RISCV_TIMER: u32 = 67108864;
pub const KVM_REG_RISCV_FP_F: u32 = 83886080;
pub const KVM_REG_RISCV_FP_D: u32 = 100663296;
pub const KVM_REG_RISCV_ISA_EXT: u32 = 117440512;
pub const KVM_REG_RISCV_ISA_SINGLE: u32 = 0;
pub const KVM_REG_RISCV_ISA_MULTI_EN: u32 = 65536;
pub const KVM_REG_RISCV_ISA_MULTI_DIS: u32 = 131072;
pub const KVM_REG_RISCV_SBI_EXT: u32 = 134217728;
pub const KVM_REG_RISCV_SBI_SINGLE: u32 = 0;
pub const KVM_REG_RISCV_SBI_MULTI_EN: u32 = 65536;
pub const KVM_REG_RISCV_SBI_MULTI_DIS: u32 = 131072;
pub const KVM_REG_RISCV_VECTOR: u32 = 150994944;
pub const KVM_REG_RISCV_SBI_STATE: u32 = 167772160;
pub const KVM_REG_RISCV_SBI_STA: u32 = 0;
pub const KVM_DEV_RISCV_APLIC_ALIGN: u32 = 4096;
pub const KVM_DEV_RISCV_APLIC_SIZE: u32 = 16384;
pub const KVM_DEV_RISCV_APLIC_MAX_HARTS: u32 = 16384;
pub const KVM_DEV_RISCV_IMSIC_ALIGN: u32 = 4096;
pub const KVM_DEV_RISCV_IMSIC_SIZE: u32 = 4096;
pub const KVM_DEV_RISCV_AIA_GRP_CONFIG: u32 = 0;
pub const KVM_DEV_RISCV_AIA_CONFIG_MODE: u32 = 0;
pub const KVM_DEV_RISCV_AIA_CONFIG_IDS: u32 = 1;
pub const KVM_DEV_RISCV_AIA_CONFIG_SRCS: u32 = 2;
pub const KVM_DEV_RISCV_AIA_CONFIG_GROUP_BITS: u32 = 3;
pub const KVM_DEV_RISCV_AIA_CONFIG_GROUP_SHIFT: u32 = 4;
pub const KVM_DEV_RISCV_AIA_CONFIG_HART_BITS: u32 = 5;
pub const KVM_DEV_RISCV_AIA_CONFIG_GUEST_BITS: u32 = 6;
pub const KVM_DEV_RISCV_AIA_MODE_EMUL: u32 = 0;
pub const KVM_DEV_RISCV_AIA_MODE_HWACCEL: u32 = 1;
pub const KVM_DEV_RISCV_AIA_MODE_AUTO: u32 = 2;
pub const KVM_DEV_RISCV_AIA_IDS_MIN: u32 = 63;
pub const KVM_DEV_RISCV_AIA_IDS_MAX: u32 = 2048;
pub const KVM_DEV_RISCV_AIA_SRCS_MAX: u32 = 1024;
pub const KVM_DEV_RISCV_AIA_GROUP_BITS_MAX: u32 = 8;
pub const KVM_DEV_RISCV_AIA_GROUP_SHIFT_MIN: u32 = 24;
pub const KVM_DEV_RISCV_AIA_GROUP_SHIFT_MAX: u32 = 56;
pub const KVM_DEV_RISCV_AIA_HART_BITS_MAX: u32 = 16;
pub const KVM_DEV_RISCV_AIA_GUEST_BITS_MAX: u32 = 8;
pub const KVM_DEV_RISCV_AIA_GRP_ADDR: u32 = 1;
pub const KVM_DEV_RISCV_AIA_ADDR_APLIC: u32 = 0;
pub const KVM_DEV_RISCV_AIA_ADDR_MAX: u32 = 16385;
pub const KVM_DEV_RISCV_AIA_GRP_CTRL: u32 = 2;
pub const KVM_DEV_RISCV_AIA_CTRL_INIT: u32 = 0;
pub const KVM_DEV_RISCV_AIA_GRP_APLIC: u32 = 3;
pub const KVM_DEV_RISCV_AIA_GRP_IMSIC: u32 = 4;
pub const KVM_DEV_RISCV_AIA_IMSIC_ISEL_BITS: u32 = 12;
pub const KVM_DEV_RISCV_AIA_IMSIC_ISEL_MASK: u32 = 4095;
pub const KVM_NR_IRQCHIPS: u32 = 1;
pub const KVM_API_VERSION: u32 = 12;
pub const KVM_MEM_LOG_DIRTY_PAGES: u32 = 1;
pub const KVM_MEM_READONLY: u32 = 2;
pub const KVM_MEM_GUEST_MEMFD: u32 = 4;
pub const KVM_PIT_SPEAKER_DUMMY: u32 = 1;
pub const KVM_EXIT_HYPERV_SYNIC: u32 = 1;
pub const KVM_EXIT_HYPERV_HCALL: u32 = 2;
pub const KVM_EXIT_HYPERV_SYNDBG: u32 = 3;
pub const KVM_EXIT_XEN_HCALL: u32 = 1;
pub const KVM_S390_GET_SKEYS_NONE: u32 = 1;
pub const KVM_S390_SKEYS_MAX: u32 = 1048576;
pub const KVM_EXIT_UNKNOWN: u32 = 0;
pub const KVM_EXIT_EXCEPTION: u32 = 1;
pub const KVM_EXIT_IO: u32 = 2;
pub const KVM_EXIT_HYPERCALL: u32 = 3;
pub const KVM_EXIT_DEBUG: u32 = 4;
pub const KVM_EXIT_HLT: u32 = 5;
pub const KVM_EXIT_MMIO: u32 = 6;
pub const KVM_EXIT_IRQ_WINDOW_OPEN: u32 = 7;
pub const KVM_EXIT_SHUTDOWN: u32 = 8;
pub const KVM_EXIT_FAIL_ENTRY: u32 = 9;
pub const KVM_EXIT_INTR: u32 = 10;
pub const KVM_EXIT_SET_TPR: u32 = 11;
pub const KVM_EXIT_TPR_ACCESS: u32 = 12;
pub const KVM_EXIT_S390_SIEIC: u32 = 13;
pub const KVM_EXIT_S390_RESET: u32 = 14;
pub const KVM_EXIT_DCR: u32 = 15;
pub const KVM_EXIT_NMI: u32 = 16;
pub const KVM_EXIT_INTERNAL_ERROR: u32 = 17;
pub const KVM_EXIT_OSI: u32 = 18;
pub const KVM_EXIT_PAPR_HCALL: u32 = 19;
pub const KVM_EXIT_S390_UCONTROL: u32 = 20;
pub const KVM_EXIT_WATCHDOG: u32 = 21;
pub const KVM_EXIT_S390_TSCH: u32 = 22;
pub const KVM_EXIT_EPR: u32 = 23;
pub const KVM_EXIT_SYSTEM_EVENT: u32 = 24;
pub const KVM_EXIT_S390_STSI: u32 = 25;
pub const KVM_EXIT_IOAPIC_EOI: u32 = 26;
pub const KVM_EXIT_HYPERV: u32 = 27;
pub const KVM_EXIT_ARM_NISV: u32 = 28;
pub const KVM_EXIT_X86_RDMSR: u32 = 29;
pub const KVM_EXIT_X86_WRMSR: u32 = 30;
pub const KVM_EXIT_DIRTY_RING_FULL: u32 = 31;
pub const KVM_EXIT_AP_RESET_HOLD: u32 = 32;
pub const KVM_EXIT_X86_BUS_LOCK: u32 = 33;
pub const KVM_EXIT_XEN: u32 = 34;
pub const KVM_EXIT_RISCV_SBI: u32 = 35;
pub const KVM_EXIT_RISCV_CSR: u32 = 36;
pub const KVM_EXIT_NOTIFY: u32 = 37;
pub const KVM_EXIT_LOONGARCH_IOCSR: u32 = 38;
pub const KVM_EXIT_MEMORY_FAULT: u32 = 39;
pub const KVM_INTERNAL_ERROR_EMULATION: u32 = 1;
pub const KVM_INTERNAL_ERROR_SIMUL_EX: u32 = 2;
pub const KVM_INTERNAL_ERROR_DELIVERY_EV: u32 = 3;
pub const KVM_INTERNAL_ERROR_UNEXPECTED_EXIT_REASON: u32 = 4;
pub const KVM_INTERNAL_ERROR_EMULATION_FLAG_INSTRUCTION_BYTES: u32 = 1;
pub const KVM_EXIT_IO_IN: u32 = 0;
pub const KVM_EXIT_IO_OUT: u32 = 1;
pub const KVM_SYSTEM_EVENT_SHUTDOWN: u32 = 1;
pub const KVM_SYSTEM_EVENT_RESET: u32 = 2;
pub const KVM_SYSTEM_EVENT_CRASH: u32 = 3;
pub const KVM_SYSTEM_EVENT_WAKEUP: u32 = 4;
pub const KVM_SYSTEM_EVENT_SUSPEND: u32 = 5;
pub const KVM_SYSTEM_EVENT_SEV_TERM: u32 = 6;
pub const KVM_MSR_EXIT_REASON_INVAL: u32 = 1;
pub const KVM_MSR_EXIT_REASON_UNKNOWN: u32 = 2;
pub const KVM_MSR_EXIT_REASON_FILTER: u32 = 4;
pub const KVM_MSR_EXIT_REASON_VALID_MASK: u32 = 7;
pub const KVM_NOTIFY_CONTEXT_INVALID: u32 = 1;
pub const KVM_MEMORY_EXIT_FLAG_PRIVATE: u32 = 8;
pub const SYNC_REGS_SIZE_BYTES: u32 = 2048;
pub const KVM_MP_STATE_RUNNABLE: u32 = 0;
pub const KVM_MP_STATE_UNINITIALIZED: u32 = 1;
pub const KVM_MP_STATE_INIT_RECEIVED: u32 = 2;
pub const KVM_MP_STATE_HALTED: u32 = 3;
pub const KVM_MP_STATE_SIPI_RECEIVED: u32 = 4;
pub const KVM_MP_STATE_STOPPED: u32 = 5;
pub const KVM_MP_STATE_CHECK_STOP: u32 = 6;
pub const KVM_MP_STATE_OPERATING: u32 = 7;
pub const KVM_MP_STATE_LOAD: u32 = 8;
pub const KVM_MP_STATE_AP_RESET_HOLD: u32 = 9;
pub const KVM_MP_STATE_SUSPENDED: u32 = 10;
pub const KVM_GUESTDBG_ENABLE: u32 = 1;
pub const KVM_GUESTDBG_SINGLESTEP: u32 = 2;
pub const KVM_X86_DISABLE_EXITS_MWAIT: u32 = 1;
pub const KVM_X86_DISABLE_EXITS_HLT: u32 = 2;
pub const KVM_X86_DISABLE_EXITS_PAUSE: u32 = 4;
pub const KVM_X86_DISABLE_EXITS_CSTATE: u32 = 8;
pub const KVM_X86_DISABLE_VALID_EXITS: u32 = 15;
pub const KVMIO: u32 = 174;
pub const KVM_VM_S390_UCONTROL: u32 = 1;
pub const KVM_VM_PPC_HV: u32 = 1;
pub const KVM_VM_PPC_PR: u32 = 2;
pub const KVM_VM_MIPS_AUTO: u32 = 0;
pub const KVM_VM_MIPS_VZ: u32 = 1;
pub const KVM_VM_MIPS_TE: u32 = 2;
pub const KVM_S390_SIE_PAGE_OFFSET: u32 = 1;
pub const KVM_VM_TYPE_ARM_IPA_SIZE_MASK: u32 = 255;
pub const KVM_CAP_IRQCHIP: u32 = 0;
pub const KVM_CAP_HLT: u32 = 1;
pub const KVM_CAP_MMU_SHADOW_CACHE_CONTROL: u32 = 2;
pub const KVM_CAP_USER_MEMORY: u32 = 3;
pub const KVM_CAP_SET_TSS_ADDR: u32 = 4;
pub const KVM_CAP_VAPIC: u32 = 6;
pub const KVM_CAP_EXT_CPUID: u32 = 7;
pub const KVM_CAP_CLOCKSOURCE: u32 = 8;
pub const KVM_CAP_NR_VCPUS: u32 = 9;
pub const KVM_CAP_NR_MEMSLOTS: u32 = 10;
pub const KVM_CAP_PIT: u32 = 11;
pub const KVM_CAP_NOP_IO_DELAY: u32 = 12;
pub const KVM_CAP_PV_MMU: u32 = 13;
pub const KVM_CAP_MP_STATE: u32 = 14;
pub const KVM_CAP_COALESCED_MMIO: u32 = 15;
pub const KVM_CAP_SYNC_MMU: u32 = 16;
pub const KVM_CAP_IOMMU: u32 = 18;
pub const KVM_CAP_DESTROY_MEMORY_REGION_WORKS: u32 = 21;
pub const KVM_CAP_USER_NMI: u32 = 22;
pub const KVM_CAP_SET_GUEST_DEBUG: u32 = 23;
pub const KVM_CAP_IRQ_ROUTING: u32 = 25;
pub const KVM_CAP_IRQ_INJECT_STATUS: u32 = 26;
pub const KVM_CAP_ASSIGN_DEV_IRQ: u32 = 29;
pub const KVM_CAP_JOIN_MEMORY_REGIONS_WORKS: u32 = 30;
pub const KVM_CAP_IRQFD: u32 = 32;
pub const KVM_CAP_SET_BOOT_CPU_ID: u32 = 34;
pub const KVM_CAP_IOEVENTFD: u32 = 36;
pub const KVM_CAP_SET_IDENTITY_MAP_ADDR: u32 = 37;
pub const KVM_CAP_ADJUST_CLOCK: u32 = 39;
pub const KVM_CAP_INTERNAL_ERROR_DATA: u32 = 40;
pub const KVM_CAP_S390_PSW: u32 = 42;
pub const KVM_CAP_PPC_SEGSTATE: u32 = 43;
pub const KVM_CAP_HYPERV: u32 = 44;
pub const KVM_CAP_HYPERV_VAPIC: u32 = 45;
pub const KVM_CAP_HYPERV_SPIN: u32 = 46;
pub const KVM_CAP_PCI_SEGMENT: u32 = 47;
pub const KVM_CAP_PPC_PAIRED_SINGLES: u32 = 48;
pub const KVM_CAP_INTR_SHADOW: u32 = 49;
pub const KVM_CAP_X86_ROBUST_SINGLESTEP: u32 = 51;
pub const KVM_CAP_PPC_OSI: u32 = 52;
pub const KVM_CAP_PPC_UNSET_IRQ: u32 = 53;
pub const KVM_CAP_ENABLE_CAP: u32 = 54;
pub const KVM_CAP_PPC_GET_PVINFO: u32 = 57;
pub const KVM_CAP_PPC_IRQ_LEVEL: u32 = 58;
pub const KVM_CAP_ASYNC_PF: u32 = 59;
pub const KVM_CAP_TSC_CONTROL: u32 = 60;
pub const KVM_CAP_GET_TSC_KHZ: u32 = 61;
pub const KVM_CAP_PPC_BOOKE_SREGS: u32 = 62;
pub const KVM_CAP_SPAPR_TCE: u32 = 63;
pub const KVM_CAP_PPC_SMT: u32 = 64;
pub const KVM_CAP_PPC_RMA: u32 = 65;
pub const KVM_CAP_MAX_VCPUS: u32 = 66;
pub const KVM_CAP_PPC_HIOR: u32 = 67;
pub const KVM_CAP_PPC_PAPR: u32 = 68;
pub const KVM_CAP_SW_TLB: u32 = 69;
pub const KVM_CAP_ONE_REG: u32 = 70;
pub const KVM_CAP_S390_GMAP: u32 = 71;
pub const KVM_CAP_TSC_DEADLINE_TIMER: u32 = 72;
pub const KVM_CAP_S390_UCONTROL: u32 = 73;
pub const KVM_CAP_SYNC_REGS: u32 = 74;
pub const KVM_CAP_PCI_2_3: u32 = 75;
pub const KVM_CAP_KVMCLOCK_CTRL: u32 = 76;
pub const KVM_CAP_SIGNAL_MSI: u32 = 77;
pub const KVM_CAP_PPC_GET_SMMU_INFO: u32 = 78;
pub const KVM_CAP_S390_COW: u32 = 79;
pub const KVM_CAP_PPC_ALLOC_HTAB: u32 = 80;
pub const KVM_CAP_READONLY_MEM: u32 = 81;
pub const KVM_CAP_IRQFD_RESAMPLE: u32 = 82;
pub const KVM_CAP_PPC_BOOKE_WATCHDOG: u32 = 83;
pub const KVM_CAP_PPC_HTAB_FD: u32 = 84;
pub const KVM_CAP_S390_CSS_SUPPORT: u32 = 85;
pub const KVM_CAP_PPC_EPR: u32 = 86;
pub const KVM_CAP_ARM_PSCI: u32 = 87;
pub const KVM_CAP_ARM_SET_DEVICE_ADDR: u32 = 88;
pub const KVM_CAP_DEVICE_CTRL: u32 = 89;
pub const KVM_CAP_IRQ_MPIC: u32 = 90;
pub const KVM_CAP_PPC_RTAS: u32 = 91;
pub const KVM_CAP_IRQ_XICS: u32 = 92;
pub const KVM_CAP_ARM_EL1_32BIT: u32 = 93;
pub const KVM_CAP_SPAPR_MULTITCE: u32 = 94;
pub const KVM_CAP_EXT_EMUL_CPUID: u32 = 95;
pub const KVM_CAP_HYPERV_TIME: u32 = 96;
pub const KVM_CAP_IOAPIC_POLARITY_IGNORED: u32 = 97;
pub const KVM_CAP_ENABLE_CAP_VM: u32 = 98;
pub const KVM_CAP_S390_IRQCHIP: u32 = 99;
pub const KVM_CAP_IOEVENTFD_NO_LENGTH: u32 = 100;
pub const KVM_CAP_VM_ATTRIBUTES: u32 = 101;
pub const KVM_CAP_ARM_PSCI_0_2: u32 = 102;
pub const KVM_CAP_PPC_FIXUP_HCALL: u32 = 103;
pub const KVM_CAP_PPC_ENABLE_HCALL: u32 = 104;
pub const KVM_CAP_CHECK_EXTENSION_VM: u32 = 105;
pub const KVM_CAP_S390_USER_SIGP: u32 = 106;
pub const KVM_CAP_S390_VECTOR_REGISTERS: u32 = 107;
pub const KVM_CAP_S390_MEM_OP: u32 = 108;
pub const KVM_CAP_S390_USER_STSI: u32 = 109;
pub const KVM_CAP_S390_SKEYS: u32 = 110;
pub const KVM_CAP_MIPS_FPU: u32 = 111;
pub const KVM_CAP_MIPS_MSA: u32 = 112;
pub const KVM_CAP_S390_INJECT_IRQ: u32 = 113;
pub const KVM_CAP_S390_IRQ_STATE: u32 = 114;
pub const KVM_CAP_PPC_HWRNG: u32 = 115;
pub const KVM_CAP_DISABLE_QUIRKS: u32 = 116;
pub const KVM_CAP_X86_SMM: u32 = 117;
pub const KVM_CAP_MULTI_ADDRESS_SPACE: u32 = 118;
pub const KVM_CAP_GUEST_DEBUG_HW_BPS: u32 = 119;
pub const KVM_CAP_GUEST_DEBUG_HW_WPS: u32 = 120;
pub const KVM_CAP_SPLIT_IRQCHIP: u32 = 121;
pub const KVM_CAP_IOEVENTFD_ANY_LENGTH: u32 = 122;
pub const KVM_CAP_HYPERV_SYNIC: u32 = 123;
pub const KVM_CAP_S390_RI: u32 = 124;
pub const KVM_CAP_SPAPR_TCE_64: u32 = 125;
pub const KVM_CAP_ARM_PMU_V3: u32 = 126;
pub const KVM_CAP_VCPU_ATTRIBUTES: u32 = 127;
pub const KVM_CAP_MAX_VCPU_ID: u32 = 128;
pub const KVM_CAP_X2APIC_API: u32 = 129;
pub const KVM_CAP_S390_USER_INSTR0: u32 = 130;
pub const KVM_CAP_MSI_DEVID: u32 = 131;
pub const KVM_CAP_PPC_HTM: u32 = 132;
pub const KVM_CAP_SPAPR_RESIZE_HPT: u32 = 133;
pub const KVM_CAP_PPC_MMU_RADIX: u32 = 134;
pub const KVM_CAP_PPC_MMU_HASH_V3: u32 = 135;
pub const KVM_CAP_IMMEDIATE_EXIT: u32 = 136;
pub const KVM_CAP_MIPS_VZ: u32 = 137;
pub const KVM_CAP_MIPS_TE: u32 = 138;
pub const KVM_CAP_MIPS_64BIT: u32 = 139;
pub const KVM_CAP_S390_GS: u32 = 140;
pub const KVM_CAP_S390_AIS: u32 = 141;
pub const KVM_CAP_SPAPR_TCE_VFIO: u32 = 142;
pub const KVM_CAP_X86_DISABLE_EXITS: u32 = 143;
pub const KVM_CAP_ARM_USER_IRQ: u32 = 144;
pub const KVM_CAP_S390_CMMA_MIGRATION: u32 = 145;
pub const KVM_CAP_PPC_FWNMI: u32 = 146;
pub const KVM_CAP_PPC_SMT_POSSIBLE: u32 = 147;
pub const KVM_CAP_HYPERV_SYNIC2: u32 = 148;
pub const KVM_CAP_HYPERV_VP_INDEX: u32 = 149;
pub const KVM_CAP_S390_AIS_MIGRATION: u32 = 150;
pub const KVM_CAP_PPC_GET_CPU_CHAR: u32 = 151;
pub const KVM_CAP_S390_BPB: u32 = 152;
pub const KVM_CAP_GET_MSR_FEATURES: u32 = 153;
pub const KVM_CAP_HYPERV_EVENTFD: u32 = 154;
pub const KVM_CAP_HYPERV_TLBFLUSH: u32 = 155;
pub const KVM_CAP_S390_HPAGE_1M: u32 = 156;
pub const KVM_CAP_NESTED_STATE: u32 = 157;
pub const KVM_CAP_ARM_INJECT_SERROR_ESR: u32 = 158;
pub const KVM_CAP_MSR_PLATFORM_INFO: u32 = 159;
pub const KVM_CAP_PPC_NESTED_HV: u32 = 160;
pub const KVM_CAP_HYPERV_SEND_IPI: u32 = 161;
pub const KVM_CAP_COALESCED_PIO: u32 = 162;
pub const KVM_CAP_HYPERV_ENLIGHTENED_VMCS: u32 = 163;
pub const KVM_CAP_EXCEPTION_PAYLOAD: u32 = 164;
pub const KVM_CAP_ARM_VM_IPA_SIZE: u32 = 165;
pub const KVM_CAP_MANUAL_DIRTY_LOG_PROTECT: u32 = 166;
pub const KVM_CAP_HYPERV_CPUID: u32 = 167;
pub const KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2: u32 = 168;
pub const KVM_CAP_PPC_IRQ_XIVE: u32 = 169;
pub const KVM_CAP_ARM_SVE: u32 = 170;
pub const KVM_CAP_ARM_PTRAUTH_ADDRESS: u32 = 171;
pub const KVM_CAP_ARM_PTRAUTH_GENERIC: u32 = 172;
pub const KVM_CAP_PMU_EVENT_FILTER: u32 = 173;
pub const KVM_CAP_ARM_IRQ_LINE_LAYOUT_2: u32 = 174;
pub const KVM_CAP_HYPERV_DIRECT_TLBFLUSH: u32 = 175;
pub const KVM_CAP_PPC_GUEST_DEBUG_SSTEP: u32 = 176;
pub const KVM_CAP_ARM_NISV_TO_USER: u32 = 177;
pub const KVM_CAP_ARM_INJECT_EXT_DABT: u32 = 178;
pub const KVM_CAP_S390_VCPU_RESETS: u32 = 179;
pub const KVM_CAP_S390_PROTECTED: u32 = 180;
pub const KVM_CAP_PPC_SECURE_GUEST: u32 = 181;
pub const KVM_CAP_HALT_POLL: u32 = 182;
pub const KVM_CAP_ASYNC_PF_INT: u32 = 183;
pub const KVM_CAP_LAST_CPU: u32 = 184;
pub const KVM_CAP_SMALLER_MAXPHYADDR: u32 = 185;
pub const KVM_CAP_S390_DIAG318: u32 = 186;
pub const KVM_CAP_STEAL_TIME: u32 = 187;
pub const KVM_CAP_X86_USER_SPACE_MSR: u32 = 188;
pub const KVM_CAP_X86_MSR_FILTER: u32 = 189;
pub const KVM_CAP_ENFORCE_PV_FEATURE_CPUID: u32 = 190;
pub const KVM_CAP_SYS_HYPERV_CPUID: u32 = 191;
pub const KVM_CAP_DIRTY_LOG_RING: u32 = 192;
pub const KVM_CAP_X86_BUS_LOCK_EXIT: u32 = 193;
pub const KVM_CAP_PPC_DAWR1: u32 = 194;
pub const KVM_CAP_SET_GUEST_DEBUG2: u32 = 195;
pub const KVM_CAP_SGX_ATTRIBUTE: u32 = 196;
pub const KVM_CAP_VM_COPY_ENC_CONTEXT_FROM: u32 = 197;
pub const KVM_CAP_PTP_KVM: u32 = 198;
pub const KVM_CAP_HYPERV_ENFORCE_CPUID: u32 = 199;
pub const KVM_CAP_SREGS2: u32 = 200;
pub const KVM_CAP_EXIT_HYPERCALL: u32 = 201;
pub const KVM_CAP_PPC_RPT_INVALIDATE: u32 = 202;
pub const KVM_CAP_BINARY_STATS_FD: u32 = 203;
pub const KVM_CAP_EXIT_ON_EMULATION_FAILURE: u32 = 204;
pub const KVM_CAP_ARM_MTE: u32 = 205;
pub const KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM: u32 = 206;
pub const KVM_CAP_VM_GPA_BITS: u32 = 207;
pub const KVM_CAP_XSAVE2: u32 = 208;
pub const KVM_CAP_SYS_ATTRIBUTES: u32 = 209;
pub const KVM_CAP_PPC_AIL_MODE_3: u32 = 210;
pub const KVM_CAP_S390_MEM_OP_EXTENSION: u32 = 211;
pub const KVM_CAP_PMU_CAPABILITY: u32 = 212;
pub const KVM_CAP_DISABLE_QUIRKS2: u32 = 213;
pub const KVM_CAP_VM_TSC_CONTROL: u32 = 214;
pub const KVM_CAP_SYSTEM_EVENT_DATA: u32 = 215;
pub const KVM_CAP_ARM_SYSTEM_SUSPEND: u32 = 216;
pub const KVM_CAP_S390_PROTECTED_DUMP: u32 = 217;
pub const KVM_CAP_X86_TRIPLE_FAULT_EVENT: u32 = 218;
pub const KVM_CAP_X86_NOTIFY_VMEXIT: u32 = 219;
pub const KVM_CAP_VM_DISABLE_NX_HUGE_PAGES: u32 = 220;
pub const KVM_CAP_S390_ZPCI_OP: u32 = 221;
pub const KVM_CAP_S390_CPU_TOPOLOGY: u32 = 222;
pub const KVM_CAP_DIRTY_LOG_RING_ACQ_REL: u32 = 223;
pub const KVM_CAP_S390_PROTECTED_ASYNC_DISABLE: u32 = 224;
pub const KVM_CAP_DIRTY_LOG_RING_WITH_BITMAP: u32 = 225;
pub const KVM_CAP_PMU_EVENT_MASKED_EVENTS: u32 = 226;
pub const KVM_CAP_COUNTER_OFFSET: u32 = 227;
pub const KVM_CAP_ARM_EAGER_SPLIT_CHUNK_SIZE: u32 = 228;
pub const KVM_CAP_ARM_SUPPORTED_BLOCK_SIZES: u32 = 229;
pub const KVM_CAP_ARM_SUPPORTED_REG_MASK_RANGES: u32 = 230;
pub const KVM_CAP_USER_MEMORY2: u32 = 231;
pub const KVM_CAP_MEMORY_FAULT_INFO: u32 = 232;
pub const KVM_CAP_MEMORY_ATTRIBUTES: u32 = 233;
pub const KVM_CAP_GUEST_MEMFD: u32 = 234;
pub const KVM_CAP_VM_TYPES: u32 = 235;
pub const KVM_CAP_PRE_FAULT_MEMORY: u32 = 236;
pub const KVM_CAP_X86_APIC_BUS_CYCLES_NS: u32 = 237;
pub const KVM_CAP_X86_GUEST_MODE: u32 = 238;
pub const KVM_IRQ_ROUTING_IRQCHIP: u32 = 1;
pub const KVM_IRQ_ROUTING_MSI: u32 = 2;
pub const KVM_IRQ_ROUTING_S390_ADAPTER: u32 = 3;
pub const KVM_IRQ_ROUTING_HV_SINT: u32 = 4;
pub const KVM_IRQ_ROUTING_XEN_EVTCHN: u32 = 5;
pub const KVM_IRQFD_FLAG_DEASSIGN: u32 = 1;
pub const KVM_IRQFD_FLAG_RESAMPLE: u32 = 2;
pub const KVM_CLOCK_TSC_STABLE: u32 = 2;
pub const KVM_CLOCK_REALTIME: u32 = 4;
pub const KVM_CLOCK_HOST_TSC: u32 = 8;
pub const KVM_MMU_FSL_BOOKE_NOHV: u32 = 0;
pub const KVM_MMU_FSL_BOOKE_HV: u32 = 1;
pub const KVM_REG_ARCH_MASK: i64 = -72057594037927936;
pub const KVM_REG_GENERIC: u32 = 0;
pub const KVM_REG_PPC: u64 = 1152921504606846976;
pub const KVM_REG_X86: u64 = 2305843009213693952;
pub const KVM_REG_IA64: u64 = 3458764513820540928;
pub const KVM_REG_ARM: u64 = 4611686018427387904;
pub const KVM_REG_S390: u64 = 5764607523034234880;
pub const KVM_REG_ARM64: u64 = 6917529027641081856;
pub const KVM_REG_MIPS: u64 = 8070450532247928832;
pub const KVM_REG_RISCV: i64 = -9223372036854775808;
pub const KVM_REG_LOONGARCH: i64 = -8070450532247928832;
pub const KVM_REG_SIZE_SHIFT: u32 = 52;
pub const KVM_REG_SIZE_MASK: u64 = 67553994410557440;
pub const KVM_REG_SIZE_U8: u32 = 0;
pub const KVM_REG_SIZE_U16: u64 = 4503599627370496;
pub const KVM_REG_SIZE_U32: u64 = 9007199254740992;
pub const KVM_REG_SIZE_U64: u64 = 13510798882111488;
pub const KVM_REG_SIZE_U128: u64 = 18014398509481984;
pub const KVM_REG_SIZE_U256: u64 = 22517998136852480;
pub const KVM_REG_SIZE_U512: u64 = 27021597764222976;
pub const KVM_REG_SIZE_U1024: u64 = 31525197391593472;
pub const KVM_REG_SIZE_U2048: u64 = 36028797018963968;
pub const KVM_MSI_VALID_DEVID: u32 = 1;
pub const KVM_CREATE_DEVICE_TEST: u32 = 1;
pub const KVM_DEV_VFIO_FILE: u32 = 1;
pub const KVM_DEV_VFIO_FILE_ADD: u32 = 1;
pub const KVM_DEV_VFIO_FILE_DEL: u32 = 2;
pub const KVM_DEV_VFIO_GROUP: u32 = 1;
pub const KVM_DEV_VFIO_GROUP_ADD: u32 = 1;
pub const KVM_DEV_VFIO_GROUP_DEL: u32 = 2;
pub const KVM_DEV_VFIO_GROUP_SET_SPAPR_TCE: u32 = 3;
pub const KVM_S390_STORE_STATUS_NOADDR: i32 = -1;
pub const KVM_S390_STORE_STATUS_PREFIXED: i32 = -2;
pub const KVM_DIRTY_LOG_MANUAL_PROTECT_ENABLE: u32 = 1;
pub const KVM_DIRTY_LOG_INITIALLY_SET: u32 = 2;
pub const KVM_DIRTY_LOG_PAGE_OFFSET: u32 = 0;
pub const KVM_DIRTY_GFN_F_MASK: u32 = 3;
pub const KVM_BUS_LOCK_DETECTION_OFF: u32 = 1;
pub const KVM_BUS_LOCK_DETECTION_EXIT: u32 = 2;
pub const KVM_PMU_CAP_DISABLE: u32 = 1;
pub const KVM_STATS_TYPE_SHIFT: u32 = 0;
pub const KVM_STATS_TYPE_MASK: u32 = 15;
pub const KVM_STATS_TYPE_CUMULATIVE: u32 = 0;
pub const KVM_STATS_TYPE_INSTANT: u32 = 1;
pub const KVM_STATS_TYPE_PEAK: u32 = 2;
pub const KVM_STATS_TYPE_LINEAR_HIST: u32 = 3;
pub const KVM_STATS_TYPE_LOG_HIST: u32 = 4;
pub const KVM_STATS_TYPE_MAX: u32 = 4;
pub const KVM_STATS_UNIT_SHIFT: u32 = 4;
pub const KVM_STATS_UNIT_MASK: u32 = 240;
pub const KVM_STATS_UNIT_NONE: u32 = 0;
pub const KVM_STATS_UNIT_BYTES: u32 = 16;
pub const KVM_STATS_UNIT_SECONDS: u32 = 32;
pub const KVM_STATS_UNIT_CYCLES: u32 = 48;
pub const KVM_STATS_UNIT_BOOLEAN: u32 = 64;
pub const KVM_STATS_UNIT_MAX: u32 = 64;
pub const KVM_STATS_BASE_SHIFT: u32 = 8;
pub const KVM_STATS_BASE_MASK: u32 = 3840;
pub const KVM_STATS_BASE_POW10: u32 = 0;
pub const KVM_STATS_BASE_POW2: u32 = 256;
pub const KVM_STATS_BASE_MAX: u32 = 256;
pub const KVM_X86_NOTIFY_VMEXIT_ENABLED: u32 = 1;
pub const KVM_X86_NOTIFY_VMEXIT_USER: u32 = 2;
pub const KVM_MEMORY_ATTRIBUTE_PRIVATE: u32 = 8;
pub type __s128 = i128;
pub type __u128 = u128;
pub type __le16 = u16;
pub type __be16 = u16;
pub type __le32 = u32;
pub type __be32 = u32;
pub type __le64 = u64;
pub type __be64 = u64;
pub type __sum16 = u16;
pub type __wsum = u32;
pub type __poll_t = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct user_regs_struct {
pub pc: ::std::os::raw::c_ulong,
pub ra: ::std::os::raw::c_ulong,
pub sp: ::std::os::raw::c_ulong,
pub gp: ::std::os::raw::c_ulong,
pub tp: ::std::os::raw::c_ulong,
pub t0: ::std::os::raw::c_ulong,
pub t1: ::std::os::raw::c_ulong,
pub t2: ::std::os::raw::c_ulong,
pub s0: ::std::os::raw::c_ulong,
pub s1: ::std::os::raw::c_ulong,
pub a0: ::std::os::raw::c_ulong,
pub a1: ::std::os::raw::c_ulong,
pub a2: ::std::os::raw::c_ulong,
pub a3: ::std::os::raw::c_ulong,
pub a4: ::std::os::raw::c_ulong,
pub a5: ::std::os::raw::c_ulong,
pub a6: ::std::os::raw::c_ulong,
pub a7: ::std::os::raw::c_ulong,
pub s2: ::std::os::raw::c_ulong,
pub s3: ::std::os::raw::c_ulong,
pub s4: ::std::os::raw::c_ulong,
pub s5: ::std::os::raw::c_ulong,
pub s6: ::std::os::raw::c_ulong,
pub s7: ::std::os::raw::c_ulong,
pub s8: ::std::os::raw::c_ulong,
pub s9: ::std::os::raw::c_ulong,
pub s10: ::std::os::raw::c_ulong,
pub s11: ::std::os::raw::c_ulong,
pub t3: ::std::os::raw::c_ulong,
pub t4: ::std::os::raw::c_ulong,
pub t5: ::std::os::raw::c_ulong,
pub t6: ::std::os::raw::c_ulong,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct __riscv_f_ext_state {
pub f: [u32; 32usize],
pub fcsr: u32,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct __riscv_d_ext_state {
pub f: [u64; 32usize],
pub fcsr: u32,
}
#[repr(C)]
#[repr(align(16))]
#[derive(Debug, Copy, Clone)]
pub struct __riscv_q_ext_state {
pub f: [u64; 64usize],
pub fcsr: u32,
pub reserved: [u32; 3usize],
}
impl Default for __riscv_q_ext_state {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct __riscv_ctx_hdr {
pub magic: u32,
pub size: u32,
}
#[repr(C)]
#[repr(align(16))]
#[derive(Debug, Copy, Clone)]
pub struct __riscv_extra_ext_header {
pub __padding: [u32; 129usize],
pub reserved: u32,
pub hdr: __riscv_ctx_hdr,
}
impl Default for __riscv_extra_ext_header {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[repr(align(16))]
#[derive(Copy, Clone)]
pub union __riscv_fp_state {
pub f: __riscv_f_ext_state,
pub d: __riscv_d_ext_state,
pub q: __riscv_q_ext_state,
}
impl Default for __riscv_fp_state {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __riscv_v_ext_state {
pub vstart: ::std::os::raw::c_ulong,
pub vl: ::std::os::raw::c_ulong,
pub vtype: ::std::os::raw::c_ulong,
pub vcsr: ::std::os::raw::c_ulong,
pub vlenb: ::std::os::raw::c_ulong,
pub datap: *mut ::std::os::raw::c_void,
}
impl Default for __riscv_v_ext_state {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Default)]
pub struct __riscv_v_regset_state<FAM: ?Sized = [::std::os::raw::c_char; 0]> {
pub vstart: ::std::os::raw::c_ulong,
pub vl: ::std::os::raw::c_ulong,
pub vtype: ::std::os::raw::c_ulong,
pub vcsr: ::std::os::raw::c_ulong,
pub vlenb: ::std::os::raw::c_ulong,
pub vreg: FAM,
}
impl __riscv_v_regset_state<[::std::os::raw::c_char]> {}
impl __riscv_v_regset_state<[::std::os::raw::c_char; 0]> {}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, FromBytes, Immutable, IntoBytes, KnownLayout)]
pub struct kvm_regs {}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_fpu {}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_debug_exit_arch {}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_guest_debug_arch {}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_sync_regs {}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_sregs {}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_riscv_config {
pub isa: ::std::os::raw::c_ulong,
pub zicbom_block_size: ::std::os::raw::c_ulong,
pub mvendorid: ::std::os::raw::c_ulong,
pub marchid: ::std::os::raw::c_ulong,
pub mimpid: ::std::os::raw::c_ulong,
pub zicboz_block_size: ::std::os::raw::c_ulong,
pub satp_mode: ::std::os::raw::c_ulong,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_riscv_core {
pub regs: user_regs_struct,
pub mode: ::std::os::raw::c_ulong,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_riscv_csr {
pub sstatus: ::std::os::raw::c_ulong,
pub sie: ::std::os::raw::c_ulong,
pub stvec: ::std::os::raw::c_ulong,
pub sscratch: ::std::os::raw::c_ulong,
pub sepc: ::std::os::raw::c_ulong,
pub scause: ::std::os::raw::c_ulong,
pub stval: ::std::os::raw::c_ulong,
pub sip: ::std::os::raw::c_ulong,
pub satp: ::std::os::raw::c_ulong,
pub scounteren: ::std::os::raw::c_ulong,
pub senvcfg: ::std::os::raw::c_ulong,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_riscv_aia_csr {
pub siselect: ::std::os::raw::c_ulong,
pub iprio1: ::std::os::raw::c_ulong,
pub iprio2: ::std::os::raw::c_ulong,
pub sieh: ::std::os::raw::c_ulong,
pub siph: ::std::os::raw::c_ulong,
pub iprio1h: ::std::os::raw::c_ulong,
pub iprio2h: ::std::os::raw::c_ulong,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_riscv_smstateen_csr {
pub sstateen0: ::std::os::raw::c_ulong,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_riscv_timer {
pub frequency: u64,
pub time: u64,
pub compare: u64,
pub state: u64,
}
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_A: KVM_RISCV_ISA_EXT_ID = 0;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_C: KVM_RISCV_ISA_EXT_ID = 1;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_D: KVM_RISCV_ISA_EXT_ID = 2;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_F: KVM_RISCV_ISA_EXT_ID = 3;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_H: KVM_RISCV_ISA_EXT_ID = 4;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_I: KVM_RISCV_ISA_EXT_ID = 5;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_M: KVM_RISCV_ISA_EXT_ID = 6;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_SVPBMT: KVM_RISCV_ISA_EXT_ID = 7;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_SSTC: KVM_RISCV_ISA_EXT_ID = 8;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_SVINVAL: KVM_RISCV_ISA_EXT_ID = 9;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZIHINTPAUSE: KVM_RISCV_ISA_EXT_ID = 10;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZICBOM: KVM_RISCV_ISA_EXT_ID = 11;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZICBOZ: KVM_RISCV_ISA_EXT_ID = 12;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZBB: KVM_RISCV_ISA_EXT_ID = 13;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_SSAIA: KVM_RISCV_ISA_EXT_ID = 14;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_V: KVM_RISCV_ISA_EXT_ID = 15;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_SVNAPOT: KVM_RISCV_ISA_EXT_ID = 16;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZBA: KVM_RISCV_ISA_EXT_ID = 17;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZBS: KVM_RISCV_ISA_EXT_ID = 18;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZICNTR: KVM_RISCV_ISA_EXT_ID = 19;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZICSR: KVM_RISCV_ISA_EXT_ID = 20;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZIFENCEI: KVM_RISCV_ISA_EXT_ID = 21;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZIHPM: KVM_RISCV_ISA_EXT_ID = 22;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_SMSTATEEN: KVM_RISCV_ISA_EXT_ID = 23;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZICOND: KVM_RISCV_ISA_EXT_ID = 24;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZBC: KVM_RISCV_ISA_EXT_ID = 25;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZBKB: KVM_RISCV_ISA_EXT_ID = 26;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZBKC: KVM_RISCV_ISA_EXT_ID = 27;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZBKX: KVM_RISCV_ISA_EXT_ID = 28;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZKND: KVM_RISCV_ISA_EXT_ID = 29;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZKNE: KVM_RISCV_ISA_EXT_ID = 30;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZKNH: KVM_RISCV_ISA_EXT_ID = 31;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZKR: KVM_RISCV_ISA_EXT_ID = 32;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZKSED: KVM_RISCV_ISA_EXT_ID = 33;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZKSH: KVM_RISCV_ISA_EXT_ID = 34;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZKT: KVM_RISCV_ISA_EXT_ID = 35;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZVBB: KVM_RISCV_ISA_EXT_ID = 36;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZVBC: KVM_RISCV_ISA_EXT_ID = 37;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZVKB: KVM_RISCV_ISA_EXT_ID = 38;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZVKG: KVM_RISCV_ISA_EXT_ID = 39;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZVKNED: KVM_RISCV_ISA_EXT_ID = 40;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZVKNHA: KVM_RISCV_ISA_EXT_ID = 41;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZVKNHB: KVM_RISCV_ISA_EXT_ID = 42;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZVKSED: KVM_RISCV_ISA_EXT_ID = 43;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZVKSH: KVM_RISCV_ISA_EXT_ID = 44;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZVKT: KVM_RISCV_ISA_EXT_ID = 45;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZFH: KVM_RISCV_ISA_EXT_ID = 46;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZFHMIN: KVM_RISCV_ISA_EXT_ID = 47;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZIHINTNTL: KVM_RISCV_ISA_EXT_ID = 48;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZVFH: KVM_RISCV_ISA_EXT_ID = 49;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZVFHMIN: KVM_RISCV_ISA_EXT_ID = 50;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZFA: KVM_RISCV_ISA_EXT_ID = 51;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZTSO: KVM_RISCV_ISA_EXT_ID = 52;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZACAS: KVM_RISCV_ISA_EXT_ID = 53;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_SSCOFPMF: KVM_RISCV_ISA_EXT_ID = 54;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZIMOP: KVM_RISCV_ISA_EXT_ID = 55;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZCA: KVM_RISCV_ISA_EXT_ID = 56;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZCB: KVM_RISCV_ISA_EXT_ID = 57;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZCD: KVM_RISCV_ISA_EXT_ID = 58;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZCF: KVM_RISCV_ISA_EXT_ID = 59;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZCMOP: KVM_RISCV_ISA_EXT_ID = 60;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_ZAWRS: KVM_RISCV_ISA_EXT_ID = 61;
pub const KVM_RISCV_ISA_EXT_ID_KVM_RISCV_ISA_EXT_MAX: KVM_RISCV_ISA_EXT_ID = 62;
pub type KVM_RISCV_ISA_EXT_ID = ::std::os::raw::c_uint;
pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_V01: KVM_RISCV_SBI_EXT_ID = 0;
pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_TIME: KVM_RISCV_SBI_EXT_ID = 1;
pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_IPI: KVM_RISCV_SBI_EXT_ID = 2;
pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_RFENCE: KVM_RISCV_SBI_EXT_ID = 3;
pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_SRST: KVM_RISCV_SBI_EXT_ID = 4;
pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_HSM: KVM_RISCV_SBI_EXT_ID = 5;
pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_PMU: KVM_RISCV_SBI_EXT_ID = 6;
pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_EXPERIMENTAL: KVM_RISCV_SBI_EXT_ID = 7;
pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_VENDOR: KVM_RISCV_SBI_EXT_ID = 8;
pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_DBCN: KVM_RISCV_SBI_EXT_ID = 9;
pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_STA: KVM_RISCV_SBI_EXT_ID = 10;
pub const KVM_RISCV_SBI_EXT_ID_KVM_RISCV_SBI_EXT_MAX: KVM_RISCV_SBI_EXT_ID = 11;
pub type KVM_RISCV_SBI_EXT_ID = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_riscv_sbi_sta {
pub shmem_lo: ::std::os::raw::c_ulong,
pub shmem_hi: ::std::os::raw::c_ulong,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_userspace_memory_region {
pub slot: u32,
pub flags: u32,
pub guest_phys_addr: u64,
pub memory_size: u64,
pub userspace_addr: u64,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_userspace_memory_region2 {
pub slot: u32,
pub flags: u32,
pub guest_phys_addr: u64,
pub memory_size: u64,
pub userspace_addr: u64,
pub guest_memfd_offset: u64,
pub guest_memfd: u32,
pub pad1: u32,
pub pad2: [u64; 14usize],
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct kvm_irq_level {
pub __bindgen_anon_1: kvm_irq_level__bindgen_ty_1,
pub level: u32,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union kvm_irq_level__bindgen_ty_1 {
pub irq: u32,
pub status: i32,
}
impl Default for kvm_irq_level__bindgen_ty_1 {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
impl Default for kvm_irq_level {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct kvm_irqchip {
pub chip_id: u32,
pub pad: u32,
pub chip: kvm_irqchip__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union kvm_irqchip__bindgen_ty_1 {
pub dummy: [::std::os::raw::c_char; 512usize],
}
impl Default for kvm_irqchip__bindgen_ty_1 {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
impl Default for kvm_irqchip {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_pit_config {
pub flags: u32,
pub pad: [u32; 15usize],
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct kvm_hyperv_exit {
pub type_: u32,
pub pad1: u32,
pub u: kvm_hyperv_exit__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union kvm_hyperv_exit__bindgen_ty_1 {
pub synic: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1,
pub hcall: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_2,
pub syndbg: kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_1 {
pub msr: u32,
pub pad2: u32,
pub control: u64,
pub evt_page: u64,
pub msg_page: u64,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_2 {
pub input: u64,
pub result: u64,
pub params: [u64; 2usize],
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_hyperv_exit__bindgen_ty_1__bindgen_ty_3 {
pub msr: u32,
pub pad2: u32,
pub control: u64,
pub status: u64,
pub send_page: u64,
pub recv_page: u64,
pub pending_page: u64,
}
impl Default for kvm_hyperv_exit__bindgen_ty_1 {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
impl Default for kvm_hyperv_exit {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct kvm_xen_exit {
pub type_: u32,
pub u: kvm_xen_exit__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union kvm_xen_exit__bindgen_ty_1 {
pub hcall: kvm_xen_exit__bindgen_ty_1__bindgen_ty_1,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_xen_exit__bindgen_ty_1__bindgen_ty_1 {
pub longmode: u32,
pub cpl: u32,
pub input: u64,
pub result: u64,
pub params: [u64; 6usize],
}
impl Default for kvm_xen_exit__bindgen_ty_1 {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
impl Default for kvm_xen_exit {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct kvm_run {
pub request_interrupt_window: u8,
pub immediate_exit: u8,
pub padding1: [u8; 6usize],
pub exit_reason: u32,
pub ready_for_interrupt_injection: u8,
pub if_flag: u8,
pub flags: u16,
pub cr8: u64,
pub apic_base: u64,
pub __bindgen_anon_1: kvm_run__bindgen_ty_1,
pub kvm_valid_regs: u64,
pub kvm_dirty_regs: u64,
pub s: kvm_run__bindgen_ty_2,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union kvm_run__bindgen_ty_1 {
pub hw: kvm_run__bindgen_ty_1__bindgen_ty_1,
pub fail_entry: kvm_run__bindgen_ty_1__bindgen_ty_2,
pub ex: kvm_run__bindgen_ty_1__bindgen_ty_3,
pub io: kvm_run__bindgen_ty_1__bindgen_ty_4,
pub debug: kvm_run__bindgen_ty_1__bindgen_ty_5,
pub mmio: kvm_run__bindgen_ty_1__bindgen_ty_6,
pub iocsr_io: kvm_run__bindgen_ty_1__bindgen_ty_7,
pub hypercall: kvm_run__bindgen_ty_1__bindgen_ty_8,
pub tpr_access: kvm_run__bindgen_ty_1__bindgen_ty_9,
pub s390_sieic: kvm_run__bindgen_ty_1__bindgen_ty_10,
pub s390_reset_flags: u64,
pub s390_ucontrol: kvm_run__bindgen_ty_1__bindgen_ty_11,
pub dcr: kvm_run__bindgen_ty_1__bindgen_ty_12,
pub internal: kvm_run__bindgen_ty_1__bindgen_ty_13,
pub emulation_failure: kvm_run__bindgen_ty_1__bindgen_ty_14,
pub osi: kvm_run__bindgen_ty_1__bindgen_ty_15,
pub papr_hcall: kvm_run__bindgen_ty_1__bindgen_ty_16,
pub s390_tsch: kvm_run__bindgen_ty_1__bindgen_ty_17,
pub epr: kvm_run__bindgen_ty_1__bindgen_ty_18,
pub system_event: kvm_run__bindgen_ty_1__bindgen_ty_19,
pub s390_stsi: kvm_run__bindgen_ty_1__bindgen_ty_20,
pub eoi: kvm_run__bindgen_ty_1__bindgen_ty_21,
pub hyperv: kvm_hyperv_exit,
pub arm_nisv: kvm_run__bindgen_ty_1__bindgen_ty_22,
pub msr: kvm_run__bindgen_ty_1__bindgen_ty_23,
pub xen: kvm_xen_exit,
pub riscv_sbi: kvm_run__bindgen_ty_1__bindgen_ty_24,
pub riscv_csr: kvm_run__bindgen_ty_1__bindgen_ty_25,
pub notify: kvm_run__bindgen_ty_1__bindgen_ty_26,
pub memory_fault: kvm_run__bindgen_ty_1__bindgen_ty_27,
pub padding: [::std::os::raw::c_char; 256usize],
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_run__bindgen_ty_1__bindgen_ty_1 {
pub hardware_exit_reason: u64,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_run__bindgen_ty_1__bindgen_ty_2 {
pub hardware_entry_failure_reason: u64,
pub cpu: u32,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_run__bindgen_ty_1__bindgen_ty_3 {
pub exception: u32,
pub error_code: u32,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_run__bindgen_ty_1__bindgen_ty_4 {
pub direction: u8,
pub size: u8,
pub port: u16,
pub count: u32,
pub data_offset: u64,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_run__bindgen_ty_1__bindgen_ty_5 {
pub arch: kvm_debug_exit_arch,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_run__bindgen_ty_1__bindgen_ty_6 {
pub phys_addr: u64,
pub data: [u8; 8usize],
pub len: u32,
pub is_write: u8,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_run__bindgen_ty_1__bindgen_ty_7 {
pub phys_addr: u64,
pub data: [u8; 8usize],
pub len: u32,
pub is_write: u8,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct kvm_run__bindgen_ty_1__bindgen_ty_8 {
pub nr: u64,
pub args: [u64; 6usize],
pub ret: u64,
pub __bindgen_anon_1: kvm_run__bindgen_ty_1__bindgen_ty_8__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union kvm_run__bindgen_ty_1__bindgen_ty_8__bindgen_ty_1 {
pub longmode: u32,
pub flags: u64,
}
impl Default for kvm_run__bindgen_ty_1__bindgen_ty_8__bindgen_ty_1 {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
impl Default for kvm_run__bindgen_ty_1__bindgen_ty_8 {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_run__bindgen_ty_1__bindgen_ty_9 {
pub rip: u64,
pub is_write: u32,
pub pad: u32,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_run__bindgen_ty_1__bindgen_ty_10 {
pub icptcode: u8,
pub ipa: u16,
pub ipb: u32,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_run__bindgen_ty_1__bindgen_ty_11 {
pub trans_exc_code: u64,
pub pgm_code: u32,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_run__bindgen_ty_1__bindgen_ty_12 {
pub dcrn: u32,
pub data: u32,
pub is_write: u8,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_run__bindgen_ty_1__bindgen_ty_13 {
pub suberror: u32,
pub ndata: u32,
pub data: [u64; 16usize],
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct kvm_run__bindgen_ty_1__bindgen_ty_14 {
pub suberror: u32,
pub ndata: u32,
pub flags: u64,
pub __bindgen_anon_1: kvm_run__bindgen_ty_1__bindgen_ty_14__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union kvm_run__bindgen_ty_1__bindgen_ty_14__bindgen_ty_1 {
pub __bindgen_anon_1: kvm_run__bindgen_ty_1__bindgen_ty_14__bindgen_ty_1__bindgen_ty_1,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_run__bindgen_ty_1__bindgen_ty_14__bindgen_ty_1__bindgen_ty_1 {
pub insn_size: u8,
pub insn_bytes: [u8; 15usize],
}
impl Default for kvm_run__bindgen_ty_1__bindgen_ty_14__bindgen_ty_1 {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
impl Default for kvm_run__bindgen_ty_1__bindgen_ty_14 {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_run__bindgen_ty_1__bindgen_ty_15 {
pub gprs: [u64; 32usize],
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_run__bindgen_ty_1__bindgen_ty_16 {
pub nr: u64,
pub ret: u64,
pub args: [u64; 9usize],
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_run__bindgen_ty_1__bindgen_ty_17 {
pub subchannel_id: u16,
pub subchannel_nr: u16,
pub io_int_parm: u32,
pub io_int_word: u32,
pub ipb: u32,
pub dequeued: u8,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_run__bindgen_ty_1__bindgen_ty_18 {
pub epr: u32,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct kvm_run__bindgen_ty_1__bindgen_ty_19 {
pub type_: u32,
pub ndata: u32,
pub __bindgen_anon_1: kvm_run__bindgen_ty_1__bindgen_ty_19__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union kvm_run__bindgen_ty_1__bindgen_ty_19__bindgen_ty_1 {
pub flags: u64,
pub data: [u64; 16usize],
}
impl Default for kvm_run__bindgen_ty_1__bindgen_ty_19__bindgen_ty_1 {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
impl Default for kvm_run__bindgen_ty_1__bindgen_ty_19 {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_run__bindgen_ty_1__bindgen_ty_20 {
pub addr: u64,
pub ar: u8,
pub reserved: u8,
pub fc: u8,
pub sel1: u8,
pub sel2: u16,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_run__bindgen_ty_1__bindgen_ty_21 {
pub vector: u8,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_run__bindgen_ty_1__bindgen_ty_22 {
pub esr_iss: u64,
pub fault_ipa: u64,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_run__bindgen_ty_1__bindgen_ty_23 {
pub error: u8,
pub pad: [u8; 7usize],
pub reason: u32,
pub index: u32,
pub data: u64,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_run__bindgen_ty_1__bindgen_ty_24 {
pub extension_id: ::std::os::raw::c_ulong,
pub function_id: ::std::os::raw::c_ulong,
pub args: [::std::os::raw::c_ulong; 6usize],
pub ret: [::std::os::raw::c_ulong; 2usize],
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_run__bindgen_ty_1__bindgen_ty_25 {
pub csr_num: ::std::os::raw::c_ulong,
pub new_value: ::std::os::raw::c_ulong,
pub write_mask: ::std::os::raw::c_ulong,
pub ret_value: ::std::os::raw::c_ulong,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_run__bindgen_ty_1__bindgen_ty_26 {
pub flags: u32,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_run__bindgen_ty_1__bindgen_ty_27 {
pub flags: u64,
pub gpa: u64,
pub size: u64,
}
impl Default for kvm_run__bindgen_ty_1 {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union kvm_run__bindgen_ty_2 {
pub regs: kvm_sync_regs,
pub padding: [::std::os::raw::c_char; 2048usize],
}
impl Default for kvm_run__bindgen_ty_2 {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
impl Default for kvm_run {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct kvm_coalesced_mmio_zone {
pub addr: u64,
pub size: u32,
pub __bindgen_anon_1: kvm_coalesced_mmio_zone__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union kvm_coalesced_mmio_zone__bindgen_ty_1 {
pub pad: u32,
pub pio: u32,
}
impl Default for kvm_coalesced_mmio_zone__bindgen_ty_1 {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
impl Default for kvm_coalesced_mmio_zone {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct kvm_coalesced_mmio {
pub phys_addr: u64,
pub len: u32,
pub __bindgen_anon_1: kvm_coalesced_mmio__bindgen_ty_1,
pub data: [u8; 8usize],
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union kvm_coalesced_mmio__bindgen_ty_1 {
pub pad: u32,
pub pio: u32,
}
impl Default for kvm_coalesced_mmio__bindgen_ty_1 {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
impl Default for kvm_coalesced_mmio {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
pub struct kvm_coalesced_mmio_ring<FAM: ?Sized = [kvm_coalesced_mmio; 0]> {
pub first: u32,
pub last: u32,
pub coalesced_mmio: FAM,
}
impl kvm_coalesced_mmio_ring<[kvm_coalesced_mmio]> {}
impl kvm_coalesced_mmio_ring<[kvm_coalesced_mmio; 0]> {}
impl Default for kvm_coalesced_mmio_ring<[kvm_coalesced_mmio; 0]> {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_translation {
pub linear_address: u64,
pub physical_address: u64,
pub valid: u8,
pub writeable: u8,
pub usermode: u8,
pub pad: [u8; 5usize],
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_interrupt {
pub irq: u32,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct kvm_dirty_log {
pub slot: u32,
pub padding1: u32,
pub __bindgen_anon_1: kvm_dirty_log__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union kvm_dirty_log__bindgen_ty_1 {
pub dirty_bitmap: *mut ::std::os::raw::c_void,
pub padding2: u64,
}
impl Default for kvm_dirty_log__bindgen_ty_1 {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
impl Default for kvm_dirty_log {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct kvm_clear_dirty_log {
pub slot: u32,
pub num_pages: u32,
pub first_page: u64,
pub __bindgen_anon_1: kvm_clear_dirty_log__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union kvm_clear_dirty_log__bindgen_ty_1 {
pub dirty_bitmap: *mut ::std::os::raw::c_void,
pub padding2: u64,
}
impl Default for kvm_clear_dirty_log__bindgen_ty_1 {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
impl Default for kvm_clear_dirty_log {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Default)]
pub struct kvm_signal_mask<FAM: ?Sized = [u8; 0]> {
pub len: u32,
pub sigset: FAM,
}
impl kvm_signal_mask<[u8]> {}
impl kvm_signal_mask<[u8; 0]> {}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_tpr_access_ctl {
pub enabled: u32,
pub flags: u32,
pub reserved: [u32; 8usize],
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_vapic_addr {
pub vapic_addr: u64,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_mp_state {
pub mp_state: u32,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_guest_debug {
pub control: u32,
pub pad: u32,
pub arch: kvm_guest_debug_arch,
}
pub const kvm_ioeventfd_flag_nr_datamatch: _bindgen_ty_1 = 0;
pub const kvm_ioeventfd_flag_nr_pio: _bindgen_ty_1 = 1;
pub const kvm_ioeventfd_flag_nr_deassign: _bindgen_ty_1 = 2;
pub const kvm_ioeventfd_flag_nr_virtio_ccw_notify: _bindgen_ty_1 = 3;
pub const kvm_ioeventfd_flag_nr_fast_mmio: _bindgen_ty_1 = 4;
pub const kvm_ioeventfd_flag_nr_max: _bindgen_ty_1 = 5;
pub type _bindgen_ty_1 = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct kvm_ioeventfd {
pub datamatch: u64,
pub addr: u64,
pub len: u32,
pub fd: i32,
pub flags: u32,
pub pad: [u8; 36usize],
}
impl Default for kvm_ioeventfd {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct kvm_enable_cap {
pub cap: u32,
pub flags: u32,
pub args: [u64; 4usize],
pub pad: [u8; 64usize],
}
impl Default for kvm_enable_cap {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, FromBytes, Immutable, KnownLayout)]
pub struct kvm_irq_routing_irqchip {
pub irqchip: u32,
pub pin: u32,
}
#[repr(C)]
#[derive(Copy, Clone, FromBytes, Immutable, KnownLayout)]
pub struct kvm_irq_routing_msi {
pub address_lo: u32,
pub address_hi: u32,
pub data: u32,
pub __bindgen_anon_1: kvm_irq_routing_msi__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone, FromBytes, Immutable, KnownLayout)]
pub union kvm_irq_routing_msi__bindgen_ty_1 {
pub pad: u32,
pub devid: u32,
}
impl Default for kvm_irq_routing_msi__bindgen_ty_1 {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
impl Default for kvm_irq_routing_msi {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, FromBytes, Immutable, KnownLayout)]
pub struct kvm_irq_routing_s390_adapter {
pub ind_addr: u64,
pub summary_addr: u64,
pub ind_offset: u64,
pub summary_offset: u32,
pub adapter_id: u32,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, FromBytes, Immutable, KnownLayout)]
pub struct kvm_irq_routing_hv_sint {
pub vcpu: u32,
pub sint: u32,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, FromBytes, Immutable, KnownLayout)]
pub struct kvm_irq_routing_xen_evtchn {
pub port: u32,
pub vcpu: u32,
pub priority: u32,
}
#[repr(C)]
#[derive(Copy, Clone, FromBytes, Immutable, KnownLayout)]
pub struct kvm_irq_routing_entry {
pub gsi: u32,
pub type_: u32,
pub flags: u32,
pub pad: u32,
pub u: kvm_irq_routing_entry__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone, FromBytes, Immutable, KnownLayout)]
pub union kvm_irq_routing_entry__bindgen_ty_1 {
pub irqchip: kvm_irq_routing_irqchip,
pub msi: kvm_irq_routing_msi,
pub adapter: kvm_irq_routing_s390_adapter,
pub hv_sint: kvm_irq_routing_hv_sint,
pub xen_evtchn: kvm_irq_routing_xen_evtchn,
pub pad: [u32; 8usize],
}
impl Default for kvm_irq_routing_entry__bindgen_ty_1 {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
impl Default for kvm_irq_routing_entry {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(FromBytes, Immutable, KnownLayout)]
pub struct kvm_irq_routing<FAM: ?Sized = [kvm_irq_routing_entry; 0]> {
pub nr: u32,
pub flags: u32,
pub entries: FAM,
}
impl kvm_irq_routing<[kvm_irq_routing_entry]> {}
impl kvm_irq_routing<[kvm_irq_routing_entry; 0]> {}
impl Default for kvm_irq_routing<[kvm_irq_routing_entry; 0]> {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_irqfd {
pub fd: u32,
pub gsi: u32,
pub flags: u32,
pub resamplefd: u32,
pub pad: [u8; 16usize],
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_clock_data {
pub clock: u64,
pub flags: u32,
pub pad0: u32,
pub realtime: u64,
pub host_tsc: u64,
pub pad: [u32; 4usize],
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_config_tlb {
pub params: u64,
pub array: u64,
pub mmu_type: u32,
pub array_len: u32,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_dirty_tlb {
pub bitmap: u64,
pub num_dirty: u32,
}
#[repr(C)]
#[derive(Debug, Default)]
pub struct kvm_reg_list<FAM: ?Sized = [u64; 0]> {
pub n: u64,
pub reg: FAM,
}
impl kvm_reg_list<[u64]> {}
impl kvm_reg_list<[u64; 0]> {}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_one_reg {
pub id: u64,
pub addr: u64,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_msi {
pub address_lo: u32,
pub address_hi: u32,
pub data: u32,
pub flags: u32,
pub devid: u32,
pub pad: [u8; 12usize],
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_arm_device_addr {
pub id: u64,
pub addr: u64,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_create_device {
pub type_: u32,
pub fd: u32,
pub flags: u32,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_device_attr {
pub flags: u32,
pub group: u32,
pub attr: u64,
pub addr: u64,
}
pub const kvm_device_type_KVM_DEV_TYPE_FSL_MPIC_20: kvm_device_type = 1;
pub const kvm_device_type_KVM_DEV_TYPE_FSL_MPIC_42: kvm_device_type = 2;
pub const kvm_device_type_KVM_DEV_TYPE_XICS: kvm_device_type = 3;
pub const kvm_device_type_KVM_DEV_TYPE_VFIO: kvm_device_type = 4;
pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_V2: kvm_device_type = 5;
pub const kvm_device_type_KVM_DEV_TYPE_FLIC: kvm_device_type = 6;
pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_V3: kvm_device_type = 7;
pub const kvm_device_type_KVM_DEV_TYPE_ARM_VGIC_ITS: kvm_device_type = 8;
pub const kvm_device_type_KVM_DEV_TYPE_XIVE: kvm_device_type = 9;
pub const kvm_device_type_KVM_DEV_TYPE_ARM_PV_TIME: kvm_device_type = 10;
pub const kvm_device_type_KVM_DEV_TYPE_RISCV_AIA: kvm_device_type = 11;
pub const kvm_device_type_KVM_DEV_TYPE_MAX: kvm_device_type = 12;
pub type kvm_device_type = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_vfio_spapr_tce {
pub groupfd: i32,
pub tablefd: i32,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_enc_region {
pub addr: u64,
pub size: u64,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_dirty_gfn {
pub flags: u32,
pub slot: u32,
pub offset: u64,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_stats_header {
pub flags: u32,
pub name_size: u32,
pub num_desc: u32,
pub id_offset: u32,
pub desc_offset: u32,
pub data_offset: u32,
}
#[repr(C)]
#[derive(Debug, Default)]
pub struct kvm_stats_desc<FAM: ?Sized = [::std::os::raw::c_char; 0]> {
pub flags: u32,
pub exponent: i16,
pub size: u16,
pub offset: u32,
pub bucket_size: u32,
pub name: FAM,
}
impl kvm_stats_desc<[::std::os::raw::c_char]> {}
impl kvm_stats_desc<[::std::os::raw::c_char; 0]> {}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_memory_attributes {
pub address: u64,
pub size: u64,
pub attributes: u64,
pub flags: u64,
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_create_guest_memfd {
pub size: u64,
pub flags: u64,
pub reserved: [u64; 6usize],
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct kvm_pre_fault_memory {
pub gpa: u64,
pub size: u64,
pub flags: u64,
pub padding: [u64; 5usize],
}