Commit 517b3d40 authored by Lin Ma's avatar Lin Ma Committed by Paolo Bonzini
Browse files

chardev: Add 'help' option to print all available chardev backend types



Signed-off-by: default avatarLin Ma <lma@suse.com>
Message-Id: <20160816171352.17021-1-lma@suse.com>
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent 17313446
Loading
Loading
Loading
Loading
+16 −5
Original line number Diff line number Diff line
@@ -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>

@@ -3879,16 +3880,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;

+3 −0
Original line number Diff line number Diff line
@@ -2152,6 +2152,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"
@@ -2217,6 +2218,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.

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.