drivers/net/wireless/intel/iwlwifi/mei/iwl-mei.h
Source file repositories/reference/linux-study-clean/drivers/net/wireless/intel/iwlwifi/mei/iwl-mei.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/wireless/intel/iwlwifi/mei/iwl-mei.h- Extension
.h- Size
- 19788 bytes
- Lines
- 543
- 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/if_ether.hlinux/skbuff.hlinux/ieee80211.h
Detected Declarations
struct iwl_mei_nvmstruct iwl_mei_conn_infostruct iwl_mei_colloc_infostruct iwl_mei_opsenum iwl_mei_nvm_capsenum iwl_mei_pairwise_cipherenum iwl_mei_akm_authenum iwl_mei_sap_versionfunction iwl_mei_is_connectedfunction iwl_mei_get_ownershipfunction iwl_mei_set_rfkill_statefunction iwl_mei_start_unregisterfunction iwl_mei_alive_notif
Annotated Snippet
struct iwl_mei_nvm {
u8 hw_addr[ETH_ALEN];
u8 n_hw_addrs;
u8 reserved;
u32 radio_cfg;
u32 caps;
u32 nvm_version;
u32 channels[110];
};
/**
* enum iwl_mei_pairwise_cipher - cipher for UCAST key
* @IWL_MEI_CIPHER_NONE: none
* @IWL_MEI_CIPHER_TKIP: tkip
* @IWL_MEI_CIPHER_CCMP: ccmp
* @IWL_MEI_CIPHER_GCMP: gcmp
* @IWL_MEI_CIPHER_GCMP_256: gcmp 256
*
* Note that those values are dictated by the CSME firmware API (see sap.h)
*/
enum iwl_mei_pairwise_cipher {
IWL_MEI_CIPHER_NONE = 0,
IWL_MEI_CIPHER_TKIP = 2,
IWL_MEI_CIPHER_CCMP = 4,
IWL_MEI_CIPHER_GCMP = 8,
IWL_MEI_CIPHER_GCMP_256 = 9,
};
/**
* enum iwl_mei_akm_auth - a combination of AKM and AUTH method
* @IWL_MEI_AKM_AUTH_OPEN: No encryption
* @IWL_MEI_AKM_AUTH_RSNA: 1X profile
* @IWL_MEI_AKM_AUTH_RSNA_PSK: PSK profile
* @IWL_MEI_AKM_AUTH_SAE: SAE profile
*
* Note that those values are dictated by the CSME firmware API (see sap.h)
*/
enum iwl_mei_akm_auth {
IWL_MEI_AKM_AUTH_OPEN = 0,
IWL_MEI_AKM_AUTH_RSNA = 6,
IWL_MEI_AKM_AUTH_RSNA_PSK = 7,
IWL_MEI_AKM_AUTH_SAE = 9,
};
/**
* struct iwl_mei_conn_info - connection info
* @lp_state: link protection state
* @auth_mode: authentication mode
* @ssid_len: the length of SSID
* @ssid: the SSID
* @pairwise_cipher: the cipher used for unicast packets
* @channel: the associated channel
* @band: the associated band
* @bssid: the BSSID
*/
struct iwl_mei_conn_info {
u8 lp_state;
u8 auth_mode;
u8 ssid_len;
u8 channel;
u8 band;
u8 pairwise_cipher;
u8 bssid[ETH_ALEN];
u8 ssid[IEEE80211_MAX_SSID_LEN];
};
/**
* struct iwl_mei_colloc_info - collocated AP info
* @channel: the channel of the collocated AP
* @bssid: the BSSID of the collocated AP
*/
struct iwl_mei_colloc_info {
u8 channel;
u8 bssid[ETH_ALEN];
};
/**
* enum iwl_mei_sap_version - SAP version
* @IWL_MEI_SAP_VERSION_3: SAP version 3
* @IWL_MEI_SAP_VERSION_4: SAP version 4
*/
enum iwl_mei_sap_version {
IWL_MEI_SAP_VERSION_3 = 3,
IWL_MEI_SAP_VERSION_4 = 4,
};
/*
* struct iwl_mei_ops - driver's operations called by iwlmei
* Operations will not be called more than once concurrently.
* It's not allowed to call iwlmei functions from this context.
Annotation
- Immediate include surface: `linux/if_ether.h`, `linux/skbuff.h`, `linux/ieee80211.h`.
- Detected declarations: `struct iwl_mei_nvm`, `struct iwl_mei_conn_info`, `struct iwl_mei_colloc_info`, `struct iwl_mei_ops`, `enum iwl_mei_nvm_caps`, `enum iwl_mei_pairwise_cipher`, `enum iwl_mei_akm_auth`, `enum iwl_mei_sap_version`, `function iwl_mei_is_connected`, `function iwl_mei_get_ownership`.
- 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.