8#ifndef __SOF_AUDIO_USERSPACE_PROXY_USER_H__
9#define __SOF_AUDIO_USERSPACE_PROXY_USER_H__
11#if CONFIG_SOF_USERSPACE_PROXY
12struct module_agent_params {
14 struct system_agent_params params;
16 const void *out_interface;
19struct module_large_cfg_set_params {
21 enum module_cfg_fragment_position pos;
22 uint32_t data_off_size;
23 const uint8_t *fragment;
29struct module_large_cfg_get_params {
31 uint32_t *data_off_size;
36struct module_processing_mode_params {
37 enum module_processing_mode mode;
40struct module_process_params {
41 struct sof_source **sources;
43 struct sof_sink **sinks;
47enum userspace_proxy_cmd {
48 USER_PROXY_MOD_CMD_AGENT_START,
49 USER_PROXY_MOD_CMD_INIT,
50 USER_PROXY_MOD_CMD_PREPARE,
51 USER_PROXY_MOD_CMD_PROC_READY,
52 USER_PROXY_MOD_CMD_SET_PROCMOD,
53 USER_PROXY_MOD_CMD_GET_PROCMOD,
54 USER_PROXY_MOD_CMD_SET_CONF,
55 USER_PROXY_MOD_CMD_GET_CONF,
56 USER_PROXY_MOD_CMD_BIND,
57 USER_PROXY_MOD_CMD_UNBIND,
58 USER_PROXY_MOD_CMD_RESET,
59 USER_PROXY_MOD_CMD_FREE,
60 USER_PROXY_MOD_CMD_TRIGGER
64 enum userspace_proxy_cmd cmd;
66 struct processing_module *mod;
67 struct userspace_context *context;
70 struct module_agent_params agent;
71 struct module_large_cfg_set_params set_conf;
72 struct module_large_cfg_get_params get_conf;
73 struct module_processing_mode_params proc_mode;
74 struct module_process_params proc;
75 const struct bind_info *bind_data;
80struct user_work_item {
81 struct k_work_user work_item;
82 struct k_event *event;
83 struct module_params params;
86void userspace_proxy_handle_request(
struct processing_module *mod,
struct module_params *params);
88void userspace_proxy_worker_handler(
struct k_work_user *work_item);
int(* system_agent_start_fn)(const struct system_agent_params *params, const void **adapter)
Definition native_system_agent.h:23