]> git.ipfire.org Git - thirdparty/glibc.git/blame - sysdeps/unix/sysv/linux/powerpc/bits/ipc.h
Update.
[thirdparty/glibc.git] / sysdeps / unix / sysv / linux / powerpc / bits / ipc.h
CommitLineData
f304af81
UD
1/* Copyright (C) 1995, 1996, 1997, 1998 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 Library General Public License as
6 published by the Free Software Foundation; either version 2 of the
7 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 Library General Public License for more details.
13
14 You should have received a copy of the GNU Library General Public
15 License along with the GNU C Library; see the file COPYING.LIB. If not,
16 write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17 Boston, MA 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 <sys/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#define IPC_INFO 3 /* See ipcs. */
35
36/* Special key values. */
37#define IPC_PRIVATE ((__key_t) 0) /* Private key. */
38
39
40/* Data structure used to pass permission information to IPC operations. */
41struct ipc_perm
42 {
43 __key_t __key; /* Key. */
44 __uid_t uid; /* Owner's user ID. */
45 __gid_t gid; /* Owner's group ID. */
46 __uid_t cuid; /* Creator's user ID. */
47 __gid_t cgid; /* Creator's group ID. */
48 __mode_t mode; /* Read/write permission. */
49 unsigned short int __seq; /* Sequence number. */
50 };
51
52
53__BEGIN_DECLS
54
55/* The actual system call: all functions are multiplexed by this. */
56extern int __ipc __P ((int __call, int __first, int __second, int __third,
57 void *__ptr));
58
59__END_DECLS
60
61/* The codes for the functions to use the multiplexer `__ipc'. */
62#define IPCOP_semop 1
63#define IPCOP_semget 2
64#define IPCOP_semctl 3
65#define IPCOP_msgsnd 11
66#define IPCOP_msgrcv 12
67#define IPCOP_msgget 13
68#define IPCOP_msgctl 14
69#define IPCOP_shmat 21
70#define IPCOP_shmdt 22
71#define IPCOP_shmget 23
72#define IPCOP_shmctl 24