]> git.proxmox.com Git - systemd.git/blame - src/udev/src/scsi_id/scsi.h
import udev repository
[systemd.git] / src / udev / src / scsi_id / scsi.h
CommitLineData
c521693b
GKH
1/*
2 * scsi.h
3 *
4 * General scsi and linux scsi specific defines and structs.
5 *
6 * Copyright (C) IBM Corp. 2003
7 *
912541b0
KS
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.
c521693b
GKH
11 */
12
13#include <scsi/scsi.h>
14
15struct scsi_ioctl_command {
912541b0
KS
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 */
c521693b
GKH
20};
21
22/*
23 * Default 5 second timeout
24 */
912541b0 25#define DEF_TIMEOUT 5000
c521693b 26
912541b0 27#define SENSE_BUFF_LEN 32
c521693b 28
01f950e2
PM
29/*
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.
33 */
912541b0 34#define SCSI_INQ_BUFF_LEN 254
01f950e2 35
c521693b
GKH
36/*
37 * SCSI INQUIRY vendor and model (really product) lengths.
38 */
912541b0
KS
39#define VENDOR_LENGTH 8
40#define MODEL_LENGTH 16
c521693b
GKH
41
42#define INQUIRY_CMD 0x12
43#define INQUIRY_CMDLEN 6
44
45/*
46 * INQUIRY VPD page 0x83 identifier descriptor related values. Reference the
47 * SCSI Primary Commands specification for details.
48 */
49
50/*
51 * id type values of id descriptors. These are assumed to fit in 4 bits.
52 */
912541b0
KS
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
57#define SCSI_ID_RELPORT 4
58#define SCSI_ID_TGTGROUP 5
59#define SCSI_ID_LUNGROUP 6
60#define SCSI_ID_MD5 7
61#define SCSI_ID_NAME 8
c521693b
GKH
62
63/*
64 * Supported NAA values. These fit in 4 bits, so the "don't care" value
65 * cannot conflict with real values.
66 */
912541b0
KS
67#define SCSI_ID_NAA_DONT_CARE 0xff
68#define SCSI_ID_NAA_IEEE_REG 5
69#define SCSI_ID_NAA_IEEE_REG_EXTENDED 6
c521693b
GKH
70
71/*
72 * Supported Code Set values.
73 */
912541b0
KS
74#define SCSI_ID_BINARY 1
75#define SCSI_ID_ASCII 2
c521693b
GKH
76
77struct scsi_id_search_values {
912541b0
KS
78 u_char id_type;
79 u_char naa_type;
80 u_char code_set;
c521693b
GKH
81};
82
83/*
84 * Following are the "true" SCSI status codes. Linux has traditionally
85 * used a 1 bit right and masked version of these. So now CHECK_CONDITION
86 * and friends (in <scsi/scsi.h>) are deprecated.
87 */
88#define SCSI_CHECK_CONDITION 0x2
89#define SCSI_CONDITION_MET 0x4
90#define SCSI_BUSY 0x8
91#define SCSI_IMMEDIATE 0x10
92#define SCSI_IMMEDIATE_CONDITION_MET 0x14
93#define SCSI_RESERVATION_CONFLICT 0x18
94#define SCSI_COMMAND_TERMINATED 0x22
95#define SCSI_TASK_SET_FULL 0x28
96#define SCSI_ACA_ACTIVE 0x30
97#define SCSI_TASK_ABORTED 0x40