OpenMPI 0.1.1

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

- File List
- Globals

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
22 #include "ompi/mca/pml/base/pml_base_sendreq.h"
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 */
41 struct mca_pml_cm_request_t {
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 };
53 typedef struct mca_pml_cm_request_t mca_pml_cm_request_t;
54 OBJ_CLASS_DECLARATION(mca_pml_cm_request_t);
55
56 #endif
mca_pml_cm_request_t::req_ompi
ompi_request_t req_ompi
base request
Definition: pml_cm_request.h:44
pml.h
P2P Management Layer (PML)
ompi_datatype_t
Definition: ompi_datatype.h:68
mca_pml_cm_request_t::req_datatype
struct ompi_datatype_t * req_datatype
pointer to data type
Definition: pml_cm_request.h:48
mca_pml_cm_request_t::req_free_called
volatile bool req_free_called
flag indicating if the user has freed this request
Definition: pml_cm_request.h:49
mca_pml_cm_request_t::req_comm
struct ompi_communicator_t * req_comm
communicator pointer
Definition: pml_cm_request.h:47
mca_pml_cm_request_t::req_convertor
opal_convertor_t req_convertor
convertor that describes the memory layout
Definition: pml_cm_request.h:50
opal_convertor_t
Definition: opal_convertor.h:90
mtl.h
Matching Transport Layer.
mca_pml_cm_request_t::req_pml_complete
volatile bool req_pml_complete
flag indicating if the pt-2-pt layer is done with this request
Definition: pml_cm_request.h:45
ompi_communicator_t
Definition: communicator.h:118
ompi_request_t
Main top-level request struct definition.
Definition: request.h:100
pml_base_sendreq.h
mca_pml_cm_request_t
Base type for PML CM P2P requests.
Definition: pml_cm_request.h:41
OBJ_CLASS_DECLARATION
#define OBJ_CLASS_DECLARATION(NAME)
Declaration for class descriptor.
Definition: opal_object.h:236