![]() |
|
|||
File indexing completed on 2025-02-22 10:47:22
0001 /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ 0002 /* 0003 * Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana 0004 * University Research and Technology 0005 * Corporation. All rights reserved. 0006 * Copyright (c) 2004-2006 The University of Tennessee and The University 0007 * of Tennessee Research Foundation. All rights 0008 * reserved. 0009 * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 0010 * University of Stuttgart. All rights reserved. 0011 * Copyright (c) 2004-2005 The Regents of the University of California. 0012 * All rights reserved. 0013 * Copyright (c) 2008-2011 Cisco Systems, Inc. All rights reserved. 0014 * Copyright (c) 2012-2013 Los Alamos National Security, LLC. All rights 0015 * reserved. 0016 * Copyright (c) 2016-2017 Intel, Inc. All rights reserved. 0017 * Copyright (c) 2021-2022 Nanook Consulting. All rights reserved. 0018 * $COPYRIGHT$ 0019 * 0020 * Additional copyrights may follow 0021 * 0022 * $HEADER$ 0023 */ 0024 0025 #ifndef PMIX_MCA_BASE_VAR_GROUP_H 0026 #define PMIX_MCA_BASE_VAR_GROUP_H 0027 0028 #include "src/mca/mca.h" 0029 0030 struct pmix_mca_base_var_group_t { 0031 pmix_list_item_t super; 0032 0033 /** Index of group */ 0034 int group_index; 0035 0036 /** Group is valid (registered) */ 0037 bool group_isvalid; 0038 0039 /** Group name */ 0040 char *group_full_name; 0041 0042 char *group_project; 0043 char *group_framework; 0044 char *group_component; 0045 0046 /** Group help message (description) */ 0047 char *group_description; 0048 0049 /** Integer value array of subgroup indices */ 0050 pmix_value_array_t group_subgroups; 0051 0052 /** Integer array of group variables */ 0053 pmix_value_array_t group_vars; 0054 }; 0055 0056 typedef struct pmix_mca_base_var_group_t pmix_mca_base_var_group_t; 0057 0058 /** 0059 * Object declaration for pmix_mca_base_var_group_t 0060 */ 0061 PMIX_EXPORT PMIX_CLASS_DECLARATION(pmix_mca_base_var_group_t); 0062 0063 /** 0064 * Register an MCA variable group 0065 * 0066 * @param[in] project_name Project name for this group. 0067 * @param[in] framework_name Framework name for this group. 0068 * @param[in] component_name Component name for this group. 0069 * @param[in] description Description of this group. 0070 * 0071 * @retval index Unique group index 0072 * @return pmix error code on Error 0073 * 0074 * Create an MCA variable group. If the group already exists 0075 * this call is equivalent to pmix_mca_base_ver_find_group(). 0076 */ 0077 PMIX_EXPORT int pmix_mca_base_var_group_register(const char *project_name, 0078 const char *framework_name, 0079 const char *component_name, 0080 const char *description); 0081 0082 /** 0083 * Register an MCA variable group for a component 0084 * 0085 * @param[in] component [in] Pointer to the component for which the 0086 * group is being registered. 0087 * @param[in] description Description of this group. 0088 * 0089 * @retval index Unique group index 0090 * @return pmix error code on Error 0091 */ 0092 PMIX_EXPORT int 0093 pmix_mca_base_var_group_component_register(const pmix_mca_base_component_t *component, 0094 const char *description); 0095 0096 /** 0097 * Deregister an MCA param group 0098 * 0099 * @param group_index [in] Group index from pmix_mca_base_var_group_register (), 0100 * pmix_mca_base_var_group_find(). 0101 * 0102 * This call deregisters all associated variables and subgroups. 0103 */ 0104 PMIX_EXPORT int pmix_mca_base_var_group_deregister(int group_index); 0105 0106 /** 0107 * Find an MCA group 0108 * 0109 * @param[in] project_name Project name 0110 * @param[in] framework_name Framework name 0111 * @param[in] component_name Component name 0112 * 0113 * @returns PMIX_SUCCESS if found 0114 * @returns PMIX_ERR_NOT_FOUND if not found 0115 */ 0116 PMIX_EXPORT int pmix_mca_base_var_group_find(const char *project_name, const char *framework_name, 0117 const char *component_name); 0118 0119 /** 0120 * Find an MCA group by its full name 0121 * 0122 * @param[in] full_name Full name of MCA variable group. Ex: shmem_mmap 0123 * @param[out] index Index of group if found 0124 * 0125 * @returns PMIX_SUCCESS if found 0126 * @returns PMIX_ERR_NOT_FOUND if not found 0127 */ 0128 PMIX_EXPORT int pmix_mca_base_var_group_find_by_name(const char *full_name, int *index); 0129 0130 /** 0131 * Get the group at a specified index 0132 * 0133 * @param[in] group_index Group index 0134 * @param[out] group Storage for the group object pointer. 0135 * 0136 * @retval PMIX_ERR_NOT_FOUND If the group specified by group_index does not exist. 0137 * @retval PMIX_SUCCESS If the group is found 0138 * 0139 * The returned pointer belongs to the MCA variable system. Do not modify/release/retain 0140 * the pointer. 0141 */ 0142 PMIX_EXPORT int pmix_mca_base_var_group_get(const int group_index, 0143 const pmix_mca_base_var_group_t **group); 0144 /** 0145 * Get the number of registered MCA groups 0146 * 0147 * @retval count Number of registered MCA groups 0148 */ 0149 PMIX_EXPORT int pmix_mca_base_var_group_get_count(void); 0150 0151 /** 0152 * Get a relative timestamp for the MCA group system 0153 * 0154 * @retval stamp 0155 * 0156 * This value will change if groups or variables are either added or removed. 0157 */ 0158 PMIX_EXPORT int pmix_mca_base_var_group_get_stamp(void); 0159 0160 #endif /* PMIX_MCA_BASE_VAR_GROUP_H */
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |