From 4728b5741040df8bd02a5ad8fd3c2beefae3dcb1 Mon Sep 17 00:00:00 2001 From: Peter Xu Date: Fri, 10 Mar 2017 21:09:29 +0800 Subject: hostmem: introduce host_memory_backend_mr_inited() We were checking this against memory region size of host memory backend's mr field to see whether the mr has been inited. This is efficient but less elegant. Let's make a helper for it to avoid confusions, along with some notes. Suggested-by: Peter Maydell Signed-off-by: Peter Xu Message-Id: <1489151370-15453-2-git-send-email-peterx@redhat.com> Reviewed-by: Eduardo Habkost Signed-off-by: Eduardo Habkost --- backends/hostmem.c | 9 +++++++++ include/sysemu/hostmem.h | 1 + 2 files changed, 10 insertions(+) diff --git a/backends/hostmem.c b/backends/hostmem.c index 89feb9ed75..d8faab4bed 100644 --- a/backends/hostmem.c +++ b/backends/hostmem.c @@ -237,6 +237,15 @@ static void host_memory_backend_init(Object *obj) backend->prealloc = mem_prealloc; } +bool host_memory_backend_mr_inited(HostMemoryBackend *backend) +{ + /* + * NOTE: We forbid zero-length memory backend, so here zero means + * "we haven't inited the backend memory region yet". + */ + return memory_region_size(&backend->mr) != 0; +} + MemoryRegion * host_memory_backend_get_memory(HostMemoryBackend *backend, Error **errp) { diff --git a/include/sysemu/hostmem.h b/include/sysemu/hostmem.h index ecae0cff19..ed6a437f4d 100644 --- a/include/sysemu/hostmem.h +++ b/include/sysemu/hostmem.h @@ -62,6 +62,7 @@ struct HostMemoryBackend { MemoryRegion mr; }; +bool host_memory_backend_mr_inited(HostMemoryBackend *backend); MemoryRegion *host_memory_backend_get_memory(HostMemoryBackend *backend, Error **errp); -- cgit v1.2.3