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) 2016 Hisilicon Limited. 4*f80ad8b4SAndroid Build Coastguard Worker * 5*f80ad8b4SAndroid Build Coastguard Worker * This software is available to you under a choice of one of two 6*f80ad8b4SAndroid Build Coastguard Worker * licenses. You may choose to be licensed under the terms of the GNU 7*f80ad8b4SAndroid Build Coastguard Worker * General Public License (GPL) Version 2, available from the file 8*f80ad8b4SAndroid Build Coastguard Worker * COPYING in the main directory of this source tree, or the 9*f80ad8b4SAndroid Build Coastguard Worker * OpenIB.org BSD license below: 10*f80ad8b4SAndroid Build Coastguard Worker * 11*f80ad8b4SAndroid Build Coastguard Worker * Redistribution and use in source and binary forms, with or 12*f80ad8b4SAndroid Build Coastguard Worker * without modification, are permitted provided that the following 13*f80ad8b4SAndroid Build Coastguard Worker * conditions are met: 14*f80ad8b4SAndroid Build Coastguard Worker * 15*f80ad8b4SAndroid Build Coastguard Worker * - Redistributions of source code must retain the above 16*f80ad8b4SAndroid Build Coastguard Worker * copyright notice, this list of conditions and the following 17*f80ad8b4SAndroid Build Coastguard Worker * disclaimer. 18*f80ad8b4SAndroid Build Coastguard Worker * 19*f80ad8b4SAndroid Build Coastguard Worker * - Redistributions in binary form must reproduce the above 20*f80ad8b4SAndroid Build Coastguard Worker * copyright notice, this list of conditions and the following 21*f80ad8b4SAndroid Build Coastguard Worker * disclaimer in the documentation and/or other materials 22*f80ad8b4SAndroid Build Coastguard Worker * provided with the distribution. 23*f80ad8b4SAndroid Build Coastguard Worker * 24*f80ad8b4SAndroid Build Coastguard Worker * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 25*f80ad8b4SAndroid Build Coastguard Worker * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 26*f80ad8b4SAndroid Build Coastguard Worker * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 27*f80ad8b4SAndroid Build Coastguard Worker * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 28*f80ad8b4SAndroid Build Coastguard Worker * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 29*f80ad8b4SAndroid Build Coastguard Worker * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 30*f80ad8b4SAndroid Build Coastguard Worker * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31*f80ad8b4SAndroid Build Coastguard Worker * SOFTWARE. 32*f80ad8b4SAndroid Build Coastguard Worker */ 33*f80ad8b4SAndroid Build Coastguard Worker 34*f80ad8b4SAndroid Build Coastguard Worker #ifndef HNS_ABI_USER_H 35*f80ad8b4SAndroid Build Coastguard Worker #define HNS_ABI_USER_H 36*f80ad8b4SAndroid Build Coastguard Worker 37*f80ad8b4SAndroid Build Coastguard Worker #include <linux/types.h> 38*f80ad8b4SAndroid Build Coastguard Worker 39*f80ad8b4SAndroid Build Coastguard Worker struct hns_roce_ib_create_cq { 40*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 buf_addr; 41*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 db_addr; 42*f80ad8b4SAndroid Build Coastguard Worker __u32 cqe_size; 43*f80ad8b4SAndroid Build Coastguard Worker __u32 reserved; 44*f80ad8b4SAndroid Build Coastguard Worker }; 45*f80ad8b4SAndroid Build Coastguard Worker 46*f80ad8b4SAndroid Build Coastguard Worker enum hns_roce_cq_cap_flags { 47*f80ad8b4SAndroid Build Coastguard Worker HNS_ROCE_CQ_FLAG_RECORD_DB = 1 << 0, 48*f80ad8b4SAndroid Build Coastguard Worker }; 49*f80ad8b4SAndroid Build Coastguard Worker 50*f80ad8b4SAndroid Build Coastguard Worker struct hns_roce_ib_create_cq_resp { 51*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 cqn; /* Only 32 bits used, 64 for compat */ 52*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 cap_flags; 53*f80ad8b4SAndroid Build Coastguard Worker }; 54*f80ad8b4SAndroid Build Coastguard Worker 55*f80ad8b4SAndroid Build Coastguard Worker enum hns_roce_srq_cap_flags { 56*f80ad8b4SAndroid Build Coastguard Worker HNS_ROCE_SRQ_CAP_RECORD_DB = 1 << 0, 57*f80ad8b4SAndroid Build Coastguard Worker }; 58*f80ad8b4SAndroid Build Coastguard Worker 59*f80ad8b4SAndroid Build Coastguard Worker enum hns_roce_srq_cap_flags_resp { 60*f80ad8b4SAndroid Build Coastguard Worker HNS_ROCE_RSP_SRQ_CAP_RECORD_DB = 1 << 0, 61*f80ad8b4SAndroid Build Coastguard Worker }; 62*f80ad8b4SAndroid Build Coastguard Worker 63*f80ad8b4SAndroid Build Coastguard Worker struct hns_roce_ib_create_srq { 64*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 buf_addr; 65*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 db_addr; 66*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 que_addr; 67*f80ad8b4SAndroid Build Coastguard Worker __u32 req_cap_flags; /* Use enum hns_roce_srq_cap_flags */ 68*f80ad8b4SAndroid Build Coastguard Worker __u32 reserved; 69*f80ad8b4SAndroid Build Coastguard Worker }; 70*f80ad8b4SAndroid Build Coastguard Worker 71*f80ad8b4SAndroid Build Coastguard Worker struct hns_roce_ib_create_srq_resp { 72*f80ad8b4SAndroid Build Coastguard Worker __u32 srqn; 73*f80ad8b4SAndroid Build Coastguard Worker __u32 cap_flags; /* Use enum hns_roce_srq_cap_flags */ 74*f80ad8b4SAndroid Build Coastguard Worker }; 75*f80ad8b4SAndroid Build Coastguard Worker 76*f80ad8b4SAndroid Build Coastguard Worker enum hns_roce_congest_type_flags { 77*f80ad8b4SAndroid Build Coastguard Worker HNS_ROCE_CREATE_QP_FLAGS_DCQCN, 78*f80ad8b4SAndroid Build Coastguard Worker HNS_ROCE_CREATE_QP_FLAGS_LDCP, 79*f80ad8b4SAndroid Build Coastguard Worker HNS_ROCE_CREATE_QP_FLAGS_HC3, 80*f80ad8b4SAndroid Build Coastguard Worker HNS_ROCE_CREATE_QP_FLAGS_DIP, 81*f80ad8b4SAndroid Build Coastguard Worker }; 82*f80ad8b4SAndroid Build Coastguard Worker 83*f80ad8b4SAndroid Build Coastguard Worker enum hns_roce_create_qp_comp_mask { 84*f80ad8b4SAndroid Build Coastguard Worker HNS_ROCE_CREATE_QP_MASK_CONGEST_TYPE = 1 << 0, 85*f80ad8b4SAndroid Build Coastguard Worker }; 86*f80ad8b4SAndroid Build Coastguard Worker 87*f80ad8b4SAndroid Build Coastguard Worker struct hns_roce_ib_create_qp { 88*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 buf_addr; 89*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 db_addr; 90*f80ad8b4SAndroid Build Coastguard Worker __u8 log_sq_bb_count; 91*f80ad8b4SAndroid Build Coastguard Worker __u8 log_sq_stride; 92*f80ad8b4SAndroid Build Coastguard Worker __u8 sq_no_prefetch; 93*f80ad8b4SAndroid Build Coastguard Worker __u8 reserved[5]; 94*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 sdb_addr; 95*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 comp_mask; /* Use enum hns_roce_create_qp_comp_mask */ 96*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 create_flags; 97*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 cong_type_flags; 98*f80ad8b4SAndroid Build Coastguard Worker }; 99*f80ad8b4SAndroid Build Coastguard Worker 100*f80ad8b4SAndroid Build Coastguard Worker enum hns_roce_qp_cap_flags { 101*f80ad8b4SAndroid Build Coastguard Worker HNS_ROCE_QP_CAP_RQ_RECORD_DB = 1 << 0, 102*f80ad8b4SAndroid Build Coastguard Worker HNS_ROCE_QP_CAP_SQ_RECORD_DB = 1 << 1, 103*f80ad8b4SAndroid Build Coastguard Worker HNS_ROCE_QP_CAP_OWNER_DB = 1 << 2, 104*f80ad8b4SAndroid Build Coastguard Worker HNS_ROCE_QP_CAP_DIRECT_WQE = 1 << 5, 105*f80ad8b4SAndroid Build Coastguard Worker }; 106*f80ad8b4SAndroid Build Coastguard Worker 107*f80ad8b4SAndroid Build Coastguard Worker struct hns_roce_ib_create_qp_resp { 108*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 cap_flags; 109*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 dwqe_mmap_key; 110*f80ad8b4SAndroid Build Coastguard Worker }; 111*f80ad8b4SAndroid Build Coastguard Worker 112*f80ad8b4SAndroid Build Coastguard Worker struct hns_roce_ib_modify_qp_resp { 113*f80ad8b4SAndroid Build Coastguard Worker __u8 tc_mode; 114*f80ad8b4SAndroid Build Coastguard Worker __u8 priority; 115*f80ad8b4SAndroid Build Coastguard Worker __u8 reserved[6]; 116*f80ad8b4SAndroid Build Coastguard Worker }; 117*f80ad8b4SAndroid Build Coastguard Worker 118*f80ad8b4SAndroid Build Coastguard Worker enum { 119*f80ad8b4SAndroid Build Coastguard Worker HNS_ROCE_EXSGE_FLAGS = 1 << 0, 120*f80ad8b4SAndroid Build Coastguard Worker HNS_ROCE_RQ_INLINE_FLAGS = 1 << 1, 121*f80ad8b4SAndroid Build Coastguard Worker HNS_ROCE_CQE_INLINE_FLAGS = 1 << 2, 122*f80ad8b4SAndroid Build Coastguard Worker }; 123*f80ad8b4SAndroid Build Coastguard Worker 124*f80ad8b4SAndroid Build Coastguard Worker enum { 125*f80ad8b4SAndroid Build Coastguard Worker HNS_ROCE_RSP_EXSGE_FLAGS = 1 << 0, 126*f80ad8b4SAndroid Build Coastguard Worker HNS_ROCE_RSP_RQ_INLINE_FLAGS = 1 << 1, 127*f80ad8b4SAndroid Build Coastguard Worker HNS_ROCE_RSP_CQE_INLINE_FLAGS = 1 << 2, 128*f80ad8b4SAndroid Build Coastguard Worker }; 129*f80ad8b4SAndroid Build Coastguard Worker 130*f80ad8b4SAndroid Build Coastguard Worker struct hns_roce_ib_alloc_ucontext_resp { 131*f80ad8b4SAndroid Build Coastguard Worker __u32 qp_tab_size; 132*f80ad8b4SAndroid Build Coastguard Worker __u32 cqe_size; 133*f80ad8b4SAndroid Build Coastguard Worker __u32 srq_tab_size; 134*f80ad8b4SAndroid Build Coastguard Worker __u32 reserved; 135*f80ad8b4SAndroid Build Coastguard Worker __u32 config; 136*f80ad8b4SAndroid Build Coastguard Worker __u32 max_inline_data; 137*f80ad8b4SAndroid Build Coastguard Worker __u8 congest_type; 138*f80ad8b4SAndroid Build Coastguard Worker __u8 reserved0[7]; 139*f80ad8b4SAndroid Build Coastguard Worker }; 140*f80ad8b4SAndroid Build Coastguard Worker 141*f80ad8b4SAndroid Build Coastguard Worker struct hns_roce_ib_alloc_ucontext { 142*f80ad8b4SAndroid Build Coastguard Worker __u32 config; 143*f80ad8b4SAndroid Build Coastguard Worker __u32 reserved; 144*f80ad8b4SAndroid Build Coastguard Worker }; 145*f80ad8b4SAndroid Build Coastguard Worker 146*f80ad8b4SAndroid Build Coastguard Worker struct hns_roce_ib_alloc_pd_resp { 147*f80ad8b4SAndroid Build Coastguard Worker __u32 pdn; 148*f80ad8b4SAndroid Build Coastguard Worker }; 149*f80ad8b4SAndroid Build Coastguard Worker 150*f80ad8b4SAndroid Build Coastguard Worker struct hns_roce_ib_create_ah_resp { 151*f80ad8b4SAndroid Build Coastguard Worker __u8 dmac[6]; 152*f80ad8b4SAndroid Build Coastguard Worker __u8 priority; 153*f80ad8b4SAndroid Build Coastguard Worker __u8 tc_mode; 154*f80ad8b4SAndroid Build Coastguard Worker }; 155*f80ad8b4SAndroid Build Coastguard Worker 156*f80ad8b4SAndroid Build Coastguard Worker #endif /* HNS_ABI_USER_H */ 157