1fc831825SYuval Mintz /* QLogic qed NIC Driver 2fc831825SYuval Mintz * Copyright (c) 2015 QLogic Corporation 3fc831825SYuval Mintz * 4fc831825SYuval Mintz * This software is available under the terms of the GNU General Public License 5fc831825SYuval Mintz * (GPL) Version 2, available from the file COPYING in the main directory of 6fc831825SYuval Mintz * this source tree. 7fc831825SYuval Mintz */ 8fc831825SYuval Mintz 9fc831825SYuval Mintz #ifndef _QED_ISCSI_H 10fc831825SYuval Mintz #define _QED_ISCSI_H 11fc831825SYuval Mintz #include <linux/types.h> 12fc831825SYuval Mintz #include <linux/list.h> 13fc831825SYuval Mintz #include <linux/slab.h> 14fc831825SYuval Mintz #include <linux/spinlock.h> 15fc831825SYuval Mintz #include <linux/qed/tcp_common.h> 16fc831825SYuval Mintz #include <linux/qed/qed_iscsi_if.h> 17fc831825SYuval Mintz #include <linux/qed/qed_chain.h> 18fc831825SYuval Mintz #include "qed.h" 19fc831825SYuval Mintz #include "qed_hsi.h" 20fc831825SYuval Mintz #include "qed_mcp.h" 21fc831825SYuval Mintz #include "qed_sp.h" 22fc831825SYuval Mintz 23fc831825SYuval Mintz struct qed_iscsi_info { 24fc831825SYuval Mintz spinlock_t lock; /* Connection resources. */ 25fc831825SYuval Mintz struct list_head free_list; 26fc831825SYuval Mintz u16 max_num_outstanding_tasks; 27fc831825SYuval Mintz void *event_context; 28fc831825SYuval Mintz iscsi_event_cb_t event_cb; 29fc831825SYuval Mintz }; 30fc831825SYuval Mintz 31fc831825SYuval Mintz #ifdef CONFIG_QED_LL2 32fc831825SYuval Mintz extern const struct qed_ll2_ops qed_ll2_ops_pass; 33fc831825SYuval Mintz #endif 34fc831825SYuval Mintz 35fc831825SYuval Mintz #if IS_ENABLED(CONFIG_QED_ISCSI) 36fc831825SYuval Mintz struct qed_iscsi_info *qed_iscsi_alloc(struct qed_hwfn *p_hwfn); 37fc831825SYuval Mintz 38fc831825SYuval Mintz void qed_iscsi_setup(struct qed_hwfn *p_hwfn, 39fc831825SYuval Mintz struct qed_iscsi_info *p_iscsi_info); 40fc831825SYuval Mintz 41fc831825SYuval Mintz void qed_iscsi_free(struct qed_hwfn *p_hwfn, 42fc831825SYuval Mintz struct qed_iscsi_info *p_iscsi_info); 43fc831825SYuval Mintz #else /* IS_ENABLED(CONFIG_QED_ISCSI) */ 44fc831825SYuval Mintz static inline struct qed_iscsi_info *qed_iscsi_alloc( 45fc831825SYuval Mintz struct qed_hwfn *p_hwfn) { return NULL; } 46fc831825SYuval Mintz static inline void qed_iscsi_setup(struct qed_hwfn *p_hwfn, 47fc831825SYuval Mintz struct qed_iscsi_info *p_iscsi_info) {} 48fc831825SYuval Mintz static inline void qed_iscsi_free(struct qed_hwfn *p_hwfn, 49fc831825SYuval Mintz struct qed_iscsi_info *p_iscsi_info) {} 50fc831825SYuval Mintz #endif /* IS_ENABLED(CONFIG_QED_ISCSI) */ 51fc831825SYuval Mintz 52fc831825SYuval Mintz #endif 53