mirror of https://gitee.com/openkylin/qemu.git
block: Add qemu_{,try_}blockalign0()
These functions call their non-0-counterparts and then fill the allocated buffer with 0 (if the allocation has been successful). Signed-off-by: Max Reitz <mreitz@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
c5f7c0af47
commit
9ebd844805
16
block.c
16
block.c
|
@ -5200,6 +5200,11 @@ void *qemu_blockalign(BlockDriverState *bs, size_t size)
|
|||
return qemu_memalign(bdrv_opt_mem_align(bs), size);
|
||||
}
|
||||
|
||||
void *qemu_blockalign0(BlockDriverState *bs, size_t size)
|
||||
{
|
||||
return memset(qemu_blockalign(bs, size), 0, size);
|
||||
}
|
||||
|
||||
void *qemu_try_blockalign(BlockDriverState *bs, size_t size)
|
||||
{
|
||||
size_t align = bdrv_opt_mem_align(bs);
|
||||
|
@ -5213,6 +5218,17 @@ void *qemu_try_blockalign(BlockDriverState *bs, size_t size)
|
|||
return qemu_try_memalign(align, size);
|
||||
}
|
||||
|
||||
void *qemu_try_blockalign0(BlockDriverState *bs, size_t size)
|
||||
{
|
||||
void *mem = qemu_try_blockalign(bs, size);
|
||||
|
||||
if (mem) {
|
||||
memset(mem, 0, size);
|
||||
}
|
||||
|
||||
return mem;
|
||||
}
|
||||
|
||||
/*
|
||||
* Check if all memory in this vector is sector aligned.
|
||||
*/
|
||||
|
|
|
@ -412,7 +412,9 @@ void bdrv_img_create(const char *filename, const char *fmt,
|
|||
size_t bdrv_opt_mem_align(BlockDriverState *bs);
|
||||
void bdrv_set_guest_block_size(BlockDriverState *bs, int align);
|
||||
void *qemu_blockalign(BlockDriverState *bs, size_t size);
|
||||
void *qemu_blockalign0(BlockDriverState *bs, size_t size);
|
||||
void *qemu_try_blockalign(BlockDriverState *bs, size_t size);
|
||||
void *qemu_try_blockalign0(BlockDriverState *bs, size_t size);
|
||||
bool bdrv_qiov_is_aligned(BlockDriverState *bs, QEMUIOVector *qiov);
|
||||
|
||||
struct HBitmapIter;
|
||||
|
|
Loading…
Reference in New Issue