qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [PATCH RFC v3 00/20] post-introspection qapi cleanups


From: Eric Blake
Subject: [Qemu-devel] [PATCH RFC v3 00/20] post-introspection qapi cleanups
Date: Tue, 18 Aug 2015 07:19:42 -0700

Still RFC because it depends on Markus' RFC v3:
https://lists.gnu.org/archive/html/qemu-devel/2015-08/msg00426.html

v1 was here:
https://lists.gnu.org/archive/html/qemu-devel/2015-07/msg05266.html
https://lists.gnu.org/archive/html/qemu-devel/2015-07/msg05325.html

In v2:
https://lists.gnu.org/archive/html/qemu-devel/2015-08/msg00900.html
rebase to Markus' v3 series
rework how comments are emitted for fields inherited from base
additional patches added for deleting colliding 'void *data'
documentation updates to match code changes

In v3:
redo cleanup of dealloc of partial struct
add patches to make all visit_type_*() avoid leaks on failure
add patches to allow boxed command arguments and events

Eric Blake (20):
  qapi: use 'type' in generated C code to match QMP union wire form
  vnc: hoist allocation of VncBasicInfo to callers
  qapi: Unbox base members
  qapi-visit: Remove redundant functions for flat union base
  qapi: Test use of 'number' within alternates
  qapi: Simplify visiting of alternate types
  qapi: Fix alternates that accept 'number' but not 'int'
  qapi: Don't pass pre-existing error to later call
  qapi: Use consistent generated code patterns
  qapi: Add tests for empty unions
  qapi: Rework deallocation of partial struct
  qapi: Avoid use of 'data' member of qapi unions
  qapi: Forbid empty unions and useless alternates
  qapi: Drop useless 'data' member of unions
  qapi: Remove dead visitor code
  qapi: Document visitor interfaces
  qapi: Change visit_type_XXX() to no longer return partial objects
  qapi: Plumb in 'box' to qapi generator lower levels
  qapi: Implement boxed structs for commands/events
  qapi: Support boxed unions

 block/qcow2.c                            |   2 +-
 block/vmdk.c                             |   2 +-
 blockdev.c                               |  34 ++---
 docs/qapi-code-gen.txt                   |  47 ++++---
 hmp.c                                    |  18 +--
 hw/input/hid.c                           |   2 +-
 hw/input/ps2.c                           |   2 +-
 hw/input/virtio-input-hid.c              |   2 +-
 hw/mem/pc-dimm.c                         |   2 +-
 include/qapi/visitor-impl.h              |  55 +++++---
 include/qapi/visitor.h                   | 214 ++++++++++++++++++++++++++++---
 net/dump.c                               |   2 +-
 net/hub.c                                |   2 +-
 net/l2tpv3.c                             |   2 +-
 net/net.c                                |  20 +--
 net/slirp.c                              |   2 +-
 net/socket.c                             |   2 +-
 net/tap.c                                |   4 +-
 net/vhost-user.c                         |   2 +-
 numa.c                                   |   4 +-
 qapi/qapi-dealloc-visitor.c              |  26 ----
 qapi/qapi-visit-core.c                   | 158 +++++++++--------------
 qapi/qmp-input-visitor.c                 |   8 +-
 qemu-char.c                              |  24 ++--
 scripts/qapi-commands.py                 | 101 +++++++++------
 scripts/qapi-event.py                    |  76 ++++++-----
 scripts/qapi-introspect.py               |   4 +-
 scripts/qapi-types.py                    |  75 +++--------
 scripts/qapi-visit.py                    | 159 +++++++++++++----------
 scripts/qapi.py                          | 109 +++++++++++-----
 tests/Makefile                           |   5 +-
 tests/qapi-schema/alternate-empty.err    |   1 +
 tests/qapi-schema/alternate-empty.exit   |   1 +
 tests/qapi-schema/alternate-empty.json   |   2 +
 tests/qapi-schema/alternate-empty.out    |   0
 tests/qapi-schema/alternate-good.out     |   1 -
 tests/qapi-schema/alternate-nested.json  |   2 +-
 tests/qapi-schema/alternate-unknown.json |   2 +-
 tests/qapi-schema/args-bad-box.err       |   1 +
 tests/qapi-schema/args-bad-box.exit      |   1 +
 tests/qapi-schema/args-bad-box.json      |   2 +
 tests/qapi-schema/args-bad-box.out       |   0
 tests/qapi-schema/args-box-anon.err      |   1 +
 tests/qapi-schema/args-box-anon.exit     |   1 +
 tests/qapi-schema/args-box-anon.json     |   2 +
 tests/qapi-schema/args-box-anon.out      |   0
 tests/qapi-schema/args-box-empty.err     |   1 +
 tests/qapi-schema/args-box-empty.exit    |   1 +
 tests/qapi-schema/args-box-empty.json    |   2 +
 tests/qapi-schema/args-box-empty.out     |   0
 tests/qapi-schema/args-member-array.out  |   2 +-
 tests/qapi-schema/args-union.err         |   2 +-
 tests/qapi-schema/args-union.json        |   3 +-
 tests/qapi-schema/event-case.out         |   1 +
 tests/qapi-schema/flat-union-empty.err   |   1 +
 tests/qapi-schema/flat-union-empty.exit  |   1 +
 tests/qapi-schema/flat-union-empty.json  |   4 +
 tests/qapi-schema/flat-union-empty.out   |   0
 tests/qapi-schema/ident-with-escape.out  |   2 +-
 tests/qapi-schema/indented-expr.out      |   4 +-
 tests/qapi-schema/qapi-schema-test.json  |  15 ++-
 tests/qapi-schema/qapi-schema-test.out   |  47 +++++--
 tests/qapi-schema/returns-int.out        |   2 +-
 tests/qapi-schema/test-qapi.py           |   8 +-
 tests/qapi-schema/union-empty.err        |   1 +
 tests/qapi-schema/union-empty.exit       |   1 +
 tests/qapi-schema/union-empty.json       |   2 +
 tests/qapi-schema/union-empty.out        |   0
 tests/test-qmp-commands.c                |  40 +++---
 tests/test-qmp-event.c                   |   8 +-
 tests/test-qmp-input-visitor.c           | 140 ++++++++++++++++++--
 tests/test-qmp-output-visitor.c          |  39 +++---
 tests/test-visitor-serialization.c       |  14 +-
 tpm.c                                    |   2 +-
 ui/input-keymap.c                        |  10 +-
 ui/input-legacy.c                        |   2 +-
 ui/input.c                               |  24 ++--
 ui/spice-core.c                          |  23 ++--
 ui/vnc.c                                 |  64 ++++-----
 util/qemu-sockets.c                      |  12 +-
 80 files changed, 1034 insertions(+), 626 deletions(-)
 create mode 100644 tests/qapi-schema/alternate-empty.err
 create mode 100644 tests/qapi-schema/alternate-empty.exit
 create mode 100644 tests/qapi-schema/alternate-empty.json
 create mode 100644 tests/qapi-schema/alternate-empty.out
 create mode 100644 tests/qapi-schema/args-bad-box.err
 create mode 100644 tests/qapi-schema/args-bad-box.exit
 create mode 100644 tests/qapi-schema/args-bad-box.json
 create mode 100644 tests/qapi-schema/args-bad-box.out
 create mode 100644 tests/qapi-schema/args-box-anon.err
 create mode 100644 tests/qapi-schema/args-box-anon.exit
 create mode 100644 tests/qapi-schema/args-box-anon.json
 create mode 100644 tests/qapi-schema/args-box-anon.out
 create mode 100644 tests/qapi-schema/args-box-empty.err
 create mode 100644 tests/qapi-schema/args-box-empty.exit
 create mode 100644 tests/qapi-schema/args-box-empty.json
 create mode 100644 tests/qapi-schema/args-box-empty.out
 create mode 100644 tests/qapi-schema/flat-union-empty.err
 create mode 100644 tests/qapi-schema/flat-union-empty.exit
 create mode 100644 tests/qapi-schema/flat-union-empty.json
 create mode 100644 tests/qapi-schema/flat-union-empty.out
 create mode 100644 tests/qapi-schema/union-empty.err
 create mode 100644 tests/qapi-schema/union-empty.exit
 create mode 100644 tests/qapi-schema/union-empty.json
 create mode 100644 tests/qapi-schema/union-empty.out

-- 
2.4.3




reply via email to

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