mirror of https://github.com/xemu-project/xemu.git
block-coroutine-wrapper.py: support BlockBackend first argument
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> Message-Id: <20211006131718.214235-7-vsementsov@virtuozzo.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
parent
70e8775ed9
commit
7d55a3bbad
|
@ -27,6 +27,9 @@
|
||||||
|
|
||||||
#include "block/block_int.h"
|
#include "block/block_int.h"
|
||||||
|
|
||||||
|
/* For blk_bs() in generated block/block-gen.c */
|
||||||
|
#include "sysemu/block-backend.h"
|
||||||
|
|
||||||
int coroutine_fn bdrv_co_check(BlockDriverState *bs,
|
int coroutine_fn bdrv_co_check(BlockDriverState *bs,
|
||||||
BdrvCheckResult *res, BdrvCheckMode fix);
|
BdrvCheckResult *res, BdrvCheckMode fix);
|
||||||
int coroutine_fn bdrv_co_invalidate_cache(BlockDriverState *bs, Error **errp);
|
int coroutine_fn bdrv_co_invalidate_cache(BlockDriverState *bs, Error **errp);
|
||||||
|
|
|
@ -100,12 +100,20 @@ def snake_to_camel(func_name: str) -> str:
|
||||||
def gen_wrapper(func: FuncDecl) -> str:
|
def gen_wrapper(func: FuncDecl) -> str:
|
||||||
assert not '_co_' in func.name
|
assert not '_co_' in func.name
|
||||||
assert func.return_type == 'int'
|
assert func.return_type == 'int'
|
||||||
assert func.args[0].type in ['BlockDriverState *', 'BdrvChild *']
|
assert func.args[0].type in ['BlockDriverState *', 'BdrvChild *',
|
||||||
|
'BlockBackend *']
|
||||||
|
|
||||||
subsystem, subname = func.name.split('_', 1)
|
subsystem, subname = func.name.split('_', 1)
|
||||||
|
|
||||||
name = f'{subsystem}_co_{subname}'
|
name = f'{subsystem}_co_{subname}'
|
||||||
bs = 'bs' if func.args[0].type == 'BlockDriverState *' else 'child->bs'
|
|
||||||
|
t = func.args[0].type
|
||||||
|
if t == 'BlockDriverState *':
|
||||||
|
bs = 'bs'
|
||||||
|
elif t == 'BdrvChild *':
|
||||||
|
bs = 'child->bs'
|
||||||
|
else:
|
||||||
|
bs = 'blk_bs(blk)'
|
||||||
struct_name = snake_to_camel(name)
|
struct_name = snake_to_camel(name)
|
||||||
|
|
||||||
return f"""\
|
return f"""\
|
||||||
|
|
Loading…
Reference in New Issue