1 // © 2021 Qualcomm Innovation Center, Inc. All rights reserved. 2 // 3 // SPDX-License-Identifier: BSD-3-Clause 4 5 // Configure the message queue. 6 // The object's header lock must be held and object state must be 7 // OBJECT_STATE_INIT. 8 error_t 9 msgqueue_configure(msgqueue_t *msgqueue, size_t max_msg_size, 10 count_t queue_depth); 11 12 // Send a message to a message queue 13 // The argument from_kernel, if true, indicates that the message is in a kernel 14 // buffer. 15 bool_result_t 16 msgqueue_send_msg(msgqueue_t *msgqueue, size_t size, kernel_or_gvaddr_t msg, 17 bool push, bool from_kernel); 18 19 // Receive a message from a message queue 20 // The argument to_kernel, if true, indicates that the destination message 21 // buffer is a kernel address. 22 receive_info_result_t 23 msgqueue_receive_msg(msgqueue_t *msgqueue, kernel_or_gvaddr_t buffer, 24 size_t max_size, bool to_kernel); 25 26 void 27 msgqueue_flush_queue(msgqueue_t *msgqueue); 28 29 error_t 30 msgqueue_bind(msgqueue_t *msgqueue, vic_t *vic, virq_t virq, 31 virq_source_t *source, virq_trigger_t trigger); 32 33 void 34 msgqueue_unbind(virq_source_t *source); 35