pc: Use cpu_x86_init() to obtain X86CPU

Needed for pc_cpu_reset().

Also change return type to X86CPU.

Signed-off-by: Andreas Färber <afaerber@suse.de>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
This commit is contained in:
Andreas Färber 2012-05-02 18:49:27 +02:00
parent b47ed9969f
commit 608911acac
1 changed files with 6 additions and 4 deletions

10
hw/pc.c
View File

@ -932,21 +932,23 @@ static void pc_cpu_reset(void *opaque)
env->halted = !cpu_is_bsp(env); env->halted = !cpu_is_bsp(env);
} }
static CPUX86State *pc_new_cpu(const char *cpu_model) static X86CPU *pc_new_cpu(const char *cpu_model)
{ {
X86CPU *cpu;
CPUX86State *env; CPUX86State *env;
env = cpu_init(cpu_model); cpu = cpu_x86_init(cpu_model);
if (!env) { if (cpu == NULL) {
fprintf(stderr, "Unable to find x86 CPU definition\n"); fprintf(stderr, "Unable to find x86 CPU definition\n");
exit(1); exit(1);
} }
env = &cpu->env;
if ((env->cpuid_features & CPUID_APIC) || smp_cpus > 1) { if ((env->cpuid_features & CPUID_APIC) || smp_cpus > 1) {
env->apic_state = apic_init(env, env->cpuid_apic_id); env->apic_state = apic_init(env, env->cpuid_apic_id);
} }
qemu_register_reset(pc_cpu_reset, env); qemu_register_reset(pc_cpu_reset, env);
pc_cpu_reset(env); pc_cpu_reset(env);
return env; return cpu;
} }
void pc_cpus_init(const char *cpu_model) void pc_cpus_init(const char *cpu_model)