|  | /* | 
|  | * Copyright (c) 2018 Intel Corporation | 
|  | * | 
|  | * SPDX-License-Identifier: Apache-2.0 | 
|  | */ | 
|  |  | 
|  | #ifndef ZEPHYR_INCLUDE_POSIX_MQUEUE_H_ | 
|  | #define ZEPHYR_INCLUDE_POSIX_MQUEUE_H_ | 
|  |  | 
|  | #include <kernel.h> | 
|  | #include <posix/time.h> | 
|  | #include <fcntl.h> | 
|  | #include "posix_types.h" | 
|  | #include "sys/stat.h" | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | extern "C" { | 
|  | #endif | 
|  |  | 
|  | typedef void *mqd_t; | 
|  |  | 
|  | typedef struct mq_attr { | 
|  | long mq_flags; | 
|  | long mq_maxmsg; | 
|  | long mq_msgsize; | 
|  | long mq_curmsgs;	/* Number of messages currently queued. */ | 
|  | } mq_attr; | 
|  |  | 
|  | mqd_t mq_open(const char *name, int oflags, ...); | 
|  | int mq_close(mqd_t mqdes); | 
|  | int mq_unlink(const char *name); | 
|  | int mq_getattr(mqd_t mqdes, struct mq_attr *mqstat); | 
|  | int mq_receive(mqd_t mqdes, char *msg_ptr, size_t msg_len, | 
|  | unsigned int *msg_prio); | 
|  | int mq_send(mqd_t mqdes, const char *msg_ptr, size_t msg_len, | 
|  | unsigned int msg_prio); | 
|  | int mq_setattr(mqd_t mqdes, const struct mq_attr *mqstat, | 
|  | struct mq_attr *omqstat); | 
|  | int mq_timedreceive(mqd_t mqdes, char *msg_ptr, size_t msg_len, | 
|  | unsigned int *msg_prio, const struct timespec *abstime); | 
|  | int mq_timedsend(mqd_t mqdes, const char *msg_ptr, size_t msg_len, | 
|  | unsigned int msg_prio, const struct timespec *abstime); | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | } | 
|  | #endif | 
|  |  | 
|  | #endif  /* ZEPHYR_INCLUDE_POSIX_MQUEUE_H_ */ |