]>
Commit | Line | Data |
---|---|---|
e2be04c7 | 1 | /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-2-Clause) */ |
71ee6730 DS |
2 | /* This file is part of the Emulex RoCE Device Driver for |
3 | * RoCE (RDMA over Converged Ethernet) adapters. | |
4 | * Copyright (C) 2012-2015 Emulex. All rights reserved. | |
5 | * EMULEX and SLI are trademarks of Emulex. | |
6 | * www.emulex.com | |
7 | * | |
8 | * This software is available to you under a choice of one of two licenses. | |
9 | * You may choose to be licensed under the terms of the GNU General Public | |
10 | * License (GPL) Version 2, available from the file COPYING in the main | |
11 | * directory of this source tree, or the BSD license below: | |
12 | * | |
13 | * Redistribution and use in source and binary forms, with or without | |
14 | * modification, are permitted provided that the following conditions | |
15 | * are met: | |
16 | * | |
17 | * - Redistributions of source code must retain the above copyright notice, | |
18 | * this list of conditions and the following disclaimer. | |
19 | * | |
20 | * - Redistributions in binary form must reproduce the above copyright | |
21 | * notice, this list of conditions and the following disclaimer in | |
22 | * the documentation and/or other materials provided with the distribution. | |
23 | * | |
24 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | |
25 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,THE | |
26 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |
27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE | |
28 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | |
29 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | |
30 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR | |
31 | * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, | |
32 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR | |
33 | * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF | |
34 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
fe2caefc PP |
35 | * |
36 | * Contact Information: | |
37 | * linux-drivers@emulex.com | |
38 | * | |
39 | * Emulex | |
40 | * 3333 Susan Street | |
41 | * Costa Mesa, CA 92626 | |
71ee6730 | 42 | */ |
fe2caefc | 43 | |
a7fe7380 LR |
44 | #ifndef OCRDMA_ABI_USER_H |
45 | #define OCRDMA_ABI_USER_H | |
46 | ||
47 | #include <linux/types.h> | |
fe2caefc | 48 | |
2e6e9f2b | 49 | #define OCRDMA_ABI_VERSION 2 |
b6b87d2e | 50 | #define OCRDMA_BE_ROCE_ABI_VERSION 1 |
7b9b1a59 NG |
51 | /* user kernel communication data structures. */ |
52 | ||
fe2caefc | 53 | struct ocrdma_alloc_ucontext_resp { |
a7fe7380 LR |
54 | __u32 dev_id; |
55 | __u32 wqe_size; | |
56 | __u32 max_inline_data; | |
57 | __u32 dpp_wqe_size; | |
58 | __u64 ah_tbl_page; | |
59 | __u32 ah_tbl_len; | |
60 | __u32 rqe_size; | |
61 | __u8 fw_ver[32]; | |
7b9b1a59 | 62 | /* for future use/new features in progress */ |
a7fe7380 LR |
63 | __u64 rsvd1; |
64 | __u64 rsvd2; | |
7b9b1a59 | 65 | }; |
fe2caefc | 66 | |
fe2caefc | 67 | struct ocrdma_alloc_pd_ureq { |
a7fe7380 | 68 | __u64 rsvd1; |
7b9b1a59 | 69 | }; |
fe2caefc PP |
70 | |
71 | struct ocrdma_alloc_pd_uresp { | |
a7fe7380 LR |
72 | __u32 id; |
73 | __u32 dpp_enabled; | |
74 | __u32 dpp_page_addr_hi; | |
75 | __u32 dpp_page_addr_lo; | |
76 | __u64 rsvd1; | |
7b9b1a59 | 77 | }; |
fe2caefc PP |
78 | |
79 | struct ocrdma_create_cq_ureq { | |
a7fe7380 LR |
80 | __u32 dpp_cq; |
81 | __u32 rsvd; /* pad */ | |
7b9b1a59 | 82 | }; |
fe2caefc PP |
83 | |
84 | #define MAX_CQ_PAGES 8 | |
85 | struct ocrdma_create_cq_uresp { | |
a7fe7380 LR |
86 | __u32 cq_id; |
87 | __u32 page_size; | |
88 | __u32 num_pages; | |
89 | __u32 max_hw_cqe; | |
90 | __u64 page_addr[MAX_CQ_PAGES]; | |
91 | __u64 db_page_addr; | |
92 | __u32 db_page_size; | |
93 | __u32 phase_change; | |
7b9b1a59 | 94 | /* for future use/new features in progress */ |
a7fe7380 LR |
95 | __u64 rsvd1; |
96 | __u64 rsvd2; | |
7b9b1a59 | 97 | }; |
fe2caefc PP |
98 | |
99 | #define MAX_QP_PAGES 8 | |
100 | #define MAX_UD_AV_PAGES 8 | |
101 | ||
102 | struct ocrdma_create_qp_ureq { | |
a7fe7380 LR |
103 | __u8 enable_dpp_cq; |
104 | __u8 rsvd; | |
105 | __u16 dpp_cq_id; | |
106 | __u32 rsvd1; /* pad */ | |
fe2caefc PP |
107 | }; |
108 | ||
109 | struct ocrdma_create_qp_uresp { | |
a7fe7380 LR |
110 | __u16 qp_id; |
111 | __u16 sq_dbid; | |
112 | __u16 rq_dbid; | |
113 | __u16 resv0; /* pad */ | |
114 | __u32 sq_page_size; | |
115 | __u32 rq_page_size; | |
116 | __u32 num_sq_pages; | |
117 | __u32 num_rq_pages; | |
118 | __u64 sq_page_addr[MAX_QP_PAGES]; | |
119 | __u64 rq_page_addr[MAX_QP_PAGES]; | |
120 | __u64 db_page_addr; | |
121 | __u32 db_page_size; | |
122 | __u32 dpp_credit; | |
123 | __u32 dpp_offset; | |
124 | __u32 num_wqe_allocated; | |
125 | __u32 num_rqe_allocated; | |
126 | __u32 db_sq_offset; | |
127 | __u32 db_rq_offset; | |
128 | __u32 db_shift; | |
129 | __u64 rsvd[11]; | |
fe2caefc PP |
130 | } __packed; |
131 | ||
132 | struct ocrdma_create_srq_uresp { | |
a7fe7380 LR |
133 | __u16 rq_dbid; |
134 | __u16 resv0; /* pad */ | |
135 | __u32 resv1; | |
fe2caefc | 136 | |
a7fe7380 LR |
137 | __u32 rq_page_size; |
138 | __u32 num_rq_pages; | |
fe2caefc | 139 | |
a7fe7380 LR |
140 | __u64 rq_page_addr[MAX_QP_PAGES]; |
141 | __u64 db_page_addr; | |
fe2caefc | 142 | |
a7fe7380 LR |
143 | __u32 db_page_size; |
144 | __u32 num_rqe_allocated; | |
145 | __u32 db_rq_offset; | |
146 | __u32 db_shift; | |
fe2caefc | 147 | |
a7fe7380 LR |
148 | __u64 rsvd2; |
149 | __u64 rsvd3; | |
7b9b1a59 | 150 | }; |
fe2caefc | 151 | |
a7fe7380 | 152 | #endif /* OCRDMA_ABI_USER_H */ |