summaryrefslogtreecommitdiffstats
path: root/src/usr/targeting/common/utilFilter.C
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/targeting/common/utilFilter.C')
-rw-r--r--src/usr/targeting/common/utilFilter.C30
1 files changed, 29 insertions, 1 deletions
diff --git a/src/usr/targeting/common/utilFilter.C b/src/usr/targeting/common/utilFilter.C
index 4783d12ee..aeca62ad3 100644
--- a/src/usr/targeting/common/utilFilter.C
+++ b/src/usr/targeting/common/utilFilter.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2012,2015 */
+/* Contributors Listed Below - COPYRIGHT 2012,2016 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -429,6 +429,34 @@ const Target * getParentChip( const Target * i_pChiplet )
return l_pChip;
}
+const Target * getParent( const Target * i_unit , TARGETING::TYPE &i_pType)
+{
+ const Target * l_parent = NULL;
+ TARGETING::PredicateCTM l_predicate;
+
+ l_predicate.setType(i_pType);
+
+ // Create a vector of TARGETING::Target pointers
+ TARGETING::TargetHandleList l_chipList;
+
+ // Get parent
+ TARGETING::targetService().getAssociated(l_chipList, i_unit,
+ TARGETING::TargetService::PARENT,
+ TARGETING::TargetService::ALL, &l_predicate);
+
+ if (l_chipList.size() == 1)
+ {
+ l_parent = l_chipList[0];
+ }
+ else
+ {
+ TARG_ERR("Number of Parent chip is not 1, but %d",l_chipList.size());
+ }
+
+ return l_parent;
+}
+
+
const Target * getExChiplet( const Target * i_pCoreChiplet )
{
const Target * l_pExChiplet = NULL;
OpenPOWER on IntegriCloud