19 #ifndef MCA_BTL_TCP_FRAG_H
20 #define MCA_BTL_TCP_FRAG_H
23 #define MCA_BTL_TCP_FRAG_ALIGN (8)
24 #include "ompi_config.h"
26 #ifdef HAVE_SYS_TYPES_H
27 #include <sys/types.h>
37 #include "btl_tcp_hdr.h"
41 #define MCA_BTL_TCP_FRAG_IOVEC_NUMBER 4
52 struct iovec iov[MCA_BTL_TCP_FRAG_IOVEC_NUMBER + 1];
53 struct iovec *iov_ptr;
81 #define MCA_BTL_TCP_FRAG_ALLOC_EAGER(frag, rc) \
83 ompi_free_list_item_t *item; \
84 OMPI_FREE_LIST_GET(&mca_btl_tcp_component.tcp_frag_eager, item, rc); \
85 frag = (mca_btl_tcp_frag_t*) item; \
88 #define MCA_BTL_TCP_FRAG_ALLOC_MAX(frag, rc) \
90 ompi_free_list_item_t *item; \
91 OMPI_FREE_LIST_GET(&mca_btl_tcp_component.tcp_frag_max, item, rc); \
92 frag = (mca_btl_tcp_frag_t*) item; \
95 #define MCA_BTL_TCP_FRAG_ALLOC_USER(frag, rc) \
97 ompi_free_list_item_t *item; \
98 OMPI_FREE_LIST_GET(&mca_btl_tcp_component.tcp_frag_user, item, rc); \
99 frag = (mca_btl_tcp_frag_t*) item; \
102 #define MCA_BTL_TCP_FRAG_RETURN(frag) \
104 OMPI_FREE_LIST_RETURN(frag->my_list, (ompi_free_list_item_t*)(frag)); \
107 #define MCA_BTL_TCP_FRAG_INIT_DST(frag,ep) \
110 frag->btl = ep->endpoint_btl; \
111 frag->endpoint = ep; \
112 frag->iov[0].iov_len = sizeof(frag->hdr); \
113 frag->iov[0].iov_base = (IOVBASE_TYPE*)&frag->hdr; \
116 frag->iov_ptr = frag->iov; \
117 frag->base.des_src = NULL; \
118 frag->base.des_src_cnt = 0; \
119 frag->base.des_dst = frag->segments; \
120 frag->base.des_dst_cnt = 1; \
A descriptor that holds the parameters to a send/put/get operation along w/ a callback routine that i...
Definition: btl.h:275
BTL Module Interface.
Definition: btl_tcp.h:107
Definition: ompi_free_list.h:39
Definition: ompi_uio.h:29
State of ELAN endpoint connection.
Definition: btl_elan_endpoint.h:33
TCP fragment derived type.
Definition: btl_tcp_frag.h:46
Definition: btl_tcp_hdr.h:37
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