[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 05/15] util: add a helper to mmap private anonymous
From: |
Peter Lieven |
Subject: |
[Qemu-devel] [PATCH 05/15] util: add a helper to mmap private anonymous memory |
Date: |
Tue, 28 Jun 2016 11:01:29 +0200 |
Signed-off-by: Peter Lieven <address@hidden>
---
include/qemu/mmap-alloc.h | 6 ++++++
util/mmap-alloc.c | 17 +++++++++++++++++
2 files changed, 23 insertions(+)
diff --git a/include/qemu/mmap-alloc.h b/include/qemu/mmap-alloc.h
index 0899b2f..a457721 100644
--- a/include/qemu/mmap-alloc.h
+++ b/include/qemu/mmap-alloc.h
@@ -9,4 +9,10 @@ void *qemu_ram_mmap(int fd, size_t size, size_t align, bool
shared);
void qemu_ram_munmap(void *ptr, size_t size);
+/* qemu_anon_ram_mmap maps private anonymous memory using mmap and
+ * aborts if the allocation fails. its meant to act as an replacement
+ * for g_malloc0 and friends. */
+void *qemu_anon_ram_mmap(size_t size);
+void qemu_anon_ram_munmap(void *ptr, size_t size);
+
#endif
diff --git a/util/mmap-alloc.c b/util/mmap-alloc.c
index 629d97a..c099858 100644
--- a/util/mmap-alloc.c
+++ b/util/mmap-alloc.c
@@ -107,3 +107,20 @@ void qemu_ram_munmap(void *ptr, size_t size)
munmap(ptr, size + getpagesize());
}
}
+
+void *qemu_anon_ram_mmap(size_t size)
+{
+ void *ptr = mmap(NULL, size, PROT_READ | PROT_WRITE,
+ MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+ if (ptr == MAP_FAILED) {
+ abort();
+ }
+ return ptr;
+}
+
+void qemu_anon_ram_munmap(void *ptr, size_t size)
+{
+ if (ptr) {
+ munmap(ptr, size);
+ }
+}
--
1.9.1
- Re: [Qemu-devel] [PATCH 07/15] qapi: use mmap for QmpInputVisitor, (continued)
Re: [Qemu-devel] [PATCH 07/15] qapi: use mmap for QmpInputVisitor, Paolo Bonzini, 2016/06/28
[Qemu-devel] [PATCH 10/15] vmware_svga: use mmap for scratch pad, Peter Lieven, 2016/06/28
[Qemu-devel] [PATCH 04/15] coroutine: add a knob to disable the shared release pool, Peter Lieven, 2016/06/28
[Qemu-devel] [PATCH 05/15] util: add a helper to mmap private anonymous memory,
Peter Lieven <=
[Qemu-devel] [PATCH 06/15] exec: use mmap for subpages, Peter Lieven, 2016/06/28
Re: [Qemu-devel] [PATCH 00/15] optimize Qemu RSS usage, Paolo Bonzini, 2016/06/28
- Re: [Qemu-devel] [PATCH 00/15] optimize Qemu RSS usage, Peter Lieven, 2016/06/28
- Re: [Qemu-devel] [PATCH 00/15] optimize Qemu RSS usage, Paolo Bonzini, 2016/06/28
- Re: [Qemu-devel] [PATCH 00/15] optimize Qemu RSS usage, Peter Lieven, 2016/06/28
- Re: [Qemu-devel] [PATCH 00/15] optimize Qemu RSS usage, Paolo Bonzini, 2016/06/28
- Re: [Qemu-devel] [PATCH 00/15] optimize Qemu RSS usage, Dr. David Alan Gilbert, 2016/06/28
- Re: [Qemu-devel] [PATCH 00/15] optimize Qemu RSS usage, Peter Lieven, 2016/06/28
- Re: [Qemu-devel] [PATCH 00/15] optimize Qemu RSS usage, Peter Lieven, 2016/06/28