1use kvm_sys::*;
6
7#[derive(Clone, Copy, Debug, PartialEq, Eq)]
9#[repr(u32)]
10pub enum KvmCap {
11 Irqchip = KVM_CAP_IRQCHIP,
12 Hlt = KVM_CAP_HLT,
13 MmuShadowCacheControl = KVM_CAP_MMU_SHADOW_CACHE_CONTROL,
14 UserMemory = KVM_CAP_USER_MEMORY,
15 SetTssAddr = KVM_CAP_SET_TSS_ADDR,
16 Vapic = KVM_CAP_VAPIC,
17 ExtCpuid = KVM_CAP_EXT_CPUID,
18 Clocksource = KVM_CAP_CLOCKSOURCE,
19 NrVcpus = KVM_CAP_NR_VCPUS,
20 NrMemslots = KVM_CAP_NR_MEMSLOTS,
21 Pit = KVM_CAP_PIT,
22 NopIoDelay = KVM_CAP_NOP_IO_DELAY,
23 PvMmu = KVM_CAP_PV_MMU,
24 MpState = KVM_CAP_MP_STATE,
25 CoalescedMmio = KVM_CAP_COALESCED_MMIO,
26 SyncMmu = KVM_CAP_SYNC_MMU,
27 Iommu = KVM_CAP_IOMMU,
28 DestroyMemoryRegionWorks = KVM_CAP_DESTROY_MEMORY_REGION_WORKS,
29 UserNmi = KVM_CAP_USER_NMI,
30 #[cfg(any(target_arch = "x86_64", target_arch = "aarch64"))]
31 SetGuestDebug = KVM_CAP_SET_GUEST_DEBUG,
32 #[cfg(target_arch = "x86_64")]
33 ReinjectControl = KVM_CAP_REINJECT_CONTROL,
34 IrqRouting = KVM_CAP_IRQ_ROUTING,
35 IrqInjectStatus = KVM_CAP_IRQ_INJECT_STATUS,
36 AssignDevIrq = KVM_CAP_ASSIGN_DEV_IRQ,
37 JoinMemoryRegionsWorks = KVM_CAP_JOIN_MEMORY_REGIONS_WORKS,
38 #[cfg(target_arch = "x86_64")]
39 Mce = KVM_CAP_MCE,
40 Irqfd = KVM_CAP_IRQFD,
41 #[cfg(target_arch = "x86_64")]
42 Pit2 = KVM_CAP_PIT2,
43 SetBootCpuId = KVM_CAP_SET_BOOT_CPU_ID,
44 #[cfg(target_arch = "x86_64")]
45 PitState2 = KVM_CAP_PIT_STATE2,
46 Ioeventfd = KVM_CAP_IOEVENTFD,
47 SetIdentityMapAddr = KVM_CAP_SET_IDENTITY_MAP_ADDR,
48 #[cfg(target_arch = "x86_64")]
49 XenHvm = KVM_CAP_XEN_HVM,
50 AdjustClock = KVM_CAP_ADJUST_CLOCK,
51 InternalErrorData = KVM_CAP_INTERNAL_ERROR_DATA,
52 #[cfg(target_arch = "x86_64")]
53 VcpuEvents = KVM_CAP_VCPU_EVENTS,
54 S390Psw = KVM_CAP_S390_PSW,
55 PpcSegstate = KVM_CAP_PPC_SEGSTATE,
56 Hyperv = KVM_CAP_HYPERV,
57 HypervVapic = KVM_CAP_HYPERV_VAPIC,
58 HypervSpin = KVM_CAP_HYPERV_SPIN,
59 PciSegment = KVM_CAP_PCI_SEGMENT,
60 PpcPairedSingles = KVM_CAP_PPC_PAIRED_SINGLES,
61 IntrShadow = KVM_CAP_INTR_SHADOW,
62 #[cfg(target_arch = "x86_64")]
63 Debugregs = KVM_CAP_DEBUGREGS,
64 X86RobustSinglestep = KVM_CAP_X86_ROBUST_SINGLESTEP,
65 PpcOsi = KVM_CAP_PPC_OSI,
66 PpcUnsetIrq = KVM_CAP_PPC_UNSET_IRQ,
67 EnableCap = KVM_CAP_ENABLE_CAP,
68 #[cfg(target_arch = "x86_64")]
69 Xsave = KVM_CAP_XSAVE,
70 #[cfg(target_arch = "x86_64")]
71 Xcrs = KVM_CAP_XCRS,
72 PpcGetPvinfo = KVM_CAP_PPC_GET_PVINFO,
73 PpcIrqLevel = KVM_CAP_PPC_IRQ_LEVEL,
74 AsyncPf = KVM_CAP_ASYNC_PF,
75 TscControl = KVM_CAP_TSC_CONTROL,
76 GetTscKhz = KVM_CAP_GET_TSC_KHZ,
77 PpcBookeSregs = KVM_CAP_PPC_BOOKE_SREGS,
78 SpaprTce = KVM_CAP_SPAPR_TCE,
79 PpcSmt = KVM_CAP_PPC_SMT,
80 PpcRma = KVM_CAP_PPC_RMA,
81 MaxVcpus = KVM_CAP_MAX_VCPUS,
82 PpcHior = KVM_CAP_PPC_HIOR,
83 PpcPapr = KVM_CAP_PPC_PAPR,
84 SwTlb = KVM_CAP_SW_TLB,
85 OneReg = KVM_CAP_ONE_REG,
86 S390Gmap = KVM_CAP_S390_GMAP,
87 TscDeadlineTimer = KVM_CAP_TSC_DEADLINE_TIMER,
88 S390Ucontrol = KVM_CAP_S390_UCONTROL,
89 SyncRegs = KVM_CAP_SYNC_REGS,
90 Pci23 = KVM_CAP_PCI_2_3,
91 KvmclockCtrl = KVM_CAP_KVMCLOCK_CTRL,
92 SignalMsi = KVM_CAP_SIGNAL_MSI,
93 PpcGetSmmuInfo = KVM_CAP_PPC_GET_SMMU_INFO,
94 S390Cow = KVM_CAP_S390_COW,
95 PpcAllocHtab = KVM_CAP_PPC_ALLOC_HTAB,
96 ReadonlyMem = KVM_CAP_READONLY_MEM,
97 IrqfdResample = KVM_CAP_IRQFD_RESAMPLE,
98 PpcBookeWatchdog = KVM_CAP_PPC_BOOKE_WATCHDOG,
99 PpcHtabFd = KVM_CAP_PPC_HTAB_FD,
100 S390CssSupport = KVM_CAP_S390_CSS_SUPPORT,
101 PpcEpr = KVM_CAP_PPC_EPR,
102 ArmPsci = KVM_CAP_ARM_PSCI,
103 ArmSetDeviceAddr = KVM_CAP_ARM_SET_DEVICE_ADDR,
104 DeviceCtrl = KVM_CAP_DEVICE_CTRL,
105 IrqMpic = KVM_CAP_IRQ_MPIC,
106 PpcRtas = KVM_CAP_PPC_RTAS,
107 IrqXics = KVM_CAP_IRQ_XICS,
108 ArmEl132bit = KVM_CAP_ARM_EL1_32BIT,
109 SpaprMultitce = KVM_CAP_SPAPR_MULTITCE,
110 ExtEmulCpuid = KVM_CAP_EXT_EMUL_CPUID,
111 HypervTime = KVM_CAP_HYPERV_TIME,
112 IoapicPolarityIgnored = KVM_CAP_IOAPIC_POLARITY_IGNORED,
113 EnableCapVm = KVM_CAP_ENABLE_CAP_VM,
114 S390Irqchip = KVM_CAP_S390_IRQCHIP,
115 IoeventfdNoLength = KVM_CAP_IOEVENTFD_NO_LENGTH,
116 VmAttributes = KVM_CAP_VM_ATTRIBUTES,
117 ArmPsci02 = KVM_CAP_ARM_PSCI_0_2,
118 PpcFixupHcall = KVM_CAP_PPC_FIXUP_HCALL,
119 PpcEnableHcall = KVM_CAP_PPC_ENABLE_HCALL,
120 CheckExtensionVm = KVM_CAP_CHECK_EXTENSION_VM,
121 ImmediateExit = KVM_CAP_IMMEDIATE_EXIT,
122 ArmPmuV3 = KVM_CAP_ARM_PMU_V3,
123 ArmProtectedVm = KVM_CAP_ARM_PROTECTED_VM,
124 X86ProtectedVm = KVM_CAP_X86_PROTECTED_VM,
125 ArmMte = KVM_CAP_ARM_MTE,
126 #[cfg(target_arch = "x86_64")]
127 BusLockDetect = KVM_CAP_X86_BUS_LOCK_EXIT,
128 MemNoncoherentDma = KVM_CAP_USER_CONFIGURE_NONCOHERENT_DMA_CROS,
130 UserMemory2 = KVM_CAP_USER_MEMORY2,
131 #[cfg(target_arch = "aarch64")]
132 Sve = KVM_CAP_ARM_SVE,
133 MsiDevid = KVM_CAP_MSI_DEVID,
134}