Xenomai API
2.5.6.1
|
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 */