VirtualBox

Changeset 7677 in vbox


Ignore:
Timestamp:
Apr 1, 2008 12:20:28 PM (17 years ago)
Author:
vboxsync
Message:

Cleanup

Location:
trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/x86.h

    r7676 r7677  
    837837#define X86_PG_PAE_ENTRIES                  512
    838838/** Number of entries in a PAE PDPTE. */
    839 #define X86_PG_PAE_PDPTE_ENTRIES            4
     839#define X86_PG_PAE_PDPE_ENTRIES             4
    840840
    841841/** Number of entries in an AMD64 PT/PD/PDPTR/L4/L5. */
    842842#define X86_PG_AMD64_ENTRIES                X86_PG_PAE_ENTRIES
    843843/** Number of entries in an AMD64 PDPTE. */
    844 #define X86_PG_AMD64_PDPTE_ENTRIES          512
     844#define X86_PG_AMD64_PDPE_ENTRIES           512
    845845
    846846/** The size of a 4KB page. */
     
    14851485{
    14861486    /** PDE Array. */
    1487     X86PDPE         a[X86_PG_AMD64_PDPTE_ENTRIES];
     1487    X86PDPE         a[X86_PG_AMD64_PDPE_ENTRIES];
    14881488} X86PDPTR;
    14891489/** Pointer to a page directory pointer table. */
  • trunk/src/VBox/VMM/PGM.cpp

    r7676 r7677  
    31653165
    31663166    int rc = VINF_SUCCESS;
    3167     const unsigned c = fLongMode ? ELEMENTS(pPDPTR->a) : X86_PG_PAE_PDPTE_ENTRIES;
     3167    const unsigned c = fLongMode ? ELEMENTS(pPDPTR->a) : X86_PG_PAE_PDPE_ENTRIES;
    31683168    for (unsigned i = 0; i < c; i++)
    31693169    {
  • trunk/src/VBox/VMM/PGMGst.h

    r7657 r7677  
    3636#undef GST_PT_SHIFT
    3737#undef GST_PT_MASK
    38 
    39 #if PGM_GST_TYPE == PGM_TYPE_32BIT
     38#undef GST_TOTAL_PD_ENTRIES
     39#undef GST_CR3_PAGE_MASK
     40#undef GST_PDPE_ENTRIES
     41
     42#if PGM_GST_TYPE == PGM_TYPE_32BIT \
     43 || PGM_GST_TYPE == PGM_TYPE_REAL \
     44 || PGM_GST_TYPE == PGM_TYPE_PROT
    4045# define GSTPT                      X86PT
    4146# define PGSTPT                     PX86PT
     
    5257# define GST_PD_SHIFT               X86_PD_SHIFT
    5358# define GST_PD_MASK                X86_PD_MASK
     59# define GST_TOTAL_PD_ENTRIES       X86_PG_ENTRIES
    5460# define GST_PTE_PG_MASK            X86_PTE_PG_MASK
    5561# define GST_PT_SHIFT               X86_PT_SHIFT
    5662# define GST_PT_MASK                X86_PT_MASK
    57 #else
     63# define GST_CR3_PAGE_MASK          X86_CR3_PAGE_MASK
     64#elif   PGM_GST_TYPE == PGM_TYPE_PAE \
     65     || PGM_GST_TYPE == PGM_TYPE_AMD64
    5866# define GSTPT                      X86PTPAE
    5967# define PGSTPT                     PX86PTPAE
     
    7078# define GST_PD_SHIFT               X86_PD_PAE_SHIFT
    7179# define GST_PD_MASK                X86_PD_PAE_MASK
     80# if PGM_GST_TYPE == PGM_TYPE_PAE
     81#  define GST_TOTAL_PD_ENTRIES      (X86_PG_PAE_ENTRIES * X86_PG_PAE_PDPE_ENTRIES)
     82#  define GST_PDPE_ENTRIES          X86_PG_PAE_PDPE_ENTRIES
     83# else
     84#  define GST_TOTAL_PD_ENTRIES      (X86_PG_AMD64_ENTRIES * X86_PG_AMD64_PDPE_ENTRIES)
     85#  define GST_PDPE_ENTRIES          X86_PG_AMD64_PDPE_ENTRIES
     86# endif
    7287# define GST_PTE_PG_MASK            X86_PTE_PAE_PG_MASK
    7388# define GST_PT_SHIFT               X86_PT_PAE_SHIFT
    7489# define GST_PT_MASK                X86_PT_PAE_MASK
     90# define GST_CR3_PAGE_MASK          X86_CR3_PAE_PAGE_MASK
    7591#endif
    7692
  • trunk/src/VBox/VMM/VMMAll/PGMAllBth.h

    r7676 r7677  
    19281928            if (fPageTable)
    19291929                PdeDst.u = pShwPage->Core.Key
    1930                          | (PdeSrc.u & ~(X86_PDE_PAE_PG_MASK | X86_PDE_AVL_MASK | X86_PDE_PCD | X86_PDE_PWT | X86_PDE_PS | X86_PDE4M_G | X86_PDE4M_D));
     1930                         | (PdeSrc.u & ~(GST_PDE_PG_MASK | X86_PDE_AVL_MASK | X86_PDE_PCD | X86_PDE_PWT | X86_PDE_PS | X86_PDE4M_G | X86_PDE4M_D));
    19311931            else
    19321932            {
    19331933                PdeDst.u = pShwPage->Core.Key
    1934                          | (PdeSrc.u & ~(X86_PDE_PAE_PG_MASK | X86_PDE_AVL_MASK | X86_PDE_PCD | X86_PDE_PWT | X86_PDE_PS | X86_PDE4M_G | X86_PDE4M_D));
     1934                         | (PdeSrc.u & ~(GST_PDE_PG_MASK | X86_PDE_AVL_MASK | X86_PDE_PCD | X86_PDE_PWT | X86_PDE_PS | X86_PDE4M_G | X86_PDE4M_D));
    19351935# ifdef PGM_SYNC_DIRTY_BIT /* (see explanation and assumptions further down.) */
    19361936                if (!PdeSrc.b.u1Dirty && PdeSrc.b.u1Write)
     
    19741974                 * Start by syncing the page directory entry so CSAM's TLB trick works.
    19751975                 */
    1976                 PdeDst.u = (PdeDst.u & (X86_PDE_PAE_PG_MASK | X86_PDE_AVL_MASK))
    1977                          | (PdeSrc.u & ~(X86_PDE_PAE_PG_MASK | X86_PDE_AVL_MASK | X86_PDE_PCD | X86_PDE_PWT | X86_PDE_PS | X86_PDE4M_G | X86_PDE4M_D));
     1976                PdeDst.u = (PdeDst.u & (SHW_PDE_PG_MASK | X86_PDE_AVL_MASK))
     1977                         | (PdeSrc.u & ~(GST_PDE_PG_MASK | X86_PDE_AVL_MASK | X86_PDE_PCD | X86_PDE_PWT | X86_PDE_PS | X86_PDE4M_G | X86_PDE4M_D));
    19781978                *pPdeDst = PdeDst;
    19791979
     
    20602060             * Start by syncing the page directory entry.
    20612061             */
    2062             PdeDst.u = (PdeDst.u & (X86_PDE_PAE_PG_MASK | (X86_PDE_AVL_MASK & ~PGM_PDFLAGS_TRACK_DIRTY)))
    2063                      | (PdeSrc.u & ~(X86_PDE_PAE_PG_MASK | X86_PDE_AVL_MASK | X86_PDE_PCD | X86_PDE_PWT | X86_PDE_PS | X86_PDE4M_G | X86_PDE4M_D));
     2062            PdeDst.u = (PdeDst.u & (SHW_PDE_PG_MASK | (X86_PDE_AVL_MASK & ~PGM_PDFLAGS_TRACK_DIRTY)))
     2063                     | (PdeSrc.u & ~(GST_PDE_PG_MASK | X86_PDE_AVL_MASK | X86_PDE_PCD | X86_PDE_PWT | X86_PDE_PS | X86_PDE4M_G | X86_PDE4M_D));
    20642064
    20652065# ifdef PGM_SYNC_DIRTY_BIT
     
    20882088            /* Get address and flags from the source PDE. */
    20892089            SHWPTE PteDstBase;
    2090             PteDstBase.u = PdeSrc.u & ~(X86_PTE_PAE_PG_MASK | X86_PTE_AVL_MASK | X86_PTE_PAT | X86_PTE_PCD | X86_PTE_PWT);
     2090            PteDstBase.u = PdeSrc.u & ~(GST_PDE_PG_MASK | X86_PTE_AVL_MASK | X86_PTE_PAT | X86_PTE_PCD | X86_PTE_PWT);
    20912091
    20922092            /* Loop thru the entries in the shadow PT. */
     
    23492349#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_SHW_TYPE != PGM_TYPE_AMD64
    23502350
    2351 #  ifndef IN_RING0
     2351# ifndef IN_RING0
    23522352    if (!(fPage & X86_PTE_US))
    23532353    {
     
    23592359        CSAMMarkPage(pVM, (RTGCPTR)GCPtrPage, true);
    23602360    }
    2361 #  endif
     2361# endif
    23622362    /*
    23632363     * Get guest PD and index.
     
    25732573        iPdNoMapping  = ~0U;
    25742574    }
    2575 #  if PGM_GST_TYPE == PGM_TYPE_PAE
    2576     for (unsigned iPDPTRE = 0; iPDPTRE < X86_PG_PAE_PDPTE_ENTRIES; iPDPTRE++)
    2577 #  elif PGM_GST_TYPE == PGM_TYPE_AMD64
    2578     for (unsigned iPDPTRE = 0; iPDPTRE < X86_PG_AMD64_PDPTE_ENTRIES; iPDPTRE++)
    2579 #  endif
     2575#  if PGM_GST_TYPE == PGM_TYPE_PAE || PGM_GST_TYPE == PGM_TYPE_AMD64
     2576    for (unsigned iPDPTRE = 0; iPDPTRE < GST_PDPE_ENTRIES; iPDPTRE++)
    25802577    {
    2581 #  if PGM_GST_TYPE == PGM_TYPE_PAE || PGM_GST_TYPE == PGM_TYPE_AMD64
    25822578        unsigned        iPDSrc;
    25832579#   if PGM_SHW_TYPE == PGM_TYPE_PAE
     
    25962592            continue;
    25972593        }
     2594#  else
     2595   {
    25982596#  endif /* if PGM_GST_TYPE == PGM_TYPE_PAE || PGM_GST_TYPE == PGM_TYPE_AMD64 */
    25992597        for (unsigned iPD = 0; iPD < ELEMENTS(pPDSrc->a); iPD++)
     
    32443242                 * Big Page.
    32453243                 */
    3246                 uint64_t fIgnoreFlags = X86_PDE_AVL_MASK | X86_PDE_PAE_PG_MASK | X86_PDE4M_G | X86_PDE4M_D | X86_PDE4M_PS | X86_PDE4M_PWT | X86_PDE4M_PCD;
     3244                uint64_t fIgnoreFlags = X86_PDE_AVL_MASK | GST_PDE_PG_MASK | X86_PDE4M_G | X86_PDE4M_D | X86_PDE4M_PS | X86_PDE4M_PWT | X86_PDE4M_PCD;
    32473245                if (!PdeSrc.b.u1Dirty && PdeSrc.b.u1Write)
    32483246                {
  • trunk/src/VBox/VMM/VMMAll/PGMAllGst.h

    r7676 r7677  
    3939#undef GST_TOTAL_PD_ENTRIES
    4040#undef GST_CR3_PAGE_MASK
     41#undef GST_PDPE_ENTRIES
    4142
    4243#if PGM_GST_TYPE == PGM_TYPE_32BIT \
     
    7980# define GST_PD_MASK                X86_PD_PAE_MASK
    8081# if PGM_GST_TYPE == PGM_TYPE_PAE
    81 #  define GST_TOTAL_PD_ENTRIES       (X86_PG_PAE_ENTRIES * X86_PG_PAE_PDPTE_ENTRIES)
     82#  define GST_TOTAL_PD_ENTRIES      (X86_PG_PAE_ENTRIES * X86_PG_PAE_PDPE_ENTRIES)
     83#  define GST_PDPE_ENTRIES          X86_PG_PAE_PDPE_ENTRIES
    8284# else
    83 #  define GST_TOTAL_PD_ENTRIES       (X86_PG_AMD64_ENTRIES * X86_PG_AMD64_PDPTE_ENTRIES)
     85#  define GST_TOTAL_PD_ENTRIES      (X86_PG_AMD64_ENTRIES * X86_PG_AMD64_PDPE_ENTRIES)
     86#  define GST_PDPE_ENTRIES          X86_PG_AMD64_PDPE_ENTRIES
    8487# endif
    8588# define GST_PTE_PG_MASK            X86_PTE_PAE_PG_MASK
  • trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp

    r7676 r7677  
    29892989
    29902990            case PGMPOOLKIND_ROOT_PAE_PD:
    2991                 for (unsigned iPage = 0; iPage < X86_PG_PAE_ENTRIES * X86_PG_PAE_PDPTE_ENTRIES; iPage++)
     2991                for (unsigned iPage = 0; iPage < X86_PG_PAE_ENTRIES * X86_PG_PAE_PDPE_ENTRIES; iPage++)
    29922992                    if ((u.pau64[iPage] & (PGM_PDFLAGS_MAPPING | X86_PDE_P)) == X86_PDE_P)
    29932993                        u.pau64[iPage] = 0;
  • trunk/src/VBox/VMM/VMMAll/PGMAllShw.h

    r7676 r7677  
    7373# define SHW_PDPTR_SHIFT        X86_PDPTR_SHIFT
    7474# define SHW_PDPTR_MASK         X86_PDPTR_MASK
     75# define SHW_TOTAL_PD_ENTRIES   (X86_PG_AMD64_ENTRIES*X86_PG_AMD64_PDPE_ENTRIES)
    7576# define SHW_POOL_ROOT_IDX      PGMPOOL_IDX_PML4
    7677#else /* 32 bits PAE mode */
    7778# define SHW_PDPTR_SHIFT        X86_PDPTR_SHIFT
    7879# define SHW_PDPTR_MASK         X86_PDPTR_MASK_32
    79 # define SHW_TOTAL_PD_ENTRIES   (X86_PG_PAE_ENTRIES*X86_PG_PAE_PDPTE_ENTRIES)
     80# define SHW_TOTAL_PD_ENTRIES   (X86_PG_PAE_ENTRIES*X86_PG_PAE_PDPE_ENTRIES)
    8081# define SHW_POOL_ROOT_IDX      PGMPOOL_IDX_PAE_PD
    8182#endif
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