summaryrefslogtreecommitdiffstats
path: root/src/import/hwpf
diff options
context:
space:
mode:
Diffstat (limited to 'src/import/hwpf')
-rw-r--r--src/import/hwpf/fapi2/include/fapi2_target.H18
-rw-r--r--src/import/hwpf/fapi2/include/plat/target.H8
2 files changed, 25 insertions, 1 deletions
diff --git a/src/import/hwpf/fapi2/include/fapi2_target.H b/src/import/hwpf/fapi2/include/fapi2_target.H
index 8dd1cc13..e8c7877d 100644
--- a/src/import/hwpf/fapi2/include/fapi2_target.H
+++ b/src/import/hwpf/fapi2/include/fapi2_target.H
@@ -379,6 +379,19 @@ class Target
getChipletNumber(void) const;
///
+ /// @brief Returns the core select vector associated with a Core target
+ /// @return The core select value for the target. For unicast core targets
+ /// the return value will have exactly one bit set. For multicast core
+ /// targets it will have between one and four bits set.
+ ///
+ inline MulticastCoreSelect
+ getCoreSelect(void) const
+ {
+ static_assert(K & TARGET_TYPE_CORE, "getCoreSelect is only applicable to TARGET_TYPE_CORE targets");
+ return _getCoreSelect();
+ }
+
+ ///
/// @brief Copy from a Target<O, MO> to a Target<K, M>
/// @tparam O the target type of the other
/// @tparam MO the multicast type of the other
@@ -410,7 +423,10 @@ class Target
V iv_handle;
/// @brief if iv_handle is a multicast target, update its multicast type to M
- inline void mcUpdateHandle();
+ inline void mcUpdateHandle(void);
+
+ /// @brief Internal implementation of getCoreSelect, filtered for CORE targets
+ inline MulticastCoreSelect _getCoreSelect(void) const;
};
// EX threads map to CORE threads:
diff --git a/src/import/hwpf/fapi2/include/plat/target.H b/src/import/hwpf/fapi2/include/plat/target.H
index 62e57f8d..884b60e5 100644
--- a/src/import/hwpf/fapi2/include/plat/target.H
+++ b/src/import/hwpf/fapi2/include/plat/target.H
@@ -198,6 +198,14 @@ Target<K, M, V>::getChipletNumber(void) const
return 0;
}
+template<TargetType K, MulticastType M, typename V>
+inline MulticastCoreSelect
+Target<K, M, V>::_getCoreSelect(void) const
+{
+ // Platform can return the core select value stored in it's Target handle
+ return MCCORE_0;
+}
+
///
/// @brief Return the string interpretation of this target
/// @tparam T The type of the target
OpenPOWER on IntegriCloud