[systemd-commits] src/shared
Lennart Poettering
lennart at kemper.freedesktop.org
Tue Feb 3 16:00:06 PST 2015
src/shared/virt.c | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
New commits:
commit d831deb512ab1d11aab156f69620db506c554170
Author: Chris J Arges <chris.j.arges at canonical.com>
Date: Tue Feb 3 17:56:06 2015 -0600
virt: add detect_vm_devicetree for powerpc arches
Check sysfs devicetree values in order to detect if we are running on a KVM
hypervisor on a powerpc architecture.
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;
More information about the systemd-commits
mailing list