1 /* Basic syscall test, see memcheck/tests/x86-linux/scalar.c for more info. */
2
3 #include "scalar.h"
4 #include "config.h"
5
6 #include <bsm/audit.h>
7 #include <nfs/nfs.h>
8 #include <nfs/nfssys.h>
9 #include <sys/acl.h>
10 #include <sys/door.h>
11 #include <sys/fcntl.h>
12 #include <sys/fstyp.h>
13 #include <sys/lgrp_user.h>
14 #if defined(HAVE_SYS_LGRP_USER_IMPL_H)
15 #include <sys/lgrp_user_impl.h>
16 #endif /* HAVE_SYS_LGRP_USER_IMPL_H */
17 #include <sys/mman.h>
18 #include <sys/modctl.h>
19 #include <sys/mount.h>
20 #include <sys/port_impl.h>
21 #include <sys/priocntl.h>
22 #include <sys/priv.h>
23 #include <sys/sem_impl.h>
24 #include <sys/sendfile.h>
25 #include <sys/shm_impl.h>
26 #include <sys/termios.h>
27 #include <sys/ucontext.h>
28 #include <sys/utsname.h>
29 #include <sys/tsol/tndb.h>
30 #include <sys/tsol/tsyscall.h>
31
32 /* Helper functions. These are necessary if we've got two tests for a single
33 syscall. In that case, Memcheck can sometimes merge error messages. Doing
34 each test in its own function prevents that. */
35 __attribute__((noinline))
sys_mount(void)36 static void sys_mount(void)
37 {
38 GO(SYS_mount, "(4-arg, table variant) 4s 2m");
39 SY(SYS_mount, x0 + 1, x0, x0, x0); FAIL;
40 }
41
42 __attribute__((noinline))
sys_mount2(void)43 static void sys_mount2(void)
44 {
45 GO(SYS_mount, "(4-arg) 4s 3m");
46 SY(SYS_mount, x0 + 1, x0, x0, x0 + 256); FAIL;
47 }
48
49 __attribute__((noinline))
sys_mount3(void)50 static void sys_mount3(void)
51 {
52 GO(SYS_mount, "(6-arg) 6s 4m");
53 SY(SYS_mount, x0 + 1, x0, x0 | MS_DATA, x0 + 256, x0 + 1, x0 + 1); FAIL;
54 }
55
56 __attribute__((noinline))
sys_mount4(void)57 static void sys_mount4(void)
58 {
59 GO(SYS_mount, "(8-arg) 8s 5m");
60 SY(SYS_mount, x0 + 1, x0, x0 | MS_OPTIONSTR, x0 + 256, x0 + 1, x0 + 1,
61 x0 + 1, x0 + 1); FAIL;
62 }
63
64 __attribute__((noinline))
sys_pgrpsys(void)65 static void sys_pgrpsys(void)
66 {
67 GO(SYS_pgrpsys, "(GETPGRP) 1s 0m");
68 SY(SYS_pgrpsys, x0); SUCC;
69 }
70
71 __attribute__((noinline))
sys_pgrpsys2(void)72 static void sys_pgrpsys2(void)
73 {
74 GO(SYS_pgrpsys, "(GETSID) 2s 0m");
75 SY(SYS_pgrpsys, x0 + 2, x0); SUCC;
76 }
77
78 __attribute__((noinline))
sys_pgrpsys3(void)79 static void sys_pgrpsys3(void)
80 {
81 GO(SYS_pgrpsys, "(GETPGID) 2s 0m");
82 SY(SYS_pgrpsys, x0 + 4, x0); SUCC;
83 }
84
85 __attribute__((noinline))
sys_shmsys(void)86 static void sys_shmsys(void)
87 {
88 GO(SYS_shmsys, "(SHMAT) 4s 0m");
89 SY(SYS_shmsys, x0 + SHMAT, x0, x0 - 1, x0); FAIL;
90 }
91
92 __attribute__((noinline))
sys_shmsys2(void)93 static void sys_shmsys2(void)
94 {
95 GO(SYS_shmsys, "(SHMCTL,SHM_LOCK) 3s 0m");
96 SY(SYS_shmsys, x0 + SHMCTL, x0, x0 + SHM_LOCK); FAIL;
97 }
98
99 __attribute__((noinline))
sys_shmsys3(void)100 static void sys_shmsys3(void)
101 {
102 GO(SYS_shmsys, "(SHMCTL,SHM_UNLOCK) 3s 0m");
103 SY(SYS_shmsys, x0 + SHMCTL, x0, x0 + SHM_UNLOCK); FAIL;
104 }
105
106 __attribute__((noinline))
sys_shmsys4(void)107 static void sys_shmsys4(void)
108 {
109 GO(SYS_shmsys, "(SHMCTL,IPC_RMID) 3s 0m");
110 SY(SYS_shmsys, x0 + SHMCTL, x0, x0 + IPC_RMID); FAIL;
111 }
112
113 __attribute__((noinline))
sys_shmsys5(void)114 static void sys_shmsys5(void)
115 {
116 GO(SYS_shmsys, "(SHMCTL,IPC_SET) 4s 3m");
117 SY(SYS_shmsys, x0 + SHMCTL, x0, x0 + IPC_SET, x0 + 1); FAIL;
118 }
119
120 __attribute__((noinline))
sys_shmsys6(void)121 static void sys_shmsys6(void)
122 {
123 struct shmid_ds buf;
124 buf.shm_perm.uid = x0 + 1;
125 buf.shm_perm.gid = x0 + 1;
126 buf.shm_perm.mode = x0 + 1;
127
128 GO(SYS_shmsys, "(SHMCTL,IPC_SET) 6s 0m");
129 SY(SYS_shmsys, x0 + SHMCTL, x0, x0 + IPC_SET, &buf); FAIL;
130 }
131
132 __attribute__((noinline))
sys_shmsys7(void)133 static void sys_shmsys7(void)
134 {
135 GO(SYS_shmsys, "(SHMCTL,IPC_STAT) 4s 1m");
136 SY(SYS_shmsys, x0 + SHMCTL, x0, x0 + IPC_STAT, x0 + 1); FAIL;
137 }
138
139 __attribute__((noinline))
sys_shmsys8(void)140 static void sys_shmsys8(void)
141 {
142 GO(SYS_shmsys, "(SHMCTL,IPC_SET64) 4s 3m");
143 SY(SYS_shmsys, x0 + SHMCTL, x0, x0 + IPC_SET64, x0 + 1); FAIL;
144 }
145
146 __attribute__((noinline))
sys_shmsys9(void)147 static void sys_shmsys9(void)
148 {
149 struct shmid_ds64 buf;
150 buf.shmx_perm.ipcx_uid = x0 + 1;
151 buf.shmx_perm.ipcx_gid = x0 + 1;
152 buf.shmx_perm.ipcx_mode = x0 + 1;
153
154 GO(SYS_shmsys, "(SHMCTL,IPC_SET64) 6s 0m");
155 SY(SYS_shmsys, x0 + SHMCTL, x0, x0 + IPC_SET64, &buf); FAIL;
156 }
157
158 __attribute__((noinline))
sys_shmsys10(void)159 static void sys_shmsys10(void)
160 {
161 GO(SYS_shmsys, "(SHMCTL,IPC_STAT64) 4s 1m");
162 SY(SYS_shmsys, x0 + SHMCTL, x0, x0 + IPC_STAT64, x0 + 1); FAIL;
163 }
164
165 __attribute__((noinline))
sys_shmsys11(void)166 static void sys_shmsys11(void)
167 {
168 GO(SYS_shmsys, "(SHMDT) 2s 0m");
169 SY(SYS_shmsys, x0 + SHMDT, x0 - 1); FAIL;
170 }
171
172 __attribute__((noinline))
sys_shmsys12(void)173 static void sys_shmsys12(void)
174 {
175 GO(SYS_shmsys, "(SHMGET) 4s 0m");
176 SY(SYS_shmsys, x0 + SHMGET, x0, x0, x0); FAIL;
177 }
178
179 __attribute__((noinline))
sys_shmsys13(void)180 static void sys_shmsys13(void)
181 {
182 GO(SYS_shmsys, "(SHMIDS) 4s 2m");
183 SY(SYS_shmsys, x0 + SHMIDS, x0 + 1, x0 + 1, x0 + 1); FAIL;
184 }
185
186 __attribute__((noinline))
sys_semsys(void)187 static void sys_semsys(void)
188 {
189 GO(SYS_semsys, "(SEMCTL,IPC_STAT) 5s 1m");
190 SY(SYS_semsys, x0 + SEMCTL, x0, x0, x0 + IPC_STAT, x0 + 1); FAIL;
191 }
192
193 __attribute__((noinline))
sys_semsys2(void)194 static void sys_semsys2(void)
195 {
196 GO(SYS_semsys, "(SEMCTL,IPC_SET) 5s 1m");
197 SY(SYS_semsys, x0 + SEMCTL, x0, x0, x0 + IPC_SET, x0 + 1); FAIL;
198 }
199
200 __attribute__((noinline))
sys_semsys3(void)201 static void sys_semsys3(void)
202 {
203 GO(SYS_semsys, "(SEMCTL,IPC_STAT64) 5s 1m");
204 SY(SYS_semsys, x0 + SEMCTL, x0, x0, x0 + IPC_STAT64, x0 + 1); FAIL;
205 }
206
207 __attribute__((noinline))
sys_semsys4(void)208 static void sys_semsys4(void)
209 {
210 GO(SYS_semsys, "(SEMCTL,IPC_SET64) 5s 1m");
211 SY(SYS_semsys, x0 + SEMCTL, x0, x0, x0 + IPC_SET64, x0 + 1); FAIL;
212 }
213
214 __attribute__((noinline))
sys_semsys5(void)215 static void sys_semsys5(void)
216 {
217 GO(SYS_semsys, "(SEMCTL,IPC_RMID) 3s 0m");
218 SY(SYS_semsys, x0 + SEMCTL, x0, x0, x0 + IPC_RMID); FAIL;
219 }
220
221 __attribute__((noinline))
sys_semsys6(void)222 static void sys_semsys6(void)
223 {
224 GO(SYS_semsys, "(SEMCTL,GETALL) 4s 0m");
225 SY(SYS_semsys, x0 + SEMCTL, x0, x0, x0 + GETALL, x0 + 1); FAIL;
226 }
227
228 __attribute__((noinline))
sys_semsys7(void)229 static void sys_semsys7(void)
230 {
231 GO(SYS_semsys, "(SEMCTL,SETALL) 4s 0m");
232 SY(SYS_semsys, x0 + SEMCTL, x0, x0, x0 + SETALL, x0 + 1); FAIL;
233 }
234
235 __attribute__((noinline))
sys_semsys8(void)236 static void sys_semsys8(void)
237 {
238 GO(SYS_semsys, "(SEMCTL,GETVAL) 4s 0m");
239 SY(SYS_semsys, x0 + SEMCTL, x0, x0, x0 + GETVAL); FAIL;
240 }
241
242 __attribute__((noinline))
sys_semsys9(void)243 static void sys_semsys9(void)
244 {
245 GO(SYS_semsys, "(SEMCTL,SETVAL) 5s 0m");
246 SY(SYS_semsys, x0 + SEMCTL, x0, x0, x0 + SETVAL, x0 + 2); FAIL;
247 }
248
249 __attribute__((noinline))
sys_semsys10(void)250 static void sys_semsys10(void)
251 {
252 GO(SYS_semsys, "(SEMCTL,GETPID) 4s 0m");
253 SY(SYS_semsys, x0 + SEMCTL, x0, x0, x0 + GETPID); FAIL;
254 }
255
256 __attribute__((noinline))
sys_semsys11(void)257 static void sys_semsys11(void)
258 {
259 GO(SYS_semsys, "(SEMCTL,GETNCNT) 4s 0m");
260 SY(SYS_semsys, x0 + SEMCTL, x0, x0, x0 + GETNCNT); FAIL;
261 }
262
263 __attribute__((noinline))
sys_semsys12(void)264 static void sys_semsys12(void)
265 {
266 GO(SYS_semsys, "(SEMCTL,GETZCNT) 4s 0m");
267 SY(SYS_semsys, x0 + SEMCTL, x0, x0, x0 + GETZCNT); FAIL;
268 }
269
270 __attribute__((noinline))
sys_semsys13(void)271 static void sys_semsys13(void)
272 {
273 GO(SYS_semsys, "(SEMGET) 4s 0m");
274 SY(SYS_semsys, x0 + SEMGET, x0, x0, x0); FAIL;
275 }
276
277 __attribute__((noinline))
sys_semsys14(void)278 static void sys_semsys14(void)
279 {
280 GO(SYS_semsys, "(SEMOP) 4s 1m");
281 SY(SYS_semsys, x0 + SEMOP, x0, x0 + 1, x0 + 1); FAIL;
282 }
283
284 __attribute__((noinline))
sys_semsys15(void)285 static void sys_semsys15(void)
286 {
287 GO(SYS_semsys, "(SEMIDS) 4s 2m");
288 SY(SYS_semsys, x0 + SEMIDS, x0 + 1, x0 + 1, x0 + 1); FAIL;
289 }
290
291 __attribute__((noinline))
sys_semsys16(void)292 static void sys_semsys16(void)
293 {
294 GO(SYS_semsys, "(SEMTIMEDOP) 5s 2m");
295 SY(SYS_semsys, x0 + SEMTIMEDOP, x0, x0 + 1, x0 + 1, x0 + 1); FAIL;
296 }
297
298 __attribute__((noinline))
sys_fcntl(void)299 static void sys_fcntl(void)
300 {
301 GO(SYS_fcntl, "(GETFD) 2s 0m");
302 SY(SYS_fcntl, x0 - 1, x0 + F_GETFD); FAILx(EBADF);
303 }
304
305 __attribute__((noinline))
sys_fcntl2(void)306 static void sys_fcntl2(void)
307 {
308 GO(SYS_fcntl, "(DUPFD) 3s 0m");
309 SY(SYS_fcntl, x0 - 1, x0 + F_DUPFD, x0); FAILx(EBADF);
310 }
311
312 __attribute__((noinline))
sys_fcntl3(void)313 static void sys_fcntl3(void)
314 {
315 GO(SYS_fcntl, "(DUPFD_CLOEXEC) 3s 0m");
316 SY(SYS_fcntl, x0 - 1, x0 + F_DUPFD_CLOEXEC, x0); FAILx(EBADF);
317 }
318
319 __attribute__((noinline))
sys_fcntl4(void)320 static void sys_fcntl4(void)
321 {
322 GO(SYS_fcntl, "(GETLK) 3s 5m");
323 SY(SYS_fcntl, x0 - 1, x0 + F_GETLK, x0); FAILx(EBADF);
324 }
325
326 __attribute__((noinline))
sys_openat(void)327 static void sys_openat(void)
328 {
329 GO(SYS_openat, "(3-args) 3s 1m");
330 SY(SYS_openat, x0 - 1, x0, x0); FAIL;
331 }
332
333 __attribute__((noinline))
sys_openat2(void)334 static void sys_openat2(void)
335 {
336 GO(SYS_openat, "(4-args) 4s 1m");
337 SY(SYS_openat, x0 - 1, x0, x0 | O_CREAT, x0); FAIL;
338 }
339
340 __attribute__((noinline))
sys_tasksys(void)341 static void sys_tasksys(void)
342 {
343 GO(SYS_tasksys, "(settaskid) 3s 0m");
344 SY(SYS_tasksys, x0 + 0, x0, x0); FAIL;
345 }
346
347 __attribute__((noinline))
sys_tasksys2(void)348 static void sys_tasksys2(void)
349 {
350 GO(SYS_tasksys, "(gettaskid) 1s 0m");
351 SY(SYS_tasksys, x0 + 1); SUCC;
352 }
353
354 __attribute__((noinline))
sys_tasksys3(void)355 static void sys_tasksys3(void)
356 {
357 GO(SYS_tasksys, "(getprojid) 1s 0m");
358 SY(SYS_tasksys, x0 + 2); SUCC;
359 }
360
361 __attribute__((noinline))
sys_tasksys4(void)362 static void sys_tasksys4(void)
363 {
364 GO(SYS_tasksys, "(projlist) 3s 1m");
365 /* ARG2 and ARG3 are ignored */
366 SY(SYS_tasksys, x0 + 3, x0, x0, x0 + 1, x0 + 2); FAIL;
367 }
368
369 __attribute__((noinline))
sys_sendfilev(void)370 static void sys_sendfilev(void)
371 {
372 GO(SYS_sendfilev, "(SENDFILEV) 5s 2m");
373 SY(SYS_sendfilev, x0 + SENDFILEV, x0 - 1, x0 + 1, x0 + 2, x0 + 1); FAIL;
374 }
375
376 __attribute__((noinline))
sys_sendfilev2(void)377 static void sys_sendfilev2(void)
378 {
379 struct sendfilevec vec[2];
380 vec[0].sfv_fd = SFV_FD_SELF;
381 vec[0].sfv_off = (off_t)(x0 + 1);
382 vec[0].sfv_len = x0 + 1;
383 vec[0].sfv_flag = 0; // should be set to zero according to man page
384 vec[1].sfv_fd = x0 - 1;
385 vec[1].sfv_off = x0;
386 vec[1].sfv_len = x0 + 1;
387 vec[1].sfv_flag = 0; // should be set to zero according to man page
388
389 GO(SYS_sendfilev, "(SENDFILEV) 4s 2m");
390 SY(SYS_sendfilev, x0 + SENDFILEV, x0 - 1, vec, 2, x0 + 1); FAIL;
391 }
392
393 __attribute__((noinline))
sys_sendfilev3(void)394 static void sys_sendfilev3(void)
395 {
396 GO(SYS_sendfilev, "(SENDFILEV64) 5s 2m");
397 SY(SYS_sendfilev, x0 + SENDFILEV64, x0 - 1, x0 + 1, x0 + 2, x0 + 1); FAIL;
398 }
399
400 __attribute__((noinline))
sys_sendfilev4(void)401 static void sys_sendfilev4(void)
402 {
403 struct sendfilevec64 vec[2];
404 vec[0].sfv_fd = SFV_FD_SELF;
405 vec[0].sfv_off = (off_t)(x0 + 1);
406 vec[0].sfv_len = x0 + 1;
407 vec[0].sfv_flag = 0; // should be set to zero according to man page
408 vec[1].sfv_fd = x0 - 1;
409 vec[1].sfv_off = x0;
410 vec[1].sfv_len = x0 + 1;
411 vec[1].sfv_flag = 0; // should be set to zero according to man page
412
413 GO(SYS_sendfilev, "(SENDFILEV64) 4s 2m");
414 SY(SYS_sendfilev, x0 + SENDFILEV64, x0 - 1, vec, 2, x0 + 1); FAIL;
415 }
416
417 __attribute__((noinline))
sys_privsys(void)418 static void sys_privsys(void)
419 {
420 GO(SYS_privsys, "(PRIVSYS_SETPPRIV) 5s 1m");
421 SY(SYS_privsys, x0 + PRIVSYS_SETPPRIV, x0, x0, x0, x0 + 1); FAIL;
422 }
423
424 __attribute__((noinline))
sys_privsys2(void)425 static void sys_privsys2(void)
426 {
427 GO(SYS_privsys, "(PRIVSYS_GETPPRIV) 5s 1m");
428 SY(SYS_privsys, x0 + PRIVSYS_GETPPRIV, x0, x0, x0, x0 + 1); FAIL;
429 }
430
431 __attribute__((noinline))
sys_privsys3(void)432 static void sys_privsys3(void)
433 {
434 GO(SYS_privsys, "(PRIVSYS_GETIMPLINFO) 5s 1m");
435 SY(SYS_privsys, x0 + PRIVSYS_GETIMPLINFO, x0, x0, x0, x0 + 1); FAIL;
436 }
437
438 __attribute__((noinline))
sys_privsys4(void)439 static void sys_privsys4(void)
440 {
441 GO(SYS_privsys, "(PRIVSYS_SETPFLAGS) 3s 0m");
442 SY(SYS_privsys, x0 + PRIVSYS_SETPFLAGS, x0, x0 + 2); FAIL;
443 }
444
445 __attribute__((noinline))
sys_privsys5(void)446 static void sys_privsys5(void)
447 {
448 GO(SYS_privsys, "(PRIVSYS_GETPFLAGS) 2s 0m");
449 SY(SYS_privsys, x0 + PRIVSYS_GETPFLAGS, x0); FAIL;
450 }
451
452 __attribute__((noinline))
sys_privsys6(void)453 static void sys_privsys6(void)
454 {
455 GO(SYS_privsys, "(PRIVSYS_ISSETUGID) 1s 0m");
456 SY(SYS_privsys, x0 + PRIVSYS_ISSETUGID); SUCC;
457 }
458
459 __attribute__((noinline))
sys_privsys7(void)460 static void sys_privsys7(void)
461 {
462 GO(SYS_privsys, "(PRIVSYS_PFEXEC_REG) 2s 0m");
463 SY(SYS_privsys, x0 + PRIVSYS_PFEXEC_REG, x0 - 1); FAILx(EBADF);
464 }
465
466 __attribute__((noinline))
sys_privsys8(void)467 static void sys_privsys8(void)
468 {
469 GO(SYS_privsys, "(PRIVSYS_PFEXEC_UNREG) 2s 0m");
470 SY(SYS_privsys, x0 + PRIVSYS_PFEXEC_UNREG, x0 - 1); FAILx(EBADF);
471 }
472
473 __attribute__((noinline))
sys_ucredsys(void)474 static void sys_ucredsys(void)
475 {
476 GO(SYS_ucredsys, "(UCREDSYS_UCREDGET) 3s 1m");
477 SY(SYS_ucredsys, x0 + 0, x0, x0 + 1); FAIL;
478 }
479
480 __attribute__((noinline))
sys_ucredsys2(void)481 static void sys_ucredsys2(void)
482 {
483 GO(SYS_ucredsys, "(UCREDSYS_GETPEERUCRED) 3s 1m");
484 SY(SYS_ucredsys, x0 + 1, x0 - 1, x0 + 1); FAILx(EBADF);
485 }
486
487 __attribute__((noinline))
sys_sysfs(void)488 static void sys_sysfs(void)
489 {
490 GO(SYS_sysfs, "(GETFSIND) 2s 1m");
491 SY(SYS_sysfs, x0 + GETFSIND, x0 + 1); FAIL;
492 }
493
494 __attribute__((noinline))
sys_sysfs2(void)495 static void sys_sysfs2(void)
496 {
497 GO(SYS_sysfs, "(GETFSTYP) 3s 1m");
498 SY(SYS_sysfs, x0 + GETFSTYP, x0, x0 + 1); FAIL;
499 }
500
501 __attribute__((noinline))
sys_sysfs3(void)502 static void sys_sysfs3(void)
503 {
504 GO(SYS_sysfs, "(GETNFSTYP) 1s 0m");
505 SY(SYS_sysfs, x0 + GETNFSTYP); SUCC;
506 }
507
508 __attribute__((noinline))
sys_context(void)509 static void sys_context(void)
510 {
511 GO(SYS_context, "(GETCONTEXT) 2s 1m");
512 SY(SYS_context, x0 + GETCONTEXT, x0); FAILx(EFAULT);
513 }
514
515 __attribute__((noinline))
sys_context2(void)516 static void sys_context2(void)
517 {
518 /* The setcontext() wrapper has to call ML_(safe_to_deref) before doing the
519 PRE_READ_*() stuff, therefore the 0m parameter. */
520 GO(SYS_context, "(SETCONTEXT) 2s 0m");
521 SY(SYS_context, x0 + SETCONTEXT, x0 + 1); FAILx(EFAULT);
522 }
523
524 __attribute__((noinline))
sys_context3(void)525 static void sys_context3(void)
526 {
527 GO(SYS_context, "(GETUSTACK) 2s 1m");
528 SY(SYS_context, x0 + GETUSTACK, x0); FAILx(EFAULT);
529 }
530
531 __attribute__((noinline))
sys_context4(void)532 static void sys_context4(void)
533 {
534 GO(SYS_context, "(SETUSTACK) 2s 1m");
535 SY(SYS_context, x0 + SETUSTACK, x0); FAILx(EFAULT);
536 }
537
538 __attribute__((noinline))
sys_statvfs(void)539 static void sys_statvfs(void)
540 {
541 GO(SYS_statvfs, "2s 2m");
542 SY(SYS_statvfs, x0 + 1, x0 + 1); FAIL;
543 }
544
545 __attribute__((noinline))
sys_statvfs2(void)546 static int sys_statvfs2(void)
547 {
548 const char path[] = "/";
549 struct statvfs stats;
550
551 GO(SYS_statvfs, "4s 0m");
552 SY(SYS_statvfs, x0 + path, x0 + &stats); SUCC;
553
554 size_t basetype_len = strlen(stats.f_basetype);
555 size_t fstr_len = strlen(stats.f_fstr);
556
557 /* Now check that memory after the strings is reported uninitialized. */
558 int x = 0;
559 if (stats.f_basetype[basetype_len + 2] != ' ') x = -1; else x = -2;
560 if (stats.f_fstr[fstr_len + 2] != ' ') x = -3; else x = -4;
561 return x;
562 }
563
564 __attribute__((noinline))
sys_nfssys(void)565 static void sys_nfssys(void)
566 {
567 GO(SYS_nfssys, "(NFS_REVAUTH) 2s 1m");
568 SY(SYS_nfssys, x0 + NFS_REVAUTH, x0); FAIL;
569 }
570
571 __attribute__((noinline))
sys_priocntlsys(void)572 static void sys_priocntlsys(void)
573 {
574 pcinfo_t pcinfo;
575 pcinfo.pc_clname[0] = x0 + 'T';
576 pcinfo.pc_clname[1] = x0 + 'S';
577 pcinfo.pc_clname[2] = x0;
578
579 GO(SYS_priocntlsys, "(GETCID) 6s 0m");
580 SY(SYS_priocntlsys, x0 + 1, x0, x0 + PC_GETCID, x0 + &pcinfo, x0); SUCC;
581 }
582
583 __attribute__((noinline))
sys_priocntlsys2(void)584 static void sys_priocntlsys2(void)
585 {
586 pcinfo_t pcinfo;
587 pcinfo.pc_cid = x0 + 1;
588
589 GO(SYS_priocntlsys, "(GETCLINFO) 6s 0m");
590 SY(SYS_priocntlsys, x0 + 1, x0, x0 + PC_GETCLINFO, x0 + &pcinfo, x0); SUCC;
591 }
592
593 __attribute__((noinline))
sys_priocntlsys3(void)594 static void sys_priocntlsys3(void)
595 {
596 GO(SYS_priocntlsys, "(SETPARMS) 5s 2m");
597 SY(SYS_priocntlsys, x0 + 1, x0, x0 + PC_SETPARMS, x0, x0); FAIL;
598 }
599
600 __attribute__((noinline))
sys_priocntlsys4(void)601 static void sys_priocntlsys4(void)
602 {
603 GO(SYS_priocntlsys, "(GETPARMS) 5s 2m");
604 SY(SYS_priocntlsys, x0 + 1, x0, x0 + PC_GETPARMS, x0, x0); FAIL;
605 }
606
607 __attribute__((noinline))
sys_priocntlsys5(void)608 static void sys_priocntlsys5(void)
609 {
610 GO(SYS_priocntlsys, "(GETPRIRANGE) 5s 2m");
611 SY(SYS_priocntlsys, x0 + 1, x0, x0 + PC_GETPRIRANGE, x0, x0); FAIL;
612 }
613
614 __attribute__((noinline))
sys_priocntlsys6(void)615 static void sys_priocntlsys6(void)
616 {
617 GO(SYS_priocntlsys, "(DONICE) 5s 2m");
618 SY(SYS_priocntlsys, x0 + 1, x0, x0 + PC_DONICE, x0, x0); FAIL;
619 }
620
621 __attribute__((noinline))
sys_priocntlsys7(void)622 static void sys_priocntlsys7(void)
623 {
624 GO(SYS_priocntlsys, "(SETXPARMS) 5s 3m");
625 SY(SYS_priocntlsys, x0 + 1, x0, x0 + PC_SETXPARMS, x0, x0 + 1); FAIL;
626 }
627
628 __attribute__((noinline))
sys_priocntlsys8(void)629 static void sys_priocntlsys8(void)
630 {
631 GO(SYS_priocntlsys, "(GETXPARMS) 5s 3m");
632 SY(SYS_priocntlsys, x0 + 1, x0, x0 + PC_GETXPARMS, x0 + 1, x0 + 1); FAIL;
633 }
634
635 __attribute__((noinline))
sys_priocntlsys9(void)636 static void sys_priocntlsys9(void)
637 {
638 GO(SYS_priocntlsys, "(SETDFLCL) 5s 1m");
639 SY(SYS_priocntlsys, x0 + 1, x0, x0 + PC_SETDFLCL, x0, x0); FAIL;
640 }
641
642 __attribute__((noinline))
sys_priocntlsys10(void)643 static void sys_priocntlsys10(void)
644 {
645 GO(SYS_priocntlsys, "(GETDFLCL) 5s 1m");
646 SY(SYS_priocntlsys, x0 + 1, x0, x0 + PC_GETDFLCL, x0 + 1, x0); FAIL;
647 }
648
649 __attribute__((noinline))
sys_priocntlsys11(void)650 static void sys_priocntlsys11(void)
651 {
652 GO(SYS_priocntlsys, "(DOPRIO) 5s 2m");
653 SY(SYS_priocntlsys, x0 + 1, x0, x0 + PC_DOPRIO, x0, x0); FAIL;
654 }
655
656 __attribute__((noinline))
sys_uname(void)657 static void sys_uname(void)
658 {
659 GO(SYS_uname, "1s 1m");
660 SY(SYS_uname, x0 + 1); FAIL;
661 }
662
663 __attribute__((noinline))
sys_uname2(void)664 static int sys_uname2(void)
665 {
666 struct utsname name;
667
668 GO(SYS_uname, "6s 0m");
669 SY(SYS_uname, x0 + &name); SUCC;
670
671 size_t sysname_len = strlen(name.sysname);
672 size_t nodename_len = strlen(name.nodename);
673 size_t release_len = strlen(name.release);
674 size_t version_len = strlen(name.version);
675 size_t machine_len = strlen(name.machine);
676
677 /* Now check that memory after the strings is reported uninitialized. */
678 int x = 0;
679 if (name.sysname[sysname_len + 2] != ' ') x = -1; else x = -2;
680 if (name.nodename[nodename_len + 2] != ' ') x = -3; else x = -4;
681 if (name.release[release_len + 2] != ' ') x = -5; else x = -6;
682 if (name.version[version_len + 2] != ' ') x = -7; else x = -8;
683 if (name.machine[machine_len + 2] != ' ') x = -9; else x = -10;
684 return x;
685 }
686
687 __attribute__((noinline))
sys_modctl(void)688 static void sys_modctl(void)
689 {
690 GO(SYS_modctl, "(MODLOAD) 4s 1m");
691 SY(SYS_modctl, x0 + MODLOAD, x0 + 1, x0 - 1, x0 - 1); FAIL;
692 }
693
694 __attribute__((noinline))
sys_modctl2(void)695 static void sys_modctl2(void)
696 {
697 GO(SYS_modctl, "(MODUNLOAD) 2s 0m");
698 SY(SYS_modctl, x0 + MODUNLOAD, x0 + 1); FAIL;
699 }
700
701 __attribute__((noinline))
sys_modctl3(void)702 static void sys_modctl3(void)
703 {
704 GO(SYS_modctl, "(MODINFO) 3s 4m");
705 SY(SYS_modctl, x0 + MODINFO, x0 + 1, x0 - 1); FAIL;
706 }
707
708 __attribute__((noinline))
sys_lgrpsys(void)709 static void sys_lgrpsys(void)
710 {
711 GO(SYS_lgrpsys, "(LGRP_SYS_MEMINFO) 3s 1m");
712 SY(SYS_lgrpsys, x0 + LGRP_SYS_MEMINFO, x0 + 0, x0 + 1); FAIL;
713 }
714
715 __attribute__((noinline))
sys_lgrpsys2(void)716 static void sys_lgrpsys2(void)
717 {
718 GO(SYS_lgrpsys, "(LGRP_SYS_MEMINFO) 3s 1m");
719 SY(SYS_lgrpsys, x0 + LGRP_SYS_MEMINFO, x0 + 1, x0 + 1); FAIL;
720 }
721
722 __attribute__((noinline))
sys_lgrpsys3(void)723 static void sys_lgrpsys3(void)
724 {
725 meminfo_t minfo;
726 minfo.mi_inaddr = (void *)(x0 + 1);
727 minfo.mi_info_req = (void *)(x0 + 1);
728 minfo.mi_info_count = x0 + 1;
729 minfo.mi_outdata = (void *)(x0 + 1);
730 minfo.mi_validity = (void *)(x0 + 1);
731
732 GO(SYS_lgrpsys, "(LGRP_SYS_MEMINFO) 4s 4m");
733 SY(SYS_lgrpsys, x0 + LGRP_SYS_MEMINFO, x0 + 1, x0 + &minfo); FAIL;
734 }
735
736 __attribute__((noinline))
sys_lgrpsys4(void)737 static void sys_lgrpsys4(void)
738 {
739 GO(SYS_lgrpsys, "(LGRP_SYS_GENERATION) 2s 0m");
740 SY(SYS_lgrpsys, x0 + LGRP_SYS_GENERATION, x0 + 0); SUCC;
741 }
742
743 __attribute__((noinline))
sys_lgrpsys5(void)744 static void sys_lgrpsys5(void)
745 {
746 GO(SYS_lgrpsys, "(LGRP_SYS_VERSION) 2s 0m");
747 SY(SYS_lgrpsys, x0 + LGRP_SYS_VERSION, x0 + 0); SUCC;
748 }
749
750 __attribute__((noinline))
sys_lgrpsys6(void)751 static void sys_lgrpsys6(void)
752 {
753 GO(SYS_lgrpsys, "(LGRP_SYS_SNAPSHOT) 3s 1m");
754 SY(SYS_lgrpsys, x0 + LGRP_SYS_SNAPSHOT, x0 + 10, x0 + 1); FAIL;
755 }
756
757 __attribute__((noinline))
sys_rusagesys(void)758 static void sys_rusagesys(void)
759 {
760 GO(SYS_rusagesys, "(_RUSAGESYS_GETRUSAGE) 2s 1m");
761 SY(SYS_rusagesys, x0 + _RUSAGESYS_GETRUSAGE, x0 + 1); FAIL;
762 }
763
764 __attribute__((noinline))
sys_rusagesys2(void)765 static void sys_rusagesys2(void)
766 {
767 GO(SYS_rusagesys, "(_RUSAGESYS_GETRUSAGE_CHLD) 2s 1m");
768 SY(SYS_rusagesys, x0 + _RUSAGESYS_GETRUSAGE_CHLD, x0 + 1); FAIL;
769 }
770
771 __attribute__((noinline))
sys_rusagesys3(void)772 static void sys_rusagesys3(void)
773 {
774 GO(SYS_rusagesys, "(_RUSAGESYS_GETRUSAGE_LWP) 2s 1m");
775 SY(SYS_rusagesys, x0 + _RUSAGESYS_GETRUSAGE_LWP, x0 + 1); FAIL;
776 }
777
778 __attribute__((noinline))
sys_rusagesys4(void)779 static void sys_rusagesys4(void)
780 {
781 GO(SYS_rusagesys, "(_RUSAGESYS_GETVMUSAGE) 5s 1m");
782 SY(SYS_rusagesys, x0 + _RUSAGESYS_GETVMUSAGE, x0, x0, x0 + 1, x0 + 1);
783 FAIL;
784 }
785
786 __attribute__((noinline))
sys_rusagesys5(void)787 static void sys_rusagesys5(void)
788 {
789 size_t nres = 10;
790
791 GO(SYS_rusagesys, "(_RUSAGESYS_GETVMUSAGE) 5s 1m");
792 SY(SYS_rusagesys, x0 + _RUSAGESYS_GETVMUSAGE, x0, x0, x0 + 1, x0 + &nres);
793 FAIL;
794 }
795
796 __attribute__((noinline))
sys_port(void)797 static void sys_port(void)
798 {
799 GO(SYS_port, "(PORT_CREATE) 1s 0m");
800 SY(SYS_port, (x0 + PORT_CREATE) | PORT_SYS_NOPORT); SUCC;
801 }
802
803 __attribute__((noinline))
sys_port2(void)804 static void sys_port2(void)
805 {
806 GO(SYS_port, "(PORT_ASSOCIATE,PORT_SOURCE_FD) 6s 0m");
807 SY(SYS_port, x0 + PORT_ASSOCIATE, x0 - 1, x0 + PORT_SOURCE_FD, x0, x0,
808 x0); FAILx(EBADF);
809 }
810
811 __attribute__((noinline))
sys_port3(void)812 static void sys_port3(void)
813 {
814 GO(SYS_port, "(PORT_ASSOCIATE,PORT_SOURCE_FILE) 6s 1m");
815 SY(SYS_port, x0 + PORT_ASSOCIATE, x0 - 1, x0 + PORT_SOURCE_FILE, x0, x0,
816 x0); FAILx(EBADF);
817 }
818
819 __attribute__((noinline))
sys_port4(void)820 static void sys_port4(void)
821 {
822 GO(SYS_port, "(PORT_DISSOCIATE,PORT_SOURCE_FD) 6s 0m");
823 SY(SYS_port, x0 + PORT_DISSOCIATE, x0 - 1, x0 + PORT_SOURCE_FD, x0, x0,
824 x0); FAILx(EBADF);
825 }
826
827 __attribute__((noinline))
sys_port5(void)828 static void sys_port5(void)
829 {
830 GO(SYS_port, "(PORT_DISSOCIATE,PORT_SOURCE_FILE) 6s 1m");
831 SY(SYS_port, x0 + PORT_DISSOCIATE, x0 - 1, x0 + PORT_SOURCE_FILE, x0, x0,
832 x0); FAILx(EBADF);
833 }
834
835 __attribute__((noinline))
sys_port6(void)836 static void sys_port6(void)
837 {
838 GO(SYS_port, "(PORT_SEND) 4s 0m");
839 SY(SYS_port, x0 + PORT_SEND, x0 - 1, x0, x0); FAILx(EBADF);
840 }
841
842 __attribute__((noinline))
sys_port7(void)843 static void sys_port7(void)
844 {
845 GO(SYS_port, "(PORT_SENDN) 6s 2m");
846 SY(SYS_port, (x0 + PORT_SENDN) | PORT_SYS_NOPORT, x0, x0, x0 + 1, x0,
847 x0); FAIL;
848 }
849
850 __attribute__((noinline))
sys_port8(void)851 static void sys_port8(void)
852 {
853 GO(SYS_port, "(PORT_GET) 6s 1m");
854 SY(SYS_port, x0 + PORT_GET, x0 - 1, x0, x0, x0, x0); FAILx(EBADF);
855 }
856
857 __attribute__((noinline))
sys_port9(void)858 static void sys_port9(void)
859 {
860 GO(SYS_port, "(PORT_GETN) 5s 2m");
861 SY(SYS_port, x0 + PORT_GETN, x0 - 1, x0, x0 + 1, x0, x0 + 1); FAILx(EBADF);
862 }
863
864 __attribute__((noinline))
sys_port10(void)865 static void sys_port10(void)
866 {
867 GO(SYS_port, "(PORT_ALERT) 5s 0m");
868 SY(SYS_port, x0 + PORT_ALERT, x0 - 1, x0, x0, x0); FAILx(EBADF);
869 }
870
871 __attribute__((noinline))
sys_port11(void)872 static void sys_port11(void)
873 {
874 GO(SYS_port, "(PORT_DISPATCH) 6s 0m");
875 SY(SYS_port, x0 + PORT_DISPATCH, x0 - 1, x0, x0, x0, x0); FAILx(EBADF);
876 }
877
878 __attribute__((noinline))
sys_labelsys(void)879 static void sys_labelsys(void)
880 {
881 GO(SYS_labelsys, "(TSOL_SYSLABELING) 1s 0m");
882 SY(SYS_labelsys, x0 + TSOL_SYSLABELING); SUCC;
883 }
884
885 __attribute__((noinline))
sys_labelsys2(void)886 static void sys_labelsys2(void)
887 {
888 GO(SYS_labelsys, "(TSOL_TNRH) 3s 1m");
889 SY(SYS_labelsys, x0 + TSOL_TNRH, x0 + TNDB_GET, x0 + 1); FAIL;
890 }
891
892 __attribute__((noinline))
sys_labelsys3(void)893 static void sys_labelsys3(void)
894 {
895 GO(SYS_labelsys, "(TSOL_TNRHTP) 3s 1m");
896 SY(SYS_labelsys, x0 + TSOL_TNRHTP, x0 + TNDB_GET, x0 + 1); FAIL;
897 }
898
899 __attribute__((noinline))
sys_labelsys4(void)900 static void sys_labelsys4(void)
901 {
902 GO(SYS_labelsys, "(TSOL_TNMLP) 3s 1m");
903 SY(SYS_labelsys, x0 + TSOL_TNMLP, x0 + TNDB_GET, x0 + 1); FAIL;
904 }
905
906 __attribute__((noinline))
sys_labelsys5(void)907 static void sys_labelsys5(void)
908 {
909 GO(SYS_labelsys, "(TSOL_GETLABEL) 3s 2m");
910 SY(SYS_labelsys, x0 + TSOL_GETLABEL, x0 + 1, x0 + 1); FAIL;
911 }
912
913 __attribute__((noinline))
sys_labelsys6(void)914 static void sys_labelsys6(void)
915 {
916 GO(SYS_labelsys, "(TSOL_FGETLABEL) 3s 1m");
917 SY(SYS_labelsys, x0 + TSOL_FGETLABEL, x0 - 1, x0 + 1); FAILx(EBADF);
918 }
919
920 __attribute__((noinline))
sys_acl(void)921 static void sys_acl(void)
922 {
923 GO(SYS_acl, "(SETACL) 4s 2m");
924 SY(SYS_acl, x0, x0 + SETACL, x0 + 1, x0 + 1); FAIL;
925 }
926
927 __attribute__((noinline))
sys_acl2(void)928 static void sys_acl2(void)
929 {
930 GO(SYS_acl, "(GETACL) 4s 2m");
931 SY(SYS_acl, x0, x0 + GETACL, x0 + 1, x0); FAIL;
932 }
933
934 __attribute__((noinline))
sys_acl3(void)935 static void sys_acl3(void)
936 {
937 GO(SYS_acl, "(GETACLCNT) 4s 1m");
938 SY(SYS_acl, x0, x0 + GETACLCNT, x0, x0); FAIL;
939 }
940
941 __attribute__((noinline))
sys_acl4(void)942 static void sys_acl4(void)
943 {
944 GO(SYS_acl, "(ACE_SETACL) 4s 2m");
945 SY(SYS_acl, x0, x0 + ACE_SETACL, x0 + 1, x0 + 1); FAIL;
946 }
947
948 __attribute__((noinline))
sys_acl5(void)949 static void sys_acl5(void)
950 {
951 GO(SYS_acl, "(ACE_GETACL) 4s 2m");
952 SY(SYS_acl, x0, x0 + ACE_GETACL, x0 + 1, x0); FAIL;
953 }
954
955 __attribute__((noinline))
sys_acl6(void)956 static void sys_acl6(void)
957 {
958 GO(SYS_acl, "(ACE_GETACLCNT) 4s 1m");
959 SY(SYS_acl, x0, x0 + ACE_GETACLCNT, x0, x0); FAIL;
960 }
961
962 __attribute__((noinline))
sys_auditsys(void)963 static void sys_auditsys(void)
964 {
965 GO(SYS_auditsys, "(BSM_GETAUID) 2s 1m");
966 SY(SYS_auditsys, x0 + BSM_GETAUID, x0); FAIL;
967 }
968
969 __attribute__((noinline))
sys_auditsys2(void)970 static void sys_auditsys2(void)
971 {
972 GO(SYS_auditsys, "(BSM_SETAUID) 2s 1m");
973 SY(SYS_auditsys, x0 + BSM_SETAUID, x0); FAIL;
974 }
975
976 __attribute__((noinline))
sys_auditsys3(void)977 static void sys_auditsys3(void)
978 {
979 GO(SYS_auditsys, "(BSM_GETAUDIT) 2s 1m");
980 SY(SYS_auditsys, x0 + BSM_GETAUDIT, x0); FAIL;
981 }
982
983 __attribute__((noinline))
sys_auditsys4(void)984 static void sys_auditsys4(void)
985 {
986 GO(SYS_auditsys, "(BSM_SETAUDIT) 2s 1m");
987 SY(SYS_auditsys, x0 + BSM_SETAUDIT, x0); FAIL;
988 }
989
990 __attribute__((noinline))
sys_auditsys5(void)991 static void sys_auditsys5(void)
992 {
993 GO(SYS_auditsys, "(BSM_AUDIT) 3s 1m");
994 /* The following syscall can succeed if auditing is not enabled. */
995 SY(SYS_auditsys, x0 + BSM_AUDIT, x0, x0 + 1); /*FAIL;*/
996 }
997
998 __attribute__((noinline))
sys_auditsys6(void)999 static void sys_auditsys6(void)
1000 {
1001 GO(SYS_auditsys, "(BSM_AUDITCTL,A_GETPOLICY) 3s 1m");
1002 SY(SYS_auditsys, x0 + BSM_AUDITCTL, x0 + A_GETPOLICY, x0); FAIL;
1003 }
1004
1005 __attribute__((noinline))
sys_auditsys7(void)1006 static void sys_auditsys7(void)
1007 {
1008 GO(SYS_auditsys, "(BSM_AUDITCTL,A_SETPOLICY) 3s 1m");
1009 SY(SYS_auditsys, x0 + BSM_AUDITCTL, x0 + A_SETPOLICY, x0); FAIL;
1010 }
1011
1012 __attribute__((noinline))
sys_auditsys8(void)1013 static void sys_auditsys8(void)
1014 {
1015 GO(SYS_auditsys, "(BSM_AUDITCTL,A_GETKMASK) 3s 1m");
1016 SY(SYS_auditsys, x0 + BSM_AUDITCTL, x0 + A_GETKMASK, x0); FAIL;
1017 }
1018
1019 __attribute__((noinline))
sys_auditsys9(void)1020 static void sys_auditsys9(void)
1021 {
1022 GO(SYS_auditsys, "(BSM_AUDITCTL,A_SETKMASK) 3s 1m");
1023 SY(SYS_auditsys, x0 + BSM_AUDITCTL, x0 + A_SETKMASK, x0); FAIL;
1024 }
1025
1026 __attribute__((noinline))
sys_auditsys10(void)1027 static void sys_auditsys10(void)
1028 {
1029 GO(SYS_auditsys, "(BSM_AUDITCTL,A_GETQCTRL) 3s 1m");
1030 SY(SYS_auditsys, x0 + BSM_AUDITCTL, x0 + A_GETQCTRL, x0); FAIL;
1031 }
1032
1033 __attribute__((noinline))
sys_auditsys11(void)1034 static void sys_auditsys11(void)
1035 {
1036 GO(SYS_auditsys, "(BSM_AUDITCTL,A_SETQCTRL) 3s 1m");
1037 SY(SYS_auditsys, x0 + BSM_AUDITCTL, x0 + A_SETQCTRL, x0 + 1); FAIL;
1038 }
1039
1040 __attribute__((noinline))
sys_auditsys12(void)1041 static void sys_auditsys12(void)
1042 {
1043 GO(SYS_auditsys, "(BSM_AUDITCTL,A_GETCWD) 4s 1m");
1044 SY(SYS_auditsys, x0 + BSM_AUDITCTL, x0 + A_GETCWD, x0, x0 + 1); FAIL;
1045 }
1046
1047 __attribute__((noinline))
sys_auditsys13(void)1048 static void sys_auditsys13(void)
1049 {
1050 GO(SYS_auditsys, "(BSM_AUDITCTL,A_GETCAR) 4s 1m");
1051 SY(SYS_auditsys, x0 + BSM_AUDITCTL, x0 + A_GETCAR, x0, x0 + 1); FAIL;
1052 }
1053
1054 __attribute__((noinline))
sys_auditsys14(void)1055 static void sys_auditsys14(void)
1056 {
1057 GO(SYS_auditsys, "(BSM_AUDITCTL,A_SETUMASK) 3s 1m");
1058 SY(SYS_auditsys, x0 + BSM_AUDITCTL, x0 + A_SETUMASK, x0); FAIL;
1059 }
1060
1061 __attribute__((noinline))
sys_auditsys15(void)1062 static void sys_auditsys15(void)
1063 {
1064 GO(SYS_auditsys, "(BSM_AUDITCTL,A_SETSMASK) 3s 1m");
1065 SY(SYS_auditsys, x0 + BSM_AUDITCTL, x0 + A_SETSMASK, x0); FAIL;
1066 }
1067
1068 __attribute__((noinline))
sys_auditsys16(void)1069 static void sys_auditsys16(void)
1070 {
1071 GO(SYS_auditsys, "(BSM_AUDITCTL,A_GETCOND) 3s 1m");
1072 SY(SYS_auditsys, x0 + BSM_AUDITCTL, x0 + A_GETCOND, x0); FAIL;
1073 }
1074
1075 __attribute__((noinline))
sys_auditsys17(void)1076 static void sys_auditsys17(void)
1077 {
1078 GO(SYS_auditsys, "(BSM_AUDITCTL,A_SETCOND) 3s 1m");
1079 SY(SYS_auditsys, x0 + BSM_AUDITCTL, x0 + A_SETCOND, x0); FAIL;
1080 }
1081
1082 __attribute__((noinline))
sys_auditsys18(void)1083 static void sys_auditsys18(void)
1084 {
1085 GO(SYS_auditsys, "(BSM_AUDITCTL,A_GETCLASS) 3s 0m");
1086 SY(SYS_auditsys, x0 + BSM_AUDITCTL, x0 + A_GETCLASS, x0); FAIL;
1087 }
1088
1089 __attribute__((noinline))
sys_auditsys19(void)1090 static void sys_auditsys19(void)
1091 {
1092 GO(SYS_auditsys, "(BSM_AUDITCTL,A_SETCLASS) 3s 0m");
1093 SY(SYS_auditsys, x0 + BSM_AUDITCTL, x0 + A_SETCLASS, x0 + 1); FAIL;
1094 }
1095
1096 __attribute__((noinline))
sys_auditsys20(void)1097 static void sys_auditsys20(void)
1098 {
1099 au_evclass_map_t classmap;
1100 classmap.ec_number = x0;
1101 classmap.ec_class = x0;
1102
1103 GO(SYS_auditsys, "(BSM_AUDITCTL,A_SETCLASS) 4s 0m");
1104 SY(SYS_auditsys, x0 + BSM_AUDITCTL, x0 + A_SETCLASS, &classmap); FAIL;
1105 }
1106
1107 __attribute__((noinline))
sys_auditsys21(void)1108 static void sys_auditsys21(void)
1109 {
1110 GO(SYS_auditsys, "(BSM_AUDITCTL,A_GETPINFO) 3s 0m");
1111 SY(SYS_auditsys, x0 + BSM_AUDITCTL, x0 + A_GETPINFO, x0); FAIL;
1112 }
1113
1114 __attribute__((noinline))
sys_auditsys22(void)1115 static void sys_auditsys22(void)
1116 {
1117 GO(SYS_auditsys, "(BSM_AUDITCTL,A_SETPMASK) 3s 1m");
1118 SY(SYS_auditsys, x0 + BSM_AUDITCTL, x0 + A_SETPMASK, x0); FAIL;
1119 }
1120
1121 __attribute__((noinline))
sys_auditsys23(void)1122 static void sys_auditsys23(void)
1123 {
1124 GO(SYS_auditsys, "(BSM_AUDITCTL,A_GETPINFO_ADDR) 4s 0m");
1125 SY(SYS_auditsys, x0 + BSM_AUDITCTL, x0 + A_GETPINFO_ADDR, x0,
1126 x0 + 1); FAIL;
1127 }
1128
1129 __attribute__((noinline))
sys_auditsys24(void)1130 static void sys_auditsys24(void)
1131 {
1132 GO(SYS_auditsys, "(BSM_AUDITCTL,A_GETKAUDIT) 4s 1m");
1133 SY(SYS_auditsys, x0 + BSM_AUDITCTL, x0 + A_GETKAUDIT, x0, x0 + 1); FAIL;
1134 }
1135
1136 __attribute__((noinline))
sys_auditsys25(void)1137 static void sys_auditsys25(void)
1138 {
1139 GO(SYS_auditsys, "(BSM_AUDITCTL,A_SETKAUDIT) 4s 1m");
1140 SY(SYS_auditsys, x0 + BSM_AUDITCTL, x0 + A_SETKAUDIT, x0, x0 + 1); FAIL;
1141 }
1142
1143 __attribute__((noinline))
sys_auditsys26(void)1144 static void sys_auditsys26(void)
1145 {
1146 GO(SYS_auditsys, "(BSM_AUDITCTL,A_GETAMASK) 3s 1m");
1147 SY(SYS_auditsys, x0 + BSM_AUDITCTL, x0 + A_GETAMASK, x0); FAIL;
1148 }
1149
1150 __attribute__((noinline))
sys_auditsys27(void)1151 static void sys_auditsys27(void)
1152 {
1153 GO(SYS_auditsys, "(BSM_AUDITCTL,A_SETAMASK) 3s 1m");
1154 SY(SYS_auditsys, x0 + BSM_AUDITCTL, x0 + A_SETAMASK, x0); FAIL;
1155 }
1156
1157 __attribute__((noinline))
sys_auditsys28(void)1158 static void sys_auditsys28(void)
1159 {
1160 GO(SYS_auditsys, "(BSM_GETAUDIT_ADDR) 3s 1m");
1161 SY(SYS_auditsys, x0 + BSM_GETAUDIT_ADDR, x0 + 1, x0 + 1); FAIL;
1162 }
1163
1164 __attribute__((noinline))
sys_auditsys29(void)1165 static void sys_auditsys29(void)
1166 {
1167 GO(SYS_auditsys, "(BSM_SETAUDIT_ADDR) 3s 1m");
1168 SY(SYS_auditsys, x0 + BSM_SETAUDIT_ADDR, x0, x0 + 1); FAIL;
1169 }
1170
1171 __attribute__((noinline))
sys_auditsys30(void)1172 static void sys_auditsys30(void)
1173 {
1174 GO(SYS_auditsys, "(BSM_AUDITDOOR) 2s 0m");
1175 SY(SYS_auditsys, x0 + BSM_AUDITDOOR, x0); FAIL;
1176 }
1177
1178 __attribute__((noinline))
sys_timer_create(void)1179 static void sys_timer_create(void)
1180 {
1181 GO(SYS_timer_create, "3s 4m");
1182 SY(SYS_timer_create, x0, x0 + 1, x0 + 1); FAIL;
1183 }
1184
1185 __attribute__((noinline))
sys_timer_create2(void)1186 static void sys_timer_create2(void)
1187 {
1188 struct sigevent evp;
1189 evp.sigev_notify = x0 + SIGEV_THREAD;
1190 evp.sigev_value.sival_ptr = (void *)(x0 + 1);
1191
1192 GO(SYS_timer_create, "5s 2m");
1193 SY(SYS_timer_create, x0, &evp, x0 + 1); FAIL;
1194 }
1195
1196 __attribute__((noinline))
sys_facl(void)1197 static void sys_facl(void)
1198 {
1199 GO(SYS_facl, "(SETACL) 4s 1m");
1200 SY(SYS_facl, x0 - 1, x0 + SETACL, x0 + 1, x0 + 1); FAILx(EBADF);
1201 }
1202
1203 __attribute__((noinline))
sys_facl2(void)1204 static void sys_facl2(void)
1205 {
1206 GO(SYS_facl, "(GETACL) 4s 1m");
1207 SY(SYS_facl, x0 - 1, x0 + GETACL, x0 + 1, x0); FAILx(EBADF);
1208 }
1209
1210 __attribute__((noinline))
sys_facl3(void)1211 static void sys_facl3(void)
1212 {
1213 GO(SYS_facl, "(GETACLCNT) 4s 0m");
1214 SY(SYS_facl, x0 - 1, x0 + GETACLCNT, x0, x0); FAILx(EBADF);
1215 }
1216
1217 __attribute__((noinline))
sys_facl4(void)1218 static void sys_facl4(void)
1219 {
1220 GO(SYS_facl, "(ACE_SETACL) 4s 1m");
1221 SY(SYS_facl, x0 - 1, x0 + ACE_SETACL, x0 + 1, x0 + 1); FAILx(EBADF);
1222 }
1223
1224 __attribute__((noinline))
sys_facl5(void)1225 static void sys_facl5(void)
1226 {
1227 GO(SYS_facl, "(ACE_GETACL) 4s 1m");
1228 SY(SYS_facl, x0 - 1, x0 + ACE_GETACL, x0 + 1, x0); FAILx(EBADF);
1229 }
1230
1231 __attribute__((noinline))
sys_facl6(void)1232 static void sys_facl6(void)
1233 {
1234 GO(SYS_facl, "(ACE_GETACLCNT) 4s 0m");
1235 SY(SYS_facl, x0 - 1, x0 + ACE_GETACLCNT, x0, x0); FAILx(EBADF);
1236 }
1237
1238 __attribute__((noinline))
sys_door(void)1239 static void sys_door(void)
1240 {
1241 GO(SYS_door, "(DOOR_CREATE) 4s 0m");
1242 SY(SYS_door, x0, x0, x0, x0, x0, x0 + DOOR_CREATE); SUCC;
1243 }
1244
1245 __attribute__((noinline))
sys_door2(void)1246 static void sys_door2(void)
1247 {
1248 GO(SYS_door, "(DOOR_REVOKE) 2s 0m");
1249 SY(SYS_door, x0, x0, x0, x0, x0, x0 + DOOR_REVOKE); FAIL;
1250 }
1251
1252 __attribute__((noinline))
sys_door3(void)1253 static void sys_door3(void)
1254 {
1255 GO(SYS_door, "(DOOR_INFO) 3s 1m");
1256 SY(SYS_door, x0, x0 - 1, x0, x0, x0, x0 + DOOR_INFO); FAIL;
1257 }
1258
1259 __attribute__((noinline))
sys_door4(void)1260 static void sys_door4(void)
1261 {
1262 GO(SYS_door, "(DOOR_CALL) 3s 6m");
1263 SY(SYS_door, x0 - 1, x0, x0, x0, x0, x0 + DOOR_CALL); FAILx(EBADF);
1264 }
1265
1266 __attribute__((noinline))
sys_door5(void)1267 static void sys_door5(void)
1268 {
1269 door_arg_t params;
1270 params.data_ptr = (void *)(x0 + 1);
1271 params.data_size = x0 + 1;
1272 params.desc_ptr = (void *)(x0 + 1);
1273 params.desc_num = x0 + 1;
1274 params.rbuf = (void *)(x0 + 1);
1275 params.rsize = x0 + 1;
1276
1277 GO(SYS_door, "(DOOR_CALL) 9s 2m");
1278 SY(SYS_door, x0, x0 + ¶ms, x0, x0, x0, x0 + DOOR_CALL); FAIL;
1279 }
1280
1281 __attribute__((noinline))
sys_door6(void)1282 static void sys_door6(void)
1283 {
1284 GO(SYS_door, "(DOOR_SETPARAM) 4s 0m");
1285 SY(SYS_door, x0, x0 - 1, x0 + 1, x0, x0, x0 + DOOR_SETPARAM); FAIL;
1286 }
1287
1288 __attribute__((noinline))
sys_pset(void)1289 static void sys_pset(void)
1290 {
1291 GO(SYS_pset, "(CREATE) 2s 1m");
1292 SY(SYS_pset, x0 + PSET_CREATE, x0 + 1); FAIL;
1293 }
1294
1295 __attribute__((noinline))
sys_pset2(void)1296 static void sys_pset2(void)
1297 {
1298 GO(SYS_pset, "(DESTROY) 2s 0m");
1299 SY(SYS_pset, x0 + PSET_DESTROY, x0); FAIL;
1300 }
1301
1302 __attribute__((noinline))
sys_pset3(void)1303 static void sys_pset3(void)
1304 {
1305 GO(SYS_pset, "(ASSIGN) 4s 1m");
1306 SY(SYS_pset, x0 + PSET_ASSIGN, x0 + 1, x0 + 1, x0 + 1); FAIL;
1307 }
1308
1309 __attribute__((noinline))
sys_pset4(void)1310 static void sys_pset4(void)
1311 {
1312 GO(SYS_pset, "(INFO) 5s 3m");
1313 SY(SYS_pset, x0 + PSET_INFO, x0 + 1, x0 + 1, x0 + 1, x0 + 1); FAIL;
1314 }
1315
1316 __attribute__((noinline))
sys_pset5(void)1317 static void sys_pset5(void)
1318 {
1319 int type;
1320 uint_t numcpus = x0 + 1;
1321
1322 GO(SYS_pset, "(INFO) 5s 1m");
1323 SY(SYS_pset, x0 + PSET_INFO, x0 + 1, x0 + &type, x0 + &numcpus,
1324 x0 + 1); FAIL;
1325 }
1326
1327 __attribute__((noinline))
sys_pset6(void)1328 static void sys_pset6(void)
1329 {
1330 GO(SYS_pset, "(BIND) 5s 1m");
1331 SY(SYS_pset, x0 + PSET_BIND, x0 + 1, x0 + 1, x0 + 1, x0 + 1); FAIL;
1332 }
1333
1334 __attribute__((noinline))
sys_pset7(void)1335 static void sys_pset7(void)
1336 {
1337 GO(SYS_pset, "(BIND_LWP) 5s 1m");
1338 SY(SYS_pset, x0 + PSET_BIND_LWP, x0 + 1, x0 + 1, x0 + 1, x0 + 1); FAIL;
1339 }
1340
1341 __attribute__((noinline))
sys_pset8(void)1342 static void sys_pset8(void)
1343 {
1344 GO(SYS_pset, "(GETLOADAVG) 4s 1m");
1345 SY(SYS_pset, x0 + PSET_GETLOADAVG, x0 + 1, x0 + 1, x0 + 1); FAIL;
1346 }
1347
1348 __attribute__((noinline))
sys_pset9(void)1349 static void sys_pset9(void)
1350 {
1351 GO(SYS_pset, "(LIST) 3s 1m");
1352 SY(SYS_pset, x0 + PSET_LIST, x0 + 1, x0 + 1); FAIL;
1353 }
1354
1355 __attribute__((noinline))
sys_pset10(void)1356 static void sys_pset10(void)
1357 {
1358 uint_t numpsets = x0 + 1;
1359
1360 GO(SYS_pset, "(LIST) 3s 1m");
1361 SY(SYS_pset, x0 + PSET_LIST, x0 + 1, x0 + &numpsets);
1362 }
1363
1364 __attribute__((noinline))
sys_pset11(void)1365 static void sys_pset11(void)
1366 {
1367 GO(SYS_pset, "(SETATTR) 3s 0m");
1368 SY(SYS_pset, x0 + PSET_SETATTR, x0, x0); FAIL;
1369 }
1370
1371 __attribute__((noinline))
sys_pset12(void)1372 static void sys_pset12(void)
1373 {
1374 GO(SYS_pset, "(GETATTR) 3s 1m");
1375 SY(SYS_pset, x0 + PSET_GETATTR, x0, x0 + 1); FAIL;
1376 }
1377
1378 __attribute__((noinline))
sys_pset13(void)1379 static void sys_pset13(void)
1380 {
1381 GO(SYS_pset, "(ASSIGN_FORCED) 4s 1m");
1382 SY(SYS_pset, x0 + PSET_ASSIGN_FORCED, x0 + 1, x0 + 1, x0 + 1); FAIL;
1383 }
1384
1385 __attribute__((noinline))
sys_lwp_rwlock(void)1386 static void sys_lwp_rwlock(void)
1387 {
1388 GO(SYS_lwp_rwlock_sys, "(RDLOCK) 3s 8m");
1389 SY(SYS_lwp_rwlock_sys, x0, x0, x0 + 1); FAIL;
1390 }
1391
1392 __attribute__((noinline))
sys_lwp_rwlock2(void)1393 static void sys_lwp_rwlock2(void)
1394 {
1395 GO(SYS_lwp_rwlock_sys, "(WRLOCK) 3s 8m");
1396 SY(SYS_lwp_rwlock_sys, x0 + 1, x0, x0 + 1); FAIL;
1397 }
1398
1399 __attribute__((noinline))
sys_lwp_rwlock3(void)1400 static void sys_lwp_rwlock3(void)
1401 {
1402 GO(SYS_lwp_rwlock_sys, "(TRYRDLOCK) 2s 7m");
1403 SY(SYS_lwp_rwlock_sys, x0 + 2, x0); FAIL;
1404 }
1405
1406 __attribute__((noinline))
sys_lwp_rwlock4(void)1407 static void sys_lwp_rwlock4(void)
1408 {
1409 GO(SYS_lwp_rwlock_sys, "(TRYWRLOCK) 2s 7m");
1410 SY(SYS_lwp_rwlock_sys, x0 + 3, x0); FAIL;
1411 }
1412
1413 __attribute__((noinline))
sys_lwp_rwlock5(void)1414 static void sys_lwp_rwlock5(void)
1415 {
1416 GO(SYS_lwp_rwlock_sys, "(UNLOCK) 2s 2m");
1417 SY(SYS_lwp_rwlock_sys, x0 + 4, x0); FAIL;
1418 }
1419
1420 __attribute__((noinline))
sys_zone(void)1421 static void sys_zone(void)
1422 {
1423 GO(SYS_zone, "(ZONE_CREATE) 2s 12m");
1424 SY(SYS_zone, x0 + ZONE_CREATE, x0); FAIL;
1425 }
1426
1427 __attribute__((noinline))
sys_zone2(void)1428 static void sys_zone2(void)
1429 {
1430 zone_def zd;
1431 zd.zone_name = (void *)(x0 + 1);
1432 zd.zone_root = (void *)(x0 + 1);
1433 zd.zone_privs = (void *)x0;
1434 zd.zone_privssz = x0 + 1;
1435 zd.rctlbuf = (void *)x0;
1436 zd.rctlbufsz = x0 + 1;
1437 zd.extended_error = (void *)x0;
1438 zd.zfsbuf = (void *)x0;
1439 zd.zfsbufsz = x0 + 1;
1440 zd.match = x0;
1441 zd.doi = x0;
1442 zd.label = (void *)(x0 + 1);
1443 zd.flags = x0;
1444
1445 GO(SYS_zone, "(create) 2s 19m");
1446 SY(SYS_zone, x0 + ZONE_CREATE, x0 + &zd); FAIL;
1447 }
1448
1449 __attribute__((noinline))
sys_zone3(void)1450 static void sys_zone3(void)
1451 {
1452 GO(SYS_zone, "(ZONE_DESTROY) 2s 0m");
1453 SY(SYS_zone, x0 + ZONE_DESTROY, x0); FAIL;
1454 }
1455
1456 __attribute__((noinline))
sys_zone4(void)1457 static void sys_zone4(void)
1458 {
1459 GO(SYS_zone, "(ZONE_GETATTR) 5s 1m");
1460 SY(SYS_zone, x0 + ZONE_GETATTR, x0, x0, x0, x0 + 1); FAIL;
1461 }
1462
1463 __attribute__((noinline))
sys_zone5(void)1464 static void sys_zone5(void)
1465 {
1466 GO(SYS_zone, "(ZONE_ENTER) 2s 0m");
1467 SY(SYS_zone, x0 + ZONE_ENTER, x0); FAIL;
1468 }
1469
1470 __attribute__((noinline))
sys_zone6(void)1471 static void sys_zone6(void)
1472 {
1473 GO(SYS_zone, "(ZONE_LIST) 3s 1m");
1474 SY(SYS_zone, x0 + ZONE_LIST, x0 + 1, x0 + 1); FAIL;
1475 }
1476
1477 __attribute__((noinline))
sys_zone7(void)1478 static void sys_zone7(void)
1479 {
1480 uint_t numzones = x0 + 1;
1481
1482 GO(SYS_zone, "(ZONE_LIST) 3s 1m");
1483 SY(SYS_zone, x0 + ZONE_LIST, x0 + 1, x0 + &numzones); FAIL;
1484 }
1485
1486 __attribute__((noinline))
sys_zone8(void)1487 static void sys_zone8(void)
1488 {
1489 GO(SYS_zone, "(ZONE_SHUTDOWN) 2s 0m");
1490 SY(SYS_zone, x0 + ZONE_SHUTDOWN, x0); FAIL;
1491 }
1492
1493 __attribute__((noinline))
sys_zone9(void)1494 static void sys_zone9(void)
1495 {
1496 GO(SYS_zone, "(ZONE_LOOKUP) 2s 1m");
1497 SY(SYS_zone, x0 + ZONE_LOOKUP, x0 + 1); FAIL;
1498 }
1499
1500 __attribute__((noinline))
sys_zone10(void)1501 static void sys_zone10(void)
1502 {
1503 GO(SYS_zone, "(ZONE_BOOT) 2s 0m");
1504 SY(SYS_zone, x0 + ZONE_BOOT, x0); FAIL;
1505 }
1506
1507 __attribute__((noinline))
sys_zone11(void)1508 static void sys_zone11(void)
1509 {
1510 GO(SYS_zone, "(ZONE_SETATTR) 5s 1m");
1511 SY(SYS_zone, x0 + ZONE_SETATTR, x0, x0, x0, x0 + 1); FAIL;
1512 }
1513
1514 __attribute__((noinline))
sys_zone12(void)1515 static void sys_zone12(void)
1516 {
1517 GO(SYS_zone, "(ZONE_ADD_DATALINK) 3s 0m");
1518 SY(SYS_zone, x0 + ZONE_ADD_DATALINK, x0, x0); FAIL;
1519 }
1520
1521 __attribute__((noinline))
sys_zone13(void)1522 static void sys_zone13(void)
1523 {
1524 GO(SYS_zone, "(ZONE_DEL_DATALINK) 3s 0m");
1525 SY(SYS_zone, x0 + ZONE_DEL_DATALINK, x0, x0); FAIL;
1526 }
1527
1528 __attribute__((noinline))
sys_zone14(void)1529 static void sys_zone14(void)
1530 {
1531 GO(SYS_zone, "(ZONE_CHECK_DATALINK) 3s 1m");
1532 SY(SYS_zone, x0 + ZONE_CHECK_DATALINK, x0, x0); FAIL;
1533 }
1534
1535 __attribute__((noinline))
sys_zone15(void)1536 static void sys_zone15(void)
1537 {
1538 GO(SYS_zone, "(ZONE_LIST_DATALINK) 4s 1m");
1539 SY(SYS_zone, x0 + ZONE_LIST_DATALINK, x0, x0 + 1, x0 + 1); FAIL;
1540 }
1541
1542 __attribute__((noinline))
sys_zone16(void)1543 static void sys_zone16(void)
1544 {
1545 int dlnum = x0 + 1;
1546
1547 GO(SYS_zone, "(ZONE_LIST_DATALINK) 4s 1m");
1548 SY(SYS_zone, x0 + ZONE_LIST_DATALINK, x0, x0 + &dlnum, x0 + 1); FAIL;
1549 }
1550
1551 __attribute__((noinline))
sys_getpeername(void)1552 static void sys_getpeername(void)
1553 {
1554 GO(SYS_getpeername, "4s 1m");
1555 SY(SYS_getpeername, x0 - 1, x0 + 1, x0, x0); FAILx(EBADF);
1556 }
1557
1558 __attribute__((noinline))
sys_getpeername2(void)1559 static void sys_getpeername2(void)
1560 {
1561 socklen_t size = x0 + 10;
1562
1563 GO(SYS_getpeername, "4s 1m");
1564 SY(SYS_getpeername, x0 - 1, x0 + 1, &size, x0); FAILx(EBADF);
1565 }
1566
main(void)1567 int main(void)
1568 {
1569 /* Uninitialised, but we know px[0] is 0x0. */
1570 long *px = malloc(sizeof(long));
1571 x0 = px[0];
1572
1573 /* SYS_syscall 0 */
1574 /* SPARC only. */
1575
1576 /* SYS_exit 1 */
1577 /* Tested below. */
1578
1579 /* SYS_read 3 */
1580 GO(SYS_read, "3s 0m");
1581 SY(SYS_read, x0 - 1, x0, x0 + 1); FAILx(EBADF);
1582 /* Note that above should be preferably "3s 1m" test.. */
1583
1584 /* SYS_write 4 */
1585 GO(SYS_write, "3s 1m");
1586 SY(SYS_write, x0 + 1, x0, x0 + 1); FAIL;
1587
1588 /* SYS_open 5 */
1589 /* Tested in scalar_obsolete.c. */
1590
1591 /* SYS_close 6 */
1592 GO(SYS_close, "1s 0m");
1593 SY(SYS_close, x0 - 1); FAILx(EBADF);
1594
1595 /* SYS_linkat 7 */
1596 GO(SYS_linkat, "5s 2m");
1597 SY(SYS_linkat, x0 - 1, x0 + 1, x0 - 1, x0 + 1, x0); FAIL;
1598
1599 /* SYS_link 9 */
1600 /* Tested in scalar_obsolete.c. */
1601
1602 /* SYS_unlink 10 */
1603 /* Tested in scalar_obsolete.c. */
1604
1605 /* SYS_symlinkat 11 */
1606 GO(SYS_symlinkat, "3s 2m");
1607 SY(SYS_symlinkat, x0 + 1, x0 - 1, x0 + 1); FAIL;
1608
1609 /* SYS_chdir 12 */
1610 GO(SYS_chdir, "1s 1m");
1611 SY(SYS_chdir, x0); FAIL;
1612
1613 /* SYS_time 13 */
1614 GO(SYS_time, "0s 0m");
1615 SY(SYS_time); SUCC;
1616
1617 /* SYS_mknod 14 */
1618 /* Tested in scalar_obsolete.c. */
1619
1620 /* SYS_chmod 15 */
1621 /* Tested in scalar_obsolete.c. */
1622
1623 /* SYS_chown 16 */
1624 /* Tested in scalar_obsolete.c. */
1625
1626 /* SYS_brk 17 */
1627 GO(SYS_brk, "1s 0m");
1628 SY(SYS_brk, x0); SUCC;
1629
1630 /* SYS_stat 18 */
1631 /* Tested in scalar_obsolete.c. */
1632
1633 /* SYS_lseek 19 */
1634 GO(SYS_lseek, "3s 0m");
1635 SY(SYS_lseek, x0 - 1, x0, x0); FAILx(EBADF);
1636
1637 /* SYS_getpid 20 */
1638 GO(SYS_getpid, "0s 0m");
1639 SY(SYS_getpid); SUCC;
1640
1641 /* SYS_mount 21 */
1642 sys_mount();
1643 sys_mount2();
1644 sys_mount3();
1645 sys_mount4();
1646
1647 /* SYS_readlinkat 22 */
1648 GO(SYS_readlinkat, "4s 2m");
1649 SY(SYS_readlinkat, x0 - 1, x0, x0, x0 + 1); FAIL;
1650
1651 /* SYS_setuid 23 */
1652 GO(SYS_setuid, "1s 0m");
1653 SY(SYS_setuid, x0 - 1); FAIL;
1654
1655 /* SYS_getuid 24 */
1656 GO(SYS_getuid, "0s 0m");
1657 SY(SYS_getuid); SUCC;
1658
1659 /* SYS_stime 25 */
1660 GO(SYS_stime, "1s 0m");
1661 SY(SYS_stime, x0); FAIL;
1662
1663 /* SYS_pcsample 26 */
1664 /* XXX Missing wrapper. */
1665
1666 /* SYS_alarm 27 */
1667 GO(SYS_alarm, "1s 0m");
1668 SY(SYS_alarm, x0); SUCC;
1669
1670 /* SYS_fstat 28 */
1671 /* Tested in scalar_obsolete.c. */
1672
1673 /* SYS_pause 29 */
1674 /* Don't bother to test this. */
1675 GO(SYS_pause, "ignore");
1676
1677 /* SYS_stty 31 */
1678 GO(SYS_stty, "2s 1m");
1679 SY(SYS_stty, x0 - 1, x0 + 1); FAIL;
1680
1681 /* SYS_gtty 32 */
1682 GO(SYS_gtty, "2s 1m");
1683 SY(SYS_gtty, x0 - 1, x0 + 1); FAIL;
1684
1685 /* SYS_access 33 */
1686 /* Tested in scalar_obsolete.c. */
1687
1688 /* SYS_nice 34 */
1689 /* XXX Missing wrapper. */
1690
1691 /* SYS_statfs 35 */
1692 /* XXX Missing wrapper. */
1693
1694 /* SYS_sync 36 */
1695 /* XXX Missing wrapper. */
1696
1697 /* SYS_kill 37 */
1698 GO(SYS_kill, "2s 0m");
1699 SY(SYS_kill, x0, x0); SUCC;
1700
1701 /* SYS_fstatfs 38 */
1702 /* XXX Missing wrapper. */
1703
1704 /* SYS_pgrpsys 39 */
1705 sys_pgrpsys();
1706 sys_pgrpsys2();
1707 sys_pgrpsys3();
1708
1709 /* SYS_uucopystr 40 */
1710 /* XXX Missing wrapper. */
1711
1712 /* SYS_pipe 42 */
1713 /* Don't bother to test this. */
1714 GO(SYS_pipe, "ignore");
1715
1716 /* SYS_times 43 */
1717 GO(SYS_times, "1s 1m");
1718 SY(SYS_times, x0 + 1); FAIL;
1719
1720 /* SYS_profil 44 */
1721 /* XXX Missing wrapper. */
1722
1723 /* SYS_faccessat 45 */
1724 GO(SYS_faccessat, "4s 1m");
1725 SY(SYS_faccessat, x0 - 1, x0 + 1, x0, x0); FAIL;
1726
1727 /* SYS_setgid 46 */
1728 GO(SYS_setgid, "1s 0m");
1729 SY(SYS_setgid, x0 - 1); FAIL;
1730
1731 /* SYS_getgid 47 */
1732 GO(SYS_getgid, "0s 0m");
1733 SY(SYS_getgid); SUCC;
1734
1735 /* SYS_mknodat 48 */
1736 GO(SYS_mknodat, "4s 1m");
1737 SY(SYS_mknodat, x0 - 1, x0 + 1, x0, x0); FAIL;
1738
1739 /* SYS_msgsys 49 */
1740 /* XXX Missing wrapper. */
1741
1742 /* SYS_sysi86 50 */
1743 /* TODO Add test. */
1744 GO(SYS_sysi86, "incoming");
1745
1746 /* SYS_acct 51 */
1747 /* XXX Missing wrapper. */
1748
1749 /* SYS_shmsys 52 */
1750 sys_shmsys();
1751 sys_shmsys2();
1752 sys_shmsys3();
1753 sys_shmsys4();
1754 sys_shmsys5();
1755 sys_shmsys6();
1756 sys_shmsys7();
1757 sys_shmsys8();
1758 sys_shmsys9();
1759 sys_shmsys10();
1760 sys_shmsys11();
1761 sys_shmsys12();
1762 sys_shmsys13();
1763
1764 /* SYS_semsys 53 */
1765 sys_semsys();
1766 sys_semsys2();
1767 sys_semsys3();
1768 sys_semsys4();
1769 sys_semsys5();
1770 sys_semsys6();
1771 sys_semsys7();
1772 sys_semsys8();
1773 sys_semsys9();
1774 sys_semsys10();
1775 sys_semsys11();
1776 sys_semsys12();
1777 sys_semsys13();
1778 sys_semsys14();
1779 sys_semsys15();
1780 sys_semsys16();
1781
1782 /* SYS_ioctl 54 */
1783 GO(SYS_ioctl, "3s 1m");
1784 SY(SYS_ioctl, x0, x0 + TCGETS, x0); FAIL;
1785
1786 /* SYS_uadmin 55 */
1787 /* XXX Missing wrapper. */
1788
1789 /* SYS_fchownat 56 */
1790 GO(SYS_fchownat, "5s 1m");
1791 SY(SYS_fchownat, x0 - 1, x0 + 1, x0, x0, x0); FAIL;
1792
1793 /* SYS_utssys 57 */
1794 /* XXX Missing wrapper. */
1795
1796 /* SYS_fdsync 58 */
1797 GO(SYS_fdsync, "2s 0m");
1798 SY(SYS_fdsync, x0 - 1, x0); FAILx(EBADF);
1799
1800 /* SYS_execve 59 */
1801 /* illumos ignores the fourth argument. */
1802 GO(SYS_execve, "3s 1m");
1803 SY(SYS_execve, x0, x0, x0, 0); FAIL;
1804 /* More cases tested in execx.c */
1805
1806 /* SYS_umask 60 */
1807 GO(SYS_umask, "1s 0m");
1808 SY(SYS_umask, x0 + 022); SUCC;
1809
1810 /* SYS_chroot 61 */
1811 GO(SYS_chroot, "1s 1m");
1812 SY(SYS_chroot, x0 + 1); FAIL;
1813
1814 /* SYS_fcntl 62 */
1815 sys_fcntl();
1816 sys_fcntl2();
1817 sys_fcntl3();
1818 sys_fcntl4();
1819
1820 /* SYS_ulimit 63 */
1821 /* XXX Missing wrapper. */
1822
1823 /* SYS_renameat 64 */
1824 GO(SYS_renameat, "4s 2m");
1825 SY(SYS_renameat, x0 - 1, x0, x0, x0); FAIL;
1826
1827 /* SYS_unlinkat 65 */
1828 GO(SYS_unlinkat, "3s 1m");
1829 SY(SYS_unlinkat, x0 - 1, x0, x0); FAIL;
1830
1831 /* SYS_fstatat 66 */
1832 GO(SYS_fstatat, "4s 2m");
1833 SY(SYS_fstatat, x0 - 1, x0 + 1, x0, x0); FAIL;
1834
1835 /* SYS_fstatat64 67 */
1836 /* Tested in x86-solaris/scalar.c. */
1837
1838 /* SYS_openat 68 */
1839 sys_openat();
1840 sys_openat2();
1841
1842 /* SYS_openat64 69 */
1843 /* Tested in x86-solaris/scalar.c. */
1844
1845 /* SYS_tasksys 70 */
1846 sys_tasksys();
1847 sys_tasksys2();
1848 sys_tasksys3();
1849 sys_tasksys4();
1850
1851 /* SYS_acctctl 71 */
1852 /* XXX Missing wrapper. */
1853
1854 /* SYS_exacctsys 72 */
1855 /* XXX Missing wrapper. */
1856
1857 /* SYS_getpagesizes 73 */
1858 GO(SYS_getpagesizes, "3s 1m");
1859 SY(SYS_getpagesizes, x0, x0 + 1, x0 + 1); FAIL;
1860
1861 /* SYS_rctlsys 74 */
1862 /* XXX Missing wrapper. */
1863
1864 /* SYS_sidsys 75 */
1865 /* XXX Missing wrapper. */
1866
1867 /* SYS_lwp_park 77 */
1868 /* Don't bother to test this. */
1869 GO(SYS_lwp_park, "ignore");
1870
1871 /* SYS_sendfilev 78 */
1872 sys_sendfilev();
1873 sys_sendfilev2();
1874 sys_sendfilev3();
1875 sys_sendfilev4();
1876
1877 /* SYS_rmdir 79 */
1878 /* Tested in scalar_obsolete.c. */
1879
1880 /* SYS_mkdir 80 */
1881 /* Tested in scalar_obsolete.c. */
1882
1883 /* SYS_getdents 81 */
1884 GO(SYS_getdents, "3s 1m");
1885 SY(SYS_getdents, x0, x0, x0 + 1); FAIL;
1886
1887 /* SYS_Privsys 82 */
1888 sys_privsys();
1889 sys_privsys2();
1890 sys_privsys3();
1891 sys_privsys4();
1892 sys_privsys5();
1893 sys_privsys6();
1894 sys_privsys7();
1895 sys_privsys8();
1896
1897 /* SYS_ucredsys 83 */
1898 sys_ucredsys();
1899 sys_ucredsys2();
1900
1901 /* SYS_sysfs 84 */
1902 sys_sysfs();
1903 sys_sysfs2();
1904 sys_sysfs3();
1905
1906 /* SYS_getmsg 85 */
1907 GO(SYS_getmsg, "4s 1m");
1908 SY(SYS_getmsg, x0, x0, x0, x0); FAIL;
1909
1910 /* SYS_putmsg 86 */
1911 GO(SYS_putmsg, "4s 0m");
1912 SY(SYS_putmsg, x0, x0, x0, x0);
1913
1914 /* SYS_lstat 88 */
1915 /* Tested in scalar_obsolete.c. */
1916
1917 /* SYS_symlink 89 */
1918 /* Tested in scalar_obsolete.c. */
1919
1920 /* SYS_readlink 90 */
1921 /* Tested in scalar_obsolete.c. */
1922
1923 /* SYS_setgroups 91 */
1924 GO(SYS_setgroups, "2s 1m");
1925 SY(SYS_setgroups, x0 + 1, x0 + 1); FAIL;
1926
1927 /* SYS_getgroups 92 */
1928 GO(SYS_getgroups, "2s 1m");
1929 SY(SYS_getgroups, x0 + 1, x0 + 1); FAIL;
1930
1931 /* SYS_fchmod 93 */
1932 /* Tested in scalar_obsolete.c. */
1933
1934 /* SYS_fchown 94 */
1935 /* Tested in scalar_obsolete.c. */
1936
1937 /* SYS_sigprocmask 95 */
1938 GO(SYS_sigprocmask, "3s 2m");
1939 SY(SYS_sigprocmask, x0, x0 + 1, x0 + 1); FAILx(EFAULT);
1940
1941 /* SYS_sigsuspend 96 */
1942 GO(SYS_sigsuspend, "1s 1m");
1943 SY(SYS_sigsuspend, x0 + 1); FAILx(EFAULT);
1944
1945 /* SYS_sigaltstack 97 */
1946 GO(SYS_sigaltstack, "2s 2m");
1947 SY(SYS_sigaltstack, x0 + 1, x0 + 1); FAILx(EFAULT);
1948
1949 /* SYS_sigaction 98 */
1950 GO(SYS_sigaction, "3s 4m");
1951 SY(SYS_sigaction, x0, x0 + 1, x0 + 1); FAILx(EFAULT);
1952
1953 /* SYS_sigpending 99 */
1954 GO(SYS_sigpending, "2s 1m");
1955 SY(SYS_sigpending, x0, x0 + 1);
1956
1957 /* SYS_context 100 */
1958 sys_context();
1959 sys_context2();
1960 sys_context3();
1961 sys_context4();
1962
1963 /* SYS_fchmodat 101 */
1964 GO(SYS_fchmodat, "4s 1m");
1965 SY(SYS_fchmodat, x0 - 1, x0 + 1, x0, x0); FAIL;
1966
1967 /* SYS_mkdirat 102 */
1968 GO(SYS_mkdirat, "3s 1m");
1969 SY(SYS_mkdirat, x0 - 1, x0, x0); FAIL;
1970
1971 /* SYS_statvfs 103 */
1972 sys_statvfs();
1973 sys_statvfs2();
1974
1975 /* SYS_fstatvfs 104 */
1976 GO(SYS_fstatvfs, "2s 1m");
1977 SY(SYS_fstatvfs, x0 - 1, x0 + 1); FAILx(EBADF);
1978
1979 /* SYS_getloadavg 105 */
1980 /* XXX Missing wrapper. */
1981
1982 /* SYS_nfssys 106 */
1983 sys_nfssys();
1984 /* :TODO: Add test cases when other opcodes are implemented. */
1985
1986 /* SYS_waitid 107 */
1987 GO(SYS_waitid, "4s 1m");
1988 SY(SYS_waitid, x0 - 1, x0, x0, x0); FAIL;
1989
1990 /* SYS_sigsendsys 108 */
1991 GO(SYS_sigsendsys, "2s 1m");
1992 SY(SYS_sigsendsys, x0 - 1, x0); FAIL;
1993
1994 /* SYS_hrtsys 109 */
1995 /* XXX Missing wrapper. */
1996
1997 /* SYS_utimesys 110 */
1998 /* SYS_utimensat 110 */
1999 /* Tested in scalar_utimesys and scalar_utimensat. */
2000
2001 /* SYS_sigresend 111 */
2002 GO(SYS_sigresend, "3s 2m");
2003 SY(SYS_sigresend, x0, x0 + 1, x0); FAIL;
2004
2005 /* SYS_priocntlsys 112 */
2006 sys_priocntlsys();
2007 sys_priocntlsys2();
2008 sys_priocntlsys3();
2009 sys_priocntlsys4();
2010 sys_priocntlsys5();
2011 sys_priocntlsys6();
2012 sys_priocntlsys7();
2013 sys_priocntlsys8();
2014 sys_priocntlsys9();
2015 sys_priocntlsys10();
2016 sys_priocntlsys11();
2017
2018 /* SYS_pathconf 113 */
2019 GO(SYS_pathconf, "2s 1m");
2020 SY(SYS_pathconf, x0, x0); FAIL;
2021
2022 /* SYS_mincore 114 */
2023 /* XXX Missing wrapper. */
2024
2025 /* SYS_mmap 115 */
2026 GO(SYS_mmap, "6s 0m");
2027 SY(SYS_mmap, x0, x0, x0, x0, x0, x0); FAILx(EINVAL);
2028
2029 /* SYS_mprotect 116 */
2030 GO(SYS_mprotect, "3s 0m");
2031 SY(SYS_mprotect, x0, x0, x0); FAILx(EINVAL);
2032
2033 /* SYS_munmap 117 */
2034 GO(SYS_munmap, "2s 0m");
2035 SY(SYS_munmap, x0, x0); FAILx(EINVAL);
2036
2037 /* SYS_fpathconf 118 */
2038 /* XXX Missing wrapper. */
2039
2040 /* SYS_vfork 119 */
2041 /* XXX Missing wrapper. */
2042
2043 /* SYS_fchdir 120 */
2044 GO(SYS_fchdir, "1s 0m");
2045 SY(SYS_fchdir, x0 - 1); FAILx(EBADF);
2046
2047 /* SYS_readv 121 */
2048 GO(SYS_readv, "3s 1m");
2049 SY(SYS_readv, x0, x0, x0 + 1); FAIL;
2050
2051 /* SYS_writev 122 */
2052 GO(SYS_writev, "3s 1m");
2053 SY(SYS_writev, x0, x0, x0 + 1); FAIL;
2054
2055 /* SYS_mmapobj 127 */
2056 GO(SYS_mmapobj, "5s 2m");
2057 SY(SYS_mmapobj, x0 - 1, x0 | MMOBJ_PADDING, x0, x0, x0); FAILx(EBADF);
2058
2059 /* SYS_setrlimit 128 */
2060 GO(SYS_setrlimit, "2s 1m");
2061 SY(SYS_setrlimit, x0, x0); FAIL;
2062
2063 /* SYS_getrlimit 129 */
2064 GO(SYS_getrlimit, "2s 1m");
2065 SY(SYS_getrlimit, x0, x0); FAIL;
2066
2067 /* SYS_lchown 130 */
2068 /* Tested in scalar_obsolete.c. */
2069
2070 /* SYS_memcntl 131 */
2071 GO(SYS_memcntl, "6s 1m");
2072 SY(SYS_memcntl, x0, x0, x0 | MC_HAT_ADVISE, x0, x0, x0); FAIL;
2073
2074 /* SYS_getpmsg 132 */
2075 GO(SYS_getpmsg, "5s 2m");
2076 SY(SYS_getpmsg, x0, x0, x0, x0, x0); FAIL;
2077
2078 /* SYS_putpmsg 133 */
2079 GO(SYS_putpmsg, "5s 0m");
2080 SY(SYS_putpmsg, x0, x0, x0, x0, x0); FAIL;
2081
2082 /* SYS_rename 134 */
2083 /* Tested in scalar_obsolete.c. */
2084
2085 /* SYS_uname 135 */
2086 sys_uname();
2087 sys_uname2();
2088
2089 /* SYS_setegid 136 */
2090 GO(SYS_setegid, "1s 0m");
2091 SY(SYS_setegid, x0 - 1); FAIL;
2092
2093 /* SYS_sysconfig 137 */
2094 GO(SYS_sysconfig, "1s 0m");
2095 SY(SYS_sysconfig, x0 - 1); FAIL;
2096
2097 /* SYS_adjtime 138 */
2098 /* XXX Missing wrapper. */
2099
2100 /* SYS_systeminfo 139 */
2101 GO(SYS_systeminfo, "3s 1m");
2102 SY(SYS_systeminfo, x0 + 1, x0, x0 + 1); FAIL;
2103
2104 /* SYS_sharefs 140 */
2105 /* XXX Missing wrapper. */
2106
2107 /* SYS_seteuid 141 */
2108 GO(SYS_seteuid, "1s 0m");
2109 SY(SYS_seteuid, x0 - 1); FAIL;
2110
2111 /* SYS_forksys 142 */
2112 GO(SYS_forksys, "2s 0m");
2113 SY(SYS_forksys, x0, x0 - 1); FAIL;
2114
2115 /* SYS_sigtimedwait 144 */
2116 GO(SYS_sigtimedwait, "3s 3m");
2117 SY(SYS_sigtimedwait, x0 - 1, x0 - 1, x0 - 1); FAIL;
2118
2119 /* SYS_lwp_info 145 */
2120 /* XXX Missing wrapper. */
2121
2122 /* SYS_yield 146 */
2123 GO(SYS_yield, "0s 0m");
2124 SY(SYS_yield); SUCC;
2125
2126 /* SYS_lwp_sema_post 148 */
2127 GO(SYS_lwp_sema_post, "1s 3m");
2128 SY(SYS_lwp_sema_post, x0); FAIL;
2129
2130 /* SYS_lwp_sema_trywait 149 */
2131 /* XXX Missing wrapper. */
2132
2133 /* SYS_lwp_detach 150 */
2134 GO(SYS_lwp_detach, "1s 0m");
2135 SY(SYS_lwp_detach, x0); FAIL;
2136
2137 /* SYS_corectl 151 */
2138 /* XXX Missing wrapper. */
2139
2140 /* SYS_modctl 152 */
2141 sys_modctl();
2142 sys_modctl2();
2143 sys_modctl3();
2144
2145 /* SYS_fchroot 153 */
2146 GO(SYS_fchroot, "1s 0m");
2147 SY(SYS_fchroot, x0 - 1); FAILx(EBADF);
2148
2149 /* SYS_vhangup 155 */
2150 /* XXX Missing wrapper. */
2151
2152 /* SYS_gettimeofday 156 */
2153 GO(SYS_gettimeofday, "1s 1m");
2154 SY(SYS_gettimeofday, x0 + 1); FAIL;
2155
2156 /* SYS_getitimer 157 */
2157 GO(SYS_getitimer, "2s 2m");
2158 SY(SYS_getitimer, x0, x0 + 1); FAIL;
2159
2160 /* SYS_setitimer 158 */
2161 GO(SYS_setitimer, "3s 4m");
2162 SY(SYS_setitimer, x0, x0 + 1, x0 + 1); FAIL;
2163
2164 /* SYS_lwp_create 159 */
2165 /* In the lwp_create() wrapper, we unfortunately have to call
2166 ML_(safe_to_deref) before doing the PRE_READ_*() stuff, therefore only 1m
2167 parameter. */
2168 GO(SYS_lwp_create, "3s 1m");
2169 SY(SYS_lwp_create, x0, x0, x0 + 1); FAILx(EINVAL);
2170
2171 /* SYS_lwp_exit 160 */
2172 /* Don't bother to test this. */
2173 GO(SYS_lwp_exit, "ignore");
2174
2175 /* SYS_lwp_suspend 161 */
2176 GO(SYS_lwp_suspend, "1s 0m");
2177 SY(SYS_lwp_suspend, x0 - 1); FAIL;
2178
2179 /* SYS_lwp_continue 162 */
2180 GO(SYS_lwp_continue, "1s 0m");
2181 SY(SYS_lwp_continue, x0 - 1); FAIL;
2182
2183 /* SYS_lwp_kill 163 */
2184 /* SYS_lwp_sigqueue 163 */
2185 /* Tested in scalar_lwp_kill and scalar_lwp_sigqueue. */
2186
2187 /* SYS_lwp_self 164 */
2188 GO(SYS_lwp_self, "0s 0m");
2189 SY(SYS_lwp_self); SUCC;
2190
2191 /* SYS_lwp_sigmask 165 */
2192 GO(SYS_lwp_sigmask, "5s 0m");
2193 SY(SYS_lwp_sigmask, x0, x0, x0, x0, x0); FAIL;
2194
2195 /* SYS_lwp_private 166 */
2196 /* Tested in amd64-solaris/scalar and x86-solaris/scalar */
2197
2198 /* SYS_lwp_wait 167 */
2199 GO(SYS_lwp_wait, "2s 1m");
2200 SY(SYS_lwp_wait, x0 - 1, x0 + 1); FAIL;
2201
2202 /* SYS_lwp_mutex_wakeup 168 */
2203 GO(SYS_lwp_mutex_wakeup, "2s 2m");
2204 SY(SYS_lwp_mutex_wakeup, x0, x0); FAIL;
2205
2206 /* SYS_lwp_cond_wait 170 */
2207 GO(SYS_lwp_cond_wait, "4s 5m");
2208 SY(SYS_lwp_cond_wait, x0 + 1, x0 + 1, x0 + 1, x0); FAIL;
2209
2210 /* SYS_lwp_cond_signal 171 */
2211 GO(SYS_lwp_cond_signal, "1s 2m");
2212 SY(SYS_lwp_cond_signal, x0); FAIL;
2213
2214 /* SYS_lwp_cond_broadcast 172 */
2215 GO(SYS_lwp_cond_broadcast, "1s 2m");
2216 SY(SYS_lwp_cond_broadcast, x0); FAIL;
2217
2218 /* SYS_pread 173 */
2219 GO(SYS_pread, "4s 1m");
2220 SY(SYS_pread, x0 - 1, x0, x0 + 1, x0); FAILx(EBADF);
2221
2222 /* SYS_pwrite 174 */
2223 GO(SYS_pwrite, "4s 1m");
2224 SY(SYS_pwrite, x0 - 1, x0, x0 + 1, x0); FAILx(EBADF);
2225
2226 /* SYS_llseek 175 */
2227 /* Tested in x86-solaris/scalar.c. */
2228
2229 /* SYS_inst_sync 176 */
2230 /* XXX Missing wrapper. */
2231
2232 /* SYS_brand 177 */
2233 /* XXX Missing wrapper. */
2234
2235 /* SYS_kaio 178 */
2236 /* XXX Missing wrapper. */
2237
2238 /* SYS_cpc 179 */
2239 /* XXX Missing wrapper. */
2240
2241 /* SYS_lgrpsys 180 */
2242 sys_lgrpsys();
2243 sys_lgrpsys2();
2244 sys_lgrpsys3();
2245 sys_lgrpsys4();
2246 sys_lgrpsys5();
2247 sys_lgrpsys6();
2248
2249 /* SYS_rusagesys 181 */
2250 sys_rusagesys();
2251 sys_rusagesys2();
2252 sys_rusagesys3();
2253 sys_rusagesys4();
2254 sys_rusagesys5();
2255
2256 /* SYS_port 182 */
2257 sys_port();
2258 sys_port2();
2259 sys_port3();
2260 sys_port4();
2261 sys_port5();
2262 sys_port6();
2263 sys_port7();
2264 sys_port8();
2265 sys_port9();
2266 sys_port10();
2267 sys_port11();
2268
2269 /* SYS_pollsys 183 */
2270 GO(SYS_pollsys, "4s 5m");
2271 SY(SYS_pollsys, x0, x0 + 1, x0 + 1, x0 + 1); FAIL;
2272
2273 /* SYS_labelsys 184 */
2274 sys_labelsys();
2275 sys_labelsys2();
2276 sys_labelsys3();
2277 sys_labelsys4();
2278 sys_labelsys5();
2279 sys_labelsys6();
2280
2281 /* SYS_acl 185 */
2282 sys_acl();
2283 sys_acl2();
2284 sys_acl3();
2285 sys_acl4();
2286 sys_acl5();
2287 sys_acl6();
2288
2289 /* SYS_auditsys 186 */
2290 sys_auditsys();
2291 sys_auditsys2();
2292 sys_auditsys3();
2293 sys_auditsys4();
2294 sys_auditsys5();
2295 sys_auditsys6();
2296 sys_auditsys7();
2297 sys_auditsys8();
2298 sys_auditsys9();
2299 sys_auditsys10();
2300 sys_auditsys11();
2301 sys_auditsys12();
2302 sys_auditsys13();
2303 sys_auditsys14();
2304 sys_auditsys15();
2305 sys_auditsys16();
2306 sys_auditsys17();
2307 sys_auditsys18();
2308 sys_auditsys19();
2309 sys_auditsys20();
2310 sys_auditsys21();
2311 sys_auditsys22();
2312 sys_auditsys23();
2313 sys_auditsys24();
2314 sys_auditsys25();
2315 sys_auditsys26();
2316 sys_auditsys27();
2317 sys_auditsys28();
2318 sys_auditsys29();
2319 sys_auditsys30();
2320
2321 /* SYS_processor_bind 187 */
2322 /* XXX Missing wrapper. */
2323
2324 /* SYS_processor_info 188 */
2325 /* XXX Missing wrapper. */
2326
2327 /* SYS_p_online 189 */
2328 GO(SYS_p_online, "2s 0m");
2329 SY(SYS_p_online, x0, x0); FAILx(EINVAL);
2330
2331 /* SYS_sigqueue 190 */
2332 GO(SYS_sigqueue, "5s 1m");
2333 SY(SYS_sigqueue, x0 - 1, x0, x0 + 1, x0, x0 - 1); FAIL;
2334
2335 /* SYS_clock_gettime 191 */
2336 GO(SYS_clock_gettime, "2s 1m");
2337 SY(SYS_clock_gettime, x0, x0); FAIL;
2338
2339 /* SYS_clock_settime 192 */
2340 GO(SYS_clock_settime, "2s 1m");
2341 SY(SYS_clock_settime, x0, x0); FAIL;
2342
2343 /* SYS_clock_getres 193 */
2344 GO(SYS_clock_getres, "2s 1m");
2345 SY(SYS_clock_getres, x0 + 1, x0 + 1); FAIL;
2346
2347 /* SYS_timer_create 194 */
2348 sys_timer_create();
2349 sys_timer_create2();
2350
2351 /* SYS_timer_delete 195 */
2352 GO(SYS_timer_delete, "1s 0m");
2353 SY(SYS_timer_delete, x0 + 1); FAIL;
2354
2355 /* SYS_timer_settime 196 */
2356 GO(SYS_timer_settime, "4s 2m");
2357 SY(SYS_timer_settime, x0, x0, x0 + 1, x0 + 2); FAIL;
2358
2359 /* SYS_timer_gettime 197 */
2360 GO(SYS_timer_gettime, "2s 1m");
2361 SY(SYS_timer_gettime, x0, x0 + 1); FAIL;
2362
2363 /* SYS_timer_getoverrun 198 */
2364 GO(SYS_timer_getoverrun, "1s 0m");
2365 SY(SYS_timer_getoverrun, x0); FAIL;
2366
2367 /* SYS_nanosleep 199 */
2368 GO(SYS_nanosleep, "2s 2m");
2369 SY(SYS_nanosleep, x0, x0 + 1); FAIL;
2370
2371 /* SYS_facl 200 */
2372 sys_facl();
2373 sys_facl2();
2374 sys_facl3();
2375 sys_facl4();
2376 sys_facl5();
2377 sys_facl6();
2378
2379 /* SYS_door 201 */
2380 sys_door();
2381 sys_door2();
2382 sys_door3();
2383 sys_door4();
2384 sys_door5();
2385 sys_door6();
2386 /* XXX Additional sys_door variants still unimplemented. */
2387
2388 /* SYS_setreuid 202 */
2389 GO(SYS_setreuid, "2s 0m");
2390 SY(SYS_setreuid, x0 - 1, x0 - 1); SUCC;
2391
2392 /* SYS_setregid 203 */
2393 GO(SYS_setregid, "2s 0m");
2394 SY(SYS_setregid, x0 - 1, x0 - 1); SUCC;
2395
2396 /* SYS_install_utrap 204 */
2397 /* XXX Missing wrapper. */
2398
2399 /* SYS_signotify 205 */
2400 /* XXX Missing wrapper. */
2401
2402 /* SYS_schedctl 206 */
2403 GO(SYS_schedctl, "0s 0m");
2404 SY(SYS_schedctl); SUCC;
2405
2406 /* SYS_pset 207 */
2407 sys_pset();
2408 sys_pset2();
2409 sys_pset3();
2410 sys_pset4();
2411 sys_pset5();
2412 sys_pset6();
2413 sys_pset7();
2414 sys_pset8();
2415 sys_pset9();
2416 sys_pset10();
2417 sys_pset11();
2418 sys_pset12();
2419 sys_pset13();
2420
2421 /* SYS_sparc_utrap_install 208 */
2422 /* XXX Missing wrapper. */
2423
2424 /* SYS_resolvepath 209 */
2425 GO(SYS_resolvepath, "3s 2m");
2426 SY(SYS_resolvepath, x0, x0, x0 + 1); FAIL;
2427
2428 /* SYS_lwp_mutex_timedlock 210 */
2429 GO(SYS_lwp_mutex_timedlock, "3s 7m");
2430 SY(SYS_lwp_mutex_timedlock, x0, x0 + 1, x0); FAIL;
2431
2432 /* SYS_lwp_sema_timedwait 211 */
2433 GO(SYS_lwp_sema_timedwait, "3s 4m");
2434 SY(SYS_lwp_sema_timedwait, x0, x0 + 1, x0); FAIL;
2435
2436 /* SYS_lwp_rwlock_sys 212 */
2437 sys_lwp_rwlock();
2438 sys_lwp_rwlock2();
2439 sys_lwp_rwlock3();
2440 sys_lwp_rwlock4();
2441 sys_lwp_rwlock5();
2442
2443 /* SYS_getdents64 213 */
2444 /* Tested in x86-solaris/scalar.c. */
2445
2446 /* SYS_mmap64 214 */
2447 /* Tested in x86-solaris/scalar.c. */
2448
2449 /* SYS_stat64 215 */
2450 /* Tested in x86-solaris/scalar_obsolete.c. */
2451
2452 /* SYS_lstat64 216 */
2453 /* Tested in x86-solaris/scalar_obsolete.c. */
2454
2455 /* SYS_fstat64 217 */
2456 /* Tested in x86-solaris/scalar_obsolete.c. */
2457
2458 /* SYS_statvfs64 218 */
2459 /* Tested in x86-solaris/scalar.c. */
2460
2461 /* SYS_fstatvfs64 219 */
2462 /* Tested in x86-solaris/scalar.c. */
2463
2464 /* SYS_setrlimit64 220 */
2465 /* Tested in x86-solaris/scalar.c. */
2466
2467 /* SYS_getrlimit64 221 */
2468 /* Tested in x86-solaris/scalar.c. */
2469
2470 /* SYS_pread64 222 */
2471 /* Tested in x86-solaris/scalar.c. */
2472
2473 /* SYS_pwrite64 223 */
2474 /* Tested in x86-solaris/scalar.c. */
2475
2476 /* SYS_open64 225 */
2477 /* Tested in x86-solaris/scalar_obsolete.c. */
2478
2479 /* SYS_rpcsys 226 */
2480 /* XXX Missing wrapper. */
2481
2482 /* SYS_zone 227 */
2483 sys_zone();
2484 sys_zone2();
2485 sys_zone3();
2486 sys_zone4();
2487 sys_zone5();
2488 sys_zone6();
2489 sys_zone7();
2490 sys_zone8();
2491 sys_zone9();
2492 sys_zone10();
2493 sys_zone11();
2494 /*
2495 2013-09-22 Petr Pavlu -- The following test crashes my system because of
2496 a kernel bug (illumos), commenting it out for now.
2497 sys_zone12();
2498 */
2499 sys_zone13();
2500 /*
2501 2013-09-22 Petr Pavlu -- The following test provides an incorrect result
2502 because of a kernel bug (illumos), commenting it out for now.
2503 sys_zone14();
2504 */
2505 sys_zone15();
2506 /*
2507 2013-09-22 Petr Pavlu -- The following test provides an incorrect result
2508 because of a kernel bug (illumos), commenting it out for now.
2509 sys_zone16();
2510 */
2511
2512 /* SYS_autofssys 228 */
2513 /* XXX Missing wrapper. */
2514
2515 /* SYS_getcwd 229 */
2516 GO(SYS_getcwd, "2s 1m");
2517 SY(SYS_getcwd, x0, x0 + 1); FAIL;
2518
2519 /* SYS_so_socket 230 */
2520 GO(SYS_so_socket, "5s 1m");
2521 SY(SYS_so_socket, x0, x0, x0, x0 + 1, x0); FAIL;
2522
2523 /* SYS_so_socketpair 231 */
2524 GO(SYS_so_socketpair, "1s 1m");
2525 SY(SYS_so_socketpair, x0); FAIL;
2526
2527 /* SYS_bind 232 */
2528 GO(SYS_bind, "4s 0m");
2529 SY(SYS_bind, x0, x0, x0, x0); FAIL;
2530
2531 /* SYS_listen 233 */
2532 GO(SYS_listen, "3s 0m");
2533 SY(SYS_listen, x0, x0, x0); FAIL;
2534
2535 /* SYS_accept 234 */
2536 /* Illumos added a new version of the accept() syscall which takes an extra
2537 flag parameter. This is trivially handled in the syscall wrapper but it
2538 is not tested here so it is not necessary to have two versions of the
2539 stderr.exp file. */
2540 GO(SYS_accept, "4s 0m");
2541 SY(SYS_accept, x0, x0, x0, x0, 0); FAIL;
2542
2543 /* SYS_connect 235 */
2544 GO(SYS_connect, "4s 0m");
2545 SY(SYS_connect, x0, x0, x0, x0); FAIL;
2546
2547 /* SYS_shutdown 236 */
2548 GO(SYS_shutdown, "3s 0m");
2549 SY(SYS_shutdown, x0 - 1, x0, x0); FAILx(EBADF);
2550
2551 /* SYS_recv 237 */
2552 GO(SYS_recv, "4s 1m");
2553 SY(SYS_recv, x0, x0, x0 + 1, x0); FAIL;
2554
2555 /* SYS_recvfrom 238 */
2556 GO(SYS_recvfrom, "6s 1m");
2557 SY(SYS_recvfrom, x0, x0, x0 + 1, x0, x0, x0); FAIL;
2558
2559 /* SYS_recvmsg 239 */
2560 GO(SYS_recvmsg, "3s 0m");
2561 SY(SYS_recvmsg, x0, x0, x0); FAIL;
2562
2563 /* SYS_send 240 */
2564 GO(SYS_send, "4s 1m");
2565 SY(SYS_send, x0, x0, x0 + 1, x0); FAIL;
2566
2567 /* SYS_sendmsg 241 */
2568 GO(SYS_sendmsg, "3s 0m");
2569 SY(SYS_sendmsg, x0, x0, x0); FAIL;
2570
2571 /* SYS_sendto 242 */
2572 GO(SYS_sendto, "6s 1m");
2573 SY(SYS_sendto, x0, x0, x0 + 1, x0, x0, x0); FAIL;
2574
2575 /* SYS_getpeername 243 */
2576 sys_getpeername();
2577 sys_getpeername2();
2578
2579 /* SYS_getsockname 244 */
2580 GO(SYS_getsockname, "4s 1m");
2581 SY(SYS_getsockname, x0, x0, x0, x0); FAIL;
2582
2583 /* SYS_getsockopt 245 */
2584 GO(SYS_getsockopt, "6s 0m");
2585 SY(SYS_getsockopt, x0, x0, x0, x0, x0, x0); FAIL;
2586
2587 /* SYS_setsockopt 246 */
2588 GO(SYS_setsockopt, "6s 1m");
2589 SY(SYS_setsockopt, x0, x0, x0, x0, x0 + 1, x0); FAIL;
2590
2591 /* SYS_sockconfig 247 */
2592 /* XXX Missing wrapper. */
2593
2594 /* SYS_ntp_gettime 248 */
2595 /* XXX Missing wrapper. */
2596
2597 /* SYS_ntp_adjtime 249 */
2598 /* XXX Missing wrapper. */
2599
2600 /* SYS_lwp_mutex_unlock 250 */
2601 /* XXX Missing wrapper. */
2602
2603 /* SYS_lwp_mutex_trylock 251 */
2604 /* XXX Missing wrapper. */
2605
2606 /* SYS_lwp_mutex_register 252 */
2607 GO(SYS_lwp_mutex_register, "2s 1m");
2608 SY(SYS_lwp_mutex_register, x0, x0); FAIL;
2609
2610 /* SYS_cladm 253 */
2611 /* XXX Missing wrapper. */
2612
2613 /* SYS_uucopy 254 */
2614 GO(SYS_uucopy, "3s 2m");
2615 SY(SYS_uucopy, x0, x0, x0 + 1); FAIL;
2616
2617 /* SYS_umount2 255 */
2618 GO(SYS_umount2, "2s 1m");
2619 SY(SYS_umount2, x0, x0); FAIL;
2620
2621 /* No such syscall... */
2622 #if 0
2623 GO(9999, "1e");
2624 SY(9999); FAIL;
2625 #endif
2626
2627 /* SYS_exit 1 */
2628 GO(SYS_exit, "1s 0m");
2629 SY(SYS_exit, x0); FAIL;
2630
2631 assert(0);
2632 return 0;
2633 }
2634
2635