VirtualBox

Changeset 44948 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Mar 7, 2013 10:36:42 AM (12 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
84157
Message:

Main/SystemProperties+Machine: new config setting for default VM frontend.
Frontend/VirtualBox+VBoxManage: changes to use the default VM frontend when starting a VM, other minor cleanups
Main/xml/*.xsd: attempt to bring the XML schema close to reality
doc/manual: document the new possibilities, and fix a few long standing inaccuracies

Location:
trunk/src/VBox
Files:
7 deleted
13 edited
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageHelp.cpp

    r44191 r44948  
    55
    66/*
    7  * Copyright (C) 2006-2012 Oracle Corporation
     7 * Copyright (C) 2006-2013 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    368368                     "                                             acpishutdown]\n"
    369369#endif
     370                     "                            [--defaultfrontend default|<name]\n"
    370371                     "\n");
    371372    }
     
    624625                     "                            autostartdbpath null|<folder> |\n"
    625626                     "                            loghistorycount <value>\n"
     627                     "                            defaultfrontend default|<name>\n"
    626628                     "\n", SEP);
    627629
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageInfo.cpp

    r44028 r44948  
    55
    66/*
    7  * Copyright (C) 2006-2012 Oracle Corporation
     7 * Copyright (C) 2006-2013 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    713713    SHOW_BOOLEAN_PROP(    machine,  AutostartEnabled,           "autostart-enabled",        "Autostart Enabled");
    714714    SHOW_ULONG_PROP(      machine,  AutostartDelay,             "autostart-delay",          "Autostart Delay", "");
     715    SHOW_STRING_PROP(     machine,  DefaultFrontend,            "defaultfrontend",          "Default Frontend");
    715716
    716717/** @todo Convert the remainder of the function to SHOW_XXX macros and add error
     
    15661567            RTPrintf("draganddrop=\"%s\"\n", psz);
    15671568        else
    1568             RTPrintf("Drag'n'drop Mode:  %s\n", psz);
     1569            RTPrintf("Drag'n'drop Mode: %s\n", psz);
     1570    }
     1571
     1572    {
     1573        SessionState_T sessState;
     1574        rc = machine->COMGETTER(SessionState)(&sessState);
     1575        if (SUCCEEDED(rc) && sessState != SessionState_Unlocked)
     1576        {
     1577            Bstr sessType;
     1578            rc = machine->COMGETTER(SessionType)(sessType.asOutParam());
     1579            if (SUCCEEDED(rc) && !sessType.isEmpty())
     1580            {
     1581                if (details == VMINFO_MACHINEREADABLE)
     1582                    RTPrintf("SessionType=\"%ls\"\n", sessType.raw());
     1583                else
     1584                    RTPrintf("Session type:    %ls\n", sessType.raw());
     1585            }
     1586        }
    15691587    }
    15701588
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageMisc.cpp

    r43041 r44948  
    55
    66/*
    7  * Copyright (C) 2006-2012 Oracle Corporation
     7 * Copyright (C) 2006-2013 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    486486    HRESULT rc = S_OK;
    487487    std::list<const char *> VMs;
    488     Bstr sessionType = "gui";
     488    Bstr sessionType;
    489489
    490490    static const RTGETOPTDEF s_aStartVMOptions[] =
     
    871871            CHECK_ERROR(systemProperties, COMSETTER(AutostartDatabasePath)(Bstr(a->argv[1]).raw()));
    872872    }
     873    else if (!strcmp(a->argv[0], "defaultfrontend"))
     874    {
     875        Bstr bstrDefaultFrontend(a->argv[1]);
     876        if (!strcmp(a->argv[1], "default"))
     877            bstrDefaultFrontend.setNull();
     878        CHECK_ERROR(systemProperties, COMSETTER(DefaultFrontend)(bstrDefaultFrontend.raw()));
     879    }
    873880    else
    874881        return errorSyntax(USAGE_SETPROPERTY, "Invalid parameter '%s'", a->argv[0]);
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp

    r44528 r44948  
    197197    MODIFYVM_VCP_HEIGHT,
    198198#endif
    199     MODIFYVM_CHIPSET
     199    MODIFYVM_CHIPSET,
     200    MODIFYVM_DEFAULTFRONTEND
    200201};
    201202
     
    352353    { "--usbcardreader",            MODIFYVM_USBCARDREADER,             RTGETOPT_REQ_BOOL_ONOFF },
    353354#endif
     355    { "--defaultfrontend",          MODIFYVM_DEFAULTFRONTEND,           RTGETOPT_REQ_STRING },
    354356};
    355357
     
    15461548
    15471549                CHECK_ERROR(nic, COMGETTER(NATEngine)(engine.asOutParam()));
    1548                 if (RTStrCmp(ValueUnion.psz,"default") == 0)
     1550                if (RTStrCmp(ValueUnion.psz, "default") == 0)
    15491551                {
    15501552                    aliasMode = 0;
     
    25142516#endif /* VBOX_WITH_USB_CARDREADER */
    25152517
     2518            case MODIFYVM_DEFAULTFRONTEND:
     2519            {
     2520                Bstr bstr(ValueUnion.psz);
     2521                if (bstr == "default")
     2522                    bstr = Bstr::Empty;
     2523                CHECK_ERROR(machine, COMSETTER(DefaultFrontend)(bstr.raw()));
     2524                break;
     2525            }
     2526
    25162527            default:
    25172528            {
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp

    r44710 r44948  
    49634963        env.append(QString("XAUTHORITY=%1\n").arg(xauth));
    49644964#endif
    4965     const QString strType = fHeadless ? "headless" : "GUI/Qt";
     4965    const QString strType = fHeadless ? "headless" : "";
    49664966
    49674967    CProgress progress = machine.LaunchVMProcess(session, strType, env);
  • trunk/src/VBox/Main/Makefile.kmk

    r44824 r44948  
    433433
    434434#
    435 # Embed XML Schema files to VBoxSVC
    436 #
    437 VBOX_XML_SCHEMA_COMMON        = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-common.xsd
    438 VBOX_XML_SCHEMA.darwin        = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-macosx.xsd
    439 VBOX_XML_SCHEMA.linux         = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-linux.xsd
    440 VBOX_XML_SCHEMA.freebsd       = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-freebsd.xsd
    441 VBOX_XML_SCHEMA.win           = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-windows.xsd
    442 VBOX_XML_SCHEMA.os2           = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-os2.xsd
    443 VBOX_XML_SCHEMA.solaris       = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-solaris.xsd
    444 
    445 VBOX_XML_CONVERTER_TEMPLATE   = $(VBOX_PATH_MAIN_SRC)/xml/SettingsConverter.xsl
    446 
    447 $$(VBoxSVC_0_OUTDIR)/xml_VirtualBox_settings_xsd.h: $(VBOX_XML_SCHEMA.$(KBUILD_TARGET)) $(VBOX_BIN2C)
    448         $(call MSG_TOOL,bin2c,VBoxSVC,$<,$@)
    449         $(QUIET)$(VBOX_BIN2C) _xml_VirtualBox_settings_xsd $< $@
    450 
    451 $$(VBoxSVC_0_OUTDIR)/xml_VirtualBox_settings_common_xsd.h: $(VBOX_XML_SCHEMA_COMMON) $(VBOX_BIN2C)
    452         $(call MSG_TOOL,bin2c,VBoxSVC,$<,$@)
    453         $(QUIET)$(VBOX_BIN2C) _xml_VirtualBox_settings_common_xsd $< $@
    454 
    455 $$(VBoxSVC_0_OUTDIR)/xml_SettingsConverter_xsl.h: $(VBOX_XML_CONVERTER_TEMPLATE) $(VBOX_BIN2C)
    456         $(call MSG_TOOL,bin2c,VBoxSVC,$<,$@)
    457         $(QUIET)$(VBOX_BIN2C) _xml_SettingsConverter_xsl $< $@
    458 
    459 $(VBOX_XML_SCHEMADEFS_H): $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA.$(KBUILD_TARGET)) $(VBOX_XML_SCHEMA_COMMON) | $$(dir $$@)
     435# Embed some constraints from XML Schema file into VBoxSVC
     436#
     437VBOX_XML_SCHEMA = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings.xsd
     438
     439$(VBOX_XML_SCHEMADEFS_H): $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA) | $$(dir $$@)
    460440        $(call MSG_GENERATE,SchemaDefs,$@,$<)
    461         $(QUIET)$(VBOX_XSLTPROC)  --stringparam mode declare -o $@ $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA.$(KBUILD_TARGET))
    462 
    463 $(VBOX_XML_SCHEMADEFS_CPP): $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA.$(KBUILD_TARGET)) $(VBOX_XML_SCHEMA_COMMON) | $$(dir $$@)
     441        $(QUIET)$(VBOX_XSLTPROC)  --stringparam mode declare -o $@ $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA)
     442
     443$(VBOX_XML_SCHEMADEFS_CPP): $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA) | $$(dir $$@)
    464444        $(call MSG_GENERATE,SchemaDefs,$@,$<)
    465         $(QUIET)$(VBOX_XSLTPROC)  --stringparam mode define  -o $@ $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA.$(KBUILD_TARGET))
     445        $(QUIET)$(VBOX_XSLTPROC)  --stringparam mode define  -o $@ $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA)
     446
     447testvalidsettings: $(VBOX_XML_SCHEMA)
     448        xmllint --schema $< --noout $(HOME)/.VirtualBox/VirtualBox.xml
     449        xmllint --schema $< --noout $(HOME)/.VirtualBox/Machines/*/*.xml
     450        xmllint --schema $< --noout $(HOME)/.VirtualBox/Machines/*/*.vbox
     451        xmllint --schema $< --noout $(HOME)/VirtualBox\ VMs/*/*.vbox
    466452
    467453OTHER_CLEAN += $(VBOX_XML_SCHEMADEFS_H) $(VBOX_XML_SCHEMADEFS_CPP)
  • trunk/src/VBox/Main/idl/VirtualBox.xidl

    r44935 r44948  
    394394  <enum
    395395    name="SettingsVersion"
    396     uuid="52bd6f5f-1adb-4493-975d-581a9c4b803f"
     396    uuid="d5b15ca7-3de7-46b2-a63a-ddcce42bfa3f"
    397397    >
    398398    <desc>
     
    500500          Machine changes: tracing config, groups, autostart;
    501501          NetworkAdapter changes: unit for bandwidth group limits.
     502      -->
     503    </const>
     504    <const name="v1_14"     value="16">
     505      <desc>Settings version "1.14", written by VirtualBox 4.3.x.</desc>
     506      <!--
     507          Machine changes: default frontend.
    502508      -->
    503509    </const>
     
    37933799  <interface
    37943800    name="IMachine" extends="$unknown"
    3795     uuid="22781af3-1c96-4126-9edf-67a020e0e858"
     3801    uuid="381e3f31-2b27-45b7-818a-30609ade86b3"
    37963802    wsmap="managed"
    37973803    >
     
    45044510    </attribute>
    45054511
     4512    <attribute name="defaultFrontend" type="wstring">
     4513      <desc>
     4514        Selects which VM frontend should be used by default when launching
     4515        this VM through the <link to="IMachine::launchVMProcess" /> method.
     4516        Empty or @c null strings do not define a particular default, it is up
     4517        to <link to="IMachine::launchVMProcess" /> to select one. See the
     4518        description of <link to="IMachine::launchVMProcess" />  for the valid
     4519        frontend types.
     4520
     4521        This per-VM setting overrides the default defined by
     4522        <link to="ISystemProperties::defaultFrontend" /> attribute, and is
     4523        overridden by a frontend type passed to
     4524        <link to="IMachine::launchVMProcess" />.
     4525      </desc>
     4526    </attribute>
     4527
    45064528    <method name="lockMachine">
    45074529      <desc>
     
    47004722              used in any way), and the @a progress return value will be always
    47014723              @c null. The operation completes immediately.</li>
     4724            <li><tt>""</tt>: use the per-VM default frontend if set, otherwise
     4725              the global default defined in the system properties. If neither
     4726              are set, the API will launch a <tt>"gui"</tt> session, which may
     4727              fail if there is no windowing environment available. See
     4728              <link to="IMachine::defaultFrontend"/> and
     4729              <link to="ISystemProperties::defaultFrontend"/>.</li>
    47024730          </ul>
    47034731        </desc>
     
    82318259    name="ISystemProperties"
    82328260    extends="$unknown"
    8233     uuid="1d7aca29-97f0-4287-9874-a60ec4f80ea6"
     8261    uuid="413ea94c-efd9-491e-81fc-5df0c4d864bb"
    82348262    wsmap="managed"
    82358263    >
     
    84928520        The path to the default Guest Additions ISO image. Can be empty if
    84938521        the location is not known in this installation.
     8522      </desc>
     8523    </attribute>
     8524
     8525    <attribute name="defaultFrontend" type="wstring">
     8526      <desc>
     8527        Selects which VM frontend should be used by default when launching
     8528        a VM through the <link to="IMachine::launchVMProcess" /> method.
     8529        Empty or @c null strings do not define a particular default, it is up
     8530        to <link to="IMachine::launchVMProcess" /> to select one. See the
     8531        description of <link to="IMachine::launchVMProcess" /> for the valid
     8532        frontend types.
     8533
     8534        This global setting is overridden by the per-VM attribute
     8535        <link to="IMachine::defaultFrontend" /> or a frontend type
     8536        passed to <link to="IMachine::launchVMProcess" />.
    84948537      </desc>
    84958538    </attribute>
  • trunk/src/VBox/Main/include/MachineImpl.h

    r44191 r44948  
    55
    66/*
    7  * Copyright (C) 2006-2012 Oracle Corporation
     7 * Copyright (C) 2006-2013 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    250250        ~HWData();
    251251
    252         Bstr                 mHWVersion;
    253         Guid                 mHardwareUUID;   /**< If Null, use mData.mUuid. */
    254         ULONG                mMemorySize;
    255         ULONG                mMemoryBalloonSize;
    256         BOOL                 mPageFusionEnabled;
    257         ULONG                mVRAMSize;
    258         ULONG                mVideoCaptureWidth;
    259         ULONG                mVideoCaptureHeight;
    260         Bstr                 mVideoCaptureFile;
    261         BOOL                 mVideoCaptureEnabled;
    262         ULONG                mMonitorCount;
    263         BOOL                 mHWVirtExEnabled;
    264         BOOL                 mHWVirtExExclusive;
    265         BOOL                 mHWVirtExNestedPagingEnabled;
    266         BOOL                 mHWVirtExLargePagesEnabled;
    267         BOOL                 mHWVirtExVPIDEnabled;
    268         BOOL                 mHWVirtExForceEnabled;
    269         BOOL                 mAccelerate2DVideoEnabled;
    270         BOOL                 mPAEEnabled;
    271         BOOL                 mSyntheticCpu;
    272         ULONG                mCPUCount;
    273         BOOL                 mCPUHotPlugEnabled;
    274         ULONG                mCpuExecutionCap;
    275         BOOL                 mAccelerate3DEnabled;
    276         BOOL                 mHPETEnabled;
    277 
    278         BOOL                 mCPUAttached[SchemaDefs::MaxCPUCount];
    279 
    280         settings::CpuIdLeaf  mCpuIdStdLeafs[11];
    281         settings::CpuIdLeaf  mCpuIdExtLeafs[11];
    282 
    283         DeviceType_T         mBootOrder[SchemaDefs::MaxBootPosition];
     252        Bstr                mHWVersion;
     253        Guid                mHardwareUUID;  /**< If Null, use mData.mUuid. */
     254        ULONG               mMemorySize;
     255        ULONG               mMemoryBalloonSize;
     256        BOOL                mPageFusionEnabled;
     257        ULONG               mVRAMSize;
     258        ULONG               mVideoCaptureWidth;
     259        ULONG               mVideoCaptureHeight;
     260        Bstr                mVideoCaptureFile;
     261        BOOL                mVideoCaptureEnabled;
     262        ULONG               mMonitorCount;
     263        BOOL                mHWVirtExEnabled;
     264        BOOL                mHWVirtExExclusive;
     265        BOOL                mHWVirtExNestedPagingEnabled;
     266        BOOL                mHWVirtExLargePagesEnabled;
     267        BOOL                mHWVirtExVPIDEnabled;
     268        BOOL                mHWVirtExForceEnabled;
     269        BOOL                mAccelerate2DVideoEnabled;
     270        BOOL                mPAEEnabled;
     271        BOOL                mSyntheticCpu;
     272        ULONG               mCPUCount;
     273        BOOL                mCPUHotPlugEnabled;
     274        ULONG               mCpuExecutionCap;
     275        BOOL                mAccelerate3DEnabled;
     276        BOOL                mHPETEnabled;
     277
     278        BOOL                mCPUAttached[SchemaDefs::MaxCPUCount];
     279
     280        settings::CpuIdLeaf mCpuIdStdLeafs[11];
     281        settings::CpuIdLeaf mCpuIdExtLeafs[11];
     282
     283        DeviceType_T        mBootOrder[SchemaDefs::MaxBootPosition];
    284284
    285285        typedef std::list<ComObjPtr<SharedFolder> > SharedFolderList;
    286         SharedFolderList     mSharedFolders;
    287 
    288         ClipboardMode_T      mClipboardMode;
    289         DragAndDropMode_T    mDragAndDropMode;
     286        SharedFolderList    mSharedFolders;
     287
     288        ClipboardMode_T     mClipboardMode;
     289        DragAndDropMode_T   mDragAndDropMode;
    290290
    291291        typedef std::map<Utf8Str, GuestProperty> GuestPropertyMap;
    292         GuestPropertyMap     mGuestProperties;
    293         Utf8Str              mGuestPropertyNotificationPatterns;
    294 
    295         FirmwareType_T       mFirmwareType;
    296         KeyboardHIDType_T    mKeyboardHIDType;
    297         PointingHIDType_T    mPointingHIDType;
    298         ChipsetType_T        mChipsetType;
    299         BOOL                 mEmulatedUSBWebcamEnabled;
    300         BOOL                 mEmulatedUSBCardReaderEnabled;
    301 
    302         BOOL                 mIOCacheEnabled;
    303         ULONG                mIOCacheSize;
     292        GuestPropertyMap    mGuestProperties;
     293        Utf8Str             mGuestPropertyNotificationPatterns;
     294
     295        FirmwareType_T      mFirmwareType;
     296        KeyboardHIDType_T   mKeyboardHIDType;
     297        PointingHIDType_T   mPointingHIDType;
     298        ChipsetType_T       mChipsetType;
     299        BOOL                mEmulatedUSBWebcamEnabled;
     300        BOOL                mEmulatedUSBCardReaderEnabled;
     301
     302        BOOL                mIOCacheEnabled;
     303        ULONG               mIOCacheSize;
    304304
    305305        typedef std::list<ComObjPtr<PCIDeviceAttachment> > PCIDeviceAssignmentList;
    306306        PCIDeviceAssignmentList mPCIDeviceAssignments;
    307307
    308         settings::Debugging  mDebugging;
    309         settings::Autostart  mAutostart;
     308        settings::Debugging mDebugging;
     309        settings::Autostart mAutostart;
     310
     311        Utf8Str             mDefaultFrontend;
    310312    };
    311313
    312314    /**
    313    *  Hard disk and other media data.
     315     *  Hard disk and other media data.
    314316     *
    315317     *  The usage policy is the same as for HWData, but a separate structure
     
    505507    STDMETHOD(COMGETTER(AutostopType))(AutostopType_T *penmAutostopType);
    506508    STDMETHOD(COMSETTER(AutostopType))(AutostopType_T enmAutostopType);
     509    STDMETHOD(COMGETTER(DefaultFrontend))(BSTR *aDefaultFrontend);
     510    STDMETHOD(COMSETTER(DefaultFrontend))(IN_BSTR aDefaultFrontend);
    507511
    508512    // IMachine methods
  • trunk/src/VBox/Main/include/SystemPropertiesImpl.h

    r42748 r44948  
    77
    88/*
    9  * Copyright (C) 2006-2012 Oracle Corporation
     9 * Copyright (C) 2006-2013 Oracle Corporation
    1010 *
    1111 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    9696    STDMETHOD(COMGETTER(DefaultAdditionsISO))(BSTR *aDefaultAdditionsISO);
    9797    STDMETHOD(COMSETTER(DefaultAdditionsISO))(IN_BSTR aDefaultAdditionsISO);
     98    STDMETHOD(COMGETTER(DefaultFrontend))(BSTR *aDefaultFrontend);
     99    STDMETHOD(COMSETTER(DefaultFrontend))(IN_BSTR aDefaultFrontend);
    98100
    99101    STDMETHOD(GetMaxNetworkAdapters)(ChipsetType_T aChipset, ULONG *aMaxInstances);
     
    130132    HRESULT setAutostartDatabasePath(const Utf8Str &aPath);
    131133    HRESULT setDefaultAdditionsISO(const Utf8Str &aPath);
     134    HRESULT setDefaultFrontend(const Utf8Str &aPath);
    132135
    133136    VirtualBox * const  mParent;
  • trunk/src/VBox/Main/src-server/MachineImpl.cpp

    r44814 r44948  
    10041004
    10051005    if (test.isValid())
    1006         return setError(E_INVALIDARG,  tr("A machine cannot have a UUID as its name"));
     1006        return setError(E_INVALIDARG, tr("A machine cannot have a UUID as its name"));
    10071007
    10081008    AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
     
    35673567 */
    35683568STDMETHODIMP Machine::LaunchVMProcess(ISession *aSession,
    3569                                       IN_BSTR aType,
     3569                                      IN_BSTR aFrontend,
    35703570                                      IN_BSTR aEnvironment,
    35713571                                      IProgress **aProgress)
    35723572{
    3573     CheckComArgStrNotEmptyOrNull(aType);
    3574     Utf8Str strType(aType);
     3573    CheckComArgStr(aFrontend);
     3574    Utf8Str strFrontend(aFrontend);
    35753575    Utf8Str strEnvironment(aEnvironment);
    35763576    /* "emergencystop" doesn't need the session, so skip the checks/interface
     
    35783578     * special API method would be even more effort, and would require explicit
    35793579     * support by every API client. It's better to hide the feature a bit. */
    3580     if (strType != "emergencystop")
     3580    if (strFrontend != "emergencystop")
    35813581        CheckComArgNotNull(aSession);
    35823582    CheckComArgOutPointerValid(aProgress);
     
    35853585    if (FAILED(autoCaller.rc())) return autoCaller.rc();
    35863586
    3587     ComPtr<IInternalSessionControl> control;
    35883587    HRESULT rc = S_OK;
    3589 
    3590     if (strType != "emergencystop")
     3588    if (strFrontend.isEmpty())
     3589    {
     3590        Bstr bstrFrontend;
     3591        rc = COMGETTER(DefaultFrontend)(bstrFrontend.asOutParam());
     3592        if (FAILED(rc))
     3593            return rc;
     3594        strFrontend = bstrFrontend;
     3595        if (strFrontend.isEmpty())
     3596        {
     3597            ComPtr<ISystemProperties> systemProperties;
     3598            rc = mParent->COMGETTER(SystemProperties)(systemProperties.asOutParam());
     3599            if (FAILED(rc))
     3600                return rc;
     3601            rc = systemProperties->COMGETTER(DefaultFrontend)(bstrFrontend.asOutParam());
     3602            if (FAILED(rc))
     3603                return rc;
     3604            strFrontend = bstrFrontend;
     3605        }
     3606        /* paranoia - emergencystop is not a valid default */
     3607        if (strFrontend == "emergencystop")
     3608            strFrontend = Utf8Str::Empty;
     3609    }
     3610
     3611    if (strFrontend != "emergencystop")
    35913612    {
    35923613        /* check the session state */
     
    36013622
    36023623        /* get the IInternalSessionControl interface */
    3603         control = aSession;
     3624        ComPtr<IInternalSessionControl> control(aSession);
    36043625        ComAssertMsgRet(!control.isNull(),
    36053626                        ("No IInternalSessionControl interface"),
    36063627                        E_INVALIDARG);
    3607     }
    3608 
    3609     /* get the teleporter enable state for the progress object init. */
    3610     BOOL fTeleporterEnabled;
    3611     rc = COMGETTER(TeleporterEnabled)(&fTeleporterEnabled);
    3612     if (FAILED(rc))
    3613         return rc;
    3614 
    3615     /* create a progress object */
    3616     if (strType != "emergencystop")
    3617     {
     3628
     3629        /* get the teleporter enable state for the progress object init. */
     3630        BOOL fTeleporterEnabled;
     3631        rc = COMGETTER(TeleporterEnabled)(&fTeleporterEnabled);
     3632        if (FAILED(rc))
     3633            return rc;
     3634
     3635        /* create a progress object */
    36183636        ComObjPtr<ProgressProxy> progress;
    36193637        progress.createObject();
     
    36233641                            TRUE /* aCancelable */,
    36243642                            fTeleporterEnabled ? 20 : 10 /* uTotalOperationsWeight */,
    3625                             BstrFmt(tr("Creating process for virtual machine \"%s\" (%s)"), mUserData->s.strName.c_str(), strType.c_str()).raw(),
     3643                            BstrFmt(tr("Creating process for virtual machine \"%s\" (%s)"), mUserData->s.strName.c_str(), strFrontend.c_str()).raw(),
    36263644                            2 /* uFirstOperationWeight */,
    36273645                            fTeleporterEnabled ? 3 : 1 /* cOtherProgressObjectOperations */);
     
    36293647        if (SUCCEEDED(rc))
    36303648        {
    3631             rc = launchVMProcess(control, strType, strEnvironment, progress);
     3649            rc = launchVMProcess(control, strFrontend, strEnvironment, progress);
    36323650            if (SUCCEEDED(rc))
    36333651            {
     
    69686986}
    69696987
     6988STDMETHODIMP Machine::COMGETTER(DefaultFrontend)(BSTR *aDefaultFrontend)
     6989{
     6990    CheckComArgOutPointerValid(aDefaultFrontend);
     6991    AutoCaller autoCaller(this);
     6992    HRESULT hrc = autoCaller.rc();
     6993    if (SUCCEEDED(hrc))
     6994    {
     6995        AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
     6996        mHWData->mDefaultFrontend.cloneTo(aDefaultFrontend);
     6997    }
     6998    return hrc;
     6999}
     7000
     7001STDMETHODIMP Machine::COMSETTER(DefaultFrontend)(IN_BSTR aDefaultFrontend)
     7002{
     7003    CheckComArgStr(aDefaultFrontend);
     7004    AutoCaller autoCaller(this);
     7005    HRESULT hrc = autoCaller.rc();
     7006    if (SUCCEEDED(hrc))
     7007    {
     7008        AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
     7009        hrc = checkStateDependency(MutableOrSavedStateDep);
     7010        if (SUCCEEDED(hrc))
     7011        {
     7012            hrc = mHWData.backupEx();
     7013            if (SUCCEEDED(hrc))
     7014            {
     7015                setModified(IsModified_MachineData);
     7016                mHWData->mDefaultFrontend = aDefaultFrontend;
     7017            }
     7018        }
     7019    }
     7020    return hrc;
     7021}
     7022
    69707023
    69717024STDMETHODIMP Machine::CloneTo(IMachine *pTarget, CloneMode_T mode, ComSafeArrayIn(CloneOptions_T, options), IProgress **pProgress)
     
    72187271 */
    72197272HRESULT Machine::launchVMProcess(IInternalSessionControl *aControl,
    7220                                  const Utf8Str &strType,
     7273                                 const Utf8Str &strFrontend,
    72217274                                 const Utf8Str &strEnvironment,
    72227275                                 ProgressProxy *aProgress)
     
    73147367    /* Qt is default */
    73157368#ifdef VBOX_WITH_QTGUI
    7316     if (strType == "gui" || strType == "GUI/Qt")
     7369    if (strFrontend == "gui" || strFrontend == "GUI/Qt" || strFrontend == "")
    73177370    {
    73187371# ifdef RT_OS_DARWIN /* Avoid Launch Services confusing this with the selector by using a helper app. */
     
    73367389
    73377390#ifdef VBOX_WITH_VBOXSDL
    7338     if (strType == "sdl" || strType == "GUI/SDL")
     7391    if (strFrontend == "sdl" || strFrontend == "GUI/SDL")
    73397392    {
    73407393        const char VBoxSDL_exe[] = "VBoxSDL" HOSTSUFF_EXE;
     
    73547407
    73557408#ifdef VBOX_WITH_HEADLESS
    7356     if (   strType == "headless"
    7357         || strType == "capture"
    7358         || strType == "vrdp" /* Deprecated. Same as headless. */
     7409    if (   strFrontend == "headless"
     7410        || strFrontend == "capture"
     7411        || strFrontend == "vrdp" /* Deprecated. Same as headless. */
    73597412       )
    73607413    {
     
    73777430                                       0, /* For "--capture". */
    73787431                                       0 };
    7379         if (strType == "capture")
     7432        if (strFrontend == "capture")
    73807433        {
    73817434            unsigned pos = RT_ELEMENTS(args) - 2;
     
    73987451        RTEnvDestroy(env);
    73997452        return setError(E_INVALIDARG,
    7400                         tr("Invalid session type: '%s'"),
    7401                         strType.c_str());
     7453                        tr("Invalid frontend name: '%s'"),
     7454                        strFrontend.c_str());
    74027455    }
    74037456
     
    74407493    mData->mSession.mPID = pid;
    74417494    mData->mSession.mState = SessionState_Spawning;
    7442     mData->mSession.mType = strType;
     7495    mData->mSession.mType = strFrontend;
    74437496
    74447497    LogFlowThisFuncLeave();
     
    87188771
    87198772        mHWData->mAutostart = *pAutostart;
     8773
     8774        /* default frontend */
     8775        mHWData->mDefaultFrontend = data.strDefaultFrontend;
    87208776    }
    87218777    catch(std::bad_alloc &)
     
    99229978        *pDbg = mHWData->mDebugging;
    99239979        *pAutostart = mHWData->mAutostart;
     9980
     9981        data.strDefaultFrontend = mHWData->mDefaultFrontend;
    99249982    }
    99259983    catch(std::bad_alloc &)
  • trunk/src/VBox/Main/src-server/SystemPropertiesImpl.cpp

    r43518 r44948  
    55
    66/*
    7  * Copyright (C) 2006-2012 Oracle Corporation
     7 * Copyright (C) 2006-2013 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    992992}
    993993
     994STDMETHODIMP SystemProperties::COMGETTER(DefaultFrontend)(BSTR *aDefaultFrontend)
     995{
     996    CheckComArgOutPointerValid(aDefaultFrontend);
     997
     998    AutoCaller autoCaller(this);
     999    if (FAILED(autoCaller.rc())) return autoCaller.rc();
     1000
     1001    AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
     1002    m->strDefaultFrontend.cloneTo(aDefaultFrontend);
     1003
     1004    return S_OK;
     1005}
     1006
     1007STDMETHODIMP SystemProperties::COMSETTER(DefaultFrontend)(IN_BSTR aDefaultFrontend)
     1008{
     1009    AutoCaller autoCaller(this);
     1010    if (FAILED(autoCaller.rc())) return autoCaller.rc();
     1011
     1012    AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
     1013    if (m->strDefaultFrontend == Utf8Str(aDefaultFrontend))
     1014        return S_OK;
     1015    HRESULT rc = setDefaultFrontend(aDefaultFrontend);
     1016    alock.release();
     1017
     1018    if (SUCCEEDED(rc))
     1019    {
     1020        // VirtualBox::saveSettings() needs vbox write lock
     1021        AutoWriteLock vboxLock(mParent COMMA_LOCKVAL_SRC_POS);
     1022        rc = mParent->saveSettings();
     1023    }
     1024
     1025    return rc;
     1026}
     1027
    9941028// public methods only for internal purposes
    9951029/////////////////////////////////////////////////////////////////////////////
     
    10301064        (void)setDefaultAdditionsISO(data.strDefaultAdditionsISO);
    10311065    }
     1066
     1067    rc = setDefaultFrontend(data.strDefaultFrontend);
     1068    if (FAILED(rc)) return rc;
    10321069
    10331070    return S_OK;
     
    12831320    return S_OK;
    12841321}
     1322
     1323HRESULT SystemProperties::setDefaultFrontend(const Utf8Str &aDefaultFrontend)
     1324{
     1325    m->strDefaultFrontend = aDefaultFrontend;
     1326
     1327    return S_OK;
     1328}
  • trunk/src/VBox/Main/xml/SchemaDefs.xsl

    r44528 r44948  
    169169    <xsl:with-param name="member" select="'        MaxGuestMonitors'"/>
    170170    <xsl:with-param name="select" select="
    171       xsd:complexType[@name='TDisplay']/xsd:attribute[@name='monitorCount']//xsd:maxInclusive/@value
     171      xsd:simpleType[@name='TMonitorCount']//xsd:maxInclusive/@value
    172172    "/>
    173173  </xsl:call-template>
  • trunk/src/VBox/Main/xml/Settings.cpp

    r44873 r44948  
    845845            break;
    846846
     847        case SettingsVersion_v1_14:
     848            pcszVersion = "1.14";
     849            break;
     850
    847851        case SettingsVersion_Future:
    848852            // can be set if this code runs on XML files that were created by a future version of VBox;
    849853            // in that case, downgrade to current version when writing since we can't write future versions...
    850             pcszVersion = "1.13";
    851             m->sv = SettingsVersion_v1_13;
     854            pcszVersion = "1.14";
     855            m->sv = SettingsVersion_v1_14;
    852856            break;
    853857
     
    12971301                        pelmGlobalChild->getAttributeValue("LogHistoryCount", systemProperties.ulLogHistoryCount);
    12981302                        pelmGlobalChild->getAttributeValue("autostartDatabasePath", systemProperties.strAutostartDatabasePath);
     1303                        pelmGlobalChild->getAttributeValue("defaultFrontend", systemProperties.strDefaultFrontend);
    12991304                    }
    13001305                    else if (pelmGlobalChild->nameEquals("ExtraData"))
     
    14091414    if (systemProperties.strAutostartDatabasePath.length())
    14101415        pelmSysProps->setAttribute("autostartDatabasePath", systemProperties.strAutostartDatabasePath);
     1416    if (systemProperties.strDefaultFrontend.length())
     1417        pelmSysProps->setAttribute("defaultFrontend", systemProperties.strDefaultFrontend);
    14111418
    14121419    buildUSBDeviceFilters(*pelmGlobal->createChild("USBDeviceFilters"),
     
    17041711                  && (ioSettings                == h.ioSettings)
    17051712                  && (pciAttachments            == h.pciAttachments)
     1713                  && (strDefaultFrontend        == h.strDefaultFrontend)
    17061714                )
    17071715            );
     
    28852893            {
    28862894                pelmWebcam->getAttributeValue("enabled", hw.fEmulatedUSBWebcam);
     2895            }
     2896        }
     2897        else if (pelmHwChild->nameEquals("Frontend"))
     2898        {
     2899            const xml::ElementNode *pelmDefault;
     2900
     2901            if ((pelmDefault = pelmHwChild->findChildElement("Default")))
     2902            {
     2903                pelmDefault->getAttributeValue("type", hw.strDefaultFrontend);
    28872904            }
    28882905        }
     
    42064223    }
    42074224
     4225    if (   m->sv >= SettingsVersion_v1_14
     4226        && !hw.strDefaultFrontend.isEmpty())
     4227    {
     4228        xml::ElementNode *pelmFrontend = pelmHardware->createChild("Frontend");
     4229        xml::ElementNode *pelmDefault = pelmFrontend->createChild("Default");
     4230        pelmDefault->setAttribute("type", hw.strDefaultFrontend);
     4231    }
     4232
    42084233    xml::ElementNode *pelmGuest = pelmHardware->createChild("Guest");
    42094234    pelmGuest->setAttribute("memoryBalloonSize", hw.ulMemoryBalloonSize);
     
    48654890void MachineConfigFile::bumpSettingsVersionIfNeeded()
    48664891{
     4892    if (m->sv < SettingsVersion_v1_14)
     4893    {
     4894        // VirtualBox 4.3 adds default frontend setting.
     4895        if (!hardwareMachine.strDefaultFrontend.isEmpty())
     4896            m->sv = SettingsVersion_v1_14;
     4897    }
     4898
    48674899    if (m->sv < SettingsVersion_v1_13)
    48684900    {
  • trunk/src/VBox/Main/xml/VirtualBox-settings.xsd

    r44875 r44948  
    77 *  Common definitions
    88
    9     Copyright (C) 2004-2012 Oracle Corporation
     9    Copyright (C) 2004-2013 Oracle Corporation
    1010
    1111    This file is part of VirtualBox Open Source Edition (OSE), as
     
    2929  <xsd:documentation xml:lang="en">
    3030    Oracle VM VirtualBox Settings Schema (common definitions).
    31     Copyright (c) 2004-2012 Oracle Corporation
     31    Copyright (c) 2004-2013 Oracle Corporation
    3232  </xsd:documentation>
    3333</xsd:annotation>
     
    7878</xsd:simpleType>
    7979
     80<xsd:simpleType name="TUInt16Hex">
     81  <xsd:restriction base="xsd:string">
     82    <xsd:pattern value="0x[A-Fa-f0-9]{1,4}"/>
     83  </xsd:restriction>
     84</xsd:simpleType>
     85
     86<xsd:simpleType name="TUInt16HexNoBase">
     87  <xsd:restriction base="xsd:string">
     88    <xsd:pattern value="[A-Fa-f0-9]{1,4}"/>
     89  </xsd:restriction>
     90</xsd:simpleType>
     91
    8092<xsd:simpleType name="TUInt32Hex">
    8193  <xsd:restriction base="xsd:string">
     
    93105  <xsd:restriction base="xsd:string">
    94106    <xsd:pattern value=".+"/>
    95   </xsd:restriction>
    96 </xsd:simpleType>
    97 
    98 <xsd:simpleType name="TDiskType">
    99   <xsd:restriction base="xsd:token">
    100     <xsd:enumeration value="HD"/>
    101     <xsd:enumeration value="DVD"/>
    102     <xsd:enumeration value="FD"/>
    103107  </xsd:restriction>
    104108</xsd:simpleType>
     
    114118</xsd:simpleType>
    115119
     120<xsd:simpleType name="TMediumDeviceType">
     121  <xsd:restriction base="TDeviceType">
     122    <xsd:enumeration value="Floppy"/>
     123    <xsd:enumeration value="DVD"/>
     124    <xsd:enumeration value="HardDisk"/>
     125  </xsd:restriction>
     126</xsd:simpleType>
     127
     128<xsd:simpleType name="TMediumType">
     129  <xsd:restriction base="xsd:string">
     130    <xsd:enumeration value="Normal"/>
     131    <xsd:enumeration value="Immutable"/>
     132    <xsd:enumeration value="Writethrough"/>
     133    <xsd:enumeration value="Shareable"/>
     134    <xsd:enumeration value="Readonly"/>
     135    <xsd:enumeration value="MultiAttach"/>
     136  </xsd:restriction>
     137</xsd:simpleType>
     138
     139<xsd:simpleType name="TMonitorCount">
     140  <xsd:restriction base="xsd:unsignedInt">
     141    <xsd:minInclusive value="1"/>
     142    <!-- This should be in sync with VBOX_VIDEO_MAX_SCREENS in VBoxVideoVBE.h -->
     143    <xsd:maxInclusive value="64"/>
     144  </xsd:restriction>
     145</xsd:simpleType>
     146
    116147<xsd:simpleType name="TUSBDeviceFilterAction">
    117148  <xsd:restriction base="xsd:token">
     
    138169<xsd:simpleType name="TAuthType">
    139170  <xsd:restriction base="xsd:string">
     171    <xsd:enumeration value="null"/> <!-- deprecated -->
    140172    <xsd:enumeration value="Null"/>
    141173    <xsd:enumeration value="Guest"/>
     
    168200    <xsd:enumeration value="MenuOnly"/>
    169201    <xsd:enumeration value="MessageAndMenu"/>
     202    <xsd:enumeration value="messageandmenu"/> <!-- deprecated -->
     203  </xsd:restriction>
     204</xsd:simpleType>
     205
     206<xsd:simpleType name="TLocalOrUTC">
     207  <xsd:restriction base="xsd:token">
     208    <xsd:enumeration value="local"/>
     209    <xsd:enumeration value="UTC"/>
    170210  </xsd:restriction>
    171211</xsd:simpleType>
     
    186226    <xsd:enumeration value="GuestToHost"/>
    187227    <xsd:enumeration value="Bidirectional"/>
     228  </xsd:restriction>
     229</xsd:simpleType>
     230
     231<xsd:simpleType name="TBandwidthGroupType">
     232  <xsd:restriction base="xsd:string">
     233    <xsd:enumeration value="Disk"/>
     234    <xsd:enumeration value="Network"/>
    188235  </xsd:restriction>
    189236</xsd:simpleType>
     
    211258</xsd:complexType>
    212259
     260<xsd:complexType name="TProperty">
     261  <xsd:attribute name="name" type="xsd:token" use="required"/>
     262  <xsd:attribute name="value" type="xsd:string" use="required"/>
     263</xsd:complexType>
     264
    213265<xsd:complexType name="THardDiskBase">
    214266  <xsd:sequence>
    215267    <xsd:element name="Description" type="xsd:string" minOccurs="0"/>
    216     <xsd:element name="Property" minOccurs="0" maxOccurs="unbounded">
    217       <xsd:complexType>
    218         <xsd:attribute name="name" type="xsd:token" use="required"/>
    219         <xsd:attribute name="value" type="xsd:string" use="required"/>
    220       </xsd:complexType>
    221     </xsd:element>
     268    <xsd:element name="Property" type="TProperty" minOccurs="0" maxOccurs="unbounded"/>
    222269    <xsd:element name="HardDisk" type="TDiffHardDisk" minOccurs="0" maxOccurs="unbounded"/>
    223270  </xsd:sequence>
     
    238285  <xsd:complexContent>
    239286    <xsd:extension base="THardDiskBase">
    240       <xsd:attribute name="type" use="required">
    241         <xsd:simpleType>
    242           <xsd:restriction base="xsd:string">
    243             <xsd:enumeration value="Normal"/>
    244             <xsd:enumeration value="Immutable"/>
    245             <xsd:enumeration value="Writethrough"/>
    246             <xsd:enumeration value="Shareable"/>
    247             <xsd:enumeration value="Readonly"/>
    248             <xsd:enumeration value="MultiAttach"/>
    249           </xsd:restriction>
    250         </xsd:simpleType>
    251       </xsd:attribute>
     287      <xsd:attribute name="type" type="TMediumType" use="required"/>
    252288    </xsd:extension>
    253289  </xsd:complexContent>
     
    260296  <xsd:attribute name="uuid" type="TNonNullUUID" use="required"/>
    261297  <xsd:attribute name="location" type="TLocalFile" use="required"/>
     298  <xsd:attribute name="type" type="TMediumType"/>
    262299</xsd:complexType>
    263300
     
    301338  <xsd:attribute name="HWVirtExEnabled" type="xsd:boolean"/>
    302339  <xsd:attribute name="LogHistoryCount" type="xsd:unsignedInt" default="3"/>
     340  <xsd:attribute name="defaultVRDEExtPack" type="xsd:string"/>
    303341</xsd:complexType>
    304342
     
    312350    </xsd:element>
    313351  </xsd:sequence>
     352</xsd:complexType>
     353
     354<xsd:complexType name="TMediaRegistry">
     355  <xsd:all>
     356    <xsd:element name="HardDisks" minOccurs="0">
     357      <xsd:complexType>
     358        <xsd:sequence>
     359          <xsd:element name="HardDisk" type="THardDisk" minOccurs="0" maxOccurs="unbounded"/>
     360        </xsd:sequence>
     361      </xsd:complexType>
     362    </xsd:element>
     363    <xsd:element name="DVDImages" minOccurs="0">
     364      <xsd:complexType>
     365        <xsd:sequence>
     366          <xsd:element name="Image" type="TImage2" minOccurs="0" maxOccurs="unbounded"/>
     367        </xsd:sequence>
     368      </xsd:complexType>
     369    </xsd:element>
     370    <xsd:element name="FloppyImages" minOccurs="0">
     371      <xsd:complexType>
     372        <xsd:sequence>
     373          <xsd:element name="Image" type="TImage2" minOccurs="0" maxOccurs="unbounded"/>
     374        </xsd:sequence>
     375      </xsd:complexType>
     376    </xsd:element>
     377  </xsd:all>
    314378</xsd:complexType>
    315379
     
    328392      </xsd:complexType>
    329393    </xsd:element>
    330     <xsd:element name="MediaRegistry">
    331       <xsd:complexType>
    332         <xsd:all>
    333           <xsd:element name="HardDisks" minOccurs="0">
    334             <xsd:complexType>
    335               <xsd:sequence>
    336                 <xsd:element name="HardDisk" type="THardDisk" minOccurs="0" maxOccurs="unbounded"/>
    337               </xsd:sequence>
    338             </xsd:complexType>
    339           </xsd:element>
    340           <xsd:element name="DVDImages" minOccurs="0">
    341             <xsd:complexType>
    342               <xsd:sequence>
    343                 <xsd:element name="Image" type="TImage2" minOccurs="0" maxOccurs="unbounded"/>
    344               </xsd:sequence>
    345             </xsd:complexType>
    346           </xsd:element>
    347           <xsd:element name="FloppyImages" minOccurs="0">
    348             <xsd:complexType>
    349               <xsd:sequence>
    350                 <xsd:element name="Image" type="TImage2" minOccurs="0" maxOccurs="unbounded"/>
    351               </xsd:sequence>
    352             </xsd:complexType>
    353           </xsd:element>
    354         </xsd:all>
    355       </xsd:complexType>
    356     </xsd:element>
     394    <xsd:element name="MediaRegistry" type="TMediaRegistry"/>
    357395    <xsd:element name="NetserviceRegistry" minOccurs="0" maxOccurs="1">
    358396      <xsd:complexType>
     
    402440</xsd:complexType>
    403441
     442<xsd:complexType name="THardwareVirtExLargePages">
     443  <xsd:attribute name="enabled" type="xsd:boolean"/>
     444</xsd:complexType>
     445
     446<xsd:complexType name="THardwareVirtForce">
     447  <xsd:attribute name="enabled" type="xsd:boolean"/>
     448</xsd:complexType>
     449
    404450<xsd:simpleType name="TCPUCount">
    405451  <xsd:restriction base="xsd:unsignedInt">
     
    430476    <xsd:element name="HardwareVirtExVPID" type="THWVirtExVPIDType" minOccurs="0"/>
    431477    <xsd:element name="PAE" type="TPAEType" minOccurs="0"/>
     478    <xsd:element name="HardwareVirtExLargePages" type="THardwareVirtExLargePages" minOccurs="0"/>
     479    <xsd:element name="HardwareVirtForce" type="THardwareVirtForce" minOccurs="0"/>
    432480    <xsd:element name="SyntheticCpu" type="TSyntheticCpuType" minOccurs="0"/>
    433481    <xsd:element name="CpuIdTree" type="TCpuIdTree" minOccurs="0">
     
    439487  </xsd:sequence>
    440488  <xsd:attribute name="count" type="TCPUCount" default="1"/>
     489  <xsd:attribute name="hotplug" type="xsd:boolean" default="false"/>
    441490</xsd:complexType>
    442491
     
    460509
    461510<xsd:complexType name="TDisplay">
    462   <xsd:element name="VideoRecording">
    463     <xsd:complexType>
    464       <xsd:attribute name="enabled" type="xsd:boolean"/>
    465       <xsd:attribute name="file" type="xsd:string"/>
    466       <xsd:attribute name="horzRes" use="required">
    467         <xsd:simpleType>
    468           <xsd:restriction base="xsd:unsignedInt">
    469             <xsd:minInclusive value="4"/>
    470             <xsd:maxInclusive value="2097152"/>
    471            </xsd:restriction>
    472          </xsd:simpleType>
    473       </xsd:attribute>
    474       <xsd:attribute name="vertRes" type="xsd:unsignedInt"/>
    475     </xsd:complexType>
    476   </xsd:element>
    477511  <xsd:attribute name="VRAMSize" use="required">
    478512    <xsd:simpleType>
     
    483517    </xsd:simpleType>
    484518  </xsd:attribute>
    485   <!-- This should be in sync with VBOX_VIDEO_MAX_SCREENS in VBoxVideoVBE.h -->
    486   <xsd:attribute name="monitorCount" default="1">
    487     <xsd:simpleType>
    488       <xsd:restriction base="xsd:unsignedInt">
    489         <xsd:maxInclusive value="64"/>
    490       </xsd:restriction>
    491     </xsd:simpleType>
    492   </xsd:attribute>
     519  <xsd:attribute name="monitorCount" type="TMonitorCount" default="1"/>
     520  <xsd:attribute name="MonitorCount" type="TMonitorCount"/> <!-- deprecated -->
    493521  <xsd:attribute name="accelerate3D" type="xsd:boolean" default="false"/>
    494522  <xsd:attribute name="accelerate2DVideo" type="xsd:boolean" default="false"/>
    495523</xsd:complexType>
    496524
     525<xsd:complexType name="TVideoRecording">
     526  <xsd:attribute name="enabled" type="xsd:boolean" default="false"/>
     527  <xsd:attribute name="file" type="xsd:string"/>
     528  <xsd:attribute name="horzRes">
     529    <xsd:simpleType>
     530      <xsd:restriction base="xsd:unsignedInt">
     531        <xsd:minInclusive value="4"/>
     532        <xsd:maxInclusive value="2097152"/>
     533       </xsd:restriction>
     534     </xsd:simpleType>
     535  </xsd:attribute>
     536  <xsd:attribute name="vertRes" type="xsd:unsignedInt"/>
     537</xsd:complexType>
     538
     539<xsd:complexType name="TVRDEProperties">
     540  <xsd:sequence>
     541    <xsd:element name="Property" type="TProperty" minOccurs="0" maxOccurs="unbounded"/>
     542  </xsd:sequence>
     543</xsd:complexType>
     544
     545<xsd:complexType name="TVideoChannel">
     546  <xsd:attribute name="enabled" type="xsd:boolean" default="false"/>
     547  <xsd:attribute name="quality" type="xsd:unsignedByte" default="75"/>
     548</xsd:complexType>
     549
    497550<xsd:complexType name="TRemoteDisplay">
     551  <xsd:sequence>
     552    <xsd:element name="VideoChannel" type="TVideoChannel" minOccurs="0"/> <!-- deprecated -->
     553    <xsd:choice minOccurs="0">
     554      <xsd:element name="VRDEProperties" type="TVRDEProperties"/>
     555    </xsd:choice>
     556  </xsd:sequence>
    498557  <xsd:attribute name="enabled" type="xsd:boolean" use="required"/>
     558  <xsd:attribute name="port" type="xsd:string" default="3389"/> <!-- deprecated -->
    499559  <xsd:attribute name="authType" type="TAuthType" default="Null"/>
    500560  <xsd:attribute name="authTimeout" type="xsd:unsignedInt" default="5000"/>
     
    530590    <xsd:element name="TimeOffset" minOccurs="0">
    531591      <xsd:complexType>
    532           <xsd:attribute name="value" type="xsd:integer" default="0"/>
     592        <xsd:attribute name="value" type="xsd:integer" default="0"/>
    533593      </xsd:complexType>
    534594    </xsd:element>
    535595    <xsd:element name="PXEDebug" minOccurs="0">
    536596      <xsd:complexType>
    537           <xsd:attribute name="enabled" type="xsd:boolean" default="false"/>
     597        <xsd:attribute name="enabled" type="xsd:boolean" default="false"/>
     598      </xsd:complexType>
     599    </xsd:element>
     600    <xsd:element name="IDEController" minOccurs="0"> <!-- deprecated -->
     601      <xsd:complexType>
     602        <xsd:attribute name="type">
     603          <xsd:simpleType>
     604            <xsd:restriction base="xsd:token">
     605            <xsd:enumeration value="PIIX3"/>
     606            <xsd:enumeration value="PIIX4"/>
     607            <xsd:enumeration value="ICH6"/>
     608            </xsd:restriction>
     609          </xsd:simpleType>
     610        </xsd:attribute>
    538611      </xsd:complexType>
    539612    </xsd:element>
     
    546619    <xsd:element name="HostDrive" type="THostDrive"/>
    547620  </xsd:choice>
    548   <xsd:attribute name="type" use="required">
    549     <xsd:simpleType>
    550       <xsd:restriction base="xsd:token">
    551         <xsd:enumeration value="HardDisk"/>
    552         <xsd:enumeration value="CD/DVD"/>
    553       </xsd:restriction>
    554     </xsd:simpleType>
    555   </xsd:attribute>
    556   <xsd:attribute name="port" type="xsd:unsignedInt" use="required"/>
     621  <xsd:attribute name="type" type="TMediumDeviceType"/>
     622  <xsd:attribute name="port" type="xsd:unsignedInt" default="0"/>
    557623  <xsd:attribute name="device" type="xsd:unsignedInt" default="0"/>
     624  <xsd:attribute name="passthrough" type="xsd:boolean" default="false"/>
     625  <xsd:attribute name="tempeject" type="xsd:boolean" default="false"/>
     626  <xsd:attribute name="nonrotational" type="xsd:boolean" default="false"/>
     627  <xsd:attribute name="discard" type="xsd:boolean" default="false"/>
    558628</xsd:complexType>
    559629
     
    574644      <xsd:enumeration value="ICH6"/>
    575645      <xsd:enumeration value="LsiLogicSas"/>
     646      <xsd:enumeration value="I82078"/>
    576647      </xsd:restriction>
    577648    </xsd:simpleType>
    578649  </xsd:attribute>
    579650  <xsd:attribute name="PortCount"   type="xsd:unsignedInt" use="required"/>
    580   <xsd:attribute name="bootable"    type="xsd:boolean"     use="optional"/>
     651  <xsd:attribute name="useHostIOCache" type="xsd:boolean"  use="optional" default="true"/>
     652  <xsd:attribute name="Bootable"    type="xsd:boolean"     use="optional"/>
    581653  <xsd:attribute name="PCIBus"      type="xsd:unsignedInt" use="optional"/>
    582654  <xsd:attribute name="PCIDevice"   type="xsd:unsignedInt" use="optional"/>
     
    588660</xsd:complexType>
    589661
     662<xsd:complexType name="TSATAController"> <!-- deprecated -->
     663  <xsd:sequence>
     664    <xsd:element name="AttachedDevice" type="TStorageControllerDevice"
     665                 minOccurs="0" maxOccurs="unbounded"/>
     666  </xsd:sequence>
     667  <xsd:attribute name="enabled"     type="xsd:boolean"     default="false"/>
     668  <xsd:attribute name="PortCount"   type="xsd:unsignedInt" use="required"/>
     669  <xsd:attribute name="IDE0MasterEmulationPort" type="xsd:unsignedInt" use="optional"/>
     670  <xsd:attribute name="IDE0SlaveEmulationPort"  type="xsd:unsignedInt" use="optional"/>
     671  <xsd:attribute name="IDE1MasterEmulationPort" type="xsd:unsignedInt" use="optional"/>
     672  <xsd:attribute name="IDE1SlaveEmulationPort"  type="xsd:unsignedInt" use="optional"/>
     673</xsd:complexType>
     674
    590675<xsd:complexType name="TStorageControllers">
    591676  <xsd:sequence>
    592677    <xsd:element name="StorageController" type="TStorageController"
     678                 minOccurs="0" maxOccurs="unbounded"/>
     679  </xsd:sequence>
     680</xsd:complexType>
     681
     682<xsd:complexType name="THardDiskAttachment">
     683  <xsd:attribute name="hardDisk" type="TNonNullUUID"/>
     684  <xsd:attribute name="bus" default="IDE">
     685    <xsd:simpleType>
     686      <xsd:restriction base="xsd:token">
     687        <xsd:enumeration value="IDE"/>
     688        <xsd:enumeration value="SATA"/>
     689      </xsd:restriction>
     690    </xsd:simpleType>
     691  </xsd:attribute>
     692  <xsd:attribute name="channel" type="xsd:unsignedInt" default="0"/>
     693  <xsd:attribute name="device" type="xsd:unsignedInt" default="0"/>
     694</xsd:complexType>
     695
     696<xsd:complexType name="THardDiskAttachments"> <!-- deprecated -->
     697  <xsd:sequence>
     698    <xsd:element name="HardDiskAttachment" type="THardDiskAttachment"
    593699                 minOccurs="0" maxOccurs="unbounded"/>
    594700  </xsd:sequence>
     
    620726</xsd:complexType>
    621727
    622 <xsd:complexType name="TAudioAdapterBase">
     728<xsd:complexType name="TAudioAdapter">
    623729  <xsd:attribute name="enabled" type="xsd:boolean" use="required"/>
    624730  <xsd:attribute name="controller" default="AC97">
     
    627733        <xsd:enumeration value="AC97"/>
    628734        <xsd:enumeration value="SB16"/>
    629       </xsd:restriction>
    630     </xsd:simpleType>
    631   </xsd:attribute>
     735        <xsd:enumeration value="HDA"/>
     736      </xsd:restriction>
     737    </xsd:simpleType>
     738  </xsd:attribute>
     739  <xsd:attribute name="driver" use="required">
     740    <xsd:simpleType>
     741      <xsd:restriction base="xsd:token">
     742        <xsd:enumeration value="null"/> <!-- deprecated -->
     743        <xsd:enumeration value="Null"/> <!-- all platforms -->
     744        <xsd:enumeration value="OSS"/> <!-- Linux, Solaris, FreeBSD -->
     745        <xsd:enumeration value="ALSA"/> <!-- Linux, FreeBSD -->
     746        <xsd:enumeration value="Pulse"/> <!-- Linux -->
     747        <xsd:enumeration value="CoreAudio"/> <!-- Mac OS X -->
     748        <xsd:enumeration value="MMPM"/> <!-- OS/2 -->
     749        <xsd:enumeration value="SolAudio"/> <!-- Solaris -->
     750        <xsd:enumeration value="WinMM"/> <!-- Windows -->
     751        <xsd:enumeration value="DirectSound"/> <!-- Windows -->
     752      </xsd:restriction>
     753    </xsd:simpleType>
     754  </xsd:attribute>
     755</xsd:complexType>
     756
     757<xsd:complexType name="TNetNAT">
     758  <xsd:choice minOccurs="0" maxOccurs="unbounded">
     759    <xsd:element name="DNS" minOccurs="0">
     760      <xsd:complexType>
     761        <xsd:attribute name="pass-domain" type="xsd:boolean" default="true"/>
     762        <xsd:attribute name="use-proxy" type="xsd:boolean" default="false"/>
     763        <xsd:attribute name="use-host-resolver" type="xsd:boolean" default="false"/>
     764      </xsd:complexType>
     765    </xsd:element>
     766    <xsd:element name="Alias" minOccurs="0">
     767      <xsd:complexType>
     768        <xsd:attribute name="logging" type="xsd:boolean" default="false"/>
     769        <xsd:attribute name="proxy-only" type="xsd:boolean" default="false"/>
     770        <xsd:attribute name="use-same-ports" type="xsd:boolean" default="false"/>
     771      </xsd:complexType>
     772    </xsd:element>
     773    <xsd:element name="TFTP" minOccurs="0">
     774      <xsd:complexType>
     775        <xsd:attribute name="prefix" type="xsd:string"/>
     776        <xsd:attribute name="boot-file" type="xsd:string"/>
     777        <xsd:attribute name="next-server" type="xsd:string"/>
     778      </xsd:complexType>
     779    </xsd:element>
     780    <xsd:element name="Forwarding" minOccurs="0" maxOccurs="unbounded">
     781      <xsd:complexType>
     782        <xsd:attribute name="name" type="xsd:string"/>
     783        <xsd:attribute name="proto" type="xsd:unsignedInt"/>
     784        <xsd:attribute name="hostip" type="xsd:string"/>
     785        <xsd:attribute name="hostport" type="xsd:unsignedInt"/>
     786        <xsd:attribute name="guestip" type="xsd:string"/>
     787        <xsd:attribute name="guestport" type="xsd:unsignedInt"/>
     788      </xsd:complexType>
     789    </xsd:element>
     790  </xsd:choice>
     791  <xsd:attribute name="network" type="xsd:string"/>
     792  <xsd:attribute name="hostip" type="xsd:string"/>
     793  <xsd:attribute name="mtu" type="xsd:unsignedInt"/>
     794  <xsd:attribute name="sockrcv" type="xsd:unsignedInt"/>
     795  <xsd:attribute name="socksnd" type="xsd:unsignedInt"/>
     796  <xsd:attribute name="tcprcv" type="xsd:unsignedInt"/>
     797  <xsd:attribute name="tcpsnd" type="xsd:unsignedInt"/>
     798</xsd:complexType>
     799
     800<xsd:complexType name="TNetBridged">
     801  <xsd:attribute name="name" type="xsd:string" use="required"/>
     802</xsd:complexType>
     803
     804<xsd:complexType name="TNetInternal">
     805  <xsd:attribute name="name" type="xsd:string" use="required"/>
     806</xsd:complexType>
     807
     808<xsd:complexType name="TNetHostOnly">
     809  <xsd:attribute name="name" type="xsd:string" use="required"/>
     810</xsd:complexType>
     811
     812<xsd:complexType name="TNetGeneric">
     813  <xsd:sequence>
     814    <xsd:element name="Property" type="TProperty" minOccurs="0" maxOccurs="unbounded"/>
     815  </xsd:sequence>
     816  <xsd:attribute name="driver" type="xsd:string" use="required"/>
     817</xsd:complexType>
     818
     819<xsd:complexType name="TNetworkConfig">
     820  <xsd:choice maxOccurs="2">
     821    <xsd:choice minOccurs="0">
     822      <xsd:element name="NAT" type="TNetNAT"/>
     823      <xsd:element name="HostInterface" type="TNetBridged"/>
     824      <xsd:element name="BridgedInterface" type="TNetBridged"/>
     825      <xsd:element name="InternalNetwork" type="TNetInternal"/>
     826      <xsd:element name="HostOnlyInterface" type="TNetHostOnly"/>
     827      <xsd:element name="GenericInterface" type="TNetGeneric"/>
     828    </xsd:choice>
     829    <xsd:element name="DisabledModes">
     830      <xsd:complexType>
     831        <xsd:all>
     832          <xsd:element name="NAT" type="TNetNAT" minOccurs="0"/>
     833          <xsd:element name="HostInterface" type="TNetBridged" minOccurs="0"/>
     834          <xsd:element name="BridgedInterface" type="TNetBridged" minOccurs="0"/>
     835          <xsd:element name="InternalNetwork" type="TNetInternal" minOccurs="0"/>
     836          <xsd:element name="HostOnlyInterface" type="TNetHostOnly" minOccurs="0"/>
     837          <xsd:element name="GenericInterface" type="TNetGeneric" minOccurs="0"/>
     838        </xsd:all>
     839      </xsd:complexType>
     840    </xsd:element>
     841  </xsd:choice>
    632842</xsd:complexType>
    633843
    634844<xsd:complexType name="TNetworkAdapter">
    635   <xsd:choice minOccurs="0">
    636     <xsd:element name="NAT">
    637       <xsd:complexType>
    638         <xsd:attribute name="network" type="xsd:string"/>
    639       </xsd:complexType>
    640       <xsd:complexType>
    641         <xsd:attribute name="hostip" type="xsd:string"/>
    642       </xsd:complexType>
    643       <xsd:complexType>
    644         <xsd:attribute name="mtu" type="xsd:unsignedInt"/>
    645       </xsd:complexType>
    646       <xsd:complexType>
    647         <xsd:attribute name="sockrcv" type="xsd:unsignedInt"/>
    648       </xsd:complexType>
    649       <xsd:complexType>
    650         <xsd:attribute name="socksnd" type="xsd:unsignedInt"/>
    651       </xsd:complexType>
    652       <xsd:complexType>
    653         <xsd:attribute name="tcprcv" type="xsd:unsignedInt"/>
    654       </xsd:complexType>
    655       <xsd:complexType>
    656         <xsd:attribute name="tcpsnd" type="xsd:unsignedInt"/>
    657       </xsd:complexType>
    658       <xsd:element name="DNS">
    659         <xsd:complexType>
    660           <xsd:attribute name="pass-domain" type="xsd:boolean"/>
    661         </xsd:complexType>
    662         <xsd:complexType>
    663           <xsd:attribute name="use-proxy" type="xsd:boolean"/>
    664         </xsd:complexType>
    665         <xsd:complexType>
    666           <xsd:attribute name="use-host-resolver" type="xsd:boolean"/>
    667         </xsd:complexType>
    668       </xsd:element>
    669       <xsd:element name="TFTP">
    670         <xsd:complexType>
    671           <xsd:attribute name="prefix" type="xsd:string"/>
    672         </xsd:complexType>
    673         <xsd:complexType>
    674           <xsd:attribute name="boot-file" type="xsd:string"/>
    675         </xsd:complexType>
    676         <xsd:complexType>
    677           <xsd:attribute name="next-server" type="xsd:string"/>
    678         </xsd:complexType>
    679       </xsd:element>
    680       <xsd:element name="Forwarding">
    681         <xsd:complexType>
    682           <xsd:attribute name="name" type="xsd:string"/>
    683         </xsd:complexType>
    684         <xsd:complexType>
    685           <xsd:attribute name="proto" type="xsd:unsignedInt"/>
    686         </xsd:complexType>
    687         <xsd:complexType>
    688           <xsd:attribute name="hostip" type="xsd:string"/>
    689         </xsd:complexType>
    690         <xsd:complexType>
    691           <xsd:attribute name="hostport" type="xsd:unsignedInt"/>
    692         </xsd:complexType>
    693         <xsd:complexType>
    694           <xsd:attribute name="guestip" type="xsd:string"/>
    695         </xsd:complexType>
    696         <xsd:complexType>
    697           <xsd:attribute name="guestport" type="xsd:unsignedInt"/>
    698         </xsd:complexType>
    699       </xsd:element>
    700     </xsd:element>
    701     <xsd:element name="HostInterface">
    702       <xsd:complexType>
    703         <xsd:attribute name="name" type="xsd:string" use="required"/>
    704       </xsd:complexType>
    705     </xsd:element>
    706     <xsd:element name="BridgedInterface">
    707       <xsd:complexType>
    708         <xsd:attribute name="name" type="xsd:string" use="required"/>
    709       </xsd:complexType>
    710     </xsd:element>
    711     <xsd:element name="InternalNetwork">
    712       <xsd:complexType>
    713         <xsd:attribute name="name" type="xsd:string" use="required"/>
    714       </xsd:complexType>
    715     </xsd:element>
    716     <xsd:element name="HostOnlyInterface">
    717       <xsd:complexType>
    718         <xsd:attribute name="name" type="xsd:string" use="required"/>
    719       </xsd:complexType>
    720     </xsd:element>
    721     <xsd:element name="Generic">
    722       <xsd:complexType>
    723         <xsd:attribute name="driver" type="xsd:string" use="required"/>
    724       </xsd:complexType>
    725       <xsd:element name="Property" minOccurs="0" maxOccurs="unbounded">
    726         <xsd:complexType>
    727           <xsd:attribute name="name" type="xsd:token" use="required"/>
    728           <xsd:attribute name="value" type="xsd:string" use="required"/>
    729         </xsd:complexType>
    730       </xsd:element>
    731     </xsd:element>
    732     <!-- The DisabledModes tag is not part of this XSD file right now. -->
    733   </xsd:choice>
    734   <xsd:attribute name="type" type="TNetworkAdapterType" default="Am79C970A"/>
    735   <xsd:attribute name="slot" type="xsd:unsignedInt" use="required"/>
    736   <xsd:attribute name="enabled" type="xsd:boolean" use="required"/>
    737   <xsd:attribute name="MACAddress">
    738     <xsd:simpleType>
    739       <xsd:restriction base="xsd:hexBinary">
    740         <xsd:pattern value="[0-9A-Fa-f][02468ACEace][0-9A-Fa-f]{10}"/>
    741       </xsd:restriction>
    742     </xsd:simpleType>
    743   </xsd:attribute>
    744   <xsd:attribute name="cable" type="xsd:boolean" use="required"/>
    745   <xsd:attribute name="speed" type="xsd:unsignedInt" default="1000000"/>
    746   <xsd:attribute name="trace" type="xsd:boolean" default="false"/>
    747   <xsd:attribute name="tracefile" type="xsd:string"/>
    748   <xsd:attribute name="bandwidthGroup" type="xsd:string"/>
     845  <xsd:complexContent>
     846    <xsd:extension base="TNetworkConfig">
     847      <xsd:attribute name="type" type="TNetworkAdapterType" default="Am79C970A"/>
     848      <xsd:attribute name="slot" type="xsd:unsignedInt" use="required"/>
     849      <xsd:attribute name="enabled" type="xsd:boolean" use="required"/>
     850      <xsd:attribute name="MACAddress">
     851        <xsd:simpleType>
     852          <xsd:restriction base="xsd:hexBinary">
     853            <xsd:pattern value="[0-9A-Fa-f][02468ACEace][0-9A-Fa-f]{10}"/>
     854          </xsd:restriction>
     855        </xsd:simpleType>
     856      </xsd:attribute>
     857      <xsd:attribute name="cable" type="xsd:boolean" use="required"/>
     858      <xsd:attribute name="speed" type="xsd:unsignedInt" default="1000000"/>
     859      <xsd:attribute name="bootPriority" type="xsd:unsignedInt"/>
     860      <xsd:attribute name="trace" type="xsd:boolean" default="false"/>
     861      <xsd:attribute name="tracefile" type="xsd:string"/>
     862      <xsd:attribute name="bandwidthGroup" type="xsd:string"/>
     863    </xsd:extension>
     864  </xsd:complexContent>
    749865</xsd:complexType>
    750866
     
    780896</xsd:complexType>
    781897
     898<xsd:complexType name="TUartPort"> <!-- deprecated -->
     899  <xsd:attribute name="slot" use="required">
     900    <xsd:simpleType>
     901      <xsd:restriction base="xsd:unsignedInt">
     902        <xsd:minInclusive value="0"/>
     903        <xsd:maxExclusive value="2"/>
     904      </xsd:restriction>
     905    </xsd:simpleType>
     906  </xsd:attribute>
     907  <xsd:attribute name="enabled" type="xsd:boolean" use="required"/>
     908  <xsd:attribute name="IRQ" type="TUInt8" use="required"/>
     909  <xsd:attribute name="IOBase" type="TUInt16HexNoBase" use="required"/>
     910  <xsd:attribute name="hostMode" type="TPortMode" use="required"/>
     911  <xsd:attribute name="path" type="TLocalFile"/>
     912  <xsd:attribute name="server" type="xsd:boolean" default="false"/>
     913</xsd:complexType>
     914
     915<xsd:complexType name="TUart"> <!-- deprecated -->
     916  <xsd:sequence>
     917    <xsd:element name="Port" type="TUartPort"
     918                 minOccurs="0" maxOccurs="unbounded"/>
     919  </xsd:sequence>
     920</xsd:complexType>
     921
    782922<xsd:complexType name="TLPTPort">
    783923  <xsd:attribute name="slot" use="required">
     
    802942</xsd:complexType>
    803943
     944<xsd:complexType name="TLptPort"> <!-- deprecated -->
     945  <xsd:attribute name="slot" use="required">
     946    <xsd:simpleType>
     947      <xsd:restriction base="xsd:unsignedInt">
     948        <xsd:minInclusive value="0"/>
     949        <xsd:maxExclusive value="2"/>
     950      </xsd:restriction>
     951    </xsd:simpleType>
     952  </xsd:attribute>
     953  <xsd:attribute name="enabled" type="xsd:boolean" use="required"/>
     954  <xsd:attribute name="IRQ" type="TUInt8" use="required"/>
     955  <xsd:attribute name="IOBase" type="TUInt16HexNoBase" use="required"/>
     956  <xsd:attribute name="path" type="TLocalFile"/>
     957</xsd:complexType>
     958
     959<xsd:complexType name="TLpt">
     960  <xsd:sequence>
     961    <xsd:element name="Port" type="TLptPort"
     962                 minOccurs="0" maxOccurs="unbounded"/>
     963  </xsd:sequence>
     964</xsd:complexType>
     965
     966<xsd:complexType name="TRTC">
     967  <xsd:attribute name="localOrUTC" type="TLocalOrUTC" use="required"/>
     968</xsd:complexType>
     969
    804970<xsd:complexType name="TSharedFolder">
    805971  <xsd:attribute name="name" type="TNonEmptyString" use="required"/>
    806972  <xsd:attribute name="hostPath" type="TLocalFile" use="required"/>
    807973  <xsd:attribute name="writable" type="xsd:boolean" default="true"/>
     974  <xsd:attribute name="autoMount" type="xsd:boolean" default="false"/>
    808975</xsd:complexType>
    809976
     
    822989</xsd:complexType>
    823990
     991<xsd:complexType name="TIoCache">
     992  <xsd:attribute name="enabled" type="xsd:boolean" default="true"/>
     993  <xsd:attribute name="size" type="xsd:unsignedLong"/>
     994</xsd:complexType>
     995
     996<xsd:complexType name="TBandwidthGroup">
     997  <xsd:attribute name="name" type="xsd:token" use="required"/>
     998  <xsd:attribute name="type" type="TBandwidthGroupType" use="required"/>
     999  <xsd:attribute name="maxBytesPerSec" type="xsd:unsignedLong"/>
     1000  <xsd:attribute name="maxMbPerSec" type="xsd:unsignedLong"/>
     1001</xsd:complexType>
     1002
     1003<xsd:complexType name="TBandwidthGroups">
     1004  <xsd:sequence>
     1005    <xsd:element name="BandwidthGroup" type="TBandwidthGroup" minOccurs="0" maxOccurs="unbounded"/>
     1006  </xsd:sequence>
     1007</xsd:complexType>
     1008
     1009<xsd:complexType name="TIO">
     1010  <xsd:sequence>
     1011    <xsd:element name="IoCache" type="TIoCache" minOccurs="0"/>
     1012    <xsd:element name="BandwidthGroups" type="TBandwidthGroups" minOccurs="0"/>
     1013  </xsd:sequence>
     1014</xsd:complexType>
     1015
     1016<xsd:complexType name="THostPciDevice">
     1017  <xsd:attribute name="host" type="xsd:unsignedInt" use="required"/>
     1018  <xsd:attribute name="guest" type="xsd:unsignedInt" use="required"/>
     1019  <xsd:attribute name="name" type="xsd:token"/>
     1020</xsd:complexType>
     1021
     1022<xsd:complexType name="THostPciDevices">
     1023  <xsd:sequence>
     1024    <xsd:element name="Device" type="THostPciDevice" minOccurs="0" maxOccurs="unbounded"/>
     1025  </xsd:sequence>
     1026</xsd:complexType>
     1027
     1028<xsd:complexType name="THostPci">
     1029  <xsd:sequence>
     1030    <xsd:element name="Devices" type="THostPciDevices" minOccurs="0"/>
     1031  </xsd:sequence>
     1032</xsd:complexType>
     1033
     1034<xsd:complexType name="TCardReader">
     1035  <xsd:attribute name="enabled" type="xsd:boolean" default="false"/>
     1036</xsd:complexType>
     1037
     1038<xsd:complexType name="TWebcam">
     1039  <xsd:attribute name="enabled" type="xsd:boolean" default="false"/>
     1040</xsd:complexType>
     1041
     1042<xsd:complexType name="TEmulatedUSB">
     1043  <xsd:sequence>
     1044    <xsd:element name="CardReader" type="TCardReader" minOccurs="0"/>
     1045    <xsd:element name="Webcam" type="TWebcam" minOccurs="0"/>
     1046  </xsd:sequence>
     1047</xsd:complexType>
     1048
    8241049<xsd:complexType name="TGuest">
    8251050  <xsd:attribute name="memoryBalloonSize"        type="xsd:unsignedInt" default="0"/>
     1051  <xsd:attribute name="MemoryBalloonSize"        type="xsd:unsignedInt" default="0"/> <!-- deprecated -->
    8261052  <xsd:attribute name="statisticsUpdateInterval" type="xsd:unsignedInt" default="0"/>
     1053  <xsd:attribute name="StatisticsUpdateInterval" type="xsd:unsignedInt" default="0"/> <!-- deprecated -->
    8271054</xsd:complexType>
    8281055
     
    8501077    </xsd:simpleType>
    8511078  </xsd:attribute>
     1079  <xsd:attribute name="PageFusion" type="xsd:boolean" default="false"/>
     1080</xsd:complexType>
     1081
     1082<xsd:complexType name="TFirmware">
     1083  <xsd:attribute name="type" use="required">
     1084    <xsd:simpleType>
     1085      <xsd:restriction base="xsd:token">
     1086        <xsd:enumeration value="BIOS"/>
     1087        <xsd:enumeration value="EFI"/>
     1088        <xsd:enumeration value="EFI32"/>
     1089        <xsd:enumeration value="EFI64"/>
     1090        <xsd:enumeration value="EFIDUAL"/>
     1091      </xsd:restriction>
     1092    </xsd:simpleType>
     1093  </xsd:attribute>
     1094</xsd:complexType>
     1095
     1096<xsd:complexType name="THID">
     1097  <xsd:attribute name="Pointing" use="required">
     1098    <xsd:simpleType>
     1099      <xsd:restriction base="xsd:token">
     1100        <xsd:enumeration value="USBMouse"/>
     1101        <xsd:enumeration value="USBTablet"/>
     1102        <xsd:enumeration value="PS2Mouse"/>
     1103        <xsd:enumeration value="ComboMouse"/>
     1104      </xsd:restriction>
     1105    </xsd:simpleType>
     1106  </xsd:attribute>
     1107  <xsd:attribute name="Keyboard" use="required">
     1108    <xsd:simpleType>
     1109      <xsd:restriction base="xsd:token">
     1110        <xsd:enumeration value="USBKeyboard"/>
     1111        <xsd:enumeration value="PS2Keyboard"/>
     1112        <xsd:enumeration value="ComboKeyboard"/>
     1113      </xsd:restriction>
     1114    </xsd:simpleType>
     1115  </xsd:attribute>
     1116</xsd:complexType>
     1117
     1118<xsd:complexType name="THPET">
     1119  <xsd:attribute name="enabled" type="xsd:boolean" default="false"/>
     1120</xsd:complexType>
     1121
     1122<xsd:complexType name="TChipset">
     1123  <xsd:attribute name="type" use="required">
     1124    <xsd:simpleType>
     1125      <xsd:restriction base="xsd:token">
     1126        <xsd:enumeration value="PIIX3"/>
     1127        <xsd:enumeration value="ICH9"/>
     1128      </xsd:restriction>
     1129    </xsd:simpleType>
     1130  </xsd:attribute>
     1131</xsd:complexType>
     1132
     1133<xsd:complexType name="TTeleporter">
     1134  <xsd:attribute name="enabled" type="xsd:boolean" default="false"/>
     1135  <xsd:attribute name="port" type="xsd:unsignedShort"/>
     1136  <xsd:attribute name="address" type="xsd:string"/>
     1137  <xsd:attribute name="password" type="xsd:string"/>
     1138</xsd:complexType>
     1139
     1140<xsd:complexType name="TFaultTolerance">
     1141  <xsd:attribute name="state" use="required">
     1142    <xsd:simpleType>
     1143      <xsd:restriction base="xsd:token">
     1144        <xsd:enumeration value="inactive"/>
     1145        <xsd:enumeration value="master"/>
     1146        <xsd:enumeration value="standby"/>
     1147      </xsd:restriction>
     1148    </xsd:simpleType>
     1149  </xsd:attribute>
     1150  <xsd:attribute name="port" type="xsd:unsignedShort"/>
     1151  <xsd:attribute name="address" type="xsd:string"/>
     1152  <xsd:attribute name="interval" type="xsd:unsignedInt"/>
     1153  <xsd:attribute name="password" type="xsd:string"/>
    8521154</xsd:complexType>
    8531155
     
    8561158    <xsd:element name="CPU" type="TCPU" minOccurs="0"/>
    8571159    <xsd:element name="Memory" type="TMemory"/>
     1160    <xsd:element name="Firmware" type="TFirmware" minOccurs="0"/>
     1161    <xsd:element name="HID" type="THID" minOccurs="0"/>
     1162    <xsd:element name="HPET" type="THPET" minOccurs="0"/>
     1163    <xsd:element name="Chipset" type="TChipset" minOccurs="0"/>
    8581164    <xsd:element name="Boot" type="TBoot">
    8591165      <xsd:unique name="THardware-Boot-Order">
     
    8631169    </xsd:element>
    8641170    <xsd:element name="Display" type="TDisplay"/>
     1171    <xsd:element name="VideoRecording" type="TVideoRecording" minOccurs="0"/>
    8651172    <xsd:element name="RemoteDisplay" type="TRemoteDisplay" minOccurs="0"/>
    8661173    <xsd:element name="BIOS" type="TBIOS"/>
    867     <xsd:element name="DVDDrive" type="TDVDDrive"/>
    868     <xsd:element name="FloppyDrive" type="TFloppyDrive"/>
     1174    <xsd:element name="DVDDrive" type="TDVDDrive" minOccurs="0"/>
     1175    <xsd:element name="FloppyDrive" type="TFloppyDrive" minOccurs="0"/>
    8691176    <xsd:element name="USBController" type="TUSBController"/>
     1177    <xsd:element name="SATAController" type="TSATAController" minOccurs="0"/> <!-- deprecated -->
    8701178    <xsd:element name="Network" type="TNetwork">
    8711179      <xsd:unique name="THardware-Network-Adapter">
     
    8741182      </xsd:unique>
    8751183    </xsd:element>
    876     <xsd:element name="UART" type="TUART">
     1184    <xsd:element name="UART" type="TUART" minOccurs="0">
    8771185      <xsd:unique name="THardware-UART-Port">
    8781186        <xsd:selector xpath="vb:Port"/>
     
    8801188      </xsd:unique>
    8811189    </xsd:element>
    882     <xsd:element name="LPT" type="TLPT">
     1190    <xsd:element name="Uart" type="TUart" minOccurs="0"> <!-- deprecated -->
     1191      <xsd:unique name="THardware-Uart-Port">
     1192        <xsd:selector xpath="vb:Port"/>
     1193        <xsd:field xpath="@slot"/>
     1194      </xsd:unique>
     1195    </xsd:element>
     1196    <xsd:element name="LPT" type="TLPT" minOccurs="0">
    8831197      <xsd:unique name="THardware-LPT-Port">
    8841198        <xsd:selector xpath="vb:Port"/>
     
    8861200      </xsd:unique>
    8871201    </xsd:element>
     1202    <xsd:element name="Lpt" type="TLpt" minOccurs="0"> <!-- deprecated -->
     1203      <xsd:unique name="THardware-Lpt-Port">
     1204        <xsd:selector xpath="vb:Port"/>
     1205        <xsd:field xpath="@slot"/>
     1206      </xsd:unique>
     1207    </xsd:element>
    8881208    <xsd:element name="AudioAdapter" type="TAudioAdapter"/>
     1209    <xsd:element name="RTC" type="TRTC" minOccurs="0"/>
    8891210    <xsd:element name="SharedFolders" type="TSharedFolders">
    8901211      <xsd:unique name="THardware-SharedFolders-SharedFolder">
     
    8941215    </xsd:element>
    8951216    <xsd:element name="Clipboard" type="TClipboard"/>
    896     <xsd:element name="DragAndDrop" type="TDragAndDrop"/>
     1217    <xsd:element name="DragAndDrop" type="TDragAndDrop" minOccurs="0"/>
     1218    <xsd:element name="IO" type="TIO" minOccurs="0"/>
     1219    <xsd:element name="HostPci" type="THostPci" minOccurs="0"/>
     1220    <xsd:element name="EmulatedUSB" type="TEmulatedUSB" minOccurs="0"/>
    8971221    <xsd:element name="Guest" type="TGuest"/>
    8981222    <xsd:element name="GuestProperties" type="TGuestProperties" minOccurs="0">
     
    9061230</xsd:complexType>
    9071231
     1232<xsd:complexType name="TGroup">
     1233  <xsd:attribute name="name" type="xsd:string" use="required"/>
     1234</xsd:complexType>
     1235
     1236<xsd:complexType name="TGroups">
     1237  <xsd:sequence>
     1238    <xsd:element name="Group" type="TGroup" minOccurs="0" maxOccurs="unbounded"/>
     1239  </xsd:sequence>
     1240</xsd:complexType>
     1241
    9081242<xsd:complexType name="TMachine">
    9091243  <xsd:all>
     1244    <xsd:element name="MediaRegistry" type="TMediaRegistry" minOccurs="0"/>
    9101245    <xsd:element name="Description" type="xsd:string" minOccurs="0"/>
     1246    <xsd:element name="Teleporter" type="TTeleporter" minOccurs="0"/>
     1247    <xsd:element name="FaultTolerance" type="TFaultTolerance" minOccurs="0"/>
    9111248    <xsd:element name="Hardware" type="THardware"/>
    912     <xsd:element name="StorageControllers" type="TStorageControllers"/>
     1249    <xsd:element name="StorageControllers" type="TStorageControllers" minOccurs="0"/>
     1250    <xsd:element name="HardDiskAttachments" type="THardDiskAttachments" minOccurs="0"/> <!-- deprecated -->
     1251    <xsd:element name="Groups" type="TGroups" minOccurs="0"/>
    9131252    <xsd:element name="ExtraData" type="TExtraData" minOccurs="0"/>
    9141253    <xsd:element name="Snapshot" type="TSnapshot" minOccurs="0"/>
     
    9161255  <xsd:attribute name="name" type="TNonEmptyString" use="required"/>
    9171256  <xsd:attribute name="nameSync" type="xsd:boolean" default="true"/>
     1257  <xsd:attribute name="directoryIncludesUUID" type="xsd:boolean" default="false"/>
    9181258  <xsd:attribute name="OSType" type="TNonEmptyString" use="required"/>
    9191259  <xsd:attribute name="uuid" type="TNonNullUUID" use="required"/>
     
    9451285</xsd:complexType>
    9461286
    947 <xsd:complexType name="TVirtualBox" abstract="true">
     1287<xsd:complexType name="TVirtualBox">
    9481288  <xsd:choice>
    9491289    <xsd:element name="Global" type="TGlobal"/>
     
    9601300    </xsd:element>
    9611301  </xsd:choice>
    962 </xsd:complexType>
     1302  <xsd:attribute name="version" type="xsd:string"/>
     1303</xsd:complexType>
     1304
     1305<!-- Root element for all VirtualBox config files -->
     1306<xsd:element name="VirtualBox" type="TVirtualBox"/>
    9631307
    9641308</xsd:schema>
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette