int opal_init_util(void) { int ret; char *error = NULL; if( ++opal_initialized != 1 ) { if( opal_initialized < 1 ) { return OPAL_ERROR; } return OPAL_SUCCESS; } /* initialize the memory allocator */ opal_malloc_init(); /* initialize the output system */ opal_output_init(); /* register handler for errnum -> string converstion */ if (OPAL_SUCCESS != (ret = opal_error_register("OPAL", OPAL_ERR_BASE, OPAL_ERR_MAX, opal_err2str))) { error = "opal_error_register"; goto return_error; } /* initialize install dirs code */ if (OPAL_SUCCESS != (ret = opal_installdirs_base_open())) { fprintf(stderr, "opal_installdirs_base_open() failed -- process will likely abort (%s:%d, returned %d instead of OPAL_INIT)\n", __FILE__, __LINE__, ret); return ret; } /* init the trace function */ opal_trace_init(); /* keyval lex-based parser */ if (OPAL_SUCCESS != (ret = opal_util_keyval_parse_init())) { error = "opal_util_keyval_parse_init"; goto return_error; } /* Setup the parameter system */ if (OPAL_SUCCESS != (ret = mca_base_param_init())) { error = "mca_base_param_init"; goto return_error; } /* register params for opal */ if (OPAL_SUCCESS != opal_register_params()) { error = "opal_register_params"; goto return_error; } /* pretty-print stack handlers */ if (OPAL_SUCCESS != (ret = opal_util_register_stackhandlers ())) { error = "util_register_stackhandlers() failed"; goto return_error; } return OPAL_SUCCESS; return_error: opal_show_help( "help-opal-runtime", "opal_init:startup:internal-failure", true, error, ret ); return ret; }
int opal_init_util(int* pargc, char*** pargv) { int ret; char *error = NULL; if( ++opal_util_initialized != 1 ) { if( opal_util_initialized < 1 ) { return OPAL_ERROR; } return OPAL_SUCCESS; } /* JMS See note in runtime/opal.h -- this is temporary; to be replaced with real hwloc information soon (in trunk/v1.5 and beyond, only). This *used* to be a #define, so it's important to define it very early. */ opal_cache_line_size = 128; /* initialize the memory allocator */ opal_malloc_init(); /* initialize the output system */ opal_output_init(); /* initialize install dirs code */ if (OPAL_SUCCESS != (ret = opal_installdirs_base_open())) { fprintf(stderr, "opal_installdirs_base_open() failed -- process will likely abort (%s:%d, returned %d instead of OPAL_INIT)\n", __FILE__, __LINE__, ret); return ret; } /* initialize the help system */ opal_show_help_init(); /* register handler for errnum -> string converstion */ if (OPAL_SUCCESS != (ret = opal_error_register("OPAL", OPAL_ERR_BASE, OPAL_ERR_MAX, opal_err2str))) { error = "opal_error_register"; goto return_error; } /* init the trace function */ opal_trace_init(); /* keyval lex-based parser */ if (OPAL_SUCCESS != (ret = opal_util_keyval_parse_init())) { error = "opal_util_keyval_parse_init"; goto return_error; } if (OPAL_SUCCESS != (ret = opal_net_init())) { error = "opal_net_init"; goto return_error; } /* Setup the parameter system */ if (OPAL_SUCCESS != (ret = mca_base_param_init())) { error = "mca_base_param_init"; goto return_error; } /* register params for opal */ if (OPAL_SUCCESS != (ret = opal_register_params())) { error = "opal_register_params"; goto return_error; } /* pretty-print stack handlers */ if (OPAL_SUCCESS != (ret = opal_util_register_stackhandlers())) { error = "opal_util_register_stackhandlers"; goto return_error; } if (OPAL_SUCCESS != (ret = opal_util_init_sys_limits())) { error = "opal_util_init_sys_limits"; goto return_error; } /* initialize the datatype engine */ if (OPAL_SUCCESS != (ret = opal_datatype_init ())) { error = "opal_datatype_init"; goto return_error; } /* Initialize the data storage service. */ if (OPAL_SUCCESS != (ret = opal_dss_open())) { error = "opal_dss_open"; goto return_error; } return OPAL_SUCCESS; return_error: opal_show_help( "help-opal-runtime.txt", "opal_init:startup:internal-failure", true, error, ret ); return ret; }
int opal_init_test(void) { int ret; char *error; /* initialize the memory allocator */ opal_malloc_init(); /* initialize the output system */ opal_output_init(); /* initialize install dirs code */ if (OPAL_SUCCESS != (ret = mca_base_framework_open(&opal_installdirs_base_framework, 0))) { fprintf(stderr, "opal_installdirs_base_open() failed -- process will likely abort (%s:%d, returned %d instead of OPAL_SUCCESS)\n", __FILE__, __LINE__, ret); return ret; } /* initialize the help system */ opal_show_help_init(); /* register handler for errnum -> string converstion */ if (OPAL_SUCCESS != (ret = opal_error_register("OPAL", OPAL_ERR_BASE, OPAL_ERR_MAX, opal_err2str))) { error = "opal_error_register"; goto return_error; } /* keyval lex-based parser */ if (OPAL_SUCCESS != (ret = opal_util_keyval_parse_init())) { error = "opal_util_keyval_parse_init"; goto return_error; } if (OPAL_SUCCESS != (ret = opal_net_init())) { error = "opal_net_init"; goto return_error; } /* Setup the parameter system */ if (OPAL_SUCCESS != (ret = mca_base_var_init())) { error = "mca_base_var_init"; goto return_error; } /* register params for opal */ if (OPAL_SUCCESS != (ret = opal_register_params())) { error = "opal_register_params"; goto return_error; } /* pretty-print stack handlers */ if (OPAL_SUCCESS != (ret = opal_util_register_stackhandlers())) { error = "opal_util_register_stackhandlers"; goto return_error; } /* Initialize the data storage service. */ if (OPAL_SUCCESS != (ret = opal_dss_open())) { error = "opal_dss_open"; goto return_error; } /* initialize the mca */ if (OPAL_SUCCESS != (ret = mca_base_open())) { error = "mca_base_open"; goto return_error; } if (OPAL_SUCCESS != (ret = mca_base_framework_register(&opal_event_base_framework, 0))) { error = "opal_event_register"; goto return_error; } return OPAL_SUCCESS; return_error: opal_show_help( "help-opal-runtime.txt", "opal_init:startup:internal-failure", true, error, ret ); return ret; }
int opal_init_util(int* pargc, char*** pargv) { int ret; char *error = NULL; if( ++opal_util_initialized != 1 ) { if( opal_util_initialized < 1 ) { return OPAL_ERROR; } return OPAL_SUCCESS; } /* initialize the memory allocator */ opal_malloc_init(); /* initialize the output system */ opal_output_init(); /* initialize install dirs code */ if (OPAL_SUCCESS != (ret = mca_base_framework_open(&opal_installdirs_base_framework, 0))) { fprintf(stderr, "opal_installdirs_base_open() failed -- process will likely abort (%s:%d, returned %d instead of OPAL_SUCCESS)\n", __FILE__, __LINE__, ret); return ret; } /* initialize the help system */ opal_show_help_init(); /* register handler for errnum -> string converstion */ if (OPAL_SUCCESS != (ret = opal_error_register("OPAL", OPAL_ERR_BASE, OPAL_ERR_MAX, opal_err2str))) { error = "opal_error_register"; goto return_error; } /* keyval lex-based parser */ if (OPAL_SUCCESS != (ret = opal_util_keyval_parse_init())) { error = "opal_util_keyval_parse_init"; goto return_error; } if (OPAL_SUCCESS != (ret = opal_net_init())) { error = "opal_net_init"; goto return_error; } /* Setup the parameter system */ if (OPAL_SUCCESS != (ret = mca_base_var_init())) { error = "mca_base_var_init"; goto return_error; } /* register params for opal */ if (OPAL_SUCCESS != (ret = opal_register_params())) { error = "opal_register_params"; goto return_error; } /* pretty-print stack handlers */ if (OPAL_SUCCESS != (ret = opal_util_register_stackhandlers())) { error = "opal_util_register_stackhandlers"; goto return_error; } /* set system resource limits - internally protected against * doing so twice in cases where the launch agent did it for us */ if (OPAL_SUCCESS != (ret = opal_util_init_sys_limits(&error))) { opal_show_help("help-opal-runtime.txt", "opal_init:syslimit", false, error); return OPAL_ERR_SILENT; } /* initialize the arch string */ if (OPAL_SUCCESS != (ret = opal_arch_init ())) { error = "opal_arch_init"; goto return_error; } /* initialize the datatype engine */ if (OPAL_SUCCESS != (ret = opal_datatype_init ())) { error = "opal_datatype_init"; goto return_error; } /* Initialize the data storage service. */ if (OPAL_SUCCESS != (ret = opal_dss_open())) { error = "opal_dss_open"; goto return_error; } return OPAL_SUCCESS; return_error: if (OPAL_ERR_SILENT != ret) { opal_show_help( "help-opal-runtime.txt", "opal_init:startup:internal-failure", true, error, ret ); } return ret; }
int opal_init_util(int* pargc, char*** pargv) { int ret; char *error = NULL; char hostname[512]; if( ++opal_util_initialized != 1 ) { if( opal_util_initialized < 1 ) { return OPAL_ERROR; } return OPAL_SUCCESS; } #if OPAL_NO_LIB_DESTRUCTOR if (opal_init_called) { /* can't use show_help here */ fprintf (stderr, "opal_init_util: attempted to initialize after finalize without compiler " "support for either __attribute__(destructor) or linker support for -fini -- process " "will likely abort\n"); return OPAL_ERR_NOT_SUPPORTED; } #endif opal_init_called = true; /* set the nodename right away so anyone who needs it has it. Note * that we don't bother with fqdn and prefix issues here - we let * the RTE later replace this with a modified name if the user * requests it */ gethostname(hostname, 512); opal_process_info.nodename = strdup(hostname); /* initialize the memory allocator */ opal_malloc_init(); /* initialize the output system */ opal_output_init(); /* initialize install dirs code */ if (OPAL_SUCCESS != (ret = mca_base_framework_open(&opal_installdirs_base_framework, 0))) { fprintf(stderr, "opal_installdirs_base_open() failed -- process will likely abort (%s:%d, returned %d instead of OPAL_SUCCESS)\n", __FILE__, __LINE__, ret); return ret; } /* initialize the help system */ opal_show_help_init(); /* register handler for errnum -> string converstion */ if (OPAL_SUCCESS != (ret = opal_error_register("OPAL", OPAL_ERR_BASE, OPAL_ERR_MAX, opal_err2str))) { error = "opal_error_register"; goto return_error; } /* keyval lex-based parser */ if (OPAL_SUCCESS != (ret = opal_util_keyval_parse_init())) { error = "opal_util_keyval_parse_init"; goto return_error; } /* Setup the parameter system */ if (OPAL_SUCCESS != (ret = mca_base_var_init())) { error = "mca_base_var_init"; goto return_error; } /* register params for opal */ if (OPAL_SUCCESS != (ret = opal_register_params())) { error = "opal_register_params"; goto return_error; } if (OPAL_SUCCESS != (ret = opal_net_init())) { error = "opal_net_init"; goto return_error; } /* pretty-print stack handlers */ if (OPAL_SUCCESS != (ret = opal_util_register_stackhandlers())) { error = "opal_util_register_stackhandlers"; goto return_error; } /* set system resource limits - internally protected against * doing so twice in cases where the launch agent did it for us */ if (OPAL_SUCCESS != (ret = opal_util_init_sys_limits(&error))) { opal_show_help("help-opal-runtime.txt", "opal_init:syslimit", false, error); return OPAL_ERR_SILENT; } /* initialize the arch string */ if (OPAL_SUCCESS != (ret = opal_arch_init ())) { error = "opal_arch_init"; goto return_error; } /* initialize the datatype engine */ if (OPAL_SUCCESS != (ret = opal_datatype_init ())) { error = "opal_datatype_init"; goto return_error; } /* Initialize the data storage service. */ if (OPAL_SUCCESS != (ret = opal_dss_open())) { error = "opal_dss_open"; goto return_error; } /* initialize the mca */ if (OPAL_SUCCESS != (ret = mca_base_open())) { error = "mca_base_open"; goto return_error; } return OPAL_SUCCESS; return_error: if (OPAL_ERR_SILENT != ret) { opal_show_help( "help-opal-runtime.txt", "opal_init:startup:internal-failure", true, error, ret ); } return ret; }
int opal_init_util(int* pargc, char*** pargv) { int ret; char *error = NULL; char hostname[OPAL_MAXHOSTNAMELEN]; OPAL_TIMING_ENV_INIT(otmng); if( ++opal_util_initialized != 1 ) { if( opal_util_initialized < 1 ) { return OPAL_ERROR; } return OPAL_SUCCESS; } OBJ_CONSTRUCT(&opal_init_util_domain, opal_finalize_domain_t); (void) opal_finalize_domain_init (&opal_init_util_domain, "opal_init_util"); opal_finalize_set_domain (&opal_init_util_domain); opal_thread_set_main(); opal_init_called = true; /* register for */ opal_finalize_register_cleanup_arg (mca_base_framework_close_list, opal_init_util_frameworks); /* set the nodename right away so anyone who needs it has it. Note * that we don't bother with fqdn and prefix issues here - we let * the RTE later replace this with a modified name if the user * requests it */ gethostname(hostname, sizeof(hostname)); opal_process_info.nodename = strdup(hostname); /* initialize the memory allocator */ opal_malloc_init(); OPAL_TIMING_ENV_NEXT(otmng, "opal_malloc_init"); /* initialize the output system */ opal_output_init(); /* initialize install dirs code */ if (OPAL_SUCCESS != (ret = mca_base_framework_open(&opal_installdirs_base_framework, 0))) { fprintf(stderr, "opal_installdirs_base_open() failed -- process will likely abort (%s:%d, returned %d instead of OPAL_SUCCESS)\n", __FILE__, __LINE__, ret); return ret; } /* initialize the help system */ opal_show_help_init(); OPAL_TIMING_ENV_NEXT(otmng, "opal_show_help_init"); /* register handler for errnum -> string converstion */ if (OPAL_SUCCESS != (ret = opal_error_register("OPAL", OPAL_ERR_BASE, OPAL_ERR_MAX, opal_err2str))) { return opal_init_error ("opal_error_register", ret); } /* keyval lex-based parser */ if (OPAL_SUCCESS != (ret = opal_util_keyval_parse_init())) { return opal_init_error ("opal_util_keyval_parse_init", ret); } // Disable PSM signal hijacking (see comment in function for more // details) opal_init_psm(); OPAL_TIMING_ENV_NEXT(otmng, "opal_init_psm"); /* Setup the parameter system */ if (OPAL_SUCCESS != (ret = mca_base_var_init())) { return opal_init_error ("mca_base_var_init", ret); } OPAL_TIMING_ENV_NEXT(otmng, "opal_var_init"); /* read any param files that were provided */ if (OPAL_SUCCESS != (ret = mca_base_var_cache_files(false))) { return opal_init_error ("failed to cache files", ret); } OPAL_TIMING_ENV_NEXT(otmng, "opal_var_cache"); /* register params for opal */ if (OPAL_SUCCESS != (ret = opal_register_params())) { return opal_init_error ("opal_register_params", ret); } if (OPAL_SUCCESS != (ret = opal_net_init())) { return opal_init_error ("opal_net_init", ret); } OPAL_TIMING_ENV_NEXT(otmng, "opal_net_init"); /* pretty-print stack handlers */ if (OPAL_SUCCESS != (ret = opal_util_register_stackhandlers())) { return opal_init_error ("opal_util_register_stackhandlers", ret); } /* set system resource limits - internally protected against * doing so twice in cases where the launch agent did it for us */ if (OPAL_SUCCESS != (ret = opal_util_init_sys_limits(&error))) { opal_show_help("help-opal-runtime.txt", "opal_init:syslimit", false, error); return OPAL_ERR_SILENT; } /* initialize the arch string */ if (OPAL_SUCCESS != (ret = opal_arch_init ())) { return opal_init_error ("opal_arch_init", ret); } OPAL_TIMING_ENV_NEXT(otmng, "opal_arch_init"); /* initialize the datatype engine */ if (OPAL_SUCCESS != (ret = opal_datatype_init ())) { return opal_init_error ("opal_datatype_init", ret); } OPAL_TIMING_ENV_NEXT(otmng, "opal_datatype_init"); /* Initialize the data storage service. */ if (OPAL_SUCCESS != (ret = opal_dss_open())) { return opal_init_error ("opal_dss_open", ret); } OPAL_TIMING_ENV_NEXT(otmng, "opal_dss_open"); /* initialize the mca */ if (OPAL_SUCCESS != (ret = mca_base_open())) { return opal_init_error ("mca_base_open", ret); } OPAL_TIMING_ENV_NEXT(otmng, "mca_base_open"); /* initialize if framework */ if (OPAL_SUCCESS != (ret = mca_base_framework_open(&opal_if_base_framework, 0))) { fprintf(stderr, "opal_if_base_open() failed -- process will likely abort (%s:%d, returned %d instead of OPAL_SUCCESS)\n", __FILE__, __LINE__, ret); return ret; } OPAL_TIMING_ENV_NEXT(otmng, "opal_if_init"); return OPAL_SUCCESS; }
/* * Open all MCA components so that they can register their MCA * parameters. Take a shotgun approach here and indiscriminately open * all components -- don't be selective. To this end, we need to clear * out the environment of all OMPI_MCA_<type> variables to ensure * that the open algorithms don't try to only open one component. */ void orte_info_open_components(void) { int i; char *env, *str; char *target, *save, *type; char **env_save=NULL; bool need_close_components = false; orte_info_component_map_t *map; if (opened_components) { return; } /* init the map */ OBJ_CONSTRUCT(&component_map, opal_pointer_array_t); opal_pointer_array_init(&component_map, 256, INT_MAX, 128); /* Clear out the environment. Use strdup() to orphan the resulting * strings because items are placed in the environment by reference, * not by value. */ for (i = 0; i < mca_types.size; ++i) { if (NULL == (type = (char*)opal_pointer_array_get_item(&mca_types, i))) { continue; } asprintf(&env, "OMPI_MCA_%s", type); if (NULL != (save = getenv(env))) { /* save this param so it can later be restored */ asprintf(&str, "%s=%s", env, save); opal_argv_append_nosize(&env_save, str); free(str); /* can't manipulate it directly, so make a copy first */ asprintf(&target, "%s=", env); putenv(target); free(target); } } /* some components require the event library be active, so activate it */ if (OPAL_SUCCESS != opal_event_base_open()) { str = "opal_event_base_open"; goto error; } /* Open the DSS */ if (ORTE_SUCCESS != opal_dss_open()) { str = "Unable to initialize the DSS"; goto error; } /* Open up the MCA */ if (OPAL_SUCCESS != mca_base_open()) { str = "mca_base_open failed"; goto error; } /* Register the OPAL layer's MCA parameters */ if (OPAL_SUCCESS != opal_register_params()) { str = "opal_register_params failed"; goto error; } /* Register the ORTE layer's MCA parameters */ if (ORTE_SUCCESS != orte_register_params()) { str = "orte_register_params failed"; goto error; } /* Initialize the opal_output system */ if (!opal_output_init()) { str = "opal_output_init failed"; goto error; } /* Find / open all components */ map = OBJ_NEW(orte_info_component_map_t); map->type = strdup("base"); opal_pointer_array_add(&component_map, map); /* set default error message from here forward */ str = "A component framework failed to open properly."; /* OPAL frameworks */ if (OPAL_SUCCESS != opal_backtrace_base_open()) { goto error; } map = OBJ_NEW(orte_info_component_map_t); map->type = strdup("backtrace"); map->components = &opal_backtrace_base_components_opened; opal_pointer_array_add(&component_map, map); if (OPAL_SUCCESS != opal_memory_base_open()) { goto error; } map = OBJ_NEW(orte_info_component_map_t); map->type = strdup("memory"); map->components = &opal_memory_base_components_opened; opal_pointer_array_add(&component_map, map); /* the event framework is already open - just get its components */ map = OBJ_NEW(orte_info_component_map_t); map->type = strdup("event"); map->components = &opal_event_components; opal_pointer_array_add(&component_map, map); if (OPAL_SUCCESS != opal_memchecker_base_open()) { goto error; } map = OBJ_NEW(orte_info_component_map_t); map->type = strdup("memchecker"); map->components = &opal_memchecker_base_components_opened; opal_pointer_array_add(&component_map, map); if (OPAL_SUCCESS != opal_shmem_base_open()) { goto error; } map = OBJ_NEW(orte_info_component_map_t); map->type = strdup("shmem"); map->components = &opal_shmem_base_components_opened; opal_pointer_array_add(&component_map, map); #if OPAL_HAVE_HWLOC if (OPAL_SUCCESS != opal_hwloc_base_open()) { goto error; } map = OBJ_NEW(orte_info_component_map_t); map->type = strdup("hwloc"); map->components = &opal_hwloc_base_components; opal_pointer_array_add(&component_map, map); #endif if (OPAL_SUCCESS != opal_timer_base_open()) { goto error; } map = OBJ_NEW(orte_info_component_map_t); map->type = strdup("timer"); map->components = &opal_timer_base_components_opened; opal_pointer_array_add(&component_map, map); #if OPAL_ENABLE_FT_CR == 1 if (OPAL_SUCCESS != opal_crs_base_open()) { goto error; } map = OBJ_NEW(orte_info_component_map_t); map->type = strdup("crs"); map->components = &opal_crs_base_components_available; opal_pointer_array_add(&component_map, map); #endif if (OPAL_SUCCESS != opal_if_base_open()) { goto error; } map = OBJ_NEW(orte_info_component_map_t); map->type = strdup("if"); map->components = &opal_if_components; opal_pointer_array_add(&component_map, map); /* OPAL's installdirs base open has already been called as part of * opal_init_util() back in main(). */ map = OBJ_NEW(orte_info_component_map_t); map->type = strdup("installdirs"); map->components = &opal_installdirs_components; opal_pointer_array_add(&component_map, map); /* ORTE frameworks * Set orte_process_info.proc_type to HNP to force all frameworks to * open components */ orte_process_info.proc_type = ORTE_PROC_HNP; if (ORTE_SUCCESS != orte_state_base_open()) { goto error; } map = OBJ_NEW(orte_info_component_map_t); map->type = strdup("state"); map->components = &orte_state_base_components_available; opal_pointer_array_add(&component_map, map); if (ORTE_SUCCESS != orte_errmgr_base_open()) { goto error; } map = OBJ_NEW(orte_info_component_map_t); map->type = strdup("errmgr"); map->components = &orte_errmgr_base_components_available; opal_pointer_array_add(&component_map, map); if (ORTE_SUCCESS != orte_grpcomm_base_open()) { goto error; } map = OBJ_NEW(orte_info_component_map_t); map->type = strdup("grpcomm"); map->components = &orte_grpcomm_base.components_available; opal_pointer_array_add(&component_map, map); if (ORTE_SUCCESS != orte_db_base_open()) { goto error; } map = OBJ_NEW(orte_info_component_map_t); map->type = strdup("db"); map->components = &orte_db_base.available_components; opal_pointer_array_add(&component_map, map); if (ORTE_SUCCESS != orte_ess_base_open()) { goto error; } map = OBJ_NEW(orte_info_component_map_t); map->type = strdup("ess"); map->components = &orte_ess_base_components_available; opal_pointer_array_add(&component_map, map); #if !ORTE_DISABLE_FULL_SUPPORT if (ORTE_SUCCESS != mca_oob_base_open()) { goto error; } map = OBJ_NEW(orte_info_component_map_t); map->type = strdup("oob"); map->components = &mca_oob_base_components; opal_pointer_array_add(&component_map, map); if (ORTE_SUCCESS != orte_odls_base_open()) { goto error; } map = OBJ_NEW(orte_info_component_map_t); map->type = strdup("odls"); map->components = &orte_odls_base.available_components; opal_pointer_array_add(&component_map, map); if (ORTE_SUCCESS != orte_iof_base_open()) { goto error; } map = OBJ_NEW(orte_info_component_map_t); map->type = strdup("iof"); map->components = &orte_iof_base.iof_components_opened; opal_pointer_array_add(&component_map, map); if (ORTE_SUCCESS != orte_ras_base_open()) { goto error; } map = OBJ_NEW(orte_info_component_map_t); map->type = strdup("ras"); map->components = &orte_ras_base.ras_opened; opal_pointer_array_add(&component_map, map); if (ORTE_SUCCESS != orte_rmaps_base_open()) { goto error; } map = OBJ_NEW(orte_info_component_map_t); map->type = strdup("rmaps"); map->components = &orte_rmaps_base.available_components; opal_pointer_array_add(&component_map, map); if (ORTE_SUCCESS != orte_rml_base_open()) { goto error; } map = OBJ_NEW(orte_info_component_map_t); map->type = strdup("rml"); map->components = &orte_rml_base_components; opal_pointer_array_add(&component_map, map); if (ORTE_SUCCESS != orte_routed_base_open()) { goto error; } map = OBJ_NEW(orte_info_component_map_t); map->type = strdup("routed"); map->components = &orte_routed_base_components; opal_pointer_array_add(&component_map, map); if (ORTE_SUCCESS != orte_plm_base_open()) { goto error; } map = OBJ_NEW(orte_info_component_map_t); map->type = strdup("plm"); map->components = &orte_plm_base.available_components; opal_pointer_array_add(&component_map, map); #if OPAL_ENABLE_FT_CR == 1 if (ORTE_SUCCESS != orte_snapc_base_open()) { goto error; } map = OBJ_NEW(orte_info_component_map_t); map->type = strdup("snapc"); map->components = &orte_snapc_base_components_available; opal_pointer_array_add(&component_map, map); #endif if (ORTE_SUCCESS != orte_sensor_base_open()) { goto error; } map = OBJ_NEW(orte_info_component_map_t); map->type = strdup("sensor"); map->components = &mca_sensor_base_components_available; opal_pointer_array_add(&component_map, map); if (ORTE_SUCCESS != orte_filem_base_open()) { goto error; } map = OBJ_NEW(orte_info_component_map_t); map->type = strdup("filem"); map->components = &orte_filem_base_components_available; opal_pointer_array_add(&component_map, map); #endif /* flag that we need to close components */ need_close_components = true; /* Restore the environment to what it was before we started so that * if users setenv OMPI_MCA_<framework name> to some value, they'll * see that value when it is shown via --param output. */ if (NULL != env_save) { for (i = 0; i < opal_argv_count(env_save); ++i) { putenv(env_save[i]); } } /* All done */ opened_components = true; return; error: fprintf(stderr, "%s\n", str); fprintf(stderr, "orte-info will likely not display all configuration information\n"); if (need_close_components) { opened_components = true; orte_info_close_components(); } }