aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/block/cciss_cmd.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/block/cciss_cmd.h')
-rw-r--r--drivers/block/cciss_cmd.h61
1 files changed, 29 insertions, 32 deletions
diff --git a/drivers/block/cciss_cmd.h b/drivers/block/cciss_cmd.h
index 6afa700890ff..277422b7e060 100644
--- a/drivers/block/cciss_cmd.h
+++ b/drivers/block/cciss_cmd.h
@@ -1,17 +1,16 @@
1#ifndef CCISS_CMD_H 1#ifndef CCISS_CMD_H
2#define CCISS_CMD_H 2#define CCISS_CMD_H
3//########################################################################### 3/* DEFINES */
4//DEFINES
5//###########################################################################
6#define CISS_VERSION "1.00" 4#define CISS_VERSION "1.00"
7 5
8//general boundary definitions 6/* general boundary definitions */
9#define SENSEINFOBYTES 32//note that this value may vary between host implementations 7#define SENSEINFOBYTES 32 /* note that this value may vary
8 between host implementations */
10#define MAXSGENTRIES 32 9#define MAXSGENTRIES 32
11#define CCISS_SG_CHAIN 0x80000000 10#define CCISS_SG_CHAIN 0x80000000
12#define MAXREPLYQS 256 11#define MAXREPLYQS 256
13 12
14//Command Status value 13/* Command Status value */
15#define CMD_SUCCESS 0x0000 14#define CMD_SUCCESS 0x0000
16#define CMD_TARGET_STATUS 0x0001 15#define CMD_TARGET_STATUS 0x0001
17#define CMD_DATA_UNDERRUN 0x0002 16#define CMD_DATA_UNDERRUN 0x0002
@@ -49,30 +48,30 @@
49#define ASYM_ACCESS_CHANGED 0x06 48#define ASYM_ACCESS_CHANGED 0x06
50#define LUN_CAPACITY_CHANGED 0x09 49#define LUN_CAPACITY_CHANGED 0x09
51 50
52//transfer direction 51/* transfer direction */
53#define XFER_NONE 0x00 52#define XFER_NONE 0x00
54#define XFER_WRITE 0x01 53#define XFER_WRITE 0x01
55#define XFER_READ 0x02 54#define XFER_READ 0x02
56#define XFER_RSVD 0x03 55#define XFER_RSVD 0x03
57 56
58//task attribute 57/* task attribute */
59#define ATTR_UNTAGGED 0x00 58#define ATTR_UNTAGGED 0x00
60#define ATTR_SIMPLE 0x04 59#define ATTR_SIMPLE 0x04
61#define ATTR_HEADOFQUEUE 0x05 60#define ATTR_HEADOFQUEUE 0x05
62#define ATTR_ORDERED 0x06 61#define ATTR_ORDERED 0x06
63#define ATTR_ACA 0x07 62#define ATTR_ACA 0x07
64 63
65//cdb type 64/* cdb type */
66#define TYPE_CMD 0x00 65#define TYPE_CMD 0x00
67#define TYPE_MSG 0x01 66#define TYPE_MSG 0x01
68 67
69//config space register offsets 68/* config space register offsets */
70#define CFG_VENDORID 0x00 69#define CFG_VENDORID 0x00
71#define CFG_DEVICEID 0x02 70#define CFG_DEVICEID 0x02
72#define CFG_I2OBAR 0x10 71#define CFG_I2OBAR 0x10
73#define CFG_MEM1BAR 0x14 72#define CFG_MEM1BAR 0x14
74 73
75//i2o space register offsets 74/* i2o space register offsets */
76#define I2O_IBDB_SET 0x20 75#define I2O_IBDB_SET 0x20
77#define I2O_IBDB_CLEAR 0x70 76#define I2O_IBDB_CLEAR 0x70
78#define I2O_INT_STATUS 0x30 77#define I2O_INT_STATUS 0x30
@@ -81,7 +80,7 @@
81#define I2O_OBPOST_Q 0x44 80#define I2O_OBPOST_Q 0x44
82#define I2O_DMA1_CFG 0x214 81#define I2O_DMA1_CFG 0x214
83 82
84//Configuration Table 83/* Configuration Table */
85#define CFGTBL_ChangeReq 0x00000001l 84#define CFGTBL_ChangeReq 0x00000001l
86#define CFGTBL_AccCmds 0x00000001l 85#define CFGTBL_AccCmds 0x00000001l
87 86
@@ -103,24 +102,22 @@ typedef union _u64bit
103 __u64 val; 102 __u64 val;
104} u64bit; 103} u64bit;
105 104
106// Type defs used in the following structs 105/* Type defs used in the following structs */
107#define BYTE __u8 106#define BYTE __u8
108#define WORD __u16 107#define WORD __u16
109#define HWORD __u16 108#define HWORD __u16
110#define DWORD __u32 109#define DWORD __u32
111#define QWORD vals32 110#define QWORD vals32
112 111
113//########################################################################### 112/* STRUCTURES */
114//STRUCTURES
115//###########################################################################
116#define CISS_MAX_LUN 1024 113#define CISS_MAX_LUN 1024
117#define CISS_MAX_PHYS_LUN 1024 114#define CISS_MAX_PHYS_LUN 1024
118// SCSI-3 Cmmands 115/* SCSI-3 Cmmands */
119 116
120#pragma pack(1) 117#pragma pack(1)
121 118
122#define CISS_INQUIRY 0x12 119#define CISS_INQUIRY 0x12
123//Date returned 120/* Date returned */
124typedef struct _InquiryData_struct 121typedef struct _InquiryData_struct
125{ 122{
126 BYTE data_byte[36]; 123 BYTE data_byte[36];
@@ -128,7 +125,7 @@ typedef struct _InquiryData_struct
128 125
129#define CISS_REPORT_LOG 0xc2 /* Report Logical LUNs */ 126#define CISS_REPORT_LOG 0xc2 /* Report Logical LUNs */
130#define CISS_REPORT_PHYS 0xc3 /* Report Physical LUNs */ 127#define CISS_REPORT_PHYS 0xc3 /* Report Physical LUNs */
131// Data returned 128/* Data returned */
132typedef struct _ReportLUNdata_struct 129typedef struct _ReportLUNdata_struct
133{ 130{
134 BYTE LUNListLength[4]; 131 BYTE LUNListLength[4];
@@ -139,8 +136,8 @@ typedef struct _ReportLUNdata_struct
139#define CCISS_READ_CAPACITY 0x25 /* Read Capacity */ 136#define CCISS_READ_CAPACITY 0x25 /* Read Capacity */
140typedef struct _ReadCapdata_struct 137typedef struct _ReadCapdata_struct
141{ 138{
142 BYTE total_size[4]; // Total size in blocks 139 BYTE total_size[4]; /* Total size in blocks */
143 BYTE block_size[4]; // Size of blocks in bytes 140 BYTE block_size[4]; /* Size of blocks in bytes */
144} ReadCapdata_struct; 141} ReadCapdata_struct;
145 142
146#define CCISS_READ_CAPACITY_16 0x9e /* Read Capacity 16 */ 143#define CCISS_READ_CAPACITY_16 0x9e /* Read Capacity 16 */
@@ -172,29 +169,29 @@ typedef struct _ReadCapdata_struct_16
172#define CDB_LEN10 10 169#define CDB_LEN10 10
173#define CDB_LEN16 16 170#define CDB_LEN16 16
174 171
175// BMIC commands 172/* BMIC commands */
176#define BMIC_READ 0x26 173#define BMIC_READ 0x26
177#define BMIC_WRITE 0x27 174#define BMIC_WRITE 0x27
178#define BMIC_CACHE_FLUSH 0xc2 175#define BMIC_CACHE_FLUSH 0xc2
179#define CCISS_CACHE_FLUSH 0x01 //C2 was already being used by CCISS 176#define CCISS_CACHE_FLUSH 0x01 /* C2 was already being used by CCISS */
180 177
181//Command List Structure 178/* Command List Structure */
182typedef union _SCSI3Addr_struct { 179typedef union _SCSI3Addr_struct {
183 struct { 180 struct {
184 BYTE Dev; 181 BYTE Dev;
185 BYTE Bus:6; 182 BYTE Bus:6;
186 BYTE Mode:2; // b00 183 BYTE Mode:2; /* b00 */
187 } PeripDev; 184 } PeripDev;
188 struct { 185 struct {
189 BYTE DevLSB; 186 BYTE DevLSB;
190 BYTE DevMSB:6; 187 BYTE DevMSB:6;
191 BYTE Mode:2; // b01 188 BYTE Mode:2; /* b01 */
192 } LogDev; 189 } LogDev;
193 struct { 190 struct {
194 BYTE Dev:5; 191 BYTE Dev:5;
195 BYTE Bus:3; 192 BYTE Bus:3;
196 BYTE Targ:6; 193 BYTE Targ:6;
197 BYTE Mode:2; // b10 194 BYTE Mode:2; /* b10 */
198 } LogUnit; 195 } LogUnit;
199} SCSI3Addr_struct; 196} SCSI3Addr_struct;
200 197
@@ -202,7 +199,7 @@ typedef struct _PhysDevAddr_struct {
202 DWORD TargetId:24; 199 DWORD TargetId:24;
203 DWORD Bus:6; 200 DWORD Bus:6;
204 DWORD Mode:2; 201 DWORD Mode:2;
205 SCSI3Addr_struct Target[2]; //2 level target device addr 202 SCSI3Addr_struct Target[2]; /* 2 level target device addr */
206} PhysDevAddr_struct; 203} PhysDevAddr_struct;
207 204
208typedef struct _LogDevAddr_struct { 205typedef struct _LogDevAddr_struct {
@@ -255,8 +252,8 @@ typedef union _MoreErrInfo_struct{
255 }Common_Info; 252 }Common_Info;
256 struct{ 253 struct{
257 BYTE Reserved[2]; 254 BYTE Reserved[2];
258 BYTE offense_size;//size of offending entry 255 BYTE offense_size; /* size of offending entry */
259 BYTE offense_num; //byte # of offense 0-base 256 BYTE offense_num; /* byte # of offense 0-base */
260 DWORD offense_value; 257 DWORD offense_value;
261 }Invalid_Cmd; 258 }Invalid_Cmd;
262}MoreErrInfo_struct; 259}MoreErrInfo_struct;
@@ -300,7 +297,7 @@ typedef struct _CommandList_struct {
300 char pad[PADSIZE]; 297 char pad[PADSIZE];
301} CommandList_struct; 298} CommandList_struct;
302 299
303//Configuration Table Structure 300/* Configuration Table Structure */
304typedef struct _HostWrite_struct { 301typedef struct _HostWrite_struct {
305 DWORD TransportRequest; 302 DWORD TransportRequest;
306 DWORD Reserved; 303 DWORD Reserved;
@@ -326,4 +323,4 @@ typedef struct _CfgTable_struct {
326 DWORD MaxPhysicalDrivesPerLogicalUnit; 323 DWORD MaxPhysicalDrivesPerLogicalUnit;
327} CfgTable_struct; 324} CfgTable_struct;
328#pragma pack() 325#pragma pack()
329#endif // CCISS_CMD_H 326#endif /* CCISS_CMD_H */