summaryrefslogtreecommitdiffstats
path: root/src/usr/diag/prdf/common/plat/prdfTargetServices.C
diff options
context:
space:
mode:
authorCaleb Palmer <cnpalmer@us.ibm.com>2019-07-23 13:32:01 -0500
committerZane C Shelley <zshelle@us.ibm.com>2019-08-05 11:16:41 -0500
commit9de71650fde36c28681150ed7bef8c986e2db1f1 (patch)
tree3b35e918316e2c1357c1467680a776ffbfdad38f /src/usr/diag/prdf/common/plat/prdfTargetServices.C
parentceef10b02ff071edf0cbc75a86f8f94bdcf6617d (diff)
downloadtalos-hostboot-9de71650fde36c28681150ed7bef8c986e2db1f1.tar.gz
talos-hostboot-9de71650fde36c28681150ed7bef8c986e2db1f1.zip
PRD: Axone OMIC to OMI connection and log parser updates
Change-Id: I4a1432e79e0ac24d84846d8be2fc1c6f0380f397 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/80832 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Brian J Stegmiller <bjs@us.ibm.com> Reviewed-by: Benjamen G Tyner <ben.tyner@ibm.com> Reviewed-by: Paul Greenwood <paul.greenwood@ibm.com> Reviewed-by: Zane C Shelley <zshelle@us.ibm.com> Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/81589 Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Diffstat (limited to 'src/usr/diag/prdf/common/plat/prdfTargetServices.C')
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/prdfTargetServices.C37
1 files changed, 27 insertions, 10 deletions
diff --git a/src/usr/diag/prdf/common/plat/prdfTargetServices.C b/src/usr/diag/prdf/common/plat/prdfTargetServices.C
index 7fdf2b1e3..ad73ba49a 100755
--- a/src/usr/diag/prdf/common/plat/prdfTargetServices.C
+++ b/src/usr/diag/prdf/common/plat/prdfTargetServices.C
@@ -666,14 +666,30 @@ TargetHandleList getConnAssoc( TargetHandle_t i_target, TYPE i_connType,
TargetHandleList o_list; // Default empty list
- // Match any class, specified type, and functional.
- PredicateCTM predType( CLASS_NA, i_connType );
- PredicateIsFunctional predFunc;
- PredicatePostfixExpr predAnd;
- predAnd.push(&predType).push(&predFunc).And();
+ TYPE trgtType = getTargetType( i_target );
- targetService().getAssociated( o_list, i_target, i_assocType,
- TargetService::ALL, &predAnd );
+ // OMIC -> OMI and vice versa require special handling.
+ if ( TYPE_OMIC == trgtType && TYPE_OMI == i_connType )
+ {
+ getChildOmiTargetsByState( o_list, i_target, CLASS_NA, TYPE_OMI,
+ UTIL_FILTER_FUNCTIONAL );
+ }
+ else if ( TYPE_OMI == trgtType && TYPE_OMIC == i_connType )
+ {
+ getParentOmicTargetsByState( o_list, i_target, CLASS_NA, TYPE_OMIC,
+ UTIL_FILTER_FUNCTIONAL );
+ }
+ else
+ {
+ // Match any class, specified type, and functional.
+ PredicateCTM predType( CLASS_NA, i_connType );
+ PredicateIsFunctional predFunc;
+ PredicatePostfixExpr predAnd;
+ predAnd.push(&predType).push(&predFunc).And();
+
+ targetService().getAssociated( o_list, i_target, i_assocType,
+ TargetService::ALL, &predAnd );
+ }
// Sort by target position.
std::sort( o_list.begin(), o_list.end(),
@@ -983,13 +999,14 @@ TargetHandle_t getConnectedChild( TargetHandle_t i_target, TYPE i_connType,
else if ( TYPE_OMIC == trgtType && TYPE_OMI == i_connType )
{
// i_connPos is position relative to OMIC (0-2)
- for ( auto & trgt : list )
+ for ( TargetHandleList::iterator trgtIt = list.begin();
+ trgtIt != list.end(); trgtIt++ )
{
uint8_t omiPos = 0;
- if ( trgt->tryGetAttr<ATTR_OMI_DL_GROUP_POS>(omiPos) &&
+ if ( (*trgtIt)->tryGetAttr<ATTR_OMI_DL_GROUP_POS>(omiPos) &&
(i_connPos == omiPos) )
{
- *itr = trgt;
+ itr = trgtIt;
break;
}
}
OpenPOWER on IntegriCloud