2017-11-01 17:09:13 +03:00
/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-2-Clause) */
2017-02-10 14:19:33 +03:00
/*
* Broadcom NetXtreme - E RoCE driver .
*
* Copyright ( c ) 2016 - 2017 , Broadcom . All rights reserved . The term
* Broadcom refers to Broadcom Limited and / or its subsidiaries .
*
* This software is available to you under a choice of one of two
* licenses . You may choose to be licensed under the terms of the GNU
* General Public License ( GPL ) Version 2 , available from the file
* COPYING in the main directory of this source tree , or the
* BSD license below :
*
* Redistribution and use in source and binary forms , with or without
* modification , are permitted provided that the following conditions
* are met :
*
* 1. Redistributions of source code must retain the above copyright
* notice , this list of conditions and the following disclaimer .
* 2. Redistributions in binary form must reproduce the above copyright
* notice , this list of conditions and the following disclaimer in
* the documentation and / or other materials provided with the
* distribution .
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ` ` AS IS ' '
* AND ANY EXPRESS OR IMPLIED WARRANTIES , INCLUDING , BUT NOT LIMITED TO ,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED . IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT , INDIRECT , INCIDENTAL , SPECIAL , EXEMPLARY , OR
* CONSEQUENTIAL DAMAGES ( INCLUDING , BUT NOT LIMITED TO , PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES ; LOSS OF USE , DATA , OR PROFITS ; OR
* BUSINESS INTERRUPTION ) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY ,
* WHETHER IN CONTRACT , STRICT LIABILITY , OR TORT ( INCLUDING NEGLIGENCE
* OR OTHERWISE ) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE , EVEN
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE .
*
* Description : Uverbs ABI header file
*/
# ifndef __BNXT_RE_UVERBS_ABI_H__
# define __BNXT_RE_UVERBS_ABI_H__
uapi: includes linux/types.h before exporting files
Some files will be exported after a following patch. 0-day tests report the
following warning/error:
./usr/include/linux/bcache.h:8: include of <linux/types.h> is preferred over <asm/types.h>
./usr/include/linux/bcache.h:11: found __[us]{8,16,32,64} type without #include <linux/types.h>
./usr/include/linux/qrtr.h:8: found __[us]{8,16,32,64} type without #include <linux/types.h>
./usr/include/linux/cryptouser.h:39: found __[us]{8,16,32,64} type without #include <linux/types.h>
./usr/include/linux/pr.h:14: found __[us]{8,16,32,64} type without #include <linux/types.h>
./usr/include/linux/btrfs_tree.h:337: found __[us]{8,16,32,64} type without #include <linux/types.h>
./usr/include/rdma/bnxt_re-abi.h:45: found __[us]{8,16,32,64} type without #include <linux/types.h>
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
2017-03-27 15:20:11 +03:00
# include <linux/types.h>
2017-02-10 14:19:33 +03:00
# define BNXT_RE_ABI_VERSION 1
2019-02-07 09:31:27 +03:00
# define BNXT_RE_CHIP_ID0_CHIP_NUM_SFT 0x00
# define BNXT_RE_CHIP_ID0_CHIP_REV_SFT 0x10
# define BNXT_RE_CHIP_ID0_CHIP_MET_SFT 0x18
enum {
BNXT_RE_UCNTX_CMASK_HAVE_CCTX = 0x1ULL
} ;
2017-02-10 14:19:33 +03:00
struct bnxt_re_uctx_resp {
__u32 dev_id ;
__u32 max_qp ;
__u32 pg_size ;
__u32 cqe_sz ;
__u32 max_cqd ;
__u32 rsvd ;
2019-02-07 09:31:27 +03:00
__aligned_u64 comp_mask ;
__u32 chip_id0 ;
__u32 chip_id1 ;
2017-02-10 14:19:33 +03:00
} ;
2018-03-16 06:18:14 +03:00
/*
* This struct is placed after the ib_uverbs_alloc_pd_resp struct , which is
* not 8 byted aligned . To avoid undesired padding in various cases we have to
* set this struct to packed .
*/
2017-02-10 14:19:33 +03:00
struct bnxt_re_pd_resp {
__u32 pdid ;
__u32 dpi ;
__u64 dbr ;
2018-03-16 06:18:14 +03:00
} __attribute__ ( ( packed , aligned ( 4 ) ) ) ;
2017-02-10 14:19:33 +03:00
struct bnxt_re_cq_req {
2018-03-20 23:19:51 +03:00
__aligned_u64 cq_va ;
__aligned_u64 cq_handle ;
2017-02-10 14:19:33 +03:00
} ;
struct bnxt_re_cq_resp {
__u32 cqid ;
__u32 tail ;
__u32 phase ;
__u32 rsvd ;
} ;
struct bnxt_re_qp_req {
2018-03-20 23:19:51 +03:00
__aligned_u64 qpsva ;
__aligned_u64 qprva ;
__aligned_u64 qp_handle ;
2017-02-10 14:19:33 +03:00
} ;
struct bnxt_re_qp_resp {
__u32 qpid ;
__u32 rsvd ;
} ;
2018-01-11 19:52:11 +03:00
struct bnxt_re_srq_req {
2018-03-20 23:19:51 +03:00
__aligned_u64 srqva ;
__aligned_u64 srq_handle ;
2018-01-11 19:52:11 +03:00
} ;
struct bnxt_re_srq_resp {
__u32 srqid ;
} ;
2017-02-10 14:19:33 +03:00
enum bnxt_re_shpg_offt {
BNXT_RE_BEG_RESV_OFFT = 0x00 ,
BNXT_RE_AVID_OFFT = 0x10 ,
BNXT_RE_AVID_SIZE = 0x04 ,
BNXT_RE_END_RESV_OFFT = 0xFF0
} ;
# endif /* __BNXT_RE_UVERBS_ABI_H__*/