diff options
Diffstat (limited to 'drivers/scsi/bfa/bfa_svc.h')
-rw-r--r-- | drivers/scsi/bfa/bfa_svc.h | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/drivers/scsi/bfa/bfa_svc.h b/drivers/scsi/bfa/bfa_svc.h index fbe513a671b..95adb86d376 100644 --- a/drivers/scsi/bfa/bfa_svc.h +++ b/drivers/scsi/bfa/bfa_svc.h | |||
@@ -297,6 +297,7 @@ struct bfa_rport_s { | |||
297 | void *rport_drv; /* fcs/driver rport object */ | 297 | void *rport_drv; /* fcs/driver rport object */ |
298 | u16 fw_handle; /* firmware rport handle */ | 298 | u16 fw_handle; /* firmware rport handle */ |
299 | u16 rport_tag; /* BFA rport tag */ | 299 | u16 rport_tag; /* BFA rport tag */ |
300 | u8 lun_mask; /* LUN mask flag */ | ||
300 | struct bfa_rport_info_s rport_info; /* rport info from fcs/driver */ | 301 | struct bfa_rport_info_s rport_info; /* rport info from fcs/driver */ |
301 | struct bfa_reqq_wait_s reqq_wait; /* to wait for room in reqq */ | 302 | struct bfa_reqq_wait_s reqq_wait; /* to wait for room in reqq */ |
302 | struct bfa_cb_qe_s hcb_qe; /* BFA callback qelem */ | 303 | struct bfa_cb_qe_s hcb_qe; /* BFA callback qelem */ |
@@ -404,6 +405,7 @@ struct bfa_lps_s { | |||
404 | u8 bb_scn; /* local BB_SCN */ | 405 | u8 bb_scn; /* local BB_SCN */ |
405 | u8 lsrjt_rsn; /* LSRJT reason */ | 406 | u8 lsrjt_rsn; /* LSRJT reason */ |
406 | u8 lsrjt_expl; /* LSRJT explanation */ | 407 | u8 lsrjt_expl; /* LSRJT explanation */ |
408 | u8 lun_mask; /* LUN mask flag */ | ||
407 | wwn_t pwwn; /* port wwn of lport */ | 409 | wwn_t pwwn; /* port wwn of lport */ |
408 | wwn_t nwwn; /* node wwn of lport */ | 410 | wwn_t nwwn; /* node wwn of lport */ |
409 | wwn_t pr_pwwn; /* port wwn of lport peer */ | 411 | wwn_t pr_pwwn; /* port wwn of lport peer */ |
@@ -441,7 +443,6 @@ void bfa_lps_isr(struct bfa_s *bfa, struct bfi_msg_s *msg); | |||
441 | */ | 443 | */ |
442 | 444 | ||
443 | #define BFA_FCPORT(_bfa) (&((_bfa)->modules.port)) | 445 | #define BFA_FCPORT(_bfa) (&((_bfa)->modules.port)) |
444 | typedef void (*bfa_cb_port_t) (void *cbarg, enum bfa_status status); | ||
445 | 446 | ||
446 | /* | 447 | /* |
447 | * Link notification data structure | 448 | * Link notification data structure |
@@ -495,13 +496,11 @@ struct bfa_fcport_s { | |||
495 | u8 *stats_kva; | 496 | u8 *stats_kva; |
496 | u64 stats_pa; | 497 | u64 stats_pa; |
497 | union bfa_fcport_stats_u *stats; | 498 | union bfa_fcport_stats_u *stats; |
498 | union bfa_fcport_stats_u *stats_ret; /* driver stats location */ | ||
499 | bfa_status_t stats_status; /* stats/statsclr status */ | 499 | bfa_status_t stats_status; /* stats/statsclr status */ |
500 | bfa_boolean_t stats_busy; /* outstanding stats/statsclr */ | 500 | struct list_head stats_pending_q; |
501 | struct list_head statsclr_pending_q; | ||
501 | bfa_boolean_t stats_qfull; | 502 | bfa_boolean_t stats_qfull; |
502 | u32 stats_reset_time; /* stats reset time stamp */ | 503 | u32 stats_reset_time; /* stats reset time stamp */ |
503 | bfa_cb_port_t stats_cbfn; /* driver callback function */ | ||
504 | void *stats_cbarg; /* *!< user callback arg */ | ||
505 | bfa_boolean_t diag_busy; /* diag busy status */ | 504 | bfa_boolean_t diag_busy; /* diag busy status */ |
506 | bfa_boolean_t beacon; /* port beacon status */ | 505 | bfa_boolean_t beacon; /* port beacon status */ |
507 | bfa_boolean_t link_e2e_beacon; /* link beacon status */ | 506 | bfa_boolean_t link_e2e_beacon; /* link beacon status */ |
@@ -552,10 +551,9 @@ void bfa_fcport_beacon(void *dev, bfa_boolean_t beacon, | |||
552 | bfa_boolean_t link_e2e_beacon); | 551 | bfa_boolean_t link_e2e_beacon); |
553 | bfa_boolean_t bfa_fcport_is_linkup(struct bfa_s *bfa); | 552 | bfa_boolean_t bfa_fcport_is_linkup(struct bfa_s *bfa); |
554 | bfa_status_t bfa_fcport_get_stats(struct bfa_s *bfa, | 553 | bfa_status_t bfa_fcport_get_stats(struct bfa_s *bfa, |
555 | union bfa_fcport_stats_u *stats, | 554 | struct bfa_cb_pending_q_s *cb); |
556 | bfa_cb_port_t cbfn, void *cbarg); | 555 | bfa_status_t bfa_fcport_clear_stats(struct bfa_s *bfa, |
557 | bfa_status_t bfa_fcport_clear_stats(struct bfa_s *bfa, bfa_cb_port_t cbfn, | 556 | struct bfa_cb_pending_q_s *cb); |
558 | void *cbarg); | ||
559 | bfa_boolean_t bfa_fcport_is_qos_enabled(struct bfa_s *bfa); | 557 | bfa_boolean_t bfa_fcport_is_qos_enabled(struct bfa_s *bfa); |
560 | bfa_boolean_t bfa_fcport_is_trunk_enabled(struct bfa_s *bfa); | 558 | bfa_boolean_t bfa_fcport_is_trunk_enabled(struct bfa_s *bfa); |
561 | bfa_status_t bfa_fcport_is_pbcdisabled(struct bfa_s *bfa); | 559 | bfa_status_t bfa_fcport_is_pbcdisabled(struct bfa_s *bfa); |
@@ -578,6 +576,19 @@ void bfa_cb_rport_qos_scn_prio(void *rport, | |||
578 | struct bfa_rport_qos_attr_s new_qos_attr); | 576 | struct bfa_rport_qos_attr_s new_qos_attr); |
579 | 577 | ||
580 | /* | 578 | /* |
579 | * Rport LUN masking related | ||
580 | */ | ||
581 | #define BFA_RPORT_TAG_INVALID 0xffff | ||
582 | #define BFA_LP_TAG_INVALID 0xff | ||
583 | void bfa_rport_set_lunmask(struct bfa_s *bfa, struct bfa_rport_s *rp); | ||
584 | void bfa_rport_unset_lunmask(struct bfa_s *bfa, struct bfa_rport_s *rp); | ||
585 | bfa_boolean_t bfa_rport_lunmask_active(struct bfa_rport_s *rp); | ||
586 | wwn_t bfa_rport_get_pwwn(struct bfa_s *bfa, struct bfa_rport_s *rp); | ||
587 | struct bfa_rport_s *bfa_rport_get_by_wwn(struct bfa_s *bfa, u16 vf_id, | ||
588 | wwn_t *lpwwn, wwn_t rpwwn); | ||
589 | void *bfa_cb_get_rp_by_wwn(void *arg, u16 vf_id, wwn_t *lpwwn, wwn_t rpwwn); | ||
590 | |||
591 | /* | ||
581 | * bfa fcxp API functions | 592 | * bfa fcxp API functions |
582 | */ | 593 | */ |
583 | struct bfa_fcxp_s *bfa_fcxp_alloc(void *bfad_fcxp, struct bfa_s *bfa, | 594 | struct bfa_fcxp_s *bfa_fcxp_alloc(void *bfad_fcxp, struct bfa_s *bfa, |