VirtualBox

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


Ignore:
Timestamp:
Jan 25, 2019 2:34:46 PM (6 years ago)
Author:
vboxsync
Message:

VMM: Nested VMX: bugref:9180 Allowing fetching VM-exit names from ring-0 as well. Various naming cleanups. Added HMDumpHwvirtVmxState() to be able to dump virtual VMCS state from ring-0 as well. Remove unusued HMIsVmxSupported() function.

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

Legend:

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

    r76821 r76993  
    137137VMM_INT_DECL(bool)              HMIsSvmActive(PVM pVM);
    138138VMM_INT_DECL(bool)              HMIsVmxActive(PVM pVM);
    139 VMM_INT_DECL(bool)              HMIsVmxSupported(PVM pVM);
    140 VMM_INT_DECL(const char *)      HMVmxGetDiagDesc(VMXVDIAG enmDiag);
    141 VMM_INT_DECL(const char *)      HMVmxGetAbortDesc(VMXABORT enmAbort);
    142 VMM_INT_DECL(const char *)      HMVmxGetVmcsStateDesc(uint8_t fVmcsState);
    143 VMM_INT_DECL(const char *)      HMVmxGetIdtVectoringInfoTypeDesc(uint8_t uType);
    144 VMM_INT_DECL(const char *)      HMVmxGetExitIntInfoTypeDesc(uint8_t uType);
    145 VMM_INT_DECL(const char *)      HMVmxGetEntryIntInfoTypeDesc(uint8_t uType);
    146 VMM_INT_DECL(void)              HMHCPagingModeChanged(PVM pVM, PVMCPU pVCpu, PGMMODE enmShadowMode, PGMMODE enmGuestMode);
    147 VMM_INT_DECL(void)              HMVmxGetVmxMsrsFromHwvirtMsrs(PCSUPHWVIRTMSRS pMsrs, PVMXMSRS pVmxMsrs);
    148 VMM_INT_DECL(void)              HMVmxGetSvmMsrsFromHwvirtMsrs(PCSUPHWVIRTMSRS pMsrs, PSVMMSRS pSvmMsrs);
     139VMM_INT_DECL(const char *)      HMGetVmxDiagDesc(VMXVDIAG enmDiag);
     140VMM_INT_DECL(const char *)      HMGetVmxAbortDesc(VMXABORT enmAbort);
     141VMM_INT_DECL(const char *)      HMGetVmxVmcsStateDesc(uint8_t fVmcsState);
     142VMM_INT_DECL(const char *)      HMGetVmxIdtVectoringInfoTypeDesc(uint8_t uType);
     143VMM_INT_DECL(const char *)      HMGetVmxExitIntInfoTypeDesc(uint8_t uType);
     144VMM_INT_DECL(const char *)      HMGetVmxEntryIntInfoTypeDesc(uint8_t uType);
     145VMM_INT_DECL(const char *)      HMGetVmxExitName(uint32_t uExit);
     146VMM_INT_DECL(const char *)      HMGetSvmExitName(uint32_t uExit);
     147VMM_INT_DECL(void)              HMDumpHwvirtVmxState(PVMCPU pVCpu);
     148VMM_INT_DECL(void)              HMHCChangedPagingMode(PVM pVM, PVMCPU pVCpu, PGMMODE enmShadowMode, PGMMODE enmGuestMode);
     149VMM_INT_DECL(void)              HMGetVmxMsrsFromHwvirtMsrs(PCSUPHWVIRTMSRS pMsrs, PVMXMSRS pVmxMsrs);
     150VMM_INT_DECL(void)              HMGetSvmMsrsFromHwvirtMsrs(PCSUPHWVIRTMSRS pMsrs, PSVMMSRS pSvmMsrs);
    149151/** @} */
    150152
     
    155157 * found in CPUM.
    156158 * @{ */
    157 VMM_INT_DECL(bool)              HMVmxCanExecuteGuest(PVMCPU pVCpu, PCCPUMCTX pCtx);
     159VMM_INT_DECL(bool)              HMCanExecuteVmxGuest(PVMCPU pVCpu, PCCPUMCTX pCtx);
    158160/** @} */
    159161
     
    171173/** @name R0, R3 HM (VMX/SVM agnostic) handlers.
    172174 * @{ */
    173 VMM_INT_DECL(int)               HMFlushTLB(PVMCPU pVCpu);
    174 VMM_INT_DECL(int)               HMFlushTLBOnAllVCpus(PVM pVM);
     175VMM_INT_DECL(int)               HMFlushTlb(PVMCPU pVCpu);
     176VMM_INT_DECL(int)               HMFlushTlbOnAllVCpus(PVM pVM);
    175177VMM_INT_DECL(int)               HMInvalidatePageOnAllVCpus(PVM pVM, RTGCPTR GCVirt);
    176178VMM_INT_DECL(int)               HMInvalidatePhysPage(PVM pVM, RTGCPHYS GCPhys);
     
    183185/** @name R0, R3 SVM handlers.
    184186 * @{ */
    185 VMM_INT_DECL(bool)              HMSvmIsVGifActive(PVM pVM);
    186 VMM_INT_DECL(uint64_t)          HMSvmNstGstApplyTscOffset(PVMCPU pVCpu, uint64_t uTicks);
     187VMM_INT_DECL(bool)              HMIsSvmVGifActive(PVM pVM);
     188VMM_INT_DECL(uint64_t)          HMApplySvmNstGstTscOffset(PVMCPU pVCpu, uint64_t uTicks);
    187189# ifdef VBOX_WITH_NESTED_HWVIRT_SVM
    188 VMM_INT_DECL(void)              HMSvmNstGstVmExitNotify(PVMCPU pVCpu, PCPUMCTX pCtx);
     190VMM_INT_DECL(void)              HMNotifySvmNstGstVmexit(PVMCPU pVCpu, PCPUMCTX pCtx);
    189191# endif
    190 VMM_INT_DECL(int)               HMSvmIsSubjectToErratum170(uint32_t *pu32Family, uint32_t *pu32Model, uint32_t *pu32Stepping);
    191 VMM_INT_DECL(int)               HMHCSvmMaybeMovTprHypercall(PVMCPU pVCpu);
     192VMM_INT_DECL(int)               HMIsSubjectToSvmErratum170(uint32_t *pu32Family, uint32_t *pu32Model, uint32_t *pu32Stepping);
     193VMM_INT_DECL(int)               HMHCMaybeMovTprSvmHypercall(PVMCPU pVCpu);
    192194/** @} */
    193195
     
    196198/** @name RC HM (VMX/SVM agnostic) handlers.
    197199 * @{ */
    198 # define HMFlushTLB(pVCpu)                                            do { } while (0)
    199 # define HMFlushTLBOnAllVCpus(pVM)                                    do { } while (0)
     200# define HMFlushTlb(pVCpu)                                            do { } while (0)
     201# define HMFlushTlbOnAllVCpus(pVM)                                    do { } while (0)
    200202# define HMInvalidatePageOnAllVCpus(pVM, GCVirt)                      do { } while (0)
    201203# define HMInvalidatePhysPage(pVM,  GCVirt)                           do { } while (0)
     
    208210/** @name RC SVM handlers.
    209211 * @{ */
    210 # define HMSvmIsVGifActive(pVM)                                       false
    211 # define HMSvmNstGstApplyTscOffset(pVCpu, uTicks)                     (uTicks)
    212 # define HMSvmNstGstVmExitNotify(pVCpu, pCtx)                         do { } while (0)
    213 # define HMSvmIsSubjectToErratum170(puFamily, puModel, puStepping)    false
    214 # define HMHCSvmMaybeMovTprHypercall(pVCpu)                           do { } while (0)
     212# define HMIsSvmVGifActive(pVM)                                       false
     213# define HMApplySvmNstGstTscOffset(pVCpu, uTicks)                     (uTicks)
     214# define HMNotifySvmNstGstVmexit(pVCpu, pCtx)                         do { } while (0)
     215# define HMIsSubjectToSvmErratum170(puFamily, puModel, puStepping)    false
     216# define HMHCMaybeMovTprSvmHypercall(pVCpu)                           do { } while (0)
    215217/** @} */
    216218
     
    281283VMMR3_INT_DECL(bool)            HMR3IsRescheduleRequired(PVM pVM, PCPUMCTX pCtx);
    282284VMMR3_INT_DECL(bool)            HMR3IsVmxPreemptionTimerUsed(PVM pVM);
    283 VMMR3DECL(const char *)         HMR3GetVmxExitName(uint32_t uExit);
    284 VMMR3DECL(const char *)         HMR3GetSvmExitName(uint32_t uExit);
    285285/** @} */
    286286#endif /* IN_RING3 */
  • trunk/include/VBox/vmm/hm_svm.h

    r76585 r76993  
    11621162 * @{
    11631163 */
    1164 VMM_INT_DECL(int)       HMSvmGetMsrpmOffsetAndBit(uint32_t idMsr, uint16_t *pbOffMsrpm, uint8_t *puMsrpmBit);
    1165 VMM_INT_DECL(bool)      HMSvmIsIOInterceptActive(void *pvIoBitmap, uint16_t u16Port, SVMIOIOTYPE enmIoType, uint8_t cbReg,
     1164VMM_INT_DECL(int)       HMGetSvmMsrpmOffsetAndBit(uint32_t idMsr, uint16_t *pbOffMsrpm, uint8_t *puMsrpmBit);
     1165VMM_INT_DECL(bool)      HMIsSvmIoInterceptActive(void *pvIoBitmap, uint16_t u16Port, SVMIOIOTYPE enmIoType, uint8_t cbReg,
    11661166                                                 uint8_t cAddrSizeBits, uint8_t iEffSeg, bool fRep, bool fStrIo,
    11671167                                                 PSVMIOIOEXITINFO pIoExitInfo);
  • trunk/include/VBox/vmm/hm_vmx.h

    r76827 r76993  
    14001400/** @name VMX abort reasons.
    14011401 * See Intel spec. "27.7 VMX Aborts".
    1402  * Update HMVmxGetAbortDesc() if new reasons are added.
    1403  * @{
     1402 * Update HMGetVmxAbortDesc() if new reasons are added. @{
    14041403 */
    14051404typedef enum
     
    40944093 * @{
    40954094 */
    4096 VMM_INT_DECL(int)   HMVmxGetMsrPermission(void const *pvMsrBitmap, uint32_t idMsr, PVMXMSREXITREAD penmRead,
     4095VMM_INT_DECL(int)   HMGetVmxMsrPermission(void const *pvMsrBitmap, uint32_t idMsr, PVMXMSREXITREAD penmRead,
    40974096                                          PVMXMSREXITWRITE penmWrite);
    4098 VMM_INT_DECL(bool)  HMVmxGetIoBitmapPermission(void const *pvIoBitmapA, void const *pvIoBitmapB, uint16_t uPort,
     4097VMM_INT_DECL(bool)  HMGetVmxIoBitmapPermission(void const *pvIoBitmapA, void const *pvIoBitmapB, uint16_t uPort,
    40994098                                               uint8_t cbAccess);
    41004099/** @} */
Note: See TracChangeset for help on using the changeset viewer.

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