hostcpu: Implement virHostCPUGetSignature for ppc64

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Jiri Denemark 2020-04-02 22:35:30 +02:00
parent 44f826e4a0
commit 2a68ceaa6e
5 changed files with 41 additions and 21 deletions

View File

@ -1429,8 +1429,9 @@ virHostCPUReadSignature(virArch arch,
g_autofree char *family = NULL; g_autofree char *family = NULL;
g_autofree char *model = NULL; g_autofree char *model = NULL;
g_autofree char *stepping = NULL; g_autofree char *stepping = NULL;
g_autofree char *revision = NULL;
if (!ARCH_IS_X86(arch)) if (!ARCH_IS_X86(arch) && !ARCH_IS_PPC64(arch))
return 0; return 0;
while (fgets(line, lineLen, cpuinfo)) { while (fgets(line, lineLen, cpuinfo)) {
@ -1442,27 +1443,42 @@ virHostCPUReadSignature(virArch arch,
g_strstrip(parts[0]); g_strstrip(parts[0]);
g_strstrip(parts[1]); g_strstrip(parts[1]);
if (STREQ(parts[0], "vendor_id")) { if (ARCH_IS_X86(arch)) {
if (!vendor) if (STREQ(parts[0], "vendor_id")) {
vendor = g_steal_pointer(&parts[1]); if (!vendor)
} else if (STREQ(parts[0], "model name")) { vendor = g_steal_pointer(&parts[1]);
if (!name) } else if (STREQ(parts[0], "model name")) {
name = g_steal_pointer(&parts[1]); if (!name)
} else if (STREQ(parts[0], "cpu family")) { name = g_steal_pointer(&parts[1]);
if (!family) } else if (STREQ(parts[0], "cpu family")) {
family = g_steal_pointer(&parts[1]); if (!family)
} else if (STREQ(parts[0], "model")) { family = g_steal_pointer(&parts[1]);
if (!model) } else if (STREQ(parts[0], "model")) {
model = g_steal_pointer(&parts[1]); if (!model)
} else if (STREQ(parts[0], "stepping")) { model = g_steal_pointer(&parts[1]);
if (!stepping) } else if (STREQ(parts[0], "stepping")) {
stepping = g_steal_pointer(&parts[1]); if (!stepping)
} stepping = g_steal_pointer(&parts[1]);
}
if (vendor && name && family && model && stepping) { if (vendor && name && family && model && stepping) {
*signature = g_strdup_printf("%s, %s, family: %s, model: %s, stepping: %s", *signature = g_strdup_printf("%s, %s, family: %s, model: %s, stepping: %s",
vendor, name, family, model, stepping); vendor, name, family, model, stepping);
return 0; return 0;
}
} else if (ARCH_IS_PPC64(arch)) {
if (STREQ(parts[0], "cpu")) {
if (!name)
name = g_steal_pointer(&parts[1]);
} else if (STREQ(parts[0], "revision")) {
if (!revision)
revision = g_steal_pointer(&parts[1]);
}
if (name && revision) {
*signature = g_strdup_printf("%s, rev %s", name, revision);
return 0;
}
} }
} }

View File

@ -0,0 +1 @@
POWER8E (raw), altivec supported, rev 2.1 (pvr 004b 0201)

View File

@ -0,0 +1 @@
POWER8E (raw), altivec supported, rev 2.1 (pvr 004b 0201)

View File

@ -0,0 +1 @@
POWER8E (raw), altivec supported, rev 2.1 (pvr 004b 0201)

View File

@ -0,0 +1 @@
POWER8E (raw), altivec supported, rev 2.1 (pvr 004b 0201)