1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 #ifndef MCA_OOB_H_
28 #define MCA_OOB_H_
29
30 #include "orte_config.h"
31 #include "orte/types.h"
32
33 #ifdef HAVE_UNISTD_H
34 #include <unistd.h>
35 #endif
36 #ifdef HAVE_SYS_UIO_H
37 #include <sys/uio.h>
38 #endif
39 #ifdef HAVE_NET_UIO_H
40 #include <net/uio.h>
41 #endif
42
43 #include "opal/class/opal_list.h"
44 #include "opal/class/opal_pointer_array.h"
45 #include "orte/mca/mca.h"
46
47 #include "orte/mca/rml/base/base.h"
48
49 BEGIN_C_DECLS
50
51 typedef int (*mca_oob_base_component_avail_fn_t)(void);
52 typedef int (*mca_oob_base_component_startup_fn_t)(void);
53 typedef void (*mca_oob_base_component_shutdown_fn_t)(void);
54 typedef int (*mca_oob_base_component_send_fn_t)(orte_rml_send_t *msg);
55 typedef char* (*mca_oob_base_component_get_addr_fn_t)(void);
56 typedef int (*mca_oob_base_component_set_addr_fn_t)(orte_process_name_t *peer,
57 char **uris);
58 typedef bool (*mca_oob_base_component_is_reachable_fn_t)(orte_process_name_t *peer);
59 typedef void (*mca_oob_ping_callback_fn_t)(int status, void *cbdata);
60
61 #if OPAL_ENABLE_FT_CR == 1
62 typedef int (*mca_oob_base_component_ft_event_fn_t)(int state);
63 #endif
64
65 typedef struct {
66 mca_base_component_t oob_base;
67 mca_base_component_data_t oob_data;
68 int idx;
69 int priority;
70 mca_oob_base_component_avail_fn_t available;
71 mca_oob_base_component_startup_fn_t startup;
72 mca_oob_base_component_shutdown_fn_t shutdown;
73 mca_oob_base_component_send_fn_t send_nb;
74 mca_oob_base_component_get_addr_fn_t get_addr;
75 mca_oob_base_component_set_addr_fn_t set_addr;
76 mca_oob_base_component_is_reachable_fn_t is_reachable;
77 #if OPAL_ENABLE_FT_CR == 1
78 mca_oob_base_component_ft_event_fn_t ft_event;
79 #endif
80 } mca_oob_base_component_t;
81
82
83
84
85 #define MCA_OOB_BASE_VERSION_2_0_0 \
86 ORTE_MCA_BASE_VERSION_2_1_0("oob", 2, 0, 0)
87
88 END_C_DECLS
89
90 #endif