Changeset 13827 in vbox for trunk/src/VBox/VMM/PATM
- Timestamp:
- Nov 5, 2008 1:31:18 AM (16 years ago)
- svn:sync-xref-src-repo-rev:
- 38818
- Location:
- trunk/src/VBox/VMM/PATM
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/PATM/CSAM.cpp
r13825 r13827 120 120 rc = MMR3HyperAllocOnceNoRel(pVM, CSAM_PGDIRBMP_CHUNKS*sizeof(RTRCPTR), 0, MM_TAG_CSAM, (void **)&pVM->csam.s.pPDGCBitmapHC); 121 121 AssertRCReturn(rc, rc); 122 pVM->csam.s.pPDBitmapGC = MMHyper HC2GC(pVM, pVM->csam.s.pPDGCBitmapHC);123 pVM->csam.s.pPDHCBitmapGC = MMHyper HC2GC(pVM, pVM->csam.s.pPDBitmapHC);122 pVM->csam.s.pPDBitmapGC = MMHyperR3ToRC(pVM, pVM->csam.s.pPDGCBitmapHC); 123 pVM->csam.s.pPDHCBitmapGC = MMHyperR3ToRC(pVM, pVM->csam.s.pPDBitmapHC); 124 124 125 125 rc = csamReinit(pVM); … … 260 260 { 261 261 /* Adjust pgdir and page bitmap pointers. */ 262 pVM->csam.s.pPDBitmapGC = MMHyper HC2GC(pVM, pVM->csam.s.pPDGCBitmapHC);263 pVM->csam.s.pPDHCBitmapGC = MMHyper HC2GC(pVM, pVM->csam.s.pPDBitmapHC);262 pVM->csam.s.pPDBitmapGC = MMHyperR3ToRC(pVM, pVM->csam.s.pPDGCBitmapHC); 263 pVM->csam.s.pPDHCBitmapGC = MMHyperR3ToRC(pVM, pVM->csam.s.pPDBitmapHC); 264 264 265 265 for(int i=0;i<CSAM_PGDIRBMP_CHUNKS;i++) … … 493 493 } 494 494 /* Convert to GC pointer. */ 495 pVM->csam.s.pPDGCBitmapHC[i] = MMHyper HC2GC(pVM, pVM->csam.s.pPDBitmapHC[i]);495 pVM->csam.s.pPDGCBitmapHC[i] = MMHyperR3ToRC(pVM, pVM->csam.s.pPDBitmapHC[i]); 496 496 Assert(pVM->csam.s.pPDGCBitmapHC[i]); 497 497 -
trunk/src/VBox/VMM/PATM/PATM.cpp
r13532 r13827 125 125 return rc; 126 126 } 127 pVM->patm.s.pPatchMemGC = MMHyper HC2GC(pVM, pVM->patm.s.pPatchMemHC);127 pVM->patm.s.pPatchMemGC = MMHyperR3ToRC(pVM, pVM->patm.s.pPatchMemHC); 128 128 129 129 /* PATM stack page for call instruction execution. (2 parts: one for our private stack and one to store the original return address */ 130 130 pVM->patm.s.pGCStackHC = (RTRCPTR *)(pVM->patm.s.pPatchMemHC + PATCH_MEMORY_SIZE + PAGE_SIZE); 131 pVM->patm.s.pGCStackGC = MMHyper HC2GC(pVM, pVM->patm.s.pGCStackHC);131 pVM->patm.s.pGCStackGC = MMHyperR3ToRC(pVM, pVM->patm.s.pGCStackHC); 132 132 133 133 /* … … 140 140 Assert(sizeof(PATMGCSTATE) < PAGE_SIZE); /** @note hardcoded dependencies on this exist. */ 141 141 pVM->patm.s.pGCStateHC = (PPATMGCSTATE)((uint8_t *)pVM->patm.s.pGCStackHC + PATM_STACK_TOTAL_SIZE); 142 pVM->patm.s.pGCStateGC = MMHyper HC2GC(pVM, pVM->patm.s.pGCStateHC);142 pVM->patm.s.pGCStateGC = MMHyperR3ToRC(pVM, pVM->patm.s.pGCStateHC); 143 143 144 144 /* Hypervisor memory for patch statistics */ 145 145 pVM->patm.s.pStatsHC = (PSTAMRATIOU32)((uint8_t *)pVM->patm.s.pGCStateHC + PAGE_SIZE); 146 pVM->patm.s.pStatsGC = MMHyper HC2GC(pVM, pVM->patm.s.pStatsHC);146 pVM->patm.s.pStatsGC = MMHyperR3ToRC(pVM, pVM->patm.s.pStatsHC); 147 147 148 148 /* Memory for patch lookup trees. */ 149 149 rc = MMHyperAlloc(pVM, sizeof(*pVM->patm.s.PatchLookupTreeHC), 0, MM_TAG_PATM, (void **)&pVM->patm.s.PatchLookupTreeHC); 150 150 AssertRCReturn(rc, rc); 151 pVM->patm.s.PatchLookupTreeGC = MMHyper HC2GC(pVM, pVM->patm.s.PatchLookupTreeHC);151 pVM->patm.s.PatchLookupTreeGC = MMHyperR3ToRC(pVM, pVM->patm.s.PatchLookupTreeHC); 152 152 153 153 #ifdef RT_ARCH_AMD64 /* see patmReinit(). */ … … 341 341 342 342 Assert(pVM->patm.s.pPatchMemHC); 343 Assert(pVM->patm.s.pPatchMemGC = MMHyper HC2GC(pVM, pVM->patm.s.pPatchMemHC));343 Assert(pVM->patm.s.pPatchMemGC = MMHyperR3ToRC(pVM, pVM->patm.s.pPatchMemHC)); 344 344 memset(pVM->patm.s.pPatchMemHC, 0, PATCH_MEMORY_SIZE); 345 345 AssertReleaseMsg(pVM->patm.s.pPatchMemGC, ("Impossible! MMHyperHC2GC(%p) failed!\n", pVM->patm.s.pPatchMemHC)); … … 350 350 351 351 Assert(pVM->patm.s.PatchLookupTreeHC); 352 Assert(pVM->patm.s.PatchLookupTreeGC == MMHyper HC2GC(pVM, pVM->patm.s.PatchLookupTreeHC));352 Assert(pVM->patm.s.PatchLookupTreeGC == MMHyperR3ToRC(pVM, pVM->patm.s.PatchLookupTreeHC)); 353 353 354 354 /* … … 412 412 VMMR3DECL(void) PATMR3Relocate(PVM pVM) 413 413 { 414 RTRCPTR GCPtrNew = MMHyper HC2GC(pVM, pVM->patm.s.pGCStateHC);414 RTRCPTR GCPtrNew = MMHyperR3ToRC(pVM, pVM->patm.s.pGCStateHC); 415 415 RTRCINTPTR delta = GCPtrNew - pVM->patm.s.pGCStateGC; 416 416 … … 434 434 435 435 pVM->patm.s.pGCStateGC = GCPtrNew; 436 pVM->patm.s.pPatchMemGC = MMHyper HC2GC(pVM, pVM->patm.s.pPatchMemHC);437 438 pVM->patm.s.pGCStackGC = MMHyper HC2GC(pVM, pVM->patm.s.pGCStackHC);439 440 pVM->patm.s.pStatsGC = MMHyper HC2GC(pVM, pVM->patm.s.pStatsHC);441 442 pVM->patm.s.PatchLookupTreeGC = MMHyper HC2GC(pVM, pVM->patm.s.PatchLookupTreeHC);436 pVM->patm.s.pPatchMemGC = MMHyperR3ToRC(pVM, pVM->patm.s.pPatchMemHC); 437 438 pVM->patm.s.pGCStackGC = MMHyperR3ToRC(pVM, pVM->patm.s.pGCStackHC); 439 440 pVM->patm.s.pStatsGC = MMHyperR3ToRC(pVM, pVM->patm.s.pStatsHC); 441 442 pVM->patm.s.PatchLookupTreeGC = MMHyperR3ToRC(pVM, pVM->patm.s.PatchLookupTreeHC); 443 443 444 444 if (pVM->patm.s.pfnSysEnterPatchGC) -
trunk/src/VBox/VMM/PATM/VMMAll/CSAMAll.cpp
r13822 r13827 138 138 } 139 139 #ifdef IN_GC 140 pVM->csam.s.pPDHCBitmapGC[pgdir] = MMHyper GC2HC(pVM, (RCPTRTYPE(void*))pVM->csam.s.pPDBitmapGC[pgdir]);140 pVM->csam.s.pPDHCBitmapGC[pgdir] = MMHyperRCToR3(pVM, (RCPTRTYPE(void*))pVM->csam.s.pPDBitmapGC[pgdir]); 141 141 if (!pVM->csam.s.pPDHCBitmapGC[pgdir]) 142 142 { … … 145 145 } 146 146 #else 147 pVM->csam.s.pPDGCBitmapHC[pgdir] = MMHyper HC2GC(pVM, pVM->csam.s.pPDBitmapHC[pgdir]);147 pVM->csam.s.pPDGCBitmapHC[pgdir] = MMHyperR3ToRC(pVM, pVM->csam.s.pPDBitmapHC[pgdir]); 148 148 if (!pVM->csam.s.pPDGCBitmapHC[pgdir]) 149 149 { -
trunk/src/VBox/VMM/PATM/VMMGC/PATMGC.cpp
r13822 r13827 128 128 STAM_COUNTER_INC(&pVM->patm.s.StatPatchWriteInterpretedFailed); 129 129 } 130 R3PTRTYPE(PPATCHINFO) *paPatch = (R3PTRTYPE(PPATCHINFO) *)MMHyper HC2GC(pVM, pPatchPage->aPatch);130 R3PTRTYPE(PPATCHINFO) *paPatch = (R3PTRTYPE(PPATCHINFO) *)MMHyperR3ToRC(pVM, pPatchPage->aPatch); 131 131 132 132 /* Increase the invalid write counter for each patch that's registered for that page. */ 133 133 for (uint32_t i=0;i<pPatchPage->cCount;i++) 134 134 { 135 PPATCHINFO pPatch = (PPATCHINFO)MMHyper HC2GC(pVM, paPatch[i]);135 PPATCHINFO pPatch = (PPATCHINFO)MMHyperR3ToRC(pVM, paPatch[i]); 136 136 137 137 pPatch->cInvalidWrites++;
Note:
See TracChangeset
for help on using the changeset viewer.