VirtualBox

Changeset 8108 in vbox


Ignore:
Timestamp:
Apr 17, 2008 3:17:37 PM (17 years ago)
Author:
vboxsync
Message:

Updated check.
Added PGMGetHostMode.

Location:
trunk
Files:
4 edited

Legend:

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

    r7905 r8108  
    330330PGMDECL(PGMMODE) PGMGetGuestMode(PVM pVM);
    331331PGMDECL(PGMMODE) PGMGetShadowMode(PVM pVM);
     332PGMDECL(PGMMODE) PGMGetHostMode(PVM pVM);
    332333PGMDECL(const char *) PGMGetModeName(PGMMODE enmMode);
    333334PGMDECL(int)    PGMHandlerPhysicalRegisterEx(PVM pVM, PGMPHYSHANDLERTYPE enmType, RTGCPHYS GCPhys, RTGCPHYS GCPhysLast,
  • trunk/src/VBox/VMM/PGM.cpp

    r8089 r8108  
    26842684                case SUPPAGINGMODE_32_BIT:
    26852685                case SUPPAGINGMODE_32_BIT_GLOBAL:
     2686                    AssertFailed(); /* this switcher is not well tested!! */
    26862687                    enmShadowMode = PGMMODE_PAE;
    26872688                    enmSwitcher = VMMSWITCHER_32_TO_PAE;
    2688                     break;
     2689                    return PGMMODE_INVALID;
    26892690
    26902691                case SUPPAGINGMODE_PAE:
  • trunk/src/VBox/VMM/VMMAll/CPUMAllRegs.cpp

    r8106 r8108  
    10351035                return;
    10361036            }
    1037             if (PGMGetShadowMode(pVM) <= PGMMODE_32_BIT)
     1037            /* Remove this restriction once the 32->PAE switcher works properly. */
     1038            if (PGMGetHostMode(pVM) <= PGMMODE_32_BIT)
    10381039            {
    10391040                LogRel(("WARNING: Can't turn on PAE when the host is in 32 bits paging mode!!\n"));
  • trunk/src/VBox/VMM/VMMAll/PGMAll.cpp

    r7907 r8108  
    11171117}
    11181118
     1119/**
     1120 * Gets the current host paging mode.
     1121 *
     1122 * @returns The current paging mode.
     1123 * @param   pVM             The VM handle.
     1124 */
     1125PGMDECL(PGMMODE) PGMGetHostMode(PVM pVM)
     1126{
     1127    switch (pVM->pgm.s.enmHostMode)
     1128    {
     1129        case SUPPAGINGMODE_32_BIT:
     1130        case SUPPAGINGMODE_32_BIT_GLOBAL:
     1131            return PGMMODE_32_BIT;
     1132
     1133        case SUPPAGINGMODE_PAE:
     1134        case SUPPAGINGMODE_PAE_GLOBAL:
     1135            return PGMMODE_PAE;
     1136
     1137        case SUPPAGINGMODE_PAE_NX:
     1138        case SUPPAGINGMODE_PAE_GLOBAL_NX:
     1139            return PGMMODE_PAE_NX;
     1140
     1141        case SUPPAGINGMODE_AMD64:
     1142        case SUPPAGINGMODE_AMD64_GLOBAL:
     1143            return PGMMODE_AMD64;
     1144
     1145        case SUPPAGINGMODE_AMD64_NX:
     1146        case SUPPAGINGMODE_AMD64_GLOBAL_NX:
     1147            return PGMMODE_AMD64_NX;
     1148
     1149        default: AssertMsgFailed(("enmHostMode=%d\n", pVM->pgm.s.enmHostMode)); break;
     1150    }
     1151
     1152    return PGMMODE_INVALID;
     1153}
     1154
    11191155
    11201156/**
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