1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 #ifndef PMIX_PREG_H
24 #define PMIX_PREG_H
25
26 #include <src/include/pmix_config.h>
27
28 #include "src/mca/mca.h"
29 #include "src/mca/base/pmix_mca_base_var.h"
30 #include "src/mca/base/pmix_mca_base_framework.h"
31
32 #include "src/mca/preg/preg_types.h"
33
34 BEGIN_C_DECLS
35
36
37
38 #define PMIX_MAX_NODE_PREFIX 50
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 typedef pmix_status_t (*pmix_preg_base_module_generate_node_regex_fn_t)(const char *input,
58 char **regex);
59
60
61
62
63
64
65
66
67
68
69
70
71 typedef pmix_status_t (*pmix_preg_base_module_generate_ppn_fn_t)(const char *input,
72 char **ppn);
73
74
75 typedef pmix_status_t (*pmix_preg_base_module_parse_nodes_fn_t)(const char *regexp,
76 char ***names);
77
78 typedef pmix_status_t (*pmix_preg_base_module_parse_procs_fn_t)(const char *regexp,
79 char ***procs);
80
81 typedef pmix_status_t (*pmix_preg_base_module_resolve_peers_fn_t)(const char *nodename,
82 const char *nspace,
83 pmix_proc_t **procs, size_t *nprocs);
84
85 typedef pmix_status_t (*pmix_preg_base_module_resolve_nodes_fn_t)(const char *nspace,
86 char **nodelist);
87
88
89
90
91 typedef struct {
92 char *name;
93 pmix_preg_base_module_generate_node_regex_fn_t generate_node_regex;
94 pmix_preg_base_module_generate_ppn_fn_t generate_ppn;
95 pmix_preg_base_module_parse_nodes_fn_t parse_nodes;
96 pmix_preg_base_module_parse_procs_fn_t parse_procs;
97 pmix_preg_base_module_resolve_peers_fn_t resolve_peers;
98 pmix_preg_base_module_resolve_nodes_fn_t resolve_nodes;
99 } pmix_preg_module_t;
100
101
102
103 PMIX_EXPORT extern pmix_preg_module_t pmix_preg;
104
105
106
107
108 #define PMIX_PREG_BASE_VERSION_1_0_0 \
109 PMIX_MCA_BASE_VERSION_1_0_0("preg", 1, 0, 0)
110
111 END_C_DECLS
112
113 #endif