[Top][All Lists]
[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>
- [Qemu-devel] [PATCH v3 09/18] hw, net: "net_client_type" -> "NetClientOptionsKind" (qapi-generated), (continued)
- [Qemu-devel] [PATCH v3 09/18] hw, net: "net_client_type" -> "NetClientOptionsKind" (qapi-generated), Laszlo Ersek, 2012/07/17
- [Qemu-devel] [PATCH v3 10/18] convert net_client_init() to OptsVisitor, Laszlo Ersek, 2012/07/17
- [Qemu-devel] [PATCH v3 13/18] convert net_init_slirp() to NetClientOptions, Laszlo Ersek, 2012/07/17
- [Qemu-devel] [PATCH v3 11/18] convert net_init_nic() to NetClientOptions, Laszlo Ersek, 2012/07/17
- [Qemu-devel] [PATCH v3 12/18] convert net_init_dump() to NetClientOptions, Laszlo Ersek, 2012/07/17
- [Qemu-devel] [PATCH v3 18/18] remove unused QemuOpts parameter from net init functions, Laszlo Ersek, 2012/07/17
- [Qemu-devel] [PATCH v3 16/18] convert net_init_tap() to NetClientOptions, Laszlo Ersek, 2012/07/17
- [Qemu-devel] [PATCH v3 15/18] convert net_init_vde() to NetClientOptions, Laszlo Ersek, 2012/07/17
- [Qemu-devel] [PATCH v3 17/18] convert net_init_bridge() to NetClientOptions, Laszlo Ersek, 2012/07/17
- [Qemu-devel] [PATCH v3 14/18] convert net_init_socket() to NetClientOptions, Laszlo Ersek, 2012/07/17
- Re: [Qemu-devel] [PATCH v3 00/18] introduce OptsVisitor, rebase -net/-netdev parsing,
Stefan Hajnoczi <=