STRUCT SOF_IPC4_COPIER(9)
π struct_ipc4_copier(9) β the Kernel API Manual, but make it make sense
okay so bestie, welcome to the Kernel API Manual page for struct sof_ipc4_copier β yes that's the actual name, no I can't make it shorter, and yes it's giving "copier config data" realness β¨
πΈ NAME πΈ
struct sof_ipc4_copier β copier config data. that's it. that's the whole vibe. she's a config blob and she knows it π
π¦ SYNOPSIS π¦
here's the whole struct, character for character, bc we do NOT paraphrase code in this house:
struct sof_ipc4_copier {
struct sof_ipc4_copier_data data;
u32 *copier_config;
uint32_t ipc_config_size;
void *ipc_config_data;
struct sof_ipc4_available_audio_format available_fmt;
u32 frame_fmt;
struct sof_ipc4_msg msg;
struct sof_ipc4_gtw_attributes *gtw_attr;
u32 dai_type;
int dai_index;
struct sof_ipc4_dma_config_tlv dma_config_tlv[SOF_IPC4_DMA_DEVICE_MAX_COUNT];
};
like, look at her. all those fields. main character energy fr π
π Members π
okay so every field, one by one, no skipping, because we respect her:
dataβ IPC copier data. the actual payload-ish core of the thing π«copier_configβ Copier + blob. yes, both. she contains multitudes π«Άipc_config_sizeβ Size ofcopier_config. so you know how much of the blob is blob πipc_config_dataβ Copier module config data. the module-level config, separate from the above, don't @ me πavailable_fmtβ Available audio format. what formats she'll accept. picky but valid β¨frame_fmtβ frame format. lowkey just the frame format πmsgβ message structure for copier. the message-y one π¨gtw_attrβ Gateway attributes for copier blob. gateway stuff, very "gateway" of her πdai_typeβ DAI type. the type of DAI, iconic deduction π₯dai_indexβ DAI index. and the index of that DAI. we love a duo π―dma_config_tlvβ DMA configuration. it's an array ofSOF_IPC4_DMA_DEVICE_MAX_COUNTof those, ngl that's the tea β
bestie note:dma_config_tlvis literally declared asstruct sof_ipc4_dma_config_tlv dma_config_tlv[SOF_IPC4_DMA_DEVICE_MAX_COUNT]β so it's not a pointer, it's a whole array living right there in the struct. do with that what you will π
π§ SEE ALSO π§
she does NOT exist in a vacuum, she's part of a whole ecosystem, and the kernel file is ./sound/soc/sof/ipc4-topology.h β go read it, it's a journey:
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_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)struct sof_ipc4_process(9)
like that's 22 structs. twenty-two. she's connected, she's networked, she's the moment π β¨
okay that's the whole page bestie!! π this came out of ./sound/soc/sof, dated October 2026, and it's filed under struct sof_ipc4_copier(9) in the Kernel API Manual β go forth and configure your copiers, you're gonna slay ππ¦πΈ
π¦ 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