drivers/scsi/bfa/bfa_fc.h
Source file repositories/reference/linux-study-clean/drivers/scsi/bfa/bfa_fc.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/scsi/bfa/bfa_fc.h- Extension
.h- Size
- 39755 bytes
- Lines
- 1607
- 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
bfad_drv.h
Detected Declarations
struct mac_sstruct scsi_cdb_sstruct fchs_sstruct fc_els_cmd_sstruct fc_plogi_csp_sstruct fc_plogi_clp_sstruct fc_logi_sstruct fc_logo_sstruct fc_adisc_sstruct fc_exch_status_blk_sstruct fc_res_sstruct fc_res_acc_sstruct fc_rec_sstruct fc_rec_acc_sstruct fc_rsi_sstruct fc_prli_params_sstruct fc_prli_params_page_sstruct fc_prli_sstruct fc_prlo_params_page_sstruct fc_prlo_sstruct fc_prlo_acc_params_page_sstruct fc_prlo_acc_sstruct fc_scr_sstruct fc_ls_rjt_sstruct fc_rrq_sstruct fc_ba_acc_sstruct fc_ba_rjt_sstruct fc_tprlo_params_page_sstruct fc_tprlo_sstruct fc_tprlo_acc_sstruct fc_rscn_event_sstruct fc_rscn_pl_sstruct fc_echo_sstruct fc_rnid_cmd_sstruct fc_rnid_common_id_data_sstruct fc_rnid_general_topology_data_sstruct fc_rnid_acc_sstruct fc_rpsc_speed_info_sstruct fc_rpsc_cmd_sstruct fc_rpsc_acc_sstruct fc_rpsc2_cmd_sstruct fc_rpsc2_port_info_sstruct fc_rpsc2_acc_sstruct fc_symname_sstruct fc_alpabm_sstruct fc_vft_sstruct fcp_cmnd_sstruct fcp_rspinfo_s
Annotated Snippet
struct mac_s { u8 mac[MAC_ADDRLEN]; };
#define mac_t struct mac_s
/*
* generic SCSI cdb definition
*/
#define SCSI_MAX_CDBLEN 16
struct scsi_cdb_s {
u8 scsi_cdb[SCSI_MAX_CDBLEN];
};
#define SCSI_MAX_ALLOC_LEN 0xFF /* maximum allocarion length */
/*
* Fibre Channel Header Structure (FCHS) definition
*/
struct fchs_s {
#ifdef __BIG_ENDIAN
u32 routing:4; /* routing bits */
u32 cat_info:4; /* category info */
#else
u32 cat_info:4; /* category info */
u32 routing:4; /* routing bits */
#endif
u32 d_id:24; /* destination identifier */
u32 cs_ctl:8; /* class specific control */
u32 s_id:24; /* source identifier */
u32 type:8; /* data structure type */
u32 f_ctl:24; /* initial frame control */
u8 seq_id; /* sequence identifier */
u8 df_ctl; /* data field control */
u16 seq_cnt; /* sequence count */
__be16 ox_id; /* originator exchange ID */
u16 rx_id; /* responder exchange ID */
u32 ro; /* relative offset */
};
/*
* routing bit definitions
*/
enum {
FC_RTG_FC4_DEV_DATA = 0x0, /* FC-4 Device Data */
FC_RTG_EXT_LINK = 0x2, /* Extended Link Data */
FC_RTG_FC4_LINK_DATA = 0x3, /* FC-4 Link Data */
FC_RTG_VIDEO_DATA = 0x4, /* Video Data */
FC_RTG_EXT_HDR = 0x5, /* VFT, IFR or Encapsuled */
FC_RTG_BASIC_LINK = 0x8, /* Basic Link data */
FC_RTG_LINK_CTRL = 0xC, /* Link Control */
};
/*
* information category for extended link data and FC-4 Link Data
*/
enum {
FC_CAT_LD_REQUEST = 0x2, /* Request */
FC_CAT_LD_REPLY = 0x3, /* Reply */
FC_CAT_LD_DIAG = 0xF, /* for DIAG use only */
};
/*
* information category for extended headers (VFT, IFR or encapsulation)
*/
enum {
FC_CAT_VFT_HDR = 0x0, /* Virtual fabric tagging header */
FC_CAT_IFR_HDR = 0x1, /* Inter-Fabric routing header */
FC_CAT_ENC_HDR = 0x2, /* Encapsulation header */
};
/*
* information category for FC-4 device data
*/
enum {
FC_CAT_UNCATEG_INFO = 0x0, /* Uncategorized information */
FC_CAT_SOLICIT_DATA = 0x1, /* Solicited Data */
FC_CAT_UNSOLICIT_CTRL = 0x2, /* Unsolicited Control */
FC_CAT_SOLICIT_CTRL = 0x3, /* Solicited Control */
FC_CAT_UNSOLICIT_DATA = 0x4, /* Unsolicited Data */
FC_CAT_DATA_DESC = 0x5, /* Data Descriptor */
FC_CAT_UNSOLICIT_CMD = 0x6, /* Unsolicited Command */
FC_CAT_CMD_STATUS = 0x7, /* Command Status */
};
/*
* Type Field Definitions. FC-PH Section 18.5 pg. 165
*/
Annotation
- Immediate include surface: `bfad_drv.h`.
- Detected declarations: `struct mac_s`, `struct scsi_cdb_s`, `struct fchs_s`, `struct fc_els_cmd_s`, `struct fc_plogi_csp_s`, `struct fc_plogi_clp_s`, `struct fc_logi_s`, `struct fc_logo_s`, `struct fc_adisc_s`, `struct fc_exch_status_blk_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.