OCS Linux SCSI API base driver implementation
Definition in file ocs_scsi.c.
|
| static int32_t | ocs_scsi_build_sgls (ocs_hal_t *hal, ocs_io_t *io, ocs_hal_dif_info_t *hal_dif, ocs_scsi_sgl_t *sgl, uint32_t sgl_count, ocs_hal_io_type_e type) |
| | Build the SGLs for the IO. More...
|
| |
| static int32_t | ocs_scsi_convert_dif_info (ocs_t *ocs, ocs_scsi_dif_info_t *scsi_dif_info, ocs_hal_dif_info_t *hal_dif_info) |
| | Convert SCSI API T10 DIF information into the FC HAL format. More...
|
| |
| static int32_t | ocs_scsi_check_pending (ocs_t *ocs) |
| | Check for pending IOs to dispatch. More...
|
| |
| static int32_t | ocs_scsi_io_dispatch_hal_io (ocs_io_t *io, ocs_hal_io_t *hio, uint8_t lock_held) |
| | Dispatch IO. More...
|
| |
| static void | ocs_target_nop_check (ocs_cxn_t *cxn) |
| | This function sends a target nop. More...
|
| |
| static void | ocs_target_io_aborted (ocs_io_t *io, ocs_cxn_t *cxn) |
| | This function is called when an IO is aborted. More...
|
| |
| void | ocs_target_io_aborted_nop_cmpl (ocs_cxn_t *cxn) |
| | This function is called whenever a target NOP completes. More...
|
| |
| static int32_t | ocs_target_io_cb (struct ocs_hal_io_s *hio, ocs_cxn_t *cxn, int32_t status, ocs_ini_cmpl_fields_t *ini_fields, void *ul_arg) |
| | This function is the callback for a target IO. More...
|
| |
| static void | ocs_log_sgl (ocs_io_t *io) |
| | This function logs the SGLs for an IO. More...
|
| |
| static int32_t | ocs_scsi_check_pending_async_cb (ocs_hal_t *hal, int32_t status, void *arg) |
| | Check pending error asynchronous callback function/. More...
|
| |
| static void | ocs_scsi_io_add_to_pending (ocs_t *ocs, ocs_io_t *io, uint8_t lock_held) |
| | Place an IO on the pending list to retry later when resources are available. More...
|
| |
| int32_t | ocs_scsi_io_dispatch (ocs_io_t *io, void *cb) |
| | Attempt to dispatch an IO. More...
|
| |
| void | ocs_scsi_pending_cleanup (ocs_node_t *node) |
| | Clean up any IOs on the pending list when a connection goes down. More...
|
| |
| int32_t | ocs_scsi_send_rd_data (ocs_io_t *io, uint32_t flags, ocs_scsi_dif_info_t *dif_info, ocs_scsi_sgl_t *sgl, uint32_t sgl_count, uint64_t wire_len, ocs_scsi_io_cb_t cb, void *arg) |
| | Send read data. More...
|
| |
| int32_t | ocs_scsi_recv_wr_data (ocs_io_t *io, uint32_t flags, ocs_scsi_dif_info_t *dif_info, ocs_scsi_sgl_t *sgl, uint32_t sgl_count, uint64_t wire_len, ocs_scsi_io_cb_t cb, void *arg) |
| | Prepare to receive write data. More...
|
| |
| int32_t | ocs_scsi_send_resp (ocs_io_t *io, uint32_t flags, ocs_scsi_cmd_resp_t *rsp, ocs_scsi_io_cb_t cb, void *arg) |
| | Send response data. More...
|
| |
| int32_t | ocs_scsi_tgt_abort_io (ocs_io_t *io, bool send_abts, ocs_scsi_io_cb_t cb, void *arg) |
| | Abort a target IO. More...
|
| |
| int32_t | ocs_scsi_send_tmf_resp (ocs_io_t *io, ocs_scsi_tmf_resp_e rspcode, uint8_t *addl_rsp_info, ocs_scsi_io_cb_t cb, void *arg) |
| | Send TMF response data. More...
|
| |
| int32_t | ocs_iscsi_send_tmf_resp (ocs_io_t *io, uint8_t response, ocs_scsi_io_cb_t cb, void *arg) |
| | send TMF response data More...
|
| |
| static int32_t | ocs_initiator_io_cb (struct ocs_hal_io_s *hio, ocs_cxn_t *cxn, int32_t status, ocs_ini_cmpl_fields_t *ini_fields, void *ul_arg) |
| | This function is the callback for a initiator IO. More...
|
| |
| static int32_t | ocs_initiator_io_tm_cb (struct ocs_hal_io_s *hio, ocs_cxn_t *cxn, int32_t status, ocs_ini_cmpl_fields_t *ini_fields, void *ul_arg) |
| | This function is the callback for a initiator TM IO. More...
|
| |
| static uint64_t | ocs_scsi_convert_lun (ocs_t *ocs, uint32_t lun) |
| | Sends an initiator command to the chip. More...
|
| |
| static int32_t | ocs_scsi_send_ini_io (ocs_node_t *node, ocs_io_t *io, ocs_hal_io_type_e io_type, uint32_t lun, void *cdb, uint32_t cdb_len, ocs_scsi_dif_info_t *dif_info, ocs_scsi_sgl_t *sgl, uint32_t sgl_count, uint32_t wire_len, ocs_scsi_rsp_io_cb_t cb, void *arg) |
| | Sends an initiator command to the chip. More...
|
| |
| int32_t | ocs_scsi_send_rd_io (ocs_node_t *node, ocs_io_t *io, uint32_t lun, void *cdb, uint32_t cdb_len, ocs_scsi_dif_info_t *dif_info, ocs_scsi_sgl_t *sgl, uint32_t sgl_count, uint32_t len, ocs_scsi_rsp_io_cb_t cb, void *arg) |
| | Initiate initiator read IO. More...
|
| |
| int32_t | ocs_scsi_send_nodata_io (ocs_node_t *node, ocs_io_t *io, uint32_t lun, void *cdb, uint32_t cdb_len, ocs_scsi_rsp_io_cb_t cb, void *arg) |
| | Initiate initiator SCSI command with no data. More...
|
| |
| int32_t | ocs_scsi_send_wr_io (ocs_node_t *node, ocs_io_t *io, uint32_t lun, void *cdb, uint32_t cdb_len, ocs_scsi_dif_info_t *dif_info, ocs_scsi_sgl_t *sgl, uint32_t sgl_count, uint32_t len, ocs_scsi_rsp_io_cb_t cb, void *arg) |
| | Initiate initiator write IO. More...
|
| |
| int32_t | ocs_scsi_send_wr_io_first_burst (ocs_node_t *node, ocs_io_t *io, uint32_t lun, void *cdb, uint32_t cdb_len, ocs_scsi_dif_info_t *dif_info, ocs_scsi_sgl_t *sgl, uint32_t sgl_count, uint32_t wire_len, uint32_t first_burst, ocs_scsi_rsp_io_cb_t cb, void *arg) |
| |
| static int32_t | ocs_scsi_send_tmf_internal (ocs_node_t *node, ocs_io_t *io, ocs_io_t *ref_io, uint32_t lun, ocs_scsi_tmf_cmd_e tmf, ocs_scsi_rsp_io_cb_t cb, void *arg) |
| | Sends a task management command on an initiator (internal). More...
|
| |
| int32_t | ocs_scsi_send_tmf (ocs_node_t *node, ocs_io_t *io, ocs_io_t *io_to_abort, uint32_t lun, ocs_scsi_tmf_cmd_e tmf, ocs_scsi_sgl_t *sgl, uint32_t sgl_count, uint32_t len, ocs_scsi_rsp_io_cb_t cb, void *arg) |
| | initiate initiator task management operation More...
|
| |
| void | ocs_scsi_io_complete (ocs_io_t *io) |
| | Notify base that IO is complete. More...
|
| |
| uint32_t | ocs_scsi_get_property (ocs_t *ocs, ocs_scsi_property_e prop) |
| | Return SCSI API integer valued property. More...
|
| |
| void * | ocs_scsi_get_property_ptr (ocs_t *ocs, ocs_scsi_property_e prop) |
| | return a property pointer. More...
|
| |
| ocs_io_t * | ocs_scsi_io_alloc (ocs_node_t *node, ocs_scsi_io_role_e role) |
| | allocate a SCSI IO context. More...
|
| |
| void | ocs_scsi_io_free (ocs_io_t *io) |
| | Free a SCSI IO context. More...
|
| |
| void | ocs_scsi_update_first_burst_transferred (ocs_io_t *io, uint32_t transferred) |
| | Update transferred count. More...
|
| |
| void | ocs_scsi_register_bounce (ocs_t *ocs, void(*fctn)(void(*fctn)(void *arg), void *arg, uint32_t s_id, uint32_t d_id, uint32_t ox_id)) |
| | Register bounce callback for multi-threading. More...
|
| |
| int | ocs_scsi_abort_io (ocs_hal_t *hal, ocs_hal_io_t *hio, ocs_hal_abort_type_e abort_type) |
| |
| bool | ocs_scsi_check_cxn_wq_full (ocs_t *ocs, ocs_cxn_t *cxn) |
| | Check Connection WQ's full status. More...
|
| |
| | OCS_EXPORT (ocs_scsi_io_alloc) |
| |
| | OCS_EXPORT (ocs_scsi_io_free) |
| |
| | OCS_EXPORT (ocs_scsi_send_rd_data) |
| |
| | OCS_EXPORT (ocs_scsi_recv_wr_data) |
| |
| | OCS_EXPORT (ocs_scsi_send_resp) |
| |
| | OCS_EXPORT (ocs_scsi_send_tmf_resp) |
| |
| | OCS_EXPORT (ocs_scsi_tgt_abort_io) |
| |
| | OCS_EXPORT (ocs_scsi_io_complete) |
| |
| | OCS_EXPORT (ocs_scsi_get_property) |
| |
| | OCS_EXPORT (ocs_scsi_get_property_ptr) |
| |
| | OCS_EXPORT (ocs_scsi_send_rd_io) |
| |
| | OCS_EXPORT (ocs_scsi_send_wr_io) |
| |
| | OCS_EXPORT (ocs_scsi_send_tmf) |
| |
| | OCS_EXPORT (ocs_scsi_send_nodata_io) |
| |
| | OCS_EXPORT (ocs_scsi_abort_io) |
| |
| | OCS_EXPORT (ocs_scsi_check_cxn_wq_full) |
| |