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>
This commit is contained in:
Mark Cave-Ayland 2022-07-12 22:52:27 +01:00
parent f4907cb5cf
commit f8d89a7da4
2 changed files with 18 additions and 4 deletions

View File

@ -311,9 +311,17 @@ static const TypeInfo lasips2_info = {
.class_init = lasips2_class_init, .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) static void lasips2_register_types(void)
{ {
type_register_static(&lasips2_info); type_register_static(&lasips2_info);
type_register_static(&lasips2_port_info);
} }
type_init(lasips2_register_types) type_init(lasips2_register_types)

View File

@ -25,9 +25,15 @@
#include "hw/sysbus.h" #include "hw/sysbus.h"
#include "hw/input/ps2.h" #include "hw/input/ps2.h"
struct LASIPS2State; #define TYPE_LASIPS2_PORT "lasips2-port"
typedef struct LASIPS2Port { OBJECT_DECLARE_SIMPLE_TYPE(LASIPS2Port, LASIPS2_PORT)
struct LASIPS2State *parent;
typedef struct LASIPS2State LASIPS2State;
struct LASIPS2Port {
DeviceState parent_obj;
LASIPS2State *parent;
MemoryRegion reg; MemoryRegion reg;
PS2State *ps2dev; PS2State *ps2dev;
uint8_t id; uint8_t id;
@ -35,7 +41,7 @@ typedef struct LASIPS2Port {
uint8_t buf; uint8_t buf;
bool loopback_rbne; bool loopback_rbne;
bool irq; bool irq;
} LASIPS2Port; };
struct LASIPS2State { struct LASIPS2State {
SysBusDevice parent_obj; SysBusDevice parent_obj;