drivers/net/wireless/intel/iwlwifi/fw/api/d3.h
Source file repositories/reference/linux-study-clean/drivers/net/wireless/intel/iwlwifi/fw/api/d3.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/wireless/intel/iwlwifi/fw/api/d3.h- Extension
.h- Size
- 30681 bytes
- Lines
- 998
- 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
iwl-trans.h
Detected Declarations
struct iwl_d3_manager_configstruct iwl_proto_offload_cmd_commonstruct iwl_proto_offload_cmd_v1struct iwl_proto_offload_cmd_v2struct iwl_ns_configstruct iwl_targ_addrstruct iwl_proto_offload_cmd_v3_smallstruct iwl_proto_offload_cmd_v3_largestruct iwl_proto_offload_cmd_v4struct iwl_wowlan_pattern_v1struct iwl_wowlan_patterns_cmd_v1struct iwl_wowlan_ipv4_tcp_synstruct iwl_wowlan_ipv6_tcp_synstruct iwl_wowlan_pattern_v2struct iwl_wowlan_patterns_cmdstruct iwl_wowlan_config_cmd_v6struct iwl_wowlan_config_cmdstruct tkip_scstruct iwl_tkip_rsc_tscstruct aes_scstruct iwl_aes_rsc_tscstruct iwl_wowlan_rsc_tsc_params_cmd_ver_2struct iwl_wowlan_rsc_tsc_params_cmdstruct iwl_mic_keysstruct iwl_p1k_cachestruct iwl_wowlan_tkip_params_cmd_ver_1struct iwl_wowlan_tkip_params_cmdstruct iwl_wowlan_kek_kck_material_cmd_v2struct iwl_wowlan_kek_kck_material_cmd_v3struct iwl_wowlan_kek_kck_material_cmd_v4struct iwl_wowlan_get_status_cmdstruct iwl_wowlan_gtk_status_v1struct iwl_wowlan_gtk_status_v2struct iwl_wowlan_all_rsc_tsc_v5struct iwl_wowlan_gtk_status_v3struct iwl_wowlan_gtk_statusstruct iwl_wowlan_igtk_status_v1struct iwl_wowlan_igtk_statusstruct iwl_wowlan_status_v6struct iwl_wowlan_status_v7struct iwl_wowlan_info_notif_v1struct iwl_wowlan_mlo_gtkstruct iwl_wowlan_info_notif_v3struct iwl_wowlan_info_notif_v5struct iwl_wowlan_info_notifstruct iwl_wowlan_wake_pkt_notifstruct iwl_d3_end_notifenum iwl_d0i3_flags
Annotated Snippet
struct iwl_d3_manager_config {
__le32 min_sleep_time;
__le32 wakeup_flags;
__le32 wakeup_host_timer;
} __packed; /* D3_MANAGER_CONFIG_CMD_S_VER_4 */
/* TODO: OFFLOADS_QUERY_API_S_VER_1 */
/**
* enum iwl_proto_offloads - enabled protocol offloads
* @IWL_D3_PROTO_OFFLOAD_ARP: ARP data is enabled
* @IWL_D3_PROTO_OFFLOAD_NS: NS (Neighbor Solicitation) is enabled
* @IWL_D3_PROTO_IPV4_VALID: IPv4 data is valid
* @IWL_D3_PROTO_IPV6_VALID: IPv6 data is valid
* @IWL_D3_PROTO_OFFLOAD_BTM: BTM offload is enabled
*/
enum iwl_proto_offloads {
IWL_D3_PROTO_OFFLOAD_ARP = BIT(0),
IWL_D3_PROTO_OFFLOAD_NS = BIT(1),
IWL_D3_PROTO_IPV4_VALID = BIT(2),
IWL_D3_PROTO_IPV6_VALID = BIT(3),
IWL_D3_PROTO_OFFLOAD_BTM = BIT(4),
};
#define IWL_PROTO_OFFLOAD_NUM_IPV6_ADDRS_V1 2
#define IWL_PROTO_OFFLOAD_NUM_IPV6_ADDRS_V2 6
#define IWL_PROTO_OFFLOAD_NUM_IPV6_ADDRS_V3L 12
#define IWL_PROTO_OFFLOAD_NUM_IPV6_ADDRS_V3S 4
#define IWL_PROTO_OFFLOAD_NUM_IPV6_ADDRS_MAX 12
#define IWL_PROTO_OFFLOAD_NUM_NS_CONFIG_V3L 4
#define IWL_PROTO_OFFLOAD_NUM_NS_CONFIG_V3S 2
/**
* struct iwl_proto_offload_cmd_common - ARP/NS offload common part
* @enabled: enable flags
* @remote_ipv4_addr: remote address to answer to (or zero if all)
* @host_ipv4_addr: our IPv4 address to respond to queries for
* @arp_mac_addr: our MAC address for ARP responses
* @reserved: unused
*/
struct iwl_proto_offload_cmd_common {
__le32 enabled;
__be32 remote_ipv4_addr;
__be32 host_ipv4_addr;
u8 arp_mac_addr[ETH_ALEN];
__le16 reserved;
} __packed;
/**
* struct iwl_proto_offload_cmd_v1 - ARP/NS offload configuration
* @common: common/IPv4 configuration
* @remote_ipv6_addr: remote address to answer to (or zero if all)
* @solicited_node_ipv6_addr: broken -- solicited node address exists
* for each target address
* @target_ipv6_addr: our target addresses
* @ndp_mac_addr: neighbor solicitation response MAC address
* @reserved2: reserved
*/
struct iwl_proto_offload_cmd_v1 {
struct iwl_proto_offload_cmd_common common;
u8 remote_ipv6_addr[16];
u8 solicited_node_ipv6_addr[16];
u8 target_ipv6_addr[IWL_PROTO_OFFLOAD_NUM_IPV6_ADDRS_V1][16];
u8 ndp_mac_addr[ETH_ALEN];
__le16 reserved2;
} __packed; /* PROT_OFFLOAD_CONFIG_CMD_DB_S_VER_1 */
/**
* struct iwl_proto_offload_cmd_v2 - ARP/NS offload configuration
* @common: common/IPv4 configuration
* @remote_ipv6_addr: remote address to answer to (or zero if all)
* @solicited_node_ipv6_addr: broken -- solicited node address exists
* for each target address
* @target_ipv6_addr: our target addresses
* @ndp_mac_addr: neighbor solicitation response MAC address
* @num_valid_ipv6_addrs: number of valid IPv6 addresses
* @reserved2: reserved
*/
struct iwl_proto_offload_cmd_v2 {
struct iwl_proto_offload_cmd_common common;
u8 remote_ipv6_addr[16];
u8 solicited_node_ipv6_addr[16];
u8 target_ipv6_addr[IWL_PROTO_OFFLOAD_NUM_IPV6_ADDRS_V2][16];
u8 ndp_mac_addr[ETH_ALEN];
u8 num_valid_ipv6_addrs;
u8 reserved2[3];
} __packed; /* PROT_OFFLOAD_CONFIG_CMD_DB_S_VER_2 */
Annotation
- Immediate include surface: `iwl-trans.h`.
- Detected declarations: `struct iwl_d3_manager_config`, `struct iwl_proto_offload_cmd_common`, `struct iwl_proto_offload_cmd_v1`, `struct iwl_proto_offload_cmd_v2`, `struct iwl_ns_config`, `struct iwl_targ_addr`, `struct iwl_proto_offload_cmd_v3_small`, `struct iwl_proto_offload_cmd_v3_large`, `struct iwl_proto_offload_cmd_v4`, `struct iwl_wowlan_pattern_v1`.
- 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.