summaryrefslogtreecommitdiffstats
path: root/src/usr/targeting/common/utilFilter.C
diff options
context:
space:
mode:
authorayma <ayma@us.ibm.com>2014-03-04 16:19:49 -0600
committerA. Patrick Williams III <iawillia@us.ibm.com>2014-03-15 12:25:22 -0500
commit9ef3e1b8cd5d2ee02984478b1882677331da08fa (patch)
tree7cb7804214eedc70826242dadd78c1e117fde854 /src/usr/targeting/common/utilFilter.C
parentd05eda21bf62fe34d0dcbdd786794707c5c9f048 (diff)
downloadtalos-hostboot-9ef3e1b8cd5d2ee02984478b1882677331da08fa.tar.gz
talos-hostboot-9ef3e1b8cd5d2ee02984478b1882677331da08fa.zip
change to check all present MBA and MCS in host_prd_hwreconfig
need to change host_prd_hwreconfig to use all present targets instead of only functional targets. This allows the HWP to mask FIRS appropriately Change-Id: I795adf302ff4da5c731d2356433fd775b5f1ba45 CQ: SW245901 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/9297 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.C84
1 files changed, 58 insertions, 26 deletions
diff --git a/src/usr/targeting/common/utilFilter.C b/src/usr/targeting/common/utilFilter.C
index 48db04ea3..f460ff93b 100644
--- a/src/usr/targeting/common/utilFilter.C
+++ b/src/usr/targeting/common/utilFilter.C
@@ -309,63 +309,95 @@ void getChildChiplets( TARGETING::TargetHandleList& o_vector,
}
}
-void getAffinityTargets ( TARGETING::TargetHandleList& o_vector,
- const Target * i_target, CLASS i_class, TYPE i_type,
- TARGETING::TargetService::ASSOCIATION_TYPE i_association,
- bool i_functional )
+void getAffinityTargets (TargetHandleList& o_vector, const Target * i_target,
+ CLASS i_class, TYPE i_type,
+ ResourceState i_state,
+ TargetService::ASSOCIATION_TYPE i_association)
{
+ #define TARG_FN "getAffinityTargets(...)"
+
// find all the targets that are affinity-associated with i_target
TARGETING::PredicateCTM l_targetFilter(i_class, i_type);
o_vector.clear();
- if (i_functional)
+ switch(i_state)
{
- // Use PredicateIsFunctional to filter only functional chips
- TARGETING::PredicateIsFunctional l_functional;
- TARGETING::PredicatePostfixExpr l_functionalTargets;
- l_functionalTargets.push(&l_targetFilter).push(&l_functional).And();
- TARGETING::targetService().getAssociated(
+ case UTIL_FILTER_ALL:
+ {
+ TARGETING::targetService().getAssociated(
o_vector,
i_target,
i_association,
TARGETING::TargetService::ALL,
- &l_functionalTargets );
- }
- else
- {
- TARGETING::targetService().getAssociated(
+ &l_targetFilter );
+
+ break;
+ }
+ case UTIL_FILTER_PRESENT:
+ {
+ // Get all present chips or chiplets
+ // Present predicate
+ PredicateHwas l_predPres;
+ l_predPres.present(true);
+ // Type predicate
+ // Set up compound predicate
+ TARGETING::PredicatePostfixExpr l_presentTargets;
+ l_presentTargets.push(&l_targetFilter).push(&l_predPres).And();
+ // Apply the filter through all targets
+ TARGETING::targetService().getAssociated(
o_vector,
i_target,
i_association,
TARGETING::TargetService::ALL,
- &l_targetFilter );
+ &l_presentTargets );
+
+ break;
+ }
+ case UTIL_FILTER_FUNCTIONAL:
+ {
+ // Use PredicateIsFunctional to filter only functional chips
+ TARGETING::PredicateIsFunctional l_functional;
+ TARGETING::PredicatePostfixExpr l_functionalTargets;
+ l_functionalTargets.push(&l_targetFilter).push(&l_functional).And();
+ TARGETING::targetService().getAssociated(
+ o_vector,
+ i_target,
+ i_association,
+ TARGETING::TargetService::ALL,
+ &l_functionalTargets );
+ break;
+ }
+ default:
+ TARG_ASSERT(0, TARG_LOC "Invalid functional state used");
+ break;
}
+ #undef TARG_FN
}
-void getChildAffinityTargets(
+void getChildAffinityTargetsByState(
TARGETING::TargetHandleList& o_vector,
const Target* i_target,
CLASS i_class,
TYPE i_type,
- bool i_functional)
+ ResourceState i_state )
+
{
- getAffinityTargets (o_vector, i_target, i_class, i_type,
- TARGETING::TargetService::CHILD_BY_AFFINITY,
- i_functional);
+
+ getAffinityTargets(o_vector, i_target, i_class, i_type, i_state,
+ TargetService::CHILD_BY_AFFINITY);
}
-void getParentAffinityTargets(
+void getParentAffinityTargetsByState(
TARGETING::TargetHandleList& o_vector,
const Target* i_target,
CLASS i_class,
TYPE i_type,
- bool i_functional )
+ ResourceState i_state )
{
- getAffinityTargets (o_vector, i_target, i_class, i_type,
- TARGETING::TargetService::PARENT_BY_AFFINITY,
- i_functional);
+ getAffinityTargets(o_vector, i_target, i_class, i_type, i_state,
+ TargetService::PARENT_BY_AFFINITY);
}
const Target * getParentChip( const Target * i_pChiplet )
OpenPOWER on IntegriCloud