[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 03/25] vmstate: make all architectures export a way
From: |
Juan Quintela |
Subject: |
[Qemu-devel] [PATCH 03/25] vmstate: make all architectures export a way to migrate cpu's |
Date: |
Tue, 25 Oct 2011 16:00:37 +0200 |
This makes several changes:
- exports VMStateDescription vmstate_cpu non-static.
- makes sure that every cpu has a vmstate_cpu or cpu_save/load defined
- for the architecture that had nothing, it just register the cpu as
unmigratable.
- Depending on CPU_SAVE_VERSION we register old/new migration style
Signed-off-by: Juan Quintela <address@hidden>
CC: Richard Henderson <address@hidden>
CC: Michael Walle <address@hidden>
CC: Paul Brook <address@hidden>
CC: Alexander Graf <address@hidden>
CC: Aurelien Jarno <address@hidden>
CC: Max Filippov <address@hidden>
---
exec.c | 2 ++
hw/hw.h | 2 ++
target-alpha/machine.c | 12 +-----------
target-i386/machine.c | 2 +-
target-lm32/machine.c | 2 +-
target-m68k/machine.c | 10 ++++++++++
target-s390x/machine.c | 14 ++++++--------
target-sh4/machine.c | 10 ++++++++++
target-xtensa/machine.c | 14 ++++++--------
9 files changed, 39 insertions(+), 29 deletions(-)
diff --git a/exec.c b/exec.c
index 165cfe8..09f3f01 100644
--- a/exec.c
+++ b/exec.c
@@ -663,6 +663,8 @@ void cpu_exec_init(CPUState *env)
#if defined(CPU_SAVE_VERSION)
register_savevm(NULL, "cpu", cpu_index, CPU_SAVE_VERSION,
cpu_save, cpu_load, env);
+#else
+ vmstate_register(NULL, cpu_index, &vmstate_cpu, env);
#endif
#endif
}
diff --git a/hw/hw.h b/hw/hw.h
index ed20f5a..0f0200a 100644
--- a/hw/hw.h
+++ b/hw/hw.h
@@ -359,6 +359,8 @@ extern const VMStateInfo vmstate_info_ptimer;
extern const VMStateInfo vmstate_info_buffer;
extern const VMStateInfo vmstate_info_unused_buffer;
+extern const VMStateDescription vmstate_cpu;
+
#define type_check_array(t1,t2,n) ((t1(*)[n])0 - (t2*)0)
#define type_check_pointer(t1,t2) ((t1**)0 - (t2*)0)
diff --git a/target-alpha/machine.c b/target-alpha/machine.c
index 76d70d9..8d32d7c 100644
--- a/target-alpha/machine.c
+++ b/target-alpha/machine.c
@@ -68,20 +68,10 @@ static VMStateField vmstate_cpu_fields[] = {
VMSTATE_END_OF_LIST()
};
-static const VMStateDescription vmstate_cpu = {
+const VMStateDescription vmstate_cpu = {
.name = "cpu",
.version_id = 1,
.minimum_version_id = 1,
.minimum_version_id_old = 1,
.fields = vmstate_cpu_fields,
};
-
-void cpu_save(QEMUFile *f, void *opaque)
-{
- vmstate_save_state(f, &vmstate_cpu, opaque);
-}
-
-int cpu_load(QEMUFile *f, void *opaque, int version_id)
-{
- return vmstate_load_state(f, &vmstate_cpu, opaque, version_id);
-}
diff --git a/target-i386/machine.c b/target-i386/machine.c
index 25fa97d..54f5643 100644
--- a/target-i386/machine.c
+++ b/target-i386/machine.c
@@ -310,7 +310,7 @@ static const VMStateDescription vmstate_fpop_ip_dp = {
}
};
-static const VMStateDescription vmstate_cpu = {
+const VMStateDescription vmstate_cpu = {
.name = "cpu",
.version_id = CPU_SAVE_VERSION,
.minimum_version_id = 3,
diff --git a/target-lm32/machine.c b/target-lm32/machine.c
index 70ca52a..9014a9f 100644
--- a/target-lm32/machine.c
+++ b/target-lm32/machine.c
@@ -1,7 +1,7 @@
#include "hw/hw.h"
#include "hw/boards.h"
-static const VMStateDescription vmstate_cpu = {
+const VMStateDescription vmstate_cpu = {
.name = "cpu",
.version_id = CPU_SAVE_VERSION,
.minimum_version_id = 1,
diff --git a/target-m68k/machine.c b/target-m68k/machine.c
index e69de29..86b6fe9 100644
--- a/target-m68k/machine.c
+++ b/target-m68k/machine.c
@@ -0,0 +1,10 @@
+
+#include "hw/hw.h"
+
+/* To make this architecture migratable, we need to define cpu state
+ here. Other things need to be done elsewhere */
+
+const VMStateDescription vmstate_cpu = {
+ .name = "cpu",
+ .unmigratable = 1,
+};
diff --git a/target-s390x/machine.c b/target-s390x/machine.c
index 3e79be6..5a7b219 100644
--- a/target-s390x/machine.c
+++ b/target-s390x/machine.c
@@ -18,13 +18,11 @@
*/
#include "hw/hw.h"
-#include "hw/boards.h"
-void cpu_save(QEMUFile *f, void *opaque)
-{
-}
+/* To make this architecture migratable, we need to define cpu state
+ here. Other things need to be done elsewhere */
-int cpu_load(QEMUFile *f, void *opaque, int version_id)
-{
- return 0;
-}
+const VMStateDescription vmstate_cpu = {
+ .name = "cpu",
+ .unmigratable = 1,
+};
diff --git a/target-sh4/machine.c b/target-sh4/machine.c
index e69de29..86b6fe9 100644
--- a/target-sh4/machine.c
+++ b/target-sh4/machine.c
@@ -0,0 +1,10 @@
+
+#include "hw/hw.h"
+
+/* To make this architecture migratable, we need to define cpu state
+ here. Other things need to be done elsewhere */
+
+const VMStateDescription vmstate_cpu = {
+ .name = "cpu",
+ .unmigratable = 1,
+};
diff --git a/target-xtensa/machine.c b/target-xtensa/machine.c
index ddeffb2..3f98330 100644
--- a/target-xtensa/machine.c
+++ b/target-xtensa/machine.c
@@ -26,13 +26,11 @@
*/
#include "hw/hw.h"
-#include "hw/boards.h"
-void cpu_save(QEMUFile *f, void *opaque)
-{
-}
+/* To make this architecture migratable, we need to define cpu state
+ here. Other things need to be done elsewhere */
-int cpu_load(QEMUFile *f, void *opaque, int version_id)
-{
- return 0;
-}
+const VMStateDescription vmstate_cpu = {
+ .name = "cpu",
+ .unmigratable = 1,
+};
--
1.7.6.4
- [Qemu-devel] [PATCH 00/25] VMState port of all cpus, Juan Quintela, 2011/10/25
- [Qemu-devel] [PATCH 02/25] vmstate: Simplify test for CPU_SAVE_VERSION, Juan Quintela, 2011/10/25
- [Qemu-devel] [PATCH 01/25] vmstate: Fix VMSTATE_VARRAY_UINT32, Juan Quintela, 2011/10/25
- [Qemu-devel] [PATCH 04/25] vmstate: unicore32 don't support cpu migration, Juan Quintela, 2011/10/25
- [Qemu-devel] [PATCH 05/25] vmstate: use new cpu style for x86, Juan Quintela, 2011/10/25
- [Qemu-devel] [PATCH 07/25] vmstate: make microblaze cpus not migrateable, Juan Quintela, 2011/10/25
- [Qemu-devel] [PATCH 06/25] vmstate: use new style for lm32 cpus, Juan Quintela, 2011/10/25
- [Qemu-devel] [PATCH 03/25] vmstate: make all architectures export a way to migrate cpu's,
Juan Quintela <=
- Re: [Qemu-devel] [PATCH 03/25] vmstate: make all architectures export a way to migrate cpu's, Max Filippov, 2011/10/25
- Re: [Qemu-devel] [PATCH 03/25] vmstate: make all architectures export a way to migrate cpu's, Richard Henderson, 2011/10/25
- Re: [Qemu-devel] [PATCH 03/25] vmstate: make all architectures export a way to migrate cpu's, Michael Walle, 2011/10/25
- [Qemu-devel] [PATCH 08/25] vmstate: port cris cpu to vmstate, Juan Quintela, 2011/10/25
- [Qemu-devel] [PATCH 09/25] vmstate: machine.c is only compiled for !CONFIG_USER_ONLY, Juan Quintela, 2011/10/25
- [Qemu-devel] [PATCH 11/25] vmstate: introduce float64 arrays, Juan Quintela, 2011/10/25
- [Qemu-devel] [PATCH 10/25] vmstate: introduce float32 arrays, Juan Quintela, 2011/10/25