1 /****************************************************************************
2  ****************************************************************************
3  ***
4  ***   This header was automatically generated from a Linux kernel header
5  ***   of the same name, to make information necessary for userspace to
6  ***   call into the kernel available to libc.  It contains only constants,
7  ***   structures, and macros generated from the original header, and thus,
8  ***   contains no copyrightable information.
9  ***
10  ***   To edit the content of this header, modify the corresponding
11  ***   source file (e.g. under external/kernel-headers/original/) then
12  ***   run bionic/libc/kernel/tools/update_all.py
13  ***
14  ***   Any manual change here will be lost the next time this script will
15  ***   be run. You've been warned!
16  ***
17  ****************************************************************************
18  ****************************************************************************/
19 #ifndef OCRDMA_ABI_USER_H
20 #define OCRDMA_ABI_USER_H
21 #include <linux/types.h>
22 #define OCRDMA_ABI_VERSION 2
23 #define OCRDMA_BE_ROCE_ABI_VERSION 1
24 struct ocrdma_alloc_ucontext_resp {
25   __u32 dev_id;
26   __u32 wqe_size;
27   __u32 max_inline_data;
28   __u32 dpp_wqe_size;
29   __aligned_u64 ah_tbl_page;
30   __u32 ah_tbl_len;
31   __u32 rqe_size;
32   __u8 fw_ver[32];
33   __aligned_u64 rsvd1;
34   __aligned_u64 rsvd2;
35 };
36 struct ocrdma_alloc_pd_ureq {
37   __u32 rsvd[2];
38 };
39 struct ocrdma_alloc_pd_uresp {
40   __u32 id;
41   __u32 dpp_enabled;
42   __u32 dpp_page_addr_hi;
43   __u32 dpp_page_addr_lo;
44   __u32 rsvd[2];
45 };
46 struct ocrdma_create_cq_ureq {
47   __u32 dpp_cq;
48   __u32 rsvd;
49 };
50 #define MAX_CQ_PAGES 8
51 struct ocrdma_create_cq_uresp {
52   __u32 cq_id;
53   __u32 page_size;
54   __u32 num_pages;
55   __u32 max_hw_cqe;
56   __aligned_u64 page_addr[MAX_CQ_PAGES];
57   __aligned_u64 db_page_addr;
58   __u32 db_page_size;
59   __u32 phase_change;
60   __aligned_u64 rsvd1;
61   __aligned_u64 rsvd2;
62 };
63 #define MAX_QP_PAGES 8
64 #define MAX_UD_AV_PAGES 8
65 struct ocrdma_create_qp_ureq {
66   __u8 enable_dpp_cq;
67   __u8 rsvd;
68   __u16 dpp_cq_id;
69   __u32 rsvd1;
70 };
71 struct ocrdma_create_qp_uresp {
72   __u16 qp_id;
73   __u16 sq_dbid;
74   __u16 rq_dbid;
75   __u16 resv0;
76   __u32 sq_page_size;
77   __u32 rq_page_size;
78   __u32 num_sq_pages;
79   __u32 num_rq_pages;
80   __aligned_u64 sq_page_addr[MAX_QP_PAGES];
81   __aligned_u64 rq_page_addr[MAX_QP_PAGES];
82   __aligned_u64 db_page_addr;
83   __u32 db_page_size;
84   __u32 dpp_credit;
85   __u32 dpp_offset;
86   __u32 num_wqe_allocated;
87   __u32 num_rqe_allocated;
88   __u32 db_sq_offset;
89   __u32 db_rq_offset;
90   __u32 db_shift;
91   __aligned_u64 rsvd[11];
92 };
93 struct ocrdma_create_srq_uresp {
94   __u16 rq_dbid;
95   __u16 resv0;
96   __u32 resv1;
97   __u32 rq_page_size;
98   __u32 num_rq_pages;
99   __aligned_u64 rq_page_addr[MAX_QP_PAGES];
100   __aligned_u64 db_page_addr;
101   __u32 db_page_size;
102   __u32 num_rqe_allocated;
103   __u32 db_rq_offset;
104   __u32 db_shift;
105   __aligned_u64 rsvd2;
106   __aligned_u64 rsvd3;
107 };
108 #endif
109