Frontend device can be detached in run-time, which can lead to a
"Chardev 'MUX' is busy" error (see the last patch with the test case
implementation). This series implements frontend detach for the
multiplexer based on bitset, which provides the ability to attach or
detach frontend devices in any order.
Also first patches do some refactoring the purpose of which is to make
integer unsigned where possible (such as sizes or lengths).
v1->v2:
* improve if condition and assert for bit verification
Roman Penyaev (8):
chardev/char: fix qemu_chr_is_busy() check
chardev/chardev-internal: remove unused `max_size` struct member
chardev/mux: use bool type for `linestart` and `term_got_escape`
chardev/mux: convert size members to unsigned int
chardev/mux: introduce `mux_chr_attach_frontend() call
chardev/mux: switch mux frontends management to bitset
chardev/mux: implement detach of frontends from mux
tests/unit/test-char: implement a few mux remove test cases
chardev/char-fe.c | 13 ++----
chardev/char-mux.c | 90 ++++++++++++++++++++++++++++----------
chardev/char.c | 2 +-
chardev/chardev-internal.h | 16 ++++---
include/chardev/char-fe.h | 2 +-
tests/unit/test-char.c | 24 +++++++++-
6 files changed, 105 insertions(+), 42 deletions(-)
Signed-off-by: Roman Penyaev <r.peniaev@gmail.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Cc: qemu-devel@nongnu.org
--
2.34.1