[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC 10/19] move CPU object creation to cpu.c
From: |
Eduardo Habkost |
Subject: |
[Qemu-devel] [RFC 10/19] move CPU object creation to cpu.c |
Date: |
Thu, 2 Aug 2012 23:59:17 -0300 |
cpu.c handles the class registration and parsing of the CPU model string, so
moving it there will make it easier to refactor the CPU model string parsing
and CPU object creation.
Signed-off-by: Eduardo Habkost <address@hidden>
---
target-i386/cpu.c | 17 +++++++++++++++++
target-i386/cpu.h | 1 +
target-i386/helper.c | 14 +-------------
3 files changed, 19 insertions(+), 13 deletions(-)
diff --git a/target-i386/cpu.c b/target-i386/cpu.c
index e5be586..c96300e 100644
--- a/target-i386/cpu.c
+++ b/target-i386/cpu.c
@@ -1434,6 +1434,23 @@ int cpu_x86_register(X86CPU *cpu, const char *cpu_model)
return 0;
}
+X86CPU *cpu_x86_create(const char *cpu_model)
+{
+ X86CPU *cpu;
+ CPUX86State *env;
+
+ cpu = X86_CPU(object_new(TYPE_X86_CPU));
+ env = &cpu->env;
+ env->cpu_model_str = cpu_model;
+ if (cpu_x86_register(cpu, cpu_model) < 0) {
+ object_delete(OBJECT(cpu));
+ return NULL;
+ }
+
+ x86_cpu_realize(OBJECT(cpu), NULL);
+ return cpu;
+}
+
#if !defined(CONFIG_USER_ONLY)
/* copy vendor id string to 32 bit register, nul pad as needed
*/
diff --git a/target-i386/cpu.h b/target-i386/cpu.h
index c81f7bf..436ff86 100644
--- a/target-i386/cpu.h
+++ b/target-i386/cpu.h
@@ -927,6 +927,7 @@ int cpu_x86_signal_handler(int host_signum, void *pinfo,
void cpu_x86_cpuid(CPUX86State *env, uint32_t index, uint32_t count,
uint32_t *eax, uint32_t *ebx,
uint32_t *ecx, uint32_t *edx);
+X86CPU *cpu_x86_create(const char *cpu_model);
int cpu_x86_register(X86CPU *cpu, const char *cpu_model);
void cpu_clear_apic_feature(CPUX86State *env);
void host_cpuid(uint32_t function, uint32_t count,
diff --git a/target-i386/helper.c b/target-i386/helper.c
index 5a7eb56..3c10ec1 100644
--- a/target-i386/helper.c
+++ b/target-i386/helper.c
@@ -1153,8 +1153,6 @@ int cpu_x86_get_descr_debug(CPUX86State *env, unsigned
int selector,
X86CPU *cpu_x86_init(const char *cpu_model)
{
- X86CPU *cpu;
- CPUX86State *env;
static int inited;
/* init various static tables used in TCG mode */
@@ -1167,17 +1165,7 @@ X86CPU *cpu_x86_init(const char *cpu_model)
#endif
}
- cpu = X86_CPU(object_new(TYPE_X86_CPU));
- env = &cpu->env;
- env->cpu_model_str = cpu_model;
- if (cpu_x86_register(cpu, cpu_model) < 0) {
- object_delete(OBJECT(cpu));
- return NULL;
- }
-
- x86_cpu_realize(OBJECT(cpu), NULL);
-
- return cpu;
+ return cpu_x86_create(cpu_model);
}
#if !defined(CONFIG_USER_ONLY)
--
1.7.11.2
- [Qemu-devel] [RFC 09/19] i386: reorder object setup on cpu_x86_init(), (continued)
- [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, 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 <=
- [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