Xenomai API  2.5.6.1
ksrc/skins/posix/mq.h
00001 #ifndef POSIX_MQ_H
00002 #define POSIX_MQ_H
00003 
00004 #include <nucleus/queue.h>
00005 #include <posix/registry.h>     /* For associative lists. */
00006 
00007 struct pse51_mq;
00008 typedef struct pse51_mq pse51_mq_t;
00009 
00010 typedef struct pse51_msg {
00011         xnpholder_t link;
00012         size_t len;
00013         char data[0];
00014 } pse51_msg_t;
00015 
00016 #define pse51_msg_get_prio(msg) (msg)->link.prio
00017 #define pse51_msg_set_prio(msg, prio) (msg)->link.prio = (prio)
00018 
00019 pse51_msg_t *pse51_mq_timedsend_inner(pse51_mq_t **mqp, mqd_t fd, size_t len,
00020                                       const struct timespec *abs_timeoutp);
00021 
00022 int pse51_mq_finish_send(mqd_t fd, pse51_mq_t *mq, pse51_msg_t *msg);
00023 
00024 pse51_msg_t *pse51_mq_timedrcv_inner(pse51_mq_t **mqp, mqd_t fd, size_t len,
00025                                      const struct timespec *abs_timeoutp);
00026 
00027 int pse51_mq_finish_rcv(mqd_t fd, pse51_mq_t *mq, pse51_msg_t *msg);
00028 
00029 #ifdef CONFIG_XENO_OPT_PERVASIVE
00030 
00031 void pse51_mq_uqds_cleanup(pse51_queues_t *q);
00032 
00033 #endif /* CONFIG_XENO_OPT_PERVASIVE */
00034 
00035 int pse51_mq_pkg_init(void);
00036 
00037 void pse51_mq_pkg_cleanup(void);
00038 
00039 #endif /* POSIX_MQ_H */
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines