]> git.proxmox.com Git - mirror_qemu.git/commit - hw/char/cadence_uart.c
serial: poll the serial console with G_IO_HUP
authorRoger Pau Monne <roger.pau@citrix.com>
Fri, 23 May 2014 15:57:49 +0000 (17:57 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Mon, 30 Jun 2014 13:04:34 +0000 (15:04 +0200)
commite02bc6de30c44fd668dc0d6e1cd1804f2eed3ed3
tree248484486b6a64e6c79a4560bec751d6130ec505
parent9328cfd2fe4a7ff86a41b2c26ea33974241d7d4e
serial: poll the serial console with G_IO_HUP

On FreeBSD polling a master pty while the other end is not connected
with G_IO_OUT only results in an endless wait. This is different from
the Linux behaviour, that returns immediately. In order to demonstrate
this, I have the following example code:

http://xenbits.xen.org/people/royger/test_poll.c

When executed on Linux:

$ ./test_poll
In callback

On FreeBSD instead, the callback never gets called:

$ ./test_poll

So, in order to workaround this, poll the source with G_IO_HUP (which
makes the code behave the same way on both Linux and FreeBSD).

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Cc: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Cc: Michael Tokarev <mjt@tls.msk.ru>
Cc: "Andreas Färber" <afaerber@suse.de>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: xen-devel@lists.xenproject.org
[Add hw/char/cadence_uart.c too. - Paolo]
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
hw/char/cadence_uart.c
hw/char/serial.c
hw/char/virtio-console.c
hw/usb/redirect.c
monitor.c