This commit was manufactured by cvs2svn to create tag
[linux-2.6.git] / include / scsi / scsi_transport.h
index 658e3ce..a700351 100644 (file)
@@ -24,18 +24,33 @@ struct scsi_transport_template {
        /* The NULL terminated list of transport attributes
         * that should be exported.
         */
-       struct class_device_attribute **attrs;
+       struct class_device_attribute **device_attrs;
+       struct class_device_attribute **target_attrs;
+       struct class_device_attribute **host_attrs;
+
 
        /* The transport class that the device is in */
-       struct class *class;
+       struct class *device_class;
+       struct class *target_class;
+       struct class *host_class;
+
+       /* Constructor functions */
+       int (*device_setup)(struct scsi_device *);
+       int (*device_configure)(struct scsi_device *);
+       int (*target_setup)(struct scsi_target *);
+       int (*host_setup)(struct Scsi_Host *);
+
+       /* Destructor functions */
+       void (*device_destroy)(struct scsi_device *);
+       void (*target_destroy)(struct scsi_target *);
+       void (*host_destroy)(struct Scsi_Host *);
 
-       /* Constructor/Destructor functions */
-       int (* setup)(struct scsi_device *);
-       void (* cleanup)(struct scsi_device *);
        /* The size of the specific transport attribute structure (a
         * space of this size will be left at the end of the
-        * scsi_device structure */
-       int     size;
+        * scsi_* structure */
+       int     device_size;
+       int     target_size;
+       int     host_size;
 };
 
 #endif /* SCSI_TRANSPORT_H */