STRUCT EM28XX_USB_CTL(9)
π struct em28xx_usb_ctl(9) π
okay bestie, welcome to the Kernel API Manual β¨ this one's a struct page, and honestly? she's giving backstage pass to the URB pipeline. let's get into it π
β¨ NAME β¨
struct em28xx_usb_ctl β literally the home of all your URB-related buffer data π¦ no cap, that's the whole vibe.
β¨ SYNOPSIS β¨
struct em28xx_usb_ctl {
struct em28xx_usb_bufs analog_bufs;
struct em28xx_usb_bufs digital_bufs;
struct em28xx_buffer *vid_buf;
struct em28xx_buffer *vbi_buf;
int (*urb_data_copy)(struct em28xx *dev, struct urb *urb);
};
look at her. five members. main character energy, fr fr π
π«Ά Members π«Ά
analog_bufsβ the isoc/bulk transfer buffers for analog mode π when you're in analog era, this is where the buffering lives.digital_bufsβ the isoc/bulk transfer buffers for digital mode π same deal, but digital. she contains multitudes.vid_bufβ stores already requested video buffers π key word: already requested. not new ones. the ones that asked first.vbi_bufβ stores already requested VBI buffers π¦ yes, VBI gets her own field. vertical blanking interval girlies stay winning.urb_data_copyβ the function pointer that copies data from the URB π₯ signature isint (*urb_data_copy)(struct em28xx *dev, struct urb *urb), iykyk.
πΈ SEE ALSO πΈ
- the kernel file
./drivers/media/usb/em28xx/em28xx.hβ that's where she actually lives π struct em28xx_usb_bufs(9)struct em28xx_fmt(9)struct em28xx_buffer(9)enum em28xx_amux(9)
go read those next, bestie, they're all in the same friend group π§
lowkey reminder: this page is struct documentation, so every field above is a real part of the layout β no invented fields, no skipping. slay responsibly π
and that's the page!! mwah π this cutie came out of ./drivers/media/usb/em28xx, dated October 2026, and yes she's still titled struct em28xx_usb_ctl(9) β periodt. πβ
π¦ 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