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 <kraxel@redhat.com>
Signed-off-by: Amit Shah <amit.shah@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
Gerd Hoffmann 2011-02-24 11:14:12 +05:30 committed by Anthony Liguori
parent 61a11c98b7
commit a43f9c90c9
3 changed files with 14 additions and 27 deletions

View File

@ -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) { if (vcon->chr) {
qemu_chr_add_handlers(vcon->chr, chr_can_read, chr_read, chr_event, qemu_chr_add_handlers(vcon->chr, chr_can_read, chr_read, chr_event,
vcon); vcon);
@ -70,18 +68,16 @@ static int generic_port_init(VirtConsole *vcon, VirtIOSerialDevice *dev)
} }
/* Virtio Console Ports */ /* 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); VirtConsole *vcon = DO_UPCAST(VirtConsole, port, port);
port->is_console = true; 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); VirtConsole *vcon = DO_UPCAST(VirtConsole, port, port);
if (vcon->chr) { if (vcon->chr) {
@ -113,12 +109,11 @@ static void virtconsole_register(void)
device_init(virtconsole_register) device_init(virtconsole_register)
/* Generic Virtio Serial Ports */ /* 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); VirtConsole *vcon = DO_UPCAST(VirtConsole, port, port);
return generic_port_init(vcon, dev); return generic_port_init(vcon, port);
} }
static VirtIOSerialPortInfo virtserialport_info = { static VirtIOSerialPortInfo virtserialport_info = {

View File

@ -658,8 +658,7 @@ static VirtIOSerialBus *virtser_bus_new(DeviceState *dev)
static void virtser_bus_dev_print(Monitor *mon, DeviceState *qdev, int indent) 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, qdev);
VirtIOSerialPort *port = DO_UPCAST(VirtIOSerialPort, dev, &dev->qdev);
monitor_printf(mon, "%*s dev-prop-int: id: %u\n", monitor_printf(mon, "%*s dev-prop-int: id: %u\n",
indent, "", port->id); 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) 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); VirtIOSerialPortInfo *info = DO_UPCAST(VirtIOSerialPortInfo, qdev, base);
VirtIOSerialPort *port = DO_UPCAST(VirtIOSerialPort, dev, &dev->qdev);
VirtIOSerialBus *bus = DO_UPCAST(VirtIOSerialBus, qbus, qdev->parent_bus); VirtIOSerialBus *bus = DO_UPCAST(VirtIOSerialBus, qbus, qdev->parent_bus);
int ret; int ret;
bool plugging_port0; bool plugging_port0;
@ -761,8 +759,8 @@ static int virtser_port_qdev_init(DeviceState *qdev, DeviceInfo *base)
return -1; return -1;
} }
dev->info = info; port->info = info;
ret = info->init(dev); ret = info->init(port);
if (ret) { if (ret) {
return 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) static int virtser_port_qdev_exit(DeviceState *qdev)
{ {
VirtIOSerialDevice *dev = DO_UPCAST(VirtIOSerialDevice, qdev, qdev); VirtIOSerialPort *port = DO_UPCAST(VirtIOSerialPort, dev, qdev);
VirtIOSerialPort *port = DO_UPCAST(VirtIOSerialPort, dev, &dev->qdev);
VirtIOSerial *vser = port->vser; VirtIOSerial *vser = port->vser;
remove_port(port->vser, port->id); remove_port(port->vser, port->id);
@ -800,7 +797,7 @@ static int virtser_port_qdev_exit(DeviceState *qdev)
QTAILQ_REMOVE(&vser->ports, port, next); QTAILQ_REMOVE(&vser->ports, port, next);
if (port->info->exit) if (port->info->exit)
port->info->exit(dev); port->info->exit(port);
return 0; return 0;
} }

View File

@ -62,11 +62,6 @@ typedef struct VirtIOSerialBus VirtIOSerialBus;
typedef struct VirtIOSerialPort VirtIOSerialPort; typedef struct VirtIOSerialPort VirtIOSerialPort;
typedef struct VirtIOSerialPortInfo VirtIOSerialPortInfo; 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 * 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 * 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 * The per-port (or per-app) init function that's called when a
* new device is found on the bus. * 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 * Per-port exit function that's called when a port gets
* hot-unplugged or removed. * hot-unplugged or removed.
*/ */
int (*exit)(VirtIOSerialDevice *dev); int (*exit)(VirtIOSerialPort *port);
/* Callbacks for guest events */ /* Callbacks for guest events */
/* Guest opened device. */ /* Guest opened device. */