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