2
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
3
* University Research and Technology
4
* Corporation. All rights reserved.
5
* Copyright (c) 2004-2005 The University of Tennessee and The University
6
* of Tennessee Research Foundation. All rights
8
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
9
* University of Stuttgart. All rights reserved.
10
* Copyright (c) 2004-2005 The Regents of the University of California.
11
* All rights reserved.
12
* Copyright (c) 2009 Sun Microsystems, Inc. All rights reserved.
15
* Additional copyrights may follow
20
#include "ompi_config.h"
21
#include "ompi/request/request.h"
22
#include "pml_csum_recvreq.h"
25
int mca_pml_csum_iprobe(int src,
27
struct ompi_communicator_t *comm,
28
int *matched, ompi_status_public_t * status)
30
int rc = OMPI_SUCCESS;
31
mca_pml_csum_recv_request_t recvreq;
33
OBJ_CONSTRUCT( &recvreq, mca_pml_csum_recv_request_t );
34
recvreq.req_recv.req_base.req_ompi.req_type = OMPI_REQUEST_PML;
35
recvreq.req_recv.req_base.req_type = MCA_PML_REQUEST_IPROBE;
37
MCA_PML_CSUM_RECV_REQUEST_INIT(&recvreq, NULL, 0, &ompi_mpi_char.dt, src, tag, comm, true);
38
MCA_PML_CSUM_RECV_REQUEST_START(&recvreq);
40
if( recvreq.req_recv.req_base.req_ompi.req_complete == true ) {
41
if( NULL != status ) {
42
*status = recvreq.req_recv.req_base.req_ompi.req_status;
49
MCA_PML_BASE_RECV_REQUEST_FINI( &recvreq.req_recv );
54
int mca_pml_csum_probe(int src,
56
struct ompi_communicator_t *comm,
57
ompi_status_public_t * status)
59
mca_pml_csum_recv_request_t recvreq;
61
OBJ_CONSTRUCT( &recvreq, mca_pml_csum_recv_request_t );
62
recvreq.req_recv.req_base.req_ompi.req_type = OMPI_REQUEST_PML;
63
recvreq.req_recv.req_base.req_type = MCA_PML_REQUEST_PROBE;
65
MCA_PML_CSUM_RECV_REQUEST_INIT(&recvreq, NULL, 0, &ompi_mpi_char.dt, src, tag, comm, true);
66
MCA_PML_CSUM_RECV_REQUEST_START(&recvreq);
68
ompi_request_wait_completion(&recvreq.req_recv.req_base.req_ompi);
71
*status = recvreq.req_recv.req_base.req_ompi.req_status;
73
MCA_PML_BASE_RECV_REQUEST_FINI( &recvreq.req_recv );