Currently for each button on the device we have a
StellarisGamepadButton struct which has the irq, keycode and pressed
state for it. When we convert to qdev, the qdev property and GPIO
APIs are going to require that we have separate arrays for the irqs
and keycodes. Convert from array-of-structs to three separate arrays
in preparation.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
hw/input/stellaris_gamepad.c | 43 ++++++++++++------------------------
1 file changed, 14 insertions(+), 29 deletions(-)
-static const VMStateDescription vmstate_stellaris_button = {
- .name = "stellaris_button",
- .version_id = 0,
- .minimum_version_id = 0,
- .fields = (VMStateField[]) {
- VMSTATE_UINT8(pressed, StellarisGamepadButton),
- VMSTATE_END_OF_LIST()
- }
-};
-
static const VMStateDescription vmstate_stellaris_gamepad = {
.name = "stellaris_gamepad",
.version_id = 2,
.minimum_version_id = 2,
.fields = (VMStateField[]) {
VMSTATE_INT32(extension, StellarisGamepad),
- VMSTATE_STRUCT_VARRAY_POINTER_INT32(buttons, StellarisGamepad,
- num_buttons,
- vmstate_stellaris_button,
- StellarisGamepadButton),
+ VMSTATE_VARRAY_UINT32(pressed, StellarisGamepad, num_buttons,
+ 0, vmstate_info_uint8, uint8_t),