1 /*
2 * Copyright (c) 2011-2015 The University of Tennessee and The University
3 * of Tennessee Research Foundation. All rights
4 * reserved.
5 * Copyright (c) 2011-2015 INRIA. All rights reserved.
6 * Copyright (c) 2011-2015 Bordeaux Polytechnic Institute
7 * Copyright (c) 2015 Research Organization for Information Science
8 * and Technology (RIST). All rights reserved.
9 * Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
10 * $COPYRIGHT$
11 *
12 * Additional copyrights may follow
13 *
14 * $HEADER$
15 */
16
17 #ifndef MCA_TOPO_UNTIY_H
18 #define MCA_TOPO_UNTIY_H
19
20 #include "ompi_config.h"
21 #include "ompi/mca/topo/topo.h"
22
23 /*
24 * ******************************************************************
25 * ******** functions which provide MCA interface comppliance *******
26 * ******************************************************************
27 * These functions are:
28 * - mca_topo_treematch_module_open
29 * - mca_topo_treematch_module_close
30 * - mca_topo_treematch_module_query
31 * - mca_topo_treematch_module_finalize
32 * These functions are always found on the mca_topo_treematch_module
33 * structure. They are the "meta" functions to ensure smooth op.
34 * ******************************************************************
35 */
36 BEGIN_C_DECLS
37
38 /*
39 * Public component instance
40 */
41 typedef struct mca_topo_treematch_component_2_2_0_t {
42 mca_topo_base_component_2_2_0_t super;
43
44 int reorder_mode;
45 } mca_topo_treematch_component_2_2_0_t;
46
47 OMPI_MODULE_DECLSPEC extern mca_topo_treematch_component_2_2_0_t
48 mca_topo_treematch_component;
49
50 /*
51 * A unique module class for the module so that we can both cache
52 * module-specific information on the module and have a
53 * module-specific constructor and destructor.
54 */
55 typedef struct {
56 mca_topo_base_module_t super;
57
58 /* Modules can add their own information here */
59 } mca_topo_treematch_module_t;
60
61 OBJ_CLASS_DECLARATION(mca_topo_treematch_module_t);
62
63
64 /*
65 * Module functions
66 */
67
68 int mca_topo_treematch_dist_graph_create(mca_topo_base_module_t* module,
69 ompi_communicator_t *comm_old,
70 int n, const int nodes[],
71 const int degrees[], const int targets[],
72 const int weights[],
73 struct opal_info_t *info, int reorder,
74 ompi_communicator_t **newcomm);
75 /*
76 * ******************************************************************
77 * ************ functions implemented in this module end ************
78 * ******************************************************************
79 */
80
81 END_C_DECLS
82
83 #endif /* MCA_TOPO_EXAMPLE_H */