linux/drivers/scsi/qedi/qedi_gbl.h
<<
>>
Prefs
   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
  13extern int qedi_do_not_recover;
  14#else
  15#define qedi_do_not_recover (0)
  16#endif
  17
  18extern uint qedi_io_tracing;
  19
  20extern struct scsi_host_template qedi_host_template;
  21extern struct iscsi_transport qedi_iscsi_transport;
  22extern const struct qed_iscsi_ops *qedi_ops;
  23extern const struct qedi_debugfs_ops qedi_debugfs_ops[];
  24extern const struct file_operations qedi_dbg_fops[];
  25extern struct device_attribute *qedi_shost_attrs[];
  26
  27int qedi_alloc_sq(struct qedi_ctx *qedi, struct qedi_endpoint *ep);
  28void qedi_free_sq(struct qedi_ctx *qedi, struct qedi_endpoint *ep);
  29
  30int qedi_send_iscsi_login(struct qedi_conn *qedi_conn,
  31                          struct iscsi_task *task);
  32int qedi_send_iscsi_logout(struct qedi_conn *qedi_conn,
  33                           struct iscsi_task *task);
  34int qedi_iscsi_abort_work(struct qedi_conn *qedi_conn,
  35                          struct iscsi_task *mtask);
  36int qedi_send_iscsi_text(struct qedi_conn *qedi_conn,
  37                         struct iscsi_task *task);
  38int qedi_send_iscsi_nopout(struct qedi_conn *qedi_conn,
  39                           struct iscsi_task *task,
  40                           char *datap, int data_len, int unsol);
  41int qedi_iscsi_send_ioreq(struct iscsi_task *task);
  42int qedi_get_task_idx(struct qedi_ctx *qedi);
  43void qedi_clear_task_idx(struct qedi_ctx *qedi, int idx);
  44int qedi_iscsi_cleanup_task(struct iscsi_task *task,
  45                            bool mark_cmd_node_deleted);
  46void qedi_iscsi_unmap_sg_list(struct qedi_cmd *cmd);
  47void qedi_update_itt_map(struct qedi_ctx *qedi, u32 tid, u32 proto_itt,
  48                         struct qedi_cmd *qedi_cmd);
  49void qedi_get_proto_itt(struct qedi_ctx *qedi, u32 tid, u32 *proto_itt);
  50void qedi_get_task_tid(struct qedi_ctx *qedi, u32 itt, int16_t *tid);
  51void qedi_process_iscsi_error(struct qedi_endpoint *ep,
  52                              struct iscsi_eqe_data *data);
  53void qedi_start_conn_recovery(struct qedi_ctx *qedi,
  54                              struct qedi_conn *qedi_conn);
  55struct qedi_conn *qedi_get_conn_from_id(struct qedi_ctx *qedi, u32 iscsi_cid);
  56void qedi_process_tcp_error(struct qedi_endpoint *ep,
  57                            struct iscsi_eqe_data *data);
  58void qedi_mark_device_missing(struct iscsi_cls_session *cls_session);
  59void qedi_mark_device_available(struct iscsi_cls_session *cls_session);
  60void qedi_reset_host_mtu(struct qedi_ctx *qedi, u16 mtu);
  61int qedi_recover_all_conns(struct qedi_ctx *qedi);
  62void qedi_fp_process_cqes(struct qedi_work *work);
  63int qedi_cleanup_all_io(struct qedi_ctx *qedi,
  64                        struct qedi_conn *qedi_conn,
  65                        struct iscsi_task *task, bool in_recovery);
  66void qedi_trace_io(struct qedi_ctx *qedi, struct iscsi_task *task,
  67                   u16 tid, int8_t direction);
  68int qedi_alloc_id(struct qedi_portid_tbl *id_tbl, u16 id);
  69u16 qedi_alloc_new_id(struct qedi_portid_tbl *id_tbl);
  70void qedi_free_id(struct qedi_portid_tbl *id_tbl, u16 id);
  71int qedi_create_sysfs_ctx_attr(struct qedi_ctx *qedi);
  72void qedi_remove_sysfs_ctx_attr(struct qedi_ctx *qedi);
  73void qedi_clearsq(struct qedi_ctx *qedi,
  74                  struct qedi_conn *qedi_conn,
  75                  struct iscsi_task *task);
  76
  77#endif
  78