19 #ifndef OMPI_BTL_PORTALS_FRAG_H
20 #define OMPI_BTL_PORTALS_FRAG_H
40 enum { BTL_PORTALS_FRAG_TYPE_EAGER,
41 BTL_PORTALS_FRAG_TYPE_MAX,
42 BTL_PORTALS_FRAG_TYPE_USER } type;
43 unsigned char data[16];
64 #define OMPI_BTL_PORTALS_FRAG_ALLOC_EAGER(btl_macro, frag, rc) \
67 ompi_free_list_item_t *item; \
68 OMPI_FREE_LIST_GET(&((mca_btl_portals_module_t*)btl_macro)->portals_frag_eager, item, rc); \
69 frag = (mca_btl_portals_frag_t*) item; \
70 if (OPAL_SOS_GET_ERROR_CODE(rc) == OMPI_ERR_TEMP_OUT_OF_RESOURCE) { \
71 OMPI_BTL_PORTALS_FRAG_ALLOC_MAX(btl_macro, frag, rc); \
76 #define OMPI_BTL_PORTALS_FRAG_RETURN_EAGER(btl_macro, frag) \
78 assert(BTL_PORTALS_FRAG_TYPE_EAGER == frag->type); \
79 OMPI_FREE_LIST_RETURN(&((mca_btl_portals_module_t*)btl_macro)->portals_frag_eager, \
80 (ompi_free_list_item_t*)(frag)); \
84 #define OMPI_BTL_PORTALS_FRAG_ALLOC_MAX(btl_macro, frag, rc) \
87 ompi_free_list_item_t *item_macro; \
88 OMPI_FREE_LIST_GET(&((mca_btl_portals_module_t*)btl_macro)->portals_frag_max, item_macro, rc); \
89 frag = (mca_btl_portals_frag_t*) item_macro; \
93 #define OMPI_BTL_PORTALS_FRAG_RETURN_MAX(btl_macro, frag) \
95 assert(BTL_PORTALS_FRAG_TYPE_MAX == frag->type); \
96 OMPI_FREE_LIST_RETURN(&((mca_btl_portals_module_t*)btl_macro)->portals_frag_max, \
97 (ompi_free_list_item_t*)(frag)); \
101 #define OMPI_BTL_PORTALS_FRAG_ALLOC_USER(btl_macro, frag, rc) \
103 ompi_free_list_item_t *item; \
104 OMPI_FREE_LIST_WAIT(&((mca_btl_portals_module_t*)btl_macro)->portals_frag_user, item, rc); \
105 frag = (mca_btl_portals_frag_t*) item; \
109 #define OMPI_BTL_PORTALS_FRAG_RETURN_USER(btl_macro, frag) \
111 assert(BTL_PORTALS_FRAG_TYPE_USER == frag->type); \
112 OMPI_FREE_LIST_RETURN(&((mca_btl_portals_module_t*)btl_macro)->portals_frag_user, \
113 (ompi_free_list_item_t*)(frag)); \
A descriptor that holds the parameters to a send/put/get operation along w/ a callback routine that i...
Definition: btl.h:275
Portals send fragment derived type.
Definition: btl_portals_frag.h:27
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