Merge branch 'sched/urgent' into sched/core
[platform/adaptation/renesas_rcar/renesas_kernel.git] / include / linux / msg.h
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 {
19         struct kern_ipc_perm q_perm;
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
29         struct list_head q_messages;
30         struct list_head q_receivers;
31         struct list_head q_senders;
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, void __user *buf, size_t bufsz, long msgtyp,
38                       int msgflg,
39                       long (*msg_fill)(void __user *, struct msg_msg *,
40                                        size_t));
41
42 #endif /* _LINUX_MSG_H */