drivers/net/wireless/intel/iwlwifi/fw/api/scan.h
Source file repositories/reference/linux-study-clean/drivers/net/wireless/intel/iwlwifi/fw/api/scan.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/wireless/intel/iwlwifi/fw/api/scan.h- Extension
.h- Size
- 47196 bytes
- Lines
- 1372
- 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
- No C-style include directives detected by the generator.
Detected Declarations
struct iwl_ssid_iestruct iwl_scan_offload_blockliststruct iwl_scan_offload_profilestruct iwl_scan_offload_profile_cfg_datastruct iwl_scan_offload_profile_cfg_v1struct iwl_scan_offload_profile_cfgstruct iwl_scan_schedule_lmacstruct iwl_scan_req_tx_cmdstruct iwl_scan_channel_cfg_lmacstruct iwl_scan_probe_segmentstruct iwl_scan_probe_req_v1struct iwl_scan_probe_reqstruct iwl_scan_channel_optstruct iwl_scan_req_lmacstruct iwl_scan_results_notifstruct iwl_lmac_scan_complete_notifstruct iwl_periodic_scan_completestruct iwl_scan_dwellstruct iwl_scan_config_v1struct iwl_scan_config_v2struct iwl_scan_configstruct iwl_scan_channel_cfg_umacstruct iwl_scan_umac_schedulestruct iwl_scan_req_umac_tail_v1struct iwl_scan_req_umac_tail_v2struct iwl_scan_umac_chan_paramstruct iwl_scan_req_umacstruct iwl_scan_probe_params_v3struct iwl_scan_probe_params_v4struct iwl_scan_channel_params_v4struct iwl_scan_channel_params_v7struct iwl_scan_channel_params_v8struct iwl_scan_general_params_v11struct iwl_scan_periodic_parms_v1struct iwl_scan_req_params_v12struct iwl_scan_req_params_v17struct iwl_scan_req_params_v18struct iwl_scan_req_umac_v12struct iwl_scan_req_umac_v17struct iwl_scan_req_umac_v18struct iwl_umac_scan_abortstruct iwl_umac_scan_startstruct iwl_umac_scan_completestruct iwl_scan_offload_profile_match_v1struct iwl_scan_offload_profiles_query_v1struct iwl_scan_offload_profile_matchstruct iwl_scan_offload_match_infostruct iwl_umac_scan_iter_complete_notif
Annotated Snippet
struct iwl_ssid_ie {
u8 id;
u8 len;
u8 ssid[IEEE80211_MAX_SSID_LEN];
} __packed; /* SCAN_DIRECT_SSID_IE_API_S_VER_1 */
/* scan offload */
#define IWL_SCAN_MAX_BLACKLIST_LEN 64
#define IWL_SCAN_SHORT_BLACKLIST_LEN 16
#define IWL_SCAN_MAX_PROFILES 11
#define IWL_SCAN_MAX_PROFILES_V2 8
#define SCAN_OFFLOAD_PROBE_REQ_SIZE 512
#define SCAN_NUM_BAND_PROBE_DATA_V_1 2
#define SCAN_NUM_BAND_PROBE_DATA_V_2 3
/* Default watchdog (in MS) for scheduled scan iteration */
#define IWL_SCHED_SCAN_WATCHDOG cpu_to_le16(15000)
#define IWL_GOOD_CRC_TH_DEFAULT cpu_to_le16(1)
#define CAN_ABORT_STATUS 1
#define IWL_FULL_SCAN_MULTIPLIER 5
#define IWL_FAST_SCHED_SCAN_ITERATIONS 3
#define IWL_MAX_SCHED_SCAN_PLANS 2
#define IWL_MAX_NUM_NOISE_RESULTS 22
enum scan_framework_client {
SCAN_CLIENT_SCHED_SCAN = BIT(0),
SCAN_CLIENT_NETDETECT = BIT(1),
SCAN_CLIENT_ASSET_TRACKING = BIT(2),
};
/**
* struct iwl_scan_offload_blocklist - SCAN_OFFLOAD_BLACKLIST_S
* @ssid: MAC address to filter out
* @reported_rssi: AP rssi reported to the host
* @client_bitmap: clients ignore this entry - enum scan_framework_client
*/
struct iwl_scan_offload_blocklist {
u8 ssid[ETH_ALEN];
u8 reported_rssi;
u8 client_bitmap;
} __packed;
enum iwl_scan_offload_network_type {
IWL_NETWORK_TYPE_BSS = 1,
IWL_NETWORK_TYPE_IBSS = 2,
IWL_NETWORK_TYPE_ANY = 3,
};
enum iwl_scan_offload_band_selection {
IWL_SCAN_OFFLOAD_SELECT_2_4 = 0x4,
IWL_SCAN_OFFLOAD_SELECT_5_2 = 0x8,
IWL_SCAN_OFFLOAD_SELECT_ANY = 0xc,
};
enum iwl_scan_offload_auth_alg {
IWL_AUTH_ALGO_UNSUPPORTED = 0x00,
IWL_AUTH_ALGO_NONE = 0x01,
IWL_AUTH_ALGO_PSK = 0x02,
IWL_AUTH_ALGO_8021X = 0x04,
IWL_AUTH_ALGO_SAE = 0x08,
IWL_AUTH_ALGO_8021X_SHA384 = 0x10,
IWL_AUTH_ALGO_OWE = 0x20,
};
/**
* struct iwl_scan_offload_profile - SCAN_OFFLOAD_PROFILE_S
* @ssid_index: index to ssid list in fixed part
* @unicast_cipher: encryption algorithm to match - bitmap
* @auth_alg: authentication algorithm to match - bitmap
* @network_type: enum iwl_scan_offload_network_type
* @band_selection: enum iwl_scan_offload_band_selection
* @client_bitmap: clients waiting for match - enum scan_framework_client
* @reserved: reserved
*/
struct iwl_scan_offload_profile {
u8 ssid_index;
u8 unicast_cipher;
u8 auth_alg;
u8 network_type;
u8 band_selection;
u8 client_bitmap;
u8 reserved[2];
} __packed;
/**
* struct iwl_scan_offload_profile_cfg_data - scan offload profile configs
* @blocklist_len: length of blocklist
Annotation
- Detected declarations: `struct iwl_ssid_ie`, `struct iwl_scan_offload_blocklist`, `struct iwl_scan_offload_profile`, `struct iwl_scan_offload_profile_cfg_data`, `struct iwl_scan_offload_profile_cfg_v1`, `struct iwl_scan_offload_profile_cfg`, `struct iwl_scan_schedule_lmac`, `struct iwl_scan_req_tx_cmd`, `struct iwl_scan_channel_cfg_lmac`, `struct iwl_scan_probe_segment`.
- 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.