/* $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 * * 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 */