VirtualBox

Changeset 25697 in vbox


Ignore:
Timestamp:
Jan 8, 2010 8:26:16 PM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
56432
Message:

LsiLogic: Fix gcc warning

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

Legend:

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

    r25677 r25697  
    515515        if (pThis->enmCtrlType == LSILOGICCTRLTYPE_SCSI_SAS)
    516516        {
    517             PMptSASDevice pSASDeviceCurr = pThis->pConfigurationPages->u.SasPages.pSASDeviceHead;
     517            PMptConfigurationPagesSas pSasPages = &pThis->pConfigurationPages->u.SasPages;
     518            PMptSASDevice pSASDeviceCurr = pSasPages->pSASDeviceHead;
    518519
    519520            while (pSASDeviceCurr)
     
    524525                RTMemFree(pFree);
    525526            }
     527            if (pSasPages->paPHYs)
     528                RTMemFree(pSasPages->paPHYs);
     529            if (pSasPages->pManufacturingPage7)
     530                RTMemFree(pSasPages->pManufacturingPage7);
     531            if (pSasPages->pSASIOUnitPage0)
     532                RTMemFree(pSasPages->pSASIOUnitPage0);
     533            if (pSasPages->pSASIOUnitPage1)
     534                RTMemFree(pSasPages->pSASIOUnitPage1);
    526535        }
    527536
     
    21742183            break;
    21752184        case 7:
    2176             *ppPageHeader = &pPages->ManufacturingPage7.u.fields.Header;
    2177             *ppbPageData  =  pPages->ManufacturingPage7.u.abPageData;
    2178             *pcbPage      = sizeof(pPages->ManufacturingPage7);
     2185            if (pLsiLogic->enmCtrlType == LSILOGICCTRLTYPE_SCSI_SAS)
     2186            {
     2187                *ppPageHeader = &pPages->u.SasPages.pManufacturingPage7->u.fields.Header;
     2188                *ppbPageData  =  pPages->u.SasPages.pManufacturingPage7->u.abPageData;
     2189                *pcbPage      = pPages->u.SasPages.cbManufacturingPage7;
     2190            }
     2191            else
     2192                rc = VERR_NOT_FOUND;
    21792193            break;
    21802194        case 8:
     
    29232937    LogFlowFunc(("pThis=%#p\n", pThis));
    29242938
     2939    /* Manufacturing Page 7 - Connector settings. */
     2940    pPages->cbManufacturingPage7 = LSILOGICSCSI_MANUFACTURING7_GET_SIZE(pThis->cPorts);
     2941    PMptConfigurationPageManufacturing7 pManufacturingPage7 = (PMptConfigurationPageManufacturing7)RTMemAllocZ(pPages->cbManufacturingPage7);
     2942    AssertPtr(pManufacturingPage7);
     2943    MPT_CONFIG_PAGE_HEADER_INIT_MANUFACTURING(pManufacturingPage7,
     2944                                              0, 7,
     2945                                              MPT_CONFIGURATION_PAGE_ATTRIBUTE_PERSISTENT_READONLY);
     2946    /* Set size manually. */
     2947    if (pPages->cbManufacturingPage7 / 4 > 255)
     2948        pManufacturingPage7->u.fields.Header.u8PageLength = 255;
     2949    else
     2950        pManufacturingPage7->u.fields.Header.u8PageLength = pPages->cbManufacturingPage7 / 4;
     2951    pManufacturingPage7->u.fields.u8NumPhys = pThis->cPorts;
     2952    pPages->pManufacturingPage7 = pManufacturingPage7;
     2953
    29252954    /* SAS I/O unit page 0 - Port specific informations. */
    29262955    pPages->cbSASIOUnitPage0 = LSILOGICSCSI_SASIOUNIT0_GET_SIZE(pThis->cPorts);
     
    29702999        PMptPHY pPHYPages = &pPages->paPHYs[i];
    29713000        uint16_t u16ControllerHandle = lsilogicGetHandle(pThis);
     3001
     3002        pManufacturingPage7->u.fields.aPHY[i].u8Location = LSILOGICSCSI_MANUFACTURING7_LOCATION_AUTO;
    29723003
    29733004        pSASPage0->u.fields.aPHY[i].u8Port      = i;
     
    31673198                                              MptConfigurationPageManufacturing6, 6,
    31683199                                              MPT_CONFIGURATION_PAGE_ATTRIBUTE_CHANGEABLE);
    3169 
    3170     /* Manufacturing Page 7 - Connector settings. */
    3171     MPT_CONFIG_PAGE_HEADER_INIT_MANUFACTURING(&pPages->ManufacturingPage7,
    3172                                               MptConfigurationPageManufacturing7, 7,
    3173                                               MPT_CONFIGURATION_PAGE_ATTRIBUTE_PERSISTENT_READONLY);
    31743200
    31753201    /* Manufacturing Page 8 -  Product sepcific settings. */
     
    37773803    SSMR3PutMem   (pSSM, &pPages->ManufacturingPage5, sizeof(MptConfigurationPageManufacturing5));
    37783804    SSMR3PutMem   (pSSM, &pPages->ManufacturingPage6, sizeof(MptConfigurationPageManufacturing6));
    3779     SSMR3PutMem   (pSSM, &pPages->ManufacturingPage7, sizeof(MptConfigurationPageManufacturing7));
    37803805    SSMR3PutMem   (pSSM, &pPages->ManufacturingPage8, sizeof(MptConfigurationPageManufacturing8));
    37813806    SSMR3PutMem   (pSSM, &pPages->ManufacturingPage9, sizeof(MptConfigurationPageManufacturing9));
     
    38173842        PMptConfigurationPagesSas pSasPages = &pPages->u.SasPages;
    38183843
     3844        SSMR3PutU32(pSSM, pSasPages->cbManufacturingPage7);
    38193845        SSMR3PutU32(pSSM, pSasPages->cbSASIOUnitPage0);
    38203846        SSMR3PutU32(pSSM, pSasPages->cbSASIOUnitPage1);
    38213847
     3848        SSMR3PutMem(pSSM, pSasPages->pManufacturingPage7, pSasPages->cbManufacturingPage7);
    38223849        SSMR3PutMem(pSSM, pSasPages->pSASIOUnitPage0, pSasPages->cbSASIOUnitPage0);
    38233850        SSMR3PutMem(pSSM, pSasPages->pSASIOUnitPage1, pSasPages->cbSASIOUnitPage1);
     
    40174044        SSMR3GetMem(pSSM, &pPages->ManufacturingPage5, sizeof(MptConfigurationPageManufacturing5));
    40184045        SSMR3GetMem(pSSM, &pPages->ManufacturingPage6, sizeof(MptConfigurationPageManufacturing6));
    4019         SSMR3GetMem(pSSM, &pPages->ManufacturingPage7, sizeof(MptConfigurationPageManufacturing7));
    40204046        SSMR3GetMem(pSSM, &pPages->ManufacturingPage8, sizeof(MptConfigurationPageManufacturing8));
    40214047        SSMR3GetMem(pSSM, &pPages->ManufacturingPage9, sizeof(MptConfigurationPageManufacturing9));
     
    40554081        else if (pLsiLogic->enmCtrlType == LSILOGICCTRLTYPE_SCSI_SAS)
    40564082        {
    4057             uint32_t cbPage0, cbPage1, cPHYs;
     4083            uint32_t cbPage0, cbPage1, cPHYs, cbManufacturingPage7;
    40584084            PMptConfigurationPagesSas pSasPages = &pPages->u.SasPages;
    40594085
     4086            SSMR3GetU32(pSSM, &cbManufacturingPage7);
    40604087            SSMR3GetU32(pSSM, &cbPage0);
    40614088            SSMR3GetU32(pSSM, &cbPage1);
    40624089
    40634090            if (   (cbPage0 != pSasPages->cbSASIOUnitPage0)
    4064                 || (cbPage1 != pSasPages->cbSASIOUnitPage1))
     4091                || (cbPage1 != pSasPages->cbSASIOUnitPage1)
     4092                || (cbManufacturingPage7 != pSasPages->cbManufacturingPage7))
    40654093                return VERR_SSM_LOAD_CONFIG_MISMATCH;
    40664094
     4095            AssertPtr(pSasPages->pManufacturingPage7);
    40674096            AssertPtr(pSasPages->pSASIOUnitPage0);
    40684097            AssertPtr(pSasPages->pSASIOUnitPage1);
    40694098
     4099            SSMR3GetMem(pSSM, pSasPages->pManufacturingPage7, pSasPages->cbManufacturingPage7);
    40704100            SSMR3GetMem(pSSM, pSasPages->pSASIOUnitPage0, pSasPages->cbSASIOUnitPage0);
    40714101            SSMR3GetMem(pSSM, pSasPages->pSASIOUnitPage1, pSasPages->cbSASIOUnitPage1);
  • trunk/src/VBox/Devices/Storage/DevLsiLogicSCSI.h

    r25675 r25697  
    13281328
    13291329/**
     1330 * Manufacutring page 7 - PHY element.
     1331 */
     1332#pragma pack(1)
     1333typedef struct MptConfigurationPageManufacturing7PHY
     1334{
     1335    /** Pinout */
     1336    uint32_t                  u32Pinout;
     1337    /** Connector name */
     1338    uint8_t                   szConnector[16];
     1339    /** Location */
     1340    uint8_t                   u8Location;
     1341    /** reserved */
     1342    uint8_t                   u8Reserved;
     1343    /** Slot */
     1344    uint16_t                  u16Slot;
     1345} MptConfigurationPageManufacturing7PHY, *PMptConfigurationPageManufacturing7PHY;
     1346#pragma pack()
     1347AssertCompileSize(MptConfigurationPageManufacturing7PHY, 24);
     1348
     1349/**
    13301350 * Manufacturing page 7 - Readonly.
    13311351 */
     
    13371357    {
    13381358        /** Byte view. */
    1339         uint8_t                           abPageData[228];
     1359        uint8_t                           abPageData[1];
    13401360        /** Field view. */
    13411361        struct
     
    13531373            /** Reserved */
    13541374            uint8_t                       au8Reserved[3];
    1355             /** PHY list for the SAS controller */
    1356             struct
    1357             {
    1358                 /** Pinout */
    1359                 uint32_t                  u32Pinout;
    1360                 /** Connector name */
    1361                 uint8_t                   szConnector[16];
    1362                 /** Location */
    1363                 uint8_t                   u8Location;
    1364                 /** reserved */
    1365                 uint8_t                   u8Reserved;
    1366                 /** Slot */
    1367                 uint16_t                  u16Slot;
    1368             } aPHYs[LSILOGICSCSI_PCI_SAS_PORTS_MAX];
     1375            /** PHY list for the SAS controller - variable depending on the number of ports */
     1376            MptConfigurationPageManufacturing7PHY aPHY[1];
    13691377        } fields;
    13701378    } u;
    13711379} MptConfigurationPageManufacturing7, *PMptConfigurationPageManufacturing7;
    13721380#pragma pack()
    1373 AssertCompileSize(MptConfigurationPageManufacturing7, 36+(LSILOGICSCSI_PCI_SAS_PORTS_MAX * 24));
     1381AssertCompileSize(MptConfigurationPageManufacturing7, 36+sizeof(MptConfigurationPageManufacturing7PHY));
     1382
     1383#define LSILOGICSCSI_MANUFACTURING7_GET_SIZE(ports) (sizeof(MptConfigurationPageManufacturing7) + ((ports) - 1) * sizeof(MptConfigurationPageManufacturing7PHY))
    13741384
    13751385/** Flags for the flags field */
     
    31853195typedef struct MptConfigurationPagesSas
    31863196{
     3197    /** Size of the manufacturing page 7 */
     3198    uint32_t                            cbManufacturingPage7;
     3199    /** Pointer to the manufacturing page 7 */
     3200    PMptConfigurationPageManufacturing7 pManufacturingPage7;
    31873201    /** Size of the I/O unit page 0 */
    31883202    uint32_t                            cbSASIOUnitPage0;
     
    32243238    MptConfigurationPageManufacturing5  ManufacturingPage5;
    32253239    MptConfigurationPageManufacturing6  ManufacturingPage6;
    3226     MptConfigurationPageManufacturing7  ManufacturingPage7;
    32273240    MptConfigurationPageManufacturing8  ManufacturingPage8;
    32283241    MptConfigurationPageManufacturing9  ManufacturingPage9;
Note: See TracChangeset for help on using the changeset viewer.

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