1*7c478bd9Sstevel@tonic-gate /*
2*7c478bd9Sstevel@tonic-gate * CDDL HEADER START
3*7c478bd9Sstevel@tonic-gate *
4*7c478bd9Sstevel@tonic-gate * The contents of this file are subject to the terms of the
5*7c478bd9Sstevel@tonic-gate * Common Development and Distribution License, Version 1.0 only
6*7c478bd9Sstevel@tonic-gate * (the "License"). You may not use this file except in compliance
7*7c478bd9Sstevel@tonic-gate * with the License.
8*7c478bd9Sstevel@tonic-gate *
9*7c478bd9Sstevel@tonic-gate * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10*7c478bd9Sstevel@tonic-gate * or http://www.opensolaris.org/os/licensing.
11*7c478bd9Sstevel@tonic-gate * See the License for the specific language governing permissions
12*7c478bd9Sstevel@tonic-gate * and limitations under the License.
13*7c478bd9Sstevel@tonic-gate *
14*7c478bd9Sstevel@tonic-gate * When distributing Covered Code, include this CDDL HEADER in each
15*7c478bd9Sstevel@tonic-gate * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16*7c478bd9Sstevel@tonic-gate * If applicable, add the following below this CDDL HEADER, with the
17*7c478bd9Sstevel@tonic-gate * fields enclosed by brackets "[]" replaced with your own identifying
18*7c478bd9Sstevel@tonic-gate * information: Portions Copyright [yyyy] [name of copyright owner]
19*7c478bd9Sstevel@tonic-gate *
20*7c478bd9Sstevel@tonic-gate * CDDL HEADER END
21*7c478bd9Sstevel@tonic-gate */
22*7c478bd9Sstevel@tonic-gate /*
23*7c478bd9Sstevel@tonic-gate * Copyright (c) 2002-2003, Network Appliance, Inc. All rights reserved.
24*7c478bd9Sstevel@tonic-gate */
25*7c478bd9Sstevel@tonic-gate
26*7c478bd9Sstevel@tonic-gate /*
27*7c478bd9Sstevel@tonic-gate * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
28*7c478bd9Sstevel@tonic-gate * Use is subject to license terms.
29*7c478bd9Sstevel@tonic-gate */
30*7c478bd9Sstevel@tonic-gate
31*7c478bd9Sstevel@tonic-gate /*
32*7c478bd9Sstevel@tonic-gate *
33*7c478bd9Sstevel@tonic-gate * MODULE: dat_api.c
34*7c478bd9Sstevel@tonic-gate *
35*7c478bd9Sstevel@tonic-gate * PURPOSE: DAT Provider and Consumer registry functions.
36*7c478bd9Sstevel@tonic-gate *
37*7c478bd9Sstevel@tonic-gate */
38*7c478bd9Sstevel@tonic-gate
39*7c478bd9Sstevel@tonic-gate #include "dat_osd.h"
40*7c478bd9Sstevel@tonic-gate #include <dat/dat_registry.h>
41*7c478bd9Sstevel@tonic-gate
42*7c478bd9Sstevel@tonic-gate
dat_set_consumer_context(IN DAT_HANDLE dat_handle,IN DAT_CONTEXT context)43*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_set_consumer_context(
44*7c478bd9Sstevel@tonic-gate IN DAT_HANDLE dat_handle,
45*7c478bd9Sstevel@tonic-gate IN DAT_CONTEXT context)
46*7c478bd9Sstevel@tonic-gate {
47*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(dat_handle)) {
48*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE1));
49*7c478bd9Sstevel@tonic-gate }
50*7c478bd9Sstevel@tonic-gate return DAT_SET_CONSUMER_CONTEXT(dat_handle,
51*7c478bd9Sstevel@tonic-gate context);
52*7c478bd9Sstevel@tonic-gate }
53*7c478bd9Sstevel@tonic-gate
54*7c478bd9Sstevel@tonic-gate
dat_get_consumer_context(IN DAT_HANDLE dat_handle,OUT DAT_CONTEXT * context)55*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_get_consumer_context(
56*7c478bd9Sstevel@tonic-gate IN DAT_HANDLE dat_handle,
57*7c478bd9Sstevel@tonic-gate OUT DAT_CONTEXT *context)
58*7c478bd9Sstevel@tonic-gate {
59*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(dat_handle)) {
60*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE1));
61*7c478bd9Sstevel@tonic-gate }
62*7c478bd9Sstevel@tonic-gate return DAT_GET_CONSUMER_CONTEXT(dat_handle,
63*7c478bd9Sstevel@tonic-gate context);
64*7c478bd9Sstevel@tonic-gate
65*7c478bd9Sstevel@tonic-gate }
66*7c478bd9Sstevel@tonic-gate
67*7c478bd9Sstevel@tonic-gate
dat_get_handle_type(IN DAT_HANDLE dat_handle,OUT DAT_HANDLE_TYPE * type)68*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_get_handle_type(
69*7c478bd9Sstevel@tonic-gate IN DAT_HANDLE dat_handle,
70*7c478bd9Sstevel@tonic-gate OUT DAT_HANDLE_TYPE *type)
71*7c478bd9Sstevel@tonic-gate {
72*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(dat_handle)) {
73*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE1));
74*7c478bd9Sstevel@tonic-gate }
75*7c478bd9Sstevel@tonic-gate return DAT_GET_HANDLE_TYPE(dat_handle,
76*7c478bd9Sstevel@tonic-gate type);
77*7c478bd9Sstevel@tonic-gate }
78*7c478bd9Sstevel@tonic-gate
79*7c478bd9Sstevel@tonic-gate
dat_cr_query(IN DAT_CR_HANDLE cr_handle,IN DAT_CR_PARAM_MASK cr_param_mask,OUT DAT_CR_PARAM * cr_param)80*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_cr_query(
81*7c478bd9Sstevel@tonic-gate IN DAT_CR_HANDLE cr_handle,
82*7c478bd9Sstevel@tonic-gate IN DAT_CR_PARAM_MASK cr_param_mask,
83*7c478bd9Sstevel@tonic-gate OUT DAT_CR_PARAM *cr_param)
84*7c478bd9Sstevel@tonic-gate {
85*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(cr_handle)) {
86*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_CR));
87*7c478bd9Sstevel@tonic-gate }
88*7c478bd9Sstevel@tonic-gate return DAT_CR_QUERY(cr_handle,
89*7c478bd9Sstevel@tonic-gate cr_param_mask,
90*7c478bd9Sstevel@tonic-gate cr_param);
91*7c478bd9Sstevel@tonic-gate }
92*7c478bd9Sstevel@tonic-gate
93*7c478bd9Sstevel@tonic-gate
dat_cr_accept(IN DAT_CR_HANDLE cr_handle,IN DAT_EP_HANDLE ep_handle,IN DAT_COUNT private_data_size,IN const DAT_PVOID private_data)94*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_cr_accept(
95*7c478bd9Sstevel@tonic-gate IN DAT_CR_HANDLE cr_handle,
96*7c478bd9Sstevel@tonic-gate IN DAT_EP_HANDLE ep_handle,
97*7c478bd9Sstevel@tonic-gate IN DAT_COUNT private_data_size,
98*7c478bd9Sstevel@tonic-gate IN const DAT_PVOID private_data)
99*7c478bd9Sstevel@tonic-gate {
100*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(cr_handle)) {
101*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_CR));
102*7c478bd9Sstevel@tonic-gate }
103*7c478bd9Sstevel@tonic-gate return DAT_CR_ACCEPT(cr_handle,
104*7c478bd9Sstevel@tonic-gate ep_handle,
105*7c478bd9Sstevel@tonic-gate private_data_size,
106*7c478bd9Sstevel@tonic-gate private_data);
107*7c478bd9Sstevel@tonic-gate }
108*7c478bd9Sstevel@tonic-gate
109*7c478bd9Sstevel@tonic-gate
dat_cr_reject(IN DAT_CR_HANDLE cr_handle)110*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_cr_reject(
111*7c478bd9Sstevel@tonic-gate IN DAT_CR_HANDLE cr_handle)
112*7c478bd9Sstevel@tonic-gate {
113*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(cr_handle)) {
114*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_CR));
115*7c478bd9Sstevel@tonic-gate }
116*7c478bd9Sstevel@tonic-gate return (DAT_CR_REJECT(cr_handle));
117*7c478bd9Sstevel@tonic-gate }
118*7c478bd9Sstevel@tonic-gate
119*7c478bd9Sstevel@tonic-gate
dat_evd_resize(IN DAT_EVD_HANDLE evd_handle,IN DAT_COUNT evd_min_qlen)120*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_evd_resize(
121*7c478bd9Sstevel@tonic-gate IN DAT_EVD_HANDLE evd_handle,
122*7c478bd9Sstevel@tonic-gate IN DAT_COUNT evd_min_qlen)
123*7c478bd9Sstevel@tonic-gate {
124*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(evd_handle)) {
125*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE1));
126*7c478bd9Sstevel@tonic-gate }
127*7c478bd9Sstevel@tonic-gate return DAT_EVD_RESIZE(evd_handle,
128*7c478bd9Sstevel@tonic-gate evd_min_qlen);
129*7c478bd9Sstevel@tonic-gate }
130*7c478bd9Sstevel@tonic-gate
131*7c478bd9Sstevel@tonic-gate
dat_evd_post_se(IN DAT_EVD_HANDLE evd_handle,IN const DAT_EVENT * event)132*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_evd_post_se(
133*7c478bd9Sstevel@tonic-gate IN DAT_EVD_HANDLE evd_handle,
134*7c478bd9Sstevel@tonic-gate IN const DAT_EVENT *event)
135*7c478bd9Sstevel@tonic-gate {
136*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(evd_handle)) {
137*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE1));
138*7c478bd9Sstevel@tonic-gate }
139*7c478bd9Sstevel@tonic-gate return DAT_EVD_POST_SE(evd_handle,
140*7c478bd9Sstevel@tonic-gate event);
141*7c478bd9Sstevel@tonic-gate }
142*7c478bd9Sstevel@tonic-gate
143*7c478bd9Sstevel@tonic-gate
dat_evd_dequeue(IN DAT_EVD_HANDLE evd_handle,OUT DAT_EVENT * event)144*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_evd_dequeue(
145*7c478bd9Sstevel@tonic-gate IN DAT_EVD_HANDLE evd_handle,
146*7c478bd9Sstevel@tonic-gate OUT DAT_EVENT *event)
147*7c478bd9Sstevel@tonic-gate {
148*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(evd_handle)) {
149*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE1));
150*7c478bd9Sstevel@tonic-gate }
151*7c478bd9Sstevel@tonic-gate return DAT_EVD_DEQUEUE(evd_handle,
152*7c478bd9Sstevel@tonic-gate event);
153*7c478bd9Sstevel@tonic-gate }
154*7c478bd9Sstevel@tonic-gate
155*7c478bd9Sstevel@tonic-gate
dat_evd_free(IN DAT_EVD_HANDLE evd_handle)156*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_evd_free(
157*7c478bd9Sstevel@tonic-gate IN DAT_EVD_HANDLE evd_handle)
158*7c478bd9Sstevel@tonic-gate {
159*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(evd_handle)) {
160*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE1));
161*7c478bd9Sstevel@tonic-gate }
162*7c478bd9Sstevel@tonic-gate return (DAT_EVD_FREE(evd_handle));
163*7c478bd9Sstevel@tonic-gate }
164*7c478bd9Sstevel@tonic-gate
165*7c478bd9Sstevel@tonic-gate
dat_ep_create(IN DAT_IA_HANDLE ia_handle,IN DAT_PZ_HANDLE pz_handle,IN DAT_EVD_HANDLE recv_completion_evd_handle,IN DAT_EVD_HANDLE request_completion_evd_handle,IN DAT_EVD_HANDLE connect_evd_handle,IN const DAT_EP_ATTR * ep_attributes,OUT DAT_EP_HANDLE * ep_handle)166*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_ep_create(
167*7c478bd9Sstevel@tonic-gate IN DAT_IA_HANDLE ia_handle,
168*7c478bd9Sstevel@tonic-gate IN DAT_PZ_HANDLE pz_handle,
169*7c478bd9Sstevel@tonic-gate IN DAT_EVD_HANDLE recv_completion_evd_handle,
170*7c478bd9Sstevel@tonic-gate IN DAT_EVD_HANDLE request_completion_evd_handle,
171*7c478bd9Sstevel@tonic-gate IN DAT_EVD_HANDLE connect_evd_handle,
172*7c478bd9Sstevel@tonic-gate IN const DAT_EP_ATTR *ep_attributes,
173*7c478bd9Sstevel@tonic-gate OUT DAT_EP_HANDLE *ep_handle)
174*7c478bd9Sstevel@tonic-gate {
175*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(ia_handle)) {
176*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_IA));
177*7c478bd9Sstevel@tonic-gate }
178*7c478bd9Sstevel@tonic-gate return DAT_EP_CREATE(ia_handle,
179*7c478bd9Sstevel@tonic-gate pz_handle,
180*7c478bd9Sstevel@tonic-gate recv_completion_evd_handle,
181*7c478bd9Sstevel@tonic-gate request_completion_evd_handle,
182*7c478bd9Sstevel@tonic-gate connect_evd_handle,
183*7c478bd9Sstevel@tonic-gate ep_attributes,
184*7c478bd9Sstevel@tonic-gate ep_handle);
185*7c478bd9Sstevel@tonic-gate }
186*7c478bd9Sstevel@tonic-gate
187*7c478bd9Sstevel@tonic-gate
dat_ep_query(IN DAT_EP_HANDLE ep_handle,IN DAT_EP_PARAM_MASK ep_param_mask,OUT DAT_EP_PARAM * ep_param)188*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_ep_query(
189*7c478bd9Sstevel@tonic-gate IN DAT_EP_HANDLE ep_handle,
190*7c478bd9Sstevel@tonic-gate IN DAT_EP_PARAM_MASK ep_param_mask,
191*7c478bd9Sstevel@tonic-gate OUT DAT_EP_PARAM *ep_param)
192*7c478bd9Sstevel@tonic-gate {
193*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(ep_handle)) {
194*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_EP));
195*7c478bd9Sstevel@tonic-gate }
196*7c478bd9Sstevel@tonic-gate return DAT_EP_QUERY(ep_handle,
197*7c478bd9Sstevel@tonic-gate ep_param_mask,
198*7c478bd9Sstevel@tonic-gate ep_param);
199*7c478bd9Sstevel@tonic-gate }
200*7c478bd9Sstevel@tonic-gate
201*7c478bd9Sstevel@tonic-gate
dat_ep_modify(IN DAT_EP_HANDLE ep_handle,IN DAT_EP_PARAM_MASK ep_param_mask,IN const DAT_EP_PARAM * ep_param)202*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_ep_modify(
203*7c478bd9Sstevel@tonic-gate IN DAT_EP_HANDLE ep_handle,
204*7c478bd9Sstevel@tonic-gate IN DAT_EP_PARAM_MASK ep_param_mask,
205*7c478bd9Sstevel@tonic-gate IN const DAT_EP_PARAM *ep_param)
206*7c478bd9Sstevel@tonic-gate {
207*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(ep_handle)) {
208*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_EP));
209*7c478bd9Sstevel@tonic-gate }
210*7c478bd9Sstevel@tonic-gate return DAT_EP_MODIFY(ep_handle,
211*7c478bd9Sstevel@tonic-gate ep_param_mask,
212*7c478bd9Sstevel@tonic-gate ep_param);
213*7c478bd9Sstevel@tonic-gate }
214*7c478bd9Sstevel@tonic-gate
215*7c478bd9Sstevel@tonic-gate
dat_ep_connect(IN DAT_EP_HANDLE ep_handle,IN DAT_IA_ADDRESS_PTR remote_ia_address,IN DAT_CONN_QUAL remote_conn_qual,IN DAT_TIMEOUT timeout,IN DAT_COUNT private_data_size,IN const DAT_PVOID private_data,IN DAT_QOS quality_of_service,IN DAT_CONNECT_FLAGS connect_flags)216*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_ep_connect(
217*7c478bd9Sstevel@tonic-gate IN DAT_EP_HANDLE ep_handle,
218*7c478bd9Sstevel@tonic-gate IN DAT_IA_ADDRESS_PTR remote_ia_address,
219*7c478bd9Sstevel@tonic-gate IN DAT_CONN_QUAL remote_conn_qual,
220*7c478bd9Sstevel@tonic-gate IN DAT_TIMEOUT timeout,
221*7c478bd9Sstevel@tonic-gate IN DAT_COUNT private_data_size,
222*7c478bd9Sstevel@tonic-gate IN const DAT_PVOID private_data,
223*7c478bd9Sstevel@tonic-gate IN DAT_QOS quality_of_service,
224*7c478bd9Sstevel@tonic-gate IN DAT_CONNECT_FLAGS connect_flags)
225*7c478bd9Sstevel@tonic-gate {
226*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(ep_handle)) {
227*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_EP));
228*7c478bd9Sstevel@tonic-gate }
229*7c478bd9Sstevel@tonic-gate return DAT_EP_CONNECT(ep_handle,
230*7c478bd9Sstevel@tonic-gate remote_ia_address,
231*7c478bd9Sstevel@tonic-gate remote_conn_qual,
232*7c478bd9Sstevel@tonic-gate timeout,
233*7c478bd9Sstevel@tonic-gate private_data_size,
234*7c478bd9Sstevel@tonic-gate private_data,
235*7c478bd9Sstevel@tonic-gate quality_of_service,
236*7c478bd9Sstevel@tonic-gate connect_flags);
237*7c478bd9Sstevel@tonic-gate }
238*7c478bd9Sstevel@tonic-gate
239*7c478bd9Sstevel@tonic-gate
dat_ep_dup_connect(IN DAT_EP_HANDLE ep_handle,IN DAT_EP_HANDLE ep_dup_handle,IN DAT_TIMEOUT timeout,IN DAT_COUNT private_data_size,IN const DAT_PVOID private_data,IN DAT_QOS quality_of_service)240*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_ep_dup_connect(
241*7c478bd9Sstevel@tonic-gate IN DAT_EP_HANDLE ep_handle,
242*7c478bd9Sstevel@tonic-gate IN DAT_EP_HANDLE ep_dup_handle,
243*7c478bd9Sstevel@tonic-gate IN DAT_TIMEOUT timeout,
244*7c478bd9Sstevel@tonic-gate IN DAT_COUNT private_data_size,
245*7c478bd9Sstevel@tonic-gate IN const DAT_PVOID private_data,
246*7c478bd9Sstevel@tonic-gate IN DAT_QOS quality_of_service)
247*7c478bd9Sstevel@tonic-gate {
248*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(ep_handle)) {
249*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_EP));
250*7c478bd9Sstevel@tonic-gate }
251*7c478bd9Sstevel@tonic-gate return DAT_EP_DUP_CONNECT(ep_handle,
252*7c478bd9Sstevel@tonic-gate ep_dup_handle,
253*7c478bd9Sstevel@tonic-gate timeout,
254*7c478bd9Sstevel@tonic-gate private_data_size,
255*7c478bd9Sstevel@tonic-gate private_data,
256*7c478bd9Sstevel@tonic-gate quality_of_service);
257*7c478bd9Sstevel@tonic-gate }
258*7c478bd9Sstevel@tonic-gate
259*7c478bd9Sstevel@tonic-gate
dat_ep_disconnect(IN DAT_EP_HANDLE ep_handle,IN DAT_CLOSE_FLAGS close_flags)260*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_ep_disconnect(
261*7c478bd9Sstevel@tonic-gate IN DAT_EP_HANDLE ep_handle,
262*7c478bd9Sstevel@tonic-gate IN DAT_CLOSE_FLAGS close_flags)
263*7c478bd9Sstevel@tonic-gate {
264*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(ep_handle)) {
265*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_EP));
266*7c478bd9Sstevel@tonic-gate }
267*7c478bd9Sstevel@tonic-gate return DAT_EP_DISCONNECT(ep_handle,
268*7c478bd9Sstevel@tonic-gate close_flags);
269*7c478bd9Sstevel@tonic-gate }
270*7c478bd9Sstevel@tonic-gate
271*7c478bd9Sstevel@tonic-gate
dat_ep_post_send(IN DAT_EP_HANDLE ep_handle,IN DAT_COUNT num_segments,IN DAT_LMR_TRIPLET * local_iov,IN DAT_DTO_COOKIE user_cookie,IN DAT_COMPLETION_FLAGS completion_flags)272*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_ep_post_send(
273*7c478bd9Sstevel@tonic-gate IN DAT_EP_HANDLE ep_handle,
274*7c478bd9Sstevel@tonic-gate IN DAT_COUNT num_segments,
275*7c478bd9Sstevel@tonic-gate IN DAT_LMR_TRIPLET *local_iov,
276*7c478bd9Sstevel@tonic-gate IN DAT_DTO_COOKIE user_cookie,
277*7c478bd9Sstevel@tonic-gate IN DAT_COMPLETION_FLAGS completion_flags)
278*7c478bd9Sstevel@tonic-gate {
279*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(ep_handle)) {
280*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_EP));
281*7c478bd9Sstevel@tonic-gate }
282*7c478bd9Sstevel@tonic-gate return DAT_EP_POST_SEND(ep_handle,
283*7c478bd9Sstevel@tonic-gate num_segments,
284*7c478bd9Sstevel@tonic-gate local_iov,
285*7c478bd9Sstevel@tonic-gate user_cookie,
286*7c478bd9Sstevel@tonic-gate completion_flags);
287*7c478bd9Sstevel@tonic-gate }
288*7c478bd9Sstevel@tonic-gate
289*7c478bd9Sstevel@tonic-gate
dat_ep_post_recv(IN DAT_EP_HANDLE ep_handle,IN DAT_COUNT num_segments,IN DAT_LMR_TRIPLET * local_iov,IN DAT_DTO_COOKIE user_cookie,IN DAT_COMPLETION_FLAGS completion_flags)290*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_ep_post_recv(
291*7c478bd9Sstevel@tonic-gate IN DAT_EP_HANDLE ep_handle,
292*7c478bd9Sstevel@tonic-gate IN DAT_COUNT num_segments,
293*7c478bd9Sstevel@tonic-gate IN DAT_LMR_TRIPLET *local_iov,
294*7c478bd9Sstevel@tonic-gate IN DAT_DTO_COOKIE user_cookie,
295*7c478bd9Sstevel@tonic-gate IN DAT_COMPLETION_FLAGS completion_flags)
296*7c478bd9Sstevel@tonic-gate {
297*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(ep_handle)) {
298*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_EP));
299*7c478bd9Sstevel@tonic-gate }
300*7c478bd9Sstevel@tonic-gate return DAT_EP_POST_RECV(ep_handle,
301*7c478bd9Sstevel@tonic-gate num_segments,
302*7c478bd9Sstevel@tonic-gate local_iov,
303*7c478bd9Sstevel@tonic-gate user_cookie,
304*7c478bd9Sstevel@tonic-gate completion_flags);
305*7c478bd9Sstevel@tonic-gate }
306*7c478bd9Sstevel@tonic-gate
307*7c478bd9Sstevel@tonic-gate
dat_ep_post_rdma_read(IN DAT_EP_HANDLE ep_handle,IN DAT_COUNT num_segments,IN DAT_LMR_TRIPLET * local_iov,IN DAT_DTO_COOKIE user_cookie,IN const DAT_RMR_TRIPLET * remote_iov,IN DAT_COMPLETION_FLAGS completion_flags)308*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_ep_post_rdma_read(
309*7c478bd9Sstevel@tonic-gate IN DAT_EP_HANDLE ep_handle,
310*7c478bd9Sstevel@tonic-gate IN DAT_COUNT num_segments,
311*7c478bd9Sstevel@tonic-gate IN DAT_LMR_TRIPLET *local_iov,
312*7c478bd9Sstevel@tonic-gate IN DAT_DTO_COOKIE user_cookie,
313*7c478bd9Sstevel@tonic-gate IN const DAT_RMR_TRIPLET *remote_iov,
314*7c478bd9Sstevel@tonic-gate IN DAT_COMPLETION_FLAGS completion_flags)
315*7c478bd9Sstevel@tonic-gate {
316*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(ep_handle)) {
317*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_EP));
318*7c478bd9Sstevel@tonic-gate }
319*7c478bd9Sstevel@tonic-gate return DAT_EP_POST_RDMA_READ(ep_handle,
320*7c478bd9Sstevel@tonic-gate num_segments,
321*7c478bd9Sstevel@tonic-gate local_iov,
322*7c478bd9Sstevel@tonic-gate user_cookie,
323*7c478bd9Sstevel@tonic-gate remote_iov,
324*7c478bd9Sstevel@tonic-gate completion_flags);
325*7c478bd9Sstevel@tonic-gate }
326*7c478bd9Sstevel@tonic-gate
327*7c478bd9Sstevel@tonic-gate
dat_ep_post_rdma_write(IN DAT_EP_HANDLE ep_handle,IN DAT_COUNT num_segments,IN DAT_LMR_TRIPLET * local_iov,IN DAT_DTO_COOKIE user_cookie,IN const DAT_RMR_TRIPLET * remote_iov,IN DAT_COMPLETION_FLAGS completion_flags)328*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_ep_post_rdma_write(
329*7c478bd9Sstevel@tonic-gate IN DAT_EP_HANDLE ep_handle,
330*7c478bd9Sstevel@tonic-gate IN DAT_COUNT num_segments,
331*7c478bd9Sstevel@tonic-gate IN DAT_LMR_TRIPLET *local_iov,
332*7c478bd9Sstevel@tonic-gate IN DAT_DTO_COOKIE user_cookie,
333*7c478bd9Sstevel@tonic-gate IN const DAT_RMR_TRIPLET *remote_iov,
334*7c478bd9Sstevel@tonic-gate IN DAT_COMPLETION_FLAGS completion_flags)
335*7c478bd9Sstevel@tonic-gate {
336*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(ep_handle)) {
337*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_EP));
338*7c478bd9Sstevel@tonic-gate }
339*7c478bd9Sstevel@tonic-gate return DAT_EP_POST_RDMA_WRITE(ep_handle,
340*7c478bd9Sstevel@tonic-gate num_segments,
341*7c478bd9Sstevel@tonic-gate local_iov,
342*7c478bd9Sstevel@tonic-gate user_cookie,
343*7c478bd9Sstevel@tonic-gate remote_iov,
344*7c478bd9Sstevel@tonic-gate completion_flags);
345*7c478bd9Sstevel@tonic-gate }
346*7c478bd9Sstevel@tonic-gate
347*7c478bd9Sstevel@tonic-gate
dat_ep_get_status(IN DAT_EP_HANDLE ep_handle,OUT DAT_EP_STATE * ep_state,OUT DAT_BOOLEAN * recv_idle,OUT DAT_BOOLEAN * request_idle)348*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_ep_get_status(
349*7c478bd9Sstevel@tonic-gate IN DAT_EP_HANDLE ep_handle,
350*7c478bd9Sstevel@tonic-gate OUT DAT_EP_STATE *ep_state,
351*7c478bd9Sstevel@tonic-gate OUT DAT_BOOLEAN *recv_idle,
352*7c478bd9Sstevel@tonic-gate OUT DAT_BOOLEAN *request_idle)
353*7c478bd9Sstevel@tonic-gate {
354*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(ep_handle)) {
355*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_EP));
356*7c478bd9Sstevel@tonic-gate }
357*7c478bd9Sstevel@tonic-gate return DAT_EP_GET_STATUS(ep_handle,
358*7c478bd9Sstevel@tonic-gate ep_state,
359*7c478bd9Sstevel@tonic-gate recv_idle,
360*7c478bd9Sstevel@tonic-gate request_idle);
361*7c478bd9Sstevel@tonic-gate }
362*7c478bd9Sstevel@tonic-gate
363*7c478bd9Sstevel@tonic-gate
dat_ep_free(IN DAT_EP_HANDLE ep_handle)364*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_ep_free(
365*7c478bd9Sstevel@tonic-gate IN DAT_EP_HANDLE ep_handle)
366*7c478bd9Sstevel@tonic-gate {
367*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(ep_handle)) {
368*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_EP));
369*7c478bd9Sstevel@tonic-gate }
370*7c478bd9Sstevel@tonic-gate return (DAT_EP_FREE(ep_handle));
371*7c478bd9Sstevel@tonic-gate }
372*7c478bd9Sstevel@tonic-gate
373*7c478bd9Sstevel@tonic-gate
dat_ep_reset(IN DAT_EP_HANDLE ep_handle)374*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_ep_reset(
375*7c478bd9Sstevel@tonic-gate IN DAT_EP_HANDLE ep_handle)
376*7c478bd9Sstevel@tonic-gate {
377*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(ep_handle)) {
378*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_EP));
379*7c478bd9Sstevel@tonic-gate }
380*7c478bd9Sstevel@tonic-gate return (DAT_EP_RESET(ep_handle));
381*7c478bd9Sstevel@tonic-gate }
382*7c478bd9Sstevel@tonic-gate
383*7c478bd9Sstevel@tonic-gate
dat_lmr_free(IN DAT_LMR_HANDLE lmr_handle)384*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_lmr_free(
385*7c478bd9Sstevel@tonic-gate IN DAT_LMR_HANDLE lmr_handle)
386*7c478bd9Sstevel@tonic-gate {
387*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(lmr_handle)) {
388*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_LMR));
389*7c478bd9Sstevel@tonic-gate }
390*7c478bd9Sstevel@tonic-gate return (DAT_LMR_FREE(lmr_handle));
391*7c478bd9Sstevel@tonic-gate }
392*7c478bd9Sstevel@tonic-gate
393*7c478bd9Sstevel@tonic-gate
dat_rmr_create(IN DAT_PZ_HANDLE pz_handle,OUT DAT_RMR_HANDLE * rmr_handle)394*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_rmr_create(
395*7c478bd9Sstevel@tonic-gate IN DAT_PZ_HANDLE pz_handle,
396*7c478bd9Sstevel@tonic-gate OUT DAT_RMR_HANDLE *rmr_handle)
397*7c478bd9Sstevel@tonic-gate {
398*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(pz_handle)) {
399*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_PZ));
400*7c478bd9Sstevel@tonic-gate }
401*7c478bd9Sstevel@tonic-gate return DAT_RMR_CREATE(pz_handle,
402*7c478bd9Sstevel@tonic-gate rmr_handle);
403*7c478bd9Sstevel@tonic-gate }
404*7c478bd9Sstevel@tonic-gate
405*7c478bd9Sstevel@tonic-gate
dat_rmr_query(IN DAT_RMR_HANDLE rmr_handle,IN DAT_RMR_PARAM_MASK rmr_param_mask,OUT DAT_RMR_PARAM * rmr_param)406*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_rmr_query(
407*7c478bd9Sstevel@tonic-gate IN DAT_RMR_HANDLE rmr_handle,
408*7c478bd9Sstevel@tonic-gate IN DAT_RMR_PARAM_MASK rmr_param_mask,
409*7c478bd9Sstevel@tonic-gate OUT DAT_RMR_PARAM *rmr_param)
410*7c478bd9Sstevel@tonic-gate {
411*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(rmr_handle)) {
412*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_RMR));
413*7c478bd9Sstevel@tonic-gate }
414*7c478bd9Sstevel@tonic-gate return DAT_RMR_QUERY(rmr_handle,
415*7c478bd9Sstevel@tonic-gate rmr_param_mask,
416*7c478bd9Sstevel@tonic-gate rmr_param);
417*7c478bd9Sstevel@tonic-gate }
418*7c478bd9Sstevel@tonic-gate
419*7c478bd9Sstevel@tonic-gate
dat_rmr_bind(IN DAT_RMR_HANDLE rmr_handle,IN const DAT_LMR_TRIPLET * lmr_triplet,IN DAT_MEM_PRIV_FLAGS mem_priv,IN DAT_EP_HANDLE ep_handle,IN DAT_RMR_COOKIE user_cookie,IN DAT_COMPLETION_FLAGS completion_flags,OUT DAT_RMR_CONTEXT * context)420*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_rmr_bind(
421*7c478bd9Sstevel@tonic-gate IN DAT_RMR_HANDLE rmr_handle,
422*7c478bd9Sstevel@tonic-gate IN const DAT_LMR_TRIPLET *lmr_triplet,
423*7c478bd9Sstevel@tonic-gate IN DAT_MEM_PRIV_FLAGS mem_priv,
424*7c478bd9Sstevel@tonic-gate IN DAT_EP_HANDLE ep_handle,
425*7c478bd9Sstevel@tonic-gate IN DAT_RMR_COOKIE user_cookie,
426*7c478bd9Sstevel@tonic-gate IN DAT_COMPLETION_FLAGS completion_flags,
427*7c478bd9Sstevel@tonic-gate OUT DAT_RMR_CONTEXT *context)
428*7c478bd9Sstevel@tonic-gate {
429*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(rmr_handle)) {
430*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_RMR));
431*7c478bd9Sstevel@tonic-gate }
432*7c478bd9Sstevel@tonic-gate return DAT_RMR_BIND(rmr_handle,
433*7c478bd9Sstevel@tonic-gate lmr_triplet,
434*7c478bd9Sstevel@tonic-gate mem_priv,
435*7c478bd9Sstevel@tonic-gate ep_handle,
436*7c478bd9Sstevel@tonic-gate user_cookie,
437*7c478bd9Sstevel@tonic-gate completion_flags,
438*7c478bd9Sstevel@tonic-gate context);
439*7c478bd9Sstevel@tonic-gate }
440*7c478bd9Sstevel@tonic-gate
441*7c478bd9Sstevel@tonic-gate
dat_rmr_free(IN DAT_RMR_HANDLE rmr_handle)442*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_rmr_free(
443*7c478bd9Sstevel@tonic-gate IN DAT_RMR_HANDLE rmr_handle)
444*7c478bd9Sstevel@tonic-gate {
445*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(rmr_handle)) {
446*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_RMR));
447*7c478bd9Sstevel@tonic-gate }
448*7c478bd9Sstevel@tonic-gate return (DAT_RMR_FREE(rmr_handle));
449*7c478bd9Sstevel@tonic-gate }
450*7c478bd9Sstevel@tonic-gate
451*7c478bd9Sstevel@tonic-gate
dat_psp_create(IN DAT_IA_HANDLE ia_handle,IN DAT_CONN_QUAL conn_qual,IN DAT_EVD_HANDLE evd_handle,IN DAT_PSP_FLAGS psp_flags,OUT DAT_PSP_HANDLE * psp_handle)452*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_psp_create(
453*7c478bd9Sstevel@tonic-gate IN DAT_IA_HANDLE ia_handle,
454*7c478bd9Sstevel@tonic-gate IN DAT_CONN_QUAL conn_qual,
455*7c478bd9Sstevel@tonic-gate IN DAT_EVD_HANDLE evd_handle,
456*7c478bd9Sstevel@tonic-gate IN DAT_PSP_FLAGS psp_flags,
457*7c478bd9Sstevel@tonic-gate OUT DAT_PSP_HANDLE *psp_handle)
458*7c478bd9Sstevel@tonic-gate {
459*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(ia_handle)) {
460*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_IA));
461*7c478bd9Sstevel@tonic-gate }
462*7c478bd9Sstevel@tonic-gate return DAT_PSP_CREATE(ia_handle,
463*7c478bd9Sstevel@tonic-gate conn_qual,
464*7c478bd9Sstevel@tonic-gate evd_handle,
465*7c478bd9Sstevel@tonic-gate psp_flags,
466*7c478bd9Sstevel@tonic-gate psp_handle);
467*7c478bd9Sstevel@tonic-gate }
468*7c478bd9Sstevel@tonic-gate
469*7c478bd9Sstevel@tonic-gate
dat_psp_query(IN DAT_PSP_HANDLE psp_handle,IN DAT_PSP_PARAM_MASK psp_param_mask,OUT DAT_PSP_PARAM * psp_param)470*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_psp_query(
471*7c478bd9Sstevel@tonic-gate IN DAT_PSP_HANDLE psp_handle,
472*7c478bd9Sstevel@tonic-gate IN DAT_PSP_PARAM_MASK psp_param_mask,
473*7c478bd9Sstevel@tonic-gate OUT DAT_PSP_PARAM *psp_param)
474*7c478bd9Sstevel@tonic-gate {
475*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(psp_handle)) {
476*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_PSP));
477*7c478bd9Sstevel@tonic-gate }
478*7c478bd9Sstevel@tonic-gate return DAT_PSP_QUERY(psp_handle,
479*7c478bd9Sstevel@tonic-gate psp_param_mask,
480*7c478bd9Sstevel@tonic-gate psp_param);
481*7c478bd9Sstevel@tonic-gate }
482*7c478bd9Sstevel@tonic-gate
483*7c478bd9Sstevel@tonic-gate
dat_psp_free(IN DAT_PSP_HANDLE psp_handle)484*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_psp_free(
485*7c478bd9Sstevel@tonic-gate IN DAT_PSP_HANDLE psp_handle)
486*7c478bd9Sstevel@tonic-gate {
487*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(psp_handle)) {
488*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_PSP));
489*7c478bd9Sstevel@tonic-gate }
490*7c478bd9Sstevel@tonic-gate return (DAT_PSP_FREE(psp_handle));
491*7c478bd9Sstevel@tonic-gate }
492*7c478bd9Sstevel@tonic-gate
493*7c478bd9Sstevel@tonic-gate
dat_rsp_create(IN DAT_IA_HANDLE ia_handle,IN DAT_CONN_QUAL conn_qual,IN DAT_EP_HANDLE ep_handle,IN DAT_EVD_HANDLE evd_handle,OUT DAT_RSP_HANDLE * rsp_handle)494*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_rsp_create(
495*7c478bd9Sstevel@tonic-gate IN DAT_IA_HANDLE ia_handle,
496*7c478bd9Sstevel@tonic-gate IN DAT_CONN_QUAL conn_qual,
497*7c478bd9Sstevel@tonic-gate IN DAT_EP_HANDLE ep_handle,
498*7c478bd9Sstevel@tonic-gate IN DAT_EVD_HANDLE evd_handle,
499*7c478bd9Sstevel@tonic-gate OUT DAT_RSP_HANDLE *rsp_handle)
500*7c478bd9Sstevel@tonic-gate {
501*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(ia_handle)) {
502*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_IA));
503*7c478bd9Sstevel@tonic-gate }
504*7c478bd9Sstevel@tonic-gate return DAT_RSP_CREATE(ia_handle,
505*7c478bd9Sstevel@tonic-gate conn_qual,
506*7c478bd9Sstevel@tonic-gate ep_handle,
507*7c478bd9Sstevel@tonic-gate evd_handle,
508*7c478bd9Sstevel@tonic-gate rsp_handle);
509*7c478bd9Sstevel@tonic-gate }
510*7c478bd9Sstevel@tonic-gate
511*7c478bd9Sstevel@tonic-gate
dat_rsp_query(IN DAT_RSP_HANDLE rsp_handle,IN DAT_RSP_PARAM_MASK rsp_param_mask,OUT DAT_RSP_PARAM * rsp_param)512*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_rsp_query(
513*7c478bd9Sstevel@tonic-gate IN DAT_RSP_HANDLE rsp_handle,
514*7c478bd9Sstevel@tonic-gate IN DAT_RSP_PARAM_MASK rsp_param_mask,
515*7c478bd9Sstevel@tonic-gate OUT DAT_RSP_PARAM *rsp_param)
516*7c478bd9Sstevel@tonic-gate {
517*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(rsp_handle)) {
518*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_RSP));
519*7c478bd9Sstevel@tonic-gate }
520*7c478bd9Sstevel@tonic-gate return DAT_RSP_QUERY(rsp_handle,
521*7c478bd9Sstevel@tonic-gate rsp_param_mask,
522*7c478bd9Sstevel@tonic-gate rsp_param);
523*7c478bd9Sstevel@tonic-gate }
524*7c478bd9Sstevel@tonic-gate
525*7c478bd9Sstevel@tonic-gate
dat_rsp_free(IN DAT_RSP_HANDLE rsp_handle)526*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_rsp_free(
527*7c478bd9Sstevel@tonic-gate IN DAT_RSP_HANDLE rsp_handle)
528*7c478bd9Sstevel@tonic-gate {
529*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(rsp_handle)) {
530*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_RSP));
531*7c478bd9Sstevel@tonic-gate }
532*7c478bd9Sstevel@tonic-gate return (DAT_RSP_FREE(rsp_handle));
533*7c478bd9Sstevel@tonic-gate }
534*7c478bd9Sstevel@tonic-gate
535*7c478bd9Sstevel@tonic-gate
dat_pz_create(IN DAT_IA_HANDLE ia_handle,OUT DAT_PZ_HANDLE * pz_handle)536*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_pz_create(
537*7c478bd9Sstevel@tonic-gate IN DAT_IA_HANDLE ia_handle,
538*7c478bd9Sstevel@tonic-gate OUT DAT_PZ_HANDLE *pz_handle)
539*7c478bd9Sstevel@tonic-gate {
540*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(ia_handle)) {
541*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_IA));
542*7c478bd9Sstevel@tonic-gate }
543*7c478bd9Sstevel@tonic-gate return DAT_PZ_CREATE(ia_handle,
544*7c478bd9Sstevel@tonic-gate pz_handle);
545*7c478bd9Sstevel@tonic-gate }
546*7c478bd9Sstevel@tonic-gate
547*7c478bd9Sstevel@tonic-gate
dat_pz_query(IN DAT_PZ_HANDLE pz_handle,IN DAT_PZ_PARAM_MASK pz_param_mask,OUT DAT_PZ_PARAM * pz_param)548*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_pz_query(
549*7c478bd9Sstevel@tonic-gate IN DAT_PZ_HANDLE pz_handle,
550*7c478bd9Sstevel@tonic-gate IN DAT_PZ_PARAM_MASK pz_param_mask,
551*7c478bd9Sstevel@tonic-gate OUT DAT_PZ_PARAM *pz_param)
552*7c478bd9Sstevel@tonic-gate {
553*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(pz_handle)) {
554*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_PZ));
555*7c478bd9Sstevel@tonic-gate }
556*7c478bd9Sstevel@tonic-gate return DAT_PZ_QUERY(pz_handle,
557*7c478bd9Sstevel@tonic-gate pz_param_mask,
558*7c478bd9Sstevel@tonic-gate pz_param);
559*7c478bd9Sstevel@tonic-gate }
560*7c478bd9Sstevel@tonic-gate
561*7c478bd9Sstevel@tonic-gate
dat_pz_free(IN DAT_PZ_HANDLE pz_handle)562*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_pz_free(
563*7c478bd9Sstevel@tonic-gate IN DAT_PZ_HANDLE pz_handle)
564*7c478bd9Sstevel@tonic-gate {
565*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(pz_handle)) {
566*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_PZ));
567*7c478bd9Sstevel@tonic-gate }
568*7c478bd9Sstevel@tonic-gate return (DAT_PZ_FREE(pz_handle));
569*7c478bd9Sstevel@tonic-gate }
570*7c478bd9Sstevel@tonic-gate
571*7c478bd9Sstevel@tonic-gate /* ARGSUSED */
dat_lmr_sync_rdma_read(IN DAT_IA_HANDLE ia_handle,IN const DAT_LMR_TRIPLET * local_segments,IN DAT_VLEN num_segments)572*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_lmr_sync_rdma_read(
573*7c478bd9Sstevel@tonic-gate IN DAT_IA_HANDLE ia_handle,
574*7c478bd9Sstevel@tonic-gate IN const DAT_LMR_TRIPLET *local_segments,
575*7c478bd9Sstevel@tonic-gate IN DAT_VLEN num_segments)
576*7c478bd9Sstevel@tonic-gate {
577*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(ia_handle)) {
578*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_IA));
579*7c478bd9Sstevel@tonic-gate }
580*7c478bd9Sstevel@tonic-gate
581*7c478bd9Sstevel@tonic-gate #if defined(__x86)
582*7c478bd9Sstevel@tonic-gate return (DAT_SUCCESS);
583*7c478bd9Sstevel@tonic-gate #elif defined(__sparc)
584*7c478bd9Sstevel@tonic-gate return (DAT_LMR_SYNC_RDMA_READ(ia_handle, local_segments,
585*7c478bd9Sstevel@tonic-gate num_segments));
586*7c478bd9Sstevel@tonic-gate #else
587*7c478bd9Sstevel@tonic-gate #error "ISA not supported"
588*7c478bd9Sstevel@tonic-gate #endif
589*7c478bd9Sstevel@tonic-gate }
590*7c478bd9Sstevel@tonic-gate
591*7c478bd9Sstevel@tonic-gate /* ARGSUSED */
dat_lmr_sync_rdma_write(IN DAT_IA_HANDLE ia_handle,IN const DAT_LMR_TRIPLET * local_segments,IN DAT_VLEN num_segments)592*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_lmr_sync_rdma_write(
593*7c478bd9Sstevel@tonic-gate IN DAT_IA_HANDLE ia_handle,
594*7c478bd9Sstevel@tonic-gate IN const DAT_LMR_TRIPLET *local_segments,
595*7c478bd9Sstevel@tonic-gate IN DAT_VLEN num_segments)
596*7c478bd9Sstevel@tonic-gate {
597*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(ia_handle)) {
598*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_IA));
599*7c478bd9Sstevel@tonic-gate }
600*7c478bd9Sstevel@tonic-gate
601*7c478bd9Sstevel@tonic-gate #if defined(__x86)
602*7c478bd9Sstevel@tonic-gate return (DAT_SUCCESS);
603*7c478bd9Sstevel@tonic-gate #elif defined(__sparc)
604*7c478bd9Sstevel@tonic-gate return (DAT_LMR_SYNC_RDMA_WRITE(ia_handle, local_segments,
605*7c478bd9Sstevel@tonic-gate num_segments));
606*7c478bd9Sstevel@tonic-gate #else
607*7c478bd9Sstevel@tonic-gate #error "ISA not supported"
608*7c478bd9Sstevel@tonic-gate #endif
609*7c478bd9Sstevel@tonic-gate }
610*7c478bd9Sstevel@tonic-gate
dat_ep_create_with_srq(IN DAT_IA_HANDLE ia_handle,IN DAT_PZ_HANDLE pz_handle,IN DAT_EVD_HANDLE recv_evd_handle,IN DAT_EVD_HANDLE request_evd_handle,IN DAT_EVD_HANDLE connect_evd_handle,IN DAT_SRQ_HANDLE srq_handle,IN const DAT_EP_ATTR * ep_attributes,OUT DAT_EP_HANDLE * ep_handle)611*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_ep_create_with_srq(
612*7c478bd9Sstevel@tonic-gate IN DAT_IA_HANDLE ia_handle,
613*7c478bd9Sstevel@tonic-gate IN DAT_PZ_HANDLE pz_handle,
614*7c478bd9Sstevel@tonic-gate IN DAT_EVD_HANDLE recv_evd_handle,
615*7c478bd9Sstevel@tonic-gate IN DAT_EVD_HANDLE request_evd_handle,
616*7c478bd9Sstevel@tonic-gate IN DAT_EVD_HANDLE connect_evd_handle,
617*7c478bd9Sstevel@tonic-gate IN DAT_SRQ_HANDLE srq_handle,
618*7c478bd9Sstevel@tonic-gate IN const DAT_EP_ATTR *ep_attributes,
619*7c478bd9Sstevel@tonic-gate OUT DAT_EP_HANDLE *ep_handle)
620*7c478bd9Sstevel@tonic-gate {
621*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(ia_handle)) {
622*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_IA));
623*7c478bd9Sstevel@tonic-gate }
624*7c478bd9Sstevel@tonic-gate return DAT_EP_CREATE_WITH_SRQ(ia_handle,
625*7c478bd9Sstevel@tonic-gate pz_handle,
626*7c478bd9Sstevel@tonic-gate recv_evd_handle,
627*7c478bd9Sstevel@tonic-gate request_evd_handle,
628*7c478bd9Sstevel@tonic-gate connect_evd_handle,
629*7c478bd9Sstevel@tonic-gate srq_handle,
630*7c478bd9Sstevel@tonic-gate ep_attributes,
631*7c478bd9Sstevel@tonic-gate ep_handle);
632*7c478bd9Sstevel@tonic-gate }
633*7c478bd9Sstevel@tonic-gate
dat_ep_recv_query(IN DAT_EP_HANDLE ep_handle,OUT DAT_COUNT * nbufs_allocated,OUT DAT_COUNT * bufs_alloc_span)634*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_ep_recv_query(
635*7c478bd9Sstevel@tonic-gate IN DAT_EP_HANDLE ep_handle,
636*7c478bd9Sstevel@tonic-gate OUT DAT_COUNT *nbufs_allocated,
637*7c478bd9Sstevel@tonic-gate OUT DAT_COUNT *bufs_alloc_span)
638*7c478bd9Sstevel@tonic-gate {
639*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(ep_handle)) {
640*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_EP));
641*7c478bd9Sstevel@tonic-gate }
642*7c478bd9Sstevel@tonic-gate return DAT_EP_RECV_QUERY(ep_handle,
643*7c478bd9Sstevel@tonic-gate nbufs_allocated,
644*7c478bd9Sstevel@tonic-gate bufs_alloc_span);
645*7c478bd9Sstevel@tonic-gate }
646*7c478bd9Sstevel@tonic-gate
dat_ep_set_watermark(IN DAT_EP_HANDLE ep_handle,IN DAT_COUNT soft_high_watermark,IN DAT_COUNT hard_high_watermark)647*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_ep_set_watermark(
648*7c478bd9Sstevel@tonic-gate IN DAT_EP_HANDLE ep_handle,
649*7c478bd9Sstevel@tonic-gate IN DAT_COUNT soft_high_watermark,
650*7c478bd9Sstevel@tonic-gate IN DAT_COUNT hard_high_watermark)
651*7c478bd9Sstevel@tonic-gate {
652*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(ep_handle)) {
653*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_EP));
654*7c478bd9Sstevel@tonic-gate }
655*7c478bd9Sstevel@tonic-gate return DAT_EP_SET_WATERMARK(ep_handle,
656*7c478bd9Sstevel@tonic-gate soft_high_watermark,
657*7c478bd9Sstevel@tonic-gate hard_high_watermark);
658*7c478bd9Sstevel@tonic-gate }
659*7c478bd9Sstevel@tonic-gate
dat_srq_create(IN DAT_IA_HANDLE ia_handle,IN DAT_PZ_HANDLE pz_handle,IN DAT_SRQ_ATTR * srq_attr,OUT DAT_SRQ_HANDLE * srq_handle)660*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_srq_create(
661*7c478bd9Sstevel@tonic-gate IN DAT_IA_HANDLE ia_handle,
662*7c478bd9Sstevel@tonic-gate IN DAT_PZ_HANDLE pz_handle,
663*7c478bd9Sstevel@tonic-gate IN DAT_SRQ_ATTR *srq_attr,
664*7c478bd9Sstevel@tonic-gate OUT DAT_SRQ_HANDLE *srq_handle)
665*7c478bd9Sstevel@tonic-gate {
666*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(ia_handle)) {
667*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_IA));
668*7c478bd9Sstevel@tonic-gate }
669*7c478bd9Sstevel@tonic-gate return DAT_SRQ_CREATE(ia_handle,
670*7c478bd9Sstevel@tonic-gate pz_handle,
671*7c478bd9Sstevel@tonic-gate srq_attr,
672*7c478bd9Sstevel@tonic-gate srq_handle);
673*7c478bd9Sstevel@tonic-gate }
674*7c478bd9Sstevel@tonic-gate
dat_srq_free(IN DAT_SRQ_HANDLE srq_handle)675*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_srq_free(
676*7c478bd9Sstevel@tonic-gate IN DAT_SRQ_HANDLE srq_handle)
677*7c478bd9Sstevel@tonic-gate {
678*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(srq_handle)) {
679*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_SRQ));
680*7c478bd9Sstevel@tonic-gate }
681*7c478bd9Sstevel@tonic-gate return (DAT_SRQ_FREE(srq_handle));
682*7c478bd9Sstevel@tonic-gate }
683*7c478bd9Sstevel@tonic-gate
dat_srq_post_recv(IN DAT_SRQ_HANDLE srq_handle,IN DAT_COUNT num_segments,IN DAT_LMR_TRIPLET * local_iov,IN DAT_DTO_COOKIE user_cookie)684*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_srq_post_recv(
685*7c478bd9Sstevel@tonic-gate IN DAT_SRQ_HANDLE srq_handle,
686*7c478bd9Sstevel@tonic-gate IN DAT_COUNT num_segments,
687*7c478bd9Sstevel@tonic-gate IN DAT_LMR_TRIPLET *local_iov,
688*7c478bd9Sstevel@tonic-gate IN DAT_DTO_COOKIE user_cookie)
689*7c478bd9Sstevel@tonic-gate {
690*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(srq_handle)) {
691*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_SRQ));
692*7c478bd9Sstevel@tonic-gate }
693*7c478bd9Sstevel@tonic-gate return DAT_SRQ_POST_RECV(srq_handle,
694*7c478bd9Sstevel@tonic-gate num_segments,
695*7c478bd9Sstevel@tonic-gate local_iov,
696*7c478bd9Sstevel@tonic-gate user_cookie);
697*7c478bd9Sstevel@tonic-gate }
698*7c478bd9Sstevel@tonic-gate
dat_srq_query(IN DAT_SRQ_HANDLE srq_handle,IN DAT_SRQ_PARAM_MASK srq_param_mask,OUT DAT_SRQ_PARAM * srq_param)699*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_srq_query(
700*7c478bd9Sstevel@tonic-gate IN DAT_SRQ_HANDLE srq_handle,
701*7c478bd9Sstevel@tonic-gate IN DAT_SRQ_PARAM_MASK srq_param_mask,
702*7c478bd9Sstevel@tonic-gate OUT DAT_SRQ_PARAM *srq_param)
703*7c478bd9Sstevel@tonic-gate {
704*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(srq_handle)) {
705*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_SRQ));
706*7c478bd9Sstevel@tonic-gate }
707*7c478bd9Sstevel@tonic-gate return DAT_SRQ_QUERY(srq_handle,
708*7c478bd9Sstevel@tonic-gate srq_param_mask,
709*7c478bd9Sstevel@tonic-gate srq_param);
710*7c478bd9Sstevel@tonic-gate }
711*7c478bd9Sstevel@tonic-gate
dat_srq_resize(IN DAT_SRQ_HANDLE srq_handle,IN DAT_COUNT srq_max_recv_dto)712*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_srq_resize(
713*7c478bd9Sstevel@tonic-gate IN DAT_SRQ_HANDLE srq_handle,
714*7c478bd9Sstevel@tonic-gate IN DAT_COUNT srq_max_recv_dto)
715*7c478bd9Sstevel@tonic-gate {
716*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(srq_handle)) {
717*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_SRQ));
718*7c478bd9Sstevel@tonic-gate }
719*7c478bd9Sstevel@tonic-gate return DAT_SRQ_RESIZE(srq_handle,
720*7c478bd9Sstevel@tonic-gate srq_max_recv_dto);
721*7c478bd9Sstevel@tonic-gate }
722*7c478bd9Sstevel@tonic-gate
dat_srq_set_lw(IN DAT_SRQ_HANDLE srq_handle,IN DAT_COUNT low_watermark)723*7c478bd9Sstevel@tonic-gate DAT_RETURN dat_srq_set_lw(
724*7c478bd9Sstevel@tonic-gate IN DAT_SRQ_HANDLE srq_handle,
725*7c478bd9Sstevel@tonic-gate IN DAT_COUNT low_watermark)
726*7c478bd9Sstevel@tonic-gate {
727*7c478bd9Sstevel@tonic-gate if (DAT_BAD_HANDLE(srq_handle)) {
728*7c478bd9Sstevel@tonic-gate return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_SRQ));
729*7c478bd9Sstevel@tonic-gate }
730*7c478bd9Sstevel@tonic-gate return DAT_SRQ_SET_LW(srq_handle,
731*7c478bd9Sstevel@tonic-gate low_watermark);
732*7c478bd9Sstevel@tonic-gate }
733