diff options
author | Madhuranath Iyengar <madhuranath.iyengar@qlogic.com> | 2010-05-04 18:01:29 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2010-05-16 18:21:57 -0400 |
commit | 3822263eb1e74821ad1ae886ddd2184ae9395ff7 (patch) | |
tree | 7b8ff05127a579bb0c3de9c8848f4052c0604d60 /drivers/scsi/qla2xxx/qla_def.h | |
parent | 4916392b56921b4aaaeaca3ef492135f42fbb5f2 (diff) |
[SCSI] qla2xxx: Support for asynchronous TM and Marker IOCBs.
Currently we can only issue the task management (TM)
commands via the mailbox mechanism. This is a limitation,
since only one mailbox command can be issued at a time.
The purpose of this effort is to provide support for
issuing and processing the respose to TM and Marker
IOCBs asynchronously. Towards achieving this, the
consolidated srb architecture that is currently used for
BSG and IOCB/Logio commands has been enhanced and used.
Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_def.h')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_def.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h index 08f5fd5359dd..0d2cecbb8f47 100644 --- a/drivers/scsi/qla2xxx/qla_def.h +++ b/drivers/scsi/qla2xxx/qla_def.h | |||
@@ -223,6 +223,26 @@ struct srb_iocb { | |||
223 | #define SRB_LOGIN_SKIP_PRLI BIT_2 | 223 | #define SRB_LOGIN_SKIP_PRLI BIT_2 |
224 | uint16_t data[2]; | 224 | uint16_t data[2]; |
225 | } logio; | 225 | } logio; |
226 | struct { | ||
227 | /* | ||
228 | * Values for flags field below are as | ||
229 | * defined in tsk_mgmt_entry struct | ||
230 | * for control_flags field in qla_fw.h. | ||
231 | */ | ||
232 | uint32_t flags; | ||
233 | uint32_t lun; | ||
234 | uint32_t data; | ||
235 | } tmf; | ||
236 | struct { | ||
237 | /* | ||
238 | * values for modif field below are as | ||
239 | * defined in mrk_entry_24xx struct | ||
240 | * for the modifier field in qla_fw.h. | ||
241 | */ | ||
242 | uint8_t modif; | ||
243 | uint16_t lun; | ||
244 | uint32_t data; | ||
245 | } marker; | ||
226 | } u; | 246 | } u; |
227 | 247 | ||
228 | struct timer_list timer; | 248 | struct timer_list timer; |
@@ -239,6 +259,8 @@ struct srb_iocb { | |||
239 | #define SRB_ELS_CMD_HST 4 | 259 | #define SRB_ELS_CMD_HST 4 |
240 | #define SRB_CT_CMD 5 | 260 | #define SRB_CT_CMD 5 |
241 | #define SRB_ADISC_CMD 6 | 261 | #define SRB_ADISC_CMD 6 |
262 | #define SRB_TM_CMD 7 | ||
263 | #define SRB_MARKER_CMD 8 | ||
242 | 264 | ||
243 | struct srb_ctx { | 265 | struct srb_ctx { |
244 | uint16_t type; | 266 | uint16_t type; |