[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC 08/19] i386: extract CPU model lookup to a separate fu
From: |
Eduardo Habkost |
Subject: |
[Qemu-devel] [RFC 08/19] i386: extract CPU model lookup to a separate function |
Date: |
Thu, 2 Aug 2012 23:59:15 -0300 |
Signed-off-by: Eduardo Habkost <address@hidden>
---
target-i386/cpu.c | 24 +++++++++++++++++-------
1 file changed, 17 insertions(+), 7 deletions(-)
diff --git a/target-i386/cpu.c b/target-i386/cpu.c
index dd2dc45..e5be586 100644
--- a/target-i386/cpu.c
+++ b/target-i386/cpu.c
@@ -1231,16 +1231,10 @@ error:
return -1;
}
-static int cpu_x86_build_from_name(x86_def_t *x86_cpu_def,
- const char *cpu_model)
+static int cpu_x86_find_by_name(x86_def_t *x86_cpu_def, const char *name)
{
x86_def_t *def;
- char *last;
- char *s = g_strdup(cpu_model);
- char *name = strtok_r(s, ",", &last);
- char *featlist = strtok_r(NULL, "", &last);
-
for (def = x86_defs; def; def = def->next) {
if (name && !strcmp(name, def->name)) {
break;
@@ -1254,6 +1248,22 @@ static int cpu_x86_build_from_name(x86_def_t
*x86_cpu_def,
} else {
memcpy(x86_cpu_def, def, sizeof(*def));
}
+ return 0;
+error:
+ return -1;
+}
+
+static int cpu_x86_build_from_name(x86_def_t *x86_cpu_def,
+ const char *cpu_model)
+{
+ char *last;
+ char *s = g_strdup(cpu_model);
+ char *name = strtok_r(s, ",", &last);
+ char *featlist = strtok_r(NULL, "", &last);
+
+ if (cpu_x86_find_by_name(x86_cpu_def, name) != 0) {
+ goto error;
+ }
if (cpu_x86_extend_features(x86_cpu_def, featlist) < 0) {
goto error;
--
1.7.11.2
- [Qemu-devel] [RFC 15/19] cpu_x86_create: move error handling to end of function, (continued)
- [Qemu-devel] [RFC 15/19] cpu_x86_create: move error handling to end of function, Eduardo Habkost, 2012/08/02
- [Qemu-devel] [RFC 02/19] x86_cpudef_setup: coding style change, Eduardo Habkost, 2012/08/02
- [Qemu-devel] [RFC 09/19] i386: reorder object setup on cpu_x86_init(), Eduardo Habkost, 2012/08/02
- [Qemu-devel] [RFC 16/19] kill cpu_x86_register(), Eduardo Habkost, 2012/08/02
- [Qemu-devel] [RFC 17/19] kill cpu_x86_build_from_name(), Eduardo Habkost, 2012/08/02
- [Qemu-devel] [RFC 19/19] HACK: late CPU class initialization, Eduardo Habkost, 2012/08/02
- [Qemu-devel] [RFC 05/19] cpu_x86_build_from_name: use strtok_r(), Eduardo Habkost, 2012/08/02
- [Qemu-devel] [RFC 13/19] move X86CPUDefinition to cpu-qom.h, Eduardo Habkost, 2012/08/02
- [Qemu-devel] [RFC 01/19] target-i386/cpu.c: coding style fixes, Eduardo Habkost, 2012/08/02
- [Qemu-devel] [RFC 18/19] register a class for each CPU model, Eduardo Habkost, 2012/08/02
- [Qemu-devel] [RFC 08/19] i386: extract CPU model lookup to a separate function,
Eduardo Habkost <=
- [Qemu-devel] [RFC 07/19] i386: cpu: extract parsing of feature strings to separate function, Eduardo Habkost, 2012/08/02
- [Qemu-devel] [RFC 10/19] move CPU object creation to cpu.c, Eduardo Habkost, 2012/08/02
- [Qemu-devel] [RFC 03/19] i386: x86_def_t: rename 'flags' field, Eduardo Habkost, 2012/08/02
- [Qemu-devel] [RFC 11/19] rename x86_def_t to X86CPUDefinition, Eduardo Habkost, 2012/08/02
- [Qemu-devel] [RFC 06/19] i386: cpu: extract the full feature list before parsing it, Eduardo Habkost, 2012/08/02
- [Qemu-devel] [RFC 12/19] create struct X86CPUModelTableEntry, Eduardo Habkost, 2012/08/02
- [Qemu-devel] [RFC 04/19] rename cpu_x86_find_by_name to x86_cpu_build_from_name, Eduardo Habkost, 2012/08/02