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.


Merge branch 'devel' of palacios@newskysaw.cs.northwestern.edu:/home/palacios/palacio...
Peter Dinda [Fri, 1 Apr 2011 16:40:14 +0000 (11:40 -0500)]
palacios/include/palacios/vmx_lowlevel.h
palacios/src/palacios/vmcs.c
palacios/src/palacios/vmx.c
palacios/src/palacios/vmx_ctrl_regs.c

index 01bca79..6db9f17 100644 (file)
@@ -155,6 +155,8 @@ static inline int vmcs_read(vmcs_field_t vmcs_field, void * dst) {
         case 8:
             *((uint64_t*)dst) = (uint64_t)val;
             break;
+       default:
+            return -1;
     }
 
 
index 154bed8..0b874fd 100644 (file)
@@ -851,6 +851,7 @@ int v3_vmcs_get_field_len(vmcs_field_t field) {
         case VMCS_GUEST_DBG_CTL_HIGH:
         case VMCS_GUEST_PERF_GLOBAL_CTRL_HIGH:
        case VMCS_HOST_PERF_GLOBAL_CTRL_HIGH:
+       case VMCS_GUEST_EFER_HIGH:
             return 4;
 
             /* Natural Width Control Fields */
@@ -914,10 +915,11 @@ int v3_vmcs_get_field_len(vmcs_field_t field) {
         case VMCS_HOST_SYSENTER_EIP:
         case VMCS_HOST_RSP:
         case VMCS_HOST_RIP:
+       case VMCS_GUEST_EFER:
             return sizeof(addr_t);
 
         default:
-           PrintError("Invalid VMCS field\n");
+           PrintError("Invalid VMCS field: 0x%x\n", field);
             return -1;
     }
 }
index a773191..80f3350 100644 (file)
@@ -770,7 +770,7 @@ int v3_vmx_enter(struct guest_info * info) {
 #endif
 
     // Handle any exits needed still in the atomic section
-    if (v3_handle_vmx_exit(info, &exit_info) == -1) {
+    if (v3_handle_atomic_vmx_exit(info, &exit_info) == -1) {
        PrintError("Error in atomic VMX exit handler\n");
        return -1;
     }
index afa0fb8..685de90 100644 (file)
@@ -161,7 +161,7 @@ static int handle_mov_to_cr0(struct guest_info * info, v3_reg_t * new_cr0, struc
             return -1;
         }
        
-        if (vmx_info->state == VMXASSIST_ENABLED) {
+        if (vmx_info->assist_state == VMXASSIST_ENABLED) {
             PrintDebug("Loading VMXASSIST at RIP: %p\n", (void *)(addr_t)info->rip);
         } else {
             PrintDebug("Leaving VMXASSIST and entering protected mode at RIP: %p\n",