xref: /linux/include/linux/msg.h (revision 70a02f840c5113cd9255ce4c1b1848bb48b0bd21)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _LINUX_MSG_H
3 #define _LINUX_MSG_H
4 
5 #include <linux/list.h>
6 #include <linux/time64.h>
7 #include <uapi/linux/msg.h>
8 
9 /* one msg_msg structure for each message */
10 struct msg_msg {
11 	struct list_head m_list;
12 	long m_type;
13 	size_t m_ts;		/* message text size */
14 	struct msg_msgseg *next;
15 	void *security;
16 	/* the actual message follows immediately */
17 };
18 
19 /* one msq_queue structure for each present queue on the system */
20 struct msg_queue {
21 	struct kern_ipc_perm q_perm;
22 	time64_t q_stime;		/* last msgsnd time */
23 	time64_t q_rtime;		/* last msgrcv time */
24 	time64_t q_ctime;		/* last change time */
25 	unsigned long q_cbytes;		/* current number of bytes on queue */
26 	unsigned long q_qnum;		/* number of messages in queue */
27 	unsigned long q_qbytes;		/* max number of bytes on queue */
28 	pid_t q_lspid;			/* pid of last msgsnd */
29 	pid_t q_lrpid;			/* last receive pid */
30 
31 	struct list_head q_messages;
32 	struct list_head q_receivers;
33 	struct list_head q_senders;
34 } __randomize_layout;
35 
36 #endif /* _LINUX_MSG_H */
37