@@ -1257,6 +1257,8 @@ static void x86_set_hyperv(Object *obj, Error **errp)
{
object_property_set_int(obj, CPUID_HV_LEVEL_HYPERV_CPUID_MIN,
"hypervisor-level", errp);
+ object_property_set_str(obj, CPUID_HV_VENDOR_HYPERV,
+ "hypervisor-vendor", errp);
}
static void x86_get_hv_spinlocks(Object *obj, Visitor *v, void *opaque,
@@ -491,6 +491,7 @@
/* The maximum input value for hypervisor CPUID information for
* Microsoft hypervisors. Is related to HYPERV_CPUID_MIN. */
#define CPUID_HV_LEVEL_HYPERV_CPUID_MIN 0x40000005
+#define CPUID_HV_VENDOR_HYPERV "Microsoft Hv"
#define CPUID_MWAIT_IBE (1 << 1) /* Interrupts can exit capability */
#define CPUID_MWAIT_EMX (1 << 0) /* enumeration supported */
Part of "target-i386: Add way to expose VMWare CPUID" At this stage it is used to set the cpu object's hypervisor vendor to the default for Microsoft's Hypervisor ("Microsoft Hv"). Also known as Paravirtualization vendor. This is EBX, ECX, EDX data for 0x40000000. QEMU knows this is KVM_CPUID_SIGNATURE (0x40000000). This is based on: Microsoft Hypervisor CPUID Leaves: http://msdn.microsoft.com/en-us/library/windows/hardware/ff542428%28v=vs.85%29.aspx Signed-off-by: Don Slutz <Don@CloudSwitch.com> --- target-i386/cpu.c | 2 ++ target-i386/cpu.h | 1 + 2 files changed, 3 insertions(+), 0 deletions(-)