Hello, This series lets interested callers ask for an -EAGAIN return from the chardev backends (only unix and tcp sockets as of now) to implement their own flow control.
Support for other backend types is easy to add, I'll do that in a separate series if this is acceptable. Amit Shah (4): char: Let writers know how much data was written in case of errors char: Add ability to provide a callback when write won't return -EAGAIN virtio-console: Factor out common init between console and generic ports virtio-console: Throttle virtio-serial-bus if we can't consume any more guest data gdbstub.c | 2 +- hw/debugcon.c | 2 +- hw/escc.c | 3 +- hw/etraxfs_ser.c | 4 +- hw/mcf_uart.c | 2 +- hw/pl011.c | 2 +- hw/pxa2xx.c | 2 +- hw/serial.c | 2 +- hw/sh_serial.c | 2 +- hw/syborg_serial.c | 3 +- hw/usb-serial.c | 2 +- hw/virtio-console.c | 156 +++++++++++++++++++++++++++++++++++++++++++------- hw/xen_console.c | 7 +- hw/xilinx_uartlite.c | 5 +- monitor.c | 4 +- net/slirp.c | 2 +- net/socket.c | 4 +- qemu-char.c | 68 ++++++++++++++++++---- qemu-char.h | 6 ++ qemu_socket.h | 3 +- 20 files changed, 227 insertions(+), 54 deletions(-)