VirtualBox

Changeset 2090 in vbox for trunk


Ignore:
Timestamp:
Apr 14, 2007 3:24:02 PM (18 years ago)
Author:
vboxsync
Message:

Added PGMPOOLKIND_32BIT_PT_FOR_PHYS & PGMPOOLKIND_PAE_PT_FOR_PHYS

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp

    r1838 r2090  
    256256        switch (pPage->enmKind)
    257257        {
    258             case PGMPOOLKIND_32BIT_PT_FOR_32BIT_PT:
     258             case PGMPOOLKIND_32BIT_PT_FOR_32BIT_PT:
    259259            {
    260260                const unsigned iShw = off / sizeof(X86PTE);
     
    865865    {
    866866        /*
     867         * It's prefectly fine to reuse these..
     868         */
     869        case PGMPOOLKIND_32BIT_PT_FOR_PHYS:
     870        case PGMPOOLKIND_PAE_PT_FOR_PHYS:
     871            return true;
     872
     873        /*
    867874         * It's prefectly fine to reuse these, except for PAE stuff.
    868875         */
     
    903910
    904911        /*
    905          * These cannot be flushed, and it's common to reused the PDs as PTs.
     912         * These cannot be flushed, and it's common to reuse the PDs as PTs.
    906913         */
    907914        case PGMPOOLKIND_ROOT_32BIT_PD:
     
    11091116                case PGMPOOLKIND_PAE_PT_FOR_PAE_2MB:
    11101117                case PGMPOOLKIND_PAE_PT_FOR_32BIT_4MB:
     1118                case PGMPOOLKIND_32BIT_PT_FOR_PHYS:
     1119                case PGMPOOLKIND_PAE_PT_FOR_PHYS:
    11111120                    break;
    11121121                default:
     
    11451154        case PGMPOOLKIND_PAE_PT_FOR_32BIT_4MB:
    11461155        case PGMPOOLKIND_PAE_PT_FOR_PAE_2MB:
     1156        case PGMPOOLKIND_32BIT_PT_FOR_PHYS:
     1157        case PGMPOOLKIND_PAE_PT_FOR_PHYS:
    11471158            /* Nothing to monitor here. */
    11481159            return VINF_SUCCESS;
     
    12241235        case PGMPOOLKIND_PAE_PT_FOR_32BIT_4MB:
    12251236        case PGMPOOLKIND_PAE_PT_FOR_PAE_2MB:
     1237        case PGMPOOLKIND_32BIT_PT_FOR_PHYS:
     1238        case PGMPOOLKIND_PAE_PT_FOR_PHYS:
    12261239            /* Nothing to monitor here. */
    12271240            return VINF_SUCCESS;
     
    15441557                case PGMPOOLKIND_PAE_PT_FOR_PAE_PT:
    15451558                case PGMPOOLKIND_PAE_PT_FOR_PAE_2MB:
     1559                case PGMPOOLKIND_32BIT_PT_FOR_PHYS:
     1560                case PGMPOOLKIND_PAE_PT_FOR_PHYS:
    15461561                {
    15471562#ifdef PGMPOOL_WITH_USER_TRACKING
     
    18941909    {
    18951910        case PGMPOOLKIND_32BIT_PT_FOR_32BIT_PT:
     1911        case PGMPOOLKIND_32BIT_PT_FOR_PHYS:
    18961912        case PGMPOOLKIND_32BIT_PT_FOR_32BIT_4MB:
    18971913        case PGMPOOLKIND_ROOT_32BIT_PD:
    18981914            return 4;
    18991915
     1916        case PGMPOOLKIND_PAE_PT_FOR_PHYS:
    19001917        case PGMPOOLKIND_PAE_PT_FOR_32BIT_PT:
    19011918        case PGMPOOLKIND_PAE_PT_FOR_32BIT_4MB:
     
    19221939 *          The kind of page.
    19231940 *
    1924  * @returns The size of the entry in bytes. That is, 4 or 8.
     1941 * @returns The size of the entry in bytes. That is, 0, 4 or 8.
    19251942 * @returns If the kind is not for a table, an assertion is raised and 0 is
    19261943 *          returned.
     
    19471964            return 8;
    19481965
     1966        case PGMPOOLKIND_32BIT_PT_FOR_PHYS:
     1967        case PGMPOOLKIND_PAE_PT_FOR_PHYS:
     1968            /** @todo can we return 0? (nobody is calling this...) */
     1969            return 0;
     1970
    19491971        default:
    19501972            AssertFatalMsgFailed(("enmKind=%d\n", enmKind));
     
    19812003        case PGMPOOLKIND_32BIT_PT_FOR_32BIT_PT:
    19822004        case PGMPOOLKIND_32BIT_PT_FOR_32BIT_4MB:
     2005        case PGMPOOLKIND_32BIT_PT_FOR_PHYS:
    19832006        {
    19842007            const uint32_t  u32 = (*pHCPhys & X86_PTE_PAE_PG_MASK) | X86_PTE_P;
     
    20102033        case PGMPOOLKIND_PAE_PT_FOR_PAE_PT:
    20112034        case PGMPOOLKIND_PAE_PT_FOR_PAE_2MB:
     2035        case PGMPOOLKIND_PAE_PT_FOR_PHYS:
    20122036        {
    20132037            const uint64_t  u64 = (*pHCPhys & X86_PTE_PAE_PG_MASK) | X86_PTE_P;
     
    21532177                case PGMPOOLKIND_32BIT_PT_FOR_32BIT_PT:
    21542178                case PGMPOOLKIND_32BIT_PT_FOR_32BIT_4MB:
     2179                case PGMPOOLKIND_32BIT_PT_FOR_PHYS:
    21552180                {
    21562181                    unsigned    cPresent = pPage->cPresent;
     
    21742199                case PGMPOOLKIND_PAE_PT_FOR_PAE_PT:
    21752200                case PGMPOOLKIND_PAE_PT_FOR_PAE_2MB:
     2201                case PGMPOOLKIND_PAE_PT_FOR_PHYS:
    21762202                {
    21772203                    unsigned  cPresent = pPage->cPresent;
     
    27242750 * @param   pPage       The page.
    27252751 * @param   pShwPT      The shadow page table (mapping of the page).
    2726  * @param   pGstPT      The guest page table.
    27272752 */
    27282753DECLINLINE(void) pgmPoolTrackDerefPT32Bit4MB(PPGMPOOL pPool, PPGMPOOLPAGE pPage, PX86PT pShwPT)
     
    28502875        }
    28512876
     2877        case PGMPOOLKIND_32BIT_PT_FOR_PHYS: /* treat it like a 4 MB page */
    28522878        case PGMPOOLKIND_32BIT_PT_FOR_32BIT_4MB:
    28532879        {
     
    28582884        }
    28592885
     2886        case PGMPOOLKIND_PAE_PT_FOR_PHYS:   /* treat it like a 4 MB page */
    28602887        case PGMPOOLKIND_PAE_PT_FOR_32BIT_4MB:
    28612888        {
     
    28722899        case PGMPOOLKIND_32BIT_PT_FOR_32BIT_4MB:
    28732900        case PGMPOOLKIND_PAE_PT_FOR_32BIT_4MB:
     2901        case PGMPOOLKIND_32BIT_PT_FOR_PHYS:
     2902        case PGMPOOLKIND_PAE_PT_FOR_PHYS:
    28742903            break;
    28752904#endif /* !PGMPOOL_WITH_GCPHYS_TRACKING */
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