|
Sound Open Firmware
|
IPC4 global message headers, envelope formats, and command types. More...

Go to the source code of this file.
Data Structures | |
| struct | ipc_cmd_hdr |
| Generic message header. More... | |
| struct | ipc4_message_request |
| Standard 64-bit IPC4 message request envelope. More... | |
| struct | ipc4_message_reply |
| Standard 64-bit IPC4 message reply envelope. More... | |
| struct | sof_ipc4_ctrl_value_chan |
| Generic per-channel control value mapping. More... | |
| struct | sof_ipc4_control_msg_payload |
| IPC4 payload structure for ALSA kcontrol parameters. More... | |
| struct | sof_ipc4_notify_module_data |
| Asynchronous notification payload originating from a module instance. More... | |
Macros | |
| #define | ipc_from_hdr(x) ((struct ipc4_message_request *)x) |
| Cast a generic buffer or message pointer to an IPC4 message request structure. | |
| #define | SOF_IPC4_SWITCH_CONTROL_PARAM_ID 200 |
| ALSA/kcontrol switch parameter ID for IPC4 Large Config. | |
| #define | SOF_IPC4_ENUM_CONTROL_PARAM_ID 201 |
| ALSA/kcontrol enum parameter ID for IPC4 Large Config. | |
| #define | SOF_IPC4_BYTES_CONTROL_PARAM_ID 202 |
| ALSA/kcontrol binary bytes parameter ID for IPC4 Large Config. | |
| #define | SOF_IPC4_NOTIFY_MODULE_EVENTID_ALSA_MAGIC_VAL ((uint32_t)0xA15A << 16) |
| Magic event ID prefix for ALSA kcontrol notification events (0xA15A0000). | |
| #define | SOF_IPC4_NOTIFY_MODULE_EVENTID_COMPR_MAGIC_VAL ((uint32_t)0xC0C0 << 16) |
| Magic event ID prefix for compressed audio stream notifications (0xC0C00000). | |
Functions | |
| struct ipc4_message_reply | __attribute ((packed, aligned(4))) |
Variables | ||
| union { | ||
| uint32_t dat | ||
| Raw 32-bit Primary register value. More... | ||
| struct { | ||
| uint32_t status: 24 | ||
| Command processing status (one of enum ipc4_status). More... | ||
| uint32_t type: 5 | ||
| Message type, symmetric to the incoming request. More... | ||
| uint32_t rsp: 1 | ||
| Direction: 1 for reply (SOF_IPC4_MESSAGE_DIR_MSG_REPLY). More... | ||
| uint32_t msg_tgt: 1 | ||
| Target: symmetric to request (FW_GEN_MSG or MODULE_MSG). More... | ||
| uint32_t _reserved_0: 1 | ||
| Hardware control reserved bit. More... | ||
| } r | ||
| } | primary | |
| union { | ||
| uint32_t dat | ||
| Raw 32-bit Extension register value. More... | ||
| struct { | ||
| uint32_t rsvd1: 30 | ||
| Extension reply data, transfer length, or additional status information. More... | ||
| uint32_t _reserved_2: 2 | ||
| Hardware control reserved bits. More... | ||
| } r | ||
| } | extension | |
| uint32_t | channel | |
| Logical audio channel ID (0 = Left, 1 = Right, etc.). | ||
| uint32_t | value | |
| Control integer value (gain level, mute toggle, enum index). | ||
| uint16_t | id | |
| Unique identifier of the control. | ||
| uint16_t | num_elems | |
| Number of elements in the chanv array or number of bytes in data. | ||
| uint32_t | reserved [4] | |
| Reserved for future expansion; must be set to 0. | ||
| union { | ||
| struct sof_ipc4_ctrl_value_chan chanv [0] | ||
| Channel ID and value array. More... | ||
| uint8_t data [0] | ||
| Binary byte payload for raw controls. More... | ||
| }; | ||
| uint16_t | instance_id | |
| Instance ID of the originator module of the notification. | ||
| uint16_t | module_id | |
| Module ID of the originator of the notification. | ||
| uint32_t | event_id | |
| Module-specific event identifier. | ||
| uint32_t | event_data_size | |
| Size of the event_data payload (if any) in bytes. | ||
| uint8_t | event_data [] | |
| Optional notification data, module and notification dependent. | ||
IPC4 global message headers, envelope formats, and command types.
NOTE: This ABI uses bit fields and is non portable.
| #define ipc_from_hdr | ( | x | ) | ((struct ipc4_message_request *)x) |
Cast a generic buffer or message pointer to an IPC4 message request structure.
| #define SOF_IPC4_BYTES_CONTROL_PARAM_ID 202 |
ALSA/kcontrol binary bytes parameter ID for IPC4 Large Config.
| #define SOF_IPC4_ENUM_CONTROL_PARAM_ID 201 |
ALSA/kcontrol enum parameter ID for IPC4 Large Config.
| #define SOF_IPC4_NOTIFY_MODULE_EVENTID_ALSA_MAGIC_VAL ((uint32_t)0xA15A << 16) |
Magic event ID prefix for ALSA kcontrol notification events (0xA15A0000).
| #define SOF_IPC4_NOTIFY_MODULE_EVENTID_COMPR_MAGIC_VAL ((uint32_t)0xC0C0 << 16) |
Magic event ID prefix for compressed audio stream notifications (0xC0C00000).
| #define SOF_IPC4_SWITCH_CONTROL_PARAM_ID 200 |
ALSA/kcontrol switch parameter ID for IPC4 Large Config.
| union { ... } |
| uint32_t _reserved_0 |
Hardware control reserved bit.
| uint32_t _reserved_2 |
Hardware control reserved bits.
| uint32_t channel |
Logical audio channel ID (0 = Left, 1 = Right, etc.).
| struct sof_ipc4_ctrl_value_chan chanv[0] |
Channel ID and value array.
| uint32_t dat |
Raw 32-bit Primary register value.
Raw 32-bit Extension register value.
| uint8_t data[0] |
Binary byte payload for raw controls.
| uint8_t event_data[] |
Optional notification data, module and notification dependent.
| uint32_t event_data_size |
Size of the event_data payload (if any) in bytes.
| uint32_t event_id |
Module-specific event identifier.
| union { ... } extension |
| uint16_t id |
Unique identifier of the control.
| uint16_t instance_id |
Instance ID of the originator module of the notification.
| uint16_t module_id |
Module ID of the originator of the notification.
| uint32_t msg_tgt |
Target: symmetric to request (FW_GEN_MSG or MODULE_MSG).
| uint16_t num_elems |
Number of elements in the chanv array or number of bytes in data.
| union { ... } primary |
| struct { ... } r |
| uint32_t reserved[4] |
Reserved for future expansion; must be set to 0.
| uint32_t rsp |
Direction: 1 for reply (SOF_IPC4_MESSAGE_DIR_MSG_REPLY).
| uint32_t rsvd1 |
Extension reply data, transfer length, or additional status information.
| uint32_t status |
Command processing status (one of enum ipc4_status).
| uint32_t type |
Message type, symmetric to the incoming request.
| uint32_t value |
Control integer value (gain level, mute toggle, enum index).