Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
drivers
scsi
lpfc
lpfc_crtn.h
Go to the documentation of this file.
1
/*******************************************************************
2
* This file is part of the Emulex Linux Device Driver for *
3
* Fibre Channel Host Bus Adapters. *
4
* Copyright (C) 2004-2011 Emulex. All rights reserved. *
5
* EMULEX and SLI are trademarks of Emulex. *
6
* www.emulex.com *
7
* *
8
* This program is free software; you can redistribute it and/or *
9
* modify it under the terms of version 2 of the GNU General *
10
* Public License as published by the Free Software Foundation. *
11
* This program is distributed in the hope that it will be useful. *
12
* ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND *
13
* WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, *
14
* FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT, ARE *
15
* DISCLAIMED, EXCEPT TO THE EXTENT THAT SUCH DISCLAIMERS ARE HELD *
16
* TO BE LEGALLY INVALID. See the GNU General Public License for *
17
* more details, a copy of which can be found in the file COPYING *
18
* included with this package. *
19
*******************************************************************/
20
21
typedef
int
(*
node_filter
)(
struct
lpfc_nodelist
*,
void
*);
22
23
struct
fc_rport
;
24
void
lpfc_down_link
(
struct
lpfc_hba
*,
LPFC_MBOXQ_t
*);
25
void
lpfc_sli_read_link_ste
(
struct
lpfc_hba
*);
26
void
lpfc_dump_mem
(
struct
lpfc_hba
*,
LPFC_MBOXQ_t
*,
uint16_t
,
uint16_t
);
27
void
lpfc_dump_wakeup_param
(
struct
lpfc_hba
*,
LPFC_MBOXQ_t
*);
28
int
lpfc_dump_static_vport
(
struct
lpfc_hba
*,
LPFC_MBOXQ_t
*,
uint16_t
);
29
int
lpfc_sli4_dump_cfg_rg23
(
struct
lpfc_hba
*,
struct
lpfcMboxq
*);
30
void
lpfc_read_nv
(
struct
lpfc_hba
*,
LPFC_MBOXQ_t
*);
31
void
lpfc_config_async
(
struct
lpfc_hba
*,
LPFC_MBOXQ_t
*,
uint32_t
);
32
33
void
lpfc_heart_beat
(
struct
lpfc_hba
*,
LPFC_MBOXQ_t
*);
34
int
lpfc_read_topology
(
struct
lpfc_hba
*,
LPFC_MBOXQ_t
*,
struct
lpfc_dmabuf
*);
35
void
lpfc_clear_la
(
struct
lpfc_hba
*,
LPFC_MBOXQ_t
*);
36
void
lpfc_issue_clear_la
(
struct
lpfc_hba
*,
struct
lpfc_vport
*);
37
void
lpfc_config_link
(
struct
lpfc_hba
*,
LPFC_MBOXQ_t
*);
38
int
lpfc_config_msi
(
struct
lpfc_hba
*,
LPFC_MBOXQ_t
*);
39
int
lpfc_read_sparam
(
struct
lpfc_hba
*,
LPFC_MBOXQ_t
*,
int
);
40
void
lpfc_read_config
(
struct
lpfc_hba
*,
LPFC_MBOXQ_t
*);
41
void
lpfc_read_lnk_stat
(
struct
lpfc_hba
*,
LPFC_MBOXQ_t
*);
42
int
lpfc_reg_rpi
(
struct
lpfc_hba
*,
uint16_t
,
uint32_t
,
uint8_t
*,
43
LPFC_MBOXQ_t
*,
uint16_t
);
44
void
lpfc_set_var
(
struct
lpfc_hba
*,
LPFC_MBOXQ_t
*,
uint32_t
,
uint32_t
);
45
void
lpfc_unreg_login
(
struct
lpfc_hba
*,
uint16_t
,
uint32_t
,
LPFC_MBOXQ_t
*);
46
void
lpfc_unreg_did
(
struct
lpfc_hba
*,
uint16_t
,
uint32_t
,
LPFC_MBOXQ_t
*);
47
void
lpfc_sli4_unreg_all_rpis
(
struct
lpfc_vport
*);
48
49
void
lpfc_reg_vpi
(
struct
lpfc_vport
*,
LPFC_MBOXQ_t
*);
50
void
lpfc_register_new_vport
(
struct
lpfc_hba
*,
struct
lpfc_vport
*,
51
struct
lpfc_nodelist
*);
52
void
lpfc_unreg_vpi
(
struct
lpfc_hba
*,
uint16_t
,
LPFC_MBOXQ_t
*);
53
void
lpfc_init_link
(
struct
lpfc_hba
*,
LPFC_MBOXQ_t
*,
uint32_t
,
uint32_t
);
54
void
lpfc_request_features
(
struct
lpfc_hba
*,
struct
lpfcMboxq
*);
55
void
lpfc_supported_pages
(
struct
lpfcMboxq
*);
56
void
lpfc_pc_sli4_params
(
struct
lpfcMboxq
*);
57
int
lpfc_pc_sli4_params_get
(
struct
lpfc_hba
*,
LPFC_MBOXQ_t
*);
58
int
lpfc_sli4_mbox_rsrc_extent
(
struct
lpfc_hba
*,
struct
lpfcMboxq
*,
59
uint16_t
,
uint16_t
,
bool
);
60
int
lpfc_get_sli4_parameters
(
struct
lpfc_hba
*,
LPFC_MBOXQ_t
*);
61
struct
lpfc_vport
*
lpfc_find_vport_by_did
(
struct
lpfc_hba
*,
uint32_t
);
62
void
lpfc_cleanup_rcv_buffers
(
struct
lpfc_vport
*);
63
void
lpfc_rcv_seq_check_edtov
(
struct
lpfc_vport
*);
64
void
lpfc_cleanup_rpis
(
struct
lpfc_vport
*,
int
);
65
void
lpfc_cleanup_pending_mbox
(
struct
lpfc_vport
*);
66
int
lpfc_linkdown
(
struct
lpfc_hba
*);
67
void
lpfc_linkdown_port
(
struct
lpfc_vport
*);
68
void
lpfc_port_link_failure
(
struct
lpfc_vport
*);
69
void
lpfc_mbx_cmpl_read_topology
(
struct
lpfc_hba
*,
LPFC_MBOXQ_t
*);
70
void
lpfc_init_vpi_cmpl
(
struct
lpfc_hba
*,
LPFC_MBOXQ_t
*);
71
void
lpfc_cancel_all_vport_retry_delay_timer
(
struct
lpfc_hba
*);
72
void
lpfc_retry_pport_discovery
(
struct
lpfc_hba
*);
73
void
lpfc_release_rpi
(
struct
lpfc_hba
*,
struct
lpfc_vport
*,
uint16_t
);
74
75
void
lpfc_mbx_cmpl_reg_login
(
struct
lpfc_hba
*,
LPFC_MBOXQ_t
*);
76
void
lpfc_mbx_cmpl_dflt_rpi
(
struct
lpfc_hba
*,
LPFC_MBOXQ_t
*);
77
void
lpfc_mbx_cmpl_fabric_reg_login
(
struct
lpfc_hba
*,
LPFC_MBOXQ_t
*);
78
void
lpfc_mbx_cmpl_ns_reg_login
(
struct
lpfc_hba
*,
LPFC_MBOXQ_t
*);
79
void
lpfc_mbx_cmpl_fdmi_reg_login
(
struct
lpfc_hba
*,
LPFC_MBOXQ_t
*);
80
void
lpfc_mbx_cmpl_reg_vfi
(
struct
lpfc_hba
*,
LPFC_MBOXQ_t
*);
81
void
lpfc_unregister_vfi_cmpl
(
struct
lpfc_hba
*,
LPFC_MBOXQ_t
*);
82
void
lpfc_enqueue_node
(
struct
lpfc_vport
*,
struct
lpfc_nodelist
*);
83
void
lpfc_dequeue_node
(
struct
lpfc_vport
*,
struct
lpfc_nodelist
*);
84
struct
lpfc_nodelist
*
lpfc_enable_node
(
struct
lpfc_vport
*,
85
struct
lpfc_nodelist
*,
int
);
86
void
lpfc_nlp_set_state
(
struct
lpfc_vport
*,
struct
lpfc_nodelist
*,
int
);
87
void
lpfc_drop_node
(
struct
lpfc_vport
*,
struct
lpfc_nodelist
*);
88
void
lpfc_set_disctmo
(
struct
lpfc_vport
*);
89
int
lpfc_can_disctmo
(
struct
lpfc_vport
*);
90
int
lpfc_unreg_rpi
(
struct
lpfc_vport
*,
struct
lpfc_nodelist
*);
91
void
lpfc_unreg_all_rpis
(
struct
lpfc_vport
*);
92
void
lpfc_unreg_hba_rpis
(
struct
lpfc_hba
*);
93
void
lpfc_unreg_default_rpis
(
struct
lpfc_vport
*);
94
void
lpfc_issue_reg_vpi
(
struct
lpfc_hba
*,
struct
lpfc_vport
*);
95
96
int
lpfc_check_sli_ndlp
(
struct
lpfc_hba
*,
struct
lpfc_sli_ring
*,
97
struct
lpfc_iocbq
*,
struct
lpfc_nodelist
*);
98
void
lpfc_nlp_init
(
struct
lpfc_vport
*,
struct
lpfc_nodelist
*,
uint32_t
);
99
struct
lpfc_nodelist
*
lpfc_nlp_get
(
struct
lpfc_nodelist
*);
100
int
lpfc_nlp_put
(
struct
lpfc_nodelist
*);
101
int
lpfc_nlp_not_used
(
struct
lpfc_nodelist
*ndlp);
102
struct
lpfc_nodelist
*
lpfc_setup_disc_node
(
struct
lpfc_vport
*,
uint32_t
);
103
void
lpfc_disc_list_loopmap
(
struct
lpfc_vport
*);
104
void
lpfc_disc_start
(
struct
lpfc_vport
*);
105
void
lpfc_cleanup_discovery_resources
(
struct
lpfc_vport
*);
106
void
lpfc_cleanup
(
struct
lpfc_vport
*);
107
void
lpfc_disc_timeout
(
unsigned
long
);
108
109
struct
lpfc_nodelist
*
__lpfc_findnode_rpi
(
struct
lpfc_vport
*,
uint16_t
);
110
struct
lpfc_nodelist
*
lpfc_findnode_rpi
(
struct
lpfc_vport
*,
uint16_t
);
111
void
lpfc_worker_wake_up
(
struct
lpfc_hba
*);
112
int
lpfc_workq_post_event
(
struct
lpfc_hba
*,
void
*,
void
*,
uint32_t
);
113
int
lpfc_do_work
(
void
*);
114
int
lpfc_disc_state_machine
(
struct
lpfc_vport
*,
struct
lpfc_nodelist
*,
void
*,
115
uint32_t
);
116
117
void
lpfc_do_scr_ns_plogi
(
struct
lpfc_hba
*,
struct
lpfc_vport
*);
118
int
lpfc_check_sparm
(
struct
lpfc_vport
*,
struct
lpfc_nodelist
*,
119
struct
serv_parm
*,
uint32_t
,
int
);
120
int
lpfc_els_abort
(
struct
lpfc_hba
*,
struct
lpfc_nodelist
*);
121
void
lpfc_more_plogi
(
struct
lpfc_vport
*);
122
void
lpfc_more_adisc
(
struct
lpfc_vport
*);
123
void
lpfc_end_rscn
(
struct
lpfc_vport
*);
124
int
lpfc_els_chk_latt
(
struct
lpfc_vport
*);
125
int
lpfc_els_abort_flogi
(
struct
lpfc_hba
*);
126
int
lpfc_initial_flogi
(
struct
lpfc_vport
*);
127
void
lpfc_issue_init_vfi
(
struct
lpfc_vport
*);
128
int
lpfc_initial_fdisc
(
struct
lpfc_vport
*);
129
int
lpfc_issue_els_plogi
(
struct
lpfc_vport
*,
uint32_t
,
uint8_t
);
130
int
lpfc_issue_els_prli
(
struct
lpfc_vport
*,
struct
lpfc_nodelist
*,
uint8_t
);
131
int
lpfc_issue_els_adisc
(
struct
lpfc_vport
*,
struct
lpfc_nodelist
*,
uint8_t
);
132
int
lpfc_issue_els_logo
(
struct
lpfc_vport
*,
struct
lpfc_nodelist
*,
uint8_t
);
133
int
lpfc_issue_els_npiv_logo
(
struct
lpfc_vport
*,
struct
lpfc_nodelist
*);
134
int
lpfc_issue_els_scr
(
struct
lpfc_vport
*,
uint32_t
,
uint8_t
);
135
int
lpfc_issue_fabric_reglogin
(
struct
lpfc_vport
*);
136
int
lpfc_els_free_iocb
(
struct
lpfc_hba
*,
struct
lpfc_iocbq
*);
137
int
lpfc_ct_free_iocb
(
struct
lpfc_hba
*,
struct
lpfc_iocbq
*);
138
int
lpfc_els_rsp_acc
(
struct
lpfc_vport
*,
uint32_t
,
struct
lpfc_iocbq
*,
139
struct
lpfc_nodelist
*,
LPFC_MBOXQ_t
*);
140
int
lpfc_els_rsp_reject
(
struct
lpfc_vport
*,
uint32_t
,
struct
lpfc_iocbq
*,
141
struct
lpfc_nodelist
*,
LPFC_MBOXQ_t
*);
142
int
lpfc_els_rsp_adisc_acc
(
struct
lpfc_vport
*,
struct
lpfc_iocbq
*,
143
struct
lpfc_nodelist
*);
144
int
lpfc_els_rsp_prli_acc
(
struct
lpfc_vport
*,
struct
lpfc_iocbq
*,
145
struct
lpfc_nodelist
*);
146
void
lpfc_cancel_retry_delay_tmo
(
struct
lpfc_vport
*,
struct
lpfc_nodelist
*);
147
void
lpfc_els_retry_delay
(
unsigned
long
);
148
void
lpfc_els_retry_delay_handler
(
struct
lpfc_nodelist
*);
149
void
lpfc_els_unsol_event
(
struct
lpfc_hba
*,
struct
lpfc_sli_ring
*,
150
struct
lpfc_iocbq
*);
151
int
lpfc_els_handle_rscn
(
struct
lpfc_vport
*);
152
void
lpfc_els_flush_rscn
(
struct
lpfc_vport
*);
153
int
lpfc_rscn_payload_check
(
struct
lpfc_vport
*,
uint32_t
);
154
void
lpfc_els_flush_all_cmd
(
struct
lpfc_hba
*);
155
void
lpfc_els_flush_cmd
(
struct
lpfc_vport
*);
156
int
lpfc_els_disc_adisc
(
struct
lpfc_vport
*);
157
int
lpfc_els_disc_plogi
(
struct
lpfc_vport
*);
158
void
lpfc_els_timeout
(
unsigned
long
);
159
void
lpfc_els_timeout_handler
(
struct
lpfc_vport
*);
160
struct
lpfc_iocbq
*
lpfc_prep_els_iocb
(
struct
lpfc_vport
*,
uint8_t
,
uint16_t
,
161
uint8_t
,
struct
lpfc_nodelist
*,
162
uint32_t
,
uint32_t
);
163
void
lpfc_hb_timeout_handler
(
struct
lpfc_hba
*);
164
165
void
lpfc_ct_unsol_event
(
struct
lpfc_hba
*,
struct
lpfc_sli_ring
*,
166
struct
lpfc_iocbq
*);
167
void
lpfc_sli4_ct_abort_unsol_event
(
struct
lpfc_hba
*,
struct
lpfc_sli_ring
*,
168
struct
lpfc_iocbq
*);
169
int
lpfc_ns_cmd
(
struct
lpfc_vport
*,
int
,
uint8_t
,
uint32_t
);
170
int
lpfc_fdmi_cmd
(
struct
lpfc_vport
*,
struct
lpfc_nodelist
*,
int
);
171
void
lpfc_fdmi_tmo
(
unsigned
long
);
172
void
lpfc_fdmi_timeout_handler
(
struct
lpfc_vport
*);
173
void
lpfc_delayed_disc_tmo
(
unsigned
long
);
174
void
lpfc_delayed_disc_timeout_handler
(
struct
lpfc_vport
*);
175
176
int
lpfc_config_port_prep
(
struct
lpfc_hba
*);
177
void
lpfc_update_vport_wwn
(
struct
lpfc_vport
*
vport
);
178
int
lpfc_config_port_post
(
struct
lpfc_hba
*);
179
int
lpfc_hba_down_prep
(
struct
lpfc_hba
*);
180
int
lpfc_hba_down_post
(
struct
lpfc_hba
*);
181
void
lpfc_hba_init
(
struct
lpfc_hba
*,
uint32_t
*);
182
int
lpfc_post_buffer
(
struct
lpfc_hba
*,
struct
lpfc_sli_ring
*,
int
);
183
void
lpfc_decode_firmware_rev
(
struct
lpfc_hba
*,
char
*,
int
);
184
int
lpfc_online
(
struct
lpfc_hba
*);
185
void
lpfc_unblock_mgmt_io
(
struct
lpfc_hba
*);
186
void
lpfc_offline_prep
(
struct
lpfc_hba
*,
int
);
187
void
lpfc_offline
(
struct
lpfc_hba
*);
188
void
lpfc_reset_hba
(
struct
lpfc_hba
*);
189
190
int
lpfc_sli_setup
(
struct
lpfc_hba
*);
191
int
lpfc_sli_queue_setup
(
struct
lpfc_hba
*);
192
193
void
lpfc_handle_eratt
(
struct
lpfc_hba
*);
194
void
lpfc_handle_latt
(
struct
lpfc_hba
*);
195
irqreturn_t
lpfc_sli_intr_handler
(
int
,
void
*);
196
irqreturn_t
lpfc_sli_sp_intr_handler
(
int
,
void
*);
197
irqreturn_t
lpfc_sli_fp_intr_handler
(
int
,
void
*);
198
irqreturn_t
lpfc_sli4_intr_handler
(
int
,
void
*);
199
irqreturn_t
lpfc_sli4_hba_intr_handler
(
int
,
void
*);
200
201
void
lpfc_read_rev
(
struct
lpfc_hba
*,
LPFC_MBOXQ_t
*);
202
void
lpfc_sli4_swap_str
(
struct
lpfc_hba
*,
LPFC_MBOXQ_t
*);
203
void
lpfc_config_ring
(
struct
lpfc_hba
*,
int
,
LPFC_MBOXQ_t
*);
204
void
lpfc_config_port
(
struct
lpfc_hba
*,
LPFC_MBOXQ_t
*);
205
void
lpfc_kill_board
(
struct
lpfc_hba
*,
LPFC_MBOXQ_t
*);
206
void
lpfc_mbox_put
(
struct
lpfc_hba
*,
LPFC_MBOXQ_t
*);
207
LPFC_MBOXQ_t
*
lpfc_mbox_get
(
struct
lpfc_hba
*);
208
void
__lpfc_mbox_cmpl_put
(
struct
lpfc_hba
*,
LPFC_MBOXQ_t
*);
209
void
lpfc_mbox_cmpl_put
(
struct
lpfc_hba
*,
LPFC_MBOXQ_t
*);
210
int
lpfc_mbox_cmd_check
(
struct
lpfc_hba
*,
LPFC_MBOXQ_t
*);
211
int
lpfc_mbox_dev_check
(
struct
lpfc_hba
*);
212
int
lpfc_mbox_tmo_val
(
struct
lpfc_hba
*,
LPFC_MBOXQ_t
*);
213
void
lpfc_init_vfi
(
struct
lpfcMboxq
*,
struct
lpfc_vport
*);
214
void
lpfc_reg_vfi
(
struct
lpfcMboxq
*,
struct
lpfc_vport
*,
dma_addr_t
);
215
void
lpfc_init_vpi
(
struct
lpfc_hba
*,
struct
lpfcMboxq
*,
uint16_t
);
216
void
lpfc_unreg_vfi
(
struct
lpfcMboxq
*,
struct
lpfc_vport
*);
217
void
lpfc_reg_fcfi
(
struct
lpfc_hba
*,
struct
lpfcMboxq
*);
218
void
lpfc_unreg_fcfi
(
struct
lpfcMboxq
*,
uint16_t
);
219
void
lpfc_resume_rpi
(
struct
lpfcMboxq
*,
struct
lpfc_nodelist
*);
220
int
lpfc_check_pending_fcoe_event
(
struct
lpfc_hba
*,
uint8_t
);
221
void
lpfc_issue_init_vpi
(
struct
lpfc_vport
*);
222
223
void
lpfc_config_hbq
(
struct
lpfc_hba
*,
uint32_t
,
struct
lpfc_hbq_init
*,
224
uint32_t
,
LPFC_MBOXQ_t
*);
225
struct
hbq_dmabuf
*
lpfc_els_hbq_alloc
(
struct
lpfc_hba
*);
226
void
lpfc_els_hbq_free
(
struct
lpfc_hba
*,
struct
hbq_dmabuf
*);
227
struct
hbq_dmabuf
*
lpfc_sli4_rb_alloc
(
struct
lpfc_hba
*);
228
void
lpfc_sli4_rb_free
(
struct
lpfc_hba
*,
struct
hbq_dmabuf
*);
229
void
lpfc_sli4_build_dflt_fcf_record
(
struct
lpfc_hba
*,
struct
fcf_record
*,
230
uint16_t
);
231
void
lpfc_unregister_fcf
(
struct
lpfc_hba
*);
232
void
lpfc_unregister_fcf_rescan
(
struct
lpfc_hba
*);
233
void
lpfc_unregister_unused_fcf
(
struct
lpfc_hba
*);
234
int
lpfc_sli4_redisc_fcf_table
(
struct
lpfc_hba
*);
235
void
lpfc_fcf_redisc_wait_start_timer
(
struct
lpfc_hba
*);
236
void
lpfc_sli4_fcf_dead_failthrough
(
struct
lpfc_hba
*);
237
uint16_t
lpfc_sli4_fcf_rr_next_index_get
(
struct
lpfc_hba
*);
238
void
lpfc_sli4_set_fcf_flogi_fail
(
struct
lpfc_hba
*,
uint16_t
);
239
int
lpfc_sli4_fcf_rr_index_set
(
struct
lpfc_hba
*,
uint16_t
);
240
void
lpfc_sli4_fcf_rr_index_clear
(
struct
lpfc_hba
*,
uint16_t
);
241
int
lpfc_sli4_fcf_rr_next_proc
(
struct
lpfc_vport
*,
uint16_t
);
242
void
lpfc_sli4_clear_fcf_rr_bmask
(
struct
lpfc_hba
*);
243
244
int
lpfc_mem_alloc
(
struct
lpfc_hba
*,
int
align
);
245
void
lpfc_mem_free
(
struct
lpfc_hba
*);
246
void
lpfc_mem_free_all
(
struct
lpfc_hba
*);
247
void
lpfc_stop_vport_timers
(
struct
lpfc_vport
*);
248
249
void
lpfc_poll_timeout
(
unsigned
long
ptr
);
250
void
lpfc_poll_start_timer
(
struct
lpfc_hba
*);
251
void
lpfc_poll_eratt
(
unsigned
long
);
252
int
253
lpfc_sli_handle_fast_ring_event
(
struct
lpfc_hba
*,
254
struct
lpfc_sli_ring
*,
uint32_t
);
255
256
struct
lpfc_iocbq
*
__lpfc_sli_get_iocbq
(
struct
lpfc_hba
*);
257
struct
lpfc_iocbq
*
lpfc_sli_get_iocbq
(
struct
lpfc_hba
*);
258
void
lpfc_sli_release_iocbq
(
struct
lpfc_hba
*,
struct
lpfc_iocbq
*);
259
uint16_t
lpfc_sli_next_iotag
(
struct
lpfc_hba
*,
struct
lpfc_iocbq
*);
260
void
lpfc_sli_cancel_iocbs
(
struct
lpfc_hba
*,
struct
list_head
*,
uint32_t
,
261
uint32_t
);
262
void
lpfc_sli_wake_mbox_wait
(
struct
lpfc_hba
*,
LPFC_MBOXQ_t
*);
263
int
lpfc_selective_reset
(
struct
lpfc_hba
*);
264
void
lpfc_reset_barrier
(
struct
lpfc_hba
*);
265
int
lpfc_sli_brdready
(
struct
lpfc_hba
*,
uint32_t
);
266
int
lpfc_sli_brdkill
(
struct
lpfc_hba
*);
267
int
lpfc_sli_brdreset
(
struct
lpfc_hba
*);
268
int
lpfc_sli_brdrestart
(
struct
lpfc_hba
*);
269
int
lpfc_sli_hba_setup
(
struct
lpfc_hba
*);
270
int
lpfc_sli_config_port
(
struct
lpfc_hba
*,
int
);
271
int
lpfc_sli_host_down
(
struct
lpfc_vport
*);
272
int
lpfc_sli_hba_down
(
struct
lpfc_hba
*);
273
int
lpfc_sli_issue_mbox
(
struct
lpfc_hba
*,
LPFC_MBOXQ_t
*,
uint32_t
);
274
int
lpfc_sli_handle_mb_event
(
struct
lpfc_hba
*);
275
void
lpfc_sli_mbox_sys_shutdown
(
struct
lpfc_hba
*,
int
);
276
int
lpfc_sli_check_eratt
(
struct
lpfc_hba
*);
277
void
lpfc_sli_handle_slow_ring_event
(
struct
lpfc_hba
*,
278
struct
lpfc_sli_ring
*,
uint32_t
);
279
void
lpfc_sli4_handle_received_buffer
(
struct
lpfc_hba
*,
struct
hbq_dmabuf
*);
280
void
lpfc_sli_def_mbox_cmpl
(
struct
lpfc_hba
*,
LPFC_MBOXQ_t
*);
281
int
lpfc_sli_issue_iocb
(
struct
lpfc_hba
*,
uint32_t
,
282
struct
lpfc_iocbq
*,
uint32_t
);
283
void
lpfc_sli_pcimem_bcopy
(
void
*,
void
*,
uint32_t
);
284
void
lpfc_sli_bemem_bcopy
(
void
*,
void
*,
uint32_t
);
285
void
lpfc_sli_abort_iocb_ring
(
struct
lpfc_hba
*,
struct
lpfc_sli_ring
*);
286
void
lpfc_sli_hba_iocb_abort
(
struct
lpfc_hba
*);
287
void
lpfc_sli_flush_fcp_rings
(
struct
lpfc_hba
*);
288
int
lpfc_sli_ringpostbuf_put
(
struct
lpfc_hba
*,
struct
lpfc_sli_ring
*,
289
struct
lpfc_dmabuf
*);
290
struct
lpfc_dmabuf
*
lpfc_sli_ringpostbuf_get
(
struct
lpfc_hba
*,
291
struct
lpfc_sli_ring
*,
292
dma_addr_t
);
293
294
uint32_t
lpfc_sli_get_buffer_tag
(
struct
lpfc_hba
*);
295
struct
lpfc_dmabuf
*
lpfc_sli_ring_taggedbuf_get
(
struct
lpfc_hba
*,
296
struct
lpfc_sli_ring
*,
uint32_t
);
297
298
int
lpfc_sli_hbq_count
(
void
);
299
int
lpfc_sli_hbqbuf_add_hbqs
(
struct
lpfc_hba
*,
uint32_t
);
300
void
lpfc_sli_hbqbuf_free_all
(
struct
lpfc_hba
*);
301
int
lpfc_sli_hbq_size
(
void
);
302
int
lpfc_sli_issue_abort_iotag
(
struct
lpfc_hba
*,
struct
lpfc_sli_ring
*,
303
struct
lpfc_iocbq
*);
304
int
lpfc_sli_sum_iocb
(
struct
lpfc_vport
*,
uint16_t
,
uint64_t
,
lpfc_ctx_cmd
);
305
int
lpfc_sli_abort_iocb
(
struct
lpfc_vport
*,
struct
lpfc_sli_ring
*,
uint16_t
,
306
uint64_t
,
lpfc_ctx_cmd
);
307
308
void
lpfc_mbox_timeout
(
unsigned
long
);
309
void
lpfc_mbox_timeout_handler
(
struct
lpfc_hba
*);
310
311
struct
lpfc_nodelist
*
lpfc_findnode_did
(
struct
lpfc_vport
*,
uint32_t
);
312
struct
lpfc_nodelist
*
lpfc_findnode_wwpn
(
struct
lpfc_vport
*,
313
struct
lpfc_name
*);
314
315
int
lpfc_sli_issue_mbox_wait
(
struct
lpfc_hba
*,
LPFC_MBOXQ_t
*,
uint32_t
);
316
317
int
lpfc_sli_issue_iocb_wait
(
struct
lpfc_hba
*,
uint32_t
,
318
struct
lpfc_iocbq
*,
struct
lpfc_iocbq
*,
319
uint32_t
);
320
void
lpfc_sli_abort_fcp_cmpl
(
struct
lpfc_hba
*,
struct
lpfc_iocbq
*,
321
struct
lpfc_iocbq
*);
322
323
void
lpfc_sli_free_hbq
(
struct
lpfc_hba
*,
struct
hbq_dmabuf
*);
324
325
void
*
lpfc_mbuf_alloc
(
struct
lpfc_hba
*,
int
,
dma_addr_t
*);
326
void
__lpfc_mbuf_free
(
struct
lpfc_hba
*,
void
*,
dma_addr_t
);
327
void
lpfc_mbuf_free
(
struct
lpfc_hba
*,
void
*,
dma_addr_t
);
328
329
void
lpfc_in_buf_free
(
struct
lpfc_hba
*,
struct
lpfc_dmabuf
*);
330
/* Function prototypes. */
331
const
char
*
lpfc_info
(
struct
Scsi_Host
*);
332
int
lpfc_scan_finished
(
struct
Scsi_Host
*,
unsigned
long
);
333
334
int
lpfc_init_api_table_setup
(
struct
lpfc_hba
*,
uint8_t
);
335
int
lpfc_sli_api_table_setup
(
struct
lpfc_hba
*,
uint8_t
);
336
int
lpfc_scsi_api_table_setup
(
struct
lpfc_hba
*,
uint8_t
);
337
int
lpfc_mbox_api_table_setup
(
struct
lpfc_hba
*,
uint8_t
);
338
int
lpfc_api_table_setup
(
struct
lpfc_hba
*,
uint8_t
);
339
340
void
lpfc_get_cfgparam
(
struct
lpfc_hba
*);
341
void
lpfc_get_vport_cfgparam
(
struct
lpfc_vport
*);
342
int
lpfc_alloc_sysfs_attr
(
struct
lpfc_vport
*);
343
void
lpfc_free_sysfs_attr
(
struct
lpfc_vport
*);
344
extern
struct
device_attribute
*
lpfc_hba_attrs
[];
345
extern
struct
device_attribute
*
lpfc_vport_attrs
[];
346
extern
struct
scsi_host_template
lpfc_template
;
347
extern
struct
scsi_host_template
lpfc_vport_template
;
348
extern
struct
fc_function_template
lpfc_transport_functions
;
349
extern
struct
fc_function_template
lpfc_vport_transport_functions
;
350
extern
int
lpfc_sli_mode
;
351
extern
int
lpfc_enable_npiv
;
352
extern
int
lpfc_delay_discovery
;
353
354
int
lpfc_vport_symbolic_node_name
(
struct
lpfc_vport
*,
char
*,
size_t
);
355
int
lpfc_vport_symbolic_port_name
(
struct
lpfc_vport
*,
char
*,
size_t
);
356
void
lpfc_terminate_rport_io
(
struct
fc_rport
*);
357
void
lpfc_dev_loss_tmo_callbk
(
struct
fc_rport
*
rport
);
358
359
struct
lpfc_vport
*
lpfc_create_port
(
struct
lpfc_hba
*,
int
,
struct
device
*);
360
int
lpfc_vport_disable
(
struct
fc_vport
*
fc_vport
,
bool
disable
);
361
int
lpfc_mbx_unreg_vpi
(
struct
lpfc_vport
*);
362
void
destroy_port
(
struct
lpfc_vport
*);
363
int
lpfc_get_instance
(
void
);
364
void
lpfc_host_attrib_init
(
struct
Scsi_Host
*);
365
366
extern
void
lpfc_debugfs_initialize
(
struct
lpfc_vport
*);
367
extern
void
lpfc_debugfs_terminate
(
struct
lpfc_vport
*);
368
extern
void
lpfc_debugfs_disc_trc
(
struct
lpfc_vport
*,
int
,
char
*,
uint32_t
,
369
uint32_t
,
uint32_t
);
370
extern
void
lpfc_debugfs_slow_ring_trc
(
struct
lpfc_hba
*,
char
*,
uint32_t
,
371
uint32_t
,
uint32_t
);
372
extern
struct
lpfc_hbq_init
*
lpfc_hbq_defs
[];
373
374
/* SLI4 if_type 2 externs. */
375
int
lpfc_sli4_alloc_resource_identifiers
(
struct
lpfc_hba
*);
376
int
lpfc_sli4_dealloc_resource_identifiers
(
struct
lpfc_hba
*);
377
int
lpfc_sli4_get_allocated_extnts
(
struct
lpfc_hba
*,
uint16_t
,
378
uint16_t
*,
uint16_t
*);
379
int
lpfc_sli4_get_avail_extnt_rsrc
(
struct
lpfc_hba
*,
uint16_t
,
380
uint16_t
*,
uint16_t
*);
381
382
/* externs BlockGuard */
383
extern
char
*
_dump_buf_data
;
384
extern
unsigned
long
_dump_buf_data_order
;
385
extern
char
*
_dump_buf_dif
;
386
extern
unsigned
long
_dump_buf_dif_order
;
387
extern
spinlock_t
_dump_buf_lock
;
388
extern
int
_dump_buf_done
;
389
extern
spinlock_t
pgcnt_lock
;
390
extern
unsigned
int
pgcnt
;
391
extern
unsigned
int
lpfc_prot_mask
;
392
extern
unsigned
char
lpfc_prot_guard
;
393
extern
unsigned
int
lpfc_fcp_look_ahead
;
394
395
/* Interface exported by fabric iocb scheduler */
396
void
lpfc_fabric_abort_nport
(
struct
lpfc_nodelist
*);
397
void
lpfc_fabric_abort_hba
(
struct
lpfc_hba
*);
398
void
lpfc_fabric_block_timeout
(
unsigned
long
);
399
void
lpfc_unblock_fabric_iocbs
(
struct
lpfc_hba
*);
400
void
lpfc_rampdown_queue_depth
(
struct
lpfc_hba
*);
401
void
lpfc_ramp_down_queue_handler
(
struct
lpfc_hba
*);
402
void
lpfc_ramp_up_queue_handler
(
struct
lpfc_hba
*);
403
void
lpfc_scsi_dev_block
(
struct
lpfc_hba
*);
404
405
void
406
lpfc_send_els_failure_event
(
struct
lpfc_hba
*,
struct
lpfc_iocbq
*,
407
struct
lpfc_iocbq
*);
408
struct
lpfc_fast_path_event
*
lpfc_alloc_fast_evt
(
struct
lpfc_hba
*);
409
void
lpfc_free_fast_evt
(
struct
lpfc_hba
*,
struct
lpfc_fast_path_event
*);
410
void
lpfc_create_static_vport
(
struct
lpfc_hba
*);
411
void
lpfc_stop_hba_timers
(
struct
lpfc_hba
*);
412
void
lpfc_stop_port
(
struct
lpfc_hba
*);
413
void
__lpfc_sli4_stop_fcf_redisc_wait_timer
(
struct
lpfc_hba
*);
414
void
lpfc_sli4_stop_fcf_redisc_wait_timer
(
struct
lpfc_hba
*);
415
void
lpfc_parse_fcoe_conf
(
struct
lpfc_hba
*,
uint8_t
*,
uint32_t
);
416
int
lpfc_parse_vpd
(
struct
lpfc_hba
*,
uint8_t
*,
int
);
417
void
lpfc_start_fdiscs
(
struct
lpfc_hba
*phba);
418
struct
lpfc_vport
*
lpfc_find_vport_by_vpid
(
struct
lpfc_hba
*,
uint16_t
);
419
struct
lpfc_sglq
*
__lpfc_get_active_sglq
(
struct
lpfc_hba
*,
uint16_t
);
420
#define ScsiResult(host_code, scsi_code) (((host_code) << 16) | scsi_code)
421
#define HBA_EVENT_RSCN 5
422
#define HBA_EVENT_LINK_UP 2
423
#define HBA_EVENT_LINK_DOWN 3
424
425
/* functions to support SGIOv4/bsg interface */
426
int
lpfc_bsg_request
(
struct
fc_bsg_job
*);
427
int
lpfc_bsg_timeout
(
struct
fc_bsg_job
*);
428
int
lpfc_bsg_ct_unsol_event
(
struct
lpfc_hba
*,
struct
lpfc_sli_ring
*,
429
struct
lpfc_iocbq
*);
430
void
__lpfc_sli_ringtx_put
(
struct
lpfc_hba
*,
struct
lpfc_sli_ring
*,
431
struct
lpfc_iocbq
*);
432
struct
lpfc_iocbq
*
lpfc_sli_ringtx_get
(
struct
lpfc_hba
*,
433
struct
lpfc_sli_ring
*);
434
int
__lpfc_sli_issue_iocb
(
struct
lpfc_hba
*,
uint32_t
,
435
struct
lpfc_iocbq
*,
uint32_t
);
436
uint32_t
lpfc_drain_txq
(
struct
lpfc_hba
*);
437
void
lpfc_clr_rrq_active
(
struct
lpfc_hba
*,
uint16_t
,
struct
lpfc_node_rrq
*);
438
int
lpfc_test_rrq_active
(
struct
lpfc_hba
*,
struct
lpfc_nodelist
*,
uint16_t
);
439
void
lpfc_handle_rrq_active
(
struct
lpfc_hba
*);
440
int
lpfc_send_rrq
(
struct
lpfc_hba
*,
struct
lpfc_node_rrq
*);
441
int
lpfc_set_rrq_active
(
struct
lpfc_hba
*,
struct
lpfc_nodelist
*,
442
uint16_t
,
uint16_t
,
uint16_t
);
443
uint16_t
lpfc_sli4_xri_inrange
(
struct
lpfc_hba
*,
uint16_t
);
444
void
lpfc_cleanup_wt_rrqs
(
struct
lpfc_hba
*);
445
void
lpfc_cleanup_vports_rrqs
(
struct
lpfc_vport
*,
struct
lpfc_nodelist
*);
446
struct
lpfc_node_rrq
*
lpfc_get_active_rrq
(
struct
lpfc_vport
*,
uint16_t
,
447
uint32_t
);
448
void
lpfc_idiag_mbxacc_dump_bsg_mbox
(
struct
lpfc_hba
*,
enum
nemb_type
,
449
enum
mbox_type
,
enum
dma_type
,
enum
sta_type
,
450
struct
lpfc_dmabuf
*,
uint32_t
);
451
void
lpfc_idiag_mbxacc_dump_issue_mbox
(
struct
lpfc_hba
*,
MAILBOX_t
*);
452
int
lpfc_wr_object
(
struct
lpfc_hba
*,
struct
list_head
*,
uint32_t
,
uint32_t
*);
453
/* functions to support SR-IOV */
454
int
lpfc_sli_probe_sriov_nr_virtfn
(
struct
lpfc_hba
*,
int
);
455
uint16_t
lpfc_sli_sriov_nr_virtfn_get
(
struct
lpfc_hba
*);
456
int
lpfc_sli4_queue_create
(
struct
lpfc_hba
*);
457
void
lpfc_sli4_queue_destroy
(
struct
lpfc_hba
*);
458
void
lpfc_sli4_abts_err_handler
(
struct
lpfc_hba
*,
struct
lpfc_nodelist
*,
459
struct
sli4_wcqe_xri_aborted
*);
460
void
lpfc_sli_abts_recover_port
(
struct
lpfc_vport
*,
461
struct
lpfc_nodelist
*);
462
int
lpfc_hba_init_link_fc_topology
(
struct
lpfc_hba
*,
uint32_t
,
uint32_t
);
463
int
lpfc_issue_reg_vfi
(
struct
lpfc_vport
*);
464
int
lpfc_issue_unreg_vfi
(
struct
lpfc_vport
*);
465
int
lpfc_selective_reset
(
struct
lpfc_hba
*);
466
int
lpfc_sli4_read_config
(
struct
lpfc_hba
*);
467
void
lpfc_sli4_node_prep
(
struct
lpfc_hba
*);
468
int
lpfc_sli4_xri_sgl_update
(
struct
lpfc_hba
*);
469
void
lpfc_free_sgl_list
(
struct
lpfc_hba
*,
struct
list_head
*);
470
uint32_t
lpfc_sli_port_speed_get
(
struct
lpfc_hba
*);
Generated on Thu Jan 10 2013 14:21:43 for Linux Kernel by
1.8.2