From a43f9c90c9129d1f28e473277abf793d0caed897 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Thu, 24 Feb 2011 11:14:12 +0530 Subject: [PATCH] virtio-serial: kill VirtIOSerialDevice VirtIOSerialDevice is like VirtIOSerialPort with just the first two fields, which makes it pretty pointless. Using VirtIOSerialPort directly works equally well and is less confusing. [Amit: - rebase - rename 'dev' to 'port' in function params in virtio-serial.h ] Signed-off-by: Gerd Hoffmann Signed-off-by: Amit Shah Signed-off-by: Anthony Liguori --- hw/virtio-console.c | 17 ++++++----------- hw/virtio-serial-bus.c | 15 ++++++--------- hw/virtio-serial.h | 9 ++------- 3 files changed, 14 insertions(+), 27 deletions(-) diff --git a/hw/virtio-console.c b/hw/virtio-console.c index 62624ec780..c235b2726c 100644 --- a/hw/virtio-console.c +++ b/hw/virtio-console.c @@ -57,10 +57,8 @@ static void chr_event(void *opaque, int event) } } -static int generic_port_init(VirtConsole *vcon, VirtIOSerialDevice *dev) +static int generic_port_init(VirtConsole *vcon, VirtIOSerialPort *port) { - vcon->port.info = dev->info; - if (vcon->chr) { qemu_chr_add_handlers(vcon->chr, chr_can_read, chr_read, chr_event, vcon); @@ -70,18 +68,16 @@ static int generic_port_init(VirtConsole *vcon, VirtIOSerialDevice *dev) } /* Virtio Console Ports */ -static int virtconsole_initfn(VirtIOSerialDevice *dev) +static int virtconsole_initfn(VirtIOSerialPort *port) { - VirtIOSerialPort *port = DO_UPCAST(VirtIOSerialPort, dev, &dev->qdev); VirtConsole *vcon = DO_UPCAST(VirtConsole, port, port); port->is_console = true; - return generic_port_init(vcon, dev); + return generic_port_init(vcon, port); } -static int virtconsole_exitfn(VirtIOSerialDevice *dev) +static int virtconsole_exitfn(VirtIOSerialPort *port) { - VirtIOSerialPort *port = DO_UPCAST(VirtIOSerialPort, dev, &dev->qdev); VirtConsole *vcon = DO_UPCAST(VirtConsole, port, port); if (vcon->chr) { @@ -113,12 +109,11 @@ static void virtconsole_register(void) device_init(virtconsole_register) /* Generic Virtio Serial Ports */ -static int virtserialport_initfn(VirtIOSerialDevice *dev) +static int virtserialport_initfn(VirtIOSerialPort *port) { - VirtIOSerialPort *port = DO_UPCAST(VirtIOSerialPort, dev, &dev->qdev); VirtConsole *vcon = DO_UPCAST(VirtConsole, port, port); - return generic_port_init(vcon, dev); + return generic_port_init(vcon, port); } static VirtIOSerialPortInfo virtserialport_info = { diff --git a/hw/virtio-serial-bus.c b/hw/virtio-serial-bus.c index e05ab5e609..8446bc2d25 100644 --- a/hw/virtio-serial-bus.c +++ b/hw/virtio-serial-bus.c @@ -658,8 +658,7 @@ static VirtIOSerialBus *virtser_bus_new(DeviceState *dev) static void virtser_bus_dev_print(Monitor *mon, DeviceState *qdev, int indent) { - VirtIOSerialDevice *dev = DO_UPCAST(VirtIOSerialDevice, qdev, qdev); - VirtIOSerialPort *port = DO_UPCAST(VirtIOSerialPort, dev, &dev->qdev); + VirtIOSerialPort *port = DO_UPCAST(VirtIOSerialPort, dev, qdev); monitor_printf(mon, "%*s dev-prop-int: id: %u\n", indent, "", port->id); @@ -721,9 +720,8 @@ static void remove_port(VirtIOSerial *vser, uint32_t port_id) static int virtser_port_qdev_init(DeviceState *qdev, DeviceInfo *base) { - VirtIOSerialDevice *dev = DO_UPCAST(VirtIOSerialDevice, qdev, qdev); + VirtIOSerialPort *port = DO_UPCAST(VirtIOSerialPort, dev, qdev); VirtIOSerialPortInfo *info = DO_UPCAST(VirtIOSerialPortInfo, qdev, base); - VirtIOSerialPort *port = DO_UPCAST(VirtIOSerialPort, dev, &dev->qdev); VirtIOSerialBus *bus = DO_UPCAST(VirtIOSerialBus, qbus, qdev->parent_bus); int ret; bool plugging_port0; @@ -761,8 +759,8 @@ static int virtser_port_qdev_init(DeviceState *qdev, DeviceInfo *base) return -1; } - dev->info = info; - ret = info->init(dev); + port->info = info; + ret = info->init(port); if (ret) { return ret; } @@ -791,8 +789,7 @@ static int virtser_port_qdev_init(DeviceState *qdev, DeviceInfo *base) static int virtser_port_qdev_exit(DeviceState *qdev) { - VirtIOSerialDevice *dev = DO_UPCAST(VirtIOSerialDevice, qdev, qdev); - VirtIOSerialPort *port = DO_UPCAST(VirtIOSerialPort, dev, &dev->qdev); + VirtIOSerialPort *port = DO_UPCAST(VirtIOSerialPort, dev, qdev); VirtIOSerial *vser = port->vser; remove_port(port->vser, port->id); @@ -800,7 +797,7 @@ static int virtser_port_qdev_exit(DeviceState *qdev) QTAILQ_REMOVE(&vser->ports, port, next); if (port->info->exit) - port->info->exit(dev); + port->info->exit(port); return 0; } diff --git a/hw/virtio-serial.h b/hw/virtio-serial.h index a308196786..8cb9fbeb54 100644 --- a/hw/virtio-serial.h +++ b/hw/virtio-serial.h @@ -62,11 +62,6 @@ typedef struct VirtIOSerialBus VirtIOSerialBus; typedef struct VirtIOSerialPort VirtIOSerialPort; typedef struct VirtIOSerialPortInfo VirtIOSerialPortInfo; -typedef struct VirtIOSerialDevice { - DeviceState qdev; - VirtIOSerialPortInfo *info; -} VirtIOSerialDevice; - /* * This is the state that's shared between all the ports. Some of the * state is configurable via command-line options. Some of it can be @@ -136,12 +131,12 @@ struct VirtIOSerialPortInfo { * The per-port (or per-app) init function that's called when a * new device is found on the bus. */ - int (*init)(VirtIOSerialDevice *dev); + int (*init)(VirtIOSerialPort *port); /* * Per-port exit function that's called when a port gets * hot-unplugged or removed. */ - int (*exit)(VirtIOSerialDevice *dev); + int (*exit)(VirtIOSerialPort *port); /* Callbacks for guest events */ /* Guest opened device. */ -- GitLab