Warning, file /include/pmix/src/mca/pnet/pnet.h was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
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
0026
0027 #ifndef PMIX_PNET_H
0028 #define PMIX_PNET_H
0029
0030 #include "src/include/pmix_config.h"
0031 #include "include/pmix.h"
0032
0033 #include "src/class/pmix_list.h"
0034 #include "src/include/pmix_globals.h"
0035 #include "src/mca/base/pmix_mca_base_framework.h"
0036 #include "src/mca/base/pmix_mca_base_var.h"
0037 #include "src/mca/mca.h"
0038 #include "src/server/pmix_server_ops.h"
0039
0040 BEGIN_C_DECLS
0041
0042
0043
0044
0045
0046
0047
0048 typedef pmix_status_t (*pmix_pnet_base_module_init_fn_t)(void);
0049
0050
0051
0052
0053
0054 typedef void (*pmix_pnet_base_module_fini_fn_t)(void);
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065 typedef pmix_status_t (*pmix_pnet_base_module_allocate_fn_t)(pmix_namespace_t *nptr,
0066 pmix_info_t info[], size_t ninfo,
0067 pmix_list_t *ilist);
0068
0069
0070
0071
0072
0073 typedef pmix_status_t (*pmix_pnet_base_module_setup_local_net_fn_t)(pmix_nspace_env_cache_t *nptr,
0074 pmix_info_t info[],
0075 size_t ninfo);
0076
0077
0078
0079
0080
0081
0082 typedef void (*pmix_pnet_base_module_child_finalized_fn_t)(pmix_proc_t *peer);
0083
0084
0085
0086
0087
0088 typedef void (*pmix_pnet_base_module_local_app_finalized_fn_t)(pmix_namespace_t *nptr);
0089
0090
0091
0092
0093
0094 typedef void (*pmix_pnet_base_module_dregister_nspace_fn_t)(pmix_namespace_t *nptr);
0095
0096
0097
0098
0099
0100
0101
0102
0103
0104
0105
0106
0107
0108
0109
0110
0111
0112
0113
0114 typedef pmix_status_t (*pmix_pnet_base_module_collect_inventory_fn_t)(
0115 pmix_info_t directives[], size_t ndirs, pmix_list_t *inventory);
0116
0117
0118
0119
0120
0121
0122
0123
0124
0125
0126
0127
0128
0129
0130
0131
0132
0133
0134
0135
0136
0137 typedef pmix_status_t (*pmix_pnet_base_module_deliver_inventory_fn_t)(
0138 pmix_info_t info[], size_t ninfo, pmix_info_t directives[], size_t ndirs);
0139
0140
0141
0142
0143
0144
0145
0146
0147 typedef pmix_status_t (*pmix_pnet_base_module_register_fabric_fn_t)(pmix_fabric_t *fabric,
0148 const pmix_info_t directives[],
0149 size_t ndirs,
0150 pmix_op_cbfunc_t cbfunc,
0151 void *cbdata);
0152
0153
0154 typedef pmix_status_t (*pmix_pnet_base_module_update_fabric_fn_t)(pmix_fabric_t *fabric);
0155
0156
0157 typedef pmix_status_t (*pmix_pnet_base_module_deregister_fabric_fn_t)(pmix_fabric_t *fabric);
0158
0159
0160
0161
0162
0163 typedef struct {
0164 char *name;
0165
0166 void *plane;
0167
0168 pmix_pnet_base_module_init_fn_t init;
0169 pmix_pnet_base_module_fini_fn_t finalize;
0170 pmix_pnet_base_module_allocate_fn_t allocate;
0171 pmix_pnet_base_module_setup_local_net_fn_t setup_local_network;
0172 pmix_pnet_base_module_child_finalized_fn_t child_finalized;
0173 pmix_pnet_base_module_local_app_finalized_fn_t local_app_finalized;
0174 pmix_pnet_base_module_dregister_nspace_fn_t deregister_nspace;
0175 pmix_pnet_base_module_collect_inventory_fn_t collect_inventory;
0176 pmix_pnet_base_module_deliver_inventory_fn_t deliver_inventory;
0177 pmix_pnet_base_module_register_fabric_fn_t register_fabric;
0178 pmix_pnet_base_module_update_fabric_fn_t update_fabric;
0179 pmix_pnet_base_module_deregister_fabric_fn_t deregister_fabric;
0180 } pmix_pnet_module_t;
0181
0182
0183
0184
0185
0186 typedef pmix_status_t (*pmix_pnet_base_API_allocate_fn_t)(char *nspace, pmix_info_t info[],
0187 size_t ninfo, pmix_list_t *ilist);
0188 typedef pmix_status_t (*pmix_pnet_base_API_setup_local_net_fn_t)(char *nspace, pmix_info_t info[],
0189 size_t ninfo);
0190
0191
0192
0193
0194 typedef pmix_status_t (*pmix_pnet_base_API_setup_fork_fn_t)(const pmix_proc_t *peer, char ***env);
0195
0196 typedef void (*pmix_pnet_base_API_deregister_nspace_fn_t)(char *nspace);
0197
0198
0199
0200
0201 typedef struct {
0202 char *name;
0203
0204 pmix_pnet_base_module_init_fn_t init;
0205 pmix_pnet_base_module_fini_fn_t finalize;
0206 pmix_pnet_base_API_allocate_fn_t allocate;
0207 pmix_pnet_base_API_setup_local_net_fn_t setup_local_network;
0208 pmix_pnet_base_API_setup_fork_fn_t setup_fork;
0209 pmix_pnet_base_module_child_finalized_fn_t child_finalized;
0210 pmix_pnet_base_module_local_app_finalized_fn_t local_app_finalized;
0211 pmix_pnet_base_API_deregister_nspace_fn_t deregister_nspace;
0212 pmix_pnet_base_module_collect_inventory_fn_t collect_inventory;
0213 pmix_pnet_base_module_deliver_inventory_fn_t deliver_inventory;
0214 pmix_pnet_base_module_register_fabric_fn_t register_fabric;
0215 pmix_pnet_base_module_update_fabric_fn_t update_fabric;
0216 pmix_pnet_base_module_deregister_fabric_fn_t deregister_fabric;
0217 } pmix_pnet_API_module_t;
0218
0219
0220 PMIX_EXPORT extern pmix_pnet_API_module_t pmix_pnet;
0221
0222
0223
0224
0225 typedef pmix_mca_base_component_t pmix_pnet_base_component_t;
0226
0227
0228
0229
0230 #define PMIX_PNET_BASE_VERSION_1_0_0 PMIX_MCA_BASE_VERSION_1_0_0("pnet", 1, 0, 0)
0231
0232 END_C_DECLS
0233
0234 #endif