This source file includes following definitions.
- compat_10_sys_semsys
- compat_10_sys_shmsys
- compat_10_sys_msgsys
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
34 #include <sys/param.h>
35 #include <sys/systm.h>
36 #include <sys/kernel.h>
37 #include <sys/proc.h>
38 #include <sys/sem.h>
39 #include <sys/malloc.h>
40
41 #include <sys/mount.h>
42 #include <sys/syscallargs.h>
43
44 #include <uvm/uvm_extern.h>
45
46
47
48
49
50
51 #if defined(SYSVSEM) && !defined(__LP64__)
52 int
53 compat_10_sys_semsys(p, v, retval)
54 struct proc *p;
55 void *v;
56 register_t *retval;
57 {
58 struct compat_10_sys_semsys_args
59
60
61
62
63
64 *uap = v;
65 struct sys___semctl_args
66
67
68
69
70 __semctl_args;
71 struct sys_semget_args
72
73
74
75 semget_args;
76 struct sys_semop_args
77
78
79
80 semop_args;
81
82 switch (SCARG(uap, which)) {
83 case 0:
84 SCARG(&__semctl_args, semid) = SCARG(uap, a2);
85 SCARG(&__semctl_args, semnum) = SCARG(uap, a3);
86 SCARG(&__semctl_args, cmd) = SCARG(uap, a4);
87 SCARG(&__semctl_args, arg) = (union semun *)SCARG(uap, a5);
88 return (sys___semctl(p, &__semctl_args, retval));
89
90 case 1:
91 SCARG(&semget_args, key) = SCARG(uap, a2);
92 SCARG(&semget_args, nsems) = SCARG(uap, a3);
93 SCARG(&semget_args, semflg) = SCARG(uap, a4);
94 return (sys_semget(p, &semget_args, retval));
95
96 case 2:
97 SCARG(&semop_args, semid) = SCARG(uap, a2);
98 SCARG(&semop_args, sops) = (struct sembuf *)SCARG(uap, a3);
99 SCARG(&semop_args, nsops) = SCARG(uap, a4);
100 return (sys_semop(p, &semop_args, retval));
101
102 default:
103 return (EINVAL);
104 }
105 }
106
107 int
108 compat_10_sys_shmsys(p, v, retval)
109 struct proc *p;
110 void *v;
111 register_t *retval;
112 {
113 struct compat_10_sys_shmsys_args
114
115
116
117
118 *uap = v;
119 struct sys_shmat_args
120
121
122
123 shmat_args;
124 struct sys_shmctl_args
125
126
127
128 shmctl_args;
129 struct sys_shmdt_args
130
131 shmdt_args;
132 struct sys_shmget_args
133
134
135
136 shmget_args;
137
138 switch (SCARG(uap, which)) {
139 case 0:
140 SCARG(&shmat_args, shmid) = SCARG(uap, a2);
141 SCARG(&shmat_args, shmaddr) = (void *)SCARG(uap, a3);
142 SCARG(&shmat_args, shmflg) = SCARG(uap, a4);
143 return (sys_shmat(p, &shmat_args, retval));
144
145 case 1:
146 SCARG(&shmctl_args, shmid) = SCARG(uap, a2);
147 SCARG(&shmctl_args, cmd) = SCARG(uap, a3);
148 SCARG(&shmctl_args, buf) = (struct shmid_ds *)SCARG(uap, a4);
149 return (sys_shmctl(p, &shmctl_args, retval));
150
151 case 2:
152 SCARG(&shmdt_args, shmaddr) = (void *)SCARG(uap, a2);
153 return (sys_shmdt(p, &shmdt_args, retval));
154
155 case 3:
156 SCARG(&shmget_args, key) = SCARG(uap, a2);
157 SCARG(&shmget_args, size) = SCARG(uap, a3);
158 SCARG(&shmget_args, shmflg) = SCARG(uap, a4);
159 return (sys_shmget(p, &shmget_args, retval));
160
161 default:
162 return (EINVAL);
163 }
164 }
165
166 int
167 compat_10_sys_msgsys(p, v, retval)
168 struct proc *p;
169 void *v;
170 register_t *retval;
171 {
172 struct compat_10_sys_msgsys_args
173
174
175
176
177
178
179 *uap = v;
180 struct sys_msgctl_args
181
182
183
184 msgctl_args;
185 struct sys_msgget_args
186
187
188 msgget_args;
189 struct sys_msgsnd_args
190
191
192
193
194 msgsnd_args;
195 struct sys_msgrcv_args
196
197
198
199
200
201 msgrcv_args;
202
203 switch (SCARG(uap, which)) {
204 case 0:
205 SCARG(&msgctl_args, msqid) = SCARG(uap, a2);
206 SCARG(&msgctl_args, cmd) = SCARG(uap, a3);
207 SCARG(&msgctl_args, buf) =
208 (struct msqid_ds *)SCARG(uap, a4);
209 return (sys_msgctl(p, &msgctl_args, retval));
210
211 case 1:
212 SCARG(&msgget_args, key) = SCARG(uap, a2);
213 SCARG(&msgget_args, msgflg) = SCARG(uap, a3);
214 return (sys_msgget(p, &msgget_args, retval));
215
216 case 2:
217 SCARG(&msgsnd_args, msqid) = SCARG(uap, a2);
218 SCARG(&msgsnd_args, msgp) = (void *)SCARG(uap, a3);
219 SCARG(&msgsnd_args, msgsz) = SCARG(uap, a4);
220 SCARG(&msgsnd_args, msgflg) = SCARG(uap, a5);
221 return (sys_msgsnd(p, &msgsnd_args, retval));
222
223 case 3:
224 SCARG(&msgrcv_args, msqid) = SCARG(uap, a2);
225 SCARG(&msgrcv_args, msgp) = (void *)SCARG(uap, a3);
226 SCARG(&msgrcv_args, msgsz) = SCARG(uap, a4);
227 SCARG(&msgrcv_args, msgtyp) = SCARG(uap, a5);
228 SCARG(&msgrcv_args, msgflg) = SCARG(uap, a6);
229 return (sys_msgrcv(p, &msgrcv_args, retval));
230
231 default:
232 return (EINVAL);
233 }
234 }
235 #endif