VirtualBox

Changeset 33784 in vbox for trunk/src


Ignore:
Timestamp:
Nov 4, 2010 4:50:03 PM (14 years ago)
Author:
vboxsync
Message:

Main: Added ExtPackManager to Console and implemented the Console and VirtualBox hooks.

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

Legend:

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

    r33708 r33784  
    6161#include "VMMDev.h"
    6262#include "package-generated.h"
     63#ifdef VBOX_WITH_EXTPACK
     64# include "ExtPackManagerImpl.h"
     65#endif
    6366
    6467// generated header
     
    455458    AssertComRCReturnRC(rc);
    456459
     460#ifdef VBOX_WITH_EXTPACK
     461    unconst(mptrExtPackManager).createObject();
     462    rc = mptrExtPackManager->init(NULL, false); /* Drop zone handling is VBoxSVC only. */
     463    AssertComRCReturnRC(rc);
     464#endif
     465
    457466    /* Grab global and machine shared folder lists */
    458467
     
    20752084    alock.leave();
    20762085
    2077     int vrc;
    2078     if (VMR3GetState(mpVM) == VMSTATE_CREATED)
    2079         vrc = VMR3PowerOn(mpVM); /* (PowerUpPaused) */
    2080     else
    2081         vrc = VMR3Resume(mpVM);
     2086#ifdef VBOX_WITH_EXTPACK
     2087    int vrc = mptrExtPackManager->callAllVmPowerOnHooks(this, mpVM); /** @todo called a few times too many... */
     2088#else
     2089    int vrc = VINF_SUCCESS;
     2090#endif
     2091    if (RT_SUCCESS(vrc))
     2092    {
     2093        if (VMR3GetState(mpVM) == VMSTATE_CREATED)
     2094            vrc = VMR3PowerOn(mpVM); /* (PowerUpPaused) */
     2095        else
     2096            vrc = VMR3Resume(mpVM);
     2097    }
    20822098
    20832099    HRESULT rc = RT_SUCCESS(vrc) ? S_OK :
     
    45054521        int vrc2 = VMR3Resume(pVM);
    45064522        mVMStateChangeCallbackDisabled = false;
    4507         AssertRC(vrc2);
    45084523        if (RT_FAILURE(vrc2))
    45094524        {
    45104525            /* too bad, we failed. try to sync the console state with the VMM state */
     4526            AssertLogRelRC(vrc2);
    45114527            vmstateChangeCallback(pVM, VMSTATE_SUSPENDED, enmVMState, this);
    45124528        }
     
    56285644        alock.leave();
    56295645        vrc = VMR3PowerOff(mpVM);
     5646#ifdef VBOX_WITH_EXTPACK
     5647        mptrExtPackManager->callAllVmPowerOffHooks(this, mpVM);
     5648#endif
    56305649        alock.enter();
    56315650    }
     
    75217540                        {
    75227541                            /* Start/Resume the VM execution */
    7523                             vrc = VMR3Resume(pVM);
    7524                             AssertRC(vrc);
     7542#ifdef VBOX_WITH_EXTPACK
     7543                            vrc = console->mptrExtPackManager->callAllVmPowerOnHooks(console, pVM);
     7544#endif
     7545                            if (RT_SUCCESS(vrc))
     7546                                vrc = VMR3Resume(pVM);
     7547                            AssertLogRelRC(vrc);
    75257548                        }
    75267549                    }
     
    75297552                    if (RT_FAILURE(vrc))
    75307553                    {
    7531                         int vrc2 = VMR3PowerOff(pVM);
    7532                         AssertRC(vrc2);
     7554                        int vrc2 = VMR3PowerOff(pVM); AssertLogRelRC(vrc2);
     7555#ifdef VBOX_WITH_EXTPACK
     7556                        console->mptrExtPackManager->callAllVmPowerOffHooks(console, pVM);
     7557#endif
    75337558                    }
    75347559                }
     
    75427567                    {
    75437568                        ErrorInfoKeeper eik;
    7544                         int vrc2 = VMR3PowerOff(pVM);
    7545                         AssertRC(vrc2);
     7569                        int vrc2 = VMR3PowerOff(pVM); AssertLogRelRC(vrc2);
     7570#ifdef VBOX_WITH_EXTPACK
     7571                        console->mptrExtPackManager->callAllVmPowerOffHooks(console, pVM);
     7572#endif
    75467573                    }
    75477574                }
     
    75747601
    75757602                            /* Power on the FT enabled VM. */
    7576                             vrc = FTMR3PowerOn(pVM, (task->mEnmFaultToleranceState == FaultToleranceState_Master) /* fMaster */, uInterval, pszAddress, uPort, pszPassword);
    7577                             AssertRC(vrc);
     7603#ifdef VBOX_WITH_EXTPACK
     7604                            vrc = console->mptrExtPackManager->callAllVmPowerOnHooks(console, pVM);
     7605#endif
     7606                            if (RT_SUCCESS(vrc))
     7607                                vrc = FTMR3PowerOn(pVM,
     7608                                                   task->mEnmFaultToleranceState == FaultToleranceState_Master /* fMaster */,
     7609                                                   uInterval,
     7610                                                   pszAddress,
     7611                                                   uPort,
     7612                                                   pszPassword);
     7613                            AssertLogRelRC(vrc);
    75787614                        }
    75797615                        task->mProgress->setCancelCallback(NULL, NULL);
     
    75887624                {
    75897625                    /* Power on the VM (i.e. start executing) */
    7590                     vrc = VMR3PowerOn(pVM);
    7591                     AssertRC(vrc);
     7626#ifdef VBOX_WITH_EXTPACK
     7627                    vrc = console->mptrExtPackManager->callAllVmPowerOnHooks(console, pVM);
     7628#endif
     7629                    if (RT_SUCCESS(vrc))
     7630                        vrc = VMR3PowerOn(pVM);
     7631                    AssertLogRelRC(vrc);
    75927632                }
    75937633
     
    80788118                        LogFlowFunc(("VMR3Resume (on failure)...\n"));
    80798119                        alock.leave();
    8080                         int vrc = VMR3Resume(that->mpVM);
     8120                        int vrc = VMR3Resume(that->mpVM); AssertLogRelRC(vrc);
    80818121                        alock.enter();
    8082                         AssertLogRelRC(vrc);
    80838122                        if (RT_FAILURE(vrc))
    80848123                            that->setMachineState(MachineState_Paused);
  • trunk/src/VBox/Main/ConsoleImpl2.cpp

    r33722 r33784  
    109109#include "DHCPServerRunner.h"
    110110#include "BusAssignmentManager.h"
     111#ifdef VBOX_WITH_EXTPACK
     112# include "ExtPackManagerImpl.h"
     113#endif
    111114
    112115#if defined(RT_OS_DARWIN)
     
    24752478#undef H
    24762479
    2477     /* Register VM state change handler */
     2480#ifdef VBOX_WITH_EXTPACK
     2481    /*
     2482     * Call the extension pack hooks if everything went well thus far.
     2483     */
     2484    if (RT_SUCCESS(rc))
     2485        rc = pConsole->mptrExtPackManager->callAllVmConfigureVmmHooks(pConsole, pVM);
     2486#endif
     2487
     2488    /*
     2489     * Register VM state change handler.
     2490     */
    24782491    int rc2 = VMR3AtStateRegister(pVM, Console::vmstateChangeCallback, pConsole);
    24792492    AssertRC(rc2);
     
    24812494        rc = rc2;
    24822495
    2483     /* Register VM runtime error handler */
     2496    /*
     2497     * Register VM runtime error handler.
     2498     */
    24842499    rc2 = VMR3AtRuntimeErrorRegister(pVM, Console::setVMRuntimeErrorCallback, pConsole);
    24852500    AssertRC(rc2);
     
    37933808                    {
    37943809                        int winEr = GetLastError();
    3795                         LogRel(("Console::configConstructor: DeviceIoControl failed, err (0x%x), ignoring\n", winEr));
     3810                        LogRel(("Console::configNetwork: DeviceIoControl failed, err (0x%x), ignoring\n", winEr));
    37963811                        Assert(winEr == ERROR_INVALID_PARAMETER || winEr == ERROR_NOT_SUPPORTED || winEr == ERROR_BAD_COMMAND);
    37973812                    }
     
    38103825                {
    38113826                    int winEr = GetLastError();
    3812                     AssertLogRelMsgFailed(("Console::configConstructor: CreateFile failed, err (0x%x), ignoring\n", winEr));
     3827                    AssertLogRelMsgFailed(("Console::configNetwork: CreateFile failed, err (0x%x), ignoring\n", winEr));
    38133828                }
    38143829
  • trunk/src/VBox/Main/Makefile.kmk

    r33693 r33784  
    728728# The VBoxExtPackHelperApp.
    729729#
    730 if 0 # def VBOX_WITH_EXTPACK
     730ifeq ($(LOGNAME),bird) # def VBOX_WITH_EXTPACK
    731731 PROGRAMS += VBoxExtPackHelperApp
    732732 VBoxExtPackHelperApp_TEMPLATE = VBoxR3Static
  • trunk/src/VBox/Main/VBoxExtPackHelperApp.cpp

    r33656 r33784  
    109109                                      "Usage: %s <command> [options]\n"
    110110                                      "Commands:\n"
    111                                       "    install --basepath <dir> --name <name> --tarball <tarball> --tarball-fd <fd>\n"
    112                                       "    uninstall --basepath <dir> --name <name>\n"
     111                                      "    install --base-dir <dir> --name <name> --tarball <tarball> --tarball-fd <fd>\n"
     112                                      "    uninstall --base-dir <dir> --name <name>\n"
    113113                                      , RTPathFilename(argv[0]));
    114114                            rcExit = RTEXITCODE_SUCCESS;
  • trunk/src/VBox/Main/VirtualBoxImpl.cpp

    r33770 r33784  
    12821282    if (SUCCEEDED(rc))
    12831283    {
     1284#ifdef VBOX_WITH_EXTPACK
     1285        /* call the extension pack hooks */
     1286        m->ptrExtPackManager->callAllVmCreatedHooks(machine);
     1287#endif
     1288
    12841289        /* set the return value */
    12851290        rc = machine.queryInterfaceTo(aMachine);
  • trunk/src/VBox/Main/include/ConsoleImpl.h

    r33708 r33784  
    3838class VMMDev;
    3939class Progress;
     40#ifdef VBOX_WITH_EXTPACK
     41class ExtPackManager;
     42#endif
    4043
    4144#include <VBox/RemoteDesktop/VRDE.h>
     
    603606    const ComObjPtr<VRDEServerInfo> mVRDEServerInfo;
    604607    const ComObjPtr<EventSource> mEventSource;
     608#ifdef VBOX_WITH_EXTPACK
     609    const ComObjPtr<ExtPackManager> mptrExtPackManager;
     610#endif
    605611
    606612    USBDeviceList mUSBDevices;
Note: See TracChangeset for help on using the changeset viewer.

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