xref: /linux-6.15/include/linux/msg.h (revision 9d64fc08)
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 */
36