blob: 44c97932905c5f994c8a55be286aadc2d1ef6535 [file] [log] [blame]
Youvedeep Singh4a8b2d22018-03-19 20:45:27 +05301/*
2 * Copyright (c) 2018 Intel Corporation
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
Flavio Ceolin67ca1762018-09-14 10:43:44 -07007#ifndef ZEPHYR_INCLUDE_POSIX_MQUEUE_H_
8#define ZEPHYR_INCLUDE_POSIX_MQUEUE_H_
Youvedeep Singh4a8b2d22018-03-19 20:45:27 +05309
10#include <kernel.h>
Ramakrishna Pallalaf603e602018-04-05 22:41:15 +053011#include <posix/time.h>
Paul Sokolovsky1347bf92019-06-05 12:35:57 +030012#include <fcntl.h>
Kumar Galae96d0292019-02-19 12:49:04 -060013#include "posix_types.h"
Paul Sokolovsky0fd8a472018-09-28 16:08:34 +030014#include "sys/stat.h"
Youvedeep Singh4a8b2d22018-03-19 20:45:27 +053015
16#ifdef __cplusplus
17extern "C" {
18#endif
19
20typedef void *mqd_t;
Youvedeep Singh4a8b2d22018-03-19 20:45:27 +053021
22typedef 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} mq_attr;
28
Youvedeep Singh4a8b2d22018-03-19 20:45:27 +053029mqd_t mq_open(const char *name, int oflags, ...);
30int mq_close(mqd_t mqdes);
31int mq_unlink(const char *name);
32int mq_getattr(mqd_t mqdes, struct mq_attr *mqstat);
33int mq_receive(mqd_t mqdes, char *msg_ptr, size_t msg_len,
34 unsigned int *msg_prio);
35int mq_send(mqd_t mqdes, const char *msg_ptr, size_t msg_len,
36 unsigned int msg_prio);
37int mq_setattr(mqd_t mqdes, const struct mq_attr *mqstat,
38 struct mq_attr *omqstat);
39int mq_timedreceive(mqd_t mqdes, char *msg_ptr, size_t msg_len,
40 unsigned int *msg_prio, const struct timespec *abstime);
41int 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
Flavio Ceolin67ca1762018-09-14 10:43:44 -070048#endif /* ZEPHYR_INCLUDE_POSIX_MQUEUE_H_ */