OpenMPI 0.1.1

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

- File List
- Globals

pml_example.h
1 /*
2 * Copyright (c) 2006-2007 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) 2011 Sandia National Laboratories. All rights reserved.
9 * $COPYRIGHT$
10 *
11 * Additional copyrights may follow
12 *
13 * $HEADER$
14 */
15
16 #ifndef PML_EXAMPLE_H_HAS_BEEN_INCLUDED
17 #define PML_EXAMPLE_H_HAS_BEEN_INCLUDED
18
19 #include "ompi/request/request.h"
20 #include "ompi/mca/pml/pml.h"
21 #include "ompi/mca/ptl/ptl.h"
22
23 BEGIN_C_DECLS
24
25 struct mca_pml_example_t {
26 mca_pml_base_module_t super;
27
28 mca_ptl_base_component_t **example_ptl_components;
29 size_t example_num_ptl_components;
30
31 mca_ptl_base_module_t** example_ptl_modules;
32 size_t example_num_ptl_modules;
33
34 opal_list_t example_procs;
35 opal_mutex_t example_lock;
36
37 /* list of pending send requests */
38 opal_list_t example_send_pending;
39 };
40 typedef struct mca_pml_example_t mca_pml_example_t;
41
42 extern mca_pml_example_t mca_pml_example;
43
44 /*
45 * PML interface functions.
46 */
47 extern int mca_pml_example_add_comm( struct ompi_communicator_t* comm );
48 extern int mca_pml_example_del_comm( struct ompi_communicator_t* comm );
49
50 extern int mca_pml_example_add_procs( struct ompi_proc_t **procs, size_t nprocs );
51 extern int mca_pml_example_del_procs( struct ompi_proc_t **procs, size_t nprocs );
52
53 extern int mca_pml_example_add_ptls( opal_list_t *ptls );
54
55 extern int mca_pml_example_control( int param, void *size, size_t value );
56
57 extern int mca_pml_example_iprobe( int dst,
58 int tag,
59 struct ompi_communicator_t* comm,
60 int *matched,
61 ompi_status_public_t* status );
62
63 extern int mca_pml_example_probe( int dst,
64 int tag,
65 struct ompi_communicator_t* comm,
66 ompi_status_public_t* status );
67
68 extern int mca_pml_example_improbe(int dst,
69 int tag,
70 struct ompi_communicator_t* comm,
71 int *matched,
72 struct ompi_message_t **message,
73 ompi_status_public_t* status);
74
75 extern int mca_pml_example_mprobe(int dst,
76 int tag,
77 struct ompi_communicator_t* comm,
78 struct ompi_message_t **message,
79 ompi_status_public_t* status);
80
81 extern int mca_pml_example_cancel( ompi_request_t* request );
82 extern int mca_pml_example_cancelled( ompi_request_t* request, int *flag );
83
84 extern int mca_pml_example_isend_init( void *buf,
85 size_t count,
86 ompi_datatype_t *datatype,
87 int dst,
88 int tag,
89 mca_pml_base_send_mode_t mode,
90 struct ompi_communicator_t* comm,
91 struct ompi_request_t **request );
92
93 extern int mca_pml_example_isend( void *buf,
94 size_t count,
95 ompi_datatype_t *datatype,
96 int dst,
97 int tag,
98 mca_pml_base_send_mode_t mode,
99 struct ompi_communicator_t* comm,
100 struct ompi_request_t **request );
101
102 extern int mca_pml_example_send( void *buf,
103 size_t count,
104 ompi_datatype_t *datatype,
105 int dst,
106 int tag,
107 mca_pml_base_send_mode_t mode,
108 struct ompi_communicator_t* comm );
109
110 extern int mca_pml_example_irecv_init( void *buf,
111 size_t count,
112 ompi_datatype_t *datatype,
113 int src,
114 int tag,
115 struct ompi_communicator_t* comm,
116 struct ompi_request_t **request );
117
118 extern int mca_pml_example_irecv( void *buf,
119 size_t count,
120 ompi_datatype_t *datatype,
121 int src,
122 int tag,
123 struct ompi_communicator_t* comm,
124 struct ompi_request_t **request );
125
126 extern int mca_pml_example_recv( void *buf,
127 size_t count,
128 ompi_datatype_t *datatype,
129 int src,
130 int tag,
131 struct ompi_communicator_t* comm,
132 ompi_status_public_t* status );
133
134 extern int mca_pml_example_imrecv(void *buf,
135 size_t count,
136 ompi_datatype_t *datatype,
137 struct ompi_message_t **message,
138 struct ompi_request_t **request);
139
140 extern int mca_pml_example_mrecv(void *buf,
141 size_t count,
142 ompi_datatype_t *datatype,
143 struct ompi_message_t **message,
144 ompi_status_public_t* status);
145
146 extern int mca_pml_example_progress(void);
147
148 extern int mca_pml_example_start( size_t count, ompi_request_t** requests );
149
150 extern int mca_pml_example_ft_event(int state);
151
152
153 END_C_DECLS
154
155 #endif /* PML_EXAMPLE_H_HAS_BEEN_INCLUDED */
pml.h
P2P Management Layer (PML)
ompi_datatype_t
Definition: ompi_datatype.h:68
opal_mutex_t
Definition: mutex_unix.h:53
mca_pml_example_t
Definition: pml_example.h:25
ompi_proc_t
Remote Open MPI process structure.
Definition: proc.h:56
request.h
Top-level description of requests.
mca_pml_base_module_1_0_0_t
PML instance.
Definition: pml.h:512
opal_list_t
Definition: opal_list.h:147
ompi_status_public_t
Definition: mpi.h:337
request
Definition: evdns.c:158
ompi_communicator_t
Definition: communicator.h:118
ompi_request_t
Main top-level request struct definition.
Definition: request.h:100
ompi_message_t
Definition: message.h:22