[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 1/8] vmstate: introduce CPU_DoubleU arrays
From: |
Peter Maydell |
Subject: |
[Qemu-devel] [PATCH v2 1/8] vmstate: introduce CPU_DoubleU arrays |
Date: |
Mon, 11 Jan 2016 12:40:21 +0000 |
From: Juan Quintela <address@hidden>
Add vmstate support for migrating arrays of CPU_DoubleU via
VMSTATE_CPUDOUBLE_ARRAY.
Signed-off-by: Juan Quintela <address@hidden>
[PMM: rebased, since files have all moved since 2012;
added VMSTATE_CPUDOUBLE_ARRAY_V for consistency with FLOAT64]
Signed-off-by: Peter Maydell <address@hidden>
---
include/migration/vmstate.h | 7 +++++++
migration/vmstate.c | 23 +++++++++++++++++++++++
2 files changed, 30 insertions(+)
diff --git a/include/migration/vmstate.h b/include/migration/vmstate.h
index 7267e38..a389bdc 100644
--- a/include/migration/vmstate.h
+++ b/include/migration/vmstate.h
@@ -156,6 +156,7 @@ extern const VMStateInfo vmstate_info_uint32;
extern const VMStateInfo vmstate_info_uint64;
extern const VMStateInfo vmstate_info_float64;
+extern const VMStateInfo vmstate_info_cpudouble;
extern const VMStateInfo vmstate_info_timer;
extern const VMStateInfo vmstate_info_buffer;
@@ -768,6 +769,12 @@ extern const VMStateInfo vmstate_info_bitmap;
#define VMSTATE_FLOAT64_ARRAY(_f, _s, _n) \
VMSTATE_FLOAT64_ARRAY_V(_f, _s, _n, 0)
+#define VMSTATE_CPUDOUBLE_ARRAY_V(_f, _s, _n, _v) \
+ VMSTATE_ARRAY(_f, _s, _n, _v, vmstate_info_cpudouble, CPU_DoubleU)
+
+#define VMSTATE_CPUDOUBLE_ARRAY(_f, _s, _n) \
+ VMSTATE_CPUDOUBLE_ARRAY_V(_f, _s, _n, 0)
+
#define VMSTATE_BUFFER_V(_f, _s, _v) \
VMSTATE_STATIC_BUFFER(_f, _s, _v, NULL, 0, sizeof(typeof_field(_s, _f)))
diff --git a/migration/vmstate.c b/migration/vmstate.c
index e8ccf22..f70fe59 100644
--- a/migration/vmstate.c
+++ b/migration/vmstate.c
@@ -794,6 +794,29 @@ const VMStateInfo vmstate_info_float64 = {
.put = put_float64,
};
+/* CPU_DoubleU type */
+
+static int get_cpudouble(QEMUFile *f, void *pv, size_t size)
+{
+ CPU_DoubleU *v = pv;
+ qemu_get_be32s(f, &v->l.upper);
+ qemu_get_be32s(f, &v->l.lower);
+ return 0;
+}
+
+static void put_cpudouble(QEMUFile *f, void *pv, size_t size)
+{
+ CPU_DoubleU *v = pv;
+ qemu_put_be32s(f, &v->l.upper);
+ qemu_put_be32s(f, &v->l.lower);
+}
+
+const VMStateInfo vmstate_info_cpudouble = {
+ .name = "CPU_Double_U",
+ .get = get_cpudouble,
+ .put = put_cpudouble,
+};
+
/* uint8_t buffers */
static int get_buffer(QEMUFile *f, void *pv, size_t size)
--
1.9.1
- [Qemu-devel] [PATCH v2 0/8] target-sparc: Update to use VMStateDescription, Peter Maydell, 2016/01/11
- [Qemu-devel] [PATCH v2 7/8] target-sparc: Use VMState arrays for SPARC64 TLB/MMU state, Peter Maydell, 2016/01/11
- [Qemu-devel] [PATCH v2 6/8] target-sparc: Convert to VMStateDescription, Peter Maydell, 2016/01/11
- [Qemu-devel] [PATCH v2 3/8] vmstate: define vmstate_info_uinttl, Peter Maydell, 2016/01/11
- [Qemu-devel] [PATCH v2 5/8] target-sparc: Don't flush TLB in cpu_load function, Peter Maydell, 2016/01/11
- [Qemu-devel] [PATCH v2 1/8] vmstate: introduce CPU_DoubleU arrays,
Peter Maydell <=
- [Qemu-devel] [PATCH v2 4/8] target-sparc: Split cpu_put_psr into side-effect and no-side-effect parts, Peter Maydell, 2016/01/11
- [Qemu-devel] [PATCH v2 2/8] vmstate: Introduce VMSTATE_VARRAY_MULTPLY, Peter Maydell, 2016/01/11
- [Qemu-devel] [PATCH v2 8/8] target-sparc: Migrate CWP and PIL for SPARC64, Peter Maydell, 2016/01/11
- Re: [Qemu-devel] [PATCH v2 0/8] target-sparc: Update to use VMStateDescription, Mark Cave-Ayland, 2016/01/15