23 #ifndef MCA_BTL_UDAPL_FRAG_H
24 #define MCA_BTL_UDAPL_FRAG_H
27 #define MCA_BTL_UDAPL_FRAG_ALIGN (8)
28 #include "ompi_config.h"
37 MCA_BTL_UDAPL_CONN_RECV,
38 MCA_BTL_UDAPL_CONN_SEND,
39 MCA_BTL_UDAPL_RDMA_WRITE,
40 MCA_BTL_UDAPL_FRAG_EAGER_RDMA,
42 } mca_btl_udapl_frag_type_t;
45 MCA_BTL_UDAPL_CONTROL_NOOP,
46 MCA_BTL_UDAPL_CONTROL_RDMA_CONNECT,
47 MCA_BTL_UDAPL_CONTROL_RDMA_CREDIT,
48 MCA_BTL_UDAPL_CONTROL_SR_CREDIT
49 } mca_btl_udapl_control_t;
53 mca_btl_udapl_control_t type;
63 mca_btl_base_tag_t tag;
74 volatile uint8_t active;
91 DAT_LMR_TRIPLET triplet;
97 mca_btl_udapl_frag_type_t type;
122 #define MCA_BTL_UDAPL_FRAG_ALLOC_EAGER(btl, frag, rc) \
124 ompi_free_list_item_t *item; \
125 OMPI_FREE_LIST_GET(&((mca_btl_udapl_module_t*)btl)->udapl_frag_eager, item, rc); \
126 frag = (mca_btl_udapl_frag_t*) item; \
129 #define MCA_BTL_UDAPL_FRAG_RETURN_EAGER(btl, frag) \
131 OMPI_FREE_LIST_RETURN(&((mca_btl_udapl_module_t*)btl)->udapl_frag_eager, \
132 (ompi_free_list_item_t*)(frag)); \
135 #define MCA_BTL_UDAPL_FRAG_ALLOC_EAGER_RECV(btl, frag, rc) \
137 ompi_free_list_item_t *item; \
138 OMPI_FREE_LIST_GET(&((mca_btl_udapl_module_t*)btl)->udapl_frag_eager_recv, item, rc); \
139 frag = (mca_btl_udapl_frag_t*) item; \
142 #define MCA_BTL_UDAPL_FRAG_ALLOC_MAX(btl, frag, rc) \
144 ompi_free_list_item_t *item; \
145 OMPI_FREE_LIST_GET(&((mca_btl_udapl_module_t*)btl)->udapl_frag_max, item, rc); \
146 frag = (mca_btl_udapl_frag_t*) item; \
149 #define MCA_BTL_UDAPL_FRAG_RETURN_MAX(btl, frag) \
151 OMPI_FREE_LIST_RETURN(&((mca_btl_udapl_module_t*)btl)->udapl_frag_max, \
152 (ompi_free_list_item_t*)(frag)); \
155 #define MCA_BTL_UDAPL_FRAG_ALLOC_MAX_RECV(btl, frag, rc) \
157 ompi_free_list_item_t *item; \
158 OMPI_FREE_LIST_GET(&((mca_btl_udapl_module_t*)btl)->udapl_frag_max_recv, item, rc); \
159 frag = (mca_btl_udapl_frag_t*) item; \
162 #define MCA_BTL_UDAPL_FRAG_ALLOC_USER(btl, frag, rc) \
164 ompi_free_list_item_t *item; \
165 OMPI_FREE_LIST_GET(&((mca_btl_udapl_module_t*)btl)->udapl_frag_user, item, rc); \
166 frag = (mca_btl_udapl_frag_t*) item; \
169 #define MCA_BTL_UDAPL_FRAG_RETURN_USER(btl, frag) \
171 OMPI_FREE_LIST_RETURN(&((mca_btl_udapl_module_t*)btl)->udapl_frag_user, \
172 (ompi_free_list_item_t*)(frag)); \
175 #define MCA_BTL_UDAPL_FRAG_ALLOC_CONTROL(btl, frag, rc) \
177 ompi_free_list_item_t *item; \
178 OMPI_FREE_LIST_GET(&((mca_btl_udapl_module_t*)btl)->udapl_frag_control, item, rc); \
179 frag = (mca_btl_udapl_frag_t*) item; \
182 #define MCA_BTL_UDAPL_FRAG_RETURN_CONTROL(btl, frag) \
184 OMPI_FREE_LIST_RETURN(&((mca_btl_udapl_module_t*)btl)->udapl_frag_control, \
185 (ompi_free_list_item_t*)(frag)); \
191 #define MCA_BTL_UDAPL_FRAG_CALC_ALIGNMENT_PAD(P,S) do { \
192 (P) = ((S) % MCA_BTL_UDAPL_FRAG_ALIGN) == 0 ? \
193 0 : (MCA_BTL_UDAPL_FRAG_ALIGN - ((S) % MCA_BTL_UDAPL_FRAG_ALIGN)); \
A descriptor that holds the parameters to a send/put/get operation along w/ a callback routine that i...
Definition: btl.h:275
uDAPL fragment derived type.
Definition: btl_udapl_frag.h:85
Definition: btl_udapl.h:159
BTL Module Interface.
Definition: btl_udapl.h:106
State of ELAN endpoint connection.
Definition: btl_elan_endpoint.h:33
Describes a region/segment of memory that is addressable by an BTL.
Definition: btl.h:236
#define OBJ_CLASS_DECLARATION(NAME)
Declaration for class descriptor.
Definition: opal_object.h:236