diff options
author | James Bottomley <James.Bottomley@HansenPartnership.com> | 2009-06-17 15:01:58 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2009-06-21 11:52:45 -0400 |
commit | 598fa4b775d064d4656132c78d9a312eb1d2f91f (patch) | |
tree | 42383f579d64e1eaf4a3cfa5b284699deb050839 /drivers/scsi/scsi_priv.h | |
parent | e0420029dedb867e5c2c044a0737338a7e9cec0b (diff) |
enhance device info matching for multiple tables
The current scsi_devinfo.c matching routines use a single table for
the global blacklist. However, we're developing a need to blacklist
from specific transports too (notably some tape drives using SPI which
don't respond well to high speed protocols). Instead of developing
separate blacklist matching for each transport class needing it,
enhance the current list matching to permit multiple lists.
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/scsi/scsi_priv.h')
-rw-r--r-- | drivers/scsi/scsi_priv.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/scsi/scsi_priv.h b/drivers/scsi/scsi_priv.h index fbc83bebdd8e..b4e49cd6e75d 100644 --- a/drivers/scsi/scsi_priv.h +++ b/drivers/scsi/scsi_priv.h | |||
@@ -39,9 +39,24 @@ static inline void scsi_log_completion(struct scsi_cmnd *cmd, int disposition) | |||
39 | #endif | 39 | #endif |
40 | 40 | ||
41 | /* scsi_devinfo.c */ | 41 | /* scsi_devinfo.c */ |
42 | |||
43 | /* list of keys for the lists */ | ||
44 | enum { | ||
45 | SCSI_DEVINFO_GLOBAL = 0, | ||
46 | }; | ||
47 | |||
42 | extern int scsi_get_device_flags(struct scsi_device *sdev, | 48 | extern int scsi_get_device_flags(struct scsi_device *sdev, |
43 | const unsigned char *vendor, | 49 | const unsigned char *vendor, |
44 | const unsigned char *model); | 50 | const unsigned char *model); |
51 | extern int scsi_get_device_flags_keyed(struct scsi_device *sdev, | ||
52 | const unsigned char *vendor, | ||
53 | const unsigned char *model, int key); | ||
54 | extern int scsi_dev_info_list_add_keyed(int compatible, char *vendor, | ||
55 | char *model, char *strflags, | ||
56 | int flags, int key); | ||
57 | extern int scsi_dev_info_add_list(int key, const char *name); | ||
58 | extern int scsi_dev_info_remove_list(int key); | ||
59 | |||
45 | extern int __init scsi_init_devinfo(void); | 60 | extern int __init scsi_init_devinfo(void); |
46 | extern void scsi_exit_devinfo(void); | 61 | extern void scsi_exit_devinfo(void); |
47 | 62 | ||