drivers/net/wireless/ath/ath10k/wmi.h
Source file repositories/reference/linux-study-clean/drivers/net/wireless/ath/ath10k/wmi.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/wireless/ath/ath10k/wmi.h- Extension
.h- Size
- 220588 bytes
- Lines
- 7543
- 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/types.hlinux/ieee80211.h
Detected Declarations
struct wmi_cmd_hdrstruct wmi_mac_addrstruct wmi_cmd_mapstruct wmi_channelstruct wmi_channel_argstruct hal_reg_capabilitiesstruct wlan_host_mem_reqstruct wmi_service_ready_eventstruct wmi_10x_service_ready_eventstruct wmi_ready_eventstruct wmi_resource_configstruct wmi_resource_config_10xstruct wmi_resource_config_10_2struct wmi_resource_config_10_4struct wmi_gpio_config_cmdstruct wmi_gpio_output_cmdstruct wmi_gpio_input_eventstruct wmi_ext_resource_config_10_4_cmdstruct host_memory_chunkstruct wmi_host_mem_chunksstruct wmi_init_cmdstruct wmi_init_cmd_10xstruct wmi_init_cmd_10_2struct wmi_init_cmd_10_4struct wmi_chan_list_entrystruct wmi_chan_liststruct wmi_bssid_liststruct wmi_ie_datastruct wmi_ssidstruct wmi_ssid_liststruct wmi_start_scan_commonstruct wmi_start_scan_cmdstruct wmi_10x_start_scan_cmdstruct wmi_ssid_argstruct wmi_bssid_argstruct wmi_start_scan_argstruct wmi_stop_scan_cmdstruct wmi_stop_scan_argstruct wmi_scan_chan_list_cmdstruct wmi_scan_chan_list_argstruct wmi_scan_eventstruct wmi_mgmt_rx_hdr_v1struct wmi_mgmt_rx_hdr_v2struct wmi_mgmt_rx_event_v1struct wmi_mgmt_rx_event_v2struct wmi_10_4_mgmt_rx_hdrstruct wmi_10_4_mgmt_rx_eventstruct wmi_mgmt_rx_ext_info
Annotated Snippet
struct wmi_cmd_hdr {
__le32 cmd_id;
} __packed;
#define WMI_CMD_HDR_CMD_ID_MASK 0x00FFFFFF
#define WMI_CMD_HDR_CMD_ID_LSB 0
#define WMI_CMD_HDR_PLT_PRIV_MASK 0xFF000000
#define WMI_CMD_HDR_PLT_PRIV_LSB 24
#define HTC_PROTOCOL_VERSION 0x0002
#define WMI_PROTOCOL_VERSION 0x0002
/*
* There is no signed version of __le32, so for a temporary solution come
* up with our own version. The idea is from fs/ntfs/endian.h.
*
* Use a_ prefix so that it doesn't conflict if we get proper support to
* linux/types.h.
*/
typedef __s32 __bitwise a_sle32;
static inline a_sle32 a_cpu_to_sle32(s32 val)
{
return (__force a_sle32)cpu_to_le32(val);
}
static inline s32 a_sle32_to_cpu(a_sle32 val)
{
return le32_to_cpu((__force __le32)val);
}
enum wmi_service {
WMI_SERVICE_BEACON_OFFLOAD = 0,
WMI_SERVICE_SCAN_OFFLOAD,
WMI_SERVICE_ROAM_OFFLOAD,
WMI_SERVICE_BCN_MISS_OFFLOAD,
WMI_SERVICE_STA_PWRSAVE,
WMI_SERVICE_STA_ADVANCED_PWRSAVE,
WMI_SERVICE_AP_UAPSD,
WMI_SERVICE_AP_DFS,
WMI_SERVICE_11AC,
WMI_SERVICE_BLOCKACK,
WMI_SERVICE_PHYERR,
WMI_SERVICE_BCN_FILTER,
WMI_SERVICE_RTT,
WMI_SERVICE_RATECTRL,
WMI_SERVICE_WOW,
WMI_SERVICE_RATECTRL_CACHE,
WMI_SERVICE_IRAM_TIDS,
WMI_SERVICE_ARPNS_OFFLOAD,
WMI_SERVICE_NLO,
WMI_SERVICE_GTK_OFFLOAD,
WMI_SERVICE_SCAN_SCH,
WMI_SERVICE_CSA_OFFLOAD,
WMI_SERVICE_CHATTER,
WMI_SERVICE_COEX_FREQAVOID,
WMI_SERVICE_PACKET_POWER_SAVE,
WMI_SERVICE_FORCE_FW_HANG,
WMI_SERVICE_GPIO,
WMI_SERVICE_STA_DTIM_PS_MODULATED_DTIM,
WMI_SERVICE_STA_UAPSD_BASIC_AUTO_TRIG,
WMI_SERVICE_STA_UAPSD_VAR_AUTO_TRIG,
WMI_SERVICE_STA_KEEP_ALIVE,
WMI_SERVICE_TX_ENCAP,
WMI_SERVICE_BURST,
WMI_SERVICE_SMART_ANTENNA_SW_SUPPORT,
WMI_SERVICE_SMART_ANTENNA_HW_SUPPORT,
WMI_SERVICE_ROAM_SCAN_OFFLOAD,
WMI_SERVICE_AP_PS_DETECT_OUT_OF_SYNC,
WMI_SERVICE_EARLY_RX,
WMI_SERVICE_STA_SMPS,
WMI_SERVICE_FWTEST,
WMI_SERVICE_STA_WMMAC,
WMI_SERVICE_TDLS,
WMI_SERVICE_MCC_BCN_INTERVAL_CHANGE,
WMI_SERVICE_ADAPTIVE_OCS,
WMI_SERVICE_BA_SSN_SUPPORT,
WMI_SERVICE_FILTER_IPSEC_NATKEEPALIVE,
WMI_SERVICE_WLAN_HB,
WMI_SERVICE_LTE_ANT_SHARE_SUPPORT,
WMI_SERVICE_BATCH_SCAN,
WMI_SERVICE_QPOWER,
WMI_SERVICE_PLMREQ,
WMI_SERVICE_THERMAL_MGMT,
WMI_SERVICE_RMC,
WMI_SERVICE_MHF_OFFLOAD,
WMI_SERVICE_COEX_SAR,
WMI_SERVICE_BCN_TXRATE_OVERRIDE,
WMI_SERVICE_NAN,
WMI_SERVICE_L1SS_STAT,
Annotation
- Immediate include surface: `linux/types.h`, `linux/ieee80211.h`.
- Detected declarations: `struct wmi_cmd_hdr`, `struct wmi_mac_addr`, `struct wmi_cmd_map`, `struct wmi_channel`, `struct wmi_channel_arg`, `struct hal_reg_capabilities`, `struct wlan_host_mem_req`, `struct wmi_service_ready_event`, `struct wmi_10x_service_ready_event`, `struct wmi_ready_event`.
- 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.