summaryrefslogtreecommitdiffstats
path: root/src/include/usr
diff options
context:
space:
mode:
authorMike Baiocchi <mbaiocch@us.ibm.com>2016-04-26 13:57:04 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2016-05-16 14:00:13 -0400
commit862d9444b75f596f6f6df5cb6f2c6be082416c31 (patch)
tree46f72e7e5c08151dfc468cf2d604d0f8ee5c022b /src/include/usr
parentb610a0f7b2932d0fbf1ce505d17ea6ae73863623 (diff)
downloadtalos-hostboot-862d9444b75f596f6f6df5cb6f2c6be082416c31.tar.gz
talos-hostboot-862d9444b75f596f6f6df5cb6f2c6be082416c31.zip
Updated supported types for fapi2 targeting getOtherEnd
Updated fapi2 targetting getOtherEnd() template by limiting the support to just targets of type XBUS, ABUS, and OBUS. Change-Id: I022079205161888ad7f16a8cfff6b2efe635af8a RTC:148934 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/23687 Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com> Tested-by: Jenkins Server Tested-by: FSP CI Jenkins Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/include/usr')
-rw-r--r--src/include/usr/fapi2/target.H34
1 files changed, 16 insertions, 18 deletions
diff --git a/src/include/usr/fapi2/target.H b/src/include/usr/fapi2/target.H
index 068fe2586..7df49e96c 100644
--- a/src/include/usr/fapi2/target.H
+++ b/src/include/usr/fapi2/target.H
@@ -765,26 +765,24 @@ Target<K, V>::getOtherEnd(fapi2::Target<T>& o_target,
ReturnCodes l_rc;
// errlHndl_t l_errl = NULL;
TARGETING::TargetHandleList l_peerTargetList;
- TARGETING::TYPE requiredPeerType = fapi2::convertFapi2TypeToTargeting(T);
TARGETING::CLASS targetClass = TARGETING::CLASS_NA;
- //TODO RTC:148934 add static_asserts for correct types
- switch(requiredPeerType)
- {
- case TARGETING::TYPE_XBUS :
- targetClass = TARGETING::CLASS_UNIT; break;
- case TARGETING::TYPE_OBUS :
- targetClass = TARGETING::CLASS_UNIT; break;
- case TARGETING::TYPE_DMI :
- targetClass = TARGETING::CLASS_UNIT; break;
- case TARGETING::TYPE_DIMM :
- targetClass = TARGETING::CLASS_LOGICAL_CARD; break;
- case TARGETING::TYPE_MEMBUF :
- targetClass = TARGETING::CLASS_CHIP; break;
- default:
- break;
- }
- TARGETING::PredicateCTM l_peerFilter(targetClass);
+ // Only supporting these relationships:
+ // XBUS <-> XBUS
+ // ABUS <-> ABUS
+ // OBUS <-> OBUS
+
+ static_assert( K==T, "both ends must be of same fapi2::TARGET_TYPE");
+ static_assert ( ( (K==fapi2::TARGET_TYPE_XBUS) ||
+ (K==fapi2::TARGET_TYPE_ABUS) ||
+ (K==fapi2::TARGET_TYPE_OBUS) ),
+ "Only types of XBUS, ABUS, and OBUS are supported");
+
+ // for the supported types above, only one option supported
+ targetClass = TARGETING::CLASS_UNIT;
+
+ TARGETING::PredicateCTM l_peerFilter(targetClass,
+ fapi2::convertFapi2TypeToTargeting(T));
if(i_state == TARGET_STATE_FUNCTIONAL)
{
OpenPOWER on IntegriCloud