diff options
Diffstat (limited to 'drivers/infiniband/hw/ocrdma/ocrdma_abi.h')
-rw-r--r-- | drivers/infiniband/hw/ocrdma/ocrdma_abi.h | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_abi.h b/drivers/infiniband/hw/ocrdma/ocrdma_abi.h new file mode 100644 index 00000000000..a411a4e3193 --- /dev/null +++ b/drivers/infiniband/hw/ocrdma/ocrdma_abi.h | |||
@@ -0,0 +1,134 @@ | |||
1 | /******************************************************************* | ||
2 | * This file is part of the Emulex RoCE Device Driver for * | ||
3 | * RoCE (RDMA over Converged Ethernet) adapters. * | ||
4 | * Copyright (C) 2008-2012 Emulex. All rights reserved. * | ||
5 | * EMULEX and SLI are trademarks of Emulex. * | ||
6 | * www.emulex.com * | ||
7 | * * | ||
8 | * This program is free software; you can redistribute it and/or * | ||
9 | * modify it under the terms of version 2 of the GNU General * | ||
10 | * Public License as published by the Free Software Foundation. * | ||
11 | * This program is distributed in the hope that it will be useful. * | ||
12 | * ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND * | ||
13 | * WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, * | ||
14 | * FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT, ARE * | ||
15 | * DISCLAIMED, EXCEPT TO THE EXTENT THAT SUCH DISCLAIMERS ARE HELD * | ||
16 | * TO BE LEGALLY INVALID. See the GNU General Public License for * | ||
17 | * more details, a copy of which can be found in the file COPYING * | ||
18 | * included with this package. * | ||
19 | * | ||
20 | * Contact Information: | ||
21 | * linux-drivers@emulex.com | ||
22 | * | ||
23 | * Emulex | ||
24 | * 3333 Susan Street | ||
25 | * Costa Mesa, CA 92626 | ||
26 | *******************************************************************/ | ||
27 | |||
28 | #ifndef __OCRDMA_ABI_H__ | ||
29 | #define __OCRDMA_ABI_H__ | ||
30 | |||
31 | struct ocrdma_alloc_ucontext_resp { | ||
32 | u32 dev_id; | ||
33 | u32 wqe_size; | ||
34 | u32 max_inline_data; | ||
35 | u32 dpp_wqe_size; | ||
36 | u64 ah_tbl_page; | ||
37 | u32 ah_tbl_len; | ||
38 | u32 rsvd; | ||
39 | u8 fw_ver[32]; | ||
40 | u32 rqe_size; | ||
41 | u64 rsvd1; | ||
42 | } __packed; | ||
43 | |||
44 | /* user kernel communication data structures. */ | ||
45 | struct ocrdma_alloc_pd_ureq { | ||
46 | u64 rsvd1; | ||
47 | } __packed; | ||
48 | |||
49 | struct ocrdma_alloc_pd_uresp { | ||
50 | u32 id; | ||
51 | u32 dpp_enabled; | ||
52 | u32 dpp_page_addr_hi; | ||
53 | u32 dpp_page_addr_lo; | ||
54 | u64 rsvd1; | ||
55 | } __packed; | ||
56 | |||
57 | struct ocrdma_create_cq_ureq { | ||
58 | u32 dpp_cq; | ||
59 | u32 rsvd; | ||
60 | } __packed; | ||
61 | |||
62 | #define MAX_CQ_PAGES 8 | ||
63 | struct ocrdma_create_cq_uresp { | ||
64 | u32 cq_id; | ||
65 | u32 page_size; | ||
66 | u32 num_pages; | ||
67 | u32 max_hw_cqe; | ||
68 | u64 page_addr[MAX_CQ_PAGES]; | ||
69 | u64 db_page_addr; | ||
70 | u32 db_page_size; | ||
71 | u32 phase_change; | ||
72 | u64 rsvd1; | ||
73 | u64 rsvd2; | ||
74 | } __packed; | ||
75 | |||
76 | #define MAX_QP_PAGES 8 | ||
77 | #define MAX_UD_AV_PAGES 8 | ||
78 | |||
79 | struct ocrdma_create_qp_ureq { | ||
80 | u8 enable_dpp_cq; | ||
81 | u8 rsvd; | ||
82 | u16 dpp_cq_id; | ||
83 | u32 rsvd1; | ||
84 | }; | ||
85 | |||
86 | struct ocrdma_create_qp_uresp { | ||
87 | u16 qp_id; | ||
88 | u16 sq_dbid; | ||
89 | u16 rq_dbid; | ||
90 | u16 resv0; | ||
91 | u32 sq_page_size; | ||
92 | u32 rq_page_size; | ||
93 | u32 num_sq_pages; | ||
94 | u32 num_rq_pages; | ||
95 | u64 sq_page_addr[MAX_QP_PAGES]; | ||
96 | u64 rq_page_addr[MAX_QP_PAGES]; | ||
97 | u64 db_page_addr; | ||
98 | u32 db_page_size; | ||
99 | u32 dpp_credit; | ||
100 | u32 dpp_offset; | ||
101 | u32 rsvd1; | ||
102 | u32 num_wqe_allocated; | ||
103 | u32 num_rqe_allocated; | ||
104 | u32 free_wqe_delta; | ||
105 | u32 free_rqe_delta; | ||
106 | u32 db_sq_offset; | ||
107 | u32 db_rq_offset; | ||
108 | u32 db_shift; | ||
109 | u64 rsvd2; | ||
110 | u64 rsvd3; | ||
111 | } __packed; | ||
112 | |||
113 | struct ocrdma_create_srq_uresp { | ||
114 | u16 rq_dbid; | ||
115 | u16 resv0; | ||
116 | u32 resv1; | ||
117 | |||
118 | u32 rq_page_size; | ||
119 | u32 num_rq_pages; | ||
120 | |||
121 | u64 rq_page_addr[MAX_QP_PAGES]; | ||
122 | u64 db_page_addr; | ||
123 | |||
124 | u32 db_page_size; | ||
125 | u32 num_rqe_allocated; | ||
126 | u32 db_rq_offset; | ||
127 | u32 db_shift; | ||
128 | |||
129 | u32 free_rqe_delta; | ||
130 | u32 rsvd2; | ||
131 | u64 rsvd3; | ||
132 | } __packed; | ||
133 | |||
134 | #endif /* __OCRDMA_ABI_H__ */ | ||