#ifndef PMIX_PMDL_H
#define PMIX_PMDL_H
#include "src/include/pmix_config.h"
#include "src/class/pmix_list.h"
#include "src/mca/base/pmix_mca_base_framework.h"
#include "src/mca/base/pmix_mca_base_var.h"
#include "src/mca/mca.h"
#include "src/server/pmix_server_ops.h"
BEGIN_C_DECLS
typedef pmix_status_t (*pmix_pmdl_base_module_init_fn_t)(void);
typedef void (*pmix_pmdl_base_module_fini_fn_t)(void);
typedef pmix_status_t (*pmix_pmdl_base_module_harvest_envars_fn_t)(pmix_namespace_t *nptr,
const pmix_info_t info[],
size_t ninfo, pmix_list_t *ilist,
char ***priors);
typedef void (*pmix_pmdl_base_module_parse_file_envars_fn_t)(pmix_list_t *ilist);
typedef pmix_status_t (*pmix_pmdl_base_module_setup_ns_fn_t)(pmix_namespace_t *nptr,
pmix_info_t *info);
typedef pmix_status_t (*pmix_pmdl_base_module_setup_ns_kv_fn_t)(pmix_namespace_t *nptr,
pmix_kval_t *kv);
typedef pmix_status_t (*pmix_pmdl_base_module_reg_nspace_fn_t)(pmix_namespace_t *nptr);
typedef pmix_status_t (*pmix_pmdl_base_module_setup_client_fn_t)(pmix_namespace_t *nptr,
pmix_rank_t rank,
uint32_t apppnum);
typedef pmix_status_t (*pmix_pmdl_base_module_setup_fork_fn_t)(const pmix_proc_t *peer, char ***env,
char ***priors);
typedef void (*pmix_pmdl_base_module_dregister_nspace_fn_t)(pmix_namespace_t *nptr);
typedef struct {
char *name;
pmix_pmdl_base_module_init_fn_t init;
pmix_pmdl_base_module_fini_fn_t finalize;
pmix_pmdl_base_module_harvest_envars_fn_t harvest_envars;
pmix_pmdl_base_module_parse_file_envars_fn_t parse_file_envars;
pmix_pmdl_base_module_setup_ns_fn_t setup_nspace;
pmix_pmdl_base_module_setup_ns_kv_fn_t setup_nspace_kv;
pmix_pmdl_base_module_reg_nspace_fn_t register_nspace;
pmix_pmdl_base_module_setup_client_fn_t setup_client;
pmix_pmdl_base_module_setup_fork_fn_t setup_fork;
pmix_pmdl_base_module_dregister_nspace_fn_t deregister_nspace;
} pmix_pmdl_module_t;
typedef pmix_status_t (*pmix_pmdl_base_API_harvest_envars_fn_t)(char *nspace,
const pmix_info_t info[],
size_t ninfo, pmix_list_t *ilist);
typedef pmix_status_t (*pmix_pmdl_base_API_setup_fork_fn_t)(const pmix_proc_t *peer, char ***env);
typedef void (*pmix_pmdl_base_API_dregister_nspace_fn_t)(const char *nptr);
typedef struct {
char *name;
pmix_pmdl_base_module_init_fn_t init;
pmix_pmdl_base_module_fini_fn_t finalize;
pmix_pmdl_base_API_harvest_envars_fn_t harvest_envars;
pmix_pmdl_base_module_parse_file_envars_fn_t parse_file_envars;
pmix_pmdl_base_module_setup_ns_fn_t setup_nspace;
pmix_pmdl_base_module_setup_ns_kv_fn_t setup_nspace_kv;
pmix_pmdl_base_module_reg_nspace_fn_t register_nspace;
pmix_pmdl_base_module_setup_client_fn_t setup_client;
pmix_pmdl_base_API_setup_fork_fn_t setup_fork;
pmix_pmdl_base_API_dregister_nspace_fn_t deregister_nspace;
} pmix_pmdl_API_module_t;
PMIX_EXPORT extern pmix_pmdl_API_module_t pmix_pmdl;
typedef pmix_mca_base_component_t pmix_pmdl_base_component_t;
#define PMIX_PMDL_BASE_VERSION_1_0_0 PMIX_MCA_BASE_VERSION_1_0_0("pmdl", 1, 0, 0)
END_C_DECLS
#endif