diff options
author | Andreas Färber <afaerber@suse.de> | 2013-02-01 15:12:13 +0100 |
---|---|---|
committer | Andreas Färber <afaerber@suse.de> | 2013-02-16 14:51:00 +0100 |
commit | 5c3c6a682dedb3ef6becf112867cf92abf203816 (patch) | |
tree | a576473d0fa23a49aa4899676c7ae0f767e732f7 /target-i386/cpu.c | |
parent | 0203f86f5205e09a56df41021d872c6353754250 (diff) |
target-i386: Move cpu_x86_init()
Consolidate CPU functions in cpu.c.
Allows to make cpu_x86_register() static.
No functional changes.
Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
Diffstat (limited to 'target-i386/cpu.c')
-rw-r--r-- | target-i386/cpu.c | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/target-i386/cpu.c b/target-i386/cpu.c index 635f33407e..462d6c9c2d 100644 --- a/target-i386/cpu.c +++ b/target-i386/cpu.c @@ -1516,7 +1516,7 @@ static void filter_features_for_kvm(X86CPU *cpu) } #endif -int cpu_x86_register(X86CPU *cpu, const char *cpu_model) +static int cpu_x86_register(X86CPU *cpu, const char *cpu_model) { CPUX86State *env = &cpu->env; x86_def_t def1, *def = &def1; @@ -1576,6 +1576,30 @@ out: return 0; } +X86CPU *cpu_x86_init(const char *cpu_model) +{ + X86CPU *cpu; + CPUX86State *env; + Error *error = NULL; + + 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_unref(OBJECT(cpu)); + return NULL; + } + + object_property_set_bool(OBJECT(cpu), true, "realized", &error); + if (error) { + error_free(error); + object_unref(OBJECT(cpu)); + return NULL; + } + return cpu; +} + #if !defined(CONFIG_USER_ONLY) void cpu_clear_apic_feature(CPUX86State *env) |