Merge Harald Bhme's solaris patches

This commit is contained in:
John Hughes 2001-03-06 15:08:09 +00:00
parent 8ba4b3fc8c
commit bdf48f55f2
13 changed files with 700 additions and 129 deletions

View File

@ -152,7 +152,7 @@ if test x$OPSYS != xLINUX; then
AC_CHECK_LIB(nsl, main)
fi
AC_CHECK_FUNCS(sigaction strerror strsignal pread sys_siglist _sys_siglist getdents mctl putpmsg prctl sendmsg inet_ntop if_indextoname)
AC_CHECK_HEADERS(sys/reg.h sys/filio.h sys/acl.h sys/asynch.h sys/door.h sys/stream.h sys/tiuser.h sys/sysconfig.h asm/sigcontext.h ioctls.h sys/ioctl.h sys/ptrace.h termio.h linux/ptrace.h asm/reg.h linux/icmp.h linux/in6.h sys/uio.h linux/netlink.h linux/if_packet.h sys/poll.h sys/vfs.h netinet/tcp.h netinet/udp.h)
AC_CHECK_HEADERS(sys/reg.h sys/filio.h sys/acl.h sys/asynch.h sys/door.h sys/stream.h sys/tiuser.h sys/sysconfig.h asm/sigcontext.h ioctls.h sys/ioctl.h sys/ptrace.h termio.h linux/ptrace.h asm/reg.h linux/icmp.h linux/in6.h sys/uio.h sys/aio.h linux/netlink.h linux/if_packet.h sys/poll.h sys/vfs.h netinet/tcp.h netinet/udp.h)
AC_DECL_SYS_ERRLIST
AC_DECL_SYS_SIGLIST
AC_DECL__SYS_SIGLIST

12
defs.h
View File

@ -496,3 +496,15 @@ extern int nioctlents2;
extern char *signalent2[];
extern int nsignals2;
#endif /* SUPPORTED_PERSONALITIES >= 3 */
#if _LFS64_LARGEFILE
/* _l refers to the lower numbered u_arg,
* _h refers to the higher numbered u_arg
*/
#if _LITTLE_ENDIAN || I386 /* FIXME! */
#define get64(_l,_h) ((long long)((unsigned long long)(_l) | ((unsigned long long)(_h)<<32)))
#else
#define get64(_l,_h) ((long long)((unsigned long long)(_h) | ((unsigned long long)(_l)<<32)))
#endif
#endif

123
desc.c
View File

@ -63,6 +63,72 @@ static struct xlat fcntlcmds[] = {
#endif
#ifdef F_GETSIG
{ F_GETSIG, "F_GETSIG" },
#endif
#ifdef F_CHKFL
{ F_CHKFL, "F_CHKFL" },
#endif
#ifdef F_DUP2FD
{ F_DUP2FD, "F_DUP2FD" },
#endif
#ifdef F_ALLOCSP
{ F_ALLOCSP, "F_ALLOCSP" },
#endif
#ifdef F_ISSTREAM
{ F_ISSTREAM, "F_ISSTREAM" },
#endif
#ifdef F_PRIV
{ F_PRIV, "F_PRIV" },
#endif
#ifdef F_NPRIV
{ F_NPRIV, "F_NPRIV" },
#endif
#ifdef F_QUOTACL
{ F_QUOTACL, "F_QUOTACL" },
#endif
#ifdef F_BLOCKS
{ F_BLOCKS, "F_BLOCKS" },
#endif
#ifdef F_BLKSIZE
{ F_BLKSIZE, "F_BLKSIZE" },
#endif
#ifdef F_GETOWN
{ F_GETOWN, "F_GETOWN" },
#endif
#ifdef F_SETOWN
{ F_SETOWN, "F_SETOWN" },
#endif
#ifdef F_REVOKE
{ F_REVOKE, "F_REVOKE" },
#endif
#ifdef F_SETLK
{ F_SETLK, "F_SETLK" },
#endif
#ifdef F_SETLKW
{ F_SETLKW, "F_SETLKW" },
#endif
#ifdef F_FREESP
{ F_FREESP, "F_FREESP" },
#endif
#ifdef F_GETLK
{ F_GETLK, "F_GETLK" },
#endif
#ifdef F_SETLK64
{ F_SETLK64, "F_SETLK64" },
#endif
#ifdef F_SETLKW64
{ F_SETLKW64, "F_SETLKW64" },
#endif
#ifdef F_FREESP64
{ F_FREESP64, "F_FREESP64" },
#endif
#ifdef F_GETLK64
{ F_GETLK64, "F_GETLK64" },
#endif
#ifdef F_SHARE
{ F_SHARE, "F_SHARE" },
#endif
#ifdef F_UNSHARE
{ F_UNSHARE, "F_UNSHARE" },
#endif
{ 0, NULL },
};
@ -130,6 +196,32 @@ int getlk;
tprintf("}");
}
#if _LFS64_LARGEFILE
/* fcntl/lockf */
static void
printflock64(tcp, addr, getlk)
struct tcb *tcp;
int addr;
int getlk;
{
struct flock64 fl;
if (umove(tcp, addr, &fl) < 0) {
tprintf("{...}");
return;
}
tprintf("{type=");
printxval(lockfcmds, fl.l_type, "F_???");
tprintf(", whence=");
printxval(whence, fl.l_whence, "SEEK_???");
tprintf(", start=%lld, len=%lld", fl.l_start, fl.l_len);
if (getlk)
tprintf(", pid=%lu}", (unsigned long) fl.l_pid);
else
tprintf("}");
}
#endif
static char *
sprintflags(xlat, flags)
struct xlat *xlat;
@ -178,10 +270,29 @@ struct tcb *tcp;
tprintf("0");
break;
case F_SETLK: case F_SETLKW:
#ifdef F_FREESP
case F_FREESP:
#endif
tprintf(", ");
printflock(tcp, tcp->u_arg[2], 0);
break;
}
#if _LFS64_LARGEFILE
#ifdef F_FREESP64
case F_FREESP64:
#endif
/* Linux glibc defines SETLK64 as SETLK,
even though the kernel has different values - as does Solaris. */
#if defined(F_SETLK64) && F_SETLK64+0!=F_SETLK
case F_SETLK64:
#endif
#if defined(F_SETLKW64) && F_SETLKW64+0!=F_SETLKW
case F_SETLKW64:
#endif
tprintf(", ");
printflock64(tcp, tcp->u_arg[2], 0);
break;
#endif
}
}
else {
switch (tcp->u_arg[1]) {
@ -202,7 +313,15 @@ struct tcb *tcp;
tprintf(", ");
printflock(tcp, tcp->u_arg[2], 1);
break;
default:
#if _LFS64_LARGEFILE
#if defined(F_GETLK64) && F_GETLK64+0!=F_GETLK
case F_GETLK64:
#endif
tprintf(", ");
printflock64(tcp, tcp->u_arg[2], 1);
break;
#endif
default:
tprintf(", %#lx", tcp->u_arg[2]);
break;
}

103
file.c
View File

@ -411,6 +411,23 @@ struct tcb *tcp;
}
#endif
#if _LFS_LARGEFILE
int
sys_lseek64 (tcp)
struct tcb *tcp;
{
if (entering(tcp)) {
long long offset = get64(tcp->u_arg [1], tcp->u_arg[2]);
if (tcp->u_arg[3] == SEEK_SET)
tprintf("%ld, %llu, ", tcp->u_arg[0], offset);
else
tprintf("%ld, %lld, ", tcp->u_arg[0], offset);
printxval(whence, tcp->u_arg[3], "SEEK_???");
}
return RVAL_LUDECIMAL;
}
#endif
int
sys_truncate(tcp)
struct tcb *tcp;
@ -1787,6 +1804,75 @@ struct tcb *tcp;
return 0;
}
#if _LFS64_LARGEFILE
int
sys_getdents64(tcp)
struct tcb *tcp;
{
int i, len, dents = 0;
char *buf;
if (entering(tcp)) {
tprintf("%lu, ", tcp->u_arg[0]);
return 0;
}
if (syserror(tcp) || !verbose(tcp)) {
tprintf("%#lx, %lu", tcp->u_arg[1], tcp->u_arg[2]);
return 0;
}
len = tcp->u_rval;
if ((buf = malloc(len)) == NULL) {
tprintf("out of memory\n");
return 0;
}
if (umoven(tcp, tcp->u_arg[1], len, buf) < 0) {
tprintf("{...}, %lu", tcp->u_arg[2]);
free(buf);
return 0;
}
if (!abbrev(tcp))
tprintf("{");
for (i = 0; i < len;) {
struct dirent64 *d = (struct dirent64 *) &buf[i];
#ifdef linux
if (!abbrev(tcp)) {
tprintf("%s{d_ino=%lu, d_off=%lu, ",
i ? " " : "", d->d_ino, d->d_off);
tprintf("d_reclen=%u, d_name=\"%s\"}",
d->d_reclen, d->d_name);
}
#endif /* linux */
#ifdef SVR4
if (!abbrev(tcp)) {
tprintf("%s{d_ino=%llu, d_off=%llu, ",
i ? " " : "", d->d_ino, d->d_off);
tprintf("d_reclen=%u, d_name=\"%s\"}",
d->d_reclen, d->d_name);
}
#endif /* SVR4 */
#ifdef SUNOS4
if (!abbrev(tcp)) {
tprintf("%s{d_off=%lu, d_fileno=%lu, d_reclen=%u, ",
i ? " " : "", d->d_off, d->d_fileno,
d->d_reclen);
tprintf("d_namlen=%u, d_name=\"%.*s\"}",
d->d_namlen, d->d_namlen, d->d_name);
}
#endif /* SUNOS4 */
i += d->d_reclen;
dents++;
}
if (!abbrev(tcp))
tprintf("}");
else
tprintf("/* %u entries */", dents);
tprintf(", %lu", tcp->u_arg[2]);
free(buf);
return 0;
}
#endif
#ifdef FREEBSD
int
sys_getdirentries(tcp)
@ -1955,20 +2041,3 @@ struct tcb *tcp;
}
#endif /* HAVE_SYS_ASYNCH_H */
#if UNIXWARE >= 7
int
sys_lseek64 (tcp)
struct tcb *tcp;
{
if (entering(tcp)) {
long long offset = * (long long *) & tcp->u_arg [1];
if (tcp->u_arg[3] == SEEK_SET)
tprintf("%ld, %llu, ", tcp->u_arg[0], offset);
else
tprintf("%ld, %lld, ", tcp->u_arg[0], offset);
printxval(whence, tcp->u_arg[3], "SEEK_???");
}
return RVAL_LDECIMAL;
}
#endif

30
io.c
View File

@ -279,6 +279,36 @@ struct tcb *tcp;
#endif /* LINUX */
#if _LFS64_LARGEFILE
int
sys_pread64(tcp)
struct tcb *tcp;
{
if (entering(tcp)) {
tprintf("%ld, ", tcp->u_arg[0]);
} else {
if (syserror(tcp))
tprintf("%#lx", tcp->u_arg[1]);
else
printstr(tcp, tcp->u_arg[1], tcp->u_rval);
tprintf(", %lu, %#llx", tcp->u_arg[2], get64(tcp->u_arg[3], tcp->u_arg[4]));
}
return 0;
}
int
sys_pwrite64(tcp)
struct tcb *tcp;
{
if (entering(tcp)) {
tprintf("%ld, ", tcp->u_arg[0]);
printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
tprintf(", %lu, %#llx", tcp->u_arg[2], get64(tcp->u_arg[3], tcp->u_arg[4]));
}
return 0;
}
#endif
int
sys_ioctl(tcp)
struct tcb *tcp;

44
mem.c
View File

@ -224,6 +224,50 @@ struct tcb *tcp;
return print_mmap(tcp, tcp->u_arg);
}
#if _LFS64_LARGEFILE
int
sys_mmap64(tcp)
struct tcb *tcp;
{
#ifdef linux
#ifdef ALPHA
long *u_arg = tcp->u_arg;
#else /* !ALPHA */
long u_arg[7];
#endif /* !ALPHA */
#else /* !linux */
long *u_arg = tcp->u_arg;
#endif /* !linux */
if (entering(tcp)) {
#ifdef linux
#ifndef ALPHA
if (umoven(tcp, tcp->u_arg[0], sizeof u_arg,
(char *) u_arg) == -1)
return 0;
#endif /* ALPHA */
#endif /* linux */
/* addr */
tprintf("%#lx, ", u_arg[0]);
/* len */
tprintf("%lu, ", u_arg[1]);
/* prot */
printflags(mmap_prot, u_arg[2]);
tprintf(", ");
/* flags */
printxval(mmap_flags, u_arg[3] & MAP_TYPE, "MAP_???");
addflags(mmap_flags, u_arg[3] & ~MAP_TYPE);
/* fd */
tprintf(", %ld, ", u_arg[4]);
/* offset */
tprintf("%#llx", get64(u_arg[5], u_arg[6]));
}
return RVAL_HEX;
}
#endif
int
sys_munmap(tcp)
struct tcb *tcp;

27
net.c
View File

@ -806,6 +806,33 @@ struct tcb *tcp;
return 0;
}
int
sys_so_socket(tcp)
struct tcb *tcp;
{
if (entering(tcp)) {
/* not sure really what these args are... but this
* is how truss prints it
*/
tprintf("%ld, %ld, %ld, ",
tcp->u_arg[0], tcp->u_arg[1], tcp->u_arg[2]);
printpath(tcp, tcp->u_arg[3]);
tprintf(", %ld", tcp->u_arg[4]);
}
return 0;
}
int
sys_so_socketpair(tcp)
struct tcb *tcp;
{
if (entering(tcp)) {
/* not sure what this arg is */
tprintf("0x%lx", tcp->u_arg[0]);
}
return 0;
}
int
sys_bind(tcp)
struct tcb *tcp;

View File

@ -142,6 +142,67 @@ struct tcb *tcp;
return 0;
}
#if _LFS64_LARGEFILE
static char *
sprintrlim64(lim)
rlim64_t lim;
{
static char buf[64];
if (lim == RLIM64_INFINITY)
sprintf(buf, "RLIM64_INFINITY");
else if (lim > 1024 && lim%1024 == 0)
sprintf(buf, "%lld*1024", lim/1024);
else
sprintf(buf, "%lld", lim);
return buf;
}
int
sys_getrlimit64(tcp)
struct tcb *tcp;
{
struct rlimit64 rlim;
if (entering(tcp)) {
printxval(resources, tcp->u_arg[0], "RLIMIT_???");
tprintf(", ");
}
else {
if (syserror(tcp) || !verbose(tcp))
tprintf("%#lx", tcp->u_arg[1]);
else if (umove(tcp, tcp->u_arg[1], &rlim) < 0)
tprintf("{...}");
else {
tprintf("{rlim_cur=%s,", sprintrlim64(rlim.rlim_cur));
tprintf(" rlim_max=%s}", sprintrlim64(rlim.rlim_max));
}
}
return 0;
}
int
sys_setrlimit64(tcp)
struct tcb *tcp;
{
struct rlimit64 rlim;
if (entering(tcp)) {
printxval(resources, tcp->u_arg[0], "RLIMIT_???");
tprintf(", ");
if (!verbose(tcp))
tprintf("%#lx", tcp->u_arg[1]);
else if (umove(tcp, tcp->u_arg[1], &rlim) < 0)
tprintf("{...}");
else {
tprintf("{rlim_cur=%s,", sprintrlim64(rlim.rlim_cur));
tprintf(" rlim_max=%s}", sprintrlim64(rlim.rlim_max));
}
}
return 0;
}
#endif
#ifndef SVR4
static struct xlat usagewho[] = {

View File

@ -316,7 +316,18 @@ int rt; /* set might include realtime sigs */
*s++ = '[';
for (i = 1; i < maxsigs; i++) {
if (sigismember(mask, i) == 1) {
sprintf(s, format, signame(i) + 3); s += strlen(s);
/* real-time signals on solaris don't have
* signalent entries
*/
if (i < nsignals) {
sprintf(s, format, signalent[i] + 3);
}
else {
char tsig[32];
sprintf(tsig, "%u", i);
sprintf(s, format, tsig);
}
s += strlen(s);
format = " %s";
}
}

View File

@ -58,6 +58,7 @@
#define sys_priocntl printargs
#define sys_ksigqueue printargs
#define sys_lwp_sema_wait printargs
#define sys_lwp_sema_trywait printargs
#define sys_memcntl printargs
#define sys_syscall printargs
#define sys_clocal printargs
@ -108,7 +109,9 @@
#define sys_lwp_cond_wait printargs
#define sys_lwp_cond_signal printargs
#define sys_lwp_cond_broadcast printargs
#if !_LFS64_LARGEFILE
#define sys_llseek printargs
#endif
#define sys_inst_sync printargs
#define sys_auditsys printargs
#define sys_processor_bind printargs
@ -183,16 +186,6 @@
#define sys_priocntllst printargs
#define sys_lwp_sema_trywait printargs
#define sys_xsetsockaddr printargs
#define sys_fstatvfs64 printargs
#define sys_statvfs64 printargs
#define sys_ftruncate64 printargs
#define sys_truncate64 printargs
#define sys_getrlimit64 printargs
#define sys_setrlimit64 printargs
#define sys_mmap64 printargs
#define sys_pread64 printargs
#define sys_pwrite64 printargs
#define sys_creat64 printargs
#define sys_dshmsys printargs
#define sys_invlpg printargs
#define sys_rfork1 printargs
@ -202,6 +195,25 @@
#define sys_kill3 printargs
#define sys_ssisys printargs
#define sys_xbindresvport printargs
#define sys_lwp_sema_trywait printargs
#define sys_tsolsys printargs
#ifndef HAVE_SYS_ACL_H
#define sys_acl printargs
#define sys_facl printargs
#define sys_aclipc printargs
#endif
#define sys_install_utrap printargs
#define sys_signotify printargs
#define sys_schedctl printargs
#define sys_pset printargs
#define sys_resolvepath printargs
#define sys_signotifywait printargs
#define sys_lwp_sigredirect printargs
#define sys_lwp_alarm printargs
#define sys_rpcsys printargs
#define sys_sockconfig printargs
#define sys_ntp_gettime printargs
#define sys_ntp_adjtime printargs
/* like another call */
#define sys_lchown sys_chown
@ -227,6 +239,51 @@
#define sys_fork1 sys_fork
#define sys_forkall sys_fork
/* aio */
#define sys_aionotify printargs
#define sys_aioinit printargs
#define sys_aiostart printargs
#define sys_aiolio printargs
#define sys_aiosuspend printargs
#define sys_aioerror printargs
#define sys_aioliowait printargs
#define sys_aioaread printargs
#define sys_aioawrite printargs
#define sys_aiolio64 printargs
#define sys_aiosuspend64 printargs
#define sys_aioerror64 printargs
#define sys_aioliowait64 printargs
#define sys_aioaread64 printargs
#define sys_aioaread64 printargs
#define sys_aioawrite64 printargs
#define sys_aiocancel64 printargs
#define sys_aiofsync printargs
/* the various 64-bit file stuff */
#if !_LFS64_LARGEFILE
/* we've implemented these */
#define sys_getdents64 printargs
#define sys_mmap64 printargs
#define sys_stat64 printargs
#define sys_lstat64 printargs
#define sys_fstat64 printargs
#define sys_setrlimit64 printargs
#define sys_getrlimit64 printargs
#define sys_pread64 printargs
#define sys_pwrite64 printargs
#endif
/* unimplemented 64-bit stuff */
#define sys_statvfs64 printargs
#define sys_fstatvfs64 printargs
#define sys_ftruncate64 printargs
#define sys_truncate64 printargs
/* like another call */
#define sys_creat64 sys_creat
#define sys_open64 sys_open
#define sys_llseek sys_lseek64
/* printargs does the right thing */
#define sys_sync printargs
#define sys_profil printargs
@ -245,6 +302,7 @@
#define sys_spcall printargs
#define sys_context printargs
#define sys_door printargs
#define sys_kaio printargs
#if DONE
#define sys_mount printargs

View File

@ -106,27 +106,28 @@ extern int sys_getmsg();
extern int sys_putmsg();
extern int sys_poll();
extern int sys_dup2();
#ifdef MIPS
extern int sys_sigreturn();
extern int sys_accept();
extern int sys_bind();
extern int sys_listen();
extern int sys_accept();
extern int sys_connect();
extern int sys_gethostid();
extern int sys_shutdown();
extern int sys_recv();
extern int sys_recvfrom();
extern int sys_send();
extern int sys_sendto();
extern int sys_getpeername();
extern int sys_getsockname();
extern int sys_getsockopt();
extern int sys_listen();
extern int sys_recv();
extern int sys_recvfrom();
extern int sys_setsockopt();
#ifdef MIPS
extern int sys_sigreturn();
extern int sys_gethostid();
extern int sys_recvmsg();
extern int sys_select();
extern int sys_send();
extern int sys_sendmsg();
extern int sys_sendto();
extern int sys_sethostid();
extern int sys_setsockopt();
extern int sys_shutdown();
extern int sys_socket();
extern int sys_listen();
extern int sys_gethostname();
extern int sys_sethostname();
extern int sys_getdomainname();
@ -278,7 +279,6 @@ extern int sys_lwp_cond_signal();
extern int sys_lwp_cond_broadcast();
extern int sys_pread();
extern int sys_pwrite();
extern int sys_llseek();
extern int sys_inst_sync();
extern int sys_auditsys();
extern int sys_processor_bind();
@ -294,6 +294,8 @@ extern int sys_timer_settime();
extern int sys_timer_gettime();
extern int sys_timer_getoverrun();
extern int sys_nanosleep();
extern int sys_setreuid();
extern int sys_setregid();
#ifdef HAVE_SYS_ACL_H
extern int sys_acl();
extern int sys_facl();
@ -460,6 +462,33 @@ extern int sys_getcontext(), sys_setcontext();
#endif /* !MIPS */
#ifdef HAVE_SYS_AIO_H
extern int sys_aioread();
extern int sys_aiowrite();
extern int sys_aiowait();
extern int sys_aiocancel();
#endif /* HAVE_SYS_AIO_H */
/* 64-bit file stuff */
#if _LFS64_LARGEFILE
extern int sys_getdents64();
extern int sys_mmap64();
extern int sys_stat64();
extern int sys_lstat64();
extern int sys_fstat64();
extern int sys_setrlimit64();
extern int sys_getrlimit64();
extern int sys_pread64();
extern int sys_pwrite64();
extern int sys_lseek64();
#endif
/* solaris 2.6 stuff */
extern int sys_so_socket();
extern int sys_so_socketpair();
#ifdef HAVE_SYS_DOOR_H
#define SYS_door_subcall 390 + SGI_KLUDGE
@ -473,3 +502,32 @@ extern int sys_getcontext(), sys_setcontext();
#define SYS_door_nsubcalls 6
#endif /* HAVE_SYS_DOOR_H */
#ifdef HAVE_SYS_AIO_H
#define SYS_kaio_subcall 400 + SGI_KLUDGE
#define SYS_aioread (SYS_kaio_subcall + 0)
#define SYS_aiowrite (SYS_kaio_subcall + 1)
#define SYS_aiowait (SYS_kaio_subcall + 2)
#define SYS_aiocancel (SYS_kaio_subcall + 3)
#define SYS_aionotify (SYS_kaio_subcall + 4)
#define SYS_aioinit (SYS_kaio_subcall + 5)
#define SYS_aiostart (SYS_kaio_subcall + 6)
#define SYS_aiolio (SYS_kaio_subcall + 7)
#define SYS_aiosuspend (SYS_kaio_subcall + 8)
#define SYS_aioerror (SYS_kaio_subcall + 9)
#define SYS_aioliowait (SYS_kaio_subcall + 10)
#define SYS_aioaread (SYS_kaio_subcall + 11)
#define SYS_aioawrite (SYS_kaio_subcall + 12)
#define SYS_aiolio64 (SYS_kaio_subcall + 13)
#define SYS_aiosuspend64 (SYS_kaio_subcall + 14)
#define SYS_aioerror64 (SYS_kaio_subcall + 15)
#define SYS_aioliowait64 (SYS_kaio_subcall + 16)
#define SYS_aioaread64 (SYS_kaio_subcall + 17)
#define SYS_aioawrite64 (SYS_kaio_subcall + 18)
#define SYS_aiocancel64 (SYS_kaio_subcall + 19)
#define SYS_aiofsync (SYS_kaio_subcall + 20)
#define SYS_kaio_nsubcalls 21
#endif /* HAVE_SYS_AIO_H */

View File

@ -302,6 +302,11 @@
{ -1, 0, printargs, "SYS_248" }, /* 248 */
{ -1, 0, printargs, "SYS_249" }, /* 249 */
{ -1, 0, printargs, "SYS_250" }, /* 250 */
{ -1, 0, printargs, "SYS_251" }, /* 251 */
{ -1, 0, printargs, "SYS_252" }, /* 252 */
{ -1, 0, printargs, "SYS_253" }, /* 253 */
{ -1, 0, printargs, "SYS_254" }, /* 254 */
{ -1, 0, printargs, "SYS_255" }, /* 255 */
#else /* !MIPS */
{ -1, TF, sys_lstat, "lstat" }, /* 88 */
{ -1, TF, sys_symlink, "symlink" }, /* 89 */
@ -430,89 +435,6 @@
{ -1, 0, sys_lwp_sema_wait, "lwp_sema_wait" }, /* 207 */
{ -1, 0, sys_lwp_sema_post, "lwp_sema_post" }, /* 208 */
{ -1, 0, sys_lwp_sema_trywait, "lwp_sema_trywait"}, /* 209 */
#else
{ -1, 0, sys_seteuid, "seteuid" }, /* 141 */
{ -1, 0, sys_vtrace, "vtrace" }, /* 142 */
{ -1, TP, sys_fork1, "fork1" }, /* 143 */
{ -1, TS, sys_sigtimedwait, "sigtimedwait" }, /* 144 */
{ -1, 0, sys_lwp_info, "lwp_info" }, /* 145 */
{ -1, 0, sys_yield, "yield" }, /* 146 */
{ -1, 0, sys_lwp_sema_wait, "lwp_sema_wait" }, /* 147 */
{ -1, 0, sys_lwp_sema_post, "lwp_sema_post" }, /* 148 */
{ -1, 0, printargs, "SYS_149" }, /* 149 */
{ -1, 0, printargs, "SYS_150" }, /* 150 */
{ -1, 0, printargs, "SYS_151" }, /* 151 */
{ -1, 0, sys_modctl, "modctl" }, /* 152 */
{ -1, 0, sys_fchroot, "fchroot" }, /* 153 */
{ -1, TF, sys_utimes, "utimes" }, /* 154 */
{ -1, 0, sys_vhangup, "vhangup" }, /* 155 */
{ -1, 0, sys_gettimeofday, "gettimeofday" }, /* 156 */
{ -1, 0, sys_getitimer, "getitimer" }, /* 157 */
{ -1, 0, sys_setitimer, "setitimer" }, /* 158 */
{ -1, 0, sys_lwp_create, "lwp_create" }, /* 159 */
{ -1, 0, sys_lwp_exit, "lwp_exit" }, /* 160 */
{ -1, 0, sys_lwp_suspend, "lwp_suspend" }, /* 161 */
{ -1, 0, sys_lwp_continue, "lwp_continue" }, /* 162 */
{ -1, 0, sys_lwp_kill, "lwp_kill" }, /* 163 */
{ -1, 0, sys_lwp_self, "lwp_self" }, /* 164 */
{ -1, 0, sys_lwp_setprivate, "lwp_setprivate"}, /* 165 */
{ -1, 0, sys_lwp_getprivate, "lwp_getprivate"}, /* 166 */
{ -1, 0, sys_lwp_wait, "lwp_wait" }, /* 167 */
{ -1, 0, sys_lwp_mutex_unlock, "lwp_mutex_unlock"}, /* 168 */
{ -1, 0, sys_lwp_mutex_lock, "lwp_mutex_lock"}, /* 169 */
{ -1, 0, sys_lwp_cond_wait, "lwp_cond_wait"}, /* 170 */
{ -1, 0, sys_lwp_cond_signal, "lwp_cond_signal"}, /* 171 */
{ -1, 0, sys_lwp_cond_broadcast, "lwp_cond_broadcast"}, /* 172 */
{ -1, 0, sys_pread, "pread" }, /* 173 */
{ -1, 0, sys_pwrite, "pwrite" }, /* 174 */
{ -1, 0, sys_llseek, "llseek" }, /* 175 */
{ -1, 0, sys_inst_sync, "inst_sync" }, /* 176 */
{ -1, 0, printargs, "SYS_177" }, /* 177 */
{ -1, 0, printargs, "SYS_178" }, /* 178 */
{ -1, 0, printargs, "SYS_179" }, /* 179 */
{ -1, 0, printargs, "SYS_180" }, /* 180 */
{ -1, 0, printargs, "SYS_181" }, /* 181 */
{ -1, 0, printargs, "SYS_182" }, /* 182 */
{ -1, 0, printargs, "SYS_183" }, /* 183 */
{ -1, 0, printargs, "SYS_184" }, /* 184 */
#ifdef HAVE_SYS_ACL_H
{ -1, TF, sys_acl, "acl" }, /* 185 */
#else
{ -1, 0, printargs, "SYS_185" }, /* 185 */
#endif
{ -1, 0, sys_auditsys, "auditsys" }, /* 186 */
{ -1, 0, sys_processor_bind, "processor_bind"}, /* 187 */
{ -1, 0, sys_processor_info, "processor_info"}, /* 188 */
{ -1, 0, sys_p_online, "p_online" }, /* 189 */
{ -1, 0, sys_sigqueue, "sigqueue" }, /* 190 */
{ -1, 0, sys_clock_gettime, "clock_gettime" }, /* 191 */
{ -1, 0, sys_clock_settime, "clock_settime" }, /* 192 */
{ -1, 0, sys_clock_getres, "clock_getres" }, /* 193 */
{ -1, 0, sys_timer_create, "timer_create" }, /* 194 */
{ -1, 0, sys_timer_delete, "timer_delete" }, /* 195 */
{ -1, 0, sys_timer_settime, "timer_settime" }, /* 196 */
{ -1, 0, sys_timer_gettime, "timer_gettime" }, /* 197 */
{ -1, 0, sys_timer_getoverrun, "timer_getoverrun"}, /* 198 */
{ -1, 0, sys_nanosleep, "nanosleep" }, /* 199 */
#ifdef HAVE_SYS_ACL_H
{ -1, 0, sys_facl, "facl" }, /* 200 */
#else
{ -1, 0, printargs, "SYS_200" }, /* 200 */
#endif
#ifdef HAVE_SYS_DOOR_H
{ -1, 0, sys_door, "door" }, /* 201 */
#else
{ -1, 0, printargs, "SYS_201" }, /* 201 */
#endif
{ -1, 0, sys_setreuid, "setreuid" }, /* 202 */
{ -1, 0, sys_setregid, "setregid" }, /* 203 */
{ -1, 0, printargs, "SYS_204" }, /* 204 */
{ -1, 0, printargs, "SYS_205" }, /* 205 */
{ -1, 0, printargs, "SYS_206" }, /* 206 */
{ -1, 0, printargs, "SYS_207" }, /* 207 */
{ -1, 0, printargs, "SYS_208" }, /* 208 */
{ -1, 0, printargs, "SYS_209" }, /* 209 */
#endif
{ -1, 0, printargs, "SYS_210" }, /* 210 */
{ -1, 0, printargs, "SYS_211" }, /* 211 */
{ -1, 0, printargs, "SYS_212" }, /* 212 */
@ -553,7 +475,7 @@
{ -1, TN, sys_xshutdown, "xshutdown" }, /* 246 */
{ -1, TN, sys_xsocket, "xsocket" }, /* 247 */
{ -1, TN, sys_xsocketpair, "xsocketpair" }, /* 248 */
#else
#else /* UNIXWARE 2 */
{ -1, 0, printargs, "SYS_216" }, /* 216 */
{ -1, 0, printargs, "SYS_217" }, /* 217 */
{ -1, 0, printargs, "SYS_218" }, /* 218 */
@ -587,15 +509,145 @@
{ -1, 0, printargs, "SYS_246" }, /* 246 */
{ -1, 0, printargs, "SYS_247" }, /* 247 */
{ -1, 0, printargs, "SYS_248" }, /* 248 */
#endif
#endif /* UNIXWARE 2 */
{ -1, 0, printargs, "SYS_249" }, /* 249 */
{ -1, 0, printargs, "SYS_250" }, /* 250 */
#endif /* !MIPS */
{ -1, 0, printargs, "SYS_251" }, /* 251 */
{ -1, 0, printargs, "SYS_252" }, /* 252 */
{ -1, 0, printargs, "SYS_253" }, /* 253 */
{ -1, 0, printargs, "SYS_254" }, /* 254 */
{ -1, 0, printargs, "SYS_255" }, /* 255 */
#else /* !UNIXWARE */
{ -1, 0, sys_seteuid, "seteuid" }, /* 141 */
{ -1, 0, sys_vtrace, "vtrace" }, /* 142 */
{ -1, TP, sys_fork1, "fork1" }, /* 143 */
{ -1, TS, sys_sigtimedwait, "sigtimedwait" }, /* 144 */
{ -1, 0, sys_lwp_info, "lwp_info" }, /* 145 */
{ -1, 0, sys_yield, "yield" }, /* 146 */
{ -1, 0, sys_lwp_sema_wait, "lwp_sema_wait" }, /* 147 */
{ -1, 0, sys_lwp_sema_post, "lwp_sema_post" }, /* 148 */
{ -1, 0, sys_lwp_sema_trywait,"lwp_sema_trywait" }, /* 149 */
{ -1, 0, printargs, "SYS_150" }, /* 150 */
{ -1, 0, printargs, "SYS_151" }, /* 151 */
{ -1, 0, sys_modctl, "modctl" }, /* 152 */
{ -1, 0, sys_fchroot, "fchroot" }, /* 153 */
{ -1, TF, sys_utimes, "utimes" }, /* 154 */
{ -1, 0, sys_vhangup, "vhangup" }, /* 155 */
{ -1, 0, sys_gettimeofday, "gettimeofday" }, /* 156 */
{ -1, 0, sys_getitimer, "getitimer" }, /* 157 */
{ -1, 0, sys_setitimer, "setitimer" }, /* 158 */
{ -1, 0, sys_lwp_create, "lwp_create" }, /* 159 */
{ -1, 0, sys_lwp_exit, "lwp_exit" }, /* 160 */
{ -1, 0, sys_lwp_suspend, "lwp_suspend" }, /* 161 */
{ -1, 0, sys_lwp_continue, "lwp_continue" }, /* 162 */
{ -1, 0, sys_lwp_kill, "lwp_kill" }, /* 163 */
{ -1, 0, sys_lwp_self, "lwp_self" }, /* 164 */
{ -1, 0, sys_lwp_setprivate, "lwp_setprivate"}, /* 165 */
{ -1, 0, sys_lwp_getprivate, "lwp_getprivate"}, /* 166 */
{ -1, 0, sys_lwp_wait, "lwp_wait" }, /* 167 */
{ -1, 0, sys_lwp_mutex_unlock, "lwp_mutex_unlock"}, /* 168 */
{ -1, 0, sys_lwp_mutex_lock, "lwp_mutex_lock"}, /* 169 */
{ -1, 0, sys_lwp_cond_wait, "lwp_cond_wait"}, /* 170 */
{ -1, 0, sys_lwp_cond_signal, "lwp_cond_signal"}, /* 171 */
{ -1, 0, sys_lwp_cond_broadcast, "lwp_cond_broadcast"}, /* 172 */
{ -1, 0, sys_pread, "pread" }, /* 173 */
{ -1, 0, sys_pwrite, "pwrite" }, /* 174 */
{ -1, 0, sys_llseek, "llseek" }, /* 175 */
{ -1, 0, sys_inst_sync, "inst_sync" }, /* 176 */
{ -1, 0, printargs, "srmlimitsys" }, /* 177 */
{ -1, 0, sys_kaio, "kaio" }, /* 178 */
{ -1, 0, printargs, "cpc" }, /* 179 */
{ -1, 0, printargs, "SYS_180" }, /* 180 */
{ -1, 0, printargs, "SYS_181" }, /* 181 */
{ -1, 0, printargs, "SYS_182" }, /* 182 */
{ -1, 0, printargs, "SYS_183" }, /* 183 */
{ -1, 0, sys_tsolsys, "tsolsys" }, /* 184 */
#ifdef HAVE_SYS_ACL_H
{ -1, TF, sys_acl, "acl" }, /* 185 */
#else
{ -1, 0, printargs, "SYS_185" }, /* 185 */
#endif
{ -1, 0, sys_auditsys, "auditsys" }, /* 186 */
{ -1, 0, sys_processor_bind, "processor_bind"}, /* 187 */
{ -1, 0, sys_processor_info, "processor_info"}, /* 188 */
{ -1, 0, sys_p_online, "p_online" }, /* 189 */
{ -1, 0, sys_sigqueue, "sigqueue" }, /* 190 */
{ -1, 0, sys_clock_gettime, "clock_gettime" }, /* 191 */
{ -1, 0, sys_clock_settime, "clock_settime" }, /* 192 */
{ -1, 0, sys_clock_getres, "clock_getres" }, /* 193 */
{ -1, 0, sys_timer_create, "timer_create" }, /* 194 */
{ -1, 0, sys_timer_delete, "timer_delete" }, /* 195 */
{ -1, 0, sys_timer_settime, "timer_settime" }, /* 196 */
{ -1, 0, sys_timer_gettime, "timer_gettime" }, /* 197 */
{ -1, 0, sys_timer_getoverrun, "timer_getoverrun"}, /* 198 */
{ -1, 0, sys_nanosleep, "nanosleep" }, /* 199 */
#ifdef HAVE_SYS_ACL_H
{ -1, 0, sys_facl, "facl" }, /* 200 */
#else
{ -1, 0, printargs, "SYS_200" }, /* 200 */
#endif
#ifdef HAVE_SYS_DOOR_H
{ -1, 0, sys_door, "door" }, /* 201 */
#else
{ -1, 0, printargs, "SYS_201" }, /* 201 */
#endif
{ -1, 0, sys_setreuid, "setreuid" }, /* 202 */
{ -1, 0, sys_setregid, "setregid" }, /* 203 */
{ -1, 0, sys_install_utrap, "install_utrap" }, /* 204 */
{ -1, 0, sys_signotify, "signotify" }, /* 205 */
{ -1, 0, sys_schedctl, "schedctl" }, /* 206 */
{ -1, 0, sys_pset, "pset" }, /* 207 */
{ -1, 0, printargs, "__sparc_utrap_install" }, /* 208 */
{ -1, 0, sys_resolvepath, "resolvepath" }, /* 209 */
{ -1, 0, sys_signotifywait, "signotifywait" }, /* 210 */
{ -1, 0, sys_lwp_sigredirect, "lwp_sigredirect" }, /* 211 */
{ -1, 0, sys_lwp_alarm, "lwp_alarm" }, /* 212 */
{ -1, 0, sys_getdents64, "getdents64" }, /* 213 */
{ -1, 0, sys_mmap64, "mmap64" }, /* 214 */
{ -1, 0, sys_stat64, "stat64" }, /* 215 */
{ -1, 0, sys_lstat64, "lstat64" }, /* 216 */
{ -1, 0, sys_fstat64, "fstat64" }, /* 217 */
{ -1, 0, sys_statvfs64, "statvfs64" }, /* 218 */
{ -1, 0, sys_fstatvfs64, "fstatvfs64" }, /* 219 */
{ -1, 0, sys_setrlimit64, "setrlimit64" }, /* 220 */
{ -1, 0, sys_getrlimit64, "getrlimit64" }, /* 221 */
{ -1, 0, sys_pread64, "pread64" }, /* 222 */
{ -1, 0, sys_pwrite64, "pwrite64" }, /* 223 */
{ -1, 0, sys_creat64, "creat64" }, /* 224 */
{ -1, 0, sys_open64, "open64" }, /* 225 */
{ -1, 0, sys_rpcsys, "rpcsys" }, /* 226 */
{ -1, 0, printargs, "SYS_227" }, /* 227 */
{ -1, 0, printargs, "SYS_228" }, /* 228 */
{ -1, 0, printargs, "SYS_229" }, /* 229 */
{ -1, TN, sys_so_socket, "so_socket" }, /* 230 */
{ -1, TN, sys_so_socketpair, "so_socketpair" }, /* 231 */
{ -1, TN, sys_bind, "bind" }, /* 232 */
{ -1, TN, sys_listen, "listen" }, /* 233 */
{ -1, TN, sys_accept, "accept" }, /* 234 */
{ -1, TN, sys_connect, "connect" }, /* 235 */
{ -1, TN, sys_shutdown, "shutdown" }, /* 236 */
{ -1, TN, sys_recv, "recv" }, /* 237 */
{ -1, TN, sys_recvfrom, "recvfrom" }, /* 238 */
{ -1, TN, sys_recvmsg, "recvmsg" }, /* 239 */
{ -1, TN, sys_send, "send" }, /* 240 */
{ -1, TN, sys_sendmsg, "sendmsg" }, /* 241 */
{ -1, TN, sys_sendto, "sendto" }, /* 242 */
{ -1, TN, sys_getpeername, "getpeername" }, /* 243 */
{ -1, TN, sys_getsockname, "getsockname" }, /* 244 */
{ -1, TN, sys_getsockopt, "getsockopt" }, /* 245 */
{ -1, TN, sys_setsockopt, "setsockopt" }, /* 246 */
{ -1, TN, sys_sockconfig, "sockconfig" }, /* 247 */
{ -1, 0, sys_ntp_gettime, "ntp_gettime" }, /* 248 */
{ -1, 0, sys_ntp_adjtime, "ntp_adjtime" }, /* 249 */
{ -1, 0, sys_ntp_adjtime, "ntp_adjtime" }, /* 249 */
{ -1, 0, printargs, "lwp_mutex_unlock" }, /* 250 */
{ -1, 0, printargs, "lwp_mutex_trylock" }, /* 251 */
{ -1, 0, printargs, "lwp_mutex_init" }, /* 252 */
{ -1, 0, printargs, "cladm" }, /* 253 */
{ -1, 0, printargs, "lwp_sig_timedwait" }, /* 254 */
{ -1, 0, printargs, "umount2" }, /* 255 */
#endif /* !UNIXWARE */
#endif /* !MIPS */
{ -1, 0, printargs, "SYS_256" }, /* 256 */
{ -1, 0, printargs, "SYS_257" }, /* 257 */
{ -1, 0, printargs, "SYS_258" }, /* 258 */
@ -750,3 +802,27 @@
{ -1, 0, printargs, "SYS_397" }, /* 397 */
{ -1, 0, printargs, "SYS_398" }, /* 398 */
{ -1, 0, printargs, "SYS_399" }, /* 399 */
#ifdef HAVE_SYS_AIO_H
{ -1, TF, sys_aioread, "aioread" }, /* 400 */
{ -1, TF, sys_aiowrite, "aiowrite" }, /* 401 */
{ -1, TF, sys_aiowait, "aiowait" }, /* 402 */
{ -1, TF, sys_aiocancel, "aiocancel" }, /* 403 */
{ -1, TF, sys_aionotify, "aionotify" }, /* 404 */
{ -1, TF, sys_aioinit, "aioinit" }, /* 405 */
{ -1, TF, sys_aiostart, "aiostart" }, /* 406 */
{ -1, TF, sys_aiolio, "aiolio" }, /* 407 */
{ -1, TF, sys_aiosuspend, "aiosuspend" }, /* 408 */
{ -1, TF, sys_aioerror, "aioerror" }, /* 409 */
{ -1, TF, sys_aioliowait, "aioliowait" }, /* 410 */
{ -1, TF, sys_aioaread, "aioaread" }, /* 411 */
{ -1, TF, sys_aioawrite, "aioawrite" }, /* 412 */
{ -1, TF, sys_aiolio64, "aiolio64" }, /* 413 */
{ -1, TF, sys_aiosuspend64, "aiosuspend64" }, /* 414 */
{ -1, TF, sys_aioerror64, "aioerror64" }, /* 415 */
{ -1, TF, sys_aioliowait64, "aioliowait64" }, /* 416 */
{ -1, TF, sys_aioaread64, "aioaread64" }, /* 417 */
{ -1, TF, sys_aioawrite64, "aioawrite64" }, /* 418 */
{ -1, TF, sys_aiocancel64, "aiocancel64" }, /* 419 */
{ -1, TF, sys_aiofsync, "aiofsync" }, /* 420 */
#endif

View File

@ -1583,6 +1583,12 @@ struct tcb *tcp;
SYS_door_nsubcalls, door_style);
break;
#endif /* SYS_door_subcall */
#ifdef SYS_kaio_subcall
case SYS_kaio:
decode_subcall(tcp, SYS_kaio_subcall,
SYS_kaio_nsubcalls, shift_style);
break;
#endif
#endif /* SVR4 */
#ifdef FREEBSD
case SYS_msgsys: