Print this page
9842 man page typos and spelling
Split |
Close |
Expand all |
Collapse all |
--- old/usr/src/man/man3dat/dat_ep_post_recv.3dat.man.txt
+++ new/usr/src/man/man3dat/dat_ep_post_recv.3dat.man.txt
1 1 DAT_EP_POST_RECV(3DAT) Direct Access Transport Library Functions
2 2
3 3
4 4
5 5 NAME
6 6 dat_ep_post_recv - receive data over the connection of the Endpoint
7 7
8 8 SYNOPSIS
9 9 cc [ flag... ] file... -ldat [ library... ]
10 10 #include <dat/udat.h>
11 11
12 12 DAT_RETURN
13 13 dat_ep_post_recv (
14 14 IN DAT_EP_HANDLE ep_handle,
15 15 IN DAT_COUNT num_segments,
16 16 IN DAT_LMR_TRIPLET *local_iov,
17 17 IN DAT_DTO_COOKIE user_cookie,
18 18 IN DAT_COMPLETION_FLAGS completion_flags
19 19 )
20 20
21 21
22 22 PARAMETERS
23 23 ep_handle
24 24 Handle for an instance of the Endpoint.
25 25
26 26
27 27 num_segments
28 28 Number of lmr_triplets in local_iov. Can be 0 for
29 29 receiving a 0 size message.
30 30
31 31
32 32 local_iov
33 33 I/O Vector that specifies the local buffer to be
34 34 filled. Can be NULL for receiving a 0 size message.
35 35
36 36
37 37 user_cookie:
38 38 User-provided cookie that is returned to the
39 39 Consumer at the completion of the Receive DTO. Can
40 40 be NULL.
41 41
42 42
43 43 completion_flags
44 44 Flags for posted Receive. The default
45 45 DAT_COMPLETION_DEFAULT_FLAG is 0x00. Other values
46 46 are as follows:
47 47
48 48 Notification of Completion
49 49 DAT_COMPLETION_UNSIGNALLED_FLAG
50 50
51 51 0x04
52 52 Non-
53 53 notification
54 54 completion.
55 55 Local
56 56 Endpoint must
57 57 be configured
58 58 for
59 59 Unsignaled
60 60 CompletionNotification
61 61 Suppression.
62 62
63 63
64 64
65 65
66 66 DESCRIPTION
67 67 The dat_ep_post_recv() function requests the receive of the data over
68 68 the connection of the ep_handle Endpoint of the incoming message into
69 69 the local_iov.
70 70
71 71
72 72 The num_segments parameter specifies the number of segments in the
73 73 local_iov. The local_iov segments are filled in the I/O Vector order
74 74 until the whole message is received. This ensures that all the "front"
75 75 segments of the local_iov I/O Vector are completely filled, only one
76 76 segment is partially filled, if needed, and all segments that follow it
77 77 are not filled at all.
78 78
79 79
80 80 The user_cookie allows Consumers to have unique identifiers for each
81 81 DTO. These identifiers are completely under user control and are
82 82 opaque to the Provider. There is no requirement on the Consumer that
83 83 the value user_cookie should be unique for each DTO. The user_cookie is
84 84 returned to the Consumer in the Completion event for the posted
85 85 Receive.
86 86
87 87
88 88 The completion of the posted Receive is reported to the Consumer
89 89 asynchronously through a DTO Completion event based on the
90 90 configuration of the connection for Solicited Wait and the specified
91 91 completion_flags value for the matching Send. The value of
92 92 DAT_COMPLETION _UNSIGNALLED_FLAG is only valid if the Endpoint Recv
93 93 Completion Flags DAT_COMPLETION_UNSIGNALLED_FLAG. Otherwise,
94 94 DAT_INVALID_PARAMETER is returned.
95 95
↓ open down ↓ |
95 lines elided |
↑ open up ↑ |
96 96
97 97 A Consumer must not modify the local_iov or its content until the DTO
98 98 is completed. When a Consumer does not adhere to this rule, the
99 99 behavior of the Provider and the underlying Transport is not defined.
100 100 Providers that allow Consumers to get ownership of the local_iov but
101 101 not the memory it specified back after the dat_ep_post_recv() returns
102 102 should document this behavior and also specify its support in Provider
103 103 attributes. This behavior allows Consumer full control of the local_iov
104 104 content after dat_ep_post_recv() returns. Because this behavior is not
105 105 guaranteed by all Providers, portable Consumers should not rely on this
106 - behavior. Consumers shouldnot rely on the Provider copying local_iov
106 + behavior. Consumers should not rely on the Provider copying local_iov
107 107 information.
108 108
109 109
110 110 The DAT_SUCCESS return of the dat_ep_post_recv() is at least the
111 111 equivalent of posting a Receive operation directly by native Transport.
112 112 Providers should avoid resource allocation as part of
113 113 dat_ep_post_recv() to ensure that this operation is nonblocking and
114 114 thread safe for an UpCall.
115 115
116 116
117 117 If the size of an incoming message is larger than the size of the
118 118 local_iov, the reported status of the posted Receive DTO in the
119 119 corresponding Completion DTO event is DAT_DTO_LENGTH_ERROR. If the
120 120 reported status of the Completion DTO event corresponding to the posted
121 121 Receive DTO is not DAT_DTO_SUCCESS, the content of the local_iov is not
122 122 defined.
123 123
124 124
125 125 The operation is valid for all states of the Endpoint. The actual data
126 126 transfer does not take place until the Endpoint is in the
127 127 DAT_EP_STATE_CONNECTED state. The operation on the Endpoint in
128 128 DAT_EP_STATE_DISCONNECTED is allowed. If the operation returns
129 129 successfully, the posted Recv is immediately flushed to
130 130 recv_evd_handle.
131 131
132 132 RETURN VALUES
133 133 DAT_SUCCESS
134 134 The operation was successful.
135 135
136 136
137 137 DAT_INSUFFICIENT_RESOURCES
138 138 The operation failed due to resource
139 139 limitations.
140 140
141 141
142 142 DAT_INVALID_PARAMETER
143 143 Invalid parameter. For example, one of
144 144 the IOV segments pointed to a memory
145 145 outside its LMR.
146 146
147 147
148 148 DAT_INVALID_HANDLE
149 149 The ep_handle parameter is invalid.
150 150
151 151
152 152 DAT_PROTECTION_VIOLATION
153 153 Protection violation for local or remote
154 154 memory access. Protection Zone mismatch
155 155 between an LMR of one of the local_iov
156 156 segments and the local Endpoint.
157 157
158 158
159 159 DAT_PRIVILEGES_VIOLATION
160 160 Privileges violation for local or remote
161 161 memory access. One of the LMRs used in
162 162 local_iov was either invalid or did not
163 163 have the local read privileges.
164 164
165 165
166 166 USAGE
167 167 For best Recv operation performance, the Consumer should align each
168 168 buffer segment of local_iov to the Optimal Buffer Alignment attribute
169 169 of the Provider. For portable applications, the Consumer should align
170 170 each buffer segment of local_iov to the DAT_OPTIMAL_ALIGNMENT.
171 171
172 172 ATTRIBUTES
173 173 See attributes(5) for descriptions of the following attributes:
174 174
175 175
176 176
177 177
178 178 +--------------------+---------------------------+
179 179 | ATTRIBUTE TYPE | ATTRIBUTE VALUE |
180 180 +--------------------+---------------------------+
181 181 |Interface Stability | Standard: uDAPL, 1.1, 1.2 |
182 182 +--------------------+---------------------------+
183 183 |MT-Level | Unsafe |
184 184 +--------------------+---------------------------+
185 185
186 186 SEE ALSO
187 187 libdat(3LIB), attributes(5)
188 188
189 189
190 190
191 191 July 16, 2004 DAT_EP_POST_RECV(3DAT)
↓ open down ↓ |
75 lines elided |
↑ open up ↑ |
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX