Sound Open Firmware
Loading...
Searching...
No Matches
ipc_user Struct Reference

#include <src/include/sof/ipc/common.h>

Collaboration diagram for ipc_user:

Data Fields

struct k_thread * thread [IPC_DSP_CORE_COUNT]
 
struct k_sem * sem
 
struct k_event * event [IPC_DSP_CORE_COUNT]
 
uint32_t ipc_msg_pri
 Copy of IPC4 message primary word forwarded to user thread.
 
uint32_t ipc_msg_ext
 Copy of IPC4 message extension word forwarded to user thread.
 
int result
 Result code from user thread processing.
 
uint32_t reply_ext
 Reply extension word from user thread (e.g.
 
uint32_t reply_tx_size
 Reply TX data size from user thread (e.g.
 
void * reply_tx_data
 Reply TX data pointer from user thread (e.g.
 
struct ipc * ipc
 
struct k_thread * audio_thread [IPC_DSP_CORE_COUNT]
 
const struct comp_driver * init_drv
 Original kernel driver pointer for restoring dev->drv after create.
 
bool init_needed [IPC_DSP_CORE_COUNT]
 
uint8_t init_drv_data [160]
 User-accessible copy of comp_driver + tr_ctx for create().
 

Field Documentation

◆ audio_thread

struct k_thread* ipc_user::audio_thread[IPC_DSP_CORE_COUNT]

◆ event

struct k_event* ipc_user::event[IPC_DSP_CORE_COUNT]

◆ init_drv

const struct comp_driver* ipc_user::init_drv

Original kernel driver pointer for restoring dev->drv after create.

◆ init_drv_data

uint8_t ipc_user::init_drv_data[160]

User-accessible copy of comp_driver + tr_ctx for create().

The comp_driver and tr_ctx structs reside in kernel memory (.rodata/.data) which is not user-readable. The kernel handler copies them here before forwarding to the user thread. Size verified by BUILD_ASSERT in handler-user.c.

◆ init_needed

bool ipc_user::init_needed[IPC_DSP_CORE_COUNT]

◆ ipc

struct ipc* ipc_user::ipc

◆ ipc_msg_ext

uint32_t ipc_user::ipc_msg_ext

Copy of IPC4 message extension word forwarded to user thread.

◆ ipc_msg_pri

uint32_t ipc_user::ipc_msg_pri

Copy of IPC4 message primary word forwarded to user thread.

◆ reply_ext

uint32_t ipc_user::reply_ext

Reply extension word from user thread (e.g.

CONFIG_GET result)

◆ reply_tx_data

void* ipc_user::reply_tx_data

Reply TX data pointer from user thread (e.g.

LARGE_CONFIG_GET result)

◆ reply_tx_size

uint32_t ipc_user::reply_tx_size

Reply TX data size from user thread (e.g.

LARGE_CONFIG_GET result)

◆ result

int ipc_user::result

Result code from user thread processing.

◆ sem

struct k_sem* ipc_user::sem

◆ thread

struct k_thread* ipc_user::thread[IPC_DSP_CORE_COUNT]

The documentation for this struct was generated from the following file: