drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwvid.h
Source file repositories/reference/linux-study-clean/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwvid.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwvid.h- Extension
.h- Size
- 2232 bytes
- Lines
- 89
- 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.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
firmware.hcfg80211.h
Detected Declarations
struct brcmf_pubstruct brcmf_ifstruct brcmf_fwvid_opsfunction brcmf_fwvid_feat_attachfunction brcmf_fwvid_set_sae_passwordfunction brcmf_fwvid_alloc_fweh_infofunction brcmf_fwvid_activate_eventsfunction brcmf_fwvid_get_cfg80211_opsfunction brcmf_fwvid_register_event_handlers
Annotated Snippet
struct brcmf_fwvid_ops {
void (*feat_attach)(struct brcmf_if *ifp);
int (*set_sae_password)(struct brcmf_if *ifp, struct cfg80211_crypto_settings *crypto);
int (*alloc_fweh_info)(struct brcmf_pub *drvr);
int (*activate_events)(struct brcmf_if *ifp);
void (*get_cfg80211_ops)(struct brcmf_pub *drvr);
void (*register_event_handlers)(struct brcmf_pub *drvr);
};
/* exported functions */
int brcmf_fwvid_register_vendor(enum brcmf_fwvendor fwvid, struct module *mod,
const struct brcmf_fwvid_ops *ops);
int brcmf_fwvid_unregister_vendor(enum brcmf_fwvendor fwvid, struct module *mod);
/* core driver functions */
int brcmf_fwvid_attach(struct brcmf_pub *drvr);
void brcmf_fwvid_detach(struct brcmf_pub *drvr);
const char *brcmf_fwvid_vendor_name(struct brcmf_pub *drvr);
static inline void brcmf_fwvid_feat_attach(struct brcmf_if *ifp)
{
const struct brcmf_fwvid_ops *vops = ifp->drvr->vops;
if (!vops->feat_attach)
return;
vops->feat_attach(ifp);
}
static inline int brcmf_fwvid_set_sae_password(struct brcmf_if *ifp,
struct cfg80211_crypto_settings *crypto)
{
const struct brcmf_fwvid_ops *vops = ifp->drvr->vops;
if (!vops || !vops->set_sae_password)
return -EOPNOTSUPP;
return vops->set_sae_password(ifp, crypto);
}
static inline int brcmf_fwvid_alloc_fweh_info(struct brcmf_pub *drvr)
{
if (!drvr->vops)
return -EIO;
return drvr->vops->alloc_fweh_info(drvr);
}
static inline int brcmf_fwvid_activate_events(struct brcmf_if *ifp)
{
const struct brcmf_fwvid_ops *vops = ifp->drvr->vops;
if (!vops || !vops->activate_events)
return -EOPNOTSUPP;
return vops->activate_events(ifp);
}
static inline void brcmf_fwvid_get_cfg80211_ops(struct brcmf_pub *drvr)
{
if (!drvr->vops || !drvr->vops->get_cfg80211_ops)
return;
drvr->vops->get_cfg80211_ops(drvr);
}
static inline void brcmf_fwvid_register_event_handlers(struct brcmf_pub *drvr)
{
if (!drvr->vops || !drvr->vops->register_event_handlers)
return;
drvr->vops->register_event_handlers(drvr);
}
#endif /* FWVID_H_ */
Annotation
- Immediate include surface: `firmware.h`, `cfg80211.h`.
- Detected declarations: `struct brcmf_pub`, `struct brcmf_if`, `struct brcmf_fwvid_ops`, `function brcmf_fwvid_feat_attach`, `function brcmf_fwvid_set_sae_password`, `function brcmf_fwvid_alloc_fweh_info`, `function brcmf_fwvid_activate_events`, `function brcmf_fwvid_get_cfg80211_ops`, `function brcmf_fwvid_register_event_handlers`.
- Atlas domain: Driver Families / drivers/net.
- 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.