From: John Hughes Date: Thu, 8 Mar 2001 17:27:20 +0000 (+0000) Subject: cope with FreeBSD compatability syscalls X-Git-Tag: v4.5.18~1078 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=cf1de759ed0bc7b83665beeb4953b6b37e9e186d;p=strace cope with FreeBSD compatability syscalls --- diff --git a/ChangeLog b/ChangeLog index dc83121a..872a7de1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2001-03-08 John Hughes + + * freebsd/syscalls.pl: On FreeBSD we must cope with COMPATibility syscalls, + pretend they have names ending with "?" so that -e trace=stat (for + example) will work. + * freebsd/i386/syscallent.h: add ? to compatability syscalls. + * freebsd/i386/syscall.h: consistency. + 2001-03-08 John Hughes * acconfig.h: add new ST_xxx defines. diff --git a/freebsd/i386/syscall.h b/freebsd/i386/syscall.h index a9020721..9b60900f 100644 --- a/freebsd/i386/syscall.h +++ b/freebsd/i386/syscall.h @@ -1,5 +1,5 @@ /* - * Automatically generated by ./../syscalls.pl on Thu Mar 8 11:47:44 2001 + * Automatically generated by ./../syscalls.pl on Thu Mar 8 18:14:07 2001 */ #define sys_syscall printargs diff --git a/freebsd/i386/syscallent.h b/freebsd/i386/syscallent.h index a8fb64e4..67e45d0e 100644 --- a/freebsd/i386/syscallent.h +++ b/freebsd/i386/syscallent.h @@ -1,5 +1,5 @@ /* - * Automatically generated by ./../syscalls.pl on Thu Mar 8 11:47:44 2001 + * Automatically generated by ./../syscalls.pl on Thu Mar 8 18:14:07 2001 */ { 1, 0, sys_syscall, "syscall" }, /* 0 */ @@ -10,7 +10,7 @@ { 3, TF, sys_open, "open" }, /* 5 */ { 1, TF, sys_close, "close" }, /* 6 */ { 4, TP, sys_wait4, "wait4" }, /* 7 */ - { 2, TF, sys_creat, "creat" }, /* 8 */ + { 2, TF, sys_creat, "creat?" }, /* 8 */ { 2, TF, sys_link, "link" }, /* 9 */ { 1, TF, sys_unlink, "unlink" }, /* 10 */ { -1, 0, printargs, "SYS_11" }, /* 11 */ @@ -21,7 +21,7 @@ { 3, TF, sys_chown, "chown" }, /* 16 */ { 1, 0, sys_break, "break" }, /* 17 */ { 3, 0, sys_getfsstat, "getfsstat" }, /* 18 */ - { 3, 0, sys_lseek, "lseek" }, /* 19 */ + { 3, 0, sys_lseek, "lseek?" }, /* 19 */ { 1, 0, sys_getpid, "getpid" }, /* 20 */ { 4, TF, sys_mount, "mount" }, /* 21 */ { 2, TF, sys_unmount, "unmount" }, /* 22 */ @@ -40,21 +40,21 @@ { 2, TF, sys_fchflags, "fchflags" }, /* 35 */ { 1, 0, sys_sync, "sync" }, /* 36 */ { 2, TS, sys_kill, "kill" }, /* 37 */ - { 2, TF, sys_stat, "stat" }, /* 38 */ + { 2, TF, sys_stat, "stat?" }, /* 38 */ { 1, 0, sys_getppid, "getppid" }, /* 39 */ - { 2, TF, sys_lstat, "lstat" }, /* 40 */ + { 2, TF, sys_lstat, "lstat?" }, /* 40 */ { 1, 0, sys_dup, "dup" }, /* 41 */ { 1, 0, sys_pipe, "pipe" }, /* 42 */ { 1, 0, sys_getegid, "getegid" }, /* 43 */ { 4, 0, sys_profil, "profil" }, /* 44 */ { 4, 0, sys_ktrace, "ktrace" }, /* 45 */ - { 3, TS, sys_sigaction, "sigaction" }, /* 46 */ + { 3, TS, sys_sigaction, "sigaction?" }, /* 46 */ { 1, 0, sys_getgid, "getgid" }, /* 47 */ - { 2, TS, sys_sigprocmask, "sigprocmask" }, /* 48 */ + { 2, TS, sys_sigprocmask, "sigprocmask?" }, /* 48 */ { 2, 0, sys_getlogin, "getlogin" }, /* 49 */ { 1, 0, sys_setlogin, "setlogin" }, /* 50 */ { 1, TF, sys_acct, "acct" }, /* 51 */ - { 1, TS, sys_sigpending, "sigpending" }, /* 52 */ + { 1, TS, sys_sigpending, "sigpending?" }, /* 52 */ { 2, TS, sys_sigaltstack, "sigaltstack" }, /* 53 */ { 3, 0, sys_ioctl, "ioctl" }, /* 54 */ { 1, 0, sys_reboot, "reboot" }, /* 55 */ @@ -64,16 +64,16 @@ { 3, TF|TP, sys_execve, "execve" }, /* 59 */ { 1, 0, sys_umask, "umask" }, /* 60 */ { 1, TF, sys_chroot, "chroot" }, /* 61 */ - { 2, TF, sys_fstat, "fstat" }, /* 62 */ - { 4, 0, sys_getkerninfo, "getkerninfo" }, /* 63 */ - { 1, 0, sys_getpagesize, "getpagesize" }, /* 64 */ + { 2, TF, sys_fstat, "fstat?" }, /* 62 */ + { 4, 0, sys_getkerninfo, "getkerninfo?" }, /* 63 */ + { 1, 0, sys_getpagesize, "getpagesize?" }, /* 64 */ { 3, 0, sys_msync, "msync" }, /* 65 */ { 1, TP, sys_vfork, "vfork" }, /* 66 */ { -1, 0, printargs, "SYS_67" }, /* 67 */ { -1, 0, printargs, "SYS_68" }, /* 68 */ { 1, 0, sys_sbrk, "sbrk" }, /* 69 */ { 1, 0, sys_sstk, "sstk" }, /* 70 */ - { 6, 0, sys_mmap, "mmap" }, /* 71 */ + { 6, 0, sys_mmap, "mmap?" }, /* 71 */ { 1, 0, sys_vadvise, "vadvise" }, /* 72 */ { 2, 0, sys_munmap, "munmap" }, /* 73 */ { 3, 0, sys_mprotect, "mprotect" }, /* 74 */ @@ -86,11 +86,11 @@ { 1, 0, sys_getpgrp, "getpgrp" }, /* 81 */ { 2, 0, sys_setpgid, "setpgid" }, /* 82 */ { 3, 0, sys_setitimer, "setitimer" }, /* 83 */ - { 1, TP, sys_wait, "wait" }, /* 84 */ + { 1, TP, sys_wait, "wait?" }, /* 84 */ { 1, TF, sys_swapon, "swapon" }, /* 85 */ { 2, 0, sys_getitimer, "getitimer" }, /* 86 */ - { 2, 0, sys_gethostname, "gethostname" }, /* 87 */ - { 2, 0, sys_sethostname, "sethostname" }, /* 88 */ + { 2, 0, sys_gethostname, "gethostname?" }, /* 87 */ + { 2, 0, sys_sethostname, "sethostname?" }, /* 88 */ { 1, 0, sys_getdtablesize, "getdtablesize" }, /* 89 */ { 2, 0, sys_dup2, "dup2" }, /* 90 */ { -1, 0, printargs, "SYS_91" }, /* 91 */ @@ -103,20 +103,20 @@ { 3, TN, sys_connect, "connect" }, /* 98 */ { 3, TN, sys_accept, "accept" }, /* 99 */ { 2, 0, sys_getpriority, "getpriority" }, /* 100 */ - { 4, TN, sys_send, "send" }, /* 101 */ - { 4, TN, sys_recv, "recv" }, /* 102 */ - { 1, TS, sys_sigreturn, "sigreturn" }, /* 103 */ + { 4, TN, sys_send, "send?" }, /* 101 */ + { 4, TN, sys_recv, "recv?" }, /* 102 */ + { 1, TS, sys_sigreturn, "sigreturn?" }, /* 103 */ { 3, TN, sys_bind, "bind" }, /* 104 */ { 5, TN, sys_setsockopt, "setsockopt" }, /* 105 */ { 2, TN, sys_listen, "listen" }, /* 106 */ { -1, 0, printargs, "SYS_107" }, /* 107 */ - { 3, TS, sys_sigvec, "sigvec" }, /* 108 */ - { 1, TS, sys_sigblock, "sigblock" }, /* 109 */ - { 1, TS, sys_sigsetmask, "sigsetmask" }, /* 110 */ - { 1, TS, sys_sigsuspend, "sigsuspend" }, /* 111 */ - { 2, TS, sys_sigstack, "sigstack" }, /* 112 */ - { 3, TN, sys_recvmsg, "recvmsg" }, /* 113 */ - { 3, TN, sys_sendmsg, "sendmsg" }, /* 114 */ + { 3, TS, sys_sigvec, "sigvec?" }, /* 108 */ + { 1, TS, sys_sigblock, "sigblock?" }, /* 109 */ + { 1, TS, sys_sigsetmask, "sigsetmask?" }, /* 110 */ + { 1, TS, sys_sigsuspend, "sigsuspend?" }, /* 111 */ + { 2, TS, sys_sigstack, "sigstack?" }, /* 112 */ + { 3, TN, sys_recvmsg, "recvmsg?" }, /* 113 */ + { 3, TN, sys_sendmsg, "sendmsg?" }, /* 114 */ { -1, 0, printargs, "SYS_115" }, /* 115 */ { 2, 0, sys_gettimeofday, "gettimeofday" }, /* 116 */ { 2, 0, sys_getrusage, "getrusage" }, /* 117 */ @@ -131,8 +131,8 @@ { 2, 0, sys_setreuid, "setreuid" }, /* 126 */ { 2, 0, sys_setregid, "setregid" }, /* 127 */ { 2, TF, sys_rename, "rename" }, /* 128 */ - { 2, TF, sys_truncate, "truncate" }, /* 129 */ - { 2, 0, sys_ftruncate, "ftruncate" }, /* 130 */ + { 2, TF, sys_truncate, "truncate?" }, /* 129 */ + { 2, 0, sys_ftruncate, "ftruncate?" }, /* 130 */ { 2, 0, sys_flock, "flock" }, /* 131 */ { 2, 0, sys_mkfifo, "mkfifo" }, /* 132 */ { 6, TN, sys_sendto, "sendto" }, /* 133 */ @@ -143,22 +143,22 @@ { 2, TF, sys_utimes, "utimes" }, /* 138 */ { -1, 0, printargs, "SYS_139" }, /* 139 */ { 2, 0, sys_adjtime, "adjtime" }, /* 140 */ - { 3, TN, sys_getpeername, "getpeername" }, /* 141 */ - { 1, 0, sys_gethostid, "gethostid" }, /* 142 */ - { 1, 0, sys_sethostid, "sethostid" }, /* 143 */ - { 2, 0, sys_getrlimit, "getrlimit" }, /* 144 */ - { 2, 0, sys_setrlimit, "setrlimit" }, /* 145 */ - { 2, TS, sys_killpg, "killpg" }, /* 146 */ + { 3, TN, sys_getpeername, "getpeername?" }, /* 141 */ + { 1, 0, sys_gethostid, "gethostid?" }, /* 142 */ + { 1, 0, sys_sethostid, "sethostid?" }, /* 143 */ + { 2, 0, sys_getrlimit, "getrlimit?" }, /* 144 */ + { 2, 0, sys_setrlimit, "setrlimit?" }, /* 145 */ + { 2, TS, sys_killpg, "killpg?" }, /* 146 */ { 1, 0, sys_setsid, "setsid" }, /* 147 */ { 4, 0, sys_quotactl, "quotactl" }, /* 148 */ - { 1, 0, sys_quota, "quota" }, /* 149 */ + { 1, 0, sys_quota, "quota?" }, /* 149 */ { 3, TN, sys_getsockname, "getsockname" }, /* 150 */ { -1, 0, printargs, "SYS_151" }, /* 151 */ { -1, 0, printargs, "SYS_152" }, /* 152 */ { -1, 0, printargs, "SYS_153" }, /* 153 */ { -1, 0, printargs, "SYS_154" }, /* 154 */ { 2, 0, sys_nfssvc, "nfssvc" }, /* 155 */ - { 4, 0, sys_getdirentries, "getdirentries" }, /* 156 */ + { 4, 0, sys_getdirentries, "getdirentries?" }, /* 156 */ { 2, TF, sys_statfs, "statfs" }, /* 157 */ { 2, 0, sys_fstatfs, "fstatfs" }, /* 158 */ { -1, 0, printargs, "SYS_159" }, /* 159 */ diff --git a/freebsd/syscalls.pl b/freebsd/syscalls.pl index 0dc389ae..84fd811c 100644 --- a/freebsd/syscalls.pl +++ b/freebsd/syscalls.pl @@ -110,11 +110,15 @@ while () { $_ = "$_$line"; } - if (/^(\d+)\s+(?:MPSAFE\s+)?\w+\s+\w+\s+\{\s*([^}]+)\s*\}([^}]*)$/) { - my($proto, $ext, $name, $nargs, @args, $pfunc, $cat); - - $proto = $2; - $ext = $3; + if (/^(\d+)\s+(?:MPSAFE\s+)?(\w+)\s+\w+\s+\{\s*([^}]+)\s*\}([^}]*)$/) { + my($compat, $proto, $ext, $name, $nargs, @args, $pfunc, $cat); + + next if $2 eq 'OBSOL' || $2 eq 'UNIMPL'; + + $compat = $2 eq 'COMPAT' ? '?' : ""; + + $proto = $3; + $ext = $4; if ($1 > $sysnum) { # syscall gap while($sysnum < $1) { @@ -142,6 +146,7 @@ while () { } else { $cat = "0"; } + $name .= $compat; print " { $nargs,\t$cat,\t$pfunc,\t\"$name\"\t}, /* $sysnum */\n"; $sysnum++; } else {