File indexing completed on 2025-02-22 10:47:22
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027 #ifndef PMIX_MCA_BASE_H
0028 #define PMIX_MCA_BASE_H
0029
0030 #include "src/include/pmix_config.h"
0031
0032 #include "src/class/pmix_list.h"
0033 #include "src/class/pmix_object.h"
0034
0035
0036
0037
0038 #include "src/mca/base/pmix_mca_base_framework.h"
0039 #include "src/mca/base/pmix_mca_base_var.h"
0040 #include "src/mca/mca.h"
0041 #include "src/util/pmix_cmd_line.h"
0042 #include "src/util/pmix_output.h"
0043
0044 BEGIN_C_DECLS
0045
0046
0047
0048
0049 struct pmix_mca_base_component_list_item_t {
0050 pmix_list_item_t super;
0051 const pmix_mca_base_component_t *cli_component;
0052 };
0053 typedef struct pmix_mca_base_component_list_item_t pmix_mca_base_component_list_item_t;
0054 PMIX_EXPORT PMIX_CLASS_DECLARATION(pmix_mca_base_component_list_item_t);
0055
0056
0057
0058
0059 struct pmix_mca_base_component_priority_list_item_t {
0060 pmix_mca_base_component_list_item_t super;
0061 int cpli_priority;
0062 };
0063 typedef struct pmix_mca_base_component_priority_list_item_t
0064 pmix_mca_base_component_priority_list_item_t;
0065
0066 PMIX_EXPORT PMIX_CLASS_DECLARATION(pmix_mca_base_component_priority_list_item_t);
0067
0068
0069
0070
0071 PMIX_EXPORT extern char *pmix_mca_base_component_path;
0072 PMIX_EXPORT extern char *pmix_mca_base_component_show_load_errors;
0073 PMIX_EXPORT extern bool pmix_mca_base_component_abort_on_load_error;
0074 PMIX_EXPORT extern bool pmix_mca_base_component_track_load_errors;
0075 PMIX_EXPORT extern bool pmix_mca_base_component_disable_dlopen;
0076 PMIX_EXPORT extern char *pmix_mca_base_system_default_path;
0077 PMIX_EXPORT extern char *pmix_mca_base_user_default_path;
0078
0079
0080
0081
0082 enum {
0083
0084 PMIX_MCA_BASE_VERBOSE_NONE = -1,
0085
0086 PMIX_MCA_BASE_VERBOSE_ERROR = 0,
0087
0088 PMIX_MCA_BASE_VERBOSE_COMPONENT = 10,
0089
0090 PMIX_MCA_BASE_VERBOSE_WARN = 20,
0091
0092
0093 PMIX_MCA_BASE_VERBOSE_INFO = 40,
0094
0095
0096 PMIX_MCA_BASE_VERBOSE_TRACE = 60,
0097
0098 PMIX_MCA_BASE_VERBOSE_DEBUG = 80,
0099
0100 PMIX_MCA_BASE_VERBOSE_MAX = 100,
0101 };
0102
0103
0104
0105
0106
0107
0108
0109
0110
0111
0112
0113
0114
0115
0116
0117
0118
0119
0120
0121 PMIX_EXPORT int pmix_mca_base_open(const char *add_path);
0122
0123
0124
0125
0126
0127
0128
0129
0130
0131
0132
0133
0134
0135 PMIX_EXPORT int pmix_mca_base_close(void);
0136
0137
0138
0139
0140
0141 PMIX_EXPORT int pmix_mca_base_select(const char *type_name, int output_id,
0142 pmix_list_t *components_available,
0143 pmix_mca_base_module_t **best_module,
0144 pmix_mca_base_component_t **best_component, int *priority_out);
0145
0146
0147
0148
0149
0150
0151
0152
0153
0154 PMIX_EXPORT int pmix_mca_base_is_component_required(pmix_list_t *components_available,
0155 pmix_mca_base_component_t *component,
0156 bool exclusive, bool *is_required);
0157
0158
0159
0160 PMIX_EXPORT int
0161 pmix_mca_base_component_compare_priority(pmix_mca_base_component_priority_list_item_t *a,
0162 pmix_mca_base_component_priority_list_item_t *b);
0163 PMIX_EXPORT int pmix_mca_base_component_compare(const pmix_mca_base_component_t *a,
0164 const pmix_mca_base_component_t *b);
0165 PMIX_EXPORT int pmix_mca_base_component_compatible(const pmix_mca_base_component_t *a,
0166 const pmix_mca_base_component_t *b);
0167 PMIX_EXPORT char *pmix_mca_base_component_to_string(const pmix_mca_base_component_t *a);
0168
0169
0170
0171 PMIX_EXPORT int pmix_mca_base_component_find(const char *directory,
0172 pmix_mca_base_framework_t *framework,
0173 bool ignore_requested, bool open_dso_components);
0174
0175
0176
0177
0178
0179 PMIX_EXPORT int pmix_mca_base_component_parse_requested(const char *requested, bool *include_mode,
0180 char ***requested_component_names);
0181
0182
0183
0184
0185
0186
0187
0188
0189
0190
0191
0192
0193
0194
0195 PMIX_EXPORT int pmix_mca_base_components_filter(pmix_mca_base_framework_t *framework);
0196
0197
0198
0199
0200 PMIX_EXPORT int pmix_mca_base_component_find_finalize(void);
0201
0202
0203 PMIX_EXPORT int
0204 pmix_mca_base_framework_components_register(struct pmix_mca_base_framework_t *framework,
0205 pmix_mca_base_register_flag_t flags);
0206
0207
0208 PMIX_EXPORT int pmix_mca_base_show_load_errors_init(void);
0209 PMIX_EXPORT int pmix_mca_base_show_load_errors_finalize(void);
0210 PMIX_EXPORT bool pmix_mca_base_show_load_errors(const char *framework_name,
0211 const char *component_name);
0212 PMIX_EXPORT int pmix_mca_base_framework_components_open(struct pmix_mca_base_framework_t *framework,
0213 pmix_mca_base_open_flag_t flags);
0214
0215 PMIX_EXPORT int pmix_mca_base_components_open(const char *type_name, int output_id,
0216 const pmix_mca_base_component_t **static_components,
0217 pmix_list_t *components_available,
0218 bool open_dso_components);
0219
0220
0221
0222
0223
0224
0225
0226
0227
0228
0229 PMIX_EXPORT void pmix_mca_base_component_close(const pmix_mca_base_component_t *component,
0230 int output_id);
0231
0232
0233
0234
0235
0236
0237
0238
0239 PMIX_EXPORT void pmix_mca_base_component_unload(const pmix_mca_base_component_t *component,
0240 int output_id);
0241
0242 PMIX_EXPORT int pmix_mca_base_components_close(int output_id, pmix_list_t *components_available,
0243 const pmix_mca_base_component_t *skip);
0244
0245 PMIX_EXPORT int
0246 pmix_mca_base_framework_components_close(struct pmix_mca_base_framework_t *framework,
0247 const pmix_mca_base_component_t *skip);
0248
0249 END_C_DECLS
0250
0251 #endif