qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 15/23] exec.c: initialize memory map


From: Anthony Liguori
Subject: Re: [Qemu-devel] [PATCH 15/23] exec.c: initialize memory map
Date: Mon, 25 Jul 2011 14:17:34 -0500
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110516 Lightning/1.0b2 Thunderbird/3.1.10

On 07/25/2011 09:02 AM, Avi Kivity wrote:
Allocate the root memory region and initialize it.

Signed-off-by: Avi Kivity<address@hidden>
---
  exec.c |   19 +++++++++++++++++++
  1 files changed, 19 insertions(+), 0 deletions(-)

diff --git a/exec.c b/exec.c
index 2160ded..d51502f 100644
--- a/exec.c
+++ b/exec.c
@@ -33,6 +33,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<qemu.h>
  #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
@@ -109,6 +111,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;
@@ -197,6 +202,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];
@@ -571,6 +577,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)
@@ -3807,6 +3814,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);

Would be nice to #define MEM_REG_SIZE_ALL UINT64_MAX

Without reading the docs, it seems like an odd bit of code otherwise.

Regards,

Anthony Liguori

+    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) */




reply via email to

[Prev in Thread] Current Thread [Next in Thread]