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 __VMW_PVRDMA_ABI_H__ 8*8d67ca89SAndroid Build Coastguard Worker #define __VMW_PVRDMA_ABI_H__ 9*8d67ca89SAndroid Build Coastguard Worker #include <linux/types.h> 10*8d67ca89SAndroid Build Coastguard Worker #define PVRDMA_UVERBS_ABI_VERSION 3 11*8d67ca89SAndroid Build Coastguard Worker #define PVRDMA_UAR_HANDLE_MASK 0x00FFFFFF 12*8d67ca89SAndroid Build Coastguard Worker #define PVRDMA_UAR_QP_OFFSET 0 13*8d67ca89SAndroid Build Coastguard Worker #define PVRDMA_UAR_QP_SEND (1 << 30) 14*8d67ca89SAndroid Build Coastguard Worker #define PVRDMA_UAR_QP_RECV (1 << 31) 15*8d67ca89SAndroid Build Coastguard Worker #define PVRDMA_UAR_CQ_OFFSET 4 16*8d67ca89SAndroid Build Coastguard Worker #define PVRDMA_UAR_CQ_ARM_SOL (1 << 29) 17*8d67ca89SAndroid Build Coastguard Worker #define PVRDMA_UAR_CQ_ARM (1 << 30) 18*8d67ca89SAndroid Build Coastguard Worker #define PVRDMA_UAR_CQ_POLL (1 << 31) 19*8d67ca89SAndroid Build Coastguard Worker #define PVRDMA_UAR_SRQ_OFFSET 8 20*8d67ca89SAndroid Build Coastguard Worker #define PVRDMA_UAR_SRQ_RECV (1 << 30) 21*8d67ca89SAndroid Build Coastguard Worker enum pvrdma_wr_opcode { 22*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WR_RDMA_WRITE, 23*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WR_RDMA_WRITE_WITH_IMM, 24*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WR_SEND, 25*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WR_SEND_WITH_IMM, 26*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WR_RDMA_READ, 27*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WR_ATOMIC_CMP_AND_SWP, 28*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WR_ATOMIC_FETCH_AND_ADD, 29*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WR_LSO, 30*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WR_SEND_WITH_INV, 31*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WR_RDMA_READ_WITH_INV, 32*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WR_LOCAL_INV, 33*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WR_FAST_REG_MR, 34*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WR_MASKED_ATOMIC_CMP_AND_SWP, 35*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WR_MASKED_ATOMIC_FETCH_AND_ADD, 36*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WR_BIND_MW, 37*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WR_REG_SIG_MR, 38*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WR_ERROR, 39*8d67ca89SAndroid Build Coastguard Worker }; 40*8d67ca89SAndroid Build Coastguard Worker enum pvrdma_wc_status { 41*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_SUCCESS, 42*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_LOC_LEN_ERR, 43*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_LOC_QP_OP_ERR, 44*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_LOC_EEC_OP_ERR, 45*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_LOC_PROT_ERR, 46*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_WR_FLUSH_ERR, 47*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_MW_BIND_ERR, 48*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_BAD_RESP_ERR, 49*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_LOC_ACCESS_ERR, 50*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_REM_INV_REQ_ERR, 51*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_REM_ACCESS_ERR, 52*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_REM_OP_ERR, 53*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_RETRY_EXC_ERR, 54*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_RNR_RETRY_EXC_ERR, 55*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_LOC_RDD_VIOL_ERR, 56*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_REM_INV_RD_REQ_ERR, 57*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_REM_ABORT_ERR, 58*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_INV_EECN_ERR, 59*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_INV_EEC_STATE_ERR, 60*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_FATAL_ERR, 61*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_RESP_TIMEOUT_ERR, 62*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_GENERAL_ERR, 63*8d67ca89SAndroid Build Coastguard Worker }; 64*8d67ca89SAndroid Build Coastguard Worker enum pvrdma_wc_opcode { 65*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_SEND, 66*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_RDMA_WRITE, 67*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_RDMA_READ, 68*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_COMP_SWAP, 69*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_FETCH_ADD, 70*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_BIND_MW, 71*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_LSO, 72*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_LOCAL_INV, 73*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_FAST_REG_MR, 74*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_MASKED_COMP_SWAP, 75*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_MASKED_FETCH_ADD, 76*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_RECV = 1 << 7, 77*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_RECV_RDMA_WITH_IMM, 78*8d67ca89SAndroid Build Coastguard Worker }; 79*8d67ca89SAndroid Build Coastguard Worker enum pvrdma_wc_flags { 80*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_GRH = 1 << 0, 81*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_WITH_IMM = 1 << 1, 82*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_WITH_INVALIDATE = 1 << 2, 83*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_IP_CSUM_OK = 1 << 3, 84*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_WITH_SMAC = 1 << 4, 85*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_WITH_VLAN = 1 << 5, 86*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_WITH_NETWORK_HDR_TYPE = 1 << 6, 87*8d67ca89SAndroid Build Coastguard Worker PVRDMA_WC_FLAGS_MAX = PVRDMA_WC_WITH_NETWORK_HDR_TYPE, 88*8d67ca89SAndroid Build Coastguard Worker }; 89*8d67ca89SAndroid Build Coastguard Worker enum pvrdma_network_type { 90*8d67ca89SAndroid Build Coastguard Worker PVRDMA_NETWORK_IB, 91*8d67ca89SAndroid Build Coastguard Worker PVRDMA_NETWORK_ROCE_V1 = PVRDMA_NETWORK_IB, 92*8d67ca89SAndroid Build Coastguard Worker PVRDMA_NETWORK_IPV4, 93*8d67ca89SAndroid Build Coastguard Worker PVRDMA_NETWORK_IPV6 94*8d67ca89SAndroid Build Coastguard Worker }; 95*8d67ca89SAndroid Build Coastguard Worker struct pvrdma_alloc_ucontext_resp { 96*8d67ca89SAndroid Build Coastguard Worker __u32 qp_tab_size; 97*8d67ca89SAndroid Build Coastguard Worker __u32 reserved; 98*8d67ca89SAndroid Build Coastguard Worker }; 99*8d67ca89SAndroid Build Coastguard Worker struct pvrdma_alloc_pd_resp { 100*8d67ca89SAndroid Build Coastguard Worker __u32 pdn; 101*8d67ca89SAndroid Build Coastguard Worker __u32 reserved; 102*8d67ca89SAndroid Build Coastguard Worker }; 103*8d67ca89SAndroid Build Coastguard Worker struct pvrdma_create_cq { 104*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 buf_addr; 105*8d67ca89SAndroid Build Coastguard Worker __u32 buf_size; 106*8d67ca89SAndroid Build Coastguard Worker __u32 reserved; 107*8d67ca89SAndroid Build Coastguard Worker }; 108*8d67ca89SAndroid Build Coastguard Worker struct pvrdma_create_cq_resp { 109*8d67ca89SAndroid Build Coastguard Worker __u32 cqn; 110*8d67ca89SAndroid Build Coastguard Worker __u32 reserved; 111*8d67ca89SAndroid Build Coastguard Worker }; 112*8d67ca89SAndroid Build Coastguard Worker struct pvrdma_resize_cq { 113*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 buf_addr; 114*8d67ca89SAndroid Build Coastguard Worker __u32 buf_size; 115*8d67ca89SAndroid Build Coastguard Worker __u32 reserved; 116*8d67ca89SAndroid Build Coastguard Worker }; 117*8d67ca89SAndroid Build Coastguard Worker struct pvrdma_create_srq { 118*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 buf_addr; 119*8d67ca89SAndroid Build Coastguard Worker __u32 buf_size; 120*8d67ca89SAndroid Build Coastguard Worker __u32 reserved; 121*8d67ca89SAndroid Build Coastguard Worker }; 122*8d67ca89SAndroid Build Coastguard Worker struct pvrdma_create_srq_resp { 123*8d67ca89SAndroid Build Coastguard Worker __u32 srqn; 124*8d67ca89SAndroid Build Coastguard Worker __u32 reserved; 125*8d67ca89SAndroid Build Coastguard Worker }; 126*8d67ca89SAndroid Build Coastguard Worker struct pvrdma_create_qp { 127*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 rbuf_addr; 128*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 sbuf_addr; 129*8d67ca89SAndroid Build Coastguard Worker __u32 rbuf_size; 130*8d67ca89SAndroid Build Coastguard Worker __u32 sbuf_size; 131*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 qp_addr; 132*8d67ca89SAndroid Build Coastguard Worker }; 133*8d67ca89SAndroid Build Coastguard Worker struct pvrdma_create_qp_resp { 134*8d67ca89SAndroid Build Coastguard Worker __u32 qpn; 135*8d67ca89SAndroid Build Coastguard Worker __u32 qp_handle; 136*8d67ca89SAndroid Build Coastguard Worker }; 137*8d67ca89SAndroid Build Coastguard Worker struct pvrdma_ex_cmp_swap { 138*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 swap_val; 139*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 compare_val; 140*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 swap_mask; 141*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 compare_mask; 142*8d67ca89SAndroid Build Coastguard Worker }; 143*8d67ca89SAndroid Build Coastguard Worker struct pvrdma_ex_fetch_add { 144*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 add_val; 145*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 field_boundary; 146*8d67ca89SAndroid Build Coastguard Worker }; 147*8d67ca89SAndroid Build Coastguard Worker struct pvrdma_av { 148*8d67ca89SAndroid Build Coastguard Worker __u32 port_pd; 149*8d67ca89SAndroid Build Coastguard Worker __u32 sl_tclass_flowlabel; 150*8d67ca89SAndroid Build Coastguard Worker __u8 dgid[16]; 151*8d67ca89SAndroid Build Coastguard Worker __u8 src_path_bits; 152*8d67ca89SAndroid Build Coastguard Worker __u8 gid_index; 153*8d67ca89SAndroid Build Coastguard Worker __u8 stat_rate; 154*8d67ca89SAndroid Build Coastguard Worker __u8 hop_limit; 155*8d67ca89SAndroid Build Coastguard Worker __u8 dmac[6]; 156*8d67ca89SAndroid Build Coastguard Worker __u8 reserved[6]; 157*8d67ca89SAndroid Build Coastguard Worker }; 158*8d67ca89SAndroid Build Coastguard Worker struct pvrdma_sge { 159*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 addr; 160*8d67ca89SAndroid Build Coastguard Worker __u32 length; 161*8d67ca89SAndroid Build Coastguard Worker __u32 lkey; 162*8d67ca89SAndroid Build Coastguard Worker }; 163*8d67ca89SAndroid Build Coastguard Worker struct pvrdma_rq_wqe_hdr { 164*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 wr_id; 165*8d67ca89SAndroid Build Coastguard Worker __u32 num_sge; 166*8d67ca89SAndroid Build Coastguard Worker __u32 total_len; 167*8d67ca89SAndroid Build Coastguard Worker }; 168*8d67ca89SAndroid Build Coastguard Worker struct pvrdma_sq_wqe_hdr { 169*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 wr_id; 170*8d67ca89SAndroid Build Coastguard Worker __u32 num_sge; 171*8d67ca89SAndroid Build Coastguard Worker __u32 total_len; 172*8d67ca89SAndroid Build Coastguard Worker __u32 opcode; 173*8d67ca89SAndroid Build Coastguard Worker __u32 send_flags; 174*8d67ca89SAndroid Build Coastguard Worker union { 175*8d67ca89SAndroid Build Coastguard Worker __be32 imm_data; 176*8d67ca89SAndroid Build Coastguard Worker __u32 invalidate_rkey; 177*8d67ca89SAndroid Build Coastguard Worker } ex; 178*8d67ca89SAndroid Build Coastguard Worker __u32 reserved; 179*8d67ca89SAndroid Build Coastguard Worker union { 180*8d67ca89SAndroid Build Coastguard Worker struct { 181*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 remote_addr; 182*8d67ca89SAndroid Build Coastguard Worker __u32 rkey; 183*8d67ca89SAndroid Build Coastguard Worker __u8 reserved[4]; 184*8d67ca89SAndroid Build Coastguard Worker } rdma; 185*8d67ca89SAndroid Build Coastguard Worker struct { 186*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 remote_addr; 187*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 compare_add; 188*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 swap; 189*8d67ca89SAndroid Build Coastguard Worker __u32 rkey; 190*8d67ca89SAndroid Build Coastguard Worker __u32 reserved; 191*8d67ca89SAndroid Build Coastguard Worker } atomic; 192*8d67ca89SAndroid Build Coastguard Worker struct { 193*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 remote_addr; 194*8d67ca89SAndroid Build Coastguard Worker __u32 log_arg_sz; 195*8d67ca89SAndroid Build Coastguard Worker __u32 rkey; 196*8d67ca89SAndroid Build Coastguard Worker union { 197*8d67ca89SAndroid Build Coastguard Worker struct pvrdma_ex_cmp_swap cmp_swap; 198*8d67ca89SAndroid Build Coastguard Worker struct pvrdma_ex_fetch_add fetch_add; 199*8d67ca89SAndroid Build Coastguard Worker } wr_data; 200*8d67ca89SAndroid Build Coastguard Worker } masked_atomics; 201*8d67ca89SAndroid Build Coastguard Worker struct { 202*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 iova_start; 203*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 pl_pdir_dma; 204*8d67ca89SAndroid Build Coastguard Worker __u32 page_shift; 205*8d67ca89SAndroid Build Coastguard Worker __u32 page_list_len; 206*8d67ca89SAndroid Build Coastguard Worker __u32 length; 207*8d67ca89SAndroid Build Coastguard Worker __u32 access_flags; 208*8d67ca89SAndroid Build Coastguard Worker __u32 rkey; 209*8d67ca89SAndroid Build Coastguard Worker __u32 reserved; 210*8d67ca89SAndroid Build Coastguard Worker } fast_reg; 211*8d67ca89SAndroid Build Coastguard Worker struct { 212*8d67ca89SAndroid Build Coastguard Worker __u32 remote_qpn; 213*8d67ca89SAndroid Build Coastguard Worker __u32 remote_qkey; 214*8d67ca89SAndroid Build Coastguard Worker struct pvrdma_av av; 215*8d67ca89SAndroid Build Coastguard Worker } ud; 216*8d67ca89SAndroid Build Coastguard Worker } wr; 217*8d67ca89SAndroid Build Coastguard Worker }; 218*8d67ca89SAndroid Build Coastguard Worker struct pvrdma_cqe { 219*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 wr_id; 220*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 qp; 221*8d67ca89SAndroid Build Coastguard Worker __u32 opcode; 222*8d67ca89SAndroid Build Coastguard Worker __u32 status; 223*8d67ca89SAndroid Build Coastguard Worker __u32 byte_len; 224*8d67ca89SAndroid Build Coastguard Worker __be32 imm_data; 225*8d67ca89SAndroid Build Coastguard Worker __u32 src_qp; 226*8d67ca89SAndroid Build Coastguard Worker __u32 wc_flags; 227*8d67ca89SAndroid Build Coastguard Worker __u32 vendor_err; 228*8d67ca89SAndroid Build Coastguard Worker __u16 pkey_index; 229*8d67ca89SAndroid Build Coastguard Worker __u16 slid; 230*8d67ca89SAndroid Build Coastguard Worker __u8 sl; 231*8d67ca89SAndroid Build Coastguard Worker __u8 dlid_path_bits; 232*8d67ca89SAndroid Build Coastguard Worker __u8 port_num; 233*8d67ca89SAndroid Build Coastguard Worker __u8 smac[6]; 234*8d67ca89SAndroid Build Coastguard Worker __u8 network_hdr_type; 235*8d67ca89SAndroid Build Coastguard Worker __u8 reserved2[6]; 236*8d67ca89SAndroid Build Coastguard Worker }; 237*8d67ca89SAndroid Build Coastguard Worker #endif 238