summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Cprek <smcprek@us.ibm.com>2014-04-01 13:39:07 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2014-04-03 15:06:30 -0500
commit31998dac459abd6e49857697b07cbce8af43cadf (patch)
treecc254459f990f8a643f1bb6739304ea21287df47
parentcadf4e34157e599e1352de1d93ec406f3a2759a9 (diff)
downloadtalos-hostboot-31998dac459abd6e49857697b07cbce8af43cadf.tar.gz
talos-hostboot-31998dac459abd6e49857697b07cbce8af43cadf.zip
Changed _invokeDeconfigureAssocProc to push an instance directly
Before invoke declared new instances causing too much memory alloc work. Also short circuited "found chip" loop Change-Id: I60c23e8beff72fca8174808aff3b9bb70a5aa5b6 RTC: 86191 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/10034 Tested-by: Jenkins Server Reviewed-by: Brian H. Horton <brianh@linux.ibm.com> Reviewed-by: Donald E. Dahle <dedahle@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
-rw-r--r--src/include/usr/hwas/common/deconfigGard.H9
-rw-r--r--src/usr/hwas/common/deconfigGard.C240
-rw-r--r--src/usr/hwas/test/hwasGardTest.H1013
3 files changed, 610 insertions, 652 deletions
diff --git a/src/include/usr/hwas/common/deconfigGard.H b/src/include/usr/hwas/common/deconfigGard.H
index 59b38f0f0..82519b6c1 100644
--- a/src/include/usr/hwas/common/deconfigGard.H
+++ b/src/include/usr/hwas/common/deconfigGard.H
@@ -393,6 +393,10 @@ private:
bool iv_XDeconfigured[NUM_X_BUSES];
};
+ // Structure populated in _invokeDeconfigureAssocProc() for use in
+ // _deconfigureAssocProc()
+ typedef std::vector<ProcInfo> ProcInfoVector;
+
/**
* @brief Deconfigures Targets by association.
*
@@ -476,8 +480,7 @@ private:
* @return errlHndl_t. Error log handle.
*
*/
- static errlHndl_t _deconfigureAssocProc(
- std::vector<ProcInfo *> &io_procInfo);
+ static errlHndl_t _deconfigureAssocProc(ProcInfoVector &io_procInfo);
/**
* @brief Performs SMP node balancing
@@ -497,7 +500,7 @@ private:
* @return errlHndl_t. Error log handle.
*
*/
- static errlHndl_t _symmetryValidation(std::vector<ProcInfo *> &io_procInfo);
+ static errlHndl_t _symmetryValidation(ProcInfoVector &io_procInfo);
public:
diff --git a/src/usr/hwas/common/deconfigGard.C b/src/usr/hwas/common/deconfigGard.C
index ea0b6d51b..a89f186ed 100644
--- a/src/usr/hwas/common/deconfigGard.C
+++ b/src/usr/hwas/common/deconfigGard.C
@@ -734,7 +734,7 @@ errlHndl_t DeconfigGard::_invokeDeconfigureAssocProc()
// Define vector of ProcInfo structs to be used by
// _deconfigAssocProc algorithm. Declared here so
// "delete" can be used outside of do {...} while(0)
- std::vector<ProcInfo *> l_procInfo;
+ ProcInfoVector l_procInfo;
do
{
@@ -798,37 +798,37 @@ errlHndl_t DeconfigGard::_invokeDeconfigureAssocProc()
l_procsIter != l_procs.end();
++l_procsIter)
{
- ProcInfo * l_ProcInfo = new ProcInfo();
+ ProcInfo l_ProcInfo = ProcInfo();
// Iterate through present procs and populate structs in l_procInfo
// Target pointer
- l_ProcInfo->iv_pThisProc =
+ l_ProcInfo.iv_pThisProc =
*l_procsIter;
// HUID
- l_ProcInfo->procHUID =
+ l_ProcInfo.procHUID =
(*l_procsIter)->getAttr<ATTR_HUID>();
// FABRIC_NODE_ID
- l_ProcInfo->procFabricNode =
+ l_ProcInfo.procFabricNode =
(*l_procsIter)->getAttr<ATTR_FABRIC_NODE_ID>();
// FABRIC_CHIP_ID
- l_ProcInfo->procFabricChip =
+ l_ProcInfo.procFabricChip =
(*l_procsIter)->getAttr<ATTR_FABRIC_CHIP_ID>();
// HWAS state
- l_ProcInfo->iv_deconfigured =
+ l_ProcInfo.iv_deconfigured =
!(isFunctional(*l_procsIter));
// iv_isMaster
if (*l_procsIter == l_pMasterProcTarget)
{
- l_ProcInfo->iv_isMaster = true;
+ l_ProcInfo.iv_isMaster = true;
}
else
{
- l_ProcInfo->iv_isMaster = false;
+ l_ProcInfo.iv_isMaster = false;
}
l_procInfo.push_back(l_ProcInfo);
}
// Iterate through l_procInfo and populate child bus endpoint
// chiplet information
- for (std::vector<ProcInfo *>::const_iterator
+ for (ProcInfoVector::iterator
l_procInfoIter = l_procInfo.begin();
l_procInfoIter != l_procInfo.end();
++l_procInfoIter)
@@ -836,7 +836,7 @@ errlHndl_t DeconfigGard::_invokeDeconfigureAssocProc()
// Populate vector of bus endpoints associated with this proc
TargetHandleList l_busChiplets;
targetService().getAssociated(l_busChiplets,
- (*l_procInfoIter)->iv_pThisProc,
+ (*l_procInfoIter).iv_pThisProc,
TargetService::CHILD,
TargetService::IMMEDIATE,
&busses);
@@ -848,7 +848,7 @@ errlHndl_t DeconfigGard::_invokeDeconfigureAssocProc()
uint8_t aBusIndex = 0;
// Iterate through bus endpoint chiplets
- for (TargetHandleList::iterator
+ for (TargetHandleList::const_iterator
l_busIter = l_busChiplets.begin();
l_busIter != l_busChiplets.end();
++l_busIter)
@@ -874,7 +874,7 @@ errlHndl_t DeconfigGard::_invokeDeconfigureAssocProc()
// Get parent chip from xbus chiplet
l_pPeerProcTarget = getParentChip(l_pDstTarget);
// Find matching ProcInfo struct
- for (std::vector<ProcInfo *>::const_iterator
+ for (ProcInfoVector::iterator
l_matchProcInfoIter = l_procInfo.begin();
l_matchProcInfoIter != l_procInfo.end();
++l_matchProcInfoIter)
@@ -882,27 +882,27 @@ errlHndl_t DeconfigGard::_invokeDeconfigureAssocProc()
// If Peer proc target matches this ProcInfo struct's
// Identifier target
if (l_pPeerProcTarget ==
- (*l_matchProcInfoIter)->iv_pThisProc)
+ (*l_matchProcInfoIter).iv_pThisProc)
{
// Update struct of current proc to point to this
// struct, and also handle iv_A/XDeconfigured[]
// and increment appropriate index:
if (TYPE_XBUS == (*l_busIter)->getAttr<ATTR_TYPE>())
{
- (*l_procInfoIter)->iv_pXProcs[xBusIndex] =
- *l_matchProcInfoIter;
+ (*l_procInfoIter).iv_pXProcs[xBusIndex] =
+ &(*l_matchProcInfoIter);
// HWAS state
- (*l_procInfoIter)->iv_XDeconfigured[xBusIndex] =
+ (*l_procInfoIter).iv_XDeconfigured[xBusIndex] =
!(isFunctional(*l_busIter));
xBusIndex++;
}
else if (TYPE_ABUS == (*l_busIter)->
getAttr<ATTR_TYPE>())
{
- (*l_procInfoIter)->iv_pAProcs[aBusIndex] =
- *l_matchProcInfoIter;
+ (*l_procInfoIter).iv_pAProcs[aBusIndex] =
+ &(*l_matchProcInfoIter);
// HWAS state
- (*l_procInfoIter)->iv_ADeconfigured[aBusIndex] =
+ (*l_procInfoIter).iv_ADeconfigured[aBusIndex] =
!(isFunctional(*l_busIter));
aBusIndex++;
}
@@ -921,28 +921,26 @@ errlHndl_t DeconfigGard::_invokeDeconfigureAssocProc()
}
// Iterate through l_procInfo and deconfigure any procs
// which _deconfigureAssocProc marked for deconfiguration
- for (std::vector<ProcInfo *>::const_iterator
+ for (ProcInfoVector::const_iterator
l_procInfoIter = l_procInfo.begin();
l_procInfoIter != l_procInfo.end();
++l_procInfoIter)
{
- if ((*l_procInfoIter)->iv_deconfigured &&
- (isFunctional((*l_procInfoIter)->iv_pThisProc)))
+ if ((*l_procInfoIter).iv_deconfigured &&
+ (isFunctional((*l_procInfoIter).iv_pThisProc)))
{
// Deconfigure marked procs
HWAS_INF("_invokeDeconfigureAssocProc is "
"deconfiguring proc: %.8X",
- get_huid((*l_procInfoIter)->iv_pThisProc));
- _deconfigureTarget(*(*l_procInfoIter)->
+ get_huid((*l_procInfoIter).iv_pThisProc));
+ _deconfigureTarget(*(*l_procInfoIter).
iv_pThisProc, DECONFIGURED_BY_BUS_DECONFIG);
- _deconfigureByAssoc(*(*l_procInfoIter)->
+ _deconfigureByAssoc(*(*l_procInfoIter).
iv_pThisProc, DECONFIGURED_BY_BUS_DECONFIG);
}
}
}while(0);
- // Free previously allocated memory
- while(!l_procInfo.empty()) delete l_procInfo.back(),
- l_procInfo.pop_back();
+
return l_pErr;
}
@@ -1453,8 +1451,7 @@ void DeconfigGard::processDeferredDeconfig()
} // processDeferredDeconfig
//******************************************************************************
-errlHndl_t DeconfigGard::_deconfigureAssocProc(
- std::vector<ProcInfo *> &io_procInfo)
+errlHndl_t DeconfigGard::_deconfigureAssocProc(ProcInfoVector &io_procInfo)
{
// Defined for possible use in future applications
errlHndl_t l_errlHdl = NULL;
@@ -1468,40 +1465,40 @@ errlHndl_t DeconfigGard::_deconfigureAssocProc(
// Find master proc
ProcInfo * l_pMasterProcInfo = NULL;
- for (std::vector<ProcInfo *>::const_iterator
+ for (ProcInfoVector::iterator
l_procInfoIter = io_procInfo.begin();
l_procInfoIter != io_procInfo.end();
++l_procInfoIter)
{
- if ((*l_procInfoIter)->iv_isMaster)
+ if ((*l_procInfoIter).iv_isMaster)
{
// Save for subsequent use
- l_pMasterProcInfo = *l_procInfoIter;
+ l_pMasterProcInfo = &(*l_procInfoIter);
// Iterate through bus endpoints, and if deconfigured,
// mark peer proc to be deconfigured
for (uint8_t i = 0; i < NUM_A_BUSES; i++)
{
- if ((*l_procInfoIter)->iv_ADeconfigured[i])
+ if ((*l_procInfoIter).iv_ADeconfigured[i])
{
HWAS_INF("deconfigureAssocProc marked proc: "
"%.8X for deconfiguration "
"due to deconfigured abus endpoint "
"on master proc.",
- (*l_procInfoIter)->iv_pAProcs[i]->procHUID);
- (*l_procInfoIter)->iv_pAProcs[i]->
+ (*l_procInfoIter).iv_pAProcs[i]->procHUID);
+ (*l_procInfoIter).iv_pAProcs[i]->
iv_deconfigured = true;
}
}
for (uint8_t i = 0; i < NUM_X_BUSES; i++)
{
- if ((*l_procInfoIter)->iv_XDeconfigured[i])
+ if ((*l_procInfoIter).iv_XDeconfigured[i])
{
HWAS_INF("deconfigureAssocProc marked proc: "
"%.8X for deconfiguration "
"due to deconfigured xbus endpoint "
"on master proc.",
- (*l_procInfoIter)->iv_pXProcs[i]->procHUID);
- (*l_procInfoIter)->iv_pXProcs[i]->
+ (*l_procInfoIter).iv_pXProcs[i]->procHUID);
+ (*l_procInfoIter).iv_pXProcs[i]->
iv_deconfigured = true;
}
}
@@ -1517,18 +1514,18 @@ errlHndl_t DeconfigGard::_deconfigureAssocProc(
// Iterate through procs, and mark deconfigured any
// non-master proc which has more than one bus endpoint
// chiplet deconfigured
- for (std::vector<ProcInfo *>::const_iterator
+ for (ProcInfoVector::iterator
l_procInfoIter = io_procInfo.begin();
l_procInfoIter != io_procInfo.end();
++l_procInfoIter)
{
// Don't deconfigure master proc
- if ((*l_procInfoIter)->iv_isMaster)
+ if ((*l_procInfoIter).iv_isMaster)
{
continue;
}
// Don't examine previously marked proc
- if ((*l_procInfoIter)->iv_deconfigured)
+ if ((*l_procInfoIter).iv_deconfigured)
{
continue;
}
@@ -1538,12 +1535,12 @@ errlHndl_t DeconfigGard::_deconfigureAssocProc(
// which are deconfigured
for (uint8_t i = 0; i < NUM_A_BUSES; i++)
{
- if ((*l_procInfoIter)->iv_ADeconfigured[i])
+ if ((*l_procInfoIter).iv_ADeconfigured[i])
{
// Only increment deconfigBusCounter if peer proc exists
// and is functional
- if((*l_procInfoIter)->iv_pAProcs[i] &&
- (!(*l_procInfoIter)->iv_pAProcs[i]->iv_deconfigured))
+ if((*l_procInfoIter).iv_pAProcs[i] &&
+ (!(*l_procInfoIter).iv_pAProcs[i]->iv_deconfigured))
{
deconfigBusCounter++;
}
@@ -1551,12 +1548,12 @@ errlHndl_t DeconfigGard::_deconfigureAssocProc(
}
for (uint8_t i = 0; i < NUM_X_BUSES; i++)
{
- if ((*l_procInfoIter)->iv_XDeconfigured[i])
+ if ((*l_procInfoIter).iv_XDeconfigured[i])
{
// Only increment deconfigBusCounter if peer proc exists
// and is functional
- if((*l_procInfoIter)->iv_pXProcs[i] &&
- (!(*l_procInfoIter)->iv_pXProcs[i]->iv_deconfigured))
+ if((*l_procInfoIter).iv_pXProcs[i] &&
+ (!(*l_procInfoIter).iv_pXProcs[i]->iv_deconfigured))
{
deconfigBusCounter++;
}
@@ -1570,9 +1567,9 @@ errlHndl_t DeconfigGard::_deconfigureAssocProc(
"%.8X for deconfiguration "
"due to %d deconfigured bus endpoints "
"on this proc.",
- (*l_procInfoIter)->procHUID,
+ (*l_procInfoIter).procHUID,
deconfigBusCounter);
- (*l_procInfoIter)->iv_deconfigured = true;
+ (*l_procInfoIter).iv_deconfigured = true;
}
}// STEP 2
@@ -1583,44 +1580,44 @@ errlHndl_t DeconfigGard::_deconfigureAssocProc(
// mark proc with higher HUID to be deconfigured.
// Iterate through procs and check xbus chiplets
- for (std::vector<ProcInfo *>::const_iterator
+ for (ProcInfoVector::iterator
l_procInfoIter = io_procInfo.begin();
l_procInfoIter != io_procInfo.end();
++l_procInfoIter)
{
// Master proc handled in STEP 1
- if ((*l_procInfoIter)->iv_isMaster)
+ if ((*l_procInfoIter).iv_isMaster)
{
continue;
}
// Don't examine previously marked proc
- if ((*l_procInfoIter)->iv_deconfigured)
+ if ((*l_procInfoIter).iv_deconfigured)
{
continue;
}
// If current proc is on master logical node
if (l_pMasterProcInfo->procFabricNode ==
- (*l_procInfoIter)->procFabricNode)
+ (*l_procInfoIter).procFabricNode)
{
// Check xbus endpoints
for (uint8_t i = 0; i < NUM_X_BUSES; i++)
{
// If endpoint deconfigured and endpoint peer proc is
// not already marked deconfigured
- if (((*l_procInfoIter)->iv_XDeconfigured[i]) &&
- (!((*l_procInfoIter)->iv_pXProcs[i]->iv_deconfigured)))
+ if (((*l_procInfoIter).iv_XDeconfigured[i]) &&
+ (!((*l_procInfoIter).iv_pXProcs[i]->iv_deconfigured)))
{
// Mark proc with higher HUID to be deconfigured
- if ((*l_procInfoIter)->iv_pXProcs[i]->procHUID >
- (*l_procInfoIter)->procHUID)
+ if ((*l_procInfoIter).iv_pXProcs[i]->procHUID >
+ (*l_procInfoIter).procHUID)
{
HWAS_INF("deconfigureAssocProc marked remote proc:"
" %.8X for deconfiguration "
"due to higher HUID than peer "
"proc on same master-containing logical "
"node.",
- (*l_procInfoIter)->iv_pXProcs[i]->procHUID);
- (*l_procInfoIter)->iv_pXProcs[i]->
+ (*l_procInfoIter).iv_pXProcs[i]->procHUID);
+ (*l_procInfoIter).iv_pXProcs[i]->
iv_deconfigured = true;
}
else
@@ -1630,8 +1627,8 @@ errlHndl_t DeconfigGard::_deconfigureAssocProc(
"due to higher HUID than peer "
"proc on same master-containing logical "
"node.",
- (*l_procInfoIter)->procHUID);
- (*l_procInfoIter)->iv_deconfigured = true;
+ (*l_procInfoIter).procHUID);
+ (*l_procInfoIter).iv_deconfigured = true;
}
}
}
@@ -1649,19 +1646,19 @@ errlHndl_t DeconfigGard::_deconfigureAssocProc(
// Iterate through procs and, if in non-master
// logical node, check xbus chiplets
- for (std::vector<ProcInfo *>::const_iterator
+ for (ProcInfoVector::iterator
l_procInfoIter = io_procInfo.begin();
l_procInfoIter != io_procInfo.end();
++l_procInfoIter)
{
// Don't examine previously marked proc
- if ((*l_procInfoIter)->iv_deconfigured)
+ if ((*l_procInfoIter).iv_deconfigured)
{
continue;
}
// Don't examine procs on master logical node
if (l_pMasterProcInfo->procFabricNode ==
- (*l_procInfoIter)->procFabricNode)
+ (*l_procInfoIter).procFabricNode)
{
continue;
}
@@ -1671,27 +1668,27 @@ errlHndl_t DeconfigGard::_deconfigureAssocProc(
{
// If endpoint deconfigured and endpoint peer proc
// is not already marked deconfigured
- if (((*l_procInfoIter)->iv_XDeconfigured[i]) &&
- (!((*l_procInfoIter)->iv_pXProcs[i]->iv_deconfigured)))
+ if (((*l_procInfoIter).iv_XDeconfigured[i]) &&
+ (!((*l_procInfoIter).iv_pXProcs[i]->iv_deconfigured)))
{
// Variable to indicate If this step results in
// finding a proc to mark deconfigured
bool l_chipIDmatch = false;
// Iterate through procs and examine ones found to
// be on the master-containing logical node
- for (std::vector<ProcInfo *>::const_iterator
+ for (ProcInfoVector::const_iterator
l_mNodeProcInfoIter = io_procInfo.begin();
l_mNodeProcInfoIter != io_procInfo.end();
++l_mNodeProcInfoIter)
{
if (l_pMasterProcInfo->procFabricNode ==
- (*l_mNodeProcInfoIter)->procFabricNode)
+ (*l_mNodeProcInfoIter).procFabricNode)
{
// If master logical node proc deconfigured with
// same FABRIC_CHIP_ID as current proc
- if (((*l_mNodeProcInfoIter)->iv_deconfigured) &&
- ((*l_mNodeProcInfoIter)->procFabricChip ==
- (*l_procInfoIter)->procFabricChip))
+ if (((*l_mNodeProcInfoIter).iv_deconfigured) &&
+ ((*l_mNodeProcInfoIter).procFabricChip ==
+ (*l_procInfoIter).procFabricChip))
{
// Mark current proc to be deconfigured
// and set chipIDmatch
@@ -1700,19 +1697,20 @@ errlHndl_t DeconfigGard::_deconfigureAssocProc(
"due to same position deconfigured "
"proc on master-containing logical "
"node.",
- (*l_procInfoIter)->procHUID);
- (*l_procInfoIter)->iv_deconfigured =\
+ (*l_procInfoIter).procHUID);
+ (*l_procInfoIter).iv_deconfigured =\
true;
l_chipIDmatch = true;
+ break;
}
// If master logical node proc deconfigured with
// same FABRIC_CHIP_ID as current proc's xbus peer
// proc
- else if (((*l_mNodeProcInfoIter)->
+ else if (((*l_mNodeProcInfoIter).
iv_deconfigured) &&
- ((*l_mNodeProcInfoIter)->
+ ((*l_mNodeProcInfoIter).
procFabricChip ==
- (*l_procInfoIter)->iv_pXProcs[i]->
+ (*l_procInfoIter).iv_pXProcs[i]->
procFabricChip))
{
// Mark peer proc to be deconfigured
@@ -1722,10 +1720,11 @@ errlHndl_t DeconfigGard::_deconfigureAssocProc(
"due to same position deconfigured "
"proc on master-containing logical "
"node.",
- (*l_procInfoIter)->iv_pXProcs[i]->procHUID);
- (*l_procInfoIter)->iv_pXProcs[i]->
+ (*l_procInfoIter).iv_pXProcs[i]->procHUID);
+ (*l_procInfoIter).iv_pXProcs[i]->
iv_deconfigured = true;
l_chipIDmatch = true;
+ break;
}
}
}
@@ -1733,16 +1732,16 @@ errlHndl_t DeconfigGard::_deconfigureAssocProc(
if (!(l_chipIDmatch))
{
// Deconfigure proc with higher HUID
- if ((*l_procInfoIter)->procHUID >
- (*l_procInfoIter)->iv_pXProcs[i]->procHUID)
+ if ((*l_procInfoIter).procHUID >
+ (*l_procInfoIter).iv_pXProcs[i]->procHUID)
{
HWAS_INF("deconfigureAssocProc marked proc:"
" %.8X for deconfiguration "
"due to higher HUID than peer "
"proc on same non master-containing logical "
"node.",
- (*l_procInfoIter)->procHUID);
- (*l_procInfoIter)->iv_deconfigured =
+ (*l_procInfoIter).procHUID);
+ (*l_procInfoIter).iv_deconfigured =
true;
}
else
@@ -1752,8 +1751,8 @@ errlHndl_t DeconfigGard::_deconfigureAssocProc(
"due to higher HUID than peer "
"proc on same non master-containing logical "
"node.",
- (*l_procInfoIter)->iv_pXProcs[i]->procHUID);
- (*l_procInfoIter)->iv_pXProcs[i]->
+ (*l_procInfoIter).iv_pXProcs[i]->procHUID);
+ (*l_procInfoIter).iv_pXProcs[i]->
iv_deconfigured = true;
}
}
@@ -1768,18 +1767,18 @@ errlHndl_t DeconfigGard::_deconfigureAssocProc(
// abus peer proc.
// Iterate through procs and check for deconfigured abus endpoints
- for (std::vector<ProcInfo *>::const_iterator
+ for (ProcInfoVector::iterator
l_procInfoIter = io_procInfo.begin();
l_procInfoIter != io_procInfo.end();
++l_procInfoIter)
{
// Master proc handled in STEP 1
- if ((*l_procInfoIter)->iv_isMaster)
+ if ((*l_procInfoIter).iv_isMaster)
{
continue;
}
// Don't examine procs which are already marked
- if ((*l_procInfoIter)->iv_deconfigured)
+ if ((*l_procInfoIter).iv_deconfigured)
{
continue;
}
@@ -1789,18 +1788,18 @@ errlHndl_t DeconfigGard::_deconfigureAssocProc(
{
// If endpoint deconfigured and endpoint peer proc
// is not already marked deconfigured
- if (((*l_procInfoIter)->iv_ADeconfigured[i]) &&
- (!((*l_procInfoIter)->iv_pAProcs[i]->iv_deconfigured)))
+ if (((*l_procInfoIter).iv_ADeconfigured[i]) &&
+ (!((*l_procInfoIter).iv_pAProcs[i]->iv_deconfigured)))
{
// Check XBUS peer
bool l_xbusPeerProcDeconfigured = false;
for (uint8_t j = 0; j < NUM_X_BUSES; j++)
{
// If peer proc exists
- if ((*l_procInfoIter)->iv_pXProcs[j])
+ if ((*l_procInfoIter).iv_pXProcs[j])
{
// If xbus peer proc deconfigured
- if ((*l_procInfoIter)->iv_pXProcs[j]->
+ if ((*l_procInfoIter).iv_pXProcs[j]->
iv_deconfigured)
{
// Set xbusPeerProcDeconfigured and deconfigure
@@ -1808,9 +1807,9 @@ errlHndl_t DeconfigGard::_deconfigureAssocProc(
HWAS_INF("deconfigureAssocProc marked proc:"
" %.8X for deconfiguration "
"due to deconfigured xbus peer proc.",
- (*l_procInfoIter)->procHUID);
+ (*l_procInfoIter).procHUID);
l_xbusPeerProcDeconfigured = true;
- (*l_procInfoIter)->iv_deconfigured = true;
+ (*l_procInfoIter).iv_deconfigured = true;
break;
}
}
@@ -1822,8 +1821,8 @@ errlHndl_t DeconfigGard::_deconfigureAssocProc(
HWAS_INF("deconfigureAssocProc marked "
"remote proc: %.8X for deconfiguration "
"due to functional xbus peer proc.",
- (*l_procInfoIter)->iv_pAProcs[i]->procHUID);
- (*l_procInfoIter)->iv_pAProcs[i]->
+ (*l_procInfoIter).iv_pAProcs[i]->procHUID);
+ (*l_procInfoIter).iv_pAProcs[i]->
iv_deconfigured = true;
}
}
@@ -1841,8 +1840,7 @@ errlHndl_t DeconfigGard::_deconfigureAssocProc(
//******************************************************************************
-errlHndl_t DeconfigGard::_symmetryValidation(
- std::vector<ProcInfo *> &io_procInfo)
+errlHndl_t DeconfigGard::_symmetryValidation(ProcInfoVector &io_procInfo)
{
// Defined for possible use in future applications
errlHndl_t l_errlHdl = NULL;
@@ -1858,16 +1856,16 @@ errlHndl_t DeconfigGard::_symmetryValidation(
// Find master proc
ProcInfo * l_pMasterProcInfo = NULL;
- for (std::vector<ProcInfo *>::const_iterator
+ for (ProcInfoVector::iterator
l_procInfoIter = io_procInfo.begin();
l_procInfoIter != io_procInfo.end();
++l_procInfoIter)
{
// If master proc
- if ((*l_procInfoIter)->iv_isMaster)
+ if ((*l_procInfoIter).iv_isMaster)
{
// Save for subsequent use
- l_pMasterProcInfo = *l_procInfoIter;
+ l_pMasterProcInfo = &(*l_procInfoIter);
break;
}
}
@@ -1875,36 +1873,36 @@ errlHndl_t DeconfigGard::_symmetryValidation(
HWAS_ASSERT(l_pMasterProcInfo, "HWAS _symmetryValidation:"
"Master proc not found");
// Iterate through procs and check if in master logical node
- for (std::vector<ProcInfo *>::const_iterator
+ for (ProcInfoVector::const_iterator
l_procInfoIter = io_procInfo.begin();
l_procInfoIter != io_procInfo.end();
++l_procInfoIter)
{
// Skip master proc
- if ((*l_procInfoIter)->iv_isMaster)
+ if ((*l_procInfoIter).iv_isMaster)
{
continue;
}
// If current proc is on master logical node
// and marked as deconfigured
if ((l_pMasterProcInfo->procFabricNode ==
- (*l_procInfoIter)->procFabricNode) &&
- ((*l_procInfoIter)->iv_deconfigured))
+ (*l_procInfoIter).procFabricNode) &&
+ ((*l_procInfoIter).iv_deconfigured))
{
// Iterate through procs and mark any same-
// position procs as deconfigured
- for (std::vector<ProcInfo *>::const_iterator
+ for (ProcInfoVector::iterator
l_posProcInfoIter = io_procInfo.begin();
l_posProcInfoIter != io_procInfo.end();
++l_posProcInfoIter)
{
- if ((*l_procInfoIter)->procFabricChip ==
- (*l_posProcInfoIter)->procFabricChip)
+ if ((*l_procInfoIter).procFabricChip ==
+ (*l_posProcInfoIter).procFabricChip)
{
HWAS_INF("symmetryValidation step 1 marked proc: "
"%.8X for deconfiguration.",
- (*l_posProcInfoIter)->procHUID);
- (*l_posProcInfoIter)->iv_deconfigured = true;
+ (*l_posProcInfoIter).procHUID);
+ (*l_posProcInfoIter).iv_deconfigured = true;
}
}
}
@@ -1918,17 +1916,17 @@ errlHndl_t DeconfigGard::_symmetryValidation(
// Iterate through procs, if marked deconfigured, compare chip
// position to functional chip on master node.
- for (std::vector<ProcInfo *>::const_iterator
+ for (ProcInfoVector::const_iterator
l_procInfoIter = io_procInfo.begin();
l_procInfoIter != io_procInfo.end();
++l_procInfoIter)
{
// If proc is marked deconfigured
- if ((*l_procInfoIter)->iv_deconfigured)
+ if ((*l_procInfoIter).iv_deconfigured)
{
// Iterate through procs, examining those on
// the master logical node
- for (std::vector<ProcInfo *>::const_iterator
+ for (ProcInfoVector::const_iterator
l_mNodeProcInfoIter = io_procInfo.begin();
l_mNodeProcInfoIter != io_procInfo.end();
++l_mNodeProcInfoIter)
@@ -1937,23 +1935,23 @@ errlHndl_t DeconfigGard::_symmetryValidation(
// functional, and matches the position of the deconfigured
// proc from the outer loop
if ((l_pMasterProcInfo->procFabricNode ==
- (*l_mNodeProcInfoIter)->procFabricNode) &&
- (!((*l_mNodeProcInfoIter)->iv_deconfigured)) &&
- ((*l_mNodeProcInfoIter)->procFabricChip ==
- (*l_procInfoIter)->procFabricChip))
+ (*l_mNodeProcInfoIter).procFabricNode) &&
+ (!((*l_mNodeProcInfoIter).iv_deconfigured)) &&
+ ((*l_mNodeProcInfoIter).procFabricChip ==
+ (*l_procInfoIter).procFabricChip))
{
// Find xbus peer proc to mark deconfigured
for (uint8_t i = 0; i < NUM_X_BUSES; i++)
{
// If xbus peer proc exists, mark it
- if ((*l_procInfoIter)->iv_pXProcs[i])
+ if ((*l_procInfoIter).iv_pXProcs[i])
{
HWAS_INF("symmetryValidation step 2 "
"marked proc: %.8X for "
"deconfiguration.",
- (*l_procInfoIter)->
+ (*l_procInfoIter).
iv_pXProcs[i]->procHUID);
- (*l_procInfoIter)->iv_pXProcs[i]->
+ (*l_procInfoIter).iv_pXProcs[i]->
iv_deconfigured = true;
}
}
diff --git a/src/usr/hwas/test/hwasGardTest.H b/src/usr/hwas/test/hwasGardTest.H
index 96d0f0c3f..5ed0c50a9 100644
--- a/src/usr/hwas/test/hwasGardTest.H
+++ b/src/usr/hwas/test/hwasGardTest.H
@@ -146,6 +146,7 @@ public:
/**
* @brief Test Deconfiguring a Target directly
*/
+
void testDeconfigure3()
{
TS_TRACE(INFO_MRK "testDeconfigure3: Started");
@@ -1786,72 +1787,69 @@ public:
errlHndl_t l_pErr = NULL;
// User-defined number of procs
- uint8_t NUM_PROCS = 4;
+ size_t NUM_PROCS = 4;
// Define and populate vector
- std::vector<DeconfigGard::ProcInfo *> l_tuletaProcs(NUM_PROCS);
-
- for (uint8_t i = 0; i < NUM_PROCS; i++)
- {
- l_tuletaProcs[i] = new DeconfigGard::ProcInfo();
- }
+ DeconfigGard::ProcInfoVector l_tuletaProcs;
+ DeconfigGard::ProcInfo l_ProcInfo = DeconfigGard::ProcInfo();
+ l_tuletaProcs.insert(l_tuletaProcs.begin(), NUM_PROCS, l_ProcInfo);
// Set proc options
// Proc0:
- l_tuletaProcs[0]->iv_pThisProc = NULL; // Target *
- l_tuletaProcs[0]->procHUID = 0; // HUID
- l_tuletaProcs[0]->procFabricNode = 0; // FABRIC_NODE_ID
- l_tuletaProcs[0]->procFabricChip = 0; // FABRIC_CHIP_ID
- l_tuletaProcs[0]->iv_isMaster = true; // Master proc
- l_tuletaProcs[0]->iv_deconfigured = false; // HWAS state
+ l_tuletaProcs[0].iv_pThisProc = NULL; // Target *
+ l_tuletaProcs[0].procHUID = 0; // HUID
+ l_tuletaProcs[0].procFabricNode = 0; // FABRIC_NODE_ID
+ l_tuletaProcs[0].procFabricChip = 0; // FABRIC_CHIP_ID
+ l_tuletaProcs[0].iv_isMaster = true; // Master proc
+ l_tuletaProcs[0].iv_deconfigured = false; // HWAS state
// ABus links and states
// abus1 and 2 linked to proc2
- l_tuletaProcs[0]->iv_pAProcs[0] = l_tuletaProcs[2];
- l_tuletaProcs[0]->iv_pAProcs[1] = l_tuletaProcs[2];
+ l_tuletaProcs[0].iv_pAProcs[0] = &l_tuletaProcs[2];
+ l_tuletaProcs[0].iv_pAProcs[1] = &l_tuletaProcs[2];
// abus1 endpoint deconfigured
- l_tuletaProcs[0]->iv_ADeconfigured[0] = true;
+ l_tuletaProcs[0].iv_ADeconfigured[0] = true;
// XBus links and states
- l_tuletaProcs[0]->iv_pXProcs[0] = l_tuletaProcs[1];
+ l_tuletaProcs[0].iv_pXProcs[0] = &l_tuletaProcs[1];
// Proc1:
- l_tuletaProcs[1]->iv_pThisProc = NULL; // Target *
- l_tuletaProcs[1]->procHUID = 1; // HUID
- l_tuletaProcs[1]->procFabricNode = 0; // FABRIC_NODE_ID
- l_tuletaProcs[1]->procFabricChip = 1; // FABRIC_CHIP_ID
- l_tuletaProcs[1]->iv_isMaster = false; // Not master proc
- l_tuletaProcs[1]->iv_deconfigured = false; // HWAS state
+ l_tuletaProcs[1].iv_pThisProc = NULL; // Target *
+ l_tuletaProcs[1].procHUID = 1; // HUID
+ l_tuletaProcs[1].procFabricNode = 0; // FABRIC_NODE_ID
+ l_tuletaProcs[1].procFabricChip = 1; // FABRIC_CHIP_ID
+ l_tuletaProcs[1].iv_isMaster = false; // Not master proc
+ l_tuletaProcs[1].iv_deconfigured = false; // HWAS state
// ABus links and states
- l_tuletaProcs[1]->iv_pAProcs[0] = l_tuletaProcs[3];
- l_tuletaProcs[1]->iv_pAProcs[1] = l_tuletaProcs[3];
+ l_tuletaProcs[1].iv_pAProcs[0] = &l_tuletaProcs[3];
+ l_tuletaProcs[1].iv_pAProcs[1] = &l_tuletaProcs[3];
// XBus links and states
- l_tuletaProcs[1]->iv_pXProcs[0] = l_tuletaProcs[0];
+ l_tuletaProcs[1].iv_pXProcs[0] = &l_tuletaProcs[0];
// Proc2:
- l_tuletaProcs[2]->iv_pThisProc = NULL; // Target *
- l_tuletaProcs[2]->procHUID = 2; // HUID
- l_tuletaProcs[2]->procFabricNode = 1; // FABRIC_NODE_ID
- l_tuletaProcs[2]->procFabricChip = 0; // FABRIC_CHIP_ID
- l_tuletaProcs[2]->iv_isMaster = false; // Not master proc
- l_tuletaProcs[2]->iv_deconfigured = false; // HWAS state
+ l_tuletaProcs[2].iv_pThisProc = NULL; // Target *
+ l_tuletaProcs[2].procHUID = 2; // HUID
+ l_tuletaProcs[2].procFabricNode = 1; // FABRIC_NODE_ID
+ l_tuletaProcs[2].procFabricChip = 0; // FABRIC_CHIP_ID
+ l_tuletaProcs[2].iv_isMaster = false; // Not master proc
+ l_tuletaProcs[2].iv_deconfigured = false; // HWAS state
// ABus links and states
- l_tuletaProcs[2]->iv_pAProcs[0] = l_tuletaProcs[0];
- l_tuletaProcs[2]->iv_pAProcs[1] = l_tuletaProcs[0];
- l_tuletaProcs[2]->iv_ADeconfigured[0] = true;
+ l_tuletaProcs[2].iv_pAProcs[0] = &l_tuletaProcs[0];
+ l_tuletaProcs[2].iv_pAProcs[1] = &l_tuletaProcs[0];
+ l_tuletaProcs[2].iv_ADeconfigured[0] = true;
// XBus links and states
- l_tuletaProcs[2]->iv_pXProcs[0] = l_tuletaProcs[3];
+ l_tuletaProcs[2].iv_pXProcs[0] = &l_tuletaProcs[3];
// Proc3:
- l_tuletaProcs[3]->iv_pThisProc = NULL; // Target *
- l_tuletaProcs[3]->procHUID = 3; // HUID
- l_tuletaProcs[3]->procFabricNode = 1; // FABRIC_NODE_ID
- l_tuletaProcs[3]->procFabricChip = 1; // FABRIC_CHIP_ID
- l_tuletaProcs[3]->iv_isMaster = false; // Not master proc
- l_tuletaProcs[3]->iv_deconfigured = false; // HWAS state
+ l_tuletaProcs[3].iv_pThisProc = NULL; // Target *
+ l_tuletaProcs[3].procHUID = 3; // HUID
+ l_tuletaProcs[3].procFabricNode = 1; // FABRIC_NODE_ID
+ l_tuletaProcs[3].procFabricChip = 1; // FABRIC_CHIP_ID
+ l_tuletaProcs[3].iv_isMaster = false; // Not master proc
+ l_tuletaProcs[3].iv_deconfigured = false; // HWAS state
// ABus links and states
- l_tuletaProcs[3]->iv_pAProcs[0] = l_tuletaProcs[1];
- l_tuletaProcs[3]->iv_pAProcs[1] = l_tuletaProcs[2];
+ l_tuletaProcs[3].iv_pAProcs[0] = &l_tuletaProcs[1];
+ l_tuletaProcs[3].iv_pAProcs[1] = &l_tuletaProcs[2];
// XBus links and states
- l_tuletaProcs[3]->iv_pXProcs[0] = l_tuletaProcs[2];
+ l_tuletaProcs[3].iv_pXProcs[0] = &l_tuletaProcs[2];
// Call _deconfigureAssocProc to determine which procs
// should be deconfigured based on state of system passed in
@@ -1862,10 +1860,10 @@ public:
}
// Check result
- if (l_tuletaProcs[0]->iv_deconfigured == false &&
- l_tuletaProcs[1]->iv_deconfigured == false &&
- l_tuletaProcs[2]->iv_deconfigured == true &&
- l_tuletaProcs[3]->iv_deconfigured == true)
+ if (l_tuletaProcs[0].iv_deconfigured == false &&
+ l_tuletaProcs[1].iv_deconfigured == false &&
+ l_tuletaProcs[2].iv_deconfigured == true &&
+ l_tuletaProcs[3].iv_deconfigured == true)
{
TS_TRACE(INFO_MRK "testDeconfigureAssocProc1: Success");
}
@@ -1873,9 +1871,6 @@ public:
{
TS_FAIL("testDeconfigureAssocProc1: incorrect configuration returned");
}
- // Free previously allocated memory
- while(!l_tuletaProcs.empty()) delete l_tuletaProcs.back(),
- l_tuletaProcs.pop_back();
}
@@ -1901,69 +1896,66 @@ public:
errlHndl_t l_pErr = NULL;
// User-defined number of procs
- uint8_t NUM_PROCS = 4;
+ size_t NUM_PROCS = 4;
// Define and populate vector
- std::vector<DeconfigGard::ProcInfo *> l_tuletaProcs(NUM_PROCS);
-
- for (uint8_t i = 0; i < NUM_PROCS; i++)
- {
- l_tuletaProcs[i] = new DeconfigGard::ProcInfo();
- }
+ DeconfigGard::ProcInfoVector l_tuletaProcs;
+ DeconfigGard::ProcInfo l_ProcInfo = DeconfigGard::ProcInfo();
+ l_tuletaProcs.insert(l_tuletaProcs.begin(), NUM_PROCS, l_ProcInfo);
// Proc0:
- l_tuletaProcs[0]->iv_pThisProc = NULL; // Target *
- l_tuletaProcs[0]->procHUID = 0; // HUID
- l_tuletaProcs[0]->procFabricNode = 0; // FABRIC_NODE_ID
- l_tuletaProcs[0]->procFabricChip = 0; // FABRIC_CHIP_ID
- l_tuletaProcs[0]->iv_isMaster = false; // Note master proc
- l_tuletaProcs[0]->iv_deconfigured = false; // HWAS state
+ l_tuletaProcs[0].iv_pThisProc = NULL; // Target *
+ l_tuletaProcs[0].procHUID = 0; // HUID
+ l_tuletaProcs[0].procFabricNode = 0; // FABRIC_NODE_ID
+ l_tuletaProcs[0].procFabricChip = 0; // FABRIC_CHIP_ID
+ l_tuletaProcs[0].iv_isMaster = false; // Note master proc
+ l_tuletaProcs[0].iv_deconfigured = false; // HWAS state
// ABus links and states
- l_tuletaProcs[0]->iv_pAProcs[0] = l_tuletaProcs[2];
- l_tuletaProcs[0]->iv_pAProcs[1] = l_tuletaProcs[2];
+ l_tuletaProcs[0].iv_pAProcs[0] = &l_tuletaProcs[2];
+ l_tuletaProcs[0].iv_pAProcs[1] = &l_tuletaProcs[2];
// XBus links and states
- l_tuletaProcs[0]->iv_pXProcs[0] = l_tuletaProcs[1];
+ l_tuletaProcs[0].iv_pXProcs[0] = &l_tuletaProcs[1];
// Proc1:
- l_tuletaProcs[1]->iv_pThisProc = NULL; // Target *
- l_tuletaProcs[1]->procHUID = 1; // HUID
- l_tuletaProcs[1]->procFabricNode = 0; // FABRIC_NODE_ID
- l_tuletaProcs[1]->procFabricChip = 1; // FABRIC_CHIP_ID
- l_tuletaProcs[1]->iv_isMaster = false; // Not master proc
- l_tuletaProcs[1]->iv_deconfigured = false; // HWAS state
+ l_tuletaProcs[1].iv_pThisProc = NULL; // Target *
+ l_tuletaProcs[1].procHUID = 1; // HUID
+ l_tuletaProcs[1].procFabricNode = 0; // FABRIC_NODE_ID
+ l_tuletaProcs[1].procFabricChip = 1; // FABRIC_CHIP_ID
+ l_tuletaProcs[1].iv_isMaster = false; // Not master proc
+ l_tuletaProcs[1].iv_deconfigured = false; // HWAS state
// ABus links and states
- l_tuletaProcs[1]->iv_pAProcs[0] = l_tuletaProcs[3];
- l_tuletaProcs[1]->iv_pAProcs[1] = l_tuletaProcs[3];
+ l_tuletaProcs[1].iv_pAProcs[0] = &l_tuletaProcs[3];
+ l_tuletaProcs[1].iv_pAProcs[1] = &l_tuletaProcs[3];
// XBus links and states
- l_tuletaProcs[1]->iv_pXProcs[0] = l_tuletaProcs[0];
+ l_tuletaProcs[1].iv_pXProcs[0] = &l_tuletaProcs[0];
// Proc2:
- l_tuletaProcs[2]->iv_pThisProc = NULL; // Target *
- l_tuletaProcs[2]->procHUID = 2; // HUID
- l_tuletaProcs[2]->procFabricNode = 1; // FABRIC_NODE_ID
- l_tuletaProcs[2]->procFabricChip = 0; // FABRIC_CHIP_ID
- l_tuletaProcs[2]->iv_isMaster = true; // Master proc
- l_tuletaProcs[2]->iv_deconfigured = false; // HWAS state
+ l_tuletaProcs[2].iv_pThisProc = NULL; // Target *
+ l_tuletaProcs[2].procHUID = 2; // HUID
+ l_tuletaProcs[2].procFabricNode = 1; // FABRIC_NODE_ID
+ l_tuletaProcs[2].procFabricChip = 0; // FABRIC_CHIP_ID
+ l_tuletaProcs[2].iv_isMaster = true; // Master proc
+ l_tuletaProcs[2].iv_deconfigured = false; // HWAS state
// ABus links and states
- l_tuletaProcs[2]->iv_pAProcs[0] = l_tuletaProcs[0];
- l_tuletaProcs[2]->iv_pAProcs[1] = l_tuletaProcs[0];
+ l_tuletaProcs[2].iv_pAProcs[0] = &l_tuletaProcs[0];
+ l_tuletaProcs[2].iv_pAProcs[1] = &l_tuletaProcs[0];
// XBus links and states
- l_tuletaProcs[2]->iv_pXProcs[0] = l_tuletaProcs[3];
- l_tuletaProcs[2]->iv_XDeconfigured[0] = true;
+ l_tuletaProcs[2].iv_pXProcs[0] = &l_tuletaProcs[3];
+ l_tuletaProcs[2].iv_XDeconfigured[0] = true;
// Proc3:
- l_tuletaProcs[3]->iv_pThisProc = NULL; // Target *
- l_tuletaProcs[3]->procHUID = 3; // HUID
- l_tuletaProcs[3]->procFabricNode = 1; // FABRIC_NODE_ID
- l_tuletaProcs[3]->procFabricChip = 1; // FABRIC_CHIP_ID
- l_tuletaProcs[3]->iv_isMaster = false; // Not master proc
- l_tuletaProcs[3]->iv_deconfigured = false; // HWAS state
+ l_tuletaProcs[3].iv_pThisProc = NULL; // Target *
+ l_tuletaProcs[3].procHUID = 3; // HUID
+ l_tuletaProcs[3].procFabricNode = 1; // FABRIC_NODE_ID
+ l_tuletaProcs[3].procFabricChip = 1; // FABRIC_CHIP_ID
+ l_tuletaProcs[3].iv_isMaster = false; // Not master proc
+ l_tuletaProcs[3].iv_deconfigured = false; // HWAS state
// ABus links and states
- l_tuletaProcs[3]->iv_pAProcs[0] = l_tuletaProcs[1];
- l_tuletaProcs[3]->iv_pAProcs[1] = l_tuletaProcs[1];
+ l_tuletaProcs[3].iv_pAProcs[0] = &l_tuletaProcs[1];
+ l_tuletaProcs[3].iv_pAProcs[1] = &l_tuletaProcs[1];
// XBus links and states
- l_tuletaProcs[3]->iv_pXProcs[0] = l_tuletaProcs[2];
- l_tuletaProcs[3]->iv_XDeconfigured[0] = true;
+ l_tuletaProcs[3].iv_pXProcs[0] = &l_tuletaProcs[2];
+ l_tuletaProcs[3].iv_XDeconfigured[0] = true;
// Call _deconfigureAssocProc to determine which procs
// should be deconfigured based on state of system passed in
@@ -1974,10 +1966,10 @@ public:
}
// Check result
- if (l_tuletaProcs[0]->iv_deconfigured == false &&
- l_tuletaProcs[1]->iv_deconfigured == true &&
- l_tuletaProcs[2]->iv_deconfigured == false &&
- l_tuletaProcs[3]->iv_deconfigured == true)
+ if (l_tuletaProcs[0].iv_deconfigured == false &&
+ l_tuletaProcs[1].iv_deconfigured == true &&
+ l_tuletaProcs[2].iv_deconfigured == false &&
+ l_tuletaProcs[3].iv_deconfigured == true)
{
TS_TRACE(INFO_MRK "testDeconfigureAssocProc2: Success");
}
@@ -1985,9 +1977,6 @@ public:
{
TS_FAIL("testDeconfigureAssocProc2: incorrect configuration returned");
}
- // Free previously allocated memory
- while(!l_tuletaProcs.empty()) delete l_tuletaProcs.back(),
- l_tuletaProcs.pop_back();
}
/**
@@ -2011,129 +2000,126 @@ public:
errlHndl_t l_pErr = NULL;
// User-defined number of procs
- uint8_t NUM_PROCS = 8;
+ size_t NUM_PROCS = 8;
// Define and populate vector
- std::vector<DeconfigGard::ProcInfo *> l_orlenaProcs(NUM_PROCS);
-
- for (uint8_t i = 0; i < NUM_PROCS; i++)
- {
- l_orlenaProcs[i] = new DeconfigGard::ProcInfo();
- }
+ DeconfigGard::ProcInfoVector l_orlenaProcs;
+ DeconfigGard::ProcInfo l_ProcInfo = DeconfigGard::ProcInfo();
+ l_orlenaProcs.insert(l_orlenaProcs.begin(), NUM_PROCS, l_ProcInfo);
// Proc0:
- l_orlenaProcs[0]->iv_pThisProc = NULL; // Target *
- l_orlenaProcs[0]->procHUID = 0; // HUID
- l_orlenaProcs[0]->procFabricNode = 0; // FABRIC_NODE_ID
- l_orlenaProcs[0]->procFabricChip = 0; // FABRIC_CHIP_ID
- l_orlenaProcs[0]->iv_isMaster = true; // Master proc
- l_orlenaProcs[0]->iv_deconfigured = false; // HWAS state
+ l_orlenaProcs[0].iv_pThisProc = NULL; // Target *
+ l_orlenaProcs[0].procHUID = 0; // HUID
+ l_orlenaProcs[0].procFabricNode = 0; // FABRIC_NODE_ID
+ l_orlenaProcs[0].procFabricChip = 0; // FABRIC_CHIP_ID
+ l_orlenaProcs[0].iv_isMaster = true; // Master proc
+ l_orlenaProcs[0].iv_deconfigured = false; // HWAS state
// ABus links and states
- l_orlenaProcs[0]->iv_pAProcs[0] = l_orlenaProcs[2];
- l_orlenaProcs[0]->iv_pAProcs[1] = l_orlenaProcs[4];
- l_orlenaProcs[0]->iv_pAProcs[2] = l_orlenaProcs[6];
+ l_orlenaProcs[0].iv_pAProcs[0] = &l_orlenaProcs[2];
+ l_orlenaProcs[0].iv_pAProcs[1] = &l_orlenaProcs[4];
+ l_orlenaProcs[0].iv_pAProcs[2] = &l_orlenaProcs[6];
// XBus links and states
- l_orlenaProcs[0]->iv_pXProcs[0] = l_orlenaProcs[1];
- l_orlenaProcs[0]->iv_XDeconfigured[0] = true;
+ l_orlenaProcs[0].iv_pXProcs[0] = &l_orlenaProcs[1];
+ l_orlenaProcs[0].iv_XDeconfigured[0] = true;
// Proc1:
- l_orlenaProcs[1]->iv_pThisProc = NULL; // Target *
- l_orlenaProcs[1]->procHUID = 1; // HUID
- l_orlenaProcs[1]->procFabricNode = 0; // FABRIC_NODE_ID
- l_orlenaProcs[1]->procFabricChip = 1; // FABRIC_CHIP_ID
- l_orlenaProcs[1]->iv_isMaster = false; // Not master proc
- l_orlenaProcs[1]->iv_deconfigured = false; // HWAS state
+ l_orlenaProcs[1].iv_pThisProc = NULL; // Target *
+ l_orlenaProcs[1].procHUID = 1; // HUID
+ l_orlenaProcs[1].procFabricNode = 0; // FABRIC_NODE_ID
+ l_orlenaProcs[1].procFabricChip = 1; // FABRIC_CHIP_ID
+ l_orlenaProcs[1].iv_isMaster = false; // Not master proc
+ l_orlenaProcs[1].iv_deconfigured = false; // HWAS state
// ABus links and states
- l_orlenaProcs[1]->iv_pAProcs[0] = l_orlenaProcs[5];
- l_orlenaProcs[1]->iv_pAProcs[1] = l_orlenaProcs[7];
- l_orlenaProcs[1]->iv_pAProcs[2] = l_orlenaProcs[3];
+ l_orlenaProcs[1].iv_pAProcs[0] = &l_orlenaProcs[5];
+ l_orlenaProcs[1].iv_pAProcs[1] = &l_orlenaProcs[7];
+ l_orlenaProcs[1].iv_pAProcs[2] = &l_orlenaProcs[3];
// XBus links and states
- l_orlenaProcs[1]->iv_pXProcs[0] = l_orlenaProcs[0];
- l_orlenaProcs[1]->iv_XDeconfigured[0] = true;
+ l_orlenaProcs[1].iv_pXProcs[0] = &l_orlenaProcs[0];
+ l_orlenaProcs[1].iv_XDeconfigured[0] = true;
// Proc2:
- l_orlenaProcs[2]->iv_pThisProc = NULL; // Target *
- l_orlenaProcs[2]->procHUID = 2; // HUID
- l_orlenaProcs[2]->procFabricNode = 1; // FABRIC_NODE_ID
- l_orlenaProcs[2]->procFabricChip = 0; // FABRIC_CHIP_ID
- l_orlenaProcs[2]->iv_isMaster = false; // Not master proc
- l_orlenaProcs[2]->iv_deconfigured = false; // HWAS state
+ l_orlenaProcs[2].iv_pThisProc = NULL; // Target *
+ l_orlenaProcs[2].procHUID = 2; // HUID
+ l_orlenaProcs[2].procFabricNode = 1; // FABRIC_NODE_ID
+ l_orlenaProcs[2].procFabricChip = 0; // FABRIC_CHIP_ID
+ l_orlenaProcs[2].iv_isMaster = false; // Not master proc
+ l_orlenaProcs[2].iv_deconfigured = false; // HWAS state
// ABus links and states
- l_orlenaProcs[2]->iv_pAProcs[0] = l_orlenaProcs[0];
- l_orlenaProcs[2]->iv_pAProcs[1] = l_orlenaProcs[6];
- l_orlenaProcs[2]->iv_pAProcs[2] = l_orlenaProcs[4];
+ l_orlenaProcs[2].iv_pAProcs[0] = &l_orlenaProcs[0];
+ l_orlenaProcs[2].iv_pAProcs[1] = &l_orlenaProcs[6];
+ l_orlenaProcs[2].iv_pAProcs[2] = &l_orlenaProcs[4];
// XBus links and states
- l_orlenaProcs[2]->iv_pXProcs[0] = l_orlenaProcs[3];
+ l_orlenaProcs[2].iv_pXProcs[0] = &l_orlenaProcs[3];
// Proc3:
- l_orlenaProcs[3]->iv_pThisProc = NULL; // Target *
- l_orlenaProcs[3]->procHUID = 3; // HUID
- l_orlenaProcs[3]->procFabricNode = 1; // FABRIC_NODE_ID
- l_orlenaProcs[3]->procFabricChip = 1; // FABRIC_CHIP_ID
- l_orlenaProcs[3]->iv_isMaster = false; // Not master proc
- l_orlenaProcs[3]->iv_deconfigured = false; // HWAS state
+ l_orlenaProcs[3].iv_pThisProc = NULL; // Target *
+ l_orlenaProcs[3].procHUID = 3; // HUID
+ l_orlenaProcs[3].procFabricNode = 1; // FABRIC_NODE_ID
+ l_orlenaProcs[3].procFabricChip = 1; // FABRIC_CHIP_ID
+ l_orlenaProcs[3].iv_isMaster = false; // Not master proc
+ l_orlenaProcs[3].iv_deconfigured = false; // HWAS state
// ABus links and states
- l_orlenaProcs[3]->iv_pAProcs[0] = l_orlenaProcs[7];
- l_orlenaProcs[3]->iv_pAProcs[1] = l_orlenaProcs[5];
- l_orlenaProcs[3]->iv_pAProcs[2] = l_orlenaProcs[1];
+ l_orlenaProcs[3].iv_pAProcs[0] = &l_orlenaProcs[7];
+ l_orlenaProcs[3].iv_pAProcs[1] = &l_orlenaProcs[5];
+ l_orlenaProcs[3].iv_pAProcs[2] = &l_orlenaProcs[1];
// XBus links and states
- l_orlenaProcs[3]->iv_pXProcs[0] = l_orlenaProcs[2];
+ l_orlenaProcs[3].iv_pXProcs[0] = &l_orlenaProcs[2];
// Proc4:
- l_orlenaProcs[4]->iv_pThisProc = NULL; // Target *
- l_orlenaProcs[4]->procHUID = 4; // HUID
- l_orlenaProcs[4]->procFabricNode = 2; // FABRIC_NODE_ID
- l_orlenaProcs[4]->procFabricChip = 0; // FABRIC_CHIP_ID
- l_orlenaProcs[4]->iv_isMaster = false; // Master proc
- l_orlenaProcs[4]->iv_deconfigured = false; // HWAS state
+ l_orlenaProcs[4].iv_pThisProc = NULL; // Target *
+ l_orlenaProcs[4].procHUID = 4; // HUID
+ l_orlenaProcs[4].procFabricNode = 2; // FABRIC_NODE_ID
+ l_orlenaProcs[4].procFabricChip = 0; // FABRIC_CHIP_ID
+ l_orlenaProcs[4].iv_isMaster = false; // Master proc
+ l_orlenaProcs[4].iv_deconfigured = false; // HWAS state
// ABus links and states
- l_orlenaProcs[4]->iv_pAProcs[0] = l_orlenaProcs[6];
- l_orlenaProcs[4]->iv_pAProcs[1] = l_orlenaProcs[0];
- l_orlenaProcs[4]->iv_pAProcs[2] = l_orlenaProcs[2];
+ l_orlenaProcs[4].iv_pAProcs[0] = &l_orlenaProcs[6];
+ l_orlenaProcs[4].iv_pAProcs[1] = &l_orlenaProcs[0];
+ l_orlenaProcs[4].iv_pAProcs[2] = &l_orlenaProcs[2];
// XBus links and states
- l_orlenaProcs[4]->iv_pXProcs[0] = l_orlenaProcs[5];
+ l_orlenaProcs[4].iv_pXProcs[0] = &l_orlenaProcs[5];
// Proc5:
- l_orlenaProcs[5]->iv_pThisProc = NULL; // Target *
- l_orlenaProcs[5]->procHUID = 5; // HUID
- l_orlenaProcs[5]->procFabricNode = 2; // FABRIC_NODE_ID
- l_orlenaProcs[5]->procFabricChip = 1; // FABRIC_CHIP_ID
- l_orlenaProcs[5]->iv_isMaster = false; // Not master proc
- l_orlenaProcs[5]->iv_deconfigured = false; // HWAS state
+ l_orlenaProcs[5].iv_pThisProc = NULL; // Target *
+ l_orlenaProcs[5].procHUID = 5; // HUID
+ l_orlenaProcs[5].procFabricNode = 2; // FABRIC_NODE_ID
+ l_orlenaProcs[5].procFabricChip = 1; // FABRIC_CHIP_ID
+ l_orlenaProcs[5].iv_isMaster = false; // Not master proc
+ l_orlenaProcs[5].iv_deconfigured = false; // HWAS state
// ABus links and states
- l_orlenaProcs[5]->iv_pAProcs[0] = l_orlenaProcs[1];
- l_orlenaProcs[5]->iv_pAProcs[1] = l_orlenaProcs[3];
- l_orlenaProcs[5]->iv_pAProcs[2] = l_orlenaProcs[7];
+ l_orlenaProcs[5].iv_pAProcs[0] = &l_orlenaProcs[1];
+ l_orlenaProcs[5].iv_pAProcs[1] = &l_orlenaProcs[3];
+ l_orlenaProcs[5].iv_pAProcs[2] = &l_orlenaProcs[7];
// XBus links and states
- l_orlenaProcs[5]->iv_pXProcs[0] = l_orlenaProcs[4];
+ l_orlenaProcs[5].iv_pXProcs[0] = &l_orlenaProcs[4];
// Proc6:
- l_orlenaProcs[6]->iv_pThisProc = NULL; // Target *
- l_orlenaProcs[6]->procHUID = 6; // HUID
- l_orlenaProcs[6]->procFabricNode = 3; // FABRIC_NODE_ID
- l_orlenaProcs[6]->procFabricChip = 0; // FABRIC_CHIP_ID
- l_orlenaProcs[6]->iv_isMaster = false; // Not master proc
- l_orlenaProcs[6]->iv_deconfigured = false; // HWAS state
+ l_orlenaProcs[6].iv_pThisProc = NULL; // Target *
+ l_orlenaProcs[6].procHUID = 6; // HUID
+ l_orlenaProcs[6].procFabricNode = 3; // FABRIC_NODE_ID
+ l_orlenaProcs[6].procFabricChip = 0; // FABRIC_CHIP_ID
+ l_orlenaProcs[6].iv_isMaster = false; // Not master proc
+ l_orlenaProcs[6].iv_deconfigured = false; // HWAS state
// ABus links and states
- l_orlenaProcs[6]->iv_pAProcs[0] = l_orlenaProcs[4];
- l_orlenaProcs[6]->iv_pAProcs[1] = l_orlenaProcs[2];
- l_orlenaProcs[6]->iv_pAProcs[2] = l_orlenaProcs[0];
+ l_orlenaProcs[6].iv_pAProcs[0] = &l_orlenaProcs[4];
+ l_orlenaProcs[6].iv_pAProcs[1] = &l_orlenaProcs[2];
+ l_orlenaProcs[6].iv_pAProcs[2] = &l_orlenaProcs[0];
// XBus links and states
- l_orlenaProcs[6]->iv_pXProcs[0] = l_orlenaProcs[7];
+ l_orlenaProcs[6].iv_pXProcs[0] = &l_orlenaProcs[7];
// Proc7:
- l_orlenaProcs[7]->iv_pThisProc = NULL; // Target *
- l_orlenaProcs[7]->procHUID = 7; // HUID
- l_orlenaProcs[7]->procFabricNode = 3; // FABRIC_NODE_ID
- l_orlenaProcs[7]->procFabricChip = 1; // FABRIC_CHIP_ID
- l_orlenaProcs[7]->iv_isMaster = false; // Not master proc
- l_orlenaProcs[7]->iv_deconfigured = false; // HWAS state
+ l_orlenaProcs[7].iv_pThisProc = NULL; // Target *
+ l_orlenaProcs[7].procHUID = 7; // HUID
+ l_orlenaProcs[7].procFabricNode = 3; // FABRIC_NODE_ID
+ l_orlenaProcs[7].procFabricChip = 1; // FABRIC_CHIP_ID
+ l_orlenaProcs[7].iv_isMaster = false; // Not master proc
+ l_orlenaProcs[7].iv_deconfigured = false; // HWAS state
// ABus links and states
- l_orlenaProcs[7]->iv_pAProcs[0] = l_orlenaProcs[3];
- l_orlenaProcs[7]->iv_pAProcs[1] = l_orlenaProcs[1];
- l_orlenaProcs[7]->iv_pAProcs[2] = l_orlenaProcs[5];
+ l_orlenaProcs[7].iv_pAProcs[0] = &l_orlenaProcs[3];
+ l_orlenaProcs[7].iv_pAProcs[1] = &l_orlenaProcs[1];
+ l_orlenaProcs[7].iv_pAProcs[2] = &l_orlenaProcs[5];
// XBus links and states
- l_orlenaProcs[7]->iv_pXProcs[0] = l_orlenaProcs[6];
+ l_orlenaProcs[7].iv_pXProcs[0] = &l_orlenaProcs[6];
// Call _deconfigureAssocProc to determine which procs
// should be deconfigured based on state of system passed in
@@ -2144,14 +2130,14 @@ public:
}
// Check result
- if (l_orlenaProcs[0]->iv_deconfigured == false &&
- l_orlenaProcs[1]->iv_deconfigured == true &&
- l_orlenaProcs[2]->iv_deconfigured == false &&
- l_orlenaProcs[3]->iv_deconfigured == true &&
- l_orlenaProcs[4]->iv_deconfigured == false &&
- l_orlenaProcs[5]->iv_deconfigured == true &&
- l_orlenaProcs[6]->iv_deconfigured == false &&
- l_orlenaProcs[7]->iv_deconfigured == true)
+ if (l_orlenaProcs[0].iv_deconfigured == false &&
+ l_orlenaProcs[1].iv_deconfigured == true &&
+ l_orlenaProcs[2].iv_deconfigured == false &&
+ l_orlenaProcs[3].iv_deconfigured == true &&
+ l_orlenaProcs[4].iv_deconfigured == false &&
+ l_orlenaProcs[5].iv_deconfigured == true &&
+ l_orlenaProcs[6].iv_deconfigured == false &&
+ l_orlenaProcs[7].iv_deconfigured == true)
{
TS_TRACE(INFO_MRK "testDeconfigureAssocProc3: Success");
}
@@ -2159,9 +2145,6 @@ public:
{
TS_FAIL("testDeconfigureAssocProc3: incorrect configuration returned");
}
- // Free previously allocated memory
- while(!l_orlenaProcs.empty()) delete l_orlenaProcs.back(),
- l_orlenaProcs.pop_back();
}
@@ -2186,131 +2169,128 @@ public:
errlHndl_t l_pErr = NULL;
// User-defined number of procs
- uint8_t NUM_PROCS = 8;
+ size_t NUM_PROCS = 8;
// Define and populate vector
- std::vector<DeconfigGard::ProcInfo *> l_orlenaProcs(NUM_PROCS);
-
- for (uint8_t i = 0; i < NUM_PROCS; i++)
- {
- l_orlenaProcs[i] = new DeconfigGard::ProcInfo();
- }
+ DeconfigGard::ProcInfoVector l_orlenaProcs;
+ DeconfigGard::ProcInfo l_ProcInfo = DeconfigGard::ProcInfo();
+ l_orlenaProcs.insert(l_orlenaProcs.begin(), NUM_PROCS, l_ProcInfo);
// Proc0:
- l_orlenaProcs[0]->iv_pThisProc = NULL; // Target *
- l_orlenaProcs[0]->procHUID = 0; // HUID
- l_orlenaProcs[0]->procFabricNode = 0; // FABRIC_NODE_ID
- l_orlenaProcs[0]->procFabricChip = 0; // FABRIC_CHIP_ID
- l_orlenaProcs[0]->iv_isMaster = true; // Master proc
- l_orlenaProcs[0]->iv_deconfigured = false; // HWAS state
+ l_orlenaProcs[0].iv_pThisProc = NULL; // Target *
+ l_orlenaProcs[0].procHUID = 0; // HUID
+ l_orlenaProcs[0].procFabricNode = 0; // FABRIC_NODE_ID
+ l_orlenaProcs[0].procFabricChip = 0; // FABRIC_CHIP_ID
+ l_orlenaProcs[0].iv_isMaster = true; // Master proc
+ l_orlenaProcs[0].iv_deconfigured = false; // HWAS state
// ABus links and states
- l_orlenaProcs[0]->iv_pAProcs[0] = l_orlenaProcs[2];
- l_orlenaProcs[0]->iv_pAProcs[1] = l_orlenaProcs[4];
- l_orlenaProcs[0]->iv_pAProcs[2] = l_orlenaProcs[6];
+ l_orlenaProcs[0].iv_pAProcs[0] = &l_orlenaProcs[2];
+ l_orlenaProcs[0].iv_pAProcs[1] = &l_orlenaProcs[4];
+ l_orlenaProcs[0].iv_pAProcs[2] = &l_orlenaProcs[6];
// XBus links and states
- l_orlenaProcs[0]->iv_pXProcs[0] = l_orlenaProcs[1];
+ l_orlenaProcs[0].iv_pXProcs[0] = &l_orlenaProcs[1];
// Proc1:
- l_orlenaProcs[1]->iv_pThisProc = NULL; // Target *
- l_orlenaProcs[1]->procHUID = 1; // HUID
- l_orlenaProcs[1]->procFabricNode = 0; // FABRIC_NODE_ID
- l_orlenaProcs[1]->procFabricChip = 1; // FABRIC_CHIP_ID
- l_orlenaProcs[1]->iv_isMaster = false; // Not master proc
- l_orlenaProcs[1]->iv_deconfigured = false; // HWAS state
+ l_orlenaProcs[1].iv_pThisProc = NULL; // Target *
+ l_orlenaProcs[1].procHUID = 1; // HUID
+ l_orlenaProcs[1].procFabricNode = 0; // FABRIC_NODE_ID
+ l_orlenaProcs[1].procFabricChip = 1; // FABRIC_CHIP_ID
+ l_orlenaProcs[1].iv_isMaster = false; // Not master proc
+ l_orlenaProcs[1].iv_deconfigured = false; // HWAS state
// ABus links and states
- l_orlenaProcs[1]->iv_pAProcs[0] = l_orlenaProcs[5];
- l_orlenaProcs[1]->iv_pAProcs[1] = l_orlenaProcs[7];
- l_orlenaProcs[1]->iv_pAProcs[2] = l_orlenaProcs[3];
+ l_orlenaProcs[1].iv_pAProcs[0] = &l_orlenaProcs[5];
+ l_orlenaProcs[1].iv_pAProcs[1] = &l_orlenaProcs[7];
+ l_orlenaProcs[1].iv_pAProcs[2] = &l_orlenaProcs[3];
// XBus links and states
- l_orlenaProcs[1]->iv_pXProcs[0] = l_orlenaProcs[0];
+ l_orlenaProcs[1].iv_pXProcs[0] = &l_orlenaProcs[0];
// Proc2:
- l_orlenaProcs[2]->iv_pThisProc = NULL; // Target *
- l_orlenaProcs[2]->procHUID = 2; // HUID
- l_orlenaProcs[2]->procFabricNode = 1; // FABRIC_NODE_ID
- l_orlenaProcs[2]->procFabricChip = 0; // FABRIC_CHIP_ID
- l_orlenaProcs[2]->iv_isMaster = false; // Not master proc
- l_orlenaProcs[2]->iv_deconfigured = false; // HWAS state
+ l_orlenaProcs[2].iv_pThisProc = NULL; // Target *
+ l_orlenaProcs[2].procHUID = 2; // HUID
+ l_orlenaProcs[2].procFabricNode = 1; // FABRIC_NODE_ID
+ l_orlenaProcs[2].procFabricChip = 0; // FABRIC_CHIP_ID
+ l_orlenaProcs[2].iv_isMaster = false; // Not master proc
+ l_orlenaProcs[2].iv_deconfigured = false; // HWAS state
// ABus links and states
- l_orlenaProcs[2]->iv_pAProcs[0] = l_orlenaProcs[0];
- l_orlenaProcs[2]->iv_pAProcs[1] = l_orlenaProcs[6];
- l_orlenaProcs[2]->iv_pAProcs[2] = l_orlenaProcs[4];
- l_orlenaProcs[2]->iv_ADeconfigured[2] = true;
+ l_orlenaProcs[2].iv_pAProcs[0] = &l_orlenaProcs[0];
+ l_orlenaProcs[2].iv_pAProcs[1] = &l_orlenaProcs[6];
+ l_orlenaProcs[2].iv_pAProcs[2] = &l_orlenaProcs[4];
+ l_orlenaProcs[2].iv_ADeconfigured[2] = true;
// XBus links and states
- l_orlenaProcs[2]->iv_pXProcs[0] = l_orlenaProcs[3];
+ l_orlenaProcs[2].iv_pXProcs[0] = &l_orlenaProcs[3];
// Proc3:
- l_orlenaProcs[3]->iv_pThisProc = NULL; // Target *
- l_orlenaProcs[3]->procHUID = 3; // HUID
- l_orlenaProcs[3]->procFabricNode = 1; // FABRIC_NODE_ID
- l_orlenaProcs[3]->procFabricChip = 1; // FABRIC_CHIP_ID
- l_orlenaProcs[3]->iv_isMaster = false; // Not master proc
- l_orlenaProcs[3]->iv_deconfigured = false; // HWAS state
+ l_orlenaProcs[3].iv_pThisProc = NULL; // Target *
+ l_orlenaProcs[3].procHUID = 3; // HUID
+ l_orlenaProcs[3].procFabricNode = 1; // FABRIC_NODE_ID
+ l_orlenaProcs[3].procFabricChip = 1; // FABRIC_CHIP_ID
+ l_orlenaProcs[3].iv_isMaster = false; // Not master proc
+ l_orlenaProcs[3].iv_deconfigured = false; // HWAS state
// ABus links and states
- l_orlenaProcs[3]->iv_pAProcs[0] = l_orlenaProcs[7];
- l_orlenaProcs[3]->iv_pAProcs[1] = l_orlenaProcs[5];
- l_orlenaProcs[3]->iv_pAProcs[2] = l_orlenaProcs[1];
+ l_orlenaProcs[3].iv_pAProcs[0] = &l_orlenaProcs[7];
+ l_orlenaProcs[3].iv_pAProcs[1] = &l_orlenaProcs[5];
+ l_orlenaProcs[3].iv_pAProcs[2] = &l_orlenaProcs[1];
// XBus links and states
- l_orlenaProcs[3]->iv_pXProcs[0] = l_orlenaProcs[2];
+ l_orlenaProcs[3].iv_pXProcs[0] = &l_orlenaProcs[2];
// Proc4:
- l_orlenaProcs[4]->iv_pThisProc = NULL; // Target *
- l_orlenaProcs[4]->procHUID = 4; // HUID
- l_orlenaProcs[4]->procFabricNode = 2; // FABRIC_NODE_ID
- l_orlenaProcs[4]->procFabricChip = 0; // FABRIC_CHIP_ID
- l_orlenaProcs[4]->iv_isMaster = false; // Master proc
- l_orlenaProcs[4]->iv_deconfigured = false; // HWAS state
+ l_orlenaProcs[4].iv_pThisProc = NULL; // Target *
+ l_orlenaProcs[4].procHUID = 4; // HUID
+ l_orlenaProcs[4].procFabricNode = 2; // FABRIC_NODE_ID
+ l_orlenaProcs[4].procFabricChip = 0; // FABRIC_CHIP_ID
+ l_orlenaProcs[4].iv_isMaster = false; // Master proc
+ l_orlenaProcs[4].iv_deconfigured = false; // HWAS state
// ABus links and states
- l_orlenaProcs[4]->iv_pAProcs[0] = l_orlenaProcs[6];
- l_orlenaProcs[4]->iv_pAProcs[1] = l_orlenaProcs[0];
- l_orlenaProcs[4]->iv_pAProcs[2] = l_orlenaProcs[2];
- l_orlenaProcs[4]->iv_ADeconfigured[2] = true;
+ l_orlenaProcs[4].iv_pAProcs[0] = &l_orlenaProcs[6];
+ l_orlenaProcs[4].iv_pAProcs[1] = &l_orlenaProcs[0];
+ l_orlenaProcs[4].iv_pAProcs[2] = &l_orlenaProcs[2];
+ l_orlenaProcs[4].iv_ADeconfigured[2] = true;
// XBus links and states
- l_orlenaProcs[4]->iv_pXProcs[0] = l_orlenaProcs[5];
+ l_orlenaProcs[4].iv_pXProcs[0] = &l_orlenaProcs[5];
// Proc5:
- l_orlenaProcs[5]->iv_pThisProc = NULL; // Target *
- l_orlenaProcs[5]->procHUID = 5; // HUID
- l_orlenaProcs[5]->procFabricNode = 2; // FABRIC_NODE_ID
- l_orlenaProcs[5]->procFabricChip = 1; // FABRIC_CHIP_ID
- l_orlenaProcs[5]->iv_isMaster = false; // Not master proc
- l_orlenaProcs[5]->iv_deconfigured = false; // HWAS state
+ l_orlenaProcs[5].iv_pThisProc = NULL; // Target *
+ l_orlenaProcs[5].procHUID = 5; // HUID
+ l_orlenaProcs[5].procFabricNode = 2; // FABRIC_NODE_ID
+ l_orlenaProcs[5].procFabricChip = 1; // FABRIC_CHIP_ID
+ l_orlenaProcs[5].iv_isMaster = false; // Not master proc
+ l_orlenaProcs[5].iv_deconfigured = false; // HWAS state
// ABus links and states
- l_orlenaProcs[5]->iv_pAProcs[0] = l_orlenaProcs[1];
- l_orlenaProcs[5]->iv_pAProcs[1] = l_orlenaProcs[3];
- l_orlenaProcs[5]->iv_pAProcs[2] = l_orlenaProcs[7];
+ l_orlenaProcs[5].iv_pAProcs[0] = &l_orlenaProcs[1];
+ l_orlenaProcs[5].iv_pAProcs[1] = &l_orlenaProcs[3];
+ l_orlenaProcs[5].iv_pAProcs[2] = &l_orlenaProcs[7];
// XBus links and states
- l_orlenaProcs[5]->iv_pXProcs[0] = l_orlenaProcs[4];
+ l_orlenaProcs[5].iv_pXProcs[0] = &l_orlenaProcs[4];
// Proc6:
- l_orlenaProcs[6]->iv_pThisProc = NULL; // Target *
- l_orlenaProcs[6]->procHUID = 6; // HUID
- l_orlenaProcs[6]->procFabricNode = 3; // FABRIC_NODE_ID
- l_orlenaProcs[6]->procFabricChip = 0; // FABRIC_CHIP_ID
- l_orlenaProcs[6]->iv_isMaster = false; // Not master proc
- l_orlenaProcs[6]->iv_deconfigured = false; // HWAS state
+ l_orlenaProcs[6].iv_pThisProc = NULL; // Target *
+ l_orlenaProcs[6].procHUID = 6; // HUID
+ l_orlenaProcs[6].procFabricNode = 3; // FABRIC_NODE_ID
+ l_orlenaProcs[6].procFabricChip = 0; // FABRIC_CHIP_ID
+ l_orlenaProcs[6].iv_isMaster = false; // Not master proc
+ l_orlenaProcs[6].iv_deconfigured = false; // HWAS state
// ABus links and states
- l_orlenaProcs[6]->iv_pAProcs[0] = l_orlenaProcs[4];
- l_orlenaProcs[6]->iv_pAProcs[1] = l_orlenaProcs[2];
- l_orlenaProcs[6]->iv_pAProcs[2] = l_orlenaProcs[0];
+ l_orlenaProcs[6].iv_pAProcs[0] = &l_orlenaProcs[4];
+ l_orlenaProcs[6].iv_pAProcs[1] = &l_orlenaProcs[2];
+ l_orlenaProcs[6].iv_pAProcs[2] = &l_orlenaProcs[0];
// XBus links and states
- l_orlenaProcs[6]->iv_pXProcs[0] = l_orlenaProcs[7];
- l_orlenaProcs[6]->iv_XDeconfigured[0] = true;
+ l_orlenaProcs[6].iv_pXProcs[0] = &l_orlenaProcs[7];
+ l_orlenaProcs[6].iv_XDeconfigured[0] = true;
// Proc7:
- l_orlenaProcs[7]->iv_pThisProc = NULL; // Target *
- l_orlenaProcs[7]->procHUID = 7; // HUID
- l_orlenaProcs[7]->procFabricNode = 3; // FABRIC_NODE_ID
- l_orlenaProcs[7]->procFabricChip = 1; // FABRIC_CHIP_ID
- l_orlenaProcs[7]->iv_isMaster = false; // Not master proc
- l_orlenaProcs[7]->iv_deconfigured = false; // HWAS state
+ l_orlenaProcs[7].iv_pThisProc = NULL; // Target *
+ l_orlenaProcs[7].procHUID = 7; // HUID
+ l_orlenaProcs[7].procFabricNode = 3; // FABRIC_NODE_ID
+ l_orlenaProcs[7].procFabricChip = 1; // FABRIC_CHIP_ID
+ l_orlenaProcs[7].iv_isMaster = false; // Not master proc
+ l_orlenaProcs[7].iv_deconfigured = false; // HWAS state
// ABus links and states
- l_orlenaProcs[7]->iv_pAProcs[0] = l_orlenaProcs[3];
- l_orlenaProcs[7]->iv_pAProcs[1] = l_orlenaProcs[1];
- l_orlenaProcs[7]->iv_pAProcs[2] = l_orlenaProcs[5];
+ l_orlenaProcs[7].iv_pAProcs[0] = &l_orlenaProcs[3];
+ l_orlenaProcs[7].iv_pAProcs[1] = &l_orlenaProcs[1];
+ l_orlenaProcs[7].iv_pAProcs[2] = &l_orlenaProcs[5];
// XBus links and states
- l_orlenaProcs[7]->iv_pXProcs[0] = l_orlenaProcs[6];
- l_orlenaProcs[7]->iv_XDeconfigured[0] = true;
+ l_orlenaProcs[7].iv_pXProcs[0] = &l_orlenaProcs[6];
+ l_orlenaProcs[7].iv_XDeconfigured[0] = true;
// Call _deconfigureAssocProc to determine which procs
// should be deconfigured based on state of system passed in
@@ -2321,14 +2301,14 @@ public:
}
// Check result
- if (l_orlenaProcs[0]->iv_deconfigured == false &&
- l_orlenaProcs[1]->iv_deconfigured == false &&
- l_orlenaProcs[2]->iv_deconfigured == false &&
- l_orlenaProcs[3]->iv_deconfigured == false &&
- l_orlenaProcs[4]->iv_deconfigured == true &&
- l_orlenaProcs[5]->iv_deconfigured == true &&
- l_orlenaProcs[6]->iv_deconfigured == true &&
- l_orlenaProcs[7]->iv_deconfigured == true)
+ if (l_orlenaProcs[0].iv_deconfigured == false &&
+ l_orlenaProcs[1].iv_deconfigured == false &&
+ l_orlenaProcs[2].iv_deconfigured == false &&
+ l_orlenaProcs[3].iv_deconfigured == false &&
+ l_orlenaProcs[4].iv_deconfigured == true &&
+ l_orlenaProcs[5].iv_deconfigured == true &&
+ l_orlenaProcs[6].iv_deconfigured == true &&
+ l_orlenaProcs[7].iv_deconfigured == true)
{
TS_TRACE(INFO_MRK "testDeconfigureAssocProc4: Success");
}
@@ -2336,9 +2316,6 @@ public:
{
TS_FAIL("testDeconfigureAssocProc4: incorrect configuration returned");
}
- // Free previously allocated memory
- while(!l_orlenaProcs.empty()) delete l_orlenaProcs.back(),
- l_orlenaProcs.pop_back();
}
@@ -2364,137 +2341,134 @@ public:
errlHndl_t l_pErr = NULL;
// User-defined number of procs
- uint8_t NUM_PROCS = 8;
+ size_t NUM_PROCS = 8;
// Define and populate vector
- std::vector<DeconfigGard::ProcInfo *> l_orlenaProcs(NUM_PROCS);
-
- for (uint8_t i = 0; i < NUM_PROCS; i++)
- {
- l_orlenaProcs[i] = new DeconfigGard::ProcInfo();
- }
+ DeconfigGard::ProcInfoVector l_orlenaProcs;
+ DeconfigGard::ProcInfo l_ProcInfo = DeconfigGard::ProcInfo();
+ l_orlenaProcs.insert(l_orlenaProcs.begin(), NUM_PROCS, l_ProcInfo);
// Proc0:
- l_orlenaProcs[0]->iv_pThisProc = NULL; // Target *
- l_orlenaProcs[0]->procHUID = 0; // HUID
- l_orlenaProcs[0]->procFabricNode = 0; // FABRIC_NODE_ID
- l_orlenaProcs[0]->procFabricChip = 0; // FABRIC_CHIP_ID
- l_orlenaProcs[0]->iv_isMaster = true; // Master proc
- l_orlenaProcs[0]->iv_deconfigured = false; // HWAS state
+ l_orlenaProcs[0].iv_pThisProc = NULL; // Target *
+ l_orlenaProcs[0].procHUID = 0; // HUID
+ l_orlenaProcs[0].procFabricNode = 0; // FABRIC_NODE_ID
+ l_orlenaProcs[0].procFabricChip = 0; // FABRIC_CHIP_ID
+ l_orlenaProcs[0].iv_isMaster = true; // Master proc
+ l_orlenaProcs[0].iv_deconfigured = false; // HWAS state
// ABus links and states
- l_orlenaProcs[0]->iv_pAProcs[0] = l_orlenaProcs[2];
- l_orlenaProcs[0]->iv_pAProcs[1] = l_orlenaProcs[4];
- l_orlenaProcs[0]->iv_pAProcs[2] = l_orlenaProcs[6];
- l_orlenaProcs[4]->iv_ADeconfigured[1] = true;
+ l_orlenaProcs[0].iv_pAProcs[0] = &l_orlenaProcs[2];
+ l_orlenaProcs[0].iv_pAProcs[1] = &l_orlenaProcs[4];
+ l_orlenaProcs[0].iv_pAProcs[2] = &l_orlenaProcs[6];
+ l_orlenaProcs[4].iv_ADeconfigured[1] = true;
// XBus links and states
- l_orlenaProcs[0]->iv_pXProcs[0] = l_orlenaProcs[1];
+ l_orlenaProcs[0].iv_pXProcs[0] = &l_orlenaProcs[1];
// Proc1:
- l_orlenaProcs[1]->iv_pThisProc = NULL; // Target *
- l_orlenaProcs[1]->procHUID = 1; // HUID
- l_orlenaProcs[1]->procFabricNode = 0; // FABRIC_NODE_ID
- l_orlenaProcs[1]->procFabricChip = 1; // FABRIC_CHIP_ID
- l_orlenaProcs[1]->iv_isMaster = false; // Not master proc
- l_orlenaProcs[1]->iv_deconfigured = false; // HWAS state
+ l_orlenaProcs[1].iv_pThisProc = NULL; // Target *
+ l_orlenaProcs[1].procHUID = 1; // HUID
+ l_orlenaProcs[1].procFabricNode = 0; // FABRIC_NODE_ID
+ l_orlenaProcs[1].procFabricChip = 1; // FABRIC_CHIP_ID
+ l_orlenaProcs[1].iv_isMaster = false; // Not master proc
+ l_orlenaProcs[1].iv_deconfigured = false; // HWAS state
// ABus links and states
- l_orlenaProcs[1]->iv_pAProcs[0] = l_orlenaProcs[5];
- l_orlenaProcs[1]->iv_pAProcs[1] = l_orlenaProcs[7];
- l_orlenaProcs[1]->iv_pAProcs[2] = l_orlenaProcs[3];
+ l_orlenaProcs[1].iv_pAProcs[0] = &l_orlenaProcs[5];
+ l_orlenaProcs[1].iv_pAProcs[1] = &l_orlenaProcs[7];
+ l_orlenaProcs[1].iv_pAProcs[2] = &l_orlenaProcs[3];
// XBus links and states
- l_orlenaProcs[1]->iv_pXProcs[0] = l_orlenaProcs[0];
+ l_orlenaProcs[1].iv_pXProcs[0] = &l_orlenaProcs[0];
// Proc2:
- l_orlenaProcs[2]->iv_pThisProc = NULL; // Target *
- l_orlenaProcs[2]->procHUID = 2; // HUID
- l_orlenaProcs[2]->procFabricNode = 1; // FABRIC_NODE_ID
- l_orlenaProcs[2]->procFabricChip = 0; // FABRIC_CHIP_ID
- l_orlenaProcs[2]->iv_isMaster = false; // Not master proc
- l_orlenaProcs[2]->iv_deconfigured = false; // HWAS state
+ l_orlenaProcs[2].iv_pThisProc = NULL; // Target *
+ l_orlenaProcs[2].procHUID = 2; // HUID
+ l_orlenaProcs[2].procFabricNode = 1; // FABRIC_NODE_ID
+ l_orlenaProcs[2].procFabricChip = 0; // FABRIC_CHIP_ID
+ l_orlenaProcs[2].iv_isMaster = false; // Not master proc
+ l_orlenaProcs[2].iv_deconfigured = false; // HWAS state
// ABus links and states
- l_orlenaProcs[2]->iv_pAProcs[0] = l_orlenaProcs[0];
- l_orlenaProcs[2]->iv_pAProcs[1] = l_orlenaProcs[6];
- l_orlenaProcs[2]->iv_pAProcs[2] = l_orlenaProcs[4];
- l_orlenaProcs[2]->iv_ADeconfigured[2] = true;
+ l_orlenaProcs[2].iv_pAProcs[0] = &l_orlenaProcs[0];
+ l_orlenaProcs[2].iv_pAProcs[1] = &l_orlenaProcs[6];
+ l_orlenaProcs[2].iv_pAProcs[2] = &l_orlenaProcs[4];
+ l_orlenaProcs[2].iv_ADeconfigured[2] = true;
// XBus links and states
- l_orlenaProcs[2]->iv_pXProcs[0] = l_orlenaProcs[3];
+ l_orlenaProcs[2].iv_pXProcs[0] = &l_orlenaProcs[3];
// Proc3:
- l_orlenaProcs[3]->iv_pThisProc = NULL; // Target *
- l_orlenaProcs[3]->procHUID = 3; // HUID
- l_orlenaProcs[3]->procFabricNode = 1; // FABRIC_NODE_ID
- l_orlenaProcs[3]->procFabricChip = 1; // FABRIC_CHIP_ID
- l_orlenaProcs[3]->iv_isMaster = false; // Not master proc
- l_orlenaProcs[3]->iv_deconfigured = false; // HWAS state
+ l_orlenaProcs[3].iv_pThisProc = NULL; // Target *
+ l_orlenaProcs[3].procHUID = 3; // HUID
+ l_orlenaProcs[3].procFabricNode = 1; // FABRIC_NODE_ID
+ l_orlenaProcs[3].procFabricChip = 1; // FABRIC_CHIP_ID
+ l_orlenaProcs[3].iv_isMaster = false; // Not master proc
+ l_orlenaProcs[3].iv_deconfigured = false; // HWAS state
// ABus links and states
- l_orlenaProcs[3]->iv_pAProcs[0] = l_orlenaProcs[7];
- l_orlenaProcs[3]->iv_pAProcs[1] = l_orlenaProcs[5];
- l_orlenaProcs[3]->iv_pAProcs[2] = l_orlenaProcs[1];
+ l_orlenaProcs[3].iv_pAProcs[0] = &l_orlenaProcs[7];
+ l_orlenaProcs[3].iv_pAProcs[1] = &l_orlenaProcs[5];
+ l_orlenaProcs[3].iv_pAProcs[2] = &l_orlenaProcs[1];
// XBus links and states
- l_orlenaProcs[3]->iv_pXProcs[0] = l_orlenaProcs[2];
+ l_orlenaProcs[3].iv_pXProcs[0] = &l_orlenaProcs[2];
// Proc4:
- l_orlenaProcs[4]->iv_pThisProc = NULL; // Target *
- l_orlenaProcs[4]->procHUID = 4; // HUID
- l_orlenaProcs[4]->procFabricNode = 2; // FABRIC_NODE_ID
- l_orlenaProcs[4]->procFabricChip = 0; // FABRIC_CHIP_ID
- l_orlenaProcs[4]->iv_isMaster = false; // Master proc
- l_orlenaProcs[4]->iv_deconfigured = true; // HWAS state
+ l_orlenaProcs[4].iv_pThisProc = NULL; // Target *
+ l_orlenaProcs[4].procHUID = 4; // HUID
+ l_orlenaProcs[4].procFabricNode = 2; // FABRIC_NODE_ID
+ l_orlenaProcs[4].procFabricChip = 0; // FABRIC_CHIP_ID
+ l_orlenaProcs[4].iv_isMaster = false; // Master proc
+ l_orlenaProcs[4].iv_deconfigured = true; // HWAS state
// ABus links and states
- l_orlenaProcs[4]->iv_pAProcs[0] = l_orlenaProcs[6];
- l_orlenaProcs[4]->iv_pAProcs[1] = l_orlenaProcs[0];
- l_orlenaProcs[4]->iv_pAProcs[2] = l_orlenaProcs[2];
- l_orlenaProcs[4]->iv_ADeconfigured[0] = true;
- l_orlenaProcs[4]->iv_ADeconfigured[1] = true;
- l_orlenaProcs[4]->iv_ADeconfigured[2] = true;
+ l_orlenaProcs[4].iv_pAProcs[0] = &l_orlenaProcs[6];
+ l_orlenaProcs[4].iv_pAProcs[1] = &l_orlenaProcs[0];
+ l_orlenaProcs[4].iv_pAProcs[2] = &l_orlenaProcs[2];
+ l_orlenaProcs[4].iv_ADeconfigured[0] = true;
+ l_orlenaProcs[4].iv_ADeconfigured[1] = true;
+ l_orlenaProcs[4].iv_ADeconfigured[2] = true;
// XBus links and states
- l_orlenaProcs[4]->iv_pXProcs[0] = l_orlenaProcs[5];
- l_orlenaProcs[4]->iv_XDeconfigured[0] = true;
+ l_orlenaProcs[4].iv_pXProcs[0] = &l_orlenaProcs[5];
+ l_orlenaProcs[4].iv_XDeconfigured[0] = true;
// Proc5:
- l_orlenaProcs[5]->iv_pThisProc = NULL; // Target *
- l_orlenaProcs[5]->procHUID = 5; // HUID
- l_orlenaProcs[5]->procFabricNode = 2; // FABRIC_NODE_ID
- l_orlenaProcs[5]->procFabricChip = 1; // FABRIC_CHIP_ID
- l_orlenaProcs[5]->iv_isMaster = false; // Not master proc
- l_orlenaProcs[5]->iv_deconfigured = false; // HWAS state
+ l_orlenaProcs[5].iv_pThisProc = NULL; // Target *
+ l_orlenaProcs[5].procHUID = 5; // HUID
+ l_orlenaProcs[5].procFabricNode = 2; // FABRIC_NODE_ID
+ l_orlenaProcs[5].procFabricChip = 1; // FABRIC_CHIP_ID
+ l_orlenaProcs[5].iv_isMaster = false; // Not master proc
+ l_orlenaProcs[5].iv_deconfigured = false; // HWAS state
// ABus links and states
- l_orlenaProcs[5]->iv_pAProcs[0] = l_orlenaProcs[1];
- l_orlenaProcs[5]->iv_pAProcs[1] = l_orlenaProcs[3];
- l_orlenaProcs[5]->iv_pAProcs[2] = l_orlenaProcs[7];
- l_orlenaProcs[5]->iv_ADeconfigured[2] = true;
+ l_orlenaProcs[5].iv_pAProcs[0] = &l_orlenaProcs[1];
+ l_orlenaProcs[5].iv_pAProcs[1] = &l_orlenaProcs[3];
+ l_orlenaProcs[5].iv_pAProcs[2] = &l_orlenaProcs[7];
+ l_orlenaProcs[5].iv_ADeconfigured[2] = true;
// XBus links and states
- l_orlenaProcs[5]->iv_pXProcs[0] = l_orlenaProcs[4];
- l_orlenaProcs[5]->iv_XDeconfigured[0] = true;
+ l_orlenaProcs[5].iv_pXProcs[0] = &l_orlenaProcs[4];
+ l_orlenaProcs[5].iv_XDeconfigured[0] = true;
// Proc6:
- l_orlenaProcs[6]->iv_pThisProc = NULL; // Target *
- l_orlenaProcs[6]->procHUID = 6; // HUID
- l_orlenaProcs[6]->procFabricNode = 3; // FABRIC_NODE_ID
- l_orlenaProcs[6]->procFabricChip = 0; // FABRIC_CHIP_ID
- l_orlenaProcs[6]->iv_isMaster = false; // Not master proc
- l_orlenaProcs[6]->iv_deconfigured = false; // HWAS state
+ l_orlenaProcs[6].iv_pThisProc = NULL; // Target *
+ l_orlenaProcs[6].procHUID = 6; // HUID
+ l_orlenaProcs[6].procFabricNode = 3; // FABRIC_NODE_ID
+ l_orlenaProcs[6].procFabricChip = 0; // FABRIC_CHIP_ID
+ l_orlenaProcs[6].iv_isMaster = false; // Not master proc
+ l_orlenaProcs[6].iv_deconfigured = false; // HWAS state
// ABus links and states
- l_orlenaProcs[6]->iv_pAProcs[0] = l_orlenaProcs[4];
- l_orlenaProcs[6]->iv_pAProcs[1] = l_orlenaProcs[2];
- l_orlenaProcs[6]->iv_pAProcs[2] = l_orlenaProcs[0];
- l_orlenaProcs[6]->iv_ADeconfigured[0] = true;
+ l_orlenaProcs[6].iv_pAProcs[0] = &l_orlenaProcs[4];
+ l_orlenaProcs[6].iv_pAProcs[1] = &l_orlenaProcs[2];
+ l_orlenaProcs[6].iv_pAProcs[2] = &l_orlenaProcs[0];
+ l_orlenaProcs[6].iv_ADeconfigured[0] = true;
// XBus links and states
- l_orlenaProcs[6]->iv_pXProcs[0] = l_orlenaProcs[7];
+ l_orlenaProcs[6].iv_pXProcs[0] = &l_orlenaProcs[7];
// Proc7:
- l_orlenaProcs[7]->iv_pThisProc = NULL; // Target *
- l_orlenaProcs[7]->procHUID = 7; // HUID
- l_orlenaProcs[7]->procFabricNode = 3; // FABRIC_NODE_ID
- l_orlenaProcs[7]->procFabricChip = 1; // FABRIC_CHIP_ID
- l_orlenaProcs[7]->iv_isMaster = false; // Not master proc
- l_orlenaProcs[7]->iv_deconfigured = false; // HWAS state
+ l_orlenaProcs[7].iv_pThisProc = NULL; // Target *
+ l_orlenaProcs[7].procHUID = 7; // HUID
+ l_orlenaProcs[7].procFabricNode = 3; // FABRIC_NODE_ID
+ l_orlenaProcs[7].procFabricChip = 1; // FABRIC_CHIP_ID
+ l_orlenaProcs[7].iv_isMaster = false; // Not master proc
+ l_orlenaProcs[7].iv_deconfigured = false; // HWAS state
// ABus links and states
- l_orlenaProcs[7]->iv_pAProcs[0] = l_orlenaProcs[3];
- l_orlenaProcs[7]->iv_pAProcs[1] = l_orlenaProcs[1];
- l_orlenaProcs[7]->iv_pAProcs[2] = l_orlenaProcs[5];
- l_orlenaProcs[7]->iv_ADeconfigured[2] = true;
+ l_orlenaProcs[7].iv_pAProcs[0] = &l_orlenaProcs[3];
+ l_orlenaProcs[7].iv_pAProcs[1] = &l_orlenaProcs[1];
+ l_orlenaProcs[7].iv_pAProcs[2] = &l_orlenaProcs[5];
+ l_orlenaProcs[7].iv_ADeconfigured[2] = true;
// XBus links and states
- l_orlenaProcs[7]->iv_pXProcs[0] = l_orlenaProcs[6];
+ l_orlenaProcs[7].iv_pXProcs[0] = &l_orlenaProcs[6];
// Call _deconfigureAssocProc to determine which procs
// should be deconfigured based on state of system passed in
@@ -2505,14 +2479,14 @@ public:
}
// Check result
- if (l_orlenaProcs[0]->iv_deconfigured == false &&
- l_orlenaProcs[1]->iv_deconfigured == false &&
- l_orlenaProcs[2]->iv_deconfigured == false &&
- l_orlenaProcs[3]->iv_deconfigured == false &&
- l_orlenaProcs[4]->iv_deconfigured == true &&
- l_orlenaProcs[5]->iv_deconfigured == true &&
- l_orlenaProcs[6]->iv_deconfigured == false &&
- l_orlenaProcs[7]->iv_deconfigured == false)
+ if (l_orlenaProcs[0].iv_deconfigured == false &&
+ l_orlenaProcs[1].iv_deconfigured == false &&
+ l_orlenaProcs[2].iv_deconfigured == false &&
+ l_orlenaProcs[3].iv_deconfigured == false &&
+ l_orlenaProcs[4].iv_deconfigured == true &&
+ l_orlenaProcs[5].iv_deconfigured == true &&
+ l_orlenaProcs[6].iv_deconfigured == false &&
+ l_orlenaProcs[7].iv_deconfigured == false)
{
TS_TRACE(INFO_MRK "testDeconfigureAssocProc5: Success");
}
@@ -2520,9 +2494,6 @@ public:
{
TS_FAIL("testDeconfigureAssocProc5: incorrect configuration returned");
}
- // Free previously allocated memory
- while(!l_orlenaProcs.empty()) delete l_orlenaProcs.back(),
- l_orlenaProcs.pop_back();
}
@@ -2549,67 +2520,64 @@ public:
errlHndl_t l_pErr = NULL;
// User-defined number of procs
- uint8_t NUM_PROCS = 4;
+ size_t NUM_PROCS = 4;
// Define and populate vector
- std::vector<DeconfigGard::ProcInfo *> l_brazosProcs(NUM_PROCS);
-
- for (uint8_t i = 0; i < NUM_PROCS; i++)
- {
- l_brazosProcs[i] = new DeconfigGard::ProcInfo();
- }
+ DeconfigGard::ProcInfoVector l_brazosProcs;
+ DeconfigGard::ProcInfo l_ProcInfo = DeconfigGard::ProcInfo();
+ l_brazosProcs.insert(l_brazosProcs.begin(), NUM_PROCS, l_ProcInfo);
// Set proc options
// Proc0:
- l_brazosProcs[0]->iv_pThisProc = NULL; // Target *
- l_brazosProcs[0]->procHUID = 0; // HUID
- l_brazosProcs[0]->procFabricNode = 0; // FABRIC_NODE_ID
- l_brazosProcs[0]->procFabricChip = 0; // FABRIC_CHIP_ID
- l_brazosProcs[0]->iv_isMaster = true; // Master proc
- l_brazosProcs[0]->iv_deconfigured = false; // HWAS state
+ l_brazosProcs[0].iv_pThisProc = NULL; // Target *
+ l_brazosProcs[0].procHUID = 0; // HUID
+ l_brazosProcs[0].procFabricNode = 0; // FABRIC_NODE_ID
+ l_brazosProcs[0].procFabricChip = 0; // FABRIC_CHIP_ID
+ l_brazosProcs[0].iv_isMaster = true; // Master proc
+ l_brazosProcs[0].iv_deconfigured = false; // HWAS state
// XBus links and states
- l_brazosProcs[0]->iv_pXProcs[0] = l_brazosProcs[1];
- l_brazosProcs[0]->iv_pXProcs[1] = l_brazosProcs[2];
- l_brazosProcs[0]->iv_pXProcs[3] = l_brazosProcs[3];
- l_brazosProcs[0]->iv_XDeconfigured[0] = true;
+ l_brazosProcs[0].iv_pXProcs[0] = &l_brazosProcs[1];
+ l_brazosProcs[0].iv_pXProcs[1] = &l_brazosProcs[2];
+ l_brazosProcs[0].iv_pXProcs[3] = &l_brazosProcs[3];
+ l_brazosProcs[0].iv_XDeconfigured[0] = true;
// Proc1:
- l_brazosProcs[1]->iv_pThisProc = NULL; // Target *
- l_brazosProcs[1]->procHUID = 1; // HUID
- l_brazosProcs[1]->procFabricNode = 0; // FABRIC_NODE_ID
- l_brazosProcs[1]->procFabricChip = 1; // FABRIC_CHIP_ID
- l_brazosProcs[1]->iv_isMaster = false; // Not master proc
- l_brazosProcs[1]->iv_deconfigured = false; // HWAS state
+ l_brazosProcs[1].iv_pThisProc = NULL; // Target *
+ l_brazosProcs[1].procHUID = 1; // HUID
+ l_brazosProcs[1].procFabricNode = 0; // FABRIC_NODE_ID
+ l_brazosProcs[1].procFabricChip = 1; // FABRIC_CHIP_ID
+ l_brazosProcs[1].iv_isMaster = false; // Not master proc
+ l_brazosProcs[1].iv_deconfigured = false; // HWAS state
// XBus links and states
// XBus links and states
- l_brazosProcs[1]->iv_pXProcs[0] = l_brazosProcs[2];
- l_brazosProcs[1]->iv_pXProcs[1] = l_brazosProcs[3];
- l_brazosProcs[1]->iv_pXProcs[3] = l_brazosProcs[0];
- l_brazosProcs[1]->iv_XDeconfigured[3] = true;
+ l_brazosProcs[1].iv_pXProcs[0] = &l_brazosProcs[2];
+ l_brazosProcs[1].iv_pXProcs[1] = &l_brazosProcs[3];
+ l_brazosProcs[1].iv_pXProcs[3] = &l_brazosProcs[0];
+ l_brazosProcs[1].iv_XDeconfigured[3] = true;
// Proc2:
- l_brazosProcs[2]->iv_pThisProc = NULL; // Target *
- l_brazosProcs[2]->procHUID = 2; // HUID
- l_brazosProcs[2]->procFabricNode = 0; // FABRIC_NODE_ID
- l_brazosProcs[2]->procFabricChip = 2; // FABRIC_CHIP_ID
- l_brazosProcs[2]->iv_isMaster = false; // Not master proc
- l_brazosProcs[2]->iv_deconfigured = false; // HWAS state
+ l_brazosProcs[2].iv_pThisProc = NULL; // Target *
+ l_brazosProcs[2].procHUID = 2; // HUID
+ l_brazosProcs[2].procFabricNode = 0; // FABRIC_NODE_ID
+ l_brazosProcs[2].procFabricChip = 2; // FABRIC_CHIP_ID
+ l_brazosProcs[2].iv_isMaster = false; // Not master proc
+ l_brazosProcs[2].iv_deconfigured = false; // HWAS state
// XBus links and states
- l_brazosProcs[2]->iv_pXProcs[0] = l_brazosProcs[3];
- l_brazosProcs[2]->iv_pXProcs[1] = l_brazosProcs[0];
- l_brazosProcs[2]->iv_pXProcs[3] = l_brazosProcs[1];
+ l_brazosProcs[2].iv_pXProcs[0] = &l_brazosProcs[3];
+ l_brazosProcs[2].iv_pXProcs[1] = &l_brazosProcs[0];
+ l_brazosProcs[2].iv_pXProcs[3] = &l_brazosProcs[1];
// Proc3:
- l_brazosProcs[3]->iv_pThisProc = NULL; // Target *
- l_brazosProcs[3]->procHUID = 3; // HUID
- l_brazosProcs[3]->procFabricNode = 0; // FABRIC_NODE_ID
- l_brazosProcs[3]->procFabricChip = 3; // FABRIC_CHIP_ID
- l_brazosProcs[3]->iv_isMaster = false; // Not master proc
- l_brazosProcs[3]->iv_deconfigured = false; // HWAS state
+ l_brazosProcs[3].iv_pThisProc = NULL; // Target *
+ l_brazosProcs[3].procHUID = 3; // HUID
+ l_brazosProcs[3].procFabricNode = 0; // FABRIC_NODE_ID
+ l_brazosProcs[3].procFabricChip = 3; // FABRIC_CHIP_ID
+ l_brazosProcs[3].iv_isMaster = false; // Not master proc
+ l_brazosProcs[3].iv_deconfigured = false; // HWAS state
// XBus links and states
- l_brazosProcs[3]->iv_pXProcs[0] = l_brazosProcs[0];
- l_brazosProcs[3]->iv_pXProcs[1] = l_brazosProcs[1];
- l_brazosProcs[3]->iv_pXProcs[3] = l_brazosProcs[2];
+ l_brazosProcs[3].iv_pXProcs[0] = &l_brazosProcs[0];
+ l_brazosProcs[3].iv_pXProcs[1] = &l_brazosProcs[1];
+ l_brazosProcs[3].iv_pXProcs[3] = &l_brazosProcs[2];
// Call _deconfigureAssocProc to determine which procs
// should be deconfigured based on state of system passed in
@@ -2620,10 +2588,10 @@ public:
}
// Check result
- if (l_brazosProcs[0]->iv_deconfigured == false &&
- l_brazosProcs[1]->iv_deconfigured == true &&
- l_brazosProcs[2]->iv_deconfigured == false &&
- l_brazosProcs[3]->iv_deconfigured == false)
+ if (l_brazosProcs[0].iv_deconfigured == false &&
+ l_brazosProcs[1].iv_deconfigured == true &&
+ l_brazosProcs[2].iv_deconfigured == false &&
+ l_brazosProcs[3].iv_deconfigured == false)
{
TS_TRACE(INFO_MRK "testDeconfigureAssocProc6: Success");
}
@@ -2631,9 +2599,6 @@ public:
{
TS_FAIL("testDeconfigureAssocProc6: incorrect configuration returned");
}
- // Free previously allocated memory
- while(!l_brazosProcs.empty()) delete l_brazosProcs.back(),
- l_brazosProcs.pop_back();
}
@@ -2805,71 +2770,68 @@ public:
errlHndl_t l_pErr = NULL;
// User-defined number of procs
- uint8_t NUM_PROCS = 4;
+ size_t NUM_PROCS = 4;
// Define and populate vector
- std::vector<DeconfigGard::ProcInfo *> l_tuletaProcs(NUM_PROCS);
-
- for (uint8_t i = 0; i < NUM_PROCS; i++)
- {
- l_tuletaProcs[i] = new DeconfigGard::ProcInfo();
- }
+ DeconfigGard::ProcInfoVector l_tuletaProcs;
+ DeconfigGard::ProcInfo l_ProcInfo = DeconfigGard::ProcInfo();
+ l_tuletaProcs.insert(l_tuletaProcs.begin(), NUM_PROCS, l_ProcInfo);
// Set proc options
// Proc0:
- l_tuletaProcs[0]->iv_pThisProc = NULL; // Target *
- l_tuletaProcs[0]->procHUID = 0; // HUID
- l_tuletaProcs[0]->procFabricNode = 0; // FABRIC_NODE_ID
- l_tuletaProcs[0]->procFabricChip = 0; // FABRIC_CHIP_ID
- l_tuletaProcs[0]->iv_isMaster = true; // Master proc
- l_tuletaProcs[0]->iv_deconfigured = false; // HWAS state
- l_tuletaProcs[0]->iv_pAProcs[0] = l_tuletaProcs[2];
- l_tuletaProcs[0]->iv_pAProcs[1] = l_tuletaProcs[2];
- l_tuletaProcs[0]->iv_ADeconfigured[0] = true;
- l_tuletaProcs[0]->iv_ADeconfigured[1] = true;
- l_tuletaProcs[0]->iv_pXProcs[0] = l_tuletaProcs[1];
+ l_tuletaProcs[0].iv_pThisProc = NULL; // Target *
+ l_tuletaProcs[0].procHUID = 0; // HUID
+ l_tuletaProcs[0].procFabricNode = 0; // FABRIC_NODE_ID
+ l_tuletaProcs[0].procFabricChip = 0; // FABRIC_CHIP_ID
+ l_tuletaProcs[0].iv_isMaster = true; // Master proc
+ l_tuletaProcs[0].iv_deconfigured = false; // HWAS state
+ l_tuletaProcs[0].iv_pAProcs[0] = &l_tuletaProcs[2];
+ l_tuletaProcs[0].iv_pAProcs[1] = &l_tuletaProcs[2];
+ l_tuletaProcs[0].iv_ADeconfigured[0] = true;
+ l_tuletaProcs[0].iv_ADeconfigured[1] = true;
+ l_tuletaProcs[0].iv_pXProcs[0] = &l_tuletaProcs[1];
// Proc1:
- l_tuletaProcs[1]->iv_pThisProc = NULL; // Target *
- l_tuletaProcs[1]->procHUID = 1; // HUID
- l_tuletaProcs[1]->procFabricNode = 0; // FABRIC_NODE_ID
- l_tuletaProcs[1]->procFabricChip = 1; // FABRIC_CHIP_ID
- l_tuletaProcs[1]->iv_isMaster = false; // Not master proc
- l_tuletaProcs[1]->iv_deconfigured = false; // HWAS state
- l_tuletaProcs[1]->iv_pAProcs[0] = l_tuletaProcs[3];
- l_tuletaProcs[1]->iv_pAProcs[1] = l_tuletaProcs[3];
- l_tuletaProcs[1]->iv_ADeconfigured[0] = true;
- l_tuletaProcs[1]->iv_ADeconfigured[1] = true;
- l_tuletaProcs[1]->iv_pXProcs[0] = l_tuletaProcs[0];
+ l_tuletaProcs[1].iv_pThisProc = NULL; // Target *
+ l_tuletaProcs[1].procHUID = 1; // HUID
+ l_tuletaProcs[1].procFabricNode = 0; // FABRIC_NODE_ID
+ l_tuletaProcs[1].procFabricChip = 1; // FABRIC_CHIP_ID
+ l_tuletaProcs[1].iv_isMaster = false; // Not master proc
+ l_tuletaProcs[1].iv_deconfigured = false; // HWAS state
+ l_tuletaProcs[1].iv_pAProcs[0] = &l_tuletaProcs[3];
+ l_tuletaProcs[1].iv_pAProcs[1] = &l_tuletaProcs[3];
+ l_tuletaProcs[1].iv_ADeconfigured[0] = true;
+ l_tuletaProcs[1].iv_ADeconfigured[1] = true;
+ l_tuletaProcs[1].iv_pXProcs[0] = &l_tuletaProcs[0];
// Proc2:
- l_tuletaProcs[2]->iv_pThisProc = NULL; // Target *
- l_tuletaProcs[2]->procHUID = 2; // HUID
- l_tuletaProcs[2]->procFabricNode = 1; // FABRIC_NODE_ID
- l_tuletaProcs[2]->procFabricChip = 0; // FABRIC_CHIP_ID
- l_tuletaProcs[2]->iv_isMaster = false; // Not master proc
- l_tuletaProcs[2]->iv_deconfigured = true; // HWAS state
- l_tuletaProcs[2]->iv_pAProcs[0] = l_tuletaProcs[0];
- l_tuletaProcs[2]->iv_pAProcs[1] = l_tuletaProcs[0];
- l_tuletaProcs[2]->iv_ADeconfigured[0] = true;
- l_tuletaProcs[2]->iv_ADeconfigured[1] = true;
- l_tuletaProcs[2]->iv_pXProcs[0] = l_tuletaProcs[3];
- l_tuletaProcs[2]->iv_XDeconfigured[0] = true;
+ l_tuletaProcs[2].iv_pThisProc = NULL; // Target *
+ l_tuletaProcs[2].procHUID = 2; // HUID
+ l_tuletaProcs[2].procFabricNode = 1; // FABRIC_NODE_ID
+ l_tuletaProcs[2].procFabricChip = 0; // FABRIC_CHIP_ID
+ l_tuletaProcs[2].iv_isMaster = false; // Not master proc
+ l_tuletaProcs[2].iv_deconfigured = true; // HWAS state
+ l_tuletaProcs[2].iv_pAProcs[0] = &l_tuletaProcs[0];
+ l_tuletaProcs[2].iv_pAProcs[1] = &l_tuletaProcs[0];
+ l_tuletaProcs[2].iv_ADeconfigured[0] = true;
+ l_tuletaProcs[2].iv_ADeconfigured[1] = true;
+ l_tuletaProcs[2].iv_pXProcs[0] = &l_tuletaProcs[3];
+ l_tuletaProcs[2].iv_XDeconfigured[0] = true;
// Proc3:
- l_tuletaProcs[3]->iv_pThisProc = NULL; // Target *
- l_tuletaProcs[3]->procHUID = 3; // HUID
- l_tuletaProcs[3]->procFabricNode = 1; // FABRIC_NODE_ID
- l_tuletaProcs[3]->procFabricChip = 1; // FABRIC_CHIP_ID
- l_tuletaProcs[3]->iv_isMaster = false; // Not master proc
- l_tuletaProcs[3]->iv_deconfigured = true; // HWAS state
- l_tuletaProcs[3]->iv_pAProcs[0] = l_tuletaProcs[1];
- l_tuletaProcs[3]->iv_pAProcs[1] = l_tuletaProcs[2];
- l_tuletaProcs[3]->iv_ADeconfigured[0] = true;
- l_tuletaProcs[3]->iv_ADeconfigured[1] = true;
- l_tuletaProcs[3]->iv_pXProcs[0] = l_tuletaProcs[2];
- l_tuletaProcs[3]->iv_XDeconfigured[0] = true;
+ l_tuletaProcs[3].iv_pThisProc = NULL; // Target *
+ l_tuletaProcs[3].procHUID = 3; // HUID
+ l_tuletaProcs[3].procFabricNode = 1; // FABRIC_NODE_ID
+ l_tuletaProcs[3].procFabricChip = 1; // FABRIC_CHIP_ID
+ l_tuletaProcs[3].iv_isMaster = false; // Not master proc
+ l_tuletaProcs[3].iv_deconfigured = true; // HWAS state
+ l_tuletaProcs[3].iv_pAProcs[0] = &l_tuletaProcs[1];
+ l_tuletaProcs[3].iv_pAProcs[1] = &l_tuletaProcs[2];
+ l_tuletaProcs[3].iv_ADeconfigured[0] = true;
+ l_tuletaProcs[3].iv_ADeconfigured[1] = true;
+ l_tuletaProcs[3].iv_pXProcs[0] = &l_tuletaProcs[2];
+ l_tuletaProcs[3].iv_XDeconfigured[0] = true;
// Call _deconfigureAssocProc to determine which procs
@@ -2881,10 +2843,10 @@ public:
}
// Check result
- if (l_tuletaProcs[0]->iv_deconfigured == false &&
- l_tuletaProcs[1]->iv_deconfigured == false &&
- l_tuletaProcs[2]->iv_deconfigured == true &&
- l_tuletaProcs[3]->iv_deconfigured == true)
+ if (l_tuletaProcs[0].iv_deconfigured == false &&
+ l_tuletaProcs[1].iv_deconfigured == false &&
+ l_tuletaProcs[2].iv_deconfigured == true &&
+ l_tuletaProcs[3].iv_deconfigured == true)
{
TS_TRACE(INFO_MRK "testDeconfigureAssocProc8: Success");
}
@@ -2892,12 +2854,7 @@ public:
{
TS_FAIL("testDeconfigureAssocProc8: incorrect configuration returned");
}
- // Free previously allocated memory
- while(!l_tuletaProcs.empty()) delete l_tuletaProcs.back(),
- l_tuletaProcs.pop_back();
}
-
-
};
#endif
OpenPOWER on IntegriCloud