Back to home page

EIC code displayed by LXR

 
 

    


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

0001 /*
0002  * Copyright (c) 2015-2020 Intel, Inc.  All rights reserved.
0003  * Copyright (c) 2020      IBM Corporation.  All rights reserved.
0004  * Copyright (c) 2020      Cisco Systems, Inc.  All rights reserved
0005  * Copyright (c) 2021-2023 Nanook Consulting.  All rights reserved.
0006  * $COPYRIGHT$
0007  *
0008  * Additional copyrights may follow
0009  *
0010  * $HEADER$
0011  */
0012 /** @file:
0013  * schizo framework base functionality.
0014  */
0015 
0016 #ifndef PRTE_MCA_SCHIZO_BASE_H
0017 #define PRTE_MCA_SCHIZO_BASE_H
0018 
0019 /*
0020  * includes
0021  */
0022 #include "prte_config.h"
0023 #include "types.h"
0024 
0025 #include "src/class/pmix_list.h"
0026 #include "src/mca/base/pmix_mca_base_framework.h"
0027 #include "src/mca/mca.h"
0028 #include "src/util/pmix_cmd_line.h"
0029 #include "src/util/pmix_printf.h"
0030 
0031 #include "src/runtime/prte_globals.h"
0032 
0033 #include "src/mca/schizo/schizo.h"
0034 
0035 BEGIN_C_DECLS
0036 
0037 /*
0038  * MCA Framework
0039  */
0040 PRTE_EXPORT extern pmix_mca_base_framework_t prte_schizo_base_framework;
0041 /* select all components */
0042 PRTE_EXPORT int prte_schizo_base_select(void);
0043 
0044 /**
0045  * Struct to hold data global to the schizo framework
0046  */
0047 typedef struct {
0048     /* list of active modules */
0049     pmix_list_t active_modules;
0050     bool test_proxy_launch;
0051 } prte_schizo_base_t;
0052 
0053 /**
0054  * Global instance of schizo-wide framework data
0055  */
0056 PRTE_EXPORT extern prte_schizo_base_t prte_schizo_base;
0057 
0058 /**
0059  * Active schizo component / module
0060  */
0061 typedef struct {
0062     pmix_list_item_t super;
0063     int pri;
0064     prte_schizo_base_module_t *module;
0065     pmix_mca_base_component_t *component;
0066 } prte_schizo_base_active_module_t;
0067 PMIX_CLASS_DECLARATION(prte_schizo_base_active_module_t);
0068 
0069 typedef struct {
0070     char *name;
0071     char **conflicts;
0072 } prte_schizo_conflicts_t;
0073 
0074 /* base support functions */
0075 PRTE_EXPORT int prte_schizo_base_convert(pmix_cli_result_t *results,
0076                                          char *deprecated,
0077                                          char *key, char *option,
0078                                          prte_schizo_conflicts_t *conflicts,
0079                                          bool report);
0080 
0081 /* the base stub functions */
0082 
0083 PRTE_EXPORT prte_schizo_base_module_t *prte_schizo_base_detect_proxy(char *cmdpath);
0084 
0085 PRTE_EXPORT void prte_schizo_base_root_error_msg(void);
0086 PRTE_EXPORT char *prte_schizo_base_getline(FILE *fp);
0087 PRTE_EXPORT char *prte_schizo_base_strip_quotes(char *p);
0088 PRTE_EXPORT int prte_schizo_base_parse_prte(int argc, int start, char **argv, char ***target);
0089 PRTE_EXPORT int prte_schizo_base_parse_pmix(int argc, int start, char **argv, char ***target);
0090 PRTE_EXPORT int prte_schizo_base_sanity(pmix_cli_result_t *cmd_line);
0091 PRTE_EXPORT bool prte_schizo_base_check_directives(char *directive,
0092                                                    char **valid,
0093                                                    char **quals,
0094                                                    char *dir);
0095 PRTE_EXPORT bool prte_schizo_base_check_qualifiers(char *directive,
0096                                                    char **valid,
0097                                                    char *qual);
0098 PRTE_EXPORT bool prte_schizo_base_check_prte_param(char *param);
0099 PRTE_EXPORT bool prte_schizo_base_check_pmix_param(char *param);
0100 PRTE_EXPORT void prte_schizo_base_expose(char *param, char *prefix);
0101 PRTE_EXPORT int prte_schizo_base_add_directive(pmix_cli_result_t *results,
0102                                                const char *deprecated, const char *target,
0103                                                char *directive, bool report);
0104 PRTE_EXPORT int prte_schizo_base_add_qualifier(pmix_cli_result_t *results,
0105                                                char *deprecated, char *target,
0106                                                char *qualifier, bool report);
0107 PRTE_EXPORT int prte_schizo_base_parse_output(pmix_cli_item_t *opt, void *jinfo);
0108 PRTE_EXPORT int prte_schizo_base_parse_display(pmix_cli_item_t *opt, void *jinfo);
0109 
0110 PRTE_EXPORT int prte_schizo_base_setup_fork(prte_job_t *jdata, prte_app_context_t *app);
0111 
0112 
0113 END_C_DECLS
0114 
0115 #endif