Hi all! The aim of the series is to reduce code-duplication and writing parameters structure-packing by hand around coroutine function wrappers.
Benefits: - no code duplication - less indirection v7: apply Eric's suggestions 02: fix grammar in commit msg, add Eric's r-b 04: - don't create separate header for generated_co_wrapper thing - inline aio_wait_kick() call - use json.dumps to make style for clang-format 05: - drop "#include "block/generated-co-wrapper.h" (since the header is removed) - add Eric's r-b Vladimir Sementsov-Ogievskiy (7): block: return error-code from bdrv_invalidate_cache block/io: refactor coroutine wrappers block: declare some coroutine functions in block/coroutines.h scripts: add coroutine-wrapper.py block: generate coroutine-wrapper code block: drop bdrv_prwv block/io: refactor save/load vmstate Makefile | 8 + block/block-gen.h | 49 +++++ block/coroutines.h | 65 +++++++ include/block/block.h | 31 ++-- block.c | 97 ++-------- block/io.c | 336 +++++------------------------------ tests/test-bdrv-drain.c | 2 +- block/Makefile.objs | 1 + scripts/coroutine-wrapper.py | 180 +++++++++++++++++++ 9 files changed, 388 insertions(+), 381 deletions(-) create mode 100644 block/block-gen.h create mode 100644 block/coroutines.h create mode 100755 scripts/coroutine-wrapper.py -- 2.21.0