| /* SPDX-License-Identifier: GPL-2.0-only */ | 
 | /* | 
 |  * QLogic iSCSI Offload Driver | 
 |  * Copyright (c) 2016 Cavium Inc. | 
 |  */ | 
 |  | 
 | #ifndef _QEDI_FW_ISCSI_H_ | 
 | #define _QEDI_FW_ISCSI_H_ | 
 |  | 
 | #include "qedi_fw_scsi.h" | 
 |  | 
 | struct iscsi_task_params { | 
 | 	struct e4_iscsi_task_context *context; | 
 | 	struct iscsi_wqe	  *sqe; | 
 | 	u32			  tx_io_size; | 
 | 	u32			  rx_io_size; | 
 | 	u16			  conn_icid; | 
 | 	u16			  itid; | 
 | 	u8			  cq_rss_number; | 
 | }; | 
 |  | 
 | struct iscsi_conn_params { | 
 | 	u32	first_burst_length; | 
 | 	u32	max_send_pdu_length; | 
 | 	u32	max_burst_length; | 
 | 	bool	initial_r2t; | 
 | 	bool	immediate_data; | 
 | }; | 
 |  | 
 | /* @brief init_initiator_read_iscsi_task - initializes iSCSI Initiator Read | 
 |  * task context. | 
 |  * | 
 |  * @param task_params	  - Pointer to task parameters struct | 
 |  * @param conn_params	  - Connection Parameters | 
 |  * @param cmd_params	  - command specific parameters | 
 |  * @param cmd_pdu_header  - PDU Header Parameters | 
 |  * @param sgl_task_params - Pointer to SGL task params | 
 |  * @param dif_task_params - Pointer to DIF parameters struct | 
 |  */ | 
 | int init_initiator_rw_iscsi_task(struct iscsi_task_params *task_params, | 
 | 				 struct iscsi_conn_params *conn_params, | 
 | 				 struct scsi_initiator_cmd_params *cmd_params, | 
 | 				 struct iscsi_cmd_hdr *cmd_pdu_header, | 
 | 				 struct scsi_sgl_task_params *tx_sgl_params, | 
 | 				 struct scsi_sgl_task_params *rx_sgl_params, | 
 | 				 struct scsi_dif_task_params *dif_task_params); | 
 |  | 
 | /* @brief init_initiator_login_request_task - initializes iSCSI Initiator Login | 
 |  * Request task context. | 
 |  * | 
 |  * @param task_params		  - Pointer to task parameters struct | 
 |  * @param login_req_pdu_header    - PDU Header Parameters | 
 |  * @param tx_sgl_task_params	  - Pointer to SGL task params | 
 |  * @param rx_sgl_task_params	  - Pointer to SGL task params | 
 |  */ | 
 | int init_initiator_login_request_task(struct iscsi_task_params *task_params, | 
 | 				      struct iscsi_login_req_hdr *login_header, | 
 | 				      struct scsi_sgl_task_params *tx_params, | 
 | 				      struct scsi_sgl_task_params *rx_params); | 
 |  | 
 | /* @brief init_initiator_nop_out_task - initializes iSCSI Initiator NOP Out | 
 |  * task context. | 
 |  * | 
 |  * @param task_params		- Pointer to task parameters struct | 
 |  * @param nop_out_pdu_header    - PDU Header Parameters | 
 |  * @param tx_sgl_task_params	- Pointer to SGL task params | 
 |  * @param rx_sgl_task_params	- Pointer to SGL task params | 
 |  */ | 
 | int init_initiator_nop_out_task(struct iscsi_task_params *task_params, | 
 | 				struct iscsi_nop_out_hdr *nop_out_pdu_header, | 
 | 				struct scsi_sgl_task_params *tx_sgl_params, | 
 | 				struct scsi_sgl_task_params *rx_sgl_params); | 
 |  | 
 | /* @brief init_initiator_logout_request_task - initializes iSCSI Initiator | 
 |  * Logout Request task context. | 
 |  * | 
 |  * @param task_params		- Pointer to task parameters struct | 
 |  * @param logout_pdu_header  - PDU Header Parameters | 
 |  * @param tx_sgl_task_params	- Pointer to SGL task params | 
 |  * @param rx_sgl_task_params	- Pointer to SGL task params | 
 |  */ | 
 | int init_initiator_logout_request_task(struct iscsi_task_params *task_params, | 
 | 				       struct iscsi_logout_req_hdr *logout_hdr, | 
 | 				       struct scsi_sgl_task_params *tx_params, | 
 | 				       struct scsi_sgl_task_params *rx_params); | 
 |  | 
 | /* @brief init_initiator_tmf_request_task - initializes iSCSI Initiator TMF | 
 |  * task context. | 
 |  * | 
 |  * @param task_params	- Pointer to task parameters struct | 
 |  * @param tmf_pdu_header - PDU Header Parameters | 
 |  */ | 
 | int init_initiator_tmf_request_task(struct iscsi_task_params *task_params, | 
 | 				    struct iscsi_tmf_request_hdr *tmf_header); | 
 |  | 
 | /* @brief init_initiator_text_request_task - initializes iSCSI Initiator Text | 
 |  * Request task context. | 
 |  * | 
 |  * @param task_params		     - Pointer to task parameters struct | 
 |  * @param text_request_pdu_header    - PDU Header Parameters | 
 |  * @param tx_sgl_task_params	     - Pointer to Tx SGL task params | 
 |  * @param rx_sgl_task_params	     - Pointer to Rx SGL task params | 
 |  */ | 
 | int init_initiator_text_request_task(struct iscsi_task_params *task_params, | 
 | 				     struct iscsi_text_request_hdr *text_header, | 
 | 				     struct scsi_sgl_task_params *tx_params, | 
 | 				     struct scsi_sgl_task_params *rx_params); | 
 |  | 
 | /* @brief init_cleanup_task - initializes Clean task (SQE) | 
 |  * | 
 |  * @param task_params - Pointer to task parameters struct | 
 |  */ | 
 | int init_cleanup_task(struct iscsi_task_params *task_params); | 
 | #endif |