aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/block/cciss_cmd.h
diff options
context:
space:
mode:
authordann frazier <dannf@hp.com>2010-02-17 18:55:11 -0500
committerJens Axboe <jens.axboe@oracle.com>2010-02-22 07:44:45 -0500
commit429c42c9d246f5bda868495c09974312a0177328 (patch)
tree70ff1d78c6aee4eefcfb9ffd5d7c65614ba5c4c6 /drivers/block/cciss_cmd.h
parentb028461d66a4dc2754d4e5dab1b3974c44798c5d (diff)
cciss: Consolidate duplicate bits in cciss_cmd.h & cciss_ioctl.h
There are several duplicate definitions in cciss_cmd.h and cciss_ioctl.h. Consolidate these into the new cciss_defs.h file. This patch doesn't change the definitions exposed under include/linux, so userspace apps shouldn't be affected. Acked-by: Stephen M. Cameron <scameron@beardog.cce.hp.com> Signed-off-by: dann frazier <dannf@hp.com> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'drivers/block/cciss_cmd.h')
-rw-r--r--drivers/block/cciss_cmd.h113
1 files changed, 3 insertions, 110 deletions
diff --git a/drivers/block/cciss_cmd.h b/drivers/block/cciss_cmd.h
index 277422b7e060..25f97623bacf 100644
--- a/drivers/block/cciss_cmd.h
+++ b/drivers/block/cciss_cmd.h
@@ -1,30 +1,16 @@
1#ifndef CCISS_CMD_H 1#ifndef CCISS_CMD_H
2#define CCISS_CMD_H 2#define CCISS_CMD_H
3
4#include <linux/cciss_defs.h>
5
3/* DEFINES */ 6/* DEFINES */
4#define CISS_VERSION "1.00" 7#define CISS_VERSION "1.00"
5 8
6/* general boundary definitions */ 9/* general boundary definitions */
7#define SENSEINFOBYTES 32 /* note that this value may vary
8 between host implementations */
9#define MAXSGENTRIES 32 10#define MAXSGENTRIES 32
10#define CCISS_SG_CHAIN 0x80000000 11#define CCISS_SG_CHAIN 0x80000000
11#define MAXREPLYQS 256 12#define MAXREPLYQS 256
12 13
13/* Command Status value */
14#define CMD_SUCCESS 0x0000
15#define CMD_TARGET_STATUS 0x0001
16#define CMD_DATA_UNDERRUN 0x0002
17#define CMD_DATA_OVERRUN 0x0003
18#define CMD_INVALID 0x0004
19#define CMD_PROTOCOL_ERR 0x0005
20#define CMD_HARDWARE_ERR 0x0006
21#define CMD_CONNECTION_LOST 0x0007
22#define CMD_ABORTED 0x0008
23#define CMD_ABORT_FAILED 0x0009
24#define CMD_UNSOLICITED_ABORT 0x000A
25#define CMD_TIMEOUT 0x000B
26#define CMD_UNABORTABLE 0x000C
27
28/* Unit Attentions ASC's as defined for the MSA2012sa */ 14/* Unit Attentions ASC's as defined for the MSA2012sa */
29#define POWER_OR_RESET 0x29 15#define POWER_OR_RESET 0x29
30#define STATE_CHANGED 0x2a 16#define STATE_CHANGED 0x2a
@@ -48,23 +34,6 @@
48#define ASYM_ACCESS_CHANGED 0x06 34#define ASYM_ACCESS_CHANGED 0x06
49#define LUN_CAPACITY_CHANGED 0x09 35#define LUN_CAPACITY_CHANGED 0x09
50 36
51/* transfer direction */
52#define XFER_NONE 0x00
53#define XFER_WRITE 0x01
54#define XFER_READ 0x02
55#define XFER_RSVD 0x03
56
57/* task attribute */
58#define ATTR_UNTAGGED 0x00
59#define ATTR_SIMPLE 0x04
60#define ATTR_HEADOFQUEUE 0x05
61#define ATTR_ORDERED 0x06
62#define ATTR_ACA 0x07
63
64/* cdb type */
65#define TYPE_CMD 0x00
66#define TYPE_MSG 0x01
67
68/* config space register offsets */ 37/* config space register offsets */
69#define CFG_VENDORID 0x00 38#define CFG_VENDORID 0x00
70#define CFG_DEVICEID 0x02 39#define CFG_DEVICEID 0x02
@@ -103,14 +72,9 @@ typedef union _u64bit
103} u64bit; 72} u64bit;
104 73
105/* Type defs used in the following structs */ 74/* Type defs used in the following structs */
106#define BYTE __u8
107#define WORD __u16
108#define HWORD __u16
109#define DWORD __u32
110#define QWORD vals32 75#define QWORD vals32
111 76
112/* STRUCTURES */ 77/* STRUCTURES */
113#define CISS_MAX_LUN 1024
114#define CISS_MAX_PHYS_LUN 1024 78#define CISS_MAX_PHYS_LUN 1024
115/* SCSI-3 Cmmands */ 79/* SCSI-3 Cmmands */
116 80
@@ -176,45 +140,6 @@ typedef struct _ReadCapdata_struct_16
176#define CCISS_CACHE_FLUSH 0x01 /* C2 was already being used by CCISS */ 140#define CCISS_CACHE_FLUSH 0x01 /* C2 was already being used by CCISS */
177 141
178/* Command List Structure */ 142/* Command List Structure */
179typedef union _SCSI3Addr_struct {
180 struct {
181 BYTE Dev;
182 BYTE Bus:6;
183 BYTE Mode:2; /* b00 */
184 } PeripDev;
185 struct {
186 BYTE DevLSB;
187 BYTE DevMSB:6;
188 BYTE Mode:2; /* b01 */
189 } LogDev;
190 struct {
191 BYTE Dev:5;
192 BYTE Bus:3;
193 BYTE Targ:6;
194 BYTE Mode:2; /* b10 */
195 } LogUnit;
196} SCSI3Addr_struct;
197
198typedef struct _PhysDevAddr_struct {
199 DWORD TargetId:24;
200 DWORD Bus:6;
201 DWORD Mode:2;
202 SCSI3Addr_struct Target[2]; /* 2 level target device addr */
203} PhysDevAddr_struct;
204
205typedef struct _LogDevAddr_struct {
206 DWORD VolId:30;
207 DWORD Mode:2;
208 BYTE reserved[4];
209} LogDevAddr_struct;
210
211typedef union _LUNAddr_struct {
212 BYTE LunAddrBytes[8];
213 SCSI3Addr_struct SCSI3Lun[4];
214 PhysDevAddr_struct PhysDev;
215 LogDevAddr_struct LogDev;
216} LUNAddr_struct;
217
218#define CTLR_LUNID "\0\0\0\0\0\0\0\0" 143#define CTLR_LUNID "\0\0\0\0\0\0\0\0"
219 144
220typedef struct _CommandListHeader_struct { 145typedef struct _CommandListHeader_struct {
@@ -224,16 +149,6 @@ typedef struct _CommandListHeader_struct {
224 QWORD Tag; 149 QWORD Tag;
225 LUNAddr_struct LUN; 150 LUNAddr_struct LUN;
226} CommandListHeader_struct; 151} CommandListHeader_struct;
227typedef struct _RequestBlock_struct {
228 BYTE CDBLen;
229 struct {
230 BYTE Type:3;
231 BYTE Attribute:3;
232 BYTE Direction:2;
233 } Type;
234 HWORD Timeout;
235 BYTE CDB[16];
236} RequestBlock_struct;
237typedef struct _ErrDescriptor_struct { 152typedef struct _ErrDescriptor_struct {
238 QWORD Addr; 153 QWORD Addr;
239 DWORD Len; 154 DWORD Len;
@@ -244,28 +159,6 @@ typedef struct _SGDescriptor_struct {
244 DWORD Ext; 159 DWORD Ext;
245} SGDescriptor_struct; 160} SGDescriptor_struct;
246 161
247typedef union _MoreErrInfo_struct{
248 struct {
249 BYTE Reserved[3];
250 BYTE Type;
251 DWORD ErrorInfo;
252 }Common_Info;
253 struct{
254 BYTE Reserved[2];
255 BYTE offense_size; /* size of offending entry */
256 BYTE offense_num; /* byte # of offense 0-base */
257 DWORD offense_value;
258 }Invalid_Cmd;
259}MoreErrInfo_struct;
260typedef struct _ErrorInfo_struct {
261 BYTE ScsiStatus;
262 BYTE SenseLen;
263 HWORD CommandStatus;
264 DWORD ResidualCnt;
265 MoreErrInfo_struct MoreErrInfo;
266 BYTE SenseInfo[SENSEINFOBYTES];
267} ErrorInfo_struct;
268
269/* Command types */ 162/* Command types */
270#define CMD_RWREQ 0x00 163#define CMD_RWREQ 0x00
271#define CMD_IOCTL_PEND 0x01 164#define CMD_IOCTL_PEND 0x01