summaryrefslogtreecommitdiffstats
path: root/src/usr/diag/prdf/common/framework/resolution/iipResolution.C
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/diag/prdf/common/framework/resolution/iipResolution.C')
-rwxr-xr-xsrc/usr/diag/prdf/common/framework/resolution/iipResolution.C52
1 files changed, 31 insertions, 21 deletions
diff --git a/src/usr/diag/prdf/common/framework/resolution/iipResolution.C b/src/usr/diag/prdf/common/framework/resolution/iipResolution.C
index 2aa11b790..ae73bcd9e 100755
--- a/src/usr/diag/prdf/common/framework/resolution/iipResolution.C
+++ b/src/usr/diag/prdf/common/framework/resolution/iipResolution.C
@@ -228,43 +228,53 @@ int32_t CalloutConnected::Resolve( STEP_CODE_DATA_STRUCT & io_serviceData )
{
using namespace TARGETING;
- TargetHandle_t sourceTrgt = ServiceDataCollector::getTargetAnalyzed();
- TargetHandle_t connTrgt = NULL;
-
- TargetHandleList list = getConnected( sourceTrgt, iv_targetType );
+ TargetHandle_t sourceTrgt = ServiceDataCollector::getTargetAnalyzed();
+ TargetHandle_t connTrgt = NULL;
+ TargetHandle_t srcEndPoint = NULL;
- if ( 0xffffffff == iv_idx )
- {
- if ( 0 < list.size() )
- connTrgt = list[0];
- }
- else
+ if(TYPE_NA == iv_peerConnType)
{
- for (TargetHandleList::iterator i = list.begin(); i != list.end(); i++)
+ TargetHandleList list = getConnected( sourceTrgt, iv_targetType );
+
+ if ( 0xffffffff == iv_idx )
{
- if ( iv_idx == getTargetPosition(*i) )
+ if ( 0 < list.size() )
+ connTrgt = list[0];
+ }
+ else
+ {
+ for (TargetHandleList::iterator i = list.begin();
+ i != list.end();
+ i++)
{
- connTrgt = *i;
- break;
+ if ( iv_idx == getTargetPosition(*i) )
+ {
+ connTrgt = *i;
+ break;
+ }
}
}
}
+ else
+ {
+ srcEndPoint = getConnectedChild( sourceTrgt, iv_peerConnType, iv_idx );
+
+ if ( NULL != srcEndPoint )
+ connTrgt = getConnectedPeerTarget( srcEndPoint );
+ }
if ( NULL != connTrgt )
- {
io_serviceData.service_data->SetCallout( connTrgt, iv_priority );
- }
else
{
if ( NULL != iv_altResolution )
- {
iv_altResolution->Resolve( io_serviceData );
- }
else
{
- PRDF_ERR( "[CalloutConnected::Resolve] No connected chip found: "
- "sourceTrgt=0x%08x iv_targetType=0x%x",
- getHuid(sourceTrgt), iv_targetType );
+ PRDF_ERR( "[CalloutConnected::Resolve] No connected chip found:"
+ " sourceTrgt=0x%08x, iv_peerConnType=0x%x",
+ getHuid(sourceTrgt), iv_peerConnType);
+
io_serviceData.service_data->SetCallout( sourceTrgt );
}
}
OpenPOWER on IntegriCloud