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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
/**
* Copyright (C) Mellanox Technologies Ltd. 2001-2019. ALL RIGHTS RESERVED.
*
* See file LICENSE for terms.
*/
/* Forward declaration */
typedef struct uct_component uct_component_t;
/**
* Keeps information about allocated configuration structure, to be used when
* releasing the options.
*/
typedef struct uct_config_bundle uct_config_bundle_t;
/**
* Component method to query component memory domain resources.
*
* @param [in] component Query memory domain resources for this
* component.
* @param [out] resources_p Filled with a pointer to an array of
* memory domain resources, which should be
* released with ucs_free().
* @param [out] num_resources_p Filled with the number of memory domain
* resource entries in the array.
*
* @return UCS_OK on success or error code in case of failure.
*/
typedef ;
/**
* Component method to open a memory domain.
*
* @param [in] component Open memory domain resources on this
* component.
* @param [in] md_name Name of the memory domain to open, as
* returned by
* @ref uct_component_query_resources_func_t
* @param [in] config Memory domain configuration.
* @param [out] md_p Handle to the opened memory domain.
*
* @return UCS_OK on success or error code in case of failure.
*/
typedef ;
/**
* Component method to open a client/server connection manager.
*
* @param [in] component Open a connection manager on this
* component.
* @param [in] worker Open the connection manager on this worker.
* @param [in] config Connection manager configuration.
* @param [out] cm_p Filled with a handle to the connection manager.
*
* @return UCS_OK on success or error code in case of failure.
*/
typedef ;
/**
* Component method to unpack a remote key buffer into a remote key object.
*
* @param [in] component Unpack the remote key buffer on this
* component.
* @param [in] rkey_buffer Remote key buffer to unpack.
* @param [in] config Memory domain configuration.
* @param [out] rkey_p Filled with a pointer to the unpacked
* remote key.
* @param [out] handle_p Filled with an additional handle which
* is used to release the remote key, but
* is not required for remote memory
* access operations.
*
* @return UCS_OK on success or error code in case of failure.
*/
typedef ;
/**
* Component method to obtain a locally accessible pointer to a remote key.
*
* @param [in] component Get remote key memory pointer on this
* component.
* @param [in] rkey Obtain the pointer for this remote key.
* @param [in] handle Remote key handle, as returned from
* @ref uct_component_rkey_unpack_func_t.
* @param [in] remote_addr Remote address to obtain the pointer for.
* @param [out] local_addr_p Filled with the local access pointer.
*
* @return UCS_OK on success or error code in case of failure.
*/
typedef ;
/**
* Component method to release an unpacked remote key.
*
* @param [in] component Release the remote key of this
* component.
* @param [in] rkey Release this remote key.
* @param [in] handle Remote key handle, as returned from
* @ref uct_component_rkey_unpack_func_t.
*
* @return UCS_OK on success or error code in case of failure.
*/
typedef ;
/**
* Component method to initialize VFS for memory domain.
*
* @param [in] md Handle to the opened memory domain.
*/
typedef void ;
/**
* Defines a UCT component
*/
;
/**
* Register a component for usage, so it will be returned from
* @ref uct_query_components.
*
* @param [in] _component Pointer to a global component structure to register.
*/
/**
* Helper macro to initialize component's transport list head.
*/
ucs_status_t ;