[systemd-devel] [PATCH] virt: add detect_vm_devicetree for powerpc arches
Chris J Arges
chris.j.arges at canonical.com
Tue Feb 3 15:56:06 PST 2015
Check sysfs devicetree values in order to detect if we are running on a KVM
hypervisor on a powerpc architecture.
---
src/shared/virt.c | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/src/shared/virt.c b/src/shared/virt.c
index f10baab..7c1381f 100644
--- a/src/shared/virt.c
+++ b/src/shared/virt.c
@@ -101,6 +101,22 @@ static int detect_vm_cpuid(const char **_id) {
return 0;
}
+static int detect_vm_devicetree(const char **_id) {
+#if defined(__powerpc__) || defined(__powerpc64__)
+ _cleanup_free_ char *hvtype = NULL;
+ int r;
+
+ r = read_one_line_file("/sys/firmware/devicetree/base/hypervisor/compatible", &hvtype);
+ if (r >= 0) {
+ if (streq(hvtype, "linux,kvm")) {
+ *_id = "kvm";
+ return 1;
+ }
+ }
+#endif
+ return 0;
+}
+
static int detect_vm_dmi(const char **_id) {
/* Both CPUID and DMI are x86 specific interfaces... */
@@ -204,6 +220,10 @@ int detect_vm(const char **id) {
if (r != 0)
goto finish;
+ r = detect_vm_devicetree(&_id);
+ if (r != 0)
+ goto finish;
+
if (_id) {
/* "other" */
r = 1;
--
1.9.1
More information about the systemd-devel
mailing list