STRUCT OCTEON_HCD(9)
π NAME π
struct octeon_hcd - the state of the USB block. Thatβs the whole assignment, bestie: this is the state of the USB block, and weβre about to get into every field like itβs a group-chat screenshot. This page comes from the Kernel API Manual, and the main character is struct octeon_hcd(9) π
β¨
β¨ SYNOPSIS β¨
struct octeon_hcd {
spinlock_t lock;
int init_flags;
int index;
int idle_hardware_channels;
union cvmx_usbcx_hprt usbcx_hprt;
struct cvmx_usb_pipe *pipe_for_channel[MAX_CHANNELS];
int indent;
struct cvmx_usb_port_status port_status;
struct list_head idle_pipes;
struct list_head active_pipes[4];
u64 frame_number;
struct cvmx_usb_transaction *active_split;
struct cvmx_usb_tx_fifo periodic;
struct cvmx_usb_tx_fifo nonperiodic;
struct hrtimer sof_timer;
};
π Members π
Okay so the page lists these member blurbs, and we are not skipping a single one β every detail stays, no cap π
πΈ Description πΈ
lockβ Serialization lock. Lock it down, bestie.init_flagsβ Flags passed to initialize.indexβ Which USB block this is for.idle_hardware_channelsβ Bit set for every idle hardware channel.usbcx_hprtβ Stored port status so we donβt need to read a CSR to determine splits.pipe_for_channelβ Map channels to pipes.pipeβ Storage for pipes. Yes, the page lists this one too β keeping it exactly as given.indentβ Used by debug output to indent functions.port_statusβ Last port status used for change notification.idle_pipesβ List of open pipes that have no transactions.active_pipesβ Active pipes indexed by transfer type.frame_numberβ Increments every SOF interrupt for time keeping.active_splitβ Points to the current active split, or NULL.
Quick note, bestie: the struct block also has periodic, nonperiodic, and sof_timer, but the page doesnβt give member blurbs for those, so Iβm not inventing anything β we keep it factual, periodt π
π₯ SEE ALSO π₯
- Kernel file
./drivers/usb/host/octeon-hcd.cβ the actual source, iykyk π«Ά 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 cvmx_usb_pipe(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)
Thatβs the whole page, bestie π«Ά Source/version is <source>./drivers/usb/host</source>, dated <date>October 2026</date>, and this was struct octeon_hcd(9) from the Kernel API Manual β every detail ate and left no crumbs π
β¨π
π¦ 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