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

[Xen-devel] Re: [Qemu-devel] [PATCH V10 05/15] xen: Add xenfv machine



On 02/02/2011 08:49 AM, anthony.perard@xxxxxxxxxx wrote:
From: Anthony PERARD<anthony.perard@xxxxxxxxxx>

Introduce the Xen FV (Fully Virtualized) machine to Qemu, some more Xen
specific call will be added in further patches.

Signed-off-by: Anthony PERARD<anthony.perard@xxxxxxxxxx>
---
  hw/pc.c      |   19 +++++++++++++++++--
  hw/pc_piix.c |   21 ++++++++++++++++++++-
  hw/xen.h     |    4 ++++
  3 files changed, 41 insertions(+), 3 deletions(-)

diff --git a/hw/pc.c b/hw/pc.c
index 4dfdc0b..ab9d365 100644
--- a/hw/pc.c
+++ b/hw/pc.c
@@ -41,6 +41,7 @@
  #include "sysemu.h"
  #include "blockdev.h"
  #include "ui/qemu-spice.h"
+#include "xen.h"

  /* output Bochs bios info messages */
  //#define DEBUG_BIOS
@@ -906,7 +907,11 @@ static void pc_cpu_reset(void *opaque)
      CPUState *env = opaque;

      cpu_reset(env);
-    env->halted = !cpu_is_bsp(env);
+    if (!xen_enabled()) {
+        env->halted = !cpu_is_bsp(env);
+    } else {
+        env->halted = 1;
+    }
  }

  static CPUState *pc_new_cpu(const char *cpu_model)
@@ -940,7 +945,12 @@ void pc_cpus_init(const char *cpu_model)
  #endif
      }

-    for(i = 0; i<  smp_cpus; i++) {
+    if (!xen_enabled()) {
+        for(i = 0; i<  smp_cpus; i++) {
+            pc_new_cpu(cpu_model);
+        }
+    } else {
+        /* Xen require only one Qemu VCPU */
          pc_new_cpu(cpu_model);
      }
  }
@@ -968,6 +978,11 @@ void pc_memory_init(ram_addr_t ram_size,
      *above_4g_mem_size_p = above_4g_mem_size;
      *below_4g_mem_size_p = below_4g_mem_size;

+    if (xen_enabled()) {
+        /* Nothing to do for Xen */
+        return;
+    }
+
  #if TARGET_PHYS_ADDR_BITS == 32
      if (above_4g_mem_size>  0) {
          hw_error("To much RAM for 32-bit physical address");
diff --git a/hw/pc_piix.c b/hw/pc_piix.c
index 7b74473..0ab8907 100644
--- a/hw/pc_piix.c
+++ b/hw/pc_piix.c
@@ -36,6 +36,10 @@
  #include "sysbus.h"
  #include "arch_init.h"
  #include "blockdev.h"
+#include "xen.h"
+#ifdef CONFIG_XEN
+#  include "xen/hvm/hvm_info_table.h"
+#endif

Admittedly a nit, but isn't this a system header?

Regards,

Anthony Liguori

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.