2003-11-13 17:34:36 +03:00
/*
* scsi . h
*
* General scsi and linux scsi specific defines and structs .
*
* Copyright ( C ) IBM Corp . 2003
*
2006-01-28 18:42:49 +03:00
* This program is free software ; you can redistribute it and / or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation version 2 of the License .
2003-11-13 17:34:36 +03:00
*/
# include <scsi/scsi.h>
struct scsi_ioctl_command {
unsigned int inlen ; /* excluding scsi command length */
unsigned int outlen ;
unsigned char data [ 1 ] ;
/* on input, scsi command starts here then opt. data */
} ;
/*
* Default 5 second timeout
*/
# define DEF_TIMEOUT 5000
# define SENSE_BUFF_LEN 32
2004-10-06 08:30:54 +04:00
/*
* The request buffer size passed to the SCSI INQUIRY commands , use 254 ,
* as this is a nice value for some devices , especially some of the usb
* mass storage devices .
*/
# define SCSI_INQ_BUFF_LEN 254
2003-11-13 17:34:36 +03:00
/*
* SCSI INQUIRY vendor and model ( really product ) lengths .
*/
# define VENDOR_LENGTH 8
# define MODEL_LENGTH 16
# define INQUIRY_CMD 0x12
# define INQUIRY_CMDLEN 6
/*
* INQUIRY VPD page 0x83 identifier descriptor related values . Reference the
* SCSI Primary Commands specification for details .
*/
/*
* id type values of id descriptors . These are assumed to fit in 4 bits .
*/
# define SCSI_ID_VENDOR_SPECIFIC 0
# define SCSI_ID_T10_VENDOR 1
# define SCSI_ID_EUI_64 2
# define SCSI_ID_NAA 3
2010-09-06 13:00:22 +04:00
# define SCSI_ID_RELPORT 4
# define SCSI_ID_TGTGROUP 5
# define SCSI_ID_LUNGROUP 6
# define SCSI_ID_MD5 7
# define SCSI_ID_NAME 8
2003-11-13 17:34:36 +03:00
/*
* Supported NAA values . These fit in 4 bits , so the " don't care " value
* cannot conflict with real values .
*/
# define SCSI_ID_NAA_DONT_CARE 0xff
# define SCSI_ID_NAA_IEEE_REG 5
# define SCSI_ID_NAA_IEEE_REG_EXTENDED 6
/*
* Supported Code Set values .
*/
# define SCSI_ID_BINARY 1
# define SCSI_ID_ASCII 2
struct scsi_id_search_values {
u_char id_type ;
u_char naa_type ;
u_char code_set ;
} ;
/*
* Following are the " true " SCSI status codes . Linux has traditionally
* used a 1 bit right and masked version of these . So now CHECK_CONDITION
* and friends ( in < scsi / scsi . h > ) are deprecated .
*/
# define SCSI_CHECK_CONDITION 0x2
# define SCSI_CONDITION_MET 0x4
# define SCSI_BUSY 0x8
# define SCSI_IMMEDIATE 0x10
# define SCSI_IMMEDIATE_CONDITION_MET 0x14
# define SCSI_RESERVATION_CONFLICT 0x18
# define SCSI_COMMAND_TERMINATED 0x22
# define SCSI_TASK_SET_FULL 0x28
# define SCSI_ACA_ACTIVE 0x30
# define SCSI_TASK_ABORTED 0x40