1
2
3
4
5
6
7
8
9
10
11
12
13
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
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
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