virtio-console: Factor out common init between console and generic ports
The initialisation for generic ports and console ports is similar. Factor out the parts that are the same in a different function that can be called from each of the initfns. Signed-off-by: Amit Shah <amit.shah@redhat.com>
This commit is contained in:
parent
1b5f56b134
commit
cbe77b616c
@ -58,22 +58,26 @@ static void chr_event(void *opaque, int event)
|
||||
}
|
||||
}
|
||||
|
||||
static int generic_port_init(VirtConsole *vcon, VirtIOSerialDevice *dev)
|
||||
{
|
||||
vcon->port.info = dev->info;
|
||||
|
||||
if (vcon->chr) {
|
||||
qemu_chr_add_handlers(vcon->chr, chr_can_read, chr_read, chr_event,
|
||||
vcon);
|
||||
vcon->port.info->have_data = flush_buf;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Virtio Console Ports */
|
||||
static int virtconsole_initfn(VirtIOSerialDevice *dev)
|
||||
{
|
||||
VirtIOSerialPort *port = DO_UPCAST(VirtIOSerialPort, dev, &dev->qdev);
|
||||
VirtConsole *vcon = DO_UPCAST(VirtConsole, port, port);
|
||||
|
||||
port->info = dev->info;
|
||||
|
||||
port->is_console = true;
|
||||
|
||||
if (vcon->chr) {
|
||||
qemu_chr_add_handlers(vcon->chr, chr_can_read, chr_read, chr_event,
|
||||
vcon);
|
||||
port->info->have_data = flush_buf;
|
||||
}
|
||||
return 0;
|
||||
return generic_port_init(vcon, dev);
|
||||
}
|
||||
|
||||
static int virtconsole_exitfn(VirtIOSerialDevice *dev)
|
||||
@ -115,14 +119,7 @@ static int virtserialport_initfn(VirtIOSerialDevice *dev)
|
||||
VirtIOSerialPort *port = DO_UPCAST(VirtIOSerialPort, dev, &dev->qdev);
|
||||
VirtConsole *vcon = DO_UPCAST(VirtConsole, port, port);
|
||||
|
||||
port->info = dev->info;
|
||||
|
||||
if (vcon->chr) {
|
||||
qemu_chr_add_handlers(vcon->chr, chr_can_read, chr_read, chr_event,
|
||||
vcon);
|
||||
port->info->have_data = flush_buf;
|
||||
}
|
||||
return 0;
|
||||
return generic_port_init(vcon, dev);
|
||||
}
|
||||
|
||||
static VirtIOSerialPortInfo virtserialport_info = {
|
||||
|
Loading…
Reference in New Issue
Block a user