1 /* 2 * Copyright (c) 2018 Intel Corporation 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7 #ifndef ZEPHYR_INCLUDE_POSIX_MQUEUE_H_ 8 #define ZEPHYR_INCLUDE_POSIX_MQUEUE_H_ 9 10 #include <zephyr/kernel.h> 11 #include <zephyr/posix/time.h> 12 #include <zephyr/posix/fcntl.h> 13 #include <zephyr/posix/sys/stat.h> 14 #include "posix_types.h" 15 16 #ifdef __cplusplus 17 extern "C" { 18 #endif 19 20 typedef void *mqd_t; 21 22 struct mq_attr { 23 long mq_flags; 24 long mq_maxmsg; 25 long mq_msgsize; 26 long mq_curmsgs; /* Number of messages currently queued. */ 27 }; 28 29 mqd_t mq_open(const char *name, int oflags, ...); 30 int mq_close(mqd_t mqdes); 31 int mq_unlink(const char *name); 32 int mq_getattr(mqd_t mqdes, struct mq_attr *mqstat); 33 int mq_receive(mqd_t mqdes, char *msg_ptr, size_t msg_len, 34 unsigned int *msg_prio); 35 int mq_send(mqd_t mqdes, const char *msg_ptr, size_t msg_len, 36 unsigned int msg_prio); 37 int mq_setattr(mqd_t mqdes, const struct mq_attr *mqstat, 38 struct mq_attr *omqstat); 39 int mq_timedreceive(mqd_t mqdes, char *msg_ptr, size_t msg_len, 40 unsigned int *msg_prio, const struct timespec *abstime); 41 int mq_timedsend(mqd_t mqdes, const char *msg_ptr, size_t msg_len, 42 unsigned int msg_prio, const struct timespec *abstime); 43 44 #ifdef __cplusplus 45 } 46 #endif 47 48 #endif /* ZEPHYR_INCLUDE_POSIX_MQUEUE_H_ */ 49