block: rename generated_co_wrapper in co_wrapper_mixed
In preparation to the incoming new function specifiers, rename g_c_w with a more meaningful name and document it. Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com> Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru> Message-Id: <20221128142337.657646-10-eesposit@redhat.com> Reviewed-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
2475a0d0f4
commit
1bd542016c
|
@ -71,7 +71,7 @@ nbd_co_do_establish_connection(BlockDriverState *bs, bool blocking,
|
|||
* the "I/O or GS" API.
|
||||
*/
|
||||
|
||||
int generated_co_wrapper
|
||||
int co_wrapper_mixed
|
||||
bdrv_common_block_status_above(BlockDriverState *bs,
|
||||
BlockDriverState *base,
|
||||
bool include_base,
|
||||
|
@ -82,7 +82,7 @@ bdrv_common_block_status_above(BlockDriverState *bs,
|
|||
int64_t *map,
|
||||
BlockDriverState **file,
|
||||
int *depth);
|
||||
int generated_co_wrapper
|
||||
int co_wrapper_mixed
|
||||
nbd_do_establish_connection(BlockDriverState *bs, bool blocking, Error **errp);
|
||||
|
||||
#endif /* BLOCK_COROUTINES_H */
|
||||
|
|
|
@ -26,12 +26,12 @@ called ``bdrv_foo(<same args>)``. In this case the script can help. To
|
|||
trigger the generation:
|
||||
|
||||
1. You need ``bdrv_foo`` declaration somewhere (for example, in
|
||||
``block/coroutines.h``) with the ``generated_co_wrapper`` mark,
|
||||
``block/coroutines.h``) with the ``co_wrapper_mixed`` mark,
|
||||
like this:
|
||||
|
||||
.. code-block:: c
|
||||
|
||||
int generated_co_wrapper bdrv_foo(<some args>);
|
||||
int co_wrapper_mixed bdrv_foo(<some args>);
|
||||
|
||||
2. You need to feed this declaration to block-coroutine-wrapper script.
|
||||
For this, add the .h (or .c) file with the declaration to the
|
||||
|
@ -46,7 +46,7 @@ Links
|
|||
|
||||
1. The script location is ``scripts/block-coroutine-wrapper.py``.
|
||||
|
||||
2. Generic place for private ``generated_co_wrapper`` declarations is
|
||||
2. Generic place for private ``co_wrapper_mixed`` declarations is
|
||||
``block/coroutines.h``, for public declarations:
|
||||
``include/block/block.h``
|
||||
|
||||
|
|
|
@ -35,14 +35,17 @@
|
|||
#include "qemu/transactions.h"
|
||||
|
||||
/*
|
||||
* generated_co_wrapper
|
||||
* co_wrapper{*}: Function specifiers used by block-coroutine-wrapper.py
|
||||
*
|
||||
* Function specifier, which does nothing but mark functions to be
|
||||
* Function specifiers, which do nothing but mark functions to be
|
||||
* generated by scripts/block-coroutine-wrapper.py
|
||||
*
|
||||
* Read more in docs/devel/block-coroutine-wrapper.rst
|
||||
* Usage: read docs/devel/block-coroutine-wrapper.rst
|
||||
*
|
||||
* co_wrapper_mixed functions can be called by both coroutine and
|
||||
* non-coroutine context.
|
||||
*/
|
||||
#define generated_co_wrapper
|
||||
#define co_wrapper_mixed
|
||||
|
||||
/* block.c */
|
||||
typedef struct BlockDriver BlockDriver;
|
||||
|
|
|
@ -39,19 +39,19 @@
|
|||
* to catch when they are accidentally called by the wrong API.
|
||||
*/
|
||||
|
||||
int generated_co_wrapper bdrv_pwrite_zeroes(BdrvChild *child, int64_t offset,
|
||||
int64_t bytes,
|
||||
BdrvRequestFlags flags);
|
||||
int co_wrapper_mixed bdrv_pwrite_zeroes(BdrvChild *child, int64_t offset,
|
||||
int64_t bytes,
|
||||
BdrvRequestFlags flags);
|
||||
int bdrv_make_zero(BdrvChild *child, BdrvRequestFlags flags);
|
||||
int generated_co_wrapper bdrv_pread(BdrvChild *child, int64_t offset,
|
||||
int64_t bytes, void *buf,
|
||||
BdrvRequestFlags flags);
|
||||
int generated_co_wrapper bdrv_pwrite(BdrvChild *child, int64_t offset,
|
||||
int64_t bytes, const void *buf,
|
||||
BdrvRequestFlags flags);
|
||||
int generated_co_wrapper bdrv_pwrite_sync(BdrvChild *child, int64_t offset,
|
||||
int64_t bytes, const void *buf,
|
||||
BdrvRequestFlags flags);
|
||||
int co_wrapper_mixed bdrv_pread(BdrvChild *child, int64_t offset,
|
||||
int64_t bytes, void *buf,
|
||||
BdrvRequestFlags flags);
|
||||
int co_wrapper_mixed bdrv_pwrite(BdrvChild *child, int64_t offset,
|
||||
int64_t bytes, const void *buf,
|
||||
BdrvRequestFlags flags);
|
||||
int co_wrapper_mixed bdrv_pwrite_sync(BdrvChild *child, int64_t offset,
|
||||
int64_t bytes, const void *buf,
|
||||
BdrvRequestFlags flags);
|
||||
int coroutine_fn bdrv_co_pwrite_sync(BdrvChild *child, int64_t offset,
|
||||
int64_t bytes, const void *buf,
|
||||
BdrvRequestFlags flags);
|
||||
|
@ -281,22 +281,22 @@ int coroutine_fn bdrv_co_copy_range(BdrvChild *src, int64_t src_offset,
|
|||
|
||||
void bdrv_drain(BlockDriverState *bs);
|
||||
|
||||
int generated_co_wrapper
|
||||
int co_wrapper_mixed
|
||||
bdrv_truncate(BdrvChild *child, int64_t offset, bool exact,
|
||||
PreallocMode prealloc, BdrvRequestFlags flags, Error **errp);
|
||||
|
||||
int generated_co_wrapper bdrv_check(BlockDriverState *bs, BdrvCheckResult *res,
|
||||
BdrvCheckMode fix);
|
||||
int co_wrapper_mixed bdrv_check(BlockDriverState *bs, BdrvCheckResult *res,
|
||||
BdrvCheckMode fix);
|
||||
|
||||
/* Invalidate any cached metadata used by image formats */
|
||||
int generated_co_wrapper bdrv_invalidate_cache(BlockDriverState *bs,
|
||||
Error **errp);
|
||||
int generated_co_wrapper bdrv_flush(BlockDriverState *bs);
|
||||
int generated_co_wrapper bdrv_pdiscard(BdrvChild *child, int64_t offset,
|
||||
int64_t bytes);
|
||||
int generated_co_wrapper
|
||||
int co_wrapper_mixed bdrv_invalidate_cache(BlockDriverState *bs,
|
||||
Error **errp);
|
||||
int co_wrapper_mixed bdrv_flush(BlockDriverState *bs);
|
||||
int co_wrapper_mixed bdrv_pdiscard(BdrvChild *child, int64_t offset,
|
||||
int64_t bytes);
|
||||
int co_wrapper_mixed
|
||||
bdrv_readv_vmstate(BlockDriverState *bs, QEMUIOVector *qiov, int64_t pos);
|
||||
int generated_co_wrapper
|
||||
int co_wrapper_mixed
|
||||
bdrv_writev_vmstate(BlockDriverState *bs, QEMUIOVector *qiov, int64_t pos);
|
||||
|
||||
/**
|
||||
|
|
|
@ -110,77 +110,77 @@ int coroutine_fn blk_co_is_allocated_above(BlockBackend *blk,
|
|||
* the "I/O or GS" API.
|
||||
*/
|
||||
|
||||
int generated_co_wrapper blk_pread(BlockBackend *blk, int64_t offset,
|
||||
int64_t bytes, void *buf,
|
||||
BdrvRequestFlags flags);
|
||||
int co_wrapper_mixed blk_pread(BlockBackend *blk, int64_t offset,
|
||||
int64_t bytes, void *buf,
|
||||
BdrvRequestFlags flags);
|
||||
int coroutine_fn blk_co_pread(BlockBackend *blk, int64_t offset, int64_t bytes,
|
||||
void *buf, BdrvRequestFlags flags);
|
||||
|
||||
int generated_co_wrapper blk_preadv(BlockBackend *blk, int64_t offset,
|
||||
int64_t bytes, QEMUIOVector *qiov,
|
||||
BdrvRequestFlags flags);
|
||||
int co_wrapper_mixed blk_preadv(BlockBackend *blk, int64_t offset,
|
||||
int64_t bytes, QEMUIOVector *qiov,
|
||||
BdrvRequestFlags flags);
|
||||
int coroutine_fn blk_co_preadv(BlockBackend *blk, int64_t offset,
|
||||
int64_t bytes, QEMUIOVector *qiov,
|
||||
BdrvRequestFlags flags);
|
||||
|
||||
int generated_co_wrapper blk_preadv_part(BlockBackend *blk, int64_t offset,
|
||||
int64_t bytes, QEMUIOVector *qiov,
|
||||
size_t qiov_offset,
|
||||
BdrvRequestFlags flags);
|
||||
int co_wrapper_mixed blk_preadv_part(BlockBackend *blk, int64_t offset,
|
||||
int64_t bytes, QEMUIOVector *qiov,
|
||||
size_t qiov_offset,
|
||||
BdrvRequestFlags flags);
|
||||
int coroutine_fn blk_co_preadv_part(BlockBackend *blk, int64_t offset,
|
||||
int64_t bytes, QEMUIOVector *qiov,
|
||||
size_t qiov_offset, BdrvRequestFlags flags);
|
||||
|
||||
int generated_co_wrapper blk_pwrite(BlockBackend *blk, int64_t offset,
|
||||
int64_t bytes, const void *buf,
|
||||
BdrvRequestFlags flags);
|
||||
int co_wrapper_mixed blk_pwrite(BlockBackend *blk, int64_t offset,
|
||||
int64_t bytes, const void *buf,
|
||||
BdrvRequestFlags flags);
|
||||
int coroutine_fn blk_co_pwrite(BlockBackend *blk, int64_t offset, int64_t bytes,
|
||||
const void *buf, BdrvRequestFlags flags);
|
||||
|
||||
int generated_co_wrapper blk_pwritev(BlockBackend *blk, int64_t offset,
|
||||
int64_t bytes, QEMUIOVector *qiov,
|
||||
BdrvRequestFlags flags);
|
||||
int co_wrapper_mixed blk_pwritev(BlockBackend *blk, int64_t offset,
|
||||
int64_t bytes, QEMUIOVector *qiov,
|
||||
BdrvRequestFlags flags);
|
||||
int coroutine_fn blk_co_pwritev(BlockBackend *blk, int64_t offset,
|
||||
int64_t bytes, QEMUIOVector *qiov,
|
||||
BdrvRequestFlags flags);
|
||||
|
||||
int generated_co_wrapper blk_pwritev_part(BlockBackend *blk, int64_t offset,
|
||||
int64_t bytes, QEMUIOVector *qiov,
|
||||
size_t qiov_offset,
|
||||
BdrvRequestFlags flags);
|
||||
int co_wrapper_mixed blk_pwritev_part(BlockBackend *blk, int64_t offset,
|
||||
int64_t bytes, QEMUIOVector *qiov,
|
||||
size_t qiov_offset,
|
||||
BdrvRequestFlags flags);
|
||||
int coroutine_fn blk_co_pwritev_part(BlockBackend *blk, int64_t offset,
|
||||
int64_t bytes,
|
||||
QEMUIOVector *qiov, size_t qiov_offset,
|
||||
BdrvRequestFlags flags);
|
||||
|
||||
int generated_co_wrapper blk_pwrite_compressed(BlockBackend *blk,
|
||||
int64_t offset, int64_t bytes,
|
||||
const void *buf);
|
||||
int co_wrapper_mixed blk_pwrite_compressed(BlockBackend *blk,
|
||||
int64_t offset, int64_t bytes,
|
||||
const void *buf);
|
||||
int coroutine_fn blk_co_pwrite_compressed(BlockBackend *blk, int64_t offset,
|
||||
int64_t bytes, const void *buf);
|
||||
|
||||
int generated_co_wrapper blk_pwrite_zeroes(BlockBackend *blk, int64_t offset,
|
||||
int64_t bytes,
|
||||
BdrvRequestFlags flags);
|
||||
int co_wrapper_mixed blk_pwrite_zeroes(BlockBackend *blk, int64_t offset,
|
||||
int64_t bytes,
|
||||
BdrvRequestFlags flags);
|
||||
int coroutine_fn blk_co_pwrite_zeroes(BlockBackend *blk, int64_t offset,
|
||||
int64_t bytes, BdrvRequestFlags flags);
|
||||
|
||||
int generated_co_wrapper blk_pdiscard(BlockBackend *blk, int64_t offset,
|
||||
int64_t bytes);
|
||||
int co_wrapper_mixed blk_pdiscard(BlockBackend *blk, int64_t offset,
|
||||
int64_t bytes);
|
||||
int coroutine_fn blk_co_pdiscard(BlockBackend *blk, int64_t offset,
|
||||
int64_t bytes);
|
||||
|
||||
int generated_co_wrapper blk_flush(BlockBackend *blk);
|
||||
int co_wrapper_mixed blk_flush(BlockBackend *blk);
|
||||
int coroutine_fn blk_co_flush(BlockBackend *blk);
|
||||
|
||||
int generated_co_wrapper blk_ioctl(BlockBackend *blk, unsigned long int req,
|
||||
void *buf);
|
||||
int co_wrapper_mixed blk_ioctl(BlockBackend *blk, unsigned long int req,
|
||||
void *buf);
|
||||
int coroutine_fn blk_co_ioctl(BlockBackend *blk, unsigned long int req,
|
||||
void *buf);
|
||||
|
||||
int generated_co_wrapper blk_truncate(BlockBackend *blk, int64_t offset,
|
||||
bool exact, PreallocMode prealloc,
|
||||
BdrvRequestFlags flags, Error **errp);
|
||||
int co_wrapper_mixed blk_truncate(BlockBackend *blk, int64_t offset,
|
||||
bool exact, PreallocMode prealloc,
|
||||
BdrvRequestFlags flags, Error **errp);
|
||||
int coroutine_fn blk_co_truncate(BlockBackend *blk, int64_t offset, bool exact,
|
||||
PreallocMode prealloc, BdrvRequestFlags flags,
|
||||
Error **errp);
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"""Generate coroutine wrappers for block subsystem.
|
||||
|
||||
The program parses one or several concatenated c files from stdin,
|
||||
searches for functions with the 'generated_co_wrapper' specifier
|
||||
searches for functions with the 'co_wrapper_mixed' specifier
|
||||
and generates corresponding wrappers on stdout.
|
||||
|
||||
Usage: block-coroutine-wrapper.py generated-file.c FILE.[ch]...
|
||||
|
@ -74,8 +74,8 @@ class FuncDecl:
|
|||
return '\n'.join(format.format_map(arg.__dict__) for arg in self.args)
|
||||
|
||||
|
||||
# Match wrappers declared with a generated_co_wrapper mark
|
||||
func_decl_re = re.compile(r'^int\s*generated_co_wrapper\s*'
|
||||
# Match wrappers declared with a co_wrapper_mixed mark
|
||||
func_decl_re = re.compile(r'^int\s*co_wrapper_mixed\s*'
|
||||
r'(?P<wrapper_name>[a-z][a-z0-9_]*)'
|
||||
r'\((?P<args>[^)]*)\);$', re.MULTILINE)
|
||||
|
||||
|
|
Loading…
Reference in New Issue