diff options
author | Mike Baiocchi <mbaiocch@us.ibm.com> | 2016-04-26 13:57:04 -0500 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2016-05-16 14:00:13 -0400 |
commit | 862d9444b75f596f6f6df5cb6f2c6be082416c31 (patch) | |
tree | 46f72e7e5c08151dfc468cf2d604d0f8ee5c022b /src/include/usr | |
parent | b610a0f7b2932d0fbf1ce505d17ea6ae73863623 (diff) | |
download | talos-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.H | 34 |
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) { |