1
1
openmpi/orte/mca/schema/schema.h
George Bosilca 6afa4c6c64 Windows friendly version. We have to split the OMPI_DECLSPEC in at least 3
different macros, one for each project. Therefore, now we have OPAL_DECLSPEC,
ORTE_DECLSPEC and OMPI_DECLSPEC. Please use them based on the sub-project.

This commit was SVN r11270.
2006-08-20 15:54:04 +00:00

141 строка
4.2 KiB
C

/*
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
* University Research and Technology
* Corporation. All rights reserved.
* Copyright (c) 2004-2005 The University of Tennessee and The University
* of Tennessee Research Foundation. All rights
* reserved.
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
* University of Stuttgart. All rights reserved.
* Copyright (c) 2004-2005 The Regents of the University of California.
* All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
*
* $HEADER$
*/
#ifndef ORTE_SCHEMA_H
#define ORTE_SCHEMA_H
#include "orte_config.h"
#include "opal/mca/mca.h"
#include "orte/mca/ns/ns_types.h"
#include "orte/mca/schema/schema_types.h"
#if defined(c_plusplus) || defined(__cplusplus)
extern "C" {
#endif
/*
* Convenience functions for accessing ORTE data
*/
typedef int (*orte_schema_get_proc_tokens_fn_t)(
char ***tokens,
orte_std_cntr_t* num_tokens,
orte_process_name_t *proc);
typedef int (*orte_schema_get_job_tokens_fn_t)(
char ***tokens,
orte_std_cntr_t* num_tokens,
orte_jobid_t jobid);
typedef int (*orte_schema_get_node_tokens_fn_t)(
char ***tokens,
orte_std_cntr_t* num_tokens,
orte_cellid_t cellid,
char *nodename);
typedef int (*orte_schema_get_cell_tokens_fn_t)(
char ***tokens,
orte_std_cntr_t* num_tokens,
orte_cellid_t cellid);
typedef int (*orte_schema_get_job_segment_name_fn_t)(char **name, orte_jobid_t jobid);
typedef int (*orte_schema_extract_jobid_from_segment_name_fn_t)(orte_jobid_t *jobid, char *name);
typedef int (*orte_schema_store_my_info_fn_t)(void);
typedef int (*orte_schema_get_std_trigger_name_fn_t)(char **name,
char *trigger,
orte_jobid_t jobid);
typedef int (*orte_schema_extract_jobid_from_std_trigger_name_fn_t)(orte_jobid_t *jobid,
char *trigger);
typedef bool (*orte_schema_check_std_trigger_name_fn_t)(char *name, char *trigger);
typedef int (*orte_schema_get_std_subscription_name_fn_t)(char **name,
char *subscription,
orte_jobid_t jobid);
/*
* Ver 1.0.0
*/
struct orte_schema_base_module_1_0_0_t {
orte_schema_get_proc_tokens_fn_t get_proc_tokens;
orte_schema_get_node_tokens_fn_t get_node_tokens;
orte_schema_get_job_tokens_fn_t get_job_tokens;
orte_schema_get_cell_tokens_fn_t get_cell_tokens;
orte_schema_get_job_segment_name_fn_t get_job_segment_name;
orte_schema_extract_jobid_from_segment_name_fn_t extract_jobid_from_segment_name;
orte_schema_store_my_info_fn_t store_my_info;
orte_schema_get_std_trigger_name_fn_t get_std_trigger_name;
orte_schema_check_std_trigger_name_fn_t check_std_trigger_name;
orte_schema_extract_jobid_from_std_trigger_name_fn_t extract_jobid_from_std_trigger_name;
orte_schema_get_std_subscription_name_fn_t get_std_subscription_name;
};
typedef struct orte_schema_base_module_1_0_0_t orte_schema_base_module_1_0_0_t;
typedef orte_schema_base_module_1_0_0_t orte_schema_base_module_t;
/*
* SCHEMA Component
*/
typedef orte_schema_base_module_t* (*orte_schema_base_component_init_fn_t)(
bool *allow_multi_user_threads,
bool *have_hidden_threads,
int *priority);
typedef int (*orte_schema_base_component_finalize_fn_t)(void);
/*
* the standard component data structure
*/
struct mca_schema_base_component_1_0_0_t {
mca_base_component_t schema_version;
mca_base_component_data_1_0_0_t schema_data;
orte_schema_base_component_init_fn_t schema_init;
orte_schema_base_component_finalize_fn_t schema_finalize;
};
typedef struct mca_schema_base_component_1_0_0_t mca_schema_base_component_1_0_0_t;
typedef mca_schema_base_component_1_0_0_t mca_schema_base_component_t;
/*
* Macro for use in components that are of type schema v1.0.0
*/
#define ORTE_SCHEMA_BASE_VERSION_1_0_0 \
/* schema v1.0 is chained to MCA v1.0 */ \
MCA_BASE_VERSION_1_0_0, \
/* schema v1.0 */ \
"schema", 1, 0, 0
ORTE_DECLSPEC extern orte_schema_base_module_t orte_schema;
#if defined(c_plusplus) || defined(__cplusplus)
}
#endif
#endif