STRUCT CDNS3_REQUEST(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct cdns3_request(9) πŸ’…

okay so bestie, welcome to the glow-up era of struct cdns3_request β€” the extended device-side representation of a usb_request object. yes it's a kernel struct, yes it's iconic, and yes we're gonna get through it together 🫢


✨ SYNOPSIS ✨

struct cdns3_request {
    struct usb_request              request;
    struct cdns3_endpoint           *priv_ep;
    struct cdns3_trb                *trb;
    int start_trb;
    int end_trb;
    struct cdns3_aligned_buf        *aligned_buf;
  #define REQUEST_PENDING                 BIT(0);
  #define REQUEST_INTERNAL                BIT(1);
  #define REQUEST_INTERNAL_CH             BIT(2);
  #define REQUEST_ZLP                     BIT(3);
  #define REQUEST_UNALIGNED               BIT(4);
    u32 flags;
    struct list_head                list;
    int finished_trb;
    int num_of_trb;
 };

lowkey a whole little family in there. let's meet every member, no skips, no cap πŸ’–


🌸 MEMBERS 🌸

  • request β€” the generic usb_request object describing a single I/O request. the main character, fr.
  • priv_ep β€” the extended representation of a usb_ep object. it's giving "and this is my plus-one" πŸ’…
  • trb β€” the first TRB associated with this request. first in the ring, first to slay ✨
  • start_trb β€” number of the first TRB in the transfer ring.
  • end_trb β€” number of the last TRB in the transfer ring. closing the loop, periodt πŸŽ€
  • aligned_buf β€” object holding information about the aligned buffer associated with this endpoint. organization queen πŸ¦‹
  • flags β€” flag specifying special usage of request.
  • list β€” used by an internally allocated request to add to wa2_descmiss_req_list. iykyk πŸ”₯
  • finished_trb β€” number of TRBs already finished per request. progress check, we love to see it ⭐
  • num_of_trb β€” how many TRBs are in this request. the headcount, basically 🌈

πŸ¦‹ SEE ALSO πŸ¦‹

  • Kernel file ./drivers/usb/cdns3/cdns3-gadget.h, plus these absolute icons:
    • struct cdns3_usb_regs(9)
    • struct cdns3_trb(9)
    • struct cdns3_endpoint(9)
    • struct cdns3_aligned_buf(9)
    • struct cdns3_device(9)

go read them, bestie, they're all connected πŸ’œ


okay that's the whole page, mwah πŸ˜­πŸ’– this one lives over in ./drivers/usb/cdns3, dated October 2026 β€” from the Kernel API Manual era, and honestly? she ate. πŸŽ€βœ¨

πŸ“¦ where this page comes from