Merge of two previous series: https://lists.gnu.org/archive/html/qemu-devel/2016-02/msg05492.html https://lists.gnu.org/archive/html/qemu-devel/2016-02/msg04703.html
Depends on Markus' qapi-next branch. Also available as a tag at this location: git fetch git://repo.or.cz/qemu/ericb.git qapi-implicit-v2 and will soon be part of my branch at: http://repo.or.cz/qemu/ericb.git/shortlog/refs/heads/qapi Patch 1 of v1 each of those series has already been proposed for inclusion elsewhere (Markus' qapi-next branch, Paolo's misc changes pull request). There's a new patch 1 that does some renaming suggested by Markus, then the rest of the patches have some fallout due to the renaming. backport-diff gets a bit confused on the patches whose title text changed (2, 10, 15). 001/19:[down] 'qapi: Rename 'fields' to 'members' in internal interface' 002/19:[down] 'qapi-visit: Expose visit_type_FOO_members()' 003/19:[0019] [FC] 'qapi: Update docs to match recent generator changes' 004/19:[----] [--] 'chardev: Shorten references into ChardevBackend' 005/19:[----] [--] 'util: Shorten references into SocketAddress' 006/19:[----] [--] 'ui: Shorten references into InputEvent' 007/19:[----] [--] 'qapi: Avoid use of 'data' member of qapi unions' 008/19:[----] [--] 'chardev: Drop useless ChardevDummy type' 009/19:[----] [--] 'qapi: Drop useless 'data' member of unions' 010/19:[down] 'qapi-visit: Factor out gen_visit_members_call()' 011/19:[----] [-C] 'qapi: Add type.is_empty() helper' 012/19:[----] [-C] 'qapi: Fix command with named empty argument type' 013/19:[----] [-C] 'qapi-visit: Simplify visit of empty branch in union' 014/19:[0020] [FC] 'qapi: Don't special-case simple union wrappers' 015/19:[down] 'qapi-visit: Move error check into gen_visit_members_call()' 016/19:[0010] [FC] 'qapi: Allow anonymous base for flat union' 017/19:[----] [--] 'qapi: Use anonymous base in SchemaInfo' 018/19:[----] [--] 'qapi: Use anonymous base in CpuInfo' 019/19:[----] [--] 'qapi: Make c_type() more OO-like' Eric Blake (19): qapi: Rename 'fields' to 'members' in internal interface qapi-visit: Expose visit_type_FOO_members() qapi: Update docs to match recent generator changes chardev: Shorten references into ChardevBackend util: Shorten references into SocketAddress ui: Shorten references into InputEvent qapi: Avoid use of 'data' member of qapi unions chardev: Drop useless ChardevDummy type qapi: Drop useless 'data' member of unions qapi-visit: Factor out gen_visit_members_call() qapi: Add type.is_empty() helper qapi: Fix command with named empty argument type qapi-visit: Simplify visit of empty branch in union qapi: Don't special-case simple union wrappers qapi-visit: Move error check into gen_visit_members_call() qapi: Allow anonymous base for flat union qapi: Use anonymous base in SchemaInfo qapi: Use anonymous base in CpuInfo qapi: Make c_type() more OO-like scripts/qapi.py | 86 +++++--- scripts/qapi-commands.py | 10 +- scripts/qapi-event.py | 11 +- scripts/qapi-types.py | 55 ++--- scripts/qapi-visit.py | 102 ++++----- backends/baum.c | 2 +- backends/msmouse.c | 2 +- block/nbd.c | 16 +- block/qcow2.c | 6 +- block/vmdk.c | 8 +- blockdev.c | 49 +++-- hmp.c | 8 +- hw/char/escc.c | 12 +- hw/input/hid.c | 36 ++-- hw/input/ps2.c | 27 ++- hw/input/virtio-input-hid.c | 33 +-- hw/mem/pc-dimm.c | 2 +- net/dump.c | 2 +- net/hub.c | 2 +- net/l2tpv3.c | 2 +- net/net.c | 4 +- net/netmap.c | 2 +- net/slirp.c | 2 +- net/socket.c | 2 +- net/tap-win32.c | 2 +- net/tap.c | 4 +- net/vde.c | 2 +- net/vhost-user.c | 2 +- numa.c | 4 +- qemu-char.c | 221 ++++++++++--------- qemu-nbd.c | 13 +- replay/replay-input.c | 63 +++--- spice-qemu-char.c | 14 +- tests/test-io-channel-socket.c | 58 ++--- tests/test-qmp-commands.c | 7 +- tests/test-qmp-input-visitor.c | 25 +-- tests/test-qmp-output-visitor.c | 24 +-- tpm.c | 2 +- ui/console.c | 4 +- ui/input-keymap.c | 10 +- ui/input-legacy.c | 26 ++- ui/input.c | 72 ++++--- ui/vnc-auth-sasl.c | 3 +- ui/vnc.c | 62 +++--- util/qemu-sockets.c | 44 ++-- docs/qapi-code-gen.txt | 335 +++++++++++++++-------------- qapi-schema.json | 35 ++- qapi/introspect.json | 12 +- tests/Makefile | 1 - tests/qapi-schema/flat-union-bad-base.err | 2 +- tests/qapi-schema/flat-union-bad-base.json | 5 +- tests/qapi-schema/qapi-schema-test.json | 10 +- tests/qapi-schema/qapi-schema-test.out | 15 +- tests/qapi-schema/union-clash-data.err | 0 tests/qapi-schema/union-clash-data.exit | 1 - tests/qapi-schema/union-clash-data.json | 7 - tests/qapi-schema/union-clash-data.out | 9 - 57 files changed, 824 insertions(+), 751 deletions(-) delete mode 100644 tests/qapi-schema/union-clash-data.err delete mode 100644 tests/qapi-schema/union-clash-data.exit delete mode 100644 tests/qapi-schema/union-clash-data.json delete mode 100644 tests/qapi-schema/union-clash-data.out -- 2.5.0