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