aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/aacraid/aacraid.h
diff options
context:
space:
mode:
authorMark Haverkamp <markh@osdl.org>2005-08-03 18:39:49 -0400
committerJames Bottomley <jejb@mulgrave.(none)>2005-08-05 17:57:56 -0400
commit0e68c00373f61fcdee453f6c9878e3390fc0f0ce (patch)
tree7172e827bccfa4b9c04fc11ddc54ae34a6376562 /drivers/scsi/aacraid/aacraid.h
parent12a26d0879d8a4502425037e9013b1f64ed669b7 (diff)
[SCSI] aacraid: sgraw command support
Received from Mark Salyzyn from Adaptec: This patch adds support for the new raw io command. This new command offers much larger io commands, is more friendly to the internal firmware structure requiring less translation efforts by the firmware and offers support for targets greater than 2TB (patch to support >2TB will be sent in the future). Signed-off-by: Mark Haverkamp <markh@osdl.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/aacraid/aacraid.h')
-rw-r--r--drivers/scsi/aacraid/aacraid.h43
1 files changed, 42 insertions, 1 deletions
diff --git a/drivers/scsi/aacraid/aacraid.h b/drivers/scsi/aacraid/aacraid.h
index 6f4906ee9a5e..bc91e7ce5e59 100644
--- a/drivers/scsi/aacraid/aacraid.h
+++ b/drivers/scsi/aacraid/aacraid.h
@@ -114,6 +114,22 @@ struct user_sgentry64 {
114 u32 count; /* Length. */ 114 u32 count; /* Length. */
115}; 115};
116 116
117struct sgentryraw {
118 __le32 next; /* reserved for F/W use */
119 __le32 prev; /* reserved for F/W use */
120 __le32 addr[2];
121 __le32 count;
122 __le32 flags; /* reserved for F/W use */
123};
124
125struct user_sgentryraw {
126 u32 next; /* reserved for F/W use */
127 u32 prev; /* reserved for F/W use */
128 u32 addr[2];
129 u32 count;
130 u32 flags; /* reserved for F/W use */
131};
132
117/* 133/*
118 * SGMAP 134 * SGMAP
119 * 135 *
@@ -141,6 +157,16 @@ struct user_sgmap64 {
141 struct user_sgentry64 sg[1]; 157 struct user_sgentry64 sg[1];
142}; 158};
143 159
160struct sgmapraw {
161 __le32 count;
162 struct sgentryraw sg[1];
163};
164
165struct user_sgmapraw {
166 u32 count;
167 struct user_sgentryraw sg[1];
168};
169
144struct creation_info 170struct creation_info
145{ 171{
146 u8 buildnum; /* e.g., 588 */ 172 u8 buildnum; /* e.g., 588 */
@@ -355,6 +381,7 @@ struct hw_fib {
355 */ 381 */
356#define ContainerCommand 500 382#define ContainerCommand 500
357#define ContainerCommand64 501 383#define ContainerCommand64 501
384#define ContainerRawIo 502
358/* 385/*
359 * Cluster Commands 386 * Cluster Commands
360 */ 387 */
@@ -986,6 +1013,9 @@ struct aac_dev
986 u8 nondasd_support; 1013 u8 nondasd_support;
987 u8 dac_support; 1014 u8 dac_support;
988 u8 raid_scsi_mode; 1015 u8 raid_scsi_mode;
1016 /* macro side-effects BEWARE */
1017# define raw_io_interface \
1018 init->InitStructRevision==cpu_to_le32(ADAPTER_INIT_STRUCT_REVISION_4)
989 u8 printf_enabled; 1019 u8 printf_enabled;
990}; 1020};
991 1021
@@ -1164,6 +1194,17 @@ struct aac_write_reply
1164 __le32 committed; 1194 __le32 committed;
1165}; 1195};
1166 1196
1197struct aac_raw_io
1198{
1199 __le32 block[2];
1200 __le32 count;
1201 __le16 cid;
1202 __le16 flags; /* 00 W, 01 R */
1203 __le16 bpTotal; /* reserved for F/W use */
1204 __le16 bpComplete; /* reserved for F/W use */
1205 struct sgmapraw sg;
1206};
1207
1167#define CT_FLUSH_CACHE 129 1208#define CT_FLUSH_CACHE 129
1168struct aac_synchronize { 1209struct aac_synchronize {
1169 __le32 command; /* VM_ContainerConfig */ 1210 __le32 command; /* VM_ContainerConfig */
@@ -1204,7 +1245,7 @@ struct aac_srb
1204}; 1245};
1205 1246
1206/* 1247/*
1207 * This and assocated data structs are used by the 1248 * This and associated data structs are used by the
1208 * ioctl caller and are in cpu order. 1249 * ioctl caller and are in cpu order.
1209 */ 1250 */
1210struct user_aac_srb 1251struct user_aac_srb