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.


Addition of basic multiboot functionality plus refactor of HVM
[palacios.git] / palacios / include / palacios / vm_guest.h
index bc12edc..e646c86 100644 (file)
 struct v3_sym_core_state;
 #endif
 
+#ifdef V3_CONFIG_MEM_TRACK
+#include <palacios/vmm_mem_track.h>
+#endif
+
+#ifdef V3_CONFIG_MULTIBOOT
+#include <palacios/vmm_multiboot.h>
+#endif
+
+#ifdef V3_CONFIG_HVM
+#include <palacios/vmm_hvm.h>
+#endif
+
 
 
 #include <palacios/vmm_config.h>
@@ -147,6 +159,15 @@ struct guest_info {
     struct v3_core_pwrstat_telemetry pwrstat_telem;
 #endif
 
+#ifdef V3_CONFIG_MEM_TRACK
+    struct v3_core_mem_track memtrack_state;
+#endif
+
+#ifdef V3_CONFIG_HVM
+    struct v3_core_hvm  hvm_state;
+#endif
+
+
     /* struct v3_core_dev_mgr core_dev_mgr; */
 
     void * decoder_state;
@@ -182,6 +203,9 @@ struct v3_vm_info {
     v3_vm_class_t vm_class;
     struct v3_fw_cfg_state fw_cfg_state;
 
+    // This is always the total RAM (addresses 0...mem_size)
+    // in the VM.  
+    // With an HVM, this is partitioned as per hvm_state
     addr_t mem_size; /* In bytes for now */
     uint32_t mem_align;
     struct v3_mem_map mem_map;
@@ -240,11 +264,26 @@ struct v3_vm_info {
     struct v3_telemetry_state telemetry;
 #endif
 
+#ifdef V3_CONFIG_MEM_TRACK
+    struct v3_vm_mem_track memtrack_state;
+#endif
+
+#ifdef V3_CONFIG_MULTIBOOT
+    struct v3_vm_multiboot  mb_state;
+#endif
+
+#ifdef V3_CONFIG_HVM
+    struct v3_vm_hvm  hvm_state;
+#endif
+
+
     uint64_t yield_cycle_period;  
 
 
     void * host_priv_data;
 
+    // This is always the total number of vcores in the VM 
+    // With an HVM, these are partitioned as per hvm_state
     int num_cores;
 
     int avail_cores; // Available logical cores