mbox series

[v2,00/18] Make block-backend-io.h API more consistent

Message ID 20220705161527.1054072-1-afaria@redhat.com
Headers show
Series Make block-backend-io.h API more consistent | expand

Message

Alberto Faria July 5, 2022, 4:15 p.m. UTC
Adjust existing pairs of non-coroutine and coroutine functions to share
the same calling convention, and add non-coroutine/coroutine
counterparts where they don't exist.

Also make the non-coroutine versions generated_co_wrappers.

This series sits on top of "[PATCH v5 00/10] Implement
bdrv_{pread,pwrite,pwrite_sync,pwrite_zeroes}() using
generated_co_wrapper":

    https://lore.kernel.org/qemu-devel/20220609152744.3891847-1-afaria@redhat.com/

Based-on: <20220609152744.3891847-1-afaria@redhat.com>

v2:
  - Avoid using variables named 'len' or similar to hold return values
    from blk_{pread,pwrite}(), as they don't return a length anymore.
  - Drop variables in_ret and out_ret in qemu-img.c:img_dd().
  - Initialize buf in test_sync_op_blk_pwritev_part().
  - Keep blk_co_copy_range() in the "I/O API functions" section of
    include/sysemu/block-backend-io.h.

Alberto Faria (18):
  block: Make blk_{pread,pwrite}() return 0 on success
  block: Add a 'flags' param to blk_pread()
  block: Change blk_{pread,pwrite}() param order
  block: Make 'bytes' param of blk_{pread,pwrite}() an int64_t
  block: Make blk_co_pwrite() take a const buffer
  block: Implement blk_{pread,pwrite}() using generated_co_wrapper
  block: Add blk_{preadv,pwritev}()
  block: Add blk_[co_]preadv_part()
  block: Export blk_pwritev_part() in block-backend-io.h
  block: Change blk_pwrite_compressed() param order
  block: Add blk_co_pwrite_compressed()
  block: Implement blk_pwrite_zeroes() using generated_co_wrapper
  block: Implement blk_pdiscard() using generated_co_wrapper
  block: Implement blk_flush() using generated_co_wrapper
  block: Add blk_co_ioctl()
  block: Add blk_co_truncate()
  block: Reorganize some declarations in block-backend-io.h
  block: Remove remaining unused symbols in coroutines.h

 block.c                           |  10 +-
 block/block-backend.c             | 150 ++++++++++++------------------
 block/commit.c                    |   4 +-
 block/coroutines.h                |  44 ---------
 block/crypto.c                    |   2 +-
 block/export/fuse.c               |   4 +-
 block/meson.build                 |   1 +
 block/parallels.c                 |   2 +-
 block/qcow.c                      |  14 +--
 block/qcow2.c                     |   4 +-
 block/qed.c                       |   8 +-
 block/vdi.c                       |   4 +-
 block/vhdx.c                      |  20 ++--
 block/vmdk.c                      |  10 +-
 block/vpc.c                       |  12 +--
 hw/arm/allwinner-h3.c             |   2 +-
 hw/arm/aspeed.c                   |   2 +-
 hw/block/block.c                  |   2 +-
 hw/block/fdc.c                    |  20 ++--
 hw/block/hd-geometry.c            |   2 +-
 hw/block/m25p80.c                 |   2 +-
 hw/block/nand.c                   |  47 +++++-----
 hw/block/onenand.c                |  32 +++----
 hw/block/pflash_cfi01.c           |   4 +-
 hw/block/pflash_cfi02.c           |   4 +-
 hw/ide/atapi.c                    |   4 +-
 hw/misc/mac_via.c                 |   6 +-
 hw/misc/sifive_u_otp.c            |  14 +--
 hw/nvram/eeprom_at24c.c           |   8 +-
 hw/nvram/spapr_nvram.c            |  16 ++--
 hw/nvram/xlnx-bbram.c             |   4 +-
 hw/nvram/xlnx-efuse.c             |   4 +-
 hw/ppc/pnv_pnor.c                 |   6 +-
 hw/sd/sd.c                        |   4 +-
 include/sysemu/block-backend-io.h |  97 +++++++++++--------
 migration/block.c                 |   8 +-
 nbd/server.c                      |   8 +-
 qemu-img.c                        |  41 ++++----
 qemu-io-cmds.c                    |  20 ++--
 tests/unit/test-block-iothread.c  | 141 ++++++++++++++++++++++++++--
 40 files changed, 431 insertions(+), 356 deletions(-)

Comments

Hanna Czenczek July 6, 2022, 9:45 a.m. UTC | #1
On 05.07.22 18:15, Alberto Faria wrote:
> Adjust existing pairs of non-coroutine and coroutine functions to share
> the same calling convention, and add non-coroutine/coroutine
> counterparts where they don't exist.
>
> Also make the non-coroutine versions generated_co_wrappers.
>
> This series sits on top of "[PATCH v5 00/10] Implement
> bdrv_{pread,pwrite,pwrite_sync,pwrite_zeroes}() using
> generated_co_wrapper":
>
>      https://lore.kernel.org/qemu-devel/20220609152744.3891847-1-afaria@redhat.com/
>
> Based-on: <20220609152744.3891847-1-afaria@redhat.com>
>
> v2:
>    - Avoid using variables named 'len' or similar to hold return values
>      from blk_{pread,pwrite}(), as they don't return a length anymore.
>    - Drop variables in_ret and out_ret in qemu-img.c:img_dd().
>    - Initialize buf in test_sync_op_blk_pwritev_part().
>    - Keep blk_co_copy_range() in the "I/O API functions" section of
>      include/sysemu/block-backend-io.h.

Thanks!  Applied to my block branch:

https://gitlab.com/hreitz/qemu/-/commits/block

Hanna