drivers/net/wireless/intel/iwlwifi/mld/mld.h
Source file repositories/reference/linux-study-clean/drivers/net/wireless/intel/iwlwifi/mld/mld.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/wireless/intel/iwlwifi/mld/mld.h- Extension
.h- Size
- 20341 bytes
- Lines
- 625
- 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/leds.hnet/mac80211.hiwl-trans.hiwl-op-mode.hfw/runtime.hfw/notif-wait.hfw/api/commands.hfw/api/scan.hfw/api/mac-cfg.hfw/api/mac.hfw/api/phy-ctxt.hfw/api/datapath.hfw/api/rx.hfw/api/rs.hfw/api/context.hfw/api/coex.hfw/api/location.hfw/dbg.hnotif.hscan.hrx.hthermal.hlow_latency.hconstants.hptp.htime_sync.hftm-initiator.hnan.h
Detected Declarations
struct iwl_mldstruct iwl_mld_mod_paramsstruct iwl_rx_handlerstruct iwl_notif_struct_sizeenum iwl_power_schemeenum iwl_rx_handler_contextfunction iwl_mld_add_debugfs_filesfunction iwl_mld_set_ctkillfunction iwl_mld_set_hwkillfunction iwl_mld_get_valid_tx_antfunction iwl_mld_get_valid_rx_antfunction iwl_mld_nl80211_band_to_fwfunction iwl_mld_phy_band_to_nl80211function iwl_mld_legacy_hw_idx_to_mac80211_idxfunction IWL_MLD_ALLOC_FNfunction iwl_mld_mac80211_ac_to_fw_tx_fifofunction iwl_mld_get_lmac_idfunction iwl_mld_error_before_recovery
Annotated Snippet
struct iwl_mld {
/* Add here fields that need clean up on restart */
struct_group(zeroed_on_hw_restart,
struct ieee80211_bss_conf __rcu *fw_id_to_bss_conf[IWL_FW_MAX_LINKS];
struct ieee80211_vif __rcu *fw_id_to_vif[NUM_MAC_INDEX_DRIVER];
struct ieee80211_txq __rcu *fw_id_to_txq[IWL_MAX_TVQM_QUEUES];
u8 used_phy_ids: NUM_PHY_CTX;
u8 num_igtks;
struct {
bool on;
u32 ampdu_ref;
bool ampdu_toggle;
u8 p80;
struct {
struct iwl_rx_phy_air_sniffer_ntfy data;
u8 valid:1, used:1;
} phy;
#ifdef CONFIG_IWLWIFI_DEBUGFS
__le16 cur_aid;
u8 cur_bssid[ETH_ALEN];
bool ptp_time;
#endif
} monitor;
#ifdef CONFIG_PM_SLEEP
bool netdetect;
#endif /* CONFIG_PM_SLEEP */
struct ieee80211_vif *p2p_device_vif;
bool bt_is_active;
struct ieee80211_vif *nan_device_vif;
);
struct ieee80211_link_sta __rcu *fw_id_to_link_sta[IWL_STATION_COUNT_MAX];
/* And here fields that survive a fw restart */
struct device *dev;
struct iwl_trans *trans;
const struct iwl_rf_cfg *cfg;
const struct iwl_fw *fw;
struct ieee80211_hw *hw;
struct wiphy *wiphy;
struct wiphy_iftype_ext_capab ext_capab[IWL_MLD_EXT_CAPA_NUM_IFTYPES];
u8 sta_ext_capab[IWL_MLD_STA_EXT_CAPA_SIZE];
struct iwl_nvm_data *nvm_data;
struct iwl_fw_runtime fwrt;
struct dentry *debugfs_dir;
struct iwl_notif_wait_data notif_wait;
struct list_head async_handlers_list;
spinlock_t async_handlers_lock;
struct wiphy_work async_handlers_wk;
struct wiphy_delayed_work ct_kill_exit_wk;
struct {
u32 running:1,
do_not_dump_once:1,
#ifdef CONFIG_PM_SLEEP
in_d3:1,
resuming:1,
#endif
in_hw_restart:1;
} fw_status;
struct {
u32 hw:1,
ct:1;
} radio_kill;
u32 power_budget_mw;
struct mac_address addresses[IWL_MLD_MAX_ADDRESSES];
struct iwl_mld_scan scan;
struct iwl_mld_survey *channel_survey;
#ifdef CONFIG_PM_SLEEP
struct wiphy_wowlan_support wowlan;
u32 debug_max_sleep;
#endif /* CONFIG_PM_SLEEP */
#ifdef CONFIG_IWLWIFI_LEDS
struct led_classdev led;
#endif
enum iwl_mcc_source mcc_src;
bool bios_enable_puncturing;
struct iwl_mld_baid_data __rcu *fw_id_to_ba[IWL_MAX_BAID];
u8 num_rx_ba_sessions;
struct iwl_mld_rx_queues_sync rxq_sync;
struct list_head txqs_to_add;
struct wiphy_work add_txqs_wk;
spinlock_t add_txqs_lock;
u8 *error_recovery_buf;
Annotation
- Immediate include surface: `linux/leds.h`, `net/mac80211.h`, `iwl-trans.h`, `iwl-op-mode.h`, `fw/runtime.h`, `fw/notif-wait.h`, `fw/api/commands.h`, `fw/api/scan.h`.
- Detected declarations: `struct iwl_mld`, `struct iwl_mld_mod_params`, `struct iwl_rx_handler`, `struct iwl_notif_struct_size`, `enum iwl_power_scheme`, `enum iwl_rx_handler_context`, `function iwl_mld_add_debugfs_files`, `function iwl_mld_set_ctkill`, `function iwl_mld_set_hwkill`, `function iwl_mld_get_valid_tx_ant`.
- 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.