Changeset 26277 in vbox for trunk/src/VBox
- Timestamp:
- Feb 5, 2010 4:44:42 AM (15 years ago)
- svn:sync-xref-src-repo-rev:
- 57336
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/PATM/VMMAll/CSAMAll.cpp
r26271 r26277 109 109 * 110 110 */ 111 VMMDECL(int) CSAMMarkPage(PVM pVM, RTRC PTR pPage, bool fScanned)111 VMMDECL(int) CSAMMarkPage(PVM pVM, RTRCUINTPTR pPage, bool fScanned) 112 112 { 113 113 int pgdir, bit; … … 115 115 116 116 #ifdef LOG_ENABLED 117 if (fScanned && !CSAMIsPageScanned(pVM, pPage))117 if (fScanned && !CSAMIsPageScanned(pVM, (RTRCPTR)pPage)) 118 118 Log(("CSAMMarkPage %RRv\n", pPage)); 119 119 #endif … … 178 178 * @param GCPtr GC pointer of page 179 179 */ 180 VMMDECL(bool) CSAMDoesPageNeedScanning(PVM pVM, RTRC PTR GCPtr)180 VMMDECL(bool) CSAMDoesPageNeedScanning(PVM pVM, RTRCUINTPTR GCPtr) 181 181 { 182 182 if(!CSAMIsEnabled(pVM)) 183 183 return false; 184 184 185 if(CSAMIsPageScanned(pVM, GCPtr))185 if(CSAMIsPageScanned(pVM, (RTRCPTR)GCPtr)) 186 186 { 187 187 /* Already checked! */ -
trunk/src/VBox/VMM/PGMInternal.h
r26202 r26277 322 322 */ 323 323 #ifdef IN_RC 324 # define PGM_INVL_PG(pVCpu, GCVirt) ASMInvalidatePage((void *)( GCVirt))324 # define PGM_INVL_PG(pVCpu, GCVirt) ASMInvalidatePage((void *)(uintptr_t)(GCVirt)) 325 325 #elif defined(IN_RING0) 326 326 # define PGM_INVL_PG(pVCpu, GCVirt) HWACCMInvalidatePage(pVCpu, (RTGCPTR)(GCVirt)) … … 336 336 */ 337 337 #ifdef IN_RC 338 # define PGM_INVL_PG_ALL_VCPU(pVM, GCVirt) ASMInvalidatePage((void *)( GCVirt))338 # define PGM_INVL_PG_ALL_VCPU(pVM, GCVirt) ASMInvalidatePage((void *)(uintptr_t)(GCVirt)) 339 339 #elif defined(IN_RING0) 340 340 # define PGM_INVL_PG_ALL_VCPU(pVM, GCVirt) HWACCMInvalidatePageOnAllVCpus(pVM, (RTGCPTR)(GCVirt)) … … 906 906 * @param pPage Pointer to the physical guest page tracking structure. 907 907 */ 908 #define PGM_PAGE_GET_HNDL_VIRT_STATE(pPage) ( (pPage)->u16MiscY.au8[1] & UINT8_C(0x03))908 #define PGM_PAGE_GET_HNDL_VIRT_STATE(pPage) ((uint8_t)( (pPage)->u16MiscY.au8[1] & UINT8_C(0x03) )) 909 909 910 910 /** -
trunk/src/VBox/VMM/VMMAll/PDMAllCritSect.cpp
r25685 r26277 71 71 #else 72 72 AssertMsgReturn(pCritSect->s.Core.u32Magic == RTCRITSECT_MAGIC, ("%RX32\n", pCritSect->s.Core.u32Magic), 73 VERR_SEM_DESTROYED);73 NIL_RTNATIVETHREAD); 74 74 PVM pVM = pCritSect->s.CTX_SUFF(pVM); AssertPtr(pVM); 75 75 PVMCPU pVCpu = VMMGetCpu(pVM); AssertPtr(pVCpu); -
trunk/src/VBox/VMM/VMMAll/PGMAll.cpp
r26202 r26277 2218 2218 PGMDynMapHCPage(pVM, HCPhys, ppv); 2219 2219 #endif 2220 *ppv = (void *)((uintptr_t)*ppv | ( GCPhys & PAGE_OFFSET_MASK));2220 *ppv = (void *)((uintptr_t)*ppv | (uintptr_t)(GCPhys & PAGE_OFFSET_MASK)); 2221 2221 return VINF_SUCCESS; 2222 2222 } -
trunk/src/VBox/VMM/VMMAll/PGMAllBth.h
r26271 r26277 701 701 PGMGstGetPage(pVCpu, pvFault, &fPageGst2, &GCPhys2); 702 702 Log(("Page out of sync: %RGv eip=%08x PdeSrc.n.u1User=%d fPageGst2=%08llx GCPhys2=%RGp scan=%d\n", 703 pvFault, pRegFrame->eip, PdeSrc.n.u1User, fPageGst2, GCPhys2, CSAMDoesPageNeedScanning(pVM, (RTRCPTR)pRegFrame->eip)));703 pvFault, pRegFrame->eip, PdeSrc.n.u1User, fPageGst2, GCPhys2, CSAMDoesPageNeedScanning(pVM, pRegFrame->eip))); 704 704 # endif /* LOG_ENABLED */ 705 705 … … 717 717 # ifdef CSAM_DETECT_NEW_CODE_PAGES 718 718 || ( !PATMIsPatchGCAddr(pVM, pRegFrame->eip) 719 && CSAMDoesPageNeedScanning(pVM, (RTRCPTR)pRegFrame->eip)) /* any new code we encounter here */719 && CSAMDoesPageNeedScanning(pVM, pRegFrame->eip)) /* any new code we encounter here */ 720 720 # endif /* CSAM_DETECT_NEW_CODE_PAGES */ 721 721 ) … … 776 776 /** @todo not correct for pages that contain both code and data!! */ 777 777 Log2(("CSAMMarkPage %RGv; scanned=%d\n", pvFault, true)); 778 CSAMMarkPage(pVM, (RTRCPTR)pvFault, true);778 CSAMMarkPage(pVM, pvFault, true); 779 779 } 780 780 } … … 1728 1728 if ( ((PdeSrc.u & PteSrc.u) & (X86_PTE_RW | X86_PTE_US)) 1729 1729 || iPTDst == ((GCPtrPage >> SHW_PT_SHIFT) & SHW_PT_MASK) /* always sync GCPtrPage */ 1730 || !CSAMDoesPageNeedScanning(pVM, (RTRCPTR)GCPtrCurPage)1730 || !CSAMDoesPageNeedScanning(pVM, GCPtrCurPage) 1731 1731 || ( (pPage = pgmPhysGetPage(&pVM->pgm.s, PteSrc.u & GST_PTE_PG_MASK)) 1732 1732 && PGM_PAGE_HAS_ACTIVE_HANDLERS(pPage)) … … 2688 2688 PPGMPAGE pPage; 2689 2689 if ( ((PdeSrc.u & pPTSrc->a[iPTSrc].u) & (X86_PTE_RW | X86_PTE_US)) 2690 || !CSAMDoesPageNeedScanning(pVM, ( RTRCPTR)((iPDSrc << GST_PD_SHIFT) | (iPTSrc << PAGE_SHIFT)))2690 || !CSAMDoesPageNeedScanning(pVM, (iPDSrc << GST_PD_SHIFT) | (iPTSrc << PAGE_SHIFT)) 2691 2691 || ( (pPage = pgmPhysGetPage(&pVM->pgm.s, PteSrc.u & GST_PTE_PG_MASK)) 2692 2692 && PGM_PAGE_HAS_ACTIVE_HANDLERS(pPage)) … … 2809 2809 */ 2810 2810 else if ( !PdeSrc.n.u1User 2811 && CSAMDoesPageNeedScanning(pVM, (RTRCPTR)(GCPtr | (iPTDst << SHW_PT_SHIFT))))2811 && CSAMDoesPageNeedScanning(pVM, GCPtr | (iPTDst << SHW_PT_SHIFT))) 2812 2812 PteDst.u = 0; 2813 2813 # endif … … 3148 3148 /** @todo not correct for pages that contain both code and data!! */ 3149 3149 Log(("CSAMMarkPage %RGv; scanned=%d\n", GCPtrPage, true)); 3150 CSAMMarkPage(pVM, (RTRCPTR)GCPtrPage, true);3150 CSAMMarkPage(pVM, GCPtrPage, true); 3151 3151 } 3152 3152 # endif … … 4239 4239 pVCpu->pgm.s.pGstPaePdptR0 = (R0PTRTYPE(PX86PDPT))HCPtrGuestCR3; 4240 4240 # endif 4241 pVCpu->pgm.s.pGstPaePdptRC = (RCPTRTYPE(PX86PDPT))((R CPTRTYPE(uint8_t *))pVM->pgm.s.GCPtrCR3Mapping + off);4241 pVCpu->pgm.s.pGstPaePdptRC = (RCPTRTYPE(PX86PDPT))((RTRCUINTPTR)pVM->pgm.s.GCPtrCR3Mapping + off); 4242 4242 Log(("Cached mapping %RRv\n", pVCpu->pgm.s.pGstPaePdptRC)); 4243 4243 … … 4274 4274 pVCpu->pgm.s.apGstPaePDsR0[i] = (R0PTRTYPE(PX86PDPAE))HCPtr; 4275 4275 # endif 4276 pVCpu->pgm.s.apGstPaePDsRC[i] = (RCPTRTYPE(PX86PDPAE)) GCPtr;4276 pVCpu->pgm.s.apGstPaePDsRC[i] = (RCPTRTYPE(PX86PDPAE))(RTRCUINTPTR)GCPtr; 4277 4277 pVCpu->pgm.s.aGCPhysGstPaePDs[i] = GCPhys; 4278 4278 # ifdef IN_RC
Note:
See TracChangeset
for help on using the changeset viewer.