aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Cave-Ayland <mark.cave-ayland@ilande.co.uk>2022-07-12 22:52:27 +0100
committerMark Cave-Ayland <mark.cave-ayland@ilande.co.uk>2022-07-18 19:28:46 +0100
commitf8d89a7da4126f1756b1bba56c616afac96dfdce (patch)
treed5b6c4d3b97845a444b9bd1cd600d39cab0c7753
parentf4907cb5cf8fba22f08b07fc709264712706bac7 (diff)
lasips2: QOMify LASIPS2Port
This becomes an abstract QOM type which will be a parent type for separate keyboard and mouse port types. 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> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Message-Id: <20220712215251.7944-17-mark.cave-ayland@ilande.co.uk> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
-rw-r--r--hw/input/lasips2.c8
-rw-r--r--include/hw/input/lasips2.h14
2 files changed, 18 insertions, 4 deletions
diff --git a/hw/input/lasips2.c b/hw/input/lasips2.c
index b539c4de7a..56bfd759af 100644
--- a/hw/input/lasips2.c
+++ b/hw/input/lasips2.c
@@ -311,9 +311,17 @@ static const TypeInfo lasips2_info = {
.class_init = lasips2_class_init,
};
+static const TypeInfo lasips2_port_info = {
+ .name = TYPE_LASIPS2_PORT,
+ .parent = TYPE_DEVICE,
+ .instance_size = sizeof(LASIPS2Port),
+ .abstract = true,
+};
+
static void lasips2_register_types(void)
{
type_register_static(&lasips2_info);
+ type_register_static(&lasips2_port_info);
}
type_init(lasips2_register_types)
diff --git a/include/hw/input/lasips2.h b/include/hw/input/lasips2.h
index 9746b7a132..f4514081fe 100644
--- a/include/hw/input/lasips2.h
+++ b/include/hw/input/lasips2.h
@@ -25,9 +25,15 @@
#include "hw/sysbus.h"
#include "hw/input/ps2.h"
-struct LASIPS2State;
-typedef struct LASIPS2Port {
- struct LASIPS2State *parent;
+#define TYPE_LASIPS2_PORT "lasips2-port"
+OBJECT_DECLARE_SIMPLE_TYPE(LASIPS2Port, LASIPS2_PORT)
+
+typedef struct LASIPS2State LASIPS2State;
+
+struct LASIPS2Port {
+ DeviceState parent_obj;
+
+ LASIPS2State *parent;
MemoryRegion reg;
PS2State *ps2dev;
uint8_t id;
@@ -35,7 +41,7 @@ typedef struct LASIPS2Port {
uint8_t buf;
bool loopback_rbne;
bool irq;
-} LASIPS2Port;
+};
struct LASIPS2State {
SysBusDevice parent_obj;