Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-02-23 10:12:57

0001 /*
0002  * Copyright (c) 2011-2013 Los Alamos National Security, LLC.
0003  *                         All rights reserved.
0004  * Copyright (c) 2018-2020 Intel, Inc.  All rights reserved.
0005  * Copyright (c) 2019      Research Organization for Information Science
0006  *                         and Technology (RIST).  All rights reserved.
0007  * Copyright (c) 2020      Cisco Systems, Inc.  All rights reserved
0008  * Copyright (c) 2021-2023 Nanook Consulting.  All rights reserved.
0009  * $COPYRIGHT$
0010  *
0011  * Additional copyrights may follow
0012  *
0013  * $HEADER$
0014  */
0015 /** @file:
0016  */
0017 
0018 #ifndef PRTE_MCA_STATE_BASE_H
0019 #define PRTE_MCA_STATE_BASE_H
0020 
0021 /*
0022  * includes
0023  */
0024 #include "prte_config.h"
0025 #include "constants.h"
0026 
0027 #include "src/class/pmix_list.h"
0028 #include "src/util/pmix_printf.h"
0029 
0030 #include "src/mca/mca.h"
0031 #include "src/mca/rmaps/rmaps_types.h"
0032 #include "src/mca/state/state.h"
0033 
0034 BEGIN_C_DECLS
0035 
0036 /**
0037  * Struct to hold data global to the state framework
0038  */
0039 typedef struct {
0040     int parent_fd;
0041     bool ready_msg;
0042     bool run_fdcheck;
0043     bool recoverable;
0044     int max_restarts;
0045     bool continuous;
0046     bool error_non_zero_exit;
0047     bool show_launch_progress;
0048     bool notifyerrors;
0049     bool autorestart;
0050 } prte_state_base_t;
0051 PRTE_EXPORT extern prte_state_base_t prte_state_base;
0052 
0053 /* select a component */
0054 PRTE_EXPORT int prte_state_base_select(void);
0055 
0056 /* debug tools */
0057 PRTE_EXPORT void prte_state_base_print_job_state_machine(void);
0058 
0059 PRTE_EXPORT void prte_state_base_print_proc_state_machine(void);
0060 
0061 PRTE_EXPORT int prte_state_base_set_default_rto(prte_job_t *jdata,
0062                                                 prte_rmaps_options_t *options);
0063 
0064 PRTE_EXPORT int prte_state_base_set_runtime_options(prte_job_t *jdata, char *spec);
0065 
0066 /*
0067  * Base functions
0068  */
0069 PRTE_EXPORT void prte_state_base_activate_job_state(prte_job_t *jdata, prte_job_state_t state);
0070 
0071 PRTE_EXPORT int prte_state_base_add_job_state(prte_job_state_t state, prte_state_cbfunc_t cbfunc);
0072 
0073 PRTE_EXPORT int prte_state_base_set_job_state_callback(prte_job_state_t state,
0074                                                        prte_state_cbfunc_t cbfunc);
0075 
0076 PRTE_EXPORT int prte_state_base_remove_job_state(prte_job_state_t state);
0077 
0078 PRTE_EXPORT void prte_util_print_job_state_machine(void);
0079 
0080 PRTE_EXPORT void prte_state_base_activate_proc_state(pmix_proc_t *proc, prte_proc_state_t state);
0081 
0082 PRTE_EXPORT int prte_state_base_add_proc_state(prte_proc_state_t state, prte_state_cbfunc_t cbfunc);
0083 
0084 PRTE_EXPORT int prte_state_base_set_proc_state_callback(prte_proc_state_t state,
0085                                                         prte_state_cbfunc_t cbfunc);
0086 
0087 PRTE_EXPORT int prte_state_base_remove_proc_state(prte_proc_state_t state);
0088 
0089 PRTE_EXPORT void prte_util_print_proc_state_machine(void);
0090 
0091 /* common state processing functions */
0092 PRTE_EXPORT void prte_state_base_local_launch_complete(int fd, short argc, void *cbdata);
0093 PRTE_EXPORT void prte_state_base_cleanup_job(int fd, short argc, void *cbdata);
0094 PRTE_EXPORT void prte_state_base_report_progress(int fd, short argc, void *cbdata);
0095 PRTE_EXPORT void prte_state_base_track_procs(int fd, short argc, void *cbdata);
0096 PRTE_EXPORT void prte_state_base_check_all_complete(int fd, short args, void *cbdata);
0097 PRTE_EXPORT void prte_state_base_check_fds(prte_job_t *jdata);
0098 PRTE_EXPORT void prte_state_base_notify_data_server(pmix_proc_t *target);
0099 
0100 END_C_DECLS
0101 
0102 #endif