1*9e39c5baSBill Taylor /*
2*9e39c5baSBill Taylor  * CDDL HEADER START
3*9e39c5baSBill Taylor  *
4*9e39c5baSBill Taylor  * The contents of this file are subject to the terms of the
5*9e39c5baSBill Taylor  * Common Development and Distribution License (the "License").
6*9e39c5baSBill Taylor  * You may not use this file except in compliance with the License.
7*9e39c5baSBill Taylor  *
8*9e39c5baSBill Taylor  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9*9e39c5baSBill Taylor  * or http://www.opensolaris.org/os/licensing.
10*9e39c5baSBill Taylor  * See the License for the specific language governing permissions
11*9e39c5baSBill Taylor  * and limitations under the License.
12*9e39c5baSBill Taylor  *
13*9e39c5baSBill Taylor  * When distributing Covered Code, include this CDDL HEADER in each
14*9e39c5baSBill Taylor  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15*9e39c5baSBill Taylor  * If applicable, add the following below this CDDL HEADER, with the
16*9e39c5baSBill Taylor  * fields enclosed by brackets "[]" replaced with your own identifying
17*9e39c5baSBill Taylor  * information: Portions Copyright [yyyy] [name of copyright owner]
18*9e39c5baSBill Taylor  *
19*9e39c5baSBill Taylor  * CDDL HEADER END
20*9e39c5baSBill Taylor  */
21*9e39c5baSBill Taylor 
22*9e39c5baSBill Taylor /*
23*9e39c5baSBill Taylor  * Copyright (c) 2002-2003, Network Appliance, Inc. All rights reserved.
24*9e39c5baSBill Taylor  */
25*9e39c5baSBill Taylor 
26*9e39c5baSBill Taylor /*
27*9e39c5baSBill Taylor  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
28*9e39c5baSBill Taylor  * Use is subject to license terms.
29*9e39c5baSBill Taylor  */
30*9e39c5baSBill Taylor 
31*9e39c5baSBill Taylor /*
32*9e39c5baSBill Taylor  *
33*9e39c5baSBill Taylor  * HEADER: dapl_vendor.h
34*9e39c5baSBill Taylor  *
35*9e39c5baSBill Taylor  * PURPOSE:
36*9e39c5baSBill Taylor  *	Vendor provides values for their implementation. Most of
37*9e39c5baSBill Taylor  *	these values are returned in the DAT_IA_ATTR parameter of
38*9e39c5baSBill Taylor  *	dat_ia_query()
39*9e39c5baSBill Taylor  *
40*9e39c5baSBill Taylor  */
41*9e39c5baSBill Taylor 
42*9e39c5baSBill Taylor #ifndef _DAPL_VENDOR_H_
43*9e39c5baSBill Taylor #define	_DAPL_VENDOR_H_
44*9e39c5baSBill Taylor 
45*9e39c5baSBill Taylor #ifdef __cplusplus
46*9e39c5baSBill Taylor extern "C" {
47*9e39c5baSBill Taylor #endif
48*9e39c5baSBill Taylor 
49*9e39c5baSBill Taylor /*
50*9e39c5baSBill Taylor  * DAT_IA_ATTR attributes
51*9e39c5baSBill Taylor  *
52*9e39c5baSBill Taylor  * These values are used in the provider support routine
53*9e39c5baSBill Taylor  * dapls_ib_query_hca (). Many of the values there are HW
54*9e39c5baSBill Taylor  * specific, the the vendor should look to make sure they are
55*9e39c5baSBill Taylor  * appropriate for their implementation. Specifically,
56*9e39c5baSBill Taylor  * vendors are encouraged to update transport and vendor
57*9e39c5baSBill Taylor  * attributes: the reference implementation sets these to NULL.
58*9e39c5baSBill Taylor  */
59*9e39c5baSBill Taylor 
60*9e39c5baSBill Taylor /*
61*9e39c5baSBill Taylor  * Product name of the adapter.
62*9e39c5baSBill Taylor  * Returned in DAT_IA_ATTR.adapter_name
63*9e39c5baSBill Taylor  * adapter name is limited to DAT_NAME_MAX_LENGTH
64*9e39c5baSBill Taylor  */
65*9e39c5baSBill Taylor #define	VN_ADAPTER_NAME		"InfiniBand HCA Tavor"
66*9e39c5baSBill Taylor 
67*9e39c5baSBill Taylor 
68*9e39c5baSBill Taylor /*
69*9e39c5baSBill Taylor  * Vendor name
70*9e39c5baSBill Taylor  * Returned in DAT_IA_ATTR.vendor_name
71*9e39c5baSBill Taylor  */
72*9e39c5baSBill Taylor #define	VN_VENDOR_NAME		"SUNW"
73*9e39c5baSBill Taylor 
74*9e39c5baSBill Taylor 
75*9e39c5baSBill Taylor /*
76*9e39c5baSBill Taylor  * PROVIDER Attributes
77*9e39c5baSBill Taylor  *
78*9e39c5baSBill Taylor  * These values are used in ./common/dapl_ia_query.c, in dapl_ia_query ().
79*9e39c5baSBill Taylor  * The values below are the most common for vendors to change, but
80*9e39c5baSBill Taylor  * there are several other values that may be updated once the
81*9e39c5baSBill Taylor  * implementation becomes mature.
82*9e39c5baSBill Taylor  *
83*9e39c5baSBill Taylor  */
84*9e39c5baSBill Taylor 
85*9e39c5baSBill Taylor /*
86*9e39c5baSBill Taylor  * Provider Versions
87*9e39c5baSBill Taylor  * Returned in DAT_PROVIDER_ATTR.provider_version_major and
88*9e39c5baSBill Taylor  * DAT_PROVIDER_ATTR.provider_version_minor
89*9e39c5baSBill Taylor  */
90*9e39c5baSBill Taylor 
91*9e39c5baSBill Taylor #define	VN_PROVIDER_MAJOR	1
92*9e39c5baSBill Taylor #define	VN_PROVIDER_MINOR	0
93*9e39c5baSBill Taylor 
94*9e39c5baSBill Taylor /*
95*9e39c5baSBill Taylor  * Provider support for memory types. The reference implementation
96*9e39c5baSBill Taylor  * always supports DAT_MEM_TYPE_VIRTUAL and DAT_MEM_TYPE_LMR, so
97*9e39c5baSBill Taylor  * the vendor must indicate if they support DAT_MEM_TYPE_SHARED_VIRTUAL.
98*9e39c5baSBill Taylor  * Set this value to '1' if DAT_MEM_TYPE_SHARED_VIRTUAL is supported.
99*9e39c5baSBill Taylor  *
100*9e39c5baSBill Taylor  * Returned in DAT_PROVIDER_ATTR.lmr_mem_types_supported
101*9e39c5baSBill Taylor  */
102*9e39c5baSBill Taylor 
103*9e39c5baSBill Taylor #define	VN_MEM_SHARED_VIRTUAL_SUPPORT 1
104*9e39c5baSBill Taylor 
105*9e39c5baSBill Taylor 
106*9e39c5baSBill Taylor /*
107*9e39c5baSBill Taylor  *
108*9e39c5baSBill Taylor  * This value will be assigned to dev_name_prefix in ./udapl/dapl_init.c.
109*9e39c5baSBill Taylor  *
110*9e39c5baSBill Taylor  * DAT is designed to support multiple DAPL instances simultaneously,
111*9e39c5baSBill Taylor  * with different dapl libraries originating from different providers.
112*9e39c5baSBill Taylor  * There is always the possibility of name conflicts, so a dat name
113*9e39c5baSBill Taylor  * prefix is provided to make a vendor's adapter name unique. This is
114*9e39c5baSBill Taylor  * especially true of the IBM Access API, which returns adapter
115*9e39c5baSBill Taylor  * names that are simply ordinal numbers (e.g. 0, 1, 2). If
116*9e39c5baSBill Taylor  * a vendor doesn't need or want a prefix, it should be left
117*9e39c5baSBill Taylor  * as a NULL (use "").
118*9e39c5baSBill Taylor  *
119*9e39c5baSBill Taylor  * Values that might be used:
120*9e39c5baSBill Taylor  *  #define VN_PREFIX		"jni"	(JNI: OS Acces API)
121*9e39c5baSBill Taylor  *  #define VN_PREFIX		"ibm"	(IBM: OS Acces API)
122*9e39c5baSBill Taylor  *  #define VN_PREFIX		""      (Mellanox: VAPI)
123*9e39c5baSBill Taylor  *  #define VN_PREFIX		""      (Intel: IB Common API)
124*9e39c5baSBill Taylor  */
125*9e39c5baSBill Taylor #define	VN_PREFIX		""
126*9e39c5baSBill Taylor 
127*9e39c5baSBill Taylor #ifdef __cplusplus
128*9e39c5baSBill Taylor }
129*9e39c5baSBill Taylor #endif
130*9e39c5baSBill Taylor 
131*9e39c5baSBill Taylor #endif /* _DAPL_VENDOR_H_ */