diff options
author | James Smart <James.Smart@Emulex.Com> | 2007-06-17 20:56:37 -0400 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.il.steeleye.com> | 2007-06-17 23:06:27 -0400 |
commit | ed957684294618602b48f1950b0c9bbcb036583f (patch) | |
tree | 4e88dbb2e55013f973ad94099e2963dd507ea719 /drivers/scsi/lpfc/lpfc_crtn.h | |
parent | 2e0fef85e098f6794956b8b80b111179fbb4cbb7 (diff) |
[SCSI] lpfc: NPIV: add SLI-3 interface
NPIV support is only available via new adapter interface extensions,
termed SLI-3. This interface changes some of the basic behaviors such
as command and response ring element sizes and data structures, as
well as a change in buffer posting. Note: the new firmware extensions
are found only on our mid-range and enterprise 4Gig adapters - so NPIV
support is available only on these newer adapters. The latest firmware
can be downloaded from the Emulex support page.
Signed-off-by: James Smart <James.Smart@emulex.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_crtn.h')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_crtn.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/scsi/lpfc/lpfc_crtn.h b/drivers/scsi/lpfc/lpfc_crtn.h index 0081cffd9280..776930727058 100644 --- a/drivers/scsi/lpfc/lpfc_crtn.h +++ b/drivers/scsi/lpfc/lpfc_crtn.h | |||
@@ -138,6 +138,10 @@ void lpfc_mbox_put(struct lpfc_hba *, LPFC_MBOXQ_t *); | |||
138 | LPFC_MBOXQ_t *lpfc_mbox_get(struct lpfc_hba *); | 138 | LPFC_MBOXQ_t *lpfc_mbox_get(struct lpfc_hba *); |
139 | int lpfc_mbox_tmo_val(struct lpfc_hba *, int); | 139 | int lpfc_mbox_tmo_val(struct lpfc_hba *, int); |
140 | 140 | ||
141 | void lpfc_config_hbq(struct lpfc_hba *, struct lpfc_hbq_init *, uint32_t , | ||
142 | LPFC_MBOXQ_t *); | ||
143 | struct lpfc_hbq_entry * lpfc_sli_next_hbq_slot(struct lpfc_hba *, uint32_t); | ||
144 | |||
141 | int lpfc_mem_alloc(struct lpfc_hba *); | 145 | int lpfc_mem_alloc(struct lpfc_hba *); |
142 | void lpfc_mem_free(struct lpfc_hba *); | 146 | void lpfc_mem_free(struct lpfc_hba *); |
143 | 147 | ||
@@ -172,6 +176,12 @@ int lpfc_sli_ringpostbuf_put(struct lpfc_hba *, struct lpfc_sli_ring *, | |||
172 | struct lpfc_dmabuf *lpfc_sli_ringpostbuf_get(struct lpfc_hba *, | 176 | struct lpfc_dmabuf *lpfc_sli_ringpostbuf_get(struct lpfc_hba *, |
173 | struct lpfc_sli_ring *, | 177 | struct lpfc_sli_ring *, |
174 | dma_addr_t); | 178 | dma_addr_t); |
179 | int lpfc_sli_hbqbuf_fill_hbq(struct lpfc_hba *); | ||
180 | void lpfc_sli_hbqbuf_free(struct lpfc_hba *, void *, dma_addr_t); | ||
181 | void lpfc_sli_hbqbuf_free_all(struct lpfc_hba *); | ||
182 | struct hbq_dmabuf *lpfc_sli_hbqbuf_find(struct lpfc_hba *, uint32_t); | ||
183 | void lpfc_sli_free_hbq(struct lpfc_hba *, struct hbq_dmabuf *); | ||
184 | int lpfc_sli_hbq_size(void); | ||
175 | int lpfc_sli_issue_abort_iotag(struct lpfc_hba *, struct lpfc_sli_ring *, | 185 | int lpfc_sli_issue_abort_iotag(struct lpfc_hba *, struct lpfc_sli_ring *, |
176 | struct lpfc_iocbq *); | 186 | struct lpfc_iocbq *); |
177 | int lpfc_sli_sum_iocb(struct lpfc_hba *, struct lpfc_sli_ring *, uint16_t, | 187 | int lpfc_sli_sum_iocb(struct lpfc_hba *, struct lpfc_sli_ring *, uint16_t, |
@@ -198,6 +208,9 @@ void lpfc_sli_abort_fcp_cmpl(struct lpfc_hba * phba, | |||
198 | struct lpfc_iocbq * cmdiocb, | 208 | struct lpfc_iocbq * cmdiocb, |
199 | struct lpfc_iocbq * rspiocb); | 209 | struct lpfc_iocbq * rspiocb); |
200 | 210 | ||
211 | void *lpfc_hbq_alloc(struct lpfc_hba *, int, dma_addr_t *); | ||
212 | void lpfc_hbq_free(struct lpfc_hba *, void *, dma_addr_t); | ||
213 | |||
201 | void *lpfc_mbuf_alloc(struct lpfc_hba *, int, dma_addr_t *); | 214 | void *lpfc_mbuf_alloc(struct lpfc_hba *, int, dma_addr_t *); |
202 | void __lpfc_mbuf_free(struct lpfc_hba *, void *, dma_addr_t); | 215 | void __lpfc_mbuf_free(struct lpfc_hba *, void *, dma_addr_t); |
203 | void lpfc_mbuf_free(struct lpfc_hba *, void *, dma_addr_t); | 216 | void lpfc_mbuf_free(struct lpfc_hba *, void *, dma_addr_t); |
@@ -213,6 +226,7 @@ void lpfc_free_sysfs_attr(struct lpfc_vport *); | |||
213 | extern struct class_device_attribute *lpfc_hba_attrs[]; | 226 | extern struct class_device_attribute *lpfc_hba_attrs[]; |
214 | extern struct scsi_host_template lpfc_template; | 227 | extern struct scsi_host_template lpfc_template; |
215 | extern struct fc_function_template lpfc_transport_functions; | 228 | extern struct fc_function_template lpfc_transport_functions; |
229 | extern int lpfc_sli_mode; | ||
216 | 230 | ||
217 | void lpfc_get_hba_sym_node_name(struct lpfc_hba *phba, uint8_t *symbp); | 231 | void lpfc_get_hba_sym_node_name(struct lpfc_hba *phba, uint8_t *symbp); |
218 | void lpfc_terminate_rport_io(struct fc_rport *); | 232 | void lpfc_terminate_rport_io(struct fc_rport *); |