From patchwork Thu Oct 20 09:49:11 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Amrani, Ram" X-Patchwork-Id: 9386469 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id D783A607D0 for ; Thu, 20 Oct 2016 09:50:33 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C62A9296E4 for ; Thu, 20 Oct 2016 09:50:33 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id BA8A029BAE; Thu, 20 Oct 2016 09:50:33 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAYES_00,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1E872296E4 for ; Thu, 20 Oct 2016 09:50:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932845AbcJTJuc (ORCPT ); Thu, 20 Oct 2016 05:50:32 -0400 Received: from mx0a-0016ce01.pphosted.com ([67.231.148.157]:40372 "EHLO mx0b-0016ce01.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932184AbcJTJub (ORCPT ); Thu, 20 Oct 2016 05:50:31 -0400 Received: from pps.filterd (m0095336.ppops.net [127.0.0.1]) by mx0a-0016ce01.pphosted.com (8.16.0.17/8.16.0.17) with SMTP id u9K9oKoL025488; Thu, 20 Oct 2016 02:50:20 -0700 Received: from avcashub1.qlogic.com ([198.186.0.117]) by mx0a-0016ce01.pphosted.com with ESMTP id 263jj4qes4-1 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT); Thu, 20 Oct 2016 02:50:20 -0700 Received: from localhost.qlogic.org (10.185.6.94) by qlc.com (10.1.4.192) with Microsoft SMTP Server id 14.3.235.1; Thu, 20 Oct 2016 02:50:18 -0700 From: Ram Amrani To: , CC: , , Ram Amrani , Ram Amrani Subject: [PATCH rdma-core 5/6] libqedr: abi Date: Thu, 20 Oct 2016 12:49:11 +0300 Message-ID: <1476956952-17388-6-git-send-email-Ram.Amrani@cavium.com> X-Mailer: git-send-email 1.9.3 In-Reply-To: <1476956952-17388-1-git-send-email-Ram.Amrani@cavium.com> References: <1476956952-17388-1-git-send-email-Ram.Amrani@cavium.com> MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=nai engine=5800 definitions=8323 signatures=670677 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 impostorscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1609300000 definitions=main-1610200177 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Ram Amrani Introducing abi structures that allows interfacing with the kernel. Signed-off-by: Ram Amrani --- providers/qedr/qelr_abi.h | 120 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 providers/qedr/qelr_abi.h diff --git a/providers/qedr/qelr_abi.h b/providers/qedr/qelr_abi.h new file mode 100644 index 0000000..a7a0638 --- /dev/null +++ b/providers/qedr/qelr_abi.h @@ -0,0 +1,120 @@ +/* + * Copyright (c) 2015-2016 QLogic Corporation + * + * 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 + * OpenIB.org 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. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef __QELR_ABI_H__ +#define __QELR_ABI_H__ + +#include + +#define QELR_ABI_VERSION (8) + +struct qelr_get_context { + struct ibv_get_context cmd; /* must be first */ +}; + +struct qelr_alloc_ucontext_resp { + struct ibv_get_context_resp ibv_resp; /* must be first */ + __u64 db_pa; + __u32 db_size; + + __u32 max_send_wr; + __u32 max_recv_wr; + __u32 max_srq_wr; + __u32 sges_per_send_wr; + __u32 sges_per_recv_wr; + __u32 sges_per_srq_wr; + __u32 max_cqes; +}; + +struct qelr_alloc_pd_req { + struct ibv_alloc_pd cmd; /* must be first */ +}; + +struct qelr_alloc_pd_resp { + struct ibv_alloc_pd_resp ibv_resp; /* must be first */ + __u32 pd_id; +}; + +struct qelr_create_cq_req { + struct ibv_create_cq ibv_cmd; /* must be first */ + + __u64 addr; /* user space virtual address of CQ buffer */ + __u64 len; /* size of CQ buffer */ +}; + +struct qelr_create_cq_resp { + struct ibv_create_cq_resp ibv_resp; /* must be first */ + __u32 db_offset; + __u16 icid; +}; + +struct qelr_reg_mr { + struct ibv_reg_mr ibv_cmd; /* must be first */ +}; + +struct qelr_reg_mr_resp { + struct ibv_reg_mr_resp ibv_resp; /* must be first */ +}; + +struct qelr_create_qp_req { + struct ibv_create_qp ibv_qp; /* must be first */ + + __u32 qp_handle_hi; + __u32 qp_handle_lo; + + /* SQ */ + __u64 sq_addr; /* user space virtual address of SQ buffer */ + __u64 sq_len; /* length of SQ buffer */ + + /* RQ */ + __u64 rq_addr; /* user space virtual address of RQ buffer */ + __u64 rq_len; /* length of RQ buffer */ +}; + +struct qelr_create_qp_resp { + struct ibv_create_qp_resp ibv_resp; /* must be first */ + + __u32 qp_id; + __u32 atomic_supported; + + /* SQ */ + __u32 sq_db_offset; + __u16 sq_icid; + + /* RQ */ + __u32 rq_db_offset; + __u16 rq_icid; + + __u32 rq_db2_offset; +}; + +#endif /* __QELR_ABI_H__ */