STRUCT IWL_HOST_CMD(9)
π struct iwl_host_cmd(9) π
okay bestie, welcome to the Kernel API Manual entry for struct iwl_host_cmd β it's giving "kernel internals but make it chic" and honestly? we're obsessed. this little struct is the host command to the uCode, and we're gonna walk through it together, no cap πΈ
β¨ NAME β¨
struct iwl_host_cmd β host command to the uCode π«Ά
π SYNOPSIS π
struct iwl_host_cmd {
const void *data[IWL_MAX_CMD_TBS_PER_TFD];
struct iwl_rx_packet *resp_pkt;
unsigned long _rx_page_addr;
u32 _rx_page_order;
u32 flags;
u32 id;
u16 len[IWL_MAX_CMD_TBS_PER_TFD];
u8 dataflags[IWL_MAX_CMD_TBS_PER_TFD];
};
like, look at her. so neat. so structured. main character energy fr π
π Members π
dataβ an array of chunks that composes the data of the host command π like, the actual payload pieces, one chunk at a time.resp_pktβ the response packet, but ONLY ifCMD_WANT_SKBwas set. iykyk π if you didn't set that flag, don't come looking here._rx_page_addrβ (internally used to free response packet) π that's the whole vibe. internal business. just know she's there for the freeing._rx_page_orderβ (internally used to free response packet) π yes bestie, same energy, also internal, also about freeing the response packet.flagsβ can beCMD_*β so like, whicheverCMD_prefixed flag you need, this is the spot.idβ the command id of the host command. and for wide commands, this encodes the version and group as well π₯ so it's doing a little extra work, love that for her.lenβ array of the lengths of the chunks indataπ one length per chunk, matching up withdata, keep them consistent bestie, that's the whole point.dataflagsβIWL_HCMD_DFL_*πΈ yup, theIWL_HCMD_DFL_prefixed data flags go right here.
π¦ SEE ALSO π¦
- Kernel file
./drivers/net/wireless/intel/iwlwifi/iwl-trans.hTransport layer - what is it ?(9) - Life cycle of the transport layer(9)
enum CMD_MODE(9)struct iwl_device_cmd(9)struct iwl_device_tx_cmd(9)enum iwl_hcmd_dataflag(9)enum iwl_trans_status(9)struct iwl_dump_sanitize_ops(9)struct iwl_trans_config(9)struct iwl_trans_rxq_dma_data(9)struct iwl_pnvm_image(9)enum iwl_trans_state(9)- Platform power management(9)
enum iwl_ini_cfg_state(9)struct iwl_dram_data(9)struct iwl_dram_regions(9)struct iwl_fw_mon(9)struct iwl_self_init_dram(9)struct iwl_imr_data(9)struct iwl_pc_data(9)struct iwl_trans_debug(9)struct iwl_trans_info(9)struct iwl_trans(9)iwl_trans_resched_with_nic_access(9)
like okay that's a LOT of cross-references but that's the transport layer rabbit hole for you, click through at your own risk π₯
okay that's the whole page bestie, every last member accounted for, nothing skipped, periodt π
this gem came from ./drivers/net/wireless/intel/i... and it's dated October 2026 β shoutout to the kernel docs, you ate πβ¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms