VirtualBox

Changeset 41420 in vbox for trunk/src/VBox/VMM/VMMAll


Ignore:
Timestamp:
May 23, 2012 3:14:05 PM (13 years ago)
Author:
vboxsync
Message:

PGM: More A20 fixes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/PGMAllBth.h

    r41391 r41420  
    16321632        RTGCPHYS GCPhysPage = GST_GET_PTE_GCPHYS(PteSrc);
    16331633# endif
     1634        PGM_A20_ASSERT_MASKED(pVCpu, GCPhysPage);
     1635
    16341636        /*
    16351637         * Find the ram range.
     
    22432245            if (!SHW_PTE_IS_P(pPTDst->a[iPTDst]))
    22442246            {
    2245                 RTGCPTR GCPtrCurPage = (GCPtrPage & ~(RTGCPTR)(SHW_PT_MASK << SHW_PT_SHIFT)) | (iPTDst << PAGE_SHIFT);
     2247                RTGCPTR GCPtrCurPage = PGM_A20_APPLY(pVCpu, (GCPtrPage & ~(RTGCPTR)(SHW_PT_MASK << SHW_PT_SHIFT))
     2248                                                          | (iPTDst << PAGE_SHIFT));
    22462249
    22472250                PGM_BTH_NAME(SyncPageWorker)(pVCpu, &pPTDst->a[iPTDst], GCPtrCurPage, pShwPage, iPTDst);
     
    22622265    {
    22632266        const unsigned  iPTDst       = (GCPtrPage >> SHW_PT_SHIFT) & SHW_PT_MASK;
    2264         RTGCPTR         GCPtrCurPage = (GCPtrPage & ~(RTGCPTR)(SHW_PT_MASK << SHW_PT_SHIFT)) | (iPTDst << PAGE_SHIFT);
     2267        RTGCPTR         GCPtrCurPage = PGM_A20_APPLY(pVCpu, (GCPtrPage & ~(RTGCPTR)(SHW_PT_MASK << SHW_PT_SHIFT))
     2268                                                          | (iPTDst << PAGE_SHIFT));
    22652269
    22662270        PGM_BTH_NAME(SyncPageWorker)(pVCpu, &pPTDst->a[iPTDst], GCPtrCurPage, pShwPage, iPTDst);
     
    31993203
    32003204        /* Mask away the page offset. */
    3201         GCPtrPage &= ~((RTGCPTR)0xfff);
     3205        GCPtrPage &= ~(RTGCPTR)PAGE_OFFSET_MASK;
    32023206
    32033207        for (unsigned iPTDst = 0; iPTDst < RT_ELEMENTS(pPTDst->a); iPTDst++)
     
    32083212            PGM_BTH_NAME(SyncPageWorker)(pVCpu, &pPTDst->a[iPTDst], GCPtrCurPage, pShwPage, iPTDst);
    32093213            Log2(("SyncPage: 4K+ %RGv PteSrc:{P=1 RW=1 U=1} PteDst=%08llx%s\n",
    3210                     GCPtrCurPage,
    3211                     SHW_PTE_LOG64(pPTDst->a[iPTDst]),
    3212                     SHW_PTE_IS_TRACK_DIRTY(pPTDst->a[iPTDst]) ? " Track-Dirty" : ""));
     3214                  GCPtrCurPage,
     3215                  SHW_PTE_LOG64(pPTDst->a[iPTDst]),
     3216                  SHW_PTE_IS_TRACK_DIRTY(pPTDst->a[iPTDst]) ? " Track-Dirty" : ""));
    32133217
    32143218            if (RT_UNLIKELY(VM_FF_ISPENDING(pVM, VM_FF_PGM_NO_MEMORY)))
     
    36763680 * @param   pVM         The virtual machine.
    36773681 * @param   pVCpu       The VMCPU handle.
    3678  * @param   cr3         Guest context CR3 register
    3679  * @param   cr4         Guest context CR4 register
     3682 * @param   cr3         Guest context CR3 register.
     3683 * @param   cr4         Guest context CR4 register.
    36803684 * @param   GCPtr       Where to start. Defaults to 0.
    36813685 * @param   cb          How much to check. Defaults to everything.
     
    44514455
    44524456    LogFlow(("MapCR3: %RGp\n", GCPhysCR3));
     4457    PGM_A20_ASSERT_MASKED(pVCpu, GCPhysCR3);
    44534458
    44544459    /*
     
    45724577
    45734578    Assert(!pVM->pgm.s.fNestedPaging);
     4579    PGM_A20_ASSERT_MASKED(pVCpu, GCPhysCR3);
    45744580
    45754581    /*
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