1*8d67ca89SAndroid Build Coastguard Worker /* 2*8d67ca89SAndroid Build Coastguard Worker * This file is auto-generated. Modifications will be lost. 3*8d67ca89SAndroid Build Coastguard Worker * 4*8d67ca89SAndroid Build Coastguard Worker * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ 5*8d67ca89SAndroid Build Coastguard Worker * for more information. 6*8d67ca89SAndroid Build Coastguard Worker */ 7*8d67ca89SAndroid Build Coastguard Worker #ifndef EFA_ABI_USER_H 8*8d67ca89SAndroid Build Coastguard Worker #define EFA_ABI_USER_H 9*8d67ca89SAndroid Build Coastguard Worker #include <linux/types.h> 10*8d67ca89SAndroid Build Coastguard Worker #include <rdma/ib_user_ioctl_cmds.h> 11*8d67ca89SAndroid Build Coastguard Worker #define EFA_UVERBS_ABI_VERSION 1 12*8d67ca89SAndroid Build Coastguard Worker enum { 13*8d67ca89SAndroid Build Coastguard Worker EFA_ALLOC_UCONTEXT_CMD_COMP_TX_BATCH = 1 << 0, 14*8d67ca89SAndroid Build Coastguard Worker EFA_ALLOC_UCONTEXT_CMD_COMP_MIN_SQ_WR = 1 << 1, 15*8d67ca89SAndroid Build Coastguard Worker }; 16*8d67ca89SAndroid Build Coastguard Worker struct efa_ibv_alloc_ucontext_cmd { 17*8d67ca89SAndroid Build Coastguard Worker __u32 comp_mask; 18*8d67ca89SAndroid Build Coastguard Worker __u8 reserved_20[4]; 19*8d67ca89SAndroid Build Coastguard Worker }; 20*8d67ca89SAndroid Build Coastguard Worker enum efa_ibv_user_cmds_supp_udata { 21*8d67ca89SAndroid Build Coastguard Worker EFA_USER_CMDS_SUPP_UDATA_QUERY_DEVICE = 1 << 0, 22*8d67ca89SAndroid Build Coastguard Worker EFA_USER_CMDS_SUPP_UDATA_CREATE_AH = 1 << 1, 23*8d67ca89SAndroid Build Coastguard Worker }; 24*8d67ca89SAndroid Build Coastguard Worker struct efa_ibv_alloc_ucontext_resp { 25*8d67ca89SAndroid Build Coastguard Worker __u32 comp_mask; 26*8d67ca89SAndroid Build Coastguard Worker __u32 cmds_supp_udata_mask; 27*8d67ca89SAndroid Build Coastguard Worker __u16 sub_cqs_per_cq; 28*8d67ca89SAndroid Build Coastguard Worker __u16 inline_buf_size; 29*8d67ca89SAndroid Build Coastguard Worker __u32 max_llq_size; 30*8d67ca89SAndroid Build Coastguard Worker __u16 max_tx_batch; 31*8d67ca89SAndroid Build Coastguard Worker __u16 min_sq_wr; 32*8d67ca89SAndroid Build Coastguard Worker __u8 reserved_a0[4]; 33*8d67ca89SAndroid Build Coastguard Worker }; 34*8d67ca89SAndroid Build Coastguard Worker struct efa_ibv_alloc_pd_resp { 35*8d67ca89SAndroid Build Coastguard Worker __u32 comp_mask; 36*8d67ca89SAndroid Build Coastguard Worker __u16 pdn; 37*8d67ca89SAndroid Build Coastguard Worker __u8 reserved_30[2]; 38*8d67ca89SAndroid Build Coastguard Worker }; 39*8d67ca89SAndroid Build Coastguard Worker enum { 40*8d67ca89SAndroid Build Coastguard Worker EFA_CREATE_CQ_WITH_COMPLETION_CHANNEL = 1 << 0, 41*8d67ca89SAndroid Build Coastguard Worker EFA_CREATE_CQ_WITH_SGID = 1 << 1, 42*8d67ca89SAndroid Build Coastguard Worker }; 43*8d67ca89SAndroid Build Coastguard Worker struct efa_ibv_create_cq { 44*8d67ca89SAndroid Build Coastguard Worker __u32 comp_mask; 45*8d67ca89SAndroid Build Coastguard Worker __u32 cq_entry_size; 46*8d67ca89SAndroid Build Coastguard Worker __u16 num_sub_cqs; 47*8d67ca89SAndroid Build Coastguard Worker __u8 flags; 48*8d67ca89SAndroid Build Coastguard Worker __u8 reserved_58[5]; 49*8d67ca89SAndroid Build Coastguard Worker }; 50*8d67ca89SAndroid Build Coastguard Worker enum { 51*8d67ca89SAndroid Build Coastguard Worker EFA_CREATE_CQ_RESP_DB_OFF = 1 << 0, 52*8d67ca89SAndroid Build Coastguard Worker }; 53*8d67ca89SAndroid Build Coastguard Worker struct efa_ibv_create_cq_resp { 54*8d67ca89SAndroid Build Coastguard Worker __u32 comp_mask; 55*8d67ca89SAndroid Build Coastguard Worker __u8 reserved_20[4]; 56*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 q_mmap_key; 57*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 q_mmap_size; 58*8d67ca89SAndroid Build Coastguard Worker __u16 cq_idx; 59*8d67ca89SAndroid Build Coastguard Worker __u8 reserved_d0[2]; 60*8d67ca89SAndroid Build Coastguard Worker __u32 db_off; 61*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 db_mmap_key; 62*8d67ca89SAndroid Build Coastguard Worker }; 63*8d67ca89SAndroid Build Coastguard Worker enum { 64*8d67ca89SAndroid Build Coastguard Worker EFA_QP_DRIVER_TYPE_SRD = 0, 65*8d67ca89SAndroid Build Coastguard Worker }; 66*8d67ca89SAndroid Build Coastguard Worker enum { 67*8d67ca89SAndroid Build Coastguard Worker EFA_CREATE_QP_WITH_UNSOLICITED_WRITE_RECV = 1 << 0, 68*8d67ca89SAndroid Build Coastguard Worker }; 69*8d67ca89SAndroid Build Coastguard Worker struct efa_ibv_create_qp { 70*8d67ca89SAndroid Build Coastguard Worker __u32 comp_mask; 71*8d67ca89SAndroid Build Coastguard Worker __u32 rq_ring_size; 72*8d67ca89SAndroid Build Coastguard Worker __u32 sq_ring_size; 73*8d67ca89SAndroid Build Coastguard Worker __u32 driver_qp_type; 74*8d67ca89SAndroid Build Coastguard Worker __u16 flags; 75*8d67ca89SAndroid Build Coastguard Worker __u8 reserved_90[6]; 76*8d67ca89SAndroid Build Coastguard Worker }; 77*8d67ca89SAndroid Build Coastguard Worker struct efa_ibv_create_qp_resp { 78*8d67ca89SAndroid Build Coastguard Worker __u32 comp_mask; 79*8d67ca89SAndroid Build Coastguard Worker __u32 rq_db_offset; 80*8d67ca89SAndroid Build Coastguard Worker __u32 sq_db_offset; 81*8d67ca89SAndroid Build Coastguard Worker __u32 llq_desc_offset; 82*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 rq_mmap_key; 83*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 rq_mmap_size; 84*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 rq_db_mmap_key; 85*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 sq_db_mmap_key; 86*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 llq_desc_mmap_key; 87*8d67ca89SAndroid Build Coastguard Worker __u16 send_sub_cq_idx; 88*8d67ca89SAndroid Build Coastguard Worker __u16 recv_sub_cq_idx; 89*8d67ca89SAndroid Build Coastguard Worker __u8 reserved_1e0[4]; 90*8d67ca89SAndroid Build Coastguard Worker }; 91*8d67ca89SAndroid Build Coastguard Worker struct efa_ibv_create_ah_resp { 92*8d67ca89SAndroid Build Coastguard Worker __u32 comp_mask; 93*8d67ca89SAndroid Build Coastguard Worker __u16 efa_address_handle; 94*8d67ca89SAndroid Build Coastguard Worker __u8 reserved_30[2]; 95*8d67ca89SAndroid Build Coastguard Worker }; 96*8d67ca89SAndroid Build Coastguard Worker enum { 97*8d67ca89SAndroid Build Coastguard Worker EFA_QUERY_DEVICE_CAPS_RDMA_READ = 1 << 0, 98*8d67ca89SAndroid Build Coastguard Worker EFA_QUERY_DEVICE_CAPS_RNR_RETRY = 1 << 1, 99*8d67ca89SAndroid Build Coastguard Worker EFA_QUERY_DEVICE_CAPS_CQ_NOTIFICATIONS = 1 << 2, 100*8d67ca89SAndroid Build Coastguard Worker EFA_QUERY_DEVICE_CAPS_CQ_WITH_SGID = 1 << 3, 101*8d67ca89SAndroid Build Coastguard Worker EFA_QUERY_DEVICE_CAPS_DATA_POLLING_128 = 1 << 4, 102*8d67ca89SAndroid Build Coastguard Worker EFA_QUERY_DEVICE_CAPS_RDMA_WRITE = 1 << 5, 103*8d67ca89SAndroid Build Coastguard Worker EFA_QUERY_DEVICE_CAPS_UNSOLICITED_WRITE_RECV = 1 << 6, 104*8d67ca89SAndroid Build Coastguard Worker }; 105*8d67ca89SAndroid Build Coastguard Worker struct efa_ibv_ex_query_device_resp { 106*8d67ca89SAndroid Build Coastguard Worker __u32 comp_mask; 107*8d67ca89SAndroid Build Coastguard Worker __u32 max_sq_wr; 108*8d67ca89SAndroid Build Coastguard Worker __u32 max_rq_wr; 109*8d67ca89SAndroid Build Coastguard Worker __u16 max_sq_sge; 110*8d67ca89SAndroid Build Coastguard Worker __u16 max_rq_sge; 111*8d67ca89SAndroid Build Coastguard Worker __u32 max_rdma_size; 112*8d67ca89SAndroid Build Coastguard Worker __u32 device_caps; 113*8d67ca89SAndroid Build Coastguard Worker }; 114*8d67ca89SAndroid Build Coastguard Worker enum { 115*8d67ca89SAndroid Build Coastguard Worker EFA_QUERY_MR_VALIDITY_RECV_IC_ID = 1 << 0, 116*8d67ca89SAndroid Build Coastguard Worker EFA_QUERY_MR_VALIDITY_RDMA_READ_IC_ID = 1 << 1, 117*8d67ca89SAndroid Build Coastguard Worker EFA_QUERY_MR_VALIDITY_RDMA_RECV_IC_ID = 1 << 2, 118*8d67ca89SAndroid Build Coastguard Worker }; 119*8d67ca89SAndroid Build Coastguard Worker enum efa_query_mr_attrs { 120*8d67ca89SAndroid Build Coastguard Worker EFA_IB_ATTR_QUERY_MR_HANDLE = (1U << UVERBS_ID_NS_SHIFT), 121*8d67ca89SAndroid Build Coastguard Worker EFA_IB_ATTR_QUERY_MR_RESP_IC_ID_VALIDITY, 122*8d67ca89SAndroid Build Coastguard Worker EFA_IB_ATTR_QUERY_MR_RESP_RECV_IC_ID, 123*8d67ca89SAndroid Build Coastguard Worker EFA_IB_ATTR_QUERY_MR_RESP_RDMA_READ_IC_ID, 124*8d67ca89SAndroid Build Coastguard Worker EFA_IB_ATTR_QUERY_MR_RESP_RDMA_RECV_IC_ID, 125*8d67ca89SAndroid Build Coastguard Worker }; 126*8d67ca89SAndroid Build Coastguard Worker enum efa_mr_methods { 127*8d67ca89SAndroid Build Coastguard Worker EFA_IB_METHOD_MR_QUERY = (1U << UVERBS_ID_NS_SHIFT), 128*8d67ca89SAndroid Build Coastguard Worker }; 129*8d67ca89SAndroid Build Coastguard Worker #endif 130