1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 #ifndef PMIX_PNET_H
27 #define PMIX_PNET_H
28
29 #include <src/include/pmix_config.h>
30
31 #include "src/class/pmix_list.h"
32 #include "src/mca/mca.h"
33 #include "src/mca/base/pmix_mca_base_var.h"
34 #include "src/mca/base/pmix_mca_base_framework.h"
35 #include "src/include/pmix_globals.h"
36 #include "src/server/pmix_server_ops.h"
37
38 BEGIN_C_DECLS
39
40
41
42
43
44
45
46 typedef pmix_status_t (*pmix_pnet_base_module_init_fn_t)(void);
47
48
49
50
51
52 typedef void (*pmix_pnet_base_module_fini_fn_t)(void);
53
54
55
56
57
58
59
60
61
62
63 typedef pmix_status_t (*pmix_pnet_base_module_allocate_fn_t)(pmix_namespace_t *nptr,
64 pmix_info_t info[], size_t ninfo,
65 pmix_list_t *ilist);
66
67
68
69
70
71 typedef pmix_status_t (*pmix_pnet_base_module_setup_local_net_fn_t)(pmix_namespace_t *nptr,
72 pmix_info_t info[],
73 size_t ninfo);
74
75
76
77
78
79 typedef pmix_status_t (*pmix_pnet_base_module_setup_fork_fn_t)(pmix_namespace_t *nptr,
80 const pmix_proc_t *proc,
81 char ***env);
82
83
84
85
86
87 typedef void (*pmix_pnet_base_module_child_finalized_fn_t)(pmix_proc_t *peer);
88
89
90
91
92
93 typedef void (*pmix_pnet_base_module_local_app_finalized_fn_t)(pmix_namespace_t *nptr);
94
95
96
97
98
99 typedef void (*pmix_pnet_base_module_dregister_nspace_fn_t)(pmix_namespace_t *nptr);
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120 typedef pmix_status_t (*pmix_pnet_base_module_collect_inventory_fn_t)(pmix_info_t directives[], size_t ndirs,
121 pmix_inventory_cbfunc_t cbfunc,
122 void *cbdata);
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144 typedef pmix_status_t (*pmix_pnet_base_module_deliver_inventory_fn_t)(pmix_info_t info[], size_t ninfo,
145 pmix_info_t directives[], size_t ndirs,
146 pmix_op_cbfunc_t cbfunc, void *cbdata);
147
148
149
150
151
152 typedef struct {
153 char *name;
154
155 pmix_pnet_base_module_init_fn_t init;
156 pmix_pnet_base_module_fini_fn_t finalize;
157 pmix_pnet_base_module_allocate_fn_t allocate;
158 pmix_pnet_base_module_setup_local_net_fn_t setup_local_network;
159 pmix_pnet_base_module_setup_fork_fn_t setup_fork;
160 pmix_pnet_base_module_child_finalized_fn_t child_finalized;
161 pmix_pnet_base_module_local_app_finalized_fn_t local_app_finalized;
162 pmix_pnet_base_module_dregister_nspace_fn_t deregister_nspace;
163 pmix_pnet_base_module_collect_inventory_fn_t collect_inventory;
164 pmix_pnet_base_module_deliver_inventory_fn_t deliver_inventory;
165 } pmix_pnet_module_t;
166
167
168
169
170
171
172 typedef pmix_status_t (*pmix_pnet_base_API_allocate_fn_t)(char *nspace,
173 pmix_info_t info[], size_t ninfo,
174 pmix_list_t *ilist);
175 typedef pmix_status_t (*pmix_pnet_base_API_setup_local_net_fn_t)(char *nspace,
176 pmix_info_t info[],
177 size_t ninfo);
178 typedef pmix_status_t (*pmix_pnet_base_API_setup_fork_fn_t)(const pmix_proc_t *peer, char ***env);
179
180 typedef void (*pmix_pnet_base_API_deregister_nspace_fn_t)(char *nspace);
181 typedef void (*pmix_pnet_base_API_collect_inventory_fn_t)(pmix_info_t directives[], size_t ndirs,
182 pmix_inventory_cbfunc_t cbfunc,
183 void *cbdata);
184 typedef void (*pmix_pnet_base_API_deliver_inventory_fn_t)(pmix_info_t info[], size_t ninfo,
185 pmix_info_t directives[], size_t ndirs,
186 pmix_op_cbfunc_t cbfunc, void *cbdata);
187
188
189
190
191 typedef struct {
192 char *name;
193
194 pmix_pnet_base_module_init_fn_t init;
195 pmix_pnet_base_module_fini_fn_t finalize;
196 pmix_pnet_base_API_allocate_fn_t allocate;
197 pmix_pnet_base_API_setup_local_net_fn_t setup_local_network;
198 pmix_pnet_base_API_setup_fork_fn_t setup_fork;
199 pmix_pnet_base_module_child_finalized_fn_t child_finalized;
200 pmix_pnet_base_module_local_app_finalized_fn_t local_app_finalized;
201 pmix_pnet_base_API_deregister_nspace_fn_t deregister_nspace;
202 pmix_pnet_base_API_collect_inventory_fn_t collect_inventory;
203 pmix_pnet_base_API_deliver_inventory_fn_t deliver_inventory;
204 } pmix_pnet_API_module_t;
205
206
207
208 PMIX_EXPORT extern pmix_pnet_API_module_t pmix_pnet;
209
210
211
212
213 struct pmix_pnet_base_component_t {
214 pmix_mca_base_component_t base;
215 pmix_mca_base_component_data_t data;
216 };
217 typedef struct pmix_pnet_base_component_t pmix_pnet_base_component_t;
218
219
220
221
222 #define PMIX_PNET_BASE_VERSION_1_0_0 \
223 PMIX_MCA_BASE_VERSION_1_0_0("pnet", 1, 0, 0)
224
225 END_C_DECLS
226
227 #endif