Message ID | 20220517113837.199696-2-afaria@redhat.com |
---|---|
State | New |
Headers | show |
Series | Make block-backend-io.h API more consistent | expand |
On 5/17/22 13:38, Alberto Faria wrote: > We need to add include/sysemu/block-backend-io.h to the inputs of the > block-gen.c target defined in block/meson.build. > > Signed-off-by: Alberto Faria <afaria@redhat.com> Emanuele is looking it cleaning this up, so you two need to coordinate. Emanuele, can you separate/post the initial patches to clean up the includes of block/coroutines.h and block/block-gen.c? Apart from that, fewer block/coroutines.h declarations is only good stuff. Thanks, Paolo > --- > block/block-backend.c | 23 ----------------------- > block/coroutines.h | 4 ---- > block/meson.build | 1 + > include/sysemu/block-backend-io.h | 10 ++++++---- > 4 files changed, 7 insertions(+), 31 deletions(-) > > diff --git a/block/block-backend.c b/block/block-backend.c > index 5b9706c443..c2a4c44a99 100644 > --- a/block/block-backend.c > +++ b/block/block-backend.c > @@ -1567,29 +1567,6 @@ BlockAIOCB *blk_aio_pwrite_zeroes(BlockBackend *blk, int64_t offset, > flags | BDRV_REQ_ZERO_WRITE, cb, opaque); > } > > -int blk_pread(BlockBackend *blk, int64_t offset, int64_t bytes, void *buf, > - BdrvRequestFlags flags) > -{ > - int ret; > - QEMUIOVector qiov = QEMU_IOVEC_INIT_BUF(qiov, buf, bytes); > - IO_OR_GS_CODE(); > - > - blk_inc_in_flight(blk); > - ret = blk_do_preadv(blk, offset, bytes, &qiov, flags); > - blk_dec_in_flight(blk); > - > - return ret; > -} > - > -int blk_pwrite(BlockBackend *blk, int64_t offset, int64_t bytes, > - const void *buf, BdrvRequestFlags flags) > -{ > - QEMUIOVector qiov = QEMU_IOVEC_INIT_BUF(qiov, buf, bytes); > - IO_OR_GS_CODE(); > - > - return blk_pwritev_part(blk, offset, bytes, &qiov, 0, flags); > -} > - > int64_t blk_getlength(BlockBackend *blk) > { > IO_CODE(); > diff --git a/block/coroutines.h b/block/coroutines.h > index 3f41238b33..443ef2f2e6 100644 > --- a/block/coroutines.h > +++ b/block/coroutines.h > @@ -112,10 +112,6 @@ bdrv_common_block_status_above(BlockDriverState *bs, > int generated_co_wrapper > nbd_do_establish_connection(BlockDriverState *bs, bool blocking, Error **errp); > > -int generated_co_wrapper > -blk_do_preadv(BlockBackend *blk, int64_t offset, int64_t bytes, > - QEMUIOVector *qiov, BdrvRequestFlags flags); > - > int generated_co_wrapper > blk_do_pwritev_part(BlockBackend *blk, int64_t offset, int64_t bytes, > QEMUIOVector *qiov, size_t qiov_offset, > diff --git a/block/meson.build b/block/meson.build > index 0b2a60c99b..60bc305597 100644 > --- a/block/meson.build > +++ b/block/meson.build > @@ -136,6 +136,7 @@ block_gen_c = custom_target('block-gen.c', > input: files( > '../include/block/block-io.h', > '../include/block/block-global-state.h', > + '../include/sysemu/block-backend-io.h', > 'coroutines.h' > ), > command: [wrapper_py, '@OUTPUT@', '@INPUT@']) > diff --git a/include/sysemu/block-backend-io.h b/include/sysemu/block-backend-io.h > index 6440e92028..0804ce1c1d 100644 > --- a/include/sysemu/block-backend-io.h > +++ b/include/sysemu/block-backend-io.h > @@ -102,10 +102,12 @@ int coroutine_fn blk_co_copy_range(BlockBackend *blk_in, int64_t off_in, > * the "I/O or GS" API. > */ > > -int blk_pread(BlockBackend *blk, int64_t offset, int64_t bytes, void *buf, > - BdrvRequestFlags flags); > -int blk_pwrite(BlockBackend *blk, int64_t offset, int64_t bytes, > - const void *buf, BdrvRequestFlags flags); > +int generated_co_wrapper blk_pread(BlockBackend *blk, int64_t offset, > + int64_t bytes, void *buf, > + BdrvRequestFlags flags); > +int generated_co_wrapper blk_pwrite(BlockBackend *blk, int64_t offset, > + int64_t bytes, const void *buf, > + BdrvRequestFlags flags); > int coroutine_fn blk_co_preadv(BlockBackend *blk, int64_t offset, > int64_t bytes, QEMUIOVector *qiov, > BdrvRequestFlags flags);
Am 17/05/2022 um 16:22 schrieb Paolo Bonzini: > On 5/17/22 13:38, Alberto Faria wrote: >> We need to add include/sysemu/block-backend-io.h to the inputs of the >> block-gen.c target defined in block/meson.build. >> >> Signed-off-by: Alberto Faria <afaria@redhat.com> > > Emanuele is looking it cleaning this up, so you two need to coordinate. > > Emanuele, can you separate/post the initial patches to clean up the > includes of block/coroutines.h and block/block-gen.c? > > Apart from that, fewer block/coroutines.h declarations is only good stuff. > This is the main patch: it just moves headers from block/coroutines.h to the script (block_gen.c). This allows you to keep generated_co_wrapper functions in the header where they originally were (no need to move the function in coroutines.h and include it everywhere). Btw @Alberto can you also cc me in the next series? So that I can follow too. Thank you, Emanuele From 84fcea52c09024adcfe24bb0d6d2ec6842c6826b Mon Sep 17 00:00:00 2001 From: Emanuele Giuseppe Esposito <eesposit@redhat.com> Date: Tue, 17 May 2022 13:35:54 -0400 Subject: [PATCH] block-coroutine-wrapper: remove includes from coroutines.h These includes in coroutines.h are not needed. Instead, they can be moved in block-gen.c since they are needed by the generated functions. Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com> --- block/coroutines.h | 5 ----- scripts/block-coroutine-wrapper.py | 3 +++ 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/block/coroutines.h b/block/coroutines.h index b293e943c8..45ecbfcc6a 100644 --- a/block/coroutines.h +++ b/block/coroutines.h @@ -25,11 +25,6 @@ #ifndef BLOCK_COROUTINES_INT_H #define BLOCK_COROUTINES_INT_H -#include "block/block_int.h" - -/* For blk_bs() in generated block/block-gen.c */ -#include "sysemu/block-backend.h" - /* * I/O API functions. These functions are thread-safe. * diff --git a/scripts/block-coroutine-wrapper.py b/scripts/block-coroutine-wrapper.py index 625b03e3ab..39fb1e8a4f 100644 --- a/scripts/block-coroutine-wrapper.py +++ b/scripts/block-coroutine-wrapper.py @@ -40,6 +40,9 @@ def gen_header(): */ #include "qemu/osdep.h" +/* For blk_bs() in generated block/block-gen.c */ +#include "sysemu/block-backend.h" +#include "block/block_int.h" #include "block/coroutines.h" #include "block/block-gen.h" #include "block/block_int.h"\
On 5/18/22 15:34, Emanuele Giuseppe Esposito wrote: > +/* For blk_bs() in generated block/block-gen.c */ > +#include "sysemu/block-backend.h" > +#include "block/block_int.h" > #include "block/coroutines.h" > #include "block/block-gen.h" > #include "block/block_int.h"\ This second include of block_int.h is unnecessary. Paolo
On Wed, May 18, 2022 at 2:34 PM Emanuele Giuseppe Esposito <eesposit@redhat.com> wrote: > This is the main patch: it just moves headers from block/coroutines.h to > the script (block_gen.c). > > This allows you to keep generated_co_wrapper functions in the header > where they originally were (no need to move the function in coroutines.h > and include it everywhere). Thanks. It doesn't look like it will conflict with this series. > Btw @Alberto can you also cc me in the next series? So that I can follow > too. Will do! Alberto
On 17.05.22 13:38, Alberto Faria wrote: > We need to add include/sysemu/block-backend-io.h to the inputs of the > block-gen.c target defined in block/meson.build. > > Signed-off-by: Alberto Faria <afaria@redhat.com> > --- > block/block-backend.c | 23 ----------------------- > block/coroutines.h | 4 ---- > block/meson.build | 1 + > include/sysemu/block-backend-io.h | 10 ++++++---- > 4 files changed, 7 insertions(+), 31 deletions(-) Reviewed-by: Hanna Reitz <hreitz@redhat.com>
diff --git a/block/block-backend.c b/block/block-backend.c index 5b9706c443..c2a4c44a99 100644 --- a/block/block-backend.c +++ b/block/block-backend.c @@ -1567,29 +1567,6 @@ BlockAIOCB *blk_aio_pwrite_zeroes(BlockBackend *blk, int64_t offset, flags | BDRV_REQ_ZERO_WRITE, cb, opaque); } -int blk_pread(BlockBackend *blk, int64_t offset, int64_t bytes, void *buf, - BdrvRequestFlags flags) -{ - int ret; - QEMUIOVector qiov = QEMU_IOVEC_INIT_BUF(qiov, buf, bytes); - IO_OR_GS_CODE(); - - blk_inc_in_flight(blk); - ret = blk_do_preadv(blk, offset, bytes, &qiov, flags); - blk_dec_in_flight(blk); - - return ret; -} - -int blk_pwrite(BlockBackend *blk, int64_t offset, int64_t bytes, - const void *buf, BdrvRequestFlags flags) -{ - QEMUIOVector qiov = QEMU_IOVEC_INIT_BUF(qiov, buf, bytes); - IO_OR_GS_CODE(); - - return blk_pwritev_part(blk, offset, bytes, &qiov, 0, flags); -} - int64_t blk_getlength(BlockBackend *blk) { IO_CODE(); diff --git a/block/coroutines.h b/block/coroutines.h index 3f41238b33..443ef2f2e6 100644 --- a/block/coroutines.h +++ b/block/coroutines.h @@ -112,10 +112,6 @@ bdrv_common_block_status_above(BlockDriverState *bs, int generated_co_wrapper nbd_do_establish_connection(BlockDriverState *bs, bool blocking, Error **errp); -int generated_co_wrapper -blk_do_preadv(BlockBackend *blk, int64_t offset, int64_t bytes, - QEMUIOVector *qiov, BdrvRequestFlags flags); - int generated_co_wrapper blk_do_pwritev_part(BlockBackend *blk, int64_t offset, int64_t bytes, QEMUIOVector *qiov, size_t qiov_offset, diff --git a/block/meson.build b/block/meson.build index 0b2a60c99b..60bc305597 100644 --- a/block/meson.build +++ b/block/meson.build @@ -136,6 +136,7 @@ block_gen_c = custom_target('block-gen.c', input: files( '../include/block/block-io.h', '../include/block/block-global-state.h', + '../include/sysemu/block-backend-io.h', 'coroutines.h' ), command: [wrapper_py, '@OUTPUT@', '@INPUT@']) diff --git a/include/sysemu/block-backend-io.h b/include/sysemu/block-backend-io.h index 6440e92028..0804ce1c1d 100644 --- a/include/sysemu/block-backend-io.h +++ b/include/sysemu/block-backend-io.h @@ -102,10 +102,12 @@ int coroutine_fn blk_co_copy_range(BlockBackend *blk_in, int64_t off_in, * the "I/O or GS" API. */ -int blk_pread(BlockBackend *blk, int64_t offset, int64_t bytes, void *buf, - BdrvRequestFlags flags); -int blk_pwrite(BlockBackend *blk, int64_t offset, int64_t bytes, - const void *buf, BdrvRequestFlags flags); +int generated_co_wrapper blk_pread(BlockBackend *blk, int64_t offset, + int64_t bytes, void *buf, + BdrvRequestFlags flags); +int generated_co_wrapper blk_pwrite(BlockBackend *blk, int64_t offset, + int64_t bytes, const void *buf, + BdrvRequestFlags flags); int coroutine_fn blk_co_preadv(BlockBackend *blk, int64_t offset, int64_t bytes, QEMUIOVector *qiov, BdrvRequestFlags flags);
We need to add include/sysemu/block-backend-io.h to the inputs of the block-gen.c target defined in block/meson.build. Signed-off-by: Alberto Faria <afaria@redhat.com> --- block/block-backend.c | 23 ----------------------- block/coroutines.h | 4 ---- block/meson.build | 1 + include/sysemu/block-backend-io.h | 10 ++++++---- 4 files changed, 7 insertions(+), 31 deletions(-)