#include <linux/types.h>
#include <asm/byteorder.h>
#include <asm/param.h>
#include <linux/delay.h>
#include <linux/dma-mapping.h>
#include <linux/interrupt.h>
#include <linux/kernel.h>
#include <linux/log2.h>
#include <linux/module.h>
#include <linux/pci.h>
#include <linux/slab.h>
#include <linux/stddef.h>
#include <linux/string.h>
#include <linux/workqueue.h>
#include <linux/errno.h>
#include <linux/list.h>
#include <linux/spinlock.h>
#define __PREVENT_DUMP_MEM_ARR__
#define __PREVENT_PXP_GLOBAL_WIN__
#include "qed.h"
#include "qed_cxt.h"
#include "qed_dev_api.h"
#include "qed_fcoe.h"
#include "qed_hsi.h"
#include "qed_hw.h"
#include "qed_int.h"
#include "qed_iro_hsi.h"
#include "qed_ll2.h"
#include "qed_mcp.h"
#include "qed_reg_addr.h"
#include "qed_sp.h"
#include "qed_sriov.h"
#include <linux/qed/qed_fcoe_if.h>
struct qed_fcoe_conn { … };
static int
qed_sp_fcoe_func_start(struct qed_hwfn *p_hwfn,
enum spq_mode comp_mode,
struct qed_spq_comp_cb *p_comp_addr)
{ … }
static int
qed_sp_fcoe_conn_offload(struct qed_hwfn *p_hwfn,
struct qed_fcoe_conn *p_conn,
enum spq_mode comp_mode,
struct qed_spq_comp_cb *p_comp_addr)
{ … }
static int
qed_sp_fcoe_conn_destroy(struct qed_hwfn *p_hwfn,
struct qed_fcoe_conn *p_conn,
enum spq_mode comp_mode,
struct qed_spq_comp_cb *p_comp_addr)
{ … }
static int
qed_sp_fcoe_func_stop(struct qed_hwfn *p_hwfn,
struct qed_ptt *p_ptt,
enum spq_mode comp_mode,
struct qed_spq_comp_cb *p_comp_addr)
{ … }
static int
qed_fcoe_allocate_connection(struct qed_hwfn *p_hwfn,
struct qed_fcoe_conn **p_out_conn)
{ … }
static void qed_fcoe_free_connection(struct qed_hwfn *p_hwfn,
struct qed_fcoe_conn *p_conn)
{ … }
static void __iomem *qed_fcoe_get_db_addr(struct qed_hwfn *p_hwfn, u32 cid)
{ … }
static void __iomem *qed_fcoe_get_primary_bdq_prod(struct qed_hwfn *p_hwfn,
u8 bdq_id)
{ … }
static void __iomem *qed_fcoe_get_secondary_bdq_prod(struct qed_hwfn *p_hwfn,
u8 bdq_id)
{ … }
int qed_fcoe_alloc(struct qed_hwfn *p_hwfn)
{ … }
void qed_fcoe_setup(struct qed_hwfn *p_hwfn)
{ … }
void qed_fcoe_free(struct qed_hwfn *p_hwfn)
{ … }
static int
qed_fcoe_acquire_connection(struct qed_hwfn *p_hwfn,
struct qed_fcoe_conn *p_in_conn,
struct qed_fcoe_conn **p_out_conn)
{ … }
static void qed_fcoe_release_connection(struct qed_hwfn *p_hwfn,
struct qed_fcoe_conn *p_conn)
{ … }
static void _qed_fcoe_get_tstats(struct qed_hwfn *p_hwfn,
struct qed_ptt *p_ptt,
struct qed_fcoe_stats *p_stats)
{ … }
static void _qed_fcoe_get_pstats(struct qed_hwfn *p_hwfn,
struct qed_ptt *p_ptt,
struct qed_fcoe_stats *p_stats)
{ … }
static int qed_fcoe_get_stats(struct qed_hwfn *p_hwfn,
struct qed_fcoe_stats *p_stats,
bool is_atomic)
{ … }
struct qed_hash_fcoe_con { … };
static int qed_fill_fcoe_dev_info(struct qed_dev *cdev,
struct qed_dev_fcoe_info *info)
{ … }
static void qed_register_fcoe_ops(struct qed_dev *cdev,
struct qed_fcoe_cb_ops *ops, void *cookie)
{ … }
static struct qed_hash_fcoe_con *qed_fcoe_get_hash(struct qed_dev *cdev,
u32 handle)
{ … }
static int qed_fcoe_stop(struct qed_dev *cdev)
{ … }
static int qed_fcoe_start(struct qed_dev *cdev, struct qed_fcoe_tid *tasks)
{ … }
static int qed_fcoe_acquire_conn(struct qed_dev *cdev,
u32 *handle,
u32 *fw_cid, void __iomem **p_doorbell)
{ … }
static int qed_fcoe_release_conn(struct qed_dev *cdev, u32 handle)
{ … }
static int qed_fcoe_offload_conn(struct qed_dev *cdev,
u32 handle,
struct qed_fcoe_params_offload *conn_info)
{ … }
static int qed_fcoe_destroy_conn(struct qed_dev *cdev,
u32 handle, dma_addr_t terminate_params)
{ … }
static int qed_fcoe_stats_context(struct qed_dev *cdev,
struct qed_fcoe_stats *stats,
bool is_atomic)
{ … }
static int qed_fcoe_stats(struct qed_dev *cdev, struct qed_fcoe_stats *stats)
{ … }
void qed_get_protocol_stats_fcoe(struct qed_dev *cdev,
struct qed_mcp_fcoe_stats *stats,
bool is_atomic)
{ … }
static const struct qed_fcoe_ops qed_fcoe_ops_pass = …;
const struct qed_fcoe_ops *qed_get_fcoe_ops(void)
{ … }
EXPORT_SYMBOL(…);
void qed_put_fcoe_ops(void)
{ … }
EXPORT_SYMBOL(…);