VirtualBox

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


Ignore:
Timestamp:
Nov 20, 2018 11:20:25 AM (6 years ago)
Author:
vboxsync
Message:

VMM: Nested VMX: bugref:9180 Move the VMX APIC-access guest-physical page registration into IEM and got rid of the CPUM all context code that does not quite fit because we still have to declare the prototypes in the HM headers anyway, so just keep it in HM all context code for now.

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

Legend:

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

    r75507 r75611  
    20712071VMMDECL(void)           CPUMRawSetEFlags(PVMCPU pVCpu, uint32_t fEfl);
    20722072
    2073 /** @name SVM helpers.
    2074  * @{ */
    2075 VMM_INT_DECL(int)       CPUMSvmGetMsrpmOffsetAndBit(uint32_t idMsr, uint16_t *pbOffMsrpm, uint8_t *puMsrpmBit);
    2076 VMM_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  * @{ */
    2083 VMM_INT_DECL(int)       CPUMVmxGetMsrPermission(void const *pvMsrBitmap, uint32_t idMsr, PVMXMSREXITREAD penmRead,
    2084                                                 PVMXMSREXITWRITE penmWrite);
    2085 VMM_INT_DECL(bool)      CPUMVmxGetIoBitmapPermission(void const *pvIoBitmapA, void const *pvIoBitmapB, uint16_t uPort,
    2086                                                      uint8_t cbAccess);
    2087 VMM_INT_DECL(int)       CPUMVmxApicAccessPageRegister(PVMCPU pVCpu, RTGCPHYS GCPhysApicAccess);
    2088 VMM_INT_DECL(int)       CPUMVmxApicAccessPageDeregister(PVMCPU pVCpu, RTGCPHYS GCPhysApicAccess);
    2089 /** @} */
    2090 
    20912073/** @name Changed flags.
    20922074 * These flags are used to keep track of which important register that
  • trunk/include/VBox/vmm/hm_svm.h

    r73286 r75611  
    11341134    } while (0)
    11351135
    1136 /*
     1136
     1137/** @defgroup grp_hm_svm_c    SVM C Helpers
     1138 *
     1139 * These are functions that strictly only implement SVM functionality that is in
     1140 * accordance to the SVM spec. and thus fit to use by IEM/REM/HM.
     1141 *
     1142 * These are not HM all-context API functions, those are to be placed in hm.h.
     1143 * @{
     1144 */
     1145VMM_INT_DECL(int)       HMSvmGetMsrpmOffsetAndBit(uint32_t idMsr, uint16_t *pbOffMsrpm, uint8_t *puMsrpmBit);
     1146VMM_INT_DECL(bool)      HMSvmIsIOInterceptActive(void *pvIoBitmap, uint16_t u16Port, SVMIOIOTYPE enmIoType, uint8_t cbReg,
     1147                                                 uint8_t cAddrSizeBits, uint8_t iEffSeg, bool fRep, bool fStrIo,
     1148                                                 PSVMIOIOEXITINFO pIoExitInfo);
     1149/** @} */
     1150
     1151
     1152/** @defgroup grp_hm_svm_hwexec    SVM Hardware-assisted execution Helpers
     1153 *
    11371154 * These functions are only here because the inline functions in cpum.h calls them.
    11381155 * Don't add any more functions here unless there is no other option.
     1156 * @{
    11391157 */
    11401158VMM_INT_DECL(bool)     HMHasGuestSvmVmcbCached(PVMCPU pVCpu);
     
    11481166VMM_INT_DECL(bool)     HMIsGuestSvmNestedPagingEnabled(PVMCPU pVCpu);
    11491167VMM_INT_DECL(uint16_t) HMGetGuestSvmPauseFilterCount(PVMCPU pVCpu);
    1150 
    11511168/** @} */
    11521169
     1170
     1171/** @} */
     1172
    11531173#endif
    11541174
  • trunk/include/VBox/vmm/hm_vmx.h

    r75493 r75611  
    41914191
    41924192
     4193/** @defgroup grp_hm_vmx_c    VMX Assembly Helpers
     4194 *
     4195 * These are functions that strictly only implement VT-x functionality that is in
     4196 * accordance to the VT-X spec. and thus fit to use by IEM/REM/HM.
     4197 *
     4198 * These are not HM all-context API functions, those are to be placed in hm.h.
     4199 * @{
     4200 */
     4201VMM_INT_DECL(int)   HMVmxGetMsrPermission(void const *pvMsrBitmap, uint32_t idMsr, PVMXMSREXITREAD penmRead,
     4202                                          PVMXMSREXITWRITE penmWrite);
     4203VMM_INT_DECL(bool)  HMVmxGetIoBitmapPermission(void const *pvIoBitmapA, void const *pvIoBitmapB, uint16_t uPort,
     4204                                               uint8_t cbAccess);
     4205/** @} */
     4206
     4207
    41934208/** @defgroup grp_hm_vmx_asm    VMX Assembly Helpers
    41944209 * @{
  • trunk/include/VBox/vmm/iem.h

    r75565 r75611  
    329329#ifdef VBOX_WITH_NESTED_HWVIRT_VMX
    330330VMM_INT_DECL(VBOXSTRICTRC)  IEMExecVmxVirtApicAccessMsr(PVMCPU pVCpu, uint32_t idMsr, uint64_t *pu64Val, bool fWrite);
    331 VMM_INT_DECL(VBOXSTRICTRC)  IEMExecVmxVirtApicAccessMem(PVMCPU pVCpu, uint16_t offAccess, size_t cbAccess, void *pvData,
    332                                                         bool fWrite);
    333331VMM_INT_DECL(VBOXSTRICTRC)  IEMExecVmxVirtApicUpdate(PVMCPU pVCpu);
    334332VMM_INT_DECL(VBOXSTRICTRC)  IEMExecVmxVmexitPreemptTimer(PVMCPU pVCpu);
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