RFC qapi changes in preparation for blockdev-add
Get series with b4
b4 am [email protected]Versions newest first
- v1 RFC Latest11 patches 20 repliesIn review
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/11 | qapi-types.py: Split off generate_struct_fields()scripts/ | +13 | 1 reply | |
| 2/11 | qapi-types.py: Implement 'base' for unionsscripts/ | +18 | 2 replies | |
| 3/11 | qapi-visit.py: Split off generate_visit_struct_fields()scripts/ | +34 | 1 reply | |
| 4/11 | qapi-visit.py: Implement 'base' for unionsscripts/ | +28 | 1 reply | |
| 5/11 | qapi: Add visitor for implicit structsinclude/ include/ qapi/ +1 more | +37 | 2 replies | |
| 6/11 | qapi: Flat unions with arbitrary discriminatorscripts/ scripts/ | +70 | 1 reply | |
| 7/11 | qapi: Add consume argument to qmp_input_get_object()qapi/ | +10 | 1 reply | |
| 8/11 | qapi: Anonymous unionsinclude/ include/ include/ +6 more | +148 | 3 replies | |
| 9/11 | Implement qdict_flatten()include/ qobject/ | +48 | 2 replies | |
| 10/11 | block: Allow "driver" option on the top levelblock.c blockdev.c | +17 | 1 reply | |
| 11/11 | block: Implement 'blockdev-add' QMP commandblockdev.c qapi-schema.json qmp-commands.hx | +67 | 3 replies |
Reviews trailers per patch
7 of 11 patches have a Reviewed-by or Acked-by.
| Patch | Eric Blake |
|---|---|
| 1/11 | R-b |
| 2/11 | R-b |
| 3/11 | R-b |
| 4/11 | R-b |
| 5/11 | R-b |
| 6/11 | |
| 7/11 | R-b |
| 8/11 | |
| 9/11 | |
| 10/11 | R-b |
| 11/11 |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.
Cover letter [Qemu-devel] [RFC PATCH 00/11] qapi changes in preparation for blockdev-add
The goal of this series is to make QAPI ready to handle mostly unions in a less verbose way so that a future -blockdev command line option can be a direct mapping of the structure used by a blockdev-add QMP command. This series implements everything that I think is needed for this on the QAPI side. The block layer side is still lacking, but good enough that I could actually add a block device using the new command; the problem is here mostly that many -drive options aren't supported yet.
To give you an idea of what the interface looks like in the end, this is what you can pass now in theory (the block layer just won't like the read-only option and error out...):
{ "execute": "blockdev-add",
"arguments": {
"options": {
"driver": "qcow2",
"read-only": true,
"lazy-refcounts": true,
"file": {
"driver": "file",
"read-only": false,
"filename": "/home/kwolf/images/hd.img"
}
}
}}
Kevin Wolf (11):
qapi-types.py: Split off generate_struct_fields() qapi-types.py: Implement 'base' for unions qapi-visit.py: Split off generate_visit_struct_fields() qapi-visit.py: Implement 'base' for unions
qapi: Add visitor for implicit structs
qapi: Flat unions with arbitrary discriminator
qapi: Add consume argument to qmp_input_get_object()
qapi: Anonymous unions
Implement qdict_flatten()
block: Allow "driver" option on the top level [WIP] block: Implement 'blockdev-add' QMP command
block.c | 7 ++ blockdev.c | 52 ++++++++++--- include/qapi/qmp/qdict.h | 1 + include/qapi/qmp/qobject.h | 1 + include/qapi/visitor-impl.h | 6 ++ include/qapi/visitor.h | 6 ++ qapi-schema.json | 29 +++++++ qapi/qapi-visit-core.c | 25 +++++++ qapi/qmp-input-visitor.c | 47 +++++++++--- qmp-commands.hx | 6 ++ qobject/qdict.c | 47 ++++++++++++ qobject/qjson.c | 2 + scripts/qapi-types.py | 83 ++++++++++++++++++-- scripts/qapi-visit.py | 179 ++++++++++++++++++++++++++++++++++++-------- scripts/qapi.py | 28 +++++++ 15 files changed, 459 insertions(+), 60 deletions(-)
Signature · 1 line
1.8.1.4