From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34740) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bHouH-0006mQ-6d for qemu-devel@nongnu.org; Tue, 28 Jun 2016 05:02:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bHouE-0003Ms-2t for qemu-devel@nongnu.org; Tue, 28 Jun 2016 05:02:09 -0400 Received: from mx-v6.kamp.de ([2a02:248:0:51::16]:59462 helo=mx01.kamp.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bHouD-0003Mb-Pe for qemu-devel@nongnu.org; Tue, 28 Jun 2016 05:02:06 -0400 From: Peter Lieven Date: Tue, 28 Jun 2016 11:01:36 +0200 Message-Id: <1467104499-27517-13-git-send-email-pl@kamp.de> In-Reply-To: <1467104499-27517-1-git-send-email-pl@kamp.de> References: <1467104499-27517-1-git-send-email-pl@kamp.de> Subject: [Qemu-devel] [PATCH 12/15] util: add a function to realloc mmapped memory List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: kwolf@redhat.com, mreitz@redhat.com, pbonzini@redhat.com, mst@redhat.com, dgilbert@redhat.com, peter.maydell@linaro.org, kraxel@redhat.com, Peter Lieven Signed-off-by: Peter Lieven --- include/qemu/mmap-alloc.h | 1 + util/mmap-alloc.c | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/include/qemu/mmap-alloc.h b/include/qemu/mmap-alloc.h index a457721..935a907 100644 --- a/include/qemu/mmap-alloc.h +++ b/include/qemu/mmap-alloc.h @@ -14,5 +14,6 @@ void qemu_ram_munmap(void *ptr, size_t size); * for g_malloc0 and friends. */ void *qemu_anon_ram_mmap(size_t size); void qemu_anon_ram_munmap(void *ptr, size_t size); +void *qemu_anon_ram_remap(void *old_ptr, size_t old_size, size_t new_size); #endif diff --git a/util/mmap-alloc.c b/util/mmap-alloc.c index c099858..5cbe1c5 100644 --- a/util/mmap-alloc.c +++ b/util/mmap-alloc.c @@ -124,3 +124,13 @@ void qemu_anon_ram_munmap(void *ptr, size_t size) munmap(ptr, size); } } + +void *qemu_anon_ram_remap(void *old_ptr, size_t old_size, size_t new_size) +{ + void *ptr = qemu_anon_ram_mmap(new_size); + if (old_ptr) { + memcpy(ptr, old_ptr, old_size); + qemu_anon_ram_munmap(old_ptr, old_size); + } + return ptr; +} -- 1.9.1