summaryrefslogtreecommitdiff
path: root/src/basic/virt.c
diff options
context:
space:
mode:
authorMichal Suchanek <msuchanek@suse.de>2020-10-02 11:05:23 +0200
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2020-10-06 08:24:12 +0200
commit3224e38bb6b3287ca253cbafb460a150544d5818 (patch)
treeebc6ecd3c5f03698d40442d23fefc1329302bc28 /src/basic/virt.c
parentbf645844f7afed618e128985c3a5e95665f97b49 (diff)
downloadsystemd-3224e38bb6b3287ca253cbafb460a150544d5818.tar.gz
basic/virt: Detect PowerVM hypervisor
Currently systemd-detect-virt fails to detect running under PowerVM. Add code to detect PowerVM based on code in util-linux. Signed-off-by: Michal Suchanek <msuchanek@suse.de>
Diffstat (limited to 'src/basic/virt.c')
-rw-r--r--src/basic/virt.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/basic/virt.c b/src/basic/virt.c
index 80128cb3aa..bb908847f5 100644
--- a/src/basic/virt.c
+++ b/src/basic/virt.c
@@ -93,6 +93,11 @@ static int detect_vm_device_tree(void) {
_cleanup_closedir_ DIR *dir = NULL;
struct dirent *dent;
+ if (access("/proc/device-tree/ibm,partition-name", F_OK) == 0 &&
+ access("/proc/device-tree/hmc-managed?", F_OK) == 0 &&
+ access("/proc/device-tree/chosen/qemu,graphic-width", F_OK) != 0)
+ return VIRTUALIZATION_POWERVM;
+
dir = opendir("/proc/device-tree");
if (!dir) {
if (errno == ENOENT) {
@@ -679,6 +684,7 @@ static const char *const virtualization_table[_VIRTUALIZATION_MAX] = {
[VIRTUALIZATION_BHYVE] = "bhyve",
[VIRTUALIZATION_QNX] = "qnx",
[VIRTUALIZATION_ACRN] = "acrn",
+ [VIRTUALIZATION_POWERVM] = "powervm",
[VIRTUALIZATION_VM_OTHER] = "vm-other",
[VIRTUALIZATION_SYSTEMD_NSPAWN] = "systemd-nspawn",