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.


is patch adds a function v3_print_guest_state_all that calls v3_print_guest_state...
[palacios.git] / palacios / include / palacios / vm_guest.h
index 7d82660..b435390 100644 (file)
@@ -56,6 +56,8 @@ struct v3_intr_state;
 
 /* per-core state */
 struct guest_info {
+    char exec_name[256];
+    
     uint64_t rip;
 
     uint_t cpl;
@@ -114,9 +116,13 @@ struct guest_info {
     struct v3_sym_core_state sym_core_state;
 #endif
 
+    /* Per-core config tree data. */
+    v3_cfg_tree_t * core_cfg_data;
 
     struct v3_vm_info * vm_info;
 
+    v3_core_operating_mode_t core_run_state;
+
     /* the logical cpu on which this core runs */
     uint32_t cpu_id;
 };
@@ -125,6 +131,8 @@ struct guest_info {
 
 /* shared state across cores */
 struct v3_vm_info {
+    char name[128];
+
     v3_vm_class_t vm_class;
 
     addr_t mem_size; /* In bytes for now */
@@ -169,17 +177,21 @@ struct v3_vm_info {
 
     uint64_t yield_cycle_period;  
 
-    int num_cores;
-    struct guest_info cores[0];
-
 
     void * host_priv_data;
 
+    int num_cores;
+
+    // JRL: This MUST be the last entry...
+    struct guest_info cores[0];
 };
 
 int v3_init_vm(struct v3_vm_info * vm);
 int v3_init_core(struct guest_info * core);
 
+int v3_free_vm_internal(struct v3_vm_info * vm);
+int v3_free_core(struct guest_info * core);
+
 
 uint_t v3_get_addr_width(struct guest_info * info);
 v3_cpu_mode_t v3_get_vm_cpu_mode(struct guest_info * info);
@@ -202,4 +214,6 @@ void v3_print_stack(struct guest_info * info);
 
 #endif /* ! __V3VEE__ */
 
+void v3_print_guest_state_all(struct v3_vm_info * vm);
+
 #endif