File indexing completed on 2026-01-02 10:02:06
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
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037 #ifndef MCA_GRPCOMM_H
0038 #define MCA_GRPCOMM_H
0039
0040
0041
0042
0043
0044 #include "prte_config.h"
0045 #include "constants.h"
0046 #include "types.h"
0047
0048 #include "src/class/pmix_bitmap.h"
0049 #include "src/class/pmix_list.h"
0050 #include "src/pmix/pmix-internal.h"
0051 #include "src/mca/mca.h"
0052 #include "src/rml/rml_types.h"
0053
0054 BEGIN_C_DECLS
0055
0056 typedef struct {
0057 pmix_object_t super;
0058 prte_event_t ev;
0059 pmix_lock_t lock;
0060 pmix_group_operation_t op;
0061 char *grpid;
0062 const pmix_proc_t *procs;
0063 size_t nprocs;
0064 const pmix_info_t *directives;
0065 size_t ndirs;
0066 pmix_info_t *info;
0067 size_t ninfo;
0068 pmix_info_cbfunc_t cbfunc;
0069 void *cbdata;
0070 } prte_pmix_grp_caddy_t;
0071 PMIX_CLASS_DECLARATION(prte_pmix_grp_caddy_t);
0072
0073
0074
0075 typedef void (*prte_grpcomm_cbfunc_t)(int status, pmix_data_buffer_t *buf, void *cbdata);
0076
0077
0078
0079
0080
0081
0082 typedef int (*prte_grpcomm_base_module_init_fn_t)(void);
0083
0084
0085 typedef void (*prte_grpcomm_base_module_finalize_fn_t)(void);
0086
0087
0088
0089 typedef int (*prte_grpcomm_base_module_xcast_fn_t)(prte_rml_tag_t tag,
0090 pmix_data_buffer_t *msg);
0091
0092
0093
0094
0095
0096
0097
0098 typedef int (*prte_grpcomm_base_module_fence_fn_t)(const pmix_proc_t procs[], size_t nprocs,
0099 const pmix_info_t info[], size_t ninfo, char *data,
0100 size_t ndata, pmix_modex_cbfunc_t cbfunc, void *cbdata);
0101
0102
0103
0104
0105
0106 typedef int (*prte_grpcomm_base_module_grp_fn_t)(pmix_group_operation_t op, char *grpid,
0107 const pmix_proc_t procs[], size_t nprocs,
0108 const pmix_info_t directives[], size_t ndirs,
0109 pmix_info_cbfunc_t cbfunc, void *cbdata);
0110
0111
0112
0113 typedef struct {
0114 prte_grpcomm_base_module_init_fn_t init;
0115 prte_grpcomm_base_module_finalize_fn_t finalize;
0116
0117 prte_grpcomm_base_module_xcast_fn_t xcast;
0118 prte_grpcomm_base_module_fence_fn_t fence;
0119 prte_grpcomm_base_module_grp_fn_t group;
0120 } prte_grpcomm_base_module_t;
0121
0122
0123
0124
0125 typedef pmix_mca_base_component_t prte_grpcomm_base_component_t;
0126
0127
0128
0129
0130 #define PRTE_GRPCOMM_BASE_VERSION_4_0_0 \
0131 \
0132 PRTE_MCA_BASE_VERSION_3_0_0("grpcomm", 4, 0, 0)
0133
0134
0135 PRTE_EXPORT extern prte_grpcomm_base_module_t prte_grpcomm;
0136
0137 END_C_DECLS
0138
0139 #endif