drivers/net/wireless/intel/iwlwifi/fw/api/datapath.h
Source file repositories/reference/linux-study-clean/drivers/net/wireless/intel/iwlwifi/fw/api/datapath.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/wireless/intel/iwlwifi/fw/api/datapath.h- Extension
.h- Size
- 21166 bytes
- Lines
- 710
- 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_mu_group_mgmt_cmdstruct iwl_mu_group_mgmt_notifstruct iwl_time_sync_cfg_cmdstruct iwl_synced_time_cmdstruct iwl_synced_time_rspstruct iwl_time_msmt_ptp_ctxstruct iwl_time_msmt_notifystruct iwl_time_msmt_cfm_notifystruct iwl_channel_estimation_cfgstruct iwl_datapath_monitor_notifstruct iwl_thermal_dual_chain_requeststruct iwl_rlc_propertiesstruct iwl_sad_propertiesstruct iwl_rlc_config_cmdstruct iwl_rx_baid_cfg_cmd_allocstruct iwl_rx_baid_cfg_cmd_modifystruct iwl_rx_baid_cfg_cmd_remove_v1struct iwl_rx_baid_cfg_cmd_removestruct iwl_rx_baid_cfg_cmdstruct iwl_rx_baid_cfg_respstruct iwl_scd_queue_cfg_cmdstruct iwl_sec_key_cmdenum iwl_data_path_subcmd_idsenum iwl_channel_estimation_flagsenum iwl_time_sync_protocol_typeenum iwl_synced_time_operationenum iwl_datapath_monitor_notif_typeenum iwl_thermal_dual_chain_req_eventsenum iwl_rlc_chain_infoenum iwl_sad_modeenum iwl_rx_baid_actionenum iwl_scd_queue_cfg_operationenum iwl_sec_key_flags
Annotated Snippet
struct iwl_mu_group_mgmt_cmd {
__le32 reserved;
__le32 membership_status[2];
__le32 user_position[4];
} __packed; /* MU_GROUP_ID_MNG_TABLE_API_S_VER_1 */
/**
* struct iwl_mu_group_mgmt_notif - VHT MU-MIMO group id notification
*
* @membership_status: a bitmap of MU groups
* @user_position: the position of station in a group. If the station is in the
* group then bits (group * 2) is the position -1
*/
struct iwl_mu_group_mgmt_notif {
__le32 membership_status[2];
__le32 user_position[4];
} __packed; /* MU_GROUP_MNG_NTFY_API_S_VER_1 */
enum iwl_channel_estimation_flags {
IWL_CHANNEL_ESTIMATION_ENABLE = BIT(0),
IWL_CHANNEL_ESTIMATION_TIMER = BIT(1),
IWL_CHANNEL_ESTIMATION_COUNTER = BIT(2),
};
enum iwl_time_sync_protocol_type {
IWL_TIME_SYNC_PROTOCOL_TM = BIT(0),
IWL_TIME_SYNC_PROTOCOL_FTM = BIT(1),
}; /* WNM_TIMING_ENABLED_PROTOCOL_API_E_VER_1 */
/**
* struct iwl_time_sync_cfg_cmd - TM/FTM time sync measurement configuration
*
* @protocols: The type of frames to raise notifications for. A bitmap
* of @iwl_time_sync_protocol_type
* @peer_addr: peer address with which TM/FTM measurements are required
* @reserved: for alignment
*/
struct iwl_time_sync_cfg_cmd {
__le32 protocols;
u8 peer_addr[ETH_ALEN];
u8 reserved[2];
} __packed; /* WNM_80211V_TIMING_MEASUREMENT_CONFIG_CMD_API_S_VER_1 */
/**
* enum iwl_synced_time_operation - PTM request options
*
* @IWL_SYNCED_TIME_OPERATION_READ_ARTB: read only the ARTB time
* @IWL_SYNCED_TIME_OPERATION_READ_GP2: read only the GP2 time
* @IWL_SYNCED_TIME_OPERATION_READ_BOTH: latch the ARTB and GP2 clocks and
* provide timestamps from both clocks for the same time point
*/
enum iwl_synced_time_operation {
IWL_SYNCED_TIME_OPERATION_READ_ARTB = 1,
IWL_SYNCED_TIME_OPERATION_READ_GP2,
IWL_SYNCED_TIME_OPERATION_READ_BOTH,
};
/**
* struct iwl_synced_time_cmd - request synced GP2/ARTB timestamps
*
* @operation: one of &enum iwl_synced_time_operation
*/
struct iwl_synced_time_cmd {
__le32 operation;
} __packed; /* WNM_80211V_TIMING_CMD_API_S_VER_1 */
/**
* struct iwl_synced_time_rsp - response to iwl_synced_time_cmd
*
* @operation: one of &enum iwl_synced_time_operation
* @platform_timestamp_hi: high DWORD of the ARTB clock timestamp in nanoseconds
* @platform_timestamp_lo: low DWORD of the ARTB clock timestamp in nanoseconds
* @gp2_timestamp_hi: high DWORD of the GP2 clock timestamp in 10's of
* nanoseconds
* @gp2_timestamp_lo: low DWORD of the GP2 clock timestamp in 10's of
* nanoseconds
*/
struct iwl_synced_time_rsp {
__le32 operation;
__le32 platform_timestamp_hi;
__le32 platform_timestamp_lo;
__le32 gp2_timestamp_hi;
__le32 gp2_timestamp_lo;
} __packed; /* WNM_80211V_TIMING_RSP_API_S_VER_1 */
/* PTP_CTX_MAX_DATA_SIZE_IN_API_D_VER_1 */
#define PTP_CTX_MAX_DATA_SIZE 128
/**
* struct iwl_time_msmt_ptp_ctx - Vendor specific element
Annotation
- Detected declarations: `struct iwl_mu_group_mgmt_cmd`, `struct iwl_mu_group_mgmt_notif`, `struct iwl_time_sync_cfg_cmd`, `struct iwl_synced_time_cmd`, `struct iwl_synced_time_rsp`, `struct iwl_time_msmt_ptp_ctx`, `struct iwl_time_msmt_notify`, `struct iwl_time_msmt_cfm_notify`, `struct iwl_channel_estimation_cfg`, `struct iwl_datapath_monitor_notif`.
- 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.