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) {