
1: /* Copyright (C) 1995, 1996, 1997, 1999 Free Software Foundation, Inc. 2: This file is part of the GNU C Library. 3: 4: The GNU C Library is free software; you can redistribute it and/or 5: modify it under the terms of the GNU Lesser General Public 6: License as published by the Free Software Foundation; either 7: version 2.1 of the License, or (at your option) any later version. 8: 9: The GNU C Library is distributed in the hope that it will be useful, 10: but WITHOUT ANY WARRANTY; without even the implied warranty of 11: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12: Lesser General Public License for more details. 13: 14: You should have received a copy of the GNU Lesser General Public 15: License along with the GNU C Library; if not, write to the Free 16: Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 17: 02111-1307 USA. */ 18: 19: #ifndef _SYS_IPC_H 20: # error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead." 21: #endif 22: 23: #include <bits/types.h> 24: 25: /* Mode bits for `msgget', `semget', and `shmget'. */ 26: #define IPC_CREAT 01000 /* create key if key does not exist */ 27: #define IPC_EXCL 02000 /* fail if key exists */ 28: #define IPC_NOWAIT 04000 /* return error on wait */ 29: 30: /* Control commands for `msgctl', `semctl', and `shmctl'. */ 31: #define IPC_RMID 0 /* remove identifier */ 32: #define IPC_SET 1 /* set `ipc_perm' options */ 33: #define IPC_STAT 2 /* get `ipc_perm' options */ 34: 35: /* Special key values. */ 36: #define IPC_PRIVATE ((key_t) 0) /* private key */ 37: 38: 39: /* Data structure used to pass permission information to IPC operations. */ 40: struct ipc_perm 41: { 42: __uid_t uid; /* owner's user ID */ 43: __gid_t gid; /* owner's group ID */ 44: __uid_t cuid; /* creator's user ID */ 45: __gid_t cgid; /* creator's group ID */ 46: __mode_t mode; /* read/write permission */ 47: };