aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/cciss_ioctl.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/cciss_ioctl.h')
-rw-r--r--include/linux/cciss_ioctl.h129
1 files changed, 1 insertions, 128 deletions
diff --git a/include/linux/cciss_ioctl.h b/include/linux/cciss_ioctl.h
index e7343a1a9ea8..986493f5b92b 100644
--- a/include/linux/cciss_ioctl.h
+++ b/include/linux/cciss_ioctl.h
@@ -3,6 +3,7 @@
3 3
4#include <linux/types.h> 4#include <linux/types.h>
5#include <linux/ioctl.h> 5#include <linux/ioctl.h>
6#include <linux/cciss_defs.h>
6 7
7#define CCISS_IOC_MAGIC 'B' 8#define CCISS_IOC_MAGIC 'B'
8 9
@@ -36,134 +37,6 @@ typedef __u32 DriverVer_type;
36 37
37#define MAX_KMALLOC_SIZE 128000 38#define MAX_KMALLOC_SIZE 128000
38 39
39#ifndef CCISS_CMD_H
40/* This defines are duplicated in cciss_cmd.h in the driver directory */
41
42/* general boundary definitions */
43#define SENSEINFOBYTES 32 /* note that this value may vary
44 between host implementations */
45
46/* Command Status value */
47#define CMD_SUCCESS 0x0000
48#define CMD_TARGET_STATUS 0x0001
49#define CMD_DATA_UNDERRUN 0x0002
50#define CMD_DATA_OVERRUN 0x0003
51#define CMD_INVALID 0x0004
52#define CMD_PROTOCOL_ERR 0x0005
53#define CMD_HARDWARE_ERR 0x0006
54#define CMD_CONNECTION_LOST 0x0007
55#define CMD_ABORTED 0x0008
56#define CMD_ABORT_FAILED 0x0009
57#define CMD_UNSOLICITED_ABORT 0x000A
58#define CMD_TIMEOUT 0x000B
59#define CMD_UNABORTABLE 0x000C
60
61/* transfer direction */
62#define XFER_NONE 0x00
63#define XFER_WRITE 0x01
64#define XFER_READ 0x02
65#define XFER_RSVD 0x03
66
67/* task attribute */
68#define ATTR_UNTAGGED 0x00
69#define ATTR_SIMPLE 0x04
70#define ATTR_HEADOFQUEUE 0x05
71#define ATTR_ORDERED 0x06
72#define ATTR_ACA 0x07
73
74/* cdb type */
75#define TYPE_CMD 0x00
76#define TYPE_MSG 0x01
77
78/* Type defs used in the following structs */
79#define BYTE __u8
80#define WORD __u16
81#define HWORD __u16
82#define DWORD __u32
83
84#define CISS_MAX_LUN 1024
85
86#define LEVEL2LUN 1 /* index into Target(x) structure, due to byte swapping */
87#define LEVEL3LUN 0
88
89#pragma pack(1)
90
91/* Command List Structure */
92typedef union _SCSI3Addr_struct {
93 struct {
94 BYTE Dev;
95 BYTE Bus:6;
96 BYTE Mode:2; /* b00 */
97 } PeripDev;
98 struct {
99 BYTE DevLSB;
100 BYTE DevMSB:6;
101 BYTE Mode:2; /* b01 */
102 } LogDev;
103 struct {
104 BYTE Dev:5;
105 BYTE Bus:3;
106 BYTE Targ:6;
107 BYTE Mode:2; /* b10 */
108 } LogUnit;
109} SCSI3Addr_struct;
110
111typedef struct _PhysDevAddr_struct {
112 DWORD TargetId:24;
113 DWORD Bus:6;
114 DWORD Mode:2;
115 SCSI3Addr_struct Target[2]; /* 2 level target device addr */
116} PhysDevAddr_struct;
117
118typedef struct _LogDevAddr_struct {
119 DWORD VolId:30;
120 DWORD Mode:2;
121 BYTE reserved[4];
122} LogDevAddr_struct;
123
124typedef union _LUNAddr_struct {
125 BYTE LunAddrBytes[8];
126 SCSI3Addr_struct SCSI3Lun[4];
127 PhysDevAddr_struct PhysDev;
128 LogDevAddr_struct LogDev;
129} LUNAddr_struct;
130
131typedef struct _RequestBlock_struct {
132 BYTE CDBLen;
133 struct {
134 BYTE Type:3;
135 BYTE Attribute:3;
136 BYTE Direction:2;
137 } Type;
138 HWORD Timeout;
139 BYTE CDB[16];
140} RequestBlock_struct;
141
142typedef union _MoreErrInfo_struct{
143 struct {
144 BYTE Reserved[3];
145 BYTE Type;
146 DWORD ErrorInfo;
147 }Common_Info;
148 struct{
149 BYTE Reserved[2];
150 BYTE offense_size; /* size of offending entry */
151 BYTE offense_num; /* byte # of offense 0-base */
152 DWORD offense_value;
153 }Invalid_Cmd;
154}MoreErrInfo_struct;
155typedef struct _ErrorInfo_struct {
156 BYTE ScsiStatus;
157 BYTE SenseLen;
158 HWORD CommandStatus;
159 DWORD ResidualCnt;
160 MoreErrInfo_struct MoreErrInfo;
161 BYTE SenseInfo[SENSEINFOBYTES];
162} ErrorInfo_struct;
163
164#pragma pack()
165#endif /* CCISS_CMD_H */
166
167typedef struct _IOCTL_Command_struct { 40typedef struct _IOCTL_Command_struct {
168 LUNAddr_struct LUN_info; 41 LUNAddr_struct LUN_info;
169 RequestBlock_struct Request; 42 RequestBlock_struct Request;