This source file includes following definitions.
- dlopen_component_register
- dlopen_component_open
- dlopen_component_close
- dlopen_component_query
   1 
   2 
   3 
   4 
   5 
   6 
   7 
   8 
   9 
  10 
  11 
  12 
  13 #include "opal_config.h"
  14 
  15 #include "opal/constants.h"
  16 #include "opal/mca/dl/dl.h"
  17 #include "opal/util/argv.h"
  18 
  19 #include "dl_dlopen.h"
  20 
  21 
  22 
  23 
  24 
  25 const char *opal_dl_dlopen_component_version_string =
  26     "OPAL dl dlopen MCA component version " OPAL_VERSION;
  27 
  28 
  29 
  30 
  31 
  32 static int dlopen_component_register(void);
  33 static int dlopen_component_open(void);
  34 static int dlopen_component_close(void);
  35 static int dlopen_component_query(mca_base_module_t **module, int *priority);
  36 
  37 
  38 
  39 
  40 
  41 
  42 opal_dl_dlopen_component_t mca_dl_dlopen_component = {
  43 
  44     
  45     .base = {
  46 
  47         
  48 
  49         .base_version = {
  50             OPAL_DL_BASE_VERSION_1_0_0,
  51 
  52             
  53             .mca_component_name = "dlopen",
  54             MCA_BASE_MAKE_VERSION(component, OPAL_MAJOR_VERSION, OPAL_MINOR_VERSION,
  55                                   OPAL_RELEASE_VERSION),
  56 
  57             
  58             .mca_register_component_params = dlopen_component_register,
  59             .mca_open_component = dlopen_component_open,
  60             .mca_close_component = dlopen_component_close,
  61             .mca_query_component = dlopen_component_query,
  62         },
  63 
  64         .base_data = {
  65             
  66             MCA_BASE_METADATA_PARAM_CHECKPOINT
  67         },
  68 
  69         
  70         .priority = 80
  71     },
  72 };
  73 
  74 
  75 static int dlopen_component_register(void)
  76 {
  77     int ret;
  78 
  79     mca_dl_dlopen_component.filename_suffixes_mca_storage = ".so,.dylib,.dll,.sl";
  80     ret =
  81         mca_base_component_var_register(&mca_dl_dlopen_component.base.base_version,
  82                                         "filename_suffixes",
  83                                         "Comma-delimited list of filename suffixes that the dlopen component will try",
  84                                         MCA_BASE_VAR_TYPE_STRING,
  85                                         NULL,
  86                                         0,
  87                                         MCA_BASE_VAR_FLAG_SETTABLE,
  88                                         OPAL_INFO_LVL_5,
  89                                         MCA_BASE_VAR_SCOPE_LOCAL,
  90                                         &mca_dl_dlopen_component.filename_suffixes_mca_storage);
  91     if (ret < 0) {
  92         return ret;
  93     }
  94     mca_dl_dlopen_component.filename_suffixes =
  95         opal_argv_split(mca_dl_dlopen_component.filename_suffixes_mca_storage,
  96                         ',');
  97 
  98     return OPAL_SUCCESS;
  99 }
 100 
 101 static int dlopen_component_open(void)
 102 {
 103     return OPAL_SUCCESS;
 104 }
 105 
 106 
 107 static int dlopen_component_close(void)
 108 {
 109     if (NULL != mca_dl_dlopen_component.filename_suffixes) {
 110         opal_argv_free(mca_dl_dlopen_component.filename_suffixes);
 111         mca_dl_dlopen_component.filename_suffixes = NULL;
 112     }
 113 
 114     return OPAL_SUCCESS;
 115 }
 116 
 117 
 118 static int dlopen_component_query(mca_base_module_t **module, int *priority)
 119 {
 120     
 121 
 122 
 123     *priority = mca_dl_dlopen_component.base.priority;
 124     *module = &opal_dl_dlopen_module.super;
 125 
 126     return OPAL_SUCCESS;
 127 }