FreeBSD/sys/dev/isci/scil/scic_sds_stp_remote_device.c
/**
 * This method will handle the event for a ATAPI device that is in
 * the ATAPI ERROR state. We pick up suspension events to handle specifically
 * to this state. We resume the RNC right away. We then complete the outstanding
 * IO to this device.
 *
 * @param [in] device The device received event.
 * @param [in] event_code The event code.
 *
 * @return SCI_STATUS
 */
This method will handle the event for a ATAPI device that is in
the ATAPI ERROR state. We pick up suspension events to handle specifically
to this state. We resume the RNC right away. We then complete the outstanding
IO to this device.

@param [in] device The device received event.
@param [in] event_code The event code.


This method will handle the event for a ATAPI device that is in the ATAPI ERROR state . We pick up suspension events to handle specifically to this state . We resume the RNC right away . We then complete the outstanding IO to this device . @param [ in ] device The device received event . @param [ in ] event_code The event code .
static
SCI_STATUS scic_sds_stp_remote_device_ready_atapi_error_substate_event_handler(
   SCIC_SDS_REMOTE_DEVICE_T * this_device,
   U32                        event_code
)
{
   SCI_STATUS status;
   status = scic_sds_remote_device_general_event_handler(this_device, event_code);
   if (status == SCI_SUCCESS)
   {
      if (scu_get_event_type(event_code) == SCU_EVENT_TYPE_RNC_SUSPEND_TX
          || scu_get_event_type(event_code) == SCU_EVENT_TYPE_RNC_SUSPEND_TX_RX)
      {
         status = scic_sds_remote_node_context_resume(
                     this_device->rnc,
                     (SCIC_SDS_REMOTE_NODE_CONTEXT_CALLBACK)
                        this_device->working_request->state_handlers->parent.complete_handler,
                     (void *)this_device->working_request
                  );
      }
   }
   return status;
}
static SCI_STATUS scic_sds_stp_remote_device_ready_atapi_error_substate_event_handler ( SCIC_SDS_REMOTE_DEVICE_T * this_device , U32 event_code ) { SCI_STATUS status ; status = scic_sds_remote_device_general_event_handler ( this_device , event_code ) ; if ( status == SCI_SUCCESS ) { if ( scu_get_event_type ( event_code ) == SCU_EVENT_TYPE_RNC_SUSPEND_TX || scu_get_event_type ( event_code ) == SCU_EVENT_TYPE_RNC_SUSPEND_TX_RX ) { status = scic_sds_remote_node_context_resume ( this_device -> rnc , ( SCIC_SDS_REMOTE_NODE_CONTEXT_CALLBACK ) this_device -> working_request -> state_handlers -> parent . complete_handler , ( void * ) this_device -> working_request ) ; } } return status ; }
This method will handle the event for a ATAPI device that is in
 the ATAPI ERROR state.
This method will handle the event for a ATAPI device that is in the ATAPI ERROR state .