blob: bd35842c42ca7f5b42e11b1625dbb5ea3c33601e [file] [log] [blame]
Rich Felker23182072011-09-20 12:14:06 -04001#ifndef _MQUEUE_H
2#define _MQUEUE_H
Rich Felkerab113862011-06-07 01:52:27 -04003#ifdef __cplusplus
4extern "C" {
5#endif
6
Rich Felker400c5e52012-09-06 22:44:55 -04007#if __STDC_VERSION__ >= 199901L
8#define __restrict restrict
9#elif !defined(__GNUC__)
10#define __restrict
11#endif
12
Rich Felkerab113862011-06-07 01:52:27 -040013#define __NEED_size_t
14#define __NEED_ssize_t
15#define __NEED_pthread_attr_t
16#define __NEED_time_t
17#define __NEED_struct_timespec
18#include <bits/alltypes.h>
19
20typedef int mqd_t;
21struct mq_attr {
22 long mq_flags, mq_maxmsg, mq_msgsize, mq_curmsgs, __unused[4];
23};
24struct sigevent;
25
26int mq_close(mqd_t);
27int mq_getattr(mqd_t, struct mq_attr *);
28int mq_notify(mqd_t, const struct sigevent *);
29mqd_t mq_open(const char *, int, ...);
30ssize_t mq_receive(mqd_t, char *, size_t, unsigned *);
31int mq_send(mqd_t, const char *, size_t, unsigned);
Rich Felker400c5e52012-09-06 22:44:55 -040032int mq_setattr(mqd_t, const struct mq_attr *__restrict, struct mq_attr *__restrict);
33ssize_t mq_timedreceive(mqd_t, char *__restrict, size_t, unsigned *__restrict, const struct timespec *__restrict);
Rich Felkerab113862011-06-07 01:52:27 -040034int mq_timedsend(mqd_t, const char *, size_t, unsigned, const struct timespec *);
35int mq_unlink(const char *);
36
37#ifdef __cplusplus
38}
39#endif
40#endif