STRUCT CVMX_USB_PIPE(9)
π struct cvmx_usb_pipe(9) π
from the Kernel API Manual β okay bestie, let's get into this pipe. π«Ά
π NAME π
struct cvmx_usb_pipe β a pipe represents a virtual connection between Octeon and some USB device. It contains a list of pending request to the device. β¨
πΈ SYNOPSIS πΈ
struct cvmx_usb_pipe {
struct list_head node;
struct list_head transactions;
u64 interval;
u64 next_tx_frame;
enum cvmx_usb_pipe_flags flags;
enum cvmx_usb_speed device_speed;
enum cvmx_usb_transfer transfer_type;
enum cvmx_usb_direction transfer_dir;
int multi_count;
u16 max_packet;
u8 device_addr;
u8 endpoint_num;
u8 hub_device_addr;
u8 hub_port;
u8 pid_toggle;
u8 channel;
s8 split_sc_frame;
};
π Members π
okay so every member here is doing its own iconic thing:
nodeβ List node for pipe list π§΅transactionsβ List of pending transactions πintervalβ For periodic pipes, the interval between packets in frames β±οΈnext_tx_frameβ The next frame this pipe is allowed to transmit on π¦flagsβ State flags for this pipe π©device_speedβ Speed of device connected to this pipe β‘transfer_typeβ Type of transaction supported by this pipe πtransfer_dirβ IN or OUT. Ignored for Control βοΈmulti_countβ Max packet in a row for the device π¦max_packetβ The device's maximum packet size in bytes πdevice_addrβ USB device address at other end of pipe πendpoint_numβ USB endpoint number at other end of pipe π’hub_device_addrβ Hub address this device is connected to π°οΈhub_portβ Hub port this device is connected to πͺpid_toggleβ This toggles between 0/1 on every packet send to track the data pid needed πchannelβ Hardware DMA channel for this pipe π‘split_sc_frameβ The low order bits of the frame number the split complete should be sent on π§©
π₯ SEE ALSO π₯
Kernel file ./drivers/usb/host/octeon-hcd.c is the main character, and the whole squad is:
enum cvmx_usb_speed(9)enum cvmx_usb_transfer(9)enum cvmx_usb_direction(9)enum cvmx_usb_status(9)struct cvmx_usb_port_status(9)struct cvmx_usb_iso_packet(9)enum cvmx_usb_initialize_flags(9)enum cvmx_usb_pipe_flags(9)struct cvmx_usb_transaction(9)struct octeon_hcd(9)struct octeon_temp_buffer(9)octeon_alloc_temp_buffer(9)octeon_free_temp_buffer(9)octeon_map_urb_for_dma(9)octeon_unmap_urb_for_dma(9)
mwah π source/version vibes: ./drivers/usb/host, dated October 2026 β and that's the struct cvmx_usb_pipe(9) page, bestie. π«Ά
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms