OpenMPI  0.1.1
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 
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 };
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 */
P2P Management Layer (PML)
Definition: ompi_datatype.h:68
Definition: mutex_unix.h:53
Definition: pml_example.h:25
Remote Open MPI process structure.
Definition: proc.h:56
Top-level description of requests.
PML instance.
Definition: pml.h:512
Definition: opal_list.h:147
Definition: mpi.h:337
Definition: evdns.c:158
Definition: communicator.h:118
Main top-level request struct definition.
Definition: request.h:100
Definition: message.h:22