File indexing completed on 2025-02-23 10:12:53
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025 #ifndef PMIX_PGPU_BASE_H_
0026 #define PMIX_PGPU_BASE_H_
0027
0028 #include "src/include/pmix_config.h"
0029
0030 #ifdef HAVE_SYS_TIME_H
0031 # include <sys/time.h> /* for struct timeval */
0032 #endif
0033 #ifdef HAVE_STRING_H
0034 # include <string.h>
0035 #endif
0036
0037 #include "src/class/pmix_list.h"
0038 #include "src/class/pmix_pointer_array.h"
0039 #include "src/mca/base/pmix_mca_base_framework.h"
0040 #include "src/mca/mca.h"
0041
0042 #include "src/mca/pgpu/pgpu.h"
0043
0044 BEGIN_C_DECLS
0045
0046
0047
0048
0049 PMIX_EXPORT extern pmix_mca_base_framework_t pmix_pgpu_base_framework;
0050
0051
0052
0053
0054
0055
0056 PMIX_EXPORT pmix_status_t pmix_pgpu_base_select(void);
0057
0058
0059
0060
0061 struct pmix_pgpu_base_active_module_t {
0062 pmix_list_item_t super;
0063 int pri;
0064 pmix_pgpu_module_t *module;
0065 pmix_pgpu_base_component_t *component;
0066 };
0067 typedef struct pmix_pgpu_base_active_module_t pmix_pgpu_base_active_module_t;
0068 PMIX_EXPORT PMIX_CLASS_DECLARATION(pmix_pgpu_base_active_module_t);
0069
0070
0071 struct pmix_pgpu_globals_t {
0072 pmix_list_t actives;
0073 pmix_list_t nspaces;
0074 bool selected;
0075 };
0076 typedef struct pmix_pgpu_globals_t pmix_pgpu_globals_t;
0077
0078 PMIX_EXPORT extern pmix_pgpu_globals_t pmix_pgpu_globals;
0079
0080 PMIX_EXPORT pmix_status_t pmix_pgpu_base_allocate(char *nspace,
0081 pmix_info_t info[], size_t ninfo,
0082 pmix_list_t *ilist);
0083 PMIX_EXPORT pmix_status_t pmix_pgpu_base_setup_local(char *nspace,
0084 pmix_info_t info[], size_t ninfo);
0085 PMIX_EXPORT pmix_status_t pmix_pgpu_base_setup_fork(const pmix_proc_t *peer, char ***env);
0086 PMIX_EXPORT void pmix_pgpu_base_child_finalized(pmix_proc_t *peer);
0087 PMIX_EXPORT void pmix_pgpu_base_local_app_finalized(pmix_namespace_t *nptr);
0088 PMIX_EXPORT void pmix_pgpu_base_deregister_nspace(char *nspace);
0089 PMIX_EXPORT pmix_status_t pmix_pgpu_base_collect_inventory(pmix_info_t directives[], size_t ndirs,
0090 pmix_list_t *inventory);
0091 PMIX_EXPORT pmix_status_t pmix_pgpu_base_deliver_inventory(pmix_info_t info[], size_t ninfo,
0092 pmix_info_t directives[], size_t ndirs);
0093 PMIX_EXPORT pmix_status_t pmix_pgpu_base_harvest_envars(char **incvars, char **excvars,
0094 pmix_list_t *ilist);
0095
0096 END_C_DECLS
0097
0098 #endif