OpenMPI  0.1.1
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  */
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  */
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,
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
71 
72 /*
73  * Lookup a CPC by its index (received from the modex)
74  */
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(
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
IB BTL Interface.
Definition: btl_wv.h:391
CPC component struct.
Definition: connect.h:245
Data received from the modex.
Definition: btl_wv_proc.h:44
Meta data about a CPC module.
Definition: connect.h:303
State of ELAN endpoint connection.
Definition: btl_elan_endpoint.h:33
Struct for holding CPC module and associated meta data.
Definition: connect.h:328