VirtualBox

Changeset 45947 in vbox for trunk/include/VBox/vmm


Ignore:
Timestamp:
May 8, 2013 12:27:58 PM (12 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
85594
Message:

VMM: HM cleanup for CTRL, CONTROLS in symbolic names.

Location:
trunk/include/VBox/vmm
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/vmm/hm_vmx.h

    r45904 r45947  
    872872#define VMX_VMCS64_CTRL_TSC_OFFSET_HIGH                           0x2011
    873873
    874 /** Optional (VMX_VMCS_CTRL_PROC_EXEC_CONTROLS_USE_TPR_SHADOW) */
     874/** Optional (VMX_VMCS_CTRL_PROC_EXEC_USE_TPR_SHADOW) */
    875875#define VMX_VMCS64_CTRL_VAPIC_PAGEADDR_FULL                       0x2012
    876876#define VMX_VMCS64_CTRL_VAPIC_PAGEADDR_HIGH                       0x2013
     
    925925 * @{
    926926 */
    927 #define VMX_VMCS32_CTRL_PIN_EXEC_CONTROLS                       0x4000
    928 #define VMX_VMCS32_CTRL_PROC_EXEC_CONTROLS                      0x4002
     927#define VMX_VMCS32_CTRL_PIN_EXEC                                0x4000
     928#define VMX_VMCS32_CTRL_PROC_EXEC                               0x4002
    929929#define VMX_VMCS32_CTRL_EXCEPTION_BITMAP                        0x4004
    930930#define VMX_VMCS32_CTRL_PAGEFAULT_ERROR_MASK                    0x4006
    931931#define VMX_VMCS32_CTRL_PAGEFAULT_ERROR_MATCH                   0x4008
    932932#define VMX_VMCS32_CTRL_CR3_TARGET_COUNT                        0x400A
    933 #define VMX_VMCS32_CTRL_EXIT_CONTROLS                           0x400C
     933#define VMX_VMCS32_CTRL_EXIT                                    0x400C
    934934#define VMX_VMCS32_CTRL_EXIT_MSR_STORE_COUNT                    0x400E
    935935#define VMX_VMCS32_CTRL_EXIT_MSR_LOAD_COUNT                     0x4010
    936 #define VMX_VMCS32_CTRL_ENTRY_CONTROLS                          0x4012
     936#define VMX_VMCS32_CTRL_ENTRY                                   0x4012
    937937#define VMX_VMCS32_CTRL_ENTRY_MSR_LOAD_COUNT                    0x4014
    938938#define VMX_VMCS32_CTRL_ENTRY_INTERRUPTION_INFO                 0x4016
     
    940940#define VMX_VMCS32_CTRL_ENTRY_INSTR_LENGTH                      0x401A
    941941#define VMX_VMCS32_CTRL_TPR_THRESHOLD                           0x401C
    942 #define VMX_VMCS32_CTRL_PROC_EXEC_CONTROLS2                     0x401E
    943 /** @} */
    944 
    945 
    946 /** @name VMX_VMCS_CTRL_PIN_EXEC_CONTROLS
     942#define VMX_VMCS32_CTRL_PROC_EXEC2                              0x401E
     943/** @} */
     944
     945
     946/** @name VMX_VMCS_CTRL_PIN_EXEC
    947947 * @{
    948948 */
    949949/** External interrupts cause VM exits if set; otherwise dispatched through the guest's IDT. */
    950 #define VMX_VMCS_CTRL_PIN_EXEC_CONTROLS_EXT_INT_EXIT            RT_BIT(0)
     950#define VMX_VMCS_CTRL_PIN_EXEC_EXT_INT_EXIT            RT_BIT(0)
    951951/** Non-maskable interrupts cause VM exits if set; otherwise dispatched through the guest's IDT. */
    952 #define VMX_VMCS_CTRL_PIN_EXEC_CONTROLS_NMI_EXIT                RT_BIT(3)
     952#define VMX_VMCS_CTRL_PIN_EXEC_NMI_EXIT                RT_BIT(3)
    953953/** Virtual NMIs. */
    954 #define VMX_VMCS_CTRL_PIN_EXEC_CONTROLS_VIRTUAL_NMI             RT_BIT(5)
     954#define VMX_VMCS_CTRL_PIN_EXEC_VIRTUAL_NMI             RT_BIT(5)
    955955/** Activate VMX preemption timer. */
    956 #define VMX_VMCS_CTRL_PIN_EXEC_CONTROLS_PREEMPT_TIMER           RT_BIT(6)
     956#define VMX_VMCS_CTRL_PIN_EXEC_PREEMPT_TIMER           RT_BIT(6)
    957957/* All other bits are reserved and must be set according to MSR IA32_VMX_PROCBASED_CTLS. */
    958958/** @} */
    959959
    960 /** @name VMX_VMCS_CTRL_PROC_EXEC_CONTROLS
     960/** @name VMX_VMCS_CTRL_PROC_EXEC
    961961 * @{
    962962 */
    963963/** VM Exit as soon as RFLAGS.IF=1 and no blocking is active. */
    964 #define VMX_VMCS_CTRL_PROC_EXEC_CONTROLS_INT_WINDOW_EXIT        RT_BIT(2)
     964#define VMX_VMCS_CTRL_PROC_EXEC_INT_WINDOW_EXIT        RT_BIT(2)
    965965/** Use timestamp counter offset. */
    966 #define VMX_VMCS_CTRL_PROC_EXEC_CONTROLS_USE_TSC_OFFSETTING     RT_BIT(3)
     966#define VMX_VMCS_CTRL_PROC_EXEC_USE_TSC_OFFSETTING     RT_BIT(3)
    967967/** VM Exit when executing the HLT instruction. */
    968 #define VMX_VMCS_CTRL_PROC_EXEC_CONTROLS_HLT_EXIT               RT_BIT(7)
     968#define VMX_VMCS_CTRL_PROC_EXEC_HLT_EXIT               RT_BIT(7)
    969969/** VM Exit when executing the INVLPG instruction. */
    970 #define VMX_VMCS_CTRL_PROC_EXEC_CONTROLS_INVLPG_EXIT            RT_BIT(9)
     970#define VMX_VMCS_CTRL_PROC_EXEC_INVLPG_EXIT            RT_BIT(9)
    971971/** VM Exit when executing the MWAIT instruction. */
    972 #define VMX_VMCS_CTRL_PROC_EXEC_CONTROLS_MWAIT_EXIT             RT_BIT(10)
     972#define VMX_VMCS_CTRL_PROC_EXEC_MWAIT_EXIT             RT_BIT(10)
    973973/** VM Exit when executing the RDPMC instruction. */
    974 #define VMX_VMCS_CTRL_PROC_EXEC_CONTROLS_RDPMC_EXIT             RT_BIT(11)
     974#define VMX_VMCS_CTRL_PROC_EXEC_RDPMC_EXIT             RT_BIT(11)
    975975/** VM Exit when executing the RDTSC/RDTSCP instruction. */
    976 #define VMX_VMCS_CTRL_PROC_EXEC_CONTROLS_RDTSC_EXIT             RT_BIT(12)
     976#define VMX_VMCS_CTRL_PROC_EXEC_RDTSC_EXIT             RT_BIT(12)
    977977/** VM Exit when executing the MOV to CR3 instruction. (forced to 1 on the 'first' VT-x capable CPUs; this actually includes the newest Nehalem CPUs) */
    978 #define VMX_VMCS_CTRL_PROC_EXEC_CONTROLS_CR3_LOAD_EXIT          RT_BIT(15)
     978#define VMX_VMCS_CTRL_PROC_EXEC_CR3_LOAD_EXIT          RT_BIT(15)
    979979/** VM Exit when executing the MOV from CR3 instruction. (forced to 1 on the 'first' VT-x capable CPUs; this actually includes the newest Nehalem CPUs) */
    980 #define VMX_VMCS_CTRL_PROC_EXEC_CONTROLS_CR3_STORE_EXIT         RT_BIT(16)
     980#define VMX_VMCS_CTRL_PROC_EXEC_CR3_STORE_EXIT         RT_BIT(16)
    981981/** VM Exit on CR8 loads. */
    982 #define VMX_VMCS_CTRL_PROC_EXEC_CONTROLS_CR8_LOAD_EXIT          RT_BIT(19)
     982#define VMX_VMCS_CTRL_PROC_EXEC_CR8_LOAD_EXIT          RT_BIT(19)
    983983/** VM Exit on CR8 stores. */
    984 #define VMX_VMCS_CTRL_PROC_EXEC_CONTROLS_CR8_STORE_EXIT         RT_BIT(20)
     984#define VMX_VMCS_CTRL_PROC_EXEC_CR8_STORE_EXIT         RT_BIT(20)
    985985/** Use TPR shadow. */
    986 #define VMX_VMCS_CTRL_PROC_EXEC_CONTROLS_USE_TPR_SHADOW         RT_BIT(21)
     986#define VMX_VMCS_CTRL_PROC_EXEC_USE_TPR_SHADOW         RT_BIT(21)
    987987/** VM Exit when virtual nmi blocking is disabled. */
    988 #define VMX_VMCS_CTRL_PROC_EXEC_CONTROLS_NMI_WINDOW_EXIT        RT_BIT(22)
     988#define VMX_VMCS_CTRL_PROC_EXEC_NMI_WINDOW_EXIT        RT_BIT(22)
    989989/** VM Exit when executing a MOV DRx instruction. */
    990 #define VMX_VMCS_CTRL_PROC_EXEC_CONTROLS_MOV_DR_EXIT            RT_BIT(23)
     990#define VMX_VMCS_CTRL_PROC_EXEC_MOV_DR_EXIT            RT_BIT(23)
    991991/** VM Exit when executing IO instructions. */
    992 #define VMX_VMCS_CTRL_PROC_EXEC_CONTROLS_UNCOND_IO_EXIT         RT_BIT(24)
     992#define VMX_VMCS_CTRL_PROC_EXEC_UNCOND_IO_EXIT         RT_BIT(24)
    993993/** Use IO bitmaps. */
    994 #define VMX_VMCS_CTRL_PROC_EXEC_CONTROLS_USE_IO_BITMAPS         RT_BIT(25)
     994#define VMX_VMCS_CTRL_PROC_EXEC_USE_IO_BITMAPS         RT_BIT(25)
    995995/** Monitor trap flag. */
    996 #define VMX_VMCS_CTRL_PROC_EXEC_CONTROLS_MONITOR_TRAP_FLAG      RT_BIT(27)
     996#define VMX_VMCS_CTRL_PROC_EXEC_MONITOR_TRAP_FLAG      RT_BIT(27)
    997997/** Use MSR bitmaps. */
    998 #define VMX_VMCS_CTRL_PROC_EXEC_CONTROLS_USE_MSR_BITMAPS        RT_BIT(28)
     998#define VMX_VMCS_CTRL_PROC_EXEC_USE_MSR_BITMAPS        RT_BIT(28)
    999999/** VM Exit when executing the MONITOR instruction. */
    1000 #define VMX_VMCS_CTRL_PROC_EXEC_CONTROLS_MONITOR_EXIT           RT_BIT(29)
     1000#define VMX_VMCS_CTRL_PROC_EXEC_MONITOR_EXIT           RT_BIT(29)
    10011001/** VM Exit when executing the PAUSE instruction. */
    1002 #define VMX_VMCS_CTRL_PROC_EXEC_CONTROLS_PAUSE_EXIT             RT_BIT(30)
     1002#define VMX_VMCS_CTRL_PROC_EXEC_PAUSE_EXIT             RT_BIT(30)
    10031003/** Determines whether the secondary processor based VM-execution controls are used. */
    10041004#define VMX_VMCS_CTRL_PROC_EXEC_USE_SECONDARY_EXEC_CTRL         RT_BIT(31)
    10051005/** @} */
    10061006
    1007 /** @name VMX_VMCS_CTRL_PROC_EXEC_CONTROLS2
     1007/** @name VMX_VMCS_CTRL_PROC_EXEC2
    10081008 * @{
    10091009 */
     
    10351035
    10361036
    1037 /** @name VMX_VMCS_CTRL_ENTRY_CONTROLS
     1037/** @name VMX_VMCS_CTRL_ENTRY
    10381038 * @{
    10391039 */
    10401040/** Load guest debug controls (dr7 & IA32_DEBUGCTL_MSR) (forced to 1 on the 'first' VT-x capable CPUs; this actually includes the newest Nehalem CPUs) */
    1041 #define VMX_VMCS_CTRL_ENTRY_CONTROLS_LOAD_DEBUG                 RT_BIT(2)
     1041#define VMX_VMCS_CTRL_ENTRY_LOAD_DEBUG                 RT_BIT(2)
    10421042/** 64 bits guest mode. Must be 0 for CPUs that don't support AMD64. */
    1043 #define VMX_VMCS_CTRL_ENTRY_CONTROLS_IA32E_MODE_GUEST           RT_BIT(9)
     1043#define VMX_VMCS_CTRL_ENTRY_IA32E_MODE_GUEST           RT_BIT(9)
    10441044/** In SMM mode after VM-entry. */
    1045 #define VMX_VMCS_CTRL_ENTRY_CONTROLS_ENTRY_SMM                  RT_BIT(10)
     1045#define VMX_VMCS_CTRL_ENTRY_ENTRY_SMM                  RT_BIT(10)
    10461046/** Disable dual treatment of SMI and SMM; must be zero for VM-entry outside of SMM. */
    1047 #define VMX_VMCS_CTRL_ENTRY_CONTROLS_DEACTIVATE_DUALMON         RT_BIT(11)
     1047#define VMX_VMCS_CTRL_ENTRY_DEACTIVATE_DUALMON         RT_BIT(11)
    10481048/** This control determines whether the guest IA32_PERF_GLOBAL_CTRL MSR is loaded on VM entry. */
    1049 #define VMX_VMCS_CTRL_ENTRY_CONTROLS_LOAD_GUEST_PERF_MSR        RT_BIT(13)
     1049#define VMX_VMCS_CTRL_ENTRY_LOAD_GUEST_PERF_MSR        RT_BIT(13)
    10501050/** This control determines whether the guest IA32_PAT MSR is loaded on VM entry. */
    1051 #define VMX_VMCS_CTRL_ENTRY_CONTROLS_LOAD_GUEST_PAT_MSR         RT_BIT(14)
     1051#define VMX_VMCS_CTRL_ENTRY_LOAD_GUEST_PAT_MSR         RT_BIT(14)
    10521052/** This control determines whether the guest IA32_EFER MSR is loaded on VM entry. */
    1053 #define VMX_VMCS_CTRL_ENTRY_CONTROLS_LOAD_GUEST_EFER_MSR        RT_BIT(15)
    1054 /** @} */
    1055 
    1056 
    1057 /** @name VMX_VMCS_CTRL_EXIT_CONTROLS
     1053#define VMX_VMCS_CTRL_ENTRY_LOAD_GUEST_EFER_MSR        RT_BIT(15)
     1054/** @} */
     1055
     1056
     1057/** @name VMX_VMCS_CTRL_EXIT
    10581058 * @{
    10591059 */
    10601060/** Save guest debug controls (dr7 & IA32_DEBUGCTL_MSR) (forced to 1 on the 'first' VT-x capable CPUs; this actually includes the newest Nehalem CPUs) */
    1061 #define VMX_VMCS_CTRL_EXIT_CONTROLS_SAVE_DEBUG                  RT_BIT(2)
     1061#define VMX_VMCS_CTRL_EXIT_SAVE_DEBUG                  RT_BIT(2)
    10621062/** Return to long mode after a VM-exit. */
    1063 #define VMX_VMCS_CTRL_EXIT_CONTROLS_HOST_ADDR_SPACE_SIZE        RT_BIT(9)
     1063#define VMX_VMCS_CTRL_EXIT_HOST_ADDR_SPACE_SIZE        RT_BIT(9)
    10641064/** This control determines whether the IA32_PERF_GLOBAL_CTRL MSR is loaded on VM exit. */
    1065 #define VMX_VMCS_CTRL_EXIT_CONTROLS_LOAD_PERF_MSR               RT_BIT(12)
     1065#define VMX_VMCS_CTRL_EXIT_LOAD_PERF_MSR               RT_BIT(12)
    10661066/** Acknowledge external interrupts with the irq controller if one caused a VM-exit. */
    1067 #define VMX_VMCS_CTRL_EXIT_CONTROLS_ACK_EXT_INT                 RT_BIT(15)
     1067#define VMX_VMCS_CTRL_EXIT_ACK_EXT_INT                 RT_BIT(15)
    10681068/** This control determines whether the guest IA32_PAT MSR is saved on VM exit. */
    1069 #define VMX_VMCS_CTRL_EXIT_CONTROLS_SAVE_GUEST_PAT_MSR          RT_BIT(18)
     1069#define VMX_VMCS_CTRL_EXIT_SAVE_GUEST_PAT_MSR          RT_BIT(18)
    10701070/** This control determines whether the host IA32_PAT MSR is loaded on VM exit. */
    1071 #define VMX_VMCS_CTRL_EXIT_CONTROLS_LOAD_HOST_PAT_MSR           RT_BIT(19)
     1071#define VMX_VMCS_CTRL_EXIT_LOAD_HOST_PAT_MSR           RT_BIT(19)
    10721072/** This control determines whether the guest IA32_EFER MSR is saved on VM exit. */
    1073 #define VMX_VMCS_CTRL_EXIT_CONTROLS_SAVE_GUEST_EFER_MSR         RT_BIT(20)
     1073#define VMX_VMCS_CTRL_EXIT_SAVE_GUEST_EFER_MSR         RT_BIT(20)
    10741074/** This control determines whether the host IA32_EFER MSR is loaded on VM exit. */
    1075 #define VMX_VMCS_CTRL_EXIT_CONTROLS_LOAD_HOST_EFER_MSR          RT_BIT(21)
     1075#define VMX_VMCS_CTRL_EXIT_LOAD_HOST_EFER_MSR          RT_BIT(21)
    10761076/** This control determines whether the value of the VMX preemption timer is
    10771077 *  saved on every VM exit. */
    1078 #define VMX_VMCS_CTRL_EXIT_CONTROLS_SAVE_VMX_PREEMPT_TIMER      RT_BIT(22)
     1078#define VMX_VMCS_CTRL_EXIT_SAVE_VMX_PREEMPT_TIMER      RT_BIT(22)
    10791079/** @} */
    10801080
  • trunk/include/VBox/vmm/hm_vmx.mac

    r44528 r45947  
    6161%define VMX_VMCS_GUEST_DEBUGCTL_FULL                            02802h
    6262%define VMX_VMCS_GUEST_DEBUGCTL_HIGH                            02803h
    63 %define VMX_VMCS_CTRL_PIN_EXEC_CONTROLS                         04000h
    64 %define VMX_VMCS_CTRL_PROC_EXEC_CONTROLS                        04002h
     63%define VMX_VMCS_CTRL_PIN_EXEC                                  04000h
     64%define VMX_VMCS_CTRL_PROC_EXEC                                 04002h
    6565%define VMX_VMCS_CTRL_EXCEPTION_BITMAP                          04004h
    6666%define VMX_VMCS_CTRL_PAGEFAULT_ERROR_MASK                      04006h
    6767%define VMX_VMCS_CTRL_PAGEFAULT_ERROR_MATCH                     04008h
    6868%define VMX_VMCS_CTRL_CR3_TARGET_COUNT                          0400Ah
    69 %define VMX_VMCS_CTRL_EXIT_CONTROLS                             0400Ch
     69%define VMX_VMCS_CTRL_EXIT                                      0400Ch
    7070%define VMX_VMCS_CTRL_EXIT_MSR_STORE_COUNT                      0400Eh
    7171%define VMX_VMCS_CTRL_EXIT_MSR_LOAD_COUNT                       04010h
    72 %define VMX_VMCS_CTRL_ENTRY_CONTROLS                            04012h
     72%define VMX_VMCS_CTRL_ENTRY                                     04012h
    7373%define VMX_VMCS_CTRL_ENTRY_MSR_LOAD_COUNT                      04014h
    7474%define VMX_VMCS_CTRL_ENTRY_IRQ_INFO                            04016h
     
    119119%define VMX_VMCS_RO_IO_RIP                                      06408h
    120120%define VMX_VMCS_GUEST_LINEAR_ADDR                              0640Ah
    121 %define VMX_VMCS64_GUEST_CR0                                      06800h
    122 %define VMX_VMCS64_GUEST_CR3                                      06802h
    123 %define VMX_VMCS64_GUEST_CR4                                      06804h
    124 %define VMX_VMCS64_GUEST_ES_BASE                                  06806h
    125 %define VMX_VMCS64_GUEST_CS_BASE                                  06808h
    126 %define VMX_VMCS64_GUEST_SS_BASE                                  0680Ah
    127 %define VMX_VMCS64_GUEST_DS_BASE                                  0680Ch
    128 %define VMX_VMCS64_GUEST_FS_BASE                                  0680Eh
    129 %define VMX_VMCS64_GUEST_GS_BASE                                  06810h
    130 %define VMX_VMCS64_GUEST_LDTR_BASE                                06812h
    131 %define VMX_VMCS64_GUEST_TR_BASE                                  06814h
    132 %define VMX_VMCS64_GUEST_GDTR_BASE                                06816h
    133 %define VMX_VMCS64_GUEST_IDTR_BASE                                06818h
    134 %define VMX_VMCS64_GUEST_DR7                                      0681Ah
    135 %define VMX_VMCS64_GUEST_RSP                                      0681Ch
    136 %define VMX_VMCS64_GUEST_RIP                                      0681Eh
    137 %define VMX_VMCS64_GUEST_RFLAGS                                   06820h
     121%define VMX_VMCS64_GUEST_CR0                                    06800h
     122%define VMX_VMCS64_GUEST_CR3                                    06802h
     123%define VMX_VMCS64_GUEST_CR4                                    06804h
     124%define VMX_VMCS64_GUEST_ES_BASE                                06806h
     125%define VMX_VMCS64_GUEST_CS_BASE                                06808h
     126%define VMX_VMCS64_GUEST_SS_BASE                                0680Ah
     127%define VMX_VMCS64_GUEST_DS_BASE                                0680Ch
     128%define VMX_VMCS64_GUEST_FS_BASE                                0680Eh
     129%define VMX_VMCS64_GUEST_GS_BASE                                06810h
     130%define VMX_VMCS64_GUEST_LDTR_BASE                              06812h
     131%define VMX_VMCS64_GUEST_TR_BASE                                06814h
     132%define VMX_VMCS64_GUEST_GDTR_BASE                              06816h
     133%define VMX_VMCS64_GUEST_IDTR_BASE                              06818h
     134%define VMX_VMCS64_GUEST_DR7                                    0681Ah
     135%define VMX_VMCS64_GUEST_RSP                                    0681Ch
     136%define VMX_VMCS64_GUEST_RIP                                    0681Eh
     137%define VMX_VMCS64_GUEST_RFLAGS                                 06820h
    138138%define VMX_VMCS_GUEST_DEBUG_EXCEPTIONS                         06822h
    139 %define VMX_VMCS64_GUEST_SYSENTER_ESP                             06824h
    140 %define VMX_VMCS64_GUEST_SYSENTER_EIP                             06826h
     139%define VMX_VMCS64_GUEST_SYSENTER_ESP                           06824h
     140%define VMX_VMCS64_GUEST_SYSENTER_EIP                           06826h
    141141%define VMX_VMCS_HOST_CR0                                       06C00h
    142142%define VMX_VMCS_HOST_CR3                                       06C02h
     
    152152%define VMX_VMCS_HOST_RIP                                       06C16h
    153153
    154 %define VMX_VMCS_CTRL_EXIT_CONTROLS_HOST_AMD64                  RT_BIT(9)
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette