VirtualBox

Changeset 11484 in vbox for trunk/src/VBox/Devices/Storage


Ignore:
Timestamp:
Aug 19, 2008 12:41:38 PM (16 years ago)
Author:
vboxsync
Message:

Storage/VBoxHDD-new: Add information about configuration settings supported by a backend.
Storage/iSCSI: Move initiator name default to backend.
Main: Move iSCSI initiator name default to backend.

Location:
trunk/src/VBox/Devices/Storage
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Storage/RawHDDCore.cpp

    r11444 r11484  
    10871087    /* papszFileExtensions */
    10881088    s_apszRawFileExtensions,
     1089    /* paConfigInfo */
     1090    NULL,
    10891091    /* pfnCheckIfValid */
    10901092    rawCheckIfValid,
  • trunk/src/VBox/Devices/Storage/VBoxHDD-new.cpp

    r11444 r11484  
    653653            pEntries[cEntries].uBackendCaps = aBackends[i]->uBackendCaps;
    654654            pEntries[cEntries].papszFileExtensions = aBackends[i]->papszFileExtensions;
     655            pEntries[cEntries].paConfigInfo = aBackends[i]->paConfigInfo;
    655656            cEntries++;
    656657            if (cEntries >= cEntriesAlloc)
     
    742743                        pEntries[cEntries].uBackendCaps = pBackend->uBackendCaps;
    743744                        pEntries[cEntries].papszFileExtensions = pBackend->papszFileExtensions;
     745                        pEntries[cEntries].paConfigInfo = pBackend->paConfigInfo;
    744746                        cEntries++;
    745747                        if (cEntries >= cEntriesAlloc)
     
    29832985            pBackendInfo->uBackendCaps = pImage->Backend->uBackendCaps;
    29842986            pBackendInfo->papszFileExtensions = pImage->Backend->papszFileExtensions;
     2987            pBackendInfo->paConfigInfo = pImage->Backend->paConfigInfo;
    29852988            rc = VINF_SUCCESS;
    29862989        }
  • trunk/src/VBox/Devices/Storage/VBoxHDD-newInternal.h

    r11444 r11484  
    6262     */
    6363    const char * const *papszFileExtensions;
     64
     65    /**
     66     * Pointer to an array of structs describing each supported config key.
     67     * Terminated by a NULL config key. Note that some backends do not support
     68     * the configuration interface, so this pointer may just contain NULL.
     69     * Mandatory if the backend sets VD_CAP_CONFIG.
     70     */
     71    PCVDCONFIGINFO paConfigInfo;
    6472
    6573    /**
  • trunk/src/VBox/Devices/Storage/VDIHDDCore.cpp

    r11444 r11484  
    18221822    /* papszFileExtensions */
    18231823    s_apszVdiFileExtensions,
     1824    /* paConfigInfo */
     1825    NULL,
    18241826    /* pfnCheckIfValid */
    18251827    vdiCheckIfValid,
  • trunk/src/VBox/Devices/Storage/VmdkHDDCore.cpp

    r11444 r11484  
    51825182    /* papszFileExtensions */
    51835183    s_apszVmdkFileExtensions,
     5184    /* paConfigInfo */
     5185    NULL,
    51845186    /* pfnCheckIfValid */
    51855187    vmdkCheckIfValid,
  • trunk/src/VBox/Devices/Storage/testcase/tstVD-2.cpp

    r11421 r11484  
    7272            if (papsz == aVDInfo[i].papszFileExtensions)
    7373                RTPrintf("<EMPTY>");
    74             RTPrintf("\n");
    7574        }
    7675        else
    77             RTPrintf("<NONE>\n");
     76            RTPrintf("<NONE>");
     77        RTPrintf(" config=");
     78        if (aVDInfo[i].paConfigInfo)
     79        {
     80            PCVDCONFIGINFO pa = aVDInfo[i].paConfigInfo;
     81            while (pa->pszKey != NULL)
     82            {
     83                if (pa != aVDInfo[i].paConfigInfo)
     84                    RTPrintf(",");
     85                RTPrintf("(key=%s type=", pa->pszKey);
     86                switch (pa->enmValueType)
     87                {
     88                    case VDCFGVALUETYPE_INTEGER:
     89                        RTPrintf("integer default=");
     90                        if (pa->pDefaultValue)
     91                            RTPrintf("%RU64", pa->pDefaultValue->Integer.u64);
     92                        else
     93                            RTPrintf("<NONE>");
     94                        break;
     95                    case VDCFGVALUETYPE_STRING:
     96                        RTPrintf("string default=");
     97                        if (pa->pDefaultValue)
     98                            RTPrintf("%s", pa->pDefaultValue->String.psz);
     99                        else
     100                            RTPrintf("<NONE>");
     101                        break;
     102                    case VDCFGVALUETYPE_BYTES:
     103                        RTPrintf("bytes default=");
     104                        if (pa->pDefaultValue)
     105                            RTPrintf("length=%RTuint %.*Rhxs",
     106                                     pa->pDefaultValue->Bytes.cb,
     107                                     pa->pDefaultValue->Bytes.cb,
     108                                     pa->pDefaultValue->Bytes.pv);
     109                        else
     110                            RTPrintf("<NONE>");
     111                        break;
     112                    default:
     113                        RTPrintf("INVALID!");
     114                }
     115                RTPrintf(" flags=");
     116                if (!pa->uKeyFlags)
     117                    RTPrintf("none");
     118                unsigned cFlags = 0;
     119                if (pa->uKeyFlags & VD_CFGKEY_MANDATORY)
     120                {
     121                    if (cFlags)
     122                        RTPrintf(",");
     123                    RTPrintf("mandatory");
     124                    cFlags++;
     125                }
     126                if (pa->uKeyFlags & VD_CFGKEY_EXPERT)
     127                {
     128                    if (cFlags)
     129                        RTPrintf(",");
     130                    RTPrintf("expert");
     131                    cFlags++;
     132                }
     133                RTPrintf(")");
     134                pa++;
     135            }
     136            if (pa == aVDInfo[i].paConfigInfo)
     137                RTPrintf("<EMPTY>");
     138        }
     139        else
     140            RTPrintf("<NONE>");
     141        RTPrintf("\n");
    78142    }
    79143
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