Acked-By: Devesh Sharma <devesh.sharma@xxxxxxxxxxxx> On Thu, Sep 22, 2016 at 8:01 PM, Leon Romanovsky <leon@xxxxxxxxxx> wrote: > This patch moves ocrdma vendor's specific structures to > common UAPI folder which will be visible to all consumers. > > These structures are used by user-space library driver > (libmlx4) and currently manually copied to that library. > > This move will allow cross-compile against these files and > simplify introduction of vendor specific data. > > In addition, it changes types to be __uXX instead of uXX. > > Signed-off-by: Leon Romanovsky <leon@xxxxxxxxxx> > --- > drivers/infiniband/hw/ocrdma/ocrdma_abi.h | 149 --------------------------- > drivers/infiniband/hw/ocrdma/ocrdma_main.c | 2 +- > drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 2 +- > include/uapi/rdma/ocrdma-abi.h | 151 ++++++++++++++++++++++++++++ > 4 files changed, 153 insertions(+), 151 deletions(-) > delete mode 100644 drivers/infiniband/hw/ocrdma/ocrdma_abi.h > create mode 100644 include/uapi/rdma/ocrdma-abi.h > > diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_abi.h b/drivers/infiniband/hw/ocrdma/ocrdma_abi.h > deleted file mode 100644 > index 430b135..0000000 > --- a/drivers/infiniband/hw/ocrdma/ocrdma_abi.h > +++ /dev/null > @@ -1,149 +0,0 @@ > -/* This file is part of the Emulex RoCE Device Driver for > - * RoCE (RDMA over Converged Ethernet) adapters. > - * Copyright (C) 2012-2015 Emulex. All rights reserved. > - * EMULEX and SLI are trademarks of Emulex. > - * www.emulex.com > - * > - * 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: > - * > - * - Redistributions of source code must retain the above copyright notice, > - * this list of conditions and the following disclaimer. > - * > - * - 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 COPYRIGHT HOLDERS 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 COPYRIGHT HOLDER 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. > - * > - * Contact Information: > - * linux-drivers@xxxxxxxxxx > - * > - * Emulex > - * 3333 Susan Street > - * Costa Mesa, CA 92626 > - */ > - > -#ifndef __OCRDMA_ABI_H__ > -#define __OCRDMA_ABI_H__ > - > -#define OCRDMA_ABI_VERSION 2 > -#define OCRDMA_BE_ROCE_ABI_VERSION 1 > -/* user kernel communication data structures. */ > - > -struct ocrdma_alloc_ucontext_resp { > - u32 dev_id; > - u32 wqe_size; > - u32 max_inline_data; > - u32 dpp_wqe_size; > - u64 ah_tbl_page; > - u32 ah_tbl_len; > - u32 rqe_size; > - u8 fw_ver[32]; > - /* for future use/new features in progress */ > - u64 rsvd1; > - u64 rsvd2; > -}; > - > -struct ocrdma_alloc_pd_ureq { > - u64 rsvd1; > -}; > - > -struct ocrdma_alloc_pd_uresp { > - u32 id; > - u32 dpp_enabled; > - u32 dpp_page_addr_hi; > - u32 dpp_page_addr_lo; > - u64 rsvd1; > -}; > - > -struct ocrdma_create_cq_ureq { > - u32 dpp_cq; > - u32 rsvd; /* pad */ > -}; > - > -#define MAX_CQ_PAGES 8 > -struct ocrdma_create_cq_uresp { > - u32 cq_id; > - u32 page_size; > - u32 num_pages; > - u32 max_hw_cqe; > - u64 page_addr[MAX_CQ_PAGES]; > - u64 db_page_addr; > - u32 db_page_size; > - u32 phase_change; > - /* for future use/new features in progress */ > - u64 rsvd1; > - u64 rsvd2; > -}; > - > -#define MAX_QP_PAGES 8 > -#define MAX_UD_AV_PAGES 8 > - > -struct ocrdma_create_qp_ureq { > - u8 enable_dpp_cq; > - u8 rsvd; > - u16 dpp_cq_id; > - u32 rsvd1; /* pad */ > -}; > - > -struct ocrdma_create_qp_uresp { > - u16 qp_id; > - u16 sq_dbid; > - u16 rq_dbid; > - u16 resv0; /* pad */ > - u32 sq_page_size; > - u32 rq_page_size; > - u32 num_sq_pages; > - u32 num_rq_pages; > - u64 sq_page_addr[MAX_QP_PAGES]; > - u64 rq_page_addr[MAX_QP_PAGES]; > - u64 db_page_addr; > - u32 db_page_size; > - u32 dpp_credit; > - u32 dpp_offset; > - u32 num_wqe_allocated; > - u32 num_rqe_allocated; > - u32 db_sq_offset; > - u32 db_rq_offset; > - u32 db_shift; > - u64 rsvd[11]; > -} __packed; > - > -struct ocrdma_create_srq_uresp { > - u16 rq_dbid; > - u16 resv0; /* pad */ > - u32 resv1; > - > - u32 rq_page_size; > - u32 num_rq_pages; > - > - u64 rq_page_addr[MAX_QP_PAGES]; > - u64 db_page_addr; > - > - u32 db_page_size; > - u32 num_rqe_allocated; > - u32 db_rq_offset; > - u32 db_shift; > - > - u64 rsvd2; > - u64 rsvd3; > -}; > - > -#endif /* __OCRDMA_ABI_H__ */ > diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_main.c b/drivers/infiniband/hw/ocrdma/ocrdma_main.c > index 07d0c6c..6393038 100644 > --- a/drivers/infiniband/hw/ocrdma/ocrdma_main.c > +++ b/drivers/infiniband/hw/ocrdma/ocrdma_main.c > @@ -56,7 +56,7 @@ > #include "be_roce.h" > #include "ocrdma_hw.h" > #include "ocrdma_stats.h" > -#include "ocrdma_abi.h" > +#include <rdma/ocrdma-abi.h> > > MODULE_VERSION(OCRDMA_ROCE_DRV_VERSION); > MODULE_DESCRIPTION(OCRDMA_ROCE_DRV_DESC " " OCRDMA_ROCE_DRV_VERSION); > diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c > index 0aa8547..6af44f8 100644 > --- a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c > +++ b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c > @@ -51,7 +51,7 @@ > #include "ocrdma.h" > #include "ocrdma_hw.h" > #include "ocrdma_verbs.h" > -#include "ocrdma_abi.h" > +#include <rdma/ocrdma-abi.h> > > int ocrdma_query_pkey(struct ib_device *ibdev, u8 port, u16 index, u16 *pkey) > { > diff --git a/include/uapi/rdma/ocrdma-abi.h b/include/uapi/rdma/ocrdma-abi.h > new file mode 100644 > index 0000000..9f28191 > --- /dev/null > +++ b/include/uapi/rdma/ocrdma-abi.h > @@ -0,0 +1,151 @@ > +/* This file is part of the Emulex RoCE Device Driver for > + * RoCE (RDMA over Converged Ethernet) adapters. > + * Copyright (C) 2012-2015 Emulex. All rights reserved. > + * EMULEX and SLI are trademarks of Emulex. > + * www.emulex.com > + * > + * 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: > + * > + * - Redistributions of source code must retain the above copyright notice, > + * this list of conditions and the following disclaimer. > + * > + * - 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 COPYRIGHT HOLDERS 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 COPYRIGHT HOLDER 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. > + * > + * Contact Information: > + * linux-drivers@xxxxxxxxxx > + * > + * Emulex > + * 3333 Susan Street > + * Costa Mesa, CA 92626 > + */ > + > +#ifndef OCRDMA_ABI_USER_H > +#define OCRDMA_ABI_USER_H > + > +#include <linux/types.h> > + > +#define OCRDMA_ABI_VERSION 2 > +#define OCRDMA_BE_ROCE_ABI_VERSION 1 > +/* user kernel communication data structures. */ > + > +struct ocrdma_alloc_ucontext_resp { > + __u32 dev_id; > + __u32 wqe_size; > + __u32 max_inline_data; > + __u32 dpp_wqe_size; > + __u64 ah_tbl_page; > + __u32 ah_tbl_len; > + __u32 rqe_size; > + __u8 fw_ver[32]; > + /* for future use/new features in progress */ > + __u64 rsvd1; > + __u64 rsvd2; > +}; > + > +struct ocrdma_alloc_pd_ureq { > + __u64 rsvd1; > +}; > + > +struct ocrdma_alloc_pd_uresp { > + __u32 id; > + __u32 dpp_enabled; > + __u32 dpp_page_addr_hi; > + __u32 dpp_page_addr_lo; > + __u64 rsvd1; > +}; > + > +struct ocrdma_create_cq_ureq { > + __u32 dpp_cq; > + __u32 rsvd; /* pad */ > +}; > + > +#define MAX_CQ_PAGES 8 > +struct ocrdma_create_cq_uresp { > + __u32 cq_id; > + __u32 page_size; > + __u32 num_pages; > + __u32 max_hw_cqe; > + __u64 page_addr[MAX_CQ_PAGES]; > + __u64 db_page_addr; > + __u32 db_page_size; > + __u32 phase_change; > + /* for future use/new features in progress */ > + __u64 rsvd1; > + __u64 rsvd2; > +}; > + > +#define MAX_QP_PAGES 8 > +#define MAX_UD_AV_PAGES 8 > + > +struct ocrdma_create_qp_ureq { > + __u8 enable_dpp_cq; > + __u8 rsvd; > + __u16 dpp_cq_id; > + __u32 rsvd1; /* pad */ > +}; > + > +struct ocrdma_create_qp_uresp { > + __u16 qp_id; > + __u16 sq_dbid; > + __u16 rq_dbid; > + __u16 resv0; /* pad */ > + __u32 sq_page_size; > + __u32 rq_page_size; > + __u32 num_sq_pages; > + __u32 num_rq_pages; > + __u64 sq_page_addr[MAX_QP_PAGES]; > + __u64 rq_page_addr[MAX_QP_PAGES]; > + __u64 db_page_addr; > + __u32 db_page_size; > + __u32 dpp_credit; > + __u32 dpp_offset; > + __u32 num_wqe_allocated; > + __u32 num_rqe_allocated; > + __u32 db_sq_offset; > + __u32 db_rq_offset; > + __u32 db_shift; > + __u64 rsvd[11]; > +} __packed; > + > +struct ocrdma_create_srq_uresp { > + __u16 rq_dbid; > + __u16 resv0; /* pad */ > + __u32 resv1; > + > + __u32 rq_page_size; > + __u32 num_rq_pages; > + > + __u64 rq_page_addr[MAX_QP_PAGES]; > + __u64 db_page_addr; > + > + __u32 db_page_size; > + __u32 num_rqe_allocated; > + __u32 db_rq_offset; > + __u32 db_shift; > + > + __u64 rsvd2; > + __u64 rsvd3; > +}; > + > +#endif /* OCRDMA_ABI_USER_H */ > -- > 2.7.4 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-rdma" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html