drivers/net/wireless/intel/iwlwifi/fw/file.h
Source file repositories/reference/linux-study-clean/drivers/net/wireless/intel/iwlwifi/fw/file.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/wireless/intel/iwlwifi/fw/file.h- Extension
.h- Size
- 44644 bytes
- Lines
- 1109
- 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/netdevice.hlinux/nl80211.h
Detected Declarations
struct iwl_ucode_headerstruct iwl_ucode_tlvstruct iwl_tlv_ucode_headerstruct iwl_ucode_apistruct iwl_ucode_capastruct iwl_tlv_calib_ctrlstruct iwl_fw_dbg_reg_opstruct iwl_fw_dbg_mem_seg_tlvstruct iwl_fw_dbg_dest_tlv_v1struct iwl_fw_dbg_dest_tlvstruct iwl_fw_dbg_conf_hcmdstruct iwl_fw_dbg_trigger_tlvstruct iwl_fw_dbg_trigger_missed_bconstruct iwl_fw_dbg_trigger_cmdstruct cmdstruct iwl_fw_dbg_trigger_statsstruct iwl_fw_dbg_trigger_low_rssistruct iwl_fw_dbg_trigger_mlmestruct iwl_fw_dbg_trigger_txq_timerstruct iwl_fw_dbg_trigger_time_eventstruct iwl_fw_dbg_trigger_bastruct iwl_fw_dbg_trigger_tdlsstruct iwl_fw_dbg_trigger_tx_statusstruct tx_statusstruct iwl_fw_dbg_conf_tlvstruct iwl_fw_cmd_versionstruct iwl_fw_cmd_bios_tablestruct iwl_fw_tcm_error_addrstruct iwl_fw_dump_excludestruct iwl_fw_fseq_bin_version_v1struct iwl_fw_fseq_bin_versionstruct iwl_fseq_fileenum iwl_ucode_tlv_typeenum iwl_ucode_tlv_flagenum iwl_ucode_tlv_apienum iwl_ucode_tlv_capaenum iwl_fw_phy_cfgenum iwl_fw_dbg_reg_operatorenum iwl_fw_dbg_monitor_modeenum iwl_fw_dbg_trigger_modeenum iwl_fw_dbg_trigger_flagsenum iwl_fw_dbg_trigger_vif_typefunction _iwl_tlv_array_len
Annotated Snippet
struct iwl_ucode_header {
__le32 ver; /* major/minor/API/serial */
union {
struct {
__le32 inst_size; /* bytes of runtime code */
__le32 data_size; /* bytes of runtime data */
__le32 init_size; /* bytes of init code */
__le32 init_data_size; /* bytes of init data */
__le32 boot_size; /* bytes of bootstrap code */
u8 data[]; /* in same order as sizes */
} v1;
struct {
__le32 build; /* build number */
__le32 inst_size; /* bytes of runtime code */
__le32 data_size; /* bytes of runtime data */
__le32 init_size; /* bytes of init code */
__le32 init_data_size; /* bytes of init data */
__le32 boot_size; /* bytes of bootstrap code */
u8 data[]; /* in same order as sizes */
} v2;
} u;
};
#define IWL_UCODE_TLV_DEBUG_BASE 0x1000005
#define IWL_UCODE_TLV_CONST_BASE 0x100
/*
* new TLV uCode file layout
*
* The new TLV file format contains TLVs, that each specify
* some piece of data.
*/
enum iwl_ucode_tlv_type {
IWL_UCODE_TLV_INVALID = 0, /* unused */
IWL_UCODE_TLV_INST = 1,
IWL_UCODE_TLV_DATA = 2,
IWL_UCODE_TLV_INIT = 3,
IWL_UCODE_TLV_INIT_DATA = 4,
IWL_UCODE_TLV_BOOT = 5,
IWL_UCODE_TLV_PROBE_MAX_LEN = 6, /* a u32 value */
IWL_UCODE_TLV_PAN = 7, /* deprecated -- only used in DVM */
IWL_UCODE_TLV_MEM_DESC = 7, /* replaces PAN in non-DVM */
IWL_UCODE_TLV_RUNT_EVTLOG_PTR = 8,
IWL_UCODE_TLV_RUNT_EVTLOG_SIZE = 9,
IWL_UCODE_TLV_RUNT_ERRLOG_PTR = 10,
IWL_UCODE_TLV_INIT_EVTLOG_PTR = 11,
IWL_UCODE_TLV_INIT_EVTLOG_SIZE = 12,
IWL_UCODE_TLV_INIT_ERRLOG_PTR = 13,
IWL_UCODE_TLV_ENHANCE_SENS_TBL = 14,
IWL_UCODE_TLV_PHY_CALIBRATION_SIZE = 15,
IWL_UCODE_TLV_WOWLAN_INST = 16,
IWL_UCODE_TLV_WOWLAN_DATA = 17,
IWL_UCODE_TLV_FLAGS = 18,
IWL_UCODE_TLV_SEC_RT = 19,
IWL_UCODE_TLV_SEC_INIT = 20,
IWL_UCODE_TLV_SEC_WOWLAN = 21,
IWL_UCODE_TLV_DEF_CALIB = 22,
IWL_UCODE_TLV_PHY_SKU = 23,
IWL_UCODE_TLV_SECURE_SEC_RT = 24,
IWL_UCODE_TLV_SECURE_SEC_INIT = 25,
IWL_UCODE_TLV_SECURE_SEC_WOWLAN = 26,
IWL_UCODE_TLV_NUM_OF_CPU = 27,
IWL_UCODE_TLV_CSCHEME = 28,
IWL_UCODE_TLV_API_CHANGES_SET = 29,
IWL_UCODE_TLV_ENABLED_CAPABILITIES = 30,
IWL_UCODE_TLV_N_SCAN_CHANNELS = 31,
IWL_UCODE_TLV_PAGING = 32,
IWL_UCODE_TLV_SEC_RT_USNIFFER = 34,
/* 35 is unused */
IWL_UCODE_TLV_FW_VERSION = 36,
IWL_UCODE_TLV_FW_DBG_DEST = 38,
IWL_UCODE_TLV_FW_DBG_CONF = 39,
IWL_UCODE_TLV_FW_DBG_TRIGGER = 40,
IWL_UCODE_TLV_CMD_VERSIONS = 48,
IWL_UCODE_TLV_FW_GSCAN_CAPA = 50,
IWL_UCODE_TLV_FW_MEM_SEG = 51,
IWL_UCODE_TLV_IML = 52,
IWL_UCODE_TLV_UMAC_DEBUG_ADDRS = 54,
IWL_UCODE_TLV_LMAC_DEBUG_ADDRS = 55,
IWL_UCODE_TLV_FW_RECOVERY_INFO = 57,
IWL_UCODE_TLV_HW_TYPE = 58,
IWL_UCODE_TLV_FW_FSEQ_VERSION = 60,
IWL_UCODE_TLV_PHY_INTEGRATION_VERSION = 61,
IWL_UCODE_TLV_PNVM_VERSION = 62,
IWL_UCODE_TLV_PNVM_SKU = 64,
IWL_UCODE_TLV_SEC_TABLE_ADDR = 66,
IWL_UCODE_TLV_D3_KEK_KCK_ADDR = 67,
Annotation
- Immediate include surface: `linux/netdevice.h`, `linux/nl80211.h`.
- Detected declarations: `struct iwl_ucode_header`, `struct iwl_ucode_tlv`, `struct iwl_tlv_ucode_header`, `struct iwl_ucode_api`, `struct iwl_ucode_capa`, `struct iwl_tlv_calib_ctrl`, `struct iwl_fw_dbg_reg_op`, `struct iwl_fw_dbg_mem_seg_tlv`, `struct iwl_fw_dbg_dest_tlv_v1`, `struct iwl_fw_dbg_dest_tlv`.
- 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.