From 5fd2087a1b7b3075828de741d76188441ee35bc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20F=C3=A4rber?= Date: Mon, 2 Apr 2012 23:20:08 +0200 Subject: target-i386: QOM'ify CPU MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Embed CPUX86State as first member of X86CPU. Distinguish between "x86_64-cpu" and "i386-cpu". Drop cpu_x86_close() in favor of calling object_delete() directly. For now let CPUClass::reset() call cpu_state_reset(). Signed-off-by: Andreas Färber --- target-i386/helper.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) (limited to 'target-i386/helper.c') diff --git a/target-i386/helper.c b/target-i386/helper.c index 83122bf..fb87975 100644 --- a/target-i386/helper.c +++ b/target-i386/helper.c @@ -101,11 +101,6 @@ void cpu_state_reset(CPUX86State *env) cpu_watchpoint_remove_all(env, BP_CPU); } -void cpu_x86_close(CPUX86State *env) -{ - g_free(env); -} - static void cpu_x86_version(CPUX86State *env, int *family, int *model) { int cpuver = env->cpuid_version; @@ -1248,10 +1243,12 @@ int cpu_x86_get_descr_debug(CPUX86State *env, unsigned int selector, CPUX86State *cpu_x86_init(const char *cpu_model) { + X86CPU *cpu; CPUX86State *env; static int inited; - env = g_malloc0(sizeof(CPUX86State)); + cpu = X86_CPU(object_new(TYPE_X86_CPU)); + env = &cpu->env; cpu_exec_init(env); env->cpu_model_str = cpu_model; @@ -1265,7 +1262,7 @@ CPUX86State *cpu_x86_init(const char *cpu_model) #endif } if (cpu_x86_register(env, cpu_model) < 0) { - cpu_x86_close(env); + object_delete(OBJECT(cpu)); return NULL; } env->cpuid_apic_id = env->cpu_index; -- cgit v1.1