4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License, Version 1.0 only
6 * (the "License"). You may not use this file except in compliance
9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 * or http://www.opensolaris.org/os/licensing.
11 * See the License for the specific language governing permissions
12 * and limitations under the License.
14 * When distributing Covered Code, include this CDDL HEADER in each
15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 * If applicable, add the following below this CDDL HEADER, with the
17 * fields enclosed by brackets "[]" replaced with your own identifying
18 * information: Portions Copyright [yyyy] [name of copyright owner]
23 * Copyright (c) 2002-2003, Network Appliance, Inc. All rights reserved.
27 * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
28 * Use is subject to license terms.
31 #pragma ident "%Z%%M% %I% %E% SMI"
37 * PURPOSE: DAT Provider and Consumer registry functions.
42 #include <dat/dat_registry.h>
45 DAT_RETURN
dat_set_consumer_context(
46 IN DAT_HANDLE dat_handle
,
47 IN DAT_CONTEXT context
)
49 if (DAT_BAD_HANDLE(dat_handle
)) {
50 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE1
));
52 return DAT_SET_CONSUMER_CONTEXT(dat_handle
,
57 DAT_RETURN
dat_get_consumer_context(
58 IN DAT_HANDLE dat_handle
,
59 OUT DAT_CONTEXT
*context
)
61 if (DAT_BAD_HANDLE(dat_handle
)) {
62 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE1
));
64 return DAT_GET_CONSUMER_CONTEXT(dat_handle
,
70 DAT_RETURN
dat_get_handle_type(
71 IN DAT_HANDLE dat_handle
,
72 OUT DAT_HANDLE_TYPE
*type
)
74 if (DAT_BAD_HANDLE(dat_handle
)) {
75 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE1
));
77 return DAT_GET_HANDLE_TYPE(dat_handle
,
82 DAT_RETURN
dat_cr_query(
83 IN DAT_CR_HANDLE cr_handle
,
84 IN DAT_CR_PARAM_MASK cr_param_mask
,
85 OUT DAT_CR_PARAM
*cr_param
)
87 if (DAT_BAD_HANDLE(cr_handle
)) {
88 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE_CR
));
90 return DAT_CR_QUERY(cr_handle
,
96 DAT_RETURN
dat_cr_accept(
97 IN DAT_CR_HANDLE cr_handle
,
98 IN DAT_EP_HANDLE ep_handle
,
99 IN DAT_COUNT private_data_size
,
100 IN
const DAT_PVOID private_data
)
102 if (DAT_BAD_HANDLE(cr_handle
)) {
103 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE_CR
));
105 return DAT_CR_ACCEPT(cr_handle
,
112 DAT_RETURN
dat_cr_reject(
113 IN DAT_CR_HANDLE cr_handle
)
115 if (DAT_BAD_HANDLE(cr_handle
)) {
116 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE_CR
));
118 return (DAT_CR_REJECT(cr_handle
));
122 DAT_RETURN
dat_evd_resize(
123 IN DAT_EVD_HANDLE evd_handle
,
124 IN DAT_COUNT evd_min_qlen
)
126 if (DAT_BAD_HANDLE(evd_handle
)) {
127 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE1
));
129 return DAT_EVD_RESIZE(evd_handle
,
134 DAT_RETURN
dat_evd_post_se(
135 IN DAT_EVD_HANDLE evd_handle
,
136 IN
const DAT_EVENT
*event
)
138 if (DAT_BAD_HANDLE(evd_handle
)) {
139 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE1
));
141 return DAT_EVD_POST_SE(evd_handle
,
146 DAT_RETURN
dat_evd_dequeue(
147 IN DAT_EVD_HANDLE evd_handle
,
148 OUT DAT_EVENT
*event
)
150 if (DAT_BAD_HANDLE(evd_handle
)) {
151 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE1
));
153 return DAT_EVD_DEQUEUE(evd_handle
,
158 DAT_RETURN
dat_evd_free(
159 IN DAT_EVD_HANDLE evd_handle
)
161 if (DAT_BAD_HANDLE(evd_handle
)) {
162 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE1
));
164 return (DAT_EVD_FREE(evd_handle
));
168 DAT_RETURN
dat_ep_create(
169 IN DAT_IA_HANDLE ia_handle
,
170 IN DAT_PZ_HANDLE pz_handle
,
171 IN DAT_EVD_HANDLE recv_completion_evd_handle
,
172 IN DAT_EVD_HANDLE request_completion_evd_handle
,
173 IN DAT_EVD_HANDLE connect_evd_handle
,
174 IN
const DAT_EP_ATTR
*ep_attributes
,
175 OUT DAT_EP_HANDLE
*ep_handle
)
177 if (DAT_BAD_HANDLE(ia_handle
)) {
178 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE_IA
));
180 return DAT_EP_CREATE(ia_handle
,
182 recv_completion_evd_handle
,
183 request_completion_evd_handle
,
190 DAT_RETURN
dat_ep_query(
191 IN DAT_EP_HANDLE ep_handle
,
192 IN DAT_EP_PARAM_MASK ep_param_mask
,
193 OUT DAT_EP_PARAM
*ep_param
)
195 if (DAT_BAD_HANDLE(ep_handle
)) {
196 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE_EP
));
198 return DAT_EP_QUERY(ep_handle
,
204 DAT_RETURN
dat_ep_modify(
205 IN DAT_EP_HANDLE ep_handle
,
206 IN DAT_EP_PARAM_MASK ep_param_mask
,
207 IN
const DAT_EP_PARAM
*ep_param
)
209 if (DAT_BAD_HANDLE(ep_handle
)) {
210 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE_EP
));
212 return DAT_EP_MODIFY(ep_handle
,
218 DAT_RETURN
dat_ep_connect(
219 IN DAT_EP_HANDLE ep_handle
,
220 IN DAT_IA_ADDRESS_PTR remote_ia_address
,
221 IN DAT_CONN_QUAL remote_conn_qual
,
222 IN DAT_TIMEOUT timeout
,
223 IN DAT_COUNT private_data_size
,
224 IN
const DAT_PVOID private_data
,
225 IN DAT_QOS quality_of_service
,
226 IN DAT_CONNECT_FLAGS connect_flags
)
228 if (DAT_BAD_HANDLE(ep_handle
)) {
229 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE_EP
));
231 return DAT_EP_CONNECT(ep_handle
,
242 DAT_RETURN
dat_ep_dup_connect(
243 IN DAT_EP_HANDLE ep_handle
,
244 IN DAT_EP_HANDLE ep_dup_handle
,
245 IN DAT_TIMEOUT timeout
,
246 IN DAT_COUNT private_data_size
,
247 IN
const DAT_PVOID private_data
,
248 IN DAT_QOS quality_of_service
)
250 if (DAT_BAD_HANDLE(ep_handle
)) {
251 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE_EP
));
253 return DAT_EP_DUP_CONNECT(ep_handle
,
262 DAT_RETURN
dat_ep_disconnect(
263 IN DAT_EP_HANDLE ep_handle
,
264 IN DAT_CLOSE_FLAGS close_flags
)
266 if (DAT_BAD_HANDLE(ep_handle
)) {
267 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE_EP
));
269 return DAT_EP_DISCONNECT(ep_handle
,
274 DAT_RETURN
dat_ep_post_send(
275 IN DAT_EP_HANDLE ep_handle
,
276 IN DAT_COUNT num_segments
,
277 IN DAT_LMR_TRIPLET
*local_iov
,
278 IN DAT_DTO_COOKIE user_cookie
,
279 IN DAT_COMPLETION_FLAGS completion_flags
)
281 if (DAT_BAD_HANDLE(ep_handle
)) {
282 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE_EP
));
284 return DAT_EP_POST_SEND(ep_handle
,
292 DAT_RETURN
dat_ep_post_recv(
293 IN DAT_EP_HANDLE ep_handle
,
294 IN DAT_COUNT num_segments
,
295 IN DAT_LMR_TRIPLET
*local_iov
,
296 IN DAT_DTO_COOKIE user_cookie
,
297 IN DAT_COMPLETION_FLAGS completion_flags
)
299 if (DAT_BAD_HANDLE(ep_handle
)) {
300 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE_EP
));
302 return DAT_EP_POST_RECV(ep_handle
,
310 DAT_RETURN
dat_ep_post_rdma_read(
311 IN DAT_EP_HANDLE ep_handle
,
312 IN DAT_COUNT num_segments
,
313 IN DAT_LMR_TRIPLET
*local_iov
,
314 IN DAT_DTO_COOKIE user_cookie
,
315 IN
const DAT_RMR_TRIPLET
*remote_iov
,
316 IN DAT_COMPLETION_FLAGS completion_flags
)
318 if (DAT_BAD_HANDLE(ep_handle
)) {
319 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE_EP
));
321 return DAT_EP_POST_RDMA_READ(ep_handle
,
330 DAT_RETURN
dat_ep_post_rdma_write(
331 IN DAT_EP_HANDLE ep_handle
,
332 IN DAT_COUNT num_segments
,
333 IN DAT_LMR_TRIPLET
*local_iov
,
334 IN DAT_DTO_COOKIE user_cookie
,
335 IN
const DAT_RMR_TRIPLET
*remote_iov
,
336 IN DAT_COMPLETION_FLAGS completion_flags
)
338 if (DAT_BAD_HANDLE(ep_handle
)) {
339 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE_EP
));
341 return DAT_EP_POST_RDMA_WRITE(ep_handle
,
350 DAT_RETURN
dat_ep_get_status(
351 IN DAT_EP_HANDLE ep_handle
,
352 OUT DAT_EP_STATE
*ep_state
,
353 OUT DAT_BOOLEAN
*recv_idle
,
354 OUT DAT_BOOLEAN
*request_idle
)
356 if (DAT_BAD_HANDLE(ep_handle
)) {
357 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE_EP
));
359 return DAT_EP_GET_STATUS(ep_handle
,
366 DAT_RETURN
dat_ep_free(
367 IN DAT_EP_HANDLE ep_handle
)
369 if (DAT_BAD_HANDLE(ep_handle
)) {
370 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE_EP
));
372 return (DAT_EP_FREE(ep_handle
));
376 DAT_RETURN
dat_ep_reset(
377 IN DAT_EP_HANDLE ep_handle
)
379 if (DAT_BAD_HANDLE(ep_handle
)) {
380 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE_EP
));
382 return (DAT_EP_RESET(ep_handle
));
386 DAT_RETURN
dat_lmr_free(
387 IN DAT_LMR_HANDLE lmr_handle
)
389 if (DAT_BAD_HANDLE(lmr_handle
)) {
390 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE_LMR
));
392 return (DAT_LMR_FREE(lmr_handle
));
396 DAT_RETURN
dat_rmr_create(
397 IN DAT_PZ_HANDLE pz_handle
,
398 OUT DAT_RMR_HANDLE
*rmr_handle
)
400 if (DAT_BAD_HANDLE(pz_handle
)) {
401 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE_PZ
));
403 return DAT_RMR_CREATE(pz_handle
,
408 DAT_RETURN
dat_rmr_query(
409 IN DAT_RMR_HANDLE rmr_handle
,
410 IN DAT_RMR_PARAM_MASK rmr_param_mask
,
411 OUT DAT_RMR_PARAM
*rmr_param
)
413 if (DAT_BAD_HANDLE(rmr_handle
)) {
414 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE_RMR
));
416 return DAT_RMR_QUERY(rmr_handle
,
422 DAT_RETURN
dat_rmr_bind(
423 IN DAT_RMR_HANDLE rmr_handle
,
424 IN
const DAT_LMR_TRIPLET
*lmr_triplet
,
425 IN DAT_MEM_PRIV_FLAGS mem_priv
,
426 IN DAT_EP_HANDLE ep_handle
,
427 IN DAT_RMR_COOKIE user_cookie
,
428 IN DAT_COMPLETION_FLAGS completion_flags
,
429 OUT DAT_RMR_CONTEXT
*context
)
431 if (DAT_BAD_HANDLE(rmr_handle
)) {
432 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE_RMR
));
434 return DAT_RMR_BIND(rmr_handle
,
444 DAT_RETURN
dat_rmr_free(
445 IN DAT_RMR_HANDLE rmr_handle
)
447 if (DAT_BAD_HANDLE(rmr_handle
)) {
448 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE_RMR
));
450 return (DAT_RMR_FREE(rmr_handle
));
454 DAT_RETURN
dat_psp_create(
455 IN DAT_IA_HANDLE ia_handle
,
456 IN DAT_CONN_QUAL conn_qual
,
457 IN DAT_EVD_HANDLE evd_handle
,
458 IN DAT_PSP_FLAGS psp_flags
,
459 OUT DAT_PSP_HANDLE
*psp_handle
)
461 if (DAT_BAD_HANDLE(ia_handle
)) {
462 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE_IA
));
464 return DAT_PSP_CREATE(ia_handle
,
472 DAT_RETURN
dat_psp_query(
473 IN DAT_PSP_HANDLE psp_handle
,
474 IN DAT_PSP_PARAM_MASK psp_param_mask
,
475 OUT DAT_PSP_PARAM
*psp_param
)
477 if (DAT_BAD_HANDLE(psp_handle
)) {
478 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE_PSP
));
480 return DAT_PSP_QUERY(psp_handle
,
486 DAT_RETURN
dat_psp_free(
487 IN DAT_PSP_HANDLE psp_handle
)
489 if (DAT_BAD_HANDLE(psp_handle
)) {
490 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE_PSP
));
492 return (DAT_PSP_FREE(psp_handle
));
496 DAT_RETURN
dat_rsp_create(
497 IN DAT_IA_HANDLE ia_handle
,
498 IN DAT_CONN_QUAL conn_qual
,
499 IN DAT_EP_HANDLE ep_handle
,
500 IN DAT_EVD_HANDLE evd_handle
,
501 OUT DAT_RSP_HANDLE
*rsp_handle
)
503 if (DAT_BAD_HANDLE(ia_handle
)) {
504 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE_IA
));
506 return DAT_RSP_CREATE(ia_handle
,
514 DAT_RETURN
dat_rsp_query(
515 IN DAT_RSP_HANDLE rsp_handle
,
516 IN DAT_RSP_PARAM_MASK rsp_param_mask
,
517 OUT DAT_RSP_PARAM
*rsp_param
)
519 if (DAT_BAD_HANDLE(rsp_handle
)) {
520 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE_RSP
));
522 return DAT_RSP_QUERY(rsp_handle
,
528 DAT_RETURN
dat_rsp_free(
529 IN DAT_RSP_HANDLE rsp_handle
)
531 if (DAT_BAD_HANDLE(rsp_handle
)) {
532 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE_RSP
));
534 return (DAT_RSP_FREE(rsp_handle
));
538 DAT_RETURN
dat_pz_create(
539 IN DAT_IA_HANDLE ia_handle
,
540 OUT DAT_PZ_HANDLE
*pz_handle
)
542 if (DAT_BAD_HANDLE(ia_handle
)) {
543 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE_IA
));
545 return DAT_PZ_CREATE(ia_handle
,
550 DAT_RETURN
dat_pz_query(
551 IN DAT_PZ_HANDLE pz_handle
,
552 IN DAT_PZ_PARAM_MASK pz_param_mask
,
553 OUT DAT_PZ_PARAM
*pz_param
)
555 if (DAT_BAD_HANDLE(pz_handle
)) {
556 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE_PZ
));
558 return DAT_PZ_QUERY(pz_handle
,
564 DAT_RETURN
dat_pz_free(
565 IN DAT_PZ_HANDLE pz_handle
)
567 if (DAT_BAD_HANDLE(pz_handle
)) {
568 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE_PZ
));
570 return (DAT_PZ_FREE(pz_handle
));
574 DAT_RETURN
dat_lmr_sync_rdma_read(
575 IN DAT_IA_HANDLE ia_handle
,
576 IN
const DAT_LMR_TRIPLET
*local_segments
,
577 IN DAT_VLEN num_segments
)
579 if (DAT_BAD_HANDLE(ia_handle
)) {
580 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE_IA
));
584 return (DAT_SUCCESS
);
585 #elif defined(__sparc)
586 return (DAT_LMR_SYNC_RDMA_READ(ia_handle
, local_segments
,
589 #error "ISA not supported"
594 DAT_RETURN
dat_lmr_sync_rdma_write(
595 IN DAT_IA_HANDLE ia_handle
,
596 IN
const DAT_LMR_TRIPLET
*local_segments
,
597 IN DAT_VLEN num_segments
)
599 if (DAT_BAD_HANDLE(ia_handle
)) {
600 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE_IA
));
604 return (DAT_SUCCESS
);
605 #elif defined(__sparc)
606 return (DAT_LMR_SYNC_RDMA_WRITE(ia_handle
, local_segments
,
609 #error "ISA not supported"
613 DAT_RETURN
dat_ep_create_with_srq(
614 IN DAT_IA_HANDLE ia_handle
,
615 IN DAT_PZ_HANDLE pz_handle
,
616 IN DAT_EVD_HANDLE recv_evd_handle
,
617 IN DAT_EVD_HANDLE request_evd_handle
,
618 IN DAT_EVD_HANDLE connect_evd_handle
,
619 IN DAT_SRQ_HANDLE srq_handle
,
620 IN
const DAT_EP_ATTR
*ep_attributes
,
621 OUT DAT_EP_HANDLE
*ep_handle
)
623 if (DAT_BAD_HANDLE(ia_handle
)) {
624 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE_IA
));
626 return DAT_EP_CREATE_WITH_SRQ(ia_handle
,
636 DAT_RETURN
dat_ep_recv_query(
637 IN DAT_EP_HANDLE ep_handle
,
638 OUT DAT_COUNT
*nbufs_allocated
,
639 OUT DAT_COUNT
*bufs_alloc_span
)
641 if (DAT_BAD_HANDLE(ep_handle
)) {
642 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE_EP
));
644 return DAT_EP_RECV_QUERY(ep_handle
,
649 DAT_RETURN
dat_ep_set_watermark(
650 IN DAT_EP_HANDLE ep_handle
,
651 IN DAT_COUNT soft_high_watermark
,
652 IN DAT_COUNT hard_high_watermark
)
654 if (DAT_BAD_HANDLE(ep_handle
)) {
655 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE_EP
));
657 return DAT_EP_SET_WATERMARK(ep_handle
,
659 hard_high_watermark
);
662 DAT_RETURN
dat_srq_create(
663 IN DAT_IA_HANDLE ia_handle
,
664 IN DAT_PZ_HANDLE pz_handle
,
665 IN DAT_SRQ_ATTR
*srq_attr
,
666 OUT DAT_SRQ_HANDLE
*srq_handle
)
668 if (DAT_BAD_HANDLE(ia_handle
)) {
669 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE_IA
));
671 return DAT_SRQ_CREATE(ia_handle
,
677 DAT_RETURN
dat_srq_free(
678 IN DAT_SRQ_HANDLE srq_handle
)
680 if (DAT_BAD_HANDLE(srq_handle
)) {
681 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE_SRQ
));
683 return (DAT_SRQ_FREE(srq_handle
));
686 DAT_RETURN
dat_srq_post_recv(
687 IN DAT_SRQ_HANDLE srq_handle
,
688 IN DAT_COUNT num_segments
,
689 IN DAT_LMR_TRIPLET
*local_iov
,
690 IN DAT_DTO_COOKIE user_cookie
)
692 if (DAT_BAD_HANDLE(srq_handle
)) {
693 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE_SRQ
));
695 return DAT_SRQ_POST_RECV(srq_handle
,
701 DAT_RETURN
dat_srq_query(
702 IN DAT_SRQ_HANDLE srq_handle
,
703 IN DAT_SRQ_PARAM_MASK srq_param_mask
,
704 OUT DAT_SRQ_PARAM
*srq_param
)
706 if (DAT_BAD_HANDLE(srq_handle
)) {
707 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE_SRQ
));
709 return DAT_SRQ_QUERY(srq_handle
,
714 DAT_RETURN
dat_srq_resize(
715 IN DAT_SRQ_HANDLE srq_handle
,
716 IN DAT_COUNT srq_max_recv_dto
)
718 if (DAT_BAD_HANDLE(srq_handle
)) {
719 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE_SRQ
));
721 return DAT_SRQ_RESIZE(srq_handle
,
725 DAT_RETURN
dat_srq_set_lw(
726 IN DAT_SRQ_HANDLE srq_handle
,
727 IN DAT_COUNT low_watermark
)
729 if (DAT_BAD_HANDLE(srq_handle
)) {
730 return (DAT_ERROR(DAT_INVALID_HANDLE
, DAT_INVALID_HANDLE_SRQ
));
732 return DAT_SRQ_SET_LW(srq_handle
,