drivers/net/ethernet/brocade/bna/bna_types.h
Source file repositories/reference/linux-study-clean/drivers/net/ethernet/brocade/bna/bna_types.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/ethernet/brocade/bna/bna_types.h- Extension
.h- Size
- 19681 bytes
- Lines
- 947
- Domain
- Driver Families
- Bucket
- drivers/net
- 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.
- Touches IRQ or DMA behavior; this matters for the representative real-device path.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
cna.hbna_hw_defs.hbfa_cee.hbfa_msgq.h
Detected Declarations
struct bna_mcam_handlestruct bna_txqstruct bna_txstruct bna_rxqstruct bna_cqstruct bna_rxstruct bna_rxfstruct bna_enetstruct bnastruct bnadstruct bna_identstruct bna_macstruct bna_mem_descrstruct bna_mem_infostruct bna_intr_descrstruct bna_intr_infostruct bna_res_infostruct bna_qptstruct bna_attrstruct bna_iocethstruct bna_pause_configstruct bna_enetstruct bna_ethportstruct bna_ib_dbellstruct bna_ibstruct bna_tcbstruct bna_txqstruct bna_txstruct bna_tx_configstruct bna_tx_event_cbfnstruct bna_tx_modstruct bna_rcbstruct bna_rxqstruct bna_pkt_ratestruct bna_ccbstruct bna_cqstruct bna_rss_configstruct bna_hds_configstruct bna_rx_configstruct bna_rxpstruct bna_rxfstruct bna_rxstruct bna_rx_event_cbfnstruct bna_rx_modstruct bna_ucam_modstruct bna_mcam_handlestruct bna_mcam_modstruct bna_stats
Annotated Snippet
struct bna_ident {
int id;
char name[BNA_MAX_NAME_SIZE];
};
struct bna_mac {
/* This should be the first one */
struct list_head qe;
u8 addr[ETH_ALEN];
struct bna_mcam_handle *handle;
};
struct bna_mem_descr {
u32 len;
void *kva;
struct bna_dma_addr dma;
};
struct bna_mem_info {
enum bna_mem_type mem_type;
u32 len;
u32 num;
u32 align_sz; /* 0/1 = no alignment */
struct bna_mem_descr *mdl;
void *cookie; /* For bnad to unmap dma later */
};
struct bna_intr_descr {
int vector;
};
struct bna_intr_info {
enum bna_intr_type intr_type;
int num;
struct bna_intr_descr *idl;
};
union bna_res_u {
struct bna_mem_info mem_info;
struct bna_intr_info intr_info;
};
struct bna_res_info {
enum bna_res_type res_type;
union bna_res_u res_u;
};
/* HW QPT */
struct bna_qpt {
struct bna_dma_addr hw_qpt_ptr;
void *kv_qpt_ptr;
u32 page_count;
u32 page_size;
};
struct bna_attr {
bool fw_query_complete;
int num_txq;
int num_rxp;
int num_ucmac;
int num_mcmac;
int max_rit_size;
};
/* IOCEth */
enum bna_ioceth_event;
struct bna_ioceth {
void (*fsm)(struct bna_ioceth *s, enum bna_ioceth_event e);
struct bfa_ioc ioc;
struct bna_attr attr;
struct bfa_msgq_cmd_entry msgq_cmd;
struct bfi_enet_attr_req attr_req;
void (*stop_cbfn)(struct bnad *bnad);
struct bnad *stop_cbarg;
struct bna *bna;
};
/* Enet */
/* Pause configuration */
struct bna_pause_config {
enum bna_status tx_pause;
enum bna_status rx_pause;
};
Annotation
- Immediate include surface: `cna.h`, `bna_hw_defs.h`, `bfa_cee.h`, `bfa_msgq.h`.
- Detected declarations: `struct bna_mcam_handle`, `struct bna_txq`, `struct bna_tx`, `struct bna_rxq`, `struct bna_cq`, `struct bna_rx`, `struct bna_rxf`, `struct bna_enet`, `struct bna`, `struct bnad`.
- Atlas domain: Driver Families / drivers/net.
- Implementation status: source implementation candidate.
- IRQ or DMA behavior appears here, which is relevant to the selected PCIe/NVMe device path.
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.