11 #ifndef MCA_BTL_UDAPL_EAGER_RDMA_H
12 #define MCA_BTL_UDAPL_EAGER_RDMA_H
15 #include "ompi/mca/btl/udapl/btl_udapl_endpoint.h"
66 #define EAGER_RDMA_BUFFER_AVAILABLE (0)
67 #define EAGER_RDMA_BUFFER_IN_USE (0xff)
69 #define MCA_BTL_UDAPL_RDMA_FRAG_IN_USE(F) do { \
70 *(volatile uint8_t*) ((char*)(F) + \
71 (mca_btl_udapl_component.udapl_eager_rdma_frag_size - \
72 (sizeof(mca_btl_udapl_footer_t)))); \
75 #define MCA_BTL_UDAPL_RDMA_FRAG_ASSIGN_IN_USE(F) do { \
76 *(volatile uint8_t*) ((char*)(F) + \
77 (mca_btl_udapl_component.udapl_eager_rdma_frag_size- \
78 (sizeof(mca_btl_udapl_footer_t)))) = EAGER_RDMA_BUFFER_IN_USE; \
81 #define MCA_BTL_UDAPL_RDMA_FRAG_ASSIGN_AVAILABLE(F) do { \
82 *(volatile uint8_t*) ((char*)(F) + \
83 (mca_btl_udapl_component.udapl_eager_rdma_frag_size - \
84 (sizeof(mca_btl_udapl_footer_t)))) = EAGER_RDMA_BUFFER_AVAILABLE; \
88 #define MCA_BTL_UDAPL_GET_LOCAL_RDMA_FRAG(E, I) \
89 (mca_btl_udapl_frag_t*) \
90 ((char*)(E)->endpoint_eager_rdma_local.base.pval + \
91 (I) * sizeof(mca_btl_udapl_frag_eager_rdma_t))
97 #define MCA_BTL_UDAPL_RDMA_NEXT_INDEX(I) do { \
100 mca_btl_udapl_component.udapl_eager_rdma_num) \
Definition: btl_udapl_eager_rdma.h:36
int32_t tokens
number of available rdma buffers, initially equal to mca parameter eager_rdma_num ...
Definition: btl_udapl_eager_rdma.h:41
int32_t credits
number of local rdma buffers ready to be reclaimed, reused.
Definition: btl_udapl_eager_rdma.h:27
Definition: mutex_unix.h:53
ompi_ptr_t base
points to start of data region, not fragment structures
Definition: btl_udapl_eager_rdma.h:37
uint8_t head
RDMA buffer to use.
Definition: btl_udapl_eager_rdma.h:40
Definition: btl_udapl_eager_rdma.h:50
Definition: btl_udapl.h:159
opal_mutex_t lock
protect access to RDMA buffer
Definition: btl_udapl_eager_rdma.h:43
DAT_RMR_CONTEXT rkey
key required to access remote memory
Definition: btl_udapl_eager_rdma.h:39
opal_mutex_t lock
protect access to RDMA buffer
Definition: btl_udapl_eager_rdma.h:29
uint8_t head
RDMA buffer to poll.
Definition: btl_udapl_eager_rdma.h:26
Definition: btl_udapl_eager_rdma.h:23
ompi_ptr_t base
points to fragment structures
Definition: btl_udapl_eager_rdma.h:24
Definition: btl_udapl_eager_rdma.h:60