1 /* 2 * Copyright (c) 2015-2018 Intel, Inc. All rights reserved. 3 * $COPYRIGHT$ 4 * 5 * Additional copyrights may follow 6 * 7 * $HEADER$ 8 */ 9 /** @file: 10 * regx framework base functionality. 11 */ 12 13 #ifndef ORTE_MCA_REGX_BASE_H 14 #define ORTE_MCA_REGX_BASE_H 15 16 /* 17 * includes 18 */ 19 #include "orte_config.h" 20 #include "orte/types.h" 21 22 #include "opal/class/opal_list.h" 23 #include "orte/mca/mca.h" 24 25 #include "orte/runtime/orte_globals.h" 26 27 #include "orte/mca/regx/regx.h" 28 29 BEGIN_C_DECLS 30 31 /* 32 * MCA Framework 33 */ 34 ORTE_DECLSPEC extern mca_base_framework_t orte_regx_base_framework; 35 /* select all components */ 36 ORTE_DECLSPEC int orte_regx_base_select(void); 37 38 /* 39 * common stuff 40 */ 41 typedef struct { 42 opal_list_item_t super; 43 int vpid; 44 int cnt; 45 int slots; 46 orte_topology_t *t; 47 } orte_regex_range_t; 48 49 OBJ_CLASS_DECLARATION(orte_regex_range_t); 50 51 typedef struct { 52 /* list object */ 53 opal_list_item_t super; 54 char *prefix; 55 char *suffix; 56 int num_digits; 57 opal_list_t ranges; 58 } orte_regex_node_t; 59 END_C_DECLS 60 61 OBJ_CLASS_DECLARATION(orte_regex_node_t); 62 63 ORTE_DECLSPEC extern int orte_regx_base_nidmap_parse(char *regex); 64 65 ORTE_DECLSPEC extern int orte_regx_base_encode_nodemap(opal_buffer_t *buffer); 66 67 ORTE_DECLSPEC int orte_regx_base_decode_daemon_nodemap(opal_buffer_t *buffer); 68 69 ORTE_DECLSPEC int orte_regx_base_generate_ppn(orte_job_t *jdata, char **ppn); 70 71 ORTE_DECLSPEC int orte_regx_base_parse_ppn(orte_job_t *jdata, char *regex); 72 73 ORTE_DECLSPEC int orte_regx_base_extract_node_names(char *regexp, char ***names); 74 #endif 75