Changed in v4: - rebased on top of the latest chardev changes - remarks applied - patch 1 fixed so it works with alias names
======== Changed in v3: - minor remarks to patch 1 applied - patch 3: avoid using bottom-half, handle syncronously As mentioned, it gets thing complicated and is only a problem for a monitor-connected chardev hotswap and that is not supported for now - tests added (patches 6-9) ======== This serie is a v2 of the February submit http://lists.nongnu.org/archive/html/qemu-devel/2017-02/msg01989.html The interface is changed as requested and the changes are slightly reworked and split into separate patches. ======== The patchset adds support of the character device change without a frontend device removal. Yet isa-serial and virtio-serial frontends are supported. The feature can be helpful for e.g. Windows debug allowing to establish connection to a live VM from VM with WinDbg. Anton Nefedov (13): char: move QemuOpts->ChardevBackend translation to a separate func char: add backend hotswap handler char: chardevice hotswap char: forbid direct chardevice access for hotswap devices char: avoid chardevice direct access test-char: unref chardev-udp after test test-char: split char_udp_test test-char: split char_file_test test-char: add hotswap test hmp: add hmp analogue for qmp-chardev-change virtio-console: chardev hotswap support serial: move TIOCM update to a separate function serial: chardev hotswap support include/chardev/char-fe.h | 39 +++++++ include/chardev/char.h | 19 ++++ hmp.h | 1 + backends/rng-egd.c | 2 +- chardev/char-fe.c | 49 +++++++-- chardev/char-mux.c | 1 + chardev/char.c | 167 +++++++++++++++++++++++----- gdbstub.c | 2 +- hmp-commands.hx | 18 ++- hmp.c | 34 ++++++ hw/arm/pxa2xx.c | 3 +- hw/arm/strongarm.c | 4 +- hw/char/bcm2835_aux.c | 2 +- hw/char/cadence_uart.c | 4 +- hw/char/debugcon.c | 4 +- hw/char/digic-uart.c | 2 +- hw/char/escc.c | 8 +- hw/char/etraxfs_ser.c | 2 +- hw/char/exynos4210_uart.c | 4 +- hw/char/grlib_apbuart.c | 4 +- hw/char/imx_serial.c | 2 +- hw/char/ipoctal232.c | 4 +- hw/char/lm32_juart.c | 2 +- hw/char/lm32_uart.c | 2 +- hw/char/mcf_uart.c | 2 +- hw/char/milkymist-uart.c | 2 +- hw/char/parallel.c | 2 +- hw/char/pl011.c | 2 +- hw/char/sclpconsole-lm.c | 4 +- hw/char/sclpconsole.c | 4 +- hw/char/serial.c | 63 ++++++++--- hw/char/sh_serial.c | 4 +- hw/char/spapr_vty.c | 4 +- hw/char/stm32f2xx_usart.c | 3 +- hw/char/terminal3270.c | 4 +- hw/char/virtio-console.c | 35 +++++- hw/char/xen_console.c | 4 +- hw/char/xilinx_uartlite.c | 2 +- hw/ipmi/ipmi_bmc_extern.c | 4 +- hw/mips/boston.c | 2 +- hw/mips/mips_malta.c | 2 +- hw/misc/ivshmem.c | 6 +- hw/usb/ccid-card-passthru.c | 6 +- hw/usb/dev-serial.c | 7 +- hw/usb/redirect.c | 7 +- monitor.c | 4 +- net/colo-compare.c | 10 +- net/filter-mirror.c | 8 +- net/slirp.c | 2 +- net/vhost-user.c | 7 +- qapi-schema.json | 40 +++++++ qtest.c | 2 +- tests/test-char.c | 263 +++++++++++++++++++++++++++++++++----------- tests/test-hmp.c | 1 + tests/vhost-user-test.c | 2 +- 55 files changed, 685 insertions(+), 202 deletions(-) -- 2.7.4