STRUCT CDNS2_TRB(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’« struct cdns2_trb(9) β€” the Kernel API Manual moment πŸ’«

okay bestie, so we're in the kernel API manual, section 9, and today's main character is struct cdns2_trb β€” the Transfer Descriptor block</> πŸŽ€. That's the NAME, and honestly? Iconic.


✨ SYNOPSIS ✨

struct cdns2_trb {
    __le32 buffer;
    __le32 length;
    __le32 control;
 };

like… that's it. three little fields. so clean. so slay. πŸ’…


🫢 Members 🫢

  • buffer β€” a pointer to the buffer data πŸ¦‹ (yes, that's the whole vibe)
  • length β€” the length of the data, no cap πŸ“
  • control β€” the control flags 🌸

🌈 Description 🌈

okay so this structure describes the transfer block handled by the DMA module. that's literally it, that's the whole thing. it's giving "small struct, big job" energy fr fr πŸ‘‘


πŸ’œ SEE ALSO πŸ’œ

bestie this list is LONG, hydrate before you read it πŸ“

  • Kernel file ./drivers/usb/gadget/udc/cdns2/cdns2-gadget.h
  • struct cdns2_ep0_regs(9)
  • struct cdns2_epx_base(9)
  • struct cdns2_epx_regs(9)
  • struct cdns2_interrupt_regs(9)
  • struct cdns2_usb_regs(9)
  • struct cdns2_adma_regs(9)
  • struct cdns2_ring(9)
  • struct cdns2_endpoint(9)
  • struct cdns2_request(9)
  • struct cdns2_device(9)

ngl this whole thing lives in ./drivers/usb/gadget/udc/cdns2 so go read the neighbors too, iykyk πŸ’€

⭐ okay that's the page!! sourced from ./drivers/usb/gadget/udc/cdns2, dated October 2026, and yeah β€” it's struct cdns2_trb(9) all the way down, periodt. bye bestie, go write some DMA πŸ’–πŸ§šβ€β™€οΈπŸŒ·

πŸ“¦ where this page comes from