From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=42181 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OFWAe-0005Tm-4l for qemu-devel@nongnu.org; Fri, 21 May 2010 13:38:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OFWAa-0007E3-Pj for qemu-devel@nongnu.org; Fri, 21 May 2010 13:38:03 -0400 Received: from are.twiddle.net ([75.149.56.221]:33805) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OFWAZ-0007Dp-K6 for qemu-devel@nongnu.org; Fri, 21 May 2010 13:38:00 -0400 From: Richard Henderson Date: Fri, 21 May 2010 10:37:52 -0700 Message-Id: <1274463472-17353-3-git-send-email-rth@twiddle.net> In-Reply-To: References: Subject: [Qemu-devel] [PATCH 2/2] linux-user: Use qemu-malloc.c. List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: paul@codesourcery.com, aurelien@aurel32.net Since we're no longer setting PAGE_RESERVED, there's no need to implement qemu_malloc via mmap. Signed-off-by: Richard Henderson --- Makefile.target | 3 ++- linux-user/mmap.c | 52 ---------------------------------------------------- 2 files changed, 2 insertions(+), 53 deletions(-) diff --git a/Makefile.target b/Makefile.target index a22484e..93ee085 100644 --- a/Makefile.target +++ b/Makefile.target @@ -85,7 +85,8 @@ $(call set-vpath, $(SRC_PATH)/linux-user:$(SRC_PATH)/linux-user/$(TARGET_ABI_DIR QEMU_CFLAGS+=-I$(SRC_PATH)/linux-user -I$(SRC_PATH)/linux-user/$(TARGET_ABI_DIR) obj-y = main.o syscall.o strace.o mmap.o signal.o thunk.o \ - elfload.o linuxload.o uaccess.o gdbstub.o cpu-uname.o + elfload.o linuxload.o uaccess.o gdbstub.o cpu-uname.o \ + qemu-malloc.o obj-$(TARGET_HAS_BFLT) += flatload.o diff --git a/linux-user/mmap.c b/linux-user/mmap.c index 9c062e7..fd315aa 100644 --- a/linux-user/mmap.c +++ b/linux-user/mmap.c @@ -77,58 +77,6 @@ void mmap_unlock(void) } #endif -void *qemu_vmalloc(size_t size) -{ - void *p; - - mmap_lock(); - /* Use map and mark the pages as used. */ - p = mmap(NULL, size, PROT_READ | PROT_WRITE, - MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); - mmap_unlock(); - return p; -} - -void *qemu_malloc(size_t size) -{ - char * p; - size += 16; - p = qemu_vmalloc(size); - *(size_t *)p = size; - return p + 16; -} - -/* We use map, which is always zero initialized. */ -void * qemu_mallocz(size_t size) -{ - return qemu_malloc(size); -} - -void qemu_free(void *ptr) -{ - /* FIXME: We should unmark the reserved pages here. However this gets - complicated when one target page spans multiple host pages, so we - don't bother. */ - size_t *p; - p = (size_t *)((char *)ptr - 16); - munmap(p, *p); -} - -void *qemu_realloc(void *ptr, size_t size) -{ - size_t old_size, copy; - void *new_ptr; - - if (!ptr) - return qemu_malloc(size); - 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) { -- 1.7.0.1