drivers/scsi/bfa/bfa_port.h
Source file repositories/reference/linux-study-clean/drivers/scsi/bfa/bfa_port.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/scsi/bfa/bfa_port.h- Extension
.h- Size
- 3862 bytes
- Lines
- 120
- 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_defs_svc.hbfa_ioc.hbfa_cs.h
Detected Declarations
struct bfa_port_sstruct bfa_cee_cbfn_sstruct bfa_cee_s
Annotated Snippet
struct bfa_port_s {
void *dev;
struct bfa_ioc_s *ioc;
struct bfa_trc_mod_s *trcmod;
u32 msgtag;
bfa_boolean_t stats_busy;
struct bfa_mbox_cmd_s stats_mb;
bfa_port_stats_cbfn_t stats_cbfn;
void *stats_cbarg;
bfa_status_t stats_status;
time64_t stats_reset_time;
union bfa_port_stats_u *stats;
struct bfa_dma_s stats_dma;
bfa_boolean_t endis_pending;
struct bfa_mbox_cmd_s endis_mb;
bfa_port_endis_cbfn_t endis_cbfn;
void *endis_cbarg;
bfa_status_t endis_status;
struct bfa_ioc_notify_s ioc_notify;
bfa_boolean_t pbc_disabled;
bfa_boolean_t dport_enabled;
struct bfa_mem_dma_s port_dma;
};
#define BFA_MEM_PORT_DMA(__bfa) (&((__bfa)->modules.port.port_dma))
void bfa_port_attach(struct bfa_port_s *port, struct bfa_ioc_s *ioc,
void *dev, struct bfa_trc_mod_s *trcmod);
void bfa_port_notify(void *arg, enum bfa_ioc_event_e event);
bfa_status_t bfa_port_get_stats(struct bfa_port_s *port,
union bfa_port_stats_u *stats,
bfa_port_stats_cbfn_t cbfn, void *cbarg);
bfa_status_t bfa_port_clear_stats(struct bfa_port_s *port,
bfa_port_stats_cbfn_t cbfn, void *cbarg);
bfa_status_t bfa_port_enable(struct bfa_port_s *port,
bfa_port_endis_cbfn_t cbfn, void *cbarg);
bfa_status_t bfa_port_disable(struct bfa_port_s *port,
bfa_port_endis_cbfn_t cbfn, void *cbarg);
u32 bfa_port_meminfo(void);
void bfa_port_mem_claim(struct bfa_port_s *port,
u8 *dma_kva, u64 dma_pa);
void bfa_port_set_dportenabled(struct bfa_port_s *port,
bfa_boolean_t enabled);
/*
* CEE declaration
*/
typedef void (*bfa_cee_get_attr_cbfn_t) (void *dev, bfa_status_t status);
typedef void (*bfa_cee_get_stats_cbfn_t) (void *dev, bfa_status_t status);
typedef void (*bfa_cee_reset_stats_cbfn_t) (void *dev, bfa_status_t status);
struct bfa_cee_cbfn_s {
bfa_cee_get_attr_cbfn_t get_attr_cbfn;
void *get_attr_cbarg;
bfa_cee_get_stats_cbfn_t get_stats_cbfn;
void *get_stats_cbarg;
bfa_cee_reset_stats_cbfn_t reset_stats_cbfn;
void *reset_stats_cbarg;
};
struct bfa_cee_s {
void *dev;
bfa_boolean_t get_attr_pending;
bfa_boolean_t get_stats_pending;
bfa_boolean_t reset_stats_pending;
bfa_status_t get_attr_status;
bfa_status_t get_stats_status;
bfa_status_t reset_stats_status;
struct bfa_cee_cbfn_s cbfn;
struct bfa_ioc_notify_s ioc_notify;
struct bfa_trc_mod_s *trcmod;
struct bfa_cee_attr_s *attr;
struct bfa_cee_stats_s *stats;
struct bfa_dma_s attr_dma;
struct bfa_dma_s stats_dma;
struct bfa_ioc_s *ioc;
struct bfa_mbox_cmd_s get_cfg_mb;
struct bfa_mbox_cmd_s get_stats_mb;
struct bfa_mbox_cmd_s reset_stats_mb;
struct bfa_mem_dma_s cee_dma;
};
#define BFA_MEM_CEE_DMA(__bfa) (&((__bfa)->modules.cee.cee_dma))
u32 bfa_cee_meminfo(void);
void bfa_cee_mem_claim(struct bfa_cee_s *cee, u8 *dma_kva, u64 dma_pa);
void bfa_cee_attach(struct bfa_cee_s *cee,
struct bfa_ioc_s *ioc, void *dev);
bfa_status_t bfa_cee_get_attr(struct bfa_cee_s *cee,
Annotation
- Immediate include surface: `bfa_defs_svc.h`, `bfa_ioc.h`, `bfa_cs.h`.
- Detected declarations: `struct bfa_port_s`, `struct bfa_cee_cbfn_s`, `struct bfa_cee_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.