diff options
author | Mark Haverkamp <markh@osdl.org> | 2005-08-03 18:39:49 -0400 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.(none)> | 2005-08-05 17:57:56 -0400 |
commit | 0e68c00373f61fcdee453f6c9878e3390fc0f0ce (patch) | |
tree | 7172e827bccfa4b9c04fc11ddc54ae34a6376562 /drivers/scsi/aacraid/aacraid.h | |
parent | 12a26d0879d8a4502425037e9013b1f64ed669b7 (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.h | 43 |
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 | ||
117 | struct 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 | |||
125 | struct 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 | ||
160 | struct sgmapraw { | ||
161 | __le32 count; | ||
162 | struct sgentryraw sg[1]; | ||
163 | }; | ||
164 | |||
165 | struct user_sgmapraw { | ||
166 | u32 count; | ||
167 | struct user_sgentryraw sg[1]; | ||
168 | }; | ||
169 | |||
144 | struct creation_info | 170 | struct 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 | ||
1197 | struct 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 |
1168 | struct aac_synchronize { | 1209 | struct 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 | */ |
1210 | struct user_aac_srb | 1251 | struct user_aac_srb |