1#ifndef _LINUX_MSG_H
2#define _LINUX_MSG_H
3
4#include <linux/list.h>
5#include <uapi/linux/msg.h>
6
7
8struct msg_msg {
9 struct list_head m_list;
10 long m_type;
11 size_t m_ts;
12 struct msg_msgseg *next;
13 void *security;
14
15};
16
17
18struct msg_queue {
19 struct kern_ipc_perm q_perm;
20 time_t q_stime;
21 time_t q_rtime;
22 time_t q_ctime;
23 unsigned long q_cbytes;
24 unsigned long q_qnum;
25 unsigned long q_qbytes;
26 pid_t q_lspid;
27 pid_t q_lrpid;
28
29 struct list_head q_messages;
30 struct list_head q_receivers;
31 struct list_head q_senders;
32};
33
34
35extern long do_msgsnd(int msqid, long mtype, void __user *mtext,
36 size_t msgsz, int msgflg);
37extern long do_msgrcv(int msqid, void __user *buf, size_t bufsz, long msgtyp,
38 int msgflg,
39 long (*msg_fill)(void __user *, struct msg_msg *,
40 size_t));
41
42#endif
43