PM / sleep: Asynchronous threads for suspend_noirq
[linux/fpc-iii.git] / drivers / infiniband / hw / ocrdma / ocrdma_abi.h
blobfbac8eb44036b02ff7c1233f76e951a0e0adfe8a
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. *
20 * Contact Information:
21 * linux-drivers@emulex.com
23 * Emulex
24 * 3333 Susan Street
25 * Costa Mesa, CA 92626
26 *******************************************************************/
28 #ifndef __OCRDMA_ABI_H__
29 #define __OCRDMA_ABI_H__
31 #define OCRDMA_ABI_VERSION 1
32 /* user kernel communication data structures. */
34 struct ocrdma_alloc_ucontext_resp {
35 u32 dev_id;
36 u32 wqe_size;
37 u32 max_inline_data;
38 u32 dpp_wqe_size;
39 u64 ah_tbl_page;
40 u32 ah_tbl_len;
41 u32 rqe_size;
42 u8 fw_ver[32];
43 /* for future use/new features in progress */
44 u64 rsvd1;
45 u64 rsvd2;
48 struct ocrdma_alloc_pd_ureq {
49 u64 rsvd1;
52 struct ocrdma_alloc_pd_uresp {
53 u32 id;
54 u32 dpp_enabled;
55 u32 dpp_page_addr_hi;
56 u32 dpp_page_addr_lo;
57 u64 rsvd1;
60 struct ocrdma_create_cq_ureq {
61 u32 dpp_cq;
62 u32 rsvd; /* pad */
65 #define MAX_CQ_PAGES 8
66 struct ocrdma_create_cq_uresp {
67 u32 cq_id;
68 u32 page_size;
69 u32 num_pages;
70 u32 max_hw_cqe;
71 u64 page_addr[MAX_CQ_PAGES];
72 u64 db_page_addr;
73 u32 db_page_size;
74 u32 phase_change;
75 /* for future use/new features in progress */
76 u64 rsvd1;
77 u64 rsvd2;
80 #define MAX_QP_PAGES 8
81 #define MAX_UD_AV_PAGES 8
83 struct ocrdma_create_qp_ureq {
84 u8 enable_dpp_cq;
85 u8 rsvd;
86 u16 dpp_cq_id;
87 u32 rsvd1; /* pad */
90 struct ocrdma_create_qp_uresp {
91 u16 qp_id;
92 u16 sq_dbid;
93 u16 rq_dbid;
94 u16 resv0; /* pad */
95 u32 sq_page_size;
96 u32 rq_page_size;
97 u32 num_sq_pages;
98 u32 num_rq_pages;
99 u64 sq_page_addr[MAX_QP_PAGES];
100 u64 rq_page_addr[MAX_QP_PAGES];
101 u64 db_page_addr;
102 u32 db_page_size;
103 u32 dpp_credit;
104 u32 dpp_offset;
105 u32 num_wqe_allocated;
106 u32 num_rqe_allocated;
107 u32 db_sq_offset;
108 u32 db_rq_offset;
109 u32 db_shift;
110 u64 rsvd1;
111 u64 rsvd2;
112 u64 rsvd3;
113 } __packed;
115 struct ocrdma_create_srq_uresp {
116 u16 rq_dbid;
117 u16 resv0; /* pad */
118 u32 resv1;
120 u32 rq_page_size;
121 u32 num_rq_pages;
123 u64 rq_page_addr[MAX_QP_PAGES];
124 u64 db_page_addr;
126 u32 db_page_size;
127 u32 num_rqe_allocated;
128 u32 db_rq_offset;
129 u32 db_shift;
131 u64 rsvd2;
132 u64 rsvd3;
135 #endif /* __OCRDMA_ABI_H__ */