source: trunk/libs/newlib/src/newlib/libc/sys/linux/mqlocal.h

Last change on this file was 444, checked in by satin@…, 6 years ago

add newlib,libalmos-mkh, restructure shared_syscalls.h and mini-libc

File size: 1.4 KB
Line 
1/* local definitions needed by mq routines */
2
3#include <sys/msg.h>
4#include <signal.h>
5
6/* a message */
7typedef struct
8{
9  unsigned int type;
10  char text[1];
11} MSG; 
12
13union semun {
14  int val;
15  struct semid_ds *buf;
16  unsigned short  *array;
17} arg;
18
19/*
20 * One of these structures is malloced to describe any open message queue
21 * each time mq_open is called.
22 */
23
24struct libc_mq;
25
26struct libc_mq {
27  int              index;          /* index of this message queue */
28  int              msgqid;         /* value returned by msgget */
29  int              semid;          /* semaphore id */
30  int              fd;             /* fd of shared memory file */
31  int              oflag;          /* original open flag used */
32  int              th;             /* thread id for mq_notify */
33  char            *name;           /* name used */
34  MSG             *wrbuf;          /* msg write buffer */
35  MSG             *rdbuf;          /* msg read buffer */
36  struct mq_attr  *attr;           /* pointer to attribute structure */
37  struct sigevent *sigevent;       /* used for mq_notify */
38  void (*cleanup_notify)(struct libc_mq *); /* also used for mq_notify */
39  struct libc_mq  *next;           /* next info struct in hash table */
40};
41
42extern struct libc_mq *__find_mq (mqd_t mq);
43extern void __cleanup_mq (mqd_t mq);
44extern void __cleanup_mq_notify (struct libc_mq *ptr);
45
46#define MSGQ_PREFIX "/dev/shm/__MSGQ__"
47
Note: See TracBrowser for help on using the repository browser.