Warning, file /include/pmix/src/mca/pmdl/pmdl.h was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
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_PMDL_H
0028 #define PMIX_PMDL_H
0029
0030 #include "src/include/pmix_config.h"
0031
0032 #include "src/class/pmix_list.h"
0033 #include "src/mca/base/pmix_mca_base_framework.h"
0034 #include "src/mca/base/pmix_mca_base_var.h"
0035 #include "src/mca/mca.h"
0036 #include "src/server/pmix_server_ops.h"
0037
0038 BEGIN_C_DECLS
0039
0040
0041
0042
0043
0044
0045
0046 typedef pmix_status_t (*pmix_pmdl_base_module_init_fn_t)(void);
0047
0048
0049
0050
0051
0052 typedef void (*pmix_pmdl_base_module_fini_fn_t)(void);
0053
0054
0055
0056 typedef pmix_status_t (*pmix_pmdl_base_module_harvest_envars_fn_t)(pmix_namespace_t *nptr,
0057 const pmix_info_t info[],
0058 size_t ninfo, pmix_list_t *ilist,
0059 char ***priors);
0060
0061
0062
0063
0064
0065 typedef void (*pmix_pmdl_base_module_parse_file_envars_fn_t)(pmix_list_t *ilist);
0066
0067
0068
0069
0070 typedef pmix_status_t (*pmix_pmdl_base_module_setup_ns_fn_t)(pmix_namespace_t *nptr,
0071 pmix_info_t *info);
0072 typedef pmix_status_t (*pmix_pmdl_base_module_setup_ns_kv_fn_t)(pmix_namespace_t *nptr,
0073 pmix_kval_t *kv);
0074
0075
0076
0077 typedef pmix_status_t (*pmix_pmdl_base_module_reg_nspace_fn_t)(pmix_namespace_t *nptr);
0078
0079
0080
0081 typedef pmix_status_t (*pmix_pmdl_base_module_setup_client_fn_t)(pmix_namespace_t *nptr,
0082 pmix_rank_t rank,
0083 uint32_t apppnum);
0084
0085
0086
0087
0088
0089 typedef pmix_status_t (*pmix_pmdl_base_module_setup_fork_fn_t)(const pmix_proc_t *peer, char ***env,
0090 char ***priors);
0091
0092
0093
0094
0095
0096 typedef void (*pmix_pmdl_base_module_dregister_nspace_fn_t)(pmix_namespace_t *nptr);
0097
0098
0099
0100
0101
0102 typedef struct {
0103 char *name;
0104 pmix_pmdl_base_module_init_fn_t init;
0105 pmix_pmdl_base_module_fini_fn_t finalize;
0106 pmix_pmdl_base_module_harvest_envars_fn_t harvest_envars;
0107 pmix_pmdl_base_module_parse_file_envars_fn_t parse_file_envars;
0108 pmix_pmdl_base_module_setup_ns_fn_t setup_nspace;
0109 pmix_pmdl_base_module_setup_ns_kv_fn_t setup_nspace_kv;
0110 pmix_pmdl_base_module_reg_nspace_fn_t register_nspace;
0111 pmix_pmdl_base_module_setup_client_fn_t setup_client;
0112 pmix_pmdl_base_module_setup_fork_fn_t setup_fork;
0113 pmix_pmdl_base_module_dregister_nspace_fn_t deregister_nspace;
0114 } pmix_pmdl_module_t;
0115
0116
0117
0118 typedef pmix_status_t (*pmix_pmdl_base_API_harvest_envars_fn_t)(char *nspace,
0119 const pmix_info_t info[],
0120 size_t ninfo, pmix_list_t *ilist);
0121 typedef pmix_status_t (*pmix_pmdl_base_API_setup_fork_fn_t)(const pmix_proc_t *peer, char ***env);
0122 typedef void (*pmix_pmdl_base_API_dregister_nspace_fn_t)(const char *nptr);
0123 typedef struct {
0124 char *name;
0125 pmix_pmdl_base_module_init_fn_t init;
0126 pmix_pmdl_base_module_fini_fn_t finalize;
0127 pmix_pmdl_base_API_harvest_envars_fn_t harvest_envars;
0128 pmix_pmdl_base_module_parse_file_envars_fn_t parse_file_envars;
0129 pmix_pmdl_base_module_setup_ns_fn_t setup_nspace;
0130 pmix_pmdl_base_module_setup_ns_kv_fn_t setup_nspace_kv;
0131 pmix_pmdl_base_module_reg_nspace_fn_t register_nspace;
0132 pmix_pmdl_base_module_setup_client_fn_t setup_client;
0133 pmix_pmdl_base_API_setup_fork_fn_t setup_fork;
0134 pmix_pmdl_base_API_dregister_nspace_fn_t deregister_nspace;
0135 } pmix_pmdl_API_module_t;
0136
0137
0138 PMIX_EXPORT extern pmix_pmdl_API_module_t pmix_pmdl;
0139
0140
0141
0142
0143 typedef pmix_mca_base_component_t pmix_pmdl_base_component_t;
0144
0145
0146
0147
0148 #define PMIX_PMDL_BASE_VERSION_1_0_0 PMIX_MCA_BASE_VERSION_1_0_0("pmdl", 1, 0, 0)
0149
0150 END_C_DECLS
0151
0152 #endif