diff mbox series

[10/11] hw/m68k/next-cube: Add vmstate for NeXTPC device

Message ID 20210115201206.17347-11-peter.maydell@linaro.org
State Superseded
Headers show
Series hw/m68k/next-cube: refactor to fix Coverity issue | expand

Commit Message

Peter Maydell Jan. 15, 2021, 8:12 p.m. UTC
Add the vmstate for the new NeXTPC devic; this is in theory
a migration compatibility break, but this machine doesn't have
working migration currently anyway.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

---
 hw/m68k/next-cube.c | 34 +++++++++++++++++++++++++++++++++-
 1 file changed, 33 insertions(+), 1 deletion(-)

-- 
2.20.1

Comments

Thomas Huth Jan. 16, 2021, 10:44 a.m. UTC | #1
Am Fri, 15 Jan 2021 20:12:05 +0000
schrieb Peter Maydell <peter.maydell@linaro.org>:

> Add the vmstate for the new NeXTPC devic; this is in theory

> a migration compatibility break, but this machine doesn't have

> working migration currently anyway.

> 

> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

> ---

>  hw/m68k/next-cube.c | 34 +++++++++++++++++++++++++++++++++-

>  1 file changed, 33 insertions(+), 1 deletion(-)

> 

> diff --git a/hw/m68k/next-cube.c b/hw/m68k/next-cube.c

> index dd0a2a5aea0..9eb1e31752b 100644

> --- a/hw/m68k/next-cube.c

> +++ b/hw/m68k/next-cube.c

> @@ -28,6 +28,7 @@

>  #include "qapi/error.h"

>  #include "ui/console.h"

>  #include "target/m68k/cpu.h"

> +#include "migration/vmstate.h"

>  

>  /* #define DEBUG_NEXT */

>  #ifdef DEBUG_NEXT

> @@ -890,6 +891,37 @@ static Property next_pc_properties[] = {

>      DEFINE_PROP_END_OF_LIST(),

>  };

>  

> +static const VMStateDescription next_rtc_vmstate = {

> +    .name = "next-rtc",

> +    .version_id = 1,

> +    .minimum_version_id = 1,

> +    .fields = (VMStateField[]) {

> +        VMSTATE_UINT8_ARRAY(ram, NextRtc, 32),

> +        VMSTATE_UINT8(command, NextRtc),

> +        VMSTATE_UINT8(value, NextRtc),

> +        VMSTATE_UINT8(status, NextRtc),

> +        VMSTATE_UINT8(control, NextRtc),

> +        VMSTATE_UINT8(retval, NextRtc),

> +        VMSTATE_END_OF_LIST()

> +    },

> +};

> +

> +static const VMStateDescription next_pc_vmstate = {

> +    .name = "next-pc",

> +    .version_id = 1,

> +    .minimum_version_id = 1,

> +    .fields = (VMStateField[]) {

> +        VMSTATE_UINT32(scr1, NeXTPC),

> +        VMSTATE_UINT32(scr2, NeXTPC),

> +        VMSTATE_UINT32(int_mask, NeXTPC),

> +        VMSTATE_UINT32(int_status, NeXTPC),

> +        VMSTATE_UINT8(scsi_csr_1, NeXTPC),

> +        VMSTATE_UINT8(scsi_csr_2, NeXTPC),

> +        VMSTATE_STRUCT(rtc, NeXTPC, 0, next_rtc_vmstate, NextRtc),

> +        VMSTATE_END_OF_LIST()

> +    },

> +};

> +

>  static void next_pc_class_init(ObjectClass *klass, void *data)

>  {

>      DeviceClass *dc = DEVICE_CLASS(klass);

> @@ -898,7 +930,7 @@ static void next_pc_class_init(ObjectClass

> *klass, void *data) dc->realize = next_pc_realize;

>      dc->reset = next_pc_reset;

>      device_class_set_props(dc, next_pc_properties);

> -    /* We will add the VMState in a later commit */

> +    dc->vmsd = &next_pc_vmstate;

>  }

>  

>  static const TypeInfo next_pc_info = {


Acked-by: Thomas Huth <huth@tuxfamily.org>
diff mbox series

Patch

diff --git a/hw/m68k/next-cube.c b/hw/m68k/next-cube.c
index dd0a2a5aea0..9eb1e31752b 100644
--- a/hw/m68k/next-cube.c
+++ b/hw/m68k/next-cube.c
@@ -28,6 +28,7 @@ 
 #include "qapi/error.h"
 #include "ui/console.h"
 #include "target/m68k/cpu.h"
+#include "migration/vmstate.h"
 
 /* #define DEBUG_NEXT */
 #ifdef DEBUG_NEXT
@@ -890,6 +891,37 @@  static Property next_pc_properties[] = {
     DEFINE_PROP_END_OF_LIST(),
 };
 
+static const VMStateDescription next_rtc_vmstate = {
+    .name = "next-rtc",
+    .version_id = 1,
+    .minimum_version_id = 1,
+    .fields = (VMStateField[]) {
+        VMSTATE_UINT8_ARRAY(ram, NextRtc, 32),
+        VMSTATE_UINT8(command, NextRtc),
+        VMSTATE_UINT8(value, NextRtc),
+        VMSTATE_UINT8(status, NextRtc),
+        VMSTATE_UINT8(control, NextRtc),
+        VMSTATE_UINT8(retval, NextRtc),
+        VMSTATE_END_OF_LIST()
+    },
+};
+
+static const VMStateDescription next_pc_vmstate = {
+    .name = "next-pc",
+    .version_id = 1,
+    .minimum_version_id = 1,
+    .fields = (VMStateField[]) {
+        VMSTATE_UINT32(scr1, NeXTPC),
+        VMSTATE_UINT32(scr2, NeXTPC),
+        VMSTATE_UINT32(int_mask, NeXTPC),
+        VMSTATE_UINT32(int_status, NeXTPC),
+        VMSTATE_UINT8(scsi_csr_1, NeXTPC),
+        VMSTATE_UINT8(scsi_csr_2, NeXTPC),
+        VMSTATE_STRUCT(rtc, NeXTPC, 0, next_rtc_vmstate, NextRtc),
+        VMSTATE_END_OF_LIST()
+    },
+};
+
 static void next_pc_class_init(ObjectClass *klass, void *data)
 {
     DeviceClass *dc = DEVICE_CLASS(klass);
@@ -898,7 +930,7 @@  static void next_pc_class_init(ObjectClass *klass, void *data)
     dc->realize = next_pc_realize;
     dc->reset = next_pc_reset;
     device_class_set_props(dc, next_pc_properties);
-    /* We will add the VMState in a later commit */
+    dc->vmsd = &next_pc_vmstate;
 }
 
 static const TypeInfo next_pc_info = {