cpu: Make first_cpu and next_cpu CPUState

Move next_cpu from CPU_COMMON to CPUState.
Move first_cpu variable to qom/cpu.h.

gdbstub needs to use CPUState::env_ptr for now.
cpu_copy() no longer needs to save and restore cpu_next.

Acked-by: Paolo Bonzini <pbonzini@redhat.com>
[AF: Rebased, simplified cpu_copy()]
Signed-off-by: Andreas Färber <afaerber@suse.de>
This commit is contained in:
Andreas Färber 2013-05-29 22:29:20 +02:00
parent 9b056fcc5b
commit 182735efaf
39 changed files with 266 additions and 234 deletions

View file

@ -165,13 +165,13 @@ void memory_mapping_list_init(MemoryMappingList *list)
QTAILQ_INIT(&list->head);
}
static CPUArchState *find_paging_enabled_cpu(CPUArchState *start_cpu)
static CPUState *find_paging_enabled_cpu(CPUState *start_cpu)
{
CPUArchState *env;
CPUState *cpu;
for (env = start_cpu; env != NULL; env = env->next_cpu) {
if (cpu_paging_enabled(ENV_GET_CPU(env))) {
return env;
for (cpu = start_cpu; cpu != NULL; cpu = cpu->next_cpu) {
if (cpu_paging_enabled(cpu)) {
return cpu;
}
}
@ -180,15 +180,15 @@ static CPUArchState *find_paging_enabled_cpu(CPUArchState *start_cpu)
void qemu_get_guest_memory_mapping(MemoryMappingList *list, Error **errp)
{
CPUArchState *env, *first_paging_enabled_cpu;
CPUState *cpu, *first_paging_enabled_cpu;
RAMBlock *block;
ram_addr_t offset, length;
first_paging_enabled_cpu = find_paging_enabled_cpu(first_cpu);
if (first_paging_enabled_cpu) {
for (env = first_paging_enabled_cpu; env != NULL; env = env->next_cpu) {
for (cpu = first_paging_enabled_cpu; cpu != NULL; cpu = cpu->next_cpu) {
Error *err = NULL;
cpu_get_memory_mapping(ENV_GET_CPU(env), list, &err);
cpu_get_memory_mapping(cpu, list, &err);
if (err) {
error_propagate(errp, err);
return;