OpenMPI 0.1.1

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

- File List
- Globals

Data Structures | Macros | Typedefs | Functions
pml_base_recvreq.h File Reference
`#include "ompi_config.h"`
`#include "ompi/mca/pml/base/pml_base_request.h"`
`#include "opal/datatype/opal_convertor.h"`
`#include "ompi/peruse/peruse-internal.h"`

Go to the source code of this file.

## Data Structures
struct | mca_pml_base_recv_request_t
| Base type for receive requests. More...

## Macros
#define | MCA_PML_BASE_RECV_REQUEST_INIT(request,addr,count,datatype,src,tag,comm,persistent)
| Initialize a receive request with call parameters. More...
#define | MCA_PML_BASE_RECV_START(request)
#define | MCA_PML_BASE_RECV_REQUEST_FINI(request)
| Return a receive request. More...

## Typedefs
typedef struct mca_pml_base_recv_request_t | mca_pml_base_recv_request_t

## Functions
OMPI_DECLSPEC | OBJ_CLASS_DECLARATION (mca_pml_base_recv_request_t)

## Macro Definition Documentation

#define MCA_PML_BASE_RECV_REQUEST_FINI | ( |  | request | ) |

Value:
do { \
OMPI_REQUEST_FINI(&(request)->req_base.req_ompi); \
OBJ_RELEASE( (request)->req_base.req_comm); \
OBJ_RELEASE( (request)->req_base.req_datatype ); \
opal_convertor_cleanup( &((request)->req_base.req_convertor) ); \
} while (0)
OBJ_RELEASE
#define OBJ_RELEASE(object)
Release an object (by decrementing its reference count).
Definition: opal_object.h:324
OMPI_REQUEST_FINI
#define OMPI_REQUEST_FINI(request)
Finalize a request.
Definition: request.h:169
request
Definition: evdns.c:158

Return a receive request.

Handle the release of the communicator and the attached datatype.

Parameters

  request | (IN) Receive request.

#define MCA_PML_BASE_RECV_REQUEST_INIT | ( |  | request,
|  |  | addr,
|  |  | count,
|  |  | datatype,
|  |  | src,
|  |  | tag,
|  |  | comm,
|  |  | persistent
| ) |  |

Value:
{ \
/* increment reference count on communicator */ \
OBJ_RETAIN(comm); \
OBJ_RETAIN(datatype); \
\
OMPI_REQUEST_INIT(&(request)->req_base.req_ompi, persistent); \
(request)->req_base.req_ompi.req_mpi_object.comm = comm; \
(request)->req_base.req_ompi.req_peer = src; \
(request)->req_base.req_ompi.req_tag = tag; \
(request)->req_bytes_packed = 0; \
(request)->req_base.req_addr = addr; \
(request)->req_base.req_count = count; \
(request)->req_base.req_peer = src; \
(request)->req_base.req_tag = tag; \
(request)->req_base.req_comm = comm; \
(request)->req_base.req_proc = NULL; \
(request)->req_base.req_sequence = 0; \
(request)->req_base.req_datatype = datatype; \
/* What about req_type ? */ \
(request)->req_base.req_pml_complete = OPAL_INT_TO_BOOL(persistent); \
(request)->req_base.req_free_called = false; \
}
OBJ_RETAIN
#define OBJ_RETAIN(object)
Retain an object (by incrementing its reference count)
Definition: opal_object.h:278
OMPI_REQUEST_INIT
#define OMPI_REQUEST_INIT(request, persistent)
Initialize a request.
Definition: request.h:147
request
Definition: evdns.c:158

Initialize a receive request with call parameters.

Parameters

  request | (IN) Receive request.
  addr | (IN) User buffer.
  count | (IN) Number of elements of indicated datatype.
  datatype | (IN) User defined datatype.
  src | (IN) Source rank w/in the communicator.
  tag | (IN) User defined tag.
  comm | (IN) Communicator.
  persistent | (IN) Is this a persistent request.

#define MCA_PML_BASE_RECV_START | ( |  | request | ) |

Value:
do { \
(request)->req_pml_complete = false; \
\
/* always set the req_status.MPI_TAG to ANY_TAG before starting the \
* request. This field is used if cancelled to find out if the request \
* has been matched or not. \
*/ \
(request)->req_ompi.req_status.MPI_SOURCE = OMPI_ANY_SOURCE; \
(request)->req_ompi.req_status.MPI_TAG = OMPI_ANY_TAG; \
(request)->req_ompi.req_status.MPI_ERROR = OMPI_SUCCESS; \
(request)->req_ompi.req_status._ucount = 0; \
(request)->req_ompi.req_status._cancelled = 0; \
(request)->req_ompi.req_mpi_object.comm = (request)->req_comm; \
(request)->req_ompi.req_peer = (request)->req_peer; \
\
(request)->req_ompi.req_complete = false; \
(request)->req_ompi.req_state = OMPI_REQUEST_ACTIVE; \
} while (0)
request
Definition: evdns.c:158