1*f80ad8b4SAndroid Build Coastguard Worker /* SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR Linux-OpenIB */ 2*f80ad8b4SAndroid Build Coastguard Worker /* 3*f80ad8b4SAndroid Build Coastguard Worker * Copyright (c) 2006 - 2021 Intel Corporation. All rights reserved. 4*f80ad8b4SAndroid Build Coastguard Worker * Copyright (c) 2005 Topspin Communications. All rights reserved. 5*f80ad8b4SAndroid Build Coastguard Worker * Copyright (c) 2005 Cisco Systems. All rights reserved. 6*f80ad8b4SAndroid Build Coastguard Worker * Copyright (c) 2005 Open Grid Computing, Inc. All rights reserved. 7*f80ad8b4SAndroid Build Coastguard Worker */ 8*f80ad8b4SAndroid Build Coastguard Worker 9*f80ad8b4SAndroid Build Coastguard Worker #ifndef IRDMA_ABI_H 10*f80ad8b4SAndroid Build Coastguard Worker #define IRDMA_ABI_H 11*f80ad8b4SAndroid Build Coastguard Worker 12*f80ad8b4SAndroid Build Coastguard Worker #include <linux/types.h> 13*f80ad8b4SAndroid Build Coastguard Worker 14*f80ad8b4SAndroid Build Coastguard Worker /* irdma must support legacy GEN_1 i40iw kernel 15*f80ad8b4SAndroid Build Coastguard Worker * and user-space whose last ABI ver is 5 16*f80ad8b4SAndroid Build Coastguard Worker */ 17*f80ad8b4SAndroid Build Coastguard Worker #define IRDMA_ABI_VER 5 18*f80ad8b4SAndroid Build Coastguard Worker 19*f80ad8b4SAndroid Build Coastguard Worker enum irdma_memreg_type { 20*f80ad8b4SAndroid Build Coastguard Worker IRDMA_MEMREG_TYPE_MEM = 0, 21*f80ad8b4SAndroid Build Coastguard Worker IRDMA_MEMREG_TYPE_QP = 1, 22*f80ad8b4SAndroid Build Coastguard Worker IRDMA_MEMREG_TYPE_CQ = 2, 23*f80ad8b4SAndroid Build Coastguard Worker }; 24*f80ad8b4SAndroid Build Coastguard Worker 25*f80ad8b4SAndroid Build Coastguard Worker enum { 26*f80ad8b4SAndroid Build Coastguard Worker IRDMA_ALLOC_UCTX_USE_RAW_ATTR = 1 << 0, 27*f80ad8b4SAndroid Build Coastguard Worker IRDMA_ALLOC_UCTX_MIN_HW_WQ_SIZE = 1 << 1, 28*f80ad8b4SAndroid Build Coastguard Worker }; 29*f80ad8b4SAndroid Build Coastguard Worker 30*f80ad8b4SAndroid Build Coastguard Worker struct irdma_alloc_ucontext_req { 31*f80ad8b4SAndroid Build Coastguard Worker __u32 rsvd32; 32*f80ad8b4SAndroid Build Coastguard Worker __u8 userspace_ver; 33*f80ad8b4SAndroid Build Coastguard Worker __u8 rsvd8[3]; 34*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 comp_mask; 35*f80ad8b4SAndroid Build Coastguard Worker }; 36*f80ad8b4SAndroid Build Coastguard Worker 37*f80ad8b4SAndroid Build Coastguard Worker struct irdma_alloc_ucontext_resp { 38*f80ad8b4SAndroid Build Coastguard Worker __u32 max_pds; 39*f80ad8b4SAndroid Build Coastguard Worker __u32 max_qps; 40*f80ad8b4SAndroid Build Coastguard Worker __u32 wq_size; /* size of the WQs (SQ+RQ) in the mmaped area */ 41*f80ad8b4SAndroid Build Coastguard Worker __u8 kernel_ver; 42*f80ad8b4SAndroid Build Coastguard Worker __u8 rsvd[3]; 43*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 feature_flags; 44*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 db_mmap_key; 45*f80ad8b4SAndroid Build Coastguard Worker __u32 max_hw_wq_frags; 46*f80ad8b4SAndroid Build Coastguard Worker __u32 max_hw_read_sges; 47*f80ad8b4SAndroid Build Coastguard Worker __u32 max_hw_inline; 48*f80ad8b4SAndroid Build Coastguard Worker __u32 max_hw_rq_quanta; 49*f80ad8b4SAndroid Build Coastguard Worker __u32 max_hw_wq_quanta; 50*f80ad8b4SAndroid Build Coastguard Worker __u32 min_hw_cq_size; 51*f80ad8b4SAndroid Build Coastguard Worker __u32 max_hw_cq_size; 52*f80ad8b4SAndroid Build Coastguard Worker __u16 max_hw_sq_chunk; 53*f80ad8b4SAndroid Build Coastguard Worker __u8 hw_rev; 54*f80ad8b4SAndroid Build Coastguard Worker __u8 rsvd2; 55*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 comp_mask; 56*f80ad8b4SAndroid Build Coastguard Worker __u16 min_hw_wq_size; 57*f80ad8b4SAndroid Build Coastguard Worker __u8 rsvd3[6]; 58*f80ad8b4SAndroid Build Coastguard Worker }; 59*f80ad8b4SAndroid Build Coastguard Worker 60*f80ad8b4SAndroid Build Coastguard Worker struct irdma_alloc_pd_resp { 61*f80ad8b4SAndroid Build Coastguard Worker __u32 pd_id; 62*f80ad8b4SAndroid Build Coastguard Worker __u8 rsvd[4]; 63*f80ad8b4SAndroid Build Coastguard Worker }; 64*f80ad8b4SAndroid Build Coastguard Worker 65*f80ad8b4SAndroid Build Coastguard Worker struct irdma_resize_cq_req { 66*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 user_cq_buffer; 67*f80ad8b4SAndroid Build Coastguard Worker }; 68*f80ad8b4SAndroid Build Coastguard Worker 69*f80ad8b4SAndroid Build Coastguard Worker struct irdma_create_cq_req { 70*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 user_cq_buf; 71*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 user_shadow_area; 72*f80ad8b4SAndroid Build Coastguard Worker }; 73*f80ad8b4SAndroid Build Coastguard Worker 74*f80ad8b4SAndroid Build Coastguard Worker struct irdma_create_qp_req { 75*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 user_wqe_bufs; 76*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 user_compl_ctx; 77*f80ad8b4SAndroid Build Coastguard Worker }; 78*f80ad8b4SAndroid Build Coastguard Worker 79*f80ad8b4SAndroid Build Coastguard Worker struct irdma_mem_reg_req { 80*f80ad8b4SAndroid Build Coastguard Worker __u16 reg_type; /* enum irdma_memreg_type */ 81*f80ad8b4SAndroid Build Coastguard Worker __u16 cq_pages; 82*f80ad8b4SAndroid Build Coastguard Worker __u16 rq_pages; 83*f80ad8b4SAndroid Build Coastguard Worker __u16 sq_pages; 84*f80ad8b4SAndroid Build Coastguard Worker }; 85*f80ad8b4SAndroid Build Coastguard Worker 86*f80ad8b4SAndroid Build Coastguard Worker struct irdma_modify_qp_req { 87*f80ad8b4SAndroid Build Coastguard Worker __u8 sq_flush; 88*f80ad8b4SAndroid Build Coastguard Worker __u8 rq_flush; 89*f80ad8b4SAndroid Build Coastguard Worker __u8 rsvd[6]; 90*f80ad8b4SAndroid Build Coastguard Worker }; 91*f80ad8b4SAndroid Build Coastguard Worker 92*f80ad8b4SAndroid Build Coastguard Worker struct irdma_create_cq_resp { 93*f80ad8b4SAndroid Build Coastguard Worker __u32 cq_id; 94*f80ad8b4SAndroid Build Coastguard Worker __u32 cq_size; 95*f80ad8b4SAndroid Build Coastguard Worker }; 96*f80ad8b4SAndroid Build Coastguard Worker 97*f80ad8b4SAndroid Build Coastguard Worker struct irdma_create_qp_resp { 98*f80ad8b4SAndroid Build Coastguard Worker __u32 qp_id; 99*f80ad8b4SAndroid Build Coastguard Worker __u32 actual_sq_size; 100*f80ad8b4SAndroid Build Coastguard Worker __u32 actual_rq_size; 101*f80ad8b4SAndroid Build Coastguard Worker __u32 irdma_drv_opt; 102*f80ad8b4SAndroid Build Coastguard Worker __u16 push_idx; 103*f80ad8b4SAndroid Build Coastguard Worker __u8 lsmm; 104*f80ad8b4SAndroid Build Coastguard Worker __u8 rsvd; 105*f80ad8b4SAndroid Build Coastguard Worker __u32 qp_caps; 106*f80ad8b4SAndroid Build Coastguard Worker }; 107*f80ad8b4SAndroid Build Coastguard Worker 108*f80ad8b4SAndroid Build Coastguard Worker struct irdma_modify_qp_resp { 109*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 push_wqe_mmap_key; 110*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 push_db_mmap_key; 111*f80ad8b4SAndroid Build Coastguard Worker __u16 push_offset; 112*f80ad8b4SAndroid Build Coastguard Worker __u8 push_valid; 113*f80ad8b4SAndroid Build Coastguard Worker __u8 rsvd[5]; 114*f80ad8b4SAndroid Build Coastguard Worker }; 115*f80ad8b4SAndroid Build Coastguard Worker 116*f80ad8b4SAndroid Build Coastguard Worker struct irdma_create_ah_resp { 117*f80ad8b4SAndroid Build Coastguard Worker __u32 ah_id; 118*f80ad8b4SAndroid Build Coastguard Worker __u8 rsvd[4]; 119*f80ad8b4SAndroid Build Coastguard Worker }; 120*f80ad8b4SAndroid Build Coastguard Worker #endif /* IRDMA_ABI_H */ 121