12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- #ifndef _LINUX_MSG_H
- #define _LINUX_MSG_H
- #include <linux/list.h>
- #include <uapi/linux/msg.h>
- /* one msg_msg structure for each message */
- struct msg_msg {
- struct list_head m_list;
- long m_type;
- size_t m_ts; /* message text size */
- struct msg_msgseg *next;
- 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;
- time_t q_stime; /* last msgsnd time */
- time_t q_rtime; /* last msgrcv time */
- time_t q_ctime; /* last change time */
- 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;
- };
- /* Helper routines for sys_msgsnd and sys_msgrcv */
- extern long do_msgsnd(int msqid, long mtype, void __user *mtext,
- size_t msgsz, int msgflg);
- extern long do_msgrcv(int msqid, void __user *buf, size_t bufsz, long msgtyp,
- int msgflg,
- long (*msg_fill)(void __user *, struct msg_msg *,
- size_t));
- #endif /* _LINUX_MSG_H */
|