STRUCT KNAV_DMA_DESC(9)
πΈ NAME πΈ
okay bestie, meet struct knav_dma_desc(9) β the Host packet descriptor layout straight outta the Kernel API Manual. it's giving βhereβs the host packet descriptor layout,β and honestly? iconic π
β¨ SYNOPSIS β¨
the whole struct, no cap:
struct knav_dma_desc {
__le32 desc_info;
__le32 tag_info;
__le32 packet_info;
__le32 buff_len;
__le32 buff;
__le32 next_desc;
__le32 orig_len;
__le32 orig_buff;
__le32 epib[KNAV_DMA_NUM_EPIB_WORDS];
__le32 psdata[KNAV_DMA_NUM_PS_WORDS];
u32 sw_data[KNAV_DMA_NUM_SW_DATA_WORDS];
};
π«Ά Members π«Ά
desc_infoβ descriptor info like id, type, length. little metadata moment πtag_infoβ flow tag info written in during RX. yes bestie, RX is the vibe πpacket_infoβ Queue Manager, policy, flags etc. the whole trio, periodt πbuff_lenβ buffer length in bytes. literally the size, bestie πbuffβ buffer pointer. points at the buffer π«Άnext_descβ for chaining the descriptors. chaining behavior, iykyk πorig_lenβ length sincebuff_lencan be overwritten. important lore:buff_lenis not forever πorig_buffβ buff pointer sincebuffcan be overwritten. same energy:buffcan get overwritten too πepibβ Extended packet info block. extended packet info block excellence β¨psdataβ Protocol specific. protocol-specific, as it should be π¦sw_dataβ Software private data not touched by h/w. itβs softwareβs private little journal and hardware does not touch it π
π SEE ALSO π
go peek at the Kernel file ./include/linux/soc/ti/knav_dma.h, plus struct knav_dma_tx_cfg(9), struct knav_dma_rx_cfg(9), and struct knav_dma_cfg(9). bestie homework, slay πβ¨
mwah π this page is brought to you by source ./include/linux/soc/ti, dated October 2026, and itβs all about struct knav_dma_desc(9) β bye bestie π«Ά
π¦ 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