#include "gds_shmem2.h"
static int
gds_shmem2_component_register(void);
static int
component_query(pmix_mca_base_module_t **module,
int *priority)
{
if (access("/proc/self/maps", F_OK) == -1) {
*priority = 0;
*module = NULL;
return PMIX_ERROR;
}
*priority = PMIX_GDS_SHMEM2_DEFAULT_PRIORITY;
*module = (pmix_mca_base_module_t *)&pmix_shmem2_module;
return PMIX_SUCCESS;
}
pmix_gds_shmem2_component_t pmix_mca_gds_shmem2_component = {
.super = {
PMIX_GDS_BASE_VERSION_1_0_0,
.pmix_mca_component_name = PMIX_GDS_SHMEM2_NAME,
PMIX_MCA_BASE_MAKE_VERSION(
component,
PMIX_MAJOR_VERSION,
PMIX_MINOR_VERSION,
PMIX_RELEASE_VERSION
),
.pmix_mca_register_component_params = gds_shmem2_component_register,
.pmix_mca_query_component = component_query,
.reserved = {0}
},
.jobs = PMIX_LIST_STATIC_INIT,
.sessions = PMIX_LIST_STATIC_INIT
};
double pmix_gds_shmem2_segment_size_multiplier = 1.0;
static int
gds_shmem2_component_register(void)
{
int varidx;
varidx = pmix_mca_base_component_var_register(
&pmix_mca_gds_shmem2_component.super,
"segment_size_multiplier",
"Multiplier that influences the ultimate sizes of the shared-memory "
"segments used for gds data storage. As a percentage, values less or "
"greater than 1.0 decrease or increase the final segment sizes, "
"respectively.",
PMIX_MCA_BASE_VAR_TYPE_DOUBLE,
&pmix_gds_shmem2_segment_size_multiplier
);
if (varidx < 0) {
return PMIX_ERROR;
}
return PMIX_SUCCESS;
}