mirror of https://github.com/xqemu/xqemu.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);
|
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)
|
void *qemu_try_blockalign(BlockDriverState *bs, size_t size)
|
||||||
{
|
{
|
||||||
size_t align = bdrv_opt_mem_align(bs);
|
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);
|
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.
|
* 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);
|
size_t bdrv_opt_mem_align(BlockDriverState *bs);
|
||||||
void bdrv_set_guest_block_size(BlockDriverState *bs, int align);
|
void bdrv_set_guest_block_size(BlockDriverState *bs, int align);
|
||||||
void *qemu_blockalign(BlockDriverState *bs, size_t size);
|
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_blockalign(BlockDriverState *bs, size_t size);
|
||||||
|
void *qemu_try_blockalign0(BlockDriverState *bs, size_t size);
|
||||||
bool bdrv_qiov_is_aligned(BlockDriverState *bs, QEMUIOVector *qiov);
|
bool bdrv_qiov_is_aligned(BlockDriverState *bs, QEMUIOVector *qiov);
|
||||||
|
|
||||||
struct HBitmapIter;
|
struct HBitmapIter;
|
||||||
|
|
Loading…
Reference in New Issue