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