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:
		
							parent
							
								
									61a11c98b7
								
							
						
					
					
						commit
						a43f9c90c9
					
				| 
						 | 
				
			
			@ -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 = {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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. */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue