blob: 3e508fbd5e78f63f32a110d21dfb14007642e847 [file] [log] [blame]
Ram Amraniec72fce2016-10-10 13:15:31 +03001/* QLogic qedr NIC Driver
2 * Copyright (c) 2015-2016 QLogic Corporation
3 *
4 * This software is available to you under a choice of one of two
5 * licenses. You may choose to be licensed under the terms of the GNU
6 * General Public License (GPL) Version 2, available from the file
7 * COPYING in the main directory of this source tree, or the
8 * OpenIB.org BSD license below:
9 *
10 * Redistribution and use in source and binary forms, with or
11 * without modification, are permitted provided that the following
12 * conditions are met:
13 *
14 * - Redistributions of source code must retain the above
15 * copyright notice, this list of conditions and the following
16 * disclaimer.
17 *
18 * - Redistributions in binary form must reproduce the above
19 * copyright notice, this list of conditions and the following
20 * disclaimer in the documentation and /or other materials
21 * provided with the distribution.
22 *
23 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
24 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
26 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
27 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
28 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
29 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
30 * SOFTWARE.
31 */
32#ifndef __QED_HSI_RDMA__
33#define __QED_HSI_RDMA__
34
35#include <linux/qed/rdma_common.h>
36
37/* rdma completion notification queue element */
38struct rdma_cnqe {
39 struct regpair cq_handle;
40};
41
42struct rdma_cqe_responder {
43 struct regpair srq_wr_id;
44 struct regpair qp_handle;
45 __le32 imm_data_or_inv_r_Key;
46 __le32 length;
47 __le32 imm_data_hi;
48 __le16 rq_cons;
49 u8 flags;
50};
51
52struct rdma_cqe_requester {
53 __le16 sq_cons;
54 __le16 reserved0;
55 __le32 reserved1;
56 struct regpair qp_handle;
57 struct regpair reserved2;
58 __le32 reserved3;
59 __le16 reserved4;
60 u8 flags;
61 u8 status;
62};
63
64struct rdma_cqe_common {
65 struct regpair reserved0;
66 struct regpair qp_handle;
67 __le16 reserved1[7];
68 u8 flags;
69 u8 status;
70};
71
72/* rdma completion queue element */
73union rdma_cqe {
74 struct rdma_cqe_responder resp;
75 struct rdma_cqe_requester req;
76 struct rdma_cqe_common cmn;
77};
78
79struct rdma_sq_sge {
80 __le32 length;
81 struct regpair addr;
82 __le32 l_key;
83};
84
85struct rdma_rq_sge {
86 struct regpair addr;
87 __le32 length;
88 __le32 flags;
89};
90
91struct rdma_srq_sge {
92 struct regpair addr;
93 __le32 length;
94 __le32 l_key;
95};
96#endif /* __QED_HSI_RDMA__ */