summaryrefslogtreecommitdiffstats
path: root/include/hw
diff options
context:
space:
mode:
authorMarc-André Lureau2019-10-23 18:37:33 +0200
committerMarc-André Lureau2020-01-07 14:24:29 +0100
commit10315a70896fb82000cc4b2a1198b70c775c7a59 (patch)
treed09dca9e94c0c9465f7cf2cc714b6827eec358ca /include/hw
parentserial-mm: use sysbus facilities (diff)
downloadqemu-10315a70896fb82000cc4b2a1198b70c775c7a59.tar.gz
qemu-10315a70896fb82000cc4b2a1198b70c775c7a59.tar.xz
qemu-10315a70896fb82000cc4b2a1198b70c775c7a59.zip
serial: make SerialIO a sysbus device
Make serial IO a proper sysbus device, similar to serial MM. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Diffstat (limited to 'include/hw')
-rw-r--r--include/hw/char/serial.h13
1 files changed, 11 insertions, 2 deletions
diff --git a/include/hw/char/serial.h b/include/hw/char/serial.h
index d586924937..d356ba838c 100644
--- a/include/hw/char/serial.h
+++ b/include/hw/char/serial.h
@@ -88,6 +88,12 @@ typedef struct SerialMM {
uint8_t endianness;
} SerialMM;
+typedef struct SerialIO {
+ SysBusDevice parent;
+
+ SerialState serial;
+} SerialIO;
+
extern const VMStateDescription vmstate_serial;
extern const MemoryRegionOps serial_io_ops;
@@ -99,8 +105,11 @@ void serial_set_frequency(SerialState *s, uint32_t frequency);
#define TYPE_SERIAL_MM "serial-mm"
#define SERIAL_MM(s) OBJECT_CHECK(SerialMM, (s), TYPE_SERIAL_MM)
-SerialState *serial_init(int base, qemu_irq irq, int baudbase,
- Chardev *chr, MemoryRegion *system_io);
+#define TYPE_SERIAL_IO "serial-io"
+#define SERIAL_IO(s) OBJECT_CHECK(SerialIO, (s), TYPE_SERIAL_IO)
+
+SerialIO *serial_init(int base, qemu_irq irq, int baudbase,
+ Chardev *chr, MemoryRegion *system_io);
SerialMM *serial_mm_init(MemoryRegion *address_space,
hwaddr base, int regshift,
qemu_irq irq, int baudbase,