Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / include / linux / msg.h
diff --git a/kernel/include/linux/msg.h b/kernel/include/linux/msg.h
new file mode 100644 (file)
index 0000000..f3f302f
--- /dev/null
@@ -0,0 +1,42 @@
+#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 */