VirtualBox

Changeset 64840 in vbox


Ignore:
Timestamp:
Dec 12, 2016 5:35:34 PM (8 years ago)
Author:
vboxsync
Message:

Frontend/Qt: Unify querying the storage related statistics now that the base media drivers do the accounting, removes duplicate code and avoids having to modify this area in the future in case new storage controllers are added. The IDE controller is still special because it contains the PIO transfer count which can't be resembled in the base media drivers at the moment and it has the master/slave topology no other device has

Location:
trunk/src/VBox/Frontends/VirtualBox/src
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/UIVMInfoDialog.cpp

    r63291 r64840  
    132132    CSystemProperties sp = vboxGlobal().virtualBox().GetSystemProperties();
    133133    CStorageControllerVector controllers = m_session.GetMachine().GetStorageControllers();
    134     int iIDECount = 0, iSATACount = 0, iSCSICount = 0, iUSBCount = 0, iSASCount = 0;
     134    int iIDECount = 0;
    135135    foreach (const CStorageController &controller, controllers)
    136136    {
     
    174174                break;
    175175            }
    176             case KStorageBus_SATA:
     176            default:
    177177            {
     178                /* Common code for the non IDE controllers. */
     179                uint32_t iInstance = controller.GetInstance();
     180                const char *pszCtrl = storCtrlType2Str(controller.GetControllerType());
     181
    178182                for (ULONG i = 0; i < sp.GetMaxPortCountForStorageBus(KStorageBus_SATA); ++i)
    179183                {
     
    181185                    {
    182186                        /* Names: */
    183                         m_names[QString("/Devices/SATA%1/Port%2/DMA").arg(iSATACount).arg(i)]
    184                             = tr("DMA Transfers");
    185                         m_names[QString("/Devices/SATA%1/Port%2/ReadBytes").arg(iSATACount).arg(i)]
     187                        m_names[QString("/Devices/%1%2/Port%3/ReqsSubmitted").arg(pszCtrl).arg(iInstance).arg(i)]
     188                            = tr("Requests");
     189                        m_names[QString("/Devices/%1%2/Port%3/ReadBytes").arg(pszCtrl).arg(iInstance).arg(i)]
    186190                            = tr("Data Read");
    187                         m_names[QString("/Devices/SATA%1/Port%2/WrittenBytes").arg(iSATACount).arg(i)]
     191                        m_names[QString("/Devices/%1%2/Port%3/WrittenBytes").arg(pszCtrl).arg(iInstance).arg(i)]
    188192                            = tr("Data Written");
    189193
    190194                        /* Units: */
    191                         m_units[QString("/Devices/SATA%1/Port%2/DMA").arg(iSATACount).arg(i)] = "[B]";
    192                         m_units[QString("/Devices/SATA%1/Port%2/ReadBytes").arg(iSATACount).arg(i)] = "B";
    193                         m_units[QString("/Devices/SATA%1/Port%2/WrittenBytes").arg(iSATACount).arg(i)] = "B";
     195                        m_units[QString("/Devices/%1%2/Port%3/ReqsSubmitted").arg(pszCtrl).arg(iInstance).arg(i)] = "[B]";
     196                        m_units[QString("/Devices/%1%2/Port%3/ReadBytes").arg(pszCtrl).arg(iInstance).arg(i)] = "B";
     197                        m_units[QString("/Devices/%1%2/Port%3/WrittenBytes").arg(pszCtrl).arg(iInstance).arg(i)] = "B";
    194198
    195199                        /* Belongs to: */
    196                         m_links[QString("/Devices/SATA%1/Port%2").arg(iSATACount).arg(i)] = QStringList()
    197                             << QString("/Devices/SATA%1/Port%2/DMA").arg(iSATACount).arg(i)
    198                             << QString("/Devices/SATA%1/Port%2/ReadBytes").arg(iSATACount).arg(i)
    199                             << QString("/Devices/SATA%1/Port%2/WrittenBytes").arg(iSATACount).arg(i);
     200                        m_links[QString("/Devices/%1%2/Port%3").arg(pszCtrl).arg(iInstance).arg(i)] = QStringList()
     201                            << QString("/Devices/%1%2/Port%3/ReqsSubmitted").arg(pszCtrl).arg(iInstance).arg(i)
     202                            << QString("/Devices/%1%2/Port%3/ReadBytes").arg(pszCtrl).arg(iInstance).arg(i)
     203                            << QString("/Devices/%1%2/Port%3/WrittenBytes").arg(pszCtrl).arg(iInstance).arg(i);
    200204                    }
    201205                }
    202                 ++iSATACount;
     206
    203207                break;
    204208            }
    205             case KStorageBus_SCSI:
    206             {
    207                 for (ULONG i = 0; i < sp.GetMaxPortCountForStorageBus(KStorageBus_SCSI); ++i)
    208                 {
    209                     for (ULONG j = 0; j < sp.GetMaxDevicesPerPortForStorageBus(KStorageBus_SCSI); ++j)
    210                     {
    211                         /* Names: */
    212                         m_names[QString("/Devices/SCSI%1/%2/ReadBytes").arg(iSCSICount).arg(i)]
    213                             = tr("Data Read");
    214                         m_names[QString("/Devices/SCSI%1/%2/WrittenBytes").arg(iSCSICount).arg(i)]
    215                             = tr("Data Written");
    216 
    217                         /* Units: */
    218                         m_units[QString("/Devices/SCSI%1/%2/ReadBytes").arg(iSCSICount).arg(i)] = "B";
    219                         m_units[QString("/Devices/SCSI%1/%2/WrittenBytes").arg(iSCSICount).arg(i)] = "B";
    220 
    221                         /* Belongs to: */
    222                         m_links[QString("/Devices/SCSI%1/%2").arg(iSCSICount).arg(i)] = QStringList()
    223                             << QString("/Devices/SCSI%1/%2/ReadBytes").arg(iSCSICount).arg(i)
    224                             << QString("/Devices/SCSI%1/%2/WrittenBytes").arg(iSCSICount).arg(i);
    225                     }
    226                 }
    227                 ++iSCSICount;
    228                 break;
    229             }
    230             case KStorageBus_USB:
    231             {
    232                 for (ULONG i = 0; i < sp.GetMaxPortCountForStorageBus(KStorageBus_USB); ++i)
    233                 {
    234                     for (ULONG j = 0; j < sp.GetMaxDevicesPerPortForStorageBus(KStorageBus_USB); ++j)
    235                     {
    236                         /* Names: */
    237                         m_names[QString("/Devices/USB%1/%2/ReadBytes").arg(iUSBCount).arg(i)]
    238                             = tr("Data Read");
    239                         m_names[QString("/Devices/USB%1/%2/WrittenBytes").arg(iUSBCount).arg(i)]
    240                             = tr("Data Written");
    241 
    242                         /* Units: */
    243                         m_units[QString("/Devices/USB%1/%2/ReadBytes").arg(iUSBCount).arg(i)] = "B";
    244                         m_units[QString("/Devices/USB%1/%2/WrittenBytes").arg(iUSBCount).arg(i)] = "B";
    245 
    246                         /* Belongs to: */
    247                         m_links[QString("/Devices/USB%1/%2").arg(iUSBCount).arg(i)] = QStringList()
    248                             << QString("/Devices/USB%1/%2/ReadBytes").arg(iUSBCount).arg(i)
    249                             << QString("/Devices/USB%1/%2/WrittenBytes").arg(iUSBCount).arg(i);
    250                     }
    251                 }
    252                 ++iUSBCount;
    253                 break;
    254             }
    255             case KStorageBus_SAS:
    256             {
    257                 for (ULONG i = 0; i < sp.GetMaxPortCountForStorageBus(KStorageBus_SAS); ++i)
    258                 {
    259                     for (ULONG j = 0; j < sp.GetMaxDevicesPerPortForStorageBus(KStorageBus_SAS); ++j)
    260                     {
    261                         /* Names: */
    262                         m_names[QString("/Devices/SAS%1/%2/ReadBytes").arg(iSASCount).arg(i)]
    263                             = tr("Data Read");
    264                         m_names[QString("/Devices/SAS%1/%2/WrittenBytes").arg(iSASCount).arg(i)]
    265                             = tr("Data Written");
    266 
    267                         /* Units: */
    268                         m_units[QString("/Devices/SAS%1/%2/ReadBytes").arg(iSASCount).arg(i)] = "B";
    269                         m_units[QString("/Devices/SAS%1/%2/WrittenBytes").arg(iSASCount).arg(i)] = "B";
    270 
    271                         /* Belongs to: */
    272                         m_links[QString("/Devices/SAS%1/%2").arg(iSASCount).arg(i)] = QStringList()
    273                             << QString("/Devices/SAS%1/%2/ReadBytes").arg(iSASCount).arg(i)
    274                             << QString("/Devices/SAS%1/%2/WrittenBytes").arg(iSASCount).arg(i);
    275                     }
    276                 }
    277                 ++iSASCount;
    278                 break;
    279             }
    280             default:
    281                 break;
    282209        }
    283210    }
     
    361288    /* Return result: */
    362289    return fResult;
     290}
     291
     292const char *UIVMInfoDialog::storCtrlType2Str(KStorageControllerType enmCtrlType)
     293{
     294    const char *pszCtrl = NULL;
     295    switch (enmCtrlType)
     296    {
     297        case KStorageControllerType_LsiLogic:
     298            pszCtrl = "LSILOGIC";
     299            break;
     300        case KStorageControllerType_BusLogic:
     301            pszCtrl = "BUSLOGIC";
     302            break;
     303        case KStorageControllerType_IntelAhci:
     304            pszCtrl = "AHCI";
     305            break;
     306        case KStorageControllerType_PIIX3:
     307        case KStorageControllerType_PIIX4:
     308        case KStorageControllerType_ICH6:
     309            pszCtrl = "PIIX3IDE";
     310            break;
     311        case KStorageControllerType_I82078:
     312            pszCtrl = "I82078";
     313            break;
     314        case KStorageControllerType_LsiLogicSas:
     315            pszCtrl = "LSILOGICSAS";
     316            break;
     317        case KStorageControllerType_USB:
     318            pszCtrl = "MSD";
     319            break;
     320        case KStorageControllerType_NVMe:
     321            pszCtrl = "NVME";
     322            break;
     323        default:
     324            AssertFailed();
     325            pszCtrl = "<INVALID>";
     326            break;
     327    }
     328
     329    return pszCtrl;
    363330}
    364331
     
    739706        /* Enumerate storage-controllers: */
    740707        CStorageControllerVector controllers = m.GetStorageControllers();
    741         int iIDECount = 0, iSATACount = 0, iSCSICount = 0, iUSBCount = 0, iSASCount = 0;
     708        int iIDECount = 0;
    742709        foreach (const CStorageController &controller, controllers)
    743710        {
     
    755722                /* Append storage-statistics with controller name: */
    756723                strStorageStat += strHeaderStorage.arg(strControllerName.arg(controller.GetName()));
    757                 int iSCSIIndex = 0;
    758724                /* Enumerate storage-attachments: */
    759725                foreach (const CMediumAttachment &attachment, attachments)
     
    771737                            break;
    772738                        }
    773                         case KStorageBus_SATA:
     739                        default:
    774740                        {
    775                             /* Append storage-statistics with SATA controller statistics: */
     741                            uint32_t iInstance = controller.GetInstance();
     742                            const char *pszCtrl = storCtrlType2Str(controller.GetControllerType());
    776743                            strStorageStat += formatStorageElement(strName, iPort, iDevice,
    777                                                                    QString("/Devices/SATA%1/Port%2")
    778                                                                           .arg(iSATACount).arg(iPort));
     744                                                                   QString("/Devices/%1%2/Port%3")
     745                                                                          .arg(pszCtrl).arg(iInstance).arg(iPort));
    779746                            break;
    780747                        }
    781                         case KStorageBus_SCSI:
    782                         {
    783                             /* Append storage-statistics with SCSI controller statistics: */
    784                             strStorageStat += formatStorageElement(strName, iPort, iDevice,
    785                                                                    QString("/Devices/SCSI%1/%2")
    786                                                                           .arg(iSCSICount).arg(iSCSIIndex));
    787                             ++iSCSIIndex;
    788                             break;
    789                         }
    790                         case KStorageBus_USB:
    791                         {
    792                             /* Append storage-statistics with USB controller statistics: */
    793                             strStorageStat += formatStorageElement(strName, iPort, iDevice,
    794                                                                    QString("/Devices/USB%1/%2")
    795                                                                           .arg(iUSBCount).arg(iPort));
    796                             break;
    797                         }
    798                         case KStorageBus_SAS:
    799                         {
    800                             /* Append storage-statistics with USB controller statistics: */
    801                             strStorageStat += formatStorageElement(strName, iPort, iDevice,
    802                                                                    QString("/Devices/SAS%1/%2")
    803                                                                           .arg(iSASCount).arg(iPort));
    804                             break;
    805                         }
    806                         default:
    807                             break;
    808748                    }
    809749                    strStorageStat += strParagraph;
     
    814754            {
    815755                case KStorageBus_IDE:  ++iIDECount; break;
    816                 case KStorageBus_SATA: ++iSATACount; break;
    817                 case KStorageBus_SCSI: ++iSCSICount; break;
    818                 case KStorageBus_USB:  ++iUSBCount; break;
    819                 case KStorageBus_SAS:  ++iSASCount; break;
    820756                default: break;
    821757            }
  • trunk/src/VBox/Frontends/VirtualBox/src/UIVMInfoDialog.h

    r63291 r64840  
    6969    /** Common event-handler. */
    7070    bool event(QEvent *pEvent);
     71
     72    /** Converts a given storage controller type to the string representation used
     73     * in statistics. */
     74    const char *storCtrlType2Str(KStorageControllerType enmCtrlType);
    7175
    7276private slots:
  • trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIInformationDataItem.cpp

    r64827 r64840  
    924924    CSystemProperties sp = vboxGlobal().virtualBox().GetSystemProperties();
    925925    CStorageControllerVector controllers = m_machine.GetStorageControllers();
    926     int iIDECount = 0, iSATACount = 0, iSCSICount = 0, iUSBCount = 0, iSASCount = 0;
     926    int iIDECount = 0;
    927927    foreach (const CStorageController &controller, controllers)
    928928    {
    929         switch (controller.GetBus())
     929        KStorageBus enmBus = controller.GetBus();
     930
     931        switch (enmBus)
    930932        {
    931933            case KStorageBus_IDE:
     
    966968                break;
    967969            }
    968             case KStorageBus_SATA:
    969             {
    970                 for (ULONG i = 0; i < sp.GetMaxPortCountForStorageBus(KStorageBus_SATA); ++i)
     970            default:
     971            {
     972                /* Common code for the non IDE controllers. */
     973                uint32_t iInstance = controller.GetInstance();
     974                const char *pszCtrl = storCtrlType2Str(controller.GetControllerType());
     975
     976                for (ULONG i = 0; i < sp.GetMaxPortCountForStorageBus(enmBus); ++i)
    971977                {
    972                     for (ULONG j = 0; j < sp.GetMaxDevicesPerPortForStorageBus(KStorageBus_SATA); ++j)
     978                    for (ULONG j = 0; j < sp.GetMaxDevicesPerPortForStorageBus(enmBus); ++j)
    973979                    {
    974980                        /* Names: */
    975                         m_names[QString("/Devices/SATA%1/Port%2/DMA").arg(iSATACount).arg(i)]
    976                             = tr("DMA Transfers");
    977                         m_names[QString("/Devices/SATA%1/Port%2/ReadBytes").arg(iSATACount).arg(i)]
     981                        m_names[QString("/Devices/%1%2/Port%3/ReqsSubmitted").arg(pszCtrl).arg(iInstance).arg(i)]
     982                            = tr("Requests");
     983                        m_names[QString("/Devices/%1%2/Port%3/ReadBytes").arg(pszCtrl).arg(iInstance).arg(i)]
    978984                            = tr("Data Read");
    979                         m_names[QString("/Devices/SATA%1/Port%2/WrittenBytes").arg(iSATACount).arg(i)]
     985                        m_names[QString("/Devices/%1%2/Port%3/WrittenBytes").arg(pszCtrl).arg(iInstance).arg(i)]
    980986                            = tr("Data Written");
    981987
    982988                        /* Units: */
    983                         m_units[QString("/Devices/SATA%1/Port%2/DMA").arg(iSATACount).arg(i)] = "";
    984                         m_units[QString("/Devices/SATA%1/Port%2/ReadBytes").arg(iSATACount).arg(i)] = "B";
    985                         m_units[QString("/Devices/SATA%1/Port%2/WrittenBytes").arg(iSATACount).arg(i)] = "B";
     989                        m_units[QString("/Devices/%1%2/Port%3/ReqsSubmitted").arg(pszCtrl).arg(iInstance).arg(i)] = "";
     990                        m_units[QString("/Devices/%1%2/Port%3/ReadBytes").arg(pszCtrl).arg(iInstance).arg(i)] = "B";
     991                        m_units[QString("/Devices/%1%2/Port%3/WrittenBytes").arg(pszCtrl).arg(iInstance).arg(i)] = "B";
    986992
    987993                        /* Belongs to: */
    988                         m_links[QString("/Devices/SATA%1/Port%2").arg(iSATACount).arg(i)] = QStringList()
    989                             << QString("/Devices/SATA%1/Port%2/DMA").arg(iSATACount).arg(i)
    990                             << QString("/Devices/SATA%1/Port%2/ReadBytes").arg(iSATACount).arg(i)
    991                             << QString("/Devices/SATA%1/Port%2/WrittenBytes").arg(iSATACount).arg(i);
     994                        m_links[QString("/Devices/%1%2/Port%3").arg(pszCtrl).arg(iInstance).arg(i)] = QStringList()
     995                            << QString("/Devices/%1%2/Port%3/ReqsSubmitted").arg(pszCtrl).arg(iInstance).arg(i)
     996                            << QString("/Devices/%1%2/Port%3/ReadBytes").arg(pszCtrl).arg(iInstance).arg(i)
     997                            << QString("/Devices/%1%2/Port%3/WrittenBytes").arg(pszCtrl).arg(iInstance).arg(i);
    992998                    }
    993999                }
    994                 ++iSATACount;
     1000
    9951001                break;
    9961002            }
    997             case KStorageBus_SCSI:
    998             {
    999                 for (ULONG i = 0; i < sp.GetMaxPortCountForStorageBus(KStorageBus_SCSI); ++i)
    1000                 {
    1001                     for (ULONG j = 0; j < sp.GetMaxDevicesPerPortForStorageBus(KStorageBus_SCSI); ++j)
    1002                     {
    1003                         /* Names: */
    1004                         m_names[QString("/Devices/SCSI%1/%2/ReadBytes").arg(iSCSICount).arg(i)]
    1005                             = tr("Data Read");
    1006                         m_names[QString("/Devices/SCSI%1/%2/WrittenBytes").arg(iSCSICount).arg(i)]
    1007                             = tr("Data Written");
    1008 
    1009                         /* Units: */
    1010                         m_units[QString("/Devices/SCSI%1/%2/ReadBytes").arg(iSCSICount).arg(i)] = "B";
    1011                         m_units[QString("/Devices/SCSI%1/%2/WrittenBytes").arg(iSCSICount).arg(i)] = "B";
    1012 
    1013                         /* Belongs to: */
    1014                         m_links[QString("/Devices/SCSI%1/%2").arg(iSCSICount).arg(i)] = QStringList()
    1015                             << QString("/Devices/SCSI%1/%2/ReadBytes").arg(iSCSICount).arg(i)
    1016                             << QString("/Devices/SCSI%1/%2/WrittenBytes").arg(iSCSICount).arg(i);
    1017                     }
    1018                 }
    1019                 ++iSCSICount;
    1020                 break;
    1021             }
    1022             case KStorageBus_USB:
    1023             {
    1024                 for (ULONG i = 0; i < sp.GetMaxPortCountForStorageBus(KStorageBus_USB); ++i)
    1025                 {
    1026                     for (ULONG j = 0; j < sp.GetMaxDevicesPerPortForStorageBus(KStorageBus_USB); ++j)
    1027                     {
    1028                         /* Names: */
    1029                         m_names[QString("/Devices/USB%1/%2/ReadBytes").arg(iUSBCount).arg(i)]
    1030                             = tr("Data Read");
    1031                         m_names[QString("/Devices/USB%1/%2/WrittenBytes").arg(iUSBCount).arg(i)]
    1032                             = tr("Data Written");
    1033 
    1034                         /* Units: */
    1035                         m_units[QString("/Devices/USB%1/%2/ReadBytes").arg(iUSBCount).arg(i)] = "B";
    1036                         m_units[QString("/Devices/USB%1/%2/WrittenBytes").arg(iUSBCount).arg(i)] = "B";
    1037 
    1038                         /* Belongs to: */
    1039                         m_links[QString("/Devices/USB%1/%2").arg(iUSBCount).arg(i)] = QStringList()
    1040                             << QString("/Devices/USB%1/%2/ReadBytes").arg(iUSBCount).arg(i)
    1041                             << QString("/Devices/USB%1/%2/WrittenBytes").arg(iUSBCount).arg(i);
    1042                     }
    1043                 }
    1044                 ++iUSBCount;
    1045                 break;
    1046             }
    1047             case KStorageBus_SAS:
    1048             {
    1049                 for (ULONG i = 0; i < sp.GetMaxPortCountForStorageBus(KStorageBus_SAS); ++i)
    1050                 {
    1051                     for (ULONG j = 0; j < sp.GetMaxDevicesPerPortForStorageBus(KStorageBus_SAS); ++j)
    1052                     {
    1053                         /* Names: */
    1054                         m_names[QString("/Devices/SAS%1/%2/ReadBytes").arg(iSASCount).arg(i)]
    1055                             = tr("Data Read");
    1056                         m_names[QString("/Devices/SAS%1/%2/WrittenBytes").arg(iSASCount).arg(i)]
    1057                             = tr("Data Written");
    1058 
    1059                         /* Units: */
    1060                         m_units[QString("/Devices/SAS%1/%2/ReadBytes").arg(iSASCount).arg(i)] = "B";
    1061                         m_units[QString("/Devices/SAS%1/%2/WrittenBytes").arg(iSASCount).arg(i)] = "B";
    1062 
    1063                         /* Belongs to: */
    1064                         m_links[QString("/Devices/SAS%1/%2").arg(iSASCount).arg(i)] = QStringList()
    1065                             << QString("/Devices/SAS%1/%2/ReadBytes").arg(iSASCount).arg(i)
    1066                             << QString("/Devices/SAS%1/%2/WrittenBytes").arg(iSASCount).arg(i);
    1067 
    1068                     }
    1069                 }
    1070                 ++iSASCount;
    1071                 break;
    1072             }
    1073             default:
    1074                 break;
    10751003        }
    10761004    }
     
    10981026
    10991027            CStorageControllerVector controllers = m_machine.GetStorageControllers();
    1100             int iIDECount = 0, iSATACount = 0, iSCSICount = 0, iUSBCount = 0, iSASCount = 0;
     1028            int iIDECount = 0;
    11011029            foreach (const CStorageController &controller, controllers)
    11021030            {
     
    11121040                    p_text << UITextTableLine(strControllerName.arg(controller.GetName()), QString());
    11131041
    1114                     int iSCSIIndex = 0;
    11151042                    /* Enumerate storage-attachments: */
    11161043                    foreach (const CMediumAttachment &attachment, attachments)
     
    11341061
    11351062                            }
    1136                             case KStorageBus_SATA:
     1063                            default:
    11371064                            {
    1138                                 QStringList keys = m_links[QString("/Devices/SATA%1/Port%2").arg(iSATACount).arg(iPort)];
     1065                                uint32_t iInstance = ctr.GetInstance();
     1066                                const KStorageControllerType enmCtrl = ctr.GetControllerType();
     1067                                const char *pszCtrl = storCtrlType2Str(enmCtrl);
     1068                                QStringList keys = m_links[QString("/Devices/%1%2/Port%3").arg(pszCtrl).arg(iInstance).arg(iPort)];
    11391069                                foreach (QString strKey, keys)
    11401070                                    p_text << UITextTableLine(m_names[strKey], QString("%1 %2").arg(m_values[strKey]).arg(m_units[strKey]));
    11411071                                break;
    11421072                            }
    1143 
    1144                             case KStorageBus_SCSI:
    1145                             {
    1146                                 QStringList keys = m_links[QString("/Devices/SCSI%1/%2").arg(iSCSICount).arg(iSCSIIndex)];
    1147                                 foreach (QString strKey, keys)
    1148                                     p_text << UITextTableLine(m_names[strKey], QString("%1 %2").arg(m_values[strKey]).arg(m_units[strKey]));
    1149                                 ++iSCSIIndex;
    1150                                 break;
    1151                             }
    1152 
    1153                             case KStorageBus_USB:
    1154                             {
    1155                                 QStringList keys = m_links[QString("/Devices/USB%1/%2").arg(iUSBCount).arg(iPort)];
    1156                                 foreach (QString strKey, keys)
    1157                                     p_text << UITextTableLine(m_names[strKey], QString("%1 %2").arg(m_values[strKey]).arg(m_units[strKey]));
    1158                                 break;
    1159                             }
    1160 
    1161                             case KStorageBus_SAS:
    1162                             {
    1163                                 QStringList keys = m_links[QString("/Devices/SAS%1/%2").arg(iSASCount).arg(iPort)];
    1164                                 foreach (QString strKey, keys)
    1165                                     p_text << UITextTableLine(m_names[strKey], QString("%1 %2").arg(m_values[strKey]).arg(m_units[strKey]));
    1166                                 break;
    1167                             }
    1168 
    1169                             default:
    1170                                 break;
    11711073                        }
    11721074                    }
     
    11761078                {
    11771079                    case KStorageBus_IDE:  ++iIDECount; break;
    1178                     case KStorageBus_SATA: ++iSATACount; break;
    1179                     case KStorageBus_SCSI: ++iSCSICount; break;
    1180                     case KStorageBus_USB:  ++iUSBCount; break;
    1181                     case KStorageBus_SAS:  ++iSASCount; break;
    11821080                    default: break;
    11831081                }
     
    12361134}
    12371135
     1136const char *UIInformationDataStorageStatistics::storCtrlType2Str(const KStorageControllerType enmCtrlType) const
     1137{
     1138    const char *pszCtrl = NULL;
     1139    switch (enmCtrlType)
     1140    {
     1141        case KStorageControllerType_LsiLogic:
     1142            pszCtrl = "LSILOGIC";
     1143            break;
     1144        case KStorageControllerType_BusLogic:
     1145            pszCtrl = "BUSLOGIC";
     1146            break;
     1147        case KStorageControllerType_IntelAhci:
     1148            pszCtrl = "AHCI";
     1149            break;
     1150        case KStorageControllerType_PIIX3:
     1151        case KStorageControllerType_PIIX4:
     1152        case KStorageControllerType_ICH6:
     1153            pszCtrl = "PIIX3IDE";
     1154            break;
     1155        case KStorageControllerType_I82078:
     1156            pszCtrl = "I82078";
     1157            break;
     1158        case KStorageControllerType_LsiLogicSas:
     1159            pszCtrl = "LSILOGICSAS";
     1160            break;
     1161        case KStorageControllerType_USB:
     1162            pszCtrl = "MSD";
     1163            break;
     1164        case KStorageControllerType_NVMe:
     1165            pszCtrl = "NVME";
     1166            break;
     1167        default:
     1168            AssertFailed();
     1169            pszCtrl = "<INVALID>";
     1170            break;
     1171    }
     1172
     1173    return pszCtrl;
     1174}
     1175
    12381176void UIInformationDataStorageStatistics::sltProcessStatistics()
    12391177{
  • trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIInformationDataItem.h

    r60021 r64840  
    314314    QString parseStatistics(const QString &strText);
    315315
     316    /** Converts a given storage controller type to the string representation used
     317     * in statistics. */
     318    const char *storCtrlType2Str(const KStorageControllerType enmCtrlType) const;
     319
    316320    /** VM statistics counter data map. */
    317321    typedef QMap <QString, QString> DataMapType;
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