lscpu: minor cleanup and improve hypervisor detection
- 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@suse.cz> CC: Petr Uzel <petr.uzel@suse.cz> Signed-off-by: Ruediger Meier <ruediger.meier@ga-group.nl>
This commit is contained in:
parent
deedae5f5c
commit
96ce475f96
|
@ -87,7 +87,26 @@ const char *hv_vendors[] = {
|
||||||
[HYPER_UML] = "User-mode Linux",
|
[HYPER_UML] = "User-mode Linux",
|
||||||
[HYPER_INNOTEK] = "Innotek GmbH",
|
[HYPER_INNOTEK] = "Innotek GmbH",
|
||||||
[HYPER_HITACHI] = "Hitachi",
|
[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 */
|
/* CPU modes */
|
||||||
|
@ -589,9 +608,15 @@ read_hypervisor(struct lscpu_desc *desc, struct lscpu_modifier *mod)
|
||||||
desc->hyper = HYPER_XEN;
|
desc->hyper = HYPER_XEN;
|
||||||
|
|
||||||
/* Xen full-virt on non-x86_64 */
|
/* 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->hyper = HYPER_XEN;
|
||||||
desc->virtype = VIRT_FULL;
|
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 */
|
/* IBM PR/SM */
|
||||||
} else if (path_exist(_PATH_PROC_SYSINFO)) {
|
} else if (path_exist(_PATH_PROC_SYSINFO)) {
|
||||||
|
|
|
@ -13,7 +13,8 @@ enum {
|
||||||
HYPER_UML,
|
HYPER_UML,
|
||||||
HYPER_INNOTEK, /* VBOX */
|
HYPER_INNOTEK, /* VBOX */
|
||||||
HYPER_HITACHI,
|
HYPER_HITACHI,
|
||||||
HYPER_PARALLELS /* OpenVZ/VIrtuozzo */
|
HYPER_PARALLELS, /* OpenVZ/VIrtuozzo */
|
||||||
|
HYPER_VBOX,
|
||||||
};
|
};
|
||||||
|
|
||||||
extern int read_hypervisor_dmi(void);
|
extern int read_hypervisor_dmi(void);
|
||||||
|
|
Loading…
Reference in New Issue