diff options
author | Elliott Dahle <dedahle@us.ibm.com> | 2014-02-12 16:17:24 -0600 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2014-02-13 13:01:04 -0600 |
commit | ecfc6a3a5aa975d7c72b940f5a5c1d969dfb6712 (patch) | |
tree | fae8b1ef4505bbcb2a0ee2843de724c82da6f6a4 /src/usr/targeting/common/utilFilter.C | |
parent | 66fdd0c61ee4ed4d3bf8254d03ede6b7fb4601a9 (diff) | |
download | talos-hostboot-ecfc6a3a5aa975d7c72b940f5a5c1d969dfb6712.tar.gz talos-hostboot-ecfc6a3a5aa975d7c72b940f5a5c1d969dfb6712.zip |
Tul63fp failing on istep hb_config_update of istep 0
Change-Id: Ie3b509b31d3067fe34be7930eb4e1beec4d8383b
CQ:SW245920
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/8806
Tested-by: Jenkins Server
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/targeting/common/utilFilter.C')
-rw-r--r-- | src/usr/targeting/common/utilFilter.C | 48 |
1 files changed, 47 insertions, 1 deletions
diff --git a/src/usr/targeting/common/utilFilter.C b/src/usr/targeting/common/utilFilter.C index bb4846074..34207a75c 100644 --- a/src/usr/targeting/common/utilFilter.C +++ b/src/usr/targeting/common/utilFilter.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2012,2013 */ +/* COPYRIGHT International Business Machines Corp. 2012,2014 */ /* */ /* p1 */ /* */ @@ -32,6 +32,7 @@ #include <targeting/common/predicates/predicatepostfixexpr.H> #include <targeting/common/predicates/predicateattrval.H> #include <targeting/common/utilFilter.H> +#include <targeting/common/predicates/predicateisnonfunctional.H> /** * Miscellaneous Filter Utility Functions @@ -125,6 +126,51 @@ void _getChipOrChipletResources( TARGETING::TargetHandleList & o_vector, } break; } + case UTIL_FILTER_NON_FUNCTIONAL: + { + // Get all non-functional chips or chiplets + // Non-functional predicate + TARGETING::PredicateIsNonFunctional l_isNonFunctional(false); + // Type predicate + TARGETING::PredicateCTM l_CtmFilter(i_class, i_type); + // Set up compound predicate + TARGETING::PredicatePostfixExpr l_nonFunctional; + l_nonFunctional.push(&l_CtmFilter).push(&l_isNonFunctional).And(); + // Apply the filter through all targets + TARGETING::TargetRangeFilter l_nonFuncTargetList( + TARGETING::targetService().begin(), + TARGETING::targetService().end(), + &l_nonFunctional); + o_vector.clear(); + for ( ; l_nonFuncTargetList; ++l_nonFuncTargetList) + { + o_vector.push_back(*l_nonFuncTargetList); + } + break; + } + case UTIL_FILTER_PRESENT_NON_FUNCTIONAL: + { + // Get all present and non-functional chips or chiplets + // Present and non-functional predicate + TARGETING::PredicateIsNonFunctional l_isPresNonFunctional; + // Type predicate + TARGETING::PredicateCTM l_CtmFilter(i_class, i_type); + // Set up compound predicate + TARGETING::PredicatePostfixExpr l_presNonFunctional; + l_presNonFunctional.push(&l_CtmFilter). + push(&l_isPresNonFunctional).And(); + // Apply the filter through all targets + TARGETING::TargetRangeFilter l_presNonFuncTargetList( + TARGETING::targetService().begin(), + TARGETING::targetService().end(), + &l_presNonFunctional); + o_vector.clear(); + for ( ; l_presNonFuncTargetList; ++l_presNonFuncTargetList) + { + o_vector.push_back(*l_presNonFuncTargetList); + } + break; + } default: TARG_ASSERT(0, TARG_LOC "Invalid functional state used"); break; |