This source file includes following definitions.
- mca_fs_base_find_available
- init_query
- init_query_2_0_0
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 <stdio.h>
23 #include <stdlib.h>
24
25 #include "mpi.h"
26 #include "ompi/constants.h"
27 #include "ompi/mca/mca.h"
28 #include "opal/mca/base/base.h"
29 #include "ompi/mca/fs/fs.h"
30 #include "ompi/mca/fs/base/base.h"
31 #include "opal/util/output.h"
32
33 static int init_query(const mca_base_component_t *m,
34 bool enable_progress_threads,
35 bool enable_mpi_threads);
36 static int init_query_2_0_0(const mca_base_component_t *component,
37 bool enable_progress_threads,
38 bool enable_mpi_threads);
39
40 int mca_fs_base_find_available(bool enable_progress_threads,
41 bool enable_mpi_threads)
42 {
43 mca_base_component_list_item_t *cli, *next;
44
45
46
47
48
49 OPAL_LIST_FOREACH_SAFE(cli, next, &ompi_fs_base_framework.framework_components, mca_base_component_list_item_t) {
50
51
52
53 if (OMPI_SUCCESS != init_query(cli->cli_component,
54 enable_progress_threads,
55 enable_mpi_threads)) {
56
57
58
59 opal_list_remove_item (&ompi_fs_base_framework.framework_components, &cli->super);
60 mca_base_component_close(cli->cli_component, ompi_fs_base_framework.framework_output);
61 OBJ_RELEASE(cli);
62 }
63 }
64
65
66 if (0 == opal_list_get_size(&ompi_fs_base_framework.framework_components)) {
67 opal_output_verbose (10, ompi_fs_base_framework.framework_output,
68 "fs:find_available: no fs components available!");
69 return OMPI_ERROR;
70 }
71
72
73 return OMPI_SUCCESS;
74 }
75
76
77 static int init_query(const mca_base_component_t *m,
78 bool enable_progress_threads,
79 bool enable_mpi_threads)
80 {
81 int ret;
82
83 opal_output_verbose(10, ompi_fs_base_framework.framework_output,
84 "fs:find_available: querying fs component %s",
85 m->mca_component_name);
86
87
88 if (2 == m->mca_type_major_version &&
89 0 == m->mca_type_minor_version &&
90 0 == m->mca_type_release_version) {
91 ret = init_query_2_0_0(m, enable_progress_threads,
92 enable_mpi_threads);
93 } else {
94
95 opal_output_verbose(10, ompi_fs_base_framework.framework_output,
96 "fs:find_available:unrecognised fs API version (%d.%d.%d)",
97 m->mca_type_major_version,
98 m->mca_type_minor_version,
99 m->mca_type_release_version);
100 return OMPI_ERROR;
101 }
102
103
104 if (OMPI_SUCCESS != ret) {
105 opal_output_verbose(10, ompi_fs_base_framework.framework_output,
106 "fs:find_available fs component %s is not available",
107 m->mca_component_name);
108 } else {
109 opal_output_verbose(10, ompi_fs_base_framework.framework_output,
110 "fs:find_avalable: fs component %s is available",
111 m->mca_component_name);
112
113 }
114
115 return ret;
116 }
117
118
119 static int init_query_2_0_0(const mca_base_component_t *component,
120 bool enable_progress_threads,
121 bool enable_mpi_threads)
122 {
123 mca_fs_base_component_2_0_0_t *fs =
124 (mca_fs_base_component_2_0_0_t *) component;
125
126 return fs->fsm_init_query(enable_progress_threads,
127 enable_mpi_threads);
128 }