qemu-devel
[Top][All Lists]
Advanced

[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




reply via email to

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