Changeset 55896 in vbox for trunk/src/VBox/VMM/VMMAll
- Timestamp:
- May 17, 2015 8:20:30 PM (10 years ago)
- svn:sync-xref-src-repo-rev:
- 100353
- Location:
- trunk/src/VBox/VMM/VMMAll
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IOMAllMMIO.cpp
r55841 r55896 1741 1741 * @param pvUser Pointer to the MMIO ring-3 range entry. 1742 1742 */ 1743 VMMDECL(int) IOMMMIOHandler(PVM pVM, RTGCUINT uErrorCode, PCPUMCTXCORE pCtxCore, RTGCPTR pvFault, RTGCPHYS GCPhysFault, void *pvUser) 1744 { 1745 LogFlow(("IOMMMIOHandler: GCPhys=%RGp uErr=%#x pvFault=%RGv rip=%RGv\n", 1743 DECLEXPORT(int) iomMmioPfHandler(PVM pVM, RTGCUINT uErrorCode, PCPUMCTXCORE pCtxCore, RTGCPTR pvFault, 1744 RTGCPHYS GCPhysFault, void *pvUser) 1745 { 1746 LogFlow(("iomMmioPfHandler: GCPhys=%RGp uErr=%#x pvFault=%RGv rip=%RGv\n", 1746 1747 GCPhysFault, (uint32_t)uErrorCode, pvFault, (RTGCPTR)pCtxCore->rip)); 1747 1748 VBOXSTRICTRC rcStrict = iomMMIOHandler(pVM, VMMGetCpu(pVM), (uint32_t)uErrorCode, pCtxCore, GCPhysFault, pvUser); … … 1799 1800 * @param pvUser Pointer to the MMIO range entry. 1800 1801 */ 1801 DECLCALLBACK(int) IOMR3MMIOHandler(PVM pVM, RTGCPHYS GCPhysFault, void *pvPhys, void *pvBuf, size_t cbBuf,1802 DECLCALLBACK(int) iomR3MmioHandler(PVM pVM, RTGCPHYS GCPhysFault, void *pvPhys, void *pvBuf, size_t cbBuf, 1802 1803 PGMACCESSTYPE enmAccessType, void *pvUser) 1803 1804 { -
trunk/src/VBox/VMM/VMMAll/PGMAllBth.h
r55895 r55896 248 248 } 249 249 250 if (pCurType->CTX_SUFF(pfn Handler))250 if (pCurType->CTX_SUFF(pfnPfHandler)) 251 251 { 252 PPGMPOOL pPool = pVM->pgm.s.CTX_SUFF(pPool); 253 void *pvUser = pCur->CTX_SUFF(pvUser); 254 # ifdef IN_RING0 255 PFNPGMR0PHYSHANDLER pfnHandler = pCurType->CTX_SUFF(pfnHandler); 256 # else 257 PFNPGMRCPHYSHANDLER pfnHandler = pCurType->CTX_SUFF(pfnHandler); 258 # endif 252 PPGMPOOL pPool = pVM->pgm.s.CTX_SUFF(pPool); 253 void *pvUser = pCur->CTX_SUFF(pvUser); 259 254 260 255 STAM_PROFILE_START(&pCur->Stat, h); … … 265 260 } 266 261 267 rc = p fnHandler(pVM, uErr, pRegFrame, pvFault, GCPhysFault, pvUser);262 rc = pCurType->CTX_SUFF(pfnPfHandler)(pVM, uErr, pRegFrame, pvFault, GCPhysFault, pvUser); 268 263 269 264 # ifdef VBOX_WITH_STATISTICS -
trunk/src/VBox/VMM/VMMAll/PGMAllPhys.cpp
r55889 r55896 64 64 * @param pvUser User argument. 65 65 */ 66 VMMDECL(int) pgmPhysHandlerRedirectToHC(PVM pVM, RTGCUINT uErrorCode, PCPUMCTXCORE pRegFrame, RTGCPTR pvFault, RTGCPHYS GCPhysFault, void *pvUser) 66 VMMDECL(int) pgmPhysPfHandlerRedirectToHC(PVM pVM, RTGCUINT uErrorCode, PCPUMCTXCORE pRegFrame, RTGCPTR pvFault, 67 RTGCPHYS GCPhysFault, void *pvUser) 67 68 { 68 69 NOREF(pVM); NOREF(uErrorCode); NOREF(pRegFrame); NOREF(pvFault); NOREF(GCPhysFault); NOREF(pvUser); … … 83 84 * @param pvUser User argument. Pointer to the ROM range structure. 84 85 */ 85 VMMDECL(int) pgmPhysRomWriteHandler(PVM pVM, RTGCUINT uErrorCode, PCPUMCTXCORE pRegFrame, RTGCPTR pvFault, RTGCPHYS GCPhysFault, void *pvUser) 86 DECLEXPORT(int) pgmPhysRomWritePfHandler(PVM pVM, RTGCUINT uErrorCode, PCPUMCTXCORE pRegFrame, RTGCPTR pvFault, 87 RTGCPHYS GCPhysFault, void *pvUser) 86 88 { 87 89 int rc; … … 2355 2357 { 2356 2358 Assert(GCPhys >= pCur->Core.Key && GCPhys <= pCur->Core.KeyLast); 2357 Assert(PGMPHYSHANDLER_GET_TYPE(pVM, pCur)->CTX_SUFF(pfnHandler));2358 2359 2359 2360 size_t cbRange = pCur->Core.KeyLast - GCPhys + 1; … … 2368 2369 2369 2370 #else /* IN_RING3 */ 2371 Assert(PGMPHYSHANDLER_GET_TYPE(pVM, pCur)->CTX_SUFF(pfnHandler)); 2370 2372 Log5(("pgmPhysWriteHandler: GCPhys=%RGp cbRange=%#x pPage=%R[pgmpage] phys %s\n", 2371 2373 GCPhys, cbRange, pPage, R3STRING(pCur->pszDesc) )); -
trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp
r55493 r55896 52 52 static void pgmPoolMonitorModifiedRemove(PPGMPOOL pPool, PPGMPOOLPAGE pPage); 53 53 #ifndef IN_RING3 54 DECLEXPORT( int) pgmPoolAccessHandler(PVM pVM, RTGCUINT uErrorCode, PCPUMCTXCORE pRegFrame, RTGCPTR pvFault, RTGCPHYS GCPhysFault, void *pvUser);54 DECLEXPORT(CTX_MID(FNPGM,PHYSPFHANDLER)) pgmPoolAccessPfHandler; 55 55 #endif 56 56 #if defined(LOG_ENABLED) || defined(VBOX_STRICT) … … 823 823 * @todo VBOXSTRICTRC 824 824 */ 825 static int pgmPoolAccess HandlerFlush(PVM pVM, PVMCPU pVCpu, PPGMPOOL pPool, PPGMPOOLPAGE pPage, PDISCPUSTATE pDis,826 PCPUMCTXCORE pRegFrame, RTGCPHYS GCPhysFault, RTGCPTR pvFault)825 static int pgmPoolAccessPfHandlerFlush(PVM pVM, PVMCPU pVCpu, PPGMPOOL pPool, PPGMPOOLPAGE pPage, PDISCPUSTATE pDis, 826 PCPUMCTXCORE pRegFrame, RTGCPHYS GCPhysFault, RTGCPTR pvFault) 827 827 { 828 828 NOREF(pVM); NOREF(GCPhysFault); … … 855 855 if (PATMIsPatchGCAddr(pVM, pRegFrame->eip)) 856 856 { 857 LogFlow(("pgmPoolAccess HandlerPTWorker: Interpretation failed for patch code %04x:%RGv, ignoring.\n",857 LogFlow(("pgmPoolAccessPfHandlerPTWorker: Interpretation failed for patch code %04x:%RGv, ignoring.\n", 858 858 pRegFrame->cs.Sel, (RTGCPTR)pRegFrame->eip)); 859 859 rc = VINF_SUCCESS; … … 872 872 AssertMsgFailed(("%Rrc\n", VBOXSTRICTRC_VAL(rc2))); /* ASSUMES no complicated stuff here. */ 873 873 874 LogFlow(("pgmPoolAccess HandlerPT: returns %Rrc (flushed)\n", rc));874 LogFlow(("pgmPoolAccessPfHandlerPT: returns %Rrc (flushed)\n", rc)); 875 875 return rc; 876 876 } … … 889 889 * @param pvFault The fault address. 890 890 */ 891 DECLINLINE(int) pgmPoolAccess HandlerSTOSD(PVM pVM, PPGMPOOL pPool, PPGMPOOLPAGE pPage, PDISCPUSTATE pDis,892 PCPUMCTXCORE pRegFrame, RTGCPHYS GCPhysFault, RTGCPTR pvFault)891 DECLINLINE(int) pgmPoolAccessPfHandlerSTOSD(PVM pVM, PPGMPOOL pPool, PPGMPOOLPAGE pPage, PDISCPUSTATE pDis, 892 PCPUMCTXCORE pRegFrame, RTGCPHYS GCPhysFault, RTGCPTR pvFault) 893 893 { 894 894 unsigned uIncrement = pDis->Param1.cb; … … 905 905 #endif 906 906 907 Log3(("pgmPoolAccess HandlerSTOSD\n"));907 Log3(("pgmPoolAccessPfHandlerSTOSD\n")); 908 908 909 909 /* … … 943 943 pRegFrame->rip += pDis->cbInstr; 944 944 945 LogFlow(("pgmPoolAccess HandlerSTOSD: returns\n"));945 LogFlow(("pgmPoolAccessPfHandlerSTOSD: returns\n")); 946 946 return VINF_SUCCESS; 947 947 } … … 962 962 * @param pfReused Reused state (in/out) 963 963 */ 964 DECLINLINE(int) pgmPoolAccess HandlerSimple(PVM pVM, PVMCPU pVCpu, PPGMPOOL pPool, PPGMPOOLPAGE pPage, PDISCPUSTATE pDis,965 PCPUMCTXCORE pRegFrame, RTGCPHYS GCPhysFault, RTGCPTR pvFault, bool *pfReused)966 { 967 Log3(("pgmPoolAccess HandlerSimple\n"));964 DECLINLINE(int) pgmPoolAccessPfHandlerSimple(PVM pVM, PVMCPU pVCpu, PPGMPOOL pPool, PPGMPOOLPAGE pPage, PDISCPUSTATE pDis, 965 PCPUMCTXCORE pRegFrame, RTGCPHYS GCPhysFault, RTGCPTR pvFault, bool *pfReused) 966 { 967 Log3(("pgmPoolAccessPfHandlerSimple\n")); 968 968 NOREF(pVM); 969 969 NOREF(pfReused); /* initialized by caller */ … … 1005 1005 else if (rc == VERR_EM_INTERPRETER) 1006 1006 { 1007 LogFlow(("pgmPoolAccess HandlerPTWorker: Interpretation failed for %04x:%RGv - opcode=%d\n",1007 LogFlow(("pgmPoolAccessPfHandlerPTWorker: Interpretation failed for %04x:%RGv - opcode=%d\n", 1008 1008 pRegFrame->cs.Sel, (RTGCPTR)pRegFrame->rip, pDis->pCurInstr->uOpcode)); 1009 1009 rc = VINF_EM_RAW_EMULATE_INSTR; … … 1041 1041 #endif 1042 1042 1043 LogFlow(("pgmPoolAccess HandlerSimple: returns %Rrc\n", VBOXSTRICTRC_VAL(rc)));1043 LogFlow(("pgmPoolAccessPfHandlerSimple: returns %Rrc\n", VBOXSTRICTRC_VAL(rc))); 1044 1044 return VBOXSTRICTRC_VAL(rc); 1045 1045 } … … 1058 1058 * @param pvUser User argument. 1059 1059 */ 1060 DECLEXPORT(int) pgmPoolAccess Handler(PVM pVM, RTGCUINT uErrorCode, PCPUMCTXCORE pRegFrame, RTGCPTR pvFault,1061 RTGCPHYS GCPhysFault, void *pvUser)1060 DECLEXPORT(int) pgmPoolAccessPfHandler(PVM pVM, RTGCUINT uErrorCode, PCPUMCTXCORE pRegFrame, RTGCPTR pvFault, 1061 RTGCPHYS GCPhysFault, void *pvUser) 1062 1062 { 1063 1063 STAM_PROFILE_START(&pVM->pgm.s.CTX_SUFF(pPool)->CTX_SUFF_Z(StatMonitor), a); … … 1069 1069 NOREF(uErrorCode); 1070 1070 1071 LogFlow(("pgmPoolAccess Handler: pvFault=%RGv pPage=%p:{.idx=%d} GCPhysFault=%RGp\n", pvFault, pPage, pPage->idx, GCPhysFault));1071 LogFlow(("pgmPoolAccessPfHandler: pvFault=%RGv pPage=%p:{.idx=%d} GCPhysFault=%RGp\n", pvFault, pPage, pPage->idx, GCPhysFault)); 1072 1072 1073 1073 pgmLock(pVM); … … 1075 1075 { 1076 1076 /* Pool page changed while we were waiting for the lock; ignore. */ 1077 Log(("CPU%d: pgmPoolAccess Handler pgm pool page for %RGp changed (to %RGp) while waiting!\n", pVCpu->idCpu, PHYS_PAGE_ADDRESS(GCPhysFault), PHYS_PAGE_ADDRESS(pPage->GCPhys)));1077 Log(("CPU%d: pgmPoolAccessPfHandler pgm pool page for %RGp changed (to %RGp) while waiting!\n", pVCpu->idCpu, PHYS_PAGE_ADDRESS(GCPhysFault), PHYS_PAGE_ADDRESS(pPage->GCPhys))); 1078 1078 STAM_PROFILE_STOP_EX(&pVM->pgm.s.CTX_SUFF(pPool)->CTX_SUFF_Z(StatMonitor), &pPool->CTX_MID_Z(StatMonitor,Handled), a); 1079 1079 pgmUnlock(pVM); … … 1173 1173 if (!(pDis->fPrefix & (DISPREFIX_REP | DISPREFIX_REPNE))) 1174 1174 { 1175 rc = pgmPoolAccess HandlerSimple(pVM, pVCpu, pPool, pPage, pDis, pRegFrame, GCPhysFault, pvFault, &fReused);1175 rc = pgmPoolAccessPfHandlerSimple(pVM, pVCpu, pPool, pPage, pDis, pRegFrame, GCPhysFault, pvFault, &fReused); 1176 1176 if (fReused) 1177 1177 goto flushPage; … … 1244 1244 if (fValidStosd) 1245 1245 { 1246 rc = pgmPoolAccess HandlerSTOSD(pVM, pPool, pPage, pDis, pRegFrame, GCPhysFault, pvFault);1246 rc = pgmPoolAccessPfHandlerSTOSD(pVM, pPool, pPage, pDis, pRegFrame, GCPhysFault, pvFault); 1247 1247 STAM_PROFILE_STOP_EX(&pVM->pgm.s.CTX_SUFF(pPool)->CTX_SUFF_Z(StatMonitor), &pPool->CTX_MID_Z(StatMonitor,RepStosd), a); 1248 1248 pgmUnlock(pVM); … … 1253 1253 /* REP prefix, don't bother. */ 1254 1254 STAM_COUNTER_INC(&pPool->CTX_MID_Z(StatMonitor,RepPrefix)); 1255 Log4(("pgmPoolAccess Handler: eax=%#x ecx=%#x edi=%#x esi=%#x rip=%RGv opcode=%d prefix=%#x\n",1255 Log4(("pgmPoolAccessPfHandler: eax=%#x ecx=%#x edi=%#x esi=%#x rip=%RGv opcode=%d prefix=%#x\n", 1256 1256 pRegFrame->eax, pRegFrame->ecx, pRegFrame->edi, pRegFrame->esi, (RTGCPTR)pRegFrame->rip, pDis->pCurInstr->uOpcode, pDis->fPrefix)); 1257 1257 fNotReusedNotForking = true; … … 1341 1341 * the reuse detection must be fixed. 1342 1342 */ 1343 rc = pgmPoolAccess HandlerFlush(pVM, pVCpu, pPool, pPage, pDis, pRegFrame, GCPhysFault, pvFault);1343 rc = pgmPoolAccessPfHandlerFlush(pVM, pVCpu, pPool, pPage, pDis, pRegFrame, GCPhysFault, pvFault); 1344 1344 if ( rc == VINF_EM_RAW_EMULATE_INSTR 1345 1345 && fReused)
Note:
See TracChangeset
for help on using the changeset viewer.