STRUCT CDNSP_TD(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct cdnsp_td(9) β€” the Kernel API Manual ✨

Bestie, welcome to struct cdnsp_td(9). This is the Transfer Descriptor object β€” literally the little main-character packet of paperwork that says "hey, here's a transfer, please make it happen." πŸŽ€


🌸 SYNOPSIS 🌸

struct cdnsp_td {
    struct list_head td_list;
    struct cdnsp_request *preq;
    struct cdnsp_segment *start_seg;
    union cdnsp_trb *first_trb;
    union cdnsp_trb *last_trb;
    struct cdnsp_segment *bounce_seg;
    bool request_length_set;
    bool drbl;
 };

That's the whole glow-up. Now let's meet the members like it's a group chat intro. 🫢


πŸ’– MEMBERS πŸ’–

  • td_list β€” the lil' buddy that binds the TD together with ep_ring->td_list. It's giving "I'm on the list, I belong here." πŸ’…
  • preq β€” the Request that's associated with this TD. Your TD's plus-one at the party. πŸŽ€
  • start_seg β€” the Segment that contains the first_trb in the TD. Where the whole thing kicks off.
  • first_trb β€” the First TRB for this TD. Iconic. The opener.
  • last_trb β€” the Last TRB related with this TD. The closer. The finale. πŸ¦‹
  • bounce_seg β€” the Bounce segment for this TD. Yes, it does parkour. ✨
  • request_length_set β€” the actual_length of the request has already been set. Already handled, no cap. βœ…
  • drbl β€” the TD has been added to the HW scheduler β€” only for stream capable endpoints. That's the whole vibe check: no stream-capable endpoint, no drbl energy. 🫢
Heads up bestie β€” in the original text these last two got squished together on one line. They're two separate members, request_length_set and drbl, so I unsquished them for you. πŸ’œ

πŸ‘‘ SEE ALSO πŸ‘‘

Kernel file ./drivers/usb/cdns3/cdnsp-gadget.h and the whole friend group, fr fr:

  • struct cdnsp_cap_regs(9)
  • struct cdnsp_op_regs(9)
  • struct cdnsp_port_regs(9)
  • struct cdnsp_intr_reg(9)
  • struct cdnsp_run_regs(9)
  • struct cdnsp_rev_cap(9)
  • struct cdnsp_doorbell_array(9)
  • struct cdnsp_container_ctx(9)
  • struct cdnsp_slot_ctx(9)
  • struct cdnsp_ep_ctx(9)
  • struct cdnsp_stream_info(9)
  • struct cdnsp_ep(9)
  • struct cdnsp_device_context_array(9)
  • struct cdnsp_transfer_event(9)
  • struct cdnsp_link_trb(9)
  • struct cdnsp_event_cmd(9)
  • struct cdnsp_segment(9)
  • struct cdnsp_dequeue_state(9)
  • struct cdnsp_ring(9)
  • struct cdnsp_erst_entry(9)
  • struct cdnsp_erst(9)
  • struct cdnsp_request(9)
  • struct cdnsp_port(9)
  • struct cdnsp_device(9)
  • next_request(9)

okay that's the whole page bestie, ty for reading, mwah πŸ’‹

This one came from ./drivers/usb/cdns3, dated October 2026, and it's filed under struct cdnsp_td(9) β€” periodt. 🌟

πŸ“¦ where this page comes from