STRUCT USB_DFU_FUNCTIONAL_DESCRIPTOR(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ NAME ✨

struct usb_dfu_functional_descriptor β€” the DFU Functional descriptor, bestie πŸ’– (this is from the Kernel API Manual, in case you were wondering 🫢)


🌸 SYNOPSIS 🌸

struct usb_dfu_functional_descriptor {
    __u8 bLength;
    __u8 bDescriptorType;
    __u8 bmAttributes;
    __le16 wDetachTimeOut;
    __le16 wTransferSize;
    __le16 bcdDFUVersion;
 };

okay so that's the whole shape of it β€” six fields, no cap, and every single one of them matters πŸ’…


πŸŽ€ Members πŸŽ€

  • bLength β€” how big the descriptor is, in bytes. it's giving "measure twice" energy πŸ“
  • bDescriptorType β€” it's USB_DT_DFU_FUNCTIONAL. that's the type tag, periodt ✨
  • bmAttributes β€” the DFU attributes. the whole vibe of the thing, basically πŸ¦‹
  • wDetachTimeOut β€” the maximum time you wait after DFU_DETACH, and it's in ms, stored as an le16 ⏳ (yes bestie, little-endian, don't forget πŸ™ˆ)
  • wTransferSize β€” the maximum number of bytes per control-write, also an le16. know your limits, queen πŸ‘‘
  • bcdDFUVersion β€” the DFU Spec version in BCD, again le16. version queen behaviour 🌈
ngl the le16 thing is not a suggestion β€” those three fields are little-endian in the struct, fr fr πŸ’€

πŸ¦‹ SEE ALSO πŸ¦‹

  • Kernel file ./include/uapi/linux/usb/functionfs.h
  • struct usb_ffs_dmabuf_transfer_req(9)
  • descriptors(9)

and that's the whole page, bestie πŸ₯° this lil' icon lives in ./include/uapi/linux/usb, dated October 2026, and it's all struct usb_d...l_descriptor(9) at the end of the day πŸ’œ stay slay, stay little-endian βœ¨πŸŽ€

πŸ“¦ where this page comes from