chiark / gitweb /
systemd-detect-virt: detect s390 virtualization
[elogind.git] / src / shared / virt.c
index 20a8d7c5bfc4287bdb6bbea0da1aac0a7bf4734a..b4368952ffac3d8f3dde431caff786e39f11a5b8 100644 (file)
@@ -220,6 +220,23 @@ int detect_vm(const char **id) {
                 goto finish;
         }
 
+#if defined(__s390__)
+        {
+                _cleanup_free_ char *t = NULL;
+
+                r = get_status_field("/proc/sysinfo", "VM00 Control Program:", &t);
+                if (r >= 0) {
+                        if (streq(t, "z/VM"))
+                                _id = "zvm";
+                        else
+                                _id = "kvm";
+                        r = 1;
+
+                        goto finish;
+                }
+        }
+#endif
+
         r = 0;
 
 finish: