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