[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v9 00/37] qapi visitor cleanups (post-introspection
From: |
Eric Blake |
Subject: |
[Qemu-devel] [PATCH v9 00/37] qapi visitor cleanups (post-introspection cleanups subset E) |
Date: |
Tue, 19 Jan 2016 09:10:08 -0700 |
Based on qemu.git master. Pending prerequisites:
+ Not a strong dependency, but for qapi-tests to consistently pass,
I needed a race fixed:
https://lists.gnu.org/archive/html/qemu-devel/2015-12/msg01827.html
Also available as a tag at this location:
git fetch git://repo.or.cz/qemu/ericb.git qapi-cleanupv9e
and will soon be part of my branch with the rest of the v5 series, at:
http://repo.or.cz/qemu/ericb.git/shortlog/refs/heads/qapi
v9 notes:
Rebase to master, incorporate findings from Marc-André.
001/37:[----] [--] 'qobject: Document more shortcomings in our number handling'
002/37:[----] [--] 'qapi: Avoid use of misnamed DO_UPCAST()'
003/37:[----] [--] 'qapi: Drop dead dealloc visitor variable'
004/37:[----] [--] 'hmp: Improve use of qapi visitor'
005/37:[----] [--] 'vl: Improve use of qapi visitor'
006/37:[----] [--] 'balloon: Improve use of qapi visitor'
007/37:[0002] [FC] 'qapi: Improve generated event use of qapi visitor'
008/37:[----] [--] 'qapi: Track all failures between visit_start/stop'
009/37:[0005] [FC] 'qapi: Prefer type_int64 over type_int in visitors'
010/37:[0009] [FC] 'qapi: Make all visitors supply uint64 callbacks'
011/37:[----] [--] 'qapi: Consolidate visitor small integer callbacks'
012/37:[----] [--] 'qapi: Don't cast Enum* to int*'
013/37:[----] [--] 'qom: Use typedef for Visitor'
014/37:[0004] [FC] 'qapi: Swap visit_* arguments for consistent 'name'
placement'
015/37:[----] [-C] 'qom: Swap 'name' next to visitor in ObjectPropertyAccessor'
016/37:[----] [--] 'qapi: Swap 'name' in visit_* callbacks to match public API'
017/37:[----] [--] 'qapi: Drop unused 'kind' for struct/enum visit'
018/37:[----] [--] 'qapi: Drop unused error argument for list and implicit
struct'
019/37:[----] [--] 'qmp: Fix reference-counting of qnull on empty output visit'
020/37:[----] [--] 'qmp: Don't abuse stack to track qmp-output root'
021/37:[----] [--] 'qapi: Document visitor interfaces, add assertions'
022/37:[----] [--] 'qapi: Add visit_type_null() visitor'
023/37:[down] 'qmp: Support explicit null during input visit'
024/37:[0015] [FC] 'qmp: Tighten output visitor rules'
025/37:[----] [--] 'spapr_drc: Expose 'null' in qom-get when there is no fdt'
026/37:[----] [--] 'qapi: Simplify excess input reporting in input visitors'
027/37:[----] [--] 'qapi: Add type.is_empty() helper'
028/37:[----] [--] 'qapi: Fix command with named empty argument type'
029/37:[----] [--] 'qapi: Eliminate empty visit_type_FOO_fields'
030/37:[0013] [FC] 'qapi: Canonicalize missing object to :empty'
031/37:[----] [--] 'qapi-visit: Unify struct and union visit'
032/37:[----] [--] 'qapi: Rework deallocation of partial struct'
033/37:[0003] [FC] 'qapi: Split visit_end_struct() into pieces'
034/37:[----] [--] 'qapi: Simplify semantics of visit_next_list()'
035/37:[0006] [FC] 'qapi: Change visit_type_FOO() to no longer return partial
objects'
036/37:[----] [--] 'RFC: qapi: Adjust layout of FooList types'
037/37:[down] 'qapi: Update docs to match recent generator changes'
v8 notes:
https://lists.gnu.org/archive/html/qemu-devel/2015-12/msg03863.html
Four new patches (13-16/35), plus rebasing on top of them, so that
the code base now consistently passes a 'v, name' pair anywhere a
visitor needs a name, rather than putting other arguments in between
the pair. I got to have fun with Coccinelle Also fix a bug in my
changes to visit_next_list() (v7 29/31), so that 'make check' and
qemu-iotests now pass at all points in the series.
The parameter ordering changes have the potential to be a rebase
magnet, so I'm hoping this series can go in relatively soon after
Markus returns from break.
I made good on my threat in v7 of writing a qapi-to-JSON output
visitor, but that will remain a separate series based on this one
(the only posting of that series so far now needs rebasing:
https://lists.gnu.org/archive/html/qemu-devel/2015-12/msg01760.html)
v7 notes:
https://lists.gnu.org/archive/html/qemu-devel/2015-12/msg01181.html
v6 notes:
https://lists.gnu.org/archive/html/qemu-devel/2015-11/msg05793.html
v5 and earlier - look in the mail archives
Eric Blake (37):
qobject: Document more shortcomings in our number handling
qapi: Avoid use of misnamed DO_UPCAST()
qapi: Drop dead dealloc visitor variable
hmp: Improve use of qapi visitor
vl: Improve use of qapi visitor
balloon: Improve use of qapi visitor
qapi: Improve generated event use of qapi visitor
qapi: Track all failures between visit_start/stop
qapi: Prefer type_int64 over type_int in visitors
qapi: Make all visitors supply uint64 callbacks
qapi: Consolidate visitor small integer callbacks
qapi: Don't cast Enum* to int*
qom: Use typedef for Visitor
qapi: Swap visit_* arguments for consistent 'name' placement
qom: Swap 'name' next to visitor in ObjectPropertyAccessor
qapi: Swap 'name' in visit_* callbacks to match public API
qapi: Drop unused 'kind' for struct/enum visit
qapi: Drop unused error argument for list and implicit struct
qmp: Fix reference-counting of qnull on empty output visit
qmp: Don't abuse stack to track qmp-output root
qapi: Document visitor interfaces, add assertions
qapi: Add visit_type_null() visitor
qmp: Support explicit null during input visit
qmp: Tighten output visitor rules
spapr_drc: Expose 'null' in qom-get when there is no fdt
qapi: Simplify excess input reporting in input visitors
qapi: Add type.is_empty() helper
qapi: Fix command with named empty argument type
qapi: Eliminate empty visit_type_FOO_fields
qapi: Canonicalize missing object to :empty
qapi-visit: Unify struct and union visit
qapi: Rework deallocation of partial struct
qapi: Split visit_end_struct() into pieces
qapi: Simplify semantics of visit_next_list()
qapi: Change visit_type_FOO() to no longer return partial objects
RFC: qapi: Adjust layout of FooList types
qapi: Update docs to match recent generator changes
backends/hostmem.c | 24 +--
block/qapi.c | 2 +-
blockdev.c | 4 +-
bootdevice.c | 12 +-
docs/qapi-code-gen.txt | 130 +++++++-----
hmp.c | 23 ++-
hw/acpi/core.c | 4 +-
hw/acpi/ich9.c | 49 ++---
hw/block/nvme.c | 12 +-
hw/core/machine.c | 24 +--
hw/core/qdev-properties-system.c | 44 ++--
hw/core/qdev-properties.c | 180 ++++++++--------
hw/core/qdev.c | 7 +-
hw/i386/pc.c | 43 ++--
hw/ide/qdev.c | 12 +-
hw/intc/xics.c | 20 +-
hw/isa/lpc_ich9.c | 7 +-
hw/mem/pc-dimm.c | 6 +-
hw/misc/edu.c | 6 +-
hw/misc/tmp105.c | 12 +-
hw/net/ne2000-isa.c | 14 +-
hw/pci-host/piix.c | 18 +-
hw/pci-host/q35.c | 23 +--
hw/ppc/spapr_drc.c | 43 ++--
hw/usb/dev-storage.c | 12 +-
hw/virtio/virtio-balloon.c | 43 ++--
include/qapi/qmp-output-visitor.h | 1 +
include/qapi/visitor-impl.h | 106 ++++++----
include/qapi/visitor.h | 298 ++++++++++++++++++++++++---
include/qom/object.h | 13 +-
memory.c | 26 +--
net/dump.c | 12 +-
net/filter-buffer.c | 14 +-
net/net.c | 4 +-
numa.c | 6 +-
qapi/opts-visitor.c | 121 ++++++-----
qapi/qapi-dealloc-visitor.c | 108 ++++------
qapi/qapi-visit-core.c | 352 +++++++++++++++++---------------
qapi/qmp-input-visitor.c | 188 ++++++++++-------
qapi/qmp-output-visitor.c | 166 +++++++--------
qapi/string-input-visitor.c | 93 +++++----
qapi/string-output-visitor.c | 88 ++++----
qemu-img.c | 11 +-
qobject/json-parser.c | 4 +-
qobject/qjson.c | 8 +-
qom/object.c | 129 ++++++------
replay/replay-input.c | 4 +-
scripts/qapi-commands.py | 21 +-
scripts/qapi-event.py | 22 +-
scripts/qapi-types.py | 13 +-
scripts/qapi-visit.py | 264 ++++++++++++------------
scripts/qapi.py | 37 ++--
target-i386/cpu.c | 96 ++++-----
target-ppc/translate_init.c | 12 +-
tests/qapi-schema/event-case.out | 2 +-
tests/qapi-schema/flat-union-empty.out | 1 +
tests/qapi-schema/ident-with-escape.out | 1 +
tests/qapi-schema/indented-expr.out | 4 +-
tests/qapi-schema/qapi-schema-test.json | 2 +
tests/qapi-schema/qapi-schema-test.out | 47 ++++-
tests/qapi-schema/union-clash-data.out | 2 +
tests/qapi-schema/union-empty.out | 1 +
tests/test-opts-visitor.c | 6 +-
tests/test-qdev-global-props.c | 18 +-
tests/test-qmp-commands.c | 20 +-
tests/test-qmp-input-strict.c | 47 ++---
tests/test-qmp-input-visitor.c | 117 ++++++-----
tests/test-qmp-output-visitor.c | 38 ++--
tests/test-string-input-visitor.c | 34 +--
tests/test-string-output-visitor.c | 16 +-
tests/test-visitor-serialization.c | 54 ++---
util/qemu-sockets.c | 4 +-
vl.c | 29 +--
73 files changed, 1920 insertions(+), 1514 deletions(-)
--
2.5.0