Upgrade to strace 4.8.

* Changes in behavior
  * In case of normal strace termination, when the trace output is
    redirected to a pipe, strace now closes it and waits for the pipe
    process termination before exit.

* Improvements
  * Implemented tracing using PTRACE_SEIZE API (when available).
  * Implemented more reliable PTRACE_GETREGSET-based process personality
    detection on x86-64 and x32 (when available).
  * Added -e trace=memory option for tracing memory mapping related syscalls.
  * Documented -b option.
  * Allowed exit status messages to be suppressed by giving -q option twice.
  * Added AArch64 architecture support
    (addresses Debian bug #693074 and Fedora bug #969858).
  * Added support for OpenRISC 1000, Meta, and Xtensa architectures.
  * Added tilegx personality support for Tile.
  * Enhanced support of NOMMU architectures.
  * Enhanced decoding of getdents, mmap, perf_event_open, ptrace, and
    quotactl syscalls.
  * Added new syscall entries to match Linux 3.9.
  * Regenerated the list of common ioctl names from Linux 3.9.
  * Updated the list of errno constants.
  * Updated lists of AF_*, MADV_*, MAP_*, MSG_*, MS_*, PF_*, PR_*,
    PTRACE_O_*, and TCP_* constants.
  * Implemented decoding of UBI ioctls.
  * Removed redundant "*32" ioctl names.

* Bug fixes
  * Fixed ERESTARTNOINTR leaking to userspace on ancient kernels
    (addresses Fedora bug #659382).
  * Fixed kernel release string parsing
    (addresses Debian bug #702309).
  * Fixed decoding of *xattr syscalls
    (addresses Fedora bug #885233).
  * Fixed handling of files with 64-bit inode numbers by 32-bit strace
    (addresses Fedora bug #912790).
  * Fixed tracing forks on SPARC.
  * Fixed decoding of fadvise64, fallocate, ftruncate64, io_submit, pread,
    preadv, pwrite, pwritev, readahead, sigaltstack, sync_file_range, sysctl,
    and truncate64 syscalls.
  * Fixed categories of multiple syscalls on most of supported architectures.
  * Fixed decoding of non-native 32-bit personality recv[m]msg syscalls.
  * Fixed decoding of multiple 32-bit personality syscalls on x32.
  * Fixed decoding of long long syscall arguments on ARM, MIPS/o32, PowerPC,
    S390x, and Tile architectures.
  * Fixed semtimedop decoding on S390x.
  * Fixed sram_alloc decoding on Blackfin.
  * Fixed build when process_vm_readv is a stab.
  * Fixed build with older versions of libaio.h.

Change-Id: I48abffaccddd616663000dcd0cc14964cae0dcd1
diff --git a/Android.mk b/Android.mk
index 11601a8..82a364e 100644
--- a/Android.mk
+++ b/Android.mk
@@ -3,7 +3,7 @@
 LOCAL_PATH := $(my-dir)
 include $(CLEAR_VARS)
 
-strace_VERSION = 4.7
+strace_version := $(shell grep Version $(LOCAL_PATH)/strace.spec | cut -d " " -f 2)
 
 LOCAL_SRC_FILES := \
     bjm.c \
@@ -35,106 +35,84 @@
 
 LOCAL_SHARED_LIBRARIES :=
 
-LOCAL_CFLAGS := -DLINUX=1 \
-	-DGETGROUPS_T=gid_t \
-	-DHAVE_ASM_SIGCONTEXT_H=1 \
-	-DHAVE_DECL_PTRACE_O_TRACECLONE=1 \
-	-DHAVE_DECL_PTRACE_O_TRACEEXEC=1 \
-	-DHAVE_DECL_PTRACE_O_TRACEEXIT=1 \
-	-DHAVE_DECL_PTRACE_O_TRACEFORK=1 \
-	-DHAVE_DECL_PTRACE_O_TRACESYSGOOD=1 \
-	-DHAVE_DECL_PTRACE_O_TRACEVFORK=1 \
-	-DHAVE_DECL_SYS_ERRLIST=1 \
-	-DHAVE_DECL_SYS_SIGLIST=1 \
-	-DHAVE_DECL_____PTRACE_EVENT_CLONE=1 \
-	-DHAVE_DECL_____PTRACE_EVENT_FORK=1 \
-	-DHAVE_DECL_____PTRACE_EVENT_VFORK=1 \
-	-DHAVE_DECL_____PTRACE_GETEVENTMSG=1 \
-	-DHAVE_DECL_____PTRACE_GETSIGINFO=1 \
-	-DHAVE_DECL_____PTRACE_O_TRACECLONE=1 \
-	-DHAVE_DECL_____PTRACE_O_TRACEFORK=1 \
-	-DHAVE_DECL_____PTRACE_O_TRACEVFORK=1 \
-	-DHAVE_DECL_____PTRACE_SETOPTIONS=1 \
-	-DHAVE_DECL_____PTRACE_EVENT_CLONE=1 \
-	-DHAVE_DECL_____PTRACE_EVENT_CLONE=1 \
-	-DHAVE_DIRENT_H=1 \
-	-DHAVE_FORK=1 \
-	-DHAVE_GETDENTS=1 \
-	-DHAVE_IF_INDEXTONAME=1 \
-	-DHAVE_INET_NTOP=1 \
-	-DHAVE_INTTYPES_H=1 \
-	-DHAVE_LINUX_CAPABILITY_H=1 \
-	-DHAVE_LINUX_ICMP_H=1 \
-	-DHAVE_LINUX_IF_PACKET_H=1 \
-	-DHAVE_LINUX_IN6_H=1 \
-	-DHAVE_LINUX_NETLINK_H=1 \
-	-DHAVE_LINUX_UTSNAME_H=1 \
-	-DHAVE_LITTLE_ENDIAN_LONG_LONG=1 \
-	-DHAVE_LONG_LONG=1 \
-	-DHAVE_LONG_LONG_RLIM_T=1 \
-	-DHAVE_MEMORY_H=1 \
-	-DHAVE_NETINET_TCP_H=1 \
-	-DHAVE_NETINET_UDP_H=1 \
-	-DHAVE_POLL_H=1 \
-	-DHAVE_PRCTL=1 \
-	-DHAVE_PREAD=1 \
-	-DHAVE_SENDMSG=1 \
-	-DHAVE_SIGACTION=1 \
-	-DHAVE_SIGINFO_T=1 \
-	-DHAVE_SIG_ATOMIC_T=1 \
-	-DHAVE_STATFS64=1 \
-	-DHAVE_STDBOOL_H=1 \
-	-DHAVE_STDINT_H=1 \
-	-DHAVE_STDLIB_H=1 \
-	-DHAVE_STRERROR=1 \
-	-DHAVE_STRINGS_H=1 \
-	-DHAVE_STRING_H=1 \
-	-DHAVE_STRSIGNAL=1 \
-	-DHAVE_STRUCT_MSGHDR_MSG_CONTROL=1 \
-	-DHAVE_STRUCT_SIGCONTEXT \
-	-DHAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID=1 \
-	-DHAVE_STRUCT_STAT_ST_BLKSIZE=1 \
-	-DHAVE_STRUCT_STAT_ST_BLOCKS=1 \
-	-DHAVE_STRUCT_STAT_ST_RDEV=1 \
-	-DHAVE_STRUCT_USER_DESC=1 \
-	-DHAVE_SYS_EPOLL_H=1 \
-	-DHAVE_SYS_IOCTL_H=1 \
-	-DHAVE_SYS_POLL_H=1 \
-	-DHAVE_SYS_PTRACE_H=1 \
-	-DHAVE_SYS_REG_H=1 \
-	-DHAVE_SYS_SIGLIST=1 \
-	-DHAVE_SYS_STAT_H=1 \
-	-DHAVE_SYS_TYPES_H=1 \
-	-DHAVE_SYS_VFS_H=1 \
-	-DHAVE_UNISTD_H=1 \
-	-DLINUX=1 \
-	-DMAJOR_IN_SYSMACROS \
-	-DPACKAGE=strace \
-	-DPACKAGE_BUGREPORT= \
-	-DPACKAGE_NAME='"strace"' \
-	-DPACKAGE_STRING='"strace $(strace_VERSION)"' \
-	-DPACKAGE_TARNAME='"strace"' \
-	-DPACKAGE_VERSION='"$(strace_VERSION)"' \
-	-DRETSIGTYPE=void \
-	-DSIZEOF_RLIM_T=8 \
-	-DSTDC_HEADER=1 \
-	-DVERSION='"$(strace_VERSION)"' \
-	-D_GNU_SOURCE=1 \
-	-D_POSIX_SOURCE=1 \
-	-Dfopen64=fopen \
-	-Dd_fileno=d_ino \
-	-D_LFS64_LARGEFILE=1 \
-	-D__KERNEL__=1 \
+LOCAL_CFLAGS := \
+    -DGETGROUPS_T=gid_t \
+    -DHAVE_ASM_SIGCONTEXT_H=1 \
+    -DHAVE_DECL_PTRACE_EVENT_FORK=1 \
+    -DHAVE_DECL_PTRACE_EVENT_VFORK=1 \
+    -DHAVE_DECL_PTRACE_EVENT_CLONE=1 \
+    -DHAVE_DECL_PTRACE_EVENT_EXEC=1 \
+    -DHAVE_DECL_PTRACE_EVENT_VFORK_DONE=1 \
+    -DHAVE_DECL_PTRACE_EVENT_EXIT=1 \
+    -DHAVE_DECL_PTRACE_GETEVENTMSG=1 \
+    -DHAVE_DECL_PTRACE_GETSIGINFO=1 \
+    -DHAVE_DECL_PTRACE_O_TRACECLONE=1 \
+    -DHAVE_DECL_PTRACE_O_TRACEEXEC=1 \
+    -DHAVE_DECL_PTRACE_O_TRACEEXIT=1 \
+    -DHAVE_DECL_PTRACE_O_TRACEFORK=1 \
+    -DHAVE_DECL_PTRACE_O_TRACESYSGOOD=1 \
+    -DHAVE_DECL_PTRACE_O_TRACEVFORK=1 \
+    -DHAVE_DECL_PTRACE_SETOPTIONS=1 \
+    -UHAVE_DECL_IO_CMD_PWRITE \
+    -UHAVE_DECL_IO_CMD_PWRITEV \
+    -UHAVE_DECL_LO_FLAGS_AUTOCLEAR \
+    -UHAVE_DECL_LO_FLAGS_PARTSCAN \
+    -DHAVE_DECL_SYS_ERRLIST=1 \
+    -DHAVE_FORK=1 \
+    -DHAVE_IF_INDEXTONAME=1 \
+    -DHAVE_INET_NTOP=1 \
+    -DHAVE_LINUX_CAPABILITY_H=1 \
+    -DHAVE_LINUX_ICMP_H=1 \
+    -DHAVE_LINUX_IF_PACKET_H=1 \
+    -DHAVE_LINUX_IN6_H=1 \
+    -DHAVE_LINUX_NETLINK_H=1 \
+    -DHAVE_LITTLE_ENDIAN_LONG_LONG=1 \
+    -DHAVE_LONG_LONG=1 \
+    -DHAVE_NETINET_TCP_H=1 \
+    -DHAVE_NETINET_UDP_H=1 \
+    -DHAVE_POLL_H=1 \
+    -DHAVE_PRCTL=1 \
+    -DHAVE_SENDMSG=1 \
+    -DHAVE_SIGACTION=1 \
+    -DHAVE_SIGINFO_T=1 \
+    -DHAVE_SIG_ATOMIC_T=1 \
+    -DHAVE_STATFS64=1 \
+    -DHAVE_STDBOOL_H=1 \
+    -DHAVE_STRERROR=1 \
+    -DHAVE_STRUCT_MSGHDR_MSG_CONTROL=1 \
+    -DHAVE_STRUCT_SIGCONTEXT \
+    -DHAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID=1 \
+    -DHAVE_STRUCT_STAT_ST_BLKSIZE=1 \
+    -DHAVE_STRUCT_STAT_ST_BLOCKS=1 \
+    -DHAVE_STRUCT_STAT_ST_RDEV=1 \
+    -DHAVE_STRUCT_USER_DESC=1 \
+    -DHAVE_SYS_EPOLL_H=1 \
+    -DHAVE_SYS_IOCTL_H=1 \
+    -DHAVE_SYS_POLL_H=1 \
+    -DHAVE_SYS_REG_H=1 \
+    -DHAVE_SYS_VFS_H=1 \
+    -DMAJOR_IN_SYSMACROS \
+    -DPACKAGE_NAME='"strace"' \
+    -DVERSION='"$(strace_version)"' \
+    -DSIZEOF_LONG_LONG=8 \
+    -DSTDC_HEADERS=1 \
+    -D_LFS64_LARGEFILE=1 \
+
+LOCAL_CFLAGS += -D_GNU_SOURCE=1 -D_POSIX_SOURCE=1
 
 # bionic doesn't have fputs_unlocked.
 LOCAL_CFLAGS += -Dfputs_unlocked=fputs
+# bionic's LFS64 support is incomplete.
+LOCAL_CFLAGS += -Dfopen64=fopen
+LOCAL_CFLAGS += -Dreaddir64=readdir
 # uapi's asm/sigcontext.h doesn't have sigcontext_struct.
 LOCAL_CFLAGS += -Dsigcontext_struct=sigcontext
 
-#These are defined in AndroidConfig.h so we omit them above.
-#	-DHAVE_SYS_UIO_H=1 \
-#	-DHAVE_TERMIO_H=1 \
-
+ifeq ($(TARGET_IS_64_BIT),true)
+    LOCAL_CFLAGS += -DSIZEOF_LONG=8 -DSIZEOF_RLIM_T=8
+else
+    LOCAL_CFLAGS += -DSIZEOF_LONG=4 -DSIZEOF_RLIM_T=4
+endif
 
 arch := $(TARGET_ARCH)
 ifeq ($(TARGET_ARCH),arm)
@@ -145,7 +123,7 @@
     LOCAL_CFLAGS += -DMIPS=1
     LOCAL_CFLAGS += -DHAVE_STAT64=1
     LOCAL_CFLAGS += -DHAVE_ASM_SYSMIPS_H=1
-    # mips does not use STRUCT__OLD_KERNEL_STAT type
+    LOCAL_CFLAGS += -UHAVE_STRUCT___OLD_KERNEL_STAT 
 else ifeq ($(TARGET_ARCH),x86)
     LOCAL_CFLAGS += -DI386=1
     LOCAL_CFLAGS += -DHAVE_STAT64=1
@@ -162,9 +140,9 @@
     -Wno-sign-compare \
 
 LOCAL_C_INCLUDES := \
-	$(KERNEL_HEADERS) \
-	$(LOCAL_PATH)/linux/$(arch) \
-	$(LOCAL_PATH)/linux
+    $(KERNEL_HEADERS) \
+    $(LOCAL_PATH)/linux/$(arch) \
+    $(LOCAL_PATH)/linux
 
 LOCAL_MODULE := strace
 
diff --git a/Android.patch b/Android.patch
index 847dfcc..e6c9f21 100644
--- a/Android.patch
+++ b/Android.patch
@@ -1,18 +1,8 @@
-diff -r -u -d /home/enh/Downloads/strace-4.7/defs.h ./defs.h
---- /home/enh/Downloads/strace-4.7/defs.h	2012-04-28 05:58:35.000000000 -0700
-+++ ./defs.h	2014-01-08 17:19:46.318388528 -0800
-@@ -36,9 +36,6 @@
- #  define _LFS64_LARGEFILE 1
- # endif
- #endif
--#ifdef MIPS
--# include <sgidefs.h>
--#endif
- #include <features.h>
- #ifdef HAVE_STDBOOL_H
- # include <stdbool.h>
-@@ -149,7 +146,7 @@
- extern long ptrace(int, int, char *, long);
+diff -r -u -d /home/enh/Downloads/strace-4.8/defs.h ./defs.h
+--- /home/enh/Downloads/strace-4.8/defs.h	2013-05-14 07:10:42.000000000 -0700
++++ ./defs.h	2014-01-09 13:41:19.118883996 -0800
+@@ -222,7 +222,7 @@
+ # define PTRACE_EVENT_EXIT	6
  #endif
  
 -#if !defined(__GLIBC__)
@@ -20,9 +10,9 @@
  # define PTRACE_PEEKUSER PTRACE_PEEKUSR
  # define PTRACE_POKEUSER PTRACE_POKEUSR
  #endif
-diff -r -u -d /home/enh/Downloads/strace-4.7/ioctl.c ./ioctl.c
---- /home/enh/Downloads/strace-4.7/ioctl.c	2012-04-18 08:27:25.000000000 -0700
-+++ ./ioctl.c	2014-01-07 20:25:53.752273114 -0800
+diff -r -u -d /home/enh/Downloads/strace-4.8/ioctl.c ./ioctl.c
+--- /home/enh/Downloads/strace-4.8/ioctl.c	2013-05-02 15:50:55.000000000 -0700
++++ ./ioctl.c	2014-01-09 13:36:50.612156623 -0800
 @@ -86,8 +86,10 @@
  	case 0x03:
  	case 0x12:
@@ -34,9 +24,9 @@
  	case 'L':
  		return loop_ioctl(tcp, code, arg);
  	case 'M':
-diff -r -u -d /home/enh/Downloads/strace-4.7/ipc.c ./ipc.c
---- /home/enh/Downloads/strace-4.7/ipc.c	2012-04-16 04:00:01.000000000 -0700
-+++ ./ipc.c	2014-01-07 20:25:53.752273114 -0800
+diff -r -u -d /home/enh/Downloads/strace-4.8/ipc.c ./ipc.c
+--- /home/enh/Downloads/strace-4.8/ipc.c	2013-02-23 11:07:44.000000000 -0800
++++ ./ipc.c	2014-01-09 13:36:50.612156623 -0800
 @@ -34,9 +34,15 @@
  #endif
  #include <fcntl.h>
@@ -53,21 +43,9 @@
  
  #ifndef MSG_STAT
  #define MSG_STAT 11
-diff -r -u -d /home/enh/Downloads/strace-4.7/signal.c ./signal.c
---- /home/enh/Downloads/strace-4.7/signal.c	2012-04-16 19:38:17.000000000 -0700
-+++ ./signal.c	2014-01-07 20:25:53.762272989 -0800
-@@ -419,7 +419,7 @@
- # define SI_FROMUSER(sip)	((sip)->si_code <= 0)
- #endif
- 
--#if __GLIBC_MINOR__ < 1
-+#if __GLIBC_MINOR__ < 1 && !defined(HAVE_ANDROID_OS)
- /* Type for data associated with a signal.  */
- typedef union sigval
- {
-diff -r -u -d /home/enh/Downloads/strace-4.7/time.c ./time.c
---- /home/enh/Downloads/strace-4.7/time.c	2012-05-01 14:17:51.000000000 -0700
-+++ ./time.c	2014-01-07 20:25:53.762272989 -0800
+diff -r -u -d /home/enh/Downloads/strace-4.8/time.c ./time.c
+--- /home/enh/Downloads/strace-4.8/time.c	2012-05-01 14:17:51.000000000 -0700
++++ ./time.c	2014-01-09 12:41:29.912928183 -0800
 @@ -29,7 +29,11 @@
  
  #include "defs.h"
@@ -80,10 +58,10 @@
  #include <linux/ioctl.h>
  #include <linux/rtc.h>
  
-diff -r -u -d /home/enh/Downloads/strace-4.7/util.c ./util.c
---- /home/enh/Downloads/strace-4.7/util.c	2012-04-28 05:58:35.000000000 -0700
-+++ ./util.c	2014-01-08 17:20:55.057579140 -0800
-@@ -50,7 +50,9 @@
+diff -r -u -d /home/enh/Downloads/strace-4.8/util.c ./util.c
+--- /home/enh/Downloads/strace-4.8/util.c	2013-05-06 11:23:01.000000000 -0700
++++ ./util.c	2014-01-09 13:36:50.622156503 -0800
+@@ -46,7 +46,9 @@
  
  #ifdef HAVE_SYS_REG_H
  # include <sys/reg.h>
diff --git a/COPYING b/COPYING
new file mode 100644
index 0000000..e9078d3
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,29 @@
+Copyright (c) 1991, 1992 Paul Kranenburg <pk@cs.few.eur.nl>
+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) 1998-2001 Wichert Akkerman <wakkerma@deephackmode.org>
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+3. The name of the author may not be used to endorse or promote products
+   derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/CREDITS b/CREDITS
index 98eb532..399bcaf 100644
--- a/CREDITS
+++ b/CREDITS
@@ -19,14 +19,18 @@
 	Anton Blanchard <anton@samba.org>
 	Arkadiusz Miskiewicz <misiek@pld.org.pl>
 	Bai Weidong <baiwd@cn.fujitsu.com>
+	Ben Noordhuis <info@bnoordhuis.nl>
 	Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
 	Bo Kullmar <bk@kullmar.se>
 	Cai Fei <caifei@cn.fujitsu.com>
 	Carlos O'Donell <carlos@systemhalted.org>
 	Carmelo AMOROSO <carmelo.amoroso@st.com>
 	Chris Metcalf <cmetcalf@tilera.com>
+	Chris Zankel <chris@zankel.net>
+	Christian Svensson <blue@cmd.nu>
 	D.J. Barrow <djbarrow@de.ibm.com>
 	Damir Shayhutdinov <damir@altlinux.ru>
+	Daniel P. Berrange <berrange@redhat.com>
 	David Daney <ddaney@caviumnetworks.com>
 	David Mosberger-Tang <davidm@hpl.hp.com>
 	David S. Miller <davem@caip.rutgers.edu>
@@ -50,11 +54,13 @@
 	Holger Hans Peter Freyther <holger@freyther.de>
 	Jakub Bogusz <qboosh@pld-linux.org>
 	Jakub Jelinek <jj@ultra.linux.cz>
+	James Hogan <james.hogan@imgtec.com>
 	Jan Kratochvil <jan.kratochvil@redhat.com>
 	Jeff Mahoney <jeffm@suse.com>
 	Joe Ilacqua <spike@world.std.com>
 	Johannes Stezenbach <js@sig21.net>
 	John Hughes <john@Calva.COM>
+	John Spencer <maillist-strace@barfooze.de>
 	Ju"rgen Fluk <louis@marco.de>
 	Juergen Weigert <jnweiger@immd4.informatik.uni-erlangen.de>
 	Keith Thompson <kst@alsys.com>
@@ -69,6 +75,7 @@
 	Matt Day <mday@artisoft.com>
 	Matthias Pfaller <leo@dachau.marco.de>
 	Maxim Shchetynin <maxim@de.ibm.com>
+	Maxin B. John <maxin.john@enea.com>
 	Michael E Chastain <mec@duracef.shout.net>
 	Michael Holzheu <holzheu@de.ibm.com>
 	Michail Litvak <mci@owl.openwall.com>
@@ -76,6 +83,7 @@
 	Mike Frysinger <vapier@gentoo.org>
 	Mike Stroyan <mike.stroyan@hp.com>
 	Muttley Meen <muttley.meen@gmail.com>
+	Namhyung Kim <namhyung.kim@lge.com>
 	Nate Eldredge <nate@cartsys.com>
 	Nate Sammons <nate@users.sourceforge.net>
 	Neil Campbell <lists@thebatcave.org.uk>
@@ -100,7 +108,9 @@
 	Simon Murray <simon@transitive.com>
 	Solar Designer <solar@openwall.com>
 	Srinivasa Ds <srinivasa@in.ibm.com>
+	Stanislav Brabec <sbrabec@suse.cz>
 	Steve Bennett <steveb@workware.net.au>
+	Steve McIntyre <steve.mcintyre@linaro.org>
 	Thanh Ma <tma@encore.com>
 	Thiemo Seufer <ths@networkno.de>
 	Thomas Bogendoerfer <tsbogend@bigbug.franken.de>
@@ -115,5 +125,6 @@
 	Xiaoning Ding <dingxn@gmail.com>
 	Yang Zhiguo <yzgcsu@cn.fujitsu.com>
 	Zach Brown <zach.brown@oracle.com>
+	Zev Weiss <zev@bewilderbeest.net>
 	Zhang Le <zhilg@users.sourceforge.net>
 	Марк Коренберг <socketpair@gmail.com>
diff --git a/ChangeLog b/ChangeLog
index 408a554..c135d85 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,2309 @@
+2013-06-03  Dmitry V. Levin  <ldv@altlinux.org>
+
+	ioctlent: add UAPI support.
+	* Makefile.am (IOCTLSORT_INCLUDEDIR): Define.
+	(ioctlsort): Use it.
+	* linux/ioctlent.sh (lookup_ioctls): Look into uapi directory tree.
+	Strip "uapi/" prefix from output path names.
+	* linux/ioctlent.h.in: Regenerate from v3.9 headers.
+	* NEWS: Mention it.
+
+	Prepare for 4.8 release.
+	* NEWS: Update for 4.8 release.
+	* debian/changelog: 4.8-1.
+	* strace.spec: 4.8-1.
+
+2013-06-02  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Fix "make dist" on recently added architectures.
+	* Makefile.am (EXTRA_DIST): Add linux/aarch64/errnoent1.h,
+	linux/aarch64/ioctlent.h.in, linux/aarch64/ioctlent1.h,
+	linux/aarch64/signalent1.h, linux/aarch64/syscallent.h,
+	linux/aarch64/syscallent1.h, linux/metag/ioctlent.h.in,
+	linux/metag/syscallent.h, linux/or1k/ioctlent.h.in,
+	linux/or1k/syscallent.h, linux/tile/errnoent1.h, linux/tile/ioctlent1.h,
+	linux/tile/signalent1.h, linux/tile/syscallent1.h, linux/ubi-user.h,
+	linux/xtensa/ioctlent.h.in, and linux/xtensa/syscallent.h.
+
+	Fix "make dist" regression introduced by commit v4.7-184-gd648f29.
+	* Makefile.am (EXTRA_DIST): Add linux/ubi-user.h.
+
+2013-05-28  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Do not suppress signal delivery messages with -qq.
+	Current implementation of -qq does not allow suppressing exit status
+	messages without suppressing signal delivery messages, which is not
+	good.  There is a traditional "-e signal=none" syntax that can be used
+	to suppress all signal delivery messages.
+	This partially reverts commit v4.7-222-g01997cf.
+
+	* strace.c (trace): Do not suppress signal delivery messages with -qq.
+	* strace.1: Update documentation about -qq option.
+
+2013-05-23  Chris Metcalf  <cmetcalf@tilera.com>
+
+	tile: use siginfo_t, not struct siginfo.
+	As of glibc 2.16, "struct siginfo" is no longer supported,
+	and "siginfo_t" must be used instead.
+
+	tile: remove MAP_CACHE_xxx support in mem.c.
+	These flags support functionality in mmap() that has not been
+	pushed back to the community, and which may or may not eventually
+	end up being the final community model.  In the interim, having
+	these flags unconditionally present for "#ifdef TILE" just means
+	that the TILE build breaks if using the community versions of
+	the kernel and glibc, so just revert the code until such time
+	as it may end up in the community.
+
+2013-05-17  Mike Frysinger  <vapier@gentoo.org>
+
+	Rename COPYRIGHT to COPYING.
+	The standard name people have adopted is "COPYING" rather than
+	"COPYRIGHT".  Use that as a lot of license scanning tools look for it.
+
+	* COPYRIGHT: Rename to ...
+	* COPYING: ... this.
+	* Makefile.am (EXTRA_DIST): Rename COPYRIGHT to COPYING.
+	* README: Likewise.
+	* strace.spec (%files): Likewise.
+
+2013-05-17  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Sync strace.spec and debian/ with packages.
+	* debian/changelog: Sync with 4.7-1.
+	* debian/strace.docs: Likewise.
+	* strace.spec: Sync with 4.7-3.
+
+	Update PTRACE_O_* constants.
+	* process.c (ptrace_setoptions_flags): Sync with Linux 3.9.
+
+	Update AF_*, PF_*, MSG_*, and TCP_* constants.
+	* net.c (domains, addrfams, protocols, socktcpoptions): Sync with
+	Linux 3.9.
+
+2013-05-14  Dmitry V. Levin  <ldv@altlinux.org>
+
+	NOMMU: do not hide startup syscalls unless in -D mode.
+	On NOMMU systems in "strace PROG" case, we have no way to attach to
+	the tracee before it calls execve unless in -D mode.  That is, the
+	first execve call is very likely to be missed, and setting
+	hide_log_until_execve just results to empty log.
+
+	* strace.c (init) [NOMMU_SYSTEM]: Do not set hide_log_until_execve
+	unless in -D mode.
+
+	Make -D mode work when the Yama LSM is enabled.
+	* strace.c [HAVE_PRCTL]: Include sys/prctl.h.
+	(startup_child) [HAVE_PRCTL && PR_SET_PTRACER && PR_SET_PTRACER_ANY]:
+	In -D mode, allow tracing the process that is going to become the
+	tracee.
+
+	Update PR_* constants.
+	* process.c (prctl_options): Add PR_SET_PTRACER.
+
+2013-05-14  Denys Vlasenko  <dvlasenk@redhat.com>
+
+	Hide startup syscalls.
+	Tested with "./strace [-D] [-q] [-bexecve] env true",
+	all cases seem to work.
+
+	* defs.h: Declare new variable: bool hide_log_until_execve.
+	* strace.c: Define hide_log_until_execve.
+	Rename skip_startup_execve to skip_one_b_execve.
+	(startup_child): Do not set skip_one_b_execve = 1 here.
+	(init): If "strace PROG" case (as opposed to "strace -pPID"),
+	set skip_one_b_execve and hide_log_until_execve to 1.
+	(trace): Don't print signal messages if hide_log_until_execve == 1.
+	* syscall.c (trace_syscall_entering):
+	Skip syscall printing if hide_log_until_execve == 1.
+	Reset hide_log_until_execve if we enter execve syscall.
+	(trace_syscall_exiting): Skip syscall printing if hide_log_until_execve == 1.
+
+2013-05-13  Daniel P. Berrange  <berrange@redhat.com>
+
+	Allow -q to be repeated for very quiet output.
+	Even with the -q flag specified, tracing output is still mixed
+	with messages about signals and process exit status, which is
+	often irrelevant.  Allow the -q option to be repeated to force
+	the suppression of signals / exit status info too.
+
+	* defs.h: Change 'qflag' from 'bool' to 'unsigned int'.
+	* strace.1: Document ability to repeat '-q' option.
+	* strace.c: Allow '-q' to be repeated to quieten process
+	exit status and signal messages.
+
+2013-05-11  Dmitry V. Levin  <ldv@altlinux.org>
+
+	mips o32: fix syscall table.
+	* linux/mips/syscallent-o32.h: Add entries for getpmsg, putpmsg,
+	get_mempolicy, set_mempolicy and vserver.  Fix names for umount,
+	umount2, mmap, mmap2, pread64, pwrite64, sigaltstack and fstatat64
+	syscalls.
+
+2013-05-10  Dmitry V. Levin  <ldv@altlinux.org>
+
+	mips n64: fix syscall table.
+	* linux/mips/syscallent-n64.h: Add entries for get_mempolicy,
+	set_mempolicy and timerfd syscalls.  Fix entry for socket syscall.
+	Fix names for pread64, pwrite64, shmat, rt_sigsuspend, sigaltstack
+	and umount2 syscalls.
+
+	mips n32: fix syscall table.
+	* linux/mips/syscallent-n32.h: Add entries for mbind, get_mempolicy,
+	set_mempolicy and timerfd syscalls.  Fix entry for socket syscall.
+	Fix handlers for truncate, ftruncate and getdents64 syscalls.
+	Fix names for pread64, pwrite64, shmat, rt_sigsuspend, sigaltstack,
+	umount2, and getdents64 syscalls.
+
+2013-05-08  Dmitry V. Levin  <ldv@altlinux.org>
+
+	sync_file_range: fix number of syscall arguments.
+	* linux/avr32/syscallent.h: Set the number of sync_file_range arguments
+	to 6.
+	* linux/bfin/syscallent.h: Likewise.
+	* linux/hppa/syscallent.h: Likewise.
+	* linux/i386/syscallent.h: Likewise.
+	* linux/m68k/syscallent.h: Likewise.
+	* linux/microblaze/syscallent.h: Likewise.
+	* linux/mips/syscallent-o32.h: Likewise.
+	* linux/or1k/syscallent.h: Likewise.
+	* linux/s390/syscallent.h: Likewise.
+	* linux/sh/syscallent.h: Likewise.
+	* linux/powerpc/syscallent.h: Change sync_file_range to
+	sync_file_range2, set the number of sync_file_range2 arguments to 6.
+	* linux/tile/syscallent.h: Change sync_file_range to sync_file_range2,
+	set the number of sync_file_range2 arguments to 4.
+	* linux/tile/syscallent1.h: Change sync_file_range to sync_file_range2.
+	update handler.
+	* linux/xtensa/syscallent.h: Likewise.
+
+	Add syscall entries for new linux syscalls.
+	* linux/dummy.h: Add printargs aliases for sys_finit_module, sys_kcmp
+	and sys_sync_file_range2.
+	* linux/alpha/syscallent.h: Add entries for process_vm_readv
+	and process_vm_writev.
+	* linux/bfin/syscallent.h: Likewise.
+	* linux/arm/syscallent.h: Add entries for sync_file_range2, kcmp
+	and finit_module.
+	* linux/hppa/syscallent.h: Add entries for process_vm_readv,
+	process_vm_writev, kcmp and finit_module.
+	* linux/tile/syscallent.h: Likewise.
+	* linux/tile/syscallent1.h: Likewise.
+	* linux/ia64/syscallent.h: Add entry for finit_module.
+	* linux/i386/syscallent.h: Add entries for kcmp and finit_module.
+	* linux/m68k/syscallent.h: Likewise.
+	* linux/metag/syscallent.h: Likewise.
+	* linux/microblaze/syscallent.h: Likewise.
+	* linux/mips/syscallent-n32.h: Likewise.
+	* linux/mips/syscallent-n64.h: Likewise.
+	* linux/mips/syscallent-o32.h: Likewise.
+	* linux/or1k/syscallent.h: Likewise.
+	* linux/powerpc/syscallent.h: Likewise.
+	* linux/sh/syscallent.h: Likewise.
+	* linux/sh64/syscallent.h: Likewise.
+	* linux/x32/syscallent.h: Likewise.
+	* linux/x86_64/syscallent.h: Likewise.
+	* linux/xtensa/syscallent.h: Likewise.
+	* linux/s390/syscallent.h: Add entries for s390_runtime_instr, kcmp
+	and finit_module.
+	* linux/s390x/syscallent.h: Likewise.
+	* linux/sparc/syscallent.h: Add entries for kern_features, kcmp
+	and finit_module.
+
+	tests/net: fix portability issues.
+	* tests/net-accept-connect.c: Fix address length passed to bind()
+	and connect().
+	* tests/net: Update regexps.
+
+	tests: add a test for basic network syscalls.
+	* tests/.gitignore: Add net-accept-connect, *.o and *.log.*.
+	* tests/Makefile.am (AM_CFLAGS): New variable.
+	(check_PROGRAMS): Add net-accept-connect.
+	(TESTS): Add net.
+	* tests/net-accept-connect.c: New file.
+	* tests/net: New file.
+
+	tests: do not skip tests when timeout utility is not available.
+	* tests/init.sh (check_timeout): New function.
+	* tests/ptrace_setoptions: Use it.
+	* tests/qual_syscall: Likewise.
+	* tests/stat: Likewise.
+	* tests/strace-f: Likewise.
+
+2013-05-07  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Move subcall decoding configuration out of the common code.
+	* Makefile.am (EXTRA_DIST): Add linux/subcall.h.
+	* linux/syscall.h (SYS_socket_subcall): Remove.
+	(SYS_socket_nsubcalls, SYS_ipc_subcall, SYS_ipc_nsubcalls): Move to ...
+	* linux/subcall.h: ... new file.
+	* linux/arm/syscallent.h: Define SYS_socket_subcall, include subcall.h.
+	* linux/i386/syscallent.h: Likewise.
+	* linux/m68k/syscallent.h: Likewise.
+	* linux/powerpc/syscallent.h: Likewise.
+	* linux/s390/syscallent.h: Likewise.
+	* linux/s390x/syscallent.h: Likewise.
+	* linux/sh/syscallent.h: Likewise.
+	* linux/sh64/syscallent.h: Likewise.
+	* linux/sparc/syscallent.h: Likewise.
+
+	Suggested by Mike Frysinger and Chris Metcalf.
+
+	sparc: remove some unused declarations and macros.
+	* linux/syscall.h [SPARC || SPARC64] (sys_msgsys, sys_semsys,
+	sys_shmsys): Remove declarations.
+	[SPARC || SPARC64] (SYS_semsys_subcall, SYS_semsys_nsubcalls,
+	SYS_msgsys_subcall, SYS_msgsys_nsubcalls, SYS_shmsys_subcall,
+	SYS_shmsys_nsubcalls): Remove macros.
+
+2013-05-07  Mike Frysinger  <vapier@gentoo.org>
+
+	mips: fix build regression.
+	The recent commit (2690fadc8b35190dddd29274a7405bac13adc469) shuffled
+	the mips headers around causing it to check the ABI defines before it
+	included the header which set those up.  Now all mips builds fail with:
+		In file included from count.c:36:0:
+		defs.h:48:4: error: #error Unsupported _MIPS_SIM
+
+	* defs.h [MIPS]: Move sgidefs.h above _MIPS_SIM check.
+
+2013-05-07  James Hogan  <james.hogan@imgtec.com>
+
+	metag: rename llseek syscall to _llseek.
+	The raw llseek syscall is called _llseek from userland, so fix the
+	naming of it for metag to allow the stat test to pass.
+
+	* linux/metag/syscallent.h: Rename llseek syscall to _llseek.
+
+	metag: disable socket and ipc subcall support.
+	The metag architecture also uses dedicated syscalls and doesn't need to
+	multiplex ipc and socket subcalls.
+
+	* linux/syscall.h [METAG]: Do not define SYS_socket_subcall and
+	SYS_ipc_subcall.
+
+2013-05-07  Dmitry V. Levin  <ldv@altlinux.org>
+
+	pread, pwrite: fix number of syscall arguments.
+	The number of pread and pwrite arguments depends on architecture and
+	personality.  For 64bit and ilp32 it equals to 4, for unaligned
+	32bit it equals to 5, and for aligned 32bit it equals to 6.
+
+	* linux/aarch64/syscallent1.h: Change the number of pread and pwrite
+	arguments to 4.
+	* linux/alpha/syscallent.h: Likewise.
+	* linux/mips/syscallent-n32.h: Likewise.
+	* linux/mips/syscallent-n64.h: Likewise.
+	* linux/s390x/syscallent.h: Likewise.
+	* linux/sh64/syscallent.h: Likewise.
+	* linux/tile/syscallent.h: Likewise.
+	* linux/x32/syscallent.h: Likewise.
+	* linux/x86_64/syscallent.h: Likewise.
+	* linux/or1k/syscallent.h: Change the number of pread and pwrite
+	arguments to 5.
+
+	preadv, pwritev: fix number of syscall arguments.
+	The number of preadv and pwritev arguments depends on architecture and
+	personality.  For 64bit and ilp32 it equals to 4, for unaligned 32bit
+	it equals to 5, and for aligned 32bit it equals to 6.
+
+	* linux/aarch64/syscallent1.h: Change the number of preadv and pwritev
+	arguments to 4.
+	* linux/alpha/syscallent.h: Likewise.
+	* linux/ia64/syscallent.h: Likewise.
+	* linux/mips/syscallent-n32.h: Likewise.
+	* linux/mips/syscallent-n64.h: Likewise.
+	* linux/s390x/syscallent.h: Likewise.
+	* linux/sh64/syscallent.h: Likewise.
+	* linux/tile/syscallent.h: Likewise.
+	* linux/x32/syscallent.h: Likewise.
+	* linux/x86_64/syscallent.h: Likewise.
+	* linux/powerpc/syscallent.h: Change the number of preadv and pwritev
+	arguments to 6.
+	* linux/sh/syscallent.h: Likewise.
+	* linux/xtensa/syscallent.h: Likewise.
+
+	ftruncate64, truncate64: fix number of syscall arguments.
+	The number of ftruncate64/truncate64 arguments depends on architecture
+	and personality.  For 64bit and ilp32 it equals to 2, for unaligned
+	32bit it equals to 3, and for aligned 32bit it equals to 4.
+
+	* linux/or1k/syscallent.h: Change the number of ftruncate64 and
+	truncate64 arguments to 3.
+	* linux/sh/syscallent.h: Likewise.
+	* linux/sh64/syscallent.h: Change ftruncate64 and truncate64 handlers.
+	* linux/sparc/syscallent.h: Change ftruncate64 handler, change the
+	number of its arguments to 3.
+	* linux/xtensa/syscallent.h: Change the number of ftruncate64 and
+	truncate64 arguments to 4.
+
+	fallocate: fix number of syscall arguments.
+	The number of fallocate arguments depends on architecture and
+	personality.  For 64bit and ilp32 it equals to 4,
+	for 32bit it equals to 6.
+
+	* linux/aarch64/syscallent1.h: Change the number of fallocate arguments
+	to 4.
+	* linux/alpha/syscallent.h: Likewise.
+	* linux/mips/syscallent-n32.h: Likewise.
+	* linux/mips/syscallent-n64.h: Likewise.
+	* linux/s390x/syscallent.h: Likewise.
+	* linux/sh64/syscallent.h: Likewise.
+	* linux/tile/syscallent.h: Likewise.
+	* linux/x32/syscallent.h: Likewise.
+	* linux/x86_64/syscallent.h: Likewise.
+	* linux/microblaze/syscallent.h: Set fallocate handler and flags.
+
+	fadvise64, fadvise64_64: fix handlers and number of syscall arguments.
+	The number of fadvise64 arguments depends on architecture and
+	personality.  For 64bit and ilp32 it equals to 4, for unaligned
+	32bit it equals to 5, and for aligned 32bit it equals to 6.
+
+	The number of fadvise64_64 arguments is 4 for 64bit and ilp32, for
+	unaligned 32bit and most of aligned 32bit it equals to 6, and for
+	mips o32 it equals to 7.
+
+	* linux/alpha/syscallent.h: Set fadvise64 handler.
+	* linux/s390/syscallent.h: Likewise.
+	* linux/hppa/syscallent.h: Set fadvise64_64 handler, change the number
+	of syscall arguments to 6.
+	* linux/ia64/syscallent.h: Change the number of fadvise64 arguments
+	to 4.
+	* linux/mips/syscallent-n32.h: Likewise.
+	* linux/tile/syscallent1.h: Change the number of fadvise64 arguments
+	to 5.
+	* linux/mips/syscallent-o32.h: Change the number of fadvise64_64
+	arguments to 7.
+	* linux/s390x/syscallent.h: Change fadvise64_64 handler.  Set fadvise64
+	handler.  Change numbers of fadvise64 and fadvise64_64 arguments to 4.
+	* linux/sh64/syscallent.h: Change fadvise64_64 handler.
+	Change numbers of fadvise64 and fadvise64_64 arguments to 4.
+	* linux/sparc/syscallent.h: Set fadvise64 and fadvise64_64 handlers,
+	change numbers of their arguments to 5 and 6.
+	* linux/x86_64/syscallent.h: Change fadvise64 handler.
+
+	mips o32: raise the max number of syscall arguments to 7.
+	On mips o32, fadvise64_64 takes 7 arguments.
+
+	* defs.h [LINUX_MIPSO32]: Raise MAX_ARGS to 7.
+
+	mips: split syscallent.h.
+	linux/mips/syscallent.h consisted of several parts that had little in
+	common.  Split them into separate files to ease maintenance.
+
+	* linux/mips/syscallent-compat.h: New file.
+	* linux/mips/syscallent-n32.h: Likewise.
+	* linux/mips/syscallent-n64.h: Likewise.
+	* linux/mips/syscallent-o32.h: Likewise.
+	* linux/mips/syscallent.h: Include them.
+	* Makefile.am (EXTRA_DIST): Add them.
+
+	readahead: fix number of syscall arguments.
+	The number of readahead arguments depends on architecture and
+	personality.  For 64bit and ilp32 it equals to 3, for unaligned 32bit it
+	equals to 4, and for aligned 32bit it equals to 5.
+
+	* linux/aarch64/syscallent1.h: Set number of readahead arguments to 3.
+	* linux/alpha/syscallent.h: Likewise.
+	* linux/ia64/syscallent.h: Likewise.
+	* linux/s390x/syscallent.h: Likewise.
+	* linux/sh64/syscallent.h: Likewise.
+	* linux/x32/syscallent.h: Likewise.
+	* linux/x86_64/syscallent.h: Likewise.
+	* linux/or1k/syscallent.h: Set number of readahead arguments to 4.
+	* linux/sh/syscallent.h: Likewise.
+	* linux/tile/syscallent.h: Likewise.
+	* linux/xtensa/syscallent.h: Set number of readahead arguments to 5.
+
+2013-05-06  Dmitry V. Levin  <ldv@altlinux.org>
+
+	linux/syscall.h: make subcall decoding configuration more readable.
+	* linux/syscall.h: Inverse and sort the subcall ifdef,
+	add a comment why subcall decoding support is not enabled
+	on some architectures.
+
+2013-05-06  Chris Zankel  <chris@zankel.net>
+
+	xtensa: disable socket and ipc subcall support.
+	The Xtensa architecture also uses dedicated syscalls and doesn't
+	need to multiplex ipc and socket subcalls.
+
+	* linux/syscall.h [XTENSA]: Do not define SYS_socket_subcall and
+	SYS_ipc_subcall.
+
+2013-05-06  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Fix syscall flags.
+	* linux/aarch64/syscallent1.h: Fix syscall flags for send.
+	* linux/alpha/syscallent.h: Fix syscall flags for fchdir, getcwd,
+	oldumount, sigaltstack, umount, uselib, and utimes.
+	* linux/arm/syscallent.h: Fix syscall flags for close, creat, dup, dup2,
+	fchdir, fchmod, fchown, fchown32, fcntl, fcntl64, fdatasync, flock,
+	fsetxattr, fsync, getdents, getdents64, ioctl, oldfstat, oldselect,
+	open, pipe, poll, pread, pwrite, read, readahead, readdir, readv,
+	select, socketcall, write, and writev.
+	* linux/avr32/syscallent.h: Fix syscall flags for inotify_init and
+	unshare.
+	* linux/bfin/syscallent.h: Fix syscall flags for pread64 and pwrite64.
+	* linux/hppa/syscallent.h: Fix syscall flags for fchdir, flistxattr,
+	getcwd, pause, signal, umount2, uselib, utime, and vfork.
+	* linux/ia64/syscallent.h: Fix syscall flags for creat, fchdir,
+	lstat, umount, uselib, and utimes.  Fix syscall handlers for
+	fgetxattr, flistxattr, fremovexattr, and fsetxattr.
+	* linux/m68k/syscallent.h: Fix syscall flags for close, creat, dup,
+	dup2, fchdir, fchmod, fchown, fchown32, fcntl, fcntl64, fdatasync,
+	flock, fsetxattr, getdents, ioctl, oldfstat, oldselect, open, pipe,
+	poll, pread64, pwrite64, read, readahead, readdir, readv, select,
+	socketcall, write, and writev.
+	* linux/metag/syscallent.h: Fix syscall flags for fanotify_init,
+	prlimit64, process_vm_readv, process_vm_writev, and quotactl.
+	* linux/microblaze/syscallent.h: Fix syscall flags for close, creat,
+	dup, dup2, fchdir, fchmod, fchown, fchown32, fcntl, fcntl64,
+	fdatasync, flock, fsetxattr, getdents, ioctl, oldfstat, oldselect,
+	open, perf_event_open, pipe, poll, pread64, pwrite64, read, readahead,
+	readdir, readv, select, socketcall, write, and writev.
+	* linux/mips/syscallent.h: Fix syscall flags for close, creat, dup,
+	dup2, fchdir, fchmod, fchown, fcntl, fcntl64, fdatasync, flock,
+	fsetxattr, getdents, getdents64, getxattr, ioctl, lgetxattr,
+	listxattr, llistxattr, lremovexattr, lsetxattr, oldfstat, open, pipe,
+	pivot_root, poll, pread, pwrite, read, readahead, readv, removexattr,
+	select, setxattr, socketcall, statfs, write, and writev.
+	* linux/or1k/syscallent.h: Fix syscall flags for fchdir and quotactl.
+	* linux/powerpc/syscallent.h: Fix syscall flags for fchdir.
+	* linux/sh/syscallent.h: Fix syscall flags for getcwd.
+	* linux/sparc/syscallent.h: Fix syscall flags for getresgid, getresuid,
+	setresgid, setresgid32, and setresuid.
+	* linux/xtensa/syscallent.h: Fix syscall flags for close, creat, dup,
+	dup2, fallocate, fchdir, fchmod, fchown, fcntl, fcntl64, fdatasync,
+	flock, fsetxattr, fstatfs, fstatfs64, fsync, getdents, getdents64,
+	ioctl, open, pipe, pivot_root, poll, pread64, pwrite64, read,
+	readahead, readv, rt_sigreturn, select, setfsgid, setfsuid, setuid,
+	swapoff, times, utime, write, and writev.
+
+	tests/stat: enhance regexps.
+	* tests/stat: Enhance regexps that check tracing of stat/stat64 and
+	fstatat/fstatat64 syscalls.
+
+2013-05-06  Chris Metcalf  <cmetcalf@tilera.com>
+
+	tests/stat: support fstatat syscall for stat()
+	Newer Linux architectures don't support the stat/stat64 syscalls.
+	Instead they use fstatat() with AT_FDCWD and an extra flags argument.
+	Support seeing this output in the 'strace -efile' test.
+
+	As part of this change, use "grep -E -x" syntax consistently for
+	all stat tests, since the number of \(foo\)\? expressions was becoming
+	pretty unwieldy.
+
+	* tests/stat: Update stat/stat64 check regexp to handle architectures
+	that use fstatat instead.  Use "grep -E -x" syntax consistently.
+
+2013-05-06  Dmitry V. Levin  <ldv@altlinux.org>
+
+	ARM OABI: fix 64-bit arguments decoding.
+	ARM OABI and ARM EABI have different function parameters passing rules,
+	see commit v4.6-11-g7a5b08f for details.
+
+	* util.c (printllval): Do not align argument number in case of ARM OABI.
+	* file.c (sys_fadvise64_64): Likewise.
+
+2013-05-06  Mike Frysinger  <vapier@gentoo.org>
+
+	printllval: fix 64bit unpacking on mips/o32 and xtensa.
+	The mips/o32 ABI and xtensa arch also do 64bit aligning, so add it to the
+	printllval list for this.
+
+	Normally for sys_fadvise64_64 we'd handle the same list of arches, but
+	mips/o32 ABI is funky and doesn't shift -- it has 7 args.  So just add
+	xtensa to it.
+
+	* file.c (sys_fadvise64_64): Add XTENSA to the shifted list.
+	* util.c (printllval): Add LINUX_MIPSO32 and XTENSA to the shifted list.
+
+2013-05-06  Chris Metcalf  <cmetcalf@tilera.com>
+
+	tile: disable socket and ipc subcall support.
+	The tile arch just has the dedicated syscalls, so disable
+	the logic for parsing subcalls.
+
+	* linux/syscall.h [TILE]: Do not define SYS_socket_subcall and
+	SYS_ipc_subcall.
+
+2013-05-06  Mike Frysinger  <vapier@gentoo.org>
+
+	Blackfin: disable socketcall and ipc subcall support.
+	The Blackfin arch does not have a socketcall or ipc subcall
+	(it has dedicated syscalls broken out), so disable the logic for it.
+
+	* linux/syscall.h [BFIN]: Do not define SYS_socket_subcall and
+	SYS_ipc_subcall.
+
+2013-05-05  Mike Frysinger  <vapier@gentoo.org>
+
+	s390: fix # of args truncate64/ftruncate64 takes.
+	* linux/s390/syscallent.h: Change nargs to 3 for truncate64/ftruncate64.
+
+	mtd: clamp ubi name strings.
+	Since the length fields with the ubi volnames are signed 16bit values,
+	make sure we clamp that number to the size of the buffer we've allocated
+	on the stack to prevent buffer overflows.
+
+	* mtd.c (ubi_ioctl): Clamp length to string_quote to 0/UBI_MAX_VOLUME_NAME.
+	Check the return of string_quote and tweak the output accordingly.
+
+2013-05-04  Dmitry V. Levin  <ldv@altlinux.org>
+
+	printxval: support more architectures.
+	* configure.ac: Define SIZEOF_LONG_LONG.
+	* util.c (printllval): Handle all architectures with sizeof(long) > 4
+	and sizeof(long) == sizeof(long long).
+
+2013-05-04  Mike Frysinger  <vapier@gentoo.org>
+
+	Fix building for sparc64 targets.
+	* util.c (printllval): Handle SPARC64 define.
+
+	Fix building for mips n64 targets.
+	* util.c (printllval): Handle LINUX_MIPSN64 define.
+
+2013-05-03  Dmitry V. Levin  <ldv@altlinux.org>
+
+	hppa: fix stat64 and fstat64 decoding.
+	* file.c [HPPA]: Do not redefine stat64 to hpux_stat64.
+
+	arm, aarch64, ppc: fix printllval-based decoders.
+	* util.c (printllval) [ARM || POWERPC]: Align argument number.
+	[AARCH64]: Align argument number in 32bit mode.
+	* file.c (sys_fadvise64_64) [ARM || POWERPC]: Remove no longer needed
+	printllval workaround.
+	[AARCH64]: Fix printing POSIX_FADV_* constants in 32bit mode.
+
+2013-05-02  Mike Frysinger  <vapier@gentoo.org>
+
+	Decode mtd/ubi ioctls.
+	Been playing with UBI of late and it'd help if I could see what it was
+	doing.  Not entirely sure about the decoding of UBI_IOCVOLUP -- it takes
+	a pointer to a 64bit value, not a strict.
+
+	* util.c (MAX, MIN): Move to ...
+	* defs.h (MAX, MIN): ... here.
+	(CLAMP): Define.
+	(ubi_ioctl): New prototype.
+	* ioctl.c (ioctl_decode): Call ubi_ioctl when code is 'o' or 'O'.
+	* mtd.c: Include ubi user API header.
+	(ubi_volume_types): New enum decode.
+	(ubi_volume_props): Likewise.
+	(ubi_ioctl): Define.
+	* linux/ubi-user.h: Import from linux 3.8.
+
+	test: add mtd/ubi test helpers.
+	I used these to develop the mtd/ubi ioctl decoders.
+
+	* test/.gitignore: Add mtd/ubi.
+	* test/Makefile: Declare all tests in a PROGS var.
+	Declare build targets .PHONY.
+	(all): Depend on $(PROGS) instead of hardcoded list.
+	(clean): Remove $(PROGS) instead of hardcoded list.
+	* test/mtd.c: New file.
+	* test/ubi.c: Likewise.
+
+	test: include headers for used funcs.
+	These funcs use things like wait/write/read/strcmp but sometimes
+	don't include the right header for them.
+
+	* test/Makefile: Add -Wall to CFLAGS.
+	* test/clone.c: Include unistd.h.
+	* test/fork.c: Include sys/wait.h.
+	* test/sig.c: Include unistd.h.
+	* test/sigkill_rain.c: Include sys/wait.h.
+	* test/vfork.c: Include sys/wait.h.
+	* test/wait_must_be_interruptible.c: Include string.h
+
+2013-05-02  Dmitry V. Levin  <ldv@altlinux.org>
+
+	ia64: fix compilation warnings introduced by commit v4.7-174-g44f0ed1.
+	* linux/ia64/syscallent.h: Undefine sys_oldlstat, sys_lstat and
+	sys_lstat64 before redefining them to printargs.
+
+	Reported-by: Mike Frysinger <vapier@gentoo.org>
+
+2013-05-02  Mike Frysinger  <vapier@gentoo.org>
+
+	tests: stat: fix clean up of sample file.
+	* tests/stat: Also rm the sample file at the end of the test.
+
+	Ignore more files.
+	* .gitignore: Add gdb related files.
+	* tests/.gitignore: Ignore test logs.
+
+2013-05-02  Dmitry V. Levin  <ldv@altlinux.org>
+
+	x32: fix decoding of i386 truncate and ftruncate syscalls.
+	* linux/x32/syscallent1.h: Remove sys_*truncate64 redirections.
+
+	x32: fix printllval-based decoders of i386 syscalls.
+	* util.c (printllval) [X32]: Handle i386 personality.
+
+	tests: add basic test for ftruncate, lseek and stat family syscalls.
+	* tests/stat: New test.
+	* tests/Makefile.am (TESTS): Add stat.
+
+2013-05-01  Dmitry V. Levin  <ldv@altlinux.org>
+
+	x32: fix build regressions introduced by commit v4.7-96-g8435d67.
+	* desc.c (printflock) [X32]: Add special handling required for
+	this architecture with sizeof(long) < sizeof(off_t).
+	* file.c [X32] (struct stat64): Add __attribute__((packed)).
+	[X32] (HAVE_STAT64): Define.
+	(printstat) [X32]: Redirect to printstat64.
+	(printstat64) [X32]: Use "struct stat" instead of "struct stat64".
+	[X32] (realprintstat64): Rename to printstat64_x32.
+	(sys_stat64, sys_fstat64) [X32]: Remove second definitions of these
+	functions.  Call printstat64_x32 instead of printstat64
+	* linux/x32/syscallent.h: Fix handlers for truncate and ftruncate.
+
+	Alias sys_*lstat* syscall printing functions.
+	* file.c (sys_lstat, sys_lstat64, sys_oldlstat): Remove.
+	* linux/dummy.h: Move !HAVE_STRUCT___OLD_KERNEL_STAT aliases forward.
+	(sys_lstat): Alias to sys_stat.
+	(sys_lstat64): Alias to sys_stat64.
+	(sys_oldlstat): Alias to sys_oldstat.
+	* linux/syscall.h (sys_lstat, sys_lstat64, sys_oldlstat): Remove.
+	* linux/x32/syscallent1.h (sys_lstat64): Remove.
+
+	x86_64: decode __old_kernel_stat based syscalls.
+	* linux/x86_64/syscallent1.h: Remove sys_old*stat redirections.
+
+	x32: fix decoding of __old_kernel_stat based syscalls.
+	* file.c [X32] (struct __old_kernel_stat): Define.
+	* linux/x32/syscallent1.h: Remove sys_old*stat redirections.
+
+2013-05-01  James Hogan  <james.hogan@imgtec.com>
+
+	test/threaded_execve: fix on metag.
+	The metag ABI has stacks growing upwards so clone expects the stack
+	argument to point at the bottom of the stack instead of the top.
+
+	* test/threaded_execve.c [__metag__]: Define clone2 differently
+	to avoid a segfault at runtime.
+
+	test/skodic: make a bit more portable.
+	* test/skodic.c (main): Don't use MAP_FIXED since valid virtual addresses
+	vary between architectures (as far as I can tell the use of MAP_FIXED is
+	not relevant to the test).  Also don't assume the file desriptor returned
+	by open call is 3 when passing it to mmap.
+
+2013-05-01  Mike Frysinger  <vapier@gentoo.org>
+
+	printllval: handle s390x.
+	This is a 64bit arch w/no personalities, so fix printing.
+	It can now trace a simple call like readahead:
+	$ cat test.c
+	main(){readahead(-1, (unsigned long long)1 << 50, 0);}
+	$ gcc test.c
+	$ ./strace -ereadahead ./a.out
+	readahead(-1, 1125899906842624, 0)      = -1 EBADF (Bad file descriptor)
+
+	* util.c (printllval): Handle S390X define.
+
+	Stop using old AM_CONFIG_HEADER macro.
+	Building with automake-1.13 throws an error:
+	configure.ac:6: error: 'AM_CONFIG_HEADER': this macro is obsolete.
+	    You should use the 'AC_CONFIG_HEADERS' macro instead.
+
+	* configure.ac (AM_CONFIG_HEADER): Rename to AC_CONFIG_HEADERS.
+
+2013-04-30  Dmitry V. Levin  <ldv@altlinux.org>
+
+	build: introduce git-version-gen.
+	* .gitignore: Add .version.
+	* Makefile.am (EXTRA_DIST, BUILT_SOURCES): Add $(srcdir)/.version.
+	Add rules to check NEWS, generate $(srcdir)/.version and
+	$(distdir)/.tarball-version files.
+	Change ChangeLog and CREDITS generation rules to depend on
+	$(srcdir)/.version instead of $(srcdir)/.git/refs/heads/*.
+	* NEWS: Add dates to recent releases.
+	* configure.ac (AC_INIT): Use git-version-gen.
+	(AM_INIT_AUTOMAKE): Remove check-news.
+	* git-version-gen: Import from gnulib.
+	* make-dist: Check NEWS.
+
+	Makefile.am: sort long lists to ease maintenance.
+	* Makefile.am (strace_SOURCES, EXTRA_DIST): Sort, place one list element
+	per line.
+
+	build: fix "make dist" regression introduced by commit v4.7-105-g7270de5
+	* Makefile.am (EXTRA_DIST): Remove linux/arm/syscallent1.h,
+	linux/arm/signalent1.h, linux/arm/ioctlent1.h and linux/arm/errnoent1.h.
+
+	build: fix "make dist" regression introduced by commit v4.7-29-g17e3860.
+	* Makefile.am (EXTRA_DIST): Add linux/ioctlent-filter.awk.
+
+2013-04-30  Mike Frysinger  <vapier@gentoo.org>
+
+	Blackfin: tweak sram_alloc syscall decode.
+	* system.c (sys_sram_alloc): The 2nd argument of sram_alloc syscall
+	is a bit field, not a specific value, so decode it as such.
+
+2013-03-31  Zev Weiss  <zev@bewilderbeest.net>
+
+	Print io_submit() offsets in decimal.
+	This makes output formatting more consistent with pread()/pwrite(),
+	which print their offset parameters in decimal.
+
+	* desc.c (sys_io_submit): Change offset output format from %llx to %lld.
+
+2013-03-30  Andreas Schwab  <schwab@suse.de>
+
+	Fix building outside source directory.
+	The file linux/ioctlent.h is generated in the build directory, so
+	"../ioctlent.h" won't find it.
+
+	* linux/aarch64/ioctlent1.h: Remove "../" from include file name.
+	* linux/powerpc/ioctlent1.h: Likewise.
+	* linux/tile/ioctlent1.h: Likewise.
+	* linux/x32/ioctlent1.h: Likewise.
+	* linux/x86_64/ioctlent1.h: Likewise.
+	* linux/x86_64/ioctlent2.h: Likewise.
+
+	AArch64: Fix printing of long long value.
+	* util.c (printllval): Fix printing of long long values on
+	AArch64.
+
+2013-03-27  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Update PR_* constants.
+	* process.c (prctl_options): Add more PR_* constants from linux/prctl.h.
+
+2013-03-25  Chris Zankel  <chris@zankel.net>
+
+	Add support for the XTENSA architecture.
+	* configure.ac: Add XTENSA to the list of supported architectures.
+	* defs.h: Add XTENSA support.
+	* linux/xtensa/syscallent.h: New file.
+	* linux/xtensa/ioctlent.h.in: Likewise.
+	* process.c (struct_user_offsets): Add XTENSA support.
+	* signal.c (sys_sigreturn): Likewise.
+	* syscall.c (printcall, get_scno, get_syscall_args,
+	  get_syscall_result, get_error): Likewise.
+	* util.c (change_syscall): Likewise.
+
+2013-03-22  Denys Vlasenko  <vda.linux@googlemail.com>
+
+	Add example script which builds static (possibly cross-compiled) strace.
+
+2013-03-21  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Use 64-bit versions of stat, readdir and setrlimit functions when available
+	strace already has a mechanism to use fopen64 for output when the 64-bit
+	version of fopen is available on 32-bit architectures.  Apply this
+	mechanism for other three functions to make strace fully adopted for
+	64-bit types.
+
+	* strace.c (struct_stat, stat_file, struct_dirent, read_dir,
+	struct_rlimit, set_rlimit): New macros.
+	(startup_attach): Use read_dir.
+	(startup_child): Use struct_stat and stat_file.
+	(main): Use struct_rlimit and set_rlimit.
+
+2013-03-20  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Do not use struct dirent in readdir decoding.
+	struct dirent from libc should not be used for umove'ing into because it
+	contains fixed size d_name.
+
+	* file.c (printdir): Rename to print_old_dirent.
+	[SH64]: Decode using struct kernel_dirent.
+	[!SH64]: Decode using an open-coded struct with 32-bit d_ino and d_off.
+	(sys_readdir): Update.
+
+	Do not use off_t in sendfile decoding.
+	sendfile parser used to decode off_t* parameter as a pointer to host
+	off_t type.  With this change, it is decoded as a pointer to target long
+	type.
+
+	* io.c (print_off_t): New function.
+	(sys_sendfile): Use it.
+	* linux/aarch64/syscallent1.h: Use sys_sendfile64 for sendfile decoding.
+	* linux/tile/syscallent.h: Likewise.
+	* linux/x32/syscallent.h: Likewise.
+	* linux/x86_64/syscallent.h: Likewise.
+	* linux/hppa/syscallent.h: Use sys_sendfile64 for sendfile64 decoding.
+	* linux/metag/syscallent.h: Correct sendfile syscall name.
+	* linux/or1k/syscallent.h: Likewise.
+
+2013-03-18  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Fix build with older versions of libaio.h.
+	* configure.ac: When libaio.h is available, check for
+	struct iocb.u.c.flags, IO_CMD_PWRITE and IO_CMD_PWRITEV.
+	* desc.c (print_common_flags): Check for HAVE_STRUCT_IOCB_U_C_FLAGS.
+	(sys_io_submit): Check for HAVE_DECL_IO_CMD_PWRITE and
+	HAVE_DECL_IO_CMD_PWRITEV.
+
+	Fix io_submit decoding.
+	* desc.c (print_common_flags, sys_io_submit): Add missing ", " to
+	SUB_COMMON output, remove extra ", " from SUB_VECTOR output.
+
+2013-03-18  Maxin B. John  <maxin.john@enea.com>
+
+	tests: relax check_prog to allow timeout command provided by busybox.
+	Busybox version of timeout doesn't have --version option.
+	Relax check_prog to handle those cases.
+
+	* tests/init.sh (check_prog): Use type builtin to check program
+	availability.
+
+2013-03-18  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Reorganize get_regs code, hopefully without functional changes.
+	* syscall.c [I386 || ARM || OR1K || METAG] (ARCH_REGS_FOR_GETREGSET):
+	New macro.
+	(get_regset): Implement for AARCH64, METAG, OR1K and X32.
+	(get_regs) [AARCH64 || METAG || OR1K || X32]: Use it.
+
+	arm, i386: use PTRACE_GETREGSET if available.
+	* syscall.c [ARM || I386 || X86_64] (get_regset): New function.
+	(get_regs) [ARM || I386 || X86_64]: Use it.
+
+	Include <sys/uio.h> and <elf.h> on all architectures.
+	* syscall.c: Include <sys/uio.h> and <elf.h> on all architectures.
+
+	x86-64: enhance PTRACE_GETREGSET test.
+	* syscall.c (get_regs) [X86_64]: Check whether PTRACE_GETREGSET
+	works regardless of the kernel version.
+
+	x32: use PTRACE_GETREGSET unconditionally.
+	* syscall.c (get_regs) [X32]: Assume that PTRACE_GETREGSET always works
+	regardless of the kernel version.
+
+	x86-64, x32: do not include linux/ptrace.h unnecessarily.
+	* syscall.c [X86_64 || X32]: Stop including linux/ptrace.h.
+
+	i386, tile, x32: do not redefine ptrace prototype.
+	* defs.h [I386 || TILE || X32]: Use ptrace prototype from sys/ptrace.h.
+
+	ptrace: decode note segment descriptor types.
+	* configure.ac (AC_CHECK_HEADERS): Add elf.h.
+	* process.c: Include elf.h.
+	(nt_descriptor_types): New xlat structure.
+	(sys_ptrace): Use it.
+
+2013-03-14  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Update MADV_* constants.
+	* mem.c (madvise_cmds): Add more MADV_* constants from
+	asm-generic/mman-common.h
+
+	Reported-by: Robin Hack <hack.robin@gmail.com>
+
+2013-03-07  Denys Vlasenko  <vda.linux@googlemail.com>
+
+	Tweaks for -c: fixed setitimer/getitimer hack; optimized call_summary_pers()
+	count_syscall() was calling setitimer/getitimer once in order to find
+	smallest "tick" OS uses in time accounting, in order to use it
+	for syscalls which apparently spent less than that time in syscall.
+	The code assumed that this "tick" is not zero... but it is zero
+	on linux-3.6.11. Which means that this hack doesn't work...
+
+	At least this change prevents this measurement from being done
+	_repeatedly_, by initializing one_tick to -1, not 0.
+
+	While at it, added comments in count_syscall() explaining what we are doing.
+
+	Optimized call_summary_pers() a bit, by eliminating redundant tv -> float
+	conversions, and prevented 0.0/0.0 which was resulting in "% time"
+	being shown as "-nan" if total CPU time spent was 0.000000
+	(try "strace -c /bin/true").
+
+	The code seems to seriously underestimate CPU usage:
+	"strace -c ls -lR /usr/share >/dev/null" shows total time spent
+	in syscalls to be only ~10..20% of what "time ls -lR /usr/share >/dev/null"
+	shows.
+
+	It might be useful to have a mode where we show wall clock time
+	spent in syscalls, not CPU time. It might also be more accurate.
+
+	   text	   data	    bss	    dec	    hex	filename
+	 245019	    676	   5708	 251403	  3d60b	strace_old
+	 244923	    684	   5676	 251283	  3d593	strace
+
+2013-03-06  Denys Vlasenko  <vda.linux@googlemail.com>
+
+	Open-code isprint(c) and isspace(c)
+	We don't call setlocale, thus we always use C locale.
+	But libc supports various other locales, and therefore
+	its ctype interface is general and at times inefficient.
+	For example, in glibc these macros result in function call,
+	whereas for e.g. isprint(c) just c >= ' ' && c <= 0x7e
+	suffices.
+
+	By open-coding ctype checks (we have only 4 of them)
+	we avoid function calls, we get smaller code:
+
+	   text	   data	    bss	    dec	    hex	filename
+	 245127	    680	   5708	 251515	  3d67b	strace_old
+	 245019	    676	   5708	 251403	  3d60b	strace
+
+	and we don't link in ctype tables (beneficial for static builds).
+
+	Makefile: add commented-out tweak to generate link map.
+
+	Stop using a large static buffer in getfdpath.
+	   text	   data	    bss	    dec	    hex	filename
+	 245075	    680	   9836	 255591	  3e667	strace_old
+	 245143	    680	   5708	 251531	  3d68b	strace
+
+2013-03-05  Denys Vlasenko  <vda.linux@googlemail.com>
+
+	Fix wrongly indented closing curly brace. No code changes.
+
+	strace_vfprintf: if malloc fails, exit gracefully.
+
+2013-03-05  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Use sysconf(_SC_PAGESIZE) instead of hardcoded PAGE_SHIFT.
+	PAGE_SHIFT couldn't be reliably obtained at compile time,
+	thanks to Chris Metcalf for the hint.
+
+	* mem.c: Do not include <sys/user.h>.
+	[SH64] Do not include <asm/page.h>.
+	(get_pagesize): New function.
+	(sys_mmap_pgoff, sys_old_mmap_pgoff): Use it.
+
+2013-03-05  Denys Vlasenko  <vda.linux@googlemail.com>
+
+	Emit better message for ERESTARTNOHAND return.
+
+	Disable STREAMS syscalls for non-SPARC.
+	   text	   data	    bss	    dec	    hex	filename
+	   3002	      0	   1024	   4026	    fba	stream.o.old
+	   1729	      0	   1024	   2753	    ac1	stream.o
+
+	Fix printstrbufarg's address argument to be long, not int.
+
+	Remove variable tracing_paths and check in pathtrace_match.
+
+	Use dynamically-sized selected[] array for -P PATH.
+	While at it, added a small optimization of not remembering
+	the path twice if it happens to be the same.
+
+	   text	   data	    bss	    dec	    hex	filename
+	 245111	    680	  10860	 256651	  3ea8b	strace_old
+	 245075	    680	   9804	 255559	  3e647	strace
+
+	metag,or1k: whitesace style fix. no code changes.
+
+	Assorted fixes to syscallent.h.
+	or1k was missing TM on many memory-related syscalls
+	sys_lookup_dcookie is 3-arg on 64-bit arches, and isn't TF
+	sys_recvmsg is 3-arg on all arches
+	sys_nfsservctl is 3-arg on all arches
+	sys_timerfd_create is 2-arg on all arches
+	sys_[f]truncate64 is 4-arg or 3-arg, never 5-arg
+	truncate64 is TF
+	sys_[l]lseek is TD
+	fstat[64] is TD
+
+2013-03-05  James Hogan  <james.hogan@imgtec.com>
+
+	Add support for Imagination Technologies Meta.
+	Add support for Imagination Technologies Meta architecture (the
+	architecture/ABI is usually referred to as metag in code). The Meta
+	Linux kernel port is in the process of being upstreamed for v3.9 so it
+	uses generic system call numbers.
+
+	sys_lookup_dcookie writes a filename to buffer argument, so I've set
+	TF flag.
+	nfsservctl appears to be set to sys_ni_syscall in asm-generic/unistd.h
+	so I've left it blank.
+	truncate64/ftruncate64/pread64/pwrite64/readahead have unaligned 64bit
+	args which are packed tightly on metag, so less arguments on metag.
+	fchdir/llseek takes a file descriptor so s/TF/TD/
+	sync_file_range has 2 64bit args so uses 6 args, so s/4/6/
+	timerfd_create/msgget/msgctl/msgrcv/semget/segtimedop/semop/shmget/
+	shmctl/shmat/shmdt/recvmsg/migrate_pages have different number of args.
+	oldgetrlimit is just getrlimit for metag.
+	add TM flag to various memory syscalls.
+	metag doesn't directly use sys_mmap_pgoff for mmap2.
+	prlimit64/process_vm_readv/process_vm_writev take a pid so add TP flag.
+	fanotify_init doesn't appear to take a file descriptor so remove TD.
+	Add kcmp syscall.
+
+	Cc: Christian Svensson <blue@cmd.nu>
+
+2013-03-01  Denys Vlasenko  <vda.linux@googlemail.com>
+
+	umovestr: speed up check for NUL byte in the fetched word.
+
+2013-03-01  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Fix trace=set regression introduced by commit v4.7-111-g9cbc15b.
+	* syscall.c (qual_syscall, qualify): Pass personality down to
+	qualify_one.
+	* tests/qual_syscall: New test.
+	* tests/Makefile.am (TESTS): Add qual_syscall.
+
+2013-03-01  Chris Metcalf  <cmetcalf@tilera.com>
+
+	tile: handle printllval like x86_64 or powerpc64.
+	Without this fix the tilegx build fails when it hits the new #error
+	about SIZEOF_LONG > 4.
+
+	* util.c (printllval): Fix printing of long long values on TILE.
+
+2013-02-27  Denys Vlasenko  <vda.linux@googlemail.com>
+
+	Make -b take SYSCALL param, document it in --help and in manpage.
+	To not waste an option letter for just one trick,
+	extend -b to take a parameter:
+	"on which syscalls do you want to detach?".
+	Currently supports only execve.
+
+	While at it, fixed (by removing non-Linux and stale info)
+	and extended manpage text about -f.
+
+2013-02-26  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Cleanup umoven and umovestr.
+	Cleanup sloppy error handling.
+
+	First, EFAULT kind of errors from process_vm_readv by itself is not
+	something unusual, so a warning message will not be issued unless a
+	short read is detected.
+
+	Second, clients of umoven and umovestr are not prepared to detect and
+	handle short reads that can happen in these functions.  The most safe
+	way to handle them is to return an error code.
+
+	* util.c (umoven, umovestr): Cleanup handling of errors coming from
+	process_vm_readv and PTRACE_PEEKDATA.
+
+	pathtrace: fix umovestr return code check.
+	* pathtrace.c (upathmatch): Only NUL-terminated strings can be
+	path-matched, so fix the umovestr return code check to filter out
+	unsuitable strings.
+
+	Fix compilation errors uncovered by -Werror=enum-compare.
+	This fixes regression introduced by commit v4.7-111-g9cbc15b.
+
+	* syscall.c: Merge all nsyscalls* enums into single enum.
+	Likewise merge nerrnos*, nsignals*, and nioctlents* into single enums.
+
+2013-02-26  Denys Vlasenko  <vda.linux@googlemail.com>
+
+	Mass replace error_msg("%s", "literal") -> error_msg("literal")
+	There is no need to print literal strings through "%s".
+	Only untrusted strings such as filenames need that.
+
+2013-02-26  Ben Noordhuis  <info@bnoordhuis.nl>
+
+	Make umoven report success as 0, not >=0, stop returning success on partial reads
+	umoven() uses process_vm_readv() when available but it returns the
+	return value of that syscall, which is the number of bytes copied,
+	while its callers expect it to simply return zero on success.
+
+	It was causing syscalls that take a user-space argument to print
+	the abbreviated version, e.g.:
+
+	  epoll_ctl(5, EPOLL_CTL_ADD, 10, {...})
+
+	Instead of:
+
+	  epoll_ctl(5, EPOLL_CTL_ADD, 10, {EPOLLIN, {u32=10, u64=10}})
+
+	* util.c (umoven): Make umove[n] report success as 0, not >=0,
+	stop returning "success" on partial reads.
+
+2013-02-26  Denys Vlasenko  <vda.linux@googlemail.com>
+
+	Assorted NOMMU fixes.
+	With -D, strdup'ing of pathname is necessary only on NOMMU.
+
+	Don't set skip_startup_execve to 1 if NOMMU and not in daemonized mode
+	(try "strace [-D] -b env echo HI" to see whether we detach on correct execve).
+
+	Fix test_ptrace_FOO shortcuts on NOMMU to always assume success
+	and _properly_ set all variables.
+
+	Shorten help text - no need to show deprecated option -F.
+
+2013-02-23  Denys Vlasenko  <vda.linux@googlemail.com>
+
+	Merge adjacent tprint's.
+
+	Correct i > MAX_NSYSCALLS commparison: should be i >= MAX_NSYSCALLS.
+
+2013-02-22  Denys Vlasenko  <vda.linux@googlemail.com>
+
+	Fix wrong offset display in dumpstr.
+	BTW, the new code from prev commit is 5 times faster
+	than old one :)
+
+	Fix a bug in dumpstr (no null termination). Essentially rewrote dumpstr.
+	This is a 14 year old bug (!).
+
+	It wasn't biting us merely because outstr[80] was static, thus ended up
+	in bss and whatever was after it "accidentally" provided the NUL byte.
+	When dumpstr was changed to use on-stack buffer, the bug reared its ugly head.
+
+	This is a rewrite which is smaller and should be significantly faster
+	for _long_ strings.
+
+	   text	   data	    bss	    dec	    hex	filename
+	 244627	    680	  10860	 256167	  3e8a7	strace.t9/strace
+	 244563	    680	  10860	 256103	  3e867	strace.ta/strace
+
+	* util.c (dumpstr): Rewrite to be faster and smaller.
+
+	Eliminate MAX_QUALS, make qualifier array dynamic.
+	MAX_QUALS was 2048, even though most arches used less than 500 entries
+	in it. MAX_QUALS had to be maintained by hand to be higher than syscall
+	count. It also limited the highest possible fd to track.
+
+	This change makes qual_flagsN[] arrays start sized to the required minimum
+	(number of syscalls) and grow dynamically if user requested
+	-e read=BIGNUM. As a precaution, BIGNUM should be < 2^15, but this limit
+	can be raised with no cost for normal strace invocations.
+
+	qual_flags is now a define to qual_vec[current_personality].
+
+	As a bonus, this patch aliases sysent, errnoent, signalent, ioctlent
+	names in one-personality arches to their corresponding <foo>0 arrays,
+	removing one indirection level.
+
+	  text   data    bss    dec    hex filename
+	244471    700  12928 258099  3f033 strace.t7/strace
+	244627    680  10860 256167  3e8a7 strace.t8/strace
+
+	Create and use struct_sysent and struct_ioctlent typedefs.
+	This is a preparatory mass replace patch with no code changes.
+
+	The future change will need to typedef sysent to sysent0,
+	which results in compile failures when "struct sysent" string
+	gets mangled into "struct sysent0".
+
+	Use tcp->qual_flg instead of qual_flags[] in verbose() and abbrev()
+	We have hundreds of uses of these macros.
+	Result is more efficient and 1.1 kbyte shorter code:
+
+	  text	   data	    bss	    dec	    hex	filename
+	245579	    700	  12928	 259207	  3f487	strace.t5/strace
+	244471	    700	  12928	 258099	  3f033	strace.t6/strace
+
+2013-02-21  Denys Vlasenko  <vda.linux@googlemail.com>
+
+	Remove unused QUAL_FAULT code (was used by non-Linux code only).
+
+	Use uint8_t for qual_flags[] instead of ints.
+	Resulting bss reduction is ~6kbytes:
+
+	   text	   data	    bss	    dec	    hex	filename
+	 245703	    700	  19072	 265475	  40d03	strace.t4/strace
+	 245687	    700	  12928	 259315	  3f4f3	strace.t5/strace
+
+	Eliminate many SCNO_IS_VALID checks.
+	By adding tcp->s_ent pointer tot syscall table entry,
+	we can replace sysent[tcp->scno] references by tcp->s_ent.
+	More importantly, we may ensure that tcp->s_ent is always valid,
+	regardless of tcp->scno value. This allows us to drop
+	SCNO_IS_VALID(tcp->scno) checks before we access syscall
+	table entry.
+
+	We can optimize (qual_flags[tcp->scno] & QUAL_foo) checks
+	with a similar technique.
+
+	Resulting code shrink:
+	   text    data     bss     dec     hex filename
+	 245975     700   19072  265747   40e13 strace.t3/strace
+	 245703     700   19072  265475   40d03 strace.t4/strace
+
+	* count.c (count_syscall): Use cheaper SCNO_IN_RANGE() check.
+	* defs.h: Add "int qual_flg" and "const struct sysent *s_ent"
+	to struct tcb. Remove "int u_nargs" from it.
+	Add UNDEFINED_SCNO constant which will mark undefined scnos
+	in tcp->qual_flg.
+	* pathtrace.c (pathtrace_match): Drop SCNO_IS_VALID check.
+	Use tcp->s_ent instead of sysent[tcp->scno].
+	* process.c (sys_prctl): Use tcp->s_ent->nargs instead of tcp->u_nargs.
+	(sys_waitid): Likewise.
+	* strace.c (init): Add compile-time check that DEFAULT_QUAL_FLAGS
+	constant is consistent with init code.
+	* syscall.c (decode_socket_subcall): Use tcp->s_ent->nargs
+	instead of tcp->u_nargs. Set tcp->qual_flg and tcp->s_ent.
+	(decode_ipc_subcall): Likewise.
+	(printargs): Use tcp->s_ent->nargs instead of tcp->u_nargs.
+	(printargs_lu): Likewise.
+	(printargs_ld): Likewise.
+	(get_scno): [MIPS,ALPHA] Use cheaper SCNO_IN_RANGE() check.
+	If !SCNO_IS_VALID, set tcp->s_ent and tcp->qual_flg to default values.
+	(internal_fork): Use tcp->s_ent instead of sysent[tcp->scno].
+	(syscall_fixup_for_fork_exec): Remove SCNO_IS_VALID check.
+	Use tcp->s_ent instead of sysent[tcp->scno].
+	(get_syscall_args): Likewise.
+	(get_error): Drop SCNO_IS_VALID check where it is redundant.
+	(dumpio): Drop SCNO_IS_VALID check where it is redundant.
+	Use tcp->s_ent instead of sysent[tcp->scno].
+	(trace_syscall_entering): Use (tcp->qual_flg & UNDEFINED_SCNO) instead
+	of SCNO_IS_VALID check. Use tcp->s_ent instead of sysent[tcp->scno].
+	Drop SCNO_IS_VALID check where it is redundant.
+	Print undefined syscall name with undefined_scno_name(tcp).
+	(trace_syscall_exiting): Likewise.
+	* util.c (setbpt): Use tcp->s_ent instead of sysent[tcp->scno].
+
+	ARM: make it one-personality arch.
+	ARM in fact _is_ one personality.
+
+	We had two personalities for it because it has a handful of
+	syscalls with huge scnos (0x000f00xx).
+
+	Extending syscall table to have [0x000f0005] index is of course
+	not a good idea.
+
+	Someone decided to handle that by having a separate personality
+	just for these syscalls.
+
+	But multi-personality arch does a bit more work in other parts.
+
+	This patch is another alternative: "move" 0x000f00nn syscalls
+	down to the entries just above last ordinary syscall,
+	by manipulating scno if it falls into the 0x000f00xx range.
+
+	In order to not worsen genuine undefined scnos' printing,
+	the code remaps scno back to actual value before printing
+	"syscall_NNN" string.
+
+	* defs.h: Remove multi-reprsonality defines from ARM.
+	* syscall.c (shuffle_scno): New function.
+	(undefined_scno_name): New function.
+	(get_scno): [ARM] Replace personality setting with scno shuffling.
+	(trace_syscall_entering): Print unknown syscall name using
+	undefined_scno_name().
+	(trace_syscall_exiting): Likewise.
+	* linux/arm/syscallent.h: Add ARM specific syscalls at the end.
+	* linux/arm/errnoent1.h: Deleted.
+	* linux/arm/ioctlent1.h: Deleted.
+	* linux/arm/signalent1.h: Deleted.
+	* linux/arm/syscallent1.h: Deleted.
+
+2013-02-20  Denys Vlasenko  <vda.linux@googlemail.com>
+
+	arm: shorten syscall table for EABI - no point in storing NULL entries.
+	Also, reformatted ARM code in get_scno(), mostly improved comments,
+	without code changes.
+
+	Use the same style of includes in linux/*/* files.
+	While at it, fix some comments which say
+	"we use i386 syscalls/ioctls/errnos" but in reality
+	common ones are used.
+
+2013-02-19  Denys Vlasenko  <vda.linux@googlemail.com>
+
+	Fix compiler warnings.
+	With constant current_wordsize == 4 and 32-bit longs,
+	gcc was spooked by "1ul << (8 * current_wordsize)" = "1ul << 32".
+
+	Make such places conditional on SIZEOF_LONG > 4.
+
+	Improve comment text. No code changes.
+
+	Fix NOMMU + daemonized tracer SEGV.
+	pathname[] was getting destroyed, execve of garbage pathname
+	failing, and to top it off, the tracer's stack was also
+	smashed and trecer segfaulted.
+
+	* strace.c (exec_or_die): New function.
+	(startup_child): Don't use pathname[] contents after vfork,
+	make a malloced copy instead. Explain "NOMMU + -D bug"
+	and how we work around it.
+
+	Make it possible to to do test builds for NOMMU architectures.
+	And while using it, I discovered that -D doesn't work too well
+	on NOMMU. Added a comment about it.
+
+	Clean up mmap decoding.
+	Previous code merges too many similar, but different ways
+	of decoding mmap. For example, sys_old_mmap is "params in memory"
+	API... except SH[64], where it is "params in regs",
+	i.e. what sys_mmap ("new mmap") function does on other arches!
+
+	It's much simpler when every mmap handler has same API regardless
+	of arch. Where API means whether params are in regs or in memory,
+	and whether offset is in bytes, pages, or 4k blocks.
+
+	Then we just insert correct function pointers into
+	arch syscall tables.
+
+	It turns out there are four common mmap APIs over
+	all architectures which exist in Linux kernel,
+	and one outlier for S390.
+
+	A number of mmap decoders were plain wrong in arch tables.
+	For example, BFIN has no old_mmap. It returns ENOSYS.
+	I checked kernel sources for all arches nad fixed the tables.
+
+	There was dead code for x86_64 for old_mmap:
+	x86_64 has no old_mmap.
+
+	* mem.c: Refactor mmap functions so that we have five mmap syscall
+	handlers, each with the fixed API (not varying by arch).
+	* pathtrace.c (pathtrace_match): Adjust sys_func == mmap_func checks.
+	* linux/syscall.h: Declare new mmap syscall handler functions.
+	* linux/arm/syscallent.h: mmap2 is sys_mmap_pgoff.
+	* linux/avr32/syscallent.h: mmap is sys_mmap_pgoff.
+	* linux/bfin/syscallent.h: old_mmap is ENOSYS, mmap2 is sys_mmap_pgoff.
+	* linux/hppa/syscallent.h: mmap2 is sys_mmap_4koff.
+	* linux/i386/syscallent.h: mmap2 is sys_mmap_pgoff.
+	* linux/ia64/syscallent.h: mmap2 is sys_mmap_pgoff.
+	* linux/m68k/syscallent.h: mmap2 is sys_mmap_pgoff.
+	* linux/microblaze/syscallent.h: old_mmap is sys_mmap, mmap2 is sys_mmap_pgoff.
+	* linux/mips/syscallent.h: mmap is sys_mmap_4kgoff.
+	* linux/or1k/syscallent.h: mmap2 is sys_mmap_pgoff.
+	* linux/powerpc/syscallent.h: mmap2 is sys_mmap_4kgoff.
+	* linux/s390/syscallent.h: mmap2 is sys_old_mmap_pgoff.
+	* linux/s390x/syscallent.h: mmap is sys_old_mmap and thus has 1 arg.
+	* linux/sh/syscallent.h: old_mmap2 is sys_mmap, mmap2 is sys_mmap_4koff.
+	* linux/sh64/syscallent.h: Likewise.
+	* linux/sparc/syscallent1.h: mmap is TD|TM.
+	* linux/tile/syscallent1.h: mmap2 is sys_mmap_4koff.
+
+2013-02-18  Denys Vlasenko  <vda.linux@googlemail.com>
+
+	Remove unused function sys_mmap64.
+	No wonder that it is unused.
+	It's code looked quite questionable.
+
+	* mem.c (sys_mmap64): Remove this function.
+
+	Remove code which supports systems with long long off_t.
+	While looking at mmap mess, did experimenting in order
+	to figure out what gets used when.
+
+	Tried building armv4tl, armv5l, armv6l, mips, mipsel, i686,
+	x86_64 and none of they have long long off_t,
+	which isn't suprprising: we aren't using glibc defines
+	which enable that.
+
+	Moreover, we SHOULD NOT use off_t in syscall decode!
+	Its size depends on libc, not on arch! I.e. it is essentially
+	unpredictable and can even in theory vary on the same arch
+	with different libc.
+
+	We should use longs or long longs, in a way which matches
+	architectural ABI for the given syscall. There are usually
+	*at most* two permutations, no need to add yet another variable
+	(sizeof(off_t)) to the mix.
+
+	This change removes almost all HAVE_LONG_LONG_OFF_T conditionals,
+	which will reveal further possible simplifications.
+
+	* mem.c: Remove code conditional on HAVE_LONG_LONG_OFF_T.
+	As a result, never remap sys_mmap64 to sys_mmap.
+	(print_mmap): Compile unconditionally.
+	(sys_old_mmap): Compile unconditionally.
+	(sys_mmap): Compile unconditionally.
+	* io.c (sys_sendfile): Add a FIXME comment.
+	* file.c: Remove code conditional on HAVE_LONG_LONG_OFF_T.
+	As a result, never remap sys_*stat64 to sys_*stat etc.
+	(sys_truncate): Compile unconditionally.
+	(realprintstat): Likewise.
+	(sys_stat): Likewise.
+	(sys_fstat): Likewise.
+	(sys_lstat): Likewise.
+	* desc.c (printflock): Likewise.
+
+	Fixes in "new" mmap.
+	* mem.c (sys_mmap): Ensure unsigned expansion of tcp->u_arg[5].
+	Add page shift of offset for I386.
+	Use tcp->ext_arg[5] as offset for X32.
+	(sys_old_mmap): [X32] Remove this function, X32 doesn't use is.
+
+	Preliminary simplifications in mmap functions.
+	* mem.c: Move "define sys_mmap64 sys_mmap" from the top
+	to the only place it affects.
+	(print_mmap): Make offset argument unsigned, for safer implicit conversions.
+	(sys_old_mmap): [IA64] use unsigned narrow_arg[].
+	Cast u_arg[5] (offset param) to unsigned long, to prevent erroneous signed
+	expansion.
+
+2013-02-17  Denys Vlasenko  <vda.linux@googlemail.com>
+
+	Remove broken HAVE_LONG_LONG conditionals.
+	We use printllval without HAVE_LONG_LONG guards in many places,
+	but define it only if HAVE_LONG_LONG. This means that
+	on !HAVE_LONG_LONG systems we won't build for some time now.
+
+	* defs.h: Remove HAVE_LONG_LONG guard around LONG_LONG() macro
+	and printllval() function declaration.
+	* util.c: Remove HAVE_LONG_LONG guard around printllval()
+	function definition.
+	(printllval): Add compile-time error check for using wrong
+	if branch. Explain places where we deliberately use mismatched
+	types for printf formats.
+
+	Use explicit long type instead of off_t.
+	* file.c (sys_lseek): Use long instead of off_t.
+
+	Merge two identical tables.
+	* defs.h: Declare whence_codes[].
+	* desc.c: Delete static whence[].
+	(printflock[64]): Use whence_codes.
+	* file.c: Make whence_codes[] non-static.
+	Add SEEK_DATA and SEEK_HOLE to them.
+
+	Remove wrong x32-specific lseek.
+	Testing confirmed what I suspected: x32 lseek uses kernel-sized
+	(i.e. wide) long for offset parameter.
+
+	* file.c: Delete sys_lseek32.
+	* linux/syscall.h: Likewise.
+	* linux/x32/syscallent1.h: Likewise.
+	* test/x32_lseek.c: New file.
+
+	Fix SEGV in lseek.
+	I found hard way why the code was using "_whence" name.
+
+	* file.c: Rename whence[] to whence_codes[].
+	(sys_lseek): Fix printxval() to use whence_codes[].
+	(sys_lseek32): Likewise.
+
+	Comment inner workings of sys_[l]lseek.
+	The code doesn't look fully correct to me, but I need to experiment
+	on actual x32 machine before I start "fixing" things.
+	For now, add comments, and optimize out one tprints() call...
+
+	* file.c (sys_lseek): Rename '_whence' as 'whence'.
+	Merge printing of ", " into subsequent tprintf.
+	(sys_lseek32): Likewise.
+	(sys_llseek): Likewise.
+
+	Cosmetic fixes to syscall tables, no code changes.
+
+2013-02-16  Denys Vlasenko  <vda.linux@googlemail.com>
+
+	Make linux/mips/syscallent.h smaller.
+	* linux/mips/syscallent.h: Remove trailing empty elements.
+	Compactify huge stretches of NULL elements in the middle.
+
+	Simple optimization in get_error.
+	* defs.h: Define SCNO_IN_RANGE(scno) macro.
+	* syscall.c (get_error): Change return type to void.
+	Use SCNO_IN_RANGE instead of SCNO_IS_VALID.
+	(trace_syscall_exiting): Stop checking get_error() return value.
+
+	Mass rename of SCNO_IN_RANGE define to SCNO_IS_VALID.
+
+	Finish prefixing regs struct names with arch_
+	* defs: Rename regs -> sparc_regs.
+	* signal.c (sys_sigreturn): Use new variable name.
+	* syscall.c: Rename regs -> sparc_regs, regs -> avr32_regs.
+	(getrval2): Use new variable names.
+	(printcall): Likewise.
+
+2013-02-15  Denys Vlasenko  <vda.linux@googlemail.com>
+
+	Use the same type for i386_regs on 32-bit and 64-bit x86.
+	* defs.h: Stop including <asm/ptrace.h> for x86.
+	Change i386_regs from "struct pt_regs" to "struct user_regs_struct".
+	* syscall.c: Likewise.
+
+	Fix build error on Tile.
+	* syscall.c (get_scno): [TILE] Remove TCB_WAITEXECVE check,
+	it is never true on Tile, and stopped compiling when
+	TCB_WAITEXECVE define was removed for Tile.
+
+	x86: zero-extend 32-bit args in syscall entry instead of sign-extension.
+	Zero-extension is slightly more common that sign-extension:
+	all pointers are zero-extended, and some other params are unsigned.
+
+	Whereas signed ones (fds, pids, etc) are often treated as
+	_32-bit ints_ even by kernel, so just unconditionally casting
+	such tcp->u_arg[N] to int works.
+
+	* syscall.c (get_syscall_args): [X86] Zero-extend 32-bit args
+	instead of sign-extension.
+
+	Macroize conditional signed widening operation.
+	* defs.h: Define widen_to_long() macro.
+	* signal.c (sys_kill): Use it instead of open-coding it.
+	(sys_tgkill): Use widen_to_long() on pids.
+	* resource.c (decode_rlimit): Formatting fix.
+
+	A better handling of current_wordsize.
+	On x86_64:
+	  text	   data	    bss	    dec	    hex	filename
+	435661	  26628	  47424	 509713	  7c711	strace_old
+	435501	  26612	  47440	 509553	  7c671	strace_new_clever_wordsize
+
+	On x32 and arm it should be even better, current_wordsize becomes
+	a constant there.
+
+	* defs.h: Declare current_wordsize as a variable if needed,
+	else declare as a constant define.
+	Remove declatation of personality_wordsize[].
+	* syscall.c: Make personality_wordsize[] static.
+	Declare current_wordsize as a variable if needed.
+	(set_personality): Set current_wordsize only if non-constant.
+
+	Remove unnecessary "return 0" statements.
+	* util.c (change_syscall): Remove dummy "return 0"s.
+
+2013-02-14  Denys Vlasenko  <vda.linux@googlemail.com>
+
+	x86: fix required kernel version for GETREGSET.
+	* syscall.c (get_regs): [X86] Use GETREGSET only if kernel >= 2.6.35
+
+	Whitespace fix, no code changes.
+
+2013-02-14  Christian Svensson  <blue@cmd.nu>
+
+	Add support for the OpenRISC 1000 platform.
+	* configure.ac: Added or1k architecture..
+	* defs.h: Added or1k to use register reading system.
+	* linux/or1k/ioctlent.h.in: Use i386 ioctls.
+	* linux/or1k/syscallent.h: New file.
+	* process.c: Added or1k register defs to struct_user_offsets[].
+	* syscall.c: Added or1k_io iovec for or1k GETREGSET,
+	  regset structure for or1k.
+	  (printcall): Added handling for or1k.
+	  (get_regs): Likewise.
+	  (get_scno): Likewise.
+	  (get_syscall_args): Likewise.
+	  (get_syscall_result): Likewise.
+	  (get_error): Likewise.
+	* util.c (change_syscall): Added dummy handling for or1k.
+	* system.c (sys_or1k_atomic): New function (or1k specific syscall).
+
+2013-02-14  Denys Vlasenko  <vda.linux@googlemail.com>
+
+	[X86] Use ptrace(PTRACE_GETREGSET, NT_PRSTATUS) to get registers.
+	Unlike PTRACE_GETREGS, this new method detects 32-bit processes
+	reliably, without checking segment register values which
+	are undocumented and aren't part of any sort of API.
+	While at it, also fixed x32 detection to use __X32_SYSCALL_BIT,
+	as it should have been from the beginning.
+
+	* defs.h: Declare os_release and KERNEL_VERSION.
+	* strace.c: Make os_release non-static, remove KERNEL_VERSION define.
+	* syscall.c: New struct i386_user_regs_struct,
+	static union x86_regs_union and struct iovec x86_io.
+	(printcall): Use i386_regs or x86_64_regs depending on x86_io.iov_len.
+	(get_regs): On x86 and kernels 2.6.30+, use PTRACE_GETREGSET,
+	on earlier kernels fall back to old method.
+	(get_scno): [X86] Determine personality based on regset size
+	on scno & __X32_SYSCALL_BIT.
+	(syscall_fixup_on_sysenter): Use i386_regs or x86_64_regs depending
+	on x86_io.iov_len.
+	(get_syscall_args): Likewise.
+	(get_error): Likewise.
+
+2013-02-13  Denys Vlasenko  <vda.linux@googlemail.com>
+
+	Rename some register statics by prefixing their names with arch.
+	This makes it easier to grep for them.
+
+	* syscall.c: Rename variables:
+	r0 -> bfin_r0,alpha_r0,sh_r0.
+	a3 -> mips_a3.
+	r2 -> mips_r2.
+	(get_scno): Use new variable names.
+	(get_syscall_result): Likewise.
+	(get_error): Likewise.
+
+	Factor out code to check addr, fetch and print siginfo.
+	* defs.h: Declare new function printsiginfo_at(tcp, addr).
+	* process.c (sys_waitid): Use printsiginfo_at().
+	(sys_ptrace): Likewise.
+	* signal.c: (printsiginfo_at): Implement this new function.
+	(sys_rt_sigsuspend): Use printsiginfo_at().
+	(sys_rt_sigtimedwait): Likewise.
+
+	Decode struct iov in PTRACE_GET/SETREGSET.
+	* process.c (sys_ptrace): Decode struct iov in PTRACE_GET/SETREGSET.
+
+2013-02-12  Denys Vlasenko  <vda.linux@googlemail.com>
+
+	Unify representations of struct user fields for subarchitectures.
+	* process.c: Unify MIPS and LINUX_MIPSN32, and SH and SH64 parts of
+	struct_user_offsets[].
+
+	Add start_code and start_data members of struct user.
+	* process.c: Add start_code and start_data members of struct user
+	in struct_user_offsets[], where appropriate.
+
+	Remove hacks for old kernels for architectures which require new kernels
+	* util.c (change_syscall): For MICROBLAZE, replace code
+	with dummy "return 0" and a comment explaining why that is ok
+	for this architecture.
+
+	Remove stray syscall result reading code on syscall entry for s390.
+	This is a leftover from sysenter/sysexit split.
+	I can't run-test it, but from code inspection it seems to be correct.
+
+	* syscall.c (get_scno): Remove stray syscall result reading for s390[x].
+
+	Deobfuscate definitions of struct user offsets.
+	The maze of ifdefs/ifndefs was scaring new contributors.
+	Format it so that every arch has its own ifdef block.
+
+	* process.c: Deobfuscate definitions of struct user offsets.
+
+	Remove hacks for old kernels for architectures which require new kernels
+	* defs.h: Do not define TCB_WAITEXECVE for AARCH64.
+	* util.c (change_syscall): For AARCH64 and X32, replace code
+	with dummy "return 0" and a comment explaining why that is ok
+	for these architectures.
+
+	Remove old kernel hacks for architectures which require new kernels.
+	* defs.h: Do not define TCB_WAITEXECVE for AVR32, BFIN and TILE.
+	* util.c (change_syscall): For AVR32, BFIN and TILE, replace code
+	with dummy "return 0" and a comment explaining why that is ok
+	for these architectures.
+
+	Handle recv[m]msg for non-native 32-bit personality syscalls.
+	* net.c (printmsghdr): If current_wordsize is 4 and long is wider than it,
+	read 32-bit struct msghdr and expand it into a native one before using it.
+	(printmmsghdr): Likewise for struct mmsghdr.
+
+	Fix is_negated_errno() check for X32.
+	X32's return value is 64-bit. We were truncating it to 32-bit long
+	before checking for -errno.
+
+	* syscall.c (is_negated_errno_x32): New function.
+	(get_error): Use is_negated_errno_x32 for X32 architecture.
+
+	Remove unused / ambiguously used defines.
+	We sometimes use LINUXSPARC and sometimes (more often)
+	use "defined(SPARC) || defined(SPARC64)". Better to use
+	one construct consistently.
+	LINUX_MIPS64 is altogether unused.
+
+	* defs.h: Remove LINUXSPARC and LINUX_MIPS64 defines.
+	Move PTRACE_xxx compat defines up, before arch-specific
+	machinery. Use defined(SPARC) || defined(SPARC64)
+	instead of LINUXSPARC.
+	* file.c: Use defined(SPARC) || defined(SPARC64) instead of LINUXSPARC.
+	* signal.c: Likewise.
+
+2013-02-11  Denys Vlasenko  <vda.linux@googlemail.com>
+
+	Preparatory patch for "new" x86 personality detection.
+	* syscall.c: Move PT_FLAGS_COMPAT define to its only user, get_scno().
+	Rename arm_regs_union's fields to names less likely to collide with
+	system defines.
+	(get_regs): Use sizeof(arm_regs_union) instead of sizeof(aarch64_regs).
+	This should be the same, but htis way it's cleaner.
+	Remove __X32_SYSCALL_MASK and use __X32_SYSCALL_BIT instead.
+	Explain 64-bit check in X32 build better.
+
+2013-02-09  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Fix sigaltstack decoder.
+	strace used to hang when decoding sigaltstack called with invalid
+	stack_t pointers because of mishandling umove() return code.
+
+	* signal.c (print_stack_t): Handle unfetchable stack_t properly.
+	Change return type to void.
+	(sys_sigaltstack): Update print_stack_t() usage.
+
+	Reported-by: kawillia@ucalgary.ca
+
+2013-02-09  Mike Frysinger  <vapier@gentoo.org>
+
+	Fix decoding of sysctl() when oldval fields are NULL.
+	If you call glibc's syscall wrapper like so:
+		static int name[] = { CTL_NET, NET_IPV4, NET_IPV4_LOCAL_PORT_RANGE };
+		int buffer[2] = { 32768, 61000 };
+		size_t size = sizeof(buffer);
+		sysctl(name, 3, 0, 0, buffer, size);
+	(note that oldval/oldlenp are NULL).
+
+	The current strace code complains like so:
+	_sysctl({{CTL_NET, NET_IPV4, NET_IPV4_LOCAL_PORT_RANGE, 38}, 3, process_vm_readv: Bad address
+	(nil), 0, 0x7fffe23c3960, 8}) = -1 EACCES (Permission denied)
+
+	Since passing NULL for the old values is valid, handle that explicitly.
+	This also simplifies the code a bit by splitting up the handling of the
+	new and old args so that we only handle the new args once.
+
+	Now the output looks like:
+	_sysctl({{CTL_NET, NET_IPV4, NET_IPV4_LOCAL_PORT_RANGE, 38}, 3, NULL, 0, 0x7fff8c0c91b0, 8) = -1 EACCES (Permission denied)
+
+	* system.c (sys_sysctl): Check if info.oldval is NULL first.  Move the
+	processing of oldlen/info.newval/info.newlen out so they always get
+	executed.  Fix the format strings so we use %lu for unsigned long rather
+	than a mix of %ld and %lu.
+
+2013-02-08  Denys Vlasenko  <vda.linux@googlemail.com>
+
+	If we are on a glibc system, assume it's at least glibc 2.1.
+	It is not likely anyone uses glibc older that that:
+	glibc 2.1.1 was released in 1999
+
+	* net.c: Remove test for glibc >= 2.1.
+	* signal.c: Remove code which is compiled only for glibc < 2.1.
+	* util.c: Likewise.
+
+	S390: stop using needlessly static long pc variable.
+	* syscall.c: Remove "static long pc" variable.
+	(get_scno): Use an automatic long variable instead of a static.
+
+	Dying suddenly with abort() is rude, avoid if possible.
+	* file.c (sys_utime): Don't call abort() if wordsize is strange.
+	Instead, warn user about it.
+	* desc.c (printflock): Use the same message string as in sys_utime.
+
+	Remove vestigial hacks around non-Linux struct sigactions.
+	* signal.c: Stop using __sighandler_t glibc'ism. Remove SA_HANDLER macro.
+	Explain why we can't use "sa_handler" as a field name.
+	(sys_sigaction): Use __sa_handler instead of SA_HANDLER macro.
+	(sys_rt_sigaction): Likewise.
+
+	Optimize AArch64 handling of 32-bit personality.
+	By putting aarch64_regs and arm_regs into a union,
+	register copying is eliminated.
+	No need to check and change personality on syscall exit.
+
+	* defs.h: Remove unused NUM_ARM_REGS define. Fix indentation.
+	* syscall.c: Put aarch64_regs and arm_regs into a union.
+	(update_personality): Shorten bitness message.
+	(printcall): Add commented-out PC printing.
+	(get_regs): Remove now-unnecessary 64-to-32 bits register copying.
+	(get_syscall_result): Drop personality changing code.
+
+2013-02-07  Denys Vlasenko  <vda.linux@googlemail.com>
+
+	Rename some register statics by prefixing their names with arch.
+	This makes it easier to grep for them.
+
+	* syscall.c: Make IA64's r8, r10 global variables static.
+	Rename variables:
+	r8,r10 -> ia64_r8,ia64_r10.
+	d0 -> m68k_d0.
+	a3 -> alpha_a3.
+	r28 -> hppa_r28.
+	r9 -> sh64_r9.
+	r10 -> cris_r10.
+	r3 -> microblaze_r3.
+	(get_scno): Use new variable names.
+	(syscall_fixup_on_sysenter): Likewise.
+	(get_syscall_result): Likewise.
+	(get_error): Likewise.
+
+2013-02-06  Denys Vlasenko  <vda.linux@googlemail.com>
+
+	Rename ARM's regs structure to arm_regs.
+	Compile-tested.
+
+	* defs.h: Rename regs structure to arm_regs.
+	* syscall.c: Likewise.
+	(printcall): Use new name instead of old one.
+	(get_regs): Likewise.
+	(get_scno): Likewise.
+	(get_syscall_args): Likewise.
+	(get_error): Likewise.
+	* signal.c (sys_sigreturn): Likewise.
+
+	Stop needlessly using static variable.
+	* syscall.c: Remove static long psr.
+	(get_scno): Use local psr variable.
+	(get_syscall_result): Likewise.
+
+	Shortcut tests for fork/exec syscalls.
+	This change should speed up strace by a tiny bit.
+
+	More importantly, it makes it much more clear that
+	fork and exec fixups are not necessary for any reasonably
+	recent kernels. IOW: syscall_fixup_for_fork_exec() and its callees
+	are all dead code.
+
+	* defs.h: Declare new need_fork_exec_workarounds flag variable.
+	* strace.c: Define need_fork_exec_workarounds flag variable.
+	(test_ptrace_setoptions_followfork): Return 0/1 as success/fail indicator.
+	(test_ptrace_setoptions_for_all): Likewise.
+	(init): Set need_fork_exec_workarounds to TRUE if needed.
+	* syscall.c: Rename internal_syscall() to syscall_fixup_for_fork_exec().
+	(trace_syscall_entering): Call syscall_fixup_for_fork_exec() only if
+	need_fork_exec_workarounds == TRUE.
+	(trace_syscall_exiting): Likewise.
+
+2013-02-05  Ben Noordhuis  <info@bnoordhuis.nl>
+
+	Improve perf_event_open argument decoding.
+	* configure.ac (AC_CHECK_HEADERS): Add linux/perf_event.h.
+	* desc.c [HAVE_LINUX_PERF_EVENT_H]: Include <linux/perf_event.h>.
+	(perf_event_open_flags): New xlat structure.
+	(sys_perf_event_open): New function.
+	* linux/dummy.h (sys_perf_event_open): Remove.
+	* linux/syscall.h (sys_perf_event_open): New prototype.
+
+2013-02-05  Chris Metcalf  <cmetcalf@tilera.com>
+
+	tile: fix merge skew with new get_regs architecture.
+	* defs.h [TILE]: Declare clear_regs(), get_regs() and get_regs_error.
+	* syscall.c (get_regs) [TILE]: Fix merge skew.
+	(printcall) [TILE]: fix a compiler warning about pt_reg_t in
+	a printf expression.
+
+2013-02-05  Bernhard Reutner-Fischer  <rep.dot.nop@gmail.com>
+
+	mount: decode MS_NOSEC.
+	* system.c (MS_NOSEC): Define.
+	(mount_flags): Add MS_NOSEC.
+
+	mmap: decode MAP_UNINITIALIZED.
+	* mem.c (mmap_flags): Add MAP_UNINITIALIZED.
+
+2013-02-05  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Print 64-bit instruction pointers zero padded.
+	* syscall.c (printcall): Print 64-bit instruction pointers zero padded.
+
+	x86_64: fix compilation warning introduced in previous commit.
+	* syscall.c (printcall): Cast x86_64_regs.rip to the type being printed.
+
+2013-02-05  Denys Vlasenko  <vda.linux@googlemail.com>
+
+	Simple bug fix for x86_86.
+	* syscall.c (printcall): Use x86_64_regs.rip, not x86_64_regs.ip.
+
+2013-02-05  Chris Metcalf  <cmetcalf@tilera.com>
+
+	Add tilegx support to strace.
+	tilegx support has been in the kernel since 3.0.
+	In addition, fix some issues with the tilepro support already
+	present in strace, primarily the decision to use the
+	<asm/unistd.h> numbering space for system calls.
+
+	* defs.h [TILE]: Include <asm/ptrace.h> and provide an extern
+	struct pt_regs tile_regs for efficiency.  Provide compat 32-bit
+	personality via SUPPORTED_PERSONALITIES, PERSONALITY0_WORDSIZE,
+	PERSONALITY1_WORDSIZE, and DEFAULT_PERSONALITY.
+	* linux/tile/errnoent1.h: New file, includes linux/errnoent.h.
+	* linux/tile/ioctlent1.h: New file, includes linux/ioctlent.h.
+	* linux/tile/signalent1.h: New file, includes linux/signalent.h.
+	* linux/tile/syscallent.h: Update with new asm-generic syscalls.
+	The version previously committed was the from the first tile patch
+	to LKML, which subsequently was changed to use <asm-generic/unistd.h>.
+	* linux/tile/syscallent1.h: Copy from linux/tile/syscallent.h.
+	* mem.c (addtileflags) [TILE]: use %ld properly for a "long" variable.
+	* process.c [TILE]: Choose clone arguments correctly and properly
+	suppress all "struct user" related offsets in user_struct_offsets.
+	* signal.c [TILE]: Use tile_regs not upeek.
+	* syscall.c (update_personality) [TILE]: Print mode.
+	(PT_FLAGS_COMPAT) [TILE]: Provide if not in system headers.
+	(tile_regs) [TILE]: Define 'struct pt_regs' variable to hold state.
+	(get_regs) [TILE]: use PTRACE_GETREGS to set tile_regs rather than using upeek.
+	(get_scno) [TILE]: Set personality.
+	(get_syscall_args) [TILE]: Use tile_regs.
+	(get_syscall_result) [TILE]: Update tile_regs.
+	(get_error) [TILE]: Use tile_regs.
+	(printcall) [TILE]: Print pc.
+	(arg0_offset, arg1_offset, restore_arg0, restore_arg1) [TILE]:
+	Properly handle tile call semantics and support tilegx.
+
+2013-02-05  Denys Vlasenko  <vda.linux@googlemail.com>
+
+	Small optimization for SPARC[64] get_scno.
+	* syscall.c: Remove static unsigned long trap veriable.
+	(get_scno): Use local trap variable.
+
+	Do not compile getrval2() if not needed.
+	* syscall.c (getrval2): Do not compile it for architetures where
+	it isn't ever used.
+
+	Optimize out PTRACE_PEEKUSER with -i.
+	strace -i was fetching PC with a separate PEEKUSER
+	despite having GETREGS data:
+
+	ptrace(PTRACE_GETREGS, 22331, 0, 0x8087f00) = 0
+	ptrace(PTRACE_PEEKUSER, 22331, 4*EIP, [0x80dd7b7]) = 0
+	write(3, "[080dd7b7] ioctl(0, SNDCTL_TMR_T"..., 82) = 82
+	ptrace(PTRACE_SYSCALL, 22331, 0, SIG_0) = 0
+
+	Now it does this:
+
+	ptrace(PTRACE_GETREGS, 22549, 0, 0x8087ea0) = 0
+	write(3, "[080dd7b7] ioctl(0, SNDCTL_TMR_T"..., 82) = 82
+	ptrace(PTRACE_SYSCALL, 22549, 0, SIG_0) = 0
+
+	Analogous improvement in sys_sigreturn() is also implemented.
+
+	* defs.h: Declare extern struct pt_regs regs for SPARC[64] and ARM.
+	Declare clear_regs(), get_regs() and get_regs_error flag variable.
+	* strace.c (trace): Call get_regs(pid) as soon as we know the tcb
+	and that it is stopped.
+	* syscall.c (get_regs): New function. Used to fetch registers early,
+	just after tracee has stopped.
+	(printcall): Move it here from util.c. Use global regs.REG data,
+	if available on the arch, instead of re-fetching it.
+	(get_scno): Use global regs.REG data.
+	(get_syscall_result): Likewise.
+	* signal.c (sys_sigreturn): Likewise.
+	* util.c (printcall): Moved to syscall.c.
+
+2012-12-15  Stanislav Brabec  <sbrabec@suse.cz>
+
+	Fix sys_semtimedop decoding on s390x.
+	The s390 and s390x pass semtimedop arguments differently from other
+	architectures.  sys_semtimedop parser was fixed for s390 by commit
+	v4.6-177-ge0f5fd8, and s390x requires the same fix.
+
+	* linux/ipc.c (sys_semtimedop): Fix timespec decoding on s390x.
+
+2012-12-08  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Fix *xattr decoding.
+	* file.c (print_xattr_val): Do not attempt to decode a zero sized array.
+	Fixes RH#885233.
+
+2012-12-08  Stanislav Brabec  <sbrabec@suse.cz>
+
+	sys_semtimedop: fix timeval argument index in wrapped call.
+	Looking at the implementation of wrapped semtimedop() call inside glibc
+	and kernel, I started to believe that timeval should be located in
+	tcp->u_arg[4] and not tcp->u_arg[5].  Fortunately, tcp->u_arg[5] now
+	works correctly as well, due to side effects of decode_ipc_subcall().
+
+	declaration in header:
+	int semtimedop(semid, *sops, nsops, *timeout);
+	                 0      1      2        3
+
+	sys_ipc arguments in glibc on all patforms except s390*:
+	semid, (int) nsops, 0, CHECK_N (sops, nsops), timeout
+	  0            1    2            3                4
+	We have to use indexes: 0 3 1 4
+
+	sys_ipc arguments on s390*:
+	semid, (int) nsops, timeout, sops
+	  0            1       2       3
+	We have to use indexes: 0 3 1 2
+
+	* ipc.c (sys_semtimedop) [!S390]: Fix timeval argument index in
+	indirect_ipccall case.
+
+2012-12-06  John Spencer  <maillist-strace@barfooze.de>
+
+	Fix glibc version checks.
+	* util.c: Check if __GLIBC__ is defined before using it.
+	* signal.c: Likewise.  Fix __GLIBC_MINOR__ checks.
+
+2012-11-29  James Hogan  <james.hogan@imgtec.com>
+
+	Add state argument to change_syscall and fix SPARC.
+	Add a state argument to change_syscall() so that SPARC can modify that
+	instead of read-modify-writing the whole register set.  This function is
+	always called within an arg_setup/arg_finish_change sequence which on
+	certain architectures like SPARC will also be doing a read-modify-write.
+	This prevents the second write (from arg_finish_change) from undoing the
+	effects of the change_syscall call.
+
+	* util.c (change_syscall): Move below definition of arg_setup_state.
+	Add state argument.
+	[SPARC || SPARC64] Change to set state->u_regs[U_REG_G1] rather than
+	read-modify-writing it with PTRACE_GETREGS and PTRACE_SETREGS.
+	(setbpt, clearbpt): Pass state argument to change_syscall.
+
+2012-11-12  Steve McIntyre  <steve.mcintyre@linaro.org>
+
+	Add support for tracing 32-bit ARM EABI binaries on AArch64.
+	* defs.h [AARCH64]: Copy in the definition of arm_pt_regs and the
+	accessor macros, so it's possible to build on AArch64 without
+	ARM system headers.  Set SUPPORTED_PERSONALITIES to 2.
+	Define PERSONALITY0_WORDSIZE and PERSONALITY1_WORDSIZE.
+	Set DEFAULT_PERSONALITY to 1.
+	* linux/aarch64/errnoent1.h: New file, includes generic errnoent.h.
+	* linux/aarch64/ioctlent1.h: New file, includes generic ioctlent.h.
+	* linux/aarch64/signalent1.h: New file, includes generic signalent.h.
+	* linux/aarch64/syscallent1.h: Rename from linux/aarch64/syscallent.h.
+	* linux/aarch64/syscallent.h: New file, includes arm/syscallent.h.
+	* syscall.c [AARCH64]: Define aarch64_regs.
+	(update_personality) [AARCH64]: Add debug output.
+	(get_scno) [AARCH64]: Determine if we're in ARM or AArch64 mode by
+	checking the size of the returned uio structure from PTRACE_GETREGSET
+	and interpret the structure accordingly.
+	(get_syscall_result): Likewise.
+	(get_syscall_args): Merge the AArch64 and ARM sections so that on
+	AArch64 we can fall back to supporting the ARM personality.
+	(get_error): Likewise.
+
+2012-11-12  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Move asm-generic ioctl definitions to linux/ioctlent.h.in.
+	* linux/ioctlent.h.in: Add asm-generic ioctl entries from all
+	linux/*/ioctlent.h.in files.
+	* linux/bfin/ioctlent.h.in: Remove asm-generic ioctl entries.
+	* linux/i386/ioctlent.h.in: Likewise.
+	* linux/powerpc/ioctlent.h.in: Likewise.
+	* linux/s390/ioctlent.h.in: Likewise.
+	* linux/sparc/ioctlent.h.in: Likewise.
+
+2012-10-27  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Filter out redundant "*32" ioctl entries.
+	* linux/ioctlent-filter.awk: New file.
+	* Makefile.am: Use it.
+	* linux/ioctlent.h.in: Removed redundant "*32" entries.
+
+2012-10-26  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Enhance quotactl decoding.
+	* quota.c (sys_quotactl): Decode 2nd syscall argument using printpath.
+	* pathtrace.c (pathtrace_match): Add quotactl support.
+	* linux/*/syscallent.h: Add TF flag to quotactl entry.
+
+2012-10-26  Steve McIntyre  <steve.mcintyre@linaro.org>
+
+	Add AArch64 support to strace.
+	AArch64 has been included in linux from 3.7 onwards.
+	Add support for AArch64 in strace, tested on linux in a simulator.
+
+	* configure.ac: Support AArch64.
+	* defs.h [AARCH64]: Include <sys/ptrace.h>, define TCB_WAITEXECVE.
+	* ipc.c (indirect_ipccall): Support AArch64.
+	* process.c (struct_user_offsets): Likewise.
+	* syscall.c [AARCH64]: Include <asm/ptrace.h>,  <sys/uio.h>, and
+	<elf.h>.  Define struct user_pt_regs regs.
+	(get_scno, get_syscall_result): Support AArch64 using PTRACE_GETREGSET.
+	(get_syscall_args, get_error): Support AArch64.
+	* linux/aarch64/ioctlent.h.in: New file.
+	* linux/aarch64/syscallent.h: New file, based on linux 3.7 version of
+	asm-generic/unistd.h.
+
+	linux: add new errno values for EPROBE_DEFER and EOPENSTALE.
+	New definitions match updates in Linux 3.4 and Linux 3.5 respectively.
+
+	* linux/errnoent.h (ERRNO_517): Change to EPROBE_DEFER.
+	(ERRNO_518): Change to EOPENSTALE.
+
+2012-10-26  Namhyung Kim  <namhyung.kim@lge.com>
+
+	Add -e trace=memory option.
+	Add a new 'memory' category for tracing memory mapping related syscalls.
+
+	Affected syscalls are: break, brk, get_mempolicy, madvise, mbind,
+	migrate_pages, mincore, mlock, mlockall, mmap, move_pages, mprotect,
+	mremap, msync, munlock, munlockall, munmap, remap_file_pages, and
+	set_mempolicy.
+
+	* defs.h (TRACE_MEMORY): New macro.
+	* syscall.c (lookup_class): Handle trace=memory option.
+	* strace.1: Document it.
+	* linux/alpha/syscallent.h: Add TM flag to memory mapping related syscalls.
+	* linux/arm/syscallent.h: Likewise.
+	* linux/avr32/syscallent.h: Likewise.
+	* linux/bfin/syscallent.h: Likewise.
+	* linux/hppa/syscallent.h: Likewise.
+	* linux/i386/syscallent.h: Likewise.
+	* linux/ia64/syscallent.h: Likewise.
+	* linux/m68k/syscallent.h: Likewise.
+	* linux/microblaze/syscallent.h: Likewise.
+	* linux/mips/syscallent.h: Likewise.
+	* linux/powerpc/syscallent.h: Likewise.
+	* linux/s390/syscallent.h: Likewise.
+	* linux/s390x/syscallent.h: Likewise.
+	* linux/sh/syscallent.h: Likewise.
+	* linux/sh64/syscallent.h: Likewise.
+	* linux/sparc/syscallent.h: Likewise.
+	* linux/tile/syscallent.h: Likewise.
+	* linux/x32/syscallent.h: Likewise.
+	* linux/x86_64/syscallent.h: Likewise.
+
+2012-09-28  Mike Frysinger  <vapier@gentoo.org>
+
+	x32: add 64bit annotation too.
+	Since someone can invoke these entry points directly with syscall(),
+	at least decode their name and show that they're 64bit versions rather
+	than just showing syscall_###.
+
+	* linux/x32/syscallent.h: Sync all missing entries below 312 with x86_64.
+
+2012-09-28  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Ignore fflush(3) return value.
+	strace used to honor fflush(3) return value in trace_syscall_entering
+	which resulted to tracees not being PTRACE_SYSCALL'ed which in turn
+	caused nasty hangups like this one:
+
+	$ strace -o'|:' pwd
+	|:: Broken pipe
+
+	There is little strace can do in case of fflush(3) returning EOF, and
+	hangup is certainly not the best solution for the issue.
+
+	* syscall.c (trace_syscall_entering): Ignore fflush(3) return value.
+
+	Use perror_msg instead of perror.
+	* signal.c (sys_sigreturn): Use perror_msg instead of perror.
+	* strace.c (tprintf, tprints, detach, startup_attach): Likewise.
+	* syscall.c (get_scno): Likewise.
+	* util.c (umoven, umovestr): Likewise.
+
+2012-09-27  Denys Vlasenko  <vda.linux@googlemail.com>
+
+	process_vm_readv may return ESRCH if tracee was killed, don't complain.
+	Discovered by running test/sigkill_rain under strace.
+
+	* util.c (umoven): Do not emit error message if process_vm_readv
+	fails with ESRCH.
+	(umovestr): LikeWise.
+
+2012-09-13  Denys Vlasenko  <vda.linux@googlemail.com>
+
+	Trivial fixes, no code changes.
+	* strace.c: Fix compiler warning message about tgkill - we don't use it.
+	Fix indentation of preprocessor directives.
+	(trace): Remove outdated comment.
+
+2012-08-24  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Always check setreuid return code.
+	* strace.c (startup_child): Check setreuid return code.
+
+2012-08-24  Mike Frysinger  <vapier@gentoo.org>
+
+	x32: update {g,s}etsockopt syscall numbers.
+	Starting with linux 3.6 (and backported to earlier kernels), these two
+	syscalls have changed numbers (moving from native to compat entry points).
+	Update the strace syscall list accordingly.
+
+	* linux/x32/syscallent.h: Move setsockopt from 54 to 541, and move
+	getsockopt from 55 to 542.
+
+2012-08-16  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Decode file type returned by getdents system call.
+	* file.c (sys_getdents): Decode d_type in unabbreviated mode.
+
+2012-07-12  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Close pipe and wait for the pipe process termination.
+	In case of normal strace termination, when the trace output is
+	redirected to a file or a pipe, close it and wait for the pipe
+	process termination.
+
+	* strace.c (main): Before normal exit, close shared_log when it
+	differs from stderr, and wait for popen_pid termination.
+
+2012-07-10  Denys Vlasenko  <vda.linux@googlemail.com>
+
+	Enable usage of PTRACE_SEIZE.
+	* defs.h: Define USE_SEIZE to 1. Remove PTRACE_SEIZE_DEVEL
+	and PTRACE_EVENT_STOP1.
+	* strace.c (ptrace_attach_or_seize): Replace PTRACE_SEIZE_DEVEL
+	with 0.
+	(trace): Do not check for PTRACE_EVENT_STOP1.
+
+2012-06-05  Mike Frysinger  <vapier@gentoo.org>
+
+	x32: update syscall table.
+	This syncs with the syscall table as it is in linux 3.4.
+
+	* linux/x32/syscallent.h (59): Fix comment typo.
+	(78): Add missing getdents entry.
+	(174): Delete create_module entry (not in the kernel).
+	(181, 182, 183, 184, 185): Add missing entries.
+	(524, 536, 539, 540): Fix spacing.
+
+2012-05-18  Denys Vlasenko  <vda.linux@googlemail.com>
+
+	Merge adjacent printing operations in a few places.
+	* file.c (sys_readahead): Merge tprints() with following printllval().
+	(sys_ftruncate64): Likewise.
+	(sys_fadvise64): Likewise.
+	(sys_fadvise64_64): Likewise.
+	(sys_fallocate): Merge tprints() with following tprintf().
+
+2012-05-16  Denys Vlasenko  <vda.linux@googlemail.com>
+
+	Use %d printf format instead of %i everywhere.
+	* loop.c (loop_ioctl): Use %d instead of %i.
+	* mtd.c (mtd_ioctl): Likewise.
+
+	Fix a few goofs in sys_sysctl()
+	* system.c (sys_sysctl): Cast pointer to long, not size_t,
+	when we intend to use it as an address. Set oldlen to 0 prior
+	to reading into it - we want to have deterministic result
+	if read fails.
+
+	Stop using non-standard %Zu and %Zd formats for size_t printing.
+	The documented formats are %zu and %zd, but since our (normally disabled)
+	"fast" printf code doesn't support those too, I convert them to %lu and %ld.
+
+	* bjm.c (sys_query_module): Convert %Zd usages to %lu.
+	* system.c (sys_sysctl): Likewise.
+
+2012-05-15  Denys Vlasenko  <vda.linux@googlemail.com>
+
+	Remove outdated comment about suspending new tracees.
+	We no longer track parent/child relationship between tracees.
+	Therefore, we no longer suspend new tracee until parent is seen
+	exiting form [v]fork/clone. The comment is obsolete.
+
+	* strace.c (trace): Remove outdated comment.
+
+	Make sure current_wordsize and PERSONALITY0_WORDSIZE are ints in all arches
+	On 64bit systems with a single personality, they used to be sizeof(long),
+	which has type "long", not "int", which complicates printf formats.
+
+	* defs.h: Ensure that PERSONALITY0_WORDSIZE;s tyoe is int.
+	This in turn makes sure current_wordsize is also an int.
+	* count.c (call_summary): Revert the change which added cast to int.
+
+2012-05-15  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Add configure --enable-gcc-Werror option.
+	* configure.ac: New option --enable-gcc-Werror.
+
+	Make x86-64 build free of artificial warnings.
+	* signal.c (sys_sigreturn): Do not issue "no sys_sigreturn" warning
+	on X86_64.
+
+2012-05-14  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Fix kernel release string parsing.
+	* strace.c (get_os_release): Handle "X.Y-something" utsname.release
+	strings properly.
+
+	Reported-by: Bryce Gibson <bryce@gibson-consulting.com.au>
+
+2012-05-14  Denys Vlasenko  <vda.linux@googlemail.com>
+
+	On clearing "breakpopint", restore syscall number too.
+	This fixes Fedora bug 659382.
+	Low risk: this code is not supposed to be used on any non-acient kernel.
+
+	* util.c (clearbpt): Restore syscall number too.
+
+2012-05-05  Mike Frysinger  <vapier@gentoo.org>
+
+	util: fix building when glibc has a stub process_vm_readv.
+	If you have a newer glibc which provides process_vm_readv, but it is built
+	against older kernel headers which lack __NR_process_vm_readv, the library
+	will contain a stub implementation that just returns ENOSYS.  Autoconf
+	checks for this case explicitly and will declare it as unavailable.  So we
+	end up in a case where the headers provide the prototype, but autoconf has
+	not defined HAVE_PROCESS_VM_READV, so we hit the same build failure again:
+
+	util.c:738:16: error: static declaration of 'process_vm_readv' follows non-static declaration
+	/usr/include/bits/uio.h:58:16: note: previous declaration of 'process_vm_readv' was here
+
+	So rename our local function to something unique, and add a define so the
+	callers all hit the right place.
+
+	* util.c (strace_process_vm_readv): Rename from process_vm_readv.
+	(process_vm_readv): Define to strace_process_vm_readv.
+
+2012-05-03  Dmitry V. Levin  <ldv@altlinux.org>
+
+	doc: describe documentation policy.
+	* README-hacking: Describe documentation policy.
+
 2012-05-02  Dmitry V. Levin  <ldv@altlinux.org>
 
+	maint: post-release administrivia.
+	* NEWS: Add header line for next release.
+
 	Prepare for 4.7 release.
 	* configure.ac: Version 4.7.
 	* debian/changelog: 4.7-1.
diff --git a/NEWS b/NEWS
index 1f3de08..1ec49f7 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,58 @@
-Noteworthy changes in release 4.7
-=================================
+Noteworthy changes in release 4.8 (2013-06-03)
+==============================================
+
+* Changes in behavior
+  * In case of normal strace termination, when the trace output is
+    redirected to a pipe, strace now closes it and waits for the pipe
+    process termination before exit.
+
+* Improvements
+  * Implemented tracing using PTRACE_SEIZE API (when available).
+  * Implemented more reliable PTRACE_GETREGSET-based process personality
+    detection on x86-64 and x32 (when available).
+  * Added -e trace=memory option for tracing memory mapping related syscalls.
+  * Documented -b option.
+  * Allowed exit status messages to be suppressed by giving -q option twice.
+  * Added AArch64 architecture support
+    (addresses Debian bug #693074 and Fedora bug #969858).
+  * Added support for OpenRISC 1000, Meta, and Xtensa architectures.
+  * Added tilegx personality support for Tile.
+  * Enhanced support of NOMMU architectures.
+  * Enhanced decoding of getdents, mmap, perf_event_open, ptrace, and
+    quotactl syscalls.
+  * Added new syscall entries to match Linux 3.9.
+  * Regenerated the list of common ioctl names from Linux 3.9.
+  * Updated the list of errno constants.
+  * Updated lists of AF_*, MADV_*, MAP_*, MSG_*, MS_*, PF_*, PR_*,
+    PTRACE_O_*, and TCP_* constants.
+  * Implemented decoding of UBI ioctls.
+  * Removed redundant "*32" ioctl names.
+
+* Bug fixes
+  * Fixed ERESTARTNOINTR leaking to userspace on ancient kernels
+    (addresses Fedora bug #659382).
+  * Fixed kernel release string parsing
+    (addresses Debian bug #702309).
+  * Fixed decoding of *xattr syscalls
+    (addresses Fedora bug #885233).
+  * Fixed handling of files with 64-bit inode numbers by 32-bit strace
+    (addresses Fedora bug #912790).
+  * Fixed tracing forks on SPARC.
+  * Fixed decoding of fadvise64, fallocate, ftruncate64, io_submit, pread,
+    preadv, pwrite, pwritev, readahead, sigaltstack, sync_file_range, sysctl,
+    and truncate64 syscalls.
+  * Fixed categories of multiple syscalls on most of supported architectures.
+  * Fixed decoding of non-native 32-bit personality recv[m]msg syscalls.
+  * Fixed decoding of multiple 32-bit personality syscalls on x32.
+  * Fixed decoding of long long syscall arguments on ARM, MIPS/o32, PowerPC,
+    S390x, and Tile architectures.
+  * Fixed semtimedop decoding on S390x.
+  * Fixed sram_alloc decoding on Blackfin.
+  * Fixed build when process_vm_readv is a stab.
+  * Fixed build with older versions of libaio.h.
+
+Noteworthy changes in release 4.7 (2012-05-02)
+==============================================
 
 * Changes in behavior
   * strace no longer suspends waitpid until there is a child
@@ -74,8 +127,8 @@
   * Linux kernel >= 2.6.18 is recommended.  Older versions might still
     work but they haven't been thoroughly tested with this release.
 
-Noteworthy changes in release 4.6
-=================================
+Noteworthy changes in release 4.6 (2011-03-15)
+==============================================
 
 * Changes in behavior
   * Print diagnostic information about changes in personality mode to
@@ -125,8 +178,8 @@
   * Fixed misleading italics in the manual page.
     (Addresses Debian bug #589323).
 
-Noteworthy changes in release 4.5.20
-====================================
+Noteworthy changes in release 4.5.20 (2010-04-13)
+=================================================
 
 * Improvements
   * Implemented decoding of new linux syscalls: inotify_init1, recvmmsg.
@@ -160,8 +213,8 @@
     (Addresses Debian bug #513014)
   * Corrected handling of killed threads.
 
-Noteworthy changes in release 4.5.19
-====================================
+Noteworthy changes in release 4.5.19 (2009-10-21)
+=================================================
 
 * Changes in behavior
   * When command exits, strace now exits with the same exit status.
diff --git a/README b/README
index 244a5c3..4ef0834 100644
--- a/README
+++ b/README
@@ -1,7 +1,7 @@
 This is strace, a system call tracer for Linux.
 
 strace is released under a Berkeley-style license at the request
-of Paul Kranenburg; see the file COPYRIGHT for details.
+of Paul Kranenburg; see the file COPYING for details.
 
 See the file CREDITS for a list of authors and other contributors.
 
diff --git a/bjm.c b/bjm.c
index 6ae3758..cd7dc13 100644
--- a/bjm.c
+++ b/bjm.c
@@ -115,7 +115,7 @@
 				printflags(modflags, mi.flags, "MOD_???");
 				tprintf(", usecount=%lu}, ", mi.usecount);
 			}
-			tprintf("%Zu", ret);
+			tprintf("%lu", (unsigned long)ret);
 		} else if ((tcp->u_arg[1]==QM_MODULES) ||
 			   (tcp->u_arg[1]==QM_DEPS) ||
 			   (tcp->u_arg[1]==QM_REFS)) {
@@ -127,11 +127,11 @@
 
 				if (!data) {
 					fprintf(stderr, "out of memory\n");
-					tprintf(" /* %Zu entries */ ", ret);
+					tprintf(" /* %lu entries */ ", (unsigned long)ret);
 				} else {
 					if (umoven(tcp, tcp->u_arg[2],
 						tcp->u_arg[3], data) < 0) {
-						tprintf(" /* %Zu entries */ ", ret);
+						tprintf(" /* %lu entries */ ", (unsigned long)ret);
 					} else {
 						for (idx = 0; idx < ret; idx++) {
 							tprintf("%s%s",
@@ -143,8 +143,8 @@
 					free(data);
 				}
 			} else
-				tprintf(" /* %Zu entries */ ", ret);
-			tprintf("}, %Zu", ret);
+				tprintf(" /* %lu entries */ ", (unsigned long)ret);
+			tprintf("}, %lu", (unsigned long)ret);
 		} else if (tcp->u_arg[1]==QM_SYMBOLS) {
 			tprints("{");
 			if (!abbrev(tcp)) {
@@ -154,11 +154,11 @@
 
 				if (!data) {
 					fprintf(stderr, "out of memory\n");
-					tprintf(" /* %Zu entries */ ", ret);
+					tprintf(" /* %lu entries */ ", (unsigned long)ret);
 				} else {
 					if (umoven(tcp, tcp->u_arg[2],
 						tcp->u_arg[3], data) < 0) {
-						tprintf(" /* %Zu entries */ ", ret);
+						tprintf(" /* %lu entries */ ", (unsigned long)ret);
 					} else {
 						for (idx = 0; idx < ret; idx++) {
 							tprintf("%s{name=%s, value=%lu}",
@@ -171,8 +171,8 @@
 					free(data);
 				}
 			} else
-				tprintf(" /* %Zu entries */ ", ret);
-			tprintf("}, %Zd", ret);
+				tprintf(" /* %lu entries */ ", (unsigned long)ret);
+			tprintf("}, %ld", (unsigned long)ret);
 		} else {
 			printstr(tcp, tcp->u_arg[2], tcp->u_arg[3]);
 			tprintf(", %#lx", tcp->u_arg[4]);
@@ -195,8 +195,7 @@
 sys_init_module(struct tcb *tcp)
 {
 	if (entering(tcp)) {
-		tprintf("%#lx, ", tcp->u_arg[0]);
-		tprintf("%lu, ", tcp->u_arg[1]);
+		tprintf("%#lx, %lu, ", tcp->u_arg[0], tcp->u_arg[1]);
 		printstr(tcp, tcp->u_arg[2], -1);
 	}
 	return 0;
diff --git a/block.c b/block.c
index ea571b6..374002e 100644
--- a/block.c
+++ b/block.c
@@ -188,7 +188,7 @@
 				tprintf(", %#lx", arg);
 			else
 				tprintf(", %lu", val);
-			}
+		}
 		break;
 
 #ifdef HAVE_BLKGETSIZE64
diff --git a/count.c b/count.c
index 9496b04..8395466 100644
--- a/count.c
+++ b/count.c
@@ -35,7 +35,9 @@
 
 #include "defs.h"
 
+/* Per-syscall stats structure */
 struct call_counts {
+	/* system time spent in syscall (not wall clock time) */
 	struct timeval time;
 	int calls, errors;
 };
@@ -45,10 +47,14 @@
 
 static struct timeval shortest = { 1000000, 0 };
 
+/* On entry, tv is syscall exit timestamp */
 void
 count_syscall(struct tcb *tcp, struct timeval *tv)
 {
-	if (!SCNO_IN_RANGE(tcp->scno))
+	struct call_counts *cc;
+	unsigned long scno = tcp->scno;
+
+	if (!SCNO_IN_RANGE(scno))
 		return;
 
 	if (!counts) {
@@ -56,16 +62,20 @@
 		if (!counts)
 			die_out_of_memory();
 	}
+	cc = &counts[scno];
 
-	counts[tcp->scno].calls++;
+	cc->calls++;
 	if (tcp->u_error)
-		counts[tcp->scno].errors++;
+		cc->errors++;
 
+	/* tv = wall clock time spent while in syscall */
 	tv_sub(tv, tv, &tcp->etime);
-	if (tv_cmp(tv, &tcp->dtime) > 0) {
-		static struct timeval one_tick;
 
-		if (one_tick.tv_usec == 0) {
+	/* Spent more wall clock time than spent system time? (usually yes) */
+	if (tv_cmp(tv, &tcp->dtime) > 0) {
+		static struct timeval one_tick = { -1, 0 };
+
+		if (one_tick.tv_sec == -1) {
 			/* Initialize it.  */
 			struct itimerval it;
 
@@ -74,11 +84,15 @@
 			setitimer(ITIMER_REAL, &it, NULL);
 			getitimer(ITIMER_REAL, &it);
 			one_tick = it.it_interval;
+//FIXME: this hack doesn't work (tested on linux-3.6.11): one_tick = 0.000000
+//tprintf(" one_tick.tv_usec:%u\n", (unsigned)one_tick.tv_usec);
 		}
 
 		if (tv_nz(&tcp->dtime))
+			/* tv = system time spent, if it isn't 0 */
 			*tv = tcp->dtime;
 		else if (tv_cmp(tv, &one_tick) > 0) {
+			/* tv = smallest "sane" time interval */
 			if (tv_cmp(&shortest, &one_tick) < 0)
 				*tv = shortest;
 			else
@@ -87,7 +101,7 @@
 	}
 	if (tv_cmp(tv, &shortest) < 0)
 		shortest = *tv;
-	tv_add(&counts[tcp->scno].time, &counts[tcp->scno].time, tv);
+	tv_add(&cc->time, &cc->time, tv);
 }
 
 static int
@@ -141,17 +155,24 @@
 static void
 call_summary_pers(FILE *outf)
 {
-	int     i, j;
+	int     i;
 	int     call_cum, error_cum;
 	struct timeval tv_cum, dtv;
+	double  float_tv_cum;
 	double  percent;
-	const char *dashes = "-------------------------";
-	char    error_str[16];
-	int    *sorted_count = calloc(sizeof(int), nsyscalls);
+	const char *dashes = "----------------";
+	char    error_str[sizeof(int)*3];
+	int    *sorted_count;
 
+	fprintf(outf, "%6.6s %11.11s %11.11s %9.9s %9.9s %s\n",
+		"% time", "seconds", "usecs/call",
+		"calls", "errors", "syscall");
+	fprintf(outf, "%6.6s %11.11s %11.11s %9.9s %9.9s %s\n",
+		dashes, dashes, dashes, dashes, dashes, dashes);
+
+	sorted_count = calloc(sizeof(int), nsyscalls);
 	if (!sorted_count)
 		die_out_of_memory();
-
 	call_cum = error_cum = tv_cum.tv_sec = tv_cum.tv_usec = 0;
 	if (overhead.tv_sec == -1) {
 		tv_mul(&overhead, &shortest, 8);
@@ -167,42 +188,41 @@
 		error_cum += counts[i].errors;
 		tv_add(&tv_cum, &tv_cum, &counts[i].time);
 	}
-	if (counts && sortfun)
-		qsort((void *) sorted_count, nsyscalls, sizeof(int), sortfun);
-	fprintf(outf, "%6.6s %11.11s %11.11s %9.9s %9.9s %s\n",
-		"% time", "seconds", "usecs/call",
-		"calls", "errors", "syscall");
-	fprintf(outf, "%6.6s %11.11s %11.11s %9.9s %9.9s %-16.16s\n",
-		dashes, dashes, dashes, dashes, dashes, dashes);
+	float_tv_cum = tv_float(&tv_cum);
 	if (counts) {
+		if (sortfun)
+			qsort((void *) sorted_count, nsyscalls, sizeof(int), sortfun);
 		for (i = 0; i < nsyscalls; i++) {
-			j = sorted_count[i];
-			if (counts[j].calls == 0)
+			double float_syscall_time;
+			int idx = sorted_count[i];
+			struct call_counts *cc = &counts[idx];
+			if (cc->calls == 0)
 				continue;
-			tv_div(&dtv, &counts[j].time, counts[j].calls);
-			if (counts[j].errors)
-				sprintf(error_str, "%d", counts[j].errors);
-			else
-				error_str[0] = '\0';
-			percent = (100.0 * tv_float(&counts[j].time)
-				   / tv_float(&tv_cum));
-			fprintf(outf, "%6.2f %11.6f %11ld %9d %9.9s %s\n",
-				percent, tv_float(&counts[j].time),
+			tv_div(&dtv, &cc->time, cc->calls);
+			error_str[0] = '\0';
+			if (cc->errors)
+				sprintf(error_str, "%u", cc->errors);
+			float_syscall_time = tv_float(&cc->time);
+			percent = (100.0 * float_syscall_time);
+			if (percent != 0.0)
+				   percent /= float_tv_cum;
+			/* else: float_tv_cum can be 0.0 too and we get 0/0 = NAN */
+			fprintf(outf, "%6.2f %11.6f %11lu %9u %9.9s %s\n",
+				percent, float_syscall_time,
 				(long) (1000000 * dtv.tv_sec + dtv.tv_usec),
-				counts[j].calls,
-				error_str, sysent[j].sys_name);
+				cc->calls,
+				error_str, sysent[idx].sys_name);
 		}
 	}
 	free(sorted_count);
 
-	fprintf(outf, "%6.6s %11.11s %11.11s %9.9s %9.9s %-16.16s\n",
+	fprintf(outf, "%6.6s %11.11s %11.11s %9.9s %9.9s %s\n",
 		dashes, dashes, dashes, dashes, dashes, dashes);
+	error_str[0] = '\0';
 	if (error_cum)
-		sprintf(error_str, "%d", error_cum);
-	else
-		error_str[0] = '\0';
-	fprintf(outf, "%6.6s %11.6f %11.11s %9d %9.9s %s\n",
-		"100.00", tv_float(&tv_cum), "",
+		sprintf(error_str, "%u", error_cum);
+	fprintf(outf, "%6.6s %11.6f %11.11s %9u %9.9s %s\n",
+		"100.00", float_tv_cum, "",
 		call_cum, error_str, "total");
 }
 
@@ -220,7 +240,7 @@
 		if (i)
 			fprintf(outf,
 				"System call usage summary for %d bit mode:\n",
-				(int) (current_wordsize * 8));
+				current_wordsize * 8);
 		call_summary_pers(outf);
 	}
 
diff --git a/defs.h b/defs.h
index c95c518..85262f8 100644
--- a/defs.h
+++ b/defs.h
@@ -36,6 +36,20 @@
 #  define _LFS64_LARGEFILE 1
 # endif
 #endif
+
+#ifdef MIPS
+# include <sgidefs.h>
+# if _MIPS_SIM == _MIPS_SIM_ABI64
+#  define LINUX_MIPSN64
+# elif _MIPS_SIM == _MIPS_SIM_NABI32
+#  define LINUX_MIPSN32
+# elif _MIPS_SIM == _MIPS_SIM_ABI32
+#  define LINUX_MIPSO32
+# else
+#  error Unsupported _MIPS_SIM
+# endif
+#endif
+
 #include <features.h>
 #ifdef HAVE_STDBOOL_H
 # include <stdbool.h>
@@ -49,7 +63,10 @@
 #include <unistd.h>
 #include <stdlib.h>
 #include <stdio.h>
-#include <ctype.h>
+/* Open-coding isprint(ch) et al proved more efficient than calling
+ * generalized libc interface. We don't *want* to do non-ASCII anyway.
+ */
+/* #include <ctype.h> */
 #include <string.h>
 #include <errno.h>
 #include <signal.h>
@@ -80,6 +97,15 @@
 
 #define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
 
+/* macros */
+#ifndef MAX
+# define MAX(a, b)		(((a) > (b)) ? (a) : (b))
+#endif
+#ifndef MIN
+# define MIN(a, b)		(((a) < (b)) ? (a) : (b))
+#endif
+#define CLAMP(val, min, max) MIN(MAX(min, val), max)
+
 /* Glibc has an efficient macro for sigemptyset
  * (it just does one or two assignments of 0 to internal vector of longs).
  */
@@ -88,13 +114,6 @@
 #endif
 
 /* Configuration section */
-#ifndef MAX_QUALS
-# if defined(MIPS)
-#  define MAX_QUALS	7000	/* maximum number of syscalls, signals, etc. */
-# else
-#  define MAX_QUALS	2048	/* maximum number of syscalls, signals, etc. */
-# endif
-#endif
 #ifndef DEFAULT_STRLEN
 /* default maximum # of bytes printed in `printstr', change with -s switch */
 # define DEFAULT_STRLEN	32
@@ -106,32 +125,37 @@
  * Maximum number of args to a syscall.
  *
  * Make sure that all entries in all syscallent.h files have nargs <= MAX_ARGS!
- * linux/<ARCH>/syscallent.h: all have nargs <= 6.
+ * linux/<ARCH>/syscallent*.h:
+ * 	all have nargs <= 6 except mips o32 which has nargs <= 7.
  */
 #ifndef MAX_ARGS
-# define MAX_ARGS	6
+# ifdef LINUX_MIPSO32
+#  define MAX_ARGS	7
+# else
+#  define MAX_ARGS	6
+# endif
 #endif
 /* default sorting method for call profiling */
 #ifndef DEFAULT_SORTBY
 # define DEFAULT_SORTBY "time"
 #endif
+/*
+ * Experimental code using PTRACE_SEIZE can be enabled here.
+ * This needs Linux kernel 3.4.x or later to work.
+ */
+#define USE_SEIZE 1
+/* To force NOMMU build, set to 1 */
+#define NOMMU_SYSTEM 0
 
-#if defined(SPARC) || defined(SPARC64)
-# define LINUXSPARC
-#endif
-#if defined(MIPS) && _MIPS_SIM == _MIPS_SIM_ABI32
-# define LINUX_MIPSO32
-#endif
-#if defined(MIPS) && _MIPS_SIM == _MIPS_SIM_NABI32
-# define LINUX_MIPSN32
-# define LINUX_MIPS64
-#endif
-#if defined(MIPS) && _MIPS_SIM == _MIPS_SIM_ABI64
-# define LINUX_MIPSN64
-# define LINUX_MIPS64
-#endif
-
-#if (defined(LINUXSPARC) || defined(X86_64) || defined(ARM) || defined(AVR32)) && defined(__GLIBC__)
+#if (defined(SPARC) || defined(SPARC64) \
+    || defined(I386) || defined(X32) || defined(X86_64) \
+    || defined(ARM) || defined(AARCH64) \
+    || defined(AVR32) \
+    || defined(OR1K) \
+    || defined(METAG) \
+    || defined(TILE) \
+    || defined(XTENSA) \
+    ) && defined(__GLIBC__)
 # include <sys/ptrace.h>
 #else
 /* Work around awkward prototype in ptrace.h. */
@@ -146,107 +170,8 @@
 extern long ptrace(int, int, char *, long);
 #endif
 
-#if !defined(__GLIBC__) && !defined(__BIONIC__)
-# define PTRACE_PEEKUSER PTRACE_PEEKUSR
-# define PTRACE_POKEUSER PTRACE_POKEUSR
-#endif
-#if defined(X86_64) || defined(X32) || defined(I386)
-/* For struct pt_regs. x86 strace uses PTRACE_GETREGS.
- * PTRACE_GETREGS returns registers in the layout of this struct.
- */
-# include <asm/ptrace.h>
-#endif
-#ifdef ALPHA
-# define REG_R0 0
-# define REG_A0 16
-# define REG_A3 19
-# define REG_FP 30
-# define REG_PC 64
-#endif /* ALPHA */
-#ifdef MIPS
-# define REG_V0 2
-# define REG_A0 4
-# define REG_A3 7
-# define REG_SP 29
-# define REG_EPC 64
-#endif /* MIPS */
-#ifdef HPPA
-# define PT_GR20 (20*4)
-# define PT_GR26 (26*4)
-# define PT_GR28 (28*4)
-# define PT_IAOQ0 (106*4)
-# define PT_IAOQ1 (107*4)
-#endif /* HPPA */
-#ifdef SH64
-   /* SH64 Linux - this code assumes the following kernel API for system calls:
-          PC           Offset 0
-          System Call  Offset 16 (actually, (syscall no.) | (0x1n << 16),
-                       where n = no. of parameters.
-          Other regs   Offset 24+
-
-          On entry:    R2-7 = parameters 1-6 (as many as necessary)
-          On return:   R9   = result. */
-
-   /* Offset for peeks of registers */
-# define REG_OFFSET         (24)
-# define REG_GENERAL(x)     (8*(x)+REG_OFFSET)
-# define REG_PC             (0*8)
-# define REG_SYSCALL        (2*8)
-#endif /* SH64 */
-
-#define SUPPORTED_PERSONALITIES 1
-#define DEFAULT_PERSONALITY 0
-
-#ifdef LINUXSPARC
-/* Indexes into the pt_regs.u_reg[] array -- UREG_XX from kernel are all off
- * by 1 and use Ix instead of Ox.  These work for both 32 and 64 bit Linux. */
-# define U_REG_G1 0
-# define U_REG_O0 7
-# define U_REG_O1 8
-# define PERSONALITY0_WORDSIZE 4
-# define PERSONALITY1_WORDSIZE 4
-# undef  SUPPORTED_PERSONALITIES
-# if defined(SPARC64)
-#  include <asm/psrcompat.h>
-#  define SUPPORTED_PERSONALITIES 3
-#  define PERSONALITY2_WORDSIZE 8
-# else
-#  include <asm/psr.h>
-#  define SUPPORTED_PERSONALITIES 2
-# endif /* SPARC64 */
-#endif /* LINUXSPARC */
-
-#ifdef X86_64
-# undef SUPPORTED_PERSONALITIES
-# define SUPPORTED_PERSONALITIES 3
-# define PERSONALITY0_WORDSIZE 8
-# define PERSONALITY1_WORDSIZE 4
-# define PERSONALITY2_WORDSIZE 4
-#endif
-
-#ifdef X32
-# undef SUPPORTED_PERSONALITIES
-# define SUPPORTED_PERSONALITIES 2
-# define PERSONALITY0_WORDSIZE 4
-# define PERSONALITY1_WORDSIZE 4
-#endif
-
-#ifdef ARM
-# undef SUPPORTED_PERSONALITIES
-# define SUPPORTED_PERSONALITIES 2
-# define PERSONALITY0_WORDSIZE 4
-# define PERSONALITY1_WORDSIZE 4
-#endif
-
-#ifdef POWERPC64
-# undef SUPPORTED_PERSONALITIES
-# define SUPPORTED_PERSONALITIES 2
-# define PERSONALITY0_WORDSIZE 8
-# define PERSONALITY1_WORDSIZE 4
-#endif
-
-#ifndef PERSONALITY0_WORDSIZE
-# define PERSONALITY0_WORDSIZE sizeof(long)
+#if defined(TILE)
+# include <asm/ptrace.h>  /* struct pt_regs */
 #endif
 
 #if !HAVE_DECL_PTRACE_SETOPTIONS
@@ -297,51 +222,196 @@
 # define PTRACE_EVENT_EXIT	6
 #endif
 
-/* Experimental code using PTRACE_SEIZE can be enabled here: */
-//# define USE_SEIZE 1
+#if !defined(__GLIBC__) && !defined(__BIONIC__)
+# define PTRACE_PEEKUSER PTRACE_PEEKUSR
+# define PTRACE_POKEUSER PTRACE_POKEUSR
+#endif
 
-#ifdef USE_SEIZE
+#if USE_SEIZE
 # undef PTRACE_SEIZE
 # define PTRACE_SEIZE		0x4206
 # undef PTRACE_INTERRUPT
 # define PTRACE_INTERRUPT	0x4207
 # undef PTRACE_LISTEN
 # define PTRACE_LISTEN		0x4208
-# undef PTRACE_SEIZE_DEVEL
-# define PTRACE_SEIZE_DEVEL	0x80000000
 # undef PTRACE_EVENT_STOP
-# define PTRACE_EVENT_STOP	7
-# define PTRACE_EVENT_STOP1	128
+# define PTRACE_EVENT_STOP	128
+#endif
+
+#ifdef ALPHA
+# define REG_R0 0
+# define REG_A0 16
+# define REG_A3 19
+# define REG_FP 30
+# define REG_PC 64
+#endif /* ALPHA */
+#ifdef MIPS
+# define REG_V0 2
+# define REG_A0 4
+# define REG_A3 7
+# define REG_SP 29
+# define REG_EPC 64
+#endif /* MIPS */
+#ifdef HPPA
+# define PT_GR20 (20*4)
+# define PT_GR26 (26*4)
+# define PT_GR28 (28*4)
+# define PT_IAOQ0 (106*4)
+# define PT_IAOQ1 (107*4)
+#endif /* HPPA */
+#ifdef SH64
+   /* SH64 Linux - this code assumes the following kernel API for system calls:
+          PC           Offset 0
+          System Call  Offset 16 (actually, (syscall no.) | (0x1n << 16),
+                       where n = no. of parameters.
+          Other regs   Offset 24+
+
+          On entry:    R2-7 = parameters 1-6 (as many as necessary)
+          On return:   R9   = result. */
+
+   /* Offset for peeks of registers */
+# define REG_OFFSET         (24)
+# define REG_GENERAL(x)     (8*(x)+REG_OFFSET)
+# define REG_PC             (0*8)
+# define REG_SYSCALL        (2*8)
+#endif /* SH64 */
+#ifdef AARCH64
+struct arm_pt_regs {
+        int uregs[18];
+};
+# define ARM_cpsr       uregs[16]
+# define ARM_pc         uregs[15]
+# define ARM_lr         uregs[14]
+# define ARM_sp         uregs[13]
+# define ARM_ip         uregs[12]
+# define ARM_fp         uregs[11]
+# define ARM_r10        uregs[10]
+# define ARM_r9         uregs[9]
+# define ARM_r8         uregs[8]
+# define ARM_r7         uregs[7]
+# define ARM_r6         uregs[6]
+# define ARM_r5         uregs[5]
+# define ARM_r4         uregs[4]
+# define ARM_r3         uregs[3]
+# define ARM_r2         uregs[2]
+# define ARM_r1         uregs[1]
+# define ARM_r0         uregs[0]
+# define ARM_ORIG_r0    uregs[17]
+#endif /* AARCH64 */
+
+#if defined(SPARC) || defined(SPARC64)
+/* Indexes into the pt_regs.u_reg[] array -- UREG_XX from kernel are all off
+ * by 1 and use Ix instead of Ox.  These work for both 32 and 64 bit Linux. */
+# define U_REG_G1 0
+# define U_REG_O0 7
+# define U_REG_O1 8
+# define PERSONALITY0_WORDSIZE 4
+# define PERSONALITY1_WORDSIZE 4
+# if defined(SPARC64)
+#  include <asm/psrcompat.h>
+#  define SUPPORTED_PERSONALITIES 3
+#  define PERSONALITY2_WORDSIZE 8
+# else
+#  include <asm/psr.h>
+#  define SUPPORTED_PERSONALITIES 2
+# endif /* SPARC64 */
+#endif /* SPARC[64] */
+
+#ifdef X86_64
+# define SUPPORTED_PERSONALITIES 3
+# define PERSONALITY0_WORDSIZE 8
+# define PERSONALITY1_WORDSIZE 4
+# define PERSONALITY2_WORDSIZE 4
+#endif
+
+#ifdef X32
+# define SUPPORTED_PERSONALITIES 2
+# define PERSONALITY0_WORDSIZE 4
+# define PERSONALITY1_WORDSIZE 4
+#endif
+
+#ifdef ARM
+/* one personality */
+#endif
+
+#ifdef AARCH64
+/* The existing ARM personality, then AArch64 */
+# define SUPPORTED_PERSONALITIES 2
+# define PERSONALITY0_WORDSIZE 4
+# define PERSONALITY1_WORDSIZE 8
+# define DEFAULT_PERSONALITY 1
+#endif
+
+#ifdef POWERPC64
+# define SUPPORTED_PERSONALITIES 2
+# define PERSONALITY0_WORDSIZE 8
+# define PERSONALITY1_WORDSIZE 4
+#endif
+
+#ifdef TILE
+# define SUPPORTED_PERSONALITIES 2
+# define PERSONALITY0_WORDSIZE 8
+# define PERSONALITY1_WORDSIZE 4
+# ifdef __tilepro__
+#  define DEFAULT_PERSONALITY 1
+# endif
+#endif
+
+#ifndef SUPPORTED_PERSONALITIES
+# define SUPPORTED_PERSONALITIES 1
+#endif
+#ifndef DEFAULT_PERSONALITY
+# define DEFAULT_PERSONALITY 0
+#endif
+#ifndef PERSONALITY0_WORDSIZE
+# define PERSONALITY0_WORDSIZE (int)(sizeof(long))
 #endif
 
 #if defined(I386)
-extern struct pt_regs i386_regs;
-#endif
-#if defined(IA64)
+extern struct user_regs_struct i386_regs;
+#elif defined(IA64)
 extern long ia32;
+#elif defined(SPARC) || defined(SPARC64)
+extern struct pt_regs sparc_regs;
+#elif defined(ARM)
+extern struct pt_regs arm_regs;
+#elif defined(TILE)
+extern struct pt_regs tile_regs;
 #endif
 
+typedef struct sysent {
+	unsigned nargs;
+	int	sys_flags;
+	int	(*sys_func)();
+	const char *sys_name;
+} struct_sysent;
+
+typedef struct ioctlent {
+	const char *doth;
+	const char *symbol;
+	unsigned long code;
+} struct_ioctlent;
+
 /* Trace Control Block */
 struct tcb {
 	int flags;		/* See below for TCB_ values */
 	int pid;		/* Process Id of this entry */
-	int u_nargs;		/* System call argument count */
+	int qual_flg;		/* qual_flags[scno] or DEFAULT_QUAL_FLAGS + RAW */
 	int u_error;		/* Error code */
 	long scno;		/* System call number */
 	long u_arg[MAX_ARGS];	/* System call arguments */
 #if defined(LINUX_MIPSN32) || defined(X32)
-	long long ext_arg[MAX_ARGS];	/* System call arguments */
-#endif
-	long u_rval;		/* return value */
-#if defined(LINUX_MIPSN32) || defined(X32)
+	long long ext_arg[MAX_ARGS];
 	long long u_lrval;	/* long long return value */
 #endif
+	long u_rval;		/* Return value */
 #if SUPPORTED_PERSONALITIES > 1
 	int currpers;		/* Personality at the time of scno update */
 #endif
 	int curcol;		/* Output column for this process */
 	FILE *outf;		/* Output file for this process */
 	const char *auxstr;	/* Auxiliary info from syscall (see RVAL_STR) */
+	const struct_sysent *s_ent; /* sysent[scno] or dummy struct for bad scno */
 	struct timeval stime;	/* System time usage as of last process wait */
 	struct timeval dtime;	/* Delta for system time usage */
 	struct timeval etime;	/* Syscall entry time */
@@ -380,14 +450,23 @@
 #define TCB_REPRINT	00200	/* We should reprint this syscall on exit */
 #define TCB_FILTERED	00400	/* This system call has been filtered out */
 /* x86 does not need TCB_WAITEXECVE.
- * It can detect SIGTRAP by looking at eax/rax.
- * See "not a syscall entry (eax = %ld)\n" message
- * in syscall_fixup_on_sysenter().
+ * It can detect post-execve SIGTRAP by looking at eax/rax.
+ * See "not a syscall entry (eax = %ld)\n" message.
+ *
+ * Note! On new kernels (about 2.5.46+), we use PTRACE_O_TRACEEXEC, which
+ * suppresses post-execve SIGTRAP. If you are adding a new arch which is
+ * only supported by newer kernels, you most likely don't need to define
+ * TCB_WAITEXECVE!
  */
-#if defined(ALPHA) || defined(AVR32) || defined(SPARC) || defined(SPARC64) \
-  || defined(POWERPC) || defined(IA64) || defined(HPPA) \
-  || defined(SH) || defined(SH64) || defined(S390) || defined(S390X) \
-  || defined(ARM) || defined(MIPS) || defined(BFIN) || defined(TILE)
+#if defined(ALPHA) \
+ || defined(SPARC) || defined(SPARC64) \
+ || defined(POWERPC) \
+ || defined(IA64) \
+ || defined(HPPA) \
+ || defined(SH) || defined(SH64) \
+ || defined(S390) || defined(S390X) \
+ || defined(ARM) \
+ || defined(MIPS)
 /* This tracee has entered into execve syscall. Expect post-execve SIGTRAP
  * to happen. (When it is detected, tracee is continued and this bit is cleared.)
  */
@@ -395,20 +474,23 @@
 #endif
 
 /* qualifier flags */
-#define QUAL_TRACE	0001	/* this system call should be traced */
-#define QUAL_ABBREV	0002	/* abbreviate the structures of this syscall */
-#define QUAL_VERBOSE	0004	/* decode the structures of this syscall */
-#define QUAL_RAW	0010	/* print all args in hex for this syscall */
-#define QUAL_SIGNAL	0020	/* report events with this signal */
-#define QUAL_FAULT	0040	/* report events with this fault */
-#define QUAL_READ	0100	/* dump data read on this file descriptor */
-#define QUAL_WRITE	0200	/* dump data written to this file descriptor */
+#define QUAL_TRACE	0x001	/* this system call should be traced */
+#define QUAL_ABBREV	0x002	/* abbreviate the structures of this syscall */
+#define QUAL_VERBOSE	0x004	/* decode the structures of this syscall */
+#define QUAL_RAW	0x008	/* print all args in hex for this syscall */
+#define QUAL_SIGNAL	0x010	/* report events with this signal */
+#define QUAL_READ	0x020	/* dump data read on this file descriptor */
+#define QUAL_WRITE	0x040	/* dump data written to this file descriptor */
+typedef uint8_t qualbits_t;
+#define UNDEFINED_SCNO	0x100	/* Used only in tcp->qual_flg */
+
+#define DEFAULT_QUAL_FLAGS (QUAL_TRACE | QUAL_ABBREV | QUAL_VERBOSE)
 
 #define entering(tcp)	(!((tcp)->flags & TCB_INSYSCALL))
 #define exiting(tcp)	((tcp)->flags & TCB_INSYSCALL)
 #define syserror(tcp)	((tcp)->u_error != 0)
-#define verbose(tcp)	(qual_flags[(tcp)->scno] & QUAL_VERBOSE)
-#define abbrev(tcp)	(qual_flags[(tcp)->scno] & QUAL_ABBREV)
+#define verbose(tcp)	((tcp)->qual_flg & QUAL_VERBOSE)
+#define abbrev(tcp)	((tcp)->qual_flg & QUAL_ABBREV)
 #define filtered(tcp)	((tcp)->flags & TCB_FILTERED)
 
 struct xlat {
@@ -420,6 +502,7 @@
 extern const struct xlat addrfams[];
 extern const struct xlat struct_user_offsets[];
 extern const struct xlat open_access_modes[];
+extern const struct xlat whence_codes[];
 
 /* Format of syscall return values */
 #define RVAL_DECIMAL	000	/* decimal format */
@@ -445,7 +528,8 @@
 #define TRACE_PROCESS	010	/* Trace process-related syscalls. */
 #define TRACE_SIGNAL	020	/* Trace signal-related syscalls. */
 #define TRACE_DESC	040	/* Trace file descriptor-related syscalls. */
-#define SYSCALL_NEVER_FAILS	0100	/* Syscall is always successful. */
+#define TRACE_MEMORY	0100	/* Trace memory mapping-related syscalls. */
+#define SYSCALL_NEVER_FAILS	0200	/* Syscall is always successful. */
 
 typedef enum {
 	CFLAG_NONE = 0,
@@ -453,17 +537,23 @@
 	CFLAG_BOTH
 } cflag_t;
 extern cflag_t cflag;
-extern int *qual_flags;
 extern bool debug_flag;
 extern bool Tflag;
-extern bool qflag;
+extern unsigned int qflag;
 extern bool not_failing_only;
 extern bool show_fd_path;
-extern bool tracing_paths;
-extern unsigned int xflag;
-extern unsigned int followfork;
-extern unsigned int ptrace_setoptions;
-extern unsigned int max_strlen;
+extern bool hide_log_until_execve;
+/* are we filtering traces based on paths? */
+extern const char **paths_selected;
+#define tracing_paths (paths_selected != NULL)
+extern bool need_fork_exec_workarounds;
+extern unsigned xflag;
+extern unsigned followfork;
+extern unsigned ptrace_setoptions;
+extern unsigned max_strlen;
+extern unsigned os_release;
+#undef KERNEL_VERSION
+#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
 
 enum bitness_t { BITNESS_CURRENT = 0, BITNESS_32 };
 
@@ -497,6 +587,23 @@
 extern void count_syscall(struct tcb *, struct timeval *);
 extern void call_summary(FILE *);
 
+#if defined(AVR32) \
+ || defined(I386) \
+ || defined(X86_64) || defined(X32) \
+ || defined(AARCH64) \
+ || defined(ARM) \
+ || defined(SPARC) || defined(SPARC64) \
+ || defined(TILE) \
+ || defined(OR1K) \
+ || defined(METAG)
+extern long get_regs_error;
+# define clear_regs()  (get_regs_error = -1)
+extern void get_regs(pid_t pid);
+#else
+# define get_regs_error 0
+# define clear_regs()  ((void)0)
+# define get_regs(pid) ((void)0)
+#endif
 extern int umoven(struct tcb *, long, int, char *);
 #define umove(pid, addr, objp)	\
 	umoven((pid), (addr), sizeof(*(objp)), (char *) (objp))
@@ -516,28 +623,27 @@
 
 extern const char *signame(int);
 extern int is_restart_error(struct tcb *);
-extern int pathtrace_select(const char *);
+extern void pathtrace_select(const char *);
 extern int pathtrace_match(struct tcb *);
-extern const char *getfdpath(struct tcb *, int);
+extern int getfdpath(struct tcb *, int, char *, unsigned);
 
 extern const char *xlookup(const struct xlat *, int);
 
 extern int string_to_uint(const char *str);
 extern int string_quote(const char *, char *, long, int);
 
-#if HAVE_LONG_LONG
-/* _l refers to the lower numbered u_arg,
- * _h refers to the higher numbered u_arg
+/* a refers to the lower numbered u_arg,
+ * b refers to the higher numbered u_arg
  */
-# if HAVE_LITTLE_ENDIAN_LONG_LONG
-#  define LONG_LONG(_l,_h) \
-	((long long)((unsigned long long)(unsigned)(_l) | ((unsigned long long)(_h)<<32)))
-# else
-#  define LONG_LONG(_l,_h) \
-	((long long)((unsigned long long)(unsigned)(_h) | ((unsigned long long)(_l)<<32)))
-# endif
-extern int printllval(struct tcb *, const char *, int);
+#if HAVE_LITTLE_ENDIAN_LONG_LONG
+# define LONG_LONG(a,b) \
+	((long long)((unsigned long long)(unsigned)(a) | ((unsigned long long)(b)<<32)))
+#else
+# define LONG_LONG(a,b) \
+	((long long)((unsigned long long)(unsigned)(b) | ((unsigned long long)(a)<<32)))
 #endif
+extern int printllval(struct tcb *, const char *, int);
+
 extern void printxval(const struct xlat *, int, const char *);
 extern int printargs(struct tcb *);
 extern int printargs_lu(struct tcb *);
@@ -564,6 +670,7 @@
 extern void sprint_timespec(char *, struct tcb *, long);
 #ifdef HAVE_SIGINFO_T
 extern void printsiginfo(siginfo_t *, int);
+extern void printsiginfo_at(struct tcb *tcp, long addr);
 #endif
 extern void printfd(struct tcb *, int);
 extern void printsock(struct tcb *, long, int);
@@ -582,8 +689,8 @@
 extern const char *sprint_open_modes(mode_t);
 extern void print_loff_t(struct tcb *, long);
 
-extern const struct ioctlent *ioctl_lookup(long);
-extern const struct ioctlent *ioctl_next_match(const struct ioctlent *);
+extern const struct_ioctlent *ioctl_lookup(long);
+extern const struct_ioctlent *ioctl_next_match(const struct_ioctlent *);
 extern int ioctl_decode(struct tcb *, long, long);
 extern int term_ioctl(struct tcb *, long, long);
 extern int sock_ioctl(struct tcb *, long, long);
@@ -592,6 +699,7 @@
 extern int scsi_ioctl(struct tcb *, long, long);
 extern int block_ioctl(struct tcb *, long, long);
 extern int mtd_ioctl(struct tcb *, long, long);
+extern int ubi_ioctl(struct tcb *, long, long);
 extern int loop_ioctl(struct tcb *, long, long);
 
 extern int tv_nz(struct timeval *);
@@ -628,36 +736,61 @@
 
 #if SUPPORTED_PERSONALITIES > 1
 extern void set_personality(int personality);
-extern int current_personality;
-extern const int personality_wordsize[];
-# define current_wordsize (personality_wordsize[current_personality])
+extern unsigned current_personality;
 #else
 # define set_personality(personality) ((void)0)
 # define current_personality 0
-# define current_wordsize    PERSONALITY0_WORDSIZE
 #endif
 
-struct sysent {
-	unsigned nargs;
-	int	sys_flags;
-	int	(*sys_func)();
-	const char *sys_name;
-};
+#if SUPPORTED_PERSONALITIES == 1
+# define current_wordsize PERSONALITY0_WORDSIZE
+#else
+# if SUPPORTED_PERSONALITIES == 2 && PERSONALITY0_WORDSIZE == PERSONALITY1_WORDSIZE
+#  define current_wordsize PERSONALITY0_WORDSIZE
+# else
+extern unsigned current_wordsize;
+# endif
+#endif
 
-struct ioctlent {
-	const char *doth;
-	const char *symbol;
-	unsigned long code;
-};
+/* In many, many places we play fast and loose and use
+ * tprintf("%d", (int) tcp->u_arg[N]) to print fds, pids etc.
+ * We probably need to use widen_to_long() instead:
+ */
+#if SUPPORTED_PERSONALITIES > 1 && SIZEOF_LONG > 4
+# define widen_to_long(v) (current_wordsize == 4 ? (long)(int32_t)(v) : (long)(v))
+#else
+# define widen_to_long(v) ((long)(v))
+#endif
 
-extern const struct sysent *sysent;
-extern unsigned nsyscalls;
+extern const struct_sysent sysent0[];
+extern const char *const errnoent0[];
+extern const char *const signalent0[];
+extern const struct_ioctlent ioctlent0[];
+extern qualbits_t *qual_vec[SUPPORTED_PERSONALITIES];
+#define qual_flags (qual_vec[current_personality])
+#if SUPPORTED_PERSONALITIES > 1
+extern const struct_sysent *sysent;
 extern const char *const *errnoent;
-extern unsigned nerrnos;
-extern const struct ioctlent *ioctlent;
-extern unsigned nioctlents;
 extern const char *const *signalent;
+extern const struct_ioctlent *ioctlent;
+#else
+# define sysent     sysent0
+# define errnoent   errnoent0
+# define signalent  signalent0
+# define ioctlent   ioctlent0
+#endif
+extern unsigned nsyscalls;
+extern unsigned nerrnos;
 extern unsigned nsignals;
+extern unsigned nioctlents;
+extern unsigned num_quals;
 
+/*
+ * If you need non-NULL sysent[scno].sys_func and sysent[scno].sys_name
+ */
+#define SCNO_IS_VALID(scno) \
+	((unsigned long)(scno) < nsyscalls && sysent[scno].sys_func)
+
+/* Only ensures that sysent[scno] isn't out of range */
 #define SCNO_IN_RANGE(scno) \
-  ((unsigned long)(scno) < nsyscalls && sysent[scno].sys_func)
+	((unsigned long)(scno) < nsyscalls)
diff --git a/desc.c b/desc.c
index f0c1890..a420feb 100644
--- a/desc.c
+++ b/desc.c
@@ -37,13 +37,8 @@
 #ifdef HAVE_LIBAIO_H
 # include <libaio.h>
 #endif
-
-#if HAVE_LONG_LONG_OFF_T
-/*
- * Hacks for systems that have a long long off_t
- */
-# define flock64	flock		/* Horrid hack */
-# define printflock printflock64	/* Horrider hack */
+#ifdef HAVE_LINUX_PERF_EVENT_H
+# include  <linux/perf_event.h>
 #endif
 
 static const struct xlat fcntlcmds[] = {
@@ -215,14 +210,42 @@
 };
 #endif
 
-static const struct xlat whence[] = {
-	{ SEEK_SET,	"SEEK_SET"	},
-	{ SEEK_CUR,	"SEEK_CUR"	},
-	{ SEEK_END,	"SEEK_END"	},
-	{ 0,		NULL		},
+static const struct xlat perf_event_open_flags[] = {
+#ifdef PERF_FLAG_FD_NO_GROUP
+	{ PERF_FLAG_FD_NO_GROUP,	"PERF_FLAG_FD_NO_GROUP"	},
+#endif
+#ifdef PERF_FLAG_FD_OUTPUT
+	{ PERF_FLAG_FD_OUTPUT,		"PERF_FLAG_FD_OUTPUT"	},
+#endif
+#ifdef PERF_FLAG_PID_CGROUP
+	{ PERF_FLAG_PID_CGROUP,		"PERF_FLAG_PID_CGROUP"	},
+#endif
+	{ 0,				NULL			},
 };
 
-#ifndef HAVE_LONG_LONG_OFF_T
+#if _LFS64_LARGEFILE
+/* fcntl/lockf */
+static void
+printflock64(struct tcb *tcp, long addr, int getlk)
+{
+	struct flock64 fl;
+
+	if (umove(tcp, addr, &fl) < 0) {
+		tprints("{...}");
+		return;
+	}
+	tprints("{type=");
+	printxval(lockfcmds, fl.l_type, "F_???");
+	tprints(", whence=");
+	printxval(whence_codes, fl.l_whence, "SEEK_???");
+	tprintf(", start=%lld, len=%lld", (long long) fl.l_start, (long long) fl.l_len);
+	if (getlk)
+		tprintf(", pid=%lu}", (unsigned long) fl.l_pid);
+	else
+		tprints("}");
+}
+#endif
+
 /* fcntl/lockf */
 static void
 printflock(struct tcb *tcp, long addr, int getlk)
@@ -230,6 +253,12 @@
 	struct flock fl;
 
 #if SUPPORTED_PERSONALITIES > 1
+# ifdef X32
+	if (current_personality == 0) {
+		printflock64(tcp, addr, getlk);
+		return;
+	}
+# endif
 	if (current_wordsize != sizeof(fl.l_start)) {
 		if (current_wordsize == 4) {
 			/* 32-bit x86 app on x86_64 and similar cases */
@@ -251,7 +280,7 @@
 			fl.l_pid = fl32.l_pid;
 		} else {
 			/* let people know we have a problem here */
-			tprintf("{ <decode error: unsupported wordsize %d> }",
+			tprintf("<decode error: unsupported wordsize %d>",
 				current_wordsize);
 			return;
 		}
@@ -266,37 +295,17 @@
 	tprints("{type=");
 	printxval(lockfcmds, fl.l_type, "F_???");
 	tprints(", whence=");
-	printxval(whence, fl.l_whence, "SEEK_???");
+	printxval(whence_codes, fl.l_whence, "SEEK_???");
+#ifdef X32
+	tprintf(", start=%lld, len=%lld", fl.l_start, fl.l_len);
+#else
 	tprintf(", start=%ld, len=%ld", fl.l_start, fl.l_len);
+#endif
 	if (getlk)
 		tprintf(", pid=%lu}", (unsigned long) fl.l_pid);
 	else
 		tprints("}");
 }
-#endif
-
-#if _LFS64_LARGEFILE || HAVE_LONG_LONG_OFF_T
-/* fcntl/lockf */
-static void
-printflock64(struct tcb *tcp, long addr, int getlk)
-{
-	struct flock64 fl;
-
-	if (umove(tcp, addr, &fl) < 0) {
-		tprints("{...}");
-		return;
-	}
-	tprints("{type=");
-	printxval(lockfcmds, fl.l_type, "F_???");
-	tprints(", whence=");
-	printxval(whence, fl.l_whence, "SEEK_???");
-	tprintf(", start=%lld, len=%lld", (long long) fl.l_start, (long long) fl.l_len);
-	if (getlk)
-		tprintf(", pid=%lu}", (unsigned long) fl.l_pid);
-	else
-		tprints("}");
-}
-#endif
 
 int
 sys_fcntl(struct tcb *tcp)
@@ -855,10 +864,14 @@
 static void
 print_common_flags(struct iocb *iocb)
 {
+#if HAVE_STRUCT_IOCB_U_C_FLAGS
 	if (iocb->u.c.flags & IOCB_RESFD)
-		tprintf("resfd=%d, ", iocb->u.c.resfd);
+		tprintf(", resfd=%d", iocb->u.c.resfd);
 	if (iocb->u.c.flags & ~IOCB_RESFD)
-		tprintf("flags=%x, ", iocb->u.c.flags);
+		tprintf(", flags=%x", iocb->u.c.flags);
+#else
+# warning "libaio.h is too old => limited io_submit decoding"
+#endif
 }
 
 #endif /* HAVE_LIBAIO_H */
@@ -902,24 +915,31 @@
 				tprintf("filedes:%d", iocb.aio_fildes);
 				switch (sub) {
 				case SUB_COMMON:
+#if HAVE_DECL_IO_CMD_PWRITE
 					if (iocb.aio_lio_opcode == IO_CMD_PWRITE) {
 						tprints(", str:");
 						printstr(tcp, (unsigned long)iocb.u.c.buf,
 							 iocb.u.c.nbytes);
-					} else {
+					} else
+#endif
 						tprintf(", buf:%p", iocb.u.c.buf);
-					}
-					tprintf(", nbytes:%lu, offset:%llx",
+					tprintf(", nbytes:%lu, offset:%lld",
 						iocb.u.c.nbytes,
 						iocb.u.c.offset);
 					print_common_flags(&iocb);
 					break;
 				case SUB_VECTOR:
-					tprintf(", %llx, ", iocb.u.v.offset);
+					tprintf(", %lld", iocb.u.v.offset);
 					print_common_flags(&iocb);
+					tprints(", ");
 					tprint_iov(tcp, iocb.u.v.nr,
 						   (unsigned long)iocb.u.v.vec,
-						   iocb.aio_lio_opcode == IO_CMD_PWRITEV);
+#if HAVE_DECL_IO_CMD_PWRITEV
+						   iocb.aio_lio_opcode == IO_CMD_PWRITEV
+#else
+						   0
+#endif
+						  );
 					break;
 				case SUB_POLL:
 					tprintf(", %x", iocb.u.poll.events);
@@ -932,7 +952,7 @@
 			if (i)
 				tprints("}");
 #else
-#warning "libaio-devel is not available => no io_submit decoding"
+#warning "libaio.h is not available => no io_submit decoding"
 			tprintf("%#lx", tcp->u_arg[2]);
 #endif
 		}
@@ -1068,3 +1088,18 @@
 {
 	return do_eventfd(tcp, 1);
 }
+
+int
+sys_perf_event_open(struct tcb *tcp)
+{
+	if (entering(tcp)) {
+		tprintf("%#lx, %d, %d, %d, ",
+			tcp->u_arg[0],
+			(int) tcp->u_arg[1],
+			(int) tcp->u_arg[2],
+			(int) tcp->u_arg[3]);
+		printflags(perf_event_open_flags, tcp->u_arg[4],
+			   "PERF_FLAG_???");
+	}
+	return 0;
+}
diff --git a/file.c b/file.c
index 0cda7e1..9a83287 100644
--- a/file.c
+++ b/file.c
@@ -32,7 +32,7 @@
 #include <dirent.h>
 #include <sys/swap.h>
 
-#ifdef LINUXSPARC
+#if defined(SPARC) || defined(SPARC64)
 struct stat {
 	unsigned short	st_dev;
 	unsigned int	st_ino;
@@ -117,6 +117,21 @@
 	unsigned long		st_ctime;
 	unsigned long		st_ctime_nsec;
 	unsigned long long	st_ino;
+} __attribute__((packed));
+# define HAVE_STAT64	1
+
+struct __old_kernel_stat {
+	unsigned short st_dev;
+	unsigned short st_ino;
+	unsigned short st_mode;
+	unsigned short st_nlink;
+	unsigned short st_uid;
+	unsigned short st_gid;
+	unsigned short st_rdev;
+	unsigned int   st_size;
+	unsigned int   st_atime;
+	unsigned int   st_mtime;
+	unsigned int   st_ctime;
 };
 #else
 # undef dev_t
@@ -156,9 +171,6 @@
 # define loff_t loff_t
 #endif
 
-#ifdef HPPA	/* asm-parisc/stat.h defines stat64 */
-# undef stat64
-#endif
 #define stat libc_stat
 #define stat64 libc_stat64
 #include <sys/stat.h>
@@ -168,9 +180,6 @@
 #undef st_atime
 #undef st_mtime
 #undef st_ctime
-#ifdef HPPA
-# define stat64 hpux_stat64
-#endif
 
 #include <fcntl.h>
 #ifdef HAVE_SYS_VFS_H
@@ -183,19 +192,6 @@
 # define XATTR_REPLACE 2
 #endif
 
-#if HAVE_LONG_LONG_OFF_T
-/*
- * Ugly hacks for systems that have typedef long long off_t
- */
-# define stat64 stat
-# define HAVE_STAT64 1	/* Ugly hack */
-# define sys_stat64	sys_stat
-# define sys_fstat64	sys_fstat
-# define sys_lstat64	sys_lstat
-# define sys_truncate64	sys_truncate
-# define sys_ftruncate64	sys_ftruncate
-#endif
-
 #ifdef MAJOR_IN_SYSMACROS
 # include <sys/sysmacros.h>
 #endif
@@ -421,7 +417,7 @@
 	return decode_open(tcp, 1);
 }
 
-#ifdef LINUXSPARC
+#if defined(SPARC) || defined(SPARC64)
 static const struct xlat openmodessol[] = {
 	{ 0,		"O_RDWR"	},
 	{ 1,		"O_RDONLY"	},
@@ -516,103 +512,100 @@
 	return RVAL_OCTAL;
 }
 
-static const struct xlat whence[] = {
+const struct xlat whence_codes[] = {
 	{ SEEK_SET,	"SEEK_SET"	},
 	{ SEEK_CUR,	"SEEK_CUR"	},
 	{ SEEK_END,	"SEEK_END"	},
+#ifdef SEEK_DATA
+	{ SEEK_DATA,	"SEEK_DATA"	},
+#endif
+#ifdef SEEK_HOLE
+	{ SEEK_HOLE,	"SEEK_HOLE"	},
+#endif
 	{ 0,		NULL		},
 };
 
+/* Linux kernel has exactly one version of lseek:
+ * fs/read_write.c::SYSCALL_DEFINE3(lseek, unsigned, fd, off_t, offset, unsigned, origin)
+ * In kernel, off_t is always the same as (kernel's) long
+ * (see include/uapi/asm-generic/posix_types.h),
+ * which means that on x32 we need to use tcp->ext_arg[N] to get offset argument.
+ * Use test/x32_lseek.c to test lseek decoding.
+ */
 #if defined(LINUX_MIPSN32) || defined(X32)
 int
 sys_lseek(struct tcb *tcp)
 {
 	long long offset;
-	int _whence;
+	int whence;
 
 	if (entering(tcp)) {
 		printfd(tcp, tcp->u_arg[0]);
-		tprints(", ");
 		offset = tcp->ext_arg[1];
-		_whence = tcp->u_arg[2];
-		if (_whence == SEEK_SET)
-			tprintf("%llu, ", offset);
+		whence = tcp->u_arg[2];
+		if (whence == SEEK_SET)
+			tprintf(", %llu, ", offset);
 		else
-			tprintf("%lld, ", offset);
-		printxval(whence, _whence, "SEEK_???");
+			tprintf(", %lld, ", offset);
+		printxval(whence_codes, whence, "SEEK_???");
 	}
 	return RVAL_LUDECIMAL;
 }
-
-# if defined(X32)
-int
-sys_lseek32(struct tcb *tcp)
-{
-	long offset;
-	int _whence;
-
-	if (entering(tcp)) {
-		printfd(tcp, tcp->u_arg[0]);
-		tprints(", ");
-		offset = tcp->u_arg[1];
-		_whence = tcp->u_arg[2];
-		if (_whence == SEEK_SET)
-			tprintf("%lu, ", offset);
-		else
-			tprintf("%ld, ", offset);
-		printxval(whence, _whence, "SEEK_???");
-	}
-	return RVAL_UDECIMAL;
-}
-# endif
 #else
 int
 sys_lseek(struct tcb *tcp)
 {
-	off_t offset;
-	int _whence;
+	long offset;
+	int whence;
 
 	if (entering(tcp)) {
 		printfd(tcp, tcp->u_arg[0]);
-		tprints(", ");
 		offset = tcp->u_arg[1];
-		_whence = tcp->u_arg[2];
-		if (_whence == SEEK_SET)
-			tprintf("%lu, ", offset);
+		whence = tcp->u_arg[2];
+		if (whence == SEEK_SET)
+			tprintf(", %lu, ", offset);
 		else
-			tprintf("%ld, ", offset);
-		printxval(whence, _whence, "SEEK_???");
+			tprintf(", %ld, ", offset);
+		printxval(whence_codes, whence, "SEEK_???");
 	}
 	return RVAL_UDECIMAL;
 }
 #endif
 
+/* llseek syscall takes explicitly two ulong arguments hi, lo,
+ * rather than one 64-bit argument for which LONG_LONG works
+ * appropriate for the native byte order.
+ *
+ * See kernel's fs/read_write.c::SYSCALL_DEFINE5(llseek, ...)
+ *
+ * hi,lo are "unsigned longs" and combined exactly this way in kernel:
+ * ((loff_t) hi << 32) | lo
+ * Note that for architectures with kernel's long wider than userspace long
+ * (such as x32), combining code will use *kernel's*, i.e. *wide* longs
+ * for hi and lo. We would need to use tcp->ext_arg[N] on x32...
+ * ...however, x32 (and x86_64) does not _have_ llseek syscall as such.
+ */
 int
 sys_llseek(struct tcb *tcp)
 {
 	if (entering(tcp)) {
 		printfd(tcp, tcp->u_arg[0]);
-		/*
-		 * This one call takes explicitly two 32-bit arguments hi, lo,
-		 * rather than one 64-bit argument for which LONG_LONG works
-		 * appropriate for the native byte order.
-		 */
 		if (tcp->u_arg[4] == SEEK_SET)
 			tprintf(", %llu, ",
-				((long long int) tcp->u_arg[1]) << 32 |
+				((long long) tcp->u_arg[1]) << 32 |
 				(unsigned long long) (unsigned) tcp->u_arg[2]);
 		else
 			tprintf(", %lld, ",
-				((long long int) tcp->u_arg[1]) << 32 |
+				((long long) tcp->u_arg[1]) << 32 |
 				(unsigned long long) (unsigned) tcp->u_arg[2]);
 	}
 	else {
-		long long int off;
+		long long off;
 		if (syserror(tcp) || umove(tcp, tcp->u_arg[3], &off) < 0)
 			tprintf("%#lx, ", tcp->u_arg[3]);
 		else
 			tprintf("[%llu], ", off);
-		printxval(whence, tcp->u_arg[4], "SEEK_???");
+		printxval(whence_codes, tcp->u_arg[4], "SEEK_???");
 	}
 	return 0;
 }
@@ -623,14 +616,12 @@
 	if (entering(tcp)) {
 		int argn;
 		printfd(tcp, tcp->u_arg[0]);
-		tprints(", ");
-		argn = printllval(tcp, "%lld", 1);
+		argn = printllval(tcp, ", %lld", 1);
 		tprintf(", %ld", tcp->u_arg[argn]);
 	}
 	return 0;
 }
 
-#ifndef HAVE_LONG_LONG_OFF_T
 int
 sys_truncate(struct tcb *tcp)
 {
@@ -640,9 +631,8 @@
 	}
 	return 0;
 }
-#endif
 
-#if _LFS64_LARGEFILE || HAVE_LONG_LONG_OFF_T
+#if _LFS64_LARGEFILE
 int
 sys_truncate64(struct tcb *tcp)
 {
@@ -654,7 +644,6 @@
 }
 #endif
 
-#ifndef HAVE_LONG_LONG_OFF_T
 int
 sys_ftruncate(struct tcb *tcp)
 {
@@ -664,16 +653,14 @@
 	}
 	return 0;
 }
-#endif
 
-#if _LFS64_LARGEFILE || HAVE_LONG_LONG_OFF_T
+#if _LFS64_LARGEFILE
 int
 sys_ftruncate64(struct tcb *tcp)
 {
 	if (entering(tcp)) {
 		printfd(tcp, tcp->u_arg[0]);
-		tprints(", ");
-		printllval(tcp, "%llu", 1);
+		printllval(tcp, ", %llu", 1);
 	}
 	return 0;
 }
@@ -738,7 +725,7 @@
 	return buf;
 }
 
-#ifdef LINUXSPARC
+#if defined(SPARC) || defined(SPARC64)
 typedef struct {
 	int     tv_sec;
 	int     tv_nsec;
@@ -808,7 +795,7 @@
 		tprints("...}");
 }
 
-#if defined(SPARC64)
+# if defined(SPARC64)
 static void
 printstat_sparc64(struct tcb *tcp, long addr)
 {
@@ -854,8 +841,8 @@
 	else
 		tprints("...}");
 }
-#endif /* SPARC64 */
-#endif /* LINUXSPARC */
+# endif /* SPARC64 */
+#endif /* SPARC[64] */
 
 #if defined POWERPC64
 struct stat_powerpc32 {
@@ -925,7 +912,6 @@
 	{ 0,		NULL		},
 };
 
-#ifndef HAVE_LONG_LONG_OFF_T
 static void
 realprintstat(struct tcb *tcp, struct stat *statbuf)
 {
@@ -991,6 +977,7 @@
 		tprints("...}");
 }
 
+#ifndef X32
 static void
 printstat(struct tcb *tcp, long addr)
 {
@@ -1005,7 +992,7 @@
 		return;
 	}
 
-#ifdef LINUXSPARC
+#if defined(SPARC) || defined(SPARC64)
 	if (current_personality == 1) {
 		printstatsol(tcp, addr);
 		return;
@@ -1016,7 +1003,7 @@
 		return;
 	}
 #endif
-#endif /* LINUXSPARC */
+#endif /* SPARC[64] */
 
 #if defined POWERPC64
 	if (current_personality == 1) {
@@ -1032,7 +1019,9 @@
 
 	realprintstat(tcp, &statbuf);
 }
-#endif	/* !HAVE_LONG_LONG_OFF_T */
+#else /* X32 */
+# define printstat printstat64
+#endif
 
 #if !defined HAVE_STAT64 && defined X86_64
 /*
@@ -1070,7 +1059,11 @@
 static void
 printstat64(struct tcb *tcp, long addr)
 {
+#ifdef X32
+	struct stat statbuf;
+#else
 	struct stat64 statbuf;
+#endif
 
 #ifdef STAT64_SIZE
 	(void) sizeof(char[sizeof statbuf == STAT64_SIZE ? 1 : -1]);
@@ -1085,7 +1078,7 @@
 		return;
 	}
 
-#ifdef LINUXSPARC
+#if defined(SPARC) || defined(SPARC64)
 	if (current_personality == 1) {
 		printstatsol(tcp, addr);
 		return;
@@ -1096,7 +1089,7 @@
 		return;
 	}
 # endif
-#endif /* LINUXSPARC */
+#endif /* SPARC[64] */
 
 #if defined X86_64
 	if (current_personality != 1) {
@@ -1186,7 +1179,7 @@
 }
 #endif /* HAVE_STAT64 */
 
-#if defined(HAVE_STRUCT___OLD_KERNEL_STAT) && !defined(HAVE_LONG_LONG_OFF_T)
+#if defined(HAVE_STRUCT___OLD_KERNEL_STAT)
 static void
 convertoldstat(const struct __old_kernel_stat *oldbuf, struct stat *newbuf)
 {
@@ -1220,7 +1213,7 @@
 		return;
 	}
 
-# ifdef LINUXSPARC
+# if defined(SPARC) || defined(SPARC64)
 	if (current_personality == 1) {
 		printstatsol(tcp, addr);
 		return;
@@ -1237,7 +1230,6 @@
 }
 #endif
 
-#ifndef HAVE_LONG_LONG_OFF_T
 int
 sys_stat(struct tcb *tcp)
 {
@@ -1249,7 +1241,63 @@
 	}
 	return 0;
 }
-#endif
+
+#ifdef X32
+static void
+printstat64_x32(struct tcb *tcp, long addr)
+{
+	struct stat64 statbuf;
+
+	if (!addr) {
+		tprints("NULL");
+		return;
+	}
+	if (syserror(tcp) || !verbose(tcp)) {
+		tprintf("%#lx", addr);
+		return;
+	}
+
+	if (umove(tcp, addr, &statbuf) < 0) {
+		tprints("{...}");
+		return;
+	}
+
+	if (!abbrev(tcp)) {
+		tprintf("{st_dev=makedev(%lu, %lu), st_ino=%llu, st_mode=%s, ",
+			(unsigned long) major(statbuf.st_dev),
+			(unsigned long) minor(statbuf.st_dev),
+			(unsigned long long) statbuf.st_ino,
+			sprintmode(statbuf.st_mode));
+		tprintf("st_nlink=%lu, st_uid=%lu, st_gid=%lu, ",
+			(unsigned long) statbuf.st_nlink,
+			(unsigned long) statbuf.st_uid,
+			(unsigned long) statbuf.st_gid);
+		tprintf("st_blksize=%lu, ",
+			(unsigned long) statbuf.st_blksize);
+		tprintf("st_blocks=%lu, ", (unsigned long) statbuf.st_blocks);
+	}
+	else
+		tprintf("{st_mode=%s, ", sprintmode(statbuf.st_mode));
+	switch (statbuf.st_mode & S_IFMT) {
+	case S_IFCHR: case S_IFBLK:
+		tprintf("st_rdev=makedev(%lu, %lu), ",
+			(unsigned long) major(statbuf.st_rdev),
+			(unsigned long) minor(statbuf.st_rdev));
+		break;
+	default:
+		tprintf("st_size=%llu, ", (unsigned long long) statbuf.st_size);
+		break;
+	}
+	if (!abbrev(tcp)) {
+		tprintf("st_atime=%s, ", sprinttime(statbuf.st_atime));
+		tprintf("st_mtime=%s, ", sprinttime(statbuf.st_mtime));
+		tprintf("st_ctime=%s", sprinttime(statbuf.st_ctime));
+		tprints("}");
+	}
+	else
+		tprints("...}");
+}
+#endif /* X32 */
 
 int
 sys_stat64(struct tcb *tcp)
@@ -1259,7 +1307,11 @@
 		printpath(tcp, tcp->u_arg[0]);
 		tprints(", ");
 	} else {
+# ifdef X32
+		printstat64_x32(tcp, tcp->u_arg[1]);
+# else
 		printstat64(tcp, tcp->u_arg[1]);
+# endif
 	}
 	return 0;
 #else
@@ -1316,7 +1368,7 @@
 	return 0;
 }
 
-#if defined(HAVE_STRUCT___OLD_KERNEL_STAT) && !defined(HAVE_LONG_LONG_OFF_T)
+#if defined(HAVE_STRUCT___OLD_KERNEL_STAT)
 int
 sys_oldstat(struct tcb *tcp)
 {
@@ -1330,7 +1382,6 @@
 }
 #endif
 
-#ifndef HAVE_LONG_LONG_OFF_T
 int
 sys_fstat(struct tcb *tcp)
 {
@@ -1342,7 +1393,6 @@
 	}
 	return 0;
 }
-#endif
 
 int
 sys_fstat64(struct tcb *tcp)
@@ -1352,7 +1402,11 @@
 		printfd(tcp, tcp->u_arg[0]);
 		tprints(", ");
 	} else {
+# ifdef X32
+		printstat64_x32(tcp, tcp->u_arg[1]);
+# else
 		printstat64(tcp, tcp->u_arg[1]);
+# endif
 	}
 	return 0;
 #else
@@ -1360,7 +1414,7 @@
 #endif
 }
 
-#if defined(HAVE_STRUCT___OLD_KERNEL_STAT) && !defined(HAVE_LONG_LONG_OFF_T)
+#if defined(HAVE_STRUCT___OLD_KERNEL_STAT)
 int
 sys_oldfstat(struct tcb *tcp)
 {
@@ -1374,51 +1428,7 @@
 }
 #endif
 
-#ifndef HAVE_LONG_LONG_OFF_T
-int
-sys_lstat(struct tcb *tcp)
-{
-	if (entering(tcp)) {
-		printpath(tcp, tcp->u_arg[0]);
-		tprints(", ");
-	} else {
-		printstat(tcp, tcp->u_arg[1]);
-	}
-	return 0;
-}
-#endif
-
-int
-sys_lstat64(struct tcb *tcp)
-{
-#ifdef HAVE_STAT64
-	if (entering(tcp)) {
-		printpath(tcp, tcp->u_arg[0]);
-		tprints(", ");
-	} else {
-		printstat64(tcp, tcp->u_arg[1]);
-	}
-	return 0;
-#else
-	return printargs(tcp);
-#endif
-}
-
-#if defined(HAVE_STRUCT___OLD_KERNEL_STAT) && !defined(HAVE_LONG_LONG_OFF_T)
-int
-sys_oldlstat(struct tcb *tcp)
-{
-	if (entering(tcp)) {
-		printpath(tcp, tcp->u_arg[0]);
-		tprints(", ");
-	} else {
-		printoldstat(tcp, tcp->u_arg[1]);
-	}
-	return 0;
-}
-#endif
-
-#if defined(LINUXSPARC)
+#if defined(SPARC) || defined(SPARC64)
 
 int
 sys_xstat(struct tcb *tcp)
@@ -1594,7 +1604,7 @@
 
 # endif /* HAVE_SYS_ACL_H */
 
-#endif /* LINUXSPARC */
+#endif /* SPARC[64] */
 
 static const struct xlat fsmagic[] = {
 	{ 0x73757245,	"CODA_SUPER_MAGIC"	},
@@ -2123,12 +2133,15 @@
 	union {
 		long utl[2];
 		int uti[2];
+		long paranoia_for_huge_wordsize[4];
 	} u;
-	unsigned wordsize = current_wordsize;
+	unsigned wordsize;
 
 	if (entering(tcp)) {
 		printpath(tcp, tcp->u_arg[0]);
 		tprints(", ");
+
+		wordsize = current_wordsize;
 		if (!tcp->u_arg[1])
 			tprints("NULL");
 		else if (!verbose(tcp))
@@ -2144,7 +2157,8 @@
 			tprintf(" %s]", sprinttime(u.uti[1]));
 		}
 		else
-			abort();
+			tprintf("<decode error: unsupported wordsize %d>",
+				wordsize);
 	}
 	return 0;
 }
@@ -2160,7 +2174,7 @@
 		switch (mode & S_IFMT) {
 		case S_IFCHR:
 		case S_IFBLK:
-#ifdef LINUXSPARC
+#if defined(SPARC) || defined(SPARC64)
 			if (current_personality == 1)
 				tprintf(", makedev(%lu, %lu)",
 				(unsigned long) ((tcp->u_arg[offset + 2] >> 18) & 0x3fff),
@@ -2193,22 +2207,31 @@
 }
 
 static void
-printdir(struct tcb *tcp, long addr)
+print_old_dirent(struct tcb *tcp, long addr)
 {
-	struct dirent d;
+#ifdef SH64
+	typedef struct kernel_dirent old_dirent_t;
+#else
+	typedef struct {
+		uint32_t	d_ino;
+		uint32_t	d_off;
+		unsigned short  d_reclen;
+		char            d_name[1];
+	} old_dirent_t;
+#endif
+	old_dirent_t d;
 
-	if (!verbose(tcp)) {
+	if (!verbose(tcp) || umove(tcp, addr, &d) < 0) {
 		tprintf("%#lx", addr);
 		return;
 	}
-	if (umove(tcp, addr, &d) < 0) {
-		tprints("{...}");
-		return;
-	}
-	tprintf("{d_ino=%ld, ", (unsigned long) d.d_ino);
-	tprints("d_name=");
-	printpathn(tcp, (long) ((struct dirent *) addr)->d_name, d.d_reclen);
-	tprints("}");
+
+	tprintf("{d_ino=%lu, d_off=%lu, d_reclen=%u, d_name=\"",
+		(unsigned long) d.d_ino, (unsigned long) d.d_off, d.d_reclen);
+	if (d.d_reclen > 256)
+		d.d_reclen = 256;
+	printpathn(tcp, addr + offsetof(old_dirent_t, d_name), d.d_reclen);
+	tprints("\"}");
 }
 
 int
@@ -2221,7 +2244,7 @@
 		if (syserror(tcp) || tcp->u_rval == 0 || !verbose(tcp))
 			tprintf("%#lx", tcp->u_arg[1]);
 		else
-			printdir(tcp, tcp->u_arg[1]);
+			print_old_dirent(tcp, tcp->u_arg[1]);
 		/* Not much point in printing this out, it is always 1. */
 		if (tcp->u_arg[2] != 1)
 			tprintf(", %lu", tcp->u_arg[2]);
@@ -2278,8 +2301,10 @@
 		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\"}",
+			tprintf("d_reclen=%u, d_name=\"%s\", d_type=",
 				d->d_reclen, d->d_name);
+			printxval(direnttypes, buf[i + d->d_reclen - 1], "DT_???");
+			tprints("}");
 		}
 		if (!d->d_reclen) {
 			tprints("/* d_reclen == 0, problem here */");
@@ -2466,6 +2491,8 @@
 		unsigned long insize,
 		unsigned long size)
 {
+	if (insize == 0)
+		failed = 1;
 	if (!failed) {
 		unsigned long capacity = 4 * size + 1;
 		unsigned char *buf = (capacity < size) ? NULL : malloc(capacity);
@@ -2478,7 +2505,7 @@
 			unsigned char *in = &buf[3 * size];
 			size_t i;
 			for (i = 0; i < size; ++i) {
-				if (isprint(in[i]))
+				if (in[i] >= ' ' && in[i] <= 0x7e)
 					*out++ = in[i];
 				else {
 #define tohex(n) "0123456789abcdef"[n]
@@ -2635,8 +2662,7 @@
 	if (entering(tcp)) {
 		int argn;
 		printfd(tcp, tcp->u_arg[0]);
-		tprints(", ");
-		argn = printllval(tcp, "%lld", 1);
+		argn = printllval(tcp, ", %lld", 1);
 		tprintf(", %ld, ", tcp->u_arg[argn++]);
 		printxval(advise, tcp->u_arg[argn], "POSIX_FADV_???");
 	}
@@ -2649,14 +2675,9 @@
 	if (entering(tcp)) {
 		int argn;
 		printfd(tcp, tcp->u_arg[0]);
-		tprints(", ");
-#if defined ARM || defined POWERPC
-		argn = printllval(tcp, "%lld, ", 2);
-#else
-		argn = printllval(tcp, "%lld, ", 1);
-#endif
+		argn = printllval(tcp, ", %lld, ", 1);
 		argn = printllval(tcp, "%lld, ", argn);
-#if defined ARM || defined POWERPC
+#if defined __ARM_EABI__ || defined AARCH64 || defined POWERPC || defined XTENSA
 		printxval(advise, tcp->u_arg[1], "POSIX_FADV_???");
 #else
 		printxval(advise, tcp->u_arg[argn], "POSIX_FADV_???");
@@ -2732,8 +2753,7 @@
 	if (entering(tcp)) {
 		int argn;
 		printfd(tcp, tcp->u_arg[0]);		/* fd */
-		tprints(", ");
-		tprintf("%#lo, ", tcp->u_arg[1]);	/* mode */
+		tprintf(", %#lo, ", tcp->u_arg[1]);	/* mode */
 		argn = printllval(tcp, "%llu, ", 2);	/* offset */
 		printllval(tcp, "%llu", argn);		/* len */
 	}
@@ -2766,88 +2786,3 @@
 	}
 	return 0;
 }
-
-#ifdef X32
-# undef stat64
-# undef sys_fstat64
-# undef sys_stat64
-
-static void
-realprintstat64(struct tcb *tcp, long addr)
-{
-	struct stat64 statbuf;
-
-	if (!addr) {
-		tprints("NULL");
-		return;
-	}
-	if (syserror(tcp) || !verbose(tcp)) {
-		tprintf("%#lx", addr);
-		return;
-	}
-
-	if (umove(tcp, addr, &statbuf) < 0) {
-		tprints("{...}");
-		return;
-	}
-
-	if (!abbrev(tcp)) {
-		tprintf("{st_dev=makedev(%lu, %lu), st_ino=%llu, st_mode=%s, ",
-			(unsigned long) major(statbuf.st_dev),
-			(unsigned long) minor(statbuf.st_dev),
-			(unsigned long long) statbuf.st_ino,
-			sprintmode(statbuf.st_mode));
-		tprintf("st_nlink=%lu, st_uid=%lu, st_gid=%lu, ",
-			(unsigned long) statbuf.st_nlink,
-			(unsigned long) statbuf.st_uid,
-			(unsigned long) statbuf.st_gid);
-		tprintf("st_blksize=%lu, ",
-			(unsigned long) statbuf.st_blksize);
-		tprintf("st_blocks=%lu, ", (unsigned long) statbuf.st_blocks);
-	}
-	else
-		tprintf("{st_mode=%s, ", sprintmode(statbuf.st_mode));
-	switch (statbuf.st_mode & S_IFMT) {
-	case S_IFCHR: case S_IFBLK:
-		tprintf("st_rdev=makedev(%lu, %lu), ",
-			(unsigned long) major(statbuf.st_rdev),
-			(unsigned long) minor(statbuf.st_rdev));
-		break;
-	default:
-		tprintf("st_size=%llu, ", (unsigned long long) statbuf.st_size);
-		break;
-	}
-	if (!abbrev(tcp)) {
-		tprintf("st_atime=%s, ", sprinttime(statbuf.st_atime));
-		tprintf("st_mtime=%s, ", sprinttime(statbuf.st_mtime));
-		tprintf("st_ctime=%s", sprinttime(statbuf.st_ctime));
-		tprints("}");
-	}
-	else
-		tprints("...}");
-}
-
-int
-sys_fstat64(struct tcb *tcp)
-{
-	if (entering(tcp)) {
-		printfd(tcp, tcp->u_arg[0]);
-		tprints(", ");
-	} else {
-		realprintstat64(tcp, tcp->u_arg[1]);
-	}
-	return 0;
-}
-
-int
-sys_stat64(struct tcb *tcp)
-{
-	if (entering(tcp)) {
-		printpath(tcp, tcp->u_arg[0]);
-		tprints(", ");
-	} else {
-		realprintstat64(tcp, tcp->u_arg[1]);
-	}
-	return 0;
-}
-#endif
diff --git a/import-Android.sh b/import-Android.sh
index ad03f17..d1e54d6 100755
--- a/import-Android.sh
+++ b/import-Android.sh
@@ -8,6 +8,8 @@
 #
 
 UNNEEDED_SOURCES="\
+  .tarball-version \
+  .version \
   Makefile.am \
   Makefile.in \
   README-freebsd \
@@ -33,7 +35,9 @@
   linux/hppa \
   linux/ia64 \
   linux/m68k \
+  linux/metag \
   linux/microblaze \
+  linux/or1k \
   linux/powerpc \
   linux/s390 \
   linux/s390x \
@@ -42,6 +46,7 @@
   linux/sparc \
   linux/sparc64 \
   linux/tile \
+  linux/xtensa \
   m4 \
   missing \
   mkinstalldirs \
diff --git a/io.c b/io.c
index 6b3f4b7..b7bf832 100644
--- a/io.c
+++ b/io.c
@@ -250,26 +250,41 @@
 }
 #endif /* HAVE_SYS_UIO_H */
 
+static void
+print_off_t(struct tcb *tcp, long addr)
+{
+	unsigned long offset;
+
+	if (!addr) {
+		tprints("NULL");
+		return;
+	}
+
+#if SUPPORTED_PERSONALITIES > 1 && SIZEOF_LONG > 4
+	if (current_wordsize == 4) {
+		uint32_t off;
+
+		if (umove(tcp, addr, &off) < 0)
+			tprintf("%#lx", addr);
+		else
+			tprintf("[%u]", off);
+	} else
+#endif
+	if (umove(tcp, addr, &offset) < 0)
+		tprintf("%#lx", addr);
+	else
+		tprintf("[%lu]", offset);
+}
+
 int
 sys_sendfile(struct tcb *tcp)
 {
 	if (entering(tcp)) {
-		off_t offset;
-
 		printfd(tcp, tcp->u_arg[0]);
 		tprints(", ");
 		printfd(tcp, tcp->u_arg[1]);
 		tprints(", ");
-		if (!tcp->u_arg[2])
-			tprints("NULL");
-		else if (umove(tcp, tcp->u_arg[2], &offset) < 0)
-			tprintf("%#lx", tcp->u_arg[2]);
-		else
-#ifdef HAVE_LONG_LONG_OFF_T
-			tprintf("[%llu]", offset);
-#else
-			tprintf("[%lu]", offset);
-#endif
+		print_off_t(tcp, tcp->u_arg[2]);
 		tprintf(", %lu", tcp->u_arg[3]);
 	}
 	return 0;
@@ -379,7 +394,7 @@
 int
 sys_ioctl(struct tcb *tcp)
 {
-	const struct ioctlent *iop;
+	const struct_ioctlent *iop;
 
 	if (entering(tcp)) {
 		printfd(tcp, tcp->u_arg[0]);
diff --git a/ioctl.c b/ioctl.c
index 69ba56c..b504729 100644
--- a/ioctl.c
+++ b/ioctl.c
@@ -35,14 +35,14 @@
 compare(const void *a, const void *b)
 {
 	unsigned long code1 = (long) a;
-	unsigned long code2 = ((struct ioctlent *) b)->code;
+	unsigned long code2 = ((struct_ioctlent *) b)->code;
 	return (code1 > code2) ? 1 : (code1 < code2) ? -1 : 0;
 }
 
-const struct ioctlent *
+const struct_ioctlent *
 ioctl_lookup(long code)
 {
-	struct ioctlent *iop;
+	struct_ioctlent *iop;
 
 	code &= (_IOC_NRMASK<<_IOC_NRSHIFT) | (_IOC_TYPEMASK<<_IOC_TYPESHIFT);
 	iop = bsearch((void*)code, ioctlent,
@@ -57,8 +57,8 @@
 	return iop;
 }
 
-const struct ioctlent *
-ioctl_next_match(const struct ioctlent *iop)
+const struct_ioctlent *
+ioctl_next_match(const struct_ioctlent *iop)
 {
 	long code;
 
@@ -94,6 +94,9 @@
 		return loop_ioctl(tcp, code, arg);
 	case 'M':
 		return mtd_ioctl(tcp, code, arg);
+	case 'o':
+	case 'O':
+		return ubi_ioctl(tcp, code, arg);
 	default:
 		break;
 	}
diff --git a/ipc.c b/ipc.c
index 2a27c9b..3e471b5 100644
--- a/ipc.c
+++ b/ipc.c
@@ -152,10 +152,9 @@
 {
 	if (entering(tcp)) {
 		if (tcp->u_arg[0])
-			tprintf("%#lx", tcp->u_arg[0]);
+			tprintf("%#lx, ", tcp->u_arg[0]);
 		else
-			tprints("IPC_PRIVATE");
-		tprints(", ");
+			tprints("IPC_PRIVATE, ");
 		if (printflags(resource_flags, tcp->u_arg[1] & ~0777, NULL) != 0)
 			tprints("|");
 		tprintf("%#lo", tcp->u_arg[1] & 0777);
@@ -180,7 +179,7 @@
 #if defined IA64
 	return tcp->scno < 1024; /* ia32 emulation syscalls are low */
 #endif
-#if defined(ALPHA) || defined(MIPS) || defined(HPPA) || defined(__ARM_EABI__)
+#if defined(ALPHA) || defined(MIPS) || defined(HPPA) || defined(__ARM_EABI__) || defined(AARCH64)
 	return 0;
 #endif
 	return 1;
@@ -333,10 +332,10 @@
 		if (indirect_ipccall(tcp)) {
 			tprint_sembuf(tcp, tcp->u_arg[3], tcp->u_arg[1]);
 			tprints(", ");
-#if defined(S390)
+#if defined(S390) || defined(S390X)
 			printtv(tcp, tcp->u_arg[2]);
 #else
-			printtv(tcp, tcp->u_arg[5]);
+			printtv(tcp, tcp->u_arg[4]);
 #endif
 		} else {
 			tprint_sembuf(tcp, tcp->u_arg[1], tcp->u_arg[2]);
@@ -354,8 +353,7 @@
 			tprintf("%#lx", tcp->u_arg[0]);
 		else
 			tprints("IPC_PRIVATE");
-		tprintf(", %lu", tcp->u_arg[1]);
-		tprints(", ");
+		tprintf(", %lu, ", tcp->u_arg[1]);
 		if (printflags(resource_flags, tcp->u_arg[2] & ~0777, NULL) != 0)
 			tprints("|");
 		tprintf("%#lo", tcp->u_arg[2] & 0777);
@@ -366,8 +364,7 @@
 int sys_semctl(struct tcb *tcp)
 {
 	if (entering(tcp)) {
-		tprintf("%lu", tcp->u_arg[0]);
-		tprintf(", %lu, ", tcp->u_arg[1]);
+		tprintf("%lu, %lu, ", tcp->u_arg[0], tcp->u_arg[1]);
 		PRINTCTL(semctl_flags, tcp->u_arg[2], "SEM_???");
 		tprintf(", %#lx", tcp->u_arg[3]);
 	}
@@ -381,8 +378,7 @@
 			tprintf("%#lx", tcp->u_arg[0]);
 		else
 			tprints("IPC_PRIVATE");
-		tprintf(", %lu", tcp->u_arg[1]);
-		tprints(", ");
+		tprintf(", %lu, ", tcp->u_arg[1]);
 		if (printflags(shm_resource_flags, tcp->u_arg[2] & ~0777, NULL) != 0)
 			tprints("|");
 		tprintf("%#lo", tcp->u_arg[2] & 0777);
@@ -409,12 +405,10 @@
 	if (exiting(tcp)) {
 		tprintf("%lu", tcp->u_arg[0]);
 		if (indirect_ipccall(tcp)) {
-			tprintf(", %#lx", tcp->u_arg[3]);
-			tprints(", ");
+			tprintf(", %#lx, ", tcp->u_arg[3]);
 			printflags(shm_flags, tcp->u_arg[1], "SHM_???");
 		} else {
-			tprintf(", %#lx", tcp->u_arg[1]);
-			tprints(", ");
+			tprintf(", %#lx, ", tcp->u_arg[1]);
 			printflags(shm_flags, tcp->u_arg[2], "SHM_???");
 		}
 		if (syserror(tcp))
@@ -458,7 +452,7 @@
 			/* mode */
 			tprintf(", %#lo, ", tcp->u_arg[2]);
 			if (umove(tcp, tcp->u_arg[3], &attr) < 0)
-				tprints("{ ??? }");
+				tprints("{???}");
 			else
 				tprintf("{mq_maxmsg=%ld, mq_msgsize=%ld}",
 					(long) attr.mq_maxmsg,
diff --git a/linux/aarch64/errnoent1.h b/linux/aarch64/errnoent1.h
new file mode 100644
index 0000000..e1cbe33
--- /dev/null
+++ b/linux/aarch64/errnoent1.h
@@ -0,0 +1,2 @@
+/* Native AArch64 */
+#include "../errnoent.h"
diff --git a/linux/aarch64/ioctlent1.h b/linux/aarch64/ioctlent1.h
new file mode 100644
index 0000000..72eeaf1
--- /dev/null
+++ b/linux/aarch64/ioctlent1.h
@@ -0,0 +1 @@
+#include "ioctlent.h"
diff --git a/linux/aarch64/signalent1.h b/linux/aarch64/signalent1.h
new file mode 100644
index 0000000..d31e6a4
--- /dev/null
+++ b/linux/aarch64/signalent1.h
@@ -0,0 +1 @@
+#include "../signalent.h"
diff --git a/linux/aarch64/syscallent.h b/linux/aarch64/syscallent.h
new file mode 100644
index 0000000..1b892be
--- /dev/null
+++ b/linux/aarch64/syscallent.h
@@ -0,0 +1 @@
+#include "../arm/syscallent.h"
diff --git a/linux/aarch64/syscallent1.h b/linux/aarch64/syscallent1.h
new file mode 100644
index 0000000..e772a5e
--- /dev/null
+++ b/linux/aarch64/syscallent1.h
@@ -0,0 +1,330 @@
+	{ 2,	0,	sys_io_setup,			"io_setup"			}, /*    0 */
+	{ 1,	0,	sys_io_destroy,			"io_destroy"			}, /*    1 */
+	{ 3,	0,	sys_io_submit,			"io_submit"			}, /*    2 */
+	{ 3,	0,	sys_io_cancel,			"io_cancel"			}, /*    3 */
+	{ 5,	0,	sys_io_getevents,		"io_getevents"			}, /*    4 */
+	{ 5,	TF,	sys_setxattr,			"setxattr"			}, /*    5 */
+	{ 5,	TF,	sys_setxattr,			"lsetxattr"			}, /*    6 */
+	{ 5,	TD,	sys_fsetxattr,			"fsetxattr"			}, /*    7 */
+	{ 4,	TF,	sys_getxattr,			"getxattr"			}, /*    8 */
+	{ 4,	TF,	sys_getxattr,			"lgetxattr"			}, /*    9 */
+	{ 4,	TD,	sys_fgetxattr,			"fgetxattr"			}, /*   10 */
+	{ 3,	TF,	sys_listxattr,			"listxattr"			}, /*   11 */
+	{ 3,	TF,	sys_listxattr,			"llistxattr"			}, /*   12 */
+	{ 3,	TD,	sys_flistxattr,			"flistxattr"			}, /*   13 */
+	{ 2,	TF,	sys_removexattr,		"removexattr"			}, /*   14 */
+	{ 2,	TF,	sys_removexattr,		"lremovexattr"			}, /*   15 */
+	{ 2,	TD,	sys_fremovexattr,		"fremovexattr"			}, /*   16 */
+	{ 2,	TF,	sys_getcwd,			"getcwd"			}, /*   17 */
+	{ 3,	0,	sys_lookup_dcookie,		"lookup_dcookie"		}, /*   18 */
+	{ 2,	TD,	sys_eventfd2,			"eventfd2"			}, /*   19 */
+	{ 1,	TD,	sys_epoll_create1,		"epoll_create1"			}, /*   20 */
+	{ 4,	TD,	sys_epoll_ctl,			"epoll_ctl"			}, /*   21 */
+	{ 6,	TD,	sys_epoll_pwait,		"epoll_pwait"			}, /*   22 */
+	{ 1,	TD,	sys_dup,			"dup"				}, /*   23 */
+	{ 3,	TD,	sys_dup3,			"dup3"				}, /*   24 */
+	{ 3,	TD,	sys_fcntl,			"fcntl"				}, /*   25 */
+	{ 1,	TD,	sys_inotify_init1,		"inotify_init1"			}, /*   26 */
+	{ 3,	TD,	sys_inotify_add_watch,		"inotify_add_watch"		}, /*   27 */
+	{ 2,	TD,	sys_inotify_rm_watch,		"inotify_rm_watch"		}, /*   28 */
+	{ 3,	TD,	sys_ioctl,			"ioctl"				}, /*   29 */
+	{ 3,	0,	sys_ioprio_set,			"ioprio_set"			}, /*   30 */
+	{ 2,	0,	sys_ioprio_get,			"ioprio_get"			}, /*   31 */
+	{ 2,	TD,	sys_flock,			"flock"				}, /*   32 */
+	{ 4,	TD|TF,	sys_mknodat,			"mknodat"			}, /*   33 */
+	{ 3,	TD|TF,	sys_mkdirat,			"mkdirat"			}, /*   34 */
+	{ 3,	TD|TF,	sys_unlinkat,			"unlinkat"			}, /*   35 */
+	{ 3,	TD|TF,	sys_symlinkat,			"symlinkat"			}, /*   36 */
+	{ 5,	TD|TF,	sys_linkat,			"linkat"			}, /*   37 */
+	{ 4,	TD|TF,	sys_renameat,			"renameat"			}, /*   38 */
+	{ 2,	TF,	sys_umount2,			"umount2"			}, /*   39 */
+	{ 5,	TF,	sys_mount,			"mount"				}, /*   40 */
+	{ 2,	TF,	sys_pivotroot,			"pivot_root"			}, /*   41 */
+	{ 3,	0,	sys_nfsservctl,			"nfsservctl"			}, /*   42 */
+	{ 2,	TF,	sys_statfs,			"statfs64"			}, /*   43 */
+	{ 2,	TD,	sys_fstatfs,			"fstatfs64"			}, /*   44 */
+	{ 2,	TF,	sys_truncate,			"truncate64"			}, /*   45 */
+	{ 2,	TD,	sys_ftruncate,			"ftruncate64"			}, /*   46 */
+	{ 4,	TD,	sys_fallocate,			"fallocate"			}, /*   47 */
+	{ 3,	TD|TF,	sys_faccessat,			"faccessat"			}, /*   48 */
+	{ 1,	TF,	sys_chdir,			"chdir"				}, /*   49 */
+	{ 1,	TD,	sys_fchdir,			"fchdir"			}, /*   50 */
+	{ 1,	TF,	sys_chroot,			"chroot"			}, /*   51 */
+	{ 2,	TD,	sys_fchmod,			"fchmod"			}, /*   52 */
+	{ 3,	TD|TF,	sys_fchmodat,			"fchmodat"			}, /*   53 */
+	{ 5,	TD|TF,	sys_fchownat,			"fchownat"			}, /*   54 */
+	{ 3,	TD,	sys_fchown,			"fchown"			}, /*   55 */
+	{ 4,	TD|TF,	sys_openat,			"openat"			}, /*   56 */
+	{ 1,	TD,	sys_close,			"close"				}, /*   57 */
+	{ 0,	0,	sys_vhangup,			"vhangup"			}, /*   58 */
+	{ 2,	TD,	sys_pipe2,			"pipe2"				}, /*   59 */
+	{ 4,	TF,	sys_quotactl,			"quotactl"			}, /*   60 */
+	{ 3,	TD,	sys_getdents64,			"getdents64"			}, /*   61 */
+	{ 3,	TD,	sys_lseek,			"lseek"				}, /*   62 */
+	{ 3,	TD,	sys_read,			"read"				}, /*   63 */
+	{ 3,	TD,	sys_write,			"write"				}, /*   64 */
+	{ 3,	TD,	sys_readv,			"readv"				}, /*   65 */
+	{ 3,	TD,	sys_writev,			"writev"			}, /*   66 */
+	{ 4,	TD,	sys_pread,			"pread64"			}, /*   67 */
+	{ 4,	TD,	sys_pwrite,			"pwrite64"			}, /*   68 */
+	{ 4,	TD,	sys_preadv,			"preadv"			}, /*   69 */
+	{ 4,	TD,	sys_pwritev,			"pwritev"			}, /*   70 */
+	{ 4,	TD|TN,	sys_sendfile64,			"sendfile"			}, /*   71 */
+	{ 6,	TD,	sys_pselect6,			"pselect6"			}, /*   72 */
+	{ 5,	TD,	sys_ppoll,			"ppoll"				}, /*   73 */
+	{ 4,	TD|TS,	sys_signalfd4,			"signalfd4"			}, /*   74 */
+	{ 4,	TD,	sys_vmsplice,			"vmsplice"			}, /*   75 */
+	{ 6,	TD,	sys_splice,			"splice"			}, /*   76 */
+	{ 4,	TD,	sys_tee,			"tee"				}, /*   77 */
+	{ 4,	TD|TF,	sys_readlinkat,			"readlinkat"			}, /*   78 */
+	{ 4,	TD|TF,	sys_newfstatat,			"newfstatat"			}, /*   79 */
+	{ 2,	TD,	sys_fstat,			"fstat"				}, /*   80 */
+	{ 0,	0,	sys_sync,			"sync"				}, /*   81 */
+	{ 1,	TD,	sys_fsync,			"fsync"				}, /*   82 */
+	{ 1,	TD,	sys_fdatasync,			"fdatasync"			}, /*   83 */
+	{ 4,	TD,	sys_sync_file_range,		"sync_file_range"		}, /*   84 */
+	{ 2,	TD,	sys_timerfd_create,		"timerfd_create"		}, /*   85 */
+	{ 4,	TD,	sys_timerfd_settime,		"timerfd_settime"		}, /*   86 */
+	{ 2,	TD,	sys_timerfd_gettime,		"timerfd_gettime"		}, /*   87 */
+	{ 4,	TD|TF,	sys_utimensat,			"utimensat"			}, /*   88 */
+	{ 1,	TF,	sys_acct,			"acct"				}, /*   89 */
+	{ 2,	0,	sys_capget,			"capget"			}, /*   90 */
+	{ 2,	0,	sys_capset,			"capset"			}, /*   91 */
+	{ 1,	0,	sys_personality,		"personality"			}, /*   92 */
+	{ 1,	TP,	sys_exit,			"exit"				}, /*   93 */
+	{ 1,	TP,	sys_exit,			"exit_group"			}, /*   94 */
+	{ 5,	TP,	sys_waitid,			"waitid"			}, /*   95 */
+	{ 1,	0,	sys_set_tid_address,		"set_tid_address"		}, /*   96 */
+	{ 1,	TP,	sys_unshare,			"unshare"			}, /*   97 */
+	{ 6,	0,	sys_futex,			"futex"				}, /*   98 */
+	{ 2,	0,	sys_set_robust_list,		"set_robust_list"		}, /*   99 */
+	{ 3,	0,	sys_get_robust_list,		"get_robust_list"		}, /*  100 */
+	{ 2,	0,	sys_nanosleep,			"nanosleep"			}, /*  101 */
+	{ 2,	0,	sys_getitimer,			"getitimer"			}, /*  102 */
+	{ 3,	0,	sys_setitimer,			"setitimer"			}, /*  103 */
+	{ 4,	0,	sys_kexec_load,			"kexec_load"			}, /*  104 */
+	{ 3,	0,	sys_init_module,		"init_module"			}, /*  105 */
+	{ 2,	0,	sys_delete_module,		"delete_module"			}, /*  106 */
+	{ 3,	0,	sys_timer_create,		"timer_create"			}, /*  107 */
+	{ 2,	0,	sys_timer_gettime,		"timer_gettime"			}, /*  108 */
+	{ 1,	0,	sys_timer_getoverrun,		"timer_getoverrun"		}, /*  109 */
+	{ 4,	0,	sys_timer_settime,		"timer_settime"			}, /*  110 */
+	{ 1,	0,	sys_timer_delete,		"timer_delete"			}, /*  111 */
+	{ 2,	0,	sys_clock_settime,		"clock_settime"			}, /*  112 */
+	{ 2,	0,	sys_clock_gettime,		"clock_gettime"			}, /*  113 */
+	{ 2,	0,	sys_clock_getres,		"clock_getres"			}, /*  114 */
+	{ 4,	0,	sys_clock_nanosleep,		"clock_nanosleep"		}, /*  115 */
+	{ 3,	0,	sys_syslog,			"syslog"			}, /*  116 */
+	{ 4,	0,	sys_ptrace,			"ptrace"			}, /*  117 */
+	{ 0,	0,	sys_sched_setparam,		"sched_setparam"		}, /*  118 */
+	{ 3,	0,	sys_sched_setscheduler,		"sched_setscheduler"		}, /*  119 */
+	{ 1,	0,	sys_sched_getscheduler,		"sched_getscheduler"		}, /*  120 */
+	{ 2,	0,	sys_sched_getparam,		"sched_getparam"		}, /*  121 */
+	{ 3,	0,	sys_sched_setaffinity,		"sched_setaffinity"		}, /*  122 */
+	{ 3,	0,	sys_sched_getaffinity,		"sched_getaffinity"		}, /*  123 */
+	{ 0,	0,	sys_sched_yield,		"sched_yield"			}, /*  124 */
+	{ 1,	0,	sys_sched_get_priority_max,	"sched_get_priority_max"	}, /*  125 */
+	{ 1,	0,	sys_sched_get_priority_min,	"sched_get_priority_min"	}, /*  126 */
+	{ 2,	0,	sys_sched_rr_get_interval,	"sched_rr_get_interval"		}, /*  127 */
+	{ 0,	0,	sys_restart_syscall,		"restart_syscall"		}, /*  128 */
+	{ 2,	TS,	sys_kill,			"kill"				}, /*  129 */
+	{ 2,	TS,	sys_kill,			"tkill"				}, /*  130 */
+	{ 3,	TS,	sys_tgkill,			"tgkill"			}, /*  131 */
+	{ 2,	TS,	sys_sigaltstack,		"sigaltstack"			}, /*  132 */
+	{ 2,	TS,	sys_rt_sigsuspend,		"rt_sigsuspend"			}, /*  133 */
+	{ 4,	TS,	sys_rt_sigaction,		"rt_sigaction"			}, /*  134 */
+	{ 4,	TS,	sys_rt_sigprocmask,		"rt_sigprocmask"		}, /*  135 */
+	{ 2,	TS,	sys_rt_sigpending,		"rt_sigpending"			}, /*  136 */
+	{ 4,	TS,	sys_rt_sigtimedwait,		"rt_sigtimedwait"		}, /*  137 */
+	{ 3,	TS,	sys_rt_sigqueueinfo,		"rt_sigqueueinfo"		}, /*  138 */
+	{ 0,	TS,	sys_rt_sigreturn,		"rt_sigreturn"			}, /*  139 */
+	{ 3,	0,	sys_setpriority,		"setpriority"			}, /*  140 */
+	{ 2,	0,	sys_getpriority,		"getpriority"			}, /*  141 */
+	{ 4,	0,	sys_reboot,			"reboot"			}, /*  142 */
+	{ 2,	0,	sys_setregid,			"setregid"			}, /*  143 */
+	{ 1,	0,	sys_setgid,			"setgid"			}, /*  144 */
+	{ 2,	0,	sys_setreuid,			"setreuid"			}, /*  145 */
+	{ 1,	0,	sys_setuid,			"setuid"			}, /*  146 */
+	{ 3,	0,	sys_setresuid,			"setresuid"			}, /*  147 */
+	{ 3,	0,	sys_getresuid,			"getresuid"			}, /*  148 */
+	{ 3,	0,	sys_setresgid,			"setresgid"			}, /*  149 */
+	{ 3,	0,	sys_getresgid,			"getresgid"			}, /*  150 */
+	{ 1,	NF,	sys_setfsuid,			"setfsuid"			}, /*  151 */
+	{ 1,	NF,	sys_setfsgid,			"setfsgid"			}, /*  152 */
+	{ 1,	0,	sys_times,			"times"				}, /*  153 */
+	{ 2,	0,	sys_setpgid,			"setpgid"			}, /*  154 */
+	{ 1,	0,	sys_getpgid,			"getpgid"			}, /*  155 */
+	{ 1,	0,	sys_getsid,			"getsid"			}, /*  156 */
+	{ 0,	0,	sys_setsid,			"setsid"			}, /*  157 */
+	{ 2,	0,	sys_getgroups,			"getgroups"			}, /*  158 */
+	{ 2,	0,	sys_setgroups,			"setgroups"			}, /*  159 */
+	{ 1,	0,	sys_uname,			"uname"				}, /*  160 */
+	{ 2,	0,	sys_sethostname,		"sethostname"			}, /*  161 */
+	{ 2,	0,	sys_setdomainname,		"setdomainname"			}, /*  162 */
+	{ 2,	0,	sys_getrlimit,			"getrlimit"			}, /*  163 */
+	{ 2,	0,	sys_setrlimit,			"setrlimit"			}, /*  164 */
+	{ 2,	0,	sys_getrusage,			"getrusage"			}, /*  165 */
+	{ 1,	0,	sys_umask,			"umask"				}, /*  166 */
+	{ 5,	0,	sys_prctl,			"prctl"				}, /*  167 */
+	{ 3,	0,	sys_getcpu,			"getcpu"			}, /*  168 */
+	{ 2,	0,	sys_gettimeofday,		"gettimeofday"			}, /*  169 */
+	{ 2,	0,	sys_settimeofday,		"settimeofday"			}, /*  170 */
+	{ 1,	0,	sys_adjtimex,			"adjtimex"			}, /*  171 */
+	{ 0,	0,	sys_getpid,			"getpid"			}, /*  172 */
+	{ 0,	0,	sys_getppid,			"getppid"			}, /*  173 */
+	{ 0,	NF,	sys_getuid,			"getuid"			}, /*  174 */
+	{ 0,	NF,	sys_geteuid,			"geteuid"			}, /*  175 */
+	{ 0,	NF,	sys_getgid,			"getgid"			}, /*  176 */
+	{ 0,	NF,	sys_getegid,			"getegid"			}, /*  177 */
+	{ 0,	0,	sys_gettid,			"gettid"			}, /*  178 */
+	{ 1,	0,	sys_sysinfo,			"sysinfo"			}, /*  179 */
+	{ 4,	0,	sys_mq_open,			"mq_open"			}, /*  180 */
+	{ 1,	0,	sys_mq_unlink,			"mq_unlink"			}, /*  181 */
+	{ 5,	0,	sys_mq_timedsend,		"mq_timedsend"			}, /*  182 */
+	{ 5,	0,	sys_mq_timedreceive,		"mq_timedreceive"		}, /*  183 */
+	{ 2,	0,	sys_mq_notify,			"mq_notify"			}, /*  184 */
+	{ 3,	0,	sys_mq_getsetattr,		"mq_getsetattr"			}, /*  185 */
+	{ 4,	TI,	sys_msgget,			"msgget"			}, /*  186 */
+	{ 3,	TI,	sys_msgctl,			"msgctl"			}, /*  187 */
+	{ 5,	TI,	sys_msgrcv,			"msgrcv"			}, /*  188 */
+	{ 4,	TI,	sys_msgsnd,			"msgsnd"			}, /*  189 */
+	{ 4,	TI,	sys_semget,			"semget"			}, /*  190 */
+	{ 4,	TI,	sys_semctl,			"semctl"			}, /*  191 */
+	{ 5,	TI,	sys_semtimedop,			"semtimedop"			}, /*  192 */
+	{ 4,	TI,	sys_semop,			"semop"				}, /*  193 */
+	{ 4,	TI,	sys_shmget,			"shmget"			}, /*  194 */
+	{ 4,	TI,	sys_shmctl,			"shmctl"			}, /*  195 */
+	{ 4,	TI,	sys_shmat,			"shmat"				}, /*  196 */
+	{ 4,	TI,	sys_shmdt,			"shmdt"				}, /*  197 */
+	{ 3,	TN,	sys_socket,			"socket"			}, /*  198 */
+	{ 4,	TN,	sys_socketpair,			"socketpair"			}, /*  199 */
+	{ 3,	TN,	sys_bind,			"bind"				}, /*  200 */
+	{ 2,	TN,	sys_listen,			"listen"			}, /*  201 */
+	{ 3,	TN,	sys_accept,			"accept"			}, /*  202 */
+	{ 3,	TN,	sys_connect,			"connect"			}, /*  203 */
+	{ 3,	TN,	sys_getsockname,		"getsockname"			}, /*  204 */
+	{ 3,	TN,	sys_getpeername,		"getpeername"			}, /*  205 */
+	{ 6,	TN,	sys_sendto,			"sendto"			}, /*  206 */
+	{ 6,	TN,	sys_recvfrom,			"recvfrom"			}, /*  207 */
+	{ 5,	TN,	sys_setsockopt,			"setsockopt"			}, /*  208 */
+	{ 5,	TN,	sys_getsockopt,			"getsockopt"			}, /*  209 */
+	{ 2,	TN,	sys_shutdown,			"shutdown"			}, /*  210 */
+	{ 3,	TN,	sys_sendmsg,			"sendmsg"			}, /*  211 */
+	{ 3,	TN,	sys_recvmsg,			"recvmsg"			}, /*  212 */
+	{ 3,	TD,	sys_readahead,			"readahead"			}, /*  213 */
+	{ 1,	TM,	sys_brk,			"brk"				}, /*  214 */
+	{ 2,	TM,	sys_munmap,			"munmap"			}, /*  215 */
+	{ 5,	TM,	sys_mremap,			"mremap"			}, /*  216 */
+	{ 5,	0,	sys_add_key,			"add_key"			}, /*  217 */
+	{ 4,	0,	sys_request_key,		"request_key"			}, /*  218 */
+	{ 5,	0,	sys_keyctl,			"keyctl"			}, /*  219 */
+	{ 5,	TP,	sys_clone,			"clone"				}, /*  220 */
+	{ 3,	TF|TP,	sys_execve,			"execve"			}, /*  221 */
+	{ 6,	TD|TM,	sys_mmap,			"mmap"				}, /*  222 */
+	{ 4,	TD,	sys_fadvise64,			"fadvise64"			}, /*  223 */
+	{ 2,	TF,	sys_swapon,			"swapon"			}, /*  224 */
+	{ 1,	TF,	sys_swapoff,			"swapoff"			}, /*  225 */
+	{ 3,	TM,	sys_mprotect,			"mprotect"			}, /*  226 */
+	{ 3,	TM,	sys_msync,			"msync"				}, /*  227 */
+	{ 3,	TM,	sys_msync,			"msync"				}, /*  228 */
+	{ 2,	TM,	sys_munlock,			"munlock"			}, /*  229 */
+	{ 1,	TM,	sys_mlockall,			"mlockall"			}, /*  230 */
+	{ 0,	TM,	sys_munlockall,			"munlockall"			}, /*  231 */
+	{ 3,	TM,	sys_mincore,			"mincore"			}, /*  232 */
+	{ 3,	TM,	sys_madvise,			"madvise"			}, /*  233 */
+	{ 5,	TM,	sys_remap_file_pages,		"remap_file_pages"		}, /*  234 */
+	{ 6,	TM,	sys_mbind,			"mbind"				}, /*  235 */
+	{ 5,	TM,	sys_get_mempolicy,		"get_mempolicy"			}, /*  236 */
+	{ 3,	TM,	sys_set_mempolicy,		"set_mempolicy"			}, /*  237 */
+	{ 4,	TM,	sys_migrate_pages,		"migrate_pages"			}, /*  238 */
+	{ 6,	TM,	sys_move_pages,			"move_pages"			}, /*  239 */
+	{ 4,	TP|TS,	sys_rt_tgsigqueueinfo,		"rt_tgsigqueueinfo"		}, /*  240 */
+	{ 5,	TD,	sys_perf_event_open,		"perf_event_open"		}, /*  241 */
+	{ 4,	TN,	sys_accept4,			"accept4"			}, /*  242 */
+	{ 5,	TN,	sys_recvmmsg,			"recvmmsg"			}, /*  243 */
+
+	/* Arch-specific block, not used on AArch64 */
+	[244 ... 259] = { },
+
+	{ 4,	TP,	sys_wait4,			"wait4"				}, /*  260 */
+	{ 4,	0,	sys_prlimit64,			"prlimit64"			}, /*  261 */
+	{ 2,	TD,	sys_fanotify_init,		"fanotify_init"			}, /*  262 */
+	{ 5,	TD|TF,	sys_fanotify_mark,		"fanotify_mark"			}, /*  263 */
+	{ 5,	TD|TF,	sys_name_to_handle_at,		"name_to_handle_at"		}, /*  264 */
+	{ 3,	TD,	sys_open_by_handle_at,		"open_by_handle_at"		}, /*  265 */
+	{ 2,	0,	sys_clock_adjtime,		"clock_adjtime"			}, /*  266 */
+	{ 1,	TD,	sys_syncfs,			"syncfs"			}, /*  267 */
+	{ 2,	TD,	sys_setns,			"setns"				}, /*  268 */
+	{ 4,	TN,	sys_sendmmsg,			"sendmmsg"			}, /*  269 */
+	{ 6,	0,	sys_process_vm_readv,		"process_vm_readv"		}, /*  270 */
+	{ 6,	0,	sys_process_vm_writev,		"process_vm_writev"		}, /*  271 */
+
+	/* Blank down to 1023 */
+	[272 ... 1023] = { },
+
+	/* Quote from asm-generic/unistd.h:
+	 *
+	 * All syscalls below here should go away really,
+	 * these are provided for both review and as a porting
+	 * help for the C library version.
+	 *
+	 * Last chance: are any of these important enough to
+	 * enable by default?
+	 */
+
+	{ 3,	TD|TF,	sys_open,			"open"				}, /* 1024 */
+	{ 2,	TF,	sys_link,			"link"				}, /* 1025 */
+	{ 1,	TF,	sys_unlink,			"unlink"			}, /* 1026 */
+	{ 3,	TF,	sys_mknod,			"mknod"				}, /* 1027 */
+	{ 2,	TF,	sys_chmod,			"chmod"				}, /* 1028 */
+	{ 3,	TF,	sys_chown,			"chown"				}, /* 1029 */
+	{ 2,	TF,	sys_mkdir,			"mkdir"				}, /* 1030 */
+	{ 1,	TF,	sys_rmdir,			"rmdir"				}, /* 1031 */
+	{ 3,	TF,	sys_chown,			"lchown"			}, /* 1032 */
+	{ 2,	TF,	sys_access,			"access"			}, /* 1033 */
+	{ 2,	TF,	sys_rename,			"rename"			}, /* 1034 */
+	{ 3,	TF,	sys_readlink,			"readlink"			}, /* 1035 */
+	{ 2,	TF,	sys_symlink,			"symlink"			}, /* 1036 */
+	{ 2,	TF,	sys_utimes,			"utimes"			}, /* 1037 */
+	{ 2,	TF,	sys_stat,			"stat"				}, /* 1038 */
+	{ 2,	TF,	sys_lstat,			"lstat"				}, /* 1039 */
+	{ 1,	TD,	sys_pipe,			"pipe"				}, /* 1040 */
+	{ 2,	TD,	sys_dup2,			"dup2"				}, /* 1041 */
+	{ 1,	TD,	sys_epoll_create,		"epoll_create"			}, /* 1042 */
+	{ 0,	TD,	sys_inotify_init,		"inotify_init"			}, /* 1043 */
+	{ 1,	TD,	sys_eventfd,			"eventfd"			}, /* 1044 */
+	{ 3,	TD|TS,	sys_signalfd,			"signalfd"			}, /* 1045 */
+	{ 4,	TD|TN,	sys_sendfile64,			"sendfile"			}, /* 1046 */
+	{ 2,	TD,	sys_ftruncate,			"ftruncate"			}, /* 1047 */
+	{ 2,	TF,	sys_truncate,			"truncate"			}, /* 1048 */
+	{ 2,	TF,	sys_stat,			"stat"				}, /* 1049 */
+	{ 2,	TF,	sys_lstat,			"lstat"				}, /* 1050 */
+	{ 2,	TD,	sys_fstat,			"fstat"				}, /* 1051 */
+	{ 3,	TD,	sys_fcntl,			"fcntl"				}, /* 1052 */
+	{ 4,	TD,	sys_fadvise64,			"fadvise64"			}, /* 1053 */
+	{ 4,	TD|TF,	sys_newfstatat,			"newfstatat"			}, /* 1054 */
+	{ 2,	TD,	sys_fstatfs,			"fstatfs"			}, /* 1055 */
+	{ 2,	TF,	sys_statfs,			"statfs"			}, /* 1056 */
+	{ 3,	TD,	sys_lseek,			"lseek"				}, /* 1057 */
+	{ 6,	TD|TM,	sys_mmap,			"mmap"				}, /* 1058 */
+	{ 1,	0,	sys_alarm,			"alarm"				}, /* 1059 */
+	{ 0,	0,	sys_getpgrp,			"getpgrp"			}, /* 1060 */
+	{ 0,	TS,	sys_pause,			"pause"				}, /* 1061 */
+	{ 1,	0,	sys_time,			"time"				}, /* 1062 */
+	{ 2,	TF,	sys_utime,			"utime"				}, /* 1063 */
+	{ 2,	TD|TF,	sys_creat,			"creat"				}, /* 1064 */
+	{ 3,	TD,	sys_getdents,			"getdents"			}, /* 1065 */
+	{ 3,	TD|TF,	sys_futimesat,			"futimesat"			}, /* 1066 */
+	{ 5,	TD,	sys_select,			"select"			}, /* 1067 */
+	{ 3,	TD,	sys_poll,			"poll"				}, /* 1068 */
+	{ 4,	TD,	sys_epoll_wait,			"epoll_wait"			}, /* 1069 */
+	{ 2,	0,	sys_ustat,			"ustat"				}, /* 1070 */
+	{ 0,	TP,	sys_vfork,			"vfork"				}, /* 1071 */
+	{ 4,	TP,	sys_wait4,			"wait4"				}, /* 1072 */
+	{ 6,	TN,	sys_recv,			"recv"				}, /* 1073 */
+	{ 4,	TN,	sys_send,			"send"				}, /* 1074 */
+	{ 2,	0,	sys_bdflush,			"bdflush"			}, /* 1075 */
+	{ 2,	TF,	sys_umount,			"umount"			}, /* 1076 */
+	{ 1,	TF,	sys_uselib,			"uselib"			}, /* 1077 */
+	{ 1,	0,	sys_sysctl,			"sysctl"			}, /* 1078 */
+	{ 0,	TP,	sys_fork,			"fork"				}, /* 1079 */
diff --git a/linux/arm/syscallent.h b/linux/arm/syscallent.h
index 550335e..132b22a 100644
--- a/linux/arm/syscallent.h
+++ b/linux/arm/syscallent.h
@@ -29,12 +29,12 @@
 	{ 0,	0,	sys_restart_syscall,	"restart_syscall"}, /* 0 */
 	{ 1,	TP,	sys_exit,		"exit"		}, /* 1 */
 	{ 0,	TP,	sys_fork,		"fork"		}, /* 2 */
-	{ 3,	0,	sys_read,		"read"		}, /* 3 */
-	{ 3,	0,	sys_write,		"write"		}, /* 4 */
-	{ 3,	TF,	sys_open,		"open"		}, /* 5 */
-	{ 1,	0,	sys_close,		"close"		}, /* 6 */
+	{ 3,	TD,	sys_read,		"read"		}, /* 3 */
+	{ 3,	TD,	sys_write,		"write"		}, /* 4 */
+	{ 3,	TD|TF,	sys_open,		"open"		}, /* 5 */
+	{ 1,	TD,	sys_close,		"close"		}, /* 6 */
 	{ 3,	TP,	sys_waitpid,		"waitpid"	}, /* 7 */
-	{ 2,	TF,	sys_creat,		"creat"		}, /* 8 */
+	{ 2,	TD|TF,	sys_creat,		"creat"		}, /* 8 */
 	{ 2,	TF,	sys_link,		"link"		}, /* 9 */
 	{ 1,	TF,	sys_unlink,		"unlink"	}, /* 10 */
 	{ 3,	TF|TP,	sys_execve,		"execve"	}, /* 11 */
@@ -43,9 +43,9 @@
 	{ 3,	TF,	sys_mknod,		"mknod"		}, /* 14 */
 	{ 2,	TF,	sys_chmod,		"chmod"		}, /* 15 */
 	{ 3,	TF,	sys_chown,		"lchown"	}, /* 16 */
-	{ 0,	0,	sys_break,		"break"		}, /* 17 */
+	{ 0,	TM,	sys_break,		"break"		}, /* 17 */
 	{ 2,	TF,	sys_oldstat,		"oldstat"	}, /* 18 */
-	{ 3,	0,	sys_lseek,		"lseek"		}, /* 19 */
+	{ 3,	TD,	sys_lseek,		"lseek"		}, /* 19 */
 	{ 0,	0,	sys_getpid,		"getpid"	}, /* 20 */
 	{ 5,	TF,	sys_mount,		"mount"		}, /* 21 */
 	{ 1,	TF,	sys_umount,		"oldumount"	}, /* 22 */
@@ -54,7 +54,7 @@
 	{ 1,	0,	sys_stime,		"stime"		}, /* 25 */
 	{ 4,	0,	sys_ptrace,		"ptrace"	}, /* 26 */
 	{ 1,	0,	sys_alarm,		"alarm"		}, /* 27 */
-	{ 2,	0,	sys_oldfstat,		"oldfstat"	}, /* 28 */
+	{ 2,	TD,	sys_oldfstat,		"oldfstat"	}, /* 28 */
 	{ 0,	TS,	sys_pause,		"pause"		}, /* 29 */
 	{ 2,	TF,	sys_utime,		"utime"		}, /* 30 */
 	{ 2,	0,	sys_stty,		"stty"		}, /* 31 */
@@ -67,11 +67,11 @@
 	{ 2,	TF,	sys_rename,		"rename"	}, /* 38 */
 	{ 2,	TF,	sys_mkdir,		"mkdir"		}, /* 39 */
 	{ 1,	TF,	sys_rmdir,		"rmdir"		}, /* 40 */
-	{ 1,	0,	sys_dup,		"dup"		}, /* 41 */
-	{ 1,	0,	sys_pipe,		"pipe"		}, /* 42 */
+	{ 1,	TD,	sys_dup,		"dup"		}, /* 41 */
+	{ 1,	TD,	sys_pipe,		"pipe"		}, /* 42 */
 	{ 1,	0,	sys_times,		"times"		}, /* 43 */
 	{ 0,	0,	sys_prof,		"prof"		}, /* 44 */
-	{ 1,	0,	sys_brk,		"brk"		}, /* 45 */
+	{ 1,	TM,	sys_brk,		"brk"		}, /* 45 */
 	{ 1,	0,	sys_setgid,		"setgid"	}, /* 46 */
 	{ 0,	NF,	sys_getgid,		"getgid"	}, /* 47 */
 	{ 3,	TS,	sys_signal,		"signal"	}, /* 48 */
@@ -80,8 +80,8 @@
 	{ 1,	TF,	sys_acct,		"acct"		}, /* 51 */
 	{ 2,	TF,	sys_umount2,		"umount"	}, /* 52 */
 	{ 0,	0,	sys_lock,		"lock"		}, /* 53 */
-	{ 3,	0,	sys_ioctl,		"ioctl"		}, /* 54 */
-	{ 3,	0,	sys_fcntl,		"fcntl"		}, /* 55 */
+	{ 3,	TD,	sys_ioctl,		"ioctl"		}, /* 54 */
+	{ 3,	TD,	sys_fcntl,		"fcntl"		}, /* 55 */
 	{ 0,	0,	sys_mpx,		"mpx"		}, /* 56 */
 	{ 2,	0,	sys_setpgid,		"setpgid"	}, /* 57 */
 	{ 2,	0,	sys_ulimit,		"ulimit"	}, /* 58 */
@@ -89,7 +89,7 @@
 	{ 1,	0,	sys_umask,		"umask"		}, /* 60 */
 	{ 1,	TF,	sys_chroot,		"chroot"	}, /* 61 */
 	{ 2,	0,	sys_ustat,		"ustat"		}, /* 62 */
-	{ 2,	0,	sys_dup2,		"dup2"		}, /* 63 */
+	{ 2,	TD,	sys_dup2,		"dup2"		}, /* 63 */
 	{ 0,	0,	sys_getppid,		"getppid"	}, /* 64 */
 	{ 0,	0,	sys_getpgrp,		"getpgrp"	}, /* 65 */
 	{ 0,	0,	sys_setsid,		"setsid"	}, /* 66 */
@@ -108,33 +108,33 @@
 	{ 2,	0,	sys_settimeofday,	"settimeofday"	}, /* 79 */
 	{ 2,	0,	sys_getgroups,		"getgroups"	}, /* 80 */
 	{ 2,	0,	sys_setgroups,		"setgroups"	}, /* 81 */
-	{ 1,	0,	sys_oldselect,		"oldselect"	}, /* 82 */
+	{ 1,	TD,	sys_oldselect,		"oldselect"	}, /* 82 */
 	{ 2,	TF,	sys_symlink,		"symlink"	}, /* 83 */
 	{ 2,	TF,	sys_oldlstat,		"oldlstat"	}, /* 84 */
 	{ 3,	TF,	sys_readlink,		"readlink"	}, /* 85 */
 	{ 1,	TF,	sys_uselib,		"uselib"	}, /* 86 */
 	{ 2,	TF,	sys_swapon,		"swapon"	}, /* 87 */
 	{ 4,	0,	sys_reboot,		"reboot"	}, /* 88 */
-	{ 3,	0,	sys_readdir,		"readdir"	}, /* 89 */
-	{ 6,	TD,	sys_old_mmap,		"old_mmap"	}, /* 90 */
-	{ 2,	0,	sys_munmap,		"munmap"	}, /* 91 */
+	{ 3,	TD,	sys_readdir,		"readdir"	}, /* 89 */
+	{ 1,	TD|TM,	sys_old_mmap,		"old_mmap"	}, /* 90 */
+	{ 2,	TM,	sys_munmap,		"munmap"	}, /* 91 */
 	{ 2,	TF,	sys_truncate,		"truncate"	}, /* 92 */
-	{ 2,	0,	sys_ftruncate,		"ftruncate"	}, /* 93 */
-	{ 2,	0,	sys_fchmod,		"fchmod"	}, /* 94 */
-	{ 3,	0,	sys_fchown,		"fchown"	}, /* 95 */
+	{ 2,	TD,	sys_ftruncate,		"ftruncate"	}, /* 93 */
+	{ 2,	TD,	sys_fchmod,		"fchmod"	}, /* 94 */
+	{ 3,	TD,	sys_fchown,		"fchown"	}, /* 95 */
 	{ 2,	0,	sys_getpriority,	"getpriority"	}, /* 96 */
 	{ 3,	0,	sys_setpriority,	"setpriority"	}, /* 97 */
 	{ 4,	0,	sys_profil,		"profil"	}, /* 98 */
 	{ 2,	TF,	sys_statfs,		"statfs"	}, /* 99 */
-	{ 2,	0,	sys_fstatfs,		"fstatfs"	}, /* 100 */
+	{ 2,	TD,	sys_fstatfs,		"fstatfs"	}, /* 100 */
 	{ 3,	0,	sys_ioperm,		"ioperm"	}, /* 101 */
-	{ 2,	0,	sys_socketcall,		"socketcall"	}, /* 102 */
+	{ 2,	TD,	sys_socketcall,		"socketcall"	}, /* 102 */
 	{ 3,	0,	sys_syslog,		"syslog"	}, /* 103 */
 	{ 3,	0,	sys_setitimer,		"setitimer"	}, /* 104 */
 	{ 2,	0,	sys_getitimer,		"getitimer"	}, /* 105 */
 	{ 2,	TF,	sys_stat,		"stat"		}, /* 106 */
 	{ 2,	TF,	sys_lstat,		"lstat"		}, /* 107 */
-	{ 2,	0,	sys_fstat,		"fstat"		}, /* 108 */
+	{ 2,	TD,	sys_fstat,		"fstat"		}, /* 108 */
 	{ 1,	0,	sys_olduname,		"olduname"	}, /* 109 */
 	{ 1,	0,	sys_iopl,		"iopl"		}, /* 110 */
 	{ 0,	0,	sys_vhangup,		"vhangup"	}, /* 111 */
@@ -144,42 +144,42 @@
 	{ 1,	TF,	sys_swapoff,		"swapoff"	}, /* 115 */
 	{ 1,	0,	sys_sysinfo,		"sysinfo"	}, /* 116 */
 	{ 6,	TI,	sys_ipc,		"ipc"		}, /* 117 */
-	{ 1,	0,	sys_fsync,		"fsync"		}, /* 118 */
+	{ 1,	TD,	sys_fsync,		"fsync"		}, /* 118 */
 	{ 0,	TS,	sys_sigreturn,		"sigreturn"	}, /* 119 */
 	{ 5,	TP,	sys_clone,		"clone"		}, /* 120 */
 	{ 2,	0,	sys_setdomainname,	"setdomainname"	}, /* 121 */
 	{ 1,	0,	sys_uname,		"uname"		}, /* 122 */
 	{ 3,	0,	sys_modify_ldt,		"modify_ldt"	}, /* 123 */
 	{ 1,	0,	sys_adjtimex,		"adjtimex"	}, /* 124 */
-	{ 3,	0,	sys_mprotect,		"mprotect"	}, /* 125 */
+	{ 3,	TM,	sys_mprotect,		"mprotect"	}, /* 125 */
 	{ 3,	TS,	sys_sigprocmask,	"sigprocmask"	}, /* 126 */
 	{ 2,	0,	sys_create_module,	"create_module"	}, /* 127 */
 	{ 3,	0,	sys_init_module,	"init_module"	}, /* 128 */
 	{ 2,	0,	sys_delete_module,	"delete_module"	}, /* 129 */
 	{ 1,	0,	sys_get_kernel_syms,	"get_kernel_syms"}, /* 130 */
-	{ 4,	0,	sys_quotactl,		"quotactl"	}, /* 131 */
+	{ 4,	TF,	sys_quotactl,		"quotactl"	}, /* 131 */
 	{ 1,	0,	sys_getpgid,		"getpgid"	}, /* 132 */
-	{ 1,	0,	sys_fchdir,		"fchdir"	}, /* 133 */
+	{ 1,	TD,	sys_fchdir,		"fchdir"	}, /* 133 */
 	{ 0,	0,	sys_bdflush,		"bdflush"	}, /* 134 */
 	{ 3,	0,	sys_sysfs,		"sysfs"		}, /* 135 */
 	{ 1,	0,	sys_personality,	"personality"	}, /* 136 */
 	{ 5,	0,	sys_afs_syscall,	"afs_syscall"	}, /* 137 */
 	{ 1,	NF,	sys_setfsuid,		"setfsuid"	}, /* 138 */
 	{ 1,	NF,	sys_setfsgid,		"setfsgid"	}, /* 139 */
-	{ 5,	0,	sys_llseek,		"_llseek"	}, /* 140 */
-	{ 3,	0,	sys_getdents,		"getdents"	}, /* 141 */
-	{ 5,	0,	sys_select,		"select"	}, /* 142 */
-	{ 2,	0,	sys_flock,		"flock"		}, /* 143 */
-	{ 3,	0,	sys_msync,		"msync"		}, /* 144 */
-	{ 3,	0,	sys_readv,		"readv"		}, /* 145 */
-	{ 3,	0,	sys_writev,		"writev"	}, /* 146 */
+	{ 5,	TD,	sys_llseek,		"_llseek"	}, /* 140 */
+	{ 3,	TD,	sys_getdents,		"getdents"	}, /* 141 */
+	{ 5,	TD,	sys_select,		"select"	}, /* 142 */
+	{ 2,	TD,	sys_flock,		"flock"		}, /* 143 */
+	{ 3,	TM,	sys_msync,		"msync"		}, /* 144 */
+	{ 3,	TD,	sys_readv,		"readv"		}, /* 145 */
+	{ 3,	TD,	sys_writev,		"writev"	}, /* 146 */
 	{ 1,	0,	sys_getsid,		"getsid"	}, /* 147 */
-	{ 1,	0,	sys_fdatasync,		"fdatasync"	}, /* 148 */
+	{ 1,	TD,	sys_fdatasync,		"fdatasync"	}, /* 148 */
 	{ 1,	0,	sys_sysctl,		"_sysctl"	}, /* 149 */
-	{ 2,	0,	sys_mlock,		"mlock"		}, /* 150 */
-	{ 2,	0,	sys_munlock,		"munlock"	}, /* 151 */
-	{ 1,	0,	sys_mlockall,		"mlockall"	}, /* 152 */
-	{ 0,	0,	sys_munlockall,		"munlockall"	}, /* 153 */
+	{ 2,	TM,	sys_mlock,		"mlock"		}, /* 150 */
+	{ 2,	TM,	sys_munlock,		"munlock"	}, /* 151 */
+	{ 1,	TM,	sys_mlockall,		"mlockall"	}, /* 152 */
+	{ 0,	TM,	sys_munlockall,		"munlockall"	}, /* 153 */
 	{ 0,	0,	sys_sched_setparam,	"sched_setparam"}, /* 154 */
 	{ 2,	0,	sys_sched_getparam,	"sched_getparam"}, /* 155 */
 	{ 3,	0,	sys_sched_setscheduler,	"sched_setscheduler"}, /* 156 */
@@ -189,12 +189,12 @@
 	{ 1,	0,	sys_sched_get_priority_min,"sched_get_priority_min"}, /* 160 */
 	{ 2,	0,	sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 161 */
 	{ 2,	0,	sys_nanosleep,		"nanosleep"	}, /* 162 */
-	{ 5,	0,	sys_mremap,		"mremap"	}, /* 163 */
+	{ 5,	TM,	sys_mremap,		"mremap"	}, /* 163 */
 	{ 3,	0,	sys_setresuid,		"setresuid"	}, /* 164 */
 	{ 3,	0,	sys_getresuid,		"getresuid"	}, /* 165 */
 	{ 5,	0,	sys_vm86,		"vm86"		}, /* 166 */
 	{ 5,	0,	sys_query_module,	"query_module"	}, /* 167 */
-	{ 3,	0,	sys_poll,		"poll"		}, /* 168 */
+	{ 3,	TD,	sys_poll,		"poll"		}, /* 168 */
 	{ 3,	0,	sys_nfsservctl,		"nfsservctl"	}, /* 169 */
 	{ 3,	0,	sys_setresgid,		"setresgid"	}, /* 170 */
 	{ 3,	0,	sys_getresgid,		"getresgid"	}, /* 171 */
@@ -207,8 +207,8 @@
 	{ 3,	TS,	sys_rt_sigqueueinfo,    "rt_sigqueueinfo"}, /* 178 */
 	{ 2,	TS,	sys_rt_sigsuspend,	"rt_sigsuspend"	}, /* 179 */
 
-	{ 6,	TF,	sys_pread,		"pread"		}, /* 180 */
-	{ 6,	TF,	sys_pwrite,		"pwrite"	}, /* 181 */
+	{ 6,	TD,	sys_pread,		"pread"		}, /* 180 */
+	{ 6,	TD,	sys_pwrite,		"pwrite"	}, /* 181 */
 	{ 3,	TF,	sys_chown,		"chown"		}, /* 182 */
 	{ 2,	TF,	sys_getcwd,		"getcwd"	}, /* 183 */
 	{ 2,	0,	sys_capget,		"capget"	}, /* 184 */
@@ -219,12 +219,12 @@
 	{ 5,	0,	sys_putpmsg,		"putpmsg"	}, /* 189 */
 	{ 0,	TP,	sys_vfork,		"vfork"		}, /* 190 */
 	{ 2,	0,	sys_getrlimit,		"getrlimit"	}, /* 191 */
-	{ 6,	TD,	sys_mmap,		"mmap2"		}, /* 192 */
+	{ 6,	TD|TM,	sys_mmap_pgoff,		"mmap2"		}, /* 192 */
 	{ 4,	TF,	sys_truncate64,		"truncate64"	}, /* 193 */
-	{ 4,	TF,	sys_ftruncate64,	"ftruncate64"	}, /* 194 */
+	{ 4,	TD,	sys_ftruncate64,	"ftruncate64"	}, /* 194 */
 	{ 2,	TF,	sys_stat64,		"stat64"	}, /* 195 */
 	{ 2,	TF,	sys_lstat64,		"lstat64"	}, /* 196 */
-	{ 2,	TF,	sys_fstat64,		"fstat64"	}, /* 197 */
+	{ 2,	TD,	sys_fstat64,		"fstat64"	}, /* 197 */
 	{ 3,	TF,	sys_chown,		"lchown32"	}, /* 198 */
 	{ 0,	NF,	sys_getuid,		"getuid32"	}, /* 199 */
 
@@ -235,7 +235,7 @@
 	{ 2,	0,	sys_setregid,		"setregid32"	}, /* 204 */
 	{ 2,	0,	sys_getgroups32,	"getgroups32"	}, /* 205 */
 	{ 2,	0,	sys_setgroups32,	"setgroups32"	}, /* 206 */
-	{ 3,	0,	sys_fchown,		"fchown32"	}, /* 207 */
+	{ 3,	TD,	sys_fchown,		"fchown32"	}, /* 207 */
 	{ 3,	0,	sys_setresuid,		"setresuid32"	}, /* 208 */
 	{ 3,	0,	sys_getresuid,		"getresuid32"	}, /* 209 */
 	{ 3,	0,	sys_setresgid,		"setresgid32"	}, /* 210 */
@@ -245,18 +245,18 @@
 	{ 1,	0,	sys_setgid,		"setgid32"	}, /* 214 */
 	{ 1,	NF,	sys_setfsuid,		"setfsuid32"	}, /* 215 */
 	{ 1,	NF,	sys_setfsgid,		"setfsgid32"	}, /* 216 */
-	{ 3,	0,	sys_getdents64,		"getdents64"	}, /* 217 */
+	{ 3,	TD,	sys_getdents64,		"getdents64"	}, /* 217 */
 	{ 2,	TF,	sys_pivotroot,		"pivot_root"	}, /* 218 */
-	{ 3,	0,	sys_mincore,		"mincore"	}, /* 219 */
-	{ 3,	0,	sys_madvise,		"madvise"	}, /* 220 */
-	{ 3,	0,	sys_fcntl,		"fcntl64"	}, /* 221 */
+	{ 3,	TM,	sys_mincore,		"mincore"	}, /* 219 */
+	{ 3,	TM,	sys_madvise,		"madvise"	}, /* 220 */
+	{ 3,	TD,	sys_fcntl,		"fcntl64"	}, /* 221 */
 	{ 5,	0,	NULL,			NULL		}, /* 222 */
 	{ 5,	0,	NULL,			NULL		}, /* 223 */
 	{ 0,	0,	sys_gettid,		"gettid"	}, /* 224 */
-	{ 5,	0,	sys_readahead,		"readahead"	}, /* 225 */
+	{ 5,	TD,	sys_readahead,		"readahead"	}, /* 225 */
 	{ 5,	TF,	sys_setxattr,		"setxattr"	}, /* 226 */
 	{ 5,	TF,	sys_setxattr,		"lsetxattr"	}, /* 227 */
-	{ 5,	0,	sys_fsetxattr,		"fsetxattr"	}, /* 228 */
+	{ 5,	TD,	sys_fsetxattr,		"fsetxattr"	}, /* 228 */
 	{ 4,	TF,	sys_getxattr,		"getxattr"	}, /* 229 */
 	{ 4,	TF,	sys_getxattr,		"lgetxattr"	}, /* 230 */
 	{ 4,	TD,	sys_fgetxattr,		"fgetxattr"	}, /* 231 */
@@ -281,7 +281,7 @@
 	{ 1,	TD,	sys_epoll_create,	"epoll_create"	}, /* 250 */
 	{ 4,	TD,	sys_epoll_ctl,		"epoll_ctl"	}, /* 251 */
 	{ 4,	TD,	sys_epoll_wait,		"epoll_wait"	}, /* 252 */
-	{ 5,	0,	sys_remap_file_pages,	"remap_file_pages"}, /* 253 */
+	{ 5,	TM,	sys_remap_file_pages,	"remap_file_pages"}, /* 253 */
 	{ 5,	0,	NULL,			NULL		}, /* 254 */
 	{ 5,	0,	NULL,			NULL		}, /* 255 */
 	{ 1,	0,	sys_set_tid_address,	"set_tid_address"}, /* 256 */
@@ -295,7 +295,7 @@
 	{ 2,	0,	sys_clock_getres,	"clock_getres"	}, /* 264 */
 	{ 4,	0,	sys_clock_nanosleep,	"clock_nanosleep"}, /* 265 */
 	{ 3,	TF,	sys_statfs64,		"statfs64"	}, /* 266 */
-	{ 3,	0,	sys_fstatfs64,		"fstatfs64"	}, /* 267 */
+	{ 3,	TD,	sys_fstatfs64,		"fstatfs64"	}, /* 267 */
 	{ 3,	TS,	sys_tgkill,		"tgkill"	}, /* 268 */
 	{ 2,	TF,	sys_utimes,		"utimes"	}, /* 269 */
 	{ 6,	TD,	sys_fadvise64_64,	"fadvise64_64"	}, /* 270 */
@@ -347,9 +347,9 @@
 	{ 0,	TD,	sys_inotify_init,	"inotify_init"	}, /* 316 */
 	{ 3,	TD,	sys_inotify_add_watch,	"inotify_add_watch" }, /* 317 */
 	{ 2,	TD,	sys_inotify_rm_watch,	"inotify_rm_watch" }, /* 318 */
-	{ 6,	0,	sys_mbind,		"mbind"		}, /* 319 */
-	{ 3,	0,	sys_set_mempolicy,	"set_mempolicy"	}, /* 320 */
-	{ 5,	0,	sys_get_mempolicy,	"get_mempolicy"	}, /* 321 */
+	{ 6,	TM,	sys_mbind,		"mbind"		}, /* 319 */
+	{ 3,	TM,	sys_set_mempolicy,	"set_mempolicy"	}, /* 320 */
+	{ 5,	TM,	sys_get_mempolicy,	"get_mempolicy"	}, /* 321 */
 	{ 4,	TD|TF,	sys_openat,		"openat"	}, /* 322 */
 	{ 3,	TD|TF,	sys_mkdirat,		"mkdirat"	}, /* 323 */
 	{ 4,	TD|TF,	sys_mknodat,		"mknodat"	}, /* 324 */
@@ -369,10 +369,10 @@
 	{ 2,	0,	sys_set_robust_list,	"set_robust_list" }, /* 338 */
 	{ 3,	0,	sys_get_robust_list,	"get_robust_list" }, /* 339 */
 	{ 6,	TD,	sys_splice,		"splice"	}, /* 340 */
-	{ 5,	0,	NULL,			NULL		}, /* 341 */
+	{ 6,	TD,	sys_sync_file_range2,	"sync_file_range2"}, /* 341 */
 	{ 4,	TD,	sys_tee,		"tee"		}, /* 342 */
 	{ 4,	TD,	sys_vmsplice,		"vmsplice"	}, /* 343 */
-	{ 6,	0,	sys_move_pages,		"move_pages"	}, /* 344 */
+	{ 6,	TM,	sys_move_pages,		"move_pages"	}, /* 344 */
 	{ 3,	0,	sys_getcpu,		"getcpu"	}, /* 345 */
 	{ 6,	TD,	sys_epoll_pwait,	"epoll_pwait"	}, /* 346 */
 	{ 4,	0,	sys_kexec_load,		"kexec_load"	}, /* 347 */
@@ -406,8 +406,11 @@
 	{ 2,	TD,	sys_setns,		"setns"		}, /* 375 */
 	{ 6,	0,	sys_process_vm_readv,	"process_vm_readv"	}, /* 376 */
 	{ 6,	0,	sys_process_vm_writev,	"process_vm_writev"	}, /* 377 */
-	{ 5,	0,	NULL,			NULL		}, /* 378 */
-	{ 5,	0,	NULL,			NULL		}, /* 379 */
+	{ 5,	0,	sys_kcmp,		"kcmp"		}, /* 378 */
+	{ 3,	TD,	sys_finit_module,	"finit_module"	}, /* 379 */
+#ifdef __ARM_EABI__
+# define ARM_LAST_ORDINARY_SYSCALL 379
+#else
 	{ 5,	0,	NULL,			NULL		}, /* 380 */
 	{ 5,	0,	NULL,			NULL		}, /* 381 */
 	{ 5,	0,	NULL,			NULL		}, /* 382 */
@@ -428,11 +431,8 @@
 	{ 5,	0,	NULL,			NULL		}, /* 397 */
 	{ 5,	0,	NULL,			NULL		}, /* 398 */
 	{ 5,	0,	NULL,			NULL		}, /* 399 */
-
-#ifndef __ARM_EABI__
-#if SYS_socket_subcall != 400
- #error fix me
-#endif
+#define SYS_socket_subcall	400
+#include "subcall.h"
 	{ 6,	0,	printargs,		"socket_subcall"}, /* 400 */
 	{ 3,	TN,	sys_socket,		"socket"	}, /* 401 */
 	{ 3,	TN,	sys_bind,		"bind"		}, /* 402 */
@@ -450,13 +450,13 @@
 	{ 5,	TN,	sys_setsockopt,		"setsockopt"	}, /* 414 */
 	{ 5,	TN,	sys_getsockopt,		"getsockopt"	}, /* 415 */
 	{ 3,	TN,	sys_sendmsg,		"sendmsg"	}, /* 416 */
-	{ 5,	TN,	sys_recvmsg,		"recvmsg"	}, /* 417 */
+	{ 3,	TN,	sys_recvmsg,		"recvmsg"	}, /* 417 */
 	{ 4,	TN,	sys_accept4,		"accept4"	}, /* 418 */
 	{ 5,	TN,	sys_recvmmsg,		"recvmmsg"	}, /* 419 */
 
-#if SYS_ipc_subcall != 420
- #error fix me
-#endif
+# if SYS_ipc_subcall != 420
+#  error fix me
+# endif
 	{ 4,	0,	printargs,		"ipc_subcall"	}, /* 420 */
 	{ 4,	TI,	sys_semop,		"semop"		}, /* 421 */
 	{ 4,	TI,	sys_semget,		"semget"	}, /* 422 */
@@ -482,4 +482,22 @@
 	{ 4,	TI,	sys_shmdt,		"shmdt"		}, /* 442 */
 	{ 4,	TI,	sys_shmget,		"shmget"	}, /* 443 */
 	{ 4,	TI,	sys_shmctl,		"shmctl"	}, /* 444 */
-#endif
+# define ARM_LAST_ORDINARY_SYSCALL 444
+#endif /* !EABI */
+
+	/* __ARM_NR_cmpxchg (0x000ffff0).
+	 * Remapped by shuffle_scno() to be directly after ordinary syscalls
+	 * in this table.
+	 */
+	{ 5,	0,	printargs,		"cmpxchg"		},
+
+	/* ARM specific syscalls. Encoded with scno 0x000f00xx.
+	 * Remapped by shuffle_scno() to be directly after __ARM_NR_cmpxchg.
+	 */
+	{ 5,	0,	NULL,			NULL			}, /* 0 */
+	{ 5,	0,	printargs,		"breakpoint"		}, /* 1 */
+	{ 5,	0,	printargs,		"cacheflush"		}, /* 2 */
+	{ 5,	0,	printargs,		"usr26"			}, /* 3 */
+	{ 5,	0,	printargs,		"usr32"			}, /* 4 */
+	{ 5,	0,	printargs,		"set_tls"		}, /* 5 */
+#define ARM_LAST_SPECIAL_SYSCALL 5
diff --git a/linux/dummy.h b/linux/dummy.h
index ce340b9..9d33fe1 100644
--- a/linux/dummy.h
+++ b/linux/dummy.h
@@ -26,22 +26,29 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+#ifndef HAVE_STRUCT___OLD_KERNEL_STAT
+#define	sys_oldfstat		printargs
+#define	sys_oldstat		printargs
+#endif
+
 /* still unfinished */
 #define	sys_add_key		printargs
 #define	sys_fanotify_init	printargs
 #define	sys_fanotify_mark	printargs
+#define	sys_finit_module	printargs
 #define	sys_ioperm		printargs
 #define	sys_iopl		printargs
 #define	sys_ioprio_get		printargs
 #define	sys_ioprio_set		printargs
+#define	sys_kcmp		printargs
 #define	sys_kexec_load		printargs
 #define	sys_keyctl		printargs
 #define	sys_lookup_dcookie	printargs
 #define	sys_name_to_handle_at	printargs
 #define	sys_open_by_handle_at	printargs
-#define	sys_perf_event_open	printargs
 #define	sys_request_key		printargs
 #define	sys_sync_file_range	printargs
+#define	sys_sync_file_range2	printargs
 #define	sys_sysfs		printargs
 #define	sys_vm86old		printargs
 #define	sys_vm86		printargs
@@ -68,9 +75,12 @@
 #define	sys_geteuid		sys_getuid
 #define	sys_getgid		sys_getuid
 #define	sys_getresgid		sys_getresuid
+#define	sys_lstat		sys_stat
+#define	sys_lstat64		sys_stat64
 #define	sys_mlock		sys_munmap
 #define	sys_mq_unlink		sys_chdir
 #define	sys_munlock		sys_munmap
+#define	sys_oldlstat		sys_oldstat
 #define	sys_pivotroot		sys_link
 #define	sys_rename		sys_link
 #define	sys_rmdir		sys_chdir
@@ -145,15 +155,15 @@
 #define	sys_sendmsg		printargs
 #endif
 
-#ifndef SYS_getpmsg
+/* Who has STREAMS syscalls?
+ * Linux hasn't. Solaris has (had?).
+ * Just in case I miss something, retain in for Sparc.
+ * Note: SYS_get/putpmsg may be defined even though syscalls
+ * return ENOSYS. Can't just check defined(SYS_getpmsg).
+ */
+#if (!defined(SPARC) && !defined(SPARC64)) || !defined(SYS_getpmsg)
 #define	sys_getpmsg		printargs
 #endif
-#ifndef SYS_putpmsg
+#if (!defined(SPARC) && !defined(SPARC64)) || !defined(SYS_putpmsg)
 #define	sys_putpmsg		printargs
 #endif
-
-#ifndef HAVE_STRUCT___OLD_KERNEL_STAT
-#define	sys_oldfstat		printargs
-#define	sys_oldlstat		printargs
-#define	sys_oldstat		printargs
-#endif
diff --git a/linux/errnoent.h b/linux/errnoent.h
index e43bff5..c2ac683 100644
--- a/linux/errnoent.h
+++ b/linux/errnoent.h
@@ -519,8 +519,8 @@
 	"ERESTARTNOHAND", /* 514 */
 	"ENOIOCTLCMD", /* 515 */
 	"ERESTART_RESTARTBLOCK", /* 516 */
-	"ERRNO_517", /* 517 */
-	"ERRNO_518", /* 518 */
+	"EPROBE_DEFER", /* 517 */
+	"EOPENSTALE", /* 518 */
 	"ERRNO_519", /* 519 */
 	"ERRNO_520", /* 520 */
 	"EBADHANDLE", /* 521 */
diff --git a/linux/i386/syscallent.h b/linux/i386/syscallent.h
index 4092f2e..480a28e 100644
--- a/linux/i386/syscallent.h
+++ b/linux/i386/syscallent.h
@@ -27,13 +27,13 @@
  */
 
 	{ 0,	0,	sys_restart_syscall,	"restart_syscall" }, /* 0 */
-	{ 1,	TP,	sys_exit,		"_exit",	}, /* 1 */
-	{ 0,	TP,	sys_fork,		"fork",		}, /* 2 */
-	{ 3,	TD,	sys_read,		"read",		}, /* 3 */
-	{ 3,	TD,	sys_write,		"write",	}, /* 4 */
+	{ 1,	TP,	sys_exit,		"_exit"		}, /* 1 */
+	{ 0,	TP,	sys_fork,		"fork"		}, /* 2 */
+	{ 3,	TD,	sys_read,		"read"		}, /* 3 */
+	{ 3,	TD,	sys_write,		"write"		}, /* 4 */
 	{ 3,	TD|TF,	sys_open,		"open"		}, /* 5 */
 	{ 1,	TD,	sys_close,		"close"		}, /* 6 */
-	{ 3,	TP,	sys_waitpid,		"waitpid",	}, /* 7 */
+	{ 3,	TP,	sys_waitpid,		"waitpid"	}, /* 7 */
 	{ 2,	TD|TF,	sys_creat,		"creat"		}, /* 8 */
 	{ 2,	TF,	sys_link,		"link"		}, /* 9 */
 	{ 1,	TF,	sys_unlink,		"unlink"	}, /* 10 */
@@ -43,7 +43,7 @@
 	{ 3,	TF,	sys_mknod,		"mknod"		}, /* 14 */
 	{ 2,	TF,	sys_chmod,		"chmod"		}, /* 15 */
 	{ 3,	TF,	sys_chown,		"lchown"	}, /* 16 */
-	{ 0,	0,	sys_break,		"break"		}, /* 17 */
+	{ 0,	TM,	sys_break,		"break"		}, /* 17 */
 	{ 2,	TF,	sys_oldstat,		"oldstat"	}, /* 18 */
 	{ 3,	TD,	sys_lseek,		"lseek"		}, /* 19 */
 	{ 0,	0,	sys_getpid,		"getpid"	}, /* 20 */
@@ -71,7 +71,7 @@
 	{ 1,	TD,	sys_pipe,		"pipe"		}, /* 42 */
 	{ 1,	0,	sys_times,		"times"		}, /* 43 */
 	{ 0,	0,	sys_prof,		"prof"		}, /* 44 */
-	{ 1,	0,	sys_brk,		"brk"		}, /* 45 */
+	{ 1,	TM,	sys_brk,		"brk"		}, /* 45 */
 	{ 1,	0,	sys_setgid,		"setgid"	}, /* 46 */
 	{ 0,	NF,	sys_getgid,		"getgid"	}, /* 47 */
 	{ 3,	TS,	sys_signal,		"signal"	}, /* 48 */
@@ -116,8 +116,8 @@
 	{ 2,	TF,	sys_swapon,		"swapon"	}, /* 87 */
 	{ 4,	0,	sys_reboot,		"reboot"	}, /* 88 */
 	{ 3,	TD,	sys_readdir,		"readdir"	}, /* 89 */
-	{ 6,	TD,	sys_old_mmap,		"old_mmap"	}, /* 90 */
-	{ 2,	0,	sys_munmap,		"munmap"	}, /* 91 */
+	{ 6,	TD|TM,	sys_old_mmap,		"old_mmap"	}, /* 90 */
+	{ 2,	TM,	sys_munmap,		"munmap"	}, /* 91 */
 	{ 2,	TF,	sys_truncate,		"truncate"	}, /* 92 */
 	{ 2,	TD,	sys_ftruncate,		"ftruncate"	}, /* 93 */
 	{ 2,	TD,	sys_fchmod,		"fchmod"	}, /* 94 */
@@ -140,10 +140,10 @@
 	{ 0,	0,	sys_vhangup,		"vhangup"	}, /* 111 */
 	{ 0,	0,	sys_idle,		"idle"		}, /* 112 */
 	{ 1,	0,	sys_vm86old,		"vm86old"	}, /* 113 */
-	{ 4,	TP,	sys_wait4,		"wait4",	}, /* 114 */
+	{ 4,	TP,	sys_wait4,		"wait4"		}, /* 114 */
 	{ 1,	TF,	sys_swapoff,		"swapoff"	}, /* 115 */
 	{ 1,	0,	sys_sysinfo,		"sysinfo"	}, /* 116 */
-	{ 6,	TI,	sys_ipc,		"ipc",		}, /* 117 */
+	{ 6,	TI,	sys_ipc,		"ipc"		}, /* 117 */
 	{ 1,	TD,	sys_fsync,		"fsync"		}, /* 118 */
 	{ 0,	TS,	sys_sigreturn,		"sigreturn"	}, /* 119 */
 	{ 5,	TP,	sys_clone,		"clone"		}, /* 120 */
@@ -151,17 +151,17 @@
 	{ 1,	0,	sys_uname,		"uname"		}, /* 122 */
 	{ 3,	0,	sys_modify_ldt,		"modify_ldt"	}, /* 123 */
 	{ 1,	0,	sys_adjtimex,		"adjtimex"	}, /* 124 */
-	{ 3,	0,	sys_mprotect,		"mprotect"	}, /* 125 */
+	{ 3,	TM,	sys_mprotect,		"mprotect"	}, /* 125 */
 	{ 3,	TS,	sys_sigprocmask,	"sigprocmask"	}, /* 126 */
 	{ 2,	0,	sys_create_module,	"create_module"	}, /* 127 */
 	{ 3,	0,	sys_init_module,	"init_module"	}, /* 128 */
 	{ 2,	0,	sys_delete_module,	"delete_module"	}, /* 129 */
 	{ 1,	0,	sys_get_kernel_syms,	"get_kernel_syms"}, /* 130 */
-	{ 4,	0,	sys_quotactl,		"quotactl"	}, /* 131 */
+	{ 4,	TF,	sys_quotactl,		"quotactl"	}, /* 131 */
 	{ 1,	0,	sys_getpgid,		"getpgid"	}, /* 132 */
 	{ 1,	TD,	sys_fchdir,		"fchdir"	}, /* 133 */
 	{ 0,	0,	sys_bdflush,		"bdflush"	}, /* 134 */
-	{ 3,	0,	sys_sysfs,		"sysfs",	}, /* 135 */
+	{ 3,	0,	sys_sysfs,		"sysfs"		}, /* 135 */
 	{ 1,	0,	sys_personality,	"personality"	}, /* 136 */
 	{ 5,	0,	sys_afs_syscall,	"afs_syscall"	}, /* 137 */
 	{ 1,	NF,	sys_setfsuid,		"setfsuid"	}, /* 138 */
@@ -170,16 +170,16 @@
 	{ 3,	TD,	sys_getdents,		"getdents"	}, /* 141 */
 	{ 5,	TD,	sys_select,		"select"	}, /* 142 */
 	{ 2,	TD,	sys_flock,		"flock"		}, /* 143 */
-	{ 3,	0,	sys_msync,		"msync"		}, /* 144 */
-	{ 3,	TD,	sys_readv,		"readv",	}, /* 145 */
-	{ 3,	TD,	sys_writev,		"writev",	}, /* 146 */
+	{ 3,	TM,	sys_msync,		"msync"		}, /* 144 */
+	{ 3,	TD,	sys_readv,		"readv"		}, /* 145 */
+	{ 3,	TD,	sys_writev,		"writev"	}, /* 146 */
 	{ 1,	0,	sys_getsid,		"getsid"	}, /* 147 */
 	{ 1,	TD,	sys_fdatasync,		"fdatasync"	}, /* 148 */
 	{ 1,	0,	sys_sysctl,		"_sysctl"	}, /* 149 */
-	{ 2,	0,	sys_mlock,		"mlock"		}, /* 150 */
-	{ 2,	0,	sys_munlock,		"munlock"	}, /* 151 */
-	{ 1,	0,	sys_mlockall,		"mlockall"	}, /* 152 */
-	{ 0,	0,	sys_munlockall,		"munlockall"	}, /* 153 */
+	{ 2,	TM,	sys_mlock,		"mlock"		}, /* 150 */
+	{ 2,	TM,	sys_munlock,		"munlock"	}, /* 151 */
+	{ 1,	TM,	sys_mlockall,		"mlockall"	}, /* 152 */
+	{ 0,	TM,	sys_munlockall,		"munlockall"	}, /* 153 */
 	{ 0,	0,	sys_sched_setparam,	"sched_setparam"}, /* 154 */
 	{ 2,	0,	sys_sched_getparam,	"sched_getparam"}, /* 155 */
 	{ 3,	0,	sys_sched_setscheduler,	"sched_setscheduler"}, /* 156 */
@@ -189,7 +189,7 @@
 	{ 1,	0,	sys_sched_get_priority_min,"sched_get_priority_min"}, /* 160 */
 	{ 2,	0,	sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 161 */
 	{ 2,	0,	sys_nanosleep,		"nanosleep"	}, /* 162 */
-	{ 5,	0,	sys_mremap,		"mremap"	}, /* 163 */
+	{ 5,	TM,	sys_mremap,		"mremap"	}, /* 163 */
 	{ 3,	0,	sys_setresuid,		"setresuid"	}, /* 164 */
 	{ 3,	0,	sys_getresuid,		"getresuid"	}, /* 165 */
 	{ 5,	0,	sys_vm86,		"vm86"		}, /* 166 */
@@ -207,8 +207,8 @@
 	{ 3,	TS,	sys_rt_sigqueueinfo,    "rt_sigqueueinfo"}, /* 178 */
 	{ 2,	TS,	sys_rt_sigsuspend,	"rt_sigsuspend"	}, /* 179 */
 
-	{ 5,	TD,	sys_pread,		"pread64",	}, /* 180 */
-	{ 5,	TD,	sys_pwrite,		"pwrite64",	}, /* 181 */
+	{ 5,	TD,	sys_pread,		"pread64"	}, /* 180 */
+	{ 5,	TD,	sys_pwrite,		"pwrite64"	}, /* 181 */
 	{ 3,	TF,	sys_chown,		"chown"		}, /* 182 */
 	{ 2,	TF,	sys_getcwd,		"getcwd"	}, /* 183 */
 	{ 2,	0,	sys_capget,		"capget"	}, /* 184 */
@@ -219,7 +219,7 @@
 	{ 5,	0,	sys_putpmsg,		"putpmsg"	}, /* 189 */
 	{ 0,	TP,	sys_vfork,		"vfork"		}, /* 190 */
 	{ 2,	0,	sys_getrlimit,		"getrlimit"	}, /* 191 */
-	{ 6,	TD,	sys_mmap,		"mmap2"		}, /* 192 */
+	{ 6,	TD|TM,	sys_mmap_pgoff,		"mmap2"		}, /* 192 */
 	{ 3,	TF,	sys_truncate64,		"truncate64"	}, /* 193 */
 	{ 3,	TD,	sys_ftruncate64,	"ftruncate64"	}, /* 194 */
 	{ 2,	TF,	sys_stat64,		"stat64"	}, /* 195 */
@@ -246,8 +246,8 @@
 	{ 1,	NF,	sys_setfsuid,		"setfsuid32"	}, /* 215 */
 	{ 1,	NF,	sys_setfsgid,		"setfsgid32"	}, /* 216 */
 	{ 2,	TF,	sys_pivotroot,		"pivot_root"	}, /* 217 */
-	{ 3,	0,	sys_mincore,		"mincore"	}, /* 218 */
-	{ 3,	0,	sys_madvise,		"madvise"	}, /* 219 */
+	{ 3,	TM,	sys_mincore,		"mincore"	}, /* 218 */
+	{ 3,	TM,	sys_madvise,		"madvise"	}, /* 219 */
 	{ 3,	TD,	sys_getdents64,		"getdents64"	}, /* 220 */
 	{ 3,	TD,	sys_fcntl,		"fcntl64"	}, /* 221 */
 	{ 6,	0,	NULL,			NULL		}, /* 222 */
@@ -285,7 +285,7 @@
 	{ 1,	TD,	sys_epoll_create,	"epoll_create"	}, /* 254 */
 	{ 4,	TD,	sys_epoll_ctl,		"epoll_ctl"	}, /* 255 */
 	{ 4,	TD,	sys_epoll_wait,		"epoll_wait"	}, /* 256 */
-	{ 5,	0,	sys_remap_file_pages,	"remap_file_pages"}, /* 257 */
+	{ 5,	TM,	sys_remap_file_pages,	"remap_file_pages"}, /* 257 */
 	{ 1,	0,	sys_set_tid_address,	"set_tid_address"}, /* 258 */
 	{ 3,	0,	sys_timer_create,	"timer_create"	}, /* 259 */
 	{ 4,	0,	sys_timer_settime,	"timer_settime"	}, /* 260 */
@@ -302,9 +302,9 @@
 	{ 2,	TF,	sys_utimes,		"utimes"	}, /* 271 */
 	{ 6,	TD,	sys_fadvise64_64,	"fadvise64_64"	}, /* 272 */
 	{ 5,	0,	sys_vserver,		"vserver"	}, /* 273 */
-	{ 6,	0,	sys_mbind,		"mbind"		}, /* 274 */
-	{ 5,	0,	sys_get_mempolicy,	"get_mempolicy"	}, /* 275 */
-	{ 3,	0,	sys_set_mempolicy,	"set_mempolicy"	}, /* 276 */
+	{ 6,	TM,	sys_mbind,		"mbind"		}, /* 274 */
+	{ 5,	TM,	sys_get_mempolicy,	"get_mempolicy"	}, /* 275 */
+	{ 3,	TM,	sys_set_mempolicy,	"set_mempolicy"	}, /* 276 */
 	{ 4,	0,	sys_mq_open,		"mq_open"	}, /* 277 */
 	{ 1,	0,	sys_mq_unlink,		"mq_unlink"	}, /* 278 */
 	{ 5,	0,	sys_mq_timedsend,	"mq_timedsend"	}, /* 279 */
@@ -312,7 +312,7 @@
 	{ 2,	0,	sys_mq_notify,		"mq_notify"	}, /* 281 */
 	{ 3,	0,	sys_mq_getsetattr,	"mq_getsetattr"	}, /* 282 */
 	{ 4,	0,	sys_kexec_load,		"kexec_load"	}, /* 283 */
-	{ 5,	TP,	sys_waitid,		"waitid",	}, /* 284 */
+	{ 5,	TP,	sys_waitid,		"waitid"	}, /* 284 */
 	{ 6,	0,	NULL,			NULL		}, /* 285 */
 	{ 5,	0,	sys_add_key,		"add_key"	}, /* 286 */
 	{ 4,	0,	sys_request_key,	"request_key"	}, /* 287 */
@@ -322,7 +322,7 @@
 	{ 0,	TD,	sys_inotify_init,	"inotify_init"	}, /* 291 */
 	{ 3,	TD,	sys_inotify_add_watch,	"inotify_add_watch" }, /* 292 */
 	{ 2,	TD,	sys_inotify_rm_watch,	"inotify_rm_watch" }, /* 293 */
-	{ 4,	0,	sys_migrate_pages,	"migrate_pages"	}, /* 294 */
+	{ 4,	TM,	sys_migrate_pages,	"migrate_pages"	}, /* 294 */
 	{ 4,	TD|TF,	sys_openat,		"openat"	}, /* 295 */
 	{ 3,	TD|TF,	sys_mkdirat,		"mkdirat"	}, /* 296 */
 	{ 4,	TD|TF,	sys_mknodat,		"mknodat"	}, /* 297 */
@@ -342,10 +342,10 @@
 	{ 2,	0,	sys_set_robust_list,	"set_robust_list" }, /* 311 */
 	{ 3,	0,	sys_get_robust_list,	"get_robust_list" }, /* 312 */
 	{ 6,	TD,	sys_splice,		"splice"	}, /* 313 */
-	{ 4,	TD,	sys_sync_file_range,	"sync_file_range" }, /* 314 */
+	{ 6,	TD,	sys_sync_file_range,	"sync_file_range" }, /* 314 */
 	{ 4,	TD,	sys_tee,		"tee"		}, /* 315 */
 	{ 4,	TD,	sys_vmsplice,		"vmsplice"	}, /* 316 */
-	{ 6,	0,	sys_move_pages,		"move_pages"	}, /* 317 */
+	{ 6,	TM,	sys_move_pages,		"move_pages"	}, /* 317 */
 	{ 3,	0,	sys_getcpu,		"getcpu"	}, /* 318 */
 	{ 6,	TD,	sys_epoll_pwait,	"epoll_pwait"	}, /* 319 */
 	{ 4,	TD|TF,	sys_utimensat,		"utimensat"	}, /* 320 */
@@ -377,8 +377,8 @@
 	{ 2,	TD,	sys_setns,		"setns"		}, /* 346 */
 	{ 6,	0,	sys_process_vm_readv,	"process_vm_readv"	}, /* 347 */
 	{ 6,	0,	sys_process_vm_writev,	"process_vm_writev"	}, /* 348 */
-	{ 5,	0,	NULL,			NULL		}, /* 349 */
-	{ 5,	0,	NULL,			NULL		}, /* 350 */
+	{ 5,	0,	sys_kcmp,		"kcmp"		}, /* 349 */
+	{ 3,	TD,	sys_finit_module,	"finit_module"	}, /* 350 */
 	{ 5,	0,	NULL,			NULL		}, /* 351 */
 	{ 5,	0,	NULL,			NULL		}, /* 352 */
 	{ 5,	0,	NULL,			NULL		}, /* 353 */
@@ -428,10 +428,8 @@
 	{ 5,	0,	NULL,			NULL		}, /* 397 */
 	{ 5,	0,	NULL,			NULL		}, /* 398 */
 	{ 5,	0,	NULL,			NULL		}, /* 399 */
-
-#if SYS_socket_subcall != 400
- #error fix me
-#endif
+#define SYS_socket_subcall	400
+#include "subcall.h"
 	{ 6,	0,	printargs,		"socket_subcall"}, /* 400 */
 	{ 3,	TN,	sys_socket,		"socket"	}, /* 401 */
 	{ 3,	TN,	sys_bind,		"bind"		}, /* 402 */
@@ -441,15 +439,15 @@
 	{ 3,	TN,	sys_getsockname,	"getsockname"	}, /* 406 */
 	{ 3,	TN,	sys_getpeername,	"getpeername"	}, /* 407 */
 	{ 4,	TN,	sys_socketpair,		"socketpair"	}, /* 408 */
-	{ 4,	TN,	sys_send,		"send",		}, /* 409 */
-	{ 4,	TN,	sys_recv,		"recv",		}, /* 410 */
-	{ 6,	TN,	sys_sendto,		"sendto",	}, /* 411 */
-	{ 6,	TN,	sys_recvfrom,		"recvfrom",	}, /* 412 */
+	{ 4,	TN,	sys_send,		"send"		}, /* 409 */
+	{ 4,	TN,	sys_recv,		"recv"		}, /* 410 */
+	{ 6,	TN,	sys_sendto,		"sendto"	}, /* 411 */
+	{ 6,	TN,	sys_recvfrom,		"recvfrom"	}, /* 412 */
 	{ 2,	TN,	sys_shutdown,		"shutdown"	}, /* 413 */
 	{ 5,	TN,	sys_setsockopt,		"setsockopt"	}, /* 414 */
 	{ 5,	TN,	sys_getsockopt,		"getsockopt"	}, /* 415 */
 	{ 3,	TN,	sys_sendmsg,		"sendmsg"	}, /* 416 */
-	{ 5,	TN,	sys_recvmsg,		"recvmsg"	}, /* 417 */
+	{ 3,	TN,	sys_recvmsg,		"recvmsg"	}, /* 417 */
 	{ 4,	TN,	sys_accept4,		"accept4"	}, /* 418 */
 	{ 5,	TN,	sys_recvmmsg,		"recvmmsg"	}, /* 419 */
 
diff --git a/linux/ioctlent-filter.awk b/linux/ioctlent-filter.awk
new file mode 100644
index 0000000..181c4bf
--- /dev/null
+++ b/linux/ioctlent-filter.awk
@@ -0,0 +1,19 @@
+#!/bin/awk -f
+# Filter out redundant "*32" symbols.
+
+BEGIN {
+	s=""
+	c=""
+}
+
+NF == 3 && $2 ~ /^"[^",]*",$/ {
+	if ($2 == s && $3 == c)
+		next
+	s = $2
+	sub(/",$/, "32\",", s)
+	c = $3
+}
+
+{
+	print
+}
diff --git a/linux/ioctlent.sh b/linux/ioctlent.sh
index 9bcff5f..c483ba8 100755
--- a/linux/ioctlent.sh
+++ b/linux/ioctlent.sh
@@ -47,7 +47,7 @@
 
 	# Build the list of all ioctls
 	regexp='^[[:space:]]*#[[:space:]]*define[[:space:]]\+[A-Z][A-Z0-9_]*[[:space:]]\+0x'"$type"'..\>'
-	(cd "$dir" && grep "$regexp" "$@" /dev/null 2>/dev/null) |
+	(cd "$dir" && for f; do grep "$regexp" "$f" "uapi/$f" 2>/dev/null; done) |
 		sed -ne "s,$asm/,asm/,g"'
 s/^\(.*\):[[:space:]]*#[[:space:]]*define[[:space:]]*\([A-Z0-9_]*\)[[:space:]]*\(0x'"$type"'..\).*/	{ "\1",	"\2",	\3	},/p' \
 		>> ioctls.h
@@ -94,8 +94,11 @@
 	-e 's/^\(.*\):[[:space:]]*#[[:space:]]*define[[:space:]]*\([A-Z0-9_]*\)[[:space:]]*_S\?I.*(\([^[,]*\)[[:space:]]*,[[:space:]]*\([^,)]*\).*/	{ "\1",	"\2",	_IOC(_IOC_NONE,\3,\4,0)	},/p' \
 	>> ioctls.h
 
-# Sort and drop dups?
-# sort -u <ioctls.h >ioctls1.h && mv ioctls1.h ioctls.h
+# Strip uapi/ prefix
+sed -i 's|"uapi/|"|' ioctls.h
+
+# Sort and drop dups
+sort -u -o ioctls.h ioctls.h
 
 > ioctldefs.h
 
diff --git a/linux/mips/syscallent-compat.h b/linux/mips/syscallent-compat.h
new file mode 100644
index 0000000..696108f
--- /dev/null
+++ b/linux/mips/syscallent-compat.h
@@ -0,0 +1,870 @@
+	{ 0,	0,	printargs,		"svr4_syscall"	}, /*  000 */
+	{ 0,	0,	printargs,		"svr4_exit"	}, /*  001 */
+	{ 0,	0,	printargs,		"svr4_fork"	}, /*  002 */
+	{ 0,	0,	printargs,		"svr4_read"	}, /*  003 */
+	{ 0,	0,	printargs,		"svr4_write"	}, /*  004 */
+	{ 0,	0,	printargs,		"svr4_open"	}, /*  005 */
+	{ 0,	0,	printargs,		"svr4_close"	}, /*  006 */
+	{ 0,	0,	printargs,		"svr4_wait"	}, /*  007 */
+	{ 0,	0,	printargs,		"svr4_creat"	}, /*  008 */
+	{ 0,	0,	printargs,		"svr4_link"	}, /*  009 */
+	{ 0,	0,	printargs,		"svr4_unlink"	}, /*  010 */
+	{ 0,	0,	printargs,		"svr4_exec"	}, /*  011 */
+	{ 0,	0,	printargs,		"svr4_chdir"	}, /*  012 */
+	{ 0,	0,	printargs,		"svr4_gtime"	}, /*  013 */
+	{ 0,	0,	printargs,		"svr4_mknod"	}, /*  014 */
+	{ 0,	0,	printargs,		"svr4_chmod"	}, /*  015 */
+	{ 0,	0,	printargs,		"svr4_chown"	}, /*  016 */
+	{ 0,	TM,	printargs,		"svr4_sbreak"	}, /*  017 */
+	{ 0,	0,	printargs,		"svr4_stat"	}, /*  018 */
+	{ 0,	0,	printargs,		"svr4_lseek"	}, /*  019 */
+	{ 0,	0,	printargs,		"svr4_getpid"	}, /*  020 */
+	{ 0,	0,	printargs,		"svr4_mount"	}, /*  021 */
+	{ 0,	0,	printargs,		"svr4_umount"	}, /*  022 */
+	{ 0,	0,	printargs,		"svr4_setuid"	}, /*  023 */
+	{ 0,	0,	printargs,		"svr4_getuid"	}, /*  024 */
+	{ 0,	0,	printargs,		"svr4_stime"	}, /*  025 */
+	{ 0,	0,	printargs,		"svr4_ptrace"	}, /*  026 */
+	{ 0,	0,	printargs,		"svr4_alarm"	}, /*  027 */
+	{ 0,	0,	printargs,		"svr4_fstat"	}, /*  028 */
+	{ 0,	0,	printargs,		"svr4_pause"	}, /*  029 */
+	{ 0,	0,	printargs,		"svr4_utime"	}, /*  030 */
+	{ 0,	0,	printargs,		"svr4_stty"	}, /*  031 */
+	{ 0,	0,	printargs,		"svr4_gtty"	}, /*  032 */
+	{ 0,	0,	printargs,		"svr4_access"	}, /*  033 */
+	{ 0,	0,	printargs,		"svr4_nice"	}, /*  034 */
+	{ 0,	0,	printargs,		"svr4_statfs"	}, /*  035 */
+	{ 0,	0,	printargs,		"svr4_sync"	}, /*  036 */
+	{ 0,	0,	printargs,		"svr4_kill"	}, /*  037 */
+	{ 0,	0,	printargs,		"svr4_fstatfs"	}, /*  038 */
+	{ 0,	0,	printargs,		"svr4_setpgrp"	}, /*  039 */
+	{ 0,	0,	printargs,		"svr4_cxenix"	}, /*  040 */
+	{ 0,	0,	printargs,		"svr4_dup"	}, /*  041 */
+	{ 0,	0,	printargs,		"svr4_pipe"	}, /*  042 */
+	{ 0,	0,	printargs,		"svr4_times"	}, /*  043 */
+	{ 0,	0,	printargs,		"svr4_profil"	}, /*  044 */
+	{ 0,	0,	printargs,		"svr4_plock"	}, /*  045 */
+	{ 0,	0,	printargs,		"svr4_setgid"	}, /*  046 */
+	{ 0,	0,	printargs,		"svr4_getgid"	}, /*  047 */
+	{ 0,	0,	printargs,		"svr4_sig"	}, /*  048 */
+	{ 0,	0,	printargs,		"svr4_msgsys"	}, /*  049 */
+	{ 0,	0,	printargs,		"svr4_sysmips"	}, /*  050 */
+	{ 0,	0,	printargs,		"svr4_sysacct"	}, /*  051 */
+	{ 0,	0,	printargs,		"svr4_shmsys"	}, /*  052 */
+	{ 0,	0,	printargs,		"svr4_semsys"	}, /*  053 */
+	{ 0,	0,	printargs,		"svr4_ioctl"	}, /*  054 */
+	{ 0,	0,	printargs,		"svr4_uadmin"	}, /*  055 */
+	{ 0,	0,	printargs,		"svr4_exch"	}, /*  056 */
+	{ 0,	0,	printargs,		"svr4_utssys"	}, /*  057 */
+	{ 0,	0,	printargs,		"svr4_fsync"	}, /*  058 */
+	{ 0,	0,	printargs,		"svr4_exece"	}, /*  059 */
+	{ 0,	0,	printargs,		"svr4_umask"	}, /*  060 */
+	{ 0,	0,	printargs,		"svr4_chroot"	}, /*  061 */
+	{ 0,	0,	printargs,		"svr4_fcntl"	}, /*  062 */
+	{ 0,	0,	printargs,		"svr4_ulimit"	}, /*  063 */
+	{ 0,	0,	NULL,			NULL		}, /*  064 */
+	{ 0,	0,	NULL,			NULL		}, /*  065 */
+	{ 0,	0,	NULL,			NULL		}, /*  066 */
+	{ 0,	0,	NULL,			NULL		}, /*  067 */
+	{ 0,	0,	NULL,			NULL		}, /*  068 */
+	{ 0,	0,	NULL,			NULL		}, /*  069 */
+	{ 0,	0,	printargs,		"svr4_advfs"	}, /*  070 */
+	{ 0,	0,	printargs,		"svr4_unadvfs"	}, /*  071 */
+	{ 0,	0,	NULL,			NULL		}, /*  072 */
+	{ 0,	0,	NULL,			NULL		}, /*  073 */
+	{ 0,	0,	printargs,		"svr4_rfstart"	}, /*  074 */
+	{ 0,	0,	NULL,			NULL		}, /*  075 */
+	{ 0,	0,	printargs,		"svr4_rdebug"	}, /*  076 */
+	{ 0,	0,	printargs,		"svr4_rfstop"	}, /*  077 */
+	{ 0,	0,	printargs,		"svr4_rfsys"	}, /*  078 */
+	{ 0,	0,	printargs,		"svr4_rmdir"	}, /*  079 */
+	{ 0,	0,	printargs,		"svr4_mkdir"	}, /*  080 */
+	{ 0,	0,	printargs,		"svr4_getdents"	}, /*  081 */
+	{ 0,	0,	printargs,		"svr4_libattach"	}, /*  082 */
+	{ 0,	0,	printargs,		"svr4_libdetach"	}, /*  083 */
+	{ 0,	0,	printargs,		"svr4_sysfs"	}, /*  084 */
+	{ 0,	0,	printargs,		"svr4_getmsg"	}, /*  085 */
+	{ 0,	0,	printargs,		"svr4_putmsg"	}, /*  086 */
+	{ 0,	0,	printargs,		"svr4_poll"	}, /*  087 */
+	{ 0,	0,	printargs,		"svr4_lstat"	}, /*  088 */
+	{ 0,	0,	printargs,		"svr4_symlink"	}, /*  089 */
+	{ 0,	0,	printargs,		"svr4_readlink"	}, /*  090 */
+	{ 0,	0,	printargs,		"svr4_setgroups"	}, /*  091 */
+	{ 0,	0,	printargs,		"svr4_getgroups"	}, /*  092 */
+	{ 0,	0,	printargs,		"svr4_fchmod"	}, /*  093 */
+	{ 0,	0,	printargs,		"svr4_fchown"	}, /*  094 */
+	{ 0,	0,	printargs,		"svr4_sigprocmask"	}, /*  095 */
+	{ 0,	0,	printargs,		"svr4_sigsuspend"	}, /*  096 */
+	{ 0,	0,	printargs,		"svr4_sigaltstack"	}, /*  097 */
+	{ 0,	0,	printargs,		"svr4_sigaction"	}, /*  098 */
+	{ 0,	0,	printargs,		"svr4_sigpending"	}, /*  099 */
+	{ 0,	0,	printargs,		"svr4_setcontext"	}, /*  0100 */
+	{ 0,	0,	printargs,		"svr4_evsys"	}, /*  0101 */
+	{ 0,	0,	printargs,		"svr4_evtrapret"	}, /*  0102 */
+	{ 0,	0,	printargs,		"svr4_statvfs"	}, /*  0103 */
+	{ 0,	0,	printargs,		"svr4_fstatvfs"	}, /*  0104 */
+	{ 0,	0,	NULL,			NULL		}, /* 105 */
+	{ 0,	0,	printargs,		"svr4_nfssys"	}, /*  0106 */
+	{ 0,	0,	printargs,		"svr4_waitid"	}, /*  0107 */
+	{ 0,	0,	printargs,		"svr4_sigsendset"	}, /*  0108 */
+	{ 0,	0,	printargs,		"svr4_hrtsys"	}, /*  0109 */
+	{ 0,	0,	printargs,		"svr4_acancel"	}, /*  0110 */
+	{ 0,	0,	printargs,		"svr4_async"	}, /*  0111 */
+	{ 0,	0,	printargs,		"svr4_priocntlset"	}, /*  0112 */
+	{ 0,	0,	printargs,		"svr4_pathconf"	}, /*  0113 */
+	{ 0,	TM,	printargs,		"svr4_mincore"	}, /*  0114 */
+	{ 0,	TD|TM,	printargs,		"svr4_mmap"	}, /*  0115 */
+	{ 0,	TM,	printargs,		"svr4_mprotect"	}, /*  0116 */
+	{ 0,	TM,	printargs,		"svr4_munmap"	}, /*  0117 */
+	{ 0,	0,	printargs,		"svr4_fpathconf"	}, /*  0118 */
+	{ 0,	0,	printargs,		"svr4_vfork"	}, /*  0119 */
+	{ 0,	0,	printargs,		"svr4_fchdir"	}, /*  0120 */
+	{ 0,	0,	printargs,		"svr4_readv"	}, /*  0121 */
+	{ 0,	0,	printargs,		"svr4_writev"	}, /*  0122 */
+	{ 0,	0,	printargs,		"svr4_xstat"	}, /*  0123 */
+	{ 0,	0,	printargs,		"svr4_lxstat"	}, /*  0124 */
+	{ 0,	0,	printargs,		"svr4_fxstat"	}, /*  0125 */
+	{ 0,	0,	printargs,		"svr4_xmknod"	}, /*  0126 */
+	{ 0,	0,	printargs,		"svr4_clocal"	}, /*  0127 */
+	{ 0,	0,	printargs,		"svr4_setrlimit"	}, /*  0128 */
+	{ 0,	0,	printargs,		"svr4_getrlimit"	}, /*  0129 */
+	{ 0,	0,	printargs,		"svr4_lchown"	}, /*  0130 */
+	{ 0,	0,	printargs,		"svr4_memcntl"	}, /*  0131 */
+	{ 0,	0,	printargs,		"svr4_getpmsg"	}, /*  0132 */
+	{ 0,	0,	printargs,		"svr4_putpmsg"	}, /*  0133 */
+	{ 0,	0,	printargs,		"svr4_rename"	}, /*  0134 */
+	{ 0,	0,	printargs,		"svr4_nuname"	}, /*  0135 */
+	{ 0,	0,	printargs,		"svr4_setegid"	}, /*  0136 */
+	{ 0,	0,	printargs,		"svr4_sysconf"	}, /*  0137 */
+	{ 0,	0,	printargs,		"svr4_adjtime"	}, /*  0138 */
+	{ 0,	0,	printargs,		"svr4_sysinfo"	}, /*  0139 */
+	{ 0,	0,	NULL,			NULL		}, /* 140 */
+	{ 0,	0,	printargs,		"svr4_seteuid"	}, /*  0141 */
+	{ 0,	0,	printargs,		"svr4_PYRAMID_statis"	}, /*  0142 */
+	{ 0,	0,	printargs,		"svr4_PYRAMID_tuning"	}, /*  0143 */
+	{ 0,	0,	printargs,		"svr4_PYRAMID_forcerr"	}, /*  0144 */
+	{ 0,	0,	printargs,		"svr4_PYRAMID_mpcntl"	}, /*  0145 */
+	{ 0,	0,	NULL,			NULL		}, /* 146 */
+	{ 0,	0,	NULL,			NULL		}, /* 147 */
+	{ 0,	0,	NULL,			NULL		}, /* 148 */
+	{ 0,	0,	NULL,			NULL		}, /* 149 */
+	{ 0,	0,	NULL,			NULL		}, /* 150 */
+	{ 0,	0,	NULL,			NULL		}, /* 151 */
+	{ 0,	0,	NULL,			NULL		}, /* 152 */
+	{ 0,	0,	NULL,			NULL		}, /* 153 */
+	{ 0,	0,	NULL,			NULL		}, /* 154 */
+	{ 0,	0,	NULL,			NULL		}, /* 155 */
+	{ 0,	0,	NULL,			NULL		}, /* 156 */
+	{ 0,	0,	NULL,			NULL		}, /* 157 */
+	{ 0,	0,	NULL,			NULL		}, /* 158 */
+	{ 0,	0,	NULL,			NULL		}, /* 159 */
+	{ 0,	0,	NULL,			NULL		}, /* 160 */
+	{ 0,	0,	NULL,			NULL		}, /* 161 */
+	{ 0,	0,	NULL,			NULL		}, /* 162 */
+	{ 0,	0,	NULL,			NULL		}, /* 163 */
+	{ 0,	0,	NULL,			NULL		}, /* 164 */
+	{ 0,	0,	NULL,			NULL		}, /* 165 */
+	{ 0,	0,	NULL,			NULL		}, /* 166 */
+	{ 0,	0,	NULL,			NULL		}, /* 167 */
+	{ 0,	0,	NULL,			NULL		}, /* 168 */
+	{ 0,	0,	NULL,			NULL		}, /* 169 */
+	{ 0,	0,	NULL,			NULL		}, /* 170 */
+	{ 0,	0,	NULL,			NULL		}, /* 171 */
+	{ 0,	0,	NULL,			NULL		}, /* 172 */
+	{ 0,	0,	NULL,			NULL		}, /* 173 */
+	{ 0,	0,	NULL,			NULL		}, /* 174 */
+	{ 0,	0,	NULL,			NULL		}, /* 175 */
+	{ 0,	0,	NULL,			NULL		}, /* 176 */
+	{ 0,	0,	NULL,			NULL		}, /* 177 */
+	{ 0,	0,	NULL,			NULL		}, /* 178 */
+	{ 0,	0,	NULL,			NULL		}, /* 179 */
+	{ 0,	0,	NULL,			NULL		}, /* 180 */
+	{ 0,	0,	NULL,			NULL		}, /* 181 */
+	{ 0,	0,	NULL,			NULL		}, /* 182 */
+	{ 0,	0,	NULL,			NULL		}, /* 183 */
+	{ 0,	0,	NULL,			NULL		}, /* 184 */
+	{ 0,	0,	NULL,			NULL		}, /* 185 */
+	{ 0,	0,	NULL,			NULL		}, /* 186 */
+	{ 0,	0,	NULL,			NULL		}, /* 187 */
+	{ 0,	0,	NULL,			NULL		}, /* 188 */
+	{ 0,	0,	NULL,			NULL		}, /* 189 */
+	{ 0,	0,	NULL,			NULL		}, /* 190 */
+	{ 0,	0,	NULL,			NULL		}, /* 191 */
+	{ 0,	0,	NULL,			NULL		}, /* 192 */
+	{ 0,	0,	NULL,			NULL		}, /* 193 */
+	{ 0,	0,	NULL,			NULL		}, /* 194 */
+	{ 0,	0,	NULL,			NULL		}, /* 195 */
+	{ 0,	0,	NULL,			NULL		}, /* 196 */
+	{ 0,	0,	NULL,			NULL		}, /* 197 */
+	{ 0,	0,	NULL,			NULL		}, /* 198 */
+	{ 0,	0,	NULL,			NULL		}, /* 199 */
+	{ 0,	0,	NULL,			NULL		}, /* 200 */
+	{ 0,	0,	printargs,		"svr4_aread"	}, /*  0201 */
+	{ 0,	0,	printargs,		"svr4_awrite"	}, /*  0202 */
+	{ 0,	0,	printargs,		"svr4_listio"	}, /*  0203 */
+	{ 0,	0,	printargs,		"svr4_mips_acancel"	}, /*  0204 */
+	{ 0,	0,	printargs,		"svr4_astatus"	}, /*  0205 */
+	{ 0,	0,	printargs,		"svr4_await"	}, /*  0206 */
+	{ 0,	0,	printargs,		"svr4_areadv"	}, /*  0207 */
+	{ 0,	0,	printargs,		"svr4_awritev"	}, /*  0208 */
+
+	[209 ... 999] = { }, /*  999 */ /* end of SVR4 */
+
+	{ 0,	0,	printargs,		"sysv_syscall"	}, /* 1000 */ /* start of SYSV */
+	{ 0,	0,	printargs,		"sysv_exit"	}, /* 1001 */
+	{ 0,	0,	printargs,		"sysv_fork"	}, /* 1002 */
+	{ 0,	0,	printargs,		"sysv_read"	}, /* 1003 */
+	{ 0,	0,	printargs,		"sysv_write"	}, /* 1004 */
+	{ 0,	0,	printargs,		"sysv_open"	}, /* 1005 */
+	{ 0,	0,	printargs,		"sysv_close"	}, /* 1006 */
+	{ 0,	0,	printargs,		"sysv_wait"	}, /* 1007 */
+	{ 0,	0,	printargs,		"sysv_creat"	}, /* 1008 */
+	{ 0,	0,	printargs,		"sysv_link"	}, /* 1009 */
+	{ 0,	0,	printargs,		"sysv_unlink"	}, /* 1010 */
+	{ 0,	0,	printargs,		"sysv_execv"	}, /* 1011 */
+	{ 0,	0,	printargs,		"sysv_chdir"	}, /* 1012 */
+	{ 0,	0,	printargs,		"sysv_time"	}, /* 1013 */
+	{ 0,	0,	printargs,		"sysv_mknod"	}, /* 1014 */
+	{ 0,	0,	printargs,		"sysv_chmod"	}, /* 1015 */
+	{ 0,	0,	printargs,		"sysv_chown"	}, /* 1016 */
+	{ 0,	TM,	printargs,		"sysv_brk"	}, /* 1017 */
+	{ 0,	0,	printargs,		"sysv_stat"	}, /* 1018 */
+	{ 0,	0,	printargs,		"sysv_lseek"	}, /* 1019 */
+	{ 0,	0,	printargs,		"sysv_getpid"	}, /* 1020 */
+	{ 0,	0,	printargs,		"sysv_mount"	}, /* 1021 */
+	{ 0,	0,	printargs,		"sysv_umount"	}, /* 1022 */
+	{ 0,	0,	printargs,		"sysv_setuid"	}, /* 1023 */
+	{ 0,	0,	printargs,		"sysv_getuid"	}, /* 1024 */
+	{ 0,	0,	printargs,		"sysv_stime"	}, /* 1025 */
+	{ 0,	0,	printargs,		"sysv_ptrace"	}, /* 1026 */
+	{ 0,	0,	printargs,		"sysv_alarm"	}, /* 1027 */
+	{ 0,	0,	printargs,		"sysv_fstat"	}, /* 1028 */
+	{ 0,	0,	printargs,		"sysv_pause"	}, /* 1029 */
+	{ 0,	0,	printargs,		"sysv_utime"	}, /* 1030 */
+	{ 0,	0,	printargs,		"sysv_stty"	}, /* 1031 */
+	{ 0,	0,	printargs,		"sysv_gtty"	}, /* 1032 */
+	{ 0,	0,	printargs,		"sysv_access"	}, /* 1033 */
+	{ 0,	0,	printargs,		"sysv_nice"	}, /* 1034 */
+	{ 0,	0,	printargs,		"sysv_statfs"	}, /* 1035 */
+	{ 0,	0,	printargs,		"sysv_sync"	}, /* 1036 */
+	{ 0,	0,	printargs,		"sysv_kill"	}, /* 1037 */
+	{ 0,	0,	printargs,		"sysv_fstatfs"	}, /* 1038 */
+	{ 0,	0,	printargs,		"sysv_setpgrp"	}, /* 1039 */
+	{ 0,	0,	printargs,		"sysv_syssgi"	}, /* 1040 */
+	{ 0,	0,	printargs,		"sysv_dup"	}, /* 1041 */
+	{ 0,	0,	printargs,		"sysv_pipe"	}, /* 1042 */
+	{ 0,	0,	printargs,		"sysv_times"	}, /* 1043 */
+	{ 0,	0,	printargs,		"sysv_profil"	}, /* 1044 */
+	{ 0,	0,	printargs,		"sysv_plock"	}, /* 1045 */
+	{ 0,	0,	printargs,		"sysv_setgid"	}, /* 1046 */
+	{ 0,	0,	printargs,		"sysv_getgid"	}, /* 1047 */
+	{ 0,	0,	printargs,		"sysv_sig"	}, /* 1048 */
+	{ 0,	0,	printargs,		"sysv_msgsys"	}, /* 1049 */
+	{ 0,	0,	printargs,		"sysv_sysmips"	}, /* 1050 */
+	{ 0,	0,	printargs,		"sysv_acct"	}, /* 1051 */
+	{ 0,	0,	printargs,		"sysv_shmsys"	}, /* 1052 */
+	{ 0,	0,	printargs,		"sysv_semsys"	}, /* 1053 */
+	{ 0,	0,	printargs,		"sysv_ioctl"	}, /* 1054 */
+	{ 0,	0,	printargs,		"sysv_uadmin"	}, /* 1055 */
+	{ 0,	0,	printargs,		"sysv_sysmp"	}, /* 1056 */
+	{ 0,	0,	printargs,		"sysv_utssys"	}, /* 1057 */
+	{ 0,	0,	NULL,			NULL		}, /* 1058 */
+	{ 0,	0,	printargs,		"sysv_execve"	}, /* 1059 */
+	{ 0,	0,	printargs,		"sysv_umask"	}, /* 1060 */
+	{ 0,	0,	printargs,		"sysv_chroot"	}, /* 1061 */
+	{ 0,	0,	printargs,		"sysv_fcntl"	}, /* 1062 */
+	{ 0,	0,	printargs,		"sysv_ulimit"	}, /* 1063 */
+	{ 0,	0,	NULL,			NULL		}, /* 1064 */
+	{ 0,	0,	NULL,			NULL		}, /* 1065 */
+	{ 0,	0,	NULL,			NULL		}, /* 1066 */
+	{ 0,	0,	NULL,			NULL		}, /* 1067 */
+	{ 0,	0,	NULL,			NULL		}, /* 1068 */
+	{ 0,	0,	NULL,			NULL		}, /* 1069 */
+	{ 0,	0,	printargs,		"sysv_advfs"	}, /* 1070 */
+	{ 0,	0,	printargs,		"sysv_unadvfs"	}, /* 1071 */
+	{ 0,	0,	printargs,		"sysv_rmount"	}, /* 1072 */
+	{ 0,	0,	printargs,		"sysv_rumount"	}, /* 1073 */
+	{ 0,	0,	printargs,		"sysv_rfstart"	}, /* 1074 */
+	{ 0,	0,	printargs,		"sysv_getrlimit64"	}, /* 1075 */
+	{ 0,	0,	printargs,		"sysv_setrlimit64"	}, /* 1076 */
+	{ 0,	0,	printargs,		"sysv_nanosleep"	}, /* 1077 */
+	{ 0,	0,	printargs,		"sysv_lseek64"	}, /* 1078 */
+	{ 0,	0,	printargs,		"sysv_rmdir"	}, /* 1079 */
+	{ 0,	0,	printargs,		"sysv_mkdir"	}, /* 1080 */
+	{ 0,	0,	printargs,		"sysv_getdents"	}, /* 1081 */
+	{ 0,	0,	printargs,		"sysv_sginap"	}, /* 1082 */
+	{ 0,	0,	printargs,		"sysv_sgikopt"	}, /* 1083 */
+	{ 0,	0,	printargs,		"sysv_sysfs"	}, /* 1084 */
+	{ 0,	0,	printargs,		"sysv_getmsg"	}, /* 1085 */
+	{ 0,	0,	printargs,		"sysv_putmsg"	}, /* 1086 */
+	{ 0,	0,	printargs,		"sysv_poll"	}, /* 1087 */
+	{ 0,	0,	printargs,		"sysv_sigreturn"	}, /* 1088 */
+	{ 0,	0,	printargs,		"sysv_accept"	}, /* 1089 */
+	{ 0,	0,	printargs,		"sysv_bind"	}, /* 1090 */
+	{ 0,	0,	printargs,		"sysv_connect"	}, /* 1091 */
+	{ 0,	0,	printargs,		"sysv_gethostid"	}, /* 1092 */
+	{ 0,	0,	printargs,		"sysv_getpeername"	}, /* 1093 */
+	{ 0,	0,	printargs,		"sysv_getsockname"	}, /* 1094 */
+	{ 0,	0,	printargs,		"sysv_getsockopt"	}, /* 1095 */
+	{ 0,	0,	printargs,		"sysv_listen"	}, /* 1096 */
+	{ 0,	0,	printargs,		"sysv_recv"	}, /* 1097 */
+	{ 0,	0,	printargs,		"sysv_recvfrom"	}, /* 1098 */
+	{ 0,	0,	printargs,		"sysv_recvmsg"	}, /* 1099 */
+	{ 0,	0,	printargs,		"sysv_select"	}, /* 1100 */
+	{ 0,	0,	printargs,		"sysv_send"	}, /* 1101 */
+	{ 0,	0,	printargs,		"sysv_sendmsg"	}, /* 1102 */
+	{ 0,	0,	printargs,		"sysv_sendto"	}, /* 1103 */
+	{ 0,	0,	printargs,		"sysv_sethostid"	}, /* 1104 */
+	{ 0,	0,	printargs,		"sysv_setsockopt"	}, /* 1105 */
+	{ 0,	0,	printargs,		"sysv_shutdown"	}, /* 1106 */
+	{ 0,	0,	printargs,		"sysv_socket"	}, /* 1107 */
+	{ 0,	0,	printargs,		"sysv_gethostname"	}, /* 1108 */
+	{ 0,	0,	printargs,		"sysv_sethostname"	}, /* 1109 */
+	{ 0,	0,	printargs,		"sysv_getdomainname"	}, /* 1110 */
+	{ 0,	0,	printargs,		"sysv_setdomainname"	}, /* 1111 */
+	{ 0,	0,	printargs,		"sysv_truncate"	}, /* 1112 */
+	{ 0,	0,	printargs,		"sysv_ftruncate"	}, /* 1113 */
+	{ 0,	0,	printargs,		"sysv_rename"	}, /* 1114 */
+	{ 0,	0,	printargs,		"sysv_symlink"	}, /* 1115 */
+	{ 0,	0,	printargs,		"sysv_readlink"	}, /* 1116 */
+	{ 0,	0,	printargs,		"sysv_lstat"	}, /* 1117 */
+	{ 0,	0,	printargs,		"sysv_nfsmount"	}, /* 1118 */
+	{ 0,	0,	printargs,		"sysv_nfssvc"	}, /* 1119 */
+	{ 0,	0,	printargs,		"sysv_getfh"	}, /* 1120 */
+	{ 0,	0,	printargs,		"sysv_async_daemon"	}, /* 1121 */
+	{ 0,	0,	printargs,		"sysv_exportfs"	}, /* 1122 */
+	{ 0,	0,	printargs,		"sysv_setregid"	}, /* 1123 */
+	{ 0,	0,	printargs,		"sysv_setreuid"	}, /* 1124 */
+	{ 0,	0,	printargs,		"sysv_getitimer"	}, /* 1125 */
+	{ 0,	0,	printargs,		"sysv_setitimer"	}, /* 1126 */
+	{ 0,	0,	printargs,		"sysv_adjtime"	}, /* 1127 */
+	{ 0,	0,	printargs,		"sysv_BSD_getime"	}, /* 1128 */
+	{ 0,	0,	printargs,		"sysv_sproc"	}, /* 1129 */
+	{ 0,	0,	printargs,		"sysv_prctl"	}, /* 1130 */
+	{ 0,	0,	printargs,		"sysv_procblk"	}, /* 1131 */
+	{ 0,	0,	printargs,		"sysv_sprocsp"	}, /* 1132 */
+	{ 0,	0,	printargs,		"sysv_sgigsc"	}, /* 1133 */
+	{ 0,	TD|TM,	printargs,		"sysv_mmap"	}, /* 1134 */
+	{ 0,	TM,	printargs,		"sysv_munmap"	}, /* 1135 */
+	{ 0,	TM,	printargs,		"sysv_mprotect"	}, /* 1136 */
+	{ 0,	TM,	printargs,		"sysv_msync"	}, /* 1137 */
+	{ 0,	TM,	printargs,		"sysv_madvise"	}, /* 1138 */
+	{ 0,	0,	printargs,		"sysv_pagelock"	}, /* 1139 */
+	{ 0,	0,	printargs,		"sysv_getpagesize"	}, /* 1140 */
+	{ 0,	TF,	printargs,		"sysv_quotactl"	}, /* 1141 */
+	{ 0,	0,	printargs,		"sysv_libdetach"	}, /* 1142 */
+	{ 0,	0,	printargs,		"sysv_BSDgetpgrp"	}, /* 1143 */
+	{ 0,	0,	printargs,		"sysv_BSDsetpgrp"	}, /* 1144 */
+	{ 0,	0,	printargs,		"sysv_vhangup"	}, /* 1145 */
+	{ 0,	0,	printargs,		"sysv_fsync"	}, /* 1146 */
+	{ 0,	0,	printargs,		"sysv_fchdir"	}, /* 1147 */
+	{ 0,	0,	printargs,		"sysv_getrlimit"	}, /* 1148 */
+	{ 0,	0,	printargs,		"sysv_setrlimit"	}, /* 1149 */
+	{ 0,	0,	printargs,		"sysv_cacheflush"	}, /* 1150 */
+	{ 0,	0,	printargs,		"sysv_cachectl"	}, /* 1151 */
+	{ 0,	0,	printargs,		"sysv_fchown"	}, /* 1152 */
+	{ 0,	0,	printargs,		"sysv_fchmod"	}, /* 1153 */
+	{ 0,	0,	printargs,		"sysv_wait3"	}, /* 1154 */
+	{ 0,	0,	printargs,		"sysv_socketpair"	}, /* 1155 */
+	{ 0,	0,	printargs,		"sysv_sysinfo"	}, /* 1156 */
+	{ 0,	0,	printargs,		"sysv_nuname"	}, /* 1157 */
+	{ 0,	0,	printargs,		"sysv_xstat"	}, /* 1158 */
+	{ 0,	0,	printargs,		"sysv_lxstat"	}, /* 1159 */
+	{ 0,	0,	printargs,		"sysv_fxstat"	}, /* 1160 */
+	{ 0,	0,	printargs,		"sysv_xmknod"	}, /* 1161 */
+	{ 0,	0,	printargs,		"sysv_ksigaction"	}, /* 1162 */
+	{ 0,	0,	printargs,		"sysv_sigpending"	}, /* 1163 */
+	{ 0,	0,	printargs,		"sysv_sigprocmask"	}, /* 1164 */
+	{ 0,	0,	printargs,		"sysv_sigsuspend"	}, /* 1165 */
+	{ 0,	0,	printargs,		"sysv_sigpoll"	}, /* 1166 */
+	{ 0,	0,	printargs,		"sysv_swapctl"	}, /* 1167 */
+	{ 0,	0,	printargs,		"sysv_getcontext"	}, /* 1168 */
+	{ 0,	0,	printargs,		"sysv_setcontext"	}, /* 1169 */
+	{ 0,	0,	printargs,		"sysv_waitsys"	}, /* 1170 */
+	{ 0,	0,	printargs,		"sysv_sigstack"	}, /* 1171 */
+	{ 0,	0,	printargs,		"sysv_sigaltstack"	}, /* 1172 */
+	{ 0,	0,	printargs,		"sysv_sigsendset"	}, /* 1173 */
+	{ 0,	0,	printargs,		"sysv_statvfs"	}, /* 1174 */
+	{ 0,	0,	printargs,		"sysv_fstatvfs"	}, /* 1175 */
+	{ 0,	0,	printargs,		"sysv_getpmsg"	}, /* 1176 */
+	{ 0,	0,	printargs,		"sysv_putpmsg"	}, /* 1177 */
+	{ 0,	0,	printargs,		"sysv_lchown"	}, /* 1178 */
+	{ 0,	0,	printargs,		"sysv_priocntl"	}, /* 1179 */
+	{ 0,	0,	printargs,		"sysv_ksigqueue"	}, /* 1180 */
+	{ 0,	0,	printargs,		"sysv_readv"	}, /* 1181 */
+	{ 0,	0,	printargs,		"sysv_writev"	}, /* 1182 */
+	{ 0,	0,	printargs,		"sysv_truncate64"	}, /* 1183 */
+	{ 0,	0,	printargs,		"sysv_ftruncate64"	}, /* 1184 */
+	{ 0,	TD|TM,	printargs,		"sysv_mmap64"	}, /* 1185 */
+	{ 0,	0,	printargs,		"sysv_dmi"	}, /* 1186 */
+	{ 0,	0,	printargs,		"sysv_pread"	}, /* 1187 */
+	{ 0,	0,	printargs,		"sysv_pwrite"	}, /* 1188 */
+
+	[1189 ... 1999] = { }, /* 1999 */ /* end of SYSV */
+
+	{ 0,	0,	printargs,		"bsd43_syscall"	}, /* 2000 */ /* start of BSD 4.3 */
+	{ 0,	0,	printargs,		"bsd43_exit"	}, /* 2001 */
+	{ 0,	0,	printargs,		"bsd43_fork"	}, /* 2002 */
+	{ 0,	0,	printargs,		"bsd43_read"	}, /* 2003 */
+	{ 0,	0,	printargs,		"bsd43_write"	}, /* 2004 */
+	{ 0,	0,	printargs,		"bsd43_open"	}, /* 2005 */
+	{ 0,	0,	printargs,		"bsd43_close"	}, /* 2006 */
+	{ 0,	0,	printargs,		"bsd43_wait"	}, /* 2007 */
+	{ 0,	0,	printargs,		"bsd43_creat"	}, /* 2008 */
+	{ 0,	0,	printargs,		"bsd43_link"	}, /* 2009 */
+	{ 0,	0,	printargs,		"bsd43_unlink"	}, /* 2010 */
+	{ 0,	0,	printargs,		"bsd43_exec"	}, /* 2011 */
+	{ 0,	0,	printargs,		"bsd43_chdir"	}, /* 2012 */
+	{ 0,	0,	printargs,		"bsd43_time"	}, /* 2013 */
+	{ 0,	0,	printargs,		"bsd43_mknod"	}, /* 2014 */
+	{ 0,	0,	printargs,		"bsd43_chmod"	}, /* 2015 */
+	{ 0,	0,	printargs,		"bsd43_chown"	}, /* 2016 */
+	{ 0,	TM,	printargs,		"bsd43_sbreak"	}, /* 2017 */
+	{ 0,	0,	printargs,		"bsd43_oldstat"	}, /* 2018 */
+	{ 0,	0,	printargs,		"bsd43_lseek"	}, /* 2019 */
+	{ 0,	0,	printargs,		"bsd43_getpid"	}, /* 2020 */
+	{ 0,	0,	printargs,		"bsd43_oldmount"	}, /* 2021 */
+	{ 0,	0,	printargs,		"bsd43_umount"	}, /* 2022 */
+	{ 0,	0,	printargs,		"bsd43_setuid"	}, /* 2023 */
+	{ 0,	0,	printargs,		"bsd43_getuid"	}, /* 2024 */
+	{ 0,	0,	printargs,		"bsd43_stime"	}, /* 2025 */
+	{ 0,	0,	printargs,		"bsd43_ptrace"	}, /* 2026 */
+	{ 0,	0,	printargs,		"bsd43_alarm"	}, /* 2027 */
+	{ 0,	0,	printargs,		"bsd43_oldfstat"	}, /* 2028 */
+	{ 0,	0,	printargs,		"bsd43_pause"	}, /* 2029 */
+	{ 0,	0,	printargs,		"bsd43_utime"	}, /* 2030 */
+	{ 0,	0,	printargs,		"bsd43_stty"	}, /* 2031 */
+	{ 0,	0,	printargs,		"bsd43_gtty"	}, /* 2032 */
+	{ 0,	0,	printargs,		"bsd43_access"	}, /* 2033 */
+	{ 0,	0,	printargs,		"bsd43_nice"	}, /* 2034 */
+	{ 0,	0,	printargs,		"bsd43_ftime"	}, /* 2035 */
+	{ 0,	0,	printargs,		"bsd43_sync"	}, /* 2036 */
+	{ 0,	0,	printargs,		"bsd43_kill"	}, /* 2037 */
+	{ 0,	0,	printargs,		"bsd43_stat"	}, /* 2038 */
+	{ 0,	0,	printargs,		"bsd43_oldsetpgrp"	}, /* 2039 */
+	{ 0,	0,	printargs,		"bsd43_lstat"	}, /* 2040 */
+	{ 0,	0,	printargs,		"bsd43_dup"	}, /* 2041 */
+	{ 0,	0,	printargs,		"bsd43_pipe"	}, /* 2042 */
+	{ 0,	0,	printargs,		"bsd43_times"	}, /* 2043 */
+	{ 0,	0,	printargs,		"bsd43_profil"	}, /* 2044 */
+	{ 0,	0,	printargs,		"bsd43_msgsys"	}, /* 2045 */
+	{ 0,	0,	printargs,		"bsd43_setgid"	}, /* 2046 */
+	{ 0,	0,	printargs,		"bsd43_getgid"	}, /* 2047 */
+	{ 0,	0,	printargs,		"bsd43_ssig"	}, /* 2048 */
+	{ 0,	0,	NULL,			NULL		}, /* 2049 */
+	{ 0,	0,	NULL,			NULL		}, /* 2050 */
+	{ 0,	0,	printargs,		"bsd43_sysacct"	}, /* 2051 */
+	{ 0,	0,	printargs,		"bsd43_phys"	}, /* 2052 */
+	{ 0,	0,	printargs,		"bsd43_lock"	}, /* 2053 */
+	{ 0,	0,	printargs,		"bsd43_ioctl"	}, /* 2054 */
+	{ 0,	0,	printargs,		"bsd43_reboot"	}, /* 2055 */
+	{ 0,	0,	printargs,		"bsd43_mpxchan"	}, /* 2056 */
+	{ 0,	0,	printargs,		"bsd43_symlink"	}, /* 2057 */
+	{ 0,	0,	printargs,		"bsd43_readlink"	}, /* 2058 */
+	{ 0,	0,	printargs,		"bsd43_execve"	}, /* 2059 */
+	{ 0,	0,	printargs,		"bsd43_umask"	}, /* 2060 */
+	{ 0,	0,	printargs,		"bsd43_chroot"	}, /* 2061 */
+	{ 0,	0,	printargs,		"bsd43_fstat"	}, /* 2062 */
+	{ 0,	0,	NULL,			NULL		}, /* 2063 */
+	{ 0,	0,	printargs,		"bsd43_getpagesize"	}, /* 2064 */
+	{ 0,	TM,	printargs,		"bsd43_mremap"	}, /* 2065 */
+	{ 0,	0,	printargs,		"bsd43_vfork"	}, /* 2066 */
+	{ 0,	0,	printargs,		"bsd43_vread"	}, /* 2067 */
+	{ 0,	0,	printargs,		"bsd43_vwrite"	}, /* 2068 */
+	{ 0,	TM,	printargs,		"bsd43_sbrk"	}, /* 2069 */
+	{ 0,	0,	printargs,		"bsd43_sstk"	}, /* 2070 */
+	{ 0,	TD|TM,	printargs,		"bsd43_mmap"	}, /* 2071 */
+	{ 0,	0,	printargs,		"bsd43_vadvise"	}, /* 2072 */
+	{ 0,	TM,	printargs,		"bsd43_munmap"	}, /* 2073 */
+	{ 0,	TM,	printargs,		"bsd43_mprotect"	}, /* 2074 */
+	{ 0,	TM,	printargs,		"bsd43_madvise"	}, /* 2075 */
+	{ 0,	0,	printargs,		"bsd43_vhangup"	}, /* 2076 */
+	{ 0,	0,	printargs,		"bsd43_vlimit"	}, /* 2077 */
+	{ 0,	TM,	printargs,		"bsd43_mincore"	}, /* 2078 */
+	{ 0,	0,	printargs,		"bsd43_getgroups"	}, /* 2079 */
+	{ 0,	0,	printargs,		"bsd43_setgroups"	}, /* 2080 */
+	{ 0,	0,	printargs,		"bsd43_getpgrp"	}, /* 2081 */
+	{ 0,	0,	printargs,		"bsd43_setpgrp"	}, /* 2082 */
+	{ 0,	0,	printargs,		"bsd43_setitimer"	}, /* 2083 */
+	{ 0,	0,	printargs,		"bsd43_wait3"	}, /* 2084 */
+	{ 0,	0,	printargs,		"bsd43_swapon"	}, /* 2085 */
+	{ 0,	0,	printargs,		"bsd43_getitimer"	}, /* 2086 */
+	{ 0,	0,	printargs,		"bsd43_gethostname"	}, /* 2087 */
+	{ 0,	0,	printargs,		"bsd43_sethostname"	}, /* 2088 */
+	{ 0,	0,	printargs,		"bsd43_getdtablesize"	}, /* 2089 */
+	{ 0,	0,	printargs,		"bsd43_dup2"	}, /* 2090 */
+	{ 0,	0,	printargs,		"bsd43_getdopt"	}, /* 2091 */
+	{ 0,	0,	printargs,		"bsd43_fcntl"	}, /* 2092 */
+	{ 0,	0,	printargs,		"bsd43_select"	}, /* 2093 */
+	{ 0,	0,	printargs,		"bsd43_setdopt"	}, /* 2094 */
+	{ 0,	0,	printargs,		"bsd43_fsync"	}, /* 2095 */
+	{ 0,	0,	printargs,		"bsd43_setpriority"	}, /* 2096 */
+	{ 0,	0,	printargs,		"bsd43_socket"	}, /* 2097 */
+	{ 0,	0,	printargs,		"bsd43_connect"	}, /* 2098 */
+	{ 0,	0,	printargs,		"bsd43_oldaccept"	}, /* 2099 */
+	{ 0,	0,	printargs,		"bsd43_getpriority"	}, /* 2100 */
+	{ 0,	0,	printargs,		"bsd43_send"	}, /* 2101 */
+	{ 0,	0,	printargs,		"bsd43_recv"	}, /* 2102 */
+	{ 0,	0,	printargs,		"bsd43_sigreturn"	}, /* 2103 */
+	{ 0,	0,	printargs,		"bsd43_bind"	}, /* 2104 */
+	{ 0,	0,	printargs,		"bsd43_setsockopt"	}, /* 2105 */
+	{ 0,	0,	printargs,		"bsd43_listen"	}, /* 2106 */
+	{ 0,	0,	printargs,		"bsd43_vtimes"	}, /* 2107 */
+	{ 0,	0,	printargs,		"bsd43_sigvec"	}, /* 2108 */
+	{ 0,	0,	printargs,		"bsd43_sigblock"	}, /* 2109 */
+	{ 0,	0,	printargs,		"bsd43_sigsetmask"	}, /* 2110 */
+	{ 0,	0,	printargs,		"bsd43_sigpause"	}, /* 2111 */
+	{ 0,	0,	printargs,		"bsd43_sigstack"	}, /* 2112 */
+	{ 0,	0,	printargs,		"bsd43_oldrecvmsg"	}, /* 2113 */
+	{ 0,	0,	printargs,		"bsd43_oldsendmsg"	}, /* 2114 */
+	{ 0,	0,	printargs,		"bsd43_vtrace"	}, /* 2115 */
+	{ 0,	0,	printargs,		"bsd43_gettimeofday"	}, /* 2116 */
+	{ 0,	0,	printargs,		"bsd43_getrusage"	}, /* 2117 */
+	{ 0,	0,	printargs,		"bsd43_getsockopt"	}, /* 2118 */
+	{ 0,	0,	NULL,			NULL		}, /* 2119 */
+	{ 0,	0,	printargs,		"bsd43_readv"	}, /* 2120 */
+	{ 0,	0,	printargs,		"bsd43_writev"	}, /* 2121 */
+	{ 0,	0,	printargs,		"bsd43_settimeofday"	}, /* 2122 */
+	{ 0,	0,	printargs,		"bsd43_fchown"	}, /* 2123 */
+	{ 0,	0,	printargs,		"bsd43_fchmod"	}, /* 2124 */
+	{ 0,	0,	printargs,		"bsd43_oldrecvfrom"	}, /* 2125 */
+	{ 0,	0,	printargs,		"bsd43_setreuid"	}, /* 2126 */
+	{ 0,	0,	printargs,		"bsd43_setregid"	}, /* 2127 */
+	{ 0,	0,	printargs,		"bsd43_rename"	}, /* 2128 */
+	{ 0,	0,	printargs,		"bsd43_truncate"	}, /* 2129 */
+	{ 0,	0,	printargs,		"bsd43_ftruncate"	}, /* 2130 */
+	{ 0,	0,	printargs,		"bsd43_flock"	}, /* 2131 */
+	{ 0,	0,	printargs,		"bsd43_semsys"	}, /* 2132 */
+	{ 0,	0,	printargs,		"bsd43_sendto"	}, /* 2133 */
+	{ 0,	0,	printargs,		"bsd43_shutdown"	}, /* 2134 */
+	{ 0,	0,	printargs,		"bsd43_socketpair"	}, /* 2135 */
+	{ 0,	0,	printargs,		"bsd43_mkdir"	}, /* 2136 */
+	{ 0,	0,	printargs,		"bsd43_rmdir"	}, /* 2137 */
+	{ 0,	0,	printargs,		"bsd43_utimes"	}, /* 2138 */
+	{ 0,	0,	printargs,		"bsd43_sigcleanup"	}, /* 2139 */
+	{ 0,	0,	printargs,		"bsd43_adjtime"	}, /* 2140 */
+	{ 0,	0,	printargs,		"bsd43_oldgetpeername"	}, /* 2141 */
+	{ 0,	0,	printargs,		"bsd43_gethostid"	}, /* 2142 */
+	{ 0,	0,	printargs,		"bsd43_sethostid"	}, /* 2143 */
+	{ 0,	0,	printargs,		"bsd43_getrlimit"	}, /* 2144 */
+	{ 0,	0,	printargs,		"bsd43_setrlimit"	}, /* 2145 */
+	{ 0,	0,	printargs,		"bsd43_killpg"	}, /* 2146 */
+	{ 0,	0,	printargs,		"bsd43_shmsys"	}, /* 2147 */
+	{ 0,	0,	printargs,		"bsd43_quota"	}, /* 2148 */
+	{ 0,	0,	printargs,		"bsd43_qquota"	}, /* 2149 */
+	{ 0,	0,	printargs,		"bsd43_oldgetsockname"	}, /* 2150 */
+	{ 0,	0,	printargs,		"bsd43_sysmips"	}, /* 2151 */
+	{ 0,	0,	printargs,		"bsd43_cacheflush"	}, /* 2152 */
+	{ 0,	0,	printargs,		"bsd43_cachectl"	}, /* 2153 */
+	{ 0,	0,	printargs,		"bsd43_debug"	}, /* 2154 */
+	{ 0,	0,	NULL,			NULL		}, /* 2155 */
+	{ 0,	0,	NULL,			NULL		}, /* 2156 */
+	{ 0,	0,	printargs,		"bsd43_nfs_mount"	}, /* 2157 */
+	{ 0,	0,	printargs,		"bsd43_nfs_svc"	}, /* 2158 */
+	{ 0,	0,	printargs,		"bsd43_getdirentries"	}, /* 2159 */
+	{ 0,	0,	printargs,		"bsd43_statfs"	}, /* 2160 */
+	{ 0,	0,	printargs,		"bsd43_fstatfs"	}, /* 2161 */
+	{ 0,	0,	printargs,		"bsd43_unmount"	}, /* 2162 */
+	{ 0,	0,	printargs,		"bsd43_async_daemon"	}, /* 2163 */
+	{ 0,	0,	printargs,		"bsd43_nfs_getfh"	}, /* 2164 */
+	{ 0,	0,	printargs,		"bsd43_getdomainname"	}, /* 2165 */
+	{ 0,	0,	printargs,		"bsd43_setdomainname"	}, /* 2166 */
+	{ 0,	0,	printargs,		"bsd43_pcfs_mount"	}, /* 2167 */
+	{ 0,	TF,	printargs,		"bsd43_quotactl"	}, /* 2168 */
+	{ 0,	0,	printargs,		"bsd43_oldexportfs"	}, /* 2169 */
+	{ 0,	0,	printargs,		"bsd43_smount"	}, /* 2170 */
+	{ 0,	0,	printargs,		"bsd43_mipshwconf"	}, /* 2171 */
+	{ 0,	0,	printargs,		"bsd43_exportfs"	}, /* 2172 */
+	{ 0,	0,	printargs,		"bsd43_nfsfh_open"	}, /* 2173 */
+	{ 0,	0,	printargs,		"bsd43_libattach"	}, /* 2174 */
+	{ 0,	0,	printargs,		"bsd43_libdetach"	}, /* 2175 */
+	{ 0,	0,	printargs,		"bsd43_accept"	}, /* 2176 */
+	{ 0,	0,	NULL,			NULL		}, /* 2177 */
+	{ 0,	0,	NULL,			NULL		}, /* 2178 */
+	{ 0,	0,	printargs,		"bsd43_recvmsg"	}, /* 2179 */
+	{ 0,	0,	printargs,		"bsd43_recvfrom"	}, /* 2180 */
+	{ 0,	0,	printargs,		"bsd43_sendmsg"	}, /* 2181 */
+	{ 0,	0,	printargs,		"bsd43_getpeername"	}, /* 2182 */
+	{ 0,	0,	printargs,		"bsd43_getsockname"	}, /* 2183 */
+	{ 0,	0,	printargs,		"bsd43_aread"	}, /* 2184 */
+	{ 0,	0,	printargs,		"bsd43_awrite"	}, /* 2185 */
+	{ 0,	0,	printargs,		"bsd43_listio"	}, /* 2186 */
+	{ 0,	0,	printargs,		"bsd43_acancel"	}, /* 2187 */
+	{ 0,	0,	printargs,		"bsd43_astatus"	}, /* 2188 */
+	{ 0,	0,	printargs,		"bsd43_await"	}, /* 2189 */
+	{ 0,	0,	printargs,		"bsd43_areadv"	}, /* 2190 */
+	{ 0,	0,	printargs,		"bsd43_awritev"	}, /* 2191 */
+
+	[2192 ... 2999] = { }, /* 2999 */ /* end of BSD 4.3 */
+
+	{ 0,	0,	printargs,		"posix_syscall"	}, /* 3000 */ /* start of POSIX */
+	{ 0,	0,	printargs,		"posix_exit"	}, /* 3001 */
+	{ 0,	0,	printargs,		"posix_fork"	}, /* 3002 */
+	{ 0,	0,	printargs,		"posix_read"	}, /* 3003 */
+	{ 0,	0,	printargs,		"posix_write"	}, /* 3004 */
+	{ 0,	0,	printargs,		"posix_open"	}, /* 3005 */
+	{ 0,	0,	printargs,		"posix_close"	}, /* 3006 */
+	{ 0,	0,	printargs,		"posix_wait"	}, /* 3007 */
+	{ 0,	0,	printargs,		"posix_creat"	}, /* 3008 */
+	{ 0,	0,	printargs,		"posix_link"	}, /* 3009 */
+	{ 0,	0,	printargs,		"posix_unlink"	}, /* 3010 */
+	{ 0,	0,	printargs,		"posix_exec"	}, /* 3011 */
+	{ 0,	0,	printargs,		"posix_chdir"	}, /* 3012 */
+	{ 0,	0,	printargs,		"posix_gtime"	}, /* 3013 */
+	{ 0,	0,	printargs,		"posix_mknod"	}, /* 3014 */
+	{ 0,	0,	printargs,		"posix_chmod"	}, /* 3015 */
+	{ 0,	0,	printargs,		"posix_chown"	}, /* 3016 */
+	{ 0,	TM,	printargs,		"posix_sbreak"	}, /* 3017 */
+	{ 0,	0,	printargs,		"posix_stat"	}, /* 3018 */
+	{ 0,	0,	printargs,		"posix_lseek"	}, /* 3019 */
+	{ 0,	0,	printargs,		"posix_getpid"	}, /* 3020 */
+	{ 0,	0,	printargs,		"posix_mount"	}, /* 3021 */
+	{ 0,	0,	printargs,		"posix_umount"	}, /* 3022 */
+	{ 0,	0,	printargs,		"posix_setuid"	}, /* 3023 */
+	{ 0,	0,	printargs,		"posix_getuid"	}, /* 3024 */
+	{ 0,	0,	printargs,		"posix_stime"	}, /* 3025 */
+	{ 0,	0,	printargs,		"posix_ptrace"	}, /* 3026 */
+	{ 0,	0,	printargs,		"posix_alarm"	}, /* 3027 */
+	{ 0,	0,	printargs,		"posix_fstat"	}, /* 3028 */
+	{ 0,	0,	printargs,		"posix_pause"	}, /* 3029 */
+	{ 0,	0,	printargs,		"posix_utime"	}, /* 3030 */
+	{ 0,	0,	printargs,		"posix_stty"	}, /* 3031 */
+	{ 0,	0,	printargs,		"posix_gtty"	}, /* 3032 */
+	{ 0,	0,	printargs,		"posix_access"	}, /* 3033 */
+	{ 0,	0,	printargs,		"posix_nice"	}, /* 3034 */
+	{ 0,	0,	printargs,		"posix_statfs"	}, /* 3035 */
+	{ 0,	0,	printargs,		"posix_sync"	}, /* 3036 */
+	{ 0,	0,	printargs,		"posix_kill"	}, /* 3037 */
+	{ 0,	0,	printargs,		"posix_fstatfs"	}, /* 3038 */
+	{ 0,	0,	printargs,		"posix_getpgrp"	}, /* 3039 */
+	{ 0,	0,	printargs,		"posix_syssgi"	}, /* 3040 */
+	{ 0,	0,	printargs,		"posix_dup"	}, /* 3041 */
+	{ 0,	0,	printargs,		"posix_pipe"	}, /* 3042 */
+	{ 0,	0,	printargs,		"posix_times"	}, /* 3043 */
+	{ 0,	0,	printargs,		"posix_profil"	}, /* 3044 */
+	{ 0,	0,	printargs,		"posix_lock"	}, /* 3045 */
+	{ 0,	0,	printargs,		"posix_setgid"	}, /* 3046 */
+	{ 0,	0,	printargs,		"posix_getgid"	}, /* 3047 */
+	{ 0,	0,	printargs,		"posix_sig"	}, /* 3048 */
+	{ 0,	0,	printargs,		"posix_msgsys"	}, /* 3049 */
+	{ 0,	0,	printargs,		"posix_sysmips"	}, /* 3050 */
+	{ 0,	0,	printargs,		"posix_sysacct"	}, /* 3051 */
+	{ 0,	0,	printargs,		"posix_shmsys"	}, /* 3052 */
+	{ 0,	0,	printargs,		"posix_semsys"	}, /* 3053 */
+	{ 0,	0,	printargs,		"posix_ioctl"	}, /* 3054 */
+	{ 0,	0,	printargs,		"posix_uadmin"	}, /* 3055 */
+	{ 0,	0,	printargs,		"posix_exch"	}, /* 3056 */
+	{ 0,	0,	printargs,		"posix_utssys"	}, /* 3057 */
+	{ 0,	0,	NULL,			NULL		}, /* 3058 */
+	{ 0,	0,	printargs,		"posix_exece"	}, /* 3059 */
+	{ 0,	0,	printargs,		"posix_umask"	}, /* 3060 */
+	{ 0,	0,	printargs,		"posix_chroot"	}, /* 3061 */
+	{ 0,	0,	printargs,		"posix_fcntl"	}, /* 3062 */
+	{ 0,	0,	printargs,		"posix_ulimit"	}, /* 3063 */
+	{ 0,	0,	NULL,			NULL		}, /* 3064 */
+	{ 0,	0,	NULL,			NULL		}, /* 3065 */
+	{ 0,	0,	NULL,			NULL		}, /* 3066 */
+	{ 0,	0,	NULL,			NULL		}, /* 3067 */
+	{ 0,	0,	NULL,			NULL		}, /* 3068 */
+	{ 0,	0,	NULL,			NULL		}, /* 3069 */
+	{ 0,	0,	printargs,		"posix_advfs"	}, /* 3070 */
+	{ 0,	0,	printargs,		"posix_unadvfs"	}, /* 3071 */
+	{ 0,	0,	printargs,		"posix_rmount"	}, /* 3072 */
+	{ 0,	0,	printargs,		"posix_rumount"	}, /* 3073 */
+	{ 0,	0,	printargs,		"posix_rfstart"	}, /* 3074 */
+	{ 0,	0,	NULL,			NULL		}, /* 3075 */
+	{ 0,	0,	printargs,		"posix_rdebug"	}, /* 3076 */
+	{ 0,	0,	printargs,		"posix_rfstop"	}, /* 3077 */
+	{ 0,	0,	printargs,		"posix_rfsys"	}, /* 3078 */
+	{ 0,	0,	printargs,		"posix_rmdir"	}, /* 3079 */
+	{ 0,	0,	printargs,		"posix_mkdir"	}, /* 3080 */
+	{ 0,	0,	printargs,		"posix_getdents"	}, /* 3081 */
+	{ 0,	0,	printargs,		"posix_sginap"	}, /* 3082 */
+	{ 0,	0,	printargs,		"posix_sgikopt"	}, /* 3083 */
+	{ 0,	0,	printargs,		"posix_sysfs"	}, /* 3084 */
+	{ 0,	0,	printargs,		"posix_getmsg"	}, /* 3085 */
+	{ 0,	0,	printargs,		"posix_putmsg"	}, /* 3086 */
+	{ 0,	0,	printargs,		"posix_poll"	}, /* 3087 */
+	{ 0,	0,	printargs,		"posix_sigreturn"	}, /* 3088 */
+	{ 0,	0,	printargs,		"posix_accept"	}, /* 3089 */
+	{ 0,	0,	printargs,		"posix_bind"	}, /* 3090 */
+	{ 0,	0,	printargs,		"posix_connect"	}, /* 3091 */
+	{ 0,	0,	printargs,		"posix_gethostid"	}, /* 3092 */
+	{ 0,	0,	printargs,		"posix_getpeername"	}, /* 3093 */
+	{ 0,	0,	printargs,		"posix_getsockname"	}, /* 3094 */
+	{ 0,	0,	printargs,		"posix_getsockopt"	}, /* 3095 */
+	{ 0,	0,	printargs,		"posix_listen"	}, /* 3096 */
+	{ 0,	0,	printargs,		"posix_recv"	}, /* 3097 */
+	{ 0,	0,	printargs,		"posix_recvfrom"	}, /* 3098 */
+	{ 0,	0,	printargs,		"posix_recvmsg"	}, /* 3099 */
+	{ 0,	0,	printargs,		"posix_select"	}, /* 3100 */
+	{ 0,	0,	printargs,		"posix_send"	}, /* 3101 */
+	{ 0,	0,	printargs,		"posix_sendmsg"	}, /* 3102 */
+	{ 0,	0,	printargs,		"posix_sendto"	}, /* 3103 */
+	{ 0,	0,	printargs,		"posix_sethostid"	}, /* 3104 */
+	{ 0,	0,	printargs,		"posix_setsockopt"	}, /* 3105 */
+	{ 0,	0,	printargs,		"posix_shutdown"	}, /* 3106 */
+	{ 0,	0,	printargs,		"posix_socket"	}, /* 3107 */
+	{ 0,	0,	printargs,		"posix_gethostname"	}, /* 3108 */
+	{ 0,	0,	printargs,		"posix_sethostname"	}, /* 3109 */
+	{ 0,	0,	printargs,		"posix_getdomainname"	}, /* 3110 */
+	{ 0,	0,	printargs,		"posix_setdomainname"	}, /* 3111 */
+	{ 0,	0,	printargs,		"posix_truncate"	}, /* 3112 */
+	{ 0,	0,	printargs,		"posix_ftruncate"	}, /* 3113 */
+	{ 0,	0,	printargs,		"posix_rename"	}, /* 3114 */
+	{ 0,	0,	printargs,		"posix_symlink"	}, /* 3115 */
+	{ 0,	0,	printargs,		"posix_readlink"	}, /* 3116 */
+	{ 0,	0,	printargs,		"posix_lstat"	}, /* 3117 */
+	{ 0,	0,	printargs,		"posix_nfs_mount"	}, /* 3118 */
+	{ 0,	0,	printargs,		"posix_nfs_svc"	}, /* 3119 */
+	{ 0,	0,	printargs,		"posix_nfs_getfh"	}, /* 3120 */
+	{ 0,	0,	printargs,		"posix_async_daemon"	}, /* 3121 */
+	{ 0,	0,	printargs,		"posix_exportfs"	}, /* 3122 */
+	{ 0,	0,	printargs,		"posix_SGI_setregid"	}, /* 3123 */
+	{ 0,	0,	printargs,		"posix_SGI_setreuid"	}, /* 3124 */
+	{ 0,	0,	printargs,		"posix_getitimer"	}, /* 3125 */
+	{ 0,	0,	printargs,		"posix_setitimer"	}, /* 3126 */
+	{ 0,	0,	printargs,		"posix_adjtime"	}, /* 3127 */
+	{ 0,	0,	printargs,		"posix_SGI_bsdgettime"	}, /* 3128 */
+	{ 0,	0,	printargs,		"posix_SGI_sproc"	}, /* 3129 */
+	{ 0,	0,	printargs,		"posix_SGI_prctl"	}, /* 3130 */
+	{ 0,	0,	printargs,		"posix_SGI_blkproc"	}, /* 3131 */
+	{ 0,	0,	NULL,			NULL		}, /* 3132 */
+	{ 0,	0,	printargs,		"posix_SGI_sgigsc"	}, /* 3133 */
+	{ 0,	TD|TM,	printargs,		"posix_SGI_mmap"	}, /* 3134 */
+	{ 0,	TM,	printargs,		"posix_SGI_munmap"	}, /* 3135 */
+	{ 0,	TM,	printargs,		"posix_SGI_mprotect"	}, /* 3136 */
+	{ 0,	TM,	printargs,		"posix_SGI_msync"	}, /* 3137 */
+	{ 0,	TM,	printargs,		"posix_SGI_madvise"	}, /* 3138 */
+	{ 0,	0,	printargs,		"posix_SGI_mpin"	}, /* 3139 */
+	{ 0,	0,	printargs,		"posix_SGI_getpagesize"	}, /* 3140 */
+	{ 0,	0,	printargs,		"posix_SGI_libattach"	}, /* 3141 */
+	{ 0,	0,	printargs,		"posix_SGI_libdetach"	}, /* 3142 */
+	{ 0,	0,	printargs,		"posix_SGI_getpgrp"	}, /* 3143 */
+	{ 0,	0,	printargs,		"posix_SGI_setpgrp"	}, /* 3144 */
+	{ 0,	0,	NULL,			NULL		}, /* 3145 */
+	{ 0,	0,	NULL,			NULL		}, /* 3146 */
+	{ 0,	0,	NULL,			NULL		}, /* 3147 */
+	{ 0,	0,	NULL,			NULL		}, /* 3148 */
+	{ 0,	0,	NULL,			NULL		}, /* 3149 */
+	{ 0,	0,	printargs,		"posix_cacheflush"	}, /* 3150 */
+	{ 0,	0,	printargs,		"posix_cachectl"	}, /* 3151 */
+	{ 0,	0,	printargs,		"posix_fchown"	}, /* 3152 */
+	{ 0,	0,	printargs,		"posix_fchmod"	}, /* 3153 */
+	{ 0,	0,	printargs,		"posix_wait3"	}, /* 3154 */
+	{ 0,	TD|TM,	printargs,		"posix_mmap"	}, /* 3155 */
+	{ 0,	TM,	printargs,		"posix_munmap"	}, /* 3156 */
+	{ 0,	TM,	printargs,		"posix_madvise"	}, /* 3157 */
+	{ 0,	0,	printargs,		"posix_BSD_getpagesize"	}, /* 3158 */
+	{ 0,	0,	printargs,		"posix_setreuid"	}, /* 3159 */
+	{ 0,	0,	printargs,		"posix_setregid"	}, /* 3160 */
+	{ 0,	0,	printargs,		"posix_setpgid"	}, /* 3161 */
+	{ 0,	0,	printargs,		"posix_getgroups"	}, /* 3162 */
+	{ 0,	0,	printargs,		"posix_setgroups"	}, /* 3163 */
+	{ 0,	0,	printargs,		"posix_gettimeofday"	}, /* 3164 */
+	{ 0,	0,	printargs,		"posix_getrusage"	}, /* 3165 */
+	{ 0,	0,	printargs,		"posix_getrlimit"	}, /* 3166 */
+	{ 0,	0,	printargs,		"posix_setrlimit"	}, /* 3167 */
+	{ 0,	0,	printargs,		"posix_waitpid"	}, /* 3168 */
+	{ 0,	0,	printargs,		"posix_dup2"	}, /* 3169 */
+	{ 0,	0,	NULL,			NULL		}, /* 3170 */
+	{ 0,	0,	NULL,			NULL		}, /* 3171 */
+	{ 0,	0,	NULL,			NULL		}, /* 3172 */
+	{ 0,	0,	NULL,			NULL		}, /* 3173 */
+	{ 0,	0,	NULL,			NULL		}, /* 3174 */
+	{ 0,	0,	NULL,			NULL		}, /* 3175 */
+	{ 0,	0,	NULL,			NULL		}, /* 3176 */
+	{ 0,	0,	NULL,			NULL		}, /* 3177 */
+	{ 0,	0,	NULL,			NULL		}, /* 3178 */
+	{ 0,	0,	NULL,			NULL		}, /* 3179 */
+	{ 0,	0,	NULL,			NULL		}, /* 3180 */
+	{ 0,	0,	NULL,			NULL		}, /* 3181 */
+	{ 0,	0,	NULL,			NULL		}, /* 3182 */
+	{ 0,	0,	NULL,			NULL		}, /* 3183 */
+	{ 0,	0,	NULL,			NULL		}, /* 3184 */
+	{ 0,	0,	NULL,			NULL		}, /* 3185 */
+	{ 0,	0,	NULL,			NULL		}, /* 3186 */
+	{ 0,	0,	NULL,			NULL		}, /* 3187 */
+	{ 0,	0,	NULL,			NULL		}, /* 3188 */
+	{ 0,	0,	NULL,			NULL		}, /* 3189 */
+	{ 0,	0,	NULL,			NULL		}, /* 3190 */
+	{ 0,	0,	NULL,			NULL		}, /* 3191 */
+	{ 0,	0,	NULL,			NULL		}, /* 3192 */
+	{ 0,	0,	NULL,			NULL		}, /* 3193 */
+	{ 0,	0,	NULL,			NULL		}, /* 3194 */
+	{ 0,	0,	NULL,			NULL		}, /* 3195 */
+	{ 0,	0,	NULL,			NULL		}, /* 3196 */
+	{ 0,	0,	NULL,			NULL		}, /* 3197 */
+	{ 0,	0,	NULL,			NULL		}, /* 3198 */
+	{ 0,	0,	NULL,			NULL		}, /* 3199 */
+	{ 0,	0,	NULL,			NULL		}, /* 3200 */
+	{ 0,	0,	NULL,			NULL		}, /* 3201 */
+	{ 0,	0,	NULL,			NULL		}, /* 3202 */
+	{ 0,	0,	NULL,			NULL		}, /* 3203 */
+	{ 0,	0,	NULL,			NULL		}, /* 3204 */
+	{ 0,	0,	NULL,			NULL		}, /* 3205 */
+	{ 0,	0,	NULL,			NULL		}, /* 3206 */
+	{ 0,	0,	NULL,			NULL		}, /* 3207 */
+	{ 0,	0,	NULL,			NULL		}, /* 3208 */
+	{ 0,	0,	NULL,			NULL		}, /* 3209 */
+	{ 0,	0,	NULL,			NULL		}, /* 3210 */
+	{ 0,	0,	NULL,			NULL		}, /* 3211 */
+	{ 0,	0,	NULL,			NULL		}, /* 3212 */
+	{ 0,	0,	NULL,			NULL		}, /* 3213 */
+	{ 0,	0,	NULL,			NULL		}, /* 3214 */
+	{ 0,	0,	NULL,			NULL		}, /* 3215 */
+	{ 0,	0,	NULL,			NULL		}, /* 3216 */
+	{ 0,	0,	NULL,			NULL		}, /* 3217 */
+	{ 0,	0,	NULL,			NULL		}, /* 3218 */
+	{ 0,	0,	NULL,			NULL		}, /* 3219 */
+	{ 0,	0,	NULL,			NULL		}, /* 3220 */
+	{ 0,	0,	NULL,			NULL		}, /* 3221 */
+	{ 0,	0,	NULL,			NULL		}, /* 3222 */
+	{ 0,	0,	NULL,			NULL		}, /* 3223 */
+	{ 0,	0,	NULL,			NULL		}, /* 3224 */
+	{ 0,	0,	NULL,			NULL		}, /* 3225 */
+	{ 0,	0,	NULL,			NULL		}, /* 3226 */
+	{ 0,	0,	NULL,			NULL		}, /* 3227 */
+	{ 0,	0,	NULL,			NULL		}, /* 3228 */
+	{ 0,	0,	NULL,			NULL		}, /* 3229 */
+	{ 0,	0,	NULL,			NULL		}, /* 3230 */
+	{ 0,	0,	NULL,			NULL		}, /* 3231 */
+	{ 0,	0,	NULL,			NULL		}, /* 3232 */
+	{ 0,	0,	NULL,			NULL		}, /* 3233 */
+	{ 0,	0,	NULL,			NULL		}, /* 3234 */
+	{ 0,	0,	NULL,			NULL		}, /* 3235 */
+	{ 0,	0,	NULL,			NULL		}, /* 3236 */
+	{ 0,	0,	NULL,			NULL		}, /* 3237 */
+	{ 0,	0,	NULL,			NULL		}, /* 3238 */
+	{ 0,	0,	NULL,			NULL		}, /* 3239 */
+	{ 0,	0,	NULL,			NULL		}, /* 3240 */
+	{ 0,	0,	NULL,			NULL		}, /* 3241 */
+	{ 0,	0,	NULL,			NULL		}, /* 3242 */
+	{ 0,	0,	NULL,			NULL		}, /* 3243 */
+	{ 0,	0,	NULL,			NULL		}, /* 3244 */
+	{ 0,	0,	NULL,			NULL		}, /* 3245 */
+	{ 0,	0,	NULL,			NULL		}, /* 3246 */
+	{ 0,	0,	NULL,			NULL		}, /* 3247 */
+	{ 0,	0,	NULL,			NULL		}, /* 3248 */
+	{ 0,	0,	NULL,			NULL		}, /* 3249 */
+	{ 0,	0,	NULL,			NULL		}, /* 3250 */
+	{ 0,	0,	NULL,			NULL		}, /* 3251 */
+	{ 0,	0,	NULL,			NULL		}, /* 3252 */
+	{ 0,	0,	NULL,			NULL		}, /* 3253 */
+	{ 0,	0,	NULL,			NULL		}, /* 3254 */
+	{ 0,	0,	NULL,			NULL		}, /* 3255 */
+	{ 0,	0,	NULL,			NULL		}, /* 3256 */
+	{ 0,	0,	NULL,			NULL		}, /* 3257 */
+	{ 0,	0,	NULL,			NULL		}, /* 3258 */
+	{ 0,	0,	NULL,			NULL		}, /* 3259 */
+	{ 0,	0,	printargs,		"posix_netboot"	}, /* 3260 */
+	{ 0,	0,	printargs,		"posix_netunboot"	}, /* 3261 */
+	{ 0,	0,	printargs,		"posix_rdump"	}, /* 3262 */
+	{ 0,	0,	printargs,		"posix_setsid"	}, /* 3263 */
+	{ 0,	0,	printargs,		"posix_getmaxsig"	}, /* 3264 */
+	{ 0,	0,	printargs,		"posix_sigpending"	}, /* 3265 */
+	{ 0,	0,	printargs,		"posix_sigprocmask"	}, /* 3266 */
+	{ 0,	0,	printargs,		"posix_sigsuspend"	}, /* 3267 */
+	{ 0,	0,	printargs,		"posix_sigaction"	}, /* 3268 */
+
+	[3269 ... 3999] = { }, /* 3999 */ /* end of POSIX */
diff --git a/linux/mips/syscallent-n32.h b/linux/mips/syscallent-n32.h
new file mode 100644
index 0000000..69453b1
--- /dev/null
+++ b/linux/mips/syscallent-n32.h
@@ -0,0 +1,630 @@
+#if defined LINUX_MIPSN32
+	/* For an N32 strace decode the N32 64-bit syscalls.  */
+	{ 3,	TD,	sys_read,		"read"		}, /* 6000 */ /* start of Linux N32 */
+	{ 3,	TD,	sys_write,		"write"		}, /* 6001 */
+	{ 3,	TD|TF,	sys_open,		"open"		}, /* 6002 */
+	{ 1,	TD,	sys_close,		"close"		}, /* 6003 */
+	{ 2,	TF,	sys_stat64,		"stat"		}, /* 6004 */
+	{ 2,	TD,	sys_fstat64,		"fstat"		}, /* 6005 */
+	{ 2,	TF,	sys_lstat64,		"lstat"		}, /* 6006 */
+	{ 3,	TD,	sys_poll,		"poll"		}, /* 6007 */
+	{ 3,	TD,	sys_lseek,		"lseek"		}, /* 6008 */
+	{ 6,	TD|TM,	sys_mmap,		"mmap"		}, /* 6009 */
+	{ 3,	TM,	sys_mprotect,		"mprotect"	}, /* 6010 */
+	{ 2,	TM,	sys_munmap,		"munmap"	}, /* 6011 */
+	{ 1,	TM,	sys_brk,		"brk"		}, /* 6012 */
+	{ 4,	TS,	sys_rt_sigaction,	"rt_sigaction"	}, /* 6013 */
+	{ 4,	TS,	sys_rt_sigprocmask,	"rt_sigprocmask"}, /* 6014 */
+	{ 3,	TD,	sys_ioctl,		"ioctl"		}, /* 6015 */
+	{ 4,	TD,	sys_pread,		"pread64"	}, /* 6016 */
+	{ 4,	TD,	sys_pwrite,		"pwrite64"	}, /* 6017 */
+	{ 3,	TD,	sys_readv,		"readv"		}, /* 6018 */
+	{ 3,	TD,	sys_writev,		"writev"	}, /* 6019 */
+	{ 2,	TF,	sys_access,		"access"	}, /* 6020 */
+	{ 1,	TD,	sys_pipe,		"pipe"		}, /* 6021 */
+	{ 5,	TD,	sys_select,		"_newselect"	}, /* 6022 */
+	{ 0,	0,	sys_sched_yield,	"sched_yield"	}, /* 6023 */
+	{ 5,	TM,	sys_mremap,		"mremap"	}, /* 6024 */
+	{ 3,	TM,	sys_msync,		"msync"		}, /* 6025 */
+	{ 3,	TM,	sys_mincore,		"mincore"	}, /* 6026 */
+	{ 3,	TM,	sys_madvise,		"madvise"	}, /* 6027 */
+	{ 3,	TI,	sys_shmget,		"shmget"	}, /* 6028 */
+	{ 3,	TI,	sys_shmat,		"shmat"		}, /* 6029 */
+	{ 3,	TI,	sys_shmctl,		"shmctl"	}, /* 6030 */
+	{ 1,	TD,	sys_dup,		"dup"		}, /* 6031 */
+	{ 2,	TD,	sys_dup2,		"dup2"		}, /* 6032 */
+	{ 0,	TS,	sys_pause,		"pause"		}, /* 6033 */
+	{ 2,	0,	sys_nanosleep,		"nanosleep"	}, /* 6034 */
+	{ 2,	0,	sys_getitimer,		"getitimer"	}, /* 6035 */
+	{ 3,	0,	sys_setitimer,		"setitimer"	}, /* 6036 */
+	{ 1,	0,	sys_alarm,		"alarm"		}, /* 6037 */
+	{ 0,	0,	sys_getpid,		"getpid"	}, /* 6038 */
+	{ 4,	TD|TN,	sys_sendfile,		"sendfile"	}, /* 6039 */
+	{ 3,	TN,	sys_socket,		"socket"	}, /* 6040 */
+	{ 3,	TN,	sys_connect,		"connect"	}, /* 6041 */
+	{ 3,	TN,	sys_accept,		"accept"	}, /* 6042 */
+	{ 6,	TN,	sys_sendto,		"sendto"	}, /* 6043 */
+	{ 6,	TN,	sys_recvfrom,		"recvfrom"	}, /* 6044 */
+	{ 3,	TN,	sys_sendmsg,		"sendmsg"	}, /* 6045 */
+	{ 3,	TN,	sys_recvmsg,		"recvmsg"	}, /* 6046 */
+	{ 2,	TN,	sys_shutdown,		"shutdown"	}, /* 6047 */
+	{ 3,	TN,	sys_bind,		"bind"		}, /* 6048 */
+	{ 2,	TN,	sys_listen,		"listen"	}, /* 6049 */
+	{ 3,	TN,	sys_getsockname,	"getsockname"	}, /* 6050 */
+	{ 3,	TN,	sys_getpeername,	"getpeername"	}, /* 6051 */
+	{ 4,	TN,	sys_socketpair,		"socketpair"	}, /* 6052 */
+	{ 5,	TN,	sys_setsockopt,		"setsockopt"	}, /* 6053 */
+	{ 5,	TN,	sys_getsockopt,		"getsockopt"	}, /* 6054 */
+	{ 2,	TP,	sys_clone,		"clone"		}, /* 6055 */
+	{ 0,	TP,	sys_fork,		"fork"		}, /* 6056 */
+	{ 3,	TF|TP,	sys_execve,		"execve"	}, /* 6057 */
+	{ 1,	TP,	sys_exit,		"exit"		}, /* 6058 */
+	{ 4,	TP,	sys_wait4,		"wait4"		}, /* 6059 */
+	{ 2,	TS,	sys_kill,		"kill"		}, /* 6060 */
+	{ 1,	0,	sys_uname,		"uname"		}, /* 6061 */
+	{ 3,	TI,	sys_semget,		"semget"	}, /* 6062 */
+	{ 3,	TI,	printargs,		"semop"		}, /* 6063 */
+	{ 4,	TI,	sys_semctl,		"semctl"	}, /* 6064 */
+	{ 1,	TI,	sys_shmdt,		"shmdt"		}, /* 6065 */
+	{ 2,	TI,	sys_msgget,		"msgget"	}, /* 6066 */
+	{ 4,	TI,	sys_msgsnd,		"msgsnd"	}, /* 6067 */
+	{ 5,	TI,	sys_msgrcv,		"msgrcv"	}, /* 6068 */
+	{ 3,	TI,	sys_msgctl,		"msgctl"	}, /* 6069 */
+	{ 3,	TD,	sys_fcntl,		"fcntl"		}, /* 6070 */
+	{ 2,	TD,	sys_flock,		"flock"		}, /* 6071 */
+	{ 1,	TD,	sys_fsync,		"fsync"		}, /* 6072 */
+	{ 1,	TD,	sys_fdatasync,		"fdatasync"	}, /* 6073 */
+	{ 2,	TF,	sys_truncate64,		"truncate"	}, /* 6074 */
+	{ 2,	TD,	sys_ftruncate64,	"ftruncate"	}, /* 6075 */
+	{ 3,	TD,	sys_getdents,		"getdents"	}, /* 6076 */
+	{ 2,	TF,	sys_getcwd,		"getcwd"	}, /* 6077 */
+	{ 1,	TF,	sys_chdir,		"chdir"		}, /* 6078 */
+	{ 1,	TD,	sys_fchdir,		"fchdir"	}, /* 6079 */
+	{ 2,	TF,	sys_rename,		"rename"	}, /* 6080 */
+	{ 2,	TF,	sys_mkdir,		"mkdir"		}, /* 6081 */
+	{ 1,	TF,	sys_rmdir,		"rmdir"		}, /* 6082 */
+	{ 2,	TD|TF,	sys_creat,		"creat"		}, /* 6083 */
+	{ 2,	TF,	sys_link,		"link"		}, /* 6084 */
+	{ 1,	TF,	sys_unlink,		"unlink"	}, /* 6085 */
+	{ 2,	TF,	sys_symlink,		"symlink"	}, /* 6086 */
+	{ 3,	TF,	sys_readlink,		"readlink"	}, /* 6087 */
+	{ 2,	TF,	sys_chmod,		"chmod"		}, /* 6088 */
+	{ 2,	TD,	sys_fchmod,		"fchmod"	}, /* 6089 */
+	{ 3,	TF,	sys_chown,		"chown"		}, /* 6090 */
+	{ 3,	TD,	sys_fchown,		"fchown"	}, /* 6091 */
+	{ 3,	TF,	sys_chown,		"lchown"	}, /* 6092 */
+	{ 1,	0,	sys_umask,		"umask"		}, /* 6093 */
+	{ 2,	0,	sys_gettimeofday,	"gettimeofday"	}, /* 6094 */
+	{ 2,	0,	sys_getrlimit,		"getrlimit"	}, /* 6095 */
+	{ 2,	0,	sys_getrusage,		"getrusage"	}, /* 6096 */
+	{ 1,	0,	sys_sysinfo,		"sysinfo"	}, /* 6097 */
+	{ 1,	0,	sys_times,		"times"		}, /* 6098 */
+	{ 4,	0,	sys_ptrace,		"ptrace"	}, /* 6099 */
+	{ 0,	NF,	sys_getuid,		"getuid"	}, /* 6100 */
+	{ 3,	0,	sys_syslog,		"syslog"	}, /* 6101 */
+	{ 0,	NF,	sys_getgid,		"getgid"	}, /* 6102 */
+	{ 1,	0,	sys_setuid,		"setuid"	}, /* 6103 */
+	{ 1,	0,	sys_setgid,		"setgid"	}, /* 6104 */
+	{ 0,	NF,	sys_geteuid,		"geteuid"	}, /* 6105 */
+	{ 0,	NF,	sys_getegid,		"getegid"	}, /* 6106 */
+	{ 2,	0,	sys_setpgid,		"setpgid"	}, /* 6107 */
+	{ 0,	0,	sys_getppid,		"getppid"	}, /* 6108 */
+	{ 0,	0,	sys_getpgrp,		"getpgrp"	}, /* 6109 */
+	{ 0,	0,	sys_setsid,		"setsid"	}, /* 6110 */
+	{ 2,	0,	sys_setreuid,		"setreuid"	}, /* 6111 */
+	{ 2,	0,	sys_setregid,		"setregid"	}, /* 6112 */
+	{ 2,	0,	sys_getgroups,		"getgroups"	}, /* 6113 */
+	{ 2,	0,	sys_setgroups,		"setgroups"	}, /* 6114 */
+	{ 3,	0,	sys_setresuid,		"setresuid"	}, /* 6115 */
+	{ 3,	0,	sys_getresuid,		"getresuid"	}, /* 6116 */
+	{ 3,	0,	sys_setresgid,		"setresgid"	}, /* 6117 */
+	{ 3,	0,	sys_getresgid,		"getresgid"	}, /* 6118 */
+	{ 0,	0,	sys_getpgid,		"getpgid"	}, /* 6119 */
+	{ 1,	NF,	sys_setfsuid,		"setfsuid"	}, /* 6120 */
+	{ 1,	NF,	sys_setfsgid,		"setfsgid"	}, /* 6121 */
+	{ 1,	0,	sys_getsid,		"getsid"	}, /* 6122 */
+	{ 2,	0,	sys_capget,		"capget"	}, /* 6123 */
+	{ 2,	0,	sys_capset,		"capset"	}, /* 6124 */
+	{ 2,	TS,	sys_rt_sigpending,	"rt_sigpending"	}, /* 6125 */
+	{ 4,	TS,	sys_rt_sigtimedwait,	"rt_sigtimedwait"},/* 6126 */
+	{ 3,	TS,	sys_rt_sigqueueinfo,	"rt_sigqueueinfo"},/* 6127 */
+	{ 2,	TS,	sys_rt_sigsuspend,	"rt_sigsuspend"	}, /* 6128 */
+	{ 2,	TS,	sys_sigaltstack,	"sigaltstack"	}, /* 6129 */
+	{ 2,	TF,	sys_utime,		"utime"		}, /* 6130 */
+	{ 3,	TF,	sys_mknod,		"mknod"		}, /* 6131 */
+	{ 1,	0,	sys_personality,	"personality"	}, /* 6132 */
+	{ 2,	0,	sys_ustat,		"ustat"		}, /* 6133 */
+	{ 3,	TF,	sys_statfs,		"statfs"	}, /* 6134 */
+	{ 3,	TD,	sys_fstatfs,		"fstatfs"	}, /* 6135 */
+	{ 5,	0,	sys_sysfs,		"sysfs"		}, /* 6136 */
+	{ 2,	0,	sys_getpriority,	"getpriority"	}, /* 6137 */
+	{ 3,	0,	sys_setpriority,	"setpriority"	}, /* 6138 */
+	{ 2,	0,	sys_sched_setparam,	"sched_setparam"}, /* 6139 */
+	{ 2,	0,	sys_sched_getparam,	"sched_getparam"}, /* 6140 */
+	{ 3,	0,	sys_sched_setscheduler,	"sched_setscheduler"}, /* 6141 */
+	{ 1,	0,	sys_sched_getscheduler,	"sched_getscheduler"}, /* 6142 */
+	{ 1,	0,	sys_sched_get_priority_max,"sched_get_priority_max"}, /* 6143 */
+	{ 1,	0,	sys_sched_get_priority_min,"sched_get_priority_min"}, /* 6144 */
+	{ 2,	0,	sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 6145 */
+	{ 2,	TM,	sys_mlock,		"mlock"		}, /* 6146 */
+	{ 2,	TM,	sys_munlock,		"munlock"	}, /* 6147 */
+	{ 1,	TM,	sys_mlockall,		"mlockall"	}, /* 6148 */
+	{ 0,	TM,	sys_munlockall,		"munlockall"	}, /* 6149 */
+	{ 0,	0,	sys_vhangup,		"vhangup"	}, /* 6150 */
+	{ 2,	TF,	sys_pivotroot,		"pivot_root"	}, /* 6151 */
+	{ 1,	0,	sys_sysctl,		"_sysctl"	}, /* 6152 */
+	{ 5,	0,	sys_prctl,		"prctl"		}, /* 6153 */
+	{ 1,	0,	sys_adjtimex,		"adjtimex"	}, /* 6154 */
+	{ 2,	0,	sys_setrlimit,		"setrlimit"	}, /* 6155 */
+	{ 1,	TF,	sys_chroot,		"chroot"	}, /* 6156 */
+	{ 0,	0,	sys_sync,		"sync"		}, /* 6157 */
+	{ 1,	TF,	sys_acct,		"acct"		}, /* 6158 */
+	{ 2,	0,	sys_settimeofday,	"settimeofday"	}, /* 6159 */
+	{ 5,	TF,	sys_mount,		"mount"		}, /* 6160 */
+	{ 2,	TF,	sys_umount2,		"umount2"	}, /* 6161 */
+	{ 2,	TF,	sys_swapon,		"swapon"	}, /* 6162 */
+	{ 1,	TF,	sys_swapoff,		"swapoff"	}, /* 6163 */
+	{ 4,	0,	sys_reboot,		"reboot"	}, /* 6164 */
+	{ 2,	0,	sys_sethostname,	"sethostname"	}, /* 6165 */
+	{ 2,	0,	sys_setdomainname,	"setdomainname"	}, /* 6166 */
+	{ 2,	0,	sys_create_module,	"create_module"	}, /* 6167 */
+	{ 4,	0,	sys_init_module,	"init_module"	}, /* 6168 */
+	{ 1,	0,	sys_delete_module,	"delete_module"	}, /* 6169 */
+	{ 1,	0,	sys_get_kernel_syms,	"get_kernel_syms"}, /* 6170 */
+	{ 5,	0,	sys_query_module,	"query_module"	}, /* 6171 */
+	{ 4,	TF,	sys_quotactl,		"quotactl"	}, /* 6172 */
+	{ 3,	0,	sys_nfsservctl,		"nfsservctl"	}, /* 6173 */
+	{ 5,	TN,	printargs,		"getpmsg"	}, /* 6174 */
+	{ 5,	TN,	printargs,		"putpmsg"	}, /* 6175 */
+	{ 0,	0,	sys_afs_syscall,	"afs_syscall"	}, /* 6176 */
+	{ 0,	0,	printargs,		"reserved177"	}, /* 6177 */
+	{ 0,	0,	sys_gettid,		"gettid"	}, /* 6178 */
+	{ 3,	TD,	sys_readahead,		"readahead"	}, /* 6179 */
+	{ 5,	TF,	sys_setxattr,		"setxattr"	}, /* 6180 */
+	{ 5,	TF,	sys_setxattr,		"lsetxattr"	}, /* 6181 */
+	{ 5,	TD,	sys_fsetxattr,		"fsetxattr"	}, /* 6182 */
+	{ 4,	TF,	sys_getxattr,		"getxattr"	}, /* 6183 */
+	{ 4,	TF,	sys_getxattr,		"lgetxattr"	}, /* 6184 */
+	{ 4,	TD,	sys_fgetxattr,		"fgetxattr"	}, /* 6185 */
+	{ 3,	TF,	sys_listxattr,		"listxattr"	}, /* 6186 */
+	{ 3,	TF,	sys_listxattr,		"llistxattr"	}, /* 6187 */
+	{ 3,	TD,	sys_flistxattr,		"flistxattr"	}, /* 6188 */
+	{ 2,	TF,	sys_removexattr,	"removexattr"	}, /* 6189 */
+	{ 2,	TF,	sys_removexattr,	"lremovexattr"	}, /* 6190 */
+	{ 2,	TD,	sys_fremovexattr,	"fremovexattr"	}, /* 6191 */
+	{ 2,	TS,	sys_kill,		"tkill"		}, /* 6192 */
+	{ 1,	0,	sys_time,		"time"		}, /* 6193 */
+	{ 6,	0,	sys_futex,		"futex"		}, /* 6194 */
+	{ 3,	0,	sys_sched_setaffinity,	"sched_setaffinity"}, /* 6195 */
+	{ 3,	0,	sys_sched_getaffinity,	"sched_getaffinity"}, /* 6196 */
+	{ 3,	0,	printargs,		"cacheflush"	}, /* 6197 */
+	{ 3,	0,	printargs,		"cachectl"	}, /* 6198 */
+	{ 4,	0,	sys_sysmips,		"sysmips"	}, /* 6199 */
+	{ 2,	0,	sys_io_setup,		"io_setup"	}, /* 6200 */
+	{ 1,	0,	sys_io_destroy,		"io_destroy"	}, /* 6201 */
+	{ 5,	0,	sys_io_getevents,	"io_getevents"	}, /* 6202 */
+	{ 3,	0,	sys_io_submit,		"io_submit"	}, /* 6203 */
+	{ 3,	0,	sys_io_cancel,		"io_cancel"	}, /* 6204 */
+	{ 1,	TP,	sys_exit,		"exit_group"	}, /* 6205 */
+	{ 3,	0,	sys_lookup_dcookie,	"lookup_dcookie"	}, /* 6206 */
+	{ 1,	TD,	sys_epoll_create,	"epoll_create"	}, /* 6207 */
+	{ 4,	TD,	sys_epoll_ctl,		"epoll_ctl"	}, /* 6208 */
+	{ 4,	TD,	sys_epoll_wait,		"epoll_wait"	}, /* 6209 */
+	{ 5,	TM,	sys_remap_file_pages,	"remap_file_pages"	}, /* 6210 */
+	{ 0,	TS,	sys_rt_sigreturn,	"rt_sigreturn"	}, /* 6211 */
+	{ 3,	TD,	sys_fcntl,		"fcntl64"	}, /* 6212 */
+	{ 1,	0,	sys_set_tid_address,	"set_tid_address" }, /* 6213 */
+	{ 0,	0,	sys_restart_syscall,	"restart_syscall" }, /* 6214 */
+	{ 5,	TI,	sys_semtimedop,		"semtimedop"	}, /* 6215 */
+	{ 4,	TD,	sys_fadvise64,		"fadvise64"	}, /* 6216 */
+	{ 3,	TF,	sys_statfs64,		"statfs64"	}, /* 6217 */
+	{ 3,	TD,	sys_fstatfs64,		"fstatfs64"	}, /* 6218 */
+	{ 4,	TD|TN,	sys_sendfile64,		"sendfile64"	}, /* 6219 */
+	{ 3,	0,	sys_timer_create,	"timer_create"	}, /* 6220 */
+	{ 4,	0,	sys_timer_settime,	"timer_settime"	}, /* 6221 */
+	{ 2,	0,	sys_timer_gettime,	"timer_gettime"	}, /* 6222 */
+	{ 1,	0,	sys_timer_getoverrun,	"timer_getoverrun"	}, /* 6223 */
+	{ 1,	0,	sys_timer_delete,	"timer_delete"	}, /* 6224 */
+	{ 2,	0,	sys_clock_settime,	"clock_settime"	}, /* 6225 */
+	{ 2,	0,	sys_clock_gettime,	"clock_gettime"	}, /* 6226 */
+	{ 2,	0,	sys_clock_getres,	"clock_getres"	}, /* 6227 */
+	{ 4,	0,	sys_clock_nanosleep,	"clock_nanosleep" }, /* 6228 */
+	{ 3,	TS,	sys_tgkill,		"tgkill"	}, /* 6229 */
+	{ 2,	TF,	sys_utimes,		"utimes"	}, /* 6230 */
+	{ 6,	TM,	sys_mbind,		"mbind"		}, /* 6231 */
+	{ 5,	TM,	sys_get_mempolicy,	"get_mempolicy"	}, /* 6232 */
+	{ 3,	TM,	sys_set_mempolicy,	"set_mempolicy"	}, /* 6233 */
+	{ 4,	0,	sys_mq_open,		"mq_open"	}, /* 6234 */
+	{ 1,	0,	sys_mq_unlink,		"mq_unlink"	}, /* 6235 */
+	{ 5,	0,	sys_mq_timedsend,	"mq_timedsend"	}, /* 6236 */
+	{ 5,	0,	sys_mq_timedreceive,	"mq_timedreceive" }, /* 6237 */
+	{ 2,	0,	sys_mq_notify,		"mq_notify"	}, /* 6238 */
+	{ 3,	0,	sys_mq_getsetattr,	"mq_getsetattr"	}, /* 6239 */
+	{ 5,	0,	sys_vserver,		"vserver"	}, /* 6240 */
+	{ 5,	TP,	sys_waitid,		"waitid"	}, /* 6241 */
+	[6242] = { },
+	{ 5,	0,	sys_add_key,		"add_key"	}, /* 6243 */
+	{ 4,	0,	sys_request_key,	"request_key"	}, /* 6244 */
+	{ 5,	0,	sys_keyctl,		"keyctl"	}, /* 6245 */
+	{ 1,	0,	sys_set_thread_area,	"set_thread_area" }, /* 6246 */
+	{ 0,	TD,	sys_inotify_init,	"inotify_init"	}, /* 6247 */
+	{ 3,	TD,	sys_inotify_add_watch,	"inotify_add_watch" }, /* 6248 */
+	{ 2,	TD,	sys_inotify_rm_watch,	"inotify_rm_watch" }, /* 6249 */
+	{ 4,	TM,	sys_migrate_pages,	"migrate_pages"	}, /* 6250 */
+	{ 4,	TD|TF,	sys_openat,		"openat"	}, /* 6251 */
+	{ 3,	TD|TF,	sys_mkdirat,		"mkdirat"	}, /* 6252 */
+	{ 4,	TD|TF,	sys_mknodat,		"mknodat"	}, /* 6253 */
+	{ 5,	TD|TF,	sys_fchownat,		"fchownat"	}, /* 6254 */
+	{ 3,	TD|TF,	sys_futimesat,		"futimesat"	}, /* 6255 */
+	{ 4,	TD|TF,	sys_newfstatat,		"newfstatat"	}, /* 6256 */
+	{ 3,	TD|TF,	sys_unlinkat,		"unlinkat"	}, /* 6257 */
+	{ 4,	TD|TF,	sys_renameat,		"renameat"	}, /* 6258 */
+	{ 5,	TD|TF,	sys_linkat,		"linkat"	}, /* 6259 */
+	{ 3,	TD|TF,	sys_symlinkat,		"symlinkat"	}, /* 6260 */
+	{ 4,	TD|TF,	sys_readlinkat,		"readlinkat"	}, /* 6261 */
+	{ 3,	TD|TF,	sys_fchmodat,		"fchmodat"	}, /* 6262 */
+	{ 3,	TD|TF,	sys_faccessat,		"faccessat"	}, /* 6263 */
+	{ 6,	TD,	sys_pselect6,		"pselect6"	}, /* 6264 */
+	{ 5,	TD,	sys_ppoll,		"ppoll"		}, /* 6265 */
+	{ 1,	TP,	sys_unshare,		"unshare"	}, /* 6266 */
+	{ 6,	TD,	sys_splice,		"splice"	}, /* 6267 */
+	{ 4,	TD,	sys_sync_file_range,	"sync_file_range" }, /* 6268 */
+	{ 4,	TD,	sys_tee,		"tee"		}, /* 6269 */
+	{ 4,	TD,	sys_vmsplice,		"vmsplice"	}, /* 6270 */
+	{ 6,	TM,	printargs,		"move_pages"	}, /* 6271 */
+	{ 2,	0,	sys_set_robust_list,	"set_robust_list" }, /* 6272 */
+	{ 3,	0,	sys_get_robust_list,	"get_robust_list" }, /* 6273 */
+	{ 4,	0,	sys_kexec_load,		"kexec_load"	}, /* 6274 */
+	{ 3,	0,	sys_getcpu,		"getcpu"	}, /* 6275 */
+	{ 6,	TD,	sys_epoll_pwait,	"epoll_pwait"	}, /* 6276 */
+	{ 3,	0,	sys_ioprio_set,		"ioprio_set"	}, /* 6277 */
+	{ 2,	0,	sys_ioprio_get,		"ioprio_get"	}, /* 6278 */
+	{ 4,	TD|TF,	sys_utimensat,		"utimensat"	}, /* 6279 */
+	{ 3,	TD|TS,	sys_signalfd,		"signalfd"	}, /* 6280 */
+	{ 4,	TD,	sys_timerfd,		"timerfd"	}, /* 6281 */
+	{ 1,	TD,	sys_eventfd,		"eventfd"	}, /* 6282 */
+	{ 4,	TD,	sys_fallocate,		"fallocate"	}, /* 6283 */
+	{ 2,	TD,	sys_timerfd_create,	"timerfd_create" }, /* 6284 */
+	{ 2,	TD,	sys_timerfd_gettime,	"timerfd_gettime" }, /* 6285 */
+	{ 4,	TD,	sys_timerfd_settime,	"timerfd_settime" }, /* 6286 */
+	{ 4,	TD|TS,	sys_signalfd4,		"signalfd4"	}, /* 6287 */
+	{ 2,	TD,	sys_eventfd2,		"eventfd2"	}, /* 6288 */
+	{ 1,	TD,	sys_epoll_create1,	"epoll_create1"	}, /* 6289 */
+	{ 3,	TD,	sys_dup3,		"dup3"		}, /* 6290 */
+	{ 2,	TD,	sys_pipe2,		"pipe2"		}, /* 6291 */
+	{ 1,	TD,	sys_inotify_init1,	"inotify_init1"	}, /* 6292 */
+	{ 4,	TD,	sys_preadv,		"preadv"	}, /* 6293 */
+	{ 4,	TD,	sys_pwritev,		"pwritev"	}, /* 6294 */
+	{ 4,	TP|TS,	sys_rt_tgsigqueueinfo,	"rt_tgsigqueueinfo" }, /* 6295 */
+	{ 5,	TD,	sys_perf_event_open,	"perf_event_open" }, /* 6296 */
+	{ 4,	TN,	sys_accept4,		"accept4"	}, /* 6297 */
+	{ 5,	TN,	sys_recvmmsg,		"recvmmsg"	}, /* 6298 */
+	{ 3,	TD,	sys_getdents64,		"getdents64"	}, /* 6299 */
+	{ 2,	TD,	sys_fanotify_init,	"fanotify_init"	}, /* 6300 */
+	{ 5,	TD|TF,	sys_fanotify_mark,	"fanotify_mark"	}, /* 6301 */
+	{ 4,	0,	sys_prlimit64,		"prlimit64"	}, /* 6302 */
+	{ 5,	TD|TF,	sys_name_to_handle_at,	"name_to_handle_at"}, /* 6303 */
+	{ 3,	TD,	sys_open_by_handle_at,	"open_by_handle_at"}, /* 6304 */
+	{ 2,	0,	sys_clock_adjtime,	"clock_adjtime"	}, /* 6305 */
+	{ 1,	TD,	sys_syncfs,		"syncfs"	}, /* 6306 */
+	{ 4,	TN,	sys_sendmmsg,		"sendmmsg"	}, /* 6307 */
+	{ 2,	TD,	sys_setns,		"setns"		}, /* 6308 */
+	{ 6,	0,	sys_process_vm_readv,	"process_vm_readv"	}, /* 6309 */
+	{ 6,	0,	sys_process_vm_writev,	"process_vm_writev"	}, /* 6310 */
+	{ 5,	0,	sys_kcmp,		"kcmp"			}, /* 6311 */
+	{ 3,	TD,	sys_finit_module,	"finit_module"		}, /* 6312 */
+#else
+	{ 0,	0,	printargs,		"n32_read"		}, /* 6000 */
+	{ 0,	0,	printargs,		"n32_write"		}, /* 6001 */
+	{ 0,	0,	printargs,		"n32_open"		}, /* 6002 */
+	{ 0,	0,	printargs,		"n32_close"		}, /* 6003 */
+	{ 0,	0,	printargs,		"n32_stat"		}, /* 6004 */
+	{ 0,	0,	printargs,		"n32_fstat"		}, /* 6005 */
+	{ 0,	0,	printargs,		"n32_lstat"		}, /* 6006 */
+	{ 0,	0,	printargs,		"n32_poll"		}, /* 6007 */
+	{ 0,	0,	printargs,		"n32_lseek"		}, /* 6008 */
+	{ 0,	TD|TM,	printargs,		"n32_mmap"		}, /* 6009 */
+	{ 0,	TM,	printargs,		"n32_mprotect"		}, /* 6010 */
+	{ 0,	TM,	printargs,		"n32_munmap"		}, /* 6011 */
+	{ 0,	TM,	printargs,		"n32_brk"		}, /* 6012 */
+	{ 0,	0,	printargs,		"n32_rt_sigaction"	}, /* 6013 */
+	{ 0,	0,	printargs,		"n32_rt_sigprocmask"	}, /* 6014 */
+	{ 0,	0,	printargs,		"n32_ioctl"		}, /* 6015 */
+	{ 0,	0,	printargs,		"n32_pread64"		}, /* 6016 */
+	{ 0,	0,	printargs,		"n32_pwrite64"		}, /* 6017 */
+	{ 0,	0,	printargs,		"n32_readv"		}, /* 6018 */
+	{ 0,	0,	printargs,		"n32_writev"		}, /* 6019 */
+	{ 0,	0,	printargs,		"n32_access"		}, /* 6020 */
+	{ 0,	0,	printargs,		"n32_pipe"		}, /* 6021 */
+	{ 0,	0,	printargs,		"n32__newselect"	}, /* 6022 */
+	{ 0,	0,	printargs,		"n32_sched_yield"	}, /* 6023 */
+	{ 0,	TM,	printargs,		"n32_mremap"		}, /* 6024 */
+	{ 0,	TM,	printargs,		"n32_msync"		}, /* 6025 */
+	{ 0,	TM,	printargs,		"n32_mincore"		}, /* 6026 */
+	{ 0,	TM,	printargs,		"n32_madvise"		}, /* 6027 */
+	{ 0,	0,	printargs,		"n32_shmget"		}, /* 6028 */
+	{ 0,	0,	printargs,		"n32_shmat"		}, /* 6029 */
+	{ 0,	0,	printargs,		"n32_shmctl"		}, /* 6030 */
+	{ 0,	0,	printargs,		"n32_dup"		}, /* 6031 */
+	{ 0,	0,	printargs,		"n32_dup2"		}, /* 6032 */
+	{ 0,	0,	printargs,		"n32_pause"		}, /* 6033 */
+	{ 0,	0,	printargs,		"n32_nanosleep"		}, /* 6034 */
+	{ 0,	0,	printargs,		"n32_getitimer"		}, /* 6035 */
+	{ 0,	0,	printargs,		"n32_setitimer"		}, /* 6036 */
+	{ 0,	0,	printargs,		"n32_alarm"		}, /* 6037 */
+	{ 0,	0,	printargs,		"n32_getpid"		}, /* 6038 */
+	{ 0,	0,	printargs,		"n32_sendfile"		}, /* 6039 */
+	{ 0,	0,	printargs,		"n32_socket"		}, /* 6040 */
+	{ 0,	0,	printargs,		"n32_connect"		}, /* 6041 */
+	{ 0,	0,	printargs,		"n32_accept"		}, /* 6042 */
+	{ 0,	0,	printargs,		"n32_sendto"		}, /* 6043 */
+	{ 0,	0,	printargs,		"n32_recvfrom"		}, /* 6044 */
+	{ 0,	0,	printargs,		"n32_sendmsg"		}, /* 6045 */
+	{ 0,	0,	printargs,		"n32_recvmsg"		}, /* 6046 */
+	{ 0,	0,	printargs,		"n32_shutdown"		}, /* 6047 */
+	{ 0,	0,	printargs,		"n32_bind"		}, /* 6048 */
+	{ 0,	0,	printargs,		"n32_listen"		}, /* 6049 */
+	{ 0,	0,	printargs,		"n32_getsockname"	}, /* 6050 */
+	{ 0,	0,	printargs,		"n32_getpeername"	}, /* 6051 */
+	{ 0,	0,	printargs,		"n32_socketpair"	}, /* 6052 */
+	{ 0,	0,	printargs,		"n32_setsockopt"	}, /* 6053 */
+	{ 0,	0,	printargs,		"n32_getsockopt"	}, /* 6054 */
+	{ 0,	0,	printargs,		"n32_clone"		}, /* 6055 */
+	{ 0,	0,	printargs,		"n32_fork"		}, /* 6056 */
+	{ 0,	0,	printargs,		"n32_execve"		}, /* 6057 */
+	{ 0,	0,	printargs,		"n32_exit"		}, /* 6058 */
+	{ 0,	0,	printargs,		"n32_wait4"		}, /* 6059 */
+	{ 0,	0,	printargs,		"n32_kill"		}, /* 6060 */
+	{ 0,	0,	printargs,		"n32_uname"		}, /* 6061 */
+	{ 0,	0,	printargs,		"n32_semget"		}, /* 6062 */
+	{ 0,	0,	printargs,		"n32_semop"		}, /* 6063 */
+	{ 0,	0,	printargs,		"n32_semctl"		}, /* 6064 */
+	{ 0,	0,	printargs,		"n32_shmdt"		}, /* 6065 */
+	{ 0,	0,	printargs,		"n32_msgget"		}, /* 6066 */
+	{ 0,	0,	printargs,		"n32_msgsnd"		}, /* 6067 */
+	{ 0,	0,	printargs,		"n32_msgrcv"		}, /* 6068 */
+	{ 0,	0,	printargs,		"n32_msgctl"		}, /* 6069 */
+	{ 0,	0,	printargs,		"n32_fcntl"		}, /* 6070 */
+	{ 0,	0,	printargs,		"n32_flock"		}, /* 6071 */
+	{ 0,	0,	printargs,		"n32_fsync"		}, /* 6072 */
+	{ 0,	0,	printargs,		"n32_fdatasync"		}, /* 6073 */
+	{ 0,	0,	printargs,		"n32_truncate"		}, /* 6074 */
+	{ 0,	0,	printargs,		"n32_ftruncate"		}, /* 6075 */
+	{ 0,	0,	printargs,		"n32_getdents"		}, /* 6076 */
+	{ 0,	0,	printargs,		"n32_getcwd"		}, /* 6077 */
+	{ 0,	0,	printargs,		"n32_chdir"		}, /* 6078 */
+	{ 0,	0,	printargs,		"n32_fchdir"		}, /* 6079 */
+	{ 0,	0,	printargs,		"n32_rename"		}, /* 6080 */
+	{ 0,	0,	printargs,		"n32_mkdir"		}, /* 6081 */
+	{ 0,	0,	printargs,		"n32_rmdir"		}, /* 6082 */
+	{ 0,	0,	printargs,		"n32_creat"		}, /* 6083 */
+	{ 0,	0,	printargs,		"n32_link"		}, /* 6084 */
+	{ 0,	0,	printargs,		"n32_unlink"		}, /* 6085 */
+	{ 0,	0,	printargs,		"n32_symlink"		}, /* 6086 */
+	{ 0,	0,	printargs,		"n32_readlink"		}, /* 6087 */
+	{ 0,	0,	printargs,		"n32_chmod"		}, /* 6088 */
+	{ 0,	0,	printargs,		"n32_fchmod"		}, /* 6089 */
+	{ 0,	0,	printargs,		"n32_chown"		}, /* 6090 */
+	{ 0,	0,	printargs,		"n32_fchown"		}, /* 6091 */
+	{ 0,	0,	printargs,		"n32_lchown"		}, /* 6092 */
+	{ 0,	0,	printargs,		"n32_umask"		}, /* 6093 */
+	{ 0,	0,	printargs,		"n32_gettimeofday"	}, /* 6094 */
+	{ 0,	0,	printargs,		"n32_getrlimit"		}, /* 6095 */
+	{ 0,	0,	printargs,		"n32_getrusage"		}, /* 6096 */
+	{ 0,	0,	printargs,		"n32_sysinfo"		}, /* 6097 */
+	{ 0,	0,	printargs,		"n32_times"		}, /* 6098 */
+	{ 0,	0,	printargs,		"n32_ptrace"		}, /* 6099 */
+	{ 0,	0,	printargs,		"n32_getuid"		}, /* 6100 */
+	{ 0,	0,	printargs,		"n32_syslog"		}, /* 6101 */
+	{ 0,	0,	printargs,		"n32_getgid"		}, /* 6102 */
+	{ 0,	0,	printargs,		"n32_setuid"		}, /* 6103 */
+	{ 0,	0,	printargs,		"n32_setgid"		}, /* 6104 */
+	{ 0,	0,	printargs,		"n32_geteuid"		}, /* 6105 */
+	{ 0,	0,	printargs,		"n32_getegid"		}, /* 6106 */
+	{ 0,	0,	printargs,		"n32_setpgid"		}, /* 6107 */
+	{ 0,	0,	printargs,		"n32_getppid"		}, /* 6108 */
+	{ 0,	0,	printargs,		"n32_getpgrp"		}, /* 6109 */
+	{ 0,	0,	printargs,		"n32_setsid"		}, /* 6110 */
+	{ 0,	0,	printargs,		"n32_setreuid"		}, /* 6111 */
+	{ 0,	0,	printargs,		"n32_setregid"		}, /* 6112 */
+	{ 0,	0,	printargs,		"n32_getgroups"		}, /* 6113 */
+	{ 0,	0,	printargs,		"n32_setgroups"		}, /* 6114 */
+	{ 0,	0,	printargs,		"n32_setresuid"		}, /* 6115 */
+	{ 0,	0,	printargs,		"n32_getresuid"		}, /* 6116 */
+	{ 0,	0,	printargs,		"n32_setresgid"		}, /* 6117 */
+	{ 0,	0,	printargs,		"n32_getresgid"		}, /* 6118 */
+	{ 0,	0,	printargs,		"n32_getpgid"		}, /* 6119 */
+	{ 0,	0,	printargs,		"n32_setfsuid"		}, /* 6120 */
+	{ 0,	0,	printargs,		"n32_setfsgid"		}, /* 6121 */
+	{ 0,	0,	printargs,		"n32_getsid"		}, /* 6122 */
+	{ 0,	0,	printargs,		"n32_capget"		}, /* 6123 */
+	{ 0,	0,	printargs,		"n32_capset"		}, /* 6124 */
+	{ 0,	0,	printargs,		"n32_rt_sigpending"	}, /* 6125 */
+	{ 0,	0,	printargs,		"n32_rt_sigtimedwait"	}, /* 6126 */
+	{ 0,	0,	printargs,		"n32_rt_sigqueueinfo"	}, /* 6127 */
+	{ 0,	0,	printargs,		"n32_rt_sigsuspend"	}, /* 6128 */
+	{ 0,	0,	printargs,		"n32_sigaltstack"	}, /* 6129 */
+	{ 0,	0,	printargs,		"n32_utime"		}, /* 6130 */
+	{ 0,	0,	printargs,		"n32_mknod"		}, /* 6131 */
+	{ 0,	0,	printargs,		"n32_personality"	}, /* 6132 */
+	{ 0,	0,	printargs,		"n32_ustat"		}, /* 6133 */
+	{ 0,	0,	printargs,		"n32_statfs"		}, /* 6134 */
+	{ 0,	0,	printargs,		"n32_fstatfs"		}, /* 6135 */
+	{ 0,	0,	printargs,		"n32_sysfs"		}, /* 6136 */
+	{ 0,	0,	printargs,		"n32_getpriority"	}, /* 6137 */
+	{ 0,	0,	printargs,		"n32_setpriority"	}, /* 6138 */
+	{ 0,	0,	printargs,		"n32_sched_setparam"	}, /* 6139 */
+	{ 0,	0,	printargs,		"n32_sched_getparam"	}, /* 6140 */
+	{ 0,	0,	printargs,		"n32_sched_setscheduler"}, /* 6141 */
+	{ 0,	0,	printargs,		"n32_sched_getscheduler"}, /* 6142 */
+	{ 0,	0,	printargs,		"n32_sched_get_priority_max"}, /* 6143 */
+	{ 0,	0,	printargs,		"n32_sched_get_priority_min"}, /* 6144 */
+	{ 0,	0,	printargs,		"n32_sched_rr_get_interval"}, /* 6145 */
+	{ 0,	TM,	printargs,		"n32_mlock"		}, /* 6146 */
+	{ 0,	TM,	printargs,		"n32_munlock"		}, /* 6147 */
+	{ 0,	TM,	printargs,		"n32_mlockall"		}, /* 6148 */
+	{ 0,	TM,	printargs,		"n32_munlockall"	}, /* 6149 */
+	{ 0,	0,	printargs,		"n32_vhangup"		}, /* 6150 */
+	{ 0,	0,	printargs,		"n32_pivot_root"	}, /* 6151 */
+	{ 0,	0,	printargs,		"n32__sysctl"		}, /* 6152 */
+	{ 0,	0,	printargs,		"n32_prctl"		}, /* 6153 */
+	{ 0,	0,	printargs,		"n32_adjtimex"		}, /* 6154 */
+	{ 0,	0,	printargs,		"n32_setrlimit"		}, /* 6155 */
+	{ 0,	0,	printargs,		"n32_chroot"		}, /* 6156 */
+	{ 0,	0,	printargs,		"n32_sync"		}, /* 6157 */
+	{ 0,	0,	printargs,		"n32_acct"		}, /* 6158 */
+	{ 0,	0,	printargs,		"n32_settimeofday"	}, /* 6159 */
+	{ 0,	0,	printargs,		"n32_mount"		}, /* 6160 */
+	{ 0,	0,	printargs,		"n32_umount2"		}, /* 6161 */
+	{ 0,	0,	printargs,		"n32_swapon"		}, /* 6162 */
+	{ 0,	0,	printargs,		"n32_swapoff"		}, /* 6163 */
+	{ 0,	0,	printargs,		"n32_reboot"		}, /* 6164 */
+	{ 0,	0,	printargs,		"n32_sethostname"	}, /* 6165 */
+	{ 0,	0,	printargs,		"n32_setdomainname"	}, /* 6166 */
+	{ 0,	0,	printargs,		"n32_create_module"	}, /* 6167 */
+	{ 0,	0,	printargs,		"n32_init_module"	}, /* 6168 */
+	{ 0,	0,	printargs,		"n32_delete_module"	}, /* 6169 */
+	{ 0,	0,	printargs,		"n32_get_kernel_syms"	}, /* 6170 */
+	{ 0,	0,	printargs,		"n32_query_module"	}, /* 6171 */
+	{ 0,	TF,	printargs,		"n32_quotactl"		}, /* 6172 */
+	{ 0,	0,	printargs,		"n32_nfsservctl"	}, /* 6173 */
+	{ 0,	0,	printargs,		"n32_getpmsg"		}, /* 6174 */
+	{ 0,	0,	printargs,		"n32_putpmsg"		}, /* 6175 */
+	{ 0,	0,	printargs,		"n32_afs_syscall"	}, /* 6176 */
+	{ 0,	0,	printargs,		"n32_reserved177"	}, /* 6177 */
+	{ 0,	0,	printargs,		"n32_gettid"		}, /* 6178 */
+	{ 0,	0,	printargs,		"n32_readahead"		}, /* 6179 */
+	{ 0,	0,	printargs,		"n32_setxattr"		}, /* 6180 */
+	{ 0,	0,	printargs,		"n32_lsetxattr"		}, /* 6181 */
+	{ 0,	0,	printargs,		"n32_fsetxattr"		}, /* 6182 */
+	{ 0,	0,	printargs,		"n32_getxattr"		}, /* 6183 */
+	{ 0,	0,	printargs,		"n32_lgetxattr"		}, /* 6184 */
+	{ 0,	0,	printargs,		"n32_fgetxattr"		}, /* 6185 */
+	{ 0,	0,	printargs,		"n32_listxattr"		}, /* 6186 */
+	{ 0,	0,	printargs,		"n32_llistxattr"	}, /* 6187 */
+	{ 0,	0,	printargs,		"n32_flistxattr"	}, /* 6188 */
+	{ 0,	0,	printargs,		"n32_removexattr"	}, /* 6189 */
+	{ 0,	0,	printargs,		"n32_lremovexattr"	}, /* 6190 */
+	{ 0,	0,	printargs,		"n32_fremovexattr"	}, /* 6191 */
+	{ 0,	0,	printargs,		"n32_tkill"		}, /* 6192 */
+	{ 0,	0,	printargs,		"n32_time"		}, /* 6193 */
+	{ 0,	0,	printargs,		"n32_futex"		}, /* 6194 */
+	{ 0,	0,	printargs,		"n32_sched_setaffinity"	}, /* 6195 */
+	{ 0,	0,	printargs,		"n32_sched_getaffinity"	}, /* 6196 */
+	{ 0,	0,	printargs,		"n32_cacheflush"	}, /* 6197 */
+	{ 0,	0,	printargs,		"n32_cachectl"		}, /* 6198 */
+	{ 0,	0,	printargs,		"n32_sysmips"		}, /* 6199 */
+	{ 0,	0,	printargs,		"n32_io_setup"		}, /* 6200 */
+	{ 0,	0,	printargs,		"n32_io_destroy"	}, /* 6201 */
+	{ 0,	0,	printargs,		"n32_io_getevents"	}, /* 6202 */
+	{ 0,	0,	printargs,		"n32_io_submit"		}, /* 6203 */
+	{ 0,	0,	printargs,		"n32_io_cancel"		}, /* 6204 */
+	{ 1,	TP,	printargs,		"n32_exit_group"	}, /* 6205 */
+	{ 0,	0,	printargs,		"n32_lookup_dcookie"	}, /* 6206 */
+	{ 0,	0,	printargs,		"n32_epoll_create"	}, /* 6207 */
+	{ 0,	0,	printargs,		"n32_epoll_ctl"		}, /* 6208 */
+	{ 0,	0,	printargs,		"n32_epoll_wait"	}, /* 6209 */
+	{ 0,	TM,	printargs,		"n32_remap_file_pages"	}, /* 6210 */
+	{ 0,	0,	printargs,		"n32_rt_sigreturn"	}, /* 6211 */
+	{ 0,	0,	printargs,		"n32_fcntl64"		}, /* 6212 */
+	{ 0,	0,	printargs,		"n32_set_tid_address"	}, /* 6213 */
+	{ 0,	0,	printargs,		"n32_restart_syscall"	}, /* 6214 */
+	{ 0,	0,	printargs,		"n32_semtimedop"	}, /* 6215 */
+	{ 0,	0,	printargs,		"n32_fadvise64"		}, /* 6216 */
+	{ 0,	0,	printargs,		"n32_statfs64"		}, /* 6217 */
+	{ 0,	0,	printargs,		"n32_fstatfs64"		}, /* 6218 */
+	{ 0,	0,	printargs,		"n32_sendfile64"	}, /* 6219 */
+	{ 3,	0,	printargs,		"n32_timer_create"	}, /* 6220 */
+	{ 4,	0,	printargs,		"n32_timer_settime"	}, /* 6221 */
+	{ 2,	0,	printargs,		"n32_timer_gettime"	}, /* 6222 */
+	{ 1,	0,	printargs,		"n32_timer_getoverrun"	}, /* 6223 */
+	{ 1,	0,	printargs,		"n32_timer_delete"	}, /* 6224 */
+	{ 2,	0,	printargs,		"n32_clock_settime"	}, /* 6225 */
+	{ 2,	0,	printargs,		"n32_clock_gettime"	}, /* 6226 */
+	{ 2,	0,	printargs,		"n32_clock_getres"	}, /* 6227 */
+	{ 4,	0,	printargs,		"n32_clock_nanosleep"	}, /* 6228 */
+	{ 3,	0,	printargs,		"n32_tgkill"		}, /* 6229 */
+	{ 2,	0,	printargs,		"n32_utimes"		}, /* 6230 */
+	{ 6,	TM,	printargs,		"n32_mbind"		}, /* 6231 */
+	{ 5,	TM,	printargs,		"n32_get_mempolicy"	}, /* 6232 */
+	{ 3,	TM,	printargs,		"n32_set_mempolicy"	}, /* 6233 */
+	{ 4,	0,	printargs,		"n32_mq_open"		}, /* 6234 */
+	{ 1,	0,	printargs,		"n32_mq_unlink"		}, /* 6235 */
+	{ 5,	0,	printargs,		"n32_mq_timedsend"	}, /* 6236 */
+	{ 5,	0,	printargs,		"n32_mq_timedreceive"	}, /* 6237 */
+	{ 2,	0,	printargs,		"n32_mq_notify"		}, /* 6238 */
+	{ 3,	0,	printargs,		"n32_mq_getsetattr"	}, /* 6239 */
+	{ 5,	0,	printargs,		"n32_vserver"		}, /* 6240 */
+	{ 5,	TP,	printargs,		"n32_waitid"		}, /* 6241 */
+	{ 0,	0,	printargs,		"n32_SYS_6242"		}, /* 6242 */
+	{ 5,	0,	printargs,		"n32_add_key"		}, /* 6243 */
+	{ 4,	0,	printargs,		"n32_request_key"	}, /* 6244 */
+	{ 5,	0,	printargs,		"n32_keyctl"		}, /* 6245 */
+	{ 1,	0,	printargs,		"n32_set_thread_area"	}, /* 6246 */
+	{ 0,	TD,	printargs,		"n32_inotify_init"	}, /* 6247 */
+	{ 3,	TD,	printargs,		"n32_inotify_add_watch" }, /* 6248 */
+	{ 2,	TD,	printargs,		"n32_inotify_rm_watch"	}, /* 6249 */
+	{ 4,	TM,	printargs,		"n32_migrate_pages"	}, /* 6250 */
+	{ 4,	TD|TF,	printargs,		"n32_openat"		}, /* 6251 */
+	{ 3,	TD|TF,	printargs,		"n32_mkdirat"		}, /* 6252 */
+	{ 4,	TD|TF,	printargs,		"n32_mknodat"		}, /* 6253 */
+	{ 5,	TD|TF,	printargs,		"n32_fchownat"		}, /* 6254 */
+	{ 3,	TD|TF,	printargs,		"n32_futimesat"		}, /* 6255 */
+	{ 4,	TD|TF,	printargs,		"n32_newfstatat"	}, /* 6256 */
+	{ 3,	TD|TF,	printargs,		"n32_unlinkat"		}, /* 6257 */
+	{ 4,	TD|TF,	printargs,		"n32_renameat"		}, /* 6258 */
+	{ 5,	TD|TF,	printargs,		"n32_linkat"		}, /* 6259 */
+	{ 3,	TD|TF,	printargs,		"n32_symlinkat"		}, /* 6260 */
+	{ 4,	TD|TF,	printargs,		"n32_readlinkat"	}, /* 6261 */
+	{ 3,	TD|TF,	printargs,		"n32_fchmodat"		}, /* 6262 */
+	{ 3,	TD|TF,	printargs,		"n32_faccessat"		}, /* 6263 */
+	{ 6,	TD,	printargs,		"n32_pselect6"		}, /* 6264 */
+	{ 5,	TD,	printargs,		"n32_ppoll"		}, /* 6265 */
+	{ 1,	TP,	printargs,		"n32_unshare"		}, /* 6266 */
+	{ 6,	TD,	printargs,		"n32_splice"		}, /* 6267 */
+	{ 4,	TD,	printargs,		"n32_sync_file_range"	}, /* 6268 */
+	{ 4,	TD,	printargs,		"n32_tee"		}, /* 6269 */
+	{ 4,	TD,	printargs,		"n32_vmsplice"		}, /* 6270 */
+	{ 6,	TM,	printargs,		"n32_move_pages"	}, /* 6271 */
+	{ 2,	0,	printargs,		"n32_set_robust_list"	}, /* 6272 */
+	{ 3,	0,	printargs,		"n32_get_robust_list"	}, /* 6273 */
+	{ 5,	0,	printargs,		"n32_kexec_load"	}, /* 6274 */
+	{ 3,	0,	printargs,		"n32_getcpu"		}, /* 6275 */
+	{ 5,	TD,	printargs,		"n32_epoll_pwait"	}, /* 6276 */
+	{ 3,	0,	printargs,		"n32_ioprio_set"	}, /* 6277 */
+	{ 2,	0,	printargs,		"n32_ioprio_get"	}, /* 6278 */
+	{ 4,	TD|TF,	printargs,		"n32_utimensat"		}, /* 6279 */
+	{ 3,	TD|TS,	printargs,		"n32_signalfd"		}, /* 6280 */
+	{ 4,	TD,	printargs,		"n32_timerfd"		}, /* 6281 */
+	{ 1,	TD,	printargs,		"n32_eventfd"		}, /* 6282 */
+	{ 6,	TD,	printargs,		"n32_fallocate"		}, /* 6283 */
+	{ 2,	TD,	printargs,		"n32_timerfd_create"	}, /* 6284 */
+	{ 2,	TD,	printargs,		"n32_timerfd_gettime"	}, /* 6285 */
+	{ 4,	TD,	printargs,		"n32_timerfd_settime"	}, /* 6286 */
+	{ 4,	TD|TS,	printargs,		"n32_signalfd4"		}, /* 6287 */
+	{ 2,	TD,	printargs,		"n32_eventfd2"		}, /* 6288 */
+	{ 1,	TD,	printargs,		"n32_epoll_create1"	}, /* 6289 */
+	{ 3,	TD,	printargs,		"n32_dup3"		}, /* 6290 */
+	{ 2,	TD,	printargs,		"n32_pipe2"		}, /* 6291 */
+	{ 1,	TD,	printargs,		"n32_inotify_init1"	}, /* 6292 */
+	{ 5,	TD,	printargs,		"n32_preadv"		}, /* 6293 */
+	{ 5,	TD,	printargs,		"n32_pwritev"		}, /* 6294 */
+	{ 4,	TP|TS,	printargs,		"n32_rt_tgsigqueueinfo" }, /* 6295 */
+	{ 5,	TD,	printargs,		"n32_perf_event_open"	}, /* 6296 */
+	{ 4,	TN,	printargs,		"n32_accept4"		}, /* 6297 */
+	{ 5,	TN,	printargs,		"n32_recvmmsg"		}, /* 6298 */
+	{ 3,	TD,	printargs,		"n32_getdents64"	}, /* 6299 */
+	{ 2,	0,	printargs,		"n32_fanotify_init"	}, /* 6300 */
+	{ 5,	0,	printargs,		"n32_fanotify_mark"	}, /* 6301 */
+	{ 4,	0,	printargs,		"n32_prlimit64"		}, /* 6302 */
+	{ 5,	TD|TF,	printargs,		"n32_name_to_handle_at"	}, /* 6303 */
+	{ 3,	TD,	printargs,		"n32_open_by_handle_at"	}, /* 6304 */
+	{ 2,	0,	printargs,		"n32_clock_adjtime"	}, /* 6305 */
+	{ 1,	TD,	printargs,		"n32_syncfs"		}, /* 6306 */
+	{ 4,	TN,	printargs,		"n32_sendmmsg"		}, /* 6307 */
+	{ 2,	TD,	printargs,		"n32_setns"		}, /* 6308 */
+	{ 6,	0,	printargs,		"n32_process_vm_readv"	}, /* 6309 */
+	{ 6,	0,	printargs,		"n32_process_vm_writev"	}, /* 6310 */
+	{ 5,	0,	printargs,		"n32_kcmp"		}, /* 6311 */
+	{ 3,	TD,	printargs,		"n32_finit_module"	}, /* 6312 */
+#endif
diff --git a/linux/mips/syscallent-n64.h b/linux/mips/syscallent-n64.h
new file mode 100644
index 0000000..dd5da40
--- /dev/null
+++ b/linux/mips/syscallent-n64.h
@@ -0,0 +1,621 @@
+#if defined LINUX_MIPSN64
+	/* For an N64 strace decode the N64 64-bit syscalls.  */
+	{ 3,	TD,	sys_read,		"read"		}, /* 5000 */ /* start of Linux N64 */
+	{ 3,	TD,	sys_write,		"write"		}, /* 5001 */
+	{ 3,	TD|TF,	sys_open,		"open"		}, /* 5002 */
+	{ 1,	TD,	sys_close,		"close"		}, /* 5003 */
+	{ 2,	TF,	sys_stat,		"stat"		}, /* 5004 */
+	{ 2,	TD,	sys_fstat,		"fstat"		}, /* 5005 */
+	{ 2,	TF,	sys_lstat,		"lstat"		}, /* 5006 */
+	{ 3,	TD,	sys_poll,		"poll"		}, /* 5007 */
+	{ 3,	TD,	sys_lseek,		"lseek"		}, /* 5008 */
+	{ 6,	TD|TM,	sys_mmap,		"mmap"		}, /* 5009 */
+	{ 3,	TM,	sys_mprotect,		"mprotect"	}, /* 5010 */
+	{ 2,	TM,	sys_munmap,		"munmap"	}, /* 5011 */
+	{ 1,	TM,	sys_brk,		"brk"		}, /* 5012 */
+	{ 4,	TS,	sys_rt_sigaction,	"rt_sigaction"	}, /* 5013 */
+	{ 4,	TS,	sys_rt_sigprocmask,	"rt_sigprocmask"}, /* 5014 */
+	{ 3,	TD,	sys_ioctl,		"ioctl"		}, /* 5015 */
+	{ 4,	TD,	sys_pread,		"pread64"	}, /* 5016 */
+	{ 4,	TD,	sys_pwrite,		"pwrite64"	}, /* 5017 */
+	{ 3,	TD,	sys_readv,		"readv"		}, /* 5018 */
+	{ 3,	TD,	sys_writev,		"writev"	}, /* 5019 */
+	{ 2,	TF,	sys_access,		"access"	}, /* 5020 */
+	{ 1,	TD,	sys_pipe,		"pipe"		}, /* 5021 */
+	{ 5,	TD,	sys_select,		"_newselect"	}, /* 5022 */
+	{ 0,	0,	sys_sched_yield,	"sched_yield"	}, /* 5023 */
+	{ 5,	TM,	sys_mremap,		"mremap"	}, /* 5024 */
+	{ 3,	TM,	sys_msync,		"msync"		}, /* 5025 */
+	{ 3,	TM,	sys_mincore,		"mincore"	}, /* 5026 */
+	{ 3,	TM,	sys_madvise,		"madvise"	}, /* 5027 */
+	{ 3,	TI,	sys_shmget,		"shmget"	}, /* 5028 */
+	{ 3,	TI,	sys_shmat,		"shmat"		}, /* 5029 */
+	{ 3,	TI,	sys_shmctl,		"shmctl"	}, /* 5030 */
+	{ 1,	TD,	sys_dup,		"dup"		}, /* 5031 */
+	{ 2,	TD,	sys_dup2,		"dup2"		}, /* 5032 */
+	{ 0,	TS,	sys_pause,		"pause"		}, /* 5033 */
+	{ 2,	0,	sys_nanosleep,		"nanosleep"	}, /* 5034 */
+	{ 2,	0,	sys_getitimer,		"getitimer"	}, /* 5035 */
+	{ 3,	0,	sys_setitimer,		"setitimer"	}, /* 5036 */
+	{ 1,	0,	sys_alarm,		"alarm"		}, /* 5037 */
+	{ 0,	0,	sys_getpid,		"getpid"	}, /* 5038 */
+	{ 4,	TD|TN,	sys_sendfile,		"sendfile"	}, /* 5039 */
+	{ 3,	TN,	sys_socket,		"socket"	}, /* 5040 */
+	{ 3,	TN,	sys_connect,		"connect"	}, /* 5041 */
+	{ 3,	TN,	sys_accept,		"accept"	}, /* 5042 */
+	{ 6,	TN,	sys_sendto,		"sendto"	}, /* 5043 */
+	{ 6,	TN,	sys_recvfrom,		"recvfrom"	}, /* 5044 */
+	{ 3,	TN,	sys_sendmsg,		"sendmsg"	}, /* 5045 */
+	{ 3,	TN,	sys_recvmsg,		"recvmsg"	}, /* 5046 */
+	{ 2,	TN,	sys_shutdown,		"shutdown"	}, /* 5047 */
+	{ 3,	TN,	sys_bind,		"bind"		}, /* 5048 */
+	{ 2,	TN,	sys_listen,		"listen"	}, /* 5049 */
+	{ 3,	TN,	sys_getsockname,	"getsockname"	}, /* 5050 */
+	{ 3,	TN,	sys_getpeername,	"getpeername"	}, /* 5051 */
+	{ 4,	TN,	sys_socketpair,		"socketpair"	}, /* 5052 */
+	{ 5,	TN,	sys_setsockopt,		"setsockopt"	}, /* 5053 */
+	{ 5,	TN,	sys_getsockopt,		"getsockopt"	}, /* 5054 */
+	{ 2,	TP,	sys_clone,		"clone"		}, /* 5055 */
+	{ 0,	TP,	sys_fork,		"fork"		}, /* 5056 */
+	{ 3,	TF|TP,	sys_execve,		"execve"	}, /* 5057 */
+	{ 1,	TP,	sys_exit,		"exit"		}, /* 5058 */
+	{ 4,	TP,	sys_wait4,		"wait4"		}, /* 5059 */
+	{ 2,	TS,	sys_kill,		"kill"		}, /* 5060 */
+	{ 1,	0,	sys_uname,		"uname"		}, /* 5061 */
+	{ 3,	TI,	sys_semget,		"semget"	}, /* 5062 */
+	{ 3,	TI,	printargs,		"semop"		}, /* 5063 */
+	{ 4,	TI,	sys_semctl,		"semctl"	}, /* 5064 */
+	{ 1,	TI,	sys_shmdt,		"shmdt"		}, /* 5065 */
+	{ 2,	TI,	sys_msgget,		"msgget"	}, /* 5066 */
+	{ 4,	TI,	sys_msgsnd,		"msgsnd"	}, /* 5067 */
+	{ 5,	TI,	sys_msgrcv,		"msgrcv"	}, /* 5068 */
+	{ 3,	TI,	sys_msgctl,		"msgctl"	}, /* 5069 */
+	{ 3,	TD,	sys_fcntl,		"fcntl"		}, /* 5070 */
+	{ 2,	TD,	sys_flock,		"flock"		}, /* 5071 */
+	{ 1,	TD,	sys_fsync,		"fsync"		}, /* 5072 */
+	{ 1,	TD,	sys_fdatasync,		"fdatasync"	}, /* 5073 */
+	{ 2,	TF,	sys_truncate,		"truncate"	}, /* 5074 */
+	{ 2,	TD,	sys_ftruncate,		"ftruncate"	}, /* 5075 */
+	{ 3,	TD,	sys_getdents,		"getdents"	}, /* 5076 */
+	{ 2,	TF,	sys_getcwd,		"getcwd"	}, /* 5077 */
+	{ 1,	TF,	sys_chdir,		"chdir"		}, /* 5078 */
+	{ 1,	TD,	sys_fchdir,		"fchdir"	}, /* 5079 */
+	{ 2,	TF,	sys_rename,		"rename"	}, /* 5080 */
+	{ 2,	TF,	sys_mkdir,		"mkdir"		}, /* 5081 */
+	{ 1,	TF,	sys_rmdir,		"rmdir"		}, /* 5082 */
+	{ 2,	TD|TF,	sys_creat,		"creat"		}, /* 5083 */
+	{ 2,	TF,	sys_link,		"link"		}, /* 5084 */
+	{ 1,	TF,	sys_unlink,		"unlink"	}, /* 5085 */
+	{ 2,	TF,	sys_symlink,		"symlink"	}, /* 5086 */
+	{ 3,	TF,	sys_readlink,		"readlink"	}, /* 5087 */
+	{ 2,	TF,	sys_chmod,		"chmod"		}, /* 5088 */
+	{ 2,	TD,	sys_fchmod,		"fchmod"	}, /* 5089 */
+	{ 3,	TF,	sys_chown,		"chown"		}, /* 5090 */
+	{ 3,	TD,	sys_fchown,		"fchown"	}, /* 5091 */
+	{ 3,	TF,	sys_chown,		"lchown"	}, /* 5092 */
+	{ 1,	0,	sys_umask,		"umask"		}, /* 5093 */
+	{ 2,	0,	sys_gettimeofday,	"gettimeofday"	}, /* 5094 */
+	{ 2,	0,	sys_getrlimit,		"getrlimit"	}, /* 5095 */
+	{ 2,	0,	sys_getrusage,		"getrusage"	}, /* 5096 */
+	{ 1,	0,	sys_sysinfo,		"sysinfo"	}, /* 5097 */
+	{ 1,	0,	sys_times,		"times"		}, /* 5098 */
+	{ 4,	0,	sys_ptrace,		"ptrace"	}, /* 5099 */
+	{ 0,	NF,	sys_getuid,		"getuid"	}, /* 5100 */
+	{ 3,	0,	sys_syslog,		"syslog"	}, /* 5101 */
+	{ 0,	NF,	sys_getgid,		"getgid"	}, /* 5102 */
+	{ 1,	0,	sys_setuid,		"setuid"	}, /* 5103 */
+	{ 1,	0,	sys_setgid,		"setgid"	}, /* 5104 */
+	{ 0,	NF,	sys_geteuid,		"geteuid"	}, /* 5105 */
+	{ 0,	NF,	sys_getegid,		"getegid"	}, /* 5106 */
+	{ 2,	0,	sys_setpgid,		"setpgid"	}, /* 5107 */
+	{ 0,	0,	sys_getppid,		"getppid"	}, /* 5108 */
+	{ 0,	0,	sys_getpgrp,		"getpgrp"	}, /* 5109 */
+	{ 0,	0,	sys_setsid,		"setsid"	}, /* 5110 */
+	{ 2,	0,	sys_setreuid,		"setreuid"	}, /* 5111 */
+	{ 2,	0,	sys_setregid,		"setregid"	}, /* 5112 */
+	{ 2,	0,	sys_getgroups,		"getgroups"	}, /* 5113 */
+	{ 2,	0,	sys_setgroups,		"setgroups"	}, /* 5114 */
+	{ 3,	0,	sys_setresuid,		"setresuid"	}, /* 5115 */
+	{ 3,	0,	sys_getresuid,		"getresuid"	}, /* 5116 */
+	{ 3,	0,	sys_setresgid,		"setresgid"	}, /* 5117 */
+	{ 3,	0,	sys_getresgid,		"getresgid"	}, /* 5118 */
+	{ 0,	0,	sys_getpgid,		"getpgid"	}, /* 5119 */
+	{ 1,	NF,	sys_setfsuid,		"setfsuid"	}, /* 5120 */
+	{ 1,	NF,	sys_setfsgid,		"setfsgid"	}, /* 5121 */
+	{ 1,	0,	sys_getsid,		"getsid"	}, /* 5122 */
+	{ 2,	0,	sys_capget,		"capget"	}, /* 5123 */
+	{ 2,	0,	sys_capset,		"capset"	}, /* 5124 */
+	{ 2,	TS,	sys_rt_sigpending,	"rt_sigpending"	}, /* 5125 */
+	{ 4,	TS,	sys_rt_sigtimedwait,	"rt_sigtimedwait"},/* 5126 */
+	{ 3,	TS,	sys_rt_sigqueueinfo,	"rt_sigqueueinfo"},/* 5127 */
+	{ 2,	TS,	sys_rt_sigsuspend,	"rt_sigsuspend"	}, /* 5128 */
+	{ 2,	TS,	sys_sigaltstack,	"sigaltstack"	}, /* 5129 */
+	{ 2,	TF,	sys_utime,		"utime"		}, /* 5130 */
+	{ 3,	TF,	sys_mknod,		"mknod"		}, /* 5131 */
+	{ 1,	0,	sys_personality,	"personality"	}, /* 5132 */
+	{ 2,	0,	sys_ustat,		"ustat"		}, /* 5133 */
+	{ 3,	TF,	sys_statfs,		"statfs"	}, /* 5134 */
+	{ 3,	TD,	sys_fstatfs,		"fstatfs"	}, /* 5135 */
+	{ 5,	0,	sys_sysfs,		"sysfs"		}, /* 5136 */
+	{ 2,	0,	sys_getpriority,	"getpriority"	}, /* 5137 */
+	{ 3,	0,	sys_setpriority,	"setpriority"	}, /* 5138 */
+	{ 2,	0,	sys_sched_setparam,	"sched_setparam"}, /* 5139 */
+	{ 2,	0,	sys_sched_getparam,	"sched_getparam"}, /* 5140 */
+	{ 3,	0,	sys_sched_setscheduler,	"sched_setscheduler"}, /* 5141 */
+	{ 1,	0,	sys_sched_getscheduler,	"sched_getscheduler"}, /* 5142 */
+	{ 1,	0,	sys_sched_get_priority_max,"sched_get_priority_max"}, /* 5143 */
+	{ 1,	0,	sys_sched_get_priority_min,"sched_get_priority_min"}, /* 5144 */
+	{ 2,	0,	sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 5145 */
+	{ 2,	TM,	sys_mlock,		"mlock"		}, /* 5146 */
+	{ 2,	TM,	sys_munlock,		"munlock"	}, /* 5147 */
+	{ 1,	TM,	sys_mlockall,		"mlockall"	}, /* 5148 */
+	{ 0,	TM,	sys_munlockall,		"munlockall"	}, /* 5149 */
+	{ 0,	0,	sys_vhangup,		"vhangup"	}, /* 5150 */
+	{ 2,	TF,	sys_pivotroot,		"pivot_root"	}, /* 5151 */
+	{ 1,	0,	sys_sysctl,		"_sysctl"	}, /* 5152 */
+	{ 5,	0,	sys_prctl,		"prctl"		}, /* 5153 */
+	{ 1,	0,	sys_adjtimex,		"adjtimex"	}, /* 5154 */
+	{ 2,	0,	sys_setrlimit,		"setrlimit"	}, /* 5155 */
+	{ 1,	TF,	sys_chroot,		"chroot"	}, /* 5156 */
+	{ 0,	0,	sys_sync,		"sync"		}, /* 5157 */
+	{ 1,	TF,	sys_acct,		"acct"		}, /* 5158 */
+	{ 2,	0,	sys_settimeofday,	"settimeofday"	}, /* 5159 */
+	{ 5,	TF,	sys_mount,		"mount"		}, /* 5160 */
+	{ 2,	TF,	sys_umount2,		"umount2"	}, /* 5161 */
+	{ 2,	TF,	sys_swapon,		"swapon"	}, /* 5162 */
+	{ 1,	TF,	sys_swapoff,		"swapoff"	}, /* 5163 */
+	{ 4,	0,	sys_reboot,		"reboot"	}, /* 5164 */
+	{ 2,	0,	sys_sethostname,	"sethostname"	}, /* 5165 */
+	{ 2,	0,	sys_setdomainname,	"setdomainname"	}, /* 5166 */
+	{ 2,	0,	sys_create_module,	"create_module"	}, /* 5167 */
+	{ 4,	0,	sys_init_module,	"init_module"	}, /* 5168 */
+	{ 1,	0,	sys_delete_module,	"delete_module"	}, /* 5169 */
+	{ 1,	0,	sys_get_kernel_syms,	"get_kernel_syms"}, /* 5170 */
+	{ 5,	0,	sys_query_module,	"query_module"	}, /* 5171 */
+	{ 4,	TF,	sys_quotactl,		"quotactl"	}, /* 5172 */
+	{ 3,	0,	sys_nfsservctl,		"nfsservctl"	}, /* 5173 */
+	{ 5,	TN,	printargs,		"getpmsg"	}, /* 5174 */
+	{ 5,	TN,	printargs,		"putpmsg"	}, /* 5175 */
+	{ 0,	0,	sys_afs_syscall,	"afs_syscall"	}, /* 5176 */
+	{ 0,	0,	printargs,		"reserved177"	}, /* 5177 */
+	{ 0,	0,	sys_gettid,		"gettid"	}, /* 5178 */
+	{ 3,	TD,	sys_readahead,		"readahead"	}, /* 5179 */
+	{ 5,	TF,	sys_setxattr,		"setxattr"	}, /* 5180 */
+	{ 5,	TF,	sys_setxattr,		"lsetxattr"	}, /* 5181 */
+	{ 5,	TD,	sys_fsetxattr,		"fsetxattr"	}, /* 5182 */
+	{ 4,	TF,	sys_getxattr,		"getxattr"	}, /* 5183 */
+	{ 4,	TF,	sys_getxattr,		"lgetxattr"	}, /* 5184 */
+	{ 4,	TD,	sys_fgetxattr,		"fgetxattr"	}, /* 5185 */
+	{ 3,	TF,	sys_listxattr,		"listxattr"	}, /* 5186 */
+	{ 3,	TF,	sys_listxattr,		"llistxattr"	}, /* 5187 */
+	{ 3,	TD,	sys_flistxattr,		"flistxattr"	}, /* 5188 */
+	{ 2,	TF,	sys_removexattr,	"removexattr"	}, /* 5189 */
+	{ 2,	TF,	sys_removexattr,	"lremovexattr"	}, /* 5190 */
+	{ 2,	TD,	sys_fremovexattr,	"fremovexattr"	}, /* 5191 */
+	{ 2,	TS,	sys_kill,		"tkill"		}, /* 5192 */
+	{ 1,	0,	sys_time,		"time"		}, /* 5193 */
+	{ 6,	0,	sys_futex,		"futex"		}, /* 5194 */
+	{ 3,	0,	sys_sched_setaffinity,	"sched_setaffinity"}, /* 5195 */
+	{ 3,	0,	sys_sched_getaffinity,	"sched_getaffinity"}, /* 5196 */
+	{ 3,	0,	printargs,		"cacheflush"	}, /* 5197 */
+	{ 3,	0,	printargs,		"cachectl"	}, /* 5198 */
+	{ 4,	0,	sys_sysmips,		"sysmips"	}, /* 5199 */
+	{ 2,	0,	sys_io_setup,		"io_setup"	}, /* 5200 */
+	{ 1,	0,	sys_io_destroy,		"io_destroy"	}, /* 5201 */
+	{ 5,	0,	sys_io_getevents,	"io_getevents"	}, /* 5202 */
+	{ 3,	0,	sys_io_submit,		"io_submit"	}, /* 5203 */
+	{ 3,	0,	sys_io_cancel,		"io_cancel"	}, /* 5204 */
+	{ 1,	TP,	sys_exit,		"exit_group"	}, /* 5205 */
+	{ 3,	0,	sys_lookup_dcookie,	"lookup_dcookie" }, /* 5206 */
+	{ 1,	TD,	sys_epoll_create,	"epoll_create"	}, /* 5207 */
+	{ 4,	TD,	sys_epoll_ctl,		"epoll_ctl"	}, /* 5208 */
+	{ 4,	TD,	sys_epoll_wait,		"epoll_wait"	}, /* 5209 */
+	{ 5,	TM,	sys_remap_file_pages,	"remap_file_pages" }, /* 5210 */
+	{ 0,	TS,	sys_rt_sigreturn,	"rt_sigreturn"	}, /* 5211 */
+	{ 1,	0,	sys_set_tid_address,	"set_tid_address" }, /* 5212 */
+	{ 0,	0,	sys_restart_syscall,	"restart_syscall" }, /* 5213 */
+	{ 5,	TI,	sys_semtimedop,		"semtimedop"	}, /* 5214 */
+	{ 4,	TD,	sys_fadvise64_64,	"fadvise64_64"	}, /* 5215 */
+	{ 3,	0,	sys_timer_create,	"timer_create"	}, /* 5216 */
+	{ 4,	0,	sys_timer_settime,	"timer_settime"	}, /* 5217 */
+	{ 2,	0,	sys_timer_gettime,	"timer_gettime"	}, /* 5218 */
+	{ 1,	0,	sys_timer_getoverrun,	"timer_getoverrun"}, /* 5219 */
+	{ 1,	0,	sys_timer_delete,	"timer_delete"	}, /* 5220 */
+	{ 2,	0,	sys_clock_settime,	"clock_settime"	}, /* 5221 */
+	{ 2,	0,	sys_clock_gettime,	"clock_gettime"	}, /* 5222 */
+	{ 2,	0,	sys_clock_getres,	"clock_getres"	}, /* 5223 */
+	{ 4,	0,	sys_clock_nanosleep,	"clock_nanosleep"}, /* 5224 */
+	{ 3,	TS,	sys_tgkill,		"tgkill"	}, /* 5225 */
+	{ 2,	TF,	sys_utimes,		"utimes"	}, /* 5226 */
+	{ 6,	TM,	sys_mbind,		"mbind"		}, /* 5227 */
+	{ 5,	TM,	sys_get_mempolicy,	"get_mempolicy"	}, /* 5228 */
+	{ 3,	TM,	sys_set_mempolicy,	"set_mempolicy"	}, /* 5229 */
+	{ 4,	0,	sys_mq_open,		"mq_open"	}, /* 5230 */
+	{ 1,	0,	sys_mq_unlink,		"mq_unlink"	}, /* 5231 */
+	{ 5,	0,	sys_mq_timedsend,	"mq_timedsend"	}, /* 5232 */
+	{ 5,	0,	sys_mq_timedreceive,	"mq_timedreceive" }, /* 5233 */
+	{ 2,	0,	sys_mq_notify,		"mq_notify"	}, /* 5234 */
+	{ 3,	0,	sys_mq_getsetattr,	"mq_getsetattr"	}, /* 5235 */
+	{ 5,	0,	sys_vserver,		"vserver"	}, /* 5236 */
+	{ 5,	TP,	sys_waitid,		"waitid"	}, /* 5237 */
+	[5238] = { },
+	{ 5,	0,	sys_add_key,		"add_key"	}, /* 5239 */
+	{ 4,	0,	sys_request_key,	"request_key"	}, /* 5230 */
+	{ 5,	0,	sys_keyctl,		"keyctl"	}, /* 5241 */
+	{ 1,	0,	sys_set_thread_area,	"set_thread_area" }, /* 5242 */
+	{ 0,	TD,	sys_inotify_init,	"inotify_init"	}, /* 5243 */
+	{ 3,	TD,	sys_inotify_add_watch,	"inotify_add_watch" }, /* 5244 */
+	{ 2,	TD,	sys_inotify_rm_watch,	"inotify_rm_watch" }, /* 5245 */
+	{ 4,	TM,	sys_migrate_pages,	"migrate_pages"	}, /* 5246 */
+	{ 4,	TD|TF,	sys_openat,		"openat"	}, /* 5247 */
+	{ 3,	TD|TF,	sys_mkdirat,		"mkdirat"	}, /* 5248 */
+	{ 4,	TD|TF,	sys_mknodat,		"mknodat"	}, /* 5249 */
+	{ 5,	TD|TF,	sys_fchownat,		"fchownat"	}, /* 5250 */
+	{ 3,	TD|TF,	sys_futimesat,		"futimesat"	}, /* 5251 */
+	{ 4,	TD|TF,	sys_newfstatat,		"newfstatat"	}, /* 5252 */
+	{ 3,	TD|TF,	sys_unlinkat,		"unlinkat"	}, /* 5253 */
+	{ 4,	TD|TF,	sys_renameat,		"renameat"	}, /* 5254 */
+	{ 5,	TD|TF,	sys_linkat,		"linkat"	}, /* 5255 */
+	{ 3,	TD|TF,	sys_symlinkat,		"symlinkat"	}, /* 5256 */
+	{ 4,	TD|TF,	sys_readlinkat,		"readlinkat"	}, /* 5257 */
+	{ 3,	TD|TF,	sys_fchmodat,		"fchmodat"	}, /* 5258 */
+	{ 3,	TD|TF,	sys_faccessat,		"faccessat"	}, /* 5259 */
+	{ 6,	TD,	sys_pselect6,		"pselect6"	}, /* 5260 */
+	{ 5,	TD,	sys_ppoll,		"ppoll"		}, /* 5261 */
+	{ 1,	TP,	sys_unshare,		"unshare"	}, /* 5262 */
+	{ 6,	TD,	sys_splice,		"splice"	}, /* 5263 */
+	{ 4,	TD,	sys_sync_file_range,	"sync_file_range" }, /* 5264 */
+	{ 4,	TD,	sys_tee,		"tee"		}, /* 5265 */
+	{ 4,	TD,	sys_vmsplice,		"vmsplice"	}, /* 5266 */
+	{ 6,	TM,	printargs,		"move_pages"	}, /* 5267 */
+	{ 2,	0,	sys_set_robust_list,	"set_robust_list" }, /* 5268 */
+	{ 3,	0,	sys_get_robust_list,	"get_robust_list" }, /* 5269 */
+	{ 4,	0,	sys_kexec_load,		"kexec_load"	}, /* 5270 */
+	{ 3,	0,	sys_getcpu,		"getcpu"	}, /* 5271 */
+	{ 6,	TD,	sys_epoll_pwait,	"epoll_pwait"	}, /* 5272 */
+	{ 3,	0,	sys_ioprio_set,		"ioprio_set"	}, /* 5273 */
+	{ 2,	0,	sys_ioprio_get,		"ioprio_get"	}, /* 5274 */
+	{ 4,	TD|TF,	sys_utimensat,		"utimensat"	}, /* 5275 */
+	{ 3,	TD|TS,	sys_signalfd,		"signalfd"	}, /* 5276 */
+	{ 4,	TD,	sys_timerfd,		"timerfd"	}, /* 5277 */
+	{ 1,	TD,	sys_eventfd,		"eventfd"	}, /* 5278 */
+	{ 4,	TD,	sys_fallocate,		"fallocate"	}, /* 5279 */
+	{ 2,	TD,	sys_timerfd_create,	"timerfd_create" }, /* 5280 */
+	{ 2,	TD,	sys_timerfd_gettime,	"timerfd_gettime" }, /* 5281 */
+	{ 4,	TD,	sys_timerfd_settime,	"timerfd_settime" }, /* 5282 */
+	{ 4,	TD|TS,	sys_signalfd4,		"signalfd4"	}, /* 5283 */
+	{ 2,	TD,	sys_eventfd2,		"eventfd2"	}, /* 5284 */
+	{ 1,	TD,	sys_epoll_create1,	"epoll_create1"	}, /* 5285 */
+	{ 3,	TD,	sys_dup3,		"dup3"		}, /* 5286 */
+	{ 2,	TD,	sys_pipe2,		"pipe2"		}, /* 5287 */
+	{ 1,	TD,	sys_inotify_init1,	"inotify_init1"	}, /* 5288 */
+	{ 4,	TD,	sys_preadv,		"preadv"	}, /* 5289 */
+	{ 4,	TD,	sys_pwritev,		"pwritev"	}, /* 5290 */
+	{ 4,	TP|TS,	sys_rt_tgsigqueueinfo,	"rt_tgsigqueueinfo" }, /* 5291 */
+	{ 5,	TD,	sys_perf_event_open,	"perf_event_open" }, /* 5292 */
+	{ 4,	TN,	sys_accept4,		"accept4"	}, /* 5293 */
+	{ 5,	TN,	sys_recvmmsg,		"recvmmsg"	}, /* 5294 */
+	{ 2,	TD,	sys_fanotify_init,	"fanotify_init"	}, /* 5295 */
+	{ 5,	TD|TF,	sys_fanotify_mark,	"fanotify_mark"	}, /* 5296 */
+	{ 4,	0,	sys_prlimit64,		"prlimit64"	}, /* 5297 */
+	{ 5,	TD|TF,	sys_name_to_handle_at,	"name_to_handle_at"}, /* 5298 */
+	{ 3,	TD,	sys_open_by_handle_at,	"open_by_handle_at"}, /* 5299 */
+	{ 2,	0,	sys_clock_adjtime,	"clock_adjtime"	}, /* 5300 */
+	{ 1,	TD,	sys_syncfs,		"syncfs"	}, /* 5301 */
+	{ 4,	TN,	sys_sendmmsg,		"sendmmsg"	}, /* 5302 */
+	{ 2,	TD,	sys_setns,		"setns"		}, /* 5303 */
+	{ 6,	0,	sys_process_vm_readv,	"process_vm_readv"	}, /* 5304 */
+	{ 6,	0,	sys_process_vm_writev,	"process_vm_writev"	}, /* 5305 */
+	{ 5,	0,	sys_kcmp,		"kcmp"			}, /* 5306 */
+	{ 3,	TD,	sys_finit_module,	"finit_module"		}, /* 5307 */
+#else
+	{ 0,	0,	printargs,		"n64_read"		}, /* 5000 */
+	{ 0,	0,	printargs,		"n64_write"		}, /* 5001 */
+	{ 0,	0,	printargs,		"n64_open"		}, /* 5002 */
+	{ 0,	0,	printargs,		"n64_close"		}, /* 5003 */
+	{ 0,	0,	printargs,		"n64_stat"		}, /* 5004 */
+	{ 0,	0,	printargs,		"n64_fstat"		}, /* 5005 */
+	{ 0,	0,	printargs,		"n64_lstat"		}, /* 5006 */
+	{ 0,	0,	printargs,		"n64_poll"		}, /* 5007 */
+	{ 0,	0,	printargs,		"n64_lseek"		}, /* 5008 */
+	{ 0,	TD|TM,	printargs,		"n64_mmap"		}, /* 5009 */
+	{ 0,	TM,	printargs,		"n64_mprotect"		}, /* 5010 */
+	{ 0,	TM,	printargs,		"n64_munmap"		}, /* 5011 */
+	{ 0,	TM,	printargs,		"n64_brk"		}, /* 5012 */
+	{ 0,	0,	printargs,		"n64_rt_sigaction"	}, /* 5013 */
+	{ 0,	0,	printargs,		"n64_rt_sigprocmask"	}, /* 5014 */
+	{ 0,	0,	printargs,		"n64_ioctl"		}, /* 5015 */
+	{ 0,	0,	printargs,		"n64_pread"		}, /* 5016 */
+	{ 0,	0,	printargs,		"n64_pwrite"		}, /* 5017 */
+	{ 0,	0,	printargs,		"n64_readv"		}, /* 5018 */
+	{ 0,	0,	printargs,		"n64_writev"		}, /* 5019 */
+	{ 0,	0,	printargs,		"n64_access"		}, /* 5020 */
+	{ 0,	0,	printargs,		"n64_pipe"		}, /* 5021 */
+	{ 0,	0,	printargs,		"n64__newselect"	}, /* 5022 */
+	{ 0,	0,	printargs,		"n64_sched_yield"	}, /* 5023 */
+	{ 0,	TM,	printargs,		"n64_mremap"		}, /* 5024 */
+	{ 0,	TM,	printargs,		"n64_msync"		}, /* 5025 */
+	{ 0,	TM,	printargs,		"n64_mincore"		}, /* 5026 */
+	{ 0,	TM,	printargs,		"n64_madvise"		}, /* 5027 */
+	{ 0,	0,	printargs,		"n64_shmget"		}, /* 5028 */
+	{ 0,	0,	printargs,		"n64_shmat"		}, /* 5029 */
+	{ 0,	0,	printargs,		"n64_shmctl"		}, /* 5030 */
+	{ 0,	0,	printargs,		"n64_dup"		}, /* 5031 */
+	{ 0,	0,	printargs,		"n64_dup2"		}, /* 5032 */
+	{ 0,	0,	printargs,		"n64_pause"		}, /* 5033 */
+	{ 0,	0,	printargs,		"n64_nanosleep"		}, /* 5034 */
+	{ 0,	0,	printargs,		"n64_getitimer"		}, /* 5035 */
+	{ 0,	0,	printargs,		"n64_setitimer"		}, /* 5036 */
+	{ 0,	0,	printargs,		"n64_alarm"		}, /* 5037 */
+	{ 0,	0,	printargs,		"n64_getpid"		}, /* 5038 */
+	{ 0,	0,	printargs,		"n64_sendfile"		}, /* 5039 */
+	{ 0,	0,	printargs,		"n64_socketcall"	}, /* 5040 */
+	{ 0,	0,	printargs,		"n64_connect"		}, /* 5041 */
+	{ 0,	0,	printargs,		"n64_accept"		}, /* 5042 */
+	{ 0,	0,	printargs,		"n64_sendto"		}, /* 5043 */
+	{ 0,	0,	printargs,		"n64_recvfrom"		}, /* 5044 */
+	{ 0,	0,	printargs,		"n64_sendmsg"		}, /* 5045 */
+	{ 0,	0,	printargs,		"n64_recvmsg"		}, /* 5046 */
+	{ 0,	0,	printargs,		"n64_shutdown"		}, /* 5047 */
+	{ 0,	0,	printargs,		"n64_bind"		}, /* 5048 */
+	{ 0,	0,	printargs,		"n64_listen"		}, /* 5049 */
+	{ 0,	0,	printargs,		"n64_getsockname"	}, /* 5050 */
+	{ 0,	0,	printargs,		"n64_getpeername"	}, /* 5051 */
+	{ 0,	0,	printargs,		"n64_socketpair"	}, /* 5052 */
+	{ 0,	0,	printargs,		"n64_setsockopt"	}, /* 5053 */
+	{ 0,	0,	printargs,		"n64_getsockopt"	}, /* 5054 */
+	{ 0,	0,	printargs,		"n64_clone"		}, /* 5055 */
+	{ 0,	0,	printargs,		"n64_fork"		}, /* 5056 */
+	{ 0,	0,	printargs,		"n64_execve"		}, /* 5057 */
+	{ 0,	0,	printargs,		"n64_exit"		}, /* 5058 */
+	{ 0,	0,	printargs,		"n64_wait4"		}, /* 5059 */
+	{ 0,	0,	printargs,		"n64_kill"		}, /* 5060 */
+	{ 0,	0,	printargs,		"n64_uname"		}, /* 5061 */
+	{ 0,	0,	printargs,		"n64_semget"		}, /* 5062 */
+	{ 0,	0,	printargs,		"n64_semop"		}, /* 5063 */
+	{ 0,	0,	printargs,		"n64_semctl"		}, /* 5064 */
+	{ 0,	0,	printargs,		"n64_shmdt"		}, /* 5065 */
+	{ 0,	0,	printargs,		"n64_msgget"		}, /* 5066 */
+	{ 0,	0,	printargs,		"n64_msgsnd"		}, /* 5067 */
+	{ 0,	0,	printargs,		"n64_msgrcv"		}, /* 5068 */
+	{ 0,	0,	printargs,		"n64_msgctl"		}, /* 5069 */
+	{ 0,	0,	printargs,		"n64_fcntl"		}, /* 5070 */
+	{ 0,	0,	printargs,		"n64_flock"		}, /* 5071 */
+	{ 0,	0,	printargs,		"n64_fsync"		}, /* 5072 */
+	{ 0,	0,	printargs,		"n64_fdatasync"		}, /* 5073 */
+	{ 0,	0,	printargs,		"n64_truncate"		}, /* 5074 */
+	{ 0,	0,	printargs,		"n64_ftruncate"		}, /* 5075 */
+	{ 0,	0,	printargs,		"n64_getdents"		}, /* 5076 */
+	{ 0,	0,	printargs,		"n64_getcwd"		}, /* 5077 */
+	{ 0,	0,	printargs,		"n64_chdir"		}, /* 5078 */
+	{ 0,	0,	printargs,		"n64_fchdir"		}, /* 5079 */
+	{ 0,	0,	printargs,		"n64_rename"		}, /* 5080 */
+	{ 0,	0,	printargs,		"n64_mkdir"		}, /* 5081 */
+	{ 0,	0,	printargs,		"n64_rmdir"		}, /* 5082 */
+	{ 0,	0,	printargs,		"n64_creat"		}, /* 5083 */
+	{ 0,	0,	printargs,		"n64_link"		}, /* 5084 */
+	{ 0,	0,	printargs,		"n64_unlink"		}, /* 5085 */
+	{ 0,	0,	printargs,		"n64_symlink"		}, /* 5086 */
+	{ 0,	0,	printargs,		"n64_readlink"		}, /* 5087 */
+	{ 0,	0,	printargs,		"n64_chmod"		}, /* 5088 */
+	{ 0,	0,	printargs,		"n64_fchmod"		}, /* 5089 */
+	{ 0,	0,	printargs,		"n64_chown"		}, /* 5090 */
+	{ 0,	0,	printargs,		"n64_fchown"		}, /* 5091 */
+	{ 0,	0,	printargs,		"n64_lchown"		}, /* 5092 */
+	{ 0,	0,	printargs,		"n64_umask"		}, /* 5093 */
+	{ 0,	0,	printargs,		"n64_gettimeofday"	}, /* 5094 */
+	{ 0,	0,	printargs,		"n64_getrlimit"		}, /* 5095 */
+	{ 0,	0,	printargs,		"n64_getrusage"		}, /* 5096 */
+	{ 0,	0,	printargs,		"n64_sysinfo"		}, /* 5097 */
+	{ 0,	0,	printargs,		"n64_times"		}, /* 5098 */
+	{ 0,	0,	printargs,		"n64_ptrace"		}, /* 5099 */
+	{ 0,	0,	printargs,		"n64_getuid"		}, /* 5100 */
+	{ 0,	0,	printargs,		"n64_syslog"		}, /* 5101 */
+	{ 0,	0,	printargs,		"n64_getgid"		}, /* 5102 */
+	{ 0,	0,	printargs,		"n64_setuid"		}, /* 5103 */
+	{ 0,	0,	printargs,		"n64_setgid"		}, /* 5104 */
+	{ 0,	0,	printargs,		"n64_geteuid"		}, /* 5105 */
+	{ 0,	0,	printargs,		"n64_getegid"		}, /* 5106 */
+	{ 0,	0,	printargs,		"n64_setpgid"		}, /* 5107 */
+	{ 0,	0,	printargs,		"n64_getppid"		}, /* 5108 */
+	{ 0,	0,	printargs,		"n64_getpgrp"		}, /* 5109 */
+	{ 0,	0,	printargs,		"n64_setsid"		}, /* 5110 */
+	{ 0,	0,	printargs,		"n64_setreuid"		}, /* 5111 */
+	{ 0,	0,	printargs,		"n64_setregid"		}, /* 5112 */
+	{ 0,	0,	printargs,		"n64_getgroups"		}, /* 5113 */
+	{ 0,	0,	printargs,		"n64_setgroups"		}, /* 5114 */
+	{ 0,	0,	printargs,		"n64_setresuid"		}, /* 5115 */
+	{ 0,	0,	printargs,		"n64_getresuid"		}, /* 5116 */
+	{ 0,	0,	printargs,		"n64_setresgid"		}, /* 5117 */
+	{ 0,	0,	printargs,		"n64_getresgid"		}, /* 5118 */
+	{ 0,	0,	printargs,		"n64_getpgid"		}, /* 5119 */
+	{ 0,	0,	printargs,		"n64_setfsuid"		}, /* 5120 */
+	{ 0,	0,	printargs,		"n64_setfsgid"		}, /* 5121 */
+	{ 0,	0,	printargs,		"n64_getsid"		}, /* 5122 */
+	{ 0,	0,	printargs,		"n64_capget"		}, /* 5123 */
+	{ 0,	0,	printargs,		"n64_capset"		}, /* 5124 */
+	{ 0,	0,	printargs,		"n64_rt_sigpending"	}, /* 5125 */
+	{ 0,	0,	printargs,		"n64_rt_sigtimedwait"	}, /* 5126 */
+	{ 0,	0,	printargs,		"n64_rt_sigqueueinfo"	}, /* 5127 */
+	{ 0,	0,	printargs,		"n64_rt_sigsuspend"	}, /* 5128 */
+	{ 0,	0,	printargs,		"n64_sigaltstack"	}, /* 5129 */
+	{ 0,	0,	printargs,		"n64_utime"		}, /* 5130 */
+	{ 0,	0,	printargs,		"n64_mknod"		}, /* 5131 */
+	{ 0,	0,	printargs,		"n64_personality"	}, /* 5132 */
+	{ 0,	0,	printargs,		"n64_ustat"		}, /* 5133 */
+	{ 0,	0,	printargs,		"n64_statfs"		}, /* 5134 */
+	{ 0,	0,	printargs,		"n64_fstatfs"		}, /* 5135 */
+	{ 0,	0,	printargs,		"n64_sysfs"		}, /* 5136 */
+	{ 0,	0,	printargs,		"n64_getpriority"	}, /* 5137 */
+	{ 0,	0,	printargs,		"n64_setpriority"	}, /* 5138 */
+	{ 0,	0,	printargs,		"n64_sched_setparam"	}, /* 5139 */
+	{ 0,	0,	printargs,		"n64_sched_getparam"	}, /* 5140 */
+	{ 0,	0,	printargs,		"n64_sched_setscheduler"}, /* 5141 */
+	{ 0,	0,	printargs,		"n64_sched_getscheduler"}, /* 5142 */
+	{ 0,	0,	printargs,		"n64_sched_get_priority_max"}, /* 5143 */
+	{ 0,	0,	printargs,		"n64_sched_get_priority_min"}, /* 5144 */
+	{ 0,	0,	printargs,		"n64_sched_rr_get_interval"}, /* 5145 */
+	{ 0,	TM,	printargs,		"n64_mlock"		}, /* 5146 */
+	{ 0,	TM,	printargs,		"n64_munlock"		}, /* 5147 */
+	{ 0,	TM,	printargs,		"n64_mlockall"		}, /* 5148 */
+	{ 0,	TM,	printargs,		"n64_munlockall"	}, /* 5149 */
+	{ 0,	0,	printargs,		"n64_vhangup"		}, /* 5150 */
+	{ 0,	0,	printargs,		"n64_pivot_root"	}, /* 5151 */
+	{ 0,	0,	printargs,		"n64__sysctl"		}, /* 5152 */
+	{ 0,	0,	printargs,		"n64_prctl"		}, /* 5153 */
+	{ 0,	0,	printargs,		"n64_adjtimex"		}, /* 5154 */
+	{ 0,	0,	printargs,		"n64_setrlimit"		}, /* 5155 */
+	{ 0,	0,	printargs,		"n64_chroot"		}, /* 5156 */
+	{ 0,	0,	printargs,		"n64_sync"		}, /* 5157 */
+	{ 0,	0,	printargs,		"n64_acct"		}, /* 5158 */
+	{ 0,	0,	printargs,		"n64_settimeofday"	}, /* 5159 */
+	{ 0,	0,	printargs,		"n64_mount"		}, /* 5160 */
+	{ 0,	0,	printargs,		"n64_umount"		}, /* 5161 */
+	{ 0,	0,	printargs,		"n64_swapon"		}, /* 5162 */
+	{ 0,	0,	printargs,		"n64_swapoff"		}, /* 5163 */
+	{ 0,	0,	printargs,		"n64_reboot"		}, /* 5164 */
+	{ 0,	0,	printargs,		"n64_sethostname"	}, /* 5165 */
+	{ 0,	0,	printargs,		"n64_setdomainname"	}, /* 5166 */
+	{ 0,	0,	printargs,		"n64_create_module"	}, /* 5167 */
+	{ 0,	0,	printargs,		"n64_init_module"	}, /* 5168 */
+	{ 0,	0,	printargs,		"n64_delete_module"	}, /* 5169 */
+	{ 0,	0,	printargs,		"n64_get_kernel_syms"	}, /* 5170 */
+	{ 0,	0,	printargs,		"n64_query_module"	}, /* 5171 */
+	{ 0,	TF,	printargs,		"n64_quotactl"		}, /* 5172 */
+	{ 0,	0,	printargs,		"n64_nfsservctl"	}, /* 5173 */
+	{ 0,	0,	printargs,		"n64_getpmsg"		}, /* 5174 */
+	{ 0,	0,	printargs,		"n64_putpmsg"		}, /* 5175 */
+	{ 0,	0,	printargs,		"n64_afs_syscall"	}, /* 5176 */
+	{ 0,	0,	printargs,		"n64_reserved177"	}, /* 5177 */
+	{ 0,	0,	printargs,		"n64_gettid"		}, /* 5178 */
+	{ 0,	0,	printargs,		"n64_readahead"		}, /* 5179 */
+	{ 0,	0,	printargs,		"n64_setxattr"		}, /* 5180 */
+	{ 0,	0,	printargs,		"n64_lsetxattr"		}, /* 5181 */
+	{ 0,	0,	printargs,		"n64_fsetxattr"		}, /* 5182 */
+	{ 0,	0,	printargs,		"n64_getxattr"		}, /* 5183 */
+	{ 0,	0,	printargs,		"n64_lgetxattr"		}, /* 5184 */
+	{ 0,	0,	printargs,		"n64_fgetxattr"		}, /* 5185 */
+	{ 0,	0,	printargs,		"n64_listxattr"		}, /* 5186 */
+	{ 0,	0,	printargs,		"n64_llistxattr"	}, /* 5187 */
+	{ 0,	0,	printargs,		"n64_flistxattr"	}, /* 5188 */
+	{ 0,	0,	printargs,		"n64_removexattr"	}, /* 5189 */
+	{ 0,	0,	printargs,		"n64_lremovexattr"	}, /* 5190 */
+	{ 0,	0,	printargs,		"n64_fremovexattr"	}, /* 5191 */
+	{ 0,	0,	printargs,		"n64_tkill"		}, /* 5192 */
+	{ 0,	0,	printargs,		"n64_time"		}, /* 5193 */
+	{ 0,	0,	printargs,		"n64_futex"		}, /* 5194 */
+	{ 0,	0,	printargs,		"n64_sched_setaffinity"	}, /* 5195 */
+	{ 0,	0,	printargs,		"n64_sched_getaffinity"	}, /* 5196 */
+	{ 0,	0,	printargs,		"n64_cacheflush"	}, /* 5197 */
+	{ 0,	0,	printargs,		"n64_cachectl"		}, /* 5198 */
+	{ 0,	0,	printargs,		"n64_sysmips"		}, /* 5199 */
+	{ 0,	0,	printargs,		"n64_io_setup"		}, /* 5200 */
+	{ 0,	0,	printargs,		"n64_io_destroy"	}, /* 5201 */
+	{ 0,	0,	printargs,		"n64_io_getevents"	}, /* 5202 */
+	{ 0,	0,	printargs,		"n64_io_submit"		}, /* 5203 */
+	{ 0,	0,	printargs,		"n64_io_cancel"		}, /* 5204 */
+	{ 1,	TP,	printargs,		"n64_exit_group"	}, /* 5205 */
+	{ 0,	0,	printargs,		"n64_lookup_dcookie"	}, /* 5206 */
+	{ 0,	0,	printargs,		"n64_epoll_create"	}, /* 5207 */
+	{ 0,	0,	printargs,		"n64_epoll_ctl"		}, /* 5208 */
+	{ 0,	0,	printargs,		"n64_epoll_wait"	}, /* 5209 */
+	{ 0,	TM,	printargs,		"n64_remap_file_pages"	}, /* 5210 */
+	{ 0,	0,	printargs,		"n64_rt_sigreturn"	}, /* 5211 */
+	{ 1,	0,	printargs,		"n64_set_tid_address"	}, /* 5212 */
+	{ 0,	0,	printargs,		"n64_restart_syscall"	}, /* 5213 */
+	{ 5,	TI,	printargs,		"n64_semtimedop"	}, /* 5214 */
+	{ 0,	0,	printargs,		"n64_fadvise64_64"	}, /* 5215 */
+	{ 0,	0,	printargs,		"n64_timer_create"	}, /* 5216 */
+	{ 0,	0,	printargs,		"n64_timer_settime"	}, /* 5217 */
+	{ 0,	0,	printargs,		"n64_timer_gettime"	}, /* 5218 */
+	{ 0,	0,	printargs,		"n64_timer_getoverrun"	}, /* 5219 */
+	{ 0,	0,	printargs,		"n64_timer_delete"	}, /* 5220 */
+	{ 0,	0,	printargs,		"n64_clock_settime"	}, /* 5221 */
+	{ 0,	0,	printargs,		"n64_clock_gettime"	}, /* 5222 */
+	{ 0,	0,	printargs,		"n64_clock_getres"	}, /* 5223 */
+	{ 0,	0,	printargs,		"n64_clock_nanosleep"	}, /* 5224 */
+	{ 0,	0,	printargs,		"n64_tgkill"		}, /* 5225 */
+	{ 0,	0,	printargs,		"n64_utimes"		}, /* 5226 */
+	{ 6,	TM,	printargs,		"n64_mbind"		}, /* 5227 */
+	{ 5,	TM,	printargs,		"n64_get_mempolicy"	}, /* 5228 */
+	{ 3,	TM,	printargs,		"n64_set_mempolicy"	}, /* 5229 */
+	{ 0,	0,	printargs,		"n64_mq_open"		}, /* 5230 */
+	{ 0,	0,	printargs,		"n64_mq_unlink"		}, /* 5231 */
+	{ 0,	0,	printargs,		"n64_mq_timedsend"	}, /* 5232 */
+	{ 0,	0,	printargs,		"n64_mq_timedreceive"	}, /* 5233 */
+	{ 0,	0,	printargs,		"n64_mq_notify"		}, /* 5234 */
+	{ 0,	0,	printargs,		"n64_mq_getsetattr"	}, /* 5235 */
+	{ 5,	0,	printargs,		"n64_vserver"		}, /* 5236 */
+	{ 0,	0,	printargs,		"n64_waitid"		}, /* 5237 */
+	{ 0,	0,	printargs,		"n64_SYS_5238"		}, /* 5238 */
+	{ 0,	0,	printargs,		"n64_add_key"		}, /* 5239 */
+	{ 0,	0,	printargs,		"n64_request_key"	}, /* 5230 */
+	{ 0,	0,	printargs,		"n64_keyctl"		}, /* 5241 */
+	{ 0,	0,	printargs,		"n64_set_thread_area"	}, /* 5242 */
+	{ 0,	0,	printargs,		"n64_inotify_init"	}, /* 5243 */
+	{ 0,	0,	printargs,		"n64_inotify_add_watch" }, /* 5244 */
+	{ 0,	0,	printargs,		"n64_inotify_rm_watch"	}, /* 5245 */
+	{ 0,	TM,	printargs,		"n64_migrate_pages"	}, /* 5246 */
+	{ 0,	0,	printargs,		"n64_openat"		}, /* 5247 */
+	{ 0,	0,	printargs,		"n64_mkdirat"		}, /* 5248 */
+	{ 0,	0,	printargs,		"n64_mknodat"		}, /* 5249 */
+	{ 0,	0,	printargs,		"n64_fchownat"		}, /* 5250 */
+	{ 0,	0,	printargs,		"n64_futimesat"		}, /* 5251 */
+	{ 0,	0,	printargs,		"n64_newfstatat"	}, /* 5252 */
+	{ 0,	0,	printargs,		"n64_unlinkat"		}, /* 5253 */
+	{ 0,	0,	printargs,		"n64_renameat"		}, /* 5254 */
+	{ 0,	0,	printargs,		"n64_linkat"		}, /* 5255 */
+	{ 0,	0,	printargs,		"n64_symlinkat"		}, /* 5256 */
+	{ 0,	0,	printargs,		"n64_readlinkat"	}, /* 5257 */
+	{ 0,	0,	printargs,		"n64_fchmodat"		}, /* 5258 */
+	{ 0,	0,	printargs,		"n64_faccessat"		}, /* 5259 */
+	{ 0,	0,	printargs,		"n64_pselect6"		}, /* 5260 */
+	{ 0,	0,	printargs,		"n64_ppoll"		}, /* 5261 */
+	{ 0,	0,	printargs,		"n64_unshare"		}, /* 5262 */
+	{ 0,	0,	printargs,		"n64_splice"		}, /* 5263 */
+	{ 0,	0,	printargs,		"n64_sync_file_range"	}, /* 5264 */
+	{ 0,	0,	printargs,		"n64_tee"		}, /* 5265 */
+	{ 0,	0,	printargs,		"n64_vmsplice"		}, /* 5266 */
+	{ 0,	TM,	printargs,		"n64_move_pages"	}, /* 5267 */
+	{ 0,	0,	printargs,		"n64_set_robust_list"	}, /* 5268 */
+	{ 0,	0,	printargs,		"n64_get_robust_list"	}, /* 5269 */
+	{ 0,	0,	printargs,		"n64_kexec_load"	}, /* 5270 */
+	{ 0,	0,	printargs,		"n64_getcpu"		}, /* 5271 */
+	{ 0,	0,	printargs,		"n64_epoll_pwait"	}, /* 5272 */
+	{ 0,	0,	printargs,		"n64_ioprio_set"	}, /* 5273 */
+	{ 0,	0,	printargs,		"n64_ioprio_get"	}, /* 5274 */
+	{ 0,	0,	printargs,		"n64_utimensat"		}, /* 5275 */
+	{ 0,	0,	printargs,		"n64_signalfd"		}, /* 5276 */
+	{ 4,	TD,	printargs,		"n64_timerfd"		}, /* 5277 */
+	{ 0,	0,	printargs,		"n64_eventfd"		}, /* 5278 */
+	{ 0,	0,	printargs,		"n64_fallocate"		}, /* 5279 */
+	{ 0,	0,	printargs,		"n64_timerfd_create"	}, /* 5280 */
+	{ 0,	0,	printargs,		"n64_timerfd_gettime"	}, /* 5281 */
+	{ 0,	0,	printargs,		"n64_timerfd_settime"	}, /* 5282 */
+	{ 0,	0,	printargs,		"n64_signalfd4"		}, /* 5283 */
+	{ 0,	0,	printargs,		"n64_eventfd2"		}, /* 5284 */
+	{ 0,	0,	printargs,		"n64_epoll_create1"	}, /* 5285 */
+	{ 0,	0,	printargs,		"n64_dup3"		}, /* 5286 */
+	{ 0,	0,	printargs,		"n64_pipe2"		}, /* 5287 */
+	{ 0,	0,	printargs,		"n64_inotify_init1"	}, /* 5288 */
+	{ 0,	0,	printargs,		"n64_preadv"		}, /* 5289 */
+	{ 0,	0,	printargs,		"n64_pwritev"		}, /* 5290 */
+	{ 0,	0,	printargs,		"n64_rt_tgsigqueueinfo" }, /* 5291 */
+	{ 0,	0,	printargs,		"n64_perf_event_open"	}, /* 5292 */
+	{ 0,	0,	printargs,		"n64_accept4"		}, /* 5293 */
+	{ 0,	0,	printargs,		"n64_recvmmsg"		}, /* 5294 */
+	{ 2,	0,	printargs,		"n64_fanotify_init"	}, /* 5295 */
+	{ 5,	0,	printargs,		"n64_fanotify_mark"	}, /* 5296 */
+	{ 4,	0,	printargs,		"n64_prlimit64"		}, /* 5297 */
+	{ 5,	TD|TF,	printargs,		"n64_name_to_handle_at"	}, /* 5298 */
+	{ 3,	TD,	printargs,		"n64_open_by_handle_at"	}, /* 5299 */
+	{ 2,	0,	printargs,		"n64_clock_adjtime"	}, /* 5300 */
+	{ 1,	TD,	printargs,		"n64_syncfs"		}, /* 5301 */
+	{ 4,	TN,	printargs,		"n64_sendmmsg"		}, /* 5302 */
+	{ 2,	TD,	printargs,		"n64_setns"		}, /* 5303 */
+	{ 6,	0,	printargs,		"n64_process_vm_readv"	}, /* 5304 */
+	{ 6,	0,	printargs,		"n64_process_vm_writev"	}, /* 5305 */
+	{ 5,	0,	printargs,		"kcmp"			}, /* 5306 */
+	{ 3,	TD,	printargs,		"finit_module"		}, /* 5307 */
+#endif
+	[5308 ... 5999] = { }, /* 5999 */ /* end of Linux N64 */
diff --git a/linux/mips/syscallent-o32.h b/linux/mips/syscallent-o32.h
new file mode 100644
index 0000000..c23ac14
--- /dev/null
+++ b/linux/mips/syscallent-o32.h
@@ -0,0 +1,703 @@
+#if defined LINUX_MIPSO32
+	/* For an O32 strace, decode the o32 syscalls.  */
+	{ MA,	0,	printargs,		"syscall"	}, /* 4000 */ /* start of Linux o32 */
+	{ 1,	TP,	sys_exit,		"exit"		}, /* 4001 */
+	{ 0,	TP,	sys_fork,		"fork"		}, /* 4002 */
+	{ 3,	TD,	sys_read,		"read"		}, /* 4003 */
+	{ 3,	TD,	sys_write,		"write"		}, /* 4004 */
+	{ 3,	TD|TF,	sys_open,		"open"		}, /* 4005 */
+	{ 1,	TD,	sys_close,		"close"		}, /* 4006 */
+	{ 3,	TP,	sys_waitpid,		"waitpid"	}, /* 4007 */
+	{ 2,	TD|TF,	sys_creat,		"creat"		}, /* 4008 */
+	{ 2,	TF,	sys_link,		"link"		}, /* 4009 */
+	{ 1,	TF,	sys_unlink,		"unlink"	}, /* 4010 */
+	{ 3,	TF|TP,	sys_execve,		"execve"	}, /* 4011 */
+	{ 1,	TF,	sys_chdir,		"chdir"		}, /* 4012 */
+	{ 1,	0,	sys_time,		"time"		}, /* 4013 */
+	{ 3,	TF,	sys_mknod,		"mknod"		}, /* 4014 */
+	{ 2,	TF,	sys_chmod,		"chmod"		}, /* 4015 */
+	{ 3,	TF,	sys_chown,		"lchown"	}, /* 4016 */
+	{ 0,	TM,	sys_break,		"break"		}, /* 4017 */
+	{ 2,	TF,	sys_oldstat,		"oldstat"	}, /* 4018 */
+	{ 3,	TD,	sys_lseek,		"lseek"		}, /* 4019 */
+	{ 0,	0,	sys_getpid,		"getpid"	}, /* 4020 */
+	{ 5,	TF,	sys_mount,		"mount"		}, /* 4021 */
+	{ 1,	TF,	sys_umount,		"umount"	}, /* 4022 */
+	{ 1,	0,	sys_setuid,		"setuid"	}, /* 4023 */
+	{ 0,	NF,	sys_getuid,		"getuid"	}, /* 4024 */
+	{ 1,	0,	sys_stime,		"stime"		}, /* 4025 */
+	{ 4,	0,	sys_ptrace,		"ptrace"	}, /* 4026 */
+	{ 1,	0,	sys_alarm,		"alarm"		}, /* 4027 */
+	{ 2,	TD,	sys_oldfstat,		"oldfstat"	}, /* 4028 */
+	{ 0,	TS,	sys_pause,		"pause"		}, /* 4029 */
+	{ 2,	TF,	sys_utime,		"utime"		}, /* 4030 */
+	{ 0,	0,	sys_stty,		"stty"		}, /* 4031 */
+	{ 0,	0,	sys_gtty,		"gtty"		}, /* 4032 */
+	{ 2,	TF,	sys_access,		"access"	}, /* 4033 */
+	{ 1,	0,	sys_nice,		"nice"		}, /* 4034 */
+	{ 1,	0,	sys_ftime,		"ftime"		}, /* 4035 */
+	{ 0,	0,	sys_sync,		"sync"		}, /* 4036 */
+	{ 2,	TS,	sys_kill,		"kill"		}, /* 4037 */
+	{ 2,	TF,	sys_rename,		"rename"	}, /* 4038 */
+	{ 2,	TF,	sys_mkdir,		"mkdir"		}, /* 4039 */
+	{ 1,	TF,	sys_rmdir,		"rmdir"		}, /* 4040 */
+	{ 1,	TD,	sys_dup,		"dup"		}, /* 4041 */
+	{ 1,	TD,	sys_pipe,		"pipe"		}, /* 4042 */
+	{ 1,	0,	sys_times,		"times"		}, /* 4043 */
+	{ 0,	0,	sys_prof,		"prof"		}, /* 4044 */
+	{ 1,	TM,	sys_brk,		"brk"		}, /* 4045 */
+	{ 1,	0,	sys_setgid,		"setgid"	}, /* 4046 */
+	{ 0,	NF,	sys_getgid,		"getgid"	}, /* 4047 */
+	{ 1,	TS,	sys_signal,		"signal"	}, /* 4048 */
+	{ 0,	NF,	sys_geteuid,		"geteuid"	}, /* 4049 */
+	{ 0,	NF,	sys_getegid,		"getegid"	}, /* 4050 */
+	{ 1,	TF,	sys_acct,		"acct"		}, /* 4051 */
+	{ 2,	TF,	sys_umount2,		"umount2"	}, /* 4052 */
+	{ 0,	0,	sys_lock,		"lock"		}, /* 4053 */
+	{ 3,	TD,	sys_ioctl,		"ioctl"		}, /* 4054 */
+	{ 3,	TD,	sys_fcntl,		"fcntl"		}, /* 4055 */
+	{ 0,	0,	sys_mpx,		"mpx"		}, /* 4056 */
+	{ 2,	0,	sys_setpgid,		"setpgid"	}, /* 4057 */
+	{ 0,	0,	sys_ulimit,		"ulimit"	}, /* 4058 */
+	{ 1,	0,	sys_oldolduname,	"oldolduname"	}, /* 4059 */
+	{ 1,	0,	sys_umask,		"umask"		}, /* 4060 */
+	{ 1,	TF,	sys_chroot,		"chroot"	}, /* 4061 */
+	{ 2,	0,	sys_ustat,		"ustat"		}, /* 4062 */
+	{ 2,	TD,	sys_dup2,		"dup2"		}, /* 4063 */
+	{ 0,	0,	sys_getppid,		"getppid"	}, /* 4064 */
+	{ 0,	0,	sys_getpgrp,		"getpgrp"	}, /* 4065 */
+	{ 0,	0,	sys_setsid,		"setsid"	}, /* 4066 */
+	{ 3,	TS,	sys_sigaction,		"sigaction"	}, /* 4067 */
+	{ 0,	TS,	sys_siggetmask,		"sgetmask"	}, /* 4068 */
+	{ 1,	TS,	sys_sigsetmask,		"ssetmask"	}, /* 4069 */
+	{ 2,	0,	sys_setreuid,		"setreuid"	}, /* 4070 */
+	{ 2,	0,	sys_setregid,		"setregid"	}, /* 4071 */
+	{ 3,	TS,	sys_sigsuspend,		"sigsuspend"	}, /* 4072 */
+	{ 1,	TS,	sys_sigpending,		"sigpending"	}, /* 4073 */
+	{ 2,	0,	sys_sethostname,	"sethostname"	}, /* 4074 */
+	{ 2,	0,	sys_setrlimit,		"setrlimit"	}, /* 4075 */
+	{ 2,	0,	sys_getrlimit,		"getrlimit"	}, /* 4076 */
+	{ 2,	0,	sys_getrusage,		"getrusage"	}, /* 4077 */
+	{ 2,	0,	sys_gettimeofday,	"gettimeofday"	}, /* 4078 */
+	{ 2,	0,	sys_settimeofday,	"settimeofday"	}, /* 4079 */
+	{ 2,	0,	sys_getgroups,		"getgroups"	}, /* 4080 */
+	{ 2,	0,	sys_setgroups,		"setgroups"	}, /* 4081 */
+	{ 0,	0,	printargs,		"reserved82"	}, /* 4082 */
+	{ 2,	TF,	sys_symlink,		"symlink"	}, /* 4083 */
+	{ 2,	TF,	sys_oldlstat,		"oldlstat"	}, /* 4084 */
+	{ 3,	TF,	sys_readlink,		"readlink"	}, /* 4085 */
+	{ 1,	TF,	sys_uselib,		"uselib"	}, /* 4086 */
+	{ 2,	TF,	sys_swapon,		"swapon"	}, /* 4087 */
+	{ 4,	0,	sys_reboot,		"reboot"	}, /* 4088 */
+	{ 3,	TD,	sys_readdir,		"readdir"	}, /* 4089 */
+	{ 6,	TD|TM,	sys_mmap,		"mmap"		}, /* 4090 */
+	{ 2,	TM,	sys_munmap,		"munmap"	}, /* 4091 */
+	{ 2,	TF,	sys_truncate,		"truncate"	}, /* 4092 */
+	{ 2,	TD,	sys_ftruncate,		"ftruncate"	}, /* 4093 */
+	{ 2,	TD,	sys_fchmod,		"fchmod"	}, /* 4094 */
+	{ 3,	TD,	sys_fchown,		"fchown"	}, /* 4095 */
+	{ 2,	0,	sys_getpriority,	"getpriority"	}, /* 4096 */
+	{ 3,	0,	sys_setpriority,	"setpriority"	}, /* 4097 */
+	{ 0,	0,	sys_profil,		"profil"	}, /* 4098 */
+	{ 3,	TF,	sys_statfs,		"statfs"	}, /* 4099 */
+	{ 3,	TD,	sys_fstatfs,		"fstatfs"	}, /* 4100 */
+	{ 0,	0,	sys_ioperm,		"ioperm"	}, /* 4101 */
+	{ 2,	TD,	sys_socketcall,		"socketcall"	}, /* 4102 */
+	{ 3,	0,	sys_syslog,		"syslog"	}, /* 4103 */
+	{ 3,	0,	sys_setitimer,		"setitimer"	}, /* 4104 */
+	{ 2,	0,	sys_getitimer,		"getitimer"	}, /* 4105 */
+	{ 2,	TF,	sys_stat,		"stat"		}, /* 4106 */
+	{ 2,	TF,	sys_lstat,		"lstat"		}, /* 4107 */
+	{ 2,	TD,	sys_fstat,		"fstat"		}, /* 4108 */
+	{ 1,	0,	sys_olduname,		"olduname"	}, /* 4109 */
+	{ 0,	0,	sys_iopl,		"iopl"		}, /* 4110 */
+	{ 0,	0,	sys_vhangup,		"vhangup"	}, /* 4111 */
+	{ 0,	0,	sys_idle,		"idle"		}, /* 4112 */
+	{ 5,	0,	sys_vm86old,		"vm86"		}, /* 4113 */
+	{ 4,	TP,	sys_wait4,		"wait4"		}, /* 4114 */
+	{ 1,	TF,	sys_swapoff,		"swapoff"	}, /* 4115 */
+	{ 1,	0,	sys_sysinfo,		"sysinfo"	}, /* 4116 */
+	{ 6,	TI,	sys_ipc,		"ipc"		}, /* 4117 */
+	{ 1,	TD,	sys_fsync,		"fsync"		}, /* 4118 */
+	{ 0,	TS,	sys_sigreturn,		"sigreturn"	}, /* 4119 */
+	{ 5,	TP,	sys_clone,		"clone"		}, /* 4120 */
+	{ 2,	0,	sys_setdomainname,	"setdomainname"	}, /* 4121 */
+	{ 1,	0,	sys_uname,		"uname"		}, /* 4122 */
+	{ 0,	0,	sys_modify_ldt,		"modify_ldt"	}, /* 4123 */
+	{ 1,	0,	sys_adjtimex,		"adjtimex"	}, /* 4124 */
+	{ 3,	TM,	sys_mprotect,		"mprotect"	}, /* 4125 */
+	{ 3,	TS,	sys_sigprocmask,	"sigprocmask"	}, /* 4126 */
+	{ 2,	0,	sys_create_module,	"create_module"	}, /* 4127 */
+	{ 3,	0,	sys_init_module,	"init_module"	}, /* 4128 */
+	{ 2,	0,	sys_delete_module,	"delete_module"	}, /* 4129 */
+	{ 1,	0,	sys_get_kernel_syms,	"get_kernel_syms"}, /* 4130 */
+	{ 4,	TF,	sys_quotactl,		"quotactl"	}, /* 4131 */
+	{ 1,	0,	sys_getpgid,		"getpgid"	}, /* 4132 */
+	{ 1,	TD,	sys_fchdir,		"fchdir"	}, /* 4133 */
+	{ 2,	0,	sys_bdflush,		"bdflush"	}, /* 4134 */
+	{ 3,	0,	sys_sysfs,		"sysfs"		}, /* 4135 */
+	{ 1,	0,	sys_personality,	"personality"	}, /* 4136 */
+	{ 0,	0,	sys_afs_syscall,	"afs_syscall"	}, /* 4137 */
+	{ 1,	NF,	sys_setfsuid,		"setfsuid"	}, /* 4138 */
+	{ 1,	NF,	sys_setfsgid,		"setfsgid"	}, /* 4139 */
+	{ 5,	TD,	sys_llseek,		"_llseek"	}, /* 4140 */
+	{ 3,	TD,	sys_getdents,		"getdents"	}, /* 4141 */
+	{ 5,	TD,	sys_select,		"_newselect"	}, /* 4142 */
+	{ 2,	TD,	sys_flock,		"flock"		}, /* 4143 */
+	{ 3,	TM,	sys_msync,		"msync"		}, /* 4144 */
+	{ 3,	TD,	sys_readv,		"readv"		}, /* 4145 */
+	{ 3,	TD,	sys_writev,		"writev"	}, /* 4146 */
+	{ 3,	0,	printargs,		"cacheflush"	}, /* 4147 */
+	{ 3,	0,	printargs,		"cachectl"	}, /* 4148 */
+	{ 4,	0,	sys_sysmips,		"sysmips"	}, /* 4149 */
+	{ 0,	0,	sys_setup,		"setup"		}, /* 4150 */
+	{ 1,	0,	sys_getsid,		"getsid"	}, /* 4151 */
+	{ 1,	TD,	sys_fdatasync,		"fdatasync"	}, /* 4152 */
+	{ 1,	0,	sys_sysctl,		"_sysctl"	}, /* 4153 */
+	{ 2,	TM,	sys_mlock,		"mlock"		}, /* 4154 */
+	{ 2,	TM,	sys_munlock,		"munlock"	}, /* 4155 */
+	{ 1,	TM,	sys_mlockall,		"mlockall"	}, /* 4156 */
+	{ 0,	TM,	sys_munlockall,		"munlockall"	}, /* 4157 */
+	{ 2,	0,	sys_sched_setparam,	"sched_setparam"}, /* 4158 */
+	{ 2,	0,	sys_sched_getparam,	"sched_getparam"}, /* 4159 */
+	{ 3,	0,	sys_sched_setscheduler,	"sched_setscheduler"}, /* 4160 */
+	{ 1,	0,	sys_sched_getscheduler,	"sched_getscheduler"}, /* 4161 */
+	{ 0,	0,	sys_sched_yield,	"sched_yield"	}, /* 4162 */
+	{ 1,	0,	sys_sched_get_priority_max,"sched_get_priority_max"}, /* 4163 */
+	{ 1,	0,	sys_sched_get_priority_min,"sched_get_priority_min"}, /* 4164 */
+	{ 2,	0,	sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 4165 */
+	{ 2,	0,	sys_nanosleep,		"nanosleep"	}, /* 4166 */
+	{ 5,	TM,	sys_mremap,		"mremap"	}, /* 4167 */
+	{ 3,	TN,	sys_accept,		"accept"	}, /* 4168 */
+	{ 3,	TN,	sys_bind,		"bind"		}, /* 4169 */
+	{ 3,	TN,	sys_connect,		"connect"	}, /* 4170 */
+	{ 3,	TN,	sys_getpeername,	"getpeername"	}, /* 4171 */
+	{ 3,	TN,	sys_getsockname,	"getsockname"	}, /* 4172 */
+	{ 5,	TN,	sys_getsockopt,		"getsockopt"	}, /* 4173 */
+	{ 2,	TN,	sys_listen,		"listen"	}, /* 4174 */
+	{ 4,	TN,	sys_recv,		"recv"		}, /* 4175 */
+	{ 6,	TN,	sys_recvfrom,		"recvfrom"	}, /* 4176 */
+	{ 3,	TN,	sys_recvmsg,		"recvmsg"	}, /* 4177 */
+	{ 4,	TN,	sys_send,		"send"		}, /* 4178 */
+	{ 3,	TN,	sys_sendmsg,		"sendmsg"	}, /* 4179 */
+	{ 6,	TN,	sys_sendto,		"sendto"	}, /* 4180 */
+	{ 5,	TN,	sys_setsockopt,		"setsockopt"	}, /* 4181 */
+	{ 2,	TN,	sys_shutdown,		"shutdown"	}, /* 4182 */
+	{ 3,	TN,	sys_socket,		"socket"	}, /* 4183 */
+	{ 4,	TN,	sys_socketpair,		"socketpair"	}, /* 4184 */
+	{ 3,	0,	sys_setresuid,		"setresuid"	}, /* 4185 */
+	{ 3,	0,	sys_getresuid,		"getresuid"	}, /* 4186 */
+	{ 5,	0,	sys_query_module,	"query_module"	}, /* 4187 */
+	{ 3,	TD,	sys_poll,		"poll"		}, /* 4188 */
+	{ 3,	0,	sys_nfsservctl,		"nfsservctl"	}, /* 4189 */
+	{ 3,	0,	sys_setresgid,		"setresgid"	}, /* 4190 */
+	{ 3,	0,	sys_getresgid,		"getresgid"	}, /* 4191 */
+	{ 5,	0,	sys_prctl,		"prctl"		}, /* 4192 */
+	{ 0,	TS,	sys_rt_sigreturn,	"rt_sigreturn"	}, /* 4193 */
+	{ 4,	TS,	sys_rt_sigaction,	"rt_sigaction"	}, /* 4194 */
+	{ 4,	TS,	sys_rt_sigprocmask,	"rt_sigprocmask"}, /* 4195 */
+	{ 2,	TS,	sys_rt_sigpending,	"rt_sigpending"	}, /* 4196 */
+	{ 4,	TS,	sys_rt_sigtimedwait,	"rt_sigtimedwait"},/* 4197 */
+	{ 3,	TS,	sys_rt_sigqueueinfo,	"rt_sigqueueinfo"},/* 4198 */
+	{ 2,	TS,	sys_rt_sigsuspend,	"rt_sigsuspend"	}, /* 4199 */
+	{ 6,	TD,	sys_pread,		"pread64"	}, /* 4200 */
+	{ 6,	TD,	sys_pwrite,		"pwrite64"	}, /* 4201 */
+	{ 3,	TF,	sys_chown,		"chown"		}, /* 4202 */
+	{ 2,	TF,	sys_getcwd,		"getcwd"	}, /* 4203 */
+	{ 2,	0,	sys_capget,		"capget"	}, /* 4204 */
+	{ 2,	0,	sys_capset,		"capset"	}, /* 4205 */
+	{ 2,	TS,	sys_sigaltstack,	"sigaltstack"	}, /* 4206 */
+	{ 4,	TD|TN,	sys_sendfile,		"sendfile"	}, /* 4207 */
+	{ 5,	TN,	printargs,		"getpmsg"	}, /* 4208 */
+	{ 5,	TN,	printargs,		"putpmsg"	}, /* 4209 */
+	{ 6,	TD|TM,	sys_mmap_4koff,		"mmap2"		}, /* 4210 */
+	{ 4,	TF,	sys_truncate64,		"truncate64"	}, /* 4211 */
+	{ 4,	TD,	sys_ftruncate64,	"ftruncate64"	}, /* 4212 */
+	{ 2,	TF,	sys_stat64,		"stat64"	}, /* 4213 */
+	{ 2,	TF,	sys_lstat64,		"lstat64"	}, /* 4214 */
+	{ 2,	TD,	sys_fstat64,		"fstat64"	}, /* 4215 */
+	{ 2,	TF,	sys_pivotroot,		"pivot_root"	}, /* 4216 */
+	{ 3,	TM,	sys_mincore,		"mincore"	}, /* 4217 */
+	{ 3,	TM,	sys_madvise,		"madvise"	}, /* 4218 */
+	{ 3,	TD,	sys_getdents64,		"getdents64"	}, /* 4219 */
+	{ 3,	TD,	sys_fcntl,		"fcntl64"	}, /* 4220 */
+	{ 0,	0,	NULL,			NULL		}, /* 4221 */
+	{ 0,	0,	sys_gettid,		"gettid"	}, /* 4222 */
+	{ 5,	TD,	sys_readahead,		"readahead"	}, /* 4223 */
+	{ 5,	TF,	sys_setxattr,		"setxattr"	}, /* 4224 */
+	{ 5,	TF,	sys_setxattr,		"lsetxattr"	}, /* 4225 */
+	{ 5,	TD,	sys_fsetxattr,		"fsetxattr"	}, /* 4226 */
+	{ 4,	TF,	sys_getxattr,		"getxattr"	}, /* 4227 */
+	{ 4,	TF,	sys_getxattr,		"lgetxattr"	}, /* 4228 */
+	{ 4,	TD,	sys_fgetxattr,		"fgetxattr"	}, /* 4229 */
+	{ 3,	TF,	sys_listxattr,		"listxattr"	}, /* 4230 */
+	{ 3,	TF,	sys_listxattr,		"llistxattr"	}, /* 4231 */
+	{ 3,	TD,	sys_flistxattr,		"flistxattr"	}, /* 4232 */
+	{ 2,	TF,	sys_removexattr,	"removexattr"	}, /* 4233 */
+	{ 2,	TF,	sys_removexattr,	"lremovexattr"	}, /* 4234 */
+	{ 2,	TD,	sys_fremovexattr,	"fremovexattr"	}, /* 4235 */
+	{ 2,	TS,	sys_kill,		"tkill"		}, /* 4236 */
+	{ 4,	TD|TN,	sys_sendfile64,		"sendfile64"	}, /* 4237 */
+	{ 6,	0,	sys_futex,		"futex"		}, /* 4238 */
+	{ 3,	0,	sys_sched_setaffinity,	"sched_setaffinity"}, /* 4239 */
+	{ 3,	0,	sys_sched_getaffinity,	"sched_getaffinity"}, /* 4240 */
+	{ 2,	0,	sys_io_setup,		"io_setup"	}, /* 4241 */
+	{ 1,	0,	sys_io_destroy,		"io_destroy"	}, /* 4242 */
+	{ 5,	0,	sys_io_getevents,		"io_getevents"	}, /* 4243 */
+	{ 3,	0,	sys_io_submit,		"io_submit"	}, /* 4244 */
+	{ 3,	0,	sys_io_cancel,		"io_cancel"	}, /* 4245 */
+	{ 1,	TP,	sys_exit,		"exit_group"	}, /* 4246 */
+	{ 4,	0,	sys_lookup_dcookie,	"lookup_dcookie"}, /* 4247 */
+	{ 1,	TD,	sys_epoll_create,	"epoll_create"	}, /* 4248 */
+	{ 4,	TD,	sys_epoll_ctl,		"epoll_ctl"	}, /* 4249 */
+	{ 4,	TD,	sys_epoll_wait,		"epoll_wait"	}, /* 4250 */
+	{ 5,	TM,	sys_remap_file_pages,	"remap_file_pages"}, /* 4251 */
+	{ 1,	0,	sys_set_tid_address,	"set_tid_address"}, /* 4252 */
+	{ 0,	0,	sys_restart_syscall,	"restart_syscall"}, /* 4253 */
+	{ 7,	TD,	sys_fadvise64_64,	"fadvise64_64"	}, /* 4254 */
+	{ 3,	TF,	sys_statfs64,		"statfs64"	}, /* 4255 */
+	{ 2,	TD,	sys_fstatfs64,		"fstatfs64"	}, /* 4256 */
+	{ 3,	0,	sys_timer_create,	"timer_create"	}, /* 4257 */
+	{ 4,	0,	sys_timer_settime,	"timer_settime"	}, /* 4258 */
+	{ 2,	0,	sys_timer_gettime,	"timer_gettime"	}, /* 4259 */
+	{ 1,	0,	sys_timer_getoverrun,	"timer_getoverrun"}, /* 4260 */
+	{ 1,	0,	sys_timer_delete,	"timer_delete"	}, /* 4261 */
+	{ 2,	0,	sys_clock_settime,	"clock_settime"	}, /* 4262 */
+	{ 2,	0,	sys_clock_gettime,	"clock_gettime"	}, /* 4263 */
+	{ 2,	0,	sys_clock_getres,	"clock_getres"	}, /* 4264 */
+	{ 4,	0,	sys_clock_nanosleep,	"clock_nanosleep"}, /* 4265 */
+	{ 3,	TS,	sys_tgkill,		"tgkill"	}, /* 4266 */
+	{ 2,	TF,	sys_utimes,		"utimes"	}, /* 4267 */
+	{ 4,	TM,	sys_mbind,		"mbind"		}, /* 4268 */
+	{ 5,	TM,	sys_get_mempolicy,	"get_mempolicy"	}, /* 4269 */
+	{ 3,	TM,	sys_set_mempolicy,	"set_mempolicy"	}, /* 4270 */
+	{ 4,	0,	sys_mq_open,		"mq_open"	}, /* 4271 */
+	{ 1,	0,	sys_mq_unlink,		"mq_unlink"	}, /* 4272 */
+	{ 5,	0,	sys_mq_timedsend,	"mq_timedsend"	}, /* 4273 */
+	{ 5,	0,	sys_mq_timedreceive,	"mq_timedreceive"}, /* 4274 */
+	{ 2,	0,	sys_mq_notify,		"mq_notify"	}, /* 4275 */
+	{ 3,	0,	sys_mq_getsetattr,	"mq_getsetattr"	}, /* 4276 */
+	{ 5,	0,	sys_vserver,		"vserver"	}, /* 4277 */
+	{ 5,	TP,	sys_waitid,		"waitid"	}, /* 4278 */
+	{ 0,	0,	NULL,			NULL		}, /* 4279 */
+	{ 5,	0,	sys_add_key,		"add_key"	}, /* 4280 */
+	{ 4,	0,	sys_request_key,	"request_key"	}, /* 4281 */
+	{ 5,	0,	sys_keyctl,		"keyctl"	}, /* 4282 */
+	{ 1,	0,	sys_set_thread_area,	"set_thread_area" }, /* 4283 */
+	{ 0,	TD,	sys_inotify_init,	"inotify_init"	}, /* 4284 */
+	{ 3,	TD,	sys_inotify_add_watch,	"inotify_add_watch" }, /* 4285 */
+	{ 2,	TD,	sys_inotify_rm_watch,	"inotify_rm_watch" }, /* 4286 */
+	{ 4,	TM,	sys_migrate_pages,	"migrate_pages"	}, /* 4287 */
+	{ 4,	TD|TF,	sys_openat,		"openat"	}, /* 4288 */
+	{ 3,	TD|TF,	sys_mkdirat,		"mkdirat"	}, /* 4289 */
+	{ 4,	TD|TF,	sys_mknodat,		"mknodat"	}, /* 4290 */
+	{ 5,	TD|TF,	sys_fchownat,		"fchownat"	}, /* 4291 */
+	{ 3,	TD|TF,	sys_futimesat,		"futimesat"	}, /* 4292 */
+	{ 4,	TD|TF,	sys_newfstatat,		"fstatat64"	}, /* 4293 */
+	{ 3,	TD|TF,	sys_unlinkat,		"unlinkat"	}, /* 4294 */
+	{ 4,	TD|TF,	sys_renameat,		"renameat"	}, /* 4295 */
+	{ 5,	TD|TF,	sys_linkat,		"linkat"	}, /* 4296 */
+	{ 3,	TD|TF,	sys_symlinkat,		"symlinkat"	}, /* 4297 */
+	{ 4,	TD|TF,	sys_readlinkat,		"readlinkat"	}, /* 4298 */
+	{ 3,	TD|TF,	sys_fchmodat,		"fchmodat"	}, /* 4299 */
+	{ 3,	TD|TF,	sys_faccessat,		"faccessat"	}, /* 4300 */
+	{ 6,	TD,	sys_pselect6,		"pselect6"	}, /* 4301 */
+	{ 5,	TD,	sys_ppoll,		"ppoll"		}, /* 4302 */
+	{ 1,	TP,	sys_unshare,		"unshare"	}, /* 4303 */
+	{ 6,	TD,	sys_splice,		"splice"	}, /* 4304 */
+	{ 6,	TD,	sys_sync_file_range,	"sync_file_range" }, /* 4305 */
+	{ 4,	TD,	sys_tee,		"tee"		}, /* 4306 */
+	{ 4,	TD,	sys_vmsplice,		"vmsplice"	}, /* 4307 */
+	{ 6,	TM,	sys_move_pages,		"move_pages"	}, /* 4308 */
+	{ 2,	0,	sys_set_robust_list,	"set_robust_list" }, /* 4309 */
+	{ 3,	0,	sys_get_robust_list,	"get_robust_list" }, /* 4310 */
+	{ 4,	0,	sys_kexec_load,		"kexec_load"	}, /* 4311 */
+	{ 3,	0,	sys_getcpu,		"getcpu"	}, /* 4312 */
+	{ 6,	TD,	sys_epoll_pwait,	"epoll_pwait"	}, /* 4313 */
+	{ 3,	0,	sys_ioprio_set,		"ioprio_set"	}, /* 4314 */
+	{ 2,	0,	sys_ioprio_get,		"ioprio_get"	}, /* 4315 */
+	{ 4,	0,	printargs,		"utimensat"	}, /* 4316 */
+	{ 3,	TD|TS,	sys_signalfd,		"signalfd"	}, /* 4317 */
+	{ 4,	TD,	sys_timerfd,		"timerfd"	}, /* 4318 */
+	{ 1,	TD,	sys_eventfd,		"eventfd"	}, /* 4319 */
+	{ 6,	TD,	sys_fallocate,		"fallocate"	}, /* 4320 */
+	{ 2,	TD,	sys_timerfd_create,	"timerfd_create" }, /* 4321 */
+	{ 2,	TD,	sys_timerfd_gettime,	"timerfd_gettime" }, /* 4322 */
+	{ 4,	TD,	sys_timerfd_settime,	"timerfd_settime" }, /* 4323 */
+	{ 4,	TD|TS,	sys_signalfd4,		"signalfd4"	}, /* 4324 */
+	{ 2,	TD,	sys_eventfd2,		"eventfd2"	}, /* 4325 */
+	{ 1,	TD,	sys_epoll_create1,	"epoll_create1"	}, /* 4326 */
+	{ 3,	TD,	sys_dup3,		"dup3"		}, /* 4327 */
+	{ 2,	TD,	sys_pipe2,		"pipe2"		}, /* 4328 */
+	{ 1,	TD,	sys_inotify_init1,	"inotify_init1"	}, /* 4329 */
+	{ 6,	TD,	sys_preadv,		"preadv"	}, /* 4330 */
+	{ 6,	TD,	sys_pwritev,		"pwritev"	}, /* 4331 */
+	{ 4,	TP|TS,	sys_rt_tgsigqueueinfo,	"rt_tgsigqueueinfo" }, /* 4332 */
+	{ 5,	TD,	sys_perf_event_open,	"perf_event_open" }, /* 4333 */
+	{ 4,	TN,	sys_accept4,		"accept4"	}, /* 4334 */
+	{ 5,	TN,	sys_recvmmsg,		"recvmmsg"	}, /* 4335 */
+	{ 2,	TD,	sys_fanotify_init,	"fanotify_init"	}, /* 4336 */
+	{ 5,	TD|TF,	sys_fanotify_mark,	"fanotify_mark"	}, /* 4337 */
+	{ 4,	0,	sys_prlimit64,		"prlimit64"	}, /* 4338 */
+	{ 5,	TD|TF,	sys_name_to_handle_at,	"name_to_handle_at"}, /* 4339 */
+	{ 3,	TD,	sys_open_by_handle_at,	"open_by_handle_at"}, /* 4340 */
+	{ 2,	0,	sys_clock_adjtime,	"clock_adjtime"	}, /* 4341 */
+	{ 1,	TD,	sys_syncfs,		"syncfs"	}, /* 4342 */
+	{ 4,	TN,	sys_sendmmsg,		"sendmmsg"	}, /* 4343 */
+	{ 2,	TD,	sys_setns,		"setns"		}, /* 4344 */
+	{ 6,	0,	sys_process_vm_readv,	"process_vm_readv"	}, /* 4345 */
+	{ 6,	0,	sys_process_vm_writev,	"process_vm_writev"	}, /* 4346 */
+	{ 5,	0,	sys_kcmp,		"kcmp"		}, /* 4347 */
+	{ 3,	TD,	sys_finit_module,	"finit_module"	}, /* 4348 */
+#else
+	{ 0,	0,	printargs,		"o32_syscall"	}, /* 4000 */
+	{ 0,	0,	printargs,		"o32_exit"		}, /* 4001 */
+	{ 0,	0,	printargs,		"o32_fork"		}, /* 4002 */
+	{ 0,	0,	printargs,		"o32_read"		}, /* 4003 */
+	{ 0,	0,	printargs,		"o32_write"		}, /* 4004 */
+	{ 0,	0,	printargs,		"o32_open"		}, /* 4005 */
+	{ 0,	0,	printargs,		"o32_close"		}, /* 4006 */
+	{ 0,	0,	printargs,		"o32_waitpid"	}, /* 4007 */
+	{ 0,	0,	printargs,		"o32_creat"		}, /* 4008 */
+	{ 0,	0,	printargs,		"o32_link"		}, /* 4009 */
+	{ 0,	0,	printargs,		"o32_unlink"	}, /* 4010 */
+	{ 0,	0,	printargs,		"o32_execve"	}, /* 4011 */
+	{ 0,	0,	printargs,		"o32_chdir"		}, /* 4012 */
+	{ 0,	0,	printargs,		"o32_time"		}, /* 4013 */
+	{ 0,	0,	printargs,		"o32_mknod"		}, /* 4014 */
+	{ 0,	0,	printargs,		"o32_chmod"		}, /* 4015 */
+	{ 0,	0,	printargs,		"o32_lchown"	}, /* 4016 */
+	{ 0,	TM,	printargs,		"o32_break"		}, /* 4017 */
+	{ 0,	0,	printargs,		"o32_oldstat"	}, /* 4018 */
+	{ 0,	0,	printargs,		"o32_lseek"		}, /* 4019 */
+	{ 0,	0,	printargs,		"o32_getpid"	}, /* 4020 */
+	{ 0,	0,	printargs,		"o32_mount"		}, /* 4021 */
+	{ 0,	0,	printargs,		"o32_umount"	}, /* 4022 */
+	{ 0,	0,	printargs,		"o32_setuid"	}, /* 4023 */
+	{ 0,	0,	printargs,		"o32_getuid"	}, /* 4024 */
+	{ 0,	0,	printargs,		"o32_stime"		}, /* 4025 */
+	{ 0,	0,	printargs,		"o32_ptrace"	}, /* 4026 */
+	{ 0,	0,	printargs,		"o32_alarm"		}, /* 4027 */
+	{ 0,	0,	printargs,		"o32_oldfstat"	}, /* 4028 */
+	{ 0,	0,	printargs,		"o32_pause"		}, /* 4029 */
+	{ 0,	0,	printargs,		"o32_utime"		}, /* 4030 */
+	{ 0,	0,	printargs,		"o32_stty"		}, /* 4031 */
+	{ 0,	0,	printargs,		"o32_gtty"		}, /* 4032 */
+	{ 0,	0,	printargs,		"o32_access"	}, /* 4033 */
+	{ 0,	0,	printargs,		"o32_nice"		}, /* 4034 */
+	{ 0,	0,	printargs,		"o32_ftime"		}, /* 4035 */
+	{ 0,	0,	printargs,		"o32_sync"		}, /* 4036 */
+	{ 0,	0,	printargs,		"o32_kill"		}, /* 4037 */
+	{ 0,	0,	printargs,		"o32_rename"	}, /* 4038 */
+	{ 0,	0,	printargs,		"o32_mkdir"		}, /* 4039 */
+	{ 0,	0,	printargs,		"o32_rmdir"		}, /* 4040 */
+	{ 0,	0,	printargs,		"o32_dup"		}, /* 4041 */
+	{ 0,	0,	printargs,		"o32_pipe"		}, /* 4042 */
+	{ 0,	0,	printargs,		"o32_times"		}, /* 4043 */
+	{ 0,	0,	printargs,		"o32_prof"		}, /* 4044 */
+	{ 0,	TM,	printargs,		"o32_brk"		}, /* 4045 */
+	{ 0,	0,	printargs,		"o32_setgid"	}, /* 4046 */
+	{ 0,	0,	printargs,		"o32_getgid"	}, /* 4047 */
+	{ 0,	0,	printargs,		"o32_signal"	}, /* 4048 */
+	{ 0,	0,	printargs,		"o32_geteuid"	}, /* 4049 */
+	{ 0,	0,	printargs,		"o32_getegid"	}, /* 4050 */
+	{ 0,	0,	printargs,		"o32_acct"		}, /* 4051 */
+	{ 0,	0,	printargs,		"o32_umount2"	}, /* 4052 */
+	{ 0,	0,	printargs,		"o32_lock"		}, /* 4053 */
+	{ 0,	0,	printargs,		"o32_ioctl"		}, /* 4054 */
+	{ 0,	0,	printargs,		"o32_fcntl"		}, /* 4055 */
+	{ 0,	0,	printargs,		"o32_mpx"		}, /* 4056 */
+	{ 0,	0,	printargs,		"o32_setpgid"	}, /* 4057 */
+	{ 0,	0,	printargs,		"o32_ulimit"	}, /* 4058 */
+	{ 0,	0,	printargs,		"o32_oldolduname"	}, /* 4059 */
+	{ 0,	0,	printargs,		"o32_umask"		}, /* 4060 */
+	{ 0,	0,	printargs,		"o32_chroot"	}, /* 4061 */
+	{ 0,	0,	printargs,		"o32_ustat"		}, /* 4062 */
+	{ 0,	0,	printargs,		"o32_dup2"		}, /* 4063 */
+	{ 0,	0,	printargs,		"o32_getppid"	}, /* 4064 */
+	{ 0,	0,	printargs,		"o32_getpgrp"	}, /* 4065 */
+	{ 0,	0,	printargs,		"o32_setsid"	}, /* 4066 */
+	{ 0,	0,	printargs,		"o32_sigaction"	}, /* 4067 */
+	{ 0,	0,	printargs,		"o32_siggetmask"	}, /* 4068 */
+	{ 0,	0,	printargs,		"o32_sigsetmask"	}, /* 4069 */
+	{ 0,	0,	printargs,		"o32_setreuid"	}, /* 4070 */
+	{ 0,	0,	printargs,		"o32_setregid"	}, /* 4071 */
+	{ 0,	0,	printargs,		"o32_sigsuspend"	}, /* 4072 */
+	{ 0,	0,	printargs,		"o32_sigpending"	}, /* 4073 */
+	{ 0,	0,	printargs,		"o32_sethostname"	}, /* 4074 */
+	{ 0,	0,	printargs,		"o32_setrlimit"	}, /* 4075 */
+	{ 0,	0,	printargs,		"o32_getrlimit"	}, /* 4076 */
+	{ 0,	0,	printargs,		"o32_getrusage"	}, /* 4077 */
+	{ 0,	0,	printargs,		"o32_gettimeofday"	}, /* 4078 */
+	{ 0,	0,	printargs,		"o32_settimeofday"	}, /* 4079 */
+	{ 0,	0,	printargs,		"o32_getgroups"	}, /* 4080 */
+	{ 0,	0,	printargs,		"o32_setgroups"	}, /* 4081 */
+	{ 0,	0,	printargs,		"o32_reserved82"	}, /* 4082 */
+	{ 0,	0,	printargs,		"o32_symlink"	}, /* 4083 */
+	{ 0,	0,	printargs,		"o32_oldlstat"	}, /* 4084 */
+	{ 0,	0,	printargs,		"o32_readlink"	}, /* 4085 */
+	{ 0,	0,	printargs,		"o32_uselib"	}, /* 4086 */
+	{ 0,	0,	printargs,		"o32_swapon"	}, /* 4087 */
+	{ 0,	0,	printargs,		"o32_reboot"	}, /* 4088 */
+	{ 0,	0,	printargs,		"o32_readdir"	}, /* 4089 */
+	{ 0,	TD|TM,	printargs,		"o32_mmap"	}, /* 4090 */
+	{ 0,	TM,	printargs,		"o32_munmap"	}, /* 4091 */
+	{ 0,	0,	printargs,		"o32_truncate"	}, /* 4092 */
+	{ 0,	0,	printargs,		"o32_ftruncate"	}, /* 4093 */
+	{ 0,	0,	printargs,		"o32_fchmod"	}, /* 4094 */
+	{ 0,	0,	printargs,		"o32_fchown"	}, /* 4095 */
+	{ 0,	0,	printargs,		"o32_getpriority"	}, /* 4096 */
+	{ 0,	0,	printargs,		"o32_setpriority"	}, /* 4097 */
+	{ 0,	0,	printargs,		"o32_profil"	}, /* 4098 */
+	{ 0,	0,	printargs,		"o32_statfs"	}, /* 4099 */
+	{ 0,	0,	printargs,		"o32_fstatfs"	}, /* 4100 */
+	{ 0,	0,	printargs,		"o32_ioperm"	}, /* 4101 */
+	{ 0,	0,	printargs,		"o32_socketcall"	}, /* 4102 */
+	{ 0,	0,	printargs,		"o32_syslog"	}, /* 4103 */
+	{ 0,	0,	printargs,		"o32_setitimer"	}, /* 4104 */
+	{ 0,	0,	printargs,		"o32_getitimer"	}, /* 4105 */
+	{ 0,	0,	printargs,		"o32_stat"		}, /* 4106 */
+	{ 0,	0,	printargs,		"o32_lstat"		}, /* 4107 */
+	{ 0,	0,	printargs,		"o32_fstat"		}, /* 4108 */
+	{ 0,	0,	printargs,		"o32_olduname"	}, /* 4109 */
+	{ 0,	0,	printargs,		"o32_iopl"		}, /* 4110 */
+	{ 0,	0,	printargs,		"o32_vhangup"	}, /* 4111 */
+	{ 0,	0,	printargs,		"o32_idle"		}, /* 4112 */
+	{ 0,	0,	printargs,		"o32_vm86"		}, /* 4113 */
+	{ 0,	0,	printargs,		"o32_wait4"		}, /* 4114 */
+	{ 0,	0,	printargs,		"o32_swapoff"	}, /* 4115 */
+	{ 0,	0,	printargs,		"o32_sysinfo"	}, /* 4116 */
+	{ 0,	0,	printargs,		"o32_ipc"		}, /* 4117 */
+	{ 0,	0,	printargs,		"o32_fsync"		}, /* 4118 */
+	{ 0,	0,	printargs,		"o32_sigreturn"	}, /* 4119 */
+	{ 0,	0,	printargs,		"o32_clone"		}, /* 4120 */
+	{ 0,	0,	printargs,		"o32_setdomainname"	}, /* 4121 */
+	{ 0,	0,	printargs,		"o32_uname"		}, /* 4122 */
+	{ 0,	0,	printargs,		"o32_modify_ldt"	}, /* 4123 */
+	{ 0,	0,	printargs,		"o32_adjtimex"	}, /* 4124 */
+	{ 0,	TM,	printargs,		"o32_mprotect"	}, /* 4125 */
+	{ 0,	0,	printargs,		"o32_sigprocmask"	}, /* 4126 */
+	{ 0,	0,	printargs,		"o32_create_module"	}, /* 4127 */
+	{ 0,	0,	printargs,		"o32_init_module"	}, /* 4128 */
+	{ 0,	0,	printargs,		"o32_delete_module"	}, /* 4129 */
+	{ 0,	0,	printargs,		"o32_get_kernel_syms"}, /* 4130 */
+	{ 0,	TF,	printargs,		"o32_quotactl"	}, /* 4131 */
+	{ 0,	0,	printargs,		"o32_getpgid"	}, /* 4132 */
+	{ 0,	0,	printargs,		"o32_fchdir"	}, /* 4133 */
+	{ 0,	0,	printargs,		"o32_bdflush"	}, /* 4134 */
+	{ 0,	0,	printargs,		"o32_sysfs"		}, /* 4135 */
+	{ 0,	0,	printargs,		"o32_personality"	}, /* 4136 */
+	{ 0,	0,	printargs,		"o32_afs_syscall"	}, /* 4137 */
+	{ 0,	0,	printargs,		"o32_setfsuid"	}, /* 4138 */
+	{ 0,	0,	printargs,		"o32_setfsgid"	}, /* 4139 */
+	{ 0,	0,	printargs,		"o32__llseek"	}, /* 4140 */
+	{ 0,	0,	printargs,		"o32_getdents"	}, /* 4141 */
+	{ 0,	0,	printargs,		"o32__newselect"	}, /* 4142 */
+	{ 0,	0,	printargs,		"o32_flock"		}, /* 4143 */
+	{ 0,	TM,	printargs,		"o32_msync"		}, /* 4144 */
+	{ 0,	0,	printargs,		"o32_readv"		}, /* 4145 */
+	{ 0,	0,	printargs,		"o32_writev"	}, /* 4146 */
+	{ 0,	0,	printargs,		"o32_cacheflush"	}, /* 4147 */
+	{ 0,	0,	printargs,		"o32_cachectl"	}, /* 4148 */
+	{ 0,	0,	printargs,		"o32_sysmips"	}, /* 4149 */
+	{ 0,	0,	printargs,		"o32_setup"		}, /* 4150 */
+	{ 0,	0,	printargs,		"o32_getsid"	}, /* 4151 */
+	{ 0,	0,	printargs,		"o32_fdatasync"	}, /* 4152 */
+	{ 0,	0,	printargs,		"o32__sysctl"	}, /* 4153 */
+	{ 0,	TM,	printargs,		"o32_mlock"		}, /* 4154 */
+	{ 0,	TM,	printargs,		"o32_munlock"	}, /* 4155 */
+	{ 0,	TM,	printargs,		"o32_mlockall"	}, /* 4156 */
+	{ 0,	TM,	printargs,		"o32_munlockall"	}, /* 4157 */
+	{ 0,	0,	printargs,		"o32_sched_setparam"}, /* 4158 */
+	{ 0,	0,	printargs,		"o32_sched_getparam"}, /* 4159 */
+	{ 0,	0,	printargs,		"o32_sched_setscheduler"}, /* 4160 */
+	{ 0,	0,	printargs,		"o32_sched_getscheduler"}, /* 4161 */
+	{ 0,	0,	printargs,		"o32_sched_yield"	}, /* 4162 */
+	{ 0,	0,	printargs,		"o32_sched_get_priority_max"}, /* 4163 */
+	{ 0,	0,	printargs,		"o32_sched_get_priority_min"},/* 4164 */
+	{ 0,	0,	printargs,		"o32_sched_rr_get_interval"}, /* 4165 */
+	{ 0,	0,	printargs,		"o32_nanosleep"	}, /* 4166 */
+	{ 0,	TM,	printargs,		"o32_mremap"	}, /* 4167 */
+	{ 0,	0,	printargs,		"o32_accept"	}, /* 4168 */
+	{ 0,	0,	printargs,		"o32_bind"		}, /* 4169 */
+	{ 0,	0,	printargs,		"o32_connect"	}, /* 4170 */
+	{ 0,	0,	printargs,		"o32_getpeername"	}, /* 4171 */
+	{ 0,	0,	printargs,		"o32_getsockname"	}, /* 4172 */
+	{ 0,	0,	printargs,		"o32_getsockopt"	}, /* 4173 */
+	{ 0,	0,	printargs,		"o32_listen"	}, /* 4174 */
+	{ 0,	0,	printargs,		"o32_recv"		}, /* 4175 */
+	{ 0,	0,	printargs,		"o32_recvfrom"	}, /* 4176 */
+	{ 0,	0,	printargs,		"o32_recvmsg"	}, /* 4177 */
+	{ 0,	0,	printargs,		"o32_send"		}, /* 4178 */
+	{ 0,	0,	printargs,		"o32_sendmsg"	}, /* 4179 */
+	{ 0,	0,	printargs,		"o32_sendto"	}, /* 4180 */
+	{ 0,	0,	printargs,		"o32_setsockopt"	}, /* 4181 */
+	{ 0,	0,	printargs,		"o32_shutdown"	}, /* 4182 */
+	{ 0,	0,	printargs,		"o32_socket"	}, /* 4183 */
+	{ 0,	0,	printargs,		"o32_socketpair"	}, /* 4184 */
+	{ 0,	0,	printargs,		"o32_setresuid"	}, /* 4185 */
+	{ 0,	0,	printargs,		"o32_getresuid"	}, /* 4186 */
+	{ 0,	0,	printargs,		"o32_query_module"	}, /* 4187 */
+	{ 0,	0,	printargs,		"o32_poll"		}, /* 4188 */
+	{ 0,	0,	printargs,		"o32_nfsservctl"	}, /* 4189 */
+	{ 0,	0,	printargs,		"o32_setresgid"	}, /* 4190 */
+	{ 0,	0,	printargs,		"o32_getresgid"	}, /* 4191 */
+	{ 0,	0,	printargs,		"o32_prctl"		}, /* 4192 */
+	{ 0,	0,	printargs,		"o32_rt_sigreturn"	}, /* 4193 */
+	{ 0,	0,	printargs,		"o32_rt_sigaction"	}, /* 4194 */
+	{ 0,	0,	printargs,		"o32_rt_sigprocmask"}, /* 4195 */
+	{ 0,	0,	printargs,		"o32_rt_sigpending"	}, /* 4196 */
+	{ 0,	0,	printargs,		"o32_rt_sigtimedwait"},/* 4197 */
+	{ 0,	0,	printargs,		"o32_rt_sigqueueinfo"},/* 4198 */
+	{ 0,	0,	printargs,		"o32_rt_siguspend"	}, /* 4199 */
+	{ 0,	0,	printargs,		"o32_pread64"	}, /* 4200 */
+	{ 0,	0,	printargs,		"o32_pwrite64"	}, /* 4201 */
+	{ 0,	0,	printargs,		"o32_chown"		}, /* 4202 */
+	{ 0,	0,	printargs,		"o32_getcwd"	}, /* 4203 */
+	{ 0,	0,	printargs,		"o32_capget"	}, /* 4204 */
+	{ 0,	0,	printargs,		"o32_capset"	}, /* 4205 */
+	{ 0,	0,	printargs,		"o32_sigaltstack"	}, /* 4206 */
+	{ 0,	0,	printargs,		"o32_sendfile"	}, /* 4207 */
+	{ 5,	TN,	printargs,		"o32_getpmsg"	}, /* 4208 */
+	{ 5,	TN,	printargs,		"o32_putpmsg"	}, /* 4209 */
+	{ 6,	TD|TM,	printargs,		"o32_mmap2"	}, /* 4210 */
+	{ 0,	0,	printargs,		"o32_truncate64"	}, /* 4211 */
+	{ 0,	0,	printargs,		"o32_ftruncate64"	}, /* 4212 */
+	{ 0,	0,	printargs,		"o32_stat64"	}, /* 4213 */
+	{ 0,	0,	printargs,		"o32_lstat64"	}, /* 4214 */
+	{ 0,	0,	printargs,		"o32_fstat64"	}, /* 4215 */
+	{ 0,	0,	printargs,		"o32_pivot_root"	}, /* 4216 */
+	{ 0,	TM,	printargs,		"o32_mincore"	}, /* 4217 */
+	{ 0,	TM,	printargs,		"o32_madvise"	}, /* 4218 */
+	{ 0,	0,	printargs,		"o32_getdents64"	}, /* 4219 */
+	{ 0,	0,	printargs,		"o32_fcntl64"	}, /* 4220 */
+	{ 0,	0,	NULL,			NULL		}, /* 4221 */
+	{ 0,	0,	printargs,		"o32_gettid"	}, /* 4222 */
+	{ 5,	TD,	printargs,		"o32_readahead"	}, /* 4223 */
+	{ 5,	TF,	printargs,		"o32_setxattr"	}, /* 4224 */
+	{ 5,	TF,	printargs,		"o32_lsetxattr"	}, /* 4225 */
+	{ 5,	TD,	printargs,		"o32_fsetxattr"	}, /* 4226 */
+	{ 4,	TF,	printargs,		"o32_getxattr"	}, /* 4227 */
+	{ 4,	TF,	printargs,		"o32_lgetxattr"	}, /* 4228 */
+	{ 4,	TD,	printargs,		"o32_fgetxattr"	}, /* 4229 */
+	{ 3,	TF,	printargs,		"o32_listxattr"	}, /* 4230 */
+	{ 3,	TF,	printargs,		"o32_llistxattr"	}, /* 4231 */
+	{ 3,	TD,	printargs,		"o32_flistxattr"	}, /* 4232 */
+	{ 2,	TF,	printargs,		"o32_removexattr"	}, /* 4233 */
+	{ 2,	TF,	printargs,		"o32_lremovexattr"	}, /* 4234 */
+	{ 2,	TD,	printargs,		"o32_fremovexattr"	}, /* 4235 */
+	{ 2,	TS,	printargs,		"o32_tkill"		}, /* 4236 */
+	{ 5,	TD|TN,	printargs,		"o32_sendfile64"	}, /* 4237 */
+	{ 6,	0,	printargs,		"o32_futex"		}, /* 4238 */
+	{ 3,	0,	printargs,		"o32_sched_setaffinity"}, /* 4239 */
+	{ 3,	0,	printargs,		"o32_sched_getaffinity"}, /* 4240 */
+	{ 2,	0,	printargs,		"o32_io_setup"	}, /* 4241 */
+	{ 1,	0,	printargs,		"o32_io_destroy"	}, /* 4242 */
+	{ 5,	0,	printargs,		"o32_io_getevents"	}, /* 4243 */
+	{ 3,	0,	printargs,		"o32_io_submit"	}, /* 4244 */
+	{ 3,	0,	printargs,		"o32_io_cancel"	}, /* 4245 */
+	{ 1,	TP,	printargs,		"o32_exit_group"	}, /* 4246 */
+	{ 3,	0,	printargs,		"o32_lookup_dcookie"}, /* 4247 */
+	{ 1,	TD,	printargs,		"o32_epoll_create"	}, /* 4248 */
+	{ 4,	TD,	printargs,		"o32_epoll_ctl"	}, /* 4249 */
+	{ 4,	TD,	printargs,		"o32_epoll_wait"	}, /* 4250 */
+	{ 5,	TM,	printargs,		"o32_remap_file_pages"}, /* 4251 */
+	{ 1,	0,	printargs,		"o32_set_tid_address"}, /* 4252 */
+	{ 0,	0,	printargs,		"o32_restart_syscall"}, /* 4253 */
+	{ MA,	0,	printargs,		"o32_fadvise64_64"	}, /* 4254 */
+	{ 3,	TF,	printargs,		"o32_statfs64"	}, /* 4255 */
+	{ 2,	TD,	printargs,		"o32_fstatfs64"	}, /* 4256 */
+	{ 3,	0,	printargs,		"o32_timer_create"	}, /* 4257 */
+	{ 4,	0,	printargs,		"o32_timer_settime"	}, /* 4258 */
+	{ 2,	0,	printargs,		"o32_timer_gettime"	}, /* 4259 */
+	{ 1,	0,	printargs,		"o32_timer_getoverrun"}, /* 4260 */
+	{ 1,	0,	printargs,		"o32_timer_delete"	}, /* 4261 */
+	{ 2,	0,	printargs,		"o32_clock_settime"	}, /* 4262 */
+	{ 2,	0,	printargs,		"o32_clock_gettime"	}, /* 4263 */
+	{ 2,	0,	printargs,		"o32_clock_getres"	}, /* 4264 */
+	{ 4,	0,	printargs,		"o32_clock_nanosleep"}, /* 4265 */
+	{ 3,	TS,	printargs,		"o32_tgkill"	}, /* 4266 */
+	{ 2,	TF,	printargs,		"o32_utimes"	}, /* 4267 */
+	{ 4,	TM,	printargs,		"o32_mbind"		}, /* 4268 */
+	{ 5,	TM,	printargs,		"o32_get_mempolicy"	}, /* 4269 */
+	{ 3,	TM,	printargs,		"o32_set_mempolicy"	}, /* 4270 */
+	{ 4,	0,	printargs,		"o32_mq_open"	}, /* 4271 */
+	{ 1,	0,	printargs,		"o32_mq_unlink"	}, /* 4272 */
+	{ 5,	0,	printargs,		"o32_mq_timedsend"	}, /* 4273 */
+	{ 5,	0,	printargs,		"o32_mq_timedreceive"}, /* 4274 */
+	{ 2,	0,	printargs,		"o32_mq_notify"	}, /* 4275 */
+	{ 3,	0,	printargs,		"o32_mq_getsetattr"	}, /* 4276 */
+	{ 5,	0,	printargs,		"o32_vserver"	}, /* 4277 */
+	{ 5,	TP,	printargs,		"o32_waitid"	}, /* 4278 */
+	{ 0,	0,	printargs,		"o32_SYS_4279"	}, /* 4279 */
+	{ 5,	0,	printargs,		"o32_add_key"	}, /* 4280 */
+	{ 4,	0,	printargs,		"o32_request_key"	}, /* 4281 */
+	{ 5,	0,	printargs,		"o32_keyctl"	}, /* 4282 */
+	{ 1,	0,	printargs,		"o32_set_thread_area" }, /* 4283 */
+	{ 0,	TD,	printargs,		"o32_inotify_init"	}, /* 4284 */
+	{ 3,	TD,	printargs,		"o32_inotify_add_watch" }, /* 4285 */
+	{ 2,	TD,	printargs,		"o32_inotify_rm_watch" }, /* 4286 */
+	{ 4,	TM,	printargs,		"o32_migrate_pages"	}, /* 4287 */
+	{ 4,	TD|TF,	printargs,		"o32_openat"	}, /* 4288 */
+	{ 3,	TD|TF,	printargs,		"o32_mkdirat"	}, /* 4289 */
+	{ 4,	TD|TF,	printargs,		"o32_mknodat"	}, /* 4290 */
+	{ 5,	TD|TF,	printargs,		"o32_fchownat"	}, /* 4291 */
+	{ 3,	TD|TF,	printargs,		"o32_futimesat"	}, /* 4292 */
+	{ 4,	TD|TF,	printargs,		"o32_fstatat64"	}, /* 4293 */
+	{ 3,	TD|TF,	printargs,		"o32_unlinkat"	}, /* 4294 */
+	{ 4,	TD|TF,	printargs,		"o32_renameat"	}, /* 4295 */
+	{ 5,	TD|TF,	printargs,		"o32_linkat"	}, /* 4296 */
+	{ 3,	TD|TF,	printargs,		"o32_symlinkat"	}, /* 4297 */
+	{ 4,	TD|TF,	printargs,		"o32_readlinkat"	}, /* 4298 */
+	{ 3,	TD|TF,	printargs,		"o32_fchmodat"	}, /* 4299 */
+	{ 3,	TD|TF,	printargs,		"o32_faccessat"	}, /* 4300 */
+	{ 6,	TD,	printargs,		"o32_pselect6"	}, /* 4301 */
+	{ 5,	TD,	printargs,		"o32_ppoll"		}, /* 4302 */
+	{ 1,	TP,	printargs,		"o32_unshare"	}, /* 4303 */
+	{ 6,	TD,	printargs,		"o32_splice"	}, /* 4304 */
+	{ 4,	TD,	printargs,		"o32_sync_file_range" }, /* 4305 */
+	{ 4,	TD,	printargs,		"o32_tee"	}, /* 4306 */
+	{ 4,	TD,	printargs,		"o32_vmsplice"	}, /* 4307 */
+	{ 6,	TM,	printargs,		"o32_move_pages"	}, /* 4308 */
+	{ 2,	0,	printargs,		"o32_set_robust_list" }, /* 4309 */
+	{ 3,	0,	printargs,		"o32_get_robust_list" }, /* 4310 */
+	{ 4,	0,	printargs,		"o32_kexec_load" }, /* 4311 */
+	{ 3,	0,	printargs,		"o32_getcpu"	}, /* 4312 */
+	{ 5,	TD,	printargs,		"o32_epoll_pwait"	}, /* 4313 */
+	{ 3,	0,	printargs,		"o32_ioprio_set" }, /* 4314 */
+	{ 2,	0,	printargs,		"o32_ioprio_get" }, /* 4315 */
+	{ 4,	0,	printargs,		"o32_utimensat"	}, /* 4316 */
+	{ 3,	TD|TS,	printargs,		"o32_signalfd"	}, /* 4317 */
+	{ 4,	TD,	printargs,		"o32_timerfd"	}, /* 4318 */
+	{ 1,	TD,	printargs,		"o32_eventfd"	}, /* 4319 */
+	{ 6,	TD,	printargs,		"o32_fallocate"	}, /* 4320 */
+	{ 2,	TD,	printargs,		"o32_timerfd_create" }, /* 4321 */
+	{ 2,	TD,	printargs,		"o32_timerfd_gettime" }, /* 4322 */
+	{ 4,	TD,	printargs,		"o32_timerfd_settime" }, /* 4323 */
+	{ 4,	TD|TS,	printargs,		"o32_signalfd4"	}, /* 4324 */
+	{ 2,	TD,	printargs,		"o32_eventfd2"	}, /* 4325 */
+	{ 1,	TD,	printargs,		"o32_epoll_create1" }, /* 4326 */
+	{ 3,	TD,	printargs,		"o32_dup3"	}, /* 4327 */
+	{ 2,	TD,	printargs,		"o32_pipe2"	}, /* 4328 */
+	{ 1,	TD,	printargs,		"o32_inotify_init1" }, /* 4329 */
+	{ 6,	TD,	printargs,		"o32_preadv"	}, /* 4330 */
+	{ 6,	TD,	printargs,		"o32_pwritev"	}, /* 4331 */
+	{ 4,	TP|TS,	printargs,		"o32_rt_tgsigqueueinfo" }, /* 4332 */
+	{ 5,	TD,	printargs,		"o32_perf_event_open" }, /* 4333 */
+	{ 4,	TN,	printargs,		"o32_accept4"	}, /* 4334 */
+	{ 5,	TN,	printargs,		"o32_recvmmsg"	}, /* 4335 */
+	{ 2,	TD,	printargs,		"o32_fanotify_init" }, /* 4336 */
+	{ 5,	TD|TF,	printargs,		"o32_fanotify_mark" }, /* 4337 */
+	{ 4,	0,	printargs,		"o32_prlimit64"	}, /* 4338 */
+	{ 5,	TD|TF,	printargs,		"o32_name_to_handle_at"}, /* 4339 */
+	{ 3,	TD,	printargs,		"o32_open_by_handle_at"}, /* 4340 */
+	{ 2,	0,	printargs,		"o32_clock_adjtime" }, /* 4341 */
+	{ 1,	TD,	printargs,		"o32_syncfs"	}, /* 4342 */
+	{ 4,	TN,	printargs,		"o32_sendmmsg"	}, /* 4343 */
+	{ 2,	TD,	printargs,		"o32_setns"	}, /* 4344 */
+	{ 6,	0,	printargs,		"o32_process_vm_readv"	}, /* 4345 */
+	{ 6,	0,	printargs,		"o32_process_vm_writev"	}, /* 4346 */
+	{ 5,	0,	printargs,		"o32_kcmp"		}, /* 4347 */
+	{ 3,	TD,	printargs,		"o32_finit_module"	}, /* 4348 */
+#endif
+	[4349 ... 4999] = { }, /* 4999 */ /* end of Linux o32 */
diff --git a/linux/mips/syscallent.h b/linux/mips/syscallent.h
index ebb93f9..61430d2 100644
--- a/linux/mips/syscallent.h
+++ b/linux/mips/syscallent.h
@@ -1,7980 +1,5 @@
 #include "../dummy.h"
-
-	{ 0,	0,	printargs,		"svr4_syscall"	}, /*  000 */
-	{ 0,	0,	printargs,		"svr4_exit"	}, /*  001 */
-	{ 0,	0,	printargs,		"svr4_fork"	}, /*  002 */
-	{ 0,	0,	printargs,		"svr4_read"	}, /*  003 */
-	{ 0,	0,	printargs,		"svr4_write"	}, /*  004 */
-	{ 0,	0,	printargs,		"svr4_open"	}, /*  005 */
-	{ 0,	0,	printargs,		"svr4_close"	}, /*  006 */
-	{ 0,	0,	printargs,		"svr4_wait"	}, /*  007 */
-	{ 0,	0,	printargs,		"svr4_creat"	}, /*  008 */
-	{ 0,	0,	printargs,		"svr4_link"	}, /*  009 */
-	{ 0,	0,	printargs,		"svr4_unlink"	}, /*  010 */
-	{ 0,	0,	printargs,		"svr4_exec"	}, /*  011 */
-	{ 0,	0,	printargs,		"svr4_chdir"	}, /*  012 */
-	{ 0,	0,	printargs,		"svr4_gtime"	}, /*  013 */
-	{ 0,	0,	printargs,		"svr4_mknod"	}, /*  014 */
-	{ 0,	0,	printargs,		"svr4_chmod"	}, /*  015 */
-	{ 0,	0,	printargs,		"svr4_chown"	}, /*  016 */
-	{ 0,	0,	printargs,		"svr4_sbreak"	}, /*  017 */
-	{ 0,	0,	printargs,		"svr4_stat"	}, /*  018 */
-	{ 0,	0,	printargs,		"svr4_lseek"	}, /*  019 */
-	{ 0,	0,	printargs,		"svr4_getpid"	}, /*  020 */
-	{ 0,	0,	printargs,		"svr4_mount"	}, /*  021 */
-	{ 0,	0,	printargs,		"svr4_umount"	}, /*  022 */
-	{ 0,	0,	printargs,		"svr4_setuid"	}, /*  023 */
-	{ 0,	0,	printargs,		"svr4_getuid"	}, /*  024 */
-	{ 0,	0,	printargs,		"svr4_stime"	}, /*  025 */
-	{ 0,	0,	printargs,		"svr4_ptrace"	}, /*  026 */
-	{ 0,	0,	printargs,		"svr4_alarm"	}, /*  027 */
-	{ 0,	0,	printargs,		"svr4_fstat"	}, /*  028 */
-	{ 0,	0,	printargs,		"svr4_pause"	}, /*  029 */
-	{ 0,	0,	printargs,		"svr4_utime"	}, /*  030 */
-	{ 0,	0,	printargs,		"svr4_stty"	}, /*  031 */
-	{ 0,	0,	printargs,		"svr4_gtty"	}, /*  032 */
-	{ 0,	0,	printargs,		"svr4_access"	}, /*  033 */
-	{ 0,	0,	printargs,		"svr4_nice"	}, /*  034 */
-	{ 0,	0,	printargs,		"svr4_statfs"	}, /*  035 */
-	{ 0,	0,	printargs,		"svr4_sync"	}, /*  036 */
-	{ 0,	0,	printargs,		"svr4_kill"	}, /*  037 */
-	{ 0,	0,	printargs,		"svr4_fstatfs"	}, /*  038 */
-	{ 0,	0,	printargs,		"svr4_setpgrp"	}, /*  039 */
-	{ 0,	0,	printargs,		"svr4_cxenix"	}, /*  040 */
-	{ 0,	0,	printargs,		"svr4_dup"	}, /*  041 */
-	{ 0,	0,	printargs,		"svr4_pipe"	}, /*  042 */
-	{ 0,	0,	printargs,		"svr4_times"	}, /*  043 */
-	{ 0,	0,	printargs,		"svr4_profil"	}, /*  044 */
-	{ 0,	0,	printargs,		"svr4_plock"	}, /*  045 */
-	{ 0,	0,	printargs,		"svr4_setgid"	}, /*  046 */
-	{ 0,	0,	printargs,		"svr4_getgid"	}, /*  047 */
-	{ 0,	0,	printargs,		"svr4_sig"	}, /*  048 */
-	{ 0,	0,	printargs,		"svr4_msgsys"	}, /*  049 */
-	{ 0,	0,	printargs,		"svr4_sysmips"	}, /*  050 */
-	{ 0,	0,	printargs,		"svr4_sysacct"	}, /*  051 */
-	{ 0,	0,	printargs,		"svr4_shmsys"	}, /*  052 */
-	{ 0,	0,	printargs,		"svr4_semsys"	}, /*  053 */
-	{ 0,	0,	printargs,		"svr4_ioctl"	}, /*  054 */
-	{ 0,	0,	printargs,		"svr4_uadmin"	}, /*  055 */
-	{ 0,	0,	printargs,		"svr4_exch"	}, /*  056 */
-	{ 0,	0,	printargs,		"svr4_utssys"	}, /*  057 */
-	{ 0,	0,	printargs,		"svr4_fsync"	}, /*  058 */
-	{ 0,	0,	printargs,		"svr4_exece"	}, /*  059 */
-	{ 0,	0,	printargs,		"svr4_umask"	}, /*  060 */
-	{ 0,	0,	printargs,		"svr4_chroot"	}, /*  061 */
-	{ 0,	0,	printargs,		"svr4_fcntl"	}, /*  062 */
-	{ 0,	0,	printargs,		"svr4_ulimit"	}, /*  063 */
-	{ 0,	0,	NULL,			NULL	,	}, /*  064 */
-	{ 0,	0,	NULL,			NULL	,	}, /*  065 */
-	{ 0,	0,	NULL,			NULL	,	}, /*  066 */
-	{ 0,	0,	NULL,			NULL	,	}, /*  067 */
-	{ 0,	0,	NULL,			NULL	,	}, /*  068 */
-	{ 0,	0,	NULL,			NULL	,	}, /*  069 */
-	{ 0,	0,	printargs,		"svr4_advfs"	}, /*  070 */
-	{ 0,	0,	printargs,		"svr4_unadvfs"	}, /*  071 */
-	{ 0,	0,	NULL,			NULL	,	}, /*  072 */
-	{ 0,	0,	NULL,			NULL	,	}, /*  073 */
-	{ 0,	0,	printargs,		"svr4_rfstart"	}, /*  074 */
-	{ 0,	0,	NULL,			NULL	,	}, /*  075 */
-	{ 0,	0,	printargs,		"svr4_rdebug"	}, /*  076 */
-	{ 0,	0,	printargs,		"svr4_rfstop"	}, /*  077 */
-	{ 0,	0,	printargs,		"svr4_rfsys"	}, /*  078 */
-	{ 0,	0,	printargs,		"svr4_rmdir"	}, /*  079 */
-	{ 0,	0,	printargs,		"svr4_mkdir"	}, /*  080 */
-	{ 0,	0,	printargs,		"svr4_getdents"	}, /*  081 */
-	{ 0,	0,	printargs,		"svr4_libattach"	}, /*  082 */
-	{ 0,	0,	printargs,		"svr4_libdetach"	}, /*  083 */
-	{ 0,	0,	printargs,		"svr4_sysfs"	}, /*  084 */
-	{ 0,	0,	printargs,		"svr4_getmsg"	}, /*  085 */
-	{ 0,	0,	printargs,		"svr4_putmsg"	}, /*  086 */
-	{ 0,	0,	printargs,		"svr4_poll"	}, /*  087 */
-	{ 0,	0,	printargs,		"svr4_lstat"	}, /*  088 */
-	{ 0,	0,	printargs,		"svr4_symlink"	}, /*  089 */
-	{ 0,	0,	printargs,		"svr4_readlink"	}, /*  090 */
-	{ 0,	0,	printargs,		"svr4_setgroups"	}, /*  091 */
-	{ 0,	0,	printargs,		"svr4_getgroups"	}, /*  092 */
-	{ 0,	0,	printargs,		"svr4_fchmod"	}, /*  093 */
-	{ 0,	0,	printargs,		"svr4_fchown"	}, /*  094 */
-	{ 0,	0,	printargs,		"svr4_sigprocmask"	}, /*  095 */
-	{ 0,	0,	printargs,		"svr4_sigsuspend"	}, /*  096 */
-	{ 0,	0,	printargs,		"svr4_sigaltstack"	}, /*  097 */
-	{ 0,	0,	printargs,		"svr4_sigaction"	}, /*  098 */
-	{ 0,	0,	printargs,		"svr4_sigpending"	}, /*  099 */
-	{ 0,	0,	printargs,		"svr4_setcontext"	}, /*  0100 */
-	{ 0,	0,	printargs,		"svr4_evsys"	}, /*  0101 */
-	{ 0,	0,	printargs,		"svr4_evtrapret"	}, /*  0102 */
-	{ 0,	0,	printargs,		"svr4_statvfs"	}, /*  0103 */
-	{ 0,	0,	printargs,		"svr4_fstatvfs"	}, /*  0104 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 105 */
-	{ 0,	0,	printargs,		"svr4_nfssys"	}, /*  0106 */
-	{ 0,	0,	printargs,		"svr4_waitid"	}, /*  0107 */
-	{ 0,	0,	printargs,		"svr4_sigsendset"	}, /*  0108 */
-	{ 0,	0,	printargs,		"svr4_hrtsys"	}, /*  0109 */
-	{ 0,	0,	printargs,		"svr4_acancel"	}, /*  0110 */
-	{ 0,	0,	printargs,		"svr4_async"	}, /*  0111 */
-	{ 0,	0,	printargs,		"svr4_priocntlset"	}, /*  0112 */
-	{ 0,	0,	printargs,		"svr4_pathconf"	}, /*  0113 */
-	{ 0,	0,	printargs,		"svr4_mincore"	}, /*  0114 */
-	{ 0,	0,	printargs,		"svr4_mmap"	}, /*  0115 */
-	{ 0,	0,	printargs,		"svr4_mprotect"	}, /*  0116 */
-	{ 0,	0,	printargs,		"svr4_munmap"	}, /*  0117 */
-	{ 0,	0,	printargs,		"svr4_fpathconf"	}, /*  0118 */
-	{ 0,	0,	printargs,		"svr4_vfork"	}, /*  0119 */
-	{ 0,	0,	printargs,		"svr4_fchdir"	}, /*  0120 */
-	{ 0,	0,	printargs,		"svr4_readv"	}, /*  0121 */
-	{ 0,	0,	printargs,		"svr4_writev"	}, /*  0122 */
-	{ 0,	0,	printargs,		"svr4_xstat"	}, /*  0123 */
-	{ 0,	0,	printargs,		"svr4_lxstat"	}, /*  0124 */
-	{ 0,	0,	printargs,		"svr4_fxstat"	}, /*  0125 */
-	{ 0,	0,	printargs,		"svr4_xmknod"	}, /*  0126 */
-	{ 0,	0,	printargs,		"svr4_clocal"	}, /*  0127 */
-	{ 0,	0,	printargs,		"svr4_setrlimit"	}, /*  0128 */
-	{ 0,	0,	printargs,		"svr4_getrlimit"	}, /*  0129 */
-	{ 0,	0,	printargs,		"svr4_lchown"	}, /*  0130 */
-	{ 0,	0,	printargs,		"svr4_memcntl"	}, /*  0131 */
-	{ 0,	0,	printargs,		"svr4_getpmsg"	}, /*  0132 */
-	{ 0,	0,	printargs,		"svr4_putpmsg"	}, /*  0133 */
-	{ 0,	0,	printargs,		"svr4_rename"	}, /*  0134 */
-	{ 0,	0,	printargs,		"svr4_nuname"	}, /*  0135 */
-	{ 0,	0,	printargs,		"svr4_setegid"	}, /*  0136 */
-	{ 0,	0,	printargs,		"svr4_sysconf"	}, /*  0137 */
-	{ 0,	0,	printargs,		"svr4_adjtime"	}, /*  0138 */
-	{ 0,	0,	printargs,		"svr4_sysinfo"	}, /*  0139 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 140 */
-	{ 0,	0,	printargs,		"svr4_seteuid"	}, /*  0141 */
-	{ 0,	0,	printargs,		"svr4_PYRAMID_statis"	}, /*  0142 */
-	{ 0,	0,	printargs,		"svr4_PYRAMID_tuning"	}, /*  0143 */
-	{ 0,	0,	printargs,		"svr4_PYRAMID_forcerr"	}, /*  0144 */
-	{ 0,	0,	printargs,		"svr4_PYRAMID_mpcntl"	}, /*  0145 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 146 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 147 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 148 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 149 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 150 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 151 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 152 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 153 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 154 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 155 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 156 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 157 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 158 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 159 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 160 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 161 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 162 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 163 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 164 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 165 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 166 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 167 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 168 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 169 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 170 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 171 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 172 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 173 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 174 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 175 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 176 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 177 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 178 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 179 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 180 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 181 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 182 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 183 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 184 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 185 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 186 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 187 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 188 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 189 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 190 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 191 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 192 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 193 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 194 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 195 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 196 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 197 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 198 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 199 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 200 */
-	{ 0,	0,	printargs,		"svr4_aread"	}, /*  0201 */
-	{ 0,	0,	printargs,		"svr4_awrite"	}, /*  0202 */
-	{ 0,	0,	printargs,		"svr4_listio"	}, /*  0203 */
-	{ 0,	0,	printargs,		"svr4_mips_acancel"	}, /*  0204 */
-	{ 0,	0,	printargs,		"svr4_astatus"	}, /*  0205 */
-	{ 0,	0,	printargs,		"svr4_await"	}, /*  0206 */
-	{ 0,	0,	printargs,		"svr4_areadv"	}, /*  0207 */
-	{ 0,	0,	printargs,		"svr4_awritev"	}, /*  0208 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 209 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 210 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 211 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 212 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 213 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 214 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 215 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 216 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 217 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 218 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 219 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 220 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 221 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 222 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 223 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 224 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 225 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 226 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 227 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 228 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 229 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 230 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 231 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 232 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 233 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 234 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 235 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 236 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 237 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 238 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 239 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 240 */
-	{ 0,	0,	NULL,			NULL		}, /*  241 */
-	{ 0,	0,	NULL,			NULL		}, /*  242 */
-	{ 0,	0,	NULL,			NULL		}, /*  243 */
-	{ 0,	0,	NULL,			NULL		}, /*  244 */
-	{ 0,	0,	NULL,			NULL		}, /*  245 */
-	{ 0,	0,	NULL,			NULL		}, /*  246 */
-	{ 0,	0,	NULL,			NULL		}, /*  247 */
-	{ 0,	0,	NULL,			NULL		}, /*  248 */
-	{ 0,	0,	NULL,			NULL		}, /*  249 */
-	{ 0,	0,	NULL,			NULL		}, /*  250 */
-	{ 0,	0,	NULL,			NULL		}, /*  251 */
-	{ 0,	0,	NULL,			NULL		}, /*  252 */
-	{ 0,	0,	NULL,			NULL		}, /*  253 */
-	{ 0,	0,	NULL,			NULL		}, /*  254 */
-	{ 0,	0,	NULL,			NULL		}, /*  255 */
-	{ 0,	0,	NULL,			NULL		}, /*  256 */
-	{ 0,	0,	NULL,			NULL		}, /*  257 */
-	{ 0,	0,	NULL,			NULL		}, /*  258 */
-	{ 0,	0,	NULL,			NULL		}, /*  259 */
-	{ 0,	0,	NULL,			NULL		}, /*  260 */
-	{ 0,	0,	NULL,			NULL		}, /*  261 */
-	{ 0,	0,	NULL,			NULL		}, /*  262 */
-	{ 0,	0,	NULL,			NULL		}, /*  263 */
-	{ 0,	0,	NULL,			NULL		}, /*  264 */
-	{ 0,	0,	NULL,			NULL		}, /*  265 */
-	{ 0,	0,	NULL,			NULL		}, /*  266 */
-	{ 0,	0,	NULL,			NULL		}, /*  267 */
-	{ 0,	0,	NULL,			NULL		}, /*  268 */
-	{ 0,	0,	NULL,			NULL		}, /*  269 */
-	{ 0,	0,	NULL,			NULL		}, /*  270 */
-	{ 0,	0,	NULL,			NULL		}, /*  271 */
-	{ 0,	0,	NULL,			NULL		}, /*  272 */
-	{ 0,	0,	NULL,			NULL		}, /*  273 */
-	{ 0,	0,	NULL,			NULL		}, /*  274 */
-	{ 0,	0,	NULL,			NULL		}, /*  275 */
-	{ 0,	0,	NULL,			NULL		}, /*  276 */
-	{ 0,	0,	NULL,			NULL		}, /*  277 */
-	{ 0,	0,	NULL,			NULL		}, /*  278 */
-	{ 0,	0,	NULL,			NULL		}, /*  279 */
-	{ 0,	0,	NULL,			NULL		}, /*  280 */
-	{ 0,	0,	NULL,			NULL		}, /*  281 */
-	{ 0,	0,	NULL,			NULL		}, /*  282 */
-	{ 0,	0,	NULL,			NULL		}, /*  283 */
-	{ 0,	0,	NULL,			NULL		}, /*  284 */
-	{ 0,	0,	NULL,			NULL		}, /*  285 */
-	{ 0,	0,	NULL,			NULL		}, /*  286 */
-	{ 0,	0,	NULL,			NULL		}, /*  287 */
-	{ 0,	0,	NULL,			NULL		}, /*  288 */
-	{ 0,	0,	NULL,			NULL		}, /*  289 */
-	{ 0,	0,	NULL,			NULL		}, /*  290 */
-	{ 0,	0,	NULL,			NULL		}, /*  291 */
-	{ 0,	0,	NULL,			NULL		}, /*  292 */
-	{ 0,	0,	NULL,			NULL		}, /*  293 */
-	{ 0,	0,	NULL,			NULL		}, /*  294 */
-	{ 0,	0,	NULL,			NULL		}, /*  295 */
-	{ 0,	0,	NULL,			NULL		}, /*  296 */
-	{ 0,	0,	NULL,			NULL		}, /*  297 */
-	{ 0,	0,	NULL,			NULL		}, /*  298 */
-	{ 0,	0,	NULL,			NULL		}, /*  299 */
-	{ 0,	0,	NULL,			NULL		}, /*  300 */
-	{ 0,	0,	NULL,			NULL		}, /*  301 */
-	{ 0,	0,	NULL,			NULL		}, /*  302 */
-	{ 0,	0,	NULL,			NULL		}, /*  303 */
-	{ 0,	0,	NULL,			NULL		}, /*  304 */
-	{ 0,	0,	NULL,			NULL		}, /*  305 */
-	{ 0,	0,	NULL,			NULL		}, /*  306 */
-	{ 0,	0,	NULL,			NULL		}, /*  307 */
-	{ 0,	0,	NULL,			NULL		}, /*  308 */
-	{ 0,	0,	NULL,			NULL		}, /*  309 */
-	{ 0,	0,	NULL,			NULL		}, /*  310 */
-	{ 0,	0,	NULL,			NULL		}, /*  311 */
-	{ 0,	0,	NULL,			NULL		}, /*  312 */
-	{ 0,	0,	NULL,			NULL		}, /*  313 */
-	{ 0,	0,	NULL,			NULL		}, /*  314 */
-	{ 0,	0,	NULL,			NULL		}, /*  315 */
-	{ 0,	0,	NULL,			NULL		}, /*  316 */
-	{ 0,	0,	NULL,			NULL		}, /*  317 */
-	{ 0,	0,	NULL,			NULL		}, /*  318 */
-	{ 0,	0,	NULL,			NULL		}, /*  319 */
-	{ 0,	0,	NULL,			NULL		}, /*  320 */
-	{ 0,	0,	NULL,			NULL		}, /*  321 */
-	{ 0,	0,	NULL,			NULL		}, /*  322 */
-	{ 0,	0,	NULL,			NULL		}, /*  323 */
-	{ 0,	0,	NULL,			NULL		}, /*  324 */
-	{ 0,	0,	NULL,			NULL		}, /*  325 */
-	{ 0,	0,	NULL,			NULL		}, /*  326 */
-	{ 0,	0,	NULL,			NULL		}, /*  327 */
-	{ 0,	0,	NULL,			NULL		}, /*  328 */
-	{ 0,	0,	NULL,			NULL		}, /*  329 */
-	{ 0,	0,	NULL,			NULL		}, /*  330 */
-	{ 0,	0,	NULL,			NULL		}, /*  331 */
-	{ 0,	0,	NULL,			NULL		}, /*  332 */
-	{ 0,	0,	NULL,			NULL		}, /*  333 */
-	{ 0,	0,	NULL,			NULL		}, /*  334 */
-	{ 0,	0,	NULL,			NULL		}, /*  335 */
-	{ 0,	0,	NULL,			NULL		}, /*  336 */
-	{ 0,	0,	NULL,			NULL		}, /*  337 */
-	{ 0,	0,	NULL,			NULL		}, /*  338 */
-	{ 0,	0,	NULL,			NULL		}, /*  339 */
-	{ 0,	0,	NULL,			NULL		}, /*  340 */
-	{ 0,	0,	NULL,			NULL		}, /*  341 */
-	{ 0,	0,	NULL,			NULL		}, /*  342 */
-	{ 0,	0,	NULL,			NULL		}, /*  343 */
-	{ 0,	0,	NULL,			NULL		}, /*  344 */
-	{ 0,	0,	NULL,			NULL		}, /*  345 */
-	{ 0,	0,	NULL,			NULL		}, /*  346 */
-	{ 0,	0,	NULL,			NULL		}, /*  347 */
-	{ 0,	0,	NULL,			NULL		}, /*  348 */
-	{ 0,	0,	NULL,			NULL		}, /*  349 */
-	{ 0,	0,	NULL,			NULL		}, /*  350 */
-	{ 0,	0,	NULL,			NULL		}, /*  351 */
-	{ 0,	0,	NULL,			NULL		}, /*  352 */
-	{ 0,	0,	NULL,			NULL		}, /*  353 */
-	{ 0,	0,	NULL,			NULL		}, /*  354 */
-	{ 0,	0,	NULL,			NULL		}, /*  355 */
-	{ 0,	0,	NULL,			NULL		}, /*  356 */
-	{ 0,	0,	NULL,			NULL		}, /*  357 */
-	{ 0,	0,	NULL,			NULL		}, /*  358 */
-	{ 0,	0,	NULL,			NULL		}, /*  359 */
-	{ 0,	0,	NULL,			NULL		}, /*  360 */
-	{ 0,	0,	NULL,			NULL		}, /*  361 */
-	{ 0,	0,	NULL,			NULL		}, /*  362 */
-	{ 0,	0,	NULL,			NULL		}, /*  363 */
-	{ 0,	0,	NULL,			NULL		}, /*  364 */
-	{ 0,	0,	NULL,			NULL		}, /*  365 */
-	{ 0,	0,	NULL,			NULL		}, /*  366 */
-	{ 0,	0,	NULL,			NULL		}, /*  367 */
-	{ 0,	0,	NULL,			NULL		}, /*  368 */
-	{ 0,	0,	NULL,			NULL		}, /*  369 */
-	{ 0,	0,	NULL,			NULL		}, /*  370 */
-	{ 0,	0,	NULL,			NULL		}, /*  371 */
-	{ 0,	0,	NULL,			NULL		}, /*  372 */
-	{ 0,	0,	NULL,			NULL		}, /*  373 */
-	{ 0,	0,	NULL,			NULL		}, /*  374 */
-	{ 0,	0,	NULL,			NULL		}, /*  375 */
-	{ 0,	0,	NULL,			NULL		}, /*  376 */
-	{ 0,	0,	NULL,			NULL		}, /*  377 */
-	{ 0,	0,	NULL,			NULL		}, /*  378 */
-	{ 0,	0,	NULL,			NULL		}, /*  379 */
-	{ 0,	0,	NULL,			NULL		}, /*  380 */
-	{ 0,	0,	NULL,			NULL		}, /*  381 */
-	{ 0,	0,	NULL,			NULL		}, /*  382 */
-	{ 0,	0,	NULL,			NULL		}, /*  383 */
-	{ 0,	0,	NULL,			NULL		}, /*  384 */
-	{ 0,	0,	NULL,			NULL		}, /*  385 */
-	{ 0,	0,	NULL,			NULL		}, /*  386 */
-	{ 0,	0,	NULL,			NULL		}, /*  387 */
-	{ 0,	0,	NULL,			NULL		}, /*  388 */
-	{ 0,	0,	NULL,			NULL		}, /*  389 */
-	{ 0,	0,	NULL,			NULL		}, /*  390 */
-	{ 0,	0,	NULL,			NULL		}, /*  391 */
-	{ 0,	0,	NULL,			NULL		}, /*  392 */
-	{ 0,	0,	NULL,			NULL		}, /*  393 */
-	{ 0,	0,	NULL,			NULL		}, /*  394 */
-	{ 0,	0,	NULL,			NULL		}, /*  395 */
-	{ 0,	0,	NULL,			NULL		}, /*  396 */
-	{ 0,	0,	NULL,			NULL		}, /*  397 */
-	{ 0,	0,	NULL,			NULL		}, /*  398 */
-	{ 0,	0,	NULL,			NULL		}, /*  399 */
-	{ 0,	0,	NULL,			NULL		}, /*  400 */
-	{ 0,	0,	NULL,			NULL		}, /*  401 */
-	{ 0,	0,	NULL,			NULL		}, /*  402 */
-	{ 0,	0,	NULL,			NULL		}, /*  403 */
-	{ 0,	0,	NULL,			NULL		}, /*  404 */
-	{ 0,	0,	NULL,			NULL		}, /*  405 */
-	{ 0,	0,	NULL,			NULL		}, /*  406 */
-	{ 0,	0,	NULL,			NULL		}, /*  407 */
-	{ 0,	0,	NULL,			NULL		}, /*  408 */
-	{ 0,	0,	NULL,			NULL		}, /*  409 */
-	{ 0,	0,	NULL,			NULL		}, /*  410 */
-	{ 0,	0,	NULL,			NULL		}, /*  411 */
-	{ 0,	0,	NULL,			NULL		}, /*  412 */
-	{ 0,	0,	NULL,			NULL		}, /*  413 */
-	{ 0,	0,	NULL,			NULL		}, /*  414 */
-	{ 0,	0,	NULL,			NULL		}, /*  415 */
-	{ 0,	0,	NULL,			NULL		}, /*  416 */
-	{ 0,	0,	NULL,			NULL		}, /*  417 */
-	{ 0,	0,	NULL,			NULL		}, /*  418 */
-	{ 0,	0,	NULL,			NULL		}, /*  419 */
-	{ 0,	0,	NULL,			NULL		}, /*  420 */
-	{ 0,	0,	NULL,			NULL		}, /*  421 */
-	{ 0,	0,	NULL,			NULL		}, /*  422 */
-	{ 0,	0,	NULL,			NULL		}, /*  423 */
-	{ 0,	0,	NULL,			NULL		}, /*  424 */
-	{ 0,	0,	NULL,			NULL		}, /*  425 */
-	{ 0,	0,	NULL,			NULL		}, /*  426 */
-	{ 0,	0,	NULL,			NULL		}, /*  427 */
-	{ 0,	0,	NULL,			NULL		}, /*  428 */
-	{ 0,	0,	NULL,			NULL		}, /*  429 */
-	{ 0,	0,	NULL,			NULL		}, /*  430 */
-	{ 0,	0,	NULL,			NULL		}, /*  431 */
-	{ 0,	0,	NULL,			NULL		}, /*  432 */
-	{ 0,	0,	NULL,			NULL		}, /*  433 */
-	{ 0,	0,	NULL,			NULL		}, /*  434 */
-	{ 0,	0,	NULL,			NULL		}, /*  435 */
-	{ 0,	0,	NULL,			NULL		}, /*  436 */
-	{ 0,	0,	NULL,			NULL		}, /*  437 */
-	{ 0,	0,	NULL,			NULL		}, /*  438 */
-	{ 0,	0,	NULL,			NULL		}, /*  439 */
-	{ 0,	0,	NULL,			NULL		}, /*  440 */
-	{ 0,	0,	NULL,			NULL		}, /*  441 */
-	{ 0,	0,	NULL,			NULL		}, /*  442 */
-	{ 0,	0,	NULL,			NULL		}, /*  443 */
-	{ 0,	0,	NULL,			NULL		}, /*  444 */
-	{ 0,	0,	NULL,			NULL		}, /*  445 */
-	{ 0,	0,	NULL,			NULL		}, /*  446 */
-	{ 0,	0,	NULL,			NULL		}, /*  447 */
-	{ 0,	0,	NULL,			NULL		}, /*  448 */
-	{ 0,	0,	NULL,			NULL		}, /*  449 */
-	{ 0,	0,	NULL,			NULL		}, /*  450 */
-	{ 0,	0,	NULL,			NULL		}, /*  451 */
-	{ 0,	0,	NULL,			NULL		}, /*  452 */
-	{ 0,	0,	NULL,			NULL		}, /*  453 */
-	{ 0,	0,	NULL,			NULL		}, /*  454 */
-	{ 0,	0,	NULL,			NULL		}, /*  455 */
-	{ 0,	0,	NULL,			NULL		}, /*  456 */
-	{ 0,	0,	NULL,			NULL		}, /*  457 */
-	{ 0,	0,	NULL,			NULL		}, /*  458 */
-	{ 0,	0,	NULL,			NULL		}, /*  459 */
-	{ 0,	0,	NULL,			NULL		}, /*  460 */
-	{ 0,	0,	NULL,			NULL		}, /*  461 */
-	{ 0,	0,	NULL,			NULL		}, /*  462 */
-	{ 0,	0,	NULL,			NULL		}, /*  463 */
-	{ 0,	0,	NULL,			NULL		}, /*  464 */
-	{ 0,	0,	NULL,			NULL		}, /*  465 */
-	{ 0,	0,	NULL,			NULL		}, /*  466 */
-	{ 0,	0,	NULL,			NULL		}, /*  467 */
-	{ 0,	0,	NULL,			NULL		}, /*  468 */
-	{ 0,	0,	NULL,			NULL		}, /*  469 */
-	{ 0,	0,	NULL,			NULL		}, /*  470 */
-	{ 0,	0,	NULL,			NULL		}, /*  471 */
-	{ 0,	0,	NULL,			NULL		}, /*  472 */
-	{ 0,	0,	NULL,			NULL		}, /*  473 */
-	{ 0,	0,	NULL,			NULL		}, /*  474 */
-	{ 0,	0,	NULL,			NULL		}, /*  475 */
-	{ 0,	0,	NULL,			NULL		}, /*  476 */
-	{ 0,	0,	NULL,			NULL		}, /*  477 */
-	{ 0,	0,	NULL,			NULL		}, /*  478 */
-	{ 0,	0,	NULL,			NULL		}, /*  479 */
-	{ 0,	0,	NULL,			NULL		}, /*  480 */
-	{ 0,	0,	NULL,			NULL		}, /*  481 */
-	{ 0,	0,	NULL,			NULL		}, /*  482 */
-	{ 0,	0,	NULL,			NULL		}, /*  483 */
-	{ 0,	0,	NULL,			NULL		}, /*  484 */
-	{ 0,	0,	NULL,			NULL		}, /*  485 */
-	{ 0,	0,	NULL,			NULL		}, /*  486 */
-	{ 0,	0,	NULL,			NULL		}, /*  487 */
-	{ 0,	0,	NULL,			NULL		}, /*  488 */
-	{ 0,	0,	NULL,			NULL		}, /*  489 */
-	{ 0,	0,	NULL,			NULL		}, /*  490 */
-	{ 0,	0,	NULL,			NULL		}, /*  491 */
-	{ 0,	0,	NULL,			NULL		}, /*  492 */
-	{ 0,	0,	NULL,			NULL		}, /*  493 */
-	{ 0,	0,	NULL,			NULL		}, /*  494 */
-	{ 0,	0,	NULL,			NULL		}, /*  495 */
-	{ 0,	0,	NULL,			NULL		}, /*  496 */
-	{ 0,	0,	NULL,			NULL		}, /*  497 */
-	{ 0,	0,	NULL,			NULL		}, /*  498 */
-	{ 0,	0,	NULL,			NULL		}, /*  499 */
-	{ 0,	0,	NULL,			NULL		}, /*  500 */
-	{ 0,	0,	NULL,			NULL		}, /*  501 */
-	{ 0,	0,	NULL,			NULL		}, /*  502 */
-	{ 0,	0,	NULL,			NULL		}, /*  503 */
-	{ 0,	0,	NULL,			NULL		}, /*  504 */
-	{ 0,	0,	NULL,			NULL		}, /*  505 */
-	{ 0,	0,	NULL,			NULL		}, /*  506 */
-	{ 0,	0,	NULL,			NULL		}, /*  507 */
-	{ 0,	0,	NULL,			NULL		}, /*  508 */
-	{ 0,	0,	NULL,			NULL		}, /*  509 */
-	{ 0,	0,	NULL,			NULL		}, /*  510 */
-	{ 0,	0,	NULL,			NULL		}, /*  511 */
-	{ 0,	0,	NULL,			NULL		}, /*  512 */
-	{ 0,	0,	NULL,			NULL		}, /*  513 */
-	{ 0,	0,	NULL,			NULL		}, /*  514 */
-	{ 0,	0,	NULL,			NULL		}, /*  515 */
-	{ 0,	0,	NULL,			NULL		}, /*  516 */
-	{ 0,	0,	NULL,			NULL		}, /*  517 */
-	{ 0,	0,	NULL,			NULL		}, /*  518 */
-	{ 0,	0,	NULL,			NULL		}, /*  519 */
-	{ 0,	0,	NULL,			NULL		}, /*  520 */
-	{ 0,	0,	NULL,			NULL		}, /*  521 */
-	{ 0,	0,	NULL,			NULL		}, /*  522 */
-	{ 0,	0,	NULL,			NULL		}, /*  523 */
-	{ 0,	0,	NULL,			NULL		}, /*  524 */
-	{ 0,	0,	NULL,			NULL		}, /*  525 */
-	{ 0,	0,	NULL,			NULL		}, /*  526 */
-	{ 0,	0,	NULL,			NULL		}, /*  527 */
-	{ 0,	0,	NULL,			NULL		}, /*  528 */
-	{ 0,	0,	NULL,			NULL		}, /*  529 */
-	{ 0,	0,	NULL,			NULL		}, /*  530 */
-	{ 0,	0,	NULL,			NULL		}, /*  531 */
-	{ 0,	0,	NULL,			NULL		}, /*  532 */
-	{ 0,	0,	NULL,			NULL		}, /*  533 */
-	{ 0,	0,	NULL,			NULL		}, /*  534 */
-	{ 0,	0,	NULL,			NULL		}, /*  535 */
-	{ 0,	0,	NULL,			NULL		}, /*  536 */
-	{ 0,	0,	NULL,			NULL		}, /*  537 */
-	{ 0,	0,	NULL,			NULL		}, /*  538 */
-	{ 0,	0,	NULL,			NULL		}, /*  539 */
-	{ 0,	0,	NULL,			NULL		}, /*  540 */
-	{ 0,	0,	NULL,			NULL		}, /*  541 */
-	{ 0,	0,	NULL,			NULL		}, /*  542 */
-	{ 0,	0,	NULL,			NULL		}, /*  543 */
-	{ 0,	0,	NULL,			NULL		}, /*  544 */
-	{ 0,	0,	NULL,			NULL		}, /*  545 */
-	{ 0,	0,	NULL,			NULL		}, /*  546 */
-	{ 0,	0,	NULL,			NULL		}, /*  547 */
-	{ 0,	0,	NULL,			NULL		}, /*  548 */
-	{ 0,	0,	NULL,			NULL		}, /*  549 */
-	{ 0,	0,	NULL,			NULL		}, /*  550 */
-	{ 0,	0,	NULL,			NULL		}, /*  551 */
-	{ 0,	0,	NULL,			NULL		}, /*  552 */
-	{ 0,	0,	NULL,			NULL		}, /*  553 */
-	{ 0,	0,	NULL,			NULL		}, /*  554 */
-	{ 0,	0,	NULL,			NULL		}, /*  555 */
-	{ 0,	0,	NULL,			NULL		}, /*  556 */
-	{ 0,	0,	NULL,			NULL		}, /*  557 */
-	{ 0,	0,	NULL,			NULL		}, /*  558 */
-	{ 0,	0,	NULL,			NULL		}, /*  559 */
-	{ 0,	0,	NULL,			NULL		}, /*  560 */
-	{ 0,	0,	NULL,			NULL		}, /*  561 */
-	{ 0,	0,	NULL,			NULL		}, /*  562 */
-	{ 0,	0,	NULL,			NULL		}, /*  563 */
-	{ 0,	0,	NULL,			NULL		}, /*  564 */
-	{ 0,	0,	NULL,			NULL		}, /*  565 */
-	{ 0,	0,	NULL,			NULL		}, /*  566 */
-	{ 0,	0,	NULL,			NULL		}, /*  567 */
-	{ 0,	0,	NULL,			NULL		}, /*  568 */
-	{ 0,	0,	NULL,			NULL		}, /*  569 */
-	{ 0,	0,	NULL,			NULL		}, /*  570 */
-	{ 0,	0,	NULL,			NULL		}, /*  571 */
-	{ 0,	0,	NULL,			NULL		}, /*  572 */
-	{ 0,	0,	NULL,			NULL		}, /*  573 */
-	{ 0,	0,	NULL,			NULL		}, /*  574 */
-	{ 0,	0,	NULL,			NULL		}, /*  575 */
-	{ 0,	0,	NULL,			NULL		}, /*  576 */
-	{ 0,	0,	NULL,			NULL		}, /*  577 */
-	{ 0,	0,	NULL,			NULL		}, /*  578 */
-	{ 0,	0,	NULL,			NULL		}, /*  579 */
-	{ 0,	0,	NULL,			NULL		}, /*  580 */
-	{ 0,	0,	NULL,			NULL		}, /*  581 */
-	{ 0,	0,	NULL,			NULL		}, /*  582 */
-	{ 0,	0,	NULL,			NULL		}, /*  583 */
-	{ 0,	0,	NULL,			NULL		}, /*  584 */
-	{ 0,	0,	NULL,			NULL		}, /*  585 */
-	{ 0,	0,	NULL,			NULL		}, /*  586 */
-	{ 0,	0,	NULL,			NULL		}, /*  587 */
-	{ 0,	0,	NULL,			NULL		}, /*  588 */
-	{ 0,	0,	NULL,			NULL		}, /*  589 */
-	{ 0,	0,	NULL,			NULL		}, /*  590 */
-	{ 0,	0,	NULL,			NULL		}, /*  591 */
-	{ 0,	0,	NULL,			NULL		}, /*  592 */
-	{ 0,	0,	NULL,			NULL		}, /*  593 */
-	{ 0,	0,	NULL,			NULL		}, /*  594 */
-	{ 0,	0,	NULL,			NULL		}, /*  595 */
-	{ 0,	0,	NULL,			NULL		}, /*  596 */
-	{ 0,	0,	NULL,			NULL		}, /*  597 */
-	{ 0,	0,	NULL,			NULL		}, /*  598 */
-	{ 0,	0,	NULL,			NULL		}, /*  599 */
-	{ 0,	0,	NULL,			NULL		}, /*  600 */
-	{ 0,	0,	NULL,			NULL		}, /*  601 */
-	{ 0,	0,	NULL,			NULL		}, /*  602 */
-	{ 0,	0,	NULL,			NULL		}, /*  603 */
-	{ 0,	0,	NULL,			NULL		}, /*  604 */
-	{ 0,	0,	NULL,			NULL		}, /*  605 */
-	{ 0,	0,	NULL,			NULL		}, /*  606 */
-	{ 0,	0,	NULL,			NULL		}, /*  607 */
-	{ 0,	0,	NULL,			NULL		}, /*  608 */
-	{ 0,	0,	NULL,			NULL		}, /*  609 */
-	{ 0,	0,	NULL,			NULL		}, /*  610 */
-	{ 0,	0,	NULL,			NULL		}, /*  611 */
-	{ 0,	0,	NULL,			NULL		}, /*  612 */
-	{ 0,	0,	NULL,			NULL		}, /*  613 */
-	{ 0,	0,	NULL,			NULL		}, /*  614 */
-	{ 0,	0,	NULL,			NULL		}, /*  615 */
-	{ 0,	0,	NULL,			NULL		}, /*  616 */
-	{ 0,	0,	NULL,			NULL		}, /*  617 */
-	{ 0,	0,	NULL,			NULL		}, /*  618 */
-	{ 0,	0,	NULL,			NULL		}, /*  619 */
-	{ 0,	0,	NULL,			NULL		}, /*  620 */
-	{ 0,	0,	NULL,			NULL		}, /*  621 */
-	{ 0,	0,	NULL,			NULL		}, /*  622 */
-	{ 0,	0,	NULL,			NULL		}, /*  623 */
-	{ 0,	0,	NULL,			NULL		}, /*  624 */
-	{ 0,	0,	NULL,			NULL		}, /*  625 */
-	{ 0,	0,	NULL,			NULL		}, /*  626 */
-	{ 0,	0,	NULL,			NULL		}, /*  627 */
-	{ 0,	0,	NULL,			NULL		}, /*  628 */
-	{ 0,	0,	NULL,			NULL		}, /*  629 */
-	{ 0,	0,	NULL,			NULL		}, /*  630 */
-	{ 0,	0,	NULL,			NULL		}, /*  631 */
-	{ 0,	0,	NULL,			NULL		}, /*  632 */
-	{ 0,	0,	NULL,			NULL		}, /*  633 */
-	{ 0,	0,	NULL,			NULL		}, /*  634 */
-	{ 0,	0,	NULL,			NULL		}, /*  635 */
-	{ 0,	0,	NULL,			NULL		}, /*  636 */
-	{ 0,	0,	NULL,			NULL		}, /*  637 */
-	{ 0,	0,	NULL,			NULL		}, /*  638 */
-	{ 0,	0,	NULL,			NULL		}, /*  639 */
-	{ 0,	0,	NULL,			NULL		}, /*  640 */
-	{ 0,	0,	NULL,			NULL		}, /*  641 */
-	{ 0,	0,	NULL,			NULL		}, /*  642 */
-	{ 0,	0,	NULL,			NULL		}, /*  643 */
-	{ 0,	0,	NULL,			NULL		}, /*  644 */
-	{ 0,	0,	NULL,			NULL		}, /*  645 */
-	{ 0,	0,	NULL,			NULL		}, /*  646 */
-	{ 0,	0,	NULL,			NULL		}, /*  647 */
-	{ 0,	0,	NULL,			NULL		}, /*  648 */
-	{ 0,	0,	NULL,			NULL		}, /*  649 */
-	{ 0,	0,	NULL,			NULL		}, /*  650 */
-	{ 0,	0,	NULL,			NULL		}, /*  651 */
-	{ 0,	0,	NULL,			NULL		}, /*  652 */
-	{ 0,	0,	NULL,			NULL		}, /*  653 */
-	{ 0,	0,	NULL,			NULL		}, /*  654 */
-	{ 0,	0,	NULL,			NULL		}, /*  655 */
-	{ 0,	0,	NULL,			NULL		}, /*  656 */
-	{ 0,	0,	NULL,			NULL		}, /*  657 */
-	{ 0,	0,	NULL,			NULL		}, /*  658 */
-	{ 0,	0,	NULL,			NULL		}, /*  659 */
-	{ 0,	0,	NULL,			NULL		}, /*  660 */
-	{ 0,	0,	NULL,			NULL		}, /*  661 */
-	{ 0,	0,	NULL,			NULL		}, /*  662 */
-	{ 0,	0,	NULL,			NULL		}, /*  663 */
-	{ 0,	0,	NULL,			NULL		}, /*  664 */
-	{ 0,	0,	NULL,			NULL		}, /*  665 */
-	{ 0,	0,	NULL,			NULL		}, /*  666 */
-	{ 0,	0,	NULL,			NULL		}, /*  667 */
-	{ 0,	0,	NULL,			NULL		}, /*  668 */
-	{ 0,	0,	NULL,			NULL		}, /*  669 */
-	{ 0,	0,	NULL,			NULL		}, /*  670 */
-	{ 0,	0,	NULL,			NULL		}, /*  671 */
-	{ 0,	0,	NULL,			NULL		}, /*  672 */
-	{ 0,	0,	NULL,			NULL		}, /*  673 */
-	{ 0,	0,	NULL,			NULL		}, /*  674 */
-	{ 0,	0,	NULL,			NULL		}, /*  675 */
-	{ 0,	0,	NULL,			NULL		}, /*  676 */
-	{ 0,	0,	NULL,			NULL		}, /*  677 */
-	{ 0,	0,	NULL,			NULL		}, /*  678 */
-	{ 0,	0,	NULL,			NULL		}, /*  679 */
-	{ 0,	0,	NULL,			NULL		}, /*  680 */
-	{ 0,	0,	NULL,			NULL		}, /*  681 */
-	{ 0,	0,	NULL,			NULL		}, /*  682 */
-	{ 0,	0,	NULL,			NULL		}, /*  683 */
-	{ 0,	0,	NULL,			NULL		}, /*  684 */
-	{ 0,	0,	NULL,			NULL		}, /*  685 */
-	{ 0,	0,	NULL,			NULL		}, /*  686 */
-	{ 0,	0,	NULL,			NULL		}, /*  687 */
-	{ 0,	0,	NULL,			NULL		}, /*  688 */
-	{ 0,	0,	NULL,			NULL		}, /*  689 */
-	{ 0,	0,	NULL,			NULL		}, /*  690 */
-	{ 0,	0,	NULL,			NULL		}, /*  691 */
-	{ 0,	0,	NULL,			NULL		}, /*  692 */
-	{ 0,	0,	NULL,			NULL		}, /*  693 */
-	{ 0,	0,	NULL,			NULL		}, /*  694 */
-	{ 0,	0,	NULL,			NULL		}, /*  695 */
-	{ 0,	0,	NULL,			NULL		}, /*  696 */
-	{ 0,	0,	NULL,			NULL		}, /*  697 */
-	{ 0,	0,	NULL,			NULL		}, /*  698 */
-	{ 0,	0,	NULL,			NULL		}, /*  699 */
-	{ 0,	0,	NULL,			NULL		}, /*  700 */
-	{ 0,	0,	NULL,			NULL		}, /*  701 */
-	{ 0,	0,	NULL,			NULL		}, /*  702 */
-	{ 0,	0,	NULL,			NULL		}, /*  703 */
-	{ 0,	0,	NULL,			NULL		}, /*  704 */
-	{ 0,	0,	NULL,			NULL		}, /*  705 */
-	{ 0,	0,	NULL,			NULL		}, /*  706 */
-	{ 0,	0,	NULL,			NULL		}, /*  707 */
-	{ 0,	0,	NULL,			NULL		}, /*  708 */
-	{ 0,	0,	NULL,			NULL		}, /*  709 */
-	{ 0,	0,	NULL,			NULL		}, /*  710 */
-	{ 0,	0,	NULL,			NULL		}, /*  711 */
-	{ 0,	0,	NULL,			NULL		}, /*  712 */
-	{ 0,	0,	NULL,			NULL		}, /*  713 */
-	{ 0,	0,	NULL,			NULL		}, /*  714 */
-	{ 0,	0,	NULL,			NULL		}, /*  715 */
-	{ 0,	0,	NULL,			NULL		}, /*  716 */
-	{ 0,	0,	NULL,			NULL		}, /*  717 */
-	{ 0,	0,	NULL,			NULL		}, /*  718 */
-	{ 0,	0,	NULL,			NULL		}, /*  719 */
-	{ 0,	0,	NULL,			NULL		}, /*  720 */
-	{ 0,	0,	NULL,			NULL		}, /*  721 */
-	{ 0,	0,	NULL,			NULL		}, /*  722 */
-	{ 0,	0,	NULL,			NULL		}, /*  723 */
-	{ 0,	0,	NULL,			NULL		}, /*  724 */
-	{ 0,	0,	NULL,			NULL		}, /*  725 */
-	{ 0,	0,	NULL,			NULL		}, /*  726 */
-	{ 0,	0,	NULL,			NULL		}, /*  727 */
-	{ 0,	0,	NULL,			NULL		}, /*  728 */
-	{ 0,	0,	NULL,			NULL		}, /*  729 */
-	{ 0,	0,	NULL,			NULL		}, /*  730 */
-	{ 0,	0,	NULL,			NULL		}, /*  731 */
-	{ 0,	0,	NULL,			NULL		}, /*  732 */
-	{ 0,	0,	NULL,			NULL		}, /*  733 */
-	{ 0,	0,	NULL,			NULL		}, /*  734 */
-	{ 0,	0,	NULL,			NULL		}, /*  735 */
-	{ 0,	0,	NULL,			NULL		}, /*  736 */
-	{ 0,	0,	NULL,			NULL		}, /*  737 */
-	{ 0,	0,	NULL,			NULL		}, /*  738 */
-	{ 0,	0,	NULL,			NULL		}, /*  739 */
-	{ 0,	0,	NULL,			NULL		}, /*  740 */
-	{ 0,	0,	NULL,			NULL		}, /*  741 */
-	{ 0,	0,	NULL,			NULL		}, /*  742 */
-	{ 0,	0,	NULL,			NULL		}, /*  743 */
-	{ 0,	0,	NULL,			NULL		}, /*  744 */
-	{ 0,	0,	NULL,			NULL		}, /*  745 */
-	{ 0,	0,	NULL,			NULL		}, /*  746 */
-	{ 0,	0,	NULL,			NULL		}, /*  747 */
-	{ 0,	0,	NULL,			NULL		}, /*  748 */
-	{ 0,	0,	NULL,			NULL		}, /*  749 */
-	{ 0,	0,	NULL,			NULL		}, /*  750 */
-	{ 0,	0,	NULL,			NULL		}, /*  751 */
-	{ 0,	0,	NULL,			NULL		}, /*  752 */
-	{ 0,	0,	NULL,			NULL		}, /*  753 */
-	{ 0,	0,	NULL,			NULL		}, /*  754 */
-	{ 0,	0,	NULL,			NULL		}, /*  755 */
-	{ 0,	0,	NULL,			NULL		}, /*  756 */
-	{ 0,	0,	NULL,			NULL		}, /*  757 */
-	{ 0,	0,	NULL,			NULL		}, /*  758 */
-	{ 0,	0,	NULL,			NULL		}, /*  759 */
-	{ 0,	0,	NULL,			NULL		}, /*  760 */
-	{ 0,	0,	NULL,			NULL		}, /*  761 */
-	{ 0,	0,	NULL,			NULL		}, /*  762 */
-	{ 0,	0,	NULL,			NULL		}, /*  763 */
-	{ 0,	0,	NULL,			NULL		}, /*  764 */
-	{ 0,	0,	NULL,			NULL		}, /*  765 */
-	{ 0,	0,	NULL,			NULL		}, /*  766 */
-	{ 0,	0,	NULL,			NULL		}, /*  767 */
-	{ 0,	0,	NULL,			NULL		}, /*  768 */
-	{ 0,	0,	NULL,			NULL		}, /*  769 */
-	{ 0,	0,	NULL,			NULL		}, /*  770 */
-	{ 0,	0,	NULL,			NULL		}, /*  771 */
-	{ 0,	0,	NULL,			NULL		}, /*  772 */
-	{ 0,	0,	NULL,			NULL		}, /*  773 */
-	{ 0,	0,	NULL,			NULL		}, /*  774 */
-	{ 0,	0,	NULL,			NULL		}, /*  775 */
-	{ 0,	0,	NULL,			NULL		}, /*  776 */
-	{ 0,	0,	NULL,			NULL		}, /*  777 */
-	{ 0,	0,	NULL,			NULL		}, /*  778 */
-	{ 0,	0,	NULL,			NULL		}, /*  779 */
-	{ 0,	0,	NULL,			NULL		}, /*  780 */
-	{ 0,	0,	NULL,			NULL		}, /*  781 */
-	{ 0,	0,	NULL,			NULL		}, /*  782 */
-	{ 0,	0,	NULL,			NULL		}, /*  783 */
-	{ 0,	0,	NULL,			NULL		}, /*  784 */
-	{ 0,	0,	NULL,			NULL		}, /*  785 */
-	{ 0,	0,	NULL,			NULL		}, /*  786 */
-	{ 0,	0,	NULL,			NULL		}, /*  787 */
-	{ 0,	0,	NULL,			NULL		}, /*  788 */
-	{ 0,	0,	NULL,			NULL		}, /*  789 */
-	{ 0,	0,	NULL,			NULL		}, /*  790 */
-	{ 0,	0,	NULL,			NULL		}, /*  791 */
-	{ 0,	0,	NULL,			NULL		}, /*  792 */
-	{ 0,	0,	NULL,			NULL		}, /*  793 */
-	{ 0,	0,	NULL,			NULL		}, /*  794 */
-	{ 0,	0,	NULL,			NULL		}, /*  795 */
-	{ 0,	0,	NULL,			NULL		}, /*  796 */
-	{ 0,	0,	NULL,			NULL		}, /*  797 */
-	{ 0,	0,	NULL,			NULL		}, /*  798 */
-	{ 0,	0,	NULL,			NULL		}, /*  799 */
-	{ 0,	0,	NULL,			NULL		}, /*  800 */
-	{ 0,	0,	NULL,			NULL		}, /*  801 */
-	{ 0,	0,	NULL,			NULL		}, /*  802 */
-	{ 0,	0,	NULL,			NULL		}, /*  803 */
-	{ 0,	0,	NULL,			NULL		}, /*  804 */
-	{ 0,	0,	NULL,			NULL		}, /*  805 */
-	{ 0,	0,	NULL,			NULL		}, /*  806 */
-	{ 0,	0,	NULL,			NULL		}, /*  807 */
-	{ 0,	0,	NULL,			NULL		}, /*  808 */
-	{ 0,	0,	NULL,			NULL		}, /*  809 */
-	{ 0,	0,	NULL,			NULL		}, /*  810 */
-	{ 0,	0,	NULL,			NULL		}, /*  811 */
-	{ 0,	0,	NULL,			NULL		}, /*  812 */
-	{ 0,	0,	NULL,			NULL		}, /*  813 */
-	{ 0,	0,	NULL,			NULL		}, /*  814 */
-	{ 0,	0,	NULL,			NULL		}, /*  815 */
-	{ 0,	0,	NULL,			NULL		}, /*  816 */
-	{ 0,	0,	NULL,			NULL		}, /*  817 */
-	{ 0,	0,	NULL,			NULL		}, /*  818 */
-	{ 0,	0,	NULL,			NULL		}, /*  819 */
-	{ 0,	0,	NULL,			NULL		}, /*  820 */
-	{ 0,	0,	NULL,			NULL		}, /*  821 */
-	{ 0,	0,	NULL,			NULL		}, /*  822 */
-	{ 0,	0,	NULL,			NULL		}, /*  823 */
-	{ 0,	0,	NULL,			NULL		}, /*  824 */
-	{ 0,	0,	NULL,			NULL		}, /*  825 */
-	{ 0,	0,	NULL,			NULL		}, /*  826 */
-	{ 0,	0,	NULL,			NULL		}, /*  827 */
-	{ 0,	0,	NULL,			NULL		}, /*  828 */
-	{ 0,	0,	NULL,			NULL		}, /*  829 */
-	{ 0,	0,	NULL,			NULL		}, /*  830 */
-	{ 0,	0,	NULL,			NULL		}, /*  831 */
-	{ 0,	0,	NULL,			NULL		}, /*  832 */
-	{ 0,	0,	NULL,			NULL		}, /*  833 */
-	{ 0,	0,	NULL,			NULL		}, /*  834 */
-	{ 0,	0,	NULL,			NULL		}, /*  835 */
-	{ 0,	0,	NULL,			NULL		}, /*  836 */
-	{ 0,	0,	NULL,			NULL		}, /*  837 */
-	{ 0,	0,	NULL,			NULL		}, /*  838 */
-	{ 0,	0,	NULL,			NULL		}, /*  839 */
-	{ 0,	0,	NULL,			NULL		}, /*  840 */
-	{ 0,	0,	NULL,			NULL		}, /*  841 */
-	{ 0,	0,	NULL,			NULL		}, /*  842 */
-	{ 0,	0,	NULL,			NULL		}, /*  843 */
-	{ 0,	0,	NULL,			NULL		}, /*  844 */
-	{ 0,	0,	NULL,			NULL		}, /*  845 */
-	{ 0,	0,	NULL,			NULL		}, /*  846 */
-	{ 0,	0,	NULL,			NULL		}, /*  847 */
-	{ 0,	0,	NULL,			NULL		}, /*  848 */
-	{ 0,	0,	NULL,			NULL		}, /*  849 */
-	{ 0,	0,	NULL,			NULL		}, /*  850 */
-	{ 0,	0,	NULL,			NULL		}, /*  851 */
-	{ 0,	0,	NULL,			NULL		}, /*  852 */
-	{ 0,	0,	NULL,			NULL		}, /*  853 */
-	{ 0,	0,	NULL,			NULL		}, /*  854 */
-	{ 0,	0,	NULL,			NULL		}, /*  855 */
-	{ 0,	0,	NULL,			NULL		}, /*  856 */
-	{ 0,	0,	NULL,			NULL		}, /*  857 */
-	{ 0,	0,	NULL,			NULL		}, /*  858 */
-	{ 0,	0,	NULL,			NULL		}, /*  859 */
-	{ 0,	0,	NULL,			NULL		}, /*  860 */
-	{ 0,	0,	NULL,			NULL		}, /*  861 */
-	{ 0,	0,	NULL,			NULL		}, /*  862 */
-	{ 0,	0,	NULL,			NULL		}, /*  863 */
-	{ 0,	0,	NULL,			NULL		}, /*  864 */
-	{ 0,	0,	NULL,			NULL		}, /*  865 */
-	{ 0,	0,	NULL,			NULL		}, /*  866 */
-	{ 0,	0,	NULL,			NULL		}, /*  867 */
-	{ 0,	0,	NULL,			NULL		}, /*  868 */
-	{ 0,	0,	NULL,			NULL		}, /*  869 */
-	{ 0,	0,	NULL,			NULL		}, /*  870 */
-	{ 0,	0,	NULL,			NULL		}, /*  871 */
-	{ 0,	0,	NULL,			NULL		}, /*  872 */
-	{ 0,	0,	NULL,			NULL		}, /*  873 */
-	{ 0,	0,	NULL,			NULL		}, /*  874 */
-	{ 0,	0,	NULL,			NULL		}, /*  875 */
-	{ 0,	0,	NULL,			NULL		}, /*  876 */
-	{ 0,	0,	NULL,			NULL		}, /*  877 */
-	{ 0,	0,	NULL,			NULL		}, /*  878 */
-	{ 0,	0,	NULL,			NULL		}, /*  879 */
-	{ 0,	0,	NULL,			NULL		}, /*  880 */
-	{ 0,	0,	NULL,			NULL		}, /*  881 */
-	{ 0,	0,	NULL,			NULL		}, /*  882 */
-	{ 0,	0,	NULL,			NULL		}, /*  883 */
-	{ 0,	0,	NULL,			NULL		}, /*  884 */
-	{ 0,	0,	NULL,			NULL		}, /*  885 */
-	{ 0,	0,	NULL,			NULL		}, /*  886 */
-	{ 0,	0,	NULL,			NULL		}, /*  887 */
-	{ 0,	0,	NULL,			NULL		}, /*  888 */
-	{ 0,	0,	NULL,			NULL		}, /*  889 */
-	{ 0,	0,	NULL,			NULL		}, /*  890 */
-	{ 0,	0,	NULL,			NULL		}, /*  891 */
-	{ 0,	0,	NULL,			NULL		}, /*  892 */
-	{ 0,	0,	NULL,			NULL		}, /*  893 */
-	{ 0,	0,	NULL,			NULL		}, /*  894 */
-	{ 0,	0,	NULL,			NULL		}, /*  895 */
-	{ 0,	0,	NULL,			NULL		}, /*  896 */
-	{ 0,	0,	NULL,			NULL		}, /*  897 */
-	{ 0,	0,	NULL,			NULL		}, /*  898 */
-	{ 0,	0,	NULL,			NULL		}, /*  899 */
-	{ 0,	0,	NULL,			NULL		}, /*  900 */
-	{ 0,	0,	NULL,			NULL		}, /*  901 */
-	{ 0,	0,	NULL,			NULL		}, /*  902 */
-	{ 0,	0,	NULL,			NULL		}, /*  903 */
-	{ 0,	0,	NULL,			NULL		}, /*  904 */
-	{ 0,	0,	NULL,			NULL		}, /*  905 */
-	{ 0,	0,	NULL,			NULL		}, /*  906 */
-	{ 0,	0,	NULL,			NULL		}, /*  907 */
-	{ 0,	0,	NULL,			NULL		}, /*  908 */
-	{ 0,	0,	NULL,			NULL		}, /*  909 */
-	{ 0,	0,	NULL,			NULL		}, /*  910 */
-	{ 0,	0,	NULL,			NULL		}, /*  911 */
-	{ 0,	0,	NULL,			NULL		}, /*  912 */
-	{ 0,	0,	NULL,			NULL		}, /*  913 */
-	{ 0,	0,	NULL,			NULL		}, /*  914 */
-	{ 0,	0,	NULL,			NULL		}, /*  915 */
-	{ 0,	0,	NULL,			NULL		}, /*  916 */
-	{ 0,	0,	NULL,			NULL		}, /*  917 */
-	{ 0,	0,	NULL,			NULL		}, /*  918 */
-	{ 0,	0,	NULL,			NULL		}, /*  919 */
-	{ 0,	0,	NULL,			NULL		}, /*  920 */
-	{ 0,	0,	NULL,			NULL		}, /*  921 */
-	{ 0,	0,	NULL,			NULL		}, /*  922 */
-	{ 0,	0,	NULL,			NULL		}, /*  923 */
-	{ 0,	0,	NULL,			NULL		}, /*  924 */
-	{ 0,	0,	NULL,			NULL		}, /*  925 */
-	{ 0,	0,	NULL,			NULL		}, /*  926 */
-	{ 0,	0,	NULL,			NULL		}, /*  927 */
-	{ 0,	0,	NULL,			NULL		}, /*  928 */
-	{ 0,	0,	NULL,			NULL		}, /*  929 */
-	{ 0,	0,	NULL,			NULL		}, /*  930 */
-	{ 0,	0,	NULL,			NULL		}, /*  931 */
-	{ 0,	0,	NULL,			NULL		}, /*  932 */
-	{ 0,	0,	NULL,			NULL		}, /*  933 */
-	{ 0,	0,	NULL,			NULL		}, /*  934 */
-	{ 0,	0,	NULL,			NULL		}, /*  935 */
-	{ 0,	0,	NULL,			NULL		}, /*  936 */
-	{ 0,	0,	NULL,			NULL		}, /*  937 */
-	{ 0,	0,	NULL,			NULL		}, /*  938 */
-	{ 0,	0,	NULL,			NULL		}, /*  939 */
-	{ 0,	0,	NULL,			NULL		}, /*  940 */
-	{ 0,	0,	NULL,			NULL		}, /*  941 */
-	{ 0,	0,	NULL,			NULL		}, /*  942 */
-	{ 0,	0,	NULL,			NULL		}, /*  943 */
-	{ 0,	0,	NULL,			NULL		}, /*  944 */
-	{ 0,	0,	NULL,			NULL		}, /*  945 */
-	{ 0,	0,	NULL,			NULL		}, /*  946 */
-	{ 0,	0,	NULL,			NULL		}, /*  947 */
-	{ 0,	0,	NULL,			NULL		}, /*  948 */
-	{ 0,	0,	NULL,			NULL		}, /*  949 */
-	{ 0,	0,	NULL,			NULL		}, /*  950 */
-	{ 0,	0,	NULL,			NULL		}, /*  951 */
-	{ 0,	0,	NULL,			NULL		}, /*  952 */
-	{ 0,	0,	NULL,			NULL		}, /*  953 */
-	{ 0,	0,	NULL,			NULL		}, /*  954 */
-	{ 0,	0,	NULL,			NULL		}, /*  955 */
-	{ 0,	0,	NULL,			NULL		}, /*  956 */
-	{ 0,	0,	NULL,			NULL		}, /*  957 */
-	{ 0,	0,	NULL,			NULL		}, /*  958 */
-	{ 0,	0,	NULL,			NULL		}, /*  959 */
-	{ 0,	0,	NULL,			NULL		}, /*  960 */
-	{ 0,	0,	NULL,			NULL		}, /*  961 */
-	{ 0,	0,	NULL,			NULL		}, /*  962 */
-	{ 0,	0,	NULL,			NULL		}, /*  963 */
-	{ 0,	0,	NULL,			NULL		}, /*  964 */
-	{ 0,	0,	NULL,			NULL		}, /*  965 */
-	{ 0,	0,	NULL,			NULL		}, /*  966 */
-	{ 0,	0,	NULL,			NULL		}, /*  967 */
-	{ 0,	0,	NULL,			NULL		}, /*  968 */
-	{ 0,	0,	NULL,			NULL		}, /*  969 */
-	{ 0,	0,	NULL,			NULL		}, /*  970 */
-	{ 0,	0,	NULL,			NULL		}, /*  971 */
-	{ 0,	0,	NULL,			NULL		}, /*  972 */
-	{ 0,	0,	NULL,			NULL		}, /*  973 */
-	{ 0,	0,	NULL,			NULL		}, /*  974 */
-	{ 0,	0,	NULL,			NULL		}, /*  975 */
-	{ 0,	0,	NULL,			NULL		}, /*  976 */
-	{ 0,	0,	NULL,			NULL		}, /*  977 */
-	{ 0,	0,	NULL,			NULL		}, /*  978 */
-	{ 0,	0,	NULL,			NULL		}, /*  979 */
-	{ 0,	0,	NULL,			NULL		}, /*  980 */
-	{ 0,	0,	NULL,			NULL		}, /*  981 */
-	{ 0,	0,	NULL,			NULL		}, /*  982 */
-	{ 0,	0,	NULL,			NULL		}, /*  983 */
-	{ 0,	0,	NULL,			NULL		}, /*  984 */
-	{ 0,	0,	NULL,			NULL		}, /*  985 */
-	{ 0,	0,	NULL,			NULL		}, /*  986 */
-	{ 0,	0,	NULL,			NULL		}, /*  987 */
-	{ 0,	0,	NULL,			NULL		}, /*  988 */
-	{ 0,	0,	NULL,			NULL		}, /*  989 */
-	{ 0,	0,	NULL,			NULL		}, /*  990 */
-	{ 0,	0,	NULL,			NULL		}, /*  991 */
-	{ 0,	0,	NULL,			NULL		}, /*  992 */
-	{ 0,	0,	NULL,			NULL		}, /*  993 */
-	{ 0,	0,	NULL,			NULL		}, /*  994 */
-	{ 0,	0,	NULL,			NULL		}, /*  995 */
-	{ 0,	0,	NULL,			NULL		}, /*  996 */
-	{ 0,	0,	NULL,			NULL		}, /*  997 */
-	{ 0,	0,	NULL,			NULL		}, /*  998 */
-	{ 0,	0,	NULL,			NULL		}, /*  999 */ /* end of SVR4 */
-	{ 0,	0,	printargs,		"sysv_syscall"	}, /* 1000 */ /* start of SYSV */
-	{ 0,	0,	printargs,		"sysv_exit"	}, /* 1001 */
-	{ 0,	0,	printargs,		"sysv_fork"	}, /* 1002 */
-	{ 0,	0,	printargs,		"sysv_read"	}, /* 1003 */
-	{ 0,	0,	printargs,		"sysv_write"	}, /* 1004 */
-	{ 0,	0,	printargs,		"sysv_open"	}, /* 1005 */
-	{ 0,	0,	printargs,		"sysv_close"	}, /* 1006 */
-	{ 0,	0,	printargs,		"sysv_wait"	}, /* 1007 */
-	{ 0,	0,	printargs,		"sysv_creat"	}, /* 1008 */
-	{ 0,	0,	printargs,		"sysv_link"	}, /* 1009 */
-	{ 0,	0,	printargs,		"sysv_unlink"	}, /* 1010 */
-	{ 0,	0,	printargs,		"sysv_execv"	}, /* 1011 */
-	{ 0,	0,	printargs,		"sysv_chdir"	}, /* 1012 */
-	{ 0,	0,	printargs,		"sysv_time"	}, /* 1013 */
-	{ 0,	0,	printargs,		"sysv_mknod"	}, /* 1014 */
-	{ 0,	0,	printargs,		"sysv_chmod"	}, /* 1015 */
-	{ 0,	0,	printargs,		"sysv_chown"	}, /* 1016 */
-	{ 0,	0,	printargs,		"sysv_brk"	}, /* 1017 */
-	{ 0,	0,	printargs,		"sysv_stat"	}, /* 1018 */
-	{ 0,	0,	printargs,		"sysv_lseek"	}, /* 1019 */
-	{ 0,	0,	printargs,		"sysv_getpid"	}, /* 1020 */
-	{ 0,	0,	printargs,		"sysv_mount"	}, /* 1021 */
-	{ 0,	0,	printargs,		"sysv_umount"	}, /* 1022 */
-	{ 0,	0,	printargs,		"sysv_setuid"	}, /* 1023 */
-	{ 0,	0,	printargs,		"sysv_getuid"	}, /* 1024 */
-	{ 0,	0,	printargs,		"sysv_stime"	}, /* 1025 */
-	{ 0,	0,	printargs,		"sysv_ptrace"	}, /* 1026 */
-	{ 0,	0,	printargs,		"sysv_alarm"	}, /* 1027 */
-	{ 0,	0,	printargs,		"sysv_fstat"	}, /* 1028 */
-	{ 0,	0,	printargs,		"sysv_pause"	}, /* 1029 */
-	{ 0,	0,	printargs,		"sysv_utime"	}, /* 1030 */
-	{ 0,	0,	printargs,		"sysv_stty"	}, /* 1031 */
-	{ 0,	0,	printargs,		"sysv_gtty"	}, /* 1032 */
-	{ 0,	0,	printargs,		"sysv_access"	}, /* 1033 */
-	{ 0,	0,	printargs,		"sysv_nice"	}, /* 1034 */
-	{ 0,	0,	printargs,		"sysv_statfs"	}, /* 1035 */
-	{ 0,	0,	printargs,		"sysv_sync"	}, /* 1036 */
-	{ 0,	0,	printargs,		"sysv_kill"	}, /* 1037 */
-	{ 0,	0,	printargs,		"sysv_fstatfs"	}, /* 1038 */
-	{ 0,	0,	printargs,		"sysv_setpgrp"	}, /* 1039 */
-	{ 0,	0,	printargs,		"sysv_syssgi"	}, /* 1040 */
-	{ 0,	0,	printargs,		"sysv_dup"	}, /* 1041 */
-	{ 0,	0,	printargs,		"sysv_pipe"	}, /* 1042 */
-	{ 0,	0,	printargs,		"sysv_times"	}, /* 1043 */
-	{ 0,	0,	printargs,		"sysv_profil"	}, /* 1044 */
-	{ 0,	0,	printargs,		"sysv_plock"	}, /* 1045 */
-	{ 0,	0,	printargs,		"sysv_setgid"	}, /* 1046 */
-	{ 0,	0,	printargs,		"sysv_getgid"	}, /* 1047 */
-	{ 0,	0,	printargs,		"sysv_sig"	}, /* 1048 */
-	{ 0,	0,	printargs,		"sysv_msgsys"	}, /* 1049 */
-	{ 0,	0,	printargs,		"sysv_sysmips"	}, /* 1050 */
-	{ 0,	0,	printargs,		"sysv_acct"	}, /* 1051 */
-	{ 0,	0,	printargs,		"sysv_shmsys"	}, /* 1052 */
-	{ 0,	0,	printargs,		"sysv_semsys"	}, /* 1053 */
-	{ 0,	0,	printargs,		"sysv_ioctl"	}, /* 1054 */
-	{ 0,	0,	printargs,		"sysv_uadmin"	}, /* 1055 */
-	{ 0,	0,	printargs,		"sysv_sysmp"	}, /* 1056 */
-	{ 0,	0,	printargs,		"sysv_utssys"	}, /* 1057 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 1058 */
-	{ 0,	0,	printargs,		"sysv_execve"	}, /* 1059 */
-	{ 0,	0,	printargs,		"sysv_umask"	}, /* 1060 */
-	{ 0,	0,	printargs,		"sysv_chroot"	}, /* 1061 */
-	{ 0,	0,	printargs,		"sysv_fcntl"	}, /* 1062 */
-	{ 0,	0,	printargs,		"sysv_ulimit"	}, /* 1063 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 1064 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 1065 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 1066 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 1067 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 1068 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 1069 */
-	{ 0,	0,	printargs,		"sysv_advfs"	}, /* 1070 */
-	{ 0,	0,	printargs,		"sysv_unadvfs"	}, /* 1071 */
-	{ 0,	0,	printargs,		"sysv_rmount"	}, /* 1072 */
-	{ 0,	0,	printargs,		"sysv_rumount"	}, /* 1073 */
-	{ 0,	0,	printargs,		"sysv_rfstart"	}, /* 1074 */
-	{ 0,	0,	printargs,		"sysv_getrlimit64"	}, /* 1075 */
-	{ 0,	0,	printargs,		"sysv_setrlimit64"	}, /* 1076 */
-	{ 0,	0,	printargs,		"sysv_nanosleep"	}, /* 1077 */
-	{ 0,	0,	printargs,		"sysv_lseek64"	}, /* 1078 */
-	{ 0,	0,	printargs,		"sysv_rmdir"	}, /* 1079 */
-	{ 0,	0,	printargs,		"sysv_mkdir"	}, /* 1080 */
-	{ 0,	0,	printargs,		"sysv_getdents"	}, /* 1081 */
-	{ 0,	0,	printargs,		"sysv_sginap"	}, /* 1082 */
-	{ 0,	0,	printargs,		"sysv_sgikopt"	}, /* 1083 */
-	{ 0,	0,	printargs,		"sysv_sysfs"	}, /* 1084 */
-	{ 0,	0,	printargs,		"sysv_getmsg"	}, /* 1085 */
-	{ 0,	0,	printargs,		"sysv_putmsg"	}, /* 1086 */
-	{ 0,	0,	printargs,		"sysv_poll"	}, /* 1087 */
-	{ 0,	0,	printargs,		"sysv_sigreturn"	}, /* 1088 */
-	{ 0,	0,	printargs,		"sysv_accept"	}, /* 1089 */
-	{ 0,	0,	printargs,		"sysv_bind"	}, /* 1090 */
-	{ 0,	0,	printargs,		"sysv_connect"	}, /* 1091 */
-	{ 0,	0,	printargs,		"sysv_gethostid"	}, /* 1092 */
-	{ 0,	0,	printargs,		"sysv_getpeername"	}, /* 1093 */
-	{ 0,	0,	printargs,		"sysv_getsockname"	}, /* 1094 */
-	{ 0,	0,	printargs,		"sysv_getsockopt"	}, /* 1095 */
-	{ 0,	0,	printargs,		"sysv_listen"	}, /* 1096 */
-	{ 0,	0,	printargs,		"sysv_recv"	}, /* 1097 */
-	{ 0,	0,	printargs,		"sysv_recvfrom"	}, /* 1098 */
-	{ 0,	0,	printargs,		"sysv_recvmsg"	}, /* 1099 */
-	{ 0,	0,	printargs,		"sysv_select"	}, /* 1100 */
-	{ 0,	0,	printargs,		"sysv_send"	}, /* 1101 */
-	{ 0,	0,	printargs,		"sysv_sendmsg"	}, /* 1102 */
-	{ 0,	0,	printargs,		"sysv_sendto"	}, /* 1103 */
-	{ 0,	0,	printargs,		"sysv_sethostid"	}, /* 1104 */
-	{ 0,	0,	printargs,		"sysv_setsockopt"	}, /* 1105 */
-	{ 0,	0,	printargs,		"sysv_shutdown"	}, /* 1106 */
-	{ 0,	0,	printargs,		"sysv_socket"	}, /* 1107 */
-	{ 0,	0,	printargs,		"sysv_gethostname"	}, /* 1108 */
-	{ 0,	0,	printargs,		"sysv_sethostname"	}, /* 1109 */
-	{ 0,	0,	printargs,		"sysv_getdomainname"	}, /* 1110 */
-	{ 0,	0,	printargs,		"sysv_setdomainname"	}, /* 1111 */
-	{ 0,	0,	printargs,		"sysv_truncate"	}, /* 1112 */
-	{ 0,	0,	printargs,		"sysv_ftruncate"	}, /* 1113 */
-	{ 0,	0,	printargs,		"sysv_rename"	}, /* 1114 */
-	{ 0,	0,	printargs,		"sysv_symlink"	}, /* 1115 */
-	{ 0,	0,	printargs,		"sysv_readlink"	}, /* 1116 */
-	{ 0,	0,	printargs,		"sysv_lstat"	}, /* 1117 */
-	{ 0,	0,	printargs,		"sysv_nfsmount"	}, /* 1118 */
-	{ 0,	0,	printargs,		"sysv_nfssvc"	}, /* 1119 */
-	{ 0,	0,	printargs,		"sysv_getfh"	}, /* 1120 */
-	{ 0,	0,	printargs,		"sysv_async_daemon"	}, /* 1121 */
-	{ 0,	0,	printargs,		"sysv_exportfs"	}, /* 1122 */
-	{ 0,	0,	printargs,		"sysv_setregid"	}, /* 1123 */
-	{ 0,	0,	printargs,		"sysv_setreuid"	}, /* 1124 */
-	{ 0,	0,	printargs,		"sysv_getitimer"	}, /* 1125 */
-	{ 0,	0,	printargs,		"sysv_setitimer"	}, /* 1126 */
-	{ 0,	0,	printargs,		"sysv_adjtime"	}, /* 1127 */
-	{ 0,	0,	printargs,		"sysv_BSD_getime"	}, /* 1128 */
-	{ 0,	0,	printargs,		"sysv_sproc"	}, /* 1129 */
-	{ 0,	0,	printargs,		"sysv_prctl"	}, /* 1130 */
-	{ 0,	0,	printargs,		"sysv_procblk"	}, /* 1131 */
-	{ 0,	0,	printargs,		"sysv_sprocsp"	}, /* 1132 */
-	{ 0,	0,	printargs,		"sysv_sgigsc"	}, /* 1133 */
-	{ 0,	0,	printargs,		"sysv_mmap"	}, /* 1134 */
-	{ 0,	0,	printargs,		"sysv_munmap"	}, /* 1135 */
-	{ 0,	0,	printargs,		"sysv_mprotect"	}, /* 1136 */
-	{ 0,	0,	printargs,		"sysv_msync"	}, /* 1137 */
-	{ 0,	0,	printargs,		"sysv_madvise"	}, /* 1138 */
-	{ 0,	0,	printargs,		"sysv_pagelock"	}, /* 1139 */
-	{ 0,	0,	printargs,		"sysv_getpagesize"	}, /* 1140 */
-	{ 0,	0,	printargs,		"sysv_quotactl"	}, /* 1141 */
-	{ 0,	0,	printargs,		"sysv_libdetach"	}, /* 1142 */
-	{ 0,	0,	printargs,		"sysv_BSDgetpgrp"	}, /* 1143 */
-	{ 0,	0,	printargs,		"sysv_BSDsetpgrp"	}, /* 1144 */
-	{ 0,	0,	printargs,		"sysv_vhangup"	}, /* 1145 */
-	{ 0,	0,	printargs,		"sysv_fsync"	}, /* 1146 */
-	{ 0,	0,	printargs,		"sysv_fchdir"	}, /* 1147 */
-	{ 0,	0,	printargs,		"sysv_getrlimit"	}, /* 1148 */
-	{ 0,	0,	printargs,		"sysv_setrlimit"	}, /* 1149 */
-	{ 0,	0,	printargs,		"sysv_cacheflush"	}, /* 1150 */
-	{ 0,	0,	printargs,		"sysv_cachectl"	}, /* 1151 */
-	{ 0,	0,	printargs,		"sysv_fchown"	}, /* 1152 */
-	{ 0,	0,	printargs,		"sysv_fchmod"	}, /* 1153 */
-	{ 0,	0,	printargs,		"sysv_wait3"	}, /* 1154 */
-	{ 0,	0,	printargs,		"sysv_socketpair"	}, /* 1155 */
-	{ 0,	0,	printargs,		"sysv_sysinfo"	}, /* 1156 */
-	{ 0,	0,	printargs,		"sysv_nuname"	}, /* 1157 */
-	{ 0,	0,	printargs,		"sysv_xstat"	}, /* 1158 */
-	{ 0,	0,	printargs,		"sysv_lxstat"	}, /* 1159 */
-	{ 0,	0,	printargs,		"sysv_fxstat"	}, /* 1160 */
-	{ 0,	0,	printargs,		"sysv_xmknod"	}, /* 1161 */
-	{ 0,	0,	printargs,		"sysv_ksigaction"	}, /* 1162 */
-	{ 0,	0,	printargs,		"sysv_sigpending"	}, /* 1163 */
-	{ 0,	0,	printargs,		"sysv_sigprocmask"	}, /* 1164 */
-	{ 0,	0,	printargs,		"sysv_sigsuspend"	}, /* 1165 */
-	{ 0,	0,	printargs,		"sysv_sigpoll"	}, /* 1166 */
-	{ 0,	0,	printargs,		"sysv_swapctl"	}, /* 1167 */
-	{ 0,	0,	printargs,		"sysv_getcontext"	}, /* 1168 */
-	{ 0,	0,	printargs,		"sysv_setcontext"	}, /* 1169 */
-	{ 0,	0,	printargs,		"sysv_waitsys"	}, /* 1170 */
-	{ 0,	0,	printargs,		"sysv_sigstack"	}, /* 1171 */
-	{ 0,	0,	printargs,		"sysv_sigaltstack"	}, /* 1172 */
-	{ 0,	0,	printargs,		"sysv_sigsendset"	}, /* 1173 */
-	{ 0,	0,	printargs,		"sysv_statvfs"	}, /* 1174 */
-	{ 0,	0,	printargs,		"sysv_fstatvfs"	}, /* 1175 */
-	{ 0,	0,	printargs,		"sysv_getpmsg"	}, /* 1176 */
-	{ 0,	0,	printargs,		"sysv_putpmsg"	}, /* 1177 */
-	{ 0,	0,	printargs,		"sysv_lchown"	}, /* 1178 */
-	{ 0,	0,	printargs,		"sysv_priocntl"	}, /* 1179 */
-	{ 0,	0,	printargs,		"sysv_ksigqueue"	}, /* 1180 */
-	{ 0,	0,	printargs,		"sysv_readv"	}, /* 1181 */
-	{ 0,	0,	printargs,		"sysv_writev"	}, /* 1182 */
-	{ 0,	0,	printargs,		"sysv_truncate64"	}, /* 1183 */
-	{ 0,	0,	printargs,		"sysv_ftruncate64"	}, /* 1184 */
-	{ 0,	0,	printargs,		"sysv_mmap64"	}, /* 1185 */
-	{ 0,	0,	printargs,		"sysv_dmi"	}, /* 1186 */
-	{ 0,	0,	printargs,		"sysv_pread"	}, /* 1187 */
-	{ 0,	0,	printargs,		"sysv_pwrite"	}, /* 1188 */
-	{ 0,	0,	NULL,			NULL		}, /* 1189 */
-	{ 0,	0,	NULL,			NULL		}, /* 1190 */
-	{ 0,	0,	NULL,			NULL		}, /* 1191 */
-	{ 0,	0,	NULL,			NULL		}, /* 1192 */
-	{ 0,	0,	NULL,			NULL		}, /* 1193 */
-	{ 0,	0,	NULL,			NULL		}, /* 1194 */
-	{ 0,	0,	NULL,			NULL		}, /* 1195 */
-	{ 0,	0,	NULL,			NULL		}, /* 1196 */
-	{ 0,	0,	NULL,			NULL		}, /* 1197 */
-	{ 0,	0,	NULL,			NULL		}, /* 1198 */
-	{ 0,	0,	NULL,			NULL		}, /* 1199 */
-	{ 0,	0,	NULL,			NULL		}, /* 1200 */
-	{ 0,	0,	NULL,			NULL		}, /* 1201 */
-	{ 0,	0,	NULL,			NULL		}, /* 1202 */
-	{ 0,	0,	NULL,			NULL		}, /* 1203 */
-	{ 0,	0,	NULL,			NULL		}, /* 1204 */
-	{ 0,	0,	NULL,			NULL		}, /* 1205 */
-	{ 0,	0,	NULL,			NULL		}, /* 1206 */
-	{ 0,	0,	NULL,			NULL		}, /* 1207 */
-	{ 0,	0,	NULL,			NULL		}, /* 1208 */
-	{ 0,	0,	NULL,			NULL		}, /* 1209 */
-	{ 0,	0,	NULL,			NULL		}, /* 1210 */
-	{ 0,	0,	NULL,			NULL		}, /* 1211 */
-	{ 0,	0,	NULL,			NULL		}, /* 1212 */
-	{ 0,	0,	NULL,			NULL		}, /* 1213 */
-	{ 0,	0,	NULL,			NULL		}, /* 1214 */
-	{ 0,	0,	NULL,			NULL		}, /* 1215 */
-	{ 0,	0,	NULL,			NULL		}, /* 1216 */
-	{ 0,	0,	NULL,			NULL		}, /* 1217 */
-	{ 0,	0,	NULL,			NULL		}, /* 1218 */
-	{ 0,	0,	NULL,			NULL		}, /* 1219 */
-	{ 0,	0,	NULL,			NULL		}, /* 1220 */
-	{ 0,	0,	NULL,			NULL		}, /* 1221 */
-	{ 0,	0,	NULL,			NULL		}, /* 1222 */
-	{ 0,	0,	NULL,			NULL		}, /* 1223 */
-	{ 0,	0,	NULL,			NULL		}, /* 1224 */
-	{ 0,	0,	NULL,			NULL		}, /* 1225 */
-	{ 0,	0,	NULL,			NULL		}, /* 1226 */
-	{ 0,	0,	NULL,			NULL		}, /* 1227 */
-	{ 0,	0,	NULL,			NULL		}, /* 1228 */
-	{ 0,	0,	NULL,			NULL		}, /* 1229 */
-	{ 0,	0,	NULL,			NULL		}, /* 1230 */
-	{ 0,	0,	NULL,			NULL		}, /* 1231 */
-	{ 0,	0,	NULL,			NULL		}, /* 1232 */
-	{ 0,	0,	NULL,			NULL		}, /* 1233 */
-	{ 0,	0,	NULL,			NULL		}, /* 1234 */
-	{ 0,	0,	NULL,			NULL		}, /* 1235 */
-	{ 0,	0,	NULL,			NULL		}, /* 1236 */
-	{ 0,	0,	NULL,			NULL		}, /* 1237 */
-	{ 0,	0,	NULL,			NULL		}, /* 1238 */
-	{ 0,	0,	NULL,			NULL		}, /* 1239 */
-	{ 0,	0,	NULL,			NULL		}, /* 1240 */
-	{ 0,	0,	NULL,			NULL		}, /* 1241 */
-	{ 0,	0,	NULL,			NULL		}, /* 1242 */
-	{ 0,	0,	NULL,			NULL		}, /* 1243 */
-	{ 0,	0,	NULL,			NULL		}, /* 1244 */
-	{ 0,	0,	NULL,			NULL		}, /* 1245 */
-	{ 0,	0,	NULL,			NULL		}, /* 1246 */
-	{ 0,	0,	NULL,			NULL		}, /* 1247 */
-	{ 0,	0,	NULL,			NULL		}, /* 1248 */
-	{ 0,	0,	NULL,			NULL		}, /* 1249 */
-	{ 0,	0,	NULL,			NULL		}, /* 1250 */
-	{ 0,	0,	NULL,			NULL		}, /* 1251 */
-	{ 0,	0,	NULL,			NULL		}, /* 1252 */
-	{ 0,	0,	NULL,			NULL		}, /* 1253 */
-	{ 0,	0,	NULL,			NULL		}, /* 1254 */
-	{ 0,	0,	NULL,			NULL		}, /* 1255 */
-	{ 0,	0,	NULL,			NULL		}, /* 1256 */
-	{ 0,	0,	NULL,			NULL		}, /* 1257 */
-	{ 0,	0,	NULL,			NULL		}, /* 1258 */
-	{ 0,	0,	NULL,			NULL		}, /* 1259 */
-	{ 0,	0,	NULL,			NULL		}, /* 1260 */
-	{ 0,	0,	NULL,			NULL		}, /* 1261 */
-	{ 0,	0,	NULL,			NULL		}, /* 1262 */
-	{ 0,	0,	NULL,			NULL		}, /* 1263 */
-	{ 0,	0,	NULL,			NULL		}, /* 1264 */
-	{ 0,	0,	NULL,			NULL		}, /* 1265 */
-	{ 0,	0,	NULL,			NULL		}, /* 1266 */
-	{ 0,	0,	NULL,			NULL		}, /* 1267 */
-	{ 0,	0,	NULL,			NULL		}, /* 1268 */
-	{ 0,	0,	NULL,			NULL		}, /* 1269 */
-	{ 0,	0,	NULL,			NULL		}, /* 1270 */
-	{ 0,	0,	NULL,			NULL		}, /* 1271 */
-	{ 0,	0,	NULL,			NULL		}, /* 1272 */
-	{ 0,	0,	NULL,			NULL		}, /* 1273 */
-	{ 0,	0,	NULL,			NULL		}, /* 1274 */
-	{ 0,	0,	NULL,			NULL		}, /* 1275 */
-	{ 0,	0,	NULL,			NULL		}, /* 1276 */
-	{ 0,	0,	NULL,			NULL		}, /* 1277 */
-	{ 0,	0,	NULL,			NULL		}, /* 1278 */
-	{ 0,	0,	NULL,			NULL		}, /* 1279 */
-	{ 0,	0,	NULL,			NULL		}, /* 1280 */
-	{ 0,	0,	NULL,			NULL		}, /* 1281 */
-	{ 0,	0,	NULL,			NULL		}, /* 1282 */
-	{ 0,	0,	NULL,			NULL		}, /* 1283 */
-	{ 0,	0,	NULL,			NULL		}, /* 1284 */
-	{ 0,	0,	NULL,			NULL		}, /* 1285 */
-	{ 0,	0,	NULL,			NULL		}, /* 1286 */
-	{ 0,	0,	NULL,			NULL		}, /* 1287 */
-	{ 0,	0,	NULL,			NULL		}, /* 1288 */
-	{ 0,	0,	NULL,			NULL		}, /* 1289 */
-	{ 0,	0,	NULL,			NULL		}, /* 1290 */
-	{ 0,	0,	NULL,			NULL		}, /* 1291 */
-	{ 0,	0,	NULL,			NULL		}, /* 1292 */
-	{ 0,	0,	NULL,			NULL		}, /* 1293 */
-	{ 0,	0,	NULL,			NULL		}, /* 1294 */
-	{ 0,	0,	NULL,			NULL		}, /* 1295 */
-	{ 0,	0,	NULL,			NULL		}, /* 1296 */
-	{ 0,	0,	NULL,			NULL		}, /* 1297 */
-	{ 0,	0,	NULL,			NULL		}, /* 1298 */
-	{ 0,	0,	NULL,			NULL		}, /* 1299 */
-	{ 0,	0,	NULL,			NULL		}, /* 1300 */
-	{ 0,	0,	NULL,			NULL		}, /* 1301 */
-	{ 0,	0,	NULL,			NULL		}, /* 1302 */
-	{ 0,	0,	NULL,			NULL		}, /* 1303 */
-	{ 0,	0,	NULL,			NULL		}, /* 1304 */
-	{ 0,	0,	NULL,			NULL		}, /* 1305 */
-	{ 0,	0,	NULL,			NULL		}, /* 1306 */
-	{ 0,	0,	NULL,			NULL		}, /* 1307 */
-	{ 0,	0,	NULL,			NULL		}, /* 1308 */
-	{ 0,	0,	NULL,			NULL		}, /* 1309 */
-	{ 0,	0,	NULL,			NULL		}, /* 1310 */
-	{ 0,	0,	NULL,			NULL		}, /* 1311 */
-	{ 0,	0,	NULL,			NULL		}, /* 1312 */
-	{ 0,	0,	NULL,			NULL		}, /* 1313 */
-	{ 0,	0,	NULL,			NULL		}, /* 1314 */
-	{ 0,	0,	NULL,			NULL		}, /* 1315 */
-	{ 0,	0,	NULL,			NULL		}, /* 1316 */
-	{ 0,	0,	NULL,			NULL		}, /* 1317 */
-	{ 0,	0,	NULL,			NULL		}, /* 1318 */
-	{ 0,	0,	NULL,			NULL		}, /* 1319 */
-	{ 0,	0,	NULL,			NULL		}, /* 1320 */
-	{ 0,	0,	NULL,			NULL		}, /* 1321 */
-	{ 0,	0,	NULL,			NULL		}, /* 1322 */
-	{ 0,	0,	NULL,			NULL		}, /* 1323 */
-	{ 0,	0,	NULL,			NULL		}, /* 1324 */
-	{ 0,	0,	NULL,			NULL		}, /* 1325 */
-	{ 0,	0,	NULL,			NULL		}, /* 1326 */
-	{ 0,	0,	NULL,			NULL		}, /* 1327 */
-	{ 0,	0,	NULL,			NULL		}, /* 1328 */
-	{ 0,	0,	NULL,			NULL		}, /* 1329 */
-	{ 0,	0,	NULL,			NULL		}, /* 1330 */
-	{ 0,	0,	NULL,			NULL		}, /* 1331 */
-	{ 0,	0,	NULL,			NULL		}, /* 1332 */
-	{ 0,	0,	NULL,			NULL		}, /* 1333 */
-	{ 0,	0,	NULL,			NULL		}, /* 1334 */
-	{ 0,	0,	NULL,			NULL		}, /* 1335 */
-	{ 0,	0,	NULL,			NULL		}, /* 1336 */
-	{ 0,	0,	NULL,			NULL		}, /* 1337 */
-	{ 0,	0,	NULL,			NULL		}, /* 1338 */
-	{ 0,	0,	NULL,			NULL		}, /* 1339 */
-	{ 0,	0,	NULL,			NULL		}, /* 1340 */
-	{ 0,	0,	NULL,			NULL		}, /* 1341 */
-	{ 0,	0,	NULL,			NULL		}, /* 1342 */
-	{ 0,	0,	NULL,			NULL		}, /* 1343 */
-	{ 0,	0,	NULL,			NULL		}, /* 1344 */
-	{ 0,	0,	NULL,			NULL		}, /* 1345 */
-	{ 0,	0,	NULL,			NULL		}, /* 1346 */
-	{ 0,	0,	NULL,			NULL		}, /* 1347 */
-	{ 0,	0,	NULL,			NULL		}, /* 1348 */
-	{ 0,	0,	NULL,			NULL		}, /* 1349 */
-	{ 0,	0,	NULL,			NULL		}, /* 1350 */
-	{ 0,	0,	NULL,			NULL		}, /* 1351 */
-	{ 0,	0,	NULL,			NULL		}, /* 1352 */
-	{ 0,	0,	NULL,			NULL		}, /* 1353 */
-	{ 0,	0,	NULL,			NULL		}, /* 1354 */
-	{ 0,	0,	NULL,			NULL		}, /* 1355 */
-	{ 0,	0,	NULL,			NULL		}, /* 1356 */
-	{ 0,	0,	NULL,			NULL		}, /* 1357 */
-	{ 0,	0,	NULL,			NULL		}, /* 1358 */
-	{ 0,	0,	NULL,			NULL		}, /* 1359 */
-	{ 0,	0,	NULL,			NULL		}, /* 1360 */
-	{ 0,	0,	NULL,			NULL		}, /* 1361 */
-	{ 0,	0,	NULL,			NULL		}, /* 1362 */
-	{ 0,	0,	NULL,			NULL		}, /* 1363 */
-	{ 0,	0,	NULL,			NULL		}, /* 1364 */
-	{ 0,	0,	NULL,			NULL		}, /* 1365 */
-	{ 0,	0,	NULL,			NULL		}, /* 1366 */
-	{ 0,	0,	NULL,			NULL		}, /* 1367 */
-	{ 0,	0,	NULL,			NULL		}, /* 1368 */
-	{ 0,	0,	NULL,			NULL		}, /* 1369 */
-	{ 0,	0,	NULL,			NULL		}, /* 1370 */
-	{ 0,	0,	NULL,			NULL		}, /* 1371 */
-	{ 0,	0,	NULL,			NULL		}, /* 1372 */
-	{ 0,	0,	NULL,			NULL		}, /* 1373 */
-	{ 0,	0,	NULL,			NULL		}, /* 1374 */
-	{ 0,	0,	NULL,			NULL		}, /* 1375 */
-	{ 0,	0,	NULL,			NULL		}, /* 1376 */
-	{ 0,	0,	NULL,			NULL		}, /* 1377 */
-	{ 0,	0,	NULL,			NULL		}, /* 1378 */
-	{ 0,	0,	NULL,			NULL		}, /* 1379 */
-	{ 0,	0,	NULL,			NULL		}, /* 1380 */
-	{ 0,	0,	NULL,			NULL		}, /* 1381 */
-	{ 0,	0,	NULL,			NULL		}, /* 1382 */
-	{ 0,	0,	NULL,			NULL		}, /* 1383 */
-	{ 0,	0,	NULL,			NULL		}, /* 1384 */
-	{ 0,	0,	NULL,			NULL		}, /* 1385 */
-	{ 0,	0,	NULL,			NULL		}, /* 1386 */
-	{ 0,	0,	NULL,			NULL		}, /* 1387 */
-	{ 0,	0,	NULL,			NULL		}, /* 1388 */
-	{ 0,	0,	NULL,			NULL		}, /* 1389 */
-	{ 0,	0,	NULL,			NULL		}, /* 1390 */
-	{ 0,	0,	NULL,			NULL		}, /* 1391 */
-	{ 0,	0,	NULL,			NULL		}, /* 1392 */
-	{ 0,	0,	NULL,			NULL		}, /* 1393 */
-	{ 0,	0,	NULL,			NULL		}, /* 1394 */
-	{ 0,	0,	NULL,			NULL		}, /* 1395 */
-	{ 0,	0,	NULL,			NULL		}, /* 1396 */
-	{ 0,	0,	NULL,			NULL		}, /* 1397 */
-	{ 0,	0,	NULL,			NULL		}, /* 1398 */
-	{ 0,	0,	NULL,			NULL		}, /* 1399 */
-	{ 0,	0,	NULL,			NULL		}, /* 1400 */
-	{ 0,	0,	NULL,			NULL		}, /* 1401 */
-	{ 0,	0,	NULL,			NULL		}, /* 1402 */
-	{ 0,	0,	NULL,			NULL		}, /* 1403 */
-	{ 0,	0,	NULL,			NULL		}, /* 1404 */
-	{ 0,	0,	NULL,			NULL		}, /* 1405 */
-	{ 0,	0,	NULL,			NULL		}, /* 1406 */
-	{ 0,	0,	NULL,			NULL		}, /* 1407 */
-	{ 0,	0,	NULL,			NULL		}, /* 1408 */
-	{ 0,	0,	NULL,			NULL		}, /* 1409 */
-	{ 0,	0,	NULL,			NULL		}, /* 1410 */
-	{ 0,	0,	NULL,			NULL		}, /* 1411 */
-	{ 0,	0,	NULL,			NULL		}, /* 1412 */
-	{ 0,	0,	NULL,			NULL		}, /* 1413 */
-	{ 0,	0,	NULL,			NULL		}, /* 1414 */
-	{ 0,	0,	NULL,			NULL		}, /* 1415 */
-	{ 0,	0,	NULL,			NULL		}, /* 1416 */
-	{ 0,	0,	NULL,			NULL		}, /* 1417 */
-	{ 0,	0,	NULL,			NULL		}, /* 1418 */
-	{ 0,	0,	NULL,			NULL		}, /* 1419 */
-	{ 0,	0,	NULL,			NULL		}, /* 1420 */
-	{ 0,	0,	NULL,			NULL		}, /* 1421 */
-	{ 0,	0,	NULL,			NULL		}, /* 1422 */
-	{ 0,	0,	NULL,			NULL		}, /* 1423 */
-	{ 0,	0,	NULL,			NULL		}, /* 1424 */
-	{ 0,	0,	NULL,			NULL		}, /* 1425 */
-	{ 0,	0,	NULL,			NULL		}, /* 1426 */
-	{ 0,	0,	NULL,			NULL		}, /* 1427 */
-	{ 0,	0,	NULL,			NULL		}, /* 1428 */
-	{ 0,	0,	NULL,			NULL		}, /* 1429 */
-	{ 0,	0,	NULL,			NULL		}, /* 1430 */
-	{ 0,	0,	NULL,			NULL		}, /* 1431 */
-	{ 0,	0,	NULL,			NULL		}, /* 1432 */
-	{ 0,	0,	NULL,			NULL		}, /* 1433 */
-	{ 0,	0,	NULL,			NULL		}, /* 1434 */
-	{ 0,	0,	NULL,			NULL		}, /* 1435 */
-	{ 0,	0,	NULL,			NULL		}, /* 1436 */
-	{ 0,	0,	NULL,			NULL		}, /* 1437 */
-	{ 0,	0,	NULL,			NULL		}, /* 1438 */
-	{ 0,	0,	NULL,			NULL		}, /* 1439 */
-	{ 0,	0,	NULL,			NULL		}, /* 1440 */
-	{ 0,	0,	NULL,			NULL		}, /* 1441 */
-	{ 0,	0,	NULL,			NULL		}, /* 1442 */
-	{ 0,	0,	NULL,			NULL		}, /* 1443 */
-	{ 0,	0,	NULL,			NULL		}, /* 1444 */
-	{ 0,	0,	NULL,			NULL		}, /* 1445 */
-	{ 0,	0,	NULL,			NULL		}, /* 1446 */
-	{ 0,	0,	NULL,			NULL		}, /* 1447 */
-	{ 0,	0,	NULL,			NULL		}, /* 1448 */
-	{ 0,	0,	NULL,			NULL		}, /* 1449 */
-	{ 0,	0,	NULL,			NULL		}, /* 1450 */
-	{ 0,	0,	NULL,			NULL		}, /* 1451 */
-	{ 0,	0,	NULL,			NULL		}, /* 1452 */
-	{ 0,	0,	NULL,			NULL		}, /* 1453 */
-	{ 0,	0,	NULL,			NULL		}, /* 1454 */
-	{ 0,	0,	NULL,			NULL		}, /* 1455 */
-	{ 0,	0,	NULL,			NULL		}, /* 1456 */
-	{ 0,	0,	NULL,			NULL		}, /* 1457 */
-	{ 0,	0,	NULL,			NULL		}, /* 1458 */
-	{ 0,	0,	NULL,			NULL		}, /* 1459 */
-	{ 0,	0,	NULL,			NULL		}, /* 1460 */
-	{ 0,	0,	NULL,			NULL		}, /* 1461 */
-	{ 0,	0,	NULL,			NULL		}, /* 1462 */
-	{ 0,	0,	NULL,			NULL		}, /* 1463 */
-	{ 0,	0,	NULL,			NULL		}, /* 1464 */
-	{ 0,	0,	NULL,			NULL		}, /* 1465 */
-	{ 0,	0,	NULL,			NULL		}, /* 1466 */
-	{ 0,	0,	NULL,			NULL		}, /* 1467 */
-	{ 0,	0,	NULL,			NULL		}, /* 1468 */
-	{ 0,	0,	NULL,			NULL		}, /* 1469 */
-	{ 0,	0,	NULL,			NULL		}, /* 1470 */
-	{ 0,	0,	NULL,			NULL		}, /* 1471 */
-	{ 0,	0,	NULL,			NULL		}, /* 1472 */
-	{ 0,	0,	NULL,			NULL		}, /* 1473 */
-	{ 0,	0,	NULL,			NULL		}, /* 1474 */
-	{ 0,	0,	NULL,			NULL		}, /* 1475 */
-	{ 0,	0,	NULL,			NULL		}, /* 1476 */
-	{ 0,	0,	NULL,			NULL		}, /* 1477 */
-	{ 0,	0,	NULL,			NULL		}, /* 1478 */
-	{ 0,	0,	NULL,			NULL		}, /* 1479 */
-	{ 0,	0,	NULL,			NULL		}, /* 1480 */
-	{ 0,	0,	NULL,			NULL		}, /* 1481 */
-	{ 0,	0,	NULL,			NULL		}, /* 1482 */
-	{ 0,	0,	NULL,			NULL		}, /* 1483 */
-	{ 0,	0,	NULL,			NULL		}, /* 1484 */
-	{ 0,	0,	NULL,			NULL		}, /* 1485 */
-	{ 0,	0,	NULL,			NULL		}, /* 1486 */
-	{ 0,	0,	NULL,			NULL		}, /* 1487 */
-	{ 0,	0,	NULL,			NULL		}, /* 1488 */
-	{ 0,	0,	NULL,			NULL		}, /* 1489 */
-	{ 0,	0,	NULL,			NULL		}, /* 1490 */
-	{ 0,	0,	NULL,			NULL		}, /* 1491 */
-	{ 0,	0,	NULL,			NULL		}, /* 1492 */
-	{ 0,	0,	NULL,			NULL		}, /* 1493 */
-	{ 0,	0,	NULL,			NULL		}, /* 1494 */
-	{ 0,	0,	NULL,			NULL		}, /* 1495 */
-	{ 0,	0,	NULL,			NULL		}, /* 1496 */
-	{ 0,	0,	NULL,			NULL		}, /* 1497 */
-	{ 0,	0,	NULL,			NULL		}, /* 1498 */
-	{ 0,	0,	NULL,			NULL		}, /* 1499 */
-	{ 0,	0,	NULL,			NULL		}, /* 1500 */
-	{ 0,	0,	NULL,			NULL		}, /* 1501 */
-	{ 0,	0,	NULL,			NULL		}, /* 1502 */
-	{ 0,	0,	NULL,			NULL		}, /* 1503 */
-	{ 0,	0,	NULL,			NULL		}, /* 1504 */
-	{ 0,	0,	NULL,			NULL		}, /* 1505 */
-	{ 0,	0,	NULL,			NULL		}, /* 1506 */
-	{ 0,	0,	NULL,			NULL		}, /* 1507 */
-	{ 0,	0,	NULL,			NULL		}, /* 1508 */
-	{ 0,	0,	NULL,			NULL		}, /* 1509 */
-	{ 0,	0,	NULL,			NULL		}, /* 1510 */
-	{ 0,	0,	NULL,			NULL		}, /* 1511 */
-	{ 0,	0,	NULL,			NULL		}, /* 1512 */
-	{ 0,	0,	NULL,			NULL		}, /* 1513 */
-	{ 0,	0,	NULL,			NULL		}, /* 1514 */
-	{ 0,	0,	NULL,			NULL		}, /* 1515 */
-	{ 0,	0,	NULL,			NULL		}, /* 1516 */
-	{ 0,	0,	NULL,			NULL		}, /* 1517 */
-	{ 0,	0,	NULL,			NULL		}, /* 1518 */
-	{ 0,	0,	NULL,			NULL		}, /* 1519 */
-	{ 0,	0,	NULL,			NULL		}, /* 1520 */
-	{ 0,	0,	NULL,			NULL		}, /* 1521 */
-	{ 0,	0,	NULL,			NULL		}, /* 1522 */
-	{ 0,	0,	NULL,			NULL		}, /* 1523 */
-	{ 0,	0,	NULL,			NULL		}, /* 1524 */
-	{ 0,	0,	NULL,			NULL		}, /* 1525 */
-	{ 0,	0,	NULL,			NULL		}, /* 1526 */
-	{ 0,	0,	NULL,			NULL		}, /* 1527 */
-	{ 0,	0,	NULL,			NULL		}, /* 1528 */
-	{ 0,	0,	NULL,			NULL		}, /* 1529 */
-	{ 0,	0,	NULL,			NULL		}, /* 1530 */
-	{ 0,	0,	NULL,			NULL		}, /* 1531 */
-	{ 0,	0,	NULL,			NULL		}, /* 1532 */
-	{ 0,	0,	NULL,			NULL		}, /* 1533 */
-	{ 0,	0,	NULL,			NULL		}, /* 1534 */
-	{ 0,	0,	NULL,			NULL		}, /* 1535 */
-	{ 0,	0,	NULL,			NULL		}, /* 1536 */
-	{ 0,	0,	NULL,			NULL		}, /* 1537 */
-	{ 0,	0,	NULL,			NULL		}, /* 1538 */
-	{ 0,	0,	NULL,			NULL		}, /* 1539 */
-	{ 0,	0,	NULL,			NULL		}, /* 1540 */
-	{ 0,	0,	NULL,			NULL		}, /* 1541 */
-	{ 0,	0,	NULL,			NULL		}, /* 1542 */
-	{ 0,	0,	NULL,			NULL		}, /* 1543 */
-	{ 0,	0,	NULL,			NULL		}, /* 1544 */
-	{ 0,	0,	NULL,			NULL		}, /* 1545 */
-	{ 0,	0,	NULL,			NULL		}, /* 1546 */
-	{ 0,	0,	NULL,			NULL		}, /* 1547 */
-	{ 0,	0,	NULL,			NULL		}, /* 1548 */
-	{ 0,	0,	NULL,			NULL		}, /* 1549 */
-	{ 0,	0,	NULL,			NULL		}, /* 1550 */
-	{ 0,	0,	NULL,			NULL		}, /* 1551 */
-	{ 0,	0,	NULL,			NULL		}, /* 1552 */
-	{ 0,	0,	NULL,			NULL		}, /* 1553 */
-	{ 0,	0,	NULL,			NULL		}, /* 1554 */
-	{ 0,	0,	NULL,			NULL		}, /* 1555 */
-	{ 0,	0,	NULL,			NULL		}, /* 1556 */
-	{ 0,	0,	NULL,			NULL		}, /* 1557 */
-	{ 0,	0,	NULL,			NULL		}, /* 1558 */
-	{ 0,	0,	NULL,			NULL		}, /* 1559 */
-	{ 0,	0,	NULL,			NULL		}, /* 1560 */
-	{ 0,	0,	NULL,			NULL		}, /* 1561 */
-	{ 0,	0,	NULL,			NULL		}, /* 1562 */
-	{ 0,	0,	NULL,			NULL		}, /* 1563 */
-	{ 0,	0,	NULL,			NULL		}, /* 1564 */
-	{ 0,	0,	NULL,			NULL		}, /* 1565 */
-	{ 0,	0,	NULL,			NULL		}, /* 1566 */
-	{ 0,	0,	NULL,			NULL		}, /* 1567 */
-	{ 0,	0,	NULL,			NULL		}, /* 1568 */
-	{ 0,	0,	NULL,			NULL		}, /* 1569 */
-	{ 0,	0,	NULL,			NULL		}, /* 1570 */
-	{ 0,	0,	NULL,			NULL		}, /* 1571 */
-	{ 0,	0,	NULL,			NULL		}, /* 1572 */
-	{ 0,	0,	NULL,			NULL		}, /* 1573 */
-	{ 0,	0,	NULL,			NULL		}, /* 1574 */
-	{ 0,	0,	NULL,			NULL		}, /* 1575 */
-	{ 0,	0,	NULL,			NULL		}, /* 1576 */
-	{ 0,	0,	NULL,			NULL		}, /* 1577 */
-	{ 0,	0,	NULL,			NULL		}, /* 1578 */
-	{ 0,	0,	NULL,			NULL		}, /* 1579 */
-	{ 0,	0,	NULL,			NULL		}, /* 1580 */
-	{ 0,	0,	NULL,			NULL		}, /* 1581 */
-	{ 0,	0,	NULL,			NULL		}, /* 1582 */
-	{ 0,	0,	NULL,			NULL		}, /* 1583 */
-	{ 0,	0,	NULL,			NULL		}, /* 1584 */
-	{ 0,	0,	NULL,			NULL		}, /* 1585 */
-	{ 0,	0,	NULL,			NULL		}, /* 1586 */
-	{ 0,	0,	NULL,			NULL		}, /* 1587 */
-	{ 0,	0,	NULL,			NULL		}, /* 1588 */
-	{ 0,	0,	NULL,			NULL		}, /* 1589 */
-	{ 0,	0,	NULL,			NULL		}, /* 1590 */
-	{ 0,	0,	NULL,			NULL		}, /* 1591 */
-	{ 0,	0,	NULL,			NULL		}, /* 1592 */
-	{ 0,	0,	NULL,			NULL		}, /* 1593 */
-	{ 0,	0,	NULL,			NULL		}, /* 1594 */
-	{ 0,	0,	NULL,			NULL		}, /* 1595 */
-	{ 0,	0,	NULL,			NULL		}, /* 1596 */
-	{ 0,	0,	NULL,			NULL		}, /* 1597 */
-	{ 0,	0,	NULL,			NULL		}, /* 1598 */
-	{ 0,	0,	NULL,			NULL		}, /* 1599 */
-	{ 0,	0,	NULL,			NULL		}, /* 1600 */
-	{ 0,	0,	NULL,			NULL		}, /* 1601 */
-	{ 0,	0,	NULL,			NULL		}, /* 1602 */
-	{ 0,	0,	NULL,			NULL		}, /* 1603 */
-	{ 0,	0,	NULL,			NULL		}, /* 1604 */
-	{ 0,	0,	NULL,			NULL		}, /* 1605 */
-	{ 0,	0,	NULL,			NULL		}, /* 1606 */
-	{ 0,	0,	NULL,			NULL		}, /* 1607 */
-	{ 0,	0,	NULL,			NULL		}, /* 1608 */
-	{ 0,	0,	NULL,			NULL		}, /* 1609 */
-	{ 0,	0,	NULL,			NULL		}, /* 1610 */
-	{ 0,	0,	NULL,			NULL		}, /* 1611 */
-	{ 0,	0,	NULL,			NULL		}, /* 1612 */
-	{ 0,	0,	NULL,			NULL		}, /* 1613 */
-	{ 0,	0,	NULL,			NULL		}, /* 1614 */
-	{ 0,	0,	NULL,			NULL		}, /* 1615 */
-	{ 0,	0,	NULL,			NULL		}, /* 1616 */
-	{ 0,	0,	NULL,			NULL		}, /* 1617 */
-	{ 0,	0,	NULL,			NULL		}, /* 1618 */
-	{ 0,	0,	NULL,			NULL		}, /* 1619 */
-	{ 0,	0,	NULL,			NULL		}, /* 1620 */
-	{ 0,	0,	NULL,			NULL		}, /* 1621 */
-	{ 0,	0,	NULL,			NULL		}, /* 1622 */
-	{ 0,	0,	NULL,			NULL		}, /* 1623 */
-	{ 0,	0,	NULL,			NULL		}, /* 1624 */
-	{ 0,	0,	NULL,			NULL		}, /* 1625 */
-	{ 0,	0,	NULL,			NULL		}, /* 1626 */
-	{ 0,	0,	NULL,			NULL		}, /* 1627 */
-	{ 0,	0,	NULL,			NULL		}, /* 1628 */
-	{ 0,	0,	NULL,			NULL		}, /* 1629 */
-	{ 0,	0,	NULL,			NULL		}, /* 1630 */
-	{ 0,	0,	NULL,			NULL		}, /* 1631 */
-	{ 0,	0,	NULL,			NULL		}, /* 1632 */
-	{ 0,	0,	NULL,			NULL		}, /* 1633 */
-	{ 0,	0,	NULL,			NULL		}, /* 1634 */
-	{ 0,	0,	NULL,			NULL		}, /* 1635 */
-	{ 0,	0,	NULL,			NULL		}, /* 1636 */
-	{ 0,	0,	NULL,			NULL		}, /* 1637 */
-	{ 0,	0,	NULL,			NULL		}, /* 1638 */
-	{ 0,	0,	NULL,			NULL		}, /* 1639 */
-	{ 0,	0,	NULL,			NULL		}, /* 1640 */
-	{ 0,	0,	NULL,			NULL		}, /* 1641 */
-	{ 0,	0,	NULL,			NULL		}, /* 1642 */
-	{ 0,	0,	NULL,			NULL		}, /* 1643 */
-	{ 0,	0,	NULL,			NULL		}, /* 1644 */
-	{ 0,	0,	NULL,			NULL		}, /* 1645 */
-	{ 0,	0,	NULL,			NULL		}, /* 1646 */
-	{ 0,	0,	NULL,			NULL		}, /* 1647 */
-	{ 0,	0,	NULL,			NULL		}, /* 1648 */
-	{ 0,	0,	NULL,			NULL		}, /* 1649 */
-	{ 0,	0,	NULL,			NULL		}, /* 1650 */
-	{ 0,	0,	NULL,			NULL		}, /* 1651 */
-	{ 0,	0,	NULL,			NULL		}, /* 1652 */
-	{ 0,	0,	NULL,			NULL		}, /* 1653 */
-	{ 0,	0,	NULL,			NULL		}, /* 1654 */
-	{ 0,	0,	NULL,			NULL		}, /* 1655 */
-	{ 0,	0,	NULL,			NULL		}, /* 1656 */
-	{ 0,	0,	NULL,			NULL		}, /* 1657 */
-	{ 0,	0,	NULL,			NULL		}, /* 1658 */
-	{ 0,	0,	NULL,			NULL		}, /* 1659 */
-	{ 0,	0,	NULL,			NULL		}, /* 1660 */
-	{ 0,	0,	NULL,			NULL		}, /* 1661 */
-	{ 0,	0,	NULL,			NULL		}, /* 1662 */
-	{ 0,	0,	NULL,			NULL		}, /* 1663 */
-	{ 0,	0,	NULL,			NULL		}, /* 1664 */
-	{ 0,	0,	NULL,			NULL		}, /* 1665 */
-	{ 0,	0,	NULL,			NULL		}, /* 1666 */
-	{ 0,	0,	NULL,			NULL		}, /* 1667 */
-	{ 0,	0,	NULL,			NULL		}, /* 1668 */
-	{ 0,	0,	NULL,			NULL		}, /* 1669 */
-	{ 0,	0,	NULL,			NULL		}, /* 1670 */
-	{ 0,	0,	NULL,			NULL		}, /* 1671 */
-	{ 0,	0,	NULL,			NULL		}, /* 1672 */
-	{ 0,	0,	NULL,			NULL		}, /* 1673 */
-	{ 0,	0,	NULL,			NULL		}, /* 1674 */
-	{ 0,	0,	NULL,			NULL		}, /* 1675 */
-	{ 0,	0,	NULL,			NULL		}, /* 1676 */
-	{ 0,	0,	NULL,			NULL		}, /* 1677 */
-	{ 0,	0,	NULL,			NULL		}, /* 1678 */
-	{ 0,	0,	NULL,			NULL		}, /* 1679 */
-	{ 0,	0,	NULL,			NULL		}, /* 1680 */
-	{ 0,	0,	NULL,			NULL		}, /* 1681 */
-	{ 0,	0,	NULL,			NULL		}, /* 1682 */
-	{ 0,	0,	NULL,			NULL		}, /* 1683 */
-	{ 0,	0,	NULL,			NULL		}, /* 1684 */
-	{ 0,	0,	NULL,			NULL		}, /* 1685 */
-	{ 0,	0,	NULL,			NULL		}, /* 1686 */
-	{ 0,	0,	NULL,			NULL		}, /* 1687 */
-	{ 0,	0,	NULL,			NULL		}, /* 1688 */
-	{ 0,	0,	NULL,			NULL		}, /* 1689 */
-	{ 0,	0,	NULL,			NULL		}, /* 1690 */
-	{ 0,	0,	NULL,			NULL		}, /* 1691 */
-	{ 0,	0,	NULL,			NULL		}, /* 1692 */
-	{ 0,	0,	NULL,			NULL		}, /* 1693 */
-	{ 0,	0,	NULL,			NULL		}, /* 1694 */
-	{ 0,	0,	NULL,			NULL		}, /* 1695 */
-	{ 0,	0,	NULL,			NULL		}, /* 1696 */
-	{ 0,	0,	NULL,			NULL		}, /* 1697 */
-	{ 0,	0,	NULL,			NULL		}, /* 1698 */
-	{ 0,	0,	NULL,			NULL		}, /* 1699 */
-	{ 0,	0,	NULL,			NULL		}, /* 1700 */
-	{ 0,	0,	NULL,			NULL		}, /* 1701 */
-	{ 0,	0,	NULL,			NULL		}, /* 1702 */
-	{ 0,	0,	NULL,			NULL		}, /* 1703 */
-	{ 0,	0,	NULL,			NULL		}, /* 1704 */
-	{ 0,	0,	NULL,			NULL		}, /* 1705 */
-	{ 0,	0,	NULL,			NULL		}, /* 1706 */
-	{ 0,	0,	NULL,			NULL		}, /* 1707 */
-	{ 0,	0,	NULL,			NULL		}, /* 1708 */
-	{ 0,	0,	NULL,			NULL		}, /* 1709 */
-	{ 0,	0,	NULL,			NULL		}, /* 1710 */
-	{ 0,	0,	NULL,			NULL		}, /* 1711 */
-	{ 0,	0,	NULL,			NULL		}, /* 1712 */
-	{ 0,	0,	NULL,			NULL		}, /* 1713 */
-	{ 0,	0,	NULL,			NULL		}, /* 1714 */
-	{ 0,	0,	NULL,			NULL		}, /* 1715 */
-	{ 0,	0,	NULL,			NULL		}, /* 1716 */
-	{ 0,	0,	NULL,			NULL		}, /* 1717 */
-	{ 0,	0,	NULL,			NULL		}, /* 1718 */
-	{ 0,	0,	NULL,			NULL		}, /* 1719 */
-	{ 0,	0,	NULL,			NULL		}, /* 1720 */
-	{ 0,	0,	NULL,			NULL		}, /* 1721 */
-	{ 0,	0,	NULL,			NULL		}, /* 1722 */
-	{ 0,	0,	NULL,			NULL		}, /* 1723 */
-	{ 0,	0,	NULL,			NULL		}, /* 1724 */
-	{ 0,	0,	NULL,			NULL		}, /* 1725 */
-	{ 0,	0,	NULL,			NULL		}, /* 1726 */
-	{ 0,	0,	NULL,			NULL		}, /* 1727 */
-	{ 0,	0,	NULL,			NULL		}, /* 1728 */
-	{ 0,	0,	NULL,			NULL		}, /* 1729 */
-	{ 0,	0,	NULL,			NULL		}, /* 1730 */
-	{ 0,	0,	NULL,			NULL		}, /* 1731 */
-	{ 0,	0,	NULL,			NULL		}, /* 1732 */
-	{ 0,	0,	NULL,			NULL		}, /* 1733 */
-	{ 0,	0,	NULL,			NULL		}, /* 1734 */
-	{ 0,	0,	NULL,			NULL		}, /* 1735 */
-	{ 0,	0,	NULL,			NULL		}, /* 1736 */
-	{ 0,	0,	NULL,			NULL		}, /* 1737 */
-	{ 0,	0,	NULL,			NULL		}, /* 1738 */
-	{ 0,	0,	NULL,			NULL		}, /* 1739 */
-	{ 0,	0,	NULL,			NULL		}, /* 1740 */
-	{ 0,	0,	NULL,			NULL		}, /* 1741 */
-	{ 0,	0,	NULL,			NULL		}, /* 1742 */
-	{ 0,	0,	NULL,			NULL		}, /* 1743 */
-	{ 0,	0,	NULL,			NULL		}, /* 1744 */
-	{ 0,	0,	NULL,			NULL		}, /* 1745 */
-	{ 0,	0,	NULL,			NULL		}, /* 1746 */
-	{ 0,	0,	NULL,			NULL		}, /* 1747 */
-	{ 0,	0,	NULL,			NULL		}, /* 1748 */
-	{ 0,	0,	NULL,			NULL		}, /* 1749 */
-	{ 0,	0,	NULL,			NULL		}, /* 1750 */
-	{ 0,	0,	NULL,			NULL		}, /* 1751 */
-	{ 0,	0,	NULL,			NULL		}, /* 1752 */
-	{ 0,	0,	NULL,			NULL		}, /* 1753 */
-	{ 0,	0,	NULL,			NULL		}, /* 1754 */
-	{ 0,	0,	NULL,			NULL		}, /* 1755 */
-	{ 0,	0,	NULL,			NULL		}, /* 1756 */
-	{ 0,	0,	NULL,			NULL		}, /* 1757 */
-	{ 0,	0,	NULL,			NULL		}, /* 1758 */
-	{ 0,	0,	NULL,			NULL		}, /* 1759 */
-	{ 0,	0,	NULL,			NULL		}, /* 1760 */
-	{ 0,	0,	NULL,			NULL		}, /* 1761 */
-	{ 0,	0,	NULL,			NULL		}, /* 1762 */
-	{ 0,	0,	NULL,			NULL		}, /* 1763 */
-	{ 0,	0,	NULL,			NULL		}, /* 1764 */
-	{ 0,	0,	NULL,			NULL		}, /* 1765 */
-	{ 0,	0,	NULL,			NULL		}, /* 1766 */
-	{ 0,	0,	NULL,			NULL		}, /* 1767 */
-	{ 0,	0,	NULL,			NULL		}, /* 1768 */
-	{ 0,	0,	NULL,			NULL		}, /* 1769 */
-	{ 0,	0,	NULL,			NULL		}, /* 1770 */
-	{ 0,	0,	NULL,			NULL		}, /* 1771 */
-	{ 0,	0,	NULL,			NULL		}, /* 1772 */
-	{ 0,	0,	NULL,			NULL		}, /* 1773 */
-	{ 0,	0,	NULL,			NULL		}, /* 1774 */
-	{ 0,	0,	NULL,			NULL		}, /* 1775 */
-	{ 0,	0,	NULL,			NULL		}, /* 1776 */
-	{ 0,	0,	NULL,			NULL		}, /* 1777 */
-	{ 0,	0,	NULL,			NULL		}, /* 1778 */
-	{ 0,	0,	NULL,			NULL		}, /* 1779 */
-	{ 0,	0,	NULL,			NULL		}, /* 1780 */
-	{ 0,	0,	NULL,			NULL		}, /* 1781 */
-	{ 0,	0,	NULL,			NULL		}, /* 1782 */
-	{ 0,	0,	NULL,			NULL		}, /* 1783 */
-	{ 0,	0,	NULL,			NULL		}, /* 1784 */
-	{ 0,	0,	NULL,			NULL		}, /* 1785 */
-	{ 0,	0,	NULL,			NULL		}, /* 1786 */
-	{ 0,	0,	NULL,			NULL		}, /* 1787 */
-	{ 0,	0,	NULL,			NULL		}, /* 1788 */
-	{ 0,	0,	NULL,			NULL		}, /* 1789 */
-	{ 0,	0,	NULL,			NULL		}, /* 1790 */
-	{ 0,	0,	NULL,			NULL		}, /* 1791 */
-	{ 0,	0,	NULL,			NULL		}, /* 1792 */
-	{ 0,	0,	NULL,			NULL		}, /* 1793 */
-	{ 0,	0,	NULL,			NULL		}, /* 1794 */
-	{ 0,	0,	NULL,			NULL		}, /* 1795 */
-	{ 0,	0,	NULL,			NULL		}, /* 1796 */
-	{ 0,	0,	NULL,			NULL		}, /* 1797 */
-	{ 0,	0,	NULL,			NULL		}, /* 1798 */
-	{ 0,	0,	NULL,			NULL		}, /* 1799 */
-	{ 0,	0,	NULL,			NULL		}, /* 1800 */
-	{ 0,	0,	NULL,			NULL		}, /* 1801 */
-	{ 0,	0,	NULL,			NULL		}, /* 1802 */
-	{ 0,	0,	NULL,			NULL		}, /* 1803 */
-	{ 0,	0,	NULL,			NULL		}, /* 1804 */
-	{ 0,	0,	NULL,			NULL		}, /* 1805 */
-	{ 0,	0,	NULL,			NULL		}, /* 1806 */
-	{ 0,	0,	NULL,			NULL		}, /* 1807 */
-	{ 0,	0,	NULL,			NULL		}, /* 1808 */
-	{ 0,	0,	NULL,			NULL		}, /* 1809 */
-	{ 0,	0,	NULL,			NULL		}, /* 1810 */
-	{ 0,	0,	NULL,			NULL		}, /* 1811 */
-	{ 0,	0,	NULL,			NULL		}, /* 1812 */
-	{ 0,	0,	NULL,			NULL		}, /* 1813 */
-	{ 0,	0,	NULL,			NULL		}, /* 1814 */
-	{ 0,	0,	NULL,			NULL		}, /* 1815 */
-	{ 0,	0,	NULL,			NULL		}, /* 1816 */
-	{ 0,	0,	NULL,			NULL		}, /* 1817 */
-	{ 0,	0,	NULL,			NULL		}, /* 1818 */
-	{ 0,	0,	NULL,			NULL		}, /* 1819 */
-	{ 0,	0,	NULL,			NULL		}, /* 1820 */
-	{ 0,	0,	NULL,			NULL		}, /* 1821 */
-	{ 0,	0,	NULL,			NULL		}, /* 1822 */
-	{ 0,	0,	NULL,			NULL		}, /* 1823 */
-	{ 0,	0,	NULL,			NULL		}, /* 1824 */
-	{ 0,	0,	NULL,			NULL		}, /* 1825 */
-	{ 0,	0,	NULL,			NULL		}, /* 1826 */
-	{ 0,	0,	NULL,			NULL		}, /* 1827 */
-	{ 0,	0,	NULL,			NULL		}, /* 1828 */
-	{ 0,	0,	NULL,			NULL		}, /* 1829 */
-	{ 0,	0,	NULL,			NULL		}, /* 1830 */
-	{ 0,	0,	NULL,			NULL		}, /* 1831 */
-	{ 0,	0,	NULL,			NULL		}, /* 1832 */
-	{ 0,	0,	NULL,			NULL		}, /* 1833 */
-	{ 0,	0,	NULL,			NULL		}, /* 1834 */
-	{ 0,	0,	NULL,			NULL		}, /* 1835 */
-	{ 0,	0,	NULL,			NULL		}, /* 1836 */
-	{ 0,	0,	NULL,			NULL		}, /* 1837 */
-	{ 0,	0,	NULL,			NULL		}, /* 1838 */
-	{ 0,	0,	NULL,			NULL		}, /* 1839 */
-	{ 0,	0,	NULL,			NULL		}, /* 1840 */
-	{ 0,	0,	NULL,			NULL		}, /* 1841 */
-	{ 0,	0,	NULL,			NULL		}, /* 1842 */
-	{ 0,	0,	NULL,			NULL		}, /* 1843 */
-	{ 0,	0,	NULL,			NULL		}, /* 1844 */
-	{ 0,	0,	NULL,			NULL		}, /* 1845 */
-	{ 0,	0,	NULL,			NULL		}, /* 1846 */
-	{ 0,	0,	NULL,			NULL		}, /* 1847 */
-	{ 0,	0,	NULL,			NULL		}, /* 1848 */
-	{ 0,	0,	NULL,			NULL		}, /* 1849 */
-	{ 0,	0,	NULL,			NULL		}, /* 1850 */
-	{ 0,	0,	NULL,			NULL		}, /* 1851 */
-	{ 0,	0,	NULL,			NULL		}, /* 1852 */
-	{ 0,	0,	NULL,			NULL		}, /* 1853 */
-	{ 0,	0,	NULL,			NULL		}, /* 1854 */
-	{ 0,	0,	NULL,			NULL		}, /* 1855 */
-	{ 0,	0,	NULL,			NULL		}, /* 1856 */
-	{ 0,	0,	NULL,			NULL		}, /* 1857 */
-	{ 0,	0,	NULL,			NULL		}, /* 1858 */
-	{ 0,	0,	NULL,			NULL		}, /* 1859 */
-	{ 0,	0,	NULL,			NULL		}, /* 1860 */
-	{ 0,	0,	NULL,			NULL		}, /* 1861 */
-	{ 0,	0,	NULL,			NULL		}, /* 1862 */
-	{ 0,	0,	NULL,			NULL		}, /* 1863 */
-	{ 0,	0,	NULL,			NULL		}, /* 1864 */
-	{ 0,	0,	NULL,			NULL		}, /* 1865 */
-	{ 0,	0,	NULL,			NULL		}, /* 1866 */
-	{ 0,	0,	NULL,			NULL		}, /* 1867 */
-	{ 0,	0,	NULL,			NULL		}, /* 1868 */
-	{ 0,	0,	NULL,			NULL		}, /* 1869 */
-	{ 0,	0,	NULL,			NULL		}, /* 1870 */
-	{ 0,	0,	NULL,			NULL		}, /* 1871 */
-	{ 0,	0,	NULL,			NULL		}, /* 1872 */
-	{ 0,	0,	NULL,			NULL		}, /* 1873 */
-	{ 0,	0,	NULL,			NULL		}, /* 1874 */
-	{ 0,	0,	NULL,			NULL		}, /* 1875 */
-	{ 0,	0,	NULL,			NULL		}, /* 1876 */
-	{ 0,	0,	NULL,			NULL		}, /* 1877 */
-	{ 0,	0,	NULL,			NULL		}, /* 1878 */
-	{ 0,	0,	NULL,			NULL		}, /* 1879 */
-	{ 0,	0,	NULL,			NULL		}, /* 1880 */
-	{ 0,	0,	NULL,			NULL		}, /* 1881 */
-	{ 0,	0,	NULL,			NULL		}, /* 1882 */
-	{ 0,	0,	NULL,			NULL		}, /* 1883 */
-	{ 0,	0,	NULL,			NULL		}, /* 1884 */
-	{ 0,	0,	NULL,			NULL		}, /* 1885 */
-	{ 0,	0,	NULL,			NULL		}, /* 1886 */
-	{ 0,	0,	NULL,			NULL		}, /* 1887 */
-	{ 0,	0,	NULL,			NULL		}, /* 1888 */
-	{ 0,	0,	NULL,			NULL		}, /* 1889 */
-	{ 0,	0,	NULL,			NULL		}, /* 1890 */
-	{ 0,	0,	NULL,			NULL		}, /* 1891 */
-	{ 0,	0,	NULL,			NULL		}, /* 1892 */
-	{ 0,	0,	NULL,			NULL		}, /* 1893 */
-	{ 0,	0,	NULL,			NULL		}, /* 1894 */
-	{ 0,	0,	NULL,			NULL		}, /* 1895 */
-	{ 0,	0,	NULL,			NULL		}, /* 1896 */
-	{ 0,	0,	NULL,			NULL		}, /* 1897 */
-	{ 0,	0,	NULL,			NULL		}, /* 1898 */
-	{ 0,	0,	NULL,			NULL		}, /* 1899 */
-	{ 0,	0,	NULL,			NULL		}, /* 1900 */
-	{ 0,	0,	NULL,			NULL		}, /* 1901 */
-	{ 0,	0,	NULL,			NULL		}, /* 1902 */
-	{ 0,	0,	NULL,			NULL		}, /* 1903 */
-	{ 0,	0,	NULL,			NULL		}, /* 1904 */
-	{ 0,	0,	NULL,			NULL		}, /* 1905 */
-	{ 0,	0,	NULL,			NULL		}, /* 1906 */
-	{ 0,	0,	NULL,			NULL		}, /* 1907 */
-	{ 0,	0,	NULL,			NULL		}, /* 1908 */
-	{ 0,	0,	NULL,			NULL		}, /* 1909 */
-	{ 0,	0,	NULL,			NULL		}, /* 1910 */
-	{ 0,	0,	NULL,			NULL		}, /* 1911 */
-	{ 0,	0,	NULL,			NULL		}, /* 1912 */
-	{ 0,	0,	NULL,			NULL		}, /* 1913 */
-	{ 0,	0,	NULL,			NULL		}, /* 1914 */
-	{ 0,	0,	NULL,			NULL		}, /* 1915 */
-	{ 0,	0,	NULL,			NULL		}, /* 1916 */
-	{ 0,	0,	NULL,			NULL		}, /* 1917 */
-	{ 0,	0,	NULL,			NULL		}, /* 1918 */
-	{ 0,	0,	NULL,			NULL		}, /* 1919 */
-	{ 0,	0,	NULL,			NULL		}, /* 1920 */
-	{ 0,	0,	NULL,			NULL		}, /* 1921 */
-	{ 0,	0,	NULL,			NULL		}, /* 1922 */
-	{ 0,	0,	NULL,			NULL		}, /* 1923 */
-	{ 0,	0,	NULL,			NULL		}, /* 1924 */
-	{ 0,	0,	NULL,			NULL		}, /* 1925 */
-	{ 0,	0,	NULL,			NULL		}, /* 1926 */
-	{ 0,	0,	NULL,			NULL		}, /* 1927 */
-	{ 0,	0,	NULL,			NULL		}, /* 1928 */
-	{ 0,	0,	NULL,			NULL		}, /* 1929 */
-	{ 0,	0,	NULL,			NULL		}, /* 1930 */
-	{ 0,	0,	NULL,			NULL		}, /* 1931 */
-	{ 0,	0,	NULL,			NULL		}, /* 1932 */
-	{ 0,	0,	NULL,			NULL		}, /* 1933 */
-	{ 0,	0,	NULL,			NULL		}, /* 1934 */
-	{ 0,	0,	NULL,			NULL		}, /* 1935 */
-	{ 0,	0,	NULL,			NULL		}, /* 1936 */
-	{ 0,	0,	NULL,			NULL		}, /* 1937 */
-	{ 0,	0,	NULL,			NULL		}, /* 1938 */
-	{ 0,	0,	NULL,			NULL		}, /* 1939 */
-	{ 0,	0,	NULL,			NULL		}, /* 1940 */
-	{ 0,	0,	NULL,			NULL		}, /* 1941 */
-	{ 0,	0,	NULL,			NULL		}, /* 1942 */
-	{ 0,	0,	NULL,			NULL		}, /* 1943 */
-	{ 0,	0,	NULL,			NULL		}, /* 1944 */
-	{ 0,	0,	NULL,			NULL		}, /* 1945 */
-	{ 0,	0,	NULL,			NULL		}, /* 1946 */
-	{ 0,	0,	NULL,			NULL		}, /* 1947 */
-	{ 0,	0,	NULL,			NULL		}, /* 1948 */
-	{ 0,	0,	NULL,			NULL		}, /* 1949 */
-	{ 0,	0,	NULL,			NULL		}, /* 1950 */
-	{ 0,	0,	NULL,			NULL		}, /* 1951 */
-	{ 0,	0,	NULL,			NULL		}, /* 1952 */
-	{ 0,	0,	NULL,			NULL		}, /* 1953 */
-	{ 0,	0,	NULL,			NULL		}, /* 1954 */
-	{ 0,	0,	NULL,			NULL		}, /* 1955 */
-	{ 0,	0,	NULL,			NULL		}, /* 1956 */
-	{ 0,	0,	NULL,			NULL		}, /* 1957 */
-	{ 0,	0,	NULL,			NULL		}, /* 1958 */
-	{ 0,	0,	NULL,			NULL		}, /* 1959 */
-	{ 0,	0,	NULL,			NULL		}, /* 1960 */
-	{ 0,	0,	NULL,			NULL		}, /* 1961 */
-	{ 0,	0,	NULL,			NULL		}, /* 1962 */
-	{ 0,	0,	NULL,			NULL		}, /* 1963 */
-	{ 0,	0,	NULL,			NULL		}, /* 1964 */
-	{ 0,	0,	NULL,			NULL		}, /* 1965 */
-	{ 0,	0,	NULL,			NULL		}, /* 1966 */
-	{ 0,	0,	NULL,			NULL		}, /* 1967 */
-	{ 0,	0,	NULL,			NULL		}, /* 1968 */
-	{ 0,	0,	NULL,			NULL		}, /* 1969 */
-	{ 0,	0,	NULL,			NULL		}, /* 1970 */
-	{ 0,	0,	NULL,			NULL		}, /* 1971 */
-	{ 0,	0,	NULL,			NULL		}, /* 1972 */
-	{ 0,	0,	NULL,			NULL		}, /* 1973 */
-	{ 0,	0,	NULL,			NULL		}, /* 1974 */
-	{ 0,	0,	NULL,			NULL		}, /* 1975 */
-	{ 0,	0,	NULL,			NULL		}, /* 1976 */
-	{ 0,	0,	NULL,			NULL		}, /* 1977 */
-	{ 0,	0,	NULL,			NULL		}, /* 1978 */
-	{ 0,	0,	NULL,			NULL		}, /* 1979 */
-	{ 0,	0,	NULL,			NULL		}, /* 1980 */
-	{ 0,	0,	NULL,			NULL		}, /* 1981 */
-	{ 0,	0,	NULL,			NULL		}, /* 1982 */
-	{ 0,	0,	NULL,			NULL		}, /* 1983 */
-	{ 0,	0,	NULL,			NULL		}, /* 1984 */
-	{ 0,	0,	NULL,			NULL		}, /* 1985 */
-	{ 0,	0,	NULL,			NULL		}, /* 1986 */
-	{ 0,	0,	NULL,			NULL		}, /* 1987 */
-	{ 0,	0,	NULL,			NULL		}, /* 1988 */
-	{ 0,	0,	NULL,			NULL		}, /* 1989 */
-	{ 0,	0,	NULL,			NULL		}, /* 1990 */
-	{ 0,	0,	NULL,			NULL		}, /* 1991 */
-	{ 0,	0,	NULL,			NULL		}, /* 1992 */
-	{ 0,	0,	NULL,			NULL		}, /* 1993 */
-	{ 0,	0,	NULL,			NULL		}, /* 1994 */
-	{ 0,	0,	NULL,			NULL		}, /* 1995 */
-	{ 0,	0,	NULL,			NULL		}, /* 1996 */
-	{ 0,	0,	NULL,			NULL		}, /* 1997 */
-	{ 0,	0,	NULL,			NULL		}, /* 1998 */
-	{ 0,	0,	NULL,			NULL		}, /* 1999 */ /* end of SYSV */
-	{ 0,	0,	printargs,		"bsd43_syscall"	}, /* 2000 */ /* start of BSD 4.3 */
-	{ 0,	0,	printargs,		"bsd43_exit"	}, /* 2001 */
-	{ 0,	0,	printargs,		"bsd43_fork"	}, /* 2002 */
-	{ 0,	0,	printargs,		"bsd43_read"	}, /* 2003 */
-	{ 0,	0,	printargs,		"bsd43_write"	}, /* 2004 */
-	{ 0,	0,	printargs,		"bsd43_open"	}, /* 2005 */
-	{ 0,	0,	printargs,		"bsd43_close"	}, /* 2006 */
-	{ 0,	0,	printargs,		"bsd43_wait"	}, /* 2007 */
-	{ 0,	0,	printargs,		"bsd43_creat"	}, /* 2008 */
-	{ 0,	0,	printargs,		"bsd43_link"	}, /* 2009 */
-	{ 0,	0,	printargs,		"bsd43_unlink"	}, /* 2010 */
-	{ 0,	0,	printargs,		"bsd43_exec"	}, /* 2011 */
-	{ 0,	0,	printargs,		"bsd43_chdir"	}, /* 2012 */
-	{ 0,	0,	printargs,		"bsd43_time"	}, /* 2013 */
-	{ 0,	0,	printargs,		"bsd43_mknod"	}, /* 2014 */
-	{ 0,	0,	printargs,		"bsd43_chmod"	}, /* 2015 */
-	{ 0,	0,	printargs,		"bsd43_chown"	}, /* 2016 */
-	{ 0,	0,	printargs,		"bsd43_sbreak"	}, /* 2017 */
-	{ 0,	0,	printargs,		"bsd43_oldstat"	}, /* 2018 */
-	{ 0,	0,	printargs,		"bsd43_lseek"	}, /* 2019 */
-	{ 0,	0,	printargs,		"bsd43_getpid"	}, /* 2020 */
-	{ 0,	0,	printargs,		"bsd43_oldmount"	}, /* 2021 */
-	{ 0,	0,	printargs,		"bsd43_umount"	}, /* 2022 */
-	{ 0,	0,	printargs,		"bsd43_setuid"	}, /* 2023 */
-	{ 0,	0,	printargs,		"bsd43_getuid"	}, /* 2024 */
-	{ 0,	0,	printargs,		"bsd43_stime"	}, /* 2025 */
-	{ 0,	0,	printargs,		"bsd43_ptrace"	}, /* 2026 */
-	{ 0,	0,	printargs,		"bsd43_alarm"	}, /* 2027 */
-	{ 0,	0,	printargs,		"bsd43_oldfstat"	}, /* 2028 */
-	{ 0,	0,	printargs,		"bsd43_pause"	}, /* 2029 */
-	{ 0,	0,	printargs,		"bsd43_utime"	}, /* 2030 */
-	{ 0,	0,	printargs,		"bsd43_stty"	}, /* 2031 */
-	{ 0,	0,	printargs,		"bsd43_gtty"	}, /* 2032 */
-	{ 0,	0,	printargs,		"bsd43_access"	}, /* 2033 */
-	{ 0,	0,	printargs,		"bsd43_nice"	}, /* 2034 */
-	{ 0,	0,	printargs,		"bsd43_ftime"	}, /* 2035 */
-	{ 0,	0,	printargs,		"bsd43_sync"	}, /* 2036 */
-	{ 0,	0,	printargs,		"bsd43_kill"	}, /* 2037 */
-	{ 0,	0,	printargs,		"bsd43_stat"	}, /* 2038 */
-	{ 0,	0,	printargs,		"bsd43_oldsetpgrp"	}, /* 2039 */
-	{ 0,	0,	printargs,		"bsd43_lstat"	}, /* 2040 */
-	{ 0,	0,	printargs,		"bsd43_dup"	}, /* 2041 */
-	{ 0,	0,	printargs,		"bsd43_pipe"	}, /* 2042 */
-	{ 0,	0,	printargs,		"bsd43_times"	}, /* 2043 */
-	{ 0,	0,	printargs,		"bsd43_profil"	}, /* 2044 */
-	{ 0,	0,	printargs,		"bsd43_msgsys"	}, /* 2045 */
-	{ 0,	0,	printargs,		"bsd43_setgid"	}, /* 2046 */
-	{ 0,	0,	printargs,		"bsd43_getgid"	}, /* 2047 */
-	{ 0,	0,	printargs,		"bsd43_ssig"	}, /* 2048 */
-	{ 0,	0,	NULL,			NULL		}, /* 2049 */
-	{ 0,	0,	NULL,			NULL		}, /* 2050 */
-	{ 0,	0,	printargs,		"bsd43_sysacct"	}, /* 2051 */
-	{ 0,	0,	printargs,		"bsd43_phys"	}, /* 2052 */
-	{ 0,	0,	printargs,		"bsd43_lock"	}, /* 2053 */
-	{ 0,	0,	printargs,		"bsd43_ioctl"	}, /* 2054 */
-	{ 0,	0,	printargs,		"bsd43_reboot"	}, /* 2055 */
-	{ 0,	0,	printargs,		"bsd43_mpxchan"	}, /* 2056 */
-	{ 0,	0,	printargs,		"bsd43_symlink"	}, /* 2057 */
-	{ 0,	0,	printargs,		"bsd43_readlink"	}, /* 2058 */
-	{ 0,	0,	printargs,		"bsd43_execve"	}, /* 2059 */
-	{ 0,	0,	printargs,		"bsd43_umask"	}, /* 2060 */
-	{ 0,	0,	printargs,		"bsd43_chroot"	}, /* 2061 */
-	{ 0,	0,	printargs,		"bsd43_fstat"	}, /* 2062 */
-	{ 0,	0,	NULL,			NULL		}, /* 2063 */
-	{ 0,	0,	printargs,		"bsd43_getpagesize"	}, /* 2064 */
-	{ 0,	0,	printargs,		"bsd43_mremap"	}, /* 2065 */
-	{ 0,	0,	printargs,		"bsd43_vfork"	}, /* 2066 */
-	{ 0,	0,	printargs,		"bsd43_vread"	}, /* 2067 */
-	{ 0,	0,	printargs,		"bsd43_vwrite"	}, /* 2068 */
-	{ 0,	0,	printargs,		"bsd43_sbrk"	}, /* 2069 */
-	{ 0,	0,	printargs,		"bsd43_sstk"	}, /* 2070 */
-	{ 0,	0,	printargs,		"bsd43_mmap"	}, /* 2071 */
-	{ 0,	0,	printargs,		"bsd43_vadvise"	}, /* 2072 */
-	{ 0,	0,	printargs,		"bsd43_munmap"	}, /* 2073 */
-	{ 0,	0,	printargs,		"bsd43_mprotect"	}, /* 2074 */
-	{ 0,	0,	printargs,		"bsd43_madvise"	}, /* 2075 */
-	{ 0,	0,	printargs,		"bsd43_vhangup"	}, /* 2076 */
-	{ 0,	0,	printargs,		"bsd43_vlimit"	}, /* 2077 */
-	{ 0,	0,	printargs,		"bsd43_mincore"	}, /* 2078 */
-	{ 0,	0,	printargs,		"bsd43_getgroups"	}, /* 2079 */
-	{ 0,	0,	printargs,		"bsd43_setgroups"	}, /* 2080 */
-	{ 0,	0,	printargs,		"bsd43_getpgrp"	}, /* 2081 */
-	{ 0,	0,	printargs,		"bsd43_setpgrp"	}, /* 2082 */
-	{ 0,	0,	printargs,		"bsd43_setitimer"	}, /* 2083 */
-	{ 0,	0,	printargs,		"bsd43_wait3"	}, /* 2084 */
-	{ 0,	0,	printargs,		"bsd43_swapon"	}, /* 2085 */
-	{ 0,	0,	printargs,		"bsd43_getitimer"	}, /* 2086 */
-	{ 0,	0,	printargs,		"bsd43_gethostname"	}, /* 2087 */
-	{ 0,	0,	printargs,		"bsd43_sethostname"	}, /* 2088 */
-	{ 0,	0,	printargs,		"bsd43_getdtablesize"	}, /* 2089 */
-	{ 0,	0,	printargs,		"bsd43_dup2"	}, /* 2090 */
-	{ 0,	0,	printargs,		"bsd43_getdopt"	}, /* 2091 */
-	{ 0,	0,	printargs,		"bsd43_fcntl"	}, /* 2092 */
-	{ 0,	0,	printargs,		"bsd43_select"	}, /* 2093 */
-	{ 0,	0,	printargs,		"bsd43_setdopt"	}, /* 2094 */
-	{ 0,	0,	printargs,		"bsd43_fsync"	}, /* 2095 */
-	{ 0,	0,	printargs,		"bsd43_setpriority"	}, /* 2096 */
-	{ 0,	0,	printargs,		"bsd43_socket"	}, /* 2097 */
-	{ 0,	0,	printargs,		"bsd43_connect"	}, /* 2098 */
-	{ 0,	0,	printargs,		"bsd43_oldaccept"	}, /* 2099 */
-	{ 0,	0,	printargs,		"bsd43_getpriority"	}, /* 2100 */
-	{ 0,	0,	printargs,		"bsd43_send"	}, /* 2101 */
-	{ 0,	0,	printargs,		"bsd43_recv"	}, /* 2102 */
-	{ 0,	0,	printargs,		"bsd43_sigreturn"	}, /* 2103 */
-	{ 0,	0,	printargs,		"bsd43_bind"	}, /* 2104 */
-	{ 0,	0,	printargs,		"bsd43_setsockopt"	}, /* 2105 */
-	{ 0,	0,	printargs,		"bsd43_listen"	}, /* 2106 */
-	{ 0,	0,	printargs,		"bsd43_vtimes"	}, /* 2107 */
-	{ 0,	0,	printargs,		"bsd43_sigvec"	}, /* 2108 */
-	{ 0,	0,	printargs,		"bsd43_sigblock"	}, /* 2109 */
-	{ 0,	0,	printargs,		"bsd43_sigsetmask"	}, /* 2110 */
-	{ 0,	0,	printargs,		"bsd43_sigpause"	}, /* 2111 */
-	{ 0,	0,	printargs,		"bsd43_sigstack"	}, /* 2112 */
-	{ 0,	0,	printargs,		"bsd43_oldrecvmsg"	}, /* 2113 */
-	{ 0,	0,	printargs,		"bsd43_oldsendmsg"	}, /* 2114 */
-	{ 0,	0,	printargs,		"bsd43_vtrace"	}, /* 2115 */
-	{ 0,	0,	printargs,		"bsd43_gettimeofday"	}, /* 2116 */
-	{ 0,	0,	printargs,		"bsd43_getrusage"	}, /* 2117 */
-	{ 0,	0,	printargs,		"bsd43_getsockopt"	}, /* 2118 */
-	{ 0,	0,	NULL,			NULL		}, /* 2119 */
-	{ 0,	0,	printargs,		"bsd43_readv"	}, /* 2120 */
-	{ 0,	0,	printargs,		"bsd43_writev"	}, /* 2121 */
-	{ 0,	0,	printargs,		"bsd43_settimeofday"	}, /* 2122 */
-	{ 0,	0,	printargs,		"bsd43_fchown"	}, /* 2123 */
-	{ 0,	0,	printargs,		"bsd43_fchmod"	}, /* 2124 */
-	{ 0,	0,	printargs,		"bsd43_oldrecvfrom"	}, /* 2125 */
-	{ 0,	0,	printargs,		"bsd43_setreuid"	}, /* 2126 */
-	{ 0,	0,	printargs,		"bsd43_setregid"	}, /* 2127 */
-	{ 0,	0,	printargs,		"bsd43_rename"	}, /* 2128 */
-	{ 0,	0,	printargs,		"bsd43_truncate"	}, /* 2129 */
-	{ 0,	0,	printargs,		"bsd43_ftruncate"	}, /* 2130 */
-	{ 0,	0,	printargs,		"bsd43_flock"	}, /* 2131 */
-	{ 0,	0,	printargs,		"bsd43_semsys"	}, /* 2132 */
-	{ 0,	0,	printargs,		"bsd43_sendto"	}, /* 2133 */
-	{ 0,	0,	printargs,		"bsd43_shutdown"	}, /* 2134 */
-	{ 0,	0,	printargs,		"bsd43_socketpair"	}, /* 2135 */
-	{ 0,	0,	printargs,		"bsd43_mkdir"	}, /* 2136 */
-	{ 0,	0,	printargs,		"bsd43_rmdir"	}, /* 2137 */
-	{ 0,	0,	printargs,		"bsd43_utimes"	}, /* 2138 */
-	{ 0,	0,	printargs,		"bsd43_sigcleanup"	}, /* 2139 */
-	{ 0,	0,	printargs,		"bsd43_adjtime"	}, /* 2140 */
-	{ 0,	0,	printargs,		"bsd43_oldgetpeername"	}, /* 2141 */
-	{ 0,	0,	printargs,		"bsd43_gethostid"	}, /* 2142 */
-	{ 0,	0,	printargs,		"bsd43_sethostid"	}, /* 2143 */
-	{ 0,	0,	printargs,		"bsd43_getrlimit"	}, /* 2144 */
-	{ 0,	0,	printargs,		"bsd43_setrlimit"	}, /* 2145 */
-	{ 0,	0,	printargs,		"bsd43_killpg"	}, /* 2146 */
-	{ 0,	0,	printargs,		"bsd43_shmsys"	}, /* 2147 */
-	{ 0,	0,	printargs,		"bsd43_quota"	}, /* 2148 */
-	{ 0,	0,	printargs,		"bsd43_qquota"	}, /* 2149 */
-	{ 0,	0,	printargs,		"bsd43_oldgetsockname"	}, /* 2150 */
-	{ 0,	0,	printargs,		"bsd43_sysmips"	}, /* 2151 */
-	{ 0,	0,	printargs,		"bsd43_cacheflush"	}, /* 2152 */
-	{ 0,	0,	printargs,		"bsd43_cachectl"	}, /* 2153 */
-	{ 0,	0,	printargs,		"bsd43_debug"	}, /* 2154 */
-	{ 0,	0,	NULL,			NULL		}, /* 2155 */
-	{ 0,	0,	NULL,			NULL		}, /* 2156 */
-	{ 0,	0,	printargs,		"bsd43_nfs_mount"	}, /* 2157 */
-	{ 0,	0,	printargs,		"bsd43_nfs_svc"	}, /* 2158 */
-	{ 0,	0,	printargs,		"bsd43_getdirentries"	}, /* 2159 */
-	{ 0,	0,	printargs,		"bsd43_statfs"	}, /* 2160 */
-	{ 0,	0,	printargs,		"bsd43_fstatfs"	}, /* 2161 */
-	{ 0,	0,	printargs,		"bsd43_unmount"	}, /* 2162 */
-	{ 0,	0,	printargs,		"bsd43_async_daemon"	}, /* 2163 */
-	{ 0,	0,	printargs,		"bsd43_nfs_getfh"	}, /* 2164 */
-	{ 0,	0,	printargs,		"bsd43_getdomainname"	}, /* 2165 */
-	{ 0,	0,	printargs,		"bsd43_setdomainname"	}, /* 2166 */
-	{ 0,	0,	printargs,		"bsd43_pcfs_mount"	}, /* 2167 */
-	{ 0,	0,	printargs,		"bsd43_quotactl"	}, /* 2168 */
-	{ 0,	0,	printargs,		"bsd43_oldexportfs"	}, /* 2169 */
-	{ 0,	0,	printargs,		"bsd43_smount"	}, /* 2170 */
-	{ 0,	0,	printargs,		"bsd43_mipshwconf"	}, /* 2171 */
-	{ 0,	0,	printargs,		"bsd43_exportfs"	}, /* 2172 */
-	{ 0,	0,	printargs,		"bsd43_nfsfh_open"	}, /* 2173 */
-	{ 0,	0,	printargs,		"bsd43_libattach"	}, /* 2174 */
-	{ 0,	0,	printargs,		"bsd43_libdetach"	}, /* 2175 */
-	{ 0,	0,	printargs,		"bsd43_accept"	}, /* 2176 */
-	{ 0,	0,	NULL,			NULL		}, /* 2177 */
-	{ 0,	0,	NULL,			NULL		}, /* 2178 */
-	{ 0,	0,	printargs,		"bsd43_recvmsg"	}, /* 2179 */
-	{ 0,	0,	printargs,		"bsd43_recvfrom"	}, /* 2180 */
-	{ 0,	0,	printargs,		"bsd43_sendmsg"	}, /* 2181 */
-	{ 0,	0,	printargs,		"bsd43_getpeername"	}, /* 2182 */
-	{ 0,	0,	printargs,		"bsd43_getsockname"	}, /* 2183 */
-	{ 0,	0,	printargs,		"bsd43_aread"	}, /* 2184 */
-	{ 0,	0,	printargs,		"bsd43_awrite"	}, /* 2185 */
-	{ 0,	0,	printargs,		"bsd43_listio"	}, /* 2186 */
-	{ 0,	0,	printargs,		"bsd43_acancel"	}, /* 2187 */
-	{ 0,	0,	printargs,		"bsd43_astatus"	}, /* 2188 */
-	{ 0,	0,	printargs,		"bsd43_await"	}, /* 2189 */
-	{ 0,	0,	printargs,		"bsd43_areadv"	}, /* 2190 */
-	{ 0,	0,	printargs,		"bsd43_awritev"	}, /* 2191 */
-	{ 0,	0,	NULL,			NULL		}, /* 2192 */
-	{ 0,	0,	NULL,			NULL		}, /* 2193 */
-	{ 0,	0,	NULL,			NULL		}, /* 2194 */
-	{ 0,	0,	NULL,			NULL		}, /* 2195 */
-	{ 0,	0,	NULL,			NULL		}, /* 2196 */
-	{ 0,	0,	NULL,			NULL		}, /* 2197 */
-	{ 0,	0,	NULL,			NULL		}, /* 2198 */
-	{ 0,	0,	NULL,			NULL		}, /* 2199 */
-	{ 0,	0,	NULL,			NULL		}, /* 2200 */
-	{ 0,	0,	NULL,			NULL		}, /* 2201 */
-	{ 0,	0,	NULL,			NULL		}, /* 2202 */
-	{ 0,	0,	NULL,			NULL		}, /* 2203 */
-	{ 0,	0,	NULL,			NULL		}, /* 2204 */
-	{ 0,	0,	NULL,			NULL		}, /* 2205 */
-	{ 0,	0,	NULL,			NULL		}, /* 2206 */
-	{ 0,	0,	NULL,			NULL		}, /* 2207 */
-	{ 0,	0,	NULL,			NULL		}, /* 2208 */
-	{ 0,	0,	NULL,			NULL		}, /* 2209 */
-	{ 0,	0,	NULL,			NULL		}, /* 2210 */
-	{ 0,	0,	NULL,			NULL		}, /* 2211 */
-	{ 0,	0,	NULL,			NULL		}, /* 2212 */
-	{ 0,	0,	NULL,			NULL		}, /* 2213 */
-	{ 0,	0,	NULL,			NULL		}, /* 2214 */
-	{ 0,	0,	NULL,			NULL		}, /* 2215 */
-	{ 0,	0,	NULL,			NULL		}, /* 2216 */
-	{ 0,	0,	NULL,			NULL		}, /* 2217 */
-	{ 0,	0,	NULL,			NULL		}, /* 2218 */
-	{ 0,	0,	NULL,			NULL		}, /* 2219 */
-	{ 0,	0,	NULL,			NULL		}, /* 2220 */
-	{ 0,	0,	NULL,			NULL		}, /* 2221 */
-	{ 0,	0,	NULL,			NULL		}, /* 2222 */
-	{ 0,	0,	NULL,			NULL		}, /* 2223 */
-	{ 0,	0,	NULL,			NULL		}, /* 2224 */
-	{ 0,	0,	NULL,			NULL		}, /* 2225 */
-	{ 0,	0,	NULL,			NULL		}, /* 2226 */
-	{ 0,	0,	NULL,			NULL		}, /* 2227 */
-	{ 0,	0,	NULL,			NULL		}, /* 2228 */
-	{ 0,	0,	NULL,			NULL		}, /* 2229 */
-	{ 0,	0,	NULL,			NULL		}, /* 2230 */
-	{ 0,	0,	NULL,			NULL		}, /* 2231 */
-	{ 0,	0,	NULL,			NULL		}, /* 2232 */
-	{ 0,	0,	NULL,			NULL		}, /* 2233 */
-	{ 0,	0,	NULL,			NULL		}, /* 2234 */
-	{ 0,	0,	NULL,			NULL		}, /* 2235 */
-	{ 0,	0,	NULL,			NULL		}, /* 2236 */
-	{ 0,	0,	NULL,			NULL		}, /* 2237 */
-	{ 0,	0,	NULL,			NULL		}, /* 2238 */
-	{ 0,	0,	NULL,			NULL		}, /* 2239 */
-	{ 0,	0,	NULL,			NULL		}, /* 2240 */
-	{ 0,	0,	NULL,			NULL		}, /* 2241 */
-	{ 0,	0,	NULL,			NULL		}, /* 2242 */
-	{ 0,	0,	NULL,			NULL		}, /* 2243 */
-	{ 0,	0,	NULL,			NULL		}, /* 2244 */
-	{ 0,	0,	NULL,			NULL		}, /* 2245 */
-	{ 0,	0,	NULL,			NULL		}, /* 2246 */
-	{ 0,	0,	NULL,			NULL		}, /* 2247 */
-	{ 0,	0,	NULL,			NULL		}, /* 2248 */
-	{ 0,	0,	NULL,			NULL		}, /* 2249 */
-	{ 0,	0,	NULL,			NULL		}, /* 2250 */
-	{ 0,	0,	NULL,			NULL		}, /* 2251 */
-	{ 0,	0,	NULL,			NULL		}, /* 2252 */
-	{ 0,	0,	NULL,			NULL		}, /* 2253 */
-	{ 0,	0,	NULL,			NULL		}, /* 2254 */
-	{ 0,	0,	NULL,			NULL		}, /* 2255 */
-	{ 0,	0,	NULL,			NULL		}, /* 2256 */
-	{ 0,	0,	NULL,			NULL		}, /* 2257 */
-	{ 0,	0,	NULL,			NULL		}, /* 2258 */
-	{ 0,	0,	NULL,			NULL		}, /* 2259 */
-	{ 0,	0,	NULL,			NULL		}, /* 2260 */
-	{ 0,	0,	NULL,			NULL		}, /* 2261 */
-	{ 0,	0,	NULL,			NULL		}, /* 2262 */
-	{ 0,	0,	NULL,			NULL		}, /* 2263 */
-	{ 0,	0,	NULL,			NULL		}, /* 2264 */
-	{ 0,	0,	NULL,			NULL		}, /* 2265 */
-	{ 0,	0,	NULL,			NULL		}, /* 2266 */
-	{ 0,	0,	NULL,			NULL		}, /* 2267 */
-	{ 0,	0,	NULL,			NULL		}, /* 2268 */
-	{ 0,	0,	NULL,			NULL		}, /* 2269 */
-	{ 0,	0,	NULL,			NULL		}, /* 2270 */
-	{ 0,	0,	NULL,			NULL		}, /* 2271 */
-	{ 0,	0,	NULL,			NULL		}, /* 2272 */
-	{ 0,	0,	NULL,			NULL		}, /* 2273 */
-	{ 0,	0,	NULL,			NULL		}, /* 2274 */
-	{ 0,	0,	NULL,			NULL		}, /* 2275 */
-	{ 0,	0,	NULL,			NULL		}, /* 2276 */
-	{ 0,	0,	NULL,			NULL		}, /* 2277 */
-	{ 0,	0,	NULL,			NULL		}, /* 2278 */
-	{ 0,	0,	NULL,			NULL		}, /* 2279 */
-	{ 0,	0,	NULL,			NULL		}, /* 2280 */
-	{ 0,	0,	NULL,			NULL		}, /* 2281 */
-	{ 0,	0,	NULL,			NULL		}, /* 2282 */
-	{ 0,	0,	NULL,			NULL		}, /* 2283 */
-	{ 0,	0,	NULL,			NULL		}, /* 2284 */
-	{ 0,	0,	NULL,			NULL		}, /* 2285 */
-	{ 0,	0,	NULL,			NULL		}, /* 2286 */
-	{ 0,	0,	NULL,			NULL		}, /* 2287 */
-	{ 0,	0,	NULL,			NULL		}, /* 2288 */
-	{ 0,	0,	NULL,			NULL		}, /* 2289 */
-	{ 0,	0,	NULL,			NULL		}, /* 2290 */
-	{ 0,	0,	NULL,			NULL		}, /* 2291 */
-	{ 0,	0,	NULL,			NULL		}, /* 2292 */
-	{ 0,	0,	NULL,			NULL		}, /* 2293 */
-	{ 0,	0,	NULL,			NULL		}, /* 2294 */
-	{ 0,	0,	NULL,			NULL		}, /* 2295 */
-	{ 0,	0,	NULL,			NULL		}, /* 2296 */
-	{ 0,	0,	NULL,			NULL		}, /* 2297 */
-	{ 0,	0,	NULL,			NULL		}, /* 2298 */
-	{ 0,	0,	NULL,			NULL		}, /* 2299 */
-	{ 0,	0,	NULL,			NULL		}, /* 2300 */
-	{ 0,	0,	NULL,			NULL		}, /* 2301 */
-	{ 0,	0,	NULL,			NULL		}, /* 2302 */
-	{ 0,	0,	NULL,			NULL		}, /* 2303 */
-	{ 0,	0,	NULL,			NULL		}, /* 2304 */
-	{ 0,	0,	NULL,			NULL		}, /* 2305 */
-	{ 0,	0,	NULL,			NULL		}, /* 2306 */
-	{ 0,	0,	NULL,			NULL		}, /* 2307 */
-	{ 0,	0,	NULL,			NULL		}, /* 2308 */
-	{ 0,	0,	NULL,			NULL		}, /* 2309 */
-	{ 0,	0,	NULL,			NULL		}, /* 2310 */
-	{ 0,	0,	NULL,			NULL		}, /* 2311 */
-	{ 0,	0,	NULL,			NULL		}, /* 2312 */
-	{ 0,	0,	NULL,			NULL		}, /* 2313 */
-	{ 0,	0,	NULL,			NULL		}, /* 2314 */
-	{ 0,	0,	NULL,			NULL		}, /* 2315 */
-	{ 0,	0,	NULL,			NULL		}, /* 2316 */
-	{ 0,	0,	NULL,			NULL		}, /* 2317 */
-	{ 0,	0,	NULL,			NULL		}, /* 2318 */
-	{ 0,	0,	NULL,			NULL		}, /* 2319 */
-	{ 0,	0,	NULL,			NULL		}, /* 2320 */
-	{ 0,	0,	NULL,			NULL		}, /* 2321 */
-	{ 0,	0,	NULL,			NULL		}, /* 2322 */
-	{ 0,	0,	NULL,			NULL		}, /* 2323 */
-	{ 0,	0,	NULL,			NULL		}, /* 2324 */
-	{ 0,	0,	NULL,			NULL		}, /* 2325 */
-	{ 0,	0,	NULL,			NULL		}, /* 2326 */
-	{ 0,	0,	NULL,			NULL		}, /* 2327 */
-	{ 0,	0,	NULL,			NULL		}, /* 2328 */
-	{ 0,	0,	NULL,			NULL		}, /* 2329 */
-	{ 0,	0,	NULL,			NULL		}, /* 2330 */
-	{ 0,	0,	NULL,			NULL		}, /* 2331 */
-	{ 0,	0,	NULL,			NULL		}, /* 2332 */
-	{ 0,	0,	NULL,			NULL		}, /* 2333 */
-	{ 0,	0,	NULL,			NULL		}, /* 2334 */
-	{ 0,	0,	NULL,			NULL		}, /* 2335 */
-	{ 0,	0,	NULL,			NULL		}, /* 2336 */
-	{ 0,	0,	NULL,			NULL		}, /* 2337 */
-	{ 0,	0,	NULL,			NULL		}, /* 2338 */
-	{ 0,	0,	NULL,			NULL		}, /* 2339 */
-	{ 0,	0,	NULL,			NULL		}, /* 2340 */
-	{ 0,	0,	NULL,			NULL		}, /* 2341 */
-	{ 0,	0,	NULL,			NULL		}, /* 2342 */
-	{ 0,	0,	NULL,			NULL		}, /* 2343 */
-	{ 0,	0,	NULL,			NULL		}, /* 2344 */
-	{ 0,	0,	NULL,			NULL		}, /* 2345 */
-	{ 0,	0,	NULL,			NULL		}, /* 2346 */
-	{ 0,	0,	NULL,			NULL		}, /* 2347 */
-	{ 0,	0,	NULL,			NULL		}, /* 2348 */
-	{ 0,	0,	NULL,			NULL		}, /* 2349 */
-	{ 0,	0,	NULL,			NULL		}, /* 2350 */
-	{ 0,	0,	NULL,			NULL		}, /* 2351 */
-	{ 0,	0,	NULL,			NULL		}, /* 2352 */
-	{ 0,	0,	NULL,			NULL		}, /* 2353 */
-	{ 0,	0,	NULL,			NULL		}, /* 2354 */
-	{ 0,	0,	NULL,			NULL		}, /* 2355 */
-	{ 0,	0,	NULL,			NULL		}, /* 2356 */
-	{ 0,	0,	NULL,			NULL		}, /* 2357 */
-	{ 0,	0,	NULL,			NULL		}, /* 2358 */
-	{ 0,	0,	NULL,			NULL		}, /* 2359 */
-	{ 0,	0,	NULL,			NULL		}, /* 2360 */
-	{ 0,	0,	NULL,			NULL		}, /* 2361 */
-	{ 0,	0,	NULL,			NULL		}, /* 2362 */
-	{ 0,	0,	NULL,			NULL		}, /* 2363 */
-	{ 0,	0,	NULL,			NULL		}, /* 2364 */
-	{ 0,	0,	NULL,			NULL		}, /* 2365 */
-	{ 0,	0,	NULL,			NULL		}, /* 2366 */
-	{ 0,	0,	NULL,			NULL		}, /* 2367 */
-	{ 0,	0,	NULL,			NULL		}, /* 2368 */
-	{ 0,	0,	NULL,			NULL		}, /* 2369 */
-	{ 0,	0,	NULL,			NULL		}, /* 2370 */
-	{ 0,	0,	NULL,			NULL		}, /* 2371 */
-	{ 0,	0,	NULL,			NULL		}, /* 2372 */
-	{ 0,	0,	NULL,			NULL		}, /* 2373 */
-	{ 0,	0,	NULL,			NULL		}, /* 2374 */
-	{ 0,	0,	NULL,			NULL		}, /* 2375 */
-	{ 0,	0,	NULL,			NULL		}, /* 2376 */
-	{ 0,	0,	NULL,			NULL		}, /* 2377 */
-	{ 0,	0,	NULL,			NULL		}, /* 2378 */
-	{ 0,	0,	NULL,			NULL		}, /* 2379 */
-	{ 0,	0,	NULL,			NULL		}, /* 2380 */
-	{ 0,	0,	NULL,			NULL		}, /* 2381 */
-	{ 0,	0,	NULL,			NULL		}, /* 2382 */
-	{ 0,	0,	NULL,			NULL		}, /* 2383 */
-	{ 0,	0,	NULL,			NULL		}, /* 2384 */
-	{ 0,	0,	NULL,			NULL		}, /* 2385 */
-	{ 0,	0,	NULL,			NULL		}, /* 2386 */
-	{ 0,	0,	NULL,			NULL		}, /* 2387 */
-	{ 0,	0,	NULL,			NULL		}, /* 2388 */
-	{ 0,	0,	NULL,			NULL		}, /* 2389 */
-	{ 0,	0,	NULL,			NULL		}, /* 2390 */
-	{ 0,	0,	NULL,			NULL		}, /* 2391 */
-	{ 0,	0,	NULL,			NULL		}, /* 2392 */
-	{ 0,	0,	NULL,			NULL		}, /* 2393 */
-	{ 0,	0,	NULL,			NULL		}, /* 2394 */
-	{ 0,	0,	NULL,			NULL		}, /* 2395 */
-	{ 0,	0,	NULL,			NULL		}, /* 2396 */
-	{ 0,	0,	NULL,			NULL		}, /* 2397 */
-	{ 0,	0,	NULL,			NULL		}, /* 2398 */
-	{ 0,	0,	NULL,			NULL		}, /* 2399 */
-	{ 0,	0,	NULL,			NULL		}, /* 2400 */
-	{ 0,	0,	NULL,			NULL		}, /* 2401 */
-	{ 0,	0,	NULL,			NULL		}, /* 2402 */
-	{ 0,	0,	NULL,			NULL		}, /* 2403 */
-	{ 0,	0,	NULL,			NULL		}, /* 2404 */
-	{ 0,	0,	NULL,			NULL		}, /* 2405 */
-	{ 0,	0,	NULL,			NULL		}, /* 2406 */
-	{ 0,	0,	NULL,			NULL		}, /* 2407 */
-	{ 0,	0,	NULL,			NULL		}, /* 2408 */
-	{ 0,	0,	NULL,			NULL		}, /* 2409 */
-	{ 0,	0,	NULL,			NULL		}, /* 2410 */
-	{ 0,	0,	NULL,			NULL		}, /* 2411 */
-	{ 0,	0,	NULL,			NULL		}, /* 2412 */
-	{ 0,	0,	NULL,			NULL		}, /* 2413 */
-	{ 0,	0,	NULL,			NULL		}, /* 2414 */
-	{ 0,	0,	NULL,			NULL		}, /* 2415 */
-	{ 0,	0,	NULL,			NULL		}, /* 2416 */
-	{ 0,	0,	NULL,			NULL		}, /* 2417 */
-	{ 0,	0,	NULL,			NULL		}, /* 2418 */
-	{ 0,	0,	NULL,			NULL		}, /* 2419 */
-	{ 0,	0,	NULL,			NULL		}, /* 2420 */
-	{ 0,	0,	NULL,			NULL		}, /* 2421 */
-	{ 0,	0,	NULL,			NULL		}, /* 2422 */
-	{ 0,	0,	NULL,			NULL		}, /* 2423 */
-	{ 0,	0,	NULL,			NULL		}, /* 2424 */
-	{ 0,	0,	NULL,			NULL		}, /* 2425 */
-	{ 0,	0,	NULL,			NULL		}, /* 2426 */
-	{ 0,	0,	NULL,			NULL		}, /* 2427 */
-	{ 0,	0,	NULL,			NULL		}, /* 2428 */
-	{ 0,	0,	NULL,			NULL		}, /* 2429 */
-	{ 0,	0,	NULL,			NULL		}, /* 2430 */
-	{ 0,	0,	NULL,			NULL		}, /* 2431 */
-	{ 0,	0,	NULL,			NULL		}, /* 2432 */
-	{ 0,	0,	NULL,			NULL		}, /* 2433 */
-	{ 0,	0,	NULL,			NULL		}, /* 2434 */
-	{ 0,	0,	NULL,			NULL		}, /* 2435 */
-	{ 0,	0,	NULL,			NULL		}, /* 2436 */
-	{ 0,	0,	NULL,			NULL		}, /* 2437 */
-	{ 0,	0,	NULL,			NULL		}, /* 2438 */
-	{ 0,	0,	NULL,			NULL		}, /* 2439 */
-	{ 0,	0,	NULL,			NULL		}, /* 2440 */
-	{ 0,	0,	NULL,			NULL		}, /* 2441 */
-	{ 0,	0,	NULL,			NULL		}, /* 2442 */
-	{ 0,	0,	NULL,			NULL		}, /* 2443 */
-	{ 0,	0,	NULL,			NULL		}, /* 2444 */
-	{ 0,	0,	NULL,			NULL		}, /* 2445 */
-	{ 0,	0,	NULL,			NULL		}, /* 2446 */
-	{ 0,	0,	NULL,			NULL		}, /* 2447 */
-	{ 0,	0,	NULL,			NULL		}, /* 2448 */
-	{ 0,	0,	NULL,			NULL		}, /* 2449 */
-	{ 0,	0,	NULL,			NULL		}, /* 2450 */
-	{ 0,	0,	NULL,			NULL		}, /* 2451 */
-	{ 0,	0,	NULL,			NULL		}, /* 2452 */
-	{ 0,	0,	NULL,			NULL		}, /* 2453 */
-	{ 0,	0,	NULL,			NULL		}, /* 2454 */
-	{ 0,	0,	NULL,			NULL		}, /* 2455 */
-	{ 0,	0,	NULL,			NULL		}, /* 2456 */
-	{ 0,	0,	NULL,			NULL		}, /* 2457 */
-	{ 0,	0,	NULL,			NULL		}, /* 2458 */
-	{ 0,	0,	NULL,			NULL		}, /* 2459 */
-	{ 0,	0,	NULL,			NULL		}, /* 2460 */
-	{ 0,	0,	NULL,			NULL		}, /* 2461 */
-	{ 0,	0,	NULL,			NULL		}, /* 2462 */
-	{ 0,	0,	NULL,			NULL		}, /* 2463 */
-	{ 0,	0,	NULL,			NULL		}, /* 2464 */
-	{ 0,	0,	NULL,			NULL		}, /* 2465 */
-	{ 0,	0,	NULL,			NULL		}, /* 2466 */
-	{ 0,	0,	NULL,			NULL		}, /* 2467 */
-	{ 0,	0,	NULL,			NULL		}, /* 2468 */
-	{ 0,	0,	NULL,			NULL		}, /* 2469 */
-	{ 0,	0,	NULL,			NULL		}, /* 2470 */
-	{ 0,	0,	NULL,			NULL		}, /* 2471 */
-	{ 0,	0,	NULL,			NULL		}, /* 2472 */
-	{ 0,	0,	NULL,			NULL		}, /* 2473 */
-	{ 0,	0,	NULL,			NULL		}, /* 2474 */
-	{ 0,	0,	NULL,			NULL		}, /* 2475 */
-	{ 0,	0,	NULL,			NULL		}, /* 2476 */
-	{ 0,	0,	NULL,			NULL		}, /* 2477 */
-	{ 0,	0,	NULL,			NULL		}, /* 2478 */
-	{ 0,	0,	NULL,			NULL		}, /* 2479 */
-	{ 0,	0,	NULL,			NULL		}, /* 2480 */
-	{ 0,	0,	NULL,			NULL		}, /* 2481 */
-	{ 0,	0,	NULL,			NULL		}, /* 2482 */
-	{ 0,	0,	NULL,			NULL		}, /* 2483 */
-	{ 0,	0,	NULL,			NULL		}, /* 2484 */
-	{ 0,	0,	NULL,			NULL		}, /* 2485 */
-	{ 0,	0,	NULL,			NULL		}, /* 2486 */
-	{ 0,	0,	NULL,			NULL		}, /* 2487 */
-	{ 0,	0,	NULL,			NULL		}, /* 2488 */
-	{ 0,	0,	NULL,			NULL		}, /* 2489 */
-	{ 0,	0,	NULL,			NULL		}, /* 2490 */
-	{ 0,	0,	NULL,			NULL		}, /* 2491 */
-	{ 0,	0,	NULL,			NULL		}, /* 2492 */
-	{ 0,	0,	NULL,			NULL		}, /* 2493 */
-	{ 0,	0,	NULL,			NULL		}, /* 2494 */
-	{ 0,	0,	NULL,			NULL		}, /* 2495 */
-	{ 0,	0,	NULL,			NULL		}, /* 2496 */
-	{ 0,	0,	NULL,			NULL		}, /* 2497 */
-	{ 0,	0,	NULL,			NULL		}, /* 2498 */
-	{ 0,	0,	NULL,			NULL		}, /* 2499 */
-	{ 0,	0,	NULL,			NULL		}, /* 2500 */
-	{ 0,	0,	NULL,			NULL		}, /* 2501 */
-	{ 0,	0,	NULL,			NULL		}, /* 2502 */
-	{ 0,	0,	NULL,			NULL		}, /* 2503 */
-	{ 0,	0,	NULL,			NULL		}, /* 2504 */
-	{ 0,	0,	NULL,			NULL		}, /* 2505 */
-	{ 0,	0,	NULL,			NULL		}, /* 2506 */
-	{ 0,	0,	NULL,			NULL		}, /* 2507 */
-	{ 0,	0,	NULL,			NULL		}, /* 2508 */
-	{ 0,	0,	NULL,			NULL		}, /* 2509 */
-	{ 0,	0,	NULL,			NULL		}, /* 2510 */
-	{ 0,	0,	NULL,			NULL		}, /* 2511 */
-	{ 0,	0,	NULL,			NULL		}, /* 2512 */
-	{ 0,	0,	NULL,			NULL		}, /* 2513 */
-	{ 0,	0,	NULL,			NULL		}, /* 2514 */
-	{ 0,	0,	NULL,			NULL		}, /* 2515 */
-	{ 0,	0,	NULL,			NULL		}, /* 2516 */
-	{ 0,	0,	NULL,			NULL		}, /* 2517 */
-	{ 0,	0,	NULL,			NULL		}, /* 2518 */
-	{ 0,	0,	NULL,			NULL		}, /* 2519 */
-	{ 0,	0,	NULL,			NULL		}, /* 2520 */
-	{ 0,	0,	NULL,			NULL		}, /* 2521 */
-	{ 0,	0,	NULL,			NULL		}, /* 2522 */
-	{ 0,	0,	NULL,			NULL		}, /* 2523 */
-	{ 0,	0,	NULL,			NULL		}, /* 2524 */
-	{ 0,	0,	NULL,			NULL		}, /* 2525 */
-	{ 0,	0,	NULL,			NULL		}, /* 2526 */
-	{ 0,	0,	NULL,			NULL		}, /* 2527 */
-	{ 0,	0,	NULL,			NULL		}, /* 2528 */
-	{ 0,	0,	NULL,			NULL		}, /* 2529 */
-	{ 0,	0,	NULL,			NULL		}, /* 2530 */
-	{ 0,	0,	NULL,			NULL		}, /* 2531 */
-	{ 0,	0,	NULL,			NULL		}, /* 2532 */
-	{ 0,	0,	NULL,			NULL		}, /* 2533 */
-	{ 0,	0,	NULL,			NULL		}, /* 2534 */
-	{ 0,	0,	NULL,			NULL		}, /* 2535 */
-	{ 0,	0,	NULL,			NULL		}, /* 2536 */
-	{ 0,	0,	NULL,			NULL		}, /* 2537 */
-	{ 0,	0,	NULL,			NULL		}, /* 2538 */
-	{ 0,	0,	NULL,			NULL		}, /* 2539 */
-	{ 0,	0,	NULL,			NULL		}, /* 2540 */
-	{ 0,	0,	NULL,			NULL		}, /* 2541 */
-	{ 0,	0,	NULL,			NULL		}, /* 2542 */
-	{ 0,	0,	NULL,			NULL		}, /* 2543 */
-	{ 0,	0,	NULL,			NULL		}, /* 2544 */
-	{ 0,	0,	NULL,			NULL		}, /* 2545 */
-	{ 0,	0,	NULL,			NULL		}, /* 2546 */
-	{ 0,	0,	NULL,			NULL		}, /* 2547 */
-	{ 0,	0,	NULL,			NULL		}, /* 2548 */
-	{ 0,	0,	NULL,			NULL		}, /* 2549 */
-	{ 0,	0,	NULL,			NULL		}, /* 2550 */
-	{ 0,	0,	NULL,			NULL		}, /* 2551 */
-	{ 0,	0,	NULL,			NULL		}, /* 2552 */
-	{ 0,	0,	NULL,			NULL		}, /* 2553 */
-	{ 0,	0,	NULL,			NULL		}, /* 2554 */
-	{ 0,	0,	NULL,			NULL		}, /* 2555 */
-	{ 0,	0,	NULL,			NULL		}, /* 2556 */
-	{ 0,	0,	NULL,			NULL		}, /* 2557 */
-	{ 0,	0,	NULL,			NULL		}, /* 2558 */
-	{ 0,	0,	NULL,			NULL		}, /* 2559 */
-	{ 0,	0,	NULL,			NULL		}, /* 2560 */
-	{ 0,	0,	NULL,			NULL		}, /* 2561 */
-	{ 0,	0,	NULL,			NULL		}, /* 2562 */
-	{ 0,	0,	NULL,			NULL		}, /* 2563 */
-	{ 0,	0,	NULL,			NULL		}, /* 2564 */
-	{ 0,	0,	NULL,			NULL		}, /* 2565 */
-	{ 0,	0,	NULL,			NULL		}, /* 2566 */
-	{ 0,	0,	NULL,			NULL		}, /* 2567 */
-	{ 0,	0,	NULL,			NULL		}, /* 2568 */
-	{ 0,	0,	NULL,			NULL		}, /* 2569 */
-	{ 0,	0,	NULL,			NULL		}, /* 2570 */
-	{ 0,	0,	NULL,			NULL		}, /* 2571 */
-	{ 0,	0,	NULL,			NULL		}, /* 2572 */
-	{ 0,	0,	NULL,			NULL		}, /* 2573 */
-	{ 0,	0,	NULL,			NULL		}, /* 2574 */
-	{ 0,	0,	NULL,			NULL		}, /* 2575 */
-	{ 0,	0,	NULL,			NULL		}, /* 2576 */
-	{ 0,	0,	NULL,			NULL		}, /* 2577 */
-	{ 0,	0,	NULL,			NULL		}, /* 2578 */
-	{ 0,	0,	NULL,			NULL		}, /* 2579 */
-	{ 0,	0,	NULL,			NULL		}, /* 2580 */
-	{ 0,	0,	NULL,			NULL		}, /* 2581 */
-	{ 0,	0,	NULL,			NULL		}, /* 2582 */
-	{ 0,	0,	NULL,			NULL		}, /* 2583 */
-	{ 0,	0,	NULL,			NULL		}, /* 2584 */
-	{ 0,	0,	NULL,			NULL		}, /* 2585 */
-	{ 0,	0,	NULL,			NULL		}, /* 2586 */
-	{ 0,	0,	NULL,			NULL		}, /* 2587 */
-	{ 0,	0,	NULL,			NULL		}, /* 2588 */
-	{ 0,	0,	NULL,			NULL		}, /* 2589 */
-	{ 0,	0,	NULL,			NULL		}, /* 2590 */
-	{ 0,	0,	NULL,			NULL		}, /* 2591 */
-	{ 0,	0,	NULL,			NULL		}, /* 2592 */
-	{ 0,	0,	NULL,			NULL		}, /* 2593 */
-	{ 0,	0,	NULL,			NULL		}, /* 2594 */
-	{ 0,	0,	NULL,			NULL		}, /* 2595 */
-	{ 0,	0,	NULL,			NULL		}, /* 2596 */
-	{ 0,	0,	NULL,			NULL		}, /* 2597 */
-	{ 0,	0,	NULL,			NULL		}, /* 2598 */
-	{ 0,	0,	NULL,			NULL		}, /* 2599 */
-	{ 0,	0,	NULL,			NULL		}, /* 2600 */
-	{ 0,	0,	NULL,			NULL		}, /* 2601 */
-	{ 0,	0,	NULL,			NULL		}, /* 2602 */
-	{ 0,	0,	NULL,			NULL		}, /* 2603 */
-	{ 0,	0,	NULL,			NULL		}, /* 2604 */
-	{ 0,	0,	NULL,			NULL		}, /* 2605 */
-	{ 0,	0,	NULL,			NULL		}, /* 2606 */
-	{ 0,	0,	NULL,			NULL		}, /* 2607 */
-	{ 0,	0,	NULL,			NULL		}, /* 2608 */
-	{ 0,	0,	NULL,			NULL		}, /* 2609 */
-	{ 0,	0,	NULL,			NULL		}, /* 2610 */
-	{ 0,	0,	NULL,			NULL		}, /* 2611 */
-	{ 0,	0,	NULL,			NULL		}, /* 2612 */
-	{ 0,	0,	NULL,			NULL		}, /* 2613 */
-	{ 0,	0,	NULL,			NULL		}, /* 2614 */
-	{ 0,	0,	NULL,			NULL		}, /* 2615 */
-	{ 0,	0,	NULL,			NULL		}, /* 2616 */
-	{ 0,	0,	NULL,			NULL		}, /* 2617 */
-	{ 0,	0,	NULL,			NULL		}, /* 2618 */
-	{ 0,	0,	NULL,			NULL		}, /* 2619 */
-	{ 0,	0,	NULL,			NULL		}, /* 2620 */
-	{ 0,	0,	NULL,			NULL		}, /* 2621 */
-	{ 0,	0,	NULL,			NULL		}, /* 2622 */
-	{ 0,	0,	NULL,			NULL		}, /* 2623 */
-	{ 0,	0,	NULL,			NULL		}, /* 2624 */
-	{ 0,	0,	NULL,			NULL		}, /* 2625 */
-	{ 0,	0,	NULL,			NULL		}, /* 2626 */
-	{ 0,	0,	NULL,			NULL		}, /* 2627 */
-	{ 0,	0,	NULL,			NULL		}, /* 2628 */
-	{ 0,	0,	NULL,			NULL		}, /* 2629 */
-	{ 0,	0,	NULL,			NULL		}, /* 2630 */
-	{ 0,	0,	NULL,			NULL		}, /* 2631 */
-	{ 0,	0,	NULL,			NULL		}, /* 2632 */
-	{ 0,	0,	NULL,			NULL		}, /* 2633 */
-	{ 0,	0,	NULL,			NULL		}, /* 2634 */
-	{ 0,	0,	NULL,			NULL		}, /* 2635 */
-	{ 0,	0,	NULL,			NULL		}, /* 2636 */
-	{ 0,	0,	NULL,			NULL		}, /* 2637 */
-	{ 0,	0,	NULL,			NULL		}, /* 2638 */
-	{ 0,	0,	NULL,			NULL		}, /* 2639 */
-	{ 0,	0,	NULL,			NULL		}, /* 2640 */
-	{ 0,	0,	NULL,			NULL		}, /* 2641 */
-	{ 0,	0,	NULL,			NULL		}, /* 2642 */
-	{ 0,	0,	NULL,			NULL		}, /* 2643 */
-	{ 0,	0,	NULL,			NULL		}, /* 2644 */
-	{ 0,	0,	NULL,			NULL		}, /* 2645 */
-	{ 0,	0,	NULL,			NULL		}, /* 2646 */
-	{ 0,	0,	NULL,			NULL		}, /* 2647 */
-	{ 0,	0,	NULL,			NULL		}, /* 2648 */
-	{ 0,	0,	NULL,			NULL		}, /* 2649 */
-	{ 0,	0,	NULL,			NULL		}, /* 2650 */
-	{ 0,	0,	NULL,			NULL		}, /* 2651 */
-	{ 0,	0,	NULL,			NULL		}, /* 2652 */
-	{ 0,	0,	NULL,			NULL		}, /* 2653 */
-	{ 0,	0,	NULL,			NULL		}, /* 2654 */
-	{ 0,	0,	NULL,			NULL		}, /* 2655 */
-	{ 0,	0,	NULL,			NULL		}, /* 2656 */
-	{ 0,	0,	NULL,			NULL		}, /* 2657 */
-	{ 0,	0,	NULL,			NULL		}, /* 2658 */
-	{ 0,	0,	NULL,			NULL		}, /* 2659 */
-	{ 0,	0,	NULL,			NULL		}, /* 2660 */
-	{ 0,	0,	NULL,			NULL		}, /* 2661 */
-	{ 0,	0,	NULL,			NULL		}, /* 2662 */
-	{ 0,	0,	NULL,			NULL		}, /* 2663 */
-	{ 0,	0,	NULL,			NULL		}, /* 2664 */
-	{ 0,	0,	NULL,			NULL		}, /* 2665 */
-	{ 0,	0,	NULL,			NULL		}, /* 2666 */
-	{ 0,	0,	NULL,			NULL		}, /* 2667 */
-	{ 0,	0,	NULL,			NULL		}, /* 2668 */
-	{ 0,	0,	NULL,			NULL		}, /* 2669 */
-	{ 0,	0,	NULL,			NULL		}, /* 2670 */
-	{ 0,	0,	NULL,			NULL		}, /* 2671 */
-	{ 0,	0,	NULL,			NULL		}, /* 2672 */
-	{ 0,	0,	NULL,			NULL		}, /* 2673 */
-	{ 0,	0,	NULL,			NULL		}, /* 2674 */
-	{ 0,	0,	NULL,			NULL		}, /* 2675 */
-	{ 0,	0,	NULL,			NULL		}, /* 2676 */
-	{ 0,	0,	NULL,			NULL		}, /* 2677 */
-	{ 0,	0,	NULL,			NULL		}, /* 2678 */
-	{ 0,	0,	NULL,			NULL		}, /* 2679 */
-	{ 0,	0,	NULL,			NULL		}, /* 2680 */
-	{ 0,	0,	NULL,			NULL		}, /* 2681 */
-	{ 0,	0,	NULL,			NULL		}, /* 2682 */
-	{ 0,	0,	NULL,			NULL		}, /* 2683 */
-	{ 0,	0,	NULL,			NULL		}, /* 2684 */
-	{ 0,	0,	NULL,			NULL		}, /* 2685 */
-	{ 0,	0,	NULL,			NULL		}, /* 2686 */
-	{ 0,	0,	NULL,			NULL		}, /* 2687 */
-	{ 0,	0,	NULL,			NULL		}, /* 2688 */
-	{ 0,	0,	NULL,			NULL		}, /* 2689 */
-	{ 0,	0,	NULL,			NULL		}, /* 2690 */
-	{ 0,	0,	NULL,			NULL		}, /* 2691 */
-	{ 0,	0,	NULL,			NULL		}, /* 2692 */
-	{ 0,	0,	NULL,			NULL		}, /* 2693 */
-	{ 0,	0,	NULL,			NULL		}, /* 2694 */
-	{ 0,	0,	NULL,			NULL		}, /* 2695 */
-	{ 0,	0,	NULL,			NULL		}, /* 2696 */
-	{ 0,	0,	NULL,			NULL		}, /* 2697 */
-	{ 0,	0,	NULL,			NULL		}, /* 2698 */
-	{ 0,	0,	NULL,			NULL		}, /* 2699 */
-	{ 0,	0,	NULL,			NULL		}, /* 2700 */
-	{ 0,	0,	NULL,			NULL		}, /* 2701 */
-	{ 0,	0,	NULL,			NULL		}, /* 2702 */
-	{ 0,	0,	NULL,			NULL		}, /* 2703 */
-	{ 0,	0,	NULL,			NULL		}, /* 2704 */
-	{ 0,	0,	NULL,			NULL		}, /* 2705 */
-	{ 0,	0,	NULL,			NULL		}, /* 2706 */
-	{ 0,	0,	NULL,			NULL		}, /* 2707 */
-	{ 0,	0,	NULL,			NULL		}, /* 2708 */
-	{ 0,	0,	NULL,			NULL		}, /* 2709 */
-	{ 0,	0,	NULL,			NULL		}, /* 2710 */
-	{ 0,	0,	NULL,			NULL		}, /* 2711 */
-	{ 0,	0,	NULL,			NULL		}, /* 2712 */
-	{ 0,	0,	NULL,			NULL		}, /* 2713 */
-	{ 0,	0,	NULL,			NULL		}, /* 2714 */
-	{ 0,	0,	NULL,			NULL		}, /* 2715 */
-	{ 0,	0,	NULL,			NULL		}, /* 2716 */
-	{ 0,	0,	NULL,			NULL		}, /* 2717 */
-	{ 0,	0,	NULL,			NULL		}, /* 2718 */
-	{ 0,	0,	NULL,			NULL		}, /* 2719 */
-	{ 0,	0,	NULL,			NULL		}, /* 2720 */
-	{ 0,	0,	NULL,			NULL		}, /* 2721 */
-	{ 0,	0,	NULL,			NULL		}, /* 2722 */
-	{ 0,	0,	NULL,			NULL		}, /* 2723 */
-	{ 0,	0,	NULL,			NULL		}, /* 2724 */
-	{ 0,	0,	NULL,			NULL		}, /* 2725 */
-	{ 0,	0,	NULL,			NULL		}, /* 2726 */
-	{ 0,	0,	NULL,			NULL		}, /* 2727 */
-	{ 0,	0,	NULL,			NULL		}, /* 2728 */
-	{ 0,	0,	NULL,			NULL		}, /* 2729 */
-	{ 0,	0,	NULL,			NULL		}, /* 2730 */
-	{ 0,	0,	NULL,			NULL		}, /* 2731 */
-	{ 0,	0,	NULL,			NULL		}, /* 2732 */
-	{ 0,	0,	NULL,			NULL		}, /* 2733 */
-	{ 0,	0,	NULL,			NULL		}, /* 2734 */
-	{ 0,	0,	NULL,			NULL		}, /* 2735 */
-	{ 0,	0,	NULL,			NULL		}, /* 2736 */
-	{ 0,	0,	NULL,			NULL		}, /* 2737 */
-	{ 0,	0,	NULL,			NULL		}, /* 2738 */
-	{ 0,	0,	NULL,			NULL		}, /* 2739 */
-	{ 0,	0,	NULL,			NULL		}, /* 2740 */
-	{ 0,	0,	NULL,			NULL		}, /* 2741 */
-	{ 0,	0,	NULL,			NULL		}, /* 2742 */
-	{ 0,	0,	NULL,			NULL		}, /* 2743 */
-	{ 0,	0,	NULL,			NULL		}, /* 2744 */
-	{ 0,	0,	NULL,			NULL		}, /* 2745 */
-	{ 0,	0,	NULL,			NULL		}, /* 2746 */
-	{ 0,	0,	NULL,			NULL		}, /* 2747 */
-	{ 0,	0,	NULL,			NULL		}, /* 2748 */
-	{ 0,	0,	NULL,			NULL		}, /* 2749 */
-	{ 0,	0,	NULL,			NULL		}, /* 2750 */
-	{ 0,	0,	NULL,			NULL		}, /* 2751 */
-	{ 0,	0,	NULL,			NULL		}, /* 2752 */
-	{ 0,	0,	NULL,			NULL		}, /* 2753 */
-	{ 0,	0,	NULL,			NULL		}, /* 2754 */
-	{ 0,	0,	NULL,			NULL		}, /* 2755 */
-	{ 0,	0,	NULL,			NULL		}, /* 2756 */
-	{ 0,	0,	NULL,			NULL		}, /* 2757 */
-	{ 0,	0,	NULL,			NULL		}, /* 2758 */
-	{ 0,	0,	NULL,			NULL		}, /* 2759 */
-	{ 0,	0,	NULL,			NULL		}, /* 2760 */
-	{ 0,	0,	NULL,			NULL		}, /* 2761 */
-	{ 0,	0,	NULL,			NULL		}, /* 2762 */
-	{ 0,	0,	NULL,			NULL		}, /* 2763 */
-	{ 0,	0,	NULL,			NULL		}, /* 2764 */
-	{ 0,	0,	NULL,			NULL		}, /* 2765 */
-	{ 0,	0,	NULL,			NULL		}, /* 2766 */
-	{ 0,	0,	NULL,			NULL		}, /* 2767 */
-	{ 0,	0,	NULL,			NULL		}, /* 2768 */
-	{ 0,	0,	NULL,			NULL		}, /* 2769 */
-	{ 0,	0,	NULL,			NULL		}, /* 2770 */
-	{ 0,	0,	NULL,			NULL		}, /* 2771 */
-	{ 0,	0,	NULL,			NULL		}, /* 2772 */
-	{ 0,	0,	NULL,			NULL		}, /* 2773 */
-	{ 0,	0,	NULL,			NULL		}, /* 2774 */
-	{ 0,	0,	NULL,			NULL		}, /* 2775 */
-	{ 0,	0,	NULL,			NULL		}, /* 2776 */
-	{ 0,	0,	NULL,			NULL		}, /* 2777 */
-	{ 0,	0,	NULL,			NULL		}, /* 2778 */
-	{ 0,	0,	NULL,			NULL		}, /* 2779 */
-	{ 0,	0,	NULL,			NULL		}, /* 2780 */
-	{ 0,	0,	NULL,			NULL		}, /* 2781 */
-	{ 0,	0,	NULL,			NULL		}, /* 2782 */
-	{ 0,	0,	NULL,			NULL		}, /* 2783 */
-	{ 0,	0,	NULL,			NULL		}, /* 2784 */
-	{ 0,	0,	NULL,			NULL		}, /* 2785 */
-	{ 0,	0,	NULL,			NULL		}, /* 2786 */
-	{ 0,	0,	NULL,			NULL		}, /* 2787 */
-	{ 0,	0,	NULL,			NULL		}, /* 2788 */
-	{ 0,	0,	NULL,			NULL		}, /* 2789 */
-	{ 0,	0,	NULL,			NULL		}, /* 2790 */
-	{ 0,	0,	NULL,			NULL		}, /* 2791 */
-	{ 0,	0,	NULL,			NULL		}, /* 2792 */
-	{ 0,	0,	NULL,			NULL		}, /* 2793 */
-	{ 0,	0,	NULL,			NULL		}, /* 2794 */
-	{ 0,	0,	NULL,			NULL		}, /* 2795 */
-	{ 0,	0,	NULL,			NULL		}, /* 2796 */
-	{ 0,	0,	NULL,			NULL		}, /* 2797 */
-	{ 0,	0,	NULL,			NULL		}, /* 2798 */
-	{ 0,	0,	NULL,			NULL		}, /* 2799 */
-	{ 0,	0,	NULL,			NULL		}, /* 2800 */
-	{ 0,	0,	NULL,			NULL		}, /* 2801 */
-	{ 0,	0,	NULL,			NULL		}, /* 2802 */
-	{ 0,	0,	NULL,			NULL		}, /* 2803 */
-	{ 0,	0,	NULL,			NULL		}, /* 2804 */
-	{ 0,	0,	NULL,			NULL		}, /* 2805 */
-	{ 0,	0,	NULL,			NULL		}, /* 2806 */
-	{ 0,	0,	NULL,			NULL		}, /* 2807 */
-	{ 0,	0,	NULL,			NULL		}, /* 2808 */
-	{ 0,	0,	NULL,			NULL		}, /* 2809 */
-	{ 0,	0,	NULL,			NULL		}, /* 2810 */
-	{ 0,	0,	NULL,			NULL		}, /* 2811 */
-	{ 0,	0,	NULL,			NULL		}, /* 2812 */
-	{ 0,	0,	NULL,			NULL		}, /* 2813 */
-	{ 0,	0,	NULL,			NULL		}, /* 2814 */
-	{ 0,	0,	NULL,			NULL		}, /* 2815 */
-	{ 0,	0,	NULL,			NULL		}, /* 2816 */
-	{ 0,	0,	NULL,			NULL		}, /* 2817 */
-	{ 0,	0,	NULL,			NULL		}, /* 2818 */
-	{ 0,	0,	NULL,			NULL		}, /* 2819 */
-	{ 0,	0,	NULL,			NULL		}, /* 2820 */
-	{ 0,	0,	NULL,			NULL		}, /* 2821 */
-	{ 0,	0,	NULL,			NULL		}, /* 2822 */
-	{ 0,	0,	NULL,			NULL		}, /* 2823 */
-	{ 0,	0,	NULL,			NULL		}, /* 2824 */
-	{ 0,	0,	NULL,			NULL		}, /* 2825 */
-	{ 0,	0,	NULL,			NULL		}, /* 2826 */
-	{ 0,	0,	NULL,			NULL		}, /* 2827 */
-	{ 0,	0,	NULL,			NULL		}, /* 2828 */
-	{ 0,	0,	NULL,			NULL		}, /* 2829 */
-	{ 0,	0,	NULL,			NULL		}, /* 2830 */
-	{ 0,	0,	NULL,			NULL		}, /* 2831 */
-	{ 0,	0,	NULL,			NULL		}, /* 2832 */
-	{ 0,	0,	NULL,			NULL		}, /* 2833 */
-	{ 0,	0,	NULL,			NULL		}, /* 2834 */
-	{ 0,	0,	NULL,			NULL		}, /* 2835 */
-	{ 0,	0,	NULL,			NULL		}, /* 2836 */
-	{ 0,	0,	NULL,			NULL		}, /* 2837 */
-	{ 0,	0,	NULL,			NULL		}, /* 2838 */
-	{ 0,	0,	NULL,			NULL		}, /* 2839 */
-	{ 0,	0,	NULL,			NULL		}, /* 2840 */
-	{ 0,	0,	NULL,			NULL		}, /* 2841 */
-	{ 0,	0,	NULL,			NULL		}, /* 2842 */
-	{ 0,	0,	NULL,			NULL		}, /* 2843 */
-	{ 0,	0,	NULL,			NULL		}, /* 2844 */
-	{ 0,	0,	NULL,			NULL		}, /* 2845 */
-	{ 0,	0,	NULL,			NULL		}, /* 2846 */
-	{ 0,	0,	NULL,			NULL		}, /* 2847 */
-	{ 0,	0,	NULL,			NULL		}, /* 2848 */
-	{ 0,	0,	NULL,			NULL		}, /* 2849 */
-	{ 0,	0,	NULL,			NULL		}, /* 2850 */
-	{ 0,	0,	NULL,			NULL		}, /* 2851 */
-	{ 0,	0,	NULL,			NULL		}, /* 2852 */
-	{ 0,	0,	NULL,			NULL		}, /* 2853 */
-	{ 0,	0,	NULL,			NULL		}, /* 2854 */
-	{ 0,	0,	NULL,			NULL		}, /* 2855 */
-	{ 0,	0,	NULL,			NULL		}, /* 2856 */
-	{ 0,	0,	NULL,			NULL		}, /* 2857 */
-	{ 0,	0,	NULL,			NULL		}, /* 2858 */
-	{ 0,	0,	NULL,			NULL		}, /* 2859 */
-	{ 0,	0,	NULL,			NULL		}, /* 2860 */
-	{ 0,	0,	NULL,			NULL		}, /* 2861 */
-	{ 0,	0,	NULL,			NULL		}, /* 2862 */
-	{ 0,	0,	NULL,			NULL		}, /* 2863 */
-	{ 0,	0,	NULL,			NULL		}, /* 2864 */
-	{ 0,	0,	NULL,			NULL		}, /* 2865 */
-	{ 0,	0,	NULL,			NULL		}, /* 2866 */
-	{ 0,	0,	NULL,			NULL		}, /* 2867 */
-	{ 0,	0,	NULL,			NULL		}, /* 2868 */
-	{ 0,	0,	NULL,			NULL		}, /* 2869 */
-	{ 0,	0,	NULL,			NULL		}, /* 2870 */
-	{ 0,	0,	NULL,			NULL		}, /* 2871 */
-	{ 0,	0,	NULL,			NULL		}, /* 2872 */
-	{ 0,	0,	NULL,			NULL		}, /* 2873 */
-	{ 0,	0,	NULL,			NULL		}, /* 2874 */
-	{ 0,	0,	NULL,			NULL		}, /* 2875 */
-	{ 0,	0,	NULL,			NULL		}, /* 2876 */
-	{ 0,	0,	NULL,			NULL		}, /* 2877 */
-	{ 0,	0,	NULL,			NULL		}, /* 2878 */
-	{ 0,	0,	NULL,			NULL		}, /* 2879 */
-	{ 0,	0,	NULL,			NULL		}, /* 2880 */
-	{ 0,	0,	NULL,			NULL		}, /* 2881 */
-	{ 0,	0,	NULL,			NULL		}, /* 2882 */
-	{ 0,	0,	NULL,			NULL		}, /* 2883 */
-	{ 0,	0,	NULL,			NULL		}, /* 2884 */
-	{ 0,	0,	NULL,			NULL		}, /* 2885 */
-	{ 0,	0,	NULL,			NULL		}, /* 2886 */
-	{ 0,	0,	NULL,			NULL		}, /* 2887 */
-	{ 0,	0,	NULL,			NULL		}, /* 2888 */
-	{ 0,	0,	NULL,			NULL		}, /* 2889 */
-	{ 0,	0,	NULL,			NULL		}, /* 2890 */
-	{ 0,	0,	NULL,			NULL		}, /* 2891 */
-	{ 0,	0,	NULL,			NULL		}, /* 2892 */
-	{ 0,	0,	NULL,			NULL		}, /* 2893 */
-	{ 0,	0,	NULL,			NULL		}, /* 2894 */
-	{ 0,	0,	NULL,			NULL		}, /* 2895 */
-	{ 0,	0,	NULL,			NULL		}, /* 2896 */
-	{ 0,	0,	NULL,			NULL		}, /* 2897 */
-	{ 0,	0,	NULL,			NULL		}, /* 2898 */
-	{ 0,	0,	NULL,			NULL		}, /* 2899 */
-	{ 0,	0,	NULL,			NULL		}, /* 2900 */
-	{ 0,	0,	NULL,			NULL		}, /* 2901 */
-	{ 0,	0,	NULL,			NULL		}, /* 2902 */
-	{ 0,	0,	NULL,			NULL		}, /* 2903 */
-	{ 0,	0,	NULL,			NULL		}, /* 2904 */
-	{ 0,	0,	NULL,			NULL		}, /* 2905 */
-	{ 0,	0,	NULL,			NULL		}, /* 2906 */
-	{ 0,	0,	NULL,			NULL		}, /* 2907 */
-	{ 0,	0,	NULL,			NULL		}, /* 2908 */
-	{ 0,	0,	NULL,			NULL		}, /* 2909 */
-	{ 0,	0,	NULL,			NULL		}, /* 2910 */
-	{ 0,	0,	NULL,			NULL		}, /* 2911 */
-	{ 0,	0,	NULL,			NULL		}, /* 2912 */
-	{ 0,	0,	NULL,			NULL		}, /* 2913 */
-	{ 0,	0,	NULL,			NULL		}, /* 2914 */
-	{ 0,	0,	NULL,			NULL		}, /* 2915 */
-	{ 0,	0,	NULL,			NULL		}, /* 2916 */
-	{ 0,	0,	NULL,			NULL		}, /* 2917 */
-	{ 0,	0,	NULL,			NULL		}, /* 2918 */
-	{ 0,	0,	NULL,			NULL		}, /* 2919 */
-	{ 0,	0,	NULL,			NULL		}, /* 2920 */
-	{ 0,	0,	NULL,			NULL		}, /* 2921 */
-	{ 0,	0,	NULL,			NULL		}, /* 2922 */
-	{ 0,	0,	NULL,			NULL		}, /* 2923 */
-	{ 0,	0,	NULL,			NULL		}, /* 2924 */
-	{ 0,	0,	NULL,			NULL		}, /* 2925 */
-	{ 0,	0,	NULL,			NULL		}, /* 2926 */
-	{ 0,	0,	NULL,			NULL		}, /* 2927 */
-	{ 0,	0,	NULL,			NULL		}, /* 2928 */
-	{ 0,	0,	NULL,			NULL		}, /* 2929 */
-	{ 0,	0,	NULL,			NULL		}, /* 2930 */
-	{ 0,	0,	NULL,			NULL		}, /* 2931 */
-	{ 0,	0,	NULL,			NULL		}, /* 2932 */
-	{ 0,	0,	NULL,			NULL		}, /* 2933 */
-	{ 0,	0,	NULL,			NULL		}, /* 2934 */
-	{ 0,	0,	NULL,			NULL		}, /* 2935 */
-	{ 0,	0,	NULL,			NULL		}, /* 2936 */
-	{ 0,	0,	NULL,			NULL		}, /* 2937 */
-	{ 0,	0,	NULL,			NULL		}, /* 2938 */
-	{ 0,	0,	NULL,			NULL		}, /* 2939 */
-	{ 0,	0,	NULL,			NULL		}, /* 2940 */
-	{ 0,	0,	NULL,			NULL		}, /* 2941 */
-	{ 0,	0,	NULL,			NULL		}, /* 2942 */
-	{ 0,	0,	NULL,			NULL		}, /* 2943 */
-	{ 0,	0,	NULL,			NULL		}, /* 2944 */
-	{ 0,	0,	NULL,			NULL		}, /* 2945 */
-	{ 0,	0,	NULL,			NULL		}, /* 2946 */
-	{ 0,	0,	NULL,			NULL		}, /* 2947 */
-	{ 0,	0,	NULL,			NULL		}, /* 2948 */
-	{ 0,	0,	NULL,			NULL		}, /* 2949 */
-	{ 0,	0,	NULL,			NULL		}, /* 2950 */
-	{ 0,	0,	NULL,			NULL		}, /* 2951 */
-	{ 0,	0,	NULL,			NULL		}, /* 2952 */
-	{ 0,	0,	NULL,			NULL		}, /* 2953 */
-	{ 0,	0,	NULL,			NULL		}, /* 2954 */
-	{ 0,	0,	NULL,			NULL		}, /* 2955 */
-	{ 0,	0,	NULL,			NULL		}, /* 2956 */
-	{ 0,	0,	NULL,			NULL		}, /* 2957 */
-	{ 0,	0,	NULL,			NULL		}, /* 2958 */
-	{ 0,	0,	NULL,			NULL		}, /* 2959 */
-	{ 0,	0,	NULL,			NULL		}, /* 2960 */
-	{ 0,	0,	NULL,			NULL		}, /* 2961 */
-	{ 0,	0,	NULL,			NULL		}, /* 2962 */
-	{ 0,	0,	NULL,			NULL		}, /* 2963 */
-	{ 0,	0,	NULL,			NULL		}, /* 2964 */
-	{ 0,	0,	NULL,			NULL		}, /* 2965 */
-	{ 0,	0,	NULL,			NULL		}, /* 2966 */
-	{ 0,	0,	NULL,			NULL		}, /* 2967 */
-	{ 0,	0,	NULL,			NULL		}, /* 2968 */
-	{ 0,	0,	NULL,			NULL		}, /* 2969 */
-	{ 0,	0,	NULL,			NULL		}, /* 2970 */
-	{ 0,	0,	NULL,			NULL		}, /* 2971 */
-	{ 0,	0,	NULL,			NULL		}, /* 2972 */
-	{ 0,	0,	NULL,			NULL		}, /* 2973 */
-	{ 0,	0,	NULL,			NULL		}, /* 2974 */
-	{ 0,	0,	NULL,			NULL		}, /* 2975 */
-	{ 0,	0,	NULL,			NULL		}, /* 2976 */
-	{ 0,	0,	NULL,			NULL		}, /* 2977 */
-	{ 0,	0,	NULL,			NULL		}, /* 2978 */
-	{ 0,	0,	NULL,			NULL		}, /* 2979 */
-	{ 0,	0,	NULL,			NULL		}, /* 2980 */
-	{ 0,	0,	NULL,			NULL		}, /* 2981 */
-	{ 0,	0,	NULL,			NULL		}, /* 2982 */
-	{ 0,	0,	NULL,			NULL		}, /* 2983 */
-	{ 0,	0,	NULL,			NULL		}, /* 2984 */
-	{ 0,	0,	NULL,			NULL		}, /* 2985 */
-	{ 0,	0,	NULL,			NULL		}, /* 2986 */
-	{ 0,	0,	NULL,			NULL		}, /* 2987 */
-	{ 0,	0,	NULL,			NULL		}, /* 2988 */
-	{ 0,	0,	NULL,			NULL		}, /* 2989 */
-	{ 0,	0,	NULL,			NULL		}, /* 2990 */
-	{ 0,	0,	NULL,			NULL		}, /* 2991 */
-	{ 0,	0,	NULL,			NULL		}, /* 2992 */
-	{ 0,	0,	NULL,			NULL		}, /* 2993 */
-	{ 0,	0,	NULL,			NULL		}, /* 2994 */
-	{ 0,	0,	NULL,			NULL		}, /* 2995 */
-	{ 0,	0,	NULL,			NULL		}, /* 2996 */
-	{ 0,	0,	NULL,			NULL		}, /* 2997 */
-	{ 0,	0,	NULL,			NULL		}, /* 2998 */
-	{ 0,	0,	NULL,			NULL		}, /* 2999 */ /* end of BSD 4.3 */
-	{ 0,	0,	printargs,		"posix_syscall"	}, /* 3000 */ /* start of POSIX */
-	{ 0,	0,	printargs,		"posix_exit"	}, /* 3001 */
-	{ 0,	0,	printargs,		"posix_fork"	}, /* 3002 */
-	{ 0,	0,	printargs,		"posix_read"	}, /* 3003 */
-	{ 0,	0,	printargs,		"posix_write"	}, /* 3004 */
-	{ 0,	0,	printargs,		"posix_open"	}, /* 3005 */
-	{ 0,	0,	printargs,		"posix_close"	}, /* 3006 */
-	{ 0,	0,	printargs,		"posix_wait"	}, /* 3007 */
-	{ 0,	0,	printargs,		"posix_creat"	}, /* 3008 */
-	{ 0,	0,	printargs,		"posix_link"	}, /* 3009 */
-	{ 0,	0,	printargs,		"posix_unlink"	}, /* 3010 */
-	{ 0,	0,	printargs,		"posix_exec"	}, /* 3011 */
-	{ 0,	0,	printargs,		"posix_chdir"	}, /* 3012 */
-	{ 0,	0,	printargs,		"posix_gtime"	}, /* 3013 */
-	{ 0,	0,	printargs,		"posix_mknod"	}, /* 3014 */
-	{ 0,	0,	printargs,		"posix_chmod"	}, /* 3015 */
-	{ 0,	0,	printargs,		"posix_chown"	}, /* 3016 */
-	{ 0,	0,	printargs,		"posix_sbreak"	}, /* 3017 */
-	{ 0,	0,	printargs,		"posix_stat"	}, /* 3018 */
-	{ 0,	0,	printargs,		"posix_lseek"	}, /* 3019 */
-	{ 0,	0,	printargs,		"posix_getpid"	}, /* 3020 */
-	{ 0,	0,	printargs,		"posix_mount"	}, /* 3021 */
-	{ 0,	0,	printargs,		"posix_umount"	}, /* 3022 */
-	{ 0,	0,	printargs,		"posix_setuid"	}, /* 3023 */
-	{ 0,	0,	printargs,		"posix_getuid"	}, /* 3024 */
-	{ 0,	0,	printargs,		"posix_stime"	}, /* 3025 */
-	{ 0,	0,	printargs,		"posix_ptrace"	}, /* 3026 */
-	{ 0,	0,	printargs,		"posix_alarm"	}, /* 3027 */
-	{ 0,	0,	printargs,		"posix_fstat"	}, /* 3028 */
-	{ 0,	0,	printargs,		"posix_pause"	}, /* 3029 */
-	{ 0,	0,	printargs,		"posix_utime"	}, /* 3030 */
-	{ 0,	0,	printargs,		"posix_stty"	}, /* 3031 */
-	{ 0,	0,	printargs,		"posix_gtty"	}, /* 3032 */
-	{ 0,	0,	printargs,		"posix_access"	}, /* 3033 */
-	{ 0,	0,	printargs,		"posix_nice"	}, /* 3034 */
-	{ 0,	0,	printargs,		"posix_statfs"	}, /* 3035 */
-	{ 0,	0,	printargs,		"posix_sync"	}, /* 3036 */
-	{ 0,	0,	printargs,		"posix_kill"	}, /* 3037 */
-	{ 0,	0,	printargs,		"posix_fstatfs"	}, /* 3038 */
-	{ 0,	0,	printargs,		"posix_getpgrp"	}, /* 3039 */
-	{ 0,	0,	printargs,		"posix_syssgi"	}, /* 3040 */
-	{ 0,	0,	printargs,		"posix_dup"	}, /* 3041 */
-	{ 0,	0,	printargs,		"posix_pipe"	}, /* 3042 */
-	{ 0,	0,	printargs,		"posix_times"	}, /* 3043 */
-	{ 0,	0,	printargs,		"posix_profil"	}, /* 3044 */
-	{ 0,	0,	printargs,		"posix_lock"	}, /* 3045 */
-	{ 0,	0,	printargs,		"posix_setgid"	}, /* 3046 */
-	{ 0,	0,	printargs,		"posix_getgid"	}, /* 3047 */
-	{ 0,	0,	printargs,		"posix_sig"	}, /* 3048 */
-	{ 0,	0,	printargs,		"posix_msgsys"	}, /* 3049 */
-	{ 0,	0,	printargs,		"posix_sysmips"	}, /* 3050 */
-	{ 0,	0,	printargs,		"posix_sysacct"	}, /* 3051 */
-	{ 0,	0,	printargs,		"posix_shmsys"	}, /* 3052 */
-	{ 0,	0,	printargs,		"posix_semsys"	}, /* 3053 */
-	{ 0,	0,	printargs,		"posix_ioctl"	}, /* 3054 */
-	{ 0,	0,	printargs,		"posix_uadmin"	}, /* 3055 */
-	{ 0,	0,	printargs,		"posix_exch"	}, /* 3056 */
-	{ 0,	0,	printargs,		"posix_utssys"	}, /* 3057 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3058 */
-	{ 0,	0,	printargs,		"posix_exece"	}, /* 3059 */
-	{ 0,	0,	printargs,		"posix_umask"	}, /* 3060 */
-	{ 0,	0,	printargs,		"posix_chroot"	}, /* 3061 */
-	{ 0,	0,	printargs,		"posix_fcntl"	}, /* 3062 */
-	{ 0,	0,	printargs,		"posix_ulimit"	}, /* 3063 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3064 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3065 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3066 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3067 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3068 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3069 */
-	{ 0,	0,	printargs,		"posix_advfs"	}, /* 3070 */
-	{ 0,	0,	printargs,		"posix_unadvfs"	}, /* 3071 */
-	{ 0,	0,	printargs,		"posix_rmount"	}, /* 3072 */
-	{ 0,	0,	printargs,		"posix_rumount"	}, /* 3073 */
-	{ 0,	0,	printargs,		"posix_rfstart"	}, /* 3074 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3075 */
-	{ 0,	0,	printargs,		"posix_rdebug"	}, /* 3076 */
-	{ 0,	0,	printargs,		"posix_rfstop"	}, /* 3077 */
-	{ 0,	0,	printargs,		"posix_rfsys"	}, /* 3078 */
-	{ 0,	0,	printargs,		"posix_rmdir"	}, /* 3079 */
-	{ 0,	0,	printargs,		"posix_mkdir"	}, /* 3080 */
-	{ 0,	0,	printargs,		"posix_getdents"	}, /* 3081 */
-	{ 0,	0,	printargs,		"posix_sginap"	}, /* 3082 */
-	{ 0,	0,	printargs,		"posix_sgikopt"	}, /* 3083 */
-	{ 0,	0,	printargs,		"posix_sysfs"	}, /* 3084 */
-	{ 0,	0,	printargs,		"posix_getmsg"	}, /* 3085 */
-	{ 0,	0,	printargs,		"posix_putmsg"	}, /* 3086 */
-	{ 0,	0,	printargs,		"posix_poll"	}, /* 3087 */
-	{ 0,	0,	printargs,		"posix_sigreturn"	}, /* 3088 */
-	{ 0,	0,	printargs,		"posix_accept"	}, /* 3089 */
-	{ 0,	0,	printargs,		"posix_bind"	}, /* 3090 */
-	{ 0,	0,	printargs,		"posix_connect"	}, /* 3091 */
-	{ 0,	0,	printargs,		"posix_gethostid"	}, /* 3092 */
-	{ 0,	0,	printargs,		"posix_getpeername"	}, /* 3093 */
-	{ 0,	0,	printargs,		"posix_getsockname"	}, /* 3094 */
-	{ 0,	0,	printargs,		"posix_getsockopt"	}, /* 3095 */
-	{ 0,	0,	printargs,		"posix_listen"	}, /* 3096 */
-	{ 0,	0,	printargs,		"posix_recv"	}, /* 3097 */
-	{ 0,	0,	printargs,		"posix_recvfrom"	}, /* 3098 */
-	{ 0,	0,	printargs,		"posix_recvmsg"	}, /* 3099 */
-	{ 0,	0,	printargs,		"posix_select"	}, /* 3100 */
-	{ 0,	0,	printargs,		"posix_send"	}, /* 3101 */
-	{ 0,	0,	printargs,		"posix_sendmsg"	}, /* 3102 */
-	{ 0,	0,	printargs,		"posix_sendto"	}, /* 3103 */
-	{ 0,	0,	printargs,		"posix_sethostid"	}, /* 3104 */
-	{ 0,	0,	printargs,		"posix_setsockopt"	}, /* 3105 */
-	{ 0,	0,	printargs,		"posix_shutdown"	}, /* 3106 */
-	{ 0,	0,	printargs,		"posix_socket"	}, /* 3107 */
-	{ 0,	0,	printargs,		"posix_gethostname"	}, /* 3108 */
-	{ 0,	0,	printargs,		"posix_sethostname"	}, /* 3109 */
-	{ 0,	0,	printargs,		"posix_getdomainname"	}, /* 3110 */
-	{ 0,	0,	printargs,		"posix_setdomainname"	}, /* 3111 */
-	{ 0,	0,	printargs,		"posix_truncate"	}, /* 3112 */
-	{ 0,	0,	printargs,		"posix_ftruncate"	}, /* 3113 */
-	{ 0,	0,	printargs,		"posix_rename"	}, /* 3114 */
-	{ 0,	0,	printargs,		"posix_symlink"	}, /* 3115 */
-	{ 0,	0,	printargs,		"posix_readlink"	}, /* 3116 */
-	{ 0,	0,	printargs,		"posix_lstat"	}, /* 3117 */
-	{ 0,	0,	printargs,		"posix_nfs_mount"	}, /* 3118 */
-	{ 0,	0,	printargs,		"posix_nfs_svc"	}, /* 3119 */
-	{ 0,	0,	printargs,		"posix_nfs_getfh"	}, /* 3120 */
-	{ 0,	0,	printargs,		"posix_async_daemon"	}, /* 3121 */
-	{ 0,	0,	printargs,		"posix_exportfs"	}, /* 3122 */
-	{ 0,	0,	printargs,		"posix_SGI_setregid"	}, /* 3123 */
-	{ 0,	0,	printargs,		"posix_SGI_setreuid"	}, /* 3124 */
-	{ 0,	0,	printargs,		"posix_getitimer"	}, /* 3125 */
-	{ 0,	0,	printargs,		"posix_setitimer"	}, /* 3126 */
-	{ 0,	0,	printargs,		"posix_adjtime"	}, /* 3127 */
-	{ 0,	0,	printargs,		"posix_SGI_bsdgettime"	}, /* 3128 */
-	{ 0,	0,	printargs,		"posix_SGI_sproc"	}, /* 3129 */
-	{ 0,	0,	printargs,		"posix_SGI_prctl"	}, /* 3130 */
-	{ 0,	0,	printargs,		"posix_SGI_blkproc"	}, /* 3131 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3132 */
-	{ 0,	0,	printargs,		"posix_SGI_sgigsc"	}, /* 3133 */
-	{ 0,	0,	printargs,		"posix_SGI_mmap"	}, /* 3134 */
-	{ 0,	0,	printargs,		"posix_SGI_munmap"	}, /* 3135 */
-	{ 0,	0,	printargs,		"posix_SGI_mprotect"	}, /* 3136 */
-	{ 0,	0,	printargs,		"posix_SGI_msync"	}, /* 3137 */
-	{ 0,	0,	printargs,		"posix_SGI_madvise"	}, /* 3138 */
-	{ 0,	0,	printargs,		"posix_SGI_mpin"	}, /* 3139 */
-	{ 0,	0,	printargs,		"posix_SGI_getpagesize"	}, /* 3140 */
-	{ 0,	0,	printargs,		"posix_SGI_libattach"	}, /* 3141 */
-	{ 0,	0,	printargs,		"posix_SGI_libdetach"	}, /* 3142 */
-	{ 0,	0,	printargs,		"posix_SGI_getpgrp"	}, /* 3143 */
-	{ 0,	0,	printargs,		"posix_SGI_setpgrp"	}, /* 3144 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3145 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3146 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3147 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3148 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3149 */
-	{ 0,	0,	printargs,		"posix_cacheflush"	}, /* 3150 */
-	{ 0,	0,	printargs,		"posix_cachectl"	}, /* 3151 */
-	{ 0,	0,	printargs,		"posix_fchown"	}, /* 3152 */
-	{ 0,	0,	printargs,		"posix_fchmod"	}, /* 3153 */
-	{ 0,	0,	printargs,		"posix_wait3"	}, /* 3154 */
-	{ 0,	0,	printargs,		"posix_mmap"	}, /* 3155 */
-	{ 0,	0,	printargs,		"posix_munmap"	}, /* 3156 */
-	{ 0,	0,	printargs,		"posix_madvise"	}, /* 3157 */
-	{ 0,	0,	printargs,		"posix_BSD_getpagesize"	}, /* 3158 */
-	{ 0,	0,	printargs,		"posix_setreuid"	}, /* 3159 */
-	{ 0,	0,	printargs,		"posix_setregid"	}, /* 3160 */
-	{ 0,	0,	printargs,		"posix_setpgid"	}, /* 3161 */
-	{ 0,	0,	printargs,		"posix_getgroups"	}, /* 3162 */
-	{ 0,	0,	printargs,		"posix_setgroups"	}, /* 3163 */
-	{ 0,	0,	printargs,		"posix_gettimeofday"	}, /* 3164 */
-	{ 0,	0,	printargs,		"posix_getrusage"	}, /* 3165 */
-	{ 0,	0,	printargs,		"posix_getrlimit"	}, /* 3166 */
-	{ 0,	0,	printargs,		"posix_setrlimit"	}, /* 3167 */
-	{ 0,	0,	printargs,		"posix_waitpid"	}, /* 3168 */
-	{ 0,	0,	printargs,		"posix_dup2"	}, /* 3169 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3170 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3171 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3172 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3173 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3174 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3175 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3176 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3177 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3178 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3179 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3180 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3181 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3182 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3183 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3184 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3185 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3186 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3187 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3188 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3189 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3190 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3191 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3192 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3193 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3194 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3195 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3196 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3197 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3198 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3199 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3200 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3201 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3202 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3203 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3204 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3205 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3206 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3207 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3208 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3209 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3210 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3211 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3212 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3213 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3214 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3215 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3216 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3217 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3218 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3219 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3220 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3221 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3222 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3223 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3224 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3225 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3226 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3227 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3228 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3229 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3230 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3231 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3232 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3233 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3234 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3235 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3236 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3237 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3238 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3239 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3240 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3241 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3242 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3243 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3244 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3245 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3246 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3247 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3248 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3249 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3250 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3251 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3252 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3253 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3254 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3255 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3256 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3257 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3258 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3259 */
-	{ 0,	0,	printargs,		"posix_netboot"	}, /* 3260 */
-	{ 0,	0,	printargs,		"posix_netunboot"	}, /* 3261 */
-	{ 0,	0,	printargs,		"posix_rdump"	}, /* 3262 */
-	{ 0,	0,	printargs,		"posix_setsid"	}, /* 3263 */
-	{ 0,	0,	printargs,		"posix_getmaxsig"	}, /* 3264 */
-	{ 0,	0,	printargs,		"posix_sigpending"	}, /* 3265 */
-	{ 0,	0,	printargs,		"posix_sigprocmask"	}, /* 3266 */
-	{ 0,	0,	printargs,		"posix_sigsuspend"	}, /* 3267 */
-	{ 0,	0,	printargs,		"posix_sigaction"	}, /* 3268 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3269 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3270 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3271 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3272 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3273 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3274 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3275 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3276 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3277 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3278 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3279 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3280 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3281 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3282 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3283 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3284 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3285 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3286 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3287 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3288 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3289 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3290 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3291 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3292 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3293 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3294 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3295 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3296 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3297 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3298 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3299 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3300 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3301 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3302 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3303 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3304 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3305 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3306 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3307 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3308 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3309 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3310 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3311 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3312 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3313 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3314 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3315 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3316 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3317 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3318 */
-	{ 0,	0,	NULL,			NULL	,	}, /* 3319 */
-	{ 0,	0,	NULL,			NULL		}, /* 3320 */
-	{ 0,	0,	NULL,			NULL		}, /* 3321 */
-	{ 0,	0,	NULL,			NULL		}, /* 3322 */
-	{ 0,	0,	NULL,			NULL		}, /* 3323 */
-	{ 0,	0,	NULL,			NULL		}, /* 3324 */
-	{ 0,	0,	NULL,			NULL		}, /* 3325 */
-	{ 0,	0,	NULL,			NULL		}, /* 3326 */
-	{ 0,	0,	NULL,			NULL		}, /* 3327 */
-	{ 0,	0,	NULL,			NULL		}, /* 3328 */
-	{ 0,	0,	NULL,			NULL		}, /* 3329 */
-	{ 0,	0,	NULL,			NULL		}, /* 3330 */
-	{ 0,	0,	NULL,			NULL		}, /* 3331 */
-	{ 0,	0,	NULL,			NULL		}, /* 3332 */
-	{ 0,	0,	NULL,			NULL		}, /* 3333 */
-	{ 0,	0,	NULL,			NULL		}, /* 3334 */
-	{ 0,	0,	NULL,			NULL		}, /* 3335 */
-	{ 0,	0,	NULL,			NULL		}, /* 3336 */
-	{ 0,	0,	NULL,			NULL		}, /* 3337 */
-	{ 0,	0,	NULL,			NULL		}, /* 3338 */
-	{ 0,	0,	NULL,			NULL		}, /* 3339 */
-	{ 0,	0,	NULL,			NULL		}, /* 3340 */
-	{ 0,	0,	NULL,			NULL		}, /* 3341 */
-	{ 0,	0,	NULL,			NULL		}, /* 3342 */
-	{ 0,	0,	NULL,			NULL		}, /* 3343 */
-	{ 0,	0,	NULL,			NULL		}, /* 3344 */
-	{ 0,	0,	NULL,			NULL		}, /* 3345 */
-	{ 0,	0,	NULL,			NULL		}, /* 3346 */
-	{ 0,	0,	NULL,			NULL		}, /* 3347 */
-	{ 0,	0,	NULL,			NULL		}, /* 3348 */
-	{ 0,	0,	NULL,			NULL		}, /* 3349 */
-	{ 0,	0,	NULL,			NULL		}, /* 3350 */
-	{ 0,	0,	NULL,			NULL		}, /* 3351 */
-	{ 0,	0,	NULL,			NULL		}, /* 3352 */
-	{ 0,	0,	NULL,			NULL		}, /* 3353 */
-	{ 0,	0,	NULL,			NULL		}, /* 3354 */
-	{ 0,	0,	NULL,			NULL		}, /* 3355 */
-	{ 0,	0,	NULL,			NULL		}, /* 3356 */
-	{ 0,	0,	NULL,			NULL		}, /* 3357 */
-	{ 0,	0,	NULL,			NULL		}, /* 3358 */
-	{ 0,	0,	NULL,			NULL		}, /* 3359 */
-	{ 0,	0,	NULL,			NULL		}, /* 3360 */
-	{ 0,	0,	NULL,			NULL		}, /* 3361 */
-	{ 0,	0,	NULL,			NULL		}, /* 3362 */
-	{ 0,	0,	NULL,			NULL		}, /* 3363 */
-	{ 0,	0,	NULL,			NULL		}, /* 3364 */
-	{ 0,	0,	NULL,			NULL		}, /* 3365 */
-	{ 0,	0,	NULL,			NULL		}, /* 3366 */
-	{ 0,	0,	NULL,			NULL		}, /* 3367 */
-	{ 0,	0,	NULL,			NULL		}, /* 3368 */
-	{ 0,	0,	NULL,			NULL		}, /* 3369 */
-	{ 0,	0,	NULL,			NULL		}, /* 3370 */
-	{ 0,	0,	NULL,			NULL		}, /* 3371 */
-	{ 0,	0,	NULL,			NULL		}, /* 3372 */
-	{ 0,	0,	NULL,			NULL		}, /* 3373 */
-	{ 0,	0,	NULL,			NULL		}, /* 3374 */
-	{ 0,	0,	NULL,			NULL		}, /* 3375 */
-	{ 0,	0,	NULL,			NULL		}, /* 3376 */
-	{ 0,	0,	NULL,			NULL		}, /* 3377 */
-	{ 0,	0,	NULL,			NULL		}, /* 3378 */
-	{ 0,	0,	NULL,			NULL		}, /* 3379 */
-	{ 0,	0,	NULL,			NULL		}, /* 3380 */
-	{ 0,	0,	NULL,			NULL		}, /* 3381 */
-	{ 0,	0,	NULL,			NULL		}, /* 3382 */
-	{ 0,	0,	NULL,			NULL		}, /* 3383 */
-	{ 0,	0,	NULL,			NULL		}, /* 3384 */
-	{ 0,	0,	NULL,			NULL		}, /* 3385 */
-	{ 0,	0,	NULL,			NULL		}, /* 3386 */
-	{ 0,	0,	NULL,			NULL		}, /* 3387 */
-	{ 0,	0,	NULL,			NULL		}, /* 3388 */
-	{ 0,	0,	NULL,			NULL		}, /* 3389 */
-	{ 0,	0,	NULL,			NULL		}, /* 3390 */
-	{ 0,	0,	NULL,			NULL		}, /* 3391 */
-	{ 0,	0,	NULL,			NULL		}, /* 3392 */
-	{ 0,	0,	NULL,			NULL		}, /* 3393 */
-	{ 0,	0,	NULL,			NULL		}, /* 3394 */
-	{ 0,	0,	NULL,			NULL		}, /* 3395 */
-	{ 0,	0,	NULL,			NULL		}, /* 3396 */
-	{ 0,	0,	NULL,			NULL		}, /* 3397 */
-	{ 0,	0,	NULL,			NULL		}, /* 3398 */
-	{ 0,	0,	NULL,			NULL		}, /* 3399 */
-	{ 0,	0,	NULL,			NULL		}, /* 3400 */
-	{ 0,	0,	NULL,			NULL		}, /* 3401 */
-	{ 0,	0,	NULL,			NULL		}, /* 3402 */
-	{ 0,	0,	NULL,			NULL		}, /* 3403 */
-	{ 0,	0,	NULL,			NULL		}, /* 3404 */
-	{ 0,	0,	NULL,			NULL		}, /* 3405 */
-	{ 0,	0,	NULL,			NULL		}, /* 3406 */
-	{ 0,	0,	NULL,			NULL		}, /* 3407 */
-	{ 0,	0,	NULL,			NULL		}, /* 3408 */
-	{ 0,	0,	NULL,			NULL		}, /* 3409 */
-	{ 0,	0,	NULL,			NULL		}, /* 3410 */
-	{ 0,	0,	NULL,			NULL		}, /* 3411 */
-	{ 0,	0,	NULL,			NULL		}, /* 3412 */
-	{ 0,	0,	NULL,			NULL		}, /* 3413 */
-	{ 0,	0,	NULL,			NULL		}, /* 3414 */
-	{ 0,	0,	NULL,			NULL		}, /* 3415 */
-	{ 0,	0,	NULL,			NULL		}, /* 3416 */
-	{ 0,	0,	NULL,			NULL		}, /* 3417 */
-	{ 0,	0,	NULL,			NULL		}, /* 3418 */
-	{ 0,	0,	NULL,			NULL		}, /* 3419 */
-	{ 0,	0,	NULL,			NULL		}, /* 3420 */
-	{ 0,	0,	NULL,			NULL		}, /* 3421 */
-	{ 0,	0,	NULL,			NULL		}, /* 3422 */
-	{ 0,	0,	NULL,			NULL		}, /* 3423 */
-	{ 0,	0,	NULL,			NULL		}, /* 3424 */
-	{ 0,	0,	NULL,			NULL		}, /* 3425 */
-	{ 0,	0,	NULL,			NULL		}, /* 3426 */
-	{ 0,	0,	NULL,			NULL		}, /* 3427 */
-	{ 0,	0,	NULL,			NULL		}, /* 3428 */
-	{ 0,	0,	NULL,			NULL		}, /* 3429 */
-	{ 0,	0,	NULL,			NULL		}, /* 3430 */
-	{ 0,	0,	NULL,			NULL		}, /* 3431 */
-	{ 0,	0,	NULL,			NULL		}, /* 3432 */
-	{ 0,	0,	NULL,			NULL		}, /* 3433 */
-	{ 0,	0,	NULL,			NULL		}, /* 3434 */
-	{ 0,	0,	NULL,			NULL		}, /* 3435 */
-	{ 0,	0,	NULL,			NULL		}, /* 3436 */
-	{ 0,	0,	NULL,			NULL		}, /* 3437 */
-	{ 0,	0,	NULL,			NULL		}, /* 3438 */
-	{ 0,	0,	NULL,			NULL		}, /* 3439 */
-	{ 0,	0,	NULL,			NULL		}, /* 3440 */
-	{ 0,	0,	NULL,			NULL		}, /* 3441 */
-	{ 0,	0,	NULL,			NULL		}, /* 3442 */
-	{ 0,	0,	NULL,			NULL		}, /* 3443 */
-	{ 0,	0,	NULL,			NULL		}, /* 3444 */
-	{ 0,	0,	NULL,			NULL		}, /* 3445 */
-	{ 0,	0,	NULL,			NULL		}, /* 3446 */
-	{ 0,	0,	NULL,			NULL		}, /* 3447 */
-	{ 0,	0,	NULL,			NULL		}, /* 3448 */
-	{ 0,	0,	NULL,			NULL		}, /* 3449 */
-	{ 0,	0,	NULL,			NULL		}, /* 3450 */
-	{ 0,	0,	NULL,			NULL		}, /* 3451 */
-	{ 0,	0,	NULL,			NULL		}, /* 3452 */
-	{ 0,	0,	NULL,			NULL		}, /* 3453 */
-	{ 0,	0,	NULL,			NULL		}, /* 3454 */
-	{ 0,	0,	NULL,			NULL		}, /* 3455 */
-	{ 0,	0,	NULL,			NULL		}, /* 3456 */
-	{ 0,	0,	NULL,			NULL		}, /* 3457 */
-	{ 0,	0,	NULL,			NULL		}, /* 3458 */
-	{ 0,	0,	NULL,			NULL		}, /* 3459 */
-	{ 0,	0,	NULL,			NULL		}, /* 3460 */
-	{ 0,	0,	NULL,			NULL		}, /* 3461 */
-	{ 0,	0,	NULL,			NULL		}, /* 3462 */
-	{ 0,	0,	NULL,			NULL		}, /* 3463 */
-	{ 0,	0,	NULL,			NULL		}, /* 3464 */
-	{ 0,	0,	NULL,			NULL		}, /* 3465 */
-	{ 0,	0,	NULL,			NULL		}, /* 3466 */
-	{ 0,	0,	NULL,			NULL		}, /* 3467 */
-	{ 0,	0,	NULL,			NULL		}, /* 3468 */
-	{ 0,	0,	NULL,			NULL		}, /* 3469 */
-	{ 0,	0,	NULL,			NULL		}, /* 3470 */
-	{ 0,	0,	NULL,			NULL		}, /* 3471 */
-	{ 0,	0,	NULL,			NULL		}, /* 3472 */
-	{ 0,	0,	NULL,			NULL		}, /* 3473 */
-	{ 0,	0,	NULL,			NULL		}, /* 3474 */
-	{ 0,	0,	NULL,			NULL		}, /* 3475 */
-	{ 0,	0,	NULL,			NULL		}, /* 3476 */
-	{ 0,	0,	NULL,			NULL		}, /* 3477 */
-	{ 0,	0,	NULL,			NULL		}, /* 3478 */
-	{ 0,	0,	NULL,			NULL		}, /* 3479 */
-	{ 0,	0,	NULL,			NULL		}, /* 3480 */
-	{ 0,	0,	NULL,			NULL		}, /* 3481 */
-	{ 0,	0,	NULL,			NULL		}, /* 3482 */
-	{ 0,	0,	NULL,			NULL		}, /* 3483 */
-	{ 0,	0,	NULL,			NULL		}, /* 3484 */
-	{ 0,	0,	NULL,			NULL		}, /* 3485 */
-	{ 0,	0,	NULL,			NULL		}, /* 3486 */
-	{ 0,	0,	NULL,			NULL		}, /* 3487 */
-	{ 0,	0,	NULL,			NULL		}, /* 3488 */
-	{ 0,	0,	NULL,			NULL		}, /* 3489 */
-	{ 0,	0,	NULL,			NULL		}, /* 3490 */
-	{ 0,	0,	NULL,			NULL		}, /* 3491 */
-	{ 0,	0,	NULL,			NULL		}, /* 3492 */
-	{ 0,	0,	NULL,			NULL		}, /* 3493 */
-	{ 0,	0,	NULL,			NULL		}, /* 3494 */
-	{ 0,	0,	NULL,			NULL		}, /* 3495 */
-	{ 0,	0,	NULL,			NULL		}, /* 3496 */
-	{ 0,	0,	NULL,			NULL		}, /* 3497 */
-	{ 0,	0,	NULL,			NULL		}, /* 3498 */
-	{ 0,	0,	NULL,			NULL		}, /* 3499 */
-	{ 0,	0,	NULL,			NULL		}, /* 3500 */
-	{ 0,	0,	NULL,			NULL		}, /* 3501 */
-	{ 0,	0,	NULL,			NULL		}, /* 3502 */
-	{ 0,	0,	NULL,			NULL		}, /* 3503 */
-	{ 0,	0,	NULL,			NULL		}, /* 3504 */
-	{ 0,	0,	NULL,			NULL		}, /* 3505 */
-	{ 0,	0,	NULL,			NULL		}, /* 3506 */
-	{ 0,	0,	NULL,			NULL		}, /* 3507 */
-	{ 0,	0,	NULL,			NULL		}, /* 3508 */
-	{ 0,	0,	NULL,			NULL		}, /* 3509 */
-	{ 0,	0,	NULL,			NULL		}, /* 3510 */
-	{ 0,	0,	NULL,			NULL		}, /* 3511 */
-	{ 0,	0,	NULL,			NULL		}, /* 3512 */
-	{ 0,	0,	NULL,			NULL		}, /* 3513 */
-	{ 0,	0,	NULL,			NULL		}, /* 3514 */
-	{ 0,	0,	NULL,			NULL		}, /* 3515 */
-	{ 0,	0,	NULL,			NULL		}, /* 3516 */
-	{ 0,	0,	NULL,			NULL		}, /* 3517 */
-	{ 0,	0,	NULL,			NULL		}, /* 3518 */
-	{ 0,	0,	NULL,			NULL		}, /* 3519 */
-	{ 0,	0,	NULL,			NULL		}, /* 3520 */
-	{ 0,	0,	NULL,			NULL		}, /* 3521 */
-	{ 0,	0,	NULL,			NULL		}, /* 3522 */
-	{ 0,	0,	NULL,			NULL		}, /* 3523 */
-	{ 0,	0,	NULL,			NULL		}, /* 3524 */
-	{ 0,	0,	NULL,			NULL		}, /* 3525 */
-	{ 0,	0,	NULL,			NULL		}, /* 3526 */
-	{ 0,	0,	NULL,			NULL		}, /* 3527 */
-	{ 0,	0,	NULL,			NULL		}, /* 3528 */
-	{ 0,	0,	NULL,			NULL		}, /* 3529 */
-	{ 0,	0,	NULL,			NULL		}, /* 3530 */
-	{ 0,	0,	NULL,			NULL		}, /* 3531 */
-	{ 0,	0,	NULL,			NULL		}, /* 3532 */
-	{ 0,	0,	NULL,			NULL		}, /* 3533 */
-	{ 0,	0,	NULL,			NULL		}, /* 3534 */
-	{ 0,	0,	NULL,			NULL		}, /* 3535 */
-	{ 0,	0,	NULL,			NULL		}, /* 3536 */
-	{ 0,	0,	NULL,			NULL		}, /* 3537 */
-	{ 0,	0,	NULL,			NULL		}, /* 3538 */
-	{ 0,	0,	NULL,			NULL		}, /* 3539 */
-	{ 0,	0,	NULL,			NULL		}, /* 3540 */
-	{ 0,	0,	NULL,			NULL		}, /* 3541 */
-	{ 0,	0,	NULL,			NULL		}, /* 3542 */
-	{ 0,	0,	NULL,			NULL		}, /* 3543 */
-	{ 0,	0,	NULL,			NULL		}, /* 3544 */
-	{ 0,	0,	NULL,			NULL		}, /* 3545 */
-	{ 0,	0,	NULL,			NULL		}, /* 3546 */
-	{ 0,	0,	NULL,			NULL		}, /* 3547 */
-	{ 0,	0,	NULL,			NULL		}, /* 3548 */
-	{ 0,	0,	NULL,			NULL		}, /* 3549 */
-	{ 0,	0,	NULL,			NULL		}, /* 3550 */
-	{ 0,	0,	NULL,			NULL		}, /* 3551 */
-	{ 0,	0,	NULL,			NULL		}, /* 3552 */
-	{ 0,	0,	NULL,			NULL		}, /* 3553 */
-	{ 0,	0,	NULL,			NULL		}, /* 3554 */
-	{ 0,	0,	NULL,			NULL		}, /* 3555 */
-	{ 0,	0,	NULL,			NULL		}, /* 3556 */
-	{ 0,	0,	NULL,			NULL		}, /* 3557 */
-	{ 0,	0,	NULL,			NULL		}, /* 3558 */
-	{ 0,	0,	NULL,			NULL		}, /* 3559 */
-	{ 0,	0,	NULL,			NULL		}, /* 3560 */
-	{ 0,	0,	NULL,			NULL		}, /* 3561 */
-	{ 0,	0,	NULL,			NULL		}, /* 3562 */
-	{ 0,	0,	NULL,			NULL		}, /* 3563 */
-	{ 0,	0,	NULL,			NULL		}, /* 3564 */
-	{ 0,	0,	NULL,			NULL		}, /* 3565 */
-	{ 0,	0,	NULL,			NULL		}, /* 3566 */
-	{ 0,	0,	NULL,			NULL		}, /* 3567 */
-	{ 0,	0,	NULL,			NULL		}, /* 3568 */
-	{ 0,	0,	NULL,			NULL		}, /* 3569 */
-	{ 0,	0,	NULL,			NULL		}, /* 3570 */
-	{ 0,	0,	NULL,			NULL		}, /* 3571 */
-	{ 0,	0,	NULL,			NULL		}, /* 3572 */
-	{ 0,	0,	NULL,			NULL		}, /* 3573 */
-	{ 0,	0,	NULL,			NULL		}, /* 3574 */
-	{ 0,	0,	NULL,			NULL		}, /* 3575 */
-	{ 0,	0,	NULL,			NULL		}, /* 3576 */
-	{ 0,	0,	NULL,			NULL		}, /* 3577 */
-	{ 0,	0,	NULL,			NULL		}, /* 3578 */
-	{ 0,	0,	NULL,			NULL		}, /* 3579 */
-	{ 0,	0,	NULL,			NULL		}, /* 3580 */
-	{ 0,	0,	NULL,			NULL		}, /* 3581 */
-	{ 0,	0,	NULL,			NULL		}, /* 3582 */
-	{ 0,	0,	NULL,			NULL		}, /* 3583 */
-	{ 0,	0,	NULL,			NULL		}, /* 3584 */
-	{ 0,	0,	NULL,			NULL		}, /* 3585 */
-	{ 0,	0,	NULL,			NULL		}, /* 3586 */
-	{ 0,	0,	NULL,			NULL		}, /* 3587 */
-	{ 0,	0,	NULL,			NULL		}, /* 3588 */
-	{ 0,	0,	NULL,			NULL		}, /* 3589 */
-	{ 0,	0,	NULL,			NULL		}, /* 3590 */
-	{ 0,	0,	NULL,			NULL		}, /* 3591 */
-	{ 0,	0,	NULL,			NULL		}, /* 3592 */
-	{ 0,	0,	NULL,			NULL		}, /* 3593 */
-	{ 0,	0,	NULL,			NULL		}, /* 3594 */
-	{ 0,	0,	NULL,			NULL		}, /* 3595 */
-	{ 0,	0,	NULL,			NULL		}, /* 3596 */
-	{ 0,	0,	NULL,			NULL		}, /* 3597 */
-	{ 0,	0,	NULL,			NULL		}, /* 3598 */
-	{ 0,	0,	NULL,			NULL		}, /* 3599 */
-	{ 0,	0,	NULL,			NULL		}, /* 3600 */
-	{ 0,	0,	NULL,			NULL		}, /* 3601 */
-	{ 0,	0,	NULL,			NULL		}, /* 3602 */
-	{ 0,	0,	NULL,			NULL		}, /* 3603 */
-	{ 0,	0,	NULL,			NULL		}, /* 3604 */
-	{ 0,	0,	NULL,			NULL		}, /* 3605 */
-	{ 0,	0,	NULL,			NULL		}, /* 3606 */
-	{ 0,	0,	NULL,			NULL		}, /* 3607 */
-	{ 0,	0,	NULL,			NULL		}, /* 3608 */
-	{ 0,	0,	NULL,			NULL		}, /* 3609 */
-	{ 0,	0,	NULL,			NULL		}, /* 3610 */
-	{ 0,	0,	NULL,			NULL		}, /* 3611 */
-	{ 0,	0,	NULL,			NULL		}, /* 3612 */
-	{ 0,	0,	NULL,			NULL		}, /* 3613 */
-	{ 0,	0,	NULL,			NULL		}, /* 3614 */
-	{ 0,	0,	NULL,			NULL		}, /* 3615 */
-	{ 0,	0,	NULL,			NULL		}, /* 3616 */
-	{ 0,	0,	NULL,			NULL		}, /* 3617 */
-	{ 0,	0,	NULL,			NULL		}, /* 3618 */
-	{ 0,	0,	NULL,			NULL		}, /* 3619 */
-	{ 0,	0,	NULL,			NULL		}, /* 3620 */
-	{ 0,	0,	NULL,			NULL		}, /* 3621 */
-	{ 0,	0,	NULL,			NULL		}, /* 3622 */
-	{ 0,	0,	NULL,			NULL		}, /* 3623 */
-	{ 0,	0,	NULL,			NULL		}, /* 3624 */
-	{ 0,	0,	NULL,			NULL		}, /* 3625 */
-	{ 0,	0,	NULL,			NULL		}, /* 3626 */
-	{ 0,	0,	NULL,			NULL		}, /* 3627 */
-	{ 0,	0,	NULL,			NULL		}, /* 3628 */
-	{ 0,	0,	NULL,			NULL		}, /* 3629 */
-	{ 0,	0,	NULL,			NULL		}, /* 3630 */
-	{ 0,	0,	NULL,			NULL		}, /* 3631 */
-	{ 0,	0,	NULL,			NULL		}, /* 3632 */
-	{ 0,	0,	NULL,			NULL		}, /* 3633 */
-	{ 0,	0,	NULL,			NULL		}, /* 3634 */
-	{ 0,	0,	NULL,			NULL		}, /* 3635 */
-	{ 0,	0,	NULL,			NULL		}, /* 3636 */
-	{ 0,	0,	NULL,			NULL		}, /* 3637 */
-	{ 0,	0,	NULL,			NULL		}, /* 3638 */
-	{ 0,	0,	NULL,			NULL		}, /* 3639 */
-	{ 0,	0,	NULL,			NULL		}, /* 3640 */
-	{ 0,	0,	NULL,			NULL		}, /* 3641 */
-	{ 0,	0,	NULL,			NULL		}, /* 3642 */
-	{ 0,	0,	NULL,			NULL		}, /* 3643 */
-	{ 0,	0,	NULL,			NULL		}, /* 3644 */
-	{ 0,	0,	NULL,			NULL		}, /* 3645 */
-	{ 0,	0,	NULL,			NULL		}, /* 3646 */
-	{ 0,	0,	NULL,			NULL		}, /* 3647 */
-	{ 0,	0,	NULL,			NULL		}, /* 3648 */
-	{ 0,	0,	NULL,			NULL		}, /* 3649 */
-	{ 0,	0,	NULL,			NULL		}, /* 3650 */
-	{ 0,	0,	NULL,			NULL		}, /* 3651 */
-	{ 0,	0,	NULL,			NULL		}, /* 3652 */
-	{ 0,	0,	NULL,			NULL		}, /* 3653 */
-	{ 0,	0,	NULL,			NULL		}, /* 3654 */
-	{ 0,	0,	NULL,			NULL		}, /* 3655 */
-	{ 0,	0,	NULL,			NULL		}, /* 3656 */
-	{ 0,	0,	NULL,			NULL		}, /* 3657 */
-	{ 0,	0,	NULL,			NULL		}, /* 3658 */
-	{ 0,	0,	NULL,			NULL		}, /* 3659 */
-	{ 0,	0,	NULL,			NULL		}, /* 3660 */
-	{ 0,	0,	NULL,			NULL		}, /* 3661 */
-	{ 0,	0,	NULL,			NULL		}, /* 3662 */
-	{ 0,	0,	NULL,			NULL		}, /* 3663 */
-	{ 0,	0,	NULL,			NULL		}, /* 3664 */
-	{ 0,	0,	NULL,			NULL		}, /* 3665 */
-	{ 0,	0,	NULL,			NULL		}, /* 3666 */
-	{ 0,	0,	NULL,			NULL		}, /* 3667 */
-	{ 0,	0,	NULL,			NULL		}, /* 3668 */
-	{ 0,	0,	NULL,			NULL		}, /* 3669 */
-	{ 0,	0,	NULL,			NULL		}, /* 3670 */
-	{ 0,	0,	NULL,			NULL		}, /* 3671 */
-	{ 0,	0,	NULL,			NULL		}, /* 3672 */
-	{ 0,	0,	NULL,			NULL		}, /* 3673 */
-	{ 0,	0,	NULL,			NULL		}, /* 3674 */
-	{ 0,	0,	NULL,			NULL		}, /* 3675 */
-	{ 0,	0,	NULL,			NULL		}, /* 3676 */
-	{ 0,	0,	NULL,			NULL		}, /* 3677 */
-	{ 0,	0,	NULL,			NULL		}, /* 3678 */
-	{ 0,	0,	NULL,			NULL		}, /* 3679 */
-	{ 0,	0,	NULL,			NULL		}, /* 3680 */
-	{ 0,	0,	NULL,			NULL		}, /* 3681 */
-	{ 0,	0,	NULL,			NULL		}, /* 3682 */
-	{ 0,	0,	NULL,			NULL		}, /* 3683 */
-	{ 0,	0,	NULL,			NULL		}, /* 3684 */
-	{ 0,	0,	NULL,			NULL		}, /* 3685 */
-	{ 0,	0,	NULL,			NULL		}, /* 3686 */
-	{ 0,	0,	NULL,			NULL		}, /* 3687 */
-	{ 0,	0,	NULL,			NULL		}, /* 3688 */
-	{ 0,	0,	NULL,			NULL		}, /* 3689 */
-	{ 0,	0,	NULL,			NULL		}, /* 3690 */
-	{ 0,	0,	NULL,			NULL		}, /* 3691 */
-	{ 0,	0,	NULL,			NULL		}, /* 3692 */
-	{ 0,	0,	NULL,			NULL		}, /* 3693 */
-	{ 0,	0,	NULL,			NULL		}, /* 3694 */
-	{ 0,	0,	NULL,			NULL		}, /* 3695 */
-	{ 0,	0,	NULL,			NULL		}, /* 3696 */
-	{ 0,	0,	NULL,			NULL		}, /* 3697 */
-	{ 0,	0,	NULL,			NULL		}, /* 3698 */
-	{ 0,	0,	NULL,			NULL		}, /* 3699 */
-	{ 0,	0,	NULL,			NULL		}, /* 3700 */
-	{ 0,	0,	NULL,			NULL		}, /* 3701 */
-	{ 0,	0,	NULL,			NULL		}, /* 3702 */
-	{ 0,	0,	NULL,			NULL		}, /* 3703 */
-	{ 0,	0,	NULL,			NULL		}, /* 3704 */
-	{ 0,	0,	NULL,			NULL		}, /* 3705 */
-	{ 0,	0,	NULL,			NULL		}, /* 3706 */
-	{ 0,	0,	NULL,			NULL		}, /* 3707 */
-	{ 0,	0,	NULL,			NULL		}, /* 3708 */
-	{ 0,	0,	NULL,			NULL		}, /* 3709 */
-	{ 0,	0,	NULL,			NULL		}, /* 3710 */
-	{ 0,	0,	NULL,			NULL		}, /* 3711 */
-	{ 0,	0,	NULL,			NULL		}, /* 3712 */
-	{ 0,	0,	NULL,			NULL		}, /* 3713 */
-	{ 0,	0,	NULL,			NULL		}, /* 3714 */
-	{ 0,	0,	NULL,			NULL		}, /* 3715 */
-	{ 0,	0,	NULL,			NULL		}, /* 3716 */
-	{ 0,	0,	NULL,			NULL		}, /* 3717 */
-	{ 0,	0,	NULL,			NULL		}, /* 3718 */
-	{ 0,	0,	NULL,			NULL		}, /* 3719 */
-	{ 0,	0,	NULL,			NULL		}, /* 3720 */
-	{ 0,	0,	NULL,			NULL		}, /* 3721 */
-	{ 0,	0,	NULL,			NULL		}, /* 3722 */
-	{ 0,	0,	NULL,			NULL		}, /* 3723 */
-	{ 0,	0,	NULL,			NULL		}, /* 3724 */
-	{ 0,	0,	NULL,			NULL		}, /* 3725 */
-	{ 0,	0,	NULL,			NULL		}, /* 3726 */
-	{ 0,	0,	NULL,			NULL		}, /* 3727 */
-	{ 0,	0,	NULL,			NULL		}, /* 3728 */
-	{ 0,	0,	NULL,			NULL		}, /* 3729 */
-	{ 0,	0,	NULL,			NULL		}, /* 3730 */
-	{ 0,	0,	NULL,			NULL		}, /* 3731 */
-	{ 0,	0,	NULL,			NULL		}, /* 3732 */
-	{ 0,	0,	NULL,			NULL		}, /* 3733 */
-	{ 0,	0,	NULL,			NULL		}, /* 3734 */
-	{ 0,	0,	NULL,			NULL		}, /* 3735 */
-	{ 0,	0,	NULL,			NULL		}, /* 3736 */
-	{ 0,	0,	NULL,			NULL		}, /* 3737 */
-	{ 0,	0,	NULL,			NULL		}, /* 3738 */
-	{ 0,	0,	NULL,			NULL		}, /* 3739 */
-	{ 0,	0,	NULL,			NULL		}, /* 3740 */
-	{ 0,	0,	NULL,			NULL		}, /* 3741 */
-	{ 0,	0,	NULL,			NULL		}, /* 3742 */
-	{ 0,	0,	NULL,			NULL		}, /* 3743 */
-	{ 0,	0,	NULL,			NULL		}, /* 3744 */
-	{ 0,	0,	NULL,			NULL		}, /* 3745 */
-	{ 0,	0,	NULL,			NULL		}, /* 3746 */
-	{ 0,	0,	NULL,			NULL		}, /* 3747 */
-	{ 0,	0,	NULL,			NULL		}, /* 3748 */
-	{ 0,	0,	NULL,			NULL		}, /* 3749 */
-	{ 0,	0,	NULL,			NULL		}, /* 3750 */
-	{ 0,	0,	NULL,			NULL		}, /* 3751 */
-	{ 0,	0,	NULL,			NULL		}, /* 3752 */
-	{ 0,	0,	NULL,			NULL		}, /* 3753 */
-	{ 0,	0,	NULL,			NULL		}, /* 3754 */
-	{ 0,	0,	NULL,			NULL		}, /* 3755 */
-	{ 0,	0,	NULL,			NULL		}, /* 3756 */
-	{ 0,	0,	NULL,			NULL		}, /* 3757 */
-	{ 0,	0,	NULL,			NULL		}, /* 3758 */
-	{ 0,	0,	NULL,			NULL		}, /* 3759 */
-	{ 0,	0,	NULL,			NULL		}, /* 3760 */
-	{ 0,	0,	NULL,			NULL		}, /* 3761 */
-	{ 0,	0,	NULL,			NULL		}, /* 3762 */
-	{ 0,	0,	NULL,			NULL		}, /* 3763 */
-	{ 0,	0,	NULL,			NULL		}, /* 3764 */
-	{ 0,	0,	NULL,			NULL		}, /* 3765 */
-	{ 0,	0,	NULL,			NULL		}, /* 3766 */
-	{ 0,	0,	NULL,			NULL		}, /* 3767 */
-	{ 0,	0,	NULL,			NULL		}, /* 3768 */
-	{ 0,	0,	NULL,			NULL		}, /* 3769 */
-	{ 0,	0,	NULL,			NULL		}, /* 3770 */
-	{ 0,	0,	NULL,			NULL		}, /* 3771 */
-	{ 0,	0,	NULL,			NULL		}, /* 3772 */
-	{ 0,	0,	NULL,			NULL		}, /* 3773 */
-	{ 0,	0,	NULL,			NULL		}, /* 3774 */
-	{ 0,	0,	NULL,			NULL		}, /* 3775 */
-	{ 0,	0,	NULL,			NULL		}, /* 3776 */
-	{ 0,	0,	NULL,			NULL		}, /* 3777 */
-	{ 0,	0,	NULL,			NULL		}, /* 3778 */
-	{ 0,	0,	NULL,			NULL		}, /* 3779 */
-	{ 0,	0,	NULL,			NULL		}, /* 3780 */
-	{ 0,	0,	NULL,			NULL		}, /* 3781 */
-	{ 0,	0,	NULL,			NULL		}, /* 3782 */
-	{ 0,	0,	NULL,			NULL		}, /* 3783 */
-	{ 0,	0,	NULL,			NULL		}, /* 3784 */
-	{ 0,	0,	NULL,			NULL		}, /* 3785 */
-	{ 0,	0,	NULL,			NULL		}, /* 3786 */
-	{ 0,	0,	NULL,			NULL		}, /* 3787 */
-	{ 0,	0,	NULL,			NULL		}, /* 3788 */
-	{ 0,	0,	NULL,			NULL		}, /* 3789 */
-	{ 0,	0,	NULL,			NULL		}, /* 3790 */
-	{ 0,	0,	NULL,			NULL		}, /* 3791 */
-	{ 0,	0,	NULL,			NULL		}, /* 3792 */
-	{ 0,	0,	NULL,			NULL		}, /* 3793 */
-	{ 0,	0,	NULL,			NULL		}, /* 3794 */
-	{ 0,	0,	NULL,			NULL		}, /* 3795 */
-	{ 0,	0,	NULL,			NULL		}, /* 3796 */
-	{ 0,	0,	NULL,			NULL		}, /* 3797 */
-	{ 0,	0,	NULL,			NULL		}, /* 3798 */
-	{ 0,	0,	NULL,			NULL		}, /* 3799 */
-	{ 0,	0,	NULL,			NULL		}, /* 3800 */
-	{ 0,	0,	NULL,			NULL		}, /* 3801 */
-	{ 0,	0,	NULL,			NULL		}, /* 3802 */
-	{ 0,	0,	NULL,			NULL		}, /* 3803 */
-	{ 0,	0,	NULL,			NULL		}, /* 3804 */
-	{ 0,	0,	NULL,			NULL		}, /* 3805 */
-	{ 0,	0,	NULL,			NULL		}, /* 3806 */
-	{ 0,	0,	NULL,			NULL		}, /* 3807 */
-	{ 0,	0,	NULL,			NULL		}, /* 3808 */
-	{ 0,	0,	NULL,			NULL		}, /* 3809 */
-	{ 0,	0,	NULL,			NULL		}, /* 3810 */
-	{ 0,	0,	NULL,			NULL		}, /* 3811 */
-	{ 0,	0,	NULL,			NULL		}, /* 3812 */
-	{ 0,	0,	NULL,			NULL		}, /* 3813 */
-	{ 0,	0,	NULL,			NULL		}, /* 3814 */
-	{ 0,	0,	NULL,			NULL		}, /* 3815 */
-	{ 0,	0,	NULL,			NULL		}, /* 3816 */
-	{ 0,	0,	NULL,			NULL		}, /* 3817 */
-	{ 0,	0,	NULL,			NULL		}, /* 3818 */
-	{ 0,	0,	NULL,			NULL		}, /* 3819 */
-	{ 0,	0,	NULL,			NULL		}, /* 3820 */
-	{ 0,	0,	NULL,			NULL		}, /* 3821 */
-	{ 0,	0,	NULL,			NULL		}, /* 3822 */
-	{ 0,	0,	NULL,			NULL		}, /* 3823 */
-	{ 0,	0,	NULL,			NULL		}, /* 3824 */
-	{ 0,	0,	NULL,			NULL		}, /* 3825 */
-	{ 0,	0,	NULL,			NULL		}, /* 3826 */
-	{ 0,	0,	NULL,			NULL		}, /* 3827 */
-	{ 0,	0,	NULL,			NULL		}, /* 3828 */
-	{ 0,	0,	NULL,			NULL		}, /* 3829 */
-	{ 0,	0,	NULL,			NULL		}, /* 3830 */
-	{ 0,	0,	NULL,			NULL		}, /* 3831 */
-	{ 0,	0,	NULL,			NULL		}, /* 3832 */
-	{ 0,	0,	NULL,			NULL		}, /* 3833 */
-	{ 0,	0,	NULL,			NULL		}, /* 3834 */
-	{ 0,	0,	NULL,			NULL		}, /* 3835 */
-	{ 0,	0,	NULL,			NULL		}, /* 3836 */
-	{ 0,	0,	NULL,			NULL		}, /* 3837 */
-	{ 0,	0,	NULL,			NULL		}, /* 3838 */
-	{ 0,	0,	NULL,			NULL		}, /* 3839 */
-	{ 0,	0,	NULL,			NULL		}, /* 3840 */
-	{ 0,	0,	NULL,			NULL		}, /* 3841 */
-	{ 0,	0,	NULL,			NULL		}, /* 3842 */
-	{ 0,	0,	NULL,			NULL		}, /* 3843 */
-	{ 0,	0,	NULL,			NULL		}, /* 3844 */
-	{ 0,	0,	NULL,			NULL		}, /* 3845 */
-	{ 0,	0,	NULL,			NULL		}, /* 3846 */
-	{ 0,	0,	NULL,			NULL		}, /* 3847 */
-	{ 0,	0,	NULL,			NULL		}, /* 3848 */
-	{ 0,	0,	NULL,			NULL		}, /* 3849 */
-	{ 0,	0,	NULL,			NULL		}, /* 3850 */
-	{ 0,	0,	NULL,			NULL		}, /* 3851 */
-	{ 0,	0,	NULL,			NULL		}, /* 3852 */
-	{ 0,	0,	NULL,			NULL		}, /* 3853 */
-	{ 0,	0,	NULL,			NULL		}, /* 3854 */
-	{ 0,	0,	NULL,			NULL		}, /* 3855 */
-	{ 0,	0,	NULL,			NULL		}, /* 3856 */
-	{ 0,	0,	NULL,			NULL		}, /* 3857 */
-	{ 0,	0,	NULL,			NULL		}, /* 3858 */
-	{ 0,	0,	NULL,			NULL		}, /* 3859 */
-	{ 0,	0,	NULL,			NULL		}, /* 3860 */
-	{ 0,	0,	NULL,			NULL		}, /* 3861 */
-	{ 0,	0,	NULL,			NULL		}, /* 3862 */
-	{ 0,	0,	NULL,			NULL		}, /* 3863 */
-	{ 0,	0,	NULL,			NULL		}, /* 3864 */
-	{ 0,	0,	NULL,			NULL		}, /* 3865 */
-	{ 0,	0,	NULL,			NULL		}, /* 3866 */
-	{ 0,	0,	NULL,			NULL		}, /* 3867 */
-	{ 0,	0,	NULL,			NULL		}, /* 3868 */
-	{ 0,	0,	NULL,			NULL		}, /* 3869 */
-	{ 0,	0,	NULL,			NULL		}, /* 3870 */
-	{ 0,	0,	NULL,			NULL		}, /* 3871 */
-	{ 0,	0,	NULL,			NULL		}, /* 3872 */
-	{ 0,	0,	NULL,			NULL		}, /* 3873 */
-	{ 0,	0,	NULL,			NULL		}, /* 3874 */
-	{ 0,	0,	NULL,			NULL		}, /* 3875 */
-	{ 0,	0,	NULL,			NULL		}, /* 3876 */
-	{ 0,	0,	NULL,			NULL		}, /* 3877 */
-	{ 0,	0,	NULL,			NULL		}, /* 3878 */
-	{ 0,	0,	NULL,			NULL		}, /* 3879 */
-	{ 0,	0,	NULL,			NULL		}, /* 3880 */
-	{ 0,	0,	NULL,			NULL		}, /* 3881 */
-	{ 0,	0,	NULL,			NULL		}, /* 3882 */
-	{ 0,	0,	NULL,			NULL		}, /* 3883 */
-	{ 0,	0,	NULL,			NULL		}, /* 3884 */
-	{ 0,	0,	NULL,			NULL		}, /* 3885 */
-	{ 0,	0,	NULL,			NULL		}, /* 3886 */
-	{ 0,	0,	NULL,			NULL		}, /* 3887 */
-	{ 0,	0,	NULL,			NULL		}, /* 3888 */
-	{ 0,	0,	NULL,			NULL		}, /* 3889 */
-	{ 0,	0,	NULL,			NULL		}, /* 3890 */
-	{ 0,	0,	NULL,			NULL		}, /* 3891 */
-	{ 0,	0,	NULL,			NULL		}, /* 3892 */
-	{ 0,	0,	NULL,			NULL		}, /* 3893 */
-	{ 0,	0,	NULL,			NULL		}, /* 3894 */
-	{ 0,	0,	NULL,			NULL		}, /* 3895 */
-	{ 0,	0,	NULL,			NULL		}, /* 3896 */
-	{ 0,	0,	NULL,			NULL		}, /* 3897 */
-	{ 0,	0,	NULL,			NULL		}, /* 3898 */
-	{ 0,	0,	NULL,			NULL		}, /* 3899 */
-	{ 0,	0,	NULL,			NULL		}, /* 3900 */
-	{ 0,	0,	NULL,			NULL		}, /* 3901 */
-	{ 0,	0,	NULL,			NULL		}, /* 3902 */
-	{ 0,	0,	NULL,			NULL		}, /* 3903 */
-	{ 0,	0,	NULL,			NULL		}, /* 3904 */
-	{ 0,	0,	NULL,			NULL		}, /* 3905 */
-	{ 0,	0,	NULL,			NULL		}, /* 3906 */
-	{ 0,	0,	NULL,			NULL		}, /* 3907 */
-	{ 0,	0,	NULL,			NULL		}, /* 3908 */
-	{ 0,	0,	NULL,			NULL		}, /* 3909 */
-	{ 0,	0,	NULL,			NULL		}, /* 3910 */
-	{ 0,	0,	NULL,			NULL		}, /* 3911 */
-	{ 0,	0,	NULL,			NULL		}, /* 3912 */
-	{ 0,	0,	NULL,			NULL		}, /* 3913 */
-	{ 0,	0,	NULL,			NULL		}, /* 3914 */
-	{ 0,	0,	NULL,			NULL		}, /* 3915 */
-	{ 0,	0,	NULL,			NULL		}, /* 3916 */
-	{ 0,	0,	NULL,			NULL		}, /* 3917 */
-	{ 0,	0,	NULL,			NULL		}, /* 3918 */
-	{ 0,	0,	NULL,			NULL		}, /* 3919 */
-	{ 0,	0,	NULL,			NULL		}, /* 3920 */
-	{ 0,	0,	NULL,			NULL		}, /* 3921 */
-	{ 0,	0,	NULL,			NULL		}, /* 3922 */
-	{ 0,	0,	NULL,			NULL		}, /* 3923 */
-	{ 0,	0,	NULL,			NULL		}, /* 3924 */
-	{ 0,	0,	NULL,			NULL		}, /* 3925 */
-	{ 0,	0,	NULL,			NULL		}, /* 3926 */
-	{ 0,	0,	NULL,			NULL		}, /* 3927 */
-	{ 0,	0,	NULL,			NULL		}, /* 3928 */
-	{ 0,	0,	NULL,			NULL		}, /* 3929 */
-	{ 0,	0,	NULL,			NULL		}, /* 3930 */
-	{ 0,	0,	NULL,			NULL		}, /* 3931 */
-	{ 0,	0,	NULL,			NULL		}, /* 3932 */
-	{ 0,	0,	NULL,			NULL		}, /* 3933 */
-	{ 0,	0,	NULL,			NULL		}, /* 3934 */
-	{ 0,	0,	NULL,			NULL		}, /* 3935 */
-	{ 0,	0,	NULL,			NULL		}, /* 3936 */
-	{ 0,	0,	NULL,			NULL		}, /* 3937 */
-	{ 0,	0,	NULL,			NULL		}, /* 3938 */
-	{ 0,	0,	NULL,			NULL		}, /* 3939 */
-	{ 0,	0,	NULL,			NULL		}, /* 3940 */
-	{ 0,	0,	NULL,			NULL		}, /* 3941 */
-	{ 0,	0,	NULL,			NULL		}, /* 3942 */
-	{ 0,	0,	NULL,			NULL		}, /* 3943 */
-	{ 0,	0,	NULL,			NULL		}, /* 3944 */
-	{ 0,	0,	NULL,			NULL		}, /* 3945 */
-	{ 0,	0,	NULL,			NULL		}, /* 3946 */
-	{ 0,	0,	NULL,			NULL		}, /* 3947 */
-	{ 0,	0,	NULL,			NULL		}, /* 3948 */
-	{ 0,	0,	NULL,			NULL		}, /* 3949 */
-	{ 0,	0,	NULL,			NULL		}, /* 3950 */
-	{ 0,	0,	NULL,			NULL		}, /* 3951 */
-	{ 0,	0,	NULL,			NULL		}, /* 3952 */
-	{ 0,	0,	NULL,			NULL		}, /* 3953 */
-	{ 0,	0,	NULL,			NULL		}, /* 3954 */
-	{ 0,	0,	NULL,			NULL		}, /* 3955 */
-	{ 0,	0,	NULL,			NULL		}, /* 3956 */
-	{ 0,	0,	NULL,			NULL		}, /* 3957 */
-	{ 0,	0,	NULL,			NULL		}, /* 3958 */
-	{ 0,	0,	NULL,			NULL		}, /* 3959 */
-	{ 0,	0,	NULL,			NULL		}, /* 3960 */
-	{ 0,	0,	NULL,			NULL		}, /* 3961 */
-	{ 0,	0,	NULL,			NULL		}, /* 3962 */
-	{ 0,	0,	NULL,			NULL		}, /* 3963 */
-	{ 0,	0,	NULL,			NULL		}, /* 3964 */
-	{ 0,	0,	NULL,			NULL		}, /* 3965 */
-	{ 0,	0,	NULL,			NULL		}, /* 3966 */
-	{ 0,	0,	NULL,			NULL		}, /* 3967 */
-	{ 0,	0,	NULL,			NULL		}, /* 3968 */
-	{ 0,	0,	NULL,			NULL		}, /* 3969 */
-	{ 0,	0,	NULL,			NULL		}, /* 3970 */
-	{ 0,	0,	NULL,			NULL		}, /* 3971 */
-	{ 0,	0,	NULL,			NULL		}, /* 3972 */
-	{ 0,	0,	NULL,			NULL		}, /* 3973 */
-	{ 0,	0,	NULL,			NULL		}, /* 3974 */
-	{ 0,	0,	NULL,			NULL		}, /* 3975 */
-	{ 0,	0,	NULL,			NULL		}, /* 3976 */
-	{ 0,	0,	NULL,			NULL		}, /* 3977 */
-	{ 0,	0,	NULL,			NULL		}, /* 3978 */
-	{ 0,	0,	NULL,			NULL		}, /* 3979 */
-	{ 0,	0,	NULL,			NULL		}, /* 3980 */
-	{ 0,	0,	NULL,			NULL		}, /* 3981 */
-	{ 0,	0,	NULL,			NULL		}, /* 3982 */
-	{ 0,	0,	NULL,			NULL		}, /* 3983 */
-	{ 0,	0,	NULL,			NULL		}, /* 3984 */
-	{ 0,	0,	NULL,			NULL		}, /* 3985 */
-	{ 0,	0,	NULL,			NULL		}, /* 3986 */
-	{ 0,	0,	NULL,			NULL		}, /* 3987 */
-	{ 0,	0,	NULL,			NULL		}, /* 3988 */
-	{ 0,	0,	NULL,			NULL		}, /* 3989 */
-	{ 0,	0,	NULL,			NULL		}, /* 3990 */
-	{ 0,	0,	NULL,			NULL		}, /* 3991 */
-	{ 0,	0,	NULL,			NULL		}, /* 3992 */
-	{ 0,	0,	NULL,			NULL		}, /* 3993 */
-	{ 0,	0,	NULL,			NULL		}, /* 3994 */
-	{ 0,	0,	NULL,			NULL		}, /* 3995 */
-	{ 0,	0,	NULL,			NULL		}, /* 3996 */
-	{ 0,	0,	NULL,			NULL		}, /* 3997 */
-	{ 0,	0,	NULL,			NULL		}, /* 3998 */
-	{ 0,	0,	NULL,			NULL		}, /* 3999 */ /* end of POSIX */
-#if !defined(LINUX_MIPSN32) && !defined(LINUX_MIPSN64)
-	/* For an O32 strace, decode the o32 syscalls.  */
-	{ MA,	0,	printargs,		"syscall"	}, /* 4000 */ /* start of Linux o32 */
-	{ 1,	TP,	sys_exit,		"exit"		}, /* 4001 */
-	{ 0,	TP,	sys_fork,		"fork"		}, /* 4002 */
-	{ 3,	TD,	sys_read,		"read"		}, /* 4003 */
-	{ 3,	TD,	sys_write,		"write"		}, /* 4004 */
-	{ 3,	TD|TF,	sys_open,		"open"		}, /* 4005 */
-	{ 1,	TD,	sys_close,		"close"		}, /* 4006 */
-	{ 3,	TP,	sys_waitpid,		"waitpid"	}, /* 4007 */
-	{ 2,	TD|TF,	sys_creat,		"creat"		}, /* 4008 */
-	{ 2,	TF,	sys_link,		"link"		}, /* 4009 */
-	{ 1,	TF,	sys_unlink,		"unlink"	}, /* 4010 */
-	{ 3,	TF|TP,	sys_execve,		"execve"	}, /* 4011 */
-	{ 1,	TF,	sys_chdir,		"chdir"		}, /* 4012 */
-	{ 1,	0,	sys_time,		"time"		}, /* 4013 */
-	{ 3,	TF,	sys_mknod,		"mknod"		}, /* 4014 */
-	{ 2,	TF,	sys_chmod,		"chmod"		}, /* 4015 */
-	{ 3,	TF,	sys_chown,		"lchown"	}, /* 4016 */
-	{ 0,	0,	sys_break,		"break"		}, /* 4017 */
-	{ 2,	TF,	sys_oldstat,		"oldstat"	}, /* 4018 */
-	{ 3,	TD,	sys_lseek,		"lseek"		}, /* 4019 */
-	{ 0,	0,	sys_getpid,		"getpid"	}, /* 4020 */
-	{ 5,	TF,	sys_mount,		"mount"		}, /* 4021 */
-	{ 1,	TF,	sys_umount,		"oldumount"	}, /* 4022 */
-	{ 1,	0,	sys_setuid,		"setuid"	}, /* 4023 */
-	{ 0,	NF,	sys_getuid,		"getuid"	}, /* 4024 */
-	{ 1,	0,	sys_stime,		"stime"		}, /* 4025 */
-	{ 4,	0,	sys_ptrace,		"ptrace"	}, /* 4026 */
-	{ 1,	0,	sys_alarm,		"alarm"		}, /* 4027 */
-	{ 2,	TF,	sys_oldfstat,		"oldfstat"	}, /* 4028 */
-	{ 0,	TS,	sys_pause,		"pause"		}, /* 4029 */
-	{ 2,	TF,	sys_utime,		"utime"		}, /* 4030 */
-	{ 0,	0,	sys_stty,		"stty"		}, /* 4031 */
-	{ 0,	0,	sys_gtty,		"gtty"		}, /* 4032 */
-	{ 2,	TF,	sys_access,		"access"	}, /* 4033 */
-	{ 1,	0,	sys_nice,		"nice"		}, /* 4034 */
-	{ 1,	0,	sys_ftime,		"ftime"		}, /* 4035 */
-	{ 0,	0,	sys_sync,		"sync"		}, /* 4036 */
-	{ 2,	TS,	sys_kill,		"kill"		}, /* 4037 */
-	{ 2,	TF,	sys_rename,		"rename"	}, /* 4038 */
-	{ 2,	TF,	sys_mkdir,		"mkdir"		}, /* 4039 */
-	{ 1,	TF,	sys_rmdir,		"rmdir"		}, /* 4040 */
-	{ 1,	TD,	sys_dup,		"dup"		}, /* 4041 */
-	{ 1,	TD,	sys_pipe,		"pipe"		}, /* 4042 */
-	{ 1,	0,	sys_times,		"times"		}, /* 4043 */
-	{ 0,	0,	sys_prof,		"prof"		}, /* 4044 */
-	{ 1,	0,	sys_brk,		"brk"		}, /* 4045 */
-	{ 1,	0,	sys_setgid,		"setgid"	}, /* 4046 */
-	{ 0,	NF,	sys_getgid,		"getgid"	}, /* 4047 */
-	{ 1,	TS,	sys_signal,		"signal"	}, /* 4048 */
-	{ 0,	NF,	sys_geteuid,		"geteuid"	}, /* 4049 */
-	{ 0,	NF,	sys_getegid,		"getegid"	}, /* 4050 */
-	{ 1,	TF,	sys_acct,		"acct"		}, /* 4051 */
-	{ 2,	TF,	sys_umount2,		"umount"	}, /* 4052 */
-	{ 0,	0,	sys_lock,		"lock"		}, /* 4053 */
-	{ 3,	TD,	sys_ioctl,		"ioctl"		}, /* 4054 */
-	{ 3,	TD,	sys_fcntl,		"fcntl"		}, /* 4055 */
-	{ 0,	0,	sys_mpx,		"mpx"		}, /* 4056 */
-	{ 2,	0,	sys_setpgid,		"setpgid"	}, /* 4057 */
-	{ 0,	0,	sys_ulimit,		"ulimit"	}, /* 4058 */
-	{ 1,	0,	sys_oldolduname,	"oldolduname"	}, /* 4059 */
-	{ 1,	0,	sys_umask,		"umask"		}, /* 4060 */
-	{ 1,	TF,	sys_chroot,		"chroot"	}, /* 4061 */
-	{ 2,	0,	sys_ustat,		"ustat"		}, /* 4062 */
-	{ 2,	TD,	sys_dup2,		"dup2"		}, /* 4063 */
-	{ 0,	0,	sys_getppid,		"getppid"	}, /* 4064 */
-	{ 0,	0,	sys_getpgrp,		"getpgrp"	}, /* 4065 */
-	{ 0,	0,	sys_setsid,		"setsid"	}, /* 4066 */
-	{ 3,	TS,	sys_sigaction,		"sigaction"	}, /* 4067 */
-	{ 0,	TS,	sys_siggetmask,		"sgetmask"	}, /* 4068 */
-	{ 1,	TS,	sys_sigsetmask,		"ssetmask"	}, /* 4069 */
-	{ 2,	0,	sys_setreuid,		"setreuid"	}, /* 4070 */
-	{ 2,	0,	sys_setregid,		"setregid"	}, /* 4071 */
-	{ 3,	TS,	sys_sigsuspend,		"sigsuspend"	}, /* 4072 */
-	{ 1,	TS,	sys_sigpending,		"sigpending"	}, /* 4073 */
-	{ 2,	0,	sys_sethostname,	"sethostname"	}, /* 4074 */
-	{ 2,	0,	sys_setrlimit,		"setrlimit"	}, /* 4075 */
-	{ 2,	0,	sys_getrlimit,		"getrlimit"	}, /* 4076 */
-	{ 2,	0,	sys_getrusage,		"getrusage"	}, /* 4077 */
-	{ 2,	0,	sys_gettimeofday,	"gettimeofday"	}, /* 4078 */
-	{ 2,	0,	sys_settimeofday,	"settimeofday"	}, /* 4079 */
-	{ 2,	0,	sys_getgroups,		"getgroups"	}, /* 4080 */
-	{ 2,	0,	sys_setgroups,		"setgroups"	}, /* 4081 */
-	{ 0,	0,	printargs,		"reserved82"	}, /* 4082 */
-	{ 2,	TF,	sys_symlink,		"symlink"	}, /* 4083 */
-	{ 2,	TF,	sys_oldlstat,		"oldlstat"	}, /* 4084 */
-	{ 3,	TF,	sys_readlink,		"readlink"	}, /* 4085 */
-	{ 1,	TF,	sys_uselib,		"uselib"	}, /* 4086 */
-	{ 2,	TF,	sys_swapon,		"swapon"	}, /* 4087 */
-	{ 4,	0,	sys_reboot,		"reboot"	}, /* 4088 */
-	{ 3,	TD,	sys_readdir,		"readdir"	}, /* 4089 */
-	{ 6,	TD,	sys_mmap,		"old_mmap"	}, /* 4090 */
-	{ 2,	0,	sys_munmap,		"munmap"	}, /* 4091 */
-	{ 2,	TF,	sys_truncate,		"truncate"	}, /* 4092 */
-	{ 2,	TD,	sys_ftruncate,		"ftruncate"	}, /* 4093 */
-	{ 2,	TD,	sys_fchmod,		"fchmod"	}, /* 4094 */
-	{ 3,	TD,	sys_fchown,		"fchown"	}, /* 4095 */
-	{ 2,	0,	sys_getpriority,	"getpriority"	}, /* 4096 */
-	{ 3,	0,	sys_setpriority,	"setpriority"	}, /* 4097 */
-	{ 0,	0,	sys_profil,		"profil"	}, /* 4098 */
-	{ 3,	TF,	sys_statfs,		"statfs"	}, /* 4099 */
-	{ 3,	TD,	sys_fstatfs,		"fstatfs"	}, /* 4100 */
-	{ 0,	0,	sys_ioperm,		"ioperm"	}, /* 4101 */
-	{ 2,	TD,	sys_socketcall,		"socketcall"	}, /* 4102 */
-	{ 3,	0,	sys_syslog,		"syslog"	}, /* 4103 */
-	{ 3,	0,	sys_setitimer,		"setitimer"	}, /* 4104 */
-	{ 2,	0,	sys_getitimer,		"getitimer"	}, /* 4105 */
-	{ 2,	TF,	sys_stat,		"stat"		}, /* 4106 */
-	{ 2,	TF,	sys_lstat,		"lstat"		}, /* 4107 */
-	{ 2,	TD,	sys_fstat,		"fstat"		}, /* 4108 */
-	{ 1,	0,	sys_olduname,		"olduname"	}, /* 4109 */
-	{ 0,	0,	sys_iopl,		"iopl"		}, /* 4110 */
-	{ 0,	0,	sys_vhangup,		"vhangup"	}, /* 4111 */
-	{ 0,	0,	sys_idle,		"idle"		}, /* 4112 */
-	{ 5,	0,	sys_vm86old,		"vm86"		}, /* 4113 */
-	{ 4,	TP,	sys_wait4,		"wait4"		}, /* 4114 */
-	{ 1,	TF,	sys_swapoff,		"swapoff"	}, /* 4115 */
-	{ 1,	0,	sys_sysinfo,		"sysinfo"	}, /* 4116 */
-	{ 6,	TI,	sys_ipc,		"ipc"		}, /* 4117 */
-	{ 1,	TD,	sys_fsync,		"fsync"		}, /* 4118 */
-	{ 0,	TS,	sys_sigreturn,		"sigreturn"	}, /* 4119 */
-	{ 5,	TP,	sys_clone,		"clone"		}, /* 4120 */
-	{ 2,	0,	sys_setdomainname,	"setdomainname"	}, /* 4121 */
-	{ 1,	0,	sys_uname,		"uname"		}, /* 4122 */
-	{ 0,	0,	sys_modify_ldt,		"modify_ldt"	}, /* 4123 */
-	{ 1,	0,	sys_adjtimex,		"adjtimex"	}, /* 4124 */
-	{ 3,	0,	sys_mprotect,		"mprotect"	}, /* 4125 */
-	{ 3,	TS,	sys_sigprocmask,	"sigprocmask"	}, /* 4126 */
-	{ 2,	0,	sys_create_module,	"create_module"	}, /* 4127 */
-	{ 3,	0,	sys_init_module,	"init_module"	}, /* 4128 */
-	{ 2,	0,	sys_delete_module,	"delete_module"	}, /* 4129 */
-	{ 1,	0,	sys_get_kernel_syms,	"get_kernel_syms"}, /* 4130 */
-	{ 4,	0,	sys_quotactl,		"quotactl"	}, /* 4131 */
-	{ 1,	0,	sys_getpgid,		"getpgid"	}, /* 4132 */
-	{ 1,	TF,	sys_fchdir,		"fchdir"	}, /* 4133 */
-	{ 2,	0,	sys_bdflush,		"bdflush"	}, /* 4134 */
-	{ 3,	0,	sys_sysfs,		"sysfs"		}, /* 4135 */
-	{ 1,	0,	sys_personality,	"personality"	}, /* 4136 */
-	{ 0,	0,	sys_afs_syscall,	"afs_syscall"	}, /* 4137 */
-	{ 1,	NF,	sys_setfsuid,		"setfsuid"	}, /* 4138 */
-	{ 1,	NF,	sys_setfsgid,		"setfsgid"	}, /* 4139 */
-	{ 5,	TF,	sys_llseek,		"_llseek"	}, /* 4140 */
-	{ 3,	TD,	sys_getdents,		"getdents"	}, /* 4141 */
-	{ 5,	TD,	sys_select,		"_newselect"	}, /* 4142 */
-	{ 2,	TD,	sys_flock,		"flock"		}, /* 4143 */
-	{ 3,	0,	sys_msync,		"msync"		}, /* 4144 */
-	{ 3,	TD,	sys_readv,		"readv"		}, /* 4145 */
-	{ 3,	TD,	sys_writev,		"writev"	}, /* 4146 */
-	{ 3,	0,	printargs,		"cacheflush"	}, /* 4147 */
-	{ 3,	0,	printargs,		"cachectl"	}, /* 4148 */
-	{ 4,	0,	sys_sysmips,		"sysmips"	}, /* 4149 */
-	{ 0,	0,	sys_setup,		"setup"		}, /* 4150 */
-	{ 1,	0,	sys_getsid,		"getsid"	}, /* 4151 */
-	{ 1,	TD,	sys_fdatasync,		"fdatasync"	}, /* 4152 */
-	{ 1,	0,	sys_sysctl,		"_sysctl"	}, /* 4153 */
-	{ 2,	0,	sys_mlock,		"mlock"		}, /* 4154 */
-	{ 2,	0,	sys_munlock,		"munlock"	}, /* 4155 */
-	{ 1,	0,	sys_mlockall,		"mlockall"	}, /* 4156 */
-	{ 0,	0,	sys_munlockall,		"munlockall"	}, /* 4157 */
-	{ 2,	0,	sys_sched_setparam,	"sched_setparam"}, /* 4158 */
-	{ 2,	0,	sys_sched_getparam,	"sched_getparam"}, /* 4159 */
-	{ 3,	0,	sys_sched_setscheduler,	"sched_setscheduler"}, /* 4160 */
-	{ 1,	0,	sys_sched_getscheduler,	"sched_getscheduler"}, /* 4161 */
-	{ 0,	0,	sys_sched_yield,	"sched_yield"	}, /* 4162 */
-	{ 1,	0,	sys_sched_get_priority_max,"sched_get_priority_max"}, /* 4163 */
-	{ 1,	0,	sys_sched_get_priority_min,"sched_get_priority_min"}, /* 4164 */
-	{ 2,	0,	sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 4165 */
-	{ 2,	0,	sys_nanosleep,		"nanosleep"	}, /* 4166 */
-	{ 5,	0,	sys_mremap,		"mremap"	}, /* 4167 */
-	{ 3,	TN,	sys_accept,		"accept"	}, /* 4168 */
-	{ 3,	TN,	sys_bind,		"bind"		}, /* 4169 */
-	{ 3,	TN,	sys_connect,		"connect"	}, /* 4170 */
-	{ 3,	TN,	sys_getpeername,	"getpeername"	}, /* 4171 */
-	{ 3,	TN,	sys_getsockname,	"getsockname"	}, /* 4172 */
-	{ 5,	TN,	sys_getsockopt,		"getsockopt"	}, /* 4173 */
-	{ 2,	TN,	sys_listen,		"listen"	}, /* 4174 */
-	{ 4,	TN,	sys_recv,		"recv"		}, /* 4175 */
-	{ 6,	TN,	sys_recvfrom,		"recvfrom"	}, /* 4176 */
-	{ 3,	TN,	sys_recvmsg,		"recvmsg"	}, /* 4177 */
-	{ 4,	TN,	sys_send,		"send"		}, /* 4178 */
-	{ 3,	TN,	sys_sendmsg,		"sendmsg"	}, /* 4179 */
-	{ 6,	TN,	sys_sendto,		"sendto"	}, /* 4180 */
-	{ 5,	TN,	sys_setsockopt,		"setsockopt"	}, /* 4181 */
-	{ 2,	TN,	sys_shutdown,		"shutdown"	}, /* 4182 */
-	{ 3,	TN,	sys_socket,		"socket"	}, /* 4183 */
-	{ 4,	TN,	sys_socketpair,		"socketpair"	}, /* 4184 */
-	{ 3,	0,	sys_setresuid,		"setresuid"	}, /* 4185 */
-	{ 3,	0,	sys_getresuid,		"getresuid"	}, /* 4186 */
-	{ 5,	0,	sys_query_module,	"query_module"	}, /* 4187 */
-	{ 3,	TD,	sys_poll,		"poll"		}, /* 4188 */
-	{ 3,	0,	sys_nfsservctl,		"nfsservctl"	}, /* 4189 */
-	{ 3,	0,	sys_setresgid,		"setresgid"	}, /* 4190 */
-	{ 3,	0,	sys_getresgid,		"getresgid"	}, /* 4191 */
-	{ 5,	0,	sys_prctl,		"prctl"		}, /* 4192 */
-	{ 0,	TS,	sys_rt_sigreturn,	"rt_sigreturn"	}, /* 4193 */
-	{ 4,	TS,	sys_rt_sigaction,	"rt_sigaction"	}, /* 4194 */
-	{ 4,	TS,	sys_rt_sigprocmask,	"rt_sigprocmask"}, /* 4195 */
-	{ 2,	TS,	sys_rt_sigpending,	"rt_sigpending"	}, /* 4196 */
-	{ 4,	TS,	sys_rt_sigtimedwait,	"rt_sigtimedwait"},/* 4197 */
-	{ 3,	TS,	sys_rt_sigqueueinfo,	"rt_sigqueueinfo"},/* 4198 */
-	{ 2,	TS,	sys_rt_sigsuspend,	"rt_sigsuspend"	}, /* 4199 */
-	{ 6,	TD,	sys_pread,		"pread"		}, /* 4200 */
-	{ 6,	TD,	sys_pwrite,		"pwrite"	}, /* 4201 */
-	{ 3,	TF,	sys_chown,		"chown"		}, /* 4202 */
-	{ 2,	TF,	sys_getcwd,		"getcwd"	}, /* 4203 */
-	{ 2,	0,	sys_capget,		"capget"	}, /* 4204 */
-	{ 2,	0,	sys_capset,		"capset"	}, /* 4205 */
-	{ 2,	TS,	sys_sigaltstack,	"sigaltstatck"	}, /* 4206 */
-	{ 4,	TD|TN,	sys_sendfile,		"sendfile"	}, /* 4207 */
-	{ 0,	0,	NULL,			NULL		}, /* 4208 */
-	{ 0,	0,	NULL,			NULL		}, /* 4209 */
-	{ 6,	TD,	sys_mmap,		"mmap"		}, /* 4210 */
-	{ 4,	TF,	sys_truncate64,		"truncate64"	}, /* 4211 */
-	{ 4,	TD,	sys_ftruncate64,	"ftruncate64"	}, /* 4212 */
-	{ 2,	TF,	sys_stat64,		"stat64"	}, /* 4213 */
-	{ 2,	TF,	sys_lstat64,		"lstat64"	}, /* 4214 */
-	{ 2,	TD,	sys_fstat64,		"fstat64"	}, /* 4215 */
-	{ 2,	TF,	sys_pivotroot,		"pivot_root"	}, /* 4216 */
-	{ 3,	0,	sys_mincore,		"mincore"	}, /* 4217 */
-	{ 3,	0,	sys_madvise,		"madvise"	}, /* 4218 */
-	{ 3,	TF,	sys_getdents64,		"getdents64"	}, /* 4219 */
-	{ 3,	TD,	sys_fcntl,		"fcntl64"	}, /* 4220 */
-	{ 0,	0,	NULL,			NULL		}, /* 4221 */
-	{ 0,	0,	sys_gettid,		"gettid"	}, /* 4222 */
-	{ 5,	TD,	sys_readahead,		"readahead"	}, /* 4223 */
-	{ 5,	TF,	sys_setxattr,		"setxattr"	}, /* 4224 */
-	{ 5,	TF,	sys_setxattr,		"lsetxattr"	}, /* 4225 */
-	{ 5,	TD,	sys_fsetxattr,		"fsetxattr"	}, /* 4226 */
-	{ 4,	TF,	sys_getxattr,		"getxattr"	}, /* 4227 */
-	{ 4,	TF,	sys_getxattr,		"lgetxattr"	}, /* 4228 */
-	{ 4,	TD,	sys_fgetxattr,		"fgetxattr"	}, /* 4229 */
-	{ 3,	TF,	sys_listxattr,		"listxattr"	}, /* 4230 */
-	{ 3,	TF,	sys_listxattr,		"llistxattr"	}, /* 4231 */
-	{ 3,	TD,	sys_flistxattr,		"flistxattr"	}, /* 4232 */
-	{ 2,	TF,	sys_removexattr,	"removexattr"	}, /* 4233 */
-	{ 2,	TF,	sys_removexattr,	"lremovexattr"	}, /* 4234 */
-	{ 2,	TD,	sys_fremovexattr,	"fremovexattr"	}, /* 4235 */
-	{ 2,	TS,	sys_kill,		"tkill"		}, /* 4236 */
-	{ 4,	TD|TN,	sys_sendfile64,		"sendfile64"	}, /* 4237 */
-	{ 6,	0,	sys_futex,		"futex"		}, /* 4238 */
-	{ 3,	0,	sys_sched_setaffinity,	"sched_setaffinity"}, /* 4239 */
-	{ 3,	0,	sys_sched_getaffinity,	"sched_getaffinity"}, /* 4240 */
-	{ 2,	0,	sys_io_setup,		"io_setup"	}, /* 4241 */
-	{ 1,	0,	sys_io_destroy,		"io_destroy"	}, /* 4242 */
-	{ 5,	0,	sys_io_getevents,		"io_getevents"	}, /* 4243 */
-	{ 3,	0,	sys_io_submit,		"io_submit"	}, /* 4244 */
-	{ 3,	0,	sys_io_cancel,		"io_cancel"	}, /* 4245 */
-	{ 1,	TP,	sys_exit,		"exit_group"	}, /* 4246 */
-	{ 4,	0,	sys_lookup_dcookie,	"lookup_dcookie"}, /* 4247 */
-	{ 1,	TD,	sys_epoll_create,	"epoll_create"	}, /* 4248 */
-	{ 4,	TD,	sys_epoll_ctl,		"epoll_ctl"	}, /* 4249 */
-	{ 4,	TD,	sys_epoll_wait,		"epoll_wait"	}, /* 4250 */
-	{ 5,	0,	sys_remap_file_pages,	"remap_file_pages"}, /* 4251 */
-	{ 1,	0,	sys_set_tid_address,	"set_tid_address"}, /* 4252 */
-	{ 0,	0,	sys_restart_syscall,	"restart_syscall"}, /* 4253 */
-	{ 6,	TD,	sys_fadvise64_64,	"fadvise64_64"	}, /* 4254 */
-	{ 3,	TF,	sys_statfs64,		"statfs64"	}, /* 4255 */
-	{ 2,	TD,	sys_fstatfs64,		"fstatfs64"	}, /* 4256 */
-	{ 3,	0,	sys_timer_create,	"timer_create"	}, /* 4257 */
-	{ 4,	0,	sys_timer_settime,	"timer_settime"	}, /* 4258 */
-	{ 2,	0,	sys_timer_gettime,	"timer_gettime"	}, /* 4259 */
-	{ 1,	0,	sys_timer_getoverrun,	"timer_getoverrun"}, /* 4260 */
-	{ 1,	0,	sys_timer_delete,	"timer_delete"	}, /* 4261 */
-	{ 2,	0,	sys_clock_settime,	"clock_settime"	}, /* 4262 */
-	{ 2,	0,	sys_clock_gettime,	"clock_gettime"	}, /* 4263 */
-	{ 2,	0,	sys_clock_getres,	"clock_getres"	}, /* 4264 */
-	{ 4,	0,	sys_clock_nanosleep,	"clock_nanosleep"}, /* 4265 */
-	{ 3,	TS,	sys_tgkill,		"tgkill"	}, /* 4266 */
-	{ 2,	TF,	sys_utimes,		"utimes"	}, /* 4267 */
-	{ 4,	0,	sys_mbind,		"mbind"		}, /* 4268 */
-	{ 0,	0,	NULL,			NULL		}, /* 4269 */
-	{ 0,	0,	NULL,			NULL		}, /* 4270 */
-	{ 4,	0,	sys_mq_open,		"mq_open"	}, /* 4271 */
-	{ 1,	0,	sys_mq_unlink,		"mq_unlink"	}, /* 4272 */
-	{ 5,	0,	sys_mq_timedsend,	"mq_timedsend"	}, /* 4273 */
-	{ 5,	0,	sys_mq_timedreceive,	"mq_timedreceive"}, /* 4274 */
-	{ 2,	0,	sys_mq_notify,		"mq_notify"	}, /* 4275 */
-	{ 3,	0,	sys_mq_getsetattr,	"mq_getsetattr"	}, /* 4276 */
-	{ 0,	0,	NULL,			NULL		}, /* 4277 */
-	{ 5,	TP,	sys_waitid,		"waitid"	}, /* 4278 */
-	{ 0,	0,	NULL,			NULL		}, /* 4279 */
-	{ 5,	0,	sys_add_key,		"add_key"	}, /* 4280 */
-	{ 4,	0,	sys_request_key,	"request_key"	}, /* 4281 */
-	{ 5,	0,	sys_keyctl,		"keyctl"	}, /* 4282 */
-	{ 1,	0,	sys_set_thread_area,	"set_thread_area" }, /* 4283 */
-	{ 0,	TD,	sys_inotify_init,	"inotify_init"	}, /* 4284 */
-	{ 3,	TD,	sys_inotify_add_watch,	"inotify_add_watch" }, /* 4285 */
-	{ 2,	TD,	sys_inotify_rm_watch,	"inotify_rm_watch" }, /* 4286 */
-	{ 4,	0,	sys_migrate_pages,	"migrate_pages"	}, /* 4287 */
-	{ 4,	TD|TF,	sys_openat,		"openat"	}, /* 4288 */
-	{ 3,	TD|TF,	sys_mkdirat,		"mkdirat"	}, /* 4289 */
-	{ 4,	TD|TF,	sys_mknodat,		"mknodat"	}, /* 4290 */
-	{ 5,	TD|TF,	sys_fchownat,		"fchownat"	}, /* 4291 */
-	{ 3,	TD|TF,	sys_futimesat,		"futimesat"	}, /* 4292 */
-	{ 4,	TD|TF,	sys_newfstatat,		"newfstatat"	}, /* 4293 */
-	{ 3,	TD|TF,	sys_unlinkat,		"unlinkat"	}, /* 4294 */
-	{ 4,	TD|TF,	sys_renameat,		"renameat"	}, /* 4295 */
-	{ 5,	TD|TF,	sys_linkat,		"linkat"	}, /* 4296 */
-	{ 3,	TD|TF,	sys_symlinkat,		"symlinkat"	}, /* 4297 */
-	{ 4,	TD|TF,	sys_readlinkat,		"readlinkat"	}, /* 4298 */
-	{ 3,	TD|TF,	sys_fchmodat,		"fchmodat"	}, /* 4299 */
-	{ 3,	TD|TF,	sys_faccessat,		"faccessat"	}, /* 4300 */
-	{ 6,	TD,	sys_pselect6,		"pselect6"	}, /* 4301 */
-	{ 5,	TD,	sys_ppoll,		"ppoll"		}, /* 4302 */
-	{ 1,	TP,	sys_unshare,		"unshare"	}, /* 4303 */
-	{ 6,	TD,	sys_splice,		"splice"	}, /* 4304 */
-	{ 4,	TD,	sys_sync_file_range,	"sync_file_range" }, /* 4305 */
-	{ 4,	TD,	sys_tee,		"tee"		}, /* 4306 */
-	{ 4,	TD,	sys_vmsplice,		"vmsplice"	}, /* 4307 */
-	{ 6,	0,	sys_move_pages,		"move_pages"	}, /* 4308 */
-	{ 2,	0,	sys_set_robust_list,	"set_robust_list" }, /* 4309 */
-	{ 3,	0,	sys_get_robust_list,	"get_robust_list" }, /* 4310 */
-	{ 4,	0,	sys_kexec_load,		"kexec_load"	}, /* 4311 */
-	{ 3,	0,	sys_getcpu,		"getcpu"	}, /* 4312 */
-	{ 6,	TD,	sys_epoll_pwait,	"epoll_pwait"	}, /* 4313 */
-	{ 3,	0,	sys_ioprio_set,		"ioprio_set"	}, /* 4314 */
-	{ 2,	0,	sys_ioprio_get,		"ioprio_get"	}, /* 4315 */
-	{ 4,	0,	printargs,		"utimensat"	}, /* 4316 */
-	{ 3,	TD|TS,	sys_signalfd,		"signalfd"	}, /* 4317 */
-	{ 4,	TD,	sys_timerfd,		"timerfd"	}, /* 4318 */
-	{ 1,	TD,	sys_eventfd,		"eventfd"	}, /* 4319 */
-	{ 6,	TD,	sys_fallocate,		"fallocate"	}, /* 4320 */
-	{ 2,	TD,	sys_timerfd_create,	"timerfd_create" }, /* 4321 */
-	{ 2,	TD,	sys_timerfd_gettime,	"timerfd_gettime" }, /* 4322 */
-	{ 4,	TD,	sys_timerfd_settime,	"timerfd_settime" }, /* 4323 */
-	{ 4,	TD|TS,	sys_signalfd4,		"signalfd4"	}, /* 4324 */
-	{ 2,	TD,	sys_eventfd2,		"eventfd2"	}, /* 4325 */
-	{ 1,	TD,	sys_epoll_create1,	"epoll_create1"	}, /* 4326 */
-	{ 3,	TD,	sys_dup3,		"dup3"		}, /* 4327 */
-	{ 2,	TD,	sys_pipe2,		"pipe2"		}, /* 4328 */
-	{ 1,	TD,	sys_inotify_init1,	"inotify_init1"	}, /* 4329 */
-	{ 6,	TD,	sys_preadv,		"preadv"	}, /* 4330 */
-	{ 6,	TD,	sys_pwritev,		"pwritev"	}, /* 4331 */
-	{ 4,	TP|TS,	sys_rt_tgsigqueueinfo,	"rt_tgsigqueueinfo" }, /* 4332 */
-	{ 5,	TD,	sys_perf_event_open,	"perf_event_open" }, /* 4333 */
-	{ 4,	TN,	sys_accept4,		"accept4"	}, /* 4334 */
-	{ 5,	TN,	sys_recvmmsg,		"recvmmsg"	}, /* 4335 */
-	{ 2,	TD,	sys_fanotify_init,	"fanotify_init"	}, /* 4336 */
-	{ 5,	TD|TF,	sys_fanotify_mark,	"fanotify_mark"	}, /* 4337 */
-	{ 4,	0,	sys_prlimit64,		"prlimit64"	}, /* 4338 */
-	{ 5,	TD|TF,	sys_name_to_handle_at,	"name_to_handle_at"}, /* 4339 */
-	{ 3,	TD,	sys_open_by_handle_at,	"open_by_handle_at"}, /* 4340 */
-	{ 2,	0,	sys_clock_adjtime,	"clock_adjtime"	}, /* 4341 */
-	{ 1,	TD,	sys_syncfs,		"syncfs"	}, /* 4342 */
-	{ 4,	TN,	sys_sendmmsg,		"sendmmsg"	}, /* 4343 */
-	{ 2,	TD,	sys_setns,		"setns"		}, /* 4344 */
-	{ 6,	0,	sys_process_vm_readv,	"process_vm_readv"	}, /* 4345 */
-	{ 6,	0,	sys_process_vm_writev,	"process_vm_writev"	}, /* 4346 */
-#else
-	{ 0,	0,	printargs,		"o32_syscall"	}, /* 4000 */
-	{ 0,	0,	printargs,		"o32_exit"		}, /* 4001 */
-	{ 0,	0,	printargs,		"o32_fork"		}, /* 4002 */
-	{ 0,	0,	printargs,		"o32_read"		}, /* 4003 */
-	{ 0,	0,	printargs,		"o32_write"		}, /* 4004 */
-	{ 0,	0,	printargs,		"o32_open"		}, /* 4005 */
-	{ 0,	0,	printargs,		"o32_close"		}, /* 4006 */
-	{ 0,	0,	printargs,		"o32_waitpid"	}, /* 4007 */
-	{ 0,	0,	printargs,		"o32_creat"		}, /* 4008 */
-	{ 0,	0,	printargs,		"o32_link"		}, /* 4009 */
-	{ 0,	0,	printargs,		"o32_unlink"	}, /* 4010 */
-	{ 0,	0,	printargs,		"o32_execve"	}, /* 4011 */
-	{ 0,	0,	printargs,		"o32_chdir"		}, /* 4012 */
-	{ 0,	0,	printargs,		"o32_time"		}, /* 4013 */
-	{ 0,	0,	printargs,		"o32_mknod"		}, /* 4014 */
-	{ 0,	0,	printargs,		"o32_chmod"		}, /* 4015 */
-	{ 0,	0,	printargs,		"o32_lchown"	}, /* 4016 */
-	{ 0,	0,	printargs,		"o32_break"		}, /* 4017 */
-	{ 0,	0,	printargs,		"o32_oldstat"	}, /* 4018 */
-	{ 0,	0,	printargs,		"o32_lseek"		}, /* 4019 */
-	{ 0,	0,	printargs,		"o32_getpid"	}, /* 4020 */
-	{ 0,	0,	printargs,		"o32_mount"		}, /* 4021 */
-	{ 0,	0,	printargs,		"o32_oldumount"	}, /* 4022 */
-	{ 0,	0,	printargs,		"o32_setuid"	}, /* 4023 */
-	{ 0,	0,	printargs,		"o32_getuid"	}, /* 4024 */
-	{ 0,	0,	printargs,		"o32_stime"		}, /* 4025 */
-	{ 0,	0,	printargs,		"o32_ptrace"	}, /* 4026 */
-	{ 0,	0,	printargs,		"o32_alarm"		}, /* 4027 */
-	{ 0,	0,	printargs,		"o32_oldfstat"	}, /* 4028 */
-	{ 0,	0,	printargs,		"o32_pause"		}, /* 4029 */
-	{ 0,	0,	printargs,		"o32_utime"		}, /* 4030 */
-	{ 0,	0,	printargs,		"o32_stty"		}, /* 4031 */
-	{ 0,	0,	printargs,		"o32_gtty"		}, /* 4032 */
-	{ 0,	0,	printargs,		"o32_access"	}, /* 4033 */
-	{ 0,	0,	printargs,		"o32_nice"		}, /* 4034 */
-	{ 0,	0,	printargs,		"o32_ftime"		}, /* 4035 */
-	{ 0,	0,	printargs,		"o32_sync"		}, /* 4036 */
-	{ 0,	0,	printargs,		"o32_kill"		}, /* 4037 */
-	{ 0,	0,	printargs,		"o32_rename"	}, /* 4038 */
-	{ 0,	0,	printargs,		"o32_mkdir"		}, /* 4039 */
-	{ 0,	0,	printargs,		"o32_rmdir"		}, /* 4040 */
-	{ 0,	0,	printargs,		"o32_dup"		}, /* 4041 */
-	{ 0,	0,	printargs,		"o32_pipe"		}, /* 4042 */
-	{ 0,	0,	printargs,		"o32_times"		}, /* 4043 */
-	{ 0,	0,	printargs,		"o32_prof"		}, /* 4044 */
-	{ 0,	0,	printargs,		"o32_brk"		}, /* 4045 */
-	{ 0,	0,	printargs,		"o32_setgid"	}, /* 4046 */
-	{ 0,	0,	printargs,		"o32_getgid"	}, /* 4047 */
-	{ 0,	0,	printargs,		"o32_signal"	}, /* 4048 */
-	{ 0,	0,	printargs,		"o32_geteuid"	}, /* 4049 */
-	{ 0,	0,	printargs,		"o32_getegid"	}, /* 4050 */
-	{ 0,	0,	printargs,		"o32_acct"		}, /* 4051 */
-	{ 0,	0,	printargs,		"o32_umount"	}, /* 4052 */
-	{ 0,	0,	printargs,		"o32_lock"		}, /* 4053 */
-	{ 0,	0,	printargs,		"o32_ioctl"		}, /* 4054 */
-	{ 0,	0,	printargs,		"o32_fcntl"		}, /* 4055 */
-	{ 0,	0,	printargs,		"o32_mpx"		}, /* 4056 */
-	{ 0,	0,	printargs,		"o32_setpgid"	}, /* 4057 */
-	{ 0,	0,	printargs,		"o32_ulimit"	}, /* 4058 */
-	{ 0,	0,	printargs,		"o32_oldolduname"	}, /* 4059 */
-	{ 0,	0,	printargs,		"o32_umask"		}, /* 4060 */
-	{ 0,	0,	printargs,		"o32_chroot"	}, /* 4061 */
-	{ 0,	0,	printargs,		"o32_ustat"		}, /* 4062 */
-	{ 0,	0,	printargs,		"o32_dup2"		}, /* 4063 */
-	{ 0,	0,	printargs,		"o32_getppid"	}, /* 4064 */
-	{ 0,	0,	printargs,		"o32_getpgrp"	}, /* 4065 */
-	{ 0,	0,	printargs,		"o32_setsid"	}, /* 4066 */
-	{ 0,	0,	printargs,		"o32_sigaction"	}, /* 4067 */
-	{ 0,	0,	printargs,		"o32_siggetmask"	}, /* 4068 */
-	{ 0,	0,	printargs,		"o32_sigsetmask"	}, /* 4069 */
-	{ 0,	0,	printargs,		"o32_setreuid"	}, /* 4070 */
-	{ 0,	0,	printargs,		"o32_setregid"	}, /* 4071 */
-	{ 0,	0,	printargs,		"o32_sigsuspend"	}, /* 4072 */
-	{ 0,	0,	printargs,		"o32_sigpending"	}, /* 4073 */
-	{ 0,	0,	printargs,		"o32_sethostname"	}, /* 4074 */
-	{ 0,	0,	printargs,		"o32_setrlimit"	}, /* 4075 */
-	{ 0,	0,	printargs,		"o32_getrlimit"	}, /* 4076 */
-	{ 0,	0,	printargs,		"o32_getrusage"	}, /* 4077 */
-	{ 0,	0,	printargs,		"o32_gettimeofday"	}, /* 4078 */
-	{ 0,	0,	printargs,		"o32_settimeofday"	}, /* 4079 */
-	{ 0,	0,	printargs,		"o32_getgroups"	}, /* 4080 */
-	{ 0,	0,	printargs,		"o32_setgroups"	}, /* 4081 */
-	{ 0,	0,	printargs,		"o32_reserved82"	}, /* 4082 */
-	{ 0,	0,	printargs,		"o32_symlink"	}, /* 4083 */
-	{ 0,	0,	printargs,		"o32_oldlstat"	}, /* 4084 */
-	{ 0,	0,	printargs,		"o32_readlink"	}, /* 4085 */
-	{ 0,	0,	printargs,		"o32_uselib"	}, /* 4086 */
-	{ 0,	0,	printargs,		"o32_swapon"	}, /* 4087 */
-	{ 0,	0,	printargs,		"o32_reboot"	}, /* 4088 */
-	{ 0,	0,	printargs,		"o32_readdir"	}, /* 4089 */
-	{ 0,	0,	printargs,		"o32_old_mmap"	}, /* 4090 */
-	{ 0,	0,	printargs,		"o32_munmap"	}, /* 4091 */
-	{ 0,	0,	printargs,		"o32_truncate"	}, /* 4092 */
-	{ 0,	0,	printargs,		"o32_ftruncate"	}, /* 4093 */
-	{ 0,	0,	printargs,		"o32_fchmod"	}, /* 4094 */
-	{ 0,	0,	printargs,		"o32_fchown"	}, /* 4095 */
-	{ 0,	0,	printargs,		"o32_getpriority"	}, /* 4096 */
-	{ 0,	0,	printargs,		"o32_setpriority"	}, /* 4097 */
-	{ 0,	0,	printargs,		"o32_profil"	}, /* 4098 */
-	{ 0,	0,	printargs,		"o32_statfs"	}, /* 4099 */
-	{ 0,	0,	printargs,		"o32_fstatfs"	}, /* 4100 */
-	{ 0,	0,	printargs,		"o32_ioperm"	}, /* 4101 */
-	{ 0,	0,	printargs,		"o32_socketcall"	}, /* 4102 */
-	{ 0,	0,	printargs,		"o32_syslog"	}, /* 4103 */
-	{ 0,	0,	printargs,		"o32_setitimer"	}, /* 4104 */
-	{ 0,	0,	printargs,		"o32_getitimer"	}, /* 4105 */
-	{ 0,	0,	printargs,		"o32_stat"		}, /* 4106 */
-	{ 0,	0,	printargs,		"o32_lstat"		}, /* 4107 */
-	{ 0,	0,	printargs,		"o32_fstat"		}, /* 4108 */
-	{ 0,	0,	printargs,		"o32_olduname"	}, /* 4109 */
-	{ 0,	0,	printargs,		"o32_iopl"		}, /* 4110 */
-	{ 0,	0,	printargs,		"o32_vhangup"	}, /* 4111 */
-	{ 0,	0,	printargs,		"o32_idle"		}, /* 4112 */
-	{ 0,	0,	printargs,		"o32_vm86"		}, /* 4113 */
-	{ 0,	0,	printargs,		"o32_wait4"		}, /* 4114 */
-	{ 0,	0,	printargs,		"o32_swapoff"	}, /* 4115 */
-	{ 0,	0,	printargs,		"o32_sysinfo"	}, /* 4116 */
-	{ 0,	0,	printargs,		"o32_ipc"		}, /* 4117 */
-	{ 0,	0,	printargs,		"o32_fsync"		}, /* 4118 */
-	{ 0,	0,	printargs,		"o32_sigreturn"	}, /* 4119 */
-	{ 0,	0,	printargs,		"o32_clone"		}, /* 4120 */
-	{ 0,	0,	printargs,		"o32_setdomainname"	}, /* 4121 */
-	{ 0,	0,	printargs,		"o32_uname"		}, /* 4122 */
-	{ 0,	0,	printargs,		"o32_modify_ldt"	}, /* 4123 */
-	{ 0,	0,	printargs,		"o32_adjtimex"	}, /* 4124 */
-	{ 0,	0,	printargs,		"o32_mprotect"	}, /* 4125 */
-	{ 0,	0,	printargs,		"o32_sigprocmask"	}, /* 4126 */
-	{ 0,	0,	printargs,		"o32_create_module"	}, /* 4127 */
-	{ 0,	0,	printargs,		"o32_init_module"	}, /* 4128 */
-	{ 0,	0,	printargs,		"o32_delete_module"	}, /* 4129 */
-	{ 0,	0,	printargs,		"o32_get_kernel_syms"}, /* 4130 */
-	{ 0,	0,	printargs,		"o32_quotactl"	}, /* 4131 */
-	{ 0,	0,	printargs,		"o32_getpgid"	}, /* 4132 */
-	{ 0,	0,	printargs,		"o32_fchdir"	}, /* 4133 */
-	{ 0,	0,	printargs,		"o32_bdflush"	}, /* 4134 */
-	{ 0,	0,	printargs,		"o32_sysfs"		}, /* 4135 */
-	{ 0,	0,	printargs,		"o32_personality"	}, /* 4136 */
-	{ 0,	0,	printargs,		"o32_afs_syscall"	}, /* 4137 */
-	{ 0,	0,	printargs,		"o32_setfsuid"	}, /* 4138 */
-	{ 0,	0,	printargs,		"o32_setfsgid"	}, /* 4139 */
-	{ 0,	0,	printargs,		"o32__llseek"	}, /* 4140 */
-	{ 0,	0,	printargs,		"o32_getdents"	}, /* 4141 */
-	{ 0,	0,	printargs,		"o32__newselect"	}, /* 4142 */
-	{ 0,	0,	printargs,		"o32_flock"		}, /* 4143 */
-	{ 0,	0,	printargs,		"o32_msync"		}, /* 4144 */
-	{ 0,	0,	printargs,		"o32_readv"		}, /* 4145 */
-	{ 0,	0,	printargs,		"o32_writev"	}, /* 4146 */
-	{ 0,	0,	printargs,		"o32_cacheflush"	}, /* 4147 */
-	{ 0,	0,	printargs,		"o32_cachectl"	}, /* 4148 */
-	{ 0,	0,	printargs,		"o32_sysmips"	}, /* 4149 */
-	{ 0,	0,	printargs,		"o32_setup"		}, /* 4150 */
-	{ 0,	0,	printargs,		"o32_getsid"	}, /* 4151 */
-	{ 0,	0,	printargs,		"o32_fdatasync"	}, /* 4152 */
-	{ 0,	0,	printargs,		"o32__sysctl"	}, /* 4153 */
-	{ 0,	0,	printargs,		"o32_mlock"		}, /* 4154 */
-	{ 0,	0,	printargs,		"o32_munlock"	}, /* 4155 */
-	{ 0,	0,	printargs,		"o32_mlockall"	}, /* 4156 */
-	{ 0,	0,	printargs,		"o32_munlockall"	}, /* 4157 */
-	{ 0,	0,	printargs,		"o32_sched_setparam"}, /* 4158 */
-	{ 0,	0,	printargs,		"o32_sched_getparam"}, /* 4159 */
-	{ 0,	0,	printargs,		"o32_sched_setscheduler"}, /* 4160 */
-	{ 0,	0,	printargs,		"o32_sched_getscheduler"}, /* 4161 */
-	{ 0,	0,	printargs,		"o32_sched_yield"	}, /* 4162 */
-	{ 0,	0,	printargs,		"o32_sched_get_priority_max"}, /* 4163 */
-	{ 0,	0,	printargs,		"o32_sched_get_priority_min"},/* 4164 */
-	{ 0,	0,	printargs,		"o32_sched_rr_get_interval"}, /* 4165 */
-	{ 0,	0,	printargs,		"o32_nanosleep"	}, /* 4166 */
-	{ 0,	0,	printargs,		"o32_mremap"	}, /* 4167 */
-	{ 0,	0,	printargs,		"o32_accept"	}, /* 4168 */
-	{ 0,	0,	printargs,		"o32_bind"		}, /* 4169 */
-	{ 0,	0,	printargs,		"o32_connect"	}, /* 4170 */
-	{ 0,	0,	printargs,		"o32_getpeername"	}, /* 4171 */
-	{ 0,	0,	printargs,		"o32_getsockname"	}, /* 4172 */
-	{ 0,	0,	printargs,		"o32_getsockopt"	}, /* 4173 */
-	{ 0,	0,	printargs,		"o32_listen"	}, /* 4174 */
-	{ 0,	0,	printargs,		"o32_recv"		}, /* 4175 */
-	{ 0,	0,	printargs,		"o32_recvfrom"	}, /* 4176 */
-	{ 0,	0,	printargs,		"o32_recvmsg"	}, /* 4177 */
-	{ 0,	0,	printargs,		"o32_send"		}, /* 4178 */
-	{ 0,	0,	printargs,		"o32_sendmsg"	}, /* 4179 */
-	{ 0,	0,	printargs,		"o32_sendto"	}, /* 4180 */
-	{ 0,	0,	printargs,		"o32_setsockopt"	}, /* 4181 */
-	{ 0,	0,	printargs,		"o32_shutdown"	}, /* 4182 */
-	{ 0,	0,	printargs,		"o32_socket"	}, /* 4183 */
-	{ 0,	0,	printargs,		"o32_socketpair"	}, /* 4184 */
-	{ 0,	0,	printargs,		"o32_setresuid"	}, /* 4185 */
-	{ 0,	0,	printargs,		"o32_getresuid"	}, /* 4186 */
-	{ 0,	0,	printargs,		"o32_query_module"	}, /* 4187 */
-	{ 0,	0,	printargs,		"o32_poll"		}, /* 4188 */
-	{ 0,	0,	printargs,		"o32_nfsservctl"	}, /* 4189 */
-	{ 0,	0,	printargs,		"o32_setresgid"	}, /* 4190 */
-	{ 0,	0,	printargs,		"o32_getresgid"	}, /* 4191 */
-	{ 0,	0,	printargs,		"o32_prctl"		}, /* 4192 */
-	{ 0,	0,	printargs,		"o32_rt_sigreturn"	}, /* 4193 */
-	{ 0,	0,	printargs,		"o32_rt_sigaction"	}, /* 4194 */
-	{ 0,	0,	printargs,		"o32_rt_sigprocmask"}, /* 4195 */
-	{ 0,	0,	printargs,		"o32_rt_sigpending"	}, /* 4196 */
-	{ 0,	0,	printargs,		"o32_rt_sigtimedwait"},/* 4197 */
-	{ 0,	0,	printargs,		"o32_rt_sigqueueinfo"},/* 4198 */
-	{ 0,	0,	printargs,		"o32_rt_siguspend"	}, /* 4199 */
-	{ 0,	0,	printargs,		"o32_pread"		}, /* 4200 */
-	{ 0,	0,	printargs,		"o32_pwrite"	}, /* 4201 */
-	{ 0,	0,	printargs,		"o32_chown"		}, /* 4202 */
-	{ 0,	0,	printargs,		"o32_getcwd"	}, /* 4203 */
-	{ 0,	0,	printargs,		"o32_capget"	}, /* 4204 */
-	{ 0,	0,	printargs,		"o32_capset"	}, /* 4205 */
-	{ 0,	0,	printargs,		"o32_sigaltstatck"	}, /* 4206 */
-	{ 0,	0,	printargs,		"o32_sendfile"	}, /* 4207 */
-	{ 0,	0,	NULL,			NULL		}, /* 4208 */
-	{ 0,	0,	NULL,			NULL		}, /* 4209 */
-	{ 0,	0,	printargs,		"o32_mmap"		}, /* 4210 */
-	{ 0,	0,	printargs,		"o32_truncate64"	}, /* 4211 */
-	{ 0,	0,	printargs,		"o32_ftruncate64"	}, /* 4212 */
-	{ 0,	0,	printargs,		"o32_stat64"	}, /* 4213 */
-	{ 0,	0,	printargs,		"o32_lstat64"	}, /* 4214 */
-	{ 0,	0,	printargs,		"o32_fstat64"	}, /* 4215 */
-	{ 0,	0,	printargs,		"o32_pivot_root"	}, /* 4216 */
-	{ 0,	0,	printargs,		"o32_mincore"	}, /* 4217 */
-	{ 0,	0,	printargs,		"o32_madvise"	}, /* 4218 */
-	{ 0,	0,	printargs,		"o32_getdents64"	}, /* 4219 */
-	{ 0,	0,	printargs,		"o32_fcntl64"	}, /* 4220 */
-	{ 0,	0,	NULL,			NULL		}, /* 4221 */
-	{ 0,	0,	printargs,		"o32_gettid"	}, /* 4222 */
-	{ 5,	TD,	printargs,		"o32_readahead"	}, /* 4223 */
-	{ 5,	TF,	printargs,		"o32_setxattr"	}, /* 4224 */
-	{ 5,	TF,	printargs,		"o32_lsetxattr"	}, /* 4225 */
-	{ 5,	TD,	printargs,		"o32_fsetxattr"	}, /* 4226 */
-	{ 4,	TF,	printargs,		"o32_getxattr"	}, /* 4227 */
-	{ 4,	TF,	printargs,		"o32_lgetxattr"	}, /* 4228 */
-	{ 4,	TD,	printargs,		"o32_fgetxattr"	}, /* 4229 */
-	{ 3,	TF,	printargs,		"o32_listxattr"	}, /* 4230 */
-	{ 3,	TF,	printargs,		"o32_llistxattr"	}, /* 4231 */
-	{ 3,	TD,	printargs,		"o32_flistxattr"	}, /* 4232 */
-	{ 2,	TF,	printargs,		"o32_removexattr"	}, /* 4233 */
-	{ 2,	TF,	printargs,		"o32_lremovexattr"	}, /* 4234 */
-	{ 2,	TD,	printargs,		"o32_fremovexattr"	}, /* 4235 */
-	{ 2,	TS,	printargs,		"o32_tkill"		}, /* 4236 */
-	{ 5,	TD|TN,	printargs,		"o32_sendfile64"	}, /* 4237 */
-	{ 6,	0,	printargs,		"o32_futex"		}, /* 4238 */
-	{ 3,	0,	printargs,		"o32_sched_setaffinity"}, /* 4239 */
-	{ 3,	0,	printargs,		"o32_sched_getaffinity"}, /* 4240 */
-	{ 2,	0,	printargs,		"o32_io_setup"	}, /* 4241 */
-	{ 1,	0,	printargs,		"o32_io_destroy"	}, /* 4242 */
-	{ 5,	0,	printargs,		"o32_io_getevents"	}, /* 4243 */
-	{ 3,	0,	printargs,		"o32_io_submit"	}, /* 4244 */
-	{ 3,	0,	printargs,		"o32_io_cancel"	}, /* 4245 */
-	{ 1,	TP,	printargs,		"o32_exit_group"	}, /* 4246 */
-	{ 3,	0,	printargs,		"o32_lookup_dcookie"}, /* 4247 */
-	{ 1,	TD,	printargs,		"o32_epoll_create"	}, /* 4248 */
-	{ 4,	TD,	printargs,		"o32_epoll_ctl"	}, /* 4249 */
-	{ 4,	TD,	printargs,		"o32_epoll_wait"	}, /* 4250 */
-	{ 5,	0,	printargs,		"o32_remap_file_pages"}, /* 4251 */
-	{ 1,	0,	printargs,		"o32_set_tid_address"}, /* 4252 */
-	{ 0,	0,	printargs,		"o32_restart_syscall"}, /* 4253 */
-	{ MA,	0,	printargs,		"o32_fadvise64_64"	}, /* 4254 */
-	{ 3,	TF,	printargs,		"o32_statfs64"	}, /* 4255 */
-	{ 2,	TD,	printargs,		"o32_fstatfs64"	}, /* 4256 */
-	{ 3,	0,	printargs,		"o32_timer_create"	}, /* 4257 */
-	{ 4,	0,	printargs,		"o32_timer_settime"	}, /* 4258 */
-	{ 2,	0,	printargs,		"o32_timer_gettime"	}, /* 4259 */
-	{ 1,	0,	printargs,		"o32_timer_getoverrun"}, /* 4260 */
-	{ 1,	0,	printargs,		"o32_timer_delete"	}, /* 4261 */
-	{ 2,	0,	printargs,		"o32_clock_settime"	}, /* 4262 */
-	{ 2,	0,	printargs,		"o32_clock_gettime"	}, /* 4263 */
-	{ 2,	0,	printargs,		"o32_clock_getres"	}, /* 4264 */
-	{ 4,	0,	printargs,		"o32_clock_nanosleep"}, /* 4265 */
-	{ 3,	TS,	printargs,		"o32_tgkill"	}, /* 4266 */
-	{ 2,	TF,	printargs,		"o32_utimes"	}, /* 4267 */
-	{ 4,	0,	printargs,		"o32_mbind"		}, /* 4268 */
-	{ 0,	0,	printargs,		"o32_SYS_4269"	}, /* 4269 */
-	{ 0,	0,	printargs,		"o32_SYS_4270"	}, /* 4270 */
-	{ 4,	0,	printargs,		"o32_mq_open"	}, /* 4271 */
-	{ 1,	0,	printargs,		"o32_mq_unlink"	}, /* 4272 */
-	{ 5,	0,	printargs,		"o32_mq_timedsend"	}, /* 4273 */
-	{ 5,	0,	printargs,		"o32_mq_timedreceive"}, /* 4274 */
-	{ 2,	0,	printargs,		"o32_mq_notify"	}, /* 4275 */
-	{ 3,	0,	printargs,		"o32_mq_getsetattr"	}, /* 4276 */
-	{ 0,	0,	printargs,		"o32_SYS_4277"	}, /* 4277 */
-	{ 5,	TP,	printargs,		"o32_waitid"	}, /* 4278 */
-	{ 0,	0,	printargs,		"o32_SYS_4279"	}, /* 4279 */
-	{ 5,	0,	printargs,		"o32_add_key"	}, /* 4280 */
-	{ 4,	0,	printargs,		"o32_request_key"	}, /* 4281 */
-	{ 5,	0,	printargs,		"o32_keyctl"	}, /* 4282 */
-	{ 1,	0,	printargs,		"o32_set_thread_area" }, /* 4283 */
-	{ 0,	TD,	printargs,		"o32_inotify_init"	}, /* 4284 */
-	{ 3,	TD,	printargs,		"o32_inotify_add_watch" }, /* 4285 */
-	{ 2,	TD,	printargs,		"o32_inotify_rm_watch" }, /* 4286 */
-	{ 4,	0,	printargs,		"o32_migrate_pages"	}, /* 4287 */
-	{ 4,	TD|TF,	printargs,		"o32_openat"	}, /* 4288 */
-	{ 3,	TD|TF,	printargs,		"o32_mkdirat"	}, /* 4289 */
-	{ 4,	TD|TF,	printargs,		"o32_mknodat"	}, /* 4290 */
-	{ 5,	TD|TF,	printargs,		"o32_fchownat"	}, /* 4291 */
-	{ 3,	TD|TF,	printargs,		"o32_futimesat"	}, /* 4292 */
-	{ 4,	TD|TF,	printargs,		"o32_newfstatat"	}, /* 4293 */
-	{ 3,	TD|TF,	printargs,		"o32_unlinkat"	}, /* 4294 */
-	{ 4,	TD|TF,	printargs,		"o32_renameat"	}, /* 4295 */
-	{ 5,	TD|TF,	printargs,		"o32_linkat"	}, /* 4296 */
-	{ 3,	TD|TF,	printargs,		"o32_symlinkat"	}, /* 4297 */
-	{ 4,	TD|TF,	printargs,		"o32_readlinkat"	}, /* 4298 */
-	{ 3,	TD|TF,	printargs,		"o32_fchmodat"	}, /* 4299 */
-	{ 3,	TD|TF,	printargs,		"o32_faccessat"	}, /* 4300 */
-	{ 6,	TD,	printargs,		"o32_pselect6"	}, /* 4301 */
-	{ 5,	TD,	printargs,		"o32_ppoll"		}, /* 4302 */
-	{ 1,	TP,	printargs,		"o32_unshare"	}, /* 4303 */
-	{ 6,	TD,	printargs,		"o32_splice"	}, /* 4304 */
-	{ 4,	TD,	printargs,		"o32_sync_file_range" }, /* 4305 */
-	{ 4,	TD,	printargs,		"o32_tee"	}, /* 4306 */
-	{ 4,	TD,	printargs,		"o32_vmsplice"	}, /* 4307 */
-	{ 6,	0,	printargs,		"o32_move_pages"	}, /* 4308 */
-	{ 2,	0,	printargs,		"o32_set_robust_list" }, /* 4309 */
-	{ 3,	0,	printargs,		"o32_get_robust_list" }, /* 4310 */
-	{ 4,	0,	printargs,		"o32_kexec_load" }, /* 4311 */
-	{ 3,	0,	printargs,		"o32_getcpu"	}, /* 4312 */
-	{ 5,	TD,	printargs,		"o32_epoll_pwait"	}, /* 4313 */
-	{ 3,	0,	printargs,		"o32_ioprio_set" }, /* 4314 */
-	{ 2,	0,	printargs,		"o32_ioprio_get" }, /* 4315 */
-	{ 4,	0,	printargs,		"o32_utimensat"	}, /* 4316 */
-	{ 3,	TD|TS,	printargs,		"o32_signalfd"	}, /* 4317 */
-	{ 4,	TD,	printargs,		"o32_timerfd"	}, /* 4318 */
-	{ 1,	TD,	printargs,		"o32_eventfd"	}, /* 4319 */
-	{ 6,	TD,	printargs,		"o32_fallocate"	}, /* 4320 */
-	{ 2,	TD,	printargs,		"o32_timerfd_create" }, /* 4321 */
-	{ 2,	TD,	printargs,		"o32_timerfd_gettime" }, /* 4322 */
-	{ 4,	TD,	printargs,		"o32_timerfd_settime" }, /* 4323 */
-	{ 4,	TD|TS,	printargs,		"o32_signalfd4"	}, /* 4324 */
-	{ 2,	TD,	printargs,		"o32_eventfd2"	}, /* 4325 */
-	{ 1,	TD,	printargs,		"o32_epoll_create1" }, /* 4326 */
-	{ 3,	TD,	printargs,		"o32_dup3"	}, /* 4327 */
-	{ 2,	TD,	printargs,		"o32_pipe2"	}, /* 4328 */
-	{ 1,	TD,	printargs,		"o32_inotify_init1" }, /* 4329 */
-	{ 6,	TD,	printargs,		"o32_preadv"	}, /* 4330 */
-	{ 6,	TD,	printargs,		"o32_pwritev"	}, /* 4331 */
-	{ 4,	TP|TS,	printargs,		"o32_rt_tgsigqueueinfo" }, /* 4332 */
-	{ 5,	TD,	printargs,		"o32_perf_event_open" }, /* 4333 */
-	{ 4,	TN,	printargs,		"o32_accept4"	}, /* 4334 */
-	{ 5,	TN,	printargs,		"o32_recvmmsg"	}, /* 4335 */
-	{ 2,	TD,	printargs,		"o32_fanotify_init" }, /* 4336 */
-	{ 5,	TD|TF,	printargs,		"o32_fanotify_mark" }, /* 4337 */
-	{ 4,	0,	printargs,		"o32_prlimit64"	}, /* 4338 */
-	{ 5,	TD|TF,	printargs,		"o32_name_to_handle_at"}, /* 4339 */
-	{ 3,	TD,	printargs,		"o32_open_by_handle_at"}, /* 4340 */
-	{ 2,	0,	printargs,		"o32_clock_adjtime" }, /* 4341 */
-	{ 1,	TD,	printargs,		"o32_syncfs"	}, /* 4342 */
-	{ 4,	TN,	printargs,		"o32_sendmmsg"	}, /* 4343 */
-	{ 2,	TD,	printargs,		"o32_setns"	}, /* 4344 */
-	{ 6,	0,	printargs,		"o32_process_vm_readv"	}, /* 4345 */
-	{ 6,	0,	printargs,		"o32_process_vm_writev"	}, /* 4346 */
-#endif
-	{ 0,	0,	NULL,			NULL		}, /* 4347 */
-	{ 0,	0,	NULL,			NULL		}, /* 4348 */
-	{ 0,	0,	NULL,			NULL		}, /* 4349 */
-	{ 0,	0,	NULL,			NULL		}, /* 4350 */
-	{ 0,	0,	NULL,			NULL		}, /* 4351 */
-	{ 0,	0,	NULL,			NULL		}, /* 4352 */
-	{ 0,	0,	NULL,			NULL		}, /* 4353 */
-	{ 0,	0,	NULL,			NULL		}, /* 4354 */
-	{ 0,	0,	NULL,			NULL		}, /* 4355 */
-	{ 0,	0,	NULL,			NULL		}, /* 4356 */
-	{ 0,	0,	NULL,			NULL		}, /* 4357 */
-	{ 0,	0,	NULL,			NULL		}, /* 4358 */
-	{ 0,	0,	NULL,			NULL		}, /* 4359 */
-	{ 0,	0,	NULL,			NULL		}, /* 4360 */
-	{ 0,	0,	NULL,			NULL		}, /* 4361 */
-	{ 0,	0,	NULL,			NULL		}, /* 4362 */
-	{ 0,	0,	NULL,			NULL		}, /* 4363 */
-	{ 0,	0,	NULL,			NULL		}, /* 4364 */
-	{ 0,	0,	NULL,			NULL		}, /* 4365 */
-	{ 0,	0,	NULL,			NULL		}, /* 4366 */
-	{ 0,	0,	NULL,			NULL		}, /* 4367 */
-	{ 0,	0,	NULL,			NULL		}, /* 4368 */
-	{ 0,	0,	NULL,			NULL		}, /* 4369 */
-	{ 0,	0,	NULL,			NULL		}, /* 4370 */
-	{ 0,	0,	NULL,			NULL		}, /* 4371 */
-	{ 0,	0,	NULL,			NULL		}, /* 4372 */
-	{ 0,	0,	NULL,			NULL		}, /* 4373 */
-	{ 0,	0,	NULL,			NULL		}, /* 4374 */
-	{ 0,	0,	NULL,			NULL		}, /* 4375 */
-	{ 0,	0,	NULL,			NULL		}, /* 4376 */
-	{ 0,	0,	NULL,			NULL		}, /* 4377 */
-	{ 0,	0,	NULL,			NULL		}, /* 4378 */
-	{ 0,	0,	NULL,			NULL		}, /* 4379 */
-	{ 0,	0,	NULL,			NULL		}, /* 4380 */
-	{ 0,	0,	NULL,			NULL		}, /* 4381 */
-	{ 0,	0,	NULL,			NULL		}, /* 4382 */
-	{ 0,	0,	NULL,			NULL		}, /* 4383 */
-	{ 0,	0,	NULL,			NULL		}, /* 4384 */
-	{ 0,	0,	NULL,			NULL		}, /* 4385 */
-	{ 0,	0,	NULL,			NULL		}, /* 4386 */
-	{ 0,	0,	NULL,			NULL		}, /* 4387 */
-	{ 0,	0,	NULL,			NULL		}, /* 4388 */
-	{ 0,	0,	NULL,			NULL		}, /* 4389 */
-	{ 0,	0,	NULL,			NULL		}, /* 4390 */
-	{ 0,	0,	NULL,			NULL		}, /* 4391 */
-	{ 0,	0,	NULL,			NULL		}, /* 4392 */
-	{ 0,	0,	NULL,			NULL		}, /* 4393 */
-	{ 0,	0,	NULL,			NULL		}, /* 4394 */
-	{ 0,	0,	NULL,			NULL		}, /* 4395 */
-	{ 0,	0,	NULL,			NULL		}, /* 4396 */
-	{ 0,	0,	NULL,			NULL		}, /* 4397 */
-	{ 0,	0,	NULL,			NULL		}, /* 4398 */
-	{ 0,	0,	NULL,			NULL		}, /* 4399 */
-	{ 0,	0,	NULL,			NULL		}, /* 4400 */
-	{ 0,	0,	NULL,			NULL		}, /* 4401 */
-	{ 0,	0,	NULL,			NULL		}, /* 4402 */
-	{ 0,	0,	NULL,			NULL		}, /* 4403 */
-	{ 0,	0,	NULL,			NULL		}, /* 4404 */
-	{ 0,	0,	NULL,			NULL		}, /* 4405 */
-	{ 0,	0,	NULL,			NULL		}, /* 4406 */
-	{ 0,	0,	NULL,			NULL		}, /* 4407 */
-	{ 0,	0,	NULL,			NULL		}, /* 4408 */
-	{ 0,	0,	NULL,			NULL		}, /* 4409 */
-	{ 0,	0,	NULL,			NULL		}, /* 4410 */
-	{ 0,	0,	NULL,			NULL		}, /* 4411 */
-	{ 0,	0,	NULL,			NULL		}, /* 4412 */
-	{ 0,	0,	NULL,			NULL		}, /* 4413 */
-	{ 0,	0,	NULL,			NULL		}, /* 4414 */
-	{ 0,	0,	NULL,			NULL		}, /* 4415 */
-	{ 0,	0,	NULL,			NULL		}, /* 4416 */
-	{ 0,	0,	NULL,			NULL		}, /* 4417 */
-	{ 0,	0,	NULL,			NULL		}, /* 4418 */
-	{ 0,	0,	NULL,			NULL		}, /* 4419 */
-	{ 0,	0,	NULL,			NULL		}, /* 4420 */
-	{ 0,	0,	NULL,			NULL		}, /* 4421 */
-	{ 0,	0,	NULL,			NULL		}, /* 4422 */
-	{ 0,	0,	NULL,			NULL		}, /* 4423 */
-	{ 0,	0,	NULL,			NULL		}, /* 4424 */
-	{ 0,	0,	NULL,			NULL		}, /* 4425 */
-	{ 0,	0,	NULL,			NULL		}, /* 4426 */
-	{ 0,	0,	NULL,			NULL		}, /* 4427 */
-	{ 0,	0,	NULL,			NULL		}, /* 4428 */
-	{ 0,	0,	NULL,			NULL		}, /* 4429 */
-	{ 0,	0,	NULL,			NULL		}, /* 4430 */
-	{ 0,	0,	NULL,			NULL		}, /* 4431 */
-	{ 0,	0,	NULL,			NULL		}, /* 4432 */
-	{ 0,	0,	NULL,			NULL		}, /* 4433 */
-	{ 0,	0,	NULL,			NULL		}, /* 4434 */
-	{ 0,	0,	NULL,			NULL		}, /* 4435 */
-	{ 0,	0,	NULL,			NULL		}, /* 4436 */
-	{ 0,	0,	NULL,			NULL		}, /* 4437 */
-	{ 0,	0,	NULL,			NULL		}, /* 4438 */
-	{ 0,	0,	NULL,			NULL		}, /* 4439 */
-	{ 0,	0,	NULL,			NULL		}, /* 4440 */
-	{ 0,	0,	NULL,			NULL		}, /* 4441 */
-	{ 0,	0,	NULL,			NULL		}, /* 4442 */
-	{ 0,	0,	NULL,			NULL		}, /* 4443 */
-	{ 0,	0,	NULL,			NULL		}, /* 4444 */
-	{ 0,	0,	NULL,			NULL		}, /* 4445 */
-	{ 0,	0,	NULL,			NULL		}, /* 4446 */
-	{ 0,	0,	NULL,			NULL		}, /* 4447 */
-	{ 0,	0,	NULL,			NULL		}, /* 4448 */
-	{ 0,	0,	NULL,			NULL		}, /* 4449 */
-	{ 0,	0,	NULL,			NULL		}, /* 4450 */
-	{ 0,	0,	NULL,			NULL		}, /* 4451 */
-	{ 0,	0,	NULL,			NULL		}, /* 4452 */
-	{ 0,	0,	NULL,			NULL		}, /* 4453 */
-	{ 0,	0,	NULL,			NULL		}, /* 4454 */
-	{ 0,	0,	NULL,			NULL		}, /* 4455 */
-	{ 0,	0,	NULL,			NULL		}, /* 4456 */
-	{ 0,	0,	NULL,			NULL		}, /* 4457 */
-	{ 0,	0,	NULL,			NULL		}, /* 4458 */
-	{ 0,	0,	NULL,			NULL		}, /* 4459 */
-	{ 0,	0,	NULL,			NULL		}, /* 4460 */
-	{ 0,	0,	NULL,			NULL		}, /* 4461 */
-	{ 0,	0,	NULL,			NULL		}, /* 4462 */
-	{ 0,	0,	NULL,			NULL		}, /* 4463 */
-	{ 0,	0,	NULL,			NULL		}, /* 4464 */
-	{ 0,	0,	NULL,			NULL		}, /* 4465 */
-	{ 0,	0,	NULL,			NULL		}, /* 4466 */
-	{ 0,	0,	NULL,			NULL		}, /* 4467 */
-	{ 0,	0,	NULL,			NULL		}, /* 4468 */
-	{ 0,	0,	NULL,			NULL		}, /* 4469 */
-	{ 0,	0,	NULL,			NULL		}, /* 4470 */
-	{ 0,	0,	NULL,			NULL		}, /* 4471 */
-	{ 0,	0,	NULL,			NULL		}, /* 4472 */
-	{ 0,	0,	NULL,			NULL		}, /* 4473 */
-	{ 0,	0,	NULL,			NULL		}, /* 4474 */
-	{ 0,	0,	NULL,			NULL		}, /* 4475 */
-	{ 0,	0,	NULL,			NULL		}, /* 4476 */
-	{ 0,	0,	NULL,			NULL		}, /* 4477 */
-	{ 0,	0,	NULL,			NULL		}, /* 4478 */
-	{ 0,	0,	NULL,			NULL		}, /* 4479 */
-	{ 0,	0,	NULL,			NULL		}, /* 4480 */
-	{ 0,	0,	NULL,			NULL		}, /* 4481 */
-	{ 0,	0,	NULL,			NULL		}, /* 4482 */
-	{ 0,	0,	NULL,			NULL		}, /* 4483 */
-	{ 0,	0,	NULL,			NULL		}, /* 4484 */
-	{ 0,	0,	NULL,			NULL		}, /* 4485 */
-	{ 0,	0,	NULL,			NULL		}, /* 4486 */
-	{ 0,	0,	NULL,			NULL		}, /* 4487 */
-	{ 0,	0,	NULL,			NULL		}, /* 4488 */
-	{ 0,	0,	NULL,			NULL		}, /* 4489 */
-	{ 0,	0,	NULL,			NULL		}, /* 4490 */
-	{ 0,	0,	NULL,			NULL		}, /* 4491 */
-	{ 0,	0,	NULL,			NULL		}, /* 4492 */
-	{ 0,	0,	NULL,			NULL		}, /* 4493 */
-	{ 0,	0,	NULL,			NULL		}, /* 4494 */
-	{ 0,	0,	NULL,			NULL		}, /* 4495 */
-	{ 0,	0,	NULL,			NULL		}, /* 4496 */
-	{ 0,	0,	NULL,			NULL		}, /* 4497 */
-	{ 0,	0,	NULL,			NULL		}, /* 4498 */
-	{ 0,	0,	NULL,			NULL		}, /* 4499 */
-	{ 0,	0,	NULL,			NULL		}, /* 4500 */
-	{ 0,	0,	NULL,			NULL		}, /* 4501 */
-	{ 0,	0,	NULL,			NULL		}, /* 4502 */
-	{ 0,	0,	NULL,			NULL		}, /* 4503 */
-	{ 0,	0,	NULL,			NULL		}, /* 4504 */
-	{ 0,	0,	NULL,			NULL		}, /* 4505 */
-	{ 0,	0,	NULL,			NULL		}, /* 4506 */
-	{ 0,	0,	NULL,			NULL		}, /* 4507 */
-	{ 0,	0,	NULL,			NULL		}, /* 4508 */
-	{ 0,	0,	NULL,			NULL		}, /* 4509 */
-	{ 0,	0,	NULL,			NULL		}, /* 4510 */
-	{ 0,	0,	NULL,			NULL		}, /* 4511 */
-	{ 0,	0,	NULL,			NULL		}, /* 4512 */
-	{ 0,	0,	NULL,			NULL		}, /* 4513 */
-	{ 0,	0,	NULL,			NULL		}, /* 4514 */
-	{ 0,	0,	NULL,			NULL		}, /* 4515 */
-	{ 0,	0,	NULL,			NULL		}, /* 4516 */
-	{ 0,	0,	NULL,			NULL		}, /* 4517 */
-	{ 0,	0,	NULL,			NULL		}, /* 4518 */
-	{ 0,	0,	NULL,			NULL		}, /* 4519 */
-	{ 0,	0,	NULL,			NULL		}, /* 4520 */
-	{ 0,	0,	NULL,			NULL		}, /* 4521 */
-	{ 0,	0,	NULL,			NULL		}, /* 4522 */
-	{ 0,	0,	NULL,			NULL		}, /* 4523 */
-	{ 0,	0,	NULL,			NULL		}, /* 4524 */
-	{ 0,	0,	NULL,			NULL		}, /* 4525 */
-	{ 0,	0,	NULL,			NULL		}, /* 4526 */
-	{ 0,	0,	NULL,			NULL		}, /* 4527 */
-	{ 0,	0,	NULL,			NULL		}, /* 4528 */
-	{ 0,	0,	NULL,			NULL		}, /* 4529 */
-	{ 0,	0,	NULL,			NULL		}, /* 4530 */
-	{ 0,	0,	NULL,			NULL		}, /* 4531 */
-	{ 0,	0,	NULL,			NULL		}, /* 4532 */
-	{ 0,	0,	NULL,			NULL		}, /* 4533 */
-	{ 0,	0,	NULL,			NULL		}, /* 4534 */
-	{ 0,	0,	NULL,			NULL		}, /* 4535 */
-	{ 0,	0,	NULL,			NULL		}, /* 4536 */
-	{ 0,	0,	NULL,			NULL		}, /* 4537 */
-	{ 0,	0,	NULL,			NULL		}, /* 4538 */
-	{ 0,	0,	NULL,			NULL		}, /* 4539 */
-	{ 0,	0,	NULL,			NULL		}, /* 4540 */
-	{ 0,	0,	NULL,			NULL		}, /* 4541 */
-	{ 0,	0,	NULL,			NULL		}, /* 4542 */
-	{ 0,	0,	NULL,			NULL		}, /* 4543 */
-	{ 0,	0,	NULL,			NULL		}, /* 4544 */
-	{ 0,	0,	NULL,			NULL		}, /* 4545 */
-	{ 0,	0,	NULL,			NULL		}, /* 4546 */
-	{ 0,	0,	NULL,			NULL		}, /* 4547 */
-	{ 0,	0,	NULL,			NULL		}, /* 4548 */
-	{ 0,	0,	NULL,			NULL		}, /* 4549 */
-	{ 0,	0,	NULL,			NULL		}, /* 4550 */
-	{ 0,	0,	NULL,			NULL		}, /* 4551 */
-	{ 0,	0,	NULL,			NULL		}, /* 4552 */
-	{ 0,	0,	NULL,			NULL		}, /* 4553 */
-	{ 0,	0,	NULL,			NULL		}, /* 4554 */
-	{ 0,	0,	NULL,			NULL		}, /* 4555 */
-	{ 0,	0,	NULL,			NULL		}, /* 4556 */
-	{ 0,	0,	NULL,			NULL		}, /* 4557 */
-	{ 0,	0,	NULL,			NULL		}, /* 4558 */
-	{ 0,	0,	NULL,			NULL		}, /* 4559 */
-	{ 0,	0,	NULL,			NULL		}, /* 4560 */
-	{ 0,	0,	NULL,			NULL		}, /* 4561 */
-	{ 0,	0,	NULL,			NULL		}, /* 4562 */
-	{ 0,	0,	NULL,			NULL		}, /* 4563 */
-	{ 0,	0,	NULL,			NULL		}, /* 4564 */
-	{ 0,	0,	NULL,			NULL		}, /* 4565 */
-	{ 0,	0,	NULL,			NULL		}, /* 4566 */
-	{ 0,	0,	NULL,			NULL		}, /* 4567 */
-	{ 0,	0,	NULL,			NULL		}, /* 4568 */
-	{ 0,	0,	NULL,			NULL		}, /* 4569 */
-	{ 0,	0,	NULL,			NULL		}, /* 4570 */
-	{ 0,	0,	NULL,			NULL		}, /* 4571 */
-	{ 0,	0,	NULL,			NULL		}, /* 4572 */
-	{ 0,	0,	NULL,			NULL		}, /* 4573 */
-	{ 0,	0,	NULL,			NULL		}, /* 4574 */
-	{ 0,	0,	NULL,			NULL		}, /* 4575 */
-	{ 0,	0,	NULL,			NULL		}, /* 4576 */
-	{ 0,	0,	NULL,			NULL		}, /* 4577 */
-	{ 0,	0,	NULL,			NULL		}, /* 4578 */
-	{ 0,	0,	NULL,			NULL		}, /* 4579 */
-	{ 0,	0,	NULL,			NULL		}, /* 4580 */
-	{ 0,	0,	NULL,			NULL		}, /* 4581 */
-	{ 0,	0,	NULL,			NULL		}, /* 4582 */
-	{ 0,	0,	NULL,			NULL		}, /* 4583 */
-	{ 0,	0,	NULL,			NULL		}, /* 4584 */
-	{ 0,	0,	NULL,			NULL		}, /* 4585 */
-	{ 0,	0,	NULL,			NULL		}, /* 4586 */
-	{ 0,	0,	NULL,			NULL		}, /* 4587 */
-	{ 0,	0,	NULL,			NULL		}, /* 4588 */
-	{ 0,	0,	NULL,			NULL		}, /* 4589 */
-	{ 0,	0,	NULL,			NULL		}, /* 4590 */
-	{ 0,	0,	NULL,			NULL		}, /* 4591 */
-	{ 0,	0,	NULL,			NULL		}, /* 4592 */
-	{ 0,	0,	NULL,			NULL		}, /* 4593 */
-	{ 0,	0,	NULL,			NULL		}, /* 4594 */
-	{ 0,	0,	NULL,			NULL		}, /* 4595 */
-	{ 0,	0,	NULL,			NULL		}, /* 4596 */
-	{ 0,	0,	NULL,			NULL		}, /* 4597 */
-	{ 0,	0,	NULL,			NULL		}, /* 4598 */
-	{ 0,	0,	NULL,			NULL		}, /* 4599 */
-	{ 0,	0,	NULL,			NULL		}, /* 4600 */
-	{ 0,	0,	NULL,			NULL		}, /* 4601 */
-	{ 0,	0,	NULL,			NULL		}, /* 4602 */
-	{ 0,	0,	NULL,			NULL		}, /* 4603 */
-	{ 0,	0,	NULL,			NULL		}, /* 4604 */
-	{ 0,	0,	NULL,			NULL		}, /* 4605 */
-	{ 0,	0,	NULL,			NULL		}, /* 4606 */
-	{ 0,	0,	NULL,			NULL		}, /* 4607 */
-	{ 0,	0,	NULL,			NULL		}, /* 4608 */
-	{ 0,	0,	NULL,			NULL		}, /* 4609 */
-	{ 0,	0,	NULL,			NULL		}, /* 4610 */
-	{ 0,	0,	NULL,			NULL		}, /* 4611 */
-	{ 0,	0,	NULL,			NULL		}, /* 4612 */
-	{ 0,	0,	NULL,			NULL		}, /* 4613 */
-	{ 0,	0,	NULL,			NULL		}, /* 4614 */
-	{ 0,	0,	NULL,			NULL		}, /* 4615 */
-	{ 0,	0,	NULL,			NULL		}, /* 4616 */
-	{ 0,	0,	NULL,			NULL		}, /* 4617 */
-	{ 0,	0,	NULL,			NULL		}, /* 4618 */
-	{ 0,	0,	NULL,			NULL		}, /* 4619 */
-	{ 0,	0,	NULL,			NULL		}, /* 4620 */
-	{ 0,	0,	NULL,			NULL		}, /* 4621 */
-	{ 0,	0,	NULL,			NULL		}, /* 4622 */
-	{ 0,	0,	NULL,			NULL		}, /* 4623 */
-	{ 0,	0,	NULL,			NULL		}, /* 4624 */
-	{ 0,	0,	NULL,			NULL		}, /* 4625 */
-	{ 0,	0,	NULL,			NULL		}, /* 4626 */
-	{ 0,	0,	NULL,			NULL		}, /* 4627 */
-	{ 0,	0,	NULL,			NULL		}, /* 4628 */
-	{ 0,	0,	NULL,			NULL		}, /* 4629 */
-	{ 0,	0,	NULL,			NULL		}, /* 4630 */
-	{ 0,	0,	NULL,			NULL		}, /* 4631 */
-	{ 0,	0,	NULL,			NULL		}, /* 4632 */
-	{ 0,	0,	NULL,			NULL		}, /* 4633 */
-	{ 0,	0,	NULL,			NULL		}, /* 4634 */
-	{ 0,	0,	NULL,			NULL		}, /* 4635 */
-	{ 0,	0,	NULL,			NULL		}, /* 4636 */
-	{ 0,	0,	NULL,			NULL		}, /* 4637 */
-	{ 0,	0,	NULL,			NULL		}, /* 4638 */
-	{ 0,	0,	NULL,			NULL		}, /* 4639 */
-	{ 0,	0,	NULL,			NULL		}, /* 4640 */
-	{ 0,	0,	NULL,			NULL		}, /* 4641 */
-	{ 0,	0,	NULL,			NULL		}, /* 4642 */
-	{ 0,	0,	NULL,			NULL		}, /* 4643 */
-	{ 0,	0,	NULL,			NULL		}, /* 4644 */
-	{ 0,	0,	NULL,			NULL		}, /* 4645 */
-	{ 0,	0,	NULL,			NULL		}, /* 4646 */
-	{ 0,	0,	NULL,			NULL		}, /* 4647 */
-	{ 0,	0,	NULL,			NULL		}, /* 4648 */
-	{ 0,	0,	NULL,			NULL		}, /* 4649 */
-	{ 0,	0,	NULL,			NULL		}, /* 4650 */
-	{ 0,	0,	NULL,			NULL		}, /* 4651 */
-	{ 0,	0,	NULL,			NULL		}, /* 4652 */
-	{ 0,	0,	NULL,			NULL		}, /* 4653 */
-	{ 0,	0,	NULL,			NULL		}, /* 4654 */
-	{ 0,	0,	NULL,			NULL		}, /* 4655 */
-	{ 0,	0,	NULL,			NULL		}, /* 4656 */
-	{ 0,	0,	NULL,			NULL		}, /* 4657 */
-	{ 0,	0,	NULL,			NULL		}, /* 4658 */
-	{ 0,	0,	NULL,			NULL		}, /* 4659 */
-	{ 0,	0,	NULL,			NULL		}, /* 4660 */
-	{ 0,	0,	NULL,			NULL		}, /* 4661 */
-	{ 0,	0,	NULL,			NULL		}, /* 4662 */
-	{ 0,	0,	NULL,			NULL		}, /* 4663 */
-	{ 0,	0,	NULL,			NULL		}, /* 4664 */
-	{ 0,	0,	NULL,			NULL		}, /* 4665 */
-	{ 0,	0,	NULL,			NULL		}, /* 4666 */
-	{ 0,	0,	NULL,			NULL		}, /* 4667 */
-	{ 0,	0,	NULL,			NULL		}, /* 4668 */
-	{ 0,	0,	NULL,			NULL		}, /* 4669 */
-	{ 0,	0,	NULL,			NULL		}, /* 4670 */
-	{ 0,	0,	NULL,			NULL		}, /* 4671 */
-	{ 0,	0,	NULL,			NULL		}, /* 4672 */
-	{ 0,	0,	NULL,			NULL		}, /* 4673 */
-	{ 0,	0,	NULL,			NULL		}, /* 4674 */
-	{ 0,	0,	NULL,			NULL		}, /* 4675 */
-	{ 0,	0,	NULL,			NULL		}, /* 4676 */
-	{ 0,	0,	NULL,			NULL		}, /* 4677 */
-	{ 0,	0,	NULL,			NULL		}, /* 4678 */
-	{ 0,	0,	NULL,			NULL		}, /* 4679 */
-	{ 0,	0,	NULL,			NULL		}, /* 4680 */
-	{ 0,	0,	NULL,			NULL		}, /* 4681 */
-	{ 0,	0,	NULL,			NULL		}, /* 4682 */
-	{ 0,	0,	NULL,			NULL		}, /* 4683 */
-	{ 0,	0,	NULL,			NULL		}, /* 4684 */
-	{ 0,	0,	NULL,			NULL		}, /* 4685 */
-	{ 0,	0,	NULL,			NULL		}, /* 4686 */
-	{ 0,	0,	NULL,			NULL		}, /* 4687 */
-	{ 0,	0,	NULL,			NULL		}, /* 4688 */
-	{ 0,	0,	NULL,			NULL		}, /* 4689 */
-	{ 0,	0,	NULL,			NULL		}, /* 4690 */
-	{ 0,	0,	NULL,			NULL		}, /* 4691 */
-	{ 0,	0,	NULL,			NULL		}, /* 4692 */
-	{ 0,	0,	NULL,			NULL		}, /* 4693 */
-	{ 0,	0,	NULL,			NULL		}, /* 4694 */
-	{ 0,	0,	NULL,			NULL		}, /* 4695 */
-	{ 0,	0,	NULL,			NULL		}, /* 4696 */
-	{ 0,	0,	NULL,			NULL		}, /* 4697 */
-	{ 0,	0,	NULL,			NULL		}, /* 4698 */
-	{ 0,	0,	NULL,			NULL		}, /* 4699 */
-	{ 0,	0,	NULL,			NULL		}, /* 4700 */
-	{ 0,	0,	NULL,			NULL		}, /* 4701 */
-	{ 0,	0,	NULL,			NULL		}, /* 4702 */
-	{ 0,	0,	NULL,			NULL		}, /* 4703 */
-	{ 0,	0,	NULL,			NULL		}, /* 4704 */
-	{ 0,	0,	NULL,			NULL		}, /* 4705 */
-	{ 0,	0,	NULL,			NULL		}, /* 4706 */
-	{ 0,	0,	NULL,			NULL		}, /* 4707 */
-	{ 0,	0,	NULL,			NULL		}, /* 4708 */
-	{ 0,	0,	NULL,			NULL		}, /* 4709 */
-	{ 0,	0,	NULL,			NULL		}, /* 4710 */
-	{ 0,	0,	NULL,			NULL		}, /* 4711 */
-	{ 0,	0,	NULL,			NULL		}, /* 4712 */
-	{ 0,	0,	NULL,			NULL		}, /* 4713 */
-	{ 0,	0,	NULL,			NULL		}, /* 4714 */
-	{ 0,	0,	NULL,			NULL		}, /* 4715 */
-	{ 0,	0,	NULL,			NULL		}, /* 4716 */
-	{ 0,	0,	NULL,			NULL		}, /* 4717 */
-	{ 0,	0,	NULL,			NULL		}, /* 4718 */
-	{ 0,	0,	NULL,			NULL		}, /* 4719 */
-	{ 0,	0,	NULL,			NULL		}, /* 4720 */
-	{ 0,	0,	NULL,			NULL		}, /* 4721 */
-	{ 0,	0,	NULL,			NULL		}, /* 4722 */
-	{ 0,	0,	NULL,			NULL		}, /* 4723 */
-	{ 0,	0,	NULL,			NULL		}, /* 4724 */
-	{ 0,	0,	NULL,			NULL		}, /* 4725 */
-	{ 0,	0,	NULL,			NULL		}, /* 4726 */
-	{ 0,	0,	NULL,			NULL		}, /* 4727 */
-	{ 0,	0,	NULL,			NULL		}, /* 4728 */
-	{ 0,	0,	NULL,			NULL		}, /* 4729 */
-	{ 0,	0,	NULL,			NULL		}, /* 4730 */
-	{ 0,	0,	NULL,			NULL		}, /* 4731 */
-	{ 0,	0,	NULL,			NULL		}, /* 4732 */
-	{ 0,	0,	NULL,			NULL		}, /* 4733 */
-	{ 0,	0,	NULL,			NULL		}, /* 4734 */
-	{ 0,	0,	NULL,			NULL		}, /* 4735 */
-	{ 0,	0,	NULL,			NULL		}, /* 4736 */
-	{ 0,	0,	NULL,			NULL		}, /* 4737 */
-	{ 0,	0,	NULL,			NULL		}, /* 4738 */
-	{ 0,	0,	NULL,			NULL		}, /* 4739 */
-	{ 0,	0,	NULL,			NULL		}, /* 4740 */
-	{ 0,	0,	NULL,			NULL		}, /* 4741 */
-	{ 0,	0,	NULL,			NULL		}, /* 4742 */
-	{ 0,	0,	NULL,			NULL		}, /* 4743 */
-	{ 0,	0,	NULL,			NULL		}, /* 4744 */
-	{ 0,	0,	NULL,			NULL		}, /* 4745 */
-	{ 0,	0,	NULL,			NULL		}, /* 4746 */
-	{ 0,	0,	NULL,			NULL		}, /* 4747 */
-	{ 0,	0,	NULL,			NULL		}, /* 4748 */
-	{ 0,	0,	NULL,			NULL		}, /* 4749 */
-	{ 0,	0,	NULL,			NULL		}, /* 4750 */
-	{ 0,	0,	NULL,			NULL		}, /* 4751 */
-	{ 0,	0,	NULL,			NULL		}, /* 4752 */
-	{ 0,	0,	NULL,			NULL		}, /* 4753 */
-	{ 0,	0,	NULL,			NULL		}, /* 4754 */
-	{ 0,	0,	NULL,			NULL		}, /* 4755 */
-	{ 0,	0,	NULL,			NULL		}, /* 4756 */
-	{ 0,	0,	NULL,			NULL		}, /* 4757 */
-	{ 0,	0,	NULL,			NULL		}, /* 4758 */
-	{ 0,	0,	NULL,			NULL		}, /* 4759 */
-	{ 0,	0,	NULL,			NULL		}, /* 4760 */
-	{ 0,	0,	NULL,			NULL		}, /* 4761 */
-	{ 0,	0,	NULL,			NULL		}, /* 4762 */
-	{ 0,	0,	NULL,			NULL		}, /* 4763 */
-	{ 0,	0,	NULL,			NULL		}, /* 4764 */
-	{ 0,	0,	NULL,			NULL		}, /* 4765 */
-	{ 0,	0,	NULL,			NULL		}, /* 4766 */
-	{ 0,	0,	NULL,			NULL		}, /* 4767 */
-	{ 0,	0,	NULL,			NULL		}, /* 4768 */
-	{ 0,	0,	NULL,			NULL		}, /* 4769 */
-	{ 0,	0,	NULL,			NULL		}, /* 4770 */
-	{ 0,	0,	NULL,			NULL		}, /* 4771 */
-	{ 0,	0,	NULL,			NULL		}, /* 4772 */
-	{ 0,	0,	NULL,			NULL		}, /* 4773 */
-	{ 0,	0,	NULL,			NULL		}, /* 4774 */
-	{ 0,	0,	NULL,			NULL		}, /* 4775 */
-	{ 0,	0,	NULL,			NULL		}, /* 4776 */
-	{ 0,	0,	NULL,			NULL		}, /* 4777 */
-	{ 0,	0,	NULL,			NULL		}, /* 4778 */
-	{ 0,	0,	NULL,			NULL		}, /* 4779 */
-	{ 0,	0,	NULL,			NULL		}, /* 4780 */
-	{ 0,	0,	NULL,			NULL		}, /* 4781 */
-	{ 0,	0,	NULL,			NULL		}, /* 4782 */
-	{ 0,	0,	NULL,			NULL		}, /* 4783 */
-	{ 0,	0,	NULL,			NULL		}, /* 4784 */
-	{ 0,	0,	NULL,			NULL		}, /* 4785 */
-	{ 0,	0,	NULL,			NULL		}, /* 4786 */
-	{ 0,	0,	NULL,			NULL		}, /* 4787 */
-	{ 0,	0,	NULL,			NULL		}, /* 4788 */
-	{ 0,	0,	NULL,			NULL		}, /* 4789 */
-	{ 0,	0,	NULL,			NULL		}, /* 4790 */
-	{ 0,	0,	NULL,			NULL		}, /* 4791 */
-	{ 0,	0,	NULL,			NULL		}, /* 4792 */
-	{ 0,	0,	NULL,			NULL		}, /* 4793 */
-	{ 0,	0,	NULL,			NULL		}, /* 4794 */
-	{ 0,	0,	NULL,			NULL		}, /* 4795 */
-	{ 0,	0,	NULL,			NULL		}, /* 4796 */
-	{ 0,	0,	NULL,			NULL		}, /* 4797 */
-	{ 0,	0,	NULL,			NULL		}, /* 4798 */
-	{ 0,	0,	NULL,			NULL		}, /* 4799 */
-	{ 0,	0,	NULL,			NULL		}, /* 4800 */
-	{ 0,	0,	NULL,			NULL		}, /* 4801 */
-	{ 0,	0,	NULL,			NULL		}, /* 4802 */
-	{ 0,	0,	NULL,			NULL		}, /* 4803 */
-	{ 0,	0,	NULL,			NULL		}, /* 4804 */
-	{ 0,	0,	NULL,			NULL		}, /* 4805 */
-	{ 0,	0,	NULL,			NULL		}, /* 4806 */
-	{ 0,	0,	NULL,			NULL		}, /* 4807 */
-	{ 0,	0,	NULL,			NULL		}, /* 4808 */
-	{ 0,	0,	NULL,			NULL		}, /* 4809 */
-	{ 0,	0,	NULL,			NULL		}, /* 4810 */
-	{ 0,	0,	NULL,			NULL		}, /* 4811 */
-	{ 0,	0,	NULL,			NULL		}, /* 4812 */
-	{ 0,	0,	NULL,			NULL		}, /* 4813 */
-	{ 0,	0,	NULL,			NULL		}, /* 4814 */
-	{ 0,	0,	NULL,			NULL		}, /* 4815 */
-	{ 0,	0,	NULL,			NULL		}, /* 4816 */
-	{ 0,	0,	NULL,			NULL		}, /* 4817 */
-	{ 0,	0,	NULL,			NULL		}, /* 4818 */
-	{ 0,	0,	NULL,			NULL		}, /* 4819 */
-	{ 0,	0,	NULL,			NULL		}, /* 4820 */
-	{ 0,	0,	NULL,			NULL		}, /* 4821 */
-	{ 0,	0,	NULL,			NULL		}, /* 4822 */
-	{ 0,	0,	NULL,			NULL		}, /* 4823 */
-	{ 0,	0,	NULL,			NULL		}, /* 4824 */
-	{ 0,	0,	NULL,			NULL		}, /* 4825 */
-	{ 0,	0,	NULL,			NULL		}, /* 4826 */
-	{ 0,	0,	NULL,			NULL		}, /* 4827 */
-	{ 0,	0,	NULL,			NULL		}, /* 4828 */
-	{ 0,	0,	NULL,			NULL		}, /* 4829 */
-	{ 0,	0,	NULL,			NULL		}, /* 4830 */
-	{ 0,	0,	NULL,			NULL		}, /* 4831 */
-	{ 0,	0,	NULL,			NULL		}, /* 4832 */
-	{ 0,	0,	NULL,			NULL		}, /* 4833 */
-	{ 0,	0,	NULL,			NULL		}, /* 4834 */
-	{ 0,	0,	NULL,			NULL		}, /* 4835 */
-	{ 0,	0,	NULL,			NULL		}, /* 4836 */
-	{ 0,	0,	NULL,			NULL		}, /* 4837 */
-	{ 0,	0,	NULL,			NULL		}, /* 4838 */
-	{ 0,	0,	NULL,			NULL		}, /* 4839 */
-	{ 0,	0,	NULL,			NULL		}, /* 4840 */
-	{ 0,	0,	NULL,			NULL		}, /* 4841 */
-	{ 0,	0,	NULL,			NULL		}, /* 4842 */
-	{ 0,	0,	NULL,			NULL		}, /* 4843 */
-	{ 0,	0,	NULL,			NULL		}, /* 4844 */
-	{ 0,	0,	NULL,			NULL		}, /* 4845 */
-	{ 0,	0,	NULL,			NULL		}, /* 4846 */
-	{ 0,	0,	NULL,			NULL		}, /* 4847 */
-	{ 0,	0,	NULL,			NULL		}, /* 4848 */
-	{ 0,	0,	NULL,			NULL		}, /* 4849 */
-	{ 0,	0,	NULL,			NULL		}, /* 4850 */
-	{ 0,	0,	NULL,			NULL		}, /* 4851 */
-	{ 0,	0,	NULL,			NULL		}, /* 4852 */
-	{ 0,	0,	NULL,			NULL		}, /* 4853 */
-	{ 0,	0,	NULL,			NULL		}, /* 4854 */
-	{ 0,	0,	NULL,			NULL		}, /* 4855 */
-	{ 0,	0,	NULL,			NULL		}, /* 4856 */
-	{ 0,	0,	NULL,			NULL		}, /* 4857 */
-	{ 0,	0,	NULL,			NULL		}, /* 4858 */
-	{ 0,	0,	NULL,			NULL		}, /* 4859 */
-	{ 0,	0,	NULL,			NULL		}, /* 4860 */
-	{ 0,	0,	NULL,			NULL		}, /* 4861 */
-	{ 0,	0,	NULL,			NULL		}, /* 4862 */
-	{ 0,	0,	NULL,			NULL		}, /* 4863 */
-	{ 0,	0,	NULL,			NULL		}, /* 4864 */
-	{ 0,	0,	NULL,			NULL		}, /* 4865 */
-	{ 0,	0,	NULL,			NULL		}, /* 4866 */
-	{ 0,	0,	NULL,			NULL		}, /* 4867 */
-	{ 0,	0,	NULL,			NULL		}, /* 4868 */
-	{ 0,	0,	NULL,			NULL		}, /* 4869 */
-	{ 0,	0,	NULL,			NULL		}, /* 4870 */
-	{ 0,	0,	NULL,			NULL		}, /* 4871 */
-	{ 0,	0,	NULL,			NULL		}, /* 4872 */
-	{ 0,	0,	NULL,			NULL		}, /* 4873 */
-	{ 0,	0,	NULL,			NULL		}, /* 4874 */
-	{ 0,	0,	NULL,			NULL		}, /* 4875 */
-	{ 0,	0,	NULL,			NULL		}, /* 4876 */
-	{ 0,	0,	NULL,			NULL		}, /* 4877 */
-	{ 0,	0,	NULL,			NULL		}, /* 4878 */
-	{ 0,	0,	NULL,			NULL		}, /* 4879 */
-	{ 0,	0,	NULL,			NULL		}, /* 4880 */
-	{ 0,	0,	NULL,			NULL		}, /* 4881 */
-	{ 0,	0,	NULL,			NULL		}, /* 4882 */
-	{ 0,	0,	NULL,			NULL		}, /* 4883 */
-	{ 0,	0,	NULL,			NULL		}, /* 4884 */
-	{ 0,	0,	NULL,			NULL		}, /* 4885 */
-	{ 0,	0,	NULL,			NULL		}, /* 4886 */
-	{ 0,	0,	NULL,			NULL		}, /* 4887 */
-	{ 0,	0,	NULL,			NULL		}, /* 4888 */
-	{ 0,	0,	NULL,			NULL		}, /* 4889 */
-	{ 0,	0,	NULL,			NULL		}, /* 4890 */
-	{ 0,	0,	NULL,			NULL		}, /* 4891 */
-	{ 0,	0,	NULL,			NULL		}, /* 4892 */
-	{ 0,	0,	NULL,			NULL		}, /* 4893 */
-	{ 0,	0,	NULL,			NULL		}, /* 4894 */
-	{ 0,	0,	NULL,			NULL		}, /* 4895 */
-	{ 0,	0,	NULL,			NULL		}, /* 4896 */
-	{ 0,	0,	NULL,			NULL		}, /* 4897 */
-	{ 0,	0,	NULL,			NULL		}, /* 4898 */
-	{ 0,	0,	NULL,			NULL		}, /* 4899 */
-	{ 0,	0,	NULL,			NULL		}, /* 4900 */
-	{ 0,	0,	NULL,			NULL		}, /* 4901 */
-	{ 0,	0,	NULL,			NULL		}, /* 4902 */
-	{ 0,	0,	NULL,			NULL		}, /* 4903 */
-	{ 0,	0,	NULL,			NULL		}, /* 4904 */
-	{ 0,	0,	NULL,			NULL		}, /* 4905 */
-	{ 0,	0,	NULL,			NULL		}, /* 4906 */
-	{ 0,	0,	NULL,			NULL		}, /* 4907 */
-	{ 0,	0,	NULL,			NULL		}, /* 4908 */
-	{ 0,	0,	NULL,			NULL		}, /* 4909 */
-	{ 0,	0,	NULL,			NULL		}, /* 4910 */
-	{ 0,	0,	NULL,			NULL		}, /* 4911 */
-	{ 0,	0,	NULL,			NULL		}, /* 4912 */
-	{ 0,	0,	NULL,			NULL		}, /* 4913 */
-	{ 0,	0,	NULL,			NULL		}, /* 4914 */
-	{ 0,	0,	NULL,			NULL		}, /* 4915 */
-	{ 0,	0,	NULL,			NULL		}, /* 4916 */
-	{ 0,	0,	NULL,			NULL		}, /* 4917 */
-	{ 0,	0,	NULL,			NULL		}, /* 4918 */
-	{ 0,	0,	NULL,			NULL		}, /* 4919 */
-	{ 0,	0,	NULL,			NULL		}, /* 4920 */
-	{ 0,	0,	NULL,			NULL		}, /* 4921 */
-	{ 0,	0,	NULL,			NULL		}, /* 4922 */
-	{ 0,	0,	NULL,			NULL		}, /* 4923 */
-	{ 0,	0,	NULL,			NULL		}, /* 4924 */
-	{ 0,	0,	NULL,			NULL		}, /* 4925 */
-	{ 0,	0,	NULL,			NULL		}, /* 4926 */
-	{ 0,	0,	NULL,			NULL		}, /* 4927 */
-	{ 0,	0,	NULL,			NULL		}, /* 4928 */
-	{ 0,	0,	NULL,			NULL		}, /* 4929 */
-	{ 0,	0,	NULL,			NULL		}, /* 4930 */
-	{ 0,	0,	NULL,			NULL		}, /* 4931 */
-	{ 0,	0,	NULL,			NULL		}, /* 4932 */
-	{ 0,	0,	NULL,			NULL		}, /* 4933 */
-	{ 0,	0,	NULL,			NULL		}, /* 4934 */
-	{ 0,	0,	NULL,			NULL		}, /* 4935 */
-	{ 0,	0,	NULL,			NULL		}, /* 4936 */
-	{ 0,	0,	NULL,			NULL		}, /* 4937 */
-	{ 0,	0,	NULL,			NULL		}, /* 4938 */
-	{ 0,	0,	NULL,			NULL		}, /* 4939 */
-	{ 0,	0,	NULL,			NULL		}, /* 4940 */
-	{ 0,	0,	NULL,			NULL		}, /* 4941 */
-	{ 0,	0,	NULL,			NULL		}, /* 4942 */
-	{ 0,	0,	NULL,			NULL		}, /* 4943 */
-	{ 0,	0,	NULL,			NULL		}, /* 4944 */
-	{ 0,	0,	NULL,			NULL		}, /* 4945 */
-	{ 0,	0,	NULL,			NULL		}, /* 4946 */
-	{ 0,	0,	NULL,			NULL		}, /* 4947 */
-	{ 0,	0,	NULL,			NULL		}, /* 4948 */
-	{ 0,	0,	NULL,			NULL		}, /* 4949 */
-	{ 0,	0,	NULL,			NULL		}, /* 4950 */
-	{ 0,	0,	NULL,			NULL		}, /* 4951 */
-	{ 0,	0,	NULL,			NULL		}, /* 4952 */
-	{ 0,	0,	NULL,			NULL		}, /* 4953 */
-	{ 0,	0,	NULL,			NULL		}, /* 4954 */
-	{ 0,	0,	NULL,			NULL		}, /* 4955 */
-	{ 0,	0,	NULL,			NULL		}, /* 4956 */
-	{ 0,	0,	NULL,			NULL		}, /* 4957 */
-	{ 0,	0,	NULL,			NULL		}, /* 4958 */
-	{ 0,	0,	NULL,			NULL		}, /* 4959 */
-	{ 0,	0,	NULL,			NULL		}, /* 4960 */
-	{ 0,	0,	NULL,			NULL		}, /* 4961 */
-	{ 0,	0,	NULL,			NULL		}, /* 4962 */
-	{ 0,	0,	NULL,			NULL		}, /* 4963 */
-	{ 0,	0,	NULL,			NULL		}, /* 4964 */
-	{ 0,	0,	NULL,			NULL		}, /* 4965 */
-	{ 0,	0,	NULL,			NULL		}, /* 4966 */
-	{ 0,	0,	NULL,			NULL		}, /* 4967 */
-	{ 0,	0,	NULL,			NULL		}, /* 4968 */
-	{ 0,	0,	NULL,			NULL		}, /* 4969 */
-	{ 0,	0,	NULL,			NULL		}, /* 4970 */
-	{ 0,	0,	NULL,			NULL		}, /* 4971 */
-	{ 0,	0,	NULL,			NULL		}, /* 4972 */
-	{ 0,	0,	NULL,			NULL		}, /* 4973 */
-	{ 0,	0,	NULL,			NULL		}, /* 4974 */
-	{ 0,	0,	NULL,			NULL		}, /* 4975 */
-	{ 0,	0,	NULL,			NULL		}, /* 4976 */
-	{ 0,	0,	NULL,			NULL		}, /* 4977 */
-	{ 0,	0,	NULL,			NULL		}, /* 4978 */
-	{ 0,	0,	NULL,			NULL		}, /* 4979 */
-	{ 0,	0,	NULL,			NULL		}, /* 4980 */
-	{ 0,	0,	NULL,			NULL		}, /* 4981 */
-	{ 0,	0,	NULL,			NULL		}, /* 4982 */
-	{ 0,	0,	NULL,			NULL		}, /* 4983 */
-	{ 0,	0,	NULL,			NULL		}, /* 4984 */
-	{ 0,	0,	NULL,			NULL		}, /* 4985 */
-	{ 0,	0,	NULL,			NULL		}, /* 4986 */
-	{ 0,	0,	NULL,			NULL		}, /* 4987 */
-	{ 0,	0,	NULL,			NULL		}, /* 4988 */
-	{ 0,	0,	NULL,			NULL		}, /* 4989 */
-	{ 0,	0,	NULL,			NULL		}, /* 4990 */
-	{ 0,	0,	NULL,			NULL		}, /* 4991 */
-	{ 0,	0,	NULL,			NULL		}, /* 4992 */
-	{ 0,	0,	NULL,			NULL		}, /* 4993 */
-	{ 0,	0,	NULL,			NULL		}, /* 4994 */
-	{ 0,	0,	NULL,			NULL		}, /* 4995 */
-	{ 0,	0,	NULL,			NULL		}, /* 4996 */
-	{ 0,	0,	NULL,			NULL		}, /* 4997 */
-	{ 0,	0,	NULL,			NULL		}, /* 4998 */
-	{ 0,	0,	NULL,			NULL		}, /* 4999 */ /* end of Linux o32 */
-#if defined(LINUX_MIPSN64)
-	/* For an N64 strace decode the N64 64-bit syscalls.  */
-	{ 3,	TF,	sys_read,		"read"		}, /* 5000 */ /* start of Linux N64 */
-	{ 3,	TF,	sys_write,		"write"		}, /* 5001 */
-	{ 3,	TF,	sys_open,		"open"		}, /* 5002 */
-	{ 1,	0,	sys_close,		"close"		}, /* 5003 */
-	{ 2,	TF,	sys_stat,		"stat"		}, /* 5004 */
-	{ 2,	0,	sys_fstat,		"fstat"		}, /* 5005 */
-	{ 2,	TF,	sys_lstat,		"lstat"		}, /* 5006 */
-	{ 3,	0,	sys_poll,		"poll"		}, /* 5007 */
-	{ 3,	0,	sys_lseek,		"lseek"		}, /* 5008 */
-	{ 6,	TD,	sys_mmap,		"mmap"		}, /* 5009 */
-	{ 3,	0,	sys_mprotect,		"mprotect"	}, /* 5010 */
-	{ 2,	0,	sys_munmap,		"munmap"	}, /* 5011 */
-	{ 1,	0,	sys_brk,		"brk"		}, /* 5012 */
-	{ 4,	TS,	sys_rt_sigaction,	"rt_sigaction"	}, /* 5013 */
-	{ 4,	TS,	sys_rt_sigprocmask,	"rt_sigprocmask"}, /* 5014 */
-	{ 3,	0,	sys_ioctl,		"ioctl"		}, /* 5015 */
-	{ 6,	TF,	sys_pread,		"pread"		}, /* 5016 */
-	{ 6,	TF,	sys_pwrite,		"pwrite"	}, /* 5017 */
-	{ 3,	0,	sys_readv,		"readv"		}, /* 5018 */
-	{ 3,	0,	sys_writev,		"writev"	}, /* 5019 */
-	{ 2,	TF,	sys_access,		"access"	}, /* 5020 */
-	{ 1,	0,	sys_pipe,		"pipe"		}, /* 5021 */
-	{ 5,	0,	sys_select,		"_newselect"	}, /* 5022 */
-	{ 0,	0,	sys_sched_yield,	"sched_yield"	}, /* 5023 */
-	{ 5,	0,	sys_mremap,		"mremap"	}, /* 5024 */
-	{ 3,	0,	sys_msync,		"msync"		}, /* 5025 */
-	{ 3,	0,	sys_mincore,		"mincore"	}, /* 5026 */
-	{ 3,	0,	sys_madvise,		"madvise"	}, /* 5027 */
-	{ 3,	TI,	sys_shmget,		"shmget"	}, /* 5028 */
-	{ 3,	TI,	sys_shmat,		"shmgat"	}, /* 5029 */
-	{ 3,	TI,	sys_shmctl,		"shmctl"	}, /* 5030 */
-	{ 1,	0,	sys_dup,		"dup"		}, /* 5031 */
-	{ 2,	0,	sys_dup2,		"dup2"		}, /* 5032 */
-	{ 0,	TS,	sys_pause,		"pause"		}, /* 5033 */
-	{ 2,	0,	sys_nanosleep,		"nanosleep"	}, /* 5034 */
-	{ 2,	0,	sys_getitimer,		"getitimer"	}, /* 5035 */
-	{ 3,	0,	sys_setitimer,		"setitimer"	}, /* 5036 */
-	{ 1,	0,	sys_alarm,		"alarm"		}, /* 5037 */
-	{ 0,	0,	sys_getpid,		"getpid"	}, /* 5038 */
-	{ 4,	TD|TN,	sys_sendfile,		"sendfile"	}, /* 5039 */
-	{ 2,	0,	sys_socketcall,		"socketcall"	}, /* 5040 */
-	{ 3,	TN,	sys_connect,		"connect"	}, /* 5041 */
-	{ 3,	TN,	sys_accept,		"accept"	}, /* 5042 */
-	{ 6,	TN,	sys_sendto,		"sendto"	}, /* 5043 */
-	{ 6,	TN,	sys_recvfrom,		"recvfrom"	}, /* 5044 */
-	{ 3,	TN,	sys_sendmsg,		"sendmsg"	}, /* 5045 */
-	{ 3,	TN,	sys_recvmsg,		"recvmsg"	}, /* 5046 */
-	{ 2,	TN,	sys_shutdown,		"shutdown"	}, /* 5047 */
-	{ 3,	TN,	sys_bind,		"bind"		}, /* 5048 */
-	{ 2,	TN,	sys_listen,		"listen"	}, /* 5049 */
-	{ 3,	TN,	sys_getsockname,	"getsockname"	}, /* 5050 */
-	{ 3,	TN,	sys_getpeername,	"getpeername"	}, /* 5051 */
-	{ 4,	TN,	sys_socketpair,		"socketpair"	}, /* 5052 */
-	{ 5,	TN,	sys_setsockopt,		"setsockopt"	}, /* 5053 */
-	{ 5,	TN,	sys_getsockopt,		"getsockopt"	}, /* 5054 */
-	{ 2,	TP,	sys_clone,		"clone"		}, /* 5055 */
-	{ 0,	TP,	sys_fork,		"fork"		}, /* 5056 */
-	{ 3,	TF|TP,	sys_execve,		"execve"	}, /* 5057 */
-	{ 1,	TP,	sys_exit,		"exit"		}, /* 5058 */
-	{ 4,	TP,	sys_wait4,		"wait4"		}, /* 5059 */
-	{ 2,	TS,	sys_kill,		"kill"		}, /* 5060 */
-	{ 1,	0,	sys_uname,		"uname"		}, /* 5061 */
-	{ 3,	TI,	sys_semget,		"semget"	}, /* 5062 */
-	{ 3,	TI,	printargs,		"semop"		}, /* 5063 */
-	{ 4,	TI,	sys_semctl,		"semctl"	}, /* 5064 */
-	{ 1,	TI,	sys_shmdt,		"shmdt"		}, /* 5065 */
-	{ 2,	TI,	sys_msgget,		"msgget"	}, /* 5066 */
-	{ 4,	TI,	sys_msgsnd,		"msgsnd"	}, /* 5067 */
-	{ 5,	TI,	sys_msgrcv,		"msgrcv"	}, /* 5068 */
-	{ 3,	TI,	sys_msgctl,		"msgctl"	}, /* 5069 */
-	{ 3,	0,	sys_fcntl,		"fcntl"		}, /* 5070 */
-	{ 2,	0,	sys_flock,		"flock"		}, /* 5071 */
-	{ 1,	TD,	sys_fsync,		"fsync"		}, /* 5072 */
-	{ 1,	0,	sys_fdatasync,		"fdatasync"	}, /* 5073 */
-	{ 2,	TF,	sys_truncate,		"truncate"	}, /* 5074 */
-	{ 2,	0,	sys_ftruncate,		"ftruncate"	}, /* 5075 */
-	{ 3,	0,	sys_getdents,		"getdents"	}, /* 5076 */
-	{ 2,	TF,	sys_getcwd,		"getcwd"	}, /* 5077 */
-	{ 1,	TF,	sys_chdir,		"chdir"		}, /* 5078 */
-	{ 1,	TF,	sys_fchdir,		"fchdir"	}, /* 5079 */
-	{ 2,	TF,	sys_rename,		"rename"	}, /* 5080 */
-	{ 2,	TF,	sys_mkdir,		"mkdir"		}, /* 5081 */
-	{ 1,	TF,	sys_rmdir,		"rmdir"		}, /* 5082 */
-	{ 2,	TF,	sys_creat,		"creat"		}, /* 5083 */
-	{ 2,	TF,	sys_link,		"link"		}, /* 5084 */
-	{ 1,	TF,	sys_unlink,		"unlink"	}, /* 5085 */
-	{ 2,	TF,	sys_symlink,		"symlink"	}, /* 5086 */
-	{ 3,	TF,	sys_readlink,		"readlink"	}, /* 5087 */
-	{ 2,	TF,	sys_chmod,		"chmod"		}, /* 5088 */
-	{ 2,	0,	sys_fchmod,		"fchmod"	}, /* 5089 */
-	{ 3,	TF,	sys_chown,		"chown"		}, /* 5090 */
-	{ 3,	0,	sys_fchown,		"fchown"	}, /* 5091 */
-	{ 3,	TF,	sys_chown,		"lchown"	}, /* 5092 */
-	{ 1,	0,	sys_umask,		"umask"		}, /* 5093 */
-	{ 2,	0,	sys_gettimeofday,	"gettimeofday"	}, /* 5094 */
-	{ 2,	0,	sys_getrlimit,		"getrlimit"	}, /* 5095 */
-	{ 2,	0,	sys_getrusage,		"getrusage"	}, /* 5096 */
-	{ 1,	0,	sys_sysinfo,		"sysinfo"	}, /* 5097 */
-	{ 1,	0,	sys_times,		"times"		}, /* 5098 */
-	{ 4,	0,	sys_ptrace,		"ptrace"	}, /* 5099 */
-	{ 0,	NF,	sys_getuid,		"getuid"	}, /* 5100 */
-	{ 3,	0,	sys_syslog,		"syslog"	}, /* 5101 */
-	{ 0,	NF,	sys_getgid,		"getgid"	}, /* 5102 */
-	{ 1,	0,	sys_setuid,		"setuid"	}, /* 5103 */
-	{ 1,	0,	sys_setgid,		"setgid"	}, /* 5104 */
-	{ 0,	NF,	sys_geteuid,		"geteuid"	}, /* 5105 */
-	{ 0,	NF,	sys_getegid,		"getegid"	}, /* 5106 */
-	{ 2,	0,	sys_setpgid,		"setpgid"	}, /* 5107 */
-	{ 0,	0,	sys_getppid,		"getppid"	}, /* 5108 */
-	{ 0,	0,	sys_getpgrp,		"getpgrp"	}, /* 5109 */
-	{ 0,	0,	sys_setsid,		"setsid"	}, /* 5110 */
-	{ 2,	0,	sys_setreuid,		"setreuid"	}, /* 5111 */
-	{ 2,	0,	sys_setregid,		"setregid"	}, /* 5112 */
-	{ 2,	0,	sys_getgroups,		"getgroups"	}, /* 5113 */
-	{ 2,	0,	sys_setgroups,		"setgroups"	}, /* 5114 */
-	{ 3,	0,	sys_setresuid,		"setresuid"	}, /* 5115 */
-	{ 3,	0,	sys_getresuid,		"getresuid"	}, /* 5116 */
-	{ 3,	0,	sys_setresgid,		"setresgid"	}, /* 5117 */
-	{ 3,	0,	sys_getresgid,		"getresgid"	}, /* 5118 */
-	{ 0,	0,	sys_getpgid,		"getpgid"	}, /* 5119 */
-	{ 1,	NF,	sys_setfsuid,		"setfsuid"	}, /* 5120 */
-	{ 1,	NF,	sys_setfsgid,		"setfsgid"	}, /* 5121 */
-	{ 1,	0,	sys_getsid,		"getsid"	}, /* 5122 */
-	{ 2,	0,	sys_capget,		"capget"	}, /* 5123 */
-	{ 2,	0,	sys_capset,		"capset"	}, /* 5124 */
-	{ 2,	TS,	sys_rt_sigpending,	"rt_sigpending"	}, /* 5125 */
-	{ 4,	TS,	sys_rt_sigtimedwait,	"rt_sigtimedwait"},/* 5126 */
-	{ 3,	TS,	sys_rt_sigqueueinfo,	"rt_sigqueueinfo"},/* 5127 */
-	{ 2,	TS,	sys_rt_sigsuspend,	"rt_siguspend"	}, /* 5128 */
-	{ 2,	TS,	sys_sigaltstack,	"sigaltstatck"	}, /* 5129 */
-	{ 2,	TF,	sys_utime,		"utime"		}, /* 5130 */
-	{ 3,	TF,	sys_mknod,		"mknod"		}, /* 5131 */
-	{ 1,	0,	sys_personality,	"personality"	}, /* 5132 */
-	{ 2,	0,	sys_ustat,		"ustat"		}, /* 5133 */
-	{ 3,	0,	sys_statfs,		"statfs"	}, /* 5134 */
-	{ 3,	0,	sys_fstatfs,		"fstatfs"	}, /* 5135 */
-	{ 5,	0,	sys_sysfs,		"sysfs"		}, /* 5136 */
-	{ 2,	0,	sys_getpriority,	"getpriority"	}, /* 5137 */
-	{ 3,	0,	sys_setpriority,	"setpriority"	}, /* 5138 */
-	{ 2,	0,	sys_sched_setparam,	"sched_setparam"}, /* 5139 */
-	{ 2,	0,	sys_sched_getparam,	"sched_getparam"}, /* 5140 */
-	{ 3,	0,	sys_sched_setscheduler,	"sched_setscheduler"}, /* 5141 */
-	{ 1,	0,	sys_sched_getscheduler,	"sched_getscheduler"}, /* 5142 */
-	{ 1,	0,	sys_sched_get_priority_max,"sched_get_priority_max"}, /* 5143 */
-	{ 1,	0,	sys_sched_get_priority_min,"sched_get_priority_min"}, /* 5144 */
-	{ 2,	0,	sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 5145 */
-	{ 2,	0,	sys_mlock,		"mlock"		}, /* 5146 */
-	{ 2,	0,	sys_munlock,		"munlock"	}, /* 5147 */
-	{ 1,	0,	sys_mlockall,		"mlockall"	}, /* 5148 */
-	{ 0,	0,	sys_munlockall,		"munlockall"	}, /* 5149 */
-	{ 0,	0,	sys_vhangup,		"vhangup"	}, /* 5150 */
-	{ 2,	0,	sys_pivotroot,		"pivot_root"	}, /* 5151 */
-	{ 1,	0,	sys_sysctl,		"_sysctl"	}, /* 5152 */
-	{ 5,	0,	sys_prctl,		"prctl"		}, /* 5153 */
-	{ 1,	0,	sys_adjtimex,		"adjtimex"	}, /* 5154 */
-	{ 2,	0,	sys_setrlimit,		"setrlimit"	}, /* 5155 */
-	{ 1,	TF,	sys_chroot,		"chroot"	}, /* 5156 */
-	{ 0,	0,	sys_sync,		"sync"		}, /* 5157 */
-	{ 1,	TF,	sys_acct,		"acct"		}, /* 5158 */
-	{ 2,	0,	sys_settimeofday,	"settimeofday"	}, /* 5159 */
-	{ 5,	TF,	sys_mount,		"mount"		}, /* 5160 */
-	{ 2,	TF,	sys_umount2,		"umount"	}, /* 5161 */
-	{ 2,	TF,	sys_swapon,		"swapon"	}, /* 5162 */
-	{ 1,	TF,	sys_swapoff,		"swapoff"	}, /* 5163 */
-	{ 4,	0,	sys_reboot,		"reboot"	}, /* 5164 */
-	{ 2,	0,	sys_sethostname,	"sethostname"	}, /* 5165 */
-	{ 2,	0,	sys_setdomainname,	"setdomainname"	}, /* 5166 */
-	{ 2,	0,	sys_create_module,	"create_module"	}, /* 5167 */
-	{ 4,	0,	sys_init_module,	"init_module"	}, /* 5168 */
-	{ 1,	0,	sys_delete_module,	"delete_module"	}, /* 5169 */
-	{ 1,	0,	sys_get_kernel_syms,	"get_kernel_syms"}, /* 5170 */
-	{ 5,	0,	sys_query_module,	"query_module"	}, /* 5171 */
-	{ 4,	0,	sys_quotactl,		"quotactl"	}, /* 5172 */
-	{ 3,	0,	sys_nfsservctl,		"nfsservctl"	}, /* 5173 */
-	{ 5,	TN,	printargs,		"getpmsg"	}, /* 5174 */
-	{ 5,	TN,	printargs,		"putpmsg"	}, /* 5175 */
-	{ 0,	0,	sys_afs_syscall,	"afs_syscall"	}, /* 5176 */
-	{ 0,	0,	printargs,		"reserved177"	}, /* 5177 */
-	{ 0,	0,	sys_gettid,		"gettid"	}, /* 5178 */
-	{ 3,	0,	sys_readahead,		"readahead"	}, /* 5179 */
-	{ 5,	0,	sys_setxattr,		"setxattr"	}, /* 5180 */
-	{ 5,	0,	sys_setxattr,		"lsetxattr"	}, /* 5181 */
-	{ 5,	0,	sys_fsetxattr,		"fsetxattr"	}, /* 5182 */
-	{ 4,	0,	sys_getxattr,		"getxattr"	}, /* 5183 */
-	{ 4,	0,	sys_getxattr,		"lgetxattr"	}, /* 5184 */
-	{ 4,	TD,	sys_fgetxattr,		"fgetxattr"	}, /* 5185 */
-	{ 3,	0,	sys_listxattr,		"listxattr"	}, /* 5186 */
-	{ 3,	0,	sys_listxattr,		"llistxattr"	}, /* 5187 */
-	{ 3,	TD,	sys_flistxattr,		"flistxattr"	}, /* 5188 */
-	{ 2,	0,	sys_removexattr,	"removexattr"	}, /* 5189 */
-	{ 2,	0,	sys_removexattr,	"lremovexattr"	}, /* 5190 */
-	{ 2,	TD,	sys_fremovexattr,	"fremovexattr"	}, /* 5191 */
-	{ 2,	TS,	sys_kill,		"tkill"		}, /* 5192 */
-	{ 1,	0,	sys_time,		"time"		}, /* 5193 */
-	{ 6,	0,	sys_futex,		"futex"		}, /* 5194 */
-	{ 3,	0,	sys_sched_setaffinity,	"sched_setaffinity"}, /* 5195 */
-	{ 3,	0,	sys_sched_getaffinity,	"sched_getaffinity"}, /* 5196 */
-	{ 3,	0,	printargs,		"cacheflush"	}, /* 5197 */
-	{ 3,	0,	printargs,		"cachectl"	}, /* 5198 */
-	{ 4,	0,	sys_sysmips,		"sysmips"	}, /* 5199 */
-	{ 2,	0,	sys_io_setup,		"io_setup"	}, /* 5200 */
-	{ 1,	0,	sys_io_destroy,		"io_destroy"	}, /* 5201 */
-	{ 5,	0,	sys_io_getevents,	"io_getevents"	}, /* 5202 */
-	{ 3,	0,	sys_io_submit,		"io_submit"	}, /* 5203 */
-	{ 3,	0,	sys_io_cancel,		"io_cancel"	}, /* 5204 */
-	{ 1,	TP,	sys_exit,		"exit_group"	}, /* 5205 */
-	{ 3,	0,	sys_lookup_dcookie,	"lookup_dcookie" }, /* 5206 */
-	{ 1,	TD,	sys_epoll_create,	"epoll_create"	}, /* 5207 */
-	{ 4,	TD,	sys_epoll_ctl,		"epoll_ctl"	}, /* 5208 */
-	{ 4,	TD,	sys_epoll_wait,		"epoll_wait"	}, /* 5209 */
-	{ 5,	0,	sys_remap_file_pages,	"remap_file_pages" }, /* 5210 */
-	{ 0,	TS,	sys_rt_sigreturn,	"rt_sigreturn"	}, /* 5211 */
-	{ 1,	0,	sys_set_tid_address,	"set_tid_address" }, /* 5212 */
-	{ 0,	0,	sys_restart_syscall,	"restart_syscall" }, /* 5213 */
-	{ 5,	TI,	sys_semtimedop,		"semtimedop"	}, /* 5214 */
-	{ 4,	TD,	sys_fadvise64_64,	"fadvise64_64"	}, /* 5215 */
-	{ 3,	0,	sys_timer_create,	"timer_create"	}, /* 5216 */
-	{ 4,	0,	sys_timer_settime,	"timer_settime"	}, /* 5217 */
-	{ 2,	0,	sys_timer_gettime,	"timer_gettime"	}, /* 5218 */
-	{ 1,	0,	sys_timer_getoverrun,	"timer_getoverrun"}, /* 5219 */
-	{ 1,	0,	sys_timer_delete,	"timer_delete"	}, /* 5220 */
-	{ 2,	0,	sys_clock_settime,	"clock_settime"	}, /* 5221 */
-	{ 2,	0,	sys_clock_gettime,	"clock_gettime"	}, /* 5222 */
-	{ 2,	0,	sys_clock_getres,	"clock_getres"	}, /* 5223 */
-	{ 4,	0,	sys_clock_nanosleep,	"clock_nanosleep"}, /* 5224 */
-	{ 3,	TS,	sys_tgkill,		"tgkill"	}, /* 5225 */
-	{ 2,	TF,	sys_utimes,		"utimes"	}, /* 5226 */
-	{ 6,	0,	sys_mbind,		"mbind"		}, /* 5227 */
-	{ 0,	0,	NULL,			NULL		}, /* 5228 */
-	{ 0,	0,	NULL,			NULL		}, /* 5229 */
-	{ 4,	0,	sys_mq_open,		"mq_open"	}, /* 5230 */
-	{ 1,	0,	sys_mq_unlink,		"mq_unlink"	}, /* 5231 */
-	{ 5,	0,	sys_mq_timedsend,	"mq_timedsend"	}, /* 5232 */
-	{ 5,	0,	sys_mq_timedreceive,	"mq_timedreceive" }, /* 5233 */
-	{ 2,	0,	sys_mq_notify,		"mq_notify"	}, /* 5234 */
-	{ 3,	0,	sys_mq_getsetattr,	"mq_getsetattr"	}, /* 5235 */
-	{ 0,	0,	NULL,			NULL		}, /* 5236 */
-	{ 5,	TP,	sys_waitid,		"waitid"	}, /* 5237 */
-	{ 0,	0,	NULL,			NULL		}, /* 5238 */
-	{ 5,	0,	sys_add_key,		"add_key"	}, /* 5239 */
-	{ 4,	0,	sys_request_key,	"request_key"	}, /* 5230 */
-	{ 5,	0,	sys_keyctl,		"keyctl"	}, /* 5241 */
-	{ 1,	0,	sys_set_thread_area,	"set_thread_area" }, /* 5242 */
-	{ 0,	TD,	sys_inotify_init,	"inotify_init"	}, /* 5243 */
-	{ 3,	TD,	sys_inotify_add_watch,	"inotify_add_watch" }, /* 5244 */
-	{ 2,	TD,	sys_inotify_rm_watch,	"inotify_rm_watch" }, /* 5245 */
-	{ 4,	0,	sys_migrate_pages,	"migrate_pages"	}, /* 5246 */
-	{ 4,	TD|TF,	sys_openat,		"openat"	}, /* 5247 */
-	{ 3,	TD|TF,	sys_mkdirat,		"mkdirat"	}, /* 5248 */
-	{ 4,	TD|TF,	sys_mknodat,		"mknodat"	}, /* 5249 */
-	{ 5,	TD|TF,	sys_fchownat,		"fchownat"	}, /* 5250 */
-	{ 3,	TD|TF,	sys_futimesat,		"futimesat"	}, /* 5251 */
-	{ 4,	TD|TF,	sys_newfstatat,		"newfstatat"	}, /* 5252 */
-	{ 3,	TD|TF,	sys_unlinkat,		"unlinkat"	}, /* 5253 */
-	{ 4,	TD|TF,	sys_renameat,		"renameat"	}, /* 5254 */
-	{ 5,	TD|TF,	sys_linkat,		"linkat"	}, /* 5255 */
-	{ 3,	TD|TF,	sys_symlinkat,		"symlinkat"	}, /* 5256 */
-	{ 4,	TD|TF,	sys_readlinkat,		"readlinkat"	}, /* 5257 */
-	{ 3,	TD|TF,	sys_fchmodat,		"fchmodat"	}, /* 5258 */
-	{ 3,	TD|TF,	sys_faccessat,		"faccessat"	}, /* 5259 */
-	{ 6,	TD,	sys_pselect6,		"pselect6"	}, /* 5260 */
-	{ 5,	TD,	sys_ppoll,		"ppoll"		}, /* 5261 */
-	{ 1,	TP,	sys_unshare,		"unshare"	}, /* 5262 */
-	{ 6,	TD,	sys_splice,		"splice"	}, /* 5263 */
-	{ 4,	TD,	sys_sync_file_range,	"sync_file_range" }, /* 5264 */
-	{ 4,	TD,	sys_tee,		"tee"		}, /* 5265 */
-	{ 4,	TD,	sys_vmsplice,		"vmsplice"	}, /* 5266 */
-	{ 6,	0,	printargs,		"move_pages"	}, /* 5267 */
-	{ 2,	0,	sys_set_robust_list,	"set_robust_list" }, /* 5268 */
-	{ 3,	0,	sys_get_robust_list,	"get_robust_list" }, /* 5269 */
-	{ 4,	0,	sys_kexec_load,		"kexec_load"	}, /* 5270 */
-	{ 3,	0,	sys_getcpu,		"getcpu"	}, /* 5271 */
-	{ 6,	TD,	sys_epoll_pwait,	"epoll_pwait"	}, /* 5272 */
-	{ 3,	0,	sys_ioprio_set,		"ioprio_set"	}, /* 5273 */
-	{ 2,	0,	sys_ioprio_get,		"ioprio_get"	}, /* 5274 */
-	{ 4,	TD|TF,	sys_utimensat,		"utimensat"	}, /* 5275 */
-	{ 3,	TD|TS,	sys_signalfd,		"signalfd"	}, /* 5276 */
-	{ 0,	0,	NULL,			NULL		}, /* 5277 */
-	{ 1,	TD,	sys_eventfd,		"eventfd"	}, /* 5278 */
-	{ 6,	TD,	sys_fallocate,		"fallocate"	}, /* 5279 */
-	{ 2,	TD,	sys_timerfd_create,	"timerfd_create" }, /* 5280 */
-	{ 2,	TD,	sys_timerfd_gettime,	"timerfd_gettime" }, /* 5281 */
-	{ 4,	TD,	sys_timerfd_settime,	"timerfd_settime" }, /* 5282 */
-	{ 4,	TD|TS,	sys_signalfd4,		"signalfd4"	}, /* 5283 */
-	{ 2,	TD,	sys_eventfd2,		"eventfd2"	}, /* 5284 */
-	{ 1,	TD,	sys_epoll_create1,	"epoll_create1"	}, /* 5285 */
-	{ 3,	TD,	sys_dup3,		"dup3"		}, /* 5286 */
-	{ 2,	TD,	sys_pipe2,		"pipe2"		}, /* 5287 */
-	{ 1,	TD,	sys_inotify_init1,	"inotify_init1"	}, /* 5288 */
-	{ 5,	TD,	sys_preadv,		"preadv"	}, /* 5289 */
-	{ 5,	TD,	sys_pwritev,		"pwritev"	}, /* 5290 */
-	{ 4,	TP|TS,	sys_rt_tgsigqueueinfo,	"rt_tgsigqueueinfo" }, /* 5291 */
-	{ 5,	TD,	sys_perf_event_open,	"perf_event_open" }, /* 5292 */
-	{ 4,	TN,	sys_accept4,		"accept4"	}, /* 5293 */
-	{ 5,	TN,	sys_recvmmsg,		"recvmmsg"	}, /* 5294 */
-	{ 2,	TD,	sys_fanotify_init,	"fanotify_init"	}, /* 5295 */
-	{ 5,	TD|TF,	sys_fanotify_mark,	"fanotify_mark"	}, /* 5296 */
-	{ 4,	0,	sys_prlimit64,		"prlimit64"	}, /* 5297 */
-	{ 5,	TD|TF,	sys_name_to_handle_at,	"name_to_handle_at"}, /* 5298 */
-	{ 3,	TD,	sys_open_by_handle_at,	"open_by_handle_at"}, /* 5299 */
-	{ 2,	0,	sys_clock_adjtime,	"clock_adjtime"	}, /* 5300 */
-	{ 1,	TD,	sys_syncfs,		"syncfs"	}, /* 5301 */
-	{ 4,	TN,	sys_sendmmsg,		"sendmmsg"	}, /* 5302 */
-	{ 2,	TD,	sys_setns,		"setns"		}, /* 5303 */
-	{ 6,	0,	sys_process_vm_readv,	"process_vm_readv"	}, /* 5304 */
-	{ 6,	0,	sys_process_vm_writev,	"process_vm_writev"	}, /* 5305 */
-#else
-	{ 0,	0,	printargs,		"n64_read"		}, /* 5000 */
-	{ 0,	0,	printargs,		"n64_write"		}, /* 5001 */
-	{ 0,	0,	printargs,		"n64_open"		}, /* 5002 */
-	{ 0,	0,	printargs,		"n64_close"		}, /* 5003 */
-	{ 0,	0,	printargs,		"n64_stat"		}, /* 5004 */
-	{ 0,	0,	printargs,		"n64_fstat"		}, /* 5005 */
-	{ 0,	0,	printargs,		"n64_lstat"		}, /* 5006 */
-	{ 0,	0,	printargs,		"n64_poll"		}, /* 5007 */
-	{ 0,	0,	printargs,		"n64_lseek"		}, /* 5008 */
-	{ 0,	0,	printargs,		"n64_mmap"		}, /* 5009 */
-	{ 0,	0,	printargs,		"n64_mprotect"		}, /* 5010 */
-	{ 0,	0,	printargs,		"n64_munmap"		}, /* 5011 */
-	{ 0,	0,	printargs,		"n64_brk"		}, /* 5012 */
-	{ 0,	0,	printargs,		"n64_rt_sigaction"	}, /* 5013 */
-	{ 0,	0,	printargs,		"n64_rt_sigprocmask"	}, /* 5014 */
-	{ 0,	0,	printargs,		"n64_ioctl"		}, /* 5015 */
-	{ 0,	0,	printargs,		"n64_pread"		}, /* 5016 */
-	{ 0,	0,	printargs,		"n64_pwrite"		}, /* 5017 */
-	{ 0,	0,	printargs,		"n64_readv"		}, /* 5018 */
-	{ 0,	0,	printargs,		"n64_writev"		}, /* 5019 */
-	{ 0,	0,	printargs,		"n64_access"		}, /* 5020 */
-	{ 0,	0,	printargs,		"n64_pipe"		}, /* 5021 */
-	{ 0,	0,	printargs,		"n64__newselect"	}, /* 5022 */
-	{ 0,	0,	printargs,		"n64_sched_yield"	}, /* 5023 */
-	{ 0,	0,	printargs,		"n64_mremap"		}, /* 5024 */
-	{ 0,	0,	printargs,		"n64_msync"		}, /* 5025 */
-	{ 0,	0,	printargs,		"n64_mincore"		}, /* 5026 */
-	{ 0,	0,	printargs,		"n64_madvise"		}, /* 5027 */
-	{ 0,	0,	printargs,		"n64_shmget"		}, /* 5028 */
-	{ 0,	0,	printargs,		"n64_shmgat"		}, /* 5029 */
-	{ 0,	0,	printargs,		"n64_shmctl"		}, /* 5030 */
-	{ 0,	0,	printargs,		"n64_dup"		}, /* 5031 */
-	{ 0,	0,	printargs,		"n64_dup2"		}, /* 5032 */
-	{ 0,	0,	printargs,		"n64_pause"		}, /* 5033 */
-	{ 0,	0,	printargs,		"n64_nanosleep"		}, /* 5034 */
-	{ 0,	0,	printargs,		"n64_getitimer"		}, /* 5035 */
-	{ 0,	0,	printargs,		"n64_setitimer"		}, /* 5036 */
-	{ 0,	0,	printargs,		"n64_alarm"		}, /* 5037 */
-	{ 0,	0,	printargs,		"n64_getpid"		}, /* 5038 */
-	{ 0,	0,	printargs,		"n64_sendfile"		}, /* 5039 */
-	{ 0,	0,	printargs,		"n64_socketcall"	}, /* 5040 */
-	{ 0,	0,	printargs,		"n64_connect"		}, /* 5041 */
-	{ 0,	0,	printargs,		"n64_accept"		}, /* 5042 */
-	{ 0,	0,	printargs,		"n64_sendto"		}, /* 5043 */
-	{ 0,	0,	printargs,		"n64_recvfrom"		}, /* 5044 */
-	{ 0,	0,	printargs,		"n64_sendmsg"		}, /* 5045 */
-	{ 0,	0,	printargs,		"n64_recvmsg"		}, /* 5046 */
-	{ 0,	0,	printargs,		"n64_shutdown"		}, /* 5047 */
-	{ 0,	0,	printargs,		"n64_bind"		}, /* 5048 */
-	{ 0,	0,	printargs,		"n64_listen"		}, /* 5049 */
-	{ 0,	0,	printargs,		"n64_getsockname"	}, /* 5050 */
-	{ 0,	0,	printargs,		"n64_getpeername"	}, /* 5051 */
-	{ 0,	0,	printargs,		"n64_socketpair"	}, /* 5052 */
-	{ 0,	0,	printargs,		"n64_setsockopt"	}, /* 5053 */
-	{ 0,	0,	printargs,		"n64_getsockopt"	}, /* 5054 */
-	{ 0,	0,	printargs,		"n64_clone"		}, /* 5055 */
-	{ 0,	0,	printargs,		"n64_fork"		}, /* 5056 */
-	{ 0,	0,	printargs,		"n64_execve"		}, /* 5057 */
-	{ 0,	0,	printargs,		"n64_exit"		}, /* 5058 */
-	{ 0,	0,	printargs,		"n64_wait4"		}, /* 5059 */
-	{ 0,	0,	printargs,		"n64_kill"		}, /* 5060 */
-	{ 0,	0,	printargs,		"n64_uname"		}, /* 5061 */
-	{ 0,	0,	printargs,		"n64_semget"		}, /* 5062 */
-	{ 0,	0,	printargs,		"n64_semop"		}, /* 5063 */
-	{ 0,	0,	printargs,		"n64_semctl"		}, /* 5064 */
-	{ 0,	0,	printargs,		"n64_shmdt"		}, /* 5065 */
-	{ 0,	0,	printargs,		"n64_msgget"		}, /* 5066 */
-	{ 0,	0,	printargs,		"n64_msgsnd"		}, /* 5067 */
-	{ 0,	0,	printargs,		"n64_msgrcv"		}, /* 5068 */
-	{ 0,	0,	printargs,		"n64_msgctl"		}, /* 5069 */
-	{ 0,	0,	printargs,		"n64_fcntl"		}, /* 5070 */
-	{ 0,	0,	printargs,		"n64_flock"		}, /* 5071 */
-	{ 0,	0,	printargs,		"n64_fsync"		}, /* 5072 */
-	{ 0,	0,	printargs,		"n64_fdatasync"		}, /* 5073 */
-	{ 0,	0,	printargs,		"n64_truncate"		}, /* 5074 */
-	{ 0,	0,	printargs,		"n64_ftruncate"		}, /* 5075 */
-	{ 0,	0,	printargs,		"n64_getdents"		}, /* 5076 */
-	{ 0,	0,	printargs,		"n64_getcwd"		}, /* 5077 */
-	{ 0,	0,	printargs,		"n64_chdir"		}, /* 5078 */
-	{ 0,	0,	printargs,		"n64_fchdir"		}, /* 5079 */
-	{ 0,	0,	printargs,		"n64_rename"		}, /* 5080 */
-	{ 0,	0,	printargs,		"n64_mkdir"		}, /* 5081 */
-	{ 0,	0,	printargs,		"n64_rmdir"		}, /* 5082 */
-	{ 0,	0,	printargs,		"n64_creat"		}, /* 5083 */
-	{ 0,	0,	printargs,		"n64_link"		}, /* 5084 */
-	{ 0,	0,	printargs,		"n64_unlink"		}, /* 5085 */
-	{ 0,	0,	printargs,		"n64_symlink"		}, /* 5086 */
-	{ 0,	0,	printargs,		"n64_readlink"		}, /* 5087 */
-	{ 0,	0,	printargs,		"n64_chmod"		}, /* 5088 */
-	{ 0,	0,	printargs,		"n64_fchmod"		}, /* 5089 */
-	{ 0,	0,	printargs,		"n64_chown"		}, /* 5090 */
-	{ 0,	0,	printargs,		"n64_fchown"		}, /* 5091 */
-	{ 0,	0,	printargs,		"n64_lchown"		}, /* 5092 */
-	{ 0,	0,	printargs,		"n64_umask"		}, /* 5093 */
-	{ 0,	0,	printargs,		"n64_gettimeofday"	}, /* 5094 */
-	{ 0,	0,	printargs,		"n64_getrlimit"		}, /* 5095 */
-	{ 0,	0,	printargs,		"n64_getrusage"		}, /* 5096 */
-	{ 0,	0,	printargs,		"n64_sysinfo"		}, /* 5097 */
-	{ 0,	0,	printargs,		"n64_times"		}, /* 5098 */
-	{ 0,	0,	printargs,		"n64_ptrace"		}, /* 5099 */
-	{ 0,	0,	printargs,		"n64_getuid"		}, /* 5100 */
-	{ 0,	0,	printargs,		"n64_syslog"		}, /* 5101 */
-	{ 0,	0,	printargs,		"n64_getgid"		}, /* 5102 */
-	{ 0,	0,	printargs,		"n64_setuid"		}, /* 5103 */
-	{ 0,	0,	printargs,		"n64_setgid"		}, /* 5104 */
-	{ 0,	0,	printargs,		"n64_geteuid"		}, /* 5105 */
-	{ 0,	0,	printargs,		"n64_getegid"		}, /* 5106 */
-	{ 0,	0,	printargs,		"n64_setpgid"		}, /* 5107 */
-	{ 0,	0,	printargs,		"n64_getppid"		}, /* 5108 */
-	{ 0,	0,	printargs,		"n64_getpgrp"		}, /* 5109 */
-	{ 0,	0,	printargs,		"n64_setsid"		}, /* 5110 */
-	{ 0,	0,	printargs,		"n64_setreuid"		}, /* 5111 */
-	{ 0,	0,	printargs,		"n64_setregid"		}, /* 5112 */
-	{ 0,	0,	printargs,		"n64_getgroups"		}, /* 5113 */
-	{ 0,	0,	printargs,		"n64_setgroups"		}, /* 5114 */
-	{ 0,	0,	printargs,		"n64_setresuid"		}, /* 5115 */
-	{ 0,	0,	printargs,		"n64_getresuid"		}, /* 5116 */
-	{ 0,	0,	printargs,		"n64_setresgid"		}, /* 5117 */
-	{ 0,	0,	printargs,		"n64_getresgid"		}, /* 5118 */
-	{ 0,	0,	printargs,		"n64_getpgid"		}, /* 5119 */
-	{ 0,	0,	printargs,		"n64_setfsuid"		}, /* 5120 */
-	{ 0,	0,	printargs,		"n64_setfsgid"		}, /* 5121 */
-	{ 0,	0,	printargs,		"n64_getsid"		}, /* 5122 */
-	{ 0,	0,	printargs,		"n64_capget"		}, /* 5123 */
-	{ 0,	0,	printargs,		"n64_capset"		}, /* 5124 */
-	{ 0,	0,	printargs,		"n64_rt_sigpending"	}, /* 5125 */
-	{ 0,	0,	printargs,		"n64_rt_sigtimedwait"	}, /* 5126 */
-	{ 0,	0,	printargs,		"n64_rt_sigqueueinfo"	}, /* 5127 */
-	{ 0,	0,	printargs,		"n64_rt_siguspend"	}, /* 5128 */
-	{ 0,	0,	printargs,		"n64_sigaltstatck"	}, /* 5129 */
-	{ 0,	0,	printargs,		"n64_utime"		}, /* 5130 */
-	{ 0,	0,	printargs,		"n64_mknod"		}, /* 5131 */
-	{ 0,	0,	printargs,		"n64_personality"	}, /* 5132 */
-	{ 0,	0,	printargs,		"n64_ustat"		}, /* 5133 */
-	{ 0,	0,	printargs,		"n64_statfs"		}, /* 5134 */
-	{ 0,	0,	printargs,		"n64_fstatfs"		}, /* 5135 */
-	{ 0,	0,	printargs,		"n64_sysfs"		}, /* 5136 */
-	{ 0,	0,	printargs,		"n64_getpriority"	}, /* 5137 */
-	{ 0,	0,	printargs,		"n64_setpriority"	}, /* 5138 */
-	{ 0,	0,	printargs,		"n64_sched_setparam"	}, /* 5139 */
-	{ 0,	0,	printargs,		"n64_sched_getparam"	}, /* 5140 */
-	{ 0,	0,	printargs,		"n64_sched_setscheduler"}, /* 5141 */
-	{ 0,	0,	printargs,		"n64_sched_getscheduler"}, /* 5142 */
-	{ 0,	0,	printargs,		"n64_sched_get_priority_max"}, /* 5143 */
-	{ 0,	0,	printargs,		"n64_sched_get_priority_min"}, /* 5144 */
-	{ 0,	0,	printargs,		"n64_sched_rr_get_interval"}, /* 5145 */
-	{ 0,	0,	printargs,		"n64_mlock"		}, /* 5146 */
-	{ 0,	0,	printargs,		"n64_munlock"		}, /* 5147 */
-	{ 0,	0,	printargs,		"n64_mlockall"		}, /* 5148 */
-	{ 0,	0,	printargs,		"n64_munlockall"	}, /* 5149 */
-	{ 0,	0,	printargs,		"n64_vhangup"		}, /* 5150 */
-	{ 0,	0,	printargs,		"n64_pivot_root"	}, /* 5151 */
-	{ 0,	0,	printargs,		"n64__sysctl"		}, /* 5152 */
-	{ 0,	0,	printargs,		"n64_prctl"		}, /* 5153 */
-	{ 0,	0,	printargs,		"n64_adjtimex"		}, /* 5154 */
-	{ 0,	0,	printargs,		"n64_setrlimit"		}, /* 5155 */
-	{ 0,	0,	printargs,		"n64_chroot"		}, /* 5156 */
-	{ 0,	0,	printargs,		"n64_sync"		}, /* 5157 */
-	{ 0,	0,	printargs,		"n64_acct"		}, /* 5158 */
-	{ 0,	0,	printargs,		"n64_settimeofday"	}, /* 5159 */
-	{ 0,	0,	printargs,		"n64_mount"		}, /* 5160 */
-	{ 0,	0,	printargs,		"n64_umount"		}, /* 5161 */
-	{ 0,	0,	printargs,		"n64_swapon"		}, /* 5162 */
-	{ 0,	0,	printargs,		"n64_swapoff"		}, /* 5163 */
-	{ 0,	0,	printargs,		"n64_reboot"		}, /* 5164 */
-	{ 0,	0,	printargs,		"n64_sethostname"	}, /* 5165 */
-	{ 0,	0,	printargs,		"n64_setdomainname"	}, /* 5166 */
-	{ 0,	0,	printargs,		"n64_create_module"	}, /* 5167 */
-	{ 0,	0,	printargs,		"n64_init_module"	}, /* 5168 */
-	{ 0,	0,	printargs,		"n64_delete_module"	}, /* 5169 */
-	{ 0,	0,	printargs,		"n64_get_kernel_syms"	}, /* 5170 */
-	{ 0,	0,	printargs,		"n64_query_module"	}, /* 5171 */
-	{ 0,	0,	printargs,		"n64_quotactl"		}, /* 5172 */
-	{ 0,	0,	printargs,		"n64_nfsservctl"	}, /* 5173 */
-	{ 0,	0,	printargs,		"n64_getpmsg"		}, /* 5174 */
-	{ 0,	0,	printargs,		"n64_putpmsg"		}, /* 5175 */
-	{ 0,	0,	printargs,		"n64_afs_syscall"	}, /* 5176 */
-	{ 0,	0,	printargs,		"n64_reserved177"	}, /* 5177 */
-	{ 0,	0,	printargs,		"n64_gettid"		}, /* 5178 */
-	{ 0,	0,	printargs,		"n64_readahead"		}, /* 5179 */
-	{ 0,	0,	printargs,		"n64_setxattr"		}, /* 5180 */
-	{ 0,	0,	printargs,		"n64_lsetxattr"		}, /* 5181 */
-	{ 0,	0,	printargs,		"n64_fsetxattr"		}, /* 5182 */
-	{ 0,	0,	printargs,		"n64_getxattr"		}, /* 5183 */
-	{ 0,	0,	printargs,		"n64_lgetxattr"		}, /* 5184 */
-	{ 0,	0,	printargs,		"n64_fgetxattr"		}, /* 5185 */
-	{ 0,	0,	printargs,		"n64_listxattr"		}, /* 5186 */
-	{ 0,	0,	printargs,		"n64_llistxattr"	}, /* 5187 */
-	{ 0,	0,	printargs,		"n64_flistxattr"	}, /* 5188 */
-	{ 0,	0,	printargs,		"n64_removexattr"	}, /* 5189 */
-	{ 0,	0,	printargs,		"n64_lremovexattr"	}, /* 5190 */
-	{ 0,	0,	printargs,		"n64_fremovexattr"	}, /* 5191 */
-	{ 0,	0,	printargs,		"n64_tkill"		}, /* 5192 */
-	{ 0,	0,	printargs,		"n64_time"		}, /* 5193 */
-	{ 0,	0,	printargs,		"n64_futex"		}, /* 5194 */
-	{ 0,	0,	printargs,		"n64_sched_setaffinity"	}, /* 5195 */
-	{ 0,	0,	printargs,		"n64_sched_getaffinity"	}, /* 5196 */
-	{ 0,	0,	printargs,		"n64_cacheflush"	}, /* 5197 */
-	{ 0,	0,	printargs,		"n64_cachectl"		}, /* 5198 */
-	{ 0,	0,	printargs,		"n64_sysmips"		}, /* 5199 */
-	{ 0,	0,	printargs,		"n64_io_setup"		}, /* 5200 */
-	{ 0,	0,	printargs,		"n64_io_destroy"	}, /* 5201 */
-	{ 0,	0,	printargs,		"n64_io_getevents"	}, /* 5202 */
-	{ 0,	0,	printargs,		"n64_io_submit"		}, /* 5203 */
-	{ 0,	0,	printargs,		"n64_io_cancel"		}, /* 5204 */
-	{ 1,	TP,	printargs,		"n64_exit_group"	}, /* 5205 */
-	{ 0,	0,	printargs,		"n64_lookup_dcookie"	}, /* 5206 */
-	{ 0,	0,	printargs,		"n64_epoll_create"	}, /* 5207 */
-	{ 0,	0,	printargs,		"n64_epoll_ctl"		}, /* 5208 */
-	{ 0,	0,	printargs,		"n64_epoll_wait"	}, /* 5209 */
-	{ 0,	0,	printargs,		"n64_remap_file_pages"	}, /* 5210 */
-	{ 0,	0,	printargs,		"n64_rt_sigreturn"	}, /* 5211 */
-	{ 1,	0,	printargs,		"n64_set_tid_address"	}, /* 5212 */
-	{ 0,	0,	printargs,		"n64_restart_syscall"	}, /* 5213 */
-	{ 5,	TI,	printargs,		"n64_semtimedop"	}, /* 5214 */
-	{ 0,	0,	printargs,		"n64_fadvise64_64"	}, /* 5215 */
-	{ 0,	0,	printargs,		"n64_timer_create"	}, /* 5216 */
-	{ 0,	0,	printargs,		"n64_timer_settime"	}, /* 5217 */
-	{ 0,	0,	printargs,		"n64_timer_gettime"	}, /* 5218 */
-	{ 0,	0,	printargs,		"n64_timer_getoverrun"	}, /* 5219 */
-	{ 0,	0,	printargs,		"n64_timer_delete"	}, /* 5220 */
-	{ 0,	0,	printargs,		"n64_clock_settime"	}, /* 5221 */
-	{ 0,	0,	printargs,		"n64_clock_gettime"	}, /* 5222 */
-	{ 0,	0,	printargs,		"n64_clock_getres"	}, /* 5223 */
-	{ 0,	0,	printargs,		"n64_clock_nanosleep"	}, /* 5224 */
-	{ 0,	0,	printargs,		"n64_tgkill"		}, /* 5225 */
-	{ 0,	0,	printargs,		"n64_utimes"		}, /* 5226 */
-	{ 0,	0,	printargs,		"n64_mbind"		}, /* 5227 */
-	{ 0,	0,	printargs,		"n64_SYS_5228"		}, /* 5228 */
-	{ 0,	0,	printargs,		"n64_SYS_5228"		}, /* 5229 */
-	{ 0,	0,	printargs,		"n64_mq_open"		}, /* 5230 */
-	{ 0,	0,	printargs,		"n64_mq_unlink"		}, /* 5231 */
-	{ 0,	0,	printargs,		"n64_mq_timedsend"	}, /* 5232 */
-	{ 0,	0,	printargs,		"n64_mq_timedreceive"	}, /* 5233 */
-	{ 0,	0,	printargs,		"n64_mq_notify"		}, /* 5234 */
-	{ 0,	0,	printargs,		"n64_mq_getsetattr"	}, /* 5235 */
-	{ 0,	0,	printargs,		"n64_SYS_5236"		}, /* 5236 */
-	{ 0,	0,	printargs,		"n64_waitid"		}, /* 5237 */
-	{ 0,	0,	printargs,		"n64_SYS_5238"		}, /* 5238 */
-	{ 0,	0,	printargs,		"n64_add_key"		}, /* 5239 */
-	{ 0,	0,	printargs,		"n64_request_key"	}, /* 5230 */
-	{ 0,	0,	printargs,		"n64_keyctl"		}, /* 5241 */
-	{ 0,	0,	printargs,		"n64_set_thread_area"	}, /* 5242 */
-	{ 0,	0,	printargs,		"n64_inotify_init"	}, /* 5243 */
-	{ 0,	0,	printargs,		"n64_inotify_add_watch" }, /* 5244 */
-	{ 0,	0,	printargs,		"n64_inotify_rm_watch"	}, /* 5245 */
-	{ 0,	0,	printargs,		"n64_migrate_pages"	}, /* 5246 */
-	{ 0,	0,	printargs,		"n64_openat"		}, /* 5247 */
-	{ 0,	0,	printargs,		"n64_mkdirat"		}, /* 5248 */
-	{ 0,	0,	printargs,		"n64_mknodat"		}, /* 5249 */
-	{ 0,	0,	printargs,		"n64_fchownat"		}, /* 5250 */
-	{ 0,	0,	printargs,		"n64_futimesat"		}, /* 5251 */
-	{ 0,	0,	printargs,		"n64_newfstatat"	}, /* 5252 */
-	{ 0,	0,	printargs,		"n64_unlinkat"		}, /* 5253 */
-	{ 0,	0,	printargs,		"n64_renameat"		}, /* 5254 */
-	{ 0,	0,	printargs,		"n64_linkat"		}, /* 5255 */
-	{ 0,	0,	printargs,		"n64_symlinkat"		}, /* 5256 */
-	{ 0,	0,	printargs,		"n64_readlinkat"	}, /* 5257 */
-	{ 0,	0,	printargs,		"n64_fchmodat"		}, /* 5258 */
-	{ 0,	0,	printargs,		"n64_faccessat"		}, /* 5259 */
-	{ 0,	0,	printargs,		"n64_pselect6"		}, /* 5260 */
-	{ 0,	0,	printargs,		"n64_ppoll"		}, /* 5261 */
-	{ 0,	0,	printargs,		"n64_unshare"		}, /* 5262 */
-	{ 0,	0,	printargs,		"n64_splice"		}, /* 5263 */
-	{ 0,	0,	printargs,		"n64_sync_file_range"	}, /* 5264 */
-	{ 0,	0,	printargs,		"n64_tee"		}, /* 5265 */
-	{ 0,	0,	printargs,		"n64_vmsplice"		}, /* 5266 */
-	{ 0,	0,	printargs,		"n64_move_pages"	}, /* 5267 */
-	{ 0,	0,	printargs,		"n64_set_robust_list"	}, /* 5268 */
-	{ 0,	0,	printargs,		"n64_get_robust_list"	}, /* 5269 */
-	{ 0,	0,	printargs,		"n64_kexec_load"	}, /* 5270 */
-	{ 0,	0,	printargs,		"n64_getcpu"		}, /* 5271 */
-	{ 0,	0,	printargs,		"n64_epoll_pwait"	}, /* 5272 */
-	{ 0,	0,	printargs,		"n64_ioprio_set"	}, /* 5273 */
-	{ 0,	0,	printargs,		"n64_ioprio_get"	}, /* 5274 */
-	{ 0,	0,	printargs,		"n64_utimensat"		}, /* 5275 */
-	{ 0,	0,	printargs,		"n64_signalfd"		}, /* 5276 */
-	{ 0,	0,	printargs,		"n64_SYS_5277"		}, /* 5277 */
-	{ 0,	0,	printargs,		"n64_eventfd"		}, /* 5278 */
-	{ 0,	0,	printargs,		"n64_fallocate"		}, /* 5279 */
-	{ 0,	0,	printargs,		"n64_timerfd_create"	}, /* 5280 */
-	{ 0,	0,	printargs,		"n64_timerfd_gettime"	}, /* 5281 */
-	{ 0,	0,	printargs,		"n64_timerfd_settime"	}, /* 5282 */
-	{ 0,	0,	printargs,		"n64_signalfd4"		}, /* 5283 */
-	{ 0,	0,	printargs,		"n64_eventfd2"		}, /* 5284 */
-	{ 0,	0,	printargs,		"n64_epoll_create1"	}, /* 5285 */
-	{ 0,	0,	printargs,		"n64_dup3"		}, /* 5286 */
-	{ 0,	0,	printargs,		"n64_pipe2"		}, /* 5287 */
-	{ 0,	0,	printargs,		"n64_inotify_init1"	}, /* 5288 */
-	{ 0,	0,	printargs,		"n64_preadv"		}, /* 5289 */
-	{ 0,	0,	printargs,		"n64_pwritev"		}, /* 5290 */
-	{ 0,	0,	printargs,		"n64_rt_tgsigqueueinfo" }, /* 5291 */
-	{ 0,	0,	printargs,		"n64_perf_event_open"	}, /* 5292 */
-	{ 0,	0,	printargs,		"n64_accept4"		}, /* 5293 */
-	{ 0,	0,	printargs,		"n64_recvmmsg"		}, /* 5294 */
-	{ 2,	0,	printargs,		"n64_fanotify_init"	}, /* 5295 */
-	{ 5,	0,	printargs,		"n64_fanotify_mark"	}, /* 5296 */
-	{ 4,	0,	printargs,		"n64_prlimit64"		}, /* 5297 */
-	{ 5,	TD|TF,	printargs,		"n64_name_to_handle_at"	}, /* 5298 */
-	{ 3,	TD,	printargs,		"n64_open_by_handle_at"	}, /* 5299 */
-	{ 2,	0,	printargs,		"n64_clock_adjtime"	}, /* 5300 */
-	{ 1,	TD,	printargs,		"n64_syncfs"		}, /* 5301 */
-	{ 4,	TN,	printargs,		"n64_sendmmsg"		}, /* 5302 */
-	{ 2,	TD,	printargs,		"n64_setns"		}, /* 5303 */
-	{ 6,	0,	printargs,		"n64_process_vm_readv"	}, /* 5304 */
-	{ 6,	0,	printargs,		"n64_process_vm_writev"	}, /* 5305 */
-#endif
-	{ 0,	0,	NULL,			NULL		}, /* 5306 */
-	{ 0,	0,	NULL,			NULL		}, /* 5307 */
-	{ 0,	0,	NULL,			NULL		}, /* 5308 */
-	{ 0,	0,	NULL,			NULL		}, /* 5309 */
-	{ 0,	0,	NULL,			NULL		}, /* 5310 */
-	{ 0,	0,	NULL,			NULL		}, /* 5311 */
-	{ 0,	0,	NULL,			NULL		}, /* 5312 */
-	{ 0,	0,	NULL,			NULL		}, /* 5313 */
-	{ 0,	0,	NULL,			NULL		}, /* 5314 */
-	{ 0,	0,	NULL,			NULL		}, /* 5315 */
-	{ 0,	0,	NULL,			NULL		}, /* 5316 */
-	{ 0,	0,	NULL,			NULL		}, /* 5317 */
-	{ 0,	0,	NULL,			NULL		}, /* 5318 */
-	{ 0,	0,	NULL,			NULL		}, /* 5319 */
-	{ 0,	0,	NULL,			NULL		}, /* 5320 */
-	{ 0,	0,	NULL,			NULL		}, /* 5321 */
-	{ 0,	0,	NULL,			NULL		}, /* 5322 */
-	{ 0,	0,	NULL,			NULL		}, /* 5323 */
-	{ 0,	0,	NULL,			NULL		}, /* 5324 */
-	{ 0,	0,	NULL,			NULL		}, /* 5325 */
-	{ 0,	0,	NULL,			NULL		}, /* 5326 */
-	{ 0,	0,	NULL,			NULL		}, /* 5327 */
-	{ 0,	0,	NULL,			NULL		}, /* 5328 */
-	{ 0,	0,	NULL,			NULL		}, /* 5329 */
-	{ 0,	0,	NULL,			NULL		}, /* 5330 */
-	{ 0,	0,	NULL,			NULL		}, /* 5331 */
-	{ 0,	0,	NULL,			NULL		}, /* 5332 */
-	{ 0,	0,	NULL,			NULL		}, /* 5333 */
-	{ 0,	0,	NULL,			NULL		}, /* 5334 */
-	{ 0,	0,	NULL,			NULL		}, /* 5335 */
-	{ 0,	0,	NULL,			NULL		}, /* 5336 */
-	{ 0,	0,	NULL,			NULL		}, /* 5337 */
-	{ 0,	0,	NULL,			NULL		}, /* 5338 */
-	{ 0,	0,	NULL,			NULL		}, /* 5339 */
-	{ 0,	0,	NULL,			NULL		}, /* 5340 */
-	{ 0,	0,	NULL,			NULL		}, /* 5341 */
-	{ 0,	0,	NULL,			NULL		}, /* 5342 */
-	{ 0,	0,	NULL,			NULL		}, /* 5343 */
-	{ 0,	0,	NULL,			NULL		}, /* 5344 */
-	{ 0,	0,	NULL,			NULL		}, /* 5345 */
-	{ 0,	0,	NULL,			NULL		}, /* 5346 */
-	{ 0,	0,	NULL,			NULL		}, /* 5347 */
-	{ 0,	0,	NULL,			NULL		}, /* 5348 */
-	{ 0,	0,	NULL,			NULL		}, /* 5349 */
-	{ 0,	0,	NULL,			NULL		}, /* 5350 */
-	{ 0,	0,	NULL,			NULL		}, /* 5351 */
-	{ 0,	0,	NULL,			NULL		}, /* 5352 */
-	{ 0,	0,	NULL,			NULL		}, /* 5353 */
-	{ 0,	0,	NULL,			NULL		}, /* 5354 */
-	{ 0,	0,	NULL,			NULL		}, /* 5355 */
-	{ 0,	0,	NULL,			NULL		}, /* 5356 */
-	{ 0,	0,	NULL,			NULL		}, /* 5357 */
-	{ 0,	0,	NULL,			NULL		}, /* 5358 */
-	{ 0,	0,	NULL,			NULL		}, /* 5359 */
-	{ 0,	0,	NULL,			NULL		}, /* 5360 */
-	{ 0,	0,	NULL,			NULL		}, /* 5361 */
-	{ 0,	0,	NULL,			NULL		}, /* 5362 */
-	{ 0,	0,	NULL,			NULL		}, /* 5363 */
-	{ 0,	0,	NULL,			NULL		}, /* 5364 */
-	{ 0,	0,	NULL,			NULL		}, /* 5365 */
-	{ 0,	0,	NULL,			NULL		}, /* 5366 */
-	{ 0,	0,	NULL,			NULL		}, /* 5367 */
-	{ 0,	0,	NULL,			NULL		}, /* 5368 */
-	{ 0,	0,	NULL,			NULL		}, /* 5369 */
-	{ 0,	0,	NULL,			NULL		}, /* 5370 */
-	{ 0,	0,	NULL,			NULL		}, /* 5371 */
-	{ 0,	0,	NULL,			NULL		}, /* 5372 */
-	{ 0,	0,	NULL,			NULL		}, /* 5373 */
-	{ 0,	0,	NULL,			NULL		}, /* 5374 */
-	{ 0,	0,	NULL,			NULL		}, /* 5375 */
-	{ 0,	0,	NULL,			NULL		}, /* 5376 */
-	{ 0,	0,	NULL,			NULL		}, /* 5377 */
-	{ 0,	0,	NULL,			NULL		}, /* 5378 */
-	{ 0,	0,	NULL,			NULL		}, /* 5379 */
-	{ 0,	0,	NULL,			NULL		}, /* 5380 */
-	{ 0,	0,	NULL,			NULL		}, /* 5381 */
-	{ 0,	0,	NULL,			NULL		}, /* 5382 */
-	{ 0,	0,	NULL,			NULL		}, /* 5383 */
-	{ 0,	0,	NULL,			NULL		}, /* 5384 */
-	{ 0,	0,	NULL,			NULL		}, /* 5385 */
-	{ 0,	0,	NULL,			NULL		}, /* 5386 */
-	{ 0,	0,	NULL,			NULL		}, /* 5387 */
-	{ 0,	0,	NULL,			NULL		}, /* 5388 */
-	{ 0,	0,	NULL,			NULL		}, /* 5389 */
-	{ 0,	0,	NULL,			NULL		}, /* 5390 */
-	{ 0,	0,	NULL,			NULL		}, /* 5391 */
-	{ 0,	0,	NULL,			NULL		}, /* 5392 */
-	{ 0,	0,	NULL,			NULL		}, /* 5393 */
-	{ 0,	0,	NULL,			NULL		}, /* 5394 */
-	{ 0,	0,	NULL,			NULL		}, /* 5395 */
-	{ 0,	0,	NULL,			NULL		}, /* 5396 */
-	{ 0,	0,	NULL,			NULL		}, /* 5397 */
-	{ 0,	0,	NULL,			NULL		}, /* 5398 */
-	{ 0,	0,	NULL,			NULL		}, /* 5399 */
-	{ 0,	0,	NULL,			NULL		}, /* 5400 */
-	{ 0,	0,	NULL,			NULL		}, /* 5401 */
-	{ 0,	0,	NULL,			NULL		}, /* 5402 */
-	{ 0,	0,	NULL,			NULL		}, /* 5403 */
-	{ 0,	0,	NULL,			NULL		}, /* 5404 */
-	{ 0,	0,	NULL,			NULL		}, /* 5405 */
-	{ 0,	0,	NULL,			NULL		}, /* 5406 */
-	{ 0,	0,	NULL,			NULL		}, /* 5407 */
-	{ 0,	0,	NULL,			NULL		}, /* 5408 */
-	{ 0,	0,	NULL,			NULL		}, /* 5409 */
-	{ 0,	0,	NULL,			NULL		}, /* 5410 */
-	{ 0,	0,	NULL,			NULL		}, /* 5411 */
-	{ 0,	0,	NULL,			NULL		}, /* 5412 */
-	{ 0,	0,	NULL,			NULL		}, /* 5413 */
-	{ 0,	0,	NULL,			NULL		}, /* 5414 */
-	{ 0,	0,	NULL,			NULL		}, /* 5415 */
-	{ 0,	0,	NULL,			NULL		}, /* 5416 */
-	{ 0,	0,	NULL,			NULL		}, /* 5417 */
-	{ 0,	0,	NULL,			NULL		}, /* 5418 */
-	{ 0,	0,	NULL,			NULL		}, /* 5419 */
-	{ 0,	0,	NULL,			NULL		}, /* 5420 */
-	{ 0,	0,	NULL,			NULL		}, /* 5421 */
-	{ 0,	0,	NULL,			NULL		}, /* 5422 */
-	{ 0,	0,	NULL,			NULL		}, /* 5423 */
-	{ 0,	0,	NULL,			NULL		}, /* 5424 */
-	{ 0,	0,	NULL,			NULL		}, /* 5425 */
-	{ 0,	0,	NULL,			NULL		}, /* 5426 */
-	{ 0,	0,	NULL,			NULL		}, /* 5427 */
-	{ 0,	0,	NULL,			NULL		}, /* 5428 */
-	{ 0,	0,	NULL,			NULL		}, /* 5429 */
-	{ 0,	0,	NULL,			NULL		}, /* 5430 */
-	{ 0,	0,	NULL,			NULL		}, /* 5431 */
-	{ 0,	0,	NULL,			NULL		}, /* 5432 */
-	{ 0,	0,	NULL,			NULL		}, /* 5433 */
-	{ 0,	0,	NULL,			NULL		}, /* 5434 */
-	{ 0,	0,	NULL,			NULL		}, /* 5435 */
-	{ 0,	0,	NULL,			NULL		}, /* 5436 */
-	{ 0,	0,	NULL,			NULL		}, /* 5437 */
-	{ 0,	0,	NULL,			NULL		}, /* 5438 */
-	{ 0,	0,	NULL,			NULL		}, /* 5439 */
-	{ 0,	0,	NULL,			NULL		}, /* 5440 */
-	{ 0,	0,	NULL,			NULL		}, /* 5441 */
-	{ 0,	0,	NULL,			NULL		}, /* 5442 */
-	{ 0,	0,	NULL,			NULL		}, /* 5443 */
-	{ 0,	0,	NULL,			NULL		}, /* 5444 */
-	{ 0,	0,	NULL,			NULL		}, /* 5445 */
-	{ 0,	0,	NULL,			NULL		}, /* 5446 */
-	{ 0,	0,	NULL,			NULL		}, /* 5447 */
-	{ 0,	0,	NULL,			NULL		}, /* 5448 */
-	{ 0,	0,	NULL,			NULL		}, /* 5449 */
-	{ 0,	0,	NULL,			NULL		}, /* 5450 */
-	{ 0,	0,	NULL,			NULL		}, /* 5451 */
-	{ 0,	0,	NULL,			NULL		}, /* 5452 */
-	{ 0,	0,	NULL,			NULL		}, /* 5453 */
-	{ 0,	0,	NULL,			NULL		}, /* 5454 */
-	{ 0,	0,	NULL,			NULL		}, /* 5455 */
-	{ 0,	0,	NULL,			NULL		}, /* 5456 */
-	{ 0,	0,	NULL,			NULL		}, /* 5457 */
-	{ 0,	0,	NULL,			NULL		}, /* 5458 */
-	{ 0,	0,	NULL,			NULL		}, /* 5459 */
-	{ 0,	0,	NULL,			NULL		}, /* 5460 */
-	{ 0,	0,	NULL,			NULL		}, /* 5461 */
-	{ 0,	0,	NULL,			NULL		}, /* 5462 */
-	{ 0,	0,	NULL,			NULL		}, /* 5463 */
-	{ 0,	0,	NULL,			NULL		}, /* 5464 */
-	{ 0,	0,	NULL,			NULL		}, /* 5465 */
-	{ 0,	0,	NULL,			NULL		}, /* 5466 */
-	{ 0,	0,	NULL,			NULL		}, /* 5467 */
-	{ 0,	0,	NULL,			NULL		}, /* 5468 */
-	{ 0,	0,	NULL,			NULL		}, /* 5469 */
-	{ 0,	0,	NULL,			NULL		}, /* 5470 */
-	{ 0,	0,	NULL,			NULL		}, /* 5471 */
-	{ 0,	0,	NULL,			NULL		}, /* 5472 */
-	{ 0,	0,	NULL,			NULL		}, /* 5473 */
-	{ 0,	0,	NULL,			NULL		}, /* 5474 */
-	{ 0,	0,	NULL,			NULL		}, /* 5475 */
-	{ 0,	0,	NULL,			NULL		}, /* 5476 */
-	{ 0,	0,	NULL,			NULL		}, /* 5477 */
-	{ 0,	0,	NULL,			NULL		}, /* 5478 */
-	{ 0,	0,	NULL,			NULL		}, /* 5479 */
-	{ 0,	0,	NULL,			NULL		}, /* 5480 */
-	{ 0,	0,	NULL,			NULL		}, /* 5481 */
-	{ 0,	0,	NULL,			NULL		}, /* 5482 */
-	{ 0,	0,	NULL,			NULL		}, /* 5483 */
-	{ 0,	0,	NULL,			NULL		}, /* 5484 */
-	{ 0,	0,	NULL,			NULL		}, /* 5485 */
-	{ 0,	0,	NULL,			NULL		}, /* 5486 */
-	{ 0,	0,	NULL,			NULL		}, /* 5487 */
-	{ 0,	0,	NULL,			NULL		}, /* 5488 */
-	{ 0,	0,	NULL,			NULL		}, /* 5489 */
-	{ 0,	0,	NULL,			NULL		}, /* 5490 */
-	{ 0,	0,	NULL,			NULL		}, /* 5491 */
-	{ 0,	0,	NULL,			NULL		}, /* 5492 */
-	{ 0,	0,	NULL,			NULL		}, /* 5493 */
-	{ 0,	0,	NULL,			NULL		}, /* 5494 */
-	{ 0,	0,	NULL,			NULL		}, /* 5495 */
-	{ 0,	0,	NULL,			NULL		}, /* 5496 */
-	{ 0,	0,	NULL,			NULL		}, /* 5497 */
-	{ 0,	0,	NULL,			NULL		}, /* 5498 */
-	{ 0,	0,	NULL,			NULL		}, /* 5499 */
-	{ 0,	0,	NULL,			NULL		}, /* 5500 */
-	{ 0,	0,	NULL,			NULL		}, /* 5501 */
-	{ 0,	0,	NULL,			NULL		}, /* 5502 */
-	{ 0,	0,	NULL,			NULL		}, /* 5503 */
-	{ 0,	0,	NULL,			NULL		}, /* 5504 */
-	{ 0,	0,	NULL,			NULL		}, /* 5505 */
-	{ 0,	0,	NULL,			NULL		}, /* 5506 */
-	{ 0,	0,	NULL,			NULL		}, /* 5507 */
-	{ 0,	0,	NULL,			NULL		}, /* 5508 */
-	{ 0,	0,	NULL,			NULL		}, /* 5509 */
-	{ 0,	0,	NULL,			NULL		}, /* 5510 */
-	{ 0,	0,	NULL,			NULL		}, /* 5511 */
-	{ 0,	0,	NULL,			NULL		}, /* 5512 */
-	{ 0,	0,	NULL,			NULL		}, /* 5513 */
-	{ 0,	0,	NULL,			NULL		}, /* 5514 */
-	{ 0,	0,	NULL,			NULL		}, /* 5515 */
-	{ 0,	0,	NULL,			NULL		}, /* 5516 */
-	{ 0,	0,	NULL,			NULL		}, /* 5517 */
-	{ 0,	0,	NULL,			NULL		}, /* 5518 */
-	{ 0,	0,	NULL,			NULL		}, /* 5519 */
-	{ 0,	0,	NULL,			NULL		}, /* 5520 */
-	{ 0,	0,	NULL,			NULL		}, /* 5521 */
-	{ 0,	0,	NULL,			NULL		}, /* 5522 */
-	{ 0,	0,	NULL,			NULL		}, /* 5523 */
-	{ 0,	0,	NULL,			NULL		}, /* 5524 */
-	{ 0,	0,	NULL,			NULL		}, /* 5525 */
-	{ 0,	0,	NULL,			NULL		}, /* 5526 */
-	{ 0,	0,	NULL,			NULL		}, /* 5527 */
-	{ 0,	0,	NULL,			NULL		}, /* 5528 */
-	{ 0,	0,	NULL,			NULL		}, /* 5529 */
-	{ 0,	0,	NULL,			NULL		}, /* 5530 */
-	{ 0,	0,	NULL,			NULL		}, /* 5531 */
-	{ 0,	0,	NULL,			NULL		}, /* 5532 */
-	{ 0,	0,	NULL,			NULL		}, /* 5533 */
-	{ 0,	0,	NULL,			NULL		}, /* 5534 */
-	{ 0,	0,	NULL,			NULL		}, /* 5535 */
-	{ 0,	0,	NULL,			NULL		}, /* 5536 */
-	{ 0,	0,	NULL,			NULL		}, /* 5537 */
-	{ 0,	0,	NULL,			NULL		}, /* 5538 */
-	{ 0,	0,	NULL,			NULL		}, /* 5539 */
-	{ 0,	0,	NULL,			NULL		}, /* 5540 */
-	{ 0,	0,	NULL,			NULL		}, /* 5541 */
-	{ 0,	0,	NULL,			NULL		}, /* 5542 */
-	{ 0,	0,	NULL,			NULL		}, /* 5543 */
-	{ 0,	0,	NULL,			NULL		}, /* 5544 */
-	{ 0,	0,	NULL,			NULL		}, /* 5545 */
-	{ 0,	0,	NULL,			NULL		}, /* 5546 */
-	{ 0,	0,	NULL,			NULL		}, /* 5547 */
-	{ 0,	0,	NULL,			NULL		}, /* 5548 */
-	{ 0,	0,	NULL,			NULL		}, /* 5549 */
-	{ 0,	0,	NULL,			NULL		}, /* 5550 */
-	{ 0,	0,	NULL,			NULL		}, /* 5551 */
-	{ 0,	0,	NULL,			NULL		}, /* 5552 */
-	{ 0,	0,	NULL,			NULL		}, /* 5553 */
-	{ 0,	0,	NULL,			NULL		}, /* 5554 */
-	{ 0,	0,	NULL,			NULL		}, /* 5555 */
-	{ 0,	0,	NULL,			NULL		}, /* 5556 */
-	{ 0,	0,	NULL,			NULL		}, /* 5557 */
-	{ 0,	0,	NULL,			NULL		}, /* 5558 */
-	{ 0,	0,	NULL,			NULL		}, /* 5559 */
-	{ 0,	0,	NULL,			NULL		}, /* 5560 */
-	{ 0,	0,	NULL,			NULL		}, /* 5561 */
-	{ 0,	0,	NULL,			NULL		}, /* 5562 */
-	{ 0,	0,	NULL,			NULL		}, /* 5563 */
-	{ 0,	0,	NULL,			NULL		}, /* 5564 */
-	{ 0,	0,	NULL,			NULL		}, /* 5565 */
-	{ 0,	0,	NULL,			NULL		}, /* 5566 */
-	{ 0,	0,	NULL,			NULL		}, /* 5567 */
-	{ 0,	0,	NULL,			NULL		}, /* 5568 */
-	{ 0,	0,	NULL,			NULL		}, /* 5569 */
-	{ 0,	0,	NULL,			NULL		}, /* 5570 */
-	{ 0,	0,	NULL,			NULL		}, /* 5571 */
-	{ 0,	0,	NULL,			NULL		}, /* 5572 */
-	{ 0,	0,	NULL,			NULL		}, /* 5573 */
-	{ 0,	0,	NULL,			NULL		}, /* 5574 */
-	{ 0,	0,	NULL,			NULL		}, /* 5575 */
-	{ 0,	0,	NULL,			NULL		}, /* 5576 */
-	{ 0,	0,	NULL,			NULL		}, /* 5577 */
-	{ 0,	0,	NULL,			NULL		}, /* 5578 */
-	{ 0,	0,	NULL,			NULL		}, /* 5579 */
-	{ 0,	0,	NULL,			NULL		}, /* 5580 */
-	{ 0,	0,	NULL,			NULL		}, /* 5581 */
-	{ 0,	0,	NULL,			NULL		}, /* 5582 */
-	{ 0,	0,	NULL,			NULL		}, /* 5583 */
-	{ 0,	0,	NULL,			NULL		}, /* 5584 */
-	{ 0,	0,	NULL,			NULL		}, /* 5585 */
-	{ 0,	0,	NULL,			NULL		}, /* 5586 */
-	{ 0,	0,	NULL,			NULL		}, /* 5587 */
-	{ 0,	0,	NULL,			NULL		}, /* 5588 */
-	{ 0,	0,	NULL,			NULL		}, /* 5589 */
-	{ 0,	0,	NULL,			NULL		}, /* 5590 */
-	{ 0,	0,	NULL,			NULL		}, /* 5591 */
-	{ 0,	0,	NULL,			NULL		}, /* 5592 */
-	{ 0,	0,	NULL,			NULL		}, /* 5593 */
-	{ 0,	0,	NULL,			NULL		}, /* 5594 */
-	{ 0,	0,	NULL,			NULL		}, /* 5595 */
-	{ 0,	0,	NULL,			NULL		}, /* 5596 */
-	{ 0,	0,	NULL,			NULL		}, /* 5597 */
-	{ 0,	0,	NULL,			NULL		}, /* 5598 */
-	{ 0,	0,	NULL,			NULL		}, /* 5599 */
-	{ 0,	0,	NULL,			NULL		}, /* 5600 */
-	{ 0,	0,	NULL,			NULL		}, /* 5601 */
-	{ 0,	0,	NULL,			NULL		}, /* 5602 */
-	{ 0,	0,	NULL,			NULL		}, /* 5603 */
-	{ 0,	0,	NULL,			NULL		}, /* 5604 */
-	{ 0,	0,	NULL,			NULL		}, /* 5605 */
-	{ 0,	0,	NULL,			NULL		}, /* 5606 */
-	{ 0,	0,	NULL,			NULL		}, /* 5607 */
-	{ 0,	0,	NULL,			NULL		}, /* 5608 */
-	{ 0,	0,	NULL,			NULL		}, /* 5609 */
-	{ 0,	0,	NULL,			NULL		}, /* 5610 */
-	{ 0,	0,	NULL,			NULL		}, /* 5611 */
-	{ 0,	0,	NULL,			NULL		}, /* 5612 */
-	{ 0,	0,	NULL,			NULL		}, /* 5613 */
-	{ 0,	0,	NULL,			NULL		}, /* 5614 */
-	{ 0,	0,	NULL,			NULL		}, /* 5615 */
-	{ 0,	0,	NULL,			NULL		}, /* 5616 */
-	{ 0,	0,	NULL,			NULL		}, /* 5617 */
-	{ 0,	0,	NULL,			NULL		}, /* 5618 */
-	{ 0,	0,	NULL,			NULL		}, /* 5619 */
-	{ 0,	0,	NULL,			NULL		}, /* 5620 */
-	{ 0,	0,	NULL,			NULL		}, /* 5621 */
-	{ 0,	0,	NULL,			NULL		}, /* 5622 */
-	{ 0,	0,	NULL,			NULL		}, /* 5623 */
-	{ 0,	0,	NULL,			NULL		}, /* 5624 */
-	{ 0,	0,	NULL,			NULL		}, /* 5625 */
-	{ 0,	0,	NULL,			NULL		}, /* 5626 */
-	{ 0,	0,	NULL,			NULL		}, /* 5627 */
-	{ 0,	0,	NULL,			NULL		}, /* 5628 */
-	{ 0,	0,	NULL,			NULL		}, /* 5629 */
-	{ 0,	0,	NULL,			NULL		}, /* 5630 */
-	{ 0,	0,	NULL,			NULL		}, /* 5631 */
-	{ 0,	0,	NULL,			NULL		}, /* 5632 */
-	{ 0,	0,	NULL,			NULL		}, /* 5633 */
-	{ 0,	0,	NULL,			NULL		}, /* 5634 */
-	{ 0,	0,	NULL,			NULL		}, /* 5635 */
-	{ 0,	0,	NULL,			NULL		}, /* 5636 */
-	{ 0,	0,	NULL,			NULL		}, /* 5637 */
-	{ 0,	0,	NULL,			NULL		}, /* 5638 */
-	{ 0,	0,	NULL,			NULL		}, /* 5639 */
-	{ 0,	0,	NULL,			NULL		}, /* 5640 */
-	{ 0,	0,	NULL,			NULL		}, /* 5641 */
-	{ 0,	0,	NULL,			NULL		}, /* 5642 */
-	{ 0,	0,	NULL,			NULL		}, /* 5643 */
-	{ 0,	0,	NULL,			NULL		}, /* 5644 */
-	{ 0,	0,	NULL,			NULL		}, /* 5645 */
-	{ 0,	0,	NULL,			NULL		}, /* 5646 */
-	{ 0,	0,	NULL,			NULL		}, /* 5647 */
-	{ 0,	0,	NULL,			NULL		}, /* 5648 */
-	{ 0,	0,	NULL,			NULL		}, /* 5649 */
-	{ 0,	0,	NULL,			NULL		}, /* 5650 */
-	{ 0,	0,	NULL,			NULL		}, /* 5651 */
-	{ 0,	0,	NULL,			NULL		}, /* 5652 */
-	{ 0,	0,	NULL,			NULL		}, /* 5653 */
-	{ 0,	0,	NULL,			NULL		}, /* 5654 */
-	{ 0,	0,	NULL,			NULL		}, /* 5655 */
-	{ 0,	0,	NULL,			NULL		}, /* 5656 */
-	{ 0,	0,	NULL,			NULL		}, /* 5657 */
-	{ 0,	0,	NULL,			NULL		}, /* 5658 */
-	{ 0,	0,	NULL,			NULL		}, /* 5659 */
-	{ 0,	0,	NULL,			NULL		}, /* 5660 */
-	{ 0,	0,	NULL,			NULL		}, /* 5661 */
-	{ 0,	0,	NULL,			NULL		}, /* 5662 */
-	{ 0,	0,	NULL,			NULL		}, /* 5663 */
-	{ 0,	0,	NULL,			NULL		}, /* 5664 */
-	{ 0,	0,	NULL,			NULL		}, /* 5665 */
-	{ 0,	0,	NULL,			NULL		}, /* 5666 */
-	{ 0,	0,	NULL,			NULL		}, /* 5667 */
-	{ 0,	0,	NULL,			NULL		}, /* 5668 */
-	{ 0,	0,	NULL,			NULL		}, /* 5669 */
-	{ 0,	0,	NULL,			NULL		}, /* 5670 */
-	{ 0,	0,	NULL,			NULL		}, /* 5671 */
-	{ 0,	0,	NULL,			NULL		}, /* 5672 */
-	{ 0,	0,	NULL,			NULL		}, /* 5673 */
-	{ 0,	0,	NULL,			NULL		}, /* 5674 */
-	{ 0,	0,	NULL,			NULL		}, /* 5675 */
-	{ 0,	0,	NULL,			NULL		}, /* 5676 */
-	{ 0,	0,	NULL,			NULL		}, /* 5677 */
-	{ 0,	0,	NULL,			NULL		}, /* 5678 */
-	{ 0,	0,	NULL,			NULL		}, /* 5679 */
-	{ 0,	0,	NULL,			NULL		}, /* 5680 */
-	{ 0,	0,	NULL,			NULL		}, /* 5681 */
-	{ 0,	0,	NULL,			NULL		}, /* 5682 */
-	{ 0,	0,	NULL,			NULL		}, /* 5683 */
-	{ 0,	0,	NULL,			NULL		}, /* 5684 */
-	{ 0,	0,	NULL,			NULL		}, /* 5685 */
-	{ 0,	0,	NULL,			NULL		}, /* 5686 */
-	{ 0,	0,	NULL,			NULL		}, /* 5687 */
-	{ 0,	0,	NULL,			NULL		}, /* 5688 */
-	{ 0,	0,	NULL,			NULL		}, /* 5689 */
-	{ 0,	0,	NULL,			NULL		}, /* 5690 */
-	{ 0,	0,	NULL,			NULL		}, /* 5691 */
-	{ 0,	0,	NULL,			NULL		}, /* 5692 */
-	{ 0,	0,	NULL,			NULL		}, /* 5693 */
-	{ 0,	0,	NULL,			NULL		}, /* 5694 */
-	{ 0,	0,	NULL,			NULL		}, /* 5695 */
-	{ 0,	0,	NULL,			NULL		}, /* 5696 */
-	{ 0,	0,	NULL,			NULL		}, /* 5697 */
-	{ 0,	0,	NULL,			NULL		}, /* 5698 */
-	{ 0,	0,	NULL,			NULL		}, /* 5699 */
-	{ 0,	0,	NULL,			NULL		}, /* 5700 */
-	{ 0,	0,	NULL,			NULL		}, /* 5701 */
-	{ 0,	0,	NULL,			NULL		}, /* 5702 */
-	{ 0,	0,	NULL,			NULL		}, /* 5703 */
-	{ 0,	0,	NULL,			NULL		}, /* 5704 */
-	{ 0,	0,	NULL,			NULL		}, /* 5705 */
-	{ 0,	0,	NULL,			NULL		}, /* 5706 */
-	{ 0,	0,	NULL,			NULL		}, /* 5707 */
-	{ 0,	0,	NULL,			NULL		}, /* 5708 */
-	{ 0,	0,	NULL,			NULL		}, /* 5709 */
-	{ 0,	0,	NULL,			NULL		}, /* 5710 */
-	{ 0,	0,	NULL,			NULL		}, /* 5711 */
-	{ 0,	0,	NULL,			NULL		}, /* 5712 */
-	{ 0,	0,	NULL,			NULL		}, /* 5713 */
-	{ 0,	0,	NULL,			NULL		}, /* 5714 */
-	{ 0,	0,	NULL,			NULL		}, /* 5715 */
-	{ 0,	0,	NULL,			NULL		}, /* 5716 */
-	{ 0,	0,	NULL,			NULL		}, /* 5717 */
-	{ 0,	0,	NULL,			NULL		}, /* 5718 */
-	{ 0,	0,	NULL,			NULL		}, /* 5719 */
-	{ 0,	0,	NULL,			NULL		}, /* 5720 */
-	{ 0,	0,	NULL,			NULL		}, /* 5721 */
-	{ 0,	0,	NULL,			NULL		}, /* 5722 */
-	{ 0,	0,	NULL,			NULL		}, /* 5723 */
-	{ 0,	0,	NULL,			NULL		}, /* 5724 */
-	{ 0,	0,	NULL,			NULL		}, /* 5725 */
-	{ 0,	0,	NULL,			NULL		}, /* 5726 */
-	{ 0,	0,	NULL,			NULL		}, /* 5727 */
-	{ 0,	0,	NULL,			NULL		}, /* 5728 */
-	{ 0,	0,	NULL,			NULL		}, /* 5729 */
-	{ 0,	0,	NULL,			NULL		}, /* 5730 */
-	{ 0,	0,	NULL,			NULL		}, /* 5731 */
-	{ 0,	0,	NULL,			NULL		}, /* 5732 */
-	{ 0,	0,	NULL,			NULL		}, /* 5733 */
-	{ 0,	0,	NULL,			NULL		}, /* 5734 */
-	{ 0,	0,	NULL,			NULL		}, /* 5735 */
-	{ 0,	0,	NULL,			NULL		}, /* 5736 */
-	{ 0,	0,	NULL,			NULL		}, /* 5737 */
-	{ 0,	0,	NULL,			NULL		}, /* 5738 */
-	{ 0,	0,	NULL,			NULL		}, /* 5739 */
-	{ 0,	0,	NULL,			NULL		}, /* 5740 */
-	{ 0,	0,	NULL,			NULL		}, /* 5741 */
-	{ 0,	0,	NULL,			NULL		}, /* 5742 */
-	{ 0,	0,	NULL,			NULL		}, /* 5743 */
-	{ 0,	0,	NULL,			NULL		}, /* 5744 */
-	{ 0,	0,	NULL,			NULL		}, /* 5745 */
-	{ 0,	0,	NULL,			NULL		}, /* 5746 */
-	{ 0,	0,	NULL,			NULL		}, /* 5747 */
-	{ 0,	0,	NULL,			NULL		}, /* 5748 */
-	{ 0,	0,	NULL,			NULL		}, /* 5749 */
-	{ 0,	0,	NULL,			NULL		}, /* 5750 */
-	{ 0,	0,	NULL,			NULL		}, /* 5751 */
-	{ 0,	0,	NULL,			NULL		}, /* 5752 */
-	{ 0,	0,	NULL,			NULL		}, /* 5753 */
-	{ 0,	0,	NULL,			NULL		}, /* 5754 */
-	{ 0,	0,	NULL,			NULL		}, /* 5755 */
-	{ 0,	0,	NULL,			NULL		}, /* 5756 */
-	{ 0,	0,	NULL,			NULL		}, /* 5757 */
-	{ 0,	0,	NULL,			NULL		}, /* 5758 */
-	{ 0,	0,	NULL,			NULL		}, /* 5759 */
-	{ 0,	0,	NULL,			NULL		}, /* 5760 */
-	{ 0,	0,	NULL,			NULL		}, /* 5761 */
-	{ 0,	0,	NULL,			NULL		}, /* 5762 */
-	{ 0,	0,	NULL,			NULL		}, /* 5763 */
-	{ 0,	0,	NULL,			NULL		}, /* 5764 */
-	{ 0,	0,	NULL,			NULL		}, /* 5765 */
-	{ 0,	0,	NULL,			NULL		}, /* 5766 */
-	{ 0,	0,	NULL,			NULL		}, /* 5767 */
-	{ 0,	0,	NULL,			NULL		}, /* 5768 */
-	{ 0,	0,	NULL,			NULL		}, /* 5769 */
-	{ 0,	0,	NULL,			NULL		}, /* 5770 */
-	{ 0,	0,	NULL,			NULL		}, /* 5771 */
-	{ 0,	0,	NULL,			NULL		}, /* 5772 */
-	{ 0,	0,	NULL,			NULL		}, /* 5773 */
-	{ 0,	0,	NULL,			NULL		}, /* 5774 */
-	{ 0,	0,	NULL,			NULL		}, /* 5775 */
-	{ 0,	0,	NULL,			NULL		}, /* 5776 */
-	{ 0,	0,	NULL,			NULL		}, /* 5777 */
-	{ 0,	0,	NULL,			NULL		}, /* 5778 */
-	{ 0,	0,	NULL,			NULL		}, /* 5779 */
-	{ 0,	0,	NULL,			NULL		}, /* 5780 */
-	{ 0,	0,	NULL,			NULL		}, /* 5781 */
-	{ 0,	0,	NULL,			NULL		}, /* 5782 */
-	{ 0,	0,	NULL,			NULL		}, /* 5783 */
-	{ 0,	0,	NULL,			NULL		}, /* 5784 */
-	{ 0,	0,	NULL,			NULL		}, /* 5785 */
-	{ 0,	0,	NULL,			NULL		}, /* 5786 */
-	{ 0,	0,	NULL,			NULL		}, /* 5787 */
-	{ 0,	0,	NULL,			NULL		}, /* 5788 */
-	{ 0,	0,	NULL,			NULL		}, /* 5789 */
-	{ 0,	0,	NULL,			NULL		}, /* 5790 */
-	{ 0,	0,	NULL,			NULL		}, /* 5791 */
-	{ 0,	0,	NULL,			NULL		}, /* 5792 */
-	{ 0,	0,	NULL,			NULL		}, /* 5793 */
-	{ 0,	0,	NULL,			NULL		}, /* 5794 */
-	{ 0,	0,	NULL,			NULL		}, /* 5795 */
-	{ 0,	0,	NULL,			NULL		}, /* 5796 */
-	{ 0,	0,	NULL,			NULL		}, /* 5797 */
-	{ 0,	0,	NULL,			NULL		}, /* 5798 */
-	{ 0,	0,	NULL,			NULL		}, /* 5799 */
-	{ 0,	0,	NULL,			NULL		}, /* 5800 */
-	{ 0,	0,	NULL,			NULL		}, /* 5801 */
-	{ 0,	0,	NULL,			NULL		}, /* 5802 */
-	{ 0,	0,	NULL,			NULL		}, /* 5803 */
-	{ 0,	0,	NULL,			NULL		}, /* 5804 */
-	{ 0,	0,	NULL,			NULL		}, /* 5805 */
-	{ 0,	0,	NULL,			NULL		}, /* 5806 */
-	{ 0,	0,	NULL,			NULL		}, /* 5807 */
-	{ 0,	0,	NULL,			NULL		}, /* 5808 */
-	{ 0,	0,	NULL,			NULL		}, /* 5809 */
-	{ 0,	0,	NULL,			NULL		}, /* 5810 */
-	{ 0,	0,	NULL,			NULL		}, /* 5811 */
-	{ 0,	0,	NULL,			NULL		}, /* 5812 */
-	{ 0,	0,	NULL,			NULL		}, /* 5813 */
-	{ 0,	0,	NULL,			NULL		}, /* 5814 */
-	{ 0,	0,	NULL,			NULL		}, /* 5815 */
-	{ 0,	0,	NULL,			NULL		}, /* 5816 */
-	{ 0,	0,	NULL,			NULL		}, /* 5817 */
-	{ 0,	0,	NULL,			NULL		}, /* 5818 */
-	{ 0,	0,	NULL,			NULL		}, /* 5819 */
-	{ 0,	0,	NULL,			NULL		}, /* 5820 */
-	{ 0,	0,	NULL,			NULL		}, /* 5821 */
-	{ 0,	0,	NULL,			NULL		}, /* 5822 */
-	{ 0,	0,	NULL,			NULL		}, /* 5823 */
-	{ 0,	0,	NULL,			NULL		}, /* 5824 */
-	{ 0,	0,	NULL,			NULL		}, /* 5825 */
-	{ 0,	0,	NULL,			NULL		}, /* 5826 */
-	{ 0,	0,	NULL,			NULL		}, /* 5827 */
-	{ 0,	0,	NULL,			NULL		}, /* 5828 */
-	{ 0,	0,	NULL,			NULL		}, /* 5829 */
-	{ 0,	0,	NULL,			NULL		}, /* 5830 */
-	{ 0,	0,	NULL,			NULL		}, /* 5831 */
-	{ 0,	0,	NULL,			NULL		}, /* 5832 */
-	{ 0,	0,	NULL,			NULL		}, /* 5833 */
-	{ 0,	0,	NULL,			NULL		}, /* 5834 */
-	{ 0,	0,	NULL,			NULL		}, /* 5835 */
-	{ 0,	0,	NULL,			NULL		}, /* 5836 */
-	{ 0,	0,	NULL,			NULL		}, /* 5837 */
-	{ 0,	0,	NULL,			NULL		}, /* 5838 */
-	{ 0,	0,	NULL,			NULL		}, /* 5839 */
-	{ 0,	0,	NULL,			NULL		}, /* 5840 */
-	{ 0,	0,	NULL,			NULL		}, /* 5841 */
-	{ 0,	0,	NULL,			NULL		}, /* 5842 */
-	{ 0,	0,	NULL,			NULL		}, /* 5843 */
-	{ 0,	0,	NULL,			NULL		}, /* 5844 */
-	{ 0,	0,	NULL,			NULL		}, /* 5845 */
-	{ 0,	0,	NULL,			NULL		}, /* 5846 */
-	{ 0,	0,	NULL,			NULL		}, /* 5847 */
-	{ 0,	0,	NULL,			NULL		}, /* 5848 */
-	{ 0,	0,	NULL,			NULL		}, /* 5849 */
-	{ 0,	0,	NULL,			NULL		}, /* 5850 */
-	{ 0,	0,	NULL,			NULL		}, /* 5851 */
-	{ 0,	0,	NULL,			NULL		}, /* 5852 */
-	{ 0,	0,	NULL,			NULL		}, /* 5853 */
-	{ 0,	0,	NULL,			NULL		}, /* 5854 */
-	{ 0,	0,	NULL,			NULL		}, /* 5855 */
-	{ 0,	0,	NULL,			NULL		}, /* 5856 */
-	{ 0,	0,	NULL,			NULL		}, /* 5857 */
-	{ 0,	0,	NULL,			NULL		}, /* 5858 */
-	{ 0,	0,	NULL,			NULL		}, /* 5859 */
-	{ 0,	0,	NULL,			NULL		}, /* 5860 */
-	{ 0,	0,	NULL,			NULL		}, /* 5861 */
-	{ 0,	0,	NULL,			NULL		}, /* 5862 */
-	{ 0,	0,	NULL,			NULL		}, /* 5863 */
-	{ 0,	0,	NULL,			NULL		}, /* 5864 */
-	{ 0,	0,	NULL,			NULL		}, /* 5865 */
-	{ 0,	0,	NULL,			NULL		}, /* 5866 */
-	{ 0,	0,	NULL,			NULL		}, /* 5867 */
-	{ 0,	0,	NULL,			NULL		}, /* 5868 */
-	{ 0,	0,	NULL,			NULL		}, /* 5869 */
-	{ 0,	0,	NULL,			NULL		}, /* 5870 */
-	{ 0,	0,	NULL,			NULL		}, /* 5871 */
-	{ 0,	0,	NULL,			NULL		}, /* 5872 */
-	{ 0,	0,	NULL,			NULL		}, /* 5873 */
-	{ 0,	0,	NULL,			NULL		}, /* 5874 */
-	{ 0,	0,	NULL,			NULL		}, /* 5875 */
-	{ 0,	0,	NULL,			NULL		}, /* 5876 */
-	{ 0,	0,	NULL,			NULL		}, /* 5877 */
-	{ 0,	0,	NULL,			NULL		}, /* 5878 */
-	{ 0,	0,	NULL,			NULL		}, /* 5879 */
-	{ 0,	0,	NULL,			NULL		}, /* 5880 */
-	{ 0,	0,	NULL,			NULL		}, /* 5881 */
-	{ 0,	0,	NULL,			NULL		}, /* 5882 */
-	{ 0,	0,	NULL,			NULL		}, /* 5883 */
-	{ 0,	0,	NULL,			NULL		}, /* 5884 */
-	{ 0,	0,	NULL,			NULL		}, /* 5885 */
-	{ 0,	0,	NULL,			NULL		}, /* 5886 */
-	{ 0,	0,	NULL,			NULL		}, /* 5887 */
-	{ 0,	0,	NULL,			NULL		}, /* 5888 */
-	{ 0,	0,	NULL,			NULL		}, /* 5889 */
-	{ 0,	0,	NULL,			NULL		}, /* 5890 */
-	{ 0,	0,	NULL,			NULL		}, /* 5891 */
-	{ 0,	0,	NULL,			NULL		}, /* 5892 */
-	{ 0,	0,	NULL,			NULL		}, /* 5893 */
-	{ 0,	0,	NULL,			NULL		}, /* 5894 */
-	{ 0,	0,	NULL,			NULL		}, /* 5895 */
-	{ 0,	0,	NULL,			NULL		}, /* 5896 */
-	{ 0,	0,	NULL,			NULL		}, /* 5897 */
-	{ 0,	0,	NULL,			NULL		}, /* 5898 */
-	{ 0,	0,	NULL,			NULL		}, /* 5899 */
-	{ 0,	0,	NULL,			NULL		}, /* 5900 */
-	{ 0,	0,	NULL,			NULL		}, /* 5901 */
-	{ 0,	0,	NULL,			NULL		}, /* 5902 */
-	{ 0,	0,	NULL,			NULL		}, /* 5903 */
-	{ 0,	0,	NULL,			NULL		}, /* 5904 */
-	{ 0,	0,	NULL,			NULL		}, /* 5905 */
-	{ 0,	0,	NULL,			NULL		}, /* 5906 */
-	{ 0,	0,	NULL,			NULL		}, /* 5907 */
-	{ 0,	0,	NULL,			NULL		}, /* 5908 */
-	{ 0,	0,	NULL,			NULL		}, /* 5909 */
-	{ 0,	0,	NULL,			NULL		}, /* 5910 */
-	{ 0,	0,	NULL,			NULL		}, /* 5911 */
-	{ 0,	0,	NULL,			NULL		}, /* 5912 */
-	{ 0,	0,	NULL,			NULL		}, /* 5913 */
-	{ 0,	0,	NULL,			NULL		}, /* 5914 */
-	{ 0,	0,	NULL,			NULL		}, /* 5915 */
-	{ 0,	0,	NULL,			NULL		}, /* 5916 */
-	{ 0,	0,	NULL,			NULL		}, /* 5917 */
-	{ 0,	0,	NULL,			NULL		}, /* 5918 */
-	{ 0,	0,	NULL,			NULL		}, /* 5919 */
-	{ 0,	0,	NULL,			NULL		}, /* 5920 */
-	{ 0,	0,	NULL,			NULL		}, /* 5921 */
-	{ 0,	0,	NULL,			NULL		}, /* 5922 */
-	{ 0,	0,	NULL,			NULL		}, /* 5923 */
-	{ 0,	0,	NULL,			NULL		}, /* 5924 */
-	{ 0,	0,	NULL,			NULL		}, /* 5925 */
-	{ 0,	0,	NULL,			NULL		}, /* 5926 */
-	{ 0,	0,	NULL,			NULL		}, /* 5927 */
-	{ 0,	0,	NULL,			NULL		}, /* 5928 */
-	{ 0,	0,	NULL,			NULL		}, /* 5929 */
-	{ 0,	0,	NULL,			NULL		}, /* 5930 */
-	{ 0,	0,	NULL,			NULL		}, /* 5931 */
-	{ 0,	0,	NULL,			NULL		}, /* 5932 */
-	{ 0,	0,	NULL,			NULL		}, /* 5933 */
-	{ 0,	0,	NULL,			NULL		}, /* 5934 */
-	{ 0,	0,	NULL,			NULL		}, /* 5935 */
-	{ 0,	0,	NULL,			NULL		}, /* 5936 */
-	{ 0,	0,	NULL,			NULL		}, /* 5937 */
-	{ 0,	0,	NULL,			NULL		}, /* 5938 */
-	{ 0,	0,	NULL,			NULL		}, /* 5939 */
-	{ 0,	0,	NULL,			NULL		}, /* 5940 */
-	{ 0,	0,	NULL,			NULL		}, /* 5941 */
-	{ 0,	0,	NULL,			NULL		}, /* 5942 */
-	{ 0,	0,	NULL,			NULL		}, /* 5943 */
-	{ 0,	0,	NULL,			NULL		}, /* 5944 */
-	{ 0,	0,	NULL,			NULL		}, /* 5945 */
-	{ 0,	0,	NULL,			NULL		}, /* 5946 */
-	{ 0,	0,	NULL,			NULL		}, /* 5947 */
-	{ 0,	0,	NULL,			NULL		}, /* 5948 */
-	{ 0,	0,	NULL,			NULL		}, /* 5949 */
-	{ 0,	0,	NULL,			NULL		}, /* 5950 */
-	{ 0,	0,	NULL,			NULL		}, /* 5951 */
-	{ 0,	0,	NULL,			NULL		}, /* 5952 */
-	{ 0,	0,	NULL,			NULL		}, /* 5953 */
-	{ 0,	0,	NULL,			NULL		}, /* 5954 */
-	{ 0,	0,	NULL,			NULL		}, /* 5955 */
-	{ 0,	0,	NULL,			NULL		}, /* 5956 */
-	{ 0,	0,	NULL,			NULL		}, /* 5957 */
-	{ 0,	0,	NULL,			NULL		}, /* 5958 */
-	{ 0,	0,	NULL,			NULL		}, /* 5959 */
-	{ 0,	0,	NULL,			NULL		}, /* 5960 */
-	{ 0,	0,	NULL,			NULL		}, /* 5961 */
-	{ 0,	0,	NULL,			NULL		}, /* 5962 */
-	{ 0,	0,	NULL,			NULL		}, /* 5963 */
-	{ 0,	0,	NULL,			NULL		}, /* 5964 */
-	{ 0,	0,	NULL,			NULL		}, /* 5965 */
-	{ 0,	0,	NULL,			NULL		}, /* 5966 */
-	{ 0,	0,	NULL,			NULL		}, /* 5967 */
-	{ 0,	0,	NULL,			NULL		}, /* 5968 */
-	{ 0,	0,	NULL,			NULL		}, /* 5969 */
-	{ 0,	0,	NULL,			NULL		}, /* 5970 */
-	{ 0,	0,	NULL,			NULL		}, /* 5971 */
-	{ 0,	0,	NULL,			NULL		}, /* 5972 */
-	{ 0,	0,	NULL,			NULL		}, /* 5973 */
-	{ 0,	0,	NULL,			NULL		}, /* 5974 */
-	{ 0,	0,	NULL,			NULL		}, /* 5975 */
-	{ 0,	0,	NULL,			NULL		}, /* 5976 */
-	{ 0,	0,	NULL,			NULL		}, /* 5977 */
-	{ 0,	0,	NULL,			NULL		}, /* 5978 */
-	{ 0,	0,	NULL,			NULL		}, /* 5979 */
-	{ 0,	0,	NULL,			NULL		}, /* 5980 */
-	{ 0,	0,	NULL,			NULL		}, /* 5981 */
-	{ 0,	0,	NULL,			NULL		}, /* 5982 */
-	{ 0,	0,	NULL,			NULL		}, /* 5983 */
-	{ 0,	0,	NULL,			NULL		}, /* 5984 */
-	{ 0,	0,	NULL,			NULL		}, /* 5985 */
-	{ 0,	0,	NULL,			NULL		}, /* 5986 */
-	{ 0,	0,	NULL,			NULL		}, /* 5987 */
-	{ 0,	0,	NULL,			NULL		}, /* 5988 */
-	{ 0,	0,	NULL,			NULL		}, /* 5989 */
-	{ 0,	0,	NULL,			NULL		}, /* 5990 */
-	{ 0,	0,	NULL,			NULL		}, /* 5991 */
-	{ 0,	0,	NULL,			NULL		}, /* 5992 */
-	{ 0,	0,	NULL,			NULL		}, /* 5993 */
-	{ 0,	0,	NULL,			NULL		}, /* 5994 */
-	{ 0,	0,	NULL,			NULL		}, /* 5995 */
-	{ 0,	0,	NULL,			NULL		}, /* 5996 */
-	{ 0,	0,	NULL,			NULL		}, /* 5997 */
-	{ 0,	0,	NULL,			NULL		}, /* 5998 */
-	{ 0,	0,	NULL,			NULL		}, /* 5999 */ /* end of Linux N64 */
-
-#if defined(LINUX_MIPSN32)
-	/* For an N32 strace decode the N32 64-bit syscalls.  */
-	{ 3,	TF,	sys_read,		"read"		}, /* 6000 */ /* start of Linux N32 */
-	{ 3,	TF,	sys_write,		"write"		}, /* 6001 */
-	{ 3,	TF,	sys_open,		"open"		}, /* 6002 */
-	{ 1,	0,	sys_close,		"close"		}, /* 6003 */
-	{ 2,	TF,	sys_stat64,		"stat"		}, /* 6004 */
-	{ 2,	0,	sys_fstat64,		"fstat"		}, /* 6005 */
-	{ 2,	TF,	sys_lstat64,		"lstat"		}, /* 6006 */
-	{ 3,	0,	sys_poll,		"poll"		}, /* 6007 */
-	{ 3,	0,	sys_lseek,		"lseek"		}, /* 6008 */
-	{ 6,	TD,	sys_mmap,		"mmap"		}, /* 6009 */
-	{ 3,	0,	sys_mprotect,		"mprotect"	}, /* 6010 */
-	{ 2,	0,	sys_munmap,		"munmap"	}, /* 6011 */
-	{ 1,	0,	sys_brk,		"brk"		}, /* 6012 */
-	{ 4,	TS,	sys_rt_sigaction,	"rt_sigaction"	}, /* 6013 */
-	{ 4,	TS,	sys_rt_sigprocmask,	"rt_sigprocmask"}, /* 6014 */
-	{ 3,	0,	sys_ioctl,		"ioctl"		}, /* 6015 */
-	{ 6,	TD,	sys_pread,		"pread"		}, /* 6016 */
-	{ 6,	TD,	sys_pwrite,		"pwrite"	}, /* 6017 */
-	{ 3,	0,	sys_readv,		"readv"		}, /* 6018 */
-	{ 3,	0,	sys_writev,		"writev"	}, /* 6019 */
-	{ 2,	TF,	sys_access,		"access"	}, /* 6020 */
-	{ 1,	0,	sys_pipe,		"pipe"		}, /* 6021 */
-	{ 5,	0,	sys_select,		"_newselect"	}, /* 6022 */
-	{ 0,	0,	sys_sched_yield,	"sched_yield"	}, /* 6023 */
-	{ 5,	0,	sys_mremap,		"mremap"	}, /* 6024 */
-	{ 3,	0,	sys_msync,		"msync"		}, /* 6025 */
-	{ 3,	0,	sys_mincore,		"mincore"	}, /* 6026 */
-	{ 3,	0,	sys_madvise,		"madvise"	}, /* 6027 */
-	{ 3,	TI,	sys_shmget,		"shmget"	}, /* 6028 */
-	{ 3,	TI,	sys_shmat,		"shmgat"	}, /* 6029 */
-	{ 3,	TI,	sys_shmctl,		"shmctl"	}, /* 6030 */
-	{ 1,	0,	sys_dup,		"dup"		}, /* 6031 */
-	{ 2,	0,	sys_dup2,		"dup2"		}, /* 6032 */
-	{ 0,	TS,	sys_pause,		"pause"		}, /* 6033 */
-	{ 2,	0,	sys_nanosleep,		"nanosleep"	}, /* 6034 */
-	{ 2,	0,	sys_getitimer,		"getitimer"	}, /* 6035 */
-	{ 3,	0,	sys_setitimer,		"setitimer"	}, /* 6036 */
-	{ 1,	0,	sys_alarm,		"alarm"		}, /* 6037 */
-	{ 0,	0,	sys_getpid,		"getpid"	}, /* 6038 */
-	{ 4,	TD|TN,	sys_sendfile,		"sendfile"	}, /* 6039 */
-	{ 2,	0,	sys_socketcall,		"socketcall"	}, /* 6040 */
-	{ 3,	TN,	sys_connect,		"connect"	}, /* 6041 */
-	{ 3,	TN,	sys_accept,		"accept"	}, /* 6042 */
-	{ 6,	TN,	sys_sendto,		"sendto"	}, /* 6043 */
-	{ 6,	TN,	sys_recvfrom,		"recvfrom"	}, /* 6044 */
-	{ 3,	TN,	sys_sendmsg,		"sendmsg"	}, /* 6045 */
-	{ 3,	TN,	sys_recvmsg,		"recvmsg"	}, /* 6046 */
-	{ 2,	TN,	sys_shutdown,		"shutdown"	}, /* 6047 */
-	{ 3,	TN,	sys_bind,		"bind"		}, /* 6048 */
-	{ 2,	TN,	sys_listen,		"listen"	}, /* 6049 */
-	{ 3,	TN,	sys_getsockname,	"getsockname"	}, /* 6050 */
-	{ 3,	TN,	sys_getpeername,	"getpeername"	}, /* 6051 */
-	{ 4,	TN,	sys_socketpair,		"socketpair"	}, /* 6052 */
-	{ 5,	TN,	sys_setsockopt,		"setsockopt"	}, /* 6053 */
-	{ 5,	TN,	sys_getsockopt,		"getsockopt"	}, /* 6054 */
-	{ 2,	TP,	sys_clone,		"clone"		}, /* 6055 */
-	{ 0,	TP,	sys_fork,		"fork"		}, /* 6056 */
-	{ 3,	TF|TP,	sys_execve,		"execve"	}, /* 6057 */
-	{ 1,	TP,	sys_exit,		"exit"		}, /* 6058 */
-	{ 4,	TP,	sys_wait4,		"wait4"		}, /* 6059 */
-	{ 2,	TS,	sys_kill,		"kill"		}, /* 6060 */
-	{ 1,	0,	sys_uname,		"uname"		}, /* 6061 */
-	{ 3,	TI,	sys_semget,		"semget"	}, /* 6062 */
-	{ 3,	TI,	printargs,		"semop"		}, /* 6063 */
-	{ 4,	TI,	sys_semctl,		"semctl"	}, /* 6064 */
-	{ 1,	TI,	sys_shmdt,		"shmdt"		}, /* 6065 */
-	{ 2,	TI,	sys_msgget,		"msgget"	}, /* 6066 */
-	{ 4,	TI,	sys_msgsnd,		"msgsnd"	}, /* 6067 */
-	{ 5,	TI,	sys_msgrcv,		"msgrcv"	}, /* 6068 */
-	{ 3,	TI,	sys_msgctl,		"msgctl"	}, /* 6069 */
-	{ 3,	0,	sys_fcntl,		"fcntl"		}, /* 6070 */
-	{ 2,	0,	sys_flock,		"flock"		}, /* 6071 */
-	{ 1,	TD,	sys_fsync,		"fsync"		}, /* 6072 */
-	{ 1,	0,	sys_fdatasync,		"fdatasync"	}, /* 6073 */
-	{ 2,	TF,	sys_truncate,		"truncate"	}, /* 6074 */
-	{ 2,	0,	sys_ftruncate,		"ftruncate"	}, /* 6075 */
-	{ 3,	0,	sys_getdents,		"getdents"	}, /* 6076 */
-	{ 2,	TF,	sys_getcwd,		"getcwd"	}, /* 6077 */
-	{ 1,	TF,	sys_chdir,		"chdir"		}, /* 6078 */
-	{ 1,	TF,	sys_fchdir,		"fchdir"	}, /* 6079 */
-	{ 2,	TF,	sys_rename,		"rename"	}, /* 6080 */
-	{ 2,	TF,	sys_mkdir,		"mkdir"		}, /* 6081 */
-	{ 1,	TF,	sys_rmdir,		"rmdir"		}, /* 6082 */
-	{ 2,	TF,	sys_creat,		"creat"		}, /* 6083 */
-	{ 2,	TF,	sys_link,		"link"		}, /* 6084 */
-	{ 1,	TF,	sys_unlink,		"unlink"	}, /* 6085 */
-	{ 2,	TF,	sys_symlink,		"symlink"	}, /* 6086 */
-	{ 3,	TF,	sys_readlink,		"readlink"	}, /* 6087 */
-	{ 2,	TF,	sys_chmod,		"chmod"		}, /* 6088 */
-	{ 2,	0,	sys_fchmod,		"fchmod"	}, /* 6089 */
-	{ 3,	TF,	sys_chown,		"chown"		}, /* 6090 */
-	{ 3,	0,	sys_fchown,		"fchown"	}, /* 6091 */
-	{ 3,	TF,	sys_chown,		"lchown"	}, /* 6092 */
-	{ 1,	0,	sys_umask,		"umask"		}, /* 6093 */
-	{ 2,	0,	sys_gettimeofday,	"gettimeofday"	}, /* 6094 */
-	{ 2,	0,	sys_getrlimit,		"getrlimit"	}, /* 6095 */
-	{ 2,	0,	sys_getrusage,		"getrusage"	}, /* 6096 */
-	{ 1,	0,	sys_sysinfo,		"sysinfo"	}, /* 6097 */
-	{ 1,	0,	sys_times,		"times"		}, /* 6098 */
-	{ 4,	0,	sys_ptrace,		"ptrace"	}, /* 6099 */
-	{ 0,	NF,	sys_getuid,		"getuid"	}, /* 6100 */
-	{ 3,	0,	sys_syslog,		"syslog"	}, /* 6101 */
-	{ 0,	NF,	sys_getgid,		"getgid"	}, /* 6102 */
-	{ 1,	0,	sys_setuid,		"setuid"	}, /* 6103 */
-	{ 1,	0,	sys_setgid,		"setgid"	}, /* 6104 */
-	{ 0,	NF,	sys_geteuid,		"geteuid"	}, /* 6105 */
-	{ 0,	NF,	sys_getegid,		"getegid"	}, /* 6106 */
-	{ 2,	0,	sys_setpgid,		"setpgid"	}, /* 6107 */
-	{ 0,	0,	sys_getppid,		"getppid"	}, /* 6108 */
-	{ 0,	0,	sys_getpgrp,		"getpgrp"	}, /* 6109 */
-	{ 0,	0,	sys_setsid,		"setsid"	}, /* 6110 */
-	{ 2,	0,	sys_setreuid,		"setreuid"	}, /* 6111 */
-	{ 2,	0,	sys_setregid,		"setregid"	}, /* 6112 */
-	{ 2,	0,	sys_getgroups,		"getgroups"	}, /* 6113 */
-	{ 2,	0,	sys_setgroups,		"setgroups"	}, /* 6114 */
-	{ 3,	0,	sys_setresuid,		"setresuid"	}, /* 6115 */
-	{ 3,	0,	sys_getresuid,		"getresuid"	}, /* 6116 */
-	{ 3,	0,	sys_setresgid,		"setresgid"	}, /* 6117 */
-	{ 3,	0,	sys_getresgid,		"getresgid"	}, /* 6118 */
-	{ 0,	0,	sys_getpgid,		"getpgid"	}, /* 6119 */
-	{ 1,	NF,	sys_setfsuid,		"setfsuid"	}, /* 6120 */
-	{ 1,	NF,	sys_setfsgid,		"setfsgid"	}, /* 6121 */
-	{ 1,	0,	sys_getsid,		"getsid"	}, /* 6122 */
-	{ 2,	0,	sys_capget,		"capget"	}, /* 6123 */
-	{ 2,	0,	sys_capset,		"capset"	}, /* 6124 */
-	{ 2,	TS,	sys_rt_sigpending,	"rt_sigpending"	}, /* 6125 */
-	{ 4,	TS,	sys_rt_sigtimedwait,	"rt_sigtimedwait"},/* 6126 */
-	{ 3,	TS,	sys_rt_sigqueueinfo,	"rt_sigqueueinfo"},/* 6127 */
-	{ 2,	TS,	sys_rt_sigsuspend,	"rt_siguspend"	}, /* 6128 */
-	{ 2,	TS,	sys_sigaltstack,	"sigaltstatck"	}, /* 6129 */
-	{ 2,	TF,	sys_utime,		"utime"		}, /* 6130 */
-	{ 3,	TF,	sys_mknod,		"mknod"		}, /* 6131 */
-	{ 1,	0,	sys_personality,	"personality"	}, /* 6132 */
-	{ 2,	0,	sys_ustat,		"ustat"		}, /* 6133 */
-	{ 3,	0,	sys_statfs,		"statfs"	}, /* 6134 */
-	{ 3,	0,	sys_fstatfs,		"fstatfs"	}, /* 6135 */
-	{ 5,	0,	sys_sysfs,		"sysfs"		}, /* 6136 */
-	{ 2,	0,	sys_getpriority,	"getpriority"	}, /* 6137 */
-	{ 3,	0,	sys_setpriority,	"setpriority"	}, /* 6138 */
-	{ 2,	0,	sys_sched_setparam,	"sched_setparam"}, /* 6139 */
-	{ 2,	0,	sys_sched_getparam,	"sched_getparam"}, /* 6140 */
-	{ 3,	0,	sys_sched_setscheduler,	"sched_setscheduler"}, /* 6141 */
-	{ 1,	0,	sys_sched_getscheduler,	"sched_getscheduler"}, /* 6142 */
-	{ 1,	0,	sys_sched_get_priority_max,"sched_get_priority_max"}, /* 6143 */
-	{ 1,	0,	sys_sched_get_priority_min,"sched_get_priority_min"}, /* 6144 */
-	{ 2,	0,	sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 6145 */
-	{ 2,	0,	sys_mlock,		"mlock"		}, /* 6146 */
-	{ 2,	0,	sys_munlock,		"munlock"	}, /* 6147 */
-	{ 1,	0,	sys_mlockall,		"mlockall"	}, /* 6148 */
-	{ 0,	0,	sys_munlockall,		"munlockall"	}, /* 6149 */
-	{ 0,	0,	sys_vhangup,		"vhangup"	}, /* 6150 */
-	{ 2,	0,	sys_pivotroot,		"pivot_root"	}, /* 6151 */
-	{ 1,	0,	sys_sysctl,		"_sysctl"	}, /* 6152 */
-	{ 5,	0,	sys_prctl,		"prctl"		}, /* 6153 */
-	{ 1,	0,	sys_adjtimex,		"adjtimex"	}, /* 6154 */
-	{ 2,	0,	sys_setrlimit,		"setrlimit"	}, /* 6155 */
-	{ 1,	TF,	sys_chroot,		"chroot"	}, /* 6156 */
-	{ 0,	0,	sys_sync,		"sync"		}, /* 6157 */
-	{ 1,	TF,	sys_acct,		"acct"		}, /* 6158 */
-	{ 2,	0,	sys_settimeofday,	"settimeofday"	}, /* 6159 */
-	{ 5,	TF,	sys_mount,		"mount"		}, /* 6160 */
-	{ 2,	TF,	sys_umount2,		"umount"	}, /* 6161 */
-	{ 2,	TF,	sys_swapon,		"swapon"	}, /* 6162 */
-	{ 1,	TF,	sys_swapoff,		"swapoff"	}, /* 6163 */
-	{ 4,	0,	sys_reboot,		"reboot"	}, /* 6164 */
-	{ 2,	0,	sys_sethostname,	"sethostname"	}, /* 6165 */
-	{ 2,	0,	sys_setdomainname,	"setdomainname"	}, /* 6166 */
-	{ 2,	0,	sys_create_module,	"create_module"	}, /* 6167 */
-	{ 4,	0,	sys_init_module,	"init_module"	}, /* 6168 */
-	{ 1,	0,	sys_delete_module,	"delete_module"	}, /* 6169 */
-	{ 1,	0,	sys_get_kernel_syms,	"get_kernel_syms"}, /* 6170 */
-	{ 5,	0,	sys_query_module,	"query_module"	}, /* 6171 */
-	{ 4,	0,	sys_quotactl,		"quotactl"	}, /* 6172 */
-	{ 3,	0,	sys_nfsservctl,		"nfsservctl"	}, /* 6173 */
-	{ 5,	TN,	printargs,		"getpmsg"	}, /* 6174 */
-	{ 5,	TN,	printargs,		"putpmsg"	}, /* 6175 */
-	{ 0,	0,	sys_afs_syscall,	"afs_syscall"	}, /* 6176 */
-	{ 0,	0,	printargs,		"reserved177"	}, /* 6177 */
-	{ 0,	0,	sys_gettid,		"gettid"	}, /* 6178 */
-	{ 3,	0,	sys_readahead,		"readahead"	}, /* 6179 */
-	{ 5,	0,	sys_setxattr,		"setxattr"	}, /* 6180 */
-	{ 5,	0,	sys_setxattr,		"lsetxattr"	}, /* 6181 */
-	{ 5,	0,	sys_fsetxattr,		"fsetxattr"	}, /* 6182 */
-	{ 4,	0,	sys_getxattr,		"getxattr"	}, /* 6183 */
-	{ 4,	0,	sys_getxattr,		"lgetxattr"	}, /* 6184 */
-	{ 4,	TD,	sys_fgetxattr,		"fgetxattr"	}, /* 6185 */
-	{ 3,	0,	sys_listxattr,		"listxattr"	}, /* 6186 */
-	{ 3,	0,	sys_listxattr,		"llistxattr"	}, /* 6187 */
-	{ 3,	TD,	sys_flistxattr,		"flistxattr"	}, /* 6188 */
-	{ 2,	0,	sys_removexattr,	"removexattr"	}, /* 6189 */
-	{ 2,	0,	sys_removexattr,	"lremovexattr"	}, /* 6190 */
-	{ 2,	TD,	sys_fremovexattr,	"fremovexattr"	}, /* 6191 */
-	{ 2,	TS,	sys_kill,		"tkill"		}, /* 6192 */
-	{ 1,	0,	sys_time,		"time"		}, /* 6193 */
-	{ 6,	0,	sys_futex,		"futex"		}, /* 6194 */
-	{ 3,	0,	sys_sched_setaffinity,	"sched_setaffinity"}, /* 6195 */
-	{ 3,	0,	sys_sched_getaffinity,	"sched_getaffinity"}, /* 6196 */
-	{ 3,	0,	printargs,		"cacheflush"	}, /* 6197 */
-	{ 3,	0,	printargs,		"cachectl"	}, /* 6198 */
-	{ 4,	0,	sys_sysmips,		"sysmips"	}, /* 6199 */
-	{ 2,	0,	sys_io_setup,		"io_setup"	}, /* 6200 */
-	{ 1,	0,	sys_io_destroy,		"io_destroy"	}, /* 6201 */
-	{ 5,	0,	sys_io_getevents,	"io_getevents"	}, /* 6202 */
-	{ 3,	0,	sys_io_submit,		"io_submit"	}, /* 6203 */
-	{ 3,	0,	sys_io_cancel,		"io_cancel"	}, /* 6204 */
-	{ 1,	TP,	sys_exit,		"exit_group"}, /* 6205 */
-	{ 3,	0,	sys_lookup_dcookie,	"lookup_dcookie"	}, /* 6206 */
-	{ 1,	TD,	sys_epoll_create,	"epoll_create"	}, /* 6207 */
-	{ 4,	TD,	sys_epoll_ctl,		"epoll_ctl"	}, /* 6208 */
-	{ 4,	TD,	sys_epoll_wait,		"epoll_wait"	}, /* 6209 */
-	{ 5,	0,	sys_remap_file_pages,	"remap_file_pages"	}, /* 6210 */
-	{ 0,	TS,	sys_rt_sigreturn,	"rt_sigreturn"	}, /* 6211 */
-	{ 3,	0,	sys_fcntl,		"fcntl64"	}, /* 6212 */
-	{ 1,	0,	sys_set_tid_address,	"set_tid_address" }, /* 6213 */
-	{ 0,	0,	sys_restart_syscall,	"restart_syscall" }, /* 6214 */
-	{ 5,	TI,	sys_semtimedop,		"semtimedop"	}, /* 6215 */
-	{ 5,	TD,	sys_fadvise64,		"fadvise64"	}, /* 6216 */
-	{ 3,	TF,	sys_statfs64,		"statfs64"	}, /* 6217 */
-	{ 3,	TD,	sys_fstatfs64,		"fstatfs64"	}, /* 6218 */
-	{ 4,	TD|TN,	sys_sendfile64,		"sendfile64"	}, /* 6219 */
-	{ 3,	0,	sys_timer_create,	"timer_create"	}, /* 6220 */
-	{ 4,	0,	sys_timer_settime,	"timer_settime"	}, /* 6221 */
-	{ 2,	0,	sys_timer_gettime,	"timer_gettime"	}, /* 6222 */
-	{ 1,	0,	sys_timer_getoverrun,	"timer_getoverrun"	}, /* 6223 */
-	{ 1,	0,	sys_timer_delete,	"timer_delete"	}, /* 6224 */
-	{ 2,	0,	sys_clock_settime,	"clock_settime"	}, /* 6225 */
-	{ 2,	0,	sys_clock_gettime,	"clock_gettime"	}, /* 6226 */
-	{ 2,	0,	sys_clock_getres,	"clock_getres"	}, /* 6227 */
-	{ 4,	0,	sys_clock_nanosleep,	"clock_nanosleep" }, /* 6228 */
-	{ 3,	TS,	sys_tgkill,		"tgkill"	}, /* 6229 */
-	{ 2,	TF,	sys_utimes,		"utimes"	}, /* 6230 */
-	{ 0,	0,	NULL,			NULL		}, /* 6231 */
-	{ 0,	0,	NULL,			NULL		}, /* 6232 */
-	{ 0,	0,	NULL,			NULL		}, /* 6233 */
-	{ 4,	0,	sys_mq_open,		"mq_open"	}, /* 6234 */
-	{ 1,	0,	sys_mq_unlink,		"mq_unlink"	}, /* 6235 */
-	{ 5,	0,	sys_mq_timedsend,	"mq_timedsend"	}, /* 6236 */
-	{ 5,	0,	sys_mq_timedreceive,	"mq_timedreceive" }, /* 6237 */
-	{ 2,	0,	sys_mq_notify,		"mq_notify"	}, /* 6238 */
-	{ 3,	0,	sys_mq_getsetattr,	"mq_getsetattr"	}, /* 6239 */
-	{ 0,	0,	NULL,			NULL		}, /* 6240 */
-	{ 5,	TP,	sys_waitid,		"waitid"	}, /* 6241 */
-	{ 0,	0,	NULL,			NULL		}, /* 6242 */
-	{ 5,	0,	sys_add_key,		"add_key"	}, /* 6243 */
-	{ 4,	0,	sys_request_key,	"request_key"	}, /* 6244 */
-	{ 5,	0,	sys_keyctl,		"keyctl"	}, /* 6245 */
-	{ 1,	0,	sys_set_thread_area,	"set_thread_area" }, /* 6246 */
-	{ 0,	TD,	sys_inotify_init,	"inotify_init"	}, /* 6247 */
-	{ 3,	TD,	sys_inotify_add_watch,	"inotify_add_watch" }, /* 6248 */
-	{ 2,	TD,	sys_inotify_rm_watch,	"inotify_rm_watch" }, /* 6249 */
-	{ 4,	0,	sys_migrate_pages,	"migrate_pages"	}, /* 6250 */
-	{ 4,	TD|TF,	sys_openat,		"openat"	}, /* 6251 */
-	{ 3,	TD|TF,	sys_mkdirat,		"mkdirat"	}, /* 6252 */
-	{ 4,	TD|TF,	sys_mknodat,		"mknodat"	}, /* 6253 */
-	{ 5,	TD|TF,	sys_fchownat,		"fchownat"	}, /* 6254 */
-	{ 3,	TD|TF,	sys_futimesat,		"futimesat"	}, /* 6255 */
-	{ 4,	TD|TF,	sys_newfstatat,		"newfstatat"	}, /* 6256 */
-	{ 3,	TD|TF,	sys_unlinkat,		"unlinkat"	}, /* 6257 */
-	{ 4,	TD|TF,	sys_renameat,		"renameat"	}, /* 6258 */
-	{ 5,	TD|TF,	sys_linkat,		"linkat"	}, /* 6259 */
-	{ 3,	TD|TF,	sys_symlinkat,		"symlinkat"	}, /* 6260 */
-	{ 4,	TD|TF,	sys_readlinkat,		"readlinkat"	}, /* 6261 */
-	{ 3,	TD|TF,	sys_fchmodat,		"fchmodat"	}, /* 6262 */
-	{ 3,	TD|TF,	sys_faccessat,		"faccessat"	}, /* 6263 */
-	{ 6,	TD,	sys_pselect6,		"pselect6"	}, /* 6264 */
-	{ 5,	TD,	sys_ppoll,		"ppoll"		}, /* 6265 */
-	{ 1,	TP,	sys_unshare,		"unshare"	}, /* 6266 */
-	{ 6,	TD,	sys_splice,		"splice"	}, /* 6267 */
-	{ 4,	TD,	sys_sync_file_range,	"sync_file_range" }, /* 6268 */
-	{ 4,	TD,	sys_tee,		"tee"		}, /* 6269 */
-	{ 4,	TD,	sys_vmsplice,		"vmsplice"	}, /* 6270 */
-	{ 6,	0,	printargs,		"move_pages"	}, /* 6271 */
-	{ 2,	0,	sys_set_robust_list,	"set_robust_list" }, /* 6272 */
-	{ 3,	0,	sys_get_robust_list,	"get_robust_list" }, /* 6273 */
-	{ 4,	0,	sys_kexec_load,		"kexec_load"	}, /* 6274 */
-	{ 3,	0,	sys_getcpu,		"getcpu"	}, /* 6275 */
-	{ 6,	TD,	sys_epoll_pwait,	"epoll_pwait"	}, /* 6276 */
-	{ 3,	0,	sys_ioprio_set,		"ioprio_set"	}, /* 6277 */
-	{ 2,	0,	sys_ioprio_get,		"ioprio_get"	}, /* 6278 */
-	{ 4,	TD|TF,	sys_utimensat,		"utimensat"	}, /* 6279 */
-	{ 3,	TD|TS,	sys_signalfd,		"signalfd"	}, /* 6280 */
-	{ 0,	0,	NULL,			NULL		}, /* 6281 */
-	{ 1,	TD,	sys_eventfd,		"eventfd"	}, /* 6282 */
-	{ 6,	TD,	sys_fallocate,		"fallocate"	}, /* 6283 */
-	{ 2,	TD,	sys_timerfd_create,	"timerfd_create" }, /* 6284 */
-	{ 2,	TD,	sys_timerfd_gettime,	"timerfd_gettime" }, /* 6285 */
-	{ 4,	TD,	sys_timerfd_settime,	"timerfd_settime" }, /* 6286 */
-	{ 4,	TD|TS,	sys_signalfd4,		"signalfd4"	}, /* 6287 */
-	{ 2,	TD,	sys_eventfd2,		"eventfd2"	}, /* 6288 */
-	{ 1,	TD,	sys_epoll_create1,	"epoll_create1"	}, /* 6289 */
-	{ 3,	TD,	sys_dup3,		"dup3"		}, /* 6290 */
-	{ 2,	TD,	sys_pipe2,		"pipe2"		}, /* 6291 */
-	{ 1,	TD,	sys_inotify_init1,	"inotify_init1"	}, /* 6292 */
-	{ 5,	TD,	sys_preadv,		"preadv"	}, /* 6293 */
-	{ 5,	TD,	sys_pwritev,		"pwritev"	}, /* 6294 */
-	{ 4,	TP|TS,	sys_rt_tgsigqueueinfo,	"rt_tgsigqueueinfo" }, /* 6295 */
-	{ 5,	TD,	sys_perf_event_open,	"perf_event_open" }, /* 6296 */
-	{ 4,	TN,	sys_accept4,		"accept4"	}, /* 6297 */
-	{ 5,	TN,	sys_recvmmsg,		"recvmmsg"	}, /* 6298 */
-	{ 3,	TD,	sys_getdents,		"getdents"	}, /* 6299 */
-	{ 2,	TD,	sys_fanotify_init,	"fanotify_init"	}, /* 6300 */
-	{ 5,	TD|TF,	sys_fanotify_mark,	"fanotify_mark"	}, /* 6301 */
-	{ 4,	0,	sys_prlimit64,		"prlimit64"	}, /* 6302 */
-	{ 5,	TD|TF,	sys_name_to_handle_at,	"name_to_handle_at"}, /* 6303 */
-	{ 3,	TD,	sys_open_by_handle_at,	"open_by_handle_at"}, /* 6304 */
-	{ 2,	0,	sys_clock_adjtime,	"clock_adjtime"	}, /* 6305 */
-	{ 1,	TD,	sys_syncfs,		"syncfs"	}, /* 6306 */
-	{ 4,	TN,	sys_sendmmsg,		"sendmmsg"	}, /* 6307 */
-	{ 2,	TD,	sys_setns,		"setns"		}, /* 6308 */
-	{ 6,	0,	sys_process_vm_readv,	"process_vm_readv"	}, /* 6309 */
-	{ 6,	0,	sys_process_vm_writev,	"process_vm_writev"	}, /* 6310 */
-
-#else
-	{ 0,	0,	printargs,		"n32_read"		}, /* 6000 */
-	{ 0,	0,	printargs,		"n32_write"		}, /* 6001 */
-	{ 0,	0,	printargs,		"n32_open"		}, /* 6002 */
-	{ 0,	0,	printargs,		"n32_close"		}, /* 6003 */
-	{ 0,	0,	printargs,		"n32_stat"		}, /* 6004 */
-	{ 0,	0,	printargs,		"n32_fstat"		}, /* 6005 */
-	{ 0,	0,	printargs,		"n32_lstat"		}, /* 6006 */
-	{ 0,	0,	printargs,		"n32_poll"		}, /* 6007 */
-	{ 0,	0,	printargs,		"n32_lseek"		}, /* 6008 */
-	{ 0,	0,	printargs,		"n32_mmap"		}, /* 6009 */
-	{ 0,	0,	printargs,		"n32_mprotect"		}, /* 6010 */
-	{ 0,	0,	printargs,		"n32_munmap"		}, /* 6011 */
-	{ 0,	0,	printargs,		"n32_brk"		}, /* 6012 */
-	{ 0,	0,	printargs,		"n32_rt_sigaction"	}, /* 6013 */
-	{ 0,	0,	printargs,		"n32_rt_sigprocmask"	}, /* 6014 */
-	{ 0,	0,	printargs,		"n32_ioctl"		}, /* 6015 */
-	{ 0,	0,	printargs,		"n32_pread"		}, /* 6016 */
-	{ 0,	0,	printargs,		"n32_pwrite"		}, /* 6017 */
-	{ 0,	0,	printargs,		"n32_readv"		}, /* 6018 */
-	{ 0,	0,	printargs,		"n32_writev"		}, /* 6019 */
-	{ 0,	0,	printargs,		"n32_access"		}, /* 6020 */
-	{ 0,	0,	printargs,		"n32_pipe"		}, /* 6021 */
-	{ 0,	0,	printargs,		"n32__newselect"	}, /* 6022 */
-	{ 0,	0,	printargs,		"n32_sched_yield"	}, /* 6023 */
-	{ 0,	0,	printargs,		"n32_mremap"		}, /* 6024 */
-	{ 0,	0,	printargs,		"n32_msync"		}, /* 6025 */
-	{ 0,	0,	printargs,		"n32_mincore"		}, /* 6026 */
-	{ 0,	0,	printargs,		"n32_madvise"		}, /* 6027 */
-	{ 0,	0,	printargs,		"n32_shmget"		}, /* 6028 */
-	{ 0,	0,	printargs,		"n32_shmgat"		}, /* 6029 */
-	{ 0,	0,	printargs,		"n32_shmctl"		}, /* 6030 */
-	{ 0,	0,	printargs,		"n32_dup"		}, /* 6031 */
-	{ 0,	0,	printargs,		"n32_dup2"		}, /* 6032 */
-	{ 0,	0,	printargs,		"n32_pause"		}, /* 6033 */
-	{ 0,	0,	printargs,		"n32_nanosleep"		}, /* 6034 */
-	{ 0,	0,	printargs,		"n32_getitimer"		}, /* 6035 */
-	{ 0,	0,	printargs,		"n32_setitimer"		}, /* 6036 */
-	{ 0,	0,	printargs,		"n32_alarm"		}, /* 6037 */
-	{ 0,	0,	printargs,		"n32_getpid"		}, /* 6038 */
-	{ 0,	0,	printargs,		"n32_sendfile"		}, /* 6039 */
-	{ 0,	0,	printargs,		"n32_socketcall"	}, /* 6040 */
-	{ 0,	0,	printargs,		"n32_connect"		}, /* 6041 */
-	{ 0,	0,	printargs,		"n32_accept"		}, /* 6042 */
-	{ 0,	0,	printargs,		"n32_sendto"		}, /* 6043 */
-	{ 0,	0,	printargs,		"n32_recvfrom"		}, /* 6044 */
-	{ 0,	0,	printargs,		"n32_sendmsg"		}, /* 6045 */
-	{ 0,	0,	printargs,		"n32_recvmsg"		}, /* 6046 */
-	{ 0,	0,	printargs,		"n32_shutdown"		}, /* 6047 */
-	{ 0,	0,	printargs,		"n32_bind"		}, /* 6048 */
-	{ 0,	0,	printargs,		"n32_listen"		}, /* 6049 */
-	{ 0,	0,	printargs,		"n32_getsockname"	}, /* 6050 */
-	{ 0,	0,	printargs,		"n32_getpeername"	}, /* 6051 */
-	{ 0,	0,	printargs,		"n32_socketpair"	}, /* 6052 */
-	{ 0,	0,	printargs,		"n32_setsockopt"	}, /* 6053 */
-	{ 0,	0,	printargs,		"n32_getsockopt"	}, /* 6054 */
-	{ 0,	0,	printargs,		"n32_clone"		}, /* 6055 */
-	{ 0,	0,	printargs,		"n32_fork"		}, /* 6056 */
-	{ 0,	0,	printargs,		"n32_execve"		}, /* 6057 */
-	{ 0,	0,	printargs,		"n32_exit"		}, /* 6058 */
-	{ 0,	0,	printargs,		"n32_wait4"		}, /* 6059 */
-	{ 0,	0,	printargs,		"n32_kill"		}, /* 6060 */
-	{ 0,	0,	printargs,		"n32_uname"		}, /* 6061 */
-	{ 0,	0,	printargs,		"n32_semget"		}, /* 6062 */
-	{ 0,	0,	printargs,		"n32_semop"		}, /* 6063 */
-	{ 0,	0,	printargs,		"n32_semctl"		}, /* 6064 */
-	{ 0,	0,	printargs,		"n32_shmdt"		}, /* 6065 */
-	{ 0,	0,	printargs,		"n32_msgget"		}, /* 6066 */
-	{ 0,	0,	printargs,		"n32_msgsnd"		}, /* 6067 */
-	{ 0,	0,	printargs,		"n32_msgrcv"		}, /* 6068 */
-	{ 0,	0,	printargs,		"n32_msgctl"		}, /* 6069 */
-	{ 0,	0,	printargs,		"n32_fcntl"		}, /* 6070 */
-	{ 0,	0,	printargs,		"n32_flock"		}, /* 6071 */
-	{ 0,	0,	printargs,		"n32_fsync"		}, /* 6072 */
-	{ 0,	0,	printargs,		"n32_fdatasync"		}, /* 6073 */
-	{ 0,	0,	printargs,		"n32_truncate"		}, /* 6074 */
-	{ 0,	0,	printargs,		"n32_ftruncate"		}, /* 6075 */
-	{ 0,	0,	printargs,		"n32_getdents"		}, /* 6076 */
-	{ 0,	0,	printargs,		"n32_getcwd"		}, /* 6077 */
-	{ 0,	0,	printargs,		"n32_chdir"		}, /* 6078 */
-	{ 0,	0,	printargs,		"n32_fchdir"		}, /* 6079 */
-	{ 0,	0,	printargs,		"n32_rename"		}, /* 6080 */
-	{ 0,	0,	printargs,		"n32_mkdir"		}, /* 6081 */
-	{ 0,	0,	printargs,		"n32_rmdir"		}, /* 6082 */
-	{ 0,	0,	printargs,		"n32_creat"		}, /* 6083 */
-	{ 0,	0,	printargs,		"n32_link"		}, /* 6084 */
-	{ 0,	0,	printargs,		"n32_unlink"		}, /* 6085 */
-	{ 0,	0,	printargs,		"n32_symlink"		}, /* 6086 */
-	{ 0,	0,	printargs,		"n32_readlink"		}, /* 6087 */
-	{ 0,	0,	printargs,		"n32_chmod"		}, /* 6088 */
-	{ 0,	0,	printargs,		"n32_fchmod"		}, /* 6089 */
-	{ 0,	0,	printargs,		"n32_chown"		}, /* 6090 */
-	{ 0,	0,	printargs,		"n32_fchown"		}, /* 6091 */
-	{ 0,	0,	printargs,		"n32_lchown"		}, /* 6092 */
-	{ 0,	0,	printargs,		"n32_umask"		}, /* 6093 */
-	{ 0,	0,	printargs,		"n32_gettimeofday"	}, /* 6094 */
-	{ 0,	0,	printargs,		"n32_getrlimit"		}, /* 6095 */
-	{ 0,	0,	printargs,		"n32_getrusage"		}, /* 6096 */
-	{ 0,	0,	printargs,		"n32_sysinfo"		}, /* 6097 */
-	{ 0,	0,	printargs,		"n32_times"		}, /* 6098 */
-	{ 0,	0,	printargs,		"n32_ptrace"		}, /* 6099 */
-	{ 0,	0,	printargs,		"n32_getuid"		}, /* 6100 */
-	{ 0,	0,	printargs,		"n32_syslog"		}, /* 6101 */
-	{ 0,	0,	printargs,		"n32_getgid"		}, /* 6102 */
-	{ 0,	0,	printargs,		"n32_setuid"		}, /* 6103 */
-	{ 0,	0,	printargs,		"n32_setgid"		}, /* 6104 */
-	{ 0,	0,	printargs,		"n32_geteuid"		}, /* 6105 */
-	{ 0,	0,	printargs,		"n32_getegid"		}, /* 6106 */
-	{ 0,	0,	printargs,		"n32_setpgid"		}, /* 6107 */
-	{ 0,	0,	printargs,		"n32_getppid"		}, /* 6108 */
-	{ 0,	0,	printargs,		"n32_getpgrp"		}, /* 6109 */
-	{ 0,	0,	printargs,		"n32_setsid"		}, /* 6110 */
-	{ 0,	0,	printargs,		"n32_setreuid"		}, /* 6111 */
-	{ 0,	0,	printargs,		"n32_setregid"		}, /* 6112 */
-	{ 0,	0,	printargs,		"n32_getgroups"		}, /* 6113 */
-	{ 0,	0,	printargs,		"n32_setgroups"		}, /* 6114 */
-	{ 0,	0,	printargs,		"n32_setresuid"		}, /* 6115 */
-	{ 0,	0,	printargs,		"n32_getresuid"		}, /* 6116 */
-	{ 0,	0,	printargs,		"n32_setresgid"		}, /* 6117 */
-	{ 0,	0,	printargs,		"n32_getresgid"		}, /* 6118 */
-	{ 0,	0,	printargs,		"n32_getpgid"		}, /* 6119 */
-	{ 0,	0,	printargs,		"n32_setfsuid"		}, /* 6120 */
-	{ 0,	0,	printargs,		"n32_setfsgid"		}, /* 6121 */
-	{ 0,	0,	printargs,		"n32_getsid"		}, /* 6122 */
-	{ 0,	0,	printargs,		"n32_capget"		}, /* 6123 */
-	{ 0,	0,	printargs,		"n32_capset"		}, /* 6124 */
-	{ 0,	0,	printargs,		"n32_rt_sigpending"	}, /* 6125 */
-	{ 0,	0,	printargs,		"n32_rt_sigtimedwait"	}, /* 6126 */
-	{ 0,	0,	printargs,		"n32_rt_sigqueueinfo"	}, /* 6127 */
-	{ 0,	0,	printargs,		"n32_rt_siguspend"	}, /* 6128 */
-	{ 0,	0,	printargs,		"n32_sigaltstatck"	}, /* 6129 */
-	{ 0,	0,	printargs,		"n32_utime"		}, /* 6130 */
-	{ 0,	0,	printargs,		"n32_mknod"		}, /* 6131 */
-	{ 0,	0,	printargs,		"n32_personality"	}, /* 6132 */
-	{ 0,	0,	printargs,		"n32_ustat"		}, /* 6133 */
-	{ 0,	0,	printargs,		"n32_statfs"		}, /* 6134 */
-	{ 0,	0,	printargs,		"n32_fstatfs"		}, /* 6135 */
-	{ 0,	0,	printargs,		"n32_sysfs"		}, /* 6136 */
-	{ 0,	0,	printargs,		"n32_getpriority"	}, /* 6137 */
-	{ 0,	0,	printargs,		"n32_setpriority"	}, /* 6138 */
-	{ 0,	0,	printargs,		"n32_sched_setparam"	}, /* 6139 */
-	{ 0,	0,	printargs,		"n32_sched_getparam"	}, /* 6140 */
-	{ 0,	0,	printargs,		"n32_sched_setscheduler"}, /* 6141 */
-	{ 0,	0,	printargs,		"n32_sched_getscheduler"}, /* 6142 */
-	{ 0,	0,	printargs,		"n32_sched_get_priority_max"}, /* 6143 */
-	{ 0,	0,	printargs,		"n32_sched_get_priority_min"}, /* 6144 */
-	{ 0,	0,	printargs,		"n32_sched_rr_get_interval"}, /* 6145 */
-	{ 0,	0,	printargs,		"n32_mlock"		}, /* 6146 */
-	{ 0,	0,	printargs,		"n32_munlock"		}, /* 6147 */
-	{ 0,	0,	printargs,		"n32_mlockall"		}, /* 6148 */
-	{ 0,	0,	printargs,		"n32_munlockall"	}, /* 6149 */
-	{ 0,	0,	printargs,		"n32_vhangup"		}, /* 6150 */
-	{ 0,	0,	printargs,		"n32_pivot_root"	}, /* 6151 */
-	{ 0,	0,	printargs,		"n32__sysctl"		}, /* 6152 */
-	{ 0,	0,	printargs,		"n32_prctl"		}, /* 6153 */
-	{ 0,	0,	printargs,		"n32_adjtimex"		}, /* 6154 */
-	{ 0,	0,	printargs,		"n32_setrlimit"		}, /* 6155 */
-	{ 0,	0,	printargs,		"n32_chroot"		}, /* 6156 */
-	{ 0,	0,	printargs,		"n32_sync"		}, /* 6157 */
-	{ 0,	0,	printargs,		"n32_acct"		}, /* 6158 */
-	{ 0,	0,	printargs,		"n32_settimeofday"	}, /* 6159 */
-	{ 0,	0,	printargs,		"n32_mount"		}, /* 6160 */
-	{ 0,	0,	printargs,		"n32_umount"		}, /* 6161 */
-	{ 0,	0,	printargs,		"n32_swapon"		}, /* 6162 */
-	{ 0,	0,	printargs,		"n32_swapoff"		}, /* 6163 */
-	{ 0,	0,	printargs,		"n32_reboot"		}, /* 6164 */
-	{ 0,	0,	printargs,		"n32_sethostname"	}, /* 6165 */
-	{ 0,	0,	printargs,		"n32_setdomainname"	}, /* 6166 */
-	{ 0,	0,	printargs,		"n32_create_module"	}, /* 6167 */
-	{ 0,	0,	printargs,		"n32_init_module"	}, /* 6168 */
-	{ 0,	0,	printargs,		"n32_delete_module"	}, /* 6169 */
-	{ 0,	0,	printargs,		"n32_get_kernel_syms"	}, /* 6170 */
-	{ 0,	0,	printargs,		"n32_query_module"	}, /* 6171 */
-	{ 0,	0,	printargs,		"n32_quotactl"		}, /* 6172 */
-	{ 0,	0,	printargs,		"n32_nfsservctl"	}, /* 6173 */
-	{ 0,	0,	printargs,		"n32_getpmsg"		}, /* 6174 */
-	{ 0,	0,	printargs,		"n32_putpmsg"		}, /* 6175 */
-	{ 0,	0,	printargs,		"n32_afs_syscall"	}, /* 6176 */
-	{ 0,	0,	printargs,		"n32_reserved177"	}, /* 6177 */
-	{ 0,	0,	printargs,		"n32_gettid"		}, /* 6178 */
-	{ 0,	0,	printargs,		"n32_readahead"		}, /* 6179 */
-	{ 0,	0,	printargs,		"n32_setxattr"		}, /* 6180 */
-	{ 0,	0,	printargs,		"n32_lsetxattr"		}, /* 6181 */
-	{ 0,	0,	printargs,		"n32_fsetxattr"		}, /* 6182 */
-	{ 0,	0,	printargs,		"n32_getxattr"		}, /* 6183 */
-	{ 0,	0,	printargs,		"n32_lgetxattr"		}, /* 6184 */
-	{ 0,	0,	printargs,		"n32_fgetxattr"		}, /* 6185 */
-	{ 0,	0,	printargs,		"n32_listxattr"		}, /* 6186 */
-	{ 0,	0,	printargs,		"n32_llistxattr"	}, /* 6187 */
-	{ 0,	0,	printargs,		"n32_flistxattr"	}, /* 6188 */
-	{ 0,	0,	printargs,		"n32_removexattr"	}, /* 6189 */
-	{ 0,	0,	printargs,		"n32_lremovexattr"	}, /* 6190 */
-	{ 0,	0,	printargs,		"n32_fremovexattr"	}, /* 6191 */
-	{ 0,	0,	printargs,		"n32_tkill"		}, /* 6192 */
-	{ 0,	0,	printargs,		"n32_time"		}, /* 6193 */
-	{ 0,	0,	printargs,		"n32_futex"		}, /* 6194 */
-	{ 0,	0,	printargs,		"n32_sched_setaffinity"	}, /* 6195 */
-	{ 0,	0,	printargs,		"n32_sched_getaffinity"	}, /* 6196 */
-	{ 0,	0,	printargs,		"n32_cacheflush"	}, /* 6197 */
-	{ 0,	0,	printargs,		"n32_cachectl"		}, /* 6198 */
-	{ 0,	0,	printargs,		"n32_sysmips"		}, /* 6199 */
-	{ 0,	0,	printargs,		"n32_io_setup"		}, /* 6200 */
-	{ 0,	0,	printargs,		"n32_io_destroy"	}, /* 6201 */
-	{ 0,	0,	printargs,		"n32_io_getevents"	}, /* 6202 */
-	{ 0,	0,	printargs,		"n32_io_submit"		}, /* 6203 */
-	{ 0,	0,	printargs,		"n32_io_cancel"		}, /* 6204 */
-	{ 1,	TP,	printargs,		"n32_exit_group"	}, /* 6205 */
-	{ 0,	0,	printargs,		"n32_lookup_dcookie"	}, /* 6206 */
-	{ 0,	0,	printargs,		"n32_epoll_create"	}, /* 6207 */
-	{ 0,	0,	printargs,		"n32_epoll_ctl"		}, /* 6208 */
-	{ 0,	0,	printargs,		"n32_epoll_wait"	}, /* 6209 */
-	{ 0,	0,	printargs,		"n32_remap_file_pages"	}, /* 6210 */
-	{ 0,	0,	printargs,		"n32_rt_sigreturn"	}, /* 6211 */
-	{ 0,	0,	printargs,		"n32_fcntl64"		}, /* 6212 */
-	{ 0,	0,	printargs,		"n32_set_tid_address"	}, /* 6213 */
-	{ 0,	0,	printargs,		"n32_restart_syscall"	}, /* 6214 */
-	{ 0,	0,	printargs,		"n32_semtimedop"	}, /* 6215 */
-	{ 0,	0,	printargs,		"n32_fadvise64"		}, /* 6216 */
-	{ 0,	0,	printargs,		"n32_statfs64"		}, /* 6217 */
-	{ 0,	0,	printargs,		"n32_fstatfs64"		}, /* 6218 */
-	{ 0,	0,	printargs,		"n32_sendfile64"	}, /* 6219 */
-	{ 3,	0,	printargs,		"n32_timer_create"	}, /* 6220 */
-	{ 4,	0,	printargs,		"n32_timer_settime"	}, /* 6221 */
-	{ 2,	0,	printargs,		"n32_timer_gettime"	}, /* 6222 */
-	{ 1,	0,	printargs,		"n32_timer_getoverrun"	}, /* 6223 */
-	{ 1,	0,	printargs,		"n32_timer_delete"	}, /* 6224 */
-	{ 2,	0,	printargs,		"n32_clock_settime"	}, /* 6225 */
-	{ 2,	0,	printargs,		"n32_clock_gettime"	}, /* 6226 */
-	{ 2,	0,	printargs,		"n32_clock_getres"	}, /* 6227 */
-	{ 4,	0,	printargs,		"n32_clock_nanosleep"	}, /* 6228 */
-	{ 3,	0,	printargs,		"n32_tgkill"		}, /* 6229 */
-	{ 2,	0,	printargs,		"n32_utimes"		}, /* 6230 */
-	{ 0,	0,	printargs,		"n32_SYS_6231"		}, /* 6231 */
-	{ 0,	0,	printargs,		"n32_SYS_6232"		}, /* 6232 */
-	{ 0,	0,	printargs,		"n32_SYS_6233"		}, /* 6233 */
-	{ 4,	0,	printargs,		"n32_mq_open"		}, /* 6234 */
-	{ 1,	0,	printargs,		"n32_mq_unlink"		}, /* 6235 */
-	{ 5,	0,	printargs,		"n32_mq_timedsend"	}, /* 6236 */
-	{ 5,	0,	printargs,		"n32_mq_timedreceive"	}, /* 6237 */
-	{ 2,	0,	printargs,		"n32_mq_notify"		}, /* 6238 */
-	{ 3,	0,	printargs,		"n32_mq_getsetattr"	}, /* 6239 */
-	{ 0,	0,	printargs,		"n32_SYS_6240"		}, /* 6240 */
-	{ 5,	TP,	printargs,		"n32_waitid"		}, /* 6241 */
-	{ 0,	0,	printargs,		"n32_SYS_6242"		}, /* 6242 */
-	{ 5,	0,	printargs,		"n32_add_key"		}, /* 6243 */
-	{ 4,	0,	printargs,		"n32_request_key"	}, /* 6244 */
-	{ 5,	0,	printargs,		"n32_keyctl"		}, /* 6245 */
-	{ 1,	0,	printargs,		"n32_set_thread_area"	}, /* 6246 */
-	{ 0,	TD,	printargs,		"n32_inotify_init"	}, /* 6247 */
-	{ 3,	TD,	printargs,		"n32_inotify_add_watch" }, /* 6248 */
-	{ 2,	TD,	printargs,		"n32_inotify_rm_watch"	}, /* 6249 */
-	{ 4,	0,	printargs,		"n32_migrate_pages"	}, /* 6250 */
-	{ 4,	TD|TF,	printargs,		"n32_openat"		}, /* 6251 */
-	{ 3,	TD|TF,	printargs,		"n32_mkdirat"		}, /* 6252 */
-	{ 4,	TD|TF,	printargs,		"n32_mknodat"		}, /* 6253 */
-	{ 5,	TD|TF,	printargs,		"n32_fchownat"		}, /* 6254 */
-	{ 3,	TD|TF,	printargs,		"n32_futimesat"		}, /* 6255 */
-	{ 4,	TD|TF,	printargs,		"n32_newfstatat"	}, /* 6256 */
-	{ 3,	TD|TF,	printargs,		"n32_unlinkat"		}, /* 6257 */
-	{ 4,	TD|TF,	printargs,		"n32_renameat"		}, /* 6258 */
-	{ 5,	TD|TF,	printargs,		"n32_linkat"		}, /* 6259 */
-	{ 3,	TD|TF,	printargs,		"n32_symlinkat"		}, /* 6260 */
-	{ 4,	TD|TF,	printargs,		"n32_readlinkat"	}, /* 6261 */
-	{ 3,	TD|TF,	printargs,		"n32_fchmodat"		}, /* 6262 */
-	{ 3,	TD|TF,	printargs,		"n32_faccessat"		}, /* 6263 */
-	{ 6,	TD,	printargs,		"n32_pselect6"		}, /* 6264 */
-	{ 5,	TD,	printargs,		"n32_ppoll"		}, /* 6265 */
-	{ 1,	TP,	printargs,		"n32_unshare"		}, /* 6266 */
-	{ 6,	TD,	printargs,		"n32_splice"		}, /* 6267 */
-	{ 4,	TD,	printargs,		"n32_sync_file_range"	}, /* 6268 */
-	{ 4,	TD,	printargs,		"n32_tee"		}, /* 6269 */
-	{ 4,	TD,	printargs,		"n32_vmsplice"		}, /* 6270 */
-	{ 6,	0,	printargs,		"n32_move_pages"	}, /* 6271 */
-	{ 2,	0,	printargs,		"n32_set_robust_list"	}, /* 6272 */
-	{ 3,	0,	printargs,		"n32_get_robust_list"	}, /* 6273 */
-	{ 5,	0,	printargs,		"n32_kexec_load"	}, /* 6274 */
-	{ 3,	0,	printargs,		"n32_getcpu"		}, /* 6275 */
-	{ 5,	TD,	printargs,		"n32_epoll_pwait"	}, /* 6276 */
-	{ 3,	0,	printargs,		"n32_ioprio_set"	}, /* 6277 */
-	{ 2,	0,	printargs,		"n32_ioprio_get"	}, /* 6278 */
-	{ 4,	TD|TF,	printargs,		"n32_utimensat"		}, /* 6279 */
-	{ 3,	TD|TS,	printargs,		"n32_signalfd"		}, /* 6280 */
-	{ 0,	0,	printargs,		"n32_SYS_6281"		}, /* 6281 */
-	{ 1,	TD,	printargs,		"n32_eventfd"		}, /* 6282 */
-	{ 6,	TD,	printargs,		"n32_fallocate"		}, /* 6283 */
-	{ 2,	TD,	printargs,		"n32_timerfd_create"	}, /* 6284 */
-	{ 2,	TD,	printargs,		"n32_timerfd_gettime"	}, /* 6285 */
-	{ 4,	TD,	printargs,		"n32_timerfd_settime"	}, /* 6286 */
-	{ 4,	TD|TS,	printargs,		"n32_signalfd4"		}, /* 6287 */
-	{ 2,	TD,	printargs,		"n32_eventfd2"		}, /* 6288 */
-	{ 1,	TD,	printargs,		"n32_epoll_create1"	}, /* 6289 */
-	{ 3,	TD,	printargs,		"n32_dup3"		}, /* 6290 */
-	{ 2,	TD,	printargs,		"n32_pipe2"		}, /* 6291 */
-	{ 1,	TD,	printargs,		"n32_inotify_init1"	}, /* 6292 */
-	{ 5,	TD,	printargs,		"n32_preadv"		}, /* 6293 */
-	{ 5,	TD,	printargs,		"n32_pwritev"		}, /* 6294 */
-	{ 4,	TP|TS,	printargs,		"n32_rt_tgsigqueueinfo" }, /* 6295 */
-	{ 5,	TD,	printargs,		"n32_perf_event_open"	}, /* 6296 */
-	{ 4,	TN,	printargs,		"n32_accept4"		}, /* 6297 */
-	{ 5,	TN,	printargs,		"n32_recvmmsg"		}, /* 6298 */
-	{ 3,	TD,	printargs,		"n32_getdents"		}, /* 6299 */
-	{ 2,	0,	printargs,		"n32_fanotify_init"	}, /* 6300 */
-	{ 5,	0,	printargs,		"n32_fanotify_mark"	}, /* 6301 */
-	{ 4,	0,	printargs,		"n32_prlimit64"		}, /* 6302 */
-	{ 5,	TD|TF,	printargs,		"n32_name_to_handle_at"	}, /* 6303 */
-	{ 3,	TD,	printargs,		"n32_open_by_handle_at"	}, /* 6304 */
-	{ 2,	0,	printargs,		"n32_clock_adjtime"	}, /* 6305 */
-	{ 1,	TD,	printargs,		"n32_syncfs"		}, /* 6306 */
-	{ 4,	TN,	printargs,		"n32_sendmmsg"		}, /* 6307 */
-	{ 2,	TD,	printargs,		"n32_setns"		}, /* 6308 */
-	{ 6,	0,	printargs,		"n32_process_vm_readv"	}, /* 6309 */
-	{ 6,	0,	printargs,		"n32_process_vm_writev"	}, /* 6310 */
-#endif
-	{ 0,	0,	NULL,			NULL		}, /* 6311 */
-	{ 0,	0,	NULL,			NULL		}, /* 6312 */
-	{ 0,	0,	NULL,			NULL		}, /* 6313 */
-	{ 0,	0,	NULL,			NULL		}, /* 6314 */
-	{ 0,	0,	NULL,			NULL		}, /* 6315 */
-	{ 0,	0,	NULL,			NULL		}, /* 6316 */
-	{ 0,	0,	NULL,			NULL		}, /* 6317 */
-	{ 0,	0,	NULL,			NULL		}, /* 6318 */
-	{ 0,	0,	NULL,			NULL		}, /* 6319 */
-	{ 0,	0,	NULL,			NULL		}, /* 6320 */
-	{ 0,	0,	NULL,			NULL		}, /* 6321 */
-	{ 0,	0,	NULL,			NULL		}, /* 6322 */
-	{ 0,	0,	NULL,			NULL		}, /* 6323 */
-	{ 0,	0,	NULL,			NULL		}, /* 6324 */
-	{ 0,	0,	NULL,			NULL		}, /* 6325 */
-	{ 0,	0,	NULL,			NULL		}, /* 6326 */
-	{ 0,	0,	NULL,			NULL		}, /* 6327 */
-	{ 0,	0,	NULL,			NULL		}, /* 6328 */
-	{ 0,	0,	NULL,			NULL		}, /* 6329 */
-	{ 0,	0,	NULL,			NULL		}, /* 6330 */
-	{ 0,	0,	NULL,			NULL		}, /* 6331 */
-	{ 0,	0,	NULL,			NULL		}, /* 6332 */
-	{ 0,	0,	NULL,			NULL		}, /* 6333 */
-	{ 0,	0,	NULL,			NULL		}, /* 6334 */
-	{ 0,	0,	NULL,			NULL		}, /* 6335 */
-	{ 0,	0,	NULL,			NULL		}, /* 6336 */
-	{ 0,	0,	NULL,			NULL		}, /* 6337 */
-	{ 0,	0,	NULL,			NULL		}, /* 6338 */
-	{ 0,	0,	NULL,			NULL		}, /* 6339 */
-	{ 0,	0,	NULL,			NULL		}, /* 6340 */
-	{ 0,	0,	NULL,			NULL		}, /* 6341 */
-	{ 0,	0,	NULL,			NULL		}, /* 6342 */
-	{ 0,	0,	NULL,			NULL		}, /* 6343 */
-	{ 0,	0,	NULL,			NULL		}, /* 6344 */
-	{ 0,	0,	NULL,			NULL		}, /* 6345 */
-	{ 0,	0,	NULL,			NULL		}, /* 6346 */
-	{ 0,	0,	NULL,			NULL		}, /* 6347 */
-	{ 0,	0,	NULL,			NULL		}, /* 6348 */
-	{ 0,	0,	NULL,			NULL		}, /* 6349 */
-	{ 0,	0,	NULL,			NULL		}, /* 6350 */
-	{ 0,	0,	NULL,			NULL		}, /* 6351 */
-	{ 0,	0,	NULL,			NULL		}, /* 6352 */
-	{ 0,	0,	NULL,			NULL		}, /* 6353 */
-	{ 0,	0,	NULL,			NULL		}, /* 6354 */
-	{ 0,	0,	NULL,			NULL		}, /* 6355 */
-	{ 0,	0,	NULL,			NULL		}, /* 6356 */
-	{ 0,	0,	NULL,			NULL		}, /* 6357 */
-	{ 0,	0,	NULL,			NULL		}, /* 6358 */
-	{ 0,	0,	NULL,			NULL		}, /* 6359 */
-	{ 0,	0,	NULL,			NULL		}, /* 6360 */
-	{ 0,	0,	NULL,			NULL		}, /* 6361 */
-	{ 0,	0,	NULL,			NULL		}, /* 6362 */
-	{ 0,	0,	NULL,			NULL		}, /* 6363 */
-	{ 0,	0,	NULL,			NULL		}, /* 6364 */
-	{ 0,	0,	NULL,			NULL		}, /* 6365 */
-	{ 0,	0,	NULL,			NULL		}, /* 6366 */
-	{ 0,	0,	NULL,			NULL		}, /* 6367 */
-	{ 0,	0,	NULL,			NULL		}, /* 6368 */
-	{ 0,	0,	NULL,			NULL		}, /* 6369 */
-	{ 0,	0,	NULL,			NULL		}, /* 6370 */
-	{ 0,	0,	NULL,			NULL		}, /* 6371 */
-	{ 0,	0,	NULL,			NULL		}, /* 6372 */
-	{ 0,	0,	NULL,			NULL		}, /* 6373 */
-	{ 0,	0,	NULL,			NULL		}, /* 6374 */
-	{ 0,	0,	NULL,			NULL		}, /* 6375 */
-	{ 0,	0,	NULL,			NULL		}, /* 6376 */
-	{ 0,	0,	NULL,			NULL		}, /* 6377 */
-	{ 0,	0,	NULL,			NULL		}, /* 6378 */
-	{ 0,	0,	NULL,			NULL		}, /* 6379 */
-	{ 0,	0,	NULL,			NULL		}, /* 6380 */
-	{ 0,	0,	NULL,			NULL		}, /* 6381 */
-	{ 0,	0,	NULL,			NULL		}, /* 6382 */
-	{ 0,	0,	NULL,			NULL		}, /* 6383 */
-	{ 0,	0,	NULL,			NULL		}, /* 6384 */
-	{ 0,	0,	NULL,			NULL		}, /* 6385 */
-	{ 0,	0,	NULL,			NULL		}, /* 6386 */
-	{ 0,	0,	NULL,			NULL		}, /* 6387 */
-	{ 0,	0,	NULL,			NULL		}, /* 6388 */
-	{ 0,	0,	NULL,			NULL		}, /* 6389 */
-	{ 0,	0,	NULL,			NULL		}, /* 6390 */
-	{ 0,	0,	NULL,			NULL		}, /* 6391 */
-	{ 0,	0,	NULL,			NULL		}, /* 6392 */
-	{ 0,	0,	NULL,			NULL		}, /* 6393 */
-	{ 0,	0,	NULL,			NULL		}, /* 6394 */
-	{ 0,	0,	NULL,			NULL		}, /* 6395 */
-	{ 0,	0,	NULL,			NULL		}, /* 6396 */
-	{ 0,	0,	NULL,			NULL		}, /* 6397 */
-	{ 0,	0,	NULL,			NULL		}, /* 6398 */
-	{ 0,	0,	NULL,			NULL		}, /* 6399 */
-	{ 0,	0,	NULL,			NULL		}, /* 6400 */
-	{ 0,	0,	NULL,			NULL		}, /* 6401 */
-	{ 0,	0,	NULL,			NULL		}, /* 6402 */
-	{ 0,	0,	NULL,			NULL		}, /* 6403 */
-	{ 0,	0,	NULL,			NULL		}, /* 6404 */
-	{ 0,	0,	NULL,			NULL		}, /* 6405 */
-	{ 0,	0,	NULL,			NULL		}, /* 6406 */
-	{ 0,	0,	NULL,			NULL		}, /* 6407 */
-	{ 0,	0,	NULL,			NULL		}, /* 6408 */
-	{ 0,	0,	NULL,			NULL		}, /* 6409 */
-	{ 0,	0,	NULL,			NULL		}, /* 6410 */
-	{ 0,	0,	NULL,			NULL		}, /* 6411 */
-	{ 0,	0,	NULL,			NULL		}, /* 6412 */
-	{ 0,	0,	NULL,			NULL		}, /* 6413 */
-	{ 0,	0,	NULL,			NULL		}, /* 6414 */
-	{ 0,	0,	NULL,			NULL		}, /* 6415 */
-	{ 0,	0,	NULL,			NULL		}, /* 6416 */
-	{ 0,	0,	NULL,			NULL		}, /* 6417 */
-	{ 0,	0,	NULL,			NULL		}, /* 6418 */
-	{ 0,	0,	NULL,			NULL		}, /* 6419 */
-	{ 0,	0,	NULL,			NULL		}, /* 6420 */
-	{ 0,	0,	NULL,			NULL		}, /* 6421 */
-	{ 0,	0,	NULL,			NULL		}, /* 6422 */
-	{ 0,	0,	NULL,			NULL		}, /* 6423 */
-	{ 0,	0,	NULL,			NULL		}, /* 6424 */
-	{ 0,	0,	NULL,			NULL		}, /* 6425 */
-	{ 0,	0,	NULL,			NULL		}, /* 6426 */
-	{ 0,	0,	NULL,			NULL		}, /* 6427 */
-	{ 0,	0,	NULL,			NULL		}, /* 6428 */
-	{ 0,	0,	NULL,			NULL		}, /* 6429 */
-	{ 0,	0,	NULL,			NULL		}, /* 6430 */
-	{ 0,	0,	NULL,			NULL		}, /* 6431 */
-	{ 0,	0,	NULL,			NULL		}, /* 6432 */
-	{ 0,	0,	NULL,			NULL		}, /* 6433 */
-	{ 0,	0,	NULL,			NULL		}, /* 6434 */
-	{ 0,	0,	NULL,			NULL		}, /* 6435 */
-	{ 0,	0,	NULL,			NULL		}, /* 6436 */
-	{ 0,	0,	NULL,			NULL		}, /* 6437 */
-	{ 0,	0,	NULL,			NULL		}, /* 6438 */
-	{ 0,	0,	NULL,			NULL		}, /* 6439 */
-	{ 0,	0,	NULL,			NULL		}, /* 6440 */
-	{ 0,	0,	NULL,			NULL		}, /* 6441 */
-	{ 0,	0,	NULL,			NULL		}, /* 6442 */
-	{ 0,	0,	NULL,			NULL		}, /* 6443 */
-	{ 0,	0,	NULL,			NULL		}, /* 6444 */
-	{ 0,	0,	NULL,			NULL		}, /* 6445 */
-	{ 0,	0,	NULL,			NULL		}, /* 6446 */
-	{ 0,	0,	NULL,			NULL		}, /* 6447 */
-	{ 0,	0,	NULL,			NULL		}, /* 6448 */
-	{ 0,	0,	NULL,			NULL		}, /* 6449 */
-	{ 0,	0,	NULL,			NULL		}, /* 6450 */
-	{ 0,	0,	NULL,			NULL		}, /* 6451 */
-	{ 0,	0,	NULL,			NULL		}, /* 6452 */
-	{ 0,	0,	NULL,			NULL		}, /* 6453 */
-	{ 0,	0,	NULL,			NULL		}, /* 6454 */
-	{ 0,	0,	NULL,			NULL		}, /* 6455 */
-	{ 0,	0,	NULL,			NULL		}, /* 6456 */
-	{ 0,	0,	NULL,			NULL		}, /* 6457 */
-	{ 0,	0,	NULL,			NULL		}, /* 6458 */
-	{ 0,	0,	NULL,			NULL		}, /* 6459 */
-	{ 0,	0,	NULL,			NULL		}, /* 6460 */
-	{ 0,	0,	NULL,			NULL		}, /* 6461 */
-	{ 0,	0,	NULL,			NULL		}, /* 6462 */
-	{ 0,	0,	NULL,			NULL		}, /* 6463 */
-	{ 0,	0,	NULL,			NULL		}, /* 6464 */
-	{ 0,	0,	NULL,			NULL		}, /* 6465 */
-	{ 0,	0,	NULL,			NULL		}, /* 6466 */
-	{ 0,	0,	NULL,			NULL		}, /* 6467 */
-	{ 0,	0,	NULL,			NULL		}, /* 6468 */
-	{ 0,	0,	NULL,			NULL		}, /* 6469 */
-	{ 0,	0,	NULL,			NULL		}, /* 6470 */
-	{ 0,	0,	NULL,			NULL		}, /* 6471 */
-	{ 0,	0,	NULL,			NULL		}, /* 6472 */
-	{ 0,	0,	NULL,			NULL		}, /* 6473 */
-	{ 0,	0,	NULL,			NULL		}, /* 6474 */
-	{ 0,	0,	NULL,			NULL		}, /* 6475 */
-	{ 0,	0,	NULL,			NULL		}, /* 6476 */
-	{ 0,	0,	NULL,			NULL		}, /* 6477 */
-	{ 0,	0,	NULL,			NULL		}, /* 6478 */
-	{ 0,	0,	NULL,			NULL		}, /* 6479 */
-	{ 0,	0,	NULL,			NULL		}, /* 6480 */
-	{ 0,	0,	NULL,			NULL		}, /* 6481 */
-	{ 0,	0,	NULL,			NULL		}, /* 6482 */
-	{ 0,	0,	NULL,			NULL		}, /* 6483 */
-	{ 0,	0,	NULL,			NULL		}, /* 6484 */
-	{ 0,	0,	NULL,			NULL		}, /* 6485 */
-	{ 0,	0,	NULL,			NULL		}, /* 6486 */
-	{ 0,	0,	NULL,			NULL		}, /* 6487 */
-	{ 0,	0,	NULL,			NULL		}, /* 6488 */
-	{ 0,	0,	NULL,			NULL		}, /* 6489 */
-	{ 0,	0,	NULL,			NULL		}, /* 6490 */
-	{ 0,	0,	NULL,			NULL		}, /* 6491 */
-	{ 0,	0,	NULL,			NULL		}, /* 6492 */
-	{ 0,	0,	NULL,			NULL		}, /* 6493 */
-	{ 0,	0,	NULL,			NULL		}, /* 6494 */
-	{ 0,	0,	NULL,			NULL		}, /* 6495 */
-	{ 0,	0,	NULL,			NULL		}, /* 6496 */
-	{ 0,	0,	NULL,			NULL		}, /* 6497 */
-	{ 0,	0,	NULL,			NULL		}, /* 6498 */
-	{ 0,	0,	NULL,			NULL		}, /* 6499 */
-	{ 0,	0,	NULL,			NULL		}, /* 6500 */
-	{ 0,	0,	NULL,			NULL		}, /* 6501 */
-	{ 0,	0,	NULL,			NULL		}, /* 6502 */
-	{ 0,	0,	NULL,			NULL		}, /* 6503 */
-	{ 0,	0,	NULL,			NULL		}, /* 6504 */
-	{ 0,	0,	NULL,			NULL		}, /* 6505 */
-	{ 0,	0,	NULL,			NULL		}, /* 6506 */
-	{ 0,	0,	NULL,			NULL		}, /* 6507 */
-	{ 0,	0,	NULL,			NULL		}, /* 6508 */
-	{ 0,	0,	NULL,			NULL		}, /* 6509 */
-	{ 0,	0,	NULL,			NULL		}, /* 6510 */
-	{ 0,	0,	NULL,			NULL		}, /* 6511 */
-	{ 0,	0,	NULL,			NULL		}, /* 6512 */
-	{ 0,	0,	NULL,			NULL		}, /* 6513 */
-	{ 0,	0,	NULL,			NULL		}, /* 6514 */
-	{ 0,	0,	NULL,			NULL		}, /* 6515 */
-	{ 0,	0,	NULL,			NULL		}, /* 6516 */
-	{ 0,	0,	NULL,			NULL		}, /* 6517 */
-	{ 0,	0,	NULL,			NULL		}, /* 6518 */
-	{ 0,	0,	NULL,			NULL		}, /* 6519 */
-	{ 0,	0,	NULL,			NULL		}, /* 6520 */
-	{ 0,	0,	NULL,			NULL		}, /* 6521 */
-	{ 0,	0,	NULL,			NULL		}, /* 6522 */
-	{ 0,	0,	NULL,			NULL		}, /* 6523 */
-	{ 0,	0,	NULL,			NULL		}, /* 6524 */
-	{ 0,	0,	NULL,			NULL		}, /* 6525 */
-	{ 0,	0,	NULL,			NULL		}, /* 6526 */
-	{ 0,	0,	NULL,			NULL		}, /* 6527 */
-	{ 0,	0,	NULL,			NULL		}, /* 6528 */
-	{ 0,	0,	NULL,			NULL		}, /* 6529 */
-	{ 0,	0,	NULL,			NULL		}, /* 6530 */
-	{ 0,	0,	NULL,			NULL		}, /* 6531 */
-	{ 0,	0,	NULL,			NULL		}, /* 6532 */
-	{ 0,	0,	NULL,			NULL		}, /* 6533 */
-	{ 0,	0,	NULL,			NULL		}, /* 6534 */
-	{ 0,	0,	NULL,			NULL		}, /* 6535 */
-	{ 0,	0,	NULL,			NULL		}, /* 6536 */
-	{ 0,	0,	NULL,			NULL		}, /* 6537 */
-	{ 0,	0,	NULL,			NULL		}, /* 6538 */
-	{ 0,	0,	NULL,			NULL		}, /* 6539 */
-	{ 0,	0,	NULL,			NULL		}, /* 6540 */
-	{ 0,	0,	NULL,			NULL		}, /* 6541 */
-	{ 0,	0,	NULL,			NULL		}, /* 6542 */
-	{ 0,	0,	NULL,			NULL		}, /* 6543 */
-	{ 0,	0,	NULL,			NULL		}, /* 6544 */
-	{ 0,	0,	NULL,			NULL		}, /* 6545 */
-	{ 0,	0,	NULL,			NULL		}, /* 6546 */
-	{ 0,	0,	NULL,			NULL		}, /* 6547 */
-	{ 0,	0,	NULL,			NULL		}, /* 6548 */
-	{ 0,	0,	NULL,			NULL		}, /* 6549 */
-	{ 0,	0,	NULL,			NULL		}, /* 6550 */
-	{ 0,	0,	NULL,			NULL		}, /* 6551 */
-	{ 0,	0,	NULL,			NULL		}, /* 6552 */
-	{ 0,	0,	NULL,			NULL		}, /* 6553 */
-	{ 0,	0,	NULL,			NULL		}, /* 6554 */
-	{ 0,	0,	NULL,			NULL		}, /* 6555 */
-	{ 0,	0,	NULL,			NULL		}, /* 6556 */
-	{ 0,	0,	NULL,			NULL		}, /* 6557 */
-	{ 0,	0,	NULL,			NULL		}, /* 6558 */
-	{ 0,	0,	NULL,			NULL		}, /* 6559 */
-	{ 0,	0,	NULL,			NULL		}, /* 6560 */
-	{ 0,	0,	NULL,			NULL		}, /* 6561 */
-	{ 0,	0,	NULL,			NULL		}, /* 6562 */
-	{ 0,	0,	NULL,			NULL		}, /* 6563 */
-	{ 0,	0,	NULL,			NULL		}, /* 6564 */
-	{ 0,	0,	NULL,			NULL		}, /* 6565 */
-	{ 0,	0,	NULL,			NULL		}, /* 6566 */
-	{ 0,	0,	NULL,			NULL		}, /* 6567 */
-	{ 0,	0,	NULL,			NULL		}, /* 6568 */
-	{ 0,	0,	NULL,			NULL		}, /* 6569 */
-	{ 0,	0,	NULL,			NULL		}, /* 6570 */
-	{ 0,	0,	NULL,			NULL		}, /* 6571 */
-	{ 0,	0,	NULL,			NULL		}, /* 6572 */
-	{ 0,	0,	NULL,			NULL		}, /* 6573 */
-	{ 0,	0,	NULL,			NULL		}, /* 6574 */
-	{ 0,	0,	NULL,			NULL		}, /* 6575 */
-	{ 0,	0,	NULL,			NULL		}, /* 6576 */
-	{ 0,	0,	NULL,			NULL		}, /* 6577 */
-	{ 0,	0,	NULL,			NULL		}, /* 6578 */
-	{ 0,	0,	NULL,			NULL		}, /* 6579 */
-	{ 0,	0,	NULL,			NULL		}, /* 6580 */
-	{ 0,	0,	NULL,			NULL		}, /* 6581 */
-	{ 0,	0,	NULL,			NULL		}, /* 6582 */
-	{ 0,	0,	NULL,			NULL		}, /* 6583 */
-	{ 0,	0,	NULL,			NULL		}, /* 6584 */
-	{ 0,	0,	NULL,			NULL		}, /* 6585 */
-	{ 0,	0,	NULL,			NULL		}, /* 6586 */
-	{ 0,	0,	NULL,			NULL		}, /* 6587 */
-	{ 0,	0,	NULL,			NULL		}, /* 6588 */
-	{ 0,	0,	NULL,			NULL		}, /* 6589 */
-	{ 0,	0,	NULL,			NULL		}, /* 6590 */
-	{ 0,	0,	NULL,			NULL		}, /* 6591 */
-	{ 0,	0,	NULL,			NULL		}, /* 6592 */
-	{ 0,	0,	NULL,			NULL		}, /* 6593 */
-	{ 0,	0,	NULL,			NULL		}, /* 6594 */
-	{ 0,	0,	NULL,			NULL		}, /* 6595 */
-	{ 0,	0,	NULL,			NULL		}, /* 6596 */
-	{ 0,	0,	NULL,			NULL		}, /* 6597 */
-	{ 0,	0,	NULL,			NULL		}, /* 6598 */
-	{ 0,	0,	NULL,			NULL		}, /* 6599 */
-	{ 0,	0,	NULL,			NULL		}, /* 6600 */
-	{ 0,	0,	NULL,			NULL		}, /* 6601 */
-	{ 0,	0,	NULL,			NULL		}, /* 6602 */
-	{ 0,	0,	NULL,			NULL		}, /* 6603 */
-	{ 0,	0,	NULL,			NULL		}, /* 6604 */
-	{ 0,	0,	NULL,			NULL		}, /* 6605 */
-	{ 0,	0,	NULL,			NULL		}, /* 6606 */
-	{ 0,	0,	NULL,			NULL		}, /* 6607 */
-	{ 0,	0,	NULL,			NULL		}, /* 6608 */
-	{ 0,	0,	NULL,			NULL		}, /* 6609 */
-	{ 0,	0,	NULL,			NULL		}, /* 6610 */
-	{ 0,	0,	NULL,			NULL		}, /* 6611 */
-	{ 0,	0,	NULL,			NULL		}, /* 6612 */
-	{ 0,	0,	NULL,			NULL		}, /* 6613 */
-	{ 0,	0,	NULL,			NULL		}, /* 6614 */
-	{ 0,	0,	NULL,			NULL		}, /* 6615 */
-	{ 0,	0,	NULL,			NULL		}, /* 6616 */
-	{ 0,	0,	NULL,			NULL		}, /* 6617 */
-	{ 0,	0,	NULL,			NULL		}, /* 6618 */
-	{ 0,	0,	NULL,			NULL		}, /* 6619 */
-	{ 0,	0,	NULL,			NULL		}, /* 6620 */
-	{ 0,	0,	NULL,			NULL		}, /* 6621 */
-	{ 0,	0,	NULL,			NULL		}, /* 6622 */
-	{ 0,	0,	NULL,			NULL		}, /* 6623 */
-	{ 0,	0,	NULL,			NULL		}, /* 6624 */
-	{ 0,	0,	NULL,			NULL		}, /* 6625 */
-	{ 0,	0,	NULL,			NULL		}, /* 6626 */
-	{ 0,	0,	NULL,			NULL		}, /* 6627 */
-	{ 0,	0,	NULL,			NULL		}, /* 6628 */
-	{ 0,	0,	NULL,			NULL		}, /* 6629 */
-	{ 0,	0,	NULL,			NULL		}, /* 6630 */
-	{ 0,	0,	NULL,			NULL		}, /* 6631 */
-	{ 0,	0,	NULL,			NULL		}, /* 6632 */
-	{ 0,	0,	NULL,			NULL		}, /* 6633 */
-	{ 0,	0,	NULL,			NULL		}, /* 6634 */
-	{ 0,	0,	NULL,			NULL		}, /* 6635 */
-	{ 0,	0,	NULL,			NULL		}, /* 6636 */
-	{ 0,	0,	NULL,			NULL		}, /* 6637 */
-	{ 0,	0,	NULL,			NULL		}, /* 6638 */
-	{ 0,	0,	NULL,			NULL		}, /* 6639 */
-	{ 0,	0,	NULL,			NULL		}, /* 6640 */
-	{ 0,	0,	NULL,			NULL		}, /* 6641 */
-	{ 0,	0,	NULL,			NULL		}, /* 6642 */
-	{ 0,	0,	NULL,			NULL		}, /* 6643 */
-	{ 0,	0,	NULL,			NULL		}, /* 6644 */
-	{ 0,	0,	NULL,			NULL		}, /* 6645 */
-	{ 0,	0,	NULL,			NULL		}, /* 6646 */
-	{ 0,	0,	NULL,			NULL		}, /* 6647 */
-	{ 0,	0,	NULL,			NULL		}, /* 6648 */
-	{ 0,	0,	NULL,			NULL		}, /* 6649 */
-	{ 0,	0,	NULL,			NULL		}, /* 6650 */
-	{ 0,	0,	NULL,			NULL		}, /* 6651 */
-	{ 0,	0,	NULL,			NULL		}, /* 6652 */
-	{ 0,	0,	NULL,			NULL		}, /* 6653 */
-	{ 0,	0,	NULL,			NULL		}, /* 6654 */
-	{ 0,	0,	NULL,			NULL		}, /* 6655 */
-	{ 0,	0,	NULL,			NULL		}, /* 6656 */
-	{ 0,	0,	NULL,			NULL		}, /* 6657 */
-	{ 0,	0,	NULL,			NULL		}, /* 6658 */
-	{ 0,	0,	NULL,			NULL		}, /* 6659 */
-	{ 0,	0,	NULL,			NULL		}, /* 6660 */
-	{ 0,	0,	NULL,			NULL		}, /* 6661 */
-	{ 0,	0,	NULL,			NULL		}, /* 6662 */
-	{ 0,	0,	NULL,			NULL		}, /* 6663 */
-	{ 0,	0,	NULL,			NULL		}, /* 6664 */
-	{ 0,	0,	NULL,			NULL		}, /* 6665 */
-	{ 0,	0,	NULL,			NULL		}, /* 6666 */
-	{ 0,	0,	NULL,			NULL		}, /* 6667 */
-	{ 0,	0,	NULL,			NULL		}, /* 6668 */
-	{ 0,	0,	NULL,			NULL		}, /* 6669 */
-	{ 0,	0,	NULL,			NULL		}, /* 6670 */
-	{ 0,	0,	NULL,			NULL		}, /* 6671 */
-	{ 0,	0,	NULL,			NULL		}, /* 6672 */
-	{ 0,	0,	NULL,			NULL		}, /* 6673 */
-	{ 0,	0,	NULL,			NULL		}, /* 6674 */
-	{ 0,	0,	NULL,			NULL		}, /* 6675 */
-	{ 0,	0,	NULL,			NULL		}, /* 6676 */
-	{ 0,	0,	NULL,			NULL		}, /* 6677 */
-	{ 0,	0,	NULL,			NULL		}, /* 6678 */
-	{ 0,	0,	NULL,			NULL		}, /* 6679 */
-	{ 0,	0,	NULL,			NULL		}, /* 6680 */
-	{ 0,	0,	NULL,			NULL		}, /* 6681 */
-	{ 0,	0,	NULL,			NULL		}, /* 6682 */
-	{ 0,	0,	NULL,			NULL		}, /* 6683 */
-	{ 0,	0,	NULL,			NULL		}, /* 6684 */
-	{ 0,	0,	NULL,			NULL		}, /* 6685 */
-	{ 0,	0,	NULL,			NULL		}, /* 6686 */
-	{ 0,	0,	NULL,			NULL		}, /* 6687 */
-	{ 0,	0,	NULL,			NULL		}, /* 6688 */
-	{ 0,	0,	NULL,			NULL		}, /* 6689 */
-	{ 0,	0,	NULL,			NULL		}, /* 6690 */
-	{ 0,	0,	NULL,			NULL		}, /* 6691 */
-	{ 0,	0,	NULL,			NULL		}, /* 6692 */
-	{ 0,	0,	NULL,			NULL		}, /* 6693 */
-	{ 0,	0,	NULL,			NULL		}, /* 6694 */
-	{ 0,	0,	NULL,			NULL		}, /* 6695 */
-	{ 0,	0,	NULL,			NULL		}, /* 6696 */
-	{ 0,	0,	NULL,			NULL		}, /* 6697 */
-	{ 0,	0,	NULL,			NULL		}, /* 6698 */
-	{ 0,	0,	NULL,			NULL		}, /* 6699 */
-	{ 0,	0,	NULL,			NULL		}, /* 6700 */
-	{ 0,	0,	NULL,			NULL		}, /* 6701 */
-	{ 0,	0,	NULL,			NULL		}, /* 6702 */
-	{ 0,	0,	NULL,			NULL		}, /* 6703 */
-	{ 0,	0,	NULL,			NULL		}, /* 6704 */
-	{ 0,	0,	NULL,			NULL		}, /* 6705 */
-	{ 0,	0,	NULL,			NULL		}, /* 6706 */
-	{ 0,	0,	NULL,			NULL		}, /* 6707 */
-	{ 0,	0,	NULL,			NULL		}, /* 6708 */
-	{ 0,	0,	NULL,			NULL		}, /* 6709 */
-	{ 0,	0,	NULL,			NULL		}, /* 6710 */
-	{ 0,	0,	NULL,			NULL		}, /* 6711 */
-	{ 0,	0,	NULL,			NULL		}, /* 6712 */
-	{ 0,	0,	NULL,			NULL		}, /* 6713 */
-	{ 0,	0,	NULL,			NULL		}, /* 6714 */
-	{ 0,	0,	NULL,			NULL		}, /* 6715 */
-	{ 0,	0,	NULL,			NULL		}, /* 6716 */
-	{ 0,	0,	NULL,			NULL		}, /* 6717 */
-	{ 0,	0,	NULL,			NULL		}, /* 6718 */
-	{ 0,	0,	NULL,			NULL		}, /* 6719 */
-	{ 0,	0,	NULL,			NULL		}, /* 6720 */
-	{ 0,	0,	NULL,			NULL		}, /* 6721 */
-	{ 0,	0,	NULL,			NULL		}, /* 6722 */
-	{ 0,	0,	NULL,			NULL		}, /* 6723 */
-	{ 0,	0,	NULL,			NULL		}, /* 6724 */
-	{ 0,	0,	NULL,			NULL		}, /* 6725 */
-	{ 0,	0,	NULL,			NULL		}, /* 6726 */
-	{ 0,	0,	NULL,			NULL		}, /* 6727 */
-	{ 0,	0,	NULL,			NULL		}, /* 6728 */
-	{ 0,	0,	NULL,			NULL		}, /* 6729 */
-	{ 0,	0,	NULL,			NULL		}, /* 6730 */
-	{ 0,	0,	NULL,			NULL		}, /* 6731 */
-	{ 0,	0,	NULL,			NULL		}, /* 6732 */
-	{ 0,	0,	NULL,			NULL		}, /* 6733 */
-	{ 0,	0,	NULL,			NULL		}, /* 6734 */
-	{ 0,	0,	NULL,			NULL		}, /* 6735 */
-	{ 0,	0,	NULL,			NULL		}, /* 6736 */
-	{ 0,	0,	NULL,			NULL		}, /* 6737 */
-	{ 0,	0,	NULL,			NULL		}, /* 6738 */
-	{ 0,	0,	NULL,			NULL		}, /* 6739 */
-	{ 0,	0,	NULL,			NULL		}, /* 6740 */
-	{ 0,	0,	NULL,			NULL		}, /* 6741 */
-	{ 0,	0,	NULL,			NULL		}, /* 6742 */
-	{ 0,	0,	NULL,			NULL		}, /* 6743 */
-	{ 0,	0,	NULL,			NULL		}, /* 6744 */
-	{ 0,	0,	NULL,			NULL		}, /* 6745 */
-	{ 0,	0,	NULL,			NULL		}, /* 6746 */
-	{ 0,	0,	NULL,			NULL		}, /* 6747 */
-	{ 0,	0,	NULL,			NULL		}, /* 6748 */
-	{ 0,	0,	NULL,			NULL		}, /* 6749 */
-	{ 0,	0,	NULL,			NULL		}, /* 6750 */
-	{ 0,	0,	NULL,			NULL		}, /* 6751 */
-	{ 0,	0,	NULL,			NULL		}, /* 6752 */
-	{ 0,	0,	NULL,			NULL		}, /* 6753 */
-	{ 0,	0,	NULL,			NULL		}, /* 6754 */
-	{ 0,	0,	NULL,			NULL		}, /* 6755 */
-	{ 0,	0,	NULL,			NULL		}, /* 6756 */
-	{ 0,	0,	NULL,			NULL		}, /* 6757 */
-	{ 0,	0,	NULL,			NULL		}, /* 6758 */
-	{ 0,	0,	NULL,			NULL		}, /* 6759 */
-	{ 0,	0,	NULL,			NULL		}, /* 6760 */
-	{ 0,	0,	NULL,			NULL		}, /* 6761 */
-	{ 0,	0,	NULL,			NULL		}, /* 6762 */
-	{ 0,	0,	NULL,			NULL		}, /* 6763 */
-	{ 0,	0,	NULL,			NULL		}, /* 6764 */
-	{ 0,	0,	NULL,			NULL		}, /* 6765 */
-	{ 0,	0,	NULL,			NULL		}, /* 6766 */
-	{ 0,	0,	NULL,			NULL		}, /* 6767 */
-	{ 0,	0,	NULL,			NULL		}, /* 6768 */
-	{ 0,	0,	NULL,			NULL		}, /* 6769 */
-	{ 0,	0,	NULL,			NULL		}, /* 6770 */
-	{ 0,	0,	NULL,			NULL		}, /* 6771 */
-	{ 0,	0,	NULL,			NULL		}, /* 6772 */
-	{ 0,	0,	NULL,			NULL		}, /* 6773 */
-	{ 0,	0,	NULL,			NULL		}, /* 6774 */
-	{ 0,	0,	NULL,			NULL		}, /* 6775 */
-	{ 0,	0,	NULL,			NULL		}, /* 6776 */
-	{ 0,	0,	NULL,			NULL		}, /* 6777 */
-	{ 0,	0,	NULL,			NULL		}, /* 6778 */
-	{ 0,	0,	NULL,			NULL		}, /* 6779 */
-	{ 0,	0,	NULL,			NULL		}, /* 6780 */
-	{ 0,	0,	NULL,			NULL		}, /* 6781 */
-	{ 0,	0,	NULL,			NULL		}, /* 6782 */
-	{ 0,	0,	NULL,			NULL		}, /* 6783 */
-	{ 0,	0,	NULL,			NULL		}, /* 6784 */
-	{ 0,	0,	NULL,			NULL		}, /* 6785 */
-	{ 0,	0,	NULL,			NULL		}, /* 6786 */
-	{ 0,	0,	NULL,			NULL		}, /* 6787 */
-	{ 0,	0,	NULL,			NULL		}, /* 6788 */
-	{ 0,	0,	NULL,			NULL		}, /* 6789 */
-	{ 0,	0,	NULL,			NULL		}, /* 6790 */
-	{ 0,	0,	NULL,			NULL		}, /* 6791 */
-	{ 0,	0,	NULL,			NULL		}, /* 6792 */
-	{ 0,	0,	NULL,			NULL		}, /* 6793 */
-	{ 0,	0,	NULL,			NULL		}, /* 6794 */
-	{ 0,	0,	NULL,			NULL		}, /* 6795 */
-	{ 0,	0,	NULL,			NULL		}, /* 6796 */
-	{ 0,	0,	NULL,			NULL		}, /* 6797 */
-	{ 0,	0,	NULL,			NULL		}, /* 6798 */
-	{ 0,	0,	NULL,			NULL		}, /* 6799 */
-	{ 0,	0,	NULL,			NULL		}, /* 6800 */
-	{ 0,	0,	NULL,			NULL		}, /* 6801 */
-	{ 0,	0,	NULL,			NULL		}, /* 6802 */
-	{ 0,	0,	NULL,			NULL		}, /* 6803 */
-	{ 0,	0,	NULL,			NULL		}, /* 6804 */
-	{ 0,	0,	NULL,			NULL		}, /* 6805 */
-	{ 0,	0,	NULL,			NULL		}, /* 6806 */
-	{ 0,	0,	NULL,			NULL		}, /* 6807 */
-	{ 0,	0,	NULL,			NULL		}, /* 6808 */
-	{ 0,	0,	NULL,			NULL		}, /* 6809 */
-	{ 0,	0,	NULL,			NULL		}, /* 6810 */
-	{ 0,	0,	NULL,			NULL		}, /* 6811 */
-	{ 0,	0,	NULL,			NULL		}, /* 6812 */
-	{ 0,	0,	NULL,			NULL		}, /* 6813 */
-	{ 0,	0,	NULL,			NULL		}, /* 6814 */
-	{ 0,	0,	NULL,			NULL		}, /* 6815 */
-	{ 0,	0,	NULL,			NULL		}, /* 6816 */
-	{ 0,	0,	NULL,			NULL		}, /* 6817 */
-	{ 0,	0,	NULL,			NULL		}, /* 6818 */
-	{ 0,	0,	NULL,			NULL		}, /* 6819 */
-	{ 0,	0,	NULL,			NULL		}, /* 6820 */
-	{ 0,	0,	NULL,			NULL		}, /* 6821 */
-	{ 0,	0,	NULL,			NULL		}, /* 6822 */
-	{ 0,	0,	NULL,			NULL		}, /* 6823 */
-	{ 0,	0,	NULL,			NULL		}, /* 6824 */
-	{ 0,	0,	NULL,			NULL		}, /* 6825 */
-	{ 0,	0,	NULL,			NULL		}, /* 6826 */
-	{ 0,	0,	NULL,			NULL		}, /* 6827 */
-	{ 0,	0,	NULL,			NULL		}, /* 6828 */
-	{ 0,	0,	NULL,			NULL		}, /* 6829 */
-	{ 0,	0,	NULL,			NULL		}, /* 6830 */
-	{ 0,	0,	NULL,			NULL		}, /* 6831 */
-	{ 0,	0,	NULL,			NULL		}, /* 6832 */
-	{ 0,	0,	NULL,			NULL		}, /* 6833 */
-	{ 0,	0,	NULL,			NULL		}, /* 6834 */
-	{ 0,	0,	NULL,			NULL		}, /* 6835 */
-	{ 0,	0,	NULL,			NULL		}, /* 6836 */
-	{ 0,	0,	NULL,			NULL		}, /* 6837 */
-	{ 0,	0,	NULL,			NULL		}, /* 6838 */
-	{ 0,	0,	NULL,			NULL		}, /* 6839 */
-	{ 0,	0,	NULL,			NULL		}, /* 6840 */
-	{ 0,	0,	NULL,			NULL		}, /* 6841 */
-	{ 0,	0,	NULL,			NULL		}, /* 6842 */
-	{ 0,	0,	NULL,			NULL		}, /* 6843 */
-	{ 0,	0,	NULL,			NULL		}, /* 6844 */
-	{ 0,	0,	NULL,			NULL		}, /* 6845 */
-	{ 0,	0,	NULL,			NULL		}, /* 6846 */
-	{ 0,	0,	NULL,			NULL		}, /* 6847 */
-	{ 0,	0,	NULL,			NULL		}, /* 6848 */
-	{ 0,	0,	NULL,			NULL		}, /* 6849 */
-	{ 0,	0,	NULL,			NULL		}, /* 6850 */
-	{ 0,	0,	NULL,			NULL		}, /* 6851 */
-	{ 0,	0,	NULL,			NULL		}, /* 6852 */
-	{ 0,	0,	NULL,			NULL		}, /* 6853 */
-	{ 0,	0,	NULL,			NULL		}, /* 6854 */
-	{ 0,	0,	NULL,			NULL		}, /* 6855 */
-	{ 0,	0,	NULL,			NULL		}, /* 6856 */
-	{ 0,	0,	NULL,			NULL		}, /* 6857 */
-	{ 0,	0,	NULL,			NULL		}, /* 6858 */
-	{ 0,	0,	NULL,			NULL		}, /* 6859 */
-	{ 0,	0,	NULL,			NULL		}, /* 6860 */
-	{ 0,	0,	NULL,			NULL		}, /* 6861 */
-	{ 0,	0,	NULL,			NULL		}, /* 6862 */
-	{ 0,	0,	NULL,			NULL		}, /* 6863 */
-	{ 0,	0,	NULL,			NULL		}, /* 6864 */
-	{ 0,	0,	NULL,			NULL		}, /* 6865 */
-	{ 0,	0,	NULL,			NULL		}, /* 6866 */
-	{ 0,	0,	NULL,			NULL		}, /* 6867 */
-	{ 0,	0,	NULL,			NULL		}, /* 6868 */
-	{ 0,	0,	NULL,			NULL		}, /* 6869 */
-	{ 0,	0,	NULL,			NULL		}, /* 6870 */
-	{ 0,	0,	NULL,			NULL		}, /* 6871 */
-	{ 0,	0,	NULL,			NULL		}, /* 6872 */
-	{ 0,	0,	NULL,			NULL		}, /* 6873 */
-	{ 0,	0,	NULL,			NULL		}, /* 6874 */
-	{ 0,	0,	NULL,			NULL		}, /* 6875 */
-	{ 0,	0,	NULL,			NULL		}, /* 6876 */
-	{ 0,	0,	NULL,			NULL		}, /* 6877 */
-	{ 0,	0,	NULL,			NULL		}, /* 6878 */
-	{ 0,	0,	NULL,			NULL		}, /* 6879 */
-	{ 0,	0,	NULL,			NULL		}, /* 6880 */
-	{ 0,	0,	NULL,			NULL		}, /* 6881 */
-	{ 0,	0,	NULL,			NULL		}, /* 6882 */
-	{ 0,	0,	NULL,			NULL		}, /* 6883 */
-	{ 0,	0,	NULL,			NULL		}, /* 6884 */
-	{ 0,	0,	NULL,			NULL		}, /* 6885 */
-	{ 0,	0,	NULL,			NULL		}, /* 6886 */
-	{ 0,	0,	NULL,			NULL		}, /* 6887 */
-	{ 0,	0,	NULL,			NULL		}, /* 6888 */
-	{ 0,	0,	NULL,			NULL		}, /* 6889 */
-	{ 0,	0,	NULL,			NULL		}, /* 6890 */
-	{ 0,	0,	NULL,			NULL		}, /* 6891 */
-	{ 0,	0,	NULL,			NULL		}, /* 6892 */
-	{ 0,	0,	NULL,			NULL		}, /* 6893 */
-	{ 0,	0,	NULL,			NULL		}, /* 6894 */
-	{ 0,	0,	NULL,			NULL		}, /* 6895 */
-	{ 0,	0,	NULL,			NULL		}, /* 6896 */
-	{ 0,	0,	NULL,			NULL		}, /* 6897 */
-	{ 0,	0,	NULL,			NULL		}, /* 6898 */
-	{ 0,	0,	NULL,			NULL		}, /* 6899 */
-	{ 0,	0,	NULL,			NULL		}, /* 6900 */
-	{ 0,	0,	NULL,			NULL		}, /* 6901 */
-	{ 0,	0,	NULL,			NULL		}, /* 6902 */
-	{ 0,	0,	NULL,			NULL		}, /* 6903 */
-	{ 0,	0,	NULL,			NULL		}, /* 6904 */
-	{ 0,	0,	NULL,			NULL		}, /* 6905 */
-	{ 0,	0,	NULL,			NULL		}, /* 6906 */
-	{ 0,	0,	NULL,			NULL		}, /* 6907 */
-	{ 0,	0,	NULL,			NULL		}, /* 6908 */
-	{ 0,	0,	NULL,			NULL		}, /* 6909 */
-	{ 0,	0,	NULL,			NULL		}, /* 6910 */
-	{ 0,	0,	NULL,			NULL		}, /* 6911 */
-	{ 0,	0,	NULL,			NULL		}, /* 6912 */
-	{ 0,	0,	NULL,			NULL		}, /* 6913 */
-	{ 0,	0,	NULL,			NULL		}, /* 6914 */
-	{ 0,	0,	NULL,			NULL		}, /* 6915 */
-	{ 0,	0,	NULL,			NULL		}, /* 6916 */
-	{ 0,	0,	NULL,			NULL		}, /* 6917 */
-	{ 0,	0,	NULL,			NULL		}, /* 6918 */
-	{ 0,	0,	NULL,			NULL		}, /* 6919 */
-	{ 0,	0,	NULL,			NULL		}, /* 6920 */
-	{ 0,	0,	NULL,			NULL		}, /* 6921 */
-	{ 0,	0,	NULL,			NULL		}, /* 6922 */
-	{ 0,	0,	NULL,			NULL		}, /* 6923 */
-	{ 0,	0,	NULL,			NULL		}, /* 6924 */
-	{ 0,	0,	NULL,			NULL		}, /* 6925 */
-	{ 0,	0,	NULL,			NULL		}, /* 6926 */
-	{ 0,	0,	NULL,			NULL		}, /* 6927 */
-	{ 0,	0,	NULL,			NULL		}, /* 6928 */
-	{ 0,	0,	NULL,			NULL		}, /* 6929 */
-	{ 0,	0,	NULL,			NULL		}, /* 6930 */
-	{ 0,	0,	NULL,			NULL		}, /* 6931 */
-	{ 0,	0,	NULL,			NULL		}, /* 6932 */
-	{ 0,	0,	NULL,			NULL		}, /* 6933 */
-	{ 0,	0,	NULL,			NULL		}, /* 6934 */
-	{ 0,	0,	NULL,			NULL		}, /* 6935 */
-	{ 0,	0,	NULL,			NULL		}, /* 6936 */
-	{ 0,	0,	NULL,			NULL		}, /* 6937 */
-	{ 0,	0,	NULL,			NULL		}, /* 6938 */
-	{ 0,	0,	NULL,			NULL		}, /* 6939 */
-	{ 0,	0,	NULL,			NULL		}, /* 6940 */
-	{ 0,	0,	NULL,			NULL		}, /* 6941 */
-	{ 0,	0,	NULL,			NULL		}, /* 6942 */
-	{ 0,	0,	NULL,			NULL		}, /* 6943 */
-	{ 0,	0,	NULL,			NULL		}, /* 6944 */
-	{ 0,	0,	NULL,			NULL		}, /* 6945 */
-	{ 0,	0,	NULL,			NULL		}, /* 6946 */
-	{ 0,	0,	NULL,			NULL		}, /* 6947 */
-	{ 0,	0,	NULL,			NULL		}, /* 6948 */
-	{ 0,	0,	NULL,			NULL		}, /* 6949 */
-	{ 0,	0,	NULL,			NULL		}, /* 6950 */
-	{ 0,	0,	NULL,			NULL		}, /* 6951 */
-	{ 0,	0,	NULL,			NULL		}, /* 6952 */
-	{ 0,	0,	NULL,			NULL		}, /* 6953 */
-	{ 0,	0,	NULL,			NULL		}, /* 6954 */
-	{ 0,	0,	NULL,			NULL		}, /* 6955 */
-	{ 0,	0,	NULL,			NULL		}, /* 6956 */
-	{ 0,	0,	NULL,			NULL		}, /* 6957 */
-	{ 0,	0,	NULL,			NULL		}, /* 6958 */
-	{ 0,	0,	NULL,			NULL		}, /* 6959 */
-	{ 0,	0,	NULL,			NULL		}, /* 6960 */
-	{ 0,	0,	NULL,			NULL		}, /* 6961 */
-	{ 0,	0,	NULL,			NULL		}, /* 6962 */
-	{ 0,	0,	NULL,			NULL		}, /* 6963 */
-	{ 0,	0,	NULL,			NULL		}, /* 6964 */
-	{ 0,	0,	NULL,			NULL		}, /* 6965 */
-	{ 0,	0,	NULL,			NULL		}, /* 6966 */
-	{ 0,	0,	NULL,			NULL		}, /* 6967 */
-	{ 0,	0,	NULL,			NULL		}, /* 6968 */
-	{ 0,	0,	NULL,			NULL		}, /* 6969 */
-	{ 0,	0,	NULL,			NULL		}, /* 6970 */
-	{ 0,	0,	NULL,			NULL		}, /* 6971 */
-	{ 0,	0,	NULL,			NULL		}, /* 6972 */
-	{ 0,	0,	NULL,			NULL		}, /* 6973 */
-	{ 0,	0,	NULL,			NULL		}, /* 6974 */
-	{ 0,	0,	NULL,			NULL		}, /* 6975 */
-	{ 0,	0,	NULL,			NULL		}, /* 6976 */
-	{ 0,	0,	NULL,			NULL		}, /* 6977 */
-	{ 0,	0,	NULL,			NULL		}, /* 6978 */
-	{ 0,	0,	NULL,			NULL		}, /* 6979 */
-	{ 0,	0,	NULL,			NULL		}, /* 6980 */
-	{ 0,	0,	NULL,			NULL		}, /* 6981 */
-	{ 0,	0,	NULL,			NULL		}, /* 6982 */
-	{ 0,	0,	NULL,			NULL		}, /* 6983 */
-	{ 0,	0,	NULL,			NULL		}, /* 6984 */
-	{ 0,	0,	NULL,			NULL		}, /* 6985 */
-	{ 0,	0,	NULL,			NULL		}, /* 6986 */
-	{ 0,	0,	NULL,			NULL		}, /* 6987 */
-	{ 0,	0,	NULL,			NULL		}, /* 6988 */
-	{ 0,	0,	NULL,			NULL		}, /* 6989 */
-	{ 0,	0,	NULL,			NULL		}, /* 6990 */
-	{ 0,	0,	NULL,			NULL		}, /* 6991 */
-	{ 0,	0,	NULL,			NULL		}, /* 6992 */
-	{ 0,	0,	NULL,			NULL		}, /* 6993 */
-	{ 0,	0,	NULL,			NULL		}, /* 6994 */
-	{ 0,	0,	NULL,			NULL		}, /* 6995 */
-	{ 0,	0,	NULL,			NULL		}, /* 6996 */
-	{ 0,	0,	NULL,			NULL		}, /* 6997 */
-	{ 0,	0,	NULL,			NULL		}, /* 6998 */
-	{ 0,	0,	NULL,			NULL		}, /* 6999 */ /* end of Linux N32 */
+#include "syscallent-compat.h"
+#include "syscallent-o32.h"
+#include "syscallent-n64.h"
+#include "syscallent-n32.h"
diff --git a/linux/mtd-abi.h b/linux/mtd-abi.h
index 576e8c9..b197861 100644
--- a/linux/mtd-abi.h
+++ b/linux/mtd-abi.h
@@ -115,7 +115,7 @@
 #define MTD_NANDECC_PLACE	1	// Use the given placement in the structure (YAFFS1 legacy mode)
 #define MTD_NANDECC_AUTOPLACE	2	// Use the default placement scheme
 #define MTD_NANDECC_PLACEONLY	3	// Use the given placement in the structure (Do not store ecc result on read)
-#define MTD_NANDECC_AUTOPL_USR 	4	// Use the given autoplacement scheme rather than using the default
+#define MTD_NANDECC_AUTOPL_USR	4	// Use the given autoplacement scheme rather than using the default
 
 /* OTP mode selection */
 #define MTD_OTP_OFF		0
diff --git a/linux/subcall.h b/linux/subcall.h
new file mode 100644
index 0000000..54f7fca
--- /dev/null
+++ b/linux/subcall.h
@@ -0,0 +1,6 @@
+#ifndef SYS_socket_subcall
+# error SYS_socket_subcall is not defined
+#endif
+#define SYS_socket_nsubcalls	20
+#define SYS_ipc_subcall		((SYS_socket_subcall)+(SYS_socket_nsubcalls))
+#define SYS_ipc_nsubcalls	25
diff --git a/linux/syscall.h b/linux/syscall.h
index 7e0155e..f6afcac 100644
--- a/linux/syscall.h
+++ b/linux/syscall.h
@@ -98,7 +98,7 @@
 int sys_gethostname();
 int sys_getitimer();
 int sys_getpeername();
-int sys_getpmsg();
+int sys_getpmsg(); /* TODO: non-Linux, remove? */
 int sys_getpriority();
 int sys_getresuid();
 int sys_getrlimit();
@@ -126,8 +126,6 @@
 int sys_listxattr();
 int sys_llseek();
 int sys_lseek();
-int sys_lstat();
-int sys_lstat64();
 int sys_madvise();
 int sys_mbind();
 int sys_migrate_pages();
@@ -138,6 +136,8 @@
 int sys_mknodat();
 int sys_mlockall();
 int sys_mmap();
+int sys_mmap_pgoff();
+int sys_mmap_4koff();
 int sys_modify_ldt();
 int sys_mount();
 int sys_move_pages();
@@ -157,12 +157,13 @@
 int sys_nanosleep();
 int sys_newfstatat();
 int sys_old_mmap();
+int sys_old_mmap_pgoff();
 int sys_oldfstat();
-int sys_oldlstat();
 int sys_oldselect();
 int sys_oldstat();
 int sys_open();
 int sys_openat();
+int sys_perf_event_open();
 int sys_personality();
 int sys_pipe();
 int sys_pipe2();
@@ -177,7 +178,7 @@
 int sys_process_vm_writev();
 int sys_pselect6();
 int sys_ptrace();
-int sys_putpmsg();
+int sys_putpmsg(); /* TODO: non-Linux, remove? */
 int sys_pwrite();
 int sys_pwritev();
 int sys_query_module();
@@ -312,33 +313,10 @@
 int sys_osf_wait4();
 #endif
 
-#if !defined(ALPHA) && !defined(MIPS) && !defined(HPPA) && \
-	!defined(__ARM_EABI__)
-# if defined(SPARC) || defined(SPARC64)
-#  define SYS_socket_subcall	353
-# else
-#  define SYS_socket_subcall	400
-# endif
-
-#define SYS_socket_nsubcalls	20
-#endif /* !(ALPHA || MIPS || HPPA) */
-
-#if !defined(ALPHA) && !defined(MIPS) && !defined(HPPA) && \
-	!defined(__ARM_EABI__)
-#define SYS_ipc_subcall		((SYS_socket_subcall)+(SYS_socket_nsubcalls))
-#define SYS_ipc_nsubcalls	25
-#endif /* !(ALPHA || MIPS || HPPA) */
-
 #if defined(ALPHA) || defined(IA64) || defined(SPARC) || defined(SPARC64)
 int sys_getpagesize();
 #endif
 
-#ifdef IA64
-/* STREAMS stuff */
-int sys_getpmsg();
-int sys_putpmsg();
-#endif
-
 #ifdef MIPS
 int sys_sysmips();
 #endif
@@ -347,6 +325,10 @@
 int sys_cacheflush();
 #endif
 
+#if defined OR1K
+int sys_or1k_atomic();
+#endif
+
 #ifdef POWERPC
 int sys_subpage_prot();
 #endif
@@ -360,18 +342,5 @@
 #include "sparc/syscall1.h"
 int sys_execv();
 int sys_getmsg();
-int sys_msgsys();
 int sys_putmsg();
-int sys_semsys();
-int sys_shmsys();
-#define SYS_semsys_subcall	200
-#define SYS_semsys_nsubcalls	3
-#define SYS_msgsys_subcall	203
-#define SYS_msgsys_nsubcalls	4
-#define SYS_shmsys_subcall	207
-#define SYS_shmsys_nsubcalls	4
-#endif
-
-#ifdef X32
-int sys_lseek32();
 #endif
diff --git a/linux/ubi-user.h b/linux/ubi-user.h
new file mode 100644
index 0000000..a12c884
--- /dev/null
+++ b/linux/ubi-user.h
@@ -0,0 +1,420 @@
+/*
+ * Copyright © International Business Machines Corp., 2006
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
+ * the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * Author: Artem Bityutskiy (Битюцкий Артём)
+ */
+
+#ifndef __UBI_USER_H__
+#define __UBI_USER_H__
+
+#include <linux/types.h>
+
+/*
+ * UBI device creation (the same as MTD device attachment)
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ *
+ * MTD devices may be attached using %UBI_IOCATT ioctl command of the UBI
+ * control device. The caller has to properly fill and pass
+ * &struct ubi_attach_req object - UBI will attach the MTD device specified in
+ * the request and return the newly created UBI device number as the ioctl
+ * return value.
+ *
+ * UBI device deletion (the same as MTD device detachment)
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ *
+ * An UBI device maybe deleted with %UBI_IOCDET ioctl command of the UBI
+ * control device.
+ *
+ * UBI volume creation
+ * ~~~~~~~~~~~~~~~~~~~
+ *
+ * UBI volumes are created via the %UBI_IOCMKVOL ioctl command of UBI character
+ * device. A &struct ubi_mkvol_req object has to be properly filled and a
+ * pointer to it has to be passed to the ioctl.
+ *
+ * UBI volume deletion
+ * ~~~~~~~~~~~~~~~~~~~
+ *
+ * To delete a volume, the %UBI_IOCRMVOL ioctl command of the UBI character
+ * device should be used. A pointer to the 32-bit volume ID hast to be passed
+ * to the ioctl.
+ *
+ * UBI volume re-size
+ * ~~~~~~~~~~~~~~~~~~
+ *
+ * To re-size a volume, the %UBI_IOCRSVOL ioctl command of the UBI character
+ * device should be used. A &struct ubi_rsvol_req object has to be properly
+ * filled and a pointer to it has to be passed to the ioctl.
+ *
+ * UBI volumes re-name
+ * ~~~~~~~~~~~~~~~~~~~
+ *
+ * To re-name several volumes atomically at one go, the %UBI_IOCRNVOL command
+ * of the UBI character device should be used. A &struct ubi_rnvol_req object
+ * has to be properly filled and a pointer to it has to be passed to the ioctl.
+ *
+ * UBI volume update
+ * ~~~~~~~~~~~~~~~~~
+ *
+ * Volume update should be done via the %UBI_IOCVOLUP ioctl command of the
+ * corresponding UBI volume character device. A pointer to a 64-bit update
+ * size should be passed to the ioctl. After this, UBI expects user to write
+ * this number of bytes to the volume character device. The update is finished
+ * when the claimed number of bytes is passed. So, the volume update sequence
+ * is something like:
+ *
+ * fd = open("/dev/my_volume");
+ * ioctl(fd, UBI_IOCVOLUP, &image_size);
+ * write(fd, buf, image_size);
+ * close(fd);
+ *
+ * Logical eraseblock erase
+ * ~~~~~~~~~~~~~~~~~~~~~~~~
+ *
+ * To erase a logical eraseblock, the %UBI_IOCEBER ioctl command of the
+ * corresponding UBI volume character device should be used. This command
+ * unmaps the requested logical eraseblock, makes sure the corresponding
+ * physical eraseblock is successfully erased, and returns.
+ *
+ * Atomic logical eraseblock change
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ *
+ * Atomic logical eraseblock change operation is called using the %UBI_IOCEBCH
+ * ioctl command of the corresponding UBI volume character device. A pointer to
+ * a &struct ubi_leb_change_req object has to be passed to the ioctl. Then the
+ * user is expected to write the requested amount of bytes (similarly to what
+ * should be done in case of the "volume update" ioctl).
+ *
+ * Logical eraseblock map
+ * ~~~~~~~~~~~~~~~~~~~~~
+ *
+ * To map a logical eraseblock to a physical eraseblock, the %UBI_IOCEBMAP
+ * ioctl command should be used. A pointer to a &struct ubi_map_req object is
+ * expected to be passed. The ioctl maps the requested logical eraseblock to
+ * a physical eraseblock and returns.  Only non-mapped logical eraseblocks can
+ * be mapped. If the logical eraseblock specified in the request is already
+ * mapped to a physical eraseblock, the ioctl fails and returns error.
+ *
+ * Logical eraseblock unmap
+ * ~~~~~~~~~~~~~~~~~~~~~~~~
+ *
+ * To unmap a logical eraseblock to a physical eraseblock, the %UBI_IOCEBUNMAP
+ * ioctl command should be used. The ioctl unmaps the logical eraseblocks,
+ * schedules corresponding physical eraseblock for erasure, and returns. Unlike
+ * the "LEB erase" command, it does not wait for the physical eraseblock being
+ * erased. Note, the side effect of this is that if an unclean reboot happens
+ * after the unmap ioctl returns, you may find the LEB mapped again to the same
+ * physical eraseblock after the UBI is run again.
+ *
+ * Check if logical eraseblock is mapped
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ *
+ * To check if a logical eraseblock is mapped to a physical eraseblock, the
+ * %UBI_IOCEBISMAP ioctl command should be used. It returns %0 if the LEB is
+ * not mapped, and %1 if it is mapped.
+ *
+ * Set an UBI volume property
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~
+ *
+ * To set an UBI volume property the %UBI_IOCSETPROP ioctl command should be
+ * used. A pointer to a &struct ubi_set_vol_prop_req object is expected to be
+ * passed. The object describes which property should be set, and to which value
+ * it should be set.
+ */
+
+/*
+ * When a new UBI volume or UBI device is created, users may either specify the
+ * volume/device number they want to create or to let UBI automatically assign
+ * the number using these constants.
+ */
+#define UBI_VOL_NUM_AUTO (-1)
+#define UBI_DEV_NUM_AUTO (-1)
+
+/* Maximum volume name length */
+#define UBI_MAX_VOLUME_NAME 127
+
+/* ioctl commands of UBI character devices */
+
+#define UBI_IOC_MAGIC 'o'
+
+/* Create an UBI volume */
+#define UBI_IOCMKVOL _IOW(UBI_IOC_MAGIC, 0, struct ubi_mkvol_req)
+/* Remove an UBI volume */
+#define UBI_IOCRMVOL _IOW(UBI_IOC_MAGIC, 1, __s32)
+/* Re-size an UBI volume */
+#define UBI_IOCRSVOL _IOW(UBI_IOC_MAGIC, 2, struct ubi_rsvol_req)
+/* Re-name volumes */
+#define UBI_IOCRNVOL _IOW(UBI_IOC_MAGIC, 3, struct ubi_rnvol_req)
+
+/* ioctl commands of the UBI control character device */
+
+#define UBI_CTRL_IOC_MAGIC 'o'
+
+/* Attach an MTD device */
+#define UBI_IOCATT _IOW(UBI_CTRL_IOC_MAGIC, 64, struct ubi_attach_req)
+/* Detach an MTD device */
+#define UBI_IOCDET _IOW(UBI_CTRL_IOC_MAGIC, 65, __s32)
+
+/* ioctl commands of UBI volume character devices */
+
+#define UBI_VOL_IOC_MAGIC 'O'
+
+/* Start UBI volume update */
+#define UBI_IOCVOLUP _IOW(UBI_VOL_IOC_MAGIC, 0, __s64)
+/* LEB erasure command, used for debugging, disabled by default */
+#define UBI_IOCEBER _IOW(UBI_VOL_IOC_MAGIC, 1, __s32)
+/* Atomic LEB change command */
+#define UBI_IOCEBCH _IOW(UBI_VOL_IOC_MAGIC, 2, __s32)
+/* Map LEB command */
+#define UBI_IOCEBMAP _IOW(UBI_VOL_IOC_MAGIC, 3, struct ubi_map_req)
+/* Unmap LEB command */
+#define UBI_IOCEBUNMAP _IOW(UBI_VOL_IOC_MAGIC, 4, __s32)
+/* Check if LEB is mapped command */
+#define UBI_IOCEBISMAP _IOR(UBI_VOL_IOC_MAGIC, 5, __s32)
+/* Set an UBI volume property */
+#define UBI_IOCSETVOLPROP _IOW(UBI_VOL_IOC_MAGIC, 6, \
+			       struct ubi_set_vol_prop_req)
+
+/* Maximum MTD device name length supported by UBI */
+#define MAX_UBI_MTD_NAME_LEN 127
+
+/* Maximum amount of UBI volumes that can be re-named at one go */
+#define UBI_MAX_RNVOL 32
+
+/*
+ * UBI volume type constants.
+ *
+ * @UBI_DYNAMIC_VOLUME: dynamic volume
+ * @UBI_STATIC_VOLUME:  static volume
+ */
+enum {
+	UBI_DYNAMIC_VOLUME = 3,
+	UBI_STATIC_VOLUME  = 4,
+};
+
+/*
+ * UBI set volume property ioctl constants.
+ *
+ * @UBI_VOL_PROP_DIRECT_WRITE: allow (any non-zero value) or disallow (value 0)
+ *                             user to directly write and erase individual
+ *                             eraseblocks on dynamic volumes
+ */
+enum {
+	UBI_VOL_PROP_DIRECT_WRITE = 1,
+};
+
+/**
+ * struct ubi_attach_req - attach MTD device request.
+ * @ubi_num: UBI device number to create
+ * @mtd_num: MTD device number to attach
+ * @vid_hdr_offset: VID header offset (use defaults if %0)
+ * @max_beb_per1024: maximum expected number of bad PEB per 1024 PEBs
+ * @padding: reserved for future, not used, has to be zeroed
+ *
+ * This data structure is used to specify MTD device UBI has to attach and the
+ * parameters it has to use. The number which should be assigned to the new UBI
+ * device is passed in @ubi_num. UBI may automatically assign the number if
+ * @UBI_DEV_NUM_AUTO is passed. In this case, the device number is returned in
+ * @ubi_num.
+ *
+ * Most applications should pass %0 in @vid_hdr_offset to make UBI use default
+ * offset of the VID header within physical eraseblocks. The default offset is
+ * the next min. I/O unit after the EC header. For example, it will be offset
+ * 512 in case of a 512 bytes page NAND flash with no sub-page support. Or
+ * it will be 512 in case of a 2KiB page NAND flash with 4 512-byte sub-pages.
+ *
+ * But in rare cases, if this optimizes things, the VID header may be placed to
+ * a different offset. For example, the boot-loader might do things faster if
+ * the VID header sits at the end of the first 2KiB NAND page with 4 sub-pages.
+ * As the boot-loader would not normally need to read EC headers (unless it
+ * needs UBI in RW mode), it might be faster to calculate ECC. This is weird
+ * example, but it real-life example. So, in this example, @vid_hdr_offer would
+ * be 2KiB-64 bytes = 1984. Note, that this position is not even 512-bytes
+ * aligned, which is OK, as UBI is clever enough to realize this is 4th
+ * sub-page of the first page and add needed padding.
+ *
+ * The @max_beb_per1024 is the maximum amount of bad PEBs UBI expects on the
+ * UBI device per 1024 eraseblocks.  This value is often given in an other form
+ * in the NAND datasheet (min NVB i.e. minimal number of valid blocks). The
+ * maximum expected bad eraseblocks per 1024 is then:
+ *    1024 * (1 - MinNVB / MaxNVB)
+ * Which gives 20 for most NAND devices.  This limit is used in order to derive
+ * amount of eraseblock UBI reserves for handling new bad blocks. If the device
+ * has more bad eraseblocks than this limit, UBI does not reserve any physical
+ * eraseblocks for new bad eraseblocks, but attempts to use available
+ * eraseblocks (if any). The accepted range is 0-768. If 0 is given, the
+ * default kernel value of %CONFIG_MTD_UBI_BEB_LIMIT will be used.
+ */
+struct ubi_attach_req {
+	__s32 ubi_num;
+	__s32 mtd_num;
+	__s32 vid_hdr_offset;
+	__s16 max_beb_per1024;
+	__s8 padding[10];
+};
+
+/**
+ * struct ubi_mkvol_req - volume description data structure used in
+ *                        volume creation requests.
+ * @vol_id: volume number
+ * @alignment: volume alignment
+ * @bytes: volume size in bytes
+ * @vol_type: volume type (%UBI_DYNAMIC_VOLUME or %UBI_STATIC_VOLUME)
+ * @padding1: reserved for future, not used, has to be zeroed
+ * @name_len: volume name length
+ * @padding2: reserved for future, not used, has to be zeroed
+ * @name: volume name
+ *
+ * This structure is used by user-space programs when creating new volumes. The
+ * @used_bytes field is only necessary when creating static volumes.
+ *
+ * The @alignment field specifies the required alignment of the volume logical
+ * eraseblock. This means, that the size of logical eraseblocks will be aligned
+ * to this number, i.e.,
+ *	(UBI device logical eraseblock size) mod (@alignment) = 0.
+ *
+ * To put it differently, the logical eraseblock of this volume may be slightly
+ * shortened in order to make it properly aligned. The alignment has to be
+ * multiple of the flash minimal input/output unit, or %1 to utilize the entire
+ * available space of logical eraseblocks.
+ *
+ * The @alignment field may be useful, for example, when one wants to maintain
+ * a block device on top of an UBI volume. In this case, it is desirable to fit
+ * an integer number of blocks in logical eraseblocks of this UBI volume. With
+ * alignment it is possible to update this volume using plane UBI volume image
+ * BLOBs, without caring about how to properly align them.
+ */
+struct ubi_mkvol_req {
+	__s32 vol_id;
+	__s32 alignment;
+	__s64 bytes;
+	__s8 vol_type;
+	__s8 padding1;
+	__s16 name_len;
+	__s8 padding2[4];
+	char name[UBI_MAX_VOLUME_NAME + 1];
+} __attribute__((packed));
+
+/**
+ * struct ubi_rsvol_req - a data structure used in volume re-size requests.
+ * @vol_id: ID of the volume to re-size
+ * @bytes: new size of the volume in bytes
+ *
+ * Re-sizing is possible for both dynamic and static volumes. But while dynamic
+ * volumes may be re-sized arbitrarily, static volumes cannot be made to be
+ * smaller than the number of bytes they bear. To arbitrarily shrink a static
+ * volume, it must be wiped out first (by means of volume update operation with
+ * zero number of bytes).
+ */
+struct ubi_rsvol_req {
+	__s64 bytes;
+	__s32 vol_id;
+} __attribute__((packed));
+
+/**
+ * struct ubi_rnvol_req - volumes re-name request.
+ * @count: count of volumes to re-name
+ * @padding1:  reserved for future, not used, has to be zeroed
+ * @vol_id: ID of the volume to re-name
+ * @name_len: name length
+ * @padding2:  reserved for future, not used, has to be zeroed
+ * @name: new volume name
+ *
+ * UBI allows to re-name up to %32 volumes at one go. The count of volumes to
+ * re-name is specified in the @count field. The ID of the volumes to re-name
+ * and the new names are specified in the @vol_id and @name fields.
+ *
+ * The UBI volume re-name operation is atomic, which means that should power cut
+ * happen, the volumes will have either old name or new name. So the possible
+ * use-cases of this command is atomic upgrade. Indeed, to upgrade, say, volumes
+ * A and B one may create temporary volumes %A1 and %B1 with the new contents,
+ * then atomically re-name A1->A and B1->B, in which case old %A and %B will
+ * be removed.
+ *
+ * If it is not desirable to remove old A and B, the re-name request has to
+ * contain 4 entries: A1->A, A->A1, B1->B, B->B1, in which case old A1 and B1
+ * become A and B, and old A and B will become A1 and B1.
+ *
+ * It is also OK to request: A1->A, A1->X, B1->B, B->Y, in which case old A1
+ * and B1 become A and B, and old A and B become X and Y.
+ *
+ * In other words, in case of re-naming into an existing volume name, the
+ * existing volume is removed, unless it is re-named as well at the same
+ * re-name request.
+ */
+struct ubi_rnvol_req {
+	__s32 count;
+	__s8 padding1[12];
+	struct {
+		__s32 vol_id;
+		__s16 name_len;
+		__s8  padding2[2];
+		char    name[UBI_MAX_VOLUME_NAME + 1];
+	} ents[UBI_MAX_RNVOL];
+} __attribute__((packed));
+
+/**
+ * struct ubi_leb_change_req - a data structure used in atomic LEB change
+ *                             requests.
+ * @lnum: logical eraseblock number to change
+ * @bytes: how many bytes will be written to the logical eraseblock
+ * @dtype: pass "3" for better compatibility with old kernels
+ * @padding: reserved for future, not used, has to be zeroed
+ *
+ * The @dtype field used to inform UBI about what kind of data will be written
+ * to the LEB: long term (value 1), short term (value 2), unknown (value 3).
+ * UBI tried to pick a PEB with lower erase counter for short term data and a
+ * PEB with higher erase counter for long term data. But this was not really
+ * used because users usually do not know this and could easily mislead UBI. We
+ * removed this feature in May 2012. UBI currently just ignores the @dtype
+ * field. But for better compatibility with older kernels it is recommended to
+ * set @dtype to 3 (unknown).
+ */
+struct ubi_leb_change_req {
+	__s32 lnum;
+	__s32 bytes;
+	__s8  dtype; /* obsolete, do not use! */
+	__s8  padding[7];
+} __attribute__((packed));
+
+/**
+ * struct ubi_map_req - a data structure used in map LEB requests.
+ * @dtype: pass "3" for better compatibility with old kernels
+ * @lnum: logical eraseblock number to unmap
+ * @padding: reserved for future, not used, has to be zeroed
+ */
+struct ubi_map_req {
+	__s32 lnum;
+	__s8  dtype; /* obsolete, do not use! */
+	__s8  padding[3];
+} __attribute__((packed));
+
+
+/**
+ * struct ubi_set_vol_prop_req - a data structure used to set an UBI volume
+ *                               property.
+ * @property: property to set (%UBI_VOL_PROP_DIRECT_WRITE)
+ * @padding: reserved for future, not used, has to be zeroed
+ * @value: value to set
+ */
+struct ubi_set_vol_prop_req {
+	__u8  property;
+	__u8  padding[7];
+	__u64 value;
+}  __attribute__((packed));
+
+#endif /* __UBI_USER_H__ */
diff --git a/linux/x32/errnoent1.h b/linux/x32/errnoent1.h
index a894827..de1136c 100644
--- a/linux/x32/errnoent1.h
+++ b/linux/x32/errnoent1.h
@@ -1,2 +1,2 @@
-/* Our second set comes from the i386 files.  */
+/* i386 personality */
 #include "../errnoent.h"
diff --git a/linux/x32/ioctlent.h.in b/linux/x32/ioctlent.h.in
deleted file mode 100644
index 52ac99b..0000000
--- a/linux/x32/ioctlent.h.in
+++ /dev/null
@@ -1 +0,0 @@
-#include "../i386/ioctlent.h.in"
diff --git a/linux/x32/ioctlent1.h b/linux/x32/ioctlent1.h
index 1f92feb..4750671 100644
--- a/linux/x32/ioctlent1.h
+++ b/linux/x32/ioctlent1.h
@@ -1,2 +1,2 @@
-/* Our second set comes from the i386 files.  */
-#include "linux/ioctlent.h"
+/* i386 personality */
+#include "ioctlent.h"
diff --git a/linux/x32/signalent1.h b/linux/x32/signalent1.h
index 5c18d98..c927d72 100644
--- a/linux/x32/signalent1.h
+++ b/linux/x32/signalent1.h
@@ -1,2 +1,2 @@
-/* Our second set comes from the i386 files.  */
+/* i386 personality */
 #include "../signalent.h"
diff --git a/linux/x32/syscallent.h b/linux/x32/syscallent.h
index fcb6a23..65df127 100644
--- a/linux/x32/syscallent.h
+++ b/linux/x32/syscallent.h
@@ -7,26 +7,26 @@
 	{ 2,	TF,	sys_lstat,		"lstat"		},  /* 6 */
 	{ 3,	TD,	sys_poll,		"poll"		},  /* 7 */
 	{ 3,	TD,	sys_lseek,		"lseek"		},  /* 8 */
-	{ 6,	TD,	sys_mmap,		"mmap"		},  /* 9 */
-	{ 3,	0,	sys_mprotect,		"mprotect"	},  /* 10 */
-	{ 2,	0,	sys_munmap,		"munmap"	},  /* 11 */
-	{ 1,	0,	sys_brk,		"brk"		},  /* 12 */
-	{ },							    /* 13 */
+	{ 6,	TD|TM,	sys_mmap,		"mmap"		},  /* 9 */
+	{ 3,	TM,	sys_mprotect,		"mprotect"	},  /* 10 */
+	{ 2,	TM,	sys_munmap,		"munmap"	},  /* 11 */
+	{ 1,	TM,	sys_brk,		"brk"		},  /* 12 */
+	{ 4,	TS,	printargs,		"64:rt_sigaction"	},  /* 13 */
 	{ 4,	TS,	sys_rt_sigprocmask,	"rt_sigprocmask"},  /* 14 */
-	{ },							    /* 15 */
-	{ },							    /* 16 */
-	{ 5,	TD,	sys_pread,		"pread"		},  /* 17 */
-	{ 5,	TD,	sys_pwrite,		"pwrite"	},  /* 18 */
-	{ },							    /* 19 */
-	{ },							    /* 20 */
+	{ 0,	TS,	printargs,		"64:rt_sigreturn"	},  /* 15 */
+	{ 3,	TD,	printargs,		"64:ioctl"	},  /* 16 */
+	{ 4,	TD,	sys_pread,		"pread"		},  /* 17 */
+	{ 4,	TD,	sys_pwrite,		"pwrite"	},  /* 18 */
+	{ 3,	TD,	printargs,		"64:readv"	},  /* 19 */
+	{ 3,	TD,	printargs,		"64:writev"	},  /* 20 */
 	{ 2,	TF,	sys_access,		"access"	},  /* 21 */
 	{ 1,	TD,	sys_pipe,		"pipe"		},  /* 22 */
 	{ 5,	TD,	sys_select,		"select"	},  /* 23 */
 	{ 0,	0,	sys_sched_yield,	"sched_yield"	},  /* 24 */
-	{ 5,	0,	sys_mremap,		"mremap"	},  /* 25 */
-	{ 3,	0,	sys_msync,		"msync"		},  /* 26 */
-	{ 3,	0,	sys_mincore,		"mincore"	},  /* 27 */
-	{ 3,	0,	sys_madvise,		"madvise"	},  /* 28 */
+	{ 5,	TM,	sys_mremap,		"mremap"	},  /* 25 */
+	{ 3,	TM,	sys_msync,		"msync"		},  /* 26 */
+	{ 3,	TM,	sys_mincore,		"mincore"	},  /* 27 */
+	{ 3,	TM,	sys_madvise,		"madvise"	},  /* 28 */
 	{ 4,	TI,	sys_shmget,		"shmget"	},  /* 29 */
 	{ 4,	TI,	sys_shmat,		"shmat"		},  /* 30 */
 	{ 4,	TI,	sys_shmctl,		"shmctl"	},  /* 31 */
@@ -38,26 +38,26 @@
 	{ 1,	0,	sys_alarm,		"alarm"		},  /* 37 */
 	{ 3,	0,	sys_setitimer,		"setitimer"	},  /* 38 */
 	{ 0,	0,	sys_getpid,		"getpid"	},  /* 39 */
-	{ 4,	TD|TN,	sys_sendfile,		"sendfile"	},  /* 40 */
+	{ 4,	TD|TN,	sys_sendfile64,		"sendfile"	},  /* 40 */
 	{ 3,	TN,	sys_socket,		"socket"	},  /* 41 */
 	{ 3,	TN,	sys_connect,		"connect"	},  /* 42 */
 	{ 3,	TN,	sys_accept,		"accept"	},  /* 43 */
 	{ 6,	TN,	sys_sendto,		"sendto"	},  /* 44 */
-	{ },							    /* 45 */
-	{ },							    /* 46 */
-	{ },							    /* 47 */
+	{ 6,	TN,	printargs,		"64:recvfrom"	},  /* 45 */
+	{ 3,	TN,	printargs,		"64:sendmsg"	},  /* 46 */
+	{ 5,	TN,	printargs,		"64:recvmsg"	},  /* 47 */
 	{ 2,	TN,	sys_shutdown,		"shutdown"	},  /* 48 */
 	{ 3,	TN,	sys_bind,		"bind"		},  /* 49 */
 	{ 2,	TN,	sys_listen,		"listen"	},  /* 50 */
 	{ 3,	TN,	sys_getsockname,	"getsockname"	},  /* 51 */
 	{ 3,	TN,	sys_getpeername,	"getpeername"	},  /* 52 */
 	{ 4,	TN,	sys_socketpair,		"socketpair"	},  /* 53 */
-	{ 5,	TN,	sys_setsockopt,		"setsockopt"	},  /* 54 */
-	{ 5,	TN,	sys_getsockopt,		"getsockopt"	},  /* 55 */
+	{ 5,	TN,	printargs,		"64:setsockopt"	},  /* 54 */
+	{ 5,	TN,	printargs,		"64:getsockopt"	},  /* 55 */
 	{ 5,	TP,	sys_clone,		"clone"		},  /* 56 */
 	{ 0,	TP,	sys_fork,		"fork"		},  /* 57 */
 	{ 0,	TP,	sys_vfork,		"vfork"		},  /* 58 */
-	{ },							    /* 47 */
+	{ 3,	TF|TP,	printargs,		"64:execve"	},  /* 59 */
 	{ 1,	TP,	sys_exit,		"_exit"		},  /* 60 */
 	{ 4,	TP,	sys_wait4,		"wait4"		},  /* 61 */
 	{ 2,	TS,	sys_kill,		"kill"		},  /* 62 */
@@ -74,9 +74,9 @@
 	{ 2,	TD,	sys_flock,		"flock"		},  /* 73 */
 	{ 1,	TD,	sys_fsync,		"fsync"		},  /* 74 */
 	{ 1,	TD,	sys_fdatasync,		"fdatasync"	},  /* 75 */
-	{ 2,	TF,	sys_truncate,		"truncate"	},  /* 76 */
-	{ 2,	TD,	sys_ftruncate,		"ftruncate"	},  /* 77 */
-	{ },							    /* 78 */
+	{ 2,	TF,	sys_truncate64,		"truncate"	},  /* 76 */
+	{ 2,	TD,	sys_ftruncate64,	"ftruncate"	},  /* 77 */
+	{ 3,	TD,	sys_getdents,		"getdents"	}, /* 78 */
 	{ 2,	TF,	sys_getcwd,		"getcwd"	},  /* 79 */
 	{ 1,	TF,	sys_chdir,		"chdir"		},  /* 80 */
 	{ 1,	TD,	sys_fchdir,		"fchdir"	},  /* 81 */
@@ -99,7 +99,7 @@
 	{ 2,	0,	sys_getrusage,		"getrusage"	},  /* 98 */
 	{ 1,	0,	sys_sysinfo,		"sysinfo"	},  /* 99 */
 	{ 1,	0,	sys_times,		"times"		},  /* 100 */
-	{ },							    /* 101 */
+	{ 4,	0,	printargs,		"64:ptrace"	},  /* 101 */
 	{ 0,	NF,	sys_getuid,		"getuid"	},  /* 102 */
 	{ 3,	0,	sys_syslog,		"syslog"	},  /* 103 */
 	{ 0,	NF,	sys_getgid,		"getgid"	},  /* 104 */
@@ -125,14 +125,14 @@
 	{ 1,	0,	sys_getsid,		"getsid"	},  /* 124 */
 	{ 2,	0,	sys_capget,		"capget"	},  /* 125 */
 	{ 2,	0,	sys_capset,		"capset"	},  /* 126 */
-	{ },							    /* 127 */
-	{ },							    /* 128 */
-	{ },							    /* 129 */
+	{ 2,	TS,	printargs,		"64:rt_sigpending"	},  /* 127 */
+	{ 4,	TS,	printargs,		"64:rt_sigtimedwait"	},  /* 128 */
+	{ 3,	TS,	printargs,		"64:rt_sigqueueinfo"	},  /* 129 */
 	{ 2,	TS,	sys_rt_sigsuspend,	"rt_sigsuspend"	},  /* 130 */
-	{ },							    /* 131 */
+	{ 2,	TS,	printargs,		"64:sigaltstack"},  /* 131 */
 	{ 2,	TF,	sys_utime,		"utime"		},  /* 132 */
 	{ 3,	TF,	sys_mknod,		"mknod"		},  /* 133 */
-	{ },							    /* 134 */
+	{ 1,	TF,	printargs,		"64:uselib"	},  /* 134 */
 	{ 1,	0,	sys_personality,	"personality"	},  /* 135 */
 	{ 2,	0,	sys_ustat,		"ustat"		},  /* 136 */
 	{ 2,	TF,	sys_statfs,		"statfs"	},  /* 137 */
@@ -147,14 +147,14 @@
 	{ 1,	0,	sys_sched_get_priority_max,	"sched_get_priority_max"	},  /* 146 */
 	{ 1,	0,	sys_sched_get_priority_min,	"sched_get_priority_min"	},  /* 147 */
 	{ 2,	0,	sys_sched_rr_get_interval,	"sched_rr_get_interval"	},  /* 148 */
-	{ 2,	0,	sys_mlock,		"mlock"		},  /* 149 */
-	{ 2,	0,	sys_munlock,		"munlock"	},  /* 150 */
-	{ 1,	0,	sys_mlockall,		"mlockall"	},  /* 151 */
-	{ 0,	0,	sys_munlockall,		"munlockall"	},  /* 152 */
+	{ 2,	TM,	sys_mlock,		"mlock"		},  /* 149 */
+	{ 2,	TM,	sys_munlock,		"munlock"	},  /* 150 */
+	{ 1,	TM,	sys_mlockall,		"mlockall"	},  /* 151 */
+	{ 0,	TM,	sys_munlockall,		"munlockall"	},  /* 152 */
 	{ 0,	0,	sys_vhangup,		"vhangup"	},  /* 153 */
 	{ 3,	0,	sys_modify_ldt,		"modify_ldt"	},  /* 154 */
 	{ 2,	TF,	sys_pivotroot,		"pivot_root"	},  /* 155 */
-	{ },							    /* 156 */
+	{ 1,	0,	printargs,		"64:_sysctl"	},  /* 156 */
 	{ 5,	0,	sys_prctl,		"prctl"		},  /* 157 */
 	{ 2,	TP,	sys_arch_prctl,		"arch_prctl"	},  /* 158 */
 	{ 1,	0,	sys_adjtimex,		"adjtimex"	},  /* 159 */
@@ -172,20 +172,20 @@
 	{ 2,	0,	sys_setdomainname,	"setdomainname"	},  /* 171 */
 	{ 1,	0,	sys_iopl,		"iopl"		},  /* 172 */
 	{ 3,	0,	sys_ioperm,		"ioperm"	},  /* 173 */
-	{ 2,	0,	sys_create_module,	"create_module"	},  /* 174 */
+	{ 2,	0,	printargs,		"64:create_module"	},  /* 174 */
 	{ 3,	0,	sys_init_module,	"init_module"	},  /* 175 */
 	{ 2,	0,	sys_delete_module,	"delete_module"	},  /* 176 */
-	{ },							    /* 177 */
-	{ },							    /* 178 */
-	{ 4,	0,	sys_quotactl,		"quotactl"	},  /* 179 */
-	{ },							    /* 180 */
-	{ },							    /* 181 */
-	{ },							    /* 182 */
-	{ },							    /* 183 */
-	{ },							    /* 184 */
-	{ },							    /* 185 */
+	{ 1,	0,	printargs,		"64:get_kernel_syms"	},  /* 177 */
+	{ 5,	0,	printargs,		"64:query_module"	},  /* 178 */
+	{ 4,	TF,	sys_quotactl,		"quotactl"	},  /* 179 */
+	{ 3,	0,	printargs,		"64:nfsservctl"	},  /* 180 */
+	{ 5,	0,	sys_getpmsg,		"getpmsg"	}, /* 181 */
+	{ 5,	0,	sys_putpmsg,		"putpmsg"	}, /* 182 */
+	{ 5,	0,	sys_afs_syscall,	"afs_syscall"	},  /* 183 */
+	{ 3,	0,	sys_tuxcall,		"tuxcall"	}, /* 184 */
+	{ 3,	0,	sys_security,		"security"	}, /* 185 */
 	{ 0,	0,	sys_gettid,		"gettid"	}, /* 186 */
-	{ 4,	TD,	sys_readahead,		"readahead"	}, /* 187 */
+	{ 3,	TD,	sys_readahead,		"readahead"	}, /* 187 */
 	{ 5,	TF,	sys_setxattr,		"setxattr"	}, /* 188 */
 	{ 5,	TF,	sys_setxattr,		"lsetxattr"	}, /* 189 */
 	{ 5,	TD,	sys_fsetxattr,		"fsetxattr"	}, /* 190 */
@@ -203,24 +203,24 @@
 	{ 6,	0,	sys_futex,		"futex"		}, /* 202 */
 	{ 3,	0,	sys_sched_setaffinity,	"sched_setaffinity" },/* 203 */
 	{ 3,	0,	sys_sched_getaffinity,	"sched_getaffinity" },/* 204 */
-	{ },							   /* 205 */
+	{ 1,	0,	printargs,		"64:set_thread_area" }, /* 205 */
 	{ 2,	0,	sys_io_setup,		"io_setup"	}, /* 206 */
 	{ 1,	0,	sys_io_destroy,		"io_destroy"	}, /* 207 */
 	{ 5,	0,	sys_io_getevents,	"io_getevents"	}, /* 208 */
 	{ 3,	0,	sys_io_submit,		"io_submit"	}, /* 209 */
 	{ 3,	0,	sys_io_cancel,		"io_cancel"	}, /* 210 */
-	{ },							   /* 211 */
+	{ 1,	0,	printargs,		"64:get_thread_area"	}, /* 211 */
 	{ 4,	0,	sys_lookup_dcookie,	"lookup_dcookie"}, /* 212 */
 	{ 1,	TD,	sys_epoll_create,	"epoll_create"	}, /* 213 */
-	{ },							   /* 214 */
-	{ },							   /* 215 */
-	{ 5,	0,	sys_remap_file_pages,	"remap_file_pages"}, /* 216 */
+	{ 4,	0,	printargs,		"64:epoll_ctl_old"	}, /* 214 */
+	{ 4,	0,	printargs,		"64:epoll_wait_old"	}, /* 215 */
+	{ 5,	TM,	sys_remap_file_pages,	"remap_file_pages"}, /* 216 */
 	{ 3,	TD,	sys_getdents64,		"getdents64"	}, /* 217 */
 	{ 1,	0,	sys_set_tid_address,	"set_tid_address"}, /* 218 */
 	{ 0,	0,	sys_restart_syscall,	"restart_syscall"}, /* 219 */
 	{ 5,	TI,	sys_semtimedop,		"semtimedop"	}, /* 220 */
 	{ 4,	TD,	sys_fadvise64_64,	"fadvise64"	}, /* 221 */
-	{ },							   /* 222 */
+	{ 3,	0,	printargs,		"64:timer_create"}, /* 222 */
 	{ 4,	0,	sys_timer_settime,	"timer_settime"	}, /* 223 */
 	{ 2,	0,	sys_timer_gettime,	"timer_gettime"	}, /* 224 */
 	{ 1,	0,	sys_timer_getoverrun,	"timer_getoverrun"}, /* 225 */
@@ -234,18 +234,18 @@
 	{ 4,	TD,	sys_epoll_ctl,		"epoll_ctl"	}, /* 233 */
 	{ 3,	TS,	sys_tgkill,		"tgkill"	}, /* 234 */
 	{ 2,	TF,	sys_utimes,		"utimes"	}, /* 235 */
-	{ },							   /* 236 */
-	{ 6,	0,	sys_mbind,		"mbind"		}, /* 237 */
-	{ 3,	0,	sys_set_mempolicy,	"set_mempolicy"	}, /* 238 */
-	{ 5,	0,	sys_get_mempolicy,	"get_mempolicy"	}, /* 239 */
+	{ 5,	0,	printargs,		"64:vserver"	}, /* 236 */
+	{ 6,	TM,	sys_mbind,		"mbind"		}, /* 237 */
+	{ 3,	TM,	sys_set_mempolicy,	"set_mempolicy"	}, /* 238 */
+	{ 5,	TM,	sys_get_mempolicy,	"get_mempolicy"	}, /* 239 */
 	{ 4,	0,	sys_mq_open,		"mq_open"	}, /* 240 */
 	{ 1,	0,	sys_mq_unlink,		"mq_unlink"	}, /* 241 */
 	{ 5,	0,	sys_mq_timedsend,	"mq_timedsend"	}, /* 242 */
 	{ 5,	0,	sys_mq_timedreceive,	"mq_timedreceive" }, /* 243 */
-	{ },							   /* 244 */
+	{ 2,	0,	printargs,		"64:mq_notify"	}, /* 244 */
 	{ 3,	0,	sys_mq_getsetattr,	"mq_getsetattr"	}, /* 245 */
-	{ },							   /* 246 */
-	{ },							   /* 247 */
+	{ 4,	0,	printargs,		"64:kexec_load"	}, /* 246 */
+	{ 5,	TP,	printargs,		"64:waitid"	}, /* 247 */
 	{ 5,	0,	sys_add_key,		"add_key"	}, /* 248 */
 	{ 4,	0,	sys_request_key,	"request_key"	}, /* 249 */
 	{ 5,	0,	sys_keyctl,		"keyctl"	}, /* 250 */
@@ -254,7 +254,7 @@
 	{ 0,	TD,	sys_inotify_init,	"inotify_init"	}, /* 253 */
 	{ 3,	TD,	sys_inotify_add_watch,	"inotify_add_watch" }, /* 254 */
 	{ 2,	TD,	sys_inotify_rm_watch,	"inotify_rm_watch" }, /* 255 */
-	{ 4,	0,	sys_migrate_pages,	"migrate_pages"	}, /* 256 */
+	{ 4,	TM,	sys_migrate_pages,	"migrate_pages"	}, /* 256 */
 	{ 4,	TD|TF,	sys_openat,		"openat"	}, /* 257 */
 	{ 3,	TD|TF,	sys_mkdirat,		"mkdirat"	}, /* 258 */
 	{ 4,	TD|TF,	sys_mknodat,		"mknodat"	}, /* 259 */
@@ -271,19 +271,19 @@
 	{ 6,	TD,	sys_pselect6,		"pselect6"	}, /* 270 */
 	{ 5,	TD,	sys_ppoll,		"ppoll"		}, /* 271 */
 	{ 1,	TP,	sys_unshare,		"unshare"	}, /* 272 */
-	{ },							   /* 273 */
-	{ },							   /* 274 */
+	{ 2,	0,	printargs,		"64:set_robust_list"	}, /* 273 */
+	{ 3,	0,	printargs,		"64:get_robust_list"	}, /* 274 */
 	{ 6,	TD,	sys_splice,		"splice"	}, /* 275 */
 	{ 4,	TD,	sys_tee,		"tee"		}, /* 276 */
 	{ 4,	TD,	sys_sync_file_range,	"sync_file_range" }, /* 277 */
-	{ },							   /* 278 */
-	{ },							   /* 279 */
+	{ 4,	TD,	printargs,		"64:vmsplice"	}, /* 278 */
+	{ 6,	TM,	printargs,		"64:move_pages"	}, /* 279 */
 	{ 4,	TD|TF,	sys_utimensat,		"utimensat"	}, /* 280 */
 	{ 6,	TD,	sys_epoll_pwait,	"epoll_pwait"	}, /* 281 */
 	{ 3,	TD|TS,	sys_signalfd,		"signalfd"	}, /* 282 */
 	{ 2,	TD,	sys_timerfd_create,	"timerfd_create"}, /* 283 */
 	{ 1,	TD,	sys_eventfd,		"eventfd"	}, /* 284 */
-	{ 6,	TD,	sys_fallocate,		"fallocate"	}, /* 285 */
+	{ 4,	TD,	sys_fallocate,		"fallocate"	}, /* 285 */
 	{ 4,	TD,	sys_timerfd_settime,	"timerfd_settime"}, /* 286 */
 	{ 2,	TD,	sys_timerfd_gettime,	"timerfd_gettime"}, /* 287 */
 	{ 4,	TN,	sys_accept4,		"accept4"	}, /* 288 */
@@ -293,11 +293,11 @@
 	{ 3,	TD,	sys_dup3,		"dup3"		}, /* 292 */
 	{ 2,	TD,	sys_pipe2,		"pipe2"		}, /* 293 */
 	{ 1,	TD,	sys_inotify_init1,	"inotify_init1"	}, /* 294 */
-	{ },							   /* 295 */
-	{ },							   /* 296 */
-	{ },							   /* 297 */
+	{ 4,	TD,	printargs,		"64:preadv"	}, /* 295 */
+	{ 4,	TD,	printargs,		"64:pwritev"	}, /* 296 */
+	{ 4,	TP|TS,	printargs,		"64:rt_tgsigqueueinfo"}, /* 297 */
 	{ 5,	TD,	sys_perf_event_open,	"perf_event_open"}, /* 298 */
-	{ },							   /* 299 */
+	{ 5,	TN,	printargs,		"64:recvmmsg"	}, /* 299 */
 	{ 2,	TD,	sys_fanotify_init,	"fanotify_init"	}, /* 300 */
 	{ 5,	TD|TF,	sys_fanotify_mark,	"fanotify_mark"	}, /* 301 */
 	{ 4,	0,	sys_prlimit64,		"prlimit64"	}, /* 302 */
@@ -305,13 +305,15 @@
 	{ 3,	TD,	sys_open_by_handle_at,	"open_by_handle_at"}, /* 304 */
 	{ 2,	0,	sys_clock_adjtime,	"clock_adjtime"	}, /* 305 */
 	{ 1,	TD,	sys_syncfs,		"syncfs"	}, /* 306 */
-	{ },							   /* 307 */
+	{ 4,	TN,	printargs,		"64:sendmmsg"	}, /* 307 */
 	{ 2,	TD,	sys_setns,		"setns"		}, /* 308 */
 	{ 3,	0,	sys_getcpu,		"getcpu"	}, /* 309 */
-	{ },							   /* 310 */
-	{ },							   /* 311 */
+	{ 6,	0,	printargs,		"64:process_vm_readv"	}, /* 310 */
+	{ 6,	0,	printargs,		"64:process_vm_writev"	}, /* 311 */
+	{ 5,	0,	sys_kcmp,		"kcmp"		}, /* 312 */
+	{ 3,	TD,	sys_finit_module,	"finit_module"	}, /* 313 */
 
-	[312 ... 511] = {},
+	[314 ... 511] = {},
 
 	{ 4,	TS,	sys_rt_sigaction,	"rt_sigaction"	},  /* 512 */
 	{ 0,	TS,	sys_rt_sigreturn,	"rt_sigreturn"	},  /* 513 */
@@ -320,12 +322,12 @@
 	{ 3,	TD,	sys_writev,		"writev"	},  /* 516 */
 	{ 6,	TN,	sys_recvfrom,		"recvfrom"	},  /* 517 */
 	{ 3,	TN,	sys_sendmsg,		"sendmsg"	},  /* 518 */
-	{ 5,	TN,	sys_recvmsg,		"recvmsg"	},  /* 519 */
+	{ 3,	TN,	sys_recvmsg,		"recvmsg"	},  /* 519 */
 	{ 3,	TF|TP,	sys_execve,		"execve"	},  /* 520 */
 	{ 4,	0,	sys_ptrace,		"ptrace"	},  /* 521 */
 	{ 2,	TS,	sys_rt_sigpending,	"rt_sigpending"	},  /* 522 */
 	{ 4,	TS,	sys_rt_sigtimedwait,	"rt_sigtimedwait" },  /* 523 */
-	{ 3,	TS,	sys_rt_sigqueueinfo,    "rt_sigqueueinfo" },  /* 524 */
+	{ 3,	TS,	sys_rt_sigqueueinfo,	"rt_sigqueueinfo" },  /* 524 */
 	{ 2,	TS,	sys_sigaltstack,	"sigaltstack"	},  /* 525 */
 	{ 3,	0,	sys_timer_create,	"timer_create"	}, /* 526 */
 	{ 2,	0,	sys_mq_notify,		"mq_notify"	}, /* 527 */
@@ -334,11 +336,13 @@
 	{ 2,	0,	sys_set_robust_list,	"set_robust_list" }, /* 530 */
 	{ 3,	0,	sys_get_robust_list,	"get_robust_list" }, /* 531 */
 	{ 4,	TD,	sys_vmsplice,		"vmsplice"	}, /* 532 */
-	{ 6,	0,	sys_move_pages,		"move_pages"	}, /* 533 */
-	{ 5,	TD,	sys_preadv,		"preadv"	}, /* 534 */
-	{ 5,	TD,	sys_pwritev,		"pwritev"	}, /* 535 */
-	{ 4,	TP|TS,	sys_rt_tgsigqueueinfo,	"rt_tgsigqueueinfo"}, /* 536 */
+	{ 6,	TM,	sys_move_pages,		"move_pages"	}, /* 533 */
+	{ 4,	TD,	sys_preadv,		"preadv"	}, /* 534 */
+	{ 4,	TD,	sys_pwritev,		"pwritev"	}, /* 535 */
+	{ 4,	TP|TS,	sys_rt_tgsigqueueinfo,	"rt_tgsigqueueinfo" }, /* 536 */
 	{ 5,	TN,	sys_recvmmsg,		"recvmmsg"	}, /* 537 */
 	{ 4,	TN,	sys_sendmmsg,		"sendmmsg"	}, /* 538 */
-	{ 6,	0,	sys_process_vm_readv,	"process_vm_readv"}, /* 539 */
-	{ 6,	0,	sys_process_vm_writev,	"process_vm_writev"}, /* 540 */
+	{ 6,	0,	sys_process_vm_readv,	"process_vm_readv" }, /* 539 */
+	{ 6,	0,	sys_process_vm_writev,	"process_vm_writev" }, /* 540 */
+	{ 5,	TN,	sys_setsockopt,		"setsockopt"	},  /* 541 */
+	{ 5,	TN,	sys_getsockopt,		"getsockopt"	},  /* 542 */
diff --git a/linux/x32/syscallent1.h b/linux/x32/syscallent1.h
index 20c6529..c9100de 100644
--- a/linux/x32/syscallent1.h
+++ b/linux/x32/syscallent1.h
@@ -1,11 +1,3 @@
-/* Our second set comes from the i386 files.
-   Only a couple of calls we cannot support without the i386 headers.  */
+/* Our second set comes from the i386 files.  */
 
-#define sys_oldstat printargs
-#define sys_oldfstat printargs
-#define sys_oldlstat printargs
-#define sys_lseek sys_lseek32
-#define sys_lstat64 sys_stat64
-#define sys_truncate64 sys_truncate
-#define sys_ftruncate64 sys_ftruncate
-#include "i386/syscallent.h"
+#include "../i386/syscallent.h"
diff --git a/linux/x86_64/errnoent1.h b/linux/x86_64/errnoent1.h
index a894827..de1136c 100644
--- a/linux/x86_64/errnoent1.h
+++ b/linux/x86_64/errnoent1.h
@@ -1,2 +1,2 @@
-/* Our second set comes from the i386 files.  */
+/* i386 personality */
 #include "../errnoent.h"
diff --git a/linux/x86_64/errnoent2.h b/linux/x86_64/errnoent2.h
index 00de57b..0630919 100644
--- a/linux/x86_64/errnoent2.h
+++ b/linux/x86_64/errnoent2.h
@@ -1,2 +1,2 @@
-/* Our third set is for x32.  */
+/* x32 personality */
 #include "../errnoent.h"
diff --git a/linux/x86_64/ioctlent1.h b/linux/x86_64/ioctlent1.h
index 1f92feb..4750671 100644
--- a/linux/x86_64/ioctlent1.h
+++ b/linux/x86_64/ioctlent1.h
@@ -1,2 +1,2 @@
-/* Our second set comes from the i386 files.  */
-#include "linux/ioctlent.h"
+/* i386 personality */
+#include "ioctlent.h"
diff --git a/linux/x86_64/ioctlent2.h b/linux/x86_64/ioctlent2.h
index 060003b..fd4b94d 100644
--- a/linux/x86_64/ioctlent2.h
+++ b/linux/x86_64/ioctlent2.h
@@ -1,2 +1,2 @@
-/* Our third set is for x32.  */
-#include "linux/ioctlent.h"
+/* x32 personality */
+#include "ioctlent.h"
diff --git a/linux/x86_64/signalent1.h b/linux/x86_64/signalent1.h
index 5c18d98..c927d72 100644
--- a/linux/x86_64/signalent1.h
+++ b/linux/x86_64/signalent1.h
@@ -1,2 +1,2 @@
-/* Our second set comes from the i386 files.  */
+/* i386 personality */
 #include "../signalent.h"
diff --git a/linux/x86_64/signalent2.h b/linux/x86_64/signalent2.h
index 6fbcab1..c8f6824 100644
--- a/linux/x86_64/signalent2.h
+++ b/linux/x86_64/signalent2.h
@@ -1,2 +1,2 @@
-/* Our third set is for x32.  */
+/* x32 personality */
 #include "../signalent.h"
diff --git a/linux/x86_64/syscallent.h b/linux/x86_64/syscallent.h
index 34ebc53..8e3a200 100644
--- a/linux/x86_64/syscallent.h
+++ b/linux/x86_64/syscallent.h
@@ -7,26 +7,26 @@
 	{ 2,	TF,	sys_lstat,		"lstat"		},  /* 6 */
 	{ 3,	TD,	sys_poll,		"poll"		},  /* 7 */
 	{ 3,	TD,	sys_lseek,		"lseek"		},  /* 8 */
-	{ 6,	TD,	sys_mmap,		"mmap"		},  /* 9 */
-	{ 3,	0,	sys_mprotect,		"mprotect"	},  /* 10 */
-	{ 2,	0,	sys_munmap,		"munmap"	},  /* 11 */
-	{ 1,	0,	sys_brk,		"brk"		},  /* 12 */
+	{ 6,	TD|TM,	sys_mmap,		"mmap"		},  /* 9 */
+	{ 3,	TM,	sys_mprotect,		"mprotect"	},  /* 10 */
+	{ 2,	TM,	sys_munmap,		"munmap"	},  /* 11 */
+	{ 1,	TM,	sys_brk,		"brk"		},  /* 12 */
 	{ 4,	TS,	sys_rt_sigaction,	"rt_sigaction"	},  /* 13 */
 	{ 4,	TS,	sys_rt_sigprocmask,	"rt_sigprocmask"},  /* 14 */
 	{ 0,	TS,	sys_rt_sigreturn,	"rt_sigreturn"	},  /* 15 */
 	{ 3,	TD,	sys_ioctl,		"ioctl"		},  /* 16 */
-	{ 5,	TD,	sys_pread,		"pread"		},  /* 17 */
-	{ 5,	TD,	sys_pwrite,		"pwrite"	},  /* 18 */
+	{ 4,	TD,	sys_pread,		"pread"		},  /* 17 */
+	{ 4,	TD,	sys_pwrite,		"pwrite"	},  /* 18 */
 	{ 3,	TD,	sys_readv,		"readv"		},  /* 19 */
 	{ 3,	TD,	sys_writev,		"writev"	},  /* 20 */
 	{ 2,	TF,	sys_access,		"access"	},  /* 21 */
 	{ 1,	TD,	sys_pipe,		"pipe"		},  /* 22 */
 	{ 5,	TD,	sys_select,		"select"	},  /* 23 */
 	{ 0,	0,	sys_sched_yield,	"sched_yield"	},  /* 24 */
-	{ 5,	0,	sys_mremap,		"mremap"	},  /* 25 */
-	{ 3,	0,	sys_msync,		"msync"		},  /* 26 */
-	{ 3,	0,	sys_mincore,		"mincore"	},  /* 27 */
-	{ 3,	0,	sys_madvise,		"madvise"	},  /* 28 */
+	{ 5,	TM,	sys_mremap,		"mremap"	},  /* 25 */
+	{ 3,	TM,	sys_msync,		"msync"		},  /* 26 */
+	{ 3,	TM,	sys_mincore,		"mincore"	},  /* 27 */
+	{ 3,	TM,	sys_madvise,		"madvise"	},  /* 28 */
 	{ 4,	TI,	sys_shmget,		"shmget"	},  /* 29 */
 	{ 4,	TI,	sys_shmat,		"shmat"		},  /* 30 */
 	{ 4,	TI,	sys_shmctl,		"shmctl"	},  /* 31 */
@@ -38,14 +38,14 @@
 	{ 1,	0,	sys_alarm,		"alarm"		},  /* 37 */
 	{ 3,	0,	sys_setitimer,		"setitimer"	},  /* 38 */
 	{ 0,	0,	sys_getpid,		"getpid"	},  /* 39 */
-	{ 4,	TD|TN,	sys_sendfile,		"sendfile"	},  /* 40 */
+	{ 4,	TD|TN,	sys_sendfile64,		"sendfile"	},  /* 40 */
 	{ 3,	TN,	sys_socket,		"socket"	},  /* 41 */
 	{ 3,	TN,	sys_connect,		"connect"	},  /* 42 */
 	{ 3,	TN,	sys_accept,		"accept"	},  /* 43 */
 	{ 6,	TN,	sys_sendto,		"sendto"	},  /* 44 */
 	{ 6,	TN,	sys_recvfrom,		"recvfrom"	},  /* 45 */
 	{ 3,	TN,	sys_sendmsg,		"sendmsg"	},  /* 46 */
-	{ 5,	TN,	sys_recvmsg,		"recvmsg"	},  /* 47 */
+	{ 3,	TN,	sys_recvmsg,		"recvmsg"	},  /* 47 */
 	{ 2,	TN,	sys_shutdown,		"shutdown"	},  /* 48 */
 	{ 3,	TN,	sys_bind,		"bind"		},  /* 49 */
 	{ 2,	TN,	sys_listen,		"listen"	},  /* 50 */
@@ -147,10 +147,10 @@
 	{ 1,	0,	sys_sched_get_priority_max,	"sched_get_priority_max"	},  /* 146 */
 	{ 1,	0,	sys_sched_get_priority_min,	"sched_get_priority_min"	},  /* 147 */
 	{ 2,	0,	sys_sched_rr_get_interval,	"sched_rr_get_interval"	},  /* 148 */
-	{ 2,	0,	sys_mlock,		"mlock"		},  /* 149 */
-	{ 2,	0,	sys_munlock,		"munlock"	},  /* 150 */
-	{ 1,	0,	sys_mlockall,		"mlockall"	},  /* 151 */
-	{ 0,	0,	sys_munlockall,		"munlockall"	},  /* 152 */
+	{ 2,	TM,	sys_mlock,		"mlock"		},  /* 149 */
+	{ 2,	TM,	sys_munlock,		"munlock"	},  /* 150 */
+	{ 1,	TM,	sys_mlockall,		"mlockall"	},  /* 151 */
+	{ 0,	TM,	sys_munlockall,		"munlockall"	},  /* 152 */
 	{ 0,	0,	sys_vhangup,		"vhangup"	},  /* 153 */
 	{ 3,	0,	sys_modify_ldt,		"modify_ldt"	},  /* 154 */
 	{ 2,	TF,	sys_pivotroot,		"pivot_root"	},  /* 155 */
@@ -177,7 +177,7 @@
 	{ 2,	0,	sys_delete_module,	"delete_module"	},  /* 176 */
 	{ 1,	0,	sys_get_kernel_syms,	"get_kernel_syms"},  /* 177 */
 	{ 5,	0,	sys_query_module,	"query_module"	},  /* 178 */
-	{ 4,	0,	sys_quotactl,		"quotactl"	},  /* 179 */
+	{ 4,	TF,	sys_quotactl,		"quotactl"	},  /* 179 */
 	{ 3,	0,	sys_nfsservctl,		"nfsservctl"	},  /* 180 */
 	{ 5,	0,	sys_getpmsg,		"getpmsg"	}, /* 181 */
 	{ 5,	0,	sys_putpmsg,		"putpmsg"	}, /* 182 */
@@ -185,7 +185,7 @@
 	{ 3,	0,	sys_tuxcall,		"tuxcall"	}, /* 184 */
 	{ 3,	0,	sys_security,		"security"	}, /* 185 */
 	{ 0,	0,	sys_gettid,		"gettid"	}, /* 186 */
-	{ 4,	TD,	sys_readahead,		"readahead"	}, /* 187 */
+	{ 3,	TD,	sys_readahead,		"readahead"	}, /* 187 */
 	{ 5,	TF,	sys_setxattr,		"setxattr"	}, /* 188 */
 	{ 5,	TF,	sys_setxattr,		"lsetxattr"	}, /* 189 */
 	{ 5,	TD,	sys_fsetxattr,		"fsetxattr"	}, /* 190 */
@@ -210,16 +210,16 @@
 	{ 3,	0,	sys_io_submit,		"io_submit"	}, /* 209 */
 	{ 3,	0,	sys_io_cancel,		"io_cancel"	}, /* 210 */
 	{ 1,	0,	sys_get_thread_area,	"get_thread_area" }, /* 211 */
-	{ 4,	0,	sys_lookup_dcookie,	"lookup_dcookie"}, /* 212 */
+	{ 3,	0,	sys_lookup_dcookie,	"lookup_dcookie"}, /* 212 */
 	{ 1,	TD,	sys_epoll_create,	"epoll_create"	}, /* 213 */
 	{ 4,	0,	printargs,		"epoll_ctl_old"	}, /* 214 */
 	{ 4,	0,	printargs,		"epoll_wait_old"}, /* 215 */
-	{ 5,	0,	sys_remap_file_pages,	"remap_file_pages"}, /* 216 */
+	{ 5,	TM,	sys_remap_file_pages,	"remap_file_pages"}, /* 216 */
 	{ 3,	TD,	sys_getdents64,		"getdents64"	}, /* 217 */
 	{ 1,	0,	sys_set_tid_address,	"set_tid_address"}, /* 218 */
 	{ 0,	0,	sys_restart_syscall,	"restart_syscall"}, /* 219 */
 	{ 5,	TI,	sys_semtimedop,		"semtimedop"	}, /* 220 */
-	{ 4,	TD,	sys_fadvise64_64,	"fadvise64"	}, /* 221 */
+	{ 4,	TD,	sys_fadvise64,		"fadvise64"	}, /* 221 */
 	{ 3,	0,	sys_timer_create,	"timer_create"	}, /* 222 */
 	{ 4,	0,	sys_timer_settime,	"timer_settime"	}, /* 223 */
 	{ 2,	0,	sys_timer_gettime,	"timer_gettime"	}, /* 224 */
@@ -235,9 +235,9 @@
 	{ 3,	TS,	sys_tgkill,		"tgkill"	}, /* 234 */
 	{ 2,	TF,	sys_utimes,		"utimes"	}, /* 235 */
 	{ 5,	0,	sys_vserver,		"vserver"	}, /* 236 */
-	{ 6,	0,	sys_mbind,		"mbind"		}, /* 237 */
-	{ 3,	0,	sys_set_mempolicy,	"set_mempolicy"	}, /* 238 */
-	{ 5,	0,	sys_get_mempolicy,	"get_mempolicy"	}, /* 239 */
+	{ 6,	TM,	sys_mbind,		"mbind"		}, /* 237 */
+	{ 3,	TM,	sys_set_mempolicy,	"set_mempolicy"	}, /* 238 */
+	{ 5,	TM,	sys_get_mempolicy,	"get_mempolicy"	}, /* 239 */
 	{ 4,	0,	sys_mq_open,		"mq_open"	}, /* 240 */
 	{ 1,	0,	sys_mq_unlink,		"mq_unlink"	}, /* 241 */
 	{ 5,	0,	sys_mq_timedsend,	"mq_timedsend"	}, /* 242 */
@@ -254,7 +254,7 @@
 	{ 0,	TD,	sys_inotify_init,	"inotify_init"	}, /* 253 */
 	{ 3,	TD,	sys_inotify_add_watch,	"inotify_add_watch" }, /* 254 */
 	{ 2,	TD,	sys_inotify_rm_watch,	"inotify_rm_watch" }, /* 255 */
-	{ 4,	0,	sys_migrate_pages,	"migrate_pages"	}, /* 256 */
+	{ 4,	TM,	sys_migrate_pages,	"migrate_pages"	}, /* 256 */
 	{ 4,	TD|TF,	sys_openat,		"openat"	}, /* 257 */
 	{ 3,	TD|TF,	sys_mkdirat,		"mkdirat"	}, /* 258 */
 	{ 4,	TD|TF,	sys_mknodat,		"mknodat"	}, /* 259 */
@@ -277,13 +277,13 @@
 	{ 4,	TD,	sys_tee,		"tee"		}, /* 276 */
 	{ 4,	TD,	sys_sync_file_range,	"sync_file_range" }, /* 277 */
 	{ 4,	TD,	sys_vmsplice,		"vmsplice"	}, /* 278 */
-	{ 6,	0,	sys_move_pages,		"move_pages"	}, /* 279 */
+	{ 6,	TM,	sys_move_pages,		"move_pages"	}, /* 279 */
 	{ 4,	TD|TF,	sys_utimensat,		"utimensat"	}, /* 280 */
 	{ 6,	TD,	sys_epoll_pwait,	"epoll_pwait"	}, /* 281 */
 	{ 3,	TD|TS,	sys_signalfd,		"signalfd"	}, /* 282 */
 	{ 2,	TD,	sys_timerfd_create,	"timerfd_create"}, /* 283 */
 	{ 1,	TD,	sys_eventfd,		"eventfd"	}, /* 284 */
-	{ 6,	TD,	sys_fallocate,		"fallocate"	}, /* 285 */
+	{ 4,	TD,	sys_fallocate,		"fallocate"	}, /* 285 */
 	{ 4,	TD,	sys_timerfd_settime,	"timerfd_settime"}, /* 286 */
 	{ 2,	TD,	sys_timerfd_gettime,	"timerfd_gettime"}, /* 287 */
 	{ 4,	TN,	sys_accept4,		"accept4"	}, /* 288 */
@@ -293,8 +293,8 @@
 	{ 3,	TD,	sys_dup3,		"dup3"		}, /* 292 */
 	{ 2,	TD,	sys_pipe2,		"pipe2"		}, /* 293 */
 	{ 1,	TD,	sys_inotify_init1,	"inotify_init1"	}, /* 294 */
-	{ 5,	TD,	sys_preadv,		"preadv"	}, /* 295 */
-	{ 5,	TD,	sys_pwritev,		"pwritev"	}, /* 296 */
+	{ 4,	TD,	sys_preadv,		"preadv"	}, /* 295 */
+	{ 4,	TD,	sys_pwritev,		"pwritev"	}, /* 296 */
 	{ 4,	TP|TS,	sys_rt_tgsigqueueinfo,	"rt_tgsigqueueinfo"}, /* 297 */
 	{ 5,	TD,	sys_perf_event_open,	"perf_event_open"}, /* 298 */
 	{ 5,	TN,	sys_recvmmsg,		"recvmmsg"	}, /* 299 */
@@ -310,3 +310,5 @@
 	{ 3,	0,	sys_getcpu,		"getcpu"	}, /* 309 */
 	{ 6,	0,	sys_process_vm_readv,	"process_vm_readv"	}, /* 310 */
 	{ 6,	0,	sys_process_vm_writev,	"process_vm_writev"	}, /* 311 */
+	{ 5,	0,	sys_kcmp,		"kcmp"		}, /* 312 */
+	{ 3,	TD,	sys_finit_module,	"finit_module"	}, /* 313 */
diff --git a/linux/x86_64/syscallent1.h b/linux/x86_64/syscallent1.h
index 9097785..c9100de 100644
--- a/linux/x86_64/syscallent1.h
+++ b/linux/x86_64/syscallent1.h
@@ -1,7 +1,3 @@
-/* Our second set comes from the i386 files.
-   Only a couple of calls we cannot support without the i386 headers.  */
+/* Our second set comes from the i386 files.  */
 
-#define sys_oldstat printargs
-#define sys_oldfstat printargs
-#define sys_oldlstat printargs
-#include "i386/syscallent.h"
+#include "../i386/syscallent.h"
diff --git a/linux/x86_64/syscallent2.h b/linux/x86_64/syscallent2.h
index 1d35f53..5e0df53 100644
--- a/linux/x86_64/syscallent2.h
+++ b/linux/x86_64/syscallent2.h
@@ -1,2 +1,2 @@
-/* Our third set is for x32.  */
-#include "x32/syscallent.h"
+/* x32 personality */
+#include "../x32/syscallent.h"
diff --git a/loop.c b/loop.c
index 83d9152..a3f89e0 100644
--- a/loop.c
+++ b/loop.c
@@ -72,7 +72,7 @@
 		if (!verbose(tcp) || umove(tcp, arg, &info) < 0)
 			return 0;
 
-		tprintf(", {number=%i", info.lo_number);
+		tprintf(", {number=%d", info.lo_number);
 
 		if (!abbrev(tcp)) {
 			tprintf(", device=%#lx, inode=%lu, rdevice=%#lx",
@@ -87,7 +87,7 @@
 			tprints(", encrypt_type=");
 			printxval(loop_crypt_type_options, info.lo_encrypt_type,
 				"LO_CRYPT_???");
-			tprintf(", encrypt_key_size=%i", info.lo_encrypt_key_size);
+			tprintf(", encrypt_key_size=%d", info.lo_encrypt_key_size);
 		}
 
 		tprints(", flags=");
diff --git a/mem.c b/mem.c
index 0279030..ef273c7 100644
--- a/mem.c
+++ b/mem.c
@@ -39,16 +39,16 @@
 #  define modify_ldt_ldt_s user_desc
 # endif
 #endif
-#if defined(SH64)
-# include <asm/page.h>	    /* for PAGE_SHIFT */
-#endif
 
-#ifdef HAVE_LONG_LONG_OFF_T
-/*
- * Ugly hacks for systems that have a long long off_t
- */
-# define sys_mmap64	sys_mmap
-#endif
+static unsigned long
+get_pagesize()
+{
+	static unsigned long pagesize;
+
+	if (!pagesize)
+		pagesize = sysconf(_SC_PAGESIZE);
+	return pagesize;
+}
 
 int
 sys_brk(struct tcb *tcp)
@@ -159,56 +159,20 @@
 #ifdef MAP_STACK
 	{ MAP_STACK,	"MAP_STACK"	},
 #endif
+#if defined MAP_UNINITIALIZED && MAP_UNINITIALIZED > 0
+	{ MAP_UNINITIALIZED,"MAP_UNINITIALIZED"},
+#endif
 #ifdef MAP_NOSYNC
 	{ MAP_NOSYNC,	"MAP_NOSYNC"	},
 #endif
 #ifdef MAP_NOCORE
 	{ MAP_NOCORE,	"MAP_NOCORE"	},
 #endif
-#ifdef TILE
-	{ MAP_CACHE_NO_LOCAL, "MAP_CACHE_NO_LOCAL" },
-	{ MAP_CACHE_NO_L2, "MAP_CACHE_NO_L2" },
-	{ MAP_CACHE_NO_L1, "MAP_CACHE_NO_L1" },
-#endif
 	{ 0,		NULL		},
 };
 
-#ifdef TILE
 static int
-addtileflags(long flags)
-{
-	long home = flags & _MAP_CACHE_MKHOME(_MAP_CACHE_HOME_MASK);
-	flags &= ~_MAP_CACHE_MKHOME(_MAP_CACHE_HOME_MASK);
-
-	if (flags & _MAP_CACHE_INCOHERENT) {
-		flags &= ~_MAP_CACHE_INCOHERENT;
-		if (home == MAP_CACHE_HOME_NONE) {
-			tprints("|MAP_CACHE_INCOHERENT");
-			return flags;
-		}
-		tprints("|_MAP_CACHE_INCOHERENT");
-	}
-
-	switch (home) {
-	case 0:	break;
-	case MAP_CACHE_HOME_HERE: tprints("|MAP_CACHE_HOME_HERE"); break;
-	case MAP_CACHE_HOME_NONE: tprints("|MAP_CACHE_HOME_NONE"); break;
-	case MAP_CACHE_HOME_SINGLE: tprints("|MAP_CACHE_HOME_SINGLE"); break;
-	case MAP_CACHE_HOME_TASK: tprints("|MAP_CACHE_HOME_TASK"); break;
-	case MAP_CACHE_HOME_HASH: tprints("|MAP_CACHE_HOME_HASH"); break;
-	default:
-		tprintf("|MAP_CACHE_HOME(%d)",
-			(home >> _MAP_CACHE_HOME_SHIFT) );
-		break;
-	}
-
-	return flags;
-}
-#endif
-
-#if !HAVE_LONG_LONG_OFF_T
-static int
-print_mmap(struct tcb *tcp, long *u_arg, long long offset)
+print_mmap(struct tcb *tcp, long *u_arg, unsigned long long offset)
 {
 	if (entering(tcp)) {
 		/* addr */
@@ -224,16 +188,12 @@
 		/* flags */
 #ifdef MAP_TYPE
 		printxval(mmap_flags, u_arg[3] & MAP_TYPE, "MAP_???");
-#ifdef TILE
-		addflags(mmap_flags, addtileflags(u_arg[3] & ~MAP_TYPE));
-#else
 		addflags(mmap_flags, u_arg[3] & ~MAP_TYPE);
-#endif
 #else
 		printflags(mmap_flags, u_arg[3], "MAP_???");
 #endif
-		/* fd */
 		tprints(", ");
+		/* fd */
 		printfd(tcp, u_arg[4]);
 		/* offset */
 		tprintf(", %#llx", offset);
@@ -241,161 +201,101 @@
 	return RVAL_HEX;
 }
 
-int sys_old_mmap(struct tcb *tcp)
+/* Syscall name<->function correspondence is messed up on many arches.
+ * For example:
+ * i386 has __NR_mmap == 90, and it is "old mmap", and
+ * also it has __NR_mmap2 == 192, which is a "new mmap with page offsets".
+ * But x86_64 has just one __NR_mmap == 9, a "new mmap with byte offsets".
+ * Confused? Me too!
+ */
+
+/* Params are pointed to by u_arg[0], offset is in bytes */
+int
+sys_old_mmap(struct tcb *tcp)
 {
+	long u_arg[6];
 #if defined(IA64)
 	/*
 	 * IA64 processes never call this routine, they only use the
-	 * new `sys_mmap' interface.
-	 * For IA32 processes, this code converts the integer arguments
-	 * that they pushed onto the stack, into longs.
-	 *
-	 * Note that addresses with bit 31 set will be sign extended.
-	 * Fortunately, those addresses are not currently being generated
-	 * for IA32 processes so it's not a problem.
+	 * new 'sys_mmap' interface. Only IA32 processes come here.
 	 */
 	int i;
-	long u_arg[6];
-	int narrow_arg[6];
+	unsigned narrow_arg[6];
 	if (umoven(tcp, tcp->u_arg[0], sizeof(narrow_arg), (char *) narrow_arg) == -1)
 		return 0;
 	for (i = 0; i < 6; i++)
-		u_arg[i] = narrow_arg[i];
-#elif defined(SH) || defined(SH64)
-	/* SH has always passed the args in registers */
-	long *u_arg = tcp->u_arg;
+		u_arg[i] = (unsigned long) narrow_arg[i];
+#elif defined(X86_64)
+	/* We are here only in personality 1 (i386) */
+	int i;
+	unsigned narrow_arg[6];
+	if (umoven(tcp, tcp->u_arg[0], sizeof(narrow_arg), (char *) narrow_arg) == -1)
+		return 0;
+	for (i = 0; i < 6; ++i)
+		u_arg[i] = (unsigned long) narrow_arg[i];
 #else
-	long u_arg[6];
-# if defined(X86_64)
-	if (current_personality == 1) {
-		int i;
-		unsigned narrow_arg[6];
-		if (umoven(tcp, tcp->u_arg[0], sizeof(narrow_arg), (char *) narrow_arg) == -1)
-			return 0;
-		for (i = 0; i < 6; ++i)
-			u_arg[i] = narrow_arg[i];
-	}
-	else
-# endif
 	if (umoven(tcp, tcp->u_arg[0], sizeof(u_arg), (char *) u_arg) == -1)
 		return 0;
-#endif /* other architectures */
-
-	return print_mmap(tcp, u_arg, u_arg[5]);
+#endif
+	return print_mmap(tcp, u_arg, (unsigned long) u_arg[5]);
 }
 
+#if defined(S390)
+/* Params are pointed to by u_arg[0], offset is in pages */
+int
+sys_old_mmap_pgoff(struct tcb *tcp)
+{
+	long u_arg[5];
+	int i;
+	unsigned narrow_arg[6];
+	unsigned long long offset;
+	if (umoven(tcp, tcp->u_arg[0], sizeof(narrow_arg), (char *) narrow_arg) == -1)
+		return 0;
+	for (i = 0; i < 5; i++)
+		u_arg[i] = (unsigned long) narrow_arg[i];
+	offset = narrow_arg[5];
+	offset *= get_pagesize();
+	return print_mmap(tcp, u_arg, offset);
+}
+#endif
+
+/* Params are passed directly, offset is in bytes */
 int
 sys_mmap(struct tcb *tcp)
 {
-	long long offset = tcp->u_arg[5];
-
-	/* FIXME: why only SH64? i386 mmap2 syscall ends up
-	 * in this function, but does not convert offset
-	 * from pages to bytes. See test/mmap_offset_decode.c
-	 * Why SH64 and i386 are handled differently?
-	 */
-#if defined(SH64)
-	/*
-	 * Old mmap differs from new mmap in specifying the
-	 * offset in units of bytes rather than pages.  We
-	 * pretend it's in byte units so the user only ever
-	 * sees bytes in the printout.
-	 */
-	offset <<= PAGE_SHIFT;
-#endif
-#if defined(LINUX_MIPSN32)
+	unsigned long long offset = (unsigned long) tcp->u_arg[5];
+#if defined(LINUX_MIPSN32) || defined(X32)
+	/* Try test/x32_mmap.c */
 	offset = tcp->ext_arg[5];
 #endif
+	/* Example of kernel-side handling of this variety of mmap:
+	 * arch/x86/kernel/sys_x86_64.c::SYSCALL_DEFINE6(mmap, ...) calls
+	 * sys_mmap_pgoff(..., off >> PAGE_SHIFT); i.e. off is in bytes,
+	 * since the above code converts off to pages.
+	 */
 	return print_mmap(tcp, tcp->u_arg, offset);
 }
-#endif /* !HAVE_LONG_LONG_OFF_T */
 
-#if _LFS64_LARGEFILE || HAVE_LONG_LONG_OFF_T
-# if defined(X32)
-int sys_old_mmap(struct tcb *tcp)
-{
-	long u_arg[6];
-	if (umoven(tcp, tcp->u_arg[0], sizeof(u_arg), (char *) u_arg) == -1)
-		return 0;
-	if (entering(tcp)) {
-		/* addr */
-		if (!u_arg[0])
-			tprints("NULL, ");
-		else
-			tprintf("%#lx, ", u_arg[0]);
-		/* len */
-		tprintf("%lu, ", u_arg[1]);
-		/* prot */
-		printflags(mmap_prot, u_arg[2], "PROT_???");
-		tprints(", ");
-		/* flags */
-#  ifdef MAP_TYPE
-		printxval(mmap_flags, u_arg[3] & MAP_TYPE, "MAP_???");
-		addflags(mmap_flags, u_arg[3] & ~MAP_TYPE);
-#  else
-		printflags(mmap_flags, u_arg[3], "MAP_???");
-#  endif
-		/* fd */
-		tprints(", ");
-		printfd(tcp, u_arg[4]);
-		/* offset */
-		tprintf(", %#lx", u_arg[5]);
-	}
-	return RVAL_HEX;
-}
-# endif
-
-/* TODO: comment which arches use this routine.
- * For one, does ALPHA on Linux use this??
- * From code it seems that it might use 7 or 8 registers,
- * which is strange - Linux syscalls can pass maximum of 6 parameters!
- */
+/* Params are passed directly, offset is in pages */
 int
-sys_mmap64(struct tcb *tcp)
+sys_mmap_pgoff(struct tcb *tcp)
 {
-	if (entering(tcp)) {
-#if defined(ALPHA) || defined(X32)
-		long *u_arg = tcp->u_arg;
-#else
-		long u_arg[7];
-		if (umoven(tcp, tcp->u_arg[0], sizeof u_arg,
-				(char *) u_arg) == -1)
-			return 0;
-#endif
-		/* addr */
-		if (!u_arg[0])
-			tprints("NULL, ");
-		else
-			tprintf("%#lx, ", u_arg[0]);
-		/* len */
-		tprintf("%lu, ", u_arg[1]);
-		/* prot */
-		printflags(mmap_prot, u_arg[2], "PROT_???");
-		tprints(", ");
-		/* flags */
-#ifdef MAP_TYPE
-		printxval(mmap_flags, u_arg[3] & MAP_TYPE, "MAP_???");
-		addflags(mmap_flags, u_arg[3] & ~MAP_TYPE);
-#else
-		printflags(mmap_flags, u_arg[3], "MAP_???");
-#endif
-		/* fd */
-		tprints(", ");
-		printfd(tcp, u_arg[4]);
-		/* offset */
-#if defined(ALPHA) || defined(X32)
-		printllval(tcp, ", %#llx", 5);
-#else
-		/* NOTE: not verified that [5] and [6] should be used.
-		 * It's possible that long long is 64-bit aligned in memory
-		 * and we need to use [6] and [7] here instead:
-		 */
-		tprintf(", %#llx", LONG_LONG(u_arg[5], u_arg[6]));
-#endif
-	}
-	return RVAL_HEX;
+	/* Try test/mmap_offset_decode.c */
+	unsigned long long offset;
+	offset = (unsigned long) tcp->u_arg[5];
+	offset *= get_pagesize();
+	return print_mmap(tcp, tcp->u_arg, offset);
 }
-#endif /* _LFS64_LARGEFILE || HAVE_LONG_LONG_OFF_T */
+
+/* Params are passed directly, offset is in 4k units */
+int
+sys_mmap_4koff(struct tcb *tcp)
+{
+	unsigned long long offset;
+	offset = (unsigned long) tcp->u_arg[5];
+	offset <<= 12;
+	return print_mmap(tcp, tcp->u_arg, offset);
+}
 
 int
 sys_munmap(struct tcb *tcp)
@@ -458,6 +358,39 @@
 #ifdef MADV_DONTNEED
 	{ MADV_DONTNEED,	"MADV_DONTNEED" },
 #endif
+#ifdef MADV_REMOVE
+	{ MADV_REMOVE,		"MADV_REMOVE" },
+#endif
+#ifdef MADV_DONTFORK
+	{ MADV_DONTFORK,	"MADV_DONTFORK" },
+#endif
+#ifdef MADV_DOFORK
+	{ MADV_DOFORK,		"MADV_DOFORK" },
+#endif
+#ifdef MADV_HWPOISON
+	{ MADV_HWPOISON,	"MADV_HWPOISON" },
+#endif
+#ifdef MADV_SOFT_OFFLINE
+	{ MADV_SOFT_OFFLINE,	"MADV_SOFT_OFFLINE" },
+#endif
+#ifdef MADV_MERGEABLE
+	{ MADV_MERGEABLE,	"MADV_MERGEABLE" },
+#endif
+#ifdef MADV_UNMERGEABLE
+	{ MADV_UNMERGEABLE,	"MADV_UNMERGEABLE" },
+#endif
+#ifdef MADV_HUGEPAGE
+	{ MADV_HUGEPAGE,	"MADV_HUGEPAGE" },
+#endif
+#ifdef MADV_NOHUGEPAGE
+	{ MADV_NOHUGEPAGE,	"MADV_NOHUGEPAGE" },
+#endif
+#ifdef MADV_DONTDUMP
+	{ MADV_DONTDUMP,	"MADV_DONTDUMP" },
+#endif
+#ifdef MADV_DODUMP
+	{ MADV_DODUMP,		"MADV_DODUMP" },
+#endif
 	{ 0,			NULL },
 };
 
diff --git a/mtd.c b/mtd.c
index 976024e..5385147 100644
--- a/mtd.c
+++ b/mtd.c
@@ -35,6 +35,11 @@
 #else
 # include <mtd/mtd-abi.h>
 #endif
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 7, 0)
+# include "ubi-user.h"
+#else
+# include <mtd/ubi-user.h>
+#endif
 
 static const struct xlat mtd_mode_options[] = {
 	{ MTD_OPS_PLACE_OOB,	"MTD_OPS_PLACE_OOB"	},
@@ -267,7 +272,7 @@
 		if (!verbose(tcp) || umove(tcp, arg, &i) < 0)
 			return 0;
 
-		tprintf(", [%i]", i);
+		tprintf(", [%d]", i);
 		return 1;
 
 	case MTDFILEMODE:
@@ -280,3 +285,124 @@
 		return 0;
 	}
 }
+
+static const struct xlat ubi_volume_types[] = {
+	{ UBI_DYNAMIC_VOLUME,	"UBI_DYNAMIC_VOLUME"	},
+	{ UBI_STATIC_VOLUME,	"UBI_STATIC_VOLUME"	},
+	{ 0,			NULL			},
+};
+
+static const struct xlat ubi_volume_props[] = {
+	{ UBI_VOL_PROP_DIRECT_WRITE,	"UBI_VOL_PROP_DIRECT_WRITE"	},
+	{ 0,			NULL			},
+};
+
+int ubi_ioctl(struct tcb *tcp, long code, long arg)
+{
+	struct ubi_mkvol_req mkvol;
+	struct ubi_rsvol_req rsvol;
+	struct ubi_rnvol_req rnvol;
+	struct ubi_attach_req attach;
+	struct ubi_map_req map;
+	struct ubi_set_vol_prop_req prop;
+	/* 4*(n-1) + 3 for quotes and NUL */
+	char vol_name[(UBI_MAX_VOLUME_NAME + 1) * 4];
+	int ret;
+
+	if (entering(tcp))
+		return 0;
+
+	switch (code) {
+	case UBI_IOCMKVOL:
+		if (!verbose(tcp) || umove(tcp, arg, &mkvol) < 0)
+			return 0;
+
+		tprintf(", {vol_id=%" PRIi32 ", alignment=%" PRIi32
+			", bytes=%" PRIi64 ", vol_type=", mkvol.vol_id,
+			mkvol.alignment, (int64_t)mkvol.bytes);
+		printxval(ubi_volume_types, mkvol.vol_type, "UBI_???_VOLUME");
+		ret = string_quote(mkvol.name, vol_name, -1,
+			CLAMP(mkvol.name_len, 0, UBI_MAX_VOLUME_NAME));
+		tprintf(", name_len=%" PRIi16 ", name=%s%s",
+			mkvol.name_len, vol_name, ret ? "..." : "");
+		tprints("}");
+		return 1;
+
+	case UBI_IOCRSVOL:
+		if (!verbose(tcp) || umove(tcp, arg, &rsvol) < 0)
+			return 0;
+
+		tprintf(", {vol_id=%" PRIi32 ", bytes=%" PRIi64 "}",
+			rsvol.vol_id, (int64_t)rsvol.bytes);
+		return 1;
+
+	case UBI_IOCRNVOL: {
+		__s32 c;
+
+		if (!verbose(tcp) || umove(tcp, arg, &rnvol) < 0)
+			return 0;
+
+		tprintf(", {count=%" PRIi32 ", ents=[", rnvol.count);
+		for (c = 0; c < CLAMP(rnvol.count, 0, UBI_MAX_RNVOL); ++c) {
+			if (c)
+				tprints(", ");
+			ret = string_quote(rnvol.ents[c].name, vol_name, -1,
+				CLAMP(rnvol.ents[c].name_len, 0, UBI_MAX_VOLUME_NAME));
+			tprintf("{vol_id=%" PRIi32 ", name_len=%" PRIi16
+				", name=%s%s}", rnvol.ents[c].vol_id,
+				rnvol.ents[c].name_len, vol_name, ret ? "..." : "");
+		}
+		tprints("]}");
+		return 1;
+	}
+
+	case UBI_IOCVOLUP: {
+		__s64 bytes;
+
+		if (!verbose(tcp) || umove(tcp, arg, &bytes) < 0)
+			return 0;
+
+		tprintf(", %" PRIi64, (int64_t)bytes);
+		return 1;
+	}
+
+	case UBI_IOCATT:
+		if (!verbose(tcp) || umove(tcp, arg, &attach) < 0)
+			return 0;
+
+		tprintf(", {ubi_num=%" PRIi32 ", mtd_num=%" PRIi32
+			", vid_hdr_offset=%" PRIi32
+			", max_beb_per1024=%" PRIi16 "}",
+			attach.ubi_num, attach.mtd_num,
+			attach.vid_hdr_offset, attach.max_beb_per1024);
+		return 1;
+
+	case UBI_IOCEBMAP:
+		if (!verbose(tcp) || umove(tcp, arg, &map) < 0)
+			return 0;
+
+		tprintf(", {lnum=%" PRIi32 ", dtype=%" PRIi8 "}",
+			map.lnum, map.dtype);
+		return 1;
+
+	case UBI_IOCSETVOLPROP:
+		if (!verbose(tcp) || umove(tcp, arg, &prop) < 0)
+			return 0;
+
+		tprints(", {property=");
+		printxval(ubi_volume_props, prop.property, "UBI_VOL_PROP_???");
+		tprintf(", value=%#" PRIx64 "}", (uint64_t)prop.value);
+		return 1;
+
+	case UBI_IOCRMVOL:
+	case UBI_IOCDET:
+	case UBI_IOCEBER:
+	case UBI_IOCEBCH:
+	case UBI_IOCEBUNMAP:
+	case UBI_IOCEBISMAP:
+		/* These ones take simple args, so let default printer handle it */
+
+	default:
+		return 0;
+	}
+}
diff --git a/net.c b/net.c
index 2911c73..9ae783a 100644
--- a/net.c
+++ b/net.c
@@ -50,13 +50,13 @@
 #include <arpa/inet.h>
 #include <net/if.h>
 #include <asm/types.h>
-#if defined(__GLIBC__) && (__GLIBC__ >= 2) && (__GLIBC__ + __GLIBC_MINOR__ >= 3)
+#if defined(__GLIBC__)
 # include <netipx/ipx.h>
 #else
 # include <linux/ipx.h>
 #endif
 
-#if defined(__GLIBC__) && (((__GLIBC__ < 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 1)) || defined(HAVE_SIN6_SCOPE_ID_LINUX))
+#if defined(__GLIBC__) && defined(HAVE_SIN6_SCOPE_ID_LINUX)
 # if defined(HAVE_LINUX_IN6_H)
 #  if defined(HAVE_SIN6_SCOPE_ID_LINUX)
 #   undef in6_addr
@@ -103,200 +103,254 @@
 #define IPPROTO_MAX IPPROTO_MAX
 
 static const struct xlat domains[] = {
-#ifdef PF_AAL5
-	{ PF_AAL5,	"PF_AAL5"	},
-#endif
-#ifdef PF_APPLETALK
-	{ PF_APPLETALK,	"PF_APPLETALK"	},
-#endif
-#ifdef PF_ASH
-	{ PF_ASH,	"PF_ASH"	},
-#endif
-#ifdef PF_ATMPVC
-	{ PF_ATMPVC,	"PF_ATMPVC"	},
-#endif
-#ifdef PF_ATMSVC
-	{ PF_ATMSVC,	"PF_ATMSVC"	},
-#endif
-#ifdef PF_AX25
-	{ PF_AX25,	"PF_AX25"	},
-#endif
-#ifdef PF_BLUETOOTH
-	{ PF_BLUETOOTH,	"PF_BLUETOOTH"	},
-#endif
-#ifdef PF_BRIDGE
-	{ PF_BRIDGE,	"PF_BRIDGE"	},
-#endif
-#ifdef PF_DECnet
-	{ PF_DECnet,	"PF_DECnet"	},
-#endif
-#ifdef PF_DECNET
-	{ PF_DECNET,	"PF_DECNET"	},
-#endif
-#ifdef PF_ECONET
-	{ PF_ECONET,	"PF_ECONET"	},
-#endif
-#ifdef PF_FILE
-	{ PF_FILE,	"PF_FILE"	},
-#endif
-#ifdef PF_IMPLINK
-	{ PF_IMPLINK,	"PF_IMPLINK"	},
-#endif
-#ifdef PF_INET
-	{ PF_INET,	"PF_INET"	},
-#endif
-#ifdef PF_INET6
-	{ PF_INET6,	"PF_INET6"	},
-#endif
-#ifdef PF_IPX
-	{ PF_IPX,	"PF_IPX"	},
-#endif
-#ifdef PF_IRDA
-	{ PF_IRDA,	"PF_IRDA"	},
-#endif
-#ifdef PF_ISO
-	{ PF_ISO,	"PF_ISO"	},
-#endif
-#ifdef PF_KEY
-	{ PF_KEY,	"PF_KEY"	},
-#endif
-#ifdef PF_UNIX
-	{ PF_UNIX,	"PF_UNIX"	},
+#ifdef PF_UNSPEC
+	{ PF_UNSPEC,	"PF_UNSPEC"	},
 #endif
 #ifdef PF_LOCAL
 	{ PF_LOCAL,	"PF_LOCAL"	},
 #endif
-#ifdef PF_NETBEUI
-	{ PF_NETBEUI,	"PF_NETBEUI"	},
+#ifdef PF_UNIX
+	{ PF_UNIX,	"PF_UNIX"	},
 #endif
-#ifdef PF_NETLINK
-	{ PF_NETLINK,	"PF_NETLINK"	},
+#ifdef PF_INET
+	{ PF_INET,	"PF_INET"	},
+#endif
+#ifdef PF_AX25
+	{ PF_AX25,	"PF_AX25"	},
+#endif
+#ifdef PF_IPX
+	{ PF_IPX,	"PF_IPX"	},
+#endif
+#ifdef PF_APPLETALK
+	{ PF_APPLETALK,	"PF_APPLETALK"	},
 #endif
 #ifdef PF_NETROM
 	{ PF_NETROM,	"PF_NETROM"	},
 #endif
-#ifdef PF_PACKET
-	{ PF_PACKET,	"PF_PACKET"	},
+#ifdef PF_BRIDGE
+	{ PF_BRIDGE,	"PF_BRIDGE"	},
 #endif
-#ifdef PF_PPPOX
-	{ PF_PPPOX,	"PF_PPPOX"	},
-#endif
-#ifdef PF_ROSE
-	{ PF_ROSE,	"PF_ROSE"	},
-#endif
-#ifdef PF_ROUTE
-	{ PF_ROUTE,	"PF_ROUTE"	},
-#endif
-#ifdef PF_SECURITY
-	{ PF_SECURITY,	"PF_SECURITY"	},
-#endif
-#ifdef PF_SNA
-	{ PF_SNA,	"PF_SNA"	},
-#endif
-#ifdef PF_UNSPEC
-	{ PF_UNSPEC,	"PF_UNSPEC"	},
-#endif
-#ifdef PF_WANPIPE
-	{ PF_WANPIPE,	"PF_WANPIPE"	},
+#ifdef PF_ATMPVC
+	{ PF_ATMPVC,	"PF_ATMPVC"	},
 #endif
 #ifdef PF_X25
 	{ PF_X25,	"PF_X25"	},
 #endif
+#ifdef PF_INET6
+	{ PF_INET6,	"PF_INET6"	},
+#endif
+#ifdef PF_ROSE
+	{ PF_ROSE,	"PF_ROSE"	},
+#endif
+#ifdef PF_DECnet
+	{ PF_DECnet,	"PF_DECnet"	},
+#endif
+#ifdef PF_NETBEUI
+	{ PF_NETBEUI,	"PF_NETBEUI"	},
+#endif
+#ifdef PF_SECURITY
+	{ PF_SECURITY,	"PF_SECURITY"	},
+#endif
+#ifdef PF_KEY
+	{ PF_KEY,	"PF_KEY"	},
+#endif
+#ifdef PF_NETLINK
+	{ PF_NETLINK,	"PF_NETLINK"	},
+#endif
+#ifdef PF_ROUTE
+	{ PF_ROUTE,	"PF_ROUTE"	},
+#endif
+#ifdef PF_PACKET
+	{ PF_PACKET,	"PF_PACKET"	},
+#endif
+#ifdef PF_ASH
+	{ PF_ASH,	"PF_ASH"	},
+#endif
+#ifdef PF_ECONET
+	{ PF_ECONET,	"PF_ECONET"	},
+#endif
+#ifdef PF_ATMSVC
+	{ PF_ATMSVC,	"PF_ATMSVC"	},
+#endif
+#ifdef PF_RDS
+	{ PF_RDS,	"PF_RDS"	},
+#endif
+#ifdef PF_SNA
+	{ PF_SNA,	"PF_SNA"	},
+#endif
+#ifdef PF_IRDA
+	{ PF_IRDA,	"PF_IRDA"	},
+#endif
+#ifdef PF_PPPOX
+	{ PF_PPPOX,	"PF_PPPOX"	},
+#endif
+#ifdef PF_WANPIPE
+	{ PF_WANPIPE,	"PF_WANPIPE"	},
+#endif
+#ifdef PF_LLC
+	{ PF_LLC,	"PF_LLC"	},
+#endif
+#ifdef PF_CAN
+	{ PF_CAN,	"PF_CAN"	},
+#endif
+#ifdef PF_TIPC
+	{ PF_TIPC,	"PF_TIPC"	},
+#endif
+#ifdef PF_BLUETOOTH
+	{ PF_BLUETOOTH,	"PF_BLUETOOTH"	},
+#endif
+#ifdef PF_IUCV
+	{ PF_IUCV,	"PF_IUCV"	},
+#endif
+#ifdef PF_RXRPC
+	{ PF_RXRPC,	"PF_RXRPC"	},
+#endif
+#ifdef PF_ISDN
+	{ PF_ISDN,	"PF_ISDN"	},
+#endif
+#ifdef PF_PHONET
+	{ PF_PHONET,	"PF_PHONET"	},
+#endif
+#ifdef PF_IEEE802154
+	{ PF_IEEE802154,"PF_IEEE802154"	},
+#endif
+#ifdef PF_CAIF
+	{ PF_CAIF,	"PF_CAIF"	},
+#endif
+#ifdef PF_ALG
+	{ PF_ALG,	"PF_ALG"	},
+#endif
+#ifdef PF_NFC
+	{ PF_NFC,	"PF_NFC"	},
+#endif
+#ifdef PF_VSOCK
+	{ PF_VSOCK,	"PF_VSOCK"	},
+#endif
 	{ 0,		NULL		},
 };
 const struct xlat addrfams[] = {
-#ifdef AF_APPLETALK
-	{ AF_APPLETALK,	"AF_APPLETALK"	},
-#endif
-#ifdef AF_ASH
-	{ AF_ASH,	"AF_ASH"	},
-#endif
-#ifdef AF_ATMPVC
-	{ AF_ATMPVC,	"AF_ATMPVC"	},
-#endif
-#ifdef AF_ATMSVC
-	{ AF_ATMSVC,	"AF_ATMSVC"	},
-#endif
-#ifdef AF_AX25
-	{ AF_AX25,	"AF_AX25"	},
-#endif
-#ifdef AF_BLUETOOTH
-	{ AF_BLUETOOTH,	"AF_BLUETOOTH"	},
-#endif
-#ifdef AF_BRIDGE
-	{ AF_BRIDGE,	"AF_BRIDGE"	},
-#endif
-#ifdef AF_DECnet
-	{ AF_DECnet,	"AF_DECnet"	},
-#endif
-#ifdef AF_ECONET
-	{ AF_ECONET,	"AF_ECONET"	},
-#endif
-#ifdef AF_FILE
-	{ AF_FILE,	"AF_FILE"	},
-#endif
-#ifdef AF_IMPLINK
-	{ AF_IMPLINK,	"AF_IMPLINK"	},
-#endif
-#ifdef AF_INET
-	{ AF_INET,	"AF_INET"	},
-#endif
-#ifdef AF_INET6
-	{ AF_INET6,	"AF_INET6"	},
-#endif
-#ifdef AF_IPX
-	{ AF_IPX,	"AF_IPX"	},
-#endif
-#ifdef AF_IRDA
-	{ AF_IRDA,	"AF_IRDA"	},
-#endif
-#ifdef AF_ISO
-	{ AF_ISO,	"AF_ISO"	},
-#endif
-#ifdef AF_KEY
-	{ AF_KEY,	"AF_KEY"	},
-#endif
-#ifdef AF_UNIX
-	{ AF_UNIX,	"AF_UNIX"	},
+#ifdef AF_UNSPEC
+	{ AF_UNSPEC,	"AF_UNSPEC"	},
 #endif
 #ifdef AF_LOCAL
 	{ AF_LOCAL,	"AF_LOCAL"	},
 #endif
-#ifdef AF_NETBEUI
-	{ AF_NETBEUI,	"AF_NETBEUI"	},
+#ifdef AF_UNIX
+	{ AF_UNIX,	"AF_UNIX"	},
 #endif
-#ifdef AF_NETLINK
-	{ AF_NETLINK,	"AF_NETLINK"	},
+#ifdef AF_INET
+	{ AF_INET,	"AF_INET"	},
+#endif
+#ifdef AF_AX25
+	{ AF_AX25,	"AF_AX25"	},
+#endif
+#ifdef AF_IPX
+	{ AF_IPX,	"AF_IPX"	},
+#endif
+#ifdef AF_APPLETALK
+	{ AF_APPLETALK,	"AF_APPLETALK"	},
 #endif
 #ifdef AF_NETROM
 	{ AF_NETROM,	"AF_NETROM"	},
 #endif
-#ifdef AF_PACKET
-	{ AF_PACKET,	"AF_PACKET"	},
+#ifdef AF_BRIDGE
+	{ AF_BRIDGE,	"AF_BRIDGE"	},
 #endif
-#ifdef AF_PPPOX
-	{ AF_PPPOX,	"AF_PPPOX"	},
+#ifdef AF_ATMPVC
+	{ AF_ATMPVC,	"AF_ATMPVC"	},
+#endif
+#ifdef AF_X25
+	{ AF_X25,	"AF_X25"	},
+#endif
+#ifdef AF_INET6
+	{ AF_INET6,	"AF_INET6"	},
 #endif
 #ifdef AF_ROSE
 	{ AF_ROSE,	"AF_ROSE"	},
 #endif
-#ifdef AF_ROUTE
-	{ AF_ROUTE,	"AF_ROUTE"	},
+#ifdef AF_DECnet
+	{ AF_DECnet,	"AF_DECnet"	},
+#endif
+#ifdef AF_NETBEUI
+	{ AF_NETBEUI,	"AF_NETBEUI"	},
 #endif
 #ifdef AF_SECURITY
 	{ AF_SECURITY,	"AF_SECURITY"	},
 #endif
+#ifdef AF_KEY
+	{ AF_KEY,	"AF_KEY"	},
+#endif
+#ifdef AF_NETLINK
+	{ AF_NETLINK,	"AF_NETLINK"	},
+#endif
+#ifdef AF_ROUTE
+	{ AF_ROUTE,	"AF_ROUTE"	},
+#endif
+#ifdef AF_PACKET
+	{ AF_PACKET,	"AF_PACKET"	},
+#endif
+#ifdef AF_ASH
+	{ AF_ASH,	"AF_ASH"	},
+#endif
+#ifdef AF_ECONET
+	{ AF_ECONET,	"AF_ECONET"	},
+#endif
+#ifdef AF_ATMSVC
+	{ AF_ATMSVC,	"AF_ATMSVC"	},
+#endif
+#ifdef AF_RDS
+	{ AF_RDS,	"AF_RDS"	},
+#endif
 #ifdef AF_SNA
 	{ AF_SNA,	"AF_SNA"	},
 #endif
-#ifdef AF_UNSPEC
-	{ AF_UNSPEC,	"AF_UNSPEC"	},
+#ifdef AF_IRDA
+	{ AF_IRDA,	"AF_IRDA"	},
+#endif
+#ifdef AF_PPPOX
+	{ AF_PPPOX,	"AF_PPPOX"	},
 #endif
 #ifdef AF_WANPIPE
 	{ AF_WANPIPE,	"AF_WANPIPE"	},
 #endif
-#ifdef AF_X25
-	{ AF_X25,	"AF_X25"	},
+#ifdef AF_LLC
+	{ AF_LLC,	"AF_LLC"	},
+#endif
+#ifdef AF_CAN
+	{ AF_CAN,	"AF_CAN"	},
+#endif
+#ifdef AF_TIPC
+	{ AF_TIPC,	"AF_TIPC"	},
+#endif
+#ifdef AF_BLUETOOTH
+	{ AF_BLUETOOTH,	"AF_BLUETOOTH"	},
+#endif
+#ifdef AF_IUCV
+	{ AF_IUCV,	"AF_IUCV"	},
+#endif
+#ifdef AF_RXRPC
+	{ AF_RXRPC,	"AF_RXRPC"	},
+#endif
+#ifdef AF_ISDN
+	{ AF_ISDN,	"AF_ISDN"	},
+#endif
+#ifdef AF_PHONET
+	{ AF_PHONET,	"AF_PHONET"	},
+#endif
+#ifdef AF_IEEE802154
+	{ AF_IEEE802154,"AF_IEEE802154"	},
+#endif
+#ifdef AF_CAIF
+	{ AF_CAIF,	"AF_CAIF"	},
+#endif
+#ifdef AF_ALG
+	{ AF_ALG,	"AF_ALG"	},
+#endif
+#ifdef AF_NFC
+	{ AF_NFC,	"AF_NFC"	},
+#endif
+#ifdef AF_VSOCK
+	{ AF_VSOCK,	"AF_VSOCK"	},
 #endif
 	{ 0,		NULL		},
 };
@@ -527,17 +581,23 @@
 };
 static const struct xlat msg_flags[] = {
 	{ MSG_OOB,		"MSG_OOB"		},
-#ifdef MSG_DONTROUTE
-	{ MSG_DONTROUTE,	"MSG_DONTROUTE"		},
-#endif
 #ifdef MSG_PEEK
 	{ MSG_PEEK,		"MSG_PEEK"		},
 #endif
+#ifdef MSG_DONTROUTE
+	{ MSG_DONTROUTE,	"MSG_DONTROUTE"		},
+#endif
 #ifdef MSG_CTRUNC
 	{ MSG_CTRUNC,		"MSG_CTRUNC"		},
 #endif
-#ifdef MSG_PROXY
-	{ MSG_PROXY,		"MSG_PROXY"		},
+#ifdef MSG_PROBE
+	{ MSG_PROBE,		"MSG_PROBE"		},
+#endif
+#ifdef MSG_TRUNC
+	{ MSG_TRUNC,		"MSG_TRUNC"		},
+#endif
+#ifdef MSG_DONTWAIT
+	{ MSG_DONTWAIT,		"MSG_DONTWAIT"		},
 #endif
 #ifdef MSG_EOR
 	{ MSG_EOR,		"MSG_EOR"		},
@@ -545,33 +605,21 @@
 #ifdef MSG_WAITALL
 	{ MSG_WAITALL,		"MSG_WAITALL"		},
 #endif
-#ifdef MSG_TRUNC
-	{ MSG_TRUNC,		"MSG_TRUNC"		},
-#endif
-#ifdef MSG_CTRUNC
-	{ MSG_CTRUNC,		"MSG_CTRUNC"		},
-#endif
-#ifdef MSG_ERRQUEUE
-	{ MSG_ERRQUEUE,		"MSG_ERRQUEUE"		},
-#endif
-#ifdef MSG_DONTWAIT
-	{ MSG_DONTWAIT,		"MSG_DONTWAIT"		},
-#endif
-#ifdef MSG_CONFIRM
-	{ MSG_CONFIRM,		"MSG_CONFIRM"		},
-#endif
-#ifdef MSG_PROBE
-	{ MSG_PROBE,		"MSG_PROBE"		},
-#endif
 #ifdef MSG_FIN
 	{ MSG_FIN,		"MSG_FIN"		},
 #endif
 #ifdef MSG_SYN
 	{ MSG_SYN,		"MSG_SYN"		},
 #endif
+#ifdef MSG_CONFIRM
+	{ MSG_CONFIRM,		"MSG_CONFIRM"		},
+#endif
 #ifdef MSG_RST
 	{ MSG_RST,		"MSG_RST"		},
 #endif
+#ifdef MSG_ERRQUEUE
+	{ MSG_ERRQUEUE,		"MSG_ERRQUEUE"		},
+#endif
 #ifdef MSG_NOSIGNAL
 	{ MSG_NOSIGNAL,		"MSG_NOSIGNAL"		},
 #endif
@@ -581,6 +629,12 @@
 #ifdef MSG_WAITFORONE
 	{ MSG_WAITFORONE,	"MSG_WAITFORONE"	},
 #endif
+#ifdef MSG_EOF
+	{ MSG_EOF,		"MSG_EOF"		},
+#endif
+#ifdef MSG_FASTOPEN
+	{ MSG_FASTOPEN,		"MSG_FASTOPEN"		},
+#endif
 #ifdef MSG_CMSG_CLOEXEC
 	{ MSG_CMSG_CLOEXEC,	"MSG_CMSG_CLOEXEC"	},
 #endif
@@ -1072,56 +1126,71 @@
 static const struct xlat socktcpoptions[] = {
 	{ TCP_NODELAY,		"TCP_NODELAY"	},
 	{ TCP_MAXSEG,		"TCP_MAXSEG"	},
-#if defined(TCP_CORK)
+#ifdef TCP_CORK
 	{ TCP_CORK,		"TCP_CORK"	},
 #endif
-#if defined(TCP_KEEPIDLE)
-	{ TCP_KEEPIDLE,		"TCP_KEEPIDLE" },
+#ifdef TCP_KEEPIDLE
+	{ TCP_KEEPIDLE,		"TCP_KEEPIDLE"	},
 #endif
-#if defined(TCP_KEEPINTVL)
-	{ TCP_KEEPINTVL,	"TCP_KEEPINTVL" },
+#ifdef TCP_KEEPINTVL
+	{ TCP_KEEPINTVL,	"TCP_KEEPINTVL"	},
 #endif
-#if defined(TCP_KEEPCNT)
-	{ TCP_KEEPCNT,		"TCP_KEEPCNT" },
+#ifdef TCP_KEEPCNT
+	{ TCP_KEEPCNT,		"TCP_KEEPCNT"	},
 #endif
-#if defined(TCP_NKEEP)
-	{ TCP_NKEEP,		"TCP_NKEEP"	},
+#ifdef TCP_SYNCNT
+	{ TCP_SYNCNT,		"TCP_SYNCNT"	},
 #endif
-#if defined(TCP_SYNCNT)
-	{ TCP_SYNCNT,		"TCP_SYNCNT" },
+#ifdef TCP_LINGER2
+	{ TCP_LINGER2,		"TCP_LINGER2"	},
 #endif
-#if defined(TCP_LINGER2)
-	{ TCP_LINGER2,		"TCP_LINGER2" },
+#ifdef TCP_DEFER_ACCEPT
+	{ TCP_DEFER_ACCEPT,	"TCP_DEFER_ACCEPT"	},
 #endif
-#if defined(TCP_DEFER_ACCEPT)
-	{ TCP_DEFER_ACCEPT,	"TCP_DEFER_ACCEPT" },
+#ifdef TCP_WINDOW_CLAMP
+	{ TCP_WINDOW_CLAMP,	"TCP_WINDOW_CLAMP"	},
 #endif
-#if defined(TCP_WINDOW_CLAMP)
-	{ TCP_WINDOW_CLAMP,	"TCP_WINDOW_CLAMP" },
+#ifdef TCP_INFO
+	{ TCP_INFO,		"TCP_INFO"	},
 #endif
-#if defined(TCP_INFO)
-	{ TCP_INFO,		"TCP_INFO" },
+#ifdef TCP_QUICKACK
+	{ TCP_QUICKACK,		"TCP_QUICKACK"	},
 #endif
-#if defined(TCP_QUICKACK)
-	{ TCP_QUICKACK,		"TCP_QUICKACK" },
+#ifdef TCP_CONGESTION
+	{ TCP_CONGESTION,	"TCP_CONGESTION"	},
 #endif
-#if defined(TCP_CONGESTION)
-	{ TCP_CONGESTION,	"TCP_CONGESTION" },
+#ifdef TCP_MD5SIG
+	{ TCP_MD5SIG,		"TCP_MD5SIG"	},
 #endif
-#if defined(TCP_MD5SIG)
-	{ TCP_MD5SIG,		"TCP_MD5SIG" },
+#ifdef TCP_COOKIE_TRANSACTIONS
+	{ TCP_COOKIE_TRANSACTIONS,	"TCP_COOKIE_TRANSACTIONS"	},
 #endif
-#if defined(TCP_COOKIE_TRANSACTIONS)
-	{ TCP_COOKIE_TRANSACTIONS,	"TCP_COOKIE_TRANSACTIONS" },
+#ifdef TCP_THIN_LINEAR_TIMEOUTS
+	{ TCP_THIN_LINEAR_TIMEOUTS,	"TCP_THIN_LINEAR_TIMEOUTS"	},
 #endif
-#if defined(TCP_THIN_LINEAR_TIMEOUTS)
-	{ TCP_THIN_LINEAR_TIMEOUTS,	"TCP_THIN_LINEAR_TIMEOUTS" },
+#ifdef TCP_THIN_DUPACK
+	{ TCP_THIN_DUPACK,	"TCP_THIN_DUPACK"	},
 #endif
-#if defined(TCP_THIN_DUPACK)
-	{ TCP_THIN_DUPACK,	"TCP_THIN_DUPACK" },
+#ifdef TCP_USER_TIMEOUT
+	{ TCP_USER_TIMEOUT,	"TCP_USER_TIMEOUT"	},
 #endif
-#if defined(TCP_USER_TIMEOUT)
-	{ TCP_USER_TIMEOUT,	"TCP_USER_TIMEOUT" },
+#ifdef TCP_REPAIR
+	{ TCP_REPAIR,		"TCP_REPAIR"	},
+#endif
+#ifdef TCP_REPAIR_QUEUE
+	{ TCP_REPAIR_QUEUE,	"TCP_REPAIR_QUEUE"	},
+#endif
+#ifdef TCP_QUEUE_SEQ
+	{ TCP_QUEUE_SEQ,	"TCP_QUEUE_SEQ"	},
+#endif
+#ifdef TCP_REPAIR_OPTIONS
+	{ TCP_REPAIR_OPTIONS,	"TCP_REPAIR_OPTIONS"	},
+#endif
+#ifdef TCP_FASTOPEN
+	{ TCP_FASTOPEN,		"TCP_FASTOPEN"	},
+#endif
+#ifdef TCP_TIMESTAMP
+	{ TCP_TIMESTAMP,	"TCP_TIMESTAMP"	},
 #endif
 	{ 0,			NULL		},
 };
@@ -1428,11 +1497,42 @@
 	tprints("}");
 }
 
+struct msghdr32 {
+	uint32_t /* void* */    msg_name;
+	uint32_t /* socklen_t */msg_namelen;
+	uint32_t /* iovec* */   msg_iov;
+	uint32_t /* size_t */   msg_iovlen;
+	uint32_t /* void* */    msg_control;
+	uint32_t /* size_t */   msg_controllen;
+	uint32_t /* int */      msg_flags;
+};
+struct mmsghdr32 {
+	struct msghdr32         msg_hdr;
+	uint32_t /* unsigned */ msg_len;
+};
+
 static void
 printmsghdr(struct tcb *tcp, long addr, unsigned long data_size)
 {
 	struct msghdr msg;
 
+#if SUPPORTED_PERSONALITIES > 1 && SIZEOF_LONG > 4
+	if (current_wordsize == 4) {
+		struct msghdr32 msg32;
+
+		if (umove(tcp, addr, &msg32) < 0) {
+			tprintf("%#lx", addr);
+			return;
+		}
+		msg.msg_name       = (void*)(long)msg32.msg_name;
+		msg.msg_namelen    =              msg32.msg_namelen;
+		msg.msg_iov        = (void*)(long)msg32.msg_iov;
+		msg.msg_iovlen     =              msg32.msg_iovlen;
+		msg.msg_control    = (void*)(long)msg32.msg_control;
+		msg.msg_controllen =              msg32.msg_controllen;
+		msg.msg_flags      =              msg32.msg_flags;
+	} else
+#endif
 	if (umove(tcp, addr, &msg) < 0) {
 		tprintf("%#lx", addr);
 		return;
@@ -1448,10 +1548,31 @@
 		unsigned msg_len;
 	} mmsg;
 
-	addr += sizeof(mmsg) * idx;
-	if (umove(tcp, addr, &mmsg) < 0) {
-		tprintf("%#lx", addr);
-		return;
+#if SUPPORTED_PERSONALITIES > 1 && SIZEOF_LONG > 4
+	if (current_wordsize == 4) {
+		struct mmsghdr32 mmsg32;
+
+		addr += sizeof(mmsg32) * idx;
+		if (umove(tcp, addr, &mmsg32) < 0) {
+			tprintf("%#lx", addr);
+			return;
+		}
+		mmsg.msg_hdr.msg_name       = (void*)(long)mmsg32.msg_hdr.msg_name;
+		mmsg.msg_hdr.msg_namelen    =              mmsg32.msg_hdr.msg_namelen;
+		mmsg.msg_hdr.msg_iov        = (void*)(long)mmsg32.msg_hdr.msg_iov;
+		mmsg.msg_hdr.msg_iovlen     =              mmsg32.msg_hdr.msg_iovlen;
+		mmsg.msg_hdr.msg_control    = (void*)(long)mmsg32.msg_hdr.msg_control;
+		mmsg.msg_hdr.msg_controllen =              mmsg32.msg_hdr.msg_controllen;
+		mmsg.msg_hdr.msg_flags      =              mmsg32.msg_hdr.msg_flags;
+		mmsg.msg_len                =              mmsg32.msg_len;
+	} else
+#endif
+	{
+		addr += sizeof(mmsg) * idx;
+		if (umove(tcp, addr, &mmsg) < 0) {
+			tprintf("%#lx", addr);
+			return;
+		}
 	}
 	tprints("{");
 	do_msghdr(tcp, &mmsg.msg_hdr, msg_len ? msg_len : mmsg.msg_len);
diff --git a/pathtrace.c b/pathtrace.c
index c000c83..d4c2dc4 100644
--- a/pathtrace.c
+++ b/pathtrace.c
@@ -37,8 +37,8 @@
 
 #include "syscall.h"
 
-#define MAXSELECTED  256	/* max number of "selected" paths */
-static const char *selected[MAXSELECTED];	/* paths selected for tracing */
+const char **paths_selected = NULL;
+static unsigned num_selected = 0;
 
 /*
  * Return true if specified path matches one that we're tracing.
@@ -46,12 +46,10 @@
 static int
 pathmatch(const char *path)
 {
-	unsigned int i;
+	unsigned i;
 
-	for (i = 0; i < ARRAY_SIZE(selected); ++i) {
-		if (selected[i] == NULL)
-			return 0;
-		if (strcmp(path, selected[i]) == 0)
+	for (i = 0; i < num_selected; ++i) {
+		if (strcmp(path, paths_selected[i]) == 0)
 			return 1;
 	}
 	return 0;
@@ -65,7 +63,7 @@
 {
 	char path[PATH_MAX + 1];
 
-	return umovestr(tcp, upath, sizeof path, path) >= 0 &&
+	return umovestr(tcp, upath, sizeof path, path) > 0 &&
 		pathmatch(path);
 }
 
@@ -75,79 +73,79 @@
 static int
 fdmatch(struct tcb *tcp, int fd)
 {
-	const char *path = getfdpath(tcp, fd);
+	char path[PATH_MAX + 1];
+	int n = getfdpath(tcp, fd, path, sizeof(path));
 
-	return path && pathmatch(path);
+	return n >= 0 && pathmatch(path);
 }
 
 /*
  * Add a path to the set we're tracing.
  * Secifying NULL will delete all paths.
  */
-static int
+static void
 storepath(const char *path)
 {
-	unsigned int i;
+	unsigned i;
 
-	for (i = 0; i < ARRAY_SIZE(selected); ++i) {
-		if (!selected[i]) {
-			selected[i] = path;
-			return 0;
-		}
-	}
+	if (pathmatch(path))
+		return; /* already in table */
 
-	fprintf(stderr, "Max trace paths exceeded, only using first %u\n",
-		(unsigned int) ARRAY_SIZE(selected));
-	return -1;
+	i = num_selected++;
+	paths_selected = realloc(paths_selected, num_selected * sizeof(paths_selected[0]));
+	if (!paths_selected)
+		die_out_of_memory();
+	paths_selected[i] = path;
 }
 
 /*
  * Get path associated with fd.
  */
-const char *
-getfdpath(struct tcb *tcp, int fd)
+int
+getfdpath(struct tcb *tcp, int fd, char *buf, unsigned bufsize)
 {
-	static char path[PATH_MAX+1];
 	char linkpath[sizeof("/proc/%u/fd/%u") + 2 * sizeof(int)*3];
 	ssize_t n;
 
 	if (fd < 0)
-		return NULL;
+		return -1;
 
 	sprintf(linkpath, "/proc/%u/fd/%u", tcp->pid, fd);
-	n = readlink(linkpath, path, (sizeof path) - 1);
-	if (n <= 0)
-		return NULL;
-	path[n] = '\0';
-	return path;
+	n = readlink(linkpath, buf, bufsize - 1);
+	/*
+	 * NB: if buf is too small, readlink doesn't fail,
+	 * it returns truncated result (IOW: n == bufsize - 1).
+	 */
+	if (n >= 0)
+		buf[n] = '\0';
+	return n;
 }
 
 /*
  * Add a path to the set we're tracing.  Also add the canonicalized
  * version of the path.  Secifying NULL will delete all paths.
  */
-int
+void
 pathtrace_select(const char *path)
 {
 	char *rpath;
 
-	if (storepath(path))
-		return -1;
+	storepath(path);
 
 	rpath = realpath(path, NULL);
 
 	if (rpath == NULL)
-		return 0;
+		return;
 
 	/* if realpath and specified path are same, we're done */
 	if (strcmp(path, rpath) == 0) {
 		free(rpath);
-		return 0;
+		return;
 	}
 
 	fprintf(stderr, "Requested path '%s' resolved into '%s'\n",
 		path, rpath);
-	return storepath(rpath);
+	storepath(rpath);
 }
 
 /*
@@ -157,15 +155,9 @@
 int
 pathtrace_match(struct tcb *tcp)
 {
-	const struct sysent *s;
+	const struct_sysent *s;
 
-	if (selected[0] == NULL)
-		return 1;
-
-	if (!SCNO_IN_RANGE(tcp->scno))
-		return 0;
-
-	s = &sysent[tcp->scno];
+	s = tcp->s_ent;
 
 	if (!(s->sys_flags & (TRACE_FILE | TRACE_DESC)))
 		return 0;
@@ -213,6 +205,12 @@
 			upathmatch(tcp, tcp->u_arg[1]);
 	}
 
+	if (s->sys_func == sys_quotactl)
+	{
+		/* x, path */
+		return upathmatch(tcp, tcp->u_arg[1]);
+	}
+
 	if (s->sys_func == sys_renameat ||
 	    s->sys_func == sys_linkat)
 	{
@@ -225,7 +223,13 @@
 
 	if (
 	    s->sys_func == sys_old_mmap ||
-	    s->sys_func == sys_mmap) {
+#if defined(S390)
+	    s->sys_func == sys_old_mmap_pgoff ||
+#endif
+	    s->sys_func == sys_mmap ||
+	    s->sys_func == sys_mmap_pgoff ||
+	    s->sys_func == sys_mmap_4koff
+	) {
 		/* x, x, x, x, fd */
 		return fdmatch(tcp, tcp->u_arg[4]);
 	}
diff --git a/process.c b/process.c
index fa304e5..799a314 100644
--- a/process.c
+++ b/process.c
@@ -41,6 +41,9 @@
 #include <sys/resource.h>
 #include <sys/utsname.h>
 #include <sys/user.h>
+#ifdef HAVE_ELF_H
+# include <elf.h>
+#endif
 
 #ifdef HAVE_SYS_REG_H
 # include <sys/reg.h>
@@ -156,6 +159,7 @@
 #ifdef PR_PTHREADEXIT
 	{ PR_PTHREADEXIT,	"PR_PTHREADEXIT"	},
 #endif
+
 #ifdef PR_SET_PDEATHSIG
 	{ PR_SET_PDEATHSIG,	"PR_SET_PDEATHSIG"	},
 #endif
@@ -216,6 +220,12 @@
 #ifdef PR_SET_SECCOMP
 	{ PR_SET_SECCOMP,	"PR_SET_SECCOMP"	},
 #endif
+#ifdef PR_CAPBSET_READ
+	{ PR_CAPBSET_READ,	"PR_CAPBSET_READ"	},
+#endif
+#ifdef PR_CAPBSET_DROP
+	{ PR_CAPBSET_DROP,	"PR_CAPBSET_DROP"	},
+#endif
 #ifdef PR_GET_TSC
 	{ PR_GET_TSC,		"PR_GET_TSC"		},
 #endif
@@ -228,6 +238,45 @@
 #ifdef PR_SET_SECUREBITS
 	{ PR_SET_SECUREBITS,	"PR_SET_SECUREBITS"	},
 #endif
+#ifdef PR_SET_TIMERSLACK
+	{ PR_SET_TIMERSLACK,	"PR_SET_TIMERSLACK"	},
+#endif
+#ifdef PR_GET_TIMERSLACK
+	{ PR_GET_TIMERSLACK,	"PR_GET_TIMERSLACK"	},
+#endif
+#ifdef PR_TASK_PERF_EVENTS_DISABLE
+	{ PR_TASK_PERF_EVENTS_DISABLE,	"PR_TASK_PERF_EVENTS_DISABLE"	},
+#endif
+#ifdef PR_TASK_PERF_EVENTS_ENABLE
+	{ PR_TASK_PERF_EVENTS_ENABLE,	"PR_TASK_PERF_EVENTS_ENABLE"	},
+#endif
+#ifdef PR_MCE_KILL
+	{ PR_MCE_KILL,		"PR_MCE_KILL"		},
+#endif
+#ifdef PR_MCE_KILL_GET
+	{ PR_MCE_KILL_GET,	"PR_MCE_KILL_GET"	},
+#endif
+#ifdef PR_SET_MM
+	{ PR_SET_MM,		"PR_SET_MM"		},
+#endif
+#ifdef PR_SET_PTRACER
+	{ PR_SET_PTRACER,	"PR_SET_PTRACER"	},
+#endif
+#ifdef PR_SET_CHILD_SUBREAPER
+	{ PR_SET_CHILD_SUBREAPER,	"PR_SET_CHILD_SUBREAPER"	},
+#endif
+#ifdef PR_GET_CHILD_SUBREAPER
+	{ PR_GET_CHILD_SUBREAPER,	"PR_GET_CHILD_SUBREAPER"	},
+#endif
+#ifdef PR_SET_NO_NEW_PRIVS
+	{ PR_SET_NO_NEW_PRIVS,	"PR_SET_NO_NEW_PRIVS"	},
+#endif
+#ifdef PR_GET_NO_NEW_PRIVS
+	{ PR_GET_NO_NEW_PRIVS,	"PR_GET_NO_NEW_PRIVS"	},
+#endif
+#ifdef PR_GET_TID_ADDRESS
+	{ PR_GET_TID_ADDRESS,	"PR_GET_TID_ADDRESS"	},
+#endif
 	{ 0,			NULL			},
 };
 
@@ -302,7 +351,7 @@
 			break;
 #endif
 		default:
-			for (i = 1; i < tcp->u_nargs; i++)
+			for (i = 1; i < tcp->s_ent->nargs; i++)
 				tprintf(", %#lx", tcp->u_arg[i]);
 			break;
 		}
@@ -465,7 +514,8 @@
 # define ARG_PTID	2
 # define ARG_CTID	3
 # define ARG_TLS	4
-#elif defined X86_64 || defined X32 || defined ALPHA
+#elif defined X86_64 || defined X32 || defined ALPHA || defined TILE \
+   || defined OR1K
 # define ARG_FLAGS	0
 # define ARG_STACK	1
 # define ARG_PTID	2
@@ -1126,26 +1176,17 @@
 int
 sys_waitid(struct tcb *tcp)
 {
-	siginfo_t si;
-
 	if (entering(tcp)) {
 		printxval(waitid_types, tcp->u_arg[0], "P_???");
 		tprintf(", %ld, ", tcp->u_arg[1]);
 	}
 	else {
 		/* siginfo */
-		if (!tcp->u_arg[2])
-			tprints("NULL");
-		else if (syserror(tcp))
-			tprintf("%#lx", tcp->u_arg[2]);
-		else if (umove(tcp, tcp->u_arg[2], &si) < 0)
-			tprints("{???}");
-		else
-			printsiginfo(&si, verbose(tcp));
+		printsiginfo_at(tcp, tcp->u_arg[2]);
 		/* options */
 		tprints(", ");
 		printflags(wait4_options, tcp->u_arg[3], "W???");
-		if (tcp->u_nargs > 4) {
+		if (tcp->s_ent->nargs > 4) {
 			/* usage */
 			tprints(", ");
 			if (!tcp->u_arg[4])
@@ -1282,10 +1323,89 @@
 # ifdef PTRACE_O_TRACEEXIT
 	{ PTRACE_O_TRACEEXIT,	"PTRACE_O_TRACEEXIT"	},
 # endif
+# ifdef PTRACE_O_TRACESECCOMP
+	{ PTRACE_O_TRACESECCOMP,"PTRACE_O_TRACESECCOMP"	},
+# endif
+# ifdef PTRACE_O_EXITKILL
+	{ PTRACE_O_EXITKILL,	"PTRACE_O_EXITKILL"	},
+# endif
 	{ 0,			NULL			},
 };
 #endif /* PTRACE_SETOPTIONS */
 
+static const struct xlat nt_descriptor_types[] = {
+#ifdef NT_PRSTATUS
+	{ NT_PRSTATUS,		"NT_PRSTATUS" },
+#endif
+#ifdef NT_FPREGSET
+	{ NT_FPREGSET,		"NT_FPREGSET" },
+#endif
+#ifdef NT_PRPSINFO
+	{ NT_PRPSINFO,		"NT_PRPSINFO" },
+#endif
+#ifdef NT_PRXREG
+	{ NT_PRXREG,		"NT_PRXREG" },
+#endif
+#ifdef NT_TASKSTRUCT
+	{ NT_TASKSTRUCT,	"NT_TASKSTRUCT" },
+#endif
+#ifdef NT_PLATFORM
+	{ NT_PLATFORM,		"NT_PLATFORM" },
+#endif
+#ifdef NT_AUXV
+	{ NT_AUXV,		"NT_AUXV" },
+#endif
+#ifdef NT_GWINDOWS
+	{ NT_GWINDOWS,		"NT_GWINDOWS" },
+#endif
+#ifdef NT_ASRS
+	{ NT_ASRS,		"NT_ASRS" },
+#endif
+#ifdef NT_PSTATUS
+	{ NT_PSTATUS,		"NT_PSTATUS" },
+#endif
+#ifdef NT_PSINFO
+	{ NT_PSINFO,		"NT_PSINFO" },
+#endif
+#ifdef NT_PRCRED
+	{ NT_PRCRED,		"NT_PRCRED" },
+#endif
+#ifdef NT_UTSNAME
+	{ NT_UTSNAME,		"NT_UTSNAME" },
+#endif
+#ifdef NT_LWPSTATUS
+	{ NT_LWPSTATUS,		"NT_LWPSTATUS" },
+#endif
+#ifdef NT_LWPSINFO
+	{ NT_LWPSINFO,		"NT_LWPSINFO" },
+#endif
+#ifdef NT_PRFPXREG
+	{ NT_PRFPXREG,		"NT_PRFPXREG" },
+#endif
+#ifdef NT_PRXFPREG
+	{ NT_PRXFPREG,		"NT_PRXFPREG" },
+#endif
+#ifdef NT_PPC_VMX
+	{ NT_PPC_VMX,		"NT_PPC_VMX" },
+#endif
+#ifdef NT_PPC_SPE
+	{ NT_PPC_SPE,		"NT_PPC_SPE" },
+#endif
+#ifdef NT_PPC_VSX
+	{ NT_PPC_VSX,		"NT_PPC_VSX" },
+#endif
+#ifdef NT_386_TLS
+	{ NT_386_TLS,		"NT_386_TLS" },
+#endif
+#ifdef NT_386_IOPERM
+	{ NT_386_IOPERM,	"NT_386_IOPERM" },
+#endif
+#ifdef NT_X86_XSTATE
+	{ NT_X86_XSTATE,	"NT_X86_XSTATE" },
+#endif
+	{ 0,			NULL },
+};
+
 #define uoff(member)	offsetof(struct user, member)
 
 const struct xlat struct_user_offsets[] = {
@@ -2116,50 +2236,271 @@
 	{ PT_FSR,		"rfsr",					},
 	{ PT_KERNEL_MODE,	"kernel_mode",				},
 #endif
+#ifdef OR1K
+	{ 4*0,  "r0" },
+	{ 4*1,  "r1" },
+	{ 4*2,  "r2" },
+	{ 4*3,  "r3" },
+	{ 4*4,  "r4" },
+	{ 4*5,  "r5" },
+	{ 4*6,  "r6" },
+	{ 4*7,  "r7" },
+	{ 4*8,  "r8" },
+	{ 4*9,  "r9" },
+	{ 4*10, "r10" },
+	{ 4*11, "r11" },
+	{ 4*12, "r12" },
+	{ 4*13, "r13" },
+	{ 4*14, "r14" },
+	{ 4*15, "r15" },
+	{ 4*16, "r16" },
+	{ 4*17, "r17" },
+	{ 4*18, "r18" },
+	{ 4*19, "r19" },
+	{ 4*20, "r20" },
+	{ 4*21, "r21" },
+	{ 4*22, "r22" },
+	{ 4*23, "r23" },
+	{ 4*24, "r24" },
+	{ 4*25, "r25" },
+	{ 4*26, "r26" },
+	{ 4*27, "r27" },
+	{ 4*28, "r28" },
+	{ 4*29, "r29" },
+	{ 4*30, "r30" },
+	{ 4*31, "r31" },
+	{ 4*32, "pc" },
+	{ 4*33, "sr" },
+#endif
+#ifdef XTENSA
+	{ SYSCALL_NR,           "syscall_nr"    },
+	{ REG_AR_BASE,          "ar0"           },
+	{ REG_AR_BASE+1,        "ar1"           },
+	{ REG_AR_BASE+2,        "ar2"           },
+	{ REG_AR_BASE+3,        "ar3"           },
+	{ REG_AR_BASE+4,        "ar4"           },
+	{ REG_AR_BASE+5,        "ar5"           },
+	{ REG_AR_BASE+6,        "ar6"           },
+	{ REG_AR_BASE+7,        "ar7"           },
+	{ REG_AR_BASE+8,        "ar8"           },
+	{ REG_AR_BASE+9,        "ar9"           },
+	{ REG_AR_BASE+10,       "ar10"          },
+	{ REG_AR_BASE+11,       "ar11"          },
+	{ REG_AR_BASE+12,       "ar12"          },
+	{ REG_AR_BASE+13,       "ar13"          },
+	{ REG_AR_BASE+14,       "ar14"          },
+	{ REG_AR_BASE+15,       "ar15"          },
+	{ REG_AR_BASE+16,       "ar16"          },
+	{ REG_AR_BASE+17,       "ar17"          },
+	{ REG_AR_BASE+18,       "ar18"          },
+	{ REG_AR_BASE+19,       "ar19"          },
+	{ REG_AR_BASE+20,       "ar20"          },
+	{ REG_AR_BASE+21,       "ar21"          },
+	{ REG_AR_BASE+22,       "ar22"          },
+	{ REG_AR_BASE+23,       "ar23"          },
+	{ REG_AR_BASE+24,       "ar24"          },
+	{ REG_AR_BASE+25,       "ar25"          },
+	{ REG_AR_BASE+26,       "ar26"          },
+	{ REG_AR_BASE+27,       "ar27"          },
+	{ REG_AR_BASE+28,       "ar28"          },
+	{ REG_AR_BASE+29,       "ar29"          },
+	{ REG_AR_BASE+30,       "ar30"          },
+	{ REG_AR_BASE+31,       "ar31"          },
+	{ REG_AR_BASE+32,       "ar32"          },
+	{ REG_AR_BASE+33,       "ar33"          },
+	{ REG_AR_BASE+34,       "ar34"          },
+	{ REG_AR_BASE+35,       "ar35"          },
+	{ REG_AR_BASE+36,       "ar36"          },
+	{ REG_AR_BASE+37,       "ar37"          },
+	{ REG_AR_BASE+38,       "ar38"          },
+	{ REG_AR_BASE+39,       "ar39"          },
+	{ REG_AR_BASE+40,       "ar40"          },
+	{ REG_AR_BASE+41,       "ar41"          },
+	{ REG_AR_BASE+42,       "ar42"          },
+	{ REG_AR_BASE+43,       "ar43"          },
+	{ REG_AR_BASE+44,       "ar44"          },
+	{ REG_AR_BASE+45,       "ar45"          },
+	{ REG_AR_BASE+46,       "ar46"          },
+	{ REG_AR_BASE+47,       "ar47"          },
+	{ REG_AR_BASE+48,       "ar48"          },
+	{ REG_AR_BASE+49,       "ar49"          },
+	{ REG_AR_BASE+50,       "ar50"          },
+	{ REG_AR_BASE+51,       "ar51"          },
+	{ REG_AR_BASE+52,       "ar52"          },
+	{ REG_AR_BASE+53,       "ar53"          },
+	{ REG_AR_BASE+54,       "ar54"          },
+	{ REG_AR_BASE+55,       "ar55"          },
+	{ REG_AR_BASE+56,       "ar56"          },
+	{ REG_AR_BASE+57,       "ar57"          },
+	{ REG_AR_BASE+58,       "ar58"          },
+	{ REG_AR_BASE+59,       "ar59"          },
+	{ REG_AR_BASE+60,       "ar60"          },
+	{ REG_AR_BASE+61,       "ar61"          },
+	{ REG_AR_BASE+62,       "ar62"          },
+	{ REG_AR_BASE+63,       "ar63"          },
+	{ REG_LBEG,             "lbeg"          },
+	{ REG_LEND,             "lend"          },
+	{ REG_LCOUNT,           "lcount"        },
+	{ REG_SAR,              "sar"           },
+	{ REG_WB,               "wb"            },
+	{ REG_WS,               "ws"            },
+	{ REG_PS,               "ps"            },
+	{ REG_PC,               "pc"            },
+	{ REG_A_BASE,           "a0"            },
+	{ REG_A_BASE+1,         "a1"            },
+	{ REG_A_BASE+2,         "a2"            },
+	{ REG_A_BASE+3,         "a3"            },
+	{ REG_A_BASE+4,         "a4"            },
+	{ REG_A_BASE+5,         "a5"            },
+	{ REG_A_BASE+6,         "a6"            },
+	{ REG_A_BASE+7,         "a7"            },
+	{ REG_A_BASE+8,         "a8"            },
+	{ REG_A_BASE+9,         "a9"            },
+	{ REG_A_BASE+10,        "a10"           },
+	{ REG_A_BASE+11,        "a11"           },
+	{ REG_A_BASE+12,        "a12"           },
+	{ REG_A_BASE+13,        "a13"           },
+	{ REG_A_BASE+14,        "a14"           },
+	{ REG_A_BASE+15,        "a15"           },
+#endif
 
-#if !defined(SPARC) && !defined(HPPA) && !defined(POWERPC) \
-		&& !defined(ALPHA) && !defined(IA64) \
-		&& !defined(CRISV10) && !defined(CRISV32) && !defined(MICROBLAZE)
-# if !defined(S390) && !defined(S390X) && !defined(MIPS) && !defined(SPARC64) && !defined(AVR32) && !defined(BFIN) && !defined(TILE)
-	{ uoff(u_fpvalid),	"offsetof(struct user, u_fpvalid)"	},
-# endif
-# if defined(I386) || defined(X86_64) || defined(X32)
-	{ uoff(i387),		"offsetof(struct user, i387)"		},
-# endif
-# if defined(M68K)
-	{ uoff(m68kfp),		"offsetof(struct user, m68kfp)"		},
-# endif
+	/* Other fields in "struct user" */
+#if defined(S390) || defined(S390X)
 	{ uoff(u_tsize),	"offsetof(struct user, u_tsize)"	},
 	{ uoff(u_dsize),	"offsetof(struct user, u_dsize)"	},
 	{ uoff(u_ssize),	"offsetof(struct user, u_ssize)"	},
-# if !defined(SPARC64)
 	{ uoff(start_code),	"offsetof(struct user, start_code)"	},
-# endif
-# if defined(AVR32) || defined(SH64)
-	{ uoff(start_data),	"offsetof(struct user, start_data)"	},
-# endif
-# if !defined(SPARC64)
+	/* S390[X] has no start_data */
 	{ uoff(start_stack),	"offsetof(struct user, start_stack)"	},
-# endif
 	{ uoff(signal),		"offsetof(struct user, signal)"		},
-# if !defined(AVR32) && !defined(S390) && !defined(S390X) && !defined(MIPS) && !defined(SH) && !defined(SH64) && !defined(SPARC64) && !defined(TILE)
-	{ uoff(reserved),	"offsetof(struct user, reserved)"	},
-# endif
-# if !defined(SPARC64)
 	{ uoff(u_ar0),		"offsetof(struct user, u_ar0)"		},
-# endif
-# if !defined(ARM) && !defined(AVR32) && !defined(MIPS) && !defined(S390) && !defined(S390X) && !defined(SPARC64) && !defined(BFIN) && !defined(TILE)
-	{ uoff(u_fpstate),	"offsetof(struct user, u_fpstate)"	},
-# endif
 	{ uoff(magic),		"offsetof(struct user, magic)"		},
 	{ uoff(u_comm),		"offsetof(struct user, u_comm)"		},
-# if defined(I386) || defined(X86_64) || defined(X32)
-	{ uoff(u_debugreg),	"offsetof(struct user, u_debugreg)"	},
-# endif
-#endif /* !defined(many arches) */
-
-#ifndef HPPA
 	{ sizeof(struct user),	"sizeof(struct user)"			},
+#elif defined(POWERPC)
+	{ sizeof(struct user),	"sizeof(struct user)"			},
+#elif defined(I386) || defined(X86_64) || defined(X32)
+	{ uoff(u_fpvalid),	"offsetof(struct user, u_fpvalid)"	},
+	{ uoff(i387),		"offsetof(struct user, i387)"		},
+	{ uoff(u_tsize),	"offsetof(struct user, u_tsize)"	},
+	{ uoff(u_dsize),	"offsetof(struct user, u_dsize)"	},
+	{ uoff(u_ssize),	"offsetof(struct user, u_ssize)"	},
+	{ uoff(start_code),	"offsetof(struct user, start_code)"	},
+	{ uoff(start_stack),	"offsetof(struct user, start_stack)"	},
+	{ uoff(signal),		"offsetof(struct user, signal)"		},
+	{ uoff(reserved),	"offsetof(struct user, reserved)"	},
+	{ uoff(u_ar0),		"offsetof(struct user, u_ar0)"		},
+	{ uoff(u_fpstate),	"offsetof(struct user, u_fpstate)"	},
+	{ uoff(magic),		"offsetof(struct user, magic)"		},
+	{ uoff(u_comm),		"offsetof(struct user, u_comm)"		},
+	{ uoff(u_debugreg),	"offsetof(struct user, u_debugreg)"	},
+	{ sizeof(struct user),	"sizeof(struct user)"			},
+#elif defined(IA64)
+	{ sizeof(struct user),	"sizeof(struct user)"			},
+#elif defined(ARM)
+	{ uoff(u_fpvalid),	"offsetof(struct user, u_fpvalid)"	},
+	{ uoff(u_tsize),	"offsetof(struct user, u_tsize)"	},
+	{ uoff(u_dsize),	"offsetof(struct user, u_dsize)"	},
+	{ uoff(u_ssize),	"offsetof(struct user, u_ssize)"	},
+	{ uoff(start_code),	"offsetof(struct user, start_code)"	},
+	{ uoff(start_stack),	"offsetof(struct user, start_stack)"	},
+	{ uoff(signal),		"offsetof(struct user, signal)"		},
+	{ uoff(reserved),	"offsetof(struct user, reserved)"	},
+	{ uoff(u_ar0),		"offsetof(struct user, u_ar0)"		},
+	{ uoff(magic),		"offsetof(struct user, magic)"		},
+	{ uoff(u_comm),		"offsetof(struct user, u_comm)"		},
+	{ sizeof(struct user),	"sizeof(struct user)"			},
+#elif defined(AARCH64)
+	/* nothing */
+#elif defined(M68K)
+	{ uoff(u_fpvalid),	"offsetof(struct user, u_fpvalid)"	},
+	{ uoff(m68kfp),		"offsetof(struct user, m68kfp)"		},
+	{ uoff(u_tsize),	"offsetof(struct user, u_tsize)"	},
+	{ uoff(u_dsize),	"offsetof(struct user, u_dsize)"	},
+	{ uoff(u_ssize),	"offsetof(struct user, u_ssize)"	},
+	{ uoff(start_code),	"offsetof(struct user, start_code)"	},
+	{ uoff(start_stack),	"offsetof(struct user, start_stack)"	},
+	{ uoff(signal),		"offsetof(struct user, signal)"		},
+	{ uoff(reserved),	"offsetof(struct user, reserved)"	},
+	{ uoff(u_ar0),		"offsetof(struct user, u_ar0)"		},
+	{ uoff(u_fpstate),	"offsetof(struct user, u_fpstate)"	},
+	{ uoff(magic),		"offsetof(struct user, magic)"		},
+	{ uoff(u_comm),		"offsetof(struct user, u_comm)"		},
+	{ sizeof(struct user),	"sizeof(struct user)"			},
+#elif defined(MIPS) || defined(LINUX_MIPSN32)
+	{ uoff(u_tsize),	"offsetof(struct user, u_tsize)"	},
+	{ uoff(u_dsize),	"offsetof(struct user, u_dsize)"	},
+	{ uoff(u_ssize),	"offsetof(struct user, u_ssize)"	},
+	{ uoff(start_code),	"offsetof(struct user, start_code)"	},
+	{ uoff(start_data),	"offsetof(struct user, start_data)"	},
+	{ uoff(start_stack),	"offsetof(struct user, start_stack)"	},
+	{ uoff(signal),		"offsetof(struct user, signal)"		},
+	{ uoff(u_ar0),		"offsetof(struct user, u_ar0)"		},
+	{ uoff(magic),		"offsetof(struct user, magic)"		},
+	{ uoff(u_comm),		"offsetof(struct user, u_comm)"		},
+	{ sizeof(struct user),	"sizeof(struct user)"			},
+#elif defined(ALPHA)
+	{ sizeof(struct user),	"sizeof(struct user)"			},
+#elif defined(SPARC)
+	{ sizeof(struct user),	"sizeof(struct user)"			},
+#elif defined(SPARC64)
+	{ uoff(u_tsize),	"offsetof(struct user, u_tsize)"	},
+	{ uoff(u_dsize),	"offsetof(struct user, u_dsize)"	},
+	{ uoff(u_ssize),	"offsetof(struct user, u_ssize)"	},
+	{ uoff(signal),		"offsetof(struct user, signal)"		},
+	{ uoff(magic),		"offsetof(struct user, magic)"		},
+	{ uoff(u_comm),		"offsetof(struct user, u_comm)"		},
+	{ sizeof(struct user),	"sizeof(struct user)"			},
+#elif defined(HPPA)
+	/* nothing */
+#elif defined(SH) || defined(SH64)
+	{ uoff(u_fpvalid),	"offsetof(struct user, u_fpvalid)"	},
+	{ uoff(u_tsize),	"offsetof(struct user, u_tsize)"	},
+	{ uoff(u_dsize),	"offsetof(struct user, u_dsize)"	},
+	{ uoff(u_ssize),	"offsetof(struct user, u_ssize)"	},
+	{ uoff(start_code),	"offsetof(struct user, start_code)"	},
+	{ uoff(start_data),	"offsetof(struct user, start_data)"	},
+	{ uoff(start_stack),	"offsetof(struct user, start_stack)"	},
+	{ uoff(signal),		"offsetof(struct user, signal)"		},
+	{ uoff(u_ar0),		"offsetof(struct user, u_ar0)"		},
+	{ uoff(u_fpstate),	"offsetof(struct user, u_fpstate)"	},
+	{ uoff(magic),		"offsetof(struct user, magic)"		},
+	{ uoff(u_comm),		"offsetof(struct user, u_comm)"		},
+	{ sizeof(struct user),	"sizeof(struct user)"			},
+#elif defined(CRISV10) || defined(CRISV32)
+	{ sizeof(struct user),	"sizeof(struct user)"			},
+#elif defined(TILE)
+	/* nothing */
+#elif defined(MICROBLAZE)
+	{ sizeof(struct user),	"sizeof(struct user)"			},
+#elif defined(AVR32)
+	{ uoff(u_tsize),	"offsetof(struct user, u_tsize)"	},
+	{ uoff(u_dsize),	"offsetof(struct user, u_dsize)"	},
+	{ uoff(u_ssize),	"offsetof(struct user, u_ssize)"	},
+	{ uoff(start_code),	"offsetof(struct user, start_code)"	},
+	{ uoff(start_data),	"offsetof(struct user, start_data)"	},
+	{ uoff(start_stack),	"offsetof(struct user, start_stack)"	},
+	{ uoff(signal),		"offsetof(struct user, signal)"		},
+	{ uoff(u_ar0),		"offsetof(struct user, u_ar0)"		},
+	{ uoff(magic),		"offsetof(struct user, magic)"		},
+	{ uoff(u_comm),		"offsetof(struct user, u_comm)"		},
+	{ sizeof(struct user),	"sizeof(struct user)"			},
+#elif defined(BFIN)
+	{ uoff(u_tsize),	"offsetof(struct user, u_tsize)"	},
+	{ uoff(u_dsize),	"offsetof(struct user, u_dsize)"	},
+	{ uoff(u_ssize),	"offsetof(struct user, u_ssize)"	},
+	{ uoff(start_code),	"offsetof(struct user, start_code)"	},
+	{ uoff(signal),		"offsetof(struct user, signal)"		},
+	{ uoff(u_ar0),		"offsetof(struct user, u_ar0)"		},
+	{ uoff(magic),		"offsetof(struct user, magic)"		},
+	{ uoff(u_comm),		"offsetof(struct user, u_comm)"		},
+	{ sizeof(struct user),	"sizeof(struct user)"			},
+#elif defined(OR1K)
+	/* nothing */
+#elif defined(METAG)
+	/* nothing */
+#elif defined(XTENSA)
+	/* nothing */
 #endif
 	{ 0,			NULL					},
 };
@@ -2173,9 +2514,11 @@
 	if (entering(tcp)) {
 		printxval(ptrace_cmds, tcp->u_arg[0], "PTRACE_???");
 		tprintf(", %lu, ", tcp->u_arg[1]);
+
 		addr = tcp->u_arg[2];
 		if (tcp->u_arg[0] == PTRACE_PEEKUSER
-			|| tcp->u_arg[0] == PTRACE_POKEUSER) {
+		 || tcp->u_arg[0] == PTRACE_POKEUSER
+		) {
 			for (x = struct_user_offsets; x->str; x++) {
 				if (x->val >= addr)
 					break;
@@ -2188,9 +2531,18 @@
 			}
 			else
 				tprintf("%s, ", x->str);
-		}
-		else
-			tprintf("%#lx, ", tcp->u_arg[2]);
+		} else
+#ifdef PTRACE_GETREGSET
+		if (tcp->u_arg[0] == PTRACE_GETREGSET
+		 || tcp->u_arg[0] == PTRACE_SETREGSET
+		) {
+			printxval(nt_descriptor_types, tcp->u_arg[2], "NT_???");
+			tprints(", ");
+		} else
+#endif
+			tprintf("%#lx, ", addr);
+
+
 		switch (tcp->u_arg[0]) {
 #ifndef IA64
 		case PTRACE_PEEKDATA:
@@ -2211,15 +2563,7 @@
 #endif
 #ifdef PTRACE_SETSIGINFO
 		case PTRACE_SETSIGINFO: {
-			siginfo_t si;
-			if (!tcp->u_arg[3])
-				tprints("NULL");
-			else if (syserror(tcp))
-				tprintf("%#lx", tcp->u_arg[3]);
-			else if (umove(tcp, tcp->u_arg[3], &si) < 0)
-				tprints("{???}");
-			else
-				printsiginfo(&si, verbose(tcp));
+			printsiginfo_at(tcp, tcp->u_arg[3]);
 			break;
 		}
 #endif
@@ -2228,6 +2572,13 @@
 			/* Don't print anything, do it at syscall return. */
 			break;
 #endif
+#ifdef PTRACE_GETREGSET
+		case PTRACE_GETREGSET:
+			break;
+		case PTRACE_SETREGSET:
+			tprint_iov(tcp, /*len:*/ 1, tcp->u_arg[3], /*as string:*/ 0);
+			break;
+#endif
 		default:
 			tprintf("%#lx", tcp->u_arg[3]);
 			break;
@@ -2245,18 +2596,15 @@
 #endif
 #ifdef PTRACE_GETSIGINFO
 		case PTRACE_GETSIGINFO: {
-			siginfo_t si;
-			if (!tcp->u_arg[3])
-				tprints("NULL");
-			else if (syserror(tcp))
-				tprintf("%#lx", tcp->u_arg[3]);
-			else if (umove(tcp, tcp->u_arg[3], &si) < 0)
-				tprints("{???}");
-			else
-				printsiginfo(&si, verbose(tcp));
+			printsiginfo_at(tcp, tcp->u_arg[3]);
 			break;
 		}
 #endif
+#ifdef PTRACE_GETREGSET
+		case PTRACE_GETREGSET:
+			tprint_iov(tcp, /*len:*/ 1, tcp->u_arg[3], /*as string:*/ 0);
+			break;
+#endif
 		}
 	}
 	return 0;
diff --git a/quota.c b/quota.c
index a1fd92d..780abf9 100644
--- a/quota.c
+++ b/quota.c
@@ -617,7 +617,7 @@
 		tprints("|");
 		printxval(quotatypes, type, "???QUOTA");
 		tprints(", ");
-		printstr(tcp, tcp->u_arg[1], -1);
+		printpath(tcp, tcp->u_arg[1]);
 		tprints(", ");
 		switch (cmd) {
 			case Q_V1_QUOTAON:
diff --git a/resource.c b/resource.c
index 5a51d8c..657e63d 100644
--- a/resource.c
+++ b/resource.c
@@ -173,8 +173,7 @@
 {
 	if (!addr)
 		tprints("NULL");
-	else if (!verbose(tcp) ||
-		 (exiting(tcp) && syserror(tcp)))
+	else if (!verbose(tcp) || (exiting(tcp) && syserror(tcp)))
 		tprintf("%#lx", addr);
 	else {
 # if SIZEOF_RLIM_T == 4
diff --git a/signal.c b/signal.c
index 8fcfc77..55815aa 100644
--- a/signal.c
+++ b/signal.c
@@ -60,13 +60,6 @@
 # include <asm/ptrace_offsets.h>
 #endif
 
-#if defined(SPARC64)
-# undef PTRACE_GETREGS
-# define PTRACE_GETREGS PTRACE_GETREGS64
-# undef PTRACE_SETREGS
-# define PTRACE_SETREGS PTRACE_SETREGS64
-#endif
-
 #if defined(SPARC) || defined(SPARC64) || defined(MIPS)
 typedef struct {
 	struct pt_regs		si_regs;
@@ -419,88 +412,6 @@
 # define SI_FROMUSER(sip)	((sip)->si_code <= 0)
 #endif
 
-#if __GLIBC_MINOR__ < 1 && !defined(HAVE_ANDROID_OS)
-/* Type for data associated with a signal.  */
-typedef union sigval
-{
-	int sival_int;
-	void *sival_ptr;
-} sigval_t;
-
-# define __SI_MAX_SIZE     128
-# define __SI_PAD_SIZE     ((__SI_MAX_SIZE / sizeof(int)) - 3)
-
-typedef struct siginfo
-{
-	int si_signo;               /* Signal number.  */
-	int si_errno;               /* If non-zero, an errno value associated with
-								   this signal, as defined in <errno.h>.  */
-	int si_code;                /* Signal code.  */
-
-	union
-	{
-		int _pad[__SI_PAD_SIZE];
-
-		/* kill().  */
-		struct
-		{
-			__pid_t si_pid;     /* Sending process ID.  */
-			__uid_t si_uid;     /* Real user ID of sending process.  */
-		} _kill;
-
-		/* POSIX.1b timers.  */
-		struct
-		{
-			unsigned int _timer1;
-			unsigned int _timer2;
-		} _timer;
-
-		/* POSIX.1b signals.  */
-		struct
-		{
-			__pid_t si_pid;     /* Sending process ID.  */
-			__uid_t si_uid;     /* Real user ID of sending process.  */
-			sigval_t si_sigval; /* Signal value.  */
-		} _rt;
-
-		/* SIGCHLD.  */
-		struct
-		{
-			__pid_t si_pid;     /* Which child.  */
-			int si_status;      /* Exit value or signal.  */
-			__clock_t si_utime;
-			__clock_t si_stime;
-		} _sigchld;
-
-		/* SIGILL, SIGFPE, SIGSEGV, SIGBUS.  */
-		struct
-		{
-			void *si_addr;      /* Faulting insn/memory ref.  */
-		} _sigfault;
-
-		/* SIGPOLL.  */
-		struct
-		{
-			int si_band;        /* Band event for SIGPOLL.  */
-			int si_fd;
-		} _sigpoll;
-	} _sifields;
-} siginfo_t;
-
-#define si_pid		_sifields._kill.si_pid
-#define si_uid		_sifields._kill.si_uid
-#define si_status	_sifields._sigchld.si_status
-#define si_utime	_sifields._sigchld.si_utime
-#define si_stime	_sifields._sigchld.si_stime
-#define si_value	_sifields._rt.si_sigval
-#define si_int		_sifields._rt.si_sigval.sival_int
-#define si_ptr		_sifields._rt.si_sigval.sival_ptr
-#define si_addr		_sifields._sigfault.si_addr
-#define si_band		_sifields._sigpoll.si_band
-#define si_fd		_sifields._sigpoll.si_fd
-
-#endif
-
 static const struct xlat siginfo_codes[] = {
 #ifdef SI_KERNEL
 	{ SI_KERNEL,	"SI_KERNEL"	},
@@ -760,6 +671,25 @@
 	tprints("}");
 }
 
+void
+printsiginfo_at(struct tcb *tcp, long addr)
+{
+	siginfo_t si;
+	if (!addr) {
+		tprints("NULL");
+		return;
+	}
+	if (syserror(tcp)) {
+		tprintf("%#lx", addr);
+		return;
+	}
+	if (umove(tcp, addr, &si) < 0) {
+		tprints("{???}");
+		return;
+	}
+	printsiginfo(&si, verbose(tcp));
+}
+
 int
 sys_sigsetmask(struct tcb *tcp)
 {
@@ -781,16 +711,12 @@
 #ifdef HAVE_SIGACTION
 
 struct old_sigaction {
-	__sighandler_t __sa_handler;
+	/* sa_handler may be a libc #define, need to use other name: */
+	void (*__sa_handler)(int);
 	unsigned long sa_mask;
 	unsigned long sa_flags;
 	void (*sa_restorer)(void);
 };
-#define SA_HANDLER __sa_handler
-
-#ifndef SA_HANDLER
-#define SA_HANDLER sa_handler
-#endif
 
 int
 sys_sigaction(struct tcb *tcp)
@@ -815,19 +741,19 @@
 		/* Architectures using function pointers, like
 		 * hppa, may need to manipulate the function pointer
 		 * to compute the result of a comparison. However,
-		 * the SA_HANDLER function pointer exists only in
+		 * the __sa_handler function pointer exists only in
 		 * the address space of the traced process, and can't
 		 * be manipulated by strace. In order to prevent the
 		 * compiler from generating code to manipulate
-		 * SA_HANDLER we cast the function pointers to long. */
-		if ((long)sa.SA_HANDLER == (long)SIG_ERR)
+		 * __sa_handler we cast the function pointers to long. */
+		if ((long)sa.__sa_handler == (long)SIG_ERR)
 			tprints("{SIG_ERR, ");
-		else if ((long)sa.SA_HANDLER == (long)SIG_DFL)
+		else if ((long)sa.__sa_handler == (long)SIG_DFL)
 			tprints("{SIG_DFL, ");
-		else if ((long)sa.SA_HANDLER == (long)SIG_IGN)
+		else if ((long)sa.__sa_handler == (long)SIG_IGN)
 			tprints("{SIG_IGN, ");
 		else
-			tprintf("{%#lx, ", (long) sa.SA_HANDLER);
+			tprintf("{%#lx, ", (long) sa.__sa_handler);
 		long_to_sigset(sa.sa_mask, &sigset);
 		printsigmask(&sigset, 0);
 		tprints(", ");
@@ -889,17 +815,13 @@
 {
 #if defined(ARM)
 	if (entering(tcp)) {
-		struct pt_regs regs;
 		struct sigcontext_struct sc;
 		sigset_t sigm;
-		if (ptrace(PTRACE_GETREGS, tcp->pid, NULL, (void *)&regs) == -1)
-			return 0;
-		if (umove(tcp, regs.ARM_sp, &sc) < 0)
+		if (umove(tcp, arm_regs.ARM_sp, &sc) < 0)
 			return 0;
 		long_to_sigset(sc.oldmask, &sigm);
 		tprints(sprintsigmask(") (mask ", &sigm, 0));
 	}
-	return 0;
 #elif defined(S390) || defined(S390X)
 	if (entering(tcp)) {
 		long usp;
@@ -910,7 +832,6 @@
 			return 0;
 		tprints(sprintsigmask(") (mask ", (sigset_t *)&sc.oldmask[0], 0));
 	}
-	return 0;
 #elif defined(I386)
 	if (entering(tcp)) {
 		struct sigcontext_struct sc;
@@ -925,7 +846,6 @@
 		long_to_sigset(sc.oldmask, &sigm);
 		tprints(sprintsigmask(") (mask ", &sigm, 0));
 	}
-	return 0;
 #elif defined(IA64)
 	if (entering(tcp)) {
 		struct sigcontext sc;
@@ -941,7 +861,6 @@
 		memcpy(&sigm, &sc.sc_mask, NSIG / 8);
 		tprints(sprintsigmask(") (mask ", &sigm, 0));
 	}
-	return 0;
 #elif defined(POWERPC)
 	if (entering(tcp)) {
 		long esp;
@@ -963,7 +882,6 @@
 		long_to_sigset(sc.oldmask, &sigm);
 		tprints(sprintsigmask(") (mask ", &sigm, 0));
 	}
-	return 0;
 #elif defined(M68K)
 	if (entering(tcp)) {
 		long usp;
@@ -976,7 +894,6 @@
 		long_to_sigset(sc.sc_mask, &sigm);
 		tprints(sprintsigmask(") (mask ", &sigm, 0));
 	}
-	return 0;
 #elif defined(ALPHA)
 	if (entering(tcp)) {
 		long fp;
@@ -989,26 +906,19 @@
 		long_to_sigset(sc.sc_mask, &sigm);
 		tprints(sprintsigmask(") (mask ", &sigm, 0));
 	}
-	return 0;
 #elif defined(SPARC) || defined(SPARC64)
 	if (entering(tcp)) {
 		long i1;
-		struct pt_regs regs;
 		m_siginfo_t si;
 		sigset_t sigm;
-		if (ptrace(PTRACE_GETREGS, tcp->pid, (char *)&regs, 0) < 0) {
-			perror("sigreturn: PTRACE_GETREGS");
-			return 0;
-		}
-		i1 = regs.u_regs[U_REG_O1];
+		i1 = sparc_regs.u_regs[U_REG_O1];
 		if (umove(tcp, i1, &si) < 0) {
-			perror("sigreturn: umove");
+			perror_msg("sigreturn: umove");
 			return 0;
 		}
 		long_to_sigset(si.si_mask, &sigm);
 		tprints(sprintsigmask(") (mask ", &sigm, 0));
 	}
-	return 0;
 #elif defined(LINUX_MIPSN32) || defined(LINUX_MIPSN64)
 	/* This decodes rt_sigreturn.  The 64-bit ABIs do not have
 	   sigreturn.  */
@@ -1025,7 +935,6 @@
 		long_to_sigset(*(long *) &uc.uc_sigmask, &sigm);
 		tprints(sprintsigmask(") (mask ", &sigm, 0));
 	}
-	return 0;
 #elif defined(MIPS)
 	if (entering(tcp)) {
 		long sp;
@@ -1033,7 +942,7 @@
 		m_siginfo_t si;
 		sigset_t sigm;
 		if (ptrace(PTRACE_GETREGS, tcp->pid, (char *)&regs, 0) < 0) {
-			perror("sigreturn: PTRACE_GETREGS");
+			perror_msg("sigreturn: PTRACE_GETREGS");
 			return 0;
 		}
 		sp = regs.regs[29];
@@ -1042,14 +951,13 @@
 		long_to_sigset(si.si_mask, &sigm);
 		tprints(sprintsigmask(") (mask ", &sigm, 0));
 	}
-	return 0;
 #elif defined(CRISV10) || defined(CRISV32)
 	if (entering(tcp)) {
 		struct sigcontext sc;
 		long regs[PT_MAX+1];
 		sigset_t sigm;
 		if (ptrace(PTRACE_GETREGS, tcp->pid, NULL, (long)regs) < 0) {
-			perror("sigreturn: PTRACE_GETREGS");
+			perror_msg("sigreturn: PTRACE_GETREGS");
 			return 0;
 		}
 		if (umove(tcp, regs[PT_USP], &sc) < 0)
@@ -1057,24 +965,19 @@
 		long_to_sigset(sc.oldmask, &sigm);
 		tprints(sprintsigmask(") (mask ", &sigm, 0));
 	}
-	return 0;
 #elif defined(TILE)
 	if (entering(tcp)) {
 		struct ucontext uc;
-		long sp;
 		sigset_t sigm;
 
 		/* offset of ucontext in the kernel's sigframe structure */
-#		define SIGFRAME_UC_OFFSET C_ABI_SAVE_AREA_SIZE + sizeof(struct siginfo)
-		if (upeek(tcp, PTREGS_OFFSET_SP, &sp) < 0)
-			return 0;
-		if (umove(tcp, sp + SIGFRAME_UC_OFFSET, &uc) < 0)
+#		define SIGFRAME_UC_OFFSET C_ABI_SAVE_AREA_SIZE + sizeof(siginfo_t)
+		if (umove(tcp, tile_regs.sp + SIGFRAME_UC_OFFSET, &uc) < 0)
 			return 0;
 		sigemptyset(&sigm);
 		memcpy(&sigm, &uc.uc_sigmask, NSIG / 8);
 		tprints(sprintsigmask(") (mask ", &sigm, 0));
 	}
-	return 0;
 #elif defined(MICROBLAZE)
 	/* TODO: Verify that this is correct...  */
 	if (entering(tcp)) {
@@ -1089,12 +992,15 @@
 		long_to_sigset(sc.oldmask, &sigm);
 		tprints(sprintsigmask(") (mask ", &sigm, 0));
 	}
-	return 0;
+#elif defined(X86_64)
+	/* no need to remind */
+#elif defined(XTENSA)
+	/* Xtensa only has rt_sys_sigreturn */
 #else
-#warning No sys_sigreturn() for this architecture
-#warning         (no problem, just a reminder :-)
-	return 0;
+# warning No sys_sigreturn() for this architecture
+# warning         (no problem, just a reminder :-)
 #endif
+	return 0;
 }
 
 int
@@ -1122,14 +1028,6 @@
 #if !defined SS_ONSTACK
 #define SS_ONSTACK      1
 #define SS_DISABLE      2
-#if __GLIBC_MINOR__ == 0
-typedef struct
-{
-	__ptr_t ss_sp;
-	int ss_flags;
-	size_t ss_size;
-} stack_t;
-#endif
 #endif
 
 static const struct xlat sigaltstack_flags[] = {
@@ -1138,33 +1036,31 @@
 	{ 0,		NULL		},
 };
 
-static int
+static void
 print_stack_t(struct tcb *tcp, unsigned long addr)
 {
 	stack_t ss;
-	if (umove(tcp, addr, &ss) < 0)
-		return -1;
-	tprintf("{ss_sp=%#lx, ss_flags=", (unsigned long) ss.ss_sp);
-	printflags(sigaltstack_flags, ss.ss_flags, "SS_???");
-	tprintf(", ss_size=%lu}", (unsigned long) ss.ss_size);
-	return 0;
+
+	if (!addr) {
+		tprints("NULL");
+	} else if (umove(tcp, addr, &ss) < 0) {
+		tprintf("%#lx", addr);
+	} else {
+		tprintf("{ss_sp=%#lx, ss_flags=", (unsigned long) ss.ss_sp);
+		printflags(sigaltstack_flags, ss.ss_flags, "SS_???");
+		tprintf(", ss_size=%lu}", (unsigned long) ss.ss_size);
+	}
 }
 
 int
 sys_sigaltstack(struct tcb *tcp)
 {
 	if (entering(tcp)) {
-		if (tcp->u_arg[0] == 0)
-			tprints("NULL");
-		else if (print_stack_t(tcp, tcp->u_arg[0]) < 0)
-			return -1;
+		print_stack_t(tcp, tcp->u_arg[0]);
 	}
 	else {
 		tprints(", ");
-		if (tcp->u_arg[1] == 0)
-			tprints("NULL");
-		else if (print_stack_t(tcp, tcp->u_arg[1]) < 0)
-			return -1;
+		print_stack_t(tcp, tcp->u_arg[1]);
 	}
 	return 0;
 }
@@ -1223,13 +1119,10 @@
 sys_kill(struct tcb *tcp)
 {
 	if (entering(tcp)) {
-		long pid = tcp->u_arg[0];
-#if SUPPORTED_PERSONALITIES > 1
-		/* Sign-extend a 32-bit value when that's what it is. */
-		if (current_wordsize < sizeof pid)
-			pid = (long) (int) pid;
-#endif
-		tprintf("%ld, %s", pid, signame(tcp->u_arg[1]));
+		tprintf("%ld, %s",
+			widen_to_long(tcp->u_arg[0]),
+			signame(tcp->u_arg[1])
+		);
 	}
 	return 0;
 }
@@ -1239,7 +1132,10 @@
 {
 	if (entering(tcp)) {
 		tprintf("%ld, %ld, %s",
-			tcp->u_arg[0], tcp->u_arg[1], signame(tcp->u_arg[2]));
+			widen_to_long(tcp->u_arg[0]),
+			widen_to_long(tcp->u_arg[1]),
+			signame(tcp->u_arg[2])
+		);
 	}
 	return 0;
 }
@@ -1295,9 +1191,10 @@
 /* Structure describing the action to be taken when a signal arrives.  */
 struct new_sigaction
 {
-	__sighandler_t __sa_handler;
+	/* sa_handler may be a libc #define, need to use other name: */
+	void (*__sa_handler)(int);
 	unsigned long sa_flags;
-	void (*sa_restorer) (void);
+	void (*sa_restorer)(void);
 	/* Kernel treats sa_mask as an array of longs. */
 	unsigned long sa_mask[NSIG / sizeof(long) ? NSIG / sizeof(long) : 1];
 };
@@ -1333,8 +1230,7 @@
 		tprintf("%#lx", addr);
 		goto after_sa;
 	}
-#if SUPPORTED_PERSONALITIES > 1
-#if SIZEOF_LONG > 4
+#if SUPPORTED_PERSONALITIES > 1 && SIZEOF_LONG > 4
 	if (current_wordsize != sizeof(sa.sa_flags) && current_wordsize == 4) {
 		struct new_sigaction32 sa32;
 		r = umove(tcp, addr, &sa32);
@@ -1355,7 +1251,6 @@
 		}
 	} else
 #endif
-#endif
 	{
 		r = umove(tcp, addr, &sa);
 	}
@@ -1366,11 +1261,11 @@
 	/* Architectures using function pointers, like
 	 * hppa, may need to manipulate the function pointer
 	 * to compute the result of a comparison. However,
-	 * the SA_HANDLER function pointer exists only in
+	 * the __sa_handler function pointer exists only in
 	 * the address space of the traced process, and can't
 	 * be manipulated by strace. In order to prevent the
 	 * compiler from generating code to manipulate
-	 * SA_HANDLER we cast the function pointers to long. */
+	 * __sa_handler we cast the function pointers to long. */
 	if ((long)sa.__sa_handler == (long)SIG_ERR)
 		tprints("{SIG_ERR, ");
 	else if ((long)sa.__sa_handler == (long)SIG_DFL)
@@ -1385,7 +1280,7 @@
 	 * therefore tcp->u_arg[3(4)] _must_ be NSIG / 8 here,
 	 * and we always use smaller memcpy. */
 	sigemptyset(&sigset);
-#ifdef LINUXSPARC
+#if defined(SPARC) || defined(SPARC64)
 	if (tcp->u_arg[4] <= sizeof(sigset))
 		memcpy(&sigset, &sa.sa_mask, tcp->u_arg[4]);
 #else
@@ -1407,7 +1302,7 @@
 	if (entering(tcp))
 		tprints(", ");
 	else
-#ifdef LINUXSPARC
+#if defined(SPARC) || defined(SPARC64)
 		tprintf(", %#lx, %lu", tcp->u_arg[3], tcp->u_arg[4]);
 #elif defined(ALPHA)
 		tprintf(", %lu, %#lx", tcp->u_arg[3], tcp->u_arg[4]);
@@ -1450,14 +1345,9 @@
 static void
 print_sigqueueinfo(struct tcb *tcp, int sig, unsigned long uinfo)
 {
-	siginfo_t si;
-
 	printsignal(sig);
 	tprints(", ");
-	if (umove(tcp, uinfo, &si) < 0)
-		tprintf("%#lx", uinfo);
-	else
-		printsiginfo(&si, verbose(tcp));
+	printsiginfo_at(tcp, uinfo);
 }
 
 int
@@ -1499,17 +1389,8 @@
 	}
 	else if (tcp->u_arg[1] != 0) {
 		/* syscall exit, and u_arg[1] wasn't NULL */
-		if (syserror(tcp))
-			tprintf("%#lx, ", tcp->u_arg[1]);
-		else {
-			siginfo_t si;
-			if (umove(tcp, tcp->u_arg[1], &si) < 0)
-				tprintf("%#lx, ", tcp->u_arg[1]);
-			else {
-				printsiginfo(&si, verbose(tcp));
-				tprints(", ");
-			}
-		}
+		printsiginfo_at(tcp, tcp->u_arg[1]);
+		tprints(", ");
 	}
 	else {
 		/* syscall exit, and u_arg[1] was NULL */
diff --git a/strace.1 b/strace.1
index faf4d45..5f287d7 100644
--- a/strace.1
+++ b/strace.1
@@ -41,7 +41,9 @@
 .B strace
 [\fB-CdffhiqrtttTvVxxy\fR]
 [\fB-I\fIn\fR]
-[\fB-e\fIexpr\fR]... [\fB-a\fIcolumn\fR]
+[\fB-b\fIexecve\fR]
+[\fB-e\fIexpr\fR]...
+[\fB-a\fIcolumn\fR]
 [\fB-o\fIfile\fR]
 [\fB-s\fIstrsize\fR]
 [\fB-P\fIpath\fR]... \fB-p\fIpid\fR... /
@@ -52,7 +54,9 @@
 .B strace
 \fB-c\fR[\fBdf\fR]
 [\fB-I\fIn\fR]
-[\fB-e\fIexpr\fR]... [\fB-O\fIoverhead\fR]
+[\fB-b\fIexecve\fR]
+[\fB-e\fIexpr\fR]...
+[\fB-O\fIoverhead\fR]
 [\fB-S\fIsortby\fR] \fB-p\fIpid\fR... /
 [\fB-D\fR]
 [\fB-E\fIvar\fR[=\fIval\fR]]... [\fB-u\fIusername\fR]
@@ -226,24 +230,16 @@
 .B \-f
 Trace child processes as they are created by currently traced
 processes as a result of the
-.BR fork (2)
-system call.
-.IP
-On non-Linux platforms the new process is
-attached to as soon as its pid is known (through the return value of
-.BR fork (2)
-in the parent process). This means that such children may run
-uncontrolled for a while (especially in the case of a
-.BR vfork (2)),
-until the parent is scheduled again to complete its
-.RB ( v ) fork (2)
-call.  On Linux the child is traced from its first instruction with no delay.
-If the parent process decides to
-.BR wait (2)
-for a child that is currently
-being traced, it is suspended until an appropriate child process either
-terminates or incurs a signal that would cause it to terminate (as
-determined from the child's current signal disposition).
+.BR fork (2),
+.BR vfork (2)
+and
+.BR clone (2)
+system calls. Note that
+.B \-p
+.I PID
+.B \-f
+will attach all threads of process PID if it is multi-threaded,
+not only thread with thread_id = PID.
 .TP
 .B \-ff
 If the
@@ -271,6 +267,9 @@
 automatically when output is redirected to a file and the command
 is run directly instead of attaching.
 .TP
+.B \-qq
+If given twice, suppress messages about process exit status.
+.TP
 .B \-r
 Print a relative timestamp upon entry to each system call.  This
 records the time difference between the beginning of successive
@@ -313,6 +312,14 @@
 .BI "\-a " column
 Align return values in a specific column (default column 40).
 .TP
+.BI "\-b " syscall
+If specified syscall is reached, detach from traced process.
+Currently, only
+.I execve
+syscall is supported. This option is useful if you want to trace
+multi-threaded process and therefore require -f, but don't want
+to trace its (potentially very complex) children.
+.TP
 .BI "\-e " expr
 A qualifying expression which modifies which events to trace
 or how to trace them.  The format of the expression is:
@@ -395,6 +402,9 @@
 .BR "\-e\ trace" = desc
 Trace all file descriptor related system calls.
 .TP
+.BR "\-e\ trace" = memory
+Trace all memory mapping related system calls.
+.TP
 \fB\-e\ abbrev\fR=\fIset\fR
 Abbreviate the output from printing each member of large structures.
 The default is
@@ -510,7 +520,7 @@
 .I path.
 Multiple
 .B \-P
-options can be used to specify up to 256 paths.
+options can be used to specify several paths.
 .TP
 .BI "\-s " strsize
 Specify the maximum string size to print (the default is 32).  Note
diff --git a/strace.c b/strace.c
index 857136d..6eab600 100644
--- a/strace.c
+++ b/strace.c
@@ -39,6 +39,9 @@
 #include <grp.h>
 #include <dirent.h>
 #include <sys/utsname.h>
+#ifdef HAVE_PRCTL
+# include <sys/prctl.h>
+#endif
 #if defined(IA64)
 # include <asm/ptrace_offsets.h>
 #endif
@@ -54,20 +57,27 @@
    /* kill() may choose arbitrarily the target task of the process group
       while we later wait on a that specific TID.  PID process waits become
       TID task specific waits for a process under ptrace(2).  */
-# warning "Neither tkill(2) nor tgkill(2) available, risk of strace hangs!"
+# warning "tkill(2) not available, risk of strace hangs!"
 # define my_tkill(tid, sig) kill((tid), (sig))
 #endif
 
-#undef KERNEL_VERSION
-#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
+/* Glue for systems without a MMU that cannot provide fork() */
+#if !defined(HAVE_FORK)
+# undef NOMMU_SYSTEM
+# define NOMMU_SYSTEM 1
+#endif
+#if NOMMU_SYSTEM
+# define fork() vfork()
+#endif
 
 cflag_t cflag = CFLAG_NONE;
 unsigned int followfork = 0;
 unsigned int ptrace_setoptions = 0;
 unsigned int xflag = 0;
+bool need_fork_exec_workarounds = 0;
 bool debug_flag = 0;
 bool Tflag = 0;
-bool qflag = 0;
+unsigned int qflag = 0;
 /* Which WSTOPSIG(status) value marks syscall traps? */
 static unsigned int syscall_trap_sig = SIGTRAP;
 static unsigned int tflag = 0;
@@ -102,7 +112,7 @@
  */
 static bool daemonized_tracer = 0;
 
-#ifdef USE_SEIZE
+#if USE_SEIZE
 static int post_attach_sigstop = TCB_IGNORE_ONE_SIGSTOP;
 # define use_seize (post_attach_sigstop == 0)
 #else
@@ -116,11 +126,11 @@
 /* Show path associated with fd arguments */
 bool show_fd_path = 0;
 
-/* are we filtering traces based on paths? */
-bool tracing_paths = 0;
-
 static bool detach_on_execve = 0;
-static bool skip_startup_execve = 0;
+/* Are we "strace PROG" and need to skip detach on first execve? */
+static bool skip_one_b_execve = 0;
+/* Are we "strace PROG" and need to hide everything until execve? */
+bool hide_log_until_execve = 0;
 
 static int exit_code = 0;
 static int strace_child = 0;
@@ -145,7 +155,7 @@
 static unsigned int nprocs, tcbtabsize;
 static const char *progname;
 
-static unsigned os_release; /* generated from uname()'s u.release */
+unsigned os_release; /* generated from uname()'s u.release */
 
 static int detach(struct tcb *tcp);
 static int trace(void);
@@ -194,7 +204,6 @@
 -d -- enable debug output to stderr\n\
 -D -- run tracer process as a detached grandchild, not as parent\n\
 -f -- follow forks, -ff -- with output into separate files\n\
--F -- attempt to follow vforks (deprecated, use -f)\n\
 -i -- print instruction pointer at time of syscall\n\
 -q -- suppress messages about attaching, detaching, etc.\n\
 -r -- print relative timestamp, -t -- absolute timestamp, -tt -- with usecs\n\
@@ -204,8 +213,9 @@
 -y -- print paths associated with file descriptor arguments\n\
 -h -- print help message, -V -- print version\n\
 -a column -- alignment COLUMN for printing syscall results (default %d)\n\
+-b execve -- detach on this syscall\n\
 -e expr -- a qualifying expression: option=[!]all or option=[!]val1[,val2]...\n\
-   options: trace, abbrev, verbose, raw, signal, read, or write\n\
+   options: trace, abbrev, verbose, raw, signal, read, write\n\
 -I interruptible --\n\
    1: no signals are blocked\n\
    2: fatal signals are blocked while decoding syscall (default)\n\
@@ -222,12 +232,12 @@
 -E var -- remove var from the environment for command\n\
 -P path -- trace accesses to path\n\
 "
+/* ancient, no one should use it
+-F -- attempt to follow vforks (deprecated, use -f)\n\
+ */
 /* this is broken, so don't document it
 -z -- print only succeeding syscalls\n\
  */
-/* experimental, don't document it yet (option letter may change in the future!)
--b -- detach on successful execve\n\
- */
 , DEFAULT_ACOLUMN, DEFAULT_STRLEN, DEFAULT_SORTBY);
 	exit(exitval);
 }
@@ -320,22 +330,14 @@
 	error_msg_and_die("Invalid -%c argument: '%s'", opt, arg);
 }
 
-/* Glue for systems without a MMU that cannot provide fork() */
-#ifdef HAVE_FORK
-# define strace_vforked 0
-#else
-# define strace_vforked 1
-# define fork()         vfork()
-#endif
-
-#ifdef USE_SEIZE
+#if USE_SEIZE
 static int
 ptrace_attach_or_seize(int pid)
 {
 	int r;
 	if (!use_seize)
 		return ptrace(PTRACE_ATTACH, pid, 0, 0);
-	r = ptrace(PTRACE_SEIZE, pid, 0, PTRACE_SEIZE_DEVEL);
+	r = ptrace(PTRACE_SEIZE, pid, 0, 0);
 	if (r)
 		return r;
 	r = ptrace(PTRACE_INTERRUPT, pid, 0, 0);
@@ -439,8 +441,20 @@
 
 #if _LFS64_LARGEFILE
 # define fopen_for_output fopen64
+# define struct_stat struct stat64
+# define stat_file stat64
+# define struct_dirent struct dirent64
+# define read_dir readdir64
+# define struct_rlimit struct rlimit64
+# define set_rlimit setrlimit64
 #else
 # define fopen_for_output fopen
+# define struct_stat struct stat
+# define stat_file stat
+# define struct_dirent struct dirent
+# define read_dir readdir
+# define struct_rlimit struct rlimit
+# define set_rlimit setrlimit
 #endif
 
 static FILE *
@@ -515,8 +529,7 @@
 		int n = strace_vfprintf(current_tcp->outf, fmt, args);
 		if (n < 0) {
 			if (current_tcp->outf != stderr)
-				perror(outfname == NULL
-				       ? "<writing to pipe>" : outfname);
+				perror_msg("%s", outfname);
 		} else
 			current_tcp->curcol += n;
 	}
@@ -533,7 +546,7 @@
 			return;
 		}
 		if (current_tcp->outf != stderr)
-			perror(!outfname ? "<writing to pipe>" : outfname);
+			perror_msg("%s", outfname);
 	}
 }
 
@@ -731,8 +744,8 @@
 	 * to make a clean break of things.
 	 */
 #if defined(SPARC)
-#undef PTRACE_DETACH
-#define PTRACE_DETACH PTRACE_SUNDETACH
+# undef PTRACE_DETACH
+# define PTRACE_DETACH PTRACE_SUNDETACH
 #endif
 
 	error = 0;
@@ -750,15 +763,15 @@
 		}
 		else if (errno != ESRCH) {
 			/* Shouldn't happen. */
-			perror("detach: ptrace(PTRACE_DETACH, ...)");
+			perror_msg("detach: ptrace(PTRACE_DETACH, ...)");
 		}
 		else if (my_tkill(tcp->pid, 0) < 0) {
 			if (errno != ESRCH)
-				perror("detach: checking sanity");
+				perror_msg("detach: checking sanity");
 		}
 		else if (!sigstop_expected && my_tkill(tcp->pid, SIGSTOP) < 0) {
 			if (errno != ESRCH)
-				perror("detach: stopping child");
+				perror_msg("detach: stopping child");
 		}
 		else
 			sigstop_expected = 1;
@@ -771,21 +784,21 @@
 				if (errno == ECHILD) /* Already gone.  */
 					break;
 				if (errno != EINVAL) {
-					perror("detach: waiting");
+					perror_msg("detach: waiting");
 					break;
 				}
 #endif /* __WALL */
 				/* No __WALL here.  */
 				if (waitpid(tcp->pid, &status, 0) < 0) {
 					if (errno != ECHILD) {
-						perror("detach: waiting");
+						perror_msg("detach: waiting");
 						break;
 					}
 #ifdef __WCLONE
 					/* If no processes, try clones.  */
 					if (waitpid(tcp->pid, &status, __WCLONE) < 0) {
 						if (errno != ECHILD)
-							perror("detach: waiting");
+							perror_msg("detach: waiting");
 						break;
 					}
 #endif /* __WCLONE */
@@ -898,9 +911,9 @@
 			dir = opendir(procdir);
 			if (dir != NULL) {
 				unsigned int ntid = 0, nerr = 0;
-				struct dirent *de;
+				struct_dirent *de;
 
-				while ((de = readdir(dir)) != NULL) {
+				while ((de = read_dir(dir)) != NULL) {
 					struct tcb *cur_tcp;
 					int tid;
 
@@ -934,7 +947,7 @@
 				}
 				ntid -= nerr;
 				if (ntid == 0) {
-					perror("attach: ptrace(PTRACE_ATTACH, ...)");
+					perror_msg("attach: ptrace(PTRACE_ATTACH, ...)");
 					droptcb(tcp);
 					continue;
 				}
@@ -955,7 +968,7 @@
 			} /* if (opendir worked) */
 		} /* if (-f) */
 		if (ptrace_attach_or_seize(tcp->pid) < 0) {
-			perror("attach: ptrace(PTRACE_ATTACH, ...)");
+			perror_msg("attach: ptrace(PTRACE_ATTACH, ...)");
 			droptcb(tcp);
 			continue;
 		}
@@ -983,13 +996,79 @@
 		sigprocmask(SIG_SETMASK, &empty_set, NULL);
 }
 
+/* Stack-o-phobic exec helper, in the hope to work around
+ * NOMMU + "daemonized tracer" difficulty.
+ */
+struct exec_params {
+	int fd_to_close;
+	uid_t run_euid;
+	gid_t run_egid;
+	char **argv;
+	char *pathname;
+};
+static struct exec_params params_for_tracee;
+static void __attribute__ ((noinline, noreturn))
+exec_or_die(void)
+{
+	struct exec_params *params = &params_for_tracee;
+
+	if (params->fd_to_close >= 0)
+		close(params->fd_to_close);
+	if (!daemonized_tracer && !use_seize) {
+		if (ptrace(PTRACE_TRACEME, 0L, 0L, 0L) < 0) {
+			perror_msg_and_die("ptrace(PTRACE_TRACEME, ...)");
+		}
+	}
+
+	if (username != NULL) {
+		/*
+		 * It is important to set groups before we
+		 * lose privileges on setuid.
+		 */
+		if (initgroups(username, run_gid) < 0) {
+			perror_msg_and_die("initgroups");
+		}
+		if (setregid(run_gid, params->run_egid) < 0) {
+			perror_msg_and_die("setregid");
+		}
+		if (setreuid(run_uid, params->run_euid) < 0) {
+			perror_msg_and_die("setreuid");
+		}
+	}
+	else if (geteuid() != 0)
+		if (setreuid(run_uid, run_uid) < 0) {
+			perror_msg_and_die("setreuid");
+		}
+
+	if (!daemonized_tracer) {
+		/*
+		 * Induce a ptrace stop. Tracer (our parent)
+		 * will resume us with PTRACE_SYSCALL and display
+		 * the immediately following execve syscall.
+		 * Can't do this on NOMMU systems, we are after
+		 * vfork: parent is blocked, stopping would deadlock.
+		 */
+		if (!NOMMU_SYSTEM)
+			kill(getpid(), SIGSTOP);
+	} else {
+		alarm(3);
+		/* we depend on SIGCHLD set to SIG_DFL by init code */
+		/* if it happens to be SIG_IGN'ed, wait won't block */
+		wait(NULL);
+		alarm(0);
+	}
+
+	execv(params->pathname, params->argv);
+	perror_msg_and_die("exec");
+}
+
 static void
 startup_child(char **argv)
 {
-	struct stat statbuf;
+	struct_stat statbuf;
 	const char *filename;
 	char pathname[MAXPATHLEN];
-	int pid = 0;
+	int pid;
 	struct tcb *tcp;
 
 	filename = argv[0];
@@ -1006,7 +1085,7 @@
 	 * first regardless of the path but doing that gives
 	 * security geeks a panic attack.
 	 */
-	else if (stat(filename, &statbuf) == 0)
+	else if (stat_file(filename, &statbuf) == 0)
 		strcpy(pathname, filename);
 #endif /* USE_DEBUGGING_EXEC */
 	else {
@@ -1035,7 +1114,7 @@
 			if (len && pathname[len - 1] != '/')
 				pathname[len++] = '/';
 			strcpy(pathname + len, filename);
-			if (stat(pathname, &statbuf) == 0 &&
+			if (stat_file(pathname, &statbuf) == 0 &&
 			    /* Accept only regular files
 			       with some execute bits set.
 			       XXX not perfect, might still fail */
@@ -1044,70 +1123,37 @@
 				break;
 		}
 	}
-	if (stat(pathname, &statbuf) < 0) {
+	if (stat_file(pathname, &statbuf) < 0) {
 		perror_msg_and_die("Can't stat '%s'", filename);
 	}
+
+	params_for_tracee.fd_to_close = (shared_log != stderr) ? fileno(shared_log) : -1;
+	params_for_tracee.run_euid = (statbuf.st_mode & S_ISUID) ? statbuf.st_uid : run_uid;
+	params_for_tracee.run_egid = (statbuf.st_mode & S_ISGID) ? statbuf.st_gid : run_gid;
+	params_for_tracee.argv = argv;
+	/*
+	 * On NOMMU, can be safely freed only after execve in tracee.
+	 * It's hard to know when that happens, so we just leak it.
+	 */
+	params_for_tracee.pathname = NOMMU_SYSTEM ? strdup(pathname) : pathname;
+
+#if defined HAVE_PRCTL && defined PR_SET_PTRACER && defined PR_SET_PTRACER_ANY
+	if (daemonized_tracer)
+		prctl(PR_SET_PTRACER, PR_SET_PTRACER_ANY);
+#endif
+
 	strace_child = pid = fork();
 	if (pid < 0) {
 		perror_msg_and_die("fork");
 	}
-	if ((pid != 0 && daemonized_tracer) /* -D: parent to become a traced process */
-	 || (pid == 0 && !daemonized_tracer) /* not -D: child to become a traced process */
+	if ((pid != 0 && daemonized_tracer)
+	 || (pid == 0 && !daemonized_tracer)
 	) {
-		pid = getpid();
-		if (shared_log != stderr)
-			close(fileno(shared_log));
-		if (!daemonized_tracer && !use_seize) {
-			if (ptrace(PTRACE_TRACEME, 0L, 0L, 0L) < 0) {
-				perror_msg_and_die("ptrace(PTRACE_TRACEME, ...)");
-			}
-		}
-
-		if (username != NULL) {
-			uid_t run_euid = run_uid;
-			gid_t run_egid = run_gid;
-
-			if (statbuf.st_mode & S_ISUID)
-				run_euid = statbuf.st_uid;
-			if (statbuf.st_mode & S_ISGID)
-				run_egid = statbuf.st_gid;
-			/*
-			 * It is important to set groups before we
-			 * lose privileges on setuid.
-			 */
-			if (initgroups(username, run_gid) < 0) {
-				perror_msg_and_die("initgroups");
-			}
-			if (setregid(run_gid, run_egid) < 0) {
-				perror_msg_and_die("setregid");
-			}
-			if (setreuid(run_uid, run_euid) < 0) {
-				perror_msg_and_die("setreuid");
-			}
-		}
-		else if (geteuid() != 0)
-			setreuid(run_uid, run_uid);
-
-		if (!daemonized_tracer) {
-			/*
-			 * Induce a ptrace stop. Tracer (our parent)
-			 * will resume us with PTRACE_SYSCALL and display
-			 * the immediately following execve syscall.
-			 * Can't do this on NOMMU systems, we are after
-			 * vfork: parent is blocked, stopping would deadlock.
-			 */
-			if (!strace_vforked)
-				kill(pid, SIGSTOP);
-		} else {
-			alarm(3);
-			/* we depend on SIGCHLD set to SIG_DFL by init code */
-			/* if it happens to be SIG_IGN'ed, wait won't block */
-			wait(NULL);
-			alarm(0);
-		}
-
-		execv(pathname, argv);
-		perror_msg_and_die("exec");
+		/* We are to become the tracee. Two cases:
+		 * -D: we are parent
+		 * not -D: we are child
+		 */
+		exec_or_die();
 	}
 
 	/* We are the tracer */
@@ -1116,7 +1162,7 @@
 		if (!use_seize) {
 			/* child did PTRACE_TRACEME, nothing to do in parent */
 		} else {
-			if (!strace_vforked) {
+			if (!NOMMU_SYSTEM) {
 				/* Wait until child stopped itself */
 				int status;
 				while (waitpid(pid, &status, WSTOPPED) < 0) {
@@ -1129,7 +1175,7 @@
 					perror_msg_and_die("Unexpected wait status %x", status);
 				}
 			}
-			/* Else: vforked case, we have no way to sync.
+			/* Else: NOMMU case, we have no way to sync.
 			 * Just attach to it as soon as possible.
 			 * This means that we may miss a few first syscalls...
 			 */
@@ -1138,24 +1184,45 @@
 				kill_save_errno(pid, SIGKILL);
 				perror_msg_and_die("Can't attach to %d", pid);
 			}
-			if (!strace_vforked)
+			if (!NOMMU_SYSTEM)
 				kill(pid, SIGCONT);
 		}
 		tcp = alloctcb(pid);
-		if (!strace_vforked)
+		if (!NOMMU_SYSTEM)
 			tcp->flags |= TCB_ATTACHED | TCB_STRACE_CHILD | TCB_STARTUP | post_attach_sigstop;
 		else
 			tcp->flags |= TCB_ATTACHED | TCB_STRACE_CHILD | TCB_STARTUP;
 		newoutf(tcp);
 	}
 	else {
-		/* With -D, *we* are child here, IOW: different pid. Fetch it: */
+		/* With -D, we are *child* here, IOW: different pid. Fetch it: */
 		strace_tracer_pid = getpid();
 		/* The tracee is our parent: */
 		pid = getppid();
 		alloctcb(pid);
 		/* attaching will be done later, by startup_attach */
 		/* note: we don't do newoutf(tcp) here either! */
+
+		/* NOMMU BUG! -D mode is active, we (child) return,
+		 * and we will scribble over parent's stack!
+		 * When parent later unpauses, it segfaults.
+		 *
+		 * We work around it
+		 * (1) by declaring exec_or_die() NORETURN,
+		 * hopefully compiler will just jump to it
+		 * instead of call (won't push anything to stack),
+		 * (2) by trying very hard in exec_or_die()
+		 * to not use any stack,
+		 * (3) having a really big (MAXPATHLEN) stack object
+		 * in this function, which creates a "buffer" between
+		 * child's and parent's stack pointers.
+		 * This may save us if (1) and (2) failed
+		 * and compiler decided to use stack in exec_or_die() anyway
+		 * (happens on i386 because of stack parameter passing).
+		 *
+		 * A cleaner solution is to use makecontext + setcontext
+		 * to create a genuine separate stack and execute on it.
+		 */
 	}
 }
 
@@ -1164,7 +1231,7 @@
  * First fork a new child, call ptrace with PTRACE_SETOPTIONS on it,
  * and then see which options are supported by the kernel.
  */
-static void
+static int
 test_ptrace_setoptions_followfork(void)
 {
 	int pid, expected_grandchild = 0, found_grandchild = 0;
@@ -1172,6 +1239,10 @@
 					  PTRACE_O_TRACEFORK |
 					  PTRACE_O_TRACEVFORK;
 
+	/* Need fork for test. NOMMU has no forks */
+	if (NOMMU_SYSTEM)
+		goto worked; /* be bold, and pretend that test succeeded */
+
 	pid = fork();
 	if (pid < 0)
 		perror_msg_and_die("fork");
@@ -1253,14 +1324,16 @@
 		}
 	}
 	if (expected_grandchild && expected_grandchild == found_grandchild) {
+ worked:
 		ptrace_setoptions |= test_options;
 		if (debug_flag)
 			fprintf(stderr, "ptrace_setoptions = %#x\n",
 				ptrace_setoptions);
-		return;
+		return 0;
 	}
 	error_msg("Test for PTRACE_O_TRACECLONE failed, "
 		  "giving up using this feature.");
+	return 1;
 }
 
 /*
@@ -1277,7 +1350,7 @@
  *		int	$0x80
  * (compile with: "gcc -nostartfiles -nostdlib -o int3 int3.S")
  */
-static void
+static int
 test_ptrace_setoptions_for_all(void)
 {
 	const unsigned int test_options = PTRACE_O_TRACESYSGOOD |
@@ -1285,9 +1358,9 @@
 	int pid;
 	int it_worked = 0;
 
-	/* this fork test doesn't work on no-mmu systems */
-	if (strace_vforked)
-		return;
+	/* Need fork for test. NOMMU has no forks */
+	if (NOMMU_SYSTEM)
+		goto worked; /* be bold, and pretend that test succeeded */
 
 	pid = fork();
 	if (pid < 0)
@@ -1351,24 +1424,32 @@
 	}
 
 	if (it_worked) {
+ worked:
 		syscall_trap_sig = (SIGTRAP | 0x80);
 		ptrace_setoptions |= test_options;
 		if (debug_flag)
 			fprintf(stderr, "ptrace_setoptions = %#x\n",
 				ptrace_setoptions);
-		return;
+		return 0;
 	}
 
 	error_msg("Test for PTRACE_O_TRACESYSGOOD failed, "
 		  "giving up using this feature.");
+	return 1;
 }
 
-# ifdef USE_SEIZE
+#if USE_SEIZE
 static void
 test_ptrace_seize(void)
 {
 	int pid;
 
+	/* Need fork for test. NOMMU has no forks */
+	if (NOMMU_SYSTEM) {
+		post_attach_sigstop = 0; /* this sets use_seize to 1 */
+		return;
+	}
+
 	pid = fork();
 	if (pid < 0)
 		perror_msg_and_die("fork");
@@ -1382,7 +1463,7 @@
 	 * attaching tracee continues to run unless a trap condition occurs.
 	 * PTRACE_SEIZE doesn't affect signal or group stop state.
 	 */
-	if (ptrace(PTRACE_SEIZE, pid, 0, PTRACE_SEIZE_DEVEL) == 0) {
+	if (ptrace(PTRACE_SEIZE, pid, 0, 0) == 0) {
 		post_attach_sigstop = 0; /* this sets use_seize to 1 */
 	} else if (debug_flag) {
 		fprintf(stderr, "PTRACE_SEIZE doesn't work\n");
@@ -1408,9 +1489,9 @@
 				__func__, status);
 	}
 }
-# else /* !USE_SEIZE */
-#  define test_ptrace_seize() ((void)0)
-# endif
+#else /* !USE_SEIZE */
+# define test_ptrace_seize() ((void)0)
+#endif
 
 static unsigned
 get_os_release(void)
@@ -1432,8 +1513,14 @@
 			break;
 		while (*p >= '0' && *p <= '9')
 			p++;
-		if (*p != '.')
+		if (*p != '.') {
+			if (rel >= KERNEL_VERSION(0,1,0)) {
+				/* "X.Y-something" means "X.Y.0" */
+				rel <<= 8;
+				break;
+			}
 			error_msg_and_die("Bad OS release string: '%s'", u.release);
+		}
 		p++;
 	}
 	return rel;
@@ -1485,13 +1572,19 @@
 	qualify("trace=all");
 	qualify("abbrev=all");
 	qualify("verbose=all");
+#if DEFAULT_QUAL_FLAGS != (QUAL_TRACE | QUAL_ABBREV | QUAL_VERBOSE)
+# error Bug in DEFAULT_QUAL_FLAGS
+#endif
 	qualify("signal=all");
 	while ((c = getopt(argc, argv,
-		"+bcCdfFhiqrtTvVxyz"
+		"+b:cCdfFhiqrtTvVxyz"
 		"D"
 		"a:e:o:O:p:s:S:u:E:P:I:")) != EOF) {
 		switch (c) {
 		case 'b':
+			if (strcmp(optarg, "execve") != 0)
+				error_msg_and_die("Syscall '%s' for -b isn't supported",
+					optarg);
 			detach_on_execve = 1;
 			break;
 		case 'c':
@@ -1525,7 +1618,7 @@
 			iflag = 1;
 			break;
 		case 'q':
-			qflag = 1;
+			qflag++;
 			break;
 		case 'r':
 			rflag = 1;
@@ -1573,10 +1666,7 @@
 			process_opt_p_list(optarg);
 			break;
 		case 'P':
-			tracing_paths = 1;
-			if (pathtrace_select(optarg)) {
-				error_msg_and_die("Failed to select path '%s'", optarg);
-			}
+			pathtrace_select(optarg);
 			break;
 		case 's':
 			i = string_to_uint(optarg);
@@ -1647,9 +1737,14 @@
 		run_gid = getgid();
 	}
 
+	/*
+	 * On any reasonably recent Linux kernel (circa about 2.5.46)
+	 * need_fork_exec_workarounds should stay 0 after these tests:
+	 */
+	/*need_fork_exec_workarounds = 0; - already is */
 	if (followfork)
-		test_ptrace_setoptions_followfork();
-	test_ptrace_setoptions_for_all();
+		need_fork_exec_workarounds = test_ptrace_setoptions_followfork();
+	need_fork_exec_workarounds |= test_ptrace_setoptions_for_all();
 	test_ptrace_seize();
 
 	/* Check if they want to redirect the output. */
@@ -1693,17 +1788,21 @@
 	 * no		1	1	INTR_WHILE_WAIT
 	 */
 
-	/* STARTUP_CHILD must be called before the signal handlers get
-	   installed below as they are inherited into the spawned process.
-	   Also we do not need to be protected by them as during interruption
-	   in the STARTUP_CHILD mode we kill the spawned process anyway.  */
+	sigemptyset(&empty_set);
+	sigemptyset(&blocked_set);
+
+	/* startup_child() must be called before the signal handlers get
+	 * installed below as they are inherited into the spawned process.
+	 * Also we do not need to be protected by them as during interruption
+	 * in the startup_child() mode we kill the spawned process anyway.
+	 */
 	if (argv[0]) {
-		skip_startup_execve = 1;
+		if (!NOMMU_SYSTEM || daemonized_tracer)
+			hide_log_until_execve = 1;
+		skip_one_b_execve = 1;
 		startup_child(argv);
 	}
 
-	sigemptyset(&empty_set);
-	sigemptyset(&blocked_set);
 	sa.sa_handler = SIG_IGN;
 	sigemptyset(&sa.sa_mask);
 	sa.sa_flags = 0;
@@ -1801,9 +1900,9 @@
 {
 	struct rusage ru;
 	struct rusage *rup = cflag ? &ru : NULL;
-# ifdef __WALL
+#ifdef __WALL
 	static int wait4_options = __WALL;
-# endif
+#endif
 
 	while (nprocs != 0) {
 		int pid;
@@ -1817,7 +1916,7 @@
 			return 0;
 		if (interactive)
 			sigprocmask(SIG_SETMASK, &empty_set, NULL);
-# ifdef __WALL
+#ifdef __WALL
 		pid = wait4(-1, &status, wait4_options, rup);
 		if (pid < 0 && (wait4_options & __WALL) && errno == EINVAL) {
 			/* this kernel does not support __WALL */
@@ -1831,9 +1930,9 @@
 				perror_msg("wait4(__WCLONE) failed");
 			}
 		}
-# else
+#else
 		pid = wait4(-1, &status, 0, rup);
-# endif /* __WALL */
+#endif /* __WALL */
 		wait_errno = errno;
 		if (interactive)
 			sigprocmask(SIG_BLOCK, &blocked_set, NULL);
@@ -1911,15 +2010,6 @@
 
 		if (!tcp) {
 			if (followfork) {
-				/* This is needed to go with the CLONE_PTRACE
-				   changes in process.c/util.c: we might see
-				   the child's initial trap before we see the
-				   parent return from the clone syscall.
-				   Leave the child suspended until the parent
-				   returns from its system call.  Only then
-				   will we have the association of parent and
-				   child so that we know how to do clearbpt
-				   in the child.  */
 				tcp = alloctcb(pid);
 				tcp->flags |= TCB_ATTACHED | TCB_STARTUP | post_attach_sigstop;
 				newoutf(tcp);
@@ -1935,6 +2025,10 @@
 			}
 		}
 
+		clear_regs();
+		if (WIFSTOPPED(status))
+			get_regs(pid);
+
 		/* Under Linux, execve changes pid to thread leader's pid,
 		 * and we see this changed pid on EVENT_EXEC and later,
 		 * execve sysexit. Leader "disappears" without exit
@@ -1992,11 +2086,10 @@
 		}
  dont_switch_tcbs:
 
-		if (event == PTRACE_EVENT_EXEC && detach_on_execve) {
-			if (!skip_startup_execve)
-				detach(tcp);
-			/* This was initial execve for "strace PROG". Skip. */
-			skip_startup_execve = 0;
+		if (event == PTRACE_EVENT_EXEC) {
+			if (detach_on_execve && !skip_one_b_execve)
+				detach(tcp); /* do "-b execve" thingy */
+			skip_one_b_execve = 0;
 		}
 
 		/* Set current output file */
@@ -2011,7 +2104,8 @@
 			if (pid == strace_child)
 				exit_code = 0x100 | WTERMSIG(status);
 			if (cflag != CFLAG_ONLY_STATS
-			    && (qual_flags[WTERMSIG(status)] & QUAL_SIGNAL)) {
+			 && (qual_flags[WTERMSIG(status)] & QUAL_SIGNAL)
+			) {
 				printleader(tcp);
 #ifdef WCOREDUMP
 				tprintf("+++ killed by %s %s+++\n",
@@ -2029,7 +2123,8 @@
 		if (WIFEXITED(status)) {
 			if (pid == strace_child)
 				exit_code = WEXITSTATUS(status);
-			if (cflag != CFLAG_ONLY_STATS) {
+			if (cflag != CFLAG_ONLY_STATS &&
+			    qflag < 2) {
 				printleader(tcp);
 				tprintf("+++ exited with %d +++\n", WEXITSTATUS(status));
 				line_ended();
@@ -2076,8 +2171,8 @@
 
 		if (event != 0) {
 			/* Ptrace event */
-#ifdef USE_SEIZE
-			if (event == PTRACE_EVENT_STOP || event == PTRACE_EVENT_STOP1) {
+#if USE_SEIZE
+			if (event == PTRACE_EVENT_STOP) {
 				/*
 				 * PTRACE_INTERRUPT-stop or group-stop.
 				 * PTRACE_INTERRUPT-stop has sig == SIGTRAP here.
@@ -2117,11 +2212,13 @@
 			 * We can get ESRCH instead, you know...
 			 */
 			stopped = (ptrace(PTRACE_GETSIGINFO, pid, 0, (long) &si) < 0);
-#ifdef USE_SEIZE
+#if USE_SEIZE
  show_stopsig:
 #endif
 			if (cflag != CFLAG_ONLY_STATS
-			    && (qual_flags[sig] & QUAL_SIGNAL)) {
+			    && !hide_log_until_execve
+			    && (qual_flags[sig] & QUAL_SIGNAL)
+			   ) {
 #if defined(PT_CR_IPSR) && defined(PT_CR_IIP)
 				long pc = 0;
 				long psr = 0;
@@ -2155,7 +2252,7 @@
 				goto restart_tracee;
 
 			/* It's group-stop */
-#ifdef USE_SEIZE
+#if USE_SEIZE
 			if (use_seize) {
 				/*
 				 * This ends ptrace-stop, but does *not* end group-stop.
@@ -2197,7 +2294,6 @@
  restart_tracee_with_sig_0:
 		sig = 0;
  restart_tracee:
-		/* Remember current print column before continuing. */
 		if (ptrace_restart(PTRACE_SYSCALL, tcp, sig) < 0) {
 			cleanup();
 			return -1;
@@ -2217,10 +2313,16 @@
 
 	cleanup();
 	fflush(NULL);
+	if (shared_log != stderr)
+		fclose(shared_log);
+	if (popen_pid) {
+		while (waitpid(popen_pid, NULL, 0) < 0 && errno == EINTR)
+			;
+	}
 	if (exit_code > 0xff) {
 		/* Avoid potential core file clobbering.  */
-		struct rlimit rlim = {0, 0};
-		setrlimit(RLIMIT_CORE, &rlim);
+		struct_rlimit rlim = {0, 0};
+		set_rlimit(RLIMIT_CORE, &rlim);
 
 		/* Child was killed by a signal, mimic that.  */
 		exit_code &= 0xff;
diff --git a/strace.spec b/strace.spec
index 1bb7d3b..817f1ae 100644
--- a/strace.spec
+++ b/strace.spec
@@ -1,6 +1,6 @@
 Summary: Tracks and displays system calls associated with a running process
 Name: strace
-Version: 4.7
+Version: 4.8
 Release: 1%{?dist}
 License: BSD
 Group: Development/Debuggers
@@ -74,7 +74,7 @@
 
 %files
 %defattr(-,root,root)
-%doc CREDITS ChangeLog ChangeLog-CVS COPYRIGHT NEWS README
+%doc CREDITS ChangeLog ChangeLog-CVS COPYING NEWS README
 %{_bindir}/strace
 %{_bindir}/strace-log-merge
 %{_mandir}/man1/*
@@ -86,6 +86,19 @@
 %endif
 
 %changelog
+* Mon Jun 03 2013 Dmitry V. Levin <ldv@altlinux.org> - 4.8-1
+- New upstream release:
+  + fixed ERESTARTNOINTR leaking to userspace on ancient kernels (#659382);
+  + fixed decoding of *xattr syscalls (#885233);
+  + fixed handling of files with 64-bit inode numbers by 32-bit strace (#912790);
+  + added aarch64 support (#969858).
+
+* Fri Feb 15 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.7-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
+
+* Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.7-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
 * Wed May 02 2012 Dmitry V. Levin <ldv@altlinux.org> 4.7-1
 - New upstream release.
   + implemented proper handling of real SIGTRAPs (#162774).
diff --git a/stream.c b/stream.c
index 8656fc0..8c90838 100644
--- a/stream.c
+++ b/stream.c
@@ -33,23 +33,28 @@
 #ifdef HAVE_SYS_POLL_H
 # include <sys/poll.h>
 #endif
-#ifdef HAVE_STROPTS_H
-# include <stropts.h>
-#endif
 #ifdef HAVE_SYS_CONF_H
 # include <sys/conf.h>
 #endif
 
-#ifndef HAVE_STROPTS_H
-#define RS_HIPRI 1
+/* Who has STREAMS syscalls?
+ * Linux hasn't. Solaris has (had?).
+ * Just in case I miss something, retain in for Sparc...
+ */
+#if defined(SPARC) || defined(SPARC64)
+
+# ifdef HAVE_STROPTS_H
+#  include <stropts.h>
+# else
+#  define RS_HIPRI 1
 struct strbuf {
 	int     maxlen;                 /* no. of bytes in buffer */
 	int     len;                    /* no. of bytes returned */
 	const char *buf;                /* pointer to data */
 };
-#define MORECTL 1
-#define MOREDATA 2
-#endif /* !HAVE_STROPTS_H */
+#  define MORECTL 1
+#  define MOREDATA 2
+# endif
 
 static const struct xlat msgflags[] = {
 	{ RS_HIPRI,	"RS_HIPRI"	},
@@ -72,7 +77,7 @@
 }
 
 static void
-printstrbufarg(struct tcb *tcp, int arg, int getting)
+printstrbufarg(struct tcb *tcp, long arg, int getting)
 {
 	struct strbuf buf;
 
@@ -102,7 +107,6 @@
 	return 0;
 }
 
-#if defined(SPARC) || defined(SPARC64)
 int
 sys_getmsg(struct tcb *tcp)
 {
@@ -148,24 +152,21 @@
 	}
 	return RVAL_HEX | RVAL_STR;
 }
-#endif
 
-#if defined SYS_putpmsg || defined SYS_getpmsg
+# if defined SYS_putpmsg || defined SYS_getpmsg
 static const struct xlat pmsgflags[] = {
-#ifdef MSG_HIPRI
+#  ifdef MSG_HIPRI
 	{ MSG_HIPRI,	"MSG_HIPRI"	},
-#endif
-#ifdef MSG_AND
+#  endif
+#  ifdef MSG_AND
 	{ MSG_ANY,	"MSG_ANY"	},
-#endif
-#ifdef MSG_BAND
+#  endif
+#  ifdef MSG_BAND
 	{ MSG_BAND,	"MSG_BAND"	},
-#endif
+#  endif
 	{ 0,		NULL		},
 };
-#endif
-
-#ifdef SYS_putpmsg
+#  ifdef SYS_putpmsg
 int
 sys_putpmsg(struct tcb *tcp)
 {
@@ -184,9 +185,8 @@
 	}
 	return 0;
 }
-#endif /* SYS_putpmsg */
-
-#ifdef SYS_getpmsg
+#  endif
+#  ifdef SYS_getpmsg
 int
 sys_getpmsg(struct tcb *tcp)
 {
@@ -235,31 +235,35 @@
 	}
 	return RVAL_HEX | RVAL_STR;
 }
-#endif /* SYS_getpmsg */
+#  endif
+# endif /* getpmsg/putpmsg */
+
+#endif /* STREAMS syscalls support */
+
 
 #ifdef HAVE_SYS_POLL_H
 
 static const struct xlat pollflags[] = {
-#ifdef POLLIN
+# ifdef POLLIN
 	{ POLLIN,	"POLLIN"	},
 	{ POLLPRI,	"POLLPRI"	},
 	{ POLLOUT,	"POLLOUT"	},
-#ifdef POLLRDNORM
+#  ifdef POLLRDNORM
 	{ POLLRDNORM,	"POLLRDNORM"	},
-#endif
-#ifdef POLLWRNORM
+#  endif
+#  ifdef POLLWRNORM
 	{ POLLWRNORM,	"POLLWRNORM"	},
-#endif
-#ifdef POLLRDBAND
+#  endif
+#  ifdef POLLRDBAND
 	{ POLLRDBAND,	"POLLRDBAND"	},
-#endif
-#ifdef POLLWRBAND
+#  endif
+#  ifdef POLLWRBAND
 	{ POLLWRBAND,	"POLLWRBAND"	},
-#endif
+#  endif
 	{ POLLERR,	"POLLERR"	},
 	{ POLLHUP,	"POLLHUP"	},
 	{ POLLNVAL,	"POLLNVAL"	},
-#endif
+# endif
 	{ 0,		NULL		},
 };
 
@@ -401,11 +405,11 @@
 {
 	int rc = decode_poll(tcp, 0);
 	if (entering(tcp)) {
-#ifdef INFTIM
+# ifdef INFTIM
 		if (tcp->u_arg[2] == INFTIM)
 			tprints("INFTIM");
 		else
-#endif
+# endif
 			tprintf("%ld", tcp->u_arg[2]);
 	}
 	return rc;
diff --git a/syscall.c b/syscall.c
index 52d742f..7efee0e 100644
--- a/syscall.c
+++ b/syscall.c
@@ -65,6 +65,21 @@
 # include <asm/rse.h>
 #endif
 
+/* for struct iovec */
+#include <sys/uio.h>
+/* for NT_PRSTATUS */
+#ifdef HAVE_ELF_H
+# include <elf.h>
+#endif
+
+#if defined(AARCH64)
+# include <asm/ptrace.h>
+#endif
+
+#if defined(XTENSA)
+# include <asm/ptrace.h>
+#endif
+
 #ifndef ERESTARTSYS
 # define ERESTARTSYS	512
 #endif
@@ -97,21 +112,22 @@
 #define TN TRACE_NETWORK
 #define TP TRACE_PROCESS
 #define TS TRACE_SIGNAL
+#define TM TRACE_MEMORY
 #define NF SYSCALL_NEVER_FAILS
 #define MA MAX_ARGS
 
-static const struct sysent sysent0[] = {
+const struct_sysent sysent0[] = {
 #include "syscallent.h"
 };
 
-#if SUPPORTED_PERSONALITIES >= 2
-static const struct sysent sysent1[] = {
+#if SUPPORTED_PERSONALITIES > 1
+static const struct_sysent sysent1[] = {
 # include "syscallent1.h"
 };
 #endif
 
-#if SUPPORTED_PERSONALITIES >= 3
-static const struct sysent sysent2[] = {
+#if SUPPORTED_PERSONALITIES > 2
+static const struct_sysent sysent2[] = {
 # include "syscallent2.h"
 };
 #endif
@@ -123,6 +139,7 @@
 #undef TN
 #undef TP
 #undef TS
+#undef TM
 #undef NF
 #undef MA
 
@@ -134,120 +151,188 @@
  * in "/usr/include".
  */
 
-static const char *const errnoent0[] = {
+const char *const errnoent0[] = {
 #include "errnoent.h"
 };
-static const char *const signalent0[] = {
+const char *const signalent0[] = {
 #include "signalent.h"
 };
-static const struct ioctlent ioctlent0[] = {
+const struct_ioctlent ioctlent0[] = {
 #include "ioctlent.h"
 };
-enum { nsyscalls0 = ARRAY_SIZE(sysent0) };
-enum { nerrnos0 = ARRAY_SIZE(errnoent0) };
-enum { nsignals0 = ARRAY_SIZE(signalent0) };
-enum { nioctlents0 = ARRAY_SIZE(ioctlent0) };
-int qual_flags0[MAX_QUALS];
 
-#if SUPPORTED_PERSONALITIES >= 2
+#if SUPPORTED_PERSONALITIES > 1
 static const char *const errnoent1[] = {
 # include "errnoent1.h"
 };
 static const char *const signalent1[] = {
 # include "signalent1.h"
 };
-static const struct ioctlent ioctlent1[] = {
+static const struct_ioctlent ioctlent1[] = {
 # include "ioctlent1.h"
 };
-enum { nsyscalls1 = ARRAY_SIZE(sysent1) };
-enum { nerrnos1 = ARRAY_SIZE(errnoent1) };
-enum { nsignals1 = ARRAY_SIZE(signalent1) };
-enum { nioctlents1 = ARRAY_SIZE(ioctlent1) };
-int qual_flags1[MAX_QUALS];
 #endif
 
-#if SUPPORTED_PERSONALITIES >= 3
+#if SUPPORTED_PERSONALITIES > 2
 static const char *const errnoent2[] = {
 # include "errnoent2.h"
 };
 static const char *const signalent2[] = {
 # include "signalent2.h"
 };
-static const struct ioctlent ioctlent2[] = {
+static const struct_ioctlent ioctlent2[] = {
 # include "ioctlent2.h"
 };
-enum { nsyscalls2 = ARRAY_SIZE(sysent2) };
-enum { nerrnos2 = ARRAY_SIZE(errnoent2) };
-enum { nsignals2 = ARRAY_SIZE(signalent2) };
-enum { nioctlents2 = ARRAY_SIZE(ioctlent2) };
-int qual_flags2[MAX_QUALS];
 #endif
 
-const struct sysent *sysent = sysent0;
+enum {
+	nsyscalls0 = ARRAY_SIZE(sysent0)
+#if SUPPORTED_PERSONALITIES > 1
+	, nsyscalls1 = ARRAY_SIZE(sysent1)
+# if SUPPORTED_PERSONALITIES > 2
+	, nsyscalls2 = ARRAY_SIZE(sysent2)
+# endif
+#endif
+};
+
+enum {
+	nerrnos0 = ARRAY_SIZE(errnoent0)
+#if SUPPORTED_PERSONALITIES > 1
+	, nerrnos1 = ARRAY_SIZE(errnoent1)
+# if SUPPORTED_PERSONALITIES > 2
+	, nerrnos2 = ARRAY_SIZE(errnoent2)
+# endif
+#endif
+};
+
+enum {
+	nsignals0 = ARRAY_SIZE(signalent0)
+#if SUPPORTED_PERSONALITIES > 1
+	, nsignals1 = ARRAY_SIZE(signalent1)
+# if SUPPORTED_PERSONALITIES > 2
+	, nsignals2 = ARRAY_SIZE(signalent2)
+# endif
+#endif
+};
+
+enum {
+	nioctlents0 = ARRAY_SIZE(ioctlent0)
+#if SUPPORTED_PERSONALITIES > 1
+	, nioctlents1 = ARRAY_SIZE(ioctlent1)
+# if SUPPORTED_PERSONALITIES > 2
+	, nioctlents2 = ARRAY_SIZE(ioctlent2)
+# endif
+#endif
+};
+
+#if SUPPORTED_PERSONALITIES > 1
+const struct_sysent *sysent = sysent0;
 const char *const *errnoent = errnoent0;
 const char *const *signalent = signalent0;
-const struct ioctlent *ioctlent = ioctlent0;
+const struct_ioctlent *ioctlent = ioctlent0;
+#endif
 unsigned nsyscalls = nsyscalls0;
 unsigned nerrnos = nerrnos0;
 unsigned nsignals = nsignals0;
 unsigned nioctlents = nioctlents0;
-int *qual_flags = qual_flags0;
+
+unsigned num_quals;
+qualbits_t *qual_vec[SUPPORTED_PERSONALITIES];
+
+static const unsigned nsyscall_vec[SUPPORTED_PERSONALITIES] = {
+	nsyscalls0,
+#if SUPPORTED_PERSONALITIES > 1
+	nsyscalls1,
+#endif
+#if SUPPORTED_PERSONALITIES > 2
+	nsyscalls2,
+#endif
+};
+static const struct_sysent *const sysent_vec[SUPPORTED_PERSONALITIES] = {
+	sysent0,
+#if SUPPORTED_PERSONALITIES > 1
+	sysent1,
+#endif
+#if SUPPORTED_PERSONALITIES > 2
+	sysent2,
+#endif
+};
+
+enum {
+	MAX_NSYSCALLS1 = (nsyscalls0
+#if SUPPORTED_PERSONALITIES > 1
+			> nsyscalls1 ? nsyscalls0 : nsyscalls1
+#endif
+			),
+	MAX_NSYSCALLS2 = (MAX_NSYSCALLS1
+#if SUPPORTED_PERSONALITIES > 2
+			> nsyscalls2 ? MAX_NSYSCALLS1 : nsyscalls2
+#endif
+			),
+	MAX_NSYSCALLS = MAX_NSYSCALLS2,
+	/* We are ready for arches with up to 255 signals,
+	 * even though the largest known signo is on MIPS and it is 128.
+	 * The number of existing syscalls on all arches is
+	 * larger that 255 anyway, so it is just a pedantic matter.
+	 */
+	MIN_QUALS = MAX_NSYSCALLS > 255 ? MAX_NSYSCALLS : 255
+};
 
 #if SUPPORTED_PERSONALITIES > 1
-int current_personality;
+unsigned current_personality;
 
-const int personality_wordsize[SUPPORTED_PERSONALITIES] = {
+# ifndef current_wordsize
+unsigned current_wordsize;
+static const int personality_wordsize[SUPPORTED_PERSONALITIES] = {
 	PERSONALITY0_WORDSIZE,
 	PERSONALITY1_WORDSIZE,
 # if SUPPORTED_PERSONALITIES > 2
 	PERSONALITY2_WORDSIZE,
 # endif
 };
+# endif
 
 void
 set_personality(int personality)
 {
+	nsyscalls = nsyscall_vec[personality];
+	sysent = sysent_vec[personality];
+
 	switch (personality) {
 	case 0:
 		errnoent = errnoent0;
 		nerrnos = nerrnos0;
-		sysent = sysent0;
-		nsyscalls = nsyscalls0;
 		ioctlent = ioctlent0;
 		nioctlents = nioctlents0;
 		signalent = signalent0;
 		nsignals = nsignals0;
-		qual_flags = qual_flags0;
 		break;
 
 	case 1:
 		errnoent = errnoent1;
 		nerrnos = nerrnos1;
-		sysent = sysent1;
-		nsyscalls = nsyscalls1;
 		ioctlent = ioctlent1;
 		nioctlents = nioctlents1;
 		signalent = signalent1;
 		nsignals = nsignals1;
-		qual_flags = qual_flags1;
 		break;
 
-# if SUPPORTED_PERSONALITIES >= 3
+# if SUPPORTED_PERSONALITIES > 2
 	case 2:
 		errnoent = errnoent2;
 		nerrnos = nerrnos2;
-		sysent = sysent2;
-		nsyscalls = nsyscalls2;
 		ioctlent = ioctlent2;
 		nioctlents = nioctlents2;
 		signalent = signalent2;
 		nsignals = nsignals2;
-		qual_flags = qual_flags2;
 		break;
 # endif
 	}
 
 	current_personality = personality;
+# ifndef current_wordsize
+	current_wordsize = personality_wordsize[personality];
+# endif
 }
 
 static void
@@ -279,11 +364,23 @@
 		fprintf(stderr, "[ Process PID=%d runs in %s mode. ]\n",
 			tcp->pid, names[personality]);
 	}
+# elif defined(AARCH64)
+	if (!qflag) {
+		static const char *const names[] = {"32-bit", "AArch64"};
+		fprintf(stderr, "[ Process PID=%d runs in %s mode. ]\n",
+			tcp->pid, names[personality]);
+	}
+# elif defined(TILE)
+	if (!qflag) {
+		static const char *const names[] = {"64-bit", "32-bit"};
+		fprintf(stderr, "[ Process PID=%d runs in %s mode. ]\n",
+			tcp->pid, names[personality]);
+	}
 # endif
 }
 #endif
 
-static int qual_syscall(), qual_signal(), qual_fault(), qual_desc();
+static int qual_syscall(), qual_signal(), qual_desc();
 
 static const struct qual_options {
 	int bitflag;
@@ -302,9 +399,6 @@
 	{ QUAL_SIGNAL,	"signal",	qual_signal,	"signal"	},
 	{ QUAL_SIGNAL,	"signals",	qual_signal,	"signal"	},
 	{ QUAL_SIGNAL,	"s",		qual_signal,	"signal"	},
-	{ QUAL_FAULT,	"fault",	qual_fault,	"fault"		},
-	{ QUAL_FAULT,	"faults",	qual_fault,	"fault"		},
-	{ QUAL_FAULT,	"m",		qual_fault,	"fault"		},
 	{ QUAL_READ,	"read",		qual_desc,	"descriptor"	},
 	{ QUAL_READ,	"reads",	qual_desc,	"descriptor"	},
 	{ QUAL_READ,	"r",		qual_desc,	"descriptor"	},
@@ -315,71 +409,62 @@
 };
 
 static void
+reallocate_qual(int n)
+{
+	unsigned p;
+	qualbits_t *qp;
+	for (p = 0; p < SUPPORTED_PERSONALITIES; p++) {
+		qp = qual_vec[p] = realloc(qual_vec[p], n * sizeof(qualbits_t));
+		if (!qp)
+			die_out_of_memory();
+		memset(&qp[num_quals], 0, (n - num_quals) * sizeof(qualbits_t));
+	}
+	num_quals = n;
+}
+
+static void
 qualify_one(int n, int bitflag, int not, int pers)
 {
-	if (pers == 0 || pers < 0) {
-		if (not)
-			qual_flags0[n] &= ~bitflag;
-		else
-			qual_flags0[n] |= bitflag;
-	}
+	unsigned p;
 
-#if SUPPORTED_PERSONALITIES >= 2
-	if (pers == 1 || pers < 0) {
-		if (not)
-			qual_flags1[n] &= ~bitflag;
-		else
-			qual_flags1[n] |= bitflag;
-	}
-#endif
+	if (num_quals <= n)
+		reallocate_qual(n + 1);
 
-#if SUPPORTED_PERSONALITIES >= 3
-	if (pers == 2 || pers < 0) {
-		if (not)
-			qual_flags2[n] &= ~bitflag;
-		else
-			qual_flags2[n] |= bitflag;
+	for (p = 0; p < SUPPORTED_PERSONALITIES; p++) {
+		if (pers == p || pers < 0) {
+			if (not)
+				qual_vec[p][n] &= ~bitflag;
+			else
+				qual_vec[p][n] |= bitflag;
+		}
 	}
-#endif
 }
 
 static int
 qual_syscall(const char *s, int bitflag, int not)
 {
-	int i;
+	unsigned p;
+	unsigned i;
 	int rc = -1;
 
 	if (*s >= '0' && *s <= '9') {
-		int i = string_to_uint(s);
-		if (i < 0 || i >= MAX_QUALS)
+		i = string_to_uint(s);
+		if (i >= MAX_NSYSCALLS)
 			return -1;
 		qualify_one(i, bitflag, not, -1);
 		return 0;
 	}
-	for (i = 0; i < nsyscalls0; i++)
-		if (sysent0[i].sys_name &&
-		    strcmp(s, sysent0[i].sys_name) == 0) {
-			qualify_one(i, bitflag, not, 0);
-			rc = 0;
-		}
 
-#if SUPPORTED_PERSONALITIES >= 2
-	for (i = 0; i < nsyscalls1; i++)
-		if (sysent1[i].sys_name &&
-		    strcmp(s, sysent1[i].sys_name) == 0) {
-			qualify_one(i, bitflag, not, 1);
-			rc = 0;
+	for (p = 0; p < SUPPORTED_PERSONALITIES; p++) {
+		for (i = 0; i < nsyscall_vec[p]; i++) {
+			if (sysent_vec[p][i].sys_name
+			 && strcmp(s, sysent_vec[p][i].sys_name) == 0
+			) {
+				qualify_one(i, bitflag, not, p);
+				rc = 0;
+			}
 		}
-#endif
-
-#if SUPPORTED_PERSONALITIES >= 3
-	for (i = 0; i < nsyscalls2; i++)
-		if (sysent2[i].sys_name &&
-		    strcmp(s, sysent2[i].sys_name) == 0) {
-			qualify_one(i, bitflag, not, 2);
-			rc = 0;
-		}
-#endif
+	}
 
 	return rc;
 }
@@ -391,7 +476,7 @@
 
 	if (*s >= '0' && *s <= '9') {
 		int signo = string_to_uint(s);
-		if (signo < 0 || signo >= MAX_QUALS)
+		if (signo < 0 || signo > 255)
 			return -1;
 		qualify_one(signo, bitflag, not, -1);
 		return 0;
@@ -408,17 +493,11 @@
 }
 
 static int
-qual_fault(const char *s, int bitflag, int not)
-{
-	return -1;
-}
-
-static int
 qual_desc(const char *s, int bitflag, int not)
 {
 	if (*s >= '0' && *s <= '9') {
 		int desc = string_to_uint(s);
-		if (desc < 0 || desc >= MAX_QUALS)
+		if (desc < 0 || desc > 0x7fff) /* paranoia */
 			return -1;
 		qualify_one(desc, bitflag, not, -1);
 		return 0;
@@ -441,6 +520,8 @@
 		return TRACE_SIGNAL;
 	if (strcmp(s, "desc") == 0)
 		return TRACE_DESC;
+	if (strcmp(s, "memory") == 0)
+		return TRACE_MEMORY;
 	return -1;
 }
 
@@ -453,6 +534,9 @@
 	const char *p;
 	int i, n;
 
+	if (num_quals == 0)
+		reallocate_qual(MIN_QUALS);
+
 	opt = &qual_options[0];
 	for (i = 0; (p = qual_options[i].option_name); i++) {
 		n = strlen(p);
@@ -472,12 +556,12 @@
 		s = "all";
 	}
 	if (strcmp(s, "all") == 0) {
-		for (i = 0; i < MAX_QUALS; i++) {
+		for (i = 0; i < num_quals; i++) {
 			qualify_one(i, opt->bitflag, not, -1);
 		}
 		return;
 	}
-	for (i = 0; i < MAX_QUALS; i++) {
+	for (i = 0; i < num_quals; i++) {
 		qualify_one(i, opt->bitflag, !not, -1);
 	}
 	copy = strdup(s);
@@ -485,22 +569,12 @@
 		die_out_of_memory();
 	for (p = strtok(copy, ","); p; p = strtok(NULL, ",")) {
 		if (opt->bitflag == QUAL_TRACE && (n = lookup_class(p)) > 0) {
-			for (i = 0; i < nsyscalls0; i++)
-				if (sysent0[i].sys_flags & n)
-					qualify_one(i, opt->bitflag, not, 0);
-
-#if SUPPORTED_PERSONALITIES >= 2
-			for (i = 0; i < nsyscalls1; i++)
-				if (sysent1[i].sys_flags & n)
-					qualify_one(i, opt->bitflag, not, 1);
-#endif
-
-#if SUPPORTED_PERSONALITIES >= 3
-			for (i = 0; i < nsyscalls2; i++)
-				if (sysent2[i].sys_flags & n)
-					qualify_one(i, opt->bitflag, not, 2);
-#endif
-
+			unsigned pers;
+			for (pers = 0; pers < SUPPORTED_PERSONALITIES; pers++) {
+				for (i = 0; i < nsyscall_vec[pers]; i++)
+					if (sysent_vec[pers][i].sys_flags & n)
+						qualify_one(i, opt->bitflag, not, pers);
+			}
 			continue;
 		}
 		if (opt->qualify(p, opt->bitflag, not)) {
@@ -517,16 +591,18 @@
 decode_socket_subcall(struct tcb *tcp)
 {
 	unsigned long addr;
-	unsigned int i, size;
+	unsigned int i, n, size;
 
 	if (tcp->u_arg[0] < 0 || tcp->u_arg[0] >= SYS_socket_nsubcalls)
 		return;
 
 	tcp->scno = SYS_socket_subcall + tcp->u_arg[0];
+	tcp->qual_flg = qual_flags[tcp->scno];
+	tcp->s_ent = &sysent[tcp->scno];
 	addr = tcp->u_arg[1];
-	tcp->u_nargs = sysent[tcp->scno].nargs;
 	size = current_wordsize;
-	for (i = 0; i < tcp->u_nargs; ++i) {
+	n = tcp->s_ent->nargs;
+	for (i = 0; i < n; ++i) {
 		if (size == sizeof(int)) {
 			unsigned int arg;
 			if (umove(tcp, addr, &arg) < 0)
@@ -548,14 +624,16 @@
 static void
 decode_ipc_subcall(struct tcb *tcp)
 {
-	unsigned int i;
+	unsigned int i, n;
 
 	if (tcp->u_arg[0] < 0 || tcp->u_arg[0] >= SYS_ipc_nsubcalls)
 		return;
 
 	tcp->scno = SYS_ipc_subcall + tcp->u_arg[0];
-	tcp->u_nargs = sysent[tcp->scno].nargs;
-	for (i = 0; i < tcp->u_nargs; i++)
+	tcp->qual_flg = qual_flags[tcp->scno];
+	tcp->s_ent = &sysent[tcp->scno];
+	n = tcp->s_ent->nargs;
+	for (i = 0; i < n; i++)
 		tcp->u_arg[i] = tcp->u_arg[i + 1];
 }
 #endif
@@ -565,8 +643,8 @@
 {
 	if (entering(tcp)) {
 		int i;
-
-		for (i = 0; i < tcp->u_nargs; i++)
+		int n = tcp->s_ent->nargs;
+		for (i = 0; i < n; i++)
 			tprintf("%s%#lx", i ? ", " : "", tcp->u_arg[i]);
 	}
 	return 0;
@@ -577,8 +655,8 @@
 {
 	if (entering(tcp)) {
 		int i;
-
-		for (i = 0; i < tcp->u_nargs; i++)
+		int n = tcp->s_ent->nargs;
+		for (i = 0; i < n; i++)
 			tprintf("%s%lu", i ? ", " : "", tcp->u_arg[i]);
 	}
 	return 0;
@@ -589,33 +667,32 @@
 {
 	if (entering(tcp)) {
 		int i;
-
-		for (i = 0; i < tcp->u_nargs; i++)
+		int n = tcp->s_ent->nargs;
+		for (i = 0; i < n; i++)
 			tprintf("%s%ld", i ? ", " : "", tcp->u_arg[i]);
 	}
 	return 0;
 }
 
+#if defined(SPARC) || defined(SPARC64) || defined(IA64) || defined(SH)
 long
 getrval2(struct tcb *tcp)
 {
-	long val = -1;
+	long val;
 
-#if defined(SPARC) || defined(SPARC64)
-	struct pt_regs regs;
-	if (ptrace(PTRACE_GETREGS, tcp->pid, (char *)&regs, 0) < 0)
-		return -1;
-	val = regs.u_regs[U_REG_O1];
-#elif defined(SH)
+# if defined(SPARC) || defined(SPARC64)
+	val = sparc_regs.u_regs[U_REG_O1];
+# elif defined(SH)
 	if (upeek(tcp, 4*(REG_REG0+1), &val) < 0)
 		return -1;
-#elif defined(IA64)
+# elif defined(IA64)
 	if (upeek(tcp, PT_R9, &val) < 0)
 		return -1;
-#endif
+# endif
 
 	return val;
 }
+#endif
 
 int
 is_restart_error(struct tcb *tcp)
@@ -633,56 +710,397 @@
 }
 
 #if defined(I386)
-struct pt_regs i386_regs;
+struct user_regs_struct i386_regs;
+# define ARCH_REGS_FOR_GETREGSET i386_regs
 #elif defined(X86_64) || defined(X32)
 /*
- * On 32 bits, pt_regs and user_regs_struct are the same,
- * but on 64 bits, user_regs_struct has six more fields:
+ * On i386, pt_regs and user_regs_struct are the same,
+ * but on 64 bit x86, user_regs_struct has six more fields:
  * fs_base, gs_base, ds, es, fs, gs.
  * PTRACE_GETREGS fills them too, so struct pt_regs would overflow.
  */
-static struct user_regs_struct x86_64_regs;
+struct i386_user_regs_struct {
+	uint32_t ebx;
+	uint32_t ecx;
+	uint32_t edx;
+	uint32_t esi;
+	uint32_t edi;
+	uint32_t ebp;
+	uint32_t eax;
+	uint32_t xds;
+	uint32_t xes;
+	uint32_t xfs;
+	uint32_t xgs;
+	uint32_t orig_eax;
+	uint32_t eip;
+	uint32_t xcs;
+	uint32_t eflags;
+	uint32_t esp;
+	uint32_t xss;
+};
+static union {
+	struct user_regs_struct      x86_64_r;
+	struct i386_user_regs_struct i386_r;
+} x86_regs_union;
+# define x86_64_regs x86_regs_union.x86_64_r
+# define i386_regs   x86_regs_union.i386_r
+static struct iovec x86_io = {
+	.iov_base = &x86_regs_union
+};
 #elif defined(IA64)
-long r8, r10, psr; /* TODO: make static? */
 long ia32 = 0; /* not static */
+static long ia64_r8, ia64_r10;
 #elif defined(POWERPC)
 static long ppc_result;
 #elif defined(M68K)
-static long d0;
+static long m68k_d0;
 #elif defined(BFIN)
-static long r0;
+static long bfin_r0;
 #elif defined(ARM)
-static struct pt_regs regs;
+struct pt_regs arm_regs; /* not static */
+# define ARCH_REGS_FOR_GETREGSET arm_regs
+#elif defined(AARCH64)
+static union {
+	struct user_pt_regs aarch64_r;
+	struct arm_pt_regs  arm_r;
+} arm_regs_union;
+# define aarch64_regs arm_regs_union.aarch64_r
+# define arm_regs     arm_regs_union.arm_r
+static struct iovec aarch64_io = {
+	.iov_base = &arm_regs_union
+};
 #elif defined(ALPHA)
-static long r0;
-static long a3;
+static long alpha_r0;
+static long alpha_a3;
 #elif defined(AVR32)
-static struct pt_regs regs;
+static struct pt_regs avr32_regs;
 #elif defined(SPARC) || defined(SPARC64)
-static struct pt_regs regs;
-static unsigned long trap;
+struct pt_regs sparc_regs; /* not static */
 #elif defined(LINUX_MIPSN32)
-static long long a3;
-static long long r2;
+static long long mips_a3;
+static long long mips_r2;
 #elif defined(MIPS)
-static long a3;
-static long r2;
+static long mips_a3;
+static long mips_r2;
 #elif defined(S390) || defined(S390X)
 static long gpr2;
-static long pc;
 static long syscall_mode;
 #elif defined(HPPA)
-static long r28;
+static long hppa_r28;
 #elif defined(SH)
-static long r0;
+static long sh_r0;
 #elif defined(SH64)
-static long r9;
+static long sh64_r9;
 #elif defined(CRISV10) || defined(CRISV32)
-static long r10;
+static long cris_r10;
+#elif defined(TILE)
+struct pt_regs tile_regs;
 #elif defined(MICROBLAZE)
-static long r3;
+static long microblaze_r3;
+#elif defined(OR1K)
+static struct user_regs_struct or1k_regs;
+# define ARCH_REGS_FOR_GETREGSET or1k_regs
+#elif defined(METAG)
+static struct user_gp_regs metag_regs;
+# define ARCH_REGS_FOR_GETREGSET metag_regs
+#elif defined(XTENSA)
+static long xtensa_a2;
 #endif
 
+void
+printcall(struct tcb *tcp)
+{
+#define PRINTBADPC tprintf(sizeof(long) == 4 ? "[????????] " : \
+			   sizeof(long) == 8 ? "[????????????????] " : \
+			   NULL /* crash */)
+	if (get_regs_error) {
+		PRINTBADPC;
+		return;
+	}
+#if defined(I386)
+	tprintf("[%08lx] ", i386_regs.eip);
+#elif defined(S390) || defined(S390X)
+	long psw;
+	if (upeek(tcp, PT_PSWADDR, &psw) < 0) {
+		PRINTBADPC;
+		return;
+	}
+# ifdef S390
+	tprintf("[%08lx] ", psw);
+# elif S390X
+	tprintf("[%016lx] ", psw);
+# endif
+#elif defined(X86_64) || defined(X32)
+	if (x86_io.iov_len == sizeof(i386_regs)) {
+		tprintf("[%08x] ", (unsigned) i386_regs.eip);
+	} else {
+# if defined(X86_64)
+		tprintf("[%016lx] ", (unsigned long) x86_64_regs.rip);
+# elif defined(X32)
+		/* Note: this truncates 64-bit rip to 32 bits */
+		tprintf("[%08lx] ", (unsigned long) x86_64_regs.rip);
+# endif
+	}
+#elif defined(IA64)
+	long ip;
+	if (upeek(tcp, PT_B0, &ip) < 0) {
+		PRINTBADPC;
+		return;
+	}
+	tprintf("[%08lx] ", ip);
+#elif defined(POWERPC)
+	long pc;
+	if (upeek(tcp, sizeof(unsigned long)*PT_NIP, &pc) < 0) {
+		PRINTBADPC;
+		return;
+	}
+# ifdef POWERPC64
+	tprintf("[%016lx] ", pc);
+# else
+	tprintf("[%08lx] ", pc);
+# endif
+#elif defined(M68K)
+	long pc;
+	if (upeek(tcp, 4*PT_PC, &pc) < 0) {
+		tprints("[????????] ");
+		return;
+	}
+	tprintf("[%08lx] ", pc);
+#elif defined(ALPHA)
+	long pc;
+	if (upeek(tcp, REG_PC, &pc) < 0) {
+		tprints("[????????????????] ");
+		return;
+	}
+	tprintf("[%08lx] ", pc);
+#elif defined(SPARC)
+	tprintf("[%08lx] ", sparc_regs.pc);
+#elif defined(SPARC64)
+	tprintf("[%08lx] ", sparc_regs.tpc);
+#elif defined(HPPA)
+	long pc;
+	if (upeek(tcp, PT_IAOQ0, &pc) < 0) {
+		tprints("[????????] ");
+		return;
+	}
+	tprintf("[%08lx] ", pc);
+#elif defined(MIPS)
+	long pc;
+	if (upeek(tcp, REG_EPC, &pc) < 0) {
+		tprints("[????????] ");
+		return;
+	}
+	tprintf("[%08lx] ", pc);
+#elif defined(SH)
+	long pc;
+	if (upeek(tcp, 4*REG_PC, &pc) < 0) {
+		tprints("[????????] ");
+		return;
+	}
+	tprintf("[%08lx] ", pc);
+#elif defined(SH64)
+	long pc;
+	if (upeek(tcp, REG_PC, &pc) < 0) {
+		tprints("[????????????????] ");
+		return;
+	}
+	tprintf("[%08lx] ", pc);
+#elif defined(ARM)
+	tprintf("[%08lx] ", arm_regs.ARM_pc);
+#elif defined(AARCH64)
+	/* tprintf("[%016lx] ", aarch64_regs.regs[???]); */
+#elif defined(AVR32)
+	tprintf("[%08lx] ", avr32_regs.pc);
+#elif defined(BFIN)
+	long pc;
+	if (upeek(tcp, PT_PC, &pc) < 0) {
+		PRINTBADPC;
+		return;
+	}
+	tprintf("[%08lx] ", pc);
+#elif defined(CRISV10)
+	long pc;
+	if (upeek(tcp, 4*PT_IRP, &pc) < 0) {
+		PRINTBADPC;
+		return;
+	}
+	tprintf("[%08lx] ", pc);
+#elif defined(CRISV32)
+	long pc;
+	if (upeek(tcp, 4*PT_ERP, &pc) < 0) {
+		PRINTBADPC;
+		return;
+	}
+	tprintf("[%08lx] ", pc);
+#elif defined(TILE)
+# ifdef _LP64
+	tprintf("[%016lx] ", (unsigned long) tile_regs.pc);
+# else
+	tprintf("[%08lx] ", (unsigned long) tile_regs.pc);
+# endif
+#elif defined(OR1K)
+	tprintf("[%08lx] ", or1k_regs.pc);
+#elif defined(METAG)
+	tprintf("[%08lx] ", metag_regs.pc);
+#elif defined(XTENSA)
+	long pc;
+	if (upeek(tcp, REG_PC, &pc) < 0) {
+		PRINTBADPC;
+		return;
+	}
+	tprintf("[%08lx] ", pc);
+#endif /* architecture */
+}
+
+/* Shuffle syscall numbers so that we don't have huge gaps in syscall table.
+ * The shuffling should be reversible: shuffle_scno(shuffle_scno(n)) == n.
+ */
+#if defined(ARM) /* So far only ARM needs this */
+static long
+shuffle_scno(unsigned long scno)
+{
+	if (scno <= ARM_LAST_ORDINARY_SYSCALL)
+		return scno;
+
+	/* __ARM_NR_cmpxchg? Swap with LAST_ORDINARY+1 */
+	if (scno == 0x000ffff0)
+		return ARM_LAST_ORDINARY_SYSCALL+1;
+	if (scno == ARM_LAST_ORDINARY_SYSCALL+1)
+		return 0x000ffff0;
+
+	/* Is it ARM specific syscall?
+	 * Swap with [LAST_ORDINARY+2, LAST_ORDINARY+2 + LAST_SPECIAL] range.
+	 */
+	if (scno >= 0x000f0000
+	 && scno <= 0x000f0000 + ARM_LAST_SPECIAL_SYSCALL
+	) {
+		return scno - 0x000f0000 + (ARM_LAST_ORDINARY_SYSCALL+2);
+	}
+	if (/* scno >= ARM_LAST_ORDINARY_SYSCALL+2 - always true */ 1
+	 && scno <= (ARM_LAST_ORDINARY_SYSCALL+2) + ARM_LAST_SPECIAL_SYSCALL
+	) {
+		return scno + 0x000f0000 - (ARM_LAST_ORDINARY_SYSCALL+2);
+	}
+
+	return scno;
+}
+#else
+# define shuffle_scno(scno) ((long)(scno))
+#endif
+
+static char*
+undefined_scno_name(struct tcb *tcp)
+{
+	static char buf[sizeof("syscall_%lu") + sizeof(long)*3];
+
+	sprintf(buf, "syscall_%lu", shuffle_scno(tcp->scno));
+	return buf;
+}
+
+#ifndef get_regs
+long get_regs_error;
+
+#if defined(PTRACE_GETREGSET) && defined(NT_PRSTATUS)
+static void get_regset(pid_t pid)
+{
+/* constant iovec */
+# if defined(ARM) \
+  || defined(I386) \
+  || defined(METAG) \
+  || defined(OR1K)
+	static struct iovec io = {
+		.iov_base = &ARCH_REGS_FOR_GETREGSET,
+		.iov_len = sizeof(ARCH_REGS_FOR_GETREGSET)
+	};
+	get_regs_error = ptrace(PTRACE_GETREGSET, pid, NT_PRSTATUS, &io);
+
+/* variable iovec */
+# elif defined(X86_64) || defined(X32)
+	/* x86_io.iov_base = &x86_regs_union; - already is */
+	x86_io.iov_len = sizeof(x86_regs_union);
+	get_regs_error = ptrace(PTRACE_GETREGSET, pid, NT_PRSTATUS, &x86_io);
+# elif defined(AARCH64)
+	/* aarch64_io.iov_base = &arm_regs_union; - already is */
+	aarch64_io.iov_len = sizeof(arm_regs_union);
+	get_regs_error = ptrace(PTRACE_GETREGSET, pid, NT_PRSTATUS, &aarch64_io);
+# else
+#  warning both PTRACE_GETREGSET and NT_PRSTATUS are available but not yet used
+# endif
+}
+#endif /* PTRACE_GETREGSET && NT_PRSTATUS */
+
+void
+get_regs(pid_t pid)
+{
+/* PTRACE_GETREGSET only */
+# if defined(METAG) || defined(OR1K) || defined(X32) || defined(AARCH64)
+	get_regset(pid);
+
+/* PTRACE_GETREGS only */
+# elif defined(AVR32)
+	get_regs_error = ptrace(PTRACE_GETREGS, pid, NULL, &avr32_regs);
+# elif defined(TILE)
+	get_regs_error = ptrace(PTRACE_GETREGS, pid, NULL, &tile_regs);
+# elif defined(SPARC) || defined(SPARC64)
+	get_regs_error = ptrace(PTRACE_GETREGS, pid, (char *)&sparc_regs, 0);
+
+/* try PTRACE_GETREGSET first, fallback to PTRACE_GETREGS */
+# else
+#  if defined(PTRACE_GETREGSET) && defined(NT_PRSTATUS)
+	static int getregset_support;
+
+	if (getregset_support >= 0) {
+		get_regset(pid);
+		if (getregset_support > 0)
+			return;
+		if (get_regs_error >= 0) {
+			getregset_support = 1;
+			return;
+		}
+		if (errno == EPERM || errno == ESRCH)
+			return;
+		getregset_support = -1;
+	}
+#  endif /* PTRACE_GETREGSET && NT_PRSTATUS */
+#  if defined(ARM)
+	get_regs_error = ptrace(PTRACE_GETREGS, pid, NULL, &arm_regs);
+#  elif defined(I386)
+	get_regs_error = ptrace(PTRACE_GETREGS, pid, NULL, &i386_regs);
+#  elif defined(X86_64)
+	/* Use old method, with unreliable heuristical detection of 32-bitness. */
+	x86_io.iov_len = sizeof(x86_64_regs);
+	get_regs_error = ptrace(PTRACE_GETREGS, pid, NULL, &x86_64_regs);
+	if (!get_regs_error && x86_64_regs.cs == 0x23) {
+		x86_io.iov_len = sizeof(i386_regs);
+		/*
+		 * The order is important: i386_regs and x86_64_regs
+		 * are overlaid in memory!
+		 */
+		i386_regs.ebx = x86_64_regs.rbx;
+		i386_regs.ecx = x86_64_regs.rcx;
+		i386_regs.edx = x86_64_regs.rdx;
+		i386_regs.esi = x86_64_regs.rsi;
+		i386_regs.edi = x86_64_regs.rdi;
+		i386_regs.ebp = x86_64_regs.rbp;
+		i386_regs.eax = x86_64_regs.rax;
+		/* i386_regs.xds = x86_64_regs.ds; unused by strace */
+		/* i386_regs.xes = x86_64_regs.es; ditto... */
+		/* i386_regs.xfs = x86_64_regs.fs; */
+		/* i386_regs.xgs = x86_64_regs.gs; */
+		i386_regs.orig_eax = x86_64_regs.orig_rax;
+		i386_regs.eip = x86_64_regs.rip;
+		/* i386_regs.xcs = x86_64_regs.cs; */
+		/* i386_regs.eflags = x86_64_regs.eflags; */
+		i386_regs.esp = x86_64_regs.rsp;
+		/* i386_regs.xss = x86_64_regs.ss; */
+	}
+#  else
+#   error unhandled architecture
+#  endif /* ARM || I386 || X86_64 */
+# endif
+}
+#endif /* !get_regs */
+
 /* Returns:
  * 0: "ignore this ptrace stop", bail out of trace_syscall_entering() silently.
  * 1: ok, continue in trace_syscall_entering().
@@ -707,6 +1125,7 @@
 		/*
 		 * Old style of "passing" the scno via the SVC instruction.
 		 */
+		long psw;
 		long opcode, offset_reg, tmp;
 		void *svc_addr;
 		static const int gpr_offset[16] = {
@@ -716,12 +1135,12 @@
 				PT_GPR12, PT_GPR13, PT_GPR14,    PT_GPR15
 		};
 
-		if (upeek(tcp, PT_PSWADDR, &pc) < 0)
+		if (upeek(tcp, PT_PSWADDR, &psw) < 0)
 			return -1;
 		errno = 0;
-		opcode = ptrace(PTRACE_PEEKTEXT, tcp->pid, (char *)(pc-sizeof(long)), 0);
+		opcode = ptrace(PTRACE_PEEKTEXT, tcp->pid, (char *)(psw - sizeof(long)), 0);
 		if (errno) {
-			perror("peektext(pc-oneword)");
+			perror_msg("peektext(psw-oneword)");
 			return -1;
 		}
 
@@ -796,42 +1215,50 @@
 	update_personality(tcp, currpers);
 # endif
 #elif defined(AVR32)
-	/* Read complete register set in one go. */
-	if (ptrace(PTRACE_GETREGS, tcp->pid, NULL, &regs) < 0)
-		return -1;
-	scno = regs.r8;
+	scno = avr32_regs.r8;
 #elif defined(BFIN)
 	if (upeek(tcp, PT_ORIG_P0, &scno))
 		return -1;
 #elif defined(I386)
-	if (ptrace(PTRACE_GETREGS, tcp->pid, NULL, (long) &i386_regs) < 0)
-		return -1;
 	scno = i386_regs.orig_eax;
 #elif defined(X86_64) || defined(X32)
 # ifndef __X32_SYSCALL_BIT
 #  define __X32_SYSCALL_BIT	0x40000000
 # endif
-# ifndef __X32_SYSCALL_MASK
-#  define __X32_SYSCALL_MASK	__X32_SYSCALL_BIT
-# endif
-
 	int currpers;
-	if (ptrace(PTRACE_GETREGS, tcp->pid, NULL, (long) &x86_64_regs) < 0)
-		return -1;
-	scno = x86_64_regs.orig_rax;
-
-	/* Check CS register value. On x86-64 linux it is:
-	 *	0x33	for long mode (64 bit)
-	 *	0x23	for compatibility mode (32 bit)
-	 * Check DS register value. On x86-64 linux it is:
-	 *	0x2b	for x32 mode (x86-64 in 32 bit)
+# if 1
+	/* GETREGSET of NT_PRSTATUS tells us regset size,
+	 * which unambiguously detects i386.
+	 *
+	 * Linux kernel distinguishes x86-64 and x32 processes
+	 * solely by looking at __X32_SYSCALL_BIT:
+	 * arch/x86/include/asm/compat.h::is_x32_task():
+	 * if (task_pt_regs(current)->orig_ax & __X32_SYSCALL_BIT)
+	 *         return true;
 	 */
+	if (x86_io.iov_len == sizeof(i386_regs)) {
+		scno = i386_regs.orig_eax;
+		currpers = 1;
+	} else {
+		scno = x86_64_regs.orig_rax;
+		currpers = 0;
+		if (scno & __X32_SYSCALL_BIT) {
+			scno -= __X32_SYSCALL_BIT;
+			currpers = 2;
+		}
+	}
+# elif 0
+	/* cs = 0x33 for long mode (native 64 bit and x32)
+	 * cs = 0x23 for compatibility mode (32 bit)
+	 * ds = 0x2b for x32 mode (x86-64 in 32 bit)
+	 */
+	scno = x86_64_regs.orig_rax;
 	switch (x86_64_regs.cs) {
 		case 0x23: currpers = 1; break;
 		case 0x33:
 			if (x86_64_regs.ds == 0x2b) {
 				currpers = 2;
-				scno &= ~__X32_SYSCALL_MASK;
+				scno &= ~__X32_SYSCALL_BIT;
 			} else
 				currpers = 0;
 			break;
@@ -842,19 +1269,15 @@
 			currpers = current_personality;
 			break;
 	}
-# if 0
+# elif 0
 	/* This version analyzes the opcode of a syscall instruction.
 	 * (int 0x80 on i386 vs. syscall on x86-64)
-	 * It works, but is too complicated.
+	 * It works, but is too complicated, and strictly speaking, unreliable.
 	 */
-	unsigned long val, rip, i;
-
-	rip = x86_64_regs.rip;
-
+	unsigned long call, rip = x86_64_regs.rip;
 	/* sizeof(syscall) == sizeof(int 0x80) == 2 */
 	rip -= 2;
 	errno = 0;
-
 	call = ptrace(PTRACE_PEEKTEXT, tcp->pid, (char *)rip, (char *)0);
 	if (errno)
 		fprintf(stderr, "ptrace_peektext failed: %s\n",
@@ -873,28 +1296,24 @@
 			break;
 	}
 # endif
+
 # ifdef X32
-	/* Value of currpers:
-	 *   0: 64 bit
-	 *   1: 32 bit
-	 *   2: X32
-	 * Value of current_personality:
-	 *   0: X32
-	 *   1: 32 bit
+	/* If we are built for a x32 system, then personality 0 is x32
+	 * (not x86_64), and stracing of x86_64 apps is not supported.
+	 * Stracing of i386 apps is still supported.
 	 */
-	switch (currpers) {
-		case 0:
-			fprintf(stderr, "syscall_%lu (...) in unsupported "
-					"64-bit mode of process PID=%d\n",
-				scno, tcp->pid);
-			return 0;
-		case 2:
-			currpers = 0;
+	if (currpers == 0) {
+		fprintf(stderr, "syscall_%lu(...) in unsupported "
+				"64-bit mode of process PID=%d\n",
+			scno, tcp->pid);
+		return 0;
 	}
+	currpers &= ~2; /* map 2,1 to 0,1 */
 # endif
 	update_personality(tcp, currpers);
 #elif defined(IA64)
 #	define IA64_PSR_IS	((long)1 << 34)
+	long psr;
 	if (upeek(tcp, PT_CR_IPSR, &psr) >= 0)
 		ia32 = (psr & IA64_PSR_IS) != 0;
 	if (ia32) {
@@ -904,65 +1323,53 @@
 		if (upeek(tcp, PT_R15, &scno) < 0)
 			return -1;
 	}
-#elif defined(ARM)
-	/* Read complete register set in one go. */
-	if (ptrace(PTRACE_GETREGS, tcp->pid, NULL, (void *)&regs) == -1)
-		return -1;
-
-	/*
-	 * We only need to grab the syscall number on syscall entry.
-	 */
-	if (regs.ARM_ip == 0) {
-		/*
-		 * Note: we only deal with only 32-bit CPUs here.
-		 */
-		if (regs.ARM_cpsr & 0x20) {
-			/*
-			 * Get the Thumb-mode system call number
-			 */
-			scno = regs.ARM_r7;
-		} else {
-			/*
-			 * Get the ARM-mode system call number
-			 */
-			errno = 0;
-			scno = ptrace(PTRACE_PEEKTEXT, tcp->pid, (void *)(regs.ARM_pc - 4), NULL);
-			if (errno)
-				return -1;
-
-			/* Handle the EABI syscall convention.  We do not
-			   bother converting structures between the two
-			   ABIs, but basic functionality should work even
-			   if strace and the traced program have different
-			   ABIs.  */
-			if (scno == 0xef000000) {
-				scno = regs.ARM_r7;
-			} else {
-				if ((scno & 0x0ff00000) != 0x0f900000) {
-					fprintf(stderr, "syscall: unknown syscall trap 0x%08lx\n",
-						scno);
-					return -1;
-				}
-
-				/*
-				 * Fixup the syscall number
-				 */
-				scno &= 0x000fffff;
-			}
-		}
-		if (scno & 0x0f0000) {
-			/*
-			 * Handle ARM specific syscall
-			 */
+#elif defined(AARCH64)
+	switch (aarch64_io.iov_len) {
+		case sizeof(aarch64_regs):
+			/* We are in 64-bit mode */
+			scno = aarch64_regs.regs[8];
 			update_personality(tcp, 1);
-			scno &= 0x0000ffff;
-		} else
+			break;
+		case sizeof(arm_regs):
+			/* We are in 32-bit mode */
+			scno = arm_regs.ARM_r7;
 			update_personality(tcp, 0);
-
-	} else {
-		fprintf(stderr, "pid %d stray syscall entry\n", tcp->pid);
-		tcp->flags |= TCB_INSYSCALL;
+			break;
 	}
+#elif defined(ARM)
+	if (arm_regs.ARM_ip != 0) {
+		/* It is not a syscall entry */
+		fprintf(stderr, "pid %d stray syscall exit\n", tcp->pid);
+		tcp->flags |= TCB_INSYSCALL;
+		return 0;
+	}
+	/* Note: we support only 32-bit CPUs, not 26-bit */
+
+	if (arm_regs.ARM_cpsr & 0x20) {
+		/* Thumb mode */
+		scno = arm_regs.ARM_r7;
+	} else {
+		/* ARM mode */
+		errno = 0;
+		scno = ptrace(PTRACE_PEEKTEXT, tcp->pid, (void *)(arm_regs.ARM_pc - 4), NULL);
+		if (errno)
+			return -1;
+
+		/* EABI syscall convention? */
+		if (scno == 0xef000000) {
+			scno = arm_regs.ARM_r7; /* yes */
+		} else {
+			if ((scno & 0x0ff00000) != 0x0f900000) {
+				fprintf(stderr, "pid %d unknown syscall trap 0x%08lx\n",
+					tcp->pid, scno);
+				return -1;
+			}
+			/* Fixup the syscall number */
+			scno &= 0x000fffff;
+		}
+	}
+
+	scno = shuffle_scno(scno);
 #elif defined(M68K)
 	if (upeek(tcp, 4*PT_ORIG_D0, &scno) < 0)
 		return -1;
@@ -971,32 +1378,32 @@
 
 	if (ptrace(PTRACE_GETREGS, tcp->pid, NULL, (long) &regs) < 0)
 		return -1;
-	a3 = regs[REG_A3];
-	r2 = regs[REG_V0];
+	mips_a3 = regs[REG_A3];
+	mips_r2 = regs[REG_V0];
 
-	scno = r2;
+	scno = mips_r2;
 	if (!SCNO_IN_RANGE(scno)) {
-		if (a3 == 0 || a3 == -1) {
+		if (mips_a3 == 0 || mips_a3 == -1) {
 			if (debug_flag)
 				fprintf(stderr, "stray syscall exit: v0 = %ld\n", scno);
 			return 0;
 		}
 	}
 #elif defined(MIPS)
-	if (upeek(tcp, REG_A3, &a3) < 0)
+	if (upeek(tcp, REG_A3, &mips_a3) < 0)
 		return -1;
 	if (upeek(tcp, REG_V0, &scno) < 0)
 		return -1;
 
 	if (!SCNO_IN_RANGE(scno)) {
-		if (a3 == 0 || a3 == -1) {
+		if (mips_a3 == 0 || mips_a3 == -1) {
 			if (debug_flag)
 				fprintf(stderr, "stray syscall exit: v0 = %ld\n", scno);
 			return 0;
 		}
 	}
 #elif defined(ALPHA)
-	if (upeek(tcp, REG_A3, &a3) < 0)
+	if (upeek(tcp, REG_A3, &alpha_a3) < 0)
 		return -1;
 	if (upeek(tcp, REG_R0, &scno) < 0)
 		return -1;
@@ -1006,25 +1413,22 @@
 	 * really a syscall entry
 	 */
 	if (!SCNO_IN_RANGE(scno)) {
-		if (a3 == 0 || a3 == -1) {
+		if (alpha_a3 == 0 || alpha_a3 == -1) {
 			if (debug_flag)
 				fprintf(stderr, "stray syscall exit: r0 = %ld\n", scno);
 			return 0;
 		}
 	}
 #elif defined(SPARC) || defined(SPARC64)
-	/* Everything we need is in the current register set. */
-	if (ptrace(PTRACE_GETREGS, tcp->pid, (char *)&regs, 0) < 0)
-		return -1;
-
 	/* Disassemble the syscall trap. */
 	/* Retrieve the syscall trap instruction. */
+	unsigned long trap;
 	errno = 0;
 # if defined(SPARC64)
-	trap = ptrace(PTRACE_PEEKTEXT, tcp->pid, (char *)regs.tpc, 0);
+	trap = ptrace(PTRACE_PEEKTEXT, tcp->pid, (char *)sparc_regs.tpc, 0);
 	trap >>= 32;
 # else
-	trap = ptrace(PTRACE_PEEKTEXT, tcp->pid, (char *)regs.pc, 0);
+	trap = ptrace(PTRACE_PEEKTEXT, tcp->pid, (char *)sparc_regs.pc, 0);
 # endif
 	if (errno)
 		return -1;
@@ -1057,9 +1461,9 @@
 		break;
 	default:
 # if defined(SPARC64)
-		fprintf(stderr, "syscall: unknown syscall trap %08lx %016lx\n", trap, regs.tpc);
+		fprintf(stderr, "syscall: unknown syscall trap %08lx %016lx\n", trap, sparc_regs.tpc);
 # else
-		fprintf(stderr, "syscall: unknown syscall trap %08lx %08lx\n", trap, regs.pc);
+		fprintf(stderr, "syscall: unknown syscall trap %08lx %08lx\n", trap, sparc_regs.pc);
 # endif
 		return -1;
 	}
@@ -1068,10 +1472,10 @@
 	if (trap == 0x91d02027)
 		scno = 156;
 	else
-		scno = regs.u_regs[U_REG_G1];
+		scno = sparc_regs.u_regs[U_REG_G1];
 	if (scno == 0) {
-		scno = regs.u_regs[U_REG_O0];
-		memmove(&regs.u_regs[U_REG_O0], &regs.u_regs[U_REG_O1], 7*sizeof(regs.u_regs[0]));
+		scno = sparc_regs.u_regs[U_REG_O0];
+		memmove(&sparc_regs.u_regs[U_REG_O0], &sparc_regs.u_regs[U_REG_O1], 7*sizeof(sparc_regs.u_regs[0]));
 	}
 #elif defined(HPPA)
 	if (upeek(tcp, PT_GR20, &scno) < 0)
@@ -1104,24 +1508,46 @@
 	if (upeek(tcp, 4*PT_R9, &scno) < 0)
 		return -1;
 #elif defined(TILE)
-	if (upeek(tcp, PTREGS_OFFSET_REG(10), &scno) < 0)
-		return -1;
+	int currpers;
+	scno = tile_regs.regs[10];
+# ifdef __tilepro__
+	currpers = 1;
+# else
+#  ifndef PT_FLAGS_COMPAT
+#   define PT_FLAGS_COMPAT 0x10000  /* from Linux 3.8 on */
+#  endif
+	if (tile_regs.flags & PT_FLAGS_COMPAT)
+		currpers = 1;
+	else
+		currpers = 0;
+# endif
+	update_personality(tcp, currpers);
 #elif defined(MICROBLAZE)
 	if (upeek(tcp, 0, &scno) < 0)
 		return -1;
-#endif
-
-#if defined(SH)
-	/* new syscall ABI returns result in R0 */
-	if (upeek(tcp, 4*REG_REG0, (long *)&r0) < 0)
-		return -1;
-#elif defined(SH64)
-	/* ABI defines result returned in r9 */
-	if (upeek(tcp, REG_GENERAL(9), (long *)&r9) < 0)
+#elif defined(OR1K)
+	scno = or1k_regs.gpr[11];
+#elif defined(METAG)
+	scno = metag_regs.dx[0][1];	/* syscall number in D1Re0 (D1.0) */
+#elif defined(XTENSA)
+	if (upeek(tcp, SYSCALL_NR, &scno) < 0)
 		return -1;
 #endif
 
 	tcp->scno = scno;
+	if (SCNO_IS_VALID(tcp->scno)) {
+		tcp->s_ent = &sysent[scno];
+		tcp->qual_flg = qual_flags[scno];
+	} else {
+		static const struct_sysent unknown = {
+			.nargs = MAX_ARGS,
+			.sys_flags = 0,
+			.sys_func = printargs,
+			.sys_name = "unknown", /* not used */
+		};
+		tcp->s_ent = &unknown;
+		tcp->qual_flg = UNDEFINED_SCNO | QUAL_RAW | DEFAULT_QUAL_FLAGS;
+	}
 	return 1;
 }
 
@@ -1144,9 +1570,14 @@
 	}
 #elif defined(X86_64) || defined(X32)
 	{
-		long rax = x86_64_regs.rax;
-		if (current_personality == 1)
-			rax = (int)rax; /* sign extend from 32 bits */
+		long rax;
+		if (x86_io.iov_len == sizeof(i386_regs)) {
+			/* Sign extend from 32 bits */
+			rax = (int32_t)i386_regs.eax;
+		} else {
+			/* Note: in X32 build, this truncates 64 to 32 bits */
+			rax = x86_64_regs.rax;
+		}
 		if (rax != -ENOSYS) {
 			if (debug_flag)
 				fprintf(stderr, "not a syscall entry (rax = %ld)\n", rax);
@@ -1169,37 +1600,37 @@
 	}
 #elif defined(M68K)
 	/* TODO? Eliminate upeek's in arches below like we did in x86 */
-	if (upeek(tcp, 4*PT_D0, &d0) < 0)
+	if (upeek(tcp, 4*PT_D0, &m68k_d0) < 0)
 		return -1;
-	if (d0 != -ENOSYS) {
+	if (m68k_d0 != -ENOSYS) {
 		if (debug_flag)
-			fprintf(stderr, "not a syscall entry (d0 = %ld)\n", d0);
+			fprintf(stderr, "not a syscall entry (d0 = %ld)\n", m68k_d0);
 		return 0;
 	}
 #elif defined(IA64)
-	if (upeek(tcp, PT_R10, &r10) < 0)
+	if (upeek(tcp, PT_R10, &ia64_r10) < 0)
 		return -1;
-	if (upeek(tcp, PT_R8, &r8) < 0)
+	if (upeek(tcp, PT_R8, &ia64_r8) < 0)
 		return -1;
-	if (ia32 && r8 != -ENOSYS) {
+	if (ia32 && ia64_r8 != -ENOSYS) {
 		if (debug_flag)
-			fprintf(stderr, "not a syscall entry (r8 = %ld)\n", r8);
+			fprintf(stderr, "not a syscall entry (r8 = %ld)\n", ia64_r8);
 		return 0;
 	}
 #elif defined(CRISV10) || defined(CRISV32)
-	if (upeek(tcp, 4*PT_R10, &r10) < 0)
+	if (upeek(tcp, 4*PT_R10, &cris_r10) < 0)
 		return -1;
-	if (r10 != -ENOSYS) {
+	if (cris_r10 != -ENOSYS) {
 		if (debug_flag)
-			fprintf(stderr, "not a syscall entry (r10 = %ld)\n", r10);
+			fprintf(stderr, "not a syscall entry (r10 = %ld)\n", cris_r10);
 		return 0;
 	}
 #elif defined(MICROBLAZE)
-	if (upeek(tcp, 3 * 4, &r3) < 0)
+	if (upeek(tcp, 3 * 4, &microblaze_r3) < 0)
 		return -1;
-	if (r3 != -ENOSYS) {
+	if (microblaze_r3 != -ENOSYS) {
 		if (debug_flag)
-			fprintf(stderr, "not a syscall entry (r3 = %ld)\n", r3);
+			fprintf(stderr, "not a syscall entry (r3 = %ld)\n", microblaze_r3);
 		return 0;
 	}
 #endif
@@ -1231,8 +1662,9 @@
 		 * CLONE_UNTRACED, so we keep the same logic with that option
 		 * and don't trace it.
 		 */
-		if ((sysent[tcp->scno].sys_func == sys_clone) &&
-		    (tcp->u_arg[ARG_FLAGS] & CLONE_UNTRACED))
+		if ((tcp->s_ent->sys_func == sys_clone)
+		 && (tcp->u_arg[ARG_FLAGS] & CLONE_UNTRACED)
+		)
 			return;
 		setbpt(tcp);
 	} else {
@@ -1258,7 +1690,7 @@
 #endif
 
 static void
-internal_syscall(struct tcb *tcp)
+syscall_fixup_for_fork_exec(struct tcb *tcp)
 {
 	/*
 	 * We must always trace a few critical system calls in order to
@@ -1267,10 +1699,7 @@
 	 */
 	int (*func)();
 
-	if (!SCNO_IN_RANGE(tcp->scno))
-		return;
-
-	func = sysent[tcp->scno].sys_func;
+	func = tcp->s_ent->sys_func;
 
 	if (   sys_fork == func
 	    || sys_vfork == func
@@ -1298,10 +1727,7 @@
 {
 	int i, nargs;
 
-	if (SCNO_IN_RANGE(tcp->scno))
-		nargs = tcp->u_nargs = sysent[tcp->scno].nargs;
-	else
-		nargs = tcp->u_nargs = MAX_ARGS;
+	nargs = tcp->s_ent->nargs;
 
 #if defined(S390) || defined(S390X)
 	for (i = 0; i < nargs; ++i)
@@ -1391,23 +1817,29 @@
 	}
 #elif defined(SPARC) || defined(SPARC64)
 	for (i = 0; i < nargs; ++i)
-		tcp->u_arg[i] = regs.u_regs[U_REG_O0 + i];
+		tcp->u_arg[i] = sparc_regs.u_regs[U_REG_O0 + i];
 #elif defined(HPPA)
 	for (i = 0; i < nargs; ++i)
 		if (upeek(tcp, PT_GR26-4*i, &tcp->u_arg[i]) < 0)
 			return -1;
-#elif defined(ARM)
+#elif defined(ARM) || defined(AARCH64)
+# if defined(AARCH64)
+	if (tcp->currpers == 1)
+		for (i = 0; i < nargs; ++i)
+			tcp->u_arg[i] = aarch64_regs.regs[i];
+	else
+# endif
 	for (i = 0; i < nargs; ++i)
-		tcp->u_arg[i] = regs.uregs[i];
+		tcp->u_arg[i] = arm_regs.uregs[i];
 #elif defined(AVR32)
 	(void)i;
 	(void)nargs;
-	tcp->u_arg[0] = regs.r12;
-	tcp->u_arg[1] = regs.r11;
-	tcp->u_arg[2] = regs.r10;
-	tcp->u_arg[3] = regs.r9;
-	tcp->u_arg[4] = regs.r5;
-	tcp->u_arg[5] = regs.r3;
+	tcp->u_arg[0] = avr32_regs.r12;
+	tcp->u_arg[1] = avr32_regs.r11;
+	tcp->u_arg[2] = avr32_regs.r10;
+	tcp->u_arg[3] = avr32_regs.r9;
+	tcp->u_arg[4] = avr32_regs.r5;
+	tcp->u_arg[5] = avr32_regs.r3;
 #elif defined(BFIN)
 	static const int argreg[MAX_ARGS] = { PT_R0, PT_R1, PT_R2, PT_R3, PT_R4, PT_R5 };
 
@@ -1431,10 +1863,20 @@
 	for (i = 0; i < nargs; ++i)
 		if (upeek(tcp, REG_GENERAL(syscall_regs[i]), &tcp->u_arg[i]) < 0)
 			return -1;
+#elif defined(I386)
+	(void)i;
+	(void)nargs;
+	tcp->u_arg[0] = i386_regs.ebx;
+	tcp->u_arg[1] = i386_regs.ecx;
+	tcp->u_arg[2] = i386_regs.edx;
+	tcp->u_arg[3] = i386_regs.esi;
+	tcp->u_arg[4] = i386_regs.edi;
+	tcp->u_arg[5] = i386_regs.ebp;
 #elif defined(X86_64) || defined(X32)
 	(void)i;
 	(void)nargs;
-	if (current_personality != 1) { /* x86-64 or x32 ABI */
+	if (x86_io.iov_len != sizeof(i386_regs)) {
+		/* x86-64 or x32 ABI */
 		tcp->u_arg[0] = x86_64_regs.rdi;
 		tcp->u_arg[1] = x86_64_regs.rsi;
 		tcp->u_arg[2] = x86_64_regs.rdx;
@@ -1449,14 +1891,18 @@
 		tcp->ext_arg[4] = x86_64_regs.r8;
 		tcp->ext_arg[5] = x86_64_regs.r9;
 #  endif
-	} else { /* i386 ABI */
-		/* Sign-extend lower 32 bits */
-		tcp->u_arg[0] = (long)(int)x86_64_regs.rbx;
-		tcp->u_arg[1] = (long)(int)x86_64_regs.rcx;
-		tcp->u_arg[2] = (long)(int)x86_64_regs.rdx;
-		tcp->u_arg[3] = (long)(int)x86_64_regs.rsi;
-		tcp->u_arg[4] = (long)(int)x86_64_regs.rdi;
-		tcp->u_arg[5] = (long)(int)x86_64_regs.rbp;
+	} else {
+		/* i386 ABI */
+		/* Zero-extend from 32 bits */
+		/* Use widen_to_long(tcp->u_arg[N]) in syscall handlers
+		 * if you need to use *sign-extended* parameter.
+		 */
+		tcp->u_arg[0] = (long)(uint32_t)i386_regs.ebx;
+		tcp->u_arg[1] = (long)(uint32_t)i386_regs.ecx;
+		tcp->u_arg[2] = (long)(uint32_t)i386_regs.edx;
+		tcp->u_arg[3] = (long)(uint32_t)i386_regs.esi;
+		tcp->u_arg[4] = (long)(uint32_t)i386_regs.edi;
+		tcp->u_arg[5] = (long)(uint32_t)i386_regs.ebp;
 	}
 #elif defined(MICROBLAZE)
 	for (i = 0; i < nargs; ++i)
@@ -1473,21 +1919,25 @@
 			return -1;
 #elif defined(TILE)
 	for (i = 0; i < nargs; ++i)
-		if (upeek(tcp, PTREGS_OFFSET_REG(i), &tcp->u_arg[i]) < 0)
-			return -1;
+		tcp->u_arg[i] = tile_regs.regs[i];
 #elif defined(M68K)
 	for (i = 0; i < nargs; ++i)
 		if (upeek(tcp, (i < 5 ? i : i + 2)*4, &tcp->u_arg[i]) < 0)
 			return -1;
-#elif defined(I386)
-	(void)i;
+#elif defined(OR1K)
 	(void)nargs;
-	tcp->u_arg[0] = i386_regs.ebx;
-	tcp->u_arg[1] = i386_regs.ecx;
-	tcp->u_arg[2] = i386_regs.edx;
-	tcp->u_arg[3] = i386_regs.esi;
-	tcp->u_arg[4] = i386_regs.edi;
-	tcp->u_arg[5] = i386_regs.ebp;
+	for (i = 0; i < 6; ++i)
+		tcp->u_arg[i] = or1k_regs.gpr[3 + i];
+#elif defined(METAG)
+	for (i = 0; i < nargs; i++)
+		/* arguments go backwards from D1Ar1 (D1.3) */
+		tcp->u_arg[i] = ((unsigned long *)&metag_regs.dx[3][1])[-i];
+#elif defined(XTENSA)
+	/* arg0: a6, arg1: a3, arg2: a4, arg3: a5, arg4: a8, arg5: a9 */
+	static const int xtensaregs[MAX_ARGS] = { 6, 3, 4, 5, 8, 9 };
+	for (i = 0; i < nargs; ++i)
+		if (upeek(tcp, REG_A_BASE + xtensaregs[i], &tcp->u_arg[i]) < 0)
+			return -1;
 #else /* Other architecture (32bits specific) */
 	for (i = 0; i < nargs; ++i)
 		if (upeek(tcp, i*4, &tcp->u_arg[i]) < 0)
@@ -1509,7 +1959,7 @@
 	}
 #endif
 
-	scno_good = res = get_scno(tcp);
+	scno_good = res = (get_regs_error ? -1 : get_scno(tcp));
 	if (res == 0)
 		return res;
 	if (res == 1) {
@@ -1524,10 +1974,10 @@
 		printleader(tcp);
 		if (scno_good != 1)
 			tprints("????" /* anti-trigraph gap */ "(");
-		else if (!SCNO_IN_RANGE(tcp->scno))
-			tprintf("syscall_%lu(", tcp->scno);
+		else if (tcp->qual_flg & UNDEFINED_SCNO)
+			tprintf("%s(", undefined_scno_name(tcp));
 		else
-			tprintf("%s(", sysent[tcp->scno].sys_name);
+			tprintf("%s(", tcp->s_ent->sys_name);
 		/*
 		 * " <unavailable>" will be added later by the code which
 		 * detects ptrace errors.
@@ -1535,54 +1985,60 @@
 		goto ret;
 	}
 
+	if (   sys_execve == tcp->s_ent->sys_func
+# if defined(SPARC) || defined(SPARC64)
+	    || sys_execv == tcp->s_ent->sys_func
+# endif
+	   ) {
+		hide_log_until_execve = 0;
+	}
+
 #if defined(SYS_socket_subcall) || defined(SYS_ipc_subcall)
-	while (SCNO_IN_RANGE(tcp->scno)) {
+	while (1) {
 # ifdef SYS_socket_subcall
-		if (sysent[tcp->scno].sys_func == sys_socketcall) {
+		if (tcp->s_ent->sys_func == sys_socketcall) {
 			decode_socket_subcall(tcp);
 			break;
 		}
 # endif
 # ifdef SYS_ipc_subcall
-		if (sysent[tcp->scno].sys_func == sys_ipc) {
+		if (tcp->s_ent->sys_func == sys_ipc) {
 			decode_ipc_subcall(tcp);
 			break;
 		}
 # endif
 		break;
 	}
-#endif /* SYS_socket_subcall || SYS_ipc_subcall */
+#endif
 
-	internal_syscall(tcp);
+	if (need_fork_exec_workarounds)
+		syscall_fixup_for_fork_exec(tcp);
 
-	if ((SCNO_IN_RANGE(tcp->scno) &&
-	     !(qual_flags[tcp->scno] & QUAL_TRACE)) ||
-	    (tracing_paths && !pathtrace_match(tcp))) {
+	if (!(tcp->qual_flg & QUAL_TRACE)
+	 || (tracing_paths && !pathtrace_match(tcp))
+	) {
 		tcp->flags |= TCB_INSYSCALL | TCB_FILTERED;
 		return 0;
 	}
 
 	tcp->flags &= ~TCB_FILTERED;
 
-	if (cflag == CFLAG_ONLY_STATS) {
+	if (cflag == CFLAG_ONLY_STATS || hide_log_until_execve) {
 		res = 0;
 		goto ret;
 	}
 
 	printleader(tcp);
-	if (!SCNO_IN_RANGE(tcp->scno))
-		tprintf("syscall_%lu(", tcp->scno);
+	if (tcp->qual_flg & UNDEFINED_SCNO)
+		tprintf("%s(", undefined_scno_name(tcp));
 	else
-		tprintf("%s(", sysent[tcp->scno].sys_name);
-	if (!SCNO_IN_RANGE(tcp->scno) ||
-	    ((qual_flags[tcp->scno] & QUAL_RAW) &&
-	     sysent[tcp->scno].sys_func != sys_exit))
+		tprintf("%s(", tcp->s_ent->sys_name);
+	if ((tcp->qual_flg & QUAL_RAW) && tcp->s_ent->sys_func != sys_exit)
 		res = printargs(tcp);
 	else
-		res = (*sysent[tcp->scno].sys_func)(tcp);
+		res = tcp->s_ent->sys_func(tcp);
 
-	if (fflush(tcp->outf) == EOF)
-		return -1;
+	fflush(tcp->outf);
  ret:
 	tcp->flags |= TCB_INSYSCALL;
 	/* Measure the entrance time as late as possible to avoid errors. */
@@ -1614,78 +2070,82 @@
 			ppc_result = -ppc_result;
 	}
 #elif defined(AVR32)
-	/* Read complete register set in one go. */
-	if (ptrace(PTRACE_GETREGS, tcp->pid, NULL, &regs) < 0)
-		return -1;
+	/* already done by get_regs */
 #elif defined(BFIN)
-	if (upeek(tcp, PT_R0, &r0) < 0)
+	if (upeek(tcp, PT_R0, &bfin_r0) < 0)
 		return -1;
 #elif defined(I386)
-	if (ptrace(PTRACE_GETREGS, tcp->pid, NULL, (long) &i386_regs) < 0)
-		return -1;
+	/* already done by get_regs */
 #elif defined(X86_64) || defined(X32)
-	if (ptrace(PTRACE_GETREGS, tcp->pid, NULL, (long) &x86_64_regs) < 0)
-		return -1;
+	/* already done by get_regs */
 #elif defined(IA64)
 #	define IA64_PSR_IS	((long)1 << 34)
+	long psr;
 	if (upeek(tcp, PT_CR_IPSR, &psr) >= 0)
 		ia32 = (psr & IA64_PSR_IS) != 0;
-	if (upeek(tcp, PT_R8, &r8) < 0)
+	if (upeek(tcp, PT_R8, &ia64_r8) < 0)
 		return -1;
-	if (upeek(tcp, PT_R10, &r10) < 0)
+	if (upeek(tcp, PT_R10, &ia64_r10) < 0)
 		return -1;
 #elif defined(ARM)
-	/* Read complete register set in one go. */
-	if (ptrace(PTRACE_GETREGS, tcp->pid, NULL, (void *)&regs) == -1)
-		return -1;
+	/* already done by get_regs */
+#elif defined(AARCH64)
+	/* register reading already done by get_regs */
+
+	/* Used to do this, but we did it on syscall entry already: */
+	/* We are in 64-bit mode (personality 1) if register struct is aarch64_regs,
+	 * else it's personality 0.
+	 */
+	/*update_personality(tcp, aarch64_io.iov_len == sizeof(aarch64_regs));*/
 #elif defined(M68K)
-	if (upeek(tcp, 4*PT_D0, &d0) < 0)
+	if (upeek(tcp, 4*PT_D0, &m68k_d0) < 0)
 		return -1;
 #elif defined(LINUX_MIPSN32)
 	unsigned long long regs[38];
 
 	if (ptrace(PTRACE_GETREGS, tcp->pid, NULL, (long) &regs) < 0)
 		return -1;
-	a3 = regs[REG_A3];
-	r2 = regs[REG_V0];
+	mips_a3 = regs[REG_A3];
+	mips_r2 = regs[REG_V0];
 #elif defined(MIPS)
-	if (upeek(tcp, REG_A3, &a3) < 0)
+	if (upeek(tcp, REG_A3, &mips_a3) < 0)
 		return -1;
-	if (upeek(tcp, REG_V0, &r2) < 0)
+	if (upeek(tcp, REG_V0, &mips_r2) < 0)
 		return -1;
 #elif defined(ALPHA)
-	if (upeek(tcp, REG_A3, &a3) < 0)
+	if (upeek(tcp, REG_A3, &alpha_a3) < 0)
 		return -1;
-	if (upeek(tcp, REG_R0, &r0) < 0)
+	if (upeek(tcp, REG_R0, &alpha_r0) < 0)
 		return -1;
 #elif defined(SPARC) || defined(SPARC64)
-	/* Everything we need is in the current register set. */
-	if (ptrace(PTRACE_GETREGS, tcp->pid, (char *)&regs, 0) < 0)
-		return -1;
+	/* already done by get_regs */
 #elif defined(HPPA)
-	if (upeek(tcp, PT_GR28, &r28) < 0)
+	if (upeek(tcp, PT_GR28, &hppa_r28) < 0)
 		return -1;
 #elif defined(SH)
-#elif defined(SH64)
-#elif defined(CRISV10) || defined(CRISV32)
-	if (upeek(tcp, 4*PT_R10, &r10) < 0)
-		return -1;
-#elif defined(TILE)
-#elif defined(MICROBLAZE)
-	if (upeek(tcp, 3 * 4, &r3) < 0)
-		return -1;
-#endif
-
-#if defined(SH)
 	/* new syscall ABI returns result in R0 */
-	if (upeek(tcp, 4*REG_REG0, (long *)&r0) < 0)
+	if (upeek(tcp, 4*REG_REG0, (long *)&sh_r0) < 0)
 		return -1;
 #elif defined(SH64)
 	/* ABI defines result returned in r9 */
-	if (upeek(tcp, REG_GENERAL(9), (long *)&r9) < 0)
+	if (upeek(tcp, REG_GENERAL(9), (long *)&sh64_r9) < 0)
+		return -1;
+#elif defined(CRISV10) || defined(CRISV32)
+	if (upeek(tcp, 4*PT_R10, &cris_r10) < 0)
+		return -1;
+#elif defined(TILE)
+	/* already done by get_regs */
+#elif defined(MICROBLAZE)
+	if (upeek(tcp, 3 * 4, &microblaze_r3) < 0)
+		return -1;
+#elif defined(OR1K)
+	/* already done by get_regs */
+#elif defined(METAG)
+	/* already done by get_regs */
+#elif defined(XTENSA)
+	if (upeek(tcp, REG_A_BASE + 2, &xtensa_a2) < 0)
 		return -1;
 #endif
-
 	return 1;
 }
 
@@ -1716,7 +2176,7 @@
 is_negated_errno(unsigned long int val)
 {
 	unsigned long int max = -(long int) nerrnos;
-#if SUPPORTED_PERSONALITIES > 1
+#if SUPPORTED_PERSONALITIES > 1 && SIZEOF_LONG > 4
 	if (current_wordsize < sizeof(val)) {
 		val = (unsigned int) val;
 		max = (unsigned int) max;
@@ -1725,18 +2185,35 @@
 	return val > max;
 }
 
+#if defined(X32)
+static inline int
+is_negated_errno_x32(unsigned long long val)
+{
+	unsigned long long max = -(long long) nerrnos;
+	/*
+	 * current_wordsize is 4 even in personality 0 (native X32)
+	 * but truncation _must not_ be done in it.
+	 * can't check current_wordsize here!
+	 */
+	if (current_personality != 0) {
+		val = (uint32_t) val;
+		max = (uint32_t) max;
+	}
+	return val > max;
+}
+#endif
+
 /* Returns:
  * 1: ok, continue in trace_syscall_exiting().
  * -1: error, trace_syscall_exiting() should print error indicator
  *    ("????" etc) and bail out.
  */
-static int
+static void
 get_error(struct tcb *tcp)
 {
 	int u_error = 0;
 	int check_errno = 1;
-	if (SCNO_IN_RANGE(tcp->scno) &&
-	    sysent[tcp->scno].sys_flags & SYSCALL_NEVER_FAILS) {
+	if (tcp->s_ent->sys_flags & SYSCALL_NEVER_FAILS) {
 		check_errno = 0;
 	}
 #if defined(S390) || defined(S390X)
@@ -1755,22 +2232,46 @@
 	else {
 		tcp->u_rval = i386_regs.eax;
 	}
-#elif defined(X86_64) || defined(X32)
-	if (check_errno && is_negated_errno(x86_64_regs.rax)) {
+#elif defined(X86_64)
+	long rax;
+	if (x86_io.iov_len == sizeof(i386_regs)) {
+		/* Sign extend from 32 bits */
+		rax = (int32_t)i386_regs.eax;
+	} else {
+		rax = x86_64_regs.rax;
+	}
+	if (check_errno && is_negated_errno(rax)) {
 		tcp->u_rval = -1;
-		u_error = -x86_64_regs.rax;
+		u_error = -rax;
 	}
 	else {
-		tcp->u_rval = x86_64_regs.rax;
-# if defined(X32)
-		tcp->u_lrval = x86_64_regs.rax;
-# endif
+		tcp->u_rval = rax;
+	}
+#elif defined(X32)
+	/* In X32, return value is 64-bit (llseek uses one).
+	 * Using merely "long rax" would not work.
+	 */
+	long long rax;
+	if (x86_io.iov_len == sizeof(i386_regs)) {
+		/* Sign extend from 32 bits */
+		rax = (int32_t)i386_regs.eax;
+	} else {
+		rax = x86_64_regs.rax;
+	}
+	/* Careful: is_negated_errno() works only on longs */
+	if (check_errno && is_negated_errno_x32(rax)) {
+		tcp->u_rval = -1;
+		u_error = -rax;
+	}
+	else {
+		tcp->u_rval = rax; /* truncating */
+		tcp->u_lrval = rax;
 	}
 #elif defined(IA64)
 	if (ia32) {
 		int err;
 
-		err = (int)r8;
+		err = (int)ia64_r8;
 		if (check_errno && is_negated_errno(err)) {
 			tcp->u_rval = -1;
 			u_error = -err;
@@ -1779,21 +2280,21 @@
 			tcp->u_rval = err;
 		}
 	} else {
-		if (check_errno && r10) {
+		if (check_errno && ia64_r10) {
 			tcp->u_rval = -1;
-			u_error = r8;
+			u_error = ia64_r8;
 		} else {
-			tcp->u_rval = r8;
+			tcp->u_rval = ia64_r8;
 		}
 	}
 #elif defined(MIPS)
-	if (check_errno && a3) {
+	if (check_errno && mips_a3) {
 		tcp->u_rval = -1;
-		u_error = r2;
+		u_error = mips_r2;
 	} else {
-		tcp->u_rval = r2;
+		tcp->u_rval = mips_r2;
 # if defined(LINUX_MIPSN32)
-		tcp->u_lrval = r2;
+		tcp->u_lrval = mips_r2;
 # endif
 	}
 #elif defined(POWERPC)
@@ -1805,144 +2306,185 @@
 		tcp->u_rval = ppc_result;
 	}
 #elif defined(M68K)
-	if (check_errno && is_negated_errno(d0)) {
+	if (check_errno && is_negated_errno(m68k_d0)) {
 		tcp->u_rval = -1;
-		u_error = -d0;
+		u_error = -m68k_d0;
 	}
 	else {
-		tcp->u_rval = d0;
+		tcp->u_rval = m68k_d0;
 	}
-#elif defined(ARM)
-	if (check_errno && is_negated_errno(regs.ARM_r0)) {
-		tcp->u_rval = -1;
-		u_error = -regs.ARM_r0;
+#elif defined(ARM) || defined(AARCH64)
+# if defined(AARCH64)
+	if (tcp->currpers == 1) {
+		if (check_errno && is_negated_errno(aarch64_regs.regs[0])) {
+			tcp->u_rval = -1;
+			u_error = -aarch64_regs.regs[0];
+		}
+		else {
+			tcp->u_rval = aarch64_regs.regs[0];
+		}
 	}
-	else {
-		tcp->u_rval = regs.ARM_r0;
+	else
+# endif
+	{
+		if (check_errno && is_negated_errno(arm_regs.ARM_r0)) {
+			tcp->u_rval = -1;
+			u_error = -arm_regs.ARM_r0;
+		}
+		else {
+			tcp->u_rval = arm_regs.ARM_r0;
+		}
 	}
 #elif defined(AVR32)
-	if (check_errno && regs.r12 && (unsigned) -regs.r12 < nerrnos) {
+	if (check_errno && avr32_regs.r12 && (unsigned) -avr32_regs.r12 < nerrnos) {
 		tcp->u_rval = -1;
-		u_error = -regs.r12;
+		u_error = -avr32_regs.r12;
 	}
 	else {
-		tcp->u_rval = regs.r12;
+		tcp->u_rval = avr32_regs.r12;
 	}
 #elif defined(BFIN)
-	if (check_errno && is_negated_errno(r0)) {
+	if (check_errno && is_negated_errno(bfin_r0)) {
 		tcp->u_rval = -1;
-		u_error = -r0;
+		u_error = -bfin_r0;
 	} else {
-		tcp->u_rval = r0;
+		tcp->u_rval = bfin_r0;
 	}
 #elif defined(ALPHA)
-	if (check_errno && a3) {
+	if (check_errno && alpha_a3) {
 		tcp->u_rval = -1;
-		u_error = r0;
+		u_error = alpha_r0;
 	}
 	else {
-		tcp->u_rval = r0;
+		tcp->u_rval = alpha_r0;
 	}
 #elif defined(SPARC)
-	if (check_errno && regs.psr & PSR_C) {
+	if (check_errno && sparc_regs.psr & PSR_C) {
 		tcp->u_rval = -1;
-		u_error = regs.u_regs[U_REG_O0];
+		u_error = sparc_regs.u_regs[U_REG_O0];
 	}
 	else {
-		tcp->u_rval = regs.u_regs[U_REG_O0];
+		tcp->u_rval = sparc_regs.u_regs[U_REG_O0];
 	}
 #elif defined(SPARC64)
-	if (check_errno && regs.tstate & 0x1100000000UL) {
+	if (check_errno && sparc_regs.tstate & 0x1100000000UL) {
 		tcp->u_rval = -1;
-		u_error = regs.u_regs[U_REG_O0];
+		u_error = sparc_regs.u_regs[U_REG_O0];
 	}
 	else {
-		tcp->u_rval = regs.u_regs[U_REG_O0];
+		tcp->u_rval = sparc_regs.u_regs[U_REG_O0];
 	}
 #elif defined(HPPA)
-	if (check_errno && is_negated_errno(r28)) {
+	if (check_errno && is_negated_errno(hppa_r28)) {
 		tcp->u_rval = -1;
-		u_error = -r28;
+		u_error = -hppa_r28;
 	}
 	else {
-		tcp->u_rval = r28;
+		tcp->u_rval = hppa_r28;
 	}
 #elif defined(SH)
-	if (check_errno && is_negated_errno(r0)) {
+	if (check_errno && is_negated_errno(sh_r0)) {
 		tcp->u_rval = -1;
-		u_error = -r0;
+		u_error = -sh_r0;
 	}
 	else {
-		tcp->u_rval = r0;
+		tcp->u_rval = sh_r0;
 	}
 #elif defined(SH64)
-	if (check_errno && is_negated_errno(r9)) {
+	if (check_errno && is_negated_errno(sh64_r9)) {
 		tcp->u_rval = -1;
-		u_error = -r9;
+		u_error = -sh64_r9;
 	}
 	else {
-		tcp->u_rval = r9;
+		tcp->u_rval = sh64_r9;
+	}
+#elif defined(METAG)
+	/* result pointer in D0Re0 (D0.0) */
+	if (check_errno && is_negated_errno(metag_regs.dx[0][0])) {
+		tcp->u_rval = -1;
+		u_error = -metag_regs.dx[0][0];
+	}
+	else {
+		tcp->u_rval = metag_regs.dx[0][0];
 	}
 #elif defined(CRISV10) || defined(CRISV32)
-	if (check_errno && r10 && (unsigned) -r10 < nerrnos) {
+	if (check_errno && cris_r10 && (unsigned) -cris_r10 < nerrnos) {
 		tcp->u_rval = -1;
-		u_error = -r10;
+		u_error = -cris_r10;
 	}
 	else {
-		tcp->u_rval = r10;
+		tcp->u_rval = cris_r10;
 	}
 #elif defined(TILE)
-	long rval;
-	if (upeek(tcp, PTREGS_OFFSET_REG(0), &rval) < 0)
-		return -1;
-	if (check_errno && rval < 0 && rval > -nerrnos) {
+	/*
+	 * The standard tile calling convention returns the value (or negative
+	 * errno) in r0, and zero (or positive errno) in r1.
+	 * Until at least kernel 3.8, however, the r1 value is not reflected
+	 * in ptregs at this point, so we use r0 here.
+	 */
+	if (check_errno && is_negated_errno(tile_regs.regs[0])) {
 		tcp->u_rval = -1;
-		u_error = -rval;
-	}
-	else {
-		tcp->u_rval = rval;
+		u_error = -tile_regs.regs[0];
+	} else {
+		tcp->u_rval = tile_regs.regs[0];
 	}
 #elif defined(MICROBLAZE)
-	if (check_errno && is_negated_errno(r3)) {
+	if (check_errno && is_negated_errno(microblaze_r3)) {
 		tcp->u_rval = -1;
-		u_error = -r3;
+		u_error = -microblaze_r3;
 	}
 	else {
-		tcp->u_rval = r3;
+		tcp->u_rval = microblaze_r3;
+	}
+#elif defined(OR1K)
+	if (check_errno && is_negated_errno(or1k_regs.gpr[11])) {
+		tcp->u_rval = -1;
+		u_error = -or1k_regs.gpr[11];
+	}
+	else {
+		tcp->u_rval = or1k_regs.gpr[11];
+	}
+#elif defined(XTENSA)
+	if (check_errno && is_negated_errno(xtensa_a2)) {
+		tcp->u_rval = -1;
+		u_error = -xtensa_a2;
+	}
+	else {
+		tcp->u_rval = xtensa_a2;
 	}
 #endif
 	tcp->u_error = u_error;
-	return 1;
 }
 
 static void
 dumpio(struct tcb *tcp)
 {
+	int (*func)();
+
 	if (syserror(tcp))
 		return;
-	if (tcp->u_arg[0] < 0 || tcp->u_arg[0] >= MAX_QUALS)
+	if ((unsigned long) tcp->u_arg[0] >= num_quals)
 		return;
-	if (!SCNO_IN_RANGE(tcp->scno))
-		return;
-	if (sysent[tcp->scno].sys_func == printargs)
+	func = tcp->s_ent->sys_func;
+	if (func == printargs)
 		return;
 	if (qual_flags[tcp->u_arg[0]] & QUAL_READ) {
-		if (sysent[tcp->scno].sys_func == sys_read ||
-		    sysent[tcp->scno].sys_func == sys_pread ||
-		    sysent[tcp->scno].sys_func == sys_recv ||
-		    sysent[tcp->scno].sys_func == sys_recvfrom)
+		if (func == sys_read ||
+		    func == sys_pread ||
+		    func == sys_recv ||
+		    func == sys_recvfrom)
 			dumpstr(tcp, tcp->u_arg[1], tcp->u_rval);
-		else if (sysent[tcp->scno].sys_func == sys_readv)
+		else if (func == sys_readv)
 			dumpiov(tcp, tcp->u_arg[2], tcp->u_arg[1]);
 		return;
 	}
 	if (qual_flags[tcp->u_arg[0]] & QUAL_WRITE) {
-		if (sysent[tcp->scno].sys_func == sys_write ||
-		    sysent[tcp->scno].sys_func == sys_pwrite ||
-		    sysent[tcp->scno].sys_func == sys_send ||
-		    sysent[tcp->scno].sys_func == sys_sendto)
+		if (func == sys_write ||
+		    func == sys_pwrite ||
+		    func == sys_send ||
+		    func == sys_sendto)
 			dumpstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
-		else if (sysent[tcp->scno].sys_func == sys_writev)
+		else if (func == sys_writev)
 			dumpiov(tcp, tcp->u_arg[2], tcp->u_arg[1]);
 		return;
 	}
@@ -1963,16 +2505,14 @@
 #if SUPPORTED_PERSONALITIES > 1
 	update_personality(tcp, tcp->currpers);
 #endif
-	res = get_syscall_result(tcp);
+	res = (get_regs_error ? -1 : get_syscall_result(tcp));
 	if (res == 1) {
 		syscall_fixup_on_sysexit(tcp); /* never fails */
-		res = get_error(tcp); /* returns 1 or -1 */
-		if (res == 1) {
-			internal_syscall(tcp);
-			if (filtered(tcp)) {
-				goto ret;
-			}
-		}
+		get_error(tcp); /* never fails */
+		if (need_fork_exec_workarounds)
+			syscall_fixup_for_fork_exec(tcp);
+		if (filtered(tcp) || hide_log_until_execve)
+			goto ret;
 	}
 
 	if (cflag) {
@@ -1995,10 +2535,10 @@
 	if ((followfork < 2 && printing_tcp != tcp) || (tcp->flags & TCB_REPRINT)) {
 		tcp->flags &= ~TCB_REPRINT;
 		printleader(tcp);
-		if (!SCNO_IN_RANGE(tcp->scno))
-			tprintf("<... syscall_%lu resumed> ", tcp->scno);
+		if (tcp->qual_flg & UNDEFINED_SCNO)
+			tprintf("<... %s resumed> ", undefined_scno_name(tcp));
 		else
-			tprintf("<... %s resumed> ", sysent[tcp->scno].sys_name);
+			tprintf("<... %s resumed> ", tcp->s_ent->sys_name);
 	}
 	printing_tcp = tcp;
 
@@ -2013,8 +2553,7 @@
 	}
 
 	sys_res = 0;
-	if (!SCNO_IN_RANGE(tcp->scno)
-	    || (qual_flags[tcp->scno] & QUAL_RAW)) {
+	if (tcp->qual_flg & QUAL_RAW) {
 		/* sys_res = printargs(tcp); - but it's nop on sysexit */
 	} else {
 	/* FIXME: not_failing_only (IOW, option -z) is broken:
@@ -2027,14 +2566,13 @@
 	 */
 		if (not_failing_only && tcp->u_error)
 			goto ret;	/* ignore failed syscalls */
-		sys_res = (*sysent[tcp->scno].sys_func)(tcp);
+		sys_res = tcp->s_ent->sys_func(tcp);
 	}
 
 	tprints(") ");
 	tabto();
 	u_error = tcp->u_error;
-	if (!SCNO_IN_RANGE(tcp->scno) ||
-	    qual_flags[tcp->scno] & QUAL_RAW) {
+	if (tcp->qual_flg & QUAL_RAW) {
 		if (u_error)
 			tprintf("= -1 (errno %ld)", u_error);
 		else
@@ -2075,10 +2613,11 @@
 			/* pause(), rt_sigsuspend() etc use this code.
 			 * SA_RESTART is ignored (assumed not set):
 			 * syscall won't restart (will return EINTR instead)
-			 * even after signal with SA_RESTART set.
-			 * However, after SIG_IGN or SIG_DFL signal it will.
+			 * even after signal with SA_RESTART set. However,
+			 * after SIG_IGN or SIG_DFL signal it will restart
+			 * (thus the name "restart only if has no handler").
 			 */
-			tprints("= ? ERESTARTNOHAND (Interrupted by signal)");
+			tprints("= ? ERESTARTNOHAND (To be restarted if no handler)");
 			break;
 		case ERESTART_RESTARTBLOCK:
 			/* Syscalls like nanosleep(), poll() which can't be
diff --git a/system.c b/system.c
index a776492..26d0d7f 100644
--- a/system.c
+++ b/system.c
@@ -56,6 +56,7 @@
 #define MS_KERNMOUNT	(1<<22)
 #define MS_I_VERSION	(1<<23)
 #define MS_STRICTATIME	(1<<24)
+#define MS_NOSEC	(1<<28)
 #define MS_BORN		(1<<29)
 #define MS_ACTIVE	(1<<30)
 #define MS_NOUSER	(1<<31)
@@ -91,6 +92,7 @@
 	{ MS_KERNMOUNT,	"MS_KERNMOUNT"	},
 	{ MS_I_VERSION,	"MS_I_VERSION"	},
 	{ MS_STRICTATIME,"MS_STRICTATIME"},
+	{ MS_NOSEC,	"MS_NOSEC"	},
 	{ MS_BORN,	"MS_BORN"	},
 	{ MS_MANDLOCK,	"MS_MANDLOCK"	},
 	{ MS_NOATIME,	"MS_NOATIME"	},
@@ -376,7 +378,7 @@
 		/* size */
 		tprintf("%lu, ", tcp->u_arg[0]);
 		/* flags */
-		printxval(sram_alloc_flags, tcp->u_arg[1], "???_SRAM");
+		printflags(sram_alloc_flags, tcp->u_arg[1], "???_SRAM");
 	}
 	return 1;
 }
@@ -845,9 +847,9 @@
 	    umoven(tcp, (unsigned long) info.name, size, (char *) name) < 0) {
 		free(name);
 		if (entering(tcp))
-			tprintf("{%p, %d, %p, %p, %p, %Zu}",
+			tprintf("{%p, %d, %p, %p, %p, %lu}",
 				info.name, info.nlen, info.oldval,
-				info.oldlenp, info.newval, info.newlen);
+				info.oldlenp, info.newval, (unsigned long)info.newlen);
 		return 0;
 	}
 
@@ -951,33 +953,33 @@
 			tprints(", ...");
 		tprintf("}, %d, ", info.nlen);
 	} else {
-		size_t oldlen;
-		if (umove(tcp, (size_t)info.oldlenp, &oldlen) >= 0
-		    && info.nlen >= 2
-		    && ((name[0] == CTL_KERN
-			 && (name[1] == KERN_OSRELEASE
-			     || name[1] == KERN_OSTYPE
+		size_t oldlen = 0;
+		if (info.oldval == NULL) {
+			tprints("NULL");
+		} else if (umove(tcp, (long)info.oldlenp, &oldlen) >= 0
+			   && info.nlen >= 2
+			   && ((name[0] == CTL_KERN
+				&& (name[1] == KERN_OSRELEASE
+				    || name[1] == KERN_OSTYPE
 #ifdef KERN_JAVA_INTERPRETER
-			     || name[1] == KERN_JAVA_INTERPRETER
+				    || name[1] == KERN_JAVA_INTERPRETER
 #endif
 #ifdef KERN_JAVA_APPLETVIEWER
-			     || name[1] == KERN_JAVA_APPLETVIEWER
+				    || name[1] == KERN_JAVA_APPLETVIEWER
 #endif
-				 )))) {
+					)))) {
 			printpath(tcp, (size_t)info.oldval);
-			tprintf(", %Zu, ", oldlen);
-			if (info.newval == 0)
-				tprints("NULL");
-			else if (syserror(tcp))
-				tprintf("%p", info.newval);
-			else
-				printpath(tcp, (size_t)info.newval);
-			tprintf(", %Zd", info.newlen);
 		} else {
-			tprintf("%p, %Zd, %p, %Zd", info.oldval, oldlen,
-				info.newval, info.newlen);
+			tprintf("%p", info.oldval);
 		}
-		tprints("}");
+		tprintf(", %lu, ", (unsigned long)oldlen);
+		if (info.newval == NULL)
+			tprints("NULL");
+		else if (syserror(tcp))
+			tprintf("%p", info.newval);
+		else
+			printpath(tcp, (size_t)info.newval);
+		tprintf(", %lu", (unsigned long)info.newlen);
 	}
 
 	free(name);
@@ -1024,3 +1026,63 @@
 }
 
 #endif /* MIPS */
+
+#ifdef OR1K
+#define OR1K_ATOMIC_SWAP        1
+#define OR1K_ATOMIC_CMPXCHG     2
+#define OR1K_ATOMIC_XCHG        3
+#define OR1K_ATOMIC_ADD         4
+#define OR1K_ATOMIC_DECPOS      5
+#define OR1K_ATOMIC_AND         6
+#define OR1K_ATOMIC_OR          7
+#define OR1K_ATOMIC_UMAX        8
+#define OR1K_ATOMIC_UMIN        9
+
+static const struct xlat atomic_ops[] = {
+	{ OR1K_ATOMIC_SWAP,		"SWAP"		},
+	{ OR1K_ATOMIC_CMPXCHG,		"CMPXCHG"	},
+	{ OR1K_ATOMIC_XCHG,		"XCHG"		},
+	{ OR1K_ATOMIC_ADD,		"ADD"		},
+	{ OR1K_ATOMIC_DECPOS,		"DECPOS"	},
+	{ OR1K_ATOMIC_AND,		"AND"		},
+	{ OR1K_ATOMIC_OR,		"OR"		},
+	{ OR1K_ATOMIC_UMAX,		"UMAX"		},
+	{ OR1K_ATOMIC_UMIN,		"UMIN"		},
+	{ 0, NULL }
+};
+
+int sys_or1k_atomic(struct tcb *tcp)
+{
+	if (entering(tcp)) {
+		printxval(atomic_ops, tcp->u_arg[0], "???");
+		switch(tcp->u_arg[0]) {
+		case OR1K_ATOMIC_SWAP:
+			tprintf(", 0x%lx, 0x%lx", tcp->u_arg[1], tcp->u_arg[2]);
+			break;
+		case OR1K_ATOMIC_CMPXCHG:
+			tprintf(", 0x%lx, %#lx, %#lx", tcp->u_arg[1], tcp->u_arg[2],
+				tcp->u_arg[3]);
+			break;
+
+		case OR1K_ATOMIC_XCHG:
+		case OR1K_ATOMIC_ADD:
+		case OR1K_ATOMIC_AND:
+		case OR1K_ATOMIC_OR:
+		case OR1K_ATOMIC_UMAX:
+		case OR1K_ATOMIC_UMIN:
+			tprintf(", 0x%lx, %#lx", tcp->u_arg[1], tcp->u_arg[2]);
+			break;
+
+		case OR1K_ATOMIC_DECPOS:
+			tprintf(", 0x%lx", tcp->u_arg[1]);
+			break;
+
+		default:
+			break;
+		}
+	}
+
+	return RVAL_HEX;
+}
+
+#endif /* OR1K */
diff --git a/util.c b/util.c
index 876852e..919b348 100644
--- a/util.c
+++ b/util.c
@@ -39,10 +39,6 @@
 # include <sys/uio.h>
 #endif
 
-#if __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 1)
-# include <linux/ptrace.h>
-#endif
-
 #if defined(IA64)
 # include <asm/ptrace_offsets.h>
 # include <asm/rse.h>
@@ -66,21 +62,6 @@
 # undef pt_all_user_regs
 #endif
 
-#if defined(SPARC64)
-# undef PTRACE_GETREGS
-# define PTRACE_GETREGS PTRACE_GETREGS64
-# undef PTRACE_SETREGS
-# define PTRACE_SETREGS PTRACE_SETREGS64
-#endif
-
-/* macros */
-#ifndef MAX
-# define MAX(a,b)		(((a) > (b)) ? (a) : (b))
-#endif
-#ifndef MIN
-# define MIN(a,b)		(((a) < (b)) ? (a) : (b))
-#endif
-
 int
 string_to_uint(const char *str)
 {
@@ -191,40 +172,57 @@
 		tprintf("%#x /* %s */", val, dflt);
 }
 
-#if HAVE_LONG_LONG
 /*
- * Print 64bit argument at position llarg and return the index of the next
+ * Print 64bit argument at position arg_no and return the index of the next
  * argument.
  */
 int
-printllval(struct tcb *tcp, const char *format, int llarg)
+printllval(struct tcb *tcp, const char *format, int arg_no)
 {
-# if defined(X86_64) || defined(POWERPC64)
-	if (current_personality == 0) {
-		tprintf(format, tcp->u_arg[llarg]);
-		llarg++;
-	} else {
-#  ifdef POWERPC64
-		/* Align 64bit argument to 64bit boundary.  */
-		llarg = (llarg + 1) & 0x1e;
-#  endif
-		tprintf(format, LONG_LONG(tcp->u_arg[llarg], tcp->u_arg[llarg + 1]));
-		llarg += 2;
-	}
-# elif defined IA64 || defined ALPHA
-	tprintf(format, tcp->u_arg[llarg]);
-	llarg++;
-# elif defined LINUX_MIPSN32 || defined X32
-	tprintf(format, tcp->ext_arg[llarg]);
-	llarg++;
-# else
-	tprintf(format, LONG_LONG(tcp->u_arg[llarg], tcp->u_arg[llarg + 1]));
-	llarg += 2;
+#if SIZEOF_LONG > 4 && SIZEOF_LONG == SIZEOF_LONG_LONG
+# if SUPPORTED_PERSONALITIES > 1
+	if (current_wordsize > 4) {
 # endif
-	return llarg;
-}
+		tprintf(format, tcp->u_arg[arg_no]);
+		arg_no++;
+# if SUPPORTED_PERSONALITIES > 1
+	} else {
+#  if defined(AARCH64) || defined(POWERPC64)
+		/* Align arg_no to the next even number. */
+		arg_no = (arg_no + 1) & 0xe;
+#  endif
+		tprintf(format, LONG_LONG(tcp->u_arg[arg_no], tcp->u_arg[arg_no + 1]));
+		arg_no += 2;
+	}
+# endif /* SUPPORTED_PERSONALITIES */
+#elif SIZEOF_LONG > 4
+#  error Unsupported configuration: SIZEOF_LONG > 4 && SIZEOF_LONG_LONG > SIZEOF_LONG
+#elif defined LINUX_MIPSN32
+	tprintf(format, tcp->ext_arg[arg_no]);
+	arg_no++;
+#elif defined X32
+	if (current_personality == 0) {
+		tprintf(format, tcp->ext_arg[arg_no]);
+		arg_no++;
+	} else {
+		tprintf(format, LONG_LONG(tcp->u_arg[arg_no], tcp->u_arg[arg_no + 1]));
+		arg_no += 2;
+	}
+#else
+# if defined __ARM_EABI__ || \
+     defined LINUX_MIPSO32 || \
+     defined POWERPC || \
+     defined XTENSA
+	/* Align arg_no to the next even number. */
+	arg_no = (arg_no + 1) & 0xe;
+# endif
+	tprintf(format, LONG_LONG(tcp->u_arg[arg_no], tcp->u_arg[arg_no + 1]));
+	arg_no += 2;
 #endif
 
+	return arg_no;
+}
+
 /*
  * Interpret `xlat' as an array of flags
  * print the entries whose bits are on in `flags'
@@ -357,10 +355,10 @@
 void
 printfd(struct tcb *tcp, int fd)
 {
-	const char *p;
+	char path[PATH_MAX + 1];
 
-	if (show_fd_path && (p = getfdpath(tcp, fd)))
-		tprintf("%d<%s>", fd, p);
+	if (show_fd_path && getfdpath(tcp, fd, path, sizeof(path)) >= 0)
+		tprintf("%d<%s>", fd, path);
 	else
 		tprintf("%d", fd);
 }
@@ -404,7 +402,16 @@
 			/* Check for NUL-terminated string. */
 			if (c == eol)
 				break;
-			if (!isprint(c) && !isspace(c)) {
+
+			/* Force hex unless c is printable or whitespace */
+			if (c > 0x7e) {
+				usehex = 1;
+				break;
+			}
+			/* In ASCII isspace is only these chars: "\t\n\v\f\r".
+			 * They happen to have ASCII codes 9,10,11,12,13.
+			 */
+			if (c < ' ' && (unsigned)(c - 9) >= 5) {
 				usehex = 1;
 				break;
 			}
@@ -457,7 +464,7 @@
 					*s++ = 'v';
 					break;
 				default:
-					if (isprint(c))
+					if (c >= ' ' && c <= 0x7e)
 						*s++ = c;
 					else {
 						/* Print \octal */
@@ -665,54 +672,70 @@
 {
 	static int strsize = -1;
 	static unsigned char *str;
-	char *s;
-	int i, j;
 
-	if (strsize < len) {
+	char outbuf[
+		(
+			(sizeof(
+			"xx xx xx xx xx xx xx xx  xx xx xx xx xx xx xx xx  "
+			"1234567890123456") + /*in case I'm off by few:*/ 4)
+		/*align to 8 to make memset easier:*/ + 7) & -8
+	];
+	const unsigned char *src;
+	int i;
+
+	memset(outbuf, ' ', sizeof(outbuf));
+
+	if (strsize < len + 16) {
 		free(str);
-		str = malloc(len);
+		str = malloc(len + 16);
 		if (!str) {
 			strsize = -1;
 			fprintf(stderr, "Out of memory\n");
 			return;
 		}
-		strsize = len;
+		strsize = len + 16;
 	}
 
 	if (umoven(tcp, addr, len, (char *) str) < 0)
 		return;
 
-	for (i = 0; i < len; i += 16) {
-		char outstr[80];
+	/* Space-pad to 16 bytes */
+	i = len;
+	while (i & 0xf)
+		str[i++] = ' ';
 
-		s = outstr;
-		sprintf(s, " | %05x ", i);
-		s += 9;
-		for (j = 0; j < 16; j++) {
-			if (j == 8)
-				*s++ = ' ';
-			if (i + j < len) {
-				sprintf(s, " %02x", str[i + j]);
-				s += 3;
+	i = 0;
+	src = str;
+	while (i < len) {
+		char *dst = outbuf;
+		/* Hex dump */
+		do {
+			if (i < len) {
+				*dst++ = "0123456789abcdef"[*src >> 4];
+				*dst++ = "0123456789abcdef"[*src & 0xf];
 			}
 			else {
-				*s++ = ' '; *s++ = ' '; *s++ = ' ';
+				*dst++ = ' ';
+				*dst++ = ' ';
 			}
-		}
-		*s++ = ' '; *s++ = ' ';
-		for (j = 0; j < 16; j++) {
-			if (j == 8)
-				*s++ = ' ';
-			if (i + j < len) {
-				if (isprint(str[i + j]))
-					*s++ = str[i + j];
-				else
-					*s++ = '.';
-			}
+			dst++; /* space is there by memset */
+			i++;
+			if ((i & 7) == 0)
+				dst++; /* space is there by memset */
+			src++;
+		} while (i & 0xf);
+		/* ASCII dump */
+		i -= 16;
+		src -= 16;
+		do {
+			if (*src >= ' ' && *src < 0x7f)
+				*dst++ = *src;
 			else
-				*s++ = ' ';
-		}
-		tprintf("%s |\n", outstr);
+				*dst++ = '.';
+			src++;
+		} while (++i & 0xf);
+		*dst = '\0';
+		tprintf(" | %05x  %s |\n", i - 16, outbuf);
 	}
 }
 
@@ -737,7 +760,8 @@
 
 #if defined(__NR_process_vm_readv)
 static bool process_vm_readv_not_supported = 0;
-static ssize_t process_vm_readv(pid_t pid,
+/* Have to avoid duplicating with the C library headers. */
+static ssize_t strace_process_vm_readv(pid_t pid,
 		 const struct iovec *lvec,
 		 unsigned long liovcnt,
 		 const struct iovec *rvec,
@@ -746,6 +770,7 @@
 {
 	return syscall(__NR_process_vm_readv, (long)pid, lvec, liovcnt, rvec, riovcnt, flags);
 }
+#define process_vm_readv strace_process_vm_readv
 #else
 static bool process_vm_readv_not_supported = 1;
 # define process_vm_readv(...) (errno = ENOSYS, -1)
@@ -762,14 +787,13 @@
 umoven(struct tcb *tcp, long addr, int len, char *laddr)
 {
 	int pid = tcp->pid;
-	int n, m;
-	int started;
+	int n, m, nread;
 	union {
 		long val;
 		char x[sizeof(long)];
 	} u;
 
-#if SUPPORTED_PERSONALITIES > 1
+#if SUPPORTED_PERSONALITIES > 1 && SIZEOF_LONG > 4
 	if (current_wordsize < sizeof(addr))
 		addr &= (1ul << 8 * current_wordsize) - 1;
 #endif
@@ -781,57 +805,88 @@
 		local[0].iov_base = laddr;
 		remote[0].iov_base = (void*)addr;
 		local[0].iov_len = remote[0].iov_len = len;
-		r = process_vm_readv(pid,
-				local, 1,
-				remote, 1,
-				/*flags:*/ 0
-		);
-		if (r < 0) {
-			if (errno == ENOSYS)
-				process_vm_readv_not_supported = 1;
-			else if (errno != EINVAL) /* EINVAL is seen if process is gone */
-				/* strange... */
-				perror("process_vm_readv");
-			goto vm_readv_didnt_work;
+		r = process_vm_readv(pid, local, 1, remote, 1, 0);
+		if (r == len)
+			return 0;
+		if (r >= 0) {
+			error_msg("umoven: short read (%d < %d) @0x%lx",
+				  r, len, addr);
+			return -1;
 		}
-		return r;
+		switch (errno) {
+			case ENOSYS:
+				process_vm_readv_not_supported = 1;
+				break;
+			case ESRCH:
+				/* the process is gone */
+				return -1;
+			case EFAULT: case EIO: case EPERM:
+				/* address space is inaccessible */
+				return -1;
+			default:
+				/* all the rest is strange and should be reported */
+				perror_msg("process_vm_readv");
+				return -1;
+		}
 	}
- vm_readv_didnt_work:
 
-	started = 0;
+	nread = 0;
 	if (addr & (sizeof(long) - 1)) {
 		/* addr not a multiple of sizeof(long) */
 		n = addr - (addr & -sizeof(long)); /* residue */
 		addr &= -sizeof(long); /* residue */
 		errno = 0;
 		u.val = ptrace(PTRACE_PEEKDATA, pid, (char *) addr, 0);
-		if (errno) {
-			/* But if not started, we had a bogus address. */
-			if (addr != 0 && errno != EIO && errno != ESRCH)
-				perror_msg("umoven: PTRACE_PEEKDATA pid:%d @0x%lx", pid, addr);
-			return -1;
+		switch (errno) {
+			case 0:
+				break;
+			case ESRCH: case EINVAL:
+				/* these could be seen if the process is gone */
+				return -1;
+			case EFAULT: case EIO: case EPERM:
+				/* address space is inaccessible */
+				return -1;
+			default:
+				/* all the rest is strange and should be reported */
+				perror_msg("umoven: PTRACE_PEEKDATA pid:%d @0x%lx",
+					    pid, addr);
+				return -1;
 		}
-		started = 1;
 		m = MIN(sizeof(long) - n, len);
 		memcpy(laddr, &u.x[n], m);
-		addr += sizeof(long), laddr += m, len -= m;
+		addr += sizeof(long);
+		laddr += m;
+		nread += m;
+		len -= m;
 	}
 	while (len) {
 		errno = 0;
 		u.val = ptrace(PTRACE_PEEKDATA, pid, (char *) addr, 0);
-		if (errno) {
-			if (started && (errno==EPERM || errno==EIO)) {
-				/* Ran into 'end of memory' - stupid "printpath" */
-				return 0;
-			}
-			if (addr != 0 && errno != EIO && errno != ESRCH)
-				perror_msg("umoven: PTRACE_PEEKDATA pid:%d @0x%lx", pid, addr);
-			return -1;
+		switch (errno) {
+			case 0:
+				break;
+			case ESRCH: case EINVAL:
+				/* these could be seen if the process is gone */
+				return -1;
+			case EFAULT: case EIO: case EPERM:
+				/* address space is inaccessible */
+				if (nread) {
+					perror_msg("umoven: short read (%d < %d) @0x%lx",
+						   nread, nread + len, addr - nread);
+				}
+				return -1;
+			default:
+				/* all the rest is strange and should be reported */
+				perror_msg("umoven: PTRACE_PEEKDATA pid:%d @0x%lx",
+					    pid, addr);
+				return -1;
 		}
-		started = 1;
 		m = MIN(sizeof(long), len);
 		memcpy(laddr, u.x, m);
-		addr += sizeof(long), laddr += m, len -= m;
+		addr += sizeof(long);
+		laddr += m;
+		nread += m;
+		len -= m;
 	}
 
 	return 0;
@@ -852,19 +907,29 @@
 int
 umovestr(struct tcb *tcp, long addr, int len, char *laddr)
 {
-	int started;
+#if SIZEOF_LONG == 4
+	const unsigned long x01010101 = 0x01010101ul;
+	const unsigned long x80808080 = 0x80808080ul;
+#elif SIZEOF_LONG == 8
+	const unsigned long x01010101 = 0x0101010101010101ul;
+	const unsigned long x80808080 = 0x8080808080808080ul;
+#else
+# error SIZEOF_LONG > 8
+#endif
+
 	int pid = tcp->pid;
-	int i, n, m;
+	int n, m, nread;
 	union {
-		long val;
+		unsigned long val;
 		char x[sizeof(long)];
 	} u;
 
-#if SUPPORTED_PERSONALITIES > 1
+#if SUPPORTED_PERSONALITIES > 1 && SIZEOF_LONG > 4
 	if (current_wordsize < sizeof(addr))
 		addr &= (1ul << 8 * current_wordsize) - 1;
 #endif
 
+	nread = 0;
 	if (!process_vm_readv_not_supported) {
 		struct iovec local[1], remote[1];
 
@@ -891,68 +956,103 @@
 				chunk_len = r; /* chunk_len -= end_in_page */
 
 			local[0].iov_len = remote[0].iov_len = chunk_len;
-			r = process_vm_readv(pid,
-					local, 1,
-					remote, 1,
-					/*flags:*/ 0
-			);
-			if (r < 0) {
-				if (errno == ENOSYS)
-					process_vm_readv_not_supported = 1;
-				else if (errno != EINVAL) /* EINVAL is seen if process is gone */
-					/* strange... */
-					perror("process_vm_readv");
-				goto vm_readv_didnt_work;
+			r = process_vm_readv(pid, local, 1, remote, 1, 0);
+			if (r > 0) {
+				if (memchr(local[0].iov_base, '\0', r))
+					return 1;
+				local[0].iov_base += r;
+				remote[0].iov_base += r;
+				len -= r;
+				nread += r;
+				continue;
 			}
-			if (memchr(local[0].iov_base, '\0', r))
-				return 1;
-			local[0].iov_base += r;
-			remote[0].iov_base += r;
-			len -= r;
+			switch (errno) {
+				case ENOSYS:
+					process_vm_readv_not_supported = 1;
+					goto vm_readv_didnt_work;
+				case ESRCH:
+					/* the process is gone */
+					return -1;
+				case EFAULT: case EIO: case EPERM:
+					/* address space is inaccessible */
+					if (nread) {
+						perror_msg("umovestr: short read (%d < %d) @0x%lx",
+							   nread, nread + len, addr);
+					}
+					return -1;
+				default:
+					/* all the rest is strange and should be reported */
+					perror_msg("process_vm_readv");
+					return -1;
+			}
 		}
 		return 0;
 	}
  vm_readv_didnt_work:
 
-	started = 0;
 	if (addr & (sizeof(long) - 1)) {
 		/* addr not a multiple of sizeof(long) */
 		n = addr - (addr & -sizeof(long)); /* residue */
 		addr &= -sizeof(long); /* residue */
 		errno = 0;
 		u.val = ptrace(PTRACE_PEEKDATA, pid, (char *)addr, 0);
-		if (errno) {
-			if (addr != 0 && errno != EIO && errno != ESRCH)
-				perror_msg("umovestr: PTRACE_PEEKDATA pid:%d @0x%lx", pid, addr);
-			return -1;
+		switch (errno) {
+			case 0:
+				break;
+			case ESRCH: case EINVAL:
+				/* these could be seen if the process is gone */
+				return -1;
+			case EFAULT: case EIO: case EPERM:
+				/* address space is inaccessible */
+				return -1;
+			default:
+				/* all the rest is strange and should be reported */
+				perror_msg("umovestr: PTRACE_PEEKDATA pid:%d @0x%lx",
+					    pid, addr);
+				return -1;
 		}
-		started = 1;
 		m = MIN(sizeof(long) - n, len);
 		memcpy(laddr, &u.x[n], m);
 		while (n & (sizeof(long) - 1))
 			if (u.x[n++] == '\0')
 				return 1;
-		addr += sizeof(long), laddr += m, len -= m;
+		addr += sizeof(long);
+		laddr += m;
+		nread += m;
+		len -= m;
 	}
+
 	while (len) {
 		errno = 0;
 		u.val = ptrace(PTRACE_PEEKDATA, pid, (char *)addr, 0);
-		if (errno) {
-			if (started && (errno==EPERM || errno==EIO)) {
-				/* Ran into 'end of memory' - stupid "printpath" */
-				return 0;
-			}
-			if (addr != 0 && errno != EIO && errno != ESRCH)
-				perror_msg("umovestr: PTRACE_PEEKDATA pid:%d @0x%lx", pid, addr);
-			return -1;
+		switch (errno) {
+			case 0:
+				break;
+			case ESRCH: case EINVAL:
+				/* these could be seen if the process is gone */
+				return -1;
+			case EFAULT: case EIO: case EPERM:
+				/* address space is inaccessible */
+				if (nread) {
+					perror_msg("umovestr: short read (%d < %d) @0x%lx",
+						   nread, nread + len, addr - nread);
+				}
+				return -1;
+			default:
+				/* all the rest is strange and should be reported */
+				perror_msg("umovestr: PTRACE_PEEKDATA pid:%d @0x%lx",
+					   pid, addr);
+				return -1;
 		}
-		started = 1;
 		m = MIN(sizeof(long), len);
 		memcpy(laddr, u.x, m);
-		for (i = 0; i < sizeof(long); i++)
-			if (u.x[i] == '\0')
-				return 1;
-		addr += sizeof(long), laddr += m, len -= m;
+		/* "If a NUL char exists in this word" */
+		if ((u.val - x01010101) & ~u.val & x80808080)
+			return 1;
+		addr += sizeof(long);
+		laddr += m;
+		nread += m;
+		len -= m;
 	}
 	return 0;
 }
@@ -974,162 +1074,12 @@
 	return 0;
 }
 
-void
-printcall(struct tcb *tcp)
-{
-#define PRINTBADPC tprintf(sizeof(long) == 4 ? "[????????] " : \
-			   sizeof(long) == 8 ? "[????????????????] " : \
-			   NULL /* crash */)
-
-#if defined(I386)
-	long eip;
-
-	if (upeek(tcp, 4*EIP, &eip) < 0) {
-		PRINTBADPC;
-		return;
-	}
-	tprintf("[%08lx] ", eip);
-#elif defined(S390) || defined(S390X)
-	long psw;
-	if (upeek(tcp, PT_PSWADDR, &psw) < 0) {
-		PRINTBADPC;
-		return;
-	}
-# ifdef S390
-	tprintf("[%08lx] ", psw);
-# elif S390X
-	tprintf("[%16lx] ", psw);
-# endif
-
-#elif defined(X86_64) || defined(X32)
-	long rip;
-
-	if (upeek(tcp, 8*RIP, &rip) < 0) {
-		PRINTBADPC;
-		return;
-	}
-	tprintf("[%16lx] ", rip);
-#elif defined(IA64)
-	long ip;
-
-	if (upeek(tcp, PT_B0, &ip) < 0) {
-		PRINTBADPC;
-		return;
-	}
-	tprintf("[%08lx] ", ip);
-#elif defined(POWERPC)
-	long pc;
-
-	if (upeek(tcp, sizeof(unsigned long)*PT_NIP, &pc) < 0) {
-		PRINTBADPC;
-		return;
-	}
-# ifdef POWERPC64
-	tprintf("[%016lx] ", pc);
-# else
-	tprintf("[%08lx] ", pc);
-# endif
-#elif defined(M68K)
-	long pc;
-
-	if (upeek(tcp, 4*PT_PC, &pc) < 0) {
-		tprints("[????????] ");
-		return;
-	}
-	tprintf("[%08lx] ", pc);
-#elif defined(ALPHA)
-	long pc;
-
-	if (upeek(tcp, REG_PC, &pc) < 0) {
-		tprints("[????????????????] ");
-		return;
-	}
-	tprintf("[%08lx] ", pc);
-#elif defined(SPARC) || defined(SPARC64)
-	struct pt_regs regs;
-	if (ptrace(PTRACE_GETREGS, tcp->pid, (char *)&regs, 0) < 0) {
-		PRINTBADPC;
-		return;
-	}
-# if defined(SPARC64)
-	tprintf("[%08lx] ", regs.tpc);
-# else
-	tprintf("[%08lx] ", regs.pc);
-# endif
-#elif defined(HPPA)
-	long pc;
-
-	if (upeek(tcp, PT_IAOQ0, &pc) < 0) {
-		tprints("[????????] ");
-		return;
-	}
-	tprintf("[%08lx] ", pc);
-#elif defined(MIPS)
-	long pc;
-
-	if (upeek(tcp, REG_EPC, &pc) < 0) {
-		tprints("[????????] ");
-		return;
-	}
-	tprintf("[%08lx] ", pc);
-#elif defined(SH)
-	long pc;
-
-	if (upeek(tcp, 4*REG_PC, &pc) < 0) {
-		tprints("[????????] ");
-		return;
-	}
-	tprintf("[%08lx] ", pc);
-#elif defined(SH64)
-	long pc;
-
-	if (upeek(tcp, REG_PC, &pc) < 0) {
-		tprints("[????????????????] ");
-		return;
-	}
-	tprintf("[%08lx] ", pc);
-#elif defined(ARM)
-	long pc;
-
-	if (upeek(tcp, 4*15, &pc) < 0) {
-		PRINTBADPC;
-		return;
-	}
-	tprintf("[%08lx] ", pc);
-#elif defined(AVR32)
-	long pc;
-
-	if (upeek(tcp, REG_PC, &pc) < 0) {
-		tprints("[????????] ");
-		return;
-	}
-	tprintf("[%08lx] ", pc);
-#elif defined(BFIN)
-	long pc;
-
-	if (upeek(tcp, PT_PC, &pc) < 0) {
-		PRINTBADPC;
-		return;
-	}
-	tprintf("[%08lx] ", pc);
-#elif defined(CRISV10)
-	long pc;
-
-	if (upeek(tcp, 4*PT_IRP, &pc) < 0) {
-		PRINTBADPC;
-		return;
-	}
-	tprintf("[%08lx] ", pc);
-#elif defined(CRISV32)
-	long pc;
-
-	if (upeek(tcp, 4*PT_ERP, &pc) < 0) {
-		PRINTBADPC;
-		return;
-	}
-	tprintf("[%08lx] ", pc);
-#endif /* architecture */
-}
+/* Note! On new kernels (about 2.5.46+), we use PTRACE_O_TRACECLONE
+ * and PTRACE_O_TRACE[V]FORK for tracing children.
+ * If you are adding a new arch which is only supported by newer kernels,
+ * you most likely don't need to add any code below
+ * beside a dummy "return 0" block in change_syscall().
+ */
 
 /*
  * These #if's are huge, please indent them correctly.
@@ -1148,116 +1098,6 @@
 # define CLONE_VM        0x00000100
 #endif
 
-static int
-change_syscall(struct tcb *tcp, int new)
-{
-#if defined(I386)
-	if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(ORIG_EAX * 4), new) < 0)
-		return -1;
-	return 0;
-#elif defined(X86_64) || defined(X32)
-	if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(ORIG_RAX * 8), new) < 0)
-		return -1;
-	return 0;
-#elif defined(POWERPC)
-	if (ptrace(PTRACE_POKEUSER, tcp->pid,
-		   (char*)(sizeof(unsigned long)*PT_R0), new) < 0)
-		return -1;
-	return 0;
-#elif defined(S390) || defined(S390X)
-	/* s390 linux after 2.4.7 has a hook in entry.S to allow this */
-	if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(PT_GPR2), new) < 0)
-		return -1;
-	return 0;
-#elif defined(M68K)
-	if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(4*PT_ORIG_D0), new) < 0)
-		return -1;
-	return 0;
-#elif defined(SPARC) || defined(SPARC64)
-	struct pt_regs regs;
-	if (ptrace(PTRACE_GETREGS, tcp->pid, (char*)&regs, 0) < 0)
-		return -1;
-	regs.u_regs[U_REG_G1] = new;
-	if (ptrace(PTRACE_SETREGS, tcp->pid, (char*)&regs, 0) < 0)
-		return -1;
-	return 0;
-#elif defined(MIPS)
-	if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(REG_V0), new) < 0)
-		return -1;
-	return 0;
-#elif defined(ALPHA)
-	if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(REG_A3), new) < 0)
-		return -1;
-	return 0;
-#elif defined(AVR32)
-	if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(REG_R8), new) < 0)
-		return -1;
-	return 0;
-#elif defined(BFIN)
-	if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(REG_P0), new) < 0)
-		return -1;
-	return 0;
-#elif defined(IA64)
-	if (ia32) {
-		switch (new) {
-		case 2:
-			break;	/* x86 SYS_fork */
-		case SYS_clone:
-			new = 120;
-			break;
-		default:
-			fprintf(stderr, "%s: unexpected syscall %d\n",
-				__FUNCTION__, new);
-			return -1;
-		}
-		if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(PT_R1), new) < 0)
-			return -1;
-	} else if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(PT_R15), new) < 0)
-		return -1;
-	return 0;
-#elif defined(HPPA)
-	if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(PT_GR20), new) < 0)
-		return -1;
-	return 0;
-#elif defined(SH)
-	if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(4*(REG_REG0+3)), new) < 0)
-		return -1;
-	return 0;
-#elif defined(SH64)
-	/* Top half of reg encodes the no. of args n as 0x1n.
-	   Assume 0 args as kernel never actually checks... */
-	if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(REG_SYSCALL),
-				0x100000 | new) < 0)
-		return -1;
-	return 0;
-#elif defined(CRISV10) || defined(CRISV32)
-	if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(4*PT_R9), new) < 0)
-		return -1;
-	return 0;
-#elif defined(ARM)
-	/* Some kernels support this, some (pre-2.6.16 or so) don't.  */
-# ifndef PTRACE_SET_SYSCALL
-#  define PTRACE_SET_SYSCALL 23
-# endif
-	if (ptrace(PTRACE_SET_SYSCALL, tcp->pid, 0, new & 0xffff) != 0)
-		return -1;
-	return 0;
-#elif defined(TILE)
-	if (ptrace(PTRACE_POKEUSER, tcp->pid,
-		   (char*)PTREGS_OFFSET_REG(0),
-		   new) != 0)
-		return -1;
-	return 0;
-#elif defined(MICROBLAZE)
-	if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(PT_GPR(0)), new) < 0)
-		return -1;
-	return 0;
-#else
-#warning Do not know how to handle change_syscall for this architecture
-#endif /* architecture */
-	return -1;
-}
-
 #ifdef IA64
 
 typedef unsigned long *arg_setup_state;
@@ -1357,6 +1197,13 @@
 
 #elif defined(SPARC) || defined(SPARC64)
 
+# if defined(SPARC64)
+#  undef PTRACE_GETREGS
+#  define PTRACE_GETREGS PTRACE_GETREGS64
+#  undef PTRACE_SETREGS
+#  define PTRACE_SETREGS PTRACE_SETREGS64
+# endif
+
 typedef struct pt_regs arg_setup_state;
 
 # define arg_setup(tcp, state) \
@@ -1386,9 +1233,6 @@
 # elif defined(ALPHA) || defined(MIPS)
 #  define arg0_offset	REG_A0
 #  define arg1_offset	(REG_A0+1)
-# elif defined(AVR32)
-#  define arg0_offset	(REG_R12)
-#  define arg1_offset	(REG_R11)
 # elif defined(POWERPC)
 #  define arg0_offset	(sizeof(unsigned long)*PT_R3)
 #  define arg1_offset	(sizeof(unsigned long)*PT_R4)
@@ -1455,6 +1299,119 @@
 # define arg1_index 1
 #endif
 
+static int
+change_syscall(struct tcb *tcp, arg_setup_state *state, int new)
+{
+#if defined(I386)
+	if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(ORIG_EAX * 4), new) < 0)
+		return -1;
+	return 0;
+#elif defined(X86_64)
+	if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(ORIG_RAX * 8), new) < 0)
+		return -1;
+	return 0;
+#elif defined(X32)
+	/* setbpt/clearbpt never used: */
+	/* X32 is only supported since about linux-3.0.30 */
+#elif defined(POWERPC)
+	if (ptrace(PTRACE_POKEUSER, tcp->pid,
+		   (char*)(sizeof(unsigned long)*PT_R0), new) < 0)
+		return -1;
+	return 0;
+#elif defined(S390) || defined(S390X)
+	/* s390 linux after 2.4.7 has a hook in entry.S to allow this */
+	if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(PT_GPR2), new) < 0)
+		return -1;
+	return 0;
+#elif defined(M68K)
+	if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(4*PT_ORIG_D0), new) < 0)
+		return -1;
+	return 0;
+#elif defined(SPARC) || defined(SPARC64)
+	state->u_regs[U_REG_G1] = new;
+	return 0;
+#elif defined(MIPS)
+	if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(REG_V0), new) < 0)
+		return -1;
+	return 0;
+#elif defined(ALPHA)
+	if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(REG_A3), new) < 0)
+		return -1;
+	return 0;
+#elif defined(AVR32)
+	/* setbpt/clearbpt never used: */
+	/* AVR32 is only supported since about linux-2.6.19 */
+#elif defined(BFIN)
+	/* setbpt/clearbpt never used: */
+	/* Blackfin is only supported since about linux-2.6.23 */
+#elif defined(IA64)
+	if (ia32) {
+		switch (new) {
+		case 2:
+			break;	/* x86 SYS_fork */
+		case SYS_clone:
+			new = 120;
+			break;
+		default:
+			fprintf(stderr, "%s: unexpected syscall %d\n",
+				__FUNCTION__, new);
+			return -1;
+		}
+		if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(PT_R1), new) < 0)
+			return -1;
+	} else if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(PT_R15), new) < 0)
+		return -1;
+	return 0;
+#elif defined(HPPA)
+	if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(PT_GR20), new) < 0)
+		return -1;
+	return 0;
+#elif defined(SH)
+	if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(4*(REG_REG0+3)), new) < 0)
+		return -1;
+	return 0;
+#elif defined(SH64)
+	/* Top half of reg encodes the no. of args n as 0x1n.
+	   Assume 0 args as kernel never actually checks... */
+	if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(REG_SYSCALL),
+				0x100000 | new) < 0)
+		return -1;
+	return 0;
+#elif defined(CRISV10) || defined(CRISV32)
+	if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(4*PT_R9), new) < 0)
+		return -1;
+	return 0;
+#elif defined(ARM)
+	/* Some kernels support this, some (pre-2.6.16 or so) don't.  */
+# ifndef PTRACE_SET_SYSCALL
+#  define PTRACE_SET_SYSCALL 23
+# endif
+	if (ptrace(PTRACE_SET_SYSCALL, tcp->pid, 0, new & 0xffff) != 0)
+		return -1;
+	return 0;
+#elif defined(AARCH64)
+	/* setbpt/clearbpt never used: */
+	/* AARCH64 is only supported since about linux-3.0.31 */
+#elif defined(TILE)
+	/* setbpt/clearbpt never used: */
+	/* Tilera CPUs are only supported since about linux-2.6.34 */
+#elif defined(MICROBLAZE)
+	/* setbpt/clearbpt never used: */
+	/* microblaze is only supported since about linux-2.6.30 */
+#elif defined(OR1K)
+	/* never reached; OR1K is only supported by kernels since 3.1.0. */
+#elif defined(METAG)
+	/* setbpt/clearbpt never used: */
+	/* Meta is only supported since linux-3.7 */
+#elif defined(XTENSA)
+	/* setbpt/clearbpt never used: */
+	/* Xtensa is only supported since linux 2.6.13 */
+#else
+#warning Do not know how to handle change_syscall for this architecture
+#endif /* architecture */
+	return -1;
+}
+
 int
 setbpt(struct tcb *tcp)
 {
@@ -1480,12 +1437,13 @@
 			}
 	}
 
-	if (sysent[tcp->scno].sys_func == sys_fork ||
-	    sysent[tcp->scno].sys_func == sys_vfork) {
+	if (tcp->s_ent->sys_func == sys_fork ||
+	    tcp->s_ent->sys_func == sys_vfork) {
 		if (arg_setup(tcp, &state) < 0
 		    || get_arg0(tcp, &state, &tcp->inst[0]) < 0
 		    || get_arg1(tcp, &state, &tcp->inst[1]) < 0
-		    || change_syscall(tcp, clone_scno[current_personality]) < 0
+		    || change_syscall(tcp, &state,
+				      clone_scno[current_personality]) < 0
 		    || set_arg0(tcp, &state, CLONE_PTRACE|SIGCHLD) < 0
 		    || set_arg1(tcp, &state, 0) < 0
 		    || arg_finish_change(tcp, &state) < 0)
@@ -1496,7 +1454,7 @@
 		return 0;
 	}
 
-	if (sysent[tcp->scno].sys_func == sys_clone) {
+	if (tcp->s_ent->sys_func == sys_clone) {
 		/* ia64 calls directly `clone (CLONE_VFORK | CLONE_VM)'
 		   contrary to x86 vfork above.  Even on x86 we turn the
 		   vfork semantics into plain fork - each application must not
@@ -1512,9 +1470,9 @@
 		 || set_arg0(tcp, &state, new_arg0) < 0
 		 || arg_finish_change(tcp, &state) < 0)
 			return -1;
-		tcp->flags |= TCB_BPTSET;
 		tcp->inst[0] = tcp->u_arg[arg0_index];
 		tcp->inst[1] = tcp->u_arg[arg1_index];
+		tcp->flags |= TCB_BPTSET;
 		return 0;
 	}
 
@@ -1528,6 +1486,7 @@
 {
 	arg_setup_state state;
 	if (arg_setup(tcp, &state) < 0
+	    || change_syscall(tcp, &state, tcp->scno) < 0
 	    || restore_arg0(tcp, &state, tcp->inst[0]) < 0
 	    || restore_arg1(tcp, &state, tcp->inst[1]) < 0
 	    || arg_finish_change(tcp, &state))
diff --git a/vsprintf.c b/vsprintf.c
index b66609a..f6019f0 100644
--- a/vsprintf.c
+++ b/vsprintf.c
@@ -759,8 +759,8 @@
 
 int strace_vfprintf(FILE *fp, const char *fmt, va_list args)
 {
-	static char *buf;
-	static unsigned buflen;
+	static char *buf = NULL;
+	static unsigned buflen = 0;
 
 	int r;
 	va_list a1;
@@ -773,6 +773,8 @@
 		buflen = len + 256;
 		free(buf);
 		buf = malloc(buflen);
+		if (!buf)
+			die_out_of_memory();
 		/*len =*/ kernel_vsnprintf(buf, buflen, fmt, args);
 	}