This source file includes following definitions.
- mca_pml_yalla_component_register
- mca_pml_yalla_component_open
- mca_pml_yalla_component_close
- mca_pml_yalla_component_init
- mca_pml_yalla_component_fini
   1 
   2 
   3 
   4 
   5 
   6 
   7 
   8 
   9 
  10 
  11 
  12 
  13 
  14 #include "pml_yalla.h"
  15 
  16 #include "ompi/runtime/mpiruntime.h"
  17 
  18 
  19 static int mca_pml_yalla_component_register(void);
  20 static int mca_pml_yalla_component_open(void);
  21 static int mca_pml_yalla_component_close(void);
  22 
  23 static  mca_pml_base_module_t*
  24 mca_pml_yalla_component_init(int* priority, bool enable_progress_threads,
  25                              bool enable_mpi_threads);
  26 static int mca_pml_yalla_component_fini(void);
  27 
  28 
  29 mca_pml_base_component_2_0_0_t mca_pml_yalla_component = {
  30 
  31     
  32 
  33     .pmlm_version = {
  34         MCA_PML_BASE_VERSION_2_0_0,
  35 
  36         .mca_component_name = "yalla",
  37         MCA_BASE_MAKE_VERSION(component, OMPI_MAJOR_VERSION, OMPI_MINOR_VERSION,
  38                               OMPI_RELEASE_VERSION),
  39         .mca_open_component = mca_pml_yalla_component_open,
  40         .mca_close_component = mca_pml_yalla_component_close,
  41         .mca_register_component_params = mca_pml_yalla_component_register,
  42     },
  43     .pmlm_data = {
  44         
  45         MCA_BASE_METADATA_PARAM_NONE
  46     },
  47 
  48     .pmlm_init = mca_pml_yalla_component_init,
  49     .pmlm_finalize = mca_pml_yalla_component_fini,
  50 };
  51 
  52 static int mca_pml_yalla_component_register(void)
  53 {
  54     ompi_pml_yalla.verbose = 0;
  55     (void) mca_base_component_var_register(&mca_pml_yalla_component.pmlm_version, "verbose",
  56                                            "Verbose level of the yalla component",
  57                                            MCA_BASE_VAR_TYPE_INT, NULL, 0, 0,
  58                                            OPAL_INFO_LVL_9,
  59                                            MCA_BASE_VAR_SCOPE_LOCAL,
  60                                            &ompi_pml_yalla.verbose);
  61 
  62     ompi_pml_yalla.priority = 50;
  63     (void) mca_base_component_var_register(&mca_pml_yalla_component.pmlm_version, "priority",
  64                                            "Priority of the yalla component",
  65                                            MCA_BASE_VAR_TYPE_INT, NULL, 0, 0,
  66                                            OPAL_INFO_LVL_3,
  67                                            MCA_BASE_VAR_SCOPE_LOCAL,
  68                                            &ompi_pml_yalla.priority);
  69     return 0;
  70 }
  71 
  72 static int mca_pml_yalla_component_open(void)
  73 {
  74     ompi_pml_yalla.output = opal_output_open(NULL);
  75     opal_output_set_verbosity(ompi_pml_yalla.output, ompi_pml_yalla.verbose);
  76     return mca_pml_yalla_open();
  77 }
  78 
  79 static int mca_pml_yalla_component_close(void)
  80 {
  81     int rc;
  82 
  83     rc = mca_pml_yalla_close();
  84     if (rc != 0) {
  85         return rc;
  86     }
  87 
  88     opal_output_close(ompi_pml_yalla.output);
  89     return 0;
  90 }
  91 
  92 static mca_pml_base_module_t*
  93 mca_pml_yalla_component_init(int* priority, bool enable_progress_threads,
  94                              bool enable_mpi_threads)
  95 {
  96     int ret;
  97 
  98     if ( (ret = mca_pml_yalla_init()) != 0) {
  99         return NULL;
 100     }
 101 
 102     ompi_mpi_dynamics_disable("the Yalla (MXM) PML does not support MPI dynamic process functionality");
 103 
 104     *priority = ompi_pml_yalla.priority;
 105     return &ompi_pml_yalla.super;
 106 }
 107 
 108 static int mca_pml_yalla_component_fini(void)
 109 {
 110     return mca_pml_yalla_cleanup();
 111 }
 112