2004-01-14 06:42:02 +03:00
|
|
|
/*
|
|
|
|
* $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"
|
|
|
|
|
2004-02-13 01:42:39 +03:00
|
|
|
extern lam_class_t mca_ptl_base_recv_request_t_class;;
|
2004-02-04 00:33:29 +03:00
|
|
|
struct mca_ptl_base_recv_frag_t;
|
2004-01-14 06:42:02 +03:00
|
|
|
|
|
|
|
|
2004-02-12 23:55:10 +03:00
|
|
|
struct mca_ptl_base_recv_request_t {
|
2004-01-14 06:42:02 +03:00
|
|
|
mca_pml_base_request_t super;
|
2004-03-12 01:02:01 +03:00
|
|
|
/* request sequence number */
|
2004-01-14 06:42:02 +03:00
|
|
|
mca_ptl_base_sequence_t req_sequence;
|
2004-03-12 01:02:01 +03:00
|
|
|
/* number of bytes delivered */
|
|
|
|
size_t req_bytes_recvd;
|
2004-02-12 23:55:10 +03:00
|
|
|
};
|
|
|
|
typedef struct mca_ptl_base_recv_request_t mca_ptl_base_recv_request_t;
|
2004-01-14 06:42:02 +03:00
|
|
|
|
|
|
|
|
2004-02-04 20:11:57 +03:00
|
|
|
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
|
|
|
|
2004-01-14 06:42:02 +03:00
|
|
|
|
2004-03-16 18:12:11 +03:00
|
|
|
static inline void mca_ptl_base_recv_request_init(
|
2004-01-29 22:27:39 +03:00
|
|
|
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;
|
2004-03-12 01:02:01 +03:00
|
|
|
request->req_bytes_recvd = 0;
|
2004-01-29 22:27:39 +03:00
|
|
|
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;
|
2004-03-12 01:02:01 +03:00
|
|
|
request->super.req_comm = comm;
|
2004-01-29 22:27:39 +03:00
|
|
|
request->super.req_type = MCA_PML_REQUEST_RECV;
|
|
|
|
request->super.req_persistent = persistent;
|
|
|
|
request->super.req_mpi_done = false;
|
2004-03-12 01:02:01 +03:00
|
|
|
request->super.req_pml_done = false;
|
2004-03-17 20:28:11 +03:00
|
|
|
request->super.req_free_called = false;
|
|
|
|
request->super.super.req_type = LAM_REQUEST_PML;
|
2004-01-29 22:27:39 +03:00
|
|
|
}
|
2004-03-17 20:28:11 +03:00
|
|
|
|
2004-01-14 06:42:02 +03:00
|
|
|
#endif
|
|
|
|
|