diff options
author | Mark Cave-Ayland | 2022-06-24 15:40:26 +0200 |
---|---|---|
committer | Mark Cave-Ayland | 2022-06-26 19:40:11 +0200 |
commit | 4a68b4822ffceb40c34cf62847ff0da52532abb4 (patch) | |
tree | 87f4b179c21339d43505fc6e31f9b2c12462ab41 | |
parent | ps2: implement ps2_kbd_realize() and use it to register ps2_keyboard_handler (diff) | |
download | qemu-4a68b4822ffceb40c34cf62847ff0da52532abb4.tar.gz qemu-4a68b4822ffceb40c34cf62847ff0da52532abb4.tar.xz qemu-4a68b4822ffceb40c34cf62847ff0da52532abb4.zip |
ps2: implement ps2_mouse_realize() and use it to register ps2_mouse_handler
Move the registration of ps2_mouse_handler from ps2_mouse_init() to a new
ps2_mouse_realize() function. Since the abstract PS2_DEVICE parent class doesn't
have a realize() function then it is not necessary to store the reference to
it in PS2DeviceClass and use device_class_set_parent_realize().
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Acked-by: Helge Deller <deller@gmx.de>
Message-Id: <20220624134109.881989-12-mark.cave-ayland@ilande.co.uk>
-rw-r--r-- | hw/input/ps2.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/hw/input/ps2.c b/hw/input/ps2.c index 62ea4c228b..eae7df2096 100644 --- a/hw/input/ps2.c +++ b/hw/input/ps2.c @@ -1244,6 +1244,11 @@ static QemuInputHandler ps2_mouse_handler = { .sync = ps2_mouse_sync, }; +static void ps2_mouse_realize(DeviceState *dev, Error **errp) +{ + qemu_input_handler_register(dev, &ps2_mouse_handler); +} + void *ps2_mouse_init(void (*update_irq)(void *, int), void *update_arg) { DeviceState *dev; @@ -1259,8 +1264,6 @@ void *ps2_mouse_init(void (*update_irq)(void *, int), void *update_arg) ps2->update_irq = update_irq; ps2->update_arg = update_arg; vmstate_register(NULL, 0, &vmstate_ps2_mouse, s); - qemu_input_handler_register((DeviceState *)s, - &ps2_mouse_handler); return s; } @@ -1285,6 +1288,7 @@ static void ps2_mouse_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); PS2DeviceClass *ps2dc = PS2_DEVICE_CLASS(klass); + dc->realize = ps2_mouse_realize; device_class_set_parent_reset(dc, ps2_mouse_reset, &ps2dc->parent_reset); } |