drivers/net/wireless/ath/ath10k/core.h
Source file repositories/reference/linux-study-clean/drivers/net/wireless/ath/ath10k/core.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/wireless/ath/ath10k/core.h- Extension
.h- Size
- 33175 bytes
- Lines
- 1368
- 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.
- Uses kernel synchronization; read lock ordering, sleepability, and interrupt context assumptions before translating.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/completion.hlinux/if_ether.hlinux/types.hlinux/pci.hlinux/uuid.hlinux/time.hlinux/leds.hhtt.hhtc.hhw.htargaddrs.hwmi.h../ath.h../regd.h../dfs_pattern_detector.hspectral.hthermal.hwow.hswap.h
Detected Declarations
struct ath10kstruct ath10k_skb_cbstruct ath10k_skb_rxcbstruct ath10k_index_ht_data_rate_typestruct ath10k_index_vht_data_rate_typestruct ath10k_bmistruct ath10k_mem_chunkstruct ath10k_wmistruct ath10k_fw_stats_peerstruct ath10k_fw_extd_stats_peerstruct ath10k_fw_stats_vdevstruct ath10k_fw_stats_vdev_extdstruct ath10k_fw_stats_pdevstruct ath10k_fw_statsstruct ath10k_tpc_tablestruct ath10k_tpc_statsstruct ath10k_tpc_table_finalstruct ath10k_tpc_stats_finalstruct ath10k_dfs_statsstruct ath10k_radar_found_infostruct ath10k_peerstruct ath10k_txqstruct ath10k_sta_tid_statsstruct ath10k_htt_data_statsstruct ath10k_htt_tx_statsstruct ath10k_stastruct ath10k_vifstruct ath10k_vif_iterstruct ath10k_ce_crash_datastruct ath10k_ce_crash_hdrstruct ath10k_fw_crash_datastruct ath10k_debugstruct ath10k_fw_filestruct ath10k_fw_componentsstruct ath10k_per_peer_tx_statsstruct ath10k_bus_paramsstruct ath10kstruct msa_regionenum ath10k_skb_flagsenum ath10k_phy_modeenum ath10k_radar_confirmation_stateenum ath10k_pkt_rx_errenum ath10k_ampdu_subfrm_numenum ath10k_amsdu_subfrm_numenum ath10k_counter_typeenum ath10k_stats_typeenum ath10k_beacon_stateenum ath10k_state
Annotated Snippet
struct ath10k_skb_cb {
dma_addr_t paddr;
u8 flags;
u8 eid;
u16 msdu_id;
u16 airtime_est;
struct ieee80211_vif *vif;
struct ieee80211_txq *txq;
u32 ucast_cipher;
} __packed;
struct ath10k_skb_rxcb {
dma_addr_t paddr;
struct hlist_node hlist;
u8 eid;
};
static inline struct ath10k_skb_cb *ATH10K_SKB_CB(struct sk_buff *skb)
{
BUILD_BUG_ON(sizeof(struct ath10k_skb_cb) >
IEEE80211_TX_INFO_DRIVER_DATA_SIZE);
return (struct ath10k_skb_cb *)&IEEE80211_SKB_CB(skb)->driver_data;
}
static inline struct ath10k_skb_rxcb *ATH10K_SKB_RXCB(struct sk_buff *skb)
{
BUILD_BUG_ON(sizeof(struct ath10k_skb_rxcb) > sizeof(skb->cb));
return (struct ath10k_skb_rxcb *)skb->cb;
}
#define ATH10K_RXCB_SKB(rxcb) \
container_of((void *)rxcb, struct sk_buff, cb)
static inline u32 host_interest_item_address(u32 item_offset)
{
return QCA988X_HOST_INTEREST_ADDRESS + item_offset;
}
enum ath10k_phy_mode {
ATH10K_PHY_MODE_LEGACY = 0,
ATH10K_PHY_MODE_HT = 1,
ATH10K_PHY_MODE_VHT = 2,
};
/* Data rate 100KBPS based on IE Index */
struct ath10k_index_ht_data_rate_type {
u8 beacon_rate_index;
u16 supported_rate[4];
};
/* Data rate 100KBPS based on IE Index */
struct ath10k_index_vht_data_rate_type {
u8 beacon_rate_index;
u16 supported_VHT80_rate[2];
u16 supported_VHT40_rate[2];
u16 supported_VHT20_rate[2];
};
struct ath10k_bmi {
bool done_sent;
};
struct ath10k_mem_chunk {
void *vaddr;
dma_addr_t paddr;
u32 len;
u32 req_id;
};
struct ath10k_wmi {
enum ath10k_htc_ep_id eid;
struct completion service_ready;
struct completion unified_ready;
struct completion barrier;
struct completion radar_confirm;
wait_queue_head_t tx_credits_wq;
DECLARE_BITMAP(svc_map, WMI_SERVICE_MAX);
struct wmi_cmd_map *cmd;
struct wmi_vdev_param_map *vdev_param;
struct wmi_pdev_param_map *pdev_param;
struct wmi_peer_param_map *peer_param;
const struct wmi_ops *ops;
const struct wmi_peer_flags_map *peer_flags;
u32 mgmt_max_num_pending_tx;
/* Protected by data_lock */
struct idr mgmt_pending_tx;
u32 num_mem_chunks;
Annotation
- Immediate include surface: `linux/completion.h`, `linux/if_ether.h`, `linux/types.h`, `linux/pci.h`, `linux/uuid.h`, `linux/time.h`, `linux/leds.h`, `htt.h`.
- Detected declarations: `struct ath10k`, `struct ath10k_skb_cb`, `struct ath10k_skb_rxcb`, `struct ath10k_index_ht_data_rate_type`, `struct ath10k_index_vht_data_rate_type`, `struct ath10k_bmi`, `struct ath10k_mem_chunk`, `struct ath10k_wmi`, `struct ath10k_fw_stats_peer`, `struct ath10k_fw_extd_stats_peer`.
- Atlas domain: Driver Families / drivers/net.
- Implementation status: source implementation candidate.
- Synchronization appears in or near this file; preserve lock ordering, sleepability, and interrupt-context constraints.
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.