STRUCT USB_OS_DESC(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ‘‘ struct usb_os_desc(9) β€” the Kernel API Manual glow-up ✨

okay so bestie, welcome to the Kernel API Manual page for struct usb_os_desc. this lil cutie is the struct that describes OS descriptors associated with one interface β€” one interface, one struct, that's the whole vibe πŸŽ€


🌸 NAME 🌸

struct usb_os_desc β€” literally describes OS descriptors associated with one interface. that's it, that's the girl πŸ’…


✨ SYNOPSIS ✨

here's the whole fit, no cap, copy it exactly:

struct usb_os_desc {
    char *ext_compat_id;
    struct list_head        ext_prop;
    int ext_prop_len;
    int ext_prop_count;
    struct mutex            *opts_mutex;
    struct config_group     group;
    struct module           *owner;
 };

look at her. iconic. every field is doing its own thing and honestly? main character energy all around πŸ¦‹


πŸ’– Members πŸ’–

let's meet the cast, one by one, because they all ate:

  • ext_compat_id β€” 16 bytes of "Compatible ID" and "Subcompatible ID". yes, exactly 16 bytes, she's very specific about her measurements πŸŽ€
  • ext_prop β€” the Extended Properties list. a whole struct list_head, keeping her extended-property besties linked together 🫢
  • ext_prop_len β€” Total length of Extended Properties blobs. all the blobs, counted up πŸ’…
  • ext_prop_count β€” Number of Extended Properties. the headcount, no cap πŸ”’
  • opts_mutex β€” an Optional mutex protecting config data of a usb_function_instance. note the "optional" bestie β€” she's not always on duty πŸ™ˆ
  • group β€” a struct config_group that Represents OS descriptors associated with an interface in configfs. this is where the configfs girlies hang out ✨
  • owner β€” the Module associated with this OS descriptor. she's got a sponsor, periodt πŸ‘‘

πŸ”₯ SEE ALSO πŸ”₯

go read these next, i'm obsessed, iykyk:

  • Kernel file ./include/linux/usb/composite.h
  • struct usb_os_desc_ext_prop(9)
  • struct usb_os_desc_table(9)
  • struct usb_function(9)
  • struct usb_configuration(9)
  • struct usb_composite_driver(9)
  • module_usb_composite_driver(9)
  • struct usb_composite_dev(9)

πŸ’€ real talk: those (9) numbers mean they're all manpage sections, so man 9 struct usb_function if you're curious. stealing that tip from... the page itself, basically. okay byeee 🌈

and that's the whole page, bestie πŸ’œ this came from the Kernel API Manual, source ./include/linux/usb, dated October 2026, and the struct is struct usb_os_desc(9) β€” go forth and slay your descriptors πŸ§šβ€β™€οΈπŸŒΈ

πŸ“¦ where this page comes from