[ipoib,core] Improve support for partitioning.
[mirror/winof/.git] / inc / kernel / iba / ipoib_ifc.h
1 /*\r
2  * Copyright (c) 2005 SilverStorm Technologies.  All rights reserved.\r
3  * Copyright (c) 2006 Mellanox Technologies.  All rights reserved.\r
4  *\r
5  * This software is available to you under the OpenIB.org BSD license\r
6  * below:\r
7  *\r
8  *     Redistribution and use in source and binary forms, with or\r
9  *     without modification, are permitted provided that the following\r
10  *     conditions are met:\r
11  *\r
12  *      - Redistributions of source code must retain the above\r
13  *        copyright notice, this list of conditions and the following\r
14  *        disclaimer.\r
15  *\r
16  *      - Redistributions in binary form must reproduce the above\r
17  *        copyright notice, this list of conditions and the following\r
18  *        disclaimer in the documentation and/or other materials\r
19  *        provided with the distribution.\r
20  *\r
21  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
22  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
23  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
24  * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS\r
25  * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\r
26  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
27  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
28  * SOFTWARE.\r
29  *\r
30  * $Id$\r
31  */\r
32 \r
33 \r
34 \r
35 #include "iba/ib_al_ifc.h"\r
36 \r
37 \r
38 #if !defined _IPOIB_IFC_H_\r
39 #define _IPOIB_IFC_H_\r
40 \r
41 \r
42 /****h* Access Layer/IPoIB Interface\r
43 * NAME\r
44 *       IPoIB Interface\r
45 *\r
46 * DESCRIPTION\r
47 *       Header file for the interface exported to IPoIB client drivers for access\r
48 *       to IB resources provided by HCAs.\r
49 *\r
50 *       The actual interface returned is an contains information about the\r
51 *       particular instance of an IPoIB device.\r
52 *********/\r
53 \r
54 \r
55 #define IPOIB_INTERFACE_DATA_VERSION            (5)\r
56 \r
57 \r
58 /****s* Access Layer: IPoIB Interface/ipoib_ifc_data_t\r
59 * NAME\r
60 *       ipoib_ifc_data_t\r
61 *\r
62 * DESCRIPTION\r
63 *       IPoIB interface datat.\r
64 *\r
65 *       The port guid combined from guid + PKEY \r
66 */\r
67 typedef struct _port_guid_pkey\r
68 {\r
69         net64_t         guid;\r
70         ib_net16_t      pkey;\r
71 } port_guid_pkey_t;\r
72 \r
73 \r
74 /*\r
75 *       The ipoib_ifc_data_t structure \r
76 *\r
77 * SYNOPSIS\r
78 */\r
79 typedef struct _ipoib_ifc_data\r
80 {\r
81         net64_t                                         ca_guid;\r
82         port_guid_pkey_t                        port_guid;\r
83         uint8_t                                         port_num;\r
84 \r
85 }       ipoib_ifc_data_t;\r
86 /*\r
87 * FIELDS\r
88 *       ca_guid\r
89 *               HCA GUID for this IPoIB interface\r
90 *\r
91 *       port_guid\r
92 *               Port GUID for this IPoIB interface\r
93 *\r
94 *       port_num\r
95 *               Port Number GUID for this IPoIB interface\r
96 *\r
97 * SEE ALSO\r
98 *       \r
99 *********/\r
100 \r
101 \r
102 \r
103 #endif  /* !defined _IPOIB_IFC_H_ */\r
104 \r
105 /*\r
106  * IPOIB interface GUID.  The GUID is defined outside the conditional include\r
107  * on purpose so that it can be instantiated only once where it is actually\r
108  * needed.  See the DDK docs section "Using GUIDs in Drivers" for more info.\r
109  */\r
110 /* {B40DDB48-5710-487a-B812-6DAF56C7F423} */\r
111 DEFINE_GUID(GUID_IPOIB_INTERFACE_DATA, \r
112 0xb40ddb48, 0x5710, 0x487a, 0xb8, 0x12, 0x6d, 0xaf, 0x56, 0xc7, 0xf4, 0x23);\r