[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC 17/19] kill cpu_x86_build_from_name()
From: |
Eduardo Habkost |
Subject: |
[Qemu-devel] [RFC 17/19] kill cpu_x86_build_from_name() |
Date: |
Thu, 2 Aug 2012 23:59:24 -0300 |
We will reorder some code in the CPU object initialization, so move all
the cpu_x86_build_from_name() code inside cpu_x86_create().
Signed-off-by: Eduardo Habkost <address@hidden>
---
target-i386/cpu.c | 48 ++++++++++++++++++------------------------------
1 file changed, 18 insertions(+), 30 deletions(-)
diff --git a/target-i386/cpu.c b/target-i386/cpu.c
index 751cf90..f401a16 100644
--- a/target-i386/cpu.c
+++ b/target-i386/cpu.c
@@ -1284,35 +1284,6 @@ error:
return -1;
}
-static int cpu_x86_build_from_name(X86CPUDefinition *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;
- }
-
- if (check_cpuid) {
- if (check_features_against_host(x86_cpu_def) && enforce_cpuid) {
- goto error;
- }
- }
- g_free(s);
- return 0;
-
-error:
- g_free(s);
- return -1;
-}
-
/* generate a composite string into buf of all cpuid names in featureset
* selected by fbits. indicate truncation at bufsize in the event of overflow.
* if flags, suppress names undefined in featureset.
@@ -1468,6 +1439,10 @@ X86CPU *cpu_x86_create(const char *cpu_model)
X86CPU *cpu;
CPUX86State *env;
X86CPUDefinition def1, *def = &def1;
+ char *last;
+ char *s = g_strdup(cpu_model);
+ char *name = strtok_r(s, ",", &last);
+ char *featlist = strtok_r(NULL, "", &last);
cpu = X86_CPU(object_new(TYPE_X86_CPU));
env = &cpu->env;
@@ -1475,18 +1450,31 @@ X86CPU *cpu_x86_create(const char *cpu_model)
memset(def, 0, sizeof(*def));
- if (cpu_x86_build_from_name(def, cpu_model) < 0) {
+ if (cpu_x86_find_by_name(def, name) != 0) {
goto error;
}
+ if (cpu_x86_extend_features(def, featlist) < 0) {
+ goto error;
+ }
+
+ if (check_cpuid) {
+ if (check_features_against_host(def) && enforce_cpuid) {
+ goto error;
+ }
+ }
+
if (cpu_x86_init_from_def(cpu, def) < 0) {
goto error;
}
x86_cpu_realize(OBJECT(cpu), NULL);
+
+ g_free(s);
return cpu;
error:
+ g_free(s);
object_delete(OBJECT(cpu));
return NULL;
}
--
1.7.11.2
- [Qemu-devel] [RFC 00/19] i386 CPU code cleanup + CPU model classes, Eduardo Habkost, 2012/08/02
- [Qemu-devel] [RFC 14/19] extract CPU object field initialization from cpu_x86_register(), Eduardo Habkost, 2012/08/02
- [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 <=
- [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, 2012/08/02
- [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