aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/linux/cciss_defs.h130
-rw-r--r--include/linux/cciss_ioctl.h129
2 files changed, 131 insertions, 128 deletions
diff --git a/include/linux/cciss_defs.h b/include/linux/cciss_defs.h
new file mode 100644
index 000000000000..316b670d4e33
--- /dev/null
+++ b/include/linux/cciss_defs.h
@@ -0,0 +1,130 @@
1#ifndef CCISS_DEFS_H
2#define CCISS_DEFS_H
3
4#include <linux/types.h>
5
6/* general boundary definitions */
7#define SENSEINFOBYTES 32 /* note that this value may vary
8 between host implementations */
9
10/* Command Status value */
11#define CMD_SUCCESS 0x0000
12#define CMD_TARGET_STATUS 0x0001
13#define CMD_DATA_UNDERRUN 0x0002
14#define CMD_DATA_OVERRUN 0x0003
15#define CMD_INVALID 0x0004
16#define CMD_PROTOCOL_ERR 0x0005
17#define CMD_HARDWARE_ERR 0x0006
18#define CMD_CONNECTION_LOST 0x0007
19#define CMD_ABORTED 0x0008
20#define CMD_ABORT_FAILED 0x0009
21#define CMD_UNSOLICITED_ABORT 0x000A
22#define CMD_TIMEOUT 0x000B
23#define CMD_UNABORTABLE 0x000C
24
25/* transfer direction */
26#define XFER_NONE 0x00
27#define XFER_WRITE 0x01
28#define XFER_READ 0x02
29#define XFER_RSVD 0x03
30
31/* task attribute */
32#define ATTR_UNTAGGED 0x00
33#define ATTR_SIMPLE 0x04
34#define ATTR_HEADOFQUEUE 0x05
35#define ATTR_ORDERED 0x06
36#define ATTR_ACA 0x07
37
38/* cdb type */
39#define TYPE_CMD 0x00
40#define TYPE_MSG 0x01
41
42/* Type defs used in the following structs */
43#define BYTE __u8
44#define WORD __u16
45#define HWORD __u16
46#define DWORD __u32
47
48#define CISS_MAX_LUN 1024
49
50#define LEVEL2LUN 1 /* index into Target(x) structure, due to byte swapping */
51#define LEVEL3LUN 0
52
53#pragma pack(1)
54
55/* Command List Structure */
56typedef union _SCSI3Addr_struct {
57 struct {
58 BYTE Dev;
59 BYTE Bus:6;
60 BYTE Mode:2; /* b00 */
61 } PeripDev;
62 struct {
63 BYTE DevLSB;
64 BYTE DevMSB:6;
65 BYTE Mode:2; /* b01 */
66 } LogDev;
67 struct {
68 BYTE Dev:5;
69 BYTE Bus:3;
70 BYTE Targ:6;
71 BYTE Mode:2; /* b10 */
72 } LogUnit;
73} SCSI3Addr_struct;
74
75typedef struct _PhysDevAddr_struct {
76 DWORD TargetId:24;
77 DWORD Bus:6;
78 DWORD Mode:2;
79 SCSI3Addr_struct Target[2]; /* 2 level target device addr */
80} PhysDevAddr_struct;
81
82typedef struct _LogDevAddr_struct {
83 DWORD VolId:30;
84 DWORD Mode:2;
85 BYTE reserved[4];
86} LogDevAddr_struct;
87
88typedef union _LUNAddr_struct {
89 BYTE LunAddrBytes[8];
90 SCSI3Addr_struct SCSI3Lun[4];
91 PhysDevAddr_struct PhysDev;
92 LogDevAddr_struct LogDev;
93} LUNAddr_struct;
94
95typedef struct _RequestBlock_struct {
96 BYTE CDBLen;
97 struct {
98 BYTE Type:3;
99 BYTE Attribute:3;
100 BYTE Direction:2;
101 } Type;
102 HWORD Timeout;
103 BYTE CDB[16];
104} RequestBlock_struct;
105
106typedef union _MoreErrInfo_struct{
107 struct {
108 BYTE Reserved[3];
109 BYTE Type;
110 DWORD ErrorInfo;
111 } Common_Info;
112 struct{
113 BYTE Reserved[2];
114 BYTE offense_size; /* size of offending entry */
115 BYTE offense_num; /* byte # of offense 0-base */
116 DWORD offense_value;
117 } Invalid_Cmd;
118} MoreErrInfo_struct;
119typedef struct _ErrorInfo_struct {
120 BYTE ScsiStatus;
121 BYTE SenseLen;
122 HWORD CommandStatus;
123 DWORD ResidualCnt;
124 MoreErrInfo_struct MoreErrInfo;
125 BYTE SenseInfo[SENSEINFOBYTES];
126} ErrorInfo_struct;
127
128#pragma pack()
129
130#endif /* CCISS_DEFS_H */
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;