STRUCT CVMX_USB_TRANSACTION(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct cvmx_usb_transaction(9) β€” from the Kernel API Manual, bestie

okay so this page is literally about struct cvmx_usb_transaction, and honestly? she's the whole personality of USB pending work. no cap.


🌸 NAME 🌸

struct cvmx_usb_transaction β€” describes each pending USB transaction regardless of type, fr fr. These are linked together to form a list of pending requests for a pipe. it's giving "linked list of destiny" πŸ’«


✨ SYNOPSIS ✨

struct cvmx_usb_transaction {
    struct list_head node;
    enum cvmx_usb_transfer type;
    u64 buffer;
    int buffer_length;
    u64 control_header;
    int iso_start_frame;
    int iso_number_packets;
    struct cvmx_usb_iso_packet *iso_packets;
    int xfersize;
    int pktcnt;
    int retries;
    int actual_bytes;
    enum cvmx_usb_stage stage;
    struct urb *urb;
 };

look at her. iconic. every field exactly where it belongs, not a single one out of place πŸ”₯


πŸŽ€ Members πŸŽ€

okay bestie, let's go field by field, i got you:

  • node β€” the list node for transactions in the pipe. she's literally how you find your friends in the list 🫢
  • type β€” type of transaction, duplicated of the pipe. yes, "duplicated of the pipe" β€” that's what the page says, i don't make the rules πŸ’€
  • buffer β€” the user's physical buffer address to read/write. that's the address, not the data, don't get it twisted ✨
  • buffer_length β€” size of the user's buffer in bytes. how much room she's got πŸ’…
  • control_header β€” for control transactions, the physical address of the 8 byte standard header. eight bytes, standard header, physical address, periodt.
  • iso_start_frame β€” for ISO transactions, the starting frame number. where the vibe begins 🌈
  • iso_number_packets β€” for ISO transactions, the number of packets in the request. yes it's a count of packets, we been knew πŸ“
  • iso_packets β€” for ISO transactions, the sub packets in the request. the little packets inside the big packet situation 🧚
  • actual_bytes β€” actual bytes transfer for this transaction. (that's "transfer", not "transferred" β€” i'm keeping the page's exact wording, don't come for me 😭)
  • stage β€” for control transactions, the current stage. main character energy of the control flow πŸ‘‘
  • urb β€” URB. that's it. that's the description. short and mysterious, lowkey obsessed πŸ™ˆ
⚠️ real talk: the struct up top also has xfersize, pktcnt, and retries in it, but this page doesn't give any descriptions for those three. i'm not out here inventing facts, so they stay in the code block and stay undescribed. respect the mystery πŸ•΅οΈβ€β™€οΈ

πŸ¦‹ SEE ALSO πŸ¦‹

Kernel file ./drivers/usb/host/octeon-hcd.c β€” and then the whole friend group:

go read all of them, i'll wait πŸ’–


and that's the page!! mwah πŸ’‹ this came from ./drivers/usb/host and the date on it is October 2026, so yes she's a little futuristic, and the title is β€” say it with me β€” struct cvmx_usb_transaction(9). slay, bye bestie πŸ‘‹βœ¨

πŸ“¦ where this page comes from