diff options
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.h | 92 |
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 | */ | ||
62 | sc_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 | */ | ||
69 | void 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 | */ | ||
79 | void 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 | */ | ||
89 | void sc_ipc_write(sc_ipc_t ipc, const void *data); | ||
90 | |||
91 | #endif /* SC_IPC_H */ | ||
92 | |||