| /* 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 |