SysV IPC headers
[reactos.git] / posix / include / sys / shm.h
index 9e91b6a..30967a2 100644 (file)
@@ -1,6 +1,63 @@
+/* $Id: shm.h,v 1.3 2002/05/17 01:37:15 hyperion Exp $
+ */
+/*
+ * sys/shm.h
+ *
+ * shared memory facility. 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_SHM_H_INCLUDED__
 #define __SYS_SHM_H_INCLUDED__
 
+/* INCLUDES */
+
+/* OBJECTS */
+
+/* TYPES */
+typedef unsigned short shmatt_t;
+
+struct shmid_ds
+{
+ struct ipc_perm shm_perm;  /* operation permission structure */
+ size_t          shm_segsz;  /* size of segment in bytes */
+ pid_t           shm_lpid;   /* process ID of last shared memory operation */
+ pid_t           shm_cpid;   /* process ID of creator */
+ shmatt_t        shm_nattch; /* number of current attaches */
+ time_t          shm_atime;  /* time of last shmat() */
+ time_t          shm_dtime;  /* time of last shmdt() */
+ time_t          shm_ctime;  /* time of last change by shmctl() */
+};
+
+/* CONSTANTS */
+#define SHM_RDONLY (0x00000200) /* Attach read-only (else read-write). */
+#define SHM_RND    (0x00000400) /* Round attach address to SHMLBA. */
+
+#define SHMLBA     (4096) /* Segment low boundary address multiple. */
+
+/* PROTOTYPES */
+void *shmat(int, const void *, int);
+int   shmctl(int, int, struct shmid_ds *);
+int   shmdt(const void *);
+int   shmget(key_t, size_t, int);
+
+/* MACROS */
+
 #endif /* __SYS_SHM_H_INCLUDED__ */
 
 /* EOF */