File indexing completed on 2025-02-22 10:47:25
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024 #ifndef PMIX_PREG_H
0025 #define PMIX_PREG_H
0026
0027 #include "src/include/pmix_config.h"
0028
0029 #include "src/mca/base/pmix_mca_base_framework.h"
0030 #include "src/mca/base/pmix_mca_base_var.h"
0031 #include "src/mca/bfrops/bfrops_types.h"
0032 #include "src/mca/mca.h"
0033
0034 #include "src/mca/preg/preg_types.h"
0035
0036 BEGIN_C_DECLS
0037
0038
0039
0040 #define PMIX_MAX_NODE_PREFIX 50
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059 typedef pmix_status_t (*pmix_preg_base_module_generate_node_regex_fn_t)(const char *input,
0060 char **regex);
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073 typedef pmix_status_t (*pmix_preg_base_module_generate_ppn_fn_t)(const char *input, char **ppn);
0074
0075 typedef pmix_status_t (*pmix_preg_base_module_parse_nodes_fn_t)(const char *regexp, char ***names);
0076
0077 typedef pmix_status_t (*pmix_preg_base_module_parse_procs_fn_t)(const char *regexp, char ***procs);
0078
0079 typedef pmix_status_t (*pmix_preg_base_module_copy_fn_t)(char **dest, size_t *len,
0080 const char *input);
0081
0082 typedef pmix_status_t (*pmix_preg_base_module_pack_fn_t)(pmix_buffer_t *buffer, const char *regex);
0083
0084 typedef pmix_status_t (*pmix_preg_base_module_unpack_fn_t)(pmix_buffer_t *buffer, char **regex);
0085
0086 typedef pmix_status_t (*pmix_preg_base_module_release_fn_t)(char *regexp);
0087
0088
0089
0090
0091 typedef struct {
0092 char *name;
0093 pmix_preg_base_module_generate_node_regex_fn_t generate_node_regex;
0094 pmix_preg_base_module_generate_ppn_fn_t generate_ppn;
0095 pmix_preg_base_module_parse_nodes_fn_t parse_nodes;
0096 pmix_preg_base_module_parse_procs_fn_t parse_procs;
0097 pmix_preg_base_module_copy_fn_t copy;
0098 pmix_preg_base_module_pack_fn_t pack;
0099 pmix_preg_base_module_unpack_fn_t unpack;
0100 pmix_preg_base_module_release_fn_t release;
0101 } pmix_preg_module_t;
0102
0103
0104
0105 PMIX_EXPORT extern pmix_preg_module_t pmix_preg;
0106
0107
0108
0109
0110 #define PMIX_PREG_BASE_VERSION_1_0_0 PMIX_MCA_BASE_VERSION_1_0_0("preg", 1, 0, 0)
0111
0112 END_C_DECLS
0113
0114 #endif