|
@@ -322,9 +322,8 @@ void _starpu_mpi_datatype_free(starpu_data_handle_t data_handle, MPI_Datatype *d
|
|
|
/* else the datatype is not predefined by StarPU */
|
|
|
}
|
|
|
|
|
|
-int starpu_mpi_datatype_register(starpu_data_handle_t handle, starpu_mpi_datatype_allocate_func_t allocate_datatype_func, starpu_mpi_datatype_free_func_t free_datatype_func)
|
|
|
+int starpu_mpi_interface_datatype_register(enum starpu_data_interface_id id, starpu_mpi_datatype_allocate_func_t allocate_datatype_func, starpu_mpi_datatype_free_func_t free_datatype_func);
|
|
|
{
|
|
|
- enum starpu_data_interface_id id = starpu_data_get_interface_id(handle);
|
|
|
struct _starpu_mpi_datatype_funcs *table;
|
|
|
|
|
|
STARPU_ASSERT_MSG(id >= STARPU_MAX_INTERFACE_ID, "Cannot redefine the MPI datatype for a predefined StarPU datatype");
|
|
@@ -349,9 +348,14 @@ int starpu_mpi_datatype_register(starpu_data_handle_t handle, starpu_mpi_datatyp
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-int starpu_mpi_datatype_unregister(starpu_data_handle_t handle)
|
|
|
+int starpu_mpi_datatype_register(starpu_data_handle_t handle, starpu_mpi_datatype_allocate_func_t allocate_datatype_func, starpu_mpi_datatype_free_func_t free_datatype_func)
|
|
|
{
|
|
|
enum starpu_data_interface_id id = starpu_data_get_interface_id(handle);
|
|
|
+ starpu_mpi_interface_datatype_register(id, allocate_datatype_func, free_datatype_func);
|
|
|
+}
|
|
|
+
|
|
|
+int starpu_mpi_interface_datatype_unregister(enum starpu_data_interface_id id)
|
|
|
+{
|
|
|
struct _starpu_mpi_datatype_funcs *table;
|
|
|
|
|
|
STARPU_ASSERT_MSG(id >= STARPU_MAX_INTERFACE_ID, "Cannot redefine the MPI datatype for a predefined StarPU datatype");
|
|
@@ -366,3 +370,9 @@ int starpu_mpi_datatype_unregister(starpu_data_handle_t handle)
|
|
|
STARPU_PTHREAD_MUTEX_UNLOCK(&_starpu_mpi_datatype_funcs_table_mutex);
|
|
|
return 0;
|
|
|
}
|
|
|
+
|
|
|
+int starpu_mpi_datatype_unregister(starpu_data_handle_t handle)
|
|
|
+{
|
|
|
+ enum starpu_data_interface_id id = starpu_data_get_interface_id(handle);
|
|
|
+ starpu_mpi_interface_datatype_unregister(id);
|
|
|
+}
|