00001 #ifndef POSIX_MQ_H
00002 #define POSIX_MQ_H
00003
00004 #include <nucleus/queue.h>
00005 #include <posix/registry.h>
00006
00007 typedef struct pse51_direct_msg {
00008 char *buf;
00009 size_t *lenp;
00010 unsigned *priop;
00011 int flags;
00012 } pse51_direct_msg_t;
00013
00014 #define PSE51_MSG_DIRECT 1
00015 #define PSE51_MSG_RESCHED 2
00016
00017 int pse51_mq_timedsend_inner(pse51_direct_msg_t *msgp, mqd_t fd,
00018 size_t len, const struct timespec *abs_timeoutp);
00019
00020 void pse51_mq_finish_send(mqd_t fd, pse51_direct_msg_t *msgp);
00021
00022 int pse51_mq_timedrcv_inner(pse51_direct_msg_t *msgp, mqd_t fd,
00023 size_t len, const struct timespec *abs_timeoutp);
00024
00025 void pse51_mq_finish_rcv(mqd_t fd, pse51_direct_msg_t *msgp);
00026
00027 #ifdef CONFIG_XENO_OPT_PERVASIVE
00028
00029 void pse51_mq_uqds_cleanup(pse51_queues_t *q);
00030
00031 #endif
00032
00033 int pse51_mq_pkg_init(void);
00034
00035 void pse51_mq_pkg_cleanup(void);
00036
00037 #endif