block: New bdrv_next()
This is a more flexible alternative to bdrv_iterate(). Signed-off-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
ac59eb95f3
commit
2f399b0aad
8
block.c
8
block.c
|
@ -1330,6 +1330,14 @@ BlockDriverState *bdrv_find(const char *name)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BlockDriverState *bdrv_next(BlockDriverState *bs)
|
||||||
|
{
|
||||||
|
if (!bs) {
|
||||||
|
return QTAILQ_FIRST(&bdrv_states);
|
||||||
|
}
|
||||||
|
return QTAILQ_NEXT(bs, list);
|
||||||
|
}
|
||||||
|
|
||||||
void bdrv_iterate(void (*it)(void *opaque, BlockDriverState *bs), void *opaque)
|
void bdrv_iterate(void (*it)(void *opaque, BlockDriverState *bs), void *opaque)
|
||||||
{
|
{
|
||||||
BlockDriverState *bs;
|
BlockDriverState *bs;
|
||||||
|
|
1
block.h
1
block.h
|
@ -168,6 +168,7 @@ void bdrv_set_change_cb(BlockDriverState *bs,
|
||||||
void (*change_cb)(void *opaque), void *opaque);
|
void (*change_cb)(void *opaque), void *opaque);
|
||||||
void bdrv_get_format(BlockDriverState *bs, char *buf, int buf_size);
|
void bdrv_get_format(BlockDriverState *bs, char *buf, int buf_size);
|
||||||
BlockDriverState *bdrv_find(const char *name);
|
BlockDriverState *bdrv_find(const char *name);
|
||||||
|
BlockDriverState *bdrv_next(BlockDriverState *bs);
|
||||||
void bdrv_iterate(void (*it)(void *opaque, BlockDriverState *bs),
|
void bdrv_iterate(void (*it)(void *opaque, BlockDriverState *bs),
|
||||||
void *opaque);
|
void *opaque);
|
||||||
int bdrv_is_encrypted(BlockDriverState *bs);
|
int bdrv_is_encrypted(BlockDriverState *bs);
|
||||||
|
|
Loading…
Reference in New Issue