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