11f4d4ed6SAlexander Lobakin /* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) */ 2fc831825SYuval Mintz /* QLogic qed NIC Driver 3e8f1cb50SMintz, Yuval * Copyright (c) 2015-2017 QLogic Corporation 4663eacd8SAlexander Lobakin * Copyright (c) 2019-2020 Marvell International Ltd. 5fc831825SYuval Mintz */ 6fc831825SYuval Mintz 7fc831825SYuval Mintz #ifndef _QED_ISCSI_H 8fc831825SYuval Mintz #define _QED_ISCSI_H 9fc831825SYuval Mintz #include <linux/types.h> 10fc831825SYuval Mintz #include <linux/list.h> 11fc831825SYuval Mintz #include <linux/slab.h> 12fc831825SYuval Mintz #include <linux/spinlock.h> 13fc831825SYuval Mintz #include <linux/qed/tcp_common.h> 14fc831825SYuval Mintz #include <linux/qed/qed_iscsi_if.h> 15fc831825SYuval Mintz #include <linux/qed/qed_chain.h> 16fc831825SYuval Mintz #include "qed.h" 17fc831825SYuval Mintz #include "qed_hsi.h" 18fc831825SYuval Mintz #include "qed_mcp.h" 19fc831825SYuval Mintz #include "qed_sp.h" 20fc831825SYuval Mintz 21fc831825SYuval Mintz struct qed_iscsi_info { 22fc831825SYuval Mintz spinlock_t lock; /* Connection resources. */ 23fc831825SYuval Mintz struct list_head free_list; 24fc831825SYuval Mintz u16 max_num_outstanding_tasks; 25fc831825SYuval Mintz void *event_context; 26fc831825SYuval Mintz iscsi_event_cb_t event_cb; 27fc831825SYuval Mintz }; 28fc831825SYuval Mintz 29fc831825SYuval Mintz #if IS_ENABLED(CONFIG_QED_ISCSI) 303587cb87STomer Tayar int qed_iscsi_alloc(struct qed_hwfn *p_hwfn); 31fc831825SYuval Mintz 323587cb87STomer Tayar void qed_iscsi_setup(struct qed_hwfn *p_hwfn); 33fc831825SYuval Mintz 343587cb87STomer Tayar void qed_iscsi_free(struct qed_hwfn *p_hwfn); 352f2b2614SMintz, Yuval 362f2b2614SMintz, Yuval /** 37*19198e4eSPrabhakar Kushwaha * qed_get_protocol_stats_iscsi(): Fills provided statistics 38*19198e4eSPrabhakar Kushwaha * struct with statistics. 392f2b2614SMintz, Yuval * 40*19198e4eSPrabhakar Kushwaha * @cdev: Qed dev pointer. 41*19198e4eSPrabhakar Kushwaha * @stats: Points to struct that will be filled with statistics. 42*19198e4eSPrabhakar Kushwaha * 43*19198e4eSPrabhakar Kushwaha * Return: Void. 442f2b2614SMintz, Yuval */ 452f2b2614SMintz, Yuval void qed_get_protocol_stats_iscsi(struct qed_dev *cdev, 462f2b2614SMintz, Yuval struct qed_mcp_iscsi_stats *stats); 47fc831825SYuval Mintz #else /* IS_ENABLED(CONFIG_QED_ISCSI) */ 483587cb87STomer Tayar static inline int qed_iscsi_alloc(struct qed_hwfn *p_hwfn) 493587cb87STomer Tayar { 503587cb87STomer Tayar return -EINVAL; 513587cb87STomer Tayar } 523587cb87STomer Tayar 533587cb87STomer Tayar static inline void qed_iscsi_setup(struct qed_hwfn *p_hwfn) {} 543587cb87STomer Tayar 553587cb87STomer Tayar static inline void qed_iscsi_free(struct qed_hwfn *p_hwfn) {} 563587cb87STomer Tayar 572f2b2614SMintz, Yuval static inline void 582f2b2614SMintz, Yuval qed_get_protocol_stats_iscsi(struct qed_dev *cdev, 592f2b2614SMintz, Yuval struct qed_mcp_iscsi_stats *stats) {} 60fc831825SYuval Mintz #endif /* IS_ENABLED(CONFIG_QED_ISCSI) */ 61fc831825SYuval Mintz 62fc831825SYuval Mintz #endif 63