summaryrefslogtreecommitdiffstats
path: root/src/occ_gpe0
diff options
context:
space:
mode:
Diffstat (limited to 'src/occ_gpe0')
-rw-r--r--src/occ_gpe0/firdata/firData.c214
-rw-r--r--src/occ_gpe0/firdata/homerData_common.h58
2 files changed, 50 insertions, 222 deletions
diff --git a/src/occ_gpe0/firdata/firData.c b/src/occ_gpe0/firdata/firData.c
index ecdba8e..09d1813 100644
--- a/src/occ_gpe0/firdata/firData.c
+++ b/src/occ_gpe0/firdata/firData.c
@@ -60,28 +60,6 @@ typedef struct
} FirData_t;
-
-/** We move the chiplet exist bit fields into this structure left */
-/** justified for easy checking of the fields with a mask */
-typedef struct
-{
- uint32_t xbusMask;
- uint32_t obusMask;
- uint32_t ecMask;
-
- uint32_t eqMask;
- uint32_t exMask;
- uint32_t mcbist_mc_Mask;
- uint32_t mcs_mi_Mask;
- uint32_t mca_dmi_Mask;
-
- uint32_t cappMask;
- uint32_t pecMask;
- uint32_t phbMask;
-
-} FirData_existBits_t;
-
-
/* Uncomment for additional debug traces */
#if 0
#define DEBUG_PRD_CHKSTOP_ANALYSIS
@@ -321,8 +299,8 @@ bool FirData_addGlblsToPnor( FirData_t * io_fd, PNOR_Trgt_t * io_pTrgt,
(uint32_t)i_chipStruct->chipEcLevel, (uint32_t)l_ecAddrtPtr->ddLevel);
#endif
- /** Need same chipType (nimbus,cumulus,etc..), same target type, */
- /** same register type and EC level must match too */
+ /** Need same chipType (nimbus,axone,etc..), same target type, */
+ /** same register type and EC level must match too */
if ( (l_ecAddrtPtr->chipType == i_chipStruct->chipType) &&
(l_ecAddrtPtr->trgtType == t ) &&
(l_ecAddrtPtr->regType == REG_GLBL) &&
@@ -433,8 +411,8 @@ bool FirData_addFirsToPnor( FirData_t * io_fd, PNOR_Trgt_t * io_pTrgt,
(uint32_t)i_chipStruct->chipEcLevel, (uint32_t)l_ecAddrtPtr->ddLevel);
#endif
- /** Need same chipType (nimbus,cumulus,etc..), same target type, */
- /** same register type and EC level must match too */
+ /** Need same chipType (nimbus,axone,etc..), same target type, */
+ /** same register type and EC level must match too */
if ( (l_ecAddrtPtr->chipType == i_chipStruct->chipType) &&
(l_ecAddrtPtr->trgtType == t ) &&
(l_ecAddrtPtr->regType == REG_FIR) &&
@@ -528,8 +506,8 @@ bool FirData_addRegsToPnor( FirData_t * io_fd, PNOR_Trgt_t * io_pTrgt,
i_chipStruct->chipEcLevel, l_ecAddrtPtr->ddLevel );
#endif
- /** Need same chipType (nimbus,cumulus,etc..), same target type, */
- /** same register type and EC level must match too */
+ /** Need same chipType (nimbus,axone,etc..), same target type, */
+ /** same register type and EC level must match too */
if ( (l_ecAddrtPtr->chipType == i_chipStruct->chipType) &&
(l_ecAddrtPtr->trgtType == t ) &&
(l_ecAddrtPtr->regType == REG_REG) &&
@@ -625,8 +603,8 @@ bool FirData_addIdFirsToPnor( FirData_t * io_fd, PNOR_Trgt_t * io_pTrgt,
i_chipStruct->chipEcLevel, l_ecAddrtPtr->ddLevel );
#endif
- /** Need same chipType (nimbus,cumulus,etc..), same target type, */
- /** same register type and EC level must match too */
+ /** Need same chipType (nimbus,axone,etc..), same target type, */
+ /** same register type and EC level must match too */
if ( (l_ecAddrtPtr->chipType == i_chipStruct->chipType) &&
(l_ecAddrtPtr->trgtType == t ) &&
(l_ecAddrtPtr->regType == REG_IDFIR) &&
@@ -721,8 +699,8 @@ bool FirData_addIdRegsToPnor( FirData_t * io_fd, PNOR_Trgt_t * io_pTrgt,
i_chipStruct->chipEcLevel, l_ecAddrtPtr->ddLevel );
#endif
- /** Need same chipType (nimbus,cumulus,etc..), same target type, */
- /** same register type and EC level must match too */
+ /** Need same chipType (nimbus,axone,etc..), same target type, */
+ /** same register type and EC level must match too */
if ( (l_ecAddrtPtr->chipType == i_chipStruct->chipType) &&
(l_ecAddrtPtr->trgtType == t ) &&
(l_ecAddrtPtr->regType == REG_IDREG) &&
@@ -839,9 +817,6 @@ void FirData_addTrgtsToPnor( FirData_t * io_fd )
uint32_t fsi = 0;
SCOM_Trgt_t sTrgt;
- FirData_existBits_t l_existBits;
-
- memset(&l_existBits, 0x00, sizeof(FirData_existBits_t) );
/* Point past HOMER header to first chiplet info */
/* The HOMER_Data_t struct may have some padding added after the struct */
@@ -861,98 +836,22 @@ void FirData_addTrgtsToPnor( FirData_t * io_fd )
fsi = l_chipPtr->fsiBaseAddr;
p = l_chipPtr->chipPos;
- /* Is this a PROC or Centaur chip ? */
- if ( (HOMER_CHIP_NIMBUS == l_chipPtr->chipType) ||
- (HOMER_CHIP_CUMULUS == l_chipPtr->chipType) )
+ uint32_t mask = 0;
+
+ if ( HOMER_CHIP_NIMBUS == l_chipPtr->chipType )
{
/* To access the 'chiplet exist' structure */
l_bytePtr += sizeof(HOMER_Chip_t);
- /* 'Existing chiplet area' varies in size */
- if (HOMER_CHIP_NIMBUS == l_chipPtr->chipType)
- {
- HOMER_ChipNimbus_t *l_nimExistBitPtr =
+ HOMER_ChipNimbus_t * chipData =
(HOMER_ChipNimbus_t *)l_bytePtr;
- /* get master proc indicator */
- isM = l_nimExistBitPtr->isMaster;
-
- /* Exist bit structure can differ so move to */
- /* common format and left justify for ease of use */
- l_existBits.xbusMask = ((uint32_t)(l_nimExistBitPtr->xbusMask))
- << (32 - MAX_XBUS_PER_PROC);
- l_existBits.obusMask = ((uint32_t)(l_nimExistBitPtr->obusMask))
- << (32 - MAX_OBUS_PER_PROC);
- l_existBits.ecMask = ((uint32_t)(l_nimExistBitPtr->ecMask))
- << (32 - MAX_EC_PER_PROC);
- l_existBits.eqMask = ((uint32_t)(l_nimExistBitPtr->eqMask))
- << (32 - MAX_EQ_PER_PROC);
- l_existBits.exMask = ((uint32_t)(l_nimExistBitPtr->exMask))
- << (32 - MAX_EX_PER_PROC);
- l_existBits.mcbist_mc_Mask = ((uint32_t)(l_nimExistBitPtr->mcbistMask))
- << (32 - MAX_MCBIST_PER_PROC);
- l_existBits.mcs_mi_Mask = ((uint32_t)(l_nimExistBitPtr->mcsMask))
- << (32 - MAX_MCS_PER_PROC);
- l_existBits.mca_dmi_Mask = ((uint32_t)(l_nimExistBitPtr->mcaMask))
- << (32 - MAX_MCA_PER_PROC);
- l_existBits.cappMask = ((uint32_t)(l_nimExistBitPtr->cappMask))
- << (32 - MAX_CAPP_PER_PROC);
- l_existBits.pecMask = ((uint32_t)(l_nimExistBitPtr->pecMask))
- << (32 - MAX_PEC_PER_PROC);
- l_existBits.phbMask = ((uint32_t)(l_nimExistBitPtr->phbMask))
- << (32 - MAX_PHB_PER_PROC);
-
- /* advance our pointer to next chip type */
- l_bytePtr += sizeof(HOMER_ChipNimbus_t);
-
- } /* if nimbus */
- else if (HOMER_CHIP_CUMULUS == l_chipPtr->chipType)
- {
- HOMER_ChipCumulus_t *l_cumExistBitPtr =
- (HOMER_ChipCumulus_t *)l_bytePtr;
-
- /* get master proc indicator */
- isM = l_cumExistBitPtr->isMaster;
-
- /* Exist bit structure can differ so move to */
- /* common format and left justify for ease of use */
- l_existBits.xbusMask = ((uint32_t)(l_cumExistBitPtr->xbusMask))
- << (32 - MAX_XBUS_PER_PROC);
- l_existBits.obusMask = ((uint32_t)(l_cumExistBitPtr->obusMask))
- << (32 - MAX_OBUS_PER_PROC);
- l_existBits.ecMask = ((uint32_t)(l_cumExistBitPtr->ecMask))
- << (32 - MAX_EC_PER_PROC);
- l_existBits.eqMask = ((uint32_t)(l_cumExistBitPtr->eqMask))
- << (32 - MAX_EQ_PER_PROC);
- l_existBits.exMask = ((uint32_t)(l_cumExistBitPtr->exMask))
- << (32 - MAX_EX_PER_PROC);
- l_existBits.mcbist_mc_Mask = ((uint32_t)(l_cumExistBitPtr->mcMask))
- << (32 - MAX_MC_PER_PROC);
- l_existBits.mcs_mi_Mask = ((uint32_t)(l_cumExistBitPtr->miMask))
- << (32 - MAX_MI_PER_PROC);
- l_existBits.cappMask = ((uint32_t)(l_cumExistBitPtr->cappMask))
- << (32 - MAX_CAPP_PER_PROC);
- l_existBits.pecMask = ((uint32_t)(l_cumExistBitPtr->pecMask))
- << (32 - MAX_PEC_PER_PROC);
- l_existBits.phbMask = ((uint32_t)(l_cumExistBitPtr->phbMask))
- << (32 - MAX_PHB_PER_PROC);
-
- /* advance our pointer to next chip type */
- l_bytePtr += sizeof(HOMER_ChipCumulus_t);
- } /* else if cumulus */
+ /* get master proc indicator */
+ isM = chipData->isMaster;
+ /* advance our pointer to next chip type */
+ l_bytePtr += sizeof(HOMER_ChipNimbus_t);
-#ifdef DEBUG_PRD_CHKSTOP_ANALYSIS
- TRAC_IMP(" Masks XBUS:%X OBUS:%X ",
- l_existBits.xbusMask, l_existBits.obusMask);
- TRAC_IMP(" Masks EC:%X EQ:%X EX:%X",
- l_existBits.ecMask, l_existBits.eqMask, l_existBits.exMask);
- TRAC_IMP(" Masks CAPP:%X PEC:%X PHB:%X",l_existBits.cappMask,
- l_existBits.pecMask, l_existBits.phbMask );
- TRAC_IMP(" Masks MCBIST:%X MCS:%X MCA:%X",
- l_existBits.mcbist_mc_Mask, l_existBits.mcs_mi_Mask,
- l_existBits.mca_dmi_Mask );
-#endif
/* Add this PROC to the PNOR. */
sTrgt = SCOM_Trgt_getTrgt(TRGT_PROC, p, 0, fsi, isM);
full = FirData_addTrgtToPnor( io_fd, sTrgt, &noAttn, l_chipPtr );
@@ -966,7 +865,8 @@ void FirData_addTrgtsToPnor( FirData_t * io_fd )
for ( u = 0; u < MAX_XBUS_PER_PROC; u++ )
{
/* Check if the XBUS is configured. */
- if ( 0 == (l_existBits.xbusMask & (0x80000000 >> u)) ) continue;
+ mask = 1 << ((MAX_XBUS_PER_PROC-1) - u);
+ if ( 0 == (chipData->xbusMask & mask) ) continue;
/* Add this XBUS to the PNOR. */
sTrgt = SCOM_Trgt_getTrgt(TRGT_XBUS, p, u, fsi, isM);
@@ -979,7 +879,8 @@ void FirData_addTrgtsToPnor( FirData_t * io_fd )
for ( u = 0; u < MAX_OBUS_PER_PROC; u++ )
{
/* Check if the OBUS is configured. */
- if ( 0 == (l_existBits.obusMask & (0x80000000 >> u)) ) continue;
+ mask = 1 << ((MAX_OBUS_PER_PROC-1) - u);
+ if ( 0 == (chipData->obusMask & mask) ) continue;
/* Add this OBUS to the PNOR. */
sTrgt = SCOM_Trgt_getTrgt(TRGT_OBUS, p, u, fsi, isM);
@@ -992,7 +893,8 @@ void FirData_addTrgtsToPnor( FirData_t * io_fd )
for ( u = 0; u < MAX_CAPP_PER_PROC; u++ )
{
/* Check if the CAPP is configured. */
- if ( 0 == (l_existBits.cappMask & (0x80000000 >> u)) ) continue;
+ mask = 1 << ((MAX_CAPP_PER_PROC-1) - u);
+ if ( 0 == (chipData->cappMask & mask) ) continue;
/* Add this CAPP to the PNOR. */
sTrgt = SCOM_Trgt_getTrgt(TRGT_CAPP, p, u, fsi, isM);
@@ -1005,7 +907,8 @@ void FirData_addTrgtsToPnor( FirData_t * io_fd )
for ( u = 0; u < MAX_PEC_PER_PROC; u++ )
{
/* Check if the PEC is configured. */
- if ( 0 == (l_existBits.pecMask & (0x80000000 >> u)) ) continue;
+ mask = 1 << ((MAX_PEC_PER_PROC-1) - u);
+ if ( 0 == (chipData->pecMask & mask) ) continue;
/* Add this PEC to the PNOR. */
sTrgt = SCOM_Trgt_getTrgt(TRGT_PEC, p, u, fsi, isM);
@@ -1034,7 +937,8 @@ void FirData_addTrgtsToPnor( FirData_t * io_fd )
} /* if last PEC unit */
/* Check if the PHB is configured. */
- if ( 0 == (l_existBits.phbMask & (0x80000000 >> l_PhbPos)) ) continue;
+ mask = 1 << ((MAX_PHB_PER_PROC-1) - l_PhbPos);
+ if ( 0 == (chipData->phbMask & mask) ) continue;
/* Add this PHB to the PNOR. */
sTrgt = SCOM_Trgt_getTrgt(TRGT_PHB, p, l_PhbPos, fsi, isM);
@@ -1052,7 +956,8 @@ void FirData_addTrgtsToPnor( FirData_t * io_fd )
for ( u = 0; u < MAX_EC_PER_PROC; u++ )
{
/* Check if the EC is configured. */
- if ( 0 == (l_existBits.ecMask & (0x80000000 >> u)) ) continue;
+ mask = 1 << ((MAX_EC_PER_PROC-1) - u);
+ if ( 0 == (chipData->ecMask & mask) ) continue;
/* Add this EC to the PNOR. */
sTrgt = SCOM_Trgt_getTrgt(TRGT_EC, p, u, fsi, isM);
@@ -1067,7 +972,8 @@ void FirData_addTrgtsToPnor( FirData_t * io_fd )
for ( u = 0; u < MAX_EQ_PER_PROC; u++ )
{
/* Check if the EQ is configured. */
- if ( 0 == (l_existBits.eqMask & (0x80000000 >> u)) ) continue;
+ mask = 1 << ((MAX_EQ_PER_PROC-1) - u);
+ if ( 0 == (chipData->eqMask & mask) ) continue;
/* Add this EQ to the PNOR. */
sTrgt = SCOM_Trgt_getTrgt(TRGT_EQ, p, u, fsi, isM);
@@ -1084,7 +990,8 @@ void FirData_addTrgtsToPnor( FirData_t * io_fd )
l_ExPos = (l_ExPerEq * u) + l_unit;
/* Check if the EX is configured. */
- if ( 0 == (l_existBits.exMask & (0x80000000 >> l_ExPos)) ) continue;
+ mask = 1 << ((MAX_EX_PER_PROC-1) - l_ExPos);
+ if ( 0 == (chipData->exMask & mask) ) continue;
/* Add this EX to the PNOR. */
sTrgt = SCOM_Trgt_getTrgt(TRGT_EX, p, l_ExPos, fsi, isM);
@@ -1106,22 +1013,24 @@ void FirData_addTrgtsToPnor( FirData_t * io_fd )
for ( u = 0; u < MAX_MCBIST_PER_PROC; u++ )
{
/* Check if MCBIST / MC is configured. */
- if ( 0 == (l_existBits.mcbist_mc_Mask & (0x80000000 >> u)) ) continue;
+ mask = 1 << ((MAX_MCBIST_PER_PROC-1) - u);
+ if ( 0 == (chipData->mcbistMask & mask) ) continue;
- /* Add this MCBIST or MC to the PNOR. */
+ /* Add this MCBIST to the PNOR. */
sTrgt = SCOM_Trgt_getTrgt(TRGT_MCBIST, p, u, fsi, isM);
full = FirData_addTrgtToPnor( io_fd, sTrgt, &noAttn, l_chipPtr );
if ( full ) break;
if ( noAttn ) continue; /* Skip the rest */
- /* Grab underlying MCA/DMI chiplet */
+ /* Grab underlying MCA chiplet */
for ( l_unit = 0; l_unit < l_UnitPerMc; l_unit++ )
{
/* u=0 or 1 while l_unit is 0 thru 3 */
/* Leading to unit number 0:3 or 4:7 */
l_unitNumber = l_unit + (u * l_UnitPerMc);
- /* Check if the MCA / DMI is configured. */
- if ( 0 == (l_existBits.mca_dmi_Mask & (0x80000000 >> l_unitNumber)) ) continue;
+ /* Check if the MCA is configured. */
+ mask = 1 << ((MAX_MCA_PER_PROC-1) - l_unitNumber);
+ if ( 0 == (chipData->mcaMask & mask) ) continue;
/* Add this MCA / DMI to the PNOR. */
sTrgt = SCOM_Trgt_getTrgt(TRGT_MCA, p, l_unitNumber, fsi, isM);
@@ -1138,7 +1047,8 @@ void FirData_addTrgtsToPnor( FirData_t * io_fd )
for ( u = 0; u < MAX_MCS_PER_PROC; u++ )
{
/* Check if the MCS / MI is configured. */
- if ( 0 == (l_existBits.mcs_mi_Mask & (0x80000000 >> u)) ) continue;
+ mask = 1 << ((MAX_MCS_PER_PROC-1) - u);
+ if ( 0 == (chipData->mcsMask & mask) ) continue;
/* Add this MCS or MI to the PNOR. */
sTrgt = SCOM_Trgt_getTrgt(TRGT_MCS, p, u, fsi, isM);
@@ -1147,35 +1057,15 @@ void FirData_addTrgtsToPnor( FirData_t * io_fd )
}
if ( full ) break;
- } /* if processor chip type */
- else if (HOMER_CHIP_CENTAUR == l_chipPtr->chipType)
- {
- /* HOMER_ChipCentaur_t *l_cenExistBitPtr =
- (HOMER_ChipCentaur_t *)l_bytePtr; */
- /* uint32_t l_mbaMask = ((uint32_t) l_cenExistBitPtr->mbaMask) <<
- (sizeof(uint32_t) - MAX_MBA_PER_MEMBUF) */
-
- /* we have Centaur chipPos in 'p' and fsi address in 'fsi' */
-
- /* add this centaur later and iterate thru l_mbaMask */
- /* don't need for initial support */
- /* TODO RTC 173614 -- with CUMULUS */
-
- /* advance our pointer to next chip type */
- l_bytePtr += sizeof(HOMER_ChipCentaur_t);
-
- } /* end if centaur chip type */
+ }
else
{
- /* unexpected chip type */
- TRAC_ERR( "addTrgtsToPnor saw invalid chip:0x%X",
+ TRAC_ERR( "[FirData_addTrgtsToPnor] invalid chip type:0x%x",
(uint32_t)l_chipPtr->chipType );
break;
- } /* end if centaur chip type */
-
- } /* end for on all CHIPS we have in homer data */
-
-} /* end FirData_addTrgtsToPnor */
+ }
+ }
+}
/*------------------------------------------------------------------------------ */
@@ -1312,14 +1202,6 @@ int32_t FirData_init( FirData_t * io_fd,
{
reglist += sizeof(HOMER_ChipNimbus_t);
}
- else if (HOMER_CHIP_CUMULUS == l_chiptPtr->chipType)
- {
- reglist += sizeof(HOMER_ChipCumulus_t);
- }
- else if (HOMER_CHIP_CENTAUR == l_chiptPtr->chipType)
- {
- reglist += sizeof(HOMER_ChipCentaur_t);
- }
else
{
TRAC_ERR(FUNC"Chiptype is invalid %X ", (uint32_t)l_chiptPtr->chipType);
diff --git a/src/occ_gpe0/firdata/homerData_common.h b/src/occ_gpe0/firdata/homerData_common.h
index 23ee7ed..f0e3db8 100644
--- a/src/occ_gpe0/firdata/homerData_common.h
+++ b/src/occ_gpe0/firdata/homerData_common.h
@@ -1,11 +1,11 @@
/* IBM_PROLOG_BEGIN_TAG */
/* This is an automatically generated prolog. */
/* */
-/* $Source: src/occ_405/firdata/homerData_common.h $ */
+/* $Source: src/occ_gpe0/firdata/homerData_common.h $ */
/* */
/* OpenPOWER OnChipController Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2015,2017 */
+/* Contributors Listed Below - COPYRIGHT 2015,2018 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -141,8 +141,6 @@ static inline HOMER_Data_t HOMER_getData()
typedef enum
{
HOMER_CHIP_NIMBUS, /** P9 Nimbus processor chip */
- HOMER_CHIP_CUMULUS, /** P9 Cumulus processor chip */
- HOMER_CHIP_CENTAUR, /** Centaur memory buffer chip */
} HOMER_ChipType_t;
@@ -163,7 +161,6 @@ typedef struct __attribute__((packed))
/* NOTE: This structure is 4-byte word aligned. */
typedef struct __attribute__((packed))
{
-
uint32_t chipType : 4; /** See HOMER_ChipType_t. */
uint32_t trgtType : 6; /** See TrgtType_t. */
uint32_t regType : 4; /** See RegType_t. */
@@ -218,55 +215,4 @@ static inline HOMER_ChipNimbus_t HOMER_initChipNimbus()
return c;
}
-/*----------------------------------------------------------------------------*/
-
-/** Information specific to a P9 Cumulus processor chip. */
-/* NOTE: This structure is 4-byte word aligned. */
-typedef struct __attribute__((packed))
-{
- uint32_t isMaster : 1; /** 1 if this is the master PROC, 0 otherwise */
- uint32_t xbusMask : 3; /** Mask of configured XBUS units (0-2) */
- uint32_t obusMask : 4; /** Mask of configured OBUS units (0-3) */
- uint32_t ecMask : 24; /** Mask of configured EC units (0-23) */
-
- uint32_t eqMask : 6; /** Mask of configured EQ units (0-5) */
- uint32_t exMask : 12; /** Mask of configured EX units (0-11) */
- uint32_t mcMask : 2; /** Mask of configured MC units (0-1) */
- uint32_t miMask : 4; /** Mask of configured MI units (0-3) */
- uint32_t dmiMask : 8; /** Mask of configured DMI units (0-7) */
-
- uint32_t cappMask : 2; /** Mask of configured CAPP units (0-1) */
- uint32_t pecMask : 3; /** Mask of configured PEC units (0-2) */
- uint32_t phbMask : 6; /** Mask of configured PHB units (0-5) */
- uint32_t reserved : 21;
-
-} HOMER_ChipCumulus_t;
-
-/** @return An initialized HOMER_ChipCumulus_t struct. */
-static inline HOMER_ChipCumulus_t HOMER_initChipCumulus()
-{
- HOMER_ChipCumulus_t c; memset( &c, 0x00, sizeof(c) ); /* init to zero */
-
- return c;
-}
-
-/*----------------------------------------------------------------------------*/
-
-/** Information specific to a Centaur memory buffer chip. */
-/* NOTE: This structure is 4-byte word aligned. */
-typedef struct __attribute__((packed))
-{
- uint32_t mbaMask : 2; /** Mask of configured MBA units (0-1) */
- uint32_t reserved : 30;
-
-} HOMER_ChipCentaur_t;
-
-/** @return An initialized HOMER_ChipCentaur_t struct. */
-static inline HOMER_ChipCentaur_t HOMER_initChipCentaur()
-{
- HOMER_ChipCentaur_t c; memset( &c, 0x00, sizeof(c) ); /* init to zero */
-
- return c;
-}
-
#endif /* __homerData_common_h */
OpenPOWER on IntegriCloud