This source file includes following definitions.
- ompi_crcp_base_select
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 #include "ompi_config.h"
21
22 #include "ompi/mca/mca.h"
23 #include "opal/util/output.h"
24 #include "opal/mca/base/base.h"
25
26 #include "ompi/mca/crcp/crcp.h"
27 #include "ompi/mca/crcp/base/base.h"
28
29
30 static ompi_crcp_base_component_t none_component = {
31
32
33
34 {
35 OMPI_CRCP_BASE_VERSION_2_0_0,
36
37
38 "none",
39 OMPI_MAJOR_VERSION,
40 OMPI_MINOR_VERSION,
41 OMPI_RELEASE_VERSION,
42
43
44 ompi_crcp_base_none_open,
45 ompi_crcp_base_none_close,
46 ompi_crcp_base_none_query
47 },
48 {
49
50 MCA_BASE_METADATA_PARAM_CHECKPOINT
51 },
52
53
54 0,
55
56 -1,
57
58 1
59 };
60
61 static ompi_crcp_base_module_t none_module = {
62
63 ompi_crcp_base_module_init,
64
65 ompi_crcp_base_module_finalize,
66
67
68 ompi_crcp_base_none_quiesce_start,
69 ompi_crcp_base_none_quiesce_end,
70
71
72 ompi_crcp_base_none_pml_enable,
73
74 ompi_crcp_base_none_pml_add_comm,
75 ompi_crcp_base_none_pml_del_comm,
76
77 ompi_crcp_base_none_pml_add_procs,
78 ompi_crcp_base_none_pml_del_procs,
79
80 ompi_crcp_base_none_pml_progress,
81
82 ompi_crcp_base_none_pml_iprobe,
83 ompi_crcp_base_none_pml_probe,
84
85 ompi_crcp_base_none_pml_isend_init,
86 ompi_crcp_base_none_pml_isend,
87 ompi_crcp_base_none_pml_send,
88
89 ompi_crcp_base_none_pml_irecv_init,
90 ompi_crcp_base_none_pml_irecv,
91 ompi_crcp_base_none_pml_recv,
92
93 ompi_crcp_base_none_pml_dump,
94 ompi_crcp_base_none_pml_start,
95 ompi_crcp_base_none_pml_ft_event,
96
97
98 ompi_crcp_base_none_request_complete,
99
100
101 ompi_crcp_base_none_btl_add_procs,
102 ompi_crcp_base_none_btl_del_procs,
103
104 ompi_crcp_base_none_btl_register,
105 ompi_crcp_base_none_btl_finalize,
106
107 ompi_crcp_base_none_btl_alloc,
108 ompi_crcp_base_none_btl_free,
109
110 ompi_crcp_base_none_btl_prepare_src,
111 ompi_crcp_base_none_btl_prepare_dst,
112
113 ompi_crcp_base_none_btl_send,
114 ompi_crcp_base_none_btl_put,
115 ompi_crcp_base_none_btl_get,
116
117 ompi_crcp_base_none_btl_dump,
118 ompi_crcp_base_none_btl_ft_event
119 };
120
121 int ompi_crcp_base_select(void)
122 {
123 int ret;
124 ompi_crcp_base_component_t *best_component = NULL;
125 ompi_crcp_base_module_t *best_module = NULL;
126 const char *include_list = NULL;
127 const char **selection_value;
128 int var_id;
129
130
131
132
133 var_id = mca_base_var_find("ompi", "crcp", NULL, NULL);
134
135
136
137 selection_value = NULL;
138 (void) mca_base_var_get_value(var_id, &selection_value, NULL, NULL);
139 if (NULL == selection_value || NULL == selection_value[0]) {
140 (void) mca_base_var_set_value(var_id, "none", 5, MCA_BASE_VAR_SOURCE_DEFAULT, NULL);
141 include_list = "none";
142 } else {
143 include_list = selection_value[0];
144 }
145
146 if(0 == strncmp(include_list, "none", strlen("none")) ){
147 opal_output_verbose(10, ompi_crcp_base_framework.framework_output,
148 "crcp:select: Using %s component",
149 include_list);
150 best_component = &none_component;
151 best_module = &none_module;
152
153
154 mca_base_components_close(ompi_crcp_base_framework.framework_output,
155 &ompi_crcp_base_framework.framework_components,
156 NULL);
157 } else
158
159
160
161
162 if( OPAL_SUCCESS != mca_base_select("crcp", ompi_crcp_base_framework.framework_output,
163 &ompi_crcp_base_framework.framework_components,
164 (mca_base_module_t **) &best_module,
165 (mca_base_component_t **) &best_component, NULL) ) {
166
167 return OMPI_ERROR;
168 }
169
170
171 ompi_crcp_base_selected_component = *best_component;
172 ompi_crcp = *best_module;
173
174
175 if (OPAL_SUCCESS != (ret = ompi_crcp.crcp_init()) ) {
176 return ret;
177 }
178
179 return OMPI_SUCCESS;
180 }