From 7d2a35cc921ea4832083a7e8598461868bb538ce Mon Sep 17 00:00:00 2001 From: Kevin Wolf Date: Tue, 20 May 2014 12:24:05 +0200 Subject: block: Introduce qemu_try_blockalign() This function returns NULL instead of aborting when an allocation fails. Signed-off-by: Kevin Wolf Reviewed-by: Benoit Canet --- block.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'block.c') diff --git a/block.c b/block.c index d7cb7d48fa..3365c05b9d 100644 --- a/block.c +++ b/block.c @@ -5258,6 +5258,19 @@ void *qemu_blockalign(BlockDriverState *bs, size_t size) return qemu_memalign(bdrv_opt_mem_align(bs), size); } +void *qemu_try_blockalign(BlockDriverState *bs, size_t size) +{ + size_t align = bdrv_opt_mem_align(bs); + + /* Ensure that NULL is never returned on success */ + assert(align > 0); + if (size == 0) { + size = align; + } + + return qemu_try_memalign(align, size); +} + /* * Check if all memory in this vector is sector aligned. */ -- cgit v1.2.3