1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 #ifndef _SVR4_IPC_H_
34 #define _SVR4_IPC_H_
35
36
37
38
39 #define SVR4_IPC_RMID 10
40 #define SVR4_IPC_SET 11
41 #define SVR4_IPC_STAT 12
42
43 struct svr4_ipc_perm {
44 svr4_uid_t uid;
45 svr4_gid_t gid;
46 svr4_uid_t cuid;
47 svr4_gid_t cgid;
48 svr4_mode_t mode;
49 u_long seq;
50 svr4_key_t key;
51 long pad[4];
52 };
53
54
55
56
57 #define SVR4_msgget 0
58 #define SVR4_msgctl 1
59 #define SVR4_msgrcv 2
60 #define SVR4_msgsnd 3
61
62 struct svr4_msg {
63 struct svr4_msg *msg_next;
64 long msg_type;
65 u_short msg_ts;
66 short msg_spot;
67 };
68
69 struct svr4_msqid_ds {
70 struct svr4_ipc_perm msg_perm;
71 struct svr4_msg *msg_first;
72 struct svr4_msg *msg_last;
73 u_long msg_cbytes;
74 u_long msg_qnum;
75 u_long msg_qbytes;
76 svr4_pid_t msg_lspid;
77 svr4_pid_t msg_lrpid;
78 svr4_time_t msg_stime;
79 long msg_pad1;
80 svr4_time_t msg_rtime;
81 long msg_pad2;
82 svr4_time_t msg_ctime;
83 long msg_pad3;
84 short msg_cv;
85 short msg_qnum_cv;
86 long msg_pad4[3];
87 };
88
89 struct svr4_msgbuf {
90 long mtype;
91 char mtext[1];
92 };
93
94 struct svr4_msginfo {
95 int msgmap;
96 int msgmax;
97 int msgmnb;
98 int msgmni;
99 int msgssz;
100 int msgtql;
101 u_short msgseg;
102 };
103
104
105
106
107 #define SVR4_shmat 0
108 #define SVR4_shmctl 1
109 #define SVR4_shmdt 2
110 #define SVR4_shmget 3
111
112
113 #define SVR4_SHM_LOCK 3
114 #define SVR4_SHM_UNLOCK 4
115
116 struct svr4_shmid_ds {
117 struct svr4_ipc_perm shm_perm;
118 int shm_segsz;
119 void *shm_amp;
120 u_short shm_lkcnt;
121 svr4_pid_t shm_lpid;
122 svr4_pid_t shm_cpid;
123 u_long shm_nattch;
124 u_long shm_cnattch;
125 svr4_time_t shm_atime;
126 long shm_pad1;
127 svr4_time_t shm_dtime;
128 long shm_pad2;
129 svr4_time_t shm_ctime;
130 long shm_pad3;
131 long shm_pad4[4];
132 };
133
134
135
136
137 #define SVR4_semctl 0
138 #define SVR4_semget 1
139 #define SVR4_semop 2
140
141
142 #define SVR4_SEM_GETNCNT 3
143 #define SVR4_SEM_GETPID 4
144 #define SVR4_SEM_GETVAL 5
145 #define SVR4_SEM_GETALL 6
146 #define SVR4_SEM_GETZCNT 7
147 #define SVR4_SEM_SETVAL 8
148 #define SVR4_SEM_SETALL 9
149
150 struct svr4_sem {
151 u_short semval;
152 svr4_pid_t sempid;
153 u_short semncnt;
154 u_short semzcnt;
155 u_short semncnt_cv;
156 u_short semzcnt_cv;
157 };
158
159 struct svr4_semid_ds {
160 struct svr4_ipc_perm sem_perm;
161 struct svr4_sem *sem_base;
162 u_short sem_nsems;
163 svr4_time_t sem_otime;
164 long sem_pad1;
165 svr4_time_t sem_ctime;
166 long sem_pad2;
167 long sem_pad3[4];
168 };
169
170 struct svr4_sembuf {
171 u_short sem_num;
172 short sem_op;
173 short sem_flg;
174 };
175
176 #endif