x86: Clean up CPU reset

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
This commit is contained in:
Jan Kiszka 2010-06-23 08:20:54 +02:00 committed by Blue Swirl
parent 052be86bc3
commit 427bd8d694

22
hw/pc.c
View file

@ -810,20 +810,12 @@ void pc_acpi_smi_interrupt(void *opaque, int irq, int level)
}
}
static void bsp_cpu_reset(void *opaque)
static void pc_cpu_reset(void *opaque)
{
CPUState *env = opaque;
cpu_reset(env);
env->halted = 0;
}
static void ap_cpu_reset(void *opaque)
{
CPUState *env = opaque;
cpu_reset(env);
env->halted = 1;
env->halted = !cpu_is_bsp(env);
}
static CPUState *pc_new_cpu(const char *cpu_model)
@ -837,16 +829,10 @@ static CPUState *pc_new_cpu(const char *cpu_model)
}
if ((env->cpuid_features & CPUID_APIC) || smp_cpus > 1) {
env->cpuid_apic_id = env->cpu_index;
/* APIC reset callback resets cpu */
env->apic_state = apic_init(env, env->cpuid_apic_id);
}
if (cpu_is_bsp(env)) {
qemu_register_reset(bsp_cpu_reset, env);
env->halted = 0;
} else {
qemu_register_reset(ap_cpu_reset, env);
env->halted = 1;
}
qemu_register_reset(pc_cpu_reset, env);
pc_cpu_reset(env);
return env;
}