1 /* 2 * This header was generated from the Linux kernel headers by update_headers.py, 3 * to provide necessary information from kernel to userspace, such as constants, 4 * structures, and macros, and thus, contains no copyrightable information. 5 */ 6 #ifndef OCRDMA_ABI_USER_H 7 #define OCRDMA_ABI_USER_H 8 #include <linux/types.h> 9 #define OCRDMA_ABI_VERSION 2 10 #define OCRDMA_BE_ROCE_ABI_VERSION 1 11 struct ocrdma_alloc_ucontext_resp { 12 __u32 dev_id; 13 __u32 wqe_size; 14 __u32 max_inline_data; 15 __u32 dpp_wqe_size; 16 __aligned_u64 ah_tbl_page; 17 __u32 ah_tbl_len; 18 __u32 rqe_size; 19 __u8 fw_ver[32]; 20 21 __aligned_u64 rsvd1; 22 __aligned_u64 rsvd2; 23 }; 24 struct ocrdma_alloc_pd_ureq { 25 __u32 rsvd[2]; 26 }; 27 struct ocrdma_alloc_pd_uresp { 28 __u32 id; 29 __u32 dpp_enabled; 30 __u32 dpp_page_addr_hi; 31 __u32 dpp_page_addr_lo; 32 __u32 rsvd[2]; 33 }; 34 struct ocrdma_create_cq_ureq { 35 __u32 dpp_cq; 36 __u32 rsvd; 37 }; 38 #define MAX_CQ_PAGES 8 39 struct ocrdma_create_cq_uresp { 40 __u32 cq_id; 41 __u32 page_size; 42 __u32 num_pages; 43 __u32 max_hw_cqe; 44 __aligned_u64 page_addr[MAX_CQ_PAGES]; 45 __aligned_u64 db_page_addr; 46 __u32 db_page_size; 47 __u32 phase_change; 48 49 __aligned_u64 rsvd1; 50 __aligned_u64 rsvd2; 51 }; 52 #define MAX_QP_PAGES 8 53 #define MAX_UD_AV_PAGES 8 54 struct ocrdma_create_qp_ureq { 55 __u8 enable_dpp_cq; 56 __u8 rsvd; 57 __u16 dpp_cq_id; 58 __u32 rsvd1; 59 }; 60 struct ocrdma_create_qp_uresp { 61 __u16 qp_id; 62 __u16 sq_dbid; 63 __u16 rq_dbid; 64 __u16 resv0; 65 __u32 sq_page_size; 66 __u32 rq_page_size; 67 __u32 num_sq_pages; 68 __u32 num_rq_pages; 69 __aligned_u64 sq_page_addr[MAX_QP_PAGES]; 70 __aligned_u64 rq_page_addr[MAX_QP_PAGES]; 71 __aligned_u64 db_page_addr; 72 __u32 db_page_size; 73 __u32 dpp_credit; 74 __u32 dpp_offset; 75 __u32 num_wqe_allocated; 76 __u32 num_rqe_allocated; 77 __u32 db_sq_offset; 78 __u32 db_rq_offset; 79 __u32 db_shift; 80 __aligned_u64 rsvd[11]; 81 }; 82 struct ocrdma_create_srq_uresp { 83 __u16 rq_dbid; 84 __u16 resv0; 85 __u32 resv1; 86 __u32 rq_page_size; 87 __u32 num_rq_pages; 88 __aligned_u64 rq_page_addr[MAX_QP_PAGES]; 89 __aligned_u64 db_page_addr; 90 __u32 db_page_size; 91 __u32 num_rqe_allocated; 92 __u32 db_rq_offset; 93 __u32 db_shift; 94 __aligned_u64 rsvd2; 95 __aligned_u64 rsvd3; 96 }; 97 #endif 98