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 *model = 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;
while (fgets(line, lineLen, cpuinfo)) {
@ -1442,27 +1443,42 @@ virHostCPUReadSignature(virArch arch,
g_strstrip(parts[0]);
g_strstrip(parts[1]);
if (STREQ(parts[0], "vendor_id")) {
if (!vendor)
vendor = g_steal_pointer(&parts[1]);
} else if (STREQ(parts[0], "model name")) {
if (!name)
name = g_steal_pointer(&parts[1]);
} else if (STREQ(parts[0], "cpu family")) {
if (!family)
family = g_steal_pointer(&parts[1]);
} else if (STREQ(parts[0], "model")) {
if (!model)
model = g_steal_pointer(&parts[1]);
} else if (STREQ(parts[0], "stepping")) {
if (!stepping)
stepping = g_steal_pointer(&parts[1]);
}
if (ARCH_IS_X86(arch)) {
if (STREQ(parts[0], "vendor_id")) {
if (!vendor)
vendor = g_steal_pointer(&parts[1]);
} else if (STREQ(parts[0], "model name")) {
if (!name)
name = g_steal_pointer(&parts[1]);
} else if (STREQ(parts[0], "cpu family")) {
if (!family)
family = g_steal_pointer(&parts[1]);
} else if (STREQ(parts[0], "model")) {
if (!model)
model = g_steal_pointer(&parts[1]);
} else if (STREQ(parts[0], "stepping")) {
if (!stepping)
stepping = g_steal_pointer(&parts[1]);
}
if (vendor && name && family && model && stepping) {
*signature = g_strdup_printf("%s, %s, family: %s, model: %s, stepping: %s",
vendor, name, family, model, stepping);
return 0;
if (vendor && name && family && model && stepping) {
*signature = g_strdup_printf("%s, %s, family: %s, model: %s, stepping: %s",
vendor, name, family, model, stepping);
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)