aboutsummaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
authorMark Cave-Ayland <mark.cave-ayland@ilande.co.uk>2022-07-12 22:52:45 +0100
committerMark Cave-Ayland <mark.cave-ayland@ilande.co.uk>2022-07-18 19:28:46 +0100
commit1b7bd0abe91c193896c0ae48f563ae5aee8ba07d (patch)
tree34aaf7ab8c78f40b65ba6efad32863e0d5745b15 /hw
parentd316983c7fac5f144daefd29d33594e9442b3fa8 (diff)
lasips2: update VMStateDescription for LASIPS2 device
Since this series has already introduced a migration break for the HPPA B160L machine, we can use this opportunity to improve the VMStateDescription for the LASIPS2 device. Add the new int_status field to the VMStateDescription and remodel the ports as separate VMSTATE_STRUCT instances representing each LASIPS2Port. Once this is done, the migration stream can be updated to include buf and loopback_rbne for each port (which is necessary since the values are accessed across separate IO accesses), and drop the port id as this is hardcoded for each port type. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Tested-by: Helge Deller <deller@gmx.de> Acked-by: Helge Deller <deller@gmx.de> Message-Id: <20220712215251.7944-35-mark.cave-ayland@ilande.co.uk> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Diffstat (limited to 'hw')
-rw-r--r--hw/input/lasips2.c25
1 files changed, 19 insertions, 6 deletions
diff --git a/hw/input/lasips2.c b/hw/input/lasips2.c
index e602e3c986..ea7c07a2ba 100644
--- a/hw/input/lasips2.c
+++ b/hw/input/lasips2.c
@@ -35,15 +35,28 @@
#include "qapi/error.h"
+static const VMStateDescription vmstate_lasips2_port = {
+ .name = "lasips2-port",
+ .version_id = 1,
+ .minimum_version_id = 1,
+ .fields = (VMStateField[]) {
+ VMSTATE_UINT8(control, LASIPS2Port),
+ VMSTATE_UINT8(buf, LASIPS2Port),
+ VMSTATE_BOOL(loopback_rbne, LASIPS2Port),
+ VMSTATE_END_OF_LIST()
+ }
+};
+
static const VMStateDescription vmstate_lasips2 = {
.name = "lasips2",
- .version_id = 0,
- .minimum_version_id = 0,
+ .version_id = 1,
+ .minimum_version_id = 1,
.fields = (VMStateField[]) {
- VMSTATE_UINT8(kbd_port.parent_obj.control, LASIPS2State),
- VMSTATE_UINT8(kbd_port.parent_obj.id, LASIPS2State),
- VMSTATE_UINT8(mouse_port.parent_obj.control, LASIPS2State),
- VMSTATE_UINT8(mouse_port.parent_obj.id, LASIPS2State),
+ VMSTATE_UINT8(int_status, LASIPS2State),
+ VMSTATE_STRUCT(kbd_port.parent_obj, LASIPS2State, 1,
+ vmstate_lasips2_port, LASIPS2Port),
+ VMSTATE_STRUCT(mouse_port.parent_obj, LASIPS2State, 1,
+ vmstate_lasips2_port, LASIPS2Port),
VMSTATE_END_OF_LIST()
}
};