OpenMPI 0.1.1

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

- File List
- Globals

mtl_portals4_request.h
1 /*
2 * Copyright (c) 2004-2006 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
7 * reserved.
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) 2010-2012 Sandia National Laboratories. All rights reserved.
13 * $COPYRIGHT$
14 *
15 * Additional copyrights may follow
16 *
17 * $HEADER$
18 */
19
20 #ifndef OMPI_MTL_PORTALS_REQUEST_H
21 #define OMPI_MTL_PORTALS_REQUEST_H
22
23 #include "opal/datatype/opal_convertor.h"
24 #include "ompi/mca/mtl/mtl.h"
25
26 struct ompi_mtl_portals4_message_t;
27
28 typedef enum { portals4_req_isend,
29 portals4_req_send,
30 portals4_req_recv,
31 portals4_req_probe,
32 portals4_req_recv_short
33 } ompi_mtl_portals4_request_type_t;
34
35
36 struct ompi_mtl_portals4_base_request_t {
37 struct mca_mtl_request_t super;
38 ompi_mtl_portals4_request_type_t type;
39 int (*event_callback)(ptl_event_t *ev, struct ompi_mtl_portals4_base_request_t*);
40 };
41 typedef struct ompi_mtl_portals4_base_request_t ompi_mtl_portals4_base_request_t;
42
43
44 struct ompi_mtl_portals4_isend_request_t {
45 ompi_mtl_portals4_base_request_t super;
46 void *buffer_ptr;
47 ptl_handle_md_t md_h;
48 ptl_handle_me_t me_h;
49 volatile int event_count;
50 int opcount;
51 };
52 typedef struct ompi_mtl_portals4_isend_request_t ompi_mtl_portals4_isend_request_t;
53
54
55 struct ompi_mtl_portals4_send_request_t {
56 ompi_mtl_portals4_isend_request_t super;
57 int retval;
58 volatile int complete;
59 };
60 typedef struct ompi_mtl_portals4_send_request_t ompi_mtl_portals4_send_request_t;
61
62
63 struct ompi_mtl_portals4_recv_request_t {
64 ompi_mtl_portals4_base_request_t super;
65 void *buffer_ptr;
66 ptl_handle_md_t md_h;
67 ptl_handle_me_t me_h;
68 struct opal_convertor_t *convertor;
69 void *delivery_ptr;
70 size_t delivery_len;
71 volatile bool req_started;
72 #if OPAL_ENABLE_DEBUG
73 int opcount;
74 ptl_hdr_data_t hdr_data;
75 #endif
76 };
77 typedef struct ompi_mtl_portals4_recv_request_t ompi_mtl_portals4_recv_request_t;
78
79
80 struct ompi_mtl_portals4_recv_short_request_t {
81 ompi_mtl_portals4_base_request_t super;
82 struct ompi_mtl_portals4_recv_short_block_t *block;
83 };
84 typedef struct ompi_mtl_portals4_recv_short_request_t ompi_mtl_portals4_recv_short_request_t;
85
86
87 struct ompi_mtl_portals4_probe_request_t {
88 ompi_mtl_portals4_base_request_t super;
89 volatile int req_complete;
90 int found_match;
91 struct ompi_status_public_t status;
92 struct ompi_mtl_portals4_message_t *message;
93 };
94 typedef struct ompi_mtl_portals4_probe_request_t ompi_mtl_portals4_probe_request_t;
95
96
97 struct ompi_mtl_portals4_request_t {
98 union {
99 ompi_mtl_portals4_isend_request_t isend;
100 ompi_mtl_portals4_send_request_t send;
101 ompi_mtl_portals4_recv_request_t recv;
102 ompi_mtl_portals4_recv_short_request_t recv_short;
103 ompi_mtl_portals4_probe_request_t probe;
104 } u;
105 };
106 typedef struct ompi_mtl_portals4_request_t ompi_mtl_portals4_request_t;
107
108
109 #endif
ompi_mtl_portals4_recv_short_request_t
Definition: mtl_portals4_request.h:80
ompi_mtl_portals4_send_request_t
Definition: mtl_portals4_request.h:55
ompi_mtl_portals4_isend_request_t
Definition: mtl_portals4_request.h:44
ompi_mtl_portals4_recv_short_block_t
Definition: mtl_portals4_recv_short.h:25
mca_mtl_request_t
Definition: mtl.h:51
ompi_mtl_portals4_base_request_t
Definition: mtl_portals4_request.h:36
ompi_mtl_portals4_probe_request_t
Definition: mtl_portals4_request.h:87
ompi_mtl_portals4_recv_request_t
Definition: mtl_portals4_request.h:63
ompi_mtl_portals4_message_t
Definition: mtl_portals4_message.h:13
block
Definition: t-test2.c:52
ompi_mtl_portals4_request_t
Definition: mtl_portals4_request.h:97
opal_convertor_t
Definition: opal_convertor.h:90
mtl.h
Matching Transport Layer.
ompi_status_public_t
Definition: mpi.h:337