diff options
author | James Bottomley <James.Bottomley@steeleye.com> | 2005-08-14 17:09:01 -0500 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.(none)> | 2005-08-14 17:21:27 -0500 |
commit | d0a7e574007fd547d72ec693bfa35778623d0738 (patch) | |
tree | 3457bdf4e8eaf870971aab03c99c31534ba85658 /include/linux/transport_class.h | |
parent | 10c1b88987d618f4f89c10e11e574c76de73b5e7 (diff) | |
download | linux-stable-d0a7e574007fd547d72ec693bfa35778623d0738.tar.gz linux-stable-d0a7e574007fd547d72ec693bfa35778623d0738.tar.bz2 linux-stable-d0a7e574007fd547d72ec693bfa35778623d0738.zip |
[SCSI] correct transport class abstraction to work outside SCSI
I recently tried to construct a totally generic transport class and
found there were certain features missing from the current abstract
transport class. Most notable is that you have to hang the data on the
class_device but most of the API is framed in terms of the generic
device, not the class_device.
These changes are two fold
- Provide the class_device to all of the setup and configure APIs
- Provide and extra API to take the device and the attribute class and
return the corresponding class_device
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'include/linux/transport_class.h')
-rw-r--r-- | include/linux/transport_class.h | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/include/linux/transport_class.h b/include/linux/transport_class.h index 87d98d1faefb..1d6cc22e5f42 100644 --- a/include/linux/transport_class.h +++ b/include/linux/transport_class.h @@ -12,11 +12,16 @@ #include <linux/device.h> #include <linux/attribute_container.h> +struct transport_container; + struct transport_class { struct class class; - int (*setup)(struct device *); - int (*configure)(struct device *); - int (*remove)(struct device *); + int (*setup)(struct transport_container *, struct device *, + struct class_device *); + int (*configure)(struct transport_container *, struct device *, + struct class_device *); + int (*remove)(struct transport_container *, struct device *, + struct class_device *); }; #define DECLARE_TRANSPORT_CLASS(cls, nm, su, rm, cfg) \ |