K2.6 patches and update.
[tomato.git] / release / src / router / udev / extras / scsi_id / scsi.h
blobf5aa686f719ba9e7a3c70558b68e95f429d0b98c
1 /*
2 * scsi.h
4 * General scsi and linux scsi specific defines and structs.
6 * Copyright (C) IBM Corp. 2003
8 * This program is free software; you can redistribute it and/or modify it
9 * under the terms of the GNU General Public License as published by the
10 * Free Software Foundation version 2 of the License.
13 #include <scsi/scsi.h>
15 struct scsi_ioctl_command {
16 unsigned int inlen; /* excluding scsi command length */
17 unsigned int outlen;
18 unsigned char data[1];
19 /* on input, scsi command starts here then opt. data */
23 * Default 5 second timeout
25 #define DEF_TIMEOUT 5000
27 #define SENSE_BUFF_LEN 32
30 * The request buffer size passed to the SCSI INQUIRY commands, use 254,
31 * as this is a nice value for some devices, especially some of the usb
32 * mass storage devices.
34 #define SCSI_INQ_BUFF_LEN 254
37 * SCSI INQUIRY vendor and model (really product) lengths.
39 #define VENDOR_LENGTH 8
40 #define MODEL_LENGTH 16
42 #define INQUIRY_CMD 0x12
43 #define INQUIRY_CMDLEN 6
46 * INQUIRY VPD page 0x83 identifier descriptor related values. Reference the
47 * SCSI Primary Commands specification for details.
51 * id type values of id descriptors. These are assumed to fit in 4 bits.
53 #define SCSI_ID_VENDOR_SPECIFIC 0
54 #define SCSI_ID_T10_VENDOR 1
55 #define SCSI_ID_EUI_64 2
56 #define SCSI_ID_NAA 3
59 * Supported NAA values. These fit in 4 bits, so the "don't care" value
60 * cannot conflict with real values.
62 #define SCSI_ID_NAA_DONT_CARE 0xff
63 #define SCSI_ID_NAA_IEEE_REG 5
64 #define SCSI_ID_NAA_IEEE_REG_EXTENDED 6
67 * Supported Code Set values.
69 #define SCSI_ID_BINARY 1
70 #define SCSI_ID_ASCII 2
72 struct scsi_id_search_values {
73 u_char id_type;
74 u_char naa_type;
75 u_char code_set;
79 * Following are the "true" SCSI status codes. Linux has traditionally
80 * used a 1 bit right and masked version of these. So now CHECK_CONDITION
81 * and friends (in <scsi/scsi.h>) are deprecated.
83 #define SCSI_CHECK_CONDITION 0x2
84 #define SCSI_CONDITION_MET 0x4
85 #define SCSI_BUSY 0x8
86 #define SCSI_IMMEDIATE 0x10
87 #define SCSI_IMMEDIATE_CONDITION_MET 0x14
88 #define SCSI_RESERVATION_CONFLICT 0x18
89 #define SCSI_COMMAND_TERMINATED 0x22
90 #define SCSI_TASK_SET_FULL 0x28
91 #define SCSI_ACA_ACTIVE 0x30
92 #define SCSI_TASK_ABORTED 0x40