OpenMPI 0.1.1

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

- File List
- Globals

base.h
1 /*
2 * Copyright (c) 2007-2008 Cisco Systems, Inc. All rights reserved.
3 * Copyright (c) 2009 Mellanox Technologies. All rights reserved.
4 *
5 * $COPYRIGHT$
6 *
7 * Additional copyrights may follow
8 *
9 * $HEADER$
10 */
11
12
13 #ifndef BTL_WV_CONNECT_BASE_H
14 #define BTL_WV_CONNECT_BASE_H
15
16 #include "connect/connect.h"
17
18 #ifdef OMPI_HAVE_RDMAOE
19 #define BTL_WV_CONNECT_BASE_CHECK_IF_NOT_IB(btl) \
20 (((IBV_TRANSPORT_IB != ((btl)->device->ib_dev->transport_type)) || \
21 (IBV_LINK_LAYER_ETHERNET == ((btl)->ib_port_attr.link_layer))) ? \
22 true : false)
23 #else
24 #define BTL_WV_CONNECT_BASE_CHECK_IF_NOT_IB(btl) \
25 ((WV_TRANSPORT_IB != ((btl)->device->ib_dev->transport_type)) ? \
26 true : false)
27 #endif
28
29 BEGIN_C_DECLS
30
31 /*
32 * Forward declaration to resolve circular dependency
33 */
34 struct mca_btl_base_endpoint_t;
35
36 /*
37 * Open function
38 */
39 int ompi_btl_wv_connect_base_register(void);
40
41 /*
42 * Component-wide CPC init
43 */
44 int ompi_btl_wv_connect_base_init(void);
45
46 /*
47 * Query CPCs to see if they want to run on a specific module
48 */
49 int ompi_btl_wv_connect_base_select_for_local_port
50 (mca_btl_wv_module_t *btl);
51
52 /*
53 * Forward reference to avoid an include file loop
54 */
55 struct mca_btl_wv_proc_modex_t;
56
57 /*
58 * Select function
59 */
60 int ompi_btl_wv_connect_base_find_match
61 (mca_btl_wv_module_t *btl,
62 struct mca_btl_wv_proc_modex_t *peer_port,
63 ompi_btl_wv_connect_base_module_t **local_cpc,
64 ompi_btl_wv_connect_base_module_data_t **remote_cpc_data);
65
66 /*
67 * Find a CPC's index so that we can send it in the modex
68 */
69 int ompi_btl_wv_connect_base_get_cpc_index
70 (ompi_btl_wv_connect_base_component_t *cpc);
71
72 /*
73 * Lookup a CPC by its index (received from the modex)
74 */
75 ompi_btl_wv_connect_base_component_t *
76 ompi_btl_wv_connect_base_get_cpc_byindex(uint8_t index);
77
78 /*
79 * Allocate a CTS frag
80 */
81 int ompi_btl_wv_connect_base_alloc_cts(
82 struct mca_btl_base_endpoint_t *endpoint);
83
84 /*
85 * Free a CTS frag
86 */
87 int ompi_btl_wv_connect_base_free_cts(
88 struct mca_btl_base_endpoint_t *endpoint);
89
90 /*
91 * Start a new connection to an endpoint
92 */
93 int ompi_btl_wv_connect_base_start(
94 ompi_btl_wv_connect_base_module_t *cpc,
95 struct mca_btl_base_endpoint_t *endpoint);
96
97
98 /*
99 * Component-wide CPC finalize
100 */
101 void ompi_btl_wv_connect_base_finalize(void);
102
103 END_C_DECLS
104
105 #endif
mca_btl_wv_module_t
IB BTL Interface.
Definition: btl_wv.h:391
ompi_btl_wv_connect_base_component_t
CPC component struct.
Definition: connect.h:245
mca_btl_wv_proc_modex_t
Data received from the modex.
Definition: btl_wv_proc.h:44
ompi_btl_wv_connect_base_module_data_t
Meta data about a CPC module.
Definition: connect.h:303
mca_btl_base_endpoint_t
State of ELAN endpoint connection.
Definition: btl_elan_endpoint.h:33
ompi_btl_wv_connect_base_module_t
Struct for holding CPC module and associated meta data.
Definition: connect.h:328