From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:46065) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UhVrJ-0001uv-3E for qemu-devel@nongnu.org; Tue, 28 May 2013 22:11:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UhVrI-0001k1-AH for qemu-devel@nongnu.org; Tue, 28 May 2013 22:11:25 -0400 Received: from mail-ie0-x22c.google.com ([2607:f8b0:4001:c03::22c]:64423) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UhVrI-0001jx-4u for qemu-devel@nongnu.org; Tue, 28 May 2013 22:11:24 -0400 Received: by mail-ie0-f172.google.com with SMTP id 17so2795241iea.3 for ; Tue, 28 May 2013 19:11:23 -0700 (PDT) From: Liu Ping Fan Date: Wed, 29 May 2013 10:11:04 +0800 Message-Id: <1369793469-30883-2-git-send-email-qemulist@gmail.com> In-Reply-To: <1369793469-30883-1-git-send-email-qemulist@gmail.com> References: <1369793469-30883-1-git-send-email-qemulist@gmail.com> Subject: [Qemu-devel] [PATCH v1 1/6] mem: change variable to macro List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Anthony Liguori From: Liu Ping Fan The secions like phys_section_unassigned always has fixed address in phys_sections, make them declared as macro, so we can use them when having more than one phys_sections, ie, more than one dispatch context. Signed-off-by: Liu Ping Fan --- exec.c | 22 ++++++++++++++-------- 1 files changed, 14 insertions(+), 8 deletions(-) diff --git a/exec.c b/exec.c index 281c007..6934c2d 100644 --- a/exec.c +++ b/exec.c @@ -82,10 +82,10 @@ int use_icount; static MemoryRegionSection *phys_sections; static unsigned phys_sections_nb, phys_sections_nb_alloc; -static uint16_t phys_section_unassigned; -static uint16_t phys_section_notdirty; -static uint16_t phys_section_rom; -static uint16_t phys_section_watch; +#define phys_section_unassigned 0 +#define phys_section_notdirty 1 +#define phys_section_rom 2 +#define phys_section_watch 3 /* Simple allocator for PhysPageEntry nodes */ static PhysPageEntry (*phys_map_nodes)[L2_SIZE]; @@ -1747,11 +1747,17 @@ static void mem_begin(MemoryListener *listener) static void core_begin(MemoryListener *listener) { + uint16_t n; + phys_sections_clear(); - phys_section_unassigned = dummy_section(&io_mem_unassigned); - phys_section_notdirty = dummy_section(&io_mem_notdirty); - phys_section_rom = dummy_section(&io_mem_rom); - phys_section_watch = dummy_section(&io_mem_watch); + n = dummy_section(&io_mem_unassigned); + assert(phys_section_unassigned == n); + n = dummy_section(&io_mem_notdirty); + assert(phys_section_notdirty == n); + n = dummy_section(&io_mem_rom); + assert(phys_section_rom == n); + n = dummy_section(&io_mem_watch); + assert(phys_section_watch == n); } static void tcg_commit(MemoryListener *listener) -- 1.7.4.4