aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/lpfc/lpfc_crtn.h
diff options
context:
space:
mode:
authorJames Smart <James.Smart@Emulex.Com>2007-06-17 20:56:37 -0400
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>2007-06-17 23:06:27 -0400
commited957684294618602b48f1950b0c9bbcb036583f (patch)
tree4e88dbb2e55013f973ad94099e2963dd507ea719 /drivers/scsi/lpfc/lpfc_crtn.h
parent2e0fef85e098f6794956b8b80b111179fbb4cbb7 (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.h14
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 *);
138LPFC_MBOXQ_t *lpfc_mbox_get(struct lpfc_hba *); 138LPFC_MBOXQ_t *lpfc_mbox_get(struct lpfc_hba *);
139int lpfc_mbox_tmo_val(struct lpfc_hba *, int); 139int lpfc_mbox_tmo_val(struct lpfc_hba *, int);
140 140
141void lpfc_config_hbq(struct lpfc_hba *, struct lpfc_hbq_init *, uint32_t ,
142 LPFC_MBOXQ_t *);
143struct lpfc_hbq_entry * lpfc_sli_next_hbq_slot(struct lpfc_hba *, uint32_t);
144
141int lpfc_mem_alloc(struct lpfc_hba *); 145int lpfc_mem_alloc(struct lpfc_hba *);
142void lpfc_mem_free(struct lpfc_hba *); 146void lpfc_mem_free(struct lpfc_hba *);
143 147
@@ -172,6 +176,12 @@ int lpfc_sli_ringpostbuf_put(struct lpfc_hba *, struct lpfc_sli_ring *,
172struct lpfc_dmabuf *lpfc_sli_ringpostbuf_get(struct lpfc_hba *, 176struct 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);
179int lpfc_sli_hbqbuf_fill_hbq(struct lpfc_hba *);
180void lpfc_sli_hbqbuf_free(struct lpfc_hba *, void *, dma_addr_t);
181void lpfc_sli_hbqbuf_free_all(struct lpfc_hba *);
182struct hbq_dmabuf *lpfc_sli_hbqbuf_find(struct lpfc_hba *, uint32_t);
183void lpfc_sli_free_hbq(struct lpfc_hba *, struct hbq_dmabuf *);
184int lpfc_sli_hbq_size(void);
175int lpfc_sli_issue_abort_iotag(struct lpfc_hba *, struct lpfc_sli_ring *, 185int lpfc_sli_issue_abort_iotag(struct lpfc_hba *, struct lpfc_sli_ring *,
176 struct lpfc_iocbq *); 186 struct lpfc_iocbq *);
177int lpfc_sli_sum_iocb(struct lpfc_hba *, struct lpfc_sli_ring *, uint16_t, 187int 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
211void *lpfc_hbq_alloc(struct lpfc_hba *, int, dma_addr_t *);
212void lpfc_hbq_free(struct lpfc_hba *, void *, dma_addr_t);
213
201void *lpfc_mbuf_alloc(struct lpfc_hba *, int, dma_addr_t *); 214void *lpfc_mbuf_alloc(struct lpfc_hba *, int, dma_addr_t *);
202void __lpfc_mbuf_free(struct lpfc_hba *, void *, dma_addr_t); 215void __lpfc_mbuf_free(struct lpfc_hba *, void *, dma_addr_t);
203void lpfc_mbuf_free(struct lpfc_hba *, void *, dma_addr_t); 216void lpfc_mbuf_free(struct lpfc_hba *, void *, dma_addr_t);
@@ -213,6 +226,7 @@ void lpfc_free_sysfs_attr(struct lpfc_vport *);
213extern struct class_device_attribute *lpfc_hba_attrs[]; 226extern struct class_device_attribute *lpfc_hba_attrs[];
214extern struct scsi_host_template lpfc_template; 227extern struct scsi_host_template lpfc_template;
215extern struct fc_function_template lpfc_transport_functions; 228extern struct fc_function_template lpfc_transport_functions;
229extern int lpfc_sli_mode;
216 230
217void lpfc_get_hba_sym_node_name(struct lpfc_hba *phba, uint8_t *symbp); 231void lpfc_get_hba_sym_node_name(struct lpfc_hba *phba, uint8_t *symbp);
218void lpfc_terminate_rport_io(struct fc_rport *); 232void lpfc_terminate_rport_io(struct fc_rport *);