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_MCA_BASE_H
27 #define PMIX_MCA_BASE_H
28
29 #include <src/include/pmix_config.h>
30
31 #include "src/class/pmix_object.h"
32 #include "src/class/pmix_list.h"
33
34
35
36
37 #include "src/mca/mca.h"
38 #include "src/mca/base/pmix_mca_base_var.h"
39 #include "src/mca/base/pmix_mca_base_framework.h"
40 #include "src/util/cmd_line.h"
41 #include "src/util/output.h"
42
43 BEGIN_C_DECLS
44
45
46
47
48 struct pmix_mca_base_component_list_item_t {
49 pmix_list_item_t super;
50 const pmix_mca_base_component_t *cli_component;
51 };
52 typedef struct pmix_mca_base_component_list_item_t pmix_mca_base_component_list_item_t;
53 PMIX_EXPORT PMIX_CLASS_DECLARATION(pmix_mca_base_component_list_item_t);
54
55
56
57
58 struct pmix_mca_base_component_priority_list_item_t {
59 pmix_mca_base_component_list_item_t super;
60 int cpli_priority;
61 };
62 typedef struct pmix_mca_base_component_priority_list_item_t
63 pmix_mca_base_component_priority_list_item_t;
64
65 PMIX_EXPORT PMIX_CLASS_DECLARATION(pmix_mca_base_component_priority_list_item_t);
66
67
68
69
70 PMIX_EXPORT extern char *pmix_mca_base_component_path;
71 PMIX_EXPORT extern bool pmix_mca_base_component_show_load_errors;
72 PMIX_EXPORT extern bool pmix_mca_base_component_track_load_errors;
73 PMIX_EXPORT extern bool pmix_mca_base_component_disable_dlopen;
74 PMIX_EXPORT extern char *pmix_mca_base_system_default_path;
75 PMIX_EXPORT extern char *pmix_mca_base_user_default_path;
76
77
78
79
80 enum {
81
82 PMIX_MCA_BASE_VERBOSE_NONE = -1,
83
84 PMIX_MCA_BASE_VERBOSE_ERROR = 0,
85
86 PMIX_MCA_BASE_VERBOSE_COMPONENT = 10,
87
88 PMIX_MCA_BASE_VERBOSE_WARN = 20,
89
90
91 PMIX_MCA_BASE_VERBOSE_INFO = 40,
92
93
94 PMIX_MCA_BASE_VERBOSE_TRACE = 60,
95
96 PMIX_MCA_BASE_VERBOSE_DEBUG = 80,
97
98 PMIX_MCA_BASE_VERBOSE_MAX = 100,
99 };
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119 PMIX_EXPORT int pmix_mca_base_open(void);
120
121
122
123
124
125
126
127
128
129
130
131
132
133 PMIX_EXPORT int pmix_mca_base_close(void);
134
135
136
137
138
139 PMIX_EXPORT int pmix_mca_base_select(const char *type_name, int output_id,
140 pmix_list_t *components_available,
141 pmix_mca_base_module_t **best_module,
142 pmix_mca_base_component_t **best_component,
143 int *priority_out);
144
145
146
147
148
149
150
151
152
153 PMIX_EXPORT int pmix_mca_base_is_component_required(pmix_list_t *components_available,
154 pmix_mca_base_component_t *component,
155 bool exclusive,
156 bool *is_required);
157
158
159
160 PMIX_EXPORT int pmix_mca_base_cmd_line_setup(pmix_cmd_line_t *cmd);
161 PMIX_EXPORT int pmix_mca_base_cmd_line_process_args(pmix_cmd_line_t *cmd,
162 char ***app_env,
163 char ***global_env);
164 PMIX_EXPORT void pmix_mca_base_cmd_line_wrap_args(char **args);
165
166
167
168 PMIX_EXPORT int pmix_mca_base_component_compare_priority(pmix_mca_base_component_priority_list_item_t *a,
169 pmix_mca_base_component_priority_list_item_t *b);
170 PMIX_EXPORT int pmix_mca_base_component_compare(const pmix_mca_base_component_t *a,
171 const pmix_mca_base_component_t *b);
172 PMIX_EXPORT int pmix_mca_base_component_compatible(const pmix_mca_base_component_t *a,
173 const pmix_mca_base_component_t *b);
174 PMIX_EXPORT char * pmix_mca_base_component_to_string(const pmix_mca_base_component_t *a);
175
176
177
178 PMIX_EXPORT int pmix_mca_base_component_find (const char *directory, pmix_mca_base_framework_t *framework,
179 bool ignore_requested, bool open_dso_components);
180
181
182
183
184
185 PMIX_EXPORT int pmix_mca_base_component_parse_requested (const char *requested, bool *include_mode,
186 char ***requested_component_names);
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206 PMIX_EXPORT int pmix_mca_base_components_filter (pmix_mca_base_framework_t *framework, uint32_t filter_flags);
207
208
209
210
211
212
213 PMIX_EXPORT int pmix_mca_base_component_find_finalize(void);
214
215
216 PMIX_EXPORT int pmix_mca_base_framework_components_register (struct pmix_mca_base_framework_t *framework,
217 pmix_mca_base_register_flag_t flags);
218
219
220 PMIX_EXPORT int pmix_mca_base_framework_components_open (struct pmix_mca_base_framework_t *framework,
221 pmix_mca_base_open_flag_t flags);
222
223 PMIX_EXPORT int pmix_mca_base_components_open(const char *type_name, int output_id,
224 const pmix_mca_base_component_t **static_components,
225 pmix_list_t *components_available,
226 bool open_dso_components);
227
228
229
230
231
232
233
234
235
236
237 PMIX_EXPORT void pmix_mca_base_component_close (const pmix_mca_base_component_t *component, int output_id);
238
239
240
241
242
243
244
245
246 PMIX_EXPORT void pmix_mca_base_component_unload (const pmix_mca_base_component_t *component, int output_id);
247
248 PMIX_EXPORT int pmix_mca_base_components_close(int output_id, pmix_list_t *components_available,
249 const pmix_mca_base_component_t *skip);
250
251 PMIX_EXPORT int pmix_mca_base_framework_components_close (struct pmix_mca_base_framework_t *framework,
252 const pmix_mca_base_component_t *skip);
253
254 END_C_DECLS
255
256 #endif