mirror of https://gitee.com/openkylin/qemu.git
block: extract bdrv_setup_io_funcs()
Move the code to install coroutine and aio emulation function pointers in a BlockDriver to its own function. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
e0c47b6cb1
commit
0eb7217e49
7
block.c
7
block.c
|
@ -349,7 +349,7 @@ void bdrv_get_full_backing_filename(BlockDriverState *bs, char *dest, size_t sz,
|
|||
dest, sz, errp);
|
||||
}
|
||||
|
||||
void bdrv_register(BlockDriver *bdrv)
|
||||
void bdrv_setup_io_funcs(BlockDriver *bdrv)
|
||||
{
|
||||
/* Block drivers without coroutine functions need emulation */
|
||||
if (!bdrv->bdrv_co_readv) {
|
||||
|
@ -365,6 +365,11 @@ void bdrv_register(BlockDriver *bdrv)
|
|||
bdrv->bdrv_aio_writev = bdrv_aio_writev_em;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void bdrv_register(BlockDriver *bdrv)
|
||||
{
|
||||
bdrv_setup_io_funcs(bdrv);
|
||||
|
||||
QLIST_INSERT_HEAD(&bdrv_drivers, bdrv, list);
|
||||
}
|
||||
|
|
|
@ -439,6 +439,14 @@ extern BlockDriver bdrv_file;
|
|||
extern BlockDriver bdrv_raw;
|
||||
extern BlockDriver bdrv_qcow2;
|
||||
|
||||
/**
|
||||
* bdrv_setup_io_funcs:
|
||||
*
|
||||
* Prepare a #BlockDriver for I/O request processing by populating
|
||||
* unimplemented coroutine and AIO interfaces with generic wrapper functions
|
||||
* that fall back to implemented interfaces.
|
||||
*/
|
||||
void bdrv_setup_io_funcs(BlockDriver *bdrv);
|
||||
|
||||
int get_tmp_filename(char *filename, int size);
|
||||
BlockDriver *bdrv_probe_all(const uint8_t *buf, int buf_size,
|
||||
|
|
Loading…
Reference in New Issue