FreeBSD/sys/dev/isci/scil/scic_sds_remote_device.c
/**
 * This method takes the SCIC_SDS_REMOTE_DEVICE from a stopped state and
 * attempts to start it.   The RNC buffer for the device is constructed and
 * the device state machine is transitioned to the
 * SCIC_BASE_REMOTE_DEVICE_STATE_STARTING.
 *
 * @param[in] device
 *
 * @return SCI_STATUS
 * @retval SCI_SUCCESS if there is an RNC buffer available to construct the
 *         remote device.
 * @retval SCI_FAILURE_INSUFFICIENT_RESOURCES if there is no RNC buffer
 *         available in which to construct the remote device.
 */
This method takes the SCIC_SDS_REMOTE_DEVICE from a stopped state and
attempts to start it.   The RNC buffer for the device is constructed and
the device state machine is transitioned to the
SCIC_BASE_REMOTE_DEVICE_STATE_STARTING.

@param[in] device

@return SCI_STATUS
@retval SCI_SUCCESS if there is an RNC buffer available to construct the
remote device.
@retval SCI_FAILURE_INSUFFICIENT_RESOURCES if there is no RNC buffer
available in which to construct the remote device.
This method takes the SCIC_SDS_REMOTE_DEVICE from a stopped state and attempts to start it . The RNC buffer for the device is constructed and the device state machine is transitioned to the SCIC_BASE_REMOTE_DEVICE_STATE_STARTING . @param [ in ] device @return SCI_STATUS @retval SCI_SUCCESS if there is an RNC buffer available to construct the remote device . @retval SCI_FAILURE_INSUFFICIENT_RESOURCES if there is no RNC buffer available in which to construct the remote device .
static
SCI_STATUS scic_sds_remote_device_stopped_state_start_handler(
   SCI_BASE_REMOTE_DEVICE_T *device
)
{
   SCI_STATUS status;
   SCIC_SDS_REMOTE_DEVICE_T  *this_device = (SCIC_SDS_REMOTE_DEVICE_T *)device;
   status = scic_sds_remote_node_context_resume(
               this_device->rnc,
               scic_sds_remote_device_resume_complete_handler,
               this_device
            );
   if (status == SCI_SUCCESS)
   {
      sci_base_state_machine_change_state(
         scic_sds_remote_device_get_base_state_machine(this_device),
         SCI_BASE_REMOTE_DEVICE_STATE_STARTING
      );
   }
   return status;
}
static SCI_STATUS scic_sds_remote_device_stopped_state_start_handler ( SCI_BASE_REMOTE_DEVICE_T * device ) { SCI_STATUS status ; SCIC_SDS_REMOTE_DEVICE_T * this_device = ( SCIC_SDS_REMOTE_DEVICE_T * ) device ; status = scic_sds_remote_node_context_resume ( this_device -> rnc , scic_sds_remote_device_resume_complete_handler , this_device ) ; if ( status == SCI_SUCCESS ) { sci_base_state_machine_change_state ( scic_sds_remote_device_get_base_state_machine ( this_device ) , SCI_BASE_REMOTE_DEVICE_STATE_STARTING ) ; } return status ; }
This method takes the SCIC_SDS_REMOTE_DEVICE from a stopped state and
 attempts to start it.
This method takes the SCIC_SDS_REMOTE_DEVICE from a stopped state and attempts to start it .