This source file includes following definitions.
- PMIx_Proc_state_string
- PMIx_Scope_string
- PMIx_Persistence_string
- PMIx_Data_range_string
- PMIx_Info_directives_string
- PMIx_Alloc_directive_string
- pmix_command_string
- PMIx_IOF_channel_string
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 #include <src/include/pmix_config.h>
25
26
27 #ifdef HAVE_STRING_H
28 #include <string.h>
29 #endif
30 #include <errno.h>
31 #include <stdio.h>
32 #ifdef HAVE_STDLIB_H
33 #include <stdlib.h>
34 #endif
35
36 #include <pmix_common.h>
37 #include <pmix_rename.h>
38
39 #include "src/include/pmix_globals.h"
40
41 PMIX_EXPORT const char* PMIx_Proc_state_string(pmix_proc_state_t state)
42 {
43 switch(state) {
44 case PMIX_PROC_STATE_UNDEF:
45 return "UNDEFINED";
46 case PMIX_PROC_STATE_PREPPED:
47 return "PREPPED FOR LAUNCH";
48 case PMIX_PROC_STATE_LAUNCH_UNDERWAY:
49 return "LAUNCH UNDERWAY";
50 case PMIX_PROC_STATE_RESTART:
51 return "PROC READY FOR RESTART";
52 case PMIX_PROC_STATE_TERMINATE:
53 return "PROC MARKED FOR TERMINATION";
54 case PMIX_PROC_STATE_RUNNING:
55 return "PROC EXECUTING";
56 case PMIX_PROC_STATE_CONNECTED:
57 return "PROC HAS CONNECTED TO LOCAL PMIX SERVER";
58 case PMIX_PROC_STATE_UNTERMINATED:
59 return "PROC HAS NOT TERMINATED";
60 case PMIX_PROC_STATE_TERMINATED:
61 return "PROC HAS TERMINATED";
62 case PMIX_PROC_STATE_ERROR:
63 return "PROC ERROR";
64 case PMIX_PROC_STATE_KILLED_BY_CMD:
65 return "PROC KILLED BY CMD";
66 case PMIX_PROC_STATE_ABORTED:
67 return "PROC ABNORMALLY ABORTED";
68 case PMIX_PROC_STATE_FAILED_TO_START:
69 return "PROC FAILED TO START";
70 case PMIX_PROC_STATE_ABORTED_BY_SIG:
71 return "PROC ABORTED BY SIGNAL";
72 case PMIX_PROC_STATE_TERM_WO_SYNC:
73 return "PROC TERMINATED WITHOUT CALLING PMIx_Finalize";
74 case PMIX_PROC_STATE_COMM_FAILED:
75 return "PROC LOST COMMUNICATION";
76 case PMIX_PROC_STATE_SENSOR_BOUND_EXCEEDED:
77 return "PROC SENSOR BOUND EXCEEDED";
78 case PMIX_PROC_STATE_CALLED_ABORT:
79 return "PROC CALLED PMIx_Abort";
80 case PMIX_PROC_STATE_HEARTBEAT_FAILED:
81 return "PROC FAILED TO REPORT HEARTBEAT";
82 case PMIX_PROC_STATE_MIGRATING:
83 return "PROC WAITING TO MIGRATE";
84 case PMIX_PROC_STATE_CANNOT_RESTART:
85 return "PROC CANNOT BE RESTARTED";
86 case PMIX_PROC_STATE_TERM_NON_ZERO:
87 return "PROC TERMINATED WITH NON-ZERO STATUS";
88 case PMIX_PROC_STATE_FAILED_TO_LAUNCH:
89 return "PROC FAILED TO LAUNCH";
90 default:
91 return "UNKNOWN STATE";
92 }
93 }
94
95 PMIX_EXPORT const char* PMIx_Scope_string(pmix_scope_t scope)
96 {
97 switch(scope) {
98 case PMIX_SCOPE_UNDEF:
99 return "UNDEFINED";
100 case PMIX_LOCAL:
101 return "SHARE ON LOCAL NODE ONLY";
102 case PMIX_REMOTE:
103 return "SHARE ON REMOTE NODES ONLY";
104 case PMIX_GLOBAL:
105 return "SHARE ACROSS ALL NODES";
106 case PMIX_INTERNAL:
107 return "STORE INTERNALLY";
108 default:
109 return "UNKNOWN SCOPE";
110 }
111 }
112
113 PMIX_EXPORT const char* PMIx_Persistence_string(pmix_persistence_t persist)
114 {
115 switch(persist) {
116 case PMIX_PERSIST_INDEF:
117 return "INDEFINITE";
118 case PMIX_PERSIST_FIRST_READ:
119 return "DELETE ON FIRST ACCESS";
120 case PMIX_PERSIST_PROC:
121 return "RETAIN UNTIL PUBLISHING PROCESS TERMINATES";
122 case PMIX_PERSIST_APP:
123 return "RETAIN UNTIL APPLICATION OF PUBLISHING PROCESS TERMINATES";
124 case PMIX_PERSIST_SESSION:
125 return "RETAIN UNTIL ALLOCATION OF PUBLISHING PROCESS TERMINATES";
126 case PMIX_PERSIST_INVALID:
127 return "INVALID";
128 default:
129 return "UNKNOWN PERSISTENCE";
130 }
131 }
132
133 PMIX_EXPORT const char* PMIx_Data_range_string(pmix_data_range_t range)
134 {
135 switch(range) {
136 case PMIX_RANGE_UNDEF:
137 return "UNDEFINED";
138 case PMIX_RANGE_RM:
139 return "INTENDED FOR HOST RESOURCE MANAGER ONLY";
140 case PMIX_RANGE_LOCAL:
141 return "AVAIL ON LOCAL NODE ONLY";
142 case PMIX_RANGE_NAMESPACE:
143 return "AVAIL TO PROCESSES IN SAME JOB ONLY";
144 case PMIX_RANGE_SESSION:
145 return "AVAIL TO PROCESSES IN SAME ALLOCATION ONLY";
146 case PMIX_RANGE_GLOBAL:
147 return "AVAIL TO ANYONE WITH AUTHORIZATION";
148 case PMIX_RANGE_CUSTOM:
149 return "AVAIL AS SPECIFIED IN DIRECTIVES";
150 case PMIX_RANGE_PROC_LOCAL:
151 return "AVAIL ON LOCAL PROC ONLY";
152 case PMIX_RANGE_INVALID:
153 return "INVALID";
154 default:
155 return "UNKNOWN";
156 }
157 }
158
159 PMIX_EXPORT const char* PMIx_Info_directives_string(pmix_info_directives_t directives)
160 {
161 switch(directives) {
162 case PMIX_INFO_REQD:
163 return "REQUIRED";
164 default:
165 return "UNSPECIFIED";
166 }
167 }
168
169 PMIX_EXPORT const char* PMIx_Alloc_directive_string(pmix_alloc_directive_t directive)
170 {
171 switch(directive) {
172 case PMIX_ALLOC_NEW:
173 return "NEW";
174 case PMIX_ALLOC_EXTEND:
175 return "EXTEND";
176 case PMIX_ALLOC_RELEASE:
177 return "RELEASE";
178 case PMIX_ALLOC_REAQUIRE:
179 return "REACQUIRE";
180 default:
181 return "UNSPECIFIED";
182 }
183 }
184
185
186 PMIX_EXPORT const char* pmix_command_string(pmix_cmd_t cmd)
187 {
188 switch(cmd) {
189 case PMIX_REQ_CMD:
190 return "REQUEST INIT INFO";
191 case PMIX_ABORT_CMD:
192 return "ABORT";
193 case PMIX_COMMIT_CMD:
194 return "COMMIT";
195 case PMIX_FENCENB_CMD:
196 return "FENCE";
197 case PMIX_GETNB_CMD:
198 return "GET";
199 case PMIX_FINALIZE_CMD:
200 return "FINALIZE";
201 case PMIX_PUBLISHNB_CMD:
202 return "PUBLISH";
203 case PMIX_LOOKUPNB_CMD:
204 return "LOOKUP";
205 case PMIX_UNPUBLISHNB_CMD:
206 return "UNPUBLISH";
207 case PMIX_SPAWNNB_CMD:
208 return "SPAWN";
209 case PMIX_CONNECTNB_CMD:
210 return "CONNECT";
211 case PMIX_DISCONNECTNB_CMD:
212 return "DISCONNECT";
213 case PMIX_NOTIFY_CMD:
214 return "NOTIFY";
215 case PMIX_REGEVENTS_CMD:
216 return "REGISTER EVENT HANDLER";
217 case PMIX_DEREGEVENTS_CMD:
218 return "DEREGISTER EVENT HANDLER";
219 case PMIX_QUERY_CMD:
220 return "QUERY";
221 case PMIX_LOG_CMD:
222 return "LOG";
223 case PMIX_ALLOC_CMD:
224 return "ALLOCATE";
225 case PMIX_JOB_CONTROL_CMD:
226 return "JOB CONTROL";
227 case PMIX_MONITOR_CMD:
228 return "MONITOR";
229 case PMIX_IOF_PUSH_CMD:
230 return "IOF PUSH";
231 case PMIX_IOF_PULL_CMD:
232 return "IOF PULL";
233 case PMIX_GROUP_CONSTRUCT_CMD:
234 return "GROUP CONSTRUCT";
235 case PMIX_GROUP_JOIN_CMD:
236 return "GROUP JOIN";
237 case PMIX_GROUP_INVITE_CMD:
238 return "GROUP INVITE";
239 case PMIX_GROUP_LEAVE_CMD:
240 return "GROUP LEAVE";
241 case PMIX_GROUP_DESTRUCT_CMD:
242 return "GROUP DESTRUCT";
243 default:
244 return "UNKNOWN";
245 }
246 }
247
248
249
250 static char answer[300];
251
252 PMIX_EXPORT const char* PMIx_IOF_channel_string(pmix_iof_channel_t channel)
253 {
254 size_t cnt=0;
255
256 if (PMIX_FWD_STDIN_CHANNEL & channel) {
257 strcpy(&answer[cnt], "STDIN ");
258 cnt += strlen("STDIN ");
259 }
260 if (PMIX_FWD_STDOUT_CHANNEL & channel) {
261 strcpy(&answer[cnt], "STDOUT ");
262 cnt += strlen("STDOUT ");
263 }
264 if (PMIX_FWD_STDERR_CHANNEL & channel) {
265 strcpy(&answer[cnt], "STDERR ");
266 cnt += strlen("STDERR ");
267 }
268 if (PMIX_FWD_STDDIAG_CHANNEL & channel) {
269 strcpy(&answer[cnt], "STDDIAG ");
270 cnt += strlen("STDDIAG ");
271 }
272 if (0 == cnt) {
273 strcpy(&answer[cnt], "NONE");
274 }
275 return answer;
276 }