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