1#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined XPG42
2// should test for not an array type.
3type mqd_t
4
5type {struct sigevent}
6element {struct sigevent} int sigev_notify
7element {struct sigevent} int sigev_signo
8element {struct sigevent} {union sigval} sigev_value
9element {struct sigevent} {void(*} sigev_notify_function )(union sigval)
10element {struct sigevent} {pthread_attr_t*} sigev_notify_attributes
11
12type {struct mq_attr}
13// Bug 21279: mq_attr elements have wrong type.
14xfail[x86_64-x32-linux]-element {struct mq_attr} long mq_flags
15xfail[x86_64-x32-linux]-element {struct mq_attr} long mq_maxmsg
16xfail[x86_64-x32-linux]-element {struct mq_attr} long mq_msgsize
17xfail[x86_64-x32-linux]-element {struct mq_attr} long mq_curmsgs
18
19function int mq_close (mqd_t)
20function int mq_getattr (mqd_t, struct mq_attr*)
21function int mq_notify (mqd_t, const struct sigevent*)
22function mqd_t mq_open (const char*, int, ...)
23function ssize_t mq_receive (mqd_t, char*, size_t, unsigned int*)
24function int mq_send (mqd_t, const char*, size_t, unsigned int)
25function int mq_setattr (mqd_t, const struct mq_attr*, struct mq_attr*)
26function int mq_unlink (const char*)
27#if defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
28optional-function ssize_t mq_timedreceive (mqd_t, char*, size_t, unsigned int*, const struct timespec*)
29optional-function int mq_timedsend (mqd_t, const char*, size_t, unsigned int, const struct timespec*)
30#endif
31
32#if defined XOPEN2K8 || defined POSIX2008
33type pthread_attr_t
34type size_t
35type ssize_t
36type {struct timespec}
37#endif
38
39allow-header fcntl.h
40allow-header signal.h
41allow-header sys/types.h
42allow-header time.h
43
44allow mq_*
45allow MQ_*
46allow *_t
47#endif
48