Sync usage with man page.
[netbsd-mini2440.git] / sys / compat / svr4 / svr4_ipc.h
blob3c88ddfbd79cdfeaa4f1f2aa3c0e1d198890b45a
1 /* $NetBSD: svr4_ipc.h,v 1.4 2005/12/11 12:20:26 christos Exp $ */
3 /*-
4 * Copyright (c) 1995 The NetBSD Foundation, Inc.
5 * All rights reserved.
7 * This code is derived from software contributed to The NetBSD Foundation
8 * by Christos Zoulas.
10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions
12 * are met:
13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer.
15 * 2. Redistributions in binary form must reproduce the above copyright
16 * notice, this list of conditions and the following disclaimer in the
17 * documentation and/or other materials provided with the distribution.
19 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
20 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
21 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
23 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29 * POSSIBILITY OF SUCH DAMAGE.
32 #ifndef _SVR4_IPC_H_
33 #define _SVR4_IPC_H_
36 * General IPC
38 #define SVR4_IPC_RMID 10
39 #define SVR4_IPC_SET 11
40 #define SVR4_IPC_STAT 12
42 struct svr4_ipc_perm {
43 svr4_uid_t uid;
44 svr4_gid_t gid;
45 svr4_uid_t cuid;
46 svr4_gid_t cgid;
47 svr4_mode_t mode;
48 u_long seq;
49 svr4_key_t key;
50 long pad[4];
54 * Message queues
56 #define SVR4_msgget 0
57 #define SVR4_msgctl 1
58 #define SVR4_msgrcv 2
59 #define SVR4_msgsnd 3
61 struct svr4_msg {
62 struct svr4_msg *msg_next;
63 long msg_type;
64 u_short msg_ts;
65 short msg_spot;
68 struct svr4_msqid_ds {
69 struct svr4_ipc_perm msg_perm;
70 struct svr4_msg *msg_first;
71 struct svr4_msg *msg_last;
72 u_long msg_cbytes;
73 u_long msg_qnum;
74 u_long msg_qbytes;
75 svr4_pid_t msg_lspid;
76 svr4_pid_t msg_lrpid;
77 svr4_time_t msg_stime;
78 long msg_pad1;
79 svr4_time_t msg_rtime;
80 long msg_pad2;
81 svr4_time_t msg_ctime;
82 long msg_pad3;
83 short msg_cv;
84 short msg_qnum_cv;
85 long msg_pad4[3];
88 struct svr4_msgbuf {
89 long mtype; /* message type */
90 char mtext[1]; /* message text */
93 struct svr4_msginfo {
94 int msgmap;
95 int msgmax;
96 int msgmnb;
97 int msgmni;
98 int msgssz;
99 int msgtql;
100 u_short msgseg;
104 * Shared memory
106 #define SVR4_shmat 0
107 #define SVR4_shmctl 1
108 #define SVR4_shmdt 2
109 #define SVR4_shmget 3
111 /* shmctl() operations */
112 #define SVR4_SHM_LOCK 3
113 #define SVR4_SHM_UNLOCK 4
115 struct svr4_shmid_ds {
116 struct svr4_ipc_perm shm_perm;
117 int shm_segsz;
118 void *shm_amp;
119 u_short shm_lkcnt;
120 svr4_pid_t shm_lpid;
121 svr4_pid_t shm_cpid;
122 u_long shm_nattch;
123 u_long shm_cnattch;
124 svr4_time_t shm_atime;
125 long shm_pad1;
126 svr4_time_t shm_dtime;
127 long shm_pad2;
128 svr4_time_t shm_ctime;
129 long shm_pad3;
130 long shm_pad4[4];
134 * Semaphores
136 #define SVR4_semctl 0
137 #define SVR4_semget 1
138 #define SVR4_semop 2
140 /* semctl() operations */
141 #define SVR4_SEM_GETNCNT 3
142 #define SVR4_SEM_GETPID 4
143 #define SVR4_SEM_GETVAL 5
144 #define SVR4_SEM_GETALL 6
145 #define SVR4_SEM_GETZCNT 7
146 #define SVR4_SEM_SETVAL 8
147 #define SVR4_SEM_SETALL 9
149 struct svr4_sem {
150 u_short semval;
151 svr4_pid_t sempid;
152 u_short semncnt;
153 u_short semzcnt;
154 u_short semncnt_cv;
155 u_short semzcnt_cv;
158 struct svr4_semid_ds {
159 struct svr4_ipc_perm sem_perm;
160 struct svr4_sem *sem_base;
161 u_short sem_nsems;
162 svr4_time_t sem_otime;
163 long sem_pad1;
164 svr4_time_t sem_ctime;
165 long sem_pad2;
166 long sem_pad3[4];
169 struct svr4_sembuf {
170 u_short sem_num;
171 short sem_op;
172 short sem_flg;
175 #endif /* _SVR4_IPC_H */