FreeBSD/sys/dev/isci/scil/scif_sas_remote_device_state_handlers.c
/**
 * @brief This method provides STOPPING state handling for high priority
 *        IO requests, when the framework attempts to complete a high
 *        priority request.
 *
 * @param[in]  remote_device This parameter specifies the remote device
 *             object for which to complete the high priority IO.
 * @param[in]  io_request This parameter specifies the IO request to be
 *             completed.
 * @param[in]  response_data This parameter is ignored, since the device
 *             is in the stopping state.
 *
 * @return This method always returns success.
 */
@brief This method provides STOPPING state handling for high priority
IO requests, when the framework attempts to complete a high
priority request.

@param[in]  remote_device This parameter specifies the remote device
object for which to complete the high priority IO.
@param[in]  io_request This parameter specifies the IO request to be
completed.
@param[in]  response_data This parameter is ignored, since the device
is in the stopping state.

@return This method always returns success.
@brief This method provides STOPPING state handling for high priority IO requests when the framework attempts to complete a high priority request . @param [ in ] remote_device This parameter specifies the remote device object for which to complete the high priority IO . @param [ in ] io_request This parameter specifies the IO request to be completed . @param [ in ] response_data This parameter is ignored since the device is in the stopping state . @return This method always returns success .
static
SCI_STATUS scif_sas_remote_device_stopping_complete_high_priority_io_handler(
   SCI_BASE_REMOTE_DEVICE_T * remote_device,
   SCI_BASE_REQUEST_T       * io_request,
   void                     * response_data,
   SCI_IO_STATUS              completion_status
)
{
   SCIF_SAS_REMOTE_DEVICE_T * fw_device = (SCIF_SAS_REMOTE_DEVICE_T *)
                                          remote_device;
   SCIF_SAS_REQUEST_T       * fw_request = (SCIF_SAS_REQUEST_T *) io_request;
   SCIF_LOG_TRACE((
      sci_base_object_get_logger(remote_device),
      SCIF_LOG_OBJECT_REMOTE_DEVICE | SCIF_LOG_OBJECT_IO_REQUEST,
      "scif_sas_remote_device_stopping_complete_high_priority_io_handler(0x%x,0x%x,0x%x) enter\n",
      remote_device, io_request, response_data
   ));
   fw_device->request_count--;
   if (fw_request->is_internal == TRUE)
   {
      scif_sas_internal_io_request_complete(
         fw_device->domain->controller,
         (SCIF_SAS_INTERNAL_IO_REQUEST_T *) io_request,
         SCI_SUCCESS
      );
   }
   return SCI_SUCCESS;
}
static SCI_STATUS scif_sas_remote_device_stopping_complete_high_priority_io_handler ( SCI_BASE_REMOTE_DEVICE_T * remote_device , SCI_BASE_REQUEST_T * io_request , void * response_data , SCI_IO_STATUS completion_status ) { SCIF_SAS_REMOTE_DEVICE_T * fw_device = ( SCIF_SAS_REMOTE_DEVICE_T * ) remote_device ; SCIF_SAS_REQUEST_T * fw_request = ( SCIF_SAS_REQUEST_T * ) io_request ; SCIF_LOG_TRACE ( ( sci_base_object_get_logger ( remote_device ) , SCIF_LOG_OBJECT_REMOTE_DEVICE | SCIF_LOG_OBJECT_IO_REQUEST , " \n " , remote_device , io_request , response_data ) ) ; fw_device -> request_count -- ; if ( fw_request -> is_internal == TRUE ) { scif_sas_internal_io_request_complete ( fw_device -> domain -> controller , ( SCIF_SAS_INTERNAL_IO_REQUEST_T * ) io_request , SCI_SUCCESS ) ; } return SCI_SUCCESS ; }
@brief This method provides STOPPING state handling for high priority
        IO requests, when the framework attempts to complete a high
        priority request.
@brief This method provides STOPPING state handling for high priority IO requests when the framework attempts to complete a high priority request .