2017-11-01 15:07:57 +01:00
|
|
|
/* SPDX-License-Identifier: GPL-2.0 */
|
2005-04-16 15:20:36 -07:00
|
|
|
#ifndef _LINUX_MSG_H
|
|
|
|
|
#define _LINUX_MSG_H
|
|
|
|
|
|
2006-04-25 14:26:46 +01:00
|
|
|
#include <linux/list.h>
|
2017-08-02 19:51:12 -07:00
|
|
|
#include <linux/time64.h>
|
2012-10-13 10:46:48 +01:00
|
|
|
#include <uapi/linux/msg.h>
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
/* one msg_msg structure for each message */
|
|
|
|
|
struct msg_msg {
|
2013-11-12 15:11:47 -08:00
|
|
|
struct list_head m_list;
|
|
|
|
|
long m_type;
|
|
|
|
|
size_t m_ts; /* message text size */
|
2014-01-27 17:07:04 -08:00
|
|
|
struct msg_msgseg *next;
|
2005-04-16 15:20:36 -07:00
|
|
|
void *security;
|
|
|
|
|
/* the actual message follows immediately */
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/* one msq_queue structure for each present queue on the system */
|
|
|
|
|
struct msg_queue {
|
|
|
|
|
struct kern_ipc_perm q_perm;
|
2017-08-02 19:51:12 -07:00
|
|
|
time64_t q_stime; /* last msgsnd time */
|
|
|
|
|
time64_t q_rtime; /* last msgrcv time */
|
|
|
|
|
time64_t q_ctime; /* last change time */
|
2005-04-16 15:20:36 -07:00
|
|
|
unsigned long q_cbytes; /* current number of bytes on queue */
|
|
|
|
|
unsigned long q_qnum; /* number of messages in queue */
|
|
|
|
|
unsigned long q_qbytes; /* max number of bytes on queue */
|
|
|
|
|
pid_t q_lspid; /* pid of last msgsnd */
|
|
|
|
|
pid_t q_lrpid; /* last receive pid */
|
|
|
|
|
|
|
|
|
|
struct list_head q_messages;
|
|
|
|
|
struct list_head q_receivers;
|
|
|
|
|
struct list_head q_senders;
|
2016-10-28 01:22:25 -07:00
|
|
|
} __randomize_layout;
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
#endif /* _LINUX_MSG_H */
|