|
@@ -100,12 +100,20 @@ def snake_to_camel(func_name: str) -> str:
|
|
|
def gen_wrapper(func: FuncDecl) -> str:
|
|
|
assert not '_co_' in func.name
|
|
|
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)
|
|
|
|
|
|
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)
|
|
|
|
|
|
return f"""\
|