Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-02-23 10:12:57

0001 /*
0002  * Copyright (c) 2004-2010 The Trustees of Indiana University and Indiana
0003  *                         University Research and Technology
0004  *                         Corporation.  All rights reserved.
0005  * Copyright (c) 2015-2020 Cisco Systems, Inc.  All rights reserved
0006  * Copyright (c) 2017-2020 Intel, Inc.  All rights reserved.
0007  * Copyright (c) 2021-2022 Nanook Consulting.  All rights reserved.
0008  * $COPYRIGHT$
0009  *
0010  * Additional copyrights may follow
0011  *
0012  * $HEADER$
0013  */
0014 
0015 #ifndef PRTE_DL_BASE_H
0016 #define PRTE_DL_BASE_H
0017 
0018 #include "prte_config.h"
0019 #include "src/mca/prtedl/prtedl.h"
0020 #include "src/util/pmix_environ.h"
0021 
0022 #include "src/mca/base/pmix_base.h"
0023 #include "src/mca/base/pmix_mca_base_framework.h"
0024 
0025 BEGIN_C_DECLS
0026 
0027 /**
0028  * Globals
0029  */
0030 PRTE_EXPORT extern pmix_mca_base_framework_t prte_prtedl_base_framework;
0031 PRTE_EXPORT extern prte_prtedl_base_component_t *prte_prtedl_base_selected_component;
0032 PRTE_EXPORT extern prte_prtedl_base_module_t *prte_prtedl;
0033 
0034 /**
0035  * Initialize the DL MCA framework
0036  *
0037  * @retval PRTE_SUCCESS Upon success
0038  * @retval PRTE_ERROR   Upon failures
0039  *
0040  * This function is invoked during prte_init();
0041  */
0042 PRTE_EXPORT int prte_dl_base_open(pmix_mca_base_open_flag_t flags);
0043 
0044 /**
0045  * Select an available component.
0046  *
0047  * @retval PRTE_SUCCESS Upon Success
0048  * @retval PRTE_NOT_FOUND If no component can be selected
0049  * @retval PRTE_ERROR Upon other failure
0050  *
0051  */
0052 PRTE_EXPORT int prte_dl_base_select(void);
0053 
0054 /**
0055  * Finalize the DL MCA framework
0056  *
0057  * @retval PRTE_SUCCESS Upon success
0058  * @retval PRTE_ERROR   Upon failures
0059  *
0060  * This function is invoked during prte_finalize();
0061  */
0062 PRTE_EXPORT int prte_dl_base_close(void);
0063 
0064 /**
0065  * Open a DSO
0066  *
0067  * (see prte_prtedl_base_module_open_ft_t in src/mca/prtedl/prtedl.h for
0068  * documentation of this function)
0069  */
0070 PRTE_EXPORT int prte_dl_open(const char *fname, bool use_ext, bool private_namespace,
0071                              prte_dl_handle_t **handle, char **err_msg);
0072 
0073 /**
0074  * Lookup a symbol in a DSO
0075  *
0076  * (see prte_prtedl_base_module_lookup_ft_t in src/mca/prtedl/prtedl.h for
0077  * documentation of this function)
0078  */
0079 PRTE_EXPORT int prte_dl_lookup(prte_dl_handle_t *handle, const char *symbol, void **ptr,
0080                                char **err_msg);
0081 
0082 /**
0083  * Close a DSO
0084  *
0085  * (see prte_prtedl_base_module_close_ft_t in src/mca/prtedl/prtedl.h for
0086  * documentation of this function)
0087  */
0088 PRTE_EXPORT int prte_dl_close(prte_dl_handle_t *handle);
0089 
0090 /**
0091  * Iterate over files in a path
0092  *
0093  * (see prte_prtedl_base_module_foreachfile_ft_t in src/mca/prtedl/prtedl.h for
0094  * documentation of this function)
0095  */
0096 PRTE_EXPORT int prte_dl_foreachfile(const char *search_path,
0097                                     int (*cb_func)(const char *filename, void *context),
0098                                     void *context);
0099 
0100 END_C_DECLS
0101 
0102 #endif /* PRTE_DL_BASE_H */