VirtualBox

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


Ignore:
Timestamp:
Nov 14, 2018 6:23:13 AM (6 years ago)
Author:
vboxsync
Message:

VMM: Nested VMX: bugref:9180 Separate the VMX/SVM CPU spec. functions into CPUM as they can be called from IEM/REM/CPUM as well as HM.

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

Legend:

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

    r75413 r75440  
    3232#include <VBox/vmm/stam.h>
    3333#include <VBox/vmm/vmapi.h>
     34#include <VBox/vmm/hm_svm.h>
     35#include <VBox/vmm/hm_vmx.h>
    3436
    3537RT_C_DECLS_BEGIN
     
    20692071VMMDECL(void)           CPUMRawSetEFlags(PVMCPU pVCpu, uint32_t fEfl);
    20702072
     2073/** @name SVM helpers.
     2074 * @{ */
     2075VMM_INT_DECL(int)       CPUMSvmGetMsrpmOffsetAndBit(uint32_t idMsr, uint16_t *pbOffMsrpm, uint8_t *puMsrpmBit);
     2076VMM_INT_DECL(bool)      CPUMSvmIsIOInterceptActive(void *pvIoBitmap, uint16_t u16Port, SVMIOIOTYPE enmIoType, uint8_t cbReg,
     2077                                                   uint8_t cAddrSizeBits, uint8_t iEffSeg, bool fRep, bool fStrIo,
     2078                                                   PSVMIOIOEXITINFO pIoExitInfo);
     2079/** @} */
     2080
     2081/** @name VMX helpers.
     2082 * @{ */
     2083VMM_INT_DECL(int)       CPUMVmxGetMsrPermission(void const *pvMsrBitmap, uint32_t idMsr, PVMXMSREXITREAD penmRead,
     2084                                                PVMXMSREXITWRITE penmWrite);
     2085VMM_INT_DECL(bool)      CPUMVmxGetIoBitmapPermission(void const *pvIoBitmapA, void const *pvIoBitmapB, uint16_t uPort,
     2086                                                     uint8_t cbAccess);
     2087/** @} */
     2088
    20712089/** @name Changed flags.
    20722090 * These flags are used to keep track of which important register that
  • trunk/include/VBox/vmm/hm.h

    r74695 r75440  
    141141
    142142/** @name All-context VMX helpers.
    143  * These are VMX functions (based on VMX specs.) that may be used by IEM/REM and
    144  * not VirtualBox functions that are used for hardware-assisted VMX. Those are
    145  * declared below under the !IN_RC section.
     143 *
     144 * These are hardware-assisted VMX functions (used by IEM/REM/CPUM and HM). Helpers
     145 * based purely on the Intel VT-x specification (used by IEM/REM and HM) can be
     146 * found in CPUM.
    146147 * @{ */
    147148VMM_INT_DECL(int)               HMVmxGetHostMsrs(PVM pVM, PVMXMSRS pVmxMsrs);
     
    150151VMM_INT_DECL(int)               HMVmxEntryIntInfoInjectTrpmEvent(PVMCPU pVCpu, uint32_t uEntryIntInfo, uint32_t uErrCode,
    151152                                                                 uint32_t cbInstr, RTGCUINTPTR GCPtrFaultAddress);
    152 VMM_INT_DECL(int)               HMVmxGetMsrPermission(void const *pvMsrBitmap, uint32_t idMsr, PVMXMSREXITREAD penmRead,
    153                                                       PVMXMSREXITWRITE penmWrite);
    154 VMM_INT_DECL(bool)              HMVmxGetIoBitmapPermission(void const *pvIoBitmapA, void const *pvIoBitmapB, uint16_t uPort,
    155                                                            uint8_t cbAccess);
    156153/** @} */
    157154
    158155/** @name All-context SVM helpers.
    159156 *
    160  * These are SVM functions (based on AMD specs.) that may be used by IEM/REM and
    161  * not VirtualBox functions that are used for hardware-assisted SVM. Those are
    162  * declared below under the !IN_RC section.
     157 * These are hardware-assisted SVM functions (used by IEM/REM/CPUM and HM). Helpers
     158 * based purely on the AMD SVM specification (used by IEM/REM and HM) can be found
     159 * in CPUM.
    163160 * @{ */
    164161VMM_INT_DECL(TRPMEVENT)         HMSvmEventToTrpmEventType(PCSVMEVENT pSvmEvent);
    165 VMM_INT_DECL(int)               HMSvmGetMsrpmOffsetAndBit(uint32_t idMsr, uint16_t *pbOffMsrpm, uint8_t *puMsrpmBit);
    166 VMM_INT_DECL(bool)              HMSvmIsIOInterceptActive(void *pvIoBitmap, uint16_t u16Port, SVMIOIOTYPE enmIoType, uint8_t cbReg,
    167                                                          uint8_t cAddrSizeBits, uint8_t iEffSeg, bool fRep, bool fStrIo,
    168                                                          PSVMIOIOEXITINFO pIoExitInfo);
    169162/** @} */
    170163
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