Line data Source code
1 0 : /* 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 <zephyr/posix/posix_types.h> 16 : 17 : #ifdef __cplusplus 18 : extern "C" { 19 : #endif 20 : 21 0 : typedef void *mqd_t; 22 : 23 0 : struct mq_attr { 24 0 : long mq_flags; 25 0 : long mq_maxmsg; 26 0 : long mq_msgsize; 27 0 : long mq_curmsgs; /* Number of messages currently queued. */ 28 : }; 29 : 30 0 : mqd_t mq_open(const char *name, int oflags, ...); 31 0 : int mq_close(mqd_t mqdes); 32 0 : int mq_unlink(const char *name); 33 0 : int mq_getattr(mqd_t mqdes, struct mq_attr *mqstat); 34 0 : int mq_receive(mqd_t mqdes, char *msg_ptr, size_t msg_len, 35 : unsigned int *msg_prio); 36 0 : int mq_send(mqd_t mqdes, const char *msg_ptr, size_t msg_len, 37 : unsigned int msg_prio); 38 0 : int mq_setattr(mqd_t mqdes, const struct mq_attr *mqstat, 39 : struct mq_attr *omqstat); 40 0 : int mq_timedreceive(mqd_t mqdes, char *msg_ptr, size_t msg_len, 41 : unsigned int *msg_prio, const struct timespec *abstime); 42 0 : int mq_timedsend(mqd_t mqdes, const char *msg_ptr, size_t msg_len, 43 : unsigned int msg_prio, const struct timespec *abstime); 44 0 : 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_ */