Merge branch 'work.ipc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[sfrench/cifs-2.6.git] / include / linux / msg.h
1 #ifndef _LINUX_MSG_H
2 #define _LINUX_MSG_H
3
4 #include <linux/list.h>
5 #include <linux/time64.h>
6 #include <uapi/linux/msg.h>
7
8 /* one msg_msg structure for each message */
9 struct msg_msg {
10         struct list_head m_list;
11         long m_type;
12         size_t m_ts;            /* message text size */
13         struct msg_msgseg *next;
14         void *security;
15         /* the actual message follows immediately */
16 };
17
18 /* one msq_queue structure for each present queue on the system */
19 struct msg_queue {
20         struct kern_ipc_perm q_perm;
21         time64_t q_stime;               /* last msgsnd time */
22         time64_t q_rtime;               /* last msgrcv time */
23         time64_t q_ctime;               /* last change time */
24         unsigned long q_cbytes;         /* current number of bytes on queue */
25         unsigned long q_qnum;           /* number of messages in queue */
26         unsigned long q_qbytes;         /* max number of bytes on queue */
27         pid_t q_lspid;                  /* pid of last msgsnd */
28         pid_t q_lrpid;                  /* last receive pid */
29
30         struct list_head q_messages;
31         struct list_head q_receivers;
32         struct list_head q_senders;
33 } __randomize_layout;
34
35 #endif /* _LINUX_MSG_H */