This source file includes following definitions.
- mca_pml_ucx_get_datatype
1
2
3
4
5
6
7
8
9
10 #ifndef PML_UCX_DATATYPE_H_
11 #define PML_UCX_DATATYPE_H_
12
13 #include "pml_ucx.h"
14
15
16 #define PML_UCX_DATATYPE_INVALID 0
17
18 struct pml_ucx_convertor {
19 opal_free_list_item_t super;
20 ompi_datatype_t *datatype;
21 opal_convertor_t opal_conv;
22 size_t offset;
23 };
24
25
26 ucp_datatype_t mca_pml_ucx_init_datatype(ompi_datatype_t *datatype);
27
28 int mca_pml_ucx_datatype_attr_del_fn(ompi_datatype_t* datatype, int keyval,
29 void *attr_val, void *extra);
30
31 OBJ_CLASS_DECLARATION(mca_pml_ucx_convertor_t);
32
33
34 static inline ucp_datatype_t mca_pml_ucx_get_datatype(ompi_datatype_t *datatype)
35 {
36 ucp_datatype_t ucp_type = datatype->pml_data;
37
38 if (OPAL_LIKELY(ucp_type != PML_UCX_DATATYPE_INVALID)) {
39 return ucp_type;
40 }
41
42 return mca_pml_ucx_init_datatype(datatype);
43 }
44
45 #endif