qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] chardev: Add 'help' option to print all availab


From: Marc-André Lureau
Subject: Re: [Qemu-devel] [PATCH] chardev: Add 'help' option to print all available chardev backend types
Date: Tue, 16 Aug 2016 17:25:21 +0000

Hi

On Tue, Aug 16, 2016 at 9:18 PM Lin Ma <address@hidden> wrote:

> Signed-off-by: Lin Ma <address@hidden>
> ---
>  qemu-char.c     | 21 ++++++++++++++++-----
>  qemu-options.hx |  3 +++
>  2 files changed, 19 insertions(+), 5 deletions(-)
>
> diff --git a/qemu-char.c b/qemu-char.c
> index 8a0ab05..8a7aef3 100644
> --- a/qemu-char.c
> +++ b/qemu-char.c
> @@ -39,6 +39,7 @@
>  #include "io/channel-file.h"
>  #include "io/channel-tls.h"
>  #include "sysemu/replay.h"
> +#include "qemu/help_option.h"
>
>  #include <zlib.h>
>
> @@ -3877,16 +3878,26 @@ CharDriverState *qemu_chr_new_from_opts(QemuOpts
> *opts,
>      const char *id = qemu_opts_id(opts);
>      char *bid = NULL;
>
> -    if (id == NULL) {
> -        error_setg(errp, "chardev: no id specified");
> -        goto err;
> -    }
> -
>      if (qemu_opt_get(opts, "backend") == NULL) {
>          error_setg(errp, "chardev: \"%s\" missing backend",
>                     qemu_opts_id(opts));
>          goto err;
>      }
> +
> +    if (is_help_option(qemu_opt_get(opts, "backend"))) {
> +        fprintf(stderr, "Available chardev backend types:\n");
> +        for (i = backends; i; i = i->next) {
> +            cd = i->data;
> +            fprintf(stderr, "%s\n", cd->name);
> +        }
> +        exit(!is_help_option(qemu_opt_get(opts, "backend")));
> +    }
> +
> +    if (id == NULL) {
> +        error_setg(errp, "chardev: no id specified");
> +        goto err;
> +    }
> +
>      for (i = backends; i; i = i->next) {
>          cd = i->data;
>
> diff --git a/qemu-options.hx b/qemu-options.hx
> index a71aaf8..379f7a5 100644
> --- a/qemu-options.hx
> +++ b/qemu-options.hx
> @@ -2148,6 +2148,7 @@ The general form of a character device option is:
>  ETEXI
>
>  DEF("chardev", HAS_ARG, QEMU_OPTION_chardev,
> +    "-chardev help\n"
>      "-chardev null,id=id[,mux=on|off][,logfile=PATH][,logappend=on|off]\n"
>      "-chardev
> socket,id=id[,host=host],port=port[,to=to][,ipv4][,ipv6][,nodelay][,reconnect=seconds]\n"
>      "
>  [,server][,nowait][,telnet][,reconnect=seconds][,mux=on|off]\n"
> @@ -2213,6 +2214,8 @@ Backend is one of:
>  @option{spiceport}.
>  The specific backend will determine the applicable options.
>
> +Use "-chardev help" to print all available chardev backend types.
> +
>

How different is it from the list in qemu -help ? Why duplicate that list
with less informations (arguments and details) ? Do you expect it to be
easily machine readable?


>  All devices must have an id, which can be any string up to 127 characters
> long.
>  It is used to uniquely identify this device in other command line
> directives.
>
> --
> 2.9.2
>
>
> --
Marc-André Lureau


reply via email to

[Prev in Thread] Current Thread [Next in Thread]