File indexing completed on 2025-02-22 10:47:29
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 #ifndef MCA_OOB_H_
0030 #define MCA_OOB_H_
0031
0032 #include "prte_config.h"
0033 #include "types.h"
0034
0035 #ifdef HAVE_UNISTD_H
0036 # include <unistd.h>
0037 #endif
0038 #ifdef HAVE_SYS_UIO_H
0039 # include <sys/uio.h>
0040 #endif
0041 #ifdef HAVE_NET_UIO_H
0042 # include <net/uio.h>
0043 #endif
0044
0045 #include "src/class/pmix_list.h"
0046 #include "src/class/pmix_pointer_array.h"
0047 #include "src/mca/mca.h"
0048 #include "src/pmix/pmix-internal.h"
0049
0050 #include "src/rml/rml_types.h"
0051
0052 BEGIN_C_DECLS
0053
0054 typedef int (*mca_oob_base_component_avail_fn_t)(void);
0055 typedef int (*mca_oob_base_component_startup_fn_t)(void);
0056 typedef void (*mca_oob_base_component_shutdown_fn_t)(void);
0057 typedef int (*mca_oob_base_component_send_fn_t)(prte_rml_send_t *msg);
0058 typedef char *(*mca_oob_base_component_get_addr_fn_t)(void);
0059 typedef int (*mca_oob_base_component_set_addr_fn_t)(pmix_proc_t *peer, char **uris);
0060 typedef bool (*mca_oob_base_component_is_reachable_fn_t)(pmix_proc_t *peer);
0061 typedef void (*mca_oob_ping_callback_fn_t)(int status, void *cbdata);
0062
0063 typedef struct {
0064 pmix_mca_base_component_t oob_base;
0065 int idx;
0066 int priority;
0067 mca_oob_base_component_avail_fn_t available;
0068 mca_oob_base_component_startup_fn_t startup;
0069 mca_oob_base_component_shutdown_fn_t shutdown;
0070 mca_oob_base_component_send_fn_t send_nb;
0071 mca_oob_base_component_get_addr_fn_t get_addr;
0072 mca_oob_base_component_set_addr_fn_t set_addr;
0073 mca_oob_base_component_is_reachable_fn_t is_reachable;
0074 } prte_oob_base_component_t;
0075
0076
0077
0078
0079 #define PRTE_OOB_BASE_VERSION_2_0_0 PRTE_MCA_BASE_VERSION_3_0_0("oob", 2, 0, 0)
0080
0081 END_C_DECLS
0082
0083 #endif