
1: /* Copyright (C) 1995, 1996, 1997, 2000, 2002, 2004 2: Free Software Foundation, Inc. 3: This file is part of the GNU C Library. 4: 5: The GNU C Library is free software; you can redistribute it and/or 6: modify it under the terms of the GNU Lesser General Public 7: License as published by the Free Software Foundation; either 8: version 2.1 of the License, or (at your option) any later version. 9: 10: The GNU C Library is distributed in the hope that it will be useful, 11: but WITHOUT ANY WARRANTY; without even the implied warranty of 12: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13: Lesser General Public License for more details. 14: 15: You should have received a copy of the GNU Lesser General Public 16: License along with the GNU C Library; if not, write to the Free 17: Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 18: 02111-1307 USA. */ 19: 20: #ifndef _SYS_SHM_H 21: # error "Never include <bits/shm.h> directly; use <sys/shm.h> instead." 22: #endif 23: 24: #include <bits/types.h> 25: 26: /* Flags for `shmat'. */ 27: #define SHM_RDONLY 010000 /* attach read-only else read-write */ 28: #define SHM_RND 020000 /* round attach address to SHMLBA */ 29: #define SHM_REMAP 040000 /* take-over region on attach */ 30: 31: /* Commands for `shmctl'. */ 32: #define SHM_LOCK 11 /* lock segment (root only) */ 33: #define SHM_UNLOCK 12 /* unlock segment (root only) */ 34: 35: __BEGIN_DECLS 36: 37: /* Segment low boundary address multiple. */ 38: #define SHMLBA (__getpagesize ()) 39: extern int __getpagesize (void) __THROW __attribute__ ((__const__)); 40: 41: 42: /* Type to count number of attaches. */ 43: typedef unsigned short int shmatt_t; 44: 45: /* Data structure describing a set of semaphores. */ 46: struct shmid_ds 47: { 48: struct ipc_perm shm_perm; /* operation permission struct */ 49: int shm_segsz; /* size of segment in bytes */ 50: __time_t shm_atime; /* time of last shmat() */ 51: __time_t shm_dtime; /* time of last shmdt() */ 52: __time_t shm_ctime; /* time of last change by shmctl() */ 53: __pid_t shm_cpid; /* pid of creator */ 54: __pid_t shm_lpid; /* pid of last shmop */ 55: shmatt_t shm_nattch; /* number of current attaches */ 56: }; 57: 58: __END_DECLS