Message ID | 20220522181836.864-44-mark.cave-ayland@ilande.co.uk |
---|---|
State | New |
Headers | show |
Series | PS2 device QOMification - part 1 | expand |
On Sun, 22 May 2022 at 19:20, Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> wrote: > > This is in preparation for handling vmstate_register() within the device. > > Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> > --- > hw/input/lasips2.c | 17 ++++++++++++++++- > include/hw/input/lasips2.h | 1 + > 2 files changed, 17 insertions(+), 1 deletion(-) > static const TypeInfo lasips2_info = { > .name = TYPE_LASIPS2, > .parent = TYPE_SYS_BUS_DEVICE, > .instance_init = lasips2_init, > - .instance_size = sizeof(LASIPS2State) > + .instance_size = sizeof(LASIPS2State), > + .class_init = lasips2_class_init If you put the trailing comma at the end of this last line, then the next person who comes along to add a new line at the end of the struct won't have to edit the preceding line to add the comma. Anyway, as a code change this is fine, so Reviewed-by: Peter Maydell <peter.maydell@linaro.org> but as I note in review of patch 44 it would be better to avoid vmstate_register(), in which case we don't need the property. thanks -- PMM
diff --git a/hw/input/lasips2.c b/hw/input/lasips2.c index bd89c03996..a7c7192c07 100644 --- a/hw/input/lasips2.c +++ b/hw/input/lasips2.c @@ -251,6 +251,7 @@ LASIPS2State *lasips2_initfn(hwaddr base, qemu_irq irq) DeviceState *dev; dev = qdev_new(TYPE_LASIPS2); + qdev_prop_set_uint64(dev, "base", base); sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal); s = LASIPS2(dev); @@ -282,11 +283,25 @@ static void lasips2_init(Object *obj) sysbus_init_mmio(SYS_BUS_DEVICE(obj), &s->mouse.reg); } +static Property lasips2_properties[] = { + DEFINE_PROP_UINT64("base", LASIPS2State, base, UINT64_MAX), + DEFINE_PROP_END_OF_LIST(), +}; + +static void lasips2_class_init(ObjectClass *klass, void *data) +{ + DeviceClass *dc = DEVICE_CLASS(klass); + + device_class_set_props(dc, lasips2_properties); + set_bit(DEVICE_CATEGORY_INPUT, dc->categories); +} + static const TypeInfo lasips2_info = { .name = TYPE_LASIPS2, .parent = TYPE_SYS_BUS_DEVICE, .instance_init = lasips2_init, - .instance_size = sizeof(LASIPS2State) + .instance_size = sizeof(LASIPS2State), + .class_init = lasips2_class_init }; static void lasips2_register_types(void) diff --git a/include/hw/input/lasips2.h b/include/hw/input/lasips2.h index b9723073e1..7e4437b925 100644 --- a/include/hw/input/lasips2.h +++ b/include/hw/input/lasips2.h @@ -25,6 +25,7 @@ typedef struct LASIPS2Port { struct LASIPS2State { SysBusDevice parent_obj; + hwaddr base; LASIPS2Port kbd; LASIPS2Port mouse; qemu_irq irq;
This is in preparation for handling vmstate_register() within the device. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> --- hw/input/lasips2.c | 17 ++++++++++++++++- include/hw/input/lasips2.h | 1 + 2 files changed, 17 insertions(+), 1 deletion(-)