STRUCT PD_MESSAGE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct pd_message(9) πŸ’–

okay so bestie, welcome to the Kernel API Manual β€” yes that's the manual name, we're fancy now β€” and today's main character is struct pd_message, aka a PD message exactly as it shows up on the wire ✨. Like, this is the glow-up form, the one the hardware actually sees, no cap 🫢.


🌸 SYNOPSIS 🌸

struct pd_message {
    __le16 header;
    union {
      __le32 payload[PD_MAX_PAYLOAD];
      struct pd_chunked_ext_message_data ext_msg;
    };
 };

look at her. she's so simple. she's so iconic. πŸ’…


πŸŽ€ Members πŸŽ€

  • header β€” the PD message header πŸ’«. yeah that's it, that's the whole vibe.
  • {unnamed_union} β€” it's anonymous πŸ«₯. no name, no problem, she doesn't need one to slay.
  • payload β€” the PD message payload πŸ“, laid out as __le32 payload[PD_MAX_PAYLOAD] inside that anonymous union.
  • ext_msg β€” the PD message chunked extended message data 🌈, hanging out in the same anonymous union as payload, sharing the space like good roommates.
lowkey the union thing is the whole point β€” payload and ext_msg are the same bytes, bestie. pick your interpretation, don't pick both πŸ‘‘

πŸ¦‹ SEE ALSO πŸ¦‹

  • Kernel file ./include/linux/usb/pd.h struct
  • pd_chunked_ext_message_data(9)
  • struct sink_caps_ext_msg(9)
  • BSDO(9)

go read those next, fr fr, they're all connected iykyk πŸ”₯


and that's the whole page, periodt πŸ’œ. this came to you from ./include/linux/usb, dated October 2026, footer supremacy πŸ‘‘ β€” signed off with the same struct pd_message(9) energy we started with πŸ§šβ€β™€οΈβœ¨

πŸ“¦ where this page comes from