mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-22 14:41:27 +00:00
[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>
This commit is contained in:
parent
10c1b88987
commit
d0a7e57400
6 changed files with 72 additions and 20 deletions
|
@ -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) \
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue