[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 03/28] vmstate: make all architectures export a way
From: |
Juan Quintela |
Subject: |
[Qemu-devel] [PATCH 03/28] vmstate: make all architectures export a way to migrate cpu's |
Date: |
Wed, 26 Oct 2011 22:16:17 +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
- Add copyrights to the new files
Signed-off-by: Juan Quintela <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 | 21 +++++++++++++++++++++
target-s390x/machine.c | 14 ++++++--------
target-sh4/machine.c | 21 +++++++++++++++++++++
target-xtensa/machine.c | 14 ++++++--------
9 files changed, 61 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..f2e095f 100644
--- a/target-m68k/machine.c
+++ b/target-m68k/machine.c
@@ -0,0 +1,21 @@
+/*
+ * Migration support for m68k cpus
+ *
+ * Copyright (C) 2011 Red Hat, Inc.
+ *
+ * Author(s):
+ * Juan Quintela <address@hidden>
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2. See
+ * the COPYING file in the top-level directory.
+ */
+
+#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..d0a0d48 100644
--- a/target-sh4/machine.c
+++ b/target-sh4/machine.c
@@ -0,0 +1,21 @@
+/*
+ * Migration support for sh4 cpus
+ *
+ * Copyright (C) 2011 Red Hat, Inc.
+ *
+ * Author(s):
+ * Juan Quintela <address@hidden>
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2. See
+ * the COPYING file in the top-level directory.
+ */
+
+#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 v2 00/28] VMState port of all cpus, Juan Quintela, 2011/10/26
- [Qemu-devel] [PATCH 01/28] vmstate: Fix VMSTATE_VARRAY_UINT32, Juan Quintela, 2011/10/26
- [Qemu-devel] [PATCH 02/28] vmstate: Simplify test for CPU_SAVE_VERSION, Juan Quintela, 2011/10/26
- [Qemu-devel] [PATCH 03/28] vmstate: make all architectures export a way to migrate cpu's,
Juan Quintela <=
- [Qemu-devel] [PATCH 04/28] vmstate: unicore32 don't support cpu migration, Juan Quintela, 2011/10/26
- [Qemu-devel] [PATCH 05/28] vmstate: use new cpu style for x86, Juan Quintela, 2011/10/26
- [Qemu-devel] [PATCH 06/28] vmstate: use new style for lm32 cpus, Juan Quintela, 2011/10/26
- [Qemu-devel] [PATCH 07/28] vmstate: make microblaze cpus not migrateable, Juan Quintela, 2011/10/26
- [Qemu-devel] [PATCH 08/28] vmstate: port cris cpu to vmstate, Juan Quintela, 2011/10/26
- [Qemu-devel] [PATCH 09/28] vmstate: machine.c is only compiled for !CONFIG_USER_ONLY, Juan Quintela, 2011/10/26
- [Qemu-devel] [PATCH 10/28] vmstate: introduce float32 arrays, Juan Quintela, 2011/10/26
- [Qemu-devel] [PATCH 11/28] vmstate: introduce float64 arrays, Juan Quintela, 2011/10/26
- [Qemu-devel] [PATCH 12/28] vmstate: Introduce VMSTATE_STRUCT_VARRAY_INT32_TEST, Juan Quintela, 2011/10/26
- [Qemu-devel] [PATCH 13/28] vmstate: port ppc cpu, Juan Quintela, 2011/10/26