Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 54 additions & 0 deletions src/include/ipc4/handler.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
/* SPDX-License-Identifier: BSD-3-Clause
*
* Copyright(c) 2026 Intel Corporation.
*/

#ifndef __SOF_IPC4_HANDLER_H__
#define __SOF_IPC4_HANDLER_H__

struct ipc4_message_request;

/**
* \brief Processes IPC4 userspace module message.
* @param[in] ipc4 IPC4 message request.
* @param[in] reply IPC message reply structure.
* @return IPC4_SUCCESS on success, error code otherwise.
*/
int ipc4_user_process_module_message(struct ipc4_message_request *ipc4, struct ipc_msg *reply);

/**
* \brief Processes IPC4 userspace global message.
* @param[in] ipc4 IPC4 message request.
* @param[in] reply IPC message reply structure.
* @return IPC4_SUCCESS on success, error code otherwise.
*/
int ipc4_user_process_glb_message(struct ipc4_message_request *ipc4, struct ipc_msg *reply);

/**
* \brief Increment the IPC compound message pre-start counter.
* @param[in] msg_id IPC message ID.
*/
void ipc_compound_pre_start(int msg_id);

/**
* \brief Decrement the IPC compound message pre-start counter on return value status.
* @param[in] msg_id IPC message ID.
* @param[in] ret Return value of the IPC command.
* @param[in] delayed True if the reply is delayed.
*/
void ipc_compound_post_start(uint32_t msg_id, int ret, bool delayed);

/**
* \brief Complete the IPC compound message.
* @param[in] msg_id IPC message ID.
* @param[in] error Error code of the IPC command.
*/
void ipc_compound_msg_done(uint32_t msg_id, int error);

/**
* \brief Wait for the IPC compound message to complete.
* @return 0 on success, error code otherwise on timeout.
*/
int ipc_wait_for_compound_msg(void);

#endif /* __SOF_IPC4_HANDLER_H__ */
3 changes: 2 additions & 1 deletion src/ipc/ipc4/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
# Files common to Zephyr and XTOS
add_local_sources(sof
dai.c
handler.c
handler-user.c
handler-kernel.c
helper.c
logging.c
notification.c
Expand Down
Loading
Loading