1
1
openmpi/opal/mca/base/mca_base_alias.h

87 строки
2.8 KiB
C
Исходник Обычный вид История

/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
/*
* Copyright (c) 2020 Google, LLC. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
*
* $HEADER$
*/
#ifndef OPAL_MCA_BASE_ALIAS_H
#define OPAL_MCA_BASE_ALIAS_H
#include "opal_config.h"
#include "opal/class/opal_list.h"
BEGIN_C_DECLS
enum mca_base_alias_flags_t {
MCA_BASE_ALIAS_FLAG_NONE = 0,
/** The aliased name has been deprecated. */
MCA_BASE_ALIAS_FLAG_DEPRECATED = 1,
};
typedef enum mca_base_alias_flags_t mca_base_alias_flags_t;
struct mca_base_alias_item_t {
opal_list_item_t super;
/** Name aias. */
char *component_alias;
/** Alias flags. */
uint32_t alias_flags;
};
typedef struct mca_base_alias_item_t mca_base_alias_item_t;
OBJ_CLASS_DECLARATION(mca_base_alias_item_t);
struct mca_base_alias_t {
opal_object_t super;
/** List of name aliases. */
opal_list_t component_aliases;
};
typedef struct mca_base_alias_t mca_base_alias_t;
OBJ_CLASS_DECLARATION(mca_base_alias_t);
/**
* @brief Create a alias for a component name.
*
* @param[in] project Project name (may be NULL)
* @param[in] framework Framework name (may be NULL)
* @param[in] component_name Name of component to alias (may not be NULL)
* @param[in] component_alias Aliased name (may not be NULL)
* @param[in] alias_flags Flags (see mca_base_alias_flags_t)
*
* This function aliases one component name to another. When aliased
* any variable registered with this project, framework, and
* component_name will have synonyms created. For example, if
* opal_btl_vader is aliased to sm then registers a variable
* named btl_vader_flags then a synonym will be created with the
* name btl_sm_flags. If an alias is registered early enough
* (during framework registration for example) then the alias can
* also be used for component selection. In the previous example
* --mca btl vader and --mca btl sm would select the same
* component if the synonym is registered in the btl framework
* registration function.
*/
OPAL_DECLSPEC int mca_base_alias_register (const char *project, const char *framework,
const char *component_name,
const char *component_alias,
uint32_t alias_flags);
/**
* @brief Check for aliases for a component.
*
* @param[in] project Project name (may be NULL)
* @param[in] frameworek Framework name (may be NULL)
* @param[in] component_name Component name (may not be NULL)
*/
OPAL_DECLSPEC const mca_base_alias_t *mca_base_alias_lookup(const char *project,
const char *framework,
const char *component_name);
#endif /* OPAL_MCA_BASE_ALIAS_H */