Xenomai API  2.6.5
mq.h
1 #ifndef POSIX_MQ_H
2 #define POSIX_MQ_H
3 
4 #include <nucleus/queue.h>
5 #include <posix/registry.h> /* For associative lists. */
6 
7 struct pse51_mq;
8 typedef struct pse51_mq pse51_mq_t;
9 
10 typedef struct pse51_msg {
11  xnpholder_t link;
12  size_t len;
13  char data[0];
14 } pse51_msg_t;
15 
16 #define pse51_msg_get_prio(msg) (msg)->link.prio
17 #define pse51_msg_set_prio(msg, prio) (msg)->link.prio = (prio)
18 
19 pse51_msg_t *pse51_mq_timedsend_inner(pse51_mq_t **mqp, mqd_t fd, size_t len,
20  const struct timespec *abs_timeoutp);
21 
22 int pse51_mq_finish_send(mqd_t fd, pse51_mq_t *mq, pse51_msg_t *msg);
23 
24 pse51_msg_t *pse51_mq_timedrcv_inner(pse51_mq_t **mqp, mqd_t fd, size_t len,
25  const struct timespec *abs_timeoutp);
26 
27 int pse51_mq_finish_rcv(mqd_t fd, pse51_mq_t *mq, pse51_msg_t *msg);
28 
29 #ifdef CONFIG_XENO_OPT_PERVASIVE
30 
31 void pse51_mq_uqds_cleanup(pse51_queues_t *q);
32 
33 #endif /* CONFIG_XENO_OPT_PERVASIVE */
34 
35 int pse51_mq_pkg_init(void);
36 
37 void pse51_mq_pkg_cleanup(void);
38 
39 #endif /* POSIX_MQ_H */