X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=include%2Fscsi%2Fscsi.h;h=5c0e9791441c91ab712608b078ba420f0852e1d9;hb=8d3aee937596d2ca6676c2c27789751445bf0bc9;hp=b361172b576c415fcc8faf298759c0647f1df73f;hpb=c2834cf4746cf13501efc3489b1895bce58a4ccb;p=powerpc.git diff --git a/include/scsi/scsi.h b/include/scsi/scsi.h index b361172b57..5c0e979144 100644 --- a/include/scsi/scsi.h +++ b/include/scsi/scsi.h @@ -25,11 +25,10 @@ extern const unsigned char scsi_command_size[8]; #define COMMAND_SIZE(opcode) scsi_command_size[((opcode) >> 5) & 7] /* - * SCSI device types + * Special value for scanning to specify scanning or rescanning of all + * possible channels, (target) ids, or luns on a given shost. */ - -#define MAX_SCSI_DEVICE_CODE 15 -extern const char *const scsi_device_types[MAX_SCSI_DEVICE_CODE]; +#define SCAN_WILD_CARD ~0 /* * SCSI opcodes @@ -98,6 +97,7 @@ extern const char *const scsi_device_types[MAX_SCSI_DEVICE_CODE]; #define PERSISTENT_RESERVE_IN 0x5e #define PERSISTENT_RESERVE_OUT 0x5f #define REPORT_LUNS 0xa0 +#define MAINTENANCE_IN 0xa3 #define MOVE_MEDIUM 0xa5 #define EXCHANGE_MEDIUM 0xa6 #define READ_12 0xa8 @@ -115,7 +115,12 @@ extern const char *const scsi_device_types[MAX_SCSI_DEVICE_CODE]; #define SERVICE_ACTION_IN 0x9e /* values for service action in */ #define SAI_READ_CAPACITY_16 0x10 +/* values for maintenance in */ +#define MI_REPORT_TARGET_PGS 0x0a +/* Values for T10/04-262r7 */ +#define ATA_16 0x85 /* 16-byte pass-thru */ +#define ATA_12 0xa1 /* 12-byte pass-thru */ /* * SCSI Architecture Model (SAM) Status codes. Taken from SAM-3 draft @@ -216,6 +221,9 @@ static inline int scsi_status_is_good(int status) #define TYPE_RBC 0x0e #define TYPE_NO_LUN 0x7f +/* Returns a human-readable name for the device */ +extern const char * scsi_device_type(unsigned type); + /* * standard mode-select header prepended to all mode-select commands */ @@ -424,4 +432,10 @@ struct scsi_lun { /* Used to obtain the PCI location of a device */ #define SCSI_IOCTL_GET_PCI 0x5387 +/* Pull a u32 out of a SCSI message (using BE SCSI conventions) */ +static inline __u32 scsi_to_u32(__u8 *ptr) +{ + return (ptr[0]<<24) + (ptr[1]<<16) + (ptr[2]<<8) + ptr[3]; +} + #endif /* _SCSI_SCSI_H */