1b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#define _GNU_SOURCE 2b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 3ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#include "../../memcheck.h" 4ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#include "scalar.h" 5ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#include <unistd.h> 6ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#include <sched.h> 7ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#include <signal.h> 8663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng#include <linux/mman.h> // MREMAP_FIXED 9ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 10ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// Here we are trying to trigger every syscall error (scalar errors and 11ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// memory errors) for every syscall. We do this by passing a lot of bogus 12ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// arguments, mostly 0 and 1 (often it's 1 because NULL ptr args often aren't 13ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// checked for memory errors, or in order to have a non-zero length used 14ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// with some buffer). So most of the syscalls don't actually succeed and do 15ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// anything. 16ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// 17ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// Occasionally we have to be careful not to cause Valgrind to seg fault in 18ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// its pre-syscall wrappers; it does so because it can't know in general 19ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// when memory is unaddressable, and so tries to dereference it when doing 20ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// PRE_MEM_READ/PRE_MEM_WRITE calls. (Note that Memcheck will 21ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// always issue an error message immediately before these seg faults occur). 22ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// 23ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// The output has numbers like "3s 2m" for each syscall. "s" is short for 24ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// "scalar", ie. the argument itself is undefined. "m" is short for "memory", 25ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// ie. the argument points to memory which is unaddressable. 26ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 27ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownint main(void) 28ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{ 29ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // uninitialised, but we know px[0] is 0x0 30ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown long* px = malloc(sizeof(long)); 31ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown long x0 = px[0]; 32ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown long res; 33ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 34ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // All __NR_xxx numbers are taken from x86 35ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 36ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_restart_syscall 0 // XXX: not yet handled, perhaps should be... 37ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_restart_syscall, "n/a"); 38ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown //SY(__NR_restart_syscall); // (Not yet handled by Valgrind) FAIL; 39ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 40ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_exit 1 41ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_exit, "below"); 42ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // (see below) 43ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 44ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_fork 2 45ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_fork, "other"); 46ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // (sse scalar_fork.c) 47ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 48ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_read 3 49ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // Nb: here we are also getting an error from the syscall arg itself. 50ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_read, "1+3s 1m"); 51ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_read+x0, x0, x0, x0+1); FAILx(EFAULT); 52ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 53ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_write 4 54ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_write, "3s 1m"); 55ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_write, x0, x0, x0+1); FAIL; 56ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 57ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_open 5 58ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_open, "(2-args) 2s 1m"); 59ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_open, x0, x0); FAIL; 60ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 61ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // Only 1s 0m errors -- the other 2s 1m have been checked in the previous 62ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // open test, and if we test them they may be commoned up but they also 63ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // may not. 64ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_open, "(3-args) 1s 0m"); 65ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_open, "scalar.c", O_CREAT|O_EXCL, x0); FAIL; 66ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 67ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_close 6 68ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_close, "1s 0m"); 69ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_close, x0-1); FAIL; 70ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 71ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_waitpid 7 72ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_waitpid, "3s 1m"); 73ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_waitpid, x0, x0+1, x0); FAIL; 74ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 75ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_creat 8 76ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_creat, "2s 1m"); 77ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_creat, x0, x0); FAIL; 78ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 79ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_link 9 80ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_link, "2s 2m"); 81ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_link, x0, x0); FAIL; 82ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 83ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_unlink 10 84ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_unlink, "1s 1m"); 85ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_unlink, x0); FAIL; 86ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 87ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_execve 11 88ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // Nb: could have 3 memory errors if we pass x0+1 as the 2nd and 3rd 89ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // args, except for bug #93174. 90ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_execve, "3s 1m"); 91ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_execve, x0, x0, x0); FAIL; 92ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 93ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_chdir 12 94ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_chdir, "1s 1m"); 95ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_chdir, x0); FAIL; 96ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 97ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_time 13 98ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_time, "1s 1m"); 99ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_time, x0+1); FAIL; 100ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 101ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_mknod 14 102ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_mknod, "3s 1m"); 103ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_mknod, x0, x0, x0); FAIL; 104ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 105ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_chmod 15 106ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_chmod, "2s 1m"); 107ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_chmod, x0, x0); FAIL; 108ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 109ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_lchown 16 110ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_lchown, "n/a"); 111ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown //SY(__NR_lchown); // (Not yet handled by Valgrind) FAIL; 112ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 113ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_break 17 114ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_break, "ni"); 115ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_break); FAIL; 116ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 117ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_oldstat 18 118ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_oldstat, "n/a"); 119ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // (obsolete, not handled by Valgrind) 120ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 121ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_lseek 19 122ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_lseek, "3s 0m"); 123ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_lseek, x0-1, x0, x0); FAILx(EBADF); 124ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 125ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_getpid 20 126ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_getpid, "0s 0m"); 127ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_getpid); SUCC; 128ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 129ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_mount 21 130ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_mount, "5s 3m"); 131ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_mount, x0, x0, x0, x0, x0); FAIL; 132ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 133ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_umount 22 134ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_umount, "1s 1m"); 135ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_umount, x0); FAIL; 136ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 137ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_setuid 23 138ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_setuid, "1s 0m"); 139ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_setuid, x0); FAIL; 140ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 141ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_getuid 24 142ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_getuid, "0s 0m"); 143ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_getuid); SUCC; 144ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 145ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_stime 25 146ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_stime, "n/a"); 147ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown //SY(__NR_stime); // (Not yet handled by Valgrind) FAIL; 148ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 149ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_ptrace 26 150ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // XXX: memory pointed to be arg3 goes unchecked... otherwise would be 2m 151ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_ptrace, "4s 1m"); 152ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_ptrace, x0+PTRACE_GETREGS, x0, x0, x0); FAIL; 153ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 154ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_alarm 27 155ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_alarm, "1s 0m"); 156ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_alarm, x0); SUCC; 157ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 158ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_oldfstat 28 159ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_oldfstat, "n/a"); 160ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // (obsolete, not handled by Valgrind) 161ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 162ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_pause 29 163ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_pause, "ignore"); 164ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // (hard to test, and no args so not much to be gained -- don't bother) 165ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 166ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_utime 30 167ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_utime, "2s 2m"); 168ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_utime, x0, x0+1); FAIL; 169ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 170ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_stty 31 171ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_stty, "ni"); 172ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_stty); FAIL; 173ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 174ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_gtty 32 175ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_gtty, "ni"); 176ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_gtty); FAIL; 177ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 178ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_access 33 179ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_access, "2s 1m"); 180ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_access, x0, x0); FAIL; 181ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 182ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_nice 34 183ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_nice, "1s 0m"); 184ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_nice, x0); SUCC; 185ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 186ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_ftime 35 187ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_ftime, "ni"); 188ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_ftime); FAIL; 189ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 190ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_sync 36 191ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_sync, "0s 0m"); 192ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_sync); SUCC; 193ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 194ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_kill 37 195ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_kill, "2s 0m"); 196ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_kill, x0, x0); SUCC; 197ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 198ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_rename 38 199ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_rename, "2s 2m"); 200ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_rename, x0, x0); FAIL; 201ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 202ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_mkdir 39 203ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_mkdir, "2s 1m"); 204ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_mkdir, x0, x0); FAIL; 205ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 206ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_rmdir 40 207ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_rmdir, "1s 1m"); 208ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_rmdir, x0); FAIL; 209ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 210ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_dup 41 211ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_dup, "1s 0m"); 212ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_dup, x0-1); FAIL; 213ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 214ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_pipe 42 215ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_pipe, "1s 1m"); 216ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_pipe, x0); FAIL; 217ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 218ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_times 43 219ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_times, "1s 1m"); 220ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_times, x0+1); FAIL; 221ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 222ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_prof 44 223ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_prof, "ni"); 224ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_prof); FAIL; 225ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 226ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_brk 45 227ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_brk, "1s 0m"); 228ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_brk, x0); SUCC; 229ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 230ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_setgid 46 231ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_setgid, "1s 0m"); 232ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_setgid, x0); FAIL; 233ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 234ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_getgid 47 235ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_getgid, "0s 0m"); 236ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_getgid); SUCC; 237ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 238ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_signal 48 239ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_signal, "n/a"); 240ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown //SY(__NR_signal); // (Not yet handled by Valgrind) FAIL; 241ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 242ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_geteuid 49 243ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_geteuid, "0s 0m"); 244ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_geteuid); SUCC; 245ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 246ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_getegid 50 247ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_getegid, "0s 0m"); 248ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_getegid); SUCC; 249ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 250ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_acct 51 251ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_acct, "1s 1m"); 252ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_acct, x0); FAIL; 253ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 254ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_umount2 52 255ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_umount2, "2s 1m"); 256ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_umount2, x0, x0); FAIL; 257ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 258ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_lock 53 259ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_lock, "ni"); 260ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_lock); FAIL; 261ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 262ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_ioctl 54 263ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown #include <asm/ioctls.h> 264ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_ioctl, "3s 1m"); 265ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_ioctl, x0, x0+TCSETS, x0); FAIL; 266ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 267ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_fcntl 55 268ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // As with sys_open(), the 'fd' error is suppressed for the later ones. 269ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // For F_GETFD the 3rd arg is ignored 270ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_fcntl, "(GETFD) 2s 0m"); 271ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_fcntl, x0-1, x0+F_GETFD, x0); FAILx(EBADF); 272ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 273ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // For F_DUPFD the 3rd arg is 'arg'. We don't check the 1st two args 274ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // because any errors may or may not be commoned up with the ones from 275ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // the previous fcntl call. 276ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_fcntl, "(DUPFD) 1s 0m"); 277ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_fcntl, -1, F_DUPFD, x0); FAILx(EBADF); 278ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 279ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // For F_GETLK the 3rd arg is 'lock'. On x86, this fails w/EBADF. But 280ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // on amd64 in 32-bit mode it fails w/EFAULT. We don't check the 1st two 281ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // args for the reason given above. 282ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_fcntl, "(GETLK) 1s 0m"); 283ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_fcntl, -1, F_GETLK, x0); FAIL; //FAILx(EBADF); 284ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 285ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_mpx 56 286ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_mpx, "ni"); 287ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_mpx); FAIL; 288ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 289ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_setpgid 57 290ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_setpgid, "2s 0m"); 291ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_setpgid, x0, x0-1); FAIL; 292ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 293ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_ulimit 58 294ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_ulimit, "ni"); 295ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_ulimit); FAIL; 296ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 297ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_oldolduname 59 298ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_oldolduname, "n/a"); 299ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // (obsolete, not handled by Valgrind) 300ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 301ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_umask 60 302ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_umask, "1s 0m"); 303ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_umask, x0+022); SUCC; 304ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 305ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_chroot 61 306ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_chroot, "1s 1m"); 307ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_chroot, x0); FAIL; 308ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 309ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_ustat 62 310ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_ustat, "n/a"); 311ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // (deprecated, not handled by Valgrind) 312ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 313ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_dup2 63 314ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_dup2, "2s 0m"); 315ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_dup2, x0-1, x0); FAIL; 316ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 317ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_getppid 64 318ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_getppid, "0s 0m"); 319ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_getppid); SUCC; 320ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 321ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_getpgrp 65 322ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_getpgrp, "0s 0m"); 323ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_getpgrp); SUCC; 324ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 325ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_setsid 66 326ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_setsid, "0s 0m"); 327ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_setsid); SUCC_OR_FAIL; 328ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 329ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_sigaction 67 330ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_sigaction, "3s 4m"); 331ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_sigaction, x0, x0+&px[1], x0+&px[1]); FAIL; 332ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 333ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_sgetmask 68 sys_sgetmask() 334ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_sgetmask, "n/a"); 335ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown //SY(__NR_sgetmask); // (Not yet handled by Valgrind) FAIL; 336ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 337ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_ssetmask 69 338ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_ssetmask, "n/a"); 339ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown //SY(__NR_ssetmask); // (Not yet handled by Valgrind) FAIL; 340ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 341ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_setreuid 70 342ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_setreuid, "2s 0m"); 343ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_setreuid, x0, x0); FAIL; 344ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 345ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_setregid 71 346ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_setregid, "2s 0m"); 347ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_setregid, x0, x0); FAIL; 348ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 349ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_sigsuspend 72 350ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // XXX: how do you use this function? 351ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_sigsuspend, "ignore"); 352ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // (I don't know how to test this...) 353ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 354ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_sigpending 73 355ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_sigpending, "1s 1m"); 356ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_sigpending, x0); FAIL; 357ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 358ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_sethostname 74 359ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_sethostname, "n/a"); 360ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown //SY(__NR_sethostname); // (Not yet handled by Valgrind) FAIL; 361ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 362ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_setrlimit 75 363ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_setrlimit, "2s 1m"); 364ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_setrlimit, x0, x0); FAIL; 365ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 366ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_getrlimit 76 367ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_getrlimit, "2s 1m"); 368ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_getrlimit, x0, x0); FAIL; 369ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 370ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_getrusage 77 371ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_getrusage, "2s 1m"); 372ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_getrusage, x0, x0); FAIL; 373ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 374ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_gettimeofday 78 375ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_gettimeofday, "2s 2m"); 376ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_gettimeofday, x0+1, x0+1); FAIL; 377ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 378ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_settimeofday 79 379ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_settimeofday, "2s 2m"); 380ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_settimeofday, x0+1, x0+1); FAIL; 381ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 382ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_getgroups 80 383ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_getgroups, "2s 1m"); 384ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_getgroups, x0+1, x0+1); FAIL; 385ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 386ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_setgroups 81 387ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_setgroups, "2s 1m"); 388ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_setgroups, x0+1, x0+1); FAIL; 389ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 390ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_select 82 391ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown { 392ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown long args[5] = { x0+8, x0+0xffffffee, x0+1, x0+1, x0+1 }; 393ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_select, "1s 5m"); 394ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_select, args+x0); FAIL; 395ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown } 396ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 397ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_symlink 83 398ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_symlink, "2s 2m"); 399ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_symlink, x0, x0); FAIL; 400ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 401ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_oldlstat 84 402ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_oldlstat, "n/a"); 403ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // (obsolete, not handled by Valgrind) 404ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 405ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_readlink 85 406ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_readlink, "3s 2m"); 407ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_readlink, x0+1, x0+1, x0+1); FAIL; 408ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 409ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_uselib 86 410ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_uselib, "n/a"); 411ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown //SY(__NR_uselib); // (Not yet handled by Valgrind) FAIL; 412ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 413ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_swapon 87 414ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_swapon, "n/a"); 415ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown //SY(__NR_swapon); // (Not yet handled by Valgrind) FAIL; 416ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 417ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_reboot 88 418ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_reboot, "n/a"); 419ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown //SY(__NR_reboot); // (Not yet handled by Valgrind) FAIL; 420ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 421ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_readdir 89 422ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_readdir, "n/a"); 423ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // (superseded, not handled by Valgrind) 424ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 425ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_mmap 90 426ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown { 427ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown long args[6] = { x0, x0, x0, x0, x0-1, x0 }; 428ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_mmap, "1s 1m"); 429ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_mmap, args+x0); FAIL; 430ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown } 431ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 432ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_munmap 91 433ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_munmap, "2s 0m"); 434ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_munmap, x0, x0); FAIL; 435ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 436ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_truncate 92 437ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_truncate, "2s 1m"); 438ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_truncate, x0, x0); FAIL; 439ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 440ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_ftruncate 93 441ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_ftruncate, "2s 0m"); 442ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_ftruncate, x0, x0); FAIL; 443ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 444ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_fchmod 94 445ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_fchmod, "2s 0m"); 446ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_fchmod, x0-1, x0); FAIL; 447ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 448ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_fchown 95 449ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_fchown, "3s 0m"); 450ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_fchown, x0, x0, x0); FAIL; 451ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 452ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_getpriority 96 453ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_getpriority, "2s 0m"); 454ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_getpriority, x0-1, x0); FAIL; 455ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 456ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_setpriority 97 457ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_setpriority, "3s 0m"); 458ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_setpriority, x0-1, x0, x0); FAIL; 459ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 460ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_profil 98 461ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_profil, "ni"); 462ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_profil); FAIL; 463ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 464ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_statfs 99 465ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_statfs, "2s 2m"); 466ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_statfs, x0, x0); FAIL; 467ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 468ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_fstatfs 100 469ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_fstatfs, "2s 1m"); 470ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_fstatfs, x0, x0); FAIL; 471ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 472ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_ioperm 101 473ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_ioperm, "3s 0m"); 474ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_ioperm, x0, x0, x0); FAIL; 475ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 476ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_socketcall 102 477ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_socketcall, "XXX"); 478ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // (XXX: need to do all sub-cases properly) 479ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 480ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_syslog 103 481ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_syslog, "3s 1m"); 482ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_syslog, x0+2, x0, x0+1); FAIL; 483ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 484ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_setitimer 104 485ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_setitimer, "3s 2m"); 486ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_setitimer, x0, x0+1, x0+1); FAIL; 487ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 488ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_getitimer 105 489ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_getitimer, "2s 1m"); 490ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_getitimer, x0, x0, x0); FAIL; 491ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 492ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_stat 106 493ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_stat, "2s 2m"); 494ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_stat, x0, x0); FAIL; 495ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 496ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_lstat 107 497ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_lstat, "2s 2m"); 498ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_lstat, x0, x0); FAIL; 499ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 500ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_fstat 108 501ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_fstat, "2s 1m"); 502ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_fstat, x0, x0); FAIL; 503ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 504ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_olduname 109 505ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_olduname, "n/a"); 506ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // (obsolete, not handled by Valgrind) 507ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 508ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_iopl 110 509ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_iopl, "1s 0m"); 510ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_iopl, x0+100); FAIL; 511ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 512ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_vhangup 111 513ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_vhangup, "0s 0m"); 514ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_vhangup); SUCC_OR_FAIL; // Will succeed for superuser 515ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 516ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_idle 112 517ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_idle, "ni"); 518ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_idle); FAIL; 519ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 520ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_vm86old 113 521ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_vm86old, "n/a"); 522ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // (will probably never be handled by Valgrind) 523ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 524ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_wait4 114 525ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_wait4, "4s 2m"); 526ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_wait4, x0, x0+1, x0, x0+1); FAIL; 527ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 528ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_swapoff 115 529ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_swapoff, "n/a"); 530ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown //SY(__NR_swapoff); // (Not yet handled by Valgrind) FAIL; 531ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 532ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_sysinfo 116 533ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_sysinfo, "1s 1m"); 534ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_sysinfo, x0); FAIL; 535ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 536ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_ipc 117 537ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // XXX: This is simplistic -- need to do all the sub-cases properly. 538ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // XXX: Also, should be 6 scalar errors, except glibc's syscall() doesn't 539ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // use the 6th one! 540ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_ipc, "5s 0m"); 541ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_ipc, x0+4, x0, x0, x0, x0, x0); FAIL; 542ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 543ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_fsync 118 544ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_fsync, "1s 0m"); 545ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_fsync, x0-1); FAIL; 546ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 547ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_sigreturn 119 548ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_sigreturn, "n/a"); 549ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown //SY(__NR_sigreturn); // (Not yet handled by Valgrind) FAIL; 550ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 551ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_clone 120 552ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#ifndef CLONE_PARENT_SETTID 553ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#define CLONE_PARENT_SETTID 0x00100000 554ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#endif 555ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_clone, "5s 3m"); 556ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_clone, x0|CLONE_PARENT_SETTID|CLONE_SETTLS|CLONE_CHILD_SETTID|SIGCHLD, x0, x0, x0, x0); FAIL; 557ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown if (0 == res) { 558ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_exit, 0); FAIL; 559ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown } 560ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 561ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_setdomainname 121 562ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_setdomainname, "n/a"); 563ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown //SY(__NR_setdomainname); // (Not yet handled by Valgrind) FAIL; 564ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 565ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_uname 122 566ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_uname, "1s 1m"); 567ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_uname, x0); FAIL; 568ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 569ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_modify_ldt 123 570ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_modify_ldt, "3s 1m"); 571ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_modify_ldt, x0+1, x0, x0+1); FAILx(EINVAL); 572ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 573ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_adjtimex 124 574ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // XXX: need to do properly, but deref'ing NULL causing Valgrind to crash... 575ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_adjtimex, "XXX"); 576ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown// SY(__NR_adjtimex, x0); FAIL; 577ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 578ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_mprotect 125 579ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_mprotect, "3s 0m"); 580ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_mprotect, x0+1, x0, x0); FAILx(EINVAL); 581ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 582ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_sigprocmask 126 583ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_sigprocmask, "3s 2m"); 584ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_sigprocmask, x0, x0+&px[1], x0+&px[1]); SUCC; 585ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 586ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_create_module 127 587ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_create_module, "ni"); 588ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_create_module); FAIL; 589ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 590ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_init_module 128 591ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_init_module, "3s 2m"); 592ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_init_module, x0, x0+1, x0); FAIL; 593ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 594ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_delete_module 129 595ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_delete_module, "n/a"); 596ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown //SY(__NR_delete_module); // (Not yet handled by Valgrind) FAIL; 597ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 598ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_get_kernel_syms 130 599ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_get_kernel_syms, "ni"); 600ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_get_kernel_syms); FAIL; 601ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 602ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_quotactl 131 603ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_quotactl, "4s 1m"); 604ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_quotactl, x0, x0, x0, x0); FAIL; 605ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 606ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_getpgid 132 607ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_getpgid, "1s 0m"); 608ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_getpgid, x0-1); FAIL; 609ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 610ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_fchdir 133 611ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_fchdir, "1s 0m"); 612ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_fchdir, x0-1); FAIL; 613ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 614ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_bdflush 134 615ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_bdflush, "n/a"); 616ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown //SY(__NR_bdflush); // (Not yet handled by Valgrind) FAIL; 617ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 618ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_sysfs 135 619ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_sysfs, "n/a"); 620ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown //SY(__NR_sysfs); // (Not yet handled by Valgrind) FAIL; 621ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 622ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_personality 136 623ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_personality, "1s 0m"); 624ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_personality, x0+0xffffffff); SUCC; 625ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 626ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_afs_syscall 137 627ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_afs_syscall, "ni"); 628ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_afs_syscall); FAIL; 629ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 630ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_setfsuid 138 631ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_setfsuid, "1s 0m"); 632ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_setfsuid, x0); SUCC; // This syscall has a stupid return value 633ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 634ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_setfsgid 139 635ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_setfsgid, "1s 0m"); 636ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_setfsgid, x0); SUCC; // This syscall has a stupid return value 637ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 638ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR__llseek 140 639ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR__llseek, "5s 1m"); 640ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR__llseek, x0, x0, x0, x0, x0); FAIL; 641ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 642ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_getdents 141 643ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_getdents, "3s 1m"); 644ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_getdents, x0, x0, x0+1); FAIL; 645ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 646ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR__newselect 142 647ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR__newselect, "5s 4m"); 648ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR__newselect, x0+8, x0+0xffffffff, x0+1, x0+1, x0+1); FAIL; 649ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 650ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_flock 143 651ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_flock, "2s 0m"); 652ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_flock, x0, x0); FAIL; 653ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 654ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_msync 144 655ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_msync, "3s 1m"); 656ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_msync, x0, x0+1, x0); FAIL; 657ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 658ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_readv 145 659ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_readv, "3s 1m"); 660ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_readv, x0, x0, x0+1); FAIL; 661ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 662ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_writev 146 663ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_writev, "3s 1m"); 664ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_writev, x0, x0, x0+1); FAIL; 665ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 666ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_getsid 147 667ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_getsid, "1s 0m"); 668ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_getsid, x0-1); FAIL; 669ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 670ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_fdatasync 148 671ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_fdatasync, "1s 0m"); 672ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_fdatasync, x0-1); FAIL; 673ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 674ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR__sysctl 149 675ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR__sysctl, "1s 1m"); 676ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR__sysctl, x0); FAIL; 677ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 678ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_mlock 150 679ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_mlock, "2s 0m"); 680ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_mlock, x0, x0+1); FAIL; 681ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 682ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_munlock 151 683ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_munlock, "2s 0m"); 684ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_munlock, x0, x0+1); FAIL; 685ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 686ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_mlockall 152 687ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_mlockall, "1s 0m"); 688ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_mlockall, x0-1); FAIL; 689ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 690ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_munlockall 153 691ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_munlockall, "0s 0m"); 692ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_munlockall); SUCC_OR_FAILx(EPERM); 693ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 694ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_sched_setparam 154 695ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_sched_setparam, "2s 1m"); 696ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_sched_setparam, x0, x0); FAIL; 697ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 698ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_sched_getparam 155 699ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_sched_getparam, "2s 1m"); 700ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_sched_getparam, x0, x0); FAIL; 701ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 702ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_sched_setscheduler 156 703ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_sched_setscheduler, "3s 1m"); 704ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_sched_setscheduler, x0-1, x0, x0+1); FAIL; 705ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 706ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_sched_getscheduler 157 707ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_sched_getscheduler, "1s 0m"); 708ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_sched_getscheduler, x0-1); FAIL; 709ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 710ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_sched_yield 158 711ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_sched_yield, "0s 0m"); 712ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_sched_yield); SUCC; 713ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 714ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_sched_get_priority_max 159 715ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_sched_get_priority_max, "1s 0m"); 716ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_sched_get_priority_max, x0-1); FAIL; 717ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 718ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_sched_get_priority_min 160 719ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_sched_get_priority_min, "1s 0m"); 720ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_sched_get_priority_min, x0-1); FAIL; 721ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 722ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_sched_rr_get_interval 161 723ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_sched_rr_get_interval, "n/a"); 724ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown //SY(__NR_sched_rr_get_interval); // (Not yet handled by Valgrind) FAIL; 725ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 726ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_nanosleep 162 727ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_nanosleep, "2s 2m"); 728ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_nanosleep, x0, x0+1); FAIL; 729ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 730ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_mremap 163 731ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_mremap, "5s 0m"); 732ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_mremap, x0+1, x0, x0, x0+MREMAP_FIXED, x0); FAILx(EINVAL); 733ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 734ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_setresuid 164 735ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_setresuid, "3s 0m"); 736ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_setresuid, x0, x0, x0); FAIL; 737ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 738ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_getresuid 165 739ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_getresuid, "3s 3m"); 740ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_getresuid, x0, x0, x0); FAIL; 741ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 742ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_vm86 166 743ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_vm86, "n/a"); 744ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // (will probably never be handled by Valgrind) 745ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 746ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_query_module 167 747ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_query_module, "ni"); 748ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_query_module); FAIL; 749ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 750ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_poll 168 751ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_poll, "3s 1m"); 752ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_poll, x0, x0+1, x0); FAIL; 753ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 754ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_nfsservctl 169 755ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_nfsservctl, "n/a"); 756ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown //SY(__NR_nfsservctl); // (Not yet handled by Valgrind) FAIL; 757ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 758ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_setresgid 170 759ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_setresgid, "3s 0m"); 760ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_setresgid, x0, x0, x0); FAIL; 761ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 762ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_getresgid 171 763ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_getresgid, "3s 3m"); 764ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_getresgid, x0, x0, x0); FAIL; 765ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 766ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_prctl 172 767ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_prctl, "5s 0m"); 768ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_prctl, x0, x0, x0, x0, x0); FAIL; 769ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 770ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_rt_sigreturn 173 771ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_rt_sigreturn, "n/a"); 772ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown //SY(__NR_rt_sigreturn); // (Not yet handled by Valgrind) FAIL; 773ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 774ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_rt_sigaction 174 775ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_rt_sigaction, "4s 4m"); 776ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_rt_sigaction, x0, x0+&px[2], x0+&px[2], x0); FAIL; 777ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 778ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_rt_sigprocmask 175 779ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_rt_sigprocmask, "4s 2m"); 780ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_rt_sigprocmask, x0, x0+1, x0+1, x0); FAIL; 781ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 782ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_rt_sigpending 176 783ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_rt_sigpending, "2s 1m"); 784ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_rt_sigpending, x0, x0+1); FAIL; 785ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 786ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_rt_sigtimedwait 177 787ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_rt_sigtimedwait, "4s 3m"); 788ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_rt_sigtimedwait, x0+1, x0+1, x0+1, x0); FAIL; 789ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 790ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_rt_sigqueueinfo 178 791ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_rt_sigqueueinfo, "3s 1m"); 792ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_rt_sigqueueinfo, x0, x0+1, x0); FAIL; 793ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 794ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_rt_sigsuspend 179 795ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_rt_sigsuspend, "ignore"); 796ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // (I don't know how to test this...) 797ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 798ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_pread64 180 799ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_pread64, "5s 1m"); 800ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_pread64, x0, x0, x0+1, x0, x0); FAIL; 801ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 802ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_pwrite64 181 803ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_pwrite64, "5s 1m"); 804ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_pwrite64, x0, x0, x0+1, x0, x0); FAIL; 805ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 806ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_chown 182 807ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_chown, "3s 1m"); 808ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_chown, x0, x0, x0); FAIL; 809ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 810ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_getcwd 183 811ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_getcwd, "2s 1m"); 812ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_getcwd, x0, x0+1); FAIL; 813ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 814ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_capget 184 815ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_capget, "2s 2m"); 816436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov SY(__NR_capget, x0, x0+1); FAIL; 817ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 818ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_capset 185 819ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_capset, "2s 2m"); 820ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_capset, x0, x0); FAIL; 821ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 822ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_sigaltstack 186 823ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown { 824ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown struct our_sigaltstack { 825ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown void *ss_sp; 826ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown int ss_flags; 827ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown size_t ss_size; 828ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown } ss; 829ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown ss.ss_sp = NULL; 830ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown ss.ss_flags = 0; 831ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown ss.ss_size = 0; 832ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown VALGRIND_MAKE_MEM_NOACCESS(& ss, sizeof(struct our_sigaltstack)); 833ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_sigaltstack, "2s 2m"); 834ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_sigaltstack, x0+&ss, x0+&ss); SUCC; 835ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown } 836ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 837ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_sendfile 187 838ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_sendfile, "4s 1m"); 839ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_sendfile, x0, x0, x0+1, x0); FAIL; 840ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 841ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_getpmsg 188 842ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // Could do 5s 4m with more effort, but I can't be bothered for this 843ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // crappy non-standard syscall. 844ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_getpmsg, "5s 0m"); 845ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_getpmsg, x0, x0, x0, x0); FAIL; 846ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 847ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_putpmsg 189 848ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // Could do 5s 2m with more effort, but I can't be bothered for this 849ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // crappy non-standard syscall. 850ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_putpmsg, "5s 0m"); 851ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_putpmsg, x0, x0, x0, x0, x0); FAIL; 852ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 853ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_vfork 190 854ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_vfork, "other"); 855ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // (sse scalar_vfork.c) 856ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 857ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_ugetrlimit 191 858ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_ugetrlimit, "2s 1m"); 859ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_ugetrlimit, x0, x0); FAIL; 860ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 861ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_mmap2 192 862ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_mmap2, "6s 0m"); 863ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_mmap2, x0, x0, x0, x0, x0-1, x0); FAIL; 864ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 865ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_truncate64 193 866ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_truncate64, "3s 1m"); 867ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_truncate64, x0, x0, x0); FAIL; 868ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 869ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_ftruncate64 194 870ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_ftruncate64, "3s 0m"); 871ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_ftruncate64, x0, x0, x0); FAIL; 872ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 873ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_stat64 195 874ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_stat64, "2s 2m"); 875ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_stat64, x0, x0); FAIL; 876ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 877ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_lstat64 196 878ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_lstat64, "2s 2m"); 879ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_lstat64, x0, x0); FAIL; 880ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 881ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_fstat64 197 882ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_fstat64, "2s 1m"); 883ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_fstat64, x0, x0); FAIL; 884ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 885ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_lchown32 198 886ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_lchown32, "3s 1m"); 887ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_lchown32, x0, x0, x0); FAIL; 888ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 889ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_getuid32 199 890ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_getuid32, "0s 0m"); 891ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_getuid32); SUCC; 892ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 893ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_getgid32 200 894ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_getgid32, "0s 0m"); 895ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_getgid32); SUCC; 896ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 897ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_geteuid32 201 898ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_geteuid32, "0s 0m"); 899ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_geteuid32); SUCC; 900ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 901ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_getegid32 202 902ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_getegid32, "0s 0m"); 903ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_getegid32); SUCC; 904ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 905ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_setreuid32 203 906ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_setreuid32, "2s 0m"); 907ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_setreuid32, x0, x0); FAIL; 908ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 909ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_setregid32 204 910ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_setregid32, "2s 0m"); 911ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_setregid32, x0, x0); FAIL; 912ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 913ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_getgroups32 205 914ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_getgroups32, "2s 1m"); 915ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_getgroups32, x0+1, x0+1); FAIL; 916ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 917ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_setgroups32 206 918ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_setgroups32, "2s 1m"); 919ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_setgroups32, x0+1, x0+1); FAIL; 920ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 921ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_fchown32 207 922ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_fchown32, "3s 0m"); 923ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_fchown32, x0, x0, x0); FAIL; 924ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 925ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_setresuid32 208 926ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_setresuid32, "3s 0m"); 927ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_setresuid32, x0, x0, x0); FAIL; 928ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 929ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_getresuid32 209 930ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_getresuid32, "3s 3m"); 931ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_getresuid32, x0, x0, x0); FAIL; 932ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 933ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_setresgid32 210 934ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_setresgid32, "3s 0m"); 935ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_setresgid32, x0, x0, x0); FAIL; 936ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 937ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_getresgid32 211 938ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_getresgid32, "3s 3m"); 939ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_getresgid32, x0, x0, x0); FAIL; 940ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 941ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_chown32 212 942ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_chown32, "3s 1m"); 943ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_chown32, x0, x0, x0); FAIL; 944ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 945ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_setuid32 213 946ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_setuid32, "1s 0m"); 947ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_setuid32, x0); FAIL; 948ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 949ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_setgid32 214 950ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_setgid32, "1s 0m"); 951ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_setgid32, x0); FAIL; 952ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 953ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_setfsuid32 215 954ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_setfsuid32, "1s 0m"); 955ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_setfsuid32, x0); SUCC; // This syscall has a stupid return value 956ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 957ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_setfsgid32 216 958ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_setfsgid32, "1s 0m"); 959ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_setfsgid32, x0); SUCC; // This syscall has a stupid return value 960ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 961ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_pivot_root 217 962ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_pivot_root, "n/a"); 963ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown //SY(__NR_pivot_root); // (Not yet handled by Valgrind) FAIL; 964ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 965ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_mincore 218 966ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_mincore, "3s 1m"); 967ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_mincore, x0, x0+40960, x0); FAIL; 968ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 969ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_madvise 219 970ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_madvise, "3s 0m"); 971ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_madvise, x0, x0+1, x0); FAILx(ENOMEM); 972ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 973ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_getdents64 220 974ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_getdents64, "3s 1m"); 975ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_getdents64, x0, x0, x0+1); FAIL; 976ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 977ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_fcntl64 221 978ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // As with sys_open(), we don't trigger errors for the 1st two args for 979ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // the later ones. 980ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // For F_GETFD the 3rd arg is ignored. 981ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_fcntl64, "(GETFD) 2s 0m"); 982ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_fcntl64, x0-1, x0+F_GETFD, x0); FAILx(EBADF); 983ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 984ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // For F_DUPFD the 3rd arg is 'arg' 985ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_fcntl64, "(DUPFD) 1s 0m"); 986ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_fcntl64, -1, F_DUPFD, x0); FAILx(EBADF); 987ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 988ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // For F_GETLK the 3rd arg is 'lock'. 989ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // On x86, this fails w/EBADF. But on amd64 in 32-bit mode it fails 990ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // w/EFAULT. 991ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_fcntl64, "(GETLK) 1s 0m"); 992ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_fcntl64, -1, +F_GETLK, x0); FAIL; //FAILx(EBADF); 993ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 994ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // 222 995ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(222, "ni"); 996ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(222); FAIL; 997ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 998ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // 223 999ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(223, "ni"); 1000ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(223); FAIL; 1001ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1002ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_gettid 224 1003ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_gettid, "n/a"); 1004ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown //SY(__NR_gettid); // (Not yet handled by Valgrind) FAIL; 1005ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1006ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_readahead 225 1007ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_readahead, "n/a"); 1008ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown //SY(__NR_readahead); // (Not yet handled by Valgrind) FAIL; 1009ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1010ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_setxattr 226 1011ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_setxattr, "5s 3m"); 1012ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_setxattr, x0, x0, x0, x0+1, x0); FAIL; 1013ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1014ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_lsetxattr 227 1015ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_lsetxattr, "5s 3m"); 1016ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_lsetxattr, x0, x0, x0, x0+1, x0); FAIL; 1017ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1018ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_fsetxattr 228 1019ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_fsetxattr, "5s 2m"); 1020ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_fsetxattr, x0, x0, x0, x0+1, x0); FAIL; 1021ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1022ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_getxattr 229 1023ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_getxattr, "4s 3m"); 1024ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_getxattr, x0, x0, x0, x0+1); FAIL; 1025ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1026ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_lgetxattr 230 1027ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_lgetxattr, "4s 3m"); 1028ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_lgetxattr, x0, x0, x0, x0+1); FAIL; 1029ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1030ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_fgetxattr 231 1031ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_fgetxattr, "4s 2m"); 1032ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_fgetxattr, x0, x0, x0, x0+1); FAIL; 1033ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1034ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_listxattr 232 1035ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_listxattr, "3s 2m"); 1036ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_listxattr, x0, x0, x0+1); FAIL; 1037ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1038ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_llistxattr 233 1039ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_llistxattr, "3s 2m"); 1040ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_llistxattr, x0, x0, x0+1); FAIL; 1041ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1042ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_flistxattr 234 1043ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_flistxattr, "3s 1m"); 1044ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_flistxattr, x0-1, x0, x0+1); FAIL; /* kernel returns EBADF, but both seem correct */ 1045ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1046ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_removexattr 235 1047ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_removexattr, "2s 2m"); 1048ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_removexattr, x0, x0); FAIL; 1049ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1050ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_lremovexattr 236 1051ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_lremovexattr, "2s 2m"); 1052ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_lremovexattr, x0, x0); FAIL; 1053ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1054ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_fremovexattr 237 1055ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_fremovexattr, "2s 1m"); 1056ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_fremovexattr, x0, x0); FAIL; 1057ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1058ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_tkill 238 1059ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_tkill, "n/a"); 1060ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown //SY(__NR_tkill); // (Not yet handled by Valgrind) FAIL; 1061ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1062ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_sendfile64 239 1063ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_sendfile64, "4s 1m"); 1064ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_sendfile64, x0, x0, x0+1, x0); FAIL; 1065ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1066ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_futex 240 1067ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown #ifndef FUTEX_WAIT 1068ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown #define FUTEX_WAIT 0 1069ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown #endif 1070ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // XXX: again, glibc not doing 6th arg means we have only 5s errors 1071ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_futex, "5s 2m"); 1072ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_futex, x0+FUTEX_WAIT, x0, x0, x0+1, x0, x0); FAIL; 1073ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1074ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_sched_setaffinity 241 1075ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_sched_setaffinity, "3s 1m"); 1076ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_sched_setaffinity, x0, x0+1, x0); FAIL; 1077ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1078ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_sched_getaffinity 242 1079ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_sched_getaffinity, "3s 1m"); 1080ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_sched_getaffinity, x0, x0+1, x0); FAIL; 1081ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1082ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_set_thread_area 243 1083ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_set_thread_area, "1s 1m"); 1084ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_set_thread_area, x0); FAILx(EFAULT); 1085ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1086ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_get_thread_area 244 1087ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_get_thread_area, "1s 1m"); 1088ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_get_thread_area, x0); FAILx(EFAULT); 1089ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1090ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_io_setup 245 1091ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_io_setup, "2s 1m"); 1092ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_io_setup, x0, x0); FAIL; 1093ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1094ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_io_destroy 246 1095ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown { 1096ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // jump through hoops to prevent the PRE(io_destroy) wrapper crashing. 1097ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown struct fake_aio_ring { 1098ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown unsigned id; /* kernel internal index number */ 1099ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown unsigned nr; /* number of io_events */ 1100ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // There are more fields in the real aio_ring, but the 'nr' field is 1101ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // the only one used by the PRE() wrapper. 1102ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown } ring = { 0, 0 }; 1103ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown struct fake_aio_ring* ringptr = ˚ 1104ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_io_destroy, "1s 0m"); 1105ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_io_destroy, x0+&ringptr); FAIL; 1106ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown } 1107ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1108ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_io_getevents 247 1109ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_io_getevents, "5s 2m"); 1110ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_io_getevents, x0, x0, x0+1, x0, x0+1); FAIL; 1111ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1112ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_io_submit 248 1113ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_io_submit, "3s 1m"); 1114ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_io_submit, x0, x0+1, x0); FAIL; 1115ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1116ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_io_cancel 249 1117ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_io_cancel, "3s 2m"); 1118ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_io_cancel, x0, x0, x0); FAIL; 1119ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1120ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_fadvise64 250 1121ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_fadvise64, "n/a"); 1122ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown //SY(__NR_fadvise64); // (Not yet handled by Valgrind) FAIL; 1123ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1124ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // 251 1125ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(251, "ni"); 1126ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(251); FAIL; 1127ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1128ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_exit_group 252 1129ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_exit_group, "other"); 1130ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // (see scalar_exit_group.c) 1131ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1132ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_lookup_dcookie 253 1133ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_lookup_dcookie, "4s 1m"); 1134ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_lookup_dcookie, x0, x0, x0, x0+1); FAIL; 1135ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1136ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_epoll_create 254 1137ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_epoll_create, "1s 0m"); 1138ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_epoll_create, x0); SUCC_OR_FAIL; 1139ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1140ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_epoll_ctl 255 1141ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_epoll_ctl, "4s 1m"); 1142ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_epoll_ctl, x0, x0, x0, x0); FAIL; 1143ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1144ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_epoll_wait 256 1145ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_epoll_wait, "4s 1m"); 1146ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_epoll_wait, x0, x0, x0+1, x0); FAIL; 1147ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1148ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_remap_file_pages 257 1149ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_remap_file_pages, "n/a"); 1150ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown //SY(__NR_remap_file_pages); // (Not yet handled by Valgrind) FAIL; 1151ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1152ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_set_tid_address 258 1153ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_set_tid_address, "1s 0m"); 1154ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_set_tid_address, x0); SUCC_OR_FAILx(ENOSYS); 1155ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1156ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_timer_create 259 1157ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_timer_create, "3s 2m"); 1158ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_timer_create, x0, x0+1, x0); FAIL; 1159ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1160ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_timer_settime (__NR_timer_create+1) 1161ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_timer_settime, "4s 2m"); 1162ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_timer_settime, x0, x0, x0, x0+1); FAIL; 1163ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1164ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_timer_gettime (__NR_timer_create+2) 1165ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_timer_gettime, "2s 1m"); 1166ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_timer_gettime, x0, x0); FAIL; 1167ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1168ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_timer_getoverrun (__NR_timer_create+3) 1169ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_timer_getoverrun, "1s 0m"); 1170ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_timer_getoverrun, x0); FAIL; 1171ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1172ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_timer_delete (__NR_timer_create+4) 1173ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_timer_delete, "1s 0m"); 1174ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_timer_delete, x0); FAIL; 1175ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1176ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_clock_settime (__NR_timer_create+5) 1177ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_clock_settime, "2s 1m"); 1178ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_clock_settime, x0, x0); FAIL; FAIL; 1179ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1180ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_clock_gettime (__NR_timer_create+6) 1181ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_clock_gettime, "2s 1m"); 1182ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_clock_gettime, x0, x0); FAIL; 1183ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1184ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_clock_getres (__NR_timer_create+7) 1185ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_clock_getres, "2s 1m"); 1186ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_clock_getres, x0+1, x0+1); FAIL; FAIL; 1187ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1188ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_clock_nanosleep (__NR_timer_create+8) 1189ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_clock_nanosleep, "n/a"); 1190ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown //SY(__NR_clock_nanosleep); // (Not yet handled by Valgrind) FAIL; 1191ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1192ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_statfs64 268 1193ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_statfs64, "3s 2m"); 1194ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_statfs64, x0, x0+1, x0); FAIL; 1195ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1196ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_fstatfs64 269 1197ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_fstatfs64, "3s 1m"); 1198ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_fstatfs64, x0, x0+1, x0); FAIL; 1199ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1200ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_tgkill 270 1201ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_tgkill, "n/a"); 1202ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown //SY(__NR_tgkill); // (Not yet handled by Valgrind) FAIL; 1203ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1204ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_utimes 271 1205ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_utimes, "2s 2m"); 1206ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_utimes, x0, x0+1); FAIL; 1207ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1208ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_fadvise64_64 272 1209ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_fadvise64_64, "n/a"); 1210ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown //SY(__NR_fadvise64_64); // (Not yet handled by Valgrind) FAIL; 1211ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1212ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_vserver 273 1213ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_vserver, "ni"); 1214ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_vserver); FAIL; 1215ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1216ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_mbind 274 1217ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_mbind, "n/a"); 1218ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown //SY(__NR_mbind); // (Not yet handled by Valgrind) FAIL; 1219ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1220ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_get_mempolicy 275 1221ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_get_mempolicy, "n/a"); 1222ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown //SY(__NR_get_mempolicy); // (Not yet handled by Valgrind) FAIL; 1223ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1224ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_set_mempolicy 276 1225ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_set_mempolicy, "n/a"); 1226ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown //SY(__NR_set_mempolicy); // (Not yet handled by Valgrind) FAIL; 1227ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1228ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_mq_open 277 1229ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_mq_open, "4s 3m"); 1230ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_mq_open, x0, x0+O_CREAT, x0, x0+1); FAIL; 1231ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1232ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_mq_unlink (__NR_mq_open+1) 1233ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_mq_unlink, "1s 1m"); 1234ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_mq_unlink, x0); FAIL; 1235ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1236ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_mq_timedsend (__NR_mq_open+2) 1237ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_mq_timedsend, "5s 2m"); 1238ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_mq_timedsend, x0, x0, x0+1, x0, x0+1); FAIL; 1239ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1240ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_mq_timedreceive (__NR_mq_open+3) 1241ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_mq_timedreceive, "5s 3m"); 1242ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_mq_timedreceive, x0, x0, x0+1, x0+1, x0+1); FAIL; 1243ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1244ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_mq_notify (__NR_mq_open+4) 1245ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_mq_notify, "2s 1m"); 1246ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_mq_notify, x0, x0+1); FAIL; 1247ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1248ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_mq_getsetattr (__NR_mq_open+5) 1249ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_mq_getsetattr, "3s 2m"); 1250ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_mq_getsetattr, x0, x0+1, x0+1); FAIL; 1251ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1252ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_sys_kexec_load 283 1253ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_sys_kexec_load, "ni"); 1254ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_sys_kexec_load); FAIL; 1255ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1256ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_epoll_create1 329 1257ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_epoll_create1, "1s 0m"); 1258ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_epoll_create1, x0); SUCC_OR_FAIL; 1259ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1260663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng // __NR_process_vm_readv 347 1261663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng GO(__NR_process_vm_readv, "6s 2m"); 1262663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng SY(__NR_process_vm_readv, x0, x0, x0+1, x0, x0+1, x0); FAIL; 1263663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 1264663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng // __NR_process_vm_writev 348 1265663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng GO(__NR_process_vm_writev, "6s 2m"); 1266663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng SY(__NR_process_vm_writev, x0, x0, x0+1, x0, x0+1, x0); FAIL; 1267663860b1408516d02ebfcb3a9999a134e6cfb223Ben Cheng 1268ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // no such syscall... 1269ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(9999, "1e"); 1270ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(9999); FAIL; 1271ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1272ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown // __NR_exit 1 1273ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown GO(__NR_exit, "1s 0m"); 1274ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown SY(__NR_exit, x0); FAIL; 1275ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1276ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown assert(0); 1277ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown} 1278ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 1279