STRUCT IWL_SCAN_CHANNEL_PARAMS_V4(9)
π struct iwl_scan_channel_params_v4(9) β channel params, but make it cute
Okay so bestie, you're looking at struct iwl_scan_channel_params_v4(9) from the Kernel API Manual π and like... it's genuinely the channel-params struct. That's the whole vibe. It's the version-4 glow-up where the firmware gets told exactly which channels to scan and how long to hang out on each one. No cap β¨
πΈ SYNOPSIS πΈ
Here's the literal shape of her, copy-pasted with love:
struct iwl_scan_channel_params_v4 {
u8 flags;
u8 count;
u8 num_of_aps_override;
u8 reserved;
struct iwl_scan_channel_cfg_umac
channel_config[SCAN_MAX_NUM_CHANS_V3];
u8 adwell_ch_override_bitmap[16];
};
Like, look at her. Four tiny u8s at the top for the metadata, then a whole array of struct iwl_scan_channel_cfg_umac for the actual channels, then a 16-byte bitmap doing adaptive-dwell things. Main character energy fr fr π
β¨ Members β¨ (the whole cast, nobody gets cut)
flagsβ the channel flags, and the type isenum iwl_scan_channel_flags. That's it, that's the field πcountβ how many channels are in the scan request. Like a guest list count, but for radio channels π¦num_of_aps_overrideβ this one overrides the number of APs the FW (firmware, bestie) uses to calculate dwell time when adaptive dwell is in play. So you're basically saying "hey, count this many APs instead" πreservedβ for future use and alignment. She's just vibing there, holding space π«Άchannel_configβ an array of explicit channel configurations for the 2.4Ghz and 5.2Ghz bands. Yes, both bands, she's inclusive like that πadwell_ch_override_bitmap[16]β okay so when adaptive dwell is on, this bitmap overrides the number of APs value withnum_of_aps_overridefor the channel. And to cast a channel to an index, you useiwl_mvm_scan_ch_and_band_to_idx. That's the iykyk of it π₯
β οΈ Heads up: reserved literally says "for future use and alignment" β so don't go stuffing your own data in there, bestie. That's not your lane π
π SEE ALSO π
She runs with a whole squad, and we're listing every single one because everyone eats:
Kernel file ./drivers/net/wireless/intel/iwlwifi/fw/api/scan.h enum iwl_scan_subcmd_ids(9), struct iwl_ssid_ie(9), struct iwl_scan_offload_blocklist(9), struct iwl_scan_offload_profile(9), struct iwl_scan_offload_profile_cfg_data(9), struct iwl_scan_offload_profile_cfg_v1(9), struct iwl_scan_offload_profile_cfg(9), struct iwl_scan_schedule_lmac(9), struct iwl_scan_req_tx_cmd(9), struct iwl_scan_channel_cfg_lmac(9), struct iwl_scan_probe_segment(9), struct iwl_scan_probe_req_v1(9), struct iwl_scan_probe_req(9), struct iwl_scan_channel_opt(9), enum iwl_mvm_lmac_scan_flags(9), struct iwl_scan_req_lmac(9), struct iwl_scan_results_notif(9), struct iwl_lmac_scan_complete_notif(9), struct iwl_periodic_scan_complete(9), struct iwl_scan_dwell(9), struct iwl_scan_config_v1(9), struct iwl_scan_config_v2(9), struct iwl_scan_config(9), enum iwl_umac_scan_flags(9), enum iwl_umac_scan_general_flags2(9), enum iwl_umac_scan_general_flags_v2(9), enum iwl_umac_scan_general_params_flags2(9), struct iwl_scan_channel_cfg_umac(9), struct iwl_scan_umac_schedule(9), struct iwl_scan_req_umac_tail_v2(9), struct iwl_scan_umac_chan_param(9), struct iwl_scan_req_umac(9), struct iwl_scan_probe_params_v3(9), struct iwl_scan_probe_params_v4(9), struct iwl_scan_channel_params_v7(9), struct iwl_scan_channel_params_v8(9), struct iwl_scan_general_params_v11(9), struct iwl_scan_periodic_parms_v1(9), struct iwl_scan_req_params_v12(9), struct iwl_scan_req_params_v17(9), struct iwl_scan_req_params_v18(9), struct iwl_scan_req_umac_v12(9), struct iwl_scan_req_umac_v17(9), struct iwl_scan_req_umac_v18(9), struct iwl_umac_scan_abort(9), enum iwl_umac_scan_abort_status(9), struct iwl_umac_scan_start(9), struct iwl_umac_scan_complete(9), struct iwl_scan_offload_profile_match_v1(9), struct iwl_scan_offload_profiles_query_v1(9), struct iwl_scan_offload_profile_match(9), struct iwl_scan_offload_match_info(9), struct iwl_umac_scan_iter_complete_notif(9), struct iwl_umac_scan_channel_survey_notif(9)
Like, that's the whole friend group and every one of them is iconic in their own way π
And that's the page, bestie! Sourced straight from ./drivers/net/wireless/intel/i..., dated October 2026, and she's still signed struct iwl_...el_params_v4(9) at the bottom because legends never change their header. Periodt π
πβ¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms