1#include "options.h" 2#ifdef POSIX_MESSAGE_PASSING 3#include <mqueue.h> 4#define T(t) (t*)0; 5#define F(t,n) {t *y = &x.n;} 6static void f() 7{ 8T(mqd_t) 9T(pthread_attr_t) 10T(size_t) 11T(ssize_t) 12T(struct timespec) 13T(struct sigevent) 14{ 15struct mq_attr x; 16F(long, mq_flags) 17F(long, mq_maxmsg) 18F(long, mq_msgsize) 19F(long, mq_curmsgs) 20} 21{int(*p)(mqd_t) = mq_close;} 22{int(*p)(mqd_t,struct mq_attr*) = mq_getattr;} 23{int(*p)(mqd_t,const struct sigevent*) = mq_notify;} 24{mqd_t(*p)(const char*,int,...) = mq_open;} 25{ssize_t(*p)(mqd_t,char*,size_t,unsigned*) = mq_receive;} 26{int(*p)(mqd_t,const char*,size_t,unsigned) = mq_send;} 27{int(*p)(mqd_t,const struct mq_attr*restrict,struct mq_attr*restrict) = mq_setattr;} 28{int(*p)(const char*) = mq_unlink;} 29} 30#include <time.h> 31static void g() 32{ 33{ssize_t(*p)(mqd_t,char*restrict,size_t,unsigned*restrict,const struct timespec*restrict) = mq_timedreceive;} 34{int(*p)(mqd_t,const char*,size_t,unsigned,const struct timespec*) = mq_timedsend;} 35} 36#endif 37 38