Changeset 47635 in vbox for trunk/include/VBox
- Timestamp:
- Aug 9, 2013 12:57:57 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/vmm/hm_vmx.h
r47445 r47635 93 93 AssertCompileMemberOffset(VMXRESTOREHOST, uHostFSBase, 40); 94 94 AssertCompileSize(VMXRESTOREHOST, 56); 95 96 /** @name VMX HM-error codes for VERR_VMX_INVALID_GUEST_STATE. 97 * @{ 98 */ 99 /** An error occurred while checking invalid-guest-state. */ 100 #define VMX_IGS_ERROR 0 101 /** The invalid guest-state checks did not find any reason why. */ 102 #define VMX_IGS_REASON_NOT_FOUND 1 103 /** CR0 fixed1 bits invalid. */ 104 #define VMX_IGS_CR0_FIXED1 2 105 /** CR0 fixed0 bits invalid. */ 106 #define VMX_IGS_CR0_FIXED0 3 107 /** CR0.PE and CR0.PE invalid VT-x/host combination. */ 108 #define VMX_IGS_CR0_PG_PE_COMBO 4 109 /** CR4 fixed1 bits invalid. */ 110 #define VMX_IGS_CR4_FIXED1 5 111 /** CR4 fixed0 bits invalid. */ 112 #define VMX_IGS_CR4_FIXED0 6 113 /** Reserved bits in VMCS' DEBUGCTL MSR field not set to 0 when 114 * VMX_VMCS_CTRL_ENTRY_LOAD_DEBUG is used. */ 115 #define VMX_IGS_DEBUGCTL_MSR_RESERVED 7 116 /** CR0.PG not set for long-mode when not using unrestricted guest. */ 117 #define VMX_IGS_CR0_PG_LONGMODE 8 118 /** CR4.PAE not set for long-mode guest when not using unrestricted guest. */ 119 #define VMX_IGS_CR4_PAE_LONGMODE 9 120 /** CR4.PCIDE set for 32-bit guest. */ 121 #define VMX_IGS_CR4_PCIDE 10 122 /** VMCS' DR7 reserved bits not set to 0. */ 123 #define VMX_IGS_DR7_RESERVED 11 124 /** VMCS' PERF_GLOBAL MSR reserved bits not set to 0. */ 125 #define VMX_IGS_PERF_GLOBAL_MSR_RESERVED 12 126 /** VMCS' EFER MSR reserved bits not set to 0. */ 127 #define VMX_IGS_EFER_MSR_RESERVED 13 128 /** VMCS' EFER MSR.LMA does not match the IA32e mode guest control. */ 129 #define VMX_IGS_EFER_LMA_GUEST_MODE_MISMATCH 14 130 /** VMCS' EFER MSR.LMA does not match CR0.PG of the guest when not using 131 * unrestricted guest. */ 132 #define VMX_IGS_EFER_LMA_PG_MISMATCH 15 133 /** CS.Attr.P bit invalid. */ 134 #define VMX_IGS_CS_ATTR_P_INVALID 16 135 /** CS.Attr reserved bits not set to 0. */ 136 #define VMX_IGS_CS_ATTR_RESERVED 17 137 /** CS.Attr.G bit invalid. */ 138 #define VMX_IGS_CS_ATTR_G_INVALID 18 139 /** CS is unusable. */ 140 #define VMX_IGS_CS_ATTR_UNUSABLE 19 141 /** CS and SS DPL unequal. */ 142 #define VMX_IGS_CS_SS_ATTR_DPL_UNEQUAL 20 143 /** CS and SS DPL mismatch. */ 144 #define VMX_IGS_CS_SS_ATTR_DPL_MISMATCH 21 145 /** CS Attr.Type invalid. */ 146 #define VMX_IGS_CS_ATTR_TYPE_INVALID 22 147 /** CS and SS RPL unequal. */ 148 #define VMX_IGS_SS_CS_RPL_UNEQUAL 23 149 /** SS.Attr.DPL and SS RPL unequal. */ 150 #define VMX_IGS_SS_ATTR_DPL_RPL_UNEQUAL 24 151 /** SS.Attr.DPL invalid for segment type. */ 152 #define VMX_IGS_SS_ATTR_DPL_INVALID 25 153 /** SS.Attr.Type invalid. */ 154 #define VMX_IGS_SS_ATTR_TYPE_INVALID 26 155 /** SS.Attr.P bit invalid. */ 156 #define VMX_IGS_SS_ATTR_P_INVALID 27 157 /** SS.Attr reserved bits not set to 0. */ 158 #define VMX_IGS_SS_ATTR_RESERVED 28 159 /** SS.Attr.G bit invalid. */ 160 #define VMX_IGS_SS_ATTR_G_INVALID 29 161 /** DS.Attr.A bit invalid. */ 162 #define VMX_IGS_DS_ATTR_A_INVALID 30 163 /** DS.Attr.P bit invalid. */ 164 #define VMX_IGS_DS_ATTR_P_INVALID 31 165 /** DS.Attr.DPL and DS RPL unequal. */ 166 #define VMX_IGS_DS_ATTR_DPL_RPL_UNEQUAL 32 167 /** DS.Attr reserved bits not set to 0. */ 168 #define VMX_IGS_DS_ATTR_RESERVED 33 169 /** DS.Attr.G bit invalid. */ 170 #define VMX_IGS_DS_ATTR_G_INVALID 34 171 /** DS.Attr.Type invalid. */ 172 #define VMX_IGS_DS_ATTR_TYPE_INVALID 35 173 /** ES.Attr.A bit invalid. */ 174 #define VMX_IGS_ES_ATTR_A_INVALID 36 175 /** ES.Attr.P bit invalid. */ 176 #define VMX_IGS_ES_ATTR_P_INVALID 37 177 /** ES.Attr.DPL and DS RPL unequal. */ 178 #define VMX_IGS_ES_ATTR_DPL_RPL_UNEQUAL 38 179 /** ES.Attr reserved bits not set to 0. */ 180 #define VMX_IGS_ES_ATTR_RESERVED 39 181 /** ES.Attr.G bit invalid. */ 182 #define VMX_IGS_ES_ATTR_G_INVALID 40 183 /** ES.Attr.Type invalid. */ 184 #define VMX_IGS_ES_ATTR_TYPE_INVALID 41 185 /** FS.Attr.A bit invalid. */ 186 #define VMX_IGS_FS_ATTR_A_INVALID 42 187 /** FS.Attr.P bit invalid. */ 188 #define VMX_IGS_FS_ATTR_P_INVALID 43 189 /** FS.Attr.DPL and DS RPL unequal. */ 190 #define VMX_IGS_FS_ATTR_DPL_RPL_UNEQUAL 44 191 /** FS.Attr reserved bits not set to 0. */ 192 #define VMX_IGS_FS_ATTR_RESERVED 45 193 /** FS.Attr.G bit invalid. */ 194 #define VMX_IGS_FS_ATTR_G_INVALID 46 195 /** FS.Attr.Type invalid. */ 196 #define VMX_IGS_FS_ATTR_TYPE_INVALID 47 197 /** GS.Attr.A bit invalid. */ 198 #define VMX_IGS_GS_ATTR_A_INVALID 48 199 /** GS.Attr.P bit invalid. */ 200 #define VMX_IGS_GS_ATTR_P_INVALID 49 201 /** GS.Attr.DPL and DS RPL unequal. */ 202 #define VMX_IGS_GS_ATTR_DPL_RPL_UNEQUAL 50 203 /** GS.Attr reserved bits not set to 0. */ 204 #define VMX_IGS_GS_ATTR_RESERVED 51 205 /** GS.Attr.G bit invalid. */ 206 #define VMX_IGS_GS_ATTR_G_INVALID 52 207 /** GS.Attr.Type invalid. */ 208 #define VMX_IGS_GS_ATTR_TYPE_INVALID 53 209 /** V86 mode CS.Base invalid. */ 210 #define VMX_IGS_V86_CS_BASE_INVALID 54 211 /** V86 mode CS.Limit invalid. */ 212 #define VMX_IGS_V86_CS_LIMIT_INVALID 55 213 /** V86 mode CS.Attr invalid. */ 214 #define VMX_IGS_V86_CS_ATTR_INVALID 56 215 /** V86 mode SS.Base invalid. */ 216 #define VMX_IGS_V86_SS_BASE_INVALID 57 217 /** V86 mode SS.Limit invalid. */ 218 #define VMX_IGS_V86_SS_LIMIT_INVALID 59 219 /** V86 mode SS.Attr invalid. */ 220 #define VMX_IGS_V86_SS_ATTR_INVALID 59 221 /** V86 mode DS.Base invalid. */ 222 #define VMX_IGS_V86_DS_BASE_INVALID 60 223 /** V86 mode DS.Limit invalid. */ 224 #define VMX_IGS_V86_DS_LIMIT_INVALID 61 225 /** V86 mode DS.Attr invalid. */ 226 #define VMX_IGS_V86_DS_ATTR_INVALID 62 227 /** V86 mode ES.Base invalid. */ 228 #define VMX_IGS_V86_ES_BASE_INVALID 63 229 /** V86 mode ES.Limit invalid. */ 230 #define VMX_IGS_V86_ES_LIMIT_INVALID 64 231 /** V86 mode ES.Attr invalid. */ 232 #define VMX_IGS_V86_ES_ATTR_INVALID 65 233 /** V86 mode FS.Base invalid. */ 234 #define VMX_IGS_V86_FS_BASE_INVALID 66 235 /** V86 mode FS.Limit invalid. */ 236 #define VMX_IGS_V86_FS_LIMIT_INVALID 67 237 /** V86 mode FS.Attr invalid. */ 238 #define VMX_IGS_V86_FS_ATTR_INVALID 68 239 /** V86 mode GS.Base invalid. */ 240 #define VMX_IGS_V86_GS_BASE_INVALID 69 241 /** V86 mode GS.Limit invalid. */ 242 #define VMX_IGS_V86_GS_LIMIT_INVALID 70 243 /** V86 mode GS.Attr invalid. */ 244 #define VMX_IGS_V86_GS_ATTR_INVALID 71 245 /** Longmode CS.Base invalid. */ 246 #define VMX_IGS_LONGMODE_CS_BASE_INVALID 72 247 /** Longmode SS.Base invalid. */ 248 #define VMX_IGS_LONGMODE_SS_BASE_INVALID 73 249 /** Longmode DS.Base invalid. */ 250 #define VMX_IGS_LONGMODE_DS_BASE_INVALID 74 251 /** Longmode ES.Base invalid. */ 252 #define VMX_IGS_LONGMODE_ES_BASE_INVALID 75 253 /** SYSENTER ESP is not canonical. */ 254 #define VMX_IGS_SYSENTER_ESP_NOT_CANONICAL 76 255 /** SYSENTER EIP is not canonical. */ 256 #define VMX_IGS_SYSENTER_EIP_NOT_CANONICAL 77 257 /** PAT MSR invalid. */ 258 #define VMX_IGS_PAT_MSR_INVALID 78 259 /** PAT MSR reserved bits not set to 0. */ 260 #define VMX_IGS_PAT_MSR_RESERVED 79 261 /** GDTR.Base is not canonical. */ 262 #define VMX_IGS_GDTR_BASE_NOT_CANONICAL 80 263 /** IDTR.Base is not canonical. */ 264 #define VMX_IGS_IDTR_BASE_NOT_CANONICAL 81 265 /** GDTR.Limit invalid. */ 266 #define VMX_IGS_GDTR_LIMIT_INVALID 82 267 /** IDTR.Limit invalid. */ 268 #define VMX_IGS_IDTR_LIMIT_INVALID 83 269 /** Longmode RIP is invalid. */ 270 #define VMX_IGS_LONGMODE_RIP_INVALID 84 271 /** RFLAGS reserved bits not set to 0. */ 272 #define VMX_IGS_RFLAGS_RESERVED 85 273 /** RFLAGS RA1 reserved bits not set to 1. */ 274 #define VMX_IGS_RFLAGS_RESERVED1 86 275 /** RFLAGS.VM (V86 mode) invalid. */ 276 #define VMX_IGS_RFLAGS_VM_INVALID 87 277 /** RFLAGS.IF invalid. */ 278 #define VMX_IGS_RFLAGS_IF_INVALID 88 279 /** Activity state invalid. */ 280 #define VMX_IGS_ACTIVITY_STATE_INVALID 89 281 /** Activity state HLT invalid when SS.Attr.DPL is not zero. */ 282 #define VMX_IGS_ACTIVITY_STATE_HLT_INVALID 90 283 /** Activity state ACTIVE invalid when block-by-STI or MOV SS. */ 284 #define VMX_IGS_ACTIVITY_STATE_ACTIVE_INVALID 91 285 /** Activity state SIPI WAIT invalid. */ 286 #define VMX_IGS_ACTIVITY_STATE_SIPI_WAIT_INVALID 92 287 /** Interruptibility state reserved bits not set to 0. */ 288 #define VMX_IGS_INTERRUPTIBILITY_STATE_RESERVED 93 289 /** Interruptibility state cannot be block-by-STI -and- MOV SS. */ 290 #define VMX_IGS_INTERRUPTIBILITY_STATE_STI_MOVSS_INVALID 94 291 /** Interruptibility state block-by-STI invalid for EFLAGS. */ 292 #define VMX_IGS_INTERRUPTIBILITY_STATE_STI_EFL_INVALID 95 293 /** Interruptibility state invalid while trying to deliver external 294 * interrupt. */ 295 #define VMX_IGS_INTERRUPTIBILITY_STATE_EXT_INT_INVALID 96 296 /** Interruptibility state block-by-MOVSS invalid while trying to deliver an 297 * NMI. */ 298 #define VMX_IGS_INTERRUPTIBILITY_STATE_MOVSS_INVALID 97 299 /** Interruptibility state block-by-SMI invalid when CPU is not in SMM. */ 300 #define VMX_IGS_INTERRUPTIBILITY_STATE_SMI_INVALID 98 301 /** Interruptibility state block-by-SMI invalid when trying to enter SMM. */ 302 #define VMX_IGS_INTERRUPTIBILITY_STATE_SMI_SMM_INVALID 99 303 /** Interruptibilty state block-by-STI (maybe) invalid when trying to deliver 304 * an NMI. */ 305 #define VMX_IGS_INTERRUPTIBILITY_STATE_STI_INVALID 100 306 /** Interruptibility state block-by-NMI invalid when virtual-NMIs control is 307 * active. */ 308 #define VMX_IGS_INTERRUPTIBILITY_STATE_NMI_INVALID 101 309 /** Pending debug exceptions reserved bits not set to 0. */ 310 #define VMX_IGS_PENDING_DEBUG_RESERVED 102 311 /** Longmode pending debug exceptions reserved bits not set to 0. */ 312 #define VMX_IGS_LONGMODE_PENDING_DEBUG_RESERVED 103 313 /** Pending debug exceptions.BS bit is not set when it should be. */ 314 #define VMX_IGS_PENDING_DEBUG_XCPT_BS_NOT_SET 104 315 /** Pending debug exceptions.BS bit is not clear when it should be. */ 316 #define VMX_IGS_PENDING_DEBUG_XCPT_BS_NOT_CLEAR 105 317 /** VMCS link pointer reserved bits not set to 0. */ 318 #define VMX_IGS_VMCS_LINK_PTR_RESERVED 106 319 /** @} */ 95 320 96 321 /** @name VMX VMCS-Read cache indices. … … 1174 1399 */ 1175 1400 #define VMX_ENTRY_INTERRUPTION_INFO_VALID(a) (a & RT_BIT(31)) 1401 #define VMX_ENTRY_INTERRUPTION_INFO_TYPE_SHIFT 8 1402 #define VMX_ENTRY_INTERRUPTION_INFO_TYPE(a) ((a >> VMX_ENTRY_INTERRUPTION_INFO_TYPE_SHIFT) & 7) 1176 1403 /** @} */ 1177 1404
Note:
See TracChangeset
for help on using the changeset viewer.