X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Finclude%2Fpalacios%2Fvmx.h;h=125ee22e86021982fa4013f7b9201be430f0d626;hb=3716aafce2de9e12ed62bee37968bfc0e0eaed44;hp=06e4df2644c6fe636d9d2d704e6d976ae55969dc;hpb=dff987790423249e95487f8754ebe0fbee8dbbdd;p=palacios.git diff --git a/palacios/include/palacios/vmx.h b/palacios/include/palacios/vmx.h index 06e4df2..125ee22 100644 --- a/palacios/include/palacios/vmx.h +++ b/palacios/include/palacios/vmx.h @@ -150,7 +150,8 @@ struct vmx_entry_ctrls { typedef enum { VMXASSIST_DISABLED, - VMXASSIST_ENABLED + VMXASSIST_OFF, + VMXASSIST_ON } vmxassist_state_t; typedef enum { @@ -188,6 +189,29 @@ struct vmcs_host_state { }; +struct vmcs_msr_save_area { + union { + struct vmcs_msr_entry guest_msrs[4]; + struct { + struct vmcs_msr_entry guest_star; + struct vmcs_msr_entry guest_lstar; + struct vmcs_msr_entry guest_fmask; + struct vmcs_msr_entry guest_kern_gs; + } __attribute__((packed)); + } __attribute__((packed)); + + union { + struct vmcs_msr_entry host_msrs[4]; + struct { + struct vmcs_msr_entry host_star; + struct vmcs_msr_entry host_lstar; + struct vmcs_msr_entry host_fmask; + struct vmcs_msr_entry host_kern_gs; + } __attribute__((packed)); + } __attribute__((packed)); + +} __attribute__((packed)); + struct vmx_data { vmx_state_t state; @@ -210,7 +234,8 @@ struct vmx_data { struct vmx_exception_bitmap excp_bmap; - void * msr_area; + addr_t msr_area_paddr; + struct vmcs_msr_save_area * msr_area; }; int v3_is_vmx_capable();