More progess on the MCA parameter registry
This commit was SVN r255.
Этот коммит содержится в:
родитель
05724a0cab
Коммит
4b8d0bf4e8
81
src/mca/lam/base/mca_lam_param.h
Обычный файл
81
src/mca/lam/base/mca_lam_param.h
Обычный файл
@ -0,0 +1,81 @@
|
|||||||
|
/*
|
||||||
|
* $HEADER$
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef LAM_MCA_BASE_PARAM_H
|
||||||
|
#define LAM_MCA_BASE_PARAM_H
|
||||||
|
|
||||||
|
#include "mpi.h"
|
||||||
|
#include "lam/lfc/array.h"
|
||||||
|
#include "lam/lfc/object.h"
|
||||||
|
#include "lam/util/cmd_line.h"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Types for MCA parameters
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
MCA_BASE_PARAM_TYPE_INT,
|
||||||
|
MCA_BASE_PARAM_TYPE_STRING,
|
||||||
|
|
||||||
|
MCA_BASE_PARAM_TYPE_MAX
|
||||||
|
} mca_base_param_type_t;
|
||||||
|
|
||||||
|
typedef union {
|
||||||
|
int intval;
|
||||||
|
char *stringval;
|
||||||
|
} mca_base_param_storage_t;
|
||||||
|
|
||||||
|
#define MCA_BASE_PARAM_INFO ((void*) -1)
|
||||||
|
|
||||||
|
struct mca_base_param_t {
|
||||||
|
lam_array_item_t super;
|
||||||
|
|
||||||
|
mca_base_param_type_t mbp_type;
|
||||||
|
char *mbp_type_name;
|
||||||
|
char *mbp_module_name;
|
||||||
|
char *mbp_param_name;
|
||||||
|
char *mbp_full_name;
|
||||||
|
|
||||||
|
int mbp_keyval;
|
||||||
|
char *mbp_env_var_name;
|
||||||
|
|
||||||
|
mca_base_param_storage_t mbp_default_value;
|
||||||
|
};
|
||||||
|
typedef struct mca_base_param_t mca_base_param_t;
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Variable holding the array of registered MCA parameters
|
||||||
|
*/
|
||||||
|
|
||||||
|
extern lam_array_t mca_base_params;
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Global functions for MCA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if defined(c_plusplus) || defined(__cplusplus)
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
int mca_base_param_register_int(char *type_name, char *module_name,
|
||||||
|
char *param_name, char *mca_param_name,
|
||||||
|
int default_value);
|
||||||
|
int mca_base_param_register_string(char *type_name, char *module_name,
|
||||||
|
char *param_name,
|
||||||
|
char *mca_param_name,
|
||||||
|
char *default_value);
|
||||||
|
int mca_base_param_lookup_int(int index);
|
||||||
|
char *mca_base_param_lookup_string(int index);
|
||||||
|
int mca_base_param_find(char *type, char *module, char *param);
|
||||||
|
int mca_base_param_finalize(void);
|
||||||
|
|
||||||
|
int mca_base_param_kv_associate(int index, int keyval);
|
||||||
|
int mca_base_param_kv_lookup_int(int index, MPI_Comm comm);
|
||||||
|
char *mca_base_param_kv_lookup_string(int index, MPI_Comm comm);
|
||||||
|
#if defined(c_plusplus) || defined(__cplusplus)
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* LAM_MCA_BASE_PARAM_H */
|
Загрузка…
x
Ссылка в новой задаче
Block a user