Mistake on this page?
Report an issue in GitHub or email us
msg_queue.h
1 /*
2  * Copyright (c) 2020-2021, Arm Limited. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  *
6  */
7 
8 #ifndef __OS_WRAPPER_MSG_QUEUE_H__
9 #define __OS_WRAPPER_MSG_QUEUE_H__
10 
11 #ifdef __cplusplus
12 extern "C" {
13 #endif
14 
15 #include <stddef.h>
16 
17 #include "common.h"
18 
19 /**
20  * \brief Create and initialize a message queue
21  *
22  * \param[in] msg_size The maximum message size in bytes
23  * \param[in] msg_count The maximum number of messages in queue
24  *
25  * \return Returns handle of the message queue created, or NULL in case of error
26  */
27 void *os_wrapper_msg_queue_create(size_t msg_size, uint8_t msg_count);
28 
29 /**
30  * \brief Send a message via message queue
31  *
32  * \param[in] mq_handle The handle of message queue
33  * \param[in] msg_ptr The pointer to the message to be sent
34  *
35  * \return \ref OS_WRAPPER_SUCCESS if the message is successfully sent, or
36  * \ref OS_WRAPPER_ERROR in case of error
37  *
38  * \note The message size must be the same as the value set in
39  * \ref os_wrapper_msg_queue_create.
40  *
41  * \note Time out value is not specified here. Whether the function is blocked
42  * or returns instantly depends on the actual implementation and usage
43  * scenario.
44  */
45 int32_t os_wrapper_msg_queue_send(void *mq_handle,
46  const void *msg_ptr);
47 
48 /**
49  * \brief Receive a message from message queue
50  *
51  * \param[in] mq_handle The handle of message queue
52  * \param[in] msg_ptr The pointer to buffer for message to be received
53  *
54  * \return \ref OS_WRAPPER_SUCCESS if the message is successfully received, or
55  * \ref OS_WRAPPER_ERROR in case of error
56  *
57  * \note The message size is the same as the value set in
58  * \ref os_wrapper_msg_queue_create.
59  *
60  * \note The function should be blocked until a message is received from message
61  * queue, unless an error occurs.
62  */
63 int32_t os_wrapper_msg_queue_receive(void *mq_handle,
64  void *msg_ptr);
65 
66 #ifdef __cplusplus
67 }
68 #endif
69 
70 #endif /* __OS_WRAPPER_MSG_QUEUE_H__ */
Important Information for this Arm website

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies. If you are not happy with the use of these cookies, please review our Cookie Policy to learn how they can be disabled. By disabling cookies, some features of the site will not work.