1
1

Fix a couple issues with the mca_base_var system:

- Use ->boolval for booleans when creating a string.
 - Solaris has some issue with the ?: used in one of find functions. Use an if instead.
 - Change all instances of index -> vari to avoid issues with redefining index.

cmr=v1.7.4:reviewer=jsquyres

This commit was SVN r29997.
Этот коммит содержится в:
Nathan Hjelm 2013-12-19 23:28:17 +00:00
родитель ee9cd13b90
Коммит 653babc737
2 изменённых файлов: 51 добавлений и 41 удалений

Просмотреть файл

@ -131,7 +131,7 @@ static int fixup_files(char **file_list, char * path, bool rel_path_search);
static int read_files (char *file_list, opal_list_t *file_values); static int read_files (char *file_list, opal_list_t *file_values);
static int mca_base_var_cache_files (bool rel_path_search); static int mca_base_var_cache_files (bool rel_path_search);
static int var_set_initial (mca_base_var_t *var); static int var_set_initial (mca_base_var_t *var);
static int var_get (int index, mca_base_var_t **var_out, bool original); static int var_get (int vari, mca_base_var_t **var_out, bool original);
static int var_value_string (mca_base_var_t *var, char **value_string); static int var_value_string (mca_base_var_t *var, char **value_string);
/* /*
@ -420,7 +420,7 @@ static int mca_base_var_cache_files(bool rel_path_search)
/* /*
* Look up an integer MCA parameter. * Look up an integer MCA parameter.
*/ */
int mca_base_var_get_value (int index, const void *value, int mca_base_var_get_value (int vari, const void *value,
mca_base_var_source_t *source, mca_base_var_source_t *source,
const char **source_file) const char **source_file)
{ {
@ -428,7 +428,7 @@ int mca_base_var_get_value (int index, const void *value,
void **tmp = (void **) value; void **tmp = (void **) value;
int ret; int ret;
ret = var_get (index, &var, true); ret = var_get (vari, &var, true);
if (OPAL_SUCCESS != ret) { if (OPAL_SUCCESS != ret) {
return ret; return ret;
} }
@ -623,13 +623,13 @@ static int var_set_from_string (mca_base_var_t *var, char *src)
/* /*
* Set a variable * Set a variable
*/ */
int mca_base_var_set_value (int index, const void *value, size_t size, mca_base_var_source_t source, int mca_base_var_set_value (int vari, const void *value, size_t size, mca_base_var_source_t source,
const char *source_file) const char *source_file)
{ {
mca_base_var_t *var; mca_base_var_t *var;
int ret; int ret;
ret = var_get (index, &var, true); ret = var_get (vari, &var, true);
if (OPAL_SUCCESS != ret) { if (OPAL_SUCCESS != ret) {
return ret; return ret;
} }
@ -669,12 +669,12 @@ int mca_base_var_set_value (int index, const void *value, size_t size, mca_base_
/* /*
* Deregister a parameter * Deregister a parameter
*/ */
int mca_base_var_deregister(int index) int mca_base_var_deregister(int vari)
{ {
mca_base_var_t *var; mca_base_var_t *var;
int ret; int ret;
ret = var_get (index, &var, false); ret = var_get (vari, &var, false);
if (OPAL_SUCCESS != ret) { if (OPAL_SUCCESS != ret) {
return ret; return ret;
} }
@ -708,7 +708,7 @@ int mca_base_var_deregister(int index)
return OPAL_SUCCESS; return OPAL_SUCCESS;
} }
static int var_get (int index, mca_base_var_t **var_out, bool original) static int var_get (int vari, mca_base_var_t **var_out, bool original)
{ {
mca_base_var_t *var; mca_base_var_t *var;
@ -721,11 +721,11 @@ static int var_get (int index, mca_base_var_t **var_out, bool original)
return OPAL_ERROR; return OPAL_ERROR;
} }
if (index < 0) { if (vari < 0) {
return OPAL_ERR_BAD_PARAM; return OPAL_ERR_BAD_PARAM;
} }
var = opal_pointer_array_get_item (&mca_base_vars, index); var = opal_pointer_array_get_item (&mca_base_vars, vari);
if (NULL == var) { if (NULL == var) {
return OPAL_ERR_BAD_PARAM; return OPAL_ERR_BAD_PARAM;
} }
@ -759,7 +759,7 @@ int mca_base_var_env_name(const char *param_name,
/* /*
* Find the index for an MCA parameter based on its names. * Find the index for an MCA parameter based on its names.
*/ */
static int var_find_by_name (const char *full_name, int *index, bool invalidok) static int var_find_by_name (const char *full_name, int *vari, bool invalidok)
{ {
mca_base_var_t *var; mca_base_var_t *var;
void *tmp; void *tmp;
@ -774,7 +774,7 @@ static int var_find_by_name (const char *full_name, int *index, bool invalidok)
(void) var_get ((int)(uintptr_t) tmp, &var, false); (void) var_get ((int)(uintptr_t) tmp, &var, false);
if (invalidok || VAR_IS_VALID(var[0])) { if (invalidok || VAR_IS_VALID(var[0])) {
*index = (int)(uintptr_t) tmp; *vari = (int)(uintptr_t) tmp;
return OPAL_SUCCESS; return OPAL_SUCCESS;
} }
@ -786,7 +786,7 @@ static int var_find (const char *project_name, const char *framework_name,
bool invalidok) bool invalidok)
{ {
char *full_name; char *full_name;
int ret, index; int ret, vari;
ret = mca_base_var_generate_full_name4 (NULL, framework_name, component_name, ret = mca_base_var_generate_full_name4 (NULL, framework_name, component_name,
variable_name, &full_name); variable_name, &full_name);
@ -794,12 +794,17 @@ static int var_find (const char *project_name, const char *framework_name,
return OPAL_ERROR; return OPAL_ERROR;
} }
ret = var_find_by_name(full_name, &index, invalidok); ret = var_find_by_name(full_name, &vari, invalidok);
/* NTH: should we verify the name components match? */ /* NTH: should we verify the name components match? */
free (full_name); free (full_name);
return (OPAL_SUCCESS != ret) ? ret : index;
if (OPAL_SUCCESS != ret) {
return ret;
}
return vari;
} }
/* /*
@ -814,17 +819,17 @@ int mca_base_var_find (const char *project_name, const char *framework_name,
/* /*
* Find the index for an MCA parameter based on full name. * Find the index for an MCA parameter based on full name.
*/ */
int mca_base_var_find_by_name (const char *full_name, int *index) int mca_base_var_find_by_name (const char *full_name, int *vari)
{ {
return var_find_by_name (full_name, index, false); return var_find_by_name (full_name, vari, false);
} }
int mca_base_var_set_flag (int index, mca_base_var_flag_t flag, bool set) int mca_base_var_set_flag (int vari, mca_base_var_flag_t flag, bool set)
{ {
mca_base_var_t *var; mca_base_var_t *var;
int ret; int ret;
ret = var_get (index, &var, true); ret = var_get (vari, &var, true);
if (OPAL_SUCCESS != ret || VAR_IS_SYNONYM(var[0])) { if (OPAL_SUCCESS != ret || VAR_IS_SYNONYM(var[0])) {
return OPAL_ERR_BAD_PARAM; return OPAL_ERR_BAD_PARAM;
} }
@ -838,9 +843,9 @@ int mca_base_var_set_flag (int index, mca_base_var_flag_t flag, bool set)
/* /*
* Return info on a parameter at an index * Return info on a parameter at an index
*/ */
int mca_base_var_get (int index, const mca_base_var_t **var) int mca_base_var_get (int vari, const mca_base_var_t **var)
{ {
return var_get (index, (mca_base_var_t **) var, false); return var_get (vari, (mca_base_var_t **) var, false);
} }
/* /*
@ -1682,7 +1687,12 @@ static int var_value_string (mca_base_var_t *var, char **value_string)
ret = (0 > ret) ? OPAL_ERR_OUT_OF_RESOURCE : OPAL_SUCCESS; ret = (0 > ret) ? OPAL_ERR_OUT_OF_RESOURCE : OPAL_SUCCESS;
} else { } else {
ret = var->mbv_enumerator->string_from_value(var->mbv_enumerator, value->intval, &tmp); /* we use an enumerator to handle string->bool and bool->string conversion */
if (MCA_BASE_VAR_TYPE_BOOL == var->mbv_type) {
ret = var->mbv_enumerator->string_from_value(var->mbv_enumerator, value->boolval, &tmp);
} else {
ret = var->mbv_enumerator->string_from_value(var->mbv_enumerator, value->intval, &tmp);
}
*value_string = strdup (tmp); *value_string = strdup (tmp);
if (NULL == value_string) { if (NULL == value_string) {
@ -1752,7 +1762,7 @@ int mca_base_var_get_count (void)
return mca_base_var_count; return mca_base_var_count;
} }
int mca_base_var_dump(int index, char ***out, mca_base_var_dump_type_t output_type) int mca_base_var_dump(int vari, char ***out, mca_base_var_dump_type_t output_type)
{ {
const char *framework, *component, *full_name; const char *framework, *component, *full_name;
int i, line_count, line = 0, enum_count = 0; int i, line_count, line = 0, enum_count = 0;
@ -1761,7 +1771,7 @@ int mca_base_var_dump(int index, char ***out, mca_base_var_dump_type_t output_ty
mca_base_var_t *var, *original=NULL; mca_base_var_t *var, *original=NULL;
mca_base_var_group_t *group; mca_base_var_group_t *group;
ret = var_get(index, &var, false); ret = var_get(vari, &var, false);
if (OPAL_SUCCESS != ret) { if (OPAL_SUCCESS != ret) {
return ret; return ret;
} }

Просмотреть файл

@ -473,22 +473,22 @@ OPAL_DECLSPEC int mca_base_var_register_synonym (int synonym_for, const char *pr
/** /**
* Deregister a MCA variable or synonym * Deregister a MCA variable or synonym
* *
* @param index Index returned from mca_base_var_register() or * @param vari Index returned from mca_base_var_register() or
* mca_base_var_register_synonym(). * mca_base_var_register_synonym().
* *
* Deregistering a variable does not free the index or any memory assoicated * Deregistering a variable does not free the variable or any memory assoicated
* with the variable. All memory will be freed and the index released when * with it. All memory will be freed and the variable index released when
* mca_base_var_finalize() is called. * mca_base_var_finalize() is called.
* *
* If an enumerator is associated with this variable it will be dereferenced. * If an enumerator is associated with this variable it will be dereferenced.
*/ */
OPAL_DECLSPEC int mca_base_var_deregister(int index); OPAL_DECLSPEC int mca_base_var_deregister(int vari);
/** /**
* Get the current value of an MCA variable. * Get the current value of an MCA variable.
* *
* @param[in] index Index of variable * @param[in] vari Index of variable
* @param[in,out] value Pointer to copy the value to. Can be NULL. * @param[in,out] value Pointer to copy the value to. Can be NULL.
* @param[in,out] value_size Size of memory pointed to by value. * @param[in,out] value_size Size of memory pointed to by value.
* copied size will be returned in value_size. * copied size will be returned in value_size.
@ -505,14 +505,14 @@ OPAL_DECLSPEC int mca_base_var_deregister(int index);
* Note: The value can be changed by the registering code without using * Note: The value can be changed by the registering code without using
* the mca_base_var_* interface so the source may be incorrect. * the mca_base_var_* interface so the source may be incorrect.
*/ */
OPAL_DECLSPEC int mca_base_var_get_value (int index, const void *value, OPAL_DECLSPEC int mca_base_var_get_value (int vari, const void *value,
mca_base_var_source_t *source, mca_base_var_source_t *source,
const char **source_file); const char **source_file);
/** /**
* Sets an "override" value for an integer MCA variable. * Sets an "override" value for an integer MCA variable.
* *
* @param[in] index Index of MCA variable to set * @param[in] vari Index of MCA variable to set
* @param[in] value Pointer to the value to set. Should point to * @param[in] value Pointer to the value to set. Should point to
* a char * for string variables or a int * for integer variables. * a char * for string variables or a int * for integer variables.
* @param[in] size Size of value. * @param[in] size Size of value.
@ -530,7 +530,7 @@ OPAL_DECLSPEC int mca_base_var_get_value (int index, const void *value,
* a synonym the variable the synonym represents) if the value is * a synonym the variable the synonym represents) if the value is
* settable. * settable.
*/ */
OPAL_DECLSPEC int mca_base_var_set_value (int index, const void *value, size_t size, OPAL_DECLSPEC int mca_base_var_set_value (int vari, const void *value, size_t size,
mca_base_var_source_t source, mca_base_var_source_t source,
const char *source_file); const char *source_file);
@ -559,7 +559,7 @@ OPAL_DECLSPEC int mca_base_var_env_name(const char *param_name,
* @param param_name Name of the variable. * @param param_name Name of the variable.
* *
* @retval OPAL_ERROR If the variable was not found. * @retval OPAL_ERROR If the variable was not found.
* @retval index If the variable was found. * @retval vari If the variable was found.
* *
* It is not always convenient to widely propagate a variable's index * It is not always convenient to widely propagate a variable's index
* value, or it may be necessary to look up the variable from a * value, or it may be necessary to look up the variable from a
@ -576,11 +576,11 @@ OPAL_DECLSPEC int mca_base_var_find (const char *project_name,
* Find the index for a variable based on its full name * Find the index for a variable based on its full name
* *
* @param full_name [in] Full name of the variable * @param full_name [in] Full name of the variable
* @param index [out] Index of the variable * @param vari [out] Index of the variable
* *
* See mca_base_var_find(). * See mca_base_var_find().
*/ */
OPAL_DECLSPEC int mca_base_var_find_by_name (const char *full_name, int *index); OPAL_DECLSPEC int mca_base_var_find_by_name (const char *full_name, int *vari);
/** /**
* Check that two MCA variables were not both set to non-default * Check that two MCA variables were not both set to non-default
@ -621,7 +621,7 @@ OPAL_DECLSPEC int mca_base_var_check_exclusive (const char *project,
/** /**
* Set or unset a flag on a variable. * Set or unset a flag on a variable.
* *
* @param[in] index Index of variable * @param[in] vari Index of variable
* @param[in] flag Flag(s) to set or unset. * @param[in] flag Flag(s) to set or unset.
* @param[in] set Boolean indicating whether to set flag(s). * @param[in] set Boolean indicating whether to set flag(s).
* *
@ -629,13 +629,13 @@ OPAL_DECLSPEC int mca_base_var_check_exclusive (const char *project,
* @returns OPAL_ERR_BAD_PARAM If the variable is not registered. * @returns OPAL_ERR_BAD_PARAM If the variable is not registered.
* @returns OPAL_ERROR Otherwise * @returns OPAL_ERROR Otherwise
*/ */
OPAL_DECLSPEC int mca_base_var_set_flag(int index, mca_base_var_flag_t flag, OPAL_DECLSPEC int mca_base_var_set_flag(int vari, mca_base_var_flag_t flag,
bool set); bool set);
/** /**
* Obtain basic info on a single variable (name, help message, etc) * Obtain basic info on a single variable (name, help message, etc)
* *
* @param[in] index Valid variable index. * @param[in] vari Valid variable index.
* @param[out] var Storage for the variable pointer. * @param[out] var Storage for the variable pointer.
* *
* @retval OPAL_SUCCESS Upon success. * @retval OPAL_SUCCESS Upon success.
@ -644,7 +644,7 @@ OPAL_DECLSPEC int mca_base_var_set_flag(int index, mca_base_var_flag_t flag,
* The returned pointer belongs to the MCA variable system. Do not * The returned pointer belongs to the MCA variable system. Do not
* modify/free/retain the pointer. * modify/free/retain the pointer.
*/ */
OPAL_DECLSPEC int mca_base_var_get (int index, const mca_base_var_t **var); OPAL_DECLSPEC int mca_base_var_get (int vari, const mca_base_var_t **var);
/** /**
* Obtain the number of variables that have been registered. * Obtain the number of variables that have been registered.
@ -707,14 +707,14 @@ typedef enum {
/** /**
* Dump strings describing the MCA variable at an index. * Dump strings describing the MCA variable at an index.
* *
* @param[in] index Variable index * @param[in] vari Variable index
* @param[out] out Array of strings describing this variable * @param[out] out Array of strings describing this variable
* @param[in] output_type Type of output desired * @param[in] output_type Type of output desired
* *
* This function returns an array of strings describing the variable. All strings * This function returns an array of strings describing the variable. All strings
* and the array must be freed by the caller. * and the array must be freed by the caller.
*/ */
OPAL_DECLSPEC int mca_base_var_dump(int index, char ***out, mca_base_var_dump_type_t output_type); OPAL_DECLSPEC int mca_base_var_dump(int vari, char ***out, mca_base_var_dump_type_t output_type);
END_C_DECLS END_C_DECLS