From 1a1562f5ea3da17d45d3829e35b5f49da9ec2db5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20F=C3=A4rber?= Date: Mon, 17 Jun 2013 04:09:11 +0200 Subject: [PATCH] cpu: Introduce VMSTATE_CPU() macro for CPUState MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit To be used to embed common CPU state into CPU subclasses. Reviewed-by: Juan Quintela Signed-off-by: Andreas Färber --- exec.c | 5 ++--- include/qom/cpu.h | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/exec.c b/exec.c index f99041b748..0b172b45a6 100644 --- a/exec.c +++ b/exec.c @@ -330,7 +330,7 @@ static int cpu_common_post_load(void *opaque, int version_id) return 0; } -static const VMStateDescription vmstate_cpu_common = { +const VMStateDescription vmstate_cpu_common = { .name = "cpu_common", .version_id = 1, .minimum_version_id = 1, @@ -342,8 +342,7 @@ static const VMStateDescription vmstate_cpu_common = { VMSTATE_END_OF_LIST() } }; -#else -#define vmstate_cpu_common vmstate_dummy + #endif CPUState *qemu_get_cpu(int index) diff --git a/include/qom/cpu.h b/include/qom/cpu.h index 397219b560..3e8cc479bd 100644 --- a/include/qom/cpu.h +++ b/include/qom/cpu.h @@ -378,4 +378,18 @@ void cpu_reset_interrupt(CPUState *cpu, int mask); */ void cpu_resume(CPUState *cpu); +#ifdef CONFIG_SOFTMMU +extern const struct VMStateDescription vmstate_cpu_common; +#else +#define vmstate_cpu_common vmstate_dummy +#endif + +#define VMSTATE_CPU() { \ + .name = "parent_obj", \ + .size = sizeof(CPUState), \ + .vmsd = &vmstate_cpu_common, \ + .flags = VMS_STRUCT, \ + .offset = 0, \ +} + #endif