1
1
openmpi/src/mca/ptl/base/ptl_base_recvreq.h

57 строки
1.5 KiB
C
Исходник Обычный вид История

/*
* $HEADER$
*/
#ifndef MCA_PML_BASE_RECV_REQUEST_H
#define MCA_PML_BASE_RECV_REQUEST_H
#include "mca/mpi/ptl/ptl.h"
#include "mca/mpi/pml/base/pml_base_request.h"
extern lam_class_t mca_ptl_base_recv_request_t_class;;
struct mca_ptl_base_recv_frag_t;
struct mca_ptl_base_recv_request_t {
mca_pml_base_request_t super;
/* request sequence number */
mca_ptl_base_sequence_t req_sequence;
/* number of bytes delivered */
size_t req_bytes_recvd;
};
typedef struct mca_ptl_base_recv_request_t mca_ptl_base_recv_request_t;
void mca_ptl_base_recv_request_match_wild(mca_ptl_base_recv_request_t*);
void mca_ptl_base_recv_request_match_specific(mca_ptl_base_recv_request_t*);
2004-01-30 02:50:31 +03:00
static inline void mca_ptl_base_recv_request_init(
mca_ptl_base_recv_request_t *request,
void *addr,
size_t length,
lam_datatype_t* datatype,
int src,
int tag,
lam_communicator_t* comm,
bool persistent)
{
request->req_sequence = 0;
request->req_bytes_recvd = 0;
request->super.req_addr = addr;
request->super.req_length = length;
request->super.req_datatype = datatype;
request->super.req_peer = src;
request->super.req_tag = tag;
request->super.req_comm = comm;
request->super.req_type = MCA_PML_REQUEST_RECV;
request->super.req_persistent = persistent;
request->super.req_mpi_done = false;
request->super.req_pml_done = false;
request->super.req_free_called = false;
request->super.super.req_type = LAM_REQUEST_PML;
}
#endif