root/drivers/scsi/qedi/qedi_gbl.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0-only */
   2 /*
   3  * QLogic iSCSI Offload Driver
   4  * Copyright (c) 2016 Cavium Inc.
   5  */
   6 
   7 #ifndef _QEDI_GBL_H_
   8 #define _QEDI_GBL_H_
   9 
  10 #include "qedi_iscsi.h"
  11 
  12 #ifdef CONFIG_DEBUG_FS
  13 extern int qedi_do_not_recover;
  14 #else
  15 #define qedi_do_not_recover (0)
  16 #endif
  17 
  18 extern uint qedi_io_tracing;
  19 
  20 extern struct scsi_host_template qedi_host_template;
  21 extern struct iscsi_transport qedi_iscsi_transport;
  22 extern const struct qed_iscsi_ops *qedi_ops;
  23 extern const struct qedi_debugfs_ops qedi_debugfs_ops[];
  24 extern const struct file_operations qedi_dbg_fops[];
  25 extern struct device_attribute *qedi_shost_attrs[];
  26 
  27 int qedi_alloc_sq(struct qedi_ctx *qedi, struct qedi_endpoint *ep);
  28 void qedi_free_sq(struct qedi_ctx *qedi, struct qedi_endpoint *ep);
  29 
  30 int qedi_send_iscsi_login(struct qedi_conn *qedi_conn,
  31                           struct iscsi_task *task);
  32 int qedi_send_iscsi_logout(struct qedi_conn *qedi_conn,
  33                            struct iscsi_task *task);
  34 int qedi_iscsi_abort_work(struct qedi_conn *qedi_conn,
  35                           struct iscsi_task *mtask);
  36 int qedi_send_iscsi_text(struct qedi_conn *qedi_conn,
  37                          struct iscsi_task *task);
  38 int qedi_send_iscsi_nopout(struct qedi_conn *qedi_conn,
  39                            struct iscsi_task *task,
  40                            char *datap, int data_len, int unsol);
  41 int qedi_iscsi_send_ioreq(struct iscsi_task *task);
  42 int qedi_get_task_idx(struct qedi_ctx *qedi);
  43 void qedi_clear_task_idx(struct qedi_ctx *qedi, int idx);
  44 int qedi_iscsi_cleanup_task(struct iscsi_task *task,
  45                             bool mark_cmd_node_deleted);
  46 void qedi_iscsi_unmap_sg_list(struct qedi_cmd *cmd);
  47 void qedi_update_itt_map(struct qedi_ctx *qedi, u32 tid, u32 proto_itt,
  48                          struct qedi_cmd *qedi_cmd);
  49 void qedi_get_proto_itt(struct qedi_ctx *qedi, u32 tid, u32 *proto_itt);
  50 void qedi_get_task_tid(struct qedi_ctx *qedi, u32 itt, int16_t *tid);
  51 void qedi_process_iscsi_error(struct qedi_endpoint *ep,
  52                               struct iscsi_eqe_data *data);
  53 void qedi_start_conn_recovery(struct qedi_ctx *qedi,
  54                               struct qedi_conn *qedi_conn);
  55 struct qedi_conn *qedi_get_conn_from_id(struct qedi_ctx *qedi, u32 iscsi_cid);
  56 void qedi_process_tcp_error(struct qedi_endpoint *ep,
  57                             struct iscsi_eqe_data *data);
  58 void qedi_mark_device_missing(struct iscsi_cls_session *cls_session);
  59 void qedi_mark_device_available(struct iscsi_cls_session *cls_session);
  60 void qedi_reset_host_mtu(struct qedi_ctx *qedi, u16 mtu);
  61 int qedi_recover_all_conns(struct qedi_ctx *qedi);
  62 void qedi_fp_process_cqes(struct qedi_work *work);
  63 int qedi_cleanup_all_io(struct qedi_ctx *qedi,
  64                         struct qedi_conn *qedi_conn,
  65                         struct iscsi_task *task, bool in_recovery);
  66 void qedi_trace_io(struct qedi_ctx *qedi, struct iscsi_task *task,
  67                    u16 tid, int8_t direction);
  68 int qedi_alloc_id(struct qedi_portid_tbl *id_tbl, u16 id);
  69 u16 qedi_alloc_new_id(struct qedi_portid_tbl *id_tbl);
  70 void qedi_free_id(struct qedi_portid_tbl *id_tbl, u16 id);
  71 int qedi_create_sysfs_ctx_attr(struct qedi_ctx *qedi);
  72 void qedi_remove_sysfs_ctx_attr(struct qedi_ctx *qedi);
  73 void qedi_clearsq(struct qedi_ctx *qedi,
  74                   struct qedi_conn *qedi_conn,
  75                   struct iscsi_task *task);
  76 
  77 #endif

/* [<][>][^][v][top][bottom][index][help] */