1*f80ad8b4SAndroid Build Coastguard Worker /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-2-Clause) */ 2*f80ad8b4SAndroid Build Coastguard Worker /* This file is part of the Emulex RoCE Device Driver for 3*f80ad8b4SAndroid Build Coastguard Worker * RoCE (RDMA over Converged Ethernet) adapters. 4*f80ad8b4SAndroid Build Coastguard Worker * Copyright (C) 2012-2015 Emulex. All rights reserved. 5*f80ad8b4SAndroid Build Coastguard Worker * EMULEX and SLI are trademarks of Emulex. 6*f80ad8b4SAndroid Build Coastguard Worker * www.emulex.com 7*f80ad8b4SAndroid Build Coastguard Worker * 8*f80ad8b4SAndroid Build Coastguard Worker * This software is available to you under a choice of one of two licenses. 9*f80ad8b4SAndroid Build Coastguard Worker * You may choose to be licensed under the terms of the GNU General Public 10*f80ad8b4SAndroid Build Coastguard Worker * License (GPL) Version 2, available from the file COPYING in the main 11*f80ad8b4SAndroid Build Coastguard Worker * directory of this source tree, or the BSD license below: 12*f80ad8b4SAndroid Build Coastguard Worker * 13*f80ad8b4SAndroid Build Coastguard Worker * Redistribution and use in source and binary forms, with or without 14*f80ad8b4SAndroid Build Coastguard Worker * modification, are permitted provided that the following conditions 15*f80ad8b4SAndroid Build Coastguard Worker * are met: 16*f80ad8b4SAndroid Build Coastguard Worker * 17*f80ad8b4SAndroid Build Coastguard Worker * - Redistributions of source code must retain the above copyright notice, 18*f80ad8b4SAndroid Build Coastguard Worker * this list of conditions and the following disclaimer. 19*f80ad8b4SAndroid Build Coastguard Worker * 20*f80ad8b4SAndroid Build Coastguard Worker * - Redistributions in binary form must reproduce the above copyright 21*f80ad8b4SAndroid Build Coastguard Worker * notice, this list of conditions and the following disclaimer in 22*f80ad8b4SAndroid Build Coastguard Worker * the documentation and/or other materials provided with the distribution. 23*f80ad8b4SAndroid Build Coastguard Worker * 24*f80ad8b4SAndroid Build Coastguard Worker * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 25*f80ad8b4SAndroid Build Coastguard Worker * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,THE 26*f80ad8b4SAndroid Build Coastguard Worker * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27*f80ad8b4SAndroid Build Coastguard Worker * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 28*f80ad8b4SAndroid Build Coastguard Worker * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 29*f80ad8b4SAndroid Build Coastguard Worker * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 30*f80ad8b4SAndroid Build Coastguard Worker * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 31*f80ad8b4SAndroid Build Coastguard Worker * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 32*f80ad8b4SAndroid Build Coastguard Worker * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 33*f80ad8b4SAndroid Build Coastguard Worker * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 34*f80ad8b4SAndroid Build Coastguard Worker * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 35*f80ad8b4SAndroid Build Coastguard Worker * 36*f80ad8b4SAndroid Build Coastguard Worker * Contact Information: 37*f80ad8b4SAndroid Build Coastguard Worker * [email protected] 38*f80ad8b4SAndroid Build Coastguard Worker * 39*f80ad8b4SAndroid Build Coastguard Worker * Emulex 40*f80ad8b4SAndroid Build Coastguard Worker * 3333 Susan Street 41*f80ad8b4SAndroid Build Coastguard Worker * Costa Mesa, CA 92626 42*f80ad8b4SAndroid Build Coastguard Worker */ 43*f80ad8b4SAndroid Build Coastguard Worker 44*f80ad8b4SAndroid Build Coastguard Worker #ifndef OCRDMA_ABI_USER_H 45*f80ad8b4SAndroid Build Coastguard Worker #define OCRDMA_ABI_USER_H 46*f80ad8b4SAndroid Build Coastguard Worker 47*f80ad8b4SAndroid Build Coastguard Worker #include <linux/types.h> 48*f80ad8b4SAndroid Build Coastguard Worker 49*f80ad8b4SAndroid Build Coastguard Worker #define OCRDMA_ABI_VERSION 2 50*f80ad8b4SAndroid Build Coastguard Worker #define OCRDMA_BE_ROCE_ABI_VERSION 1 51*f80ad8b4SAndroid Build Coastguard Worker /* user kernel communication data structures. */ 52*f80ad8b4SAndroid Build Coastguard Worker 53*f80ad8b4SAndroid Build Coastguard Worker struct ocrdma_alloc_ucontext_resp { 54*f80ad8b4SAndroid Build Coastguard Worker __u32 dev_id; 55*f80ad8b4SAndroid Build Coastguard Worker __u32 wqe_size; 56*f80ad8b4SAndroid Build Coastguard Worker __u32 max_inline_data; 57*f80ad8b4SAndroid Build Coastguard Worker __u32 dpp_wqe_size; 58*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 ah_tbl_page; 59*f80ad8b4SAndroid Build Coastguard Worker __u32 ah_tbl_len; 60*f80ad8b4SAndroid Build Coastguard Worker __u32 rqe_size; 61*f80ad8b4SAndroid Build Coastguard Worker __u8 fw_ver[32]; 62*f80ad8b4SAndroid Build Coastguard Worker /* for future use/new features in progress */ 63*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 rsvd1; 64*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 rsvd2; 65*f80ad8b4SAndroid Build Coastguard Worker }; 66*f80ad8b4SAndroid Build Coastguard Worker 67*f80ad8b4SAndroid Build Coastguard Worker struct ocrdma_alloc_pd_ureq { 68*f80ad8b4SAndroid Build Coastguard Worker __u32 rsvd[2]; 69*f80ad8b4SAndroid Build Coastguard Worker }; 70*f80ad8b4SAndroid Build Coastguard Worker 71*f80ad8b4SAndroid Build Coastguard Worker struct ocrdma_alloc_pd_uresp { 72*f80ad8b4SAndroid Build Coastguard Worker __u32 id; 73*f80ad8b4SAndroid Build Coastguard Worker __u32 dpp_enabled; 74*f80ad8b4SAndroid Build Coastguard Worker __u32 dpp_page_addr_hi; 75*f80ad8b4SAndroid Build Coastguard Worker __u32 dpp_page_addr_lo; 76*f80ad8b4SAndroid Build Coastguard Worker __u32 rsvd[2]; 77*f80ad8b4SAndroid Build Coastguard Worker }; 78*f80ad8b4SAndroid Build Coastguard Worker 79*f80ad8b4SAndroid Build Coastguard Worker struct ocrdma_create_cq_ureq { 80*f80ad8b4SAndroid Build Coastguard Worker __u32 dpp_cq; 81*f80ad8b4SAndroid Build Coastguard Worker __u32 rsvd; /* pad */ 82*f80ad8b4SAndroid Build Coastguard Worker }; 83*f80ad8b4SAndroid Build Coastguard Worker 84*f80ad8b4SAndroid Build Coastguard Worker #define MAX_CQ_PAGES 8 85*f80ad8b4SAndroid Build Coastguard Worker struct ocrdma_create_cq_uresp { 86*f80ad8b4SAndroid Build Coastguard Worker __u32 cq_id; 87*f80ad8b4SAndroid Build Coastguard Worker __u32 page_size; 88*f80ad8b4SAndroid Build Coastguard Worker __u32 num_pages; 89*f80ad8b4SAndroid Build Coastguard Worker __u32 max_hw_cqe; 90*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 page_addr[MAX_CQ_PAGES]; 91*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 db_page_addr; 92*f80ad8b4SAndroid Build Coastguard Worker __u32 db_page_size; 93*f80ad8b4SAndroid Build Coastguard Worker __u32 phase_change; 94*f80ad8b4SAndroid Build Coastguard Worker /* for future use/new features in progress */ 95*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 rsvd1; 96*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 rsvd2; 97*f80ad8b4SAndroid Build Coastguard Worker }; 98*f80ad8b4SAndroid Build Coastguard Worker 99*f80ad8b4SAndroid Build Coastguard Worker #define MAX_QP_PAGES 8 100*f80ad8b4SAndroid Build Coastguard Worker #define MAX_UD_AV_PAGES 8 101*f80ad8b4SAndroid Build Coastguard Worker 102*f80ad8b4SAndroid Build Coastguard Worker struct ocrdma_create_qp_ureq { 103*f80ad8b4SAndroid Build Coastguard Worker __u8 enable_dpp_cq; 104*f80ad8b4SAndroid Build Coastguard Worker __u8 rsvd; 105*f80ad8b4SAndroid Build Coastguard Worker __u16 dpp_cq_id; 106*f80ad8b4SAndroid Build Coastguard Worker __u32 rsvd1; /* pad */ 107*f80ad8b4SAndroid Build Coastguard Worker }; 108*f80ad8b4SAndroid Build Coastguard Worker 109*f80ad8b4SAndroid Build Coastguard Worker struct ocrdma_create_qp_uresp { 110*f80ad8b4SAndroid Build Coastguard Worker __u16 qp_id; 111*f80ad8b4SAndroid Build Coastguard Worker __u16 sq_dbid; 112*f80ad8b4SAndroid Build Coastguard Worker __u16 rq_dbid; 113*f80ad8b4SAndroid Build Coastguard Worker __u16 resv0; /* pad */ 114*f80ad8b4SAndroid Build Coastguard Worker __u32 sq_page_size; 115*f80ad8b4SAndroid Build Coastguard Worker __u32 rq_page_size; 116*f80ad8b4SAndroid Build Coastguard Worker __u32 num_sq_pages; 117*f80ad8b4SAndroid Build Coastguard Worker __u32 num_rq_pages; 118*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 sq_page_addr[MAX_QP_PAGES]; 119*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 rq_page_addr[MAX_QP_PAGES]; 120*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 db_page_addr; 121*f80ad8b4SAndroid Build Coastguard Worker __u32 db_page_size; 122*f80ad8b4SAndroid Build Coastguard Worker __u32 dpp_credit; 123*f80ad8b4SAndroid Build Coastguard Worker __u32 dpp_offset; 124*f80ad8b4SAndroid Build Coastguard Worker __u32 num_wqe_allocated; 125*f80ad8b4SAndroid Build Coastguard Worker __u32 num_rqe_allocated; 126*f80ad8b4SAndroid Build Coastguard Worker __u32 db_sq_offset; 127*f80ad8b4SAndroid Build Coastguard Worker __u32 db_rq_offset; 128*f80ad8b4SAndroid Build Coastguard Worker __u32 db_shift; 129*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 rsvd[11]; 130*f80ad8b4SAndroid Build Coastguard Worker }; 131*f80ad8b4SAndroid Build Coastguard Worker 132*f80ad8b4SAndroid Build Coastguard Worker struct ocrdma_create_srq_uresp { 133*f80ad8b4SAndroid Build Coastguard Worker __u16 rq_dbid; 134*f80ad8b4SAndroid Build Coastguard Worker __u16 resv0; /* pad */ 135*f80ad8b4SAndroid Build Coastguard Worker __u32 resv1; 136*f80ad8b4SAndroid Build Coastguard Worker 137*f80ad8b4SAndroid Build Coastguard Worker __u32 rq_page_size; 138*f80ad8b4SAndroid Build Coastguard Worker __u32 num_rq_pages; 139*f80ad8b4SAndroid Build Coastguard Worker 140*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 rq_page_addr[MAX_QP_PAGES]; 141*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 db_page_addr; 142*f80ad8b4SAndroid Build Coastguard Worker 143*f80ad8b4SAndroid Build Coastguard Worker __u32 db_page_size; 144*f80ad8b4SAndroid Build Coastguard Worker __u32 num_rqe_allocated; 145*f80ad8b4SAndroid Build Coastguard Worker __u32 db_rq_offset; 146*f80ad8b4SAndroid Build Coastguard Worker __u32 db_shift; 147*f80ad8b4SAndroid Build Coastguard Worker 148*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 rsvd2; 149*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 rsvd3; 150*f80ad8b4SAndroid Build Coastguard Worker }; 151*f80ad8b4SAndroid Build Coastguard Worker 152*f80ad8b4SAndroid Build Coastguard Worker #endif /* OCRDMA_ABI_USER_H */ 153