File indexing completed on 2025-02-22 10:47:30
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
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045 #ifndef _PRTE_STATE_H_
0046 #define _PRTE_STATE_H_
0047
0048 #include "prte_config.h"
0049
0050 #include "src/class/pmix_list.h"
0051 #include "src/event/event-internal.h"
0052 #include "src/pmix/pmix-internal.h"
0053
0054 #include "src/mca/errmgr/errmgr.h"
0055 #include "src/mca/plm/plm_types.h"
0056 #include "src/mca/state/state_types.h"
0057 #include "src/runtime/prte_globals.h"
0058 #include "src/util/error_strings.h"
0059
0060 BEGIN_C_DECLS
0061
0062
0063
0064
0065
0066 PRTE_EXPORT extern pmix_mca_base_framework_t prte_state_base_framework;
0067
0068 #ifdef HAVE_SYS_TIME_H
0069 # include <sys/time.h>
0070 #endif
0071
0072
0073
0074
0075
0076
0077 #define PRTE_STATE_GET_TIMESTAMP(t) \
0078 do { \
0079 struct timeval tv; \
0080 gettimeofday(&tv, NULL); \
0081 t = tv.tv_sec; \
0082 t += (double) tv.tv_usec / 1000000.0; \
0083 } while (0);
0084
0085 #define PRTE_ACTIVATE_JOB_STATE(j, s) \
0086 do { \
0087 prte_job_t *shadow = (j); \
0088 if (prte_state_base_framework.framework_verbose > 0) { \
0089 double timestamp = 0.0; \
0090 PRTE_STATE_GET_TIMESTAMP(timestamp); \
0091 pmix_output_verbose(1, prte_state_base_framework.framework_output, \
0092 "%s [%f] ACTIVATE JOB %s STATE %s AT %s:%d", \
0093 PRTE_NAME_PRINT(PRTE_PROC_MY_NAME), timestamp, \
0094 (NULL == shadow) ? "NULL" : PRTE_JOBID_PRINT(shadow->nspace), \
0095 prte_job_state_to_str((s)), __FILE__, __LINE__); \
0096 } \
0097 prte_state.activate_job_state(shadow, (s)); \
0098 } while (0);
0099
0100 #define PRTE_ACTIVATE_PROC_STATE(p, s) \
0101 do { \
0102 pmix_proc_t *shadow = (p); \
0103 if (prte_state_base_framework.framework_verbose > 0) { \
0104 double timestamp = 0.0; \
0105 PRTE_STATE_GET_TIMESTAMP(timestamp); \
0106 pmix_output_verbose(1, prte_state_base_framework.framework_output, \
0107 "%s [%f] ACTIVATE PROC %s STATE %s AT %s:%d", \
0108 PRTE_NAME_PRINT(PRTE_PROC_MY_NAME), timestamp, \
0109 (NULL == shadow) ? "NULL" : PRTE_NAME_PRINT(shadow), \
0110 prte_proc_state_to_str((s)), __FILE__, __LINE__); \
0111 } \
0112 prte_state.activate_proc_state(shadow, (s)); \
0113 } while (0);
0114
0115
0116 #define PRTE_REACHING_JOB_STATE(j, s) \
0117 do { \
0118 prte_job_t *shadow = (j); \
0119 if (prte_state_base_framework.framework_verbose > 0) { \
0120 double timestamp = 0.0; \
0121 PRTE_STATE_GET_TIMESTAMP(timestamp); \
0122 pmix_output_verbose(1, prte_state_base_framework.framework_output, \
0123 "%s [%f] ACTIVATING JOB %s STATE %s", \
0124 PRTE_NAME_PRINT(PRTE_PROC_MY_NAME), timestamp, \
0125 (NULL == shadow) ? "NULL" : PRTE_JOBID_PRINT(shadow->nspace), \
0126 prte_job_state_to_str((s))); \
0127 } \
0128 } while (0);
0129
0130 #define PRTE_REACHING_PROC_STATE(p, s) \
0131 do { \
0132 pmix_proc_t *shadow = (p); \
0133 if (prte_state_base_framework.framework_verbose > 0) { \
0134 double timestamp = 0.0; \
0135 PRTE_STATE_GET_TIMESTAMP(timestamp); \
0136 pmix_output_verbose(1, prte_state_base_framework.framework_output, \
0137 "%s [%f] ACTIVATING PROC %s STATE %s", \
0138 PRTE_NAME_PRINT(PRTE_PROC_MY_NAME), timestamp, \
0139 (NULL == shadow) ? "NULL" : PRTE_NAME_PRINT(shadow), \
0140 prte_proc_state_to_str((s))); \
0141 } \
0142 } while (0);
0143
0144
0145
0146
0147
0148
0149
0150 typedef int (*prte_state_base_module_init_fn_t)(void);
0151
0152
0153
0154
0155
0156
0157
0158 typedef int (*prte_state_base_module_finalize_fn_t)(void);
0159
0160
0161
0162
0163
0164
0165
0166
0167
0168
0169
0170
0171
0172
0173
0174
0175
0176
0177
0178
0179
0180
0181
0182
0183
0184
0185
0186
0187
0188
0189 typedef void (*prte_state_base_module_activate_job_state_fn_t)(prte_job_t *jdata,
0190 prte_job_state_t state);
0191
0192
0193
0194
0195 typedef int (*prte_state_base_module_add_job_state_fn_t)(prte_job_state_t state,
0196 prte_state_cbfunc_t cbfunc);
0197
0198
0199
0200
0201 typedef int (*prte_state_base_module_set_job_state_callback_fn_t)(prte_job_state_t state,
0202 prte_state_cbfunc_t cbfunc);
0203
0204
0205
0206
0207 typedef int (*prte_state_base_module_remove_job_state_fn_t)(prte_job_state_t state);
0208
0209
0210
0211
0212
0213
0214
0215
0216
0217
0218
0219
0220
0221
0222
0223
0224
0225
0226
0227
0228
0229
0230
0231
0232
0233
0234
0235
0236
0237
0238 typedef void (*prte_state_base_module_activate_proc_state_fn_t)(pmix_proc_t *proc,
0239 prte_proc_state_t state);
0240
0241
0242
0243
0244 typedef int (*prte_state_base_module_add_proc_state_fn_t)(prte_proc_state_t state,
0245 prte_state_cbfunc_t cbfunc);
0246
0247
0248
0249
0250 typedef int (*prte_state_base_module_set_proc_state_callback_fn_t)(prte_proc_state_t state,
0251 prte_state_cbfunc_t cbfunc);
0252
0253
0254
0255
0256 typedef int (*prte_state_base_module_remove_proc_state_fn_t)(prte_proc_state_t state);
0257
0258
0259
0260
0261 struct prte_state_base_module_1_0_0_t {
0262
0263 prte_state_base_module_init_fn_t init;
0264
0265 prte_state_base_module_finalize_fn_t finalize;
0266
0267 prte_state_base_module_activate_job_state_fn_t activate_job_state;
0268 prte_state_base_module_add_job_state_fn_t add_job_state;
0269 prte_state_base_module_set_job_state_callback_fn_t set_job_state_callback;
0270 prte_state_base_module_remove_job_state_fn_t remove_job_state;
0271
0272 prte_state_base_module_activate_proc_state_fn_t activate_proc_state;
0273 prte_state_base_module_add_proc_state_fn_t add_proc_state;
0274 prte_state_base_module_set_proc_state_callback_fn_t set_proc_state_callback;
0275 prte_state_base_module_remove_proc_state_fn_t remove_proc_state;
0276 };
0277 typedef struct prte_state_base_module_1_0_0_t prte_state_base_module_1_0_0_t;
0278 typedef prte_state_base_module_1_0_0_t prte_state_base_module_t;
0279 PRTE_EXPORT extern prte_state_base_module_t prte_state;
0280
0281
0282
0283
0284 typedef pmix_mca_base_component_t prte_state_base_component_t;
0285
0286
0287
0288
0289 #define PRTE_STATE_BASE_VERSION_1_0_0 PRTE_MCA_BASE_VERSION_3_0_0("state", 1, 0, 0)
0290
0291 END_C_DECLS
0292 #endif