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 IRDMA_ABI_H 20 #define IRDMA_ABI_H 21 #include <linux/types.h> 22 #define IRDMA_ABI_VER 5 23 enum irdma_memreg_type { 24 IRDMA_MEMREG_TYPE_MEM = 0, 25 IRDMA_MEMREG_TYPE_QP = 1, 26 IRDMA_MEMREG_TYPE_CQ = 2, 27 }; 28 struct irdma_alloc_ucontext_req { 29 __u32 rsvd32; 30 __u8 userspace_ver; 31 __u8 rsvd8[3]; 32 }; 33 struct irdma_alloc_ucontext_resp { 34 __u32 max_pds; 35 __u32 max_qps; 36 __u32 wq_size; 37 __u8 kernel_ver; 38 __u8 rsvd[3]; 39 __aligned_u64 feature_flags; 40 __aligned_u64 db_mmap_key; 41 __u32 max_hw_wq_frags; 42 __u32 max_hw_read_sges; 43 __u32 max_hw_inline; 44 __u32 max_hw_rq_quanta; 45 __u32 max_hw_wq_quanta; 46 __u32 min_hw_cq_size; 47 __u32 max_hw_cq_size; 48 __u16 max_hw_sq_chunk; 49 __u8 hw_rev; 50 __u8 rsvd2; 51 }; 52 struct irdma_alloc_pd_resp { 53 __u32 pd_id; 54 __u8 rsvd[4]; 55 }; 56 struct irdma_resize_cq_req { 57 __aligned_u64 user_cq_buffer; 58 }; 59 struct irdma_create_cq_req { 60 __aligned_u64 user_cq_buf; 61 __aligned_u64 user_shadow_area; 62 }; 63 struct irdma_create_qp_req { 64 __aligned_u64 user_wqe_bufs; 65 __aligned_u64 user_compl_ctx; 66 }; 67 struct irdma_mem_reg_req { 68 __u16 reg_type; 69 __u16 cq_pages; 70 __u16 rq_pages; 71 __u16 sq_pages; 72 }; 73 struct irdma_modify_qp_req { 74 __u8 sq_flush; 75 __u8 rq_flush; 76 __u8 rsvd[6]; 77 }; 78 struct irdma_create_cq_resp { 79 __u32 cq_id; 80 __u32 cq_size; 81 }; 82 struct irdma_create_qp_resp { 83 __u32 qp_id; 84 __u32 actual_sq_size; 85 __u32 actual_rq_size; 86 __u32 irdma_drv_opt; 87 __u16 push_idx; 88 __u8 lsmm; 89 __u8 rsvd; 90 __u32 qp_caps; 91 }; 92 struct irdma_modify_qp_resp { 93 __aligned_u64 push_wqe_mmap_key; 94 __aligned_u64 push_db_mmap_key; 95 __u16 push_offset; 96 __u8 push_valid; 97 __u8 rsvd[5]; 98 }; 99 struct irdma_create_ah_resp { 100 __u32 ah_id; 101 __u8 rsvd[4]; 102 }; 103 #endif 104