FreeBSD/sys/dev/isci/scil/scic_sds_controller.c
/**
 * This method implements the actions taken by the SCIC_SDS_CONTROLLER on
 * entry to the SCI_BASE_CONTROLLER_STATE_READY.
 *    - Set the state handlers to the controllers ready state.
 *    - Stop all of the remote devices on this controller
 *    - Stop the ports on this controller
 *    - Stop the phys on this controller
 *
 * @param[in] object This is the SCI_BASE_OBJECT which is cast to a
 *       SCIC_SDS_CONTROLLER object.
 *
 * @return none
 */
This method implements the actions taken by the SCIC_SDS_CONTROLLER on
entry to the SCI_BASE_CONTROLLER_STATE_READY.
- Set the state handlers to the controllers ready state.
- Stop all of the remote devices on this controller
- Stop the ports on this controller
- Stop the phys on this controller

@param[in] object This is the SCI_BASE_OBJECT which is cast to a
SCIC_SDS_CONTROLLER object.

@return none
This method implements the actions taken by the SCIC_SDS_CONTROLLER on entry to the SCI_BASE_CONTROLLER_STATE_READY . - Set the state handlers to the controllers ready state . - Stop all of the remote devices on this controller - Stop the ports on this controller - Stop the phys on this controller @param [ in ] object This is the SCI_BASE_OBJECT which is cast to a SCIC_SDS_CONTROLLER object . @return none
static
void scic_sds_controller_stopping_state_enter(
   SCI_BASE_OBJECT_T *object
)
{
   SCIC_SDS_CONTROLLER_T *this_controller;
   this_controller= (SCIC_SDS_CONTROLLER_T *)object;
   scic_sds_controller_set_base_state_handlers(
      this_controller, SCI_BASE_CONTROLLER_STATE_STOPPING);
   scic_sds_controller_stop_devices(this_controller);
   scic_sds_controller_stop_ports(this_controller);
   if (!scic_sds_controller_has_remote_devices_stopping(this_controller))
   {
      sci_base_state_machine_change_state(
         &this_controller->parent.state_machine,
         SCI_BASE_CONTROLLER_STATE_STOPPED
      );
   }
}
static void scic_sds_controller_stopping_state_enter ( SCI_BASE_OBJECT_T * object ) { SCIC_SDS_CONTROLLER_T * this_controller ; this_controller = ( SCIC_SDS_CONTROLLER_T * ) object ; scic_sds_controller_set_base_state_handlers ( this_controller , SCI_BASE_CONTROLLER_STATE_STOPPING ) ; scic_sds_controller_stop_devices ( this_controller ) ; scic_sds_controller_stop_ports ( this_controller ) ; if ( ! scic_sds_controller_has_remote_devices_stopping ( this_controller ) ) { sci_base_state_machine_change_state ( & this_controller -> parent . state_machine , SCI_BASE_CONTROLLER_STATE_STOPPED ) ; } }
This method implements the actions taken by the SCIC_SDS_CONTROLLER on
 entry to the SCI_BASE_CONTROLLER_STATE_READY.
This method implements the actions taken by the SCIC_SDS_CONTROLLER on entry to the SCI_BASE_CONTROLLER_STATE_READY .
// Stop all of the components for this controller in the reverse order // from which they are initialized.