mirror of
https://github.com/xemu-project/xemu.git
synced 2024-11-23 19:49:43 +00:00
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,
|
||||
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),
|
||||
|
Loading…
Reference in New Issue
Block a user