The goal of this series is to have a resizable terminal into a guest without having to set up networking and using, e.g. ssh.
The virtio spec allows a virtio-console device to notify the guest about terminal resizes in the host. Linux Kernel implements the driver part of the spec. This series implement the device part in QEMU. This series adds support for a resizable terminal if a virtio console device is connected to the stdio backend. This series also introduces resize messages that can be sent over QMP to notify QEMU about the size of the terminal connented to some chardev. In the libvirt setting, it will allow to implement a resizable terminal for virsh console and other libvirt clients. v3: add resize messages over QMP, as suggested by Daniel v2: fix adding a new virtio feature bit to the virtio console device Szymon Lukasz (9): chardev: add cols, rows fields chardev: add CHR_EVENT_RESIZE chardev: add qemu_chr_resize() char-mux: add support for the terminal size main-loop: change the handling of SIGWINCH char-stdio: add support for the terminal size qmp: add chardev-resize command virtio-serial-bus: add terminal resize messages virtio-console: notify the guest about terminal resizes backends/cryptodev-vhost-user.c | 1 + chardev/char-fe.c | 13 +++++++ chardev/char-mux.c | 18 ++++++++- chardev/char-stdio.c | 29 ++++++++++++++ chardev/char.c | 26 +++++++++++++ hw/block/vhost-user-blk.c | 1 + hw/char/terminal3270.c | 1 + hw/char/trace-events | 1 + hw/char/virtio-console.c | 63 +++++++++++++++++++++++++++++-- hw/char/virtio-serial-bus.c | 42 ++++++++++++++++++++- hw/core/machine.c | 1 + hw/ipmi/ipmi_bmc_extern.c | 1 + hw/usb/ccid-card-passthru.c | 1 + hw/usb/dev-serial.c | 1 + hw/usb/redirect.c | 1 + include/chardev/char-fe.h | 10 +++++ include/chardev/char.h | 7 ++++ include/hw/virtio/virtio-serial.h | 5 +++ include/qemu/main-loop.h | 4 ++ monitor/hmp.c | 1 + monitor/qmp.c | 1 + net/vhost-user.c | 1 + qapi/char.json | 25 ++++++++++++ ui/curses.c | 11 +++--- util/main-loop.c | 21 +++++++++++ 25 files changed, 274 insertions(+), 12 deletions(-) -- 2.27.0