From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:48678) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QbBla-0005ha-Vb for qemu-devel@nongnu.org; Mon, 27 Jun 2011 09:22:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QbBlW-0002FJ-F8 for qemu-devel@nongnu.org; Mon, 27 Jun 2011 09:22:17 -0400 Received: from mx1.redhat.com ([209.132.183.28]:17433) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QbBlV-0002Da-8G for qemu-devel@nongnu.org; Mon, 27 Jun 2011 09:22:13 -0400 From: Avi Kivity Date: Mon, 27 Jun 2011 16:21:52 +0300 Message-Id: <1309180927-19003-6-git-send-email-avi@redhat.com> In-Reply-To: <1309180927-19003-1-git-send-email-avi@redhat.com> References: <1309180927-19003-1-git-send-email-avi@redhat.com> Subject: [Qemu-devel] [RFC v2 05/20] exec.c: initialize memory map List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: kvm@vger.kernel.org Allocate the root memory region and initialize it. Signed-off-by: Avi Kivity --- exec.c | 19 +++++++++++++++++++ 1 files changed, 19 insertions(+), 0 deletions(-) diff --git a/exec.c b/exec.c index b03b5be..9b894b9 100644 --- a/exec.c +++ b/exec.c @@ -34,6 +34,8 @@ #include "kvm.h" #include "hw/xen.h" #include "qemu-timer.h" +#include "memory.h" +#include "exec-memory.h" #if defined(CONFIG_USER_ONLY) #include #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) @@ -110,6 +112,9 @@ int phys_ram_fd; static int in_migration; RAMList ram_list = { .blocks = QLIST_HEAD_INITIALIZER(ram_list) }; + +static MemoryRegion *system_memory; + #endif CPUState *first_cpu; @@ -198,6 +203,7 @@ typedef struct PhysPageDesc { static void *l1_phys_map[P_L1_SIZE]; static void io_mem_init(void); +static void memory_map_init(void); /* io memory support */ CPUWriteMemoryFunc *io_mem_write[IO_MEM_NB_ENTRIES][4]; @@ -572,6 +578,7 @@ void cpu_exec_init_all(unsigned long tb_size) code_gen_ptr = code_gen_buffer; page_init(); #if !defined(CONFIG_USER_ONLY) + memory_map_init(); io_mem_init(); #endif #if !defined(CONFIG_USER_ONLY) || !defined(CONFIG_USE_GUEST_BASE) @@ -3802,6 +3809,18 @@ static void io_mem_init(void) DEVICE_NATIVE_ENDIAN); } +static void memory_map_init(void) +{ + system_memory = qemu_malloc(sizeof(*system_memory)); + memory_region_init(system_memory, "system", UINT64_MAX); + set_system_memory_map(system_memory); +} + +MemoryRegion *get_system_memory(void) +{ + return system_memory; +} + #endif /* !defined(CONFIG_USER_ONLY) */ /* physical memory access (slow version, mainly for debug) */ -- 1.7.5.3