STRUCT SOF_ABI_HDR(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ¦‹ struct sof_abi_hdr(9) β€” the Kernel API Manual bestie edition πŸ’…

okay so bestie, gather round, because today we're talking about struct sof_abi_hdr β€” literally the header for all non IPC ABI data ✨ (yes, all of it, main character energy fr fr).

This little cutie lives in the Kernel API Manual, and she's giving "small but iconic" 🌸


✨ NAME ✨

struct sof_abi_hdr β€” Header for all non IPC ABI data.

Like, that's her whole job. She's the header. For everything that isn't IPC ABI data. Periodt πŸ’…


πŸŽ€ SYNOPSIS πŸŽ€

struct sof_abi_hdr {
    __u32 magic;
    __u32 type;
    __u32 size;
    __u32 abi;
    __u32 reserved[4];
    __u32 data[];
 };

Look at her. Six fields. Not one of them extra. She ate and left no crumbs πŸ‘‘


🫢 Members 🫢

okay so here's the breakdown, one field at a time, no cap:

  • magic β€” The magic number used for validation, and ngl she's got two fits depending on the era:
    • for IPC3 data: 0x00464F53 ('S', 'O', 'F', ' ')
    • for IPC4 data: 0x34464F53 ('S', 'O', 'F', '4')

Same vibe, different last letter. iykyk πŸͺ„

  • type β€” The module specific parameter, and it's giving dual-purpose queen:
    • for IPC3: a Component specific type
    • for IPC4: the parameter ID (param_id) of the data
  • size β€” The size in bytes of the data, excluding this struct. So like, the payload only, don't be counting the wrapper bestie 😭
  • abi β€” The SOF ABI version. Important caveat incoming: the version is valid in scope of the magic β€” IPC3 and IPC4 ABI version numbers have no relationship. Zero. None. They don't know each other πŸ«₯
  • reserved β€” Reserved for future use. She's just holding space for future plans, we love a forward-thinking icon 🌈
  • data β€” Component data β€” opaque to core. Core literally cannot perceive her, she's mysterious like that 🧚

πŸ’– Description πŸ’–

She identifies the data type, the size, and the ABI. That's the whole gig 🎯

Used by any bespoke component data structures or binary blobs β€” so if you've got a custom data structure or a blob situation, she's the one holding it together πŸ“


πŸ”₯ SEE ALSO πŸ”₯

  • Kernel file ./include/uapi/sound/sof/header.h struct sof_manifest_tlv(9), struct sof_manifest(9)

Go read those too, they're friends of the family πŸ’œ


⭐ lowkey reminder: reserved means reserved, bestie β€” don't go putting your own stuff in there, that's not the vibe πŸ™ˆ

and that's the whole page, mwah πŸ’‹ β€” this one comes from ./include/uapi/sound/sof, dated October 2026, and the page itself is struct sof_abi_hdr(9). slay, bye πŸ¦‹βœ¨

πŸ“¦ where this page comes from