Changeset 74155 in vbox
- Timestamp:
- Sep 9, 2018 12:37:26 PM (6 years ago)
- Location:
- trunk
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/vmm/cpumctx.h
r74061 r74155 544 544 /** 0x2e8 - Guest physical address of the current VMCS pointer. */ 545 545 RTGCPHYS GCPhysVmcs; 546 /** 0x2f0 - Last emulated VMX instruction diagnostic. */547 VMXV INSTRDIAG enmInstrDiag;546 /** 0x2f0 - Last emulated VMX instruction/VM-exit diagnostic. */ 547 VMXVDIAG enmDiag; 548 548 /** 0x2f4 - Whether the guest is in VMX root mode. */ 549 549 bool fInVmxRootMode; … … 682 682 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.GCPhysVmxon, 0x2e0); 683 683 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.GCPhysVmcs, 0x2e8); 684 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.enm InstrDiag,0x2f0);684 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.enmDiag, 0x2f0); 685 685 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.fInVmxRootMode, 0x2f4); 686 686 AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.fInVmxNonRootMode, 0x2f5); -
trunk/include/VBox/vmm/hm.h
r73617 r74155 145 145 VMM_INT_DECL(int) HMVmxGetHostMsrs(PVM pVM, PVMXMSRS pVmxMsrs); 146 146 VMM_INT_DECL(int) HMVmxGetHostMsr(PVM pVM, uint32_t idMsr, uint64_t *puValue); 147 VMM_INT_DECL(const char *) HMVmxGetInstrDiagDesc(VMXVINSTRDIAG enmInstrDiag);148 147 VMM_INT_DECL(bool) HMVmxCanExecuteGuest(PVMCPU pVCpu, PCCPUMCTX pCtx); 149 148 /** @} */ … … 175 174 # ifdef VBOX_WITH_NESTED_HWVIRT_SVM 176 175 VMM_INT_DECL(void) HMSvmNstGstVmExitNotify(PVMCPU pVCpu, PCPUMCTX pCtx); 176 # endif 177 # ifdef VBOX_WITH_NESTED_HWVIRT_VMX 178 VMM_INT_DECL(const char *) HMVmxGetDiagDesc(VMXVDIAG enmDiag); 177 179 # endif 178 180 VMM_INT_DECL(int) HMSvmIsSubjectToErratum170(uint32_t *pu32Family, uint32_t *pu32Model, uint32_t *pu32Stepping); … … 190 192 # define HMSvmNstGstApplyTscOffset(pVCpu, uTicks) (uTicks) 191 193 # define HMSvmNstGstVmExitNotify(pVCpu, pCtx) do { } while (0) 194 # define HMVmxGetDiagDesc(VMXVDIAG) NULL 192 195 # define HMSvmIsSubjectToErratum170(puFamily, puModel, puStepping) false 193 196 # define HMHCSvmMaybeMovTprHypercall(pVCpu) do { } while (0) -
trunk/include/VBox/vmm/hm_vmx.h
r74154 r74155 3361 3361 3362 3362 /** 3363 * Virtual VMX-instruction diagnostics.3363 * Virtual VMX-instruction and VM-exit diagnostics. 3364 3364 * 3365 3365 * These are not the same as VM instruction errors that are enumerated in the Intel … … 3375 3375 { 3376 3376 /* Internal processing errors. */ 3377 kVmxV InstrDiag_Ipe_1 = 0,3378 kVmxV InstrDiag_Ipe_2,3379 kVmxV InstrDiag_Ipe_3,3380 kVmxV InstrDiag_Ipe_4,3381 kVmxV InstrDiag_Ipe_5,3382 kVmxV InstrDiag_Ipe_6,3383 kVmxV InstrDiag_Ipe_7,3384 kVmxV InstrDiag_Ipe_8,3385 kVmxV InstrDiag_Ipe_9,3377 kVmxVDiag_Ipe_1 = 0, 3378 kVmxVDiag_Ipe_2, 3379 kVmxVDiag_Ipe_3, 3380 kVmxVDiag_Ipe_4, 3381 kVmxVDiag_Ipe_5, 3382 kVmxVDiag_Ipe_6, 3383 kVmxVDiag_Ipe_7, 3384 kVmxVDiag_Ipe_8, 3385 kVmxVDiag_Ipe_9, 3386 3386 /* VMXON. */ 3387 kVmxV InstrDiag_Vmxon_A20M,3388 kVmxV InstrDiag_Vmxon_Cpl,3389 kVmxV InstrDiag_Vmxon_Cr0Fixed0,3390 kVmxV InstrDiag_Vmxon_Cr4Fixed0,3391 kVmxV InstrDiag_Vmxon_Intercept,3392 kVmxV InstrDiag_Vmxon_LongModeCS,3393 kVmxV InstrDiag_Vmxon_MsrFeatCtl,3394 kVmxV InstrDiag_Vmxon_PtrAbnormal,3395 kVmxV InstrDiag_Vmxon_PtrAlign,3396 kVmxV InstrDiag_Vmxon_PtrMap,3397 kVmxV InstrDiag_Vmxon_PtrReadPhys,3398 kVmxV InstrDiag_Vmxon_PtrWidth,3399 kVmxV InstrDiag_Vmxon_RealOrV86Mode,3400 kVmxV InstrDiag_Vmxon_ShadowVmcs,3401 kVmxV InstrDiag_Vmxon_Success,3402 kVmxV InstrDiag_Vmxon_VmxAlreadyRoot,3403 kVmxV InstrDiag_Vmxon_Vmxe,3404 kVmxV InstrDiag_Vmxon_VmcsRevId,3405 kVmxV InstrDiag_Vmxon_VmxRootCpl,3387 kVmxVDiag_Vmxon_A20M, 3388 kVmxVDiag_Vmxon_Cpl, 3389 kVmxVDiag_Vmxon_Cr0Fixed0, 3390 kVmxVDiag_Vmxon_Cr4Fixed0, 3391 kVmxVDiag_Vmxon_Intercept, 3392 kVmxVDiag_Vmxon_LongModeCS, 3393 kVmxVDiag_Vmxon_MsrFeatCtl, 3394 kVmxVDiag_Vmxon_PtrAbnormal, 3395 kVmxVDiag_Vmxon_PtrAlign, 3396 kVmxVDiag_Vmxon_PtrMap, 3397 kVmxVDiag_Vmxon_PtrReadPhys, 3398 kVmxVDiag_Vmxon_PtrWidth, 3399 kVmxVDiag_Vmxon_RealOrV86Mode, 3400 kVmxVDiag_Vmxon_ShadowVmcs, 3401 kVmxVDiag_Vmxon_Success, 3402 kVmxVDiag_Vmxon_VmxAlreadyRoot, 3403 kVmxVDiag_Vmxon_Vmxe, 3404 kVmxVDiag_Vmxon_VmcsRevId, 3405 kVmxVDiag_Vmxon_VmxRootCpl, 3406 3406 /* VMXOFF. */ 3407 kVmxV InstrDiag_Vmxoff_Cpl,3408 kVmxV InstrDiag_Vmxoff_Intercept,3409 kVmxV InstrDiag_Vmxoff_LongModeCS,3410 kVmxV InstrDiag_Vmxoff_RealOrV86Mode,3411 kVmxV InstrDiag_Vmxoff_Success,3412 kVmxV InstrDiag_Vmxoff_Vmxe,3413 kVmxV InstrDiag_Vmxoff_VmxRoot,3407 kVmxVDiag_Vmxoff_Cpl, 3408 kVmxVDiag_Vmxoff_Intercept, 3409 kVmxVDiag_Vmxoff_LongModeCS, 3410 kVmxVDiag_Vmxoff_RealOrV86Mode, 3411 kVmxVDiag_Vmxoff_Success, 3412 kVmxVDiag_Vmxoff_Vmxe, 3413 kVmxVDiag_Vmxoff_VmxRoot, 3414 3414 /* VMPTRLD. */ 3415 kVmxV InstrDiag_Vmptrld_Cpl,3416 kVmxV InstrDiag_Vmptrld_LongModeCS,3417 kVmxV InstrDiag_Vmptrld_PtrAbnormal,3418 kVmxV InstrDiag_Vmptrld_PtrAlign,3419 kVmxV InstrDiag_Vmptrld_PtrMap,3420 kVmxV InstrDiag_Vmptrld_PtrReadPhys,3421 kVmxV InstrDiag_Vmptrld_PtrVmxon,3422 kVmxV InstrDiag_Vmptrld_PtrWidth,3423 kVmxV InstrDiag_Vmptrld_RealOrV86Mode,3424 kVmxV InstrDiag_Vmptrld_ShadowVmcs,3425 kVmxV InstrDiag_Vmptrld_Success,3426 kVmxV InstrDiag_Vmptrld_VmcsRevId,3427 kVmxV InstrDiag_Vmptrld_VmxRoot,3415 kVmxVDiag_Vmptrld_Cpl, 3416 kVmxVDiag_Vmptrld_LongModeCS, 3417 kVmxVDiag_Vmptrld_PtrAbnormal, 3418 kVmxVDiag_Vmptrld_PtrAlign, 3419 kVmxVDiag_Vmptrld_PtrMap, 3420 kVmxVDiag_Vmptrld_PtrReadPhys, 3421 kVmxVDiag_Vmptrld_PtrVmxon, 3422 kVmxVDiag_Vmptrld_PtrWidth, 3423 kVmxVDiag_Vmptrld_RealOrV86Mode, 3424 kVmxVDiag_Vmptrld_ShadowVmcs, 3425 kVmxVDiag_Vmptrld_Success, 3426 kVmxVDiag_Vmptrld_VmcsRevId, 3427 kVmxVDiag_Vmptrld_VmxRoot, 3428 3428 /* VMPTRST. */ 3429 kVmxV InstrDiag_Vmptrst_Cpl,3430 kVmxV InstrDiag_Vmptrst_LongModeCS,3431 kVmxV InstrDiag_Vmptrst_PtrMap,3432 kVmxV InstrDiag_Vmptrst_RealOrV86Mode,3433 kVmxV InstrDiag_Vmptrst_Success,3434 kVmxV InstrDiag_Vmptrst_VmxRoot,3429 kVmxVDiag_Vmptrst_Cpl, 3430 kVmxVDiag_Vmptrst_LongModeCS, 3431 kVmxVDiag_Vmptrst_PtrMap, 3432 kVmxVDiag_Vmptrst_RealOrV86Mode, 3433 kVmxVDiag_Vmptrst_Success, 3434 kVmxVDiag_Vmptrst_VmxRoot, 3435 3435 /* VMCLEAR. */ 3436 kVmxV InstrDiag_Vmclear_Cpl,3437 kVmxV InstrDiag_Vmclear_LongModeCS,3438 kVmxV InstrDiag_Vmclear_PtrAbnormal,3439 kVmxV InstrDiag_Vmclear_PtrAlign,3440 kVmxV InstrDiag_Vmclear_PtrMap,3441 kVmxV InstrDiag_Vmclear_PtrReadPhys,3442 kVmxV InstrDiag_Vmclear_PtrVmxon,3443 kVmxV InstrDiag_Vmclear_PtrWidth,3444 kVmxV InstrDiag_Vmclear_RealOrV86Mode,3445 kVmxV InstrDiag_Vmclear_Success,3446 kVmxV InstrDiag_Vmclear_VmxRoot,3436 kVmxVDiag_Vmclear_Cpl, 3437 kVmxVDiag_Vmclear_LongModeCS, 3438 kVmxVDiag_Vmclear_PtrAbnormal, 3439 kVmxVDiag_Vmclear_PtrAlign, 3440 kVmxVDiag_Vmclear_PtrMap, 3441 kVmxVDiag_Vmclear_PtrReadPhys, 3442 kVmxVDiag_Vmclear_PtrVmxon, 3443 kVmxVDiag_Vmclear_PtrWidth, 3444 kVmxVDiag_Vmclear_RealOrV86Mode, 3445 kVmxVDiag_Vmclear_Success, 3446 kVmxVDiag_Vmclear_VmxRoot, 3447 3447 /* VMWRITE. */ 3448 kVmxV InstrDiag_Vmwrite_Cpl,3449 kVmxV InstrDiag_Vmwrite_FieldInvalid,3450 kVmxV InstrDiag_Vmwrite_FieldRo,3451 kVmxV InstrDiag_Vmwrite_LinkPtrInvalid,3452 kVmxV InstrDiag_Vmwrite_LongModeCS,3453 kVmxV InstrDiag_Vmwrite_PtrInvalid,3454 kVmxV InstrDiag_Vmwrite_PtrMap,3455 kVmxV InstrDiag_Vmwrite_RealOrV86Mode,3456 kVmxV InstrDiag_Vmwrite_Success,3457 kVmxV InstrDiag_Vmwrite_VmxRoot,3448 kVmxVDiag_Vmwrite_Cpl, 3449 kVmxVDiag_Vmwrite_FieldInvalid, 3450 kVmxVDiag_Vmwrite_FieldRo, 3451 kVmxVDiag_Vmwrite_LinkPtrInvalid, 3452 kVmxVDiag_Vmwrite_LongModeCS, 3453 kVmxVDiag_Vmwrite_PtrInvalid, 3454 kVmxVDiag_Vmwrite_PtrMap, 3455 kVmxVDiag_Vmwrite_RealOrV86Mode, 3456 kVmxVDiag_Vmwrite_Success, 3457 kVmxVDiag_Vmwrite_VmxRoot, 3458 3458 /* VMREAD. */ 3459 kVmxV InstrDiag_Vmread_Cpl,3460 kVmxV InstrDiag_Vmread_FieldInvalid,3461 kVmxV InstrDiag_Vmread_LinkPtrInvalid,3462 kVmxV InstrDiag_Vmread_LongModeCS,3463 kVmxV InstrDiag_Vmread_PtrInvalid,3464 kVmxV InstrDiag_Vmread_PtrMap,3465 kVmxV InstrDiag_Vmread_RealOrV86Mode,3466 kVmxV InstrDiag_Vmread_Success,3467 kVmxV InstrDiag_Vmread_VmxRoot,3459 kVmxVDiag_Vmread_Cpl, 3460 kVmxVDiag_Vmread_FieldInvalid, 3461 kVmxVDiag_Vmread_LinkPtrInvalid, 3462 kVmxVDiag_Vmread_LongModeCS, 3463 kVmxVDiag_Vmread_PtrInvalid, 3464 kVmxVDiag_Vmread_PtrMap, 3465 kVmxVDiag_Vmread_RealOrV86Mode, 3466 kVmxVDiag_Vmread_Success, 3467 kVmxVDiag_Vmread_VmxRoot, 3468 3468 /* VMLAUNCH/VMRESUME. */ 3469 kVmxV InstrDiag_Vmentry_AddrApicAccess,3470 kVmxV InstrDiag_Vmentry_AddrEntryMsrLoad,3471 kVmxV InstrDiag_Vmentry_AddrExitMsrLoad,3472 kVmxV InstrDiag_Vmentry_AddrExitMsrStore,3473 kVmxV InstrDiag_Vmentry_AddrIoBitmapA,3474 kVmxV InstrDiag_Vmentry_AddrIoBitmapB,3475 kVmxV InstrDiag_Vmentry_AddrMsrBitmap,3476 kVmxV InstrDiag_Vmentry_AddrVirtApicPage,3477 kVmxV InstrDiag_Vmentry_AddrVmreadBitmap,3478 kVmxV InstrDiag_Vmentry_AddrVmwriteBitmap,3479 kVmxV InstrDiag_Vmentry_ApicRegVirt,3480 kVmxV InstrDiag_Vmentry_BlocKMovSS,3481 kVmxV InstrDiag_Vmentry_Cpl,3482 kVmxV InstrDiag_Vmentry_Cr3TargetCount,3483 kVmxV InstrDiag_Vmentry_EntryCtlsAllowed1,3484 kVmxV InstrDiag_Vmentry_EntryCtlsDisallowed0,3485 kVmxV InstrDiag_Vmentry_EntryInstrLen,3486 kVmxV InstrDiag_Vmentry_EntryInstrLenZero,3487 kVmxV InstrDiag_Vmentry_EntryIntInfoErrCodePe,3488 kVmxV InstrDiag_Vmentry_EntryIntInfoErrCodeVec,3489 kVmxV InstrDiag_Vmentry_EntryIntInfoTypeVecRsvd,3490 kVmxV InstrDiag_Vmentry_EntryXcptErrCodeRsvd,3491 kVmxV InstrDiag_Vmentry_ExitCtlsAllowed1,3492 kVmxV InstrDiag_Vmentry_ExitCtlsDisallowed0,3493 kVmxV InstrDiag_Vmentry_GuestCr0Fixed0,3494 kVmxV InstrDiag_Vmentry_GuestCr0Fixed1,3495 kVmxV InstrDiag_Vmentry_GuestCr0PgPe,3496 kVmxV InstrDiag_Vmentry_GuestCr3,3497 kVmxV InstrDiag_Vmentry_GuestCr4Fixed0,3498 kVmxV InstrDiag_Vmentry_GuestCr4Fixed1,3499 kVmxV InstrDiag_Vmentry_GuestDebugCtl,3500 kVmxV InstrDiag_Vmentry_GuestDr7,3501 kVmxV InstrDiag_Vmentry_GuestEferMsr,3502 kVmxV InstrDiag_Vmentry_GuestEferMsrRsvd,3503 kVmxV InstrDiag_Vmentry_GuestGdtrBase,3504 kVmxV InstrDiag_Vmentry_GuestGdtrLimit,3505 kVmxV InstrDiag_Vmentry_GuestIdtrBase,3506 kVmxV InstrDiag_Vmentry_GuestIdtrLimit,3507 kVmxV InstrDiag_Vmentry_GuestPae,3508 kVmxV InstrDiag_Vmentry_GuestPatMsr,3509 kVmxV InstrDiag_Vmentry_GuestPcide,3510 kVmxV InstrDiag_Vmentry_GuestSegAttrCsDefBig,3511 kVmxV InstrDiag_Vmentry_GuestSegAttrCsDplEqSs,3512 kVmxV InstrDiag_Vmentry_GuestSegAttrCsDplLtSs,3513 kVmxV InstrDiag_Vmentry_GuestSegAttrCsDplZero,3514 kVmxV InstrDiag_Vmentry_GuestSegAttrCsType,3515 kVmxV InstrDiag_Vmentry_GuestSegAttrCsTypeRead,3516 kVmxV InstrDiag_Vmentry_GuestSegAttrDescTypeCs,3517 kVmxV InstrDiag_Vmentry_GuestSegAttrDescTypeDs,3518 kVmxV InstrDiag_Vmentry_GuestSegAttrDescTypeEs,3519 kVmxV InstrDiag_Vmentry_GuestSegAttrDescTypeFs,3520 kVmxV InstrDiag_Vmentry_GuestSegAttrDescTypeGs,3521 kVmxV InstrDiag_Vmentry_GuestSegAttrDescTypeSs,3522 kVmxV InstrDiag_Vmentry_GuestSegAttrDplRplCs,3523 kVmxV InstrDiag_Vmentry_GuestSegAttrDplRplDs,3524 kVmxV InstrDiag_Vmentry_GuestSegAttrDplRplEs,3525 kVmxV InstrDiag_Vmentry_GuestSegAttrDplRplFs,3526 kVmxV InstrDiag_Vmentry_GuestSegAttrDplRplGs,3527 kVmxV InstrDiag_Vmentry_GuestSegAttrDplRplSs,3528 kVmxV InstrDiag_Vmentry_GuestSegAttrGranCs,3529 kVmxV InstrDiag_Vmentry_GuestSegAttrGranDs,3530 kVmxV InstrDiag_Vmentry_GuestSegAttrGranEs,3531 kVmxV InstrDiag_Vmentry_GuestSegAttrGranFs,3532 kVmxV InstrDiag_Vmentry_GuestSegAttrGranGs,3533 kVmxV InstrDiag_Vmentry_GuestSegAttrGranSs,3534 kVmxV InstrDiag_Vmentry_GuestSegAttrLdtrDescType,3535 kVmxV InstrDiag_Vmentry_GuestSegAttrLdtrGran,3536 kVmxV InstrDiag_Vmentry_GuestSegAttrLdtrPresent,3537 kVmxV InstrDiag_Vmentry_GuestSegAttrLdtrRsvd,3538 kVmxV InstrDiag_Vmentry_GuestSegAttrLdtrType,3539 kVmxV InstrDiag_Vmentry_GuestSegAttrPresentCs,3540 kVmxV InstrDiag_Vmentry_GuestSegAttrPresentDs,3541 kVmxV InstrDiag_Vmentry_GuestSegAttrPresentEs,3542 kVmxV InstrDiag_Vmentry_GuestSegAttrPresentFs,3543 kVmxV InstrDiag_Vmentry_GuestSegAttrPresentGs,3544 kVmxV InstrDiag_Vmentry_GuestSegAttrPresentSs,3545 kVmxV InstrDiag_Vmentry_GuestSegAttrRsvdCs,3546 kVmxV InstrDiag_Vmentry_GuestSegAttrRsvdDs,3547 kVmxV InstrDiag_Vmentry_GuestSegAttrRsvdEs,3548 kVmxV InstrDiag_Vmentry_GuestSegAttrRsvdFs,3549 kVmxV InstrDiag_Vmentry_GuestSegAttrRsvdGs,3550 kVmxV InstrDiag_Vmentry_GuestSegAttrRsvdSs,3551 kVmxV InstrDiag_Vmentry_GuestSegAttrSsDplEqRpl,3552 kVmxV InstrDiag_Vmentry_GuestSegAttrSsDplZero,3553 kVmxV InstrDiag_Vmentry_GuestSegAttrSsType,3554 kVmxV InstrDiag_Vmentry_GuestSegAttrTrDescType,3555 kVmxV InstrDiag_Vmentry_GuestSegAttrTrGran,3556 kVmxV InstrDiag_Vmentry_GuestSegAttrTrPresent,3557 kVmxV InstrDiag_Vmentry_GuestSegAttrTrRsvd,3558 kVmxV InstrDiag_Vmentry_GuestSegAttrTrType,3559 kVmxV InstrDiag_Vmentry_GuestSegAttrTrUnusable,3560 kVmxV InstrDiag_Vmentry_GuestSegAttrTypeAccCs,3561 kVmxV InstrDiag_Vmentry_GuestSegAttrTypeAccDs,3562 kVmxV InstrDiag_Vmentry_GuestSegAttrTypeAccEs,3563 kVmxV InstrDiag_Vmentry_GuestSegAttrTypeAccFs,3564 kVmxV InstrDiag_Vmentry_GuestSegAttrTypeAccGs,3565 kVmxV InstrDiag_Vmentry_GuestSegAttrTypeAccSs,3566 kVmxV InstrDiag_Vmentry_GuestSegAttrV86Cs,3567 kVmxV InstrDiag_Vmentry_GuestSegAttrV86Ds,3568 kVmxV InstrDiag_Vmentry_GuestSegAttrV86Es,3569 kVmxV InstrDiag_Vmentry_GuestSegAttrV86Fs,3570 kVmxV InstrDiag_Vmentry_GuestSegAttrV86Gs,3571 kVmxV InstrDiag_Vmentry_GuestSegAttrV86Ss,3572 kVmxV InstrDiag_Vmentry_GuestSegBaseCs,3573 kVmxV InstrDiag_Vmentry_GuestSegBaseDs,3574 kVmxV InstrDiag_Vmentry_GuestSegBaseEs,3575 kVmxV InstrDiag_Vmentry_GuestSegBaseFs,3576 kVmxV InstrDiag_Vmentry_GuestSegBaseGs,3577 kVmxV InstrDiag_Vmentry_GuestSegBaseLdtr,3578 kVmxV InstrDiag_Vmentry_GuestSegBaseSs,3579 kVmxV InstrDiag_Vmentry_GuestSegBaseTr,3580 kVmxV InstrDiag_Vmentry_GuestSegBaseV86Cs,3581 kVmxV InstrDiag_Vmentry_GuestSegBaseV86Ds,3582 kVmxV InstrDiag_Vmentry_GuestSegBaseV86Es,3583 kVmxV InstrDiag_Vmentry_GuestSegBaseV86Fs,3584 kVmxV InstrDiag_Vmentry_GuestSegBaseV86Gs,3585 kVmxV InstrDiag_Vmentry_GuestSegBaseV86Ss,3586 kVmxV InstrDiag_Vmentry_GuestSegLimitV86Cs,3587 kVmxV InstrDiag_Vmentry_GuestSegLimitV86Ds,3588 kVmxV InstrDiag_Vmentry_GuestSegLimitV86Es,3589 kVmxV InstrDiag_Vmentry_GuestSegLimitV86Fs,3590 kVmxV InstrDiag_Vmentry_GuestSegLimitV86Gs,3591 kVmxV InstrDiag_Vmentry_GuestSegLimitV86Ss,3592 kVmxV InstrDiag_Vmentry_GuestSegSelCsSsRpl,3593 kVmxV InstrDiag_Vmentry_GuestSegSelLdtr,3594 kVmxV InstrDiag_Vmentry_GuestSegSelTr,3595 kVmxV InstrDiag_Vmentry_GuestSysenterEspEip,3596 kVmxV InstrDiag_Vmentry_HostCr0Fixed0,3597 kVmxV InstrDiag_Vmentry_HostCr0Fixed1,3598 kVmxV InstrDiag_Vmentry_HostCr3,3599 kVmxV InstrDiag_Vmentry_HostCr4Fixed0,3600 kVmxV InstrDiag_Vmentry_HostCr4Fixed1,3601 kVmxV InstrDiag_Vmentry_HostCr4Pae,3602 kVmxV InstrDiag_Vmentry_HostCr4Pcide,3603 kVmxV InstrDiag_Vmentry_HostCsTr,3604 kVmxV InstrDiag_Vmentry_HostEferMsr,3605 kVmxV InstrDiag_Vmentry_HostEferMsrRsvd,3606 kVmxV InstrDiag_Vmentry_HostGuestLongMode,3607 kVmxV InstrDiag_Vmentry_HostGuestLongModeNoCpu,3608 kVmxV InstrDiag_Vmentry_HostLongMode,3609 kVmxV InstrDiag_Vmentry_HostPatMsr,3610 kVmxV InstrDiag_Vmentry_HostRip,3611 kVmxV InstrDiag_Vmentry_HostRipRsvd,3612 kVmxV InstrDiag_Vmentry_HostSel,3613 kVmxV InstrDiag_Vmentry_HostSegBase,3614 kVmxV InstrDiag_Vmentry_HostSs,3615 kVmxV InstrDiag_Vmentry_HostSysenterEspEip,3616 kVmxV InstrDiag_Vmentry_LongModeCS,3617 kVmxV InstrDiag_Vmentry_NmiWindowExit,3618 kVmxV InstrDiag_Vmentry_PinCtlsAllowed1,3619 kVmxV InstrDiag_Vmentry_PinCtlsDisallowed0,3620 kVmxV InstrDiag_Vmentry_ProcCtlsAllowed1,3621 kVmxV InstrDiag_Vmentry_ProcCtlsDisallowed0,3622 kVmxV InstrDiag_Vmentry_ProcCtls2Allowed1,3623 kVmxV InstrDiag_Vmentry_ProcCtls2Disallowed0,3624 kVmxV InstrDiag_Vmentry_PtrInvalid,3625 kVmxV InstrDiag_Vmentry_PtrReadPhys,3626 kVmxV InstrDiag_Vmentry_RealOrV86Mode,3627 kVmxV InstrDiag_Vmentry_SavePreemptTimer,3628 kVmxV InstrDiag_Vmentry_Success,3629 kVmxV InstrDiag_Vmentry_TprThreshold,3630 kVmxV InstrDiag_Vmentry_TprThresholdVTpr,3631 kVmxV InstrDiag_Vmentry_VirtApicPagePtrReadPhys,3632 kVmxV InstrDiag_Vmentry_VirtIntDelivery,3633 kVmxV InstrDiag_Vmentry_VirtNmi,3634 kVmxV InstrDiag_Vmentry_VirtX2ApicTprShadow,3635 kVmxV InstrDiag_Vmentry_VirtX2ApicVirtApic,3636 kVmxV InstrDiag_Vmentry_VmcsClear,3637 kVmxV InstrDiag_Vmentry_VmcsLaunch,3638 kVmxV InstrDiag_Vmentry_VmreadBitmapPtrReadPhys,3639 kVmxV InstrDiag_Vmentry_VmwriteBitmapPtrReadPhys,3640 kVmxV InstrDiag_Vmentry_VmxRoot,3641 kVmxV InstrDiag_Vmentry_Vpid,3469 kVmxVDiag_Vmentry_AddrApicAccess, 3470 kVmxVDiag_Vmentry_AddrEntryMsrLoad, 3471 kVmxVDiag_Vmentry_AddrExitMsrLoad, 3472 kVmxVDiag_Vmentry_AddrExitMsrStore, 3473 kVmxVDiag_Vmentry_AddrIoBitmapA, 3474 kVmxVDiag_Vmentry_AddrIoBitmapB, 3475 kVmxVDiag_Vmentry_AddrMsrBitmap, 3476 kVmxVDiag_Vmentry_AddrVirtApicPage, 3477 kVmxVDiag_Vmentry_AddrVmreadBitmap, 3478 kVmxVDiag_Vmentry_AddrVmwriteBitmap, 3479 kVmxVDiag_Vmentry_ApicRegVirt, 3480 kVmxVDiag_Vmentry_BlocKMovSS, 3481 kVmxVDiag_Vmentry_Cpl, 3482 kVmxVDiag_Vmentry_Cr3TargetCount, 3483 kVmxVDiag_Vmentry_EntryCtlsAllowed1, 3484 kVmxVDiag_Vmentry_EntryCtlsDisallowed0, 3485 kVmxVDiag_Vmentry_EntryInstrLen, 3486 kVmxVDiag_Vmentry_EntryInstrLenZero, 3487 kVmxVDiag_Vmentry_EntryIntInfoErrCodePe, 3488 kVmxVDiag_Vmentry_EntryIntInfoErrCodeVec, 3489 kVmxVDiag_Vmentry_EntryIntInfoTypeVecRsvd, 3490 kVmxVDiag_Vmentry_EntryXcptErrCodeRsvd, 3491 kVmxVDiag_Vmentry_ExitCtlsAllowed1, 3492 kVmxVDiag_Vmentry_ExitCtlsDisallowed0, 3493 kVmxVDiag_Vmentry_GuestCr0Fixed0, 3494 kVmxVDiag_Vmentry_GuestCr0Fixed1, 3495 kVmxVDiag_Vmentry_GuestCr0PgPe, 3496 kVmxVDiag_Vmentry_GuestCr3, 3497 kVmxVDiag_Vmentry_GuestCr4Fixed0, 3498 kVmxVDiag_Vmentry_GuestCr4Fixed1, 3499 kVmxVDiag_Vmentry_GuestDebugCtl, 3500 kVmxVDiag_Vmentry_GuestDr7, 3501 kVmxVDiag_Vmentry_GuestEferMsr, 3502 kVmxVDiag_Vmentry_GuestEferMsrRsvd, 3503 kVmxVDiag_Vmentry_GuestGdtrBase, 3504 kVmxVDiag_Vmentry_GuestGdtrLimit, 3505 kVmxVDiag_Vmentry_GuestIdtrBase, 3506 kVmxVDiag_Vmentry_GuestIdtrLimit, 3507 kVmxVDiag_Vmentry_GuestPae, 3508 kVmxVDiag_Vmentry_GuestPatMsr, 3509 kVmxVDiag_Vmentry_GuestPcide, 3510 kVmxVDiag_Vmentry_GuestSegAttrCsDefBig, 3511 kVmxVDiag_Vmentry_GuestSegAttrCsDplEqSs, 3512 kVmxVDiag_Vmentry_GuestSegAttrCsDplLtSs, 3513 kVmxVDiag_Vmentry_GuestSegAttrCsDplZero, 3514 kVmxVDiag_Vmentry_GuestSegAttrCsType, 3515 kVmxVDiag_Vmentry_GuestSegAttrCsTypeRead, 3516 kVmxVDiag_Vmentry_GuestSegAttrDescTypeCs, 3517 kVmxVDiag_Vmentry_GuestSegAttrDescTypeDs, 3518 kVmxVDiag_Vmentry_GuestSegAttrDescTypeEs, 3519 kVmxVDiag_Vmentry_GuestSegAttrDescTypeFs, 3520 kVmxVDiag_Vmentry_GuestSegAttrDescTypeGs, 3521 kVmxVDiag_Vmentry_GuestSegAttrDescTypeSs, 3522 kVmxVDiag_Vmentry_GuestSegAttrDplRplCs, 3523 kVmxVDiag_Vmentry_GuestSegAttrDplRplDs, 3524 kVmxVDiag_Vmentry_GuestSegAttrDplRplEs, 3525 kVmxVDiag_Vmentry_GuestSegAttrDplRplFs, 3526 kVmxVDiag_Vmentry_GuestSegAttrDplRplGs, 3527 kVmxVDiag_Vmentry_GuestSegAttrDplRplSs, 3528 kVmxVDiag_Vmentry_GuestSegAttrGranCs, 3529 kVmxVDiag_Vmentry_GuestSegAttrGranDs, 3530 kVmxVDiag_Vmentry_GuestSegAttrGranEs, 3531 kVmxVDiag_Vmentry_GuestSegAttrGranFs, 3532 kVmxVDiag_Vmentry_GuestSegAttrGranGs, 3533 kVmxVDiag_Vmentry_GuestSegAttrGranSs, 3534 kVmxVDiag_Vmentry_GuestSegAttrLdtrDescType, 3535 kVmxVDiag_Vmentry_GuestSegAttrLdtrGran, 3536 kVmxVDiag_Vmentry_GuestSegAttrLdtrPresent, 3537 kVmxVDiag_Vmentry_GuestSegAttrLdtrRsvd, 3538 kVmxVDiag_Vmentry_GuestSegAttrLdtrType, 3539 kVmxVDiag_Vmentry_GuestSegAttrPresentCs, 3540 kVmxVDiag_Vmentry_GuestSegAttrPresentDs, 3541 kVmxVDiag_Vmentry_GuestSegAttrPresentEs, 3542 kVmxVDiag_Vmentry_GuestSegAttrPresentFs, 3543 kVmxVDiag_Vmentry_GuestSegAttrPresentGs, 3544 kVmxVDiag_Vmentry_GuestSegAttrPresentSs, 3545 kVmxVDiag_Vmentry_GuestSegAttrRsvdCs, 3546 kVmxVDiag_Vmentry_GuestSegAttrRsvdDs, 3547 kVmxVDiag_Vmentry_GuestSegAttrRsvdEs, 3548 kVmxVDiag_Vmentry_GuestSegAttrRsvdFs, 3549 kVmxVDiag_Vmentry_GuestSegAttrRsvdGs, 3550 kVmxVDiag_Vmentry_GuestSegAttrRsvdSs, 3551 kVmxVDiag_Vmentry_GuestSegAttrSsDplEqRpl, 3552 kVmxVDiag_Vmentry_GuestSegAttrSsDplZero, 3553 kVmxVDiag_Vmentry_GuestSegAttrSsType, 3554 kVmxVDiag_Vmentry_GuestSegAttrTrDescType, 3555 kVmxVDiag_Vmentry_GuestSegAttrTrGran, 3556 kVmxVDiag_Vmentry_GuestSegAttrTrPresent, 3557 kVmxVDiag_Vmentry_GuestSegAttrTrRsvd, 3558 kVmxVDiag_Vmentry_GuestSegAttrTrType, 3559 kVmxVDiag_Vmentry_GuestSegAttrTrUnusable, 3560 kVmxVDiag_Vmentry_GuestSegAttrTypeAccCs, 3561 kVmxVDiag_Vmentry_GuestSegAttrTypeAccDs, 3562 kVmxVDiag_Vmentry_GuestSegAttrTypeAccEs, 3563 kVmxVDiag_Vmentry_GuestSegAttrTypeAccFs, 3564 kVmxVDiag_Vmentry_GuestSegAttrTypeAccGs, 3565 kVmxVDiag_Vmentry_GuestSegAttrTypeAccSs, 3566 kVmxVDiag_Vmentry_GuestSegAttrV86Cs, 3567 kVmxVDiag_Vmentry_GuestSegAttrV86Ds, 3568 kVmxVDiag_Vmentry_GuestSegAttrV86Es, 3569 kVmxVDiag_Vmentry_GuestSegAttrV86Fs, 3570 kVmxVDiag_Vmentry_GuestSegAttrV86Gs, 3571 kVmxVDiag_Vmentry_GuestSegAttrV86Ss, 3572 kVmxVDiag_Vmentry_GuestSegBaseCs, 3573 kVmxVDiag_Vmentry_GuestSegBaseDs, 3574 kVmxVDiag_Vmentry_GuestSegBaseEs, 3575 kVmxVDiag_Vmentry_GuestSegBaseFs, 3576 kVmxVDiag_Vmentry_GuestSegBaseGs, 3577 kVmxVDiag_Vmentry_GuestSegBaseLdtr, 3578 kVmxVDiag_Vmentry_GuestSegBaseSs, 3579 kVmxVDiag_Vmentry_GuestSegBaseTr, 3580 kVmxVDiag_Vmentry_GuestSegBaseV86Cs, 3581 kVmxVDiag_Vmentry_GuestSegBaseV86Ds, 3582 kVmxVDiag_Vmentry_GuestSegBaseV86Es, 3583 kVmxVDiag_Vmentry_GuestSegBaseV86Fs, 3584 kVmxVDiag_Vmentry_GuestSegBaseV86Gs, 3585 kVmxVDiag_Vmentry_GuestSegBaseV86Ss, 3586 kVmxVDiag_Vmentry_GuestSegLimitV86Cs, 3587 kVmxVDiag_Vmentry_GuestSegLimitV86Ds, 3588 kVmxVDiag_Vmentry_GuestSegLimitV86Es, 3589 kVmxVDiag_Vmentry_GuestSegLimitV86Fs, 3590 kVmxVDiag_Vmentry_GuestSegLimitV86Gs, 3591 kVmxVDiag_Vmentry_GuestSegLimitV86Ss, 3592 kVmxVDiag_Vmentry_GuestSegSelCsSsRpl, 3593 kVmxVDiag_Vmentry_GuestSegSelLdtr, 3594 kVmxVDiag_Vmentry_GuestSegSelTr, 3595 kVmxVDiag_Vmentry_GuestSysenterEspEip, 3596 kVmxVDiag_Vmentry_HostCr0Fixed0, 3597 kVmxVDiag_Vmentry_HostCr0Fixed1, 3598 kVmxVDiag_Vmentry_HostCr3, 3599 kVmxVDiag_Vmentry_HostCr4Fixed0, 3600 kVmxVDiag_Vmentry_HostCr4Fixed1, 3601 kVmxVDiag_Vmentry_HostCr4Pae, 3602 kVmxVDiag_Vmentry_HostCr4Pcide, 3603 kVmxVDiag_Vmentry_HostCsTr, 3604 kVmxVDiag_Vmentry_HostEferMsr, 3605 kVmxVDiag_Vmentry_HostEferMsrRsvd, 3606 kVmxVDiag_Vmentry_HostGuestLongMode, 3607 kVmxVDiag_Vmentry_HostGuestLongModeNoCpu, 3608 kVmxVDiag_Vmentry_HostLongMode, 3609 kVmxVDiag_Vmentry_HostPatMsr, 3610 kVmxVDiag_Vmentry_HostRip, 3611 kVmxVDiag_Vmentry_HostRipRsvd, 3612 kVmxVDiag_Vmentry_HostSel, 3613 kVmxVDiag_Vmentry_HostSegBase, 3614 kVmxVDiag_Vmentry_HostSs, 3615 kVmxVDiag_Vmentry_HostSysenterEspEip, 3616 kVmxVDiag_Vmentry_LongModeCS, 3617 kVmxVDiag_Vmentry_NmiWindowExit, 3618 kVmxVDiag_Vmentry_PinCtlsAllowed1, 3619 kVmxVDiag_Vmentry_PinCtlsDisallowed0, 3620 kVmxVDiag_Vmentry_ProcCtlsAllowed1, 3621 kVmxVDiag_Vmentry_ProcCtlsDisallowed0, 3622 kVmxVDiag_Vmentry_ProcCtls2Allowed1, 3623 kVmxVDiag_Vmentry_ProcCtls2Disallowed0, 3624 kVmxVDiag_Vmentry_PtrInvalid, 3625 kVmxVDiag_Vmentry_PtrReadPhys, 3626 kVmxVDiag_Vmentry_RealOrV86Mode, 3627 kVmxVDiag_Vmentry_SavePreemptTimer, 3628 kVmxVDiag_Vmentry_Success, 3629 kVmxVDiag_Vmentry_TprThreshold, 3630 kVmxVDiag_Vmentry_TprThresholdVTpr, 3631 kVmxVDiag_Vmentry_VirtApicPagePtrReadPhys, 3632 kVmxVDiag_Vmentry_VirtIntDelivery, 3633 kVmxVDiag_Vmentry_VirtNmi, 3634 kVmxVDiag_Vmentry_VirtX2ApicTprShadow, 3635 kVmxVDiag_Vmentry_VirtX2ApicVirtApic, 3636 kVmxVDiag_Vmentry_VmcsClear, 3637 kVmxVDiag_Vmentry_VmcsLaunch, 3638 kVmxVDiag_Vmentry_VmreadBitmapPtrReadPhys, 3639 kVmxVDiag_Vmentry_VmwriteBitmapPtrReadPhys, 3640 kVmxVDiag_Vmentry_VmxRoot, 3641 kVmxVDiag_Vmentry_Vpid, 3642 3642 /* Last member for determining array index limit. */ 3643 kVmxV InstrDiag_End3644 } VMXV INSTRDIAG;3645 AssertCompileSize(VMXV INSTRDIAG, 4);3643 kVmxVDiag_End 3644 } VMXVDIAG; 3645 AssertCompileSize(VMXVDIAG, 4); 3646 3646 3647 3647 -
trunk/src/VBox/VMM/VMMAll/HMVMXAll.cpp
r74154 r74155 30 30 * Global Variables * 31 31 *********************************************************************************************************************************/ 32 #define VMX _INSTR_DIAG_DESC(a_Def, a_Desc) #a_Def " - " #a_Desc33 static const char * const g_apszVmx InstrDiagDesc[] =32 #define VMXV_DIAG_DESC(a_Def, a_Desc) #a_Def " - " #a_Desc 33 static const char * const g_apszVmxVDiagDesc[] = 34 34 { 35 35 /* Internal processing errors. */ 36 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Ipe_1 , "Ipe_1" ),37 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Ipe_2 , "Ipe_2" ),38 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Ipe_3 , "Ipe_3" ),39 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Ipe_4 , "Ipe_4" ),40 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Ipe_5 , "Ipe_5" ),41 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Ipe_6 , "Ipe_6" ),42 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Ipe_7 , "Ipe_7" ),43 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Ipe_8 , "Ipe_8" ),44 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Ipe_9 , "Ipe_9" ),36 VMXV_DIAG_DESC(kVmxVDiag_Ipe_1 , "Ipe_1" ), 37 VMXV_DIAG_DESC(kVmxVDiag_Ipe_2 , "Ipe_2" ), 38 VMXV_DIAG_DESC(kVmxVDiag_Ipe_3 , "Ipe_3" ), 39 VMXV_DIAG_DESC(kVmxVDiag_Ipe_4 , "Ipe_4" ), 40 VMXV_DIAG_DESC(kVmxVDiag_Ipe_5 , "Ipe_5" ), 41 VMXV_DIAG_DESC(kVmxVDiag_Ipe_6 , "Ipe_6" ), 42 VMXV_DIAG_DESC(kVmxVDiag_Ipe_7 , "Ipe_7" ), 43 VMXV_DIAG_DESC(kVmxVDiag_Ipe_8 , "Ipe_8" ), 44 VMXV_DIAG_DESC(kVmxVDiag_Ipe_9 , "Ipe_9" ), 45 45 /* VMXON. */ 46 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmxon_A20M , "A20M" ),47 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmxon_Cpl , "Cpl" ),48 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmxon_Cr0Fixed0 , "Cr0Fixed0" ),49 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmxon_Cr4Fixed0 , "Cr4Fixed0" ),50 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmxon_Intercept , "Intercept" ),51 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmxon_LongModeCS , "LongModeCS" ),52 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmxon_MsrFeatCtl , "MsrFeatCtl" ),53 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmxon_PtrAbnormal , "PtrAbnormal" ),54 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmxon_PtrAlign , "PtrAlign" ),55 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmxon_PtrMap , "PtrMap" ),56 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmxon_PtrReadPhys , "PtrReadPhys" ),57 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmxon_PtrWidth , "PtrWidth" ),58 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmxon_RealOrV86Mode , "RealOrV86Mode" ),59 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmxon_ShadowVmcs , "ShadowVmcs" ),60 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmxon_Success , "Success" ),61 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmxon_VmxAlreadyRoot , "VmxAlreadyRoot" ),62 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmxon_Vmxe , "Vmxe" ),63 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmxon_VmcsRevId , "VmcsRevId" ),64 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmxon_VmxRootCpl , "VmxRootCpl" ),46 VMXV_DIAG_DESC(kVmxVDiag_Vmxon_A20M , "A20M" ), 47 VMXV_DIAG_DESC(kVmxVDiag_Vmxon_Cpl , "Cpl" ), 48 VMXV_DIAG_DESC(kVmxVDiag_Vmxon_Cr0Fixed0 , "Cr0Fixed0" ), 49 VMXV_DIAG_DESC(kVmxVDiag_Vmxon_Cr4Fixed0 , "Cr4Fixed0" ), 50 VMXV_DIAG_DESC(kVmxVDiag_Vmxon_Intercept , "Intercept" ), 51 VMXV_DIAG_DESC(kVmxVDiag_Vmxon_LongModeCS , "LongModeCS" ), 52 VMXV_DIAG_DESC(kVmxVDiag_Vmxon_MsrFeatCtl , "MsrFeatCtl" ), 53 VMXV_DIAG_DESC(kVmxVDiag_Vmxon_PtrAbnormal , "PtrAbnormal" ), 54 VMXV_DIAG_DESC(kVmxVDiag_Vmxon_PtrAlign , "PtrAlign" ), 55 VMXV_DIAG_DESC(kVmxVDiag_Vmxon_PtrMap , "PtrMap" ), 56 VMXV_DIAG_DESC(kVmxVDiag_Vmxon_PtrReadPhys , "PtrReadPhys" ), 57 VMXV_DIAG_DESC(kVmxVDiag_Vmxon_PtrWidth , "PtrWidth" ), 58 VMXV_DIAG_DESC(kVmxVDiag_Vmxon_RealOrV86Mode , "RealOrV86Mode" ), 59 VMXV_DIAG_DESC(kVmxVDiag_Vmxon_ShadowVmcs , "ShadowVmcs" ), 60 VMXV_DIAG_DESC(kVmxVDiag_Vmxon_Success , "Success" ), 61 VMXV_DIAG_DESC(kVmxVDiag_Vmxon_VmxAlreadyRoot , "VmxAlreadyRoot" ), 62 VMXV_DIAG_DESC(kVmxVDiag_Vmxon_Vmxe , "Vmxe" ), 63 VMXV_DIAG_DESC(kVmxVDiag_Vmxon_VmcsRevId , "VmcsRevId" ), 64 VMXV_DIAG_DESC(kVmxVDiag_Vmxon_VmxRootCpl , "VmxRootCpl" ), 65 65 /* VMXOFF. */ 66 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmxoff_Cpl , "Cpl" ),67 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmxoff_Intercept , "Intercept" ),68 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmxoff_LongModeCS , "LongModeCS" ),69 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmxoff_RealOrV86Mode , "RealOrV86Mode" ),70 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmxoff_Success , "Success" ),71 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmxoff_Vmxe , "Vmxe" ),72 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmxoff_VmxRoot , "VmxRoot" ),66 VMXV_DIAG_DESC(kVmxVDiag_Vmxoff_Cpl , "Cpl" ), 67 VMXV_DIAG_DESC(kVmxVDiag_Vmxoff_Intercept , "Intercept" ), 68 VMXV_DIAG_DESC(kVmxVDiag_Vmxoff_LongModeCS , "LongModeCS" ), 69 VMXV_DIAG_DESC(kVmxVDiag_Vmxoff_RealOrV86Mode , "RealOrV86Mode" ), 70 VMXV_DIAG_DESC(kVmxVDiag_Vmxoff_Success , "Success" ), 71 VMXV_DIAG_DESC(kVmxVDiag_Vmxoff_Vmxe , "Vmxe" ), 72 VMXV_DIAG_DESC(kVmxVDiag_Vmxoff_VmxRoot , "VmxRoot" ), 73 73 /* VMPTRLD. */ 74 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmptrld_Cpl , "Cpl" ),75 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmptrld_LongModeCS , "LongModeCS" ),76 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmptrld_PtrAbnormal , "PtrAbnormal" ),77 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmptrld_PtrAlign , "PtrAlign" ),78 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmptrld_PtrMap , "PtrMap" ),79 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmptrld_PtrReadPhys , "PtrReadPhys" ),80 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmptrld_PtrVmxon , "PtrVmxon" ),81 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmptrld_PtrWidth , "PtrWidth" ),82 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmptrld_RealOrV86Mode , "RealOrV86Mode" ),83 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmptrld_ShadowVmcs , "ShadowVmcs" ),84 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmptrld_Success , "Success" ),85 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmptrld_VmcsRevId , "VmcsRevId" ),86 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmptrld_VmxRoot , "VmxRoot" ),74 VMXV_DIAG_DESC(kVmxVDiag_Vmptrld_Cpl , "Cpl" ), 75 VMXV_DIAG_DESC(kVmxVDiag_Vmptrld_LongModeCS , "LongModeCS" ), 76 VMXV_DIAG_DESC(kVmxVDiag_Vmptrld_PtrAbnormal , "PtrAbnormal" ), 77 VMXV_DIAG_DESC(kVmxVDiag_Vmptrld_PtrAlign , "PtrAlign" ), 78 VMXV_DIAG_DESC(kVmxVDiag_Vmptrld_PtrMap , "PtrMap" ), 79 VMXV_DIAG_DESC(kVmxVDiag_Vmptrld_PtrReadPhys , "PtrReadPhys" ), 80 VMXV_DIAG_DESC(kVmxVDiag_Vmptrld_PtrVmxon , "PtrVmxon" ), 81 VMXV_DIAG_DESC(kVmxVDiag_Vmptrld_PtrWidth , "PtrWidth" ), 82 VMXV_DIAG_DESC(kVmxVDiag_Vmptrld_RealOrV86Mode , "RealOrV86Mode" ), 83 VMXV_DIAG_DESC(kVmxVDiag_Vmptrld_ShadowVmcs , "ShadowVmcs" ), 84 VMXV_DIAG_DESC(kVmxVDiag_Vmptrld_Success , "Success" ), 85 VMXV_DIAG_DESC(kVmxVDiag_Vmptrld_VmcsRevId , "VmcsRevId" ), 86 VMXV_DIAG_DESC(kVmxVDiag_Vmptrld_VmxRoot , "VmxRoot" ), 87 87 /* VMPTRST. */ 88 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmptrst_Cpl , "Cpl" ),89 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmptrst_LongModeCS , "LongModeCS" ),90 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmptrst_PtrMap , "PtrMap" ),91 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmptrst_RealOrV86Mode , "RealOrV86Mode" ),92 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmptrst_Success , "Success" ),93 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmptrst_VmxRoot , "VmxRoot" ),88 VMXV_DIAG_DESC(kVmxVDiag_Vmptrst_Cpl , "Cpl" ), 89 VMXV_DIAG_DESC(kVmxVDiag_Vmptrst_LongModeCS , "LongModeCS" ), 90 VMXV_DIAG_DESC(kVmxVDiag_Vmptrst_PtrMap , "PtrMap" ), 91 VMXV_DIAG_DESC(kVmxVDiag_Vmptrst_RealOrV86Mode , "RealOrV86Mode" ), 92 VMXV_DIAG_DESC(kVmxVDiag_Vmptrst_Success , "Success" ), 93 VMXV_DIAG_DESC(kVmxVDiag_Vmptrst_VmxRoot , "VmxRoot" ), 94 94 /* VMCLEAR. */ 95 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmclear_Cpl , "Cpl" ),96 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmclear_LongModeCS , "LongModeCS" ),97 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmclear_PtrAbnormal , "PtrAbnormal" ),98 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmclear_PtrAlign , "PtrAlign" ),99 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmclear_PtrMap , "PtrMap" ),100 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmclear_PtrReadPhys , "PtrReadPhys" ),101 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmclear_PtrVmxon , "PtrVmxon" ),102 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmclear_PtrWidth , "PtrWidth" ),103 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmclear_RealOrV86Mode , "RealOrV86Mode" ),104 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmclear_Success , "Success" ),105 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmclear_VmxRoot , "VmxRoot" ),95 VMXV_DIAG_DESC(kVmxVDiag_Vmclear_Cpl , "Cpl" ), 96 VMXV_DIAG_DESC(kVmxVDiag_Vmclear_LongModeCS , "LongModeCS" ), 97 VMXV_DIAG_DESC(kVmxVDiag_Vmclear_PtrAbnormal , "PtrAbnormal" ), 98 VMXV_DIAG_DESC(kVmxVDiag_Vmclear_PtrAlign , "PtrAlign" ), 99 VMXV_DIAG_DESC(kVmxVDiag_Vmclear_PtrMap , "PtrMap" ), 100 VMXV_DIAG_DESC(kVmxVDiag_Vmclear_PtrReadPhys , "PtrReadPhys" ), 101 VMXV_DIAG_DESC(kVmxVDiag_Vmclear_PtrVmxon , "PtrVmxon" ), 102 VMXV_DIAG_DESC(kVmxVDiag_Vmclear_PtrWidth , "PtrWidth" ), 103 VMXV_DIAG_DESC(kVmxVDiag_Vmclear_RealOrV86Mode , "RealOrV86Mode" ), 104 VMXV_DIAG_DESC(kVmxVDiag_Vmclear_Success , "Success" ), 105 VMXV_DIAG_DESC(kVmxVDiag_Vmclear_VmxRoot , "VmxRoot" ), 106 106 /* VMWRITE. */ 107 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmwrite_Cpl , "Cpl" ),108 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmwrite_FieldInvalid , "FieldInvalid" ),109 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmwrite_FieldRo , "FieldRo" ),110 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmwrite_LinkPtrInvalid , "LinkPtrInvalid" ),111 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmwrite_LongModeCS , "LongModeCS" ),112 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmwrite_PtrInvalid , "PtrInvalid" ),113 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmwrite_PtrMap , "PtrMap" ),114 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmwrite_RealOrV86Mode , "RealOrV86Mode" ),115 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmwrite_Success , "Success" ),116 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmwrite_VmxRoot , "VmxRoot" ),107 VMXV_DIAG_DESC(kVmxVDiag_Vmwrite_Cpl , "Cpl" ), 108 VMXV_DIAG_DESC(kVmxVDiag_Vmwrite_FieldInvalid , "FieldInvalid" ), 109 VMXV_DIAG_DESC(kVmxVDiag_Vmwrite_FieldRo , "FieldRo" ), 110 VMXV_DIAG_DESC(kVmxVDiag_Vmwrite_LinkPtrInvalid , "LinkPtrInvalid" ), 111 VMXV_DIAG_DESC(kVmxVDiag_Vmwrite_LongModeCS , "LongModeCS" ), 112 VMXV_DIAG_DESC(kVmxVDiag_Vmwrite_PtrInvalid , "PtrInvalid" ), 113 VMXV_DIAG_DESC(kVmxVDiag_Vmwrite_PtrMap , "PtrMap" ), 114 VMXV_DIAG_DESC(kVmxVDiag_Vmwrite_RealOrV86Mode , "RealOrV86Mode" ), 115 VMXV_DIAG_DESC(kVmxVDiag_Vmwrite_Success , "Success" ), 116 VMXV_DIAG_DESC(kVmxVDiag_Vmwrite_VmxRoot , "VmxRoot" ), 117 117 /* VMREAD. */ 118 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmread_Cpl , "Cpl" ),119 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmread_FieldInvalid , "FieldInvalid" ),120 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmread_LinkPtrInvalid , "LinkPtrInvalid" ),121 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmread_LongModeCS , "LongModeCS" ),122 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmread_PtrInvalid , "PtrInvalid" ),123 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmread_PtrMap , "PtrMap" ),124 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmread_RealOrV86Mode , "RealOrV86Mode" ),125 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmread_Success , "Success" ),126 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmread_VmxRoot , "VmxRoot" ),118 VMXV_DIAG_DESC(kVmxVDiag_Vmread_Cpl , "Cpl" ), 119 VMXV_DIAG_DESC(kVmxVDiag_Vmread_FieldInvalid , "FieldInvalid" ), 120 VMXV_DIAG_DESC(kVmxVDiag_Vmread_LinkPtrInvalid , "LinkPtrInvalid" ), 121 VMXV_DIAG_DESC(kVmxVDiag_Vmread_LongModeCS , "LongModeCS" ), 122 VMXV_DIAG_DESC(kVmxVDiag_Vmread_PtrInvalid , "PtrInvalid" ), 123 VMXV_DIAG_DESC(kVmxVDiag_Vmread_PtrMap , "PtrMap" ), 124 VMXV_DIAG_DESC(kVmxVDiag_Vmread_RealOrV86Mode , "RealOrV86Mode" ), 125 VMXV_DIAG_DESC(kVmxVDiag_Vmread_Success , "Success" ), 126 VMXV_DIAG_DESC(kVmxVDiag_Vmread_VmxRoot , "VmxRoot" ), 127 127 /* VMLAUNCH/VMRESUME. */ 128 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_AddrApicAccess , "AddrApicAccess" ),129 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_AddrEntryMsrLoad , "AddrEntryMsrLoad" ),130 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_AddrExitMsrLoad , "AddrExitMsrLoad" ),131 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_AddrExitMsrStore , "AddrExitMsrStore" ),132 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_AddrIoBitmapA , "AddrIoBitmapA" ),133 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_AddrIoBitmapB , "AddrIoBitmapB" ),134 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_AddrMsrBitmap , "AddrMsrBitmap" ),135 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_AddrVirtApicPage , "AddrVirtApicPage" ),136 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_AddrVmreadBitmap , "AddrVmreadBitmap" ),137 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_AddrVmwriteBitmap , "AddrVmwriteBitmap" ),138 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_ApicRegVirt , "ApicRegVirt" ),139 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_BlocKMovSS , "BlockMovSS" ),140 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_Cpl , "Cpl" ),141 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_Cr3TargetCount , "Cr3TargetCount" ),142 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_EntryCtlsAllowed1 , "EntryCtlsAllowed1" ),143 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_EntryCtlsDisallowed0 , "EntryCtlsDisallowed0" ),144 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_EntryInstrLen , "EntryInstrLen" ),145 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_EntryInstrLenZero , "EntryInstrLenZero" ),146 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_EntryIntInfoErrCodePe , "EntryIntInfoErrCodePe" ),147 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_EntryIntInfoErrCodeVec , "EntryIntInfoErrCodeVec" ),148 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_EntryIntInfoTypeVecRsvd , "EntryIntInfoTypeVecRsvd" ),149 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_EntryXcptErrCodeRsvd , "EntryXcptErrCodeRsvd" ),150 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_ExitCtlsAllowed1 , "ExitCtlsAllowed1" ),151 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_ExitCtlsDisallowed0 , "ExitCtlsDisallowed0" ),152 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestCr0Fixed0 , "GuestCr0Fixed0" ),153 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestCr0Fixed1 , "GuestCr0Fixed1" ),154 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestCr0PgPe , "GuestCr0PgPe" ),155 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestCr3 , "GuestCr3" ),156 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestCr4Fixed0 , "GuestCr4Fixed0" ),157 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestCr4Fixed1 , "GuestCr4Fixed1" ),158 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestDebugCtl , "GuestDebugCtl" ),159 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestDr7 , "GuestDr7" ),160 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestEferMsr , "GuestEferMsr" ),161 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestEferMsrRsvd , "GuestEferMsrRsvd" ),162 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestGdtrBase , "GuestGdtrBase" ),163 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestGdtrLimit , "GuestGdtrLimit" ),164 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestIdtrBase , "GuestIdtrBase" ),165 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestIdtrLimit , "GuestIdtrLimit" ),166 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestPae , "GuestPae" ),167 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestPatMsr , "GuestPatMsr" ),168 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestPcide , "GuestPcide" ),169 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrCsDefBig , "GuestSegAttrCsDefBig" ),170 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrCsDplEqSs , "GuestSegAttrCsDplEqSs" ),171 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrCsDplLtSs , "GuestSegAttrCsDplLtSs" ),172 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrCsDplZero , "GuestSegAttrCsDplZero" ),173 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrCsType , "GuestSegAttrCsType" ),174 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrCsTypeRead , "GuestSegAttrCsTypeRead" ),175 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrDescTypeCs , "GuestSegAttrDescTypeCs" ),176 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrDescTypeDs , "GuestSegAttrDescTypeDs" ),177 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrDescTypeEs , "GuestSegAttrDescTypeEs" ),178 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrDescTypeFs , "GuestSegAttrDescTypeFs" ),179 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrDescTypeGs , "GuestSegAttrDescTypeGs" ),180 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrDescTypeSs , "GuestSegAttrDescTypeSs" ),181 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrDplRplCs , "GuestSegAttrDplRplCs" ),182 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrDplRplDs , "GuestSegAttrDplRplDs" ),183 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrDplRplEs , "GuestSegAttrDplRplEs" ),184 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrDplRplFs , "GuestSegAttrDplRplFs" ),185 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrDplRplGs , "GuestSegAttrDplRplGs" ),186 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrDplRplSs , "GuestSegAttrDplRplSs" ),187 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrGranCs , "GuestSegAttrGranCs" ),188 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrGranDs , "GuestSegAttrGranDs" ),189 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrGranEs , "GuestSegAttrGranEs" ),190 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrGranFs , "GuestSegAttrGranFs" ),191 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrGranGs , "GuestSegAttrGranGs" ),192 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrGranSs , "GuestSegAttrGranSs" ),193 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrLdtrDescType , "GuestSegAttrLdtrDescType"),194 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrLdtrGran , "GuestSegAttrLdtrGran" ),195 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrLdtrPresent , "GuestSegAttrLdtrPresent" ),196 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrLdtrRsvd , "GuestSegAttrLdtrRsvd" ),197 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrLdtrType , "GuestSegAttrLdtrType" ),198 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrPresentCs , "GuestSegAttrPresentCs" ),199 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrPresentDs , "GuestSegAttrPresentDs" ),200 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrPresentEs , "GuestSegAttrPresentEs" ),201 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrPresentFs , "GuestSegAttrPresentFs" ),202 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrPresentGs , "GuestSegAttrPresentGs" ),203 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrPresentSs , "GuestSegAttrPresentSs" ),204 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrRsvdCs , "GuestSegAttrRsvdCs" ),205 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrRsvdDs , "GuestSegAttrRsvdDs" ),206 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrRsvdEs , "GuestSegAttrRsvdEs" ),207 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrRsvdFs , "GuestSegAttrRsvdFs" ),208 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrRsvdGs , "GuestSegAttrRsvdGs" ),209 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrRsvdSs , "GuestSegAttrRsvdSs" ),210 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrSsDplEqRpl , "GuestSegAttrSsDplEqRpl" ),211 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrSsDplZero , "GuestSegAttrSsDplZero " ),212 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrSsType , "GuestSegAttrSsType" ),213 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrTrDescType , "GuestSegAttrTrDescType" ),214 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrTrGran , "GuestSegAttrTrGran" ),215 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrTrPresent , "GuestSegAttrTrPresent" ),216 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrTrRsvd , "GuestSegAttrTrRsvd" ),217 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrTrType , "GuestSegAttrTrType" ),218 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrTrUnusable , "GuestSegAttrTrUnusable" ),219 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrTypeAccCs , "GuestSegAttrTypeAccCs" ),220 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrTypeAccDs , "GuestSegAttrTypeAccDs" ),221 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrTypeAccEs , "GuestSegAttrTypeAccEs" ),222 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrTypeAccFs , "GuestSegAttrTypeAccFs" ),223 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrTypeAccGs , "GuestSegAttrTypeAccGs" ),224 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrTypeAccSs , "GuestSegAttrTypeAccSs" ),225 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrV86Cs , "GuestSegAttrV86Cs" ),226 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrV86Ds , "GuestSegAttrV86Ds" ),227 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrV86Es , "GuestSegAttrV86Es" ),228 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrV86Fs , "GuestSegAttrV86Fs" ),229 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrV86Gs , "GuestSegAttrV86Gs" ),230 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegAttrV86Ss , "GuestSegAttrV86Ss" ),231 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegBaseCs , "GuestSegBaseCs" ),232 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegBaseDs , "GuestSegBaseDs" ),233 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegBaseEs , "GuestSegBaseEs" ),234 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegBaseFs , "GuestSegBaseFs" ),235 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegBaseGs , "GuestSegBaseGs" ),236 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegBaseLdtr , "GuestSegBaseLdtr" ),237 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegBaseSs , "GuestSegBaseSs" ),238 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegBaseTr , "GuestSegBaseTr" ),239 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegBaseV86Cs , "GuestSegBaseV86Cs" ),240 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegBaseV86Ds , "GuestSegBaseV86Ds" ),241 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegBaseV86Es , "GuestSegBaseV86Es" ),242 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegBaseV86Fs , "GuestSegBaseV86Fs" ),243 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegBaseV86Gs , "GuestSegBaseV86Gs" ),244 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegBaseV86Ss , "GuestSegBaseV86Ss" ),245 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegLimitV86Cs , "GuestSegLimitV86Cs" ),246 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegLimitV86Ds , "GuestSegLimitV86Ds" ),247 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegLimitV86Es , "GuestSegLimitV86Es" ),248 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegLimitV86Fs , "GuestSegLimitV86Fs" ),249 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegLimitV86Gs , "GuestSegLimitV86Gs" ),250 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegLimitV86Ss , "GuestSegLimitV86Ss" ),251 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegSelCsSsRpl , "GuestSegSelCsSsRpl" ),252 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegSelLdtr , "GuestSegSelLdtr" ),253 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSegSelTr , "GuestSegSelTr" ),254 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_GuestSysenterEspEip , "GuestSysenterEspEip" ),255 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_HostCr0Fixed0 , "HostCr0Fixed0" ),256 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_HostCr0Fixed1 , "HostCr0Fixed1" ),257 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_HostCr3 , "HostCr3" ),258 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_HostCr4Fixed0 , "HostCr4Fixed0" ),259 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_HostCr4Fixed1 , "HostCr4Fixed1" ),260 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_HostCr4Pae , "HostCr4Pae" ),261 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_HostCr4Pcide , "HostCr4Pcide" ),262 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_HostCsTr , "HostCsTr" ),263 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_HostEferMsr , "HostEferMsr" ),264 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_HostEferMsrRsvd , "HostEferMsrRsvd" ),265 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_HostGuestLongMode , "HostGuestLongMode" ),266 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_HostGuestLongModeNoCpu , "HostGuestLongModeNoCpu" ),267 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_HostLongMode , "HostLongMode" ),268 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_HostPatMsr , "HostPatMsr" ),269 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_HostRip , "HostRip" ),270 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_HostRipRsvd , "HostRipRsvd" ),271 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_HostSel , "HostSel" ),272 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_HostSegBase , "HostSegBase" ),273 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_HostSs , "HostSs" ),274 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_HostSysenterEspEip , "HostSysenterEspEip" ),275 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_LongModeCS , "LongModeCS" ),276 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_NmiWindowExit , "NmiWindowExit" ),277 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_PinCtlsAllowed1 , "PinCtlsAllowed1" ),278 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_PinCtlsDisallowed0 , "PinCtlsDisallowed0" ),279 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_ProcCtlsAllowed1 , "ProcCtlsAllowed1" ),280 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_ProcCtlsDisallowed0 , "ProcCtlsDisallowed0" ),281 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_ProcCtls2Allowed1 , "ProcCtls2Allowed1" ),282 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_ProcCtls2Disallowed0 , "ProcCtls2Disallowed0" ),283 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_PtrInvalid , "PtrInvalid" ),284 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_PtrReadPhys , "PtrReadPhys" ),285 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_RealOrV86Mode , "RealOrV86Mode" ),286 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_SavePreemptTimer , "SavePreemptTimer" ),287 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_Success , "Success" ),288 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_TprThreshold , "TprThreshold" ),289 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_TprThresholdVTpr , "TprThresholdVTpr" ),290 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_VirtApicPagePtrReadPhys , "VirtApicPageReadPhys" ),291 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_VirtIntDelivery , "VirtIntDelivery" ),292 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_VirtNmi , "VirtNmi" ),293 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_VirtX2ApicTprShadow , "VirtX2ApicTprShadow" ),294 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_VirtX2ApicVirtApic , "VirtX2ApicVirtApic" ),295 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_VmcsClear , "VmcsClear" ),296 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_VmcsLaunch , "VmcsLaunch" ),297 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_VmreadBitmapPtrReadPhys , "VmreadBitmapPtrReadPhys" ),298 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_VmwriteBitmapPtrReadPhys , "VmwriteBitmapPtrReadPhys"),299 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_VmxRoot , "VmxRoot" ),300 VMX _INSTR_DIAG_DESC(kVmxVInstrDiag_Vmentry_Vpid , "Vpid" )301 /* kVmxV InstrDiag_End */128 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_AddrApicAccess , "AddrApicAccess" ), 129 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_AddrEntryMsrLoad , "AddrEntryMsrLoad" ), 130 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_AddrExitMsrLoad , "AddrExitMsrLoad" ), 131 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_AddrExitMsrStore , "AddrExitMsrStore" ), 132 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_AddrIoBitmapA , "AddrIoBitmapA" ), 133 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_AddrIoBitmapB , "AddrIoBitmapB" ), 134 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_AddrMsrBitmap , "AddrMsrBitmap" ), 135 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_AddrVirtApicPage , "AddrVirtApicPage" ), 136 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_AddrVmreadBitmap , "AddrVmreadBitmap" ), 137 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_AddrVmwriteBitmap , "AddrVmwriteBitmap" ), 138 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_ApicRegVirt , "ApicRegVirt" ), 139 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_BlocKMovSS , "BlockMovSS" ), 140 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_Cpl , "Cpl" ), 141 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_Cr3TargetCount , "Cr3TargetCount" ), 142 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_EntryCtlsAllowed1 , "EntryCtlsAllowed1" ), 143 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_EntryCtlsDisallowed0 , "EntryCtlsDisallowed0" ), 144 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_EntryInstrLen , "EntryInstrLen" ), 145 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_EntryInstrLenZero , "EntryInstrLenZero" ), 146 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_EntryIntInfoErrCodePe , "EntryIntInfoErrCodePe" ), 147 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_EntryIntInfoErrCodeVec , "EntryIntInfoErrCodeVec" ), 148 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_EntryIntInfoTypeVecRsvd , "EntryIntInfoTypeVecRsvd" ), 149 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_EntryXcptErrCodeRsvd , "EntryXcptErrCodeRsvd" ), 150 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_ExitCtlsAllowed1 , "ExitCtlsAllowed1" ), 151 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_ExitCtlsDisallowed0 , "ExitCtlsDisallowed0" ), 152 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestCr0Fixed0 , "GuestCr0Fixed0" ), 153 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestCr0Fixed1 , "GuestCr0Fixed1" ), 154 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestCr0PgPe , "GuestCr0PgPe" ), 155 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestCr3 , "GuestCr3" ), 156 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestCr4Fixed0 , "GuestCr4Fixed0" ), 157 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestCr4Fixed1 , "GuestCr4Fixed1" ), 158 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestDebugCtl , "GuestDebugCtl" ), 159 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestDr7 , "GuestDr7" ), 160 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestEferMsr , "GuestEferMsr" ), 161 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestEferMsrRsvd , "GuestEferMsrRsvd" ), 162 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestGdtrBase , "GuestGdtrBase" ), 163 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestGdtrLimit , "GuestGdtrLimit" ), 164 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestIdtrBase , "GuestIdtrBase" ), 165 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestIdtrLimit , "GuestIdtrLimit" ), 166 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestPae , "GuestPae" ), 167 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestPatMsr , "GuestPatMsr" ), 168 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestPcide , "GuestPcide" ), 169 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrCsDefBig , "GuestSegAttrCsDefBig" ), 170 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrCsDplEqSs , "GuestSegAttrCsDplEqSs" ), 171 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrCsDplLtSs , "GuestSegAttrCsDplLtSs" ), 172 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrCsDplZero , "GuestSegAttrCsDplZero" ), 173 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrCsType , "GuestSegAttrCsType" ), 174 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrCsTypeRead , "GuestSegAttrCsTypeRead" ), 175 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrDescTypeCs , "GuestSegAttrDescTypeCs" ), 176 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrDescTypeDs , "GuestSegAttrDescTypeDs" ), 177 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrDescTypeEs , "GuestSegAttrDescTypeEs" ), 178 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrDescTypeFs , "GuestSegAttrDescTypeFs" ), 179 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrDescTypeGs , "GuestSegAttrDescTypeGs" ), 180 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrDescTypeSs , "GuestSegAttrDescTypeSs" ), 181 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrDplRplCs , "GuestSegAttrDplRplCs" ), 182 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrDplRplDs , "GuestSegAttrDplRplDs" ), 183 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrDplRplEs , "GuestSegAttrDplRplEs" ), 184 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrDplRplFs , "GuestSegAttrDplRplFs" ), 185 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrDplRplGs , "GuestSegAttrDplRplGs" ), 186 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrDplRplSs , "GuestSegAttrDplRplSs" ), 187 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrGranCs , "GuestSegAttrGranCs" ), 188 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrGranDs , "GuestSegAttrGranDs" ), 189 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrGranEs , "GuestSegAttrGranEs" ), 190 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrGranFs , "GuestSegAttrGranFs" ), 191 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrGranGs , "GuestSegAttrGranGs" ), 192 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrGranSs , "GuestSegAttrGranSs" ), 193 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrLdtrDescType , "GuestSegAttrLdtrDescType"), 194 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrLdtrGran , "GuestSegAttrLdtrGran" ), 195 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrLdtrPresent , "GuestSegAttrLdtrPresent" ), 196 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrLdtrRsvd , "GuestSegAttrLdtrRsvd" ), 197 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrLdtrType , "GuestSegAttrLdtrType" ), 198 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrPresentCs , "GuestSegAttrPresentCs" ), 199 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrPresentDs , "GuestSegAttrPresentDs" ), 200 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrPresentEs , "GuestSegAttrPresentEs" ), 201 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrPresentFs , "GuestSegAttrPresentFs" ), 202 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrPresentGs , "GuestSegAttrPresentGs" ), 203 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrPresentSs , "GuestSegAttrPresentSs" ), 204 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrRsvdCs , "GuestSegAttrRsvdCs" ), 205 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrRsvdDs , "GuestSegAttrRsvdDs" ), 206 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrRsvdEs , "GuestSegAttrRsvdEs" ), 207 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrRsvdFs , "GuestSegAttrRsvdFs" ), 208 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrRsvdGs , "GuestSegAttrRsvdGs" ), 209 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrRsvdSs , "GuestSegAttrRsvdSs" ), 210 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrSsDplEqRpl , "GuestSegAttrSsDplEqRpl" ), 211 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrSsDplZero , "GuestSegAttrSsDplZero " ), 212 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrSsType , "GuestSegAttrSsType" ), 213 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrTrDescType , "GuestSegAttrTrDescType" ), 214 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrTrGran , "GuestSegAttrTrGran" ), 215 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrTrPresent , "GuestSegAttrTrPresent" ), 216 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrTrRsvd , "GuestSegAttrTrRsvd" ), 217 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrTrType , "GuestSegAttrTrType" ), 218 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrTrUnusable , "GuestSegAttrTrUnusable" ), 219 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrTypeAccCs , "GuestSegAttrTypeAccCs" ), 220 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrTypeAccDs , "GuestSegAttrTypeAccDs" ), 221 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrTypeAccEs , "GuestSegAttrTypeAccEs" ), 222 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrTypeAccFs , "GuestSegAttrTypeAccFs" ), 223 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrTypeAccGs , "GuestSegAttrTypeAccGs" ), 224 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrTypeAccSs , "GuestSegAttrTypeAccSs" ), 225 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrV86Cs , "GuestSegAttrV86Cs" ), 226 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrV86Ds , "GuestSegAttrV86Ds" ), 227 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrV86Es , "GuestSegAttrV86Es" ), 228 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrV86Fs , "GuestSegAttrV86Fs" ), 229 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrV86Gs , "GuestSegAttrV86Gs" ), 230 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegAttrV86Ss , "GuestSegAttrV86Ss" ), 231 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegBaseCs , "GuestSegBaseCs" ), 232 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegBaseDs , "GuestSegBaseDs" ), 233 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegBaseEs , "GuestSegBaseEs" ), 234 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegBaseFs , "GuestSegBaseFs" ), 235 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegBaseGs , "GuestSegBaseGs" ), 236 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegBaseLdtr , "GuestSegBaseLdtr" ), 237 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegBaseSs , "GuestSegBaseSs" ), 238 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegBaseTr , "GuestSegBaseTr" ), 239 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegBaseV86Cs , "GuestSegBaseV86Cs" ), 240 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegBaseV86Ds , "GuestSegBaseV86Ds" ), 241 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegBaseV86Es , "GuestSegBaseV86Es" ), 242 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegBaseV86Fs , "GuestSegBaseV86Fs" ), 243 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegBaseV86Gs , "GuestSegBaseV86Gs" ), 244 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegBaseV86Ss , "GuestSegBaseV86Ss" ), 245 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegLimitV86Cs , "GuestSegLimitV86Cs" ), 246 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegLimitV86Ds , "GuestSegLimitV86Ds" ), 247 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegLimitV86Es , "GuestSegLimitV86Es" ), 248 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegLimitV86Fs , "GuestSegLimitV86Fs" ), 249 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegLimitV86Gs , "GuestSegLimitV86Gs" ), 250 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegLimitV86Ss , "GuestSegLimitV86Ss" ), 251 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegSelCsSsRpl , "GuestSegSelCsSsRpl" ), 252 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegSelLdtr , "GuestSegSelLdtr" ), 253 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSegSelTr , "GuestSegSelTr" ), 254 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_GuestSysenterEspEip , "GuestSysenterEspEip" ), 255 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_HostCr0Fixed0 , "HostCr0Fixed0" ), 256 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_HostCr0Fixed1 , "HostCr0Fixed1" ), 257 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_HostCr3 , "HostCr3" ), 258 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_HostCr4Fixed0 , "HostCr4Fixed0" ), 259 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_HostCr4Fixed1 , "HostCr4Fixed1" ), 260 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_HostCr4Pae , "HostCr4Pae" ), 261 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_HostCr4Pcide , "HostCr4Pcide" ), 262 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_HostCsTr , "HostCsTr" ), 263 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_HostEferMsr , "HostEferMsr" ), 264 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_HostEferMsrRsvd , "HostEferMsrRsvd" ), 265 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_HostGuestLongMode , "HostGuestLongMode" ), 266 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_HostGuestLongModeNoCpu , "HostGuestLongModeNoCpu" ), 267 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_HostLongMode , "HostLongMode" ), 268 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_HostPatMsr , "HostPatMsr" ), 269 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_HostRip , "HostRip" ), 270 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_HostRipRsvd , "HostRipRsvd" ), 271 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_HostSel , "HostSel" ), 272 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_HostSegBase , "HostSegBase" ), 273 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_HostSs , "HostSs" ), 274 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_HostSysenterEspEip , "HostSysenterEspEip" ), 275 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_LongModeCS , "LongModeCS" ), 276 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_NmiWindowExit , "NmiWindowExit" ), 277 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_PinCtlsAllowed1 , "PinCtlsAllowed1" ), 278 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_PinCtlsDisallowed0 , "PinCtlsDisallowed0" ), 279 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_ProcCtlsAllowed1 , "ProcCtlsAllowed1" ), 280 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_ProcCtlsDisallowed0 , "ProcCtlsDisallowed0" ), 281 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_ProcCtls2Allowed1 , "ProcCtls2Allowed1" ), 282 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_ProcCtls2Disallowed0 , "ProcCtls2Disallowed0" ), 283 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_PtrInvalid , "PtrInvalid" ), 284 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_PtrReadPhys , "PtrReadPhys" ), 285 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_RealOrV86Mode , "RealOrV86Mode" ), 286 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_SavePreemptTimer , "SavePreemptTimer" ), 287 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_Success , "Success" ), 288 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_TprThreshold , "TprThreshold" ), 289 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_TprThresholdVTpr , "TprThresholdVTpr" ), 290 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_VirtApicPagePtrReadPhys , "VirtApicPageReadPhys" ), 291 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_VirtIntDelivery , "VirtIntDelivery" ), 292 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_VirtNmi , "VirtNmi" ), 293 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_VirtX2ApicTprShadow , "VirtX2ApicTprShadow" ), 294 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_VirtX2ApicVirtApic , "VirtX2ApicVirtApic" ), 295 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_VmcsClear , "VmcsClear" ), 296 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_VmcsLaunch , "VmcsLaunch" ), 297 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_VmreadBitmapPtrReadPhys , "VmreadBitmapPtrReadPhys" ), 298 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_VmwriteBitmapPtrReadPhys , "VmwriteBitmapPtrReadPhys"), 299 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_VmxRoot , "VmxRoot" ), 300 VMXV_DIAG_DESC(kVmxVDiag_Vmentry_Vpid , "Vpid" ) 301 /* kVmxVDiag_End */ 302 302 }; 303 AssertCompile(RT_ELEMENTS(g_apszVmx InstrDiagDesc) == kVmxVInstrDiag_End);304 #undef VMX _INSTR_DIAG_DESC303 AssertCompile(RT_ELEMENTS(g_apszVmxVDiagDesc) == kVmxVDiag_End); 304 #undef VMXV_DIAG_DESC 305 305 306 306 … … 383 383 384 384 385 #ifdef VBOX_WITH_NESTED_HWVIRT_VMX 385 386 /** 386 * Gets the description of a VMX instruction diagnostic enum member.387 * Gets the description of a VMX instruction/Vm-exit diagnostic. 387 388 * 388 389 * @returns The descriptive string. 389 390 * @param enmInstrDiag The VMX instruction diagnostic. 390 391 */ 391 VMM_INT_DECL(const char *) HMVmxGet InstrDiagDesc(VMXVINSTRDIAG enmInstrDiag)392 VMM_INT_DECL(const char *) HMVmxGetDiagDesc(VMXVDIAG enmDiag) 392 393 { 393 if (RT_LIKELY((unsigned)enm InstrDiag < RT_ELEMENTS(g_apszVmxInstrDiagDesc)))394 return g_apszVmx InstrDiagDesc[enmInstrDiag];394 if (RT_LIKELY((unsigned)enmDiag < RT_ELEMENTS(g_apszVmxVDiagDesc))) 395 return g_apszVmxVDiagDesc[enmDiag]; 395 396 return "Unknown/invalid"; 396 397 } 397 398 #endif 398 399 399 400 /** -
trunk/src/VBox/VMM/VMMAll/IEMAll.cpp
r74015 r74155 12561 12561 if (IEM_IS_REAL_OR_V86_MODE(pVCpu)) \ 12562 12562 { \ 12563 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = a_InsDiagPrefix##_RealOrV86Mode; \12563 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = a_InsDiagPrefix##_RealOrV86Mode; \ 12564 12564 Log5((a_szInstr ": Real or v8086 mode -> #UD\n")); \ 12565 12565 return IEMOP_RAISE_INVALID_OPCODE(); \ … … 12567 12567 if (IEM_IS_LONG_MODE(pVCpu) && !IEM_IS_64BIT_CODE(pVCpu)) \ 12568 12568 { \ 12569 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = a_InsDiagPrefix##_LongModeCS; \12569 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = a_InsDiagPrefix##_LongModeCS; \ 12570 12570 Log5((a_szInstr ": Long mode without 64-bit code segment -> #UD\n")); \ 12571 12571 return IEMOP_RAISE_INVALID_OPCODE(); \ … … 12585 12585 else \ 12586 12586 { \ 12587 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = a_InsDiagPrefix##_VmxRoot; \12587 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = a_InsDiagPrefix##_VmxRoot; \ 12588 12588 Log5((a_szInstr ": Not in VMX operation (root mode) -> #UD\n")); \ 12589 12589 return IEMOP_RAISE_INVALID_OPCODE(); \ -
trunk/src/VBox/VMM/VMMAll/IEMAllCImplVmxInstr.cpp.h
r74154 r74155 403 403 { \ 404 404 Log((a_szInstr ": Real or v8086 mode -> #UD\n")); \ 405 (a_pVCpu)->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = a_InsDiagPrefix##_RealOrV86Mode; \405 (a_pVCpu)->cpum.GstCtx.hwvirt.vmx.enmDiag = a_InsDiagPrefix##_RealOrV86Mode; \ 406 406 return iemRaiseUndefinedOpcode(a_pVCpu); \ 407 407 } \ … … 409 409 { \ 410 410 Log((a_szInstr ": Long mode without 64-bit code segment -> #UD\n")); \ 411 (a_pVCpu)->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = a_InsDiagPrefix##_LongModeCS; \411 (a_pVCpu)->cpum.GstCtx.hwvirt.vmx.enmDiag = a_InsDiagPrefix##_LongModeCS; \ 412 412 return iemRaiseUndefinedOpcode(a_pVCpu); \ 413 413 } \ … … 425 425 { \ 426 426 Log((a_szInstr ": Not in VMX operation (root mode) -> #UD\n")); \ 427 (a_pVCpu)->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = a_InsDiagPrefix##_VmxRoot; \427 (a_pVCpu)->cpum.GstCtx.hwvirt.vmx.enmDiag = a_InsDiagPrefix##_VmxRoot; \ 428 428 return iemRaiseUndefinedOpcode(a_pVCpu); \ 429 429 } \ … … 434 434 do \ 435 435 { \ 436 Log(("%s: VM-entry failed! enm InstrDiag=%u (%s) -> %s\n", (a_pszInstr), (a_InsDiag), \437 HMVmxGet InstrDiagDesc(a_InsDiag), (a_pszFailure))); \438 (a_pVCpu)->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = (a_InsDiag); \436 Log(("%s: VM-entry failed! enmDiag=%u (%s) -> %s\n", (a_pszInstr), (a_InsDiag), \ 437 HMVmxGetDiagDesc(a_InsDiag), (a_pszFailure))); \ 438 (a_pVCpu)->cpum.GstCtx.hwvirt.vmx.enmDiag = (a_InsDiag); \ 439 439 return VERR_VMX_VMENTRY_FAILED; \ 440 440 } while (0) … … 1215 1215 DECL_FORCE_INLINE(void) iemVmxVmreadSuccess(PVMCPU pVCpu, uint8_t cbInstr) 1216 1216 { 1217 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmread_Success;1217 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmread_Success; 1218 1218 iemVmxVmSucceed(pVCpu); 1219 1219 iemRegAddToRipAndClearRF(pVCpu, cbInstr); … … 1246 1246 { 1247 1247 Log(("vmread: CPL %u -> #GP(0)\n", pVCpu->iem.s.uCpl)); 1248 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmread_Cpl;1248 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmread_Cpl; 1249 1249 return iemRaiseGeneralProtectionFault0(pVCpu); 1250 1250 } … … 1255 1255 { 1256 1256 Log(("vmread: VMCS pointer %#RGp invalid -> VMFailInvalid\n", IEM_VMX_GET_CURRENT_VMCS(pVCpu))); 1257 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmread_PtrInvalid;1257 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmread_PtrInvalid; 1258 1258 iemVmxVmFailInvalid(pVCpu); 1259 1259 iemRegAddToRipAndClearRF(pVCpu, cbInstr); … … 1266 1266 { 1267 1267 Log(("vmread: VMCS-link pointer %#RGp invalid -> VMFailInvalid\n", IEM_VMX_GET_SHADOW_VMCS(pVCpu))); 1268 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmread_LinkPtrInvalid;1268 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmread_LinkPtrInvalid; 1269 1269 iemVmxVmFailInvalid(pVCpu); 1270 1270 iemRegAddToRipAndClearRF(pVCpu, cbInstr); … … 1276 1276 { 1277 1277 Log(("vmread: VMCS field %#RX64 invalid -> VMFail\n", u64FieldEnc)); 1278 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmread_FieldInvalid;1278 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmread_FieldInvalid; 1279 1279 iemVmxVmFail(pVCpu, VMXINSTRERR_VMREAD_INVALID_COMPONENT); 1280 1280 iemRegAddToRipAndClearRF(pVCpu, cbInstr); … … 1419 1419 1420 1420 Log(("vmread/mem: Failed to write to memory operand at %#RGv, rc=%Rrc\n", GCPtrDst, VBOXSTRICTRC_VAL(rcStrict))); 1421 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmread_PtrMap;1421 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmread_PtrMap; 1422 1422 return rcStrict; 1423 1423 } … … 1458 1458 { 1459 1459 Log(("vmwrite: CPL %u -> #GP(0)\n", pVCpu->iem.s.uCpl)); 1460 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmwrite_Cpl;1460 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmwrite_Cpl; 1461 1461 return iemRaiseGeneralProtectionFault0(pVCpu); 1462 1462 } … … 1467 1467 { 1468 1468 Log(("vmwrite: VMCS pointer %#RGp invalid -> VMFailInvalid\n", IEM_VMX_GET_CURRENT_VMCS(pVCpu))); 1469 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmwrite_PtrInvalid;1469 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmwrite_PtrInvalid; 1470 1470 iemVmxVmFailInvalid(pVCpu); 1471 1471 iemRegAddToRipAndClearRF(pVCpu, cbInstr); … … 1478 1478 { 1479 1479 Log(("vmwrite: VMCS-link pointer %#RGp invalid -> VMFailInvalid\n", IEM_VMX_GET_SHADOW_VMCS(pVCpu))); 1480 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmwrite_LinkPtrInvalid;1480 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmwrite_LinkPtrInvalid; 1481 1481 iemVmxVmFailInvalid(pVCpu); 1482 1482 iemRegAddToRipAndClearRF(pVCpu, cbInstr); … … 1505 1505 { 1506 1506 Log(("vmwrite: Failed to read value from memory operand at %#RGv, rc=%Rrc\n", GCPtrVal, VBOXSTRICTRC_VAL(rcStrict))); 1507 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmwrite_PtrMap;1507 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmwrite_PtrMap; 1508 1508 return rcStrict; 1509 1509 } … … 1516 1516 { 1517 1517 Log(("vmwrite: VMCS field %#RX64 invalid -> VMFail\n", u64FieldEnc)); 1518 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmwrite_FieldInvalid;1518 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmwrite_FieldInvalid; 1519 1519 iemVmxVmFail(pVCpu, VMXINSTRERR_VMWRITE_INVALID_COMPONENT); 1520 1520 iemRegAddToRipAndClearRF(pVCpu, cbInstr); … … 1528 1528 { 1529 1529 Log(("vmwrite: Write to read-only VMCS component %#RX64 -> VMFail\n", u64FieldEnc)); 1530 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmwrite_FieldRo;1530 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmwrite_FieldRo; 1531 1531 iemVmxVmFail(pVCpu, VMXINSTRERR_VMWRITE_RO_COMPONENT); 1532 1532 iemRegAddToRipAndClearRF(pVCpu, cbInstr); … … 1569 1569 } 1570 1570 1571 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmwrite_Success;1571 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmwrite_Success; 1572 1572 iemVmxVmSucceed(pVCpu); 1573 1573 iemRegAddToRipAndClearRF(pVCpu, cbInstr); … … 1603 1603 { 1604 1604 Log(("vmclear: CPL %u -> #GP(0)\n", pVCpu->iem.s.uCpl)); 1605 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmclear_Cpl;1605 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmclear_Cpl; 1606 1606 return iemRaiseGeneralProtectionFault0(pVCpu); 1607 1607 } … … 1613 1613 { 1614 1614 Log(("vmclear: Failed to read VMCS physaddr from %#RGv, rc=%Rrc\n", GCPtrVmcs, VBOXSTRICTRC_VAL(rcStrict))); 1615 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmclear_PtrMap;1615 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmclear_PtrMap; 1616 1616 return rcStrict; 1617 1617 } … … 1621 1621 { 1622 1622 Log(("vmclear: VMCS pointer not page-aligned -> VMFail()\n")); 1623 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmclear_PtrAlign;1623 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmclear_PtrAlign; 1624 1624 iemVmxVmFail(pVCpu, VMXINSTRERR_VMCLEAR_INVALID_PHYSADDR); 1625 1625 iemRegAddToRipAndClearRF(pVCpu, cbInstr); … … 1631 1631 { 1632 1632 Log(("vmclear: VMCS pointer extends beyond physical-address width -> VMFail()\n")); 1633 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmclear_PtrWidth;1633 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmclear_PtrWidth; 1634 1634 iemVmxVmFail(pVCpu, VMXINSTRERR_VMCLEAR_INVALID_PHYSADDR); 1635 1635 iemRegAddToRipAndClearRF(pVCpu, cbInstr); … … 1641 1641 { 1642 1642 Log(("vmclear: VMCS pointer cannot be identical to VMXON region pointer -> VMFail()\n")); 1643 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmclear_PtrVmxon;1643 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmclear_PtrVmxon; 1644 1644 iemVmxVmFail(pVCpu, VMXINSTRERR_VMCLEAR_VMXON_PTR); 1645 1645 iemRegAddToRipAndClearRF(pVCpu, cbInstr); … … 1652 1652 { 1653 1653 Log(("vmclear: VMCS not normal memory -> VMFail()\n")); 1654 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmclear_PtrAbnormal;1654 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmclear_PtrAbnormal; 1655 1655 iemVmxVmFail(pVCpu, VMXINSTRERR_VMCLEAR_INVALID_PHYSADDR); 1656 1656 iemRegAddToRipAndClearRF(pVCpu, cbInstr); … … 1680 1680 } 1681 1681 1682 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmclear_Success;1682 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmclear_Success; 1683 1683 iemVmxVmSucceed(pVCpu); 1684 1684 iemRegAddToRipAndClearRF(pVCpu, cbInstr); … … 1715 1715 { 1716 1716 Log(("vmptrst: CPL %u -> #GP(0)\n", pVCpu->iem.s.uCpl)); 1717 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmptrst_Cpl;1717 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmptrst_Cpl; 1718 1718 return iemRaiseGeneralProtectionFault0(pVCpu); 1719 1719 } … … 1724 1724 if (RT_LIKELY(rcStrict == VINF_SUCCESS)) 1725 1725 { 1726 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmptrst_Success;1726 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmptrst_Success; 1727 1727 iemVmxVmSucceed(pVCpu); 1728 1728 iemRegAddToRipAndClearRF(pVCpu, cbInstr); … … 1731 1731 1732 1732 Log(("vmptrst: Failed to store VMCS pointer to memory at destination operand %#Rrc\n", VBOXSTRICTRC_VAL(rcStrict))); 1733 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmptrst_PtrMap;1733 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmptrst_PtrMap; 1734 1734 return rcStrict; 1735 1735 } … … 1762 1762 { 1763 1763 Log(("vmptrld: CPL %u -> #GP(0)\n", pVCpu->iem.s.uCpl)); 1764 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmptrld_Cpl;1764 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmptrld_Cpl; 1765 1765 return iemRaiseGeneralProtectionFault0(pVCpu); 1766 1766 } … … 1772 1772 { 1773 1773 Log(("vmptrld: Failed to read VMCS physaddr from %#RGv, rc=%Rrc\n", GCPtrVmcs, VBOXSTRICTRC_VAL(rcStrict))); 1774 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmptrld_PtrMap;1774 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmptrld_PtrMap; 1775 1775 return rcStrict; 1776 1776 } … … 1780 1780 { 1781 1781 Log(("vmptrld: VMCS pointer not page-aligned -> VMFail()\n")); 1782 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmptrld_PtrAlign;1782 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmptrld_PtrAlign; 1783 1783 iemVmxVmFail(pVCpu, VMXINSTRERR_VMPTRLD_INVALID_PHYSADDR); 1784 1784 iemRegAddToRipAndClearRF(pVCpu, cbInstr); … … 1790 1790 { 1791 1791 Log(("vmptrld: VMCS pointer extends beyond physical-address width -> VMFail()\n")); 1792 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmptrld_PtrWidth;1792 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmptrld_PtrWidth; 1793 1793 iemVmxVmFail(pVCpu, VMXINSTRERR_VMPTRLD_INVALID_PHYSADDR); 1794 1794 iemRegAddToRipAndClearRF(pVCpu, cbInstr); … … 1800 1800 { 1801 1801 Log(("vmptrld: VMCS pointer cannot be identical to VMXON region pointer -> VMFail()\n")); 1802 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmptrld_PtrVmxon;1802 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmptrld_PtrVmxon; 1803 1803 iemVmxVmFail(pVCpu, VMXINSTRERR_VMPTRLD_VMXON_PTR); 1804 1804 iemRegAddToRipAndClearRF(pVCpu, cbInstr); … … 1811 1811 { 1812 1812 Log(("vmptrld: VMCS not normal memory -> VMFail()\n")); 1813 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmptrld_PtrAbnormal;1813 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmptrld_PtrAbnormal; 1814 1814 iemVmxVmFail(pVCpu, VMXINSTRERR_VMPTRLD_INVALID_PHYSADDR); 1815 1815 iemRegAddToRipAndClearRF(pVCpu, cbInstr); … … 1823 1823 { 1824 1824 Log(("vmptrld: Failed to read VMCS at %#RGp, rc=%Rrc\n", GCPhysVmcs, rc)); 1825 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmptrld_PtrReadPhys;1825 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmptrld_PtrReadPhys; 1826 1826 return rc; 1827 1827 } … … 1837 1837 Log(("vmptrld: VMCS revision mismatch, expected %#RX32 got %#RX32 -> VMFail()\n", VMX_V_VMCS_REVISION_ID, 1838 1838 VmcsRevId.n.u31RevisionId)); 1839 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmptrld_VmcsRevId;1839 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmptrld_VmcsRevId; 1840 1840 iemVmxVmFail(pVCpu, VMXINSTRERR_VMPTRLD_INCORRECT_VMCS_REV); 1841 1841 iemRegAddToRipAndClearRF(pVCpu, cbInstr); … … 1844 1844 1845 1845 Log(("vmptrld: Shadow VMCS -> VMFail()\n")); 1846 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmptrld_ShadowVmcs;1846 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmptrld_ShadowVmcs; 1847 1847 iemVmxVmFail(pVCpu, VMXINSTRERR_VMPTRLD_INCORRECT_VMCS_REV); 1848 1848 iemRegAddToRipAndClearRF(pVCpu, cbInstr); … … 1860 1860 IEM_VMX_SET_CURRENT_VMCS(pVCpu, GCPhysVmcs); 1861 1861 } 1862 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmptrld_Success;1862 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmptrld_Success; 1863 1863 iemVmxVmSucceed(pVCpu); 1864 1864 iemRegAddToRipAndClearRF(pVCpu, cbInstr); … … 1894 1894 { 1895 1895 Log(("vmxon: CPL %u -> #GP(0)\n", pVCpu->iem.s.uCpl)); 1896 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmxon_Cpl;1896 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmxon_Cpl; 1897 1897 return iemRaiseGeneralProtectionFault0(pVCpu); 1898 1898 } … … 1902 1902 { 1903 1903 Log(("vmxon: A20M mode -> #GP(0)\n")); 1904 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmxon_A20M;1904 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmxon_A20M; 1905 1905 return iemRaiseGeneralProtectionFault0(pVCpu); 1906 1906 } … … 1912 1912 { 1913 1913 Log(("vmxon: CR0 fixed0 bits cleared -> #GP(0)\n")); 1914 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmxon_Cr0Fixed0;1914 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmxon_Cr0Fixed0; 1915 1915 return iemRaiseGeneralProtectionFault0(pVCpu); 1916 1916 } … … 1920 1920 { 1921 1921 Log(("vmxon: CR4 fixed0 bits cleared -> #GP(0)\n")); 1922 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmxon_Cr4Fixed0;1922 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmxon_Cr4Fixed0; 1923 1923 return iemRaiseGeneralProtectionFault0(pVCpu); 1924 1924 } … … 1929 1929 { 1930 1930 Log(("vmxon: Feature control lock bit or VMXON bit cleared -> #GP(0)\n")); 1931 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmxon_MsrFeatCtl;1931 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmxon_MsrFeatCtl; 1932 1932 return iemRaiseGeneralProtectionFault0(pVCpu); 1933 1933 } … … 1939 1939 { 1940 1940 Log(("vmxon: Failed to read VMXON region physaddr from %#RGv, rc=%Rrc\n", GCPtrVmxon, VBOXSTRICTRC_VAL(rcStrict))); 1941 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmxon_PtrMap;1941 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmxon_PtrMap; 1942 1942 return rcStrict; 1943 1943 } … … 1947 1947 { 1948 1948 Log(("vmxon: VMXON region pointer not page-aligned -> VMFailInvalid\n")); 1949 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmxon_PtrAlign;1949 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmxon_PtrAlign; 1950 1950 iemVmxVmFailInvalid(pVCpu); 1951 1951 iemRegAddToRipAndClearRF(pVCpu, cbInstr); … … 1957 1957 { 1958 1958 Log(("vmxon: VMXON region pointer extends beyond physical-address width -> VMFailInvalid\n")); 1959 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmxon_PtrWidth;1959 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmxon_PtrWidth; 1960 1960 iemVmxVmFailInvalid(pVCpu); 1961 1961 iemRegAddToRipAndClearRF(pVCpu, cbInstr); … … 1968 1968 { 1969 1969 Log(("vmxon: VMXON region not normal memory -> VMFailInvalid\n")); 1970 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmxon_PtrAbnormal;1970 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmxon_PtrAbnormal; 1971 1971 iemVmxVmFailInvalid(pVCpu); 1972 1972 iemRegAddToRipAndClearRF(pVCpu, cbInstr); … … 1980 1980 { 1981 1981 Log(("vmxon: Failed to read VMXON region at %#RGp, rc=%Rrc\n", GCPhysVmxon, rc)); 1982 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmxon_PtrReadPhys;1982 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmxon_PtrReadPhys; 1983 1983 return rc; 1984 1984 } … … 1992 1992 Log(("vmxon: VMCS revision mismatch, expected %#RX32 got %#RX32 -> VMFailInvalid\n", VMX_V_VMCS_REVISION_ID, 1993 1993 VmcsRevId.n.u31RevisionId)); 1994 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmxon_VmcsRevId;1994 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmxon_VmcsRevId; 1995 1995 iemVmxVmFailInvalid(pVCpu); 1996 1996 iemRegAddToRipAndClearRF(pVCpu, cbInstr); … … 2000 2000 /* Shadow VMCS disallowed. */ 2001 2001 Log(("vmxon: Shadow VMCS -> VMFailInvalid\n")); 2002 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmxon_ShadowVmcs;2002 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmxon_ShadowVmcs; 2003 2003 iemVmxVmFailInvalid(pVCpu); 2004 2004 iemRegAddToRipAndClearRF(pVCpu, cbInstr); … … 2014 2014 /** @todo NSTVMX: clear address-range monitoring. */ 2015 2015 /** @todo NSTVMX: Intel PT. */ 2016 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmxon_Success;2016 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmxon_Success; 2017 2017 iemVmxVmSucceed(pVCpu); 2018 2018 iemRegAddToRipAndClearRF(pVCpu, cbInstr); … … 2035 2035 { 2036 2036 Log(("vmxon: In VMX root mode: CPL %u -> #GP(0)\n", pVCpu->iem.s.uCpl)); 2037 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmxon_VmxRootCpl;2037 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmxon_VmxRootCpl; 2038 2038 return iemRaiseGeneralProtectionFault0(pVCpu); 2039 2039 } … … 2041 2041 /* VMXON when already in VMX root mode. */ 2042 2042 iemVmxVmFail(pVCpu, VMXINSTRERR_VMXON_IN_VMXROOTMODE); 2043 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmxon_VmxAlreadyRoot;2043 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmxon_VmxAlreadyRoot; 2044 2044 iemRegAddToRipAndClearRF(pVCpu, cbInstr); 2045 2045 return VINF_SUCCESS; … … 2054 2054 * @param iSegReg The segment index (X86_SREG_XXX). 2055 2055 */ 2056 IEM_STATIC VMXV INSTRDIAG iemVmxVmentryGetInstrDiagSegBase(unsigned iSegReg)2056 IEM_STATIC VMXVDIAG iemVmxGetDiagVmentrySegBase(unsigned iSegReg) 2057 2057 { 2058 2058 switch (iSegReg) 2059 2059 { 2060 case X86_SREG_CS: return kVmxV InstrDiag_Vmentry_GuestSegBaseCs;2061 case X86_SREG_DS: return kVmxV InstrDiag_Vmentry_GuestSegBaseDs;2062 case X86_SREG_ES: return kVmxV InstrDiag_Vmentry_GuestSegBaseEs;2063 case X86_SREG_FS: return kVmxV InstrDiag_Vmentry_GuestSegBaseFs;2064 case X86_SREG_GS: return kVmxV InstrDiag_Vmentry_GuestSegBaseGs;2065 default: return kVmxV InstrDiag_Vmentry_GuestSegBaseSs;2060 case X86_SREG_CS: return kVmxVDiag_Vmentry_GuestSegBaseCs; 2061 case X86_SREG_DS: return kVmxVDiag_Vmentry_GuestSegBaseDs; 2062 case X86_SREG_ES: return kVmxVDiag_Vmentry_GuestSegBaseEs; 2063 case X86_SREG_FS: return kVmxVDiag_Vmentry_GuestSegBaseFs; 2064 case X86_SREG_GS: return kVmxVDiag_Vmentry_GuestSegBaseGs; 2065 default: return kVmxVDiag_Vmentry_GuestSegBaseSs; 2066 2066 } 2067 2067 } … … 2074 2074 * @param iSegReg The segment index (X86_SREG_XXX). 2075 2075 */ 2076 IEM_STATIC VMXV INSTRDIAG iemVmxVmentryGetInstrDiagSegBaseV86(unsigned iSegReg)2076 IEM_STATIC VMXVDIAG iemVmxGetDiagVmentrySegBaseV86(unsigned iSegReg) 2077 2077 { 2078 2078 switch (iSegReg) 2079 2079 { 2080 case X86_SREG_CS: return kVmxV InstrDiag_Vmentry_GuestSegBaseV86Cs;2081 case X86_SREG_DS: return kVmxV InstrDiag_Vmentry_GuestSegBaseV86Ds;2082 case X86_SREG_ES: return kVmxV InstrDiag_Vmentry_GuestSegBaseV86Es;2083 case X86_SREG_FS: return kVmxV InstrDiag_Vmentry_GuestSegBaseV86Fs;2084 case X86_SREG_GS: return kVmxV InstrDiag_Vmentry_GuestSegBaseV86Gs;2080 case X86_SREG_CS: return kVmxVDiag_Vmentry_GuestSegBaseV86Cs; 2081 case X86_SREG_DS: return kVmxVDiag_Vmentry_GuestSegBaseV86Ds; 2082 case X86_SREG_ES: return kVmxVDiag_Vmentry_GuestSegBaseV86Es; 2083 case X86_SREG_FS: return kVmxVDiag_Vmentry_GuestSegBaseV86Fs; 2084 case X86_SREG_GS: return kVmxVDiag_Vmentry_GuestSegBaseV86Gs; 2085 2085 default: 2086 2086 Assert(iSegReg == X86_SREG_SS); 2087 return kVmxV InstrDiag_Vmentry_GuestSegBaseV86Ss;2087 return kVmxVDiag_Vmentry_GuestSegBaseV86Ss; 2088 2088 } 2089 2089 } … … 2096 2096 * @param iSegReg The segment index (X86_SREG_XXX). 2097 2097 */ 2098 IEM_STATIC VMXV INSTRDIAG iemVmxVmentryGetInstrDiagSegLimitV86(unsigned iSegReg)2098 IEM_STATIC VMXVDIAG iemVmxGetDiagVmentrySegLimitV86(unsigned iSegReg) 2099 2099 { 2100 2100 switch (iSegReg) 2101 2101 { 2102 case X86_SREG_CS: return kVmxV InstrDiag_Vmentry_GuestSegLimitV86Cs;2103 case X86_SREG_DS: return kVmxV InstrDiag_Vmentry_GuestSegLimitV86Ds;2104 case X86_SREG_ES: return kVmxV InstrDiag_Vmentry_GuestSegLimitV86Es;2105 case X86_SREG_FS: return kVmxV InstrDiag_Vmentry_GuestSegLimitV86Fs;2106 case X86_SREG_GS: return kVmxV InstrDiag_Vmentry_GuestSegLimitV86Gs;2102 case X86_SREG_CS: return kVmxVDiag_Vmentry_GuestSegLimitV86Cs; 2103 case X86_SREG_DS: return kVmxVDiag_Vmentry_GuestSegLimitV86Ds; 2104 case X86_SREG_ES: return kVmxVDiag_Vmentry_GuestSegLimitV86Es; 2105 case X86_SREG_FS: return kVmxVDiag_Vmentry_GuestSegLimitV86Fs; 2106 case X86_SREG_GS: return kVmxVDiag_Vmentry_GuestSegLimitV86Gs; 2107 2107 default: 2108 2108 Assert(iSegReg == X86_SREG_SS); 2109 return kVmxV InstrDiag_Vmentry_GuestSegLimitV86Ss;2109 return kVmxVDiag_Vmentry_GuestSegLimitV86Ss; 2110 2110 } 2111 2111 } … … 2118 2118 * @param iSegReg The segment index (X86_SREG_XXX). 2119 2119 */ 2120 IEM_STATIC VMXV INSTRDIAG iemVmxVmentryGetInstrDiagSegAttrV86(unsigned iSegReg)2120 IEM_STATIC VMXVDIAG iemVmxGetDiagVmentrySegAttrV86(unsigned iSegReg) 2121 2121 { 2122 2122 switch (iSegReg) 2123 2123 { 2124 case X86_SREG_CS: return kVmxV InstrDiag_Vmentry_GuestSegAttrV86Cs;2125 case X86_SREG_DS: return kVmxV InstrDiag_Vmentry_GuestSegAttrV86Ds;2126 case X86_SREG_ES: return kVmxV InstrDiag_Vmentry_GuestSegAttrV86Es;2127 case X86_SREG_FS: return kVmxV InstrDiag_Vmentry_GuestSegAttrV86Fs;2128 case X86_SREG_GS: return kVmxV InstrDiag_Vmentry_GuestSegAttrV86Gs;2124 case X86_SREG_CS: return kVmxVDiag_Vmentry_GuestSegAttrV86Cs; 2125 case X86_SREG_DS: return kVmxVDiag_Vmentry_GuestSegAttrV86Ds; 2126 case X86_SREG_ES: return kVmxVDiag_Vmentry_GuestSegAttrV86Es; 2127 case X86_SREG_FS: return kVmxVDiag_Vmentry_GuestSegAttrV86Fs; 2128 case X86_SREG_GS: return kVmxVDiag_Vmentry_GuestSegAttrV86Gs; 2129 2129 default: 2130 2130 Assert(iSegReg == X86_SREG_SS); 2131 return kVmxV InstrDiag_Vmentry_GuestSegAttrV86Ss;2131 return kVmxVDiag_Vmentry_GuestSegAttrV86Ss; 2132 2132 } 2133 2133 } … … 2140 2140 * @param iSegReg The segment index (X86_SREG_XXX). 2141 2141 */ 2142 IEM_STATIC VMXV INSTRDIAG iemVmxVmentryGetInstrDiagSegAttrRsvd(unsigned iSegReg)2142 IEM_STATIC VMXVDIAG iemVmxGetDiagVmentrySegAttrRsvd(unsigned iSegReg) 2143 2143 { 2144 2144 switch (iSegReg) 2145 2145 { 2146 case X86_SREG_CS: return kVmxV InstrDiag_Vmentry_GuestSegAttrRsvdCs;2147 case X86_SREG_DS: return kVmxV InstrDiag_Vmentry_GuestSegAttrRsvdDs;2148 case X86_SREG_ES: return kVmxV InstrDiag_Vmentry_GuestSegAttrRsvdEs;2149 case X86_SREG_FS: return kVmxV InstrDiag_Vmentry_GuestSegAttrRsvdFs;2150 case X86_SREG_GS: return kVmxV InstrDiag_Vmentry_GuestSegAttrRsvdGs;2146 case X86_SREG_CS: return kVmxVDiag_Vmentry_GuestSegAttrRsvdCs; 2147 case X86_SREG_DS: return kVmxVDiag_Vmentry_GuestSegAttrRsvdDs; 2148 case X86_SREG_ES: return kVmxVDiag_Vmentry_GuestSegAttrRsvdEs; 2149 case X86_SREG_FS: return kVmxVDiag_Vmentry_GuestSegAttrRsvdFs; 2150 case X86_SREG_GS: return kVmxVDiag_Vmentry_GuestSegAttrRsvdGs; 2151 2151 default: 2152 2152 Assert(iSegReg == X86_SREG_SS); 2153 return kVmxV InstrDiag_Vmentry_GuestSegAttrRsvdSs;2153 return kVmxVDiag_Vmentry_GuestSegAttrRsvdSs; 2154 2154 } 2155 2155 } … … 2162 2162 * @param iSegReg The segment index (X86_SREG_XXX). 2163 2163 */ 2164 IEM_STATIC VMXV INSTRDIAG iemVmxVmentryGetInstrDiagSegAttrDescType(unsigned iSegReg)2164 IEM_STATIC VMXVDIAG iemVmxGetDiagVmentrySegAttrDescType(unsigned iSegReg) 2165 2165 { 2166 2166 switch (iSegReg) 2167 2167 { 2168 case X86_SREG_CS: return kVmxV InstrDiag_Vmentry_GuestSegAttrDescTypeCs;2169 case X86_SREG_DS: return kVmxV InstrDiag_Vmentry_GuestSegAttrDescTypeDs;2170 case X86_SREG_ES: return kVmxV InstrDiag_Vmentry_GuestSegAttrDescTypeEs;2171 case X86_SREG_FS: return kVmxV InstrDiag_Vmentry_GuestSegAttrDescTypeFs;2172 case X86_SREG_GS: return kVmxV InstrDiag_Vmentry_GuestSegAttrDescTypeGs;2168 case X86_SREG_CS: return kVmxVDiag_Vmentry_GuestSegAttrDescTypeCs; 2169 case X86_SREG_DS: return kVmxVDiag_Vmentry_GuestSegAttrDescTypeDs; 2170 case X86_SREG_ES: return kVmxVDiag_Vmentry_GuestSegAttrDescTypeEs; 2171 case X86_SREG_FS: return kVmxVDiag_Vmentry_GuestSegAttrDescTypeFs; 2172 case X86_SREG_GS: return kVmxVDiag_Vmentry_GuestSegAttrDescTypeGs; 2173 2173 default: 2174 2174 Assert(iSegReg == X86_SREG_SS); 2175 return kVmxV InstrDiag_Vmentry_GuestSegAttrDescTypeSs;2175 return kVmxVDiag_Vmentry_GuestSegAttrDescTypeSs; 2176 2176 } 2177 2177 } … … 2184 2184 * @param iSegReg The segment index (X86_SREG_XXX). 2185 2185 */ 2186 IEM_STATIC VMXV INSTRDIAG iemVmxVmentryGetInstrDiagSegAttrPresent(unsigned iSegReg)2186 IEM_STATIC VMXVDIAG iemVmxGetDiagVmentrySegAttrPresent(unsigned iSegReg) 2187 2187 { 2188 2188 switch (iSegReg) 2189 2189 { 2190 case X86_SREG_CS: return kVmxV InstrDiag_Vmentry_GuestSegAttrPresentCs;2191 case X86_SREG_DS: return kVmxV InstrDiag_Vmentry_GuestSegAttrPresentDs;2192 case X86_SREG_ES: return kVmxV InstrDiag_Vmentry_GuestSegAttrPresentEs;2193 case X86_SREG_FS: return kVmxV InstrDiag_Vmentry_GuestSegAttrPresentFs;2194 case X86_SREG_GS: return kVmxV InstrDiag_Vmentry_GuestSegAttrPresentGs;2190 case X86_SREG_CS: return kVmxVDiag_Vmentry_GuestSegAttrPresentCs; 2191 case X86_SREG_DS: return kVmxVDiag_Vmentry_GuestSegAttrPresentDs; 2192 case X86_SREG_ES: return kVmxVDiag_Vmentry_GuestSegAttrPresentEs; 2193 case X86_SREG_FS: return kVmxVDiag_Vmentry_GuestSegAttrPresentFs; 2194 case X86_SREG_GS: return kVmxVDiag_Vmentry_GuestSegAttrPresentGs; 2195 2195 default: 2196 2196 Assert(iSegReg == X86_SREG_SS); 2197 return kVmxV InstrDiag_Vmentry_GuestSegAttrPresentSs;2197 return kVmxVDiag_Vmentry_GuestSegAttrPresentSs; 2198 2198 } 2199 2199 } … … 2206 2206 * @param iSegReg The segment index (X86_SREG_XXX). 2207 2207 */ 2208 IEM_STATIC VMXV INSTRDIAG iemVmxVmentryGetInstrDiagSegAttrGran(unsigned iSegReg)2208 IEM_STATIC VMXVDIAG iemVmxGetDiagVmentrySegAttrGran(unsigned iSegReg) 2209 2209 { 2210 2210 switch (iSegReg) 2211 2211 { 2212 case X86_SREG_CS: return kVmxV InstrDiag_Vmentry_GuestSegAttrGranCs;2213 case X86_SREG_DS: return kVmxV InstrDiag_Vmentry_GuestSegAttrGranDs;2214 case X86_SREG_ES: return kVmxV InstrDiag_Vmentry_GuestSegAttrGranEs;2215 case X86_SREG_FS: return kVmxV InstrDiag_Vmentry_GuestSegAttrGranFs;2216 case X86_SREG_GS: return kVmxV InstrDiag_Vmentry_GuestSegAttrGranGs;2212 case X86_SREG_CS: return kVmxVDiag_Vmentry_GuestSegAttrGranCs; 2213 case X86_SREG_DS: return kVmxVDiag_Vmentry_GuestSegAttrGranDs; 2214 case X86_SREG_ES: return kVmxVDiag_Vmentry_GuestSegAttrGranEs; 2215 case X86_SREG_FS: return kVmxVDiag_Vmentry_GuestSegAttrGranFs; 2216 case X86_SREG_GS: return kVmxVDiag_Vmentry_GuestSegAttrGranGs; 2217 2217 default: 2218 2218 Assert(iSegReg == X86_SREG_SS); 2219 return kVmxV InstrDiag_Vmentry_GuestSegAttrGranSs;2219 return kVmxVDiag_Vmentry_GuestSegAttrGranSs; 2220 2220 } 2221 2221 } … … 2227 2227 * @param iSegReg The segment index (X86_SREG_XXX). 2228 2228 */ 2229 IEM_STATIC VMXV INSTRDIAG iemVmxVmentryGetInstrDiagSegAttrDplRpl(unsigned iSegReg)2229 IEM_STATIC VMXVDIAG iemVmxGetDiagVmentrySegAttrDplRpl(unsigned iSegReg) 2230 2230 { 2231 2231 switch (iSegReg) 2232 2232 { 2233 case X86_SREG_CS: return kVmxV InstrDiag_Vmentry_GuestSegAttrDplRplCs;2234 case X86_SREG_DS: return kVmxV InstrDiag_Vmentry_GuestSegAttrDplRplDs;2235 case X86_SREG_ES: return kVmxV InstrDiag_Vmentry_GuestSegAttrDplRplEs;2236 case X86_SREG_FS: return kVmxV InstrDiag_Vmentry_GuestSegAttrDplRplFs;2237 case X86_SREG_GS: return kVmxV InstrDiag_Vmentry_GuestSegAttrDplRplGs;2233 case X86_SREG_CS: return kVmxVDiag_Vmentry_GuestSegAttrDplRplCs; 2234 case X86_SREG_DS: return kVmxVDiag_Vmentry_GuestSegAttrDplRplDs; 2235 case X86_SREG_ES: return kVmxVDiag_Vmentry_GuestSegAttrDplRplEs; 2236 case X86_SREG_FS: return kVmxVDiag_Vmentry_GuestSegAttrDplRplFs; 2237 case X86_SREG_GS: return kVmxVDiag_Vmentry_GuestSegAttrDplRplGs; 2238 2238 default: 2239 2239 Assert(iSegReg == X86_SREG_SS); 2240 return kVmxV InstrDiag_Vmentry_GuestSegAttrDplRplSs;2240 return kVmxVDiag_Vmentry_GuestSegAttrDplRplSs; 2241 2241 } 2242 2242 } … … 2249 2249 * @param iSegReg The segment index (X86_SREG_XXX). 2250 2250 */ 2251 IEM_STATIC VMXV INSTRDIAG iemVmxVmentryGetInstrDiagSegAttrTypeAcc(unsigned iSegReg)2251 IEM_STATIC VMXVDIAG iemVmxGetDiagVmentrySegAttrTypeAcc(unsigned iSegReg) 2252 2252 { 2253 2253 switch (iSegReg) 2254 2254 { 2255 case X86_SREG_CS: return kVmxV InstrDiag_Vmentry_GuestSegAttrTypeAccCs;2256 case X86_SREG_DS: return kVmxV InstrDiag_Vmentry_GuestSegAttrTypeAccDs;2257 case X86_SREG_ES: return kVmxV InstrDiag_Vmentry_GuestSegAttrTypeAccEs;2258 case X86_SREG_FS: return kVmxV InstrDiag_Vmentry_GuestSegAttrTypeAccFs;2259 case X86_SREG_GS: return kVmxV InstrDiag_Vmentry_GuestSegAttrTypeAccGs;2255 case X86_SREG_CS: return kVmxVDiag_Vmentry_GuestSegAttrTypeAccCs; 2256 case X86_SREG_DS: return kVmxVDiag_Vmentry_GuestSegAttrTypeAccDs; 2257 case X86_SREG_ES: return kVmxVDiag_Vmentry_GuestSegAttrTypeAccEs; 2258 case X86_SREG_FS: return kVmxVDiag_Vmentry_GuestSegAttrTypeAccFs; 2259 case X86_SREG_GS: return kVmxVDiag_Vmentry_GuestSegAttrTypeAccGs; 2260 2260 default: 2261 2261 Assert(iSegReg == X86_SREG_SS); 2262 return kVmxV InstrDiag_Vmentry_GuestSegAttrTypeAccSs;2262 return kVmxVDiag_Vmentry_GuestSegAttrTypeAccSs; 2263 2263 } 2264 2264 } … … 2289 2289 u64Cr0Fixed0 &= ~(X86_CR0_PE | X86_CR0_PG); 2290 2290 if (~pVmcs->u64GuestCr0.u & u64Cr0Fixed0) 2291 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestCr0Fixed0);2291 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestCr0Fixed0); 2292 2292 2293 2293 /* CR0 MBZ bits. */ 2294 2294 uint64_t const u64Cr0Fixed1 = CPUMGetGuestIa32VmxCr0Fixed1(pVCpu); 2295 2295 if (pVmcs->u64GuestCr0.u & ~u64Cr0Fixed1) 2296 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestCr0Fixed1);2296 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestCr0Fixed1); 2297 2297 2298 2298 /* Without unrestricted guest support, VT-x supports does not support unpaged protected mode. */ … … 2300 2300 && (pVmcs->u64GuestCr0.u & X86_CR0_PG) 2301 2301 && !(pVmcs->u64GuestCr0.u & X86_CR0_PE)) 2302 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestCr0PgPe);2302 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestCr0PgPe); 2303 2303 } 2304 2304 … … 2308 2308 uint64_t const u64Cr4Fixed0 = CPUMGetGuestIa32VmxCr4Fixed0(pVCpu); 2309 2309 if (~pVmcs->u64GuestCr4.u & u64Cr4Fixed0) 2310 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestCr4Fixed0);2310 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestCr4Fixed0); 2311 2311 2312 2312 /* CR4 MBZ bits. */ 2313 2313 uint64_t const u64Cr4Fixed1 = CPUMGetGuestIa32VmxCr4Fixed1(pVCpu); 2314 2314 if (pVmcs->u64GuestCr4.u & ~u64Cr4Fixed1) 2315 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestCr4Fixed1);2315 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestCr4Fixed1); 2316 2316 } 2317 2317 … … 2319 2319 if ( (pVmcs->u32EntryCtls & VMX_ENTRY_CTLS_LOAD_DEBUG) 2320 2320 && (pVmcs->u64GuestDebugCtlMsr.u & ~MSR_IA32_DEBUGCTL_VALID_MASK_INTEL)) 2321 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestDebugCtl);2321 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestDebugCtl); 2322 2322 2323 2323 /* 64-bit CPU checks. */ … … 2332 2332 { /* likely */ } 2333 2333 else 2334 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestPae);2334 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestPae); 2335 2335 } 2336 2336 else … … 2340 2340 { /* likely */ } 2341 2341 else 2342 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestPcide);2342 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestPcide); 2343 2343 } 2344 2344 … … 2347 2347 { /* likely */ } 2348 2348 else 2349 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestCr3);2349 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestCr3); 2350 2350 2351 2351 /* DR7. */ 2352 2352 if ( (pVmcs->u32EntryCtls & VMX_ENTRY_CTLS_LOAD_DEBUG) 2353 2353 && (pVmcs->u64GuestDr7.u & X86_DR7_MBZ_MASK)) 2354 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestDr7);2354 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestDr7); 2355 2355 2356 2356 /* SYSENTER ESP and SYSENTER EIP. */ … … 2359 2359 { /* likely */ } 2360 2360 else 2361 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestSysenterEspEip);2361 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestSysenterEspEip); 2362 2362 } 2363 2363 … … 2367 2367 if ( (pVmcs->u32EntryCtls & VMX_ENTRY_CTLS_LOAD_PAT_MSR) 2368 2368 && !CPUMIsPatMsrValid(pVmcs->u64GuestPatMsr.u)) 2369 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestPatMsr);2369 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestPatMsr); 2370 2370 2371 2371 /* EFER MSR. */ … … 2373 2373 if ( (pVmcs->u32EntryCtls & VMX_ENTRY_CTLS_LOAD_EFER_MSR) 2374 2374 && (pVmcs->u64GuestEferMsr.u & ~uValidEferMask)) 2375 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestEferMsrRsvd);2375 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestEferMsrRsvd); 2376 2376 2377 2377 bool const fGstLma = RT_BOOL(pVmcs->u64HostEferMsr.u & MSR_K6_EFER_BIT_LMA); … … 2382 2382 { /* likely */ } 2383 2383 else 2384 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestEferMsr);2384 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestEferMsr); 2385 2385 2386 2386 Assert(!(pVmcs->u32EntryCtls & VMX_ENTRY_CTLS_LOAD_BNDCFGS_MSR)); /* We don't support loading IA32_BNDCFGS MSR yet. */ … … 2414 2414 && !fUnrestrictedGuest 2415 2415 && (pVmcs->GuestSs & X86_SEL_RPL) != (pVmcs->GuestCs & X86_SEL_RPL)) 2416 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestSegSelCsSsRpl);2416 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestSegSelCsSsRpl); 2417 2417 2418 2418 for (unsigned iSegReg = 0; iSegReg < X86_SREG_COUNT; iSegReg++) … … 2435 2435 else 2436 2436 { 2437 VMXV INSTRDIAG const enmDiag = iemVmxVmentryGetInstrDiagSegBaseV86(iSegReg);2437 VMXVDIAG const enmDiag = iemVmxGetDiagVmentrySegBaseV86(iSegReg); 2438 2438 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, enmDiag); 2439 2439 } … … 2444 2444 else 2445 2445 { 2446 VMXV INSTRDIAG const enmDiag = iemVmxVmentryGetInstrDiagSegLimitV86(iSegReg);2446 VMXVDIAG const enmDiag = iemVmxGetDiagVmentrySegLimitV86(iSegReg); 2447 2447 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, enmDiag); 2448 2448 } … … 2453 2453 else 2454 2454 { 2455 VMXV INSTRDIAG const enmDiag = iemVmxVmentryGetInstrDiagSegAttrV86(iSegReg);2455 VMXVDIAG const enmDiag = iemVmxGetDiagVmentrySegAttrV86(iSegReg); 2456 2456 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, enmDiag); 2457 2457 } … … 2472 2472 else 2473 2473 { 2474 VMXV INSTRDIAG const enmDiag = iemVmxVmentryGetInstrDiagSegBase(iSegReg);2474 VMXVDIAG const enmDiag = iemVmxGetDiagVmentrySegBase(iSegReg); 2475 2475 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, enmDiag); 2476 2476 } … … 2481 2481 { /* likely */ } 2482 2482 else 2483 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestSegBaseCs);2483 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestSegBaseCs); 2484 2484 } 2485 2485 else … … 2490 2490 else 2491 2491 { 2492 VMXV INSTRDIAG const enmDiag = iemVmxVmentryGetInstrDiagSegBase(iSegReg);2492 VMXVDIAG const enmDiag = iemVmxGetDiagVmentrySegBase(iSegReg); 2493 2493 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, enmDiag); 2494 2494 } … … 2517 2517 else 2518 2518 { 2519 VMXV INSTRDIAG const enmDiag = iemVmxVmentryGetInstrDiagSegAttrRsvd(iSegReg);2519 VMXVDIAG const enmDiag = iemVmxGetDiagVmentrySegAttrRsvd(iSegReg); 2520 2520 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, enmDiag); 2521 2521 } … … 2526 2526 else 2527 2527 { 2528 VMXV INSTRDIAG const enmDiag = iemVmxVmentryGetInstrDiagSegAttrDescType(iSegReg);2528 VMXVDIAG const enmDiag = iemVmxGetDiagVmentrySegAttrDescType(iSegReg); 2529 2529 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, enmDiag); 2530 2530 } … … 2535 2535 else 2536 2536 { 2537 VMXV INSTRDIAG const enmDiag = iemVmxVmentryGetInstrDiagSegAttrPresent(iSegReg);2537 VMXVDIAG const enmDiag = iemVmxGetDiagVmentrySegAttrPresent(iSegReg); 2538 2538 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, enmDiag); 2539 2539 } … … 2545 2545 else 2546 2546 { 2547 VMXV INSTRDIAG const enmDiag = iemVmxVmentryGetInstrDiagSegAttrGran(iSegReg);2547 VMXVDIAG const enmDiag = iemVmxGetDiagVmentrySegAttrGran(iSegReg); 2548 2548 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, enmDiag); 2549 2549 } … … 2559 2559 { /* likely */ } 2560 2560 else 2561 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestSegAttrCsDplZero);2561 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestSegAttrCsDplZero); 2562 2562 } 2563 2563 else if ( uSegType == (X86_SEL_TYPE_CODE | X86_SEL_TYPE_ACCESSED) … … 2568 2568 { /* likely */ } 2569 2569 else 2570 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestSegAttrCsDplEqSs);2570 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestSegAttrCsDplEqSs); 2571 2571 } 2572 2572 else if ((uSegType & (X86_SEL_TYPE_CODE | X86_SEL_TYPE_CONF | X86_SEL_TYPE_ACCESSED)) … … 2577 2577 { /* likely */ } 2578 2578 else 2579 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestSegAttrCsDplLtSs);2579 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestSegAttrCsDplLtSs); 2580 2580 } 2581 2581 else 2582 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestSegAttrCsType);2582 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestSegAttrCsType); 2583 2583 2584 2584 /* Def/Big. */ … … 2589 2589 { /* likely */ } 2590 2590 else 2591 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestSegAttrCsDefBig);2591 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestSegAttrCsDefBig); 2592 2592 } 2593 2593 } … … 2600 2600 { /* likely */ } 2601 2601 else 2602 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestSegAttrSsType);2602 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestSegAttrSsType); 2603 2603 2604 2604 /* DPL. */ … … 2608 2608 { /* likely */ } 2609 2609 else 2610 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestSegAttrSsDplEqRpl);2610 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestSegAttrSsDplEqRpl); 2611 2611 } 2612 2612 X86DESCATTR CsAttr; CsAttr.u = pVmcs->u32GuestCsAttr; … … 2617 2617 { /* likely */ } 2618 2618 else 2619 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestSegAttrSsDplZero);2619 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestSegAttrSsDplZero); 2620 2620 } 2621 2621 } … … 2630 2630 else 2631 2631 { 2632 VMXV INSTRDIAG const enmDiag = iemVmxVmentryGetInstrDiagSegAttrTypeAcc(iSegReg);2632 VMXVDIAG const enmDiag = iemVmxGetDiagVmentrySegAttrTypeAcc(iSegReg); 2633 2633 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, enmDiag); 2634 2634 } … … 2638 2638 { /* likely */ } 2639 2639 else 2640 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestSegAttrCsTypeRead);2640 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestSegAttrCsTypeRead); 2641 2641 2642 2642 /* DPL. */ … … 2648 2648 else 2649 2649 { 2650 VMXV INSTRDIAG const enmDiag = iemVmxVmentryGetInstrDiagSegAttrDplRpl(iSegReg);2650 VMXVDIAG const enmDiag = iemVmxGetDiagVmentrySegAttrDplRpl(iSegReg); 2651 2651 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, enmDiag); 2652 2652 } … … 2672 2672 { /* likely */ } 2673 2673 else 2674 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestSegSelLdtr);2674 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestSegSelLdtr); 2675 2675 2676 2676 /* Base. */ … … 2680 2680 { /* likely */ } 2681 2681 else 2682 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestSegBaseLdtr);2682 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestSegBaseLdtr); 2683 2683 } 2684 2684 … … 2688 2688 { /* likely */ } 2689 2689 else 2690 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestSegAttrLdtrRsvd);2690 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestSegAttrLdtrRsvd); 2691 2691 2692 2692 if (Ldtr.Attr.n.u4Type == X86_SEL_TYPE_SYS_LDT) 2693 2693 { /* likely */ } 2694 2694 else 2695 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestSegAttrLdtrType);2695 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestSegAttrLdtrType); 2696 2696 2697 2697 if (!Ldtr.Attr.n.u1DescType) 2698 2698 { /* likely */ } 2699 2699 else 2700 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestSegAttrLdtrDescType);2700 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestSegAttrLdtrDescType); 2701 2701 2702 2702 if (Ldtr.Attr.n.u1Present) 2703 2703 { /* likely */ } 2704 2704 else 2705 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestSegAttrLdtrPresent);2705 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestSegAttrLdtrPresent); 2706 2706 2707 2707 if ( ((Ldtr.u32Limit & 0x00000fff) == 0x00000fff || !Ldtr.Attr.n.u1Granularity) … … 2709 2709 { /* likely */ } 2710 2710 else 2711 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestSegAttrLdtrGran);2711 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestSegAttrLdtrGran); 2712 2712 } 2713 2713 } … … 2727 2727 { /* likely */ } 2728 2728 else 2729 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestSegSelTr);2729 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestSegSelTr); 2730 2730 2731 2731 /* Base. */ … … 2735 2735 { /* likely */ } 2736 2736 else 2737 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestSegBaseTr);2737 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestSegBaseTr); 2738 2738 } 2739 2739 … … 2743 2743 { /* likely */ } 2744 2744 else 2745 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestSegAttrTrRsvd);2745 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestSegAttrTrRsvd); 2746 2746 2747 2747 if (!Tr.Attr.n.u1Unusable) 2748 2748 { /* likely */ } 2749 2749 else 2750 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestSegAttrTrUnusable);2750 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestSegAttrTrUnusable); 2751 2751 2752 2752 if ( Tr.Attr.n.u4Type == X86_SEL_TYPE_SYS_386_TSS_BUSY … … 2755 2755 { /* likely */ } 2756 2756 else 2757 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestSegAttrTrType);2757 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestSegAttrTrType); 2758 2758 2759 2759 if (!Tr.Attr.n.u1DescType) 2760 2760 { /* likely */ } 2761 2761 else 2762 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestSegAttrTrDescType);2762 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestSegAttrTrDescType); 2763 2763 2764 2764 if (Tr.Attr.n.u1Present) 2765 2765 { /* likely */ } 2766 2766 else 2767 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestSegAttrTrPresent);2767 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestSegAttrTrPresent); 2768 2768 2769 2769 if ( ((Tr.u32Limit & 0x00000fff) == 0x00000fff || !Tr.Attr.n.u1Granularity) … … 2771 2771 { /* likely */ } 2772 2772 else 2773 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestSegAttrTrGran);2773 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestSegAttrTrGran); 2774 2774 } 2775 2775 … … 2800 2800 { /* likely */ } 2801 2801 else 2802 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestGdtrBase);2802 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestGdtrBase); 2803 2803 2804 2804 if (X86_IS_CANONICAL(pVmcs->u64GuestIdtrBase.u)) 2805 2805 { /* likely */ } 2806 2806 else 2807 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestIdtrBase);2807 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestIdtrBase); 2808 2808 } 2809 2809 … … 2812 2812 { /* likely */ } 2813 2813 else 2814 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestGdtrLimit);2814 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestGdtrLimit); 2815 2815 2816 2816 if (!RT_HI_U16(pVmcs->u32GuestIdtrLimit)) 2817 2817 { /* likely */ } 2818 2818 else 2819 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_GuestIdtrLimit);2819 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_GuestIdtrLimit); 2820 2820 2821 2821 NOREF(pszInstr); … … 2878 2878 uint64_t const u64Cr0Fixed0 = CPUMGetGuestIa32VmxCr0Fixed0(pVCpu); 2879 2879 if (~pVmcs->u64HostCr0.u & u64Cr0Fixed0) 2880 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_HostCr0Fixed0);2880 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_HostCr0Fixed0); 2881 2881 2882 2882 /* CR0 MBZ bits. */ 2883 2883 uint64_t const u64Cr0Fixed1 = CPUMGetGuestIa32VmxCr0Fixed1(pVCpu); 2884 2884 if (pVmcs->u64HostCr0.u & ~u64Cr0Fixed1) 2885 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_HostCr0Fixed1);2885 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_HostCr0Fixed1); 2886 2886 } 2887 2887 … … 2891 2891 uint64_t const u64Cr4Fixed0 = CPUMGetGuestIa32VmxCr4Fixed0(pVCpu); 2892 2892 if (~pVmcs->u64HostCr4.u & u64Cr4Fixed0) 2893 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_HostCr4Fixed0);2893 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_HostCr4Fixed0); 2894 2894 2895 2895 /* CR4 MBZ bits. */ 2896 2896 uint64_t const u64Cr4Fixed1 = CPUMGetGuestIa32VmxCr4Fixed1(pVCpu); 2897 2897 if (pVmcs->u64HostCr4.u & ~u64Cr4Fixed1) 2898 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_HostCr4Fixed1);2898 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_HostCr4Fixed1); 2899 2899 } 2900 2900 … … 2905 2905 { /* likely */ } 2906 2906 else 2907 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_HostCr3);2907 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_HostCr3); 2908 2908 2909 2909 /* SYSENTER ESP and SYSENTER EIP. */ … … 2912 2912 { /* likely */ } 2913 2913 else 2914 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_HostSysenterEspEip);2914 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_HostSysenterEspEip); 2915 2915 } 2916 2916 … … 2922 2922 { /* likely */ } 2923 2923 else 2924 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_HostPatMsr);2924 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_HostPatMsr); 2925 2925 2926 2926 /* EFER MSR. */ … … 2930 2930 { /* likely */ } 2931 2931 else 2932 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_HostEferMsrRsvd);2932 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_HostEferMsrRsvd); 2933 2933 2934 2934 bool const fHostInLongMode = RT_BOOL(pVmcs->u32ExitCtls & VMX_EXIT_CTLS_HOST_ADDR_SPACE_SIZE); … … 2939 2939 { /* likely */ } 2940 2940 else 2941 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_HostEferMsr);2941 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_HostEferMsr); 2942 2942 2943 2943 /* … … 2955 2955 { /* likely */ } 2956 2956 else 2957 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_HostSel);2957 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_HostSel); 2958 2958 2959 2959 /* CS and TR selectors cannot be 0. */ … … 2962 2962 { /* likely */ } 2963 2963 else 2964 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_HostCsTr);2964 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_HostCsTr); 2965 2965 2966 2966 /* SS cannot be 0 if 32-bit host. */ … … 2969 2969 { /* likely */ } 2970 2970 else 2971 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_HostSs);2971 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_HostSs); 2972 2972 2973 2973 if (IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fLongMode) … … 2981 2981 { /* likely */ } 2982 2982 else 2983 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_HostSegBase);2983 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_HostSegBase); 2984 2984 } 2985 2985 … … 3002 3002 { /* likely */ } 3003 3003 else 3004 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_HostCr4Pae);3004 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_HostCr4Pae); 3005 3005 3006 3006 /* RIP must be canonical. */ … … 3008 3008 { /* likely */ } 3009 3009 else 3010 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_HostRip);3010 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_HostRip); 3011 3011 } 3012 3012 else 3013 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_HostLongMode);3013 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_HostLongMode); 3014 3014 } 3015 3015 else … … 3023 3023 { /* likely */ } 3024 3024 else 3025 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_HostCr4Pcide);3025 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_HostCr4Pcide); 3026 3026 3027 3027 /* The high 32-bits of RIP MBZ. */ … … 3029 3029 { /* likely */ } 3030 3030 else 3031 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_HostRipRsvd);3031 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_HostRipRsvd); 3032 3032 } 3033 3033 else 3034 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_HostGuestLongMode);3034 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_HostGuestLongMode); 3035 3035 } 3036 3036 } … … 3042 3042 { /* likely */ } 3043 3043 else 3044 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_HostGuestLongModeNoCpu);3044 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_HostGuestLongModeNoCpu); 3045 3045 } 3046 3046 … … 3068 3068 EntryCtls.u = CPUMGetGuestIa32VmxEntryCtls(pVCpu); 3069 3069 if (~pVmcs->u32EntryCtls & EntryCtls.n.disallowed0) 3070 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_EntryCtlsDisallowed0);3070 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_EntryCtlsDisallowed0); 3071 3071 3072 3072 if (pVmcs->u32EntryCtls & ~EntryCtls.n.allowed1) 3073 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_EntryCtlsAllowed1);3073 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_EntryCtlsAllowed1); 3074 3074 3075 3075 /* Event injection. */ … … 3086 3086 { /* likely */ } 3087 3087 else 3088 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_EntryIntInfoTypeVecRsvd);3088 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_EntryIntInfoTypeVecRsvd); 3089 3089 3090 3090 /* Exception error code. */ … … 3096 3096 { /* likely */ } 3097 3097 else 3098 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_EntryIntInfoErrCodePe);3098 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_EntryIntInfoErrCodePe); 3099 3099 3100 3100 /* Exceptions that provide an error code. */ … … 3109 3109 { /* likely */ } 3110 3110 else 3111 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_EntryIntInfoErrCodeVec);3111 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_EntryIntInfoErrCodeVec); 3112 3112 3113 3113 /* Exception error-code reserved bits. */ … … 3115 3115 { /* likely */ } 3116 3116 else 3117 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_EntryXcptErrCodeRsvd);3117 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_EntryXcptErrCodeRsvd); 3118 3118 3119 3119 /* Injecting a software interrupt, software exception or privileged software exception. */ … … 3126 3126 { /* likely */ } 3127 3127 else 3128 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_EntryInstrLen);3128 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_EntryInstrLen); 3129 3129 3130 3130 /* Instruction length of 0 is allowed only when its CPU feature is present. */ 3131 3131 if ( pVmcs->u32EntryInstrLen == 0 3132 3132 && !IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fVmxEntryInjectSoftInt) 3133 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_EntryInstrLenZero);3133 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_EntryInstrLenZero); 3134 3134 } 3135 3135 } … … 3142 3142 || (pVmcs->u64AddrEntryMsrLoad.u >> IEM_GET_GUEST_CPU_FEATURES(pVCpu)->cVmxMaxPhysAddrWidth) 3143 3143 || !PGMPhysIsGCPhysNormal(pVCpu->CTX_SUFF(pVM), pVmcs->u64AddrEntryMsrLoad.u)) 3144 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_AddrEntryMsrLoad);3144 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_AddrEntryMsrLoad); 3145 3145 } 3146 3146 … … 3171 3171 ExitCtls.u = CPUMGetGuestIa32VmxExitCtls(pVCpu); 3172 3172 if (~pVmcs->u32ExitCtls & ExitCtls.n.disallowed0) 3173 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_ExitCtlsDisallowed0);3173 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_ExitCtlsDisallowed0); 3174 3174 3175 3175 if (pVmcs->u32ExitCtls & ~ExitCtls.n.allowed1) 3176 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_ExitCtlsAllowed1);3176 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_ExitCtlsAllowed1); 3177 3177 3178 3178 /* Save preemption timer without activating it. */ 3179 3179 if ( !(pVmcs->u32PinCtls & VMX_PIN_CTLS_PREEMPT_TIMER) 3180 3180 && (pVmcs->u32ProcCtls & VMX_EXIT_CTLS_SAVE_PREEMPT_TIMER)) 3181 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_SavePreemptTimer);3181 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_SavePreemptTimer); 3182 3182 3183 3183 /* VM-exit MSR-store count and VM-exit MSR-store area address. */ … … 3187 3187 || (pVmcs->u64AddrExitMsrStore.u >> IEM_GET_GUEST_CPU_FEATURES(pVCpu)->cVmxMaxPhysAddrWidth) 3188 3188 || !PGMPhysIsGCPhysNormal(pVCpu->CTX_SUFF(pVM), pVmcs->u64AddrExitMsrStore.u)) 3189 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_AddrExitMsrStore);3189 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_AddrExitMsrStore); 3190 3190 } 3191 3191 … … 3196 3196 || (pVmcs->u64AddrExitMsrLoad.u >> IEM_GET_GUEST_CPU_FEATURES(pVCpu)->cVmxMaxPhysAddrWidth) 3197 3197 || !PGMPhysIsGCPhysNormal(pVCpu->CTX_SUFF(pVM), pVmcs->u64AddrExitMsrLoad.u)) 3198 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_AddrExitMsrLoad);3198 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_AddrExitMsrLoad); 3199 3199 } 3200 3200 … … 3226 3226 PinCtls.u = CPUMGetGuestIa32VmxPinbasedCtls(pVCpu); 3227 3227 if (~pVmcs->u32PinCtls & PinCtls.n.disallowed0) 3228 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_PinCtlsDisallowed0);3228 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_PinCtlsDisallowed0); 3229 3229 3230 3230 if (pVmcs->u32PinCtls & ~PinCtls.n.allowed1) 3231 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_PinCtlsAllowed1);3231 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_PinCtlsAllowed1); 3232 3232 } 3233 3233 … … 3237 3237 ProcCtls.u = CPUMGetGuestIa32VmxProcbasedCtls(pVCpu); 3238 3238 if (~pVmcs->u32ProcCtls & ProcCtls.n.disallowed0) 3239 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_ProcCtlsDisallowed0);3239 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_ProcCtlsDisallowed0); 3240 3240 3241 3241 if (pVmcs->u32ProcCtls & ~ProcCtls.n.allowed1) 3242 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_ProcCtlsAllowed1);3242 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_ProcCtlsAllowed1); 3243 3243 } 3244 3244 … … 3249 3249 ProcCtls2.u = CPUMGetGuestIa32VmxProcbasedCtls2(pVCpu); 3250 3250 if (~pVmcs->u32ProcCtls2 & ProcCtls2.n.disallowed0) 3251 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_ProcCtls2Disallowed0);3251 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_ProcCtls2Disallowed0); 3252 3252 3253 3253 if (pVmcs->u32ProcCtls2 & ~ProcCtls2.n.allowed1) 3254 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_ProcCtls2Allowed1);3254 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_ProcCtls2Allowed1); 3255 3255 } 3256 3256 else … … 3261 3261 { /* likely */ } 3262 3262 else 3263 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_Cr3TargetCount);3263 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_Cr3TargetCount); 3264 3264 3265 3265 /* IO bitmaps physical addresses. */ … … 3269 3269 || (pVmcs->u64AddrIoBitmapA.u >> IEM_GET_GUEST_CPU_FEATURES(pVCpu)->cVmxMaxPhysAddrWidth) 3270 3270 || !PGMPhysIsGCPhysNormal(pVCpu->CTX_SUFF(pVM), pVmcs->u64AddrIoBitmapA.u)) 3271 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_AddrIoBitmapA);3271 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_AddrIoBitmapA); 3272 3272 3273 3273 if ( (pVmcs->u64AddrIoBitmapB.u & X86_PAGE_4K_OFFSET_MASK) 3274 3274 || (pVmcs->u64AddrIoBitmapB.u >> IEM_GET_GUEST_CPU_FEATURES(pVCpu)->cVmxMaxPhysAddrWidth) 3275 3275 || !PGMPhysIsGCPhysNormal(pVCpu->CTX_SUFF(pVM), pVmcs->u64AddrIoBitmapB.u)) 3276 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_AddrIoBitmapB);3276 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_AddrIoBitmapB); 3277 3277 } 3278 3278 … … 3283 3283 || (pVmcs->u64AddrMsrBitmap.u >> IEM_GET_GUEST_CPU_FEATURES(pVCpu)->cVmxMaxPhysAddrWidth) 3284 3284 || !PGMPhysIsGCPhysNormal(pVCpu->CTX_SUFF(pVM), pVmcs->u64AddrMsrBitmap.u)) 3285 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_AddrMsrBitmap);3285 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_AddrMsrBitmap); 3286 3286 } 3287 3287 … … 3294 3294 || (GCPhysVirtApic >> IEM_GET_GUEST_CPU_FEATURES(pVCpu)->cVmxMaxPhysAddrWidth) 3295 3295 || !PGMPhysIsGCPhysNormal(pVCpu->CTX_SUFF(pVM), GCPhysVirtApic)) 3296 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_AddrVirtApicPage);3296 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_AddrVirtApicPage); 3297 3297 3298 3298 /* Read the Virtual-APIC page. */ … … 3301 3301 GCPhysVirtApic, VMX_V_VIRT_APIC_PAGES); 3302 3302 if (RT_FAILURE(rc)) 3303 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_VirtApicPagePtrReadPhys);3303 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_VirtApicPagePtrReadPhys); 3304 3304 3305 3305 /* TPR threshold without virtual-interrupt delivery. */ 3306 3306 if ( !(pVmcs->u32ProcCtls2 & VMX_PROC_CTLS2_VIRT_INT_DELIVERY) 3307 3307 && (pVmcs->u32TprThreshold & VMX_TPR_THRESHOLD_MASK)) 3308 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_TprThreshold);3308 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_TprThreshold); 3309 3309 3310 3310 /* TPR threshold and VTPR. */ … … 3314 3314 && !(pVmcs->u32ProcCtls2 & VMX_PROC_CTLS2_VIRT_INT_DELIVERY) 3315 3315 && RT_BF_GET(pVmcs->u32TprThreshold, VMX_BF_TPR_THRESHOLD_TPR) > ((u8VTpr >> 4) & UINT32_C(0xf)) /* Bits 4:7 */) 3316 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_TprThresholdVTpr);3316 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_TprThresholdVTpr); 3317 3317 } 3318 3318 else … … 3325 3325 { 3326 3326 if (pVmcs->u32ProcCtls2 & VMX_PROC_CTLS2_VIRT_X2APIC_MODE) 3327 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_VirtX2ApicTprShadow);3327 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_VirtX2ApicTprShadow); 3328 3328 if (pVmcs->u32ProcCtls2 & VMX_PROC_CTLS2_APIC_REG_VIRT) 3329 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_ApicRegVirt);3329 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_ApicRegVirt); 3330 3330 Assert(pVmcs->u32ProcCtls2 & VMX_PROC_CTLS2_VIRT_INT_DELIVERY); 3331 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_VirtIntDelivery);3331 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_VirtIntDelivery); 3332 3332 } 3333 3333 } … … 3336 3336 if ( !(pVmcs->u32PinCtls & VMX_PIN_CTLS_NMI_EXIT) 3337 3337 && (pVmcs->u32PinCtls & VMX_PIN_CTLS_VIRT_NMI)) 3338 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_VirtNmi);3338 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_VirtNmi); 3339 3339 3340 3340 /* Virtual-NMIs and NMI-window exiting. */ 3341 3341 if ( !(pVmcs->u32PinCtls & VMX_PIN_CTLS_VIRT_NMI) 3342 3342 && (pVmcs->u32ProcCtls & VMX_PROC_CTLS_NMI_WINDOW_EXIT)) 3343 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_NmiWindowExit);3343 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_NmiWindowExit); 3344 3344 3345 3345 /* Virtualize APIC accesses. */ … … 3351 3351 || (GCPhysApicAccess >> IEM_GET_GUEST_CPU_FEATURES(pVCpu)->cVmxMaxPhysAddrWidth) 3352 3352 || !PGMPhysIsGCPhysNormal(pVCpu->CTX_SUFF(pVM), GCPhysApicAccess)) 3353 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_AddrApicAccess);3353 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_AddrApicAccess); 3354 3354 } 3355 3355 … … 3357 3357 if ( (pVmcs->u32ProcCtls2 & VMX_PROC_CTLS2_VIRT_X2APIC_MODE) 3358 3358 && (pVmcs->u32ProcCtls2 & VMX_PROC_CTLS2_VIRT_APIC_ACCESS)) 3359 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_VirtX2ApicVirtApic);3359 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_VirtX2ApicVirtApic); 3360 3360 3361 3361 /* Virtual-interrupt delivery requires external interrupt exiting. */ 3362 3362 if ( (pVmcs->u32ProcCtls2 & VMX_PROC_CTLS2_VIRT_INT_DELIVERY) 3363 3363 && !(pVmcs->u32PinCtls & VMX_PIN_CTLS_EXT_INT_EXIT)) 3364 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_VirtX2ApicVirtApic);3364 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_VirtX2ApicVirtApic); 3365 3365 3366 3366 /* VPID. */ … … 3369 3369 { /* likely */ } 3370 3370 else 3371 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_Vpid);3371 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_Vpid); 3372 3372 3373 3373 Assert(!(pVmcs->u32PinCtls & VMX_PIN_CTLS_POSTED_INT)); /* We don't support posted interrupts yet. */ … … 3386 3386 || ( GCPhysVmreadBitmap >> IEM_GET_GUEST_CPU_FEATURES(pVCpu)->cVmxMaxPhysAddrWidth) 3387 3387 || !PGMPhysIsGCPhysNormal(pVCpu->CTX_SUFF(pVM), GCPhysVmreadBitmap)) 3388 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_AddrVmreadBitmap);3388 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_AddrVmreadBitmap); 3389 3389 3390 3390 /* VMWRITE-bitmap physical address. */ … … 3393 3393 || ( GCPhysVmwriteBitmap >> IEM_GET_GUEST_CPU_FEATURES(pVCpu)->cVmxMaxPhysAddrWidth) 3394 3394 || !PGMPhysIsGCPhysNormal(pVCpu->CTX_SUFF(pVM), GCPhysVmwriteBitmap)) 3395 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_AddrVmwriteBitmap);3395 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_AddrVmwriteBitmap); 3396 3396 3397 3397 /* Read the VMREAD-bitmap. */ … … 3400 3400 GCPhysVmreadBitmap, VMX_V_VMREAD_VMWRITE_BITMAP_SIZE); 3401 3401 if (RT_FAILURE(rc)) 3402 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_VmreadBitmapPtrReadPhys);3402 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_VmreadBitmapPtrReadPhys); 3403 3403 3404 3404 /* Read the VMWRITE-bitmap. */ … … 3407 3407 GCPhysVmwriteBitmap, VMX_V_VMREAD_VMWRITE_BITMAP_SIZE); 3408 3408 if (RT_FAILURE(rc)) 3409 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxV InstrDiag_Vmentry_VmwriteBitmapPtrReadPhys);3409 IEM_VMX_VMENTRY_FAILED_RET(pVCpu, pszInstr, pszFailure, kVmxVDiag_Vmentry_VmwriteBitmapPtrReadPhys); 3410 3410 } 3411 3411 … … 3446 3446 { 3447 3447 Log(("%s: CPL %u -> #GP(0)\n", pszInstr, pVCpu->iem.s.uCpl)); 3448 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmentry_Cpl;3448 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmentry_Cpl; 3449 3449 return iemRaiseGeneralProtectionFault0(pVCpu); 3450 3450 } … … 3454 3454 { 3455 3455 Log(("%s: VMCS pointer %#RGp invalid -> VMFailInvalid\n", pszInstr, IEM_VMX_GET_CURRENT_VMCS(pVCpu))); 3456 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmentry_PtrInvalid;3456 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmentry_PtrInvalid; 3457 3457 iemVmxVmFailInvalid(pVCpu); 3458 3458 iemRegAddToRipAndClearRF(pVCpu, cbInstr); … … 3466 3466 { 3467 3467 Log(("%s: VM entry with events blocked by MOV SS -> VMFail\n", pszInstr)); 3468 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmentry_BlocKMovSS;3468 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmentry_BlocKMovSS; 3469 3469 iemVmxVmFail(pVCpu, VMXINSTRERR_VMENTRY_BLOCK_MOVSS); 3470 3470 iemRegAddToRipAndClearRF(pVCpu, cbInstr); … … 3478 3478 { 3479 3479 Log(("vmlaunch: VMLAUNCH with non-clear VMCS -> VMFail\n")); 3480 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmentry_VmcsClear;3480 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmentry_VmcsClear; 3481 3481 iemVmxVmFail(pVCpu, VMXINSTRERR_VMLAUNCH_NON_CLEAR_VMCS); 3482 3482 iemRegAddToRipAndClearRF(pVCpu, cbInstr); … … 3490 3490 { 3491 3491 Log(("vmresume: VMRESUME with non-launched VMCS -> VMFail\n")); 3492 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmentry_VmcsLaunch;3492 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmentry_VmcsLaunch; 3493 3493 iemVmxVmFail(pVCpu, VMXINSTRERR_VMRESUME_NON_LAUNCHED_VMCS); 3494 3494 iemRegAddToRipAndClearRF(pVCpu, cbInstr); … … 3506 3506 { 3507 3507 Log(("%s: Failed to read VMCS at %#RGp, rc=%Rrc\n", pszInstr, IEM_VMX_GET_CURRENT_VMCS(pVCpu), rc)); 3508 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmentry_PtrReadPhys;3508 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmentry_PtrReadPhys; 3509 3509 return rc; 3510 3510 } … … 3575 3575 3576 3576 3577 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmentry_Success;3577 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmentry_Success; 3578 3578 iemVmxVmSucceed(pVCpu); 3579 3579 iemRegAddToRipAndClearRF(pVCpu, cbInstr); … … 3612 3612 { 3613 3613 Log(("vmxoff: CPL %u -> #GP(0)\n", pVCpu->iem.s.uCpl)); 3614 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmxoff_Cpl;3614 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmxoff_Cpl; 3615 3615 return iemRaiseGeneralProtectionFault0(pVCpu); 3616 3616 } … … 3636 3636 /** @todo NSTVMX: Clear address-range monitoring. */ 3637 3637 3638 pVCpu->cpum.GstCtx.hwvirt.vmx.enm InstrDiag = kVmxVInstrDiag_Vmxoff_Success;3638 pVCpu->cpum.GstCtx.hwvirt.vmx.enmDiag = kVmxVDiag_Vmxoff_Success; 3639 3639 iemVmxVmSucceed(pVCpu); 3640 3640 iemRegAddToRipAndClearRF(pVCpu, cbInstr); -
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsTwoByte0f.cpp.h
r74043 r74155 252 252 { 253 253 IEMOP_MNEMONIC(vmlaunch, "vmlaunch"); 254 IEMOP_HLP_IN_VMX_OPERATION("vmlaunch", kVmxV InstrDiag_Vmentry);255 IEMOP_HLP_VMX_INSTR("vmlaunch", kVmxV InstrDiag_Vmentry);254 IEMOP_HLP_IN_VMX_OPERATION("vmlaunch", kVmxVDiag_Vmentry); 255 IEMOP_HLP_VMX_INSTR("vmlaunch", kVmxVDiag_Vmentry); 256 256 IEMOP_HLP_DONE_DECODING(); 257 257 return IEM_MC_DEFER_TO_CIMPL_0(iemCImpl_vmlaunch); … … 271 271 { 272 272 IEMOP_MNEMONIC(vmresume, "vmresume"); 273 IEMOP_HLP_IN_VMX_OPERATION("vmresume", kVmxV InstrDiag_Vmentry);274 IEMOP_HLP_VMX_INSTR("vmresume", kVmxV InstrDiag_Vmentry);273 IEMOP_HLP_IN_VMX_OPERATION("vmresume", kVmxVDiag_Vmentry); 274 IEMOP_HLP_VMX_INSTR("vmresume", kVmxVDiag_Vmentry); 275 275 IEMOP_HLP_DONE_DECODING(); 276 276 return IEM_MC_DEFER_TO_CIMPL_0(iemCImpl_vmresume); … … 290 290 { 291 291 IEMOP_MNEMONIC(vmxoff, "vmxoff"); 292 IEMOP_HLP_IN_VMX_OPERATION("vmxoff", kVmxV InstrDiag_Vmxoff);293 IEMOP_HLP_VMX_INSTR("vmxoff", kVmxV InstrDiag_Vmxoff);292 IEMOP_HLP_IN_VMX_OPERATION("vmxoff", kVmxVDiag_Vmxoff); 293 IEMOP_HLP_VMX_INSTR("vmxoff", kVmxVDiag_Vmxoff); 294 294 IEMOP_HLP_DONE_DECODING(); 295 295 return IEM_MC_DEFER_TO_CIMPL_0(iemCImpl_vmxoff); … … 4307 4307 { 4308 4308 IEMOP_MNEMONIC(vmread, "vmread Ey,Gy"); 4309 IEMOP_HLP_IN_VMX_OPERATION("vmread", kVmxV InstrDiag_Vmread);4310 IEMOP_HLP_VMX_INSTR("vmread", kVmxV InstrDiag_Vmread);4309 IEMOP_HLP_IN_VMX_OPERATION("vmread", kVmxVDiag_Vmread); 4310 IEMOP_HLP_VMX_INSTR("vmread", kVmxVDiag_Vmread); 4311 4311 IEMMODE const enmEffOpSize = pVCpu->iem.s.enmCpuMode == IEMMODE_64BIT ? IEMMODE_64BIT : IEMMODE_32BIT; 4312 4312 … … 4389 4389 { 4390 4390 IEMOP_MNEMONIC(vmwrite, "vmwrite Gy,Ey"); 4391 IEMOP_HLP_IN_VMX_OPERATION("vmwrite", kVmxV InstrDiag_Vmwrite);4392 IEMOP_HLP_VMX_INSTR("vmwrite", kVmxV InstrDiag_Vmwrite);4391 IEMOP_HLP_IN_VMX_OPERATION("vmwrite", kVmxVDiag_Vmwrite); 4392 IEMOP_HLP_VMX_INSTR("vmwrite", kVmxVDiag_Vmwrite); 4393 4393 IEMMODE const enmEffOpSize = pVCpu->iem.s.enmCpuMode == IEMMODE_64BIT ? IEMMODE_64BIT : IEMMODE_32BIT; 4394 4394 … … 8604 8604 { 8605 8605 IEMOP_MNEMONIC(vmptrld, "vmptrld"); 8606 IEMOP_HLP_IN_VMX_OPERATION("vmptrld", kVmxV InstrDiag_Vmptrld);8607 IEMOP_HLP_VMX_INSTR("vmptrld", kVmxV InstrDiag_Vmptrld);8606 IEMOP_HLP_IN_VMX_OPERATION("vmptrld", kVmxVDiag_Vmptrld); 8607 IEMOP_HLP_VMX_INSTR("vmptrld", kVmxVDiag_Vmptrld); 8608 8608 IEM_MC_BEGIN(2, 0); 8609 8609 IEM_MC_ARG(uint8_t, iEffSeg, 0); … … 8625 8625 { 8626 8626 IEMOP_MNEMONIC(vmclear, "vmclear"); 8627 IEMOP_HLP_IN_VMX_OPERATION("vmclear", kVmxV InstrDiag_Vmclear);8628 IEMOP_HLP_VMX_INSTR("vmclear", kVmxV InstrDiag_Vmclear);8627 IEMOP_HLP_IN_VMX_OPERATION("vmclear", kVmxVDiag_Vmclear); 8628 IEMOP_HLP_VMX_INSTR("vmclear", kVmxVDiag_Vmclear); 8629 8629 IEM_MC_BEGIN(2, 0); 8630 8630 IEM_MC_ARG(uint8_t, iEffSeg, 0); … … 8646 8646 { 8647 8647 IEMOP_MNEMONIC(vmxon, "vmxon"); 8648 IEMOP_HLP_VMX_INSTR("vmxon", kVmxV InstrDiag_Vmxon);8648 IEMOP_HLP_VMX_INSTR("vmxon", kVmxVDiag_Vmxon); 8649 8649 IEM_MC_BEGIN(2, 0); 8650 8650 IEM_MC_ARG(uint8_t, iEffSeg, 0); … … 8666 8666 { 8667 8667 IEMOP_MNEMONIC(vmptrst, "vmptrst"); 8668 IEMOP_HLP_IN_VMX_OPERATION("vmptrst", kVmxV InstrDiag_Vmptrst);8669 IEMOP_HLP_VMX_INSTR("vmptrst", kVmxV InstrDiag_Vmptrst);8668 IEMOP_HLP_IN_VMX_OPERATION("vmptrst", kVmxVDiag_Vmptrst); 8669 IEMOP_HLP_VMX_INSTR("vmptrst", kVmxVDiag_Vmptrst); 8670 8670 IEM_MC_BEGIN(2, 0); 8671 8671 IEM_MC_ARG(uint8_t, iEffSeg, 0); -
trunk/src/VBox/VMM/VMMR3/CPUM.cpp
r74098 r74155 3026 3026 pHlp->pfnPrintf(pHlp, " GCPhysVmxon = %#RGp\n", pCtx->hwvirt.vmx.GCPhysVmxon); 3027 3027 pHlp->pfnPrintf(pHlp, " GCPhysVmcs = %#RGp\n", pCtx->hwvirt.vmx.GCPhysVmcs); 3028 pHlp->pfnPrintf(pHlp, " enm InstrDiag = %u (%s)\n", pCtx->hwvirt.vmx.enmInstrDiag,3029 HMVmxGet InstrDiagDesc(pCtx->hwvirt.vmx.enmInstrDiag));3028 pHlp->pfnPrintf(pHlp, " enmDiag = %u (%s)\n", pCtx->hwvirt.vmx.enmDiag, 3029 HMVmxGetDiagDesc(pCtx->hwvirt.vmx.enmDiag)); 3030 3030 /** @todo NSTVMX: Dump remaining/new fields. */ 3031 3031 } -
trunk/src/VBox/VMM/testcase/tstVMStruct.h
r73937 r74155 148 148 GEN_CHECK_OFF(CPUMCTX, hwvirt.vmx.GCPhysVmxon); 149 149 GEN_CHECK_OFF(CPUMCTX, hwvirt.vmx.GCPhysVmcs); 150 GEN_CHECK_OFF(CPUMCTX, hwvirt.vmx.enm InstrDiag);150 GEN_CHECK_OFF(CPUMCTX, hwvirt.vmx.enmDiag); 151 151 GEN_CHECK_OFF(CPUMCTX, hwvirt.vmx.fInVmxRootMode); 152 152 GEN_CHECK_OFF(CPUMCTX, hwvirt.vmx.fInVmxNonRootMode);
Note:
See TracChangeset
for help on using the changeset viewer.