Back to home page

EIC code displayed by LXR

 
 

    


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

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      Cisco Systems, Inc.  All rights reserved.
0006  * Copyright (c) 2016-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 PMIX_PDL_BASE_H
0016 #define PMIX_PDL_BASE_H
0017 
0018 #include "src/include/pmix_config.h"
0019 #include "src/mca/pdl/pdl.h"
0020 #include "src/util/pmix_environ.h"
0021 
0022 #include "src/mca/base/pmix_base.h"
0023 
0024 BEGIN_C_DECLS
0025 
0026 /**
0027  * Globals
0028  */
0029 PMIX_EXPORT extern pmix_mca_base_framework_t pmix_pdl_base_framework;
0030 extern pmix_pdl_base_component_t *pmix_pdl_base_selected_component;
0031 extern pmix_pdl_base_module_t *pmix_pdl;
0032 
0033 /**
0034  * Initialize the PDL MCA framework
0035  *
0036  * @retval PMIX_SUCCESS Upon success
0037  * @retval PMIX_ERROR   Upon failures
0038  *
0039  * This function is invoked during pmix_init();
0040  */
0041 int pmix_pdl_base_open(pmix_mca_base_open_flag_t flags);
0042 
0043 /**
0044  * Select an available component.
0045  *
0046  * @retval PMIX_SUCCESS Upon Success
0047  * @retval PMIX_NOT_FOUND If no component can be selected
0048  * @retval PMIX_ERROR Upon other failure
0049  *
0050  */
0051 int pmix_pdl_base_select(void);
0052 
0053 /**
0054  * Finalize the PDL MCA framework
0055  *
0056  * @retval PMIX_SUCCESS Upon success
0057  * @retval PMIX_ERROR   Upon failures
0058  *
0059  * This function is invoked during pmix_finalize();
0060  */
0061 int pmix_pdl_base_close(void);
0062 
0063 /**
0064  * Open a DSO
0065  *
0066  * (see pmix_pdl_base_module_open_ft_t in pmix/mca/pdl/pdl.h for
0067  * documentation of this function)
0068  */
0069 int pmix_pdl_open(const char *fname, bool use_ext, bool private_namespace,
0070                   pmix_pdl_handle_t **handle, char **err_msg);
0071 
0072 /**
0073  * Lookup a symbol in a DSO
0074  *
0075  * (see pmix_pdl_base_module_lookup_ft_t in pmix/mca/pdl/pdl.h for
0076  * documentation of this function)
0077  */
0078 int pmix_pdl_lookup(pmix_pdl_handle_t *handle, const char *symbol, void **ptr, char **err_msg);
0079 
0080 /**
0081  * Close a DSO
0082  *
0083  * (see pmix_pdl_base_module_close_ft_t in pmix/mca/pdl/pdl.h for
0084  * documentation of this function)
0085  */
0086 int pmix_pdl_close(pmix_pdl_handle_t *handle);
0087 
0088 /**
0089  * Iterate over files in a path
0090  *
0091  * (see pmix_pdl_base_module_foreachfile_ft_t in pmix/mca/pdl/pdl.h for
0092  * documentation of this function)
0093  */
0094 int pmix_pdl_foreachfile(const char *search_path,
0095                          int (*cb_func)(const char *filename, void *context), void *context);
0096 
0097 END_C_DECLS
0098 
0099 #endif /* PMIX_PDL_BASE_H */