VirtualBox

Ignore:
Timestamp:
Apr 3, 2008 9:03:01 AM (17 years ago)
Author:
vboxsync
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/PGMAllPool.cpp

    r7677 r7715  
    109109        case PGMPOOL_IDX_PAE_PD:
    110110            return pVM->pgm.s.apGCPaePDs[0];
    111         case PGMPOOL_IDX_PDPTR:
    112             return pVM->pgm.s.pGCPaePDPTR;
     111        case PGMPOOL_IDX_PDPT:
     112            return pVM->pgm.s.pGCPaePDPT;
    113113        case PGMPOOL_IDX_PML4:
    114114            return pVM->pgm.s.pGCPaePML4;
     
    896896                case PGMPOOLKIND_PAE_PD_FOR_PAE_PD:
    897897                case PGMPOOLKIND_PAE_PT_FOR_PAE_PT:
    898                 case PGMPOOLKIND_64BIT_PDPTR_FOR_64BIT_PDPTR:
     898                case PGMPOOLKIND_64BIT_PDPT_FOR_64BIT_PDPT:
    899899                case PGMPOOLKIND_PAE_PT_FOR_PAE_2MB:
    900900                case PGMPOOLKIND_32BIT_PT_FOR_PHYS:
     
    910910        case PGMPOOLKIND_PAE_PD_FOR_PAE_PD:
    911911        case PGMPOOLKIND_PAE_PT_FOR_PAE_PT:
    912         case PGMPOOLKIND_64BIT_PDPTR_FOR_64BIT_PDPTR:
     912        case PGMPOOLKIND_64BIT_PDPT_FOR_64BIT_PDPT:
    913913        case PGMPOOLKIND_PAE_PT_FOR_PAE_2MB:
    914914            switch (enmKind2)
     
    931931        case PGMPOOLKIND_ROOT_32BIT_PD:
    932932        case PGMPOOLKIND_ROOT_PAE_PD:
    933         case PGMPOOLKIND_ROOT_PDPTR:
     933        case PGMPOOLKIND_ROOT_PDPT:
    934934        case PGMPOOLKIND_ROOT_PML4:
    935935            return false;
     
    11141114                case PGMPOOLKIND_PAE_PD_FOR_32BIT_PD:
    11151115                case PGMPOOLKIND_PAE_PD_FOR_PAE_PD:
    1116                 case PGMPOOLKIND_64BIT_PDPTR_FOR_64BIT_PDPTR:
     1116                case PGMPOOLKIND_64BIT_PDPT_FOR_64BIT_PDPT:
    11171117                case PGMPOOLKIND_ROOT_32BIT_PD:
    11181118                case PGMPOOLKIND_ROOT_PAE_PD:
    1119                 case PGMPOOLKIND_ROOT_PDPTR:
     1119                case PGMPOOLKIND_ROOT_PDPT:
    11201120                case PGMPOOLKIND_ROOT_PML4:
    11211121                {
     
    11841184        case PGMPOOLKIND_PAE_PD_FOR_32BIT_PD:
    11851185        case PGMPOOLKIND_PAE_PD_FOR_PAE_PD:
    1186         case PGMPOOLKIND_64BIT_PDPTR_FOR_64BIT_PDPTR:
    1187         case PGMPOOLKIND_ROOT_PDPTR:
     1186        case PGMPOOLKIND_64BIT_PDPT_FOR_64BIT_PDPT:
     1187        case PGMPOOLKIND_ROOT_PDPT:
    11881188        case PGMPOOLKIND_ROOT_PML4:
    11891189        default:
     
    12651265        case PGMPOOLKIND_PAE_PD_FOR_32BIT_PD:
    12661266        case PGMPOOLKIND_PAE_PD_FOR_PAE_PD:
    1267         case PGMPOOLKIND_64BIT_PDPTR_FOR_64BIT_PDPTR:
    1268         case PGMPOOLKIND_ROOT_PDPTR:
     1267        case PGMPOOLKIND_64BIT_PDPT_FOR_64BIT_PDPT:
     1268        case PGMPOOLKIND_ROOT_PDPT:
    12691269        case PGMPOOLKIND_ROOT_PML4:
    12701270        default:
     
    19371937        case PGMPOOLKIND_PAE_PD_FOR_32BIT_PD:
    19381938        case PGMPOOLKIND_PAE_PD_FOR_PAE_PD:
    1939         case PGMPOOLKIND_64BIT_PDPTR_FOR_64BIT_PDPTR:
     1939        case PGMPOOLKIND_64BIT_PDPT_FOR_64BIT_PDPT:
    19401940        case PGMPOOLKIND_ROOT_PAE_PD:
    1941         case PGMPOOLKIND_ROOT_PDPTR:
     1941        case PGMPOOLKIND_ROOT_PDPT:
    19421942        case PGMPOOLKIND_ROOT_PML4:
    19431943            return 8;
     
    19731973        case PGMPOOLKIND_PAE_PT_FOR_PAE_2MB:
    19741974        case PGMPOOLKIND_PAE_PD_FOR_PAE_PD:
    1975         case PGMPOOLKIND_64BIT_PDPTR_FOR_64BIT_PDPTR:
     1975        case PGMPOOLKIND_64BIT_PDPT_FOR_64BIT_PDPT:
    19761976        case PGMPOOLKIND_ROOT_PAE_PD:
    1977         case PGMPOOLKIND_ROOT_PDPTR:
     1977        case PGMPOOLKIND_ROOT_PDPT:
    19781978        case PGMPOOLKIND_ROOT_PML4:
    19791979            return 8;
     
    22782278            Assert(pUser->iUserTable < 2048 && pUser->iUser == PGMPOOL_IDX_PAE_PD);
    22792279            break;
    2280         case PGMPOOLKIND_ROOT_PDPTR:
     2280        case PGMPOOLKIND_ROOT_PDPT:
    22812281            Assert(!(u.pau64[pUser->iUserTable] & PGM_PLXFLAGS_PERMANENT));
    22822282            Assert(pUser->iUserTable < 4);
     
    22862286            Assert(pUser->iUserTable < X86_PG_PAE_ENTRIES);
    22872287            break;
    2288         case PGMPOOLKIND_64BIT_PDPTR_FOR_64BIT_PDPTR:
     2288        case PGMPOOLKIND_64BIT_PDPT_FOR_64BIT_PDPT:
    22892289        case PGMPOOLKIND_ROOT_PML4:
    22902290            Assert(!(u.pau64[pUser->iUserTable] & PGM_PLXFLAGS_PERMANENT));
     
    23092309        /* 64-bit entries */
    23102310        case PGMPOOLKIND_ROOT_PAE_PD:
    2311         case PGMPOOLKIND_ROOT_PDPTR:
     2311        case PGMPOOLKIND_ROOT_PDPT:
    23122312        case PGMPOOLKIND_PAE_PD_FOR_32BIT_PD:
    23132313        case PGMPOOLKIND_PAE_PD_FOR_PAE_PD:
    2314         case PGMPOOLKIND_64BIT_PDPTR_FOR_64BIT_PDPTR:
     2314        case PGMPOOLKIND_64BIT_PDPT_FOR_64BIT_PDPT:
    23152315        case PGMPOOLKIND_ROOT_PML4:
    23162316            u.pau64[pUser->iUserTable] = 0;
     
    28362836 * @param   pPool       The pool.
    28372837 * @param   pPage       The page.
    2838  * @param   pShwPdPtr   The shadow page directory pointer table (mapping of the page).
    2839  */
    2840 DECLINLINE(void) pgmPoolTrackDerefPDPTR64Bit(PPGMPOOL pPool, PPGMPOOLPAGE pPage, PX86PDPTR pShwPdPtr)
    2841 {
    2842     for (unsigned i = 0; i < ELEMENTS(pShwPdPtr->a); i++)
    2843     {
    2844         if (pShwPdPtr->a[i].n.u1Present)
    2845         {
    2846             PPGMPOOLPAGE pSubPage = (PPGMPOOLPAGE)RTAvloHCPhysGet(&pPool->HCPhysTree, pShwPdPtr->a[i].u & X86_PDPE_PG_MASK);
     2838 * @param   pShwPDPT   The shadow page directory pointer table (mapping of the page).
     2839 */
     2840DECLINLINE(void) pgmPoolTrackDerefPDPT64Bit(PPGMPOOL pPool, PPGMPOOLPAGE pPage, PX86PDPT pShwPDPT)
     2841{
     2842    for (unsigned i = 0; i < ELEMENTS(pShwPDPT->a); i++)
     2843    {
     2844        if (pShwPDPT->a[i].n.u1Present)
     2845        {
     2846            PPGMPOOLPAGE pSubPage = (PPGMPOOLPAGE)RTAvloHCPhysGet(&pPool->HCPhysTree, pShwPDPT->a[i].u & X86_PDPE_PG_MASK);
    28472847            if (pSubPage)
    28482848                pgmPoolTrackFreeUser(pPool, pSubPage, pPage->idx, i);
    28492849            else
    2850                 AssertFatalMsgFailed(("%RX64\n", pShwPdPtr->a[i].u & X86_PDPE_PG_MASK));
     2850                AssertFatalMsgFailed(("%RX64\n", pShwPDPT->a[i].u & X86_PDPE_PG_MASK));
    28512851            /** @todo 64-bit guests: have to ensure that we're not exhausting the dynamic mappings! */
    28522852        }
     
    29362936            break;
    29372937
    2938         case PGMPOOLKIND_64BIT_PDPTR_FOR_64BIT_PDPTR:
    2939             pgmPoolTrackDerefPDPTR64Bit(pPool, pPage, (PX86PDPTR)pvShw);
     2938        case PGMPOOLKIND_64BIT_PDPT_FOR_64BIT_PDPT:
     2939            pgmPoolTrackDerefPDPT64Bit(pPool, pPage, (PX86PDPT)pvShw);
    29402940            break;
    29412941
     
    30003000                break;
    30013001
    3002             case PGMPOOLKIND_ROOT_PDPTR:
     3002            case PGMPOOLKIND_ROOT_PDPT:
    30033003                /* Not root of shadowed pages currently, ignore it. */
    30043004                break;
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