X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=exec.c;h=19725dbc05e0a72767c95239337d1ed800bdf82a;hb=b174de51ae397549f58b1b76efa9026b213a1efd;hp=8a6aac36e347399ffa448fac4cab1fae2c135110;hpb=3d34a4110c58bba120bc3d7c96c4b9571994c2a8;p=qemu.git diff --git a/exec.c b/exec.c index 8a6aac36e..19725dbc0 100644 --- a/exec.c +++ b/exec.c @@ -31,7 +31,7 @@ #include "hw/qdev.h" #include "qemu/osdep.h" #include "sysemu/kvm.h" -#include "hw/xen.h" +#include "hw/xen/xen.h" #include "qemu/timer.h" #include "qemu/config-file.h" #include "exec/memory.h" @@ -265,6 +265,16 @@ CPUState *qemu_get_cpu(int index) return env ? cpu : NULL; } +void qemu_for_each_cpu(void (*func)(CPUState *cpu, void *data), void *data) +{ + CPUArchState *env = first_cpu; + + while (env) { + func(ENV_GET_CPU(env), data); + env = env->next_cpu; + } +} + void cpu_exec_init(CPUArchState *env) { CPUState *cpu = ENV_GET_CPU(env); @@ -925,6 +935,8 @@ static ram_addr_t find_ram_offset(ram_addr_t size) RAMBlock *block, *next_block; ram_addr_t offset = RAM_ADDR_MAX, mingap = RAM_ADDR_MAX; + assert(size != 0); /* it would hand out same offset multiple times */ + if (QTAILQ_EMPTY(&ram_list.blocks)) return 0;