diff options
| author | Peter Maydell <peter.maydell@linaro.org> | 2020-02-17 13:32:25 +0000 |
|---|---|---|
| committer | Peter Maydell <peter.maydell@linaro.org> | 2020-02-17 13:32:25 +0000 |
| commit | 6c599282f8ab382fe59f03a6cae755b89561a7b3 (patch) | |
| tree | 85492f9cb8329bb9fff18aeef2f0f8a4c948e2c8 /monitor/monitor.c | |
| parent | 652c5bbd7e7d3cb3d27a2e0590118dc79fb6f4d8 (diff) | |
| parent | ec95fcc8bae624e87c7601d2d4baf7c519c3814e (diff) | |
| download | focaccia-qemu-6c599282f8ab382fe59f03a6cae755b89561a7b3.tar.gz focaccia-qemu-6c599282f8ab382fe59f03a6cae755b89561a7b3.zip | |
Merge remote-tracking branch 'remotes/armbru/tags/pull-monitor-2020-02-15-v2' into staging
Monitor patches for 2020-02-15 # gpg: Signature made Mon 17 Feb 2020 13:26:20 GMT # gpg: using RSA key 354BC8B3D7EB2A6B68674E5F3870B400EB918653 # gpg: issuer "armbru@redhat.com" # gpg: Good signature from "Markus Armbruster <armbru@redhat.com>" [full] # gpg: aka "Markus Armbruster <armbru@pond.sub.org>" [full] # Primary key fingerprint: 354B C8B3 D7EB 2A6B 6867 4E5F 3870 B400 EB91 8653 * remotes/armbru/tags/pull-monitor-2020-02-15-v2: qemu-doc: Clarify extent of build platform support monitor: Move qmp_query_qmp_schema to qmp-cmds-control.c monitor: Collect "control" command handlers in qmp-cmds.control.c qapi: Split control.json off misc.json monitor: Move monitor option parsing to monitor/monitor.c Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'monitor/monitor.c')
| -rw-r--r-- | monitor/monitor.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/monitor/monitor.c b/monitor/monitor.c index 12898b6448..c1a6c4460f 100644 --- a/monitor/monitor.c +++ b/monitor/monitor.c @@ -609,6 +609,54 @@ void monitor_init_globals_core(void) NULL); } +int monitor_init_opts(QemuOpts *opts, Error **errp) +{ + Chardev *chr; + bool qmp; + bool pretty = false; + const char *chardev; + const char *mode; + + mode = qemu_opt_get(opts, "mode"); + if (mode == NULL) { + mode = "readline"; + } + if (strcmp(mode, "readline") == 0) { + qmp = false; + } else if (strcmp(mode, "control") == 0) { + qmp = true; + } else { + error_setg(errp, "unknown monitor mode \"%s\"", mode); + return -1; + } + + if (!qmp && qemu_opt_get(opts, "pretty")) { + warn_report("'pretty' is deprecated for HMP monitors, it has no effect " + "and will be removed in future versions"); + } + if (qemu_opt_get_bool(opts, "pretty", 0)) { + pretty = true; + } + + chardev = qemu_opt_get(opts, "chardev"); + if (!chardev) { + error_report("chardev is required"); + exit(1); + } + chr = qemu_chr_find(chardev); + if (chr == NULL) { + error_setg(errp, "chardev \"%s\" not found", chardev); + return -1; + } + + if (qmp) { + monitor_init_qmp(chr, pretty); + } else { + monitor_init_hmp(chr, true); + } + return 0; +} + QemuOptsList qemu_mon_opts = { .name = "mon", .implied_opt_name = "chardev", |