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(-)
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);
--
2.35.3
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>
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"\
--
2.31.1
>> ---
>> 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);
>
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 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
© 2016 - 2026 Red Hat, Inc.