Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a7fe7380 authored by Leon Romanovsky's avatar Leon Romanovsky Committed by Doug Ledford
Browse files

IB/ocrdma: Move user vendor structures



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: default avatarLeon Romanovsky <leon@kernel.org>
Acked-By: default avatarDevesh Sharma <devesh.sharma@broadcom.com>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent 9ce28a20
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -10601,6 +10601,7 @@ L: linux-rdma@vger.kernel.org
W:	http://www.emulex.com
S:	Supported
F:	drivers/infiniband/hw/ocrdma/
F:	include/uapi/rdma/ocrdma-abi.h

SFC NETWORK DRIVER
M:	Solarflare linux maintainers <linux-net-drivers@solarflare.com>
+1 −1
Original line number Diff line number Diff line
@@ -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);
+1 −1
Original line number Diff line number Diff line
@@ -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)
{
+1 −0
Original line number Diff line number Diff line
@@ -11,3 +11,4 @@ header-y += cxgb3-abi.h
header-y += cxgb4-abi.h
header-y += mlx4-abi.h
header-y += mlx5-abi.h
header-y += ocrdma-abi.h
+70 −68
Original line number Diff line number Diff line
@@ -40,110 +40,112 @@
 * Costa Mesa, CA 92626
 */

#ifndef __OCRDMA_ABI_H__
#define __OCRDMA_ABI_H__
#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];
	__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;
	__u64 rsvd1;
	__u64 rsvd2;
};

struct ocrdma_alloc_pd_ureq {
	u64 rsvd1;
	__u64 rsvd1;
};

struct ocrdma_alloc_pd_uresp {
	u32 id;
	u32 dpp_enabled;
	u32 dpp_page_addr_hi;
	u32 dpp_page_addr_lo;
	u64 rsvd1;
	__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 */
	__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;
	__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;
	__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 */
	__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];
	__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;
	__u16 rq_dbid;
	__u16 resv0;	/* pad */
	__u32 resv1;

	u32 rq_page_size;
	u32 num_rq_pages;
	__u32 rq_page_size;
	__u32 num_rq_pages;

	u64 rq_page_addr[MAX_QP_PAGES];
	u64 db_page_addr;
	__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;
	__u32 db_page_size;
	__u32 num_rqe_allocated;
	__u32 db_rq_offset;
	__u32 db_shift;

	u64 rsvd2;
	u64 rsvd3;
	__u64 rsvd2;
	__u64 rsvd3;
};

#endif				/* __OCRDMA_ABI_H__ */
#endif	/* OCRDMA_ABI_USER_H */