- Timestamp:
- May 21, 2008 9:41:28 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/PGMAllBth.h
r9032 r9041 78 78 PGM_BTH_DECL(int, Trap0eHandler)(PVM pVM, RTGCUINT uErr, PCPUMCTXCORE pRegFrame, RTGCPTR pvFault) 79 79 { 80 #if (PGM_GST_TYPE == PGM_TYPE_32BIT || PGM_GST_TYPE == PGM_TYPE_REAL || PGM_GST_TYPE == PGM_TYPE_PROT || PGM_GST_TYPE == PGM_TYPE_PAE || PGM_GST_TYPE == PGM_TYPE_AMD64) \80 #if (PGM_GST_TYPE == PGM_TYPE_32BIT || PGM_GST_TYPE == PGM_TYPE_REAL || PGM_GST_TYPE == PGM_TYPE_PROT || PGM_GST_TYPE == PGM_TYPE_PAE || PGM_GST_TYPE == PGM_TYPE_AMD64) \ 81 81 && PGM_SHW_TYPE != PGM_TYPE_NESTED 82 82 … … 565 565 else 566 566 { 567 /* When the guest accesses invalid physical memory (e.g. probing of RAM or accessing a remapped MMIO range), then we'll fall 567 /* When the guest accesses invalid physical memory (e.g. probing of RAM or accessing a remapped MMIO range), then we'll fall 568 568 * back to the recompiler to emulate the instruction. 569 569 */ … … 1418 1418 LogFlow(("SyncPage: GCPtrPage=%VGv cPages=%d uErr=%#x\n", GCPtrPage, cPages, uErr)); 1419 1419 1420 #if ( PGM_GST_TYPE == PGM_TYPE_32BIT \1421 ||PGM_GST_TYPE == PGM_TYPE_PAE) \1420 #if ( PGM_GST_TYPE == PGM_TYPE_32BIT \ 1421 || PGM_GST_TYPE == PGM_TYPE_PAE) \ 1422 1422 && PGM_SHW_TYPE != PGM_TYPE_NESTED 1423 1423 … … 1662 1662 1663 1663 #elif (PGM_GST_TYPE == PGM_TYPE_REAL || PGM_GST_TYPE == PGM_TYPE_PROT) \ 1664 1664 && PGM_SHW_TYPE != PGM_TYPE_NESTED 1665 1665 1666 1666 # ifdef PGM_SYNC_N_PAGES … … 2028 2028 2029 2029 UpperLevelPageFault: 2030 /* Pagefault detected while checking the PML4E, PDPE or PDE. 2030 /* Pagefault detected while checking the PML4E, PDPE or PDE. 2031 2031 * Single exit handler to get rid of duplicate code paths. 2032 2032 */ … … 2037 2037 LogFlow(("CheckPageFault: real page fault at %VGv (%d)\n", GCPtrPage, uPageFaultLevel)); 2038 2038 2039 if ( 2039 if ( 2040 2040 # if PGM_GST_TYPE == PGM_TYPE_AMD64 2041 2041 pPml4eSrc->n.u1Present && … … 2523 2523 PGM_BTH_DECL(int, PrefetchPage)(PVM pVM, RTGCUINTPTR GCPtrPage) 2524 2524 { 2525 #if (PGM_GST_TYPE == PGM_TYPE_32BIT || PGM_GST_TYPE == PGM_TYPE_REAL || PGM_GST_TYPE == PGM_TYPE_PROT || PGM_GST_TYPE == PGM_TYPE_PAE) \2525 #if (PGM_GST_TYPE == PGM_TYPE_32BIT || PGM_GST_TYPE == PGM_TYPE_REAL || PGM_GST_TYPE == PGM_TYPE_PROT || PGM_GST_TYPE == PGM_TYPE_PAE) \ 2526 2526 && PGM_SHW_TYPE != PGM_TYPE_AMD64 && PGM_SHW_TYPE != PGM_TYPE_NESTED 2527 2527 /* … … 2603 2603 2604 2604 Assert(!HWACCMIsNestedPagingActive(pVM)); 2605 #if (PGM_GST_TYPE == PGM_TYPE_32BIT || PGM_GST_TYPE == PGM_TYPE_REAL || PGM_GST_TYPE == PGM_TYPE_PROT || PGM_GST_TYPE == PGM_TYPE_PAE) \2605 #if (PGM_GST_TYPE == PGM_TYPE_32BIT || PGM_GST_TYPE == PGM_TYPE_REAL || PGM_GST_TYPE == PGM_TYPE_PROT || PGM_GST_TYPE == PGM_TYPE_PAE) \ 2606 2606 && PGM_SHW_TYPE != PGM_TYPE_AMD64 && PGM_SHW_TYPE != PGM_TYPE_NESTED 2607 2607 … … 2760 2760 { 2761 2761 #if PGM_SHW_TYPE == PGM_TYPE_NESTED 2762 /* @todo check if this is really necessary */2762 /** @todo check if this is really necessary */ 2763 2763 HWACCMFlushTLB(pVM); 2764 2764 return VINF_SUCCESS; 2765 #else 2765 2766 #else /* PGM_SHW_TYPE != PGM_TYPE_NESTED */ 2766 2767 if (VM_FF_ISSET(pVM, VM_FF_PGM_SYNC_CR3)) 2767 2768 fGlobal = true; /* Change this CR3 reload to be a global one. */ … … 2780 2781 STAM_PROFILE_STOP(&pVM->pgm.s.CTXMID(Stat,SyncCR3Handlers), h); 2781 2782 2782 # ifdef PGMPOOL_WITH_MONITORING2783 # ifdef PGMPOOL_WITH_MONITORING 2783 2784 /* 2784 2785 * When monitoring shadowed pages, we reset the modification counters on CR3 sync. … … 2791 2792 else 2792 2793 { 2793 # ifdef IN_RING32794 # ifdef IN_RING3 2794 2795 pVM->pgm.s.fSyncFlags &= ~PGM_SYNC_CLEAR_PGM_POOL; 2795 2796 pgmPoolClearAll(pVM); 2796 # else2797 # else 2797 2798 LogFlow(("SyncCR3: PGM_SYNC_CLEAR_PGM_POOL is set -> VINF_PGM_SYNC_CR3\n")); 2798 2799 return VINF_PGM_SYNC_CR3; 2799 # endif2800 } 2801 # endif2800 # endif 2801 } 2802 # endif 2802 2803 2803 2804 Assert(fGlobal || (cr4 & X86_CR4_PGE)); 2804 2805 MY_STAM_COUNTER_INC(fGlobal ? &pVM->pgm.s.CTXMID(Stat,SyncCR3Global) : &pVM->pgm.s.CTXMID(Stat,SyncCR3NotGlobal)); 2805 2806 2806 # if PGM_GST_TYPE == PGM_TYPE_32BIT || PGM_GST_TYPE == PGM_TYPE_PAE2807 # if PGM_GST_TYPE == PGM_TYPE_32BIT || PGM_GST_TYPE == PGM_TYPE_PAE 2807 2808 /* 2808 2809 * Get page directory addresses. … … 2863 2864 for (unsigned iPD = 0; iPD < ELEMENTS(pPDSrc->a); iPD++) 2864 2865 { 2865 if ( pPDEDst[iPD].n.u1Present 2866 if ( pPDEDst[iPD].n.u1Present 2866 2867 && !(pPDEDst[iPD].u & PGM_PDFLAGS_MAPPING)) 2867 2868 { … … 3023 3024 } 3024 3025 } 3025 # 3026 # if PGM_GST_TYPE == PGM_TYPE_PAE 3026 3027 else if (iPD + iPDPTE * X86_PG_PAE_ENTRIES != iPdNoMapping) 3027 # 3028 # else 3028 3029 else if (iPD != iPdNoMapping) 3029 # 3030 # endif 3030 3031 { 3031 3032 /*
Note:
See TracChangeset
for help on using the changeset viewer.