diff options
author | Luiz Capitulino <lcapitulino@redhat.com> | 2009-11-26 22:58:52 -0200 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2009-12-03 09:41:21 -0600 |
commit | adcb181afe5a951c521411c7a8e9d9b791aa6742 (patch) | |
tree | 64f3b4ea8e40af32f834543b384bf2c050557ffc /vl.c | |
parent | 418173c72f2eab47a3bb76d1d379cdb215d711d0 (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 'vl.c')
-rw-r--r-- | vl.c | 11 |
1 files changed, 7 insertions, 4 deletions
@@ -4589,6 +4589,7 @@ int main(int argc, char **argv, char **envp) const char *r, *optarg; CharDriverState *monitor_hds[MAX_MONITOR_DEVICES]; const char *monitor_devices[MAX_MONITOR_DEVICES]; + int monitor_flags[MAX_MONITOR_DEVICES]; int monitor_device_index; const char *serial_devices[MAX_SERIAL_PORTS]; int serial_device_index; @@ -4676,8 +4677,10 @@ int main(int argc, char **argv, char **envp) virtio_console_index = 0; monitor_devices[0] = "vc:80Cx24C"; + monitor_flags[0] = MONITOR_IS_DEFAULT | MONITOR_USE_READLINE; for (i = 1; i < MAX_MONITOR_DEVICES; i++) { monitor_devices[i] = NULL; + monitor_flags[i] = MONITOR_USE_READLINE; } monitor_device_index = 0; @@ -5098,7 +5101,9 @@ int main(int argc, char **argv, char **envp) fprintf(stderr, "qemu: too many monitor devices\n"); exit(1); } - monitor_devices[monitor_device_index] = optarg; + monitor_devices[monitor_device_index] = + monitor_cmdline_parse(optarg, + &monitor_flags[monitor_device_index]); monitor_device_index++; break; case QEMU_OPTION_chardev: @@ -5792,9 +5797,7 @@ int main(int argc, char **argv, char **envp) for (i = 0; i < MAX_MONITOR_DEVICES; i++) { if (monitor_devices[i] && monitor_hds[i]) { - monitor_init(monitor_hds[i], - MONITOR_USE_READLINE | - ((i == 0) ? MONITOR_IS_DEFAULT : 0)); + monitor_init(monitor_hds[i], monitor_flags[i]); } } |