1 /* 2 * Copyright (c) 2004-2010 The Trustees of Indiana University and Indiana 3 * University Research and Technology 4 * Corporation. All rights reserved. 5 * Copyright (c) 2015 Cisco Systems, Inc. All rights reserved. 6 * Copyright (c) 2016-2017 Intel, Inc. All rights reserved. 7 * $COPYRIGHT$ 8 * 9 * Additional copyrights may follow 10 * 11 * $HEADER$ 12 */ 13 14 #ifndef PMIX_PDL_BASE_H 15 #define PMIX_PDL_BASE_H 16 17 #include <src/include/pmix_config.h> 18 #include "src/mca/pdl/pdl.h" 19 #include "src/util/pmix_environ.h" 20 21 #include "src/mca/base/base.h" 22 23 24 BEGIN_C_DECLS 25 26 /** 27 * Globals 28 */ 29 PMIX_EXPORT extern pmix_mca_base_framework_t pmix_pdl_base_framework; 30 extern pmix_pdl_base_component_t 31 *pmix_pdl_base_selected_component; 32 extern pmix_pdl_base_module_t *pmix_pdl; 33 34 35 /** 36 * Initialize the PDL MCA framework 37 * 38 * @retval PMIX_SUCCESS Upon success 39 * @retval PMIX_ERROR Upon failures 40 * 41 * This function is invoked during pmix_init(); 42 */ 43 int pmix_pdl_base_open(pmix_mca_base_open_flag_t flags); 44 45 /** 46 * Select an available component. 47 * 48 * @retval PMIX_SUCCESS Upon Success 49 * @retval PMIX_NOT_FOUND If no component can be selected 50 * @retval PMIX_ERROR Upon other failure 51 * 52 */ 53 int pmix_pdl_base_select(void); 54 55 /** 56 * Finalize the PDL MCA framework 57 * 58 * @retval PMIX_SUCCESS Upon success 59 * @retval PMIX_ERROR Upon failures 60 * 61 * This function is invoked during pmix_finalize(); 62 */ 63 int pmix_pdl_base_close(void); 64 65 /** 66 * Open a DSO 67 * 68 * (see pmix_pdl_base_module_open_ft_t in pmix/mca/pdl/pdl.h for 69 * documentation of this function) 70 */ 71 int pmix_pdl_open(const char *fname, 72 bool use_ext, bool private_namespace, 73 pmix_pdl_handle_t **handle, char **err_msg); 74 75 /** 76 * Lookup a symbol in a DSO 77 * 78 * (see pmix_pdl_base_module_lookup_ft_t in pmix/mca/pdl/pdl.h for 79 * documentation of this function) 80 */ 81 int pmix_pdl_lookup(pmix_pdl_handle_t *handle, 82 const char *symbol, 83 void **ptr, char **err_msg); 84 85 /** 86 * Close a DSO 87 * 88 * (see pmix_pdl_base_module_close_ft_t in pmix/mca/pdl/pdl.h for 89 * documentation of this function) 90 */ 91 int pmix_pdl_close(pmix_pdl_handle_t *handle); 92 93 /** 94 * Iterate over files in a path 95 * 96 * (see pmix_pdl_base_module_foreachfile_ft_t in pmix/mca/pdl/pdl.h for 97 * documentation of this function) 98 */ 99 int pmix_pdl_foreachfile(const char *search_path, 100 int (*cb_func)(const char *filename, void *context), 101 void *context); 102 103 END_C_DECLS 104 105 #endif /* PMIX_PDL_BASE_H */