Revision b60c470b
b/hw/virtio-serial.c | ||
---|---|---|
110 | 110 |
virtio_serial_port_qdev_register(&virtconsole_info); |
111 | 111 |
} |
112 | 112 |
device_init(virtconsole_register) |
113 |
|
|
114 |
/* Generic Virtio Serial Ports */ |
|
115 |
static int virtserialport_initfn(VirtIOSerialDevice *dev) |
|
116 |
{ |
|
117 |
VirtIOSerialPort *port = DO_UPCAST(VirtIOSerialPort, dev, &dev->qdev); |
|
118 |
VirtConsole *vcon = DO_UPCAST(VirtConsole, port, port); |
|
119 |
|
|
120 |
port->info = dev->info; |
|
121 |
|
|
122 |
if (vcon->chr) { |
|
123 |
qemu_chr_add_handlers(vcon->chr, chr_can_read, chr_read, chr_event, |
|
124 |
vcon); |
|
125 |
port->info->have_data = flush_buf; |
|
126 |
} |
|
127 |
return 0; |
|
128 |
} |
|
129 |
|
|
130 |
static VirtIOSerialPortInfo virtserialport_info = { |
|
131 |
.qdev.name = "virtserialport", |
|
132 |
.qdev.size = sizeof(VirtConsole), |
|
133 |
.init = virtserialport_initfn, |
|
134 |
.exit = virtconsole_exitfn, |
|
135 |
.qdev.props = (Property[]) { |
|
136 |
DEFINE_PROP_CHR("chardev", VirtConsole, chr), |
|
137 |
DEFINE_PROP_STRING("name", VirtConsole, port.name), |
|
138 |
DEFINE_PROP_END_OF_LIST(), |
|
139 |
}, |
|
140 |
}; |
|
141 |
|
|
142 |
static void virtserialport_register(void) |
|
143 |
{ |
|
144 |
virtio_serial_port_qdev_register(&virtserialport_info); |
|
145 |
} |
|
146 |
device_init(virtserialport_register) |
Also available in: Unified diff