Skip to content

KVM Paravirtual ABI

include/virt/kvm_para.h View source View on GitHub
#define KVM_CPUID_SIGNATURE "KVMKVMKVM\0\0\0"
source

CPUID offsets

#define KVM_CPUID_FEATURES_OFF 1
source
#define KVM_FEATURE_PV_SEND_IPI 11
source
#define KVM_HC_SEND_IPI 10
source

Hypercall numbers, passed in RAX to vmcall/vmmcall

#define KVM_EPERM 1
source

Various error codes… TODO: Consider enum? I only need a few now just to do the simple stuff

#define KVM_E2BIG 7
source
#define KVM_EFAULT 14
source
#define KVM_EINVAL 22
source
#define KVM_EOPNOTSUPP 95
source
#define KVM_ENOSYS 1000
source
#define KVM_PV_IPI_WINDOW 128
source

KVM_HC_SEND_IPI needs a 128 bit APIC ID