1
1
openmpi/orte/mca/routed/base/base.h

78 строки
2.6 KiB
C

/*
* Copyright (c) 2007-2013 Los Alamos National Security, LLC.
* All rights reserved.
* Copyright (c) 2014-2017 Intel, Inc. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
*
* $HEADER$
*/
#ifndef MCA_ROUTED_BASE_H
#define MCA_ROUTED_BASE_H
#include "orte_config.h"
#include "orte/mca/mca.h"
#include "opal/class/opal_pointer_array.h"
#include "opal/dss/dss_types.h"
#include "orte/mca/rml/rml_types.h"
#include "orte/mca/routed/routed.h"
BEGIN_C_DECLS
/*
* MCA Framework
*/
ORTE_DECLSPEC extern mca_base_framework_t orte_routed_base_framework;
/* select a component */
ORTE_DECLSPEC int orte_routed_base_select(void);
typedef struct {
opal_list_item_t super;
int pri;
orte_routed_component_t *component;
orte_routed_module_t *module;
} orte_routed_base_active_t;
OBJ_CLASS_DECLARATION(orte_routed_base_active_t);
typedef struct {
opal_list_t actives;
bool routing_enabled;
} orte_routed_base_t;
ORTE_DECLSPEC extern orte_routed_base_t orte_routed_base;
/* base API wrapper functions */
ORTE_DECLSPEC char* orte_routed_base_assign_module(char *modules);
ORTE_DECLSPEC int orte_routed_base_delete_route(char *module, orte_process_name_t *proc);
ORTE_DECLSPEC int orte_routed_base_update_route(char *module, orte_process_name_t *target,
orte_process_name_t *route);
ORTE_DECLSPEC orte_process_name_t orte_routed_base_get_route(char *module,
orte_process_name_t *target);
ORTE_DECLSPEC int orte_routed_base_route_lost(char *module,
const orte_process_name_t *route);
ORTE_DECLSPEC bool orte_routed_base_route_is_defined(char *module,
const orte_process_name_t *target);
ORTE_DECLSPEC void orte_routed_base_update_routing_plan(char *module);
ORTE_DECLSPEC void orte_routed_base_get_routing_list(char *module, opal_list_t *coll);
ORTE_DECLSPEC int orte_routed_base_set_lifeline(char *module, orte_process_name_t *proc);
ORTE_DECLSPEC size_t orte_routed_base_num_routes(char *module);
ORTE_DECLSPEC int orte_routed_base_ft_event(char *module, int state);
/* specialized support functions */
ORTE_DECLSPEC void orte_routed_base_xcast_routing(opal_list_t *coll,
opal_list_t *my_children);
ORTE_DECLSPEC int orte_routed_base_process_callback(orte_jobid_t job,
opal_buffer_t *buffer);
ORTE_DECLSPEC void orte_routed_base_update_hnps(opal_buffer_t *buf);
END_C_DECLS
#endif /* MCA_ROUTED_BASE_H */