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.
This commit is contained in:
Chris J Arges 2015-02-03 17:56:06 -06:00 committed by Lennart Poettering
parent 5fae368bda
commit d831deb512
1 changed files with 20 additions and 0 deletions

View File

@ -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;