1 /* SPDX-License-Identifier: GPL-2.0-only */
3 * QLogic iSCSI Offload Driver
4 * Copyright (c) 2016 Cavium Inc.
7 #ifndef _QEDI_FW_ISCSI_H_
8 #define _QEDI_FW_ISCSI_H_
10 #include "qedi_fw_scsi.h"
12 struct iscsi_task_params
{
13 struct e4_iscsi_task_context
*context
;
14 struct iscsi_wqe
*sqe
;
22 struct iscsi_conn_params
{
23 u32 first_burst_length
;
24 u32 max_send_pdu_length
;
30 /* @brief init_initiator_read_iscsi_task - initializes iSCSI Initiator Read
33 * @param task_params - Pointer to task parameters struct
34 * @param conn_params - Connection Parameters
35 * @param cmd_params - command specific parameters
36 * @param cmd_pdu_header - PDU Header Parameters
37 * @param sgl_task_params - Pointer to SGL task params
38 * @param dif_task_params - Pointer to DIF parameters struct
40 int init_initiator_rw_iscsi_task(struct iscsi_task_params
*task_params
,
41 struct iscsi_conn_params
*conn_params
,
42 struct scsi_initiator_cmd_params
*cmd_params
,
43 struct iscsi_cmd_hdr
*cmd_pdu_header
,
44 struct scsi_sgl_task_params
*tx_sgl_params
,
45 struct scsi_sgl_task_params
*rx_sgl_params
,
46 struct scsi_dif_task_params
*dif_task_params
);
48 /* @brief init_initiator_login_request_task - initializes iSCSI Initiator Login
49 * Request task context.
51 * @param task_params - Pointer to task parameters struct
52 * @param login_req_pdu_header - PDU Header Parameters
53 * @param tx_sgl_task_params - Pointer to SGL task params
54 * @param rx_sgl_task_params - Pointer to SGL task params
56 int init_initiator_login_request_task(struct iscsi_task_params
*task_params
,
57 struct iscsi_login_req_hdr
*login_header
,
58 struct scsi_sgl_task_params
*tx_params
,
59 struct scsi_sgl_task_params
*rx_params
);
61 /* @brief init_initiator_nop_out_task - initializes iSCSI Initiator NOP Out
64 * @param task_params - Pointer to task parameters struct
65 * @param nop_out_pdu_header - PDU Header Parameters
66 * @param tx_sgl_task_params - Pointer to SGL task params
67 * @param rx_sgl_task_params - Pointer to SGL task params
69 int init_initiator_nop_out_task(struct iscsi_task_params
*task_params
,
70 struct iscsi_nop_out_hdr
*nop_out_pdu_header
,
71 struct scsi_sgl_task_params
*tx_sgl_params
,
72 struct scsi_sgl_task_params
*rx_sgl_params
);
74 /* @brief init_initiator_logout_request_task - initializes iSCSI Initiator
75 * Logout Request task context.
77 * @param task_params - Pointer to task parameters struct
78 * @param logout_pdu_header - PDU Header Parameters
79 * @param tx_sgl_task_params - Pointer to SGL task params
80 * @param rx_sgl_task_params - Pointer to SGL task params
82 int init_initiator_logout_request_task(struct iscsi_task_params
*task_params
,
83 struct iscsi_logout_req_hdr
*logout_hdr
,
84 struct scsi_sgl_task_params
*tx_params
,
85 struct scsi_sgl_task_params
*rx_params
);
87 /* @brief init_initiator_tmf_request_task - initializes iSCSI Initiator TMF
90 * @param task_params - Pointer to task parameters struct
91 * @param tmf_pdu_header - PDU Header Parameters
93 int init_initiator_tmf_request_task(struct iscsi_task_params
*task_params
,
94 struct iscsi_tmf_request_hdr
*tmf_header
);
96 /* @brief init_initiator_text_request_task - initializes iSCSI Initiator Text
97 * Request task context.
99 * @param task_params - Pointer to task parameters struct
100 * @param text_request_pdu_header - PDU Header Parameters
101 * @param tx_sgl_task_params - Pointer to Tx SGL task params
102 * @param rx_sgl_task_params - Pointer to Rx SGL task params
104 int init_initiator_text_request_task(struct iscsi_task_params
*task_params
,
105 struct iscsi_text_request_hdr
*text_header
,
106 struct scsi_sgl_task_params
*tx_params
,
107 struct scsi_sgl_task_params
*rx_params
);
109 /* @brief init_cleanup_task - initializes Clean task (SQE)
111 * @param task_params - Pointer to task parameters struct
113 int init_cleanup_task(struct iscsi_task_params
*task_params
);