qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v3 00/18] introduce OptsVisitor, rebase -net/-ne


From: Stefan Hajnoczi
Subject: Re: [Qemu-devel] [PATCH v3 00/18] introduce OptsVisitor, rebase -net/-netdev parsing
Date: Fri, 20 Jul 2012 10:12:44 +0100

On Tue, Jul 17, 2012 at 3:17 PM, Laszlo Ersek <address@hidden> wrote:
> The first two patches clean up error propagation and enable the release of
> incompletely parsed/created objects. A new test case is added as well.
>
> Inspired by [1], patches 3-6 add a new visitor that should simplify
> defining and processing command line options. For a more detailed
> description, please see "[PATCH v3 06/18] qapi: introduce OptsVisitor".
>
> The rest 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.)
>
> v2->v3:
> - Instead of examining, assert that we never overwrite errors with
>   error_set().
> - Allow visitors to set a NULL struct pointer successfully, so traversal
>   of incomplete objects can continue.
> - Check for a NULL "obj" before accessing "(*obj)->has_XXX" (this is not a
>   typo, "obj != NULL" implies "*obj != NULL" here).
> - Fix start_struct / end_struct balance for unions as well.
> - Add test case for deallocating traversal of incomplete structure.
> - Factor opts_visitor_insert() out of opts_start_struct() and call it
>   separately for opts_root->id if there's any.
> - Don't require non-negative values in opts_type_int()'s error message.
> - g_malloc0() may return NULL for zero-sized requests. Support empty
>   structures by requesting 1 byte for them instead.
> - NetLegacy::id is allowed and takes precedence over NetLegacy::name.
> - Replace "@traits" with "@opts" in NetLegacy & Netdev descriptions.
> - Keep "qemu-option.h" included in "net/slirp.h".
>
> [1] http://lists.nongnu.org/archive/html/qemu-devel/2012-04/msg02512.html
>
> Laszlo Ersek (17):
>   qapi: add test case for deallocating traversal of incomplete structure [new]
>   qapi: generate C types for fixed-width integers
>   qapi: introduce "size" type
>   expose QemuOpt and QemuOpts struct definitions to interested parties
>   qapi: introduce OptsVisitor                                            [v3]
>   qapi schema: remove trailing whitespace
>   qapi schema: add Netdev types                                          [v3]
>   hw, net: "net_client_type" -> "NetClientOptionsKind" (qapi-generated)
>   convert net_client_init() to OptsVisitor                               [v3]
>   convert net_init_nic() to NetClientOptions
>   convert net_init_dump() to NetClientOptions
>   convert net_init_slirp() to NetClientOptions
>   convert net_init_socket() to NetClientOptions
>   convert net_init_vde() to NetClientOptions
>   convert net_init_tap() to NetClientOptions
>   convert net_init_bridge() to NetClientOptions
>   remove unused QemuOpts parameter from net init functions               [v3]
>
> Paolo Bonzini (1):
>   qapi: fix error propagation                                            [v3]
>
>  error.h                        |    2 +-
>  net.h                          |   16 +--
>  net/dump.h                     |    5 +-
>  net/slirp.h                    |    4 +-
>  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                        |    3 +-
>  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            |  427 ++++++++++++++++++++++++++++++++++
>  qapi/qapi-visit-core.c         |   17 +-
>  qemu-option.c                  |   24 +--
>  tests/test-qmp-commands.c      |   42 ++++
>  tests/test-qmp-input-visitor.c |   24 ++-
>  docs/qapi-code-gen.txt         |    2 +
>  qapi-schema.json               |  288 +++++++++++++++++++++++-
>  qapi/Makefile.objs             |    2 +-
>  scripts/qapi-visit.py          |  150 ++++++++-----
>  scripts/qapi.py                |    6 +
>  59 files changed, 1350 insertions(+), 770 deletions(-)
>  create mode 100644 qapi/opts-visitor.h
>  create mode 100644 qemu-option-internal.h
>  create mode 100644 qapi/opts-visitor.c

Checked that -netdev options still work for user and socket.

Tested-by: Stefan Hajnoczi <address@hidden>



reply via email to

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