STRUCT UVC_URB(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ 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 β€” the sgt_table with 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