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__ */ 71