aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/qla4xxx/ql4_glbl.h
diff options
context:
space:
mode:
authorManish Rangankar <manish.rangankar@qlogic.com>2011-07-25 14:48:53 -0400
committerJames Bottomley <JBottomley@Parallels.com>2011-08-27 10:36:24 -0400
commitb3a271a94d0034dd3bab10b8d8cd432843be629e (patch)
treee6b3db659daf0aa5c18394e0e58eb43c0a1c68af /drivers/scsi/qla4xxx/ql4_glbl.h
parent17fa575eec7254fb089f858cae135d64cd015440 (diff)
[SCSI] qla4xxx: support iscsiadm session mgmt
Add scsi_transport_iscsi hooks in qla4xxx to support iSCSI session management using iscsiadm. This patch is based on discussion here http://groups.google.com/group/open-iscsi/browse_thread/thread/e89fd888baf656a0# Now users can use iscsiadm to do target discovery and do login/logout to individual targets using the qla4xxx iSCSI class interface. This patch leaves some dead code, but to make it easier to review we are leaving and in the next patch we will remove that old code. V2 - NOTE: Added code to avoid waiting for AEN during login/logout in the driver, instead added a kernel to user event to notify iscsid about login status. Because of this iscsid will not get blocked. Signed-off-by: Manish Rangankar <manish.rangankar@qlogic.com> Signed-off-by: Lalit Chandivade <lalit.chandivade@qlogic.com> Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/qla4xxx/ql4_glbl.h')
-rw-r--r--drivers/scsi/qla4xxx/ql4_glbl.h21
1 files changed, 17 insertions, 4 deletions
diff --git a/drivers/scsi/qla4xxx/ql4_glbl.h b/drivers/scsi/qla4xxx/ql4_glbl.h
index 77539ae00b8..d802340e354 100644
--- a/drivers/scsi/qla4xxx/ql4_glbl.h
+++ b/drivers/scsi/qla4xxx/ql4_glbl.h
@@ -51,7 +51,7 @@ int qla4xxx_get_fwddb_entry(struct scsi_qla_host *ha,
51 uint16_t *connection_id); 51 uint16_t *connection_id);
52 52
53int qla4xxx_set_ddb_entry(struct scsi_qla_host * ha, uint16_t fw_ddb_index, 53int qla4xxx_set_ddb_entry(struct scsi_qla_host * ha, uint16_t fw_ddb_index,
54 dma_addr_t fw_ddb_entry_dma); 54 dma_addr_t fw_ddb_entry_dma, uint32_t *mbx_sts);
55uint8_t qla4xxx_get_ifcb(struct scsi_qla_host *ha, uint32_t *mbox_cmd, 55uint8_t qla4xxx_get_ifcb(struct scsi_qla_host *ha, uint32_t *mbox_cmd,
56 uint32_t *mbox_sts, dma_addr_t init_fw_cb_dma); 56 uint32_t *mbox_sts, dma_addr_t init_fw_cb_dma);
57int qla4xxx_conn_close_sess_logout(struct scsi_qla_host *ha, 57int qla4xxx_conn_close_sess_logout(struct scsi_qla_host *ha,
@@ -63,8 +63,7 @@ int qla4xxx_set_acb(struct scsi_qla_host *ha, uint32_t *mbox_cmd,
63 uint32_t *mbox_sts, dma_addr_t acb_dma); 63 uint32_t *mbox_sts, dma_addr_t acb_dma);
64int qla4xxx_get_acb(struct scsi_qla_host *ha, uint32_t *mbox_cmd, 64int qla4xxx_get_acb(struct scsi_qla_host *ha, uint32_t *mbox_cmd,
65 uint32_t *mbox_sts, dma_addr_t acb_dma); 65 uint32_t *mbox_sts, dma_addr_t acb_dma);
66void qla4xxx_mark_device_missing(struct scsi_qla_host *ha, 66void qla4xxx_mark_device_missing(struct iscsi_cls_session *cls_session);
67 struct ddb_entry *ddb_entry);
68u16 rd_nvram_word(struct scsi_qla_host *ha, int offset); 67u16 rd_nvram_word(struct scsi_qla_host *ha, int offset);
69void qla4xxx_get_crash_record(struct scsi_qla_host *ha); 68void qla4xxx_get_crash_record(struct scsi_qla_host *ha);
70struct ddb_entry *qla4xxx_alloc_sess(struct scsi_qla_host *ha); 69struct ddb_entry *qla4xxx_alloc_sess(struct scsi_qla_host *ha);
@@ -150,7 +149,21 @@ int qla4_8xxx_device_state_handler(struct scsi_qla_host *ha);
150void qla4_8xxx_need_qsnt_handler(struct scsi_qla_host *ha); 149void qla4_8xxx_need_qsnt_handler(struct scsi_qla_host *ha);
151void qla4_8xxx_clear_drv_active(struct scsi_qla_host *ha); 150void qla4_8xxx_clear_drv_active(struct scsi_qla_host *ha);
152void qla4_8xxx_set_drv_active(struct scsi_qla_host *ha); 151void qla4_8xxx_set_drv_active(struct scsi_qla_host *ha);
153 152int qla4xxx_conn_open(struct scsi_qla_host *ha, uint16_t fw_ddb_index);
153int qla4xxx_set_param_ddbentry(struct scsi_qla_host *ha,
154 struct ddb_entry *ddb_entry,
155 struct iscsi_cls_conn *cls_conn,
156 uint32_t *mbx_sts);
157int qla4xxx_session_logout_ddb(struct scsi_qla_host *ha,
158 struct ddb_entry *ddb_entry, int options);
159int qla4xxx_req_ddb_entry(struct scsi_qla_host *ha, uint32_t fw_ddb_index,
160 uint32_t *mbx_sts);
161int qla4xxx_clear_ddb_entry(struct scsi_qla_host *ha, uint32_t fw_ddb_index);
162int qla4xxx_send_passthru0(struct iscsi_task *task);
163int qla4xxx_get_mgmt_data(struct scsi_qla_host *ha, uint16_t fw_ddb_index,
164 uint16_t stats_size, dma_addr_t stats_dma);
165void qla4xxx_update_session_conn_param(struct scsi_qla_host *ha,
166 struct ddb_entry *ddb_entry);
154/* BSG Functions */ 167/* BSG Functions */
155int qla4xxx_bsg_request(struct bsg_job *bsg_job); 168int qla4xxx_bsg_request(struct bsg_job *bsg_job);
156int qla4xxx_process_vendor_specific(struct bsg_job *bsg_job); 169int qla4xxx_process_vendor_specific(struct bsg_job *bsg_job);