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
/**
* Copyright (C) Mellanox Technologies Ltd. 2001-2015. ALL RIGHTS RESERVED.
*
* See file LICENSE for terms.
*/
/**
* Get the total length of the data in @a iov buffers
*
* @param [in] iov @ref ucp_dt_iov_t buffer
* @param [in] iovcnt Number of entries in the @a iov buffer
*
* @return Total length of data in the @a iov buffers
*/
static inline size_t
/**
* Copy iov data buffers from @a iov to contiguous buffer @a dest with
* an iov item data @a iov_offset and iov item @a iovcnt_offset
*
* @param [in] dest Destination contiguous buffer
* (no offset applicable)
* @param [in] iov Source @ref ucp_dt_iov_t buffer
* @param [in] length Total data length to copy in bytes
* @param [inout] iov_offset The offset in bytes to start copying
* from an @a iov item pointed by
* @a iovcnt_offset. The @a iov_offset is not aligned
* by @ref ucp_dt_iov_t items length.
* @param [inout] iovcnt_offset Auxiliary offset to select @a iov item that
* belongs to the @a iov_offset. The point to start
* copying from should be selected as
* iov[iovcnt_offset].buffer + iov_offset
*/
void ;
/**
* Copy contiguous buffer @a src into @ref ucp_dt_iov_t data buffers in @a iov
* with an iov item data @a iov_offset and iov item @a iovcnt_offset
*
* @param [in] iov Destination @ref ucp_dt_iov_t buffer
* @param [in] iovcnt Size of the @a iov buffer
* @param [in] src Source contiguous buffer (no offset applicable)
* @param [in] length Total data length to copy in bytes
* @param [inout] iov_offset The offset in bytes to start copying
* to an @a iov item pointed by @a iovcnt_offset.
* The @a iov_offset is not aligned by
* @ref ucp_dt_iov_t items length.
* @param [inout] iovcnt_offset Auxiliary offset to select @a iov item that
* belongs to the @a iov_offset. The point to
* start copying to should be selected as
* iov[iovcnt_offset].buffer + iov_offset
*
* @return Size in bytes that was actually copied from @a src to @a iov. It must
* be less or equal to @a length.
*/
size_t ;
/**
* Seek to a logical offset in the iov
*
* @param [in] iov @ref ucp_dt_iov_t buffer to seek in
* @param [in] iovcnt Number of entries in the @a iov buffer
* @param [in] distance Distance to move, relative to the current
* location
* @param [inout] iov_offset The offset in bytes from the beginning of the
* current iov entry
* @param [inout] iovcnt_offset Current @a iov item index
*/
void ;
/**
* Count non-empty entries in the @a iov array
*
* @param [in] iov @ref ucp_dt_iov_t buffer to count
* @param [in] iovcnt Number of entries in the @a iov buffer
*
* @return Number of non-empty entries in the @a iov array
*/
size_t ;