qedi_gbl.h 3.0 KB

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