qemu-e2k/net
Marc-André Lureau 95e30b2a13 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>
2018-10-03 14:45:05 +04:00
..
can object: fix OBJ_PROP_LINK_UNREF_ON_RELEASE ambivalence 2018-06-12 12:07:30 +02:00
checksum.c
clients.h Drop superfluous includes of qapi-types.h and test-qapi-types.h 2018-02-09 05:05:11 +01:00
colo-compare.c object: fix OBJ_PROP_LINK_UNREF_ON_RELEASE ambivalence 2018-06-12 12:07:30 +02:00
colo.c colo: use local path for local headers 2018-06-01 19:20:38 +03:00
colo.h colo: compare the packet based on the tcp sequence number 2018-01-29 16:05:37 +08:00
dump.c net: Remove the deprecated way of dumping network packets 2018-03-05 10:30:15 +08:00
eth.c net/eth: fix incorrect check of iov_to_buf() return value 2017-07-31 13:06:38 +03:00
filter-buffer.c qapi: Move qapi-schema.json to qapi/, rename generated files 2018-03-02 13:45:57 -06:00
filter-mirror.c Include less of the generated modular QAPI headers 2018-03-02 13:45:50 -06:00
filter-replay.c Include qapi/error.h exactly where needed 2018-02-09 13:50:17 +01:00
filter-rewriter.c colo: use local path for local headers 2018-06-01 19:20:38 +03:00
filter.c qapi: Change data type of the FOO_lookup generated for enum FOO 2017-09-04 13:09:13 +02:00
hub.c net: Get rid of 'vlan' terminology and use 'hub' instead in the source files 2018-05-14 15:47:14 +08:00
hub.h net: Allow hubports to connect to other netdevs 2018-01-29 16:05:37 +08:00
l2tpv3.c
Makefile.objs net/can: simple messages transport implementation for QEMU 2018-02-13 11:44:13 +01:00
net.c net: Deprecate the "name" parameter of -net 2018-09-25 17:26:17 +02:00
netmap.c
queue.c
slirp.c chardev: mark the calls that allow an implicit mux monitor 2018-10-03 14:45:05 +04:00
socket.c net/socket: fix coverity issue 2017-11-13 18:05:12 +08:00
tap_int.h Include less of the generated modular QAPI headers 2018-03-02 13:45:50 -06:00
tap-bsd.c
tap-linux.c
tap-linux.h
tap-solaris.c
tap-stub.c
tap-win32.c
tap.c tap: fix memory leak on success to create a tap device 2018-07-20 08:30:49 +08:00
trace-events colo: compare the packet based on the tcp sequence number 2018-01-29 16:05:37 +08:00
util.c
util.h
vde.c net/vde: print error on vde_open() failure 2018-03-26 14:52:43 +08:00
vhost-user.c vhost-user: delete net client if necessary 2018-06-15 10:39:53 +08:00