virtio-console: Simplify init callbacks

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Amit Shah <amit.shah@redhat.com>
This commit is contained in:
Markus Armbruster 2011-05-25 14:21:14 +02:00 committed by Amit Shah
parent a15bb0d6a9
commit 7edfe65246
1 changed files with 9 additions and 26 deletions

View File

@ -74,11 +74,17 @@ static void chr_event(void *opaque, int event)
}
}
static int generic_port_init(VirtConsole *vcon, VirtIOSerialPort *port)
static int virtconsole_initfn(VirtIOSerialPort *port)
{
VirtConsole *vcon = DO_UPCAST(VirtConsole, port, port);
VirtIOSerialPortInfo *info = DO_UPCAST(VirtIOSerialPortInfo, qdev,
vcon->port.dev.info);
if (port->id == 0 && !info->is_console) {
error_report("Port number 0 on virtio-serial devices reserved for virtconsole devices for backward compatibility.");
return -1;
}
if (vcon->chr) {
qemu_chr_add_handlers(vcon->chr, chr_can_read, chr_read, chr_event,
vcon);
@ -86,17 +92,10 @@ static int generic_port_init(VirtConsole *vcon, VirtIOSerialPort *port)
info->guest_open = guest_open;
info->guest_close = guest_close;
}
return 0;
}
/* Virtio Console Ports */
static int virtconsole_initfn(VirtIOSerialPort *port)
{
VirtConsole *vcon = DO_UPCAST(VirtConsole, port, port);
return generic_port_init(vcon, port);
}
static int virtconsole_exitfn(VirtIOSerialPort *port)
{
VirtConsole *vcon = DO_UPCAST(VirtConsole, port, port);
@ -132,26 +131,10 @@ static void virtconsole_register(void)
}
device_init(virtconsole_register)
/* Generic Virtio Serial Ports */
static int virtserialport_initfn(VirtIOSerialPort *port)
{
VirtConsole *vcon = DO_UPCAST(VirtConsole, port, port);
if (port->id == 0) {
/*
* Disallow a generic port at id 0, that's reserved for
* console ports.
*/
error_report("Port number 0 on virtio-serial devices reserved for virtconsole devices for backward compatibility.");
return -1;
}
return generic_port_init(vcon, port);
}
static VirtIOSerialPortInfo virtserialport_info = {
.qdev.name = "virtserialport",
.qdev.size = sizeof(VirtConsole),
.init = virtserialport_initfn,
.init = virtconsole_initfn,
.exit = virtconsole_exitfn,
.qdev.props = (Property[]) {
DEFINE_PROP_UINT32("nr", VirtConsole, port.id, VIRTIO_CONSOLE_BAD_ID),