VirtualBox

Ignore:
Timestamp:
Apr 3, 2008 9:03:01 AM (17 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
29247
Message:

Renamed PDPTR to PDPT.
Added preliminary code for executing code with X86_CR0_WP cleared (disabled).

File:
1 edited

Legend:

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

    r7677 r7715  
    388388#elif PGM_GST_TYPE == PGM_TYPE_PAE
    389389            const unsigned off = GCPhysCR3 & X86_CR3_PAE_PAGE_MASK;
    390             pVM->pgm.s.pGstPaePDPTRHC = (R3R0PTRTYPE(PX86PDPTR))((RTHCUINTPTR)HCPtrGuestCR3 | off);
    391             pVM->pgm.s.pGstPaePDPTRGC = (GCPTRTYPE(PX86PDPTR))((RTGCUINTPTR)pVM->pgm.s.GCPtrCR3Mapping | off);
     390            pVM->pgm.s.pGstPaePDPTHC = (R3R0PTRTYPE(PX86PDPT))((RTHCUINTPTR)HCPtrGuestCR3 | off);
     391            pVM->pgm.s.pGstPaePDPTGC = (GCPTRTYPE(PX86PDPT))((RTGCUINTPTR)pVM->pgm.s.GCPtrCR3Mapping | off);
    392392
    393393            /*
     
    397397            for (unsigned i = 0; i < 4; i++, GCPtr += PAGE_SIZE)
    398398            {
    399                 if (pVM->pgm.s.CTXSUFF(pGstPaePDPTR)->a[i].n.u1Present)
     399                if (pVM->pgm.s.CTXSUFF(pGstPaePDPT)->a[i].n.u1Present)
    400400                {
    401401                    RTHCPTR     HCPtr;
    402402                    RTHCPHYS    HCPhys;
    403                     RTGCPHYS    GCPhys = pVM->pgm.s.CTXSUFF(pGstPaePDPTR)->a[i].u & X86_PDPE_PG_MASK;
     403                    RTGCPHYS    GCPhys = pVM->pgm.s.CTXSUFF(pGstPaePDPT)->a[i].u & X86_PDPE_PG_MASK;
    404404                    int rc2 = pgmRamGCPhys2HCPtrAndHCPhysWithFlags(&pVM->pgm.s, GCPhys, &HCPtr, &HCPhys);
    405405                    if (VBOX_SUCCESS(rc2))
     
    452452
    453453#elif PGM_GST_TYPE == PGM_TYPE_PAE
    454     pVM->pgm.s.pGstPaePDPTRHC = 0;
    455     pVM->pgm.s.pGstPaePDPTRGC = 0;
     454    pVM->pgm.s.pGstPaePDPTHC = 0;
     455    pVM->pgm.s.pGstPaePDPTGC = 0;
    456456    /** PAE todo: pVM->pgm.s.apGstPaePDsHC? -> unmap?? */
    457457    AssertFailed();
     
    529529    for (unsigned i = 0; i < 4; i++)
    530530    {
    531         if (CTXSUFF(pVM->pgm.s.pGstPaePDPTR)->a[i].n.u1Present)
    532         {
    533             RTGCPHYS GCPhys = CTXSUFF(pVM->pgm.s.pGstPaePDPTR)->a[i].u & X86_PDPE_PG_MASK;
     531        if (CTXSUFF(pVM->pgm.s.pGstPaePDPT)->a[i].n.u1Present)
     532        {
     533            RTGCPHYS GCPhys = CTXSUFF(pVM->pgm.s.pGstPaePDPT)->a[i].u & X86_PDPE_PG_MASK;
    534534# ifndef PGMPOOL_WITH_MIXED_PT_CR3
    535535            if (pVM->pgm.s.aGCPhysGstPaePDsMonitored[i] != GCPhys)
     
    970970        for (unsigned i = 0; i < 4; i++)
    971971        {
    972             if (    CTXSUFF(pVM->pgm.s.pGstPaePDPTR)->a[i].n.u1Present
    973                 &&  (   CTXSUFF(pVM->pgm.s.pGstPaePDPTR)->a[i].u & X86_PDPE_PG_MASK)
     972            if (    CTXSUFF(pVM->pgm.s.pGstPaePDPT)->a[i].n.u1Present
     973                &&  (   CTXSUFF(pVM->pgm.s.pGstPaePDPT)->a[i].u & X86_PDPE_PG_MASK)
    974974                     != pVM->pgm.s.aGCPhysGstPaePDsMonitored[i])
    975975            {
     
    986986                pVM->pgm.s.fSyncFlags |= PGM_SYNC_MONITOR_CR3;
    987987                Log(("pgmXXGstPaeWriteHandlerCR3: detected updated PDPE; [%d] = %#llx, Old GCPhys=%VGp\n",
    988                      i, CTXSUFF(pVM->pgm.s.pGstPaePDPTR)->a[i].u, pVM->pgm.s.aGCPhysGstPaePDsMonitored[i]));
     988                     i, CTXSUFF(pVM->pgm.s.pGstPaePDPT)->a[i].u, pVM->pgm.s.aGCPhysGstPaePDsMonitored[i]));
    989989            }
    990990        }
     
    10351035        RTGCUINTPTR i;
    10361036        for (i = 0; i < 4; i++)
    1037             if (CTXSUFF(pVM->pgm.s.pGstPaePDPTR)->a[i].u == (GCPhysFault & X86_PTE_PAE_PG_MASK))
     1037            if (CTXSUFF(pVM->pgm.s.pGstPaePDPT)->a[i].u == (GCPhysFault & X86_PTE_PAE_PG_MASK))
    10381038            {
    1039                 PX86PDPAE           pPDSrc = pgmGstGetPaePD(&pVM->pgm.s, i << X86_PDPTR_SHIFT);
     1039                PX86PDPAE           pPDSrc = pgmGstGetPaePD(&pVM->pgm.s, i << X86_PDPT_SHIFT);
    10401040                const RTGCUINTPTR offPD  = GCPhysFault & PAGE_OFFSET_MASK;
    10411041                const unsigned      iPD1   = offPD / sizeof(X86PDEPAE);
     
    10481048#ifdef DEBUG
    10491049                Log(("pgmXXGstPaeWriteHandlerPD: emulated change to i=%d iPD1=%#05x (%VGv)\n",
    1050                      i, iPD1, (i << X86_PDPTR_SHIFT) | (iPD1 << X86_PD_PAE_SHIFT)));
     1050                     i, iPD1, (i << X86_PDPT_SHIFT) | (iPD1 << X86_PD_PAE_SHIFT)));
    10511051                if (iPD1 != iPD2)
    10521052                    Log(("pgmXXGstPaeWriteHandlerPD: emulated change to i=%d iPD2=%#05x (%VGv)\n",
    1053                          i, iPD2, (i << X86_PDPTR_SHIFT) | (iPD2 << X86_PD_PAE_SHIFT)));
     1053                         i, iPD2, (i << X86_PDPT_SHIFT) | (iPD2 << X86_PD_PAE_SHIFT)));
    10541054#endif
    10551055
     
    10571057                {
    10581058                    if (    (   pPDSrc->a[iPD1].n.u1Present
    1059                              && pgmGetMapping(pVM, (RTGCPTR)((i << X86_PDPTR_SHIFT) | (iPD1 << X86_PD_PAE_SHIFT))) )
     1059                             && pgmGetMapping(pVM, (RTGCPTR)((i << X86_PDPT_SHIFT) | (iPD1 << X86_PD_PAE_SHIFT))) )
    10601060                        ||  (   iPD1 != iPD2
    10611061                             && pPDSrc->a[iPD2].n.u1Present
    1062                              && pgmGetMapping(pVM, (RTGCPTR)((i << X86_PDPTR_SHIFT) | (iPD2 << X86_PD_PAE_SHIFT))) )
     1062                             && pgmGetMapping(pVM, (RTGCPTR)((i << X86_PDPT_SHIFT) | (iPD2 << X86_PD_PAE_SHIFT))) )
    10631063                       )
    10641064                    {
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette