This source file includes following definitions.
- main
1
2
3
4
5
6
7
8
9
10
11
12
13
14 #include "oshmem_config.h"
15
16 #include <stdio.h>
17 #include <string.h>
18 #include <ctype.h>
19 #ifdef HAVE_UNISTD_H
20 #include <unistd.h>
21 #endif
22 #ifdef HAVE_NETDB_H
23 #include <netdb.h>
24 #endif
25 #ifdef HAVE_SYS_PARAM_H
26 #include <sys/param.h>
27 #endif
28 #include <errno.h>
29 #include <signal.h>
30
31 #include "opal/version.h"
32 #include "opal/mca/installdirs/installdirs.h"
33 #include "opal/class/opal_object.h"
34 #include "opal/class/opal_pointer_array.h"
35 #include "opal/runtime/opal.h"
36 #if OPAL_ENABLE_FT_CR == 1
37 #include "opal/runtime/opal_cr.h"
38 #endif
39 #include "opal/mca/base/base.h"
40 #include "opal/runtime/opal_info_support.h"
41 #include "opal/util/argv.h"
42 #include "opal/util/show_help.h"
43
44 #if OMPI_RTE_ORTE
45 #include "orte/runtime/orte_info_support.h"
46 #endif
47
48 #include "ompi/runtime/ompi_info_support.h"
49
50 #include "oshmem/include/oshmem/constants.h"
51 #include "oshmem/tools/oshmem_info/oshmem_info.h"
52 #include "oshmem/runtime/oshmem_info_support.h"
53
54
55
56
57
58
59 int main(int argc, char *argv[])
60 {
61 int ret = 0;
62 bool acted = false;
63 bool want_all = false;
64 int i;
65 opal_cmd_line_t *info_cmd_line;
66 opal_pointer_array_t mca_types;
67 opal_pointer_array_t component_map;
68 opal_info_component_map_t *map;
69
70
71
72 signal(SIGPIPE, SIG_IGN);
73
74
75 if (OPAL_SUCCESS != opal_init_util(&argc, &argv)) {
76 opal_show_help("help-oshmem-info.txt", "lib-call-fail", true,
77 "opal_init_util", __FILE__, __LINE__, NULL);
78 exit(ret);
79 }
80
81 info_cmd_line = OBJ_NEW(opal_cmd_line_t);
82 if (NULL == info_cmd_line) {
83 ret = errno;
84 opal_show_help("help-oshmem-info.txt", "lib-call-fail", true,
85 "opal_cmd_line_create", __FILE__, __LINE__, NULL);
86 exit(ret);
87 }
88
89
90
91
92 if (OPAL_SUCCESS != (ret = opal_info_init(argc, argv, info_cmd_line))) {
93 exit(ret);
94 }
95
96 if (opal_cmd_line_is_taken(info_cmd_line, "version")) {
97 fprintf(stdout, "Open MPI/SHMEM v%s\n\n%s\n",
98 OPAL_VERSION, PACKAGE_BUGREPORT);
99 exit(0);
100 }
101
102
103 OBJ_CONSTRUCT(&mca_types, opal_pointer_array_t);
104 opal_pointer_array_init(&mca_types, 256, INT_MAX, 128);
105
106
107 opal_info_register_types(&mca_types);
108
109 #if OMPI_RTE_ORTE
110
111 orte_info_register_types(&mca_types);
112 #endif
113
114
115 opal_info_register_types(&mca_types);
116
117
118 oshmem_info_register_types(&mca_types);
119
120
121 OBJ_CONSTRUCT(&component_map, opal_pointer_array_t);
122 opal_pointer_array_init(&component_map, 256, INT_MAX, 128);
123
124
125 if (OSHMEM_SUCCESS != (ret = oshmem_info_register_framework_params(&component_map))) {
126 if (OSHMEM_ERR_BAD_PARAM == ret) {
127
128 opal_info_do_params(true, opal_cmd_line_is_taken(info_cmd_line, "internal"),
129 &mca_types, &component_map, NULL);
130 }
131 exit(1);
132 }
133
134
135 want_all = opal_cmd_line_is_taken(info_cmd_line, "all");
136 if (want_all || opal_cmd_line_is_taken(info_cmd_line, "path")) {
137 opal_info_do_path(want_all, info_cmd_line);
138 acted = true;
139 }
140 if (want_all || opal_cmd_line_is_taken(info_cmd_line, "arch")) {
141 opal_info_do_arch();
142 acted = true;
143 }
144 if (want_all || opal_cmd_line_is_taken(info_cmd_line, "hostname")) {
145 opal_info_do_hostname();
146 acted = true;
147 }
148 if (want_all || opal_cmd_line_is_taken(info_cmd_line, "config")) {
149 oshmem_info_do_config(true);
150 acted = true;
151 }
152 if (want_all || opal_cmd_line_is_taken(info_cmd_line, "param") ||
153 opal_cmd_line_is_taken(info_cmd_line, "params")) {
154 opal_info_do_params(want_all, opal_cmd_line_is_taken(info_cmd_line, "internal"),
155 &mca_types, &component_map, info_cmd_line);
156 acted = true;
157 }
158
159
160
161 if (!acted) {
162 opal_info_out("Package", "package", OPAL_PACKAGE_STRING);
163 oshmem_info_show_oshmem_version(opal_info_ver_full);
164 opal_info_show_path(opal_info_path_prefix, opal_install_dirs.prefix);
165 opal_info_do_arch();
166 opal_info_do_hostname();
167 oshmem_info_do_config(false);
168 opal_info_show_component_version(&mca_types, &component_map, opal_info_type_all,
169 opal_info_component_all, opal_info_ver_full,
170 opal_info_ver_all);
171 }
172
173
174
175 oshmem_info_close_components();
176 OBJ_RELEASE(info_cmd_line);
177 OBJ_DESTRUCT(&mca_types);
178 for (i=0; i < component_map.size; i++) {
179 if (NULL != (map = (opal_info_component_map_t*)opal_pointer_array_get_item(&component_map, i))) {
180 OBJ_RELEASE(map);
181 }
182 }
183 OBJ_DESTRUCT(&component_map);
184
185 opal_info_finalize();
186
187
188
189 opal_finalize_util();
190
191 return 0;
192 }