|
5 | 5 | * Copyright (c) 2015 Cisco Systems, Inc. All rights reserved. |
6 | 6 | * Copyright (c) 2017 IBM Corporation. All rights reserved. |
7 | 7 | * Copyright (c) 2018 Amazon.com, Inc. or its affiliates. All Rights reserved. |
| 8 | + * Copyright (c) 2018 Triad National Security, LLC. All rights |
| 9 | + * reserved. |
8 | 10 | * $COPYRIGHT$ |
9 | 11 | * |
10 | 12 | * Additional copyrights may follow |
@@ -140,6 +142,22 @@ int mca_base_framework_register (struct mca_base_framework_t *framework, |
140 | 142 | return OPAL_SUCCESS; |
141 | 143 | } |
142 | 144 |
|
| 145 | +int mca_base_framework_register_list (mca_base_framework_t **frameworks, mca_base_register_flag_t flags) |
| 146 | +{ |
| 147 | + if (NULL == frameworks) { |
| 148 | + return OPAL_ERR_BAD_PARAM; |
| 149 | + } |
| 150 | + |
| 151 | + for (int i = 0 ; frameworks[i] ; ++i) { |
| 152 | + int ret = mca_base_framework_register (frameworks[i], flags); |
| 153 | + if (OPAL_UNLIKELY(OPAL_SUCCESS != ret && OPAL_ERR_NOT_AVAILABLE != ret)) { |
| 154 | + return ret; |
| 155 | + } |
| 156 | + } |
| 157 | + |
| 158 | + return OPAL_SUCCESS; |
| 159 | +} |
| 160 | + |
143 | 161 | int mca_base_framework_open (struct mca_base_framework_t *framework, |
144 | 162 | mca_base_open_flag_t flags) { |
145 | 163 | int ret; |
@@ -189,6 +207,22 @@ int mca_base_framework_open (struct mca_base_framework_t *framework, |
189 | 207 | return ret; |
190 | 208 | } |
191 | 209 |
|
| 210 | +int mca_base_framework_open_list (mca_base_framework_t **frameworks, mca_base_open_flag_t flags) |
| 211 | +{ |
| 212 | + if (NULL == frameworks) { |
| 213 | + return OPAL_ERR_BAD_PARAM; |
| 214 | + } |
| 215 | + |
| 216 | + for (int i = 0 ; frameworks[i] ; ++i) { |
| 217 | + int ret = mca_base_framework_open (frameworks[i], flags); |
| 218 | + if (OPAL_UNLIKELY(OPAL_SUCCESS != ret && OPAL_ERR_NOT_AVAILABLE != ret)) { |
| 219 | + return ret; |
| 220 | + } |
| 221 | + } |
| 222 | + |
| 223 | + return OPAL_SUCCESS; |
| 224 | +} |
| 225 | + |
192 | 226 | int mca_base_framework_close (struct mca_base_framework_t *framework) { |
193 | 227 | bool is_open = mca_base_framework_is_open (framework); |
194 | 228 | bool is_registered = mca_base_framework_is_registered (framework); |
@@ -247,3 +281,19 @@ int mca_base_framework_close (struct mca_base_framework_t *framework) { |
247 | 281 |
|
248 | 282 | return ret; |
249 | 283 | } |
| 284 | + |
| 285 | +int mca_base_framework_close_list (mca_base_framework_t **frameworks) |
| 286 | +{ |
| 287 | + if (NULL == frameworks) { |
| 288 | + return OPAL_ERR_BAD_PARAM; |
| 289 | + } |
| 290 | + |
| 291 | + for (int i = 0 ; frameworks[i] ; ++i) { |
| 292 | + int ret = mca_base_framework_close (frameworks[i]); |
| 293 | + if (OPAL_UNLIKELY(OPAL_SUCCESS != ret)) { |
| 294 | + return ret; |
| 295 | + } |
| 296 | + } |
| 297 | + |
| 298 | + return OPAL_SUCCESS; |
| 299 | +} |
0 commit comments