Bool Hostinfo_TouchBackDoor(void);
Bool Hostinfo_TouchVirtualPC(void);
Bool Hostinfo_TouchXen(void);
+Bool Hostinfo_HyperV(void);
char *Hostinfo_HypervisorCPUIDSig(void);
void Hostinfo_LogHypervisorCPUID(void);
char *Hostinfo_HypervisorInterfaceSig(void);
}
+/*
+ *----------------------------------------------------------------------
+ *
+ * Hostinfo_HyperV --
+ *
+ * Check for HyperV.
+ *
+ * Results:
+ * TRUE if we are running in HyperV.
+ * FALSE otherwise.
+ *
+ *----------------------------------------------------------------------
+ */
+
+Bool
+Hostinfo_HyperV(void)
+{
+ Bool hyperVAvailable = FALSE;
+#if defined(__i386__) || defined(__x86_64__)
+ char *hypervisorSig = Hostinfo_HypervisorCPUIDSig();
+
+ if (hypervisorSig) {
+ if (!memcmp(CPUID_HYPERV_HYPERVISOR_VENDOR_STRING, hypervisorSig,
+ sizeof CPUID_HYPERV_HYPERVISOR_VENDOR_STRING)) {
+ hyperVAvailable = TRUE;
+ }
+ free(hypervisorSig);
+ }
+#endif
+
+ return hyperVAvailable;
+}
+
+
/*
*----------------------------------------------------------------------
*