STRUCT SDMA_DESC(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ struct sdma_desc(9) ✨

okay so bestie, welcome to the Kernel API Manual πŸ’– this is the page for struct sdma_desc β€” literally the descriptor structor for one transfer, no cap.


🌸 NAME 🌸

struct sdma_desc β€” descriptor structor for one transfer πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

struct sdma_desc {
    struct virt_dma_desc    vd;
    unsigned int            num_bd;
    dma_addr_t bd_phys;
    unsigned int            buf_tail;
    unsigned int            buf_ptail;
    unsigned int            period_len;
    unsigned int            chn_real_count;
    unsigned int            chn_count;
    struct sdma_channel     *sdmac;
    struct sdma_buffer_descriptor *bd;
 };

like, that's the whole vibe right there πŸ‘‘ copy it exactly, don't be out here renaming fields fr fr.


🧚 MEMBERS 🧚

okay so here's the member-by-member breakdown, and every single one of these matters πŸ”₯

  • vd β€” descriptor for virt dma ✨
  • num_bd β€” number of descriptors currently handling πŸ’…
  • bd_phys β€” physical address of bd 🫢
  • buf_tail β€” ID of the buffer that was processed 🌸
  • buf_ptail β€” ID of the previous buffer that was processed πŸ¦‹
  • period_len β€” period length, used in cyclic. πŸ”
  • chn_real_count β€” the real count updated from bd->mode.count 😭 (yes, exactly like that)
  • chn_count β€” the transfer count set ⭐
  • sdmac β€” sdma_channel pointer πŸ‘‘
  • bd β€” pointer of allocate bd πŸ™ˆ
not me noticing buf_tail and buf_ptail are lowkey the same but one's the previous one β€” track them separately bestie, iykyk πŸ’€

🌈 SEE ALSO 🌈

go read these next, they're iconic, they're all in the Kernel file ./drivers/dma/imx-sdma.c πŸ“:

  • struct sdma_channel_control(9)
  • struct sdma_state_registers(9)
  • struct sdma_context_data(9)
  • struct sdma_channel(9)
  • struct sdma_firmware_header(9)

aaaand that's the page πŸ’œ mwah, slay, periodt β€” this one came from ./drivers/dma, dated October 2026, and it was absolutely main character energy from start to finish πŸŽ€βœ¨πŸ«Ά

πŸ“¦ where this page comes from