VirtualBox

Changeset 31818 in vbox for trunk/src/VBox/Main


Ignore:
Timestamp:
Aug 20, 2010 1:06:33 PM (14 years ago)
Author:
vboxsync
Message:

added HWVirtEx force property to API

Location:
trunk/src/VBox/Main
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/ConsoleImpl2.cpp

    r31706 r31818  
    636636         */
    637637        BOOL fHWVirtExEnabled;
    638         BOOL fHwVirtExtForced;
     638        BOOL fHwVirtExtForced = false;
    639639#ifdef VBOX_WITH_RAW_MODE
    640640        hrc = pMachine->GetHWVirtExProperty(HWVirtExPropertyType_Enabled, &fHWVirtExEnabled); H();
     
    652652# endif
    653653#else  /* !VBOX_WITH_RAW_MODE */
    654         fHWVirtExEnabled = fHwVirtExtForced = TRUE;
     654        fHWVirtExEnabled = fHwVirtExtForced = true;
    655655#endif /* !VBOX_WITH_RAW_MODE */
     656        /* only honor the property value if there was no other reason to enable it */
     657        if (!fHwVirtExtForced)
     658        {
     659            hrc = pMachine->GetHWVirtExProperty(HWVirtExPropertyType_Force, &fHwVirtExtForced); H();
     660        }
    656661        InsertConfigInteger(pRoot, "HwVirtExtForced",      fHwVirtExtForced);
    657662
  • trunk/src/VBox/Main/MachineImpl.cpp

    r31817 r31818  
    160160#endif
    161161    mHWVirtExVPIDEnabled = true;
     162    mHWVirtExForceEnabled = false;
    162163#if defined(RT_OS_DARWIN) || defined(RT_OS_WINDOWS)
    163164    mHWVirtExExclusive = false;
     
    19651966            *aVal = mHWData->mHWVirtExLargePagesEnabled;
    19661967            break;
     1968           
     1969        case HWVirtExPropertyType_Force:
     1970            *aVal = mHWData->mHWVirtExForceEnabled;
    19671971
    19681972        default:
     
    20142018            break;
    20152019
     2020        case HWVirtExPropertyType_Force:
     2021            setModified(IsModified_MachineData);
     2022            mHWData.backup();
     2023            mHWData->mHWVirtExForceEnabled = !!aVal;
     2024            break;
     2025           
    20162026        default:
    20172027            return E_INVALIDARG;
     
    70227032        mHWData->mHWVirtExLargePagesEnabled   = data.fLargePages;
    70237033        mHWData->mHWVirtExVPIDEnabled         = data.fVPID;
     7034        mHWData->mHWVirtExForceEnabled        = data.fHardwareVirtForce;
    70247035        mHWData->mPAEEnabled                  = data.fPAE;
    70257036        mHWData->mSyntheticCpu                = data.fSyntheticCpu;
     
    80568067        data.fLargePages            = !!mHWData->mHWVirtExLargePagesEnabled;
    80578068        data.fVPID                  = !!mHWData->mHWVirtExVPIDEnabled;
     8069        data.fHardwareVirtForce     = !!mHWData->mHWVirtExForceEnabled;
    80588070        data.fPAE                   = !!mHWData->mPAEEnabled;
    80598071        data.fSyntheticCpu          = !!mHWData->mSyntheticCpu;
  • trunk/src/VBox/Main/idl/VirtualBox.xidl

    r31744 r31818  
    906906      <desc>
    907907        Whether large page allocation is enabled; requires nested paging and a 64 bits host.
     908      </desc>
     909    </const>
     910    <const name="Force"               value="6">
     911      <desc>
     912        Whether the VM should fail to start if hardware virtualization (VT-x/AMD-V) cannot be used. If
     913        not set, there will be an automatic fallback to software virtualization.
    908914      </desc>
    909915    </const>
  • trunk/src/VBox/Main/include/MachineImpl.h

    r31742 r31818  
    257257        BOOL                 mHWVirtExLargePagesEnabled;
    258258        BOOL                 mHWVirtExVPIDEnabled;
     259        BOOL                 mHWVirtExForceEnabled;
    259260        BOOL                 mAccelerate2DVideoEnabled;
    260261        BOOL                 mPAEEnabled;
  • trunk/src/VBox/Main/xml/Settings.cpp

    r31742 r31818  
    15341534          fLargePages(false),
    15351535          fVPID(true),
     1536          fHardwareVirtForce(false),
    15361537          fSyntheticCpu(false),
    15371538          fPAE(false),
     
    15801581                  && (fLargePages               == h.fLargePages)
    15811582                  && (fVPID                     == h.fVPID)
     1583                  && (fHardwareVirtForce        == h.fHardwareVirtForce)
    15821584                  && (fSyntheticCpu             == h.fSyntheticCpu)
    15831585                  && (fPAE                      == h.fPAE)
     
    22652267            if ((pelmCPUChild = pelmHwChild->findChildElement("HardwareVirtExVPID")))
    22662268                pelmCPUChild->getAttributeValue("enabled", hw.fVPID);
     2269            if ((pelmCPUChild = pelmHwChild->findChildElement("HardwareVirtForce")))
     2270                pelmCPUChild->getAttributeValue("enabled", hw.fHardwareVirtForce);           
    22672271
    22682272            if (!(pelmCPUChild = pelmHwChild->findChildElement("PAE")))
     
    31773181    if (hw.fLargePages)
    31783182        pelmCPU->createChild("HardwareVirtExLargePages")->setAttribute("enabled", hw.fLargePages);
     3183   
     3184    if (m->sv >= SettingsVersion_v1_9)
     3185        pelmCPU->createChild("HardwareVirtForce")->setAttribute("enabled", hw.fHardwareVirtForce);   
    31793186
    31803187    if (m->sv >= SettingsVersion_v1_10)
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