OpenMPI  0.1.1
pml_cm_request.h
1 /*
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-2007 The University of Tennessee and The University
6  * of Tennessee Research Foundation. All rights
7  * reserved.
8  * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
9  * University of Stuttgart. All rights reserved.
10  * Copyright (c) 2004-2006 The Regents of the University of California.
11  * All rights reserved.
12  * $COPYRIGHT$
13  *
14  * Additional copyrights may follow
15  *
16  * $HEADER$
17  */
18 
19 #ifndef PML_CM_REQUEST_H
20 #define PML_CM_REQUEST_H
21 
23 #include "ompi/mca/pml/base/pml_base_bsend.h"
24 #include "ompi/mca/pml/pml.h"
25 #include "ompi/mca/mtl/mtl.h"
26 
27 /**
28  * Type of request.
29  */
30 typedef enum {
31  MCA_PML_CM_REQUEST_SEND_HEAVY,
32  MCA_PML_CM_REQUEST_SEND_THIN,
33  MCA_PML_CM_REQUEST_RECV_HEAVY,
34  MCA_PML_CM_REQUEST_RECV_THIN,
35  MCA_PML_CM_REQUEST_NULL
36 } mca_pml_cm_request_type_t;
37 
38 /**
39  * Base type for PML CM P2P requests
40  */
42 
43 /* START: These fields have to match the definition of the mca_pml_base_request_t */
44  ompi_request_t req_ompi; /**< base request */
45  volatile bool req_pml_complete; /**< flag indicating if the pt-2-pt layer is done with this request */
46  mca_pml_cm_request_type_t req_pml_type;
47  struct ompi_communicator_t *req_comm; /**< communicator pointer */
48  struct ompi_datatype_t *req_datatype; /**< pointer to data type */
49  volatile bool req_free_called; /**< flag indicating if the user has freed this request */
50  opal_convertor_t req_convertor; /**< convertor that describes the memory layout */
51 /* END: These fields have to match the definition of the mca_pml_base_request_t */
52 };
55 
56 #endif
ompi_request_t req_ompi
base request
Definition: pml_cm_request.h:44
P2P Management Layer (PML)
Definition: ompi_datatype.h:68
struct ompi_datatype_t * req_datatype
pointer to data type
Definition: pml_cm_request.h:48
volatile bool req_free_called
flag indicating if the user has freed this request
Definition: pml_cm_request.h:49
struct ompi_communicator_t * req_comm
communicator pointer
Definition: pml_cm_request.h:47
opal_convertor_t req_convertor
convertor that describes the memory layout
Definition: pml_cm_request.h:50
Definition: opal_convertor.h:90
Matching Transport Layer.
volatile bool req_pml_complete
flag indicating if the pt-2-pt layer is done with this request
Definition: pml_cm_request.h:45
Definition: communicator.h:118
Main top-level request struct definition.
Definition: request.h:100
Base type for PML CM P2P requests.
Definition: pml_cm_request.h:41
#define OBJ_CLASS_DECLARATION(NAME)
Declaration for class descriptor.
Definition: opal_object.h:236