#include "bfad_drv.h"
#include "bfad_im.h"
#include "bfa_plog.h"
#include "bfa_cs.h"
#include "bfa_modules.h"
BFA_TRC_FILE(…);
#define BFA_LPS_MIN_LPORTS …
#define BFA_LPS_MAX_LPORTS …
#define BFA_LPS_MAX_VPORTS_SUPP_CB …
#define BFA_LPS_MAX_VPORTS_SUPP_CT …
#define BFA_PORT_IS_DISABLED(bfa) …
#define bfa_rport_offline_cb(__rp) …
#define bfa_rport_online_cb(__rp) …
static void __bfa_fcxp_send_cbfn(void *cbarg, bfa_boolean_t complete);
static void hal_fcxp_rx_plog(struct bfa_s *bfa, struct bfa_fcxp_s *fcxp,
struct bfi_fcxp_send_rsp_s *fcxp_rsp);
static void hal_fcxp_tx_plog(struct bfa_s *bfa, u32 reqlen,
struct bfa_fcxp_s *fcxp, struct fchs_s *fchs);
static void bfa_fcxp_qresume(void *cbarg);
static void bfa_fcxp_queue(struct bfa_fcxp_s *fcxp,
struct bfi_fcxp_send_req_s *send_req);
static void bfa_lps_login_rsp(struct bfa_s *bfa,
struct bfi_lps_login_rsp_s *rsp);
static void bfa_lps_no_res(struct bfa_lps_s *first_lps, u8 count);
static void bfa_lps_logout_rsp(struct bfa_s *bfa,
struct bfi_lps_logout_rsp_s *rsp);
static void bfa_lps_reqq_resume(void *lps_arg);
static void bfa_lps_free(struct bfa_lps_s *lps);
static void bfa_lps_send_login(struct bfa_lps_s *lps);
static void bfa_lps_send_logout(struct bfa_lps_s *lps);
static void bfa_lps_send_set_n2n_pid(struct bfa_lps_s *lps);
static void bfa_lps_login_comp(struct bfa_lps_s *lps);
static void bfa_lps_logout_comp(struct bfa_lps_s *lps);
static void bfa_lps_cvl_event(struct bfa_lps_s *lps);
static void bfa_lps_sm_init(struct bfa_lps_s *lps, enum bfa_lps_event event);
static void bfa_lps_sm_login(struct bfa_lps_s *lps, enum bfa_lps_event event);
static void bfa_lps_sm_loginwait(struct bfa_lps_s *lps, enum bfa_lps_event
event);
static void bfa_lps_sm_online(struct bfa_lps_s *lps, enum bfa_lps_event event);
static void bfa_lps_sm_online_n2n_pid_wait(struct bfa_lps_s *lps,
enum bfa_lps_event event);
static void bfa_lps_sm_logout(struct bfa_lps_s *lps, enum bfa_lps_event event);
static void bfa_lps_sm_logowait(struct bfa_lps_s *lps, enum bfa_lps_event
event);
static bfa_boolean_t bfa_fcport_send_enable(struct bfa_fcport_s *fcport);
static bfa_boolean_t bfa_fcport_send_disable(struct bfa_fcport_s *fcport);
static void bfa_fcport_update_linkinfo(struct bfa_fcport_s *fcport);
static void bfa_fcport_reset_linkinfo(struct bfa_fcport_s *fcport);
static void bfa_fcport_set_wwns(struct bfa_fcport_s *fcport);
static void __bfa_cb_fcport_event(void *cbarg, bfa_boolean_t complete);
static void bfa_fcport_scn(struct bfa_fcport_s *fcport,
enum bfa_port_linkstate event, bfa_boolean_t trunk);
static void bfa_fcport_queue_cb(struct bfa_fcport_ln_s *ln,
enum bfa_port_linkstate event);
static void __bfa_cb_fcport_stats_clr(void *cbarg, bfa_boolean_t complete);
static void bfa_fcport_stats_get_timeout(void *cbarg);
static void bfa_fcport_stats_clr_timeout(void *cbarg);
static void bfa_trunk_iocdisable(struct bfa_s *bfa);
static void bfa_fcport_sm_uninit(struct bfa_fcport_s *fcport,
enum bfa_fcport_sm_event event);
static void bfa_fcport_sm_enabling_qwait(struct bfa_fcport_s *fcport,
enum bfa_fcport_sm_event event);
static void bfa_fcport_sm_enabling(struct bfa_fcport_s *fcport,
enum bfa_fcport_sm_event event);
static void bfa_fcport_sm_linkdown(struct bfa_fcport_s *fcport,
enum bfa_fcport_sm_event event);
static void bfa_fcport_sm_linkup(struct bfa_fcport_s *fcport,
enum bfa_fcport_sm_event event);
static void bfa_fcport_sm_disabling(struct bfa_fcport_s *fcport,
enum bfa_fcport_sm_event event);
static void bfa_fcport_sm_disabling_qwait(struct bfa_fcport_s *fcport,
enum bfa_fcport_sm_event event);
static void bfa_fcport_sm_toggling_qwait(struct bfa_fcport_s *fcport,
enum bfa_fcport_sm_event event);
static void bfa_fcport_sm_disabled(struct bfa_fcport_s *fcport,
enum bfa_fcport_sm_event event);
static void bfa_fcport_sm_stopped(struct bfa_fcport_s *fcport,
enum bfa_fcport_sm_event event);
static void bfa_fcport_sm_iocdown(struct bfa_fcport_s *fcport,
enum bfa_fcport_sm_event event);
static void bfa_fcport_sm_iocfail(struct bfa_fcport_s *fcport,
enum bfa_fcport_sm_event event);
static void bfa_fcport_sm_dport(struct bfa_fcport_s *fcport,
enum bfa_fcport_sm_event event);
static void bfa_fcport_sm_ddport(struct bfa_fcport_s *fcport,
enum bfa_fcport_sm_event event);
static void bfa_fcport_sm_faa_misconfig(struct bfa_fcport_s *fcport,
enum bfa_fcport_sm_event event);
static void bfa_fcport_ln_sm_dn(struct bfa_fcport_ln_s *ln,
enum bfa_fcport_ln_sm_event event);
static void bfa_fcport_ln_sm_dn_nf(struct bfa_fcport_ln_s *ln,
enum bfa_fcport_ln_sm_event event);
static void bfa_fcport_ln_sm_dn_up_nf(struct bfa_fcport_ln_s *ln,
enum bfa_fcport_ln_sm_event event);
static void bfa_fcport_ln_sm_up(struct bfa_fcport_ln_s *ln,
enum bfa_fcport_ln_sm_event event);
static void bfa_fcport_ln_sm_up_nf(struct bfa_fcport_ln_s *ln,
enum bfa_fcport_ln_sm_event event);
static void bfa_fcport_ln_sm_up_dn_nf(struct bfa_fcport_ln_s *ln,
enum bfa_fcport_ln_sm_event event);
static void bfa_fcport_ln_sm_up_dn_up_nf(struct bfa_fcport_ln_s *ln,
enum bfa_fcport_ln_sm_event event);
struct bfa_fcport_sm_table_s { … };
static inline enum bfa_port_states
bfa_fcport_sm_to_state(struct bfa_fcport_sm_table_s *smt, bfa_fcport_sm_t sm)
{ … }
static struct bfa_fcport_sm_table_s hal_port_sm_table[] = …;
static struct bfa_rport_s *bfa_rport_alloc(struct bfa_rport_mod_s *rp_mod);
static void bfa_rport_free(struct bfa_rport_s *rport);
static bfa_boolean_t bfa_rport_send_fwcreate(struct bfa_rport_s *rp);
static bfa_boolean_t bfa_rport_send_fwdelete(struct bfa_rport_s *rp);
static bfa_boolean_t bfa_rport_send_fwspeed(struct bfa_rport_s *rp);
static void __bfa_cb_rport_online(void *cbarg,
bfa_boolean_t complete);
static void __bfa_cb_rport_offline(void *cbarg,
bfa_boolean_t complete);
static void bfa_rport_sm_uninit(struct bfa_rport_s *rp,
enum bfa_rport_event event);
static void bfa_rport_sm_created(struct bfa_rport_s *rp,
enum bfa_rport_event event);
static void bfa_rport_sm_fwcreate(struct bfa_rport_s *rp,
enum bfa_rport_event event);
static void bfa_rport_sm_online(struct bfa_rport_s *rp,
enum bfa_rport_event event);
static void bfa_rport_sm_fwdelete(struct bfa_rport_s *rp,
enum bfa_rport_event event);
static void bfa_rport_sm_offline(struct bfa_rport_s *rp,
enum bfa_rport_event event);
static void bfa_rport_sm_deleting(struct bfa_rport_s *rp,
enum bfa_rport_event event);
static void bfa_rport_sm_offline_pending(struct bfa_rport_s *rp,
enum bfa_rport_event event);
static void bfa_rport_sm_delete_pending(struct bfa_rport_s *rp,
enum bfa_rport_event event);
static void bfa_rport_sm_iocdisable(struct bfa_rport_s *rp,
enum bfa_rport_event event);
static void bfa_rport_sm_fwcreate_qfull(struct bfa_rport_s *rp,
enum bfa_rport_event event);
static void bfa_rport_sm_fwdelete_qfull(struct bfa_rport_s *rp,
enum bfa_rport_event event);
static void bfa_rport_sm_deleting_qfull(struct bfa_rport_s *rp,
enum bfa_rport_event event);
static int
plkd_validate_logrec(struct bfa_plog_rec_s *pl_rec)
{ … }
static void
bfa_plog_add(struct bfa_plog_s *plog, struct bfa_plog_rec_s *pl_rec)
{ … }
void
bfa_plog_init(struct bfa_plog_s *plog)
{ … }
void
bfa_plog_str(struct bfa_plog_s *plog, enum bfa_plog_mid mid,
enum bfa_plog_eid event,
u16 misc, char *log_str)
{ … }
void
bfa_plog_intarr(struct bfa_plog_s *plog, enum bfa_plog_mid mid,
enum bfa_plog_eid event,
u16 misc, u32 *intarr, u32 num_ints)
{ … }
void
bfa_plog_fchdr(struct bfa_plog_s *plog, enum bfa_plog_mid mid,
enum bfa_plog_eid event,
u16 misc, struct fchs_s *fchdr)
{ … }
void
bfa_plog_fchdr_and_pl(struct bfa_plog_s *plog, enum bfa_plog_mid mid,
enum bfa_plog_eid event, u16 misc, struct fchs_s *fchdr,
u32 pld_w0)
{ … }
static void
claim_fcxps_mem(struct bfa_fcxp_mod_s *mod)
{ … }
void
bfa_fcxp_meminfo(struct bfa_iocfc_cfg_s *cfg, struct bfa_meminfo_s *minfo,
struct bfa_s *bfa)
{ … }
void
bfa_fcxp_attach(struct bfa_s *bfa, void *bfad, struct bfa_iocfc_cfg_s *cfg,
struct bfa_pcidev_s *pcidev)
{ … }
void
bfa_fcxp_iocdisable(struct bfa_s *bfa)
{ … }
static struct bfa_fcxp_s *
bfa_fcxp_get(struct bfa_fcxp_mod_s *fm, bfa_boolean_t req)
{ … }
static void
bfa_fcxp_init_reqrsp(struct bfa_fcxp_s *fcxp,
struct bfa_s *bfa,
u8 *use_ibuf,
u32 *nr_sgles,
bfa_fcxp_get_sgaddr_t *r_sga_cbfn,
bfa_fcxp_get_sglen_t *r_sglen_cbfn,
struct list_head *r_sgpg_q,
int n_sgles,
bfa_fcxp_get_sgaddr_t sga_cbfn,
bfa_fcxp_get_sglen_t sglen_cbfn)
{ … }
static void
bfa_fcxp_init(struct bfa_fcxp_s *fcxp,
void *caller, struct bfa_s *bfa, int nreq_sgles,
int nrsp_sgles, bfa_fcxp_get_sgaddr_t req_sga_cbfn,
bfa_fcxp_get_sglen_t req_sglen_cbfn,
bfa_fcxp_get_sgaddr_t rsp_sga_cbfn,
bfa_fcxp_get_sglen_t rsp_sglen_cbfn)
{ … }
static void
bfa_fcxp_put(struct bfa_fcxp_s *fcxp)
{ … }
static void
bfa_fcxp_null_comp(void *bfad_fcxp, struct bfa_fcxp_s *fcxp, void *cbarg,
bfa_status_t req_status, u32 rsp_len,
u32 resid_len, struct fchs_s *rsp_fchs)
{ … }
static void
__bfa_fcxp_send_cbfn(void *cbarg, bfa_boolean_t complete)
{ … }
static void
hal_fcxp_send_comp(struct bfa_s *bfa, struct bfi_fcxp_send_rsp_s *fcxp_rsp)
{ … }
static void
hal_fcxp_tx_plog(struct bfa_s *bfa, u32 reqlen, struct bfa_fcxp_s *fcxp,
struct fchs_s *fchs)
{ … }
static void
hal_fcxp_rx_plog(struct bfa_s *bfa, struct bfa_fcxp_s *fcxp,
struct bfi_fcxp_send_rsp_s *fcxp_rsp)
{ … }
static void
bfa_fcxp_qresume(void *cbarg)
{ … }
static void
bfa_fcxp_queue(struct bfa_fcxp_s *fcxp, struct bfi_fcxp_send_req_s *send_req)
{ … }
struct bfa_fcxp_s *
bfa_fcxp_req_rsp_alloc(void *caller, struct bfa_s *bfa, int nreq_sgles,
int nrsp_sgles, bfa_fcxp_get_sgaddr_t req_sga_cbfn,
bfa_fcxp_get_sglen_t req_sglen_cbfn,
bfa_fcxp_get_sgaddr_t rsp_sga_cbfn,
bfa_fcxp_get_sglen_t rsp_sglen_cbfn, bfa_boolean_t req)
{ … }
void *
bfa_fcxp_get_reqbuf(struct bfa_fcxp_s *fcxp)
{ … }
u32
bfa_fcxp_get_reqbufsz(struct bfa_fcxp_s *fcxp)
{ … }
void *
bfa_fcxp_get_rspbuf(struct bfa_fcxp_s *fcxp)
{ … }
void
bfa_fcxp_free(struct bfa_fcxp_s *fcxp)
{ … }
void
bfa_fcxp_send(struct bfa_fcxp_s *fcxp, struct bfa_rport_s *rport,
u16 vf_id, u8 lp_tag, bfa_boolean_t cts, enum fc_cos cos,
u32 reqlen, struct fchs_s *fchs, bfa_cb_fcxp_send_t cbfn,
void *cbarg, u32 rsp_maxlen, u8 rsp_timeout)
{ … }
bfa_status_t
bfa_fcxp_abort(struct bfa_fcxp_s *fcxp)
{ … }
void
bfa_fcxp_req_rsp_alloc_wait(struct bfa_s *bfa, struct bfa_fcxp_wqe_s *wqe,
bfa_fcxp_alloc_cbfn_t alloc_cbfn, void *alloc_cbarg,
void *caller, int nreq_sgles,
int nrsp_sgles, bfa_fcxp_get_sgaddr_t req_sga_cbfn,
bfa_fcxp_get_sglen_t req_sglen_cbfn,
bfa_fcxp_get_sgaddr_t rsp_sga_cbfn,
bfa_fcxp_get_sglen_t rsp_sglen_cbfn, bfa_boolean_t req)
{ … }
void
bfa_fcxp_walloc_cancel(struct bfa_s *bfa, struct bfa_fcxp_wqe_s *wqe)
{ … }
void
bfa_fcxp_discard(struct bfa_fcxp_s *fcxp)
{ … }
void
bfa_fcxp_isr(struct bfa_s *bfa, struct bfi_msg_s *msg)
{ … }
u32
bfa_fcxp_get_maxrsp(struct bfa_s *bfa)
{ … }
void
bfa_fcxp_res_recfg(struct bfa_s *bfa, u16 num_fcxp_fw)
{ … }
static void
bfa_lps_sm_init(struct bfa_lps_s *lps, enum bfa_lps_event event)
{ … }
static void
bfa_lps_sm_login(struct bfa_lps_s *lps, enum bfa_lps_event event)
{ … }
static void
bfa_lps_sm_loginwait(struct bfa_lps_s *lps, enum bfa_lps_event event)
{ … }
static void
bfa_lps_sm_online(struct bfa_lps_s *lps, enum bfa_lps_event event)
{ … }
static void
bfa_lps_sm_online_n2n_pid_wait(struct bfa_lps_s *lps, enum bfa_lps_event event)
{ … }
static void
bfa_lps_sm_logout(struct bfa_lps_s *lps, enum bfa_lps_event event)
{ … }
static void
bfa_lps_sm_logowait(struct bfa_lps_s *lps, enum bfa_lps_event event)
{ … }
void
bfa_lps_meminfo(struct bfa_iocfc_cfg_s *cfg, struct bfa_meminfo_s *minfo,
struct bfa_s *bfa)
{ … }
void
bfa_lps_attach(struct bfa_s *bfa, void *bfad, struct bfa_iocfc_cfg_s *cfg,
struct bfa_pcidev_s *pcidev)
{ … }
void
bfa_lps_iocdisable(struct bfa_s *bfa)
{ … }
static void
bfa_lps_login_rsp(struct bfa_s *bfa, struct bfi_lps_login_rsp_s *rsp)
{ … }
static void
bfa_lps_no_res(struct bfa_lps_s *first_lps, u8 count)
{ … }
static void
bfa_lps_logout_rsp(struct bfa_s *bfa, struct bfi_lps_logout_rsp_s *rsp)
{ … }
static void
bfa_lps_rx_cvl_event(struct bfa_s *bfa, struct bfi_lps_cvl_event_s *cvl)
{ … }
static void
bfa_lps_reqq_resume(void *lps_arg)
{ … }
static void
bfa_lps_free(struct bfa_lps_s *lps)
{ … }
static void
bfa_lps_send_login(struct bfa_lps_s *lps)
{ … }
static void
bfa_lps_send_logout(struct bfa_lps_s *lps)
{ … }
static void
bfa_lps_send_set_n2n_pid(struct bfa_lps_s *lps)
{ … }
static void
bfa_lps_login_comp_cb(void *arg, bfa_boolean_t complete)
{ … }
static void
bfa_lps_login_comp(struct bfa_lps_s *lps)
{ … }
static void
bfa_lps_logout_comp_cb(void *arg, bfa_boolean_t complete)
{ … }
static void
bfa_lps_logout_comp(struct bfa_lps_s *lps)
{ … }
static void
bfa_lps_cvl_event_cb(void *arg, bfa_boolean_t complete)
{ … }
static void
bfa_lps_cvl_event(struct bfa_lps_s *lps)
{ … }
u32
bfa_lps_get_max_vport(struct bfa_s *bfa)
{ … }
struct bfa_lps_s *
bfa_lps_alloc(struct bfa_s *bfa)
{ … }
void
bfa_lps_delete(struct bfa_lps_s *lps)
{ … }
void
bfa_lps_flogi(struct bfa_lps_s *lps, void *uarg, u8 alpa, u16 pdusz,
wwn_t pwwn, wwn_t nwwn, bfa_boolean_t auth_en)
{ … }
void
bfa_lps_fdisc(struct bfa_lps_s *lps, void *uarg, u16 pdusz, wwn_t pwwn,
wwn_t nwwn)
{ … }
void
bfa_lps_fdisclogo(struct bfa_lps_s *lps)
{ … }
u8
bfa_lps_get_fwtag(struct bfa_s *bfa, u8 lp_tag)
{ … }
u8
bfa_lps_get_tag_from_pid(struct bfa_s *bfa, u32 pid)
{ … }
u32
bfa_lps_get_base_pid(struct bfa_s *bfa)
{ … }
void
bfa_lps_set_n2n_pid(struct bfa_lps_s *lps, uint32_t n2n_pid)
{ … }
void
bfa_lps_isr(struct bfa_s *bfa, struct bfi_msg_s *m)
{ … }
static void
bfa_fcport_aen_post(struct bfa_fcport_s *fcport, enum bfa_port_aen_event event)
{ … }
static void
bfa_fcport_sm_uninit(struct bfa_fcport_s *fcport,
enum bfa_fcport_sm_event event)
{ … }
static void
bfa_fcport_sm_enabling_qwait(struct bfa_fcport_s *fcport,
enum bfa_fcport_sm_event event)
{ … }
static void
bfa_fcport_sm_enabling(struct bfa_fcport_s *fcport,
enum bfa_fcport_sm_event event)
{ … }
static void
bfa_fcport_sm_linkdown(struct bfa_fcport_s *fcport,
enum bfa_fcport_sm_event event)
{ … }
static void
bfa_fcport_sm_linkup(struct bfa_fcport_s *fcport,
enum bfa_fcport_sm_event event)
{ … }
static void
bfa_fcport_sm_disabling_qwait(struct bfa_fcport_s *fcport,
enum bfa_fcport_sm_event event)
{ … }
static void
bfa_fcport_sm_toggling_qwait(struct bfa_fcport_s *fcport,
enum bfa_fcport_sm_event event)
{ … }
static void
bfa_fcport_sm_disabling(struct bfa_fcport_s *fcport,
enum bfa_fcport_sm_event event)
{ … }
static void
bfa_fcport_sm_disabled(struct bfa_fcport_s *fcport,
enum bfa_fcport_sm_event event)
{ … }
static void
bfa_fcport_sm_stopped(struct bfa_fcport_s *fcport,
enum bfa_fcport_sm_event event)
{ … }
static void
bfa_fcport_sm_iocdown(struct bfa_fcport_s *fcport,
enum bfa_fcport_sm_event event)
{ … }
static void
bfa_fcport_sm_iocfail(struct bfa_fcport_s *fcport,
enum bfa_fcport_sm_event event)
{ … }
static void
bfa_fcport_sm_dport(struct bfa_fcport_s *fcport, enum bfa_fcport_sm_event event)
{ … }
static void
bfa_fcport_sm_ddport(struct bfa_fcport_s *fcport,
enum bfa_fcport_sm_event event)
{ … }
static void
bfa_fcport_sm_faa_misconfig(struct bfa_fcport_s *fcport,
enum bfa_fcport_sm_event event)
{ … }
static void
bfa_fcport_ln_sm_dn(struct bfa_fcport_ln_s *ln,
enum bfa_fcport_ln_sm_event event)
{ … }
static void
bfa_fcport_ln_sm_dn_nf(struct bfa_fcport_ln_s *ln,
enum bfa_fcport_ln_sm_event event)
{ … }
static void
bfa_fcport_ln_sm_dn_up_nf(struct bfa_fcport_ln_s *ln,
enum bfa_fcport_ln_sm_event event)
{ … }
static void
bfa_fcport_ln_sm_up(struct bfa_fcport_ln_s *ln,
enum bfa_fcport_ln_sm_event event)
{ … }
static void
bfa_fcport_ln_sm_up_nf(struct bfa_fcport_ln_s *ln,
enum bfa_fcport_ln_sm_event event)
{ … }
static void
bfa_fcport_ln_sm_up_dn_nf(struct bfa_fcport_ln_s *ln,
enum bfa_fcport_ln_sm_event event)
{ … }
static void
bfa_fcport_ln_sm_up_dn_up_nf(struct bfa_fcport_ln_s *ln,
enum bfa_fcport_ln_sm_event event)
{ … }
static void
__bfa_cb_fcport_event(void *cbarg, bfa_boolean_t complete)
{ … }
static void
bfa_fcport_scn(struct bfa_fcport_s *fcport, enum bfa_port_linkstate event,
bfa_boolean_t trunk)
{ … }
static void
bfa_fcport_queue_cb(struct bfa_fcport_ln_s *ln, enum bfa_port_linkstate event)
{ … }
#define FCPORT_STATS_DMA_SZ …
void
bfa_fcport_meminfo(struct bfa_iocfc_cfg_s *cfg, struct bfa_meminfo_s *minfo,
struct bfa_s *bfa)
{ … }
static void
bfa_fcport_qresume(void *cbarg)
{ … }
static void
bfa_fcport_mem_claim(struct bfa_fcport_s *fcport)
{ … }
void
bfa_fcport_attach(struct bfa_s *bfa, void *bfad, struct bfa_iocfc_cfg_s *cfg,
struct bfa_pcidev_s *pcidev)
{ … }
void
bfa_fcport_start(struct bfa_s *bfa)
{ … }
void
bfa_fcport_iocdisable(struct bfa_s *bfa)
{ … }
static void
bfa_fcport_update_loop_info(struct bfa_fcport_s *fcport,
struct bfa_fcport_loop_info_s *loop_info)
{ … }
static void
bfa_fcport_update_linkinfo(struct bfa_fcport_s *fcport)
{ … }
static void
bfa_fcport_reset_linkinfo(struct bfa_fcport_s *fcport)
{ … }
static bfa_boolean_t
bfa_fcport_send_enable(struct bfa_fcport_s *fcport)
{ … }
static bfa_boolean_t
bfa_fcport_send_disable(struct bfa_fcport_s *fcport)
{ … }
static void
bfa_fcport_set_wwns(struct bfa_fcport_s *fcport)
{ … }
static void
bfa_fcport_qos_stats_swap(struct bfa_qos_stats_s *d,
struct bfa_qos_stats_s *s)
{ … }
static void
bfa_fcport_fcoe_stats_swap(struct bfa_fcoe_stats_s *d,
struct bfa_fcoe_stats_s *s)
{ … }
static void
__bfa_cb_fcport_stats_get(void *cbarg, bfa_boolean_t complete)
{ … }
static void
bfa_fcport_stats_get_timeout(void *cbarg)
{ … }
static void
bfa_fcport_send_stats_get(void *cbarg)
{ … }
static void
__bfa_cb_fcport_stats_clr(void *cbarg, bfa_boolean_t complete)
{ … }
static void
bfa_fcport_stats_clr_timeout(void *cbarg)
{ … }
static void
bfa_fcport_send_stats_clear(void *cbarg)
{ … }
static void
bfa_trunk_scn(struct bfa_fcport_s *fcport, struct bfi_fcport_trunk_scn_s *scn)
{ … }
static void
bfa_trunk_iocdisable(struct bfa_s *bfa)
{ … }
void
bfa_fcport_init(struct bfa_s *bfa)
{ … }
void
bfa_fcport_isr(struct bfa_s *bfa, struct bfi_msg_s *msg)
{ … }
void
bfa_fcport_event_register(struct bfa_s *bfa,
void (*cbfn) (void *cbarg,
enum bfa_port_linkstate event),
void *cbarg)
{ … }
bfa_status_t
bfa_fcport_enable(struct bfa_s *bfa)
{ … }
bfa_status_t
bfa_fcport_disable(struct bfa_s *bfa)
{ … }
bfa_status_t
bfa_fcport_is_pbcdisabled(struct bfa_s *bfa)
{ … }
bfa_status_t
bfa_fcport_cfg_speed(struct bfa_s *bfa, enum bfa_port_speed speed)
{ … }
enum bfa_port_speed
bfa_fcport_get_speed(struct bfa_s *bfa)
{ … }
bfa_status_t
bfa_fcport_cfg_topology(struct bfa_s *bfa, enum bfa_port_topology topology)
{ … }
enum bfa_port_topology
bfa_fcport_get_topology(struct bfa_s *bfa)
{ … }
enum bfa_port_topology
bfa_fcport_get_cfg_topology(struct bfa_s *bfa)
{ … }
bfa_status_t
bfa_fcport_cfg_hardalpa(struct bfa_s *bfa, u8 alpa)
{ … }
bfa_status_t
bfa_fcport_clr_hardalpa(struct bfa_s *bfa)
{ … }
bfa_boolean_t
bfa_fcport_get_hardalpa(struct bfa_s *bfa, u8 *alpa)
{ … }
u8
bfa_fcport_get_myalpa(struct bfa_s *bfa)
{ … }
bfa_status_t
bfa_fcport_cfg_maxfrsize(struct bfa_s *bfa, u16 maxfrsize)
{ … }
u16
bfa_fcport_get_maxfrsize(struct bfa_s *bfa)
{ … }
u8
bfa_fcport_get_rx_bbcredit(struct bfa_s *bfa)
{ … }
void
bfa_fcport_set_tx_bbcredit(struct bfa_s *bfa, u16 tx_bbcredit)
{ … }
wwn_t
bfa_fcport_get_wwn(struct bfa_s *bfa, bfa_boolean_t node)
{ … }
void
bfa_fcport_get_attr(struct bfa_s *bfa, struct bfa_port_attr_s *attr)
{ … }
#define BFA_FCPORT_STATS_TOV …
bfa_status_t
bfa_fcport_get_stats(struct bfa_s *bfa, struct bfa_cb_pending_q_s *cb)
{ … }
bfa_status_t
bfa_fcport_clear_stats(struct bfa_s *bfa, struct bfa_cb_pending_q_s *cb)
{ … }
bfa_boolean_t
bfa_fcport_is_disabled(struct bfa_s *bfa)
{ … }
bfa_boolean_t
bfa_fcport_is_dport(struct bfa_s *bfa)
{ … }
bfa_boolean_t
bfa_fcport_is_ddport(struct bfa_s *bfa)
{ … }
bfa_status_t
bfa_fcport_set_qos_bw(struct bfa_s *bfa, struct bfa_qos_bw_s *qos_bw)
{ … }
bfa_boolean_t
bfa_fcport_is_ratelim(struct bfa_s *bfa)
{ … }
void
bfa_fcport_cfg_faa(struct bfa_s *bfa, u8 state)
{ … }
enum bfa_port_speed
bfa_fcport_get_ratelim_speed(struct bfa_s *bfa)
{ … }
void
bfa_fcport_beacon(void *dev, bfa_boolean_t beacon,
bfa_boolean_t link_e2e_beacon)
{ … }
bfa_boolean_t
bfa_fcport_is_linkup(struct bfa_s *bfa)
{ … }
bfa_boolean_t
bfa_fcport_is_qos_enabled(struct bfa_s *bfa)
{ … }
bfa_boolean_t
bfa_fcport_is_trunk_enabled(struct bfa_s *bfa)
{ … }
bfa_status_t
bfa_fcport_cfg_bbcr(struct bfa_s *bfa, bfa_boolean_t on_off, u8 bb_scn)
{ … }
bfa_status_t
bfa_fcport_get_bbcr_attr(struct bfa_s *bfa,
struct bfa_bbcr_attr_s *bbcr_attr)
{ … }
void
bfa_fcport_dportenable(struct bfa_s *bfa)
{ … }
void
bfa_fcport_dportdisable(struct bfa_s *bfa)
{ … }
static void
bfa_fcport_ddportenable(struct bfa_s *bfa)
{ … }
static void
bfa_fcport_ddportdisable(struct bfa_s *bfa)
{ … }
static void
bfa_rport_sm_uninit(struct bfa_rport_s *rp, enum bfa_rport_event event)
{ … }
static void
bfa_rport_sm_created(struct bfa_rport_s *rp, enum bfa_rport_event event)
{ … }
static void
bfa_rport_sm_fwcreate(struct bfa_rport_s *rp, enum bfa_rport_event event)
{ … }
static void
bfa_rport_sm_fwcreate_qfull(struct bfa_rport_s *rp, enum bfa_rport_event event)
{ … }
static void
bfa_rport_sm_online(struct bfa_rport_s *rp, enum bfa_rport_event event)
{ … }
static void
bfa_rport_sm_fwdelete(struct bfa_rport_s *rp, enum bfa_rport_event event)
{ … }
static void
bfa_rport_sm_fwdelete_qfull(struct bfa_rport_s *rp, enum bfa_rport_event event)
{ … }
static void
bfa_rport_sm_offline(struct bfa_rport_s *rp, enum bfa_rport_event event)
{ … }
static void
bfa_rport_sm_deleting(struct bfa_rport_s *rp, enum bfa_rport_event event)
{ … }
static void
bfa_rport_sm_deleting_qfull(struct bfa_rport_s *rp, enum bfa_rport_event event)
{ … }
static void
bfa_rport_sm_delete_pending(struct bfa_rport_s *rp,
enum bfa_rport_event event)
{ … }
static void
bfa_rport_sm_offline_pending(struct bfa_rport_s *rp,
enum bfa_rport_event event)
{ … }
static void
bfa_rport_sm_iocdisable(struct bfa_rport_s *rp, enum bfa_rport_event event)
{ … }
static void
__bfa_cb_rport_online(void *cbarg, bfa_boolean_t complete)
{ … }
static void
__bfa_cb_rport_offline(void *cbarg, bfa_boolean_t complete)
{ … }
static void
bfa_rport_qresume(void *cbarg)
{ … }
void
bfa_rport_meminfo(struct bfa_iocfc_cfg_s *cfg, struct bfa_meminfo_s *minfo,
struct bfa_s *bfa)
{ … }
void
bfa_rport_attach(struct bfa_s *bfa, void *bfad, struct bfa_iocfc_cfg_s *cfg,
struct bfa_pcidev_s *pcidev)
{ … }
void
bfa_rport_iocdisable(struct bfa_s *bfa)
{ … }
static struct bfa_rport_s *
bfa_rport_alloc(struct bfa_rport_mod_s *mod)
{ … }
static void
bfa_rport_free(struct bfa_rport_s *rport)
{ … }
static bfa_boolean_t
bfa_rport_send_fwcreate(struct bfa_rport_s *rp)
{ … }
static bfa_boolean_t
bfa_rport_send_fwdelete(struct bfa_rport_s *rp)
{ … }
static bfa_boolean_t
bfa_rport_send_fwspeed(struct bfa_rport_s *rp)
{ … }
void
bfa_rport_isr(struct bfa_s *bfa, struct bfi_msg_s *m)
{ … }
void
bfa_rport_res_recfg(struct bfa_s *bfa, u16 num_rport_fw)
{ … }
struct bfa_rport_s *
bfa_rport_create(struct bfa_s *bfa, void *rport_drv)
{ … }
void
bfa_rport_online(struct bfa_rport_s *rport, struct bfa_rport_info_s *rport_info)
{ … }
void
bfa_rport_speed(struct bfa_rport_s *rport, enum bfa_port_speed speed)
{ … }
void
bfa_rport_set_lunmask(struct bfa_s *bfa, struct bfa_rport_s *rp)
{ … }
void
bfa_rport_unset_lunmask(struct bfa_s *bfa, struct bfa_rport_s *rp)
{ … }
void
bfa_sgpg_meminfo(struct bfa_iocfc_cfg_s *cfg, struct bfa_meminfo_s *minfo,
struct bfa_s *bfa)
{ … }
void
bfa_sgpg_attach(struct bfa_s *bfa, void *bfad, struct bfa_iocfc_cfg_s *cfg,
struct bfa_pcidev_s *pcidev)
{ … }
bfa_status_t
bfa_sgpg_malloc(struct bfa_s *bfa, struct list_head *sgpg_q, int nsgpgs)
{ … }
void
bfa_sgpg_mfree(struct bfa_s *bfa, struct list_head *sgpg_q, int nsgpg)
{ … }
void
bfa_sgpg_wait(struct bfa_s *bfa, struct bfa_sgpg_wqe_s *wqe, int nsgpg)
{ … }
void
bfa_sgpg_wcancel(struct bfa_s *bfa, struct bfa_sgpg_wqe_s *wqe)
{ … }
void
bfa_sgpg_winit(struct bfa_sgpg_wqe_s *wqe, void (*cbfn) (void *cbarg),
void *cbarg)
{ … }
static void
__bfa_cb_uf_recv(void *cbarg, bfa_boolean_t complete)
{ … }
static void
claim_uf_post_msgs(struct bfa_uf_mod_s *ufm)
{ … }
static void
claim_ufs(struct bfa_uf_mod_s *ufm)
{ … }
static void
uf_mem_claim(struct bfa_uf_mod_s *ufm)
{ … }
void
bfa_uf_meminfo(struct bfa_iocfc_cfg_s *cfg, struct bfa_meminfo_s *minfo,
struct bfa_s *bfa)
{ … }
void
bfa_uf_attach(struct bfa_s *bfa, void *bfad, struct bfa_iocfc_cfg_s *cfg,
struct bfa_pcidev_s *pcidev)
{ … }
static struct bfa_uf_s *
bfa_uf_get(struct bfa_uf_mod_s *uf_mod)
{ … }
static void
bfa_uf_put(struct bfa_uf_mod_s *uf_mod, struct bfa_uf_s *uf)
{ … }
static bfa_status_t
bfa_uf_post(struct bfa_uf_mod_s *ufm, struct bfa_uf_s *uf)
{ … }
static void
bfa_uf_post_all(struct bfa_uf_mod_s *uf_mod)
{ … }
static void
uf_recv(struct bfa_s *bfa, struct bfi_uf_frm_rcvd_s *m)
{ … }
void
bfa_uf_iocdisable(struct bfa_s *bfa)
{ … }
void
bfa_uf_start(struct bfa_s *bfa)
{ … }
void
bfa_uf_recv_register(struct bfa_s *bfa, bfa_cb_uf_recv_t ufrecv, void *cbarg)
{ … }
void
bfa_uf_free(struct bfa_uf_s *uf)
{ … }
void
bfa_uf_isr(struct bfa_s *bfa, struct bfi_msg_s *msg)
{ … }
void
bfa_uf_res_recfg(struct bfa_s *bfa, u16 num_uf_fw)
{ … }
enum bfa_dport_test_state_e { … };
static void bfa_dport_sm_disabled(struct bfa_dport_s *dport,
enum bfa_dport_sm_event event);
static void bfa_dport_sm_enabling_qwait(struct bfa_dport_s *dport,
enum bfa_dport_sm_event event);
static void bfa_dport_sm_enabling(struct bfa_dport_s *dport,
enum bfa_dport_sm_event event);
static void bfa_dport_sm_enabled(struct bfa_dport_s *dport,
enum bfa_dport_sm_event event);
static void bfa_dport_sm_disabling_qwait(struct bfa_dport_s *dport,
enum bfa_dport_sm_event event);
static void bfa_dport_sm_disabling(struct bfa_dport_s *dport,
enum bfa_dport_sm_event event);
static void bfa_dport_sm_starting_qwait(struct bfa_dport_s *dport,
enum bfa_dport_sm_event event);
static void bfa_dport_sm_starting(struct bfa_dport_s *dport,
enum bfa_dport_sm_event event);
static void bfa_dport_sm_dynamic_disabling(struct bfa_dport_s *dport,
enum bfa_dport_sm_event event);
static void bfa_dport_sm_dynamic_disabling_qwait(struct bfa_dport_s *dport,
enum bfa_dport_sm_event event);
static void bfa_dport_qresume(void *cbarg);
static void bfa_dport_req_comp(struct bfa_dport_s *dport,
struct bfi_diag_dport_rsp_s *msg);
static void bfa_dport_scn(struct bfa_dport_s *dport,
struct bfi_diag_dport_scn_s *msg);
#define BFA_DIAG_QTEST_TOV …
static void
bfa_fcdiag_set_busy_status(struct bfa_fcdiag_s *fcdiag)
{ … }
void
bfa_fcdiag_attach(struct bfa_s *bfa, void *bfad, struct bfa_iocfc_cfg_s *cfg,
struct bfa_pcidev_s *pcidev)
{ … }
void
bfa_fcdiag_iocdisable(struct bfa_s *bfa)
{ … }
static void
bfa_fcdiag_queuetest_timeout(void *cbarg)
{ … }
static bfa_status_t
bfa_fcdiag_queuetest_send(struct bfa_fcdiag_s *fcdiag)
{ … }
static void
bfa_fcdiag_queuetest_comp(struct bfa_fcdiag_s *fcdiag,
bfi_diag_qtest_rsp_t *rsp)
{ … }
static void
bfa_fcdiag_loopback_comp(struct bfa_fcdiag_s *fcdiag,
struct bfi_diag_lb_rsp_s *rsp)
{ … }
static bfa_status_t
bfa_fcdiag_loopback_send(struct bfa_fcdiag_s *fcdiag,
struct bfa_diag_loopback_s *loopback)
{ … }
void
bfa_fcdiag_intr(struct bfa_s *bfa, struct bfi_msg_s *msg)
{ … }
bfa_status_t
bfa_fcdiag_loopback(struct bfa_s *bfa, enum bfa_port_opmode opmode,
enum bfa_port_speed speed, u32 lpcnt, u32 pat,
struct bfa_diag_loopback_result_s *result, bfa_cb_diag_t cbfn,
void *cbarg)
{ … }
bfa_status_t
bfa_fcdiag_queuetest(struct bfa_s *bfa, u32 force, u32 queue,
struct bfa_diag_qtest_result_s *result, bfa_cb_diag_t cbfn,
void *cbarg)
{ … }
bfa_status_t
bfa_fcdiag_lb_is_running(struct bfa_s *bfa)
{ … }
#define bfa_dport_result_start(__dport, __mode) …
static bfa_boolean_t bfa_dport_send_req(struct bfa_dport_s *dport,
enum bfi_dport_req req);
static void
bfa_cb_fcdiag_dport(struct bfa_dport_s *dport, bfa_status_t bfa_status)
{ … }
static void
bfa_dport_sm_disabled(struct bfa_dport_s *dport, enum bfa_dport_sm_event event)
{ … }
static void
bfa_dport_sm_enabling_qwait(struct bfa_dport_s *dport,
enum bfa_dport_sm_event event)
{ … }
static void
bfa_dport_sm_enabling(struct bfa_dport_s *dport, enum bfa_dport_sm_event event)
{ … }
static void
bfa_dport_sm_enabled(struct bfa_dport_s *dport, enum bfa_dport_sm_event event)
{ … }
static void
bfa_dport_sm_disabling_qwait(struct bfa_dport_s *dport,
enum bfa_dport_sm_event event)
{ … }
static void
bfa_dport_sm_disabling(struct bfa_dport_s *dport, enum bfa_dport_sm_event event)
{ … }
static void
bfa_dport_sm_starting_qwait(struct bfa_dport_s *dport,
enum bfa_dport_sm_event event)
{ … }
static void
bfa_dport_sm_starting(struct bfa_dport_s *dport, enum bfa_dport_sm_event event)
{ … }
static void
bfa_dport_sm_dynamic_disabling(struct bfa_dport_s *dport,
enum bfa_dport_sm_event event)
{ … }
static void
bfa_dport_sm_dynamic_disabling_qwait(struct bfa_dport_s *dport,
enum bfa_dport_sm_event event)
{ … }
static bfa_boolean_t
bfa_dport_send_req(struct bfa_dport_s *dport, enum bfi_dport_req req)
{ … }
static void
bfa_dport_qresume(void *cbarg)
{ … }
static void
bfa_dport_req_comp(struct bfa_dport_s *dport, struct bfi_diag_dport_rsp_s *msg)
{ … }
static bfa_boolean_t
bfa_dport_is_sending_req(struct bfa_dport_s *dport)
{ … }
static void
bfa_dport_scn(struct bfa_dport_s *dport, struct bfi_diag_dport_scn_s *msg)
{ … }
bfa_status_t
bfa_dport_enable(struct bfa_s *bfa, u32 lpcnt, u32 pat,
bfa_cb_diag_t cbfn, void *cbarg)
{ … }
bfa_status_t
bfa_dport_disable(struct bfa_s *bfa, bfa_cb_diag_t cbfn, void *cbarg)
{ … }
bfa_status_t
bfa_dport_start(struct bfa_s *bfa, u32 lpcnt, u32 pat,
bfa_cb_diag_t cbfn, void *cbarg)
{ … }
bfa_status_t
bfa_dport_show(struct bfa_s *bfa, struct bfa_diag_dport_result_s *result)
{ … }