19 #ifndef OMPI_BTL_PORTALS_RECV_H
20 #define OMPI_BTL_PORTALS_RECV_H
22 #include "btl_portals_frag.h"
35 volatile int32_t pending;
75 ptl_process_id_t any_proc = { PTL_NID_ANY, PTL_PID_ANY };
77 uint64_t ignore_bits = ~((uint64_t) 0);
81 assert(block->pending == 0);
83 if (NULL == block->start)
return OMPI_ERROR;
86 ret = PtlMEInsert(block->btl->portals_recv_reject_me_h,
93 if (PTL_OK != ret)
return OMPI_ERROR;
96 md.start = block->start;
97 md.length = block->length;
100 md.threshold = mca_btl_portals_module.portals_eq_sizes[OMPI_BTL_PORTALS_EQ_RECV] /
101 (mca_btl_portals_module.portals_recv_mds_num * 2);
103 md.options = PTL_MD_OP_PUT | PTL_MD_MAX_SIZE;
105 md.eq_handle = block->btl->portals_eq_handles[OMPI_BTL_PORTALS_EQ_RECV];
112 ret = PtlMDAttach(block->me_h,
117 PtlMEUnlink(block->me_h);
132 if (block->full ==
true) {
133 if (block->pending == 0) {
134 ret = mca_btl_portals_activate_block(block);
135 if (OMPI_SUCCESS != ret) {
#define OPAL_THREAD_ADD32(x, y)
Use an atomic operation for increment/decrement if opal_using_threads() indicates that threads are in...
Definition: mutex.h:367
Definition: btl_portals.h:79
Definition: opal_list.h:98
void opal_atomic_mb(void)
Memory barrier.
Definition: btl_portals_recv.h:24
size_t btl_max_send_size
maximum send fragment size supported by the BTL
Definition: btl.h:792
#define OBJ_CLASS_DECLARATION(NAME)
Declaration for class descriptor.
Definition: opal_object.h:236