V4L/DVB: saa7134: add code to allow changing IR protocol
[safe/jmp/linux-2.6] / include / scsi / scsi_transport.h
index b3657f1..0de32cd 100644 (file)
@@ -21,7 +21,9 @@
 #define SCSI_TRANSPORT_H
 
 #include <linux/transport_class.h>
+#include <linux/blkdev.h>
 #include <scsi/scsi_host.h>
+#include <scsi/scsi_device.h>
 
 struct scsi_transport_template {
        /* the attribute containers */
@@ -50,6 +52,11 @@ struct scsi_transport_template {
        unsigned int create_work_queue : 1;
 
        /*
+        * Allows a transport to override the default error handler.
+        */
+       void (* eh_strategy_handler)(struct Scsi_Host *);
+
+       /*
         * This is an optional routine that allows the transport to become
         * involved when a scsi io timer fires. The return value tells the
         * timer routine how to finish the io timeout handling:
@@ -58,11 +65,23 @@ struct scsi_transport_template {
         *                      begin counting again
         * EH_NOT_HANDLED       Begin normal error recovery
         */
-       enum scsi_eh_timer_return (* eh_timed_out)(struct scsi_cmnd *);
+       enum blk_eh_timer_return (*eh_timed_out)(struct scsi_cmnd *);
+
+       /*
+        * Used as callback for the completion of i_t_nexus request
+        * for target drivers.
+        */
+       int (* it_nexus_response)(struct Scsi_Host *, u64, int);
+
+       /*
+        * Used as callback for the completion of task management
+        * request for target drivers.
+        */
+       int (* tsk_mgmt_response)(struct Scsi_Host *, u64, u64, int);
 };
 
 #define transport_class_to_shost(tc) \
-       dev_to_shost((tc)->dev)
+       dev_to_shost((tc)->parent)
 
 
 /* Private area maintenance. The driver requested allocations come