qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [RFC 09/13] kill cpu_x86_register()


From: Eduardo Habkost
Subject: [Qemu-devel] [RFC 09/13] kill cpu_x86_register()
Date: Thu, 16 Aug 2012 13:59:08 -0300

Merge it with cpu_x86_create().

Signed-off-by: Eduardo Habkost <address@hidden>
---
 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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]