README-linux: updated to note that strace might not compile

with development kernels
bjm.c: sys_query_module: check if malloc succeeds
system.c: sys_cap[gs]et(): check if malloc succeeds, only malloc once
linux/syscallent.h: updated for 2.3.99pre3
linux/alpha/syscallent.h: updated for 2.3.99pre3, add all osf syscalls
even though Linux doesn't implement them
syscall.c: add global variables for MIPS registers as well
syscall.c: move global variables to before get_scno since that uses them
util.c: oops, misspelled defined
process.c: fix ptrace calls in change_syscall
mem.c: decode sys_madvise
Merge patch from Topi Miettinen <Topi.Miettinen@nic.fi>
+ add support for quotactl, fdatasync, mlock, mlockall, munlockall & acct
+ small fix for RLIMIT_* and RUSAGE_BOTH
+ enhace support for capget and capset
This commit is contained in:
Wichert Akkerman 2000-04-10 22:22:31 +00:00
parent faf722234d
commit c792698a99
27 changed files with 1874 additions and 1547 deletions

View File

@ -3,6 +3,7 @@ Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
Copyright (c) 1993 Ulrich Pegelow <pegelow@moorea.uni-muenster.de>
Copyright (c) 1995, 1996 Michael Elizabeth Chastain <mec@duracef.shout.net>
Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
Copyright (c) 1999,2000 Wichert Akkerman <wakkerma@debian.org>
All rights reserved.
Redistribution and use in source and binary forms, with or without

View File

@ -38,3 +38,4 @@ porting to new systems:
Richard Braakman <dark@xs4all.nl>
Florian Lohoff <flo@rfc822.org>
D.J. Barrow <djbarrow@de.ibm.com>
Topi Miettinen <Topi.Miettinen@nic.fi>

View File

@ -1,3 +1,22 @@
2000-04-09 Wichert Akkerman <wakkerma@debian.org>
* README-linux: updated to note that strace might not compile
with development kernels
* bjm.c: sys_query_module: check if malloc succeeds
* system.c: sys_cap[gs]et(): check if malloc succeeds, only malloc once
* linux/syscallent.h: updated for 2.3.99pre3
* linux/alpha/syscallent.h: updated for 2.3.99pre3, add all osf syscalls
even though Linux doesn't implement them
* syscall.c: add global variables for MIPS registers as well
* syscall.c: move global variables to before get_scno since that uses them
* util.c: oops, misspelled defined
* process.c: fix ptrace calls in change_syscall
* mem.c: decode sys_madvise
* Merge patch from Topi Miettinen <Topi.Miettinen@nic.fi>
+ add support for quotactl, fdatasync, mlock, mlockall, munlockall & acct
+ small fix for RLIMIT_* and RUSAGE_BOTH
+ enhace support for capget and capset
2000-02-19 Wichert Akkerman <wakkerma@debian.org>
* test/vfork.c: new file to test vfork traces

View File

@ -22,7 +22,7 @@ WARNFLAGS = @WARNFLAGS@
# OS is one of `linux', `sunos4', or `svr4'.
OS = @opsys@
# ARCH is one of `i386', `m68k', `sparc', `arm' or `mips'.
# ARCH is one of `i386', `m68k', `sparc', `arm', `mips' or `ia64'.
ARCH = @arch@
# OSARCH is OS/ARCH if it exists, otherwise just OS.
OSARCH = @osarch@

1
NEWS
View File

@ -1,6 +1,7 @@
Changes in 4.3
==============
* Linux/ia64 port added
* The usual Linux syscall updates (includes 32bit uid/gid support)
Changes in 4.2
==============

2
README
View File

@ -24,7 +24,7 @@ See the file CREDITS to see who has contributed to strace.
See the file TODO if you feel like helping out.
You can get the latest version of strace from its homepage at
http://www.wi.leidenuniv.nl/~wichert/strace/ .
http://www.liacs.nl/~wichert/strace/ .
Please send bug reports and enhancements to the strace
mailinglist at strace@lists.wiggy.net, or to Wichert Akkerman

View File

@ -3,18 +3,30 @@ Strace has been ported by Branko Lankester <branko@hacktic.nl>
to run on Linux systems. Since then it has been greatly modified
by various other people.
If you want to compile strace on a Linux system please make sure
that you use very recent kernel headers. Strace needs those to get
the proper data structures used by the kernel, since these can be
different from the structures that the C library uses. Currently
you will need a 2.2.7 or newer kernel.
If you want to compile strace on a Linux system please make sure that
you use recent kernel headers. Strace needs those to get the proper data
structures and constatns used by the kernel, since these can be
different from the structures that the C library uses. Currently you
will need at least a 2.2.7 or newer kernel.
There are two ways to do this:
* you can link /usr/include/linux and /usr/include/asm to the corresponding
directories in your kernel source-tree.
To complicate things a bit further strace might not compile if you are
using development kernels. These tend to have headers that conflict with
the headers from libc which makes it impossible to use them.
* you can tell make where your kernel sources are. For example if you have your
kernelsource in /usr/src/linux, you should invoke make like this:
There are three ways to compile strace with other kernel headers:
* Specify the location in CFLAGS when running configure
make CFLAGS=-I/usr/src/linux/include
CFLAGS=-I/usr/src/linux/include ./configure
* you can tell make where your kernel sources are. For example if you
have your kernelsource in /usr/src/linux, you can invoke make like
this:
make CFLAGS="\$CFLAGS -I/usr/src/linux/include"
(the extra \$CFLAGS is there to make sure we don't override any CFLAGS
settings that configure has found).
* you can link /usr/include/linux and /usr/include/asm to the
corresponding directories in your kernel source-tree.

13
TODO
View File

@ -1,11 +1,12 @@
-- new entries from wta
clone doesn't work; cloned processes can hang
- partially done: finish up change_syscall using new setargs
- do setargs for non-ia64
rename functions that are used for general things:
* clone doesn't work; cloned processes can hang
* partially done: finish up change_syscall using new setargs
* do setargs for non-ia64
* rename functions that are used for general things:
sys_chdir -> general_1stringarg
generate syscallent.h from the kernel sources
* generate syscallent.h from the kernel sources (asm/unistd.h)
* update linux/sparc syscall entries; Linux messed things up by overriding
all kinds of SunOS entries
-- old entries from jrs
attempt reopen of /proc file if we get EAGAIN from any /proc ioctl

34
bjm.c
View File

@ -102,14 +102,19 @@ struct tcb *tcp;
char* mod = data;
size_t idx;
umoven(tcp, tcp->u_arg[2], tcp->u_arg[3], data);
for (idx=0; idx<ret; idx++) {
if (idx!=0)
tprintf(",");
tprintf(mod);
mod+=strlen(mod)+1;
if (data==NULL) {
fprintf(stderr, "sys_query_module: No memory\n");
tprintf(" /* %Zu entries */ ", ret);
} else {
umoven(tcp, tcp->u_arg[2], tcp->u_arg[3], data);
for (idx=0; idx<ret; idx++) {
if (idx!=0)
tprintf(",");
tprintf(mod);
mod+=strlen(mod)+1;
}
free(data);
}
free(data);
} else
tprintf(" /* %Zu entries */ ", ret);
tprintf("}, %Zu", ret);
@ -122,12 +127,17 @@ struct tcb *tcp;
struct module_symbol* sym = (struct module_symbol*)data;
size_t idx;
umoven(tcp, tcp->u_arg[2], tcp->u_arg[3], data);
for (idx=0; idx<ret; idx++) {
tprintf("{name=%s, value=%lu} ", data+(long)sym->name, sym->value);
sym++;
if (data==NULL) {
fprintf(stderr, "sys_query_module: No memory\n");
tprintf(" /* %Zu entries */ ", ret);
} else {
umoven(tcp, tcp->u_arg[2], tcp->u_arg[3], data);
for (idx=0; idx<ret; idx++) {
tprintf("{name=%s, value=%lu} ", data+(long)sym->name, sym->value);
sym++;
}
free(data);
}
free(data);
} else
tprintf(" /* %Zu entries */ ", ret);
tprintf("}, %Zd", ret);

17
file.c
View File

@ -611,7 +611,7 @@ long addr;
realprintstat(tcp, &statbuf);
}
#ifdef STAT64
#ifdef HAVE_STAT64
static void
printstat64(tcp, addr)
struct tcb *tcp;
@ -683,7 +683,7 @@ long addr;
else
tprintf("...}");
}
#endif /* STAT64 */
#endif /* HAVE_STAT64 */
#if defined(linux) && !defined(IA64)
static void
@ -1230,6 +1230,19 @@ struct tcb *tcp;
#endif /* SUNOS4 */
int
sys_pivotroot(tcp)
struct tcb *tcp;
{
if (entering(tcp)) {
printpath(tcp, tcp->u_arg[0]);
tprintf(", ");
printpath(tcp, tcp->u_arg[1]);
}
return 0;
}
/* directory */
int
sys_chdir(tcp)

View File

@ -28,375 +28,381 @@
* $Id$
*/
{ 5, 0, printargs, "SYS_0" }, /* 0 */
{ 1, TP, sys_exit, "exit" }, /* 1 */
{ 0, TP, sys_fork, "fork" }, /* 2 */
{ 3, TF, sys_read, "read" }, /* 3 */
{ 3, TF, sys_write, "write" }, /* 4 */
{ 5, 0, printargs, "SYS_5" }, /* 5 */
{ 1, 0, sys_close, "close" }, /* 6 */
{ 4, TP, sys_osf_wait4, "osf_wait4" }, /* 7 */
{ 5, 0, printargs, "SYS_8" }, /* 8 */
{ 2, TF, sys_link, "link" }, /* 9 */
{ 1, TF, sys_unlink, "unlink" }, /* 10 */
{ 5, 0, printargs, "SYS_11" }, /* 11 */
{ 1, TF, sys_chdir, "chdir" }, /* 12 */
{ 1, TF, sys_fchdir, "fchdir" }, /* 13 */
{ 3, TF, sys_mknod, "mknod" }, /* 14 */
{ 2, TF, sys_chmod, "chmod" }, /* 15 */
{ 3, TF, sys_chown, "chown" }, /* 16 */
{ 1, 0, sys_brk, "brk" }, /* 17 */
{ 5, 0, printargs, "SYS_18" }, /* 18 */
{ 3, TF, sys_lseek, "lseek" }, /* 19 */
{ 0, 0, sys_getpid, "getxpid" }, /* 20 */
{ 4, 0, printargs, "osf_mount" }, /* 21 */
{ 2, 0, sys_umount2, "umount" }, /* 22 */
{ 1, 0, sys_setuid, "setuid" }, /* 23 */
{ 0, 0, sys_getuid, "getxuid" }, /* 24 */
{ 5, 0, printargs, "SYS_25" }, /* 25 */
{ 4, 0, sys_ptrace, "ptrace" }, /* 26 */
{ 5, 0, printargs, "SYS_27" }, /* 27 */
{ 5, 0, printargs, "SYS_28" }, /* 28 */
{ 5, 0, printargs, "SYS_29" }, /* 29 */
{ 5, 0, printargs, "SYS_30" }, /* 30 */
{ 5, 0, printargs, "SYS_31" }, /* 31 */
{ 5, 0, printargs, "SYS_32" }, /* 32 */
{ 2, TF, sys_access, "access" }, /* 33 */
{ 5, 0, printargs, "SYS_34" }, /* 34 */
{ 5, 0, printargs, "SYS_35" }, /* 35 */
{ 0, 0, sys_sync, "sync" }, /* 36 */
{ 2, TS, sys_kill, "kill" }, /* 37 */
{ 5, 0, printargs, "SYS_38" }, /* 38 */
{ 2, 0, sys_setpgid, "setpgid" }, /* 39 */
{ 5, 0, printargs, "SYS_40" }, /* 40 */
{ 1, 0, sys_dup, "dup" }, /* 41 */
{ 1, 0, sys_pipe, "pipe" }, /* 42 */
{ 5, 0, printargs, "SYS_43" }, /* 43 */
{ 5, 0, printargs, "SYS_44" }, /* 44 */
{ 3, TF, sys_open, "open" }, /* 45 */
{ 5, 0, printargs, "SYS_46" }, /* 46 */
{ 1, 0, sys_getgid, "getxgid" }, /* 47 */
{ 3, TS, printargs, "osf_sigprocmask"}, /* 48 */
{ 5, 0, printargs, "SYS_49" }, /* 49 */
{ 5, 0, printargs, "SYS_50" }, /* 50 */
{ 1, TF, sys_acct, "acct" }, /* 51 */
{ 1, TS, sys_sigpending, "sigpending" }, /* 52 */
{ 5, 0, printargs, "SYS_53" }, /* 53 */
{ 3, 0, sys_ioctl, "ioctl" }, /* 54 */
{ 5, 0, printargs, "SYS_55" }, /* 55 */
{ 5, 0, printargs, "SYS_56" }, /* 56 */
{ 2, TF, sys_symlink, "symlink" }, /* 57 */
{ 3, TF, sys_readlink, "readlink" }, /* 58 */
{ 3, TF|TP, sys_execve, "execve" }, /* 59 */
{ 1, 0, sys_umask, "umask" }, /* 60 */
{ 1, TF, sys_chroot, "chroot" }, /* 61 */
{ 5, 0, printargs, "SYS_62" }, /* 62 */
{ 0, 0, sys_getpgrp, "getpgrp" }, /* 63 */
{ 0, 0, sys_getpagesize, "getpagesize" }, /* 64 */
{ 5, 0, printargs, "SYS_65" }, /* 65 */
{ 0, TP, sys_fork, "vfork" }, /* 66 */
{ 2, TF, sys_stat, "stat" }, /* 67 */
{ 2, TF, sys_lstat, "lstat" }, /* 68 */
{ 5, 0, printargs, "SYS_69" }, /* 69 */
{ 5, 0, printargs, "SYS_70" }, /* 70 */
{ 6, 0, sys_mmap, "mmap" }, /* 71 */
{ 5, 0, printargs, "SYS_72" }, /* 72 */
{ 2, 0, sys_munmap, "munmap" }, /* 73 */
{ 3, 0, sys_mprotect, "mprotect" }, /* 74 */
{ 0, 0, printargs, "madvise" }, /* 75 */
{ 0, 0, sys_vhangup, "vhangup" }, /* 76 */
{ 5, 0, printargs, "SYS_77" }, /* 77 */
{ 5, 0, printargs, "SYS_78" }, /* 78 */
{ 2, 0, sys_getgroups, "getgroups" }, /* 79 */
{ 2, 0, sys_setgroups, "setgroups" }, /* 80 */
{ 5, 0, printargs, "SYS_81" }, /* 81 */
{ 2, 0, sys_setpgrp, "setpgrp" }, /* 82 */
{ 3, 0, sys_osf_setitimer, "osf_setitimer" }, /* 83 */
{ 5, 0, printargs, "SYS_84" }, /* 84 */
{ 5, 0, printargs, "SYS_85" }, /* 85 */
{ 2, 0, sys_osf_getitimer, "osf_getitimer" }, /* 86 */
{ 2, 0, sys_gethostname, "gethostname" }, /* 87 */
{ 2, 0, sys_sethostname, "sethostname" }, /* 88 */
{ 0, 0, sys_getdtablesize, "getdtablesize" }, /* 89 */
{ 2, 0, sys_dup2, "dup2" }, /* 90 */
{ 2, 0, sys_fstat, "fstat" }, /* 91 */
{ 3, 0, sys_fcntl, "fcntl" }, /* 92 */
{ 5, 0, sys_osf_select, "osf_select" }, /* 93 */
{ 3, 0, sys_poll, "poll" }, /* 94 */
{ 1, 0, sys_fsync, "fsync" }, /* 95 */
{ 3, 0, sys_setpriority, "setpriority" }, /* 96 */
{ 3, TN, sys_socket, "socket" }, /* 97 */
{ 3, TN, sys_connect, "connect" }, /* 98 */
{ 3, TN, sys_accept, "accept" }, /* 99 */
{ 2, 0, sys_getpriority, "osf_getpriority"}, /* 100 */
{ 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 */
{ 5, 0, printargs, "SYS_107" }, /* 107 */
{ 5, 0, printargs, "SYS_108" }, /* 108 */
{ 5, 0, printargs, "SYS_109" }, /* 109 */
{ 5, 0, printargs, "SYS_110" }, /* 110 */
{ 3, TS, sys_sigsuspend, "sigsuspend" }, /* 111 */
{ 5, 0, printargs, "sigstack" }, /* 112 */
{ 3, TN, sys_recvmsg, "recvmsg" }, /* 113 */
{ 3, TN, sys_sendmsg, "sendmsg" }, /* 114 */
{ 5, 0, printargs, "SYS_115" }, /* 115 */
{ 2, 0, sys_osf_gettimeofday, "osf_gettimeofday"}, /* 116 */
{ 2, 0, sys_osf_getrusage, "osf_getrusage" }, /* 117 */
{ 5, TN, sys_getsockopt, "getsockopt" }, /* 118 */
{ 5, 0, printargs, "SYS_119" }, /* 119 */
{ 3, 0, sys_readv, "readv" }, /* 120 */
{ 3, 0, sys_writev, "writev" }, /* 121 */
{ 2, 0, sys_osf_settimeofday, "osf_settimeofday"}, /* 122 */
{ 3, 0, sys_fchown, "fchown" }, /* 123 */
{ 2, 0, sys_fchmod, "fchmod" }, /* 124 */
{ 6, TN, sys_recvfrom, "recvfrom" }, /* 125 */
{ 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, 0, sys_flock, "flock" }, /* 131 */
{ 1, 0, sys_setgid, "setgid" }, /* 132 */
{ 6, TN, sys_sendto, "sendto" }, /* 133 */
{ 2, TN, sys_shutdown, "shutdown" }, /* 134 */
{ 4, TN, sys_socketpair, "socketpair" }, /* 135 */
{ 2, TF, sys_mkdir, "mkdir" }, /* 136 */
{ 1, TF, sys_rmdir, "rmdir" }, /* 137 */
{ 2, 0, sys_osf_utimes, "osf_utimes" }, /* 138 */
{ 5, 0, printargs, "SYS_139" }, /* 139 */
{ 5, 0, printargs, "SYS_140" }, /* 140 */
{ 3, TN, sys_getpeername, "getpeername" }, /* 141 */
{ 5, 0, printargs, "SYS_142" }, /* 142 */
{ 5, 0, printargs, "SYS_143" }, /* 143 */
{ 2, 0, sys_getrlimit, "getrlimit" }, /* 144 */
{ 2, 0, sys_setrlimit, "setrlimit" }, /* 145 */
{ 5, 0, printargs, "SYS_146" }, /* 146 */
{ 0, 0, sys_setsid, "setsid" }, /* 147 */
{ 4, 0, sys_quotactl, "quotactl" }, /* 148 */
{ 5, 0, printargs, "SYS_149" }, /* 149 */
{ 3, TN, sys_getsockname, "getsockname" }, /* 150 */
{ 5, 0, printargs, "SYS_151" }, /* 151 */
{ 5, 0, printargs, "SYS_152" }, /* 152 */
{ 5, 0, printargs, "SYS_153" }, /* 153 */
{ 5, 0, printargs, "SYS_154" }, /* 154 */
{ 5, 0, printargs, "SYS_155" }, /* 155 */
{ 3, TS, sys_sigaction, "sigaction" }, /* 156 */
{ 5, 0, printargs, "SYS_157" }, /* 157 */
{ 5, 0, printargs, "SYS_158" }, /* 158 */
{ 4, 0, printargs, "osf_getdirentries"}, /* 159 */
{ 3, 0, osf_statfs, "osf_statfs" }, /* 160 */
{ 3, 0, osf_fstatfs, "osf_fstatfs" }, /* 161 */
{ 5, 0, printargs, "SYS_162" }, /* 162 */
{ 5, 0, printargs, "SYS_163" }, /* 163 */
{ 5, 0, printargs, "SYS_164" }, /* 164 */
{ 2, 0, printargs, "osf_getdomainname"}, /* 165 */
{ 2, 0, sys_setdomainname, "setdomainname" }, /* 166 */
{ 5, 0, printargs, "SYS_167" }, /* 167 */
{ 5, 0, printargs, "SYS_168" }, /* 168 */
{ 5, 0, printargs, "SYS_169" }, /* 169 */
{ 5, 0, printargs, "SYS_170" }, /* 170 */
{ 5, 0, printargs, "SYS_171" }, /* 171 */
{ 5, 0, printargs, "SYS_172" }, /* 172 */
{ 5, 0, printargs, "SYS_173" }, /* 173 */
{ 5, 0, printargs, "SYS_174" }, /* 174 */
{ 5, 0, printargs, "SYS_175" }, /* 175 */
{ 5, 0, printargs, "SYS_176" }, /* 176 */
{ 5, 0, printargs, "SYS_177" }, /* 177 */
{ 5, 0, printargs, "SYS_178" }, /* 178 */
{ 5, 0, printargs, "SYS_179" }, /* 179 */
{ 5, 0, printargs, "SYS_180" }, /* 180 */
{ 5, 0, printargs, "SYS_181" }, /* 181 */
{ 5, 0, printargs, "SYS_182" }, /* 182 */
{ 5, 0, printargs, "SYS_183" }, /* 183 */
{ 5, 0, printargs, "SYS_184" }, /* 184 */
{ 5, 0, printargs, "SYS_185" }, /* 185 */
{ 5, 0, printargs, "SYS_186" }, /* 186 */
{ 5, 0, printargs, "SYS_187" }, /* 187 */
{ 5, 0, printargs, "SYS_188" }, /* 188 */
{ 5, 0, printargs, "SYS_189" }, /* 189 */
{ 5, 0, printargs, "SYS_190" }, /* 190 */
{ 5, 0, printargs, "SYS_191" }, /* 191 */
{ 5, 0, printargs, "SYS_192" }, /* 192 */
{ 5, 0, printargs, "SYS_193" }, /* 193 */
{ 5, 0, printargs, "SYS_194" }, /* 194 */
{ 5, 0, printargs, "SYS_195" }, /* 195 */
{ 5, 0, printargs, "SYS_196" }, /* 196 */
{ 5, 0, printargs, "SYS_197" }, /* 197 */
{ 5, 0, printargs, "SYS_198" }, /* 198 */
{ 4, 0, printargs, "osf_swapon" }, /* 199 */
{ 4, TI, sys_msgctl, "msgctl" }, /* 200 */
{ 4, TI, sys_msgget, "msgget" }, /* 201 */
{ 4, TI, sys_msgrcv, "msgrcv" }, /* 202 */
{ 4, TI, sys_msgsnd, "msgsnd" }, /* 203 */
{ 4, TI, sys_semctl, "semctl" }, /* 204 */
{ 4, TI, sys_semget, "semget" }, /* 205 */
{ 4, TI, printargs, "semop" }, /* 206 */
{ 1, 0, printargs, "osf_utsname" }, /* 207 */
{ 3, TF, sys_chown, "lchown" }, /* 208 */
{ 3, TI, printargs, "osf_shmat" }, /* 209 */
{ 4, TI, sys_shmctl, "shmctl" }, /* 210 */
{ 4, TI, sys_shmdt, "shmdt" }, /* 211 */
{ 4, TI, sys_shmget, "shmget" }, /* 212 */
{ 5, 0, printargs, "SYS_213" }, /* 213 */
{ 5, 0, printargs, "SYS_214" }, /* 214 */
{ 5, 0, printargs, "SYS_215" }, /* 215 */
{ 5, 0, printargs, "SYS_216" }, /* 216 */
{ 3, 0, sys_msync, "msync" }, /* 217 */
{ 5, 0, printargs, "SYS_218" }, /* 218 */
{ 5, 0, printargs, "SYS_219" }, /* 219 */
{ 5, 0, printargs, "SYS_220" }, /* 220 */
{ 5, 0, printargs, "SYS_221" }, /* 221 */
{ 5, 0, printargs, "SYS_222" }, /* 222 */
{ 5, 0, printargs, "SYS_223" }, /* 223 */
{ 5, 0, printargs, "SYS_224" }, /* 224 */
{ 5, 0, printargs, "SYS_225" }, /* 225 */
{ 5, 0, printargs, "SYS_226" }, /* 226 */
{ 5, 0, printargs, "SYS_227" }, /* 227 */
{ 5, 0, printargs, "SYS_228" }, /* 228 */
{ 5, 0, printargs, "SYS_229" }, /* 229 */
{ 5, 0, printargs, "SYS_230" }, /* 230 */
{ 5, 0, printargs, "SYS_231" }, /* 231 */
{ 5, 0, printargs, "SYS_232" }, /* 232 */
{ 1, 0, sys_getpgid, "getpgid" }, /* 233 */
{ 1, 0, sys_getsid, "getsid" }, /* 234 */
{ 5, 0, sys_sigaltstack, "sigaltstack" }, /* 235 */
{ 5, 0, printargs, "SYS_236" }, /* 236 */
{ 5, 0, printargs, "SYS_237" }, /* 237 */
{ 5, 0, printargs, "SYS_238" }, /* 238 */
{ 5, 0, printargs, "SYS_239" }, /* 239 */
{ 5, 0, printargs, "osf_sysinfo" }, /* 240 */
{ 5, 0, printargs, "SYS_241" }, /* 241 */
{ 5, 0, printargs, "SYS_242" }, /* 242 */
{ 5, 0, printargs, "SYS_243" }, /* 243 */
{ 2, 0, printargs, "osf_proplist_syscall"}, /* 244 */
{ 5, 0, printargs, "SYS_245" }, /* 245 */
{ 5, 0, printargs, "SYS_246" }, /* 246 */
{ 5, 0, printargs, "SYS_247" }, /* 247 */
{ 5, 0, printargs, "SYS_248" }, /* 248 */
{ 5, 0, printargs, "SYS_249" }, /* 249 */
{ 2, 0, printargs, "osf_usleep_thread"}, /* 250 */
{ 5, 0, printargs, "SYS_251" }, /* 251 */
{ 5, 0, printargs, "SYS_252" }, /* 252 */
{ 5, 0, printargs, "SYS_253" }, /* 253 */
{ 5, 0, sys_sysfs, "sysfs" }, /* 254 */
{ 5, 0, printargs, "SYS_255" }, /* 255 */
{ 5, 0, printargs, "osf_getsysinfo"}, /* 256 */
{ 5, 0, printargs, "osf_setsysinfo"}, /* 257 */
{ 5, 0, printargs, "SYS_258" }, /* 258 */
{ 5, 0, printargs, "SYS_259" }, /* 259 */
{ 5, 0, printargs, "SYS_260" }, /* 260 */
{ 5, 0, printargs, "SYS_261" }, /* 261 */
{ 5, 0, printargs, "SYS_262" }, /* 262 */
{ 5, 0, printargs, "SYS_263" }, /* 263 */
{ 5, 0, printargs, "SYS_264" }, /* 264 */
{ 5, 0, printargs, "SYS_265" }, /* 265 */
{ 5, 0, printargs, "SYS_266" }, /* 266 */
{ 5, 0, printargs, "SYS_267" }, /* 267 */
{ 5, 0, printargs, "SYS_268" }, /* 268 */
{ 5, 0, printargs, "SYS_269" }, /* 269 */
{ 5, 0, printargs, "SYS_270" }, /* 270 */
{ 5, 0, printargs, "SYS_271" }, /* 271 */
{ 5, 0, printargs, "SYS_272" }, /* 272 */
{ 5, 0, printargs, "SYS_273" }, /* 273 */
{ 5, 0, printargs, "SYS_274" }, /* 274 */
{ 5, 0, printargs, "SYS_275" }, /* 275 */
{ 5, 0, printargs, "SYS_276" }, /* 276 */
{ 5, 0, printargs, "SYS_277" }, /* 277 */
{ 5, 0, printargs, "SYS_278" }, /* 278 */
{ 5, 0, printargs, "SYS_279" }, /* 279 */
{ 5, 0, printargs, "SYS_280" }, /* 280 */
{ 5, 0, printargs, "SYS_281" }, /* 281 */
{ 5, 0, printargs, "SYS_282" }, /* 282 */
{ 5, 0, printargs, "SYS_283" }, /* 283 */
{ 5, 0, printargs, "SYS_284" }, /* 284 */
{ 5, 0, printargs, "SYS_285" }, /* 285 */
{ 5, 0, printargs, "SYS_286" }, /* 286 */
{ 5, 0, printargs, "SYS_287" }, /* 287 */
{ 5, 0, printargs, "SYS_288" }, /* 288 */
{ 5, 0, printargs, "SYS_289" }, /* 289 */
{ 5, 0, printargs, "SYS_290" }, /* 290 */
{ 5, 0, printargs, "SYS_291" }, /* 291 */
{ 5, 0, printargs, "SYS_292" }, /* 292 */
{ 5, 0, printargs, "SYS_293" }, /* 293 */
{ 5, 0, printargs, "SYS_294" }, /* 294 */
{ 5, 0, printargs, "SYS_295" }, /* 295 */
{ 5, 0, printargs, "SYS_296" }, /* 296 */
{ 5, 0, printargs, "SYS_297" }, /* 297 */
{ 5, 0, printargs, "SYS_298" }, /* 298 */
{ 5, 0, printargs, "SYS_299" }, /* 299 */
{ 0, 0, sys_bdflush, "bdflush" }, /* 300 */
{ 3, 0, printargs, "sethae" }, /* 301 */
{ 5, TF, sys_mount, "mount" }, /* 302 */
{ 1, 0, sys_adjtimex, "adjtimex32" }, /* 303 */
{ 1, 0, sys_swapoff, "swapoff" }, /* 304 */
{ 3, 0, sys_getdents, "getdents" }, /* 305 */
{ 2, 0, sys_create_module, "create_module" }, /* 306 */
{ 4, 0, sys_init_module, "init_module" }, /* 307 */
{ 1, 0, sys_delete_module, "delete_module" }, /* 308 */
{ 1, 0, sys_get_kernel_syms, "get_kernel_syms"}, /* 309 */
{ 3, 0, sys_syslog, "syslog" }, /* 310 */
{ 3, 0, sys_reboot, "reboot" }, /* 311 */
{ 2, TP, sys_clone, "clone" }, /* 312 */
{ 1, 0, sys_uselib, "uselib" }, /* 313 */
{ 2, 0, sys_mlock, "mlock" }, /* 314 */
{ 2, 0, sys_munlock, "munlock" }, /* 315 */
{ 1, 0, sys_mlockall, "mlockall" }, /* 316 */
{ 1, 0, sys_munlockall, "munlockall" }, /* 317 */
{ 1, 0, sys_sysinfo, "sysinfo" }, /* 318 */
{ 1, 0, sys_sysctl, "sysctl" }, /* 319 */
{ 0, 0, sys_idle, "idle" }, /* 320 */
{ 1, 0, sys_umount, "oldumount" }, /* 321 */
{ 1, 0, sys_swapon, "swapon" }, /* 322 */
{ 1, 0, sys_times, "times" }, /* 323 */
{ 1, 0, sys_personality, "personality" }, /* 324 */
{ 1, 0, sys_setfsuid, "setfsuid" }, /* 325 */
{ 1, 0, sys_setfsgid, "setfsgid" }, /* 326 */
{ 2, 0, sys_ustat, "ustat" }, /* 327 */
{ 2, TF, sys_statfs, "statfs" }, /* 328 */
{ 2, 0, sys_fstatfs, "fstatfs" }, /* 329 */
{ 2, 0, sys_sched_setparam, "sched_setparam"}, /* 330 */
{ 2, 0, sys_sched_getparam, "sched_getparam"}, /* 331 */
{ 3, 0, sys_sched_setscheduler, "sched_setscheduler"}, /* 332 */
{ 2, 0, sys_sched_getscheduler, "sched_getscheduler"}, /* 333 */
{ 0, 0, sys_sched_yield, "sched_yield" }, /* 334 */
{ 1, 0, sys_sched_get_priority_max,"sched_get_priority_max"}, /* 335 */
{ 1, 0, sys_sched_get_priority_min,"sched_get_priority_min"}, /* 336 */
{ 2, 0, sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 337 */
{ 5, 0, sys_afs_syscall, "afs_syscall" }, /* 338 */
{ 1, 0, sys_uname, "uname" }, /* 339 */
{ 2, 0, sys_nanosleep, "nanosleep" }, /* 340 */
{ 5, 0, sys_mremap, "mremap" }, /* 341 */
{ 5, 0, printargs, "nfsservctl" }, /* 342 */
{ 3, 0, sys_setresuid, "setresuid" }, /* 343 */
{ 3, 0, sys_getresuid, "getresuid" }, /* 344 */
{ 5, 0, printargs, "pciconfig_read"}, /* 345 */
{ 5, 0, printargs, "pciconfig_write"}, /* 346 */
{ 5, 0, sys_query_module, "query_module" }, /* 347 */
{ 5, 0, printargs, "prctl" }, /* 348 */
{ 5, TF, sys_pread, "pread" }, /* 349 */
{ 5, 0, printargs, "SYS_0" }, /* 0 */
{ 1, TP, sys_exit, "exit" }, /* 1 */
{ 0, TP, sys_fork, "fork" }, /* 2 */
{ 3, TF, sys_read, "read" }, /* 3 */
{ 3, TF, sys_write, "write" }, /* 4 */
{ 5, 0, printargs, "osf_old_open" }, /* 5, not implemented */
{ 1, 0, sys_close, "close" }, /* 6 */
{ 4, TP, sys_osf_wait4, "osf_wait4" }, /* 7 */
{ 5, 0, printargs, "osf_old_creat" }, /* 8, not implemented */
{ 2, TF, sys_link, "link" }, /* 9 */
{ 1, TF, sys_unlink, "unlink" }, /* 10 */
{ 5, 0, printargs, "osf_execve" }, /* 11, not implemented */
{ 1, TF, sys_chdir, "chdir" }, /* 12 */
{ 1, TF, sys_fchdir, "fchdir" }, /* 13 */
{ 3, TF, sys_mknod, "mknod" }, /* 14 */
{ 2, TF, sys_chmod, "chmod" }, /* 15 */
{ 3, TF, sys_chown, "chown" }, /* 16 */
{ 1, 0, sys_brk, "brk" }, /* 17 */
{ 5, 0, printargs, "osf_getfsstat" }, /* 18, not implemented */
{ 3, TF, sys_lseek, "lseek" }, /* 19 */
{ 0, 0, sys_getpid, "getxpid" }, /* 20 */
{ 4, 0, printargs, "osf_mount" }, /* 21 */
{ 2, 0, sys_umount2, "umount" }, /* 22 */
{ 1, 0, sys_setuid, "setuid" }, /* 23 */
{ 0, 0, sys_getuid, "getxuid" }, /* 24 */
{ 5, 0, printargs, "exec_with_loader" }, /* 25, not implemented */
{ 4, 0, sys_ptrace, "ptrace" }, /* 26 */
{ 5, 0, printargs, "osf_nrecmsg" }, /* 27, not implemented */
{ 5, 0, printargs, "osf_nsendmsg" }, /* 28, not implemented */
{ 5, 0, printargs, "osf_nrecvfrom" }, /* 29, not implemented */
{ 5, 0, printargs, "osf_naccept" }, /* 30, not implemented */
{ 5, 0, printargs, "osf_ngetpeername" }, /* 31, not implemented */
{ 5, 0, printargs, "osf_ngetsocketname" }, /* 32, not implemented */
{ 2, TF, sys_access, "access" }, /* 33 */
{ 5, 0, printargs, "osf_chflags" }, /* 34, not implemented */
{ 5, 0, printargs, "osf_fchflags" }, /* 35, not implemented */
{ 0, 0, sys_sync, "sync" }, /* 36 */
{ 2, TS, sys_kill, "kill" }, /* 37 */
{ 5, 0, printargs, "osf_old_stat" }, /* 38, not implemented */
{ 2, 0, sys_setpgid, "setpgid" }, /* 39 */
{ 5, 0, printargs, "osf_old_lstat" }, /* 40, not implemented */
{ 1, 0, sys_dup, "dup" }, /* 41 */
{ 1, 0, sys_pipe, "pipe" }, /* 42 */
{ 5, 0, printargs, "osf_set_program_attributed" }, /* 43 */
{ 5, 0, printargs, "osf_profil" }, /* 44, not implemented */
{ 3, TF, sys_open, "open" }, /* 45 */
{ 5, 0, printargs, "osf_old_sigaction" }, /* 46, not implemented */
{ 1, 0, sys_getgid, "getxgid" }, /* 47 */
{ 3, TS, printargs, "osf_sigprocmask" }, /* 48 */
{ 5, 0, printargs, "osf_getlogin" }, /* 49, not implemented */
{ 5, 0, printargs, "osf_setlogin" }, /* 50, not implemented */
{ 1, TF, sys_acct, "acct" }, /* 51 */
{ 1, TS, sys_sigpending, "sigpending" }, /* 52 */
{ 5, 0, printargs, "SYS_53" }, /* 53 */
{ 3, 0, sys_ioctl, "ioctl" }, /* 54 */
{ 5, 0, printargs, "osf_reboot" }, /* 55, not implemented */
{ 5, 0, printargs, "osf_revoke" }, /* 56, not implemented */
{ 2, TF, sys_symlink, "symlink" }, /* 57 */
{ 3, TF, sys_readlink, "readlink" }, /* 58 */
{ 3, TF|TP, sys_execve, "execve" }, /* 59 */
{ 1, 0, sys_umask, "umask" }, /* 60 */
{ 1, TF, sys_chroot, "chroot" }, /* 61 */
{ 5, 0, printargs, "osf_old_fstat" }, /* 62, not implemented */
{ 0, 0, sys_getpgrp, "getpgrp" }, /* 63 */
{ 0, 0, sys_getpagesize, "getpagesize" }, /* 64 */
{ 5, 0, printargs, "osf_mremap" }, /* 65, not implemented */
{ 0, TP, sys_fork, "vfork" }, /* 66 */
{ 2, TF, sys_stat, "stat" }, /* 67 */
{ 2, TF, sys_lstat, "lstat" }, /* 68 */
{ 5, 0, printargs, "osf_sbrk" }, /* 69, not implemented */
{ 5, 0, printargs, "osf_sstk" }, /* 70, not implemented */
{ 6, 0, sys_mmap, "mmap" }, /* 71 */
{ 5, 0, printargs, "osf_old_vadvise" }, /* 72, not implemented */
{ 2, 0, sys_munmap, "munmap" }, /* 73 */
{ 3, 0, sys_mprotect, "mprotect" }, /* 74 */
{ 0, 0, sys_madvise, "madvise" }, /* 75 */
{ 0, 0, sys_vhangup, "vhangup" }, /* 76 */
{ 5, 0, printargs, "osf_kmodcall" }, /* 77, not implemented */
{ 5, 0, printargs, "osf_mincore" }, /* 78, not implemented */
{ 2, 0, sys_getgroups, "getgroups" }, /* 79 */
{ 2, 0, sys_setgroups, "setgroups" }, /* 80 */
{ 5, 0, printargs, "osf_old_getpgrp" }, /* 81, not implemented */
{ 2, 0, sys_setpgrp, "setpgrp" }, /* 82 */
{ 3, 0, sys_osf_setitimer, "osf_setitimer" }, /* 83 */
{ 5, 0, printargs, "osf_old_wait" }, /* 84, not implemented */
{ 5, 0, printargs, "osf_table" }, /* 85, not implemented */
{ 2, 0, sys_osf_getitimer, "osf_getitimer" }, /* 86 */
{ 2, 0, sys_gethostname, "gethostname" }, /* 87 */
{ 2, 0, sys_sethostname, "sethostname" }, /* 88 */
{ 0, 0, sys_getdtablesize, "getdtablesize" }, /* 89 */
{ 2, 0, sys_dup2, "dup2" }, /* 90 */
{ 2, 0, sys_fstat, "fstat" }, /* 91 */
{ 3, 0, sys_fcntl, "fcntl" }, /* 92 */
{ 5, 0, sys_osf_select, "osf_select" }, /* 93 */
{ 3, 0, sys_poll, "poll" }, /* 94 */
{ 1, 0, sys_fsync, "fsync" }, /* 95 */
{ 3, 0, sys_setpriority, "setpriority" }, /* 96 */
{ 3, TN, sys_socket, "socket" }, /* 97 */
{ 3, TN, sys_connect, "connect" }, /* 98 */
{ 3, TN, sys_accept, "accept" }, /* 99 */
{ 2, 0, sys_getpriority, "osf_getpriority" }, /* 100 */
{ 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 */
{ 5, 0, printargs, "osf_plock" }, /* 107, not implemented */
{ 5, 0, printargs, "osf_old_sigvec" }, /* 108, not implemented */
{ 5, 0, printargs, "osf_old_sigblock" }, /* 109, not implemented */
{ 5, 0, printargs, "osf_old_sigsetmask" }, /* 110, not implemented */
{ 3, TS, sys_sigsuspend, "sigsuspend" }, /* 111 */
{ 5, 0, printargs, "sigstack" }, /* 112 */
{ 3, TN, sys_recvmsg, "recvmsg" }, /* 113 */
{ 3, TN, sys_sendmsg, "sendmsg" }, /* 114 */
{ 5, 0, printargs, "osf_old_vtrace" }, /* 115, not implemented */
{ 2, 0, sys_osf_gettimeofday, "osf_gettimeofday" }, /* 116 */
{ 2, 0, sys_osf_getrusage, "osf_getrusage" }, /* 117 */
{ 5, TN, sys_getsockopt, "getsockopt" }, /* 118 */
{ 5, 0, printargs, "SYS_119" }, /* 119 */
{ 3, 0, sys_readv, "readv" }, /* 120 */
{ 3, 0, sys_writev, "writev" }, /* 121 */
{ 2, 0, sys_osf_settimeofday, "osf_settimeofday" }, /* 122 */
{ 3, 0, sys_fchown, "fchown" }, /* 123 */
{ 2, 0, sys_fchmod, "fchmod" }, /* 124 */
{ 6, TN, sys_recvfrom, "recvfrom" }, /* 125 */
{ 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, 0, sys_flock, "flock" }, /* 131 */
{ 1, 0, sys_setgid, "setgid" }, /* 132 */
{ 6, TN, sys_sendto, "sendto" }, /* 133 */
{ 2, TN, sys_shutdown, "shutdown" }, /* 134 */
{ 4, TN, sys_socketpair, "socketpair" }, /* 135 */
{ 2, TF, sys_mkdir, "mkdir" }, /* 136 */
{ 1, TF, sys_rmdir, "rmdir" }, /* 137 */
{ 2, 0, sys_osf_utimes, "osf_utimes" }, /* 138 */
{ 5, 0, printargs, "osf_old_sigreturn" }, /* 139 */
{ 5, 0, printargs, "osf_adjtime" }, /* 140, not implemented */
{ 3, TN, sys_getpeername, "getpeername" }, /* 141 */
{ 5, 0, printargs, "osf_gethostid" }, /* 142, not implemented */
{ 5, 0, printargs, "osf_sethostid" }, /* 143, not implemented */
{ 2, 0, sys_getrlimit, "getrlimit" }, /* 144 */
{ 2, 0, sys_setrlimit, "setrlimit" }, /* 145 */
{ 5, 0, printargs, "osf_old_killpg" }, /* 146, not implemented */
{ 0, 0, sys_setsid, "setsid" }, /* 147 */
{ 4, 0, sys_quotactl, "quotactl" }, /* 148 */
{ 5, 0, printargs, "osf_oldquota" }, /* 149, not implemented */
{ 3, TN, sys_getsockname, "getsockname" }, /* 150 */
{ 5, 0, printargs, "SYS_151" }, /* 151 */
{ 5, 0, printargs, "SYS_152" }, /* 152 */
{ 5, 0, printargs, "osf_pid_block" }, /* 153, not implemented */
{ 5, 0, printargs, "osf_pid_unblock" }, /* 154, not implemented */
{ 5, 0, printargs, "SYS_155" }, /* 155 */
{ 3, TS, sys_sigaction, "sigaction" }, /* 156 */
{ 5, 0, printargs, "osf_sigwaitprim" }, /* 157, not implemented */
{ 5, 0, printargs, "osf_sigwaitprim" }, /* 158, not implemented */
{ 4, 0, printargs, "osf_getdirentries" }, /* 159 */
{ 3, 0, osf_statfs, "osf_statfs" }, /* 160 */
{ 3, 0, osf_fstatfs, "osf_fstatfs" }, /* 161 */
{ 5, 0, printargs, "SYS_162" }, /* 162 */
{ 5, 0, printargs, "osf_asynch_daemon" }, /* 163, not implemented */
{ 5, 0, printargs, "osf_getfh" }, /* 164, not implemented */
{ 2, 0, printargs, "osf_getdomainname" }, /* 165 */
{ 2, 0, sys_setdomainname, "setdomainname" }, /* 166 */
{ 5, 0, printargs, "SYS_167" }, /* 167 */
{ 5, 0, printargs, "SYS_168" }, /* 168 */
{ 5, 0, printargs, "osf_exportfs" }, /* 169, not implemented */
{ 5, 0, printargs, "SYS_170" }, /* 170 */
{ 5, 0, printargs, "SYS_171" }, /* 171 */
{ 5, 0, printargs, "SYS_172" }, /* 172 */
{ 5, 0, printargs, "SYS_173" }, /* 173 */
{ 5, 0, printargs, "SYS_174" }, /* 174 */
{ 5, 0, printargs, "SYS_175" }, /* 175 */
{ 5, 0, printargs, "SYS_176" }, /* 176 */
{ 5, 0, printargs, "SYS_177" }, /* 177 */
{ 5, 0, printargs, "SYS_178" }, /* 178 */
{ 5, 0, printargs, "SYS_179" }, /* 179 */
{ 5, 0, printargs, "SYS_180" }, /* 180 */
{ 5, 0, printargs, "osf_alt_plock" }, /* 181, not implemented */
{ 5, 0, printargs, "SYS_182" }, /* 182 */
{ 5, 0, printargs, "SYS_183" }, /* 183 */
{ 5, 0, printargs, "osf_getmnt" }, /* 184, not implemented */
{ 5, 0, printargs, "SYS_185" }, /* 185 */
{ 5, 0, printargs, "SYS_186" }, /* 186 */
{ 5, 0, printargs, "osf_alt_sigpending" }, /* 187, not implemented */
{ 5, 0, printargs, "osf_alt_setsid" }, /* 188, not implemented */
{ 5, 0, printargs, "SYS_189" }, /* 189 */
{ 5, 0, printargs, "SYS_190" }, /* 190 */
{ 5, 0, printargs, "SYS_191" }, /* 191 */
{ 5, 0, printargs, "SYS_192" }, /* 192 */
{ 5, 0, printargs, "SYS_193" }, /* 193 */
{ 5, 0, printargs, "SYS_194" }, /* 194 */
{ 5, 0, printargs, "SYS_195" }, /* 195 */
{ 5, 0, printargs, "SYS_196" }, /* 196 */
{ 5, 0, printargs, "SYS_197" }, /* 197 */
{ 5, 0, printargs, "SYS_198" }, /* 198 */
{ 4, 0, printargs, "osf_swapon" }, /* 199 */
{ 4, TI, sys_msgctl, "msgctl" }, /* 200 */
{ 4, TI, sys_msgget, "msgget" }, /* 201 */
{ 4, TI, sys_msgrcv, "msgrcv" }, /* 202 */
{ 4, TI, sys_msgsnd, "msgsnd" }, /* 203 */
{ 4, TI, sys_semctl, "semctl" }, /* 204 */
{ 4, TI, sys_semget, "semget" }, /* 205 */
{ 4, TI, printargs, "semop" }, /* 206 */
{ 1, 0, printargs, "osf_utsname" }, /* 207 */
{ 3, TF, sys_chown, "lchown" }, /* 208 */
{ 3, TI, printargs, "osf_shmat" }, /* 209 */
{ 4, TI, sys_shmctl, "shmctl" }, /* 210 */
{ 4, TI, sys_shmdt, "shmdt" }, /* 211 */
{ 4, TI, sys_shmget, "shmget" }, /* 212 */
{ 5, 0, printargs, "osf_mvalid" }, /* 213, not implemented */
{ 5, 0, printargs, "osf_getaddressconf" }, /* 214, not implemented */
{ 5, 0, printargs, "osf_msleep" }, /* 215, not implemented */
{ 5, 0, printargs, "osf_mwakeup" }, /* 216, not implemented */
{ 3, 0, sys_msync, "msync" }, /* 217 */
{ 5, 0, printargs, "osf_signal" }, /* 218, not implemented */
{ 5, 0, printargs, "osf_utc_gettime" }, /* 219, not implemented */
{ 5, 0, printargs, "osf_utc_adjtime" }, /* 220, not implemented */
{ 5, 0, printargs, "SYS_221" }, /* 221 */
{ 5, 0, printargs, "osf_security" }, /* 222, not implemented */
{ 5, 0, printargs, "osf_kloadcall" }, /* 223, not implemented */
{ 5, 0, printargs, "SYS_224" }, /* 224 */
{ 5, 0, printargs, "SYS_225" }, /* 225 */
{ 5, 0, printargs, "SYS_226" }, /* 226 */
{ 5, 0, printargs, "SYS_227" }, /* 227 */
{ 5, 0, printargs, "SYS_228" }, /* 228 */
{ 5, 0, printargs, "SYS_229" }, /* 229 */
{ 5, 0, printargs, "SYS_230" }, /* 230 */
{ 5, 0, printargs, "SYS_231" }, /* 231 */
{ 5, 0, printargs, "SYS_232" }, /* 232 */
{ 1, 0, sys_getpgid, "getpgid" }, /* 233 */
{ 1, 0, sys_getsid, "getsid" }, /* 234 */
{ 5, 0, sys_sigaltstack, "sigaltstack" }, /* 235 */
{ 5, 0, printargs, "osf_waitid" }, /* 236, not implemented */
{ 5, 0, printargs, "osf_priocntlset" }, /* 237, not implemented */
{ 5, 0, printargs, "osf_getsendset" }, /* 238, not implemented */
{ 5, 0, printargs, "osf_set_speculative" }, /* 239, not implemented */
{ 5, 0, printargs, "osf_msfs_syscall" }, /* 240, not implemented */
{ 5, 0, printargs, "osf_sysinfo" }, /* 241 */
{ 5, 0, printargs, "osf_uadmin" }, /* 242, not implemented */
{ 5, 0, printargs, "osf_fuser" }, /* 243, not implemented */
{ 2, 0, printargs, "osf_proplist_syscall" }, /* 244 */
{ 5, 0, printargs, "osf_ntp_adjtime" }, /* 245, not implemented */
{ 5, 0, printargs, "osf_ntp_gettime" }, /* 246, not implemented */
{ 5, 0, printargs, "osf_pathconf" }, /* 247, not implemented */
{ 5, 0, printargs, "osf_fpathconf" }, /* 248, not implemented */
{ 5, 0, printargs, "SYS_249" }, /* 249 */
{ 5, 0, printargs, "osf_uswitch" }, /* 250, not implemented */
{ 2, 0, printargs, "osf_usleep_thread" }, /* 251 */
{ 5, 0, printargs, "osf_audcntl" }, /* 252, not implemented */
{ 5, 0, printargs, "osf_audgen" }, /* 253, not implemented */
{ 5, 0, sys_sysfs, "sysfs" }, /* 254 */
{ 5, 0, printargs, "osf_subsysinfo" }, /* 255, not implemented */
{ 5, 0, printargs, "osf_getsysinfo" }, /* 256 */
{ 5, 0, printargs, "osf_setsysinfo" }, /* 257 */
{ 5, 0, printargs, "osf_afs_syscall" }, /* 258, not implemented */
{ 5, 0, printargs, "osf_swapctl" }, /* 259, not implemented */
{ 5, 0, printargs, "osf_memcntl" }, /* 260, not implemented */
{ 5, 0, printargs, "osf_fdatasync" }, /* 261, not implemented */
{ 5, 0, printargs, "SYS_262" }, /* 262 */
{ 5, 0, printargs, "SYS_263" }, /* 263 */
{ 5, 0, printargs, "SYS_264" }, /* 264 */
{ 5, 0, printargs, "SYS_265" }, /* 265 */
{ 5, 0, printargs, "SYS_266" }, /* 266 */
{ 5, 0, printargs, "SYS_267" }, /* 267 */
{ 5, 0, printargs, "SYS_268" }, /* 268 */
{ 5, 0, printargs, "SYS_269" }, /* 269 */
{ 5, 0, printargs, "SYS_270" }, /* 270 */
{ 5, 0, printargs, "SYS_271" }, /* 271 */
{ 5, 0, printargs, "SYS_272" }, /* 272 */
{ 5, 0, printargs, "SYS_273" }, /* 273 */
{ 5, 0, printargs, "SYS_274" }, /* 274 */
{ 5, 0, printargs, "SYS_275" }, /* 275 */
{ 5, 0, printargs, "SYS_276" }, /* 276 */
{ 5, 0, printargs, "SYS_277" }, /* 277 */
{ 5, 0, printargs, "SYS_278" }, /* 278 */
{ 5, 0, printargs, "SYS_279" }, /* 279 */
{ 5, 0, printargs, "SYS_280" }, /* 280 */
{ 5, 0, printargs, "SYS_281" }, /* 281 */
{ 5, 0, printargs, "SYS_282" }, /* 282 */
{ 5, 0, printargs, "SYS_283" }, /* 283 */
{ 5, 0, printargs, "SYS_284" }, /* 284 */
{ 5, 0, printargs, "SYS_285" }, /* 285 */
{ 5, 0, printargs, "SYS_286" }, /* 286 */
{ 5, 0, printargs, "SYS_287" }, /* 287 */
{ 5, 0, printargs, "SYS_288" }, /* 288 */
{ 5, 0, printargs, "SYS_289" }, /* 289 */
{ 5, 0, printargs, "SYS_290" }, /* 290 */
{ 5, 0, printargs, "SYS_291" }, /* 291 */
{ 5, 0, printargs, "SYS_292" }, /* 292 */
{ 5, 0, printargs, "SYS_293" }, /* 293 */
{ 5, 0, printargs, "SYS_294" }, /* 294 */
{ 5, 0, printargs, "SYS_295" }, /* 295 */
{ 5, 0, printargs, "SYS_296" }, /* 296 */
{ 5, 0, printargs, "SYS_297" }, /* 297 */
{ 5, 0, printargs, "SYS_298" }, /* 298 */
{ 5, 0, printargs, "SYS_299" }, /* 299 */
{ 0, 0, sys_bdflush, "bdflush" }, /* 300 */
{ 3, 0, printargs, "sethae" }, /* 301 */
{ 5, TF, sys_mount, "mount" }, /* 302 */
{ 1, 0, sys_adjtimex, "adjtimex32" }, /* 303 */
{ 1, 0, sys_swapoff, "swapoff" }, /* 304 */
{ 3, 0, sys_getdents, "getdents" }, /* 305 */
{ 2, 0, sys_create_module, "create_module" }, /* 306 */
{ 4, 0, sys_init_module, "init_module" }, /* 307 */
{ 1, 0, sys_delete_module, "delete_module" }, /* 308 */
{ 1, 0, sys_get_kernel_syms, "get_kernel_syms" }, /* 309 */
{ 3, 0, sys_syslog, "syslog" }, /* 310 */
{ 3, 0, sys_reboot, "reboot" }, /* 311 */
{ 2, TP, sys_clone, "clone" }, /* 312 */
{ 1, 0, sys_uselib, "uselib" }, /* 313 */
{ 2, 0, sys_mlock, "mlock" }, /* 314 */
{ 2, 0, sys_munlock, "munlock" }, /* 315 */
{ 1, 0, sys_mlockall, "mlockall" }, /* 316 */
{ 1, 0, sys_munlockall, "munlockall" }, /* 317 */
{ 1, 0, sys_sysinfo, "sysinfo" }, /* 318 */
{ 1, 0, sys_sysctl, "sysctl" }, /* 319 */
{ 0, 0, sys_idle, "idle" }, /* 320 */
{ 1, 0, sys_umount, "oldumount" }, /* 321 */
{ 1, 0, sys_swapon, "swapon" }, /* 322 */
{ 1, 0, sys_times, "times" }, /* 323 */
{ 1, 0, sys_personality, "personality" }, /* 324 */
{ 1, 0, sys_setfsuid, "setfsuid" }, /* 325 */
{ 1, 0, sys_setfsgid, "setfsgid" }, /* 326 */
{ 2, 0, sys_ustat, "ustat" }, /* 327 */
{ 2, TF, sys_statfs, "statfs" }, /* 328 */
{ 2, 0, sys_fstatfs, "fstatfs" }, /* 329 */
{ 2, 0, sys_sched_setparam, "sched_setparam" }, /* 330 */
{ 2, 0, sys_sched_getparam, "sched_getparam" }, /* 331 */
{ 3, 0, sys_sched_setscheduler, "sched_setscheduler" }, /* 332 */
{ 2, 0, sys_sched_getscheduler, "sched_getscheduler" }, /* 333 */
{ 0, 0, sys_sched_yield, "sched_yield" }, /* 334 */
{ 1, 0, sys_sched_get_priority_max,"sched_get_priority_max" }, /* 335 */
{ 1, 0, sys_sched_get_priority_min,"sched_get_priority_min" }, /* 336 */
{ 2, 0, sys_sched_rr_get_interval,"sched_rr_get_interval" }, /* 337 */
{ 5, 0, sys_afs_syscall, "afs_syscall" }, /* 338 */
{ 1, 0, sys_uname, "uname" }, /* 339 */
{ 2, 0, sys_nanosleep, "nanosleep" }, /* 340 */
{ 5, 0, sys_mremap, "mremap" }, /* 341 */
{ 5, 0, printargs, "nfsservctl" }, /* 342 */
{ 3, 0, sys_setresuid, "setresuid" }, /* 343 */
{ 3, 0, sys_getresuid, "getresuid" }, /* 344 */
{ 5, 0, printargs, "pciconfig_read" }, /* 345 */
{ 5, 0, printargs, "pciconfig_write" }, /* 346 */
{ 5, 0, sys_query_module, "query_module" }, /* 347 */
{ 5, 0, printargs, "prctl" }, /* 348 */
{ 5, TF, sys_pread, "pread" }, /* 349 */
{ 5, TF, sys_pwrite, "pwrite" }, /* 350 */
{ 1, TS, printargs, "rt_sigreturn" }, /* 351 */
{ 4, TS, sys_rt_sigaction, "rt_sigaction" }, /* 352 */
{ 4, TS, sys_rt_sigprocmask, "rt_sigprocmask"}, /* 353 */
{ 2, TS, sys_rt_sigpending, "rt_sigpending" }, /* 354 */
{ 4, TS, sys_rt_sigtimedwait, "rt_sigtimedwait"}, /* 355 */
{ 3, TS, sys_rt_sigqueueinfo, "rt_sigqueueinfo"}, /* 356 */
{ 2, TS, sys_rt_sigsuspend, "rt_sigsuspend" }, /* 357 */
{ 5, 0, sys_select, "select" }, /* 358 */
{ 2, 0, sys_gettimeofday, "gettimeofday" }, /* 359 */
{ 3, 0, sys_settimeofday, "settimeofday" }, /* 360 */
{ 2, 0, sys_getitimer, "getitimer" }, /* 361 */
{ 3, 0, sys_setitimer, "setitimer" }, /* 362 */
{ 2, 0, sys_utimes, "utimes" }, /* 363 */
{ 2, 0, sys_getrusage, "getrusage" }, /* 364 */
{ 4, TP, sys_wait4, "wait4" }, /* 365 */
{ 1, 0, sys_adjtimex, "adjtimex" }, /* 366 */
{ 2, 0, sys_getcwd, "getcwd" }, /* 367 */
{ 2, 0, sys_capget, "capget" }, /* 368 */
{ 2, 0, sys_capset, "capset" }, /* 369 */
{ 4, TF, sys_sendfile, "sendfile" }, /* 370 */
{ 5, TF, sys_pwrite, "pwrite" }, /* 350 */
{ 1, TS, printargs, "rt_sigreturn" }, /* 351 */
{ 4, TS, sys_rt_sigaction, "rt_sigaction" }, /* 352 */
{ 4, TS, sys_rt_sigprocmask, "rt_sigprocmask" }, /* 353 */
{ 2, TS, sys_rt_sigpending, "rt_sigpending" }, /* 354 */
{ 4, TS, sys_rt_sigtimedwait, "rt_sigtimedwait" }, /* 355 */
{ 3, TS, sys_rt_sigqueueinfo, "rt_sigqueueinfo" }, /* 356 */
{ 2, TS, sys_rt_sigsuspend, "rt_sigsuspend" }, /* 357 */
{ 5, 0, sys_select, "select" }, /* 358 */
{ 2, 0, sys_gettimeofday, "gettimeofday" }, /* 359 */
{ 3, 0, sys_settimeofday, "settimeofday" }, /* 360 */
{ 2, 0, sys_getitimer, "getitimer" }, /* 361 */
{ 3, 0, sys_setitimer, "setitimer" }, /* 362 */
{ 2, 0, sys_utimes, "utimes" }, /* 363 */
{ 2, 0, sys_getrusage, "getrusage" }, /* 364 */
{ 4, TP, sys_wait4, "wait4" }, /* 365 */
{ 1, 0, sys_adjtimex, "adjtimex" }, /* 366 */
{ 2, 0, sys_getcwd, "getcwd" }, /* 367 */
{ 2, 0, sys_capget, "capget" }, /* 368 */
{ 2, 0, sys_capset, "capset" }, /* 369 */
{ 4, TF, sys_sendfile, "sendfile" }, /* 370 */
{ 3, 0, printargs, "setresgid" }, /* 371 */
{ 3, 0, printargs, "getresgid" }, /* 372 */
{ 4, 0, printargs, "dipc" }, /* 373, not implemented */
{ 2, TF, printargs, "pivot_root" }, /* 374 */
{ 3, 0, printargs, "mincore" }, /* 375 */
{ 4, 0, printargs, "pciconfig_iobase" }, /* 376 */

View File

@ -36,16 +36,10 @@
#define sys_vm86old printargs
#define sys_modify_ldt printargs
#define sys_get_kernel_syms printargs
#define sys_quotactl printargs
#define sys_bdflush printargs
#define sys_sysfs printargs
#define sys_afs_syscall printargs
#define sys_fdatasync printargs
#define sys_mlock printargs
#define sys_munlock printargs
#define sys_mlockall printargs
#define sys_munlockall printargs
#define sys_sched_setparam printargs
#define sys_sched_getparam printargs
#define sys_sched_setscheduler printargs
@ -65,6 +59,10 @@
#define sys_setfsuid sys_setuid
#define sys_setfsgid sys_setgid
#define sys_nanosleep sys_adjtime
#define sys_acct sys_chdir
#define sys_fdatasync sys_close
#define sys_mlock sys_munmap
#define sys_munlock sys_munmap
/* printargs does the right thing */
#define sys_setup printargs
@ -81,6 +79,7 @@
#define sys_vhangup printargs
#define sys_idle printargs
#define sys_getpgid printargs
#define sys_munlockall printargs
/* subcall entry points */
#define sys_socketcall printargs
@ -91,7 +90,6 @@
#define sys_gtty printargs
#define sys_ftime printargs
#define sys_prof printargs
#define sys_acct printargs
#define sys_phys printargs
#define sys_lock printargs
#define sys_mpx printargs
@ -205,4 +203,6 @@
#define sys_poll printargs
#define sys_create_module printargs
#define sys_init_module printargs
#define sys_quotactl printargs
#define sys_mlockall printargs
#endif

View File

@ -1236,7 +1236,7 @@
{ 5, TN, sys_getsockopt, "getsockopt" }, /* 1204 */
{ 3, TN, sys_sendmsg, "sendmsg" }, /* 1205 */
{ 3, TN, sys_recvmsg, "recvmsg" }, /* 1206 */
{ 8, 0, printargs, "SYS_1207" }, /* 1207 */
{ 2, TF, sys_pivotroot, "pivot_root" }, /* 1207 */
{ 8, 0, printargs, "SYS_1208" }, /* 1208 */
{ 8, 0, printargs, "SYS_1209" }, /* 1209 */
{ 8, 0, printargs, "SYS_1210" }, /* 1210 */

File diff suppressed because it is too large Load Diff

View File

@ -118,7 +118,7 @@
{ 1, 0, sys_swapon, "swapon" }, /* 87 */
{ 3, 0, sys_reboot, "reboot" }, /* 88 */
{ 3, 0, sys_readdir, "readdir" }, /* 89 */
{ 6, 0, sys_mmap, "mmap" }, /* 90 */
{ 6, 0, sys_old_mmap, "mmap" }, /* 90 */
{ 2, 0, sys_munmap, "munmap" }, /* 91 */
{ 2, TF, sys_truncate, "truncate" }, /* 92 */
{ 2, 0, sys_ftruncate, "ftruncate" }, /* 93 */
@ -215,17 +215,17 @@
{ 2, 0, sys_capset, "capset" }, /* 184 */
{ 2, TS, sys_sigaltstack, "sigaltstack" }, /* 185 */
{ 4, TF, sys_sendfile, "sendfile" }, /* 186 */
{ 5, 0, printargs, "streams1" }, /* 187 */
{ 5, 0, printargs, "streams2" }, /* 188 */
{ 5, 0, printargs, "SYS_189" }, /* 189 */
{ 5, 0, printargs, "SYS_190" }, /* 190 */
{ 5, 0, printargs, "SYS_191" }, /* 191 */
{ 5, 0, printargs, "SYS_192" }, /* 192 */
{ 5, 0, printargs, "SYS_193" }, /* 193 */
{ 5, 0, printargs, "SYS_194" }, /* 194 */
{ 5, 0, printargs, "SYS_195" }, /* 195 */
{ 5, 0, printargs, "SYS_196" }, /* 196 */
{ 5, 0, printargs, "SYS_197" }, /* 197 */
{ 5, 0, printargs, "getpmsg" }, /* 187 */
{ 5, 0, printargs, "putpmsg" }, /* 188 */
{ 0, TP, sys_vfork, "vfork" }, /* 189 */
{ -1, 0, printargs, "SYS_190" }, /* 190 */
{ 2, 0, printargs, "ugetrlimit" }, /* 191 */
{ 5, 0, sys_mmap, "mmap2" }, /* 192 */
{ 2, TF, printargs, "truncate64" }, /* 193 */
{ 5, 0, printargs, "ftruncate64" }, /* 194 */
{ 2, TF, sys_stat64, "stat64" }, /* 195 */
{ 2, TF, sys_lstat64, "lstat64" }, /* 196 */
{ 2, TF, sys_fstat64, "fstat64" }, /* 197 */
{ 5, 0, printargs, "SYS_198" }, /* 198 */
{ 5, 0, printargs, "SYS_199" }, /* 199 */
{ 5, 0, printargs, "SYS_200" }, /* 200 */

View File

@ -73,10 +73,10 @@
{ 1, 0, printargs, "vadvise" }, /* 72 */
{ 2, 0, sys_munmap, "munmap" }, /* 73 */
{ 3, 0, sys_mprotect, "mprotect" }, /* 74 */
{ 3, 0, printargs, "madvise" }, /* 75 */
{ 3, 0, sys_madvise, "madvise" }, /* 75 */
{ 1, 0, sys_vhangup, "vhangup" }, /* 76 */
{ 2, 0, printargs, "SYS_77" }, /* 77 */
{ 3, 0, sys_mincore, "mincore" }, /* 78 */
{ 2, TF, printargs, "truncate64" }, /* 77 */
{ 3, 0, sys_mincore, "mincore" }, /* 78 */
{ 2, 0, sys_getgroups, "getgroups" }, /* 79 */
{ 2, 0, sys_setgroups, "setgroups" }, /* 80 */
{ 1, 0, sys_getpgrp, "getpgrp" }, /* 81 */
@ -144,7 +144,8 @@
{ 0, 0, printargs, "SYS_143" }, /* 143 */
{ 2, 0, sys_getrlimit, "getrlimit" }, /* 144 */
{ 2, 0, sys_setrlimit, "setrlimit" }, /* 145 */
{ 2, TS, sys_killpg, "killpg" }, /* 146 */
{ 2, TF, sys_pivotroot, "pivot_root" }, /* 146 */
/* { 2, TS, sys_killpg, "killpg" }, 146 SunOS killpkg, overridden by Linux pivot_root */
{ 5, 0, printargs, "prctl" }, /* 147 */
{ 5, 0, printargs, "pciconfig_read" }, /* 148 */
{ 5, 0, printargs, "pciconfig_write" }, /* 149 */

View File

@ -71,7 +71,7 @@ int sys_setfsuid(), sys_setfsgid(), sys_llseek();
int sys_getdents(), sys_flock(), sys_msync();
int sys_readv(), sys_writev(), sys_select();
int sys_getsid(), sys_fdatasync(), sys_sysctl();
int sys_mlock(), sys_munlock(), sys_mlockall(), sys_munlockall();
int sys_mlock(), sys_munlock(), sys_mlockall(), sys_munlockall(), sys_madvise();
int sys_sched_setparam(), sys_sched_getparam();
int sys_sched_setscheduler(), sys_sched_getscheduler(), sys_sched_yield();
int sys_sched_get_priority_max(), sys_sched_get_priority_min();
@ -82,7 +82,7 @@ int sys_sigaltstack(), sys_rt_sigprocmask(), sys_rt_sigaction();
int sys_rt_sigpending(), sys_rt_sigsuspend(), sys_rt_sigqueueinfo();
int sys_rt_sigtimedwait(), sys_prctl(), sys_poll(), sys_vfork();
int sys_sendfile(), sys_old_mmap(), sys_stat64(), sys_lstat64(), sys_fstat64();
int sys_truncate64(), sys_ftruncate64();
int sys_truncate64(), sys_ftruncate64(), sys_pivotroot();
/* sys_socketcall subcalls */
@ -142,11 +142,11 @@ int sys_semget(), sys_semctl(), sys_semop();
int sys_msgsnd(), sys_msgrcv(), sys_msgget(), sys_msgctl();
int sys_shmat(), sys_shmdt(), sys_shmget(), sys_shmctl();
#if !defined(ALPHA) && !defined(IA64) && !defined(MIPS)
#if !defined(ALPHA) && !defined(IA64) && !defined(MIPS) && !defined(SPARC)
#ifdef POWERPC
# define SYS_ipc_subcall ((SYS_socket_subcall)+(SYS_socket_nsubcalls))
#else
# define SYS_ipc_subcall 200
# define SYS_ipc_subcall 250
#endif
#define SYS_semop (SYS_ipc_subcall + 1)
#define SYS_semget (SYS_ipc_subcall + 2)
@ -168,7 +168,7 @@ int sys_getpagesize();
#endif
#ifdef ALPHA
int osf_statfs(), osf_fstatfs(), sys_madvise();
int osf_statfs(), osf_fstatfs();
#endif
#ifdef IA64

View File

@ -47,7 +47,7 @@
#ifdef M68K
{ 3, TF, sys_chown, "chown" }, /* 16 */
#else
{ 3, TF, sys_chown, "lchown" }, /* 16 */
{ 3, TF, sys_chown, "lchown" }, /* 16 */
#endif
{ 0, 0, sys_break, "break" }, /* 17 */
{ 2, TF, sys_oldstat, "oldstat" }, /* 18 */
@ -228,7 +228,7 @@
#else
{ 3, TF, sys_chown, "chown" }, /* 182 */
#endif
{ 2, 0, sys_getcwd, "getcwd" }, /* 183 */
{ 2, TF, sys_getcwd, "getcwd" }, /* 183 */
{ 2, 0, sys_capget, "capget" }, /* 184 */
{ 2, 0, sys_capset, "capset" }, /* 185 */
{ 2, TS, sys_sigaltstack, "sigaltstack" }, /* 186 */
@ -236,41 +236,41 @@
{ 5, 0, printargs, "SYS_188" }, /* 188 */
{ 5, 0, printargs, "SYS_189" }, /* 189 */
{ 0, TP, sys_vfork, "vfork" }, /* 190 */
{ 5, 0, printargs, "getrlimit" }, /* 191 */
{ 2, 0, printargs, "getrlimit" }, /* 191 */
{ 6, 0, sys_mmap, "mmap2" }, /* 192 */
{ 5, 0, printargs, "truncate64" }, /* 193 */
{ 5, 0, printargs, "ftruncate64" }, /* 194 */
{ 2, TF, printargs, "truncate64" }, /* 193 */
{ 2, TF, printargs, "ftruncate64" }, /* 194 */
{ 2, TF, sys_stat64, "stat64" }, /* 195 */
{ 2, TF, sys_lstat64, "lstat64" }, /* 196 */
{ 2, TF, sys_fstat64, "fstat64" }, /* 197 */
{ 5, 0, printargs, "SYS_198" }, /* 198 */
{ 5, 0, printargs, "SYS_199" }, /* 199 */
/*TODO*/{ 3, TF, printargs, "lchown32" }, /* 198 */
/*TODO*/{ 0, 0, printargs, "getuid32" }, /* 199 */
{ 4, 0, printargs, "ipc_subcall" }, /* 200 */
{ 4, TI, sys_semop, "semop" }, /* 201 */
{ 4, TI, sys_semget, "semget" }, /* 202 */
{ 4, TI, sys_semctl, "semctl" }, /* 203 */
{ 4, 0, printargs, "ipc_subcall" }, /* 204 */
{ 4, 0, printargs, "ipc_subcall" }, /* 205 */
{ 4, 0, printargs, "ipc_subcall" }, /* 206 */
{ 4, 0, printargs, "ipc_subcall" }, /* 207 */
{ 4, 0, printargs, "ipc_subcall" }, /* 208 */
{ 4, 0, printargs, "ipc_subcall" }, /* 209 */
{ 4, 0, printargs, "ipc_subcall" }, /* 210 */
{ 4, TI, sys_msgsnd, "msgsnd" }, /* 211 */
{ 4, TI, sys_msgrcv, "msgrcv" }, /* 212 */
{ 4, TI, sys_msgget, "msgget" }, /* 213 */
{ 4, TI, sys_msgctl, "msgctl" }, /* 214 */
{ 4, 0, printargs, "ipc_subcall" }, /* 215 */
{ 4, 0, printargs, "ipc_subcall" }, /* 216 */
{ 4, 0, printargs, "ipc_subcall" }, /* 217 */
{ 4, 0, printargs, "ipc_subcall" }, /* 218 */
{ 4, 0, printargs, "ipc_subcall" }, /* 219 */
{ 4, 0, printargs, "ipc_subcall" }, /* 220 */
{ 4, TI, sys_shmat, "shmat" }, /* 221 */
{ 4, TI, sys_shmdt, "shmdt" }, /* 222 */
{ 4, TI, sys_shmget, "shmget" }, /* 223 */
{ 4, TI, sys_shmctl, "shmctl" }, /* 224 */
{ 0, 0, printargs, "getgid32" }, /* 200 */
{ 0, 0, printargs, "geteuid32" }, /* 201 */
{ 0, 0, printargs, "getegid32" }, /* 202 */
{ 2, 0, printargs, "setreuid32" }, /* 203 */
{ 2, 0, printargs, "setregid32" }, /* 204 */
{ 2, 0, printargs, "getgroups32" }, /* 205 */
{ 2, 0, printargs, "setgroups32" }, /* 206 */
{ 3, 0, printargs, "fchown32" }, /* 207 */
{ 3, 0, printargs, "setresuid32" }, /* 208 */
{ 3, 0, printargs, "getresuid32" }, /* 209 */
{ 3, 0, printargs, "setresgid32" }, /* 210 */
{ 3, 0, printargs, "getsetgid32" }, /* 211 */
{ 3, TF, printargs, "chown32" }, /* 212 */
{ 1, 0, printargs, "setuid32" }, /* 213 */
{ 1, 0, printargs, "setgid32" }, /* 214 */
{ 1, 0, printargs, "setfsuid32" }, /* 215 */
{ 1, 0, printargs, "setfsgid32" }, /* 216 */
{ 2, TF, sys_pivotroot, "pivot_root" }, /* 217 */
{ 3, 0, printargs, "mincore" }, /* 218 */
{ 3, 0, sys_madvise, "madvise" }, /* 219 */
{ 4, 0, printargs, "SYS_220" }, /* 220 */
{ 4, 0, printargs, "SYS_221" }, /* 221 */
{ 4, 0, printargs, "SYS_222" }, /* 222 */
{ 4, 0, printargs, "SYS_223" }, /* 223 */
{ 4, 0, printargs, "SYS_224" }, /* 224 */
{ 5, 0, printargs, "SYS_225" }, /* 225 */
{ 5, 0, printargs, "SYS_226" }, /* 226 */
{ 5, 0, printargs, "SYS_227" }, /* 227 */
@ -298,3 +298,30 @@
{ 5, 0, printargs, "SYS_248" }, /* 248 */
{ 5, 0, printargs, "SYS_249" }, /* 249 */
{ 4, 0, printargs, "ipc_subcall" }, /* 250 */
{ 4, TI, sys_semop, "semop" }, /* 251 */
{ 4, TI, sys_semget, "semget" }, /* 252 */
{ 4, TI, sys_semctl, "semctl" }, /* 253 */
{ 4, 0, printargs, "ipc_subcall" }, /* 254 */
{ 4, 0, printargs, "ipc_subcall" }, /* 255 */
{ 4, 0, printargs, "ipc_subcall" }, /* 256 */
{ 4, 0, printargs, "ipc_subcall" }, /* 257 */
{ 4, 0, printargs, "ipc_subcall" }, /* 258 */
{ 4, 0, printargs, "ipc_subcall" }, /* 259 */
{ 4, 0, printargs, "ipc_subcall" }, /* 260 */
{ 4, TI, sys_msgsnd, "msgsnd" }, /* 261 */
{ 4, TI, sys_msgrcv, "msgrcv" }, /* 262 */
{ 4, TI, sys_msgget, "msgget" }, /* 263 */
{ 4, TI, sys_msgctl, "msgctl" }, /* 264 */
{ 4, 0, printargs, "ipc_subcall" }, /* 265 */
{ 4, 0, printargs, "ipc_subcall" }, /* 266 */
{ 4, 0, printargs, "ipc_subcall" }, /* 267 */
{ 4, 0, printargs, "ipc_subcall" }, /* 268 */
{ 4, 0, printargs, "ipc_subcall" }, /* 269 */
{ 4, 0, printargs, "ipc_subcall" }, /* 270 */
{ 4, TI, sys_shmat, "shmat" }, /* 271 */
{ 4, TI, sys_shmdt, "shmdt" }, /* 272 */
{ 4, TI, sys_shmget, "shmget" }, /* 273 */
{ 4, TI, sys_shmctl, "shmctl" }, /* 274 */

54
mem.c
View File

@ -232,6 +232,7 @@ struct tcb *tcp;
static struct xlat mremap_flags[] = {
{ MREMAP_MAYMOVE, "MREMAP_MAYMOVE" },
{ 0, NULL }
};
int
@ -246,6 +247,59 @@ struct tcb *tcp;
return RVAL_HEX;
}
static struct xlat madvise_flags[] = {
#ifdef MADV_NORMAL
{ MADV_NORMAL, "MADV_NORMAL" },
#endif
#ifdef MADZV_RANDOM
{ MADV_RANDOM, "MADV_RANDOM" },
#endif
#ifdef MADV_SEQUENTIAL
{ MADV_SEQUENTIAL, "MADV_SEQUENTIAL" },
#endif
#ifdef MADV_WILLNEED
{ MADV_WILLNEED, "MADV_WILLNEED" },
#endif
#ifdef MADV_DONTNED
{ MADV_DONTNEED, "MADV_DONTNEED" },
#endif
{ 0, NULL },
};
int
sys_madvise(tcp)
struct tcb *tcp;
{
if (entering(tcp)) {
tprintf("%#lx, %lu, ", tcp->u_arg[0], tcp->u_arg[1]);
printflags(madvise_flags, tcp->u_arg[2]);
}
return 0;
}
static struct xlat mlockall_flags[] = {
#ifdef MCL_CURRENT
{ MCL_CURRENT, "MCL_CURRENT" },
#endif
#ifdef MCL_FUTURE
{ MCL_FUTURE, "MCL_FUTURE" },
#endif
{ 0, NULL}
};
int
sys_mlockall(tcp)
struct tcb *tcp;
{
if (entering(tcp)) {
printflags(mlockall_flags, tcp->u_arg[0]);
}
return 0;
}
#endif /* LINUX */
#ifdef MS_ASYNC

View File

@ -392,15 +392,15 @@ int new;
return -1;
return 0;
#elif defined(M68K)
if (ptrace(PTRACE_POKEUSER, (char*)(4*PT_ORIG_D0), new)<0)
if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(4*PT_ORIG_D0), new)<0)
return -1;
return 0;
#elif defined(MIPS)
if (ptrace(PTRACE_POKEUSER, (char*)(REG_V0), new)<0)
if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(REG_V0), new)<0)
return -1;
return 0;
#elif defined(ALPHA)
if (ptrace(PTRACE_POKEUSER, (char*)(REG_A3), new)<0)
if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(REG_A3), new)<0)
return -1;
return 0;
#else

View File

@ -36,6 +36,7 @@
#ifdef LINUX
#include <sys/times.h>
#include <linux/kernel.h>
#include <sys/quota.h>
#endif /* LINUX */
#ifdef SUNOS4
#include <ufs/quota.h>
@ -64,9 +65,15 @@ static struct xlat resources[] = {
#ifdef RLIMIT_RSS
{ RLIMIT_RSS, "RLIMIT_RSS" },
#endif
#ifdef RLIMIT_NPROC
{ RLIMIT_NPROC,"RLIMIT_NPROC" },
#endif
#ifdef RLIMIT_NOFILE
{ RLIMIT_NOFILE,"RLIMIT_NOFILE" },
#endif
#ifdef RLIMIT_MEMLOCK
{ RLIMIT_MEMLOCK, "RLIMIT_MEMLOCK" },
#endif
#ifdef RLIMIT_VMEM
{ RLIMIT_VMEM, "RLIMIT_VMEM" },
#endif
@ -140,6 +147,9 @@ struct tcb *tcp;
static struct xlat usagewho[] = {
{ RUSAGE_SELF, "RUSAGE_SELF" },
{ RUSAGE_CHILDREN, "RUSAGE_CHILDREN" },
#ifdef RUSAGE_BOTH
{ RUSAGE_BOTH, "RUSAGE_BOTH" },
#endif
{ 0, NULL },
};
@ -367,6 +377,68 @@ struct tcb *tcp;
#endif /* !SUNOS4 */
#ifdef LINUX
static struct xlat quotacmds[] = {
{ Q_QUOTAON, "Q_QUOTAON" },
{ Q_QUOTAOFF, "Q_QUOTAOFF" },
{ Q_GETQUOTA, "Q_GETQUOTA" },
{ Q_SETQUOTA, "Q_SETQUOTA" },
{ Q_SETUSE, "Q_SETUSE" },
{ Q_SYNC, "Q_SYNC" },
{ Q_SETQLIM, "Q_SETQLIM" },
{ Q_GETSTATS, "Q_GETSTATS" },
{ Q_RSQUASH, "Q_RSQUASH" },
{ 0, NULL },
};
static struct xlat quotatypes[] = {
{ USRQUOTA, "USRQUOTA" },
{ GRPQUOTA, "GRPQUOTA" },
{ 0, NULL },
};
int
sys_quotactl(tcp)
struct tcb *tcp;
{
if (entering(tcp)) {
printxval(quotacmds, tcp->u_arg[0] >> SUBCMDSHIFT, "Q_???");
tprintf("|");
printxval(quotatypes, tcp->u_arg[0] & SUBCMDMASK, "???QUOTA");
tprintf(", ");
printstr(tcp, tcp->u_arg[1], -1);
tprintf(", %lu, ", tcp->u_arg[2]);
}
else {
struct dqblk dq;
if (!tcp->u_arg[3])
tprintf("NULL");
else if (!verbose(tcp))
tprintf("%#lx", tcp->u_arg[3]);
else if (umoven(tcp, tcp->u_arg[3], sizeof(struct dqblk),
(char *) &dq) < 0)
tprintf("???");
else {
tprintf("{");
tprintf("%u, ", dq.dqb_bhardlimit);
tprintf("%u, ", dq.dqb_bsoftlimit);
tprintf("%u, ", dq.dqb_curblocks);
tprintf("%u, ", dq.dqb_ihardlimit);
tprintf("%u, ", dq.dqb_isoftlimit);
tprintf("%u, ", dq.dqb_curinodes);
tprintf("%lu, ", dq.dqb_btime);
tprintf("%lu", dq.dqb_itime);
tprintf("}");
}
}
return 0;
}
#endif /* Linux */
#ifdef SUNOS4
static struct xlat quotacmds[] = {

View File

@ -161,6 +161,9 @@ static struct xlat sigvec_flags[] = {
#ifdef HAVE_SIGACTION
static struct xlat sigact_flags[] = {
#ifdef SA_RESTORER
{ SA_RESTORER, "SA_RESTORER" },
#endif
#ifdef SA_STACK
{ SA_STACK, "SA_STACK" },
#endif

View File

@ -569,6 +569,34 @@ struct tcb *tcp;
return 0;
}
#ifdef LINUX
#if defined (I386)
static long eax;
#elif defined (IA64)
long r8, r10, psr;
long ia32 = 0;
#elif defined (POWERPC)
static long result,flags;
#elif defined (M68K)
static int d0;
#elif defined (ARM)
static int r0;
#elif defined (ALPHA)
static long r0;
static long a3;
#elif defined (SPARC)
static struct pt_regs regs;
static unsigned long trap;
#elif defined(MIPS)
static long a3;
static long r2;
#elif defined(S390)
static long gpr2;
static long pc;
#endif
#endif /* LINUX */
int
get_scno(tcp)
struct tcb *tcp;
@ -751,29 +779,6 @@ struct tcb *tcp;
return 1;
}
#ifdef LINUX
#if defined (I386)
static long eax;
#elif defined (IA64)
long r8, r10, psr;
long ia32 = 0;
#elif defined (POWERPC)
static long result,flags;
#elif defined (M68K)
static int d0;
#elif defined (ARM)
static int r0;
#elif defined (ALPHA)
static long r0;
static long a3;
#elif defined (SPARC)
static struct pt_regs regs;
static unsigned long trap;
#elif defined(S390)
static long gpr2;
static long pc;
#endif
#endif /* LINUX */
int
syscall_fixup(tcp)

133
system.c
View File

@ -1364,19 +1364,87 @@ struct tcb *tcp;
#endif /* SVR4 */
#ifdef SYS_capget
static struct xlat capabilities[] = {
{ 1<<CAP_CHOWN, "CAP_CHOWN" },
{ 1<<CAP_DAC_OVERRIDE, "CAP_DAC_OVERRIDE"},
{ 1<<CAP_DAC_READ_SEARCH,"CAP_DAC_READ_SEARCH"},
{ 1<<CAP_FOWNER, "CAP_FOWNER" },
{ 1<<CAP_FSETID, "CAP_FSETID" },
{ 1<<CAP_KILL, "CAP_KILL" },
{ 1<<CAP_SETGID, "CAP_SETGID" },
{ 1<<CAP_SETUID, "CAP_SETUID" },
{ 1<<CAP_SETPCAP, "CAP_SETPCAP" },
{ 1<<CAP_LINUX_IMMUTABLE,"CAP_LINUX_IMMUTABLE"},
{ 1<<CAP_NET_BIND_SERVICE,"CAP_NET_BIND_SERVICE"},
{ 1<<CAP_NET_BROADCAST, "CAP_NET_BROADCAST"},
{ 1<<CAP_NET_ADMIN, "CAP_NET_ADMIN" },
{ 1<<CAP_NET_RAW, "CAP_NET_RAW" },
{ 1<<CAP_IPC_LOCK, "CAP_IPC_LOCK" },
{ 1<<CAP_IPC_OWNER, "CAP_IPC_OWNER" },
{ 1<<CAP_SYS_MODULE, "CAP_SYS_MODULE"},
{ 1<<CAP_SYS_RAWIO, "CAP_SYS_RAWIO" },
{ 1<<CAP_SYS_CHROOT, "CAP_SYS_CHROOT"},
{ 1<<CAP_SYS_PTRACE, "CAP_SYS_PTRACE"},
{ 1<<CAP_SYS_PACCT, "CAP_SYS_PACCT" },
{ 1<<CAP_SYS_ADMIN, "CAP_SYS_ADMIN" },
{ 1<<CAP_SYS_BOOT, "CAP_SYS_BOOT" },
{ 1<<CAP_SYS_NICE, "CAP_SYS_NICE" },
{ 1<<CAP_SYS_RESOURCE, "CAP_SYS_RESOURCE"},
{ 1<<CAP_SYS_TIME, "CAP_SYS_TIME" },
{ 1<<CAP_SYS_TTY_CONFIG,"CAP_SYS_TTY_CONFIG"},
{ 0, NULL },
};
int
sys_capget(tcp)
struct tcb *tcp;
{
cap_user_header_t arg0;
cap_user_data_t arg1;
static cap_user_header_t arg0 = NULL;
static cap_user_data_t arg1 = NULL;
if(!entering(tcp)) {
arg0 = (cap_user_header_t)tcp->u_arg[0];
arg1 = (cap_user_data_t)tcp->u_arg[1];
tprintf("{%lx, %d}, ", (unsigned long)arg0->version, arg0->pid);
tprintf("{%lx, %lx, %lx}", (unsigned long)arg1->effective,
(unsigned long)arg1->permitted, (unsigned long)arg1->inheritable);
if (!arg0) {
if ((arg0 = malloc(sizeof(*arg0))) == NULL) {
fprintf(stderr, "sys_capget: no memory\n");
tprintf("%#lx, %#lx", tcp->u_arg[0], tcp->u_arg[1]);
return;l
}
}
if (!arg1) {
if ((arg1 = malloc(sizeof(*arg1))) == NULL) {
fprintf(stderr, "sys_capget: no memory\n");
tprintf("%#lx, %#lx", tcp->u_arg[0], tcp->u_arg[1]);
return;
}
}
if (!tcp->u_arg[0])
tprintf("NULL");
else if (!verbose(tcp))
tprintf("%#lx", tcp->u_arg[0]);
else if (umoven(tcp, tcp->u_arg[0], sizeof(*arg0), (char *) arg0) < 0)
tprintf("???");
else {
tprintf("%#x, %d", arg0->version, arg0->pid);
}
tprintf(", ");
if (!tcp->u_arg[1])
tprintf("NULL");
else if (!verbose(tcp))
tprintf("%#lx", tcp->u_arg[1]);
else if (umoven(tcp, tcp->u_arg[1], sizeof(*arg1), (char *) arg1) < 0)
tprintf("???");
else {
tprintf("{");
printflags(capabilities, arg1->effective);
tprintf(", ");
printflags(capabilities, arg1->permitted);
tprintf(", ");
printflags(capabilities, arg1->inheritable);
tprintf("}");
}
}
return 0;
}
@ -1385,15 +1453,50 @@ int
sys_capset(tcp)
struct tcb *tcp;
{
cap_user_header_t arg0;
cap_user_data_t arg1;
static cap_user_header_t arg0 = NULL;
static cap_user_data_t arg1 = NULL;
if(entering(tcp)) {
arg0 = (cap_user_header_t)tcp->u_arg[0];
arg1 = (cap_user_data_t)tcp->u_arg[1];
tprintf("{%lx, %d}, ", (unsigned long)arg0->version, arg0->pid);
tprintf("{%lx, %lx, %lx}", (unsigned long)arg1->effective,
(unsigned long)arg1->permitted, (unsigned long)arg1->inheritable);
if(entering(tcp)) {
if (!arg0) {
if ((arg0 = malloc(sizeof(*arg0))) == NULL) {
fprintf(stderr, "sys_capset: no memory\n");
tprintf("%#lx, %#lx", tcp->u_arg[0], tcp->u_arg[1]);
return;l
}
}
if (!arg1) {
if ((arg1 = malloc(sizeof(*arg1))) == NULL) {
fprintf(stderr, "sys_capset: no memory\n");
tprintf("%#lx, %#lx", tcp->u_arg[0], tcp->u_arg[1]);
return;
}
}
if (!tcp->u_arg[0])
tprintf("NULL");
else if (!verbose(tcp))
tprintf("%#lx", tcp->u_arg[0]);
else if (umoven(tcp, tcp->u_arg[0], sizeof(*arg0), (char *) arg0) < 0)
tprintf("???");
else {
tprintf("%#x, %d", arg0->version, arg0->pid);
}
tprintf(", ");
if (!tcp->u_arg[1])
tprintf("NULL");
else if (!verbose(tcp))
tprintf("%#lx", tcp->u_arg[1]);
else if (umoven(tcp, tcp->u_arg[1], sizeof(*arg1), (char *) arg1) < 0)
tprintf("???");
else {
tprintf("{");
printflags(capabilities, arg1->effective);
tprintf(", ");
printflags(capabilities, arg1->permitted);
tprintf(", ");
printflags(capabilities, arg1->inheritable);
tprintf("}");
}
}
return 0;
}

View File

@ -2,8 +2,8 @@
# $Id$
#
all: vfork fork sig skodic
all: vfork fork sig skodic clone
clean distclean:
rm -f vfork fork sig *.o core
rm -f clone vfork fork sig *.o core

View File

@ -12,7 +12,7 @@
#include <sys/stat.h>
#include <fcntl.h>
void
int
main(void)
{
char *c = (char*)0x94000000;
@ -29,4 +29,5 @@ main(void)
while (1)
if ((fd=open( c, 0 ))!=-1)
close(fd);
return 0;
}

2
util.c
View File

@ -1301,7 +1301,7 @@ struct tcb *tcp;
eip, tcp->baddr);
return 0;
}
#elif defied(POWERPC)
#elif defined(POWERPC)
if (upeek(tcp->pid, 4*PT_NIP, &pc) < 0)
return -1;
if (pc != tcp->baddr) {