VirtualBox

Changeset 14094 in vbox


Ignore:
Timestamp:
Nov 11, 2008 4:47:38 PM (16 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
39164
Message:

#1865: shadow pae, the second bit.

File:
1 edited

Legend:

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

    r14093 r14094  
    150150#   if PGM_GST_TYPE == PGM_TYPE_PAE
    151151    /* Did we mark the PDPT as not present in SyncCR3? */
    152     unsigned        iPdpte  = (pvFault >> SHW_PDPT_SHIFT) & SHW_PDPT_MASK;
     152    unsigned        iPdpt  = (pvFault >> SHW_PDPT_SHIFT) & SHW_PDPT_MASK;
    153153    PX86PDPT        pPdptDst = pgmShwGetPaePDPTPtr(&pVM->pgm.s);
    154     if (!pPdptDst->a[iPdpte].n.u1Present)
    155         pPdptDst->a[iPdpte].n.u1Present = 1;
    156 
    157 #   endif
     154    if (!pPdptDst->a[iPdpt].n.u1Present)
     155        pPdptDst->a[iPdpt].n.u1Present = 1;
     156#   endif /* GST PAE */
    158157
    159158#  elif PGM_SHW_TYPE == PGM_TYPE_AMD64
     
    915914
    916915    const unsigned  iPml4     = (GCPtrPage >> X86_PML4_SHIFT) & X86_PML4_MASK;
    917     const unsigned  iPdpte    = (GCPtrPage >> X86_PDPT_SHIFT) & X86_PDPT_MASK_AMD64;
     916    const unsigned  iPdpt     = (GCPtrPage >> X86_PDPT_SHIFT) & X86_PDPT_MASK_AMD64;
    918917    const unsigned  iPDDst    = (GCPtrPage >> SHW_PD_SHIFT) & SHW_PD_MASK;
    919918    PX86PDPAE       pPDDst;
     
    932931
    933932    PX86PDEPAE  pPdeDst  = &pPDDst->a[iPDDst];
    934     PX86PDPE    pPdpeDst = &pPdptDst->a[iPdpte];
     933    PX86PDPE    pPdpeDst = &pPdptDst->a[iPdpt];
    935934
    936935    if (!pPdpeDst->n.u1Present)
     
    10121011
    10131012    /* Fetch the pgm pool shadow descriptor. */
    1014     PPGMPOOLPAGE pShwPde = pgmPoolGetPageByHCPhys(pVM, pPdptDst->a[iPdpte].u & SHW_PDPE_PG_MASK);
     1013    PPGMPOOLPAGE pShwPde = pgmPoolGetPageByHCPhys(pVM, pPdptDst->a[iPdpt].u & SHW_PDPE_PG_MASK);
    10151014    Assert(pShwPde);
    10161015
     
    10631062        LogFlow(("InvalidatePage: Out-of-sync PDPE (P/GCPhys) at %RGv GCPhys=%RGp vs %RGp PdpeSrc=%RX64 PdpeDst=%RX64\n",
    10641063                    GCPtrPage, pShwPde->GCPhys, GCPhysPd, (uint64_t)PdpeSrc.u, (uint64_t)pPdpeDst->u));
    1065         pgmPoolFreeByPage(pPool, pShwPde, pShwPdpt->idx, iPdpte);
     1064        pgmPoolFreeByPage(pPool, pShwPde, pShwPdpt->idx, iPdpt);
    10661065        pPdpeDst->u = 0;
    10671066        STAM_COUNTER_INC(&pVM->pgm.s.CTX_MID_Z(Stat,InvalidatePagePDNPs));
     
    10771076        LogFlow(("InvalidatePage: Out-of-sync PDPE at %RGv PdpeSrc=%RX64 PdpeDst=%RX64\n",
    10781077                 GCPtrPage, (uint64_t)PdpeSrc.u, (uint64_t)pPdpeDst->u));
    1079         pgmPoolFreeByPage(pPool, pShwPde, pShwPdpt->idx, iPdpte);
     1078        pgmPoolFreeByPage(pPool, pShwPde, pShwPdpt->idx, iPdpt);
    10801079        pPdpeDst->u = 0;
    10811080        STAM_COUNTER_INC(&pVM->pgm.s.CTX_MID_Z(Stat,InvalidatePagePDOutOfSync));
     
    10891088        LogFlow(("InvalidatePage: Out-of-sync PDPE (A) at %RGv PdpeSrc=%RX64 PdpeDst=%RX64\n",
    10901089                 GCPtrPage, (uint64_t)PdpeSrc.u, (uint64_t)pPdpeDst->u));
    1091         pgmPoolFreeByPage(pPool, pShwPde, pShwPdpt->idx, iPdpte);
     1090        pgmPoolFreeByPage(pPool, pShwPde, pShwPdpt->idx, iPdpt);
    10921091        pPdpeDst->u = 0;
    10931092        STAM_COUNTER_INC(&pVM->pgm.s.CTX_MID_Z(Stat,InvalidatePagePDNAs));
     
    16011600
    16021601# elif PGM_SHW_TYPE == PGM_TYPE_AMD64
    1603     const unsigned  iPDDst   = ((GCPtrPage >> SHW_PD_SHIFT) & SHW_PD_MASK);
    1604     const unsigned  iPdpte   = (GCPtrPage >> X86_PDPT_SHIFT) & X86_PDPT_MASK_AMD64;
     1602    const unsigned  iPDDst   = (GCPtrPage >> SHW_PD_SHIFT) & SHW_PD_MASK;
     1603    const unsigned  iPdpt    = (GCPtrPage >> X86_PDPT_SHIFT) & X86_PDPT_MASK_AMD64;
    16051604    PX86PDPAE       pPDDst;
    16061605    X86PDEPAE       PdeDst;
     
    16131612# endif
    16141613    Assert(PdeDst.n.u1Present);
    1615     PPGMPOOLPAGE pShwPage = pgmPoolGetPageByHCPhys(pVM, PdeDst.u & SHW_PDE_PG_MASK);
     1614    PPGMPOOLPAGE    pShwPage = pgmPoolGetPageByHCPhys(pVM, PdeDst.u & SHW_PDE_PG_MASK);
    16161615
    16171616# if PGM_GST_TYPE == PGM_TYPE_AMD64
    16181617    /* Fetch the pgm pool shadow descriptor. */
    1619     PPGMPOOLPAGE pShwPde = pgmPoolGetPageByHCPhys(pVM, pPdptDst->a[iPdpte].u & X86_PDPE_PG_MASK);
     1618    PPGMPOOLPAGE    pShwPde  = pgmPoolGetPageByHCPhys(pVM, pPdptDst->a[iPdpt].u & X86_PDPE_PG_MASK);
    16201619    Assert(pShwPde);
    16211620# endif
     
    18681867# elif PGM_SHW_TYPE == PGM_TYPE_AMD64
    18691868    const unsigned  iPDDst   = ((GCPtrPage >> SHW_PD_SHIFT) & SHW_PD_MASK);
    1870     const unsigned  iPdpte   = (GCPtrPage >> X86_PDPT_SHIFT) & X86_PDPT_MASK_AMD64; NOREF(iPdpte);
     1869    const unsigned  iPdpt    = (GCPtrPage >> X86_PDPT_SHIFT) & X86_PDPT_MASK_AMD64; NOREF(iPdpt);
    18711870    PX86PDPAE       pPDDst;
    18721871    X86PDEPAE       PdeDst;
     
    23282327
    23292328# elif PGM_SHW_TYPE == PGM_TYPE_AMD64
    2330     const unsigned  iPdpte   = (GCPtrPage >> X86_PDPT_SHIFT) & X86_PDPT_MASK_AMD64;
     2329    const unsigned  iPdpt    = (GCPtrPage >> X86_PDPT_SHIFT) & X86_PDPT_MASK_AMD64;
    23312330    const unsigned  iPDDst   = (GCPtrPage >> SHW_PD_SHIFT) & SHW_PD_MASK;
    23322331    PX86PDPAE       pPDDst;
     
    23412340# if PGM_GST_TYPE == PGM_TYPE_AMD64
    23422341    /* Fetch the pgm pool shadow descriptor. */
    2343     PPGMPOOLPAGE pShwPde = pgmPoolGetPageByHCPhys(pVM, pPdptDst->a[iPdpte].u & X86_PDPE_PG_MASK);
     2342    PPGMPOOLPAGE pShwPde = pgmPoolGetPageByHCPhys(pVM, pPdptDst->a[iPdpt].u & X86_PDPE_PG_MASK);
    23442343    Assert(pShwPde);
    23452344# endif
     
    27002699    && (PGM_SHW_TYPE != PGM_TYPE_EPT || PGM_GST_TYPE == PGM_TYPE_PROT)
    27012700
    2702     int     rc     = VINF_SUCCESS;
    27032701
    27042702    /*
    27052703     * Validate input a little bit.
    27062704     */
     2705    int             rc = VINF_SUCCESS;
    27072706# if PGM_SHW_TYPE == PGM_TYPE_32BIT
    27082707    const unsigned  iPDDst = GCPtrPage >> SHW_PD_SHIFT;
     
    27152714
    27162715# elif PGM_SHW_TYPE == PGM_TYPE_AMD64
    2717     const unsigned  iPdpte = (GCPtrPage >> X86_PDPT_SHIFT) & X86_PDPT_MASK_AMD64;
     2716    const unsigned  iPdpt  = (GCPtrPage >> X86_PDPT_SHIFT) & X86_PDPT_MASK_AMD64;
    27182717    const unsigned  iPDDst = (GCPtrPage >> SHW_PD_SHIFT) & SHW_PD_MASK;
    27192718    PX86PDPAE       pPDDst;
     
    27252724
    27262725    /* Fetch the pgm pool shadow descriptor. */
    2727     PPGMPOOLPAGE    pShwPde = pgmPoolGetPageByHCPhys(pVM, pPdptDst->a[iPdpte].u & X86_PDPE_PG_MASK);
     2726    PPGMPOOLPAGE    pShwPde = pgmPoolGetPageByHCPhys(pVM, pPdptDst->a[iPdpt].u & X86_PDPE_PG_MASK);
    27282727    Assert(pShwPde);
    27292728
    27302729# elif PGM_SHW_TYPE == PGM_TYPE_EPT
    2731     const unsigned  iPdpte = (GCPtrPage >> EPT_PDPT_SHIFT) & EPT_PDPT_MASK;
     2730    const unsigned  iPdpt  = (GCPtrPage >> EPT_PDPT_SHIFT) & EPT_PDPT_MASK;
    27322731    const unsigned  iPDDst = ((GCPtrPage >> SHW_PD_SHIFT) & SHW_PD_MASK);
    27332732    PEPTPD          pPDDst;
     
    27442743
    27452744    /* Fetch the pgm pool shadow descriptor. */
    2746     PPGMPOOLPAGE pShwPde = pgmPoolGetPageByHCPhys(pVM, pPdptDst->a[iPdpte].u & EPT_PDPTE_PG_MASK);
     2745    PPGMPOOLPAGE pShwPde = pgmPoolGetPageByHCPhys(pVM, pPdptDst->a[iPdpt].u & EPT_PDPTE_PG_MASK);
    27472746    Assert(pShwPde);
    27482747# endif
     
    27692768    GCPhys = GCPtrPage & X86_PAGE_4K_BASE_MASK;
    27702769# if PGM_SHW_TYPE == PGM_TYPE_AMD64 || PGM_SHW_TYPE == PGM_TYPE_EPT
    2771     rc = pgmPoolAlloc(pVM, GCPhys & ~(RT_BIT_64(SHW_PD_SHIFT) - 1), BTH_PGMPOOLKIND_PT_FOR_PT, pShwPde->idx,    iPDDst, &pShwPage);
     2770    rc = pgmPoolAlloc(pVM, GCPhys & ~(RT_BIT_64(SHW_PD_SHIFT) - 1), BTH_PGMPOOLKIND_PT_FOR_PT, pShwPde->idx, iPDDst, &pShwPage);
    27722771# else
    27732772    rc = pgmPoolAlloc(pVM, GCPhys & ~(RT_BIT_64(SHW_PD_SHIFT) - 1), BTH_PGMPOOLKIND_PT_FOR_PT, SHW_POOL_ROOT_IDX, iPDDst, &pShwPage);
     
    31523151    /* No need to check all paging levels; we zero out the shadow parts when the guest modifies its tables. */
    31533152    return VINF_SUCCESS;
    3154 #else
     3153#else /* PGM_SHW_TYPE != PGM_TYPE_AMD64 */
    31553154
    31563155    Assert(fGlobal || (cr4 & X86_CR4_PGE));
     
    32353234        pPml4eDst->n.u1NoExecute = pPml4eSrc->n.u1NoExecute;
    32363235
    3237 #  else
    3238     {
    3239 #  endif
     3236#  else  /* PGM_GST_TYPE != PGM_TYPE_AMD64 */
     3237    {
     3238#  endif /* PGM_GST_TYPE != PGM_TYPE_AMD64 */
    32403239#  if PGM_GST_TYPE == PGM_TYPE_PAE || PGM_GST_TYPE == PGM_TYPE_AMD64
    3241         for (uint64_t iPdpte = 0; iPdpte < GST_PDPE_ENTRIES; iPdpte++)
     3240        for (uint64_t iPdpt = 0; iPdpt < GST_PDPE_ENTRIES; iPdpt++)
    32423241        {
    32433242            unsigned        iPDSrc;
    32443243#   if PGM_GST_TYPE == PGM_TYPE_PAE
    32453244            X86PDPE         PdpeSrc;
    3246             PGSTPD          pPDSrc    = pgmGstGetPaePDPtr(&pVM->pgm.s, iPdpte << X86_PDPT_SHIFT, &iPDSrc, &PdpeSrc);
     3245            PGSTPD          pPDSrc    = pgmGstGetPaePDPtr(&pVM->pgm.s, iPdpt << X86_PDPT_SHIFT, &iPDSrc, &PdpeSrc);
    32473246            PX86PDPAE       pPDPAE    = pVM->pgm.s.CTXMID(ap,PaePDs)[0];
    3248             PX86PDEPAE      pPDEDst   = &pPDPAE->a[iPdpte * X86_PG_PAE_ENTRIES];
     3247            PX86PDEPAE      pPDEDst   = &pPDPAE->a[iPdpt * X86_PG_PAE_ENTRIES];
    32493248            PX86PDPT        pPdptDst  = pgmShwGetPaePDPTPtr(&pVM->pgm.s);
    32503249
     
    32523251            {
    32533252                /* PDPE not present */
    3254                 if (pPdptDst->a[iPdpte].n.u1Present)
     3253                if (pPdptDst->a[iPdpt].n.u1Present)
    32553254                {
    3256                     LogFlow(("SyncCR3: guest PDPE %d not present; clear shw pdpe\n", iPdpte));
    3257                         /* for each page directory entry */
    3258                         for (unsigned iPD = 0; iPD < RT_ELEMENTS(pPDSrc->a); iPD++)
    3259                         {
    3260                             if (   pPDEDst[iPD].n.u1Present
    3261                                 && !(pPDEDst[iPD].u & PGM_PDFLAGS_MAPPING))
    3262                             {
    3263                             pgmPoolFreeByPage(pPool, pgmPoolGetPage(pPool, pPDEDst[iPD].u & SHW_PDE_PG_MASK), SHW_POOL_ROOT_IDX, iPdpte * X86_PG_PAE_ENTRIES + iPD);
     3255                    LogFlow(("SyncCR3: guest PDPE %lld not present; clear shw pdpe\n", iPdpt));
     3256                    /* for each page directory entry */
     3257                    for (unsigned iPD = 0; iPD < RT_ELEMENTS(pPDSrc->a); iPD++)
     3258                    {
     3259                        if (   pPDEDst[iPD].n.u1Present
     3260                            && !(pPDEDst[iPD].u & PGM_PDFLAGS_MAPPING))
     3261                        {
     3262                            pgmPoolFreeByPage(pPool, pgmPoolGetPage(pPool, pPDEDst[iPD].u & SHW_PDE_PG_MASK), SHW_POOL_ROOT_IDX, iPdpt * X86_PG_PAE_ENTRIES + iPD);
    32643263                            pPDEDst[iPD].u = 0;
    3265                             }
    3266                         }
     3264                        }
     3265                    }
    32673266                }
    3268                 if (!(pPdptDst->a[iPdpte].u & PGM_PLXFLAGS_MAPPING))
    3269                         pPdptDst->a[iPdpte].n.u1Present = 0;
     3267                if (!(pPdptDst->a[iPdpt].u & PGM_PLXFLAGS_MAPPING))
     3268                        pPdptDst->a[iPdpt].n.u1Present = 0;
    32703269                continue;
    32713270            }
     
    32793278            PX86PDPAE       pPDDst;
    32803279            PX86PDEPAE      pPDEDst;
    3281             RTGCPTR         GCPtr   = (iPml4 << X86_PML4_SHIFT) || (iPdpte << X86_PDPT_SHIFT);
     3280            RTGCPTR         GCPtr   = (iPml4 << X86_PML4_SHIFT) || (iPdpt << X86_PDPT_SHIFT);
    32823281            PGSTPD          pPDSrc  = pgmGstGetLongModePDPtr(&pVM->pgm.s, GCPtr, &pPml4eSrc, &PdpeSrc, &iPDSrc);
    32833282
     
    32953294            Assert(iPDSrc == 0);
    32963295
    3297             pPdpeDst = &pPdptDst->a[iPdpte];
     3296            pPdpeDst = &pPdptDst->a[iPdpt];
    32983297
    32993298            /* Fetch the pgm pool shadow descriptor if the shadow pdpte is present. */
     
    33103309                /* Free it. */
    33113310                LogFlow(("SyncCR3: Out-of-sync PDPE (GCPhys) GCPtr=%RX64 %RGp vs %RGp PdpeSrc=%RX64 PdpeDst=%RX64\n",
    3312                         ((uint64_t)iPml4 << X86_PML4_SHIFT) + ((uint64_t)iPdpte << X86_PDPT_SHIFT), pShwPde->GCPhys, GCPhysPdeSrc, (uint64_t)PdpeSrc.u, (uint64_t)pPdpeDst->u));
     3311                        ((uint64_t)iPml4 << X86_PML4_SHIFT) + ((uint64_t)iPdpt << X86_PDPT_SHIFT), pShwPde->GCPhys, GCPhysPdeSrc, (uint64_t)PdpeSrc.u, (uint64_t)pPdpeDst->u));
    33133312
    33143313                /* Mark it as not present if there's no hypervisor mapping present. (bit flipped at the top of Trap0eHandler) */
    33153314                Assert(!(pPdpeDst->u & PGM_PLXFLAGS_MAPPING));
    3316                 pgmPoolFreeByPage(pPool, pShwPde, pShwPde->idx, iPdpte);
     3315                pgmPoolFreeByPage(pPool, pShwPde, pShwPde->idx, iPdpt);
    33173316                pPdpeDst->u = 0;
    33183317                continue;   /* next guest PDPTE */
     
    33433342
    33443343                    /*
    3345                     * Check for conflicts with GC mappings.
    3346                     */
     3344                     * Check for conflicts with GC mappings.
     3345                     */
    33473346#   if PGM_GST_TYPE == PGM_TYPE_PAE
    3348                     if (iPD + iPdpte * X86_PG_PAE_ENTRIES == iPdNoMapping)
     3347                    if (iPD + iPdpt * X86_PG_PAE_ENTRIES == iPdNoMapping)
    33493348#   else
    33503349                    if (iPD == iPdNoMapping)
     
    33653364                        int rc = pgmR3SyncPTResolveConflict(pVM, pMapping, pPDSrc, iPD << GST_PD_SHIFT);
    33663365#    elif PGM_GST_TYPE == PGM_TYPE_PAE
    3367                         int rc = pgmR3SyncPTResolveConflictPAE(pVM, pMapping, (iPdpte << GST_PDPT_SHIFT) + (iPD << GST_PD_SHIFT));
     3366                        int rc = pgmR3SyncPTResolveConflictPAE(pVM, pMapping, (iPdpt << GST_PDPT_SHIFT) + (iPD << GST_PD_SHIFT));
    33683367#    endif
    33693368                        if (RT_FAILURE(rc))
     
    33713370
    33723371                        /*
    3373                         * Update iPdNoMapping and pMapping.
    3374                         */
     3372                         * Update iPdNoMapping and pMapping.
     3373                         */
    33753374                        pMapping = pVM->pgm.s.pMappingsR3;
    33763375                        while (pMapping && pMapping->GCPtr < (iPD << GST_PD_SHIFT))
     
    33963395                    for (unsigned i = 0, iPdShw = iPD * 2; i < 2; i++, iPdShw++) /* pray that the compiler unrolls this */
    33973396#  elif PGM_GST_TYPE == PGM_TYPE_PAE
    3398                         const unsigned iPdShw = iPD + iPdpte * X86_PG_PAE_ENTRIES; NOREF(iPdShw);
     3397                        const unsigned iPdShw = iPD + iPdpt * X86_PG_PAE_ENTRIES; NOREF(iPdShw);
    33993398#  else
    34003399                    const unsigned iPdShw = iPD; NOREF(iPdShw);
     
    34863485                }
    34873486#  if PGM_GST_TYPE == PGM_TYPE_PAE
    3488                 else if (iPD + iPdpte * X86_PG_PAE_ENTRIES != iPdNoMapping)
     3487                else if (iPD + iPdpt * X86_PG_PAE_ENTRIES != iPdNoMapping)
    34893488#  else
    34903489                else if (iPD != iPdNoMapping)
     
    34973496                    for (unsigned i = 0, iPdShw = iPD * 2; i < 2; i++, iPdShw++) /* pray that the compiler unrolls this */
    34983497#  elif PGM_GST_TYPE == PGM_TYPE_PAE
    3499                         const unsigned iPdShw = iPD + iPdpte * X86_PG_PAE_ENTRIES; NOREF(iPdShw);
     3498                        const unsigned iPdShw = iPD + iPdpt * X86_PG_PAE_ENTRIES; NOREF(iPdShw);
    35003499#  else
    35013500                    const unsigned iPdShw = iPD; NOREF(iPdShw);
     
    35473546                                int rc = pgmR3SyncPTResolveConflict(pVM, pMapping, pPDSrc, iPD << GST_PD_SHIFT);
    35483547#    elif PGM_GST_TYPE == PGM_TYPE_PAE
    3549                                 int rc = pgmR3SyncPTResolveConflictPAE(pVM, pMapping, (iPdpte << GST_PDPT_SHIFT) + (iPD << GST_PD_SHIFT));
     3548                                int rc = pgmR3SyncPTResolveConflictPAE(pVM, pMapping, (iPdpt << GST_PDPT_SHIFT) + (iPD << GST_PD_SHIFT));
    35503549#    endif
    35513550                                if (RT_FAILURE(rc))
     
    37733772         * Check the PDPTEs too.
    37743773         */
    3775         unsigned iPdpte = (GCPtr >> SHW_PDPT_SHIFT) & SHW_PDPT_MASK;
    3776 
    3777         for (;iPdpte <= SHW_PDPT_MASK; iPdpte++)
     3774        unsigned iPdpt = (GCPtr >> SHW_PDPT_SHIFT) & SHW_PDPT_MASK;
     3775
     3776        for (;iPdpt <= SHW_PDPT_MASK; iPdpt++)
    37783777        {
    37793778            unsigned        iPDSrc;
     
    38043803            Assert(iPDSrc == 0);
    38053804
    3806             pPdpeDst = &pPdptDst->a[iPdpte];
     3805            pPdpeDst = &pPdptDst->a[iPdpt];
    38073806
    38083807            if (!pPdpeDst->n.u1Present)
     
    38263825            {
    38273826#  if PGM_GST_TYPE == PGM_TYPE_AMD64
    3828                 AssertMsgFailed(("Physical address doesn't match! iPml4 %d iPdpte %d pPdpeDst.u=%#RX64 pPdpeSrc.u=%RX64 Phys %RX64 vs %RX64\n", iPml4, iPdpte, pPdpeDst->u, PdpeSrc.u, pShwPde->GCPhys, GCPhysPdeSrc));
     3827                AssertMsgFailed(("Physical address doesn't match! iPml4 %d iPdpt %d pPdpeDst.u=%#RX64 pPdpeSrc.u=%RX64 Phys %RX64 vs %RX64\n", iPml4, iPdpt, pPdpeDst->u, PdpeSrc.u, pShwPde->GCPhys, GCPhysPdeSrc));
    38293828#  else
    3830                 AssertMsgFailed(("Physical address doesn't match! iPdpte %d pPdpeDst.u=%#RX64 pPdpeSrc.u=%RX64 Phys %RX64 vs %RX64\n", iPdpte, pPdpeDst->u, PdpeSrc.u, pShwPde->GCPhys, GCPhysPdeSrc));
     3829                AssertMsgFailed(("Physical address doesn't match! iPdpt %d pPdpeDst.u=%#RX64 pPdpeSrc.u=%RX64 Phys %RX64 vs %RX64\n", iPdpt, pPdpeDst->u, PdpeSrc.u, pShwPde->GCPhys, GCPhysPdeSrc));
    38313830#  endif
    38323831                GCPtr += 512 * _2M;
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