Inspired by [1], the first half of this series attempts to implement a new visitor that should clean up defining and processing command line options. For a more detailed description, please see "[PATCH 05/17] qapi: introduce OptsVisitor".
The second half converts -net/-netdev parsing to the new visitor. v1->v2: - Insert a small patch between v1 01/16 and v1 02/16 in order to generate C types for fixed-width integers. - Tighten / clean up integer types in Netdev options and in OptsVisitor. - NetLegacy::name is optional. - Changes are marked below individually and described separately. - (Rebase to current master.) [1] http://lists.nongnu.org/archive/html/qemu-devel/2012-04/msg02512.html Laszlo Ersek (16): qapi: generate C types for fixed-width integers [new] qapi: introduce "size" type [v2] expose QemuOpt and QemuOpts struct definitions to interested parties qapi: introduce OptsVisitor [v2] qapi schema: remove trailing whitespace qapi schema: add Netdev types [v2] hw, net: "net_client_type" -> "NetClientOptionsKind" (qapi-generated) convert net_client_init() to OptsVisitor [v2] convert net_init_nic() to NetClientOptions [v2] convert net_init_dump() to NetClientOptions [v2] convert net_init_slirp() to NetClientOptions convert net_init_socket() to NetClientOptions convert net_init_vde() to NetClientOptions [v2] convert net_init_tap() to NetClientOptions convert net_init_bridge() to NetClientOptions remove unused QemuOpts parameter from net init functions Paolo Bonzini (1): qapi: fix error propagation error.h | 4 +- net.h | 16 +-- net/dump.h | 5 +- net/slirp.h | 5 +- net/socket.h | 5 +- net/tap.h | 10 +- net/vde.h | 5 +- qapi/opts-visitor.h | 31 +++ qapi/qapi-visit-core.h | 3 + qemu-option-internal.h | 53 +++++ error.c | 4 +- hw/cadence_gem.c | 2 +- hw/dp8393x.c | 2 +- hw/e1000.c | 2 +- hw/eepro100.c | 2 +- hw/etraxfs_eth.c | 2 +- hw/lan9118.c | 2 +- hw/lance.c | 2 +- hw/mcf_fec.c | 2 +- hw/milkymist-minimac2.c | 2 +- hw/mipsnet.c | 2 +- hw/musicpal.c | 2 +- hw/ne2000-isa.c | 2 +- hw/ne2000.c | 2 +- hw/opencores_eth.c | 2 +- hw/pcnet-pci.c | 2 +- hw/rtl8139.c | 2 +- hw/smc91c111.c | 2 +- hw/spapr_llan.c | 2 +- hw/stellaris_enet.c | 2 +- hw/usb/dev-network.c | 2 +- hw/vhost_net.c | 2 +- hw/virtio-net.c | 10 +- hw/xen_nic.c | 2 +- hw/xgmac.c | 2 +- hw/xilinx_axienet.c | 2 +- hw/xilinx_ethlite.c | 2 +- net.c | 494 +++++++++++----------------------------- net/dump.c | 24 ++- net/slirp.c | 96 +++------ net/socket.c | 124 ++++------- net/tap-aix.c | 2 +- net/tap-bsd.c | 2 +- net/tap-haiku.c | 2 +- net/tap-linux.c | 9 +- net/tap-solaris.c | 2 +- net/tap-win32.c | 14 +- net/tap.c | 152 ++++++------ net/vde.c | 20 +- qapi/opts-visitor.c | 401 ++++++++++++++++++++++++++++++++ qapi/qapi-visit-core.c | 17 +- qemu-option.c | 24 +-- tests/test-qmp-input-visitor.c | 24 ++- docs/qapi-code-gen.txt | 2 + qapi-schema.json | 285 +++++++++++++++++++++++- qapi/Makefile.objs | 2 +- scripts/qapi-visit.py | 129 ++++++----- scripts/qapi.py | 6 + 58 files changed, 1260 insertions(+), 772 deletions(-) create mode 100644 qapi/opts-visitor.h create mode 100644 qemu-option-internal.h create mode 100644 qapi/opts-visitor.c