From: Ruediger Meier <ruediger.meier@xxxxxxxxxxx> - add HYPER_VBOX - improve HYPER_VMWARE This patch comes from openSUSE / SLE. Original author was probably Petr Uzel. Internal SUSE references: fate310255, sr226509 CC: Stanislav Brabec <sbrabec@xxxxxxx> CC: Petr Uzel <petr.uzel@xxxxxxx> Signed-off-by: Ruediger Meier <ruediger.meier@xxxxxxxxxxx> --- sys-utils/lscpu.c | 29 +++++++++++++++++++++++++++-- sys-utils/lscpu.h | 3 ++- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/sys-utils/lscpu.c b/sys-utils/lscpu.c index ad1a6b3..0203916 100644 --- a/sys-utils/lscpu.c +++ b/sys-utils/lscpu.c @@ -87,7 +87,26 @@ const char *hv_vendors[] = { [HYPER_UML] = "User-mode Linux", [HYPER_INNOTEK] = "Innotek GmbH", [HYPER_HITACHI] = "Hitachi", - [HYPER_PARALLELS] = "Parallels" + [HYPER_PARALLELS] = "Parallels", + [HYPER_VBOX] = "Oracle" +}; + +const int hv_vendor_pci[] = { + [HYPER_NONE] = 0x0000, + [HYPER_XEN] = 0x5853, + [HYPER_KVM] = 0x0000, + [HYPER_MSHV] = 0x1414, + [HYPER_VMWARE] = 0x15ad, + [HYPER_VBOX] = 0x80ee +}; + +const int hv_graphics_pci[] = { + [HYPER_NONE] = 0x0000, + [HYPER_XEN] = 0x0001, + [HYPER_KVM] = 0x0000, + [HYPER_MSHV] = 0x5353, + [HYPER_VMWARE] = 0x0710, + [HYPER_VBOX] = 0xbeef }; /* CPU modes */ @@ -589,9 +608,15 @@ read_hypervisor(struct lscpu_desc *desc, struct lscpu_modifier *mod) desc->hyper = HYPER_XEN; /* Xen full-virt on non-x86_64 */ - } else if (has_pci_device(0x5853, 0x0001)) { + } else if (has_pci_device( hv_vendor_pci[HYPER_XEN], hv_graphics_pci[HYPER_XEN])) { desc->hyper = HYPER_XEN; desc->virtype = VIRT_FULL; + } else if (has_pci_device( hv_vendor_pci[HYPER_VMWARE], hv_graphics_pci[HYPER_VMWARE])) { + desc->hyper = HYPER_VMWARE; + desc->virtype = VIRT_FULL; + } else if (has_pci_device( hv_vendor_pci[HYPER_VBOX], hv_graphics_pci[HYPER_VBOX])) { + desc->hyper = HYPER_VBOX; + desc->virtype = VIRT_FULL; /* IBM PR/SM */ } else if (path_exist(_PATH_PROC_SYSINFO)) { diff --git a/sys-utils/lscpu.h b/sys-utils/lscpu.h index 312038f..7bb538d 100644 --- a/sys-utils/lscpu.h +++ b/sys-utils/lscpu.h @@ -13,7 +13,8 @@ enum { HYPER_UML, HYPER_INNOTEK, /* VBOX */ HYPER_HITACHI, - HYPER_PARALLELS /* OpenVZ/VIrtuozzo */ + HYPER_PARALLELS, /* OpenVZ/VIrtuozzo */ + HYPER_VBOX }; extern int read_hypervisor_dmi(void); -- 1.8.4.5 -- To unsubscribe from this list: send the line "unsubscribe util-linux" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html