diff options
-rw-r--r-- | bsd-user/mmap.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/bsd-user/mmap.c b/bsd-user/mmap.c index 9c0a76a3a..66233abc1 100644 --- a/bsd-user/mmap.c +++ b/bsd-user/mmap.c @@ -122,6 +122,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) { |