STRUCT SOF_ABI_HDR(9)
π¦ 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')
- for IPC3 data:
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 themagicβ 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.hstructsof_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
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms