summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--linux-user/mmap.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/linux-user/mmap.c b/linux-user/mmap.c
index 8e81cdec74..d0fc3e3d1a 100644
--- a/linux-user/mmap.c
+++ b/linux-user/mmap.c
@@ -123,6 +123,19 @@ void qemu_free(void *ptr)
     munmap(p, *p);
 }
 
+void *qemu_realloc(void *ptr, size_t size)
+{
+    size_t old_size, copy;
+    void *new_ptr;
+
+    old_size = *(size_t *)((char *)ptr - 16);
+    copy = old_size < size ? old_size : size;
+    new_ptr = qemu_malloc(size);
+    memcpy(new_ptr, ptr, copy);
+    qemu_free(ptr);
+    return new_ptr;
+}
+
 /* NOTE: all the constants are the HOST ones, but addresses are target. */
 int target_mprotect(abi_ulong start, abi_ulong len, int prot)
 {