STRUCT UVC_URB(9)
β¨ struct uvc_urb(9) β¨
okay so bestie, welcome to the Kernel API Manual π
we're talking about struct uvc_urb today and honestly? it's giving backstage-pass energy for your USB video chaos. let's get into it π
πΈ NAME πΈ
struct uvc_urb β the URB context management structure. yep, that's the whole vibe: it manages URB context. iconic behavior only π«Ά
π¦ SYNOPSIS π¦
struct uvc_urb {
struct urb *urb;
struct uvc_streaming *stream;
char *buffer;
dma_addr_t dma;
struct sg_table *sgt;
unsigned int async_operations;
struct uvc_copy_op copy_operations[UVC_MAX_PACKETS];
struct work_struct work;
};
like, that's the whole struct, no cap. every field accounted for, nothing skipped, we love a complete inventory β¨
π Members π
urbβ the URB that this context structure is describing. main character of the struct, tbh πstreamβ the UVC streaming context. the whole streaming situation lives here πbufferβ the memory storage for the URB. the URB's designated little home πdmaβ the allocated DMA handle π₯sgtβ thesgt_tablewith the urb locations in memory. lowkey the map of where stuff actually lives πΊοΈasync_operationsβ a counter that indicates the number of copy operations π’copy_operationsβ work descriptors for asynchronous copy operations. yes, it's an array βstruct uvc_copy_op copy_operations[UVC_MAX_PACKETS]β so it's plural for a reason fr fr πworkβ the work queue entry for asynchronous decode. the little errand-runner that gets the decode done π
β SEE ALSO β
- Kernel file
./drivers/media/usb/uvc/uvcvideo.hβ go read it, iykyk π struct uvc_copy_op(9)β the sequel, so to speak π
and that's the page!! π this one comes from ./drivers/media/usb/uvc, dated October 2026 β Kernel API Manual realness, periodt π go forth and manage your URB contexts, 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