diff --git a/include/maestro/i_pool_manager_registry.h b/include/maestro/i_pool_manager_registry.h index 05780aa324a2b426e980ccd0c6de6776f07d363e..5b3ae049d330f43448bccce2d67e3cc55cc01498 100644 --- a/include/maestro/i_pool_manager_registry.h +++ b/include/maestro/i_pool_manager_registry.h @@ -324,6 +324,39 @@ mstro_pm_candidates_destroy(mstro_pm_candidates *candidates); + +/** Convert the mapping between two distributed layouts found by mmb_layout_compute_intersection + * to a list of candidates (apps, local cdo-ids, offsets, lengths) that satisfy + * the requested distribution from a different source distribution. + * Return MSTRO_OK on success. +**/ +static inline +mstro_status +mstro_pm__mmbLayoutIntersecton_to_candidates( + mmbLayoutIntersection *intersection, + size_t dst_index, + mmbLayout *src_layout, + struct per_app_cdo_entries *app_to_attributes_table, + mstro_pm_candidates **candidates); + +/** Find an offered distributed cdo with the required exact layout + * (including index),i.e., 1:1 mapping +**/ +static inline +mstro_status +mstro_pm__find_cdo_with_layout( + struct per_app_cdo_entries *app_to_attributes_table, + mmbLayout *s_layout, + struct per_app_cdo_entries **app, + uint64_t *local_id); + + +/** Destroy mstro_pm_candidates **/ +static inline +mstro_status +mstro_pm_candidates_destroy(mstro_pm_candidates *candidates); + + /**@} (end of group MSTRO_I_PM_Registry) */ /**@} (end of group MSTRO_Internal) */