[libvirt] [PATCH 10/10] Convert guestfwd to -device, and add -sdl explicit args
Daniel Veillard
veillard at redhat.com
Thu Dec 17 09:21:21 UTC 2009
On Tue, Dec 15, 2009 at 03:14:50PM +0000, Daniel P. Berrange wrote:
> The old syntax was
>
> -chardev SOMECONFIG
> -nic user,guestfwd=tcp:IP:PORT-chardev:CHARDEV
>
> The new syntax is
>
> -chardev SOMECONFIG
> -netdev user,guestfwd=tcp:IP:PORT,chardev=CHARDEV
> ---
> src/qemu/qemu_conf.c | 41 ++++++++++++++++++++++++++++++++---------
> src/qemu/qemu_conf.h | 1 +
> 2 files changed, 33 insertions(+), 9 deletions(-)
>
> diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c
> index f8c6ae6..3d1cafa 100644
> --- a/src/qemu/qemu_conf.c
> +++ b/src/qemu/qemu_conf.c
> @@ -911,6 +911,8 @@ static unsigned int qemudComputeCmdFlags(const char *help,
> flags |= QEMUD_CMD_FLAG_CHARDEV;
> if (strstr(help, "-device"))
> flags |= QEMUD_CMD_FLAG_DEVICE;
> + if (strstr(help, "-sdl"))
> + flags |= QEMUD_CMD_FLAG_SDL;
>
> if (version >= 9000)
> flags |= QEMUD_CMD_FLAG_VNC_COLON;
> @@ -2576,18 +2578,33 @@ int qemudBuildCommandLine(virConnectPtr conn,
> const char *addr = virSocketFormatAddr(channel->target.addr);
> int port = virSocketGetPort(channel->target.addr);
>
> - virBufferVSprintf(&buf, "user,guestfwd=tcp:%s:%i-chardev:%s",
> - addr, port, id);
> + if (qemuCmdFlags & QEMUD_CMD_FLAG_DEVICE) {
> + ADD_ARG_LIT("-netdev");
> + virBufferVSprintf(&buf, "user,guestfwd=tcp:%s:%i,chardev=%s",
> + addr, port, id);
>
> - VIR_FREE(addr);
> + VIR_FREE(addr);
>
> - if (virBufferError(&buf)) {
> - virBufferFreeAndReset(&buf);
> - goto no_memory;
> - }
> + if (virBufferError(&buf)) {
> + virBufferFreeAndReset(&buf);
> + goto no_memory;
> + }
>
> - ADD_ARG_LIT("-net");
> - ADD_ARG(virBufferContentAndReset(&buf));
> + ADD_ARG(virBufferContentAndReset(&buf));
> + } else {
> + ADD_ARG_LIT("-net");
> + virBufferVSprintf(&buf, "user,guestfwd=tcp:%s:%i-chardev:%s",
> + addr, port, id);
> +
> + VIR_FREE(addr);
> +
> + if (virBufferError(&buf)) {
> + virBufferFreeAndReset(&buf);
> + goto no_memory;
> + }
> +
> + ADD_ARG(virBufferContentAndReset(&buf));
> + }
> }
> }
>
> @@ -2696,6 +2713,12 @@ int qemudBuildCommandLine(virConnectPtr conn,
> */
> ADD_ENV_COPY("QEMU_AUDIO_DRV");
> ADD_ENV_COPY("SDL_AUDIODRIVER");
> +
> + /* New QEMU has this flag to let us explicitly ask for
> + * SDL graphics. This is better than relying on the
> + * default, since the default changes :-( */
> + if (qemuCmdFlags & QEMUD_CMD_FLAG_SDL)
> + ADD_ARG_LIT("-sdl");
> }
>
> if (def->nvideos) {
> diff --git a/src/qemu/qemu_conf.h b/src/qemu/qemu_conf.h
> index 840b749..62f62e5 100644
> --- a/src/qemu/qemu_conf.h
> +++ b/src/qemu/qemu_conf.h
> @@ -77,6 +77,7 @@ enum qemud_cmd_flags {
> QEMUD_CMD_FLAG_0_12 = (1 << 24),
> QEMUD_CMD_FLAG_MONITOR_JSON = QEMUD_CMD_FLAG_0_12, /* JSON mode for monitor */
> QEMUD_CMD_FLAG_DEVICE = (1 << 25), /* Is the new -chardev arg available */
> + QEMUD_CMD_FLAG_SDL = (1 << 26), /* Is the new -sdl arg available */
> };
>
> /* Main driver state */
ACK, the -sdl option handling feels like a separate change but fine
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
daniel at veillard.com | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library http://libvirt.org/
More information about the libvir-list
mailing list