diff mbox

[1/2] hostmem: introduce host_memory_backend_mr_inited()

Message ID 1489151370-15453-2-git-send-email-peterx@redhat.com
State New
Headers show

Commit Message

Peter Xu March 10, 2017, 1:09 p.m. UTC
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 <peter.maydell@linaro.org>
Signed-off-by: Peter Xu <peterx@redhat.com>
---
 backends/hostmem.c       | 9 +++++++++
 include/sysemu/hostmem.h | 1 +
 2 files changed, 10 insertions(+)
diff mbox

Patch

diff --git a/backends/hostmem.c b/backends/hostmem.c
index 7f5de70..4e9ef62 100644
--- a/backends/hostmem.c
+++ b/backends/hostmem.c
@@ -243,6 +243,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 ecae0cf..ed6a437 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);