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