VirtualBox

Changeset 99944 in vbox


Ignore:
Timestamp:
May 23, 2023 8:35:48 PM (19 months ago)
Author:
vboxsync
Message:

Main/ConsoleImplConfigArmV8.cpp: Some additions to the config constructor to reduce the amount of CFGM keys required, bugref:10384

File:
1 edited

Legend:

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

    r99927 r99944  
    309309        InsertConfigNode(pDev,     "0",            &pInst);
    310310        InsertConfigNode(pInst,    "Config",        &pCfg);
    311         InsertConfigInteger(pCfg,  "BaseAddress", 64 * _1M);
    312         InsertConfigInteger(pCfg,  "Size",        64 * _1M);
     311        InsertConfigInteger(pCfg,  "BaseAddress",  64 * _1M);
     312        InsertConfigInteger(pCfg,  "Size",        768 * _1K);
     313        InsertConfigString(pCfg,   "FlashFile",   "nvram");
     314        /* Attach the NVRAM storage driver. */
     315        InsertConfigNode(pInst,    "LUN#0",       &pLunL0);
     316        InsertConfigString(pLunL0, "Driver",      "NvramStore");
    313317
    314318        InsertConfigNode(pDevices, "arm-pl011",     &pDev);
     
    502506                }
    503507
     508                case StorageControllerType_IntelAhci:
     509                {
     510                    InsertConfigInteger(pCtlInst, "PCIBusNo",          0);
     511                    InsertConfigInteger(pCtlInst, "PCIDeviceNo",       3);
     512                    InsertConfigInteger(pCtlInst, "PCIFunctionNo",     0);
     513
     514                    ULONG cPorts = 0;
     515                    hrc = ctrls[i]->COMGETTER(PortCount)(&cPorts);                          H();
     516                    InsertConfigInteger(pCfg, "PortCount", cPorts);
     517                    InsertConfigInteger(pCfg, "Bootable",  fBootable);
     518
     519                    com::SafeIfaceArray<IMediumAttachment> atts;
     520                    hrc = pMachine->GetMediumAttachmentsOfController(controllerName.raw(),
     521                                                                     ComSafeArrayAsOutParam(atts));  H();
     522
     523                    /* Configure the hotpluggable flag for the port. */
     524                    for (unsigned idxAtt = 0; idxAtt < atts.size(); ++idxAtt)
     525                    {
     526                        IMediumAttachment *pMediumAtt = atts[idxAtt];
     527
     528                        LONG lPortNum = 0;
     529                        hrc = pMediumAtt->COMGETTER(Port)(&lPortNum);                       H();
     530
     531                        BOOL fHotPluggable = FALSE;
     532                        hrc = pMediumAtt->COMGETTER(HotPluggable)(&fHotPluggable);          H();
     533                        if (SUCCEEDED(hrc))
     534                        {
     535                            PCFGMNODE pPortCfg;
     536                            char szName[24];
     537                            RTStrPrintf(szName, sizeof(szName), "Port%d", lPortNum);
     538
     539                            InsertConfigNode(pCfg, szName, &pPortCfg);
     540                            InsertConfigInteger(pPortCfg, "Hotpluggable", fHotPluggable ? 1 : 0);
     541                        }
     542                    }
     543                    break;
     544                }
     545                case StorageControllerType_VirtioSCSI:
     546                {
     547                    InsertConfigInteger(pCtlInst, "PCIBusNo",          0);
     548                    InsertConfigInteger(pCtlInst, "PCIDeviceNo",       3);
     549                    InsertConfigInteger(pCtlInst, "PCIFunctionNo",     0);
     550
     551                    ULONG cPorts = 0;
     552                    hrc = ctrls[i]->COMGETTER(PortCount)(&cPorts);                          H();
     553                    InsertConfigInteger(pCfg, "NumTargets", cPorts);
     554                    InsertConfigInteger(pCfg, "Bootable",   fBootable);
     555
     556                    /* Attach the status driver */
     557                    i_attachStatusDriver(pCtlInst, RT_BIT_32(DeviceType_HardDisk) | RT_BIT_32(DeviceType_DVD) /*?*/,
     558                                         cPorts, &paLedDevType, &mapMediumAttachments, pszCtrlDev, ulInstance);
     559                    break;
     560                }
     561
    504562                case StorageControllerType_LsiLogic:
    505563                case StorageControllerType_BusLogic:
    506                 case StorageControllerType_IntelAhci:
    507564                case StorageControllerType_PIIX3:
    508565                case StorageControllerType_PIIX4:
     
    511568                case StorageControllerType_LsiLogicSas:
    512569                case StorageControllerType_NVMe:
    513                 case StorageControllerType_VirtioSCSI:
     570
    514571                default:
    515572                    AssertLogRelMsgFailedReturn(("invalid storage controller type: %d\n", enmCtrlType), VERR_MAIN_CONFIG_CONSTRUCTOR_IPE);
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