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:
parent
a15bb0d6a9
commit
7edfe65246
@ -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,
|
VirtIOSerialPortInfo *info = DO_UPCAST(VirtIOSerialPortInfo, qdev,
|
||||||
vcon->port.dev.info);
|
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) {
|
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);
|
||||||
@ -86,17 +92,10 @@ static int generic_port_init(VirtConsole *vcon, VirtIOSerialPort *port)
|
|||||||
info->guest_open = guest_open;
|
info->guest_open = guest_open;
|
||||||
info->guest_close = guest_close;
|
info->guest_close = guest_close;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
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)
|
static int virtconsole_exitfn(VirtIOSerialPort *port)
|
||||||
{
|
{
|
||||||
VirtConsole *vcon = DO_UPCAST(VirtConsole, port, port);
|
VirtConsole *vcon = DO_UPCAST(VirtConsole, port, port);
|
||||||
@ -132,26 +131,10 @@ static void virtconsole_register(void)
|
|||||||
}
|
}
|
||||||
device_init(virtconsole_register)
|
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 = {
|
static VirtIOSerialPortInfo virtserialport_info = {
|
||||||
.qdev.name = "virtserialport",
|
.qdev.name = "virtserialport",
|
||||||
.qdev.size = sizeof(VirtConsole),
|
.qdev.size = sizeof(VirtConsole),
|
||||||
.init = virtserialport_initfn,
|
.init = virtconsole_initfn,
|
||||||
.exit = virtconsole_exitfn,
|
.exit = virtconsole_exitfn,
|
||||||
.qdev.props = (Property[]) {
|
.qdev.props = (Property[]) {
|
||||||
DEFINE_PROP_UINT32("nr", VirtConsole, port.id, VIRTIO_CONSOLE_BAD_ID),
|
DEFINE_PROP_UINT32("nr", VirtConsole, port.id, VIRTIO_CONSOLE_BAD_ID),
|
||||||
|
Loading…
Reference in New Issue
Block a user