1*3287e96aSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */ 2be086e7cSMintz, Yuval /* 3be086e7cSMintz, Yuval * QLogic iSCSI Offload Driver 4be086e7cSMintz, Yuval * Copyright (c) 2016 Cavium Inc. 5be086e7cSMintz, Yuval */ 6be086e7cSMintz, Yuval 7be086e7cSMintz, Yuval #ifndef _QEDI_FW_ISCSI_H_ 8be086e7cSMintz, Yuval #define _QEDI_FW_ISCSI_H_ 9be086e7cSMintz, Yuval 10be086e7cSMintz, Yuval #include "qedi_fw_scsi.h" 11be086e7cSMintz, Yuval 12be086e7cSMintz, Yuval struct iscsi_task_params { 1321dd79e8STomer Tayar struct e4_iscsi_task_context *context; 14be086e7cSMintz, Yuval struct iscsi_wqe *sqe; 15be086e7cSMintz, Yuval u32 tx_io_size; 16be086e7cSMintz, Yuval u32 rx_io_size; 17be086e7cSMintz, Yuval u16 conn_icid; 18be086e7cSMintz, Yuval u16 itid; 19be086e7cSMintz, Yuval u8 cq_rss_number; 20be086e7cSMintz, Yuval }; 21be086e7cSMintz, Yuval 22be086e7cSMintz, Yuval struct iscsi_conn_params { 23be086e7cSMintz, Yuval u32 first_burst_length; 24be086e7cSMintz, Yuval u32 max_send_pdu_length; 25be086e7cSMintz, Yuval u32 max_burst_length; 26be086e7cSMintz, Yuval bool initial_r2t; 27be086e7cSMintz, Yuval bool immediate_data; 28be086e7cSMintz, Yuval }; 29be086e7cSMintz, Yuval 30be086e7cSMintz, Yuval /* @brief init_initiator_read_iscsi_task - initializes iSCSI Initiator Read 31be086e7cSMintz, Yuval * task context. 32be086e7cSMintz, Yuval * 33be086e7cSMintz, Yuval * @param task_params - Pointer to task parameters struct 34be086e7cSMintz, Yuval * @param conn_params - Connection Parameters 35be086e7cSMintz, Yuval * @param cmd_params - command specific parameters 36be086e7cSMintz, Yuval * @param cmd_pdu_header - PDU Header Parameters 37be086e7cSMintz, Yuval * @param sgl_task_params - Pointer to SGL task params 38be086e7cSMintz, Yuval * @param dif_task_params - Pointer to DIF parameters struct 39be086e7cSMintz, Yuval */ 40be086e7cSMintz, Yuval int init_initiator_rw_iscsi_task(struct iscsi_task_params *task_params, 41be086e7cSMintz, Yuval struct iscsi_conn_params *conn_params, 42be086e7cSMintz, Yuval struct scsi_initiator_cmd_params *cmd_params, 43be086e7cSMintz, Yuval struct iscsi_cmd_hdr *cmd_pdu_header, 44be086e7cSMintz, Yuval struct scsi_sgl_task_params *tx_sgl_params, 45be086e7cSMintz, Yuval struct scsi_sgl_task_params *rx_sgl_params, 46be086e7cSMintz, Yuval struct scsi_dif_task_params *dif_task_params); 47be086e7cSMintz, Yuval 48be086e7cSMintz, Yuval /* @brief init_initiator_login_request_task - initializes iSCSI Initiator Login 49be086e7cSMintz, Yuval * Request task context. 50be086e7cSMintz, Yuval * 51be086e7cSMintz, Yuval * @param task_params - Pointer to task parameters struct 52be086e7cSMintz, Yuval * @param login_req_pdu_header - PDU Header Parameters 53be086e7cSMintz, Yuval * @param tx_sgl_task_params - Pointer to SGL task params 54be086e7cSMintz, Yuval * @param rx_sgl_task_params - Pointer to SGL task params 55be086e7cSMintz, Yuval */ 56be086e7cSMintz, Yuval int init_initiator_login_request_task(struct iscsi_task_params *task_params, 57be086e7cSMintz, Yuval struct iscsi_login_req_hdr *login_header, 58be086e7cSMintz, Yuval struct scsi_sgl_task_params *tx_params, 59be086e7cSMintz, Yuval struct scsi_sgl_task_params *rx_params); 60be086e7cSMintz, Yuval 61be086e7cSMintz, Yuval /* @brief init_initiator_nop_out_task - initializes iSCSI Initiator NOP Out 62be086e7cSMintz, Yuval * task context. 63be086e7cSMintz, Yuval * 64be086e7cSMintz, Yuval * @param task_params - Pointer to task parameters struct 65be086e7cSMintz, Yuval * @param nop_out_pdu_header - PDU Header Parameters 66be086e7cSMintz, Yuval * @param tx_sgl_task_params - Pointer to SGL task params 67be086e7cSMintz, Yuval * @param rx_sgl_task_params - Pointer to SGL task params 68be086e7cSMintz, Yuval */ 69be086e7cSMintz, Yuval int init_initiator_nop_out_task(struct iscsi_task_params *task_params, 70be086e7cSMintz, Yuval struct iscsi_nop_out_hdr *nop_out_pdu_header, 71be086e7cSMintz, Yuval struct scsi_sgl_task_params *tx_sgl_params, 72be086e7cSMintz, Yuval struct scsi_sgl_task_params *rx_sgl_params); 73be086e7cSMintz, Yuval 74be086e7cSMintz, Yuval /* @brief init_initiator_logout_request_task - initializes iSCSI Initiator 75be086e7cSMintz, Yuval * Logout Request task context. 76be086e7cSMintz, Yuval * 77be086e7cSMintz, Yuval * @param task_params - Pointer to task parameters struct 78be086e7cSMintz, Yuval * @param logout_pdu_header - PDU Header Parameters 79be086e7cSMintz, Yuval * @param tx_sgl_task_params - Pointer to SGL task params 80be086e7cSMintz, Yuval * @param rx_sgl_task_params - Pointer to SGL task params 81be086e7cSMintz, Yuval */ 82be086e7cSMintz, Yuval int init_initiator_logout_request_task(struct iscsi_task_params *task_params, 83be086e7cSMintz, Yuval struct iscsi_logout_req_hdr *logout_hdr, 84be086e7cSMintz, Yuval struct scsi_sgl_task_params *tx_params, 85be086e7cSMintz, Yuval struct scsi_sgl_task_params *rx_params); 86be086e7cSMintz, Yuval 87be086e7cSMintz, Yuval /* @brief init_initiator_tmf_request_task - initializes iSCSI Initiator TMF 88be086e7cSMintz, Yuval * task context. 89be086e7cSMintz, Yuval * 90be086e7cSMintz, Yuval * @param task_params - Pointer to task parameters struct 91be086e7cSMintz, Yuval * @param tmf_pdu_header - PDU Header Parameters 92be086e7cSMintz, Yuval */ 93be086e7cSMintz, Yuval int init_initiator_tmf_request_task(struct iscsi_task_params *task_params, 94be086e7cSMintz, Yuval struct iscsi_tmf_request_hdr *tmf_header); 95be086e7cSMintz, Yuval 96be086e7cSMintz, Yuval /* @brief init_initiator_text_request_task - initializes iSCSI Initiator Text 97be086e7cSMintz, Yuval * Request task context. 98be086e7cSMintz, Yuval * 99be086e7cSMintz, Yuval * @param task_params - Pointer to task parameters struct 100be086e7cSMintz, Yuval * @param text_request_pdu_header - PDU Header Parameters 101be086e7cSMintz, Yuval * @param tx_sgl_task_params - Pointer to Tx SGL task params 102be086e7cSMintz, Yuval * @param rx_sgl_task_params - Pointer to Rx SGL task params 103be086e7cSMintz, Yuval */ 104be086e7cSMintz, Yuval int init_initiator_text_request_task(struct iscsi_task_params *task_params, 105be086e7cSMintz, Yuval struct iscsi_text_request_hdr *text_header, 106be086e7cSMintz, Yuval struct scsi_sgl_task_params *tx_params, 107be086e7cSMintz, Yuval struct scsi_sgl_task_params *rx_params); 108be086e7cSMintz, Yuval 109be086e7cSMintz, Yuval /* @brief init_cleanup_task - initializes Clean task (SQE) 110be086e7cSMintz, Yuval * 111be086e7cSMintz, Yuval * @param task_params - Pointer to task parameters struct 112be086e7cSMintz, Yuval */ 113be086e7cSMintz, Yuval int init_cleanup_task(struct iscsi_task_params *task_params); 114be086e7cSMintz, Yuval #endif 115