diff options
author | Roman Penyaev <r.peniaev@gmail.com> | 2025-01-23 09:53:22 +0100 |
---|---|---|
committer | Marc-André Lureau <marcandre.lureau@redhat.com> | 2025-02-03 13:57:08 +0400 |
commit | b66ed232383162dc52d6a1c996599541860d1f1a (patch) | |
tree | 72f96eaa9ab26da1b5a075abe073e742a6ab2880 /scripts/render_block_graph.py | |
parent | 4e059a9d966703e27c9f15e47c9b5e94509c5538 (diff) | |
download | qemu-b66ed232383162dc52d6a1c996599541860d1f1a.zip qemu-b66ed232383162dc52d6a1c996599541860d1f1a.tar.gz qemu-b66ed232383162dc52d6a1c996599541860d1f1a.tar.bz2 |
chardev/char-hub: implement backend chardev aggregator
This patch implements a new chardev backend `hub` device, which
aggregates input from multiple backend devices and forwards it to a
single frontend device. Additionally, `hub` device takes the output
from the frontend device and sends it back to all the connected
backend devices. This allows for seamless interaction between
different backend devices and a single frontend interface.
The idea of the change is trivial: keep list of backend devices
(up to 4), init them on demand and forward data buffer back and
forth.
The following is QEMU command line example:
-chardev pty,path=/tmp/pty,id=pty0 \
-chardev vc,id=vc0 \
-chardev hub,id=hub0,chardevs.0=pty0,chardevs.1=vc0 \
-device virtconsole,chardev=hub0 \
-vnc 0.0.0.0:0
Which creates 2 backend devices: text virtual console (`vc0`) and a
pseudo TTY (`pty0`) connected to the single virtio hvc console with
the backend aggregator (`hub0`) help. `vc0` renders text to an image,
which can be shared over the VNC protocol. `pty0` is a pseudo TTY
backend which provides biderectional communication to the virtio hvc
console.
'chardevs.N' list syntax is used for the sake of compatibility with
the representation of JSON lists in 'key=val' pairs format of the
util/keyval.c, despite the fact that modern QAPI way of parsing,
namely qobject_input_visitor_new_str(), is not used. Choice of keeping
QAPI list syntax may help to smoothly switch to modern parsing in the
future.
Signed-off-by: Roman Penyaev <r.peniaev@gmail.com>
Reviewed-by: "Marc-André Lureau" <marcandre.lureau@redhat.com>
Cc: qemu-devel@nongnu.org
Message-ID: <20250123085327.965501-3-r.peniaev@gmail.com>
Diffstat (limited to 'scripts/render_block_graph.py')
0 files changed, 0 insertions, 0 deletions