VirtualBox

Changeset 72332 in vbox for trunk/src


Ignore:
Timestamp:
May 24, 2018 8:51:23 PM (7 years ago)
Author:
vboxsync
Message:

Main: Added HWVirtExPropertyType::UseNativeApi for use with IMachine::getHWVirtExProperty and IMachine::setHWVirtExProperty. bugref:9044

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/idl/VirtualBox.xidl

    r72328 r72332  
    10561056  <enum
    10571057    name="HWVirtExPropertyType"
    1058     uuid="411ad0ea-aeeb-44cb-9d03-1624d0d025ac"
     1058    uuid="bc05551e-e288-467e-1ea3-233de08e4480"
    10591059    >
    10601060    <desc>
     
    10961096        Whether the VM should fail to start if hardware virtualization (VT-x/AMD-V) cannot be used. If
    10971097        not set, there will be an automatic fallback to software virtualization.
     1098      </desc>
     1099    </const>
     1100    <const name="UseNativeApi"          value="7">
     1101      <desc>
     1102        Use the native hypervisor API instead of the VirtualBox one (HM) for VT-X/AMD-V.  This is
     1103        ignored if <link to="HWVirtExPropertyType::Enabled"/> isn't set.
    10981104      </desc>
    10991105    </const>
  • trunk/src/VBox/Main/include/MachineImpl.h

    r71108 r72332  
    282282        BOOL                mHWVirtExUXEnabled;
    283283        BOOL                mHWVirtExForceEnabled;
     284        BOOL                mHWVirtExUseNativeApi;
    284285        BOOL                mAccelerate2DVideoEnabled;
    285286        BOOL                mPAEEnabled;
  • trunk/src/VBox/Main/src-server/MachineImpl.cpp

    r72323 r72332  
    187187    mHWVirtExUXEnabled = true;
    188188    mHWVirtExForceEnabled = false;
     189    mHWVirtExUseNativeApi = false;
    189190#if HC_ARCH_BITS == 64 || defined(RT_OS_WINDOWS) || defined(RT_OS_DARWIN)
    190191    mPAEEnabled = true;
     
    25522553            break;
    25532554
     2555        case HWVirtExPropertyType_UseNativeApi:
     2556            *aValue = mHWData->mHWVirtExUseNativeApi;
     2557            break;
     2558
    25542559        default:
    25552560            return E_INVALIDARG;
     
    25652570    if (FAILED(rc)) return rc;
    25662571
    2567     switch(aProperty)
     2572    switch (aProperty)
    25682573    {
    25692574        case HWVirtExPropertyType_Enabled:
     
    26012606            mHWData.backup();
    26022607            mHWData->mHWVirtExForceEnabled = !!aValue;
     2608            break;
     2609
     2610        case HWVirtExPropertyType_UseNativeApi:
     2611            i_setModified(IsModified_MachineData);
     2612            mHWData.backup();
     2613            mHWData->mHWVirtExUseNativeApi = !!aValue;
    26032614            break;
    26042615
     
    90429053        mHWData->mHWVirtExUXEnabled           = data.fUnrestrictedExecution;
    90439054        mHWData->mHWVirtExForceEnabled        = data.fHardwareVirtForce;
     9055        mHWData->mHWVirtExUseNativeApi        = data.fUseNativeApi;
    90449056        mHWData->mPAEEnabled                  = data.fPAE;
    90459057        mHWData->mLongMode                    = data.enmLongMode;
     
    1037010382        data.fUnrestrictedExecution = !!mHWData->mHWVirtExUXEnabled;
    1037110383        data.fHardwareVirtForce     = !!mHWData->mHWVirtExForceEnabled;
     10384        data.fUseNativeApi          = !!mHWData->mHWVirtExUseNativeApi;
    1037210385        data.fPAE                   = !!mHWData->mPAEEnabled;
    1037310386        data.enmLongMode            = mHWData->mLongMode;
  • trunk/src/VBox/Main/xml/Settings.cpp

    r71179 r72332  
    27742774    fUnrestrictedExecution(true),
    27752775    fHardwareVirtForce(false),
     2776    fUseNativeApi(false),
    27762777    fTripleFaultReset(false),
    27772778    fPAE(false),
     
    29312932            && fUnrestrictedExecution    == h.fUnrestrictedExecution
    29322933            && fHardwareVirtForce        == h.fHardwareVirtForce
     2934            && fUseNativeApi             == h.fUseNativeApi
    29332935            && fPAE                      == h.fPAE
    29342936            && enmLongMode               == h.enmLongMode
     
    39083910            if ((pelmCPUChild = pelmHwChild->findChildElement("HardwareVirtForce")))
    39093911                pelmCPUChild->getAttributeValue("enabled", hw.fHardwareVirtForce);
     3912            if ((pelmCPUChild = pelmHwChild->findChildElement("HardwareVirtExUseNativeApi")))
     3913                pelmCPUChild->getAttributeValue("enabled", hw.fUseNativeApi);
    39103914
    39113915            if (!(pelmCPUChild = pelmHwChild->findChildElement("PAE")))
     
    53335337            pelmCPU->createChild("HardwareVirtForce")->setAttribute("enabled", hw.fHardwareVirtForce);
    53345338    }
     5339
     5340    if (m->sv >= SettingsVersion_v1_9 && hw.fUseNativeApi)
     5341        pelmCPU->createChild("HardwareVirtExUseNativeApi")->setAttribute("enabled", hw.fUseNativeApi);
    53355342
    53365343    if (m->sv >= SettingsVersion_v1_10)
     
    69646971    if (m->sv < SettingsVersion_v1_17)
    69656972    {
    6966         // VirtualBox 6.0 adds nested hardware virtualization.
    6967         if (hardwareMachine.fNestedHWVirt)
     6973        // VirtualBox 6.0 adds nested hardware virtualization, using native API (NEM).
     6974        if (   hardwareMachine.fNestedHWVirt
     6975            || hardwareMachine.fUseNativeApi)
    69686976        {
    69696977            m->sv = SettingsVersion_v1_17;
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