VirtualBox

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


Ignore:
Timestamp:
Oct 2, 2008 1:31:24 PM (16 years ago)
Author:
vboxsync
Message:

SyncPageWorker updates for EPT.

File:
1 edited

Legend:

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

    r12936 r12937  
    13961396    if (PteSrc.n.u1Present)
    13971397    {
    1398 #if PGM_SHW_TYPE == PGM_TYPE_EPT
    1399         AssertFailed();
    1400 #endif
    14011398        /*
    14021399         * Find the ram range.
     
    14161413                /** @todo r=bird: Are we actually handling dirty and access bits for pages with access handlers correctly? No. */
    14171414                if (!PGM_PAGE_HAS_ACTIVE_ALL_HANDLERS(pPage))
     1415                {
     1416#if PGM_SHW_TYPE == PGM_TYPE_EPT
     1417                    PteDst.u           = (HCPhys & EPT_PTE_PG_MASK);
     1418                    PteDst.n.u1Present = 1;
     1419                    PteDst.n.u1Execute = 1;
     1420                    /* PteDst.n.u1Write = 0 */
     1421#else
    14181422                    PteDst.u = (PteSrc.u & ~(X86_PTE_PAE_PG_MASK | X86_PTE_AVL_MASK | X86_PTE_PAT | X86_PTE_PCD | X86_PTE_PWT | X86_PTE_RW))
    14191423                             | (HCPhys & X86_PTE_PAE_PG_MASK);
     1424#endif
     1425                }
    14201426                else
    14211427                {
     
    14271433            else
    14281434            {
     1435#if PGM_WITH_PAGING(PGM_GST_TYPE, PGM_SHW_TYPE)
    14291436                /*
    14301437                 * If the page or page directory entry is not marked accessed,
     
    14501457                }
    14511458                else
     1459#endif
    14521460                {
    14531461                    STAM_COUNTER_INC(&pVM->pgm.s.CTXMID(Stat,DirtyPageSkipped));
     1462#if PGM_SHW_TYPE == PGM_TYPE_EPT
     1463                    PteDst.u           = (HCPhys & EPT_PTE_PG_MASK);
     1464                    PteDst.n.u1Present = 1;
     1465                    PteDst.n.u1Write   = 1;
     1466                    PteDst.n.u1Execute = 1;
     1467#else
    14541468                    PteDst.u = (PteSrc.u & ~(X86_PTE_PAE_PG_MASK | X86_PTE_AVL_MASK | X86_PTE_PAT | X86_PTE_PCD | X86_PTE_PWT))
    14551469                             | (HCPhys & X86_PTE_PAE_PG_MASK);
     1470#endif
    14561471                }
    14571472            }
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