Skip to content

Commit

Permalink
isci: uplevel state machine
Browse files Browse the repository at this point in the history
unify core/sci_base_state.h and core/sci_base_state_machine.[ch] into
state_machine.[ch]

Reported-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
  • Loading branch information
Dan Williams committed Jul 3, 2011
1 parent 63a3a15 commit 3bff9d5
Show file tree
Hide file tree
Showing 15 changed files with 31 additions and 116 deletions.
2 changes: 1 addition & 1 deletion drivers/scsi/isci/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ obj-$(CONFIG_SCSI_ISCI) += isci.o
isci-objs := init.o phy.o request.o sata.o \
remote_device.o port.o timers.o \
host.o task.o probe_roms.o \
state_machine.o \
remote_node_context.o \
remote_node_table.o \
unsolicited_frame_control.o \
Expand All @@ -13,5 +14,4 @@ isci-objs := init.o phy.o request.o sata.o \
core/scic_sds_phy.o \
core/scic_sds_ssp_request.o \
core/scic_sds_smp_request.o \
core/sci_base_state_machine.o \
core/sci_util.o
84 changes: 0 additions & 84 deletions drivers/scsi/isci/core/sci_base_state.h

This file was deleted.

3 changes: 1 addition & 2 deletions drivers/scsi/isci/core/scic_sds_phy.c
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,7 @@
#include <scsi/sas.h>
#include "sas.h"
#include "host.h"
#include "sci_base_state.h"
#include "sci_base_state_machine.h"
#include "state_machine.h"
#include "scic_phy.h"
#include "scic_sds_phy.h"
#include "scic_sds_port.h"
Expand Down
2 changes: 1 addition & 1 deletion drivers/scsi/isci/core/scic_sds_phy.h
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@
#include "sas.h"
#include "scic_phy.h"
#include "registers.h"
#include "sci_base_state_machine.h"
#include "state_machine.h"
#include <scsi/libsas.h>

struct scic_sds_port;
Expand Down
2 changes: 1 addition & 1 deletion drivers/scsi/isci/core/scic_sds_port.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@
#include "isci.h"
#include "sas.h"
#include "registers.h"
#include "sci_base_state_machine.h"
#include "state_machine.h"

struct scic_sds_controller;
struct scic_sds_phy;
Expand Down
2 changes: 1 addition & 1 deletion drivers/scsi/isci/core/scic_sds_request.h
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@

#include "isci.h"
#include "scic_io_request.h"
#include "sci_base_state_machine.h"
#include "state_machine.h"
#include "scu_task_context.h"
#include "scic_sds_stp_request.h"
#include "sas.h"
Expand Down
2 changes: 1 addition & 1 deletion drivers/scsi/isci/core/scic_sds_smp_request.c
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@
*/

#include <scsi/sas.h>
#include "sci_base_state_machine.h"
#include "state_machine.h"
#include "remote_device.h"
#include "scic_sds_request.h"
#include "scic_sds_smp_request.h"
Expand Down
2 changes: 1 addition & 1 deletion drivers/scsi/isci/core/scic_sds_ssp_request.c
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@
*/

#include "host.h"
#include "sci_base_state_machine.h"
#include "state_machine.h"
#include "scic_sds_request.h"
#include "scu_completion_codes.h"
#include "scu_task_context.h"
Expand Down
1 change: 0 additions & 1 deletion drivers/scsi/isci/core/scic_sds_stp_pio_request.h
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,6 @@
#ifndef _SCIC_SDS_SATA_PIO_REQUEST_H_
#define _SCIC_SDS_SATA_PIO_REQUEST_H_

#include "sci_base_state.h"
#include "scic_sds_request.h"
#include "scu_task_context.h"

Expand Down
3 changes: 1 addition & 2 deletions drivers/scsi/isci/core/scic_sds_stp_request.c
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,7 @@

#include <scsi/sas.h>
#include "sas.h"
#include "sci_base_state.h"
#include "sci_base_state_machine.h"
#include "state_machine.h"
#include "scic_io_request.h"
#include "remote_device.h"
#include "scic_sds_request.h"
Expand Down
2 changes: 1 addition & 1 deletion drivers/scsi/isci/host.h
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@
#include "remote_device.h"
#include "phy.h"
#include "pool.h"
#include "sci_base_state_machine.h"
#include "state_machine.h"
#include "remote_node_table.h"
#include "registers.h"
#include "scu_unsolicited_frame.h"
Expand Down
2 changes: 1 addition & 1 deletion drivers/scsi/isci/remote_node_context.c
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@
*/

#include "host.h"
#include "sci_base_state_machine.h"
#include "state_machine.h"
#include "scic_sds_port.h"
#include "remote_device.h"
#include "remote_node_context.h"
Expand Down
3 changes: 1 addition & 2 deletions drivers/scsi/isci/remote_node_context.h
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,7 @@
*
*/

#include "sci_base_state.h"
#include "sci_base_state_machine.h"
#include "state_machine.h"

/**
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@
*
*/

#include "sci_base_state_machine.h"
#include "state_machine.h"

static void sci_state_machine_exit_state(struct sci_base_state_machine *sm)
{
Expand Down Expand Up @@ -121,9 +121,6 @@ void sci_base_state_machine_construct(struct sci_base_state_machine *sm,
void sci_base_state_machine_start(struct sci_base_state_machine *sm)
{
sm->current_state_id = sm->initial_state_id;
#if defined(SCI_BASE_ENABLE_SUBJECT_NOTIFICATION)
sci_base_subject_notify(&sm->parent);
#endif
sci_state_machine_enter_state(sm);
}

Expand All @@ -137,9 +134,6 @@ void sci_base_state_machine_stop(
struct sci_base_state_machine *sm)
{
sci_state_machine_exit_state(sm);
#if defined(SCI_BASE_ENABLE_SUBJECT_NOTIFICATION)
sci_base_subject_notify(&sm->parent);
#endif
}

/**
Expand All @@ -158,11 +152,6 @@ void sci_base_state_machine_change_state(
sm->previous_state_id = sm->current_state_id;
sm->current_state_id = next_state;

#if defined(SCI_BASE_ENABLE_SUBJECT_NOTIFICATION)
/* Notify of the state change prior to entering the state. */
sci_base_subject_notify(&sm->parent);
#endif

sci_state_machine_enter_state(sm);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,18 +56,32 @@
#ifndef _SCI_BASE_STATE_MACHINE_H_
#define _SCI_BASE_STATE_MACHINE_H_

#include <linux/string.h>
#include <linux/types.h>

typedef void (*sci_base_state_handler_t)(void);

typedef void (*sci_state_transition_t)(void *base_object);

/**
* This file contains all structures, constants, or method declarations common
* to all state machines defined in SCI.
* struct sci_base_state - The base state object abstracts the fields common to
* all state objects defined in SCI.
*
*
*/
struct sci_base_state {
/**
* This field is a function pointer that defines the method to be
* invoked when the state is entered.
*/
sci_state_transition_t enter_state;

/**
* This field is a function pointer that defines the method to be
* invoked when the state is exited.
*/
sci_state_transition_t exit_state;

#include "sci_base_state.h"

};

/**
* SET_STATE_HANDLER() -
Expand Down

0 comments on commit 3bff9d5

Please sign in to comment.