VirtualBox

Ignore:
Timestamp:
Oct 17, 2023 8:38:52 AM (16 months ago)
Author:
vboxsync
Message:

Main/ConsoleImpl: Move the PDM configuration out of the x86 config constructor into a separate method and make use of it from the Armv8 constructor, bugref:10528

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/src-client/ConsoleImplConfigArmV8.cpp

    r101443 r101462  
    333333         *  Load drivers in VBoxC.[so|dll]
    334334         */
    335         PCFGMNODE pPDM;
    336         PCFGMNODE pNode;
    337         PCFGMNODE pMod;
    338         InsertConfigNode(pRoot,    "PDM", &pPDM);
    339         InsertConfigNode(pPDM,     "Devices", &pNode);
    340         InsertConfigNode(pPDM,     "Drivers", &pNode);
    341         InsertConfigNode(pNode,    "VBoxC", &pMod);
    342 #ifdef VBOX_WITH_XPCOM
    343         // VBoxC is located in the components subdirectory
    344         char szPathVBoxC[RTPATH_MAX];
    345         vrc = RTPathAppPrivateArch(szPathVBoxC, RTPATH_MAX);                                VRC();
    346         vrc = RTPathAppend(szPathVBoxC, RTPATH_MAX, "/components/VBoxC");                   VRC();
    347         InsertConfigString(pMod,   "Path",  szPathVBoxC);
    348 #else
    349         InsertConfigString(pMod,   "Path",  "VBoxC");
    350 #endif
    351 
    352 
    353         /*
    354          * Block cache settings.
    355          */
    356         PCFGMNODE pPDMBlkCache;
    357         InsertConfigNode(pPDM, "BlkCache", &pPDMBlkCache);
    358 
    359         /* I/O cache size */
    360         ULONG ioCacheSize = 5;
    361         hrc = pMachine->COMGETTER(IOCacheSize)(&ioCacheSize);                               H();
    362         InsertConfigInteger(pPDMBlkCache, "CacheSize", ioCacheSize * _1M);
    363 
    364         /*
    365          * Bandwidth groups.
    366          */
    367         ComPtr<IBandwidthControl> bwCtrl;
    368 
    369         hrc = pMachine->COMGETTER(BandwidthControl)(bwCtrl.asOutParam());                   H();
    370 
    371         com::SafeIfaceArray<IBandwidthGroup> bwGroups;
    372         hrc = bwCtrl->GetAllBandwidthGroups(ComSafeArrayAsOutParam(bwGroups));              H();
    373 
    374         PCFGMNODE pAc;
    375         InsertConfigNode(pPDM, "AsyncCompletion", &pAc);
    376         PCFGMNODE pAcFile;
    377         InsertConfigNode(pAc,  "File", &pAcFile);
    378         PCFGMNODE pAcFileBwGroups;
    379         InsertConfigNode(pAcFile,  "BwGroups", &pAcFileBwGroups);
    380 #ifdef VBOX_WITH_NETSHAPER
    381         PCFGMNODE pNetworkShaper;
    382         InsertConfigNode(pPDM, "NetworkShaper",  &pNetworkShaper);
    383         PCFGMNODE pNetworkBwGroups;
    384         InsertConfigNode(pNetworkShaper, "BwGroups", &pNetworkBwGroups);
    385 #endif /* VBOX_WITH_NETSHAPER */
    386 
    387         for (size_t i = 0; i < bwGroups.size(); i++)
    388         {
    389             Bstr strName;
    390             hrc = bwGroups[i]->COMGETTER(Name)(strName.asOutParam());                       H();
    391             if (strName.isEmpty())
    392                 return pVMM->pfnVMR3SetError(pUVM, VERR_CFGM_NO_NODE, RT_SRC_POS, N_("No bandwidth group name specified"));
    393 
    394             BandwidthGroupType_T enmType = BandwidthGroupType_Null;
    395             hrc = bwGroups[i]->COMGETTER(Type)(&enmType);                                   H();
    396             LONG64 cMaxBytesPerSec = 0;
    397             hrc = bwGroups[i]->COMGETTER(MaxBytesPerSec)(&cMaxBytesPerSec);                 H();
    398 
    399             if (enmType == BandwidthGroupType_Disk)
    400             {
    401                 PCFGMNODE pBwGroup;
    402                 InsertConfigNode(pAcFileBwGroups, Utf8Str(strName).c_str(), &pBwGroup);
    403                 InsertConfigInteger(pBwGroup, "Max", cMaxBytesPerSec);
    404                 InsertConfigInteger(pBwGroup, "Start", cMaxBytesPerSec);
    405                 InsertConfigInteger(pBwGroup, "Step", 0);
    406             }
    407 #ifdef VBOX_WITH_NETSHAPER
    408             else if (enmType == BandwidthGroupType_Network)
    409             {
    410                 /* Network bandwidth groups. */
    411                 PCFGMNODE pBwGroup;
    412                 InsertConfigNode(pNetworkBwGroups, Utf8Str(strName).c_str(), &pBwGroup);
    413                 InsertConfigInteger(pBwGroup, "Max", cMaxBytesPerSec);
    414             }
    415 #endif /* VBOX_WITH_NETSHAPER */
    416         }
     335        vrc = i_configPdm(pMachine, pVMM, pUVM, pRoot);                                      VRC();
     336
    417337
    418338        /*
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