#include "src/include/pmix_config.h"
#include "pmix_common.h"
#include "src/mca/pdl/pdl.h"
#include "src/util/pmix_argv.h"
#include "pdl_pdlopen.h"
const char *pmix_pdl_pdlopen_component_version_string
= "PMIX pdl pdlopen MCA component version " PMIX_VERSION;
static int pdlopen_component_register(void);
static int pdlopen_component_open(void);
static int pdlopen_component_close(void);
static int pdlopen_component_query(pmix_mca_base_module_t **module, int *priority);
pmix_pdl_pdlopen_component_t pmix_mca_pdl_pdlopen_component = {
.base = {
.base_version = {
PMIX_PDL_BASE_VERSION_1_0_0,
.pmix_mca_component_name = "pdlopen",
PMIX_MCA_BASE_MAKE_VERSION(component, PMIX_MAJOR_VERSION, PMIX_MINOR_VERSION,
PMIX_RELEASE_VERSION),
.pmix_mca_register_component_params = pdlopen_component_register,
.pmix_mca_open_component = pdlopen_component_open,
.pmix_mca_close_component = pdlopen_component_close,
.pmix_mca_query_component = pdlopen_component_query,
},
.priority = 80
},
};
static int pdlopen_component_register(void)
{
int ret;
pmix_mca_pdl_pdlopen_component.filename_suffixes_mca_storage = ".so,.dylib,.dll,.sl";
ret = pmix_mca_base_component_var_register(
&pmix_mca_pdl_pdlopen_component.base.base_version, "filename_suffixes",
"Comma-delimited list of filename suffixes that the pdlopen component will try",
PMIX_MCA_BASE_VAR_TYPE_STRING,
&pmix_mca_pdl_pdlopen_component.filename_suffixes_mca_storage);
if (ret < 0) {
return ret;
}
pmix_mca_pdl_pdlopen_component.filename_suffixes
= PMIx_Argv_split(pmix_mca_pdl_pdlopen_component.filename_suffixes_mca_storage, ',');
return PMIX_SUCCESS;
}
static int pdlopen_component_open(void)
{
return PMIX_SUCCESS;
}
static int pdlopen_component_close(void)
{
if (NULL != pmix_mca_pdl_pdlopen_component.filename_suffixes) {
PMIx_Argv_free(pmix_mca_pdl_pdlopen_component.filename_suffixes);
pmix_mca_pdl_pdlopen_component.filename_suffixes = NULL;
}
return PMIX_SUCCESS;
}
static int pdlopen_component_query(pmix_mca_base_module_t **module, int *priority)
{
*priority = pmix_mca_pdl_pdlopen_component.base.priority;
*module = &pmix_pdl_pdlopen_module.super;
return PMIX_SUCCESS;
}