]> git.proxmox.com Git - mirror_qemu.git/commit
chardev: mark the calls that allow an implicit mux monitor
authorMarc-André Lureau <marcandre.lureau@redhat.com>
Wed, 22 Aug 2018 17:19:42 +0000 (19:19 +0200)
committerMarc-André Lureau <marcandre.lureau@redhat.com>
Wed, 3 Oct 2018 10:45:05 +0000 (14:45 +0400)
commit95e30b2a131ed1f94ab7a64326243943317aa18a
tree13e15791ee1e7b0f8095a3165710716043bb3527
parent5662576ad020c8eabdc1a84e9ee1f9ce85578bbb
chardev: mark the calls that allow an implicit mux monitor

This is mostly for readability of the code. Let's make it clear which
callers can create an implicit monitor when the chardev is muxed.

This will also enforce a safer behaviour, as we don't really support
creating monitor anywhere/anytime at the moment. Add an assert() to
make sure the programmer explicitely wanted that behaviour.

There are documented cases, such as: -serial/-parallel/-virtioconsole
and to less extent -debugcon.

Less obvious and questionable ones are -gdb, SLIRP -guestfwd and Xen
console. Add a FIXME note for those, but keep the support for now.

Other qemu_chr_new() callers either have a fixed parameter/filename
string or do not need it, such as -qtest:

* qtest.c: qtest_init()
  Afaik, only used by tests/libqtest.c, without mux. I don't think we
  support it outside of qemu testing: drop support for implicit mux
  monitor (qemu_chr_new() call: no implicit mux now).

* hw/
  All with literal @filename argument that doesn't enable mux monitor.

* tests/
  All with @filename argument that doesn't enable mux monitor.

On a related note, the list of monitor creation places:

- the chardev creators listed above: all from command line (except
  perhaps Xen console?)

- -gdb & hmp gdbserver will create a "GDB monitor command" chardev
  that is wired to an HMP monitor.

- -mon command line option

From this short study, I would like to think that a monitor may only
be created in the main thread today, though I remain skeptical :)

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
chardev/char.c
gdbstub.c
hw/char/xen_console.c
include/chardev/char.h
net/slirp.c
vl.c