linux/drivers/net/ethernet/qlogic/qed/qed_iscsi.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) */
   2/* QLogic qed NIC Driver
   3 * Copyright (c) 2015-2017  QLogic Corporation
   4 * Copyright (c) 2019-2020 Marvell International Ltd.
   5 */
   6
   7#ifndef _QED_ISCSI_H
   8#define _QED_ISCSI_H
   9#include <linux/types.h>
  10#include <linux/list.h>
  11#include <linux/slab.h>
  12#include <linux/spinlock.h>
  13#include <linux/qed/tcp_common.h>
  14#include <linux/qed/qed_iscsi_if.h>
  15#include <linux/qed/qed_chain.h>
  16#include "qed.h"
  17#include "qed_hsi.h"
  18#include "qed_mcp.h"
  19#include "qed_sp.h"
  20
  21struct qed_iscsi_info {
  22        spinlock_t lock; /* Connection resources. */
  23        struct list_head free_list;
  24        u16 max_num_outstanding_tasks;
  25        void *event_context;
  26        iscsi_event_cb_t event_cb;
  27};
  28
  29#if IS_ENABLED(CONFIG_QED_ISCSI)
  30int qed_iscsi_alloc(struct qed_hwfn *p_hwfn);
  31
  32void qed_iscsi_setup(struct qed_hwfn *p_hwfn);
  33
  34void qed_iscsi_free(struct qed_hwfn *p_hwfn);
  35
  36/**
  37 * @brief - Fills provided statistics struct with statistics.
  38 *
  39 * @param cdev
  40 * @param stats - points to struct that will be filled with statistics.
  41 */
  42void qed_get_protocol_stats_iscsi(struct qed_dev *cdev,
  43                                  struct qed_mcp_iscsi_stats *stats);
  44#else /* IS_ENABLED(CONFIG_QED_ISCSI) */
  45static inline int qed_iscsi_alloc(struct qed_hwfn *p_hwfn)
  46{
  47        return -EINVAL;
  48}
  49
  50static inline void qed_iscsi_setup(struct qed_hwfn *p_hwfn) {}
  51
  52static inline void qed_iscsi_free(struct qed_hwfn *p_hwfn) {}
  53
  54static inline void
  55qed_get_protocol_stats_iscsi(struct qed_dev *cdev,
  56                             struct qed_mcp_iscsi_stats *stats) {}
  57#endif /* IS_ENABLED(CONFIG_QED_ISCSI) */
  58
  59#endif
  60