STRUCT SOF_IPC4_CONTROL_MSG_PAYLOAD(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ struct sof_ipc4_control_msg_payload β€” the Kernel API Manual, bestie edition πŸŽ€

Okay so this is a page from the Kernel API Manual (the struct sof_..._msg_payload(9) one, yes the title got truncated, it's fine, we move) and it's literally all about the kcontrol parameters IPC payload. Buckle up, it's short and iconic. πŸ’…


✨ NAME ✨

struct sof_ipc4_control_msg_payload β€” the IPC payload for kcontrol parameters. That's it, that's the whole vibe.


πŸ¦‹ SYNOPSIS πŸ¦‹

struct sof_ipc4_control_msg_payload {
    uint16_t id;
    uint16_t num_elems;
    uint32_t reserved[4];
    union {
      struct sof_ipc4_ctrl_value_chan  chanv[];
      uint8_t data[];
    };
 };

Look at her. Struct with a little anonymous union moment. Main character energy fr fr. πŸ‘‘


🌸 Members 🌸

  • id β€” the unique id of the control. Every control gets her own little name tag, no cap. 🏷️
  • num_elems β€” and here's the multitasker: this is the number of elements in the chanv array or the number of bytes in data. Depends which one you're living in that day. πŸ’«
  • reserved β€” reserved for future use, and it must be set to 0. Not optional, not negotiable, not a "we'll fix it later" kinda thing. Zero it out. πŸ™ˆ
  • {unnamed_union} β€” anonymous. She has no name. She has no need for one. She simply is. πŸ’€
    • chanv β€” the channel ID and value array. It's giving "which channel, what value". Two things, one array. Slay. ✨
    • data β€” the binary payload. Raw bytes, no thoughts, just data. πŸ“
Real talk bestie: chanv and data share the same space (anonymous union, remember?), so it's one or the other. Also reserved must be 0. I said it once, I'll say it again. 🫢

πŸ”₯ SEE ALSO πŸ”₯

The whole friend group, in the order the page gave it β€” and yes, we're listing all of them, because everyone deserves their moment at the function. πŸ’– The file in question is the kernel file ./sound/soc/sof/ipc4-topology.h.

  • struct sof_ipc4_pipeline(9)
  • struct ipc4_pipeline_set_state_data(9)
  • struct sof_ipc4_pin_format(9)
  • struct sof_ipc4_available_audio_format(9)
  • struct sof_copier_gateway_cfg(9)
  • struct sof_ipc4_copier_data(9)
  • struct sof_ipc4_gtw_attributes(9)
  • struct sof_ipc4_dma_device_stream_ch_map(9)
  • struct sof_ipc4_dma_stream_ch_map(9)
  • struct sof_ipc4_dma_config(9)
  • struct sof_ipc4_dma_config_tlv(9)
  • struct sof_ipc4_copier(9)
  • struct sof_ipc4_ctrl_value_chan(9) β€” the literal bestie of chanv, go say hi 🫢
  • struct sof_ipc4_control_data(9)
  • struct sof_ipc4_gain_params(9)
  • struct sof_ipc4_gain_data(9)
  • struct sof_ipc4_gain(9)
  • struct sof_ipc4_mixer(9)
  • struct sof_ipc4_src(9)
  • struct sof_ipc4_asrc(9)
  • struct sof_ipc4_base_module_cfg_ext(9)
  • struct sof_ipc4_process(9)

And that's the page, diva. πŸ’œ Little sign-off for the record books: this one lives in ./sound/soc/sof and it's dated October 2026, header and footer energy of struct sof_..._msg_payload(9). Go read the whole topology header, I'm obsessed, bye! πŸŒˆβ­πŸŽ€

πŸ“¦ where this page comes from