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>
master
Mark Cave-Ayland 2022-07-12 22:52:45 +01:00
parent d316983c7f
commit 1b7bd0abe9
1 changed files with 19 additions and 6 deletions

View File

@ -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()
}
};