aboutsummaryrefslogtreecommitdiff
path: root/lib/chibios-contrib/ext/mcux-sdk/devices/MIMX8DX4/scfw_api/main/ipc.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/chibios-contrib/ext/mcux-sdk/devices/MIMX8DX4/scfw_api/main/ipc.h')
-rw-r--r--lib/chibios-contrib/ext/mcux-sdk/devices/MIMX8DX4/scfw_api/main/ipc.h92
1 files changed, 92 insertions, 0 deletions
diff --git a/lib/chibios-contrib/ext/mcux-sdk/devices/MIMX8DX4/scfw_api/main/ipc.h b/lib/chibios-contrib/ext/mcux-sdk/devices/MIMX8DX4/scfw_api/main/ipc.h
new file mode 100644
index 000000000..b5ce3062b
--- /dev/null
+++ b/lib/chibios-contrib/ext/mcux-sdk/devices/MIMX8DX4/scfw_api/main/ipc.h
@@ -0,0 +1,92 @@
1/*
2 * Copyright (c) 2016, Freescale Semiconductor, Inc.
3 * Copyright 2017-2019 NXP
4 *
5 * SPDX-License-Identifier: BSD-3-Clause
6 *
7 * Redistribution and use in source and binary forms, with or without modification,
8 * are permitted provided that the following conditions are met:
9 *
10 * o Redistributions of source code must retain the above copyright notice, this list
11 * of conditions and the following disclaimer.
12 *
13 * o Redistributions in binary form must reproduce the above copyright notice, this
14 * list of conditions and the following disclaimer in the documentation and/or
15 * other materials provided with the distribution.
16 *
17 * o Neither the name of the copyright holder nor the names of its
18 * contributors may be used to endorse or promote products derived from this
19 * software without specific prior written permission.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
22 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
23 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
24 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
25 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
26 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
27 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
28 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
30 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 */
32
33/*!
34 * Header file for the IPC implementation.
35 */
36
37#ifndef SC_IPC_H
38#define SC_IPC_H
39
40/* Includes */
41
42#include "main/types.h"
43
44/* Defines */
45
46/* Types */
47
48/* Functions */
49
50/*!
51 * This function opens an IPC channel.
52 *
53 * @param[out] ipc return pointer for ipc handle
54 * @param[in] id id of channel to open
55 *
56 * @return Returns an error code (SC_ERR_NONE = success, SC_ERR_IPC
57 * otherwise).
58 *
59 * The \a id parameter is implementation specific. Could be an MU
60 * address, pointer to a driver path, channel index, etc.
61 */
62sc_err_t sc_ipc_open(sc_ipc_t *ipc, sc_ipc_id_t id);
63
64/*!
65 * This function closes an IPC channel.
66 *
67 * @param[in] ipc id of channel to close
68 */
69void sc_ipc_close(sc_ipc_t ipc);
70
71/*!
72 * This function reads a message from an IPC channel.
73 *
74 * @param[in] ipc id of channel read from
75 * @param[out] data pointer to message buffer to read
76 *
77 * This function will block if no message is available to be read.
78 */
79void sc_ipc_read(sc_ipc_t ipc, void *data);
80
81/*!
82 * This function writes a message to an IPC channel.
83 *
84 * @param[in] ipc id of channel to write to
85 * @param[in] data pointer to message buffer to write
86 *
87 * This function will block if the outgoing buffer is full.
88 */
89void sc_ipc_write(sc_ipc_t ipc, const void *data);
90
91#endif /* SC_IPC_H */
92