/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright (c) 2002-2004, Network Appliance, Inc. All rights reserved.
*/
/*
* Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _DAT_REDIRECTION_H_
#define _DAT_REDIRECTION_H_
/*
*
* HEADER: dat_redirection.h
*
* PURPOSE: Defines the common redirection macros
*
* Description: Macros to invoke DAPL functions from the dat_registry
*
* Mapping rules:
* All global symbols are prepended with "DAT_" or "dat_"
* All DAT objects have an 'api' tag which, such as 'ep' or 'lmr'
* The method table is in the provider definition structure.
*
*
*
*/
#ifdef __cplusplus
extern "C" {
#endif
#ifndef DAT_HANDLE_TO_PROVIDER
/*
* A utility macro to fetch the Provider Library for any object
*
* An alternate version could be defined for single library systems.
* it would look something like:
* extern const struct dat_ia my_single_ia_provider;
* #define DAT_HANDLE_TO_PROVIDER(ignore) &my_single_ia_provider
*
* This would allow a good compiler to avoid indirection overhead when
* making function calls.
*/
#endif
(ia),\
(evd),\
(ia_msk),\
(ia_ptr),\
(p_msk),\
(p_ptr))
(handle),\
(context))
(handle),\
(context))
(handle),\
(handle_type))
(cr),\
(mask),\
(param))
(cr),\
(ep),\
(size),\
(pdata))
(cr))
(cr),\
(qual))
(evd),\
(mask),\
(param))
(evd),\
(qsize))
(evd),\
(event))
(evd),\
(event))
(evd))
(ia),\
(pz),\
(in_evd),\
(out_evd),\
(connect_evd),\
(attr),\
(ep))
(ia),\
(pz),\
(in_evd),\
(out_evd),\
(connect_evd),\
(srq),\
(attr),\
(ep))
(ep),\
(mask),\
(param))
(ep),\
(mask),\
(param))
(ep),\
(ia_addr),\
(conn_qual),\
(timeout),\
(psize),\
(pdata),\
(qos),\
(flags))
(ep),\
(dup),\
(timeout),\
(psize),\
(pdata),\
(qos))
(ep),\
(flags))
(ep),\
(size),\
(lbuf),\
(cookie),\
(flags))
(ep),\
(size),\
(lbuf),\
(cookie),\
(flags))
(ep),\
(size),\
(lbuf),\
(cookie),\
(rbuf),\
(flags))
(ep),\
(size),\
(lbuf),\
(cookie),\
(rbuf),\
(flags))
(ep), \
(ep_state),\
(recv_idle),\
(request_idle))
(ep))
(ep))
(ep),\
(nbuf_alloc),\
(buf_span))
(ep),\
(soft_wm),\
(hard_wm))
(lmr),\
(mask),\
(param))
(lmr))
(ia), \
(lbuf), \
(size))
(ia), \
(lbuf), \
(size))
(pz),\
(rmr))
(rmr),\
(mask),\
(param))
(rmr),\
(lmr),\
(mem_priv),\
(ep),\
(cookie),\
(flags),\
(context))
(rmr))
(ia),\
(conn_qual),\
(evd),\
(flags),\
(handle))
(ia), \
(conn_qual), \
(evd), \
(flags), \
(handle))
(psp),\
(mask),\
(param))
(psp))
(ia),\
(conn_qual),\
(ep),\
(evd),\
(handle))
(rsp),\
(mask),\
(param))
(rsp))
(ia),\
(pz))
(pz),\
(mask),\
(param))
(pz))
(ia),\
(pz),\
(attr),\
(srq))
(srq),\
(lw))
(srq))
(srq),\
(mask),\
(param))
(srq),\
(qsize))
(srq),\
(size),\
(lbuf),\
(cookie))
/*
* FUNCTION PROTOTYPES
*/
/* helper functions */
OUT DAT_HANDLE_TYPE *);
/* CR Functions */
/*
* For DAT-1.1 this function is defined for both uDAPL and kDAPL.
* For DAT-1.0 it was only defined for uDAPL.
*/
/* EVD Functions */
/* EP functions */
/* LMR functions */
/* RMR Functions */
/* PSP Functions */
/* RSP Functions */
/* PZ Functions */
/* SRQ Functions */
#ifdef __cplusplus
}
#endif
#endif /* _DAT_REDIRECTION_H_ */