From patchwork Fri Oct 31 04:59:21 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeokYeon Hwang X-Patchwork-Id: 405449 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3650114008E for ; Sat, 1 Nov 2014 04:41:20 +1100 (AEDT) Received: from localhost ([::1]:40078 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XkGCM-0007Z3-2L for incoming@patchwork.ozlabs.org; Fri, 31 Oct 2014 13:41:18 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45762) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XkDvl-0007lc-VF for qemu-devel@nongnu.org; Fri, 31 Oct 2014 11:17:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Xk4J4-0003ta-FC for qemu-devel@nongnu.org; Fri, 31 Oct 2014 00:59:33 -0400 Received: from mailout1.samsung.com ([203.254.224.24]:35958) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xk4J4-0003rI-5R for qemu-devel@nongnu.org; Fri, 31 Oct 2014 00:59:26 -0400 Received: from epcpsbgm2.samsung.com (epcpsbgm2 [203.254.230.27]) by mailout1.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0NEA004BELUZW930@mailout1.samsung.com> for qemu-devel@nongnu.org; Fri, 31 Oct 2014 13:59:23 +0900 (KST) X-AuditID: cbfee61b-f79d76d0000024d6-d5-5453172b8663 Received: from epmmp2 ( [203.254.227.17]) by epcpsbgm2.samsung.com (EPCPMTA) with SMTP id FE.80.09430.B2713545; Fri, 31 Oct 2014 13:59:23 +0900 (KST) Received: from localhost.localdomain ([182.198.1.3]) by mmp2.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTPA id <0NEA006APLUZMND0@mmp2.samsung.com>; Fri, 31 Oct 2014 13:59:23 +0900 (KST) From: SeokYeon Hwang To: qemu-devel@nongnu.org Date: Fri, 31 Oct 2014 13:59:21 +0900 Message-id: <1414731561-13391-1-git-send-email-syeon.hwang@samsung.com> X-Mailer: git-send-email 2.1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrCJMWRmVeSWpSXmKPExsVy+t9jQV1t8eAQg2vtchbHe3ewWNxYf5rN gcnjybXNTB59W1YxBjBFcdmkpOZklqUW6dslcGV8/rqZpeCLQMWWe5YNjI28XYycHBICJhI/ Xh1igrDFJC7cW8/WxcjFISQwnVHi1sRrTBBOC5PEt/eN7CBVbAJ6EhuWHWAEsUUEJCV+d51m BrGZBXQkVu97zwJiCwvYSOx/dZYVxGYRUJV4vW0K2AZeAXeJM/1XmSG2yUls2P2fcQIj9wJG hlWMoqkFyQXFSem5RnrFibnFpXnpesn5uZsYwX59Jr2DcVWDxSFGAQ5GJR7eBceDQoRYE8uK K3MPMUpwMCuJ8E56CxTiTUmsrEotyo8vKs1JLT7EKM3BoiTOe7DVOlBIID2xJDU7NbUgtQgm y8TBKdXA6GBzdldQXgJfi2fcFuaUsHObp3xRnb5Vu/D6BYuam8opLx1XbP90/9XrvN7Ln0XY zWUCVtw6wdErz+2z0C5hX7uidsDzHSeny2Tp12txPE/hsnnh+md+j8iViPZ7N5jtE1bapuYu XKT1rsNS6Ees85NND4s3adv+Df3Ok3z7W9yFC2ZhOjJblFiKMxINtZiLihMB2fllVecBAAA= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 203.254.224.24 Cc: SeokYeon Hwang Subject: [Qemu-devel] [PATCH] translate-all: wrapped map_exec() in #ifdef X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Moved map_exec() and wrapped it in #ifdef to avoid "-Wunused-function" on clang 3.4 or later. Signed-off-by: SeokYeon Hwang --- translate-all.c | 52 +++++++++++++++++++++++++++------------------------- 1 file changed, 27 insertions(+), 25 deletions(-) diff --git a/translate-all.c b/translate-all.c index ba5c840..e64ebf9 100644 --- a/translate-all.c +++ b/translate-all.c @@ -269,31 +269,6 @@ bool cpu_restore_state(CPUState *cpu, uintptr_t retaddr) return false; } -#ifdef _WIN32 -static inline void map_exec(void *addr, long size) -{ - DWORD old_protect; - VirtualProtect(addr, size, - PAGE_EXECUTE_READWRITE, &old_protect); -} -#else -static inline void map_exec(void *addr, long size) -{ - unsigned long start, end, page_size; - - page_size = getpagesize(); - start = (unsigned long)addr; - start &= ~(page_size - 1); - - end = (unsigned long)addr + size; - end += page_size - 1; - end &= ~(page_size - 1); - - mprotect((void *)start, end - start, - PROT_READ | PROT_WRITE | PROT_EXEC); -} -#endif - void page_size_init(void) { /* NOTE: we can always suppose that qemu_host_page_size >= @@ -536,6 +511,33 @@ static inline void *split_cross_256mb(void *buf1, size_t size1) } #endif +#ifndef USE_MMAP +# ifdef _WIN32 +static inline void map_exec(void *addr, long size) +{ + DWORD old_protect; + VirtualProtect(addr, size, + PAGE_EXECUTE_READWRITE, &old_protect); +} +# else +static inline void map_exec(void *addr, long size) +{ + unsigned long start, end, page_size; + + page_size = getpagesize(); + start = (unsigned long)addr; + start &= ~(page_size - 1); + + end = (unsigned long)addr + size; + end += page_size - 1; + end &= ~(page_size - 1); + + mprotect((void *)start, end - start, + PROT_READ | PROT_WRITE | PROT_EXEC); +} +# endif +#endif + #ifdef USE_STATIC_CODE_GEN_BUFFER static uint8_t static_code_gen_buffer[DEFAULT_CODE_GEN_BUFFER_SIZE] __attribute__((aligned(CODE_GEN_ALIGN)));