/* * Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ /*! * Header file for the IPC implementation. */ #ifndef SC_IPC_H #define SC_IPC_H /* Includes */ #include /* Defines */ /* Types */ /* Functions */ /*! * This function opens an IPC channel. * * @param[out] ipc return pointer for ipc handle * @param[in] id id of channel to open * * @return Returns an error code (SC_ERR_NONE = success, SC_ERR_IPC * otherwise). * * The \a id parameter is implementation specific. Could be an MU * address, pointer to a driver path, channel index, etc. */ sc_err_t sc_ipc_open(sc_ipc_t *ipc, sc_ipc_id_t id); /*! * This function closes an IPC channel. * * @param[in] ipc id of channel to close */ void sc_ipc_close(sc_ipc_t ipc); /*! * This function reads a message from an IPC channel. * * @param[in] ipc id of channel read from * @param[out] data pointer to message buffer to read * * This function will block if no message is available to be read. */ void sc_ipc_read(sc_ipc_t ipc, void *data); /*! * This function writes a message to an IPC channel. * * @param[in] ipc id of channel to write to * @param[in] data pointer to message buffer to write * * This function will block if the outgoing buffer is full. */ void sc_ipc_write(sc_ipc_t ipc, void *data); sc_ipc_t ipc_handle; #endif /* SC_IPC_H */