* * SCIC SDS Interface Implementation
  * **************************************************************************** */
 
-/**
- *
- * @this_request: The SCIC_SDS_IO_REQUEST_T object for which the start
- *    operation is to be executed.
- *
- * This method invokes the base state start request handler for the
- * SCIC_SDS_IO_REQUEST_T object. enum sci_status
- */
 enum sci_status
 scic_sds_request_start(struct scic_sds_request *request)
 {
-       if (request->device_sequence ==
+       if (request->device_sequence !=
            scic_sds_remote_device_get_sequence(request->target_device))
+               return SCI_FAILURE;
+
+       if (request->state_handlers->start_handler)
                return request->state_handlers->start_handler(request);
-       return SCI_FAILURE;
+
+       dev_warn(scic_to_dev(request->owning_controller),
+                "%s: SCIC IO Request requested to start while in wrong "
+                "state %d\n",
+                __func__,
+                sci_base_state_machine_get_state(&request->state_machine));
+
+       return SCI_FAILURE_INVALID_STATE;
 }
 
-/**
- *
- * @this_request: The SCIC_SDS_IO_REQUEST_T object for which the start
- *    operation is to be executed.
- *
- * This method invokes the base state terminate request handber for the
- * SCIC_SDS_IO_REQUEST_T object. enum sci_status
- */
 enum sci_status
 scic_sds_io_request_terminate(struct scic_sds_request *request)
 {
-       return request->state_handlers->abort_handler(request);
+       if (request->state_handlers->abort_handler)
+               return request->state_handlers->abort_handler(request);
+
+       dev_warn(scic_to_dev(request->owning_controller),
+               "%s: SCIC IO Request requested to abort while in wrong "
+               "state %d\n",
+               __func__,
+               sci_base_state_machine_get_state(&request->state_machine));
+
+       return SCI_FAILURE_INVALID_STATE;
 }
 
-/**
- *
- * @this_request: The SCIC_SDS_IO_REQUEST_T object for which the start
- *    operation is to be executed.
- *
- * This method invokes the base state request completion handler for the
- * SCIC_SDS_IO_REQUEST_T object. enum sci_status
- */
 enum sci_status
 scic_sds_io_request_complete(struct scic_sds_request *request)
 {
-       return request->state_handlers->complete_handler(request);
+       if (request->state_handlers->complete_handler)
+               return request->state_handlers->complete_handler(request);
+
+       dev_warn(scic_to_dev(request->owning_controller),
+               "%s: SCIC IO Request requested to complete while in wrong "
+               "state %d\n",
+               __func__,
+               sci_base_state_machine_get_state(&request->state_machine));
+
+       return SCI_FAILURE_INVALID_STATE;
 }
 
-/**
- *
- * @this_request: The SCIC_SDS_IO_REQUEST_T object for which the start
- *    operation is to be executed.
- * @event_code: The event code returned by the hardware for the task reqeust.
- *
- * This method invokes the core state handler for the SCIC_SDS_IO_REQUEST_T
- * object. enum sci_status
- */
 enum sci_status scic_sds_io_request_event_handler(
-       struct scic_sds_request *this_request,
+       struct scic_sds_request *request,
        u32 event_code)
 {
-       return this_request->state_handlers->event_handler(this_request, event_code);
+       if (request->state_handlers->event_handler)
+               return request->state_handlers->event_handler(request, event_code);
+
+       dev_warn(scic_to_dev(request->owning_controller),
+                "%s: SCIC IO Request given event code notification %x while "
+                "in wrong state %d\n",
+                __func__,
+                event_code,
+                sci_base_state_machine_get_state(&request->state_machine));
+
+       return SCI_FAILURE_INVALID_STATE;
 }
 
+enum sci_status
+scic_sds_io_request_tc_completion(struct scic_sds_request *request, u32 completion_code)
+{
+       if (request->state_machine.current_state_id == SCI_BASE_REQUEST_STATE_STARTED &&
+           request->has_started_substate_machine == false)
+               return scic_sds_request_started_state_tc_completion_handler(request, completion_code);
+       else if (request->state_handlers->tc_completion_handler)
+               return request->state_handlers->tc_completion_handler(request, completion_code);
+
+       dev_warn(scic_to_dev(request->owning_controller),
+               "%s: SCIC IO Request given task completion notification %x "
+               "while in wrong state %d\n",
+               __func__,
+               completion_code,
+               sci_base_state_machine_get_state(&request->state_machine));
+
+       return SCI_FAILURE_INVALID_STATE;
+
+}
+
+
 /**
  *
  * @this_request: The SCIC_SDS_IO_REQUEST_T object for which the start
  * SCIC_SDS_IO_REQUEST_T object. enum sci_status
  */
 enum sci_status scic_sds_io_request_frame_handler(
-       struct scic_sds_request *this_request,
+       struct scic_sds_request *request,
        u32 frame_index)
 {
-       return this_request->state_handlers->frame_handler(this_request, frame_index);
+       if (request->state_handlers->frame_handler)
+               return request->state_handlers->frame_handler(request, frame_index);
+
+       dev_warn(scic_to_dev(request->owning_controller),
+                "%s: SCIC IO Request given unexpected frame %x while in "
+                "state %d\n",
+                __func__,
+                frame_index,
+                sci_base_state_machine_get_state(&request->state_machine));
+
+       scic_sds_controller_release_frame(request->owning_controller, frame_index);
+       return SCI_FAILURE_INVALID_STATE;
 }
 
 /**
        memcpy(response_buffer, ssp_response->data, user_response_length);
 }
 
-/*
- * *****************************************************************************
- * *  DEFAULT STATE HANDLERS
- * ***************************************************************************** */
-
-/*
- * This method is the default action to take when an SCIC_SDS_IO_REQUEST_T
- * object receives a scic_sds_request_start() request.  The default action is
- * to log a warning and return a failure status. enum sci_status
- * SCI_FAILURE_INVALID_STATE
- */
-enum sci_status scic_sds_request_default_start_handler(
-       struct scic_sds_request *request)
-{
-       dev_warn(scic_to_dev(request->owning_controller),
-                "%s: SCIC IO Request requested to start while in wrong "
-                "state %d\n",
-                __func__,
-                sci_base_state_machine_get_state(&request->state_machine));
-
-       return SCI_FAILURE_INVALID_STATE;
-}
-
-static enum sci_status scic_sds_request_default_abort_handler(
-       struct scic_sds_request *request)
-{
-       dev_warn(scic_to_dev(request->owning_controller),
-               "%s: SCIC IO Request requested to abort while in wrong "
-               "state %d\n",
-               __func__,
-               sci_base_state_machine_get_state(&request->state_machine));
-
-       return SCI_FAILURE_INVALID_STATE;
-}
-
-/*
- * This method is the default action to take when an SCIC_SDS_IO_REQUEST_T
- * object receives a scic_sds_request_complete() request.  The default action
- * is to log a warning and return a failure status. enum sci_status
- * SCI_FAILURE_INVALID_STATE
- */
-enum sci_status scic_sds_request_default_complete_handler(
-       struct scic_sds_request *request)
-{
-       dev_warn(scic_to_dev(request->owning_controller),
-               "%s: SCIC IO Request requested to complete while in wrong "
-               "state %d\n",
-               __func__,
-               sci_base_state_machine_get_state(&request->state_machine));
-
-       return SCI_FAILURE_INVALID_STATE;
-}
-
-/*
- * This method is the default action to take when an SCIC_SDS_IO_REQUEST_T
- * object receives a scic_sds_request_complete() request.  The default action
- * is to log a warning and return a failure status. enum sci_status
- * SCI_FAILURE_INVALID_STATE
- */
-enum sci_status scic_sds_request_default_destruct_handler(
-       struct scic_sds_request *request)
-{
-       dev_warn(scic_to_dev(request->owning_controller),
-                "%s: SCIC IO Request requested to destroy while in wrong "
-                "state %d\n",
-                __func__,
-                sci_base_state_machine_get_state(&request->state_machine));
-
-       return SCI_FAILURE_INVALID_STATE;
-}
-
-/**
- * This method is the default action to take when an SCIC_SDS_IO_REQUEST_T
- * object receives a scic_sds_task_request_complete() request.  The default
- * action is to log a warning and return a failure status. enum sci_status
- * SCI_FAILURE_INVALID_STATE
- */
-enum sci_status scic_sds_request_default_tc_completion_handler(
-       struct scic_sds_request *request,
-       u32 completion_code)
-{
-       dev_warn(scic_to_dev(request->owning_controller),
-               "%s: SCIC IO Request given task completion notification %x "
-               "while in wrong state %d\n",
-               __func__,
-               completion_code,
-               sci_base_state_machine_get_state(&request->state_machine));
-
-       return SCI_FAILURE_INVALID_STATE;
-
-}
-
-/*
- * This method is the default action to take when an SCIC_SDS_IO_REQUEST_T
- * object receives a scic_sds_request_event_handler() request.  The default
- * action is to log a warning and return a failure status. enum sci_status
- * SCI_FAILURE_INVALID_STATE
- */
-enum sci_status scic_sds_request_default_event_handler(
-       struct scic_sds_request *request,
-       u32 event_code)
-{
-       dev_warn(scic_to_dev(request->owning_controller),
-                "%s: SCIC IO Request given event code notification %x while "
-                "in wrong state %d\n",
-                __func__,
-                event_code,
-                sci_base_state_machine_get_state(&request->state_machine));
-
-       return SCI_FAILURE_INVALID_STATE;
-}
-
-/*
- * This method is the default action to take when an SCIC_SDS_IO_REQUEST_T
- * object receives a scic_sds_request_event_handler() request.  The default
- * action is to log a warning and return a failure status. enum sci_status
- * SCI_FAILURE_INVALID_STATE
- */
-enum sci_status scic_sds_request_default_frame_handler(
-       struct scic_sds_request *request,
-       u32 frame_index)
-{
-       dev_warn(scic_to_dev(request->owning_controller),
-                "%s: SCIC IO Request given unexpected frame %x while in "
-                "state %d\n",
-                __func__,
-                frame_index,
-                sci_base_state_machine_get_state(&request->state_machine));
-
-       scic_sds_controller_release_frame(
-               request->owning_controller, frame_index);
-
-       return SCI_FAILURE_INVALID_STATE;
-}
-
 /*
  * *****************************************************************************
  * *  CONSTRUCTED STATE HANDLERS
 
 static const struct scic_sds_io_request_state_handler scic_sds_request_state_handler_table[] = {
        [SCI_BASE_REQUEST_STATE_INITIAL] = {
-               .start_handler          = scic_sds_request_default_start_handler,
-               .abort_handler          = scic_sds_request_default_abort_handler,
-               .complete_handler       = scic_sds_request_default_complete_handler,
-               .destruct_handler       = scic_sds_request_default_destruct_handler,
-               .tc_completion_handler  = scic_sds_request_default_tc_completion_handler,
-               .event_handler          = scic_sds_request_default_event_handler,
-               .frame_handler          = scic_sds_request_default_frame_handler,
        },
        [SCI_BASE_REQUEST_STATE_CONSTRUCTED] = {
                .start_handler          = scic_sds_request_constructed_state_start_handler,
                .abort_handler          = scic_sds_request_constructed_state_abort_handler,
-               .complete_handler       = scic_sds_request_default_complete_handler,
-               .destruct_handler       = scic_sds_request_default_destruct_handler,
-               .tc_completion_handler  = scic_sds_request_default_tc_completion_handler,
-               .event_handler          = scic_sds_request_default_event_handler,
-               .frame_handler          = scic_sds_request_default_frame_handler,
        },
        [SCI_BASE_REQUEST_STATE_STARTED] = {
-               .start_handler          = scic_sds_request_default_start_handler,
                .abort_handler          = scic_sds_request_started_state_abort_handler,
-               .complete_handler       = scic_sds_request_default_complete_handler,
-               .destruct_handler       = scic_sds_request_default_destruct_handler,
                .tc_completion_handler  = scic_sds_request_started_state_tc_completion_handler,
-               .event_handler          = scic_sds_request_default_event_handler,
                .frame_handler          = scic_sds_request_started_state_frame_handler,
        },
        [SCI_BASE_REQUEST_STATE_COMPLETED] = {
-               .start_handler          = scic_sds_request_default_start_handler,
-               .abort_handler          = scic_sds_request_default_abort_handler,
                .complete_handler       = scic_sds_request_completed_state_complete_handler,
-               .destruct_handler       = scic_sds_request_default_destruct_handler,
-               .tc_completion_handler  = scic_sds_request_default_tc_completion_handler,
-               .event_handler          = scic_sds_request_default_event_handler,
-               .frame_handler          = scic_sds_request_default_frame_handler,
        },
        [SCI_BASE_REQUEST_STATE_ABORTING] = {
-               .start_handler          = scic_sds_request_default_start_handler,
                .abort_handler          = scic_sds_request_aborting_state_abort_handler,
-               .complete_handler       = scic_sds_request_default_complete_handler,
-               .destruct_handler       = scic_sds_request_default_destruct_handler,
                .tc_completion_handler  = scic_sds_request_aborting_state_tc_completion_handler,
-               .event_handler          = scic_sds_request_default_event_handler,
                .frame_handler          = scic_sds_request_aborting_state_frame_handler,
        },
        [SCI_BASE_REQUEST_STATE_FINAL] = {
-               .start_handler          = scic_sds_request_default_start_handler,
-               .abort_handler          = scic_sds_request_default_abort_handler,
-               .complete_handler       = scic_sds_request_default_complete_handler,
-               .destruct_handler       = scic_sds_request_default_destruct_handler,
-               .tc_completion_handler  = scic_sds_request_default_tc_completion_handler,
-               .event_handler          = scic_sds_request_default_event_handler,
-               .frame_handler          = scic_sds_request_default_frame_handler,
        },
 };
 
 
         */
        scic_sds_io_request_handler_t complete_handler;
 
-       /**
-        * The destruct_handler specifies the method invoked when a user attempts to
-        * destruct a request.
-        */
-       scic_sds_io_request_handler_t destruct_handler;
-
-
        scic_sds_io_request_task_completion_handler_t tc_completion_handler;
        scic_sds_io_request_event_handler_t event_handler;
        scic_sds_io_request_frame_handler_t frame_handler;
        ((a_request)->state_handlers->complete_handler(a_request))
 
 
-
-
-/**
- * scic_sds_io_request_tc_completion() -
- *
- * This macro invokes the core state task completion handler for the
- * struct scic_sds_io_request object.
- */
-#define scic_sds_io_request_tc_completion(this_request, completion_code) \
-{ \
-       if (this_request->state_machine.current_state_id         \
-           == SCI_BASE_REQUEST_STATE_STARTED \
-           && this_request->has_started_substate_machine \
-           == false) \
-               scic_sds_request_started_state_tc_completion_handler(this_request, completion_code); \
-       else \
-               this_request->state_handlers->tc_completion_handler(this_request, completion_code); \
-}
+extern enum sci_status
+scic_sds_io_request_tc_completion(struct scic_sds_request *request, u32 completion_code);
 
 /**
  * SCU_SGL_ZERO() -
 enum sci_status scic_sds_task_request_terminate(
        struct scic_sds_request *this_request);
 
-/*
- * *****************************************************************************
- * * DEFAULT STATE HANDLERS
- * ***************************************************************************** */
-
-enum sci_status scic_sds_request_default_start_handler(
-       struct scic_sds_request *request);
-
-
-enum sci_status scic_sds_request_default_complete_handler(
-       struct scic_sds_request *request);
-
-enum sci_status scic_sds_request_default_destruct_handler(
-       struct scic_sds_request *request);
-
-enum sci_status scic_sds_request_default_tc_completion_handler(
-       struct scic_sds_request *this_request,
-       u32 completion_code);
-
-enum sci_status scic_sds_request_default_event_handler(
-       struct scic_sds_request *this_request,
-       u32 event_code);
-
-enum sci_status scic_sds_request_default_frame_handler(
-       struct scic_sds_request *this_request,
-       u32 frame_index);
-
 /*
  * *****************************************************************************
  * * STARTED STATE HANDLERS
 
 
 static const struct scic_sds_io_request_state_handler scic_sds_smp_request_started_substate_handler_table[] = {
        [SCIC_SDS_SMP_REQUEST_STARTED_SUBSTATE_AWAIT_RESPONSE] = {
-               .start_handler          = scic_sds_request_default_start_handler,
                .abort_handler          = scic_sds_request_started_state_abort_handler,
-               .complete_handler       = scic_sds_request_default_complete_handler,
-               .destruct_handler       = scic_sds_request_default_destruct_handler,
                .tc_completion_handler  = scic_sds_smp_request_await_response_tc_completion_handler,
-               .event_handler          = scic_sds_request_default_event_handler,
                .frame_handler          = scic_sds_smp_request_await_response_frame_handler,
        },
        [SCIC_SDS_SMP_REQUEST_STARTED_SUBSTATE_AWAIT_TC_COMPLETION] = {
-               .start_handler          = scic_sds_request_default_start_handler,
                .abort_handler          = scic_sds_request_started_state_abort_handler,
-               .complete_handler       = scic_sds_request_default_complete_handler,
-               .destruct_handler       = scic_sds_request_default_destruct_handler,
                .tc_completion_handler  =  scic_sds_smp_request_await_tc_completion_tc_completion_handler,
-               .event_handler          =  scic_sds_request_default_event_handler,
-               .frame_handler          =  scic_sds_request_default_frame_handler,
        }
 };
 
 
 
 static const struct scic_sds_io_request_state_handler scic_sds_ssp_task_request_started_substate_handler_table[] = {
        [SCIC_SDS_IO_REQUEST_STARTED_TASK_MGMT_SUBSTATE_AWAIT_TC_COMPLETION] = {
-               .start_handler          = scic_sds_request_default_start_handler,
                .abort_handler          = scic_sds_request_started_state_abort_handler,
-               .complete_handler       = scic_sds_request_default_complete_handler,
-               .destruct_handler       = scic_sds_request_default_destruct_handler,
                .tc_completion_handler  = scic_sds_ssp_task_request_await_tc_completion_tc_completion_handler,
-               .event_handler          = scic_sds_request_default_event_handler,
-               .frame_handler          = scic_sds_request_default_frame_handler,
        },
        [SCIC_SDS_IO_REQUEST_STARTED_TASK_MGMT_SUBSTATE_AWAIT_TC_RESPONSE] = {
-               .start_handler          = scic_sds_request_default_start_handler,
                .abort_handler          = scic_sds_ssp_task_request_await_tc_response_abort_handler,
-               .complete_handler       = scic_sds_request_default_complete_handler,
-               .destruct_handler       = scic_sds_request_default_destruct_handler,
-               .tc_completion_handler  = scic_sds_request_default_tc_completion_handler,
-               .event_handler          = scic_sds_request_default_event_handler,
                .frame_handler          = scic_sds_ssp_task_request_await_tc_response_frame_handler,
        }
 };
 
 
 const struct scic_sds_io_request_state_handler scic_sds_stp_packet_request_started_substate_handler_table[] = {
        [SCIC_SDS_STP_PACKET_REQUEST_STARTED_PACKET_PHASE_AWAIT_TC_COMPLETION_SUBSTATE] = {
-               .parent.start_handler    = scic_sds_request_default_start_handler,
                .parent.abort_handler    = scic_sds_request_started_state_abort_handler,
-               .parent.complete_handler = scic_sds_request_default_complete_handler,
-               .parent.destruct_handler = scic_sds_request_default_destruct_handler
                .tc_completion_handler   = scic_sds_stp_packet_request_packet_phase_await_tc_completion_tc_completion_handler,
-               .event_handler           = scic_sds_request_default_event_handler,
-               .frame_handler           = scic_sds_request_default_frame_handler
        },
        [SCIC_SDS_STP_PACKET_REQUEST_STARTED_PACKET_PHASE_AWAIT_PIO_SETUP_SUBSTATE] = {
-               .parent.start_handler    = scic_sds_request_default_start_handler,
                .parent.abort_handler    = scic_sds_request_started_state_abort_handler,
-               .parent.complete_handler = scic_sds_request_default_complete_handler,
-               .parent.destruct_handler = scic_sds_request_default_destruct_handler
-               .tc_completion_handler   = scic_sds_request_default_tc_completion_handler,
-               .event_handler           = scic_sds_request_default_event_handler,
                .frame_handler           = scic_sds_stp_packet_request_packet_phase_await_pio_setup_frame_handler
        },
        [SCIC_SDS_STP_PACKET_REQUEST_STARTED_COMMAND_PHASE_AWAIT_TC_COMPLETION_SUBSTATE] = {
-               .parent.start_handler    = scic_sds_request_default_start_handler,
                .parent.abort_handler    = scic_sds_request_started_state_abort_handler,
-               .parent.complete_handler = scic_sds_request_default_complete_handler,
-               .parent.destruct_handler = scic_sds_request_default_destruct_handler
                .tc_completion_handler   = scic_sds_stp_packet_request_command_phase_await_tc_completion_tc_completion_handler,
-               .event_handler           = scic_sds_request_default_event_handler,
                .frame_handler           = scic_sds_stp_packet_request_command_phase_await_tc_completion_frame_handler
        },
        [SCIC_SDS_STP_PACKET_REQUEST_STARTED_COMMAND_PHASE_AWAIT_D2H_FIS_SUBSTATE] = {
-               .parent.start_handler    = scic_sds_request_default_start_handler,
                .parent.abort_handler    = scic_sds_request_started_state_abort_handler,
-               .parent.complete_handler = scic_sds_request_default_complete_handler,
-               .parent.destruct_handler = scic_sds_request_default_destruct_handler
-               .tc_completion_handler   = scic_sds_request_default_tc_completion_handler,
-               .event_handler           = scic_sds_request_default_event_handler,
                .frame_handler           = scic_sds_stp_packet_request_command_phase_await_d2h_fis_frame_handler
        },
        [SCIC_SDS_STP_PACKET_REQUEST_STARTED_COMPLETION_DELAY_SUBSTATE] = {
-               .parent.start_handler    = scic_sds_request_default_start_handler,
                .parent.abort_handler    = scic_sds_request_started_state_abort_handler,
                .parent.complete_handler = scic_sds_stp_packet_request_started_completion_delay_complete_handler,
-               .parent.destruct_handler = scic_sds_request_default_destruct_handler
-               .tc_completion_handler   = scic_sds_request_default_tc_completion_handler,
-               .event_handler           = scic_sds_request_default_event_handler,
-               .frame_handler           = scic_sds_request_default_frame_handler
        },
 };
 
 
 
 static const struct scic_sds_io_request_state_handler scic_sds_stp_request_started_non_data_substate_handler_table[] = {
        [SCIC_SDS_STP_REQUEST_STARTED_NON_DATA_AWAIT_H2D_COMPLETION_SUBSTATE] = {
-               .start_handler          = scic_sds_request_default_start_handler,
                .abort_handler          = scic_sds_request_started_state_abort_handler,
-               .complete_handler       = scic_sds_request_default_complete_handler,
-               .destruct_handler       = scic_sds_request_default_destruct_handler,
                .tc_completion_handler  = scic_sds_stp_request_non_data_await_h2d_tc_completion_handler,
-               .event_handler          = scic_sds_request_default_event_handler,
-               .frame_handler          = scic_sds_request_default_frame_handler,
        },
        [SCIC_SDS_STP_REQUEST_STARTED_NON_DATA_AWAIT_D2H_SUBSTATE] = {
-               .start_handler          = scic_sds_request_default_start_handler,
                .abort_handler          = scic_sds_request_started_state_abort_handler,
-               .complete_handler       = scic_sds_request_default_complete_handler,
-               .destruct_handler       = scic_sds_request_default_destruct_handler,
-               .tc_completion_handler  = scic_sds_request_default_tc_completion_handler,
-               .event_handler          = scic_sds_request_default_event_handler,
                .frame_handler          = scic_sds_stp_request_non_data_await_d2h_frame_handler,
        }
 };
 
 static const struct scic_sds_io_request_state_handler scic_sds_stp_request_started_pio_substate_handler_table[] = {
        [SCIC_SDS_STP_REQUEST_STARTED_PIO_AWAIT_H2D_COMPLETION_SUBSTATE] = {
-               .start_handler          = scic_sds_request_default_start_handler,
                .abort_handler          = scic_sds_request_started_state_abort_handler,
-               .complete_handler       = scic_sds_request_default_complete_handler,
-               .destruct_handler       = scic_sds_request_default_destruct_handler,
                .tc_completion_handler  = scic_sds_stp_request_pio_await_h2d_completion_tc_completion_handler,
-               .event_handler          = scic_sds_request_default_event_handler,
-               .frame_handler          = scic_sds_request_default_frame_handler
        },
        [SCIC_SDS_STP_REQUEST_STARTED_PIO_AWAIT_FRAME_SUBSTATE] = {
-               .start_handler          = scic_sds_request_default_start_handler,
                .abort_handler          = scic_sds_request_started_state_abort_handler,
-               .complete_handler       = scic_sds_request_default_complete_handler,
-               .destruct_handler       = scic_sds_request_default_destruct_handler,
-               .tc_completion_handler  = scic_sds_request_default_tc_completion_handler,
-               .event_handler          = scic_sds_request_default_event_handler,
                .frame_handler          = scic_sds_stp_request_pio_await_frame_frame_handler
        },
        [SCIC_SDS_STP_REQUEST_STARTED_PIO_DATA_IN_AWAIT_DATA_SUBSTATE] = {
-               .start_handler          = scic_sds_request_default_start_handler,
                .abort_handler          = scic_sds_request_started_state_abort_handler,
-               .complete_handler       = scic_sds_request_default_complete_handler,
-               .destruct_handler       = scic_sds_request_default_destruct_handler,
-               .tc_completion_handler  = scic_sds_request_default_tc_completion_handler,
                .event_handler          = scic_sds_stp_request_pio_data_in_await_data_event_handler,
                .frame_handler          = scic_sds_stp_request_pio_data_in_await_data_frame_handler
        },
        [SCIC_SDS_STP_REQUEST_STARTED_PIO_DATA_OUT_TRANSMIT_DATA_SUBSTATE] = {
-               .start_handler          = scic_sds_request_default_start_handler,
                .abort_handler          = scic_sds_request_started_state_abort_handler,
-               .complete_handler       = scic_sds_request_default_complete_handler,
-               .destruct_handler       = scic_sds_request_default_destruct_handler,
                .tc_completion_handler  = scic_sds_stp_request_pio_data_out_await_data_transmit_completion_tc_completion_handler,
-               .event_handler          = scic_sds_request_default_event_handler,
-               .frame_handler          = scic_sds_request_default_frame_handler,
        }
 };
 
 
 static const struct scic_sds_io_request_state_handler scic_sds_stp_request_started_udma_substate_handler_table[] = {
        [SCIC_SDS_STP_REQUEST_STARTED_UDMA_AWAIT_TC_COMPLETION_SUBSTATE] = {
-               .start_handler          = scic_sds_request_default_start_handler,
                .abort_handler          = scic_sds_request_started_state_abort_handler,
-               .complete_handler       = scic_sds_request_default_complete_handler,
-               .destruct_handler       = scic_sds_request_default_destruct_handler,
                .tc_completion_handler  = scic_sds_stp_request_udma_await_tc_completion_tc_completion_handler,
-               .event_handler          = scic_sds_request_default_event_handler,
                .frame_handler          = scic_sds_stp_request_udma_general_frame_handler,
        },
        [SCIC_SDS_STP_REQUEST_STARTED_UDMA_AWAIT_D2H_REG_FIS_SUBSTATE] = {
-               .start_handler          = scic_sds_request_default_start_handler,
                .abort_handler          = scic_sds_request_started_state_abort_handler,
-               .complete_handler       = scic_sds_request_default_complete_handler,
-               .destruct_handler       = scic_sds_request_default_destruct_handler,
-               .tc_completion_handler  = scic_sds_request_default_tc_completion_handler,
-               .event_handler          = scic_sds_request_default_event_handler,
                .frame_handler          = scic_sds_stp_request_udma_await_d2h_reg_fis_frame_handler,
        },
 };
 
 static const struct scic_sds_io_request_state_handler scic_sds_stp_request_started_soft_reset_substate_handler_table[] = {
        [SCIC_SDS_STP_REQUEST_STARTED_SOFT_RESET_AWAIT_H2D_ASSERTED_COMPLETION_SUBSTATE] = {
-               .start_handler          = scic_sds_request_default_start_handler,
                .abort_handler          = scic_sds_request_started_state_abort_handler,
-               .complete_handler       = scic_sds_request_default_complete_handler,
-               .destruct_handler       = scic_sds_request_default_destruct_handler,
                .tc_completion_handler  = scic_sds_stp_request_soft_reset_await_h2d_asserted_tc_completion_handler,
-               .event_handler          = scic_sds_request_default_event_handler,
-               .frame_handler          = scic_sds_request_default_frame_handler,
        },
        [SCIC_SDS_STP_REQUEST_STARTED_SOFT_RESET_AWAIT_H2D_DIAGNOSTIC_COMPLETION_SUBSTATE] = {
-               .start_handler          = scic_sds_request_default_start_handler,
                .abort_handler          = scic_sds_request_started_state_abort_handler,
-               .complete_handler       = scic_sds_request_default_complete_handler,
-               .destruct_handler       = scic_sds_request_default_destruct_handler,
                .tc_completion_handler  = scic_sds_stp_request_soft_reset_await_h2d_diagnostic_tc_completion_handler,
-               .event_handler          = scic_sds_request_default_event_handler,
-               .frame_handler          = scic_sds_request_default_frame_handler,
        },
        [SCIC_SDS_STP_REQUEST_STARTED_SOFT_RESET_AWAIT_D2H_RESPONSE_FRAME_SUBSTATE] = {
-               .start_handler          = scic_sds_request_default_start_handler,
                .abort_handler          = scic_sds_request_started_state_abort_handler,
-               .complete_handler       = scic_sds_request_default_complete_handler,
-               .destruct_handler       = scic_sds_request_default_destruct_handler,
-               .tc_completion_handler  = scic_sds_request_default_tc_completion_handler,
-               .event_handler          = scic_sds_request_default_event_handler,
                .frame_handler          = scic_sds_stp_request_soft_reset_await_d2h_frame_handler,
        },
 };