#include <mqueue.h>
#define T(t) (t*)0;
#define F(t,n) {t *y = &x.n;}
static void f()
{
T(mqd_t)
T(pthread_attr_t)
T(size_t)
T(ssize_t)
T(struct timespec)
T(struct sigevent)
{
struct mq_attr x;
F(long, mq_flags)
F(long, mq_maxmsg)
F(long, mq_msgsize)
F(long, mq_curmsgs)
}
{int(*p)(mqd_t) = mq_close;}
{int(*p)(mqd_t,struct mq_attr*) = mq_getattr;}
{int(*p)(mqd_t,const struct sigevent*) = mq_notify;}
{mqd_t(*p)(const char*,int,...) = mq_open;}
{ssize_t(*p)(mqd_t,char*,size_t,unsigned*) = mq_receive;}
{int(*p)(mqd_t,const char*,size_t,unsigned) = mq_send;}
{int(*p)(mqd_t,const struct mq_attr*restrict,struct mq_attr*restrict) = mq_setattr;}
{int(*p)(const char*) = mq_unlink;}
}
#include <time.h>
static void g()
{
{ssize_t(*p)(mqd_t,char*restrict,size_t,unsigned*restrict,const struct timespec*restrict) = mq_timedreceive;}
{int(*p)(mqd_t,const char*,size_t,unsigned,const struct timespec*) = mq_timedsend;}
}