From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:52917) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T24ij-0000I3-Re for qemu-devel@nongnu.org; Thu, 16 Aug 2012 14:23:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1T24ih-0005wg-UT for qemu-devel@nongnu.org; Thu, 16 Aug 2012 14:23:01 -0400 Received: from mx1.redhat.com ([209.132.183.28]:55522) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T24ih-0005wR-Mr for qemu-devel@nongnu.org; Thu, 16 Aug 2012 14:22:59 -0400 From: Eduardo Habkost Date: Thu, 16 Aug 2012 13:59:08 -0300 Message-Id: <1345136352-10756-10-git-send-email-ehabkost@redhat.com> In-Reply-To: <1345136352-10756-1-git-send-email-ehabkost@redhat.com> References: <1345136352-10756-1-git-send-email-ehabkost@redhat.com> Subject: [Qemu-devel] [RFC 09/13] kill cpu_x86_register() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: aliguori@us.ibm.com, stefanha@linux.vnet.ibm.com, gleb@redhat.com, vijaymohan.pandarathil@hp.com, jan.kiszka@siemens.com, mtosatti@redhat.com, mdroth@linux.vnet.ibm.com, blauwirbel@gmail.com, avi@redhat.com, pbonzini@redhat.com, akong@redhat.com, lersek@redhat.com, afaerber@suse.de Merge it with cpu_x86_create(). Signed-off-by: Eduardo Habkost --- target-i386/cpu.c | 42 ++++++++++++++++++------------------------ target-i386/cpu.h | 1 - 2 files changed, 18 insertions(+), 25 deletions(-) diff --git a/target-i386/cpu.c b/target-i386/cpu.c index c48de43..e7f32fc 100644 --- a/target-i386/cpu.c +++ b/target-i386/cpu.c @@ -1499,57 +1499,51 @@ CpuDefinitionInfoList *qmp_query_cpu_definitions(Error **errp) return cpu_list; } -int cpu_x86_register(X86CPU *cpu, const char *cpu_model) +X86CPU *cpu_x86_create(const char *cpu_model) { + X86CPU *cpu; + CPUX86State *env; X86CPUDefinition def1, *def = &def1; Error *error = NULL; QDict *features = NULL; char *name = NULL; + cpu = X86_CPU(object_new(TYPE_X86_CPU)); + env = &cpu->env; + env->cpu_model_str = cpu_model; + /* for CPU subclasses should go into cpu_x86_init() before object_new() */ compat_normalize_cpu_model(cpu_model, &name, &features, &error); if (error_is_set(&error)) { - goto out; + goto error; } /* this block should be replaced by CPU subclasses */ memset(def, 0, sizeof(*def)); if (cpu_x86_find_by_name(cpu, def, name, &error) < 0) { - goto out; + goto error; } cpudef_2_x86_cpu(cpu, def, &error); /* for CPU subclasses should go between object_new() and * x86_cpu_realize() */ cpu_x86_set_props(cpu, features, &error); - -out: - QDECREF(features); - g_free(name); if (error_is_set(&error)) { - fprintf(stderr, "%s\n", error_get_pretty(error)); - error_free(error); - return -1; - } - 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) { goto error; } + QDECREF(features); + g_free(name); + x86_cpu_realize(OBJECT(cpu), NULL); return cpu; error: + QDECREF(features); + g_free(name); + if (error_is_set(&error)) { + fprintf(stderr, "%s\n", error_get_pretty(error)); + error_free(error); + } object_delete(OBJECT(cpu)); return NULL; } diff --git a/target-i386/cpu.h b/target-i386/cpu.h index 6f48ba8..f2ee814 100644 --- a/target-i386/cpu.h +++ b/target-i386/cpu.h @@ -925,7 +925,6 @@ 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, uint32_t *eax, uint32_t *ebx, uint32_t *ecx, uint32_t *edx); -- 1.7.11.2