drivers/scsi/bfa/bfa_fcs.h
Source file repositories/reference/linux-study-clean/drivers/scsi/bfa/bfa_fcs.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/scsi/bfa/bfa_fcs.h- Extension
.h- Size
- 34344 bytes
- Lines
- 970
- Domain
- Driver Families
- Bucket
- drivers/scsi
- Inferred role
- Driver Families: implementation source
- Status
- source implementation candidate
Why This File Exists
Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
bfa_cs.hbfa_defs.hbfa_defs_fcs.hbfa_modules.hbfa_fc.h
Detected Declarations
struct bfa_fcs_sstruct bfa_fcs_lport_ns_sstruct bfa_fcs_lport_ns_sstruct bfa_fcs_lport_scn_sstruct bfa_fcs_lport_scn_sstruct bfa_fcs_lport_fdmi_sstruct bfa_fcs_lport_fdmi_sstruct bfa_fcs_lport_ms_sstruct bfa_fcs_lport_ms_sstruct bfa_fcs_lport_fab_sstruct bfa_fcs_lport_loop_sstruct bfa_fcs_lport_n2n_sstruct bfa_fcs_lport_sstruct bfa_fcs_lport_sstruct bfad_vf_sstruct bfa_fcs_fabric_sstruct bfa_fcs_fabric_sstruct bfa_vf_event_sstruct bfa_fcs_vport_sstruct bfa_fcs_vport_sstruct bfad_rport_sstruct bfa_fcs_itnim_sstruct bfa_fcs_tin_sstruct bfa_fcs_iprp_sstruct bfa_fcs_rpf_sstruct bfa_fcs_rpf_sstruct bfa_fcs_rport_sstruct bfa_fcs_rport_sstruct bfa_fcs_itnim_sstruct bfad_itnim_sstruct bfa_fcs_itnim_sstruct bfa_fcs_fdmi_hba_attr_sstruct bfa_fcs_fdmi_port_attr_sstruct bfa_fcs_stats_sstruct bfa_fcs_driver_info_sstruct bfa_fcs_sstruct bfad_port_sstruct bfad_vport_senum vport_ns_eventenum port_scn_eventenum port_fdmi_eventenum port_ms_eventenum bfa_fcs_lport_eventenum bfa_fcs_fabric_typeenum bfa_fcs_fabric_eventenum bfa_fcs_vport_eventenum rpf_eventenum rport_event
Annotated Snippet
struct bfa_fcs_lport_ns_s {
bfa_fcs_lport_ns_sm_t sm; /* state machine */
struct bfa_timer_s timer;
struct bfa_fcs_lport_s *port; /* parent port */
struct bfa_fcxp_s *fcxp;
struct bfa_fcxp_wqe_s fcxp_wqe;
u8 num_rnnid_retries;
u8 num_rsnn_nn_retries;
};
/*
* VPort SCN State Machine events
*/
enum port_scn_event {
SCNSM_EVENT_PORT_ONLINE = 1,
SCNSM_EVENT_PORT_OFFLINE = 2,
SCNSM_EVENT_RSP_OK = 3,
SCNSM_EVENT_RSP_ERROR = 4,
SCNSM_EVENT_TIMEOUT = 5,
SCNSM_EVENT_SCR_SENT = 6,
};
struct bfa_fcs_lport_scn_s;
typedef void (*bfa_fcs_lport_scn_sm_t)(struct bfa_fcs_lport_scn_s *fsm, enum port_scn_event);
struct bfa_fcs_lport_scn_s {
bfa_fcs_lport_scn_sm_t sm; /* state machine */
struct bfa_timer_s timer;
struct bfa_fcs_lport_s *port; /* parent port */
struct bfa_fcxp_s *fcxp;
struct bfa_fcxp_wqe_s fcxp_wqe;
};
/*
* FDMI State Machine events
*/
enum port_fdmi_event {
FDMISM_EVENT_PORT_ONLINE = 1,
FDMISM_EVENT_PORT_OFFLINE = 2,
FDMISM_EVENT_RSP_OK = 4,
FDMISM_EVENT_RSP_ERROR = 5,
FDMISM_EVENT_TIMEOUT = 6,
FDMISM_EVENT_RHBA_SENT = 7,
FDMISM_EVENT_RPRT_SENT = 8,
FDMISM_EVENT_RPA_SENT = 9,
};
struct bfa_fcs_lport_fdmi_s;
typedef void (*bfa_fcs_lport_fdmi_sm_t)(struct bfa_fcs_lport_fdmi_s *fsm, enum port_fdmi_event);
struct bfa_fcs_lport_fdmi_s {
bfa_fcs_lport_fdmi_sm_t sm; /* state machine */
struct bfa_timer_s timer;
struct bfa_fcs_lport_ms_s *ms; /* parent ms */
struct bfa_fcxp_s *fcxp;
struct bfa_fcxp_wqe_s fcxp_wqe;
u8 retry_cnt; /* retry count */
u8 rsvd[3];
};
/*
* MS State Machine events
*/
enum port_ms_event {
MSSM_EVENT_PORT_ONLINE = 1,
MSSM_EVENT_PORT_OFFLINE = 2,
MSSM_EVENT_RSP_OK = 3,
MSSM_EVENT_RSP_ERROR = 4,
MSSM_EVENT_TIMEOUT = 5,
MSSM_EVENT_FCXP_SENT = 6,
MSSM_EVENT_PORT_FABRIC_RSCN = 7
};
struct bfa_fcs_lport_ms_s;
typedef void (*bfa_fcs_lport_ms_sm_t)(struct bfa_fcs_lport_ms_s *fsm, enum port_ms_event);
struct bfa_fcs_lport_ms_s {
bfa_fcs_lport_ms_sm_t sm; /* state machine */
struct bfa_timer_s timer;
struct bfa_fcs_lport_s *port; /* parent port */
struct bfa_fcxp_s *fcxp;
struct bfa_fcxp_wqe_s fcxp_wqe;
struct bfa_fcs_lport_fdmi_s fdmi; /* FDMI component of MS */
u8 retry_cnt; /* retry count */
u8 rsvd[3];
};
struct bfa_fcs_lport_fab_s {
struct bfa_fcs_lport_ns_s ns; /* NS component of port */
Annotation
- Immediate include surface: `bfa_cs.h`, `bfa_defs.h`, `bfa_defs_fcs.h`, `bfa_modules.h`, `bfa_fc.h`.
- Detected declarations: `struct bfa_fcs_s`, `struct bfa_fcs_lport_ns_s`, `struct bfa_fcs_lport_ns_s`, `struct bfa_fcs_lport_scn_s`, `struct bfa_fcs_lport_scn_s`, `struct bfa_fcs_lport_fdmi_s`, `struct bfa_fcs_lport_fdmi_s`, `struct bfa_fcs_lport_ms_s`, `struct bfa_fcs_lport_ms_s`, `struct bfa_fcs_lport_fab_s`.
- Atlas domain: Driver Families / drivers/scsi.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.