75 строки
1.5 KiB
C
75 строки
1.5 KiB
C
/*
|
|
* Copyright (c) 2015-2018 Intel, Inc. All rights reserved.
|
|
* $COPYRIGHT$
|
|
*
|
|
* Additional copyrights may follow
|
|
*
|
|
* $HEADER$
|
|
*/
|
|
/** @file:
|
|
* regx framework base functionality.
|
|
*/
|
|
|
|
#ifndef ORTE_MCA_REGX_BASE_H
|
|
#define ORTE_MCA_REGX_BASE_H
|
|
|
|
/*
|
|
* includes
|
|
*/
|
|
#include "orte_config.h"
|
|
#include "orte/types.h"
|
|
|
|
#include "opal/class/opal_list.h"
|
|
#include "orte/mca/mca.h"
|
|
|
|
#include "orte/runtime/orte_globals.h"
|
|
|
|
#include "orte/mca/regx/regx.h"
|
|
|
|
BEGIN_C_DECLS
|
|
|
|
/*
|
|
* MCA Framework
|
|
*/
|
|
ORTE_DECLSPEC extern mca_base_framework_t orte_regx_base_framework;
|
|
/* select all components */
|
|
ORTE_DECLSPEC int orte_regx_base_select(void);
|
|
|
|
/*
|
|
* common stuff
|
|
*/
|
|
typedef struct {
|
|
opal_list_item_t super;
|
|
int vpid;
|
|
int cnt;
|
|
int slots;
|
|
orte_topology_t *t;
|
|
} orte_regex_range_t;
|
|
|
|
OBJ_CLASS_DECLARATION(orte_regex_range_t);
|
|
|
|
typedef struct {
|
|
/* list object */
|
|
opal_list_item_t super;
|
|
char *prefix;
|
|
char *suffix;
|
|
int num_digits;
|
|
opal_list_t ranges;
|
|
} orte_regex_node_t;
|
|
END_C_DECLS
|
|
|
|
OBJ_CLASS_DECLARATION(orte_regex_node_t);
|
|
|
|
ORTE_DECLSPEC extern int orte_regx_base_nidmap_parse(char *regex);
|
|
|
|
ORTE_DECLSPEC extern int orte_regx_base_encode_nodemap(opal_buffer_t *buffer);
|
|
|
|
ORTE_DECLSPEC int orte_regx_base_decode_daemon_nodemap(opal_buffer_t *buffer);
|
|
|
|
ORTE_DECLSPEC int orte_regx_base_generate_ppn(orte_job_t *jdata, char **ppn);
|
|
|
|
ORTE_DECLSPEC int orte_regx_base_parse_ppn(orte_job_t *jdata, char *regex);
|
|
|
|
ORTE_DECLSPEC int orte_regx_base_extract_node_names(char *regexp, char ***names);
|
|
#endif
|