===== include/scsi/scsi_device.h 1.12 vs edited ===== --- 1.12/include/scsi/scsi_device.h Mon Feb 23 14:41:39 2004 +++ edited/include/scsi/scsi_device.h Mon Feb 23 15:39:55 2004 @@ -103,11 +103,11 @@ struct device sdev_gendev; struct class_device sdev_classdev; - void *transport_attr_values; struct class_device transport_classdev; enum scsi_device_state sdev_state; -}; + unsigned long transport_data[0]; +} __attribute__((aligned(sizeof(unsigned long)))); #define to_scsi_device(d) \ container_of(d, struct scsi_device, sdev_gendev) #define class_to_sdev(d) \ ===== include/scsi/scsi_transport.h 1.1 vs edited ===== --- 1.1/include/scsi/scsi_transport.h Mon Feb 23 14:41:44 2004 +++ edited/include/scsi/scsi_transport.h Mon Feb 23 15:32:33 2004 @@ -32,9 +32,10 @@ /* Constructor/Destructor functions */ int (* setup)(struct scsi_device *); void (* cleanup)(struct scsi_device *); - - /* Default values for the transport attributes */ - void *default_attr_values; + /* 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; }; #endif /* SCSI_TRANSPORT_H */ ===== include/scsi/scsi_transport_spi.h 1.1 vs edited ===== --- 1.1/include/scsi/scsi_transport_spi.h Mon Feb 23 14:41:48 2004 +++ edited/include/scsi/scsi_transport_spi.h Mon Feb 23 15:56:50 2004 @@ -29,14 +29,10 @@ int offset; }; -extern struct scsi_transport_template spi_transport_template; +/* accessor functions */ +#define spi_period(x) (((struct spi_transport_attrs *)&(x)->transport_data)->period) +#define spi_offset(x) (((struct spi_transport_attrs *)&(x)->transport_data)->offset) -#ifdef CONFIG_SCSI_SPI_ATTRS -extern int scsi_spi_transport_init(void); -extern void scsi_spi_transport_exit(void); -#else -# define scsi_spi_transport_init() 0 -# define scsi_spi_transport_exit() -#endif +extern struct scsi_transport_template spi_transport_template; #endif /* SCSI_TRANSPORT_SPI_H */