77 int position = 0, buffer_size;
79 comm, &buffer_size), comm);
82 1, request_msgs_packed->
datatypes[i], comm), comm);
87 free(request_msgs_packed->
buffers[i]);
94 const MPI_Request requests[n_requests],
110 MPI_Request *requests_
112 memcpy(requests_, requests,
113 (
size_t)n_requests *
sizeof(*requests_));
121 memcpy(ebuf->
buffers, packed_data,
add versions of standard API functions not returning on error
int MPI_Type_free(MPI_Datatype *datatype)
int MPI_Type_dup(MPI_Datatype oldtype, MPI_Datatype *newtype)
struct Xt_config_ xt_default_config
void xt_config_set_redist_mthread_mode(Xt_config config, int mode)
implementation of configuration object
#define xt_mpi_call(call, comm)
struct Xt_request_ * Xt_request
Provide non-public declarations common to all requests.
void xt_request_msgs_ebuf_set_finalizer(Xt_request request, Xt_request_msgs_ebuf_finalizer finalizer)
MPI_Comm xt_request_msgs_ebuf_get_comm(Xt_request request)
Xt_request xt_request_msgs_ebuf_alloc(int n_requests, MPI_Comm comm, size_t extra_buf_size, Xt_config config)
MPI_Request * xt_request_msgs_ebuf_get_req_ptr(Xt_request request)
void * xt_request_msgs_ebuf_get_extra_buf(Xt_request request)
internal interfaces for xt_request_msgs_ebuf
Xt_request xt_request_msgs_packed_new(int n_requests, const MPI_Request requests[n_requests], MPI_Comm comm, int n_packed, int n_tmp_buffers, const MPI_Datatype datatypes[n_packed], void *packed_data[n_packed], void *tmp_buffers[n_tmp_buffers], void *unpacked_data)
static void xt_request_msgs_packed_finalize(Xt_request request, void *ebuf)