void orcm_info_show_mca_params(const char *type, const char *component, bool want_internal) { const mca_base_var_group_t *group; int ret; if (0 == strcmp (component, "all")) { ret = mca_base_var_group_find("*", type, NULL); if (0 > ret) { return; } (void) mca_base_var_group_get(ret, &group); if (NULL != group) { orcm_info_show_mca_group_params(group, want_internal); } } else { ret = mca_base_var_group_find("*", type, component); if (0 > ret) { return; } (void) mca_base_var_group_get(ret, &group); if (NULL != group) { orcm_info_show_mca_group_params(group, want_internal); } } }
int MPI_T_category_get_cvars(int cat_index, int len, int indices[]) { const mca_base_var_group_t *group; int rc = MPI_SUCCESS; const int *vars; int i, size; if (!mpit_is_initialized ()) { return MPI_T_ERR_NOT_INITIALIZED; } ompi_mpit_lock (); do { rc = mca_base_var_group_get (cat_index, &group); if (0 > rc) { rc = (OPAL_ERR_NOT_FOUND == rc) ? MPI_T_ERR_INVALID_INDEX : MPI_ERR_OTHER; break; } size = opal_value_array_get_size((opal_value_array_t *) &group->group_vars); vars = OPAL_VALUE_ARRAY_GET_BASE(&group->group_vars, int); for (i = 0 ; i < len && i < size ; ++i) { indices[i] = vars[i]; } } while (0); ompi_mpit_unlock (); return rc; }
static void orcm_info_show_mca_group_params(const mca_base_var_group_t *group, bool want_internal) { const mca_base_var_t *var; const int *variables; int ret, i, j, count; const int *groups; char **strings; variables = OPAL_VALUE_ARRAY_GET_BASE(&group->group_vars, const int); count = opal_value_array_get_size((opal_value_array_t *)&group->group_vars); for (i = 0 ; i < count ; ++i) { ret = mca_base_var_get(variables[i], &var); if (OPAL_SUCCESS != ret || ((var->mbv_flags & MCA_BASE_VAR_FLAG_INTERNAL) && !want_internal)) { continue; } ret = mca_base_var_dump(variables[i], &strings, !orcm_info_pretty ? MCA_BASE_VAR_DUMP_PARSABLE : MCA_BASE_VAR_DUMP_READABLE); if (OPAL_SUCCESS != ret) { continue; } for (j = 0 ; strings[j] ; ++j) { if (0 == j && orcm_info_pretty) { char *message; asprintf (&message, "MCA %s", group->group_framework); orcm_info_out(message, message, strings[j]); free(message); } else { orcm_info_out("", "", strings[j]); } free(strings[j]); } free(strings); } groups = OPAL_VALUE_ARRAY_GET_BASE(&group->group_subgroups, const int); count = opal_value_array_get_size((opal_value_array_t *)&group->group_subgroups); for (i = 0 ; i < count ; ++i) { ret = mca_base_var_group_get(groups[i], &group); if (OPAL_SUCCESS != ret) { continue; } orcm_info_show_mca_group_params(group, want_internal); } }