settings.h revision f1301dd8b6870b5a25c7dbdd46e0a0671bb62031
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync * Settings file data structures.
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync * These structures are created by the settings file loader and filled with values
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * copied from the raw XML data. This was all new with VirtualBox 3.1 and allows us
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * to finally make the XML reader version-independent and read VirtualBox XML files
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * from earlier and even newer (future) versions without requiring complicated,
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * tedious and error-prone XSLT conversions.
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * It is this file that defines all structures that map VirtualBox global and
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * machine settings to XML files. These structures are used by the rest of Main,
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * even though this header file does not require anything else in Main.
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync * Note: Headers in Main code have been tweaked to only declare the structures
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync * defined here so that this header need only be included from code files that
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync * actually use these structures.
904810c4c6668233349b025cc58013cb7c11c701vboxsync * Copyright (C) 2007-2010 Oracle Corporation
d46ee884c41b808b239563b1978468aae12e33a2vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
d46ee884c41b808b239563b1978468aae12e33a2vboxsync * available from http://www.virtualbox.org. This file is free software;
d46ee884c41b808b239563b1978468aae12e33a2vboxsync * you can redistribute it and/or modify it under the terms of the GNU
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync * General Public License (GPL) as published by the Free Software
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync * The contents of this file may alternatively be used under the terms
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync * of the Common Development and Distribution License Version 1.0
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync * VirtualBox OSE distribution, in which case the provisions of the
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync * CDDL are applicable instead of those of the GPL.
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync * You may elect to license modified versions of this file under the
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync * terms and conditions of either the GPL or the CDDL or both.
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync////////////////////////////////////////////////////////////////////////////////
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync// Helper classes
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync////////////////////////////////////////////////////////////////////////////////
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync// ExtraDataItem (used by both VirtualBox.xml and machines XML)
d8523ff7d948462e328eec88b602effe2e7f7080vboxsynctypedef std::map<com::Utf8Str, com::Utf8Str> ExtraDataItemsMap;
d8523ff7d948462e328eec88b602effe2e7f7080vboxsynctypedef std::list<USBDeviceFilter> USBDeviceFiltersList;
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync * Common base class for both MainConfigFile and MachineConfigFile
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync * which contains some common logic for both.
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync void readExtraData(const xml::ElementNode &elmExtraData,
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync void readUSBDeviceFilters(const xml::ElementNode &elmDeviceFilters,
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync void writeExtraData(xml::ElementNode &elmParent, const ExtraDataItemsMap &me);
71e8510a26b72d539cf6d7d7157bd87a53de8cf4vboxsync void writeUSBDeviceFilters(xml::ElementNode &elmParent,
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync // prohibit copying (Data contains pointers to XML which cannot be copied)
6063286f0f0d78e627c9ef48073f5753da93ba10vboxsync////////////////////////////////////////////////////////////////////////////////
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync// Structures shared between Machine XML and VirtualBox.xml
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync////////////////////////////////////////////////////////////////////////////////
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync * USB device filter definition. This struct is used both in MainConfigFile
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync * (for global USB filters) and MachineConfigFile (for machine filters).
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync * NOTE: If you add any fields in here, you must update a) the constructor and b)
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync * the operator== which is used by MachineConfigFile::operator==(), or otherwise
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync * your settings might never get saved.
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync USBDeviceFilterAction_T action; // only used with host USB filters
d8523ff7d948462e328eec88b602effe2e7f7080vboxsync com::Utf8Str strRemote; // irrelevant for host USB objects
c09430453634ebc72695a69d12366a8fb57132e3vboxsync uint32_t ulMaskedInterfaces; // irrelevant for host USB objects
c09430453634ebc72695a69d12366a8fb57132e3vboxsync////////////////////////////////////////////////////////////////////////////////
c09430453634ebc72695a69d12366a8fb57132e3vboxsync////////////////////////////////////////////////////////////////////////////////
c09430453634ebc72695a69d12366a8fb57132e3vboxsynctypedef std::map<com::Utf8Str, com::Utf8Str> PropertiesMap;
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync // the following are for hard disks only:
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync bool fAutoReset; // optional, only for diffs, default is false
e33247bff4fddfdba92538374bcc9e2753044a38vboxsynctypedef std::list<MachineRegistryEntry> MachinesRegistry;
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync typedef enum {Error, HardDisk, DVDImage, FloppyImage} MediaType;
ee00a0b29854e7f513198772bccb6650f6dd2184vboxsync void readMedium(MediaType t, const xml::ElementNode &elmMedium, MediaList &llMedia);
ee00a0b29854e7f513198772bccb6650f6dd2184vboxsync void readMediaRegistry(const xml::ElementNode &elmMediaRegistry);
ee00a0b29854e7f513198772bccb6650f6dd2184vboxsync void readMachineRegistry(const xml::ElementNode &elmMachineRegistry);
ee00a0b29854e7f513198772bccb6650f6dd2184vboxsync void readDHCPServers(const xml::ElementNode &elmDHCPServers);
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync////////////////////////////////////////////////////////////////////////////////
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync// Machine XML structures
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync////////////////////////////////////////////////////////////////////////////////
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync * NOTE: If you add any fields in here, you must update a) the constructor and b)
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync * the operator== which is used by MachineConfigFile::operator==(), or otherwise
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync * your settings might never get saved.
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync * NOTE: If you add any fields in here, you must update a) the constructor and b)
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync * the operator== which is used by MachineConfigFile::operator==(), or otherwise
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync * your settings might never get saved.
75fb03f8c1ac60d0449d333b78ec1ef08fcc9868vboxsync * NOTE: If you add any fields in here, you must update a) the constructor and b)
75fb03f8c1ac60d0449d333b78ec1ef08fcc9868vboxsync * the operator== which is used by MachineConfigFile::operator==(), or otherwise
71626c00d9eb0b73ed7254794a6dfb000f4bb65cvboxsync * your settings might never get saved.
3933885bc0c2c93436d858a14564c6179ec72872vboxsync fDnsPassDomain(true), /* historically this value is true */
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * NOTE: If you add any fields in here, you must update a) the constructor and b)
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * the operator== which is used by MachineConfigFile::operator==(), or otherwise
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * your settings might never get saved.
cebc93936b5bb4d867e1c086dd1b206db33c31dcvboxsync // with bridged: host interface or empty;
cebc93936b5bb4d867e1c086dd1b206db33c31dcvboxsync // otherwise: network name (required)
85d78ebc068381ca25c84242e38ec4b2be4843a5vboxsynctypedef std::list<NetworkAdapter> NetworkAdaptersList;
85d78ebc068381ca25c84242e38ec4b2be4843a5vboxsync * NOTE: If you add any fields in here, you must update a) the constructor and b)
1cd59fdf671ca60c64d77e3f7046aaecf7003824vboxsync * the operator== which is used by MachineConfigFile::operator==(), or otherwise
1cd59fdf671ca60c64d77e3f7046aaecf7003824vboxsync * your settings might never get saved.
6063286f0f0d78e627c9ef48073f5753da93ba10vboxsync * NOTE: If you add any fields in here, you must update a) the constructor and b)
cebc93936b5bb4d867e1c086dd1b206db33c31dcvboxsync * the operator== which is used by MachineConfigFile::operator==(), or otherwise
c09430453634ebc72695a69d12366a8fb57132e3vboxsync * your settings might never get saved.
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync * NOTE: If you add any fields in here, you must update a) the constructor and b)
b604fbf16eda38d14b4999c245f032bfaa5aa85avboxsync * the operator== which is used by MachineConfigFile::operator==(), or otherwise
b604fbf16eda38d14b4999c245f032bfaa5aa85avboxsync * your settings might never get saved.
aa0553becec2abc2e781f839ba1d399c31c2c07fvboxsync return (this == &a)
358a99c385080f7f31166943f3ac3a2aea6b5263vboxsync * NOTE: If you add any fields in here, you must update a) the constructor and b)
d46ee884c41b808b239563b1978468aae12e33a2vboxsync * the operator== which is used by MachineConfigFile::operator==(), or otherwise
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync * your settings might never get saved.
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync * NOTE: If you add any fields in here, you must update a) the constructor and b)
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync * the operator== which is used by MachineConfigFile::operator==(), or otherwise
d46ee884c41b808b239563b1978468aae12e33a2vboxsync * your settings might never get saved.
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsynctypedef std::list<GuestProperty> GuestPropertiesList;
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsynctypedef std::map<uint32_t, DeviceType_T> BootOrderMap;
fd0cf98cb3eafc5c96b7e95d934b01c5df4785fbvboxsync * NOTE: If you add any fields in here, you must update a) the constructor and b)
fd0cf98cb3eafc5c96b7e95d934b01c5df4785fbvboxsync * the operator== which is used by MachineConfigFile::operator==(), or otherwise
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync * your settings might never get saved.
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync return ( (this == &c)
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * NOTE: If you add any fields in here, you must update a) the constructor and b)
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * the operator== which is used by MachineConfigFile::operator==(), or otherwise
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * your settings might never get saved.
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * NOTE: If you add any fields in here, you must update a) the constructor and b)
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * the operator== which is used by MachineConfigFile::operator==(), or otherwise
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * your settings might never get saved.
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * Representation of Machine hardware; this is used in the MachineConfigFile.hardwareMachine
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * NOTE: If you add any fields in here, you must update a) the constructor and b)
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync * the operator== which is used by MachineConfigFile::operator==(), or otherwise
34aaaf212fe61ccafbae15eb832d6062ba548799vboxsync * your settings might never get saved.
34aaaf212fe61ccafbae15eb832d6062ba548799vboxsync com::Utf8Str strVersion; // hardware version, optional
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync bool fCpuHotPlug; // requires settings version 1.10 (VirtualBox 3.2)
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync CpuList llCpus; // requires settings version 1.10 (VirtualBox 3.2)
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync bool fHpetEnabled; // requires settings version 1.10 (VirtualBox 3.2)
34aaaf212fe61ccafbae15eb832d6062ba548799vboxsync BootOrderMap mapBootOrder; // item 0 has highest priority
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync fAccelerate2DVideo; // requires settings version 1.8 (VirtualBox 3.1)
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync FirmwareType_T firmwareType; // requires settings version 1.9 (VirtualBox 3.1)
6e12ccc60ac657fb87e27b7a2b26e0a63bebe024vboxsync PointingHidType_T pointingHidType; // requires settings version 1.10 (VirtualBox 3.2)
6e12ccc60ac657fb87e27b7a2b26e0a63bebe024vboxsync KeyboardHidType_T keyboardHidType; // requires settings version 1.10 (VirtualBox 3.2)
6e12ccc60ac657fb87e27b7a2b26e0a63bebe024vboxsync // technically these two have no business in the hardware section, but for some
6e12ccc60ac657fb87e27b7a2b26e0a63bebe024vboxsync // clever reason <Hardware> is where they are in the XML....
af7209255033c3b77816f81ef6293ff8070ee156vboxsync IoSettings ioSettings; // requires settings version 1.10 (VirtualBox 3.2)
63b785c3291332a86a9bc473e68f08121368898bvboxsync * A device attached to a storage controller. This can either be a
63b785c3291332a86a9bc473e68f08121368898bvboxsync * hard disk or a DVD drive or a floppy drive and also specifies
63b785c3291332a86a9bc473e68f08121368898bvboxsync * which medium is "in" the drive; as a result, this is a combination
af7209255033c3b77816f81ef6293ff8070ee156vboxsync * of the Main IMedium and IMediumAttachment interfaces.
63b785c3291332a86a9bc473e68f08121368898bvboxsync * NOTE: If you add any fields in here, you must update a) the constructor and b)
63b785c3291332a86a9bc473e68f08121368898bvboxsync * the operator== which is used by MachineConfigFile::operator==(), or otherwise
63b785c3291332a86a9bc473e68f08121368898bvboxsync * your settings might never get saved.
1cd59fdf671ca60c64d77e3f7046aaecf7003824vboxsync DeviceType_T deviceType; // only HardDisk, DVD or Floppy are allowed
1cd59fdf671ca60c64d77e3f7046aaecf7003824vboxsync // DVDs can be in pass-through mode:
2dad255b092a5659ea0274b9385e2019ad040ea7vboxsync // if an image file is attached to the device (ISO, RAW, or hard disk image such as VDI),
1cd59fdf671ca60c64d77e3f7046aaecf7003824vboxsync // this is its UUID; it depends on deviceType which media registry this then needs to
1cd59fdf671ca60c64d77e3f7046aaecf7003824vboxsync // be looked up in. If no image file (only permitted for DVDs and floppies), then the UUID is NULL
2dad255b092a5659ea0274b9385e2019ad040ea7vboxsync // for DVDs and floppies, the attachment can also be a host device:
342d1c2e846281e0bcbde2e97218273216b3fb32vboxsync com::Utf8Str strHostDriveSrc; // if != NULL, value of <HostDrive>/@src
342d1c2e846281e0bcbde2e97218273216b3fb32vboxsynctypedef std::list<AttachedDevice> AttachedDevicesList;
1cd59fdf671ca60c64d77e3f7046aaecf7003824vboxsync * NOTE: If you add any fields in here, you must update a) the constructor and b)
342d1c2e846281e0bcbde2e97218273216b3fb32vboxsync * the operator== which is used by MachineConfigFile::operator==(), or otherwise
1cd59fdf671ca60c64d77e3f7046aaecf7003824vboxsync * your settings might never get saved.
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync StorageBus_T storageBus; // _SATA, _SCSI, _IDE, _SAS
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync // only for when controllerType == StorageControllerType_IntelAhci:
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsynctypedef std::list<StorageController> StorageControllersList;
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync * We wrap the storage controllers list into an extra struct so we can
2c744347b35ec425c206a25ca4095d30a12474d9vboxsync * use an undefined struct without needing std::list<> in all the headers.
c33fc49611f2444dade533488bf431e29eb88bcdvboxsync * NOTE: If you add any fields in here, you must update a) the constructor and b)
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync * the operator== which is used by MachineConfigFile::operator==(), or otherwise
1bf151411167b02ebdc6d6a18de8b97030341e1fvboxsync * your settings might never get saved.
d46ee884c41b808b239563b1978468aae12e33a2vboxsync * NOTE: If you add any fields in here, you must update a) the constructor and b)
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync * the operator== which is used by MachineConfigFile::operator==(), or otherwise
d46ee884c41b808b239563b1978468aae12e33a2vboxsync * your settings might never get saved.
5d57bcb78f1f3f918bd3daf709b551b8c2d30485vboxsync com::Utf8Str strStateFile; // for online snapshots only
1cd59fdf671ca60c64d77e3f7046aaecf7003824vboxsync * MachineConfigFile represents an XML machine configuration. All the machine settings
d46ee884c41b808b239563b1978468aae12e33a2vboxsync * that go out to the XML (or are read from it) are in here.
d70f332ce412cf75187ceda26709e58e4edc69ecvboxsync * NOTE: If you add any fields in here, you must update a) the constructor and b)
62ab017295981c81484e5a5f93ff8b5f85f7defbvboxsync * the operator== which is used by Machine::saveSettings(), or otherwise your settings
7708252d252a55417a6a817041e4356797e34255vboxsync * might never get saved.
d46ee884c41b808b239563b1978468aae12e33a2vboxsync bool fCurrentStateModified; // optional, default is true
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync RTTIMESPEC timeLastStateChange; // optional, defaults to now
d46ee884c41b808b239563b1978468aae12e33a2vboxsync SnapshotsList llFirstSnapshot; // first snapshot or empty list if there's none
fc148a6b23d25a87561beaffe0ba06c3ba93bf5avboxsync MachineConfigFile(const com::Utf8Str *pstrFilename);
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync void importMachineXML(const xml::ElementNode &elmMachine);
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync std::list<xml::ElementNode*> *pllElementsWithUuidAttributes);
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync static bool isAudioDriverAllowedOnThisHost(AudioDriverType_T drv);
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync static AudioDriverType_T getHostDefaultAudioDriver();
fc148a6b23d25a87561beaffe0ba06c3ba93bf5avboxsync void readNetworkAdapters(const xml::ElementNode &elmHardware, NetworkAdaptersList &ll);
fc148a6b23d25a87561beaffe0ba06c3ba93bf5avboxsync void readAttachedNetworkMode(const xml::ElementNode &pelmMode, bool fEnabled, NetworkAdapter &nic);
fc148a6b23d25a87561beaffe0ba06c3ba93bf5avboxsync void readCpuIdTree(const xml::ElementNode &elmCpuid, CpuIdLeafsList &ll);
fc148a6b23d25a87561beaffe0ba06c3ba93bf5avboxsync void readCpuTree(const xml::ElementNode &elmCpu, CpuList &ll);
fc148a6b23d25a87561beaffe0ba06c3ba93bf5avboxsync void readSerialPorts(const xml::ElementNode &elmUART, SerialPortsList &ll);
1e9377d042fa2ea3e2cd78805678f23f64db55f6vboxsync void readParallelPorts(const xml::ElementNode &elmLPT, ParallelPortsList &ll);
1e9377d042fa2ea3e2cd78805678f23f64db55f6vboxsync void readAudioAdapter(const xml::ElementNode &elmAudioAdapter, AudioAdapter &aa);
1e9377d042fa2ea3e2cd78805678f23f64db55f6vboxsync void readGuestProperties(const xml::ElementNode &elmGuestProperties, Hardware &hw);
1e9377d042fa2ea3e2cd78805678f23f64db55f6vboxsync void readStorageControllerAttributes(const xml::ElementNode &elmStorageController, StorageController &sctl);
051eba4436f9c682f7873390fb327e8eceb9e0efvboxsync void readHardware(const xml::ElementNode &elmHardware, Hardware &hw, Storage &strg);
051eba4436f9c682f7873390fb327e8eceb9e0efvboxsync void readHardDiskAttachments_pre1_7(const xml::ElementNode &elmHardDiskAttachments, Storage &strg);
051eba4436f9c682f7873390fb327e8eceb9e0efvboxsync void readStorageControllers(const xml::ElementNode &elmStorageControllers, Storage &strg);
f82834355e5789e35df7c244b68109be1ca6a358vboxsync void readDVDAndFloppies_pre1_9(const xml::ElementNode &elmHardware, Storage &strg);
f82834355e5789e35df7c244b68109be1ca6a358vboxsync void readSnapshot(const xml::ElementNode &elmSnapshot, Snapshot &snap);
10153a147e7cb38821b5e7404bd2ef6b9af5be4avboxsync void readMachine(const xml::ElementNode &elmMachine);
fc148a6b23d25a87561beaffe0ba06c3ba93bf5avboxsync void buildHardwareXML(xml::ElementNode &elmParent, const Hardware &hw, const Storage &strg);
fc148a6b23d25a87561beaffe0ba06c3ba93bf5avboxsync void buildNetworkXML(NetworkAttachmentType_T mode, xml::ElementNode &elmParent, const NetworkAdapter &nic);
fc148a6b23d25a87561beaffe0ba06c3ba93bf5avboxsync void buildStorageControllersXML(xml::ElementNode &elmParent,
fc148a6b23d25a87561beaffe0ba06c3ba93bf5avboxsync std::list<xml::ElementNode*> *pllElementsWithUuidAttributes);
fc148a6b23d25a87561beaffe0ba06c3ba93bf5avboxsync void buildSnapshotXML(xml::ElementNode &elmParent, const Snapshot &snap);
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsync} // namespace settings
8cd393943ea52545c4d063f5a94436639f0f80b6vboxsync#endif /* ___VBox_settings_h */