1 
   2 
   3 
   4 
   5 
   6 
   7 
   8 
   9 
  10 
  11 
  12 
  13 
  14 
  15 
  16 
  17 
  18 
  19 
  20 
  21 
  22 
  23 
  24 
  25 #ifndef MCA_GRPCOMM_BASE_H
  26 #define MCA_GRPCOMM_BASE_H
  27 
  28 
  29 
  30 
  31 #include "orte_config.h"
  32 
  33 #include "opal/class/opal_list.h"
  34 #include "opal/class/opal_hash_table.h"
  35 #include "opal/dss/dss_types.h"
  36 #include "orte/mca/mca.h"
  37 #include "opal/mca/hwloc/hwloc-internal.h"
  38 
  39 #include "orte/mca/odls/odls_types.h"
  40 #include "orte/mca/rml/rml_types.h"
  41 #include "orte/mca/grpcomm/grpcomm.h"
  42 
  43 
  44 
  45 
  46 
  47 BEGIN_C_DECLS
  48 
  49 
  50 
  51 
  52 ORTE_DECLSPEC extern mca_base_framework_t orte_grpcomm_base_framework;
  53 
  54 
  55 
  56 ORTE_DECLSPEC int orte_grpcomm_base_select(void);
  57 
  58 
  59 
  60 
  61 typedef struct {
  62     opal_list_item_t super;
  63     int pri;
  64     orte_grpcomm_base_module_t *module;
  65     mca_base_component_t *component;
  66 } orte_grpcomm_base_active_t;
  67 OBJ_CLASS_DECLARATION(orte_grpcomm_base_active_t);
  68 
  69 typedef struct {
  70     opal_list_t actives;
  71     opal_list_t ongoing;
  72     opal_hash_table_t sig_table;
  73     char *transports;
  74 } orte_grpcomm_base_t;
  75 
  76 ORTE_DECLSPEC extern orte_grpcomm_base_t orte_grpcomm_base;
  77 
  78 
  79 ORTE_DECLSPEC int orte_grpcomm_API_xcast(orte_grpcomm_signature_t *sig,
  80                                          orte_rml_tag_t tag,
  81                                          opal_buffer_t *buf);
  82 
  83 ORTE_DECLSPEC int orte_grpcomm_API_allgather(orte_grpcomm_signature_t *sig,
  84                                              opal_buffer_t *buf,
  85                                              orte_grpcomm_cbfunc_t cbfunc,
  86                                              void *cbdata);
  87 
  88 ORTE_DECLSPEC orte_grpcomm_coll_t* orte_grpcomm_base_get_tracker(orte_grpcomm_signature_t *sig, bool create);
  89 ORTE_DECLSPEC void orte_grpcomm_base_mark_distance_recv(orte_grpcomm_coll_t *coll, uint32_t distance);
  90 ORTE_DECLSPEC unsigned int orte_grpcomm_base_check_distance_recv(orte_grpcomm_coll_t *coll, uint32_t distance);
  91 
  92 END_C_DECLS
  93 #endif