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
27
28
29
30
31
32
33
34
35
36
37 #ifndef PMIX_MCA_BASE_VAR_INTERNAL_H
38 #define PMIX_MCA_BASE_VAR_INTERNAL_H
39
40 #include <src/include/pmix_config.h>
41
42 #include "src/class/pmix_object.h"
43 #include "src/class/pmix_list.h"
44 #include "src/class/pmix_value_array.h"
45 #include "src/class/pmix_pointer_array.h"
46 #include "src/class/pmix_hash_table.h"
47 #include "src/mca/base/pmix_mca_base_var.h"
48
49 BEGIN_C_DECLS
50
51
52 #define PMIX_MCA_BASE_VAR_FLAG_EXTERNAL_MASK 0x0000ffff
53
54 typedef enum {
55
56 PMIX_MCA_BASE_VAR_FLAG_VALID = 0x00010000,
57
58 PMIX_MCA_BASE_VAR_FLAG_SYNONYM = 0x00020000,
59
60 PMIX_MCA_BASE_VAR_FLAG_SOURCE_FILE_NEEDS_FREE = 0x00040000
61 } pmix_mca_base_var_flag_internal_t;
62
63 #define PMIX_VAR_FLAG_ISSET(var, flag) (!!((var).mbp_flags & (flag)))
64
65 #define PMIX_VAR_IS_VALID(var) (!!((var).mbv_flags & PMIX_MCA_BASE_VAR_FLAG_VALID))
66 #define PMIX_VAR_IS_SYNONYM(var) (!!((var).mbv_flags & PMIX_MCA_BASE_VAR_FLAG_SYNONYM))
67 #define PMIX_VAR_IS_INTERNAL(var) (!!((var).mbv_flags & PMIX_MCA_BASE_VAR_FLAG_INTERNAL))
68 #define PMIX_VAR_IS_DEFAULT_ONLY(var) (!!((var).mbv_flags & PMIX_MCA_BASE_VAR_FLAG_DEFAULT_ONLY))
69 #define PMIX_VAR_IS_SETTABLE(var) (!!((var).mbv_flags & PMIX_MCA_BASE_VAR_FLAG_SETTABLE))
70 #define PMIX_VAR_IS_DEPRECATED(var) (!!((var).mbv_flags & PMIX_MCA_BASE_VAR_FLAG_DEPRECATED))
71
72 extern const char *pmix_var_type_names[];
73 extern const size_t pmix_var_type_sizes[];
74 extern bool pmix_mca_base_var_initialized;
75
76
77
78
79
80
81 struct pmix_mca_base_var_file_value_t {
82
83 pmix_list_item_t super;
84
85
86 char *mbvfv_var;
87
88 char *mbvfv_value;
89
90 char *mbvfv_file;
91
92 int mbvfv_lineno;
93 };
94
95
96
97
98
99
100 typedef struct pmix_mca_base_var_file_value_t pmix_mca_base_var_file_value_t;
101
102
103
104
105 PMIX_CLASS_DECLARATION(pmix_mca_base_var_file_value_t);
106
107
108
109
110
111
112
113
114
115
116 int pmix_mca_base_var_group_get_internal (const int group_index, pmix_mca_base_var_group_t **group, bool invalidok);
117
118
119
120
121
122
123 int pmix_mca_base_parse_paramfile(const char *paramfile, pmix_list_t *list);
124
125
126
127
128
129
130 int pmix_mca_base_var_group_add_var (const int group_index, const int param_index);
131
132
133
134
135
136
137 int pmix_mca_base_var_group_add_pvar (const int group_index, const int param_index);
138
139
140
141
142
143
144 int pmix_mca_base_var_generate_full_name4 (const char *project, const char *framework,
145 const char *component, const char *variable,
146 char **full_name);
147
148
149
150
151
152
153 int pmix_mca_base_internal_env_store(void);
154
155
156
157
158
159
160 int pmix_mca_base_var_group_init (void);
161 int pmix_mca_base_var_group_finalize (void);
162
163 END_C_DECLS
164
165 #endif