diff options
Diffstat (limited to 'drivers/scsi/aacraid/aacraid.h')
-rw-r--r-- | drivers/scsi/aacraid/aacraid.h | 55 |
1 files changed, 51 insertions, 4 deletions
diff --git a/drivers/scsi/aacraid/aacraid.h b/drivers/scsi/aacraid/aacraid.h index 4ab07861b457..e40528185d48 100644 --- a/drivers/scsi/aacraid/aacraid.h +++ b/drivers/scsi/aacraid/aacraid.h | |||
@@ -110,6 +110,22 @@ struct user_sgentry64 { | |||
110 | u32 count; /* Length. */ | 110 | u32 count; /* Length. */ |
111 | }; | 111 | }; |
112 | 112 | ||
113 | struct sgentryraw { | ||
114 | __le32 next; /* reserved for F/W use */ | ||
115 | __le32 prev; /* reserved for F/W use */ | ||
116 | __le32 addr[2]; | ||
117 | __le32 count; | ||
118 | __le32 flags; /* reserved for F/W use */ | ||
119 | }; | ||
120 | |||
121 | struct user_sgentryraw { | ||
122 | u32 next; /* reserved for F/W use */ | ||
123 | u32 prev; /* reserved for F/W use */ | ||
124 | u32 addr[2]; | ||
125 | u32 count; | ||
126 | u32 flags; /* reserved for F/W use */ | ||
127 | }; | ||
128 | |||
113 | /* | 129 | /* |
114 | * SGMAP | 130 | * SGMAP |
115 | * | 131 | * |
@@ -137,6 +153,16 @@ struct user_sgmap64 { | |||
137 | struct user_sgentry64 sg[1]; | 153 | struct user_sgentry64 sg[1]; |
138 | }; | 154 | }; |
139 | 155 | ||
156 | struct sgmapraw { | ||
157 | __le32 count; | ||
158 | struct sgentryraw sg[1]; | ||
159 | }; | ||
160 | |||
161 | struct user_sgmapraw { | ||
162 | u32 count; | ||
163 | struct user_sgentryraw sg[1]; | ||
164 | }; | ||
165 | |||
140 | struct creation_info | 166 | struct creation_info |
141 | { | 167 | { |
142 | u8 buildnum; /* e.g., 588 */ | 168 | u8 buildnum; /* e.g., 588 */ |
@@ -351,6 +377,7 @@ struct hw_fib { | |||
351 | */ | 377 | */ |
352 | #define ContainerCommand 500 | 378 | #define ContainerCommand 500 |
353 | #define ContainerCommand64 501 | 379 | #define ContainerCommand64 501 |
380 | #define ContainerRawIo 502 | ||
354 | /* | 381 | /* |
355 | * Cluster Commands | 382 | * Cluster Commands |
356 | */ | 383 | */ |
@@ -456,6 +483,7 @@ struct adapter_ops | |||
456 | { | 483 | { |
457 | void (*adapter_interrupt)(struct aac_dev *dev); | 484 | void (*adapter_interrupt)(struct aac_dev *dev); |
458 | void (*adapter_notify)(struct aac_dev *dev, u32 event); | 485 | void (*adapter_notify)(struct aac_dev *dev, u32 event); |
486 | void (*adapter_disable_int)(struct aac_dev *dev); | ||
459 | int (*adapter_sync_cmd)(struct aac_dev *dev, u32 command, u32 p1, u32 p2, u32 p3, u32 p4, u32 p5, u32 p6, u32 *status, u32 *r1, u32 *r2, u32 *r3, u32 *r4); | 487 | int (*adapter_sync_cmd)(struct aac_dev *dev, u32 command, u32 p1, u32 p2, u32 p3, u32 p4, u32 p5, u32 p6, u32 *status, u32 *r1, u32 *r2, u32 *r3, u32 *r4); |
460 | int (*adapter_check_health)(struct aac_dev *dev); | 488 | int (*adapter_check_health)(struct aac_dev *dev); |
461 | }; | 489 | }; |
@@ -981,6 +1009,9 @@ struct aac_dev | |||
981 | u8 nondasd_support; | 1009 | u8 nondasd_support; |
982 | u8 dac_support; | 1010 | u8 dac_support; |
983 | u8 raid_scsi_mode; | 1011 | u8 raid_scsi_mode; |
1012 | /* macro side-effects BEWARE */ | ||
1013 | # define raw_io_interface \ | ||
1014 | init->InitStructRevision==cpu_to_le32(ADAPTER_INIT_STRUCT_REVISION_4) | ||
984 | u8 printf_enabled; | 1015 | u8 printf_enabled; |
985 | }; | 1016 | }; |
986 | 1017 | ||
@@ -990,6 +1021,9 @@ struct aac_dev | |||
990 | #define aac_adapter_notify(dev, event) \ | 1021 | #define aac_adapter_notify(dev, event) \ |
991 | (dev)->a_ops.adapter_notify(dev, event) | 1022 | (dev)->a_ops.adapter_notify(dev, event) |
992 | 1023 | ||
1024 | #define aac_adapter_disable_int(dev) \ | ||
1025 | (dev)->a_ops.adapter_disable_int(dev) | ||
1026 | |||
993 | #define aac_adapter_sync_cmd(dev, command, p1, p2, p3, p4, p5, p6, status, r1, r2, r3, r4) \ | 1027 | #define aac_adapter_sync_cmd(dev, command, p1, p2, p3, p4, p5, p6, status, r1, r2, r3, r4) \ |
994 | (dev)->a_ops.adapter_sync_cmd(dev, command, p1, p2, p3, p4, p5, p6, status, r1, r2, r3, r4) | 1028 | (dev)->a_ops.adapter_sync_cmd(dev, command, p1, p2, p3, p4, p5, p6, status, r1, r2, r3, r4) |
995 | 1029 | ||
@@ -1156,6 +1190,17 @@ struct aac_write_reply | |||
1156 | __le32 committed; | 1190 | __le32 committed; |
1157 | }; | 1191 | }; |
1158 | 1192 | ||
1193 | struct aac_raw_io | ||
1194 | { | ||
1195 | __le32 block[2]; | ||
1196 | __le32 count; | ||
1197 | __le16 cid; | ||
1198 | __le16 flags; /* 00 W, 01 R */ | ||
1199 | __le16 bpTotal; /* reserved for F/W use */ | ||
1200 | __le16 bpComplete; /* reserved for F/W use */ | ||
1201 | struct sgmapraw sg; | ||
1202 | }; | ||
1203 | |||
1159 | #define CT_FLUSH_CACHE 129 | 1204 | #define CT_FLUSH_CACHE 129 |
1160 | struct aac_synchronize { | 1205 | struct aac_synchronize { |
1161 | __le32 command; /* VM_ContainerConfig */ | 1206 | __le32 command; /* VM_ContainerConfig */ |
@@ -1196,7 +1241,7 @@ struct aac_srb | |||
1196 | }; | 1241 | }; |
1197 | 1242 | ||
1198 | /* | 1243 | /* |
1199 | * This and assocated data structs are used by the | 1244 | * This and associated data structs are used by the |
1200 | * ioctl caller and are in cpu order. | 1245 | * ioctl caller and are in cpu order. |
1201 | */ | 1246 | */ |
1202 | struct user_aac_srb | 1247 | struct user_aac_srb |
@@ -1508,11 +1553,12 @@ struct fib_ioctl | |||
1508 | 1553 | ||
1509 | struct revision | 1554 | struct revision |
1510 | { | 1555 | { |
1511 | u32 compat; | 1556 | __le32 compat; |
1512 | u32 version; | 1557 | __le32 version; |
1513 | u32 build; | 1558 | __le32 build; |
1514 | }; | 1559 | }; |
1515 | 1560 | ||
1561 | |||
1516 | /* | 1562 | /* |
1517 | * Ugly - non Linux like ioctl coding for back compat. | 1563 | * Ugly - non Linux like ioctl coding for back compat. |
1518 | */ | 1564 | */ |
@@ -1733,3 +1779,4 @@ int aac_get_adapter_info(struct aac_dev* dev); | |||
1733 | int aac_send_shutdown(struct aac_dev *dev); | 1779 | int aac_send_shutdown(struct aac_dev *dev); |
1734 | extern int numacb; | 1780 | extern int numacb; |
1735 | extern int acbsize; | 1781 | extern int acbsize; |
1782 | extern char aac_driver_version[]; | ||