2 * Copyright (c) 2000 Marcel Moolenaar
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer
10 * in this position and unchanged.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 * 3. The name of the author may not be used to endorse or promote products
15 * derived from this software without specific prior written permission.
17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35 * Version flags for semctl, msgctl, and shmctl commands
36 * These are passed as bitflags or-ed with the actual command
38 #define LINUX_IPC_OLD 0 /* Old version (no 32-bit UID support on many
40 #define LINUX_IPC_64 0x0100 /* New version (support 32-bit UIDs, bigger
41 message sizes, etc. */
43 #if defined(__i386__) || defined(__amd64__)
45 struct linux_msgctl_args
49 struct l_msqid_ds *buf;
52 struct linux_msgget_args
58 struct linux_msgrcv_args
61 struct l_msgbuf *msgp;
67 struct linux_msgsnd_args
70 struct l_msgbuf *msgp;
75 struct linux_semctl_args
83 struct linux_semget_args
90 struct linux_semop_args
93 struct l_sembuf *tsops;
97 struct linux_shmat_args
105 struct linux_shmctl_args
109 struct l_shmid_ds *buf;
112 struct linux_shmdt_args
117 struct linux_shmget_args
124 int linux_msgctl(struct thread *, struct linux_msgctl_args *);
125 int linux_msgget(struct thread *, struct linux_msgget_args *);
126 int linux_msgrcv(struct thread *, struct linux_msgrcv_args *);
127 int linux_msgsnd(struct thread *, struct linux_msgsnd_args *);
129 int linux_semctl(struct thread *, struct linux_semctl_args *);
130 int linux_semget(struct thread *, struct linux_semget_args *);
131 int linux_semop(struct thread *, struct linux_semop_args *);
133 int linux_shmat(struct thread *, struct linux_shmat_args *);
134 int linux_shmctl(struct thread *, struct linux_shmctl_args *);
135 int linux_shmdt(struct thread *, struct linux_shmdt_args *);
136 int linux_shmget(struct thread *, struct linux_shmget_args *);
138 #define LINUX_MSG_INFO 12
140 #endif /* __i386__ || __amd64__ */
142 #endif /* _LINUX_IPC_H_ */