OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [newlib-1.17.0/] [newlib/] [libc/] [sys/] [linux/] [mqlocal.h] - Blame information for rev 438

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 148 jeremybenn
/* local definitions needed by mq routines */
2
 
3
#include <sys/msg.h>
4
#include <signal.h>
5
 
6
/* a message */
7
typedef struct
8
{
9
  unsigned int type;
10
  char text[1];
11
} MSG;
12
 
13
union 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
 
24
struct libc_mq;
25
 
26
struct 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
 
42
extern struct libc_mq *__find_mq (mqd_t mq);
43
extern void __cleanup_mq (mqd_t mq);
44
extern void __cleanup_mq_notify (struct libc_mq *ptr);
45
 
46
#define MSGQ_PREFIX "/dev/shm/__MSGQ__"
47
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.