STRUCT IWL_PCIE_TXQS(9)
π struct iwl_pcie_txqs(9) π
okay so bestie, welcome to the little kernel-API corner of the manual pages β this one's all about struct iwl_pcie_txqs, aka the TX queues data. it's giving "the vibes of your packets' travel itinerary" β¨ and ngl it's kind of iconic.
πΈ NAME πΈ
struct iwl_pcie_txqs β TX queues data. that's it, that's the whole vibe. π
π¦ SYNOPSIS π¦
here's the whole structure, literally exactly like this, no cap:
struct iwl_pcie_txqs {
unsigned long queue_used[BITS_TO_LONGS(IWL_MAX_TVQM_QUEUES)];
unsigned long queue_stopped[BITS_TO_LONGS(IWL_MAX_TVQM_QUEUES)];
struct iwl_txq *txq[IWL_MAX_TVQM_QUEUES];
struct dma_pool *bc_pool;
size_t bc_tbl_size;
struct iwl_tso_hdr_page __percpu *tso_hdr_page;
struct {
u8 max_tbs;
u16 size;
u8 addr_size;
} tfd;
struct iwl_dma_ptr scd_bc_tbls;
};
π Members π
okay so let's go member by member, bestie β each one gets its moment:
queue_usedβ bit mask of used queues. like a little attendance sheet but make it bits πqueue_stoppedβ bit mask of stopped queues. same energy, but these ones are on pause βΈοΈtxqβ array of TXQ data structures representing the TXQs. yes, the TXQs are represented by TXQ data structures, we love a self-explanatory queen πbc_poolβ bytecount DMA allocations pool. it's the pool where the bytecount DMA allocations hang out πbc_tbl_sizeβ bytecount table size. literally the size. of the bytecount table. πtso_hdr_pageβ page allocated (per CPU) for A-MSDU headers when doing TSO (and similar usage). per-CPU, so everyone gets their own lil page, very main character energy β¨tfdβ TFD data. we'll get into it below πtfd.max_tbsβ max number of buffers per TFD. the ceiling, the limit, the cap π§’tfd.sizeβ TFD size. iconic, self-describing, no notes πtfd.addr_sizeβ TFD/TB address size. yes both TFD and TB, don't make me say it twice πscd_bc_tblsβ gen1 pointer to the byte count table of the scheduler. gen1 specifically, bestie, don't get it twisted π«Ά
π SEE ALSO π
go read these next, i'm obsessed:
- Kernel file
./drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/internal.h struct iwl_rx_mem_buffer(9)struct iwl_rx_transfer_desc(9)struct iwl_rx_completion_desc(9)struct iwl_rx_completion_desc_bz(9)struct iwl_rxq(9)struct iwl_rb_allocator(9)iwl_get_closed_rb_stts(9)enum iwl_fw_mon_dbgfs_state(9)enum iwl_shared_irq_flags(9)enum iwl_image_response_code(9)struct cont_rec(9)enum iwl_pcie_imr_status(9)struct iwl_txq(9)struct iwl_trans_pcie(9)iwl_txq_inc_wrap(9)iwl_txq_dec_wrap(9)
that's the whole page, bestie β go forth and slay your TX queues ππ
source/version + date, coming at you from ./drivers/net/wireless/intel/i..., October 2026 β and the page itself, obviously, is struct iwl_pcie_txqs(9). mwah π
π¦ 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