Resuscitate POSIX subsystem from revision 21378.
[reactos.git] / rossubsys / posix / include / sys / msg.h
diff --git a/rossubsys/posix/include/sys/msg.h b/rossubsys/posix/include/sys/msg.h
new file mode 100644 (file)
index 0000000..1bc5a28
--- /dev/null
@@ -0,0 +1,64 @@
+/* $Id: msg.h,v 1.5 2002/10/29 04:45:21 rex Exp $
+ */
+/*
+ * sys/msg.h
+ *
+ * message queue structures. Conforming to the Single UNIX(r) Specification
+ * Version 2, System Interface & Headers Issue 5
+ *
+ * This file is part of the ReactOS Operating System.
+ *
+ * Contributors:
+ *  Created by KJK::Hyperion <noog@libero.it>
+ *
+ *  THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ *  This source code is offered for use in the public domain. You may
+ *  use, modify or distribute it freely.
+ *
+ *  This code is distributed in the hope that it will be useful but
+ *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ *  DISCLAMED. This includes but is not limited to warranties of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+#ifndef __SYS_SOCKET_H_INCLUDED__
+#define __SYS_SOCKET_H_INCLUDED__
+
+/* INCLUDES */
+#include <sys/ipc.h>
+
+/* OBJECTS */
+
+/* TYPES */
+typedef unsigned int msgqnum_t; /* Used for the number of messages in the message queue */
+typedef unsigned int msglen_t;  /* Used for the number of bytes allowed in a message queue */
+
+struct msqid_ds
+{
+ struct ipc_perm msg_perm;   /* operation permission structure */
+ msgqnum_t       msg_qnum;   /* number of messages currently on queue */
+ msglen_t        msg_qbytes; /* maximum number of bytes allowed on queue */
+ pid_t           msg_lspid;  /* process ID of last msgsnd() */
+ pid_t           msg_lrpid;  /* process ID of last msgrcv() */
+ time_t          msg_stime;  /* time of last msgsnd() */
+ time_t          msg_rtime;  /* time of last msgrcv() */
+ time_t          msg_ctime;  /* time of last change */
+};
+
+/* CONSTANTS */
+/* Message operation flag */
+#define MSG_NOERROR (0x00001000) /* No error if big message */
+
+/* PROTOTYPES */
+int       msgctl(int, int, struct msqid_ds *);
+int       msgget(key_t, int);
+ssize_t   msgrcv(int, void *, size_t, long int, int);
+int       msgsnd(int, const void *, size_t, int);
+
+/* MACROS */
+
+#endif /* __SYS_SOCKET_H_INCLUDED__ */
+
+/* EOF */
+