drivers/net/wireless/ath/wcn36xx/wcn36xx.h
Source file repositories/reference/linux-study-clean/drivers/net/wireless/ath/wcn36xx/wcn36xx.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/wireless/ath/wcn36xx/wcn36xx.h- Extension
.h- Size
- 9477 bytes
- Lines
- 343
- 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
linux/completion.hlinux/in6.hlinux/printk.hlinux/spinlock.hnet/mac80211.hhal.hsmd.htxrx.hdxe.hpmc.hdebug.h
Detected Declarations
struct nv_datastruct wcn36xx_vifstruct wcn36xx_stastruct wcn36xx_dxe_chstruct wcn36xx_chan_surveystruct wcn36xxenum wcn36xx_debug_maskenum wcn36xx_ampdu_statefunction buff_to_befunction wcn36xx_is_fw_version
Annotated Snippet
struct nv_data {
int is_valid;
u8 table;
};
/**
* struct wcn36xx_vif - holds VIF related fields
*
* @bss_index: bss_index is initially set to 0xFF. bss_index is received from
* HW after first config_bss call and must be used in delete_bss and
* enter/exit_bmps.
*/
struct wcn36xx_vif {
struct list_head list;
u8 dtim_period;
enum ani_ed_type encrypt_type;
bool is_joining;
bool sta_assoc;
struct wcn36xx_hal_mac_ssid ssid;
enum wcn36xx_hal_bss_type bss_type;
/* Power management */
enum wcn36xx_power_state pw_state;
u8 bss_index;
/* Returned from WCN36XX_HAL_ADD_STA_SELF_RSP */
u8 self_sta_index;
u8 self_dpu_desc_index;
u8 self_ucast_dpu_sign;
#if IS_ENABLED(CONFIG_IPV6)
/* IPv6 addresses for WoWLAN */
struct in6_addr target_ipv6_addrs[WCN36XX_HAL_IPV6_OFFLOAD_ADDR_MAX];
unsigned long tentative_addrs[BITS_TO_LONGS(WCN36XX_HAL_IPV6_OFFLOAD_ADDR_MAX)];
int num_target_ipv6_addrs;
#endif
/* WoWLAN GTK rekey data */
struct {
u8 kck[NL80211_KCK_LEN], kek[NL80211_KEK_LEN];
__le64 replay_ctr;
bool valid;
} rekey_data;
struct list_head sta_list;
int bmps_fail_ct;
};
/**
* struct wcn36xx_sta - holds STA related fields
*
* @tid: traffic ID that is used during AMPDU and in TX BD.
* @sta_index: STA index is returned from HW after config_sta call and is
* used in both SMD channel and TX BD.
* @dpu_desc_index: DPU descriptor index is returned from HW after config_sta
* call and is used in TX BD.
* @bss_sta_index: STA index is returned from HW after config_bss call and is
* used in both SMD channel and TX BD. See table below when it is used.
* @bss_dpu_desc_index: DPU descriptor index is returned from HW after
* config_bss call and is used in TX BD.
* ______________________________________________
* | | STA | AP |
* |______________|_____________|_______________|
* | TX BD |bss_sta_index| sta_index |
* |______________|_____________|_______________|
* |all SMD calls |bss_sta_index| sta_index |
* |______________|_____________|_______________|
* |smd_delete_sta| sta_index | sta_index |
* |______________|_____________|_______________|
*/
struct wcn36xx_sta {
struct list_head list;
struct wcn36xx_vif *vif;
u16 aid;
u16 tid;
u8 sta_index;
u8 dpu_desc_index;
u8 ucast_dpu_sign;
u8 bss_sta_index;
u8 bss_dpu_desc_index;
bool is_data_encrypted;
/* Rates */
struct wcn36xx_hal_supported_rates_v1 supported_rates;
spinlock_t ampdu_lock; /* protects next two fields */
enum wcn36xx_ampdu_state ampdu_state[16];
int non_agg_frame_ct;
};
struct wcn36xx_dxe_ch;
Annotation
- Immediate include surface: `linux/completion.h`, `linux/in6.h`, `linux/printk.h`, `linux/spinlock.h`, `net/mac80211.h`, `hal.h`, `smd.h`, `txrx.h`.
- Detected declarations: `struct nv_data`, `struct wcn36xx_vif`, `struct wcn36xx_sta`, `struct wcn36xx_dxe_ch`, `struct wcn36xx_chan_survey`, `struct wcn36xx`, `enum wcn36xx_debug_mask`, `enum wcn36xx_ampdu_state`, `function buff_to_be`, `function wcn36xx_is_fw_version`.
- 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.