Skip to content

Commit

Permalink
virt: add detect_vm_devicetree for powerpc arches
Browse files Browse the repository at this point in the history
Check sysfs devicetree values in order to detect if we are running on a KVM
hypervisor on a powerpc architecture.
  • Loading branch information
Chris J Arges authored and poettering committed Feb 3, 2015
1 parent 5fae368 commit d831deb
Showing 1 changed file with 20 additions and 0 deletions.
20 changes: 20 additions & 0 deletions src/shared/virt.c
Original file line number Diff line number Diff line change
Expand Up @@ -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... */
Expand Down Expand Up @@ -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;
Expand Down

0 comments on commit d831deb

Please sign in to comment.