This source file includes following definitions.
- pmix_mca_base_component_compare_priority
- pmix_mca_base_component_compare
- pmix_mca_base_component_compatible
- pmix_mca_base_component_to_string
   1 
   2 
   3 
   4 
   5 
   6 
   7 
   8 
   9 
  10 
  11 
  12 
  13 
  14 
  15 
  16 
  17 
  18 
  19 
  20 #include <src/include/pmix_config.h>
  21 
  22 #include <string.h>
  23 
  24 #include "src/mca/mca.h"
  25 #include "src/mca/base/base.h"
  26 
  27 
  28 
  29 
  30 
  31 
  32 
  33 
  34 
  35 
  36 
  37 
  38 
  39 
  40 int
  41 pmix_mca_base_component_compare_priority(pmix_mca_base_component_priority_list_item_t *a,
  42                                          pmix_mca_base_component_priority_list_item_t *b)
  43 {
  44   
  45 
  46   if (a->cpli_priority > b->cpli_priority) {
  47     return -1;
  48   } else if (a->cpli_priority < b->cpli_priority) {
  49     return 1;
  50   } else {
  51     return pmix_mca_base_component_compare(a->super.cli_component,
  52                                       b->super.cli_component);
  53   }
  54 }
  55 
  56 
  57 int pmix_mca_base_component_compare(const pmix_mca_base_component_t* aa,
  58                                     const pmix_mca_base_component_t* bb)
  59 {
  60     int val;
  61 
  62     val = strncmp(aa->pmix_mca_type_name, bb->pmix_mca_type_name,
  63                   PMIX_MCA_BASE_MAX_TYPE_NAME_LEN);
  64     if (val != 0) {
  65       return -val;
  66     }
  67 
  68     val = strncmp(aa->pmix_mca_component_name, bb->pmix_mca_component_name,
  69                       PMIX_MCA_BASE_MAX_COMPONENT_NAME_LEN);
  70     if (val != 0) {
  71       return -val;
  72     }
  73 
  74     
  75 
  76     if (aa->pmix_mca_component_major_version >
  77         bb->pmix_mca_component_major_version) {
  78       return -1;
  79     } else if (aa->pmix_mca_component_major_version <
  80                bb->pmix_mca_component_major_version) {
  81       return 1;
  82     } else if (aa->pmix_mca_component_minor_version >
  83                bb->pmix_mca_component_minor_version) {
  84       return -1;
  85     } else if (aa->pmix_mca_component_minor_version <
  86                bb->pmix_mca_component_minor_version) {
  87       return 1;
  88     } else if (aa->pmix_mca_component_release_version >
  89                bb->pmix_mca_component_release_version) {
  90       return -1;
  91     } else if (aa->pmix_mca_component_release_version <
  92                bb->pmix_mca_component_release_version) {
  93       return 1;
  94     }
  95 
  96     return 0;
  97 }
  98 
  99 
 100 
 101 
 102 
 103 
 104 int pmix_mca_base_component_compatible(const pmix_mca_base_component_t* aa,
 105                                        const pmix_mca_base_component_t* bb)
 106 {
 107     int val;
 108 
 109     val = strncmp(aa->pmix_mca_type_name, bb->pmix_mca_type_name,
 110                   PMIX_MCA_BASE_MAX_TYPE_NAME_LEN);
 111     if (val != 0) {
 112       return -val;
 113     }
 114 
 115     val = strncmp(aa->pmix_mca_component_name, bb->pmix_mca_component_name,
 116                   PMIX_MCA_BASE_MAX_COMPONENT_NAME_LEN);
 117     if (val != 0) {
 118       return -val;
 119     }
 120 
 121     
 122 
 123     if (aa->pmix_mca_component_major_version >
 124         bb->pmix_mca_component_major_version) {
 125       return -1;
 126     } else if (aa->pmix_mca_component_major_version <
 127                bb->pmix_mca_component_major_version) {
 128       return 1;
 129     } else if (aa->pmix_mca_component_minor_version >
 130                bb->pmix_mca_component_minor_version) {
 131       return -1;
 132     } else if (aa->pmix_mca_component_minor_version <
 133                bb->pmix_mca_component_minor_version) {
 134       return 1;
 135     }
 136     return 0;
 137 }
 138 
 139 
 140 
 141 
 142 
 143 char * pmix_mca_base_component_to_string(const pmix_mca_base_component_t *a) {
 144     char * str = NULL;
 145     if(0 > asprintf(&str, "%s.%s.%d.%d", a->pmix_mca_type_name,
 146                     a->pmix_mca_component_name, a->pmix_mca_component_major_version,
 147                     a->pmix_mca_component_minor_version)) {
 148         return NULL;
 149     }
 150     return str;
 151 }