Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


more clean up changes
Jack Lange [Tue, 22 Jul 2008 22:51:39 +0000 (22:51 +0000)]
palacios/build/Makefile
palacios/include/palacios/vmm_intr.h
palacios/include/palacios/vmm_io.h
palacios/src/palacios/vmm_config.c

index 0462485..0875737 100644 (file)
@@ -1,6 +1,6 @@
 # Makefile for GeekOS kernel, userspace, and tools
 # Copyright (c) 2004,2005 David H. Hovemeyer <daveho@cs.umd.edu>
-# $Revision: 1.50 $
+# $Revision: 1.51 $
 
 # This is free software.  You are permitted to use,
 # redistribute, and modify it as specified in the file "COPYING".
@@ -66,7 +66,7 @@ endif
 ifeq ($(DEBUG_PIC),1)
 DEBUG_SECTIONS := $(DEBUG_SECTIONS) -DDEBUG_PIC
 endif
-ifeq ($(DEBUG_DEBUG_PIT),1)
+ifeq ($(DEBUG_PIT),1)
 DEBUG_SECTIONS := $(DEBUG_SECTIONS) -DDEBUG_PIT
 endif
 ifeq ($(DEBUG_NVRAM),1)
index ec7a8c9..8aa4ec7 100644 (file)
@@ -32,11 +32,30 @@ typedef enum {INVALID_INTR, EXTERNAL_IRQ, NMI, EXCEPTION, SOFTWARE_INTR, VIRTUAL
 
 struct guest_info;
 
+/* We need a way to allow the APIC/PIC to decide when they are supposed to receive interrupts...
+ * Maybe a notification call when they have been turned on, to deliver irqs to them...
+ * We can rehook the guest raise_irq op, to the appropriate controller
+ */
 
 
+struct vm_intr {
 
+  /* We need to rework the exception state, to handle stacking */
+  uint_t excp_pending;
+  uint_t excp_num;
+  uint_t excp_error_code_valid : 1;
+  uint_t excp_error_code;
+  
+  struct intr_ctrl_ops * controller;
+  void * controller_state;
 
+  /* some way to get the [A]PIC intr */
 
+};
+
+
+
+void init_interrupt_state(struct guest_info * info);
 
 
 int v3_raise_irq(struct guest_info * info, int irq);
@@ -72,35 +91,16 @@ int end_irq(struct vm_intr * intr, int irq);
 
 
 
-void init_interrupt_state(struct guest_info * info);
-
-/* We need a way to allow the APIC/PIC to decide when they are supposed to receive interrupts...
- * Maybe a notification call when they have been turned on, to deliver irqs to them...
- * We can rehook the guest raise_irq op, to the appropriate controller
- */
 
 
-struct vm_intr {
 
-  /* We need to rework the exception state, to handle stacking */
-  uint_t excp_pending;
-  uint_t excp_num;
-  uint_t excp_error_code_valid : 1;
-  uint_t excp_error_code;
-  
-  struct intr_ctrl_ops * controller;
-  void * controller_state;
-
-  /* some way to get the [A]PIC intr */
-
-};
 
 
 struct vmm_intr_state;
 
 int v3_hook_irq(uint_t irq,
-                void (*handler)(struct vmm_intr_state *state),
-                void  *opaque);
+               void (*handler)(struct vmm_intr_state *state),
+               void  *opaque);
 
 int v3_hook_irq_for_guest_injection(struct guest_info *info, int irq);
 
index 601bffe..6e85f7e 100644 (file)
@@ -8,14 +8,6 @@
 
 
 struct guest_info;
-struct vmm_io_hook;
-
-struct vmm_io_map {
-  uint_t num_ports;
-  struct vmm_io_hook * head;
-
-};
-
 
 int v3_unhook_io_port(struct guest_info * info, uint_t port);
 
@@ -26,12 +18,22 @@ int v3_hook_io_port(struct guest_info * info, uint_t port,
                    int (*write)(ushort_t port, void * src, uint_t length, void * priv_data), 
                    void * priv_data);
 
-void init_vmm_io_map(struct guest_info * info);
+
 
 
 #ifdef __V3VEE__
 
 
+struct vmm_io_hook;
+
+struct vmm_io_map {
+  uint_t num_ports;
+  struct vmm_io_hook * head;
+
+};
+
+
+void init_vmm_io_map(struct guest_info * info);
 
 // FOREACH_IO_HOOK(vmm_io_map_t * io_map, vmm_io_hook_t * io_hook)
 #define FOREACH_IO_HOOK(io_map, io_hook) for (io_hook = (io_map).head; io_hook != NULL; io_hook = (io_hook)->next)
index 62f4de5..dfb7974 100644 (file)
@@ -16,11 +16,10 @@ int config_guest(struct guest_info * info, void * config_ptr) {
   struct guest_mem_layout * layout = (struct guest_mem_layout *)config_ptr;
   extern v3_cpu_arch_t v3_cpu_type;
   void * region_start;
+  int i;
 
-  PrintDebug("Time Init\n");
+  
   v3_init_time(info);
-
-  PrintDebug("Shadow map Init\n");
   init_shadow_map(info);
   
   if (v3_cpu_type == V3_SVM_REV3_CPU) {
@@ -39,10 +38,7 @@ int config_guest(struct guest_info * info, void * config_ptr) {
   
   dev_mgr_init(info);
   
-  
-  int i;
-
-  
   //     SerialPrint("Guest Mem Dump at 0x%x\n", 0x100000);
   //PrintDebugMemDump((unsigned char *)(0x100000), 261 * 1024);
   if (layout->magic != MAGIC_CODE) {