#include <linux/types.h>
#include <asm/byteorder.h>
#include <linux/bitops.h>
#include <linux/delay.h>
#include <linux/dma-mapping.h>
#include <linux/errno.h>
#include <linux/io.h>
#include <linux/kernel.h>
#include <linux/list.h>
#include <linux/module.h>
#include <linux/mutex.h>
#include <linux/pci.h>
#include <linux/slab.h>
#include <linux/spinlock.h>
#include <linux/string.h>
#include <net/addrconf.h>
#include "qed.h"
#include "qed_cxt.h"
#include "qed_hsi.h"
#include "qed_iro_hsi.h"
#include "qed_hw.h"
#include "qed_init_ops.h"
#include "qed_int.h"
#include "qed_ll2.h"
#include "qed_mcp.h"
#include "qed_reg_addr.h"
#include <linux/qed/qed_rdma_if.h>
#include "qed_rdma.h"
#include "qed_roce.h"
#include "qed_sp.h"
int qed_rdma_bmap_alloc(struct qed_hwfn *p_hwfn,
struct qed_bmap *bmap, u32 max_count, char *name)
{ … }
int qed_rdma_bmap_alloc_id(struct qed_hwfn *p_hwfn,
struct qed_bmap *bmap, u32 *id_num)
{ … }
void qed_bmap_set_id(struct qed_hwfn *p_hwfn,
struct qed_bmap *bmap, u32 id_num)
{ … }
void qed_bmap_release_id(struct qed_hwfn *p_hwfn,
struct qed_bmap *bmap, u32 id_num)
{ … }
int qed_bmap_test_id(struct qed_hwfn *p_hwfn,
struct qed_bmap *bmap, u32 id_num)
{ … }
static bool qed_bmap_is_empty(struct qed_bmap *bmap)
{ … }
static u32 qed_rdma_get_sb_id(void *p_hwfn, u32 rel_sb_id)
{ … }
int qed_rdma_info_alloc(struct qed_hwfn *p_hwfn)
{ … }
void qed_rdma_info_free(struct qed_hwfn *p_hwfn)
{ … }
static int qed_rdma_alloc(struct qed_hwfn *p_hwfn)
{ … }
void qed_rdma_bmap_free(struct qed_hwfn *p_hwfn,
struct qed_bmap *bmap, bool check)
{ … }
static void qed_rdma_resc_free(struct qed_hwfn *p_hwfn)
{ … }
static void qed_rdma_free_tid(void *rdma_cxt, u32 itid)
{ … }
static void qed_rdma_free_reserved_lkey(struct qed_hwfn *p_hwfn)
{ … }
static void qed_rdma_free(struct qed_hwfn *p_hwfn)
{ … }
static void qed_rdma_init_events(struct qed_hwfn *p_hwfn,
struct qed_rdma_start_in_params *params)
{ … }
static void qed_rdma_init_devinfo(struct qed_hwfn *p_hwfn,
struct qed_rdma_start_in_params *params)
{ … }
static void qed_rdma_init_port(struct qed_hwfn *p_hwfn)
{ … }
static int qed_rdma_init_hw(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt)
{ … }
static int qed_rdma_start_fw(struct qed_hwfn *p_hwfn,
struct qed_rdma_start_in_params *params,
struct qed_ptt *p_ptt)
{ … }
static int qed_rdma_alloc_tid(void *rdma_cxt, u32 *itid)
{ … }
static int qed_rdma_reserve_lkey(struct qed_hwfn *p_hwfn)
{ … }
static int qed_rdma_setup(struct qed_hwfn *p_hwfn,
struct qed_ptt *p_ptt,
struct qed_rdma_start_in_params *params)
{ … }
static int qed_rdma_stop(void *rdma_cxt)
{ … }
static int qed_rdma_add_user(void *rdma_cxt,
struct qed_rdma_add_user_out_params *out_params)
{ … }
static struct qed_rdma_port *qed_rdma_query_port(void *rdma_cxt)
{ … }
static struct qed_rdma_device *qed_rdma_query_device(void *rdma_cxt)
{ … }
static void qed_rdma_cnq_prod_update(void *rdma_cxt, u8 qz_offset, u16 prod)
{ … }
static int qed_fill_rdma_dev_info(struct qed_dev *cdev,
struct qed_dev_rdma_info *info)
{ … }
static int qed_rdma_get_sb_start(struct qed_dev *cdev)
{ … }
static int qed_rdma_get_min_cnq_msix(struct qed_dev *cdev)
{ … }
static int qed_rdma_set_int(struct qed_dev *cdev, u16 cnt)
{ … }
static int qed_rdma_get_int(struct qed_dev *cdev, struct qed_int_info *info)
{ … }
static int qed_rdma_alloc_pd(void *rdma_cxt, u16 *pd)
{ … }
static void qed_rdma_free_pd(void *rdma_cxt, u16 pd)
{ … }
static int qed_rdma_alloc_xrcd(void *rdma_cxt, u16 *xrcd_id)
{ … }
static void qed_rdma_free_xrcd(void *rdma_cxt, u16 xrcd_id)
{ … }
static enum qed_rdma_toggle_bit
qed_rdma_toggle_bit_create_resize_cq(struct qed_hwfn *p_hwfn, u16 icid)
{ … }
static int qed_rdma_create_cq(void *rdma_cxt,
struct qed_rdma_create_cq_in_params *params,
u16 *icid)
{ … }
static int
qed_rdma_destroy_cq(void *rdma_cxt,
struct qed_rdma_destroy_cq_in_params *in_params,
struct qed_rdma_destroy_cq_out_params *out_params)
{ … }
void qed_rdma_set_fw_mac(__le16 *p_fw_mac, const u8 *p_qed_mac)
{ … }
static int qed_rdma_query_qp(void *rdma_cxt,
struct qed_rdma_qp *qp,
struct qed_rdma_query_qp_out_params *out_params)
{ … }
static int qed_rdma_destroy_qp(void *rdma_cxt, struct qed_rdma_qp *qp)
{ … }
static struct qed_rdma_qp *
qed_rdma_create_qp(void *rdma_cxt,
struct qed_rdma_create_qp_in_params *in_params,
struct qed_rdma_create_qp_out_params *out_params)
{ … }
static int qed_rdma_modify_qp(void *rdma_cxt,
struct qed_rdma_qp *qp,
struct qed_rdma_modify_qp_in_params *params)
{ … }
static int
qed_rdma_register_tid(void *rdma_cxt,
struct qed_rdma_register_tid_in_params *params)
{ … }
static int qed_rdma_deregister_tid(void *rdma_cxt, u32 itid)
{ … }
static void *qed_rdma_get_rdma_ctx(struct qed_dev *cdev)
{ … }
static struct qed_bmap *qed_rdma_get_srq_bmap(struct qed_hwfn *p_hwfn,
bool is_xrc)
{ … }
static int qed_rdma_modify_srq(void *rdma_cxt,
struct qed_rdma_modify_srq_in_params *in_params)
{ … }
static int
qed_rdma_destroy_srq(void *rdma_cxt,
struct qed_rdma_destroy_srq_in_params *in_params)
{ … }
static int
qed_rdma_create_srq(void *rdma_cxt,
struct qed_rdma_create_srq_in_params *in_params,
struct qed_rdma_create_srq_out_params *out_params)
{ … }
bool qed_rdma_allocated_qps(struct qed_hwfn *p_hwfn)
{ … }
void qed_rdma_dpm_conf(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt)
{ … }
void qed_rdma_dpm_bar(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt)
{ … }
static int qed_rdma_start(void *rdma_cxt,
struct qed_rdma_start_in_params *params)
{ … }
static int qed_rdma_init(struct qed_dev *cdev,
struct qed_rdma_start_in_params *params)
{ … }
static void qed_rdma_remove_user(void *rdma_cxt, u16 dpi)
{ … }
static int qed_roce_ll2_set_mac_filter(struct qed_dev *cdev,
u8 *old_mac_address,
const u8 *new_mac_address)
{ … }
static int qed_iwarp_set_engine_affin(struct qed_dev *cdev, bool b_reset)
{ … }
static const struct qed_rdma_ops qed_rdma_ops_pass = …;
const struct qed_rdma_ops *qed_get_rdma_ops(void)
{ … }
EXPORT_SYMBOL(…);