diff options
-rw-r--r-- | src/import/hwpf/fapi2/include/fapi2_target.H | 18 | ||||
-rw-r--r-- | src/import/hwpf/fapi2/include/plat/target.H | 8 |
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 |