STRUCT SOF_IPC4_PROCESS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct sof_ipc4_process β€” yes bestie, this is from the Kernel API Manual, and it's giving process config data ✨

okay so picture this: you're deep in the SOF IPC4 topology headers and you stumble on struct sof_ipc4_process, and you're like "what IS she?". She's the process config data struct, that's what. Main character energy, no cap πŸŽ€


🌸 SYNOPSIS 🌸

here's the whole glow-up, verbatim, don't touch a single character bestie:

struct sof_ipc4_process {
    struct sof_ipc4_base_module_cfg base_config;
    struct sof_ipc4_base_module_cfg_ext *base_config_ext;
    struct sof_ipc4_audio_format output_format;
    struct sof_ipc4_available_audio_format available_fmt;
    void *ipc_config_data;
    uint32_t ipc_config_size;
    struct sof_ipc4_msg msg;
    u32 base_config_ext_size;
    u32 init_config;
 };

like, she's a whole vibe. nine members. every single one matters. let's meet them πŸ’–


✨ Members ✨

  • base_config β€” the IPC base config data, aka her foundation. the blueprint. the base coat before the glitter πŸ’…
  • base_config_ext β€” base config extension data for module init. it's the extension, obviously, she goes further πŸ¦‹
  • output_format β€” the output audio format. what's coming out the other side, sound-wise 🎧
  • available_fmt β€” the available audio format(s). all the options she could serve you 🌈
  • ipc_config_data β€” process module config data. the actual payload, the main event πŸ”₯
  • ipc_config_size β€” size of that process module config data. yes she knows exactly how big she is, queen behavior πŸ‘‘
  • msg β€” an IPC4 message struct containing header and data info. the envelope AND the letter πŸ“¬
  • base_config_ext_size β€” size of the base config extension data in bytes (bytes!! not vibes!!) 🧚
  • init_config β€” module init config type, and it's one of the SOF_IPC4_MODULE_INIT_CONFIG_TYPE_* values. pick your fighter ⭐

πŸ‘€ SEE ALSO πŸ‘€

go read the whole friend group, they're all in the kernel file ./sound/soc/sof/ipc4-topology.h β€” every one of them, not skipping a single bestie:

  • 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)
  • struct sof_ipc4_control_data(9)
  • struct sof_ipc4_control_msg_payload(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)

ngl bestie, if you're poking at this struct you're already in the deep end of the SOF IPC4 topology pool. respect. hydrate. read the header file 🫢

k that's the whole page, mwah πŸ’‹ β€” this lil slice of kernel API manual lives at ./sound/soc/sof, and the version/date stamp on it is October 2026. stan a struct that knows her own timestamp πŸ’œ

πŸ“¦ where this page comes from