vserver 1.9.5.x5
[linux-2.6.git] / include / scsi / scsi.h
index ef5ef24..aba6f53 100644 (file)
@@ -108,6 +108,7 @@ extern const char *const scsi_device_types[MAX_SCSI_DEVICE_CODE];
 #define WRITE_LONG_2          0xea
 #define READ_16               0x88
 #define WRITE_16              0x8a
+#define VERIFY_16            0x8f
 #define SERVICE_ACTION_IN     0x9e
 /* values for service action in */
 #define        SAI_READ_CAPACITY_16  0x10
@@ -214,25 +215,25 @@ static inline int scsi_status_is_good(int status)
  */
 
 struct ccs_modesel_head {
-       u8 _r1;                 /* reserved */
-       u8 medium;              /* device-specific medium type */
-       u8 _r2;                 /* reserved */
-       u8 block_desc_length;   /* block descriptor length */
-       u8 density;             /* device-specific density code */
-       u8 number_blocks_hi;    /* number of blocks in this block desc */
-       u8 number_blocks_med;
-       u8 number_blocks_lo;
-       u8 _r3;
-       u8 block_length_hi;     /* block length for blocks in this desc */
-       u8 block_length_med;
-       u8 block_length_lo;
+       __u8 _r1;                       /* reserved */
+       __u8 medium;            /* device-specific medium type */
+       __u8 _r2;                       /* reserved */
+       __u8 block_desc_length; /* block descriptor length */
+       __u8 density;           /* device-specific density code */
+       __u8 number_blocks_hi;  /* number of blocks in this block desc */
+       __u8 number_blocks_med;
+       __u8 number_blocks_lo;
+       __u8 _r3;
+       __u8 block_length_hi;   /* block length for blocks in this desc */
+       __u8 block_length_med;
+       __u8 block_length_lo;
 };
 
 /*
  * ScsiLun: 8 byte LUN.
  */
 struct scsi_lun {
-       u8 scsi_lun[8];
+       __u8 scsi_lun[8];
 };
 
 /*
@@ -245,24 +246,35 @@ struct scsi_lun {
 #define     EXTENDED_SDTR                   0x01
 #define     EXTENDED_EXTENDED_IDENTIFY      0x02    /* SCSI-I only */
 #define     EXTENDED_WDTR                   0x03
+#define     EXTENDED_PPR                    0x04
+#define     EXTENDED_MODIFY_BIDI_DATA_PTR   0x05
 #define SAVE_POINTERS       0x02
 #define RESTORE_POINTERS    0x03
 #define DISCONNECT          0x04
 #define INITIATOR_ERROR     0x05
-#define ABORT               0x06
+#define ABORT_TASK_SET      0x06
 #define MESSAGE_REJECT      0x07
 #define NOP                 0x08
 #define MSG_PARITY_ERROR    0x09
 #define LINKED_CMD_COMPLETE 0x0a
 #define LINKED_FLG_CMD_COMPLETE 0x0b
-#define BUS_DEVICE_RESET    0x0c
-
+#define TARGET_RESET        0x0c
+#define ABORT_TASK          0x0d
+#define CLEAR_TASK_SET      0x0e
 #define INITIATE_RECOVERY   0x0f            /* SCSI-II only */
 #define RELEASE_RECOVERY    0x10            /* SCSI-II only */
-
+#define CLEAR_ACA           0x16
+#define LOGICAL_UNIT_RESET  0x17
 #define SIMPLE_QUEUE_TAG    0x20
 #define HEAD_OF_QUEUE_TAG   0x21
 #define ORDERED_QUEUE_TAG   0x22
+#define IGNORE_WIDE_RESIDUE 0x23
+#define ACA                 0x24
+#define QAS_REQUEST         0x55
+
+/* Old SCSI2 names, don't use in new code */
+#define BUS_DEVICE_RESET    TARGET_RESET
+#define ABORT               ABORT_TASK_SET
 
 /*
  * Host byte codes
@@ -353,14 +365,19 @@ struct scsi_lun {
                     ((lun) & 0x07))
 
 /*
- *  SCSI command sets
+ *  struct scsi_device::scsi_level values. For SCSI devices other than those
+ *  prior to SCSI-2 (i.e. over 12 years old) this value is (resp[2] + 1)
+ *  where "resp" is a byte array of the response to an INQUIRY. The scsi_level
+ *  variable is visible to the user via sysfs.
  */
 
 #define SCSI_UNKNOWN    0
 #define SCSI_1          1
 #define SCSI_1_CCS      2
 #define SCSI_2          3
-#define SCSI_3          4
+#define SCSI_3          4        /* SPC */
+#define SCSI_SPC_2      5
+#define SCSI_SPC_3      6
 
 /*
  * INQ PERIPHERAL QUALIFIERS