aboutsummaryrefslogtreecommitdiff
path: root/monitor.c
diff options
context:
space:
mode:
authorLuiz Capitulino <lcapitulino@redhat.com>2009-11-26 22:58:52 -0200
committerAnthony Liguori <aliguori@us.ibm.com>2009-12-03 09:41:21 -0600
commitadcb181afe5a951c521411c7a8e9d9b791aa6742 (patch)
tree64f3b4ea8e40af32f834543b384bf2c050557ffc /monitor.c
parent418173c72f2eab47a3bb76d1d379cdb215d711d0 (diff)
monitor: Command-line flag to enable control mode
This commit adds a flag called 'control' to the '-monitor' command-line option. This flag enables control mode. The syntax is: qemu [...] -monitor control,<device> Where <device> is a chardev (excluding 'vc', for obvious reasons). For example: $ qemu [...] -monitor control,tcp:localhost:4444,server Will run QEMU in control mode, waiting for a client TCP connection on localhost port 4444. NOTE: I've tried using QemuOpts for this, but turns out that it will try to parse the device part, which should be untouched. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'monitor.c')
-rw-r--r--monitor.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/monitor.c b/monitor.c
index 6733022a16..1dda8cdedb 100644
--- a/monitor.c
+++ b/monitor.c
@@ -3535,6 +3535,24 @@ static void monitor_event(void *opaque, int event)
* End:
*/
+const char *monitor_cmdline_parse(const char *cmdline, int *flags)
+{
+ const char *dev;
+
+ if (strstart(cmdline, "control,", &dev)) {
+ if (strstart(dev, "vc", NULL)) {
+ fprintf(stderr, "qemu: control mode is for low-level interaction ");
+ fprintf(stderr, "cannot be used with device 'vc'\n");
+ exit(1);
+ }
+ *flags &= ~MONITOR_USE_READLINE;
+ *flags |= MONITOR_USE_CONTROL;
+ return dev;
+ }
+
+ return cmdline;
+}
+
void monitor_init(CharDriverState *chr, int flags)
{
static int is_first_init = 1;