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) 2009-2010 Chelsio, Inc. All rights reserved. 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 #ifndef CXGB4_ABI_USER_H 34*f80ad8b4SAndroid Build Coastguard Worker #define CXGB4_ABI_USER_H 35*f80ad8b4SAndroid Build Coastguard Worker 36*f80ad8b4SAndroid Build Coastguard Worker #include <linux/types.h> 37*f80ad8b4SAndroid Build Coastguard Worker 38*f80ad8b4SAndroid Build Coastguard Worker #define C4IW_UVERBS_ABI_VERSION 3 39*f80ad8b4SAndroid Build Coastguard Worker 40*f80ad8b4SAndroid Build Coastguard Worker /* 41*f80ad8b4SAndroid Build Coastguard Worker * Make sure that all structs defined in this file remain laid out so 42*f80ad8b4SAndroid Build Coastguard Worker * that they pack the same way on 32-bit and 64-bit architectures (to 43*f80ad8b4SAndroid Build Coastguard Worker * avoid incompatibility between 32-bit userspace and 64-bit kernels). 44*f80ad8b4SAndroid Build Coastguard Worker * In particular do not use pointer types -- pass pointers in __aligned_u64 45*f80ad8b4SAndroid Build Coastguard Worker * instead. 46*f80ad8b4SAndroid Build Coastguard Worker */ 47*f80ad8b4SAndroid Build Coastguard Worker 48*f80ad8b4SAndroid Build Coastguard Worker enum { 49*f80ad8b4SAndroid Build Coastguard Worker C4IW_64B_CQE = (1 << 0) 50*f80ad8b4SAndroid Build Coastguard Worker }; 51*f80ad8b4SAndroid Build Coastguard Worker 52*f80ad8b4SAndroid Build Coastguard Worker struct c4iw_create_cq { 53*f80ad8b4SAndroid Build Coastguard Worker __u32 flags; 54*f80ad8b4SAndroid Build Coastguard Worker __u32 reserved; 55*f80ad8b4SAndroid Build Coastguard Worker }; 56*f80ad8b4SAndroid Build Coastguard Worker 57*f80ad8b4SAndroid Build Coastguard Worker struct c4iw_create_cq_resp { 58*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 key; 59*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 gts_key; 60*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 memsize; 61*f80ad8b4SAndroid Build Coastguard Worker __u32 cqid; 62*f80ad8b4SAndroid Build Coastguard Worker __u32 size; 63*f80ad8b4SAndroid Build Coastguard Worker __u32 qid_mask; 64*f80ad8b4SAndroid Build Coastguard Worker __u32 flags; 65*f80ad8b4SAndroid Build Coastguard Worker }; 66*f80ad8b4SAndroid Build Coastguard Worker 67*f80ad8b4SAndroid Build Coastguard Worker enum { 68*f80ad8b4SAndroid Build Coastguard Worker C4IW_QPF_ONCHIP = (1 << 0), 69*f80ad8b4SAndroid Build Coastguard Worker C4IW_QPF_WRITE_W_IMM = (1 << 1) 70*f80ad8b4SAndroid Build Coastguard Worker }; 71*f80ad8b4SAndroid Build Coastguard Worker 72*f80ad8b4SAndroid Build Coastguard Worker struct c4iw_create_qp_resp { 73*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 ma_sync_key; 74*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 sq_key; 75*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 rq_key; 76*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 sq_db_gts_key; 77*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 rq_db_gts_key; 78*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 sq_memsize; 79*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 rq_memsize; 80*f80ad8b4SAndroid Build Coastguard Worker __u32 sqid; 81*f80ad8b4SAndroid Build Coastguard Worker __u32 rqid; 82*f80ad8b4SAndroid Build Coastguard Worker __u32 sq_size; 83*f80ad8b4SAndroid Build Coastguard Worker __u32 rq_size; 84*f80ad8b4SAndroid Build Coastguard Worker __u32 qid_mask; 85*f80ad8b4SAndroid Build Coastguard Worker __u32 flags; 86*f80ad8b4SAndroid Build Coastguard Worker }; 87*f80ad8b4SAndroid Build Coastguard Worker 88*f80ad8b4SAndroid Build Coastguard Worker struct c4iw_create_srq_resp { 89*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 srq_key; 90*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 srq_db_gts_key; 91*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 srq_memsize; 92*f80ad8b4SAndroid Build Coastguard Worker __u32 srqid; 93*f80ad8b4SAndroid Build Coastguard Worker __u32 srq_size; 94*f80ad8b4SAndroid Build Coastguard Worker __u32 rqt_abs_idx; 95*f80ad8b4SAndroid Build Coastguard Worker __u32 qid_mask; 96*f80ad8b4SAndroid Build Coastguard Worker __u32 flags; 97*f80ad8b4SAndroid Build Coastguard Worker __u32 reserved; /* explicit padding */ 98*f80ad8b4SAndroid Build Coastguard Worker }; 99*f80ad8b4SAndroid Build Coastguard Worker 100*f80ad8b4SAndroid Build Coastguard Worker enum { 101*f80ad8b4SAndroid Build Coastguard Worker /* HW supports SRQ_LIMIT_REACHED event */ 102*f80ad8b4SAndroid Build Coastguard Worker T4_SRQ_LIMIT_SUPPORT = 1 << 0, 103*f80ad8b4SAndroid Build Coastguard Worker }; 104*f80ad8b4SAndroid Build Coastguard Worker 105*f80ad8b4SAndroid Build Coastguard Worker struct c4iw_alloc_ucontext_resp { 106*f80ad8b4SAndroid Build Coastguard Worker __aligned_u64 status_page_key; 107*f80ad8b4SAndroid Build Coastguard Worker __u32 status_page_size; 108*f80ad8b4SAndroid Build Coastguard Worker __u32 reserved; /* explicit padding (optional for i386) */ 109*f80ad8b4SAndroid Build Coastguard Worker }; 110*f80ad8b4SAndroid Build Coastguard Worker 111*f80ad8b4SAndroid Build Coastguard Worker struct c4iw_alloc_pd_resp { 112*f80ad8b4SAndroid Build Coastguard Worker __u32 pdid; 113*f80ad8b4SAndroid Build Coastguard Worker }; 114*f80ad8b4SAndroid Build Coastguard Worker 115*f80ad8b4SAndroid Build Coastguard Worker #endif /* CXGB4_ABI_USER_H */ 116