FreeBSD/sys/dev/isci/scil/scic_sds_remote_device.c
/**
 * This method will complete the request for the remote device object.  The
 * method will call the completion handler for the request object and if
 * successful it will complete the request on the port object then decrement
 * its own started_request_count.
 *
 * @param[in] device The SCI_BASE_REMOTE_DEVICE which is cast to a
 *       SCIC_SDS_REMOTE_DEVICE for which the request is to be completed.
 * @param[in] request The SCI_BASE_REQUEST which is cast to a
 *       SCIC_SDS_IO_REQUEST that is to be completed.
 *
 * @return SCI_STATUS
 */
This method will complete the request for the remote device object.  The
method will call the completion handler for the request object and if
successful it will complete the request on the port object then decrement
its own started_request_count.

@param[in] device The SCI_BASE_REMOTE_DEVICE which is cast to a
SCIC_SDS_REMOTE_DEVICE for which the request is to be completed.
@param[in] request The SCI_BASE_REQUEST which is cast to a
SCIC_SDS_IO_REQUEST that is to be completed.


This method will complete the request for the remote device object . The method will call the completion handler for the request object and if successful it will complete the request on the port object then decrement its own started_request_count . @param [ in ] device The SCI_BASE_REMOTE_DEVICE which is cast to a SCIC_SDS_REMOTE_DEVICE for which the request is to be completed . @param [ in ] request The SCI_BASE_REQUEST which is cast to a SCIC_SDS_IO_REQUEST that is to be completed .
static
SCI_STATUS scic_sds_remote_device_ready_state_complete_request_handler(
   SCI_BASE_REMOTE_DEVICE_T *device,
   SCI_BASE_REQUEST_T       *request
)
{
   SCI_STATUS result;
   SCIC_SDS_REMOTE_DEVICE_T *this_device = (SCIC_SDS_REMOTE_DEVICE_T *)device;
   SCIC_SDS_REQUEST_T       *the_request = (SCIC_SDS_REQUEST_T       *)request;
   result = scic_sds_request_complete(the_request);
   if (result == SCI_SUCCESS)
   {
      result = scic_sds_port_complete_io(
         scic_sds_remote_device_get_port(this_device), this_device, the_request);
      if (result == SCI_SUCCESS)
      {
         scic_sds_remote_device_decrement_request_count(this_device);
      }
   }
   return result;
}
static SCI_STATUS scic_sds_remote_device_ready_state_complete_request_handler ( SCI_BASE_REMOTE_DEVICE_T * device , SCI_BASE_REQUEST_T * request ) { SCI_STATUS result ; SCIC_SDS_REMOTE_DEVICE_T * this_device = ( SCIC_SDS_REMOTE_DEVICE_T * ) device ; SCIC_SDS_REQUEST_T * the_request = ( SCIC_SDS_REQUEST_T * ) request ; result = scic_sds_request_complete ( the_request ) ; if ( result == SCI_SUCCESS ) { result = scic_sds_port_complete_io ( scic_sds_remote_device_get_port ( this_device ) , this_device , the_request ) ; if ( result == SCI_SUCCESS ) { scic_sds_remote_device_decrement_request_count ( this_device ) ; } } return result ; }
This method will complete the request for the remote device object.
This method will complete the request for the remote device object .
// See if the port is in a state where we can start the IO request