diff --git a/packages/genodelabs/ports.nix b/packages/genodelabs/ports.nix index d47b73c..d966a32 100644 --- a/packages/genodelabs/ports.nix +++ b/packages/genodelabs/ports.nix @@ -32,8 +32,9 @@ with buildPackages; { stb.hash = "sha256-9LSH1i8jcEvjRAmTvgtK+Axy9hO7uiSzmSgBvs0zkTc="; stdcxx.hash = "sha256-iiE009fL1yE3XJ7HkaJakOiS++m7qONwwGrdJjBXQ7k="; virtualbox5 = { - hash = "sha256-HLga/0pHQkjdMH7mU194B7pTFJoOoww69Yii4Ixmkxo="; + hash = "sha256-mzn+cV/PriEMQV+m45e2n9w5piogmavc1qgxJVDgqQg="; nativeBuildInputs = [ iasl libxslt unzip yasm ]; + patches = [ ./vbox_main.patch.patch ]; }; x86emu.hash = "sha256-QY6OL+cDVjQ67JItP1rS4ufPRGZf43AZtWxwza/0q0w="; zlib.hash = "sha256-j3JXN0f8thrPCvLhYHIPjbGa0t3iynQ/gO7KMlgljq0="; diff --git a/packages/genodelabs/vbox_main.patch.patch b/packages/genodelabs/vbox_main.patch.patch new file mode 100644 index 0000000..517bc51 --- /dev/null +++ b/packages/genodelabs/vbox_main.patch.patch @@ -0,0 +1,905 @@ +diff --git a/repos/ports/src/virtualbox5/patches/vbox_main.patch b/repos/ports/src/virtualbox5/patches/vbox_main.patch +index f1566696a8..01e5753b5c 100644 +--- a/repos/ports/src/virtualbox5/patches/vbox_main.patch ++++ b/repos/ports/src/virtualbox5/patches/vbox_main.patch +@@ -7,7 +7,7 @@ index f0ec275..78a390e 100644 + @@ -15,6 +15,9 @@ + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + */ +- ++ + +#ifndef ____H_H_NetworkServiceRunner + +#define ____H_H_NetworkServiceRunner + + +@@ -40,7 +40,7 @@ index b0f600e..bcd6b4c 100644 + @@ -24,6 +24,8 @@ + # include "win/resource.h" + #endif +- ++ + +class GenodeConsole; + + + #ifdef RT_OS_WINDOWS +@@ -48,12 +48,12 @@ index b0f600e..bcd6b4c 100644 + #endif + @@ -122,7 +124,7 @@ private: + ComPtr mControl; +- ++ + #ifndef VBOX_COM_INPROC_API_CLIENT + - ComObjPtr mConsole; + + ComObjPtr mConsole; + #endif +- ++ + ComPtr mRemoteMachine; + diff --git a/src/app/virtualbox/src/VBox/Main/src-all/EventImpl.cpp b/src/app/virtualbox/src/VBox/Main/src-all/EventImpl.cpp + index 182f267..90b8716 100644 +@@ -68,7 +68,7 @@ index 182f267..90b8716 100644 + +// VBOX_SCRIPTABLE_IMPL(IEventListener) + { + public: +- ++ + @@ -1302,7 +1303,8 @@ public: + /* Proxy listener class, used to aggregate multiple event sources into one */ + class ATL_NO_VTABLE ProxyEventListener : +@@ -81,7 +81,7 @@ index 182f267..90b8716 100644 + public: + @@ -1349,8 +1351,9 @@ public: + }; +- ++ + class ATL_NO_VTABLE EventSourceAggregator : + - public VirtualBoxBase, + - VBOX_SCRIPTABLE_IMPL(IEventSource) +@@ -94,7 +94,7 @@ index 182f267..90b8716 100644 + @@ -1417,6 +1420,7 @@ public: + HRESULT removeProxyListener(IEventListener *aListener); + }; +- ++ + +#if 0 + #ifdef VBOX_WITH_XPCOM + NS_DECL_CLASSINFO(ProxyEventListener) +@@ -104,16 +104,16 @@ index 182f267..90b8716 100644 + NS_IMPL_THREADSAFE_ISUPPORTS1_CI(EventSourceAggregator, IEventSource) + #endif + +#endif +- +- ++ ++ + STDMETHODIMP EventSource::CreateListener(IEventListener **aListener) + diff --git a/src/app/virtualbox/src/VBox/Main/src-all/ProgressImpl.cpp b/src/app/virtualbox/src/VBox/Main/src-all/ProgressImpl.cpp + index fa3ecea..ac1a203 100644 + --- a/src/app/virtualbox/src/VBox/Main/src-all/ProgressImpl.cpp + +++ b/src/app/virtualbox/src/VBox/Main/src-all/ProgressImpl.cpp + @@ -20,9 +20,9 @@ +- +- ++ ++ + #if defined(VBOX_WITH_XPCOM) + -#include + -#include +@@ -122,7 +122,7 @@ index fa3ecea..ac1a203 100644 + +//#include + +//#include + #endif /* defined(VBOX_WITH_XPCOM) */ +- ++ + #include "ProgressImpl.h" + @@ -368,6 +370,7 @@ HRESULT Progress::i_notifyComplete(HRESULT aResultCode) + if (rc == S_OK && err) +@@ -138,16 +138,16 @@ index fa3ecea..ac1a203 100644 + } + +*/ + #endif /* !defined(VBOX_WITH_XPCOM) */ +- ++ + AssertMsg(rc == S_OK, ("Couldn't get error info (rc=%08X) while trying to set a failed result (%08X)!\n", + diff --git a/src/app/virtualbox/src/VBox/Main/src-all/VirtualBoxBase.cpp b/src/app/virtualbox/src/VBox/Main/src-all/VirtualBoxBase.cpp + index b43f5a6..6aef9df 100644 + --- a/src/app/virtualbox/src/VBox/Main/src-all/VirtualBoxBase.cpp + +++ b/src/app/virtualbox/src/VBox/Main/src-all/VirtualBoxBase.cpp + @@ -23,6 +23,7 @@ +- ++ + #include +- ++ + +#if 0 + #if !defined(VBOX_WITH_XPCOM) + #include +@@ -157,13 +157,13 @@ index b43f5a6..6aef9df 100644 + #include + #endif /* !defined(VBOX_WITH_XPCOM) */ + +#endif +- ++ + #include "VirtualBoxBase.h" + #include "AutoCaller.h" + @@ -296,6 +298,7 @@ void VirtualBoxBase::releaseCaller() + AssertMsgFailed (("mState = %d!", mState)); + } +- ++ + +#if 0 + /** + * Handles unexpected exceptions by turning them into COM errors in release +@@ -171,9 +171,9 @@ index b43f5a6..6aef9df 100644 + @@ -770,6 +773,7 @@ void VirtualBoxBase::clearError(void) + #endif + } +- ++ + +#endif /* if 0 */ +- ++ + //////////////////////////////////////////////////////////////////////////////// + // + diff --git a/src/app/virtualbox/src/VBox/Main/src-client/MouseImpl.cpp b/src/app/virtualbox/src/VBox/Main/src-client/MouseImpl.cpp +@@ -183,7 +183,7 @@ index 652f2df..877b775 100644 + @@ -816,7 +816,11 @@ HRESULT Mouse::putEventMultiTouch(LONG aCount, + } + } +- ++ + - if (SUCCEEDED(rc)) + + /* + + * Contrary to the comment of the previous if clause, the usb model +@@ -192,7 +192,7 @@ index 652f2df..877b775 100644 + + if (SUCCEEDED(rc) && cContacts) + { + rc = reportMultiTouchEventToDevice(cContacts, cContacts? pau64Contacts: NULL, (uint32_t)aScanTime); +- ++ + diff --git a/src/app/virtualbox/src/VBox/Main/src-client/SessionImpl.cpp b/src/app/virtualbox/src/VBox/Main/src-client/SessionImpl.cpp + index 6ea10d3..267be48 100644 + --- a/src/app/virtualbox/src/VBox/Main/src-client/SessionImpl.cpp +@@ -202,7 +202,7 @@ index 6ea10d3..267be48 100644 + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + */ + +#include "console.h" +- ++ + #include "SessionImpl.h" + #include "ConsoleImpl.h" + +#include "MachineImpl.h" +@@ -210,17 +210,17 @@ index 6ea10d3..267be48 100644 + +#if 0 + #include "ClientTokenHolder.h" + +#endif +- ++ + #include "AutoCaller.h" + #include "Logging.h" + @@ -329,7 +334,9 @@ STDMETHODIMP Session::AssignMachine(IMachine *aMachine, LockType_T aLockType, +- ++ + /* query IInternalMachineControl interface */ + mControl = aMachine; + +#if 0 + AssertReturn(!!mControl, E_FAIL); + +#endif +- ++ + #ifndef VBOX_COM_INPROC_API_CLIENT + HRESULT rc = mConsole.createObject(); + @@ -349,6 +356,7 @@ STDMETHODIMP Session::AssignMachine(IMachine *aMachine, LockType_T aLockType, +@@ -236,11 +236,11 @@ index 6ea10d3..267be48 100644 + rc = E_OUTOFMEMORY; + } + +#endif +- ++ + /* + * Reference the VirtualBox object to ensure the server is up + @@ -1217,12 +1226,14 @@ HRESULT Session::unlockMachine(bool aFinalRelease, bool aFromServer, AutoWriteLo +- ++ + if (mType == SessionType_WriteLock) + { + +#if 0 +@@ -249,7 +249,7 @@ index 6ea10d3..267be48 100644 + delete mClientTokenHolder; + mClientTokenHolder = NULL; + } +- ++ + +#endif + if (!aFinalRelease && !aFromServer) + { +@@ -342,17 +342,17 @@ index a717aff..3d52b9f 100644 + @@ -486,6 +486,7 @@ STDMETHODIMP VRDEServer::GetVRDEProperty(IN_BSTR aKey, BSTR *aValue) + return S_OK; + } +- ++ + +#if 0 + static int loadVRDELibrary(const char *pszLibraryName, RTLDRMOD *phmod, PFNVRDESUPPORTEDPROPERTIES *ppfn) + { + int rc = VINF_SUCCESS; + @@ -530,6 +531,7 @@ static int loadVRDELibrary(const char *pszLibraryName, RTLDRMOD *phmod, PFNVRDES +- ++ + return rc; + } + +#endif +- ++ + STDMETHODIMP VRDEServer::COMGETTER(VRDEProperties)(ComSafeArrayOut(BSTR, aProperties)) + { + @@ -584,13 +586,14 @@ STDMETHODIMP VRDEServer::COMGETTER(VRDEProperties)(ComSafeArrayOut(BSTR, aProper +@@ -370,7 +370,7 @@ index a717aff..3d52b9f 100644 + { + - const char * const *papszNames = pfn(); + + const char * const *papszNames = nullptr; //pfn(); +- ++ + if (papszNames) + { + --- a/src/app/virtualbox/include/iprt/string.h +@@ -378,14 +378,14 @@ index a717aff..3d52b9f 100644 + @@ -113,12 +113,6 @@ + RT_C_DECLS_END + #endif +- ++ + -#if (!defined(RT_OS_LINUX) || !defined(_GNU_SOURCE)) && !defined(RT_OS_FREEBSD) && !defined(RT_OS_NETBSD) + -RT_C_DECLS_BEGIN + -void *memrchr(const char *pv, int ch, size_t cb); + -RT_C_DECLS_END + -#endif + - +- ++ + /** @def RT_USE_RTC_3629 + * When defined the UTF-8 range will stop at 0x10ffff. If not defined, the + --- a/src/app/virtualbox/src/VBox/Main/include/ConsoleImpl.h +@@ -402,9 +402,9 @@ index a717aff..3d52b9f 100644 + +#endif /* if 0 */ + } + void i_enableVMMStatistics(BOOL aEnable); +- ++ + @@ -225,13 +228,13 @@ +- ++ + // callback callers (partly; for some events console callbacks are notified + // directly from IInternalSessionControl event handlers declared above) + - void i_onMousePointerShapeChange(bool fVisible, bool fAlpha, +@@ -427,25 +427,25 @@ index a717aff..3d52b9f 100644 + --- a/src/app/virtualbox/src/VBox/Main/src-client/ConsoleVRDPServer.cpp + +++ b/src/app/virtualbox/src/VBox/Main/src-client/ConsoleVRDPServer.cpp + @@ -43,7 +43,9 @@ +- ++ + #include + #include + +#if 0 + #include + +#endif + #include +- ++ + class VRDPConsoleListener + @@ -125,9 +127,11 @@ + ConsoleVRDPServer *m_server; + }; +- ++ + +#if 0 + typedef ListenerImpl VRDPConsoleListenerImpl; +- ++ + VBOX_LISTENER_DECLARE(VRDPConsoleListenerImpl) + +#endif +- ++ + #ifdef DEBUG_sunlover + #define LOGDUMPPTR Log + @@ -1344,7 +1348,7 @@ +@@ -464,12 +464,12 @@ index a717aff..3d52b9f 100644 + - + +#endif + mVRDPBindPort = -1; +- ++ + #ifndef VBOX_WITH_VRDEAUTH_IN_VBOXSVC + @@ -1395,6 +1399,7 @@ + { + Stop(); +- ++ + +#if 0 + if (mConsoleListener) + { +@@ -479,7 +479,7 @@ index a717aff..3d52b9f 100644 + mConsoleListener.setNull(); + } + +#endif +- ++ + unsigned i; + for (i = 0; i < RT_ELEMENTS(maSourceBitmaps); i++) + --- a/src/app/virtualbox/src/VBox/Main/src-server/VirtualBoxImpl.cpp +@@ -487,10 +487,10 @@ index a717aff..3d52b9f 100644 + @@ -42,7 +42,7 @@ + #include + #include +- ++ + -#include + +//#include +- ++ + #include + #include + @@ -4069,6 +4069,9 @@ +@@ -502,9 +502,9 @@ index a717aff..3d52b9f 100644 + + + AutoCaller autoCaller(this); + AssertComRCReturn(autoCaller.rc(), autoCaller.rc()); +- ++ + @@ -5044,8 +5047,8 @@ +- ++ + return rc; + #else + - NOREF(aName); +@@ -528,13 +528,13 @@ index a717aff..3d52b9f 100644 + @@ -106,9 +106,11 @@ + MY_ERR("NS_ERROR_FILE_ACCESS_DENIED", "NS_ERROR_FILE_ACCESS_DENIED", UINT32_C(0x80520015)), + MY_ERR("NS_SUCCESS_FILE_DIRECTORY_EMPTY", "NS_SUCCESS_FILE_DIRECTORY_EMPTY", UINT32_C(0x00520001)), +- ++ + +#if 0 + #if defined(VBOX) && !defined(IN_GUEST) && !defined(DOXYGEN_RUNNING) + # include "errmsgvboxcomdata.h" + #endif + +#endif +- ++ + { NULL, NULL, 0 } + #undef MY_ERR + --- a/src/app/virtualbox/src/VBox/Main/include/MachineImpl.h +@@ -545,7 +545,7 @@ index a717aff..3d52b9f 100644 + -#include "ThreadTask.h" + #endif /* VBOX_WITH_RESOURCE_USAGE_API */ + +#include "ThreadTask.h" +- ++ + // generated header + #include "SchemaDefs.h" + --- a/src/app/virtualbox/src/VBox/Main/src-server/MachineImpl.cpp +@@ -553,7 +553,7 @@ index a717aff..3d52b9f 100644 + @@ -1371,6 +1372,17 @@ + } + } +- ++ + + if (*aParavirtProvider != ParavirtProvider_None) + + { + + HRESULT rc = setError(S_OK, tr("ParavirtProvider '%s'(%d) not supported on VBox@Genode."), +@@ -576,9 +576,9 @@ index a717aff..3d52b9f 100644 + - || getObjectState().getState() == ObjectState::Limited, E_FAIL); + + AssertReturn( getObjectState().getState() == ObjectState::InInit + + || getObjectState().getState() == ObjectState::Limited, E_FAIL); +- ++ + AssertReturn(!mData->mAccessible, E_FAIL); +- ++ + @@ -13316,8 +13322,9 @@ + Assert(mData->mSession.mProgress.isNull()); + ComObjPtr progress; +@@ -591,65 +591,67 @@ index a717aff..3d52b9f 100644 + Bstr(tr("Closing session")).raw(), + FALSE /* aCancelable */); + progress.queryInterfaceTo(aProgress.asOutParam()); ++diff --git a/src/app/virtualbox/src/VBox/Main/src-client/ConsoleImpl.cpp b/src/app/virtualbox/src/VBox/Main/src-client/ConsoleImpl.cpp ++index d697cb0..6b72c17 100644 + --- a/src/app/virtualbox/src/VBox/Main/src-client/ConsoleImpl.cpp + +++ b/src/app/virtualbox/src/VBox/Main/src-client/ConsoleImpl.cpp +-@@ -75,7 +75,9 @@ +- ++@@ -79,7 +79,9 @@ ++ + #include + #include "VBox/com/ErrorInfo.h" + +#if 0 + #include + +#endif +- ++ + #include + #include +-@@ -237,6 +239,8 @@ +- {} ++@@ -260,6 +262,8 @@ public: ++ } + }; +- ++ + +#if 0 + + + // Handler for global events + //////////////////////////////////////////////////////////////////////////////// + inline static const char *networkAdapterTypeToName(NetworkAdapterType_T adapterType); +-@@ -346,6 +350,7 @@ +- ++@@ -368,6 +372,7 @@ typedef ListenerImpl VmEventListenerImpl; ++ + VBOX_LISTENER_DECLARE(VmEventListenerImpl) +- ++ + +#endif /* #if 0 */ +- ++ + // constructor / destructor + ///////////////////////////////////////////////////////////////////////////// +-@@ -512,6 +517,7 @@ ++@@ -534,6 +539,7 @@ HRESULT Console::init(IMachine *aMachine, IInternalMachineControl *aControl, Loc + rc = mDisplay->init(this); + AssertComRCReturnRC(rc); +- ++ + +#if 0 + unconst(mVRDEServerInfo).createObject(); + rc = mVRDEServerInfo->init(this); + AssertComRCReturnRC(rc); +-@@ -520,6 +526,7 @@ ++@@ -542,6 +548,7 @@ HRESULT Console::init(IMachine *aMachine, IInternalMachineControl *aControl, Loc + rc = mEmulatedUSB->init(this); + AssertComRCReturnRC(rc); +- ++ + +#endif + /* Grab global and machine shared folder lists */ +- ++ + rc = i_fetchSharedFolders(true /* aGlobal */); +-@@ -527,10 +534,12 @@ ++@@ -549,10 +556,12 @@ HRESULT Console::init(IMachine *aMachine, IInternalMachineControl *aControl, Loc + rc = i_fetchSharedFolders(false /* aGlobal */); + AssertComRCReturnRC(rc); +- ++ + +#if 0 + /* Create other child objects */ +- ++ + unconst(mConsoleVRDPServer) = new ConsoleVRDPServer(this); + AssertReturn(mConsoleVRDPServer, E_FAIL); + +#endif +- ++ + /* Figure out size of meAttachmentType vector */ + ComPtr pVirtualBox; +-@@ -558,8 +567,10 @@ ++@@ -581,8 +590,10 @@ HRESULT Console::init(IMachine *aMachine, IInternalMachineControl *aControl, Loc + || enmFirmwareType == FirmwareType_EFI64 + || enmFirmwareType == FirmwareType_EFIDUAL) + { +@@ -658,43 +660,43 @@ index a717aff..3d52b9f 100644 + AssertReturn(mNvram, E_FAIL); + +#endif + } +- ++ + #ifdef VBOX_WITH_USB_CARDREADER +-@@ -573,6 +584,7 @@ ++@@ -596,6 +607,7 @@ HRESULT Console::init(IMachine *aMachine, IInternalMachineControl *aControl, Loc + unconst(m_pKeyStore) = new SecretKeyStore(true /* fKeyBufNonPageable */); + AssertReturn(m_pKeyStore, E_FAIL); +- ++ + +#if 0 + /* VirtualBox events registration. */ + { + ComPtr pES; +-@@ -590,6 +602,7 @@ ++@@ -613,6 +625,7 @@ HRESULT Console::init(IMachine *aMachine, IInternalMachineControl *aControl, Loc + rc = pES->RegisterListener(aVmListener, ComSafeArrayAsInParam(eventTypes), true); + AssertComRC(rc); + } + +#endif + } +- ++ + /* Confirm a successful initialization when it's the case */ +-@@ -606,6 +619,7 @@ ++@@ -629,6 +642,7 @@ HRESULT Console::init(IMachine *aMachine, IInternalMachineControl *aControl, Loc + return S_OK; + } +- ++ + +#if 0 + /** + * Uninitializes the Console object. + */ +-@@ -803,6 +817,8 @@ ++@@ -803,6 +817,8 @@ void Console::uninit() + LogFlowThisFuncLeave(); + } +- ++ + +#endif /* #if 0 */ + + + #ifdef VBOX_WITH_GUEST_PROPS +- ++ + /** +-@@ -1943,8 +1959,11 @@ +- ++@@ -1974,8 +1990,11 @@ HRESULT Console::getVRDEServerInfo(ComPtr &aVRDEServerInfo) ++ + HRESULT Console::getEmulatedUSB(ComPtr &aEmulatedUSB) + { + + Assert(!"emulated USB issue!!!"); +@@ -702,44 +704,48 @@ index a717aff..3d52b9f 100644 + /* mEmulatedUSB is constant during life time, no need to lock */ + mEmulatedUSB.queryInterfaceTo(aEmulatedUSB.asOutParam()); + +#endif +- ++ + return S_OK; + } +-@@ -6614,6 +6634,7 @@ ++@@ -6712,6 +6731,7 @@ void Console::i_onStateChange(MachineState_T machineState) + fireStateChangedEvent(mEventSource, machineState); + } +- ++ + +#if 0 + void Console::i_onAdditionsStateChange() + { + AutoCaller autoCaller(this); +-@@ -6621,6 +6642,7 @@ +- ++@@ -6719,6 +6739,7 @@ void Console::i_onAdditionsStateChange() ++ + fireAdditionsStateChangedEvent(mEventSource); + } + +#endif +- ++ + /** + * @remarks This notification only is for reporting an incompatible +-@@ -6920,6 +6942,8 @@ ++@@ -7019,9 +7040,11 @@ HRESULT Console::i_consoleInitReleaseLog(const ComPtr aMachine) + } + } +- ++ + +#if 0 + + + char szError[RTPATH_MAX + 128]; + int vrc = com::VBoxLogRelCreate("VM", logFile.c_str(), +- RTLOGFLAGS_PREFIX_TIME_PROG | RTLOGFLAGS_RESTRICT_GROUPS, +-@@ -6940,6 +6964,8 @@ ++- RTLOGFLAGS_PREFIX_TIME_PROG | RTLOGFLAGS_RESTRICT_GROUPS, +++ RTLOGGRPFLAGS_FLOW | RTLOGFLAGS_PREFIX_TIME_PROG | RTLOGFLAGS_RESTRICT_GROUPS, ++ "all all.restrict -default.restrict", ++ "VBOX_RELEASE_LOG", RTLOGDEST_FILE, ++ 32768 /* cMaxEntriesPerGroup */, ++@@ -7039,6 +7062,8 @@ HRESULT Console::i_consoleInitReleaseLog(const ComPtr aMachine) + if (SUCCEEDED(hrc) || cHistoryFiles) + RTDirFlush(logDir.c_str()); +- ++ + +#endif /* if 0 */ + + + return hrc; + } +- +-@@ -6951,6 +6977,8 @@ ++ ++@@ -7050,6 +7075,8 @@ HRESULT Console::i_consoleInitReleaseLog(const ComPtr aMachine) + * @param aProgress Where to return the progress object. + * @param aPaused true if PowerUpPaused called. + */ +@@ -747,8 +753,8 @@ index a717aff..3d52b9f 100644 + + + HRESULT Console::i_powerUp(IProgress **aProgress, bool aPaused) + { +- +-@@ -7228,7 +7255,8 @@ ++ LogFlowThisFuncEnter(); ++@@ -7340,7 +7367,8 @@ HRESULT Console::i_powerUp(IProgress **aProgress, bool aPaused) + ++cOperations; + ulTotalOperationsWeight += 1; + } +@@ -758,7 +764,7 @@ index a717aff..3d52b9f 100644 + progressDesc.raw(), + TRUE, // Cancelable + cOperations, +-@@ -7240,13 +7268,15 @@ ++@@ -7352,13 +7380,15 @@ HRESULT Console::i_powerUp(IProgress **aProgress, bool aPaused) + else if ( mMachineState == MachineState_Saved + || (!fTeleporterEnabled && !fFaultToleranceSyncEnabled)) + { +@@ -776,7 +782,7 @@ index a717aff..3d52b9f 100644 + progressDesc.raw(), + TRUE /* aCancelable */, + 3 /* cOperations */, +-@@ -7256,7 +7286,8 @@ ++@@ -7368,7 +7398,8 @@ HRESULT Console::i_powerUp(IProgress **aProgress, bool aPaused) + } + else if (fFaultToleranceSyncEnabled) + { +@@ -786,15 +792,15 @@ index a717aff..3d52b9f 100644 + progressDesc.raw(), + TRUE /* aCancelable */, + 3 /* cOperations */, +-@@ -8598,6 +8631,7 @@ ++@@ -8727,6 +8758,7 @@ HRESULT Console::i_attachUSBDevice(IUSBDevice *aHostDevice, ULONG aMaskedIfs, + Address.c_str(), uuid.raw())); +- ++ + void *pvRemoteBackend = NULL; + +#if 0 + if (fRemote) + { + RemoteUSBDevice *pRemoteUSBDevice = static_cast(aHostDevice); +-@@ -8605,7 +8639,7 @@ ++@@ -8734,7 +8766,7 @@ HRESULT Console::i_attachUSBDevice(IUSBDevice *aHostDevice, ULONG aMaskedIfs, + if (!pvRemoteBackend) + return E_INVALIDARG; /* The clientId is invalid then. */ + } +@@ -803,9 +809,9 @@ index a717aff..3d52b9f 100644 + USHORT portVersion = 0; + hrc = aHostDevice->COMGETTER(PortVersion)(&portVersion); + AssertComRCReturnRC(hrc); +-@@ -8719,12 +8753,13 @@ ++@@ -8849,12 +8881,13 @@ HRESULT Console::i_detachUSBDevice(const ComObjPtr &aHostDevice) + i_setErrorStatic(hrc2, "GetRemote() failed"); +- ++ + PCRTUUID pUuid = aHostDevice->i_id().raw(); + +#if 0 + if (fRemote) +@@ -818,7 +824,7 @@ index a717aff..3d52b9f 100644 + alock.release(); + int vrc = VMR3ReqCallWaitU(ptrVM.rawUVM(), 0 /* idDstCpu (saved state, see #6232) */, + (PFNRT)i_usbDetachCallback, 5, +-@@ -8768,7 +8803,7 @@ ++@@ -8898,7 +8931,7 @@ Console::i_usbDetachCallback(Console *that, PUVM pUVM, PCRTUUID aUuid) + return vrc; + } + #endif /* VBOX_WITH_USB */ +@@ -827,40 +833,40 @@ index a717aff..3d52b9f 100644 + /* Note: FreeBSD needs this whether netflt is used or not. */ + #if ((defined(RT_OS_LINUX) && !defined(VBOX_WITH_NETFLT)) || defined(RT_OS_FREEBSD)) + /** +-@@ -9004,6 +9039,8 @@ ++@@ -9134,6 +9167,8 @@ HRESULT Console::i_detachFromTapInterface(INetworkAdapter *networkAdapter) + } + #endif /* (RT_OS_LINUX || RT_OS_FREEBSD) && !VBOX_WITH_NETFLT */ +- ++ + +#endif /* #if 0 */ + + + /** + * Called at power down to terminate host interface networking. + * +-@@ -9464,6 +9501,7 @@ ++@@ -9592,6 +9627,7 @@ void Console::i_powerUpThreadTask(VMPowerUpTask *pTask) + /* Create the VRDP server. In case of headless operation, this will + * also create the framebuffer, required at VM creation. + */ + +#if 0 + ConsoleVRDPServer *server = pConsole->i_consoleVRDPServer(); + Assert(server); +- +-@@ -9510,6 +9548,7 @@ +- vrc, errMsg.c_str())); +- throw i_setErrorStatic(E_FAIL, errMsg.c_str()); ++ ++@@ -9609,6 +9645,7 @@ void Console::i_powerUpThreadTask(VMPowerUpTask *pTask) ++ && vrc != VERR_NET_ADDRESS_IN_USE) /* not fatal */ ++ throw i_setErrorStatic(E_FAIL, errMsg.c_str()); + } + +#endif +- ++ + ComPtr pMachine = pConsole->i_machine(); + ULONG cCpus = 1; +-@@ -9534,8 +9573,10 @@ +- ++@@ -9633,8 +9670,10 @@ void Console::i_powerUpThreadTask(VMPowerUpTask *pTask) ++ + alock.acquire(); +- ++ + +#if 0 + /* Enable client connections to the server. */ + pConsole->i_consoleVRDPServer()->EnableConnections(); + +#endif +- ++ + if (RT_SUCCESS(vrc)) + { + --- a/src/app/virtualbox/src/VBox/Main/src-client/ConsoleImpl2.cpp +@@ -868,15 +874,15 @@ index a717aff..3d52b9f 100644 + @@ -128,6 +128,7 @@ + *********************************************************************************************************************************/ + static Utf8Str *GetExtraDataBoth(IVirtualBox *pVirtualBox, IMachine *pMachine, const char *pszName, Utf8Str *pStrValue); +- ++ + +#if 0 +- ++ + /* Darwin compile kludge */ + #undef PVM + @@ -135,6 +136,7 @@ + /* Comment out the following line to remove VMWare compatibility hack. */ + #define VMWARE_NET_IN_SLOT_11 +- ++ + +#endif + /** + * Translate IDE StorageControllerType_T to string representation. +@@ -884,7 +890,7 @@ index a717aff..3d52b9f 100644 + @@ -529,6 +531,7 @@ + return VINF_SUCCESS; + } +- ++ + +#if 0 + #ifdef VBOX_WITH_PCI_PASSTHROUGH + HRESULT Console::i_attachRawPCIDevices(PUVM pUVM, BusAssignmentManager *pBusMgr, PCFGMNODE pDevices) +@@ -892,15 +898,15 @@ index a717aff..3d52b9f 100644 + @@ -668,6 +671,7 @@ + } + #endif +- ++ + +#endif /* if 0 */ +- ++ + void Console::i_attachStatusDriver(PCFGMNODE pCtlInst, PPDMLED *papLeds, + uint64_t uFirst, uint64_t uLast, + @@ -1977,6 +1977,17 @@ + } + } /* for every USB controller. */ +- ++ + + extern bool use_xhci_controller(); + + if (use_xhci_controller()) { + + /* +@@ -912,7 +918,7 @@ index a717aff..3d52b9f 100644 + + InsertConfigInteger(pInst, "Trusted", 1); + + hrc = pBusMgr->assignPCIDevice("nec-xhci", pInst); H(); + + } +- ++ + /* + * Virtual USB Devices. + @@ -2625,6 +2629,7 @@ +@@ -940,17 +946,17 @@ index a717aff..3d52b9f 100644 + +#if 0 + InsertConfigInteger(pCfg, "Parallel0IoPortBase", auParallelIoPortBase[0]); + InsertConfigInteger(pCfg, "Parallel0Irq", auParallelIrq[0]); +- ++ + InsertConfigInteger(pCfg, "Parallel1IoPortBase", auParallelIoPortBase[1]); + InsertConfigInteger(pCfg, "Parallel1Irq", auParallelIrq[1]); + +#endif +- ++ + InsertConfigNode(pInst, "LUN#0", &pLunL0); + InsertConfigString(pLunL0, "Driver", "ACPIHost"); + @@ -3820,6 +3826,8 @@ + ComPtr pMedium; + hrc = pMediumAtt->COMGETTER(Medium)(pMedium.asOutParam()); H(); +- ++ + +#if 0 + + + /* +@@ -959,7 +965,7 @@ index a717aff..3d52b9f 100644 + @@ -4004,6 +4012,8 @@ + } + } +- ++ + +#endif /* if 0 */ + + + if (pMedium) +@@ -978,24 +984,24 @@ index a717aff..3d52b9f 100644 + --- a/src/app/virtualbox/src/VBox/Main/src-client/DisplayImpl.cpp + +++ b/src/app/virtualbox/src/VBox/Main/src-client/DisplayImpl.cpp + @@ -998,7 +998,9 @@ +- ++ + /* Inform the VRDP server about the change of display parameters. */ + LogRelFlowFunc(("Calling VRDP\n")); + +#if 0 + mParent->i_consoleVRDPServer()->SendResize(); + +#endif +- ++ + /* And re-send the seamless rectangles if necessary. */ + if (mfSeamlessEnabled) + @@ -1121,8 +1123,10 @@ + xOrigin, yOrigin, 0, 0); +- ++ + /* Inform the VRDP server about the change of display parameters. */ + +#if 0 + LogRelFlowFunc(("Calling VRDP\n")); + mParent->i_consoleVRDPServer()->SendResize(); + +#endif +- ++ + /* And re-send the seamless rectangles if necessary. */ + if (mfSeamlessEnabled) + @@ -1353,7 +1357,9 @@ +@@ -1007,16 +1013,16 @@ index a717aff..3d52b9f 100644 + +#endif + } + } +- ++ + @@ -2811,8 +2817,10 @@ + rc = VERR_INVALID_PARAMETER; + } +- ++ + +#if 0 + if (RT_SUCCESS(rc)) + pDisplay->mParent->i_consoleVRDPServer()->SendUpdateBitmap(aScreenId, x, y, width, height); + +#endif +- ++ + return rc; + } + @@ -3442,11 +3450,13 @@ +@@ -1031,16 +1037,16 @@ index a717aff..3d52b9f 100644 + } + +#endif + } +- ++ + #ifdef VBOX_WITH_VPX + @@ -4292,7 +4302,9 @@ + pHdrUnconst->x -= (int16_t)pFBInfo->xOrigin; + pHdrUnconst->y -= (int16_t)pFBInfo->yOrigin; +- ++ + +#if 0 + pThis->mParent->i_consoleVRDPServer()->SendUpdate(uScreenId, pHdrUnconst, (uint32_t)cbCmd); + +#endif +- ++ + *pHdrUnconst = hdrSaved; + } + @@ -4519,7 +4531,9 @@ +@@ -1071,19 +1077,19 @@ index a717aff..3d52b9f 100644 + @@ -71,6 +71,8 @@ + {"usb-ehci", 0, 11, 0, 0}, + {"usb-xhci", 0, 12, 0, 0}, +- ++ + + {"nec-xhci", 0, 29, 0, 0}, + + + /* ACPI controller */ + {"acpi", 0, 7, 0, 0}, +- ++ + --- a/src/app/virtualbox/src/VBox/Main/src-server/NATEngineImpl.cpp + +++ b/src/app/virtualbox/src/VBox/Main/src-server/NATEngineImpl.cpp + @@ -21,6 +21,7 @@ + #include "MachineImpl.h" + #include "GuestOSTypeImpl.h" +- ++ + +#include + #include + #include +- ++