@@ -852,6 +852,16 @@ constexpr void _check_valid_parent_of_iohs()
852852 " improper parent of fapi2::TARGET_TYPE_IOHS" );
853853}
854854
855+ template < fapi2::TargetType K, fapi2::TargetType T >
856+ constexpr void _check_valid_parent_of_iolink ()
857+ {
858+ // valid parents for IOLINK
859+ // IOLINK -> IOHS
860+ static_assert (!((K == fapi2::TARGET_TYPE_IOLINK) &&
861+ (T != fapi2::TARGET_TYPE_IOHS)),
862+ " improper parent of fapi2::TARGET_TYPE_IOLINK" );
863+ }
864+
855865template < fapi2::TargetType K, fapi2::TargetType T >
856866constexpr void _check_valid_parent_of_pau ()
857867{
@@ -905,6 +915,7 @@ constexpr void _check_valid_unicast_parent()
905915 fapi2plat::_check_valid_parent_of_capp<K, T>();
906916 fapi2plat::_check_valid_parent_of_nmmu<K, T>();
907917 fapi2plat::_check_valid_parent_of_iohs<K, T>();
918+ fapi2plat::_check_valid_parent_of_iolink<K, T>();
908919 fapi2plat::_check_valid_parent_of_pau<K, T>();
909920}
910921
@@ -1203,6 +1214,16 @@ constexpr void _check_pauc_valid_children()
12031214 " improper child of fapi2::TARGET_TYPE_PAUC" );
12041215}
12051216
1217+ template < fapi2::TargetType K, fapi2::TargetType T >
1218+ constexpr void _check_iohs_valid_children ()
1219+ {
1220+ // valid children for IOHS
1221+ // IOHS -> IOLINK
1222+ static_assert (!((K == fapi2::TARGET_TYPE_IOHS) &&
1223+ (T != fapi2::TARGET_TYPE_IOLINK)),
1224+ " improper child of fapi2::TARGET_TYPE_IOHS" );
1225+ }
1226+
12061227
12071228template < fapi2::TargetType K, fapi2::TargetType T >
12081229constexpr void _check_valid_unicast_children ()
@@ -1227,6 +1248,7 @@ constexpr void _check_valid_unicast_children()
12271248 fapi2plat::_check_mc_valid_children<K, T>();
12281249 fapi2plat::_check_obus_valid_children<K, T>();
12291250 fapi2plat::_check_pauc_valid_children<K, T>();
1251+ fapi2plat::_check_iohs_valid_children<K, T>();
12301252}
12311253
12321254#endif
0 commit comments