Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-10 08:48:09

0001 /*
0002  * Copyright (c) 2012-2013 Los Alamos National Security, LLC.
0003  *                         All rights reserved.
0004  * Copyright (c) 2014 Cisco Systems, Inc.  All rights reserved.
0005  * Copyright (c) 2017 IBM Corporation.  All rights reserved.
0006  * Copyright (c) 2026      Nanook Consulting  All rights reserved.
0007  * $COPYRIGHT$
0008  *
0009  * Additional copyrights may follow
0010  *
0011  * $HEADER$
0012  */
0013 
0014 /** @file **/
0015 
0016 #ifndef PMIX_INFO_REGISTER_H
0017 #define PMIX_INFO_REGISTER_H
0018 
0019 #include "src/include/pmix_config.h"
0020 
0021 #include "src/class/pmix_list.h"
0022 #include "src/class/pmix_pointer_array.h"
0023 #include "src/mca/base/pmix_base.h"
0024 #include "src/mca/pinstalldirs/pinstalldirs_types.h"
0025 #include "src/util/pmix_cmd_line.h"
0026 
0027 BEGIN_C_DECLS
0028 
0029 PMIX_EXPORT extern const char *pmix_info_path_prefix;
0030 
0031 PMIX_EXPORT extern const char *pmix_info_type_all;
0032 PMIX_EXPORT extern const char *pmix_info_type_pmix;
0033 PMIX_EXPORT extern const char *pmix_info_component_all;
0034 extern const char *pmix_info_param_all;
0035 
0036 PMIX_EXPORT extern const char *pmix_info_ver_full;
0037 extern const char *pmix_info_ver_major;
0038 extern const char *pmix_info_ver_minor;
0039 extern const char *pmix_info_ver_release;
0040 extern const char *pmix_info_ver_greek;
0041 extern const char *pmix_info_ver_repo;
0042 
0043 PMIX_EXPORT extern const char *pmix_info_ver_all;
0044 extern const char *pmix_info_ver_mca;
0045 extern const char *pmix_info_ver_type;
0046 extern const char *pmix_info_ver_component;
0047 
0048 PMIX_EXPORT extern bool pmix_info_color;
0049 PMIX_EXPORT extern bool pmix_info_pretty;
0050 PMIX_EXPORT extern pmix_mca_base_register_flag_t pmix_info_register_flags;
0051 
0052 
0053 /*
0054  * Component-related functions
0055  */
0056 typedef struct {
0057     pmix_list_item_t super;
0058     char *project;
0059     char *type;
0060     pmix_list_t *components;
0061     pmix_list_t *failed_components;
0062 } pmix_info_component_map_t;
0063 PMIX_EXPORT PMIX_CLASS_DECLARATION(pmix_info_component_map_t);
0064 
0065 PMIX_EXPORT int pmix_info_init(int argc, char **argv,
0066                                pmix_cli_result_t *pmix_info_cmd_line,
0067                                struct option poptions[], char *pshorts,
0068                                char *helpfile);
0069 
0070 PMIX_EXPORT void pmix_info_finalize(void);
0071 
0072 PMIX_EXPORT void pmix_info_register_types(pmix_pointer_array_t *mca_types,
0073                                           bool frames_only);
0074 
0075 PMIX_EXPORT int pmix_info_register_framework_params(pmix_pointer_array_t *component_map);
0076 
0077 PMIX_EXPORT void pmix_info_close_components(void);
0078 PMIX_EXPORT void pmix_info_err_params(pmix_pointer_array_t *component_map);
0079 
0080 PMIX_EXPORT void pmix_info_show_package(char *pkgstring);
0081 PMIX_EXPORT void pmix_info_show_pmix_package(void);
0082 
0083 PMIX_EXPORT void pmix_info_do_pmix_config(bool want_all);
0084 
0085 PMIX_EXPORT void pmix_info_do_config(bool want_all, char *user, char *date, char *host,
0086                                      char *cli, char *builduser, char *builddate,
0087                                      char *buildhost, char *ccline, char *ccabs,
0088                                      char *family, char *versionstr, char *cflags,
0089                                      char *ldflags, char *libs, bool enabledebug,
0090                                      bool havedl, bool havevi);
0091 
0092 PMIX_EXPORT void pmix_info_do_params(const char *project,
0093                                      bool want_all_in, bool want_internal,
0094                                      pmix_pointer_array_t *mca_type,
0095                                      pmix_pointer_array_t *component_map,
0096                                      pmix_cli_result_t *pmix_info_cmd_line);
0097 
0098 PMIX_EXPORT void pmix_info_show_path(const char *type, const char *value);
0099 PMIX_EXPORT void pmix_info_show_pmix_path(void);
0100 
0101 PMIX_EXPORT void pmix_info_do_path(bool want_all, pmix_cli_result_t *cmd_line,
0102                                    pmix_pinstall_dirs_t *dirs);
0103 PMIX_EXPORT void pmix_info_do_pmix_path(bool wall, pmix_cli_result_t *cmd_line);
0104 
0105 PMIX_EXPORT void pmix_info_show_mca_params(const char *type, const char *component,
0106                                            bool want_internal);
0107 
0108 PMIX_EXPORT void pmix_info_show_mca_version(const pmix_mca_base_component_t *component,
0109                                             const char *scope, const char *ver_type);
0110 
0111 PMIX_EXPORT void pmix_info_show_component_version(const char *project,
0112                                                   pmix_pointer_array_t *mca_types,
0113                                                   pmix_pointer_array_t *component_map,
0114                                                   const char *type_name,
0115                                                   const char *component_name, const char *scope,
0116                                                   const char *ver_type);
0117 
0118 PMIX_EXPORT char *pmix_info_make_version_str(const char *scope, int major, int minor, int release,
0119                                              const char *greek, const char *repo);
0120 
0121 PMIX_EXPORT void pmix_info_show_version(const char *project, const char *scope, int major, int minor,
0122                                         int release, const char *greek, const char *repo,
0123                                         const char *rdate);
0124 
0125 PMIX_EXPORT void pmix_info_show_pmix_version(void);
0126 
0127 PMIX_EXPORT void pmix_info_do_arch(void);
0128 
0129 PMIX_EXPORT void pmix_info_do_hostname(void);
0130 
0131 PMIX_EXPORT void pmix_info_do_type(pmix_cli_result_t *pmix_info_cmd_line);
0132 
0133 PMIX_EXPORT void pmix_info_out(const char *pretty_message, const char *plain_message,
0134                                const char *value);
0135 
0136 PMIX_EXPORT void pmix_info_out_int(const char *pretty_message, const char *plain_message,
0137                                    int value);
0138 
0139 PMIX_EXPORT int pmix_info_register_project_frameworks(const char *project_name,
0140                                                       pmix_mca_base_framework_t **frameworks,
0141                                                       pmix_pointer_array_t *component_map);
0142 
0143 END_C_DECLS
0144 
0145 #endif