This source file includes following definitions.
- rtc_hwloc_register
- rtc_hwloc_query
   1 
   2 
   3 
   4 
   5 
   6 
   7 
   8 
   9 
  10 
  11 
  12 
  13 
  14 
  15 
  16 #include "orte_config.h"
  17 #include "orte/constants.h"
  18 
  19 #include "opal/mca/base/base.h"
  20 
  21 #include "rtc_hwloc.h"
  22 
  23 
  24 
  25 
  26 
  27 static int rtc_hwloc_query(mca_base_module_t **module, int *priority);
  28 static int rtc_hwloc_register(void);
  29 
  30 static int my_priority;
  31 
  32 orte_rtc_hwloc_component_t mca_rtc_hwloc_component = {
  33     .super = {
  34         .base_version = {
  35             ORTE_RTC_BASE_VERSION_1_0_0,
  36 
  37             .mca_component_name = "hwloc",
  38             MCA_BASE_MAKE_VERSION(component, ORTE_MAJOR_VERSION, ORTE_MINOR_VERSION,
  39                                   ORTE_RELEASE_VERSION),
  40             .mca_query_component = rtc_hwloc_query,
  41             .mca_register_component_params = rtc_hwloc_register,
  42         },
  43         .base_data = {
  44             
  45             MCA_BASE_METADATA_PARAM_CHECKPOINT
  46         },
  47     },
  48     .kind = VM_HOLE_BIGGEST
  49 };
  50 
  51 static char *biggest = "biggest";
  52 static char *vmhole;
  53 
  54 static int rtc_hwloc_register(void)
  55 {
  56     mca_base_component_t *c = &mca_rtc_hwloc_component.super.base_version;
  57 
  58     
  59     my_priority = 70;
  60     (void) mca_base_component_var_register (c, "priority", "Priority of the HWLOC rtc component",
  61                                             MCA_BASE_VAR_TYPE_INT, NULL, 0, 0,
  62                                             OPAL_INFO_LVL_9,
  63                                             MCA_BASE_VAR_SCOPE_READONLY,
  64                                             &my_priority);
  65 
  66     mca_rtc_hwloc_component.kind = VM_HOLE_BIGGEST;
  67     vmhole = biggest;
  68     (void) mca_base_component_var_register(c, "vmhole",
  69                                            "Kind of VM hole to identify - none, begin, biggest, libs, heap, stack (default=biggest)",
  70                                             MCA_BASE_VAR_TYPE_STRING, NULL, 0, 0,
  71                                            OPAL_INFO_LVL_9,
  72                                            MCA_BASE_VAR_SCOPE_READONLY,
  73                                            &vmhole);
  74     if (0 == strcasecmp(vmhole, "none")) {
  75         mca_rtc_hwloc_component.kind = VM_HOLE_NONE;
  76     } else if (0 == strcasecmp(vmhole, "begin")) {
  77         mca_rtc_hwloc_component.kind = VM_HOLE_BEGIN;
  78     } else if (0 == strcasecmp(vmhole, "biggest")) {
  79         mca_rtc_hwloc_component.kind = VM_HOLE_BIGGEST;
  80     } else if (0 == strcasecmp(vmhole, "libs")) {
  81         mca_rtc_hwloc_component.kind = VM_HOLE_IN_LIBS;
  82     } else if (0 == strcasecmp(vmhole, "heap")) {
  83         mca_rtc_hwloc_component.kind = VM_HOLE_AFTER_HEAP;
  84     } else if (0 == strcasecmp(vmhole, "stack")) {
  85         mca_rtc_hwloc_component.kind = VM_HOLE_BEFORE_STACK;
  86     } else {
  87         opal_output(0, "INVALID VM HOLE TYPE");
  88         return ORTE_ERROR;
  89     }
  90 
  91     return ORTE_SUCCESS;
  92 }
  93 
  94 
  95 static int rtc_hwloc_query(mca_base_module_t **module, int *priority)
  96 {
  97     
  98 
  99     *priority = my_priority;
 100     *module = (mca_base_module_t *)&orte_rtc_hwloc_module;
 101 
 102     return ORTE_SUCCESS;
 103 }