diff mbox series

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

Message ID 20210115201206.17347-11-peter.maydell@linaro.org (mailing list archive)
State New, archived
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(-)

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 = {