Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
msg.h
Go to the documentation of this file.
1 #ifndef _LINUX_MSG_H
2 #define _LINUX_MSG_H
3 
4 #include <linux/list.h>
5 #include <uapi/linux/msg.h>
6 
7 /* one msg_msg structure for each message */
8 struct msg_msg {
9  struct list_head m_list;
10  long m_type;
11  int m_ts; /* message text size */
12  struct msg_msgseg* next;
13  void *security;
14  /* the actual message follows immediately */
15 };
16 
17 /* one msq_queue structure for each present queue on the system */
18 struct msg_queue {
20  time_t q_stime; /* last msgsnd time */
21  time_t q_rtime; /* last msgrcv time */
22  time_t q_ctime; /* last change time */
23  unsigned long q_cbytes; /* current number of bytes on queue */
24  unsigned long q_qnum; /* number of messages in queue */
25  unsigned long q_qbytes; /* max number of bytes on queue */
26  pid_t q_lspid; /* pid of last msgsnd */
27  pid_t q_lrpid; /* last receive pid */
28 
32 };
33 
34 /* Helper routines for sys_msgsnd and sys_msgrcv */
35 extern long do_msgsnd(int msqid, long mtype, void __user *mtext,
36  size_t msgsz, int msgflg);
37 extern long do_msgrcv(int msqid, long *pmtype, void __user *mtext,
38  size_t msgsz, long msgtyp, int msgflg);
39 
40 #endif /* _LINUX_MSG_H */