mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 09:13:55 -06:00
char: use qemu_chr_fe* functions with CharBackend argument
This also switches from qemu_chr_add_handlers() to qemu_chr_fe_set_handlers(). Note that qemu_chr_fe_set_handlers() now takes the focus when fe_open (qemu_chr_add_handlers() did take the focus) Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20161022095318.17775-16-marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
fbf3cc3a67
commit
5345fdb446
47 changed files with 437 additions and 409 deletions
|
@ -283,9 +283,10 @@ static gboolean usbredir_write_unblocked(GIOChannel *chan, GIOCondition cond,
|
|||
static int usbredir_write(void *priv, uint8_t *data, int count)
|
||||
{
|
||||
USBRedirDevice *dev = priv;
|
||||
CharDriverState *chr = qemu_chr_fe_get_driver(&dev->cs);
|
||||
int r;
|
||||
|
||||
if (!dev->cs.chr->be_open) {
|
||||
if (!chr->be_open) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -294,10 +295,10 @@ static int usbredir_write(void *priv, uint8_t *data, int count)
|
|||
return 0;
|
||||
}
|
||||
|
||||
r = qemu_chr_fe_write(dev->cs.chr, data, count);
|
||||
r = qemu_chr_fe_write(&dev->cs, data, count);
|
||||
if (r < count) {
|
||||
if (!dev->watch) {
|
||||
dev->watch = qemu_chr_fe_add_watch(dev->cs.chr, G_IO_OUT | G_IO_HUP,
|
||||
dev->watch = qemu_chr_fe_add_watch(&dev->cs, G_IO_OUT | G_IO_HUP,
|
||||
usbredir_write_unblocked, dev);
|
||||
}
|
||||
if (r < 0) {
|
||||
|
@ -1375,7 +1376,7 @@ static void usbredir_realize(USBDevice *udev, Error **errp)
|
|||
USBRedirDevice *dev = USB_REDIRECT(udev);
|
||||
int i;
|
||||
|
||||
if (dev->cs.chr == NULL) {
|
||||
if (!qemu_chr_fe_get_driver(&dev->cs)) {
|
||||
error_setg(errp, QERR_MISSING_PARAMETER, "chardev");
|
||||
return;
|
||||
}
|
||||
|
@ -1406,8 +1407,9 @@ static void usbredir_realize(USBDevice *udev, Error **errp)
|
|||
dev->compatible_speedmask = USB_SPEED_MASK_FULL | USB_SPEED_MASK_HIGH;
|
||||
|
||||
/* Let the backend know we are ready */
|
||||
qemu_chr_add_handlers(dev->cs.chr, usbredir_chardev_can_read,
|
||||
usbredir_chardev_read, usbredir_chardev_event, dev);
|
||||
qemu_chr_fe_set_handlers(&dev->cs, usbredir_chardev_can_read,
|
||||
usbredir_chardev_read, usbredir_chardev_event,
|
||||
dev, NULL);
|
||||
|
||||
qemu_add_vm_change_state_handler(usbredir_vm_state_change, dev);
|
||||
}
|
||||
|
@ -1426,8 +1428,10 @@ static void usbredir_cleanup_device_queues(USBRedirDevice *dev)
|
|||
static void usbredir_handle_destroy(USBDevice *udev)
|
||||
{
|
||||
USBRedirDevice *dev = USB_REDIRECT(udev);
|
||||
CharDriverState *chr = qemu_chr_fe_get_driver(&dev->cs);
|
||||
|
||||
qemu_chr_delete(chr);
|
||||
|
||||
qemu_chr_delete(dev->cs.chr);
|
||||
dev->cs.chr = NULL;
|
||||
/* Note must be done after qemu_chr_close, as that causes a close event */
|
||||
qemu_bh_delete(dev->chardev_close_bh);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue