On 19/02/2018 10:15, Thomas Huth wrote: > Other options like "-chardev" or "-device" feature a nice help text > with the available devices when being called with "help" or "?". > Since it is quite useful, especially if you want to see which network > backends have been compiled into the QEMU binary, let's provide such > a help text for "-netdev", too. > > Signed-off-by: Thomas Huth <th...@redhat.com> > --- > net/net.c | 37 ++++++++++++++++++++++++++++++++++++- > 1 file changed, 36 insertions(+), 1 deletion(-) > > diff --git a/net/net.c b/net/net.c > index e213a61..08049d9 100644 > --- a/net/net.c > +++ b/net/net.c > @@ -1086,6 +1086,38 @@ static int net_client_init1(const void *object, bool > is_netdev, Error **errp) > return 0; > } > > +static void show_netdevs(void) > +{ > + int idx; > + const char *available_netdevs[] = { > + "socket", > + "hubport", > + "tap", > +#ifdef CONFIG_SLIRP > + "user", > +#endif > +#ifdef CONFIG_L2TPV3 > + "l2tpv3", > +#endif > +#ifdef CONFIG_VDE > + "vde", > +#endif > +#ifdef CONFIG_NET_BRIDGE > + "bridge", > +#endif > +#ifdef CONFIG_NETMAP > + "netmap", > +#endif > +#ifdef CONFIG_POSIX > + "vhost-user", > +#endif > + }; > + > + printf("Available netdev backend types:\n"); > + for (idx = 0; idx < ARRAY_SIZE(available_netdevs); idx++) { > + puts(available_netdevs[idx]); > + } > +} > > int net_client_init(QemuOpts *opts, bool is_netdev, Error **errp) > { > @@ -1094,7 +1126,10 @@ int net_client_init(QemuOpts *opts, bool is_netdev, > Error **errp) > int ret = -1; > Visitor *v = opts_visitor_new(opts); > > - { > + if (is_netdev && is_help_option(qemu_opt_get(opts, "type"))) { > + show_netdevs(); > + exit(1); > + } else { > /* Parse convenience option format ip6-net=fec0::0[/64] */ > const char *ip6_net = qemu_opt_get(opts, "ipv6-net"); > >
Reviewed-by: Paolo Bonzini <pbonz...@redhat.com> Paolo