From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Kjbml-0005Gn-HK for qemu-devel@nongnu.org; Sat, 27 Sep 2008 11:32:43 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Kjbmk-0005GI-Td for qemu-devel@nongnu.org; Sat, 27 Sep 2008 11:32:43 -0400 Received: from [199.232.76.173] (port=37608 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Kjbmk-0005GF-Qg for qemu-devel@nongnu.org; Sat, 27 Sep 2008 11:32:42 -0400 Received: from savannah.gnu.org ([199.232.41.3]:40077 helo=sv.gnu.org) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1Kjbmk-0007pb-W6 for qemu-devel@nongnu.org; Sat, 27 Sep 2008 11:32:43 -0400 Received: from cvs.savannah.gnu.org ([199.232.41.69]) by sv.gnu.org with esmtp (Exim 4.63) (envelope-from ) id 1Kjbmk-0004wg-6Z for qemu-devel@nongnu.org; Sat, 27 Sep 2008 15:32:42 +0000 Received: from aliguori by cvs.savannah.gnu.org with local (Exim 4.63) (envelope-from ) id 1Kjbmj-0004wc-U9 for qemu-devel@nongnu.org; Sat, 27 Sep 2008 15:32:42 +0000 MIME-Version: 1.0 Errors-To: aliguori Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From: Anthony Liguori Message-Id: Date: Sat, 27 Sep 2008 15:32:41 +0000 Subject: [Qemu-devel] [5331] Allocate code gen buffer properly on FreeBSD Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Revision: 5331 http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=5331 Author: aliguori Date: 2008-09-27 15:32:41 +0000 (Sat, 27 Sep 2008) Log Message: ----------- Allocate code gen buffer properly on FreeBSD Signed-off-by: Juergen Lock Signed-off-by: Anthony Liguori Modified Paths: -------------- trunk/exec.c Modified: trunk/exec.c =================================================================== --- trunk/exec.c 2008-09-26 21:03:37 UTC (rev 5330) +++ trunk/exec.c 2008-09-27 15:32:41 UTC (rev 5331) @@ -443,6 +443,28 @@ exit(1); } } +#elif defined(__FreeBSD__) + { + int flags; + void *addr = NULL; + flags = MAP_PRIVATE | MAP_ANONYMOUS; +#if defined(__x86_64__) + /* FreeBSD doesn't have MAP_32BIT, use MAP_FIXED and assume + * 0x40000000 is free */ + flags |= MAP_FIXED; + addr = (void *)0x40000000; + /* Cannot map more than that */ + if (code_gen_buffer_size > (800 * 1024 * 1024)) + code_gen_buffer_size = (800 * 1024 * 1024); +#endif + code_gen_buffer = mmap(addr, code_gen_buffer_size, + PROT_WRITE | PROT_READ | PROT_EXEC, + flags, -1, 0); + if (code_gen_buffer == MAP_FAILED) { + fprintf(stderr, "Could not allocate dynamic translator buffer\n"); + exit(1); + } + } #else code_gen_buffer = qemu_malloc(code_gen_buffer_size); if (!code_gen_buffer) {