1 /*
2  * Arm SCP/MCP Software
3  * Copyright (c) 2022, Linaro Limited and Contributors. All rights reserved.
4  *
5  * SPDX-License-Identifier: BSD-3-Clause
6  */
7 
8 #ifndef ARCH_MAIN_H
9 #define ARCH_MAIN_H
10 
11 #include <stdbool.h>
12 #include <stddef.h>
13 #include <stdint.h>
14 
15 /*!
16  * \brief Initialize the architecture.
17  *
18  */
19 int scmi_arch_init(void);
20 
21 /*!
22  * \brief Stop the architecture.
23  *
24  */
25 int scmi_arch_deinit(void);
26 
27 /*!
28  * \brief Get number of channels.
29  *
30  */
31 extern int scmi_get_devices_count(void);
32 
33 /*!
34  * \brief Get the id of a channel.
35  *
36  */
37 extern int scmi_get_device(unsigned int id);
38 
39 /*!
40  * \brief Add new event to process on the channel id.
41  *
42  */
43 extern void scmi_process_mbx_smt(unsigned int id);
44 
45 extern void scmi_process_mbx_msg(unsigned int id, void *in_buf, size_t in_size,
46                                  void *out_buf, size_t *out_size);
47 
48 #endif /* ARCH_MAIN_H */
49