root/opal/mca/pmix/pmix4x/pmix/src/mca/pnet/opa/pnet_opa_component.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. component_register
  2. component_open
  3. component_query
  4. component_close

   1 /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
   2 /*
   3  * Copyright (c) 2004-2008 The Trustees of Indiana University and Indiana
   4  *                         University Research and Technology
   5  *                         Corporation.  All rights reserved.
   6  * Copyright (c) 2004-2005 The University of Tennessee and The University
   7  *                         of Tennessee Research Foundation.  All rights
   8  *                         reserved.
   9  * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
  10  *                         University of Stuttgart.  All rights reserved.
  11  * Copyright (c) 2004-2005 The Regents of the University of California.
  12  *                         All rights reserved.
  13  * Copyright (c) 2015      Los Alamos National Security, LLC. All rights
  14  *                         reserved.
  15  * Copyright (c) 2016-2019 Intel, Inc.  All rights reserved.
  16  * $COPYRIGHT$
  17  *
  18  * Additional copyrights may follow
  19  *
  20  * $HEADER$
  21  *
  22  * These symbols are in a file by themselves to provide nice linker
  23  * semantics.  Since linkers generally pull in symbols by object
  24  * files, keeping these symbols as the only symbols in this file
  25  * prevents utility programs such as "ompi_info" from having to import
  26  * entire components just to query their version and parameters.
  27  */
  28 
  29 #include <src/include/pmix_config.h>
  30 #include "pmix_common.h"
  31 
  32 #include "src/util/argv.h"
  33 #include "src/mca/pnet/pnet.h"
  34 #include "pnet_opa.h"
  35 
  36 static pmix_status_t component_open(void);
  37 static pmix_status_t component_close(void);
  38 static pmix_status_t component_query(pmix_mca_base_module_t **module, int *priority);
  39 static pmix_status_t component_register(void);
  40 
  41 /*
  42  * Instantiate the public struct with all of our public information
  43  * and pointers to our public functions in it
  44  */
  45 pmix_pnet_opa_component_t mca_pnet_opa_component = {
  46     .super = {
  47         .base = {
  48             PMIX_PNET_BASE_VERSION_1_0_0,
  49 
  50             /* Component name and version */
  51             .pmix_mca_component_name = "opa",
  52             PMIX_MCA_BASE_MAKE_VERSION(component,
  53                                        PMIX_MAJOR_VERSION,
  54                                        PMIX_MINOR_VERSION,
  55                                        PMIX_RELEASE_VERSION),
  56 
  57             /* Component open and close functions */
  58             .pmix_mca_open_component = component_open,
  59             .pmix_mca_close_component = component_close,
  60             .pmix_mca_register_component_params = component_register,
  61             .pmix_mca_query_component = component_query,
  62         },
  63         .data = {
  64             /* The component is checkpoint ready */
  65             PMIX_MCA_BASE_METADATA_PARAM_CHECKPOINT
  66         }
  67     },
  68     .include = NULL,
  69     .exclude = NULL,
  70     .radix = 64
  71 };
  72 
  73 static pmix_status_t component_register(void)
  74 {
  75     pmix_mca_base_component_t *component = &mca_pnet_opa_component.super.base;
  76 
  77     mca_pnet_opa_component.incparms = "HFI_*,PSM2_*";
  78     (void)pmix_mca_base_component_var_register(component, "include_envars",
  79                                                "Comma-delimited list of envars to harvest (\'*\' and \'?\' supported)",
  80                                                PMIX_MCA_BASE_VAR_TYPE_STRING, NULL, 0, 0,
  81                                                PMIX_INFO_LVL_2,
  82                                                PMIX_MCA_BASE_VAR_SCOPE_LOCAL,
  83                                                &mca_pnet_opa_component.incparms);
  84     if (NULL != mca_pnet_opa_component.incparms) {
  85         mca_pnet_opa_component.include = pmix_argv_split(mca_pnet_opa_component.incparms, ',');
  86     }
  87 
  88     mca_pnet_opa_component.excparms = NULL;
  89     (void)pmix_mca_base_component_var_register(component, "exclude_envars",
  90                                                "Comma-delimited list of envars to exclude (\'*\' and \'?\' supported)",
  91                                                PMIX_MCA_BASE_VAR_TYPE_STRING, NULL, 0, 0,
  92                                                PMIX_INFO_LVL_2,
  93                                                PMIX_MCA_BASE_VAR_SCOPE_LOCAL,
  94                                                &mca_pnet_opa_component.excparms);
  95     if (NULL != mca_pnet_opa_component.excparms) {
  96         mca_pnet_opa_component.exclude = pmix_argv_split(mca_pnet_opa_component.excparms, ',');
  97     }
  98 
  99     (void)pmix_mca_base_component_var_register(component, "radix",
 100                                                "Radix for simulating the network coordinates",
 101                                                PMIX_MCA_BASE_VAR_TYPE_INT, NULL, 0, 0,
 102                                                PMIX_INFO_LVL_2,
 103                                                PMIX_MCA_BASE_VAR_SCOPE_LOCAL,
 104                                                &mca_pnet_opa_component.radix);
 105 
 106     return PMIX_SUCCESS;
 107 }
 108 
 109 static pmix_status_t component_open(void)
 110 {
 111     return PMIX_SUCCESS;
 112 }
 113 
 114 
 115 static pmix_status_t component_query(pmix_mca_base_module_t **module, int *priority)
 116 {
 117     *priority = 10;
 118     *module = (pmix_mca_base_module_t *)&pmix_opa_module;
 119     return PMIX_SUCCESS;
 120 }
 121 
 122 
 123 static pmix_status_t component_close(void)
 124 {
 125     return PMIX_SUCCESS;
 126 }

/* [<][>][^][v][top][bottom][index][help] */