]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
qmp: don't make -qmp disable the default monitor
authorAnthony Liguori <aliguori@us.ibm.com>
Wed, 17 Mar 2010 19:52:30 +0000 (14:52 -0500)
committerAnthony Liguori <aliguori@us.ibm.com>
Fri, 19 Mar 2010 20:27:39 +0000 (15:27 -0500)
Instead, we introduce a default_qmp flag.  We don't use it yet, but will in the
next patch.

This has a user-visible impact as specifying just -qmp will now also show a
monitor on the 'vc'.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
vl.c

diff --git a/vl.c b/vl.c
index eda96aaa6c5f81a0046346471bbabe5fdeb56f1f..e14f45eaeef42188b85089f11351b207bbd0d6c8 100644 (file)
--- a/vl.c
+++ b/vl.c
@@ -273,6 +273,7 @@ static int default_vga = 1;
 static int default_floppy = 1;
 static int default_cdrom = 1;
 static int default_sdcard = 1;
+static int default_qmp = 1;
 
 static struct {
     const char *driver;
@@ -4269,15 +4270,22 @@ int main(int argc, char **argv, char **envp)
                 break;
             case QEMU_OPTION_qmp:
                 monitor_parse(optarg, "control");
-                default_monitor = 0;
+                default_qmp = 0;
                 break;
             case QEMU_OPTION_mon:
                 opts = qemu_opts_parse(&qemu_mon_opts, optarg, 1);
                 if (!opts) {
                     fprintf(stderr, "parse error: %s\n", optarg);
                     exit(1);
+                } else {
+                    const char *mode;
+                    mode = qemu_opt_get(opts, "mode");
+                    if (mode == NULL || strcmp(mode, "readline") == 0) {
+                        default_monitor = 0;
+                    } else if (strcmp(mode, "control") == 0) {
+                        default_qmp = 0;
+                    }
                 }
-                default_monitor = 0;
                 break;
             case QEMU_OPTION_chardev:
                 opts = qemu_opts_parse(&qemu_chardev_opts, optarg, 1);
@@ -4515,6 +4523,7 @@ int main(int argc, char **argv, char **envp)
                 default_parallel = 0;
                 default_virtcon = 0;
                 default_monitor = 0;
+                default_qmp = 0;
                 default_vga = 0;
                 default_net = 0;
                 default_floppy = 0;