From patchwork Fri May 21 17:37:52 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 53196 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [199.232.76.165]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 71D90B7D30 for ; Sat, 22 May 2010 03:40:34 +1000 (EST) Received: from localhost ([127.0.0.1]:35242 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OFWD1-00075z-JQ for incoming@patchwork.ozlabs.org; Fri, 21 May 2010 13:40:31 -0400 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 Received: from anchor.twiddle.home (anchor.twiddle.home [172.31.0.4]) by are.twiddle.net (Postfix) with ESMTPS id 12141F1D; Fri, 21 May 2010 10:37:59 -0700 (PDT) Received: from anchor.twiddle.home (anchor.twiddle.home [127.0.0.1]) by anchor.twiddle.home (8.14.4/8.14.4) with ESMTP id o4LHbwgj017398; Fri, 21 May 2010 10:37:58 -0700 Received: (from rth@localhost) by anchor.twiddle.home (8.14.4/8.14.4/Submit) id o4LHbvD8017397; Fri, 21 May 2010 10:37:57 -0700 From: Richard Henderson To: qemu-devel@nongnu.org Date: Fri, 21 May 2010 10:37:52 -0700 Message-Id: <1274463472-17353-3-git-send-email-rth@twiddle.net> X-Mailer: git-send-email 1.7.0.1 In-Reply-To: References: X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) Cc: paul@codesourcery.com, aurelien@aurel32.net Subject: [Qemu-devel] [PATCH 2/2] linux-user: Use qemu-malloc.c. X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org 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) {