auto import from //depot/cupcake/@135843
diff --git a/AUTHORS b/AUTHORS
new file mode 100644
index 0000000..bbba831
--- /dev/null
+++ b/AUTHORS
@@ -0,0 +1 @@
+See the file CREDITS. Automake likes us to have this file called AUTHORS.
diff --git a/Android.mk b/Android.mk
new file mode 100644
index 0000000..f57a039
--- /dev/null
+++ b/Android.mk
@@ -0,0 +1,39 @@
+# Copyright 2006 The Android Open Source Project
+
+ifneq ($(TARGET_SIMULATOR),true)
+
+LOCAL_PATH := $(my-dir)
+include $(CLEAR_VARS)
+
+# From autoconf-generated Makefile
+strace_SOURCES = strace.c syscall.c util.c desc.c file.c \
+ io.c ioctl.c mem.c net.c process.c bjm.c \
+ resource.c signal.c sock.c system.c term.c time.c \
+ proc.c stream.c
+
+#excluded_sources = ipc.c
+
+LOCAL_SRC_FILES:= $(strace_SOURCES)
+
+LOCAL_SHARED_LIBRARIES :=
+
+LOCAL_C_INCLUDES := \
+ $(KERNEL_HEADERS) \
+ $(LOCAL_PATH)/linux \
+ $(LOCAL_PATH)/android/arch/$(TARGET_ARCH)
+
+LOCAL_CFLAGS := -DHAVE_CONFIG_H -Dd_fileno=d_ino -D_LFS64_LARGEFILE=1
+
+ifeq ($(TARGET_ARCH),x86)
+LOCAL_CFLAGS += -Ulinux
+endif
+
+LOCAL_MODULE := strace
+
+LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)
+
+LOCAL_MODULE_TAGS := debug
+
+include $(BUILD_EXECUTABLE)
+
+endif # TARGET_SIMULATOR != true
diff --git a/COPYRIGHT b/COPYRIGHT
new file mode 100644
index 0000000..f76bac7
--- /dev/null
+++ b/COPYRIGHT
@@ -0,0 +1,31 @@
+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.
+
+$Id: COPYRIGHT,v 1.3 2002/03/31 18:43:00 wichert Exp $
diff --git a/CREDITS b/CREDITS
new file mode 100644
index 0000000..c2b3c5f
--- /dev/null
+++ b/CREDITS
@@ -0,0 +1,49 @@
+The primary authors of strace are:
+
+ Paul Kranenburg <pk@cs.few.eur.nl>
+ Branko Lankester <branko@hacktic.nl>
+ Rick Sladkey <jrs@world.std.com>
+
+Thanks to the follow people for contributing to strace by reporting
+bugs, providing fixes, providing information, providing resources or
+porting to new systems:
+
+ Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+ Arkadiusz Miskiewicz <misiek@pld.org.pl>
+ Marty Leisner <leisner@sdsp.mc.xerox.com>
+ Lupe Christoph <lupe@alanya.isar.muc.de>
+ Thanh Ma <tma@encore.com>
+ Keith Thompson <kst@alsys.com>
+ Roland Borde <bo@uebemc.siemens.de>
+ Matt Day <mday@artisoft.com>
+ Joe Ilacqua <spike@world.std.com>
+ Ju"rgen Fluk <louis@marco.de>
+ Bo Kullmar <bk@kullmar.se>
+ Leonard N. Zubkoff <lnz@dandelion.com>
+ Reuben Sumner <rasumner@undergrad.math.uwaterloo.ca>
+ Juergen Weigert <jnweiger@immd4.informatik.uni-erlangen.de>
+ Linus Torvalds <Linus.Torvalds@cs.Helsinki.FI>
+ Michael E Chastain <mec@duracef.shout.net>
+ Aaron Ucko <UCKO@VAX1.ROCKHURST.EDU>
+ David S. Miller <davem@caip.rutgers.edu>
+ Matthias Pfaller <leo@dachau.marco.de>
+ Thomas Bogendoerfer <tsbogend@bigbug.franken.de>
+ Richard Henderson <richard@twiddle.tamu.edu>
+ Tom Dyas <tdyas@eden.rutgers.edu>
+ Henrik Storner <storner@osiris.ping.dk>
+ David Mosberger-Tang <davidm@hpl.hp.com>
+ Ulrich Drepper <drepper@cygnus.com>
+ Nate Eldredge <nate@cartsys.com>
+ Jakub Jelinek <jj@ultra.linux.cz>
+ John Hughes <john@Calva.COM>
+ Richard Braakman <dark@xs4all.nl>
+ Florian Lohoff <flo@rfc822.org>
+ D.J. Barrow <djbarrow@de.ibm.com>
+ Topi Miettinen <Topi.Miettinen@nic.fi>
+ Gaël Roualland <gael.roualland@iname.com>
+ Richard Hirst <rhirst@linuxcare.com>
+ Ganesan Rajagopal <rganesan@myrealbox.com>
+ Greg Banks <gbanks@pocketpenguins.com>
+ Andi Kleen <ak@suse.de>
+ Michal Ludvig <mludvig@suse.cz>
+ Heiko Carstens <heiko.carstens@de.ibm.com>
diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 0000000..fb5b95f
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,3613 @@
+2005-06-09 Roland McGrath <roland@redhat.com>
+
+ * configure.ac, NEWS: Version 4.5.12.
+ * debian/changelog, strace.spec: 4.5.12-1.
+
+2005-06-08 Dmitry V. Levin <ldv@altlinux.org>
+
+ Minor namespace cleanup.
+ * defs.h (string_quote): Remove declaration.
+ * file.c (openmodessol) [LINUXSPARC]: Make static.
+ (fileflags): Likewise.
+ (aclcmds, aclipc) [HAVE_SYS_ACL_H]: Likewise.
+ (direnttypes) [FREEBSD || LINUX]: Likewise.
+ (xattrflags): Likewise.
+ * process.c (unalignctl_string): Make static.
+ (setarg): Disable.
+ * syscall.c (subcalls_table): Make static.
+ (socket_map) [!(LINUX && (ALPHA || MIPS))]: Likewise.
+ (sparc_socket_decode): Make static, define for [SPARC || SPARC64] only.
+ (decode_subcall): Make static.
+ (syscall_fixup): Likewise.
+ (get_error): Likewise.
+ (syscall_enter): Likewise.
+ * util.c (tv_tv): Disable.
+ (getpc): Likewise.
+ (string_quote): Make static.
+ Fixes RH#159688.
+
+2005-05-12 Philippe De Muyter <phdm@macqel.be>
+
+ * util.c (getpc, printcall): Check #if defined(M68K), not M68k.
+ Enables `-i' on m68k machines.
+
+2005-06-06 Roland McGrath <roland@redhat.com>
+
+ * process.c (struct_user_offsets) [X86_64]: Reorder elements so
+ matching works right.
+ Fixes RH#159787.
+
+ * linux/syscall.h (SYS_socket, SYS_bind, SYS_connect, SYS_listen)
+ (SYS_accept, SYS_getsockname, SYS_getpeername, SYS_socketpair)
+ (SYS_send, SYS_recv, SYS_sendto, SYS_recvfrom, SYS_shutdown)
+ (SYS_setsockopt, SYS_getsockopt, SYS_sendmsg, SYS_recvmsg)
+ (SYS_getsockname, SYS_semop, SYS_semgsub_et, SYS_semget, SYS_semctl)
+ (SYS_semtimedop, SYS_msgsnd, SYS_msgrcv, SYS_msgget)
+ (SYS_msgctl, SYS_shmat, SYS_shmdt, SYS_shmget)
+ (SYS_shmctl): Macros renamed to SYS_sub_*.
+ * syscall.c (dumpio): Match SYS_sub_* if defined instead of SYS_*.
+
+ * linux/syscall.h (SYS_waitid): Define if not defined.
+
+ * linux/syscallent.h: Fix pread/pwrite names to pread64/pwrite64.
+
+ * defs.h (struct sysent): New member `native_scno'.
+ (known_scno): Declare new function.
+ * linux/syscallent.h: Add new final field to interesting syscalls.
+ * syscall.c (known_scno): New function.
+ (dumpio, internal_syscall, syscall_fixup, trace_syscall): Use it.
+ * process.c (internal_fork, internal_exit): Likewise.
+ [IA64] (ARG_STACKSIZE, ARG_PTID, ARG_CTID, ARG_TLS): Likewise.
+ * strace.c (proc_open): Likewise.
+ * util.c [LINUX] (setbpt): Likewise.
+ * linux/syscall.h: Remove [!defined(X86_64)] from conditional
+ for defining SYS_socket_subcall et al.
+ * linux/syscallent.h: Likewise for #error check.
+ * syscall.c (trace_syscall): Likewise for SYS_{socketcall,ipc} cases.
+ Fixes RH#158934.
+
+2005-06-02 Roland McGrath <roland@redhat.com>
+
+ * file.c (printstatfs64): Cast values to unsigned long long and use
+ %llu formats.
+ Fixes RH#158243.
+
+2005-05-31 Dmitry V. Levin <ldv@altlinux.org>
+
+ Deal with memory management issues.
+ * defs.h (tprint_iov): Update prototype.
+ * desc.c (sys_epoll_wait) [HAVE_SYS_EPOLL_H]: Do not allocate
+ epoll_event array of arbitrary size on the stack, to avoid
+ stack overflow.
+ * file.c (print_xattr_val): Check for integer overflow during
+ malloc size calculation, to avoid heap corruption.
+ * io.c (tprint_iov) [HAVE_SYS_UIO_H]: Check for integer overflow
+ during malloc size calculation, to avoid heap corruption.
+ Change iovec array handling to avoid heap memory allocation.
+ * mem.c (get_nodes) [LINUX]: Check for integer overflow during
+ size calculation and do not allocate array of arbitrary size on
+ the stack, to avoid stack overflow.
+ * net.c (printcmsghdr) [HAVE_SENDMSG]: Do not allocate array of
+ arbitrary size on the stack, to avoid stack overflow. Do not
+ trust cmsg.cmsg_len to avoid read beyond the end of allocated
+ object.
+ (printmsghdr) [HAVE_SENDMSG]: Update tprint_iov() usage.
+ * process.c (sys_setgroups): Check for integer overflow during
+ malloc size calculation, to avoid heap corruption. Change gid_t
+ array handling to avoid heap memory allocation.
+ (sys_getgroups): Likewise.
+ (sys_setgroups32) [LINUX]: Likewise.
+ (sys_getgroups32) [LINUX]: Likewise.
+ * stream.c (sys_poll) [HAVE_SYS_POLL_H]: Check for integer
+ overflow during malloc size calculation, to avoid heap corruption.
+ Change pollfd array handling to avoid heap memory allocation.
+ * system.c (sys_sysctl) [LINUX]: Check for integer overflow
+ during malloc size calculation, to avoid heap corruption.
+ * util.c (dumpiov) [HAVE_SYS_UIO_H]: Check for integer overflow
+ during malloc size calculation, to avoid heap corruption.
+ Fixes RH#159196.
+
+ * util.c (printxval): Change third argument from "char *" to
+ "const char *".
+ (printflags): Add third argument, "const char *", with similar
+ meaning to the third argument of printxval().
+ * defs.h (printxval): Change third argument from "char *" to
+ "const char *".
+ (printflags): Add third argument.
+ * bjm.c (sys_query_module) [LINUX]: Pass third argument to
+ printflags().
+ * desc.c (sys_fcntl): Likewise.
+ (sys_flock) [LOCK_SH]: Likewise.
+ (print_epoll_event) [HAVE_SYS_EPOLL_H]: Likewise.
+ * file.c (sys_open): Likewise.
+ (solaris_open) [LINUXSPARC]: Likewise.
+ (sys_access): Likewise.
+ (sys_chflags, sys_fchflags) [FREEBSD]: Likewise.
+ (realprintstat) [HAVE_LONG_LONG_OFF_T &&
+ HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
+ (printstat64) [HAVE_STAT64 &&
+ HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
+ (sys_setxattr, sys_fsetxattr): Likewise.
+ * ipc.c (sys_msgget, sys_msgsnd, sys_msgrcv, sys_semget,
+ sys_shmget, sys_shmat) [LINUX || SUNOS4 || FREEBSD]: Likewise.
+ (sys_mq_open) [LINUX]: Likewise.
+ (printmqattr) [HAVE_MQUEUE_H]: Likewise.
+ * mem.c (print_mmap) [!HAVE_LONG_LONG_OFF_T]: Likewise.
+ (sys_mmap64) [_LFS64_LARGEFILE || HAVE_LONG_LONG_OFF_T]: Likewise.
+ (sys_mprotect): Likewise.
+ (sys_mremap, sys_madvise, sys_mlockall) [LINUX]: Likewise.
+ (sys_msync) [MS_ASYNC]: Likewise.
+ (sys_mctl) [MC_SYNC]: Likewise.
+ (sys_remap_file_pages, sys_mbind, sys_get_mempolicy) [LINUX]:
+ Likewise.
+ * net.c (printmsghdr) [HAVE_STRUCT_MSGHDR_MSG_CONTROL]: Likewise.
+ (sys_send, sys_sendto): Likewise.
+ (sys_sendmsg) [HAVE_SENDMSG]: Likewise.
+ (sys_recv, sys_recvfrom): Likewise.
+ (sys_recvmsg) [HAVE_SENDMSG]: Likewise.
+ (printicmpfilter) [ICMP_FILTER]: Likewise.
+ * proc.c (proc_ioctl) [SVR4 && !HAVE_MP_PROCFS || FREEBSD]: Likewise.
+ * process.c (sys_clone) [LINUX]: Likewise.
+ (printwaitn): Likewise.
+ (sys_waitid) [SVR4 || LINUX]: Likewise.
+ * signal.c (sys_sigvec) [SUNOS4 || FREEBSD]: Likewise.
+ (sys_sigaction): Likewise.
+ (printcontext) [SVR4]: Likewise.
+ (print_stack_t) [LINUX) || FREEBSD]: Likewise.
+ (sys_rt_sigaction) [LINUX]: Likewise.
+ * sock.c (sock_ioctl) [LINUX]: Likewise.
+ * stream.c (sys_putmsg, sys_getmsg): Likewise.
+ (sys_putpmsg) [SYS_putpmsg]: Likewise.
+ (sys_getpmsg) [SYS_getpmsg]: Likewise.
+ (sys_poll): Likewise.
+ (print_transport_message) [TI_BIND]: Likewise.
+ (stream_ioctl): Likewise.
+ * system.c (sys_mount, sys_reboot): Likewise.
+ (sys_cacheflush) [LINUX && M68K]: Likewise.
+ (sys_capget, sys_capset) [SYS_capget]: Likewise.
+ * term.c (term_ioctl) [TIOCMGET]: Likewise.
+ * time.c (sys_clock_nanosleep, sys_timer_settime) [LINUX]:
+ Likewise.
+ Fixes RH#159310.
+
+ * bjm.c (sys_query_module) [LINUX]: Unitize "out of memory"
+ errors reporting style.
+ * strace.c (rebuild_pollv) [USE_PROCFS]: Likewise.
+ * system.c (sys_capget, sys_capset) [SYS_capget]: Likewise.
+ * util.c (printstr): Likewise.
+ (dumpiov) [HAVE_SYS_UIO_H]: Likewise.
+ (fixvfork) [SUNOS4]: Likewise.
+ * desc.c (decode_select): Continue to decode syscall arguments
+ in case of OOM condition.
+ * file.c (sys_getdents): Likewise.
+ (sys_getdents64) [_LFS64_LARGEFILE]: Likewise.
+ (sys_getdirentries) [FREEBSD]: Likewise.
+ * mem.c (sys_mincore): Changed type of variables which deal with
+ malloc size from int to unsigned long.
+ Fixes RH#159308.
+
+2005-05-22 Dmitry V. Levin <ldv@altlinux.org>
+
+ * bjm.c [LINUX]: Do not include <linux/linkage.h>. It is not
+ safe to include kernel headers, and this one is not used anyway.
+ Fixes RH#158488.
+
+2005-05-26 Roland McGrath <roland@redhat.com>
+
+ * system.c (sys_sysctl): Check for errors accessing user pointers.
+ Use malloc instead of alloca in case size is insane.
+
+2005-05-09 Roland McGrath <roland@redhat.com>
+
+ * configure.ac: Check for libaio.h.
+ * desc.c (sys_io_setup, sys_io_submit, sys_io_cancel,
+ sys_io_getevents, sys_io_destroy): New functions.
+ * linux/syscall.h: Declare them.
+ * linux/syscallent.h: Use those for io_* syscalls.
+ * linux/alpha/syscallent.h: Likewise.
+ * linux/hppa/syscallent.h: Likewise.
+ * linux/ia64/syscallent.h: Likewise.
+ * linux/mips/syscallent.h: Likewise.
+ * linux/powerpc/syscallent.h: Likewise.
+ * linux/s390/syscallent.h: Likewise.
+ * linux/s390x/syscallent.h: Likewise.
+ * linux/x86_64/syscallent.h: Likewise.
+ From Zach Brown <zach.brown@oracle.com>.
+ Fixes RH#155065.
+
+ * debian/control (Architecture): Add ppc64.
+ Fixes Debian bug #301089.
+
+2005-05-05 Anton Blanchard <anton@samba.org>
+
+ * process.c (ptrace_cmds): Add PTRACE_GETVRREGS and PTRACE_SETVRREGS
+ if defined.
+
+2005-05-09 Roland McGrath <roland@redhat.com>
+
+ * strace.c (main): Refuse negative -s argument value.
+ Fixes Debian bug #303256.
+
+2005-04-25 Anton Blanchard <anton@samba.org>
+
+ * file.c (openmodes): Add O_NOATIME flag if defined.
+
+2005-04-05 Anton Blanchard <anton@samba.org>
+
+ * linux/powerpc/ioctlent.h: Regenerated.
+
+ * signal.c (signame): Don't try and dereference negative index.
+
+ * linux/powerpc/syscallent.h: Add debug_setcontext, vserver,
+ mbind, *_mempolicy, mq_*, sys_kexec_load, add_key, request_key,
+ keyctl, waitid, sys_semtimedop. Fix various other syscalls.
+
+ * ipc.c (shm_resource_flags): New variable, table has SHM_HUGETLB
+ but not IPC_NOWAIT, which have the same value.
+ (sys_shmget): Use that instead of resource_flags.
+
+2005-03-22 Roland McGrath <roland@redhat.com>
+
+ * desc.c (decode_select): Increase local buffer size.
+ Fixes RH#151570.
+
+ * configure.ac, NEWS: Version 4.5.11.
+ * debian/changelog, strace.spec: 4.5.11-1.
+
+ * linux/arm/syscallent.h: Fix 113 entry (syscall, not vm86old).
+
+2005-03-14 Roland McGrath <roland@redhat.com>
+
+ * configure.ac, NEWS: Version 4.5.10.
+ * debian/changelog, strace.spec: 4.5.10-1.
+
+2005-02-26 GOTO Masanori <gotom@debian.or.jp>
+
+ * linux/alpha/syscallent.h: Fix the reversed order of lstat64 and
+ fstat64. Clean up osf_nrecvmsg and osf_ngetsockname.
+
+2005-02-28 Andreas Schwab <schwab@suse.de>
+
+ * syscall.c (getrval2): Move #ifdef IA64 inside #ifdef LINUX.
+
+2005-03-14 Roland McGrath <roland@redhat.com>
+
+ * linux/mips/syscallent.h: Update various calls.
+ From Thiemo Seufer <ths@networkno.de>.
+ Fixes Debian bug #256684.
+
+ * debian/control (Architecture): Add s390.
+ Fixes Debian bug #294172.
+
+2005-03-06 Roland McGrath <roland@redhat.com>
+
+ * strace.c (trace) [PTRACE_GETSIGINFO]: Fetch siginfo_t for SIGSEGV
+ and SIGBUS signals, use si_addr in output.
+
+2005-03-01 Roland McGrath <roland@redhat.com>
+
+ * file.c (print_xattr_val): Add a cast.
+
+2005-02-05 Roland McGrath <roland@redhat.com>
+
+ * desc.c (decode_select): Calculate size of passed fd_set vectors and
+ copy in the user's size rather than the standard sizeof(fd_set).
+ Fixes Debian bug #65654, #284290.
+
+ * util.c (printpath, printpathn): Print NULL and don't try any fetch
+ when ADDR is zero.
+ Fixes Debian bug #63093.
+
+ * debian/control (Build-Depends): Fix for s390 and sparc.
+ From Bastian Blank <waldi@debian.org>.
+ Fixes Debian bug #293564.
+
+2004-12-19 Dmitry V. Levin <ldv@altlinux.org>
+
+ * strace.c (main) [!USE_PROCFS]: In child process, raise SIGSTOP
+ right before execv() call. Remove fake_execve() call.
+ * defs.h (fake_execve): Remove unused declaration.
+ * process.c (fake_execve): Remove unused function.
+ Fixes RH#143365.
+
+2005-02-04 Roland McGrath <roland@redhat.com>
+
+ * configure.ac, NEWS: Version 4.5.9.
+ * debian/changelog, strace.spec: 4.5.9-2.
+
+ * file.c (O_LARGEFILE): Omit when #undef'd because it was zero.
+
+2005-02-02 Roland McGrath <roland@redhat.com>
+
+ * debian/control: Add strace-udeb package for installer debugging.
+ * debian/rules (binary-arch): Build it.
+ From Joshua Kwan <joshk@triplehelix.org>.
+ Fixes Debian bug #268294.
+
+ * file.c (openmodes) [O_LARGEFILE] [O_LARGEFILE == 0]: Redefine to
+ known values for Linux.
+
+ * util.c (printcall): Print 16 ?s when long is 8 bytes.
+ Fixes RH#146932.
+
+ * linux/sparc/syscall.h: Declare sys_epoll_create, sys_epoll_ctl,
+ sys_epoll_wait.
+ * linux/sparc64/syscall.h: Just #include "../sparc/syscall.h" here.
+ * ioctl.c (nioctlents2): Add const to type.
+ Fixes Debian bug #278449.
+
+ * sock.c (iffflags): New variable, table of IFF_* values.
+ (print_addr): New function.
+ (sock_ioctl): Handle SIOCGIFADDR, SIOCGIFDSTADDR, SIOCGIFBRDADDR,
+ SIOCGIFNETMASK, SIOCGIFFLAGS, SIOCGIFMETRIC, SIOCGIFMTU, SIOCGIFSLAVE,
+ SIOCGIFHWADDR. Use print_addr for SIOCGIFCONF, SIOCGIFNAME, and
+ SIOCGIFINDEX, and fix their output.
+ From Ulrich Drepper <drepper@redhat.com>.
+ Fixes RH#138223.
+ Fixes Debian bug #192164.
+
+2004-12-20 Dmitry V. Levin <ldv@altlinux.org>
+
+ * configure.ac: Use AC_GNU_SOURCE macro instead of changing CFLAGS.
+ * defs.h [HAVE_CONFIG_H]: Include config.h first.
+ * strace.c: Include "defs.h" first.
+ Fixes RH#143370.
+
+ * syscall.c (call_summary): Fix potential NULL dereference.
+ Fixes RH#143369.
+
+2004-12-19 Dmitry V. Levin <ldv@altlinux.org>
+
+ * syscall.c (qual_signal): Check bounds for numeric signal names.
+ Fix parser of symbolic signal names.
+ Fix return code, as required by qualify() function.
+ * syscall.c (qual_desc): Check bounds for descriptor number.
+ * syscall.c (qual_syscall): Correct return code, to be consistent
+ with qualify() and other qual_* functions.
+ Fixes RH#143362.
+
+2005-02-01 Roland McGrath <roland@redhat.com>
+
+ * system.c [LINUX] (MS_MANDLOCK, MS_NOATIME, MS_NODIRATIME, MS_BIND,
+ MS_MOVE, MS_REC, MS_VERBOSE, MS_POSIXACL, MS_ACTIVE, MS_NOUSER):
+ New macros.
+ [LINUX] (mount_flags): Add them.
+ [LINUX] (sys_mount): If any of (MS_BIND|MS_MOVE|MS_REMOUNT) bits are
+ set in the flags argument, don't try to fetch the filesystem string.
+ Fixes RH#141932.
+
+ * config.guess: Update from canonical version, timestamp 2004-11-12.
+ * config.sub: Likewise, timestamp 2004-11-30.
+
+ * process.c [LINUX] [X86_64] (sys_arch_prctl): New function.
+ * linux/syscall.h: Declare it.
+ * linux/x86_64/syscallent.h: Use it.
+ Part of RH#142667.
+
+ * process.c (sys_sched_setscheduler): Use %#lx format for bad pointer.
+ (sys_sched_getparam, sys_sched_setparam): Likewise.
+ Part of RH#142667.
+
+ * signal.c [HAVE_SIGACTION] [LINUX && X86_64] (SA_RESTORER): Define
+ here too.
+ Part of RH#142667.
+
+ * linux/syscallent.h: Use sys_mincore instead of printargs.
+ * linux/x86_64/syscallent.h: Likewise. Also use sys_getrlimit,
+ sys_semtimedop, sys_umount2.
+ Part of RH#142667.
+
+ * syscall.c (qual_signal): Fix inverted return value and bogus
+ argument to qualify_one in the named case.
+
+ * file.c (print_xattr_val): Don't use auto array sized by syscall
+ argument. Use malloc instead, so it can fail for insane values.
+ Fixes Debian bug #283704.
+
+ * net.c (sys_getsockopt): Fix a format %ld -> %d.
+
+ * linux/syscall.h [IA64] (SYS_semtimedop): #undef it.
+
+ * syscall.c (syscall_enter) [X86_64]: Fix 32-bit argument register map
+ not to double the middle entry!
+ Fixes RH#146093.
+
+ * linux/x86_64/syscallent.h: Fix exit_group entry.
+
+ * util.c (getpc) [S390 || S390X]: Implement it.
+ Patch by David Wilder <wilder@us.ibm.com>.
+
+ * linux/ia64/syscallent.h: Add fadvise64, fstatfs64, statfs64, mbind,
+ [gs]et_mempolicy, mq_*, sys_kexec_load, vserver, and waitid.
+ Fixes RH#146245.
+
+2005-01-22 Andreas Schwab <schwab@suse.de>
+
+ * net.c (sys_getsockopt): Change type of len to int.
+
+2004-10-19 Roland McGrath <roland@redhat.com>
+
+ * configure.ac, NEWS: Version 4.5.8.
+ * debian/changelog, strace.spec: 4.5.8-1.
+
+ * file.c (sys_fadvise64): Conditionalize just on [LINUX].
+
+ * configure.ac: Check for sys/epoll.h.
+ * desc.c: Protect #include <sys/epoll.h> with [HAVE_SYS_EPOLL_H].
+ (epollctls, epollevents): Protect each entry with #ifdef on its macro.
+
+ * strace.c (handle_group_exit): Don't detach leader that wasn't
+ TCB_ATTACHED. Instead mark it with TCB_GROUP_EXITING.
+ Remove droptcb loop at end, no longer required since 2.6 reports each
+ thread death.
+ Fixes RH#135254.
+
+ * strace.c (trace): Use handle_group_exit for non-TCB_ATTACHED child
+ taking signal when it has nclone_threads > 0.
+
+ * strace.c (handle_group_exit, trace): Mark leader with
+ TCB_GROUP_EXITING and don't be surprised at child deaths when their
+ leader has it set.
+ Fixes RH#132150.
+
+ * process.c (WCOREFLAG): Define if not defined.
+ (W_STOPCODE, W_EXITCODE): Likewise.
+ Reported by Marty Leisner <mleisner@eng.mc.xerox.com>.
+
+ * sock.c [! LINUX]: Include <sys/socket.h> before <sys/sockio.h>.
+ Reported by Marty Leisner <mleisner@eng.mc.xerox.com>.
+
+ * debian/rules: Make strace64.1.gz symlink to strace.1.gz instead of
+ strace64.1 to strace.1, which doesn't exist.
+ Fixes Debian bug #269220.
+
+2004-09-05 Phil Blundell <pb@nexus.co.uk>
+
+ * linux/arm/syscallent.h: New file.
+
+2004-10-19 Roland McGrath <roland@redhat.com>
+
+ * debian/rules (DEB_BUILD_GNU_TYPE, CONFIG_OPTS): New variables.
+ [$(DEB_HOST_GNU_TYPE) == s390-linux] (build64, HOST64, CC64): Set them.
+ (build/Makefile): Use $(CONFIG_OPTS).
+ (build64/Makefile): Pass --host as well as --build.
+ From Bastian Blank <waldi@debian.org>.
+ Fixes Debian bug #271500.
+
+ * linux/hppa/syscallent.h: Update for 2.6.9 syscalls.
+ From Randolph Chung <tausq@debian.org>
+ Fixes Debian bug #273887.
+
+ * file.c (sys_llseek): Revert last change.
+
+2004-09-14 Richard Henderson <rth@twiddle.net>
+
+ * linux/alpha/syscallent.h: Add tgkill, *stat64, vserver, mbind,
+ [gs]et_mempolicy, mq_*, waitid.
+
+2004-10-07 Roland McGrath <roland@redhat.com>
+
+ * file.c (sys_llssek, sys_readahead, sys_fadvise64, sys_fadvise64_64):
+ Use LONG_LONG macro.
+ * io.c (sys_pread, sys_pwrite, sys_sendfile): Likewise.
+
+ * linux/x86_64/syscallent.h: Fix botched table entries.
+ From Ulrich Drepper <drepper@redhat.com>.
+
+ * mem.c [LINUX] (sys_mbind, sys_set_mempolicy, sys_get_mempolicy):
+ New functions.
+ * linux/syscall.h: Declare them.
+ * linux/x86_64/syscallent.h: Likewise.
+ From Ulrich Drepper <drepper@redhat.com>.
+
+ * linux/syscallent.h: Handle mbind, set_mempolicy, get_mempolicy.
+ From Ulrich Drepper <drepper@redhat.com>.
+
+ * file.c [LINUX && (I386 || X86_64)] (sys_fadvise64, sys_fadvise64_64):
+ New functions.
+ * linux/syscall.h: Declare them.
+ * linux/syscallent.h: Handle fadvise64 and fadvise64_64 using those.
+ * linux/x86_64/syscallent.h: Likewise.
+ From Ulrich Drepper <drepper@redhat.com>.
+
+2004-09-13 Dmitry V. Levin <ldv@altlinux.org>
+
+ * linux/ioctlsort.c (main): Omit duplicate lines
+ (with same name and code) from output.
+ * linux/ioctlent.sh: Build the list of ioctls defined in
+ scsi/sg.h (0x22..), scsi/scsi.h and scsi/scsi_ioctl.h (0x53..),
+ as suggested by Peter Jones <pjones@redhat.com>
+ * linux/ioctlent.h: Regenerated.
+ Fixes RH#129808.
+
+2004-09-13 Ulrich Drepper <drepper@redhat.com>
+ Dmitry V. Levin <ldv@altlinux.org>
+
+ * time.c [LINUX] (print_rtc): New function, for printing rtc_time
+ structure.
+ [LINUX] (rtc_ioctl): New function, for parsing RTC_* ioctls.
+ * ioctl.c [LINUX] (ioctl_decode): Call rtc_ioctl.
+ * defs.h [LINUX]: Declare rtc_ioctl.
+ Fixes RH#58606.
+
+2004-10-06 Roland McGrath <roland@redhat.com>
+
+ * desc.c [LINUX] (sys_epoll_create, sys_epoll_ctl, sys_epoll_wait):
+ New functions.
+ * linux/syscall.h: Declare them.
+ * linux/syscallent.h: Use those for epoll_* syscalls.
+ * linux/alpha/syscallent.h: Likewise.
+ * linux/hppa/syscallent.h: Likewise.
+ * linux/ia64/syscallent.h: Likewise.
+ * linux/powerpc/syscallent.h: Likewise.
+ * linux/s390/syscallent.h: Likewise.
+ * linux/s390x/syscallent.h: Likewise.
+ * linux/sparc/syscallent.h: Likewise.
+ * linux/sparc64/syscallent.h: Likewise.
+ * linux/sparc64/syscallent2.h: Likewise.
+ * linux/x86_64/syscallent.h: Likewise.
+ From Ulrich Drepper <drepper@redhat.com>.
+ Fixes RH#134463.
+
+ * resource.c (resources): Add RLIMIT_LOCKS, RLIMIT_SIGPENDING,
+ and RLIMIT_MSGQUEUE, if defined.
+ From Ulrich Drepper <drepper@redhat.com>.
+ Fixes RH#133594.
+
+ * net.c [HAVE_SENDMSG] (printcmsghdr): New function.
+ (printmsghdr): Use it.
+ From Ulrich Drepper <drepper@redhat.com>.
+ Fixes RH#131689.
+
+ * file.c (sprintmode): Add const to return type.
+ (sprintfstype): Likewise.
+ * signal.c (printsiginfo): Add a const.
+
+2004-09-15 Roland McGrath <roland@redhat.com>
+
+ * linux/x86_64/syscallent.h: Use sys_waitid.
+
+ * linux/syscallent.h: waitid takes 5 arguments, and is in TP category.
+ * process.c (sys_waitid): Handle fifth argument (struct rusage *).
+
+2004-09-11 Roland McGrath <roland@redhat.com>
+
+ * time.c (sys_clock_nanosleep): Print zero flags arg correctly.
+ (sys_timer_settime): Likewise.
+ (printsigevent): Print signals by name for SIGEV_SIGNAL.
+ (sys_timer_create): Print clock ID symbolically.
+ From Ulrich Drepper <drepper@redhat.com>.
+ Fixes RH#131420.
+
+2004-09-07 Michal Ludvig <mludvig@suse.cz>
+
+ * defs.h (nioctlents1, nsignals2): Fix typos in decls.
+
+2004-09-03 Roland McGrath <roland@redhat.com>
+
+ * syscall.c (qual_options): Add const to defn.
+ Update all uses.
+ (call_count, error_count, tv_count): Variables removed.
+ (struct call_counts, counts): New type and variable.
+ Update all users of the old three to use the new array of structs.
+ (trace_syscall): Allocate counts on first use.
+ (sorted_count): Variable removed.
+ (call_summary): Allocate locally.
+
+ * syscall.c (sysent0, sysent1, sysent2, sysent): Add const to defn.
+ (nsyscalls0, nsyscalls1, nsyscalls2): Likewise.
+ (errnoent0, errnoent1, errnoent2, errnoent): Likewise.
+ (nerrnos0, nerrnos1, nerrnos2): Likewise.
+ * signal.c (signalent0, signalent1, signalent2): Likewise.
+ (nsignals0, nsignals1, nsignals2): Likewise.
+ (signame): LIkewise.
+ * ioctl.c (ioctlent0, ioctlent1, ioctlent2): Likewise.
+ (nioctlents0, nioctlents1, nioctlents2): Likewise.
+ (ioctl_lookup, ioctl_next_match): Likewise.
+ * defs.h: Update decls.
+ * io.c (sys_ioctl): Update users.
+
+ * util.c (xlookup, printxval, addflags, printflags): Use const for
+ struct xlat * argument.
+ * defs.h (xlookup, printxval, addflags, printflags): Update decls.
+ * bjm.c: Add const to all struct xlat defns.
+ * desc.c: Likewise.
+ * file.c: Likewise.
+ * ipc.c: Likewise.
+ * mem.c: Likewise.
+ * net.c: Likewise.
+ * proc.c: Likewise.
+ * process.c: Likewise.
+ * resource.c: Likewise.
+ * signal.c: Likewise.
+ * sock.c: Likewise.
+ * stream.c: Likewise.
+ * system.c: Likewise.
+ * term.c: Likewise.
+ * time.c: Likewise.
+ * util.c: Likewise.
+
+2004-09-01 Roland McGrath <roland@redhat.com>
+
+ * linux/x86_64/syscallent.h: Add new entries for timer_*, clock_*, and
+ mq_* syscalls, and names only for new calls up to 252.
+ * linux/syscallent.h: Add waitid.
+ * linux/x86_64/syscallent.h: Likewise.
+ * linux/syscall.h: Declare sys_waitid.
+
+ * process.c (internal_wait): Take second arg giving index of flags
+ argument.
+ * defs.h: Update prototype.
+ * syscall.c (internal_syscall): Update caller.
+ Also use internal_wait for SYS_waitid.
+ * process.c (sys_waitid): Define for [LINUX] as well.
+ Don't tweak TCB_SUSPENDED--internal_wait does that.
+ (waitid_types): Conditionalize use of nonstandard P_* macros.
+
+2004-08-31 Roland McGrath <roland@redhat.com>
+
+ * configure.ac, NEWS: Version 4.5.7.
+ * debian/changelog: 4.5.7-1.
+ * strace.spec: 4.5.7-2.
+
+ * debian/rules: Rewrite sparc64 change of 2004-07-12.
+ Always do each build in a separate build directory.
+ Fixes Debian bug #254728.
+
+ * time.c (clocknames): Use #ifdef around CLOCK_* uses.
+
+ * strace.1: Say that -c shows system CPU time, not real time.
+ Fixes Debian bug #254438.
+
+ * syscall.c (dumpio): Match pread and pwrite system calls too.
+ Fixes Debian bug #239947.
+
+ * net.c (sockoptions): Add all SO_* macros known in Linux 2.6.9.
+ Fixes Debian bug #171653.
+
+2004-07-12 Dmitry V. Levin <ldv@altlinux.org>
+
+ * signal.c [LINUX] (parse_sigset_t): Fix hex strings parser.
+ Fixes RH#128091.
+
+2004-08-30 Roland McGrath <roland@redhat.com>
+
+ * strace.c (main): Don't call fake_execve under -c.
+ From Ulrich Drepper <drepper@redhat.com>.
+ Fixes RH#129166.
+
+ * net.c (sockipoptions): Add some options.
+ [SOL_IPV6] (sockipv6options): New variable.
+ (sys_getsockopt, printsockopt): Use it for SOL_IPV6 level.
+ From Ulrich Drepper <drepper@redhat.com>.
+ Fixes RH#128391.
+
+ * time.c (clocknames): New variable, symbolic names for clock_t.
+ (sys_clock_settime, sys_clock_gettime, sys_clock_nanosleep): Use it.
+ From Ulrich Drepper <drepper@redhat.com>.
+ Fixes RH#129378.
+
+ * system.c (personality_options): Hard-code values here.
+ Don't #include <linux/personality.h> at all.
+ Fixes RH#130965 and Debian bug #40588.
+
+ * file.c (print_xattr_val): New function to show attribute values.
+ (sys_setxattr, sys_fsetxattr, sys_getxattr, sys_fgetxattr): Use it.
+ From Ulrich Drepper <drepper@redhat.com>.
+ Fixes RH#131177.
+
+2004-07-12 Roland McGrath <roland@redhat.com>
+
+ * configure.ac, NEWS: Version 4.5.6.
+ * strace.spec, debian/changelog: 4.5.6-1.
+
+ * Makefile.am (EXTRA_DIST): Add linux/sparc64 files.
+
+ * debian/rules: On sparc-linux, build strace64 as well.
+ From Ben Collins <bcollins@debian.org>.
+ Fixes Debian bug #254728.
+
+2004-07-07 David S. Miller <davem@nuts.davemloft.net>
+
+ * linux/sparc/syscallent.h: Sync with reality.
+ * linux/sparc/syscall.h (sys_sendfile64, sys_futex, sys_gettid,
+ sys_sched_setaffinity, sys_sched_getaffinity, sys_setxattr,
+ sys_lsetxattr, sys_fsetxattr, sys_getxattr, sys_lgetxattr,
+ sys_fgetxattr, sys_listxattr, sys_llistxattr, sys_flistxattr,
+ sys_removexattr, sys_lremovexattr, sys_fremovexattr,
+ sys_remap_file_pages, sys_readahead, sys_tgkill, sys_statfs64,
+ sys_fstatfs64, sys_clock_settime, sys_clock_gettime,
+ sys_clock_getres, sys_clock_nanosleep, sys_timer_create,
+ sys_timer_settime, sys_timer_gettime): New declarations.
+ * linux/sparc64/dummy2.h, linux/sparc64/syscallent2.h,
+ linux/sparc64/syscall.h, linux/sparc64/errnoent.h,
+ linux/sparc64/errnoent1.h, linux/sparc64/errnoent2.h,
+ linux/sparc64/ioctlent.h, linux/sparc64/ioctlent1.h,
+ linux/sparc64/ioctlent2.h, linux/sparc64/signalent.h,
+ linux/sparc64/signalent.h, linux/sparc64/signalent.h,
+ linux/sparc64/signalent1.h, linux/sparc64/signalent2.h,
+ linux/sparc64/syscall1.h, linux/sparc64/syscallent.h,
+ linux/sparc64/syscallent1.h: New files.
+ * defs.h (LINUXSPARC): Define also when SPARC64.
+ (LINUX && SPARC64): Set SUPPORTED_PERSONALITIES to 3.
+ Ignore SIGTRAP after execve by defining TCB_WAITEXECVE.
+ Define possibly missing __NR_exit_group. Declare getrval2.
+ * configure.ac (sparc64): New architecture case.
+ * file.c (stat_sparc64): New structure.
+ (printstat_sparc64): New output routine for that.
+ (printstat): Call it, if personality is 2.
+ (printstat64): Likewise.
+ * util.c: Conditionalize ptrace defines on LINUXSPARC
+ not LINUX && SPARC.
+ (SPARC64 && LINUX): Define r_pc to r_tpc, and PTRACE_FOOREGS
+ to PTRACE_FOOREGS64 so that more sparc code can be shared
+ between 64-bit and 32-bit.
+ (_hack_syscall5): Correct trap number when SPARC64.
+ (PTRACE_WRITE{TEXT,DATA}): Add SPARC64 to ifdef guard.
+ (getpc): Handle SPARC64 && LINUX.
+ (printcall): Likewise.
+ (arg fetching/setting): Use same code for SPARC64 LINUX
+ as for SPARC.
+ (setbpt): Handle SPARC64 && LINUX.
+ (clearbpt): Likewise.
+ * signal.c: Conditionalize ptrace defines on SPARC and
+ SPARC64.
+ (SPARC64 && LINUX): Define r_pc to r_tpc, and PTRACE_FOOREGS
+ to PTRACE_FOOREGS64 so that more sparc code can be shared
+ between 64-bit and 32-bit.
+ (m_siginfo): Use same definition on SPARC64 as SPARC.
+ (sys_sigreturn): Handle LINUX && SPARC64.
+ * syscall.c: Conditionalize ptrace defines on SPARC and
+ SPARC64.
+ (SPARC64 && LINUX): Define r_pc to r_tpc, and PTRACE_FOOREGS
+ to PTRACE_FOOREGS64 so that more sparc code can be shared
+ between 64-bit and 32-bit.
+ (getscno): Use same static state on SPARC64 as SPARC,
+ and add SPARC64 handling.
+ (get_error): Handle LINUX && SPARC64.
+ (force_result): Likewise.
+ (syscall_enter): Likewise.
+ (trace_syscall): Handle sys_socketcall and sys_ipc on SPARC64
+ just like SPARC.
+ (getrval2): Handle LINUX && SPARC64.
+ * process.c: Conditionalize ptrace defines on SPARC and
+ SPARC64.
+ (SPARC64 && LINUX): Define r_pc to r_tpc, and PTRACE_FOOREGS
+ to PTRACE_FOOREGS64 so that more sparc code can be shared
+ between 64-bit and 32-bit.
+ (change_syscall): Handle LINUX && SPARC64.
+ (struct_user_offsets): Ifdef out those which do not exist
+ on SPARC64.
+ * net.c (sys_pipe): Handle LINUX && SPARC64.
+ * ioctl.c: Fix initializer typo for nioctlents2, was
+ nioctlents1 by accident.
+
+2004-06-28 Andreas Schwab <schwab@suse.de>
+
+ * process.c (internal_exec): Move TCB_WAITEXECVE handling here.
+ (sys_execve): Remove it here.
+
+2004-07-12 Roland McGrath <roland@redhat.com>
+
+ * Makefile.am (EXTRA_DIST): Add linux/sh64/syscallent.h.
+
+ * debian/control (Section): Move to utils, matching Debian override.
+
+ * net.c (addrfams): Make variable global.
+ * sock.c (sock_ioctl): Decode the arguments for SIOCGIFNAME,
+ SIOCGIFINDEX, and SIOCGIFCONF.
+ From Ulrich Drepper <drepper@redhat.com>.
+ Fixes RH#126917.
+
+ * linux/ioctlsort.c: Add some #includes.
+ [POWERPC]: Kludge out high bits.
+ * linux/ia64/ioctlent.h: Regenerated using RHEL3 headers.
+ * linux/powerpc/ioctlent.h: Likewise.
+
+2004-07-11 Roland McGrath <roland@redhat.com>
+
+ * linux/ioctlent.sh: Replace asm with $asm in all places.
+
+ * configure.ac: Add I386 as AM_CONDITIONAL.
+ * Makefile.am [LINUX]: Add maintainer-mode rules to regenerate
+ the ioctlent.h file.
+
+2004-07-08 Roland McGrath <roland@redhat.com>
+
+ * resource.c (sys_quotactl): Truncate first argument to 32 bits, since
+ that's what the kernel will do.
+
+2004-07-07 Roland McGrath <roland@redhat.com>
+
+ * linux/ioctlent.sh: Take optional second argument to use as directory
+ name in place of `asm'.
+
+2004-06-27 Roland McGrath <roland@redhat.com>
+
+ * configure.ac, NEWS: Version 4.5.5.
+ * strace.spec, debian/changelog: 4.5.5-1.
+
+2004-06-22 Roland McGrath <roland@redhat.com>
+
+ * syscall.c (syscall_fixup) [LINUX && X86_64]: For 32-bit process,
+ sign extend the low 32 bits of RAX to 64 bits.
+ Fixes RH#126547.
+
+ * syscall.c (force_result): [LINUX && X86_64]: Fix RAX*4 -> RAX*8.
+
+2004-06-03 Roland McGrath <roland@redhat.com>
+
+ * configure.ac, NEWS: Version 4.5.4.
+ * strace.spec, debian/changelog: 4.5.4-1.
+
+ * net.c (domains): Add many PF_* values #ifdef PF_*.
+ (addrfams): Add many AF_* values #ifdef AF_*.
+ Fixes Debian bug #250506.
+
+2004-05-02 Dmitry V. Levin <ldv@altlinux.org>
+
+ * linux/ioctlsort.c (compare): When ioctl codes equal, compare
+ names.
+ (main): Print a note that program output is generated by
+ ioctlsort.
+ * linux/ioctlent.sh: Build the list of ioctls defined in
+ linux/fb.h (0x46..), linux/kd.h (0x4B..), linux/cdrom.h (0x53..),
+ asm/ioctls.h (0x54..), linux/vt.h (0x56..), linux/videotext.h
+ (0x71..), linux/videotext.h (0x72..), asm/sockios.h (0x89..),
+ linux/sockios.h (0x89..), linux/wireless.h (0x8B..).
+ * linux/ioctlent.h: Regenerated from linux-2.6.5.
+ Fixes RH#122257.
+
+2004-06-03 Roland McGrath <roland@redhat.com>
+
+ * debian/control (Architecture): Add amd64.
+ Fixes Debian bug #246568.
+
+ * strace.c (main) [LINUX]: Expand TCBTAB as necessary for threads
+ attached. Attach threads only under -f. Set TCB_FOLLOWFORK in them.
+ (expand_tcbtab): New function, broken out of ...
+ * process.c (fork_tcb): ... here, call that.
+ * defs.h: Declare expand_tcbtab.
+
+2004-04-19 Roland McGrath <roland@redhat.com>
+
+ * process.c (printstatus): Add a space before | in output.
+
+2004-04-16 Roland McGrath <roland@redhat.com>
+
+ * configure.ac: Version 4.5.3.
+ * strace.spec, debian/changelog: 4.5.3-1.
+
+2004-03-18 Dmitry V. Levin <ldv@altlinux.org>
+
+ * resource.c (sys_quotactl) [LINUX]: Cast arithmetic shift operand
+ from long to unsigned long, to fix output of the quotactl command
+ parser.
+ Fixes RH#118694.
+
+2004-04-16 Roland McGrath <roland@redhat.com>
+
+ * linux/s390/ioctlent.h, linux/s390x/ioctlent.h: Update DASD ioctls.
+ From Maxim Shchetynin <maxim@de.ibm.com>.
+
+ * configure.ac: Check for <mqueue.h>.
+ * ipc.c (sys_mq_open, printmqattr) [! HAVE_MQUEUE_H]: Don't try to
+ decode struct mq_attr.
+ * NEWS: Mention mq support.
+
+ * linux/syscall.h: Support new mq_* syscalls on Linux.
+ * linux/syscallent.h: Likewise.
+ * linux/dummy.h: Likewise.
+ * ipc.c: Likewise.
+ * time.c (printsigevent): Handle SIGEV_THREAD.
+ From Ulrich Drepper <drepper@redhat.com>.
+ Fixes RH#120701.
+
+2004-04-13 Roland McGrath <roland@redhat.com>
+
+ * net.c (msg_flags): Grok MSG_FIX, MSG_SYN, MSG_RST, MSG_NOSIGNAL,
+ MSG_MORE.
+ From Ulrich Drepper <drepper@redhat.com>.
+ Fixes RH#120541.
+
+ * process.c (printstatus): Mask out bits presented symbolically, and
+ print "| 0xnnn" if the remaining bits are not all zero.
+ Fixes Debian bug #240062.
+
+ * process.c (print_affinitylist): Rewritten to handle indirect values.
+ (sys_sched_setaffinity, sys_sched_getaffinity): Update callers.
+ From Ulrich Drepper <drepper@redhat.com>.
+ Fixes RH#118685.
+
+ * acinclude.m4: Quote first argument to AC_DEFUN in all cases.
+
+2004-04-08 Roland McGrath <roland@redhat.com>
+
+ * strace.c (main) [LINUX]: When attaching for -p, look in
+ /proc/PID/task for all threads and attach them as presumed
+ CLONE_THREAD children.
+ * NEWS: Mention the feature.
+ Fixes RH#120462.
+
+2004-03-02 Roland McGrath <roland@redhat.com>
+
+ * util.c (setbpt): Fix one missed spot to use new arg0_index macro.
+ From Michael Holzheu <HOLZHEU@de.ibm.com>.
+
+ * debian/control (Standards-Version): Update to 3.6.1.
+
+2004-03-01 Roland McGrath <roland@redhat.com>
+
+ * configure.ac, NEWS: Version 4.5.2.
+ * strace.spec, debian/changelog: 4.5.2-1.
+
+ * strace.c (main): Avoid potential buffer overruns from ludicrous
+ arguments or PATH values.
+ * syscall.c (qual_signal): Bail out for too-long string.
+
+ * mem.c [LINUX]: <asm/mman.h> -> <linux/mman.h>
+ Fixes Debian bug #223207.
+
+ * linux/sparc/syscall.h: Copy linux/syscall.h decls of sys_sched_*.
+
+ * configure.ac: Check for `struct user_desc' in <asm/ldt.h>.
+ * process.c [HAVE_STRUCT_USER_DESC]: Use struct user_desc in place of
+ struct modify_ldt_ldt_s.
+ * mem.c [HAVE_STRUCT_USER_DESC]: Likewise.
+
+ * system.c (sysctl_vm): Conditionalize VM_* macro uses, add some more.
+ From Tim Yamin <plasmaroo@gentoo.org>.
+
+ * process.c (sys_execve): Clear instead of set TCB_WAITEXECVE on
+ erring syscall.
+
+ * configure.ac: Check for `struct pt_all_user_regs'
+ and `struct ia64_fpreg' in <sys/ptrace.h>.
+ * util.c, process.c, syscall.c, signal.c: Work around conflicts between
+ <sys/ptrace.h> and <linux/ptrace.h> for defining those types.
+
+ * process.c (struct_user_offsets) [LINUX && IA64]: Conditionalize
+ PT_AR_CSD and PT_AR_SSD uses in case of older kernel headers.
+
+ * util.c [LINUX] (arg0_index, arg1_index): New macros.
+ [S390 || S390X]: Define them with inverted values.
+ (setbpt): Use them for u_arg indices.
+
+2004-02-26 Andreas Schwab <schwab@suse.de>
+
+ * defs.h [LINUX && IA64]: Declare getrval2 also on IA64.
+ * net.c (sys_pipe) [LINUX && IA64]: For IA64 use the two return values.
+ * syscall.c (getrval2) [LINUX && IA64]: Implement for IA64.
+
+2004-03-01 Roland McGrath <roland@redhat.com>
+
+ * linux/dummy.h (sys_sched_getscheduler, sys_sched_setparam,
+ sys_sched_getparam, sys_sched_setscheduler, sys_sched_getscheduler,
+ sys_sched_get_priority_max, sys_sched_get_priority_min): Remove macros.
+ * process.c [LINUX] (sys_sched_getscheduler, sys_sched_setparam,
+ sys_sched_getparam, sys_sched_setscheduler, sys_sched_getscheduler,
+ sys_sched_get_priority_min): New functions.
+ From Ulrich Drepper <drepper@redhat.com>.
+ Fixes RH#116990.
+
+2004-02-20 Roland McGrath <roland@redhat.com>
+
+ * linux/hppa/syscallent.h: Update some syscalls.
+ From Randolph Chung <tausq@debian.org>.
+ Fixes Debian bug #231632.
+
+2003-12-31 David Mosberger <davidm@hpl.hp.com>
+
+ * process.c (internal_exit): For ia64, also recognize IA-32 252
+ as exit_group().
+ (change_syscall): For IA64, also support changing IA-32 syscalls.
+ * syscall.c (internal_syscall): For IA64, also recognize IA-32
+ syscall 252 (exit_group) as an internal_exit() syscall.
+ * util.c (SYS_fork): For IA64, define them to the IA-32 syscall
+ number.
+ (SYS_vfork): Likewise.
+ (arg_setup): For IA64 version, also support IA-32 syscalls.
+ (get_arg0): Likewise.
+ (get_arg1): Likewise.
+ (set_arg0): Likewise.
+ (set_arg1): Likewise.
+
+2004-02-15 Anton Blanchard <anton@samba.org>
+
+ * linux/powerpc/syscallent.h: Add rtas call.
+ Shift multiplexed syscalls to start at 300, we are already about
+ to hit 256 real syscalls.
+ * linux/syscall.h: SYS_socket_subcall is now 300 for [POWERPC].
+
+2004-02-19 Roland McGrath <roland@redhat.com>
+
+ * strace.c (main): Use TCP->pid, not PID, in -p message.
+ Fixes Debian bug #229802.
+
+2004-01-13 Roland McGrath <roland@redhat.com>
+
+ * syscall.c (force_result) [LINUX] [S390 || S390X]: Remove bogus upeek
+ call.
+
+ * stream.c (internal_stream_ioctl): Fix typo strict -> struct.
+ Reported by Petter Reinholdtsen <pere@hungry.com>.
+
+2003-12-31 David Mosberger <davidm@hpl.hp.com>
+
+ * process.c (struct_user_offsets) [IA64]: Fix up register name list.
+
+2003-12-14 Anton Blanchard <anton@samba.org>
+
+ * file.c (sys_getdents64): Don't cast d_ino and d_off to unsigned long.
+ Use %llu formats for them.
+
+ * file.c [LINUX] (fsmagic): Add SYSFS_MAGIC.
+
+ * linux/powerpc/syscallent.h: Update to include recently added
+ syscalls.
+
+ * syscall.c (get_error) [POWERPC]: Cast result to unsigned long for
+ ppc64, we were misreporting syscalls that really succeeded as having
+ failed.
+
+2004-01-13 Roland McGrath <roland@redhat.com>
+
+ * strace.1: Remove comment about vfork on Linux.
+ Fixes Debian bug #223390.
+
+ * file.c (direnttypes): Define under [LINUX] as well. Add DT_UNKNOWN.
+ (sys_getdents64) [LINUX]: Print d_type field.
+
+2003-12-15 Dmitry V. Levin <ldv@altlinux.org>
+
+ * strace.c (trace) [WCOREDUMP]: Show coredump status of the
+ killed process if available. Fixes RH#112117.
+
+2003-11-13 Roland McGrath <roland@redhat.com>
+
+ * configure.ac, NEWS: Version 4.5.1.
+ * strace.spec, debian/changelog: 4.5.1-1.
+
+2003-09-06 Dmitry V. Levin <ldv@altlinux.org>
+
+ * defs.h (ioctl_lookup): Prototype change.
+ * ioctl.c (ioctl_next_match): New function.
+ * defs.h: Declare it.
+ * io.c (sys_ioctl): Use it, to display all possible ioctl names
+ when there's more than one match.
+ * ioctl.c (ioctl_lookup): Likewise.
+ * stream.c (internal_stream_ioctl): Likewise.
+ Patch from Solar Designer <solar@openwall.com>.
+
+2003-11-13 Roland McGrath <roland@redhat.com>
+
+ * linux/sh/syscallent.h: Use sys_setgroups32, sys_getgroups32.
+ * linux/sh64/syscallent.h: Likewise.
+
+2003-09-06 Dmitry V. Levin <ldv@altlinux.org>
+
+ Fixes for RH#105359.
+ * util.c (printuid): New function.
+ * defs.h: Declare it.
+ * file.c (sys_chown): Use it.
+ * file.c (sys_fchown): Likewise.
+ * process.c (sys_setreuid, sys_setregid, sys_setresuid,
+ sys_setresgid): Likewise.
+ * linux/syscallent.h: Better handle getgid32, geteuid32, getegid32,
+ setreuid32, setregid32, getgroups32, setgroups32, fchown32,
+ setresuid32, getresuid32, setresgid32, getresgid32, chown32,
+ setuid32, setgid32, setfsuid32, setfsgid32.
+ * process.c [LINUX]: Define GETGROUPS32_T.
+ * process.c [LINUX] (sys_setgroups32, sys_getgroups32):
+ New functions.
+ * linux/syscall.h (sys_setgroups32, sys_getgroups32):
+ Declare them.
+
+2003-11-11 Roland McGrath <roland@redhat.com>
+
+ * strace.c (main): Bail with usage error for missing command before we
+ open the -o file or fiddle uids.
+
+2003-11-06 Roland McGrath <roland@redhat.com>
+
+ * strace.c (main): Treat piped output more like file output.
+ Disallow -ff with piped output. Fixes RH#105366.
+ Reported by Dmitry V. Levin <ldv@altlinux.org>
+
+ * strace.c (tprintf): Check result of vfprintf and use perror when it
+ fails while not writing to stderr itself. Fixes Debian bug #218762.
+
+ * net.c (printsock): Fix typo in #ifdef AF_NETLINK.
+ From Ulrich Drepper <drepper@redhat.com>.
+
+2003-11-01 Roland McGrath <roland@redhat.com>
+
+ * syscall.c (trace_syscall) [LINUX]: Calculate ONE_TICK once using
+ setitimer rather than hard-coding a value based on HZ.
+ Fixes RH#108012, reported by Florian La Roche <laroche@redhat.com>.
+
+2003-10-21 Roland McGrath <roland@redhat.com>
+
+ * strace.1: Fixed a few spelling errors.
+ Fixes Debian bug #217008.
+
+ * syscall.c: Revert last change, was broken.
+
+2003-10-01 Roland McGrath <roland@redhat.com>
+
+ * process.c (internal_clone): Don't suspend parent when call requested
+ a specific PID that is not a traced child.
+
+ * signal.c [LINUX] (parse_sigset_t): Rewrite to process hex strings
+ from right to left so we don't have to presume the size.
+ Reported by David Woodhouse <dwmw2@redhat.com>.
+
+2003-09-25 Roland McGrath <roland@redhat.com>
+
+ * mem.c (mmap_prot) [PROT_SEM, PROT_GROWSDOWN, PROT_GROWSUP]: Include
+ these in the table if they are defined.
+
+2003-09-24 Roland McGrath <roland@redhat.com>
+
+ * configure.ac, NEWS: Version 4.5.
+ * strace.spec, debian/changelog: 4.5-1.
+
+ * syscall.c (get_scno) [LINUX] [S390 || S390X]: Bail out of
+ instruction decoding branch if TCB_INSYSCALL is clear.
+ Reported by <jochen@penguin-breeder.org>.
+
+ * linux/ioctlent.h: Swap order of overloaded TC* and SNDCTL_* values.
+
+2003-09-23 Roland McGrath <roland@redhat.com>
+
+ * strace.spec: On ppc64 (maybe others later), create an strace64
+ package as well containing just /usr/bin/strace64.
+
+ * signal.c (sprintsigmask): Print RT_%u for __SIGRTMIN..__SIGRTMAX.
+ Fixes RH#104365.
+
+2003-08-21 Roland McGrath <roland@redhat.com>
+
+ * linux/syscallent.h: Fix mlock argument count. Fixes RH#101499.
+ * linux/x86_64/syscallent.h: Likewise.
+ * linux/s390/syscallent.h: Likewise.
+ * linux/s390x/syscallent.h: Likewise.
+
+2003-07-28 Daniel Jacobowitz <drow@mvista.com>
+
+ * defs.h (ALIGN64): Define for MIPS.
+ * io.c (PREAD_OFFSET_ARG): Define.
+ (sys_pread, sys_pwrite): Use it.
+ * process.c (struct_user_offsets) [SH]: Check whether REG_XDREG0
+ is defined.
+ * linux/sh/syscallent.h (pread, pwrite): Take six arguments.
+ (truncate64, ftruncate64): Pretty-print.
+ * linux/mips/syscallent.h (pread, pwrite): Take six arguments.
+ (truncate64, ftruncate64): Take four arguments.
+
+2003-07-17 Roland McGrath <roland@redhat.com>
+
+ * configure.ac, NEWS: Version 4.4.99.
+ * strace.spec, debian/changelog: 4.4.99-1.
+
+2003-07-15 Anton Blanchard <anton@samba.org>
+
+ * ipc.c: Add SHM_HUGETLB field.
+ Mask out permission bits in msgget, semget and shmget before
+ printing resource_flags.
+ Mask execute permission bits (even though we dont currently
+ use them).
+
+2003-07-17 Roland McGrath <roland@redhat.com>
+
+ * linux/powerpc/syscallent.h (tgkill): New at 250.
+
+ * linux/syscallent.h: truncate64/ftruncate64 need 3 args.
+ From Ulrich Drepper <drepper@redhat.com>.
+
+ * linux/syscallent.h: Handle statfs64, fstatfs64, utimes.
+ * file.c (printstatfs): Print f_fsid and f_frsize.
+ [LINUX] (printstatfs64, sys_statfs64, sys_fstatfs64): New functions.
+ * linux/syscall.h: Add decls.
+ From Ulrich Drepper <drepper@redhat.com>.
+
+2003-07-09 Roland McGrath <roland@redhat.com>
+
+ * linux/ia64/syscallent.h (tgkill): New at 1235.
+
+2003-07-05 Richard Henderson <rth@twiddle.net>
+
+ * process.c (sys_clone): Order arguments for alpha the same as x86_64.
+ * syscall.c (ERESTART_RESTARTBLOCK): New.
+ (trace_syscall): Print it.
+ * linux/alpha/syscallent.h (osf_syscall): Name properly.
+ (osf_set_program_attributes): Fix typo.
+ (osf_nfssvc): Likewise.
+ (osf_sigsendset): Likewise.
+ (getdents64, gettid, readahead, tkill, setxattr, lsetxattr, fsetxattr,
+ getxattr, lgetxattr, fgetxattr, listxattr, llistxattr, flistxattr,
+ removexattr, lremovexattr, fremovexattr, futex, sched_setaffinity,
+ sched_getaffinity, tuxcall, io_setup, io_destroy, io_getevents,
+ io_submit, io_cancel, exit_group, lookup_dcookie, epoll_create,
+ epoll_ctl, epoll_wait, remap_file_pages, set_tid_address,
+ restart_syscall, fadvise, timer_create, timer_settime, timer_gettime,
+ timer_getoverrun, timer_delete, clock_settime, clock_gettime,
+ clock_getres, clock_nanosleep, semtimedop): New.
+
+2003-07-08 Roland McGrath <roland@redhat.com>
+
+ * signal.c (sys_tgkill): New function.
+ * linux/syscall.h: Declare it.
+ * linux/syscallent.h: Add tgkill.
+
+2003-06-27 Roland McGrath <roland@redhat.com>
+
+ * configure.ac: Check for type `struct __old_kernel_stat'.
+ * file.c (convertoldstat, printoldstat): Define under
+ [LINUX && HAVE_STRUCT___OLD_KERNEL_STAT] rather than a list of archs.
+ (sys_oldstat, sys_oldfstat, sys_oldlstat): Likewise.
+ * linux/dummy.h [! HAVE_STRUCT___OLD_KERNEL_STAT]
+ (sys_oldstat, sys_oldfstat, sys_oldlstat): #define to printargs.
+
+2003-06-26 Roland McGrath <roland@redhat.com>
+
+ * configure.ac: SHMEDIA -> SH64
+ * defs.h: Likewise.
+ * mem.c: Likewise.
+ * process.c: Likewise.
+ * sock.c: Likewise.
+ * syscall.c: Likewise.
+ * util.c: Likewise.
+ * linux/shmedia/syscallent.h: Moved to ...
+ * linux/sh64/syscallent.h: ... here.
+
+ * config.guess: Update from canonical version, timestamp 2003-06-17.
+ * config.sub: Likewise.
+
+ * syscall.c (force_result) [LINUX] [ARM]: Fix variable usage.
+ From: Joshua Neal <tinara@netpipeline.net>.
+
+ * process.c [LINUX] (sys_futex): Grok FUTEX_REQUEUE and print 5th arg.
+ * linux/syscallent.h: sys_futex argument count is now 5, not 4.
+ * linux/ia64/syscallent.h: Likewise.
+ * linux/powerpc/syscallent.h: Likewise.
+ * linux/s390/syscallent.h: Likewise.
+ * linux/s390x/syscallent.h: Likewise.
+ * linux/x86_64/syscallent.h: Likewise.
+ From Jakub Jelinek <jakub@redhat.com>.
+
+ * syscall.c (get_scno) [S390 || S390X]: Fix old vs new mode detection.
+ From Michael Holzheu <HOLZHEU@de.ibm.com>.
+
+2003-06-23 Roland McGrath <roland@redhat.com>
+
+ * net.c (sys_socket): Decode protocol for PF_INET6 same as PF_INET.
+ From Ulrich Drepper <drepper@redhat.com>.
+
+2003-06-10 Roland McGrath <roland@redhat.com>
+
+ * configure.ac, NEWS: Version 4.4.98.
+ * strace.spec, debian/changelog: 4.4.98-1.
+
+2003-06-09 Roland McGrath <roland@redhat.com>
+
+ * linux/s390x/syscallent.h: Update many syscalls.
+ * linux/syscall.h (SYS_socket_subcall): Update [S390X] value.
+
+ * linux/s390/syscallent.h: Update many syscalls.
+ * linux/syscall.h (SYS_socket_subcall): Update [S390] value.
+
+ * linux/shmedia/syscallent.h: New file.
+ From Stephen Thomas <stephen.thomas@superh.com>.
+
+ * strace.c (trace): Print a message and newline for a WIFEXITED report
+ from the process we just printed an unterminated syscall line for.
+
+2003-06-03 Roland McGrath <roland@redhat.com>
+
+ * util.c (printcall) [LINUX]: Fix typo [IA62] -> [IA64].
+
+ Linux/ARM improvements from Russell King <rmk@arm.linux.org.uk>:
+ * defs.h [LINUX] (TCB_WAITEXECVE): Define for [ARM] too.
+ * process.c (struct_user_offsets) [LINUX] [ARM]: Add ARM registers.
+ * signal.c [LINUX] (sys_sigreturn) [ARM]: New case.
+ * syscall.c (get_scno, syscall_fixup) [LINUX] [ARM]: Case rewritten.
+ (get_error) [LINUX] [ARM]: Update.
+ (syscall_enter) [LINUX] [ARM]: New case.
+ * util.c (printcall) [LINUX] [ARM]: New case.
+
+ * debian/control (Standards-Version): Update to 3.5.10.
+
+ * strace.c (main): In PATH search, accept only a regular file with
+ execute bits set. Fixes Debian bug #137103.
+
+2003-06-02 Roland McGrath <roland@redhat.com>
+
+ * strace.c (main): Set -q when given -o and not -p, and not when not
+ given -o, to match what the man page always said.
+ Fixes Debian bug #47113, #153678.
+
+ * configure.ac, NEWS: Version 4.4.97.
+ * strace.spec, debian/changelog: 4.4.97-1.
+
+ * configure.ac, defs.h, mem.c, process.c, sock.c, syscall.c, util.c:
+ Merged in SHmedia port from Stephen Thomas <stephen.thomas@superh.com>.
+
+ * config.guess: Update from ftp://ftp.gnu.org/pub/gnu/config/,
+ timestamp 2003-05-22.
+ * config.sub: Likewise, timestamp 2003-05-24.
+
+2003-05-22 Roland McGrath <roland@redhat.com>
+
+ * defs.h (struct tcb): New member `nzombies'.
+ * strace.c (alloctcb): Initialize it.
+ (droptcb): Increment our parent's zombie count.
+ * process.c (internal_wait): Don't go into TCB_SUSPENDED if the
+ process has zombies it can reap. On the way out, if we reaped
+ an untraced process, decrement the zombie count.
+
+ * process.c (sys_clone): Mask CSIGNAL out of flags and print that
+ separately using signame.
+
+ * process.c (internal_clone) [TCB_CLONE_THREAD]: Use ARG_FLAGS instead
+ of literal 0 for index. Consult the right flags without clobbering
+ anything when we reparent the new child to the caller's parent thread.
+
+ * linux/s390/syscallent.h: Fix sys_clone argument count.
+ * linux/s390x/syscallent.h: Likewise.
+ * linux/mips/syscallent.h: Likewise.
+ * linux/alpha/syscallent.h: Likewise.
+ * linux/powerpc/syscallent.h: Likewise.
+ * linux/sh/syscallent.h: Likewise.
+ * linux/sparc/syscallent.h: Likewise.
+ * linux/hppa/syscallent.h: Likewise.
+
+ * process.c [LINUX] [S390 || S390X] (ARG_CTID, ARG_TLS): Fix swapped
+ indices. Reported by Jakub Jelinek <jakub@redhat.com>.
+
+ * signal.c [LINUX] (SI_SIGIO, SI_TKILL): New macros.
+ [LINUX || SVR4] (siginfo_codes): Add strings for them.
+
+ * process.c (print_affinitylist): Fix loop condition.
+ Reported by Ian Wienand <ianw@gelato.unsw.edu.au>.
+
+2003-04-10 Roland McGrath <roland@redhat.com>
+
+ * syscall.c (qual_desc): Return zero after parsing number.
+ From Rob Leslie <rob@mars.org>, fixes Debian bug #188379.
+
+2003-04-07 Roland McGrath <roland@redhat.com>
+
+ * linux/syscallent.h: Handle semtimedop subcall of ipc syscall.
+ * linux/syscall.h: Likewise.
+ * ipc.c [LINUX] (sys_semtimedop): New function.
+ From Ulrich Drepper <drepper@redhat.com>.
+
+ * ipc.c (sys_semget): Mask off permission bits for resource_flags.
+ From Ulrich Drepper <drepper@redhat.com>.
+
+2003-04-01 Philippe De Muyter <phdm@macqel.be>
+
+ * sock.c, stream.c: Check #ifdef LINUX, not linux.
+ * file.c: Always provide sys_*attr, regardless of #ifdef XATTR_CREATE.
+
+2003-03-30 Roland McGrath <roland@redhat.com>
+
+ * configure.ac, NEWS: Version 4.4.96.
+ * strace.spec, debian/changelog: 4.4.96-1.
+
+2003-02-26 Stuart Menefy <stuart.menefy@st.com>
+
+ Various fixes for SuperH [SH]:
+ * mem.c (sys_old_mmap): mmap() parameters passed in registers
+ * net.c (sys_pipe), syscall.c (getrval2): pipe() results returned
+ in registers
+ * process.c (change_syscall): Fixed register which holds system
+ call number
+ * util.c (arg0_offset, arg1_offset): provide definition
+ * Makefile.am: Added new files in linux/sh
+ * linux/sh/syscallent.h: New file.
+ * linux/sh/errnoent.h: New file.
+ * linux/sh/ioctlent.h: New file.
+ * linux/sh/signalent.h: New file.
+
+ * linux/ioctlent.sh: Take an arg for location of header files
+ * syscallent.sh: Replaced lost $
+
+2003-03-30 Roland McGrath <roland@redhat.com>
+
+ * time.c [LINUX]: Handle new Linux 2.5 clock/timer syscalls.
+ * linux/syscall.h, linux/syscallent.h, linux/dummy.h: Likewise.
+ From Ulrich Drepper <drepper@redhat.com>.
+
+ * linux/syscallent.h: Use sys_getrlimit for 191.
+ Use name "old_getrlimit" for 76.
+ Reported by Ulrich Drepper <drepper@redhat.com>.
+
+2003-03-18 Roland McGrath <roland@redhat.com>
+
+ * process.c [LINUX] (sys_clone): Don't dereference parent_tid argument.
+
+2003-03-17 Roland McGrath <roland@redhat.com>
+
+ * linux/x86_64/syscallent.h: clone takes 5 args.
+ * process.c [LINUX] (sys_clone) [X86_64]: Fix argument order.
+
+2003-03-15 Roland McGrath <roland@redhat.com>
+
+ * linux/x86_64/syscallent.h: Add exit_group syscall at 231.
+
+2003-03-14 Roland McGrath <roland@redhat.com>
+
+ * linux/x86_64/syscallent.h: Update and add many 2.5 syscalls.
+
+ * linux/ia64/syscallent.h: clone takes 5 arguments.
+ * process.c [LINUX && IA64] (ARG_*): Update for 2.5 clone calls.
+
+2003-03-12 Roland McGrath <roland@redhat.com>
+
+ * linux/ia64/syscallent.h: Fix arg counts for clone and clone2.
+ Use sys_clone for clone2.
+ * linux/syscall.h: Don't declare sys_clone2.
+ * process.c (sys_clone): Rewritten to handle both flavors,
+ print all extra args depending on flag bits.
+ (sys_clone2): Function removed.
+
+ * linux/ia64/syscallent.h: Add a bunch of 2.5 syscalls.
+
+2003-03-04 Roland McGrath <roland@redhat.com>
+
+ * syscall.c (get_scno) [IA64]: Do TCB_WAITEXECVE check only when
+ TCB_INSYSCALL is clear, like other platforms do.
+
+2003-03-04 Ulrich Drepper <drepper@redhat.com>
+
+ * mem.c [LINUX] (sys_remap_file_pages): New function.
+ * linux/syscall.h: Declare it.
+ * linux/syscallent.h: Use it.
+ * linux/powerpc/syscallent.h: Likewise.
+
+ * process.c [LINUX] (sys_futex): Omit final if op is not FUTEX_WAIT.
+
+2003-02-26 Roland McGrath <roland@redhat.com>
+
+ * configure.ac: Fix typo in netinet/in.h check.
+ Also include <sys/types.h> and <sys/socket.h> before <netinet/in.h>.
+ Reported by Alex Semenyaka <alexs@snark.rinet.ru>.
+
+2003-02-24 Roland McGrath <roland@redhat.com>
+
+ * configure.ac, NEWS: Version 4.4.95.
+ * strace.spec, debian/changelog: 4.4.95-1.
+
+ * process.c (sys_getresgid): Fix typos in argument access.
+
+2003-02-23 Roland McGrath <roland@redhat.com>
+
+ * process.c (sys_getresuid): Fix typos in argument access.
+ Reported by Anton Blanchard <anton@samba.org>.
+
+2003-02-19 Roland McGrath <roland@redhat.com>
+
+ * configure.ac, NEWS: Version 4.4.94.
+ * strace.spec, debian/changelog: 4.4.94-1.
+
+ * version.c: Removed.
+ * Makefile.am (strace_SOURCES): Remove it.
+ * strace.c: Use PACKAGE_NAME and VERSION macros instead of version var.
+
+ FreeBSD rfork support changes from Russ Cox <rsc@plan9.bell-labs.com>:
+ * syscall.c (internal_syscall): Handle SYS_rfork with internal_fork.
+ * process.c (internal_fork) [SYS_rfork]: Bail if RFPROC flag not set.
+
+2003-01-23 Roland McGrath <roland@redhat.com>
+
+ * signal.c: Reorder #ifdefs so HAVE_ASM_SIGCONTEXT_H doesn't matter on
+ SPARC, which doesn't use the header regardless.
+
+ * util.c [LINUX && SPARC]: Do renaming kludges around <asm/reg.h>
+ like signal.c does.
+
+ * linux/sparc/syscall.h: Declare sys_getdents64, sys_llseek.
+
+ * linux/dummy.h [! SYS_getpmsg] (sys_getpmsg): #define to printargs.
+ [! SYS_putpmsg] (sys_putpmsg): Likewise.
+
+ * process.c: Reorder includes to put sys/reg.h before linux/ptrace.h,
+ since they can conflict.
+
+2003-01-21 Roland McGrath <roland@redhat.com>
+
+ * strace.c (usage): Omit -z, since it has never worked properly.
+ * NEWS: Likewise.
+
+ * strace.c (main): Grok new option `-E var=val' or `-E var' to put
+ var=val in environ or to remove var, respectively.
+ (usage): Mention it.
+ * strace.1, NEWS: Document it.
+
+ * configure.ac, NEWS: Version 4.4.93.
+ * strace.spec, debian/changelog: 4.4.93-1.
+ * strace.spec (Source0): Use strace-VERSION.tar.bz2 now.
+
+2003-01-20 Roland McGrath <roland@redhat.com>
+
+ * defs.h [LINUX] [S390 || S390X] (TCB_WAITEXECVE): Define it.
+ * syscall.c (get_scno, syscall_fixup) [LINUX] [S390 || S390X]: Handle
+ TCB_WAITEXECVE state with special kludges.
+
+ * process.c [LINUX] (sys_clone) [S390 || S390X]: Argument order is
+ reversed from other architectures.
+
+ * process.c (sys_execve) [LINUX]: Make setting TCB_WAITEXECVE flag
+ conditional on [TCB_WAITEXECVE] instead of list of processors.
+
+ * util.c (restore_arg0): Evaluate args in no-op defns.
+
+ * util.c [S390 || S390X] (arg0_offset, arg1_offset): Fix definitions
+ for clone call on S390. From Michael Holzheu <holzheu@de.ibm.com>.
+
+2003-01-17 Anton Blanchard <anton@samba.org>
+
+ * util.c [LINUX] (setbpt): Handle SYS_vfork like SYS_fork.
+
+ * linux/syscall.h (SYS_socket_subcall): 256 also for POWERPC.
+
+2003-01-14 Roland McGrath <roland@redhat.com>
+
+ * linux/powerpc/errnoent.h: Add missing errnos.
+ * linux/powerpc/ioctlent.h: Update ioctl values.
+ From Anton Blanchard <anton@samba.org>.
+
+ * io.c [LINUX] (sys_pread, sys_pwrite): Fix last change.
+ From Anton Blanchard <anton@samba.org>.
+
+ * linux/hppa/syscallent.h: Use sys_getdents64, sys_truncate64,
+ sys_ftruncate64, instead of printargs, for those syscalls.
+ * linux/mips/syscallent.h: Likewise.
+ * linux/powerpc/syscallent.h: Likewise.
+ * linux/s390/syscallent.h: Likewise.
+ * linux/sparc/syscallent.h: Likewise.
+
+ * linux/syscall.h (SYS_socket_subcall): Only 256 for S390, S390X.
+ All others at the moment use linux/syscallent.h, where it's 300.
+
+ * strace.1: Update bug reporting info.
+
+ * resource.c [LINUX] (quotacmds): Grok new command encodings.
+ From Nathan Scott <nathans@debian.org>.
+
+ * configure.ac, NEWS: Version 4.4.92.
+ * strace.spec, debian/changelog: 4.4.92-1.
+
+ * configure.ac: Match powerpc* (includes powerpc64), and don't match
+ ppc (never comes out of config.sub).
+
+ * process.c (sys_ptrace): Use #lx format for address argument.
+ [POWERPC]: Use sizeof(unsigned long) in place of 4 for multipliers.
+ * process.c [POWERPC]: Likewise.
+ * signal.c (sys_sigreturn) [POWERPC]: Likewise.
+ * syscall.c (get_scno) [POWERPC]: Likewise.
+ * util.c [POWERPC]: Likewise.
+ (printnum): Use long for NUM.
+ From Anton Blanchard <anton@samba.org>.
+
+ * defs.h (ALIGN64): Fix defn for PPC, same as FreeBSD one.
+
+ * util.c [LINUX] (restore_arg0, restore_arg1): New macros, defined
+ appropriately via set_arg0 or no-ops for each architecture.
+ (clearbpt): Use those instead of set_arg0 and set_arg1.
+
+ * defs.h [_LARGEFILE64_SOURCE] (_LFS64_LARGEFILE): Define it.
+ * linux/syscallent.h: Use sys_getdents64, sys_truncate64,
+ sys_ftruncate64, instead of printargs, for those syscalls.
+
+ * process.c: Use <linux/ptrace.h> regardless of <sys/reg.h>.
+ (sys_ptrace): Use printxval.
+ (ptrace_cmds): Make PTRACE_GETREGS et al conditional on #ifdef PTRACE_*
+ instead of only #ifdef SUNOS4. Add PTRACE_[GS]ETFPXREGS.
+
+ * ipc.c (PRINTCTL): New macro. #ifdef IPC_64, factor out the flag and
+ print it before using printxval.
+ (sys_msgctl, sys_semctl, sys_shmctl): Use it.
+
+2003-01-13 Roland McGrath <roland@redhat.com>
+
+ * config.guess: Update from ftp://ftp.gnu.org/pub/gnu/config/,
+ timestamp 2003-01-10.
+ * config.sub: Likewise, timestamp 2003-01-03.
+ * install-sh: Update from Automake 1.7.2.
+
+ * linux/powerpc/signalent.h: Add SIGRTMIN.
+ From Anton Blanchard <anton@samba.org>.
+
+ * linux/powerpc/syscallent.h: Add missing system calls.
+ Decode more system calls, we were just printargs for many things.
+ Remove some x86-specific system calls.
+ Remove two syscalls between the socket and ipc syscalls,
+ it was resulting in all IPC syscalls being off by two.
+
+ * ioctl.c (ioctl_decode) [POWERPC]: Decode term ioctls like Alpha.
+ From Anton Blanchard <anton@samba.org>.
+
+ * defs.h [POWERPC] (UESP, EIP, EAX, ORIG_EAX): Remove this cruft.
+ [LINUX && POWERPC && !__powerpc64__] (ALIGN64): New macro.
+ * io.c (sys_pread, sys_pwrite): Use ALIGN64.
+ From Anton Blanchard <anton@samba.org>.
+
+ * term.c [LINUX]: Get kernel definition of struct termios.
+ From Anton Blanchard <anton@samba.org>.
+
+ * linux/ioctlent.sh: Look in sound/ directory too.
+ From Anton Blanchard <anton@samba.org>.
+
+ * desc.c (printflock64): Fix ADDR argument type.
+ From Anton Blanchard <anton@samba.org>.
+
+ * strace.c [! HAVE_STRSIGNAL]: Clean up #ifdefs on decls for
+ sys_siglist and _sys_siglist.
+ Reported by John Hughes <john@Calva.COM>.
+
+ * net.c: HAVE_OPTHDR -> HAVE_STRUCT_OPTHDR
+ Reported by John Hughes <john@Calva.COM>.
+
+ * linux/syscall.h [ARM] (SYS_socket_subcall): Set to 300.
+
+2003-01-10 Roland McGrath <roland@redhat.com>
+
+ * configure.ac, NEWS: Version 4.4.91.
+ * strace.spec, debian/changelog: 4.4.91-1
+
+ * util.c [LINUX && X86_64] (arg0_offset, arg1_offset): Use correct
+ values for x86-64, conditional on current_personality.
+
+ * strace.c (droptcb): Clear flags word before calling rebuild_pollv.
+
+ * configure.ac: Check struct T_conn_res for QUEUE_ptr or ACCEPTOR_id.
+ * stream.c (print_transport_message): Use #ifdefs for those members.
+
+ * strace.c (rebuild_pollv): Fix typo: struct poll -> struct pollfd.
+
+ * configure.ac: Fix siginfo_t/sig_atomic_t checks.
+ Use prerequisite #include <netinet/in.h> for netinet/*.h checks.
+
+ * strace.c (pfd2tcb): Fix for new tcbtab type.
+ (rebuild_pollv): Likewise.
+ (detach): Put variables used under [LINUX] inside #ifdef.
+
+ * process.c (change_syscall) [POWERPC]: Add missing return.
+ * util.c [POWERPC] (arg0_offset): Set to 4*PT_R3, not 4*PT_ORIG_R3.
+
+ * strace.spec: New file.
+ * debian/changelog: 4.4.90-1
+ * debian/rules (binary-arch): Depend on build.
+ (clean): Don't try to run Makefile.in.
+ * debian/control (Standards-Version): Now 3.5.8.
+
+ * configure.ac: Diddle CFLAGS after AC_PROG_CC, not before.
+
+2003-01-09 Roland McGrath <roland@redhat.com>
+
+ * syscall.c (force_result) [S390 || S390X]: Fix typo.
+
+ * debian/control: Update Maintainer: field.
+
+2003-01-08 Roland McGrath <roland@redhat.com>
+
+ * NEWS: Update for 4.4.90 test release.
+
+ Support for new Linux 2.5 thread features.
+ * defs.h [LINUX]: Define __NR_exit_group if not defined.
+ (struct tcb): New members nclone_threads, nclone_detached,
+ and nclone_waiting.
+ (TCB_CLONE_DETACHED, TCB_CLONE_THREAD, TCB_GROUP_EXITING): New macros.
+ (waiting_parent): Macro removed.
+ (pid2tcb): Declare it.
+ * process.c (internal_clone) [TCB_CLONE_THREAD]: Reparent the new
+ child to our parent if we are a CLONE_THREAD child ourselves.
+ Maintain TCB_CLONE_THREAD and TCB_CLONE_DETACHED flags and counts.
+ (internal_wait) [TCB_CLONE_THREAD]: Factor out detached children when
+ determining if we have any. If TCB_CLONE_THREAD is set, check
+ parent's children instead of our own, and bump nclone_waiting count.
+ (internal_exit) [__NR_exit_group]: Set the TCB_GROUP_EXITING flag if
+ the syscall was exit_group.
+ * syscall.c (internal_syscall): Use internal_exit for exit_group.
+ * strace.c (pid2tcb): No longer static.
+ (alloctcb) [TCB_CLONE_THREAD]: Initialize new fields.
+ (droptcb) [TCB_CLONE_THREAD]: Maintain new fields.
+ If we have thread children, set TCB_EXITING and don't clear the TCB.
+ (resume) [TCB_CLONE_THREAD]: Decrement parent's nclone_waiting.
+ (detach) [TCB_CLONE_THREAD]: When calling resume, check all thread
+ children of our parent that might be waiting for us too.
+ [TCB_GROUP_EXITING] (handle_group_exit): New function.
+ (trace) [TCB_GROUP_EXITING]: Use that in place of detach or droptcb.
+
+ Revamp -f support for Linux.
+ * util.c [LINUX] (setbpt, clearbpt): New implementations that tweak
+ the system call to be clone with CLONE_PTRACE set. Various new static
+ helper functions.
+ * process.c (internal_clone): Define also #ifdef SYS_clone2.
+ Initialize TCPCHILD->parent field.
+ [CLONE_PTRACE]: Don't do PTRACE_ATTACH here, because it's preattached.
+ Check in case the new child is in the tcb already.
+ (internal_fork) [LINUX]: Just call internal_clone.
+ * strace.c (trace) [LINUX]: Under -f/-F, grok an unknown pid
+ reporting to wait, put it in the TCB with TCB_ATTACHED|TCB_SUSPENDED.
+
+ * linux/x86_64/syscallent1.h (sys_oldlstat): #define as printargs.
+
+ * file.c [LINUX]: #undef st_[amc]time in case they are macros.
+
+ * Makefile.am (AM_CFLAGS): New variable, define to $(WARNFLAGS).
+
+ * Makefile.am (EXTRA_DIST): Remove debian/postinst and debian/prerm.
+
+2003-01-09 Wichert Akkerman <wichert@deephackmode.org>
+
+ * debian/postinst, debian/prerm: removed, /usr/doc symlink is no
+ longer used
+ * debian/rules: no longer install postinst and prerm
+ * debian/control: do not end summary with full stop (lintian)
+
+2002-12-30 Roland McGrath <roland@redhat.com>
+
+ * Makefile.am (bin_SCRIPTS): New variable, list strace-graph.
+ (EXTRA_DIST): Add missing files.
+
+ * configure.ac: Fix asm/sigcontext.h check to include prerequisite.
+
+ * syscall.c (qualify_one): New function.
+ (qual_options): Replace lookup field with qualify, update initializer.
+ (qualify): Update caller.
+ (qual_signal, qual_fault, qual_desc): Rewritten from lookup_*.
+ (qual_syscall): Rewritten lookup_syscall, match name more than once.
+ Fixes RH#70579, bites IA64 -efoo when foo exists on IA32.
+
+ * version.c (version): Make const, bump to 4.4.90.
+ * strace.c: Update decl.
+
+ * Makefile.am [LINUX && X86_64]: Remove cruft.
+ * linux/x86_64/errnoent1.h: New file.
+ * linux/x86_64/ioctlent1.h: New file.
+ * linux/x86_64/signalent1.h: New file.
+ * linux/x86_64/syscallent1.h: New file.
+ * linux/x86_64/i386-headers.diff: File removed.
+ * linux/x86_64/makeheaders.sh: File removed.
+ * linux/x86_64/Makefile.in: File removed.
+
+ * linux/syscallent.h [X86_64]: Disable sanity checks, subcall stuff is
+ already broken for 32-bit personality on x86-64.
+
+2002-12-29 Roland McGrath <roland@redhat.com>
+
+ * configure.ac, Makefile.am: Punt subdirs, handle everything here.
+ * linux/Makefile.am: File removed.
+ * freebsd/Makefile.am: File removed.
+ * sunos4/Makefile.in: File removed.
+ * svr4/Makefile.in: File removed.
+
+ * linux/alpha/Makefile.in: File removed.
+ * linux/hppa/Makefile.in: File removed.
+ * linux/ia64/Makefile.in: File removed.
+ * linux/powerpc/Makefile.in: File removed.
+ * linux/s390/Makefile.in: File removed.
+ * linux/s390x/Makefile.in: File removed.
+
+2002-12-26 Roland McGrath <roland@redhat.com>
+
+ * syscallent.sh: Grok three flavors of #define line, uniquify.
+ * linux/hppa/syscallent.sh: File removed.
+ * linux/powerpc/syscallent.sh: File removed.
+
+ * linux/Makefile.am: New file.
+ * linux/Makefile.in: File removed.
+ * freebsd/Makefile.am: New file.
+ * freebsd/i386/Makefile.am: New file.
+ * freebsd/i386/Makefile.in: File removed.
+
+2002-12-22 Roland McGrath <roland@redhat.com>
+
+ Update to Autoconf 2.57, and Automakify with version 1.7.
+ * Makefile.am: New file.
+ * Makefile.in: File removed.
+ * configure.in: Moved to ...
+ * configure.ac: ... here. Update for Autoconf 2.5x and Automake.
+ * aclocal.m4: Moved to ...
+ * acinclude.m4: ... here. Update for Autoconf 2.5x.
+ * acconfig.h: File removed.
+ * AUTHORS: New file, makes automake happy.
+ * autogen.sh: File removed.
+ * README-CVS: Update to recommend autoreconf instead.
+ * file.c: HAVE_ST_* -> HAVE_STRUCT_STAT_ST_*.
+ * net.c: HAVE_SIN6_SCOPE_ID -> HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID,
+ HAVE_MSG_CONTROL -> HAVE_STRUCT_MSGHDR_MSG_CONTROL.
+ * strace.c: *_DECLARED -> HAVE_DECL_*
+ * stream.c: HAVE_* -> HAVE_STRUCT_*
+
+ * linux/Makefile.in (ioctldefs.h ioctls.h): Use $(SHELL) instead of
+ sh, and use $(srcdir) to find the script.
+ * linux/powerpc/Makefile.in (ioctlent.raw): Find ioctlent.sh in ../.
+ (ioctlsort.o): Use ../ioctlsort.c, not ../../ioctlsort.c.
+ * linux/x86_64/Makefile.in (headers): Renamed to all.
+ * linux/alpha/Makefile.in: Add empty install target.
+ * linux/x86_64/Makefile.in: Likewise.
+ * linux/powerpc/Makefile.in: Likewise.
+ * linux/Makefile.in: Likewise.
+
+2002-12-26 Roland McGrath <roland@redhat.com>
+
+ * defs.h [LINUX && MIPS] (MAX_QUALS): Set to 5000, not 4999.
+ From Daniel Jacobowitz <drow@false.org>.
+
+2002-12-21 Roland McGrath <roland@redhat.com>
+
+ * linux/syscallent.h: Add some new 2.5 syscall names.
+ Now clone takes 5 args.
+ * process.c [LINUX] (clone_flags): Update with 2.5 flag bits.
+ [LINUX] (sys_clone): Print new args.
+ * mem.c (print_ldt_entry): Make global.
+
+ * linux/syscall.h [I386 || IA64] (SYS_socket_subcall): Bump to 300 for
+ safety, since up to 260 are already used in 2.5 kernels.
+ * linux/syscallent.h: Update the table.
+ * linux/ia64/syscallent.h: Likewise.
+
+ * syscall.c (force_result): New function.
+ * process.c (internal_wait): Handle ECHILD exit from wait call with
+ WNOHANG flag set; force the return value to 0 in the inferior when it
+ has live children we are tracing.
+ * NEWS: Mention the bug fix.
+
+2002-12-17 Roland McGrath <roland@redhat.com>
+
+ * linux/ia64/syscallent.h: Remove placeholders 275-298 to catch up
+ with linux/syscallent.h additions.
+
+ * strace.c (tcbtab): Make this a pointer to pointers, not an array.
+ (tcbtabsize): New variable.
+ (main): Initialize them using dynamic allocation.
+ (alloctcb, main): Use tcbtabsize in place of MAX_PROCS; indirect.
+ (pid2tcb, cleanup): Likewise.
+ [USE_PROCFS] (pollv): Make this a pointer, not an array; make static.
+ (rebuild_pollv): Dynamically allocate the vector.
+ * defs.h (tcbtab): Update decls.
+ (MAX_PROCS): Macro removed, no more static limit on this.
+ * process.c (fork_tcb): New function.
+ (internal_clone, internal_fork): Use it instead of checking nprocs.
+
+ * strace.c (detach) [LINUX]: Use __WALL (or a second try with __WCLONE)
+ in wait after sending SIGSTOP.
+
+2002-12-16 Roland McGrath <roland@redhat.com>
+
+ * signal.c (sprintsigmask): Increase static buffer size to account for
+ worst possible case. Reported by Daniel Jacobowitz <drow@false.org>.
+
+ * process.c [LINUX] (wait4_options): Fix __WCLONE value. Add
+ __WNOTHREAD and __WALL.
+
+ * strace.c (trace) [LINUX]: Only check errno if wait4 actually fails,
+ so we don't repeat a wait and thus drop a status. Fixes RH#62591.
+
+2002-12-15 Roland McGrath <roland@redhat.com>
+
+ * process.c (setarg) [POWERPC]: Support it.
+
+ * util.c [POWERPC] (LOOP): Fix value, now 0x48000000 (0: b 0b).
+ Old value was bogus, not even a proper instruction.
+ From Guy M. Streeter <streeter@redhat.com>.
+
+ * strace.c (main) [! USE_PROCFS]: Always reset SIGCHLD to SIG_DFL.
+
+ * configure.in: Don't check for putpmsg.
+ * stream.c (sys_getpmsg, sys_putpmsg): Make these conditional on
+ #ifdef SYS_*, rather than on HAVE_PUTPMSG.
+
+ * aclocal.m4 (AC_STAT64): Include <linux/types.h> before <asm/stat.h>
+ in test. Test our own #ifdef LINUX rather than predefined `linux'.
+
+ * linux/powerpc/syscallent.h: Use sys_llseek for _llseek.
+ * linux/sparc/syscallent.h: Likewise.
+ * linux/hppa/syscallent.h: Likewise.
+
+ * syscall.c (syscall_enter) [LINUX && POWERPC]: Define PT_ORIG_R3 if
+ not defined, since <asm/ptrace.h> defines it only #ifdef __KERNEL__.
+ * process.c: Likewise.
+
+ * desc.c (sys_osf_select): Add missing return type.
+
+ * syscall.c (trace_syscall): Use strerror, not sys_errlist/sys_nerr.
+
+ * linux/ia64/syscallent.h: Remove macros for sys_delete_module,
+ sys_nanosleep, both already in linux/dummy.h.
+
+ * syscall.c (get_scno): Move static `currpers' inside #ifdef X86_64.
+ (trace_syscall): Fix return without value.
+
+ * linux/syscallent.h: Update table with names of new syscalls
+ io_setup, io_destroy, io_getvents, io_submit, io_cancel.
+ * linux/ia64/syscallent.h: Likewise.
+ * linux/powerpc/syscallent.h: Likewise.
+
+ * signal.c [LINUX && I386]: Provide SA_RESTORER constant if not
+ defined. If the bit is set, print the sa_restorer field of sigaction.
+
+ * mem.c: Add sys_{get,set}_thread_area.
+ * linux/syscall.h: Declare them.
+ * linux/syscallent.h: Update the table for these.
+ * linux/dummy.h (sys_modify_ldt): Define only #ifndef I386.
+ (sys_get_thread_area, sys_set_thread_area): New macros #ifndef I386.
+
+ * configure.in: Check for linux/xattr.h and linux/futex.h headers.
+ * linux/syscall.h: Add sys_* decls for new syscalls getpmsg, putpmsg,
+ readahead, sendfile64, setxattr, fsetxattr, getxattr, fgetxattr, int
+ listxattr, flistxattr, removexattr, fremovexattr, sched_setaffinity,
+ sched_getaffinity, futex.
+ * linux/syscallent.h: Update the table.
+ * io.c: Add sys_sendfile64.
+ * file.c: Add sys_readahead, sys_*xattr.
+ * process.c: Add sys_futex, sys_*affinity.
+
+ * linux/syscall.h (SYS_socket_subcall): Define to 256 on all machines.
+ (SYS_ipc_subcall): Always SYS_socket_subcall + SYS_socket_nsubcalls.
+ * linux/syscallent.h: Update the table for socket and ipc subcalls.
+
+2002-11-09 Heiko Carstens <heiko.carstens@de.ibm.com>
+
+ Bugfix for s390/s390x:
+ * syscall.c: Fixed scno derivation for s390/s390x.
+
+2002-11-06 Michal Ludvig <mludvig@suse.cz>
+
+ Merged patch from Steven J. Hill <sjhill@realitydiluted.com>
+ to allow the compilation of a native MIPS strace.
+
+2002-11-06 Michal Ludvig <mludvig@suse.cz>
+
+ From Marty Leisner <leisner@rochester.rr.com>,
+ rewritten by mludvig:
+ * strace.c (not_failing_only): New.
+ (usage): Added -z switch description.
+ (main): Added -z switch parsing to not_failing_only variable.
+ * syscall.c (trace_syscall): Added not_failing_only handling.
+
+2002-10-08 Heiko Carstens <heiko.carstens@de.ibm.com>
+
+ Missing complete changelog for 2002-10-07 commit:
+ * Makefile.in: Added linux/s390, linux/s390x to ALL_SUBDIRS.
+ * acconfig.h: New define for s390x.
+ * config.sub: Added missing define for s390 and new one for s390x.
+ * configure.in: Added new define for s390x.
+ * file.c: Added missing #undef dirent64 and new defines for s390x.
+ * linux/s390: New directory.
+ * linux/s390/Makefile.in: New file.
+ * linux/s390/errnoent.h: New file.
+ * linux/s390/ioctlent.h: New file.
+ * linux/s390/signalent.h: New file.
+ * linux/s390/syscallent.h: New file.
+ * linux/s390x: New directoy.
+ * linux/s390x/Makefile.in: New file.
+ * linux/s390x/errnoent.h: New file.
+ * linux/s390x/ioctlent.h: New file.
+ * linux/s390x/signalent.h: New file.
+ * linux/s390x/syscallent.h: New file.
+ * linux/syscall.h: Added sys_mincore() prototype and added new
+ s390x defines.
+ * process.c: Added s390x defines.
+ (change_syscall): Changed handling for s390.
+ (setarg): Added missing s390/s390x code in setarg().
+ * signal.c: Added s390x define.
+ (sys_sigreturn): Bugfix in s390/s390x code (wrong number of
+ arguments to sprintsigmask()).
+ * stream.c (internal_stream_ioctl): Changed int cast to long cast,
+ since printstr() expects a long.
+ * syscall.c (decode_subcall): Changed several variables to be long
+ instead of int to match 64 bit requirements. Added s390x defines.
+ (syscall_enter): Changed upeek() call to match s390 and s390x
+ requirements.
+ * util.c: Added s390x defines.
+
+2002-10-07 Michal Ludvig <mludvig@suse.cz>
+
+ Merged s390x port by Heiko Carstens <Heiko.Carstens@de.ibm.com>
+ and bugfixes to s390 by D.J. Barrow.
+
+2002-09-23 Michal Ludvig <mludvig@suse.cz>
+
+ Merged x86-64 port by Andi Kleen <ak@suse.de>
+ and Michal Ludvig <mludvig@suse.cz>
+ * Makefile.in: New target 'headers'. Failure ignored.
+ * acconfig.h: New defines for x86-64.
+ * configure.in: Ditto.
+ * defs.h: Ditto.
+ * file.c: Ditto.
+ * signal.c: Ditto.
+ * process.c: Added support for x86-64.
+ * util.c: Ditto.
+ * syscall.c: Ditto + added automatic personality switching.
+ * linux/syscall.h: Ditto.
+ * linux/x86_64: New directory.
+ * linux/x86_64/Makefile.in: New file.
+ * linux/x86_64/gentab.pl: Ditto.
+ * linux/x86_64/i386-headers.diff: Ditto.
+ * linux/x86_64/makeheaders.sh: Ditto.
+ * linux/x86_64/syscallent.h: Ditto.
+ * mem.c (print_mmap): Always print arg[4] as int.
+
+2002-09-23 Michal Ludvig <mludvig@suse.cz>
+
+ * configure.in: Fix regular expressions.
+ * linux/syscall.h: Added missing braces in prototype of
+ sys_getdents64().
+ * file.c: Use '#ifdef LINUX' instead of '#ifdef linux'.
+ (struct fileflags): Made extern to inhibit compiation warnings.
+ (sys_getdents64): Merged LINUX and SVR4 part.
+ * syscall.c (get_scno): Split multiline string into two distinct
+ strings.
+
+2002-05-24 John Hughes <john@calva.com>
+
+ * stream.h, net.h: Avoid possible infinite loop caused by
+ unsigned arithmetic in preceeding change.
+
+2002-05-23 John Hughes <john@calva.com>
+
+ * acconfig.h: Add HAVE_OPTHDR and HAVE_T_OPTHDR defines.
+
+ * aclocal.m4: Add tests for struct opthdr in sys/socket.h and
+ struct t_opthdr in sys/tiuser.h, define HAVE_OPTHDR and HAVE_T_OPTHDR
+ if found.
+
+ * configure.in: use tests for struct opthdr and struct t_opthdr.
+
+ * defs.h: add new function print_sock_optmgmt.
+
+ * io.c: add hack that lets ioctl decode functions set auxilliary
+ string return.
+
+ * stream.c: better decoding for timod ioctls.
+
+ * net.c: add function print_sock_optmgmt, used by timod ioctl
+ decoding functions in stream.c.
+
+2002-05-23 John Hughes <john@calva.com>
+
+ * acconfig.h: Make autoheader happy about Linux/SuperH
+
+2002-05-23 John Hughes <john@calva.com>
+
+ * strace.c: Get rid of warning if not using POLL_HACK
+
+2002-05-22 John Hughes <john@calva.com>
+
+ * net.c: Simplify {get,set}sockopt, decode SO_LINGER, cope with
+ options that are not just ints, cope with systems that don't
+ #define SOL_TCP and so on.
+
+2002-05-21 John Hughes <john@calva.com>
+
+ * strace.c: Fix warning if POLL_HACK is used.
+
+2002-05-17 John Hughes <john@calva.com>
+
+ * svr4/ioctlent.sh: Some defines on UW come with too many spaces.
+
+2002-05-17 John Hughes <john@calva.com>
+
+ * svr4/ioctlent.sh: Cope with #defines wrapped in #ifdefs.
+
+2002-05-17 John Hughes <john@calva.com>
+
+ * stream.c: tidy up output a little.
+
+2002-05-17 John Hughes <john@calva.com>
+
+ * process.c, svr4/dummy.h, svr4/syscall.h: decode arguments
+ to procpriv syscall.
+
+2002-05-01 Wichert Akkerman <wichert@deephackmode.org>
+
+ * configure.in, defs.h, process.c, sock.c, syscall.c, util.c: merge
+ patch from Greg Banks <gbanks@pocketpenguins.com> for Linux/SuperH
+ support
+
+2002-04-01 Wichert Akkerman <wichert@deephackmode.org>
+
+ * strace.c: close tcp->outf in droptcb()
+
+2002-04-01 Wichert Akkerman <wichert@deephackmode.org>
+
+ * net.c: decode packet options
+
+2002-03-31 Wichert Akkerman <wichert@deephackmode.org>
+
+ * linux/{alpha,hppa,ia64,mips,powerpc,sparc}/syscallent.h: regenerated
+
+2002-03-31 Wichert Akkerman <wichert@deephackmode.org>
+
+ * debian/*: added
+ * linux/syscallent.h: fix typo and add the reserved stream syscalls
+ * defs.h, file.c, io.c: fix signed/unsigned issues
+ * syscall.c: check for negative u_errors
+ * cvsbuild: renamed to autogen.sh
+
+2001-12-17 Wichert Akkerman <wakkerma@debian.org>
+
+ * net.c: add new TCP socket options
+
+2001-10-26 John Hughes <john@calva.com>
+
+ * svr4/ioctlent.sh: Cope with #define lines containing
+ comments that terminate on subsequent lines. Used to
+ comment out subsequent ioctls!
+
+2001-10-25 Wichert Akkerman <wakkerma@debian.org>
+
+ * linux/ioctlent.h: regenerated using current scripts so
+ term ioctls are included
+
+2001-10-19 John Hughes <john@Calva.COM>
+
+ * strace.c(proc_open): On SVR4 only trace the syscalls,
+ signals and faults we care about.
+
+2001-10-18 John Hughes <john@Calva.COM>
+
+ * acconfig.h: Add HAS_SIGINFO_T.
+ * aclocal.m4: add check for siginfo_t in signal.h.
+ * configure.in: use check for siginfo_t.
+ * defs.h: if HAVE_SIGINFO_T the declare printsiginfo. On SVR4
+ allow access to siginfo when signal recieved.
+ * process.c: Remove SVR4 only version of printsiginfo.
+ * signal.c: merge SVR4 and LINUX versions of printsiginfo.
+ * strace.c: on SVR4 print siginfo when signal recieved.
+
+2001-10-18 John Hughes <john@Calva.COM>
+
+ * system.c(sys_ssisys): handle return values for ssisys
+
+2001-10-18 John Hughes <john@Calva.COM>
+
+ * signal.c: handle sigwait
+ * svr4/dummy.c: Move sigwait to done
+ * svr4/syscall.h: handle sigwait
+
+2001-10-16 John Hughes <john@Calva.COM>
+
+ * system.c(sys_ssisys): decode some args for ssisys.
+
+2001-10-16 John Hughes <john@Calva.COM>
+
+ * mem.c: MS_SYNC is zero, so must be first in xlat list.
+
+ * svr4/dummy.h: memcntl is much like mctl.
+
+2001-10-16 John Hughes <john@Calva.COM>
+
+ * util.c (umovestr): UnixWare (svr4?) returns 0 when trying
+ to read unmapped page. Make it possible to strace ksh.
+
+2001-10-03 David Mosberger <davidm@hpl.hp.com>
+
+ * process.c (internal_clone): Avoid race condition by clearing
+ breakpoint after attaching to child.
+
+2001-10-02 David Mosberger <davidm@hpl.hp.com>
+
+ * linux/ia64/syscallent.h: Define ia32 syscall numbers (originally
+ by Don Dugger, with my refinements).
+
+ * linux/ia64/ioctlent.h: Regenerate and manually merge conflicting
+ ioctls (TCGETS & SNDCTL_TMR_TIMEBASE, etc.).
+
+ * linux/ia64/Makefile.in (ioctldefs.h ioctls.h): Update for
+ new ioctlent.h generation scheme.
+
+ * linux/syscall.h (sys_clone2): Declare.
+ [IA64] Define ia32 socket, ipc, and extra syscall numbers.
+
+ * linux/ioctlent.sh (regexp): Also handle <asm/ioctls.h> so we
+ don't miss the tty ioctls (unfortunately, some of the sound timer
+ ioctls are in conflict with them!).
+
+ * util.c (setbpt) [IA64]: Add ia32 support (by Don Dugger).
+ (clrbpt) [IA64]: Ditto.
+
+ * syscall.c (internal_syscall): Handle SYS_clone2, SYS32_wait4,
+ and SYS32_exit.
+ (get_scno): Get ia32 syscall number from r1 (orig eax) instead of
+ r8 (eax). Handle TCB_WAITEXECVE.
+ (syscall_fixup): Handle ia64.
+ (syscall_enter): Fix argument fetching for ia64.
+
+ * strace.c [IA64 && LINUX]: Include <asm/ptrace_offsets.h>.
+ (trace) [PT_GETSIGINFO]: Print signal address and pc if possible.
+
+ * process.c (tcp): New function.
+ (change_syscall): Add support for ia64 linux.
+ (sys_execve): Turn on TCB_WAITEXECVE for ia64 linux.
+
+ * desc.c (getlk): Cast l_len to "long long" to avoid warnings when
+ type is narrower.
+ * resource.c (sprintrlim64): Ditto.
+
+ * defs.h (TCB_WAITEXECVE) [IA64]: Define.
+ [IA64]: Declare "ia32" variable.
+
+ * bjm.c: Do not include <linux/module.h>. It's not safe to include
+ kernel headers. Declare the necessary constants and structures
+ directly instead.
+
+2001-10-01 David Mosberger <davidm@hpl.hp.com>
+
+ * signal.c (parse_sigset_t): New function.
+ (sigishandled): Fix off-by-one bug by using parse_sigset_t() and
+ avoiding relying on internal layout of sigset_t datastructure.
+
+2001-04-26 David Mosberger <davidm@hpl.hp.com>
+
+ * linux/ia64/syscallent.h: Add getunwind().
+
+2001-04-11 David Mosberger <davidm@hpl.hp.com>
+
+ * syscall.c (syscall_enter): Use PT_RBS_END instead of deprecated
+ PT_AR_BSP. Pick up arguments starting with out0, which is not
+ always the same as r32 (e.g., consider inlined syscalls).
+
+2001-09-28 John Hughes <john@Calva.COM>
+
+ * process.c: FreeBSD-CURRENT no longer has PT_READ_U, and anyway we
+ were showing it as PT_WRITE_U! Fix from Maxime Henrion.
+
+2001-09-18 John Hughes <john@Calva.COM>
+
+ * net.c: fix display of sockaddr structures, sometimes too many "}",
+ sometimes too few. Fix suggested by Richard Kettlewell.
+
+2001-08-19 Wichert Akkerman <wakkerma@debian.org>
+
+ * signal.c: do not include asm/sigcontext.h on IA64 since it gets
+ the struct from bits/sigcontext.h already which signal.h includes.
+
+2001-08-03 Wichert Akkerman <wakkerma@debian.org>
+
+ * linux/ioctlent.sh: change regexps so we catch sound ioctls as well in
+ Linux
+ * linux/Makefile.in: fix a few things so the ioctl list is generated
+ properly
+ * ioctl.c: remember to shift ioctl masks as well
+
+2001-08-03 Wichert Akkerman <wakkerma@debian.org>
+
+ * Linux/**/syscallent.h: synchronize section for fcntl and use sys_fcntl
+ for sys_fcntl as well
+
+2001-08-03 Wichert Akkerman <wakkerma@debian.org>
+
+ * linux/hppa/syscallent.h: updated from Matthew Wilcox
+
+2001-08-03 Wichert Akkerman <wakkerma@debian.org>
+
+ * process.c: seems Linux/IA64 changed register names on us, switch to
+ using new names.
+
+2001-08-03 Wichert Akkerman <wakkerma@debian.org>
+
+ * strace.c: set CLOEXEC flag for outputfile
+
+2001-08-03 Wichert Akkerman <wakkerma@debian.org>
+
+ * linux/sparc/syscall.h, linux/sparc/syscallent.h: add some LFS calls
+
+2001-07-23 Wichert Akkerman <wakkerma@debian.org>
+
+ * configure.in: Support cross-compiling between architectures
+
+2001-07-13 Wichert Akkerman <wakkerma@debian.org>
+
+ * configure.in: add S390 to architecture list
+
+2001-07-10 John Hughes <john@Calva.COM>
+
+ * TODO, defs.h, io.h, net.c, strace.c, syscall.c, util.c: Merge fixes
+ from Richard Kettlewell <rkettlewell@zeus.com> which add I/O dumping
+ of args to readv/writev. Also gets rid of redundant printiovec
+ routine from net.c (duplicate of tprint_iov in util.c).
+
+2001-07-02 Wichert Akkerman <wakkerma@debian.org>
+
+ * config.{guess,sub}: updated
+
+2001-05-15 John Hughes <john@Calva.COM>
+
+ * signal.c: pass a pointer to sigmask to printsigmask from printcontext,
+ it was just passing the sigmask (ucp->uc_sigmask).
+
+2001-05-15 John Hughes <john@Calva.COM>
+
+ * util.c: Don't run off the end of valid memory in umovestr when
+ USE_PROCFS. Important for FREEBSD systems (which seem to have an
+ unmapped page just after the args/env area).
+
+2001-04-18 John Hughes <john@Calva.COM>
+
+ * configure.in: test for sys/nscsys.h, the non-stop clusters includes.
+ * process.c: handle rfork{1,all} and rexecve calls on non-stop clusters.
+ * syscall.c: treat rfork{1,all} and fork{1,all} as fork like calls.
+ Treat rexecve as an exec.
+ * system.c: decode arguments to ssisys call on nsc systems.
+ * svr4/dummy.h, svr4/syscall.h: now we handle rfork{1,all}, ssisys and
+ rexecve calls.
+
+2001-04-12 Wichert Akkerman <wakkerma@debian.org>
+
+ * process.c: fix cast for powerpc code
+ * linux/powerpc/syscallent.h: update syscall list
+ * README: fix address for the strace mailinglist
+ * signal.c: switch to using /proc/<pid>/status on Linux so we can get
+ the realtime signals as well
+
+2001-04-10 Wichert Akkerman <wakkerma@debian.org>
+
+ * Merge patches from Maciej W. Rozycki:
+ + util.c: add code to print PC for MIPS
+ + linux/mips/syscallent.h: updated
+ + system.c: formating fixes for sys_sysmips
+ + configure.in: test for yet more headers
+ + stream.c: use configure-headertests instead of relying on OS hints
+
+2001-04-07 Wichert Akkerman <wakkerma@debian.org>
+
+ * NEWS: start 4.3.1 items
+ * version.c: updated to say 4.3.1 (was still 4.2, oops!)
+
+2001-04-07 Wichert Akkerman <wakkerma@debian.org>
+
+ * configure.in: test for asm/sysmips.h and linux/utsname.h
+ * linux/syscall.h: fix a typo for sys_sysmips
+ * system.c: include asm/sysmips.h and linux/utsname.h if they exist,
+ fix typo
+
+2001-03-31 Wichert Akkerman <wakkerma@debian.org>
+
+ * linux/mips/ioctlent.h: updated using new Linux ioctl setup
+
+2001-03-31 Wichert Akkerman <wakkerma@debian.org>
+
+ * linux/ia64/ioctlent.h: regenerated
+
+2001-03-31 Wichert Akkerman <wakkerma@debian.org>
+
+ * linux/{alpha,ia64,powerpc}/ioctlent.sh: removed, all archs use the
+ general Linux ioctlent.sh
+
+2001-03-31 Wichert Akkerman <wakkerma@debian.org>
+
+ * linux/ioctlent.sh: add dir variable for location of kernel headers
+
+2001-03-29 Wichert Akkerman <wakkerma@debian.org>
+
+ * linux/ia64/ioctlent.h: updated using new Linux ioctl setup
+
+2001-03-29 Wichert Akkerman <wakkerma@debian.org>
+
+ * linux/powerpc/ioctlent.h: updated using new Linux ioctl setup
+
+2001-03-29 Wichert Akkerman <wakkerma@debian.org>
+
+ * linux/hppa/ioctlent.h: updated using new Linux ioctl setup
+
+2001-03-29 Wichert Akkerman <wakkerma@debian.org>
+
+ * linux/alpha/ioctlent.h: updated using new Linux ioctl setup
+
+2001-03-28 Wichert Akkerman <wakkerma@debian.org>
+
+ * configure.in: use sparc* so we can compile on sparc64 as well
+ * process.c, syscall.c: work around double define of fpq, fq and fpu
+ structs on Linux/sparc, and use regs instead of pt_regs
+ * don't use asm/sigcontext.h on Linux/sparc
+
+2001-03-28 Wichert Akkerman <wakkerma@debian.org>
+
+ * linux/sparc/ioctlent.h: updated using new Linux ioctl setup
+
+2001-03-28 Wichert Akkerman <wakkerma@debian.org>
+
+ * strace.c: use __WALL as wait4 flag if it exists so we can properly
+ trace threaded programs
+
+2001-03-27 John Hughes <john@Calva.COM>
+
+ * aclocal.m4: add check for endianness of long long.
+ * acconfig.h: add #define for LITTLE_ENDIAN_LONG_LONG.
+ * configure.in: check for endianness of long long.
+ * defs.h: change LONG_LONG macro to work with either endianness of
+ long long.
+
+2001-03-27 John Hughes <john@Calva.COM>
+
+ * net.c: Make compilable by SCO UDK compiler (doesn't like empty
+ initialisation list for array).
+
+2001-03-27 John Hughes <john@Calva.COM>
+
+ * svr4/syscallent.h: ntp_adjtime entry was duplicated on Solaris
+ systems - bad merge of Harald Boehme's patch by me.
+
+2001-03-27 Wichert Akkerman <wakkerma@debian.org>
+
+ * lots of files: add Linux/hppa support
+
+2001-03-19 Wichert Akkerman <wakkerma@debian.org>
+
+ * linux/mips/syscallent.h: we can't have -1 nargs, change to 0
+ * linux/syscallent.h: not that syscalls 220 and 221 are used now
+ * config.guess: updated
+
+2001-03-17 Wichert Akkerman <wakkerma@debian.org>
+
+ * linux/ioclsort.c: new file
+ * linux/ioctlent.sh: complete rewrite to use a more sane approach to get
+ the ioctl list that doesn't involve attempting to #include all kernel
+ headers
+ * linux/.cvsignore: added ioctdefs.h and ioctls.h which are generated
+ by the new ioctlent.sh
+ * ioctl.c: only look at the number and type bits for linux, since
+ ioctlent.sh no longer supplies the others
+
+2001-03-08 John Hughes <john@Calva.COM>
+
+ * freebsd/syscalls.pl: On FreeBSD we must cope with COMPATibility syscalls,
+ pretend they have names ending with "?" so that -e trace=stat (for
+ example) will work.
+ * freebsd/i386/syscallent.h: add ? to compatability syscalls.
+ * freebsd/i386/syscall.h: consistency.
+
+2001-03-08 John Hughes <john@Calva.COM>
+
+ * acconfig.h: add new ST_xxx defines.
+ * aclocal.m4: macros to check for more fields in struct stat.
+ * configure.in: use new macros to check for fields in struct stat.
+ * file.c: use new defines to replace #ifdef FREEBSD by #if HAVE_ST_xxx.
+
+2001-03-08 John Hughes <john@Calva.COM>
+
+ * defs.h: rename wimpy get64 as powerful new LONG_LONG
+ * file.c: use LONG_LONG
+ * io.c: use LONG_LONG
+ * mem.c use LONG_LONG
+
+2001-03-08 John Hughes <john@Calva.COM>
+
+ * acconfig.h: new #defines HAVE_LONG_LONG_OFF_T and HAVE_LONG_LONG_RLIM_T.
+ * aclocal.m4: routines to check for long long off_t and rlim_t.
+ * configure.in: check for long long off_t and rlim_t.
+ * desc.c: if HAVE_LONG_LONG_OFF_T treat flock as flock64
+ * file.c: if HAVE_LONG_LONG_OFF_T treat stat,lstat,fstat and lseek as 64
+ bit versions.
+ * io.c: if HAVE_LONG_LONG_OFF_T use 64 bit versions of pread and pwrite.
+ * mem.c: if HAVE_LONG_LONG_OFF_T use 64 bit version of mmap
+ * resource.c: if HAVE_LONG_LONG_OFF_T use 64 bit versions of getrlimit
+ and setrlimit.
+ * freebsd/syscalls.print: don't explicitly use 64 bit versions of calls,
+ now done automaticaly for us.
+ * freebsd/i386/syscall.h: ditto.
+ * freebsd/i386/syscallent.h ditto.
+
+2001-03-07 John Hughes <john@Calva.COM>
+
+ * desc.c: On FreeBSD flock structure uses 64 bit offsets.
+ * file.c: On FreeBSD use stat64 and pals instead of stat.
+ * freebsd/syscalls.print: use stat64, lstat64 and fstat64.
+ * freebsd/i386/syscall.h: ditto.
+ * freebsd/i386/syscallent.h: ditto.
+
+2001-03-07 John Hughes <john@Calva.COM>
+
+ * file.c: merge missing part of Harald Böhme's solaris patches,
+ was only declaring sys_{stat64,lstat64,fstat64} on linux!
+
+2001-03-07 John Hughes <john@Calva.COM>
+
+ * svr4/dummy.h: fix multiple define warning on non LFS64 systems.
+ * svr4/syscallent.h: pread/pwrite are TF calls.
+
+2001-03-07 John Hughes <john@Calva.COM>
+
+ * defs.h: add ALIGN64 macro to cope with FreeBSD's strange insistence
+ on alignment for off_t (64 bit) arguments. Also simplify get64 so
+ we don't need to know endianness of long long.
+ * file.c: FreeBSD now uses 64 bit versions of lseek, truncate,
+ ftruncate, allows reduction in numvber of horrid #if's
+ * io.c: FreeBSD now uses 64 bit versions of pread, pwrite.
+ * mem.c: FreeBSD now uses 64 bit version of mmap.
+ * freebsd/syscalls.print: use 64 bit versions of various syscalls.
+ * freebsd/i386/syscall.h: use 64 bit versions of various syscalls.
+ * freebsd/i386/syscallent.h: use 64 bit versions of various syscalls.
+
+2001-03-06 John Hughes <john@Calva.COM>
+
+ * file.c: Implement truncate64 and ftruncate64
+ * svr4/dummy.h: add dummies for truncate64 and ftruncate64 for non
+ LFS64 systems.
+ * svr4/syscall.h: add declarations for truncate64 and ftruncate64.
+
+2001-03-06 John Hughes <john@Calva.COM>
+
+ * freebsd/syscalls.pl: fix for FreeBSD 4.1 (new optional field in
+ syscall master file).
+
+2001-03-06 John Hughes <john@Calva.COM>
+
+ * syscall.c: fix for FreeBSD 4.1 (SYS_semconfig has disappeared). Also
+ zap incorrect syscall subarg range check.
+
+2001-03-06 John Hughes <john@Calva.COM>
+
+ * configure.in, defs.h, desc.c, file.c, io.c, mem.c, net.c, resource.c,
+ signal.c, syscall.c, svr4/dummy.h, svr4/syscall.h, svr4/syscallent.h:
+ merge Harald Böhme's solaris patches (_LFS64_LARGEFILE and kernel aio
+ mostly).
+
+2001-03-06 John Hughes <john@Calva.COM>
+
+ * dummy.h: add unimplemented UW sycalls
+ * syscall.h: we can do settimeofday for UW, whopee!
+ * syscallent.h: fix unimplemented UW syscalls
+
+2001-03-06 John Hughes <john@Calva.COM>
+
+ * aclocal.m4: look for pr_syscall in pr_lwp if we HAVE_MP_PROCFS
+ * defs.h: add PR_SYSCALL to allow use of pr_lwp.pr_syscall if it exists.
+ * syscall.c: use PR_SYSCALL instead of pr_syscall, fix up UnixWare code
+ so it doesn't try to use pr_sysarg.
+
+2001-03-06 John Hughes <john@Calva.COM>
+
+ * aclocal.m4: on systems other than linux look for stat64 in sys/stat.h
+ * file.c: handle xstat version _STAT64_VER, aka stat64.
+
+2001-03-06 John Hughes <john@Calva.COM>
+
+ * net.c: make sure SOL_ options are defined before using.
+ * signal.c: declare sigset variable, only used on linux, inside #ifdef.
+
+2001-02-21 Wichert Akkerman <wakkerma@debian.org>
+
+ * net.c: fix format for printing Unix domain sockets
+
+2001-02-19 Wichert Akkerman <wakkerma@debian.org>
+
+ * linux/mips/syscallent.h: use new sys_sysmips
+ * system.c: add sys_sysmips decoding
+
+2001-02-16 Wichert Akkerman <wakkerma@debian.org>
+
+ * CREDITS: add Arkadiusz Miskiewicz <misiek@pld.org.pl> who
+ submitted the IP6 scope ID updates
+ * acconfig.h: add HAVE_SIN6_SCOPE_ID and HAVE_SIN6_SCOPE_ID_LINUX
+ * aclocal.m4: add AC_SIN6_SCOPE_ID to check if sin6_scope_id is
+ available
+ * configure.in: check for if_indextoname function and sin6_scope_id
+ * net.c: teach printsock about IP6 scope ids
+
+2001-02-16 Wichert Akkerman <wakkerma@debian.org>
+
+ * configure.in: test for netinet/tcp.h and netinet/udp.h existance
+ * net.c: include netinet/tcp.h and netinet/udp.h if they exist
+ * Makefile.in: use @mandir@ and @bindir@
+
+2000-11-26 Wichert Akkerman <wakkerma@debian.org>
+
+ * net.c: fix formating error in sys_setsockopt
+ * net.c: add list of socketlayers and use that for [gs]etsockopt
+
+2000-10-12 Wichert Akkerman <wakkerma@debian.org>
+
+ * time.c: use sys/timex.h so things compile with 2.2 kernels
+ * stream.c: test if MSG_* constants are #defined
+
+2000-09-03 Wichert Akkerman <wakkerma@debian.org>
+
+ * process.c: perform bpt trick for clone as well so we can get the
+ pid of the child before it starts doing something
+ * file.c: rename dirent64 struct to kernel_dirent64 so things compile
+ again with newer libcs
+ * test/clone.c: improve our testcase a bit
+ * Merge another patch from Gäel Roualland with FreeBSD updates
+
+2000-09-01 Wichert Akkerman <wakkerma@debian.org>
+
+ * lots of files: merge patch from Gaël Roualland to add
+ support for FreeBSD.
+
+2000-08-09 Wichert Akkerman <wakkerma@debian.org>
+
+ * file.c: update to reflect that st_ino suddenly became a long long
+ in the in Linux 2.4.0-test6
+
+2000-08-09 Wichert Akkerman <wakkerma@debian.org>
+
+ * test/clone.c: minor fixup
+ * Another bunch of patches from John Hughes merged:
+ * signal.c:
+ + SVR4 printcontext(): sigset_t != sigset_t*
+ + getcontext returns a value, so print on exit of syscall
+ + add UC_FP to ucontext_flags for OS writers that can't spell
+ + sys_signal(): special case SIG_{ERR,DFL,IGN}
+ + decode_subcall(): only do subcall range checking when needed
+ * bunch of UnixWare updates
+ * aclocal.m4, acconfig.h, configure.in: add test for long long type
+
+2000-07-04 Wichert Akkerman <wakkerma@debian.org>
+
+ * net.c: add SOL_PACKET and SOL_RAW socket options, update
+ SOL_IP and SOL_TCP
+
+2000-06-23 Wichert Akkerman <wakkerma@debian.org>
+
+ * strace.c: close outf before we exec a child process
+
+2000-06-09 Ulrich Drepper <drepper@redhat.com>
+
+ * configure.in: Don't link against libnsl on Linux, it's unnecessary.
+ * defs.h (struct tcb): Make auxstr member const.
+ * file.c (fsmagic): And many more magic numbers.
+ * util.c: Don't include <linux/ptrace.h> for glibc 2.1 and up.
+
+2000-04-26 Wichert Akkerman <wakkerma@debian.org>
+
+ * defs.h: balance #if/#endif again
+ * system.c: fix return statements in sys_capget()
+ * Merge updates from Topi Miettinen <Topi.Miettinen@nic.fi>:
+ + file.c: add F_[SG]ETSIG to fcntl flags
+ + strace.c: don't setre[gu]id if not needed
+ + system.c: handle sys_reboot for Linux
+ + term.c: add baudrate constants up to B4000000
+ + linux/**/syscallent.h: note that munlockall has no arguments
+
+2000-04-25 David Mosberger <davidm@hpl.hp.com>
+
+ * CREDITS: fix email address
+ * process.c: handle PR_[GS]ET_UNALIGN and PR_[GS]ET_KEEPCAPS
+ * signal.c: honour offset of sigconfig in sigframe structure for
+ Linux/ia64
+ * linux/ia64/syscallent.h: Add perfmonctl, pivotroot, mincore, and
+ madvise syscalls.
+ * syscall.c (syscall_enter): With Kevin's latest ptrace patches,
+ AR_BSP points to the _end_ of the active register frame, so we need
+ to adjust bsp by moving it back by the size of the active frame
+ before using it.
+
+2000-04-24 Wichert Akkerman <wakkerma@debian.org>
+
+ * process.c: add sparc support to change_syscall
+
+2000-04-22 Wichert Akkerman <wakkerma@debian.org>
+
+ * linux/mips/syscallent.h: fix some typos
+
+2000-04-14 Wichert Akkerman <wakkerma@debian.org>
+
+ * linux/mips/syscallent.h: added names for SVR4, SYSV, BSD4.3 and POSIX
+ syscalls
+
+2000-04-13 Wichert Akkerman <wakkerma@debian.org>
+
+ * defs.h: Linux/MIPS uses syscalls up to >4k, so set MAX_QUALS to
+ 4999
+
+2000-04-09 Wichert Akkerman <wakkerma@debian.org>
+
+ * README-linux: updated to note that strace might not compile
+ with development kernels
+ * bjm.c: sys_query_module: check if malloc succeeds
+ * system.c: sys_cap[gs]et(): check if malloc succeeds, only malloc once
+ * linux/syscallent.h: updated for 2.3.99pre3
+ * linux/alpha/syscallent.h: updated for 2.3.99pre3, add all osf syscalls
+ even though Linux doesn't implement them
+ * syscall.c: add global variables for MIPS registers as well
+ * syscall.c: move global variables to before get_scno since that uses them
+ * util.c: oops, misspelled defined
+ * process.c: fix ptrace calls in change_syscall
+ * mem.c: decode sys_madvise
+ * Merge patch from Topi Miettinen <Topi.Miettinen@nic.fi>
+ + add support for quotactl, fdatasync, mlock, mlockall, munlockall & acct
+ + small fix for RLIMIT_* and RUSAGE_BOTH
+ + enhace support for capget and capset
+
+2000-02-19 Wichert Akkerman <wakkerma@debian.org>
+
+ * test/vfork.c: new file to test vfork traces
+ * test/.cvsignore: new file
+ * defs.h: Up maximum number of traced processed to 64
+ * strace.c: Disable some debugging code from davidm
+ * implement setarg for more architectures
+ * implement change_syscall
+
+1999-12-27 Morten Welinder <terra@diku.dk>
+
+ * syscall.c (lookup_signal, lookup_desc): isdigit requires an
+ _unsigned_ char parameter.
+
+2000-02-14 Wichert Akkerman <wakkerma@debian.org>
+
+ * S390 updates
+
+2000-02-03 Wichert Akkerman <wakkerma@debian.org>
+
+ * Merge Linux/ia64 patches
+
+2000-01-02 Pavel Machek <pavel@ucw.cz>
+
+ * probe if sys/poll.h exists in configure + minor cleanups
+
+ * syscall.c: split trace_syscall into few pieces to make code readable
+
+2000-01-21 Wichert Akkerman <wakkerma@debian.org>
+
+ * Release version 4.2 to get the current updates out and so
+ we can concentrate in finishing the clone support.
+
+2000-01-11 Wichert Akkerman <wakkerma@debian.org>
+
+ * Add 1900 to tm_year in sprinttime
+
+1999-12-24 Wichert Akkerman <wakkerma@debian.org>
+
+ * file.c: protect printstat64 with STAT64 instead of linux so we can
+ compile on Linux architectures that don't have it
+ * util.c: fix LOOP for ARM
+
+Fri Dec 24 18:05:00 EST 1999
+
+1999-12-23 Ulrich Drepper <drepper@cygnus.com>
+
+ * file.c: Use ugly libc_stat trick also for stat64.
+ Implement sys_stat64, sys_fstat64, sys_lstat64, and printstat64.
+ * process.c (internal_clone): Fix a few typos and add definitions to make
+ it at least compile.
+ * linux/syscall.h: Declare sys_stat64, sys_lstat64, and sys_fstat64.
+ * linux/syscallent.h: Define table entries for sys_stat64, sys_lstat64,
+ and sys_fstat64.
+ * aclocal.m4: Define AC_STAT64.
+ * acconfig.h: Define HAVE_STAT64.
+ * configure.in: Add AC_STAT64.
+
+Thu Dec 23 15:01:37 CET 1999 Wichert Akkerman <wakkerma@debian.org>
+
+ * Merge patch from ftp://oss.software.ibm.com/linux390/ to add
+ support for Linux on the IBM S/390 architecture
+ * process.c: add internal_clone(), currently only shows the options
+ * syscall.c: use internal_clone to handle SYS_clone
+
+Mon Dec 20 00:27:50 CET 1999 Wichert Akkerman <wakkerma@debian.org>
+
+ * Rewrite mmap-handling to support mmap2 on Linux
+
+Tue Dec 14 11:35:16 CET 1999 Wichert Akkerman <wakkerma@debian.org>
+
+ * Note that Linux can handle sys_semop() as well
+
+Tue Nov 30 11:05:26 CET 1999 Wichert Akkerman <wakkerma@debian.org>
+
+ * Include linux/in6.h for glibc2.0 and older
+
+Mon Nov 29 16:33:04 CET 1999 Wichert Akkerman <wakkerma@debian.org>
+
+ * Merge patches from John Hughes to make configure support UnixWare
+
+Sat Nov 27 21:38:17 CET 1999 Wichert Akkerman <wakkerma@debian.org>
+
+ * Enhance sys_query_module
+
+Fri Nov 26 10:51:55 CET 1999 Wichert Akkerman <wakkerma@debian.org>
+
+ * Patches from John Hughes:
+ + cosmectic fix in sys_getpmsg
+ + allow net.c to compile on systems without AF_INET6
+ + Only use long_to_sigset on Linux systems
+ + UnixWare treats sigmask_t and sigmask_t* as the same thing
+ + Add pollhack
+ + Parse mount arguments for UnixWare
+ + ACL fixes for UnixWare
+
+Fri Nov 26 01:28:09 CET 1999 Wichert Akkerman <wakkerma@debian.org>
+
+ * Release 4.1 to get all the changes made out there
+
+Thu Nov 18 18:04:04 CET 1999 Wichert Akkerman <wakkerma@debian.org>
+
+ * Merge stracefork from Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
+ + Socket calls parsed better
+ + bunch of alpha OSF syscalls added
+ + Fix alpha 32/64 bit issues
+
+Mon Nov 1 20:52:08 CET 1999 Wichert Akkerman <wakkerma@debian.org>
+
+ * Move Linux kernelmodule-functions from system.c to bjm.c and
+ remove duplicate for sys_create_module
+ * Linux MIPS updates:
+ + Play with #ifdef's in net.c to get IPv6 right
+ + Use printargs for vm86-syscall
+
+Sun Oct 31 22:03:00 CET 1999 Wichert Akkerman <wakkerma@debian.org>
+
+ * Merge Linux mips patch from Florian Lohoff <flo@rfc822.org>
+
+Mon Oct 11 00:36:25 CEST 1999 Wichert Akkerman <wakkerma@debian.org>
+
+ * Merge patch from Keith Owens <kaos@ocs.com.au> to sys_query_module
+ and sys_delete_module correctly
+
+Wed Oct 6 02:00:33 CEST 1999 Wichert Akkerman <wakkerma@debian.org>
+
+ * Update cvsbuild to give a better error if autoconf isn't installed
+ * Add test for linux/ptrace.h to configure
+ * Since we define GNU_SOURCE in the Makefile we don't need to define
+ USE_GNU in file.c anymore
+
+Fri Sep 10 04:35:16 CEST 1999 Wichert Akkerman <wakkerma@debian.org>
+
+ * #define USE_GNU before including file.c so we get some extra O_* flags
+
+Tue Aug 31 16:27:21 CEST 1999 Wichert Akkerman <wakkerma@debian.org>
+
+ * Add missing } in IPv6 output
+
+Tue Aug 31 01:23:08 CEST 1999 Wichert Akkerman <wakkerma@debian.org>
+
+ * Update copyright for strace-graph to BSD to be consistent with
+ the rest of strace
+
+Mon Aug 30 00:53:57 CEST 1999 Wichert Akkerman <wakkerma@debian.org>
+
+ * Merge patch from Daniel Jacobowitz: KERN_JAVA_* and KERN_SECURELVL aren't
+ defined for all kernelversions
+ * Add strace-graph, written by Richard Braakman <dark@xs4all.nl>
+
+Thu Aug 19 13:10:15 CEST 1999 Jakub Jelinek <jj@ultra.linux.cz>
+
+ * linux/sparc/syscall.h: Declare create_module/init_module.
+ * configure.in: Allow compilation in a different directory
+ than the source one.
+ * signal.c: Use asm/reg.h and struct regs instead of pt_regs
+ so that we don't depend on asm/ptrace.h which clashes with
+ glibc sys/ptrace.h.
+ * util.c: Likewise.
+ * syscall.c: Likewise.
+
+Wed Aug 4 18:01:50 CEST 1999 Wichert Akkerman <wakkerma@debian.org>
+
+ * Syscall 94 on Linux alpha is sys_poll
+
+Sun Jul 25 14:38:33 CEST 1999 Wichert Akkerman <wakkerma@debian.org>
+
+ * Merge in UnixWare patches from John Hughes <john@Calva.COM>
+
+Thu Jul 15 23:00:32 CEST 1999 Wichert Akkerman <wakkerma@debian.org>
+
+ * Merge patch from Maciej W. Rozycki <macro@ds2.pg.gda.pl>:
+ + Correctly implement fix sys_createmodule (Linux)
+ + Add limited handlig of sys_initmodule (Linux)
+
+Tue Jul 13 17:07:50 CEST 1999 Wichert Akkerman <wakkerma@debian.org>
+
+ * Add configure-test for sys/reg.h and use that
+ * Use sys/reg.h instead of asm/ptrace.h
+
+Sat Jul 10 01:46:10 CEST 1999 Wichert Akkerman <wakkerma@debian.org>
+
+ * Remove hack in signal.c for arm architecture
+ * Add hack so we compile correctly on powerpc
+
+Fri Jul 9 02:28:16 CEST 1999 Wichert Akkerman <wakkerma@debian.org>
+
+ * Add a corrected patch from Daniel Jacobowitz
+
+Thu Jul 8 16:00:04 CEST 1999 Wichert Akkerman <wakkerma@debian.org>
+
+ * Merge patch from Daniel Jacobowitz to allow us to use the kernel types
+ for the stat structure
+
+Thu Jun 24 15:54:18 CEST 1999 Wichert Akkerman <wakkerma@debian.org>
+
+ * Fix test for sys/reg include
+
+Tue Jun 22 17:26:33 CEST 1999 Wichert Akkerman <wakkerma@debian.org>
+
+ * Fixed some Linux/powerpc sillyness, thanks to Daniel Jacobowitz
+ * Fixed some SunOS compile problems earlier that I forgot to include
+ here
+
+Mon Jun 14 12:44:25 CEST 1999
+
+ * Avoid leakint fd into child when forking, patch from
+ John Hughes <john@Calva.COM>
+
+Fri Jun 11 14:54:47 CEST 1999
+
+ * Applied IRIX64 patch from Thomas E. Dickey <dickey@clark.net>
+ * Applied Solaris and manpage updates from Guy Harris <guy@netapp.com>
+
+Wed Jun 9 14:48:49 CEST 1999 Wichert Akkerman <wakkerma@debian.org>
+
+ * Brought syscall list for alpha up to date
+
+Wed Jun 2 18:30:12 CEST 1999 Jakub Jelinek <jj@ultra.linux.cz>
+
+ * system.c: sys_umount2 syscall support.
+ * linux/sparc/errnoent.h: Update sparc-linux errnos.
+ * linux/sparc/syscall.h: Update used sparc-linux syscalls.
+ * linux/sparc/syscallent.h: Match 2.2.9 system calls.
+ * file.c: sparc-linux asm/stat.h uses dev_t etc. types,
+ so it needs strace's own copy of the stat structure.
+ * util.c: Make it compile on sparc-linux.
+ * strace.c: Fix strace -f and -ff operation on sparc-linux.
+ * signal.c: rt_sigaction has different arguments on sparc*-linux
+ and alpha-linux.
+ * syscall.c: Recognize sparc64-linux binaries.
+
+Fri May 28 21:09:00 PST Ulrich Drepper <drepper@cygnus.com>
+
+ * configure.in: Fix typo (CFLAG -> CFLAGS).
+
+ * syscall.c: Don't include linux/ptrace.h explicitly for glibc.
+
+Thu May 27 13:59:27 CEST 1999 Wichert Akkerman <wakkerma@debian.org>
+
+ * Add some sysctl support, patch from Ulrich Drepper
+
+Wed May 26 01:04:34 CEST 1999 Wichert Akkerman <wakkerma@debian.org>
+
+ * Use kernel dirent structure for Linux
+
+Sun May 9 02:18:30 CEST 1999 Wichert Akkerman <wakkerma@debian.org>
+
+ * Merge in patches from Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
+ + some layout and other minor fixes
+ + add some m68k-specific things to linux/syscallent.h. Note that m68k
+ is similar enough to i386 to not need it's own subdirectory
+ + add support for sendfile and mremap syscalls for Linux
+ * Merge in patches from Sascha Schumann <sascha@schumann.2ns.de>
+ + ioctls.h vs sys/ioctl.h on Alpha platform
+ + pointer was casted to an int in stream.c
+ + strsignal() needs -D_GNU_SOURCE in CFLAGS
+ + several other casts changed
+ + correct ARM/POWERPC architecture defines in acconfig.h
+ * Merge in patches from Morten Welinder <terra@diku.dk>
+ + add some autoconf-tests for includefiles
+ + handle solaris version of sigcontext struct (actually I hacked this
+ up again, but the idea is his :)
+
+Sun Apr 18 22:32:42 CEST 1999 Wichert Akkerman <wakkerma@debian.org>
+
+ * Update syscalls for linux alpha, patch from Bart Warmerdam
+ <bartw@debian.org>
+ * Update sparc code so it actually compiles
+
+Fri Apr 16 02:18:05 CEST 1999 Wichert Akkerman <wakkerma@debian.org>
+
+ * Add support for old_*stat functions for Linux. Please note you need
+ to use reasonably recent kernel headers to compile strace now.
+ * Change references to LINUX into linux in file.c
+ * Fix include for LDT in mem.c
+
+Thu Apr 15 22:28:15 CEST 1999 Wichert Akkerman <wakkerma@debian.org>
+
+ * Change in strace maintainership, jrs passed the torch to me.
+ * Use autoconf 2.13
+ * Incorporate all changes already made in the Debian strace package:
+ + compiles with more Linux kernels
+ + added support for more Linux architectures
+ + add support for a lot of extra syscalls
+ + fix some problems with hanging children
+ + check stray syscall after execv
+ + decode capget and capset arguments
+ + add more constants to net.c
+ + detect ROSE networking
+ + add more protocol families to domains
+ + add IPIP protocol
+ + added MSG_PROXY and MSG_CTRUNC to msg_flags
+ + added SO_BSDCOMPAT and SO_REUSEPORT to sockoptions
+ + added IP, IPX and TCP-options
+ + added IP, IPX and TCP support to get-/setsockopt()
+ + added IPX support
+ + updated handling of signals
+
+Sun Oct 27 22:28:00 1996 J. Richard Sladkey <jrs@world.std.com>
+
+ * util.c (umovestr) [LINUX]: Handle Linux like SunOS4
+ instead of SVR4. That is, read a few bytes at a time
+ to avoid overrunning the end of the stack.
+
+Fri May 31 01:48:49 1996 J. Richard Sladkey <jrs@world.std.com>
+
+ * version.c: Version 3.1 is released.
+
+Thu May 23 01:04:43 1996 J. Richard Sladkey <jrs@world.std.com>
+
+ * aclocal.m4 (AC_DECL_SYS_ERRLIST): Try looking in stdio.h
+ as well since that's where glibc declares it. Go figure.
+ * signal.c (sys_sigreturn) [ALPHA]: Use sigcontext
+ instead of sigcontext_struct since glibc v5+ apparently
+ plays games with the native OS namespace.
+ From David Mosberger-Tang <davidm@AZStarNet.com>.
+
+Mon May 20 23:17:14 1996 J. Richard Sladkey <jrs@world.std.com>
+
+ * version.c: Version 3.0.14 is released.
+
+ * aclocal.m4 (AC_STRUCT_MSG_CONTROL): New macro.
+ * configure.in: Add call to AC_STRUCT_MSG_CONTROL.
+ * net.c (printmsghdr): Handle BSD 4.3 and 4.4 msghdr members
+ differently.
+ Reported by Henrik Storner <storner@osiris.ping.dk>.
+
+ * configure.in: (AC_CHECK_{HEADERS,FUNCS}): Add checks for
+ sys/filio.h and sys/stream.h and remove check for poll.
+ * desc.c (decode_select, sys_select, sys_oldselect) [LINUX]:
+ Handle old and new styles of argument passing for select on Linux.
+ * ioctl.c, stream.c: Conditionalize stream code on presence of
+ sys/stream.h instead of poll because glibc implements poll but
+ not the rest of the stream interface.
+ * signal.c [LINUX]: Standardize on the name sigcontext_struct.
+ (sys_sigprocmask) [ALPHA]: Handle OSF flavor which is more like
+ sigsetmask.
+ * term.c (term_ioctl): Use _VMIN, if present, for TC{G,S}ETA*.
+ * util.c (umoven, umovestr): Move data in long-sized chunks
+ at a time, instead of hard coding it to be 4.
+ From David Mosberger-Tang <davidm@AZStarNet.com>.
+
+Mon May 20 01:19:36 1996 J. Richard Sladkey <jrs@world.std.com>
+
+ * version.c: Version 3.0.13 is released.
+
+ * configure.in (AC_CHECK_HEADERS): Add check for asm/sigcontext.h.
+ * signal.c [HAVE_ASM_SIGCONTEXT_H]: Conditionally include
+ asm/sigcontext.h to define sigcontext_struct and don't define it
+ locally if the header is present.
+
+ * syscall.c (nerrnos{0,2}): Correct size computation.
+
+ * Makefile.in: Remove dependencies and rules relating to files
+ normally found in the os directory. Because of the new scheme we
+ don't know precisely where they come from. Sigh.
+ * signalent.sh: Make it work for sunos4, linux, and svr4.
+ * {sunos4,linux{,/alpha},svr4}/Makefile.in: Make rules correspond
+ to traditional make syntax. Add signalent.h to files which can
+ unconditionally be rebuilt. Prevent signalent.h from being
+ unconditionally being rebuilt since it's customized.
+ * {sunos4,linux{,/alpha},svr4}/{ioctlent,errnoent,signalent}.h:
+ Use versions built by {ioctlent,errnoent,signaltent}.sh.
+ * sunos4/ioctlent.sh: Work around sprintf troubles with SunOS
+ 4.1.4 and gcc 2.7.2.
+
+Sun May 19 17:14:09 1996 J. Richard Sladkey <jrs@world.std.com>
+
+ * configure.in, Makefile.in: Add OSARCH concept to finish
+ build support for the alpha.
+ * Makefile.in, linux/Makefile.in: Rewrite clean, distclean,
+ and maintainer-clean rules.
+ * defs.h, ioctlsort.c: Make ioctl code member unsigned.
+ * ioctl.c, ioctlsort.c (compare): Perform explicit checking
+ for less, greater, and equal since subtraction on two's
+ complement numbers isn't an order relation (it isn't transitive)!
+ * linux/Makefile.in: Add rules for the signalent.h file.
+ * linux/alpha/Makefile.in: New file.
+
+Sun May 19 01:12:28 1996 J. Richard Sladkey <jrs@world.std.com>
+
+ * version.c: Version 3.0.12 is released.
+
+ * linux{,alpha}/ioctlent.sh: Tweak for recent kernels.
+ From Michael E Chastain <mec@duracef.shout.net>.
+
+ * defs.h (SUPPORTED_PERSONALITES, DEFAULT_PERSONALITY): New.
+ * syscall.c (set_personality): New.
+ * strace.c (main): Call set_personality.
+ * defs.h, syscall.c, ioctl.c, signal.c: Make sysent, errnoent,
+ ioctlent, and signalent indirect pointers and redirect them
+ based on personality.
+ * {sunos4,svr4,linux{,/alpha}}/signalent.h: New files.
+ Suggested by Tom Dyas <tdyas@eden.rutgers.edu>.
+
+ * util.c (upeek): Handle case where ptrace returns a long
+ and sizeof(long) != sizeof(int).
+ From Richard Henderson <richard@twiddle.tamu.edu>
+
+Fri May 17 21:03:36 1996 J. Richard Sladkey <jrs@world.std.com>
+
+ * version.c: Version 3.0.11 is released.
+
+ * many files: Fix more printf warnings for other platforms.
+
+ * ipc.c (sys_msgrcv) [LINUX]: Conditionalize definition of ipc_wrapper.
+
+ * linux/dummy.h: Handle missing library support for {send,recv}msg.
+ Reported by Thomas Bogendoerfer <tsbogend@bigbug.franken.de>.
+
+ * linux/syscall.h (sys_utimes): Fix a typo in the declaration.
+ From Thomas Bogendoerfer <tsbogend@bigbug.franken.de>.
+
+Fri May 17 00:50:06 1996 J. Richard Sladkey <jrs@world.std.com>
+
+ * version.c: Version 3.0.10 is released.
+
+ * Makfile.in: Add os/arch to includes so that a given arch
+ (like alpha) can override the native arch (like i386).
+ * configure.in: Check for sendmsg.
+
+ * net.c: Make sendmsg and recvmsg dependent on an autoconf
+ test. Reported by Michael E Chastain <mec@duracef.shout.net>.
+
+ * acconfig.h, configure.in: Detect the alpha.
+ * ioctl.c: Handle the alpha.
+ * defs.h: Make some members long for the alpha. Define
+ some register nicknames. Add support for WAITEXECVE.
+ * file.c [ALPHA]: Support the alpha for statfs. Add
+ osf_statfs and osf_fstatfs for the alpha. Make damn sure
+ major and minor results are suitable for passing to printf.
+ * signal.c, syscall.c: Support the alpha.
+ * process.c: Add alpha user offsets.
+ * most files: Use %l? for printf arguments since
+ most are now longs for the alpha.
+ * linux/alpha/{errnoent.h,ioctlent.{h,sh},syscallent.h}:
+ New for the alpha.
+ From Thomas Bogendoerfer <tsbogend@bigbug.franken.de>.
+
+Wed May 15 00:29:37 1996 J. Richard Sladkey <jrs@world.std.com>
+
+ * version.c: Version 3.0.9 is released.
+
+ * config.in, config.sub, install-sh: Upgrade to autoconf 2.10.
+
+ * linux/dummy.h, linux/syscallent.h, linux/syscall.h: Add recent
+ Linux kernel version system calls.
+
+Wed Mar 13 01:03:38 1996 J. Richard Sladkey <jrs@world.std.com>
+
+ * ipc.c [SUNOS4]: Add SunOS support for decoding IPC calls.
+ * syscall.c [SUNOS4]: Compile decode_subcall on SunOS and
+ decode IPC calls using it.
+ * sunos4/dummy.h: Alias sys_semop to printargs.
+ * sunos4/syscall.h: Add new pseudo syscalls for IPC.
+ * sunos4/syscallent.h: Include new subcalls for IPC.
+ From Matthias Pfaller <leo@dachau.marco.de>.
+
+Tue Feb 13 22:08:25 1996 J. Richard Sladkey <jrs@world.std.com>
+
+ * version.c: Version 3.0.8 is released.
+
+ * time.c [LINUX]: Explicitly include linux/version.h.
+
+ * strace.c (main): Don't let them even *try* to
+ get strace to attach to itself since some systems
+ don't handle this case very gracefully.
+ Reported by David S. Miller <davem@caip.rutgers.edu>.
+
+ * Makefile.in (distclean): Fix it for subdirectories.
+
+ * sunos4/syscallent.h, svr4/syscallent.h: Fill in the new
+ sys_flags member for each defined system call.
+
+Fri Dec 8 01:17:28 1995 Rick Sladkey <jrs@world.std.com>
+
+ * defs.h (TRACE_*): New flags to describe what class
+ of system call each system call is.
+ (sysent): Add sys_flags member.
+ * syscall.c (sysent): Define (and later undef) abbreviations
+ for the system call class flags.
+ (lookup_class): New function to translate strings to
+ system call class flags.
+ (qualify): Handle new system call class mechanism.
+ * linux/syscallent.h: Fill in the new sys_flags member
+ for each defined system call.
+
+ * defs.h (print_sock): Remove redundant and non-K&R C
+ compatible prototype. From Juergen Weigert
+ <jnweiger@immd4.informatik.uni-erlangen.de>.
+
+Thu Dec 7 01:17:40 1995 Rick Sladkey <jrs@world.std.com>
+
+ * linux/ioctlent.sh: Tweak to improve ioctl accuracy.
+ From Michael E Chastain <mec@duracef.shout.net>.
+
+ * system.c (includes) [LINUX]: Add linux/nfs.h for recent
+ kernels. From Michael E Chastain <mec@duracef.shout.net>.
+
+Wed Dec 6 21:52:28 1995 Rick Sladkey <jrs@world.std.com>
+
+ * file.c (sprintfstype): Enclose string result in double
+ quotes.
+
+ * time.c (sys_adjtimex) [LINUX]: Conditionalize
+ constantly evolving timex structure.
+ From Aaron Ucko <UCKO@VAX1.ROCKHURST.EDU>.
+
+ * defs.h, syscall.c, strace.c: Rename syscall to
+ trace_syscall and change prototype and all callers
+ because of broken Linux shared libraries.
+ From Aaron Ucko <UCKO@VAX1.ROCKHURST.EDU>.
+
+ * Makefile.in (clean): Check for a file with test -f not
+ test -d. From Aaron Ucko <UCKO@VAX1.ROCKHURST.EDU>.
+
+Tue Sep 26 02:32:31 1995 Rick Sladkey <jrs@world.std.com>
+
+ * version.c: Version 3.0.7 is released.
+
+ * util.c (string_quote): Fix thinko which caused core
+ dumps for strings with quotes in them.
+ Reported by Marty Leisner <leisner@sdsp.mc.xerox.com>.
+
+ * linux/Makefile.in (errnoent.h rule): Grab all errno.h
+ files from /usr/include, not just the linux one.
+ From Michael E Chastain <mec@duracef.shout.net>.
+
+ * linux/errnoent.sh: Total rewrite to handle more ioctls with
+ fewer false positives on more kernel flavors.
+ From Michael E Chastain <mec@duracef.shout.net>.
+
+Mon Sep 4 01:29:22 1995 Rick Sladkey <jrs@world.std.com>
+
+ * version.c: Version 3.0.6 is released.
+
+ * linux/dummy.h, linux/syscall.h, linux/syscallent.h: Add
+ sys_msync.
+ * mem.c (mctl_funcs, mctl_lockas, sys_mctl): Conditionalize
+ on MC_SYNC instead of HAVE_MCTL.
+ (mctl_sync): Conditionalize on MS_ASYNC instead of HAVE_MCTL.
+ (sys_msync): New function.
+
+Sat Sep 2 12:06:04 1995 Rick Sladkey <jrs@world.std.com>
+
+ * linux/dummy.h, linux/syscall.h, linux/syscallent.h: Add
+ sys_flock and sys_getdents.
+ * desc.c (flockcmds, sys_flock): Conditionalize on LOCK_SH
+ not SUNOS4.
+ * file.c (sys_getdents): Define unconditionally and handle
+ LINUX case.
+ * strace.c (main): Disallow username option unless both real
+ and effective uids are root.
+
+Wed Aug 30 01:29:58 1995 Rick Sladkey <jrs@world.std.com>
+
+ * strace.c (main): Ensure that run_uid and run_gid are
+ always set to something meaningful.
+ (main, newoutf) [!SVR4]: Swap real and effective uids while
+ opening any output files.
+ (main) [!SVR4]: Treat effective uid of root as a request
+ to handle suid binaries correctly using the real uid of
+ the invoking user.
+
+Sat Aug 19 00:06:08 1995 Rick Sladkey <jrs@world.std.com>
+
+ * Makefile.in: Add `|| true' to clean rule because
+ although GNU make 3.74 uses `sh -c' to invoke commands
+ every other make in the world uses `sh -ec'.
+
+ * syscall.c (syscall) [SVR4, MIPS]: The fifth and subsequent
+ arguments appear to be stored on the stack, not in the
+ registers following A3 (empirical result).
+
+ * defs.h: Add prototype for printsock.
+ * svr4/dummy.h: Remove generic handling of sys_mount.
+ * system.c [SVR4, MIPS]: Include several system headers to cleanly
+ get access to SGI mount information.
+ (mount_flags, nfs_flags) [SVR4, MIPS]: New objects.
+ (sys_mount) [SVR4, MIPS]: New function.
+ (sys_mount) [SVR4, !MIPS]: New function.
+
+Tue Jul 4 00:30:34 1995 Rick Sladkey <jrs@world.std.com>
+
+ * version.c: Version 3.0.5 is released.
+
+ * desc.c, resource.c, strace.c, syscall.c, time.c: Cast tv_sec and
+ tv_usec members to long when using printf.
+
+ * ipc.c: Omit define of __KERNEL__.
+ ({MSG,SEM,SHM}_{STAT,INFO}): Explicitly define those things we
+ want which __KERNEL__ used to provide.
+ (sys_msgrcv): Change reference to ipc_kludge structure to
+ look-alike ipc_wrapper to avoid dependence on __KERNEL__.
+
+ mem.c (mmap_flags) [MAP_{GROWSDOWN,DENYWRITE,EXECUTABLE}]: Add
+ Linux specific options.
+
+ syscall.c: Use SYS_ERRLIST_DECLARED instead of guessing.
+ [E{RESTART{SYS,NO{INTR,HAND}},NOIOCTLCMD}]: Explicitly define
+ instead of depending of __KERNEL__.
+
+ term.c: Cast c_{i,o,c,l}flag to long when using printf.
+
+Tue Jun 6 00:27:48 1995 Rick Sladkey <jrs@world.std.com>
+
+ * aclocal.m4 (AC_DECL_SYS_ERRLIST, AC_DECL__SYS_SIGLIST): New.
+ * configure.in: Call AC_DECL_SYS_ERRLIST, AC_DECL_SYS_SIGLIST,
+ and AC_DECL__SYS_SIGLIST.
+ * acconfig.h (SYS_ERRLIST_DECLARED): New.
+ * strace.c (strerror): Use SYS_ERRLIST_DECLARED.
+ (strsignal): Use SYS_SIGLIST_DECLARED.
+
+ net.c (sys_socket): Omit inadvertent surplus comma when
+ protocol family isn't PF_INET.
+
+ util.c (dumpstr): Fix incorrect printing of one too many
+ characters when the length is not an even multiple of 16 bytes.
+ Reported by Juergen Weigert
+ <jnweiger@immd4.informatik.uni-erlangen.de>.
+
+Thu May 4 23:37:47 1995 Rick Sladkey <jrs@world.std.com>
+
+ * ioctl.c (compare): Change prototype to match POSIX qsort.
+ * signal.c (sigishandled) [SVR4]: Omit everything after return.
+ * strace.c (trace) [SVR4]: Break out of for loop instead of
+ returning when finished so final return statement is executed.
+ * syscall.c (internal_syscall): Add more SYS_wait* variations.
+ (syscall) [LINUX]: Correct typo which commented out the M68K
+ argument to ifdef.
+ * util.c (printstr): Cast unsigned char pointer argument
+ to char pointer in umovestr call.
+ (dumpstr): Likewise for umoven.
+
+Wed May 3 01:10:56 1995 Rick Sladkey <jrs@world.std.com>
+
+ * version.c: Version 3.0.4 is released.
+
+ * signal.c (sys_sigblock): Move after the definition of
+ sys_sigsetmask that it calls to avoid an implicit declaration.
+ * stream.c (transport_user_options, transport_server_options):
+ Only needed if TI_BIND is defined.
+ * configure.in: Add -Wno-implicit to WARNFLAGS on SunOS 4.x.
+
+ * process.c (internal_fork) [SVR4]: Fix a typo that omitted
+ the tcp arguement from the call to exiting. Add getrval2
+ check so no fork processing is done in the child.
+ (printwaitn): Initialize exited so that its value is defined
+ for all flows of execution.
+
+Tue May 2 22:39:42 1995 Rick Sladkey <jrs@world.std.com>
+
+ * linux/dummy.h: Add aliases for sysfs, personality, afs_syscall,
+ setfsuid, setfsgid, and _llseek syscalls.
+ * linux/syscall.h: Add prototypes for them.
+ * linux/syscallent.h: Add them to the syscall entries table.
+ * system.c (headers) [LINUX]: Include linux/unistd.h to get __NR_*
+ defines and conditionally include linux/personality.h if
+ __NR_personality is defined.
+ (personality_options) [LINUX]: New table.
+ (sys_personality) [LINUX]: New function.
+
+Tue May 2 00:20:39 1995 Rick Sladkey <jrs@world.std.com>
+
+ * strace.c (trace) [!SVR4]: Change forever loop to one predicated
+ on the number of traced processes so that we can have untraced
+ children (e.g. via popen).
+
+ * strace (main) [!SVR4]: Call fake_execve to get the actual
+ exec and its arguments into the trace.
+ (environ): Declare it.
+ * process.c (fake_execve): New function.
+ (headers): Include sys/syscall.h to get SYS_* defines.
+
+ * process.c (sys_execv, sys_execve): Surround argument annotations
+ with C comment delimiters.
+ (printargv, printargc): The arg vector is an array of char pointers
+ not ints.
+
+ * strace.c (printleader): Also check for multiple -p arguments
+ when deciding whether to print the pid field.
+
+ * strace.c (strerror) [!HAVE_STRERROR]: New function.
+ * defs.h (strerror, strsignal): Add these prototypes if we provide
+ the functions.
+ * configure.in (AC_CHECK_FUNCS): Add strerror.
+
+ * strace.c (main, proc_poller): Add SIGPIPE to the list of caught
+ and blocked signals.
+
+ * strace.c (main): Add username option. Verify they are root before
+ letting them use it. Look up the ids in the password file. Set
+ them just before executing the program.
+ From Reuben Sumner <rasumner@undergrad.math.uwaterloo.ca>.
+
+Sat Apr 29 00:09:56 1995 Rick Sladkey <jrs@world.std.com>
+
+ * version.c: Version 3.0.3 is released.
+
+ * system.c (mount_flags) [LINUX]: Omit duplicated MS_NOSUID entry.
+ From Reuben Sumner <rasumner@undergrad.math.uwaterloo.ca>.
+
+ * strace.c (outfname): Initialize to NULL.
+ (main): Defer output file processing until after arguments.
+ Allow either a pipe or a bang for command arguments.
+ Check if outfname is NULL instead of checking outf for stderr.
+ Reinitialize each startup TCB's outf to fix -p/-o ordering bug.
+ (droptcb): Reset close TCB's outf to NULL instead of stderr.
+ (tprintf): Avoid calling vfprintf if outf is NULL.
+
+ * strace.c (main): Use popen if -o argument begins with a pipe.
+ From Marty Leisner <leisner@sdsp.mc.xerox.com>.
+
+ * process.c (printstatus): Fix a typo where WIFSIGNALED was meant
+ but WIFSTOPPED was used.
+
+ * Makefile.in: Add an EXTRA_DEFS variable and use it in the .c.o
+ rule to prevent the comment from being untrue.
+
+Fri Apr 28 22:01:56 1995 Rick Sladkey <jrs@world.std.com>
+
+ * strace.c (sys_exit): Move follow fork code to internal_exit.
+ (sys_fork): Move follow fork code to internal_fork.
+ (sys_execv, sys_execve): Move follow fork code to internal_exec.
+ (sys_waitpid, sys_wait4): Move follow fork code to internal_wait.
+ (vforking): Remove this static variable and check scno in
+ internal_fork instead.
+ (internal_exit, internal_fork, internal_exec, internal_wait): New
+ functions.
+ * defs.h: Add prototypes for the new internal_* functions.
+ * syscall.c (syscall): Move syscall entering trace qualifier check
+ and reprint checking after context decoding and precede them with
+ a call to internal_syscall. Precede syscall exiting trace
+ qualifier check with a call to internal_syscall.
+ (internal_syscall): New function.
+
+ * defs.h (struct tcb): Make scno signed.
+ * strace.c (syscall) Make u_error signed.
+ [LINUX, I386]: Avoid unsigned cast in eax check.
+ * syscall.c (sys_indir): Make i, scno, and nargs signed.
+ * desc.c (sys_select): Make cumlen unsigned
+
+Mon Apr 24 23:52:47 1995 Rick Sladkey <jrs@world.std.com>
+
+ * net.c (socktypes): Add SOCK_PACKET.
+
+Sun Apr 2 23:50:39 1995 Rick Sladkey <jrs@world.std.com>
+
+ * Makefile (clean): Check explicitly for a Makefile in subdirs
+ before running make in them.
+
+Sun Mar 26 12:37:21 1995 Rick Sladkey <jrs@world.std.com>
+
+ * strace.c [MIPS] (proc_open): Conditionalize run on MIPS.
+ [MIPS] (detach): Initialize error for MIPS case.
+ (trace): Initialize ioctl_result and ioctl_errno for overly helpful
+ compilers.
+ * syscall.c (decode_subcall): Move variable i into conditionals
+ that use use it.
+ * system.c (syssgi_options): Conditionalize SGI_RECVLMSG and
+ SGI_SET_FPDEBUG that SGI decided to drop. I don't have the stomach
+ to change them all.
+ * term.c (term_ioctl): Force [c_[iocl]flags members to long before
+ printing since we don't know what the size of their type is.
+ * util.c [SVR4, MIPS] (umoven): Prevent MIPS from using pread even
+ if autoconf detects it since it seems to either not work or do
+ something else entirely on Irix 5.3.
+
+Sun Mar 26 00:01:11 1995 Rick Sladkey <jrs@world.std.com>
+
+ * version.c: Version 3.0.2 is released.
+ * linux/dummy.h: Make sys_fchdir like sys_close instead of printargs
+ so that the file descriptor arg is decimal.
+
+Sat Mar 25 22:50:13 1995 Rick Sladkey <jrs@world.std.com>
+
+ * net.c [LINUX] (protocols): Explicitly define all IPPROTO_* entries
+ because on Linux they are enumerators.
+
+ * system.c [LINUX] (mount_flags): Handle renaming of MS_SYNC to
+ MS_SYNCHRONOUS.
+
+ * util.c (printxval): When there is no translation, print the actual
+ number first and the the default value as a C comment.
+
+ * net.c (sys_send, sys_sendto, sys_sendmsg, sys_getsockopt,
+ sys_setsockopt): Change first argument from unsigned to signed to
+ cater to the frequent practice of calling system calls with a file
+ descriptor of -1.
+ * mem.c (sys_mmap): Likewise.
+
+Sun Mar 19 13:53:52 1995 Rick Sladkey <jrs@world.std.com>
+
+ * signal.c [LINUX] (signalent): Handle old and new values of SIGIO.
+
+Sun Dec 11 22:51:51 1994 Rick Sladkey <jrs@world.std.com>
+
+ * version.c: Version 3.0.1 is released.
+ * Makefile.in, configure.in, aclocal.m4: Changes for autoconf 2.0.
+ * config.guess, config.guess: Update from the FSF.
+ * install-sh: New from the FSF.
+
+Mon Dec 5 20:51:29 1994 Rick Sladkey <jrs@world.std.com>
+
+ * Makefile.in: Add m68k arch.
+ * acconfig.h (M68K): Add m68k define.
+ * configure.in: Add detection of arch m68k.
+ * process.c [M68K] (struct_user_offsets): Support m68k registers and
+ offsets.
+ * signal.c [M68K] (sigcontext_struct): Support m68k sigcontext
+ structure.
+ [M68K] (sys_sigreturn): Support m68k sigreturn handling.
+ * syscall.c [M68K] (syscall): Support m68k syscall number register
+ and errno in d0 instead of eax.
+ * util.c [M68K] (getpc, printcall, setbpt, clearbpt): Support m68k
+ program counter in PT_PC instead of EIP.
+ [M68K] (LOOP): Support m68k loop instruction.
+ From Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>.
+
+ * mem.c [MAP_ANONYMOUS] (mmap_flags): Correct inadvertent reference
+ to MAP_FIXED instead of MAP_ANONYMOUS.
+ From Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>.
+
+ * signal.c [LINUX] (signalent): Signal 30 is now SIGPWR.
+ From Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>.
+
+Mon Dec 5 01:05:46 1994 Rick Sladkey <jrs@world.std.com>
+
+ * defs.h (tprintf): Fix typo in non-gcc ansi prototype for tprintf.
+ Reported by Thanh Ma <tma@encore.com>.
+
+ * strace.c (cleanup): Send SIGCONT before SIGTERM because Linux
+ 1.1.62 doesn't continue a traced child when the parent exits.
+ Reported by Matt Day <mday@artisoft.com>.
+
+ * system.c [LINUX]: Include netinet/in.h before arpa/inet.h.
+
+ * util.c (printstr): Fix longstanding bug in notating string
+ continuation.
+
+ * strace.c [SVR4] (proc_open): Specifically wait for the child the
+ child to go into the execve syscall to avoid spurious traces.
+ [LINUX] (detach): Conditionalize the status variable.
+
+Sun Dec 4 23:21:42 1994 Rick Sladkey <jrs@world.std.com>
+
+ * Makefile.in: Add mips arch.
+ * acconfig.h (MIPS): Add mips define.
+ * configure.in: Add detection of opsys irix5 and arch mips. Check
+ for prctl function.
+ Check for sys/sysconfig.h header.
+ * defs.h (MAX_ARGS): Bump maximum syscall arguments from 8 to 32.
+ * file.c [SVR4]: Include sys/cred.h.
+ (access_flags): Update access flags for SGI.
+ (sprinttime): Change type of sprinttime argument from unsigned
+ long to time_t.
+ * process.c [HAVE_PRCTL]: Include sys/prctl.h.
+ [HAVE_PRCTL] (prctl_options, sys_prctl): New for SGI.
+ (printsiginfo): Conditionally compile SI_TIMER and SI_MESGQ.
+ Cast si_band member to long before printing.
+ * signal.c (sigact_flags): Add _SA_BSDCALL for SGI.
+ (sigprocmaskcmds): Add SIG_SETMASK32 for SGI.
+ * strace.c [SVR4] [MIPS]:
+ (foobar): New dummy signal handler.
+ (main): Install a dummy signal handler in the child before pausing
+ to work around an SGI bug in PRSABORT.
+ (proc_open): Send a interrupt to the child instead of aborting the
+ syscall which doesn't work on Irix5.2.
+ * svr4/dummy.h: Add new unfinished SGI syscalls
+ (e.g. sys_sysmp, sys_sginap, etc.). Handle some SGI syscalls like
+ existing calls (e.g. sys_ksigaction like sys_sigaction).
+ Printargs does the print thing for sys_sethostid.
+ * svr4/syscall.h: Declare all new SGI syscalls.
+ (SGI_KLUDGE): Define syscall table starting index to be 1 for SGI
+ and add it to all subcall entry points.
+ (SYS_pgrpsys_subcall, SYS_sigcall_subcall, SYS_context): Don't
+ decode as subcalls on MIPS. Instead, use the normal syscalls.
+ * svr4/syscallent.h [MIPS]: Lead syscall table with a dummy entry
+ since SGI syscall numbers are off by one.
+ [MIPS] (sys_pgrpsys): Rename to sys_setpgrp on SGI.
+ [MIPS] (sys_xenix): Rename to sys_syssgi on SGI.
+ [MIPS] (sys_sysmachine): Rename to sys_sysmips on SGI.
+ [MIPS]: Conditionalize SVR4 extension into SGI and Solaris classes.
+ * syscall.c (dumpio): Validate descriptor against MAX_QUALS.
+ [HAVE_PR_SYSCALL] (syscall): Conditionalize SYS_vfork.
+ [MIPS] (syscall): Add SGI section for decoding u_error and u_rval.
+ Add workaround for broken SGI pr_sysarg on syscall entry.
+ [SVR4] (syscall): Conditionalize subcall decoding for
+ SYS_ptrpsys_subcall, SYS_sigcall_subcall and SYS_context_subcall.
+ [SVR4] [MIPS] (getrval2): Handle SGI.
+ * syscallent.sh: Dork the sed line to be choosier about SYS_ lines.
+ * system.c [HAVE_SYSCONFIG_H]: Include sys/sysconfig.h.
+ [MIPS] (syssgi_options, sys_syssgi): New for SGI.
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 0000000..a2c8722
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,181 @@
+Basic Installation
+==================
+
+ These are generic installation instructions.
+
+ The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation. It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions. Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, a file
+`config.cache' that saves the results of its tests to speed up
+reconfiguring, and a file `config.log' containing compiler output
+(useful mainly for debugging `configure').
+
+ If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release. If at some point `config.cache'
+contains results you don't want to keep, you may remove or edit it.
+
+ The file `configure.in' is used to create `configure' by a program
+called `autoconf'. You only need `configure.in' if you want to change
+it or regenerate `configure' using a newer version of `autoconf'.
+
+The simplest way to compile this package is:
+
+ 1. `cd' to the directory containing the package's source code and type
+ `./configure' to configure the package for your system. If you're
+ using `csh' on an old version of System V, you might need to type
+ `sh ./configure' instead to prevent `csh' from trying to execute
+ `configure' itself.
+
+ Running `configure' takes awhile. While running, it prints some
+ messages telling which features it is checking for.
+
+ 2. Type `make' to compile the package.
+
+ 3. Optionally, type `make check' to run any self-tests that come with
+ the package.
+
+ 4. Type `make install' to install the programs and any data files and
+ documentation.
+
+ 5. You can remove the program binaries and object files from the
+ source code directory by typing `make clean'. To also remove the
+ files that `configure' created (so you can compile the package for
+ a different kind of computer), type `make distclean'. There is
+ also a `make maintainer-clean' target, but that is intended mainly
+ for the package's developers. If you use it, you may have to get
+ all sorts of other programs in order to regenerate files that came
+ with the distribution.
+
+Compilers and Options
+=====================
+
+ Some systems require unusual options for compilation or linking that
+the `configure' script does not know about. You can give `configure'
+initial values for variables by setting them in the environment. Using
+a Bourne-compatible shell, you can do that on the command line like
+this:
+ CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
+
+Or on systems that have the `env' program, you can do it like this:
+ env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
+
+Compiling For Multiple Architectures
+====================================
+
+ You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory. To do this, you must use a version of `make' that
+supports the `VPATH' variable, such as GNU `make'. `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script. `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.
+
+ If you have to use a `make' that does not supports the `VPATH'
+variable, you have to compile the package for one architecture at a time
+in the source code directory. After you have installed the package for
+one architecture, use `make distclean' before reconfiguring for another
+architecture.
+
+Installation Names
+==================
+
+ By default, `make install' will install the package's files in
+`/usr/local/bin', `/usr/local/man', etc. You can specify an
+installation prefix other than `/usr/local' by giving `configure' the
+option `--prefix=PATH'.
+
+ You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files. If you
+give `configure' the option `--exec-prefix=PATH', the package will use
+PATH as the prefix for installing programs and libraries.
+Documentation and other data files will still use the regular prefix.
+
+ In addition, if you use an unusual directory layout you can give
+options like `--bindir=PATH' to specify different values for particular
+kinds of files. Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.
+
+ If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+Optional Features
+=================
+
+ Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System). The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+ For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+Specifying the System Type
+==========================
+
+ There may be some features `configure' can not figure out
+automatically, but needs to determine by the type of host the package
+will run on. Usually `configure' can figure that out, but if it prints
+a message saying it can not guess the host type, give it the
+`--host=TYPE' option. TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name with three fields:
+ CPU-COMPANY-SYSTEM
+
+See the file `config.sub' for the possible values of each field. If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the host type.
+
+ If you are building compiler tools for cross-compiling, you can also
+use the `--target=TYPE' option to select the type of system they will
+produce code for and the `--build=TYPE' option to select the type of
+system on which you are compiling the package.
+
+Sharing Defaults
+================
+
+ If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists. Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Operation Controls
+==================
+
+ `configure' recognizes the following options to control how it
+operates.
+
+`--cache-file=FILE'
+ Use and save the results of the tests in FILE instead of
+ `./config.cache'. Set FILE to `/dev/null' to disable caching, for
+ debugging `configure'.
+
+`--help'
+ Print a summary of the options to `configure', and exit.
+
+`--quiet'
+`--silent'
+`-q'
+ Do not print messages saying which checks are being made.
+
+`--srcdir=DIR'
+ Look for the package's source code in directory DIR. Usually
+ `configure' can determine that directory automatically.
+
+`--version'
+ Print the version of Autoconf used to generate the `configure'
+ script, and exit.
+
+`configure' also accepts some other, not widely useful, options.
+
diff --git a/MODULE_LICENSE_BSD b/MODULE_LICENSE_BSD
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/MODULE_LICENSE_BSD
diff --git a/Makefile.am b/Makefile.am
new file mode 100644
index 0000000..d590926
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1,101 @@
+# Automake input for strace.
+
+bin_PROGRAMS = strace
+man_MANS = strace.1
+bin_SCRIPTS = strace-graph
+
+# OS is one of `linux', `sunos4', `svr4', or `freebsd'.
+OS = @opsys@
+# ARCH is `i386', `m68k', `sparc', etc.
+ARCH = @arch@
+
+AM_CFLAGS = $(WARNFLAGS)
+INCLUDES = -I$(OS)/$(ARCH) -I$(srcdir)/$(OS)/$(ARCH) -I$(OS) -I$(srcdir)/$(OS)
+
+strace_SOURCES = strace.c syscall.c util.c desc.c file.c ipc.c \
+ io.c ioctl.c mem.c net.c process.c bjm.c \
+ resource.c signal.c sock.c system.c term.c time.c \
+ proc.c stream.c
+noinst_HEADERS = defs.h
+
+EXTRA_DIST = $(man_MANS) errnoent.sh signalent.sh syscallent.sh ioctlsort.c \
+ debian/changelog debian/control debian/copyright debian/rules \
+ strace.spec \
+ strace-graph COPYRIGHT CREDITS PORTING \
+ README-CVS README-freebsd README-linux README-sunos4 README-svr4 \
+ linux/ioctlsort.c linux/ioctlent.sh \
+ linux/ioctlent.h linux/errnoent.h linux/signalent.h \
+ linux/syscall.h linux/syscallent.h linux/dummy.h \
+ linux/alpha/errnoent.h linux/alpha/ioctlent.h \
+ linux/alpha/signalent.h linux/alpha/syscallent.h \
+ linux/hppa/errnoent.h linux/hppa/ioctlent.h \
+ linux/hppa/signalent.h linux/hppa/syscallent.h \
+ linux/ia64/syscallent.h linux/ia64/errnoent.h \
+ linux/ia64/ioctlent.h linux/ia64/signalent.h \
+ linux/mips/ioctlent.sh linux/mips/errnoent.h \
+ linux/mips/ioctlent.h linux/mips/signalent.h \
+ linux/mips/syscallent.h \
+ linux/powerpc/syscallent.h \
+ linux/powerpc/errnoent.h linux/powerpc/ioctlent.h \
+ linux/powerpc/signalent.h \
+ linux/s390/errnoent.h linux/s390/ioctlent.h \
+ linux/s390/signalent.h linux/s390/syscallent.h \
+ linux/s390x/errnoent.h linux/s390x/ioctlent.h \
+ linux/s390x/signalent.h linux/s390x/syscallent.h \
+ linux/sh/syscallent.h linux/sh/errnoent.h \
+ linux/sh/ioctlent.h linux/sh/signalent.h \
+ linux/sh64/syscallent.h \
+ linux/sparc/dummy2.h \
+ linux/sparc/errnoent.h linux/sparc/errnoent1.h \
+ linux/sparc/ioctlent.h linux/sparc/ioctlent1.h \
+ linux/sparc/signalent.h linux/sparc/signalent1.h \
+ linux/sparc/syscall.h linux/sparc/syscall1.h \
+ linux/sparc/syscallent.h linux/sparc/syscallent1.h \
+ linux/sparc/gen.pl linux/sparc/syscall.h.2 \
+ linux/sparc64/dummy2.h linux/sparc64/errnoent.h \
+ linux/sparc64/errnoent1.h linux/sparc64/errnoent2.h \
+ linux/sparc64/ioctlent.h linux/sparc64/ioctlent1.h \
+ linux/sparc64/ioctlent2.h linux/sparc64/signalent.h \
+ linux/sparc64/signalent1.h linux/sparc64/signalent2.h \
+ linux/sparc64/syscall.h linux/sparc64/syscall1.h \
+ linux/sparc64/syscallent.h linux/sparc64/syscallent1.h \
+ linux/sparc64/syscallent2.h \
+ linux/x86_64/syscallent.h linux/x86_64/gentab.pl \
+ linux/x86_64/errnoent1.h linux/x86_64/ioctlent1.h \
+ linux/x86_64/signalent1.h linux/x86_64/syscallent1.h \
+ freebsd/ioctlent.sh \
+ freebsd/syscalls.cat freebsd/syscalls.pl freebsd/syscalls.print \
+ freebsd/i386/errnoent.h freebsd/i386/ioctlent.h \
+ freebsd/i386/signalent.h \
+ freebsd/i386/syscall.h freebsd/i386/syscallent.h \
+ sunos4/dummy.h sunos4/errnoent.h \
+ sunos4/ioctlent.h sunos4/ioctlent.sh sunos4/signalent.h \
+ sunos4/syscall.h sunos4/syscallent.h \
+ svr4/dummy.h svr4/errnoent.h svr4/ioctlent.h svr4/ioctlent.sh \
+ svr4/signalent.h svr4/syscall.h svr4/syscallent.h
+
+if MAINTAINER_MODE
+if LINUX
+
+IOCTLDIR = /usr/include
+IOCTLASM = asm
+
+if I386
+ioctlent_h = linux/ioctlent.h
+else
+ioctlent_h = linux/$(ARCH)/ioctlent.h
+endif
+
+BUILT_SOURCES = $(ioctlent_h)
+
+$(srcdir)/$(ioctlent_h): ioctlsort
+ $(<D)/$(<F) > $@
+ioctlsort: $(srcdir)/linux/ioctlsort.c ioctls.h ioctldefs.h
+ $(filter-out -I%,$(LINK.c)) -I. -I$(IOCTLDIR) $(filter -I%,$(LINK.c)) \
+ -o $@ $<
+ioctls.h: $(srcdir)/linux/ioctlent.sh
+ $(SHELL) $< $(IOCTLDIR) $(IOCTLASM)
+ioctldefs.h: ioctls.h ;
+
+endif
+endif
diff --git a/Makefile.in b/Makefile.in
new file mode 100644
index 0000000..9be0641
--- /dev/null
+++ b/Makefile.in
@@ -0,0 +1,760 @@
+# Makefile.in generated by automake 1.9.5 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# Automake input for strace.
+
+
+
+SOURCES = $(strace_SOURCES)
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = .
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+bin_PROGRAMS = strace$(EXEEXT)
+DIST_COMMON = README $(am__configure_deps) $(noinst_HEADERS) \
+ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(srcdir)/config.h.in $(top_srcdir)/configure AUTHORS \
+ ChangeLog INSTALL NEWS TODO config.guess config.sub depcomp \
+ install-sh missing mkinstalldirs
+subdir = .
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno configure.status.lineno
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = config.h
+CONFIG_CLEAN_FILES =
+am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" \
+ "$(DESTDIR)$(man1dir)"
+binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
+PROGRAMS = $(bin_PROGRAMS)
+am_strace_OBJECTS = strace.$(OBJEXT) syscall.$(OBJEXT) util.$(OBJEXT) \
+ desc.$(OBJEXT) file.$(OBJEXT) ipc.$(OBJEXT) io.$(OBJEXT) \
+ ioctl.$(OBJEXT) mem.$(OBJEXT) net.$(OBJEXT) process.$(OBJEXT) \
+ bjm.$(OBJEXT) resource.$(OBJEXT) signal.$(OBJEXT) \
+ sock.$(OBJEXT) system.$(OBJEXT) term.$(OBJEXT) time.$(OBJEXT) \
+ proc.$(OBJEXT) stream.$(OBJEXT)
+strace_OBJECTS = $(am_strace_OBJECTS)
+strace_LDADD = $(LDADD)
+binSCRIPT_INSTALL = $(INSTALL_SCRIPT)
+SCRIPTS = $(bin_SCRIPTS)
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I.
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+SOURCES = $(strace_SOURCES)
+DIST_SOURCES = $(strace_SOURCES)
+man1dir = $(mandir)/man1
+NROFF = nroff
+MANS = $(man_MANS)
+HEADERS = $(noinst_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+am__remove_distdir = \
+ { test ! -d $(distdir) \
+ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
+ && rm -fr $(distdir); }; }
+DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2
+GZIP_ENV = --best
+distuninstallcheck_listfiles = find . -type f -print
+distcleancheck_listfiles = find . -type f -print
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FREEBSD_FALSE = @FREEBSD_FALSE@
+FREEBSD_TRUE = @FREEBSD_TRUE@
+I386_FALSE = @I386_FALSE@
+I386_TRUE = @I386_TRUE@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LINUX_FALSE = @LINUX_FALSE@
+LINUX_TRUE = @LINUX_TRUE@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
+MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
+MAKEINFO = @MAKEINFO@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+SUNOS4_FALSE = @SUNOS4_FALSE@
+SUNOS4_TRUE = @SUNOS4_TRUE@
+SVR4_FALSE = @SVR4_FALSE@
+SVR4_TRUE = @SVR4_TRUE@
+VERSION = @VERSION@
+WARNFLAGS = @WARNFLAGS@
+X86_64_FALSE = @X86_64_FALSE@
+X86_64_TRUE = @X86_64_TRUE@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+arch = @arch@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+opsys = @opsys@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+man_MANS = strace.1
+bin_SCRIPTS = strace-graph
+
+# OS is one of `linux', `sunos4', `svr4', or `freebsd'.
+OS = @opsys@
+# ARCH is `i386', `m68k', `sparc', etc.
+ARCH = @arch@
+AM_CFLAGS = $(WARNFLAGS)
+INCLUDES = -I$(OS)/$(ARCH) -I$(srcdir)/$(OS)/$(ARCH) -I$(OS) -I$(srcdir)/$(OS)
+strace_SOURCES = strace.c syscall.c util.c desc.c file.c ipc.c \
+ io.c ioctl.c mem.c net.c process.c bjm.c \
+ resource.c signal.c sock.c system.c term.c time.c \
+ proc.c stream.c
+
+noinst_HEADERS = defs.h
+EXTRA_DIST = $(man_MANS) errnoent.sh signalent.sh syscallent.sh ioctlsort.c \
+ debian/changelog debian/control debian/copyright debian/rules \
+ strace.spec \
+ strace-graph COPYRIGHT CREDITS PORTING \
+ README-CVS README-freebsd README-linux README-sunos4 README-svr4 \
+ linux/ioctlsort.c linux/ioctlent.sh \
+ linux/ioctlent.h linux/errnoent.h linux/signalent.h \
+ linux/syscall.h linux/syscallent.h linux/dummy.h \
+ linux/alpha/errnoent.h linux/alpha/ioctlent.h \
+ linux/alpha/signalent.h linux/alpha/syscallent.h \
+ linux/hppa/errnoent.h linux/hppa/ioctlent.h \
+ linux/hppa/signalent.h linux/hppa/syscallent.h \
+ linux/ia64/syscallent.h linux/ia64/errnoent.h \
+ linux/ia64/ioctlent.h linux/ia64/signalent.h \
+ linux/mips/ioctlent.sh linux/mips/errnoent.h \
+ linux/mips/ioctlent.h linux/mips/signalent.h \
+ linux/mips/syscallent.h \
+ linux/powerpc/syscallent.h \
+ linux/powerpc/errnoent.h linux/powerpc/ioctlent.h \
+ linux/powerpc/signalent.h \
+ linux/s390/errnoent.h linux/s390/ioctlent.h \
+ linux/s390/signalent.h linux/s390/syscallent.h \
+ linux/s390x/errnoent.h linux/s390x/ioctlent.h \
+ linux/s390x/signalent.h linux/s390x/syscallent.h \
+ linux/sh/syscallent.h linux/sh/errnoent.h \
+ linux/sh/ioctlent.h linux/sh/signalent.h \
+ linux/sh64/syscallent.h \
+ linux/sparc/dummy2.h \
+ linux/sparc/errnoent.h linux/sparc/errnoent1.h \
+ linux/sparc/ioctlent.h linux/sparc/ioctlent1.h \
+ linux/sparc/signalent.h linux/sparc/signalent1.h \
+ linux/sparc/syscall.h linux/sparc/syscall1.h \
+ linux/sparc/syscallent.h linux/sparc/syscallent1.h \
+ linux/sparc/gen.pl linux/sparc/syscall.h.2 \
+ linux/sparc64/dummy2.h linux/sparc64/errnoent.h \
+ linux/sparc64/errnoent1.h linux/sparc64/errnoent2.h \
+ linux/sparc64/ioctlent.h linux/sparc64/ioctlent1.h \
+ linux/sparc64/ioctlent2.h linux/sparc64/signalent.h \
+ linux/sparc64/signalent1.h linux/sparc64/signalent2.h \
+ linux/sparc64/syscall.h linux/sparc64/syscall1.h \
+ linux/sparc64/syscallent.h linux/sparc64/syscallent1.h \
+ linux/sparc64/syscallent2.h \
+ linux/x86_64/syscallent.h linux/x86_64/gentab.pl \
+ linux/x86_64/errnoent1.h linux/x86_64/ioctlent1.h \
+ linux/x86_64/signalent1.h linux/x86_64/syscallent1.h \
+ freebsd/ioctlent.sh \
+ freebsd/syscalls.cat freebsd/syscalls.pl freebsd/syscalls.print \
+ freebsd/i386/errnoent.h freebsd/i386/ioctlent.h \
+ freebsd/i386/signalent.h \
+ freebsd/i386/syscall.h freebsd/i386/syscallent.h \
+ sunos4/dummy.h sunos4/errnoent.h \
+ sunos4/ioctlent.h sunos4/ioctlent.sh sunos4/signalent.h \
+ sunos4/syscall.h sunos4/syscallent.h \
+ svr4/dummy.h svr4/errnoent.h svr4/ioctlent.h svr4/ioctlent.sh \
+ svr4/signalent.h svr4/syscall.h svr4/syscallent.h
+
+@LINUX_TRUE@@MAINTAINER_MODE_TRUE@IOCTLDIR = /usr/include
+@LINUX_TRUE@@MAINTAINER_MODE_TRUE@IOCTLASM = asm
+@I386_FALSE@@LINUX_TRUE@@MAINTAINER_MODE_TRUE@ioctlent_h = linux/$(ARCH)/ioctlent.h
+@I386_TRUE@@LINUX_TRUE@@MAINTAINER_MODE_TRUE@ioctlent_h = linux/ioctlent.h
+@LINUX_TRUE@@MAINTAINER_MODE_TRUE@BUILT_SOURCES = $(ioctlent_h)
+all: $(BUILT_SOURCES) config.h
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .o .obj
+am--refresh:
+ @:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \
+ cd $(srcdir) && $(AUTOMAKE) --foreign \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --foreign Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ echo ' $(SHELL) ./config.status'; \
+ $(SHELL) ./config.status;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ $(SHELL) ./config.status --recheck
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(srcdir) && $(AUTOCONF)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+
+config.h: stamp-h1
+ @if test ! -f $@; then \
+ rm -f stamp-h1; \
+ $(MAKE) stamp-h1; \
+ else :; fi
+
+stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
+ @rm -f stamp-h1
+ cd $(top_builddir) && $(SHELL) ./config.status config.h
+$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_srcdir) && $(AUTOHEADER)
+ rm -f stamp-h1
+ touch $@
+
+distclean-hdr:
+ -rm -f config.h stamp-h1
+install-binPROGRAMS: $(bin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
+ @list='$(bin_PROGRAMS)'; for p in $$list; do \
+ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ if test -f $$p \
+ ; then \
+ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
+ echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
+ $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
+ else :; fi; \
+ done
+
+uninstall-binPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(bin_PROGRAMS)'; for p in $$list; do \
+ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+ echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
+ rm -f "$(DESTDIR)$(bindir)/$$f"; \
+ done
+
+clean-binPROGRAMS:
+ -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+strace$(EXEEXT): $(strace_OBJECTS) $(strace_DEPENDENCIES)
+ @rm -f strace$(EXEEXT)
+ $(LINK) $(strace_LDFLAGS) $(strace_OBJECTS) $(strace_LDADD) $(LIBS)
+install-binSCRIPTS: $(bin_SCRIPTS)
+ @$(NORMAL_INSTALL)
+ test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
+ @list='$(bin_SCRIPTS)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ if test -f $$d$$p; then \
+ f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
+ echo " $(binSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(bindir)/$$f'"; \
+ $(binSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(bindir)/$$f"; \
+ else :; fi; \
+ done
+
+uninstall-binSCRIPTS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(bin_SCRIPTS)'; for p in $$list; do \
+ f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
+ echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
+ rm -f "$(DESTDIR)$(bindir)/$$f"; \
+ done
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bjm.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/desc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/io.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mem.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/proc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/process.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/resource.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signal.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sock.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stream.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/syscall.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/system.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/term.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/time.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/util.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+uninstall-info-am:
+install-man1: $(man1_MANS) $(man_MANS)
+ @$(NORMAL_INSTALL)
+ test -z "$(man1dir)" || $(mkdir_p) "$(DESTDIR)$(man1dir)"
+ @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
+ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
+ for i in $$l2; do \
+ case "$$i" in \
+ *.1*) list="$$list $$i" ;; \
+ esac; \
+ done; \
+ for i in $$list; do \
+ if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
+ else file=$$i; fi; \
+ ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+ case "$$ext" in \
+ 1*) ;; \
+ *) ext='1' ;; \
+ esac; \
+ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ inst=`echo $$inst | sed -e 's/^.*\///'`; \
+ inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \
+ done
+uninstall-man1:
+ @$(NORMAL_UNINSTALL)
+ @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
+ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
+ for i in $$l2; do \
+ case "$$i" in \
+ *.1*) list="$$list $$i" ;; \
+ esac; \
+ done; \
+ for i in $$list; do \
+ ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+ case "$$ext" in \
+ 1*) ;; \
+ *) ext='1' ;; \
+ esac; \
+ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ inst=`echo $$inst | sed -e 's/^.*\///'`; \
+ inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+ echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \
+ rm -f "$(DESTDIR)$(man1dir)/$$inst"; \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @case `sed 15q $(srcdir)/NEWS` in \
+ *"$(VERSION)"*) : ;; \
+ *) \
+ echo "NEWS not updated; not releasing" 1>&2; \
+ exit 1;; \
+ esac
+ $(am__remove_distdir)
+ mkdir $(distdir)
+ $(mkdir_p) $(distdir)/debian $(distdir)/freebsd $(distdir)/freebsd/i386 $(distdir)/linux $(distdir)/linux/alpha $(distdir)/linux/hppa $(distdir)/linux/ia64 $(distdir)/linux/mips $(distdir)/linux/powerpc $(distdir)/linux/s390 $(distdir)/linux/s390x $(distdir)/linux/sh $(distdir)/linux/sh64 $(distdir)/linux/sparc $(distdir)/linux/sparc64 $(distdir)/linux/x86_64 $(distdir)/sunos4 $(distdir)/svr4
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+ list='$(DISTFILES)'; for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+ esac; \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+ -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
+ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+ ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
+ || chmod -R a+r $(distdir)
+dist-gzip: distdir
+ tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ $(am__remove_distdir)
+dist-bzip2: distdir
+ tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+ $(am__remove_distdir)
+
+dist-tarZ: distdir
+ tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+ $(am__remove_distdir)
+
+dist-shar: distdir
+ shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+ $(am__remove_distdir)
+
+dist-zip: distdir
+ -rm -f $(distdir).zip
+ zip -rq $(distdir).zip $(distdir)
+ $(am__remove_distdir)
+
+dist dist-all: distdir
+ tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+ $(am__remove_distdir)
+
+# This target untars the dist file and tries a VPATH configuration. Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+ case '$(DIST_ARCHIVES)' in \
+ *.tar.gz*) \
+ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
+ *.tar.bz2*) \
+ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
+ *.tar.Z*) \
+ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+ *.shar.gz*) \
+ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
+ *.zip*) \
+ unzip $(distdir).zip ;;\
+ esac
+ chmod -R a-w $(distdir); chmod a+w $(distdir)
+ mkdir $(distdir)/_build
+ mkdir $(distdir)/_inst
+ chmod a-w $(distdir)
+ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+ && cd $(distdir)/_build \
+ && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+ $(DISTCHECK_CONFIGURE_FLAGS) \
+ && $(MAKE) $(AM_MAKEFLAGS) \
+ && $(MAKE) $(AM_MAKEFLAGS) dvi \
+ && $(MAKE) $(AM_MAKEFLAGS) check \
+ && $(MAKE) $(AM_MAKEFLAGS) install \
+ && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+ && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+ distuninstallcheck \
+ && chmod -R a-w "$$dc_install_base" \
+ && ({ \
+ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+ } || { rm -rf "$$dc_destdir"; exit 1; }) \
+ && rm -rf "$$dc_destdir" \
+ && $(MAKE) $(AM_MAKEFLAGS) dist \
+ && rm -rf $(DIST_ARCHIVES) \
+ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
+ $(am__remove_distdir)
+ @(echo "$(distdir) archives ready for distribution: "; \
+ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+ sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
+distuninstallcheck:
+ @cd $(distuninstallcheck_dir) \
+ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+ || { echo "ERROR: files left after uninstall:" ; \
+ if test -n "$(DESTDIR)"; then \
+ echo " (check DESTDIR support)"; \
+ fi ; \
+ $(distuninstallcheck_listfiles) ; \
+ exit 1; } >&2
+distcleancheck: distclean
+ @if test '$(srcdir)' = . ; then \
+ echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+ exit 1 ; \
+ fi
+ @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+ || { echo "ERROR: files left in build directory after distclean:" ; \
+ $(distcleancheck_listfiles) ; \
+ exit 1; } >&2
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(PROGRAMS) $(SCRIPTS) $(MANS) $(HEADERS) config.h
+installdirs:
+ for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \
+ test -z "$$dir" || $(mkdir_p) "$$dir"; \
+ done
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-hdr distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-man
+
+install-exec-am: install-binPROGRAMS install-binSCRIPTS
+
+install-info: install-info-am
+
+install-man: install-man1
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -rf $(top_srcdir)/autom4te.cache
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS \
+ uninstall-info-am uninstall-man
+
+uninstall-man: uninstall-man1
+
+.PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \
+ clean-binPROGRAMS clean-generic ctags dist dist-all dist-bzip2 \
+ dist-gzip dist-shar dist-tarZ dist-zip distcheck distclean \
+ distclean-compile distclean-generic distclean-hdr \
+ distclean-tags distcleancheck distdir distuninstallcheck dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-binPROGRAMS install-binSCRIPTS install-data \
+ install-data-am install-exec install-exec-am install-info \
+ install-info-am install-man install-man1 install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
+ uninstall-am uninstall-binPROGRAMS uninstall-binSCRIPTS \
+ uninstall-info-am uninstall-man uninstall-man1
+
+
+@LINUX_TRUE@@MAINTAINER_MODE_TRUE@$(srcdir)/$(ioctlent_h): ioctlsort
+@LINUX_TRUE@@MAINTAINER_MODE_TRUE@ $(<D)/$(<F) > $@
+@LINUX_TRUE@@MAINTAINER_MODE_TRUE@ioctlsort: $(srcdir)/linux/ioctlsort.c ioctls.h ioctldefs.h
+@LINUX_TRUE@@MAINTAINER_MODE_TRUE@ $(filter-out -I%,$(LINK.c)) -I. -I$(IOCTLDIR) $(filter -I%,$(LINK.c)) \
+@LINUX_TRUE@@MAINTAINER_MODE_TRUE@ -o $@ $<
+@LINUX_TRUE@@MAINTAINER_MODE_TRUE@ioctls.h: $(srcdir)/linux/ioctlent.sh
+@LINUX_TRUE@@MAINTAINER_MODE_TRUE@ $(SHELL) $< $(IOCTLDIR) $(IOCTLASM)
+@LINUX_TRUE@@MAINTAINER_MODE_TRUE@ioctldefs.h: ioctls.h ;
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/NEWS b/NEWS
new file mode 100644
index 0000000..264142b
--- /dev/null
+++ b/NEWS
@@ -0,0 +1,201 @@
+Changes in 4.5.12
+==============
+* Bug fixes.
+* Better x86-64 support for IA32 processes.
+* Update PowerPC system calls.
+* Better printing for Linux aio system calls.
+
+Changes in 4.5.11
+==============
+* Quick fix release for build issues.
+* One fix for Linux/ARM system call table.
+
+Changes in 4.5.10
+==============
+* Bug fixes.
+* Print fault address for SIGSEGV/SIGBUS signals when available.
+
+Changes in 4.5.9
+==============
+* Bug fixes.
+* Improve socket ioctl printing.
+* Update Linux/IA64 syscall list.
+* Fix Linux/x86-64 syscall argument extraction for 32-bit processes.
+* Improve mount flags printing.
+* Support symbolic printing of x86_64 arch_prctl parameters.
+
+Changes in 4.5.8
+==============
+* Bug fixes.
+* Update syscall tables for Alpha, ARM, HPPA.
+* Support new Linux syscalls mbind, set_mempolicy, get_mempolicy, waitid.
+* Support Linux syscalls fadvise64, fadvise64_64, and epoll_*.
+* Improve ioctl command name matching.
+* Print RTC_* ioctl structure contents.
+* Support newer RLIMIT_* values.
+* Print struct cmsghdr details in sendmsg.
+
+Changes in 4.5.7
+==============
+* Bug fixes.
+* Print attribute values in *xattr system calls on Linux.
+* Include pread and pwrite calls in -e read and -e write tracing.
+* Update SO_* and IP_* value lists and add IPV6_* values for socket options.
+* Print clock_t values symbolically in Linux clock_* system calls.
+
+Changes in 4.5.6
+==============
+* Bug fixes, Linux ioctl updates.
+* David Miller contributed support for Linux/SPARC64.
+
+Changes in 4.5.5
+==============
+* Just bug fixes.
+
+Changes in 4.5.4
+==============
+* Update Linux ioctl lists.
+* Update PF_* and AF_* value lists.
+* The 4.5.3 -p behavior for NPTL threads applies only under -f, and got fixed.
+
+Changes in 4.5.3
+==============
+* Bug fixes.
+* On Linux using NPTL threads, -p will now attach to all threads in a process.
+* Handle new mq_* system calls in Linux 2.6.6 and later.
+
+Changes in 4.5.2
+==============
+* Bug fixes.
+* Report some new VM_* bit values on Linux.
+* Better output for Linux sched_* system calls.
+
+Changes in 4.5.1
+==============
+* Bug fixes.
+* Display multiple ioctl name matches on Linux.
+
+Changes in 4.5
+==============
+* New port to AMD's x86-64 architecture. One strace binary can
+ handle both new x86-64 and old i386 processes.
+* Fixed support for LFS64 calls.
+* New switch -E to add/remove environment variables for the command.
+* Merged s390/s390x port.
+* Trace an unbounded number of processes.
+* Handle numerous new system calls in Linux 2.5, and new threads semantics.
+* Fixed bugs with attach/detach leaving things stopped.
+* Fixed traced process seeing ECHILD despite live, traced children
+ in waitpid calls with WNOHANG.
+* Stuart Menefy contributed a port to Linux/SH.
+* Stephen Thomas contributed a port to Linux/SH64.
+* Many other bug fixes.
+
+Changes in 4.4
+==============
+* Fix Linux/ia64 support, looks like someone renamed a few things on us
+* Fix the ioctl setup for Linux, turned out it did not really work.
+ Improve the ioctl extracter as well so we decode some more ones.
+
+Changes in 4.3.1
+================
+* compile fixes for Linux/mips
+
+Changes in 4.3
+==============
+* Linux ia64 and hppa ports added
+* The usual Linux syscall updates (includes 32bit uid/gid support),
+* Linux ioctl list updated
+* Support IPv6 scope ids
+* FreeBSD/i386 port added
+* UnixWare and Solaris updates
+* Better support for tracing multithreaded processes in Linux
+
+Changes in 4.2
+==============
+* Compiles on glibc2.0 systems again
+* Linux/S390 port added
+* The usual Linux syscall updates
+* we can follow fork on arm now
+
+Changes in 4.1
+================
+* Linux/MIPS port added
+* Lots of Linux updates again
+* Improved IPv6 support
+* Add strace-graph
+
+Changes in 4.0.1
+================
+* Minor bugfixes
+* Compiles on glibc2.0 systems again
+
+Changes in 4.0
+==============
+* Get stat structure properly on Linux 64bit archs
+* Personalities work again
+* Compile correctly on SunOS again
+* IRIX64 updates
+* Solaris updates
+
+Changes in 3.99.1
+=================
+* Linux (ultra)sparc fixes
+* Linux alpha fixes
+* Minor cleanups
+
+Changes in 3.99
+===============
+* New maintainer
+* add support for more Linux architectures (powerpc, sparc, arm)
+* support lots more Linux syscalls
+* fix signal handling
+* add IPX and IPIP support
+* check stray syscall after execv
+* fix hanging children
+
+Changes in version 3.1
+======================
+
+* Irix5 is supported
+* Linux 68k is supported
+* Linux alpha is supported
+* configure is upgraded to autoconf 2.x
+* using -f in combination with -e now works correctly
+* output can be piped to a program
+* tracing setuid programs works better
+* it is now reasonable to install strace setuid to root in some circumstances
+* new useful tracing names like file and process to trace whole
+ classes of system calls, e.g. -efile traces all system calls that
+ take a file name as an argument
+* IPC calls on SunOS 4.1.x are decoded
+* Linux program memory is reliably dereferenced
+* Linux decodes at least the name of all syscalls as of pre2.0.4
+* various cosmetic changes and bug fixes
+
+Changes from versions 2.x to version 3.0
+========================================
+
+* filename arguments are neither abbreviated nor stringified
+* string arguments are now true C strings using octal instead of hex by default
+* preprocessor constants are never shortened (e.g. was RDONLY => now O_RDONLY)
+* by default the output for multiple processes now goes into one file
+* all structures, vectors, bitsets, etc. use consistent output formats
+* the -c option now means count calls, -i does what the old -c used to do
+
+New Features in version 3.0
+===========================
+
+* non-ascii strings can be optionally printed entirely in hex
+* the output format is readable when mutiple processes are generating output
+* exit values are printed in an alignment column
+* is is possible to suppress messages about attaching and detaching
+* various tracing features can be enabled on a per syscall/signal/desc basis
+* selective tracing of syscalls
+* selective printing of syscall structures
+* selective abbreviation of long structures on a per syscall basis
+* selective printing of raw syscall arguments and results
+* selective tracing of signals
+* selective dumping of all I/O read from file descriptors
+* selective dumping of all I/O written to file descriptors
+* optional counting of time, calls, and errors for each syscall
diff --git a/PORTING b/PORTING
new file mode 100644
index 0000000..aef4ce4
--- /dev/null
+++ b/PORTING
@@ -0,0 +1,70 @@
+I am frequently asked to port strace to a given platform. Less
+frequently I am asked how one would go about porting strace to a given
+platform. :-) Since I have ported strace to a few platforms already I
+have some advice to the would-be strace porter.
+
+The number one question is ``Does the native operating support a
+concept which enables even the mere possibility of tracing?''. So far
+I have seen two mechanisms which support system call tracing. They
+are the SunOS originated feature of the PTRACE_SYSCALL argument to the
+ptrace system call and the PIOCSENTRY/PIOCSEXIT ioctl for the /proc
+filesystem under System V release 4 style Unix derived systems. There
+may be others (surely a better one could be devised :-) but innovation
+is a rare commodity so unless one of these is supported you may be
+SOL.
+
+Therefore the first step is to try `man 2 ptrace' and `man 4 proc' to
+see if there is even a glimmer of hope. Without assistance from the
+operating system, system call tracing is a lost cause. If there is a
+native system call tracing program (however pathetic it might be :-),
+you may be able to use it to trace itself to determine what mechanism
+it is using for tracing the system calls of another process. If the
+interface is documented you should be a happy camper. Otherwise,
+unless you can tolerate the thought of many thankless hours
+single-stepping in a debugger with little or nothing to show for it,
+you should consider other tasks to distract you from your friends,
+family, education, job, spouse and/or significant other.
+
+If you have arrived here, your OS should have ptrace or proc or you
+should have a high tolerance for pain. Then again, curious but
+detached readers are invited to continue with little to risk but
+boredom. If the mechanism is neither ptrace nor proc then examine how
+it is intended to work and see how well it fits with what strace
+already does. If it fits, fine, add a few more ifdefs. If there is a
+gross mismatch, write a whole new event loop.
+
+At this point you are responsible for determining three things: how is
+the specific system call communicated, how are system call arguments
+handled, and how is errno handled. These things can usually be
+resolved in a day or two using a decent assembly level debugger and
+some educated guesswork. For example, set a breakpoint on `read'.
+Then disassemble the code and see where the arguments go. Do they go
+on the stack? Do they go into registers? Some combination of the
+two? Find the point where the transition from user mode to kernel
+mode is made. Can you identify the arguments at this point? When the
+call returns where does errno go? Into a specific register? Into a
+global variable?
+
+Next you need to determine how to decode numeric system call numbers
+into system call names (syscallent.h), errno values into errno names
+(errnoent.h) and ioctl values into ioctl names (ioctlent.h). Often
+this fragile step can be accomplished by massaging system header files
+with ad hoc shell scripts. Expect your scripts to break with every
+dot rev of each OS release.
+
+Finally, once you have the basic framework in which system calls and
+their arguments can be decoded, you must do the dirty work of decoding
+every useful call. Some may be similar or identical to like-named
+calls in other operating systems. Go ahead and tweak what is there
+to achieve what you want. If there is more difference than similarity,
+then just write your own version of it using one of the existing
+implementations for ideas.
+
+The first order of decoding is the generation of suitable system call,
+errno, ioctl and signal tables. Sample scripts are included to assist
+with the generation of a first pass at these tables.
+
+Good luck and feel free to contact me before and/or during any major
+project.
+
+Rick Sladkey <jrs@world.std.com>
diff --git a/README b/README
new file mode 100644
index 0000000..914cede
--- /dev/null
+++ b/README
@@ -0,0 +1,32 @@
+This is strace 4.0, a system call tracer for SunOS 4.x, Linux, System
+V release 4, Solaris 2.x and Irix 5.x. strace is released under a
+Berkeley-style license at the request of Paul Kranenburg; see the file
+COPYRIGHT for details.
+
+Read the INSTALL file for generic instructions on how to install
+strace. If configure cannot guess your system configuration, you can
+specify it on the command line after the other options like this:
+
+ ./configure --prefix=/usr i486-linux
+
+A single sunos4.1 binary should work on all the sun4, sun4c and sun4m
+kernel architectures. Let me know if sun4d doesn't work. Other
+i486-*-sysv4 systems may work with little or no tweaking.
+
+See the file NEWS for information on what has changed in recent
+versions.
+
+See the file PORTING if you like strace but it doesn't work on an
+operating system you use frequently.
+
+See the file CREDITS to see who has contributed to strace.
+
+See the file TODO if you feel like helping out.
+
+You can get the latest version of strace from its homepage at
+http://www.liacs.nl/~wichert/strace/ .
+
+Please send bug reports and enhancements to the strace
+mailinglist at strace-devel@lists.sourceforge.net, or directly to
+Wichert Akkerman <wakkerma@debian.org>
+
diff --git a/README-Android b/README-Android
new file mode 100644
index 0000000..453a3c1
--- /dev/null
+++ b/README-Android
@@ -0,0 +1,11 @@
+Steps to build from original source:
+
+1) apply arm-eabi.patch from Debian bug tracker
+
+2) run configure as follows
+./configure CFLAGS=-I/android/device/system/kernel_headers/ ./configure --prefix=/data/ --build=arm-unknown-linux-gnu
+
+(note this uses the desktop gcc and glibc headers)
+
+3) Further modifications as change history will show
+
diff --git a/README-linux b/README-linux
new file mode 100644
index 0000000..e2f9779
--- /dev/null
+++ b/README-linux
@@ -0,0 +1,32 @@
+
+Strace has been ported by Branko Lankester <branko@hacktic.nl>
+to run on Linux systems. Since then it has been greatly modified
+by various other people.
+
+If you want to compile strace on a Linux system please make sure that
+you use recent kernel headers. Strace needs those to get the proper data
+structures and constatns used by the kernel, since these can be
+different from the structures that the C library uses. Currently you
+will need at least a 2.2.7 or newer kernel.
+
+To complicate things a bit further strace might not compile if you are
+using development kernels. These tend to have headers that conflict with
+the headers from libc which makes it impossible to use them.
+
+There are three ways to compile strace with other kernel headers:
+* Specify the location in CFLAGS when running configure
+
+ CFLAGS=-I/usr/src/linux/include ./configure
+
+* you can tell make where your kernel sources are. For example if you
+ have your kernelsource in /usr/src/linux, you can invoke make like
+ this:
+
+ make CFLAGS="\$CFLAGS -I/usr/src/linux/include"
+
+ (the extra \$CFLAGS is there to make sure we don't override any CFLAGS
+ settings that configure has found).
+
+* you can link /usr/include/linux and /usr/include/asm to the
+ corresponding directories in your kernel source-tree.
+
diff --git a/TODO b/TODO
new file mode 100644
index 0000000..1d6a8e8
--- /dev/null
+++ b/TODO
@@ -0,0 +1,32 @@
+-- new entries from wta
+* clone doesn't work; cloned processes can hang
+* partially done: finish up change_syscall using new setargs
+* do setargs for non-ia64
+* generate syscallent.h from the kernel sources (asm/unistd.h)
+* update linux/sparc syscall entries; Linux messed things up by overriding
+ all kinds of SunOS entries
+* synchronize linux/**/syscallent.h, number of arguments for a syscal isn't
+ consistent across different architectures
+
+-- old entries from jrs
+attempt reopen of /proc file if we get EAGAIN from any /proc ioctl
+kill procs we error out of on svr4
+enclose "total x dents" in a comment
+declare gettimeofday and pread for solaris2
+update automatic remaking of autoconf targets
+I don't like run on last close, change it?
+parse long options?
+count signals too with -c
+treat attach, detach messages like signals
+add pread, pwrite to I/O dumping
+add system assist for qualifiers on svr4
+change printcall to getcaller and fix for linux and svr4
+fix fork hang for svr4 without pollable procfs
+print events on entry to and revents on exit from poll
+monitor procfs open and release the other child if the process wants to own it
+fix incorrect syscall number if exit without entry on svr4 without pr_syscall
+fix clean targets so config.h and config.status can be removed
+ignore faults which occur before exec
+look for more ioctls on solaris, used in nslookup for example
+consider adding backtrace support
+consider adding general purpose interpreter
diff --git a/acinclude.m4 b/acinclude.m4
new file mode 100644
index 0000000..dc0ca09
--- /dev/null
+++ b/acinclude.m4
@@ -0,0 +1,281 @@
+dnl
+dnl This file contains macros used in configure.ac.
+dnl automake uses this file to generate aclocal.m4, which is used by autoconf.
+dnl
+
+dnl ### A macro to find the include directory, useful for cross-compiling.
+AC_DEFUN([AC_INCLUDEDIR],
+[AC_REQUIRE([AC_PROG_AWK])dnl
+AC_SUBST(includedir)
+AC_MSG_CHECKING(for primary include directory)
+includedir=/usr/include
+if test -n "$GCC"
+then
+ >conftest.c
+ new_includedir=`
+ $CC -v -E conftest.c 2>&1 | $AWK '
+ /^End of search list/ { print last; exit }
+ { last = [$]1 }
+ '
+ `
+ rm -f conftest.c
+ if test -n "$new_includedir" && test -d "$new_includedir"
+ then
+ includedir=$new_includedir
+ fi
+fi
+AC_MSG_RESULT($includedir)
+])
+
+dnl ### A macro to set gcc warning flags.
+define(AC_WARNFLAGS,
+[AC_SUBST(WARNFLAGS)
+if test -z "$WARNFLAGS"
+then
+ if test -n "$GCC"
+ then
+ # If we're using gcc we want warning flags.
+ WARNFLAGS=-Wall
+ fi
+fi
+])
+
+dnl ### A macro to determine if we have a "MP" type procfs
+AC_DEFUN([AC_MP_PROCFS],
+[AC_MSG_CHECKING(for MP procfs)
+AC_CACHE_VAL(ac_cv_mp_procfs,
+[AC_RUN_IFELSE([AC_LANG_SOURCE([[
+#include <stdio.h>
+#include <signal.h>
+#include <sys/procfs.h>
+
+main()
+{
+ int pid;
+ char proc[32];
+ FILE *ctl;
+ FILE *status;
+ int cmd;
+ struct pstatus pstatus;
+
+ if ((pid = fork()) == 0) {
+ pause();
+ exit(0);
+ }
+ sprintf(proc, "/proc/%d/ctl", pid);
+ if ((ctl = fopen(proc, "w")) == NULL)
+ goto fail;
+ sprintf(proc, "/proc/%d/status", pid);
+ if ((status = fopen (proc, "r")) == NULL)
+ goto fail;
+ cmd = PCSTOP;
+ if (write (fileno (ctl), &cmd, sizeof cmd) < 0)
+ goto fail;
+ if (read (fileno (status), &pstatus, sizeof pstatus) < 0)
+ goto fail;
+ kill(pid, SIGKILL);
+ exit(0);
+fail:
+ kill(pid, SIGKILL);
+ exit(1);
+}
+]])],[ac_cv_mp_procfs=yes],[ac_cv_mp_procfs=no],[
+# Guess or punt.
+case "$host_os" in
+svr4.2*|svr5*)
+ ac_cv_mp_procfs=yes
+ ;;
+*)
+ ac_cv_mp_procfs=no
+ ;;
+esac
+])])
+AC_MSG_RESULT($ac_cv_mp_procfs)
+if test "$ac_cv_mp_procfs" = yes
+then
+ AC_DEFINE([HAVE_MP_PROCFS], 1,
+[Define if you have a SVR4 MP type procfs.
+I.E. /dev/xxx/ctl, /dev/xxx/status.
+Also implies that you have the pr_lwp member in prstatus.])
+fi
+])
+
+dnl ### A macro to determine if procfs is pollable.
+AC_DEFUN([AC_POLLABLE_PROCFS],
+[AC_MSG_CHECKING(for pollable procfs)
+AC_CACHE_VAL(ac_cv_pollable_procfs,
+[AC_RUN_IFELSE([AC_LANG_SOURCE([[
+#include <stdio.h>
+#include <signal.h>
+#include <sys/procfs.h>
+#include <sys/stropts.h>
+#include <poll.h>
+
+#ifdef HAVE_MP_PROCFS
+#define PIOCSTOP PCSTOP
+#define POLLWANT POLLWRNORM
+#define PROC "/proc/%d/ctl"
+#define PROC_MODE "w"
+int IOCTL (int fd, int cmd, int arg) {
+ return write (fd, &cmd, sizeof cmd);
+}
+#else
+#define POLLWANT POLLPRI
+#define PROC "/proc/%d"
+#define PROC_MODE "r+"
+#define IOCTL ioctl
+#endif
+
+main()
+{
+ int pid;
+ char proc[32];
+ FILE *pfp;
+ struct pollfd pfd;
+
+ if ((pid = fork()) == 0) {
+ pause();
+ exit(0);
+ }
+ sprintf(proc, PROC, pid);
+ if ((pfp = fopen(proc, PROC_MODE)) == NULL)
+ goto fail;
+ if (IOCTL(fileno(pfp), PIOCSTOP, NULL) < 0)
+ goto fail;
+ pfd.fd = fileno(pfp);
+ pfd.events = POLLWANT;
+ if (poll(&pfd, 1, 0) < 0)
+ goto fail;
+ if (!(pfd.revents & POLLWANT))
+ goto fail;
+ kill(pid, SIGKILL);
+ exit(0);
+fail:
+ kill(pid, SIGKILL);
+ exit(1);
+}
+]])],[ac_cv_pollable_procfs=yes],[ac_cv_pollable_procfs=no],[
+# Guess or punt.
+case "$host_os" in
+solaris2*|irix5*|svr4.2uw*|svr5*)
+ ac_cv_pollable_procfs=yes
+ ;;
+*)
+ ac_cv_pollable_procfs=no
+ ;;
+esac
+])])
+AC_MSG_RESULT($ac_cv_pollable_procfs)
+if test "$ac_cv_pollable_procfs" = yes
+then
+ AC_DEFINE([HAVE_POLLABLE_PROCFS], 1,
+[Define if you have SVR4 and the poll system call works on /proc files.])
+fi
+])
+
+dnl ### A macro to determine if the prstatus structure has a pr_syscall member.
+AC_DEFUN([AC_STRUCT_PR_SYSCALL],
+[AC_MSG_CHECKING(for pr_syscall in struct prstatus)
+AC_CACHE_VAL(ac_cv_struct_pr_syscall,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/procfs.h>]], [[#ifdef HAVE_MP_PROCFS
+pstatus_t s;
+s.pr_lwp.pr_syscall
+#else
+prstatus_t s;
+s.pr_syscall
+#endif]])],[ac_cv_struct_pr_syscall=yes],[ac_cv_struct_pr_syscall=no])])
+AC_MSG_RESULT($ac_cv_struct_pr_syscall)
+if test "$ac_cv_struct_pr_syscall" = yes
+then
+ AC_DEFINE([HAVE_PR_SYSCALL], 1,
+[Define if the prstatus structure in sys/procfs.h has a pr_syscall member.])
+fi
+])
+
+dnl ### A macro to determine whether stat64 is defined.
+AC_DEFUN([AC_STAT64],
+[AC_MSG_CHECKING(for stat64 in (asm|sys)/stat.h)
+AC_CACHE_VAL(ac_cv_type_stat64,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#ifdef LINUX
+#include <linux/types.h>
+#include <asm/stat.h>
+#else
+#include <sys/stat.h>
+#endif]], [[struct stat64 st;]])],[ac_cv_type_stat64=yes],[ac_cv_type_stat64=no])])
+AC_MSG_RESULT($ac_cv_type_stat64)
+if test "$ac_cv_type_stat64" = yes
+then
+ AC_DEFINE([HAVE_STAT64], 1,
+[Define if stat64 is available in asm/stat.h.])
+fi
+])
+
+dnl ### A macro to determine if off_t is a long long
+AC_DEFUN([AC_OFF_T_IS_LONG_LONG],
+[AC_MSG_CHECKING(for long long off_t)
+AC_CACHE_VAL(ac_cv_have_long_long_off_t,
+[AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <sys/types.h>
+main () {
+ if (sizeof (off_t) == sizeof (long long) &&
+ sizeof (off_t) > sizeof (long))
+ return 0;
+ return 1;
+}
+]])],[ac_cv_have_long_long_off_t=yes],[ac_cv_have_long_long_off_t=no],[# Should try to guess here
+ac_cv_have_long_long_off_t=no
+])])
+AC_MSG_RESULT($ac_cv_have_long_long_off_t)
+if test "$ac_cv_have_long_long_off_t" = yes
+then
+ AC_DEFINE([HAVE_LONG_LONG_OFF_T], 1, [Define if off_t is a long long.])
+fi
+])
+
+dnl ### A macro to determine if rlim_t is a long long
+AC_DEFUN([AC_RLIM_T_IS_LONG_LONG],
+[AC_MSG_CHECKING(for long long rlim_t)
+AC_CACHE_VAL(ac_cv_have_long_long_rlim_t,
+[AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <sys/types.h>
+#include <sys/time.h>
+#include <sys/resource.h>
+main () {
+ if (sizeof (rlim_t) == sizeof (long long) &&
+ sizeof (rlim_t) > sizeof (long))
+ return 0;
+ return 1;
+}
+]])],[ac_cv_have_long_long_rlim_t=yes],[ac_cv_have_long_long_rlim_t=no],[# Should try to guess here
+ac_cv_have_long_long_rlim_t=no
+])])
+AC_MSG_RESULT($ac_cv_have_long_long_rlim_t)
+if test "$ac_cv_have_long_long_rlim_t" = yes
+then
+ AC_DEFINE([HAVE_LONG_LONG_RLIM_T], 1, [Define if rlim_t is a long long.])
+fi
+])
+
+dnl ### A macro to determine endianness of long long
+AC_DEFUN([AC_LITTLE_ENDIAN_LONG_LONG],
+[AC_MSG_CHECKING(for little endian long long)
+AC_CACHE_VAL(ac_cv_have_little_endian_long_long,
+[AC_RUN_IFELSE([AC_LANG_SOURCE([[
+int main () {
+ union {
+ long long ll;
+ long l [2];
+ } u;
+ u.ll = 0x12345678;
+ if (u.l[0] == 0x12345678)
+ return 0;
+ return 1;
+}
+]])],[ac_cv_have_little_endian_long_long=yes],[ac_cv_have_little_endian_long_long=no],[# Should try to guess here
+ac_cv_have_little_endian_long_long=no
+])])
+AC_MSG_RESULT($ac_cv_have_little_endian_long_long)
+if test "$ac_cv_have_little_endian_long_long" = yes
+then
+ AC_DEFINE([HAVE_LITTLE_ENDIAN_LONG_LONG], 1,
+[Define if long long is little-endian.])
+fi
+])
diff --git a/aclocal.m4 b/aclocal.m4
new file mode 100644
index 0000000..d5f3158
--- /dev/null
+++ b/aclocal.m4
@@ -0,0 +1,892 @@
+# generated automatically by aclocal 1.9.5 -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+# Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_AUTOMAKE_VERSION(VERSION)
+# ----------------------------
+# Automake X.Y traces this macro to ensure aclocal.m4 has been
+# generated from the m4 files accompanying Automake X.Y.
+AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"])
+
+# AM_SET_CURRENT_AUTOMAKE_VERSION
+# -------------------------------
+# Call AM_AUTOMAKE_VERSION so it can be traced.
+# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
+AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
+ [AM_AUTOMAKE_VERSION([1.9.5])])
+
+# AM_AUX_DIR_EXPAND -*- Autoconf -*-
+
+# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
+# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
+#
+# Of course, Automake must honor this variable whenever it calls a
+# tool from the auxiliary directory. The problem is that $srcdir (and
+# therefore $ac_aux_dir as well) can be either absolute or relative,
+# depending on how configure is run. This is pretty annoying, since
+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
+# source directory, any form will work fine, but in subdirectories a
+# relative path needs to be adjusted first.
+#
+# $ac_aux_dir/missing
+# fails when called from a subdirectory if $ac_aux_dir is relative
+# $top_srcdir/$ac_aux_dir/missing
+# fails if $ac_aux_dir is absolute,
+# fails when called from a subdirectory in a VPATH build with
+# a relative $ac_aux_dir
+#
+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+# are both prefixed by $srcdir. In an in-source build this is usually
+# harmless because $srcdir is `.', but things will broke when you
+# start a VPATH build or use an absolute $srcdir.
+#
+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
+# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
+# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
+# and then we would define $MISSING as
+# MISSING="\${SHELL} $am_aux_dir/missing"
+# This will work as long as MISSING is not called from configure, because
+# unfortunately $(top_srcdir) has no meaning in configure.
+# However there are other variables, like CC, which are often used in
+# configure, and could therefore not use this "fixed" $ac_aux_dir.
+#
+# Another solution, used here, is to always expand $ac_aux_dir to an
+# absolute PATH. The drawback is that using absolute paths prevent a
+# configured tree to be moved without reconfiguration.
+
+AC_DEFUN([AM_AUX_DIR_EXPAND],
+[dnl Rely on autoconf to set up CDPATH properly.
+AC_PREREQ([2.50])dnl
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+])
+
+# AM_CONDITIONAL -*- Autoconf -*-
+
+# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 7
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+AC_DEFUN([AM_CONDITIONAL],
+[AC_PREREQ(2.52)dnl
+ ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
+ [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_SUBST([$1_TRUE])
+AC_SUBST([$1_FALSE])
+if $2; then
+ $1_TRUE=
+ $1_FALSE='#'
+else
+ $1_TRUE='#'
+ $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+ AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
+fi])])
+
+
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 8
+
+# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# written in clear, in which case automake, when reading aclocal.m4,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery. Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+
+# _AM_DEPENDENCIES(NAME)
+# ----------------------
+# See how the compiler implements dependency checking.
+# NAME is "CC", "CXX", "GCJ", or "OBJC".
+# We try a few techniques and use that to set a single cache variable.
+#
+# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
+# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
+# dependency, and given that the user is not expected to run this macro,
+# just rely on AC_PROG_CC.
+AC_DEFUN([_AM_DEPENDENCIES],
+[AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+
+ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
+ [$1], CXX, [depcc="$CXX" am_compiler_list=],
+ [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+ [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
+ [depcc="$$1" am_compiler_list=])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+ [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_$1_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
+ fi
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ case $depmode in
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ none) break ;;
+ esac
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this.
+ if depmode=$depmode \
+ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_$1_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_$1_dependencies_compiler_type=none
+fi
+])
+AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
+AM_CONDITIONAL([am__fastdep$1], [
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
+])
+
+
+# AM_SET_DEPDIR
+# -------------
+# Choose a directory name for dependency files.
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES
+AC_DEFUN([AM_SET_DEPDIR],
+[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
+])
+
+
+# AM_DEP_TRACK
+# ------------
+AC_DEFUN([AM_DEP_TRACK],
+[AC_ARG_ENABLE(dependency-tracking,
+[ --disable-dependency-tracking speeds up one-time build
+ --enable-dependency-tracking do not reject slow dependency extractors])
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+AC_SUBST([AMDEPBACKSLASH])
+])
+
+# Generate code to set up dependency tracking. -*- Autoconf -*-
+
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+#serial 3
+
+# _AM_OUTPUT_DEPENDENCY_COMMANDS
+# ------------------------------
+AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
+[for mf in $CONFIG_FILES; do
+ # Strip MF so we end up with the name of the file.
+ mf=`echo "$mf" | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile or not.
+ # We used to match only the files named `Makefile.in', but
+ # some people rename them; so instead we look at the file content.
+ # Grep'ing the first line is not enough: some people post-process
+ # each Makefile.in and add a new line on top of each file to say so.
+ # So let's grep whole file.
+ if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
+ dirpart=`AS_DIRNAME("$mf")`
+ else
+ continue
+ fi
+ # Extract the definition of DEPDIR, am__include, and am__quote
+ # from the Makefile without running `make'.
+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+ test -z "$DEPDIR" && continue
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
+ test -z "am__include" && continue
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+ # When using ansi2knr, U may be empty or an underscore; expand it
+ U=`sed -n 's/^U = //p' < "$mf"`
+ # Find all dependency output files, they are included files with
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
+ # simplest approach to changing $(DEPDIR) to its actual value in the
+ # expansion.
+ for file in `sed -n "
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+ # Make sure the directory exists.
+ test -f "$dirpart/$file" && continue
+ fdir=`AS_DIRNAME(["$file"])`
+ AS_MKDIR_P([$dirpart/$fdir])
+ # echo "creating $dirpart/$file"
+ echo '# dummy' > "$dirpart/$file"
+ done
+done
+])# _AM_OUTPUT_DEPENDENCY_COMMANDS
+
+
+# AM_OUTPUT_DEPENDENCY_COMMANDS
+# -----------------------------
+# This macro should only be invoked once -- use via AC_REQUIRE.
+#
+# This code is only required when automatic dependency tracking
+# is enabled. FIXME. This creates each `.P' file that we will
+# need in order to bootstrap the dependency handling code.
+AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
+[AC_CONFIG_COMMANDS([depfiles],
+ [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
+ [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
+])
+
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 8
+
+# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS.
+AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
+
+# Do all the work for Automake. -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 12
+
+# This macro actually does too much. Some checks are only needed if
+# your package does certain things. But this isn't really a big deal.
+
+# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
+# AM_INIT_AUTOMAKE([OPTIONS])
+# -----------------------------------------------
+# The call with PACKAGE and VERSION arguments is the old style
+# call (pre autoconf-2.50), which is being phased out. PACKAGE
+# and VERSION should now be passed to AC_INIT and removed from
+# the call to AM_INIT_AUTOMAKE.
+# We support both call styles for the transition. After
+# the next Automake release, Autoconf can make the AC_INIT
+# arguments mandatory, and then we can depend on a new Autoconf
+# release and drop the old call support.
+AC_DEFUN([AM_INIT_AUTOMAKE],
+[AC_PREREQ([2.58])dnl
+dnl Autoconf wants to disallow AM_ names. We explicitly allow
+dnl the ones we care about.
+m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+AC_REQUIRE([AC_PROG_INSTALL])dnl
+# test to see if srcdir already configured
+if test "`cd $srcdir && pwd`" != "`pwd`" &&
+ test -f $srcdir/config.status; then
+ AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+AC_SUBST([CYGPATH_W])
+
+# Define the identity of the package.
+dnl Distinguish between old-style and new-style calls.
+m4_ifval([$2],
+[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+ AC_SUBST([PACKAGE], [$1])dnl
+ AC_SUBST([VERSION], [$2])],
+[_AM_SET_OPTIONS([$1])dnl
+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
+
+_AM_IF_OPTION([no-define],,
+[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+ AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
+AM_MISSING_PROG(AUTOCONF, autoconf)
+AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
+AM_MISSING_PROG(AUTOHEADER, autoheader)
+AM_MISSING_PROG(MAKEINFO, makeinfo)
+AM_PROG_INSTALL_SH
+AM_PROG_INSTALL_STRIP
+AC_REQUIRE([AM_PROG_MKDIR_P])dnl
+# We need awk for the "check" target. The system "awk" is bad on
+# some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
+ [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+ [_AM_PROG_TAR([v7])])])
+_AM_IF_OPTION([no-dependencies],,
+[AC_PROVIDE_IFELSE([AC_PROG_CC],
+ [_AM_DEPENDENCIES(CC)],
+ [define([AC_PROG_CC],
+ defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+ [_AM_DEPENDENCIES(CXX)],
+ [define([AC_PROG_CXX],
+ defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+])
+])
+
+
+# When config.status generates a header, we must update the stamp-h file.
+# This file resides in the same directory as the config header
+# that is generated. The stamp files are numbered to have different names.
+
+# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
+# loop where config.status creates the headers, so we can generate
+# our stamp files there.
+AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
+[# Compute $1's index in $config_headers.
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $1 | $1:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
+
+# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_SH
+# ------------------
+# Define $install_sh.
+AC_DEFUN([AM_PROG_INSTALL_SH],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+install_sh=${install_sh-"$am_aux_dir/install-sh"}
+AC_SUBST(install_sh)])
+
+# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# Check whether the underlying file-system supports filenames
+# with a leading dot. For instance MS-DOS doesn't.
+AC_DEFUN([AM_SET_LEADING_DOT],
+[rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+AC_SUBST([am__leading_dot])])
+
+# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
+# From Jim Meyering
+
+# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 4
+
+AC_DEFUN([AM_MAINTAINER_MODE],
+[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
+ dnl maintainer-mode is disabled by default
+ AC_ARG_ENABLE(maintainer-mode,
+[ --enable-maintainer-mode enable make rules and dependencies not useful
+ (and sometimes confusing) to the casual installer],
+ USE_MAINTAINER_MODE=$enableval,
+ USE_MAINTAINER_MODE=no)
+ AC_MSG_RESULT([$USE_MAINTAINER_MODE])
+ AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes])
+ MAINT=$MAINTAINER_MODE_TRUE
+ AC_SUBST(MAINT)dnl
+]
+)
+
+AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
+
+# Check to see how 'make' treats includes. -*- Autoconf -*-
+
+# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 3
+
+# AM_MAKE_INCLUDE()
+# -----------------
+# Check to see how make treats includes.
+AC_DEFUN([AM_MAKE_INCLUDE],
+[am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+ @echo done
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+AC_MSG_CHECKING([for style of include used by $am_make])
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# We grep out `Entering directory' and `Leaving directory'
+# messages which can occur if `w' ends up in MAKEFLAGS.
+# In particular we don't look at `^make:' because GNU make might
+# be invoked under some other name (usually "gmake"), in which
+# case it prints its new name instead of `make'.
+if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
+ am__include=include
+ am__quote=
+ _am_result=GNU
+fi
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+ echo '.include "confinc"' > confmf
+ if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
+ am__include=.include
+ am__quote="\""
+ _am_result=BSD
+ fi
+fi
+AC_SUBST([am__include])
+AC_SUBST([am__quote])
+AC_MSG_RESULT([$_am_result])
+rm -f confinc confmf
+])
+
+# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
+
+# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 4
+
+# AM_MISSING_PROG(NAME, PROGRAM)
+# ------------------------------
+AC_DEFUN([AM_MISSING_PROG],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+
+
+# AM_MISSING_HAS_RUN
+# ------------------
+# Define MISSING if not defined so far and test if it supports --run.
+# If it does, set am_missing_run to use it, otherwise, to nothing.
+AC_DEFUN([AM_MISSING_HAS_RUN],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+ am_missing_run="$MISSING --run "
+else
+ am_missing_run=
+ AC_MSG_WARN([`missing' script is too old or missing])
+fi
+])
+
+# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_MKDIR_P
+# ---------------
+# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise.
+#
+# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories
+# created by `make install' are always world readable, even if the
+# installer happens to have an overly restrictive umask (e.g. 077).
+# This was a mistake. There are at least two reasons why we must not
+# use `-m 0755':
+# - it causes special bits like SGID to be ignored,
+# - it may be too restrictive (some setups expect 775 directories).
+#
+# Do not use -m 0755 and let people choose whatever they expect by
+# setting umask.
+#
+# We cannot accept any implementation of `mkdir' that recognizes `-p'.
+# Some implementations (such as Solaris 8's) are not thread-safe: if a
+# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c'
+# concurrently, both version can detect that a/ is missing, but only
+# one can create it and the other will error out. Consequently we
+# restrict ourselves to GNU make (using the --version option ensures
+# this.)
+AC_DEFUN([AM_PROG_MKDIR_P],
+[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
+ # We used to keeping the `.' as first argument, in order to
+ # allow $(mkdir_p) to be used without argument. As in
+ # $(mkdir_p) $(somedir)
+ # where $(somedir) is conditionally defined. However this is wrong
+ # for two reasons:
+ # 1. if the package is installed by a user who cannot write `.'
+ # make install will fail,
+ # 2. the above comment should most certainly read
+ # $(mkdir_p) $(DESTDIR)$(somedir)
+ # so it does not work when $(somedir) is undefined and
+ # $(DESTDIR) is not.
+ # To support the latter case, we have to write
+ # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
+ # so the `.' trick is pointless.
+ mkdir_p='mkdir -p --'
+else
+ # On NextStep and OpenStep, the `mkdir' command does not
+ # recognize any option. It will interpret all options as
+ # directories to create, and then abort because `.' already
+ # exists.
+ for d in ./-p ./--version;
+ do
+ test -d $d && rmdir $d
+ done
+ # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
+ if test -f "$ac_aux_dir/mkinstalldirs"; then
+ mkdir_p='$(mkinstalldirs)'
+ else
+ mkdir_p='$(install_sh) -d'
+ fi
+fi
+AC_SUBST([mkdir_p])])
+
+# Helper functions for option handling. -*- Autoconf -*-
+
+# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 3
+
+# _AM_MANGLE_OPTION(NAME)
+# -----------------------
+AC_DEFUN([_AM_MANGLE_OPTION],
+[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
+
+# _AM_SET_OPTION(NAME)
+# ------------------------------
+# Set option NAME. Presently that only means defining a flag for this option.
+AC_DEFUN([_AM_SET_OPTION],
+[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
+
+# _AM_SET_OPTIONS(OPTIONS)
+# ----------------------------------
+# OPTIONS is a space-separated list of Automake options.
+AC_DEFUN([_AM_SET_OPTIONS],
+[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+
+# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
+# -------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+AC_DEFUN([_AM_IF_OPTION],
+[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+
+# Check to make sure that the build environment is sane. -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 4
+
+# AM_SANITY_CHECK
+# ---------------
+AC_DEFUN([AM_SANITY_CHECK],
+[AC_MSG_CHECKING([whether build environment is sane])
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
+ if test "$[*]" = "X"; then
+ # -L didn't work.
+ set X `ls -t $srcdir/configure conftest.file`
+ fi
+ rm -f conftest.file
+ if test "$[*]" != "X $srcdir/configure conftest.file" \
+ && test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
+alias in your environment])
+ fi
+
+ test "$[2]" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+AC_MSG_RESULT(yes)])
+
+# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_STRIP
+# ---------------------
+# One issue with vendor `install' (even GNU) is that you can't
+# specify the program used to strip binaries. This is especially
+# annoying in cross-compiling environments, where the build's strip
+# is unlikely to handle the host's binaries.
+# Fortunately install-sh will honor a STRIPPROG variable, so we
+# always use install-sh in `make install-strip', and initialize
+# STRIPPROG with the value of the STRIP variable (set by the user).
+AC_DEFUN([AM_PROG_INSTALL_STRIP],
+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'. However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
+if test "$cross_compiling" != no; then
+ AC_CHECK_TOOL([STRIP], [strip], :)
+fi
+INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
+
+# Check how to create a tarball. -*- Autoconf -*-
+
+# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# _AM_PROG_TAR(FORMAT)
+# --------------------
+# Check how to create a tarball in format FORMAT.
+# FORMAT should be one of `v7', `ustar', or `pax'.
+#
+# Substitute a variable $(am__tar) that is a command
+# writing to stdout a FORMAT-tarball containing the directory
+# $tardir.
+# tardir=directory && $(am__tar) > result.tar
+#
+# Substitute a variable $(am__untar) that extract such
+# a tarball read from stdin.
+# $(am__untar) < result.tar
+AC_DEFUN([_AM_PROG_TAR],
+[# Always define AMTAR for backward compatibility.
+AM_MISSING_PROG([AMTAR], [tar])
+m4_if([$1], [v7],
+ [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
+ [m4_case([$1], [ustar],, [pax],,
+ [m4_fatal([Unknown tar format])])
+AC_MSG_CHECKING([how to create a $1 tar archive])
+# Loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+_am_tools=${am_cv_prog_tar_$1-$_am_tools}
+# Do not fold the above two line into one, because Tru64 sh and
+# Solaris sh will not grok spaces in the rhs of `-'.
+for _am_tool in $_am_tools
+do
+ case $_am_tool in
+ gnutar)
+ for _am_tar in tar gnutar gtar;
+ do
+ AM_RUN_LOG([$_am_tar --version]) && break
+ done
+ am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+ am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+ am__untar="$_am_tar -xf -"
+ ;;
+ plaintar)
+ # Must skip GNU tar: if it does not support --format= it doesn't create
+ # ustar tarball either.
+ (tar --version) >/dev/null 2>&1 && continue
+ am__tar='tar chf - "$$tardir"'
+ am__tar_='tar chf - "$tardir"'
+ am__untar='tar xf -'
+ ;;
+ pax)
+ am__tar='pax -L -x $1 -w "$$tardir"'
+ am__tar_='pax -L -x $1 -w "$tardir"'
+ am__untar='pax -r'
+ ;;
+ cpio)
+ am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+ am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+ am__untar='cpio -i -H $1 -d'
+ ;;
+ none)
+ am__tar=false
+ am__tar_=false
+ am__untar=false
+ ;;
+ esac
+
+ # If the value was cached, stop now. We just wanted to have am__tar
+ # and am__untar set.
+ test -n "${am_cv_prog_tar_$1}" && break
+
+ # tar/untar a dummy directory, and stop if the command works
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ echo GrepMe > conftest.dir/file
+ AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+ rm -rf conftest.dir
+ if test -s conftest.tar; then
+ AM_RUN_LOG([$am__untar <conftest.tar])
+ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+ fi
+done
+rm -rf conftest.dir
+
+AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+AC_SUBST([am__tar])
+AC_SUBST([am__untar])
+]) # _AM_PROG_TAR
+
+m4_include([acinclude.m4])
diff --git a/android/arch/arm/config.h b/android/arch/arm/config.h
new file mode 100644
index 0000000..69989af
--- /dev/null
+++ b/android/arch/arm/config.h
@@ -0,0 +1,422 @@
+/* config.h. Generated by configure. */
+/* config.h.in. Generated from configure.ac by autoheader. */
+
+/* Define for the Alpha architecture. */
+/* #undef ALPHA */
+
+/* Define for the ARM architecture. */
+#define ARM 1
+
+/* Define for the FreeBSD operating system. */
+/* #undef FREEBSD */
+
+/* Define to the type of elements in the array set by `getgroups'. Usually
+ this is either `int' or `gid_t'. */
+#define GETGROUPS_T gid_t
+
+/* Define to 1 if you have the <asm/reg.h> header file. */
+/* #undef HAVE_ASM_REG_H */
+
+/* Define to 1 if you have the <asm/sigcontext.h> header file. */
+#define HAVE_ASM_SIGCONTEXT_H 1
+
+/* Define to 1 if you have the <asm/sysmips.h> header file. */
+/* #undef HAVE_ASM_SYSMIPS_H */
+
+/* Define to 1 if you have the declaration of `sys_errlist', and to 0 if you
+ don't. */
+#define HAVE_DECL_SYS_ERRLIST 1
+
+/* Define to 1 if you have the declaration of `sys_siglist', and to 0 if you
+ don't. */
+#define HAVE_DECL_SYS_SIGLIST 1
+
+/* Define to 1 if you have the declaration of `_sys_siglist', and to 0 if you
+ don't. */
+//ANDROID
+//#define HAVE_DECL__SYS_SIGLIST 1
+
+/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
+ */
+#define HAVE_DIRENT_H 1
+
+/* Define to 1 if you have the `getdents' function. */
+/* #undef HAVE_GETDENTS */
+
+/* Define to 1 if you have the `if_indextoname' function. */
+#define HAVE_IF_INDEXTONAME 1
+
+/* Define to 1 if you have the `inet_ntop' function. */
+#define HAVE_INET_NTOP 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the <ioctls.h> header file. */
+/* #undef HAVE_IOCTLS_H */
+
+/* Define to 1 if you have the <libaio.h> header file. */
+/* #undef HAVE_LIBAIO_H */
+
+/* Define to 1 if you have the `nsl' library (-lnsl). */
+/* #undef HAVE_LIBNSL */
+
+/* Define to 1 if you have the <linux/icmp.h> header file. */
+#define HAVE_LINUX_ICMP_H 1
+
+/* Define to 1 if you have the <linux/if_packet.h> header file. */
+#define HAVE_LINUX_IF_PACKET_H 1
+
+/* Define to 1 if you have the <linux/in6.h> header file. */
+#define HAVE_LINUX_IN6_H 1
+
+/* Define to 1 if you have the <linux/netlink.h> header file. */
+#define HAVE_LINUX_NETLINK_H 1
+
+/* Define to 1 if you have the <linux/ptrace.h> header file. */
+//ANDROID
+//#define HAVE_LINUX_PTRACE_H 1
+
+/* Define to 1 if you have the <linux/utsname.h> header file. */
+#define HAVE_LINUX_UTSNAME_H 1
+
+/* Define if long long is little-endian. */
+#define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+
+/* Define to 1 if the system has the type `long long'. */
+#define HAVE_LONG_LONG 1
+
+/* Define if off_t is a long long. */
+/* #undef HAVE_LONG_LONG_OFF_T */
+
+/* Define if rlim_t is a long long. */
+/* #undef HAVE_LONG_LONG_RLIM_T */
+
+/* Define to 1 if you have the `mctl' function. */
+/* #undef HAVE_MCTL */
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define if you have a SVR4 MP type procfs. I.E. /dev/xxx/ctl,
+ /dev/xxx/status. Also implies that you have the pr_lwp member in prstatus.
+ */
+/* #undef HAVE_MP_PROCFS */
+
+/* Define to 1 if you have the <mqueue.h> header file. */
+//ANDROID
+//#define HAVE_MQUEUE_H 1
+
+/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
+/* #undef HAVE_NDIR_H */
+
+/* Define to 1 if you have the <netinet/tcp.h> header file. */
+#define HAVE_NETINET_TCP_H 1
+
+/* Define to 1 if you have the <netinet/udp.h> header file. */
+#define HAVE_NETINET_UDP_H 1
+
+/* Define if you have SVR4 and the poll system call works on /proc files. */
+/* #undef HAVE_POLLABLE_PROCFS */
+
+/* Define to 1 if you have the <poll.h> header file. */
+#define HAVE_POLL_H 1
+
+/* Define to 1 if you have the `prctl' function. */
+#define HAVE_PRCTL 1
+
+/* Define to 1 if you have the `pread' function. */
+#define HAVE_PREAD 1
+
+/* Define if the prstatus structure in sys/procfs.h has a pr_syscall member.
+ */
+/* #undef HAVE_PR_SYSCALL */
+
+/* Define to 1 if you have the `sendmsg' function. */
+#define HAVE_SENDMSG 1
+
+/* Define to 1 if you have the `sigaction' function. */
+#define HAVE_SIGACTION 1
+
+/* Define to 1 if the system has the type `siginfo_t'. */
+#define HAVE_SIGINFO_T 1
+
+/* Define to 1 if the system has the type `sig_atomic_t'. */
+#define HAVE_SIG_ATOMIC_T 1
+
+/* Define if stat64 is available in asm/stat.h. */
+#define HAVE_STAT64 1
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the `strerror' function. */
+#define HAVE_STRERROR 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the <stropts.h> header file. */
+//ANDROID
+//#define HAVE_STROPTS_H 1
+
+/* Define to 1 if you have the `strsignal' function. */
+//ANDROID
+#include <sys/cdefs.h>
+#ifdef __BIONIC__
+#define HAVE_STRSIGNAL 1
+#endif
+
+/* Define to 1 if the system has the type `struct ia64_fpreg'. */
+/* #undef HAVE_STRUCT_IA64_FPREG */
+
+/* Define to 1 if `msg_control' is member of `struct msghdr'. */
+#define HAVE_STRUCT_MSGHDR_MSG_CONTROL 1
+
+/* Define to 1 if the system has the type `struct opthdr'. */
+/* #undef HAVE_STRUCT_OPTHDR */
+
+/* Define to 1 if the system has the type `struct pt_all_user_regs'. */
+/* #undef HAVE_STRUCT_PT_ALL_USER_REGS */
+
+/* Define to 1 if `sin6_scope_id' is member of `struct sockaddr_in6'. */
+#define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+
+/* Define to 1 if `st_aclcnt' is member of `struct stat'. */
+/* #undef HAVE_STRUCT_STAT_ST_ACLCNT */
+
+/* Define to 1 if `st_blksize' is member of `struct stat'. */
+#define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+
+/* Define to 1 if `st_blocks' is member of `struct stat'. */
+#define HAVE_STRUCT_STAT_ST_BLOCKS 1
+
+/* Define to 1 if `st_flags' is member of `struct stat'. */
+/* #undef HAVE_STRUCT_STAT_ST_FLAGS */
+
+/* Define to 1 if `st_fstype' is member of `struct stat'. */
+/* #undef HAVE_STRUCT_STAT_ST_FSTYPE */
+
+/* Define to 1 if `st_gen' is member of `struct stat'. */
+/* #undef HAVE_STRUCT_STAT_ST_GEN */
+
+/* Define to 1 if `st_level' is member of `struct stat'. */
+/* #undef HAVE_STRUCT_STAT_ST_LEVEL */
+
+/* Define to 1 if `st_rdev' is member of `struct stat'. */
+#define HAVE_STRUCT_STAT_ST_RDEV 1
+
+/* Define to 1 if `ACCEPTOR_id' is member of `struct T_conn_res'. */
+/* #undef HAVE_STRUCT_T_CONN_RES_ACCEPTOR_ID */
+
+/* Define to 1 if `QUEUE_ptr' is member of `struct T_conn_res'. */
+/* #undef HAVE_STRUCT_T_CONN_RES_QUEUE_PTR */
+
+/* Define to 1 if the system has the type `struct t_opthdr'. */
+/* #undef HAVE_STRUCT_T_OPTHDR */
+
+/* Define to 1 if the system has the type `struct user_desc'. */
+#define HAVE_STRUCT_USER_DESC 1
+
+/* Define to 1 if the system has the type `struct __old_kernel_stat'. */
+#define HAVE_STRUCT___OLD_KERNEL_STAT 1
+
+/* Define to 1 if you have the <sys/acl.h> header file. */
+/* #undef HAVE_SYS_ACL_H */
+
+/* Define to 1 if you have the <sys/aio.h> header file. */
+/* #undef HAVE_SYS_AIO_H */
+
+/* Define to 1 if you have the <sys/asynch.h> header file. */
+/* #undef HAVE_SYS_ASYNCH_H */
+
+/* Define to 1 if you have the <sys/conf.h> header file. */
+/* #undef HAVE_SYS_CONF_H */
+
+/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
+ */
+/* #undef HAVE_SYS_DIR_H */
+
+/* Define to 1 if you have the <sys/door.h> header file. */
+/* #undef HAVE_SYS_DOOR_H */
+
+/* Define to 1 if you have the <sys/epoll.h> header file. */
+#define HAVE_SYS_EPOLL_H 1
+/* Define to 1 if you have the <sys/filio.h> header file. */
+/* #undef HAVE_SYS_FILIO_H */
+
+/* Define to 1 if you have the <sys/ioctl.h> header file. */
+#define HAVE_SYS_IOCTL_H 1
+
+/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
+ */
+/* #undef HAVE_SYS_NDIR_H */
+
+/* Define to 1 if you have the <sys/nscsys.h> header file. */
+/* #undef HAVE_SYS_NSCSYS_H */
+
+/* Define to 1 if you have the <sys/poll.h> header file. */
+#define HAVE_SYS_POLL_H 1
+
+/* Define to 1 if you have the <sys/ptrace.h> header file. */
+#define HAVE_SYS_PTRACE_H 1
+
+/* Define to 1 if you have the <sys/reg.h> header file. */
+//ANDROID
+//#define HAVE_SYS_REG_H 1
+
+/* Define to 1 if you have the `sys_siglist' function. */
+#define HAVE_SYS_SIGLIST 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/stream.h> header file. */
+/* #undef HAVE_SYS_STREAM_H */
+
+/* Define to 1 if you have the <sys/sysconfig.h> header file. */
+/* #undef HAVE_SYS_SYSCONFIG_H */
+
+/* Define to 1 if you have the <sys/tihdr.h> header file. */
+/* #undef HAVE_SYS_TIHDR_H */
+
+/* Define to 1 if you have the <sys/tiuser.h> header file. */
+/* #undef HAVE_SYS_TIUSER_H */
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <sys/uio.h> header file. */
+#define HAVE_SYS_UIO_H 1
+
+/* Define to 1 if you have the <sys/vfs.h> header file. */
+#define HAVE_SYS_VFS_H 1
+
+/* Define to 1 if you have the <termio.h> header file. */
+#define HAVE_TERMIO_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define to 1 if you have the `_sys_siglist' function. */
+//ANDROID
+//#define HAVE__SYS_SIGLIST 1
+
+/* Define for the HPPA architecture. */
+/* #undef HPPA */
+
+/* Define for the i386 architecture. */
+/* #undef I386 */
+
+/* Define for the IA64 architecture. */
+/* #undef IA64 */
+
+/* Define for the Linux operating system. */
+#define LINUX 1
+
+/* Define for the m68k architecture. */
+/* #undef M68K */
+
+/* Define to 1 if `major', `minor', and `makedev' are declared in <mkdev.h>.
+ */
+/* #undef MAJOR_IN_MKDEV */
+
+/* Define to 1 if `major', `minor', and `makedev' are declared in
+ <sysmacros.h>. */
+/* #undef MAJOR_IN_SYSMACROS */
+
+/* Define for the MIPS architecture. */
+/* #undef MIPS */
+
+/* Name of package */
+#define PACKAGE "strace"
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT ""
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "strace"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "strace 4.5.12"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "strace"
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "4.5.12"
+
+/* Define for the PowerPC architecture. */
+/* #undef POWERPC */
+
+/* Define as the return type of signal handlers (`int' or `void'). */
+#define RETSIGTYPE void
+
+/* Define for the S390 architecture. */
+/* #undef S390 */
+
+/* Define for the S390x architecture. */
+/* #undef S390X */
+
+/* Define for the SH architecture. */
+/* #undef SH */
+
+/* Define for the SH64 architecture. */
+/* #undef SH64 */
+
+/* Define for the SPARC architecture. */
+/* #undef SPARC */
+
+/* Define for the SPARC64 architecture. */
+/* #undef SPARC64 */
+
+/* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */
+/* #undef STAT_MACROS_BROKEN */
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Define for the SunOS 4.x operating system. */
+/* #undef SUNOS4 */
+
+/* Define if you are have a SPARC with SUNOS4 and your want a version of
+ strace that will work on sun4, sun4c and sun4m kernel architectures. Only
+ useful if you have a symbolic link from machine to /usr/include/sun4 in the
+ compilation directory. */
+/* #undef SUNOS4_KERNEL_ARCH_KLUDGE */
+
+/* Define for the System V release 4 operating system or a derivative like
+ Solaris 2.x or Irix 5.x. */
+/* #undef SVR4 */
+
+/* Define for UnixWare systems. */
+/* #undef UNIXWARE */
+
+/* Version number of package */
+#define VERSION "4.5.12"
+
+/* Define for the AMD x86-64 architecture. */
+/* #undef X86_64 */
+
+/* Enable GNU extensions on systems that have them. */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+
+/* Define to empty if `const' does not conform to ANSI C. */
+/* #undef const */
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+/* #undef gid_t */
+
+/* Define to `int' if <sys/types.h> does not define. */
+/* #undef mode_t */
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+/* #undef uid_t */
diff --git a/android/arch/x86/config.h b/android/arch/x86/config.h
new file mode 100644
index 0000000..2bdaa17
--- /dev/null
+++ b/android/arch/x86/config.h
@@ -0,0 +1,423 @@
+/* config.h. Generated by configure. */
+/* config.h.in. Generated from configure.ac by autoheader. */
+
+/* Define for the Alpha architecture. */
+/* #undef ALPHA */
+
+/* Define for the ARM architecture. */
+/* #undef ARM */
+
+/* Define for the FreeBSD operating system. */
+/* #undef FREEBSD */
+
+/* Define to the type of elements in the array set by `getgroups'. Usually
+ this is either `int' or `gid_t'. */
+#define GETGROUPS_T gid_t
+
+/* Define to 1 if you have the <asm/reg.h> header file. */
+/* #undef HAVE_ASM_REG_H */
+
+/* Define to 1 if you have the <asm/sigcontext.h> header file. */
+#define HAVE_ASM_SIGCONTEXT_H 1
+
+/* Define to 1 if you have the <asm/sysmips.h> header file. */
+/* #undef HAVE_ASM_SYSMIPS_H */
+
+/* Define to 1 if you have the declaration of `sys_errlist', and to 0 if you
+ don't. */
+#define HAVE_DECL_SYS_ERRLIST 1
+
+/* Define to 1 if you have the declaration of `sys_siglist', and to 0 if you
+ don't. */
+#define HAVE_DECL_SYS_SIGLIST 1
+
+/* Define to 1 if you have the declaration of `_sys_siglist', and to 0 if you
+ don't. */
+//ANDROID
+//#define HAVE_DECL__SYS_SIGLIST 1
+
+/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
+ */
+#define HAVE_DIRENT_H 1
+
+/* Define to 1 if you have the `getdents' function. */
+/* #undef HAVE_GETDENTS */
+
+/* Define to 1 if you have the `if_indextoname' function. */
+#define HAVE_IF_INDEXTONAME 1
+
+/* Define to 1 if you have the `inet_ntop' function. */
+#define HAVE_INET_NTOP 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the <ioctls.h> header file. */
+/* #undef HAVE_IOCTLS_H */
+
+/* Define to 1 if you have the <libaio.h> header file. */
+/* #undef HAVE_LIBAIO_H */
+
+/* Define to 1 if you have the `nsl' library (-lnsl). */
+/* #undef HAVE_LIBNSL */
+
+/* Define to 1 if you have the <linux/icmp.h> header file. */
+#define HAVE_LINUX_ICMP_H 1
+
+/* Define to 1 if you have the <linux/if_packet.h> header file. */
+#define HAVE_LINUX_IF_PACKET_H 1
+
+/* Define to 1 if you have the <linux/in6.h> header file. */
+#define HAVE_LINUX_IN6_H 1
+
+/* Define to 1 if you have the <linux/netlink.h> header file. */
+#define HAVE_LINUX_NETLINK_H 1
+
+/* Define to 1 if you have the <linux/ptrace.h> header file. */
+//ANDROID
+//#define HAVE_LINUX_PTRACE_H 1
+
+/* Define to 1 if you have the <linux/utsname.h> header file. */
+#define HAVE_LINUX_UTSNAME_H 1
+
+/* Define if long long is little-endian. */
+#define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+
+/* Define to 1 if the system has the type `long long'. */
+#define HAVE_LONG_LONG 1
+
+/* Define if off_t is a long long. */
+/* #undef HAVE_LONG_LONG_OFF_T */
+
+/* Define if rlim_t is a long long. */
+/* #undef HAVE_LONG_LONG_RLIM_T */
+
+/* Define to 1 if you have the `mctl' function. */
+/* #undef HAVE_MCTL */
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define if you have a SVR4 MP type procfs. I.E. /dev/xxx/ctl,
+ /dev/xxx/status. Also implies that you have the pr_lwp member in prstatus.
+ */
+/* #undef HAVE_MP_PROCFS */
+
+/* Define to 1 if you have the <mqueue.h> header file. */
+//ANDROID
+//#define HAVE_MQUEUE_H 1
+
+/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
+/* #undef HAVE_NDIR_H */
+
+/* Define to 1 if you have the <netinet/tcp.h> header file. */
+#define HAVE_NETINET_TCP_H 1
+
+/* Define to 1 if you have the <netinet/udp.h> header file. */
+#define HAVE_NETINET_UDP_H 1
+
+/* Define if you have SVR4 and the poll system call works on /proc files. */
+/* #undef HAVE_POLLABLE_PROCFS */
+
+/* Define to 1 if you have the <poll.h> header file. */
+#define HAVE_POLL_H 1
+
+/* Define to 1 if you have the `prctl' function. */
+#define HAVE_PRCTL 1
+
+/* Define to 1 if you have the `pread' function. */
+#define HAVE_PREAD 1
+
+/* Define if the prstatus structure in sys/procfs.h has a pr_syscall member.
+ */
+/* #undef HAVE_PR_SYSCALL */
+
+/* Define to 1 if you have the `sendmsg' function. */
+#define HAVE_SENDMSG 1
+
+/* Define to 1 if you have the `sigaction' function. */
+#define HAVE_SIGACTION 1
+
+/* Define to 1 if the system has the type `siginfo_t'. */
+#define HAVE_SIGINFO_T 1
+
+/* Define to 1 if the system has the type `sig_atomic_t'. */
+#define HAVE_SIG_ATOMIC_T 1
+
+/* Define if stat64 is available in asm/stat.h. */
+#define HAVE_STAT64 1
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the `strerror' function. */
+#define HAVE_STRERROR 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the <stropts.h> header file. */
+//ANDROID
+//#define HAVE_STROPTS_H 1
+
+/* Define to 1 if you have the `strsignal' function. */
+//ANDROID
+#include <sys/cdefs.h>
+#ifdef __BIONIC__
+#define HAVE_STRSIGNAL 1
+#endif
+
+/* Define to 1 if the system has the type `struct ia64_fpreg'. */
+/* #undef HAVE_STRUCT_IA64_FPREG */
+
+/* Define to 1 if `msg_control' is member of `struct msghdr'. */
+#define HAVE_STRUCT_MSGHDR_MSG_CONTROL 1
+
+/* Define to 1 if the system has the type `struct opthdr'. */
+/* #undef HAVE_STRUCT_OPTHDR */
+
+/* Define to 1 if the system has the type `struct pt_all_user_regs'. */
+/* #undef HAVE_STRUCT_PT_ALL_USER_REGS */
+
+/* Define to 1 if `sin6_scope_id' is member of `struct sockaddr_in6'. */
+#define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+
+/* Define to 1 if `st_aclcnt' is member of `struct stat'. */
+/* #undef HAVE_STRUCT_STAT_ST_ACLCNT */
+
+/* Define to 1 if `st_blksize' is member of `struct stat'. */
+#define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+
+/* Define to 1 if `st_blocks' is member of `struct stat'. */
+#define HAVE_STRUCT_STAT_ST_BLOCKS 1
+
+/* Define to 1 if `st_flags' is member of `struct stat'. */
+/* #undef HAVE_STRUCT_STAT_ST_FLAGS */
+
+/* Define to 1 if `st_fstype' is member of `struct stat'. */
+/* #undef HAVE_STRUCT_STAT_ST_FSTYPE */
+
+/* Define to 1 if `st_gen' is member of `struct stat'. */
+/* #undef HAVE_STRUCT_STAT_ST_GEN */
+
+/* Define to 1 if `st_level' is member of `struct stat'. */
+/* #undef HAVE_STRUCT_STAT_ST_LEVEL */
+
+/* Define to 1 if `st_rdev' is member of `struct stat'. */
+#define HAVE_STRUCT_STAT_ST_RDEV 1
+
+/* Define to 1 if `ACCEPTOR_id' is member of `struct T_conn_res'. */
+/* #undef HAVE_STRUCT_T_CONN_RES_ACCEPTOR_ID */
+
+/* Define to 1 if `QUEUE_ptr' is member of `struct T_conn_res'. */
+/* #undef HAVE_STRUCT_T_CONN_RES_QUEUE_PTR */
+
+/* Define to 1 if the system has the type `struct t_opthdr'. */
+/* #undef HAVE_STRUCT_T_OPTHDR */
+
+/* Define to 1 if the system has the type `struct user_desc'. */
+#define HAVE_STRUCT_USER_DESC 1
+
+/* Define to 1 if the system has the type `struct __old_kernel_stat'. */
+#define HAVE_STRUCT___OLD_KERNEL_STAT 1
+
+/* Define to 1 if you have the <sys/acl.h> header file. */
+/* #undef HAVE_SYS_ACL_H */
+
+/* Define to 1 if you have the <sys/aio.h> header file. */
+/* #undef HAVE_SYS_AIO_H */
+
+/* Define to 1 if you have the <sys/asynch.h> header file. */
+/* #undef HAVE_SYS_ASYNCH_H */
+
+/* Define to 1 if you have the <sys/conf.h> header file. */
+/* #undef HAVE_SYS_CONF_H */
+
+/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
+ */
+/* #undef HAVE_SYS_DIR_H */
+
+/* Define to 1 if you have the <sys/door.h> header file. */
+/* #undef HAVE_SYS_DOOR_H */
+
+/* Define to 1 if you have the <sys/epoll.h> header file. */
+#define HAVE_SYS_EPOLL_H 1
+
+/* Define to 1 if you have the <sys/filio.h> header file. */
+/* #undef HAVE_SYS_FILIO_H */
+
+/* Define to 1 if you have the <sys/ioctl.h> header file. */
+#define HAVE_SYS_IOCTL_H 1
+
+/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
+ */
+/* #undef HAVE_SYS_NDIR_H */
+
+/* Define to 1 if you have the <sys/nscsys.h> header file. */
+/* #undef HAVE_SYS_NSCSYS_H */
+
+/* Define to 1 if you have the <sys/poll.h> header file. */
+#define HAVE_SYS_POLL_H 1
+
+/* Define to 1 if you have the <sys/ptrace.h> header file. */
+#define HAVE_SYS_PTRACE_H 1
+
+/* Define to 1 if you have the <sys/reg.h> header file. */
+//ANDROID
+//#define HAVE_SYS_REG_H 1
+
+/* Define to 1 if you have the `sys_siglist' function. */
+#define HAVE_SYS_SIGLIST 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/stream.h> header file. */
+/* #undef HAVE_SYS_STREAM_H */
+
+/* Define to 1 if you have the <sys/sysconfig.h> header file. */
+/* #undef HAVE_SYS_SYSCONFIG_H */
+
+/* Define to 1 if you have the <sys/tihdr.h> header file. */
+/* #undef HAVE_SYS_TIHDR_H */
+
+/* Define to 1 if you have the <sys/tiuser.h> header file. */
+/* #undef HAVE_SYS_TIUSER_H */
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <sys/uio.h> header file. */
+#define HAVE_SYS_UIO_H 1
+
+/* Define to 1 if you have the <sys/vfs.h> header file. */
+#define HAVE_SYS_VFS_H 1
+
+/* Define to 1 if you have the <termio.h> header file. */
+#define HAVE_TERMIO_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define to 1 if you have the `_sys_siglist' function. */
+//ANDROID
+//#define HAVE__SYS_SIGLIST 1
+
+/* Define for the HPPA architecture. */
+/* #undef HPPA */
+
+/* Define for the i386 architecture. */
+#define I386 1
+
+/* Define for the IA64 architecture. */
+/* #undef IA64 */
+
+/* Define for the Linux operating system. */
+#define LINUX 1
+
+/* Define for the m68k architecture. */
+/* #undef M68K */
+
+/* Define to 1 if `major', `minor', and `makedev' are declared in <mkdev.h>.
+ */
+/* #undef MAJOR_IN_MKDEV */
+
+/* Define to 1 if `major', `minor', and `makedev' are declared in
+ <sysmacros.h>. */
+/* #undef MAJOR_IN_SYSMACROS */
+
+/* Define for the MIPS architecture. */
+/* #undef MIPS */
+
+/* Name of package */
+#define PACKAGE "strace"
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT ""
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "strace"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "strace 4.5.12"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "strace"
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "4.5.12"
+
+/* Define for the PowerPC architecture. */
+/* #undef POWERPC */
+
+/* Define as the return type of signal handlers (`int' or `void'). */
+#define RETSIGTYPE void
+
+/* Define for the S390 architecture. */
+/* #undef S390 */
+
+/* Define for the S390x architecture. */
+/* #undef S390X */
+
+/* Define for the SH architecture. */
+/* #undef SH */
+
+/* Define for the SH64 architecture. */
+/* #undef SH64 */
+
+/* Define for the SPARC architecture. */
+/* #undef SPARC */
+
+/* Define for the SPARC64 architecture. */
+/* #undef SPARC64 */
+
+/* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */
+/* #undef STAT_MACROS_BROKEN */
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Define for the SunOS 4.x operating system. */
+/* #undef SUNOS4 */
+
+/* Define if you are have a SPARC with SUNOS4 and your want a version of
+ strace that will work on sun4, sun4c and sun4m kernel architectures. Only
+ useful if you have a symbolic link from machine to /usr/include/sun4 in the
+ compilation directory. */
+/* #undef SUNOS4_KERNEL_ARCH_KLUDGE */
+
+/* Define for the System V release 4 operating system or a derivative like
+ Solaris 2.x or Irix 5.x. */
+/* #undef SVR4 */
+
+/* Define for UnixWare systems. */
+/* #undef UNIXWARE */
+
+/* Version number of package */
+#define VERSION "4.5.12"
+
+/* Define for the AMD x86-64 architecture. */
+/* #undef X86_64 */
+
+/* Enable GNU extensions on systems that have them. */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+
+/* Define to empty if `const' does not conform to ANSI C. */
+/* #undef const */
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+/* #undef gid_t */
+
+/* Define to `int' if <sys/types.h> does not define. */
+/* #undef mode_t */
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+/* #undef uid_t */
diff --git a/arm-eabi.patch b/arm-eabi.patch
new file mode 100644
index 0000000..53e27f8
--- /dev/null
+++ b/arm-eabi.patch
@@ -0,0 +1,65 @@
+2006-03-30 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * process.c (change_syscall): Add ARM support.
+ * syscall.c (get_scno): Handle ARM EABI.
+
+Index: strace/process.c
+===================================================================
+--- strace.orig/process.c 2006-03-30 17:36:14.000000000 -0500
++++ strace/process.c 2006-03-30 17:44:16.000000000 -0500
+@@ -694,6 +694,16 @@ int new;
+ 0x100000 | 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) != 0)
++ return -1;
++
++ return 0;
+ #else
+ #warning Do not know how to handle change_syscall for this architecture
+ #endif /* architecture */
+Index: strace/syscall.c
+===================================================================
+--- strace.orig/syscall.c 2006-03-30 17:36:14.000000000 -0500
++++ strace/syscall.c 2006-03-30 17:44:16.000000000 -0500
+@@ -1108,16 +1108,25 @@ struct tcb *tcp;
+ return 0;
+ }
+
+- if ((scno & 0x0ff00000) != 0x0f900000) {
+- fprintf(stderr, "syscall: unknown syscall trap 0x%08lx\n",
+- scno);
+- 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;
++ /*
++ * Fixup the syscall number
++ */
++ scno &= 0x000fffff;
++ }
+ }
+
+ if (tcp->flags & TCB_INSYSCALL) {
diff --git a/bjm.c b/bjm.c
new file mode 100644
index 0000000..6215019
--- /dev/null
+++ b/bjm.c
@@ -0,0 +1,207 @@
+/*
+ * Copyright (c) 1991, 1992 Paul Kranenburg <pk@cs.few.eur.nl>
+ * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
+ * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
+ * Copyright (c) 1996-1999 Wichert Akkerman <wichert@cistron.nl>
+ * 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.
+ *
+ * $Id: bjm.c,v 1.15 2005/06/01 19:02:37 roland Exp $
+ */
+#include "defs.h"
+
+#if defined(LINUX)
+
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <sys/time.h>
+#include <sys/wait.h>
+#include <sys/resource.h>
+#include <sys/utsname.h>
+#ifndef HAVE_ANDROID_OS
+#include <sys/user.h>
+#endif
+#include <sys/syscall.h>
+#include <signal.h>
+
+/* Bits of module.flags. */
+
+#define MOD_UNINITIALIZED 0
+#define MOD_RUNNING 1
+#define MOD_DELETED 2
+#define MOD_AUTOCLEAN 4
+#define MOD_VISITED 8
+#define MOD_USED_ONCE 16
+#define MOD_JUST_FREED 32
+#define MOD_INITIALIZING 64
+
+/* Values for query_module's which. */
+
+#define QM_MODULES 1
+#define QM_DEPS 2
+#define QM_REFS 3
+#define QM_SYMBOLS 4
+#define QM_INFO 5
+
+struct module_symbol
+{
+ unsigned long value;
+ const char *name;
+};
+
+struct module_info
+{
+ unsigned long addr;
+ unsigned long size;
+ unsigned long flags;
+ long usecount;
+};
+
+static const struct xlat which[] = {
+ { 0, "0" },
+ { QM_MODULES, "QM_MODULES" },
+ { QM_DEPS, "QM_DEPS" },
+ { QM_REFS, "QM_REFS" },
+ { QM_SYMBOLS, "QM_SYMBOLS" },
+ { QM_INFO, "QM_INFO" },
+ { 0, NULL },
+};
+
+static const struct xlat modflags[] = {
+ { MOD_UNINITIALIZED, "MOD_UNINITIALIZED" },
+ { MOD_RUNNING, "MOD_RUNNING" },
+ { MOD_DELETED, "MOD_DELETED" },
+ { MOD_AUTOCLEAN, "MOD_AUTOCLEAN" },
+ { MOD_VISITED, "MOD_VISITED" },
+ { MOD_USED_ONCE, "MOD_USED_ONCE" },
+ { MOD_JUST_FREED, "MOD_JUST_FREED" },
+ { 0, NULL },
+};
+
+int
+sys_query_module(tcp)
+struct tcb *tcp;
+{
+
+ if (exiting(tcp)) {
+ printstr(tcp, tcp->u_arg[0], -1);
+ tprintf(", ");
+ printxval(which, tcp->u_arg[1], "QM_???");
+ tprintf(", ");
+ if (!verbose(tcp)) {
+ tprintf("%#lx, %lu, %#lx", tcp->u_arg[2], tcp->u_arg[3], tcp->u_arg[4]);
+ } else if (tcp->u_rval!=0) {
+ size_t ret;
+ umove(tcp, tcp->u_arg[4], &ret);
+ tprintf("%#lx, %lu, %Zu", tcp->u_arg[2], tcp->u_arg[3], ret);
+ } else if (tcp->u_arg[1]==QM_INFO) {
+ struct module_info mi;
+ size_t ret;
+ umove(tcp, tcp->u_arg[2], &mi);
+ tprintf("{address=%#lx, size=%lu, flags=", mi.addr, mi.size);
+ printflags(modflags, mi.flags, "MOD_???");
+ tprintf(", usecount=%lu}", mi.usecount);
+ umove(tcp, tcp->u_arg[4], &ret);
+ tprintf(", %Zu", ret);
+ } else if ((tcp->u_arg[1]==QM_MODULES) ||
+ (tcp->u_arg[1]==QM_DEPS) ||
+ (tcp->u_arg[1]==QM_REFS)) {
+ size_t ret;
+
+ umove(tcp, tcp->u_arg[4], &ret);
+ tprintf("{");
+ if (!abbrev(tcp)) {
+ char* data = (char*)malloc(tcp->u_arg[3]);
+ char* mod = data;
+ size_t idx;
+
+ if (data==NULL) {
+ fprintf(stderr, "out of memory\n");
+ tprintf(" /* %Zu entries */ ", ret);
+ } else {
+ umoven(tcp, tcp->u_arg[2], tcp->u_arg[3], data);
+ for (idx=0; idx<ret; idx++) {
+ if (idx!=0)
+ tprintf(",");
+ tprintf(mod);
+ mod+=strlen(mod)+1;
+ }
+ free(data);
+ }
+ } else
+ tprintf(" /* %Zu entries */ ", ret);
+ tprintf("}, %Zu", ret);
+ } else if (tcp->u_arg[1]==QM_SYMBOLS) {
+ size_t ret;
+ umove(tcp, tcp->u_arg[4], &ret);
+ tprintf("{");
+ if (!abbrev(tcp)) {
+ char* data = (char *)malloc(tcp->u_arg[3]);
+ struct module_symbol* sym = (struct module_symbol*)data;
+ size_t idx;
+
+ if (data==NULL) {
+ fprintf(stderr, "out of memory\n");
+ tprintf(" /* %Zu entries */ ", ret);
+ } else {
+ umoven(tcp, tcp->u_arg[2], tcp->u_arg[3], data);
+ for (idx=0; idx<ret; idx++) {
+ tprintf("{name=%s, value=%lu} ", data+(long)sym->name, sym->value);
+ sym++;
+ }
+ free(data);
+ }
+ } else
+ tprintf(" /* %Zu entries */ ", ret);
+ tprintf("}, %Zd", ret);
+ } else {
+ printstr(tcp, tcp->u_arg[2], tcp->u_arg[3]);
+ tprintf(", %#lx", tcp->u_arg[4]);
+ }
+ }
+ return 0;
+}
+
+int
+sys_create_module(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ tprintf(", %lu", tcp->u_arg[1]);
+ }
+ return RVAL_HEX;
+}
+
+int
+sys_init_module(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ tprintf(", %#lx", tcp->u_arg[1]);
+ }
+ return 0;
+}
+#endif /* LINUX */
diff --git a/config.guess b/config.guess
new file mode 100755
index 0000000..8229471
--- /dev/null
+++ b/config.guess
@@ -0,0 +1,1453 @@
+#! /bin/sh
+# Attempt to guess a canonical system name.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+# 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+
+timestamp='2004-11-12'
+
+# This file 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.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Originally written by Per Bothner <per@bothner.com>.
+# Please send patches to <config-patches@gnu.org>. Submit a context
+# diff and a properly formatted ChangeLog entry.
+#
+# This script attempts to guess a canonical system name similar to
+# config.sub. If it succeeds, it prints the system name on stdout, and
+# exits with 0. Otherwise, it exits with 1.
+#
+# The plan is that this can be called by configure scripts if you
+# don't specify an explicit build system type.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION]
+
+Output the configuration name of the system \`$me' is run on.
+
+Operation modes:
+ -h, --help print this help, then exit
+ -t, --time-stamp print date of last modification, then exit
+ -v, --version print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+ case $1 in
+ --time-stamp | --time* | -t )
+ echo "$timestamp" ; exit 0 ;;
+ --version | -v )
+ echo "$version" ; exit 0 ;;
+ --help | --h* | -h )
+ echo "$usage"; exit 0 ;;
+ -- ) # Stop option processing
+ shift; break ;;
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+ echo "$me: invalid option $1$help" >&2
+ exit 1 ;;
+ * )
+ break ;;
+ esac
+done
+
+if test $# != 0; then
+ echo "$me: too many arguments$help" >&2
+ exit 1
+fi
+
+trap 'exit 1' 1 2 15
+
+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+# compiler to aid in system detection is discouraged as it requires
+# temporary files to be created and, as you can see below, it is a
+# headache to deal with in a portable fashion.
+
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+# Portable tmp directory creation inspired by the Autoconf team.
+
+set_cc_for_build='
+trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
+trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
+: ${TMPDIR=/tmp} ;
+ { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
+dummy=$tmp/dummy ;
+tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
+case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,) echo "int x;" > $dummy.c ;
+ for c in cc gcc c89 c99 ; do
+ if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+ CC_FOR_BUILD="$c"; break ;
+ fi ;
+ done ;
+ if test x"$CC_FOR_BUILD" = x ; then
+ CC_FOR_BUILD=no_compiler_found ;
+ fi
+ ;;
+ ,,*) CC_FOR_BUILD=$CC ;;
+ ,*,*) CC_FOR_BUILD=$HOST_CC ;;
+esac ;'
+
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+# (ghazi@noc.rutgers.edu 1994-08-24)
+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+ PATH=$PATH:/.attbin ; export PATH
+fi
+
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+# Note: order is significant - the case branches are not exclusive.
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+ *:NetBSD:*:*)
+ # NetBSD (nbsd) targets should (where applicable) match one or
+ # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+ # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
+ # switched to ELF, *-*-netbsd* would select the old
+ # object file format. This provides both forward
+ # compatibility and a consistent mechanism for selecting the
+ # object file format.
+ #
+ # Note: NetBSD doesn't particularly care about the vendor
+ # portion of the name. We always set it to "unknown".
+ sysctl="sysctl -n hw.machine_arch"
+ UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
+ /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+ case "${UNAME_MACHINE_ARCH}" in
+ armeb) machine=armeb-unknown ;;
+ arm*) machine=arm-unknown ;;
+ sh3el) machine=shl-unknown ;;
+ sh3eb) machine=sh-unknown ;;
+ *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+ esac
+ # The Operating System including object format, if it has switched
+ # to ELF recently, or will in the future.
+ case "${UNAME_MACHINE_ARCH}" in
+ arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+ eval $set_cc_for_build
+ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep __ELF__ >/dev/null
+ then
+ # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+ # Return netbsd for either. FIX?
+ os=netbsd
+ else
+ os=netbsdelf
+ fi
+ ;;
+ *)
+ os=netbsd
+ ;;
+ esac
+ # The OS release
+ # Debian GNU/NetBSD machines have a different userland, and
+ # thus, need a distinct triplet. However, they do not need
+ # kernel version information, so it can be replaced with a
+ # suitable tag, in the style of linux-gnu.
+ case "${UNAME_VERSION}" in
+ Debian*)
+ release='-gnu'
+ ;;
+ *)
+ release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+ ;;
+ esac
+ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+ # contains redundant information, the shorter form:
+ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+ echo "${machine}-${os}${release}"
+ exit 0 ;;
+ amd64:OpenBSD:*:*)
+ echo x86_64-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ amiga:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ cats:OpenBSD:*:*)
+ echo arm-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ hp300:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ luna88k:OpenBSD:*:*)
+ echo m88k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ mac68k:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ macppc:OpenBSD:*:*)
+ echo powerpc-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ mvme68k:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ mvme88k:OpenBSD:*:*)
+ echo m88k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ mvmeppc:OpenBSD:*:*)
+ echo powerpc-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ sgi:OpenBSD:*:*)
+ echo mips64-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ sun3:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ *:OpenBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ *:ekkoBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+ exit 0 ;;
+ macppc:MirBSD:*:*)
+ echo powerppc-unknown-mirbsd${UNAME_RELEASE}
+ exit 0 ;;
+ *:MirBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+ exit 0 ;;
+ alpha:OSF1:*:*)
+ case $UNAME_RELEASE in
+ *4.0)
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+ ;;
+ *5.*)
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+ ;;
+ esac
+ # According to Compaq, /usr/sbin/psrinfo has been available on
+ # OSF/1 and Tru64 systems produced since 1995. I hope that
+ # covers most systems running today. This code pipes the CPU
+ # types through head -n 1, so we only detect the type of CPU 0.
+ ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
+ case "$ALPHA_CPU_TYPE" in
+ "EV4 (21064)")
+ UNAME_MACHINE="alpha" ;;
+ "EV4.5 (21064)")
+ UNAME_MACHINE="alpha" ;;
+ "LCA4 (21066/21068)")
+ UNAME_MACHINE="alpha" ;;
+ "EV5 (21164)")
+ UNAME_MACHINE="alphaev5" ;;
+ "EV5.6 (21164A)")
+ UNAME_MACHINE="alphaev56" ;;
+ "EV5.6 (21164PC)")
+ UNAME_MACHINE="alphapca56" ;;
+ "EV5.7 (21164PC)")
+ UNAME_MACHINE="alphapca57" ;;
+ "EV6 (21264)")
+ UNAME_MACHINE="alphaev6" ;;
+ "EV6.7 (21264A)")
+ UNAME_MACHINE="alphaev67" ;;
+ "EV6.8CB (21264C)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.8AL (21264B)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.8CX (21264D)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.9A (21264/EV69A)")
+ UNAME_MACHINE="alphaev69" ;;
+ "EV7 (21364)")
+ UNAME_MACHINE="alphaev7" ;;
+ "EV7.9 (21364A)")
+ UNAME_MACHINE="alphaev79" ;;
+ esac
+ # A Pn.n version is a patched version.
+ # A Vn.n version is a released version.
+ # A Tn.n version is a released field test version.
+ # A Xn.n version is an unreleased experimental baselevel.
+ # 1.2 uses "1.2" for uname -r.
+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ exit 0 ;;
+ Alpha\ *:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # Should we change UNAME_MACHINE based on the output of uname instead
+ # of the specific Alpha model?
+ echo alpha-pc-interix
+ exit 0 ;;
+ 21064:Windows_NT:50:3)
+ echo alpha-dec-winnt3.5
+ exit 0 ;;
+ Amiga*:UNIX_System_V:4.0:*)
+ echo m68k-unknown-sysv4
+ exit 0;;
+ *:[Aa]miga[Oo][Ss]:*:*)
+ echo ${UNAME_MACHINE}-unknown-amigaos
+ exit 0 ;;
+ *:[Mm]orph[Oo][Ss]:*:*)
+ echo ${UNAME_MACHINE}-unknown-morphos
+ exit 0 ;;
+ *:OS/390:*:*)
+ echo i370-ibm-openedition
+ exit 0 ;;
+ *:z/VM:*:*)
+ echo s390-ibm-zvmoe
+ exit 0 ;;
+ *:OS400:*:*)
+ echo powerpc-ibm-os400
+ exit 0 ;;
+ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+ echo arm-acorn-riscix${UNAME_RELEASE}
+ exit 0;;
+ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+ echo hppa1.1-hitachi-hiuxmpp
+ exit 0;;
+ Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+ # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+ if test "`(/bin/universe) 2>/dev/null`" = att ; then
+ echo pyramid-pyramid-sysv3
+ else
+ echo pyramid-pyramid-bsd
+ fi
+ exit 0 ;;
+ NILE*:*:*:dcosx)
+ echo pyramid-pyramid-svr4
+ exit 0 ;;
+ DRS?6000:unix:4.0:6*)
+ echo sparc-icl-nx6
+ exit 0 ;;
+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
+ case `/usr/bin/uname -p` in
+ sparc) echo sparc-icl-nx7 && exit 0 ;;
+ esac ;;
+ sun4H:SunOS:5.*:*)
+ echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+ echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ i86pc:SunOS:5.*:*)
+ echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ sun4*:SunOS:6*:*)
+ # According to config.sub, this is the proper way to canonicalize
+ # SunOS6. Hard to guess exactly what SunOS6 will be like, but
+ # it's likely to be more like Solaris than SunOS4.
+ echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ sun4*:SunOS:*:*)
+ case "`/usr/bin/arch -k`" in
+ Series*|S4*)
+ UNAME_RELEASE=`uname -v`
+ ;;
+ esac
+ # Japanese Language versions have a version number like `4.1.3-JL'.
+ echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+ exit 0 ;;
+ sun3*:SunOS:*:*)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+ exit 0 ;;
+ sun*:*:4.2BSD:*)
+ UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+ test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+ case "`/bin/arch`" in
+ sun3)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+ ;;
+ sun4)
+ echo sparc-sun-sunos${UNAME_RELEASE}
+ ;;
+ esac
+ exit 0 ;;
+ aushp:SunOS:*:*)
+ echo sparc-auspex-sunos${UNAME_RELEASE}
+ exit 0 ;;
+ # The situation for MiNT is a little confusing. The machine name
+ # can be virtually everything (everything which is not
+ # "atarist" or "atariste" at least should have a processor
+ # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
+ # to the lowercase version "mint" (or "freemint"). Finally
+ # the system name "TOS" denotes a system which is actually not
+ # MiNT. But MiNT is downward compatible to TOS, so this should
+ # be no problem.
+ atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit 0 ;;
+ atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit 0 ;;
+ *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit 0 ;;
+ milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+ echo m68k-milan-mint${UNAME_RELEASE}
+ exit 0 ;;
+ hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+ echo m68k-hades-mint${UNAME_RELEASE}
+ exit 0 ;;
+ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+ echo m68k-unknown-mint${UNAME_RELEASE}
+ exit 0 ;;
+ m68k:machten:*:*)
+ echo m68k-apple-machten${UNAME_RELEASE}
+ exit 0 ;;
+ powerpc:machten:*:*)
+ echo powerpc-apple-machten${UNAME_RELEASE}
+ exit 0 ;;
+ RISC*:Mach:*:*)
+ echo mips-dec-mach_bsd4.3
+ exit 0 ;;
+ RISC*:ULTRIX:*:*)
+ echo mips-dec-ultrix${UNAME_RELEASE}
+ exit 0 ;;
+ VAX*:ULTRIX*:*:*)
+ echo vax-dec-ultrix${UNAME_RELEASE}
+ exit 0 ;;
+ 2020:CLIX:*:* | 2430:CLIX:*:*)
+ echo clipper-intergraph-clix${UNAME_RELEASE}
+ exit 0 ;;
+ mips:*:*:UMIPS | mips:*:*:RISCos)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+#ifdef __cplusplus
+#include <stdio.h> /* for printf() prototype */
+ int main (int argc, char *argv[]) {
+#else
+ int main (argc, argv) int argc; char *argv[]; {
+#endif
+ #if defined (host_mips) && defined (MIPSEB)
+ #if defined (SYSTYPE_SYSV)
+ printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+ #endif
+ #if defined (SYSTYPE_SVR4)
+ printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+ #endif
+ #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
+ printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+ #endif
+ #endif
+ exit (-1);
+ }
+EOF
+ $CC_FOR_BUILD -o $dummy $dummy.c \
+ && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
+ && exit 0
+ echo mips-mips-riscos${UNAME_RELEASE}
+ exit 0 ;;
+ Motorola:PowerMAX_OS:*:*)
+ echo powerpc-motorola-powermax
+ exit 0 ;;
+ Motorola:*:4.3:PL8-*)
+ echo powerpc-harris-powermax
+ exit 0 ;;
+ Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
+ echo powerpc-harris-powermax
+ exit 0 ;;
+ Night_Hawk:Power_UNIX:*:*)
+ echo powerpc-harris-powerunix
+ exit 0 ;;
+ m88k:CX/UX:7*:*)
+ echo m88k-harris-cxux7
+ exit 0 ;;
+ m88k:*:4*:R4*)
+ echo m88k-motorola-sysv4
+ exit 0 ;;
+ m88k:*:3*:R3*)
+ echo m88k-motorola-sysv3
+ exit 0 ;;
+ AViiON:dgux:*:*)
+ # DG/UX returns AViiON for all architectures
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
+ if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+ then
+ if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+ [ ${TARGET_BINARY_INTERFACE}x = x ]
+ then
+ echo m88k-dg-dgux${UNAME_RELEASE}
+ else
+ echo m88k-dg-dguxbcs${UNAME_RELEASE}
+ fi
+ else
+ echo i586-dg-dgux${UNAME_RELEASE}
+ fi
+ exit 0 ;;
+ M88*:DolphinOS:*:*) # DolphinOS (SVR3)
+ echo m88k-dolphin-sysv3
+ exit 0 ;;
+ M88*:*:R3*:*)
+ # Delta 88k system running SVR3
+ echo m88k-motorola-sysv3
+ exit 0 ;;
+ XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+ echo m88k-tektronix-sysv3
+ exit 0 ;;
+ Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+ echo m68k-tektronix-bsd
+ exit 0 ;;
+ *:IRIX*:*:*)
+ echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+ exit 0 ;;
+ ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
+ exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
+ i*86:AIX:*:*)
+ echo i386-ibm-aix
+ exit 0 ;;
+ ia64:AIX:*:*)
+ if [ -x /usr/bin/oslevel ] ; then
+ IBM_REV=`/usr/bin/oslevel`
+ else
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ fi
+ echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+ exit 0 ;;
+ *:AIX:2:3)
+ if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <sys/systemcfg.h>
+
+ main()
+ {
+ if (!__power_pc())
+ exit(1);
+ puts("powerpc-ibm-aix3.2.5");
+ exit(0);
+ }
+EOF
+ $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
+ echo rs6000-ibm-aix3.2.5
+ elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+ echo rs6000-ibm-aix3.2.4
+ else
+ echo rs6000-ibm-aix3.2
+ fi
+ exit 0 ;;
+ *:AIX:*:[45])
+ IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+ if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+ IBM_ARCH=rs6000
+ else
+ IBM_ARCH=powerpc
+ fi
+ if [ -x /usr/bin/oslevel ] ; then
+ IBM_REV=`/usr/bin/oslevel`
+ else
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ fi
+ echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+ exit 0 ;;
+ *:AIX:*:*)
+ echo rs6000-ibm-aix
+ exit 0 ;;
+ ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+ echo romp-ibm-bsd4.4
+ exit 0 ;;
+ ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
+ echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
+ exit 0 ;; # report: romp-ibm BSD 4.3
+ *:BOSX:*:*)
+ echo rs6000-bull-bosx
+ exit 0 ;;
+ DPX/2?00:B.O.S.:*:*)
+ echo m68k-bull-sysv3
+ exit 0 ;;
+ 9000/[34]??:4.3bsd:1.*:*)
+ echo m68k-hp-bsd
+ exit 0 ;;
+ hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+ echo m68k-hp-bsd4.4
+ exit 0 ;;
+ 9000/[34678]??:HP-UX:*:*)
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ case "${UNAME_MACHINE}" in
+ 9000/31? ) HP_ARCH=m68000 ;;
+ 9000/[34]?? ) HP_ARCH=m68k ;;
+ 9000/[678][0-9][0-9])
+ if [ -x /usr/bin/getconf ]; then
+ sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+ case "${sc_cpu_version}" in
+ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+ 532) # CPU_PA_RISC2_0
+ case "${sc_kernel_bits}" in
+ 32) HP_ARCH="hppa2.0n" ;;
+ 64) HP_ARCH="hppa2.0w" ;;
+ '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
+ esac ;;
+ esac
+ fi
+ if [ "${HP_ARCH}" = "" ]; then
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+
+ #define _HPUX_SOURCE
+ #include <stdlib.h>
+ #include <unistd.h>
+
+ int main ()
+ {
+ #if defined(_SC_KERNEL_BITS)
+ long bits = sysconf(_SC_KERNEL_BITS);
+ #endif
+ long cpu = sysconf (_SC_CPU_VERSION);
+
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+ case CPU_PA_RISC2_0:
+ #if defined(_SC_KERNEL_BITS)
+ switch (bits)
+ {
+ case 64: puts ("hppa2.0w"); break;
+ case 32: puts ("hppa2.0n"); break;
+ default: puts ("hppa2.0"); break;
+ } break;
+ #else /* !defined(_SC_KERNEL_BITS) */
+ puts ("hppa2.0"); break;
+ #endif
+ default: puts ("hppa1.0"); break;
+ }
+ exit (0);
+ }
+EOF
+ (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+ test -z "$HP_ARCH" && HP_ARCH=hppa
+ fi ;;
+ esac
+ if [ ${HP_ARCH} = "hppa2.0w" ]
+ then
+ # avoid double evaluation of $set_cc_for_build
+ test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
+ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
+ then
+ HP_ARCH="hppa2.0w"
+ else
+ HP_ARCH="hppa64"
+ fi
+ fi
+ echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+ exit 0 ;;
+ ia64:HP-UX:*:*)
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ echo ia64-hp-hpux${HPUX_REV}
+ exit 0 ;;
+ 3050*:HI-UX:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <unistd.h>
+ int
+ main ()
+ {
+ long cpu = sysconf (_SC_CPU_VERSION);
+ /* The order matters, because CPU_IS_HP_MC68K erroneously returns
+ true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
+ results, however. */
+ if (CPU_IS_PA_RISC (cpu))
+ {
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
+ case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
+ default: puts ("hppa-hitachi-hiuxwe2"); break;
+ }
+ }
+ else if (CPU_IS_HP_MC68K (cpu))
+ puts ("m68k-hitachi-hiuxwe2");
+ else puts ("unknown-hitachi-hiuxwe2");
+ exit (0);
+ }
+EOF
+ $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
+ echo unknown-hitachi-hiuxwe2
+ exit 0 ;;
+ 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+ echo hppa1.1-hp-bsd
+ exit 0 ;;
+ 9000/8??:4.3bsd:*:*)
+ echo hppa1.0-hp-bsd
+ exit 0 ;;
+ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+ echo hppa1.0-hp-mpeix
+ exit 0 ;;
+ hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+ echo hppa1.1-hp-osf
+ exit 0 ;;
+ hp8??:OSF1:*:*)
+ echo hppa1.0-hp-osf
+ exit 0 ;;
+ i*86:OSF1:*:*)
+ if [ -x /usr/sbin/sysversion ] ; then
+ echo ${UNAME_MACHINE}-unknown-osf1mk
+ else
+ echo ${UNAME_MACHINE}-unknown-osf1
+ fi
+ exit 0 ;;
+ parisc*:Lites*:*:*)
+ echo hppa1.1-hp-lites
+ exit 0 ;;
+ C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+ echo c1-convex-bsd
+ exit 0 ;;
+ C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+ exit 0 ;;
+ C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+ echo c34-convex-bsd
+ exit 0 ;;
+ C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+ echo c38-convex-bsd
+ exit 0 ;;
+ C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+ echo c4-convex-bsd
+ exit 0 ;;
+ CRAY*Y-MP:*:*:*)
+ echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ CRAY*[A-Z]90:*:*:*)
+ echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+ -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ CRAY*TS:*:*:*)
+ echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ CRAY*T3E:*:*:*)
+ echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ CRAY*SV1:*:*:*)
+ echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ *:UNICOS/mp:*:*)
+ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+ FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit 0 ;;
+ 5000:UNIX_System_V:4.*:*)
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit 0 ;;
+ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+ echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+ exit 0 ;;
+ sparc*:BSD/OS:*:*)
+ echo sparc-unknown-bsdi${UNAME_RELEASE}
+ exit 0 ;;
+ *:BSD/OS:*:*)
+ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+ exit 0 ;;
+ *:FreeBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+ exit 0 ;;
+ i*:CYGWIN*:*)
+ echo ${UNAME_MACHINE}-pc-cygwin
+ exit 0 ;;
+ i*:MINGW*:*)
+ echo ${UNAME_MACHINE}-pc-mingw32
+ exit 0 ;;
+ i*:PW*:*)
+ echo ${UNAME_MACHINE}-pc-pw32
+ exit 0 ;;
+ x86:Interix*:[34]*)
+ echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
+ exit 0 ;;
+ [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
+ echo i${UNAME_MACHINE}-pc-mks
+ exit 0 ;;
+ i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+ # UNAME_MACHINE based on the output of uname instead of i386?
+ echo i586-pc-interix
+ exit 0 ;;
+ i*:UWIN*:*)
+ echo ${UNAME_MACHINE}-pc-uwin
+ exit 0 ;;
+ p*:CYGWIN*:*)
+ echo powerpcle-unknown-cygwin
+ exit 0 ;;
+ prep*:SunOS:5.*:*)
+ echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ *:GNU:*:*)
+ # the GNU system
+ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+ exit 0 ;;
+ *:GNU/*:*:*)
+ # other systems with GNU libc and userland
+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+ exit 0 ;;
+ i*86:Minix:*:*)
+ echo ${UNAME_MACHINE}-pc-minix
+ exit 0 ;;
+ arm*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ cris:Linux:*:*)
+ echo cris-axis-linux-gnu
+ exit 0 ;;
+ crisv32:Linux:*:*)
+ echo crisv32-axis-linux-gnu
+ exit 0 ;;
+ frv:Linux:*:*)
+ echo frv-unknown-linux-gnu
+ exit 0 ;;
+ ia64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ m32r*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ m68*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ mips:Linux:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #undef CPU
+ #undef mips
+ #undef mipsel
+ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+ CPU=mipsel
+ #else
+ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+ CPU=mips
+ #else
+ CPU=
+ #endif
+ #endif
+EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
+ test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
+ ;;
+ mips64:Linux:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #undef CPU
+ #undef mips64
+ #undef mips64el
+ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+ CPU=mips64el
+ #else
+ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+ CPU=mips64
+ #else
+ CPU=
+ #endif
+ #endif
+EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
+ test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
+ ;;
+ ppc:Linux:*:*)
+ echo powerpc-unknown-linux-gnu
+ exit 0 ;;
+ ppc64:Linux:*:*)
+ echo powerpc64-unknown-linux-gnu
+ exit 0 ;;
+ alpha:Linux:*:*)
+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+ EV5) UNAME_MACHINE=alphaev5 ;;
+ EV56) UNAME_MACHINE=alphaev56 ;;
+ PCA56) UNAME_MACHINE=alphapca56 ;;
+ PCA57) UNAME_MACHINE=alphapca56 ;;
+ EV6) UNAME_MACHINE=alphaev6 ;;
+ EV67) UNAME_MACHINE=alphaev67 ;;
+ EV68*) UNAME_MACHINE=alphaev68 ;;
+ esac
+ objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
+ if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+ exit 0 ;;
+ parisc:Linux:*:* | hppa:Linux:*:*)
+ # Look for CPU level
+ case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+ PA7*) echo hppa1.1-unknown-linux-gnu ;;
+ PA8*) echo hppa2.0-unknown-linux-gnu ;;
+ *) echo hppa-unknown-linux-gnu ;;
+ esac
+ exit 0 ;;
+ parisc64:Linux:*:* | hppa64:Linux:*:*)
+ echo hppa64-unknown-linux-gnu
+ exit 0 ;;
+ s390:Linux:*:* | s390x:Linux:*:*)
+ echo ${UNAME_MACHINE}-ibm-linux
+ exit 0 ;;
+ sh64*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ sh*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ sparc:Linux:*:* | sparc64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ x86_64:Linux:*:*)
+ echo x86_64-unknown-linux-gnu
+ exit 0 ;;
+ i*86:Linux:*:*)
+ # The BFD linker knows what the default object file format is, so
+ # first see if it will tell us. cd to the root directory to prevent
+ # problems with other programs or directories called `ld' in the path.
+ # Set LC_ALL=C to ensure ld outputs messages in English.
+ ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
+ | sed -ne '/supported targets:/!d
+ s/[ ][ ]*/ /g
+ s/.*supported targets: *//
+ s/ .*//
+ p'`
+ case "$ld_supported_targets" in
+ elf32-i386)
+ TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
+ ;;
+ a.out-i386-linux)
+ echo "${UNAME_MACHINE}-pc-linux-gnuaout"
+ exit 0 ;;
+ coff-i386)
+ echo "${UNAME_MACHINE}-pc-linux-gnucoff"
+ exit 0 ;;
+ "")
+ # Either a pre-BFD a.out linker (linux-gnuoldld) or
+ # one that does not give us useful --help.
+ echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
+ exit 0 ;;
+ esac
+ # Determine whether the default compiler is a.out or elf
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <features.h>
+ #ifdef __ELF__
+ # ifdef __GLIBC__
+ # if __GLIBC__ >= 2
+ LIBC=gnu
+ # else
+ LIBC=gnulibc1
+ # endif
+ # else
+ LIBC=gnulibc1
+ # endif
+ #else
+ #ifdef __INTEL_COMPILER
+ LIBC=gnu
+ #else
+ LIBC=gnuaout
+ #endif
+ #endif
+ #ifdef __dietlibc__
+ LIBC=dietlibc
+ #endif
+EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
+ test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
+ test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
+ ;;
+ i*86:DYNIX/ptx:4*:*)
+ # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+ # earlier versions are messed up and put the nodename in both
+ # sysname and nodename.
+ echo i386-sequent-sysv4
+ exit 0 ;;
+ i*86:UNIX_SV:4.2MP:2.*)
+ # Unixware is an offshoot of SVR4, but it has its own version
+ # number series starting with 2...
+ # I am not positive that other SVR4 systems won't match this,
+ # I just have to hope. -- rms.
+ # Use sysv4.2uw... so that sysv4* matches it.
+ echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+ exit 0 ;;
+ i*86:OS/2:*:*)
+ # If we were able to find `uname', then EMX Unix compatibility
+ # is probably installed.
+ echo ${UNAME_MACHINE}-pc-os2-emx
+ exit 0 ;;
+ i*86:XTS-300:*:STOP)
+ echo ${UNAME_MACHINE}-unknown-stop
+ exit 0 ;;
+ i*86:atheos:*:*)
+ echo ${UNAME_MACHINE}-unknown-atheos
+ exit 0 ;;
+ i*86:syllable:*:*)
+ echo ${UNAME_MACHINE}-pc-syllable
+ exit 0 ;;
+ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
+ echo i386-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ i*86:*DOS:*:*)
+ echo ${UNAME_MACHINE}-pc-msdosdjgpp
+ exit 0 ;;
+ i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+ UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+ if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+ echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+ else
+ echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+ fi
+ exit 0 ;;
+ i*86:*:5:[78]*)
+ case `/bin/uname -X | grep "^Machine"` in
+ *486*) UNAME_MACHINE=i486 ;;
+ *Pentium) UNAME_MACHINE=i586 ;;
+ *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+ esac
+ echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+ exit 0 ;;
+ i*86:*:3.2:*)
+ if test -f /usr/options/cb.name; then
+ UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+ echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+ elif /bin/uname -X 2>/dev/null >/dev/null ; then
+ UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
+ (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
+ (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
+ && UNAME_MACHINE=i586
+ (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
+ && UNAME_MACHINE=i686
+ (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
+ && UNAME_MACHINE=i686
+ echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+ else
+ echo ${UNAME_MACHINE}-pc-sysv32
+ fi
+ exit 0 ;;
+ pc:*:*:*)
+ # Left here for compatibility:
+ # uname -m prints for DJGPP always 'pc', but it prints nothing about
+ # the processor, so we play safe by assuming i386.
+ echo i386-pc-msdosdjgpp
+ exit 0 ;;
+ Intel:Mach:3*:*)
+ echo i386-pc-mach3
+ exit 0 ;;
+ paragon:*:*:*)
+ echo i860-intel-osf1
+ exit 0 ;;
+ i860:*:4.*:*) # i860-SVR4
+ if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+ echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+ else # Add other i860-SVR4 vendors below as they are discovered.
+ echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
+ fi
+ exit 0 ;;
+ mini*:CTIX:SYS*5:*)
+ # "miniframe"
+ echo m68010-convergent-sysv
+ exit 0 ;;
+ mc68k:UNIX:SYSTEM5:3.51m)
+ echo m68k-convergent-sysv
+ exit 0 ;;
+ M680?0:D-NIX:5.3:*)
+ echo m68k-diab-dnix
+ exit 0 ;;
+ M68*:*:R3V[5678]*:*)
+ test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
+ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
+ OS_REL=''
+ test -r /etc/.relid \
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && echo i486-ncr-sysv4.3${OS_REL} && exit 0
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+ && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
+ 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && echo i486-ncr-sysv4 && exit 0 ;;
+ m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
+ echo m68k-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ mc68030:UNIX_System_V:4.*:*)
+ echo m68k-atari-sysv4
+ exit 0 ;;
+ TSUNAMI:LynxOS:2.*:*)
+ echo sparc-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ rs6000:LynxOS:2.*:*)
+ echo rs6000-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
+ echo powerpc-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ SM[BE]S:UNIX_SV:*:*)
+ echo mips-dde-sysv${UNAME_RELEASE}
+ exit 0 ;;
+ RM*:ReliantUNIX-*:*:*)
+ echo mips-sni-sysv4
+ exit 0 ;;
+ RM*:SINIX-*:*:*)
+ echo mips-sni-sysv4
+ exit 0 ;;
+ *:SINIX-*:*:*)
+ if uname -p 2>/dev/null >/dev/null ; then
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ echo ${UNAME_MACHINE}-sni-sysv4
+ else
+ echo ns32k-sni-sysv
+ fi
+ exit 0 ;;
+ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+ # says <Richard.M.Bartel@ccMail.Census.GOV>
+ echo i586-unisys-sysv4
+ exit 0 ;;
+ *:UNIX_System_V:4*:FTX*)
+ # From Gerald Hewes <hewes@openmarket.com>.
+ # How about differentiating between stratus architectures? -djm
+ echo hppa1.1-stratus-sysv4
+ exit 0 ;;
+ *:*:*:FTX*)
+ # From seanf@swdc.stratus.com.
+ echo i860-stratus-sysv4
+ exit 0 ;;
+ *:VOS:*:*)
+ # From Paul.Green@stratus.com.
+ echo hppa1.1-stratus-vos
+ exit 0 ;;
+ mc68*:A/UX:*:*)
+ echo m68k-apple-aux${UNAME_RELEASE}
+ exit 0 ;;
+ news*:NEWS-OS:6*:*)
+ echo mips-sony-newsos6
+ exit 0 ;;
+ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+ if [ -d /usr/nec ]; then
+ echo mips-nec-sysv${UNAME_RELEASE}
+ else
+ echo mips-unknown-sysv${UNAME_RELEASE}
+ fi
+ exit 0 ;;
+ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
+ echo powerpc-be-beos
+ exit 0 ;;
+ BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
+ echo powerpc-apple-beos
+ exit 0 ;;
+ BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
+ echo i586-pc-beos
+ exit 0 ;;
+ SX-4:SUPER-UX:*:*)
+ echo sx4-nec-superux${UNAME_RELEASE}
+ exit 0 ;;
+ SX-5:SUPER-UX:*:*)
+ echo sx5-nec-superux${UNAME_RELEASE}
+ exit 0 ;;
+ SX-6:SUPER-UX:*:*)
+ echo sx6-nec-superux${UNAME_RELEASE}
+ exit 0 ;;
+ Power*:Rhapsody:*:*)
+ echo powerpc-apple-rhapsody${UNAME_RELEASE}
+ exit 0 ;;
+ *:Rhapsody:*:*)
+ echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+ exit 0 ;;
+ *:Darwin:*:*)
+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
+ case $UNAME_PROCESSOR in
+ *86) UNAME_PROCESSOR=i686 ;;
+ unknown) UNAME_PROCESSOR=powerpc ;;
+ esac
+ echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+ exit 0 ;;
+ *:procnto*:*:* | *:QNX:[0123456789]*:*)
+ UNAME_PROCESSOR=`uname -p`
+ if test "$UNAME_PROCESSOR" = "x86"; then
+ UNAME_PROCESSOR=i386
+ UNAME_MACHINE=pc
+ fi
+ echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+ exit 0 ;;
+ *:QNX:*:4*)
+ echo i386-pc-qnx
+ exit 0 ;;
+ NSR-?:NONSTOP_KERNEL:*:*)
+ echo nsr-tandem-nsk${UNAME_RELEASE}
+ exit 0 ;;
+ *:NonStop-UX:*:*)
+ echo mips-compaq-nonstopux
+ exit 0 ;;
+ BS2000:POSIX*:*:*)
+ echo bs2000-siemens-sysv
+ exit 0 ;;
+ DS/*:UNIX_System_V:*:*)
+ echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+ exit 0 ;;
+ *:Plan9:*:*)
+ # "uname -m" is not consistent, so use $cputype instead. 386
+ # is converted to i386 for consistency with other x86
+ # operating systems.
+ if test "$cputype" = "386"; then
+ UNAME_MACHINE=i386
+ else
+ UNAME_MACHINE="$cputype"
+ fi
+ echo ${UNAME_MACHINE}-unknown-plan9
+ exit 0 ;;
+ *:TOPS-10:*:*)
+ echo pdp10-unknown-tops10
+ exit 0 ;;
+ *:TENEX:*:*)
+ echo pdp10-unknown-tenex
+ exit 0 ;;
+ KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+ echo pdp10-dec-tops20
+ exit 0 ;;
+ XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+ echo pdp10-xkl-tops20
+ exit 0 ;;
+ *:TOPS-20:*:*)
+ echo pdp10-unknown-tops20
+ exit 0 ;;
+ *:ITS:*:*)
+ echo pdp10-unknown-its
+ exit 0 ;;
+ SEI:*:*:SEIUX)
+ echo mips-sei-seiux${UNAME_RELEASE}
+ exit 0 ;;
+ *:DragonFly:*:*)
+ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+ exit 0 ;;
+ *:*VMS:*:*)
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ case "${UNAME_MACHINE}" in
+ A*) echo alpha-dec-vms && exit 0 ;;
+ I*) echo ia64-dec-vms && exit 0 ;;
+ V*) echo vax-dec-vms && exit 0 ;;
+ esac ;;
+ *:XENIX:*:SysV)
+ echo i386-pc-xenix
+ exit 0 ;;
+esac
+
+#echo '(No uname command or uname output not recognized.)' 1>&2
+#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
+
+eval $set_cc_for_build
+cat >$dummy.c <<EOF
+#ifdef _SEQUENT_
+# include <sys/types.h>
+# include <sys/utsname.h>
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+ /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
+ I don't know.... */
+ printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+ printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+ "4"
+#else
+ ""
+#endif
+ ); exit (0);
+#endif
+#endif
+
+#if defined (__arm) && defined (__acorn) && defined (__unix)
+ printf ("arm-acorn-riscix"); exit (0);
+#endif
+
+#if defined (hp300) && !defined (hpux)
+ printf ("m68k-hp-bsd\n"); exit (0);
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+ int version;
+ version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+ if (version < 4)
+ printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+ else
+ printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+ exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+ printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+ printf ("ns32k-encore-mach\n"); exit (0);
+#else
+ printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+ printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+ printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+ printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+ struct utsname un;
+
+ uname(&un);
+
+ if (strncmp(un.version, "V2", 2) == 0) {
+ printf ("i386-sequent-ptx2\n"); exit (0);
+ }
+ if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+ printf ("i386-sequent-ptx1\n"); exit (0);
+ }
+ printf ("i386-sequent-ptx\n"); exit (0);
+
+#endif
+
+#if defined (vax)
+# if !defined (ultrix)
+# include <sys/param.h>
+# if defined (BSD)
+# if BSD == 43
+ printf ("vax-dec-bsd4.3\n"); exit (0);
+# else
+# if BSD == 199006
+ printf ("vax-dec-bsd4.3reno\n"); exit (0);
+# else
+ printf ("vax-dec-bsd\n"); exit (0);
+# endif
+# endif
+# else
+ printf ("vax-dec-bsd\n"); exit (0);
+# endif
+# else
+ printf ("vax-dec-ultrix\n"); exit (0);
+# endif
+#endif
+
+#if defined (alliant) && defined (i860)
+ printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+ exit (1);
+}
+EOF
+
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0
+
+# Apollos put the system type in the environment.
+
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
+
+# Convex versions that predate uname can use getsysinfo(1)
+
+if [ -x /usr/convex/getsysinfo ]
+then
+ case `getsysinfo -f cpu_type` in
+ c1*)
+ echo c1-convex-bsd
+ exit 0 ;;
+ c2*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+ exit 0 ;;
+ c34*)
+ echo c34-convex-bsd
+ exit 0 ;;
+ c38*)
+ echo c38-convex-bsd
+ exit 0 ;;
+ c4*)
+ echo c4-convex-bsd
+ exit 0 ;;
+ esac
+fi
+
+cat >&2 <<EOF
+$0: unable to guess system type
+
+This script, last modified $timestamp, has failed to recognize
+the operating system you are using. It is advised that you
+download the most up to date version of the config scripts from
+
+ ftp://ftp.gnu.org/pub/gnu/config/
+
+If the version you run ($0) is already up to date, please
+send the following data and any information you think might be
+pertinent to <config-patches@gnu.org> in order to provide the needed
+information to handle your system.
+
+config.guess timestamp = $timestamp
+
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
+
+hostinfo = `(hostinfo) 2>/dev/null`
+/bin/universe = `(/bin/universe) 2>/dev/null`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
+/bin/arch = `(/bin/arch) 2>/dev/null`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+
+UNAME_MACHINE = ${UNAME_MACHINE}
+UNAME_RELEASE = ${UNAME_RELEASE}
+UNAME_SYSTEM = ${UNAME_SYSTEM}
+UNAME_VERSION = ${UNAME_VERSION}
+EOF
+
+exit 1
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/config.h.in b/config.h.in
new file mode 100644
index 0000000..4204290
--- /dev/null
+++ b/config.h.in
@@ -0,0 +1,412 @@
+/* config.h.in. Generated from configure.ac by autoheader. */
+
+/* Define for the Alpha architecture. */
+#undef ALPHA
+
+/* Define for the ARM architecture. */
+#undef ARM
+
+/* Define for the FreeBSD operating system. */
+#undef FREEBSD
+
+/* Define to the type of elements in the array set by `getgroups'. Usually
+ this is either `int' or `gid_t'. */
+#undef GETGROUPS_T
+
+/* Define to 1 if you have the <asm/reg.h> header file. */
+#undef HAVE_ASM_REG_H
+
+/* Define to 1 if you have the <asm/sigcontext.h> header file. */
+#undef HAVE_ASM_SIGCONTEXT_H
+
+/* Define to 1 if you have the <asm/sysmips.h> header file. */
+#undef HAVE_ASM_SYSMIPS_H
+
+/* Define to 1 if you have the declaration of `sys_errlist', and to 0 if you
+ don't. */
+#undef HAVE_DECL_SYS_ERRLIST
+
+/* Define to 1 if you have the declaration of `sys_siglist', and to 0 if you
+ don't. */
+#undef HAVE_DECL_SYS_SIGLIST
+
+/* Define to 1 if you have the declaration of `_sys_siglist', and to 0 if you
+ don't. */
+#undef HAVE_DECL__SYS_SIGLIST
+
+/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
+ */
+#undef HAVE_DIRENT_H
+
+/* Define to 1 if you have the `getdents' function. */
+#undef HAVE_GETDENTS
+
+/* Define to 1 if you have the `if_indextoname' function. */
+#undef HAVE_IF_INDEXTONAME
+
+/* Define to 1 if you have the `inet_ntop' function. */
+#undef HAVE_INET_NTOP
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define to 1 if you have the <ioctls.h> header file. */
+#undef HAVE_IOCTLS_H
+
+/* Define to 1 if you have the <libaio.h> header file. */
+#undef HAVE_LIBAIO_H
+
+/* Define to 1 if you have the `nsl' library (-lnsl). */
+#undef HAVE_LIBNSL
+
+/* Define to 1 if you have the <linux/icmp.h> header file. */
+#undef HAVE_LINUX_ICMP_H
+
+/* Define to 1 if you have the <linux/if_packet.h> header file. */
+#undef HAVE_LINUX_IF_PACKET_H
+
+/* Define to 1 if you have the <linux/in6.h> header file. */
+#undef HAVE_LINUX_IN6_H
+
+/* Define to 1 if you have the <linux/netlink.h> header file. */
+#undef HAVE_LINUX_NETLINK_H
+
+/* Define to 1 if you have the <linux/ptrace.h> header file. */
+#undef HAVE_LINUX_PTRACE_H
+
+/* Define to 1 if you have the <linux/utsname.h> header file. */
+#undef HAVE_LINUX_UTSNAME_H
+
+/* Define if long long is little-endian. */
+#undef HAVE_LITTLE_ENDIAN_LONG_LONG
+
+/* Define to 1 if the system has the type `long long'. */
+#undef HAVE_LONG_LONG
+
+/* Define if off_t is a long long. */
+#undef HAVE_LONG_LONG_OFF_T
+
+/* Define if rlim_t is a long long. */
+#undef HAVE_LONG_LONG_RLIM_T
+
+/* Define to 1 if you have the `mctl' function. */
+#undef HAVE_MCTL
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define if you have a SVR4 MP type procfs. I.E. /dev/xxx/ctl,
+ /dev/xxx/status. Also implies that you have the pr_lwp member in prstatus.
+ */
+#undef HAVE_MP_PROCFS
+
+/* Define to 1 if you have the <mqueue.h> header file. */
+#undef HAVE_MQUEUE_H
+
+/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
+#undef HAVE_NDIR_H
+
+/* Define to 1 if you have the <netinet/tcp.h> header file. */
+#undef HAVE_NETINET_TCP_H
+
+/* Define to 1 if you have the <netinet/udp.h> header file. */
+#undef HAVE_NETINET_UDP_H
+
+/* Define if you have SVR4 and the poll system call works on /proc files. */
+#undef HAVE_POLLABLE_PROCFS
+
+/* Define to 1 if you have the <poll.h> header file. */
+#undef HAVE_POLL_H
+
+/* Define to 1 if you have the `prctl' function. */
+#undef HAVE_PRCTL
+
+/* Define to 1 if you have the `pread' function. */
+#undef HAVE_PREAD
+
+/* Define if the prstatus structure in sys/procfs.h has a pr_syscall member.
+ */
+#undef HAVE_PR_SYSCALL
+
+/* Define to 1 if you have the `sendmsg' function. */
+#undef HAVE_SENDMSG
+
+/* Define to 1 if you have the `sigaction' function. */
+#undef HAVE_SIGACTION
+
+/* Define to 1 if the system has the type `siginfo_t'. */
+#undef HAVE_SIGINFO_T
+
+/* Define to 1 if the system has the type `sig_atomic_t'. */
+#undef HAVE_SIG_ATOMIC_T
+
+/* Define if stat64 is available in asm/stat.h. */
+#undef HAVE_STAT64
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define to 1 if you have the `strerror' function. */
+#undef HAVE_STRERROR
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define to 1 if you have the <stropts.h> header file. */
+#undef HAVE_STROPTS_H
+
+/* Define to 1 if you have the `strsignal' function. */
+#undef HAVE_STRSIGNAL
+
+/* Define to 1 if the system has the type `struct ia64_fpreg'. */
+#undef HAVE_STRUCT_IA64_FPREG
+
+/* Define to 1 if `msg_control' is member of `struct msghdr'. */
+#undef HAVE_STRUCT_MSGHDR_MSG_CONTROL
+
+/* Define to 1 if the system has the type `struct opthdr'. */
+#undef HAVE_STRUCT_OPTHDR
+
+/* Define to 1 if the system has the type `struct pt_all_user_regs'. */
+#undef HAVE_STRUCT_PT_ALL_USER_REGS
+
+/* Define to 1 if `sin6_scope_id' is member of `struct sockaddr_in6'. */
+#undef HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID
+
+/* Define to 1 if `st_aclcnt' is member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_ACLCNT
+
+/* Define to 1 if `st_blksize' is member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_BLKSIZE
+
+/* Define to 1 if `st_blocks' is member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_BLOCKS
+
+/* Define to 1 if `st_flags' is member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_FLAGS
+
+/* Define to 1 if `st_fstype' is member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_FSTYPE
+
+/* Define to 1 if `st_gen' is member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_GEN
+
+/* Define to 1 if `st_level' is member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_LEVEL
+
+/* Define to 1 if `st_rdev' is member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_RDEV
+
+/* Define to 1 if `ACCEPTOR_id' is member of `struct T_conn_res'. */
+#undef HAVE_STRUCT_T_CONN_RES_ACCEPTOR_ID
+
+/* Define to 1 if `QUEUE_ptr' is member of `struct T_conn_res'. */
+#undef HAVE_STRUCT_T_CONN_RES_QUEUE_PTR
+
+/* Define to 1 if the system has the type `struct t_opthdr'. */
+#undef HAVE_STRUCT_T_OPTHDR
+
+/* Define to 1 if the system has the type `struct user_desc'. */
+#undef HAVE_STRUCT_USER_DESC
+
+/* Define to 1 if the system has the type `struct __old_kernel_stat'. */
+#undef HAVE_STRUCT___OLD_KERNEL_STAT
+
+/* Define to 1 if you have the <sys/acl.h> header file. */
+#undef HAVE_SYS_ACL_H
+
+/* Define to 1 if you have the <sys/aio.h> header file. */
+#undef HAVE_SYS_AIO_H
+
+/* Define to 1 if you have the <sys/asynch.h> header file. */
+#undef HAVE_SYS_ASYNCH_H
+
+/* Define to 1 if you have the <sys/conf.h> header file. */
+#undef HAVE_SYS_CONF_H
+
+/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
+ */
+#undef HAVE_SYS_DIR_H
+
+/* Define to 1 if you have the <sys/door.h> header file. */
+#undef HAVE_SYS_DOOR_H
+
+/* Define to 1 if you have the <sys/epoll.h> header file. */
+#undef HAVE_SYS_EPOLL_H
+
+/* Define to 1 if you have the <sys/filio.h> header file. */
+#undef HAVE_SYS_FILIO_H
+
+/* Define to 1 if you have the <sys/ioctl.h> header file. */
+#undef HAVE_SYS_IOCTL_H
+
+/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
+ */
+#undef HAVE_SYS_NDIR_H
+
+/* Define to 1 if you have the <sys/nscsys.h> header file. */
+#undef HAVE_SYS_NSCSYS_H
+
+/* Define to 1 if you have the <sys/poll.h> header file. */
+#undef HAVE_SYS_POLL_H
+
+/* Define to 1 if you have the <sys/ptrace.h> header file. */
+#undef HAVE_SYS_PTRACE_H
+
+/* Define to 1 if you have the <sys/reg.h> header file. */
+#undef HAVE_SYS_REG_H
+
+/* Define to 1 if you have the `sys_siglist' function. */
+#undef HAVE_SYS_SIGLIST
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/stream.h> header file. */
+#undef HAVE_SYS_STREAM_H
+
+/* Define to 1 if you have the <sys/sysconfig.h> header file. */
+#undef HAVE_SYS_SYSCONFIG_H
+
+/* Define to 1 if you have the <sys/tihdr.h> header file. */
+#undef HAVE_SYS_TIHDR_H
+
+/* Define to 1 if you have the <sys/tiuser.h> header file. */
+#undef HAVE_SYS_TIUSER_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the <sys/uio.h> header file. */
+#undef HAVE_SYS_UIO_H
+
+/* Define to 1 if you have the <sys/vfs.h> header file. */
+#undef HAVE_SYS_VFS_H
+
+/* Define to 1 if you have the <termio.h> header file. */
+#undef HAVE_TERMIO_H
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Define to 1 if you have the `_sys_siglist' function. */
+#undef HAVE__SYS_SIGLIST
+
+/* Define for the HPPA architecture. */
+#undef HPPA
+
+/* Define for the i386 architecture. */
+#undef I386
+
+/* Define for the IA64 architecture. */
+#undef IA64
+
+/* Define for the Linux operating system. */
+#undef LINUX
+
+/* Define for the m68k architecture. */
+#undef M68K
+
+/* Define to 1 if `major', `minor', and `makedev' are declared in <mkdev.h>.
+ */
+#undef MAJOR_IN_MKDEV
+
+/* Define to 1 if `major', `minor', and `makedev' are declared in
+ <sysmacros.h>. */
+#undef MAJOR_IN_SYSMACROS
+
+/* Define for the MIPS architecture. */
+#undef MIPS
+
+/* Name of package */
+#undef PACKAGE
+
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* Define for the PowerPC architecture. */
+#undef POWERPC
+
+/* Define as the return type of signal handlers (`int' or `void'). */
+#undef RETSIGTYPE
+
+/* Define for the S390 architecture. */
+#undef S390
+
+/* Define for the S390x architecture. */
+#undef S390X
+
+/* Define for the SH architecture. */
+#undef SH
+
+/* Define for the SH64 architecture. */
+#undef SH64
+
+/* Define for the SPARC architecture. */
+#undef SPARC
+
+/* Define for the SPARC64 architecture. */
+#undef SPARC64
+
+/* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */
+#undef STAT_MACROS_BROKEN
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* Define for the SunOS 4.x operating system. */
+#undef SUNOS4
+
+/* Define if you are have a SPARC with SUNOS4 and your want a version of
+ strace that will work on sun4, sun4c and sun4m kernel architectures. Only
+ useful if you have a symbolic link from machine to /usr/include/sun4 in the
+ compilation directory. */
+#undef SUNOS4_KERNEL_ARCH_KLUDGE
+
+/* Define for the System V release 4 operating system or a derivative like
+ Solaris 2.x or Irix 5.x. */
+#undef SVR4
+
+/* Define for UnixWare systems. */
+#undef UNIXWARE
+
+/* Version number of package */
+#undef VERSION
+
+/* Define for the AMD x86-64 architecture. */
+#undef X86_64
+
+/* Enable GNU extensions on systems that have them. */
+#ifndef _GNU_SOURCE
+# undef _GNU_SOURCE
+#endif
+
+/* Define to empty if `const' does not conform to ANSI C. */
+#undef const
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+#undef gid_t
+
+/* Define to `int' if <sys/types.h> does not define. */
+#undef mode_t
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+#undef uid_t
diff --git a/config.log b/config.log
new file mode 100644
index 0000000..98b732b
--- /dev/null
+++ b/config.log
@@ -0,0 +1,5401 @@
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by strace configure 4.5.12, which was
+generated by GNU Autoconf 2.59. Invocation command line was
+
+ $ ./configure --prefix=/data/ --build=arm-unknown-linux-gnu
+
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = skywriting.corp.google.com
+uname -m = x86_64
+uname -r = 2.6.18.5-gg19workstation-mixed64-32
+uname -s = Linux
+uname -v = #1 SMP Tue Nov 20 16:02:52 PST 2007
+
+/usr/bin/uname -p = unknown
+/bin/uname -X = unknown
+
+/bin/arch = x86_64
+/usr/bin/arch -k = unknown
+/usr/convex/getsysinfo = unknown
+hostinfo = unknown
+/bin/machine = unknown
+/usr/bin/oslevel = unknown
+/bin/universe = unknown
+
+PATH: /usr/local/symlinks
+PATH: /usr/local/scripts
+PATH: /usr/local/sbin
+PATH: /usr/local/bin
+PATH: /usr/sbin
+PATH: /usr/bin
+PATH: /sbin
+PATH: /bin
+PATH: /usr/bin/X11
+PATH: /android/device/prebuilt/Linux/toolchain/bin/
+PATH: /home/mkf/bin
+PATH: /android/device/out/host/linux-x86/bin
+PATH: /android/device/prebuilt/Linux/toolchain/arm-elf
+PATH: /android/device/tools/qtools
+PATH: /android/device/prebuilt/Linux/toolchain-eabi-4.2.1/bin
+PATH: /android/device/prebuilt/Linux/toolchain-eabi-4.2.1/bin
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+configure:1358: checking for a BSD-compatible install
+configure:1413: result: /usr/bin/install -c
+configure:1424: checking whether build environment is sane
+configure:1467: result: yes
+configure:1532: checking for gawk
+configure:1548: found /usr/bin/gawk
+configure:1558: result: gawk
+configure:1568: checking whether make sets $(MAKE)
+configure:1588: result: yes
+configure:1756: checking whether to enable maintainer-specific portions of Makefiles
+configure:1765: result: no
+configure:1786: checking build system type
+configure:1804: result: arm-unknown-linux-gnu
+configure:1812: checking host system type
+configure:1826: result: arm-unknown-linux-gnu
+configure:1835: checking for supported operating system
+configure:1894: result: linux
+configure:1897: checking for supported architecture
+configure:2028: result: arm
+configure:2141: checking for gcc
+configure:2157: found /usr/bin/gcc
+configure:2167: result: gcc
+configure:2411: checking for C compiler version
+configure:2414: gcc --version </dev/null >&5
+gcc (GCC) 4.0.3 (Ubuntu 4.0.3-1ubuntu5)
+Copyright (C) 2006 Free Software Foundation, Inc.
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+configure:2417: $? = 0
+configure:2419: gcc -v </dev/null >&5
+Using built-in specs.
+Target: i486-linux-gnu
+Configured with: ../src/configure -v --enable-languages=c,c++,java,f95,objc,ada,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --program-suffix=-4.0 --enable-__cxa_atexit --enable-clocale=gnu --enable-libstdcxx-debug --enable-java-awt=gtk-default --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-4.0-1.4.2.0/jre --enable-mpfr --disable-werror --with-tune=pentium4 --enable-checking=release i486-linux-gnu
+Thread model: posix
+gcc version 4.0.3 (Ubuntu 4.0.3-1ubuntu5)
+configure:2422: $? = 0
+configure:2424: gcc -V </dev/null >&5
+gcc: '-V' option must have argument
+configure:2427: $? = 1
+configure:2450: checking for C compiler default output file name
+configure:2453: gcc -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:2456: $? = 0
+configure:2502: result: a.out
+configure:2507: checking whether the C compiler works
+configure:2513: ./a.out
+configure:2516: $? = 0
+configure:2533: result: yes
+configure:2540: checking whether we are cross compiling
+configure:2542: result: no
+configure:2545: checking for suffix of executables
+configure:2547: gcc -o conftest -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:2550: $? = 0
+configure:2575: result:
+configure:2581: checking for suffix of object files
+configure:2602: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:2605: $? = 0
+configure:2627: result: o
+configure:2631: checking whether we are using the GNU C compiler
+configure:2655: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:2661: $? = 0
+configure:2665: test -z
+ || test ! -s conftest.err
+configure:2668: $? = 0
+configure:2671: test -s conftest.o
+configure:2674: $? = 0
+configure:2687: result: yes
+configure:2693: checking whether gcc accepts -g
+configure:2714: gcc -c -g conftest.c >&5
+configure:2720: $? = 0
+configure:2724: test -z
+ || test ! -s conftest.err
+configure:2727: $? = 0
+configure:2730: test -s conftest.o
+configure:2733: $? = 0
+configure:2744: result: yes
+configure:2761: checking for gcc option to accept ANSI C
+configure:2831: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:2837: $? = 0
+configure:2841: test -z
+ || test ! -s conftest.err
+configure:2844: $? = 0
+configure:2847: test -s conftest.o
+configure:2850: $? = 0
+configure:2868: result: none needed
+configure:2886: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+conftest.c:2: error: syntax error before 'me'
+configure:2892: $? = 1
+configure: failed program was:
+| #ifndef __cplusplus
+| choke me
+| #endif
+configure:3036: checking for style of include used by make
+configure:3064: result: GNU
+configure:3092: checking dependency style of gcc
+configure:3182: result: gcc3
+configure:3207: checking for primary include directory
+configure:3225: result: /usr/include
+configure:3274: checking how to run the C preprocessor
+configure:3309: gcc -E conftest.c
+configure:3315: $? = 0
+configure:3347: gcc -E conftest.c
+conftest.c:14:28: error: ac_nonexistent.h: No such file or directory
+configure:3353: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| /* end confdefs.h. */
+| #include <ac_nonexistent.h>
+configure:3392: result: gcc -E
+configure:3416: gcc -E conftest.c
+configure:3422: $? = 0
+configure:3454: gcc -E conftest.c
+conftest.c:14:28: error: ac_nonexistent.h: No such file or directory
+configure:3460: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| /* end confdefs.h. */
+| #include <ac_nonexistent.h>
+configure:3505: checking for egrep
+configure:3515: result: grep -E
+configure:3521: checking whether gcc needs -traditional
+configure:3563: result: no
+configure:3583: checking for a BSD-compatible install
+configure:3638: result: /usr/bin/install -c
+configure:3649: checking for an ANSI C-conforming const
+configure:3716: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:3722: $? = 0
+configure:3726: test -z
+ || test ! -s conftest.err
+configure:3729: $? = 0
+configure:3732: test -s conftest.o
+configure:3735: $? = 0
+configure:3746: result: yes
+configure:3756: checking for ANSI C header files
+configure:3781: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:3787: $? = 0
+configure:3791: test -z
+ || test ! -s conftest.err
+configure:3794: $? = 0
+configure:3797: test -s conftest.o
+configure:3800: $? = 0
+configure:3889: gcc -o conftest -I/android/device/system/kernel_headers/ conftest.c >&5
+conftest.c: In function 'main':
+conftest.c:31: warning: incompatible implicit declaration of built-in function 'exit'
+configure:3892: $? = 0
+configure:3894: ./conftest
+configure:3897: $? = 0
+configure:3912: result: yes
+configure:3930: checking for dirent.h that defines DIR
+configure:3954: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:3960: $? = 0
+configure:3964: test -z
+ || test ! -s conftest.err
+configure:3967: $? = 0
+configure:3970: test -s conftest.o
+configure:3973: $? = 0
+configure:3984: result: yes
+configure:3997: checking for library containing opendir
+configure:4027: gcc -o conftest -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:4033: $? = 0
+configure:4037: test -z
+ || test ! -s conftest.err
+configure:4040: $? = 0
+configure:4043: test -s conftest
+configure:4046: $? = 0
+configure:4116: result: none required
+configure:4252: checking whether stat file-mode macros are broken
+configure:4300: result: no
+configure:4324: checking for sys/types.h
+configure:4340: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:4346: $? = 0
+configure:4350: test -z
+ || test ! -s conftest.err
+configure:4353: $? = 0
+configure:4356: test -s conftest.o
+configure:4359: $? = 0
+configure:4370: result: yes
+configure:4324: checking for sys/stat.h
+configure:4340: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:4346: $? = 0
+configure:4350: test -z
+ || test ! -s conftest.err
+configure:4353: $? = 0
+configure:4356: test -s conftest.o
+configure:4359: $? = 0
+configure:4370: result: yes
+configure:4324: checking for stdlib.h
+configure:4340: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:4346: $? = 0
+configure:4350: test -z
+ || test ! -s conftest.err
+configure:4353: $? = 0
+configure:4356: test -s conftest.o
+configure:4359: $? = 0
+configure:4370: result: yes
+configure:4324: checking for string.h
+configure:4340: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:4346: $? = 0
+configure:4350: test -z
+ || test ! -s conftest.err
+configure:4353: $? = 0
+configure:4356: test -s conftest.o
+configure:4359: $? = 0
+configure:4370: result: yes
+configure:4324: checking for memory.h
+configure:4340: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:4346: $? = 0
+configure:4350: test -z
+ || test ! -s conftest.err
+configure:4353: $? = 0
+configure:4356: test -s conftest.o
+configure:4359: $? = 0
+configure:4370: result: yes
+configure:4324: checking for strings.h
+configure:4340: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:4346: $? = 0
+configure:4350: test -z
+ || test ! -s conftest.err
+configure:4353: $? = 0
+configure:4356: test -s conftest.o
+configure:4359: $? = 0
+configure:4370: result: yes
+configure:4324: checking for inttypes.h
+configure:4340: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:4346: $? = 0
+configure:4350: test -z
+ || test ! -s conftest.err
+configure:4353: $? = 0
+configure:4356: test -s conftest.o
+configure:4359: $? = 0
+configure:4370: result: yes
+configure:4324: checking for stdint.h
+configure:4340: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:4346: $? = 0
+configure:4350: test -z
+ || test ! -s conftest.err
+configure:4353: $? = 0
+configure:4356: test -s conftest.o
+configure:4359: $? = 0
+configure:4370: result: yes
+configure:4324: checking for unistd.h
+configure:4340: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:4346: $? = 0
+configure:4350: test -z
+ || test ! -s conftest.err
+configure:4353: $? = 0
+configure:4356: test -s conftest.o
+configure:4359: $? = 0
+configure:4370: result: yes
+configure:4382: checking for struct stat.st_blksize
+configure:4405: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:4411: $? = 0
+configure:4415: test -z
+ || test ! -s conftest.err
+configure:4418: $? = 0
+configure:4421: test -s conftest.o
+configure:4424: $? = 0
+configure:4481: result: yes
+configure:4491: checking for struct stat.st_blocks
+configure:4514: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:4520: $? = 0
+configure:4524: test -z
+ || test ! -s conftest.err
+configure:4527: $? = 0
+configure:4530: test -s conftest.o
+configure:4533: $? = 0
+configure:4590: result: yes
+configure:4600: checking for struct stat.st_aclcnt
+configure:4623: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+conftest.c: In function 'main':
+conftest.c:65: error: 'struct stat' has no member named 'st_aclcnt'
+configure:4629: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| /* end confdefs.h. */
+| #include <stdio.h>
+| #if HAVE_SYS_TYPES_H
+| # include <sys/types.h>
+| #endif
+| #if HAVE_SYS_STAT_H
+| # include <sys/stat.h>
+| #endif
+| #if STDC_HEADERS
+| # include <stdlib.h>
+| # include <stddef.h>
+| #else
+| # if HAVE_STDLIB_H
+| # include <stdlib.h>
+| # endif
+| #endif
+| #if HAVE_STRING_H
+| # if !STDC_HEADERS && HAVE_MEMORY_H
+| # include <memory.h>
+| # endif
+| # include <string.h>
+| #endif
+| #if HAVE_STRINGS_H
+| # include <strings.h>
+| #endif
+| #if HAVE_INTTYPES_H
+| # include <inttypes.h>
+| #else
+| # if HAVE_STDINT_H
+| # include <stdint.h>
+| # endif
+| #endif
+| #if HAVE_UNISTD_H
+| # include <unistd.h>
+| #endif
+| int
+| main ()
+| {
+| static struct stat ac_aggr;
+| if (ac_aggr.st_aclcnt)
+| return 0;
+| ;
+| return 0;
+| }
+configure:4667: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+conftest.c: In function 'main':
+conftest.c:65: error: 'struct stat' has no member named 'st_aclcnt'
+configure:4673: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| /* end confdefs.h. */
+| #include <stdio.h>
+| #if HAVE_SYS_TYPES_H
+| # include <sys/types.h>
+| #endif
+| #if HAVE_SYS_STAT_H
+| # include <sys/stat.h>
+| #endif
+| #if STDC_HEADERS
+| # include <stdlib.h>
+| # include <stddef.h>
+| #else
+| # if HAVE_STDLIB_H
+| # include <stdlib.h>
+| # endif
+| #endif
+| #if HAVE_STRING_H
+| # if !STDC_HEADERS && HAVE_MEMORY_H
+| # include <memory.h>
+| # endif
+| # include <string.h>
+| #endif
+| #if HAVE_STRINGS_H
+| # include <strings.h>
+| #endif
+| #if HAVE_INTTYPES_H
+| # include <inttypes.h>
+| #else
+| # if HAVE_STDINT_H
+| # include <stdint.h>
+| # endif
+| #endif
+| #if HAVE_UNISTD_H
+| # include <unistd.h>
+| #endif
+| int
+| main ()
+| {
+| static struct stat ac_aggr;
+| if (sizeof ac_aggr.st_aclcnt)
+| return 0;
+| ;
+| return 0;
+| }
+configure:4699: result: no
+configure:4709: checking for struct stat.st_flags
+configure:4732: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+conftest.c: In function 'main':
+conftest.c:65: error: 'struct stat' has no member named 'st_flags'
+configure:4738: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| /* end confdefs.h. */
+| #include <stdio.h>
+| #if HAVE_SYS_TYPES_H
+| # include <sys/types.h>
+| #endif
+| #if HAVE_SYS_STAT_H
+| # include <sys/stat.h>
+| #endif
+| #if STDC_HEADERS
+| # include <stdlib.h>
+| # include <stddef.h>
+| #else
+| # if HAVE_STDLIB_H
+| # include <stdlib.h>
+| # endif
+| #endif
+| #if HAVE_STRING_H
+| # if !STDC_HEADERS && HAVE_MEMORY_H
+| # include <memory.h>
+| # endif
+| # include <string.h>
+| #endif
+| #if HAVE_STRINGS_H
+| # include <strings.h>
+| #endif
+| #if HAVE_INTTYPES_H
+| # include <inttypes.h>
+| #else
+| # if HAVE_STDINT_H
+| # include <stdint.h>
+| # endif
+| #endif
+| #if HAVE_UNISTD_H
+| # include <unistd.h>
+| #endif
+| int
+| main ()
+| {
+| static struct stat ac_aggr;
+| if (ac_aggr.st_flags)
+| return 0;
+| ;
+| return 0;
+| }
+configure:4776: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+conftest.c: In function 'main':
+conftest.c:65: error: 'struct stat' has no member named 'st_flags'
+configure:4782: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| /* end confdefs.h. */
+| #include <stdio.h>
+| #if HAVE_SYS_TYPES_H
+| # include <sys/types.h>
+| #endif
+| #if HAVE_SYS_STAT_H
+| # include <sys/stat.h>
+| #endif
+| #if STDC_HEADERS
+| # include <stdlib.h>
+| # include <stddef.h>
+| #else
+| # if HAVE_STDLIB_H
+| # include <stdlib.h>
+| # endif
+| #endif
+| #if HAVE_STRING_H
+| # if !STDC_HEADERS && HAVE_MEMORY_H
+| # include <memory.h>
+| # endif
+| # include <string.h>
+| #endif
+| #if HAVE_STRINGS_H
+| # include <strings.h>
+| #endif
+| #if HAVE_INTTYPES_H
+| # include <inttypes.h>
+| #else
+| # if HAVE_STDINT_H
+| # include <stdint.h>
+| # endif
+| #endif
+| #if HAVE_UNISTD_H
+| # include <unistd.h>
+| #endif
+| int
+| main ()
+| {
+| static struct stat ac_aggr;
+| if (sizeof ac_aggr.st_flags)
+| return 0;
+| ;
+| return 0;
+| }
+configure:4808: result: no
+configure:4818: checking for struct stat.st_fstype
+configure:4841: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+conftest.c: In function 'main':
+conftest.c:65: error: 'struct stat' has no member named 'st_fstype'
+configure:4847: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| /* end confdefs.h. */
+| #include <stdio.h>
+| #if HAVE_SYS_TYPES_H
+| # include <sys/types.h>
+| #endif
+| #if HAVE_SYS_STAT_H
+| # include <sys/stat.h>
+| #endif
+| #if STDC_HEADERS
+| # include <stdlib.h>
+| # include <stddef.h>
+| #else
+| # if HAVE_STDLIB_H
+| # include <stdlib.h>
+| # endif
+| #endif
+| #if HAVE_STRING_H
+| # if !STDC_HEADERS && HAVE_MEMORY_H
+| # include <memory.h>
+| # endif
+| # include <string.h>
+| #endif
+| #if HAVE_STRINGS_H
+| # include <strings.h>
+| #endif
+| #if HAVE_INTTYPES_H
+| # include <inttypes.h>
+| #else
+| # if HAVE_STDINT_H
+| # include <stdint.h>
+| # endif
+| #endif
+| #if HAVE_UNISTD_H
+| # include <unistd.h>
+| #endif
+| int
+| main ()
+| {
+| static struct stat ac_aggr;
+| if (ac_aggr.st_fstype)
+| return 0;
+| ;
+| return 0;
+| }
+configure:4885: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+conftest.c: In function 'main':
+conftest.c:65: error: 'struct stat' has no member named 'st_fstype'
+configure:4891: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| /* end confdefs.h. */
+| #include <stdio.h>
+| #if HAVE_SYS_TYPES_H
+| # include <sys/types.h>
+| #endif
+| #if HAVE_SYS_STAT_H
+| # include <sys/stat.h>
+| #endif
+| #if STDC_HEADERS
+| # include <stdlib.h>
+| # include <stddef.h>
+| #else
+| # if HAVE_STDLIB_H
+| # include <stdlib.h>
+| # endif
+| #endif
+| #if HAVE_STRING_H
+| # if !STDC_HEADERS && HAVE_MEMORY_H
+| # include <memory.h>
+| # endif
+| # include <string.h>
+| #endif
+| #if HAVE_STRINGS_H
+| # include <strings.h>
+| #endif
+| #if HAVE_INTTYPES_H
+| # include <inttypes.h>
+| #else
+| # if HAVE_STDINT_H
+| # include <stdint.h>
+| # endif
+| #endif
+| #if HAVE_UNISTD_H
+| # include <unistd.h>
+| #endif
+| int
+| main ()
+| {
+| static struct stat ac_aggr;
+| if (sizeof ac_aggr.st_fstype)
+| return 0;
+| ;
+| return 0;
+| }
+configure:4917: result: no
+configure:4927: checking for struct stat.st_gen
+configure:4950: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+conftest.c: In function 'main':
+conftest.c:65: error: 'struct stat' has no member named 'st_gen'
+configure:4956: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| /* end confdefs.h. */
+| #include <stdio.h>
+| #if HAVE_SYS_TYPES_H
+| # include <sys/types.h>
+| #endif
+| #if HAVE_SYS_STAT_H
+| # include <sys/stat.h>
+| #endif
+| #if STDC_HEADERS
+| # include <stdlib.h>
+| # include <stddef.h>
+| #else
+| # if HAVE_STDLIB_H
+| # include <stdlib.h>
+| # endif
+| #endif
+| #if HAVE_STRING_H
+| # if !STDC_HEADERS && HAVE_MEMORY_H
+| # include <memory.h>
+| # endif
+| # include <string.h>
+| #endif
+| #if HAVE_STRINGS_H
+| # include <strings.h>
+| #endif
+| #if HAVE_INTTYPES_H
+| # include <inttypes.h>
+| #else
+| # if HAVE_STDINT_H
+| # include <stdint.h>
+| # endif
+| #endif
+| #if HAVE_UNISTD_H
+| # include <unistd.h>
+| #endif
+| int
+| main ()
+| {
+| static struct stat ac_aggr;
+| if (ac_aggr.st_gen)
+| return 0;
+| ;
+| return 0;
+| }
+configure:4994: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+conftest.c: In function 'main':
+conftest.c:65: error: 'struct stat' has no member named 'st_gen'
+configure:5000: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| /* end confdefs.h. */
+| #include <stdio.h>
+| #if HAVE_SYS_TYPES_H
+| # include <sys/types.h>
+| #endif
+| #if HAVE_SYS_STAT_H
+| # include <sys/stat.h>
+| #endif
+| #if STDC_HEADERS
+| # include <stdlib.h>
+| # include <stddef.h>
+| #else
+| # if HAVE_STDLIB_H
+| # include <stdlib.h>
+| # endif
+| #endif
+| #if HAVE_STRING_H
+| # if !STDC_HEADERS && HAVE_MEMORY_H
+| # include <memory.h>
+| # endif
+| # include <string.h>
+| #endif
+| #if HAVE_STRINGS_H
+| # include <strings.h>
+| #endif
+| #if HAVE_INTTYPES_H
+| # include <inttypes.h>
+| #else
+| # if HAVE_STDINT_H
+| # include <stdint.h>
+| # endif
+| #endif
+| #if HAVE_UNISTD_H
+| # include <unistd.h>
+| #endif
+| int
+| main ()
+| {
+| static struct stat ac_aggr;
+| if (sizeof ac_aggr.st_gen)
+| return 0;
+| ;
+| return 0;
+| }
+configure:5026: result: no
+configure:5036: checking for struct stat.st_level
+configure:5059: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+conftest.c: In function 'main':
+conftest.c:65: error: 'struct stat' has no member named 'st_level'
+configure:5065: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| /* end confdefs.h. */
+| #include <stdio.h>
+| #if HAVE_SYS_TYPES_H
+| # include <sys/types.h>
+| #endif
+| #if HAVE_SYS_STAT_H
+| # include <sys/stat.h>
+| #endif
+| #if STDC_HEADERS
+| # include <stdlib.h>
+| # include <stddef.h>
+| #else
+| # if HAVE_STDLIB_H
+| # include <stdlib.h>
+| # endif
+| #endif
+| #if HAVE_STRING_H
+| # if !STDC_HEADERS && HAVE_MEMORY_H
+| # include <memory.h>
+| # endif
+| # include <string.h>
+| #endif
+| #if HAVE_STRINGS_H
+| # include <strings.h>
+| #endif
+| #if HAVE_INTTYPES_H
+| # include <inttypes.h>
+| #else
+| # if HAVE_STDINT_H
+| # include <stdint.h>
+| # endif
+| #endif
+| #if HAVE_UNISTD_H
+| # include <unistd.h>
+| #endif
+| int
+| main ()
+| {
+| static struct stat ac_aggr;
+| if (ac_aggr.st_level)
+| return 0;
+| ;
+| return 0;
+| }
+configure:5103: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+conftest.c: In function 'main':
+conftest.c:65: error: 'struct stat' has no member named 'st_level'
+configure:5109: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| /* end confdefs.h. */
+| #include <stdio.h>
+| #if HAVE_SYS_TYPES_H
+| # include <sys/types.h>
+| #endif
+| #if HAVE_SYS_STAT_H
+| # include <sys/stat.h>
+| #endif
+| #if STDC_HEADERS
+| # include <stdlib.h>
+| # include <stddef.h>
+| #else
+| # if HAVE_STDLIB_H
+| # include <stdlib.h>
+| # endif
+| #endif
+| #if HAVE_STRING_H
+| # if !STDC_HEADERS && HAVE_MEMORY_H
+| # include <memory.h>
+| # endif
+| # include <string.h>
+| #endif
+| #if HAVE_STRINGS_H
+| # include <strings.h>
+| #endif
+| #if HAVE_INTTYPES_H
+| # include <inttypes.h>
+| #else
+| # if HAVE_STDINT_H
+| # include <stdint.h>
+| # endif
+| #endif
+| #if HAVE_UNISTD_H
+| # include <unistd.h>
+| #endif
+| int
+| main ()
+| {
+| static struct stat ac_aggr;
+| if (sizeof ac_aggr.st_level)
+| return 0;
+| ;
+| return 0;
+| }
+configure:5135: result: no
+configure:5145: checking for struct stat.st_rdev
+configure:5168: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:5174: $? = 0
+configure:5178: test -z
+ || test ! -s conftest.err
+configure:5181: $? = 0
+configure:5184: test -s conftest.o
+configure:5187: $? = 0
+configure:5244: result: yes
+configure:5255: checking for stat64 in (asm|sys)/stat.h
+configure:5281: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:5287: $? = 0
+configure:5291: test -z
+ || test ! -s conftest.err
+configure:5294: $? = 0
+configure:5297: test -s conftest.o
+configure:5300: $? = 0
+configure:5312: result: yes
+configure:5324: checking return type of signal handlers
+configure:5355: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:5361: $? = 0
+configure:5365: test -z
+ || test ! -s conftest.err
+configure:5368: $? = 0
+configure:5371: test -s conftest.o
+configure:5374: $? = 0
+configure:5385: result: void
+configure:5393: checking for uid_t in sys/types.h
+configure:5416: result: yes
+configure:5431: checking for mode_t
+configure:5455: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:5461: $? = 0
+configure:5465: test -z
+ || test ! -s conftest.err
+configure:5468: $? = 0
+configure:5471: test -s conftest.o
+configure:5474: $? = 0
+configure:5485: result: yes
+configure:5497: checking type of array argument to getgroups
+configure:5535: gcc -o conftest -I/android/device/system/kernel_headers/ conftest.c >&5
+conftest.c: In function 'main':
+conftest.c:50: warning: incompatible implicit declaration of built-in function 'exit'
+configure:5538: $? = 0
+configure:5540: ./conftest
+configure:5543: $? = 0
+configure:5576: result: gid_t
+configure:5584: checking whether sys/types.h defines makedev
+configure:5605: gcc -o conftest -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:5611: $? = 0
+configure:5615: test -z
+ || test ! -s conftest.err
+configure:5618: $? = 0
+configure:5621: test -s conftest
+configure:5624: $? = 0
+configure:5637: result: yes
+configure:5938: checking for sig_atomic_t
+configure:5963: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:5969: $? = 0
+configure:5973: test -z
+ || test ! -s conftest.err
+configure:5976: $? = 0
+configure:5979: test -s conftest.o
+configure:5982: $? = 0
+configure:5993: result: yes
+configure:6003: checking for siginfo_t
+configure:6028: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:6034: $? = 0
+configure:6038: test -z
+ || test ! -s conftest.err
+configure:6041: $? = 0
+configure:6044: test -s conftest.o
+configure:6047: $? = 0
+configure:6058: result: yes
+configure:6069: checking for struct sockaddr_in6.sin6_scope_id
+configure:6095: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:6101: $? = 0
+configure:6105: test -z
+ || test ! -s conftest.err
+configure:6108: $? = 0
+configure:6111: test -s conftest.o
+configure:6114: $? = 0
+configure:6174: result: yes
+configure:6185: checking for long long
+configure:6209: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:6215: $? = 0
+configure:6219: test -z
+ || test ! -s conftest.err
+configure:6222: $? = 0
+configure:6225: test -s conftest.o
+configure:6228: $? = 0
+configure:6239: result: yes
+configure:6250: checking for little endian long long
+configure:6280: gcc -o conftest -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:6283: $? = 0
+configure:6285: ./conftest
+configure:6288: $? = 0
+configure:6303: result: yes
+configure:6314: checking for long long off_t
+configure:6340: gcc -o conftest -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:6343: $? = 0
+configure:6345: ./conftest
+configure:6348: $? = 1
+configure: program exited with status 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| /* end confdefs.h. */
+| #include <sys/types.h>
+| main () {
+| if (sizeof (off_t) == sizeof (long long) &&
+| sizeof (off_t) > sizeof (long))
+| return 0;
+| return 1;
+| }
+|
+configure:6363: result: no
+configure:6374: checking for long long rlim_t
+configure:6402: gcc -o conftest -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:6405: $? = 0
+configure:6407: ./conftest
+configure:6410: $? = 1
+configure: program exited with status 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| /* end confdefs.h. */
+| #include <sys/types.h>
+| #include <sys/time.h>
+| #include <sys/resource.h>
+| main () {
+| if (sizeof (rlim_t) == sizeof (long long) &&
+| sizeof (rlim_t) > sizeof (long))
+| return 0;
+| return 1;
+| }
+|
+configure:6425: result: no
+configure:6436: checking for struct opthdr
+configure:6461: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+conftest.c: In function 'main':
+conftest.c:43: error: invalid application of 'sizeof' to incomplete type 'struct opthdr'
+configure:6467: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| /* end confdefs.h. */
+| #include <sys/socket.h>
+|
+| int
+| main ()
+| {
+| if ((struct opthdr *) 0)
+| return 0;
+| if (sizeof (struct opthdr))
+| return 0;
+| ;
+| return 0;
+| }
+configure:6491: result: no
+configure:6502: checking for struct t_opthdr
+configure:6527: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+conftest.c:36:24: error: sys/tiuser.h: No such file or directory
+conftest.c: In function 'main':
+conftest.c:43: error: invalid application of 'sizeof' to incomplete type 'struct t_opthdr'
+configure:6533: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| /* end confdefs.h. */
+| #include <sys/tiuser.h>
+|
+| int
+| main ()
+| {
+| if ((struct t_opthdr *) 0)
+| return 0;
+| if (sizeof (struct t_opthdr))
+| return 0;
+| ;
+| return 0;
+| }
+configure:6557: result: no
+configure:6655: checking for sigaction
+configure:6712: gcc -o conftest -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:6718: $? = 0
+configure:6722: test -z
+ || test ! -s conftest.err
+configure:6725: $? = 0
+configure:6728: test -s conftest
+configure:6731: $? = 0
+configure:6743: result: yes
+configure:6655: checking for strerror
+configure:6712: gcc -o conftest -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:6718: $? = 0
+configure:6722: test -z
+ || test ! -s conftest.err
+configure:6725: $? = 0
+configure:6728: test -s conftest
+configure:6731: $? = 0
+configure:6743: result: yes
+configure:6655: checking for strsignal
+configure:6712: gcc -o conftest -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:6718: $? = 0
+configure:6722: test -z
+ || test ! -s conftest.err
+configure:6725: $? = 0
+configure:6728: test -s conftest
+configure:6731: $? = 0
+configure:6743: result: yes
+configure:6655: checking for pread
+configure:6712: gcc -o conftest -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:6718: $? = 0
+configure:6722: test -z
+ || test ! -s conftest.err
+configure:6725: $? = 0
+configure:6728: test -s conftest
+configure:6731: $? = 0
+configure:6743: result: yes
+configure:6655: checking for sys_siglist
+configure:6712: gcc -o conftest -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:6718: $? = 0
+configure:6722: test -z
+ || test ! -s conftest.err
+configure:6725: $? = 0
+configure:6728: test -s conftest
+configure:6731: $? = 0
+configure:6743: result: yes
+configure:6655: checking for _sys_siglist
+configure:6712: gcc -o conftest -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:6718: $? = 0
+configure:6722: test -z
+ || test ! -s conftest.err
+configure:6725: $? = 0
+configure:6728: test -s conftest
+configure:6731: $? = 0
+configure:6743: result: yes
+configure:6655: checking for getdents
+configure:6712: gcc -o conftest -I/android/device/system/kernel_headers/ conftest.c >&5
+/tmp/ccI4ybUo.o: In function `main':conftest.c:(.text+0x22): undefined reference to `getdents'
+/tmp/ccI4ybUo.o:(.data+0x0): undefined reference to `getdents'
+collect2: ld returned 1 exit status
+configure:6718: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| #define HAVE_SIGACTION 1
+| #define HAVE_STRERROR 1
+| #define HAVE_STRSIGNAL 1
+| #define HAVE_PREAD 1
+| #define HAVE_SYS_SIGLIST 1
+| #define HAVE__SYS_SIGLIST 1
+| /* end confdefs.h. */
+| /* Define getdents to an innocuous variant, in case <limits.h> declares getdents.
+| For example, HP-UX 11i <limits.h> declares gettimeofday. */
+| #define getdents innocuous_getdents
+|
+| /* System header to define __stub macros and hopefully few prototypes,
+| which can conflict with char getdents (); below.
+| Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+| <limits.h> exists even on freestanding compilers. */
+|
+| #ifdef __STDC__
+| # include <limits.h>
+| #else
+| # include <assert.h>
+| #endif
+|
+| #undef getdents
+|
+| /* Override any gcc2 internal prototype to avoid an error. */
+| #ifdef __cplusplus
+| extern "C"
+| {
+| #endif
+| /* We use char because int might match the return type of a gcc2
+| builtin and then its argument prototype would still apply. */
+| char getdents ();
+| /* The GNU C library defines this for functions which it implements
+| to always fail with ENOSYS. Some functions are actually named
+| something starting with __ and the normal name is an alias. */
+| #if defined (__stub_getdents) || defined (__stub___getdents)
+| choke me
+| #else
+| char (*f) () = getdents;
+| #endif
+| #ifdef __cplusplus
+| }
+| #endif
+|
+| int
+| main ()
+| {
+| return f != getdents;
+| ;
+| return 0;
+| }
+configure:6743: result: no
+configure:6655: checking for mctl
+configure:6712: gcc -o conftest -I/android/device/system/kernel_headers/ conftest.c >&5
+/tmp/ccORY4qv.o: In function `main':conftest.c:(.text+0x22): undefined reference to `mctl'
+/tmp/ccORY4qv.o:(.data+0x0): undefined reference to `mctl'
+collect2: ld returned 1 exit status
+configure:6718: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| #define HAVE_SIGACTION 1
+| #define HAVE_STRERROR 1
+| #define HAVE_STRSIGNAL 1
+| #define HAVE_PREAD 1
+| #define HAVE_SYS_SIGLIST 1
+| #define HAVE__SYS_SIGLIST 1
+| /* end confdefs.h. */
+| /* Define mctl to an innocuous variant, in case <limits.h> declares mctl.
+| For example, HP-UX 11i <limits.h> declares gettimeofday. */
+| #define mctl innocuous_mctl
+|
+| /* System header to define __stub macros and hopefully few prototypes,
+| which can conflict with char mctl (); below.
+| Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+| <limits.h> exists even on freestanding compilers. */
+|
+| #ifdef __STDC__
+| # include <limits.h>
+| #else
+| # include <assert.h>
+| #endif
+|
+| #undef mctl
+|
+| /* Override any gcc2 internal prototype to avoid an error. */
+| #ifdef __cplusplus
+| extern "C"
+| {
+| #endif
+| /* We use char because int might match the return type of a gcc2
+| builtin and then its argument prototype would still apply. */
+| char mctl ();
+| /* The GNU C library defines this for functions which it implements
+| to always fail with ENOSYS. Some functions are actually named
+| something starting with __ and the normal name is an alias. */
+| #if defined (__stub_mctl) || defined (__stub___mctl)
+| choke me
+| #else
+| char (*f) () = mctl;
+| #endif
+| #ifdef __cplusplus
+| }
+| #endif
+|
+| int
+| main ()
+| {
+| return f != mctl;
+| ;
+| return 0;
+| }
+configure:6743: result: no
+configure:6655: checking for prctl
+configure:6712: gcc -o conftest -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:6718: $? = 0
+configure:6722: test -z
+ || test ! -s conftest.err
+configure:6725: $? = 0
+configure:6728: test -s conftest
+configure:6731: $? = 0
+configure:6743: result: yes
+configure:6655: checking for sendmsg
+configure:6712: gcc -o conftest -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:6718: $? = 0
+configure:6722: test -z
+ || test ! -s conftest.err
+configure:6725: $? = 0
+configure:6728: test -s conftest
+configure:6731: $? = 0
+configure:6743: result: yes
+configure:6655: checking for inet_ntop
+configure:6712: gcc -o conftest -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:6718: $? = 0
+configure:6722: test -z
+ || test ! -s conftest.err
+configure:6725: $? = 0
+configure:6728: test -s conftest
+configure:6731: $? = 0
+configure:6743: result: yes
+configure:6655: checking for if_indextoname
+configure:6712: gcc -o conftest -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:6718: $? = 0
+configure:6722: test -z
+ || test ! -s conftest.err
+configure:6725: $? = 0
+configure:6728: test -s conftest
+configure:6731: $? = 0
+configure:6743: result: yes
+configure:6794: checking sys/reg.h usability
+configure:6806: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:6812: $? = 0
+configure:6816: test -z
+ || test ! -s conftest.err
+configure:6819: $? = 0
+configure:6822: test -s conftest.o
+configure:6825: $? = 0
+configure:6835: result: yes
+configure:6839: checking sys/reg.h presence
+configure:6849: gcc -E conftest.c
+configure:6855: $? = 0
+configure:6875: result: yes
+configure:6910: checking for sys/reg.h
+configure:6917: result: yes
+configure:6794: checking sys/filio.h usability
+configure:6806: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+conftest.c:81:23: error: sys/filio.h: No such file or directory
+configure:6812: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| #define HAVE_SIGACTION 1
+| #define HAVE_STRERROR 1
+| #define HAVE_STRSIGNAL 1
+| #define HAVE_PREAD 1
+| #define HAVE_SYS_SIGLIST 1
+| #define HAVE__SYS_SIGLIST 1
+| #define HAVE_PRCTL 1
+| #define HAVE_SENDMSG 1
+| #define HAVE_INET_NTOP 1
+| #define HAVE_IF_INDEXTONAME 1
+| #define HAVE_SYS_REG_H 1
+| /* end confdefs.h. */
+| #include <stdio.h>
+| #if HAVE_SYS_TYPES_H
+| # include <sys/types.h>
+| #endif
+| #if HAVE_SYS_STAT_H
+| # include <sys/stat.h>
+| #endif
+| #if STDC_HEADERS
+| # include <stdlib.h>
+| # include <stddef.h>
+| #else
+| # if HAVE_STDLIB_H
+| # include <stdlib.h>
+| # endif
+| #endif
+| #if HAVE_STRING_H
+| # if !STDC_HEADERS && HAVE_MEMORY_H
+| # include <memory.h>
+| # endif
+| # include <string.h>
+| #endif
+| #if HAVE_STRINGS_H
+| # include <strings.h>
+| #endif
+| #if HAVE_INTTYPES_H
+| # include <inttypes.h>
+| #else
+| # if HAVE_STDINT_H
+| # include <stdint.h>
+| # endif
+| #endif
+| #if HAVE_UNISTD_H
+| # include <unistd.h>
+| #endif
+| #include <sys/filio.h>
+configure:6835: result: no
+configure:6839: checking sys/filio.h presence
+configure:6849: gcc -E conftest.c
+conftest.c:47:23: error: sys/filio.h: No such file or directory
+configure:6855: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| #define HAVE_SIGACTION 1
+| #define HAVE_STRERROR 1
+| #define HAVE_STRSIGNAL 1
+| #define HAVE_PREAD 1
+| #define HAVE_SYS_SIGLIST 1
+| #define HAVE__SYS_SIGLIST 1
+| #define HAVE_PRCTL 1
+| #define HAVE_SENDMSG 1
+| #define HAVE_INET_NTOP 1
+| #define HAVE_IF_INDEXTONAME 1
+| #define HAVE_SYS_REG_H 1
+| /* end confdefs.h. */
+| #include <sys/filio.h>
+configure:6875: result: no
+configure:6910: checking for sys/filio.h
+configure:6917: result: no
+configure:6794: checking sys/acl.h usability
+configure:6806: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+conftest.c:81:21: error: sys/acl.h: No such file or directory
+configure:6812: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| #define HAVE_SIGACTION 1
+| #define HAVE_STRERROR 1
+| #define HAVE_STRSIGNAL 1
+| #define HAVE_PREAD 1
+| #define HAVE_SYS_SIGLIST 1
+| #define HAVE__SYS_SIGLIST 1
+| #define HAVE_PRCTL 1
+| #define HAVE_SENDMSG 1
+| #define HAVE_INET_NTOP 1
+| #define HAVE_IF_INDEXTONAME 1
+| #define HAVE_SYS_REG_H 1
+| /* end confdefs.h. */
+| #include <stdio.h>
+| #if HAVE_SYS_TYPES_H
+| # include <sys/types.h>
+| #endif
+| #if HAVE_SYS_STAT_H
+| # include <sys/stat.h>
+| #endif
+| #if STDC_HEADERS
+| # include <stdlib.h>
+| # include <stddef.h>
+| #else
+| # if HAVE_STDLIB_H
+| # include <stdlib.h>
+| # endif
+| #endif
+| #if HAVE_STRING_H
+| # if !STDC_HEADERS && HAVE_MEMORY_H
+| # include <memory.h>
+| # endif
+| # include <string.h>
+| #endif
+| #if HAVE_STRINGS_H
+| # include <strings.h>
+| #endif
+| #if HAVE_INTTYPES_H
+| # include <inttypes.h>
+| #else
+| # if HAVE_STDINT_H
+| # include <stdint.h>
+| # endif
+| #endif
+| #if HAVE_UNISTD_H
+| # include <unistd.h>
+| #endif
+| #include <sys/acl.h>
+configure:6835: result: no
+configure:6839: checking sys/acl.h presence
+configure:6849: gcc -E conftest.c
+conftest.c:47:21: error: sys/acl.h: No such file or directory
+configure:6855: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| #define HAVE_SIGACTION 1
+| #define HAVE_STRERROR 1
+| #define HAVE_STRSIGNAL 1
+| #define HAVE_PREAD 1
+| #define HAVE_SYS_SIGLIST 1
+| #define HAVE__SYS_SIGLIST 1
+| #define HAVE_PRCTL 1
+| #define HAVE_SENDMSG 1
+| #define HAVE_INET_NTOP 1
+| #define HAVE_IF_INDEXTONAME 1
+| #define HAVE_SYS_REG_H 1
+| /* end confdefs.h. */
+| #include <sys/acl.h>
+configure:6875: result: no
+configure:6910: checking for sys/acl.h
+configure:6917: result: no
+configure:6794: checking sys/asynch.h usability
+configure:6806: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+conftest.c:81:24: error: sys/asynch.h: No such file or directory
+configure:6812: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| #define HAVE_SIGACTION 1
+| #define HAVE_STRERROR 1
+| #define HAVE_STRSIGNAL 1
+| #define HAVE_PREAD 1
+| #define HAVE_SYS_SIGLIST 1
+| #define HAVE__SYS_SIGLIST 1
+| #define HAVE_PRCTL 1
+| #define HAVE_SENDMSG 1
+| #define HAVE_INET_NTOP 1
+| #define HAVE_IF_INDEXTONAME 1
+| #define HAVE_SYS_REG_H 1
+| /* end confdefs.h. */
+| #include <stdio.h>
+| #if HAVE_SYS_TYPES_H
+| # include <sys/types.h>
+| #endif
+| #if HAVE_SYS_STAT_H
+| # include <sys/stat.h>
+| #endif
+| #if STDC_HEADERS
+| # include <stdlib.h>
+| # include <stddef.h>
+| #else
+| # if HAVE_STDLIB_H
+| # include <stdlib.h>
+| # endif
+| #endif
+| #if HAVE_STRING_H
+| # if !STDC_HEADERS && HAVE_MEMORY_H
+| # include <memory.h>
+| # endif
+| # include <string.h>
+| #endif
+| #if HAVE_STRINGS_H
+| # include <strings.h>
+| #endif
+| #if HAVE_INTTYPES_H
+| # include <inttypes.h>
+| #else
+| # if HAVE_STDINT_H
+| # include <stdint.h>
+| # endif
+| #endif
+| #if HAVE_UNISTD_H
+| # include <unistd.h>
+| #endif
+| #include <sys/asynch.h>
+configure:6835: result: no
+configure:6839: checking sys/asynch.h presence
+configure:6849: gcc -E conftest.c
+conftest.c:47:24: error: sys/asynch.h: No such file or directory
+configure:6855: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| #define HAVE_SIGACTION 1
+| #define HAVE_STRERROR 1
+| #define HAVE_STRSIGNAL 1
+| #define HAVE_PREAD 1
+| #define HAVE_SYS_SIGLIST 1
+| #define HAVE__SYS_SIGLIST 1
+| #define HAVE_PRCTL 1
+| #define HAVE_SENDMSG 1
+| #define HAVE_INET_NTOP 1
+| #define HAVE_IF_INDEXTONAME 1
+| #define HAVE_SYS_REG_H 1
+| /* end confdefs.h. */
+| #include <sys/asynch.h>
+configure:6875: result: no
+configure:6910: checking for sys/asynch.h
+configure:6917: result: no
+configure:6794: checking sys/door.h usability
+configure:6806: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+conftest.c:81:22: error: sys/door.h: No such file or directory
+configure:6812: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| #define HAVE_SIGACTION 1
+| #define HAVE_STRERROR 1
+| #define HAVE_STRSIGNAL 1
+| #define HAVE_PREAD 1
+| #define HAVE_SYS_SIGLIST 1
+| #define HAVE__SYS_SIGLIST 1
+| #define HAVE_PRCTL 1
+| #define HAVE_SENDMSG 1
+| #define HAVE_INET_NTOP 1
+| #define HAVE_IF_INDEXTONAME 1
+| #define HAVE_SYS_REG_H 1
+| /* end confdefs.h. */
+| #include <stdio.h>
+| #if HAVE_SYS_TYPES_H
+| # include <sys/types.h>
+| #endif
+| #if HAVE_SYS_STAT_H
+| # include <sys/stat.h>
+| #endif
+| #if STDC_HEADERS
+| # include <stdlib.h>
+| # include <stddef.h>
+| #else
+| # if HAVE_STDLIB_H
+| # include <stdlib.h>
+| # endif
+| #endif
+| #if HAVE_STRING_H
+| # if !STDC_HEADERS && HAVE_MEMORY_H
+| # include <memory.h>
+| # endif
+| # include <string.h>
+| #endif
+| #if HAVE_STRINGS_H
+| # include <strings.h>
+| #endif
+| #if HAVE_INTTYPES_H
+| # include <inttypes.h>
+| #else
+| # if HAVE_STDINT_H
+| # include <stdint.h>
+| # endif
+| #endif
+| #if HAVE_UNISTD_H
+| # include <unistd.h>
+| #endif
+| #include <sys/door.h>
+configure:6835: result: no
+configure:6839: checking sys/door.h presence
+configure:6849: gcc -E conftest.c
+conftest.c:47:22: error: sys/door.h: No such file or directory
+configure:6855: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| #define HAVE_SIGACTION 1
+| #define HAVE_STRERROR 1
+| #define HAVE_STRSIGNAL 1
+| #define HAVE_PREAD 1
+| #define HAVE_SYS_SIGLIST 1
+| #define HAVE__SYS_SIGLIST 1
+| #define HAVE_PRCTL 1
+| #define HAVE_SENDMSG 1
+| #define HAVE_INET_NTOP 1
+| #define HAVE_IF_INDEXTONAME 1
+| #define HAVE_SYS_REG_H 1
+| /* end confdefs.h. */
+| #include <sys/door.h>
+configure:6875: result: no
+configure:6910: checking for sys/door.h
+configure:6917: result: no
+configure:6794: checking stropts.h usability
+configure:6806: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:6812: $? = 0
+configure:6816: test -z
+ || test ! -s conftest.err
+configure:6819: $? = 0
+configure:6822: test -s conftest.o
+configure:6825: $? = 0
+configure:6835: result: yes
+configure:6839: checking stropts.h presence
+configure:6849: gcc -E conftest.c
+configure:6855: $? = 0
+configure:6875: result: yes
+configure:6910: checking for stropts.h
+configure:6917: result: yes
+configure:6794: checking sys/conf.h usability
+configure:6806: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+conftest.c:82:22: error: sys/conf.h: No such file or directory
+configure:6812: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| #define HAVE_SIGACTION 1
+| #define HAVE_STRERROR 1
+| #define HAVE_STRSIGNAL 1
+| #define HAVE_PREAD 1
+| #define HAVE_SYS_SIGLIST 1
+| #define HAVE__SYS_SIGLIST 1
+| #define HAVE_PRCTL 1
+| #define HAVE_SENDMSG 1
+| #define HAVE_INET_NTOP 1
+| #define HAVE_IF_INDEXTONAME 1
+| #define HAVE_SYS_REG_H 1
+| #define HAVE_STROPTS_H 1
+| /* end confdefs.h. */
+| #include <stdio.h>
+| #if HAVE_SYS_TYPES_H
+| # include <sys/types.h>
+| #endif
+| #if HAVE_SYS_STAT_H
+| # include <sys/stat.h>
+| #endif
+| #if STDC_HEADERS
+| # include <stdlib.h>
+| # include <stddef.h>
+| #else
+| # if HAVE_STDLIB_H
+| # include <stdlib.h>
+| # endif
+| #endif
+| #if HAVE_STRING_H
+| # if !STDC_HEADERS && HAVE_MEMORY_H
+| # include <memory.h>
+| # endif
+| # include <string.h>
+| #endif
+| #if HAVE_STRINGS_H
+| # include <strings.h>
+| #endif
+| #if HAVE_INTTYPES_H
+| # include <inttypes.h>
+| #else
+| # if HAVE_STDINT_H
+| # include <stdint.h>
+| # endif
+| #endif
+| #if HAVE_UNISTD_H
+| # include <unistd.h>
+| #endif
+| #include <sys/conf.h>
+configure:6835: result: no
+configure:6839: checking sys/conf.h presence
+configure:6849: gcc -E conftest.c
+conftest.c:48:22: error: sys/conf.h: No such file or directory
+configure:6855: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| #define HAVE_SIGACTION 1
+| #define HAVE_STRERROR 1
+| #define HAVE_STRSIGNAL 1
+| #define HAVE_PREAD 1
+| #define HAVE_SYS_SIGLIST 1
+| #define HAVE__SYS_SIGLIST 1
+| #define HAVE_PRCTL 1
+| #define HAVE_SENDMSG 1
+| #define HAVE_INET_NTOP 1
+| #define HAVE_IF_INDEXTONAME 1
+| #define HAVE_SYS_REG_H 1
+| #define HAVE_STROPTS_H 1
+| /* end confdefs.h. */
+| #include <sys/conf.h>
+configure:6875: result: no
+configure:6910: checking for sys/conf.h
+configure:6917: result: no
+configure:6794: checking sys/stream.h usability
+configure:6806: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+conftest.c:82:24: error: sys/stream.h: No such file or directory
+configure:6812: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| #define HAVE_SIGACTION 1
+| #define HAVE_STRERROR 1
+| #define HAVE_STRSIGNAL 1
+| #define HAVE_PREAD 1
+| #define HAVE_SYS_SIGLIST 1
+| #define HAVE__SYS_SIGLIST 1
+| #define HAVE_PRCTL 1
+| #define HAVE_SENDMSG 1
+| #define HAVE_INET_NTOP 1
+| #define HAVE_IF_INDEXTONAME 1
+| #define HAVE_SYS_REG_H 1
+| #define HAVE_STROPTS_H 1
+| /* end confdefs.h. */
+| #include <stdio.h>
+| #if HAVE_SYS_TYPES_H
+| # include <sys/types.h>
+| #endif
+| #if HAVE_SYS_STAT_H
+| # include <sys/stat.h>
+| #endif
+| #if STDC_HEADERS
+| # include <stdlib.h>
+| # include <stddef.h>
+| #else
+| # if HAVE_STDLIB_H
+| # include <stdlib.h>
+| # endif
+| #endif
+| #if HAVE_STRING_H
+| # if !STDC_HEADERS && HAVE_MEMORY_H
+| # include <memory.h>
+| # endif
+| # include <string.h>
+| #endif
+| #if HAVE_STRINGS_H
+| # include <strings.h>
+| #endif
+| #if HAVE_INTTYPES_H
+| # include <inttypes.h>
+| #else
+| # if HAVE_STDINT_H
+| # include <stdint.h>
+| # endif
+| #endif
+| #if HAVE_UNISTD_H
+| # include <unistd.h>
+| #endif
+| #include <sys/stream.h>
+configure:6835: result: no
+configure:6839: checking sys/stream.h presence
+configure:6849: gcc -E conftest.c
+conftest.c:48:24: error: sys/stream.h: No such file or directory
+configure:6855: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| #define HAVE_SIGACTION 1
+| #define HAVE_STRERROR 1
+| #define HAVE_STRSIGNAL 1
+| #define HAVE_PREAD 1
+| #define HAVE_SYS_SIGLIST 1
+| #define HAVE__SYS_SIGLIST 1
+| #define HAVE_PRCTL 1
+| #define HAVE_SENDMSG 1
+| #define HAVE_INET_NTOP 1
+| #define HAVE_IF_INDEXTONAME 1
+| #define HAVE_SYS_REG_H 1
+| #define HAVE_STROPTS_H 1
+| /* end confdefs.h. */
+| #include <sys/stream.h>
+configure:6875: result: no
+configure:6910: checking for sys/stream.h
+configure:6917: result: no
+configure:6794: checking sys/tihdr.h usability
+configure:6806: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+conftest.c:82:23: error: sys/tihdr.h: No such file or directory
+configure:6812: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| #define HAVE_SIGACTION 1
+| #define HAVE_STRERROR 1
+| #define HAVE_STRSIGNAL 1
+| #define HAVE_PREAD 1
+| #define HAVE_SYS_SIGLIST 1
+| #define HAVE__SYS_SIGLIST 1
+| #define HAVE_PRCTL 1
+| #define HAVE_SENDMSG 1
+| #define HAVE_INET_NTOP 1
+| #define HAVE_IF_INDEXTONAME 1
+| #define HAVE_SYS_REG_H 1
+| #define HAVE_STROPTS_H 1
+| /* end confdefs.h. */
+| #include <stdio.h>
+| #if HAVE_SYS_TYPES_H
+| # include <sys/types.h>
+| #endif
+| #if HAVE_SYS_STAT_H
+| # include <sys/stat.h>
+| #endif
+| #if STDC_HEADERS
+| # include <stdlib.h>
+| # include <stddef.h>
+| #else
+| # if HAVE_STDLIB_H
+| # include <stdlib.h>
+| # endif
+| #endif
+| #if HAVE_STRING_H
+| # if !STDC_HEADERS && HAVE_MEMORY_H
+| # include <memory.h>
+| # endif
+| # include <string.h>
+| #endif
+| #if HAVE_STRINGS_H
+| # include <strings.h>
+| #endif
+| #if HAVE_INTTYPES_H
+| # include <inttypes.h>
+| #else
+| # if HAVE_STDINT_H
+| # include <stdint.h>
+| # endif
+| #endif
+| #if HAVE_UNISTD_H
+| # include <unistd.h>
+| #endif
+| #include <sys/tihdr.h>
+configure:6835: result: no
+configure:6839: checking sys/tihdr.h presence
+configure:6849: gcc -E conftest.c
+conftest.c:48:23: error: sys/tihdr.h: No such file or directory
+configure:6855: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| #define HAVE_SIGACTION 1
+| #define HAVE_STRERROR 1
+| #define HAVE_STRSIGNAL 1
+| #define HAVE_PREAD 1
+| #define HAVE_SYS_SIGLIST 1
+| #define HAVE__SYS_SIGLIST 1
+| #define HAVE_PRCTL 1
+| #define HAVE_SENDMSG 1
+| #define HAVE_INET_NTOP 1
+| #define HAVE_IF_INDEXTONAME 1
+| #define HAVE_SYS_REG_H 1
+| #define HAVE_STROPTS_H 1
+| /* end confdefs.h. */
+| #include <sys/tihdr.h>
+configure:6875: result: no
+configure:6910: checking for sys/tihdr.h
+configure:6917: result: no
+configure:6794: checking sys/tiuser.h usability
+configure:6806: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+conftest.c:82:24: error: sys/tiuser.h: No such file or directory
+configure:6812: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| #define HAVE_SIGACTION 1
+| #define HAVE_STRERROR 1
+| #define HAVE_STRSIGNAL 1
+| #define HAVE_PREAD 1
+| #define HAVE_SYS_SIGLIST 1
+| #define HAVE__SYS_SIGLIST 1
+| #define HAVE_PRCTL 1
+| #define HAVE_SENDMSG 1
+| #define HAVE_INET_NTOP 1
+| #define HAVE_IF_INDEXTONAME 1
+| #define HAVE_SYS_REG_H 1
+| #define HAVE_STROPTS_H 1
+| /* end confdefs.h. */
+| #include <stdio.h>
+| #if HAVE_SYS_TYPES_H
+| # include <sys/types.h>
+| #endif
+| #if HAVE_SYS_STAT_H
+| # include <sys/stat.h>
+| #endif
+| #if STDC_HEADERS
+| # include <stdlib.h>
+| # include <stddef.h>
+| #else
+| # if HAVE_STDLIB_H
+| # include <stdlib.h>
+| # endif
+| #endif
+| #if HAVE_STRING_H
+| # if !STDC_HEADERS && HAVE_MEMORY_H
+| # include <memory.h>
+| # endif
+| # include <string.h>
+| #endif
+| #if HAVE_STRINGS_H
+| # include <strings.h>
+| #endif
+| #if HAVE_INTTYPES_H
+| # include <inttypes.h>
+| #else
+| # if HAVE_STDINT_H
+| # include <stdint.h>
+| # endif
+| #endif
+| #if HAVE_UNISTD_H
+| # include <unistd.h>
+| #endif
+| #include <sys/tiuser.h>
+configure:6835: result: no
+configure:6839: checking sys/tiuser.h presence
+configure:6849: gcc -E conftest.c
+conftest.c:48:24: error: sys/tiuser.h: No such file or directory
+configure:6855: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| #define HAVE_SIGACTION 1
+| #define HAVE_STRERROR 1
+| #define HAVE_STRSIGNAL 1
+| #define HAVE_PREAD 1
+| #define HAVE_SYS_SIGLIST 1
+| #define HAVE__SYS_SIGLIST 1
+| #define HAVE_PRCTL 1
+| #define HAVE_SENDMSG 1
+| #define HAVE_INET_NTOP 1
+| #define HAVE_IF_INDEXTONAME 1
+| #define HAVE_SYS_REG_H 1
+| #define HAVE_STROPTS_H 1
+| /* end confdefs.h. */
+| #include <sys/tiuser.h>
+configure:6875: result: no
+configure:6910: checking for sys/tiuser.h
+configure:6917: result: no
+configure:6794: checking sys/sysconfig.h usability
+configure:6806: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+conftest.c:82:27: error: sys/sysconfig.h: No such file or directory
+configure:6812: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| #define HAVE_SIGACTION 1
+| #define HAVE_STRERROR 1
+| #define HAVE_STRSIGNAL 1
+| #define HAVE_PREAD 1
+| #define HAVE_SYS_SIGLIST 1
+| #define HAVE__SYS_SIGLIST 1
+| #define HAVE_PRCTL 1
+| #define HAVE_SENDMSG 1
+| #define HAVE_INET_NTOP 1
+| #define HAVE_IF_INDEXTONAME 1
+| #define HAVE_SYS_REG_H 1
+| #define HAVE_STROPTS_H 1
+| /* end confdefs.h. */
+| #include <stdio.h>
+| #if HAVE_SYS_TYPES_H
+| # include <sys/types.h>
+| #endif
+| #if HAVE_SYS_STAT_H
+| # include <sys/stat.h>
+| #endif
+| #if STDC_HEADERS
+| # include <stdlib.h>
+| # include <stddef.h>
+| #else
+| # if HAVE_STDLIB_H
+| # include <stdlib.h>
+| # endif
+| #endif
+| #if HAVE_STRING_H
+| # if !STDC_HEADERS && HAVE_MEMORY_H
+| # include <memory.h>
+| # endif
+| # include <string.h>
+| #endif
+| #if HAVE_STRINGS_H
+| # include <strings.h>
+| #endif
+| #if HAVE_INTTYPES_H
+| # include <inttypes.h>
+| #else
+| # if HAVE_STDINT_H
+| # include <stdint.h>
+| # endif
+| #endif
+| #if HAVE_UNISTD_H
+| # include <unistd.h>
+| #endif
+| #include <sys/sysconfig.h>
+configure:6835: result: no
+configure:6839: checking sys/sysconfig.h presence
+configure:6849: gcc -E conftest.c
+conftest.c:48:27: error: sys/sysconfig.h: No such file or directory
+configure:6855: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| #define HAVE_SIGACTION 1
+| #define HAVE_STRERROR 1
+| #define HAVE_STRSIGNAL 1
+| #define HAVE_PREAD 1
+| #define HAVE_SYS_SIGLIST 1
+| #define HAVE__SYS_SIGLIST 1
+| #define HAVE_PRCTL 1
+| #define HAVE_SENDMSG 1
+| #define HAVE_INET_NTOP 1
+| #define HAVE_IF_INDEXTONAME 1
+| #define HAVE_SYS_REG_H 1
+| #define HAVE_STROPTS_H 1
+| /* end confdefs.h. */
+| #include <sys/sysconfig.h>
+configure:6875: result: no
+configure:6910: checking for sys/sysconfig.h
+configure:6917: result: no
+configure:6794: checking ioctls.h usability
+configure:6806: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+conftest.c:82:20: error: ioctls.h: No such file or directory
+configure:6812: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| #define HAVE_SIGACTION 1
+| #define HAVE_STRERROR 1
+| #define HAVE_STRSIGNAL 1
+| #define HAVE_PREAD 1
+| #define HAVE_SYS_SIGLIST 1
+| #define HAVE__SYS_SIGLIST 1
+| #define HAVE_PRCTL 1
+| #define HAVE_SENDMSG 1
+| #define HAVE_INET_NTOP 1
+| #define HAVE_IF_INDEXTONAME 1
+| #define HAVE_SYS_REG_H 1
+| #define HAVE_STROPTS_H 1
+| /* end confdefs.h. */
+| #include <stdio.h>
+| #if HAVE_SYS_TYPES_H
+| # include <sys/types.h>
+| #endif
+| #if HAVE_SYS_STAT_H
+| # include <sys/stat.h>
+| #endif
+| #if STDC_HEADERS
+| # include <stdlib.h>
+| # include <stddef.h>
+| #else
+| # if HAVE_STDLIB_H
+| # include <stdlib.h>
+| # endif
+| #endif
+| #if HAVE_STRING_H
+| # if !STDC_HEADERS && HAVE_MEMORY_H
+| # include <memory.h>
+| # endif
+| # include <string.h>
+| #endif
+| #if HAVE_STRINGS_H
+| # include <strings.h>
+| #endif
+| #if HAVE_INTTYPES_H
+| # include <inttypes.h>
+| #else
+| # if HAVE_STDINT_H
+| # include <stdint.h>
+| # endif
+| #endif
+| #if HAVE_UNISTD_H
+| # include <unistd.h>
+| #endif
+| #include <ioctls.h>
+configure:6835: result: no
+configure:6839: checking ioctls.h presence
+configure:6849: gcc -E conftest.c
+conftest.c:48:20: error: ioctls.h: No such file or directory
+configure:6855: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| #define HAVE_SIGACTION 1
+| #define HAVE_STRERROR 1
+| #define HAVE_STRSIGNAL 1
+| #define HAVE_PREAD 1
+| #define HAVE_SYS_SIGLIST 1
+| #define HAVE__SYS_SIGLIST 1
+| #define HAVE_PRCTL 1
+| #define HAVE_SENDMSG 1
+| #define HAVE_INET_NTOP 1
+| #define HAVE_IF_INDEXTONAME 1
+| #define HAVE_SYS_REG_H 1
+| #define HAVE_STROPTS_H 1
+| /* end confdefs.h. */
+| #include <ioctls.h>
+configure:6875: result: no
+configure:6910: checking for ioctls.h
+configure:6917: result: no
+configure:6794: checking sys/ioctl.h usability
+configure:6806: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:6812: $? = 0
+configure:6816: test -z
+ || test ! -s conftest.err
+configure:6819: $? = 0
+configure:6822: test -s conftest.o
+configure:6825: $? = 0
+configure:6835: result: yes
+configure:6839: checking sys/ioctl.h presence
+configure:6849: gcc -E conftest.c
+configure:6855: $? = 0
+configure:6875: result: yes
+configure:6910: checking for sys/ioctl.h
+configure:6917: result: yes
+configure:6794: checking sys/ptrace.h usability
+configure:6806: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:6812: $? = 0
+configure:6816: test -z
+ || test ! -s conftest.err
+configure:6819: $? = 0
+configure:6822: test -s conftest.o
+configure:6825: $? = 0
+configure:6835: result: yes
+configure:6839: checking sys/ptrace.h presence
+configure:6849: gcc -E conftest.c
+configure:6855: $? = 0
+configure:6875: result: yes
+configure:6910: checking for sys/ptrace.h
+configure:6917: result: yes
+configure:6794: checking termio.h usability
+configure:6806: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:6812: $? = 0
+configure:6816: test -z
+ || test ! -s conftest.err
+configure:6819: $? = 0
+configure:6822: test -s conftest.o
+configure:6825: $? = 0
+configure:6835: result: yes
+configure:6839: checking termio.h presence
+configure:6849: gcc -E conftest.c
+configure:6855: $? = 0
+configure:6875: result: yes
+configure:6910: checking for termio.h
+configure:6917: result: yes
+configure:6794: checking linux/ptrace.h usability
+configure:6806: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:6812: $? = 0
+configure:6816: test -z
+ || test ! -s conftest.err
+configure:6819: $? = 0
+configure:6822: test -s conftest.o
+configure:6825: $? = 0
+configure:6835: result: yes
+configure:6839: checking linux/ptrace.h presence
+configure:6849: gcc -E conftest.c
+configure:6855: $? = 0
+configure:6875: result: yes
+configure:6910: checking for linux/ptrace.h
+configure:6917: result: yes
+configure:6794: checking asm/reg.h usability
+configure:6806: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+conftest.c:86:21: error: asm/reg.h: No such file or directory
+configure:6812: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| #define HAVE_SIGACTION 1
+| #define HAVE_STRERROR 1
+| #define HAVE_STRSIGNAL 1
+| #define HAVE_PREAD 1
+| #define HAVE_SYS_SIGLIST 1
+| #define HAVE__SYS_SIGLIST 1
+| #define HAVE_PRCTL 1
+| #define HAVE_SENDMSG 1
+| #define HAVE_INET_NTOP 1
+| #define HAVE_IF_INDEXTONAME 1
+| #define HAVE_SYS_REG_H 1
+| #define HAVE_STROPTS_H 1
+| #define HAVE_SYS_IOCTL_H 1
+| #define HAVE_SYS_PTRACE_H 1
+| #define HAVE_TERMIO_H 1
+| #define HAVE_LINUX_PTRACE_H 1
+| /* end confdefs.h. */
+| #include <stdio.h>
+| #if HAVE_SYS_TYPES_H
+| # include <sys/types.h>
+| #endif
+| #if HAVE_SYS_STAT_H
+| # include <sys/stat.h>
+| #endif
+| #if STDC_HEADERS
+| # include <stdlib.h>
+| # include <stddef.h>
+| #else
+| # if HAVE_STDLIB_H
+| # include <stdlib.h>
+| # endif
+| #endif
+| #if HAVE_STRING_H
+| # if !STDC_HEADERS && HAVE_MEMORY_H
+| # include <memory.h>
+| # endif
+| # include <string.h>
+| #endif
+| #if HAVE_STRINGS_H
+| # include <strings.h>
+| #endif
+| #if HAVE_INTTYPES_H
+| # include <inttypes.h>
+| #else
+| # if HAVE_STDINT_H
+| # include <stdint.h>
+| # endif
+| #endif
+| #if HAVE_UNISTD_H
+| # include <unistd.h>
+| #endif
+| #include <asm/reg.h>
+configure:6835: result: no
+configure:6839: checking asm/reg.h presence
+configure:6849: gcc -E conftest.c
+conftest.c:52:21: error: asm/reg.h: No such file or directory
+configure:6855: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| #define HAVE_SIGACTION 1
+| #define HAVE_STRERROR 1
+| #define HAVE_STRSIGNAL 1
+| #define HAVE_PREAD 1
+| #define HAVE_SYS_SIGLIST 1
+| #define HAVE__SYS_SIGLIST 1
+| #define HAVE_PRCTL 1
+| #define HAVE_SENDMSG 1
+| #define HAVE_INET_NTOP 1
+| #define HAVE_IF_INDEXTONAME 1
+| #define HAVE_SYS_REG_H 1
+| #define HAVE_STROPTS_H 1
+| #define HAVE_SYS_IOCTL_H 1
+| #define HAVE_SYS_PTRACE_H 1
+| #define HAVE_TERMIO_H 1
+| #define HAVE_LINUX_PTRACE_H 1
+| /* end confdefs.h. */
+| #include <asm/reg.h>
+configure:6875: result: no
+configure:6910: checking for asm/reg.h
+configure:6917: result: no
+configure:6794: checking sys/uio.h usability
+configure:6806: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:6812: $? = 0
+configure:6816: test -z
+ || test ! -s conftest.err
+configure:6819: $? = 0
+configure:6822: test -s conftest.o
+configure:6825: $? = 0
+configure:6835: result: yes
+configure:6839: checking sys/uio.h presence
+configure:6849: gcc -E conftest.c
+configure:6855: $? = 0
+configure:6875: result: yes
+configure:6910: checking for sys/uio.h
+configure:6917: result: yes
+configure:6794: checking sys/aio.h usability
+configure:6806: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+conftest.c:87:21: error: sys/aio.h: No such file or directory
+configure:6812: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| #define HAVE_SIGACTION 1
+| #define HAVE_STRERROR 1
+| #define HAVE_STRSIGNAL 1
+| #define HAVE_PREAD 1
+| #define HAVE_SYS_SIGLIST 1
+| #define HAVE__SYS_SIGLIST 1
+| #define HAVE_PRCTL 1
+| #define HAVE_SENDMSG 1
+| #define HAVE_INET_NTOP 1
+| #define HAVE_IF_INDEXTONAME 1
+| #define HAVE_SYS_REG_H 1
+| #define HAVE_STROPTS_H 1
+| #define HAVE_SYS_IOCTL_H 1
+| #define HAVE_SYS_PTRACE_H 1
+| #define HAVE_TERMIO_H 1
+| #define HAVE_LINUX_PTRACE_H 1
+| #define HAVE_SYS_UIO_H 1
+| /* end confdefs.h. */
+| #include <stdio.h>
+| #if HAVE_SYS_TYPES_H
+| # include <sys/types.h>
+| #endif
+| #if HAVE_SYS_STAT_H
+| # include <sys/stat.h>
+| #endif
+| #if STDC_HEADERS
+| # include <stdlib.h>
+| # include <stddef.h>
+| #else
+| # if HAVE_STDLIB_H
+| # include <stdlib.h>
+| # endif
+| #endif
+| #if HAVE_STRING_H
+| # if !STDC_HEADERS && HAVE_MEMORY_H
+| # include <memory.h>
+| # endif
+| # include <string.h>
+| #endif
+| #if HAVE_STRINGS_H
+| # include <strings.h>
+| #endif
+| #if HAVE_INTTYPES_H
+| # include <inttypes.h>
+| #else
+| # if HAVE_STDINT_H
+| # include <stdint.h>
+| # endif
+| #endif
+| #if HAVE_UNISTD_H
+| # include <unistd.h>
+| #endif
+| #include <sys/aio.h>
+configure:6835: result: no
+configure:6839: checking sys/aio.h presence
+configure:6849: gcc -E conftest.c
+conftest.c:53:21: error: sys/aio.h: No such file or directory
+configure:6855: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| #define HAVE_SIGACTION 1
+| #define HAVE_STRERROR 1
+| #define HAVE_STRSIGNAL 1
+| #define HAVE_PREAD 1
+| #define HAVE_SYS_SIGLIST 1
+| #define HAVE__SYS_SIGLIST 1
+| #define HAVE_PRCTL 1
+| #define HAVE_SENDMSG 1
+| #define HAVE_INET_NTOP 1
+| #define HAVE_IF_INDEXTONAME 1
+| #define HAVE_SYS_REG_H 1
+| #define HAVE_STROPTS_H 1
+| #define HAVE_SYS_IOCTL_H 1
+| #define HAVE_SYS_PTRACE_H 1
+| #define HAVE_TERMIO_H 1
+| #define HAVE_LINUX_PTRACE_H 1
+| #define HAVE_SYS_UIO_H 1
+| /* end confdefs.h. */
+| #include <sys/aio.h>
+configure:6875: result: no
+configure:6910: checking for sys/aio.h
+configure:6917: result: no
+configure:6794: checking poll.h usability
+configure:6806: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:6812: $? = 0
+configure:6816: test -z
+ || test ! -s conftest.err
+configure:6819: $? = 0
+configure:6822: test -s conftest.o
+configure:6825: $? = 0
+configure:6835: result: yes
+configure:6839: checking poll.h presence
+configure:6849: gcc -E conftest.c
+configure:6855: $? = 0
+configure:6875: result: yes
+configure:6910: checking for poll.h
+configure:6917: result: yes
+configure:6794: checking sys/poll.h usability
+configure:6806: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:6812: $? = 0
+configure:6816: test -z
+ || test ! -s conftest.err
+configure:6819: $? = 0
+configure:6822: test -s conftest.o
+configure:6825: $? = 0
+configure:6835: result: yes
+configure:6839: checking sys/poll.h presence
+configure:6849: gcc -E conftest.c
+configure:6855: $? = 0
+configure:6875: result: yes
+configure:6910: checking for sys/poll.h
+configure:6917: result: yes
+configure:6794: checking sys/vfs.h usability
+configure:6806: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:6812: $? = 0
+configure:6816: test -z
+ || test ! -s conftest.err
+configure:6819: $? = 0
+configure:6822: test -s conftest.o
+configure:6825: $? = 0
+configure:6835: result: yes
+configure:6839: checking sys/vfs.h presence
+configure:6849: gcc -E conftest.c
+configure:6855: $? = 0
+configure:6875: result: yes
+configure:6910: checking for sys/vfs.h
+configure:6917: result: yes
+configure:6794: checking asm/sysmips.h usability
+configure:6806: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+conftest.c:90:25: error: asm/sysmips.h: No such file or directory
+configure:6812: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| #define HAVE_SIGACTION 1
+| #define HAVE_STRERROR 1
+| #define HAVE_STRSIGNAL 1
+| #define HAVE_PREAD 1
+| #define HAVE_SYS_SIGLIST 1
+| #define HAVE__SYS_SIGLIST 1
+| #define HAVE_PRCTL 1
+| #define HAVE_SENDMSG 1
+| #define HAVE_INET_NTOP 1
+| #define HAVE_IF_INDEXTONAME 1
+| #define HAVE_SYS_REG_H 1
+| #define HAVE_STROPTS_H 1
+| #define HAVE_SYS_IOCTL_H 1
+| #define HAVE_SYS_PTRACE_H 1
+| #define HAVE_TERMIO_H 1
+| #define HAVE_LINUX_PTRACE_H 1
+| #define HAVE_SYS_UIO_H 1
+| #define HAVE_POLL_H 1
+| #define HAVE_SYS_POLL_H 1
+| #define HAVE_SYS_VFS_H 1
+| /* end confdefs.h. */
+| #include <stdio.h>
+| #if HAVE_SYS_TYPES_H
+| # include <sys/types.h>
+| #endif
+| #if HAVE_SYS_STAT_H
+| # include <sys/stat.h>
+| #endif
+| #if STDC_HEADERS
+| # include <stdlib.h>
+| # include <stddef.h>
+| #else
+| # if HAVE_STDLIB_H
+| # include <stdlib.h>
+| # endif
+| #endif
+| #if HAVE_STRING_H
+| # if !STDC_HEADERS && HAVE_MEMORY_H
+| # include <memory.h>
+| # endif
+| # include <string.h>
+| #endif
+| #if HAVE_STRINGS_H
+| # include <strings.h>
+| #endif
+| #if HAVE_INTTYPES_H
+| # include <inttypes.h>
+| #else
+| # if HAVE_STDINT_H
+| # include <stdint.h>
+| # endif
+| #endif
+| #if HAVE_UNISTD_H
+| # include <unistd.h>
+| #endif
+| #include <asm/sysmips.h>
+configure:6835: result: no
+configure:6839: checking asm/sysmips.h presence
+configure:6849: gcc -E conftest.c
+conftest.c:56:25: error: asm/sysmips.h: No such file or directory
+configure:6855: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| #define HAVE_SIGACTION 1
+| #define HAVE_STRERROR 1
+| #define HAVE_STRSIGNAL 1
+| #define HAVE_PREAD 1
+| #define HAVE_SYS_SIGLIST 1
+| #define HAVE__SYS_SIGLIST 1
+| #define HAVE_PRCTL 1
+| #define HAVE_SENDMSG 1
+| #define HAVE_INET_NTOP 1
+| #define HAVE_IF_INDEXTONAME 1
+| #define HAVE_SYS_REG_H 1
+| #define HAVE_STROPTS_H 1
+| #define HAVE_SYS_IOCTL_H 1
+| #define HAVE_SYS_PTRACE_H 1
+| #define HAVE_TERMIO_H 1
+| #define HAVE_LINUX_PTRACE_H 1
+| #define HAVE_SYS_UIO_H 1
+| #define HAVE_POLL_H 1
+| #define HAVE_SYS_POLL_H 1
+| #define HAVE_SYS_VFS_H 1
+| /* end confdefs.h. */
+| #include <asm/sysmips.h>
+configure:6875: result: no
+configure:6910: checking for asm/sysmips.h
+configure:6917: result: no
+configure:6794: checking linux/utsname.h usability
+configure:6806: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:6812: $? = 0
+configure:6816: test -z
+ || test ! -s conftest.err
+configure:6819: $? = 0
+configure:6822: test -s conftest.o
+configure:6825: $? = 0
+configure:6835: result: yes
+configure:6839: checking linux/utsname.h presence
+configure:6849: gcc -E conftest.c
+configure:6855: $? = 0
+configure:6875: result: yes
+configure:6910: checking for linux/utsname.h
+configure:6917: result: yes
+configure:6794: checking sys/nscsys.h usability
+configure:6806: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+conftest.c:91:24: error: sys/nscsys.h: No such file or directory
+configure:6812: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| #define HAVE_SIGACTION 1
+| #define HAVE_STRERROR 1
+| #define HAVE_STRSIGNAL 1
+| #define HAVE_PREAD 1
+| #define HAVE_SYS_SIGLIST 1
+| #define HAVE__SYS_SIGLIST 1
+| #define HAVE_PRCTL 1
+| #define HAVE_SENDMSG 1
+| #define HAVE_INET_NTOP 1
+| #define HAVE_IF_INDEXTONAME 1
+| #define HAVE_SYS_REG_H 1
+| #define HAVE_STROPTS_H 1
+| #define HAVE_SYS_IOCTL_H 1
+| #define HAVE_SYS_PTRACE_H 1
+| #define HAVE_TERMIO_H 1
+| #define HAVE_LINUX_PTRACE_H 1
+| #define HAVE_SYS_UIO_H 1
+| #define HAVE_POLL_H 1
+| #define HAVE_SYS_POLL_H 1
+| #define HAVE_SYS_VFS_H 1
+| #define HAVE_LINUX_UTSNAME_H 1
+| /* end confdefs.h. */
+| #include <stdio.h>
+| #if HAVE_SYS_TYPES_H
+| # include <sys/types.h>
+| #endif
+| #if HAVE_SYS_STAT_H
+| # include <sys/stat.h>
+| #endif
+| #if STDC_HEADERS
+| # include <stdlib.h>
+| # include <stddef.h>
+| #else
+| # if HAVE_STDLIB_H
+| # include <stdlib.h>
+| # endif
+| #endif
+| #if HAVE_STRING_H
+| # if !STDC_HEADERS && HAVE_MEMORY_H
+| # include <memory.h>
+| # endif
+| # include <string.h>
+| #endif
+| #if HAVE_STRINGS_H
+| # include <strings.h>
+| #endif
+| #if HAVE_INTTYPES_H
+| # include <inttypes.h>
+| #else
+| # if HAVE_STDINT_H
+| # include <stdint.h>
+| # endif
+| #endif
+| #if HAVE_UNISTD_H
+| # include <unistd.h>
+| #endif
+| #include <sys/nscsys.h>
+configure:6835: result: no
+configure:6839: checking sys/nscsys.h presence
+configure:6849: gcc -E conftest.c
+conftest.c:57:24: error: sys/nscsys.h: No such file or directory
+configure:6855: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| #define HAVE_SIGACTION 1
+| #define HAVE_STRERROR 1
+| #define HAVE_STRSIGNAL 1
+| #define HAVE_PREAD 1
+| #define HAVE_SYS_SIGLIST 1
+| #define HAVE__SYS_SIGLIST 1
+| #define HAVE_PRCTL 1
+| #define HAVE_SENDMSG 1
+| #define HAVE_INET_NTOP 1
+| #define HAVE_IF_INDEXTONAME 1
+| #define HAVE_SYS_REG_H 1
+| #define HAVE_STROPTS_H 1
+| #define HAVE_SYS_IOCTL_H 1
+| #define HAVE_SYS_PTRACE_H 1
+| #define HAVE_TERMIO_H 1
+| #define HAVE_LINUX_PTRACE_H 1
+| #define HAVE_SYS_UIO_H 1
+| #define HAVE_POLL_H 1
+| #define HAVE_SYS_POLL_H 1
+| #define HAVE_SYS_VFS_H 1
+| #define HAVE_LINUX_UTSNAME_H 1
+| /* end confdefs.h. */
+| #include <sys/nscsys.h>
+configure:6875: result: no
+configure:6910: checking for sys/nscsys.h
+configure:6917: result: no
+configure:6794: checking mqueue.h usability
+configure:6806: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:6812: $? = 0
+configure:6816: test -z
+ || test ! -s conftest.err
+configure:6819: $? = 0
+configure:6822: test -s conftest.o
+configure:6825: $? = 0
+configure:6835: result: yes
+configure:6839: checking mqueue.h presence
+configure:6849: gcc -E conftest.c
+configure:6855: $? = 0
+configure:6875: result: yes
+configure:6910: checking for mqueue.h
+configure:6917: result: yes
+configure:6794: checking sys/epoll.h usability
+configure:6806: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:6812: $? = 0
+configure:6816: test -z
+ || test ! -s conftest.err
+configure:6819: $? = 0
+configure:6822: test -s conftest.o
+configure:6825: $? = 0
+configure:6835: result: yes
+configure:6839: checking sys/epoll.h presence
+configure:6849: gcc -E conftest.c
+configure:6855: $? = 0
+configure:6875: result: yes
+configure:6910: checking for sys/epoll.h
+configure:6917: result: yes
+configure:6794: checking libaio.h usability
+configure:6806: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+conftest.c:93:20: error: libaio.h: No such file or directory
+configure:6812: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| #define HAVE_SIGACTION 1
+| #define HAVE_STRERROR 1
+| #define HAVE_STRSIGNAL 1
+| #define HAVE_PREAD 1
+| #define HAVE_SYS_SIGLIST 1
+| #define HAVE__SYS_SIGLIST 1
+| #define HAVE_PRCTL 1
+| #define HAVE_SENDMSG 1
+| #define HAVE_INET_NTOP 1
+| #define HAVE_IF_INDEXTONAME 1
+| #define HAVE_SYS_REG_H 1
+| #define HAVE_STROPTS_H 1
+| #define HAVE_SYS_IOCTL_H 1
+| #define HAVE_SYS_PTRACE_H 1
+| #define HAVE_TERMIO_H 1
+| #define HAVE_LINUX_PTRACE_H 1
+| #define HAVE_SYS_UIO_H 1
+| #define HAVE_POLL_H 1
+| #define HAVE_SYS_POLL_H 1
+| #define HAVE_SYS_VFS_H 1
+| #define HAVE_LINUX_UTSNAME_H 1
+| #define HAVE_MQUEUE_H 1
+| #define HAVE_SYS_EPOLL_H 1
+| /* end confdefs.h. */
+| #include <stdio.h>
+| #if HAVE_SYS_TYPES_H
+| # include <sys/types.h>
+| #endif
+| #if HAVE_SYS_STAT_H
+| # include <sys/stat.h>
+| #endif
+| #if STDC_HEADERS
+| # include <stdlib.h>
+| # include <stddef.h>
+| #else
+| # if HAVE_STDLIB_H
+| # include <stdlib.h>
+| # endif
+| #endif
+| #if HAVE_STRING_H
+| # if !STDC_HEADERS && HAVE_MEMORY_H
+| # include <memory.h>
+| # endif
+| # include <string.h>
+| #endif
+| #if HAVE_STRINGS_H
+| # include <strings.h>
+| #endif
+| #if HAVE_INTTYPES_H
+| # include <inttypes.h>
+| #else
+| # if HAVE_STDINT_H
+| # include <stdint.h>
+| # endif
+| #endif
+| #if HAVE_UNISTD_H
+| # include <unistd.h>
+| #endif
+| #include <libaio.h>
+configure:6835: result: no
+configure:6839: checking libaio.h presence
+configure:6849: gcc -E conftest.c
+conftest.c:59:20: error: libaio.h: No such file or directory
+configure:6855: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| #define HAVE_SIGACTION 1
+| #define HAVE_STRERROR 1
+| #define HAVE_STRSIGNAL 1
+| #define HAVE_PREAD 1
+| #define HAVE_SYS_SIGLIST 1
+| #define HAVE__SYS_SIGLIST 1
+| #define HAVE_PRCTL 1
+| #define HAVE_SENDMSG 1
+| #define HAVE_INET_NTOP 1
+| #define HAVE_IF_INDEXTONAME 1
+| #define HAVE_SYS_REG_H 1
+| #define HAVE_STROPTS_H 1
+| #define HAVE_SYS_IOCTL_H 1
+| #define HAVE_SYS_PTRACE_H 1
+| #define HAVE_TERMIO_H 1
+| #define HAVE_LINUX_PTRACE_H 1
+| #define HAVE_SYS_UIO_H 1
+| #define HAVE_POLL_H 1
+| #define HAVE_SYS_POLL_H 1
+| #define HAVE_SYS_VFS_H 1
+| #define HAVE_LINUX_UTSNAME_H 1
+| #define HAVE_MQUEUE_H 1
+| #define HAVE_SYS_EPOLL_H 1
+| /* end confdefs.h. */
+| #include <libaio.h>
+configure:6875: result: no
+configure:6910: checking for libaio.h
+configure:6917: result: no
+configure:6937: checking for linux/icmp.h
+configure:6952: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:6958: $? = 0
+configure:6962: test -z
+ || test ! -s conftest.err
+configure:6965: $? = 0
+configure:6968: test -s conftest.o
+configure:6971: $? = 0
+configure:6982: result: yes
+configure:6937: checking for linux/in6.h
+configure:6952: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:6958: $? = 0
+configure:6962: test -z
+ || test ! -s conftest.err
+configure:6965: $? = 0
+configure:6968: test -s conftest.o
+configure:6971: $? = 0
+configure:6982: result: yes
+configure:6937: checking for linux/netlink.h
+configure:6952: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:6958: $? = 0
+configure:6962: test -z
+ || test ! -s conftest.err
+configure:6965: $? = 0
+configure:6968: test -s conftest.o
+configure:6971: $? = 0
+configure:6982: result: yes
+configure:6937: checking for linux/if_packet.h
+configure:6952: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:6958: $? = 0
+configure:6962: test -z
+ || test ! -s conftest.err
+configure:6965: $? = 0
+configure:6968: test -s conftest.o
+configure:6971: $? = 0
+configure:6982: result: yes
+configure:6997: checking for asm/sigcontext.h
+configure:7013: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:7019: $? = 0
+configure:7023: test -z
+ || test ! -s conftest.err
+configure:7026: $? = 0
+configure:7029: test -s conftest.o
+configure:7032: $? = 0
+configure:7043: result: yes
+configure:7059: checking for netinet/tcp.h
+configure:7075: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:7081: $? = 0
+configure:7085: test -z
+ || test ! -s conftest.err
+configure:7088: $? = 0
+configure:7091: test -s conftest.o
+configure:7094: $? = 0
+configure:7105: result: yes
+configure:7059: checking for netinet/udp.h
+configure:7075: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:7081: $? = 0
+configure:7085: test -z
+ || test ! -s conftest.err
+configure:7088: $? = 0
+configure:7091: test -s conftest.o
+configure:7094: $? = 0
+configure:7105: result: yes
+configure:7117: checking for MP procfs
+configure:7179: gcc -o conftest -I/android/device/system/kernel_headers/ conftest.c >&5
+conftest.c: In function 'main':
+conftest.c:78: error: storage size of 'pstatus' isn't known
+conftest.c:82: warning: incompatible implicit declaration of built-in function 'exit'
+conftest.c:90: error: 'PCSTOP' undeclared (first use in this function)
+conftest.c:90: error: (Each undeclared identifier is reported only once
+conftest.c:90: error: for each function it appears in.)
+conftest.c:96: warning: incompatible implicit declaration of built-in function 'exit'
+configure:7182: $? = 1
+configure: program exited with status 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| #define HAVE_SIGACTION 1
+| #define HAVE_STRERROR 1
+| #define HAVE_STRSIGNAL 1
+| #define HAVE_PREAD 1
+| #define HAVE_SYS_SIGLIST 1
+| #define HAVE__SYS_SIGLIST 1
+| #define HAVE_PRCTL 1
+| #define HAVE_SENDMSG 1
+| #define HAVE_INET_NTOP 1
+| #define HAVE_IF_INDEXTONAME 1
+| #define HAVE_SYS_REG_H 1
+| #define HAVE_STROPTS_H 1
+| #define HAVE_SYS_IOCTL_H 1
+| #define HAVE_SYS_PTRACE_H 1
+| #define HAVE_TERMIO_H 1
+| #define HAVE_LINUX_PTRACE_H 1
+| #define HAVE_SYS_UIO_H 1
+| #define HAVE_POLL_H 1
+| #define HAVE_SYS_POLL_H 1
+| #define HAVE_SYS_VFS_H 1
+| #define HAVE_LINUX_UTSNAME_H 1
+| #define HAVE_MQUEUE_H 1
+| #define HAVE_SYS_EPOLL_H 1
+| #define HAVE_LINUX_ICMP_H 1
+| #define HAVE_LINUX_IN6_H 1
+| #define HAVE_LINUX_NETLINK_H 1
+| #define HAVE_LINUX_IF_PACKET_H 1
+| #define HAVE_ASM_SIGCONTEXT_H 1
+| #define HAVE_NETINET_TCP_H 1
+| #define HAVE_NETINET_UDP_H 1
+| /* end confdefs.h. */
+|
+| #include <stdio.h>
+| #include <signal.h>
+| #include <sys/procfs.h>
+|
+| main()
+| {
+| int pid;
+| char proc[32];
+| FILE *ctl;
+| FILE *status;
+| int cmd;
+| struct pstatus pstatus;
+|
+| if ((pid = fork()) == 0) {
+| pause();
+| exit(0);
+| }
+| sprintf(proc, "/proc/%d/ctl", pid);
+| if ((ctl = fopen(proc, "w")) == NULL)
+| goto fail;
+| sprintf(proc, "/proc/%d/status", pid);
+| if ((status = fopen (proc, "r")) == NULL)
+| goto fail;
+| cmd = PCSTOP;
+| if (write (fileno (ctl), &cmd, sizeof cmd) < 0)
+| goto fail;
+| if (read (fileno (status), &pstatus, sizeof pstatus) < 0)
+| goto fail;
+| kill(pid, SIGKILL);
+| exit(0);
+| fail:
+| kill(pid, SIGKILL);
+| exit(1);
+| }
+|
+configure:7202: result: no
+configure:7213: checking for pollable procfs
+configure:7290: gcc -o conftest -I/android/device/system/kernel_headers/ conftest.c >&5
+conftest.c: In function 'main':
+conftest.c:97: warning: incompatible implicit declaration of built-in function 'exit'
+conftest.c:102: error: 'PIOCSTOP' undeclared (first use in this function)
+conftest.c:102: error: (Each undeclared identifier is reported only once
+conftest.c:102: error: for each function it appears in.)
+conftest.c:111: warning: incompatible implicit declaration of built-in function 'exit'
+configure:7293: $? = 1
+configure: program exited with status 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| #define HAVE_SIGACTION 1
+| #define HAVE_STRERROR 1
+| #define HAVE_STRSIGNAL 1
+| #define HAVE_PREAD 1
+| #define HAVE_SYS_SIGLIST 1
+| #define HAVE__SYS_SIGLIST 1
+| #define HAVE_PRCTL 1
+| #define HAVE_SENDMSG 1
+| #define HAVE_INET_NTOP 1
+| #define HAVE_IF_INDEXTONAME 1
+| #define HAVE_SYS_REG_H 1
+| #define HAVE_STROPTS_H 1
+| #define HAVE_SYS_IOCTL_H 1
+| #define HAVE_SYS_PTRACE_H 1
+| #define HAVE_TERMIO_H 1
+| #define HAVE_LINUX_PTRACE_H 1
+| #define HAVE_SYS_UIO_H 1
+| #define HAVE_POLL_H 1
+| #define HAVE_SYS_POLL_H 1
+| #define HAVE_SYS_VFS_H 1
+| #define HAVE_LINUX_UTSNAME_H 1
+| #define HAVE_MQUEUE_H 1
+| #define HAVE_SYS_EPOLL_H 1
+| #define HAVE_LINUX_ICMP_H 1
+| #define HAVE_LINUX_IN6_H 1
+| #define HAVE_LINUX_NETLINK_H 1
+| #define HAVE_LINUX_IF_PACKET_H 1
+| #define HAVE_ASM_SIGCONTEXT_H 1
+| #define HAVE_NETINET_TCP_H 1
+| #define HAVE_NETINET_UDP_H 1
+| /* end confdefs.h. */
+|
+| #include <stdio.h>
+| #include <signal.h>
+| #include <sys/procfs.h>
+| #include <sys/stropts.h>
+| #include <poll.h>
+|
+| #ifdef HAVE_MP_PROCFS
+| #define PIOCSTOP PCSTOP
+| #define POLLWANT POLLWRNORM
+| #define PROC "/proc/%d/ctl"
+| #define PROC_MODE "w"
+| int IOCTL (int fd, int cmd, int arg) {
+| return write (fd, &cmd, sizeof cmd);
+| }
+| #else
+| #define POLLWANT POLLPRI
+| #define PROC "/proc/%d"
+| #define PROC_MODE "r+"
+| #define IOCTL ioctl
+| #endif
+|
+| main()
+| {
+| int pid;
+| char proc[32];
+| FILE *pfp;
+| struct pollfd pfd;
+|
+| if ((pid = fork()) == 0) {
+| pause();
+| exit(0);
+| }
+| sprintf(proc, PROC, pid);
+| if ((pfp = fopen(proc, PROC_MODE)) == NULL)
+| goto fail;
+| if (IOCTL(fileno(pfp), PIOCSTOP, NULL) < 0)
+| goto fail;
+| pfd.fd = fileno(pfp);
+| pfd.events = POLLWANT;
+| if (poll(&pfd, 1, 0) < 0)
+| goto fail;
+| if (!(pfd.revents & POLLWANT))
+| goto fail;
+| kill(pid, SIGKILL);
+| exit(0);
+| fail:
+| kill(pid, SIGKILL);
+| exit(1);
+| }
+|
+configure:7313: result: no
+configure:7325: checking for struct msghdr.msg_control
+configure:7349: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:7355: $? = 0
+configure:7359: test -z
+ || test ! -s conftest.err
+configure:7362: $? = 0
+configure:7365: test -s conftest.o
+configure:7368: $? = 0
+configure:7426: result: yes
+configure:7437: checking for pr_syscall in struct prstatus
+configure:7464: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+conftest.c: In function 'main':
+conftest.c:76: error: 'prstatus_t' has no member named 'pr_syscall'
+configure:7470: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| #define HAVE_SIGACTION 1
+| #define HAVE_STRERROR 1
+| #define HAVE_STRSIGNAL 1
+| #define HAVE_PREAD 1
+| #define HAVE_SYS_SIGLIST 1
+| #define HAVE__SYS_SIGLIST 1
+| #define HAVE_PRCTL 1
+| #define HAVE_SENDMSG 1
+| #define HAVE_INET_NTOP 1
+| #define HAVE_IF_INDEXTONAME 1
+| #define HAVE_SYS_REG_H 1
+| #define HAVE_STROPTS_H 1
+| #define HAVE_SYS_IOCTL_H 1
+| #define HAVE_SYS_PTRACE_H 1
+| #define HAVE_TERMIO_H 1
+| #define HAVE_LINUX_PTRACE_H 1
+| #define HAVE_SYS_UIO_H 1
+| #define HAVE_POLL_H 1
+| #define HAVE_SYS_POLL_H 1
+| #define HAVE_SYS_VFS_H 1
+| #define HAVE_LINUX_UTSNAME_H 1
+| #define HAVE_MQUEUE_H 1
+| #define HAVE_SYS_EPOLL_H 1
+| #define HAVE_LINUX_ICMP_H 1
+| #define HAVE_LINUX_IN6_H 1
+| #define HAVE_LINUX_NETLINK_H 1
+| #define HAVE_LINUX_IF_PACKET_H 1
+| #define HAVE_ASM_SIGCONTEXT_H 1
+| #define HAVE_NETINET_TCP_H 1
+| #define HAVE_NETINET_UDP_H 1
+| #define HAVE_STRUCT_MSGHDR_MSG_CONTROL 1
+| /* end confdefs.h. */
+| #include <sys/procfs.h>
+| int
+| main ()
+| {
+| #ifdef HAVE_MP_PROCFS
+| pstatus_t s;
+| s.pr_lwp.pr_syscall
+| #else
+| prstatus_t s;
+| s.pr_syscall
+| #endif
+| ;
+| return 0;
+| }
+configure:7495: result: no
+configure:7507: checking for struct T_conn_res.QUEUE_ptr
+configure:7532: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+conftest.c:67:24: error: sys/stream.h: No such file or directory
+conftest.c:68:23: error: sys/tihdr.h: No such file or directory
+conftest.c: In function 'main':
+conftest.c:73: error: storage size of 'ac_aggr' isn't known
+conftest.c:73: error: storage size of 'ac_aggr' isn't known
+configure:7538: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| #define HAVE_SIGACTION 1
+| #define HAVE_STRERROR 1
+| #define HAVE_STRSIGNAL 1
+| #define HAVE_PREAD 1
+| #define HAVE_SYS_SIGLIST 1
+| #define HAVE__SYS_SIGLIST 1
+| #define HAVE_PRCTL 1
+| #define HAVE_SENDMSG 1
+| #define HAVE_INET_NTOP 1
+| #define HAVE_IF_INDEXTONAME 1
+| #define HAVE_SYS_REG_H 1
+| #define HAVE_STROPTS_H 1
+| #define HAVE_SYS_IOCTL_H 1
+| #define HAVE_SYS_PTRACE_H 1
+| #define HAVE_TERMIO_H 1
+| #define HAVE_LINUX_PTRACE_H 1
+| #define HAVE_SYS_UIO_H 1
+| #define HAVE_POLL_H 1
+| #define HAVE_SYS_POLL_H 1
+| #define HAVE_SYS_VFS_H 1
+| #define HAVE_LINUX_UTSNAME_H 1
+| #define HAVE_MQUEUE_H 1
+| #define HAVE_SYS_EPOLL_H 1
+| #define HAVE_LINUX_ICMP_H 1
+| #define HAVE_LINUX_IN6_H 1
+| #define HAVE_LINUX_NETLINK_H 1
+| #define HAVE_LINUX_IF_PACKET_H 1
+| #define HAVE_ASM_SIGCONTEXT_H 1
+| #define HAVE_NETINET_TCP_H 1
+| #define HAVE_NETINET_UDP_H 1
+| #define HAVE_STRUCT_MSGHDR_MSG_CONTROL 1
+| /* end confdefs.h. */
+| #include <sys/stream.h>
+| #include <sys/tihdr.h>
+|
+| int
+| main ()
+| {
+| static struct T_conn_res ac_aggr;
+| if (ac_aggr.QUEUE_ptr)
+| return 0;
+| ;
+| return 0;
+| }
+configure:7578: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+conftest.c:67:24: error: sys/stream.h: No such file or directory
+conftest.c:68:23: error: sys/tihdr.h: No such file or directory
+conftest.c: In function 'main':
+conftest.c:73: error: storage size of 'ac_aggr' isn't known
+conftest.c:73: error: storage size of 'ac_aggr' isn't known
+configure:7584: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| #define HAVE_SIGACTION 1
+| #define HAVE_STRERROR 1
+| #define HAVE_STRSIGNAL 1
+| #define HAVE_PREAD 1
+| #define HAVE_SYS_SIGLIST 1
+| #define HAVE__SYS_SIGLIST 1
+| #define HAVE_PRCTL 1
+| #define HAVE_SENDMSG 1
+| #define HAVE_INET_NTOP 1
+| #define HAVE_IF_INDEXTONAME 1
+| #define HAVE_SYS_REG_H 1
+| #define HAVE_STROPTS_H 1
+| #define HAVE_SYS_IOCTL_H 1
+| #define HAVE_SYS_PTRACE_H 1
+| #define HAVE_TERMIO_H 1
+| #define HAVE_LINUX_PTRACE_H 1
+| #define HAVE_SYS_UIO_H 1
+| #define HAVE_POLL_H 1
+| #define HAVE_SYS_POLL_H 1
+| #define HAVE_SYS_VFS_H 1
+| #define HAVE_LINUX_UTSNAME_H 1
+| #define HAVE_MQUEUE_H 1
+| #define HAVE_SYS_EPOLL_H 1
+| #define HAVE_LINUX_ICMP_H 1
+| #define HAVE_LINUX_IN6_H 1
+| #define HAVE_LINUX_NETLINK_H 1
+| #define HAVE_LINUX_IF_PACKET_H 1
+| #define HAVE_ASM_SIGCONTEXT_H 1
+| #define HAVE_NETINET_TCP_H 1
+| #define HAVE_NETINET_UDP_H 1
+| #define HAVE_STRUCT_MSGHDR_MSG_CONTROL 1
+| /* end confdefs.h. */
+| #include <sys/stream.h>
+| #include <sys/tihdr.h>
+|
+| int
+| main ()
+| {
+| static struct T_conn_res ac_aggr;
+| if (sizeof ac_aggr.QUEUE_ptr)
+| return 0;
+| ;
+| return 0;
+| }
+configure:7610: result: no
+configure:7620: checking for struct T_conn_res.ACCEPTOR_id
+configure:7645: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+conftest.c:67:24: error: sys/stream.h: No such file or directory
+conftest.c:68:23: error: sys/tihdr.h: No such file or directory
+conftest.c: In function 'main':
+conftest.c:73: error: storage size of 'ac_aggr' isn't known
+conftest.c:73: error: storage size of 'ac_aggr' isn't known
+configure:7651: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| #define HAVE_SIGACTION 1
+| #define HAVE_STRERROR 1
+| #define HAVE_STRSIGNAL 1
+| #define HAVE_PREAD 1
+| #define HAVE_SYS_SIGLIST 1
+| #define HAVE__SYS_SIGLIST 1
+| #define HAVE_PRCTL 1
+| #define HAVE_SENDMSG 1
+| #define HAVE_INET_NTOP 1
+| #define HAVE_IF_INDEXTONAME 1
+| #define HAVE_SYS_REG_H 1
+| #define HAVE_STROPTS_H 1
+| #define HAVE_SYS_IOCTL_H 1
+| #define HAVE_SYS_PTRACE_H 1
+| #define HAVE_TERMIO_H 1
+| #define HAVE_LINUX_PTRACE_H 1
+| #define HAVE_SYS_UIO_H 1
+| #define HAVE_POLL_H 1
+| #define HAVE_SYS_POLL_H 1
+| #define HAVE_SYS_VFS_H 1
+| #define HAVE_LINUX_UTSNAME_H 1
+| #define HAVE_MQUEUE_H 1
+| #define HAVE_SYS_EPOLL_H 1
+| #define HAVE_LINUX_ICMP_H 1
+| #define HAVE_LINUX_IN6_H 1
+| #define HAVE_LINUX_NETLINK_H 1
+| #define HAVE_LINUX_IF_PACKET_H 1
+| #define HAVE_ASM_SIGCONTEXT_H 1
+| #define HAVE_NETINET_TCP_H 1
+| #define HAVE_NETINET_UDP_H 1
+| #define HAVE_STRUCT_MSGHDR_MSG_CONTROL 1
+| /* end confdefs.h. */
+| #include <sys/stream.h>
+| #include <sys/tihdr.h>
+|
+| int
+| main ()
+| {
+| static struct T_conn_res ac_aggr;
+| if (ac_aggr.ACCEPTOR_id)
+| return 0;
+| ;
+| return 0;
+| }
+configure:7691: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+conftest.c:67:24: error: sys/stream.h: No such file or directory
+conftest.c:68:23: error: sys/tihdr.h: No such file or directory
+conftest.c: In function 'main':
+conftest.c:73: error: storage size of 'ac_aggr' isn't known
+conftest.c:73: error: storage size of 'ac_aggr' isn't known
+configure:7697: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| #define HAVE_SIGACTION 1
+| #define HAVE_STRERROR 1
+| #define HAVE_STRSIGNAL 1
+| #define HAVE_PREAD 1
+| #define HAVE_SYS_SIGLIST 1
+| #define HAVE__SYS_SIGLIST 1
+| #define HAVE_PRCTL 1
+| #define HAVE_SENDMSG 1
+| #define HAVE_INET_NTOP 1
+| #define HAVE_IF_INDEXTONAME 1
+| #define HAVE_SYS_REG_H 1
+| #define HAVE_STROPTS_H 1
+| #define HAVE_SYS_IOCTL_H 1
+| #define HAVE_SYS_PTRACE_H 1
+| #define HAVE_TERMIO_H 1
+| #define HAVE_LINUX_PTRACE_H 1
+| #define HAVE_SYS_UIO_H 1
+| #define HAVE_POLL_H 1
+| #define HAVE_SYS_POLL_H 1
+| #define HAVE_SYS_VFS_H 1
+| #define HAVE_LINUX_UTSNAME_H 1
+| #define HAVE_MQUEUE_H 1
+| #define HAVE_SYS_EPOLL_H 1
+| #define HAVE_LINUX_ICMP_H 1
+| #define HAVE_LINUX_IN6_H 1
+| #define HAVE_LINUX_NETLINK_H 1
+| #define HAVE_LINUX_IF_PACKET_H 1
+| #define HAVE_ASM_SIGCONTEXT_H 1
+| #define HAVE_NETINET_TCP_H 1
+| #define HAVE_NETINET_UDP_H 1
+| #define HAVE_STRUCT_MSGHDR_MSG_CONTROL 1
+| /* end confdefs.h. */
+| #include <sys/stream.h>
+| #include <sys/tihdr.h>
+|
+| int
+| main ()
+| {
+| static struct T_conn_res ac_aggr;
+| if (sizeof ac_aggr.ACCEPTOR_id)
+| return 0;
+| ;
+| return 0;
+| }
+configure:7723: result: no
+configure:7735: checking for struct __old_kernel_stat
+configure:7760: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:7766: $? = 0
+configure:7770: test -z
+ || test ! -s conftest.err
+configure:7773: $? = 0
+configure:7776: test -s conftest.o
+configure:7779: $? = 0
+configure:7790: result: yes
+configure:7802: checking for struct pt_all_user_regs
+configure:7827: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+conftest.c: In function 'main':
+conftest.c:75: error: invalid application of 'sizeof' to incomplete type 'struct pt_all_user_regs'
+configure:7833: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| #define HAVE_SIGACTION 1
+| #define HAVE_STRERROR 1
+| #define HAVE_STRSIGNAL 1
+| #define HAVE_PREAD 1
+| #define HAVE_SYS_SIGLIST 1
+| #define HAVE__SYS_SIGLIST 1
+| #define HAVE_PRCTL 1
+| #define HAVE_SENDMSG 1
+| #define HAVE_INET_NTOP 1
+| #define HAVE_IF_INDEXTONAME 1
+| #define HAVE_SYS_REG_H 1
+| #define HAVE_STROPTS_H 1
+| #define HAVE_SYS_IOCTL_H 1
+| #define HAVE_SYS_PTRACE_H 1
+| #define HAVE_TERMIO_H 1
+| #define HAVE_LINUX_PTRACE_H 1
+| #define HAVE_SYS_UIO_H 1
+| #define HAVE_POLL_H 1
+| #define HAVE_SYS_POLL_H 1
+| #define HAVE_SYS_VFS_H 1
+| #define HAVE_LINUX_UTSNAME_H 1
+| #define HAVE_MQUEUE_H 1
+| #define HAVE_SYS_EPOLL_H 1
+| #define HAVE_LINUX_ICMP_H 1
+| #define HAVE_LINUX_IN6_H 1
+| #define HAVE_LINUX_NETLINK_H 1
+| #define HAVE_LINUX_IF_PACKET_H 1
+| #define HAVE_ASM_SIGCONTEXT_H 1
+| #define HAVE_NETINET_TCP_H 1
+| #define HAVE_NETINET_UDP_H 1
+| #define HAVE_STRUCT_MSGHDR_MSG_CONTROL 1
+| #define HAVE_STRUCT___OLD_KERNEL_STAT 1
+| /* end confdefs.h. */
+| #include <sys/ptrace.h>
+|
+| int
+| main ()
+| {
+| if ((struct pt_all_user_regs *) 0)
+| return 0;
+| if (sizeof (struct pt_all_user_regs))
+| return 0;
+| ;
+| return 0;
+| }
+configure:7857: result: no
+configure:7867: checking for struct ia64_fpreg
+configure:7892: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+conftest.c: In function 'main':
+conftest.c:75: error: invalid application of 'sizeof' to incomplete type 'struct ia64_fpreg'
+configure:7898: $? = 1
+configure: failed program was:
+| /* confdefs.h. */
+|
+| #define PACKAGE_NAME "strace"
+| #define PACKAGE_TARNAME "strace"
+| #define PACKAGE_VERSION "4.5.12"
+| #define PACKAGE_STRING "strace 4.5.12"
+| #define PACKAGE_BUGREPORT ""
+| #define PACKAGE "strace"
+| #define VERSION "4.5.12"
+| #define LINUX 1
+| #define ARM 1
+| #define _GNU_SOURCE 1
+| #define STDC_HEADERS 1
+| #define HAVE_DIRENT_H 1
+| #define HAVE_SYS_TYPES_H 1
+| #define HAVE_SYS_STAT_H 1
+| #define HAVE_STDLIB_H 1
+| #define HAVE_STRING_H 1
+| #define HAVE_MEMORY_H 1
+| #define HAVE_STRINGS_H 1
+| #define HAVE_INTTYPES_H 1
+| #define HAVE_STDINT_H 1
+| #define HAVE_UNISTD_H 1
+| #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+| #define HAVE_STRUCT_STAT_ST_BLOCKS 1
+| #define HAVE_STRUCT_STAT_ST_RDEV 1
+| #define HAVE_STAT64 1
+| #define RETSIGTYPE void
+| #define GETGROUPS_T gid_t
+| #define HAVE_SIG_ATOMIC_T 1
+| #define HAVE_SIGINFO_T 1
+| #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+| #define HAVE_LONG_LONG 1
+| #define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+| #define HAVE_SIGACTION 1
+| #define HAVE_STRERROR 1
+| #define HAVE_STRSIGNAL 1
+| #define HAVE_PREAD 1
+| #define HAVE_SYS_SIGLIST 1
+| #define HAVE__SYS_SIGLIST 1
+| #define HAVE_PRCTL 1
+| #define HAVE_SENDMSG 1
+| #define HAVE_INET_NTOP 1
+| #define HAVE_IF_INDEXTONAME 1
+| #define HAVE_SYS_REG_H 1
+| #define HAVE_STROPTS_H 1
+| #define HAVE_SYS_IOCTL_H 1
+| #define HAVE_SYS_PTRACE_H 1
+| #define HAVE_TERMIO_H 1
+| #define HAVE_LINUX_PTRACE_H 1
+| #define HAVE_SYS_UIO_H 1
+| #define HAVE_POLL_H 1
+| #define HAVE_SYS_POLL_H 1
+| #define HAVE_SYS_VFS_H 1
+| #define HAVE_LINUX_UTSNAME_H 1
+| #define HAVE_MQUEUE_H 1
+| #define HAVE_SYS_EPOLL_H 1
+| #define HAVE_LINUX_ICMP_H 1
+| #define HAVE_LINUX_IN6_H 1
+| #define HAVE_LINUX_NETLINK_H 1
+| #define HAVE_LINUX_IF_PACKET_H 1
+| #define HAVE_ASM_SIGCONTEXT_H 1
+| #define HAVE_NETINET_TCP_H 1
+| #define HAVE_NETINET_UDP_H 1
+| #define HAVE_STRUCT_MSGHDR_MSG_CONTROL 1
+| #define HAVE_STRUCT___OLD_KERNEL_STAT 1
+| /* end confdefs.h. */
+| #include <sys/ptrace.h>
+|
+| int
+| main ()
+| {
+| if ((struct ia64_fpreg *) 0)
+| return 0;
+| if (sizeof (struct ia64_fpreg))
+| return 0;
+| ;
+| return 0;
+| }
+configure:7922: result: no
+configure:7934: checking for struct user_desc
+configure:7959: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:7965: $? = 0
+configure:7969: test -z
+ || test ! -s conftest.err
+configure:7972: $? = 0
+configure:7975: test -s conftest.o
+configure:7978: $? = 0
+configure:7989: result: yes
+configure:8001: checking whether sys_errlist is declared
+configure:8025: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:8031: $? = 0
+configure:8035: test -z
+ || test ! -s conftest.err
+configure:8038: $? = 0
+configure:8041: test -s conftest.o
+configure:8044: $? = 0
+configure:8055: result: yes
+configure:8073: checking whether sys_siglist is declared
+configure:8098: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:8104: $? = 0
+configure:8108: test -z
+ || test ! -s conftest.err
+configure:8111: $? = 0
+configure:8114: test -s conftest.o
+configure:8117: $? = 0
+configure:8128: result: yes
+configure:8144: checking whether _sys_siglist is declared
+configure:8169: gcc -c -I/android/device/system/kernel_headers/ conftest.c >&5
+configure:8175: $? = 0
+configure:8179: test -z
+ || test ! -s conftest.err
+configure:8182: $? = 0
+configure:8185: test -s conftest.o
+configure:8188: $? = 0
+configure:8199: result: yes
+configure:8220: checking for perl
+configure:8238: found /usr/bin/perl
+configure:8250: result: /usr/bin/perl
+configure:8418: creating ./config.status
+
+## ---------------------- ##
+## Running config.status. ##
+## ---------------------- ##
+
+This file was extended by strace config.status 4.5.12, which was
+generated by GNU Autoconf 2.59. Invocation command line was
+
+ CONFIG_FILES =
+ CONFIG_HEADERS =
+ CONFIG_LINKS =
+ CONFIG_COMMANDS =
+ $ ./config.status
+
+on skywriting.corp.google.com
+
+config.status:716: creating Makefile
+config.status:820: creating config.h
+config.status:1226: executing depfiles commands
+
+## ---------------- ##
+## Cache variables. ##
+## ---------------- ##
+
+ac_cv_build=arm-unknown-linux-gnu
+ac_cv_build_alias=arm-unknown-linux-gnu
+ac_cv_c_compiler_gnu=yes
+ac_cv_c_const=yes
+ac_cv_env_CC_set=
+ac_cv_env_CC_value=
+ac_cv_env_CFLAGS_set=set
+ac_cv_env_CFLAGS_value=-I/android/device/system/kernel_headers/
+ac_cv_env_CPPFLAGS_set=
+ac_cv_env_CPPFLAGS_value=
+ac_cv_env_CPP_set=
+ac_cv_env_CPP_value=
+ac_cv_env_LDFLAGS_set=
+ac_cv_env_LDFLAGS_value=
+ac_cv_env_build_alias_set=set
+ac_cv_env_build_alias_value=arm-unknown-linux-gnu
+ac_cv_env_host_alias_set=
+ac_cv_env_host_alias_value=
+ac_cv_env_target_alias_set=
+ac_cv_env_target_alias_value=
+ac_cv_exeext=
+ac_cv_func__sys_siglist=yes
+ac_cv_func_getdents=no
+ac_cv_func_if_indextoname=yes
+ac_cv_func_inet_ntop=yes
+ac_cv_func_mctl=no
+ac_cv_func_prctl=yes
+ac_cv_func_pread=yes
+ac_cv_func_sendmsg=yes
+ac_cv_func_sigaction=yes
+ac_cv_func_strerror=yes
+ac_cv_func_strsignal=yes
+ac_cv_func_sys_siglist=yes
+ac_cv_have_decl__sys_siglist=yes
+ac_cv_have_decl_sys_errlist=yes
+ac_cv_have_decl_sys_siglist=yes
+ac_cv_have_little_endian_long_long=yes
+ac_cv_have_long_long_off_t=no
+ac_cv_have_long_long_rlim_t=no
+ac_cv_header_asm_reg_h=no
+ac_cv_header_asm_sigcontext_h=yes
+ac_cv_header_asm_sysmips_h=no
+ac_cv_header_dirent_dirent_h=yes
+ac_cv_header_inttypes_h=yes
+ac_cv_header_ioctls_h=no
+ac_cv_header_libaio_h=no
+ac_cv_header_linux_icmp_h=yes
+ac_cv_header_linux_if_packet_h=yes
+ac_cv_header_linux_in6_h=yes
+ac_cv_header_linux_netlink_h=yes
+ac_cv_header_linux_ptrace_h=yes
+ac_cv_header_linux_utsname_h=yes
+ac_cv_header_memory_h=yes
+ac_cv_header_mqueue_h=yes
+ac_cv_header_netinet_tcp_h=yes
+ac_cv_header_netinet_udp_h=yes
+ac_cv_header_poll_h=yes
+ac_cv_header_stat_broken=no
+ac_cv_header_stdc=yes
+ac_cv_header_stdint_h=yes
+ac_cv_header_stdlib_h=yes
+ac_cv_header_string_h=yes
+ac_cv_header_strings_h=yes
+ac_cv_header_stropts_h=yes
+ac_cv_header_sys_acl_h=no
+ac_cv_header_sys_aio_h=no
+ac_cv_header_sys_asynch_h=no
+ac_cv_header_sys_conf_h=no
+ac_cv_header_sys_door_h=no
+ac_cv_header_sys_epoll_h=yes
+ac_cv_header_sys_filio_h=no
+ac_cv_header_sys_ioctl_h=yes
+ac_cv_header_sys_nscsys_h=no
+ac_cv_header_sys_poll_h=yes
+ac_cv_header_sys_ptrace_h=yes
+ac_cv_header_sys_reg_h=yes
+ac_cv_header_sys_stat_h=yes
+ac_cv_header_sys_stream_h=no
+ac_cv_header_sys_sysconfig_h=no
+ac_cv_header_sys_tihdr_h=no
+ac_cv_header_sys_tiuser_h=no
+ac_cv_header_sys_types_h=yes
+ac_cv_header_sys_types_h_makedev=yes
+ac_cv_header_sys_uio_h=yes
+ac_cv_header_sys_vfs_h=yes
+ac_cv_header_termio_h=yes
+ac_cv_header_unistd_h=yes
+ac_cv_host=arm-unknown-linux-gnu
+ac_cv_host_alias=arm-unknown-linux-gnu
+ac_cv_member_struct_T_conn_res_ACCEPTOR_id=no
+ac_cv_member_struct_T_conn_res_QUEUE_ptr=no
+ac_cv_member_struct_msghdr_msg_control=yes
+ac_cv_member_struct_sockaddr_in6_sin6_scope_id=yes
+ac_cv_member_struct_stat_st_aclcnt=no
+ac_cv_member_struct_stat_st_blksize=yes
+ac_cv_member_struct_stat_st_blocks=yes
+ac_cv_member_struct_stat_st_flags=no
+ac_cv_member_struct_stat_st_fstype=no
+ac_cv_member_struct_stat_st_gen=no
+ac_cv_member_struct_stat_st_level=no
+ac_cv_member_struct_stat_st_rdev=yes
+ac_cv_mp_procfs=no
+ac_cv_objext=o
+ac_cv_path_PERL=/usr/bin/perl
+ac_cv_path_install='/usr/bin/install -c'
+ac_cv_pollable_procfs=no
+ac_cv_prog_AWK=gawk
+ac_cv_prog_CPP='gcc -E'
+ac_cv_prog_ac_ct_CC=gcc
+ac_cv_prog_cc_g=yes
+ac_cv_prog_cc_stdc=
+ac_cv_prog_egrep='grep -E'
+ac_cv_prog_gcc_traditional=no
+ac_cv_prog_make_make_set=yes
+ac_cv_search_opendir='none required'
+ac_cv_struct_pr_syscall=no
+ac_cv_type_getgroups=gid_t
+ac_cv_type_long_long=yes
+ac_cv_type_mode_t=yes
+ac_cv_type_sig_atomic_t=yes
+ac_cv_type_siginfo_t=yes
+ac_cv_type_signal=void
+ac_cv_type_stat64=yes
+ac_cv_type_struct___old_kernel_stat=yes
+ac_cv_type_struct_ia64_fpreg=no
+ac_cv_type_struct_opthdr=no
+ac_cv_type_struct_pt_all_user_regs=no
+ac_cv_type_struct_t_opthdr=no
+ac_cv_type_struct_user_desc=yes
+ac_cv_type_uid_t=yes
+am_cv_CC_dependencies_compiler_type=gcc3
+
+## ----------------- ##
+## Output variables. ##
+## ----------------- ##
+
+ACLOCAL='${SHELL} /android/sandbox/mkf/funpack/strace-4.5.12/missing --run aclocal-1.9'
+AMDEPBACKSLASH='\'
+AMDEP_FALSE='#'
+AMDEP_TRUE=''
+AMTAR='${SHELL} /android/sandbox/mkf/funpack/strace-4.5.12/missing --run tar'
+AUTOCONF='${SHELL} /android/sandbox/mkf/funpack/strace-4.5.12/missing --run autoconf'
+AUTOHEADER='${SHELL} /android/sandbox/mkf/funpack/strace-4.5.12/missing --run autoheader'
+AUTOMAKE='${SHELL} /android/sandbox/mkf/funpack/strace-4.5.12/missing --run automake-1.9'
+AWK='gawk'
+CC='gcc'
+CCDEPMODE='depmode=gcc3'
+CFLAGS='-I/android/device/system/kernel_headers/'
+CPP='gcc -E'
+CPPFLAGS=''
+CYGPATH_W='echo'
+DEFS='-DHAVE_CONFIG_H'
+DEPDIR='.deps'
+ECHO_C=''
+ECHO_N='-n'
+ECHO_T=''
+EGREP='grep -E'
+EXEEXT=''
+FREEBSD_FALSE=''
+FREEBSD_TRUE='#'
+I386_FALSE=''
+I386_TRUE='#'
+INSTALL_DATA='${INSTALL} -m 644'
+INSTALL_PROGRAM='${INSTALL}'
+INSTALL_SCRIPT='${INSTALL}'
+INSTALL_STRIP_PROGRAM='${SHELL} $(install_sh) -c -s'
+LDFLAGS=''
+LIBOBJS=''
+LIBS=''
+LINUX_FALSE='#'
+LINUX_TRUE=''
+LTLIBOBJS=''
+MAINT='#'
+MAINTAINER_MODE_FALSE=''
+MAINTAINER_MODE_TRUE='#'
+MAKEINFO='${SHELL} /android/sandbox/mkf/funpack/strace-4.5.12/missing --run makeinfo'
+OBJEXT='o'
+PACKAGE='strace'
+PACKAGE_BUGREPORT=''
+PACKAGE_NAME='strace'
+PACKAGE_STRING='strace 4.5.12'
+PACKAGE_TARNAME='strace'
+PACKAGE_VERSION='4.5.12'
+PATH_SEPARATOR=':'
+PERL='/usr/bin/perl'
+SET_MAKE=''
+SHELL='/bin/sh'
+STRIP=''
+SUNOS4_FALSE=''
+SUNOS4_TRUE='#'
+SVR4_FALSE=''
+SVR4_TRUE='#'
+VERSION='4.5.12'
+WARNFLAGS='-Wall'
+X86_64_FALSE=''
+X86_64_TRUE='#'
+ac_ct_CC='gcc'
+ac_ct_STRIP=''
+am__fastdepCC_FALSE='#'
+am__fastdepCC_TRUE=''
+am__include='include'
+am__leading_dot='.'
+am__quote=''
+am__tar='${AMTAR} chof - "$$tardir"'
+am__untar='${AMTAR} xf -'
+arch='arm'
+bindir='${exec_prefix}/bin'
+build='arm-unknown-linux-gnu'
+build_alias='arm-unknown-linux-gnu'
+build_cpu='arm'
+build_os='linux-gnu'
+build_vendor='unknown'
+datadir='${prefix}/share'
+exec_prefix='${prefix}'
+host='arm-unknown-linux-gnu'
+host_alias=''
+host_cpu='arm'
+host_os='linux-gnu'
+host_vendor='unknown'
+includedir='/usr/include'
+infodir='${prefix}/info'
+install_sh='/android/sandbox/mkf/funpack/strace-4.5.12/install-sh'
+libdir='${exec_prefix}/lib'
+libexecdir='${exec_prefix}/libexec'
+localstatedir='${prefix}/var'
+mandir='${prefix}/man'
+mkdir_p='mkdir -p --'
+oldincludedir='/usr/include'
+opsys='linux'
+prefix='/data/'
+program_transform_name='s,x,x,'
+sbindir='${exec_prefix}/sbin'
+sharedstatedir='${prefix}/com'
+sysconfdir='${prefix}/etc'
+target_alias=''
+
+## ----------- ##
+## confdefs.h. ##
+## ----------- ##
+
+#define ARM 1
+#define GETGROUPS_T gid_t
+#define HAVE_ASM_SIGCONTEXT_H 1
+#define HAVE_DECL_SYS_ERRLIST 1
+#define HAVE_DECL_SYS_SIGLIST 1
+#define HAVE_DECL__SYS_SIGLIST 1
+#define HAVE_DIRENT_H 1
+#define HAVE_IF_INDEXTONAME 1
+#define HAVE_INET_NTOP 1
+#define HAVE_INTTYPES_H 1
+#define HAVE_LINUX_ICMP_H 1
+#define HAVE_LINUX_IF_PACKET_H 1
+#define HAVE_LINUX_IN6_H 1
+#define HAVE_LINUX_NETLINK_H 1
+#define HAVE_LINUX_PTRACE_H 1
+#define HAVE_LINUX_UTSNAME_H 1
+#define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+#define HAVE_LONG_LONG 1
+#define HAVE_MEMORY_H 1
+#define HAVE_MQUEUE_H 1
+#define HAVE_NETINET_TCP_H 1
+#define HAVE_NETINET_UDP_H 1
+#define HAVE_POLL_H 1
+#define HAVE_PRCTL 1
+#define HAVE_PREAD 1
+#define HAVE_SENDMSG 1
+#define HAVE_SIGACTION 1
+#define HAVE_SIGINFO_T 1
+#define HAVE_SIG_ATOMIC_T 1
+#define HAVE_STAT64 1
+#define HAVE_STDINT_H 1
+#define HAVE_STDLIB_H 1
+#define HAVE_STRERROR 1
+#define HAVE_STRINGS_H 1
+#define HAVE_STRING_H 1
+#define HAVE_STROPTS_H 1
+#define HAVE_STRSIGNAL 1
+#define HAVE_STRUCT_MSGHDR_MSG_CONTROL 1
+#define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+#define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+#define HAVE_STRUCT_STAT_ST_BLOCKS 1
+#define HAVE_STRUCT_STAT_ST_RDEV 1
+#define HAVE_STRUCT_USER_DESC 1
+#define HAVE_STRUCT___OLD_KERNEL_STAT 1
+#define HAVE_SYS_EPOLL_H 1
+#define HAVE_SYS_IOCTL_H 1
+#define HAVE_SYS_POLL_H 1
+#define HAVE_SYS_PTRACE_H 1
+#define HAVE_SYS_REG_H 1
+#define HAVE_SYS_SIGLIST 1
+#define HAVE_SYS_STAT_H 1
+#define HAVE_SYS_TYPES_H 1
+#define HAVE_SYS_UIO_H 1
+#define HAVE_SYS_VFS_H 1
+#define HAVE_TERMIO_H 1
+#define HAVE_UNISTD_H 1
+#define HAVE__SYS_SIGLIST 1
+#define LINUX 1
+#define PACKAGE "strace"
+#define PACKAGE_BUGREPORT ""
+#define PACKAGE_NAME "strace"
+#define PACKAGE_STRING "strace 4.5.12"
+#define PACKAGE_TARNAME "strace"
+#define PACKAGE_VERSION "4.5.12"
+#define RETSIGTYPE void
+#define STDC_HEADERS 1
+#define VERSION "4.5.12"
+#define _GNU_SOURCE 1
+
+configure: exit 0
diff --git a/config.status b/config.status
new file mode 100755
index 0000000..2457e7c
--- /dev/null
+++ b/config.status
@@ -0,0 +1,1317 @@
+#! /bin/sh
+# Generated by configure.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+SHELL=${CONFIG_SHELL-/bin/sh}
+## --------------------- ##
+## M4sh Initialization. ##
+## --------------------- ##
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+ # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+ set -o posix
+fi
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# Support unset when possible.
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+ as_unset=unset
+else
+ as_unset=false
+fi
+
+
+# Work around bugs in pre-3.0 UWIN ksh.
+$as_unset ENV MAIL MAILPATH
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+for as_var in \
+ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+ LC_TELEPHONE LC_TIME
+do
+ if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
+ eval $as_var=C; export $as_var
+ else
+ $as_unset $as_var
+ fi
+done
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+
+# Name of the executable.
+as_me=`$as_basename "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)$' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
+ /^X\/\(\/\/\)$/{ s//\1/; q; }
+ /^X\/\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+
+
+# PATH needs CR, and LINENO needs CR and PATH.
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ echo "#! /bin/sh" >conf$$.sh
+ echo "exit 0" >>conf$$.sh
+ chmod +x conf$$.sh
+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+ PATH_SEPARATOR=';'
+ else
+ PATH_SEPARATOR=:
+ fi
+ rm -f conf$$.sh
+fi
+
+
+ as_lineno_1=$LINENO
+ as_lineno_2=$LINENO
+ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+ test "x$as_lineno_1" != "x$as_lineno_2" &&
+ test "x$as_lineno_3" = "x$as_lineno_2" || {
+ # Find who we are. Look in the path if we contain no path at all
+ # relative or not.
+ case $0 in
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+
+ ;;
+ esac
+ # We did not find ourselves, most probably we were run as `sh COMMAND'
+ # in which case we are not to be found in the path.
+ if test "x$as_myself" = x; then
+ as_myself=$0
+ fi
+ if test ! -f "$as_myself"; then
+ { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
+echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ case $CONFIG_SHELL in
+ '')
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for as_base in sh bash ksh sh5; do
+ case $as_dir in
+ /*)
+ if ("$as_dir/$as_base" -c '
+ as_lineno_1=$LINENO
+ as_lineno_2=$LINENO
+ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+ test "x$as_lineno_1" != "x$as_lineno_2" &&
+ test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
+ $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
+ $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
+ CONFIG_SHELL=$as_dir/$as_base
+ export CONFIG_SHELL
+ exec "$CONFIG_SHELL" "$0" ${1+"$@"}
+ fi;;
+ esac
+ done
+done
+;;
+ esac
+
+ # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+ # uniformly replaced by the line number. The first 'sed' inserts a
+ # line-number line before each line; the second 'sed' does the real
+ # work. The second script uses 'N' to pair each line-number line
+ # with the numbered line, and appends trailing '-' during
+ # substitution so that $LINENO is not a special case at line end.
+ # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+ # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
+ sed '=' <$as_myself |
+ sed '
+ N
+ s,$,-,
+ : loop
+ s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+ t loop
+ s,-$,,
+ s,^['$as_cr_digits']*\n,,
+ ' >$as_me.lineno &&
+ chmod +x $as_me.lineno ||
+ { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
+echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
+ { (exit 1); exit 1; }; }
+
+ # Don't try to exec as it changes $[0], causing all sort of problems
+ # (the dirname of $[0] is not the place where we might find the
+ # original and so on. Autoconf is especially sensible to this).
+ . ./$as_me.lineno
+ # Exit status is that of the last command.
+ exit
+}
+
+
+case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+ *c*,-n*) ECHO_N= ECHO_C='
+' ECHO_T=' ' ;;
+ *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+ *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
+esac
+
+if expr a : '\(a\)' >/dev/null 2>&1; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+ # We could just check for DJGPP; but this test a) works b) is more generic
+ # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+ if test -f conf$$.exe; then
+ # Don't use ln at all; we don't have any links
+ as_ln_s='cp -p'
+ else
+ as_ln_s='ln -s'
+ fi
+elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.file
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p=:
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+as_executable_p="test -f"
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.
+as_nl='
+'
+IFS=" $as_nl"
+
+# CDPATH.
+$as_unset CDPATH
+
+exec 6>&1
+
+# Open the log real soon, to keep \$[0] and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling. Logging --version etc. is OK.
+exec 5>>config.log
+{
+ echo
+ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+} >&5
+cat >&5 <<_CSEOF
+
+This file was extended by strace $as_me 4.5.12, which was
+generated by GNU Autoconf 2.59. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+ CONFIG_COMMANDS = $CONFIG_COMMANDS
+ $ $0 $@
+
+_CSEOF
+echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
+echo >&5
+config_files=" Makefile"
+config_headers=" config.h"
+config_commands=" depfiles"
+
+ac_cs_usage="\
+\`$as_me' instantiates files from templates according to the
+current configuration.
+
+Usage: $0 [OPTIONS] [FILE]...
+
+ -h, --help print this help, then exit
+ -V, --version print version number, then exit
+ -q, --quiet do not print progress messages
+ -d, --debug don't remove temporary files
+ --recheck update $as_me by reconfiguring in the same conditions
+ --file=FILE[:TEMPLATE]
+ instantiate the configuration file FILE
+ --header=FILE[:TEMPLATE]
+ instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Configuration commands:
+$config_commands
+
+Report bugs to <bug-autoconf@gnu.org>."
+ac_cs_version="\
+strace config.status 4.5.12
+configured by ./configure, generated by GNU Autoconf 2.59,
+ with options \"'--prefix=/data/' '--build=arm-unknown-linux-gnu' 'CFLAGS=-I/android/device/system/kernel_headers/' 'build_alias=arm-unknown-linux-gnu'\"
+
+Copyright (C) 2003 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+srcdir=.
+INSTALL="/usr/bin/install -c"
+# If no file are specified by the user, then we need to provide default
+# value. By we need to know if files were specified by the user.
+ac_need_defaults=:
+while test $# != 0
+do
+ case $1 in
+ --*=*)
+ ac_option=`expr "x$1" : 'x\([^=]*\)='`
+ ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
+ ac_shift=:
+ ;;
+ -*)
+ ac_option=$1
+ ac_optarg=$2
+ ac_shift=shift
+ ;;
+ *) # This is not an option, so the user has probably given explicit
+ # arguments.
+ ac_option=$1
+ ac_need_defaults=false;;
+ esac
+
+ case $ac_option in
+ # Handling of the options.
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ ac_cs_recheck=: ;;
+ --version | --vers* | -V )
+ echo "$ac_cs_version"; exit 0 ;;
+ --he | --h)
+ # Conflict between --help and --header
+ { { echo "$as_me:$LINENO: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&5
+echo "$as_me: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&2;}
+ { (exit 1); exit 1; }; };;
+ --help | --hel | -h )
+ echo "$ac_cs_usage"; exit 0 ;;
+ --debug | --d* | -d )
+ debug=: ;;
+ --file | --fil | --fi | --f )
+ $ac_shift
+ CONFIG_FILES="$CONFIG_FILES $ac_optarg"
+ ac_need_defaults=false;;
+ --header | --heade | --head | --hea )
+ $ac_shift
+ CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
+ ac_need_defaults=false;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil | --si | --s)
+ ac_cs_silent=: ;;
+
+ # This is an error.
+ -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&5
+echo "$as_me: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&2;}
+ { (exit 1); exit 1; }; } ;;
+
+ *) ac_config_targets="$ac_config_targets $1" ;;
+
+ esac
+ shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+ exec 6>/dev/null
+ ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+if $ac_cs_recheck; then
+ echo "running /bin/sh ./configure " '--prefix=/data/' '--build=arm-unknown-linux-gnu' 'CFLAGS=-I/android/device/system/kernel_headers/' 'build_alias=arm-unknown-linux-gnu' $ac_configure_extra_args " --no-create --no-recursion" >&6
+ exec /bin/sh ./configure '--prefix=/data/' '--build=arm-unknown-linux-gnu' 'CFLAGS=-I/android/device/system/kernel_headers/' 'build_alias=arm-unknown-linux-gnu' $ac_configure_extra_args --no-create --no-recursion
+fi
+
+#
+# INIT-COMMANDS section.
+#
+
+AMDEP_TRUE="" ac_aux_dir="."
+
+for ac_config_target in $ac_config_targets
+do
+ case "$ac_config_target" in
+ # Handling of arguments.
+ "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+ "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+ "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+ *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
+echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+ { (exit 1); exit 1; }; };;
+ esac
+done
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used. Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+ test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience. Make it in the build tree
+# simply because there is no reason to put it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Create a temporary directory, and hook for its removal unless debugging.
+$debug ||
+{
+ trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
+ trap '{ (exit 1); exit 1; }' 1 2 13 15
+}
+
+# Create a (secure) tmp directory for tmp files.
+
+{
+ tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
+ test -n "$tmp" && test -d "$tmp"
+} ||
+{
+ tmp=./confstat$$-$RANDOM
+ (umask 077 && mkdir $tmp)
+} ||
+{
+ echo "$me: cannot create a temporary directory in ." >&2
+ { (exit 1); exit 1; }
+}
+
+
+#
+# CONFIG_FILES section.
+#
+
+# No need to generate the scripts if there are no CONFIG_FILES.
+# This happens for instance when ./config.status config.h
+if test -n "$CONFIG_FILES"; then
+ # Protect against being on the right side of a sed subst in config.status.
+ sed 's/,@/@@/; s/@,/@@/; s/,;t t$/@;t t/; /@;t t$/s/[\\&,]/\\&/g;
+ s/@@/,@/; s/@@/@,/; s/@;t t$/,;t t/' >$tmp/subs.sed <<\CEOF
+s,@SHELL@,/bin/sh,;t t
+s,@PATH_SEPARATOR@,:,;t t
+s,@PACKAGE_NAME@,strace,;t t
+s,@PACKAGE_TARNAME@,strace,;t t
+s,@PACKAGE_VERSION@,4.5.12,;t t
+s,@PACKAGE_STRING@,strace 4.5.12,;t t
+s,@PACKAGE_BUGREPORT@,,;t t
+s,@exec_prefix@,${prefix},;t t
+s,@prefix@,/data/,;t t
+s,@program_transform_name@,s,x,x,,;t t
+s,@bindir@,${exec_prefix}/bin,;t t
+s,@sbindir@,${exec_prefix}/sbin,;t t
+s,@libexecdir@,${exec_prefix}/libexec,;t t
+s,@datadir@,${prefix}/share,;t t
+s,@sysconfdir@,${prefix}/etc,;t t
+s,@sharedstatedir@,${prefix}/com,;t t
+s,@localstatedir@,${prefix}/var,;t t
+s,@libdir@,${exec_prefix}/lib,;t t
+s,@includedir@,/usr/include,;t t
+s,@oldincludedir@,/usr/include,;t t
+s,@infodir@,${prefix}/info,;t t
+s,@mandir@,${prefix}/man,;t t
+s,@build_alias@,arm-unknown-linux-gnu,;t t
+s,@host_alias@,,;t t
+s,@target_alias@,,;t t
+s,@DEFS@,-DHAVE_CONFIG_H,;t t
+s,@ECHO_C@,,;t t
+s,@ECHO_N@,-n,;t t
+s,@ECHO_T@,,;t t
+s,@LIBS@,,;t t
+s,@INSTALL_PROGRAM@,${INSTALL},;t t
+s,@INSTALL_SCRIPT@,${INSTALL},;t t
+s,@INSTALL_DATA@,${INSTALL} -m 644,;t t
+s,@CYGPATH_W@,echo,;t t
+s,@PACKAGE@,strace,;t t
+s,@VERSION@,4.5.12,;t t
+s,@ACLOCAL@,${SHELL} /android/sandbox/mkf/funpack/strace-4.5.12/missing --run aclocal-1.9,;t t
+s,@AUTOCONF@,${SHELL} /android/sandbox/mkf/funpack/strace-4.5.12/missing --run autoconf,;t t
+s,@AUTOMAKE@,${SHELL} /android/sandbox/mkf/funpack/strace-4.5.12/missing --run automake-1.9,;t t
+s,@AUTOHEADER@,${SHELL} /android/sandbox/mkf/funpack/strace-4.5.12/missing --run autoheader,;t t
+s,@MAKEINFO@,${SHELL} /android/sandbox/mkf/funpack/strace-4.5.12/missing --run makeinfo,;t t
+s,@install_sh@,/android/sandbox/mkf/funpack/strace-4.5.12/install-sh,;t t
+s,@STRIP@,,;t t
+s,@ac_ct_STRIP@,,;t t
+s,@INSTALL_STRIP_PROGRAM@,${SHELL} $(install_sh) -c -s,;t t
+s,@mkdir_p@,mkdir -p --,;t t
+s,@AWK@,gawk,;t t
+s,@SET_MAKE@,,;t t
+s,@am__leading_dot@,.,;t t
+s,@AMTAR@,${SHELL} /android/sandbox/mkf/funpack/strace-4.5.12/missing --run tar,;t t
+s,@am__tar@,${AMTAR} chof - "$$tardir",;t t
+s,@am__untar@,${AMTAR} xf -,;t t
+s,@MAINTAINER_MODE_TRUE@,#,;t t
+s,@MAINTAINER_MODE_FALSE@,,;t t
+s,@MAINT@,#,;t t
+s,@build@,arm-unknown-linux-gnu,;t t
+s,@build_cpu@,arm,;t t
+s,@build_vendor@,unknown,;t t
+s,@build_os@,linux-gnu,;t t
+s,@host@,arm-unknown-linux-gnu,;t t
+s,@host_cpu@,arm,;t t
+s,@host_vendor@,unknown,;t t
+s,@host_os@,linux-gnu,;t t
+s,@opsys@,linux,;t t
+s,@arch@,arm,;t t
+s,@LINUX_TRUE@,,;t t
+s,@LINUX_FALSE@,#,;t t
+s,@I386_TRUE@,#,;t t
+s,@I386_FALSE@,,;t t
+s,@X86_64_TRUE@,#,;t t
+s,@X86_64_FALSE@,,;t t
+s,@SUNOS4_TRUE@,#,;t t
+s,@SUNOS4_FALSE@,,;t t
+s,@SVR4_TRUE@,#,;t t
+s,@SVR4_FALSE@,,;t t
+s,@FREEBSD_TRUE@,#,;t t
+s,@FREEBSD_FALSE@,,;t t
+s,@CC@,gcc,;t t
+s,@CFLAGS@,-I/android/device/system/kernel_headers/,;t t
+s,@LDFLAGS@,,;t t
+s,@CPPFLAGS@,,;t t
+s,@ac_ct_CC@,gcc,;t t
+s,@EXEEXT@,,;t t
+s,@OBJEXT@,o,;t t
+s,@DEPDIR@,.deps,;t t
+s,@am__include@,include,;t t
+s,@am__quote@,,;t t
+s,@AMDEP_TRUE@,,;t t
+s,@AMDEP_FALSE@,#,;t t
+s,@AMDEPBACKSLASH@,\,;t t
+s,@CCDEPMODE@,depmode=gcc3,;t t
+s,@am__fastdepCC_TRUE@,,;t t
+s,@am__fastdepCC_FALSE@,#,;t t
+s,@WARNFLAGS@,-Wall,;t t
+s,@CPP@,gcc -E,;t t
+s,@EGREP@,grep -E,;t t
+s,@PERL@,/usr/bin/perl,;t t
+s,@LIBOBJS@,,;t t
+s,@LTLIBOBJS@,,;t t
+CEOF
+
+ # Split the substitutions into bite-sized pieces for seds with
+ # small command number limits, like on Digital OSF/1 and HP-UX.
+ ac_max_sed_lines=48
+ ac_sed_frag=1 # Number of current file.
+ ac_beg=1 # First line for current file.
+ ac_end=$ac_max_sed_lines # Line after last line for current file.
+ ac_more_lines=:
+ ac_sed_cmds=
+ while $ac_more_lines; do
+ if test $ac_beg -gt 1; then
+ sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+ else
+ sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+ fi
+ if test ! -s $tmp/subs.frag; then
+ ac_more_lines=false
+ else
+ # The purpose of the label and of the branching condition is to
+ # speed up the sed processing (if there are no `@' at all, there
+ # is no need to browse any of the substitutions).
+ # These are the two extra sed commands mentioned above.
+ (echo ':t
+ /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
+ if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
+ else
+ ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
+ fi
+ ac_sed_frag=`expr $ac_sed_frag + 1`
+ ac_beg=$ac_end
+ ac_end=`expr $ac_end + $ac_max_sed_lines`
+ fi
+ done
+ if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds=cat
+ fi
+fi # test -n "$CONFIG_FILES"
+
+for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
+ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+ case $ac_file in
+ - | *:- | *:-:* ) # input from stdin
+ cat >$tmp/stdin
+ ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+ *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+ * ) ac_file_in=$ac_file.in ;;
+ esac
+
+ # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
+ ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ { if $as_mkdir_p; then
+ mkdir -p "$ac_dir"
+ else
+ as_dir="$ac_dir"
+ as_dirs=
+ while test ! -d "$as_dir"; do
+ as_dirs="$as_dir $as_dirs"
+ as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ done
+ test ! -n "$as_dirs" || mkdir $as_dirs
+ fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+ { (exit 1); exit 1; }; }; }
+
+ ac_builddir=.
+
+if test "$ac_dir" != .; then
+ ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+ # A "../" for each directory in $ac_dir_suffix.
+ ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+ ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+ .) # No --srcdir option. We are building in place.
+ ac_srcdir=.
+ if test -z "$ac_top_builddir"; then
+ ac_top_srcdir=.
+ else
+ ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+ fi ;;
+ [\\/]* | ?:[\\/]* ) # Absolute path.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir ;;
+ *) # Relative path.
+ ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+
+# Do not use `cd foo && pwd` to compute absolute paths, because
+# the directories may not exist.
+case `pwd` in
+.) ac_abs_builddir="$ac_dir";;
+*)
+ case "$ac_dir" in
+ .) ac_abs_builddir=`pwd`;;
+ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+ *) ac_abs_builddir=`pwd`/"$ac_dir";;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_builddir=${ac_top_builddir}.;;
+*)
+ case ${ac_top_builddir}. in
+ .) ac_abs_top_builddir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_srcdir=$ac_srcdir;;
+*)
+ case $ac_srcdir in
+ .) ac_abs_srcdir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_srcdir=$ac_top_srcdir;;
+*)
+ case $ac_top_srcdir in
+ .) ac_abs_top_srcdir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+ esac;;
+esac
+
+
+ case $INSTALL in
+ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+ *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
+ esac
+
+ if test x"$ac_file" != x-; then
+ { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+ rm -f "$ac_file"
+ fi
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
+ # use $as_me), people would be surprised to read:
+ # /* config.h. Generated by config.status. */
+ if test x"$ac_file" = x-; then
+ configure_input=
+ else
+ configure_input="$ac_file. "
+ fi
+ configure_input=$configure_input"Generated from `echo $ac_file_in |
+ sed 's,.*/,,'` by configure."
+
+ # First look for the input files in the build tree, otherwise in the
+ # src tree.
+ ac_file_inputs=`IFS=:
+ for f in $ac_file_in; do
+ case $f in
+ -) echo $tmp/stdin ;;
+ [\\/$]*)
+ # Absolute (can't be DOS-style, as IFS=:)
+ test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ echo "$f";;
+ *) # Relative
+ if test -f "$f"; then
+ # Build tree
+ echo "$f"
+ elif test -f "$srcdir/$f"; then
+ # Source tree
+ echo "$srcdir/$f"
+ else
+ # /dev/null tree
+ { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ fi;;
+ esac
+ done` || { (exit 1); exit 1; }
+ sed "/^[ ]*VPATH[ ]*=/{
+s/:*\$(srcdir):*/:/;
+s/:*\${srcdir}:*/:/;
+s/:*@srcdir@:*/:/;
+s/^\([^=]*=[ ]*\):*/\1/;
+s/:*$//;
+s/^[^=]*=[ ]*$//;
+}
+
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s,@configure_input@,$configure_input,;t t
+s,@srcdir@,$ac_srcdir,;t t
+s,@abs_srcdir@,$ac_abs_srcdir,;t t
+s,@top_srcdir@,$ac_top_srcdir,;t t
+s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
+s,@builddir@,$ac_builddir,;t t
+s,@abs_builddir@,$ac_abs_builddir,;t t
+s,@top_builddir@,$ac_top_builddir,;t t
+s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
+s,@INSTALL@,$ac_INSTALL,;t t
+" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
+ rm -f $tmp/stdin
+ if test x"$ac_file" != x-; then
+ mv $tmp/out $ac_file
+ else
+ cat $tmp/out
+ rm -f $tmp/out
+ fi
+
+done
+
+#
+# CONFIG_HEADER section.
+#
+
+# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
+# NAME is the cpp macro being defined and VALUE is the value it is being given.
+#
+# ac_d sets the value in "#define NAME VALUE" lines.
+ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)'
+ac_dB='[ ].*$,\1#\2'
+ac_dC=' '
+ac_dD=',;t'
+# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
+ac_uB='$,\1#\2define\3'
+ac_uC=' '
+ac_uD=',;t'
+
+for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
+ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+ case $ac_file in
+ - | *:- | *:-:* ) # input from stdin
+ cat >$tmp/stdin
+ ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+ *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+ * ) ac_file_in=$ac_file.in ;;
+ esac
+
+ test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+
+ # First look for the input files in the build tree, otherwise in the
+ # src tree.
+ ac_file_inputs=`IFS=:
+ for f in $ac_file_in; do
+ case $f in
+ -) echo $tmp/stdin ;;
+ [\\/$]*)
+ # Absolute (can't be DOS-style, as IFS=:)
+ test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ # Do quote $f, to prevent DOS paths from being IFS'd.
+ echo "$f";;
+ *) # Relative
+ if test -f "$f"; then
+ # Build tree
+ echo "$f"
+ elif test -f "$srcdir/$f"; then
+ # Source tree
+ echo "$srcdir/$f"
+ else
+ # /dev/null tree
+ { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ fi;;
+ esac
+ done` || { (exit 1); exit 1; }
+ # Remove the trailing spaces.
+ sed 's/[ ]*$//' $ac_file_inputs >$tmp/in
+
+ # Handle all the #define templates only if necessary.
+ if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then
+ # If there are no defines, we may have an empty if/fi
+ :
+ cat >$tmp/defines.sed <<CEOF
+/^[ ]*#[ ]*define/!b
+t clr
+: clr
+${ac_dA}PACKAGE_NAME${ac_dB}PACKAGE_NAME${ac_dC}"strace"${ac_dD}
+${ac_dA}PACKAGE_TARNAME${ac_dB}PACKAGE_TARNAME${ac_dC}"strace"${ac_dD}
+${ac_dA}PACKAGE_VERSION${ac_dB}PACKAGE_VERSION${ac_dC}"4.5.12"${ac_dD}
+${ac_dA}PACKAGE_STRING${ac_dB}PACKAGE_STRING${ac_dC}"strace 4.5.12"${ac_dD}
+${ac_dA}PACKAGE_BUGREPORT${ac_dB}PACKAGE_BUGREPORT${ac_dC}""${ac_dD}
+${ac_dA}PACKAGE${ac_dB}PACKAGE${ac_dC}"strace"${ac_dD}
+${ac_dA}VERSION${ac_dB}VERSION${ac_dC}"4.5.12"${ac_dD}
+${ac_dA}LINUX${ac_dB}LINUX${ac_dC}1${ac_dD}
+${ac_dA}ARM${ac_dB}ARM${ac_dC}1${ac_dD}
+${ac_dA}_GNU_SOURCE${ac_dB}_GNU_SOURCE${ac_dC}1${ac_dD}
+${ac_dA}STDC_HEADERS${ac_dB}STDC_HEADERS${ac_dC}1${ac_dD}
+${ac_dA}HAVE_DIRENT_H${ac_dB}HAVE_DIRENT_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_SYS_TYPES_H${ac_dB}HAVE_SYS_TYPES_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_SYS_STAT_H${ac_dB}HAVE_SYS_STAT_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_STDLIB_H${ac_dB}HAVE_STDLIB_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_STRING_H${ac_dB}HAVE_STRING_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_MEMORY_H${ac_dB}HAVE_MEMORY_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_STRINGS_H${ac_dB}HAVE_STRINGS_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_INTTYPES_H${ac_dB}HAVE_INTTYPES_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_STDINT_H${ac_dB}HAVE_STDINT_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_UNISTD_H${ac_dB}HAVE_UNISTD_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_STRUCT_STAT_ST_BLKSIZE${ac_dB}HAVE_STRUCT_STAT_ST_BLKSIZE${ac_dC}1${ac_dD}
+${ac_dA}HAVE_STRUCT_STAT_ST_BLOCKS${ac_dB}HAVE_STRUCT_STAT_ST_BLOCKS${ac_dC}1${ac_dD}
+${ac_dA}HAVE_STRUCT_STAT_ST_RDEV${ac_dB}HAVE_STRUCT_STAT_ST_RDEV${ac_dC}1${ac_dD}
+${ac_dA}HAVE_STAT64${ac_dB}HAVE_STAT64${ac_dC}1${ac_dD}
+${ac_dA}RETSIGTYPE${ac_dB}RETSIGTYPE${ac_dC}void${ac_dD}
+${ac_dA}GETGROUPS_T${ac_dB}GETGROUPS_T${ac_dC}gid_t${ac_dD}
+${ac_dA}HAVE_SIG_ATOMIC_T${ac_dB}HAVE_SIG_ATOMIC_T${ac_dC}1${ac_dD}
+${ac_dA}HAVE_SIGINFO_T${ac_dB}HAVE_SIGINFO_T${ac_dC}1${ac_dD}
+${ac_dA}HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID${ac_dB}HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID${ac_dC}1${ac_dD}
+${ac_dA}HAVE_LONG_LONG${ac_dB}HAVE_LONG_LONG${ac_dC}1${ac_dD}
+${ac_dA}HAVE_LITTLE_ENDIAN_LONG_LONG${ac_dB}HAVE_LITTLE_ENDIAN_LONG_LONG${ac_dC}1${ac_dD}
+${ac_dA}HAVE_SIGACTION${ac_dB}HAVE_SIGACTION${ac_dC}1${ac_dD}
+${ac_dA}HAVE_STRERROR${ac_dB}HAVE_STRERROR${ac_dC}1${ac_dD}
+${ac_dA}HAVE_STRSIGNAL${ac_dB}HAVE_STRSIGNAL${ac_dC}1${ac_dD}
+${ac_dA}HAVE_PREAD${ac_dB}HAVE_PREAD${ac_dC}1${ac_dD}
+${ac_dA}HAVE_SYS_SIGLIST${ac_dB}HAVE_SYS_SIGLIST${ac_dC}1${ac_dD}
+${ac_dA}HAVE__SYS_SIGLIST${ac_dB}HAVE__SYS_SIGLIST${ac_dC}1${ac_dD}
+CEOF
+ sed -f $tmp/defines.sed $tmp/in >$tmp/out
+ rm -f $tmp/in
+ mv $tmp/out $tmp/in
+
+ cat >$tmp/defines.sed <<CEOF
+/^[ ]*#[ ]*define/!b
+t clr
+: clr
+${ac_dA}HAVE_PRCTL${ac_dB}HAVE_PRCTL${ac_dC}1${ac_dD}
+${ac_dA}HAVE_SENDMSG${ac_dB}HAVE_SENDMSG${ac_dC}1${ac_dD}
+${ac_dA}HAVE_INET_NTOP${ac_dB}HAVE_INET_NTOP${ac_dC}1${ac_dD}
+${ac_dA}HAVE_IF_INDEXTONAME${ac_dB}HAVE_IF_INDEXTONAME${ac_dC}1${ac_dD}
+${ac_dA}HAVE_SYS_REG_H${ac_dB}HAVE_SYS_REG_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_STROPTS_H${ac_dB}HAVE_STROPTS_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_SYS_IOCTL_H${ac_dB}HAVE_SYS_IOCTL_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_SYS_PTRACE_H${ac_dB}HAVE_SYS_PTRACE_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_TERMIO_H${ac_dB}HAVE_TERMIO_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_LINUX_PTRACE_H${ac_dB}HAVE_LINUX_PTRACE_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_SYS_UIO_H${ac_dB}HAVE_SYS_UIO_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_POLL_H${ac_dB}HAVE_POLL_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_SYS_POLL_H${ac_dB}HAVE_SYS_POLL_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_SYS_VFS_H${ac_dB}HAVE_SYS_VFS_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_LINUX_UTSNAME_H${ac_dB}HAVE_LINUX_UTSNAME_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_MQUEUE_H${ac_dB}HAVE_MQUEUE_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_SYS_EPOLL_H${ac_dB}HAVE_SYS_EPOLL_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_LINUX_ICMP_H${ac_dB}HAVE_LINUX_ICMP_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_LINUX_IN6_H${ac_dB}HAVE_LINUX_IN6_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_LINUX_NETLINK_H${ac_dB}HAVE_LINUX_NETLINK_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_LINUX_IF_PACKET_H${ac_dB}HAVE_LINUX_IF_PACKET_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_ASM_SIGCONTEXT_H${ac_dB}HAVE_ASM_SIGCONTEXT_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_NETINET_TCP_H${ac_dB}HAVE_NETINET_TCP_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_NETINET_UDP_H${ac_dB}HAVE_NETINET_UDP_H${ac_dC}1${ac_dD}
+${ac_dA}HAVE_STRUCT_MSGHDR_MSG_CONTROL${ac_dB}HAVE_STRUCT_MSGHDR_MSG_CONTROL${ac_dC}1${ac_dD}
+${ac_dA}HAVE_STRUCT___OLD_KERNEL_STAT${ac_dB}HAVE_STRUCT___OLD_KERNEL_STAT${ac_dC}1${ac_dD}
+${ac_dA}HAVE_STRUCT_USER_DESC${ac_dB}HAVE_STRUCT_USER_DESC${ac_dC}1${ac_dD}
+${ac_dA}HAVE_DECL_SYS_ERRLIST${ac_dB}HAVE_DECL_SYS_ERRLIST${ac_dC}1${ac_dD}
+${ac_dA}HAVE_DECL_SYS_SIGLIST${ac_dB}HAVE_DECL_SYS_SIGLIST${ac_dC}1${ac_dD}
+${ac_dA}HAVE_DECL__SYS_SIGLIST${ac_dB}HAVE_DECL__SYS_SIGLIST${ac_dC}1${ac_dD}
+CEOF
+ sed -f $tmp/defines.sed $tmp/in >$tmp/out
+ rm -f $tmp/in
+ mv $tmp/out $tmp/in
+
+ fi # grep
+
+ # Handle all the #undef templates
+ cat >$tmp/undefs.sed <<CEOF
+/^[ ]*#[ ]*undef/!b
+t clr
+: clr
+${ac_uA}PACKAGE_NAME${ac_uB}PACKAGE_NAME${ac_uC}"strace"${ac_uD}
+${ac_uA}PACKAGE_TARNAME${ac_uB}PACKAGE_TARNAME${ac_uC}"strace"${ac_uD}
+${ac_uA}PACKAGE_VERSION${ac_uB}PACKAGE_VERSION${ac_uC}"4.5.12"${ac_uD}
+${ac_uA}PACKAGE_STRING${ac_uB}PACKAGE_STRING${ac_uC}"strace 4.5.12"${ac_uD}
+${ac_uA}PACKAGE_BUGREPORT${ac_uB}PACKAGE_BUGREPORT${ac_uC}""${ac_uD}
+${ac_uA}PACKAGE${ac_uB}PACKAGE${ac_uC}"strace"${ac_uD}
+${ac_uA}VERSION${ac_uB}VERSION${ac_uC}"4.5.12"${ac_uD}
+${ac_uA}LINUX${ac_uB}LINUX${ac_uC}1${ac_uD}
+${ac_uA}ARM${ac_uB}ARM${ac_uC}1${ac_uD}
+${ac_uA}_GNU_SOURCE${ac_uB}_GNU_SOURCE${ac_uC}1${ac_uD}
+${ac_uA}STDC_HEADERS${ac_uB}STDC_HEADERS${ac_uC}1${ac_uD}
+${ac_uA}HAVE_DIRENT_H${ac_uB}HAVE_DIRENT_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_SYS_TYPES_H${ac_uB}HAVE_SYS_TYPES_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_SYS_STAT_H${ac_uB}HAVE_SYS_STAT_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_STDLIB_H${ac_uB}HAVE_STDLIB_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_STRING_H${ac_uB}HAVE_STRING_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_MEMORY_H${ac_uB}HAVE_MEMORY_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_STRINGS_H${ac_uB}HAVE_STRINGS_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_INTTYPES_H${ac_uB}HAVE_INTTYPES_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_STDINT_H${ac_uB}HAVE_STDINT_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_UNISTD_H${ac_uB}HAVE_UNISTD_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_STRUCT_STAT_ST_BLKSIZE${ac_uB}HAVE_STRUCT_STAT_ST_BLKSIZE${ac_uC}1${ac_uD}
+${ac_uA}HAVE_STRUCT_STAT_ST_BLOCKS${ac_uB}HAVE_STRUCT_STAT_ST_BLOCKS${ac_uC}1${ac_uD}
+${ac_uA}HAVE_STRUCT_STAT_ST_RDEV${ac_uB}HAVE_STRUCT_STAT_ST_RDEV${ac_uC}1${ac_uD}
+${ac_uA}HAVE_STAT64${ac_uB}HAVE_STAT64${ac_uC}1${ac_uD}
+${ac_uA}RETSIGTYPE${ac_uB}RETSIGTYPE${ac_uC}void${ac_uD}
+${ac_uA}GETGROUPS_T${ac_uB}GETGROUPS_T${ac_uC}gid_t${ac_uD}
+${ac_uA}HAVE_SIG_ATOMIC_T${ac_uB}HAVE_SIG_ATOMIC_T${ac_uC}1${ac_uD}
+${ac_uA}HAVE_SIGINFO_T${ac_uB}HAVE_SIGINFO_T${ac_uC}1${ac_uD}
+${ac_uA}HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID${ac_uB}HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID${ac_uC}1${ac_uD}
+${ac_uA}HAVE_LONG_LONG${ac_uB}HAVE_LONG_LONG${ac_uC}1${ac_uD}
+${ac_uA}HAVE_LITTLE_ENDIAN_LONG_LONG${ac_uB}HAVE_LITTLE_ENDIAN_LONG_LONG${ac_uC}1${ac_uD}
+${ac_uA}HAVE_SIGACTION${ac_uB}HAVE_SIGACTION${ac_uC}1${ac_uD}
+${ac_uA}HAVE_STRERROR${ac_uB}HAVE_STRERROR${ac_uC}1${ac_uD}
+${ac_uA}HAVE_STRSIGNAL${ac_uB}HAVE_STRSIGNAL${ac_uC}1${ac_uD}
+${ac_uA}HAVE_PREAD${ac_uB}HAVE_PREAD${ac_uC}1${ac_uD}
+${ac_uA}HAVE_SYS_SIGLIST${ac_uB}HAVE_SYS_SIGLIST${ac_uC}1${ac_uD}
+${ac_uA}HAVE__SYS_SIGLIST${ac_uB}HAVE__SYS_SIGLIST${ac_uC}1${ac_uD}
+CEOF
+ sed -f $tmp/undefs.sed $tmp/in >$tmp/out
+ rm -f $tmp/in
+ mv $tmp/out $tmp/in
+
+ cat >$tmp/undefs.sed <<CEOF
+/^[ ]*#[ ]*undef/!b
+t clr
+: clr
+${ac_uA}HAVE_PRCTL${ac_uB}HAVE_PRCTL${ac_uC}1${ac_uD}
+${ac_uA}HAVE_SENDMSG${ac_uB}HAVE_SENDMSG${ac_uC}1${ac_uD}
+${ac_uA}HAVE_INET_NTOP${ac_uB}HAVE_INET_NTOP${ac_uC}1${ac_uD}
+${ac_uA}HAVE_IF_INDEXTONAME${ac_uB}HAVE_IF_INDEXTONAME${ac_uC}1${ac_uD}
+${ac_uA}HAVE_SYS_REG_H${ac_uB}HAVE_SYS_REG_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_STROPTS_H${ac_uB}HAVE_STROPTS_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_SYS_IOCTL_H${ac_uB}HAVE_SYS_IOCTL_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_SYS_PTRACE_H${ac_uB}HAVE_SYS_PTRACE_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_TERMIO_H${ac_uB}HAVE_TERMIO_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_LINUX_PTRACE_H${ac_uB}HAVE_LINUX_PTRACE_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_SYS_UIO_H${ac_uB}HAVE_SYS_UIO_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_POLL_H${ac_uB}HAVE_POLL_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_SYS_POLL_H${ac_uB}HAVE_SYS_POLL_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_SYS_VFS_H${ac_uB}HAVE_SYS_VFS_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_LINUX_UTSNAME_H${ac_uB}HAVE_LINUX_UTSNAME_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_MQUEUE_H${ac_uB}HAVE_MQUEUE_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_SYS_EPOLL_H${ac_uB}HAVE_SYS_EPOLL_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_LINUX_ICMP_H${ac_uB}HAVE_LINUX_ICMP_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_LINUX_IN6_H${ac_uB}HAVE_LINUX_IN6_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_LINUX_NETLINK_H${ac_uB}HAVE_LINUX_NETLINK_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_LINUX_IF_PACKET_H${ac_uB}HAVE_LINUX_IF_PACKET_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_ASM_SIGCONTEXT_H${ac_uB}HAVE_ASM_SIGCONTEXT_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_NETINET_TCP_H${ac_uB}HAVE_NETINET_TCP_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_NETINET_UDP_H${ac_uB}HAVE_NETINET_UDP_H${ac_uC}1${ac_uD}
+${ac_uA}HAVE_STRUCT_MSGHDR_MSG_CONTROL${ac_uB}HAVE_STRUCT_MSGHDR_MSG_CONTROL${ac_uC}1${ac_uD}
+${ac_uA}HAVE_STRUCT___OLD_KERNEL_STAT${ac_uB}HAVE_STRUCT___OLD_KERNEL_STAT${ac_uC}1${ac_uD}
+${ac_uA}HAVE_STRUCT_USER_DESC${ac_uB}HAVE_STRUCT_USER_DESC${ac_uC}1${ac_uD}
+${ac_uA}HAVE_DECL_SYS_ERRLIST${ac_uB}HAVE_DECL_SYS_ERRLIST${ac_uC}1${ac_uD}
+${ac_uA}HAVE_DECL_SYS_SIGLIST${ac_uB}HAVE_DECL_SYS_SIGLIST${ac_uC}1${ac_uD}
+${ac_uA}HAVE_DECL__SYS_SIGLIST${ac_uB}HAVE_DECL__SYS_SIGLIST${ac_uC}1${ac_uD}
+s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
+CEOF
+ sed -f $tmp/undefs.sed $tmp/in >$tmp/out
+ rm -f $tmp/in
+ mv $tmp/out $tmp/in
+
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
+ # use $as_me), people would be surprised to read:
+ # /* config.h. Generated by config.status. */
+ if test x"$ac_file" = x-; then
+ echo "/* Generated by configure. */" >$tmp/config.h
+ else
+ echo "/* $ac_file. Generated by configure. */" >$tmp/config.h
+ fi
+ cat $tmp/in >>$tmp/config.h
+ rm -f $tmp/in
+ if test x"$ac_file" != x-; then
+ if diff $ac_file $tmp/config.h >/dev/null 2>&1; then
+ { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
+echo "$as_me: $ac_file is unchanged" >&6;}
+ else
+ ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ { if $as_mkdir_p; then
+ mkdir -p "$ac_dir"
+ else
+ as_dir="$ac_dir"
+ as_dirs=
+ while test ! -d "$as_dir"; do
+ as_dirs="$as_dir $as_dirs"
+ as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ done
+ test ! -n "$as_dirs" || mkdir $as_dirs
+ fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+ { (exit 1); exit 1; }; }; }
+
+ rm -f $ac_file
+ mv $tmp/config.h $ac_file
+ fi
+ else
+ cat $tmp/config.h
+ rm -f $tmp/config.h
+ fi
+# Compute $ac_file's index in $config_headers.
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $ac_file | $ac_file:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $ac_file" >`(dirname $ac_file) 2>/dev/null ||
+$as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X$ac_file : 'X\(//\)[^/]' \| \
+ X$ac_file : 'X\(//\)$' \| \
+ X$ac_file : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X$ac_file |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`/stamp-h$_am_stamp_count
+done
+
+#
+# CONFIG_COMMANDS section.
+#
+for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
+ ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
+ ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
+ ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
+$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_dest" : 'X\(//\)[^/]' \| \
+ X"$ac_dest" : 'X\(//\)$' \| \
+ X"$ac_dest" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$ac_dest" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ { if $as_mkdir_p; then
+ mkdir -p "$ac_dir"
+ else
+ as_dir="$ac_dir"
+ as_dirs=
+ while test ! -d "$as_dir"; do
+ as_dirs="$as_dir $as_dirs"
+ as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ done
+ test ! -n "$as_dirs" || mkdir $as_dirs
+ fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+ { (exit 1); exit 1; }; }; }
+
+ ac_builddir=.
+
+if test "$ac_dir" != .; then
+ ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+ # A "../" for each directory in $ac_dir_suffix.
+ ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+ ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+ .) # No --srcdir option. We are building in place.
+ ac_srcdir=.
+ if test -z "$ac_top_builddir"; then
+ ac_top_srcdir=.
+ else
+ ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+ fi ;;
+ [\\/]* | ?:[\\/]* ) # Absolute path.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir ;;
+ *) # Relative path.
+ ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+
+# Do not use `cd foo && pwd` to compute absolute paths, because
+# the directories may not exist.
+case `pwd` in
+.) ac_abs_builddir="$ac_dir";;
+*)
+ case "$ac_dir" in
+ .) ac_abs_builddir=`pwd`;;
+ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+ *) ac_abs_builddir=`pwd`/"$ac_dir";;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_builddir=${ac_top_builddir}.;;
+*)
+ case ${ac_top_builddir}. in
+ .) ac_abs_top_builddir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_srcdir=$ac_srcdir;;
+*)
+ case $ac_srcdir in
+ .) ac_abs_srcdir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_srcdir=$ac_top_srcdir;;
+*)
+ case $ac_top_srcdir in
+ .) ac_abs_top_srcdir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+ esac;;
+esac
+
+
+ { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
+echo "$as_me: executing $ac_dest commands" >&6;}
+ case $ac_dest in
+ depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
+ # Strip MF so we end up with the name of the file.
+ mf=`echo "$mf" | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile or not.
+ # We used to match only the files named `Makefile.in', but
+ # some people rename them; so instead we look at the file content.
+ # Grep'ing the first line is not enough: some people post-process
+ # each Makefile.in and add a new line on top of each file to say so.
+ # So let's grep whole file.
+ if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
+ dirpart=`(dirname "$mf") 2>/dev/null ||
+$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$mf" : 'X\(//\)[^/]' \| \
+ X"$mf" : 'X\(//\)$' \| \
+ X"$mf" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$mf" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ else
+ continue
+ fi
+ # Extract the definition of DEPDIR, am__include, and am__quote
+ # from the Makefile without running `make'.
+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+ test -z "$DEPDIR" && continue
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
+ test -z "am__include" && continue
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+ # When using ansi2knr, U may be empty or an underscore; expand it
+ U=`sed -n 's/^U = //p' < "$mf"`
+ # Find all dependency output files, they are included files with
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
+ # simplest approach to changing $(DEPDIR) to its actual value in the
+ # expansion.
+ for file in `sed -n "
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+ # Make sure the directory exists.
+ test -f "$dirpart/$file" && continue
+ fdir=`(dirname "$file") 2>/dev/null ||
+$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$file" : 'X\(//\)[^/]' \| \
+ X"$file" : 'X\(//\)$' \| \
+ X"$file" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ { if $as_mkdir_p; then
+ mkdir -p $dirpart/$fdir
+ else
+ as_dir=$dirpart/$fdir
+ as_dirs=
+ while test ! -d "$as_dir"; do
+ as_dirs="$as_dir $as_dirs"
+ as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ done
+ test ! -n "$as_dirs" || mkdir $as_dirs
+ fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5
+echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;}
+ { (exit 1); exit 1; }; }; }
+
+ # echo "creating $dirpart/$file"
+ echo '# dummy' > "$dirpart/$file"
+ done
+done
+ ;;
+ esac
+done
+
+{ (exit 0); exit 0; }
diff --git a/config.sub b/config.sub
new file mode 100755
index 0000000..987b17d
--- /dev/null
+++ b/config.sub
@@ -0,0 +1,1566 @@
+#! /bin/sh
+# Configuration validation subroutine script.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+# 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+
+timestamp='2004-11-30'
+
+# This file is (in principle) common to ALL GNU software.
+# The presence of a machine in this file suggests that SOME GNU software
+# can handle that machine. It does not imply ALL GNU software can.
+#
+# This file 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.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Please send patches to <config-patches@gnu.org>. Submit a context
+# diff and a properly formatted ChangeLog entry.
+#
+# Configuration subroutine to validate and canonicalize a configuration type.
+# Supply the specified configuration type as an argument.
+# If it is invalid, we print an error message on stderr and exit with code 1.
+# Otherwise, we print the canonical config type on stdout and succeed.
+
+# This file is supposed to be the same for all GNU packages
+# and recognize all the CPU types, system types and aliases
+# that are meaningful with *any* GNU software.
+# Each package is responsible for reporting which valid configurations
+# it does not support. The user should be able to distinguish
+# a failure to support a valid configuration from a meaningless
+# configuration.
+
+# The goal of this file is to map all the various variations of a given
+# machine specification into a single specification in the form:
+# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or in some cases, the newer four-part form:
+# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# It is wrong to echo any other type of specification.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION] CPU-MFR-OPSYS
+ $0 [OPTION] ALIAS
+
+Canonicalize a configuration name.
+
+Operation modes:
+ -h, --help print this help, then exit
+ -t, --time-stamp print date of last modification, then exit
+ -v, --version print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.sub ($timestamp)
+
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+ case $1 in
+ --time-stamp | --time* | -t )
+ echo "$timestamp" ; exit 0 ;;
+ --version | -v )
+ echo "$version" ; exit 0 ;;
+ --help | --h* | -h )
+ echo "$usage"; exit 0 ;;
+ -- ) # Stop option processing
+ shift; break ;;
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+ echo "$me: invalid option $1$help"
+ exit 1 ;;
+
+ *local*)
+ # First pass through any local machine types.
+ echo $1
+ exit 0;;
+
+ * )
+ break ;;
+ esac
+done
+
+case $# in
+ 0) echo "$me: missing argument$help" >&2
+ exit 1;;
+ 1) ;;
+ *) echo "$me: too many arguments$help" >&2
+ exit 1;;
+esac
+
+# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+# Here we must recognize all the valid KERNEL-OS combinations.
+maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+case $maybe_os in
+ nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \
+ kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
+ os=-$maybe_os
+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+ ;;
+ *)
+ basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+ if [ $basic_machine != $1 ]
+ then os=`echo $1 | sed 's/.*-/-/'`
+ else os=; fi
+ ;;
+esac
+
+### Let's recognize common machines as not being operating systems so
+### that things like config.sub decstation-3100 work. We also
+### recognize some manufacturers as not being operating systems, so we
+### can provide default operating systems below.
+case $os in
+ -sun*os*)
+ # Prevent following clause from handling this invalid input.
+ ;;
+ -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
+ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
+ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+ -apple | -axis | -knuth | -cray)
+ os=
+ basic_machine=$1
+ ;;
+ -sim | -cisco | -oki | -wec | -winbond)
+ os=
+ basic_machine=$1
+ ;;
+ -scout)
+ ;;
+ -wrs)
+ os=-vxworks
+ basic_machine=$1
+ ;;
+ -chorusos*)
+ os=-chorusos
+ basic_machine=$1
+ ;;
+ -chorusrdb)
+ os=-chorusrdb
+ basic_machine=$1
+ ;;
+ -hiux*)
+ os=-hiuxwe2
+ ;;
+ -sco5)
+ os=-sco3.2v5
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco4)
+ os=-sco3.2v4
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco3.2.[4-9]*)
+ os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco3.2v[4-9]*)
+ # Don't forget version if it is 3.2v4 or newer.
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco*)
+ os=-sco3.2v2
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -udk*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -isc)
+ os=-isc2.2
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -clix*)
+ basic_machine=clipper-intergraph
+ ;;
+ -isc*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -lynx*)
+ os=-lynxos
+ ;;
+ -ptx*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+ ;;
+ -windowsnt*)
+ os=`echo $os | sed -e 's/windowsnt/winnt/'`
+ ;;
+ -psos*)
+ os=-psos
+ ;;
+ -mint | -mint[0-9]*)
+ basic_machine=m68k-atari
+ os=-mint
+ ;;
+esac
+
+# Decode aliases for certain CPU-COMPANY combinations.
+case $basic_machine in
+ # Recognize the basic CPU types without company name.
+ # Some are omitted here because they have special meanings below.
+ 1750a | 580 \
+ | a29k \
+ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+ | am33_2.0 \
+ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
+ | c4x | clipper \
+ | d10v | d30v | dlx | dsp16xx \
+ | fr30 | frv \
+ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+ | i370 | i860 | i960 | ia64 \
+ | ip2k | iq2000 \
+ | m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \
+ | mips | mipsbe | mipseb | mipsel | mipsle \
+ | mips16 \
+ | mips64 | mips64el \
+ | mips64vr | mips64vrel \
+ | mips64orion | mips64orionel \
+ | mips64vr4100 | mips64vr4100el \
+ | mips64vr4300 | mips64vr4300el \
+ | mips64vr5000 | mips64vr5000el \
+ | mipsisa32 | mipsisa32el \
+ | mipsisa32r2 | mipsisa32r2el \
+ | mipsisa64 | mipsisa64el \
+ | mipsisa64r2 | mipsisa64r2el \
+ | mipsisa64sb1 | mipsisa64sb1el \
+ | mipsisa64sr71k | mipsisa64sr71kel \
+ | mipstx39 | mipstx39el \
+ | mn10200 | mn10300 \
+ | msp430 \
+ | ns16k | ns32k \
+ | openrisc | or32 \
+ | pdp10 | pdp11 | pj | pjl \
+ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+ | pyramid \
+ | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
+ | sh64 | sh64le \
+ | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | sparcv9 | sparcv9b \
+ | strongarm \
+ | tahoe | thumb | tic4x | tic80 | tron \
+ | v850 | v850e \
+ | we32k \
+ | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \
+ | z8k)
+ basic_machine=$basic_machine-unknown
+ ;;
+ m6811 | m68hc11 | m6812 | m68hc12)
+ # Motorola 68HC11/12.
+ basic_machine=$basic_machine-unknown
+ os=-none
+ ;;
+ m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+ ;;
+
+ # We use `pc' rather than `unknown'
+ # because (1) that's what they normally are, and
+ # (2) the word "unknown" tends to confuse beginning users.
+ i*86 | x86_64)
+ basic_machine=$basic_machine-pc
+ ;;
+ # Object if more than one company name word.
+ *-*-*)
+ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+ exit 1
+ ;;
+ # Recognize the basic CPU types with company name.
+ 580-* \
+ | a29k-* \
+ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
+ | avr-* \
+ | bs2000-* \
+ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
+ | clipper-* | craynv-* | cydra-* \
+ | d10v-* | d30v-* | dlx-* \
+ | elxsi-* \
+ | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
+ | h8300-* | h8500-* \
+ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+ | i*86-* | i860-* | i960-* | ia64-* \
+ | ip2k-* | iq2000-* \
+ | m32r-* | m32rle-* \
+ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+ | m88110-* | m88k-* | maxq-* | mcore-* \
+ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+ | mips16-* \
+ | mips64-* | mips64el-* \
+ | mips64vr-* | mips64vrel-* \
+ | mips64orion-* | mips64orionel-* \
+ | mips64vr4100-* | mips64vr4100el-* \
+ | mips64vr4300-* | mips64vr4300el-* \
+ | mips64vr5000-* | mips64vr5000el-* \
+ | mipsisa32-* | mipsisa32el-* \
+ | mipsisa32r2-* | mipsisa32r2el-* \
+ | mipsisa64-* | mipsisa64el-* \
+ | mipsisa64r2-* | mipsisa64r2el-* \
+ | mipsisa64sb1-* | mipsisa64sb1el-* \
+ | mipsisa64sr71k-* | mipsisa64sr71kel-* \
+ | mipstx39-* | mipstx39el-* \
+ | mmix-* \
+ | msp430-* \
+ | none-* | np1-* | ns16k-* | ns32k-* \
+ | orion-* \
+ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+ | pyramid-* \
+ | romp-* | rs6000-* \
+ | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
+ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+ | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
+ | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
+ | tahoe-* | thumb-* \
+ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+ | tron-* \
+ | v850-* | v850e-* | vax-* \
+ | we32k-* \
+ | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \
+ | xstormy16-* | xtensa-* \
+ | ymp-* \
+ | z8k-*)
+ ;;
+ # Recognize the various machine names and aliases which stand
+ # for a CPU type and a company and sometimes even an OS.
+ 386bsd)
+ basic_machine=i386-unknown
+ os=-bsd
+ ;;
+ 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+ basic_machine=m68000-att
+ ;;
+ 3b*)
+ basic_machine=we32k-att
+ ;;
+ a29khif)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ abacus)
+ basic_machine=abacus-unknown
+ ;;
+ adobe68k)
+ basic_machine=m68010-adobe
+ os=-scout
+ ;;
+ alliant | fx80)
+ basic_machine=fx80-alliant
+ ;;
+ altos | altos3068)
+ basic_machine=m68k-altos
+ ;;
+ am29k)
+ basic_machine=a29k-none
+ os=-bsd
+ ;;
+ amd64)
+ basic_machine=x86_64-pc
+ ;;
+ amd64-*)
+ basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ amdahl)
+ basic_machine=580-amdahl
+ os=-sysv
+ ;;
+ amiga | amiga-*)
+ basic_machine=m68k-unknown
+ ;;
+ amigaos | amigados)
+ basic_machine=m68k-unknown
+ os=-amigaos
+ ;;
+ amigaunix | amix)
+ basic_machine=m68k-unknown
+ os=-sysv4
+ ;;
+ apollo68)
+ basic_machine=m68k-apollo
+ os=-sysv
+ ;;
+ apollo68bsd)
+ basic_machine=m68k-apollo
+ os=-bsd
+ ;;
+ aux)
+ basic_machine=m68k-apple
+ os=-aux
+ ;;
+ balance)
+ basic_machine=ns32k-sequent
+ os=-dynix
+ ;;
+ c90)
+ basic_machine=c90-cray
+ os=-unicos
+ ;;
+ convex-c1)
+ basic_machine=c1-convex
+ os=-bsd
+ ;;
+ convex-c2)
+ basic_machine=c2-convex
+ os=-bsd
+ ;;
+ convex-c32)
+ basic_machine=c32-convex
+ os=-bsd
+ ;;
+ convex-c34)
+ basic_machine=c34-convex
+ os=-bsd
+ ;;
+ convex-c38)
+ basic_machine=c38-convex
+ os=-bsd
+ ;;
+ cray | j90)
+ basic_machine=j90-cray
+ os=-unicos
+ ;;
+ craynv)
+ basic_machine=craynv-cray
+ os=-unicosmp
+ ;;
+ cr16c)
+ basic_machine=cr16c-unknown
+ os=-elf
+ ;;
+ crds | unos)
+ basic_machine=m68k-crds
+ ;;
+ crisv32 | crisv32-* | etraxfs*)
+ basic_machine=crisv32-axis
+ ;;
+ cris | cris-* | etrax*)
+ basic_machine=cris-axis
+ ;;
+ crx)
+ basic_machine=crx-unknown
+ os=-elf
+ ;;
+ da30 | da30-*)
+ basic_machine=m68k-da30
+ ;;
+ decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+ basic_machine=mips-dec
+ ;;
+ decsystem10* | dec10*)
+ basic_machine=pdp10-dec
+ os=-tops10
+ ;;
+ decsystem20* | dec20*)
+ basic_machine=pdp10-dec
+ os=-tops20
+ ;;
+ delta | 3300 | motorola-3300 | motorola-delta \
+ | 3300-motorola | delta-motorola)
+ basic_machine=m68k-motorola
+ ;;
+ delta88)
+ basic_machine=m88k-motorola
+ os=-sysv3
+ ;;
+ djgpp)
+ basic_machine=i586-pc
+ os=-msdosdjgpp
+ ;;
+ dpx20 | dpx20-*)
+ basic_machine=rs6000-bull
+ os=-bosx
+ ;;
+ dpx2* | dpx2*-bull)
+ basic_machine=m68k-bull
+ os=-sysv3
+ ;;
+ ebmon29k)
+ basic_machine=a29k-amd
+ os=-ebmon
+ ;;
+ elxsi)
+ basic_machine=elxsi-elxsi
+ os=-bsd
+ ;;
+ encore | umax | mmax)
+ basic_machine=ns32k-encore
+ ;;
+ es1800 | OSE68k | ose68k | ose | OSE)
+ basic_machine=m68k-ericsson
+ os=-ose
+ ;;
+ fx2800)
+ basic_machine=i860-alliant
+ ;;
+ genix)
+ basic_machine=ns32k-ns
+ ;;
+ gmicro)
+ basic_machine=tron-gmicro
+ os=-sysv
+ ;;
+ go32)
+ basic_machine=i386-pc
+ os=-go32
+ ;;
+ h3050r* | hiux*)
+ basic_machine=hppa1.1-hitachi
+ os=-hiuxwe2
+ ;;
+ h8300hms)
+ basic_machine=h8300-hitachi
+ os=-hms
+ ;;
+ h8300xray)
+ basic_machine=h8300-hitachi
+ os=-xray
+ ;;
+ h8500hms)
+ basic_machine=h8500-hitachi
+ os=-hms
+ ;;
+ harris)
+ basic_machine=m88k-harris
+ os=-sysv3
+ ;;
+ hp300-*)
+ basic_machine=m68k-hp
+ ;;
+ hp300bsd)
+ basic_machine=m68k-hp
+ os=-bsd
+ ;;
+ hp300hpux)
+ basic_machine=m68k-hp
+ os=-hpux
+ ;;
+ hp3k9[0-9][0-9] | hp9[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ ;;
+ hp9k2[0-9][0-9] | hp9k31[0-9])
+ basic_machine=m68000-hp
+ ;;
+ hp9k3[2-9][0-9])
+ basic_machine=m68k-hp
+ ;;
+ hp9k6[0-9][0-9] | hp6[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ ;;
+ hp9k7[0-79][0-9] | hp7[0-79][0-9])
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k78[0-9] | hp78[0-9])
+ # FIXME: really hppa2.0-hp
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
+ # FIXME: really hppa2.0-hp
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[0-9][13679] | hp8[0-9][13679])
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[0-9][0-9] | hp8[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ ;;
+ hppa-next)
+ os=-nextstep3
+ ;;
+ hppaosf)
+ basic_machine=hppa1.1-hp
+ os=-osf
+ ;;
+ hppro)
+ basic_machine=hppa1.1-hp
+ os=-proelf
+ ;;
+ i370-ibm* | ibm*)
+ basic_machine=i370-ibm
+ ;;
+# I'm not sure what "Sysv32" means. Should this be sysv3.2?
+ i*86v32)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv32
+ ;;
+ i*86v4*)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv4
+ ;;
+ i*86v)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv
+ ;;
+ i*86sol2)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-solaris2
+ ;;
+ i386mach)
+ basic_machine=i386-mach
+ os=-mach
+ ;;
+ i386-vsta | vsta)
+ basic_machine=i386-unknown
+ os=-vsta
+ ;;
+ iris | iris4d)
+ basic_machine=mips-sgi
+ case $os in
+ -irix*)
+ ;;
+ *)
+ os=-irix4
+ ;;
+ esac
+ ;;
+ isi68 | isi)
+ basic_machine=m68k-isi
+ os=-sysv
+ ;;
+ m88k-omron*)
+ basic_machine=m88k-omron
+ ;;
+ magnum | m3230)
+ basic_machine=mips-mips
+ os=-sysv
+ ;;
+ merlin)
+ basic_machine=ns32k-utek
+ os=-sysv
+ ;;
+ mingw32)
+ basic_machine=i386-pc
+ os=-mingw32
+ ;;
+ miniframe)
+ basic_machine=m68000-convergent
+ ;;
+ *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+ basic_machine=m68k-atari
+ os=-mint
+ ;;
+ mips3*-*)
+ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+ ;;
+ mips3*)
+ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+ ;;
+ monitor)
+ basic_machine=m68k-rom68k
+ os=-coff
+ ;;
+ morphos)
+ basic_machine=powerpc-unknown
+ os=-morphos
+ ;;
+ msdos)
+ basic_machine=i386-pc
+ os=-msdos
+ ;;
+ mvs)
+ basic_machine=i370-ibm
+ os=-mvs
+ ;;
+ ncr3000)
+ basic_machine=i486-ncr
+ os=-sysv4
+ ;;
+ netbsd386)
+ basic_machine=i386-unknown
+ os=-netbsd
+ ;;
+ netwinder)
+ basic_machine=armv4l-rebel
+ os=-linux
+ ;;
+ news | news700 | news800 | news900)
+ basic_machine=m68k-sony
+ os=-newsos
+ ;;
+ news1000)
+ basic_machine=m68030-sony
+ os=-newsos
+ ;;
+ news-3600 | risc-news)
+ basic_machine=mips-sony
+ os=-newsos
+ ;;
+ necv70)
+ basic_machine=v70-nec
+ os=-sysv
+ ;;
+ next | m*-next )
+ basic_machine=m68k-next
+ case $os in
+ -nextstep* )
+ ;;
+ -ns2*)
+ os=-nextstep2
+ ;;
+ *)
+ os=-nextstep3
+ ;;
+ esac
+ ;;
+ nh3000)
+ basic_machine=m68k-harris
+ os=-cxux
+ ;;
+ nh[45]000)
+ basic_machine=m88k-harris
+ os=-cxux
+ ;;
+ nindy960)
+ basic_machine=i960-intel
+ os=-nindy
+ ;;
+ mon960)
+ basic_machine=i960-intel
+ os=-mon960
+ ;;
+ nonstopux)
+ basic_machine=mips-compaq
+ os=-nonstopux
+ ;;
+ np1)
+ basic_machine=np1-gould
+ ;;
+ nsr-tandem)
+ basic_machine=nsr-tandem
+ ;;
+ op50n-* | op60c-*)
+ basic_machine=hppa1.1-oki
+ os=-proelf
+ ;;
+ or32 | or32-*)
+ basic_machine=or32-unknown
+ os=-coff
+ ;;
+ os400)
+ basic_machine=powerpc-ibm
+ os=-os400
+ ;;
+ OSE68000 | ose68000)
+ basic_machine=m68000-ericsson
+ os=-ose
+ ;;
+ os68k)
+ basic_machine=m68k-none
+ os=-os68k
+ ;;
+ pa-hitachi)
+ basic_machine=hppa1.1-hitachi
+ os=-hiuxwe2
+ ;;
+ paragon)
+ basic_machine=i860-intel
+ os=-osf
+ ;;
+ pbd)
+ basic_machine=sparc-tti
+ ;;
+ pbb)
+ basic_machine=m68k-tti
+ ;;
+ pc532 | pc532-*)
+ basic_machine=ns32k-pc532
+ ;;
+ pentium | p5 | k5 | k6 | nexgen | viac3)
+ basic_machine=i586-pc
+ ;;
+ pentiumpro | p6 | 6x86 | athlon | athlon_*)
+ basic_machine=i686-pc
+ ;;
+ pentiumii | pentium2 | pentiumiii | pentium3)
+ basic_machine=i686-pc
+ ;;
+ pentium4)
+ basic_machine=i786-pc
+ ;;
+ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+ basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentiumpro-* | p6-* | 6x86-* | athlon-*)
+ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentium4-*)
+ basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pn)
+ basic_machine=pn-gould
+ ;;
+ power) basic_machine=power-ibm
+ ;;
+ ppc) basic_machine=powerpc-unknown
+ ;;
+ ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppcle | powerpclittle | ppc-le | powerpc-little)
+ basic_machine=powerpcle-unknown
+ ;;
+ ppcle-* | powerpclittle-*)
+ basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppc64) basic_machine=powerpc64-unknown
+ ;;
+ ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppc64le | powerpc64little | ppc64-le | powerpc64-little)
+ basic_machine=powerpc64le-unknown
+ ;;
+ ppc64le-* | powerpc64little-*)
+ basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ps2)
+ basic_machine=i386-ibm
+ ;;
+ pw32)
+ basic_machine=i586-unknown
+ os=-pw32
+ ;;
+ rom68k)
+ basic_machine=m68k-rom68k
+ os=-coff
+ ;;
+ rm[46]00)
+ basic_machine=mips-siemens
+ ;;
+ rtpc | rtpc-*)
+ basic_machine=romp-ibm
+ ;;
+ s390 | s390-*)
+ basic_machine=s390-ibm
+ ;;
+ s390x | s390x-*)
+ basic_machine=s390x-ibm
+ ;;
+ sa29200)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ sb1)
+ basic_machine=mipsisa64sb1-unknown
+ ;;
+ sb1el)
+ basic_machine=mipsisa64sb1el-unknown
+ ;;
+ sei)
+ basic_machine=mips-sei
+ os=-seiux
+ ;;
+ sequent)
+ basic_machine=i386-sequent
+ ;;
+ sh)
+ basic_machine=sh-hitachi
+ os=-hms
+ ;;
+ sh64)
+ basic_machine=sh64-unknown
+ ;;
+ sparclite-wrs | simso-wrs)
+ basic_machine=sparclite-wrs
+ os=-vxworks
+ ;;
+ sps7)
+ basic_machine=m68k-bull
+ os=-sysv2
+ ;;
+ spur)
+ basic_machine=spur-unknown
+ ;;
+ st2000)
+ basic_machine=m68k-tandem
+ ;;
+ stratus)
+ basic_machine=i860-stratus
+ os=-sysv4
+ ;;
+ sun2)
+ basic_machine=m68000-sun
+ ;;
+ sun2os3)
+ basic_machine=m68000-sun
+ os=-sunos3
+ ;;
+ sun2os4)
+ basic_machine=m68000-sun
+ os=-sunos4
+ ;;
+ sun3os3)
+ basic_machine=m68k-sun
+ os=-sunos3
+ ;;
+ sun3os4)
+ basic_machine=m68k-sun
+ os=-sunos4
+ ;;
+ sun4os3)
+ basic_machine=sparc-sun
+ os=-sunos3
+ ;;
+ sun4os4)
+ basic_machine=sparc-sun
+ os=-sunos4
+ ;;
+ sun4sol2)
+ basic_machine=sparc-sun
+ os=-solaris2
+ ;;
+ sun3 | sun3-*)
+ basic_machine=m68k-sun
+ ;;
+ sun4)
+ basic_machine=sparc-sun
+ ;;
+ sun386 | sun386i | roadrunner)
+ basic_machine=i386-sun
+ ;;
+ sv1)
+ basic_machine=sv1-cray
+ os=-unicos
+ ;;
+ symmetry)
+ basic_machine=i386-sequent
+ os=-dynix
+ ;;
+ t3e)
+ basic_machine=alphaev5-cray
+ os=-unicos
+ ;;
+ t90)
+ basic_machine=t90-cray
+ os=-unicos
+ ;;
+ tic54x | c54x*)
+ basic_machine=tic54x-unknown
+ os=-coff
+ ;;
+ tic55x | c55x*)
+ basic_machine=tic55x-unknown
+ os=-coff
+ ;;
+ tic6x | c6x*)
+ basic_machine=tic6x-unknown
+ os=-coff
+ ;;
+ tx39)
+ basic_machine=mipstx39-unknown
+ ;;
+ tx39el)
+ basic_machine=mipstx39el-unknown
+ ;;
+ toad1)
+ basic_machine=pdp10-xkl
+ os=-tops20
+ ;;
+ tower | tower-32)
+ basic_machine=m68k-ncr
+ ;;
+ tpf)
+ basic_machine=s390x-ibm
+ os=-tpf
+ ;;
+ udi29k)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ ultra3)
+ basic_machine=a29k-nyu
+ os=-sym1
+ ;;
+ v810 | necv810)
+ basic_machine=v810-nec
+ os=-none
+ ;;
+ vaxv)
+ basic_machine=vax-dec
+ os=-sysv
+ ;;
+ vms)
+ basic_machine=vax-dec
+ os=-vms
+ ;;
+ vpp*|vx|vx-*)
+ basic_machine=f301-fujitsu
+ ;;
+ vxworks960)
+ basic_machine=i960-wrs
+ os=-vxworks
+ ;;
+ vxworks68)
+ basic_machine=m68k-wrs
+ os=-vxworks
+ ;;
+ vxworks29k)
+ basic_machine=a29k-wrs
+ os=-vxworks
+ ;;
+ w65*)
+ basic_machine=w65-wdc
+ os=-none
+ ;;
+ w89k-*)
+ basic_machine=hppa1.1-winbond
+ os=-proelf
+ ;;
+ xbox)
+ basic_machine=i686-pc
+ os=-mingw32
+ ;;
+ xps | xps100)
+ basic_machine=xps100-honeywell
+ ;;
+ ymp)
+ basic_machine=ymp-cray
+ os=-unicos
+ ;;
+ z8k-*-coff)
+ basic_machine=z8k-unknown
+ os=-sim
+ ;;
+ none)
+ basic_machine=none-none
+ os=-none
+ ;;
+
+# Here we handle the default manufacturer of certain CPU types. It is in
+# some cases the only manufacturer, in others, it is the most popular.
+ w89k)
+ basic_machine=hppa1.1-winbond
+ ;;
+ op50n)
+ basic_machine=hppa1.1-oki
+ ;;
+ op60c)
+ basic_machine=hppa1.1-oki
+ ;;
+ romp)
+ basic_machine=romp-ibm
+ ;;
+ mmix)
+ basic_machine=mmix-knuth
+ ;;
+ rs6000)
+ basic_machine=rs6000-ibm
+ ;;
+ vax)
+ basic_machine=vax-dec
+ ;;
+ pdp10)
+ # there are many clones, so DEC is not a safe bet
+ basic_machine=pdp10-unknown
+ ;;
+ pdp11)
+ basic_machine=pdp11-dec
+ ;;
+ we32k)
+ basic_machine=we32k-att
+ ;;
+ sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
+ basic_machine=sh-unknown
+ ;;
+ sh64)
+ basic_machine=sh64-unknown
+ ;;
+ sparc | sparcv8 | sparcv9 | sparcv9b)
+ basic_machine=sparc-sun
+ ;;
+ cydra)
+ basic_machine=cydra-cydrome
+ ;;
+ orion)
+ basic_machine=orion-highlevel
+ ;;
+ orion105)
+ basic_machine=clipper-highlevel
+ ;;
+ mac | mpw | mac-mpw)
+ basic_machine=m68k-apple
+ ;;
+ pmac | pmac-mpw)
+ basic_machine=powerpc-apple
+ ;;
+ *-unknown)
+ # Make sure to match an already-canonicalized machine name.
+ ;;
+ *)
+ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+ exit 1
+ ;;
+esac
+
+# Here we canonicalize certain aliases for manufacturers.
+case $basic_machine in
+ *-digital*)
+ basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+ ;;
+ *-commodore*)
+ basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+ ;;
+ *)
+ ;;
+esac
+
+# Decode manufacturer-specific aliases for certain operating systems.
+
+if [ x"$os" != x"" ]
+then
+case $os in
+ # First match some system type aliases
+ # that might get confused with valid system types.
+ # -solaris* is a basic system type, with this one exception.
+ -solaris1 | -solaris1.*)
+ os=`echo $os | sed -e 's|solaris1|sunos4|'`
+ ;;
+ -solaris)
+ os=-solaris2
+ ;;
+ -svr4*)
+ os=-sysv4
+ ;;
+ -unixware*)
+ os=-sysv4.2uw
+ ;;
+ -gnu/linux*)
+ os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+ ;;
+ # First accept the basic system types.
+ # The portable systems comes first.
+ # Each alternative MUST END IN A *, to match a version number.
+ # -sysv* is not here because it comes later, after sysvr4.
+ -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
+ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
+ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+ | -aos* \
+ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \
+ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
+ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+ | -chorusos* | -chorusrdb* \
+ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+ | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \
+ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
+ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly*)
+ # Remember, each alternative MUST END IN *, to match a version number.
+ ;;
+ -qnx*)
+ case $basic_machine in
+ x86-* | i*86-*)
+ ;;
+ *)
+ os=-nto$os
+ ;;
+ esac
+ ;;
+ -nto-qnx*)
+ ;;
+ -nto*)
+ os=`echo $os | sed -e 's|nto|nto-qnx|'`
+ ;;
+ -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+ | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
+ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+ ;;
+ -mac*)
+ os=`echo $os | sed -e 's|mac|macos|'`
+ ;;
+ -linux-dietlibc)
+ os=-linux-dietlibc
+ ;;
+ -linux*)
+ os=`echo $os | sed -e 's|linux|linux-gnu|'`
+ ;;
+ -sunos5*)
+ os=`echo $os | sed -e 's|sunos5|solaris2|'`
+ ;;
+ -sunos6*)
+ os=`echo $os | sed -e 's|sunos6|solaris3|'`
+ ;;
+ -opened*)
+ os=-openedition
+ ;;
+ -os400*)
+ os=-os400
+ ;;
+ -wince*)
+ os=-wince
+ ;;
+ -osfrose*)
+ os=-osfrose
+ ;;
+ -osf*)
+ os=-osf
+ ;;
+ -utek*)
+ os=-bsd
+ ;;
+ -dynix*)
+ os=-bsd
+ ;;
+ -acis*)
+ os=-aos
+ ;;
+ -atheos*)
+ os=-atheos
+ ;;
+ -syllable*)
+ os=-syllable
+ ;;
+ -386bsd)
+ os=-bsd
+ ;;
+ -ctix* | -uts*)
+ os=-sysv
+ ;;
+ -nova*)
+ os=-rtmk-nova
+ ;;
+ -ns2 )
+ os=-nextstep2
+ ;;
+ -nsk*)
+ os=-nsk
+ ;;
+ # Preserve the version number of sinix5.
+ -sinix5.*)
+ os=`echo $os | sed -e 's|sinix|sysv|'`
+ ;;
+ -sinix*)
+ os=-sysv4
+ ;;
+ -tpf*)
+ os=-tpf
+ ;;
+ -triton*)
+ os=-sysv3
+ ;;
+ -oss*)
+ os=-sysv3
+ ;;
+ -svr4)
+ os=-sysv4
+ ;;
+ -svr3)
+ os=-sysv3
+ ;;
+ -sysvr4)
+ os=-sysv4
+ ;;
+ # This must come after -sysvr4.
+ -sysv*)
+ ;;
+ -ose*)
+ os=-ose
+ ;;
+ -es1800*)
+ os=-ose
+ ;;
+ -xenix)
+ os=-xenix
+ ;;
+ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+ os=-mint
+ ;;
+ -aros*)
+ os=-aros
+ ;;
+ -kaos*)
+ os=-kaos
+ ;;
+ -zvmoe)
+ os=-zvmoe
+ ;;
+ -none)
+ ;;
+ *)
+ # Get rid of the `-' at the beginning of $os.
+ os=`echo $os | sed 's/[^-]*-//'`
+ echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+ exit 1
+ ;;
+esac
+else
+
+# Here we handle the default operating systems that come with various machines.
+# The value should be what the vendor currently ships out the door with their
+# machine or put another way, the most popular os provided with the machine.
+
+# Note that if you're going to try to match "-MANUFACTURER" here (say,
+# "-sun"), then you have to tell the case statement up towards the top
+# that MANUFACTURER isn't an operating system. Otherwise, code above
+# will signal an error saying that MANUFACTURER isn't an operating
+# system, and we'll never get to this point.
+
+case $basic_machine in
+ *-acorn)
+ os=-riscix1.2
+ ;;
+ arm*-rebel)
+ os=-linux
+ ;;
+ arm*-semi)
+ os=-aout
+ ;;
+ c4x-* | tic4x-*)
+ os=-coff
+ ;;
+ # This must come before the *-dec entry.
+ pdp10-*)
+ os=-tops20
+ ;;
+ pdp11-*)
+ os=-none
+ ;;
+ *-dec | vax-*)
+ os=-ultrix4.2
+ ;;
+ m68*-apollo)
+ os=-domain
+ ;;
+ i386-sun)
+ os=-sunos4.0.2
+ ;;
+ m68000-sun)
+ os=-sunos3
+ # This also exists in the configure program, but was not the
+ # default.
+ # os=-sunos4
+ ;;
+ m68*-cisco)
+ os=-aout
+ ;;
+ mips*-cisco)
+ os=-elf
+ ;;
+ mips*-*)
+ os=-elf
+ ;;
+ or32-*)
+ os=-coff
+ ;;
+ *-tti) # must be before sparc entry or we get the wrong os.
+ os=-sysv3
+ ;;
+ sparc-* | *-sun)
+ os=-sunos4.1.1
+ ;;
+ *-be)
+ os=-beos
+ ;;
+ *-ibm)
+ os=-aix
+ ;;
+ *-knuth)
+ os=-mmixware
+ ;;
+ *-wec)
+ os=-proelf
+ ;;
+ *-winbond)
+ os=-proelf
+ ;;
+ *-oki)
+ os=-proelf
+ ;;
+ *-hp)
+ os=-hpux
+ ;;
+ *-hitachi)
+ os=-hiux
+ ;;
+ i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+ os=-sysv
+ ;;
+ *-cbm)
+ os=-amigaos
+ ;;
+ *-dg)
+ os=-dgux
+ ;;
+ *-dolphin)
+ os=-sysv3
+ ;;
+ m68k-ccur)
+ os=-rtu
+ ;;
+ m88k-omron*)
+ os=-luna
+ ;;
+ *-next )
+ os=-nextstep
+ ;;
+ *-sequent)
+ os=-ptx
+ ;;
+ *-crds)
+ os=-unos
+ ;;
+ *-ns)
+ os=-genix
+ ;;
+ i370-*)
+ os=-mvs
+ ;;
+ *-next)
+ os=-nextstep3
+ ;;
+ *-gould)
+ os=-sysv
+ ;;
+ *-highlevel)
+ os=-bsd
+ ;;
+ *-encore)
+ os=-bsd
+ ;;
+ *-sgi)
+ os=-irix
+ ;;
+ *-siemens)
+ os=-sysv4
+ ;;
+ *-masscomp)
+ os=-rtu
+ ;;
+ f30[01]-fujitsu | f700-fujitsu)
+ os=-uxpv
+ ;;
+ *-rom68k)
+ os=-coff
+ ;;
+ *-*bug)
+ os=-coff
+ ;;
+ *-apple)
+ os=-macos
+ ;;
+ *-atari*)
+ os=-mint
+ ;;
+ *)
+ os=-none
+ ;;
+esac
+fi
+
+# Here we handle the case where we know the os, and the CPU type, but not the
+# manufacturer. We pick the logical manufacturer.
+vendor=unknown
+case $basic_machine in
+ *-unknown)
+ case $os in
+ -riscix*)
+ vendor=acorn
+ ;;
+ -sunos*)
+ vendor=sun
+ ;;
+ -aix*)
+ vendor=ibm
+ ;;
+ -beos*)
+ vendor=be
+ ;;
+ -hpux*)
+ vendor=hp
+ ;;
+ -mpeix*)
+ vendor=hp
+ ;;
+ -hiux*)
+ vendor=hitachi
+ ;;
+ -unos*)
+ vendor=crds
+ ;;
+ -dgux*)
+ vendor=dg
+ ;;
+ -luna*)
+ vendor=omron
+ ;;
+ -genix*)
+ vendor=ns
+ ;;
+ -mvs* | -opened*)
+ vendor=ibm
+ ;;
+ -os400*)
+ vendor=ibm
+ ;;
+ -ptx*)
+ vendor=sequent
+ ;;
+ -tpf*)
+ vendor=ibm
+ ;;
+ -vxsim* | -vxworks* | -windiss*)
+ vendor=wrs
+ ;;
+ -aux*)
+ vendor=apple
+ ;;
+ -hms*)
+ vendor=hitachi
+ ;;
+ -mpw* | -macos*)
+ vendor=apple
+ ;;
+ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+ vendor=atari
+ ;;
+ -vos*)
+ vendor=stratus
+ ;;
+ esac
+ basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+ ;;
+esac
+
+echo $basic_machine$os
+exit 0
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/configure b/configure
new file mode 100755
index 0000000..7dcdfb0
--- /dev/null
+++ b/configure
@@ -0,0 +1,9730 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.59 for strace 4.5.12.
+#
+# Copyright (C) 2003 Free Software Foundation, Inc.
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## --------------------- ##
+## M4sh Initialization. ##
+## --------------------- ##
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+ # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+ set -o posix
+fi
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# Support unset when possible.
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+ as_unset=unset
+else
+ as_unset=false
+fi
+
+
+# Work around bugs in pre-3.0 UWIN ksh.
+$as_unset ENV MAIL MAILPATH
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+for as_var in \
+ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+ LC_TELEPHONE LC_TIME
+do
+ if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
+ eval $as_var=C; export $as_var
+ else
+ $as_unset $as_var
+ fi
+done
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+
+# Name of the executable.
+as_me=`$as_basename "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)$' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
+ /^X\/\(\/\/\)$/{ s//\1/; q; }
+ /^X\/\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+
+
+# PATH needs CR, and LINENO needs CR and PATH.
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ echo "#! /bin/sh" >conf$$.sh
+ echo "exit 0" >>conf$$.sh
+ chmod +x conf$$.sh
+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+ PATH_SEPARATOR=';'
+ else
+ PATH_SEPARATOR=:
+ fi
+ rm -f conf$$.sh
+fi
+
+
+ as_lineno_1=$LINENO
+ as_lineno_2=$LINENO
+ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+ test "x$as_lineno_1" != "x$as_lineno_2" &&
+ test "x$as_lineno_3" = "x$as_lineno_2" || {
+ # Find who we are. Look in the path if we contain no path at all
+ # relative or not.
+ case $0 in
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+
+ ;;
+ esac
+ # We did not find ourselves, most probably we were run as `sh COMMAND'
+ # in which case we are not to be found in the path.
+ if test "x$as_myself" = x; then
+ as_myself=$0
+ fi
+ if test ! -f "$as_myself"; then
+ { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
+ { (exit 1); exit 1; }; }
+ fi
+ case $CONFIG_SHELL in
+ '')
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for as_base in sh bash ksh sh5; do
+ case $as_dir in
+ /*)
+ if ("$as_dir/$as_base" -c '
+ as_lineno_1=$LINENO
+ as_lineno_2=$LINENO
+ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+ test "x$as_lineno_1" != "x$as_lineno_2" &&
+ test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
+ $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
+ $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
+ CONFIG_SHELL=$as_dir/$as_base
+ export CONFIG_SHELL
+ exec "$CONFIG_SHELL" "$0" ${1+"$@"}
+ fi;;
+ esac
+ done
+done
+;;
+ esac
+
+ # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+ # uniformly replaced by the line number. The first 'sed' inserts a
+ # line-number line before each line; the second 'sed' does the real
+ # work. The second script uses 'N' to pair each line-number line
+ # with the numbered line, and appends trailing '-' during
+ # substitution so that $LINENO is not a special case at line end.
+ # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+ # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
+ sed '=' <$as_myself |
+ sed '
+ N
+ s,$,-,
+ : loop
+ s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+ t loop
+ s,-$,,
+ s,^['$as_cr_digits']*\n,,
+ ' >$as_me.lineno &&
+ chmod +x $as_me.lineno ||
+ { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
+ { (exit 1); exit 1; }; }
+
+ # Don't try to exec as it changes $[0], causing all sort of problems
+ # (the dirname of $[0] is not the place where we might find the
+ # original and so on. Autoconf is especially sensible to this).
+ . ./$as_me.lineno
+ # Exit status is that of the last command.
+ exit
+}
+
+
+case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+ *c*,-n*) ECHO_N= ECHO_C='
+' ECHO_T=' ' ;;
+ *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+ *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
+esac
+
+if expr a : '\(a\)' >/dev/null 2>&1; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+ # We could just check for DJGPP; but this test a) works b) is more generic
+ # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+ if test -f conf$$.exe; then
+ # Don't use ln at all; we don't have any links
+ as_ln_s='cp -p'
+ else
+ as_ln_s='ln -s'
+ fi
+elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.file
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p=:
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+as_executable_p="test -f"
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.
+as_nl='
+'
+IFS=" $as_nl"
+
+# CDPATH.
+$as_unset CDPATH
+
+
+# Name of the host.
+# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+exec 6>&1
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_config_libobj_dir=.
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+# Maximum number of lines to put in a shell here document.
+# This variable seems obsolete. It should probably be removed, and
+# only ac_max_sed_lines should be used.
+: ${ac_max_here_lines=38}
+
+# Identity of this package.
+PACKAGE_NAME='strace'
+PACKAGE_TARNAME='strace'
+PACKAGE_VERSION='4.5.12'
+PACKAGE_STRING='strace 4.5.12'
+PACKAGE_BUGREPORT=''
+
+ac_unique_file="strace.c"
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#if HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#if STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# if HAVE_STDLIB_H
+# include <stdlib.h>
+# endif
+#endif
+#if HAVE_STRING_H
+# if !STDC_HEADERS && HAVE_MEMORY_H
+# include <memory.h>
+# endif
+# include <string.h>
+#endif
+#if HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#if HAVE_INTTYPES_H
+# include <inttypes.h>
+#else
+# if HAVE_STDINT_H
+# include <stdint.h>
+# endif
+#endif
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT build build_cpu build_vendor build_os host host_cpu host_vendor host_os opsys arch LINUX_TRUE LINUX_FALSE I386_TRUE I386_FALSE X86_64_TRUE X86_64_FALSE SUNOS4_TRUE SUNOS4_FALSE SVR4_TRUE SVR4_FALSE FREEBSD_TRUE FREEBSD_FALSE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE WARNFLAGS CPP EGREP PERL LIBOBJS LTLIBOBJS'
+ac_subst_files=''
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datadir='${prefix}/share'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+libdir='${exec_prefix}/lib'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+infodir='${prefix}/info'
+mandir='${prefix}/man'
+
+ac_prev=
+for ac_option
+do
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval "$ac_prev=\$ac_option"
+ ac_prev=
+ continue
+ fi
+
+ ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case $ac_option in
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir=$ac_optarg ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build_alias ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build_alias=$ac_optarg ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file=$ac_optarg ;;
+
+ --config-cache | -C)
+ cache_file=config.cache ;;
+
+ -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+ | --da=*)
+ datadir=$ac_optarg ;;
+
+ -disable-* | --disable-*)
+ ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+ { (exit 1); exit 1; }; }
+ ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+ eval "enable_$ac_feature=no" ;;
+
+ -enable-* | --enable-*)
+ ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+ { (exit 1); exit 1; }; }
+ ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+ case $ac_option in
+ *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "enable_$ac_feature='$ac_optarg'" ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix=$ac_optarg ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he | -h)
+ ac_init_help=long ;;
+ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+ ac_init_help=recursive ;;
+ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+ ac_init_help=short ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host_alias ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host_alias=$ac_optarg ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir=$ac_optarg ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir=$ac_optarg ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir=$ac_optarg ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir=$ac_optarg ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst \
+ | --locals | --local | --loca | --loc | --lo)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+ localstatedir=$ac_optarg ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir=$ac_optarg ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c | -n)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir=$ac_optarg ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix=$ac_optarg ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix=$ac_optarg ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix=$ac_optarg ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name=$ac_optarg ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir=$ac_optarg ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir=$ac_optarg ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site=$ac_optarg ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir=$ac_optarg ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir=$ac_optarg ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target_alias ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target_alias=$ac_optarg ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers | -V)
+ ac_init_version=: ;;
+
+ -with-* | --with-*)
+ ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid package name: $ac_package" >&2
+ { (exit 1); exit 1; }; }
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ case $ac_option in
+ *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "with_$ac_package='$ac_optarg'" ;;
+
+ -without-* | --without-*)
+ ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid package name: $ac_package" >&2
+ { (exit 1); exit 1; }; }
+ ac_package=`echo $ac_package | sed 's/-/_/g'`
+ eval "with_$ac_package=no" ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes=$ac_optarg ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries=$ac_optarg ;;
+
+ -*) { echo "$as_me: error: unrecognized option: $ac_option
+Try \`$0 --help' for more information." >&2
+ { (exit 1); exit 1; }; }
+ ;;
+
+ *=*)
+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
+ { (exit 1); exit 1; }; }
+ ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
+ eval "$ac_envvar='$ac_optarg'"
+ export $ac_envvar ;;
+
+ *)
+ # FIXME: should be removed in autoconf 3.0.
+ echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+ echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+ : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+ { echo "$as_me: error: missing argument to $ac_option" >&2
+ { (exit 1); exit 1; }; }
+fi
+
+# Be sure to have absolute paths.
+for ac_var in exec_prefix prefix
+do
+ eval ac_val=$`echo $ac_var`
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
+ *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+ { (exit 1); exit 1; }; };;
+ esac
+done
+
+# Be sure to have absolute paths.
+for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
+ localstatedir libdir includedir oldincludedir infodir mandir
+do
+ eval ac_val=$`echo $ac_var`
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* ) ;;
+ *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+ { (exit 1); exit 1; }; };;
+ esac
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+ if test "x$build_alias" = x; then
+ cross_compiling=maybe
+ echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+ If a cross compiler is detected then cross compile mode will be used." >&2
+ elif test "x$build_alias" != "x$host_alias"; then
+ cross_compiling=yes
+ fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then its parent.
+ ac_confdir=`(dirname "$0") 2>/dev/null ||
+$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$0" : 'X\(//\)[^/]' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$0" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ srcdir=$ac_confdir
+ if test ! -r $srcdir/$ac_unique_file; then
+ srcdir=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r $srcdir/$ac_unique_file; then
+ if test "$ac_srcdir_defaulted" = yes; then
+ { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
+ { (exit 1); exit 1; }; }
+ else
+ { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
+ { (exit 1); exit 1; }; }
+ fi
+fi
+(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
+ { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
+ { (exit 1); exit 1; }; }
+srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
+ac_env_build_alias_set=${build_alias+set}
+ac_env_build_alias_value=$build_alias
+ac_cv_env_build_alias_set=${build_alias+set}
+ac_cv_env_build_alias_value=$build_alias
+ac_env_host_alias_set=${host_alias+set}
+ac_env_host_alias_value=$host_alias
+ac_cv_env_host_alias_set=${host_alias+set}
+ac_cv_env_host_alias_value=$host_alias
+ac_env_target_alias_set=${target_alias+set}
+ac_env_target_alias_value=$target_alias
+ac_cv_env_target_alias_set=${target_alias+set}
+ac_cv_env_target_alias_value=$target_alias
+ac_env_CC_set=${CC+set}
+ac_env_CC_value=$CC
+ac_cv_env_CC_set=${CC+set}
+ac_cv_env_CC_value=$CC
+ac_env_CFLAGS_set=${CFLAGS+set}
+ac_env_CFLAGS_value=$CFLAGS
+ac_cv_env_CFLAGS_set=${CFLAGS+set}
+ac_cv_env_CFLAGS_value=$CFLAGS
+ac_env_LDFLAGS_set=${LDFLAGS+set}
+ac_env_LDFLAGS_value=$LDFLAGS
+ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
+ac_cv_env_LDFLAGS_value=$LDFLAGS
+ac_env_CPPFLAGS_set=${CPPFLAGS+set}
+ac_env_CPPFLAGS_value=$CPPFLAGS
+ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
+ac_cv_env_CPPFLAGS_value=$CPPFLAGS
+ac_env_CPP_set=${CPP+set}
+ac_env_CPP_value=$CPP
+ac_cv_env_CPP_set=${CPP+set}
+ac_cv_env_CPP_value=$CPP
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat <<_ACEOF
+\`configure' configures strace 4.5.12 to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE. See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+ -h, --help display this help and exit
+ --help=short display options specific to this package
+ --help=recursive display the short help of all the included packages
+ -V, --version display version information and exit
+ -q, --quiet, --silent do not print \`checking...' messages
+ --cache-file=FILE cache test results in FILE [disabled]
+ -C, --config-cache alias for \`--cache-file=config.cache'
+ -n, --no-create do not create output files
+ --srcdir=DIR find the sources in DIR [configure dir or \`..']
+
+_ACEOF
+
+ cat <<_ACEOF
+Installation directories:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [$ac_default_prefix]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+ --bindir=DIR user executables [EPREFIX/bin]
+ --sbindir=DIR system admin executables [EPREFIX/sbin]
+ --libexecdir=DIR program executables [EPREFIX/libexec]
+ --datadir=DIR read-only architecture-independent data [PREFIX/share]
+ --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --libdir=DIR object code libraries [EPREFIX/lib]
+ --includedir=DIR C header files [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc [/usr/include]
+ --infodir=DIR info documentation [PREFIX/info]
+ --mandir=DIR man documentation [PREFIX/man]
+_ACEOF
+
+ cat <<\_ACEOF
+
+Program names:
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM run sed PROGRAM on installed program names
+
+System types:
+ --build=BUILD configure for building on BUILD [guessed]
+ --host=HOST cross-compile to build programs to run on HOST [BUILD]
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+ case $ac_init_help in
+ short | recursive ) echo "Configuration of strace 4.5.12:";;
+ esac
+ cat <<\_ACEOF
+
+Optional Features:
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --enable-maintainer-mode enable make rules and dependencies not useful
+ (and sometimes confusing) to the casual installer
+ --disable-dependency-tracking speeds up one-time build
+ --enable-dependency-tracking do not reject slow dependency extractors
+
+Some influential environment variables:
+ CC C compiler command
+ CFLAGS C compiler flags
+ LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
+ nonstandard directory <lib dir>
+ CPPFLAGS C/C++ preprocessor flags, e.g. -I<include dir> if you have
+ headers in a nonstandard directory <include dir>
+ CPP C preprocessor
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+_ACEOF
+fi
+
+if test "$ac_init_help" = "recursive"; then
+ # If there are subdirs, report their specific --help.
+ ac_popdir=`pwd`
+ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+ test -d $ac_dir || continue
+ ac_builddir=.
+
+if test "$ac_dir" != .; then
+ ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+ # A "../" for each directory in $ac_dir_suffix.
+ ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+ ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+ .) # No --srcdir option. We are building in place.
+ ac_srcdir=.
+ if test -z "$ac_top_builddir"; then
+ ac_top_srcdir=.
+ else
+ ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+ fi ;;
+ [\\/]* | ?:[\\/]* ) # Absolute path.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir ;;
+ *) # Relative path.
+ ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+
+# Do not use `cd foo && pwd` to compute absolute paths, because
+# the directories may not exist.
+case `pwd` in
+.) ac_abs_builddir="$ac_dir";;
+*)
+ case "$ac_dir" in
+ .) ac_abs_builddir=`pwd`;;
+ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+ *) ac_abs_builddir=`pwd`/"$ac_dir";;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_builddir=${ac_top_builddir}.;;
+*)
+ case ${ac_top_builddir}. in
+ .) ac_abs_top_builddir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_srcdir=$ac_srcdir;;
+*)
+ case $ac_srcdir in
+ .) ac_abs_srcdir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_srcdir=$ac_top_srcdir;;
+*)
+ case $ac_top_srcdir in
+ .) ac_abs_top_srcdir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+ esac;;
+esac
+
+ cd $ac_dir
+ # Check for guested configure; otherwise get Cygnus style configure.
+ if test -f $ac_srcdir/configure.gnu; then
+ echo
+ $SHELL $ac_srcdir/configure.gnu --help=recursive
+ elif test -f $ac_srcdir/configure; then
+ echo
+ $SHELL $ac_srcdir/configure --help=recursive
+ elif test -f $ac_srcdir/configure.ac ||
+ test -f $ac_srcdir/configure.in; then
+ echo
+ $ac_configure --help
+ else
+ echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+ fi
+ cd $ac_popdir
+ done
+fi
+
+test -n "$ac_init_help" && exit 0
+if $ac_init_version; then
+ cat <<\_ACEOF
+strace configure 4.5.12
+generated by GNU Autoconf 2.59
+
+Copyright (C) 2003 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+ exit 0
+fi
+exec 5>config.log
+cat >&5 <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by strace $as_me 4.5.12, which was
+generated by GNU Autoconf 2.59. Invocation command line was
+
+ $ $0 $@
+
+_ACEOF
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
+
+/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+hostinfo = `(hostinfo) 2>/dev/null || echo unknown`
+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ echo "PATH: $as_dir"
+done
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_sep=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+ for ac_arg
+ do
+ case $ac_arg in
+ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ continue ;;
+ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+ ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ case $ac_pass in
+ 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
+ 2)
+ ac_configure_args1="$ac_configure_args1 '$ac_arg'"
+ if test $ac_must_keep_next = true; then
+ ac_must_keep_next=false # Got value, back to normal.
+ else
+ case $ac_arg in
+ *=* | --config-cache | -C | -disable-* | --disable-* \
+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+ | -with-* | --with-* | -without-* | --without-* | --x)
+ case "$ac_configure_args0 " in
+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+ esac
+ ;;
+ -* ) ac_must_keep_next=true ;;
+ esac
+ fi
+ ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
+ # Get rid of the leading space.
+ ac_sep=" "
+ ;;
+ esac
+ done
+done
+$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
+$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log. We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Be sure not to use single quotes in there, as some shells,
+# such as our DU 5.0 friend, will then `close' the trap.
+trap 'exit_status=$?
+ # Save into config.log some information that might help in debugging.
+ {
+ echo
+
+ cat <<\_ASBOX
+## ---------------- ##
+## Cache variables. ##
+## ---------------- ##
+_ASBOX
+ echo
+ # The following way of writing the cache mishandles newlines in values,
+{
+ (set) 2>&1 |
+ case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
+ *ac_space=\ *)
+ sed -n \
+ "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
+ ;;
+ *)
+ sed -n \
+ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+ ;;
+ esac;
+}
+ echo
+
+ cat <<\_ASBOX
+## ----------------- ##
+## Output variables. ##
+## ----------------- ##
+_ASBOX
+ echo
+ for ac_var in $ac_subst_vars
+ do
+ eval ac_val=$`echo $ac_var`
+ echo "$ac_var='"'"'$ac_val'"'"'"
+ done | sort
+ echo
+
+ if test -n "$ac_subst_files"; then
+ cat <<\_ASBOX
+## ------------- ##
+## Output files. ##
+## ------------- ##
+_ASBOX
+ echo
+ for ac_var in $ac_subst_files
+ do
+ eval ac_val=$`echo $ac_var`
+ echo "$ac_var='"'"'$ac_val'"'"'"
+ done | sort
+ echo
+ fi
+
+ if test -s confdefs.h; then
+ cat <<\_ASBOX
+## ----------- ##
+## confdefs.h. ##
+## ----------- ##
+_ASBOX
+ echo
+ sed "/^$/d" confdefs.h | sort
+ echo
+ fi
+ test "$ac_signal" != 0 &&
+ echo "$as_me: caught signal $ac_signal"
+ echo "$as_me: exit $exit_status"
+ } >&5
+ rm -f core *.core &&
+ rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
+ exit $exit_status
+ ' 0
+for ac_signal in 1 2 13 15; do
+ trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -rf conftest* confdefs.h
+# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+echo >confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer explicitly selected file to automatically selected ones.
+if test -z "$CONFIG_SITE"; then
+ if test "x$prefix" != xNONE; then
+ CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+ else
+ CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+ fi
+fi
+for ac_site_file in $CONFIG_SITE; do
+ if test -r "$ac_site_file"; then
+ { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
+echo "$as_me: loading site script $ac_site_file" >&6;}
+ sed 's/^/| /' "$ac_site_file" >&5
+ . "$ac_site_file"
+ fi
+done
+
+if test -r "$cache_file"; then
+ # Some versions of bash will fail to source /dev/null (special
+ # files actually), so we avoid doing that.
+ if test -f "$cache_file"; then
+ { echo "$as_me:$LINENO: loading cache $cache_file" >&5
+echo "$as_me: loading cache $cache_file" >&6;}
+ case $cache_file in
+ [\\/]* | ?:[\\/]* ) . $cache_file;;
+ *) . ./$cache_file;;
+ esac
+ fi
+else
+ { echo "$as_me:$LINENO: creating cache $cache_file" >&5
+echo "$as_me: creating cache $cache_file" >&6;}
+ >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in `(set) 2>&1 |
+ sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
+ eval ac_old_set=\$ac_cv_env_${ac_var}_set
+ eval ac_new_set=\$ac_env_${ac_var}_set
+ eval ac_old_val="\$ac_cv_env_${ac_var}_value"
+ eval ac_new_val="\$ac_env_${ac_var}_value"
+ case $ac_old_set,$ac_new_set in
+ set,)
+ { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,set)
+ { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
+echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,);;
+ *)
+ if test "x$ac_old_val" != "x$ac_new_val"; then
+ { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
+echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+ { echo "$as_me:$LINENO: former value: $ac_old_val" >&5
+echo "$as_me: former value: $ac_old_val" >&2;}
+ { echo "$as_me:$LINENO: current value: $ac_new_val" >&5
+echo "$as_me: current value: $ac_new_val" >&2;}
+ ac_cache_corrupted=:
+ fi;;
+ esac
+ # Pass precious variables to config.status.
+ if test "$ac_new_set" = set; then
+ case $ac_new_val in
+ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+ ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *) ac_arg=$ac_var=$ac_new_val ;;
+ esac
+ case " $ac_configure_args " in
+ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
+ *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+ esac
+ fi
+done
+if $ac_cache_corrupted; then
+ { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
+echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+ { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ac_config_headers="$ac_config_headers config.h"
+
+am__api_version="1.9"
+ac_aux_dir=
+for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
+ if test -f $ac_dir/install-sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f $ac_dir/install.sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ elif test -f $ac_dir/shtool; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/shtool install -c"
+ break
+ fi
+done
+if test -z "$ac_aux_dir"; then
+ { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
+echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+ac_config_guess="$SHELL $ac_aux_dir/config.guess"
+ac_config_sub="$SHELL $ac_aux_dir/config.sub"
+ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
+
+# Find a good install program. We prefer a C program (faster),
+# so one script is as good as another. But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
+echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
+if test -z "$INSTALL"; then
+if test "${ac_cv_path_install+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in
+ ./ | .// | /cC/* | \
+ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
+ /usr/ucb/* ) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+ if test $ac_prog = install &&
+ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ elif test $ac_prog = install &&
+ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # program-specific install script used by HP pwplus--don't use.
+ :
+ else
+ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+ break 3
+ fi
+ fi
+ done
+ done
+ ;;
+esac
+done
+
+
+fi
+ if test "${ac_cv_path_install+set}" = set; then
+ INSTALL=$ac_cv_path_install
+ else
+ # As a last resort, use the slow shell script. We don't cache a
+ # path for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the path is relative.
+ INSTALL=$ac_install_sh
+ fi
+fi
+echo "$as_me:$LINENO: result: $INSTALL" >&5
+echo "${ECHO_T}$INSTALL" >&6
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+echo "$as_me:$LINENO: checking whether build environment is sane" >&5
+echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
+ if test "$*" = "X"; then
+ # -L didn't work.
+ set X `ls -t $srcdir/configure conftest.file`
+ fi
+ rm -f conftest.file
+ if test "$*" != "X $srcdir/configure conftest.file" \
+ && test "$*" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken
+alias in your environment" >&5
+echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken
+alias in your environment" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+
+ test "$2" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ { { echo "$as_me:$LINENO: error: newly created file is older than distributed files!
+Check your system clock" >&5
+echo "$as_me: error: newly created file is older than distributed files!
+Check your system clock" >&2;}
+ { (exit 1); exit 1; }; }
+fi
+echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+test "$program_prefix" != NONE &&
+ program_transform_name="s,^,$program_prefix,;$program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+ program_transform_name="s,\$,$program_suffix,;$program_transform_name"
+# Double any \ or $. echo might interpret backslashes.
+# By default was `s,x,x', remove it if useless.
+cat <<\_ACEOF >conftest.sed
+s/[\\$]/&&/g;s/;s,x,x,$//
+_ACEOF
+program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
+rm conftest.sed
+
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+
+test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+ am_missing_run="$MISSING --run "
+else
+ am_missing_run=
+ { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5
+echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
+fi
+
+if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
+ # We used to keeping the `.' as first argument, in order to
+ # allow $(mkdir_p) to be used without argument. As in
+ # $(mkdir_p) $(somedir)
+ # where $(somedir) is conditionally defined. However this is wrong
+ # for two reasons:
+ # 1. if the package is installed by a user who cannot write `.'
+ # make install will fail,
+ # 2. the above comment should most certainly read
+ # $(mkdir_p) $(DESTDIR)$(somedir)
+ # so it does not work when $(somedir) is undefined and
+ # $(DESTDIR) is not.
+ # To support the latter case, we have to write
+ # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
+ # so the `.' trick is pointless.
+ mkdir_p='mkdir -p --'
+else
+ # On NextStep and OpenStep, the `mkdir' command does not
+ # recognize any option. It will interpret all options as
+ # directories to create, and then abort because `.' already
+ # exists.
+ for d in ./-p ./--version;
+ do
+ test -d $d && rmdir $d
+ done
+ # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
+ if test -f "$ac_aux_dir/mkinstalldirs"; then
+ mkdir_p='$(mkinstalldirs)'
+ else
+ mkdir_p='$(install_sh) -d'
+ fi
+fi
+
+for ac_prog in gawk mawk nawk awk
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_AWK+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$AWK"; then
+ ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AWK="$ac_prog"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+ echo "$as_me:$LINENO: result: $AWK" >&5
+echo "${ECHO_T}$AWK" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$AWK" && break
+done
+
+echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6
+set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'`
+if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.make <<\_ACEOF
+all:
+ @echo 'ac_maketemp="$(MAKE)"'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
+if test -n "$ac_maketemp"; then
+ eval ac_cv_prog_make_${ac_make}_set=yes
+else
+ eval ac_cv_prog_make_${ac_make}_set=no
+fi
+rm -f conftest.make
+fi
+if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ SET_MAKE=
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+
+# test to see if srcdir already configured
+if test "`cd $srcdir && pwd`" != "`pwd`" &&
+ test -f $srcdir/config.status; then
+ { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
+echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+
+
+# Define the identity of the package.
+ PACKAGE='strace'
+ VERSION='4.5.12'
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE "$PACKAGE"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define VERSION "$VERSION"
+_ACEOF
+
+# Some tools Automake needs.
+
+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
+
+
+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
+
+
+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
+
+
+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
+
+
+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+
+install_sh=${install_sh-"$am_aux_dir/install-sh"}
+
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'. However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+if test "$cross_compiling" != no; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_STRIP+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+ echo "$as_me:$LINENO: result: $STRIP" >&5
+echo "${ECHO_T}$STRIP" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+ ac_ct_STRIP=$STRIP
+ # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$ac_ct_STRIP"; then
+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_STRIP="strip"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":"
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+ echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
+echo "${ECHO_T}$ac_ct_STRIP" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ STRIP=$ac_ct_STRIP
+else
+ STRIP="$ac_cv_prog_STRIP"
+fi
+
+fi
+INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
+
+# We need awk for the "check" target. The system "awk" is bad on
+# some platforms.
+# Always define AMTAR for backward compatibility.
+
+AMTAR=${AMTAR-"${am_missing_run}tar"}
+
+am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
+
+
+
+
+
+echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
+echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6
+ # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
+if test "${enable_maintainer_mode+set}" = set; then
+ enableval="$enable_maintainer_mode"
+ USE_MAINTAINER_MODE=$enableval
+else
+ USE_MAINTAINER_MODE=no
+fi;
+ echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
+echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6
+
+
+if test $USE_MAINTAINER_MODE = yes; then
+ MAINTAINER_MODE_TRUE=
+ MAINTAINER_MODE_FALSE='#'
+else
+ MAINTAINER_MODE_TRUE='#'
+ MAINTAINER_MODE_FALSE=
+fi
+
+ MAINT=$MAINTAINER_MODE_TRUE
+
+
+# Make sure we can run config.sub.
+$ac_config_sub sun4 >/dev/null 2>&1 ||
+ { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
+echo "$as_me: error: cannot run $ac_config_sub" >&2;}
+ { (exit 1); exit 1; }; }
+
+echo "$as_me:$LINENO: checking build system type" >&5
+echo $ECHO_N "checking build system type... $ECHO_C" >&6
+if test "${ac_cv_build+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_cv_build_alias=$build_alias
+test -z "$ac_cv_build_alias" &&
+ ac_cv_build_alias=`$ac_config_guess`
+test -z "$ac_cv_build_alias" &&
+ { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
+echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
+ { (exit 1); exit 1; }; }
+ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
+ { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
+echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
+ { (exit 1); exit 1; }; }
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_build" >&5
+echo "${ECHO_T}$ac_cv_build" >&6
+build=$ac_cv_build
+build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+
+echo "$as_me:$LINENO: checking host system type" >&5
+echo $ECHO_N "checking host system type... $ECHO_C" >&6
+if test "${ac_cv_host+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_cv_host_alias=$host_alias
+test -z "$ac_cv_host_alias" &&
+ ac_cv_host_alias=$ac_cv_build_alias
+ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
+ { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
+echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
+ { (exit 1); exit 1; }; }
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_host" >&5
+echo "${ECHO_T}$ac_cv_host" >&6
+host=$ac_cv_host
+host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+
+
+echo "$as_me:$LINENO: checking for supported operating system" >&5
+echo $ECHO_N "checking for supported operating system... $ECHO_C" >&6
+case "$host_os" in
+linux*)
+ opsys=linux
+
+cat >>confdefs.h <<\_ACEOF
+#define LINUX 1
+_ACEOF
+
+ ;;
+sunos4*)
+ opsys=sunos4
+
+cat >>confdefs.h <<\_ACEOF
+#define SUNOS4 1
+_ACEOF
+
+ ;;
+solaris2* | sysv[45]* | irix[56]*)
+ opsys=svr4
+
+cat >>confdefs.h <<\_ACEOF
+#define SVR4 1
+_ACEOF
+
+ case "$host_os" in
+ sysv4.2uw*)
+
+cat >>confdefs.h <<\_ACEOF
+#define UNIXWARE 2
+_ACEOF
+
+ ;;
+ sysv5*)
+
+cat >>confdefs.h <<\_ACEOF
+#define UNIXWARE 7
+_ACEOF
+
+ ;;
+ esac
+ ;;
+freebsd*)
+ opsys=freebsd
+
+cat >>confdefs.h <<\_ACEOF
+#define FREEBSD 1
+_ACEOF
+
+ ;;
+*)
+ echo "$as_me:$LINENO: result: NO!" >&5
+echo "${ECHO_T}NO!" >&6
+ { { echo "$as_me:$LINENO: error: operating system $host_os is not supported by strace" >&5
+echo "$as_me: error: operating system $host_os is not supported by strace" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+esac
+echo "$as_me:$LINENO: result: $opsys" >&5
+echo "${ECHO_T}$opsys" >&6
+
+echo "$as_me:$LINENO: checking for supported architecture" >&5
+echo $ECHO_N "checking for supported architecture... $ECHO_C" >&6
+case "$host_cpu" in
+i[3456]86|pentium)
+ arch=i386
+
+cat >>confdefs.h <<\_ACEOF
+#define I386 1
+_ACEOF
+
+ ;;
+ia64)
+ arch=ia64
+
+cat >>confdefs.h <<\_ACEOF
+#define IA64 1
+_ACEOF
+
+ ;;
+m68k)
+ arch=m68k
+
+cat >>confdefs.h <<\_ACEOF
+#define M68K 1
+_ACEOF
+
+ ;;
+sparc64*)
+ arch=sparc64
+
+cat >>confdefs.h <<\_ACEOF
+#define SPARC64 1
+_ACEOF
+
+ ;;
+sparc*)
+ arch=sparc
+
+cat >>confdefs.h <<\_ACEOF
+#define SPARC 1
+_ACEOF
+
+ ;;
+mips*)
+ arch=mips
+
+cat >>confdefs.h <<\_ACEOF
+#define MIPS 1
+_ACEOF
+
+ ;;
+alpha*)
+ arch=alpha
+
+cat >>confdefs.h <<\_ACEOF
+#define ALPHA 1
+_ACEOF
+
+ ;;
+powerpc*)
+ arch=powerpc
+
+cat >>confdefs.h <<\_ACEOF
+#define POWERPC 1
+_ACEOF
+
+ ;;
+arm*)
+ arch=arm
+
+cat >>confdefs.h <<\_ACEOF
+#define ARM 1
+_ACEOF
+
+ ;;
+s390)
+ arch=s390
+
+cat >>confdefs.h <<\_ACEOF
+#define S390 1
+_ACEOF
+
+ ;;
+s390x)
+ arch=s390x
+
+cat >>confdefs.h <<\_ACEOF
+#define S390X 1
+_ACEOF
+
+ ;;
+hppa*|parisc*)
+ arch=hppa
+
+cat >>confdefs.h <<\_ACEOF
+#define HPPA 1
+_ACEOF
+
+ ;;
+sh)
+ arch=sh
+
+cat >>confdefs.h <<\_ACEOF
+#define SH 1
+_ACEOF
+
+ ;;
+sh64)
+ arch=sh64
+
+cat >>confdefs.h <<\_ACEOF
+#define SH64 1
+_ACEOF
+
+ ;;
+x86?64*)
+ arch=x86_64
+
+cat >>confdefs.h <<\_ACEOF
+#define X86_64 1
+_ACEOF
+
+ ;;
+*)
+ echo "$as_me:$LINENO: result: NO!" >&5
+echo "${ECHO_T}NO!" >&6
+ { { echo "$as_me:$LINENO: error: architecture $host_cpu is not supported by strace" >&5
+echo "$as_me: error: architecture $host_cpu is not supported by strace" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+esac
+echo "$as_me:$LINENO: result: $arch" >&5
+echo "${ECHO_T}$arch" >&6
+
+
+
+
+
+
+if test x$opsys = xlinux; then
+ LINUX_TRUE=
+ LINUX_FALSE='#'
+else
+ LINUX_TRUE='#'
+ LINUX_FALSE=
+fi
+
+
+
+if test x$arch = xi386; then
+ I386_TRUE=
+ I386_FALSE='#'
+else
+ I386_TRUE='#'
+ I386_FALSE=
+fi
+
+
+
+if test x$arch = xx86_64; then
+ X86_64_TRUE=
+ X86_64_FALSE='#'
+else
+ X86_64_TRUE='#'
+ X86_64_FALSE=
+fi
+
+
+
+if test x$opsys = xsunos4; then
+ SUNOS4_TRUE=
+ SUNOS4_FALSE='#'
+else
+ SUNOS4_TRUE='#'
+ SUNOS4_FALSE=
+fi
+
+
+
+if test x$opsys = xsvr4; then
+ SVR4_TRUE=
+ SVR4_FALSE='#'
+else
+ SVR4_TRUE='#'
+ SVR4_FALSE=
+fi
+
+
+
+if test x$opsys = xfreebsd; then
+ FREEBSD_TRUE=
+ FREEBSD_FALSE='#'
+else
+ FREEBSD_TRUE='#'
+ FREEBSD_FALSE=
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}gcc"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="gcc"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ CC=$ac_ct_CC
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}cc"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="cc"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ CC=$ac_ct_CC
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+fi
+if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $# != 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+ fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in cl
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$CC" && break
+ done
+fi
+if test -z "$CC"; then
+ ac_ct_CC=$CC
+ for ac_prog in cl
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="$ac_prog"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$ac_ct_CC" && break
+done
+
+ CC=$ac_ct_CC
+fi
+
+fi
+
+
+test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&5
+echo "$as_me: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+
+# Provide some information about the compiler.
+echo "$as_me:$LINENO:" \
+ "checking for C compiler version" >&5
+ac_compiler=`set X $ac_compile; echo $2`
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
+ (eval $ac_compiler --version </dev/null >&5) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
+ (eval $ac_compiler -v </dev/null >&5) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
+ (eval $ac_compiler -V </dev/null >&5) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
+echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6
+ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
+ (eval $ac_link_default) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ # Find the output, starting from the most likely. This scheme is
+# not robust to junk in `.', hence go to wildcards (a.*) only as a last
+# resort.
+
+# Be careful to initialize this variable, since it used to be cached.
+# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
+ac_cv_exeext=
+# b.out is created by i960 compilers.
+for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
+do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
+ ;;
+ conftest.$ac_ext )
+ # This is the source file.
+ ;;
+ [ab].out )
+ # We found the default executable, but exeext='' is most
+ # certainly right.
+ break;;
+ *.* )
+ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ # FIXME: I believe we export ac_cv_exeext for Libtool,
+ # but it would be cool to find out if it's true. Does anybody
+ # maintain Libtool? --akim.
+ export ac_cv_exeext
+ break;;
+ * )
+ break;;
+ esac
+done
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
+See \`config.log' for more details." >&5
+echo "$as_me: error: C compiler cannot create executables
+See \`config.log' for more details." >&2;}
+ { (exit 77); exit 77; }; }
+fi
+
+ac_exeext=$ac_cv_exeext
+echo "$as_me:$LINENO: result: $ac_file" >&5
+echo "${ECHO_T}$ac_file" >&6
+
+# Check the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+echo "$as_me:$LINENO: checking whether the C compiler works" >&5
+echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
+# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
+# If not cross compiling, check that we can run a simple program.
+if test "$cross_compiling" != yes; then
+ if { ac_try='./$ac_file'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cross_compiling=no
+ else
+ if test "$cross_compiling" = maybe; then
+ cross_compiling=yes
+ else
+ { { echo "$as_me:$LINENO: error: cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+fi
+echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+
+rm -f a.out a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+# Check the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
+echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
+echo "$as_me:$LINENO: result: $cross_compiling" >&5
+echo "${ECHO_T}$cross_compiling" >&6
+
+echo "$as_me:$LINENO: checking for suffix of executables" >&5
+echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
+ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ export ac_cv_exeext
+ break;;
+ * ) break;;
+ esac
+done
+else
+ { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+rm -f conftest$ac_cv_exeext
+echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
+echo "${ECHO_T}$ac_cv_exeext" >&6
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+echo "$as_me:$LINENO: checking for suffix of object files" >&5
+echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
+if test "${ac_cv_objext+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
+ *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+ break;;
+ esac
+done
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
+echo "${ECHO_T}$ac_cv_objext" >&6
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
+if test "${ac_cv_c_compiler_gnu+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_compiler_gnu=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_compiler_gnu=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
+GCC=`test $ac_compiler_gnu = yes && echo yes`
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+CFLAGS="-g"
+echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
+if test "${ac_cv_prog_cc_g+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_prog_cc_g=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_prog_cc_g=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
+if test "$ac_test_CFLAGS" = set; then
+ CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
+echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
+if test "${ac_cv_prog_cc_stdc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_cv_prog_cc_stdc=no
+ac_save_CC=$CC
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not '\xHH' hex character constants.
+ These don't provoke an error unfortunately, instead are silently treated
+ as 'x'. The following induces an error, until -std1 is added to get
+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
+ array size at least. It's necessary to write '\x00'==0 to get something
+ that's true only with -std1. */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
+ ;
+ return 0;
+}
+_ACEOF
+# Don't try gcc -ansi; that turns off useful extensions and
+# breaks some systems' header files.
+# AIX -qlanglvl=ansi
+# Ultrix and OSF/1 -std1
+# HP-UX 10.20 and later -Ae
+# HP-UX older versions -Aa -D_HPUX_SOURCE
+# SVR4 -Xc -D__EXTENSIONS__
+for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_prog_cc_stdc=$ac_arg
+break
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext
+done
+rm -f conftest.$ac_ext conftest.$ac_objext
+CC=$ac_save_CC
+
+fi
+
+case "x$ac_cv_prog_cc_stdc" in
+ x|xno)
+ echo "$as_me:$LINENO: result: none needed" >&5
+echo "${ECHO_T}none needed" >&6 ;;
+ *)
+ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
+ CC="$CC $ac_cv_prog_cc_stdc" ;;
+esac
+
+# Some people use a C++ compiler to compile C. Since we use `exit',
+# in C++ we need to declare it. In case someone uses the same compiler
+# for both compiling C and C++ we need to have the C++ compiler decide
+# the declaration of exit, since it's the most demanding environment.
+cat >conftest.$ac_ext <<_ACEOF
+#ifndef __cplusplus
+ choke me
+#endif
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ for ac_declaration in \
+ '' \
+ 'extern "C" void std::exit (int) throw (); using std::exit;' \
+ 'extern "C" void std::exit (int); using std::exit;' \
+ 'extern "C" void exit (int) throw ();' \
+ 'extern "C" void exit (int);' \
+ 'void exit (int);'
+do
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_declaration
+#include <stdlib.h>
+int
+main ()
+{
+exit (42);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+continue
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_declaration
+int
+main ()
+{
+exit (42);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ break
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+rm -f conftest*
+if test -n "$ac_declaration"; then
+ echo '#ifdef __cplusplus' >>confdefs.h
+ echo $ac_declaration >>confdefs.h
+ echo '#endif' >>confdefs.h
+fi
+
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+DEPDIR="${am__leading_dot}deps"
+
+ ac_config_commands="$ac_config_commands depfiles"
+
+
+am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+ @echo done
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
+echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# We grep out `Entering directory' and `Leaving directory'
+# messages which can occur if `w' ends up in MAKEFLAGS.
+# In particular we don't look at `^make:' because GNU make might
+# be invoked under some other name (usually "gmake"), in which
+# case it prints its new name instead of `make'.
+if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
+ am__include=include
+ am__quote=
+ _am_result=GNU
+fi
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+ echo '.include "confinc"' > confmf
+ if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
+ am__include=.include
+ am__quote="\""
+ _am_result=BSD
+ fi
+fi
+
+
+echo "$as_me:$LINENO: result: $_am_result" >&5
+echo "${ECHO_T}$_am_result" >&6
+rm -f confinc confmf
+
+# Check whether --enable-dependency-tracking or --disable-dependency-tracking was given.
+if test "${enable_dependency_tracking+set}" = set; then
+ enableval="$enable_dependency_tracking"
+
+fi;
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+fi
+
+
+if test "x$enable_dependency_tracking" != xno; then
+ AMDEP_TRUE=
+ AMDEP_FALSE='#'
+else
+ AMDEP_TRUE='#'
+ AMDEP_FALSE=
+fi
+
+
+
+
+depcc="$CC" am_compiler_list=
+
+echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6
+if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_CC_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+ fi
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ case $depmode in
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ none) break ;;
+ esac
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this.
+ if depmode=$depmode \
+ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_CC_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
+echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+
+
+if
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+ am__fastdepCC_TRUE=
+ am__fastdepCC_FALSE='#'
+else
+ am__fastdepCC_TRUE='#'
+ am__fastdepCC_FALSE=
+fi
+
+
+
+cat >>confdefs.h <<\_ACEOF
+#define _GNU_SOURCE 1
+_ACEOF
+
+
+
+
+echo "$as_me:$LINENO: checking for primary include directory" >&5
+echo $ECHO_N "checking for primary include directory... $ECHO_C" >&6
+includedir=/usr/include
+if test -n "$GCC"
+then
+ >conftest.c
+ new_includedir=`
+ $CC -v -E conftest.c 2>&1 | $AWK '
+ /^End of search list/ { print last; exit }
+ { last = $1 }
+ '
+ `
+ rm -f conftest.c
+ if test -n "$new_includedir" && test -d "$new_includedir"
+ then
+ includedir=$new_includedir
+ fi
+fi
+echo "$as_me:$LINENO: result: $includedir" >&5
+echo "${ECHO_T}$includedir" >&6
+
+
+if test "x$opsys" = "xsunos4" && test "x$arch" = "xsparc"
+then
+ echo "$as_me:$LINENO: checking for valid machine include directory" >&5
+echo $ECHO_N "checking for valid machine include directory... $ECHO_C" >&6
+ if test -d "$includedir/sun4"
+ then
+ rm -f machine
+ ln -s $includedir/sun4 machine
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+
+cat >>confdefs.h <<\_ACEOF
+#define SUNOS4_KERNEL_ARCH_KLUDGE 1
+_ACEOF
+
+ else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ fi
+fi
+
+
+if test -z "$WARNFLAGS"
+then
+ if test -n "$GCC"
+ then
+ # If we're using gcc we want warning flags.
+ WARNFLAGS=-Wall
+ fi
+fi
+
+if test "x$opsys" = "xsunos4"
+then
+ if test -n "$GCC"
+ then
+ # SunOS 4.x header files don't declare int functions.
+ WARNFLAGS="$WARNFLAGS -Wno-implicit"
+ fi
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
+echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+fi
+if test -z "$CPP"; then
+ if test "${ac_cv_prog_CPP+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ # Double quotes because CPP needs to be expanded
+ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+ do
+ ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ :
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether non-existent headers
+ # can be detected and how.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ # Broken: success on invalid input.
+continue
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+ break
+fi
+
+ done
+ ac_cv_prog_CPP=$CPP
+
+fi
+ CPP=$ac_cv_prog_CPP
+else
+ ac_cv_prog_CPP=$CPP
+fi
+echo "$as_me:$LINENO: result: $CPP" >&5
+echo "${ECHO_T}$CPP" >&6
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ :
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether non-existent headers
+ # can be detected and how.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ # Broken: success on invalid input.
+continue
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+ :
+else
+ { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&5
+echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+echo "$as_me:$LINENO: checking for egrep" >&5
+echo $ECHO_N "checking for egrep... $ECHO_C" >&6
+if test "${ac_cv_prog_egrep+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if echo a | (grep -E '(a|b)') >/dev/null 2>&1
+ then ac_cv_prog_egrep='grep -E'
+ else ac_cv_prog_egrep='egrep'
+ fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
+echo "${ECHO_T}$ac_cv_prog_egrep" >&6
+ EGREP=$ac_cv_prog_egrep
+
+
+if test $ac_cv_c_compiler_gnu = yes; then
+ echo "$as_me:$LINENO: checking whether $CC needs -traditional" >&5
+echo $ECHO_N "checking whether $CC needs -traditional... $ECHO_C" >&6
+if test "${ac_cv_prog_gcc_traditional+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_pattern="Autoconf.*'x'"
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <sgtty.h>
+Autoconf TIOCGETP
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "$ac_pattern" >/dev/null 2>&1; then
+ ac_cv_prog_gcc_traditional=yes
+else
+ ac_cv_prog_gcc_traditional=no
+fi
+rm -f conftest*
+
+
+ if test $ac_cv_prog_gcc_traditional = no; then
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <termio.h>
+Autoconf TCGETA
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "$ac_pattern" >/dev/null 2>&1; then
+ ac_cv_prog_gcc_traditional=yes
+fi
+rm -f conftest*
+
+ fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_gcc_traditional" >&5
+echo "${ECHO_T}$ac_cv_prog_gcc_traditional" >&6
+ if test $ac_cv_prog_gcc_traditional = yes; then
+ CC="$CC -traditional"
+ fi
+fi
+
+# Find a good install program. We prefer a C program (faster),
+# so one script is as good as another. But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
+echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
+if test -z "$INSTALL"; then
+if test "${ac_cv_path_install+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in
+ ./ | .// | /cC/* | \
+ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
+ /usr/ucb/* ) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+ if test $ac_prog = install &&
+ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ elif test $ac_prog = install &&
+ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # program-specific install script used by HP pwplus--don't use.
+ :
+ else
+ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+ break 3
+ fi
+ fi
+ done
+ done
+ ;;
+esac
+done
+
+
+fi
+ if test "${ac_cv_path_install+set}" = set; then
+ INSTALL=$ac_cv_path_install
+ else
+ # As a last resort, use the slow shell script. We don't cache a
+ # path for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the path is relative.
+ INSTALL=$ac_install_sh
+ fi
+fi
+echo "$as_me:$LINENO: result: $INSTALL" >&5
+echo "${ECHO_T}$INSTALL" >&6
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5
+echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6
+if test "${ac_cv_c_const+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+/* FIXME: Include the comments suggested by Paul. */
+#ifndef __cplusplus
+ /* Ultrix mips cc rejects this. */
+ typedef int charset[2];
+ const charset x;
+ /* SunOS 4.1.1 cc rejects this. */
+ char const *const *ccp;
+ char **p;
+ /* NEC SVR4.0.2 mips cc rejects this. */
+ struct point {int x, y;};
+ static struct point const zero = {0,0};
+ /* AIX XL C 1.02.0.0 rejects this.
+ It does not let you subtract one const X* pointer from another in
+ an arm of an if-expression whose if-part is not a constant
+ expression */
+ const char *g = "string";
+ ccp = &g + (g ? g-g : 0);
+ /* HPUX 7.0 cc rejects these. */
+ ++ccp;
+ p = (char**) ccp;
+ ccp = (char const *const *) p;
+ { /* SCO 3.2v4 cc rejects this. */
+ char *t;
+ char const *s = 0 ? (char *) 0 : (char const *) 0;
+
+ *t++ = 0;
+ }
+ { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
+ int x[] = {25, 17};
+ const int *foo = &x[0];
+ ++foo;
+ }
+ { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
+ typedef const int *iptr;
+ iptr p = 0;
+ ++p;
+ }
+ { /* AIX XL C 1.02.0.0 rejects this saying
+ "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
+ struct s { int j; const int *ap[3]; };
+ struct s *b; b->j = 5;
+ }
+ { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
+ const int foo = 10;
+ }
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_c_const=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_c_const=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5
+echo "${ECHO_T}$ac_cv_c_const" >&6
+if test $ac_cv_c_const = no; then
+
+cat >>confdefs.h <<\_ACEOF
+#define const
+_ACEOF
+
+fi
+
+echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
+if test "${ac_cv_header_stdc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_header_stdc=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_header_stdc=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then
+ :
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then
+ :
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then
+ :
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <ctype.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ exit(2);
+ exit (0);
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_header_stdc=no
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+echo "${ECHO_T}$ac_cv_header_stdc" >&6
+if test $ac_cv_header_stdc = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define STDC_HEADERS 1
+_ACEOF
+
+fi
+
+
+
+
+
+
+ac_header_dirent=no
+for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
+ as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_hdr that defines DIR" >&5
+echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <$ac_hdr>
+
+int
+main ()
+{
+if ((DIR *) 0)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_Header=yes"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_Header=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_hdr" | $as_tr_cpp` 1
+_ACEOF
+
+ac_header_dirent=$ac_hdr; break
+fi
+
+done
+# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
+if test $ac_header_dirent = dirent.h; then
+ echo "$as_me:$LINENO: checking for library containing opendir" >&5
+echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6
+if test "${ac_cv_search_opendir+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+ac_cv_search_opendir=no
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char opendir ();
+int
+main ()
+{
+opendir ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_search_opendir="none required"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test "$ac_cv_search_opendir" = no; then
+ for ac_lib in dir; do
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char opendir ();
+int
+main ()
+{
+opendir ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_search_opendir="-l$ac_lib"
+break
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ done
+fi
+LIBS=$ac_func_search_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5
+echo "${ECHO_T}$ac_cv_search_opendir" >&6
+if test "$ac_cv_search_opendir" != no; then
+ test "$ac_cv_search_opendir" = "none required" || LIBS="$ac_cv_search_opendir $LIBS"
+
+fi
+
+else
+ echo "$as_me:$LINENO: checking for library containing opendir" >&5
+echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6
+if test "${ac_cv_search_opendir+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+ac_cv_search_opendir=no
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char opendir ();
+int
+main ()
+{
+opendir ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_search_opendir="none required"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test "$ac_cv_search_opendir" = no; then
+ for ac_lib in x; do
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char opendir ();
+int
+main ()
+{
+opendir ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_search_opendir="-l$ac_lib"
+break
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ done
+fi
+LIBS=$ac_func_search_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5
+echo "${ECHO_T}$ac_cv_search_opendir" >&6
+if test "$ac_cv_search_opendir" != no; then
+ test "$ac_cv_search_opendir" = "none required" || LIBS="$ac_cv_search_opendir $LIBS"
+
+fi
+
+fi
+
+echo "$as_me:$LINENO: checking whether stat file-mode macros are broken" >&5
+echo $ECHO_N "checking whether stat file-mode macros are broken... $ECHO_C" >&6
+if test "${ac_cv_header_stat_broken+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#if defined(S_ISBLK) && defined(S_IFDIR)
+# if S_ISBLK (S_IFDIR)
+You lose.
+# endif
+#endif
+
+#if defined(S_ISBLK) && defined(S_IFCHR)
+# if S_ISBLK (S_IFCHR)
+You lose.
+# endif
+#endif
+
+#if defined(S_ISLNK) && defined(S_IFREG)
+# if S_ISLNK (S_IFREG)
+You lose.
+# endif
+#endif
+
+#if defined(S_ISSOCK) && defined(S_IFREG)
+# if S_ISSOCK (S_IFREG)
+You lose.
+# endif
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "You lose" >/dev/null 2>&1; then
+ ac_cv_header_stat_broken=yes
+else
+ ac_cv_header_stat_broken=no
+fi
+rm -f conftest*
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_stat_broken" >&5
+echo "${ECHO_T}$ac_cv_header_stat_broken" >&6
+if test $ac_cv_header_stat_broken = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define STAT_MACROS_BROKEN 1
+_ACEOF
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+
+
+
+
+
+
+
+
+
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+ inttypes.h stdint.h unistd.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_Header=yes"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_Header=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+echo "$as_me:$LINENO: checking for struct stat.st_blksize" >&5
+echo $ECHO_N "checking for struct stat.st_blksize... $ECHO_C" >&6
+if test "${ac_cv_member_struct_stat_st_blksize+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+static struct stat ac_aggr;
+if (ac_aggr.st_blksize)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_member_struct_stat_st_blksize=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+static struct stat ac_aggr;
+if (sizeof ac_aggr.st_blksize)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_member_struct_stat_st_blksize=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_member_struct_stat_st_blksize=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_blksize" >&5
+echo "${ECHO_T}$ac_cv_member_struct_stat_st_blksize" >&6
+if test $ac_cv_member_struct_stat_st_blksize = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking for struct stat.st_blocks" >&5
+echo $ECHO_N "checking for struct stat.st_blocks... $ECHO_C" >&6
+if test "${ac_cv_member_struct_stat_st_blocks+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+static struct stat ac_aggr;
+if (ac_aggr.st_blocks)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_member_struct_stat_st_blocks=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+static struct stat ac_aggr;
+if (sizeof ac_aggr.st_blocks)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_member_struct_stat_st_blocks=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_member_struct_stat_st_blocks=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_blocks" >&5
+echo "${ECHO_T}$ac_cv_member_struct_stat_st_blocks" >&6
+if test $ac_cv_member_struct_stat_st_blocks = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_BLOCKS 1
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking for struct stat.st_aclcnt" >&5
+echo $ECHO_N "checking for struct stat.st_aclcnt... $ECHO_C" >&6
+if test "${ac_cv_member_struct_stat_st_aclcnt+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+static struct stat ac_aggr;
+if (ac_aggr.st_aclcnt)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_member_struct_stat_st_aclcnt=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+static struct stat ac_aggr;
+if (sizeof ac_aggr.st_aclcnt)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_member_struct_stat_st_aclcnt=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_member_struct_stat_st_aclcnt=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_aclcnt" >&5
+echo "${ECHO_T}$ac_cv_member_struct_stat_st_aclcnt" >&6
+if test $ac_cv_member_struct_stat_st_aclcnt = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_ACLCNT 1
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking for struct stat.st_flags" >&5
+echo $ECHO_N "checking for struct stat.st_flags... $ECHO_C" >&6
+if test "${ac_cv_member_struct_stat_st_flags+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+static struct stat ac_aggr;
+if (ac_aggr.st_flags)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_member_struct_stat_st_flags=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+static struct stat ac_aggr;
+if (sizeof ac_aggr.st_flags)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_member_struct_stat_st_flags=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_member_struct_stat_st_flags=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_flags" >&5
+echo "${ECHO_T}$ac_cv_member_struct_stat_st_flags" >&6
+if test $ac_cv_member_struct_stat_st_flags = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_FLAGS 1
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking for struct stat.st_fstype" >&5
+echo $ECHO_N "checking for struct stat.st_fstype... $ECHO_C" >&6
+if test "${ac_cv_member_struct_stat_st_fstype+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+static struct stat ac_aggr;
+if (ac_aggr.st_fstype)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_member_struct_stat_st_fstype=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+static struct stat ac_aggr;
+if (sizeof ac_aggr.st_fstype)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_member_struct_stat_st_fstype=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_member_struct_stat_st_fstype=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_fstype" >&5
+echo "${ECHO_T}$ac_cv_member_struct_stat_st_fstype" >&6
+if test $ac_cv_member_struct_stat_st_fstype = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_FSTYPE 1
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking for struct stat.st_gen" >&5
+echo $ECHO_N "checking for struct stat.st_gen... $ECHO_C" >&6
+if test "${ac_cv_member_struct_stat_st_gen+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+static struct stat ac_aggr;
+if (ac_aggr.st_gen)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_member_struct_stat_st_gen=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+static struct stat ac_aggr;
+if (sizeof ac_aggr.st_gen)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_member_struct_stat_st_gen=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_member_struct_stat_st_gen=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_gen" >&5
+echo "${ECHO_T}$ac_cv_member_struct_stat_st_gen" >&6
+if test $ac_cv_member_struct_stat_st_gen = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_GEN 1
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking for struct stat.st_level" >&5
+echo $ECHO_N "checking for struct stat.st_level... $ECHO_C" >&6
+if test "${ac_cv_member_struct_stat_st_level+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+static struct stat ac_aggr;
+if (ac_aggr.st_level)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_member_struct_stat_st_level=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+static struct stat ac_aggr;
+if (sizeof ac_aggr.st_level)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_member_struct_stat_st_level=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_member_struct_stat_st_level=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_level" >&5
+echo "${ECHO_T}$ac_cv_member_struct_stat_st_level" >&6
+if test $ac_cv_member_struct_stat_st_level = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_LEVEL 1
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking for struct stat.st_rdev" >&5
+echo $ECHO_N "checking for struct stat.st_rdev... $ECHO_C" >&6
+if test "${ac_cv_member_struct_stat_st_rdev+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+static struct stat ac_aggr;
+if (ac_aggr.st_rdev)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_member_struct_stat_st_rdev=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+static struct stat ac_aggr;
+if (sizeof ac_aggr.st_rdev)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_member_struct_stat_st_rdev=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_member_struct_stat_st_rdev=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_rdev" >&5
+echo "${ECHO_T}$ac_cv_member_struct_stat_st_rdev" >&6
+if test $ac_cv_member_struct_stat_st_rdev = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_RDEV 1
+_ACEOF
+
+
+fi
+
+echo "$as_me:$LINENO: checking for stat64 in (asm|sys)/stat.h" >&5
+echo $ECHO_N "checking for stat64 in (asm|sys)/stat.h... $ECHO_C" >&6
+if test "${ac_cv_type_stat64+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#ifdef LINUX
+#include <linux/types.h>
+#include <asm/stat.h>
+#else
+#include <sys/stat.h>
+#endif
+int
+main ()
+{
+struct stat64 st;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_type_stat64=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_stat64=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+echo "$as_me:$LINENO: result: $ac_cv_type_stat64" >&5
+echo "${ECHO_T}$ac_cv_type_stat64" >&6
+if test "$ac_cv_type_stat64" = yes
+then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_STAT64 1
+_ACEOF
+
+fi
+
+
+echo "$as_me:$LINENO: checking return type of signal handlers" >&5
+echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6
+if test "${ac_cv_type_signal+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <signal.h>
+#ifdef signal
+# undef signal
+#endif
+#ifdef __cplusplus
+extern "C" void (*signal (int, void (*)(int)))(int);
+#else
+void (*signal ()) ();
+#endif
+
+int
+main ()
+{
+int i;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_type_signal=void
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_signal=int
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5
+echo "${ECHO_T}$ac_cv_type_signal" >&6
+
+cat >>confdefs.h <<_ACEOF
+#define RETSIGTYPE $ac_cv_type_signal
+_ACEOF
+
+
+echo "$as_me:$LINENO: checking for uid_t in sys/types.h" >&5
+echo $ECHO_N "checking for uid_t in sys/types.h... $ECHO_C" >&6
+if test "${ac_cv_type_uid_t+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <sys/types.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "uid_t" >/dev/null 2>&1; then
+ ac_cv_type_uid_t=yes
+else
+ ac_cv_type_uid_t=no
+fi
+rm -f conftest*
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_uid_t" >&5
+echo "${ECHO_T}$ac_cv_type_uid_t" >&6
+if test $ac_cv_type_uid_t = no; then
+
+cat >>confdefs.h <<\_ACEOF
+#define uid_t int
+_ACEOF
+
+
+cat >>confdefs.h <<\_ACEOF
+#define gid_t int
+_ACEOF
+
+fi
+
+echo "$as_me:$LINENO: checking for mode_t" >&5
+echo $ECHO_N "checking for mode_t... $ECHO_C" >&6
+if test "${ac_cv_type_mode_t+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+if ((mode_t *) 0)
+ return 0;
+if (sizeof (mode_t))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_type_mode_t=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_mode_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_mode_t" >&5
+echo "${ECHO_T}$ac_cv_type_mode_t" >&6
+if test $ac_cv_type_mode_t = yes; then
+ :
+else
+
+cat >>confdefs.h <<_ACEOF
+#define mode_t int
+_ACEOF
+
+fi
+
+echo "$as_me:$LINENO: checking type of array argument to getgroups" >&5
+echo $ECHO_N "checking type of array argument to getgroups... $ECHO_C" >&6
+if test "${ac_cv_type_getgroups+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test "$cross_compiling" = yes; then
+ ac_cv_type_getgroups=cross
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Thanks to Mike Rendell for this test. */
+#include <sys/types.h>
+#define NGID 256
+#undef MAX
+#define MAX(x, y) ((x) > (y) ? (x) : (y))
+
+int
+main ()
+{
+ gid_t gidset[NGID];
+ int i, n;
+ union { gid_t gval; long lval; } val;
+
+ val.lval = -1;
+ for (i = 0; i < NGID; i++)
+ gidset[i] = val.gval;
+ n = getgroups (sizeof (gidset) / MAX (sizeof (int), sizeof (gid_t)) - 1,
+ gidset);
+ /* Exit non-zero if getgroups seems to require an array of ints. This
+ happens when gid_t is short but getgroups modifies an array of ints. */
+ exit ((n > 0 && gidset[n] != val.gval) ? 1 : 0);
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_type_getgroups=gid_t
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_type_getgroups=int
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+if test $ac_cv_type_getgroups = cross; then
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <unistd.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "getgroups.*int.*gid_t" >/dev/null 2>&1; then
+ ac_cv_type_getgroups=gid_t
+else
+ ac_cv_type_getgroups=int
+fi
+rm -f conftest*
+
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_getgroups" >&5
+echo "${ECHO_T}$ac_cv_type_getgroups" >&6
+
+cat >>confdefs.h <<_ACEOF
+#define GETGROUPS_T $ac_cv_type_getgroups
+_ACEOF
+
+
+echo "$as_me:$LINENO: checking whether sys/types.h defines makedev" >&5
+echo $ECHO_N "checking whether sys/types.h defines makedev... $ECHO_C" >&6
+if test "${ac_cv_header_sys_types_h_makedev+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <sys/types.h>
+int
+main ()
+{
+return makedev(0, 0);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_header_sys_types_h_makedev=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_header_sys_types_h_makedev=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_sys_types_h_makedev" >&5
+echo "${ECHO_T}$ac_cv_header_sys_types_h_makedev" >&6
+
+if test $ac_cv_header_sys_types_h_makedev = no; then
+if test "${ac_cv_header_sys_mkdev_h+set}" = set; then
+ echo "$as_me:$LINENO: checking for sys/mkdev.h" >&5
+echo $ECHO_N "checking for sys/mkdev.h... $ECHO_C" >&6
+if test "${ac_cv_header_sys_mkdev_h+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_sys_mkdev_h" >&5
+echo "${ECHO_T}$ac_cv_header_sys_mkdev_h" >&6
+else
+ # Is the header compilable?
+echo "$as_me:$LINENO: checking sys/mkdev.h usability" >&5
+echo $ECHO_N "checking sys/mkdev.h usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+#include <sys/mkdev.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_header_compiler=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking sys/mkdev.h presence" >&5
+echo $ECHO_N "checking sys/mkdev.h presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <sys/mkdev.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ ac_header_preproc=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+ yes:no: )
+ { echo "$as_me:$LINENO: WARNING: sys/mkdev.h: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: sys/mkdev.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { echo "$as_me:$LINENO: WARNING: sys/mkdev.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: sys/mkdev.h: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
+ ;;
+ no:yes:* )
+ { echo "$as_me:$LINENO: WARNING: sys/mkdev.h: present but cannot be compiled" >&5
+echo "$as_me: WARNING: sys/mkdev.h: present but cannot be compiled" >&2;}
+ { echo "$as_me:$LINENO: WARNING: sys/mkdev.h: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: sys/mkdev.h: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: sys/mkdev.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: sys/mkdev.h: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: sys/mkdev.h: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: sys/mkdev.h: section \"Present But Cannot Be Compiled\"" >&2;}
+ { echo "$as_me:$LINENO: WARNING: sys/mkdev.h: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: sys/mkdev.h: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: sys/mkdev.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: sys/mkdev.h: in the future, the compiler will take precedence" >&2;}
+ (
+ cat <<\_ASBOX
+## --------------------------------- ##
+## Report this to the strace lists. ##
+## --------------------------------- ##
+_ASBOX
+ ) |
+ sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+echo "$as_me:$LINENO: checking for sys/mkdev.h" >&5
+echo $ECHO_N "checking for sys/mkdev.h... $ECHO_C" >&6
+if test "${ac_cv_header_sys_mkdev_h+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_cv_header_sys_mkdev_h=$ac_header_preproc
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_sys_mkdev_h" >&5
+echo "${ECHO_T}$ac_cv_header_sys_mkdev_h" >&6
+
+fi
+if test $ac_cv_header_sys_mkdev_h = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define MAJOR_IN_MKDEV 1
+_ACEOF
+
+fi
+
+
+
+ if test $ac_cv_header_sys_mkdev_h = no; then
+ if test "${ac_cv_header_sys_sysmacros_h+set}" = set; then
+ echo "$as_me:$LINENO: checking for sys/sysmacros.h" >&5
+echo $ECHO_N "checking for sys/sysmacros.h... $ECHO_C" >&6
+if test "${ac_cv_header_sys_sysmacros_h+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_sys_sysmacros_h" >&5
+echo "${ECHO_T}$ac_cv_header_sys_sysmacros_h" >&6
+else
+ # Is the header compilable?
+echo "$as_me:$LINENO: checking sys/sysmacros.h usability" >&5
+echo $ECHO_N "checking sys/sysmacros.h usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+#include <sys/sysmacros.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_header_compiler=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking sys/sysmacros.h presence" >&5
+echo $ECHO_N "checking sys/sysmacros.h presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <sys/sysmacros.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ ac_header_preproc=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+ yes:no: )
+ { echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: sys/sysmacros.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: sys/sysmacros.h: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
+ ;;
+ no:yes:* )
+ { echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: present but cannot be compiled" >&5
+echo "$as_me: WARNING: sys/sysmacros.h: present but cannot be compiled" >&2;}
+ { echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: sys/sysmacros.h: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: sys/sysmacros.h: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: sys/sysmacros.h: section \"Present But Cannot Be Compiled\"" >&2;}
+ { echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: sys/sysmacros.h: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: sys/sysmacros.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: sys/sysmacros.h: in the future, the compiler will take precedence" >&2;}
+ (
+ cat <<\_ASBOX
+## --------------------------------- ##
+## Report this to the strace lists. ##
+## --------------------------------- ##
+_ASBOX
+ ) |
+ sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+echo "$as_me:$LINENO: checking for sys/sysmacros.h" >&5
+echo $ECHO_N "checking for sys/sysmacros.h... $ECHO_C" >&6
+if test "${ac_cv_header_sys_sysmacros_h+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_cv_header_sys_sysmacros_h=$ac_header_preproc
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_sys_sysmacros_h" >&5
+echo "${ECHO_T}$ac_cv_header_sys_sysmacros_h" >&6
+
+fi
+if test $ac_cv_header_sys_sysmacros_h = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define MAJOR_IN_SYSMACROS 1
+_ACEOF
+
+fi
+
+
+ fi
+fi
+
+echo "$as_me:$LINENO: checking for sig_atomic_t" >&5
+echo $ECHO_N "checking for sig_atomic_t... $ECHO_C" >&6
+if test "${ac_cv_type_sig_atomic_t+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <signal.h>
+
+int
+main ()
+{
+if ((sig_atomic_t *) 0)
+ return 0;
+if (sizeof (sig_atomic_t))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_type_sig_atomic_t=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_sig_atomic_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_sig_atomic_t" >&5
+echo "${ECHO_T}$ac_cv_type_sig_atomic_t" >&6
+if test $ac_cv_type_sig_atomic_t = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_SIG_ATOMIC_T 1
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking for siginfo_t" >&5
+echo $ECHO_N "checking for siginfo_t... $ECHO_C" >&6
+if test "${ac_cv_type_siginfo_t+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <signal.h>
+
+int
+main ()
+{
+if ((siginfo_t *) 0)
+ return 0;
+if (sizeof (siginfo_t))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_type_siginfo_t=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_siginfo_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_siginfo_t" >&5
+echo "${ECHO_T}$ac_cv_type_siginfo_t" >&6
+if test $ac_cv_type_siginfo_t = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_SIGINFO_T 1
+_ACEOF
+
+
+fi
+
+echo "$as_me:$LINENO: checking for struct sockaddr_in6.sin6_scope_id" >&5
+echo $ECHO_N "checking for struct sockaddr_in6.sin6_scope_id... $ECHO_C" >&6
+if test "${ac_cv_member_struct_sockaddr_in6_sin6_scope_id+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+
+int
+main ()
+{
+static struct sockaddr_in6 ac_aggr;
+if (ac_aggr.sin6_scope_id)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_member_struct_sockaddr_in6_sin6_scope_id=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+
+int
+main ()
+{
+static struct sockaddr_in6 ac_aggr;
+if (sizeof ac_aggr.sin6_scope_id)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_member_struct_sockaddr_in6_sin6_scope_id=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_member_struct_sockaddr_in6_sin6_scope_id=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_member_struct_sockaddr_in6_sin6_scope_id" >&5
+echo "${ECHO_T}$ac_cv_member_struct_sockaddr_in6_sin6_scope_id" >&6
+if test $ac_cv_member_struct_sockaddr_in6_sin6_scope_id = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+_ACEOF
+
+
+fi
+
+echo "$as_me:$LINENO: checking for long long" >&5
+echo $ECHO_N "checking for long long... $ECHO_C" >&6
+if test "${ac_cv_type_long_long+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+if ((long long *) 0)
+ return 0;
+if (sizeof (long long))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_type_long_long=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_long_long=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_long_long" >&5
+echo "${ECHO_T}$ac_cv_type_long_long" >&6
+if test $ac_cv_type_long_long = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_LONG_LONG 1
+_ACEOF
+
+
+fi
+
+echo "$as_me:$LINENO: checking for little endian long long" >&5
+echo $ECHO_N "checking for little endian long long... $ECHO_C" >&6
+if test "${ac_cv_have_little_endian_long_long+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test "$cross_compiling" = yes; then
+ # Should try to guess here
+ac_cv_have_little_endian_long_long=no
+
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int main () {
+ union {
+ long long ll;
+ long l [2];
+ } u;
+ u.ll = 0x12345678;
+ if (u.l[0] == 0x12345678)
+ return 0;
+ return 1;
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_have_little_endian_long_long=yes
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_have_little_endian_long_long=no
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+
+echo "$as_me:$LINENO: result: $ac_cv_have_little_endian_long_long" >&5
+echo "${ECHO_T}$ac_cv_have_little_endian_long_long" >&6
+if test "$ac_cv_have_little_endian_long_long" = yes
+then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_LITTLE_ENDIAN_LONG_LONG 1
+_ACEOF
+
+fi
+
+echo "$as_me:$LINENO: checking for long long off_t" >&5
+echo $ECHO_N "checking for long long off_t... $ECHO_C" >&6
+if test "${ac_cv_have_long_long_off_t+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test "$cross_compiling" = yes; then
+ # Should try to guess here
+ac_cv_have_long_long_off_t=no
+
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <sys/types.h>
+main () {
+ if (sizeof (off_t) == sizeof (long long) &&
+ sizeof (off_t) > sizeof (long))
+ return 0;
+ return 1;
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_have_long_long_off_t=yes
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_have_long_long_off_t=no
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+
+echo "$as_me:$LINENO: result: $ac_cv_have_long_long_off_t" >&5
+echo "${ECHO_T}$ac_cv_have_long_long_off_t" >&6
+if test "$ac_cv_have_long_long_off_t" = yes
+then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_LONG_LONG_OFF_T 1
+_ACEOF
+
+fi
+
+echo "$as_me:$LINENO: checking for long long rlim_t" >&5
+echo $ECHO_N "checking for long long rlim_t... $ECHO_C" >&6
+if test "${ac_cv_have_long_long_rlim_t+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test "$cross_compiling" = yes; then
+ # Should try to guess here
+ac_cv_have_long_long_rlim_t=no
+
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <sys/time.h>
+#include <sys/resource.h>
+main () {
+ if (sizeof (rlim_t) == sizeof (long long) &&
+ sizeof (rlim_t) > sizeof (long))
+ return 0;
+ return 1;
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_have_long_long_rlim_t=yes
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_have_long_long_rlim_t=no
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+
+echo "$as_me:$LINENO: result: $ac_cv_have_long_long_rlim_t" >&5
+echo "${ECHO_T}$ac_cv_have_long_long_rlim_t" >&6
+if test "$ac_cv_have_long_long_rlim_t" = yes
+then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_LONG_LONG_RLIM_T 1
+_ACEOF
+
+fi
+
+echo "$as_me:$LINENO: checking for struct opthdr" >&5
+echo $ECHO_N "checking for struct opthdr... $ECHO_C" >&6
+if test "${ac_cv_type_struct_opthdr+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <sys/socket.h>
+
+int
+main ()
+{
+if ((struct opthdr *) 0)
+ return 0;
+if (sizeof (struct opthdr))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_type_struct_opthdr=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_struct_opthdr=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_struct_opthdr" >&5
+echo "${ECHO_T}$ac_cv_type_struct_opthdr" >&6
+if test $ac_cv_type_struct_opthdr = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_OPTHDR 1
+_ACEOF
+
+
+fi
+
+echo "$as_me:$LINENO: checking for struct t_opthdr" >&5
+echo $ECHO_N "checking for struct t_opthdr... $ECHO_C" >&6
+if test "${ac_cv_type_struct_t_opthdr+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <sys/tiuser.h>
+
+int
+main ()
+{
+if ((struct t_opthdr *) 0)
+ return 0;
+if (sizeof (struct t_opthdr))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_type_struct_t_opthdr=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_struct_t_opthdr=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_struct_t_opthdr" >&5
+echo "${ECHO_T}$ac_cv_type_struct_t_opthdr" >&6
+if test $ac_cv_type_struct_t_opthdr = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_T_OPTHDR 1
+_ACEOF
+
+
+fi
+
+
+if test x$opsys != xlinux; then
+
+echo "$as_me:$LINENO: checking for main in -lnsl" >&5
+echo $ECHO_N "checking for main in -lnsl... $ECHO_C" >&6
+if test "${ac_cv_lib_nsl_main+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lnsl $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+
+int
+main ()
+{
+main ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_nsl_main=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_nsl_main=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_main" >&5
+echo "${ECHO_T}$ac_cv_lib_nsl_main" >&6
+if test $ac_cv_lib_nsl_main = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBNSL 1
+_ACEOF
+
+ LIBS="-lnsl $LIBS"
+
+fi
+
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+for ac_func in sigaction strerror strsignal pread sys_siglist _sys_siglist getdents mctl prctl sendmsg inet_ntop if_indextoname
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != $ac_func;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_var=yes"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+for ac_header in sys/reg.h sys/filio.h sys/acl.h sys/asynch.h sys/door.h stropts.h sys/conf.h sys/stream.h sys/tihdr.h sys/tiuser.h sys/sysconfig.h ioctls.h sys/ioctl.h sys/ptrace.h termio.h linux/ptrace.h asm/reg.h sys/uio.h sys/aio.h poll.h sys/poll.h sys/vfs.h asm/sysmips.h linux/utsname.h sys/nscsys.h mqueue.h sys/epoll.h libaio.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+ # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_header_compiler=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ ac_header_preproc=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+ yes:no: )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
+ ;;
+ no:yes:* )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+ (
+ cat <<\_ASBOX
+## --------------------------------- ##
+## Report this to the strace lists. ##
+## --------------------------------- ##
+_ASBOX
+ ) |
+ sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+
+for ac_header in linux/icmp.h linux/in6.h linux/netlink.h linux/if_packet.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <linux/socket.h>
+
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_Header=yes"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_Header=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+for ac_header in asm/sigcontext.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <signal.h>
+
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_Header=yes"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_Header=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+for ac_header in netinet/tcp.h netinet/udp.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <netinet/in.h>
+
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_Header=yes"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_Header=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+echo "$as_me:$LINENO: checking for MP procfs" >&5
+echo $ECHO_N "checking for MP procfs... $ECHO_C" >&6
+if test "${ac_cv_mp_procfs+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test "$cross_compiling" = yes; then
+
+# Guess or punt.
+case "$host_os" in
+svr4.2*|svr5*)
+ ac_cv_mp_procfs=yes
+ ;;
+*)
+ ac_cv_mp_procfs=no
+ ;;
+esac
+
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <stdio.h>
+#include <signal.h>
+#include <sys/procfs.h>
+
+main()
+{
+ int pid;
+ char proc[32];
+ FILE *ctl;
+ FILE *status;
+ int cmd;
+ struct pstatus pstatus;
+
+ if ((pid = fork()) == 0) {
+ pause();
+ exit(0);
+ }
+ sprintf(proc, "/proc/%d/ctl", pid);
+ if ((ctl = fopen(proc, "w")) == NULL)
+ goto fail;
+ sprintf(proc, "/proc/%d/status", pid);
+ if ((status = fopen (proc, "r")) == NULL)
+ goto fail;
+ cmd = PCSTOP;
+ if (write (fileno (ctl), &cmd, sizeof cmd) < 0)
+ goto fail;
+ if (read (fileno (status), &pstatus, sizeof pstatus) < 0)
+ goto fail;
+ kill(pid, SIGKILL);
+ exit(0);
+fail:
+ kill(pid, SIGKILL);
+ exit(1);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_mp_procfs=yes
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_mp_procfs=no
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+
+echo "$as_me:$LINENO: result: $ac_cv_mp_procfs" >&5
+echo "${ECHO_T}$ac_cv_mp_procfs" >&6
+if test "$ac_cv_mp_procfs" = yes
+then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_MP_PROCFS 1
+_ACEOF
+
+fi
+
+echo "$as_me:$LINENO: checking for pollable procfs" >&5
+echo $ECHO_N "checking for pollable procfs... $ECHO_C" >&6
+if test "${ac_cv_pollable_procfs+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test "$cross_compiling" = yes; then
+
+# Guess or punt.
+case "$host_os" in
+solaris2*|irix5*|svr4.2uw*|svr5*)
+ ac_cv_pollable_procfs=yes
+ ;;
+*)
+ ac_cv_pollable_procfs=no
+ ;;
+esac
+
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <stdio.h>
+#include <signal.h>
+#include <sys/procfs.h>
+#include <sys/stropts.h>
+#include <poll.h>
+
+#ifdef HAVE_MP_PROCFS
+#define PIOCSTOP PCSTOP
+#define POLLWANT POLLWRNORM
+#define PROC "/proc/%d/ctl"
+#define PROC_MODE "w"
+int IOCTL (int fd, int cmd, int arg) {
+ return write (fd, &cmd, sizeof cmd);
+}
+#else
+#define POLLWANT POLLPRI
+#define PROC "/proc/%d"
+#define PROC_MODE "r+"
+#define IOCTL ioctl
+#endif
+
+main()
+{
+ int pid;
+ char proc[32];
+ FILE *pfp;
+ struct pollfd pfd;
+
+ if ((pid = fork()) == 0) {
+ pause();
+ exit(0);
+ }
+ sprintf(proc, PROC, pid);
+ if ((pfp = fopen(proc, PROC_MODE)) == NULL)
+ goto fail;
+ if (IOCTL(fileno(pfp), PIOCSTOP, NULL) < 0)
+ goto fail;
+ pfd.fd = fileno(pfp);
+ pfd.events = POLLWANT;
+ if (poll(&pfd, 1, 0) < 0)
+ goto fail;
+ if (!(pfd.revents & POLLWANT))
+ goto fail;
+ kill(pid, SIGKILL);
+ exit(0);
+fail:
+ kill(pid, SIGKILL);
+ exit(1);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_pollable_procfs=yes
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_pollable_procfs=no
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+
+echo "$as_me:$LINENO: result: $ac_cv_pollable_procfs" >&5
+echo "${ECHO_T}$ac_cv_pollable_procfs" >&6
+if test "$ac_cv_pollable_procfs" = yes
+then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_POLLABLE_PROCFS 1
+_ACEOF
+
+fi
+
+
+echo "$as_me:$LINENO: checking for struct msghdr.msg_control" >&5
+echo $ECHO_N "checking for struct msghdr.msg_control... $ECHO_C" >&6
+if test "${ac_cv_member_struct_msghdr_msg_control+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <sys/socket.h>
+
+int
+main ()
+{
+static struct msghdr ac_aggr;
+if (ac_aggr.msg_control)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_member_struct_msghdr_msg_control=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <sys/socket.h>
+
+int
+main ()
+{
+static struct msghdr ac_aggr;
+if (sizeof ac_aggr.msg_control)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_member_struct_msghdr_msg_control=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_member_struct_msghdr_msg_control=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_member_struct_msghdr_msg_control" >&5
+echo "${ECHO_T}$ac_cv_member_struct_msghdr_msg_control" >&6
+if test $ac_cv_member_struct_msghdr_msg_control = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_MSGHDR_MSG_CONTROL 1
+_ACEOF
+
+
+fi
+
+echo "$as_me:$LINENO: checking for pr_syscall in struct prstatus" >&5
+echo $ECHO_N "checking for pr_syscall in struct prstatus... $ECHO_C" >&6
+if test "${ac_cv_struct_pr_syscall+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <sys/procfs.h>
+int
+main ()
+{
+#ifdef HAVE_MP_PROCFS
+pstatus_t s;
+s.pr_lwp.pr_syscall
+#else
+prstatus_t s;
+s.pr_syscall
+#endif
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_struct_pr_syscall=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_struct_pr_syscall=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+echo "$as_me:$LINENO: result: $ac_cv_struct_pr_syscall" >&5
+echo "${ECHO_T}$ac_cv_struct_pr_syscall" >&6
+if test "$ac_cv_struct_pr_syscall" = yes
+then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_PR_SYSCALL 1
+_ACEOF
+
+fi
+
+
+echo "$as_me:$LINENO: checking for struct T_conn_res.QUEUE_ptr" >&5
+echo $ECHO_N "checking for struct T_conn_res.QUEUE_ptr... $ECHO_C" >&6
+if test "${ac_cv_member_struct_T_conn_res_QUEUE_ptr+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <sys/stream.h>
+#include <sys/tihdr.h>
+
+int
+main ()
+{
+static struct T_conn_res ac_aggr;
+if (ac_aggr.QUEUE_ptr)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_member_struct_T_conn_res_QUEUE_ptr=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <sys/stream.h>
+#include <sys/tihdr.h>
+
+int
+main ()
+{
+static struct T_conn_res ac_aggr;
+if (sizeof ac_aggr.QUEUE_ptr)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_member_struct_T_conn_res_QUEUE_ptr=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_member_struct_T_conn_res_QUEUE_ptr=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_member_struct_T_conn_res_QUEUE_ptr" >&5
+echo "${ECHO_T}$ac_cv_member_struct_T_conn_res_QUEUE_ptr" >&6
+if test $ac_cv_member_struct_T_conn_res_QUEUE_ptr = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_T_CONN_RES_QUEUE_PTR 1
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking for struct T_conn_res.ACCEPTOR_id" >&5
+echo $ECHO_N "checking for struct T_conn_res.ACCEPTOR_id... $ECHO_C" >&6
+if test "${ac_cv_member_struct_T_conn_res_ACCEPTOR_id+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <sys/stream.h>
+#include <sys/tihdr.h>
+
+int
+main ()
+{
+static struct T_conn_res ac_aggr;
+if (ac_aggr.ACCEPTOR_id)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_member_struct_T_conn_res_ACCEPTOR_id=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <sys/stream.h>
+#include <sys/tihdr.h>
+
+int
+main ()
+{
+static struct T_conn_res ac_aggr;
+if (sizeof ac_aggr.ACCEPTOR_id)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_member_struct_T_conn_res_ACCEPTOR_id=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_member_struct_T_conn_res_ACCEPTOR_id=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_member_struct_T_conn_res_ACCEPTOR_id" >&5
+echo "${ECHO_T}$ac_cv_member_struct_T_conn_res_ACCEPTOR_id" >&6
+if test $ac_cv_member_struct_T_conn_res_ACCEPTOR_id = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_T_CONN_RES_ACCEPTOR_ID 1
+_ACEOF
+
+
+fi
+
+
+echo "$as_me:$LINENO: checking for struct __old_kernel_stat" >&5
+echo $ECHO_N "checking for struct __old_kernel_stat... $ECHO_C" >&6
+if test "${ac_cv_type_struct___old_kernel_stat+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <asm/stat.h>
+
+int
+main ()
+{
+if ((struct __old_kernel_stat *) 0)
+ return 0;
+if (sizeof (struct __old_kernel_stat))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_type_struct___old_kernel_stat=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_struct___old_kernel_stat=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_struct___old_kernel_stat" >&5
+echo "${ECHO_T}$ac_cv_type_struct___old_kernel_stat" >&6
+if test $ac_cv_type_struct___old_kernel_stat = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT___OLD_KERNEL_STAT 1
+_ACEOF
+
+
+fi
+
+
+echo "$as_me:$LINENO: checking for struct pt_all_user_regs" >&5
+echo $ECHO_N "checking for struct pt_all_user_regs... $ECHO_C" >&6
+if test "${ac_cv_type_struct_pt_all_user_regs+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <sys/ptrace.h>
+
+int
+main ()
+{
+if ((struct pt_all_user_regs *) 0)
+ return 0;
+if (sizeof (struct pt_all_user_regs))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_type_struct_pt_all_user_regs=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_struct_pt_all_user_regs=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_struct_pt_all_user_regs" >&5
+echo "${ECHO_T}$ac_cv_type_struct_pt_all_user_regs" >&6
+if test $ac_cv_type_struct_pt_all_user_regs = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_PT_ALL_USER_REGS 1
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking for struct ia64_fpreg" >&5
+echo $ECHO_N "checking for struct ia64_fpreg... $ECHO_C" >&6
+if test "${ac_cv_type_struct_ia64_fpreg+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <sys/ptrace.h>
+
+int
+main ()
+{
+if ((struct ia64_fpreg *) 0)
+ return 0;
+if (sizeof (struct ia64_fpreg))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_type_struct_ia64_fpreg=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_struct_ia64_fpreg=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_struct_ia64_fpreg" >&5
+echo "${ECHO_T}$ac_cv_type_struct_ia64_fpreg" >&6
+if test $ac_cv_type_struct_ia64_fpreg = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_IA64_FPREG 1
+_ACEOF
+
+
+fi
+
+
+echo "$as_me:$LINENO: checking for struct user_desc" >&5
+echo $ECHO_N "checking for struct user_desc... $ECHO_C" >&6
+if test "${ac_cv_type_struct_user_desc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <asm/ldt.h>
+
+int
+main ()
+{
+if ((struct user_desc *) 0)
+ return 0;
+if (sizeof (struct user_desc))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_type_struct_user_desc=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_struct_user_desc=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_struct_user_desc" >&5
+echo "${ECHO_T}$ac_cv_type_struct_user_desc" >&6
+if test $ac_cv_type_struct_user_desc = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_USER_DESC 1
+_ACEOF
+
+
+fi
+
+
+echo "$as_me:$LINENO: checking whether sys_errlist is declared" >&5
+echo $ECHO_N "checking whether sys_errlist is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl_sys_errlist+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+#ifndef sys_errlist
+ char *p = (char *) sys_errlist;
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_have_decl_sys_errlist=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_have_decl_sys_errlist=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_have_decl_sys_errlist" >&5
+echo "${ECHO_T}$ac_cv_have_decl_sys_errlist" >&6
+if test $ac_cv_have_decl_sys_errlist = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_SYS_ERRLIST 1
+_ACEOF
+
+
+else
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_SYS_ERRLIST 0
+_ACEOF
+
+
+fi
+
+
+echo "$as_me:$LINENO: checking whether sys_siglist is declared" >&5
+echo $ECHO_N "checking whether sys_siglist is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl_sys_siglist+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <signal.h>
+
+int
+main ()
+{
+#ifndef sys_siglist
+ char *p = (char *) sys_siglist;
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_have_decl_sys_siglist=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_have_decl_sys_siglist=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_have_decl_sys_siglist" >&5
+echo "${ECHO_T}$ac_cv_have_decl_sys_siglist" >&6
+if test $ac_cv_have_decl_sys_siglist = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_SYS_SIGLIST 1
+_ACEOF
+
+
+else
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_SYS_SIGLIST 0
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking whether _sys_siglist is declared" >&5
+echo $ECHO_N "checking whether _sys_siglist is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl__sys_siglist+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <signal.h>
+
+int
+main ()
+{
+#ifndef _sys_siglist
+ char *p = (char *) _sys_siglist;
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_have_decl__sys_siglist=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_have_decl__sys_siglist=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_have_decl__sys_siglist" >&5
+echo "${ECHO_T}$ac_cv_have_decl__sys_siglist" >&6
+if test $ac_cv_have_decl__sys_siglist = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL__SYS_SIGLIST 1
+_ACEOF
+
+
+else
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL__SYS_SIGLIST 0
+_ACEOF
+
+
+fi
+
+
+
+# Extract the first word of "perl", so it can be a program name with args.
+set dummy perl; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_PERL+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $PERL in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PERL="$PERL" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ ;;
+esac
+fi
+PERL=$ac_cv_path_PERL
+
+if test -n "$PERL"; then
+ echo "$as_me:$LINENO: result: $PERL" >&5
+echo "${ECHO_T}$PERL" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+
+ ac_config_files="$ac_config_files Makefile"
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems. If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+{
+ (set) 2>&1 |
+ case `(ac_space=' '; set | grep ac_space) 2>&1` in
+ *ac_space=\ *)
+ # `set' does not quote correctly, so add quotes (double-quote
+ # substitution turns \\\\ into \\, and sed turns \\ into \).
+ sed -n \
+ "s/'/'\\\\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+ ;;
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n \
+ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+ ;;
+ esac;
+} |
+ sed '
+ t clear
+ : clear
+ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+ t end
+ /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+ : end' >>confcache
+if diff $cache_file confcache >/dev/null 2>&1; then :; else
+ if test -w $cache_file; then
+ test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
+ cat confcache >$cache_file
+ else
+ echo "not updating unwritable cache $cache_file"
+ fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# VPATH may cause trouble with some makes, so we remove $(srcdir),
+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=/{
+s/:*\$(srcdir):*/:/;
+s/:*\${srcdir}:*/:/;
+s/:*@srcdir@:*/:/;
+s/^\([^=]*=[ ]*\):*/\1/;
+s/:*$//;
+s/^[^=]*=[ ]*$//;
+}'
+fi
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+ # 1. Remove the extension, and $U if already installed.
+ ac_i=`echo "$ac_i" |
+ sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
+ # 2. Add them.
+ ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
+ ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${LINUX_TRUE}" && test -z "${LINUX_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"LINUX\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"LINUX\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${I386_TRUE}" && test -z "${I386_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"I386\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"I386\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${X86_64_TRUE}" && test -z "${X86_64_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"X86_64\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"X86_64\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${SUNOS4_TRUE}" && test -z "${SUNOS4_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"SUNOS4\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"SUNOS4\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${SVR4_TRUE}" && test -z "${SVR4_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"SVR4\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"SVR4\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${FREEBSD_TRUE}" && test -z "${FREEBSD_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"FREEBSD\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"FREEBSD\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+: ${CONFIG_STATUS=./config.status}
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
+echo "$as_me: creating $CONFIG_STATUS" >&6;}
+cat >$CONFIG_STATUS <<_ACEOF
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+SHELL=\${CONFIG_SHELL-$SHELL}
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+## --------------------- ##
+## M4sh Initialization. ##
+## --------------------- ##
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+ # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+ set -o posix
+fi
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# Support unset when possible.
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+ as_unset=unset
+else
+ as_unset=false
+fi
+
+
+# Work around bugs in pre-3.0 UWIN ksh.
+$as_unset ENV MAIL MAILPATH
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+for as_var in \
+ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+ LC_TELEPHONE LC_TIME
+do
+ if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
+ eval $as_var=C; export $as_var
+ else
+ $as_unset $as_var
+ fi
+done
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+
+# Name of the executable.
+as_me=`$as_basename "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)$' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
+ /^X\/\(\/\/\)$/{ s//\1/; q; }
+ /^X\/\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+
+
+# PATH needs CR, and LINENO needs CR and PATH.
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ echo "#! /bin/sh" >conf$$.sh
+ echo "exit 0" >>conf$$.sh
+ chmod +x conf$$.sh
+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+ PATH_SEPARATOR=';'
+ else
+ PATH_SEPARATOR=:
+ fi
+ rm -f conf$$.sh
+fi
+
+
+ as_lineno_1=$LINENO
+ as_lineno_2=$LINENO
+ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+ test "x$as_lineno_1" != "x$as_lineno_2" &&
+ test "x$as_lineno_3" = "x$as_lineno_2" || {
+ # Find who we are. Look in the path if we contain no path at all
+ # relative or not.
+ case $0 in
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+
+ ;;
+ esac
+ # We did not find ourselves, most probably we were run as `sh COMMAND'
+ # in which case we are not to be found in the path.
+ if test "x$as_myself" = x; then
+ as_myself=$0
+ fi
+ if test ! -f "$as_myself"; then
+ { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
+echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ case $CONFIG_SHELL in
+ '')
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for as_base in sh bash ksh sh5; do
+ case $as_dir in
+ /*)
+ if ("$as_dir/$as_base" -c '
+ as_lineno_1=$LINENO
+ as_lineno_2=$LINENO
+ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+ test "x$as_lineno_1" != "x$as_lineno_2" &&
+ test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
+ $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
+ $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
+ CONFIG_SHELL=$as_dir/$as_base
+ export CONFIG_SHELL
+ exec "$CONFIG_SHELL" "$0" ${1+"$@"}
+ fi;;
+ esac
+ done
+done
+;;
+ esac
+
+ # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+ # uniformly replaced by the line number. The first 'sed' inserts a
+ # line-number line before each line; the second 'sed' does the real
+ # work. The second script uses 'N' to pair each line-number line
+ # with the numbered line, and appends trailing '-' during
+ # substitution so that $LINENO is not a special case at line end.
+ # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+ # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
+ sed '=' <$as_myself |
+ sed '
+ N
+ s,$,-,
+ : loop
+ s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+ t loop
+ s,-$,,
+ s,^['$as_cr_digits']*\n,,
+ ' >$as_me.lineno &&
+ chmod +x $as_me.lineno ||
+ { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
+echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
+ { (exit 1); exit 1; }; }
+
+ # Don't try to exec as it changes $[0], causing all sort of problems
+ # (the dirname of $[0] is not the place where we might find the
+ # original and so on. Autoconf is especially sensible to this).
+ . ./$as_me.lineno
+ # Exit status is that of the last command.
+ exit
+}
+
+
+case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+ *c*,-n*) ECHO_N= ECHO_C='
+' ECHO_T=' ' ;;
+ *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+ *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
+esac
+
+if expr a : '\(a\)' >/dev/null 2>&1; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+ # We could just check for DJGPP; but this test a) works b) is more generic
+ # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+ if test -f conf$$.exe; then
+ # Don't use ln at all; we don't have any links
+ as_ln_s='cp -p'
+ else
+ as_ln_s='ln -s'
+ fi
+elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.file
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p=:
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+as_executable_p="test -f"
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.
+as_nl='
+'
+IFS=" $as_nl"
+
+# CDPATH.
+$as_unset CDPATH
+
+exec 6>&1
+
+# Open the log real soon, to keep \$[0] and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling. Logging --version etc. is OK.
+exec 5>>config.log
+{
+ echo
+ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+} >&5
+cat >&5 <<_CSEOF
+
+This file was extended by strace $as_me 4.5.12, which was
+generated by GNU Autoconf 2.59. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+ CONFIG_COMMANDS = $CONFIG_COMMANDS
+ $ $0 $@
+
+_CSEOF
+echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
+echo >&5
+_ACEOF
+
+# Files that config.status was made for.
+if test -n "$ac_config_files"; then
+ echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_headers"; then
+ echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_links"; then
+ echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_commands"; then
+ echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+ac_cs_usage="\
+\`$as_me' instantiates files from templates according to the
+current configuration.
+
+Usage: $0 [OPTIONS] [FILE]...
+
+ -h, --help print this help, then exit
+ -V, --version print version number, then exit
+ -q, --quiet do not print progress messages
+ -d, --debug don't remove temporary files
+ --recheck update $as_me by reconfiguring in the same conditions
+ --file=FILE[:TEMPLATE]
+ instantiate the configuration file FILE
+ --header=FILE[:TEMPLATE]
+ instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Configuration commands:
+$config_commands
+
+Report bugs to <bug-autoconf@gnu.org>."
+_ACEOF
+
+cat >>$CONFIG_STATUS <<_ACEOF
+ac_cs_version="\\
+strace config.status 4.5.12
+configured by $0, generated by GNU Autoconf 2.59,
+ with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
+
+Copyright (C) 2003 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+srcdir=$srcdir
+INSTALL="$INSTALL"
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+# If no file are specified by the user, then we need to provide default
+# value. By we need to know if files were specified by the user.
+ac_need_defaults=:
+while test $# != 0
+do
+ case $1 in
+ --*=*)
+ ac_option=`expr "x$1" : 'x\([^=]*\)='`
+ ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
+ ac_shift=:
+ ;;
+ -*)
+ ac_option=$1
+ ac_optarg=$2
+ ac_shift=shift
+ ;;
+ *) # This is not an option, so the user has probably given explicit
+ # arguments.
+ ac_option=$1
+ ac_need_defaults=false;;
+ esac
+
+ case $ac_option in
+ # Handling of the options.
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ ac_cs_recheck=: ;;
+ --version | --vers* | -V )
+ echo "$ac_cs_version"; exit 0 ;;
+ --he | --h)
+ # Conflict between --help and --header
+ { { echo "$as_me:$LINENO: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&5
+echo "$as_me: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&2;}
+ { (exit 1); exit 1; }; };;
+ --help | --hel | -h )
+ echo "$ac_cs_usage"; exit 0 ;;
+ --debug | --d* | -d )
+ debug=: ;;
+ --file | --fil | --fi | --f )
+ $ac_shift
+ CONFIG_FILES="$CONFIG_FILES $ac_optarg"
+ ac_need_defaults=false;;
+ --header | --heade | --head | --hea )
+ $ac_shift
+ CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
+ ac_need_defaults=false;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil | --si | --s)
+ ac_cs_silent=: ;;
+
+ # This is an error.
+ -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&5
+echo "$as_me: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&2;}
+ { (exit 1); exit 1; }; } ;;
+
+ *) ac_config_targets="$ac_config_targets $1" ;;
+
+ esac
+ shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+ exec 6>/dev/null
+ ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+if \$ac_cs_recheck; then
+ echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
+ exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+fi
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<_ACEOF
+#
+# INIT-COMMANDS section.
+#
+
+AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
+
+_ACEOF
+
+
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+for ac_config_target in $ac_config_targets
+do
+ case "$ac_config_target" in
+ # Handling of arguments.
+ "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+ "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+ "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+ *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
+echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+ { (exit 1); exit 1; }; };;
+ esac
+done
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used. Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+ test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience. Make it in the build tree
+# simply because there is no reason to put it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Create a temporary directory, and hook for its removal unless debugging.
+$debug ||
+{
+ trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
+ trap '{ (exit 1); exit 1; }' 1 2 13 15
+}
+
+# Create a (secure) tmp directory for tmp files.
+
+{
+ tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
+ test -n "$tmp" && test -d "$tmp"
+} ||
+{
+ tmp=./confstat$$-$RANDOM
+ (umask 077 && mkdir $tmp)
+} ||
+{
+ echo "$me: cannot create a temporary directory in ." >&2
+ { (exit 1); exit 1; }
+}
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<_ACEOF
+
+#
+# CONFIG_FILES section.
+#
+
+# No need to generate the scripts if there are no CONFIG_FILES.
+# This happens for instance when ./config.status config.h
+if test -n "\$CONFIG_FILES"; then
+ # Protect against being on the right side of a sed subst in config.status.
+ sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
+ s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
+s,@SHELL@,$SHELL,;t t
+s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
+s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
+s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
+s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
+s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
+s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
+s,@exec_prefix@,$exec_prefix,;t t
+s,@prefix@,$prefix,;t t
+s,@program_transform_name@,$program_transform_name,;t t
+s,@bindir@,$bindir,;t t
+s,@sbindir@,$sbindir,;t t
+s,@libexecdir@,$libexecdir,;t t
+s,@datadir@,$datadir,;t t
+s,@sysconfdir@,$sysconfdir,;t t
+s,@sharedstatedir@,$sharedstatedir,;t t
+s,@localstatedir@,$localstatedir,;t t
+s,@libdir@,$libdir,;t t
+s,@includedir@,$includedir,;t t
+s,@oldincludedir@,$oldincludedir,;t t
+s,@infodir@,$infodir,;t t
+s,@mandir@,$mandir,;t t
+s,@build_alias@,$build_alias,;t t
+s,@host_alias@,$host_alias,;t t
+s,@target_alias@,$target_alias,;t t
+s,@DEFS@,$DEFS,;t t
+s,@ECHO_C@,$ECHO_C,;t t
+s,@ECHO_N@,$ECHO_N,;t t
+s,@ECHO_T@,$ECHO_T,;t t
+s,@LIBS@,$LIBS,;t t
+s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
+s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
+s,@INSTALL_DATA@,$INSTALL_DATA,;t t
+s,@CYGPATH_W@,$CYGPATH_W,;t t
+s,@PACKAGE@,$PACKAGE,;t t
+s,@VERSION@,$VERSION,;t t
+s,@ACLOCAL@,$ACLOCAL,;t t
+s,@AUTOCONF@,$AUTOCONF,;t t
+s,@AUTOMAKE@,$AUTOMAKE,;t t
+s,@AUTOHEADER@,$AUTOHEADER,;t t
+s,@MAKEINFO@,$MAKEINFO,;t t
+s,@install_sh@,$install_sh,;t t
+s,@STRIP@,$STRIP,;t t
+s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t
+s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t
+s,@mkdir_p@,$mkdir_p,;t t
+s,@AWK@,$AWK,;t t
+s,@SET_MAKE@,$SET_MAKE,;t t
+s,@am__leading_dot@,$am__leading_dot,;t t
+s,@AMTAR@,$AMTAR,;t t
+s,@am__tar@,$am__tar,;t t
+s,@am__untar@,$am__untar,;t t
+s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t
+s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t
+s,@MAINT@,$MAINT,;t t
+s,@build@,$build,;t t
+s,@build_cpu@,$build_cpu,;t t
+s,@build_vendor@,$build_vendor,;t t
+s,@build_os@,$build_os,;t t
+s,@host@,$host,;t t
+s,@host_cpu@,$host_cpu,;t t
+s,@host_vendor@,$host_vendor,;t t
+s,@host_os@,$host_os,;t t
+s,@opsys@,$opsys,;t t
+s,@arch@,$arch,;t t
+s,@LINUX_TRUE@,$LINUX_TRUE,;t t
+s,@LINUX_FALSE@,$LINUX_FALSE,;t t
+s,@I386_TRUE@,$I386_TRUE,;t t
+s,@I386_FALSE@,$I386_FALSE,;t t
+s,@X86_64_TRUE@,$X86_64_TRUE,;t t
+s,@X86_64_FALSE@,$X86_64_FALSE,;t t
+s,@SUNOS4_TRUE@,$SUNOS4_TRUE,;t t
+s,@SUNOS4_FALSE@,$SUNOS4_FALSE,;t t
+s,@SVR4_TRUE@,$SVR4_TRUE,;t t
+s,@SVR4_FALSE@,$SVR4_FALSE,;t t
+s,@FREEBSD_TRUE@,$FREEBSD_TRUE,;t t
+s,@FREEBSD_FALSE@,$FREEBSD_FALSE,;t t
+s,@CC@,$CC,;t t
+s,@CFLAGS@,$CFLAGS,;t t
+s,@LDFLAGS@,$LDFLAGS,;t t
+s,@CPPFLAGS@,$CPPFLAGS,;t t
+s,@ac_ct_CC@,$ac_ct_CC,;t t
+s,@EXEEXT@,$EXEEXT,;t t
+s,@OBJEXT@,$OBJEXT,;t t
+s,@DEPDIR@,$DEPDIR,;t t
+s,@am__include@,$am__include,;t t
+s,@am__quote@,$am__quote,;t t
+s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t
+s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t
+s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t
+s,@CCDEPMODE@,$CCDEPMODE,;t t
+s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t
+s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t
+s,@WARNFLAGS@,$WARNFLAGS,;t t
+s,@CPP@,$CPP,;t t
+s,@EGREP@,$EGREP,;t t
+s,@PERL@,$PERL,;t t
+s,@LIBOBJS@,$LIBOBJS,;t t
+s,@LTLIBOBJS@,$LTLIBOBJS,;t t
+CEOF
+
+_ACEOF
+
+ cat >>$CONFIG_STATUS <<\_ACEOF
+ # Split the substitutions into bite-sized pieces for seds with
+ # small command number limits, like on Digital OSF/1 and HP-UX.
+ ac_max_sed_lines=48
+ ac_sed_frag=1 # Number of current file.
+ ac_beg=1 # First line for current file.
+ ac_end=$ac_max_sed_lines # Line after last line for current file.
+ ac_more_lines=:
+ ac_sed_cmds=
+ while $ac_more_lines; do
+ if test $ac_beg -gt 1; then
+ sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+ else
+ sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+ fi
+ if test ! -s $tmp/subs.frag; then
+ ac_more_lines=false
+ else
+ # The purpose of the label and of the branching condition is to
+ # speed up the sed processing (if there are no `@' at all, there
+ # is no need to browse any of the substitutions).
+ # These are the two extra sed commands mentioned above.
+ (echo ':t
+ /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
+ if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
+ else
+ ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
+ fi
+ ac_sed_frag=`expr $ac_sed_frag + 1`
+ ac_beg=$ac_end
+ ac_end=`expr $ac_end + $ac_max_sed_lines`
+ fi
+ done
+ if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds=cat
+ fi
+fi # test -n "$CONFIG_FILES"
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
+ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+ case $ac_file in
+ - | *:- | *:-:* ) # input from stdin
+ cat >$tmp/stdin
+ ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+ *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+ * ) ac_file_in=$ac_file.in ;;
+ esac
+
+ # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
+ ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ { if $as_mkdir_p; then
+ mkdir -p "$ac_dir"
+ else
+ as_dir="$ac_dir"
+ as_dirs=
+ while test ! -d "$as_dir"; do
+ as_dirs="$as_dir $as_dirs"
+ as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ done
+ test ! -n "$as_dirs" || mkdir $as_dirs
+ fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+ { (exit 1); exit 1; }; }; }
+
+ ac_builddir=.
+
+if test "$ac_dir" != .; then
+ ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+ # A "../" for each directory in $ac_dir_suffix.
+ ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+ ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+ .) # No --srcdir option. We are building in place.
+ ac_srcdir=.
+ if test -z "$ac_top_builddir"; then
+ ac_top_srcdir=.
+ else
+ ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+ fi ;;
+ [\\/]* | ?:[\\/]* ) # Absolute path.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir ;;
+ *) # Relative path.
+ ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+
+# Do not use `cd foo && pwd` to compute absolute paths, because
+# the directories may not exist.
+case `pwd` in
+.) ac_abs_builddir="$ac_dir";;
+*)
+ case "$ac_dir" in
+ .) ac_abs_builddir=`pwd`;;
+ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+ *) ac_abs_builddir=`pwd`/"$ac_dir";;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_builddir=${ac_top_builddir}.;;
+*)
+ case ${ac_top_builddir}. in
+ .) ac_abs_top_builddir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_srcdir=$ac_srcdir;;
+*)
+ case $ac_srcdir in
+ .) ac_abs_srcdir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_srcdir=$ac_top_srcdir;;
+*)
+ case $ac_top_srcdir in
+ .) ac_abs_top_srcdir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+ esac;;
+esac
+
+
+ case $INSTALL in
+ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+ *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
+ esac
+
+ if test x"$ac_file" != x-; then
+ { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+ rm -f "$ac_file"
+ fi
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
+ # use $as_me), people would be surprised to read:
+ # /* config.h. Generated by config.status. */
+ if test x"$ac_file" = x-; then
+ configure_input=
+ else
+ configure_input="$ac_file. "
+ fi
+ configure_input=$configure_input"Generated from `echo $ac_file_in |
+ sed 's,.*/,,'` by configure."
+
+ # First look for the input files in the build tree, otherwise in the
+ # src tree.
+ ac_file_inputs=`IFS=:
+ for f in $ac_file_in; do
+ case $f in
+ -) echo $tmp/stdin ;;
+ [\\/$]*)
+ # Absolute (can't be DOS-style, as IFS=:)
+ test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ echo "$f";;
+ *) # Relative
+ if test -f "$f"; then
+ # Build tree
+ echo "$f"
+ elif test -f "$srcdir/$f"; then
+ # Source tree
+ echo "$srcdir/$f"
+ else
+ # /dev/null tree
+ { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ fi;;
+ esac
+ done` || { (exit 1); exit 1; }
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+ sed "$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s,@configure_input@,$configure_input,;t t
+s,@srcdir@,$ac_srcdir,;t t
+s,@abs_srcdir@,$ac_abs_srcdir,;t t
+s,@top_srcdir@,$ac_top_srcdir,;t t
+s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
+s,@builddir@,$ac_builddir,;t t
+s,@abs_builddir@,$ac_abs_builddir,;t t
+s,@top_builddir@,$ac_top_builddir,;t t
+s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
+s,@INSTALL@,$ac_INSTALL,;t t
+" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
+ rm -f $tmp/stdin
+ if test x"$ac_file" != x-; then
+ mv $tmp/out $ac_file
+ else
+ cat $tmp/out
+ rm -f $tmp/out
+ fi
+
+done
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+#
+# CONFIG_HEADER section.
+#
+
+# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
+# NAME is the cpp macro being defined and VALUE is the value it is being given.
+#
+# ac_d sets the value in "#define NAME VALUE" lines.
+ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)'
+ac_dB='[ ].*$,\1#\2'
+ac_dC=' '
+ac_dD=',;t'
+# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
+ac_uB='$,\1#\2define\3'
+ac_uC=' '
+ac_uD=',;t'
+
+for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
+ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+ case $ac_file in
+ - | *:- | *:-:* ) # input from stdin
+ cat >$tmp/stdin
+ ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+ *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+ * ) ac_file_in=$ac_file.in ;;
+ esac
+
+ test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+
+ # First look for the input files in the build tree, otherwise in the
+ # src tree.
+ ac_file_inputs=`IFS=:
+ for f in $ac_file_in; do
+ case $f in
+ -) echo $tmp/stdin ;;
+ [\\/$]*)
+ # Absolute (can't be DOS-style, as IFS=:)
+ test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ # Do quote $f, to prevent DOS paths from being IFS'd.
+ echo "$f";;
+ *) # Relative
+ if test -f "$f"; then
+ # Build tree
+ echo "$f"
+ elif test -f "$srcdir/$f"; then
+ # Source tree
+ echo "$srcdir/$f"
+ else
+ # /dev/null tree
+ { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ fi;;
+ esac
+ done` || { (exit 1); exit 1; }
+ # Remove the trailing spaces.
+ sed 's/[ ]*$//' $ac_file_inputs >$tmp/in
+
+_ACEOF
+
+# Transform confdefs.h into two sed scripts, `conftest.defines' and
+# `conftest.undefs', that substitutes the proper values into
+# config.h.in to produce config.h. The first handles `#define'
+# templates, and the second `#undef' templates.
+# And first: Protect against being on the right side of a sed subst in
+# config.status. Protect against being in an unquoted here document
+# in config.status.
+rm -f conftest.defines conftest.undefs
+# Using a here document instead of a string reduces the quoting nightmare.
+# Putting comments in sed scripts is not portable.
+#
+# `end' is used to avoid that the second main sed command (meant for
+# 0-ary CPP macros) applies to n-ary macro definitions.
+# See the Autoconf documentation for `clear'.
+cat >confdef2sed.sed <<\_ACEOF
+s/[\\&,]/\\&/g
+s,[\\$`],\\&,g
+t clear
+: clear
+s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
+t end
+s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
+: end
+_ACEOF
+# If some macros were called several times there might be several times
+# the same #defines, which is useless. Nevertheless, we may not want to
+# sort them, since we want the *last* AC-DEFINE to be honored.
+uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines
+sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs
+rm -f confdef2sed.sed
+
+# This sed command replaces #undef with comments. This is necessary, for
+# example, in the case of _POSIX_SOURCE, which is predefined and required
+# on some systems where configure will not decide to define it.
+cat >>conftest.undefs <<\_ACEOF
+s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
+_ACEOF
+
+# Break up conftest.defines because some shells have a limit on the size
+# of here documents, and old seds have small limits too (100 cmds).
+echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
+echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
+echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
+echo ' :' >>$CONFIG_STATUS
+rm -f conftest.tail
+while grep . conftest.defines >/dev/null
+do
+ # Write a limited-size here document to $tmp/defines.sed.
+ echo ' cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
+ # Speed up: don't consider the non `#define' lines.
+ echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS
+ # Work around the forget-to-reset-the-flag bug.
+ echo 't clr' >>$CONFIG_STATUS
+ echo ': clr' >>$CONFIG_STATUS
+ sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS
+ echo 'CEOF
+ sed -f $tmp/defines.sed $tmp/in >$tmp/out
+ rm -f $tmp/in
+ mv $tmp/out $tmp/in
+' >>$CONFIG_STATUS
+ sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail
+ rm -f conftest.defines
+ mv conftest.tail conftest.defines
+done
+rm -f conftest.defines
+echo ' fi # grep' >>$CONFIG_STATUS
+echo >>$CONFIG_STATUS
+
+# Break up conftest.undefs because some shells have a limit on the size
+# of here documents, and old seds have small limits too (100 cmds).
+echo ' # Handle all the #undef templates' >>$CONFIG_STATUS
+rm -f conftest.tail
+while grep . conftest.undefs >/dev/null
+do
+ # Write a limited-size here document to $tmp/undefs.sed.
+ echo ' cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
+ # Speed up: don't consider the non `#undef'
+ echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS
+ # Work around the forget-to-reset-the-flag bug.
+ echo 't clr' >>$CONFIG_STATUS
+ echo ': clr' >>$CONFIG_STATUS
+ sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS
+ echo 'CEOF
+ sed -f $tmp/undefs.sed $tmp/in >$tmp/out
+ rm -f $tmp/in
+ mv $tmp/out $tmp/in
+' >>$CONFIG_STATUS
+ sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail
+ rm -f conftest.undefs
+ mv conftest.tail conftest.undefs
+done
+rm -f conftest.undefs
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
+ # use $as_me), people would be surprised to read:
+ # /* config.h. Generated by config.status. */
+ if test x"$ac_file" = x-; then
+ echo "/* Generated by configure. */" >$tmp/config.h
+ else
+ echo "/* $ac_file. Generated by configure. */" >$tmp/config.h
+ fi
+ cat $tmp/in >>$tmp/config.h
+ rm -f $tmp/in
+ if test x"$ac_file" != x-; then
+ if diff $ac_file $tmp/config.h >/dev/null 2>&1; then
+ { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
+echo "$as_me: $ac_file is unchanged" >&6;}
+ else
+ ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ { if $as_mkdir_p; then
+ mkdir -p "$ac_dir"
+ else
+ as_dir="$ac_dir"
+ as_dirs=
+ while test ! -d "$as_dir"; do
+ as_dirs="$as_dir $as_dirs"
+ as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ done
+ test ! -n "$as_dirs" || mkdir $as_dirs
+ fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+ { (exit 1); exit 1; }; }; }
+
+ rm -f $ac_file
+ mv $tmp/config.h $ac_file
+ fi
+ else
+ cat $tmp/config.h
+ rm -f $tmp/config.h
+ fi
+# Compute $ac_file's index in $config_headers.
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $ac_file | $ac_file:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $ac_file" >`(dirname $ac_file) 2>/dev/null ||
+$as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X$ac_file : 'X\(//\)[^/]' \| \
+ X$ac_file : 'X\(//\)$' \| \
+ X$ac_file : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X$ac_file |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`/stamp-h$_am_stamp_count
+done
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+#
+# CONFIG_COMMANDS section.
+#
+for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
+ ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
+ ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
+ ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
+$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_dest" : 'X\(//\)[^/]' \| \
+ X"$ac_dest" : 'X\(//\)$' \| \
+ X"$ac_dest" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$ac_dest" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ { if $as_mkdir_p; then
+ mkdir -p "$ac_dir"
+ else
+ as_dir="$ac_dir"
+ as_dirs=
+ while test ! -d "$as_dir"; do
+ as_dirs="$as_dir $as_dirs"
+ as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ done
+ test ! -n "$as_dirs" || mkdir $as_dirs
+ fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+ { (exit 1); exit 1; }; }; }
+
+ ac_builddir=.
+
+if test "$ac_dir" != .; then
+ ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+ # A "../" for each directory in $ac_dir_suffix.
+ ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+ ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+ .) # No --srcdir option. We are building in place.
+ ac_srcdir=.
+ if test -z "$ac_top_builddir"; then
+ ac_top_srcdir=.
+ else
+ ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+ fi ;;
+ [\\/]* | ?:[\\/]* ) # Absolute path.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir ;;
+ *) # Relative path.
+ ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+
+# Do not use `cd foo && pwd` to compute absolute paths, because
+# the directories may not exist.
+case `pwd` in
+.) ac_abs_builddir="$ac_dir";;
+*)
+ case "$ac_dir" in
+ .) ac_abs_builddir=`pwd`;;
+ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+ *) ac_abs_builddir=`pwd`/"$ac_dir";;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_builddir=${ac_top_builddir}.;;
+*)
+ case ${ac_top_builddir}. in
+ .) ac_abs_top_builddir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_srcdir=$ac_srcdir;;
+*)
+ case $ac_srcdir in
+ .) ac_abs_srcdir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_srcdir=$ac_top_srcdir;;
+*)
+ case $ac_top_srcdir in
+ .) ac_abs_top_srcdir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+ esac;;
+esac
+
+
+ { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
+echo "$as_me: executing $ac_dest commands" >&6;}
+ case $ac_dest in
+ depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
+ # Strip MF so we end up with the name of the file.
+ mf=`echo "$mf" | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile or not.
+ # We used to match only the files named `Makefile.in', but
+ # some people rename them; so instead we look at the file content.
+ # Grep'ing the first line is not enough: some people post-process
+ # each Makefile.in and add a new line on top of each file to say so.
+ # So let's grep whole file.
+ if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
+ dirpart=`(dirname "$mf") 2>/dev/null ||
+$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$mf" : 'X\(//\)[^/]' \| \
+ X"$mf" : 'X\(//\)$' \| \
+ X"$mf" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$mf" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ else
+ continue
+ fi
+ # Extract the definition of DEPDIR, am__include, and am__quote
+ # from the Makefile without running `make'.
+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+ test -z "$DEPDIR" && continue
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
+ test -z "am__include" && continue
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+ # When using ansi2knr, U may be empty or an underscore; expand it
+ U=`sed -n 's/^U = //p' < "$mf"`
+ # Find all dependency output files, they are included files with
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
+ # simplest approach to changing $(DEPDIR) to its actual value in the
+ # expansion.
+ for file in `sed -n "
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+ # Make sure the directory exists.
+ test -f "$dirpart/$file" && continue
+ fdir=`(dirname "$file") 2>/dev/null ||
+$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$file" : 'X\(//\)[^/]' \| \
+ X"$file" : 'X\(//\)$' \| \
+ X"$file" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ { if $as_mkdir_p; then
+ mkdir -p $dirpart/$fdir
+ else
+ as_dir=$dirpart/$fdir
+ as_dirs=
+ while test ! -d "$as_dir"; do
+ as_dirs="$as_dir $as_dirs"
+ as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ done
+ test ! -n "$as_dirs" || mkdir $as_dirs
+ fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5
+echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;}
+ { (exit 1); exit 1; }; }; }
+
+ # echo "creating $dirpart/$file"
+ echo '# dummy' > "$dirpart/$file"
+ done
+done
+ ;;
+ esac
+done
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+{ (exit 0); exit 0; }
+_ACEOF
+chmod +x $CONFIG_STATUS
+ac_clean_files=$ac_clean_files_save
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded. So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status. When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+ ac_cs_success=:
+ ac_config_status_args=
+ test "$silent" = yes &&
+ ac_config_status_args="$ac_config_status_args --quiet"
+ exec 5>/dev/null
+ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+ exec 5>>config.log
+ # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+ # would make configure fail if this is the last instruction.
+ $ac_cs_success || { (exit 1); exit 1; }
+fi
+
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..7b84f75
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,225 @@
+dnl Process this file with autoconf to create configure. Use autoreconf.
+AC_PREREQ(2.57)
+AC_INIT([strace],[4.5.12])
+AC_CONFIG_SRCDIR([strace.c])
+AM_CONFIG_HEADER([config.h])
+AM_INIT_AUTOMAKE([foreign check-news dist-bzip2])
+AM_MAINTAINER_MODE
+AC_CANONICAL_HOST
+
+AC_MSG_CHECKING([for supported operating system])
+case "$host_os" in
+linux*)
+ opsys=linux
+ AC_DEFINE([LINUX], 1, [Define for the Linux operating system.])
+ ;;
+sunos4*)
+ opsys=sunos4
+ AC_DEFINE([SUNOS4], 1, [Define for the SunOS 4.x operating system.])
+ ;;
+solaris2* | sysv[[45]]* | irix[[56]]*)
+ opsys=svr4
+ AC_DEFINE([SVR4], 1, [Define for the System V release 4 operating
+system or a derivative like Solaris 2.x or Irix 5.x.])
+ case "$host_os" in
+ sysv4.2uw*)
+ AC_DEFINE(UNIXWARE, 2, [Define for UnixWare systems.])
+ ;;
+ sysv5*)
+ AC_DEFINE(UNIXWARE, 7, [Define for UnixWare systems.])
+ ;;
+ esac
+ ;;
+freebsd*)
+ opsys=freebsd
+ AC_DEFINE([FREEBSD], 1, [Define for the FreeBSD operating system.])
+ ;;
+*)
+ AC_MSG_RESULT([NO!])
+ AC_MSG_ERROR([operating system $host_os is not supported by strace])
+ ;;
+esac
+AC_MSG_RESULT($opsys)
+
+AC_MSG_CHECKING([for supported architecture])
+case "$host_cpu" in
+i[[3456]]86|pentium)
+ arch=i386
+ AC_DEFINE([I386], 1, [Define for the i386 architecture.])
+ ;;
+ia64)
+ arch=ia64
+ AC_DEFINE([IA64], 1, [Define for the IA64 architecture.])
+ ;;
+m68k)
+ arch=m68k
+ AC_DEFINE([M68K], 1, [Define for the m68k architecture.])
+ ;;
+sparc64*)
+ arch=sparc64
+ AC_DEFINE([SPARC64], 1, [Define for the SPARC64 architecture.])
+ ;;
+sparc*)
+ arch=sparc
+ AC_DEFINE([SPARC], 1, [Define for the SPARC architecture.])
+ ;;
+mips*)
+ arch=mips
+ AC_DEFINE([MIPS], 1, [Define for the MIPS architecture.])
+ ;;
+alpha*)
+ arch=alpha
+ AC_DEFINE([ALPHA], 1, [Define for the Alpha architecture.])
+ ;;
+powerpc*)
+ arch=powerpc
+ AC_DEFINE([POWERPC], 1, [Define for the PowerPC architecture.])
+ ;;
+arm*)
+ arch=arm
+ AC_DEFINE([ARM], 1, [Define for the ARM architecture.])
+ ;;
+s390)
+ arch=s390
+ AC_DEFINE([S390], 1, [Define for the S390 architecture.])
+ ;;
+s390x)
+ arch=s390x
+ AC_DEFINE([S390X], 1, [Define for the S390x architecture.])
+ ;;
+hppa*|parisc*)
+ arch=hppa
+ AC_DEFINE([HPPA], 1, [Define for the HPPA architecture.])
+ ;;
+sh)
+ arch=sh
+ AC_DEFINE([SH], 1, [Define for the SH architecture.])
+ ;;
+sh64)
+ arch=sh64
+ AC_DEFINE([SH64], 1, [Define for the SH64 architecture.])
+ ;;
+x86?64*)
+ arch=x86_64
+ AC_DEFINE([X86_64], 1, [Define for the AMD x86-64 architecture.])
+ ;;
+*)
+ AC_MSG_RESULT([NO!])
+ AC_MSG_ERROR([architecture $host_cpu is not supported by strace])
+ ;;
+esac
+AC_MSG_RESULT($arch)
+
+AC_SUBST(opsys)
+AC_SUBST(arch)
+
+AM_CONDITIONAL([LINUX], [test x$opsys = xlinux])
+AM_CONDITIONAL([I386], [test x$arch = xi386])
+AM_CONDITIONAL([X86_64], [test x$arch = xx86_64])
+AM_CONDITIONAL([SUNOS4], [test x$opsys = xsunos4])
+AM_CONDITIONAL([SVR4], [test x$opsys = xsvr4])
+AM_CONDITIONAL([FREEBSD], [test x$opsys = xfreebsd])
+
+AC_PROG_CC
+AC_GNU_SOURCE
+
+AC_INCLUDEDIR
+
+if test "x$opsys" = "xsunos4" && test "x$arch" = "xsparc"
+then
+ AC_MSG_CHECKING(for valid machine include directory)
+ if test -d "$includedir/sun4"
+ then
+ rm -f machine
+ ln -s $includedir/sun4 machine
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(SUNOS4_KERNEL_ARCH_KLUDGE, 1, [
+Define if you are have a SPARC with SUNOS4 and your want a version
+of strace that will work on sun4, sun4c and sun4m kernel architectures.
+Only useful if you have a symbolic link from machine to /usr/include/sun4
+in the compilation directory.])
+ else
+ AC_MSG_RESULT(no)
+ fi
+fi
+
+AC_WARNFLAGS
+if test "x$opsys" = "xsunos4"
+then
+ if test -n "$GCC"
+ then
+ # SunOS 4.x header files don't declare int functions.
+ WARNFLAGS="$WARNFLAGS -Wno-implicit"
+ fi
+fi
+
+AC_PROG_CPP
+AC_PROG_GCC_TRADITIONAL
+AC_PROG_INSTALL
+AC_C_CONST
+AC_HEADER_STDC
+AC_HEADER_DIRENT
+AC_HEADER_STAT
+AC_CHECK_MEMBERS([struct stat.st_blksize,
+ struct stat.st_blocks,
+ struct stat.st_aclcnt,
+ struct stat.st_flags,
+ struct stat.st_fstype,
+ struct stat.st_gen,
+ struct stat.st_level,
+ struct stat.st_rdev])
+AC_STAT64
+
+AC_TYPE_SIGNAL
+AC_TYPE_UID_T
+AC_TYPE_MODE_T
+AC_TYPE_GETGROUPS
+AC_HEADER_MAJOR
+AC_CHECK_TYPES([sig_atomic_t, siginfo_t],,, [#include <signal.h>])
+AC_CHECK_MEMBERS([struct sockaddr_in6.sin6_scope_id],,,
+[#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>])
+AC_CHECK_TYPES([long long])
+AC_LITTLE_ENDIAN_LONG_LONG
+AC_OFF_T_IS_LONG_LONG
+AC_RLIM_T_IS_LONG_LONG
+AC_CHECK_TYPES([struct opthdr],,, [#include <sys/socket.h>])
+AC_CHECK_TYPES([struct t_opthdr],,, [#include <sys/tiuser.h>])
+
+if test x$opsys != xlinux; then
+AC_CHECK_LIB(nsl, main)
+fi
+
+AC_CHECK_FUNCS(sigaction strerror strsignal pread sys_siglist _sys_siglist getdents mctl prctl sendmsg inet_ntop if_indextoname)
+AC_CHECK_HEADERS([sys/reg.h sys/filio.h sys/acl.h sys/asynch.h sys/door.h stropts.h sys/conf.h sys/stream.h sys/tihdr.h sys/tiuser.h sys/sysconfig.h ioctls.h sys/ioctl.h sys/ptrace.h termio.h linux/ptrace.h asm/reg.h sys/uio.h sys/aio.h poll.h sys/poll.h sys/vfs.h asm/sysmips.h linux/utsname.h sys/nscsys.h mqueue.h sys/epoll.h libaio.h], [], [])
+AC_CHECK_HEADERS([linux/icmp.h linux/in6.h linux/netlink.h linux/if_packet.h],
+ [], [], [#include <linux/socket.h>])
+AC_CHECK_HEADERS([asm/sigcontext.h], [], [], [#include <signal.h>])
+AC_CHECK_HEADERS([netinet/tcp.h netinet/udp.h],,, [#include <netinet/in.h>])
+
+AC_MP_PROCFS
+AC_POLLABLE_PROCFS
+
+AC_CHECK_MEMBERS([struct msghdr.msg_control],,, [#include <sys/socket.h>])
+AC_STRUCT_PR_SYSCALL
+
+AC_CHECK_MEMBERS([struct T_conn_res.QUEUE_ptr,
+ struct T_conn_res.ACCEPTOR_id],,,
+[#include <sys/stream.h>
+#include <sys/tihdr.h>])
+
+AC_CHECK_TYPES([struct __old_kernel_stat],,, [#include <asm/stat.h>])
+
+AC_CHECK_TYPES([struct pt_all_user_regs, struct ia64_fpreg],,,
+ [#include <sys/ptrace.h>])
+
+AC_CHECK_TYPES([struct user_desc],,, [#include <asm/ldt.h>])
+
+AC_CHECK_DECLS([sys_errlist])
+AC_CHECK_DECLS([sys_siglist, _sys_siglist],,, [#include <signal.h>])
+
+AC_PATH_PROG([PERL], [perl])
+
+AC_CONFIG_FILES([Makefile])
+AC_OUTPUT
diff --git a/defs.h b/defs.h
new file mode 100644
index 0000000..2e75fed
--- /dev/null
+++ b/defs.h
@@ -0,0 +1,602 @@
+/*
+ * Copyright (c) 1991, 1992 Paul Kranenburg <pk@cs.few.eur.nl>
+ * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
+ * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
+ * 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.
+ *
+ * $Id: defs.h,v 1.59 2005/06/08 20:45:28 roland Exp $
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#ifdef linux
+#include <features.h>
+#endif
+
+#ifdef _LARGEFILE64_SOURCE
+/* This is the macro everything checks before using foo64 names. */
+# ifndef _LFS64_LARGEFILE
+# define _LFS64_LARGEFILE 1
+# endif
+#endif
+
+/* configuration section */
+#ifndef MAX_QUALS
+#if defined(LINUX) && defined(MIPS)
+#define MAX_QUALS 5000 /* maximum number of syscalls, signals, etc. */
+#else
+#define MAX_QUALS 2048 /* maximum number of syscalls, signals, etc. */
+#endif
+#endif
+#ifndef DEFAULT_STRLEN
+#define DEFAULT_STRLEN 32 /* default maximum # of bytes printed in
+ `printstr', change with `-s' switch */
+#endif
+#ifndef DEFAULT_ACOLUMN
+#define DEFAULT_ACOLUMN 40 /* default alignment column for results */
+#endif
+#ifndef MAX_ARGS
+#define MAX_ARGS 32 /* maximum number of args to a syscall */
+#endif
+#ifndef DEFAULT_SORTBY
+#define DEFAULT_SORTBY "time" /* default sorting method for call profiling */
+#endif
+
+#include <sys/types.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <ctype.h>
+#include <string.h>
+#include <time.h>
+#include <sys/time.h>
+#include <errno.h>
+
+#ifdef STDC_HEADERS
+#include <stddef.h>
+#endif /* STDC_HEADERS */
+
+#ifdef HAVE_SIGINFO_T
+#include <signal.h>
+#endif
+
+#if defined(LINUX)
+# if defined(SPARC) || defined(SPARC64)
+# define LINUXSPARC
+# endif
+# if defined(ALPHA)
+# define LINUX_64BIT
+# endif
+# if defined(X86_64)
+# define LINUX_X86_64
+# endif
+#endif
+
+#if defined(SVR4) || defined(FREEBSD)
+#define USE_PROCFS
+#else
+#undef USE_PROCFS
+#endif
+
+#ifdef FREEBSD
+#ifndef I386
+#error "FreeBSD support is only for i386 arch right now."
+#endif
+#include <machine/psl.h>
+#include <machine/reg.h>
+#include <sys/syscall.h>
+#endif
+
+#ifdef USE_PROCFS
+#include <sys/procfs.h>
+#ifdef HAVE_MP_PROCFS
+#include <sys/uio.h>
+#endif
+#ifdef FREEBSD
+#include <sys/pioctl.h>
+#endif /* FREEBSD */
+#else /* !USE_PROCFS */
+#if (defined(LINUXSPARC) || defined (LINUX_X86_64)) && defined(__GLIBC__)
+#include <sys/ptrace.h>
+#else
+/* Work around awkward prototype in ptrace.h. */
+#define ptrace xptrace
+#include <sys/ptrace.h>
+#undef ptrace
+#ifdef POWERPC
+#define __KERNEL__
+#include <asm/ptrace.h>
+#undef __KERNEL__
+#endif
+#ifdef __STDC__
+#ifdef LINUX
+extern long ptrace(int, int, char *, long);
+#else /* !LINUX */
+extern int ptrace(int, int, char *, int, ...);
+#endif /* !LINUX */
+#else /* !__STDC__ */
+extern int ptrace();
+#endif /* !__STDC__ */
+#endif /* !LINUXSPARC */
+#endif /* !SVR4 */
+
+#ifdef LINUX
+#if !defined(__GLIBC__)
+#define PTRACE_PEEKUSER PTRACE_PEEKUSR
+#define PTRACE_POKEUSER PTRACE_POKEUSR
+#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 */
+#endif /* LINUX */
+
+#define SUPPORTED_PERSONALITIES 1
+#define DEFAULT_PERSONALITY 0
+
+#ifdef LINUXSPARC
+#include <linux/a.out.h>
+#include <asm/psr.h>
+#undef SUPPORTED_PERSONALITIES
+#if defined(SPARC64)
+#define SUPPORTED_PERSONALITIES 3
+#else
+#define SUPPORTED_PERSONALITIES 2
+#endif /* SPARC64 */
+#endif /* LINUXSPARC */
+
+#ifdef X86_64
+#undef SUPPORTED_PERSONALITIES
+#define SUPPORTED_PERSONALITIES 2
+#endif
+
+#ifdef SVR4
+#ifdef HAVE_MP_PROCFS
+extern int mp_ioctl (int f, int c, void *a, int s);
+#define IOCTL(f,c,a) mp_ioctl (f, c, a, sizeof *a)
+#define IOCTL_STATUS(t) \
+ pread (t->pfd_stat, &t->status, sizeof t->status, 0)
+#define IOCTL_WSTOP(t) \
+ (IOCTL (t->pfd, PCWSTOP, (char *)NULL) < 0 ? -1 : \
+ IOCTL_STATUS (t))
+#define PR_WHY pr_lwp.pr_why
+#define PR_WHAT pr_lwp.pr_what
+#define PR_REG pr_lwp.pr_context.uc_mcontext.gregs
+#define PR_FLAGS pr_lwp.pr_flags
+#define PR_SYSCALL pr_lwp.pr_syscall
+#define PR_INFO pr_lwp.pr_info
+#define PIOCSTIP PCSTOP
+#define PIOCSET PCSET
+#define PIOCRESET PCRESET
+#define PIOCSTRACE PCSTRACE
+#define PIOCSFAULT PCSFAULT
+#define PIOCWSTOP PCWSTOP
+#define PIOCSTOP PCSTOP
+#define PIOCSENTRY PCSENTRY
+#define PIOCSEXIT PCSEXIT
+#define PIOCRUN PCRUN
+#else
+#define IOCTL ioctl
+#define IOCTL_STATUS(t) ioctl (t->pfd, PIOCSTATUS, &t->status)
+#define IOCTL_WSTOP(t) ioctl (t->pfd, PIOCWSTOP, &t->status)
+#define PR_WHY pr_why
+#define PR_WHAT pr_what
+#define PR_REG pr_reg
+#define PR_FLAGS pr_flags
+#define PR_SYSCALL pr_syscall
+#define PR_INFO pr_info
+#endif
+#endif
+#ifdef FREEBSD
+#define IOCTL ioctl
+#define IOCTL_STATUS(t) ioctl (t->pfd, PIOCSTATUS, &t->status)
+#define IOCTL_WSTOP(t) ioctl (t->pfd, PIOCWAIT, &t->status)
+#define PIOCRUN PIOCCONT
+#define PIOCWSTOP PIOCWAIT
+#define PR_WHY why
+#define PR_WHAT val
+#define PR_FLAGS state
+/* from /usr/src/sys/miscfs/procfs/procfs_vnops.c,
+ status.state = 0 for running, 1 for stopped */
+#define PR_ASLEEP 1
+#define PR_SYSENTRY S_SCE
+#define PR_SYSEXIT S_SCX
+#define PR_SIGNALLED S_SIG
+#define PR_FAULTED S_CORE
+#endif
+
+/* Trace Control Block */
+struct tcb {
+ short flags; /* See below for TCB_ values */
+ int pid; /* Process Id of this entry */
+ long scno; /* System call number */
+ int u_nargs; /* System call arguments */
+ long u_arg[MAX_ARGS]; /* System call arguments */
+ int u_error; /* Error code */
+ long u_rval; /* (first) return value */
+#ifdef HAVE_LONG_LONG
+ long long u_lrval; /* long long return value */
+#endif
+ FILE *outf; /* Output file for this process */
+ const char *auxstr; /* Auxiliary info from syscall (see RVAL_STR) */
+ 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 */
+ /* Support for tracing forked processes */
+ struct tcb *parent; /* Parent of this process */
+ int nchildren; /* # of traced children */
+ int waitpid; /* pid(s) this process is waiting for */
+ int nzombies; /* # of formerly traced children now dead */
+#ifdef LINUX
+ int nclone_threads; /* # of nchildren with CLONE_THREAD */
+ int nclone_detached; /* # of nchildren with CLONE_DETACHED */
+ int nclone_waiting; /* clone threads in wait4 (TCB_SUSPENDED) */
+#endif
+ /* (1st arg of wait4()) */
+ long baddr; /* `Breakpoint' address */
+ long inst[2]; /* Instructions on above */
+ int pfd; /* proc file descriptor */
+#ifdef SVR4
+#ifdef HAVE_MP_PROCFS
+ int pfd_stat;
+ int pfd_as;
+ pstatus_t status;
+#else
+ prstatus_t status; /* procfs status structure */
+#endif
+#endif
+#ifdef FREEBSD
+ struct procfs_status status;
+ int pfd_reg;
+ int pfd_status;
+#endif
+};
+
+/* TCB flags */
+#define TCB_STARTUP 00001 /* We have just begun ptracing this process */
+#define TCB_INUSE 00002 /* This table entry is in use */
+#define TCB_INSYSCALL 00004 /* A system call is in progress */
+#define TCB_ATTACHED 00010 /* Process is not our own child */
+#define TCB_EXITING 00020 /* As far as we know, this process is exiting */
+#define TCB_SUSPENDED 00040 /* Process has done a wait(4), that can
+ not be allowed to complete just now */
+#define TCB_BPTSET 00100 /* "Breakpoint" set after fork(2) */
+#define TCB_SIGTRAPPED 00200 /* Process wanted to block SIGTRAP */
+#define TCB_FOLLOWFORK 00400 /* Process should have forks followed */
+#define TCB_REPRINT 01000 /* We should reprint this syscall on exit */
+#ifdef LINUX
+# if defined(ALPHA) || defined(SPARC) || defined(SPARC64) || defined(POWERPC) || defined(IA64) || defined(HPPA) || defined(SH) || defined(SH64) || defined(S390) || defined(S390X) || defined(ARM)
+# define TCB_WAITEXECVE 02000 /* ignore SIGTRAP after exceve */
+# endif
+# define TCB_CLONE_DETACHED 04000 /* CLONE_DETACHED set in creating syscall */
+# define TCB_CLONE_THREAD 010000 /* CLONE_THREAD set in creating syscall */
+# define TCB_GROUP_EXITING 020000 /* TCB_EXITING was exit_group, not _exit */
+# include <sys/syscall.h>
+# ifndef __NR_exit_group
+# /* Hack: Most headers around are too old to have __NR_exit_group. */
+# ifdef ALPHA
+# define __NR_exit_group 405
+# elif defined I386
+# define __NR_exit_group 252
+# elif defined IA64
+# define __NR_exit_group 1236
+# elif defined POWERPC
+# define __NR_exit_group 234
+# elif defined S390 || defined S390X
+# define __NR_exit_group 248
+# elif defined SPARC || defined SPARC64
+# define __NR_exit_group 188
+# endif /* ALPHA et al */
+# endif /* !__NR_exit_group */
+#endif /* LINUX */
+
+/* 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 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)
+
+struct xlat {
+ int val;
+ char *str;
+};
+
+/* Format of syscall return values */
+#define RVAL_DECIMAL 000 /* decimal format */
+#define RVAL_HEX 001 /* hex format */
+#define RVAL_OCTAL 002 /* octal format */
+#define RVAL_UDECIMAL 003 /* unsigned decimal format */
+#define RVAL_LDECIMAL 004 /* long decimal format */
+#define RVAL_LHEX 005 /* long hex format */
+#define RVAL_LOCTAL 006 /* long octal format */
+#define RVAL_LUDECIMAL 007 /* long unsigned decimal format */
+#define RVAL_MASK 007 /* mask for these values */
+
+#define RVAL_STR 010 /* Print `auxstr' field after return val */
+#define RVAL_NONE 020 /* Print nothing */
+
+#ifndef offsetof
+#define offsetof(type, member) (((char *) &(((type *) NULL)->member)) - \
+ ((char *) (type *) NULL))
+#endif /* !offsetof */
+
+/* get offset of member within a user struct */
+#define uoff(member) offsetof(struct user, member)
+
+#define TRACE_FILE 001 /* Trace file-related syscalls. */
+#define TRACE_IPC 002 /* Trace IPC-related syscalls. */
+#define TRACE_NETWORK 004 /* Trace network-related syscalls. */
+#define TRACE_PROCESS 010 /* Trace process-related syscalls. */
+#define TRACE_SIGNAL 020 /* Trace signal-related syscalls. */
+
+extern struct tcb **tcbtab;
+extern int qual_flags[];
+extern int debug, followfork, followvfork;
+extern int rflag, tflag, dtime, cflag, xflag, qflag;
+extern int acolumn;
+extern char *outfname;
+extern unsigned int nprocs, tcbtabsize;
+extern int max_strlen;
+extern struct tcb *tcp_last;
+
+#ifdef __STDC__
+#define P(args) args
+#else
+#define P(args) ()
+#endif
+
+extern int set_personality P((int personality));
+extern char *xlookup P((const struct xlat *, int));
+extern struct tcb *alloctcb P((int));
+extern struct tcb *pid2tcb P((int));
+extern void droptcb P((struct tcb *));
+extern int expand_tcbtab P((void));
+
+extern void set_sortby P((char *));
+extern void set_overhead P((int));
+extern void qualify P((char *));
+extern void newoutf P((struct tcb *));
+extern int get_scno P((struct tcb *));
+extern long known_scno P((struct tcb *));
+extern int trace_syscall P((struct tcb *));
+extern void printxval P((const struct xlat *, int, const char *));
+extern int printargs P((struct tcb *));
+extern int addflags P((const struct xlat *, int));
+extern int printflags P((const struct xlat *, int, const char *));
+extern int umoven P((struct tcb *, long, int, char *));
+extern int umovestr P((struct tcb *, long, int, char *));
+extern int upeek P((int, long, long *));
+extern void dumpiov P((struct tcb *, int, long));
+extern void dumpstr P((struct tcb *, long, int));
+extern void printstr P((struct tcb *, long, int));
+extern void printnum P((struct tcb *, long, char *));
+extern void printpath P((struct tcb *, long));
+extern void printpathn P((struct tcb *, long, int));
+extern void printtv P((struct tcb *, long));
+#ifdef HAVE_SIGINFO_T
+extern void printsiginfo P((siginfo_t *, int));
+#endif
+extern void printsock P((struct tcb *, long, int));
+extern void print_sock_optmgmt P((struct tcb *, long, int));
+extern void printrusage P((struct tcb *, long));
+extern void printuid P((const char *, unsigned long));
+extern int clearbpt P((struct tcb *));
+extern int setbpt P((struct tcb *));
+extern int sigishandled P((struct tcb *, int));
+extern void printcall P((struct tcb *));
+extern const char *signame P((int));
+extern void printsignal P((int));
+extern void printleader P((struct tcb *));
+extern void printtrailer P((struct tcb *));
+extern void tabto P((int));
+extern void call_summary P((FILE *));
+extern void printtv32 P((struct tcb*, long));
+extern void tprint_iov P((struct tcb *, unsigned long, unsigned long));
+
+#ifdef LINUX
+extern int internal_clone P((struct tcb *));
+#endif
+extern int internal_fork P((struct tcb *));
+extern int internal_exec P((struct tcb *));
+extern int internal_wait P((struct tcb *, int));
+extern int internal_exit P((struct tcb *));
+
+extern const struct ioctlent *ioctl_lookup P((long));
+extern const struct ioctlent *ioctl_next_match P((const struct ioctlent *));
+extern int ioctl_decode P((struct tcb *, long, long));
+extern int term_ioctl P((struct tcb *, long, long));
+extern int sock_ioctl P((struct tcb *, long, long));
+extern int proc_ioctl P((struct tcb *, int, int));
+extern int stream_ioctl P((struct tcb *, int, int));
+#ifdef LINUX
+extern int rtc_ioctl P((struct tcb *, long, long));
+#endif
+
+extern void tv_tv P((struct timeval *, int, int));
+extern int tv_nz P((struct timeval *));
+extern int tv_cmp P((struct timeval *, struct timeval *));
+extern double tv_float P((struct timeval *));
+extern void tv_add P((struct timeval *, struct timeval *, struct timeval *));
+extern void tv_sub P((struct timeval *, struct timeval *, struct timeval *));
+extern void tv_mul P((struct timeval *, struct timeval *, int));
+extern void tv_div P((struct timeval *, struct timeval *, int));
+
+#ifdef SUNOS4
+extern int fixvfork P((struct tcb *));
+#endif
+#if !(defined(LINUX) && !defined(SPARC) && !defined(SPARC64) && !defined(IA64))
+extern long getrval2 P((struct tcb *));
+#endif
+#ifdef USE_PROCFS
+extern int proc_open P((struct tcb *tcp, int attaching));
+#endif
+
+#define umove(pid, addr, objp) \
+ umoven((pid), (addr), sizeof *(objp), (char *) (objp))
+
+#ifdef __STDC__
+#ifdef __GNUC__
+extern void tprintf(const char *fmt, ...)
+ __attribute__ ((format (printf, 1, 2)));
+#else
+extern void tprintf(const char *fmt, ...);
+#endif
+#else
+extern void tprintf();
+#endif
+
+#ifndef HAVE_STRERROR
+const char *strerror P((int));
+#endif
+#ifndef HAVE_STRSIGNAL
+const char *strsignal P((int));
+#endif
+
+extern int current_personality;
+
+struct sysent {
+ int nargs;
+ int sys_flags;
+ int (*sys_func)();
+ const char *sys_name;
+ long native_scno; /* Match against SYS_* constants. */
+};
+
+extern const struct sysent *sysent;
+extern int nsyscalls;
+
+extern const char *const *errnoent;
+extern int nerrnos;
+
+struct ioctlent {
+ const char *doth;
+ const char *symbol;
+ unsigned long code;
+};
+
+extern const struct ioctlent *ioctlent;
+extern int nioctlents;
+
+extern const char *const *signalent;
+extern int nsignals;
+
+extern const struct ioctlent ioctlent0[];
+extern const int nioctlents0;
+extern const char *const signalent0[];
+extern const int nsignals0;
+
+#if SUPPORTED_PERSONALITIES >= 2
+extern const struct ioctlent ioctlent1[];
+extern const int nioctlents1;
+extern const char *const signalent1[];
+extern const int nsignals1;
+#endif /* SUPPORTED_PERSONALITIES >= 2 */
+
+#if SUPPORTED_PERSONALITIES >= 3
+extern const struct ioctlent ioctlent2[];
+extern const int nioctlents2;
+extern const char *const signalent2[];
+extern const int nsignals2;
+#endif /* SUPPORTED_PERSONALITIES >= 3 */
+
+#if defined(FREEBSD) || (defined(LINUX) \
+ && defined(POWERPC) && !defined(__powerpc64__)) \
+ || (defined (LINUX) && defined (MIPS) && !defined(__mips64))
+/* ARRGH! off_t args are aligned on 64 bit boundaries! */
+#define ALIGN64(tcp,arg) \
+do { \
+ if (arg % 2) \
+ memmove (&tcp->u_arg[arg], &tcp->u_arg[arg + 1], \
+ (tcp->u_nargs - arg - 1) * sizeof tcp->u_arg[0]); \
+} while (0)
+#else
+#define ALIGN64(tcp,arg) do { } while (0)
+#endif
+
+#if HAVE_LONG_LONG
+
+/* _l refers to the lower numbered u_arg,
+ * _h 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
+#endif
+
+#ifdef IA64
+extern long ia32;
+#endif
+
+extern int not_failing_only;
diff --git a/depcomp b/depcomp
new file mode 100755
index 0000000..9e5522d
--- /dev/null
+++ b/depcomp
@@ -0,0 +1,520 @@
+#! /bin/sh
+# depcomp - compile a program generating dependencies as side-effects
+
+scriptversion=2003-11-08.23
+
+# Copyright (C) 1999, 2000, 2003 Free Software Foundation, Inc.
+
+# 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, 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.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
+
+case $1 in
+ '')
+ echo "$0: No command. Try \`$0 --help' for more information." 1>&2
+ exit 1;
+ ;;
+ -h | --h*)
+ cat <<\EOF
+Usage: depcomp [--help] [--version] PROGRAM [ARGS]
+
+Run PROGRAMS ARGS to compile a file, generating dependencies
+as side-effects.
+
+Environment variables:
+ depmode Dependency tracking mode.
+ source Source file read by `PROGRAMS ARGS'.
+ object Object file output by `PROGRAMS ARGS'.
+ depfile Dependency file to output.
+ tmpdepfile Temporary file to use when outputing dependencies.
+ libtool Whether libtool is used (yes/no).
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+ exit 0
+ ;;
+ -v | --v*)
+ echo "depcomp $scriptversion"
+ exit 0
+ ;;
+esac
+
+if test -z "$depmode" || test -z "$source" || test -z "$object"; then
+ echo "depcomp: Variables source, object and depmode must be set" 1>&2
+ exit 1
+fi
+# `libtool' can also be set to `yes' or `no'.
+
+if test -z "$depfile"; then
+ base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'`
+ dir=`echo "$object" | sed 's,/.*$,/,'`
+ if test "$dir" = "$object"; then
+ dir=
+ fi
+ # FIXME: should be _deps on DOS.
+ depfile="$dir.deps/$base"
+fi
+
+tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
+
+rm -f "$tmpdepfile"
+
+# Some modes work just like other modes, but use different flags. We
+# parameterize here, but still list the modes in the big case below,
+# to make depend.m4 easier to write. Note that we *cannot* use a case
+# here, because this file can only contain one case statement.
+if test "$depmode" = hp; then
+ # HP compiler uses -M and no extra arg.
+ gccflag=-M
+ depmode=gcc
+fi
+
+if test "$depmode" = dashXmstdout; then
+ # This is just like dashmstdout with a different argument.
+ dashmflag=-xM
+ depmode=dashmstdout
+fi
+
+case "$depmode" in
+gcc3)
+## gcc 3 implements dependency tracking that does exactly what
+## we want. Yay! Note: for some reason libtool 1.4 doesn't like
+## it if -MD -MP comes after the -MF stuff. Hmm.
+ "$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ mv "$tmpdepfile" "$depfile"
+ ;;
+
+gcc)
+## There are various ways to get dependency output from gcc. Here's
+## why we pick this rather obscure method:
+## - Don't want to use -MD because we'd like the dependencies to end
+## up in a subdir. Having to rename by hand is ugly.
+## (We might end up doing this anyway to support other compilers.)
+## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
+## -MM, not -M (despite what the docs say).
+## - Using -M directly means running the compiler twice (even worse
+## than renaming).
+ if test -z "$gccflag"; then
+ gccflag=-MD,
+ fi
+ "$@" -Wp,"$gccflag$tmpdepfile"
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+ echo "$object : \\" > "$depfile"
+ alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
+## The second -e expression handles DOS-style file names with drive letters.
+ sed -e 's/^[^:]*: / /' \
+ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
+## This next piece of magic avoids the `deleted header file' problem.
+## The problem is that when a header file which appears in a .P file
+## is deleted, the dependency causes make to die (because there is
+## typically no way to rebuild the header). We avoid this by adding
+## dummy dependencies for each header file. Too bad gcc doesn't do
+## this for us directly.
+ tr ' ' '
+' < "$tmpdepfile" |
+## Some versions of gcc put a space before the `:'. On the theory
+## that the space means something, we add a space to the output as
+## well.
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly. Breaking it into two sed invocations is a workaround.
+ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+hp)
+ # This case exists only to let depend.m4 do its work. It works by
+ # looking at the text of this script. This case will never be run,
+ # since it is checked for above.
+ exit 1
+ ;;
+
+sgi)
+ if test "$libtool" = yes; then
+ "$@" "-Wp,-MDupdate,$tmpdepfile"
+ else
+ "$@" -MDupdate "$tmpdepfile"
+ fi
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+
+ if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
+ echo "$object : \\" > "$depfile"
+
+ # Clip off the initial element (the dependent). Don't try to be
+ # clever and replace this with sed code, as IRIX sed won't handle
+ # lines with more than a fixed number of characters (4096 in
+ # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
+ # the IRIX cc adds comments like `#:fec' to the end of the
+ # dependency line.
+ tr ' ' '
+' < "$tmpdepfile" \
+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
+ tr '
+' ' ' >> $depfile
+ echo >> $depfile
+
+ # The second pass generates a dummy entry for each header file.
+ tr ' ' '
+' < "$tmpdepfile" \
+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
+ >> $depfile
+ else
+ # The sourcefile does not contain any dependencies, so just
+ # store a dummy comment line, to avoid errors with the Makefile
+ # "include basename.Plo" scheme.
+ echo "#dummy" > "$depfile"
+ fi
+ rm -f "$tmpdepfile"
+ ;;
+
+aix)
+ # The C for AIX Compiler uses -M and outputs the dependencies
+ # in a .u file. In older versions, this file always lives in the
+ # current directory. Also, the AIX compiler puts `$object:' at the
+ # start of each line; $object doesn't have directory information.
+ # Version 6 uses the directory in both cases.
+ stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
+ tmpdepfile="$stripped.u"
+ if test "$libtool" = yes; then
+ "$@" -Wc,-M
+ else
+ "$@" -M
+ fi
+ stat=$?
+
+ if test -f "$tmpdepfile"; then :
+ else
+ stripped=`echo "$stripped" | sed 's,^.*/,,'`
+ tmpdepfile="$stripped.u"
+ fi
+
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+
+ if test -f "$tmpdepfile"; then
+ outname="$stripped.o"
+ # Each line is of the form `foo.o: dependent.h'.
+ # Do two passes, one to just change these to
+ # `$object: dependent.h' and one to simply `dependent.h:'.
+ sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
+ sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
+ else
+ # The sourcefile does not contain any dependencies, so just
+ # store a dummy comment line, to avoid errors with the Makefile
+ # "include basename.Plo" scheme.
+ echo "#dummy" > "$depfile"
+ fi
+ rm -f "$tmpdepfile"
+ ;;
+
+icc)
+ # Intel's C compiler understands `-MD -MF file'. However on
+ # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
+ # ICC 7.0 will fill foo.d with something like
+ # foo.o: sub/foo.c
+ # foo.o: sub/foo.h
+ # which is wrong. We want:
+ # sub/foo.o: sub/foo.c
+ # sub/foo.o: sub/foo.h
+ # sub/foo.c:
+ # sub/foo.h:
+ # ICC 7.1 will output
+ # foo.o: sub/foo.c sub/foo.h
+ # and will wrap long lines using \ :
+ # foo.o: sub/foo.c ... \
+ # sub/foo.h ... \
+ # ...
+
+ "$@" -MD -MF "$tmpdepfile"
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+ # Each line is of the form `foo.o: dependent.h',
+ # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
+ # Do two passes, one to just change these to
+ # `$object: dependent.h' and one to simply `dependent.h:'.
+ sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
+ # Some versions of the HPUX 10.20 sed can't process this invocation
+ # correctly. Breaking it into two sed invocations is a workaround.
+ sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
+ sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+tru64)
+ # The Tru64 compiler uses -MD to generate dependencies as a side
+ # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
+ # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
+ # dependencies in `foo.d' instead, so we check for that too.
+ # Subdirectories are respected.
+ dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+ test "x$dir" = "x$object" && dir=
+ base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+
+ if test "$libtool" = yes; then
+ tmpdepfile1="$dir.libs/$base.lo.d"
+ tmpdepfile2="$dir.libs/$base.d"
+ "$@" -Wc,-MD
+ else
+ tmpdepfile1="$dir$base.o.d"
+ tmpdepfile2="$dir$base.d"
+ "$@" -MD
+ fi
+
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile1" "$tmpdepfile2"
+ exit $stat
+ fi
+
+ if test -f "$tmpdepfile1"; then
+ tmpdepfile="$tmpdepfile1"
+ else
+ tmpdepfile="$tmpdepfile2"
+ fi
+ if test -f "$tmpdepfile"; then
+ sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
+ # That's a tab and a space in the [].
+ sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+ else
+ echo "#dummy" > "$depfile"
+ fi
+ rm -f "$tmpdepfile"
+ ;;
+
+#nosideeffect)
+ # This comment above is used by automake to tell side-effect
+ # dependency tracking mechanisms from slower ones.
+
+dashmstdout)
+ # Important note: in order to support this mode, a compiler *must*
+ # always write the preprocessed file to stdout, regardless of -o.
+ "$@" || exit $?
+
+ # Remove the call to Libtool.
+ if test "$libtool" = yes; then
+ while test $1 != '--mode=compile'; do
+ shift
+ done
+ shift
+ fi
+
+ # Remove `-o $object'.
+ IFS=" "
+ for arg
+ do
+ case $arg in
+ -o)
+ shift
+ ;;
+ $object)
+ shift
+ ;;
+ *)
+ set fnord "$@" "$arg"
+ shift # fnord
+ shift # $arg
+ ;;
+ esac
+ done
+
+ test -z "$dashmflag" && dashmflag=-M
+ # Require at least two characters before searching for `:'
+ # in the target name. This is to cope with DOS-style filenames:
+ # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
+ "$@" $dashmflag |
+ sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
+ rm -f "$depfile"
+ cat < "$tmpdepfile" > "$depfile"
+ tr ' ' '
+' < "$tmpdepfile" | \
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly. Breaking it into two sed invocations is a workaround.
+ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+dashXmstdout)
+ # This case only exists to satisfy depend.m4. It is never actually
+ # run, as this mode is specially recognized in the preamble.
+ exit 1
+ ;;
+
+makedepend)
+ "$@" || exit $?
+ # Remove any Libtool call
+ if test "$libtool" = yes; then
+ while test $1 != '--mode=compile'; do
+ shift
+ done
+ shift
+ fi
+ # X makedepend
+ shift
+ cleared=no
+ for arg in "$@"; do
+ case $cleared in
+ no)
+ set ""; shift
+ cleared=yes ;;
+ esac
+ case "$arg" in
+ -D*|-I*)
+ set fnord "$@" "$arg"; shift ;;
+ # Strip any option that makedepend may not understand. Remove
+ # the object too, otherwise makedepend will parse it as a source file.
+ -*|$object)
+ ;;
+ *)
+ set fnord "$@" "$arg"; shift ;;
+ esac
+ done
+ obj_suffix="`echo $object | sed 's/^.*\././'`"
+ touch "$tmpdepfile"
+ ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
+ rm -f "$depfile"
+ cat < "$tmpdepfile" > "$depfile"
+ sed '1,2d' "$tmpdepfile" | tr ' ' '
+' | \
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly. Breaking it into two sed invocations is a workaround.
+ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile" "$tmpdepfile".bak
+ ;;
+
+cpp)
+ # Important note: in order to support this mode, a compiler *must*
+ # always write the preprocessed file to stdout.
+ "$@" || exit $?
+
+ # Remove the call to Libtool.
+ if test "$libtool" = yes; then
+ while test $1 != '--mode=compile'; do
+ shift
+ done
+ shift
+ fi
+
+ # Remove `-o $object'.
+ IFS=" "
+ for arg
+ do
+ case $arg in
+ -o)
+ shift
+ ;;
+ $object)
+ shift
+ ;;
+ *)
+ set fnord "$@" "$arg"
+ shift # fnord
+ shift # $arg
+ ;;
+ esac
+ done
+
+ "$@" -E |
+ sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
+ sed '$ s: \\$::' > "$tmpdepfile"
+ rm -f "$depfile"
+ echo "$object : \\" > "$depfile"
+ cat < "$tmpdepfile" >> "$depfile"
+ sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+msvisualcpp)
+ # Important note: in order to support this mode, a compiler *must*
+ # always write the preprocessed file to stdout, regardless of -o,
+ # because we must use -o when running libtool.
+ "$@" || exit $?
+ IFS=" "
+ for arg
+ do
+ case "$arg" in
+ "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
+ set fnord "$@"
+ shift
+ shift
+ ;;
+ *)
+ set fnord "$@" "$arg"
+ shift
+ shift
+ ;;
+ esac
+ done
+ "$@" -E |
+ sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
+ rm -f "$depfile"
+ echo "$object : \\" > "$depfile"
+ . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
+ echo " " >> "$depfile"
+ . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+none)
+ exec "$@"
+ ;;
+
+*)
+ echo "Unknown depmode $depmode" 1>&2
+ exit 1
+ ;;
+esac
+
+exit 0
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:
diff --git a/desc.c b/desc.c
new file mode 100644
index 0000000..a76078e
--- /dev/null
+++ b/desc.c
@@ -0,0 +1,876 @@
+/*
+ * Copyright (c) 1991, 1992 Paul Kranenburg <pk@cs.few.eur.nl>
+ * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
+ * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
+ * Copyright (c) 1996-1999 Wichert Akkerman <wichert@cistron.nl>
+ * 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.
+ *
+ * $Id: desc.c,v 1.22 2005/06/01 19:22:07 roland Exp $
+ */
+
+#include "defs.h"
+
+#include <fcntl.h>
+#include <sys/file.h>
+#ifdef LINUX
+#include <inttypes.h>
+#endif
+#ifdef HAVE_SYS_EPOLL_H
+#include <sys/epoll.h>
+#endif
+#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 */
+#endif
+
+
+static const struct xlat fcntlcmds[] = {
+ { F_DUPFD, "F_DUPFD" },
+ { F_GETFD, "F_GETFD" },
+ { F_SETFD, "F_SETFD" },
+ { F_GETFL, "F_GETFL" },
+ { F_SETFL, "F_SETFL" },
+ { F_GETLK, "F_GETLK" },
+ { F_SETLK, "F_SETLK" },
+ { F_SETLKW, "F_SETLKW" },
+ { F_GETOWN, "F_GETOWN" },
+ { F_SETOWN, "F_SETOWN" },
+#ifdef F_RSETLK
+ { F_RSETLK, "F_RSETLK" },
+#endif
+#ifdef F_RSETLKW
+ { F_RSETLKW, "F_RSETLKW" },
+#endif
+#ifdef F_RGETLK
+ { F_RGETLK, "F_RGETLK" },
+#endif
+#ifdef F_CNVT
+ { F_CNVT, "F_CNVT" },
+#endif
+#ifdef F_SETSIG
+ { F_SETSIG, "F_SETSIG" },
+#endif
+#ifdef F_GETSIG
+ { F_GETSIG, "F_GETSIG" },
+#endif
+#ifdef F_CHKFL
+ { F_CHKFL, "F_CHKFL" },
+#endif
+#ifdef F_DUP2FD
+ { F_DUP2FD, "F_DUP2FD" },
+#endif
+#ifdef F_ALLOCSP
+ { F_ALLOCSP, "F_ALLOCSP" },
+#endif
+#ifdef F_ISSTREAM
+ { F_ISSTREAM, "F_ISSTREAM" },
+#endif
+#ifdef F_PRIV
+ { F_PRIV, "F_PRIV" },
+#endif
+#ifdef F_NPRIV
+ { F_NPRIV, "F_NPRIV" },
+#endif
+#ifdef F_QUOTACL
+ { F_QUOTACL, "F_QUOTACL" },
+#endif
+#ifdef F_BLOCKS
+ { F_BLOCKS, "F_BLOCKS" },
+#endif
+#ifdef F_BLKSIZE
+ { F_BLKSIZE, "F_BLKSIZE" },
+#endif
+#ifdef F_GETOWN
+ { F_GETOWN, "F_GETOWN" },
+#endif
+#ifdef F_SETOWN
+ { F_SETOWN, "F_SETOWN" },
+#endif
+#ifdef F_REVOKE
+ { F_REVOKE, "F_REVOKE" },
+#endif
+#ifdef F_SETLK
+ { F_SETLK, "F_SETLK" },
+#endif
+#ifdef F_SETLKW
+ { F_SETLKW, "F_SETLKW" },
+#endif
+#ifdef F_FREESP
+ { F_FREESP, "F_FREESP" },
+#endif
+#ifdef F_GETLK
+ { F_GETLK, "F_GETLK" },
+#endif
+#ifdef F_SETLK64
+ { F_SETLK64, "F_SETLK64" },
+#endif
+#ifdef F_SETLKW64
+ { F_SETLKW64, "F_SETLKW64" },
+#endif
+#ifdef F_FREESP64
+ { F_FREESP64, "F_FREESP64" },
+#endif
+#ifdef F_GETLK64
+ { F_GETLK64, "F_GETLK64" },
+#endif
+#ifdef F_SHARE
+ { F_SHARE, "F_SHARE" },
+#endif
+#ifdef F_UNSHARE
+ { F_UNSHARE, "F_UNSHARE" },
+#endif
+ { 0, NULL },
+};
+
+static const struct xlat fdflags[] = {
+#ifdef FD_CLOEXEC
+ { FD_CLOEXEC, "FD_CLOEXEC" },
+#endif
+ { 0, NULL },
+};
+
+#ifdef LOCK_SH
+
+static const struct xlat flockcmds[] = {
+ { LOCK_SH, "LOCK_SH" },
+ { LOCK_EX, "LOCK_EX" },
+ { LOCK_NB, "LOCK_NB" },
+ { LOCK_UN, "LOCK_UN" },
+ { 0, NULL },
+};
+
+#endif /* LOCK_SH */
+
+static const struct xlat lockfcmds[] = {
+ { F_RDLCK, "F_RDLCK" },
+ { F_WRLCK, "F_WRLCK" },
+ { F_UNLCK, "F_UNLCK" },
+#ifdef F_EXLCK
+ { F_EXLCK, "F_EXLCK" },
+#endif
+#ifdef F_SHLCK
+ { F_SHLCK, "F_SHLCK" },
+#endif
+ { 0, NULL },
+};
+
+static const struct xlat whence[] = {
+ { SEEK_SET, "SEEK_SET" },
+ { SEEK_CUR, "SEEK_CUR" },
+ { SEEK_END, "SEEK_END" },
+ { 0, NULL },
+};
+
+#ifndef HAVE_LONG_LONG_OFF_T
+/* fcntl/lockf */
+static void
+printflock(tcp, addr, getlk)
+struct tcb *tcp;
+long addr;
+int getlk;
+{
+ struct flock fl;
+
+ if (umove(tcp, addr, &fl) < 0) {
+ tprintf("{...}");
+ return;
+ }
+ tprintf("{type=");
+ printxval(lockfcmds, fl.l_type, "F_???");
+ tprintf(", whence=");
+ printxval(whence, fl.l_whence, "SEEK_???");
+ tprintf(", start=%ld, len=%ld", fl.l_start, fl.l_len);
+ if (getlk)
+ tprintf(", pid=%lu}", (unsigned long) fl.l_pid);
+ else
+ tprintf("}");
+}
+#endif
+
+#if _LFS64_LARGEFILE || HAVE_LONG_LONG_OFF_T
+/* fcntl/lockf */
+static void
+printflock64(tcp, addr, getlk)
+struct tcb *tcp;
+long addr;
+int getlk;
+{
+ struct flock64 fl;
+
+ if (umove(tcp, addr, &fl) < 0) {
+ tprintf("{...}");
+ return;
+ }
+ tprintf("{type=");
+ printxval(lockfcmds, fl.l_type, "F_???");
+ tprintf(", whence=");
+ printxval(whence, fl.l_whence, "SEEK_???");
+ tprintf(", start=%lld, len=%lld", (long long) fl.l_start, (long long) fl.l_len);
+ if (getlk)
+ tprintf(", pid=%lu}", (unsigned long) fl.l_pid);
+ else
+ tprintf("}");
+}
+#endif
+
+static char *
+sprintflags(xlat, flags)
+const struct xlat *xlat;
+int flags;
+{
+ static char outstr[1024];
+ char *sep;
+
+ strcpy(outstr, "flags ");
+ sep = "";
+ for (; xlat->str; xlat++) {
+ if ((flags & xlat->val) == xlat->val) {
+ sprintf(outstr + strlen(outstr),
+ "%s%s", sep, xlat->str);
+ sep = "|";
+ flags &= ~xlat->val;
+ }
+ }
+ if (flags)
+ sprintf(outstr + strlen(outstr),
+ "%s%#x", sep, flags);
+ return outstr;
+}
+
+int
+sys_fcntl(tcp)
+struct tcb *tcp;
+{
+ extern const struct xlat openmodes[];
+
+ if (entering(tcp)) {
+ tprintf("%ld, ", tcp->u_arg[0]);
+ printxval(fcntlcmds, tcp->u_arg[1], "F_???");
+ switch (tcp->u_arg[1]) {
+ case F_SETFD:
+ tprintf(", ");
+ printflags(fdflags, tcp->u_arg[2], "FD_???");
+ break;
+ case F_SETOWN: case F_DUPFD:
+ tprintf(", %ld", tcp->u_arg[2]);
+ break;
+ case F_SETFL:
+ tprintf(", ");
+ printflags(openmodes, tcp->u_arg[2] + 1, "O_???");
+ break;
+ case F_SETLK: case F_SETLKW:
+#ifdef F_FREESP
+ case F_FREESP:
+#endif
+ tprintf(", ");
+ printflock(tcp, tcp->u_arg[2], 0);
+ break;
+#if _LFS64_LARGEFILE
+#ifdef F_FREESP64
+ case F_FREESP64:
+#endif
+ /* Linux glibc defines SETLK64 as SETLK,
+ even though the kernel has different values - as does Solaris. */
+#if defined(F_SETLK64) && F_SETLK64+0!=F_SETLK
+ case F_SETLK64:
+#endif
+#if defined(F_SETLKW64) && F_SETLKW64+0!=F_SETLKW
+ case F_SETLKW64:
+#endif
+ tprintf(", ");
+ printflock64(tcp, tcp->u_arg[2], 0);
+ break;
+#endif
+ }
+ }
+ else {
+ switch (tcp->u_arg[1]) {
+ case F_DUPFD:
+ case F_SETFD: case F_SETFL:
+ case F_SETLK: case F_SETLKW:
+ case F_SETOWN: case F_GETOWN:
+ break;
+ case F_GETFD:
+ if (tcp->u_rval == 0)
+ return 0;
+ tcp->auxstr = sprintflags(fdflags, tcp->u_rval);
+ return RVAL_HEX|RVAL_STR;
+ case F_GETFL:
+ tcp->auxstr = sprintflags(openmodes, tcp->u_rval + 1);
+ return RVAL_HEX|RVAL_STR;
+ case F_GETLK:
+ tprintf(", ");
+ printflock(tcp, tcp->u_arg[2], 1);
+ break;
+#if _LFS64_LARGEFILE
+#if defined(F_GETLK64) && F_GETLK64+0!=F_GETLK
+ case F_GETLK64:
+#endif
+ tprintf(", ");
+ printflock64(tcp, tcp->u_arg[2], 1);
+ break;
+#endif
+ default:
+ tprintf(", %#lx", tcp->u_arg[2]);
+ break;
+ }
+ }
+ return 0;
+}
+
+#ifdef LOCK_SH
+
+int
+sys_flock(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, ", tcp->u_arg[0]);
+ printflags(flockcmds, tcp->u_arg[1], "LOCK_???");
+ }
+ return 0;
+}
+#endif /* LOCK_SH */
+
+int
+sys_close(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld", tcp->u_arg[0]);
+ }
+ return 0;
+}
+
+int
+sys_dup(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld", tcp->u_arg[0]);
+ }
+ return 0;
+}
+
+int
+sys_dup2(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, %ld", tcp->u_arg[0], tcp->u_arg[1]);
+ }
+ return 0;
+}
+
+int
+sys_getdtablesize(tcp)
+struct tcb *tcp;
+{
+ return 0;
+}
+
+static int
+decode_select(tcp, args, bitness)
+struct tcb *tcp;
+long *args;
+int bitness;
+{
+ int i, j, nfds;
+ unsigned int fdsize = ((((args[0] + 7) / 8) + sizeof(long) - 1)
+ & -sizeof(long));
+ fd_set *fds;
+ struct timeval tv;
+#ifdef ALPHA
+ struct timeval32 {
+ unsigned tv_sec;
+ unsigned tv_usec;
+ } *tv32;
+#endif
+ static char outstr[1024];
+ char *sep;
+ long arg;
+
+ if (entering(tcp)) {
+ fds = (fd_set *) malloc(fdsize);
+ if (fds == NULL)
+ fprintf(stderr, "out of memory\n");
+ nfds = args[0];
+ tprintf("%d", nfds);
+ for (i = 0; i < 3; i++) {
+ arg = args[i+1];
+ if (arg == 0) {
+ tprintf(", NULL");
+ continue;
+ }
+ if (fds == NULL || !verbose(tcp)) {
+ tprintf(", %#lx", arg);
+ continue;
+ }
+ if (umoven(tcp, arg, fdsize, (char *) fds) < 0) {
+ tprintf(", [?]");
+ continue;
+ }
+ tprintf(", [");
+ for (j = 0, sep = ""; j < nfds; j++) {
+ if (FD_ISSET(j, fds)) {
+ tprintf("%s%u", sep, j);
+ sep = " ";
+ }
+ }
+ tprintf("]");
+ }
+ free(fds);
+ if (!args[4])
+ tprintf(", NULL");
+ else if (!verbose(tcp))
+ tprintf(", %#lx", args[4]);
+ else if (umove(tcp, args[4], &tv) < 0)
+ tprintf(", {...}");
+ else {
+#ifdef ALPHA
+ if (bitness) {
+ tv32=(struct timeval32*)&tv;
+ tprintf(", {%u, %u}", tv32->tv_sec, tv32->tv_usec);
+ } else
+#endif
+ tprintf(", {%lu, %lu}",
+ (long) tv.tv_sec, (long) tv.tv_usec);
+ }
+ }
+ else
+ {
+ unsigned int cumlen = 0;
+ char *sep = "";
+
+ if (syserror(tcp))
+ return 0;
+
+ if ((nfds = tcp->u_rval) == 0) {
+ tcp->auxstr = "Timeout";
+ return RVAL_STR;
+ }
+
+ fds = (fd_set *) malloc(fdsize);
+ if (fds == NULL)
+ fprintf(stderr, "out of memory\n");
+
+ outstr[0] = '\0';
+ for (i = 0; i < 3; i++) {
+ int first = 1;
+ char str[20];
+
+ tcp->auxstr = outstr;
+ arg = args[i+1];
+ if (fds == NULL || !arg ||
+ umoven(tcp, arg, fdsize, (char *) fds) < 0)
+ continue;
+ for (j = 0; j < args[0]; j++) {
+ if (FD_ISSET(j, fds)) {
+ if (first) {
+ sprintf(str, "%s%s [%u", sep,
+ i == 0 ? "in" :
+ i == 1 ? "out" :
+ "except", j);
+ first = 0;
+ sep = ", ";
+ }
+ else
+ sprintf(str, " %u", j);
+ cumlen += strlen(str);
+ if (cumlen < sizeof(outstr))
+ strcat(outstr, str);
+ nfds--;
+ }
+ }
+ if (cumlen)
+ strcat(outstr, "]");
+ if (nfds == 0)
+ break;
+ }
+ free(fds);
+#ifdef LINUX
+ /* This contains no useful information on SunOS. */
+ if (args[4]) {
+ char str[64];
+
+ if (umove(tcp, args[4], &tv) >= 0) {
+#ifdef ALPHA
+ if (bitness) {
+ tv32=(struct timeval32*)&tv;
+ sprintf(str, "%sleft {%u, %u}", sep,
+ tv32->tv_sec, tv32->tv_usec);
+ } else
+#endif
+ sprintf(str, "%sleft {%lu, %lu}", sep,
+ (long) tv.tv_sec, (long) tv.tv_usec);
+
+ if ((cumlen += strlen(str)) < sizeof(outstr))
+ strcat(outstr, str);
+ }
+ }
+#endif /* LINUX */
+ return RVAL_STR;
+ }
+ return 0;
+}
+
+#ifdef LINUX
+
+int
+sys_oldselect(tcp)
+struct tcb *tcp;
+{
+ long args[5];
+
+ if (umoven(tcp, tcp->u_arg[0], sizeof args, (char *) args) < 0) {
+ tprintf("[...]");
+ return 0;
+ }
+ return decode_select(tcp, args, 0);
+}
+
+#ifdef ALPHA
+int
+sys_osf_select(tcp)
+struct tcb *tcp;
+{
+ long *args = tcp->u_arg;
+ return decode_select(tcp, args, 1);
+}
+#endif
+
+static struct xlat epollctls[] = {
+#ifdef EPOLL_CTL_ADD
+ { EPOLL_CTL_ADD, "EPOLL_CTL_ADD" },
+#endif
+#ifdef EPOLL_CTL_MOD
+ { EPOLL_CTL_MOD, "EPOLL_CTL_MOD" },
+#endif
+#ifdef EPOLL_CTL_DEL
+ { EPOLL_CTL_DEL, "EPOLL_CTL_DEL" },
+#endif
+ { 0, NULL }
+};
+
+static struct xlat epollevents[] = {
+#ifdef EPOLLIN
+ { EPOLLIN, "EPOLLIN" },
+#endif
+#ifdef EPOLLPRI
+ { EPOLLPRI, "EPOLLPRI" },
+#endif
+#ifdef EPOLLOUT
+ { EPOLLOUT, "EPOLLOUT" },
+#endif
+#ifdef EPOLLRDNORM
+ { EPOLLRDNORM, "EPOLLRDNORM" },
+#endif
+#ifdef EPOLLRDBAND
+ { EPOLLRDBAND, "EPOLLRDBAND" },
+#endif
+#ifdef EPOLLWRNORM
+ { EPOLLWRNORM, "EPOLLWRNORM" },
+#endif
+#ifdef EPOLLWRBAND
+ { EPOLLWRBAND, "EPOLLWRBAND" },
+#endif
+#ifdef EPOLLMSG
+ { EPOLLMSG, "EPOLLMSG" },
+#endif
+#ifdef EPOLLERR
+ { EPOLLERR, "EPOLLERR" },
+#endif
+#ifdef EPOLLHUP
+ { EPOLLHUP, "EPOLLHUP" },
+#endif
+#ifdef EPOLLONESHOT
+ { EPOLLONESHOT, "EPOLLONESHOT" },
+#endif
+#ifdef EPOLLET
+ { EPOLLET, "EPOLLET" },
+#endif
+ { 0, NULL }
+};
+
+int
+sys_epoll_create(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp))
+ tprintf("%ld", tcp->u_arg[0]);
+ return 0;
+}
+
+#ifdef HAVE_SYS_EPOLL_H
+static void
+print_epoll_event(ev)
+struct epoll_event *ev;
+{
+ tprintf("{");
+ printflags(epollevents, ev->events, "EPOLL???");
+ /* We cannot know what format the program uses, so print u32 and u64
+ which will cover every value. */
+ tprintf(", {u32=%" PRIu32 ", u64=%" PRIu64 "}}",
+ ev->data.u32, ev->data.u64);
+}
+#endif
+
+int
+sys_epoll_ctl(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, ", tcp->u_arg[0]);
+ printxval(epollctls, tcp->u_arg[1], "EPOLL_CTL_???");
+ tprintf(", %ld, ", tcp->u_arg[2]);
+ if (tcp->u_arg[3] == 0)
+ tprintf("NULL");
+ else {
+#ifdef HAVE_SYS_EPOLL_H
+ struct epoll_event ev;
+ if (umove(tcp, tcp->u_arg[3], &ev) == 0)
+ print_epoll_event(&ev);
+ else
+#endif
+ tprintf("{...}");
+ }
+ }
+ return 0;
+}
+
+int
+sys_epoll_wait(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp))
+ tprintf("%ld, ", tcp->u_arg[0]);
+ else {
+ if (syserror(tcp))
+ tprintf("%lx", tcp->u_arg[1]);
+ else if (tcp->u_rval == 0)
+ tprintf("{}");
+ else {
+#ifdef HAVE_SYS_EPOLL_H
+ struct epoll_event ev, *start, *cur, *end;
+ int failed = 0;
+
+ tprintf("{");
+ start = (struct epoll_event *) tcp->u_arg[1];
+ end = start + tcp->u_rval;
+ for (cur = start; cur < end; ++cur) {
+ if (cur > start)
+ tprintf(", ");
+ if (umove(tcp, (long) cur, &ev) == 0)
+ print_epoll_event(&ev);
+ else {
+ tprintf("?");
+ failed = 1;
+ break;
+ }
+ }
+ tprintf("}");
+ if (failed)
+ tprintf(" %#lx", (long) start);
+#else
+ tprintf("{...}");
+#endif
+ }
+ tprintf(", %ld, %ld", tcp->u_arg[2], tcp->u_arg[3]);
+ }
+ return 0;
+}
+
+int
+sys_io_setup(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp))
+ tprintf("%ld, ", tcp->u_arg[0]);
+ else {
+ if (syserror(tcp))
+ tprintf("0x%0lx", tcp->u_arg[1]);
+ else {
+ unsigned long user_id;
+ if (umove(tcp, tcp->u_arg[1], &user_id) == 0)
+ tprintf("{%lu}", user_id);
+ else
+ tprintf("{...}");
+ }
+ }
+ return 0;
+}
+
+int
+sys_io_destroy(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp))
+ tprintf("%lu", tcp->u_arg[0]);
+ return 0;
+}
+
+int
+sys_io_submit(tcp)
+struct tcb *tcp;
+{
+ long nr;
+ if (entering(tcp)) {
+ tprintf("%lu, %ld, ", tcp->u_arg[0], tcp->u_arg[1]);
+ nr = tcp->u_arg[1];
+ /* and if nr is negative? */
+ if (nr == 0)
+ tprintf("{}");
+ else {
+#ifdef HAVE_LIBAIO_H
+ long i;
+ struct iocb *iocbp, **iocbs = (void *)tcp->u_arg[2];
+
+ for (i = 0; i < nr; i++, iocbs++) {
+ struct iocb iocb;
+ if (i == 0)
+ tprintf("{");
+ else
+ tprintf(", ");
+
+ if (umove(tcp, (unsigned long)iocbs, &iocbp) ||
+ umove(tcp, (unsigned long)iocbp, &iocb)) {
+ tprintf("{...}");
+ continue;
+ }
+ tprintf("{%p, %u, %hu, %hu, %d}",
+ iocb.data, iocb.key,
+ iocb.aio_lio_opcode,
+ iocb.aio_reqprio, iocb.aio_fildes);
+ }
+ if (i)
+ tprintf("}");
+#else
+ tprintf("{...}");
+#endif
+ }
+ }
+ return 0;
+}
+
+int
+sys_io_cancel(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+#ifdef HAVE_LIBAIO_H
+ struct iocb iocb;
+#endif
+ tprintf("%lu, ", tcp->u_arg[0]);
+#ifdef HAVE_LIBAIO_H
+ if (umove(tcp, tcp->u_arg[1], &iocb) == 0) {
+ tprintf("{%p, %u, %hu, %hu, %d}, ",
+ iocb.data, iocb.key,
+ iocb.aio_lio_opcode,
+ iocb.aio_reqprio, iocb.aio_fildes);
+ } else
+#endif
+ tprintf("{...}, ");
+ } else {
+ if (tcp->u_rval < 0)
+ tprintf("{...}");
+ else {
+#ifdef HAVE_LIBAIO_H
+ struct io_event event;
+ if (umove(tcp, tcp->u_arg[2], &event) == 0)
+ tprintf("{%p, %p, %ld, %ld}",
+ event.data, event.obj,
+ event.res, event.res2);
+ else
+#endif
+ tprintf("{...}");
+ }
+ }
+ return 0;
+}
+
+int
+sys_io_getevents(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, %ld, %ld, ", tcp->u_arg[0], tcp->u_arg[1],
+ tcp->u_arg[2]);
+ } else {
+ if (tcp->u_rval == 0) {
+ tprintf("{}");
+ } else {
+#ifdef HAVE_LIBAIO_H
+ struct io_event *events = (void *)tcp->u_arg[3];
+ long i, nr = tcp->u_rval;
+
+ for (i = 0; i < nr; i++, events++) {
+ struct io_event event;
+
+ if (i == 0)
+ tprintf("{");
+ else
+ tprintf(", ");
+
+ if (umove(tcp, (unsigned long)events, &event) != 0) {
+ tprintf("{...}");
+ continue;
+ }
+ tprintf("{%p, %p, %ld, %ld}", event.data,
+ event.obj, event.res, event.res2);
+ }
+ tprintf("}, ");
+#else
+ tprintf("{...}");
+#endif
+ }
+
+ if (tcp->u_arg[4] == 0)
+ tprintf("NULL");
+ else {
+ struct timespec to;
+ if (umove(tcp, tcp->u_arg[4], &to) == 0)
+ tprintf("{%lu, %lu}", to.tv_sec, to.tv_nsec);
+ else
+ tprintf("{...}");
+ }
+ }
+ return 0;
+}
+#endif /* LINUX */
+
+int
+sys_select(tcp)
+struct tcb *tcp;
+{
+ long *args = tcp->u_arg;
+ return decode_select(tcp, args, 0);
+}
diff --git a/errnoent.sh b/errnoent.sh
new file mode 100644
index 0000000..da8fda0
--- /dev/null
+++ b/errnoent.sh
@@ -0,0 +1,42 @@
+#!/bin/sh
+# Copyright (c) 1993, 1994, 1995 Rick Sladkey <jrs@world.std.com>
+# 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.
+#
+# $Id: errnoent.sh,v 1.1.1.1 1999/02/19 00:22:09 wichert Exp $
+
+awk '
+/^#define[ ]+E[A-Z0-9_]+[ ]+[0-9]+/ {
+ errno[$3] = $2
+ if ($3 > max)
+ max = $3
+}
+END {
+ for (i = 0; i <= max; i++) {
+ if (!errno[i])
+ errno[i] = "ERRNO_" i
+ printf "\t\"%s\", /* %d */\n", errno[i], i
+ }
+}
+' $*
diff --git a/file.c b/file.c
new file mode 100644
index 0000000..b0f9715
--- /dev/null
+++ b/file.c
@@ -0,0 +1,2562 @@
+/*
+#ifdef LINUX
+ * Copyright (c) 1991, 1992 Paul Kranenburg <pk@cs.few.eur.nl>
+ * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
+ * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
+ * Copyright (c) 1996-1999 Wichert Akkerman <wichert@cistron.nl>
+ * 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.
+ *
+ * $Id: file.c,v 1.75 2005/06/08 20:45:28 roland Exp $
+ */
+
+#include "defs.h"
+
+#include <dirent.h>
+#if defined(LINUX)
+#define dirent kernel_dirent
+#ifndef HAVE_ANDROID_OS
+#define dirent64 kernel_dirent64
+#endif
+#ifdef HAVE_ANDROID_OS
+#include <linux/fadvise.h>
+
+// ANDROID: From kernel_headers/asm/statfs.h
+
+/*
+ * With EABI there is 4 bytes of padding added to this structure.
+ * Let's pack it so the padding goes away to simplify dual ABI support.
+ * Note that user space does NOT have to pack this structure.
+ */
+struct statfs64 {
+ __u32 f_type;
+ __u32 f_bsize;
+ __u64 f_blocks;
+ __u64 f_bfree;
+ __u64 f_bavail;
+ __u64 f_files;
+ __u64 f_ffree;
+ __kernel_fsid_t f_fsid;
+ __u32 f_namelen;
+ __u32 f_frsize;
+ __u32 f_spare[5];
+} __attribute__ ((packed,aligned(4)));
+
+
+
+
+#endif /* HAVE_ANDROID_OS */
+#include <linux/types.h>
+#include <linux/dirent.h>
+#undef dirent
+#undef dirent64
+#else
+#define kernel_dirent dirent
+#endif
+
+#ifdef LINUX
+# ifdef LINUXSPARC
+struct stat {
+ unsigned short st_dev;
+ unsigned int st_ino;
+ unsigned short st_mode;
+ short st_nlink;
+ unsigned short st_uid;
+ unsigned short st_gid;
+ unsigned short st_rdev;
+ unsigned int st_size;
+ int st_atime;
+ unsigned int __unused1;
+ int st_mtime;
+ unsigned int __unused2;
+ int st_ctime;
+ unsigned int __unused3;
+ int st_blksize;
+ int st_blocks;
+ unsigned int __unused4[2];
+};
+#if defined(SPARC64)
+struct stat_sparc64 {
+ unsigned int st_dev;
+ unsigned long st_ino;
+ unsigned int st_mode;
+ unsigned int st_nlink;
+ unsigned int st_uid;
+ unsigned int st_gid;
+ unsigned int st_rdev;
+ long st_size;
+ long st_atime;
+ long st_mtime;
+ long st_ctime;
+ long st_blksize;
+ long st_blocks;
+ unsigned long __unused4[2];
+};
+#endif /* SPARC64 */
+# define stat kernel_stat
+# include <asm/stat.h>
+# undef stat
+# else
+# undef dev_t
+# undef ino_t
+# undef mode_t
+# undef nlink_t
+# undef uid_t
+# undef gid_t
+# undef off_t
+# undef loff_t
+
+# define dev_t __kernel_dev_t
+# define ino_t __kernel_ino_t
+# define mode_t __kernel_mode_t
+# define nlink_t __kernel_nlink_t
+# define uid_t __kernel_uid_t
+# define gid_t __kernel_gid_t
+# define off_t __kernel_off_t
+# define loff_t __kernel_loff_t
+
+# include <asm/stat.h>
+
+# undef dev_t
+# undef ino_t
+# undef mode_t
+# undef nlink_t
+# undef uid_t
+# undef gid_t
+# undef off_t
+# undef loff_t
+
+# define dev_t dev_t
+# define ino_t ino_t
+# define mode_t mode_t
+# define nlink_t nlink_t
+# define uid_t uid_t
+# define gid_t gid_t
+# define off_t off_t
+# 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>
+# undef stat
+# undef stat64
+ /* These might be macros. */
+# undef st_atime
+# undef st_mtime
+# undef st_ctime
+# ifdef HPPA
+# define stat64 hpux_stat64
+# endif
+#else
+# include <sys/stat.h>
+#endif
+
+#include <fcntl.h>
+
+#ifdef SVR4
+# include <sys/cred.h>
+#endif /* SVR4 */
+
+#ifdef HAVE_SYS_VFS_H
+#include <sys/vfs.h>
+#endif
+
+#ifdef HAVE_LINUX_XATTR_H
+#include <linux/xattr.h>
+#elif defined linux
+#define XATTR_CREATE 1
+#define XATTR_REPLACE 2
+#endif
+
+#ifdef FREEBSD
+#include <sys/param.h>
+#include <sys/mount.h>
+#include <sys/stat.h>
+#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_lseek64 sys_lseek
+#define sys_truncate64 sys_truncate
+#define sys_ftruncate64 sys_ftruncate
+#endif
+
+#ifdef MAJOR_IN_SYSMACROS
+#include <sys/sysmacros.h>
+#endif
+
+#ifdef MAJOR_IN_MKDEV
+#include <sys/mkdev.h>
+#endif
+
+#ifdef HAVE_SYS_ASYNCH_H
+#include <sys/asynch.h>
+#endif
+
+#ifdef SUNOS4
+#include <ustat.h>
+#endif
+
+/*
+ * This is a really dirty trick but it should always work. Traditional
+ * Unix says r/w/rw are 0/1/2, so we make them true flags 1/2/3 by
+ * adding 1. Just remember to add 1 to any arg decoded with openmodes.
+ */
+const struct xlat openmodes[] = {
+ { O_RDWR+1, "O_RDWR" },
+ { O_RDONLY+1, "O_RDONLY" },
+ { O_WRONLY+1, "O_WRONLY" },
+ { O_NONBLOCK, "O_NONBLOCK" },
+ { O_APPEND, "O_APPEND" },
+ { O_CREAT, "O_CREAT" },
+ { O_TRUNC, "O_TRUNC" },
+ { O_EXCL, "O_EXCL" },
+ { O_NOCTTY, "O_NOCTTY" },
+#ifdef O_SYNC
+ { O_SYNC, "O_SYNC" },
+#endif
+#ifdef O_ASYNC
+ { O_ASYNC, "O_ASYNC" },
+#endif
+#ifdef O_DSYNC
+ { O_DSYNC, "O_DSYNC" },
+#endif
+#ifdef O_RSYNC
+ { O_RSYNC, "O_RSYNC" },
+#endif
+#ifdef O_NDELAY
+ { O_NDELAY, "O_NDELAY" },
+#endif
+#ifdef O_PRIV
+ { O_PRIV, "O_PRIV" },
+#endif
+#ifdef O_DIRECT
+ { O_DIRECT, "O_DIRECT" },
+#endif
+#ifdef O_LARGEFILE
+# if O_LARGEFILE == 0 /* biarch platforms in 64-bit mode */
+# undef O_LARGEFILE
+# ifdef SPARC64
+# define O_LARGEFILE 0x40000
+# elif defined X86_64 || defined S390X
+# define O_LARGEFILE 0100000
+# endif
+# endif
+# ifdef O_LARGEFILE
+ { O_LARGEFILE, "O_LARGEFILE" },
+# endif
+#endif
+#ifdef O_DIRECTORY
+ { O_DIRECTORY, "O_DIRECTORY" },
+#endif
+#ifdef O_NOFOLLOW
+ { O_NOFOLLOW, "O_NOFOLLOW" },
+#endif
+#ifdef O_NOATIME
+ { O_NOATIME, "O_NOATIME" },
+#endif
+
+#ifdef FNDELAY
+ { FNDELAY, "FNDELAY" },
+#endif
+#ifdef FAPPEND
+ { FAPPEND, "FAPPEND" },
+#endif
+#ifdef FMARK
+ { FMARK, "FMARK" },
+#endif
+#ifdef FDEFER
+ { FDEFER, "FDEFER" },
+#endif
+#ifdef FASYNC
+ { FASYNC, "FASYNC" },
+#endif
+#ifdef FSHLOCK
+ { FSHLOCK, "FSHLOCK" },
+#endif
+#ifdef FEXLOCK
+ { FEXLOCK, "FEXLOCK" },
+#endif
+#ifdef FCREAT
+ { FCREAT, "FCREAT" },
+#endif
+#ifdef FTRUNC
+ { FTRUNC, "FTRUNC" },
+#endif
+#ifdef FEXCL
+ { FEXCL, "FEXCL" },
+#endif
+#ifdef FNBIO
+ { FNBIO, "FNBIO" },
+#endif
+#ifdef FSYNC
+ { FSYNC, "FSYNC" },
+#endif
+#ifdef FNOCTTY
+ { FNOCTTY, "FNOCTTY" },
+#endif
+#ifdef O_SHLOCK
+ { O_SHLOCK, "O_SHLOCK" },
+#endif
+#ifdef O_EXLOCK
+ { O_EXLOCK, "O_EXLOCK" },
+#endif
+ { 0, NULL },
+};
+
+int
+sys_open(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ tprintf(", ");
+ /* flags */
+ printflags(openmodes, tcp->u_arg[1] + 1, "O_???");
+ if (tcp->u_arg[1] & O_CREAT) {
+ /* mode */
+ tprintf(", %#lo", tcp->u_arg[2]);
+ }
+ }
+ return 0;
+}
+
+#ifdef LINUXSPARC
+static const struct xlat openmodessol[] = {
+ { 0, "O_RDWR" },
+ { 1, "O_RDONLY" },
+ { 2, "O_WRONLY" },
+ { 0x80, "O_NONBLOCK" },
+ { 8, "O_APPEND" },
+ { 0x100, "O_CREAT" },
+ { 0x200, "O_TRUNC" },
+ { 0x400, "O_EXCL" },
+ { 0x800, "O_NOCTTY" },
+ { 0x10, "O_SYNC" },
+ { 0x40, "O_DSYNC" },
+ { 0x8000, "O_RSYNC" },
+ { 4, "O_NDELAY" },
+ { 0x1000, "O_PRIV" },
+ { 0, NULL },
+};
+
+int
+solaris_open(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ tprintf(", ");
+ /* flags */
+ printflags(openmodessol, tcp->u_arg[1] + 1, "O_???");
+ if (tcp->u_arg[1] & 0x100) {
+ /* mode */
+ tprintf(", %#lo", tcp->u_arg[2]);
+ }
+ }
+ return 0;
+}
+
+#endif
+
+int
+sys_creat(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ tprintf(", %#lo", tcp->u_arg[1]);
+ }
+ return 0;
+}
+
+static const struct xlat access_flags[] = {
+ { F_OK, "F_OK", },
+ { R_OK, "R_OK" },
+ { W_OK, "W_OK" },
+ { X_OK, "X_OK" },
+#ifdef EFF_ONLY_OK
+ { EFF_ONLY_OK, "EFF_ONLY_OK" },
+#endif
+#ifdef EX_OK
+ { EX_OK, "EX_OK" },
+#endif
+ { 0, NULL },
+};
+
+int
+sys_access(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ tprintf(", ");
+ printflags(access_flags, tcp->u_arg[1], "?_OK");
+ }
+ return 0;
+}
+
+int
+sys_umask(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%#lo", tcp->u_arg[0]);
+ }
+ return RVAL_OCTAL;
+}
+
+static const struct xlat whence[] = {
+ { SEEK_SET, "SEEK_SET" },
+ { SEEK_CUR, "SEEK_CUR" },
+ { SEEK_END, "SEEK_END" },
+ { 0, NULL },
+};
+
+#ifndef HAVE_LONG_LONG_OFF_T
+int
+sys_lseek(tcp)
+struct tcb *tcp;
+{
+ off_t offset;
+ int _whence;
+
+ if (entering(tcp)) {
+ tprintf("%ld, ", tcp->u_arg[0]);
+ 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
+
+#ifdef LINUX
+int
+sys_llseek (tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ /*
+ * 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("%ld, %llu, ", tcp->u_arg[0],
+ (((long long int) tcp->u_arg[1]) << 32
+ | (unsigned long long) (unsigned) tcp->u_arg[2]));
+ else
+ tprintf("%ld, %lld, ", tcp->u_arg[0],
+ (((long long int) tcp->u_arg[1]) << 32
+ | (unsigned long long) (unsigned) tcp->u_arg[2]));
+ }
+ else {
+ long long int 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_???");
+ }
+ return 0;
+}
+
+int
+sys_readahead (tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, %lld, %ld", tcp->u_arg[0],
+# if defined IA64 || defined X86_64 || defined ALPHA
+ (long long int) tcp->u_arg[1], tcp->u_arg[2]
+# else
+ LONG_LONG(tcp->u_arg[1], tcp->u_arg[2]), tcp->u_arg[3]
+# endif
+ );
+ }
+ return 0;
+}
+#endif
+
+#if _LFS64_LARGEFILE || HAVE_LONG_LONG_OFF_T
+int
+sys_lseek64 (tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ long long offset;
+ ALIGN64 (tcp, 1); /* FreeBSD aligns off_t args */
+ offset = LONG_LONG(tcp->u_arg [1], tcp->u_arg[2]);
+ if (tcp->u_arg[3] == SEEK_SET)
+ tprintf("%ld, %llu, ", tcp->u_arg[0], offset);
+ else
+ tprintf("%ld, %lld, ", tcp->u_arg[0], offset);
+ printxval(whence, tcp->u_arg[3], "SEEK_???");
+ }
+ return RVAL_LUDECIMAL;
+}
+#endif
+
+#ifndef HAVE_LONG_LONG_OFF_T
+int
+sys_truncate(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ tprintf(", %lu", tcp->u_arg[1]);
+ }
+ return 0;
+}
+#endif
+
+#if _LFS64_LARGEFILE || HAVE_LONG_LONG_OFF_T
+int
+sys_truncate64(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ ALIGN64 (tcp, 1);
+ printpath(tcp, tcp->u_arg[0]);
+ tprintf(", %llu", LONG_LONG(tcp->u_arg[1],tcp->u_arg[2]));
+ }
+ return 0;
+}
+#endif
+
+#ifndef HAVE_LONG_LONG_OFF_T
+int
+sys_ftruncate(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, %lu", tcp->u_arg[0], tcp->u_arg[1]);
+ }
+ return 0;
+}
+#endif
+
+#if _LFS64_LARGEFILE || HAVE_LONG_LONG_OFF_T
+int
+sys_ftruncate64(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ ALIGN64 (tcp, 1);
+ tprintf("%ld, %llu", tcp->u_arg[0],
+ LONG_LONG(tcp->u_arg[1] ,tcp->u_arg[2]));
+ }
+ return 0;
+}
+#endif
+
+/* several stats */
+
+static const struct xlat modetypes[] = {
+ { S_IFREG, "S_IFREG" },
+ { S_IFSOCK, "S_IFSOCK" },
+ { S_IFIFO, "S_IFIFO" },
+ { S_IFLNK, "S_IFLNK" },
+ { S_IFDIR, "S_IFDIR" },
+ { S_IFBLK, "S_IFBLK" },
+ { S_IFCHR, "S_IFCHR" },
+ { 0, NULL },
+};
+
+static const char *
+sprintmode(mode)
+int mode;
+{
+ static char buf[64];
+ const char *s;
+
+ if ((mode & S_IFMT) == 0)
+ s = "";
+ else if ((s = xlookup(modetypes, mode & S_IFMT)) == NULL) {
+ sprintf(buf, "%#o", mode);
+ return buf;
+ }
+ sprintf(buf, "%s%s%s%s", s,
+ (mode & S_ISUID) ? "|S_ISUID" : "",
+ (mode & S_ISGID) ? "|S_ISGID" : "",
+ (mode & S_ISVTX) ? "|S_ISVTX" : "");
+ mode &= ~(S_IFMT|S_ISUID|S_ISGID|S_ISVTX);
+ if (mode)
+ sprintf(buf + strlen(buf), "|%#o", mode);
+ s = (*buf == '|') ? buf + 1 : buf;
+ return *s ? s : "0";
+}
+
+static char *
+sprinttime(t)
+time_t t;
+{
+ struct tm *tmp;
+ static char buf[32];
+
+ if (t == 0) {
+ sprintf(buf, "0");
+ return buf;
+ }
+ tmp = localtime(&t);
+ sprintf(buf, "%02d/%02d/%02d-%02d:%02d:%02d",
+ tmp->tm_year + 1900, tmp->tm_mon + 1, tmp->tm_mday,
+ tmp->tm_hour, tmp->tm_min, tmp->tm_sec);
+ return buf;
+}
+
+#ifdef LINUXSPARC
+typedef struct {
+ int tv_sec;
+ int tv_nsec;
+} timestruct_t;
+
+struct solstat {
+ unsigned st_dev;
+ int st_pad1[3]; /* network id */
+ unsigned st_ino;
+ unsigned st_mode;
+ unsigned st_nlink;
+ unsigned st_uid;
+ unsigned st_gid;
+ unsigned st_rdev;
+ int st_pad2[2];
+ int st_size;
+ int st_pad3; /* st_size, off_t expansion */
+ timestruct_t st_atime;
+ timestruct_t st_mtime;
+ timestruct_t st_ctime;
+ int st_blksize;
+ int st_blocks;
+ char st_fstype[16];
+ int st_pad4[8]; /* expansion area */
+};
+
+static void
+printstatsol(tcp, addr)
+struct tcb *tcp;
+long addr;
+{
+ struct solstat statbuf;
+
+ if (!addr) {
+ tprintf("NULL");
+ return;
+ }
+ if (syserror(tcp) || !verbose(tcp)) {
+ tprintf("%#lx", addr);
+ return;
+ }
+ if (umove(tcp, addr, &statbuf) < 0) {
+ tprintf("{...}");
+ return;
+ }
+ if (!abbrev(tcp)) {
+ tprintf("{st_dev=makedev(%lu, %lu), st_ino=%lu, st_mode=%s, ",
+ (unsigned long) ((statbuf.st_dev >> 18) & 0x3fff),
+ (unsigned long) (statbuf.st_dev & 0x3ffff),
+ (unsigned 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) ((statbuf.st_rdev >> 18) & 0x3fff),
+ (unsigned long) (statbuf.st_rdev & 0x3ffff));
+ break;
+ default:
+ tprintf("st_size=%u, ", 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));
+ }
+ else
+ tprintf("...}");
+}
+
+#if defined (SPARC64)
+static void
+printstat_sparc64(tcp, addr)
+struct tcb *tcp;
+long addr;
+{
+ struct stat_sparc64 statbuf;
+
+ if (!addr) {
+ tprintf("NULL");
+ return;
+ }
+ if (syserror(tcp) || !verbose(tcp)) {
+ tprintf("%#lx", addr);
+ return;
+ }
+ if (umove(tcp, addr, &statbuf) < 0) {
+ tprintf("{...}");
+ return;
+ }
+
+ if (!abbrev(tcp)) {
+ tprintf("{st_dev=makedev(%lu, %lu), st_ino=%lu, st_mode=%s, ",
+ (unsigned long) major(statbuf.st_dev),
+ (unsigned long) minor(statbuf.st_dev),
+ (unsigned 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=%lu, ", 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));
+ tprintf("}");
+ }
+ else
+ tprintf("...}");
+}
+#endif /* SPARC64 */
+#endif /* LINUXSPARC */
+
+static const struct xlat fileflags[] = {
+#ifdef FREEBSD
+ { UF_NODUMP, "UF_NODUMP" },
+ { UF_IMMUTABLE, "UF_IMMUTABLE" },
+ { UF_APPEND, "UF_APPEND" },
+ { UF_OPAQUE, "UF_OPAQUE" },
+ { UF_NOUNLINK, "UF_NOUNLINK" },
+ { SF_ARCHIVED, "SF_ARCHIVED" },
+ { SF_IMMUTABLE, "SF_IMMUTABLE" },
+ { SF_APPEND, "SF_APPEND" },
+ { SF_NOUNLINK, "SF_NOUNLINK" },
+#elif UNIXWARE >= 2
+#ifdef _S_ISMLD
+ { _S_ISMLD, "_S_ISMLD" },
+#endif
+#ifdef _S_ISMOUNTED
+ { _S_ISMOUNTED, "_S_ISMOUNTED" },
+#endif
+#endif
+ { 0, NULL },
+};
+
+#ifdef FREEBSD
+int
+sys_chflags(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ tprintf(", ");
+ printflags(fileflags, tcp->u_arg[1], "UF_???");
+ }
+ return 0;
+}
+
+int
+sys_fchflags(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, ", tcp->u_arg[0]);
+ printflags(fileflags, tcp->u_arg[1], "UF_???");
+ }
+ return 0;
+}
+#endif
+
+#ifndef HAVE_LONG_LONG_OFF_T
+static void
+realprintstat(tcp, statbuf)
+struct tcb *tcp;
+struct stat *statbuf;
+{
+ if (!abbrev(tcp)) {
+ tprintf("{st_dev=makedev(%lu, %lu), st_ino=%lu, st_mode=%s, ",
+ (unsigned long) major(statbuf->st_dev),
+ (unsigned long) minor(statbuf->st_dev),
+ (unsigned 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);
+#ifdef HAVE_STRUCT_STAT_ST_BLKSIZE
+ tprintf("st_blksize=%lu, ", (unsigned long) statbuf->st_blksize);
+#endif /* HAVE_STRUCT_STAT_ST_BLKSIZE */
+#ifdef HAVE_STRUCT_STAT_ST_BLOCKS
+ tprintf("st_blocks=%lu, ", (unsigned long) statbuf->st_blocks);
+#endif /* HAVE_STRUCT_STAT_ST_BLOCKS */
+ }
+ else
+ tprintf("{st_mode=%s, ", sprintmode(statbuf->st_mode));
+ switch (statbuf->st_mode & S_IFMT) {
+ case S_IFCHR: case S_IFBLK:
+#ifdef HAVE_STRUCT_STAT_ST_RDEV
+ tprintf("st_rdev=makedev(%lu, %lu), ",
+ (unsigned long) major(statbuf->st_rdev),
+ (unsigned long) minor(statbuf->st_rdev));
+#else /* !HAVE_STRUCT_STAT_ST_RDEV */
+ tprintf("st_size=makedev(%lu, %lu), ",
+ (unsigned long) major(statbuf->st_size),
+ (unsigned long) minor(statbuf->st_size));
+#endif /* !HAVE_STRUCT_STAT_ST_RDEV */
+ break;
+ default:
+ tprintf("st_size=%lu, ", 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));
+#if HAVE_STRUCT_STAT_ST_FLAGS
+ tprintf(", st_flags=");
+ printflags(fileflags, statbuf->st_flags, "UF_???");
+#endif
+#if HAVE_STRUCT_STAT_ST_ACLCNT
+ tprintf(", st_aclcnt=%d", statbuf->st_aclcnt);
+#endif
+#if HAVE_STRUCT_STAT_ST_LEVEL
+ tprintf(", st_level=%ld", statbuf->st_level);
+#endif
+#if HAVE_STRUCT_STAT_ST_FSTYPE
+ tprintf(", st_fstype=%.*s",
+ (int) sizeof statbuf->st_fstype, statbuf->st_fstype);
+#endif
+#if HAVE_STRUCT_STAT_ST_GEN
+ tprintf(", st_gen=%u", statbuf->st_gen);
+#endif
+ tprintf("}");
+ }
+ else
+ tprintf("...}");
+}
+
+
+static void
+printstat(tcp, addr)
+struct tcb *tcp;
+long addr;
+{
+ struct stat statbuf;
+
+#ifdef LINUXSPARC
+ if (current_personality == 1) {
+ printstatsol(tcp, addr);
+ return;
+ }
+#ifdef SPARC64
+ else if (current_personality == 2) {
+ printstat_sparc64(tcp, addr);
+ return;
+ }
+#endif
+#endif /* LINUXSPARC */
+
+ if (!addr) {
+ tprintf("NULL");
+ return;
+ }
+ if (syserror(tcp) || !verbose(tcp)) {
+ tprintf("%#lx", addr);
+ return;
+ }
+ if (umove(tcp, addr, &statbuf) < 0) {
+ tprintf("{...}");
+ return;
+ }
+
+ realprintstat(tcp, &statbuf);
+}
+#endif /* !HAVE_LONG_LONG_OFF_T */
+
+#ifdef HAVE_STAT64
+static void
+printstat64(tcp, addr)
+struct tcb *tcp;
+long addr;
+{
+ struct stat64 statbuf;
+
+#ifdef LINUXSPARC
+ if (current_personality == 1) {
+ printstatsol(tcp, addr);
+ return;
+ }
+#ifdef SPARC64
+ else if (current_personality == 2) {
+ printstat_sparc64(tcp, addr);
+ return;
+ }
+#endif
+#endif /* LINUXSPARC */
+
+ if (!addr) {
+ tprintf("NULL");
+ return;
+ }
+ if (syserror(tcp) || !verbose(tcp)) {
+ tprintf("%#lx", addr);
+ return;
+ }
+ if (umove(tcp, addr, &statbuf) < 0) {
+ tprintf("{...}");
+ return;
+ }
+
+ if (!abbrev(tcp)) {
+#ifdef HAVE_LONG_LONG
+ tprintf("{st_dev=makedev(%lu, %lu), st_ino=%llu, st_mode=%s, ",
+#else
+ tprintf("{st_dev=makedev(%lu, %lu), st_ino=%lu, st_mode=%s, ",
+#endif
+ (unsigned long) major(statbuf.st_dev),
+ (unsigned long) minor(statbuf.st_dev),
+#ifdef HAVE_LONG_LONG
+ (unsigned long long) statbuf.st_ino,
+#else
+ (unsigned long) statbuf.st_ino,
+#endif
+ 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);
+#ifdef HAVE_STRUCT_STAT_ST_BLKSIZE
+ tprintf("st_blksize=%lu, ",
+ (unsigned long) statbuf.st_blksize);
+#endif /* HAVE_STRUCT_STAT_ST_BLKSIZE */
+#ifdef HAVE_STRUCT_STAT_ST_BLOCKS
+ tprintf("st_blocks=%lu, ", (unsigned long) statbuf.st_blocks);
+#endif /* HAVE_STRUCT_STAT_ST_BLOCKS */
+ }
+ else
+ tprintf("{st_mode=%s, ", sprintmode(statbuf.st_mode));
+ switch (statbuf.st_mode & S_IFMT) {
+ case S_IFCHR: case S_IFBLK:
+#ifdef HAVE_STRUCT_STAT_ST_RDEV
+ tprintf("st_rdev=makedev(%lu, %lu), ",
+ (unsigned long) major(statbuf.st_rdev),
+ (unsigned long) minor(statbuf.st_rdev));
+#else /* !HAVE_STRUCT_STAT_ST_RDEV */
+ tprintf("st_size=makedev(%lu, %lu), ",
+ (unsigned long) major(statbuf.st_size),
+ (unsigned long) minor(statbuf.st_size));
+#endif /* !HAVE_STRUCT_STAT_ST_RDEV */
+ break;
+ default:
+ tprintf("st_size=%llu, ", 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));
+#if HAVE_STRUCT_STAT_ST_FLAGS
+ tprintf(", st_flags=");
+ printflags(fileflags, statbuf.st_flags, "UF_???");
+#endif
+#if HAVE_STRUCT_STAT_ST_ACLCNT
+ tprintf(", st_aclcnt=%d", statbuf.st_aclcnt);
+#endif
+#if HAVE_STRUCT_STAT_ST_LEVEL
+ tprintf(", st_level=%ld", statbuf.st_level);
+#endif
+#if HAVE_STRUCT_STAT_ST_FSTYPE
+ tprintf(", st_fstype=%.*s",
+ (int) sizeof statbuf.st_fstype, statbuf.st_fstype);
+#endif
+#if HAVE_STRUCT_STAT_ST_GEN
+ tprintf(", st_gen=%u", statbuf.st_gen);
+#endif
+ tprintf("}");
+ }
+ else
+ tprintf("...}");
+}
+#endif /* HAVE_STAT64 */
+
+#if defined(LINUX) && defined(HAVE_STRUCT___OLD_KERNEL_STAT)
+static void
+convertoldstat(oldbuf, newbuf)
+const struct __old_kernel_stat *oldbuf;
+struct stat *newbuf;
+{
+ newbuf->st_dev=oldbuf->st_dev;
+ newbuf->st_ino=oldbuf->st_ino;
+ newbuf->st_mode=oldbuf->st_mode;
+ newbuf->st_nlink=oldbuf->st_nlink;
+ newbuf->st_uid=oldbuf->st_uid;
+ newbuf->st_gid=oldbuf->st_gid;
+ newbuf->st_rdev=oldbuf->st_rdev;
+ newbuf->st_size=oldbuf->st_size;
+ newbuf->st_atime=oldbuf->st_atime;
+ newbuf->st_mtime=oldbuf->st_mtime;
+ newbuf->st_ctime=oldbuf->st_ctime;
+ newbuf->st_blksize=0; /* not supported in old_stat */
+ newbuf->st_blocks=0; /* not supported in old_stat */
+}
+
+
+static void
+printoldstat(tcp, addr)
+struct tcb *tcp;
+long addr;
+{
+ struct __old_kernel_stat statbuf;
+ struct stat newstatbuf;
+
+#ifdef LINUXSPARC
+ if (current_personality == 1) {
+ printstatsol(tcp, addr);
+ return;
+ }
+#endif /* LINUXSPARC */
+
+ if (!addr) {
+ tprintf("NULL");
+ return;
+ }
+ if (syserror(tcp) || !verbose(tcp)) {
+ tprintf("%#lx", addr);
+ return;
+ }
+ if (umove(tcp, addr, &statbuf) < 0) {
+ tprintf("{...}");
+ return;
+ }
+
+ convertoldstat(&statbuf, &newstatbuf);
+ realprintstat(tcp, &newstatbuf);
+}
+#endif /* LINUX && !IA64 && !HPPA && !X86_64 && !S390 && !S390X */
+
+#ifndef HAVE_LONG_LONG_OFF_T
+int
+sys_stat(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ tprintf(", ");
+ } else {
+ printstat(tcp, tcp->u_arg[1]);
+ }
+ return 0;
+}
+#endif
+
+int
+sys_stat64(tcp)
+struct tcb *tcp;
+{
+#ifdef HAVE_STAT64
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ tprintf(", ");
+ } else {
+ printstat64(tcp, tcp->u_arg[1]);
+ }
+ return 0;
+#else
+ return printargs(tcp);
+#endif
+}
+
+#if defined(LINUX) && defined(HAVE_STRUCT___OLD_KERNEL_STAT)
+int
+sys_oldstat(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ tprintf(", ");
+ } else {
+ printoldstat(tcp, tcp->u_arg[1]);
+ }
+ return 0;
+}
+#endif /* LINUX && HAVE_STRUCT___OLD_KERNEL_STAT */
+
+#ifndef HAVE_LONG_LONG_OFF_T
+int
+sys_fstat(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp))
+ tprintf("%ld, ", tcp->u_arg[0]);
+ else {
+ printstat(tcp, tcp->u_arg[1]);
+ }
+ return 0;
+}
+#endif
+
+int
+sys_fstat64(tcp)
+struct tcb *tcp;
+{
+#ifdef HAVE_STAT64
+ if (entering(tcp))
+ tprintf("%ld, ", tcp->u_arg[0]);
+ else {
+ printstat64(tcp, tcp->u_arg[1]);
+ }
+ return 0;
+#else
+ return printargs(tcp);
+#endif
+}
+
+#if defined(LINUX) && defined(HAVE_STRUCT___OLD_KERNEL_STAT)
+int
+sys_oldfstat(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp))
+ tprintf("%ld, ", tcp->u_arg[0]);
+ else {
+ printoldstat(tcp, tcp->u_arg[1]);
+ }
+ return 0;
+}
+#endif /* LINUX && HAVE_STRUCT___OLD_KERNEL_STAT */
+
+#ifndef HAVE_LONG_LONG_OFF_T
+int
+sys_lstat(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ tprintf(", ");
+ } else {
+ printstat(tcp, tcp->u_arg[1]);
+ }
+ return 0;
+}
+#endif
+
+int
+sys_lstat64(tcp)
+struct tcb *tcp;
+{
+#ifdef HAVE_STAT64
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ tprintf(", ");
+ } else {
+ printstat64(tcp, tcp->u_arg[1]);
+ }
+ return 0;
+#else
+ return printargs(tcp);
+#endif
+}
+
+#if defined(LINUX) && defined(HAVE_STRUCT___OLD_KERNEL_STAT)
+int
+sys_oldlstat(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ tprintf(", ");
+ } else {
+ printoldstat(tcp, tcp->u_arg[1]);
+ }
+ return 0;
+}
+#endif /* LINUX && HAVE_STRUCT___OLD_KERNEL_STAT */
+
+
+#if defined(SVR4) || defined(LINUXSPARC)
+
+int
+sys_xstat(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, ", tcp->u_arg[0]);
+ printpath(tcp, tcp->u_arg[1]);
+ tprintf(", ");
+ } else {
+#ifdef _STAT64_VER
+ if (tcp->u_arg[0] == _STAT64_VER)
+ printstat64 (tcp, tcp->u_arg[2]);
+ else
+#endif
+ printstat(tcp, tcp->u_arg[2]);
+ }
+ return 0;
+}
+
+int
+sys_fxstat(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp))
+ tprintf("%ld, %ld, ", tcp->u_arg[0], tcp->u_arg[1]);
+ else {
+#ifdef _STAT64_VER
+ if (tcp->u_arg[0] == _STAT64_VER)
+ printstat64 (tcp, tcp->u_arg[2]);
+ else
+#endif
+ printstat(tcp, tcp->u_arg[2]);
+ }
+ return 0;
+}
+
+int
+sys_lxstat(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, ", tcp->u_arg[0]);
+ printpath(tcp, tcp->u_arg[1]);
+ tprintf(", ");
+ } else {
+#ifdef _STAT64_VER
+ if (tcp->u_arg[0] == _STAT64_VER)
+ printstat64 (tcp, tcp->u_arg[2]);
+ else
+#endif
+ printstat(tcp, tcp->u_arg[2]);
+ }
+ return 0;
+}
+
+int
+sys_xmknod(tcp)
+struct tcb *tcp;
+{
+ int mode = tcp->u_arg[2];
+
+ if (entering(tcp)) {
+ tprintf("%ld, ", tcp->u_arg[0]);
+ printpath(tcp, tcp->u_arg[1]);
+ tprintf(", %s", sprintmode(mode));
+ switch (mode & S_IFMT) {
+ case S_IFCHR: case S_IFBLK:
+#ifdef LINUXSPARC
+ tprintf(", makedev(%lu, %lu)",
+ (unsigned long) ((tcp->u_arg[3] >> 18) & 0x3fff),
+ (unsigned long) (tcp->u_arg[3] & 0x3ffff));
+#else
+ tprintf(", makedev(%lu, %lu)",
+ (unsigned long) major(tcp->u_arg[3]),
+ (unsigned long) minor(tcp->u_arg[3]));
+#endif
+ break;
+ default:
+ break;
+ }
+ }
+ return 0;
+}
+
+#ifdef HAVE_SYS_ACL_H
+
+#include <sys/acl.h>
+
+static const struct xlat aclcmds[] = {
+#ifdef SETACL
+ { SETACL, "SETACL" },
+#endif
+#ifdef GETACL
+ { GETACL, "GETACL" },
+#endif
+#ifdef GETACLCNT
+ { GETACLCNT, "GETACLCNT" },
+#endif
+#ifdef ACL_GET
+ { ACL_GET, "ACL_GET" },
+#endif
+#ifdef ACL_SET
+ { ACL_SET, "ACL_SET" },
+#endif
+#ifdef ACL_CNT
+ { ACL_CNT, "ACL_CNT" },
+#endif
+ { 0, NULL },
+};
+
+int
+sys_acl(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ tprintf(", ");
+ printxval(aclcmds, tcp->u_arg[1], "???ACL???");
+ tprintf(", %ld", tcp->u_arg[2]);
+ /*
+ * FIXME - dump out the list of aclent_t's pointed to
+ * by "tcp->u_arg[3]" if it's not NULL.
+ */
+ if (tcp->u_arg[3])
+ tprintf(", %#lx", tcp->u_arg[3]);
+ else
+ tprintf(", NULL");
+ }
+ return 0;
+}
+
+
+int
+sys_facl(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, ", tcp->u_arg[0]);
+ printxval(aclcmds, tcp->u_arg[1], "???ACL???");
+ tprintf(", %ld", tcp->u_arg[2]);
+ /*
+ * FIXME - dump out the list of aclent_t's pointed to
+ * by "tcp->u_arg[3]" if it's not NULL.
+ */
+ if (tcp->u_arg[3])
+ tprintf(", %#lx", tcp->u_arg[3]);
+ else
+ tprintf(", NULL");
+ }
+ return 0;
+}
+
+
+static const struct xlat aclipc[] = {
+#ifdef IPC_SHM
+ { IPC_SHM, "IPC_SHM" },
+#endif
+#ifdef IPC_SEM
+ { IPC_SEM, "IPC_SEM" },
+#endif
+#ifdef IPC_MSG
+ { IPC_MSG, "IPC_MSG" },
+#endif
+ { 0, NULL },
+};
+
+
+int
+sys_aclipc(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printxval(aclipc, tcp->u_arg[0], "???IPC???");
+ tprintf(", %#lx, ", tcp->u_arg[1]);
+ printxval(aclcmds, tcp->u_arg[2], "???ACL???");
+ tprintf(", %ld", tcp->u_arg[3]);
+ /*
+ * FIXME - dump out the list of aclent_t's pointed to
+ * by "tcp->u_arg[4]" if it's not NULL.
+ */
+ if (tcp->u_arg[4])
+ tprintf(", %#lx", tcp->u_arg[4]);
+ else
+ tprintf(", NULL");
+ }
+ return 0;
+}
+
+
+
+#endif /* HAVE_SYS_ACL_H */
+
+#endif /* SVR4 || LINUXSPARC */
+
+#ifdef LINUX
+
+static const struct xlat fsmagic[] = {
+ { 0x73757245, "CODA_SUPER_MAGIC" },
+ { 0x012ff7b7, "COH_SUPER_MAGIC" },
+ { 0x1373, "DEVFS_SUPER_MAGIC" },
+ { 0x1cd1, "DEVPTS_SUPER_MAGIC" },
+ { 0x414A53, "EFS_SUPER_MAGIC" },
+ { 0xef51, "EXT2_OLD_SUPER_MAGIC" },
+ { 0xef53, "EXT2_SUPER_MAGIC" },
+ { 0x137d, "EXT_SUPER_MAGIC" },
+ { 0xf995e849, "HPFS_SUPER_MAGIC" },
+ { 0x9660, "ISOFS_SUPER_MAGIC" },
+ { 0x137f, "MINIX_SUPER_MAGIC" },
+ { 0x138f, "MINIX_SUPER_MAGIC2" },
+ { 0x2468, "MINIX2_SUPER_MAGIC" },
+ { 0x2478, "MINIX2_SUPER_MAGIC2" },
+ { 0x4d44, "MSDOS_SUPER_MAGIC" },
+ { 0x564c, "NCP_SUPER_MAGIC" },
+ { 0x6969, "NFS_SUPER_MAGIC" },
+ { 0x9fa0, "PROC_SUPER_MAGIC" },
+ { 0x002f, "QNX4_SUPER_MAGIC" },
+ { 0x52654973, "REISERFS_SUPER_MAGIC" },
+ { 0x02011994, "SHMFS_SUPER_MAGIC" },
+ { 0x517b, "SMB_SUPER_MAGIC" },
+ { 0x012ff7b6, "SYSV2_SUPER_MAGIC" },
+ { 0x012ff7b5, "SYSV4_SUPER_MAGIC" },
+ { 0x00011954, "UFS_MAGIC" },
+ { 0x54190100, "UFS_CIGAM" },
+ { 0x012ff7b4, "XENIX_SUPER_MAGIC" },
+ { 0x012fd16d, "XIAFS_SUPER_MAGIC" },
+ { 0x62656572, "SYSFS_MAGIC" },
+ { 0, NULL },
+};
+
+#endif /* LINUX */
+
+#ifndef SVR4
+
+static const char *
+sprintfstype(magic)
+int magic;
+{
+ static char buf[32];
+#ifdef LINUX
+ const char *s;
+
+ s = xlookup(fsmagic, magic);
+ if (s) {
+ sprintf(buf, "\"%s\"", s);
+ return buf;
+ }
+#endif /* LINUX */
+ sprintf(buf, "%#x", magic);
+ return buf;
+}
+
+static void
+printstatfs(tcp, addr)
+struct tcb *tcp;
+long addr;
+{
+ struct statfs statbuf;
+
+ if (syserror(tcp) || !verbose(tcp)) {
+ tprintf("%#lx", addr);
+ return;
+ }
+ if (umove(tcp, addr, &statbuf) < 0) {
+ tprintf("{...}");
+ return;
+ }
+#ifdef ALPHA
+
+ tprintf("{f_type=%s, f_fbsize=%u, f_blocks=%u, f_bfree=%u, ",
+ sprintfstype(statbuf.f_type),
+ statbuf.f_bsize, statbuf.f_blocks, statbuf.f_bfree);
+ tprintf("f_bavail=%u, f_files=%u, f_ffree=%u, f_fsid={%d, %d}, f_namelen=%u",
+ statbuf.f_bavail,statbuf.f_files, statbuf.f_ffree,
+ statbuf.f_fsid.__val[0], statbuf.f_fsid.__val[1],
+ statbuf.f_namelen);
+#else /* !ALPHA */
+ tprintf("{f_type=%s, f_bsize=%lu, f_blocks=%lu, f_bfree=%lu, ",
+ sprintfstype(statbuf.f_type),
+ (unsigned long)statbuf.f_bsize,
+ (unsigned long)statbuf.f_blocks,
+ (unsigned long)statbuf.f_bfree);
+ tprintf("f_bavail=%lu, f_files=%lu, f_ffree=%lu, f_fsid={%d, %d}",
+ (unsigned long)statbuf.f_bavail,
+ (unsigned long)statbuf.f_files,
+ (unsigned long)statbuf.f_ffree,
+ statbuf.f_fsid.__val[0], statbuf.f_fsid.__val[1]);
+#ifdef LINUX
+ tprintf(", f_namelen=%lu", (unsigned long)statbuf.f_namelen);
+#endif /* LINUX */
+#endif /* !ALPHA */
+#ifdef _STATFS_F_FRSIZE
+ tprintf(", f_frsize=%lu", (unsigned long)statbuf.f_frsize);
+#endif
+ tprintf("}");
+}
+
+int
+sys_statfs(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ tprintf(", ");
+ } else {
+ printstatfs(tcp, tcp->u_arg[1]);
+ }
+ return 0;
+}
+
+int
+sys_fstatfs(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%lu, ", tcp->u_arg[0]);
+ } else {
+ printstatfs(tcp, tcp->u_arg[1]);
+ }
+ return 0;
+}
+
+#ifdef LINUX
+static void
+printstatfs64(tcp, addr)
+struct tcb *tcp;
+long addr;
+{
+ struct statfs64 statbuf;
+
+ if (syserror(tcp) || !verbose(tcp)) {
+ tprintf("%#lx", addr);
+ return;
+ }
+ if (umove(tcp, addr, &statbuf) < 0) {
+ tprintf("{...}");
+ return;
+ }
+ tprintf("{f_type=%s, f_bsize=%llu, f_blocks=%llu, f_bfree=%llu, ",
+ sprintfstype(statbuf.f_type),
+ (unsigned long long)statbuf.f_bsize,
+ (unsigned long long)statbuf.f_blocks,
+ (unsigned long long)statbuf.f_bfree);
+ tprintf("f_bavail=%llu, f_files=%llu, f_ffree=%llu, f_fsid={%d, %d}",
+ (unsigned long long)statbuf.f_bavail,
+ (unsigned long long)statbuf.f_files,
+ (unsigned long long)statbuf.f_ffree,
+ statbuf.f_fsid.__val[0], statbuf.f_fsid.__val[1]);
+ tprintf(", f_namelen=%lu", (unsigned long)statbuf.f_namelen);
+#ifdef _STATFS_F_FRSIZE
+ tprintf(", f_frsize=%llu", (unsigned long long)statbuf.f_frsize);
+#endif
+ tprintf("}");
+}
+
+int
+sys_statfs64(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ tprintf(", %lu, ", tcp->u_arg[1]);
+ } else {
+ if (tcp->u_arg[1] == sizeof (struct statfs64))
+ printstatfs64(tcp, tcp->u_arg[2]);
+ else
+ tprintf("{???}");
+ }
+ return 0;
+}
+
+int
+sys_fstatfs64(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%lu, %lu, ", tcp->u_arg[0], tcp->u_arg[1]);
+ } else {
+ if (tcp->u_arg[1] == sizeof (struct statfs64))
+ printstatfs64(tcp, tcp->u_arg[2]);
+ else
+ tprintf("{???}");
+ }
+ return 0;
+}
+#endif
+
+#if defined(LINUX) && defined(__alpha)
+
+int
+osf_statfs(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ tprintf(", ");
+ } else {
+ printstatfs(tcp, tcp->u_arg[1]);
+ tprintf(", %lu", tcp->u_arg[2]);
+ }
+ return 0;
+}
+
+int
+osf_fstatfs(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%lu, ", tcp->u_arg[0]);
+ } else {
+ printstatfs(tcp, tcp->u_arg[1]);
+ tprintf(", %lu", tcp->u_arg[2]);
+ }
+ return 0;
+}
+#endif /* LINUX && __alpha */
+
+#endif /* !SVR4 */
+
+#ifdef SUNOS4
+
+int
+sys_ustat(tcp)
+struct tcb *tcp;
+{
+ struct ustat statbuf;
+
+ if (entering(tcp)) {
+ tprintf("makedev(%lu, %lu), ",
+ (long) major(tcp->u_arg[0]),
+ (long) minor(tcp->u_arg[0]));
+ }
+ else {
+ if (syserror(tcp) || !verbose(tcp))
+ tprintf("%#lx", tcp->u_arg[1]);
+ else if (umove(tcp, tcp->u_arg[1], &statbuf) < 0)
+ tprintf("{...}");
+ else {
+ tprintf("{f_tfree=%lu, f_tinode=%lu, ",
+ statbuf.f_tfree, statbuf.f_tinode);
+ tprintf("f_fname=\"%.*s\", ",
+ (int) sizeof(statbuf.f_fname),
+ statbuf.f_fname);
+ tprintf("f_fpack=\"%.*s\"}",
+ (int) sizeof(statbuf.f_fpack),
+ statbuf.f_fpack);
+ }
+ }
+ return 0;
+}
+
+#endif /* SUNOS4 */
+
+int
+sys_pivotroot(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ tprintf(", ");
+ printpath(tcp, tcp->u_arg[1]);
+ }
+ return 0;
+}
+
+
+/* directory */
+int
+sys_chdir(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ }
+ return 0;
+}
+
+int
+sys_mkdir(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ tprintf(", %#lo", tcp->u_arg[1]);
+ }
+ return 0;
+}
+
+int
+sys_rmdir(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ }
+ return 0;
+}
+
+int
+sys_fchdir(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld", tcp->u_arg[0]);
+ }
+ return 0;
+}
+
+int
+sys_chroot(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ }
+ return 0;
+}
+
+int
+sys_fchroot(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld", tcp->u_arg[0]);
+ }
+ return 0;
+}
+
+int
+sys_link(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ tprintf(", ");
+ printpath(tcp, tcp->u_arg[1]);
+ }
+ return 0;
+}
+
+int
+sys_unlink(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ }
+ return 0;
+}
+
+int
+sys_symlink(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ tprintf(", ");
+ printpath(tcp, tcp->u_arg[1]);
+ }
+ return 0;
+}
+
+int
+sys_readlink(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ tprintf(", ");
+ } else {
+ if (syserror(tcp))
+ tprintf("%#lx", tcp->u_arg[1]);
+ else
+ printpathn(tcp, tcp->u_arg[1], tcp->u_rval);
+ tprintf(", %lu", tcp->u_arg[2]);
+ }
+ return 0;
+}
+
+int
+sys_rename(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ tprintf(", ");
+ printpath(tcp, tcp->u_arg[1]);
+ }
+ return 0;
+}
+
+int
+sys_chown(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ printuid(", ", tcp->u_arg[1]);
+ printuid(", ", tcp->u_arg[2]);
+ }
+ return 0;
+}
+
+int
+sys_fchown(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld", tcp->u_arg[0]);
+ printuid(", ", tcp->u_arg[1]);
+ printuid(", ", tcp->u_arg[2]);
+ }
+ return 0;
+}
+
+int
+sys_chmod(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ tprintf(", %#lo", tcp->u_arg[1]);
+ }
+ return 0;
+}
+
+int
+sys_fchmod(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, %#lo", tcp->u_arg[0], tcp->u_arg[1]);
+ }
+ return 0;
+}
+
+#ifdef ALPHA
+int
+sys_osf_utimes(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ tprintf(", ");
+ printtv32(tcp, tcp->u_arg[1]);
+ }
+ return 0;
+}
+#endif
+
+int
+sys_utimes(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ tprintf(", ");
+ printtv(tcp, tcp->u_arg[1]);
+ }
+ return 0;
+}
+
+int
+sys_utime(tcp)
+struct tcb *tcp;
+{
+ long ut[2];
+
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ tprintf(", ");
+ if (!tcp->u_arg[1])
+ tprintf("NULL");
+ else if (!verbose(tcp))
+ tprintf("%#lx", tcp->u_arg[1]);
+ else if (umoven(tcp, tcp->u_arg[1], sizeof ut,
+ (char *) ut) < 0)
+ tprintf("[?, ?]");
+ else {
+ tprintf("[%s,", sprinttime(ut[0]));
+ tprintf(" %s]", sprinttime(ut[1]));
+ }
+ }
+ return 0;
+}
+
+int
+sys_mknod(tcp)
+struct tcb *tcp;
+{
+ int mode = tcp->u_arg[1];
+
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ tprintf(", %s", sprintmode(mode));
+ switch (mode & S_IFMT) {
+ case S_IFCHR: case S_IFBLK:
+#ifdef LINUXSPARC
+ if (current_personality == 1)
+ tprintf(", makedev(%lu, %lu)",
+ (unsigned long) ((tcp->u_arg[2] >> 18) & 0x3fff),
+ (unsigned long) (tcp->u_arg[2] & 0x3ffff));
+ else
+#endif
+ tprintf(", makedev(%lu, %lu)",
+ (unsigned long) major(tcp->u_arg[2]),
+ (unsigned long) minor(tcp->u_arg[2]));
+ break;
+ default:
+ break;
+ }
+ }
+ return 0;
+}
+
+int
+sys_mkfifo(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ tprintf(", %#lo", tcp->u_arg[1]);
+ }
+ return 0;
+}
+
+int
+sys_fsync(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld", tcp->u_arg[0]);
+ }
+ return 0;
+}
+
+#ifdef LINUX
+
+static void
+printdir(tcp, addr)
+struct tcb *tcp;
+long addr;
+{
+ struct dirent d;
+
+ if (!verbose(tcp)) {
+ tprintf("%#lx", addr);
+ return;
+ }
+ if (umove(tcp, addr, &d) < 0) {
+ tprintf("{...}");
+ return;
+ }
+ tprintf("{d_ino=%ld, ", (unsigned long) d.d_ino);
+ tprintf("d_name=");
+ printpathn(tcp, (long) ((struct dirent *) addr)->d_name, d.d_reclen);
+ tprintf("}");
+}
+
+int
+sys_readdir(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%lu, ", tcp->u_arg[0]);
+ } else {
+ if (syserror(tcp) || tcp->u_rval == 0 || !verbose(tcp))
+ tprintf("%#lx", tcp->u_arg[1]);
+ else
+ printdir(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]);
+ }
+ return 0;
+}
+
+#endif /* LINUX */
+
+#if defined FREEBSD || defined LINUX
+static const struct xlat direnttypes[] = {
+ { DT_UNKNOWN, "DT_UNKNOWN" },
+ { DT_FIFO, "DT_FIFO" },
+ { DT_CHR, "DT_CHR" },
+ { DT_DIR, "DT_DIR" },
+ { DT_BLK, "DT_BLK" },
+ { DT_REG, "DT_REG" },
+ { DT_LNK, "DT_LNK" },
+ { DT_SOCK, "DT_SOCK" },
+ { DT_WHT, "DT_WHT" },
+ { 0, NULL },
+};
+
+#endif
+
+int
+sys_getdents(tcp)
+struct tcb *tcp;
+{
+ int i, len, dents = 0;
+ char *buf;
+
+ if (entering(tcp)) {
+ tprintf("%lu, ", tcp->u_arg[0]);
+ return 0;
+ }
+ if (syserror(tcp) || !verbose(tcp)) {
+ tprintf("%#lx, %lu", tcp->u_arg[1], tcp->u_arg[2]);
+ return 0;
+ }
+ len = tcp->u_rval;
+ if ((buf = malloc(len)) == NULL) {
+ tprintf("%#lx, %lu", tcp->u_arg[1], tcp->u_arg[2]);
+ fprintf(stderr, "out of memory\n");
+ return 0;
+ }
+ if (umoven(tcp, tcp->u_arg[1], len, buf) < 0) {
+ tprintf("%#lx, %lu", tcp->u_arg[1], tcp->u_arg[2]);
+ free(buf);
+ return 0;
+ }
+ if (!abbrev(tcp))
+ tprintf("{");
+ for (i = 0; i < len;) {
+ struct kernel_dirent *d = (struct kernel_dirent *) &buf[i];
+#ifdef LINUX
+ if (!abbrev(tcp)) {
+ tprintf("%s{d_ino=%lu, d_off=%lu, ",
+ i ? " " : "", d->d_ino, d->d_off);
+ tprintf("d_reclen=%u, d_name=\"%s\"}",
+ d->d_reclen, d->d_name);
+ }
+#endif /* LINUX */
+#ifdef SVR4
+ if (!abbrev(tcp)) {
+ tprintf("%s{d_ino=%lu, d_off=%lu, ",
+ i ? " " : "",
+ (unsigned long) d->d_ino,
+ (unsigned long) d->d_off);
+ tprintf("d_reclen=%u, d_name=\"%s\"}",
+ d->d_reclen, d->d_name);
+ }
+#endif /* SVR4 */
+#ifdef SUNOS4
+ if (!abbrev(tcp)) {
+ tprintf("%s{d_off=%lu, d_fileno=%lu, d_reclen=%u, ",
+ i ? " " : "", d->d_off, d->d_fileno,
+ d->d_reclen);
+ tprintf("d_namlen=%u, d_name=\"%.*s\"}",
+ d->d_namlen, d->d_namlen, d->d_name);
+ }
+#endif /* SUNOS4 */
+#ifdef FREEBSD
+ if (!abbrev(tcp)) {
+ tprintf("%s{d_fileno=%u, d_reclen=%u, d_type=",
+ i ? " " : "", d->d_fileno, d->d_reclen);
+ printxval(direnttypes, d->d_type, "DT_???");
+ tprintf(", d_namlen=%u, d_name=\"%.*s\"}",
+ d->d_namlen, d->d_namlen, d->d_name);
+ }
+#endif /* FREEBSD */
+ if (!d->d_reclen) {
+ tprintf("/* d_reclen == 0, problem here */");
+ break;
+ }
+ i += d->d_reclen;
+ dents++;
+ }
+ if (!abbrev(tcp))
+ tprintf("}");
+ else
+ tprintf("/* %u entries */", dents);
+ tprintf(", %lu", tcp->u_arg[2]);
+ free(buf);
+ return 0;
+}
+
+
+#if _LFS64_LARGEFILE
+int
+sys_getdents64(tcp)
+struct tcb *tcp;
+{
+ int i, len, dents = 0;
+ char *buf;
+
+ if (entering(tcp)) {
+ tprintf("%lu, ", tcp->u_arg[0]);
+ return 0;
+ }
+ if (syserror(tcp) || !verbose(tcp)) {
+ tprintf("%#lx, %lu", tcp->u_arg[1], tcp->u_arg[2]);
+ return 0;
+ }
+ len = tcp->u_rval;
+ if ((buf = malloc(len)) == NULL) {
+ tprintf("%#lx, %lu", tcp->u_arg[1], tcp->u_arg[2]);
+ fprintf(stderr, "out of memory\n");
+ return 0;
+ }
+ if (umoven(tcp, tcp->u_arg[1], len, buf) < 0) {
+ tprintf("%#lx, %lu", tcp->u_arg[1], tcp->u_arg[2]);
+ free(buf);
+ return 0;
+ }
+ if (!abbrev(tcp))
+ tprintf("{");
+ for (i = 0; i < len;) {
+ struct dirent64 *d = (struct dirent64 *) &buf[i];
+#if defined(LINUX) || defined(SVR4)
+ if (!abbrev(tcp)) {
+ tprintf("%s{d_ino=%llu, d_off=%llu, ",
+ i ? " " : "",
+ d->d_ino,
+ d->d_off);
+#ifdef LINUX
+ tprintf("d_type=");
+ printxval(direnttypes, d->d_type, "DT_???");
+ tprintf(", ");
+#endif
+ tprintf("d_reclen=%u, d_name=\"%s\"}",
+ d->d_reclen, d->d_name);
+ }
+#endif /* LINUX || SVR4 */
+#ifdef SUNOS4
+ if (!abbrev(tcp)) {
+ tprintf("%s{d_off=%lu, d_fileno=%lu, d_reclen=%u, ",
+ i ? " " : "", d->d_off, d->d_fileno,
+ d->d_reclen);
+ tprintf("d_namlen=%u, d_name=\"%.*s\"}",
+ d->d_namlen, d->d_namlen, d->d_name);
+ }
+#endif /* SUNOS4 */
+ i += d->d_reclen;
+ dents++;
+ }
+ if (!abbrev(tcp))
+ tprintf("}");
+ else
+ tprintf("/* %u entries */", dents);
+ tprintf(", %lu", tcp->u_arg[2]);
+ free(buf);
+ return 0;
+}
+#endif
+
+#ifdef FREEBSD
+int
+sys_getdirentries(tcp)
+struct tcb * tcp;
+{
+ int i, len, dents = 0;
+ long basep;
+ char *buf;
+
+ if (entering(tcp)) {
+ tprintf("%lu, ", tcp->u_arg[0]);
+ return 0;
+ }
+ if (syserror(tcp) || !verbose(tcp)) {
+ tprintf("%#lx, %lu, %#lx", tcp->u_arg[1], tcp->u_arg[2], tcp->u_arg[3]);
+ return 0;
+ }
+ len = tcp->u_rval;
+ if ((buf = malloc(len)) == NULL) {
+ tprintf("%#lx, %lu, %#lx", tcp->u_arg[1], tcp->u_arg[2], tcp->u_arg[3]);
+ fprintf(stderr, "out of memory\n");
+ return 0;
+ }
+ if (umoven(tcp, tcp->u_arg[1], len, buf) < 0) {
+ tprintf("%#lx, %lu, %#lx", tcp->u_arg[1], tcp->u_arg[2], tcp->u_arg[3]);
+ free(buf);
+ return 0;
+ }
+ if (!abbrev(tcp))
+ tprintf("{");
+ for (i = 0; i < len;) {
+ struct kernel_dirent *d = (struct kernel_dirent *) &buf[i];
+ if (!abbrev(tcp)) {
+ tprintf("%s{d_fileno=%u, d_reclen=%u, d_type=",
+ i ? " " : "", d->d_fileno, d->d_reclen);
+ printxval(direnttypes, d->d_type, "DT_???");
+ tprintf(", d_namlen=%u, d_name=\"%.*s\"}",
+ d->d_namlen, d->d_namlen, d->d_name);
+ }
+ i += d->d_reclen;
+ dents++;
+ }
+ if (!abbrev(tcp))
+ tprintf("}");
+ else
+ tprintf("/* %u entries */", dents);
+ free(buf);
+ tprintf(", %lu", tcp->u_arg[2]);
+ if (umove(tcp, tcp->u_arg[3], &basep) < 0)
+ tprintf(", %#lx", tcp->u_arg[3]);
+ else
+ tprintf(", [%lu]", basep);
+ return 0;
+}
+#endif
+
+#ifdef LINUX
+int
+sys_getcwd(tcp)
+struct tcb *tcp;
+{
+ if (exiting(tcp)) {
+ if (syserror(tcp))
+ tprintf("%#lx", tcp->u_arg[0]);
+ else
+ printpathn(tcp, tcp->u_arg[0], tcp->u_rval - 1);
+ tprintf(", %lu", tcp->u_arg[1]);
+ }
+ return 0;
+}
+#endif /* LINUX */
+
+#ifdef FREEBSD
+int
+sys___getcwd(tcp)
+struct tcb *tcp;
+{
+ if (exiting(tcp)) {
+ if (syserror(tcp))
+ tprintf("%#lx", tcp->u_arg[0]);
+ else
+ printpathn(tcp, tcp->u_arg[0], tcp->u_arg[1]);
+ tprintf(", %lu", tcp->u_arg[1]);
+ }
+ return 0;
+}
+#endif
+
+#ifdef HAVE_SYS_ASYNCH_H
+
+int
+sys_aioread(tcp)
+struct tcb *tcp;
+{
+ struct aio_result_t res;
+
+ if (entering(tcp)) {
+ tprintf("%lu, ", tcp->u_arg[0]);
+ } else {
+ if (syserror(tcp))
+ tprintf("%#lx", tcp->u_arg[1]);
+ else
+ printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
+ tprintf(", %lu, %lu, ", tcp->u_arg[2], tcp->u_arg[3]);
+ printxval(whence, tcp->u_arg[4], "L_???");
+ if (syserror(tcp) || tcp->u_arg[5] == 0
+ || umove(tcp, tcp->u_arg[5], &res) < 0)
+ tprintf(", %#lx", tcp->u_arg[5]);
+ else
+ tprintf(", {aio_return %d aio_errno %d}",
+ res.aio_return, res.aio_errno);
+ }
+ return 0;
+}
+
+int
+sys_aiowrite(tcp)
+struct tcb *tcp;
+{
+ struct aio_result_t res;
+
+ if (entering(tcp)) {
+ tprintf("%lu, ", tcp->u_arg[0]);
+ printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
+ tprintf(", %lu, %lu, ", tcp->u_arg[2], tcp->u_arg[3]);
+ printxval(whence, tcp->u_arg[4], "L_???");
+ }
+ else {
+ if (tcp->u_arg[5] == 0)
+ tprintf(", NULL");
+ else if (syserror(tcp)
+ || umove(tcp, tcp->u_arg[5], &res) < 0)
+ tprintf(", %#lx", tcp->u_arg[5]);
+ else
+ tprintf(", {aio_return %d aio_errno %d}",
+ res.aio_return, res.aio_errno);
+ }
+ return 0;
+}
+
+int
+sys_aiowait(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp))
+ printtv(tcp, tcp->u_arg[0]);
+ return 0;
+}
+
+int
+sys_aiocancel(tcp)
+struct tcb *tcp;
+{
+ struct aio_result_t res;
+
+ if (exiting(tcp)) {
+ if (tcp->u_arg[0] == 0)
+ tprintf("NULL");
+ else if (syserror(tcp)
+ || umove(tcp, tcp->u_arg[0], &res) < 0)
+ tprintf("%#lx", tcp->u_arg[0]);
+ else
+ tprintf("{aio_return %d aio_errno %d}",
+ res.aio_return, res.aio_errno);
+ }
+ return 0;
+}
+
+#endif /* HAVE_SYS_ASYNCH_H */
+
+static const struct xlat xattrflags[] = {
+#ifdef XATTR_CREATE
+ { XATTR_CREATE, "XATTR_CREATE" },
+ { XATTR_REPLACE, "XATTR_REPLACE" },
+#endif
+ { 0, NULL }
+};
+
+static void
+print_xattr_val(tcp, failed, arg, insize, size)
+struct tcb *tcp;
+int failed;
+unsigned long arg;
+unsigned long insize, size;
+{
+ if (!failed) {
+ unsigned long capacity = 4 * size + 1;
+ unsigned char *buf = (capacity < size) ? NULL : malloc(capacity);
+ if (buf == NULL || /* probably a bogus size argument */
+ umoven(tcp, arg, size, (char *) &buf[3 * size]) < 0) {
+ failed = 1;
+ }
+ else {
+ unsigned char *out = buf;
+ unsigned char *in = &buf[3 * size];
+ size_t i;
+ for (i = 0; i < size; ++i)
+ if (isprint(in[i]))
+ *out++ = in[i];
+ else {
+#define tohex(n) "0123456789abcdef"[n]
+ *out++ = '\\';
+ *out++ = 'x';
+ *out++ = tohex(in[i] / 16);
+ *out++ = tohex(in[i] % 16);
+ }
+ /* Don't print terminating NUL if there is one. */
+ if (in[i - 1] == '\0')
+ out -= 4;
+ *out = '\0';
+ tprintf(", \"%s\", %ld", buf, insize);
+ }
+ free(buf);
+ }
+ if (failed)
+ tprintf(", 0x%lx, %ld", arg, insize);
+}
+
+int
+sys_setxattr(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ tprintf(", ");
+ printstr(tcp, tcp->u_arg[1], -1);
+ print_xattr_val(tcp, 0, tcp->u_arg[2], tcp->u_arg[3], tcp->u_arg[3]);
+ tprintf(", ");
+ printflags(xattrflags, tcp->u_arg[4], "XATTR_???");
+ }
+ return 0;
+}
+
+int
+sys_fsetxattr(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, ", tcp->u_arg[0]);
+ printstr(tcp, tcp->u_arg[1], -1);
+ print_xattr_val(tcp, 0, tcp->u_arg[2], tcp->u_arg[3], tcp->u_arg[3]);
+ tprintf(", ");
+ printflags(xattrflags, tcp->u_arg[4], "XATTR_???");
+ }
+ return 0;
+}
+
+int
+sys_getxattr(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ tprintf(", ");
+ printstr(tcp, tcp->u_arg[1], -1);
+ } else {
+ print_xattr_val(tcp, syserror(tcp), tcp->u_arg[2], tcp->u_arg[3],
+ tcp->u_rval);
+ }
+ return 0;
+}
+
+int
+sys_fgetxattr(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, ", tcp->u_arg[0]);
+ printstr(tcp, tcp->u_arg[1], -1);
+ } else {
+ print_xattr_val(tcp, syserror(tcp), tcp->u_arg[2], tcp->u_arg[3],
+ tcp->u_rval);
+ }
+ return 0;
+}
+
+int
+sys_listxattr(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ } else {
+ /* XXX Print value in format */
+ tprintf(", %p, %lu", (void *) tcp->u_arg[1], tcp->u_arg[2]);
+ }
+ return 0;
+}
+
+int
+sys_flistxattr(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld", tcp->u_arg[0]);
+ } else {
+ /* XXX Print value in format */
+ tprintf(", %p, %lu", (void *) tcp->u_arg[1], tcp->u_arg[2]);
+ }
+ return 0;
+}
+
+int
+sys_removexattr(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ tprintf(", ");
+ printstr(tcp, tcp->u_arg[1], -1);
+ }
+ return 0;
+}
+
+int
+sys_fremovexattr(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, ", tcp->u_arg[0]);
+ printstr(tcp, tcp->u_arg[1], -1);
+ }
+ return 0;
+}
+
+static const struct xlat advise[] = {
+ { POSIX_FADV_NORMAL, "POSIX_FADV_NORMAL" },
+ { POSIX_FADV_RANDOM, "POSIX_FADV_RANDOM" },
+ { POSIX_FADV_SEQUENTIAL, "POSIX_FADV_SEQUENTIAL" },
+ { POSIX_FADV_WILLNEED, "POSIX_FADV_WILLNEED" },
+ { POSIX_FADV_DONTNEED, "POSIX_FADV_DONTNEED" },
+ { POSIX_FADV_NOREUSE, "POSIX_FADV_NOREUSE" },
+ { 0, NULL }
+};
+
+
+#ifdef LINUX
+int
+sys_fadvise64(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, %lld, %ld, ",
+ tcp->u_arg[0],
+# if defined IA64 || defined X86_64 || defined ALPHA
+ (long long int) tcp->u_arg[1], tcp->u_arg[2]);
+ printxval(advise, tcp->u_arg[3], "POSIX_FADV_???");
+#else
+ LONG_LONG(tcp->u_arg[1], tcp->u_arg[2]), tcp->u_arg[3]);
+ printxval(advise, tcp->u_arg[4], "POSIX_FADV_???");
+#endif
+ }
+ return 0;
+}
+#endif
+
+
+int
+sys_fadvise64_64(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, %lld, %lld, ",
+ tcp->u_arg[0],
+# if defined IA64 || defined X86_64 || defined ALPHA
+ (long long int) tcp->u_arg[1], (long long int) tcp->u_arg[2]);
+ printxval(advise, tcp->u_arg[3], "POSIX_FADV_???");
+#else
+ LONG_LONG(tcp->u_arg[1], tcp->u_arg[2]),
+ LONG_LONG(tcp->u_arg[3], tcp->u_arg[4]));
+ printxval(advise, tcp->u_arg[5], "POSIX_FADV_???");
+#endif
+ }
+ return 0;
+}
+
+//#endif /*HAVE_ANDROID_OS */
diff --git a/install-sh b/install-sh
new file mode 100755
index 0000000..36f96f3
--- /dev/null
+++ b/install-sh
@@ -0,0 +1,276 @@
+#!/bin/sh
+#
+# install - install a program, script, or datafile
+# This comes from X11R5 (mit/util/scripts/install.sh).
+#
+# Copyright 1991 by the Massachusetts Institute of Technology
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of M.I.T. not be used in advertising or
+# publicity pertaining to distribution of the software without specific,
+# written prior permission. M.I.T. makes no representations about the
+# suitability of this software for any purpose. It is provided "as is"
+# without express or implied warranty.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# `make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch. It can only install one file at a time, a restriction
+# shared with many OS's install programs.
+
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit="${DOITPROG-}"
+
+
+# put in absolute paths if you don't have them in your path; or use env. vars.
+
+mvprog="${MVPROG-mv}"
+cpprog="${CPPROG-cp}"
+chmodprog="${CHMODPROG-chmod}"
+chownprog="${CHOWNPROG-chown}"
+chgrpprog="${CHGRPPROG-chgrp}"
+stripprog="${STRIPPROG-strip}"
+rmprog="${RMPROG-rm}"
+mkdirprog="${MKDIRPROG-mkdir}"
+
+transformbasename=""
+transform_arg=""
+instcmd="$mvprog"
+chmodcmd="$chmodprog 0755"
+chowncmd=""
+chgrpcmd=""
+stripcmd=""
+rmcmd="$rmprog -f"
+mvcmd="$mvprog"
+src=""
+dst=""
+dir_arg=""
+
+while [ x"$1" != x ]; do
+ case $1 in
+ -c) instcmd=$cpprog
+ shift
+ continue;;
+
+ -d) dir_arg=true
+ shift
+ continue;;
+
+ -m) chmodcmd="$chmodprog $2"
+ shift
+ shift
+ continue;;
+
+ -o) chowncmd="$chownprog $2"
+ shift
+ shift
+ continue;;
+
+ -g) chgrpcmd="$chgrpprog $2"
+ shift
+ shift
+ continue;;
+
+ -s) stripcmd=$stripprog
+ shift
+ continue;;
+
+ -t=*) transformarg=`echo $1 | sed 's/-t=//'`
+ shift
+ continue;;
+
+ -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
+ shift
+ continue;;
+
+ *) if [ x"$src" = x ]
+ then
+ src=$1
+ else
+ # this colon is to work around a 386BSD /bin/sh bug
+ :
+ dst=$1
+ fi
+ shift
+ continue;;
+ esac
+done
+
+if [ x"$src" = x ]
+then
+ echo "$0: no input file specified" >&2
+ exit 1
+else
+ :
+fi
+
+if [ x"$dir_arg" != x ]; then
+ dst=$src
+ src=""
+
+ if [ -d "$dst" ]; then
+ instcmd=:
+ chmodcmd=""
+ else
+ instcmd=$mkdirprog
+ fi
+else
+
+# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
+# might cause directories to be created, which would be especially bad
+# if $src (and thus $dsttmp) contains '*'.
+
+ if [ -f "$src" ] || [ -d "$src" ]
+ then
+ :
+ else
+ echo "$0: $src does not exist" >&2
+ exit 1
+ fi
+
+ if [ x"$dst" = x ]
+ then
+ echo "$0: no destination specified" >&2
+ exit 1
+ else
+ :
+ fi
+
+# If destination is a directory, append the input filename; if your system
+# does not like double slashes in filenames, you may need to add some logic
+
+ if [ -d "$dst" ]
+ then
+ dst=$dst/`basename "$src"`
+ else
+ :
+ fi
+fi
+
+## this sed command emulates the dirname command
+dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
+
+# Make sure that the destination directory exists.
+# this part is taken from Noah Friedman's mkinstalldirs script
+
+# Skip lots of stat calls in the usual case.
+if [ ! -d "$dstdir" ]; then
+defaultIFS='
+ '
+IFS="${IFS-$defaultIFS}"
+
+oIFS=$IFS
+# Some sh's can't handle IFS=/ for some reason.
+IFS='%'
+set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
+IFS=$oIFS
+
+pathcomp=''
+
+while [ $# -ne 0 ] ; do
+ pathcomp=$pathcomp$1
+ shift
+
+ if [ ! -d "$pathcomp" ] ;
+ then
+ $mkdirprog "$pathcomp"
+ else
+ :
+ fi
+
+ pathcomp=$pathcomp/
+done
+fi
+
+if [ x"$dir_arg" != x ]
+then
+ $doit $instcmd "$dst" &&
+
+ if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dst"; else : ; fi &&
+ if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dst"; else : ; fi &&
+ if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dst"; else : ; fi &&
+ if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dst"; else : ; fi
+else
+
+# If we're going to rename the final executable, determine the name now.
+
+ if [ x"$transformarg" = x ]
+ then
+ dstfile=`basename "$dst"`
+ else
+ dstfile=`basename "$dst" $transformbasename |
+ sed $transformarg`$transformbasename
+ fi
+
+# don't allow the sed command to completely eliminate the filename
+
+ if [ x"$dstfile" = x ]
+ then
+ dstfile=`basename "$dst"`
+ else
+ :
+ fi
+
+# Make a couple of temp file names in the proper directory.
+
+ dsttmp=$dstdir/#inst.$$#
+ rmtmp=$dstdir/#rm.$$#
+
+# Trap to clean up temp files at exit.
+
+ trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0
+ trap '(exit $?); exit' 1 2 13 15
+
+# Move or copy the file name to the temp name
+
+ $doit $instcmd "$src" "$dsttmp" &&
+
+# and set any options; do chmod last to preserve setuid bits
+
+# If any of these fail, we abort the whole thing. If we want to
+# ignore errors from any of these, just make sure not to ignore
+# errors from the above "$doit $instcmd $src $dsttmp" command.
+
+ if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp"; else :;fi &&
+ if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp"; else :;fi &&
+ if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp"; else :;fi &&
+ if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; else :;fi &&
+
+# Now remove or move aside any old file at destination location. We try this
+# two ways since rm can't unlink itself on some systems and the destination
+# file might be busy for other reasons. In this case, the final cleanup
+# might fail but the new file should still install successfully.
+
+{
+ if [ -f "$dstdir/$dstfile" ]
+ then
+ $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null ||
+ $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null ||
+ {
+ echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
+ (exit 1); exit
+ }
+ else
+ :
+ fi
+} &&
+
+# Now rename the file to the real destination.
+
+ $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
+
+fi &&
+
+# The final little trick to "correctly" pass the exit status to the exit trap.
+
+{
+ (exit 0); exit
+}
diff --git a/io.c b/io.c
new file mode 100644
index 0000000..db86f59
--- /dev/null
+++ b/io.c
@@ -0,0 +1,387 @@
+/*
+ * Copyright (c) 1991, 1992 Paul Kranenburg <pk@cs.few.eur.nl>
+ * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
+ * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
+ * Copyright (c) 1996-1999 Wichert Akkerman <wichert@cistron.nl>
+ * 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.
+ *
+ * $Id: io.c,v 1.20 2005/06/01 19:22:08 roland Exp $
+ */
+
+#include "defs.h"
+
+#include <fcntl.h>
+#if HAVE_SYS_UIO_H
+#include <sys/uio.h>
+#endif
+
+#ifdef HAVE_LONG_LONG_OFF_T
+/*
+ * Hacks for systems that have a long long off_t
+ */
+
+#define sys_pread64 sys_pread
+#define sys_pwrite64 sys_pwrite
+#endif
+
+int
+sys_read(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, ", tcp->u_arg[0]);
+ } else {
+ if (syserror(tcp))
+ tprintf("%#lx", tcp->u_arg[1]);
+ else
+ printstr(tcp, tcp->u_arg[1], tcp->u_rval);
+ tprintf(", %lu", tcp->u_arg[2]);
+ }
+ return 0;
+}
+
+int
+sys_write(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, ", tcp->u_arg[0]);
+ printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
+ tprintf(", %lu", tcp->u_arg[2]);
+ }
+ return 0;
+}
+
+#if HAVE_SYS_UIO_H
+void
+tprint_iov(tcp, len, addr)
+struct tcb * tcp;
+unsigned long len;
+unsigned long addr;
+{
+ struct iovec iov;
+ unsigned long size, cur, end, abbrev_end;
+ int failed = 0;
+
+ if (!len) {
+ tprintf("[]");
+ return;
+ }
+ size = len * sizeof(iov);
+ end = addr + size;
+ if (!verbose(tcp) || size / sizeof(iov) != len || end < addr) {
+ tprintf("%#lx", addr);
+ return;
+ }
+ if (abbrev(tcp)) {
+ abbrev_end = addr + max_strlen * sizeof(iov);
+ if (abbrev_end < addr)
+ abbrev_end = end;
+ } else {
+ abbrev_end = end;
+ }
+ tprintf("[");
+ for (cur = addr; cur < end; cur += sizeof(iov)) {
+ if (cur > addr)
+ tprintf(", ");
+ if (cur >= abbrev_end) {
+ tprintf("...");
+ break;
+ }
+ if (umoven(tcp, cur, sizeof iov, (char *) &iov) < 0) {
+ tprintf("?");
+ failed = 1;
+ break;
+ }
+ tprintf("{");
+ printstr(tcp, (long) iov.iov_base, iov.iov_len);
+ tprintf(", %lu}", (unsigned long)iov.iov_len);
+ }
+ tprintf("]");
+ if (failed)
+ tprintf(" %#lx", addr);
+}
+
+int
+sys_readv(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, ", tcp->u_arg[0]);
+ } else {
+ if (syserror(tcp)) {
+ tprintf("%#lx, %lu",
+ tcp->u_arg[1], tcp->u_arg[2]);
+ return 0;
+ }
+ tprint_iov(tcp, tcp->u_arg[2], tcp->u_arg[1]);
+ tprintf(", %lu", tcp->u_arg[2]);
+ }
+ return 0;
+}
+
+int
+sys_writev(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, ", tcp->u_arg[0]);
+ tprint_iov(tcp, tcp->u_arg[2], tcp->u_arg[1]);
+ tprintf(", %lu", tcp->u_arg[2]);
+ }
+ return 0;
+}
+#endif
+
+#if defined(SVR4)
+
+int
+sys_pread(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, ", tcp->u_arg[0]);
+ } else {
+ if (syserror(tcp))
+ tprintf("%#lx", tcp->u_arg[1]);
+ else
+ printstr(tcp, tcp->u_arg[1], tcp->u_rval);
+#if UNIXWARE
+ /* off_t is signed int */
+ tprintf(", %lu, %ld", tcp->u_arg[2], tcp->u_arg[3]);
+#else
+ tprintf(", %lu, %llu", tcp->u_arg[2],
+ LONG_LONG(tcp->u_arg[3], tcp->u_arg[4]));
+#endif
+ }
+ return 0;
+}
+
+int
+sys_pwrite(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, ", tcp->u_arg[0]);
+ printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
+#if UNIXWARE
+ /* off_t is signed int */
+ tprintf(", %lu, %ld", tcp->u_arg[2], tcp->u_arg[3]);
+#else
+ tprintf(", %lu, %llu", tcp->u_arg[2],
+ LONG_LONG(tcp->u_arg[3], tcp->u_arg[4]));
+#endif
+ }
+ return 0;
+}
+#endif /* SVR4 */
+
+#ifdef FREEBSD
+#include <sys/types.h>
+#include <sys/socket.h>
+
+int
+sys_sendfile(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, %ld, %llu, %lu", tcp->u_arg[0], tcp->u_arg[1],
+ LONG_LONG(tcp->u_arg[2], tcp->u_arg[3]),
+ tcp->u_arg[4]);
+ } else {
+ off_t offset;
+
+ if (!tcp->u_arg[5])
+ tprintf(", NULL");
+ else {
+ struct sf_hdtr hdtr;
+
+ if (umove(tcp, tcp->u_arg[5], &hdtr) < 0)
+ tprintf(", %#lx", tcp->u_arg[5]);
+ else {
+ tprintf(", { ");
+ tprint_iov(tcp, hdtr.hdr_cnt, hdtr.headers);
+ tprintf(", %u, ", hdtr.hdr_cnt);
+ tprint_iov(tcp, hdtr.trl_cnt, hdtr.trailers);
+ tprintf(", %u }", hdtr.hdr_cnt);
+ }
+ }
+ if (!tcp->u_arg[6])
+ tprintf(", NULL");
+ else if (umove(tcp, tcp->u_arg[6], &offset) < 0)
+ tprintf(", %#lx", tcp->u_arg[6]);
+ else
+ tprintf(", [%llu]", offset);
+ tprintf(", %lu", tcp->u_arg[7]);
+ }
+ return 0;
+}
+#endif /* FREEBSD */
+
+#ifdef LINUX
+
+/* The SH4 ABI does allow long longs in odd-numbered registers, but
+ does not allow them to be split between registers and memory - and
+ there are only four argument registers for normal functions. As a
+ result pread takes an extra padding argument before the offset. This
+ was changed late in the 2.4 series (around 2.4.20). */
+#if defined(SH)
+#define PREAD_OFFSET_ARG 4
+#else
+#define PREAD_OFFSET_ARG 3
+#endif
+
+int
+sys_pread(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, ", tcp->u_arg[0]);
+ } else {
+ if (syserror(tcp))
+ tprintf("%#lx", tcp->u_arg[1]);
+ else
+ printstr(tcp, tcp->u_arg[1], tcp->u_rval);
+ ALIGN64 (tcp, PREAD_OFFSET_ARG); /* PowerPC alignment restriction */
+ tprintf(", %lu, %llu", tcp->u_arg[2],
+ *(unsigned long long *)&tcp->u_arg[PREAD_OFFSET_ARG]);
+ }
+ return 0;
+}
+
+int
+sys_pwrite(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, ", tcp->u_arg[0]);
+ printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
+ ALIGN64 (tcp, PREAD_OFFSET_ARG); /* PowerPC alignment restriction */
+ tprintf(", %lu, %llu", tcp->u_arg[2],
+ *(unsigned long long *)&tcp->u_arg[PREAD_OFFSET_ARG]);
+ }
+ return 0;
+}
+
+int
+sys_sendfile(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ off_t offset;
+
+ tprintf("%ld, %ld, ", tcp->u_arg[0], tcp->u_arg[1]);
+ if (!tcp->u_arg[2])
+ tprintf("NULL");
+ else if (umove(tcp, tcp->u_arg[2], &offset) < 0)
+ tprintf("%#lx", tcp->u_arg[2]);
+ else
+ tprintf("[%lu]", offset);
+ tprintf(", %lu", tcp->u_arg[3]);
+ }
+ return 0;
+}
+
+int
+sys_sendfile64(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ loff_t offset;
+
+ tprintf("%ld, %ld, ", tcp->u_arg[0], tcp->u_arg[1]);
+ if (!tcp->u_arg[2])
+ tprintf("NULL");
+ else if (umove(tcp, tcp->u_arg[2], &offset) < 0)
+ tprintf("%#lx", tcp->u_arg[2]);
+ else
+ tprintf("[%llu]", (unsigned long long int) offset);
+ tprintf(", %lu", tcp->u_arg[3]);
+ }
+ return 0;
+}
+
+#endif /* LINUX */
+
+#if _LFS64_LARGEFILE || HAVE_LONG_LONG_OFF_T
+int
+sys_pread64(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, ", tcp->u_arg[0]);
+ } else {
+ ALIGN64 (tcp, 3);
+ if (syserror(tcp))
+ tprintf("%#lx", tcp->u_arg[1]);
+ else
+ printstr(tcp, tcp->u_arg[1], tcp->u_rval);
+ tprintf(", %lu, %#llx", tcp->u_arg[2],
+ LONG_LONG(tcp->u_arg[3], tcp->u_arg[4]));
+ }
+ return 0;
+}
+
+int
+sys_pwrite64(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ ALIGN64 (tcp, 3);
+ tprintf("%ld, ", tcp->u_arg[0]);
+ printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
+ tprintf(", %lu, %#llx", tcp->u_arg[2],
+ LONG_LONG(tcp->u_arg[3], tcp->u_arg[4]));
+ }
+ return 0;
+}
+#endif
+
+int
+sys_ioctl(tcp)
+struct tcb *tcp;
+{
+ const struct ioctlent *iop;
+
+ if (entering(tcp)) {
+ tprintf("%ld, ", tcp->u_arg[0]);
+ iop = ioctl_lookup(tcp->u_arg[1]);
+ if (iop) {
+ tprintf("%s", iop->symbol);
+ while ((iop = ioctl_next_match(iop)))
+ tprintf(" or %s", iop->symbol);
+ } else
+ tprintf("%#lx", tcp->u_arg[1]);
+ ioctl_decode(tcp, tcp->u_arg[1], tcp->u_arg[2]);
+ }
+ else {
+ int ret;
+ if (!(ret = ioctl_decode(tcp, tcp->u_arg[1], tcp->u_arg[2])))
+ tprintf(", %#lx", tcp->u_arg[2]);
+ else
+ return ret - 1;
+ }
+ return 0;
+}
diff --git a/ioctl.c b/ioctl.c
new file mode 100644
index 0000000..4540260
--- /dev/null
+++ b/ioctl.c
@@ -0,0 +1,208 @@
+/*
+ * Copyright (c) 1991, 1992 Paul Kranenburg <pk@cs.few.eur.nl>
+ * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
+ * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
+ * Copyright (c) 1996-2001 Wichert Akkerman <wichert@cistron.nl>
+ * 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.
+ *
+ * $Id: ioctl.c,v 1.14 2005/02/02 20:32:13 roland Exp $
+ */
+
+#include "defs.h"
+
+const struct ioctlent ioctlent0[] = {
+/*
+ * `ioctlent.h' may be generated from `ioctlent.raw' by the auxiliary
+ * program `ioctlsort', such that the list is sorted by the `code' field.
+ * This has the side-effect of resolving the _IO.. macros into
+ * plain integers, eliminating the need to include here everything
+ * in "/usr/include" .
+ */
+#include "ioctlent.h"
+};
+
+#ifdef LINUX
+#include <asm/ioctl.h>
+#endif
+
+const int nioctlents0 = sizeof ioctlent0 / sizeof ioctlent0[0];
+
+#if SUPPORTED_PERSONALITIES >= 2
+const struct ioctlent ioctlent1[] = {
+#include "ioctlent1.h"
+};
+
+const int nioctlents1 = sizeof ioctlent1 / sizeof ioctlent1[0];
+#endif /* SUPPORTED_PERSONALITIES >= 2 */
+
+#if SUPPORTED_PERSONALITIES >= 3
+const struct ioctlent ioctlent2[] = {
+#include "ioctlent2.h"
+};
+
+const int nioctlents2 = sizeof ioctlent2 / sizeof ioctlent2[0];
+#endif /* SUPPORTED_PERSONALITIES >= 3 */
+
+const struct ioctlent *ioctlent;
+int nioctlents;
+
+static int
+compare(a, b)
+const void *a;
+const void *b;
+{
+ unsigned long code1 = ((struct ioctlent *) a)->code;
+ unsigned long code2 = ((struct ioctlent *) b)->code;
+ return (code1 > code2) ? 1 : (code1 < code2) ? -1 : 0;
+}
+
+const struct ioctlent *
+ioctl_lookup(code)
+long code;
+{
+ struct ioctlent *iop, ioent;
+
+ ioent.code = code;
+#ifdef LINUX
+ ioent.code &= (_IOC_NRMASK<<_IOC_NRSHIFT) | (_IOC_TYPEMASK<<_IOC_TYPESHIFT);
+#endif
+ iop = (struct ioctlent *) bsearch((char *) &ioent, (char *) ioctlent,
+ nioctlents, sizeof(struct ioctlent), compare);
+ while (iop > ioctlent)
+ if ((--iop)->code != ioent.code) {
+ iop++;
+ break;
+ }
+ return iop;
+}
+
+const struct ioctlent *
+ioctl_next_match(iop)
+const struct ioctlent *iop;
+{
+ long code;
+
+ code = (iop++)->code;
+ if (iop < ioctlent + nioctlents && iop->code == code)
+ return iop;
+ return NULL;
+}
+
+int
+ioctl_decode(tcp, code, arg)
+struct tcb *tcp;
+long code, arg;
+{
+ switch ((code >> 8) & 0xff) {
+#ifdef LINUX
+#if defined(ALPHA) || defined(POWERPC)
+ case 'f': case 't': case 'T':
+#else /* !ALPHA */
+ case 0x54:
+#endif /* !ALPHA */
+#else /* !LINUX */
+ case 'f': case 't': case 'T':
+#endif /* !LINUX */
+ return term_ioctl(tcp, code, arg);
+#ifdef LINUX
+ case 0x89:
+#else /* !LINUX */
+ case 'r': case 's': case 'i':
+#ifndef FREEBSD
+ case 'p':
+#endif
+#endif /* !LINUX */
+ return sock_ioctl(tcp, code, arg);
+#ifdef USE_PROCFS
+#ifndef HAVE_MP_PROCFS
+#ifndef FREEBSD
+ case 'q':
+#else
+ case 'p':
+#endif
+ return proc_ioctl(tcp, code, arg);
+#endif
+#endif /* USE_PROCFS */
+#ifdef HAVE_SYS_STREAM_H
+ case 'S':
+ return stream_ioctl(tcp, code, arg);
+#endif /* HAVE_SYS_STREAM_H */
+#ifdef LINUX
+ case 'p':
+ return rtc_ioctl(tcp, code, arg);
+#endif
+ default:
+ break;
+ }
+ return 0;
+}
+
+/*
+ * Registry of ioctl characters, culled from
+ * @(#)ioccom.h 1.7 89/06/16 SMI; from UCB ioctl.h 7.1 6/4/86
+ *
+ * char file where defined notes
+ * ---- ------------------ -----
+ * F sun/fbio.h
+ * G sun/gpio.h
+ * H vaxif/if_hy.h
+ * M sundev/mcpcmd.h *overlap*
+ * M sys/modem.h *overlap*
+ * S sys/stropts.h
+ * T sys/termio.h -no overlap-
+ * T sys/termios.h -no overlap-
+ * V sundev/mdreg.h
+ * a vaxuba/adreg.h
+ * d sun/dkio.h -no overlap with sys/des.h-
+ * d sys/des.h (possible overlap)
+ * d vax/dkio.h (possible overlap)
+ * d vaxuba/rxreg.h (possible overlap)
+ * f sys/filio.h
+ * g sunwindow/win_ioctl.h -no overlap-
+ * g sunwindowdev/winioctl.c !no manifest constant! -no overlap-
+ * h sundev/hrc_common.h
+ * i sys/sockio.h *overlap*
+ * i vaxuba/ikreg.h *overlap*
+ * k sundev/kbio.h
+ * m sundev/msio.h (possible overlap)
+ * m sundev/msreg.h (possible overlap)
+ * m sys/mtio.h (possible overlap)
+ * n sun/ndio.h
+ * p net/nit_buf.h (possible overlap)
+ * p net/nit_if.h (possible overlap)
+ * p net/nit_pf.h (possible overlap)
+ * p sundev/fpareg.h (possible overlap)
+ * p sys/sockio.h (possible overlap)
+ * p vaxuba/psreg.h (possible overlap)
+ * q sun/sqz.h
+ * r sys/sockio.h
+ * s sys/sockio.h
+ * t sys/ttold.h (possible overlap)
+ * t sys/ttycom.h (possible overlap)
+ * v sundev/vuid_event.h *overlap*
+ * v sys/vcmd.h *overlap*
+ *
+ * End of Registry
+ */
diff --git a/ioctlsort.c b/ioctlsort.c
new file mode 100644
index 0000000..1732fbc
--- /dev/null
+++ b/ioctlsort.c
@@ -0,0 +1,71 @@
+/*
+ * Copyright (c) 1991, 1992 Paul Kranenburg <pk@cs.few.eur.nl>
+ * Copyright (c) 1993, 1994, 1995 Rick Sladkey <jrs@world.std.com>
+ * 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.
+ *
+ * $Id: ioctlsort.c,v 1.2 2001/03/17 17:26:34 wichert Exp $
+ */
+
+
+#include <stdio.h>
+
+#ifdef STDC_HEADERS
+#include <stdlib.h>
+#endif
+
+struct ioctlent {
+ char *doth;
+ char *symbol;
+ unsigned long code;
+};
+
+#include "ioctlent.raw"
+
+int nioctlents = sizeof ioctlent / sizeof ioctlent[0];
+
+int
+compare(a, b)
+const void *a;
+const void *b;
+{
+ unsigned long code1 = ((struct ioctlent *) a)->code;
+ unsigned long code2 = ((struct ioctlent *) b)->code;
+ return (code1 > code2) ? 1 : (code1 < code2) ? -1 : 0;
+}
+
+int
+main(argc, argv)
+int argc;
+char *argv[];
+{
+ int i;
+
+ qsort(ioctlent, nioctlents, sizeof ioctlent[0], compare);
+ for (i = 0; i < nioctlents; i++) {
+ printf("{\"%s\", \"%s\", %#lx},\n",
+ ioctlent[i].doth, ioctlent[i].symbol, ioctlent[i].code);
+ }
+ return 0;
+}
diff --git a/ipc.c b/ipc.c
new file mode 100644
index 0000000..dca3914
--- /dev/null
+++ b/ipc.c
@@ -0,0 +1,492 @@
+/*
+ * Copyright (c) 1993 Ulrich Pegelow <pegelow@moorea.uni-muenster.de>
+ * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
+ * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
+ * Copyright (c) 1996-1999 Wichert Akkerman <wichert@cistron.nl>
+ * 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.
+ *
+ * $Id: ipc.c,v 1.10 2005/06/01 19:02:37 roland Exp $
+ */
+
+#include "defs.h"
+
+#if defined(LINUX) || defined(SUNOS4) || defined(FREEBSD)
+
+# ifdef HAVE_MQUEUE_H
+# include <mqueue.h>
+# endif
+
+#include <fcntl.h>
+#include <sys/ipc.h>
+#include <sys/sem.h>
+#include <sys/msg.h>
+#include <sys/shm.h>
+
+#ifndef MSG_STAT
+#define MSG_STAT 11
+#endif
+#ifndef MSG_INFO
+#define MSG_INFO 12
+#endif
+#ifndef SHM_STAT
+#define SHM_STAT 13
+#endif
+#ifndef SHM_INFO
+#define SHM_INFO 14
+#endif
+#ifndef SEM_STAT
+#define SEM_STAT 18
+#endif
+#ifndef SEM_INFO
+#define SEM_INFO 19
+#endif
+
+#if defined LINUX && !defined IPC_64
+# define IPC_64 0x100
+#endif
+
+extern const struct xlat openmodes[];
+extern void printsigevent(struct tcb *tcp, long arg);
+
+static const struct xlat msgctl_flags[] = {
+ { IPC_RMID, "IPC_RMID" },
+ { IPC_SET, "IPC_SET" },
+ { IPC_STAT, "IPC_STAT" },
+#ifdef LINUX
+ { IPC_INFO, "IPC_INFO" },
+ { MSG_STAT, "MSG_STAT" },
+ { MSG_INFO, "MSG_INFO" },
+#endif /* LINUX */
+ { 0, NULL },
+};
+
+static const struct xlat semctl_flags[] = {
+ { IPC_RMID, "IPC_RMID" },
+ { IPC_SET, "IPC_SET" },
+ { IPC_STAT, "IPC_STAT" },
+#ifdef LINUX
+ { IPC_INFO, "IPC_INFO" },
+ { SEM_STAT, "SEM_STAT" },
+ { SEM_INFO, "SEM_INFO" },
+#endif /* LINUX */
+ { GETPID, "GETPID" },
+ { GETVAL, "GETVAL" },
+ { GETALL, "GETALL" },
+ { GETNCNT, "GETNCNT" },
+ { GETZCNT, "GETZCNT" },
+ { SETVAL, "SETVAL" },
+ { SETALL, "SETALL" },
+ { 0, NULL },
+};
+
+static const struct xlat shmctl_flags[] = {
+ { IPC_RMID, "IPC_RMID" },
+ { IPC_SET, "IPC_SET" },
+ { IPC_STAT, "IPC_STAT" },
+#ifdef LINUX
+ { IPC_INFO, "IPC_INFO" },
+ { SHM_STAT, "SHM_STAT" },
+ { SHM_INFO, "SHM_INFO" },
+#endif /* LINUX */
+#ifdef SHM_LOCK
+ { SHM_LOCK, "SHM_LOCK" },
+#endif
+#ifdef SHM_UNLOCK
+ { SHM_UNLOCK, "SHM_UNLOCK" },
+#endif
+ { 0, NULL },
+};
+
+static const struct xlat resource_flags[] = {
+ { IPC_CREAT, "IPC_CREAT" },
+ { IPC_EXCL, "IPC_EXCL" },
+ { IPC_NOWAIT, "IPC_NOWAIT" },
+ { 0, NULL },
+};
+
+static const struct xlat shm_resource_flags[] = {
+ { IPC_CREAT, "IPC_CREAT" },
+ { IPC_EXCL, "IPC_EXCL" },
+#ifdef SHM_HUGETLB
+ { SHM_HUGETLB, "SHM_HUGETLB" },
+#endif
+ { 0, NULL },
+};
+
+static const struct xlat shm_flags[] = {
+#ifdef LINUX
+ { SHM_REMAP, "SHM_REMAP" },
+#endif /* LINUX */
+ { SHM_RDONLY, "SHM_RDONLY" },
+ { SHM_RND, "SHM_RND" },
+ { 0, NULL },
+};
+
+static const struct xlat msg_flags[] = {
+ { MSG_NOERROR, "MSG_NOERROR" },
+#ifdef LINUX
+ { MSG_EXCEPT, "MSG_EXCEPT" },
+#endif /* LINUX */
+ { IPC_NOWAIT, "IPC_NOWAIT" },
+ { 0, NULL },
+};
+
+int sys_msgget(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ if (tcp->u_arg[0])
+ tprintf("%lu", tcp->u_arg[0]);
+ else
+ tprintf("IPC_PRIVATE");
+ tprintf(", ");
+ if (printflags(resource_flags, tcp->u_arg[1] & ~0777, NULL) != 0)
+ tprintf("|");
+ tprintf("%#lo", tcp->u_arg[1] & 0777);
+ }
+ return 0;
+}
+
+#ifdef IPC_64
+# define PRINTCTL(flagset, arg, dflt) \
+ if ((arg) & IPC_64) tprintf("IPC_64|"); \
+ printxval((flagset), (arg) &~ IPC_64, dflt)
+#else
+# define PRINTCTL printxval
+#endif
+
+int sys_msgctl(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%lu, ", tcp->u_arg[0]);
+ PRINTCTL(msgctl_flags, tcp->u_arg[1], "MSG_???");
+#ifdef LINUX
+ tprintf(", %#lx", tcp->u_arg[3]);
+#else /* !LINUX */
+ tprintf(", %#lx", tcp->u_arg[2]);
+#endif /* !LINUX */
+ }
+ return 0;
+}
+
+int sys_msgsnd(tcp)
+struct tcb *tcp;
+{
+ long mtype;
+
+ if (entering(tcp)) {
+ tprintf("%lu", tcp->u_arg[0]);
+#ifdef LINUX
+ umove(tcp, tcp->u_arg[3], &mtype);
+ tprintf(", {%lu, ", mtype);
+ printstr(tcp, tcp->u_arg[3] + sizeof(long),
+ tcp->u_arg[1]);
+ tprintf("}, %lu", tcp->u_arg[1]);
+ tprintf(", ");
+ printflags(msg_flags, tcp->u_arg[2], "MSG_???");
+#else /* !LINUX */
+ umove(tcp, tcp->u_arg[1], &mtype);
+ tprintf(", {%lu, ", mtype);
+ printstr(tcp, tcp->u_arg[1] + sizeof(long),
+ tcp->u_arg[2]);
+ tprintf("}, %lu", tcp->u_arg[2]);
+ tprintf(", ");
+ printflags(msg_flags, tcp->u_arg[3], "MSG_???");
+#endif /* !LINUX */
+ }
+ return 0;
+}
+
+int sys_msgrcv(tcp)
+struct tcb *tcp;
+{
+ long mtype;
+#ifdef LINUX
+ struct ipc_wrapper {
+ struct msgbuf *msgp;
+ long msgtyp;
+ } tmp;
+#endif
+
+
+ if (exiting(tcp)) {
+ tprintf("%lu", tcp->u_arg[0]);
+#ifdef LINUX
+ umove(tcp, tcp->u_arg[3], &tmp);
+ umove(tcp, (long) tmp.msgp, &mtype);
+ tprintf(", {%lu, ", mtype);
+ printstr(tcp, (long) (tmp.msgp) + sizeof(long),
+ tcp->u_arg[1]);
+ tprintf("}, %lu", tcp->u_arg[1]);
+ tprintf(", %ld", tmp.msgtyp);
+ tprintf(", ");
+ printflags(msg_flags, tcp->u_arg[2], "MSG_???");
+#else /* !LINUX */
+ umove(tcp, tcp->u_arg[1], &mtype);
+ tprintf(", {%lu, ", mtype);
+ printstr(tcp, tcp->u_arg[1] + sizeof(long),
+ tcp->u_arg[2]);
+ tprintf("}, %lu", tcp->u_arg[2]);
+ tprintf(", %ld", tcp->u_arg[3]);
+ tprintf(", ");
+ printflags(msg_flags, tcp->u_arg[4], "MSG_???");
+#endif /* !LINUX */
+ }
+ return 0;
+}
+
+int sys_semop(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%lu", tcp->u_arg[0]);
+#ifdef LINUX
+ tprintf(", %#lx", tcp->u_arg[3]);
+ tprintf(", %lu", tcp->u_arg[1]);
+#else /* !LINUX */
+ tprintf(", %#lx", tcp->u_arg[1]);
+ tprintf(", %lu", tcp->u_arg[2]);
+#endif /* !LINUX */
+ }
+ return 0;
+}
+
+#ifdef LINUX
+int sys_semtimedop(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%lu", tcp->u_arg[0]);
+ tprintf(", %#lx", tcp->u_arg[3]);
+ tprintf(", %lu, ", tcp->u_arg[1]);
+ printtv(tcp, tcp->u_arg[5]);
+ }
+ return 0;
+}
+#endif
+
+int sys_semget(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ if (tcp->u_arg[0])
+ tprintf("%lu", tcp->u_arg[0]);
+ else
+ tprintf("IPC_PRIVATE");
+ tprintf(", %lu", tcp->u_arg[1]);
+ tprintf(", ");
+ if (printflags(resource_flags, tcp->u_arg[2] & ~0777, NULL) != 0)
+ tprintf("|");
+ tprintf("%#lo", tcp->u_arg[2] & 0777);
+ }
+ return 0;
+}
+
+int sys_semctl(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%lu", tcp->u_arg[0]);
+ tprintf(", %lu, ", tcp->u_arg[1]);
+ PRINTCTL(semctl_flags, tcp->u_arg[2], "SEM_???");
+ tprintf(", %#lx", tcp->u_arg[3]);
+ }
+ return 0;
+}
+
+int sys_shmget(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ if (tcp->u_arg[0])
+ tprintf("%lu", tcp->u_arg[0]);
+ else
+ tprintf("IPC_PRIVATE");
+ tprintf(", %lu", tcp->u_arg[1]);
+ tprintf(", ");
+ if (printflags(shm_resource_flags, tcp->u_arg[2] & ~0777, NULL) != 0)
+ tprintf("|");
+ tprintf("%#lo", tcp->u_arg[2] & 0777);
+ }
+ return 0;
+}
+
+int sys_shmctl(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%lu, ", tcp->u_arg[0]);
+ PRINTCTL(shmctl_flags, tcp->u_arg[1], "SHM_???");
+#ifdef LINUX
+ tprintf(", %#lx", tcp->u_arg[3]);
+#else /* !LINUX */
+ tprintf(", %#lx", tcp->u_arg[2]);
+#endif /* !LINUX */
+ }
+ return 0;
+}
+
+int sys_shmat(tcp)
+struct tcb *tcp;
+{
+#ifdef LINUX
+ unsigned long raddr;
+#endif /* LINUX */
+
+ if (exiting(tcp)) {
+ tprintf("%lu", tcp->u_arg[0]);
+#ifdef LINUX
+ tprintf(", %#lx", tcp->u_arg[3]);
+ tprintf(", ");
+ printflags(shm_flags, tcp->u_arg[1], "SHM_???");
+#else /* !LINUX */
+ tprintf(", %#lx", tcp->u_arg[1]);
+ tprintf(", ");
+ printflags(shm_flags, tcp->u_arg[2], "SHM_???");
+#endif /* !LINUX */
+ if (syserror(tcp))
+ return 0;
+#ifdef LINUX
+ if (umove(tcp, tcp->u_arg[2], &raddr) < 0)
+ return RVAL_NONE;
+ tcp->u_rval = raddr;
+#endif /* LINUX */
+ return RVAL_HEX;
+ }
+ return 0;
+}
+
+int sys_shmdt(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp))
+#ifdef LINUX
+ tprintf("%#lx", tcp->u_arg[3]);
+#else /* !LINUX */
+ tprintf("%#lx", tcp->u_arg[0]);
+#endif /* !LINUX */
+ return 0;
+}
+
+#endif /* defined(LINUX) || defined(SUNOS4) || defined(FREEBSD) */
+
+#ifdef LINUX
+int sys_mq_open(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ tprintf(", ");
+ /* flags */
+ printflags(openmodes, tcp->u_arg[1] + 1, "O_???");
+ if (tcp->u_arg[1] & O_CREAT) {
+# ifndef HAVE_MQUEUE_H
+ tprintf(", %lx", tcp->u_arg[2]);
+# else
+ struct mq_attr attr;
+ /* mode */
+ tprintf(", %#lo, ", tcp->u_arg[2]);
+ if (umove(tcp, tcp->u_arg[3], &attr) < 0)
+ tprintf("{ ??? }");
+ else
+ tprintf("{mq_maxmsg=%ld, mq_msgsize=%ld}",
+ attr.mq_maxmsg, attr.mq_msgsize);
+# endif
+ }
+ }
+ return 0;
+}
+
+int sys_mq_timedsend(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, ", tcp->u_arg[0]);
+ printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
+ tprintf(", %lu, %ld, ", tcp->u_arg[2], tcp->u_arg[3]);
+ printtv(tcp, tcp->u_arg[4]);
+ }
+ return 0;
+}
+
+int sys_mq_timedreceive(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp))
+ tprintf("%ld, ", tcp->u_arg[0]);
+ else {
+ printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
+ tprintf(", %lu, %ld, ", tcp->u_arg[2], tcp->u_arg[3]);
+ printtv(tcp, tcp->u_arg[4]);
+ }
+ return 0;
+}
+
+int sys_mq_notify(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, ", tcp->u_arg[0]);
+ printsigevent(tcp, tcp->u_arg[1]);
+ }
+ return 0;
+}
+
+static void printmqattr(tcp, addr)
+struct tcb *tcp;
+long addr;
+{
+ if (addr == 0)
+ tprintf("NULL");
+ else {
+# ifndef HAVE_MQUEUE_H
+ tprintf("%#lx", addr);
+# else
+ struct mq_attr attr;
+ if (umove(tcp, addr, &attr) < 0) {
+ tprintf("{...}");
+ return;
+ }
+ tprintf("{mq_flags=");
+ printflags(openmodes, attr.mq_flags + 1, "O_???");
+ tprintf(", mq_maxmsg=%ld, mq_msgsize=%ld, mq_curmsg=%ld}",
+ attr.mq_maxmsg, attr.mq_msgsize, attr.mq_curmsgs);
+# endif
+ }
+}
+
+int sys_mq_getsetattr(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, ", tcp->u_arg[0]);
+ printmqattr(tcp, tcp->u_arg[1]);
+ tprintf(", ");
+ } else
+ printmqattr(tcp, tcp->u_arg[2]);
+ return 0;
+}
+#endif
diff --git a/linux/dummy.h b/linux/dummy.h
new file mode 100644
index 0000000..5178fad
--- /dev/null
+++ b/linux/dummy.h
@@ -0,0 +1,248 @@
+/*
+ * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
+ * Copyright (c) 1993, 1994, 1995 Rick Sladkey <jrs@world.std.com>
+ * 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.
+ *
+ * $Id: dummy.h,v 1.17 2004/04/16 21:48:44 roland Exp $
+ */
+
+/* still unfinished */
+#define sys_ioperm printargs
+#define sys_syslog printargs
+#define sys_iopl printargs
+#define sys_vm86old printargs
+#define sys_get_kernel_syms printargs
+#define sys_bdflush printargs
+#define sys_sysfs printargs
+#define sys_afs_syscall printargs
+
+/* machine-specific */
+#ifndef I386
+#define sys_modify_ldt printargs
+#define sys_get_thread_area printargs
+#define sys_set_thread_area printargs
+#endif
+
+#define sys_sched_yield printargs
+#define sys_sched_get_priority_max sys_sched_get_priority_min
+#define sys_sched_rr_get_interval printargs
+
+/* like another call */
+#define sys_uselib sys_chdir
+#define sys_umount sys_chdir
+#define sys_swapon sys_chdir
+#define sys_swapoff sys_chdir
+#define sys_delete_module sys_chdir
+#define sys_fchdir sys_close
+#define sys_setfsuid sys_setuid
+#define sys_setfsgid sys_setgid
+#define sys_nanosleep sys_adjtime
+#define sys_acct sys_chdir
+#define sys_fdatasync sys_close
+#define sys_mlock sys_munmap
+#define sys_munlock sys_munmap
+#define sys_clock_getres sys_clock_gettime
+#define sys_mq_unlink sys_unlink
+
+/* printargs does the right thing */
+#define sys_setup printargs
+#define sys_getpid printargs
+#define sys_getuid printargs
+#define sys_pause printargs
+#define sys_sync printargs
+#define sys_getgid printargs
+#define sys_geteuid printargs
+#define sys_getegid printargs
+#define sys_getppid printargs
+#define sys_getpgrp printargs
+#define sys_setsid printargs
+#define sys_vhangup printargs
+#define sys_idle printargs
+#define sys_getpgid printargs
+#define sys_munlockall printargs
+#define sys_timer_getoverrun printargs
+#define sys_timer_delete printargs
+
+/* subcall entry points */
+#define sys_socketcall printargs
+#define sys_ipc printargs
+
+/* unimplemented */
+#define sys_stty printargs
+#define sys_gtty printargs
+#define sys_ftime printargs
+#define sys_prof printargs
+#define sys_phys printargs
+#define sys_lock printargs
+#define sys_mpx printargs
+#define sys_ulimit printargs
+#define sys_profil printargs
+#define sys_ustat printargs
+#define sys_break printargs
+
+/* deprecated */
+#define sys_olduname printargs
+#define sys_oldolduname printargs
+
+/* no library support */
+#ifndef HAVE_SENDMSG
+#define sys_sendmsg printargs
+#define sys_recvmsg printargs
+#endif
+
+#ifndef SYS_getpmsg
+#define sys_getpmsg printargs
+#endif
+#ifndef SYS_putpmsg
+#define sys_putpmsg printargs
+#endif
+
+#ifndef HAVE_STRUCT___OLD_KERNEL_STAT
+#define sys_oldstat printargs
+#define sys_oldfstat printargs
+#define sys_oldlstat printargs
+#endif
+
+#if DONE
+#define sys_oldselect printargs
+#define sys_msync printargs
+#define sys_flock printargs
+#define sys_getdents printargs
+#define sys_stime printargs
+#define sys_time printargs
+#define sys_times printargs
+#define sys_mount printargs
+#define sys_nice printargs
+#define sys_mprotect printargs
+#define sys_sigprocmask printargs
+#define sys_adjtimex printargs
+#define sys_sysinfo printargs
+#define sys_ipc printargs
+#define sys_setdomainname printargs
+#define sys_statfs printargs
+#define sys_fstatfs printargs
+#define sys_ptrace printargs
+#define sys_sigreturn printargs
+#define sys_fsync printargs
+#define sys_alarm printargs
+#define sys_socketcall printargs
+#define sys_sigsuspend printargs
+#define sys_utime printargs
+#define sys_brk printargs
+#define sys_mmap printargs
+#define sys_munmap printargs
+#define sys_select printargs
+#define sys_setuid printargs
+#define sys_setgid printargs
+#define sys_setreuid printargs
+#define sys_setregid printargs
+#define sys_getgroups printargs
+#define sys_setgroups printargs
+#define sys_setrlimit printargs
+#define sys_getrlimit printargs
+#define sys_getrusage printargs
+#define sys_getpriority printargs
+#define sys_setpriority printargs
+#define sys_setpgid printargs
+#define sys_access printargs
+#define sys_sethostname printargs
+#define sys_readdir printargs
+#define sys_waitpid printargs
+#define sys_wait4 printargs
+#define sys_execve printargs
+#define sys_fork printargs
+#define sys_uname printargs
+#define sys_pipe printargs
+#define sys_siggetmask printargs
+#define sys_sigsetmask printargs
+#define sys_exit printargs
+#define sys_kill printargs
+#define sys_signal printargs
+#define sys_sigaction printargs
+#define sys_sigpending printargs
+#define sys_fcntl printargs
+#define sys_dup printargs
+#define sys_dup2 printargs
+#define sys_close printargs
+#define sys_ioctl printargs
+#define sys_read printargs
+#define sys_write printargs
+#define sys_open printargs
+#define sys_creat printargs
+#define sys_link printargs
+#define sys_unlink printargs
+#define sys_chdir printargs
+#define sys_mknod printargs
+#define sys_chmod printargs
+#define sys_chown printargs
+#define sys_lseek printargs
+#define sys_rename printargs
+#define sys_mkdir printargs
+#define sys_rmdir printargs
+#define sys_umask printargs
+#define sys_chroot printargs
+#define sys_gettimeofday printargs
+#define sys_settimeofday printargs
+#define sys_symlink printargs
+#define sys_readlink printargs
+#define sys_truncate printargs
+#define sys_ftruncate printargs
+#define sys_fchmod printargs
+#define sys_fchown printargs
+#define sys_setitimer printargs
+#define sys_getitimer printargs
+#define sys_stat printargs
+#define sys_lstat printargs
+#define sys_fstat printargs
+#define sys_personality printargs
+#define sys_poll printargs
+#define sys_create_module printargs
+#define sys_init_module printargs
+#define sys_quotactl printargs
+#define sys_mlockall printargs
+#define sys_reboot printargs
+#endif
+
+
+#ifdef HAVE_ANDROID_OS
+
+#define sys_mq_open printargs
+#define sys_mq_timedsend printargs
+#define sys_mq_timedreceive printargs
+#define sys_mq_notify printargs
+#define sys_mq_getsetattr printargs
+#define sys_semop printargs
+#define sys_semget printargs
+#define sys_semctl printargs
+#define sys_semtimedop printargs
+#define sys_msgsnd printargs
+#define sys_msgrcv printargs
+#define sys_msgget printargs
+#define sys_msgctl printargs
+#define sys_shmat printargs
+#define sys_shmdt printargs
+#define sys_shmget printargs
+#define sys_shmctl printargs
+#endif
diff --git a/linux/errnoent.h b/linux/errnoent.h
new file mode 100644
index 0000000..68b2adc
--- /dev/null
+++ b/linux/errnoent.h
@@ -0,0 +1,529 @@
+ "ERRNO_0", /* 0 */
+ "EPERM", /* 1 */
+ "ENOENT", /* 2 */
+ "ESRCH", /* 3 */
+ "EINTR", /* 4 */
+ "EIO", /* 5 */
+ "ENXIO", /* 6 */
+ "E2BIG", /* 7 */
+ "ENOEXEC", /* 8 */
+ "EBADF", /* 9 */
+ "ECHILD", /* 10 */
+ "EAGAIN", /* 11 */
+ "ENOMEM", /* 12 */
+ "EACCES", /* 13 */
+ "EFAULT", /* 14 */
+ "ENOTBLK", /* 15 */
+ "EBUSY", /* 16 */
+ "EEXIST", /* 17 */
+ "EXDEV", /* 18 */
+ "ENODEV", /* 19 */
+ "ENOTDIR", /* 20 */
+ "EISDIR", /* 21 */
+ "EINVAL", /* 22 */
+ "ENFILE", /* 23 */
+ "EMFILE", /* 24 */
+ "ENOTTY", /* 25 */
+ "ETXTBSY", /* 26 */
+ "EFBIG", /* 27 */
+ "ENOSPC", /* 28 */
+ "ESPIPE", /* 29 */
+ "EROFS", /* 30 */
+ "EMLINK", /* 31 */
+ "EPIPE", /* 32 */
+ "EDOM", /* 33 */
+ "ERANGE", /* 34 */
+ "EDEADLK", /* 35 */
+ "ENAMETOOLONG", /* 36 */
+ "ENOLCK", /* 37 */
+ "ENOSYS", /* 38 */
+ "ENOTEMPTY", /* 39 */
+ "ELOOP", /* 40 */
+ "ERRNO_41", /* 41 */
+ "ENOMSG", /* 42 */
+ "EIDRM", /* 43 */
+ "ECHRNG", /* 44 */
+ "EL2NSYNC", /* 45 */
+ "EL3HLT", /* 46 */
+ "EL3RST", /* 47 */
+ "ELNRNG", /* 48 */
+ "EUNATCH", /* 49 */
+ "ENOCSI", /* 50 */
+ "EL2HLT", /* 51 */
+ "EBADE", /* 52 */
+ "EBADR", /* 53 */
+ "EXFULL", /* 54 */
+ "ENOANO", /* 55 */
+ "EBADRQC", /* 56 */
+ "EBADSLT", /* 57 */
+ "ERRNO_58", /* 58 */
+ "EBFONT", /* 59 */
+ "ENOSTR", /* 60 */
+ "ENODATA", /* 61 */
+ "ETIME", /* 62 */
+ "ENOSR", /* 63 */
+ "ENONET", /* 64 */
+ "ENOPKG", /* 65 */
+ "EREMOTE", /* 66 */
+ "ENOLINK", /* 67 */
+ "EADV", /* 68 */
+ "ESRMNT", /* 69 */
+ "ECOMM", /* 70 */
+ "EPROTO", /* 71 */
+ "EMULTIHOP", /* 72 */
+ "EDOTDOT", /* 73 */
+ "EBADMSG", /* 74 */
+ "EOVERFLOW", /* 75 */
+ "ENOTUNIQ", /* 76 */
+ "EBADFD", /* 77 */
+ "EREMCHG", /* 78 */
+ "ELIBACC", /* 79 */
+ "ELIBBAD", /* 80 */
+ "ELIBSCN", /* 81 */
+ "ELIBMAX", /* 82 */
+ "ELIBEXEC", /* 83 */
+ "EILSEQ", /* 84 */
+ "ERESTART", /* 85 */
+ "ESTRPIPE", /* 86 */
+ "EUSERS", /* 87 */
+ "ENOTSOCK", /* 88 */
+ "EDESTADDRREQ", /* 89 */
+ "EMSGSIZE", /* 90 */
+ "EPROTOTYPE", /* 91 */
+ "ENOPROTOOPT", /* 92 */
+ "EPROTONOSUPPORT", /* 93 */
+ "ESOCKTNOSUPPORT", /* 94 */
+ "EOPNOTSUPP", /* 95 */
+ "EPFNOSUPPORT", /* 96 */
+ "EAFNOSUPPORT", /* 97 */
+ "EADDRINUSE", /* 98 */
+ "EADDRNOTAVAIL", /* 99 */
+ "ENETDOWN", /* 100 */
+ "ENETUNREACH", /* 101 */
+ "ENETRESET", /* 102 */
+ "ECONNABORTED", /* 103 */
+ "ECONNRESET", /* 104 */
+ "ENOBUFS", /* 105 */
+ "EISCONN", /* 106 */
+ "ENOTCONN", /* 107 */
+ "ESHUTDOWN", /* 108 */
+ "ETOOMANYREFS", /* 109 */
+ "ETIMEDOUT", /* 110 */
+ "ECONNREFUSED", /* 111 */
+ "EHOSTDOWN", /* 112 */
+ "EHOSTUNREACH", /* 113 */
+ "EALREADY", /* 114 */
+ "EINPROGRESS", /* 115 */
+ "ESTALE", /* 116 */
+ "EUCLEAN", /* 117 */
+ "ENOTNAM", /* 118 */
+ "ENAVAIL", /* 119 */
+ "EISNAM", /* 120 */
+ "EREMOTEIO", /* 121 */
+ "EDQUOT", /* 122 */
+ "ENOMEDIUM", /* 123 */
+ "EMEDIUMTYPE", /* 124 */
+ "ERRNO_125", /* 125 */
+ "ERRNO_126", /* 126 */
+ "ERRNO_127", /* 127 */
+ "ERRNO_128", /* 128 */
+ "ERRNO_129", /* 129 */
+ "ERRNO_130", /* 130 */
+ "ERRNO_131", /* 131 */
+ "ERRNO_132", /* 132 */
+ "ERRNO_133", /* 133 */
+ "ERRNO_134", /* 134 */
+ "ERRNO_135", /* 135 */
+ "ERRNO_136", /* 136 */
+ "ERRNO_137", /* 137 */
+ "ERRNO_138", /* 138 */
+ "ERRNO_139", /* 139 */
+ "ERRNO_140", /* 140 */
+ "ERRNO_141", /* 141 */
+ "ERRNO_142", /* 142 */
+ "ERRNO_143", /* 143 */
+ "ERRNO_144", /* 144 */
+ "ERRNO_145", /* 145 */
+ "ERRNO_146", /* 146 */
+ "ERRNO_147", /* 147 */
+ "ERRNO_148", /* 148 */
+ "ERRNO_149", /* 149 */
+ "ERRNO_150", /* 150 */
+ "ERRNO_151", /* 151 */
+ "ERRNO_152", /* 152 */
+ "ERRNO_153", /* 153 */
+ "ERRNO_154", /* 154 */
+ "ERRNO_155", /* 155 */
+ "ERRNO_156", /* 156 */
+ "ERRNO_157", /* 157 */
+ "ERRNO_158", /* 158 */
+ "ERRNO_159", /* 159 */
+ "ERRNO_160", /* 160 */
+ "ERRNO_161", /* 161 */
+ "ERRNO_162", /* 162 */
+ "ERRNO_163", /* 163 */
+ "ERRNO_164", /* 164 */
+ "ERRNO_165", /* 165 */
+ "ERRNO_166", /* 166 */
+ "ERRNO_167", /* 167 */
+ "ERRNO_168", /* 168 */
+ "ERRNO_169", /* 169 */
+ "ERRNO_170", /* 170 */
+ "ERRNO_171", /* 171 */
+ "ERRNO_172", /* 172 */
+ "ERRNO_173", /* 173 */
+ "ERRNO_174", /* 174 */
+ "ERRNO_175", /* 175 */
+ "ERRNO_176", /* 176 */
+ "ERRNO_177", /* 177 */
+ "ERRNO_178", /* 178 */
+ "ERRNO_179", /* 179 */
+ "ERRNO_180", /* 180 */
+ "ERRNO_181", /* 181 */
+ "ERRNO_182", /* 182 */
+ "ERRNO_183", /* 183 */
+ "ERRNO_184", /* 184 */
+ "ERRNO_185", /* 185 */
+ "ERRNO_186", /* 186 */
+ "ERRNO_187", /* 187 */
+ "ERRNO_188", /* 188 */
+ "ERRNO_189", /* 189 */
+ "ERRNO_190", /* 190 */
+ "ERRNO_191", /* 191 */
+ "ERRNO_192", /* 192 */
+ "ERRNO_193", /* 193 */
+ "ERRNO_194", /* 194 */
+ "ERRNO_195", /* 195 */
+ "ERRNO_196", /* 196 */
+ "ERRNO_197", /* 197 */
+ "ERRNO_198", /* 198 */
+ "ERRNO_199", /* 199 */
+ "ERRNO_200", /* 200 */
+ "ERRNO_201", /* 201 */
+ "ERRNO_202", /* 202 */
+ "ERRNO_203", /* 203 */
+ "ERRNO_204", /* 204 */
+ "ERRNO_205", /* 205 */
+ "ERRNO_206", /* 206 */
+ "ERRNO_207", /* 207 */
+ "ERRNO_208", /* 208 */
+ "ERRNO_209", /* 209 */
+ "ERRNO_210", /* 210 */
+ "ERRNO_211", /* 211 */
+ "ERRNO_212", /* 212 */
+ "ERRNO_213", /* 213 */
+ "ERRNO_214", /* 214 */
+ "ERRNO_215", /* 215 */
+ "ERRNO_216", /* 216 */
+ "ERRNO_217", /* 217 */
+ "ERRNO_218", /* 218 */
+ "ERRNO_219", /* 219 */
+ "ERRNO_220", /* 220 */
+ "ERRNO_221", /* 221 */
+ "ERRNO_222", /* 222 */
+ "ERRNO_223", /* 223 */
+ "ERRNO_224", /* 224 */
+ "ERRNO_225", /* 225 */
+ "ERRNO_226", /* 226 */
+ "ERRNO_227", /* 227 */
+ "ERRNO_228", /* 228 */
+ "ERRNO_229", /* 229 */
+ "ERRNO_230", /* 230 */
+ "ERRNO_231", /* 231 */
+ "ERRNO_232", /* 232 */
+ "ERRNO_233", /* 233 */
+ "ERRNO_234", /* 234 */
+ "ERRNO_235", /* 235 */
+ "ERRNO_236", /* 236 */
+ "ERRNO_237", /* 237 */
+ "ERRNO_238", /* 238 */
+ "ERRNO_239", /* 239 */
+ "ERRNO_240", /* 240 */
+ "ERRNO_241", /* 241 */
+ "ERRNO_242", /* 242 */
+ "ERRNO_243", /* 243 */
+ "ERRNO_244", /* 244 */
+ "ERRNO_245", /* 245 */
+ "ERRNO_246", /* 246 */
+ "ERRNO_247", /* 247 */
+ "ERRNO_248", /* 248 */
+ "ERRNO_249", /* 249 */
+ "ERRNO_250", /* 250 */
+ "ERRNO_251", /* 251 */
+ "ERRNO_252", /* 252 */
+ "ERRNO_253", /* 253 */
+ "ERRNO_254", /* 254 */
+ "ERRNO_255", /* 255 */
+ "ERRNO_256", /* 256 */
+ "ERRNO_257", /* 257 */
+ "ERRNO_258", /* 258 */
+ "ERRNO_259", /* 259 */
+ "ERRNO_260", /* 260 */
+ "ERRNO_261", /* 261 */
+ "ERRNO_262", /* 262 */
+ "ERRNO_263", /* 263 */
+ "ERRNO_264", /* 264 */
+ "ERRNO_265", /* 265 */
+ "ERRNO_266", /* 266 */
+ "ERRNO_267", /* 267 */
+ "ERRNO_268", /* 268 */
+ "ERRNO_269", /* 269 */
+ "ERRNO_270", /* 270 */
+ "ERRNO_271", /* 271 */
+ "ERRNO_272", /* 272 */
+ "ERRNO_273", /* 273 */
+ "ERRNO_274", /* 274 */
+ "ERRNO_275", /* 275 */
+ "ERRNO_276", /* 276 */
+ "ERRNO_277", /* 277 */
+ "ERRNO_278", /* 278 */
+ "ERRNO_279", /* 279 */
+ "ERRNO_280", /* 280 */
+ "ERRNO_281", /* 281 */
+ "ERRNO_282", /* 282 */
+ "ERRNO_283", /* 283 */
+ "ERRNO_284", /* 284 */
+ "ERRNO_285", /* 285 */
+ "ERRNO_286", /* 286 */
+ "ERRNO_287", /* 287 */
+ "ERRNO_288", /* 288 */
+ "ERRNO_289", /* 289 */
+ "ERRNO_290", /* 290 */
+ "ERRNO_291", /* 291 */
+ "ERRNO_292", /* 292 */
+ "ERRNO_293", /* 293 */
+ "ERRNO_294", /* 294 */
+ "ERRNO_295", /* 295 */
+ "ERRNO_296", /* 296 */
+ "ERRNO_297", /* 297 */
+ "ERRNO_298", /* 298 */
+ "ERRNO_299", /* 299 */
+ "ERRNO_300", /* 300 */
+ "ERRNO_301", /* 301 */
+ "ERRNO_302", /* 302 */
+ "ERRNO_303", /* 303 */
+ "ERRNO_304", /* 304 */
+ "ERRNO_305", /* 305 */
+ "ERRNO_306", /* 306 */
+ "ERRNO_307", /* 307 */
+ "ERRNO_308", /* 308 */
+ "ERRNO_309", /* 309 */
+ "ERRNO_310", /* 310 */
+ "ERRNO_311", /* 311 */
+ "ERRNO_312", /* 312 */
+ "ERRNO_313", /* 313 */
+ "ERRNO_314", /* 314 */
+ "ERRNO_315", /* 315 */
+ "ERRNO_316", /* 316 */
+ "ERRNO_317", /* 317 */
+ "ERRNO_318", /* 318 */
+ "ERRNO_319", /* 319 */
+ "ERRNO_320", /* 320 */
+ "ERRNO_321", /* 321 */
+ "ERRNO_322", /* 322 */
+ "ERRNO_323", /* 323 */
+ "ERRNO_324", /* 324 */
+ "ERRNO_325", /* 325 */
+ "ERRNO_326", /* 326 */
+ "ERRNO_327", /* 327 */
+ "ERRNO_328", /* 328 */
+ "ERRNO_329", /* 329 */
+ "ERRNO_330", /* 330 */
+ "ERRNO_331", /* 331 */
+ "ERRNO_332", /* 332 */
+ "ERRNO_333", /* 333 */
+ "ERRNO_334", /* 334 */
+ "ERRNO_335", /* 335 */
+ "ERRNO_336", /* 336 */
+ "ERRNO_337", /* 337 */
+ "ERRNO_338", /* 338 */
+ "ERRNO_339", /* 339 */
+ "ERRNO_340", /* 340 */
+ "ERRNO_341", /* 341 */
+ "ERRNO_342", /* 342 */
+ "ERRNO_343", /* 343 */
+ "ERRNO_344", /* 344 */
+ "ERRNO_345", /* 345 */
+ "ERRNO_346", /* 346 */
+ "ERRNO_347", /* 347 */
+ "ERRNO_348", /* 348 */
+ "ERRNO_349", /* 349 */
+ "ERRNO_350", /* 350 */
+ "ERRNO_351", /* 351 */
+ "ERRNO_352", /* 352 */
+ "ERRNO_353", /* 353 */
+ "ERRNO_354", /* 354 */
+ "ERRNO_355", /* 355 */
+ "ERRNO_356", /* 356 */
+ "ERRNO_357", /* 357 */
+ "ERRNO_358", /* 358 */
+ "ERRNO_359", /* 359 */
+ "ERRNO_360", /* 360 */
+ "ERRNO_361", /* 361 */
+ "ERRNO_362", /* 362 */
+ "ERRNO_363", /* 363 */
+ "ERRNO_364", /* 364 */
+ "ERRNO_365", /* 365 */
+ "ERRNO_366", /* 366 */
+ "ERRNO_367", /* 367 */
+ "ERRNO_368", /* 368 */
+ "ERRNO_369", /* 369 */
+ "ERRNO_370", /* 370 */
+ "ERRNO_371", /* 371 */
+ "ERRNO_372", /* 372 */
+ "ERRNO_373", /* 373 */
+ "ERRNO_374", /* 374 */
+ "ERRNO_375", /* 375 */
+ "ERRNO_376", /* 376 */
+ "ERRNO_377", /* 377 */
+ "ERRNO_378", /* 378 */
+ "ERRNO_379", /* 379 */
+ "ERRNO_380", /* 380 */
+ "ERRNO_381", /* 381 */
+ "ERRNO_382", /* 382 */
+ "ERRNO_383", /* 383 */
+ "ERRNO_384", /* 384 */
+ "ERRNO_385", /* 385 */
+ "ERRNO_386", /* 386 */
+ "ERRNO_387", /* 387 */
+ "ERRNO_388", /* 388 */
+ "ERRNO_389", /* 389 */
+ "ERRNO_390", /* 390 */
+ "ERRNO_391", /* 391 */
+ "ERRNO_392", /* 392 */
+ "ERRNO_393", /* 393 */
+ "ERRNO_394", /* 394 */
+ "ERRNO_395", /* 395 */
+ "ERRNO_396", /* 396 */
+ "ERRNO_397", /* 397 */
+ "ERRNO_398", /* 398 */
+ "ERRNO_399", /* 399 */
+ "ERRNO_400", /* 400 */
+ "ERRNO_401", /* 401 */
+ "ERRNO_402", /* 402 */
+ "ERRNO_403", /* 403 */
+ "ERRNO_404", /* 404 */
+ "ERRNO_405", /* 405 */
+ "ERRNO_406", /* 406 */
+ "ERRNO_407", /* 407 */
+ "ERRNO_408", /* 408 */
+ "ERRNO_409", /* 409 */
+ "ERRNO_410", /* 410 */
+ "ERRNO_411", /* 411 */
+ "ERRNO_412", /* 412 */
+ "ERRNO_413", /* 413 */
+ "ERRNO_414", /* 414 */
+ "ERRNO_415", /* 415 */
+ "ERRNO_416", /* 416 */
+ "ERRNO_417", /* 417 */
+ "ERRNO_418", /* 418 */
+ "ERRNO_419", /* 419 */
+ "ERRNO_420", /* 420 */
+ "ERRNO_421", /* 421 */
+ "ERRNO_422", /* 422 */
+ "ERRNO_423", /* 423 */
+ "ERRNO_424", /* 424 */
+ "ERRNO_425", /* 425 */
+ "ERRNO_426", /* 426 */
+ "ERRNO_427", /* 427 */
+ "ERRNO_428", /* 428 */
+ "ERRNO_429", /* 429 */
+ "ERRNO_430", /* 430 */
+ "ERRNO_431", /* 431 */
+ "ERRNO_432", /* 432 */
+ "ERRNO_433", /* 433 */
+ "ERRNO_434", /* 434 */
+ "ERRNO_435", /* 435 */
+ "ERRNO_436", /* 436 */
+ "ERRNO_437", /* 437 */
+ "ERRNO_438", /* 438 */
+ "ERRNO_439", /* 439 */
+ "ERRNO_440", /* 440 */
+ "ERRNO_441", /* 441 */
+ "ERRNO_442", /* 442 */
+ "ERRNO_443", /* 443 */
+ "ERRNO_444", /* 444 */
+ "ERRNO_445", /* 445 */
+ "ERRNO_446", /* 446 */
+ "ERRNO_447", /* 447 */
+ "ERRNO_448", /* 448 */
+ "ERRNO_449", /* 449 */
+ "ERRNO_450", /* 450 */
+ "ERRNO_451", /* 451 */
+ "ERRNO_452", /* 452 */
+ "ERRNO_453", /* 453 */
+ "ERRNO_454", /* 454 */
+ "ERRNO_455", /* 455 */
+ "ERRNO_456", /* 456 */
+ "ERRNO_457", /* 457 */
+ "ERRNO_458", /* 458 */
+ "ERRNO_459", /* 459 */
+ "ERRNO_460", /* 460 */
+ "ERRNO_461", /* 461 */
+ "ERRNO_462", /* 462 */
+ "ERRNO_463", /* 463 */
+ "ERRNO_464", /* 464 */
+ "ERRNO_465", /* 465 */
+ "ERRNO_466", /* 466 */
+ "ERRNO_467", /* 467 */
+ "ERRNO_468", /* 468 */
+ "ERRNO_469", /* 469 */
+ "ERRNO_470", /* 470 */
+ "ERRNO_471", /* 471 */
+ "ERRNO_472", /* 472 */
+ "ERRNO_473", /* 473 */
+ "ERRNO_474", /* 474 */
+ "ERRNO_475", /* 475 */
+ "ERRNO_476", /* 476 */
+ "ERRNO_477", /* 477 */
+ "ERRNO_478", /* 478 */
+ "ERRNO_479", /* 479 */
+ "ERRNO_480", /* 480 */
+ "ERRNO_481", /* 481 */
+ "ERRNO_482", /* 482 */
+ "ERRNO_483", /* 483 */
+ "ERRNO_484", /* 484 */
+ "ERRNO_485", /* 485 */
+ "ERRNO_486", /* 486 */
+ "ERRNO_487", /* 487 */
+ "ERRNO_488", /* 488 */
+ "ERRNO_489", /* 489 */
+ "ERRNO_490", /* 490 */
+ "ERRNO_491", /* 491 */
+ "ERRNO_492", /* 492 */
+ "ERRNO_493", /* 493 */
+ "ERRNO_494", /* 494 */
+ "ERRNO_495", /* 495 */
+ "ERRNO_496", /* 496 */
+ "ERRNO_497", /* 497 */
+ "ERRNO_498", /* 498 */
+ "ERRNO_499", /* 499 */
+ "ERRNO_500", /* 500 */
+ "ERRNO_501", /* 501 */
+ "ERRNO_502", /* 502 */
+ "ERRNO_503", /* 503 */
+ "ERRNO_504", /* 504 */
+ "ERRNO_505", /* 505 */
+ "ERRNO_506", /* 506 */
+ "ERRNO_507", /* 507 */
+ "ERRNO_508", /* 508 */
+ "ERRNO_509", /* 509 */
+ "ERRNO_510", /* 510 */
+ "ERRNO_511", /* 511 */
+ "ERESTARTSYS", /* 512 */
+ "ERESTARTNOINTR", /* 513 */
+ "ERESTARTNOHAND", /* 514 */
+ "ENOIOCTLCMD", /* 515 */
+ "ERRNO_516", /* 516 */
+ "ERRNO_517", /* 517 */
+ "ERRNO_518", /* 518 */
+ "ERRNO_519", /* 519 */
+ "ERRNO_520", /* 520 */
+ "EBADHANDLE", /* 521 */
+ "ENOTSYNC", /* 522 */
+ "EBADCOOKIE", /* 523 */
+ "ENOTSUPP", /* 524 */
+ "ETOOSMALL", /* 525 */
+ "ESERVERFAULT", /* 526 */
+ "EBADTYPE", /* 527 */
+ "EJUKEBOX", /* 528 */
diff --git a/linux/ioctlent.h b/linux/ioctlent.h
new file mode 100644
index 0000000..57a2070
--- /dev/null
+++ b/linux/ioctlent.h
@@ -0,0 +1,1312 @@
+ /* Generated by ioctlsort */
+ {"linux/fs.h", "FIBMAP", 0x1},
+ {"linux/fs.h", "FIGETBSZ", 0x2},
+ {"linux/fd.h", "FDGETPRM", 0x204},
+ {"linux/fd.h", "FDGETMAXERRS", 0x20e},
+ {"linux/fd.h", "FDGETDRVTYP", 0x20f},
+ {"linux/fd.h", "FDGETDRVPRM", 0x211},
+ {"linux/fd.h", "FDGETDRVSTAT", 0x212},
+ {"linux/fd.h", "FDPOLLDRVSTAT", 0x213},
+ {"linux/fd.h", "FDGETFDCSTAT", 0x215},
+ {"linux/fd.h", "FDWERRORGET", 0x217},
+ {"linux/fd.h", "FDCLRPRM", 0x241},
+ {"linux/fd.h", "FDSETPRM", 0x242},
+ {"linux/fd.h", "FDDEFPRM", 0x243},
+ {"linux/fd.h", "FDMSGON", 0x245},
+ {"linux/fd.h", "FDMSGOFF", 0x246},
+ {"linux/fd.h", "FDFMTBEG", 0x247},
+ {"linux/fd.h", "FDFMTTRK", 0x248},
+ {"linux/fd.h", "FDFMTEND", 0x249},
+ {"linux/fd.h", "FDSETEMSGTRESH", 0x24a},
+ {"linux/fd.h", "FDFLUSH", 0x24b},
+ {"linux/fd.h", "FDSETMAXERRS", 0x24c},
+ {"linux/fd.h", "FDRESET", 0x254},
+ {"linux/fd.h", "FDWERRORCLR", 0x256},
+ {"linux/fd.h", "FDRAWCMD", 0x258},
+ {"linux/fd.h", "FDTWADDLE", 0x259},
+ {"linux/fd.h", "FDEJECT", 0x25a},
+ {"linux/fd.h", "FDSETDRVPRM", 0x290},
+ {"linux/umsdos_fs.h", "UMSDOS_READDIR_DOS", 0x4d2},
+ {"linux/umsdos_fs.h", "UMSDOS_UNLINK_DOS", 0x4d3},
+ {"linux/umsdos_fs.h", "UMSDOS_RMDIR_DOS", 0x4d4},
+ {"linux/umsdos_fs.h", "UMSDOS_STAT_DOS", 0x4d5},
+ {"linux/umsdos_fs.h", "UMSDOS_CREAT_EMD", 0x4d6},
+ {"linux/umsdos_fs.h", "UMSDOS_UNLINK_EMD", 0x4d7},
+ {"linux/umsdos_fs.h", "UMSDOS_READDIR_EMD", 0x4d8},
+ {"linux/umsdos_fs.h", "UMSDOS_GETVERSION", 0x4d9},
+ {"linux/umsdos_fs.h", "UMSDOS_INIT_EMD", 0x4da},
+ {"linux/umsdos_fs.h", "UMSDOS_DOS_SETUP", 0x4db},
+ {"linux/umsdos_fs.h", "UMSDOS_RENAME_DOS", 0x4dc},
+ {"linux/fs.h", "BLKROSET", 0x125d},
+ {"linux/fs.h", "BLKROGET", 0x125e},
+ {"linux/fs.h", "BLKRRPART", 0x125f},
+ {"linux/fs.h", "BLKGETSIZE", 0x1260},
+ {"linux/fs.h", "BLKFLSBUF", 0x1261},
+ {"linux/fs.h", "BLKRASET", 0x1262},
+ {"linux/fs.h", "BLKRAGET", 0x1263},
+ {"linux/fs.h", "BLKFRASET", 0x1264},
+ {"linux/fs.h", "BLKFRAGET", 0x1265},
+ {"linux/fs.h", "BLKSECTSET", 0x1266},
+ {"linux/fs.h", "BLKSECTGET", 0x1267},
+ {"linux/fs.h", "BLKSSZGET", 0x1268},
+ {"linux/blkpg.h", "BLKPG", 0x1269},
+ {"linux/elevator.h", "BLKELVGET", 0x126a},
+ {"linux/elevator.h", "BLKELVSET", 0x126b},
+ {"linux/fs.h", "BLKGETLASTSECT", 0x126c},
+ {"linux/fs.h", "BLKSETLASTSECT", 0x126d},
+ {"linux/fs.h", "BLKBSZGET", 0x1270},
+ {"linux/fs.h", "BLKBSZSET", 0x1271},
+ {"linux/fs.h", "BLKGETSIZE64", 0x1272},
+ {"scsi/sg.h", "SG_SET_TIMEOUT", 0x2201},
+ {"scsi/sg.h", "SG_GET_TIMEOUT", 0x2202},
+ {"scsi/sg.h", "SG_EMULATED_HOST", 0x2203},
+ {"scsi/sg.h", "SG_SET_TRANSFORM", 0x2204},
+ {"scsi/sg.h", "SG_GET_TRANSFORM", 0x2205},
+ {"scsi/sg.h", "SG_GET_COMMAND_Q", 0x2270},
+ {"scsi/sg.h", "SG_SET_COMMAND_Q", 0x2271},
+ {"scsi/sg.h", "SG_GET_RESERVED_SIZE", 0x2272},
+ {"scsi/sg.h", "SG_SET_RESERVED_SIZE", 0x2275},
+ {"scsi/sg.h", "SG_GET_SCSI_ID", 0x2276},
+ {"scsi/sg.h", "SG_SET_FORCE_LOW_DMA", 0x2279},
+ {"scsi/sg.h", "SG_GET_LOW_DMA", 0x227a},
+ {"scsi/sg.h", "SG_SET_FORCE_PACK_ID", 0x227b},
+ {"scsi/sg.h", "SG_GET_PACK_ID", 0x227c},
+ {"scsi/sg.h", "SG_GET_NUM_WAITING", 0x227d},
+ {"scsi/sg.h", "SG_SET_DEBUG", 0x227e},
+ {"scsi/sg.h", "SG_GET_SG_TABLESIZE", 0x227f},
+ {"scsi/sg.h", "SG_GET_VERSION_NUM", 0x2282},
+ {"scsi/sg.h", "SG_NEXT_CMD_LEN", 0x2283},
+ {"scsi/sg.h", "SG_SCSI_RESET", 0x2284},
+ {"scsi/sg.h", "SG_IO", 0x2285},
+ {"scsi/sg.h", "SG_GET_REQUEST_TABLE", 0x2286},
+ {"scsi/sg.h", "SG_SET_KEEP_ORPHAN", 0x2287},
+ {"scsi/sg.h", "SG_GET_KEEP_ORPHAN", 0x2288},
+ {"scsi/sg.h", "SG_GET_ACCESS_COUNT", 0x2289},
+ {"linux/i2o.h", "BLKI2OGRSTRAT", 0x3201},
+ {"linux/i2o.h", "BLKI2OGWSTRAT", 0x3202},
+ {"linux/i2o.h", "BLKI2OSRSTRAT", 0x3203},
+ {"linux/i2o.h", "BLKI2OSWSTRAT", 0x3204},
+ {"asm/processor.h", "MICROCODE_IOCFREE", 0x3600},
+ {"linux/radeonfb.h", "FBIO_RADEON_GET_MIRROR", 0x4003},
+ {"linux/radeonfb.h", "FBIO_RADEON_SET_MIRROR", 0x4004},
+ {"linux/agpgart.h", "AGPIOC_INFO", 0x4100},
+ {"linux/agpgart.h", "AGPIOC_ACQUIRE", 0x4101},
+ {"linux/apm_bios.h", "APM_IOC_STANDBY", 0x4101},
+ {"linux/agpgart.h", "AGPIOC_RELEASE", 0x4102},
+ {"linux/apm_bios.h", "APM_IOC_SUSPEND", 0x4102},
+ {"linux/agpgart.h", "AGPIOC_SETUP", 0x4103},
+ {"linux/agpgart.h", "AGPIOC_RESERVE", 0x4104},
+ {"linux/agpgart.h", "AGPIOC_PROTECT", 0x4105},
+ {"linux/agpgart.h", "AGPIOC_ALLOCATE", 0x4106},
+ {"linux/agpgart.h", "AGPIOC_DEALLOCATE", 0x4107},
+ {"linux/agpgart.h", "AGPIOC_BIND", 0x4108},
+ {"linux/agpgart.h", "AGPIOC_UNBIND", 0x4109},
+ {"linux/pmu.h", "PMU_IOC_SLEEP", 0x4200},
+ {"linux/cciss_ioctl.h", "CCISS_GETPCIINFO", 0x4201},
+ {"linux/pmu.h", "PMU_IOC_GET_BACKLIGHT", 0x4201},
+ {"linux/cciss_ioctl.h", "CCISS_GETINTINFO", 0x4202},
+ {"linux/pmu.h", "PMU_IOC_SET_BACKLIGHT", 0x4202},
+ {"linux/cciss_ioctl.h", "CCISS_SETINTINFO", 0x4203},
+ {"linux/pmu.h", "PMU_IOC_GET_MODEL", 0x4203},
+ {"linux/cciss_ioctl.h", "CCISS_GETNODENAME", 0x4204},
+ {"linux/pmu.h", "PMU_IOC_HAS_ADB", 0x4204},
+ {"linux/cciss_ioctl.h", "CCISS_SETNODENAME", 0x4205},
+ {"linux/pmu.h", "PMU_IOC_CAN_SLEEP", 0x4205},
+ {"linux/cciss_ioctl.h", "CCISS_GETHEARTBEAT", 0x4206},
+ {"linux/pmu.h", "PMU_IOC_GRAB_BACKLIGHT", 0x4206},
+ {"linux/cciss_ioctl.h", "CCISS_GETBUSTYPES", 0x4207},
+ {"linux/cciss_ioctl.h", "CCISS_GETFIRMVER", 0x4208},
+ {"linux/cciss_ioctl.h", "CCISS_GETDRIVVER", 0x4209},
+ {"linux/cciss_ioctl.h", "CCISS_REVALIDVOLS", 0x420a},
+ {"linux/cciss_ioctl.h", "CCISS_PASSTHRU", 0x420b},
+ {"linux/cciss_ioctl.h", "CCISS_DEREGDISK", 0x420c},
+ {"linux/cciss_ioctl.h", "CCISS_REGNEWDISK", 0x420d},
+ {"linux/cciss_ioctl.h", "CCISS_REGNEWD", 0x420e},
+ {"linux/cciss_ioctl.h", "CCISS_RESCANDISK", 0x4210},
+ {"linux/cciss_ioctl.h", "CCISS_GETLUNINFO", 0x4211},
+ {"linux/cciss_ioctl.h", "CCISS_BIG_PASSTHRU", 0x4212},
+ {"linux/soundcard.h", "SNDCTL_COPR_RESET", 0x4300},
+ {"linux/capi.h", "CAPI_REGISTER", 0x4301},
+ {"linux/soundcard.h", "SNDCTL_COPR_LOAD", 0x4301},
+ {"linux/soundcard.h", "SNDCTL_COPR_RDATA", 0x4302},
+ {"linux/soundcard.h", "SNDCTL_COPR_RCODE", 0x4303},
+ {"linux/soundcard.h", "SNDCTL_COPR_WDATA", 0x4304},
+ {"linux/soundcard.h", "SNDCTL_COPR_WCODE", 0x4305},
+ {"linux/capi.h", "CAPI_GET_MANUFACTURER", 0x4306},
+ {"linux/soundcard.h", "SNDCTL_COPR_RUN", 0x4306},
+ {"linux/capi.h", "CAPI_GET_VERSION", 0x4307},
+ {"linux/soundcard.h", "SNDCTL_COPR_HALT", 0x4307},
+ {"linux/capi.h", "CAPI_GET_SERIAL", 0x4308},
+ {"linux/soundcard.h", "SNDCTL_COPR_SENDMSG", 0x4308},
+ {"linux/capi.h", "CAPI_GET_PROFILE", 0x4309},
+ {"linux/soundcard.h", "SNDCTL_COPR_RCVMSG", 0x4309},
+ {"linux/capi.h", "CAPI_MANUFACTURER_CMD", 0x4320},
+ {"linux/capi.h", "CAPI_GET_ERRCODE", 0x4321},
+ {"linux/capi.h", "CAPI_INSTALLED", 0x4322},
+ {"linux/capi.h", "CAPI_GET_FLAGS", 0x4323},
+ {"linux/capi.h", "CAPI_SET_FLAGS", 0x4324},
+ {"linux/capi.h", "CAPI_CLR_FLAGS", 0x4325},
+ {"linux/capi.h", "CAPI_NCCI_OPENCOUNT", 0x4326},
+ {"linux/capi.h", "CAPI_NCCI_GETUNIT", 0x4327},
+ {"linux/input.h", "EVIOCGVERSION", 0x4501},
+ {"linux/input.h", "EVIOCGID", 0x4502},
+ {"linux/input.h", "EVIOCGREP", 0x4503},
+ {"linux/input.h", "EVIOCGKEYCODE", 0x4504},
+ {"linux/input.h", "EVIOCGKEY", 0x4505},
+ {"linux/input.h", "EVIOCGBUS", 0x4507},
+ {"linux/input.h", "EVIOCRMFF", 0x4581},
+ {"linux/input.h", "EVIOCSGAIN", 0x4582},
+ {"linux/input.h", "EVIOCSAUTOCENTER", 0x4583},
+ {"linux/input.h", "EVIOCGEFFECTS", 0x4584},
+ {"linux/input.h", "EVIOCGRAB", 0x4590},
+ {"linux/fb.h", "FBIOGET_VSCREENINFO", 0x4600},
+ {"linux/fb.h", "FBIOPUT_VSCREENINFO", 0x4601},
+ {"linux/fb.h", "FBIOGET_FSCREENINFO", 0x4602},
+ {"linux/fb.h", "FBIOGETCMAP", 0x4604},
+ {"linux/fb.h", "FBIOPUTCMAP", 0x4605},
+ {"linux/fb.h", "FBIOPAN_DISPLAY", 0x4606},
+ {"linux/fb.h", "FBIOGET_FCURSORINFO", 0x4607},
+ {"linux/fb.h", "FBIOGET_VCURSORINFO", 0x4608},
+ {"linux/fb.h", "FBIO_CURSOR", 0x4608},
+ {"linux/fb.h", "FBIOPUT_VCURSORINFO", 0x4609},
+ {"linux/fb.h", "FBIOGET_CURSORSTATE", 0x460a},
+ {"linux/fb.h", "FBIOPUT_CURSORSTATE", 0x460b},
+ {"linux/fb.h", "FBIOGET_CON2FBMAP", 0x460f},
+ {"linux/fb.h", "FBIOPUT_CON2FBMAP", 0x4610},
+ {"linux/fb.h", "FBIOBLANK", 0x4611},
+ {"linux/fb.h", "FBIOGET_VBLANK", 0x4612},
+ {"linux/fb.h", "FBIO_ALLOC", 0x4613},
+ {"linux/fb.h", "FBIO_FREE", 0x4614},
+ {"linux/fb.h", "FBIOGET_GLYPH", 0x4615},
+ {"linux/fb.h", "FBIOGET_HWCINFO", 0x4616},
+ {"linux/fb.h", "FBIOPUT_MODEINFO", 0x4617},
+ {"linux/fb.h", "FBIOGET_DISPINFO", 0x4618},
+ {"linux/matroxfb.h", "FBIO_WAITFORVSYNC", 0x4620},
+ {"linux/hiddev.h", "HIDIOCGVERSION", 0x4801},
+ {"linux/hiddev.h", "HIDIOCAPPLICATION", 0x4802},
+ {"linux/hiddev.h", "HIDIOCGDEVINFO", 0x4803},
+ {"linux/hiddev.h", "HIDIOCGSTRING", 0x4804},
+ {"linux/hiddev.h", "HIDIOCINITREPORT", 0x4805},
+ {"linux/hiddev.h", "HIDIOCGREPORT", 0x4807},
+ {"linux/hiddev.h", "HIDIOCSREPORT", 0x4808},
+ {"linux/hiddev.h", "HIDIOCGREPORTINFO", 0x4809},
+ {"linux/hiddev.h", "HIDIOCGFIELDINFO", 0x480a},
+ {"linux/hiddev.h", "HIDIOCGUSAGE", 0x480b},
+ {"linux/hiddev.h", "HIDIOCSUSAGE", 0x480c},
+ {"linux/hiddev.h", "HIDIOCGUCODE", 0x480d},
+ {"linux/hiddev.h", "HIDIOCGFLAG", 0x480e},
+ {"linux/hiddev.h", "HIDIOCSFLAG", 0x480f},
+ {"linux/hiddev.h", "HIDIOCGCOLLECTIONINDEX", 0x4810},
+ {"sound/emu10k1.h", "SNDRV_EMU10K1_IOCTL_INFO", 0x4810},
+ {"sound/sb16_csp.h", "SNDRV_SB_CSP_IOCTL_INFO", 0x4810},
+ {"linux/hiddev.h", "HIDIOCGCOLLECTIONINFO", 0x4811},
+ {"sound/emu10k1.h", "SNDRV_EMU10K1_IOCTL_CODE_POKE", 0x4811},
+ {"sound/sb16_csp.h", "SNDRV_SB_CSP_IOCTL_LOAD_CODE", 0x4811},
+ {"sound/emu10k1.h", "SNDRV_EMU10K1_IOCTL_CODE_PEEK", 0x4812},
+ {"sound/sb16_csp.h", "SNDRV_SB_CSP_IOCTL_UNLOAD_CODE", 0x4812},
+ {"linux/hiddev.h", "HIDIOCGUSAGES", 0x4813},
+ {"sound/sb16_csp.h", "SNDRV_SB_CSP_IOCTL_START", 0x4813},
+ {"linux/hiddev.h", "HIDIOCSUSAGES", 0x4814},
+ {"sound/sb16_csp.h", "SNDRV_SB_CSP_IOCTL_STOP", 0x4814},
+ {"sound/sb16_csp.h", "SNDRV_SB_CSP_IOCTL_PAUSE", 0x4815},
+ {"sound/sb16_csp.h", "SNDRV_SB_CSP_IOCTL_RESTART", 0x4816},
+ {"sound/asound_fm.h", "SNDRV_DM_FM_IOCTL_INFO", 0x4820},
+ {"sound/emu10k1.h", "SNDRV_EMU10K1_IOCTL_TRAM_SETUP", 0x4820},
+ {"sound/asound_fm.h", "SNDRV_DM_FM_IOCTL_RESET", 0x4821},
+ {"sound/emu10k1.h", "SNDRV_EMU10K1_IOCTL_TRAM_POKE", 0x4821},
+ {"sound/asound_fm.h", "SNDRV_DM_FM_IOCTL_PLAY_NOTE", 0x4822},
+ {"sound/emu10k1.h", "SNDRV_EMU10K1_IOCTL_TRAM_PEEK", 0x4822},
+ {"sound/asound_fm.h", "SNDRV_DM_FM_IOCTL_SET_VOICE", 0x4823},
+ {"sound/asound_fm.h", "SNDRV_DM_FM_IOCTL_SET_PARAMS", 0x4824},
+ {"sound/asound_fm.h", "SNDRV_DM_FM_IOCTL_SET_MODE", 0x4825},
+ {"sound/asound_fm.h", "SNDRV_DM_FM_IOCTL_SET_CONNECTION", 0x4826},
+ {"sound/emu10k1.h", "SNDRV_EMU10K1_IOCTL_PCM_POKE", 0x4830},
+ {"sound/emu10k1.h", "SNDRV_EMU10K1_IOCTL_PCM_PEEK", 0x4831},
+ {"sound/hdsp.h", "SNDRV_HDSP_IOCTL_GET_PEAK_RMS", 0x4840},
+ {"sound/hdsp.h", "SNDRV_HDSP_IOCTL_GET_CONFIG_INFO", 0x4841},
+ {"sound/hdsp.h", "SNDRV_HDSP_IOCTL_UPLOAD_FIRMWARE", 0x4842},
+ {"sound/hdsp.h", "SNDRV_HDSP_IOCTL_GET_VERSION", 0x4843},
+ {"sound/hdsp.h", "SNDRV_HDSP_IOCTL_GET_MIXER", 0x4844},
+ {"sound/hdsp.h", "SNDRV_HDSP_IOCTL_GET_9632_AEB", 0x4845},
+ {"sound/emu10k1.h", "SNDRV_EMU10K1_IOCTL_STOP", 0x4880},
+ {"sound/emu10k1.h", "SNDRV_EMU10K1_IOCTL_CONTINUE", 0x4881},
+ {"sound/emu10k1.h", "SNDRV_EMU10K1_IOCTL_ZERO_TRAM_COUNTER", 0x4882},
+ {"sound/emu10k1.h", "SNDRV_EMU10K1_IOCTL_SINGLE_STEP", 0x4883},
+ {"sound/emu10k1.h", "SNDRV_EMU10K1_IOCTL_DBG_READ", 0x4884},
+ {"linux/isdn.h", "IIOCNETAIF", 0x4901},
+ {"linux/isdn.h", "IIOCNETDIF", 0x4902},
+ {"linux/isdn.h", "IIOCNETSCF", 0x4903},
+ {"linux/isdn.h", "IIOCNETGCF", 0x4904},
+ {"linux/isdn.h", "IIOCNETANM", 0x4905},
+ {"linux/isdn.h", "IIOCNETDNM", 0x4906},
+ {"linux/isdn.h", "IIOCNETGNM", 0x4907},
+ {"linux/isdn.h", "IIOCGETSET", 0x4908},
+ {"linux/isdn.h", "IIOCSETSET", 0x4909},
+ {"linux/isdn.h", "IIOCSETVER", 0x490a},
+ {"linux/isdn.h", "IIOCNETHUP", 0x490b},
+ {"linux/isdn.h", "IIOCSETGST", 0x490c},
+ {"linux/isdn.h", "IIOCSETBRJ", 0x490d},
+ {"linux/isdn.h", "IIOCSIGPRF", 0x490e},
+ {"linux/isdn.h", "IIOCGETPRF", 0x490f},
+ {"linux/isdn.h", "IIOCSETPRF", 0x4910},
+ {"linux/isdn.h", "IIOCGETMAP", 0x4911},
+ {"linux/isdn.h", "IIOCSETMAP", 0x4912},
+ {"linux/isdn.h", "IIOCNETASL", 0x4913},
+ {"linux/isdn.h", "IIOCNETDIL", 0x4914},
+ {"linux/isdn.h", "IIOCGETCPS", 0x4915},
+ {"linux/isdn.h", "IIOCGETDVR", 0x4916},
+ {"linux/isdn.h", "IIOCNETLCR", 0x4917},
+ {"linux/isdn.h", "IIOCNETDWRSET", 0x4918},
+ {"linux/isdn.h", "IIOCNETALN", 0x4920},
+ {"linux/isdn.h", "IIOCNETDLN", 0x4921},
+ {"linux/isdn.h", "IIOCNETGPN", 0x4922},
+ {"linux/isdn.h", "IIOCDBGVAR", 0x497f},
+ {"linux/isdn.h", "IIOCDRVCTL", 0x4980},
+ {"linux/kd.h", "KIOCSOUND", 0x4b2f},
+ {"linux/kd.h", "KDMKTONE", 0x4b30},
+ {"linux/kd.h", "KDGETLED", 0x4b31},
+ {"linux/kd.h", "KDSETLED", 0x4b32},
+ {"linux/kd.h", "KDGKBTYPE", 0x4b33},
+ {"linux/kd.h", "KDADDIO", 0x4b34},
+ {"linux/kd.h", "KDDELIO", 0x4b35},
+ {"linux/kd.h", "KDENABIO", 0x4b36},
+ {"linux/kd.h", "KDDISABIO", 0x4b37},
+ {"linux/kd.h", "KDSETMODE", 0x4b3a},
+ {"linux/kd.h", "KDGETMODE", 0x4b3b},
+ {"linux/kd.h", "KDMAPDISP", 0x4b3c},
+ {"linux/kd.h", "KDUNMAPDISP", 0x4b3d},
+ {"linux/kd.h", "GIO_SCRNMAP", 0x4b40},
+ {"linux/kd.h", "PIO_SCRNMAP", 0x4b41},
+ {"linux/kd.h", "KDGKBMODE", 0x4b44},
+ {"linux/kd.h", "KDSKBMODE", 0x4b45},
+ {"linux/kd.h", "KDGKBENT", 0x4b46},
+ {"linux/kd.h", "KDSKBENT", 0x4b47},
+ {"linux/kd.h", "KDGKBSENT", 0x4b48},
+ {"linux/kd.h", "KDSKBSENT", 0x4b49},
+ {"linux/kd.h", "KDGKBDIACR", 0x4b4a},
+ {"linux/kd.h", "KDSKBDIACR", 0x4b4b},
+ {"linux/kd.h", "KDGETKEYCODE", 0x4b4c},
+ {"linux/kd.h", "KDSETKEYCODE", 0x4b4d},
+ {"linux/kd.h", "KDSIGACCEPT", 0x4b4e},
+ {"linux/kd.h", "KDKBDREP", 0x4b52},
+ {"linux/kd.h", "GIO_FONT", 0x4b60},
+ {"linux/kd.h", "PIO_FONT", 0x4b61},
+ {"linux/kd.h", "KDGKBMETA", 0x4b62},
+ {"linux/kd.h", "KDSKBMETA", 0x4b63},
+ {"linux/kd.h", "KDGKBLED", 0x4b64},
+ {"linux/kd.h", "KDSKBLED", 0x4b65},
+ {"linux/kd.h", "GIO_UNIMAP", 0x4b66},
+ {"linux/kd.h", "PIO_UNIMAP", 0x4b67},
+ {"linux/kd.h", "PIO_UNIMAPCLR", 0x4b68},
+ {"linux/kd.h", "GIO_UNISCRNMAP", 0x4b69},
+ {"linux/kd.h", "PIO_UNISCRNMAP", 0x4b6a},
+ {"linux/kd.h", "GIO_FONTX", 0x4b6b},
+ {"linux/kd.h", "PIO_FONTX", 0x4b6c},
+ {"linux/kd.h", "PIO_FONTRESET", 0x4b6d},
+ {"linux/kd.h", "GIO_CMAP", 0x4b70},
+ {"linux/kd.h", "PIO_CMAP", 0x4b71},
+ {"linux/kd.h", "KDFONTOP", 0x4b72},
+ {"asm/mtrr.h", "MTRRIOC_ADD_ENTRY", 0x4d00},
+ {"asm/mtrr.h", "MTRRIOC_SET_ENTRY", 0x4d01},
+ {"asm/mtrr.h", "MTRRIOC_DEL_ENTRY", 0x4d02},
+ {"asm/mtrr.h", "MTRRIOC_GET_ENTRY", 0x4d03},
+ {"asm/mtrr.h", "MTRRIOC_KILL_ENTRY", 0x4d04},
+ {"asm/mtrr.h", "MTRRIOC_ADD_PAGE_ENTRY", 0x4d05},
+ {"asm/mtrr.h", "MTRRIOC_SET_PAGE_ENTRY", 0x4d06},
+ {"asm/mtrr.h", "MTRRIOC_DEL_PAGE_ENTRY", 0x4d07},
+ {"asm/mtrr.h", "MTRRIOC_GET_PAGE_ENTRY", 0x4d08},
+ {"asm/mtrr.h", "MTRRIOC_KILL_PAGE_ENTRY", 0x4d09},
+ {"linux/soundcard.h", "SOUND_MIXER_INFO", 0x4d65},
+ {"linux/soundcard.h", "SOUND_MIXER_ACCESS", 0x4d66},
+ {"linux/soundcard.h", "SOUND_MIXER_AGC", 0x4d67},
+ {"linux/soundcard.h", "SOUND_MIXER_3DSE", 0x4d68},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE1", 0x4d6f},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE2", 0x4d70},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE3", 0x4d71},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE4", 0x4d72},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE5", 0x4d73},
+ {"linux/soundcard.h", "SOUND_MIXER_GETLEVELS", 0x4d74},
+ {"linux/soundcard.h", "SOUND_MIXER_SETLEVELS", 0x4d75},
+ {"linux/soundcard.h", "OSS_GETVERSION", 0x4d76},
+ {"linux/ticable.h", "IOCTL_TIUSB_TIMEOUT", 0x4e20},
+ {"linux/ticable.h", "IOCTL_TIUSB_RESET_DEVICE", 0x4e21},
+ {"linux/ticable.h", "IOCTL_TIUSB_RESET_PIPES", 0x4e22},
+ {"linux/soundcard.h", "SNDCTL_DSP_RESET", 0x5000},
+ {"linux/soundcard.h", "SNDCTL_DSP_SYNC", 0x5001},
+ {"linux/soundcard.h", "SNDCTL_DSP_SPEED", 0x5002},
+ {"linux/soundcard.h", "SOUND_PCM_READ_RATE", 0x5002},
+ {"linux/soundcard.h", "SNDCTL_DSP_STEREO", 0x5003},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETBLKSIZE", 0x5004},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETFMT", 0x5005},
+ {"linux/soundcard.h", "SOUND_PCM_READ_BITS", 0x5005},
+ {"linux/soundcard.h", "SOUND_PCM_READ_CHANNELS", 0x5006},
+ {"linux/soundcard.h", "SOUND_PCM_READ_FILTER", 0x5007},
+ {"linux/soundcard.h", "SNDCTL_DSP_POST", 0x5008},
+ {"linux/soundcard.h", "SNDCTL_DSP_SUBDIVIDE", 0x5009},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETFRAGMENT", 0x500a},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETFMTS", 0x500b},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETOSPACE", 0x500c},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETISPACE", 0x500d},
+ {"linux/soundcard.h", "SNDCTL_DSP_NONBLOCK", 0x500e},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETCAPS", 0x500f},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETTRIGGER", 0x5010},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETIPTR", 0x5011},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETOPTR", 0x5012},
+ {"linux/soundcard.h", "SNDCTL_DSP_MAPINBUF", 0x5013},
+ {"linux/soundcard.h", "SNDCTL_DSP_MAPOUTBUF", 0x5014},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETSYNCRO", 0x5015},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETDUPLEX", 0x5016},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETODELAY", 0x5017},
+ {"linux/soundcard.h", "SNDCTL_DSP_PROFILE", 0x5017},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETCHANNELMASK", 0x5040},
+ {"linux/soundcard.h", "SNDCTL_DSP_BIND_CHANNEL", 0x5041},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETSPDIF", 0x5042},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETSPDIF", 0x5043},
+ {"sound/sscape_ioctl.h", "SND_SSCAPE_LOAD_BOOTB", 0x5064},
+ {"sound/sscape_ioctl.h", "SND_SSCAPE_LOAD_MCODE", 0x5065},
+ {"linux/soundcard.h", "SNDCTL_SEQ_RESET", 0x5100},
+ {"linux/soundcard.h", "SNDCTL_SEQ_SYNC", 0x5101},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_INFO", 0x5102},
+ {"linux/soundcard.h", "SNDCTL_SEQ_CTRLRATE", 0x5103},
+ {"linux/soundcard.h", "SNDCTL_SEQ_GETOUTCOUNT", 0x5104},
+ {"linux/soundcard.h", "SNDCTL_SEQ_GETINCOUNT", 0x5105},
+ {"linux/soundcard.h", "SNDCTL_SEQ_PERCMODE", 0x5106},
+ {"linux/soundcard.h", "SNDCTL_FM_LOAD_INSTR", 0x5107},
+ {"linux/soundcard.h", "SNDCTL_SEQ_TESTMIDI", 0x5108},
+ {"linux/soundcard.h", "SNDCTL_SEQ_RESETSAMPLES", 0x5109},
+ {"linux/soundcard.h", "SNDCTL_SEQ_NRSYNTHS", 0x510a},
+ {"linux/soundcard.h", "SNDCTL_SEQ_NRMIDIS", 0x510b},
+ {"linux/soundcard.h", "SNDCTL_MIDI_INFO", 0x510c},
+ {"linux/soundcard.h", "SNDCTL_SEQ_THRESHOLD", 0x510d},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_MEMAVL", 0x510e},
+ {"linux/soundcard.h", "SNDCTL_FM_4OP_ENABLE", 0x510f},
+ {"linux/soundcard.h", "SNDCTL_SEQ_PANIC", 0x5111},
+ {"linux/soundcard.h", "SNDCTL_SEQ_OUTOFBAND", 0x5112},
+ {"linux/soundcard.h", "SNDCTL_SEQ_GETTIME", 0x5113},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_ID", 0x5114},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_CONTROL", 0x5115},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_REMOVESAMPLE", 0x5116},
+ {"linux/random.h", "RNDGETENTCNT", 0x5200},
+ {"linux/random.h", "RNDADDTOENTCNT", 0x5201},
+ {"linux/random.h", "RNDGETPOOL", 0x5202},
+ {"linux/random.h", "RNDADDENTROPY", 0x5203},
+ {"linux/random.h", "RNDZAPENTCNT", 0x5204},
+ {"linux/random.h", "RNDCLEARPOOL", 0x5206},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_PVERSION", 0x5300},
+ {"linux/cdrom.h", "CDROMPAUSE", 0x5301},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_CLIENT_ID", 0x5301},
+ {"linux/cdrom.h", "CDROMRESUME", 0x5302},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_SYSTEM_INFO", 0x5302},
+ {"linux/cdrom.h", "CDROMPLAYMSF", 0x5303},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_RUNNING_MODE", 0x5303},
+ {"linux/cdrom.h", "CDROMPLAYTRKIND", 0x5304},
+ {"linux/cdrom.h", "CDROMREADTOCHDR", 0x5305},
+ {"linux/cdrom.h", "CDROMREADTOCENTRY", 0x5306},
+ {"linux/cdrom.h", "CDROMSTOP", 0x5307},
+ {"linux/cdrom.h", "CDROMSTART", 0x5308},
+ {"linux/cdrom.h", "CDROMEJECT", 0x5309},
+ {"linux/cdrom.h", "CDROMVOLCTRL", 0x530a},
+ {"linux/cdrom.h", "CDROMSUBCHNL", 0x530b},
+ {"linux/cdrom.h", "CDROMREADMODE2", 0x530c},
+ {"linux/cdrom.h", "CDROMREADMODE1", 0x530d},
+ {"linux/cdrom.h", "CDROMREADAUDIO", 0x530e},
+ {"linux/cdrom.h", "CDROMEJECT_SW", 0x530f},
+ {"linux/cdrom.h", "CDROMMULTISESSION", 0x5310},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_GET_CLIENT_INFO", 0x5310},
+ {"linux/cdrom.h", "CDROM_GET_MCN", 0x5311},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_SET_CLIENT_INFO", 0x5311},
+ {"linux/cdrom.h", "CDROMRESET", 0x5312},
+ {"linux/cdrom.h", "CDROMVOLREAD", 0x5313},
+ {"linux/cdrom.h", "CDROMREADRAW", 0x5314},
+ {"linux/cdrom.h", "CDROMREADCOOKED", 0x5315},
+ {"linux/cdrom.h", "CDROMSEEK", 0x5316},
+ {"linux/cdrom.h", "CDROMPLAYBLK", 0x5317},
+ {"linux/cdrom.h", "CDROMREADALL", 0x5318},
+ {"linux/cdrom.h", "CDROMCLOSETRAY", 0x5319},
+ {"linux/cdrom.h", "CDROMGETSPINDOWN", 0x531d},
+ {"linux/cdrom.h", "CDROMSETSPINDOWN", 0x531e},
+ {"linux/cdrom.h", "CDROM_SET_OPTIONS", 0x5320},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_CREATE_PORT", 0x5320},
+ {"linux/cdrom.h", "CDROM_CLEAR_OPTIONS", 0x5321},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_DELETE_PORT", 0x5321},
+ {"linux/cdrom.h", "CDROM_SELECT_SPEED", 0x5322},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_GET_PORT_INFO", 0x5322},
+ {"linux/cdrom.h", "CDROM_SELECT_DISC", 0x5323},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_SET_PORT_INFO", 0x5323},
+ {"linux/cdrom.h", "CDROM_MEDIA_CHANGED", 0x5325},
+ {"linux/cdrom.h", "CDROM_DRIVE_STATUS", 0x5326},
+ {"linux/cdrom.h", "CDROM_DISC_STATUS", 0x5327},
+ {"linux/cdrom.h", "CDROM_CHANGER_NSLOTS", 0x5328},
+ {"linux/cdrom.h", "CDROM_LOCKDOOR", 0x5329},
+ {"linux/cdrom.h", "CDROM_DEBUG", 0x5330},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_SUBSCRIBE_PORT", 0x5330},
+ {"linux/cdrom.h", "CDROM_GET_CAPABILITY", 0x5331},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_UNSUBSCRIBE_PORT", 0x5331},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_CREATE_QUEUE", 0x5332},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_DELETE_QUEUE", 0x5333},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_GET_QUEUE_INFO", 0x5334},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_SET_QUEUE_INFO", 0x5335},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_GET_NAMED_QUEUE", 0x5336},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS", 0x5340},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_GET_QUEUE_TEMPO", 0x5341},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_SET_QUEUE_TEMPO", 0x5342},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_GET_QUEUE_OWNER", 0x5343},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_SET_QUEUE_OWNER", 0x5344},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_GET_QUEUE_TIMER", 0x5345},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_SET_QUEUE_TIMER", 0x5346},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_GET_QUEUE_CLIENT", 0x5349},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_SET_QUEUE_CLIENT", 0x534a},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_GET_CLIENT_POOL", 0x534b},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_SET_CLIENT_POOL", 0x534c},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_REMOVE_EVENTS", 0x534e},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_QUERY_SUBS", 0x534f},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_GET_SUBSCRIPTION", 0x5350},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_QUERY_NEXT_CLIENT", 0x5351},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_QUERY_NEXT_PORT", 0x5352},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_GET_QUEUE_SYNC", 0x5353},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_SET_QUEUE_SYNC", 0x5354},
+ {"scsi/scsi_ioctl.h", "SCSI_IOCTL_DOORLOCK", 0x5380},
+ {"scsi/scsi_ioctl.h", "SCSI_IOCTL_DOORUNLOCK", 0x5381},
+ {"linux/cdrom.h", "CDROMAUDIOBUFSIZ", 0x5382},
+ {"scsi/scsi.h", "SCSI_IOCTL_GET_IDLUN", 0x5382},
+ {"scsi/scsi.h", "SCSI_IOCTL_TAGGED_ENABLE", 0x5383},
+ {"scsi/scsi.h", "SCSI_IOCTL_TAGGED_DISABLE", 0x5384},
+ {"scsi/scsi.h", "SCSI_IOCTL_PROBE_HOST", 0x5385},
+ {"scsi/scsi.h", "SCSI_IOCTL_GET_BUS_NUMBER", 0x5386},
+ {"scsi/scsi.h", "SCSI_IOCTL_GET_PCI", 0x5387},
+ {"linux/cdrom.h", "DVD_READ_STRUCT", 0x5390},
+ {"linux/cdrom.h", "DVD_WRITE_STRUCT", 0x5391},
+ {"linux/cdrom.h", "DVD_AUTH", 0x5392},
+ {"linux/cdrom.h", "CDROM_SEND_PACKET", 0x5393},
+ {"linux/cdrom.h", "CDROM_NEXT_WRITABLE", 0x5394},
+ {"linux/cdrom.h", "CDROM_LAST_WRITTEN", 0x5395},
+ {"linux/soundcard.h", "SNDCTL_TMR_TIMEBASE", 0x5401},
+ {"asm/ioctls.h", "TCGETS", 0x5401},
+ {"linux/soundcard.h", "SNDCTL_TMR_START", 0x5402},
+ {"asm/ioctls.h", "TCSETS", 0x5402},
+ {"linux/soundcard.h", "SNDCTL_TMR_STOP", 0x5403},
+ {"asm/ioctls.h", "TCSETSW", 0x5403},
+ {"linux/soundcard.h", "SNDCTL_TMR_CONTINUE", 0x5404},
+ {"asm/ioctls.h", "TCSETSF", 0x5404},
+ {"linux/soundcard.h", "SNDCTL_TMR_TEMPO", 0x5405},
+ {"asm/ioctls.h", "TCGETA", 0x5405},
+ {"linux/soundcard.h", "SNDCTL_TMR_SOURCE", 0x5406},
+ {"asm/ioctls.h", "TCSETA", 0x5406},
+ {"linux/soundcard.h", "SNDCTL_TMR_METRONOME", 0x5407},
+ {"asm/ioctls.h", "TCSETAW", 0x5407},
+ {"linux/soundcard.h", "SNDCTL_TMR_SELECT", 0x5408},
+ {"asm/ioctls.h", "TCSETAF", 0x5408},
+ {"asm/ioctls.h", "TCSBRK", 0x5409},
+ {"asm/ioctls.h", "TCXONC", 0x540a},
+ {"asm/ioctls.h", "TCFLSH", 0x540b},
+ {"asm/ioctls.h", "TIOCEXCL", 0x540c},
+ {"asm/ioctls.h", "TIOCNXCL", 0x540d},
+ {"asm/ioctls.h", "TIOCSCTTY", 0x540e},
+ {"asm/ioctls.h", "TIOCGPGRP", 0x540f},
+ {"asm/ioctls.h", "TIOCSPGRP", 0x5410},
+ {"asm/ioctls.h", "TIOCOUTQ", 0x5411},
+ {"asm/ioctls.h", "TIOCSTI", 0x5412},
+ {"asm/ioctls.h", "TIOCGWINSZ", 0x5413},
+ {"asm/ioctls.h", "TIOCSWINSZ", 0x5414},
+ {"asm/ioctls.h", "TIOCMGET", 0x5415},
+ {"asm/ioctls.h", "TIOCMBIS", 0x5416},
+ {"asm/ioctls.h", "TIOCMBIC", 0x5417},
+ {"asm/ioctls.h", "TIOCMSET", 0x5418},
+ {"asm/ioctls.h", "TIOCGSOFTCAR", 0x5419},
+ {"asm/ioctls.h", "TIOCSSOFTCAR", 0x541a},
+ {"asm/ioctls.h", "FIONREAD", 0x541b},
+ {"asm/ioctls.h", "TIOCLINUX", 0x541c},
+ {"asm/ioctls.h", "TIOCCONS", 0x541d},
+ {"asm/ioctls.h", "TIOCGSERIAL", 0x541e},
+ {"asm/ioctls.h", "TIOCSSERIAL", 0x541f},
+ {"asm/ioctls.h", "TIOCPKT", 0x5420},
+ {"asm/ioctls.h", "FIONBIO", 0x5421},
+ {"asm/ioctls.h", "TIOCNOTTY", 0x5422},
+ {"asm/ioctls.h", "TIOCSETD", 0x5423},
+ {"asm/ioctls.h", "TIOCGETD", 0x5424},
+ {"asm/ioctls.h", "TCSBRKP", 0x5425},
+ {"asm/ioctls.h", "TIOCTTYGSTRUCT", 0x5426},
+ {"asm/ioctls.h", "TIOCSBRK", 0x5427},
+ {"asm/ioctls.h", "TIOCCBRK", 0x5428},
+ {"asm/ioctls.h", "TIOCGSID", 0x5429},
+ {"asm/ioctls.h", "TIOCGPTN", 0x5430},
+ {"asm/ioctls.h", "TIOCSPTLCK", 0x5431},
+ {"asm/ioctls.h", "TIOCGDEV", 0x5432},
+ {"asm/ioctls.h", "FIONCLEX", 0x5450},
+ {"asm/ioctls.h", "FIOCLEX", 0x5451},
+ {"asm/ioctls.h", "FIOASYNC", 0x5452},
+ {"asm/ioctls.h", "TIOCSERCONFIG", 0x5453},
+ {"asm/ioctls.h", "TIOCSERGWILD", 0x5454},
+ {"asm/ioctls.h", "TIOCSERSWILD", 0x5455},
+ {"asm/ioctls.h", "TIOCGLCKTRMIOS", 0x5456},
+ {"asm/ioctls.h", "TIOCSLCKTRMIOS", 0x5457},
+ {"asm/ioctls.h", "TIOCSERGSTRUCT", 0x5458},
+ {"asm/ioctls.h", "TIOCSERGETLSR", 0x5459},
+ {"asm/ioctls.h", "TIOCSERGETMULTI", 0x545a},
+ {"asm/ioctls.h", "TIOCSERSETMULTI", 0x545b},
+ {"asm/ioctls.h", "TIOCMIWAIT", 0x545c},
+ {"asm/ioctls.h", "TIOCGICOUNT", 0x545d},
+ {"asm/ioctls.h", "TIOCGHAYESESP", 0x545e},
+ {"asm/ioctls.h", "TIOCSHAYESESP", 0x545f},
+ {"asm/ioctls.h", "FIOQSIZE", 0x5460},
+ {"linux/if_tun.h", "TUNSETNOCSUM", 0x54c8},
+ {"linux/if_tun.h", "TUNSETDEBUG", 0x54c9},
+ {"linux/if_tun.h", "TUNSETIFF", 0x54ca},
+ {"linux/if_tun.h", "TUNSETPERSIST", 0x54cb},
+ {"linux/if_tun.h", "TUNSETOWNER", 0x54cc},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CONTROL", 0x5500},
+ {"linux/uinput.h", "UI_DEV_CREATE", 0x5501},
+ {"linux/uinput.h", "UI_DEV_DESTROY", 0x5502},
+ {"linux/usbdevice_fs.h", "USBDEVFS_BULK", 0x5502},
+ {"linux/usbdevice_fs.h", "USBDEVFS_RESETEP", 0x5503},
+ {"linux/usbdevice_fs.h", "USBDEVFS_SETINTERFACE", 0x5504},
+ {"linux/usbdevice_fs.h", "USBDEVFS_SETCONFIGURATION", 0x5505},
+ {"linux/usbdevice_fs.h", "USBDEVFS_GETDRIVER", 0x5508},
+ {"linux/usbdevice_fs.h", "USBDEVFS_SUBMITURB", 0x550a},
+ {"linux/usbdevice_fs.h", "USBDEVFS_DISCARDURB", 0x550b},
+ {"linux/usbdevice_fs.h", "USBDEVFS_REAPURB", 0x550c},
+ {"linux/usbdevice_fs.h", "USBDEVFS_REAPURBNDELAY", 0x550d},
+ {"linux/usbdevice_fs.h", "USBDEVFS_DISCSIGNAL", 0x550e},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CLAIMINTERFACE", 0x550f},
+ {"linux/usbdevice_fs.h", "USBDEVFS_RELEASEINTERFACE", 0x5510},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CONNECTINFO", 0x5511},
+ {"linux/usbdevice_fs.h", "USBDEVFS_IOCTL", 0x5512},
+ {"linux/usbdevice_fs.h", "USBDEVFS_HUB_PORTINFO", 0x5513},
+ {"linux/usbdevice_fs.h", "USBDEVFS_RESET", 0x5514},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CLEAR_HALT", 0x5515},
+ {"linux/usbdevice_fs.h", "USBDEVFS_DISCONNECT", 0x5516},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CONNECT", 0x5517},
+ {"linux/uinput.h", "UI_SET_EVBIT", 0x5564},
+ {"linux/uinput.h", "UI_SET_KEYBIT", 0x5565},
+ {"linux/uinput.h", "UI_SET_RELBIT", 0x5566},
+ {"linux/uinput.h", "UI_SET_ABSBIT", 0x5567},
+ {"linux/uinput.h", "UI_SET_MSCBIT", 0x5568},
+ {"linux/uinput.h", "UI_SET_LEDBIT", 0x5569},
+ {"linux/uinput.h", "UI_SET_SNDBIT", 0x556a},
+ {"linux/uinput.h", "UI_SET_FFBIT", 0x556b},
+ {"linux/videodev2.h", "VIDIOC_QUERYCAP", 0x5600},
+ {"linux/vt.h", "VT_OPENQRY", 0x5600},
+ {"linux/videodev2.h", "VIDIOC_RESERVED", 0x5601},
+ {"linux/vt.h", "VT_GETMODE", 0x5601},
+ {"linux/videodev2.h", "VIDIOC_ENUM_FMT", 0x5602},
+ {"linux/vt.h", "VT_SETMODE", 0x5602},
+ {"linux/vt.h", "VT_GETSTATE", 0x5603},
+ {"linux/videodev2.h", "VIDIOC_G_FMT", 0x5604},
+ {"linux/vt.h", "VT_SENDSIG", 0x5604},
+ {"linux/videodev2.h", "VIDIOC_S_FMT", 0x5605},
+ {"linux/vt.h", "VT_RELDISP", 0x5605},
+ {"linux/videodev2.h", "VIDIOC_G_COMP", 0x5606},
+ {"linux/vt.h", "VT_ACTIVATE", 0x5606},
+ {"linux/videodev2.h", "VIDIOC_S_COMP", 0x5607},
+ {"linux/vt.h", "VT_WAITACTIVE", 0x5607},
+ {"linux/videodev2.h", "VIDIOC_REQBUFS", 0x5608},
+ {"linux/vt.h", "VT_DISALLOCATE", 0x5608},
+ {"linux/videodev2.h", "VIDIOC_QUERYBUF", 0x5609},
+ {"linux/vt.h", "VT_RESIZE", 0x5609},
+ {"linux/videodev2.h", "VIDIOC_G_FBUF", 0x560a},
+ {"linux/vt.h", "VT_RESIZEX", 0x560a},
+ {"linux/videodev2.h", "VIDIOC_S_FBUF", 0x560b},
+ {"linux/vt.h", "VT_LOCKSWITCH", 0x560b},
+ {"linux/vt.h", "VT_UNLOCKSWITCH", 0x560c},
+ {"linux/videodev2.h", "VIDIOC_OVERLAY", 0x560e},
+ {"linux/videodev2.h", "VIDIOC_QBUF", 0x560f},
+ {"linux/videodev2.h", "VIDIOC_DQBUF", 0x5611},
+ {"linux/videodev2.h", "VIDIOC_STREAMON", 0x5612},
+ {"linux/videodev2.h", "VIDIOC_STREAMOFF", 0x5613},
+ {"linux/videodev2.h", "VIDIOC_G_PARM", 0x5615},
+ {"linux/videodev2.h", "VIDIOC_S_PARM", 0x5616},
+ {"linux/videodev2.h", "VIDIOC_G_STD", 0x5617},
+ {"linux/videodev2.h", "VIDIOC_S_STD", 0x5618},
+ {"linux/videodev2.h", "VIDIOC_ENUMSTD", 0x5619},
+ {"linux/videodev2.h", "VIDIOC_ENUMINPUT", 0x561a},
+ {"linux/matroxfb.h", "MATROXFB_G_TVOCTRL", 0x561b},
+ {"linux/videodev2.h", "VIDIOC_G_CTRL", 0x561b},
+ {"linux/matroxfb.h", "MATROXFB_S_TVOCTRL", 0x561c},
+ {"linux/videodev2.h", "VIDIOC_S_CTRL", 0x561c},
+ {"linux/videodev2.h", "VIDIOC_G_TUNER", 0x561d},
+ {"linux/videodev2.h", "VIDIOC_S_TUNER", 0x561e},
+ {"linux/videodev2.h", "VIDIOC_G_AUDIO", 0x5621},
+ {"linux/videodev2.h", "VIDIOC_S_AUDIO", 0x5622},
+ {"linux/matroxfb.h", "MATROXFB_TVOQUERYCTRL", 0x5624},
+ {"linux/videodev2.h", "VIDIOC_QUERYCTRL", 0x5624},
+ {"linux/videodev2.h", "VIDIOC_QUERYMENU", 0x5625},
+ {"linux/videodev2.h", "VIDIOC_G_INPUT", 0x5626},
+ {"linux/videodev2.h", "VIDIOC_S_INPUT", 0x5627},
+ {"linux/videodev2.h", "VIDIOC_G_OUTPUT", 0x562e},
+ {"linux/videodev2.h", "VIDIOC_S_OUTPUT", 0x562f},
+ {"linux/videodev2.h", "VIDIOC_ENUMOUTPUT", 0x5630},
+ {"linux/videodev2.h", "VIDIOC_G_AUDOUT", 0x5631},
+ {"linux/videodev2.h", "VIDIOC_S_AUDOUT", 0x5632},
+ {"linux/videodev2.h", "VIDIOC_G_MODULATOR", 0x5636},
+ {"linux/videodev2.h", "VIDIOC_S_MODULATOR", 0x5637},
+ {"linux/videodev2.h", "VIDIOC_G_FREQUENCY", 0x5638},
+ {"linux/videodev2.h", "VIDIOC_S_FREQUENCY", 0x5639},
+ {"linux/videodev2.h", "VIDIOC_CROPCAP", 0x563a},
+ {"linux/videodev2.h", "VIDIOC_G_CROP", 0x563b},
+ {"linux/videodev2.h", "VIDIOC_S_CROP", 0x563c},
+ {"linux/videodev2.h", "VIDIOC_G_JPEGCOMP", 0x563d},
+ {"linux/videodev2.h", "VIDIOC_S_JPEGCOMP", 0x563e},
+ {"linux/videodev2.h", "VIDIOC_QUERYSTD", 0x563f},
+ {"linux/videodev2.h", "VIDIOC_TRY_FMT", 0x5640},
+ {"linux/videodev2.h", "VIDIOC_ENUMAUDIO", 0x5641},
+ {"linux/videodev2.h", "VIDIOC_ENUMAUDOUT", 0x5642},
+ {"linux/videodev2.h", "VIDIOC_G_PRIORITY", 0x5643},
+ {"linux/videodev2.h", "VIDIOC_S_PRIORITY", 0x5644},
+ {"linux/watchdog.h", "WDIOC_GETSUPPORT", 0x5700},
+ {"linux/watchdog.h", "WDIOC_GETSTATUS", 0x5701},
+ {"linux/watchdog.h", "WDIOC_GETBOOTSTATUS", 0x5702},
+ {"linux/watchdog.h", "WDIOC_GETTEMP", 0x5703},
+ {"linux/watchdog.h", "WDIOC_SETOPTIONS", 0x5704},
+ {"linux/watchdog.h", "WDIOC_KEEPALIVE", 0x5705},
+ {"linux/watchdog.h", "WDIOC_SETTIMEOUT", 0x5706},
+ {"linux/watchdog.h", "WDIOC_GETTIMEOUT", 0x5707},
+ {"linux/ite_gpio.h", "ITE_GPIO_IN", 0x5a00},
+ {"linux/ite_gpio.h", "ITE_GPIO_OUT", 0x5a01},
+ {"linux/ite_gpio.h", "ITE_GPIO_INT_CTRL", 0x5a02},
+ {"linux/ite_gpio.h", "ITE_GPIO_IN_STATUS", 0x5a03},
+ {"linux/ite_gpio.h", "ITE_GPIO_OUT_STATUS", 0x5a04},
+ {"linux/ite_gpio.h", "ITE_GPIO_GEN_CTRL", 0x5a05},
+ {"linux/ite_gpio.h", "ITE_GPIO_INT_WAIT", 0x5a06},
+ {"linux/sonet.h", "SONET_GETSTAT", 0x6110},
+ {"linux/sonet.h", "SONET_GETSTATZ", 0x6111},
+ {"linux/sonet.h", "SONET_SETDIAG", 0x6112},
+ {"linux/sonet.h", "SONET_CLRDIAG", 0x6113},
+ {"linux/sonet.h", "SONET_GETDIAG", 0x6114},
+ {"linux/sonet.h", "SONET_SETFRAMING", 0x6115},
+ {"linux/sonet.h", "SONET_GETFRAMING", 0x6116},
+ {"linux/sonet.h", "SONET_GETFRSENSE", 0x6117},
+ {"linux/atm_idt77105.h", "IDT77105_GETSTAT", 0x6132},
+ {"linux/atm_idt77105.h", "IDT77105_GETSTATZ", 0x6133},
+ {"linux/atmdev.h", "ATM_GETSTAT", 0x6150},
+ {"linux/atmdev.h", "ATM_GETSTATZ", 0x6151},
+ {"linux/atmdev.h", "ATM_GETLOOP", 0x6152},
+ {"linux/atmdev.h", "ATM_SETLOOP", 0x6153},
+ {"linux/atmdev.h", "ATM_QUERYLOOP", 0x6154},
+ {"linux/atm_eni.h", "ENI_MEMDUMP", 0x6160},
+ {"linux/atm_he.h", "HE_GET_REG", 0x6160},
+ {"linux/atm_nicstar.h", "NS_GETPSTAT", 0x6161},
+ {"linux/atm_zatm.h", "ZATM_GETPOOL", 0x6161},
+ {"linux/atm_nicstar.h", "NS_SETBUFLEV", 0x6162},
+ {"linux/atm_zatm.h", "ZATM_GETPOOLZ", 0x6162},
+ {"linux/atm_nicstar.h", "NS_ADJBUFLEV", 0x6163},
+ {"linux/atm_zatm.h", "ZATM_SETPOOL", 0x6163},
+ {"linux/atm_zatm.h", "ZATM_GETTHIST", 0x6164},
+ {"linux/atm_eni.h", "ENI_SETMULT", 0x6167},
+ {"linux/atm_tcp.h", "SIOCSIFATMTCP", 0x6180},
+ {"linux/atmdev.h", "ATM_GETLINKRATE", 0x6181},
+ {"linux/atmdev.h", "ATM_GETNAMES", 0x6183},
+ {"linux/atmdev.h", "ATM_GETTYPE", 0x6184},
+ {"linux/atmdev.h", "ATM_GETESI", 0x6185},
+ {"linux/atmdev.h", "ATM_GETADDR", 0x6186},
+ {"linux/atmdev.h", "ATM_RSTADDR", 0x6187},
+ {"linux/atmdev.h", "ATM_ADDADDR", 0x6188},
+ {"linux/atmdev.h", "ATM_DELADDR", 0x6189},
+ {"linux/atmdev.h", "ATM_GETCIRANGE", 0x618a},
+ {"linux/atmdev.h", "ATM_SETCIRANGE", 0x618b},
+ {"linux/atmdev.h", "ATM_SETESI", 0x618c},
+ {"linux/atmdev.h", "ATM_SETESIF", 0x618d},
+ {"linux/atm_tcp.h", "ATMTCP_CREATE", 0x618e},
+ {"linux/atm_tcp.h", "ATMTCP_REMOVE", 0x618f},
+ {"linux/atmbr2684.h", "BR2684_SETFILT", 0x6190},
+ {"linux/atmlec.h", "ATMLEC_CTRL", 0x61d0},
+ {"linux/atmlec.h", "ATMLEC_DATA", 0x61d1},
+ {"linux/atmlec.h", "ATMLEC_MCAST", 0x61d2},
+ {"linux/atmmpc.h", "ATMMPC_CTRL", 0x61d8},
+ {"linux/atmmpc.h", "ATMMPC_DATA", 0x61d9},
+ {"linux/atmclip.h", "SIOCMKCLIP", 0x61e0},
+ {"linux/atmarp.h", "ATMARPD_CTRL", 0x61e1},
+ {"linux/atmarp.h", "ATMARP_MKIP", 0x61e2},
+ {"linux/atmarp.h", "ATMARP_SETENTRY", 0x61e3},
+ {"linux/atmarp.h", "ATMARP_ENCAP", 0x61e5},
+ {"linux/atmsvc.h", "ATMSIGD_CTRL", 0x61f0},
+ {"linux/atmdev.h", "ATM_SETSC", 0x61f1},
+ {"linux/atmdev.h", "ATM_SETBACKEND", 0x61f2},
+ {"linux/atmdev.h", "ATM_NEWBACKENDIF", 0x61f3},
+ {"linux/coda.h", "CIOC_KERNEL_VERSION", 0x630a},
+ {"linux/comstats.h", "COM_GETPORTSTATS", 0x631e},
+ {"linux/comstats.h", "COM_CLRPORTSTATS", 0x631f},
+ {"linux/comstats.h", "COM_GETBRDSTATS", 0x6320},
+ {"linux/comstats.h", "COM_READPORT", 0x6328},
+ {"linux/comstats.h", "COM_READBOARD", 0x6329},
+ {"linux/comstats.h", "COM_READPANEL", 0x632a},
+ {"linux/devfs_fs.h", "DEVFSDIOC_GET_PROTO_REV", 0x6400},
+ {"linux/video_decoder.h", "DECODER_GET_CAPABILITIES", 0x6401},
+ {"linux/video_decoder.h", "DECODER_GET_STATUS", 0x6402},
+ {"linux/devfs_fs.h", "DEVFSDIOC_SET_EVENT_MASK", 0x6402},
+ {"linux/video_decoder.h", "DECODER_SET_NORM", 0x6403},
+ {"linux/devfs_fs.h", "DEVFSDIOC_RELEASE_EVENT_QUEUE", 0x6403},
+ {"linux/video_decoder.h", "DECODER_SET_INPUT", 0x6404},
+ {"linux/devfs_fs.h", "DEVFSDIOC_SET_DEBUG_MASK", 0x6404},
+ {"linux/video_decoder.h", "DECODER_SET_OUTPUT", 0x6405},
+ {"linux/video_decoder.h", "DECODER_ENABLE_OUTPUT", 0x6406},
+ {"linux/video_decoder.h", "DECODER_SET_PICTURE", 0x6407},
+ {"linux/video_decoder.h", "DECODER_DUMP", 0x64c0},
+ {"linux/video_encoder.h", "ENCODER_GET_CAPABILITIES", 0x6501},
+ {"linux/video_encoder.h", "ENCODER_SET_NORM", 0x6502},
+ {"linux/video_encoder.h", "ENCODER_SET_INPUT", 0x6503},
+ {"linux/video_encoder.h", "ENCODER_SET_OUTPUT", 0x6504},
+ {"linux/video_encoder.h", "ENCODER_ENABLE_OUTPUT", 0x6505},
+ {"linux/ext2_fs.h", "EXT2_IOC_GETFLAGS", 0x6601},
+ {"linux/ext2_fs.h", "EXT2_IOC_SETFLAGS", 0x6602},
+ {"linux/ext3_fs.h", "EXT3_IOC_GETVERSION", 0x6603},
+ {"linux/ext3_fs.h", "EXT3_IOC_SETVERSION", 0x6604},
+ {"linux/ext3_fs.h", "EXT3_IOC_WAIT_FOR_READONLY", 0x6663},
+ {"linux/usb_gadgetfs.h", "GADGETFS_FIFO_STATUS", 0x6701},
+ {"linux/usb_gadgetfs.h", "GADGETFS_FIFO_FLUSH", 0x6702},
+ {"linux/usb_gadgetfs.h", "GADGETFS_CLEAR_HALT", 0x6703},
+ {"linux/i2o-dev.h", "I2OGETIOPS", 0x6900},
+ {"linux/i2o-dev.h", "I2OHRTGET", 0x6901},
+ {"linux/i2o-dev.h", "I2OLCTGET", 0x6902},
+ {"linux/i2o-dev.h", "I2OPARMSET", 0x6903},
+ {"linux/i2o-dev.h", "I2OPARMGET", 0x6904},
+ {"linux/i2o-dev.h", "I2OSWDL", 0x6905},
+ {"linux/i2o-dev.h", "I2OSWUL", 0x6906},
+ {"linux/i2o-dev.h", "I2OSWDEL", 0x6907},
+ {"linux/i2o-dev.h", "I2OVALIDATE", 0x6908},
+ {"linux/i2o-dev.h", "I2OHTML", 0x6909},
+ {"linux/i2o-dev.h", "I2OEVTREG", 0x690a},
+ {"linux/i2o-dev.h", "I2OEVTGET", 0x690b},
+ {"linux/ipmi.h", "IPMICTL_RECEIVE_MSG_TRUNC", 0x690b},
+ {"linux/ipmi.h", "IPMICTL_RECEIVE_MSG", 0x690c},
+ {"linux/ipmi.h", "IPMICTL_SEND_COMMAND", 0x690d},
+ {"linux/ipmi.h", "IPMICTL_REGISTER_FOR_CMD", 0x690e},
+ {"linux/ipmi.h", "IPMICTL_UNREGISTER_FOR_CMD", 0x690f},
+ {"linux/ipmi.h", "IPMICTL_SET_GETS_EVENTS_CMD", 0x6910},
+ {"linux/ipmi.h", "IPMICTL_SET_MY_ADDRESS_CMD", 0x6911},
+ {"linux/ipmi.h", "IPMICTL_GET_MY_ADDRESS_CMD", 0x6912},
+ {"linux/ipmi.h", "IPMICTL_SET_MY_LUN_CMD", 0x6913},
+ {"linux/ipmi.h", "IPMICTL_GET_MY_LUN_CMD", 0x6914},
+ {"linux/i8k.h", "I8K_BIOS_VERSION", 0x6980},
+ {"linux/i8k.h", "I8K_MACHINE_ID", 0x6981},
+ {"linux/i8k.h", "I8K_POWER_STATUS", 0x6982},
+ {"linux/i8k.h", "I8K_FN_STATUS", 0x6983},
+ {"linux/i8k.h", "I8K_GET_TEMP", 0x6984},
+ {"linux/i8k.h", "I8K_GET_SPEED", 0x6985},
+ {"linux/i8k.h", "I8K_GET_FAN", 0x6986},
+ {"linux/i8k.h", "I8K_SET_FAN", 0x6987},
+ {"linux/joystick.h", "JSIOCGVERSION", 0x6a01},
+ {"linux/joystick.h", "JSIOCGAXES", 0x6a11},
+ {"linux/joystick.h", "JSIOCGBUTTONS", 0x6a12},
+ {"linux/joystick.h", "JSIOCSCORR", 0x6a21},
+ {"linux/joystick.h", "JSIOCGCORR", 0x6a22},
+ {"linux/joystick.h", "JSIOCSAXMAP", 0x6a31},
+ {"linux/joystick.h", "JSIOCGAXMAP", 0x6a32},
+ {"linux/joystick.h", "JSIOCSBTNMAP", 0x6a33},
+ {"linux/joystick.h", "JSIOCGBTNMAP", 0x6a34},
+ {"linux/udf_fs_i.h", "UDF_GETEASIZE", 0x6c40},
+ {"linux/udf_fs_i.h", "UDF_GETEABLOCK", 0x6c41},
+ {"linux/udf_fs_i.h", "UDF_GETVOLIDENT", 0x6c42},
+ {"linux/udf_fs_i.h", "UDF_RELOCATE_BLOCKS", 0x6c43},
+ {"linux/synclink.h", "MGSL_IOCSPARAMS", 0x6d00},
+ {"linux/soundcard.h", "SNDCTL_MIDI_PRETIME", 0x6d00},
+ {"linux/synclink.h", "MGSL_IOCGPARAMS", 0x6d01},
+ {"linux/mtio.h", "MTIOCTOP", 0x6d01},
+ {"linux/soundcard.h", "SNDCTL_MIDI_MPUMODE", 0x6d01},
+ {"linux/synclink.h", "MGSL_IOCSTXIDLE", 0x6d02},
+ {"linux/mtio.h", "MTIOCGET", 0x6d02},
+ {"linux/soundcard.h", "SNDCTL_MIDI_MPUCMD", 0x6d02},
+ {"linux/synclink.h", "MGSL_IOCGTXIDLE", 0x6d03},
+ {"linux/mtio.h", "MTIOCPOS", 0x6d03},
+ {"linux/synclink.h", "MGSL_IOCTXENABLE", 0x6d04},
+ {"linux/mtio.h", "MTIOCGETCONFIG", 0x6d04},
+ {"linux/synclink.h", "MGSL_IOCRXENABLE", 0x6d05},
+ {"linux/mtio.h", "MTIOCSETCONFIG", 0x6d05},
+ {"linux/synclink.h", "MGSL_IOCTXABORT", 0x6d06},
+ {"linux/mtio.h", "MTIOCRDFTSEG", 0x6d06},
+ {"linux/synclink.h", "MGSL_IOCGSTATS", 0x6d07},
+ {"linux/mtio.h", "MTIOCWRFTSEG", 0x6d07},
+ {"linux/synclink.h", "MGSL_IOCWAITEVENT", 0x6d08},
+ {"linux/mtio.h", "MTIOCVOLINFO", 0x6d08},
+ {"linux/synclink.h", "MGSL_IOCLOOPTXDONE", 0x6d09},
+ {"linux/mtio.h", "MTIOCGETSIZE", 0x6d09},
+ {"linux/synclink.h", "MGSL_IOCSIF", 0x6d0a},
+ {"linux/mtio.h", "MTIOCFTFORMAT", 0x6d0a},
+ {"linux/synclink.h", "MGSL_IOCGIF", 0x6d0b},
+ {"linux/mtio.h", "MTIOCFTCMD", 0x6d0b},
+ {"linux/synclink.h", "MGSL_IOCCLRMODCOUNT", 0x6d0f},
+ {"linux/zftape.h", "MTIOC_ZFTAPE_GETBLKSZ", 0x6d68},
+ {"linux/ncp_fs.h", "NCP_IOC_NCPREQUEST", 0x6e01},
+ {"linux/ncp_fs.h", "NCP_IOC_GETMOUNTUID", 0x6e02},
+ {"linux/ncp_fs.h", "NCP_IOC_CONN_LOGGED_IN", 0x6e03},
+ {"linux/ncp_fs.h", "NCP_IOC_GET_FS_INFO", 0x6e04},
+ {"linux/ncp_fs.h", "NCP_IOC_SIGN_INIT", 0x6e05},
+ {"linux/ncp_fs.h", "NCP_IOC_SIGN_WANTED", 0x6e06},
+ {"linux/ncp_fs.h", "NCP_IOC_LOCKUNLOCK", 0x6e07},
+ {"linux/ncp_fs.h", "NCP_IOC_GETROOT", 0x6e08},
+ {"linux/ncp_fs.h", "NCP_IOC_GETOBJECTNAME", 0x6e09},
+ {"linux/ncp_fs.h", "NCP_IOC_GETPRIVATEDATA", 0x6e0a},
+ {"linux/ncp_fs.h", "NCP_IOC_GETCHARSETS", 0x6e0b},
+ {"linux/ncp_fs.h", "NCP_IOC_GETDENTRYTTL", 0x6e0c},
+ {"linux/matroxfb.h", "MATROXFB_GET_OUTPUT_CONNECTION", 0x6ef8},
+ {"linux/sisfb.h", "SISFB_GET_INFO", 0x6ef8},
+ {"linux/matroxfb.h", "MATROXFB_GET_AVAILABLE_OUTPUTS", 0x6ef9},
+ {"linux/matroxfb.h", "MATROXFB_GET_OUTPUT_MODE", 0x6efa},
+ {"linux/matroxfb.h", "MATROXFB_GET_ALL_OUTPUTS", 0x6efb},
+ {"linux/rtc.h", "RTC_AIE_ON", 0x7001},
+ {"linux/rtc.h", "RTC_AIE_OFF", 0x7002},
+ {"linux/rtc.h", "RTC_UIE_ON", 0x7003},
+ {"linux/rtc.h", "RTC_UIE_OFF", 0x7004},
+ {"linux/rtc.h", "RTC_PIE_ON", 0x7005},
+ {"linux/rtc.h", "RTC_PIE_OFF", 0x7006},
+ {"linux/rtc.h", "RTC_ALM_SET", 0x7007},
+ {"linux/rtc.h", "RTC_ALM_READ", 0x7008},
+ {"linux/rtc.h", "RTC_RD_TIME", 0x7009},
+ {"linux/rtc.h", "RTC_SET_TIME", 0x700a},
+ {"linux/rtc.h", "RTC_IRQP_READ", 0x700b},
+ {"linux/rtc.h", "RTC_IRQP_SET", 0x700c},
+ {"linux/rtc.h", "RTC_EPOCH_READ", 0x700d},
+ {"linux/rtc.h", "RTC_EPOCH_SET", 0x700e},
+ {"linux/rtc.h", "RTC_WIE_ON", 0x700f},
+ {"linux/rtc.h", "RTC_WKALM_SET", 0x700f},
+ {"linux/rtc.h", "RTC_WIE_OFF", 0x7010},
+ {"linux/rtc.h", "RTC_WKALM_RD", 0x7010},
+ {"linux/rtc.h", "RTC_PLL_GET", 0x7011},
+ {"linux/rtc.h", "RTC_PLL_SET", 0x7012},
+ {"linux/nvram.h", "NVRAM_INIT", 0x7040},
+ {"linux/nvram.h", "NVRAM_SETCKS", 0x7041},
+ {"linux/intermezzo_idl.h", "IZO_IOC_DEVICE", 0x7050},
+ {"linux/intermezzo_idl.h", "IZO_IOC_REINTKML", 0x7051},
+ {"linux/intermezzo_idl.h", "IZO_IOC_GET_RCVD", 0x7052},
+ {"linux/intermezzo_idl.h", "IZO_IOC_SET_IOCTL_UID", 0x7053},
+ {"linux/intermezzo_idl.h", "IZO_IOC_GET_KML_SIZE", 0x7054},
+ {"linux/intermezzo_idl.h", "IZO_IOC_PURGE_FILE_DATA", 0x7055},
+ {"linux/intermezzo_idl.h", "IZO_IOC_CONNECT", 0x7056},
+ {"linux/intermezzo_idl.h", "IZO_IOC_GO_FETCH_KML", 0x7057},
+ {"linux/intermezzo_idl.h", "IZO_IOC_MARK", 0x7058},
+ {"linux/intermezzo_idl.h", "IZO_IOC_CLEAR_FSET", 0x7059},
+ {"linux/intermezzo_idl.h", "IZO_IOC_CLEAR_ALL_FSETS", 0x7060},
+ {"linux/intermezzo_idl.h", "IZO_IOC_SET_FSET", 0x7061},
+ {"linux/intermezzo_idl.h", "IZO_IOC_REVOKE_PERMIT", 0x7062},
+ {"linux/intermezzo_idl.h", "IZO_IOC_SET_KMLSIZE", 0x7063},
+ {"linux/intermezzo_idl.h", "IZO_IOC_CLIENT_MAKE_BRANCH", 0x7064},
+ {"linux/intermezzo_idl.h", "IZO_IOC_SERVER_MAKE_BRANCH", 0x7065},
+ {"linux/intermezzo_idl.h", "IZO_IOC_BRANCH_UNDO", 0x7066},
+ {"linux/intermezzo_idl.h", "IZO_IOC_BRANCH_REDO", 0x7067},
+ {"linux/intermezzo_idl.h", "IZO_IOC_SET_PID", 0x7068},
+ {"linux/intermezzo_idl.h", "IZO_IOC_SET_CHANNEL", 0x7069},
+ {"linux/intermezzo_idl.h", "IZO_IOC_GET_CHANNEL", 0x7070},
+ {"linux/intermezzo_idl.h", "IZO_IOC_GET_FILEID", 0x7071},
+ {"linux/intermezzo_idl.h", "IZO_IOC_ADJUST_LML", 0x7072},
+ {"linux/intermezzo_idl.h", "IZO_IOC_SET_FILEID", 0x7073},
+ {"linux/intermezzo_idl.h", "IZO_IOC_REPSTATUS", 0x7074},
+ {"linux/ppdev.h", "PPSETMODE", 0x7080},
+ {"linux/ppdev.h", "PPRSTATUS", 0x7081},
+ {"linux/ppdev.h", "PPRCONTROL", 0x7083},
+ {"linux/ppdev.h", "PPWCONTROL", 0x7084},
+ {"linux/ppdev.h", "PPRDATA", 0x7085},
+ {"linux/ppdev.h", "PPWDATA", 0x7086},
+ {"linux/ppdev.h", "PPCLAIM", 0x708b},
+ {"linux/ppdev.h", "PPRELEASE", 0x708c},
+ {"linux/ppdev.h", "PPYIELD", 0x708d},
+ {"linux/ppdev.h", "PPFCONTROL", 0x708e},
+ {"linux/ppdev.h", "PPEXCL", 0x708f},
+ {"linux/ppdev.h", "PPDATADIR", 0x7090},
+ {"linux/ppdev.h", "PPNEGOT", 0x7091},
+ {"linux/ppdev.h", "PPWCTLONIRQ", 0x7092},
+ {"linux/ppdev.h", "PPCLRIRQ", 0x7093},
+ {"linux/ppdev.h", "PPSETPHASE", 0x7094},
+ {"linux/ppdev.h", "PPGETTIME", 0x7095},
+ {"linux/ppdev.h", "PPSETTIME", 0x7096},
+ {"linux/ppdev.h", "PPGETMODES", 0x7097},
+ {"linux/ppdev.h", "PPGETMODE", 0x7098},
+ {"linux/ppdev.h", "PPGETPHASE", 0x7099},
+ {"linux/ppdev.h", "PPGETFLAGS", 0x709a},
+ {"linux/ppdev.h", "PPSETFLAGS", 0x709b},
+ {"linux/ticable.h", "IOCTL_TISER_DELAY", 0x70a0},
+ {"linux/ticable.h", "IOCTL_TISER_TIMEOUT", 0x70a1},
+ {"linux/ticable.h", "IOCTL_TIPAR_DELAY", 0x70a8},
+ {"linux/ticable.h", "IOCTL_TIPAR_TIMEOUT", 0x70a9},
+ {"linux/serio.h", "SPIOCSTYPE", 0x7101},
+ {"linux/videotext.h", "VTXIOCGETINFO", 0x7101},
+ {"linux/videotext.h", "VTXIOCCLRPAGE", 0x7102},
+ {"linux/videotext.h", "VTXIOCCLRFOUND", 0x7103},
+ {"linux/videotext.h", "VTXIOCPAGEREQ", 0x7104},
+ {"linux/videotext.h", "VTXIOCGETSTAT", 0x7105},
+ {"linux/videotext.h", "VTXIOCGETPAGE", 0x7106},
+ {"linux/videotext.h", "VTXIOCSTOPDAU", 0x7107},
+ {"linux/videotext.h", "VTXIOCPUTPAGE", 0x7108},
+ {"linux/videotext.h", "VTXIOCSETDISP", 0x7109},
+ {"linux/videotext.h", "VTXIOCPUTSTAT", 0x710a},
+ {"linux/videotext.h", "VTXIOCCLRCACHE", 0x710b},
+ {"linux/videotext.h", "VTXIOCSETVIRT", 0x710c},
+ {"linux/telephony.h", "PHONE_CAPABILITIES", 0x7180},
+ {"linux/telephony.h", "PHONE_CAPABILITIES_LIST", 0x7181},
+ {"linux/telephony.h", "PHONE_CAPABILITIES_CHECK", 0x7182},
+ {"linux/telephony.h", "PHONE_RING", 0x7183},
+ {"linux/telephony.h", "PHONE_HOOKSTATE", 0x7184},
+ {"linux/telephony.h", "PHONE_MAXRINGS", 0x7185},
+ {"linux/telephony.h", "PHONE_RING_CADENCE", 0x7186},
+ {"linux/telephony.h", "PHONE_RING_START", 0x7187},
+ {"linux/telephony.h", "PHONE_RING_STOP", 0x7188},
+ {"linux/telephony.h", "PHONE_REC_CODEC", 0x7189},
+ {"linux/telephony.h", "PHONE_REC_START", 0x718a},
+ {"linux/telephony.h", "PHONE_REC_STOP", 0x718b},
+ {"linux/telephony.h", "PHONE_REC_DEPTH", 0x718c},
+ {"linux/telephony.h", "PHONE_FRAME", 0x718d},
+ {"linux/telephony.h", "PHONE_REC_VOLUME", 0x718e},
+ {"linux/telephony.h", "PHONE_REC_LEVEL", 0x718f},
+ {"linux/telephony.h", "PHONE_PLAY_CODEC", 0x7190},
+ {"linux/telephony.h", "PHONE_PLAY_START", 0x7191},
+ {"linux/telephony.h", "PHONE_PLAY_STOP", 0x7192},
+ {"linux/telephony.h", "PHONE_PLAY_DEPTH", 0x7193},
+ {"linux/telephony.h", "PHONE_PLAY_VOLUME", 0x7194},
+ {"linux/telephony.h", "PHONE_PLAY_LEVEL", 0x7195},
+ {"linux/telephony.h", "PHONE_DTMF_READY", 0x7196},
+ {"linux/telephony.h", "PHONE_GET_DTMF", 0x7197},
+ {"linux/telephony.h", "PHONE_GET_DTMF_ASCII", 0x7198},
+ {"linux/telephony.h", "PHONE_DTMF_OOB", 0x7199},
+ {"linux/telephony.h", "PHONE_EXCEPTION", 0x719a},
+ {"linux/telephony.h", "PHONE_PLAY_TONE", 0x719b},
+ {"linux/telephony.h", "PHONE_SET_TONE_ON_TIME", 0x719c},
+ {"linux/telephony.h", "PHONE_SET_TONE_OFF_TIME", 0x719d},
+ {"linux/telephony.h", "PHONE_GET_TONE_ON_TIME", 0x719e},
+ {"linux/telephony.h", "PHONE_GET_TONE_OFF_TIME", 0x719f},
+ {"linux/telephony.h", "PHONE_GET_TONE_STATE", 0x71a0},
+ {"linux/telephony.h", "PHONE_BUSY", 0x71a1},
+ {"linux/telephony.h", "PHONE_RINGBACK", 0x71a2},
+ {"linux/telephony.h", "PHONE_DIALTONE", 0x71a3},
+ {"linux/telephony.h", "PHONE_CPT_STOP", 0x71a4},
+ {"linux/telephony.h", "PHONE_PSTN_SET_STATE", 0x71a4},
+ {"linux/telephony.h", "PHONE_PSTN_GET_STATE", 0x71a5},
+ {"linux/telephony.h", "PHONE_WINK_DURATION", 0x71a6},
+ {"linux/telephony.h", "PHONE_QUERY_CODEC", 0x71a7},
+ {"linux/telephony.h", "PHONE_PSTN_LINETEST", 0x71a8},
+ {"linux/telephony.h", "PHONE_VAD", 0x71a9},
+ {"linux/telephony.h", "PHONE_WINK", 0x71aa},
+ {"linux/ixjuser.h", "IXJCTL_DSP_RESET", 0x71c0},
+ {"linux/ixjuser.h", "IXJCTL_CARDTYPE", 0x71c1},
+ {"linux/ixjuser.h", "IXJCTL_SERIAL", 0x71c2},
+ {"linux/ixjuser.h", "IXJCTL_DSP_TYPE", 0x71c3},
+ {"linux/ixjuser.h", "IXJCTL_DSP_VERSION", 0x71c4},
+ {"linux/ixjuser.h", "IXJCTL_DSP_IDLE", 0x71c5},
+ {"linux/ixjuser.h", "IXJCTL_TESTRAM", 0x71c6},
+ {"linux/ixjuser.h", "IXJCTL_SET_FILTER", 0x71c7},
+ {"linux/ixjuser.h", "IXJCTL_GET_FILTER_HIST", 0x71c8},
+ {"linux/ixjuser.h", "IXJCTL_INIT_TONE", 0x71c9},
+ {"linux/ixjuser.h", "IXJCTL_TONE_CADENCE", 0x71ca},
+ {"linux/ixjuser.h", "IXJCTL_AEC_START", 0x71cb},
+ {"linux/ixjuser.h", "IXJCTL_AEC_STOP", 0x71cc},
+ {"linux/ixjuser.h", "IXJCTL_AEC_GET_LEVEL", 0x71cd},
+ {"linux/ixjuser.h", "IXJCTL_SET_LED", 0x71ce},
+ {"linux/ixjuser.h", "IXJCTL_MIXER", 0x71cf},
+ {"linux/ixjuser.h", "IXJCTL_DAA_COEFF_SET", 0x71d0},
+ {"linux/ixjuser.h", "IXJCTL_PORT", 0x71d1},
+ {"linux/ixjuser.h", "IXJCTL_DAA_AGAIN", 0x71d2},
+ {"linux/ixjuser.h", "IXJCTL_PSTN_LINETEST", 0x71d3},
+ {"linux/ixjuser.h", "IXJCTL_CID", 0x71d4},
+ {"linux/ixjuser.h", "IXJCTL_POTS_PSTN", 0x71d5},
+ {"linux/ixjuser.h", "IXJCTL_FILTER_CADENCE", 0x71d6},
+ {"linux/ixjuser.h", "IXJCTL_PLAY_CID", 0x71d7},
+ {"linux/ixjuser.h", "IXJCTL_VMWI", 0x71d8},
+ {"linux/ixjuser.h", "IXJCTL_CIDCW", 0x71d9},
+ {"linux/ixjuser.h", "IXJCTL_VERSION", 0x71da},
+ {"linux/telephony.h", "PHONE_REC_VOLUME_LINEAR", 0x71db},
+ {"linux/telephony.h", "PHONE_PLAY_VOLUME_LINEAR", 0x71dc},
+ {"linux/ixjuser.h", "IXJCTL_SET_FILTER_RAW", 0x71dd},
+ {"linux/ixjuser.h", "IXJCTL_HZ", 0x71e0},
+ {"linux/ixjuser.h", "IXJCTL_RATE", 0x71e1},
+ {"linux/ixjuser.h", "IXJCTL_FRAMES_READ", 0x71e2},
+ {"linux/ixjuser.h", "IXJCTL_FRAMES_WRITTEN", 0x71e3},
+ {"linux/ixjuser.h", "IXJCTL_READ_WAIT", 0x71e4},
+ {"linux/ixjuser.h", "IXJCTL_WRITE_WAIT", 0x71e5},
+ {"linux/ixjuser.h", "IXJCTL_DRYBUFFER_READ", 0x71e6},
+ {"linux/ixjuser.h", "IXJCTL_DRYBUFFER_CLEAR", 0x71e7},
+ {"linux/ixjuser.h", "IXJCTL_DTMF_PRESCALE", 0x71e8},
+ {"linux/ixjuser.h", "IXJCTL_SIGCTL", 0x71e9},
+ {"linux/ixjuser.h", "IXJCTL_SC_RXG", 0x71ea},
+ {"linux/ixjuser.h", "IXJCTL_SC_TXG", 0x71eb},
+ {"linux/ixjuser.h", "IXJCTL_INTERCOM_START", 0x71fd},
+ {"linux/ixjuser.h", "IXJCTL_INTERCOM_STOP", 0x71fe},
+ {"linux/videotext.h", "TUNIOCGETINFO", 0x7201},
+ {"linux/msdos_fs.h", "VFAT_IOCTL_READDIR_BOTH", 0x7201},
+ {"linux/videotext.h", "TUNIOCRESET", 0x7202},
+ {"linux/msdos_fs.h", "VFAT_IOCTL_READDIR_SHORT", 0x7202},
+ {"linux/videotext.h", "TUNIOCSETFREQ", 0x7203},
+ {"linux/videotext.h", "TUNIOCGETFREQ", 0x7204},
+ {"linux/videotext.h", "TUNIOCSETCHAN", 0x7205},
+ {"linux/videotext.h", "TUNIOCGETCHAN", 0x7206},
+ {"linux/cdk.h", "STL_BINTR", 0x7314},
+ {"linux/cdk.h", "STL_BSTART", 0x7315},
+ {"linux/cdk.h", "STL_BSTOP", 0x7316},
+ {"linux/cdk.h", "STL_BRESET", 0x7317},
+ {"linux/cdk.h", "STL_GETPFLAG", 0x7350},
+ {"linux/cdk.h", "STL_SETPFLAG", 0x7351},
+ {"linux/if_ppp.h", "PPPIOCGCHAN", 0x7437},
+ {"linux/if_ppp.h", "PPPIOCATTCHAN", 0x7438},
+ {"linux/if_ppp.h", "PPPIOCDISCONN", 0x7439},
+ {"linux/if_ppp.h", "PPPIOCCONNECT", 0x743a},
+ {"linux/if_ppp.h", "PPPIOCSMRRU", 0x743b},
+ {"linux/if_ppp.h", "PPPIOCDETACH", 0x743c},
+ {"linux/if_ppp.h", "PPPIOCATTACH", 0x743d},
+ {"linux/if_ppp.h", "PPPIOCNEWUNIT", 0x743e},
+ {"linux/if_ppp.h", "PPPIOCGIDLE", 0x743f},
+ {"linux/if_ppp.h", "PPPIOCSDEBUG", 0x7440},
+ {"linux/if_ppp.h", "PPPIOCGDEBUG", 0x7441},
+ {"linux/if_ppp.h", "PPPIOCSACTIVE", 0x7446},
+ {"linux/if_ppp.h", "PPPIOCSPASS", 0x7447},
+ {"linux/if_ppp.h", "PPPIOCSNPMODE", 0x744b},
+ {"linux/if_ppp.h", "PPPIOCGNPMODE", 0x744c},
+ {"linux/if_ppp.h", "PPPIOCSCOMPRESS", 0x744d},
+ {"linux/if_ppp.h", "PPPIOCXFERUNIT", 0x744e},
+ {"linux/if_ppp.h", "PPPIOCSXASYNCMAP", 0x744f},
+ {"linux/if_ppp.h", "PPPIOCGXASYNCMAP", 0x7450},
+ {"linux/if_ppp.h", "PPPIOCSMAXCID", 0x7451},
+ {"linux/if_ppp.h", "PPPIOCSMRU", 0x7452},
+ {"linux/if_ppp.h", "PPPIOCGMRU", 0x7453},
+ {"linux/if_ppp.h", "PPPIOCSRASYNCMAP", 0x7454},
+ {"linux/if_ppp.h", "PPPIOCGRASYNCMAP", 0x7455},
+ {"linux/if_ppp.h", "PPPIOCGUNIT", 0x7456},
+ {"linux/if_ppp.h", "PPPIOCSASYNCMAP", 0x7457},
+ {"linux/if_ppp.h", "PPPIOCGASYNCMAP", 0x7458},
+ {"linux/if_ppp.h", "PPPIOCSFLAGS", 0x7459},
+ {"linux/jffs.h", "JFFS_PRINT_HASH", 0x745a},
+ {"linux/if_ppp.h", "PPPIOCGFLAGS", 0x745a},
+ {"linux/jffs.h", "JFFS_PRINT_TREE", 0x745b},
+ {"linux/jffs.h", "JFFS_GET_STATUS", 0x745c},
+ {"linux/isdn_ppp.h", "PPPIOCGCALLINFO", 0x7480},
+ {"linux/isdn_ppp.h", "PPPIOCBUNDLE", 0x7481},
+ {"linux/isdn_ppp.h", "PPPIOCGMPFLAGS", 0x7482},
+ {"linux/isdn_ppp.h", "PPPIOCSMPFLAGS", 0x7483},
+ {"linux/isdn_ppp.h", "PPPIOCSMPMTU", 0x7484},
+ {"linux/isdn_ppp.h", "PPPIOCSMPMRU", 0x7485},
+ {"linux/isdn_ppp.h", "PPPIOCGCOMPRESSORS", 0x7486},
+ {"linux/isdn_ppp.h", "PPPIOCSCOMPRESSOR", 0x7487},
+ {"linux/isdn_ppp.h", "PPPIOCGIFNAME", 0x7488},
+ {"linux/toshiba.h", "TOSH_SMM", 0x7490},
+ {"linux/smb_fs.h", "SMB_IOC_GETMOUNTUID", 0x7501},
+ {"linux/smb_fs.h", "SMB_IOC_NEWCONN", 0x7502},
+ {"linux/smb_fs.h", "SMB_IOC_GETMOUNTUID32", 0x7503},
+ {"linux/sonypi.h", "SONYPI_IOCGBRT", 0x7600},
+ {"linux/ext2_fs.h", "EXT2_IOC_GETVERSION", 0x7601},
+ {"linux/videodev.h", "VIDIOCGCAP", 0x7601},
+ {"linux/ext2_fs.h", "EXT2_IOC_SETVERSION", 0x7602},
+ {"linux/sonypi.h", "SONYPI_IOCGBAT1CAP", 0x7602},
+ {"linux/videodev.h", "VIDIOCGCHAN", 0x7602},
+ {"linux/sonypi.h", "SONYPI_IOCGBAT1REM", 0x7603},
+ {"linux/videodev.h", "VIDIOCSCHAN", 0x7603},
+ {"linux/sonypi.h", "SONYPI_IOCGBAT2CAP", 0x7604},
+ {"linux/videodev.h", "VIDIOCGTUNER", 0x7604},
+ {"linux/sonypi.h", "SONYPI_IOCGBAT2REM", 0x7605},
+ {"linux/videodev.h", "VIDIOCSTUNER", 0x7605},
+ {"linux/videodev.h", "VIDIOCGPICT", 0x7606},
+ {"linux/sonypi.h", "SONYPI_IOCGBATFLAGS", 0x7607},
+ {"linux/videodev.h", "VIDIOCSPICT", 0x7607},
+ {"linux/sonypi.h", "SONYPI_IOCGBLUE", 0x7608},
+ {"linux/videodev.h", "VIDIOCCAPTURE", 0x7608},
+ {"linux/sonypi.h", "SONYPI_IOCSBLUE", 0x7609},
+ {"linux/videodev.h", "VIDIOCGWIN", 0x7609},
+ {"linux/videodev.h", "VIDIOCSWIN", 0x760a},
+ {"linux/videodev.h", "VIDIOCGFBUF", 0x760b},
+ {"linux/videodev.h", "VIDIOCSFBUF", 0x760c},
+ {"linux/videodev.h", "VIDIOCKEY", 0x760d},
+ {"linux/videodev.h", "VIDIOCGFREQ", 0x760e},
+ {"linux/videodev.h", "VIDIOCSFREQ", 0x760f},
+ {"linux/videodev.h", "VIDIOCGAUDIO", 0x7610},
+ {"linux/videodev.h", "VIDIOCSAUDIO", 0x7611},
+ {"linux/videodev.h", "VIDIOCSYNC", 0x7612},
+ {"linux/videodev.h", "VIDIOCMCAPTURE", 0x7613},
+ {"linux/videodev.h", "VIDIOCGMBUF", 0x7614},
+ {"linux/videodev.h", "VIDIOCGUNIT", 0x7615},
+ {"linux/videodev.h", "VIDIOCGCAPTURE", 0x7616},
+ {"linux/videodev.h", "VIDIOCSCAPTURE", 0x7617},
+ {"linux/videodev.h", "VIDIOCSPLAYMODE", 0x7618},
+ {"linux/videodev.h", "VIDIOCSWRITEMODE", 0x7619},
+ {"linux/videodev.h", "VIDIOCGPLAYINFO", 0x761a},
+ {"linux/videodev.h", "VIDIOCSMICROCODE", 0x761b},
+ {"linux/videodev.h", "VIDIOCGVBIFMT", 0x761c},
+ {"linux/videodev.h", "VIDIOCSVBIFMT", 0x761d},
+ {"linux/meye.h", "MEYEIOC_G_PARAMS", 0x76c0},
+ {"linux/meye.h", "MEYEIOC_S_PARAMS", 0x76c1},
+ {"linux/meye.h", "MEYEIOC_QBUF_CAPT", 0x76c2},
+ {"linux/meye.h", "MEYEIOC_SYNC", 0x76c3},
+ {"linux/meye.h", "MEYEIOC_STILLCAPT", 0x76c4},
+ {"linux/meye.h", "MEYEIOC_STILLJCAPT", 0x76c5},
+ {"asm/sockios.h", "FIOSETOWN", 0x8901},
+ {"asm/sockios.h", "SIOCSPGRP", 0x8902},
+ {"asm/sockios.h", "FIOGETOWN", 0x8903},
+ {"asm/sockios.h", "SIOCGPGRP", 0x8904},
+ {"asm/sockios.h", "SIOCATMARK", 0x8905},
+ {"asm/sockios.h", "SIOCGSTAMP", 0x8906},
+ {"linux/sockios.h", "SIOCADDRT", 0x890b},
+ {"linux/sockios.h", "SIOCDELRT", 0x890c},
+ {"linux/sockios.h", "SIOCRTMSG", 0x890d},
+ {"linux/sockios.h", "SIOCGIFNAME", 0x8910},
+ {"linux/sockios.h", "SIOCSIFLINK", 0x8911},
+ {"linux/sockios.h", "SIOCGIFCONF", 0x8912},
+ {"linux/sockios.h", "SIOCGIFFLAGS", 0x8913},
+ {"linux/sockios.h", "SIOCSIFFLAGS", 0x8914},
+ {"linux/sockios.h", "SIOCGIFADDR", 0x8915},
+ {"linux/sockios.h", "SIOCSIFADDR", 0x8916},
+ {"linux/sockios.h", "SIOCGIFDSTADDR", 0x8917},
+ {"linux/sockios.h", "SIOCSIFDSTADDR", 0x8918},
+ {"linux/sockios.h", "SIOCGIFBRDADDR", 0x8919},
+ {"linux/sockios.h", "SIOCSIFBRDADDR", 0x891a},
+ {"linux/sockios.h", "SIOCGIFNETMASK", 0x891b},
+ {"linux/sockios.h", "SIOCSIFNETMASK", 0x891c},
+ {"linux/sockios.h", "SIOCGIFMETRIC", 0x891d},
+ {"linux/sockios.h", "SIOCSIFMETRIC", 0x891e},
+ {"linux/sockios.h", "SIOCGIFMEM", 0x891f},
+ {"linux/sockios.h", "SIOCSIFMEM", 0x8920},
+ {"linux/sockios.h", "SIOCGIFMTU", 0x8921},
+ {"linux/sockios.h", "SIOCSIFMTU", 0x8922},
+ {"linux/sockios.h", "SIOCSIFNAME", 0x8923},
+ {"linux/sockios.h", "SIOCSIFHWADDR", 0x8924},
+ {"linux/sockios.h", "SIOCGIFENCAP", 0x8925},
+ {"linux/sockios.h", "SIOCSIFENCAP", 0x8926},
+ {"linux/sockios.h", "SIOCGIFHWADDR", 0x8927},
+ {"linux/sockios.h", "SIOCGIFSLAVE", 0x8929},
+ {"linux/sockios.h", "SIOCSIFSLAVE", 0x8930},
+ {"linux/sockios.h", "SIOCADDMULTI", 0x8931},
+ {"linux/sockios.h", "SIOCDELMULTI", 0x8932},
+ {"linux/sockios.h", "SIOCGIFINDEX", 0x8933},
+ {"linux/sockios.h", "SIOCSIFPFLAGS", 0x8934},
+ {"linux/sockios.h", "SIOCGIFPFLAGS", 0x8935},
+ {"linux/sockios.h", "SIOCDIFADDR", 0x8936},
+ {"linux/sockios.h", "SIOCSIFHWBROADCAST", 0x8937},
+ {"linux/sockios.h", "SIOCGIFCOUNT", 0x8938},
+ {"linux/sockios.h", "SIOCGIFBR", 0x8940},
+ {"linux/sockios.h", "SIOCSIFBR", 0x8941},
+ {"linux/sockios.h", "SIOCGIFTXQLEN", 0x8942},
+ {"linux/sockios.h", "SIOCSIFTXQLEN", 0x8943},
+ {"linux/sockios.h", "SIOCGIFDIVERT", 0x8944},
+ {"linux/sockios.h", "SIOCSIFDIVERT", 0x8945},
+ {"linux/sockios.h", "SIOCETHTOOL", 0x8946},
+ {"linux/sockios.h", "SIOCGMIIPHY", 0x8947},
+ {"linux/sockios.h", "SIOCGMIIREG", 0x8948},
+ {"linux/sockios.h", "SIOCSMIIREG", 0x8949},
+ {"linux/sockios.h", "SIOCWANDEV", 0x894a},
+ {"linux/sockios.h", "SIOCDARP", 0x8953},
+ {"linux/sockios.h", "SIOCGARP", 0x8954},
+ {"linux/sockios.h", "SIOCSARP", 0x8955},
+ {"linux/sockios.h", "SIOCDRARP", 0x8960},
+ {"linux/sockios.h", "SIOCGRARP", 0x8961},
+ {"linux/sockios.h", "SIOCSRARP", 0x8962},
+ {"linux/sockios.h", "SIOCGIFMAP", 0x8970},
+ {"linux/sockios.h", "SIOCSIFMAP", 0x8971},
+ {"linux/sockios.h", "SIOCADDDLCI", 0x8980},
+ {"linux/sockios.h", "SIOCDELDLCI", 0x8981},
+ {"linux/sockios.h", "SIOCGIFVLAN", 0x8982},
+ {"linux/sockios.h", "SIOCSIFVLAN", 0x8983},
+ {"linux/sockios.h", "SIOCBONDENSLAVE", 0x8990},
+ {"linux/sockios.h", "SIOCBONDRELEASE", 0x8991},
+ {"linux/sockios.h", "SIOCBONDSETHWADDR", 0x8992},
+ {"linux/sockios.h", "SIOCBONDSLAVEINFOQUERY", 0x8993},
+ {"linux/sockios.h", "SIOCBONDINFOQUERY", 0x8994},
+ {"linux/sockios.h", "SIOCBONDCHANGEACTIVE", 0x8995},
+ {"linux/sockios.h", "SIOCPROTOPRIVATE", 0x89e0},
+ {"linux/dn.h", "SIOCSNETADDR", 0x89e0},
+ {"linux/dn.h", "SIOCGNETADDR", 0x89e1},
+ {"linux/sockios.h", "SIOCDEVPRIVATE", 0x89f0},
+ {"linux/wireless.h", "SIOCSIWCOMMIT", 0x8b00},
+ {"linux/wireless.h", "SIOCGIWNAME", 0x8b01},
+ {"linux/wireless.h", "SIOCSIWNWID", 0x8b02},
+ {"linux/wireless.h", "SIOCGIWNWID", 0x8b03},
+ {"linux/wireless.h", "SIOCSIWFREQ", 0x8b04},
+ {"linux/wireless.h", "SIOCGIWFREQ", 0x8b05},
+ {"linux/wireless.h", "SIOCSIWMODE", 0x8b06},
+ {"linux/wireless.h", "SIOCGIWMODE", 0x8b07},
+ {"linux/wireless.h", "SIOCSIWSENS", 0x8b08},
+ {"linux/wireless.h", "SIOCGIWSENS", 0x8b09},
+ {"linux/wireless.h", "SIOCSIWRANGE", 0x8b0a},
+ {"linux/wireless.h", "SIOCGIWRANGE", 0x8b0b},
+ {"linux/wireless.h", "SIOCSIWPRIV", 0x8b0c},
+ {"linux/wireless.h", "SIOCGIWPRIV", 0x8b0d},
+ {"linux/wireless.h", "SIOCSIWSTATS", 0x8b0e},
+ {"linux/wireless.h", "SIOCGIWSTATS", 0x8b0f},
+ {"linux/wireless.h", "SIOCSIWSPY", 0x8b10},
+ {"linux/wireless.h", "SIOCGIWSPY", 0x8b11},
+ {"linux/wireless.h", "SIOCSIWTHRSPY", 0x8b12},
+ {"linux/wireless.h", "SIOCGIWTHRSPY", 0x8b13},
+ {"linux/wireless.h", "SIOCSIWAP", 0x8b14},
+ {"linux/wireless.h", "SIOCGIWAP", 0x8b15},
+ {"linux/wireless.h", "SIOCGIWAPLIST", 0x8b17},
+ {"linux/wireless.h", "SIOCSIWSCAN", 0x8b18},
+ {"linux/wireless.h", "SIOCGIWSCAN", 0x8b19},
+ {"linux/wireless.h", "SIOCSIWESSID", 0x8b1a},
+ {"linux/wireless.h", "SIOCGIWESSID", 0x8b1b},
+ {"linux/wireless.h", "SIOCSIWNICKN", 0x8b1c},
+ {"linux/wireless.h", "SIOCGIWNICKN", 0x8b1d},
+ {"linux/wireless.h", "SIOCSIWRATE", 0x8b20},
+ {"linux/wireless.h", "SIOCGIWRATE", 0x8b21},
+ {"linux/wireless.h", "SIOCSIWRTS", 0x8b22},
+ {"linux/wireless.h", "SIOCGIWRTS", 0x8b23},
+ {"linux/wireless.h", "SIOCSIWFRAG", 0x8b24},
+ {"linux/wireless.h", "SIOCGIWFRAG", 0x8b25},
+ {"linux/wireless.h", "SIOCSIWTXPOW", 0x8b26},
+ {"linux/wireless.h", "SIOCGIWTXPOW", 0x8b27},
+ {"linux/wireless.h", "SIOCSIWRETRY", 0x8b28},
+ {"linux/wireless.h", "SIOCGIWRETRY", 0x8b29},
+ {"linux/wireless.h", "SIOCSIWENCODE", 0x8b2a},
+ {"linux/wireless.h", "SIOCGIWENCODE", 0x8b2b},
+ {"linux/wireless.h", "SIOCSIWPOWER", 0x8b2c},
+ {"linux/wireless.h", "SIOCGIWPOWER", 0x8b2d},
+ {"linux/wireless.h", "SIOCIWFIRSTPRIV", 0x8be0},
+ {"linux/wireless.h", "SIOCIWLASTPRIV", 0x8bff},
+ {"linux/auto_fs.h", "AUTOFS_IOC_READY", 0x9360},
+ {"linux/auto_fs.h", "AUTOFS_IOC_FAIL", 0x9361},
+ {"linux/auto_fs.h", "AUTOFS_IOC_CATATONIC", 0x9362},
+ {"linux/auto_fs.h", "AUTOFS_IOC_PROTOVER", 0x9363},
+ {"linux/auto_fs.h", "AUTOFS_IOC_SETTIMEOUT", 0x9364},
+ {"linux/auto_fs.h", "AUTOFS_IOC_EXPIRE", 0x9365},
+ {"linux/auto_fs4.h", "AUTOFS_IOC_EXPIRE_MULTI", 0x9366},
+ {"linux/nbd.h", "NBD_SET_SOCK", 0xab00},
+ {"linux/nbd.h", "NBD_SET_BLKSIZE", 0xab01},
+ {"linux/nbd.h", "NBD_SET_SIZE", 0xab02},
+ {"linux/nbd.h", "NBD_DO_IT", 0xab03},
+ {"linux/nbd.h", "NBD_CLEAR_SOCK", 0xab04},
+ {"linux/nbd.h", "NBD_CLEAR_QUE", 0xab05},
+ {"linux/nbd.h", "NBD_PRINT_DEBUG", 0xab06},
+ {"linux/nbd.h", "NBD_SET_SIZE_BLOCKS", 0xab07},
+ {"linux/nbd.h", "NBD_DISCONNECT", 0xab08},
+ {"linux/raw.h", "RAW_SETBIND", 0xac00},
+ {"linux/raw.h", "RAW_GETBIND", 0xac01},
+ {"linux/if_pppox.h", "PPPOEIOCSFWD", 0xb100},
+ {"linux/if_pppox.h", "PPPOEIOCDFWD", 0xb101},
+ {"linux/reiserfs_fs.h", "REISERFS_IOC_UNPACK", 0xcd01},
+ {"linux/dm-ioctl.h", "DM_VERSION", 0xfd00},
+ {"linux/dm-ioctl.h", "DM_REMOVE_ALL", 0xfd01},
+ {"linux/dm-ioctl.h", "DM_LIST_DEVICES", 0xfd02},
+ {"linux/dm-ioctl.h", "DM_DEV_CREATE", 0xfd03},
+ {"linux/dm-ioctl.h", "DM_DEV_REMOVE", 0xfd04},
+ {"linux/dm-ioctl.h", "DM_DEV_RENAME", 0xfd05},
+ {"linux/dm-ioctl.h", "DM_DEV_SUSPEND", 0xfd06},
+ {"linux/dm-ioctl.h", "DM_DEV_STATUS", 0xfd07},
+ {"linux/dm-ioctl.h", "DM_DEV_WAIT", 0xfd08},
+ {"linux/dm-ioctl.h", "DM_TABLE_LOAD", 0xfd09},
+ {"linux/dm-ioctl.h", "DM_TABLE_CLEAR", 0xfd0a},
+ {"linux/dm-ioctl.h", "DM_TABLE_DEPS", 0xfd0b},
+ {"linux/dm-ioctl.h", "DM_TABLE_STATUS", 0xfd0c},
+ {"linux/dm-ioctl.h", "DM_LIST_VERSIONS", 0xfd0d},
+ {"linux/lvm.h", "VG_CREATE_OLD", 0xfe00},
+ {"linux/lvm.h", "VG_REMOVE", 0xfe01},
+ {"linux/lvm.h", "VG_EXTEND", 0xfe03},
+ {"linux/lvm.h", "VG_REDUCE", 0xfe04},
+ {"linux/lvm.h", "VG_STATUS", 0xfe05},
+ {"linux/lvm.h", "VG_STATUS_GET_COUNT", 0xfe06},
+ {"linux/lvm.h", "VG_STATUS_GET_NAMELIST", 0xfe07},
+ {"linux/lvm.h", "VG_SET_EXTENDABLE", 0xfe08},
+ {"linux/lvm.h", "VG_RENAME", 0xfe09},
+ {"linux/lvm.h", "VG_CREATE", 0xfe0a},
+ {"linux/lvm.h", "LV_CREATE", 0xfe20},
+ {"linux/lvm.h", "LV_REMOVE", 0xfe21},
+ {"linux/lvm.h", "LV_ACTIVATE", 0xfe22},
+ {"linux/lvm.h", "LV_DEACTIVATE", 0xfe23},
+ {"linux/lvm.h", "LV_EXTEND", 0xfe24},
+ {"linux/lvm.h", "LV_REDUCE", 0xfe25},
+ {"linux/lvm.h", "LV_STATUS_BYNAME", 0xfe26},
+ {"linux/lvm.h", "LV_STATUS_BYINDEX", 0xfe27},
+ {"linux/lvm.h", "LV_SET_ACCESS", 0xfe28},
+ {"linux/lvm.h", "LV_SET_ALLOCATION", 0xfe29},
+ {"linux/lvm.h", "LV_SET_STATUS", 0xfe2a},
+ {"linux/lvm.h", "LE_REMAP", 0xfe2b},
+ {"linux/lvm.h", "LV_SNAPSHOT_USE_RATE", 0xfe2c},
+ {"linux/lvm.h", "LV_STATUS_BYDEV", 0xfe2e},
+ {"linux/lvm.h", "LV_RENAME", 0xfe2f},
+ {"linux/lvm.h", "LV_BMAP", 0xfe30},
+ {"linux/lvm.h", "PV_STATUS", 0xfe40},
+ {"linux/lvm.h", "PV_CHANGE", 0xfe41},
+ {"linux/lvm.h", "PV_FLUSH", 0xfe42},
+ {"linux/lvm.h", "PE_LOCK_UNLOCK", 0xfe50},
+ {"linux/lvm.h", "LVM_GET_IOP_VERSION", 0xfe98},
+ {"linux/lvm.h", "LVM_RESET", 0xfe99},
+ {"linux/lvm.h", "LVM_LOCK_LVM", 0xfe9a},
diff --git a/linux/ioctlent.sh b/linux/ioctlent.sh
new file mode 100644
index 0000000..8f3d74b
--- /dev/null
+++ b/linux/ioctlent.sh
@@ -0,0 +1,89 @@
+#! /bin/sh
+#
+# Copyright (c) 2001 Wichert Akkerman <wichert@cistron.nl>
+# 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.
+#
+# $Id: ioctlent.sh,v 1.12 2004/10/06 22:31:38 roland Exp $
+#
+
+# Validate arg count.
+case $# in
+1)
+ dir="$1"
+ asm=asm
+ ;;
+2)
+ dir="$1"
+ asm="$2"
+ ;;
+*)
+ echo "usage: $0 include-directory [asm-subdirectory]" >&2
+ exit 1
+ ;;
+esac
+
+lookup_ioctls()
+{
+ type="$1"
+ shift
+
+ # 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 ) |
+ sed -ne "s,$asm/,asm/,g"'
+s/^\(.*\):[[:space:]]*#[[:space:]]*define[[:space:]]*\([A-Z0-9_]*\)[[:space:]]*\(0x'"$type"'..\).*/ { "\1", "\2", \3 },/p' \
+ >> ioctls.h
+}
+
+: > ioctls.h
+lookup_ioctls 22 scsi/sg.h
+lookup_ioctls 46 linux/fb.h
+lookup_ioctls 4B linux/kd.h
+lookup_ioctls 53 linux/cdrom.h scsi/scsi.h scsi/scsi_ioctl.h
+lookup_ioctls 54 $asm/ioctls.h
+lookup_ioctls 56 linux/vt.h
+lookup_ioctls '7[12]' linux/videotext.h
+lookup_ioctls 89 $asm/sockios.h linux/sockios.h
+lookup_ioctls 8B linux/wireless.h
+
+files="linux/* $asm/* scsi/* sound/*"
+
+# Build the list of all ioctls
+regexp='^[[:space:]]*#[[:space:]]*define[[:space:]]\+[A-Z][A-Z0-9_]*[[:space:]]\+_S\?\(IO\|IOW\|IOR\|IOWR\)\>'
+(cd $dir ; grep $regexp $files 2>/dev/null ) | \
+ sed -ne "s,$asm/,asm/,g"'
+s/^\(.*\):[[:space:]]*#[[:space:]]*define[[:space:]]*\([A-Z0-9_]*\)[[:space:]]*_S\?I.*(\([^[,]*\)[[:space:]]*,[[:space:]]*\([^,)]*\).*/ { "\1", "\2", _IOC(_IOC_NONE,\3,\4,0) },/p' \
+ >> ioctls.h
+
+# Some use a special base to offset their ioctls on. Extract that as well.
+: > ioctldefs.h
+
+bases=$(sed -ne 's/.*_IOC_NONE.*,[[:space:]]*\([A-Z][A-Z0-9_]\+\)[[:space:]+,].*/\1/p' ioctls.h | uniq | sort)
+for base in $bases ; do
+ echo "Looking for $base"
+ regexp="^[[:space:]]*#[[:space:]]*define[[:space:]]\+$base"
+ (cd $dir ; grep -h $regexp 2>/dev/null $files ) | \
+ grep -v '\<_IO' >> ioctldefs.h
+done
diff --git a/linux/ioctlsort.c b/linux/ioctlsort.c
new file mode 100644
index 0000000..f544d84
--- /dev/null
+++ b/linux/ioctlsort.c
@@ -0,0 +1,52 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
+#include <stdint.h>
+
+#include <asm/ioctl.h>
+#include <linux/types.h>
+
+#include "ioctldefs.h"
+#include <linux/atmioc.h>
+
+struct ioctlent {
+ const char* header;
+ const char* name;
+ unsigned long code;
+};
+
+struct ioctlent ioctls[] = {
+#include "ioctls.h"
+};
+
+int nioctls = sizeof(ioctls) / sizeof(ioctls[0]);
+
+
+int compare(const void* a, const void* b) {
+ unsigned long code1 = ((struct ioctlent *) a)->code;
+ unsigned long code2 = ((struct ioctlent *) b)->code;
+ const char *name1 = ((struct ioctlent *) a)->name;
+ const char *name2 = ((struct ioctlent *) b)->name;
+ return (code1 > code2) ? 1 : (code1 < code2) ? -1 : strcmp (name1, name2);
+}
+
+
+int main(int argc, char** argv) {
+ int i;
+
+#ifdef POWERPC /* unspeakable kludge */
+ for (i = 0; i < nioctls; i++)
+ ioctls[i].code &= ~_IOC_DIRMASK;
+#endif
+
+ qsort(ioctls, nioctls, sizeof(ioctls[0]), compare);
+ puts ("\t/* Generated by ioctlsort */");
+ for (i = 0; i < nioctls; i++)
+ if (i == 0 || ioctls[i].code != ioctls[i-1].code ||
+ strcmp (ioctls[i].name, ioctls[i-1].name))
+ printf("\t{\"%s\",\t\"%s\",\t%#lx},\n",
+ ioctls[i].header, ioctls[i].name, ioctls[i].code);
+
+ return 0;
+}
diff --git a/linux/signalent.h b/linux/signalent.h
new file mode 100644
index 0000000..112f746
--- /dev/null
+++ b/linux/signalent.h
@@ -0,0 +1,33 @@
+ "SIG_0", /* 0 */
+ "SIGHUP", /* 1 */
+ "SIGINT", /* 2 */
+ "SIGQUIT", /* 3 */
+ "SIGILL", /* 4 */
+ "SIGTRAP", /* 5 */
+ "SIGABRT", /* 6 */
+ "SIGBUS", /* 7 */
+ "SIGFPE", /* 8 */
+ "SIGKILL", /* 9 */
+ "SIGUSR1", /* 10 */
+ "SIGSEGV", /* 11 */
+ "SIGUSR2", /* 12 */
+ "SIGPIPE", /* 13 */
+ "SIGALRM", /* 14 */
+ "SIGTERM", /* 15 */
+ "SIGSTKFLT", /* 16 */
+ "SIGCHLD", /* 17 */
+ "SIGCONT", /* 18 */
+ "SIGSTOP", /* 19 */
+ "SIGTSTP", /* 20 */
+ "SIGTTIN", /* 21 */
+ "SIGTTOU", /* 22 */
+ "SIGURG", /* 23 */
+ "SIGXCPU", /* 24 */
+ "SIGXFSZ", /* 25 */
+ "SIGVTALRM", /* 26 */
+ "SIGPROF", /* 27 */
+ "SIGWINCH", /* 28 */
+ "SIGIO", /* 29 */
+ "SIGPWR", /* 30 */
+ "SIGSYS", /* 31 */
+ "SIGRTMIN", /* 32 */
diff --git a/linux/syscall.h b/linux/syscall.h
new file mode 100644
index 0000000..b0a5993
--- /dev/null
+++ b/linux/syscall.h
@@ -0,0 +1,296 @@
+/*
+ * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
+ * Copyright (c) 1993, 1994, 1995 Rick Sladkey <jrs@world.std.com>
+ * 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.
+ *
+ * $Id: syscall.h,v 1.45 2005/06/07 23:21:28 roland Exp $
+ */
+
+#include "dummy.h"
+
+/* primary syscalls */
+
+int sys_setup(), sys_exit(), sys_fork(), sys_read(), sys_write();
+int sys_open(), sys_close(), sys_waitpid(), sys_creat(), sys_link();
+int sys_unlink(), sys_execve(), sys_chdir(), sys_time(), sys_mknod();
+int sys_chmod(), sys_chown(), sys_break(), sys_oldstat();
+int sys_lseek(), sys_getpid(), sys_mount(), sys_umount(), sys_umount2();
+int sys_setuid(), sys_getuid(), sys_stime(), sys_ptrace();
+int sys_alarm(), sys_oldfstat(), sys_pause(), sys_utime();
+int sys_stty(), sys_gtty(), sys_access(), sys_nice(), sys_ftime();
+int sys_sync(), sys_kill(), sys_rename(), sys_mkdir(), sys_rmdir();
+int sys_dup(), sys_pipe(), sys_times(), sys_prof(), sys_brk();
+int sys_setgid(), sys_getgid(), sys_signal(), sys_geteuid();
+int sys_getegid(), sys_acct(), sys_phys(), sys_lock(), sys_ioctl();
+int sys_fcntl(), sys_mpx(), sys_setpgid(), sys_ulimit();
+int sys_olduname(), sys_umask(), sys_chroot(), sys_ustat();
+int sys_dup2(), sys_getppid(), sys_getpgrp(), sys_setsid();
+int sys_sigaction(), sys_siggetmask(), sys_sigsetmask();
+int sys_setreuid(), sys_setregid(), sys_sigsuspend();
+int sys_sigpending(), sys_sethostname(), sys_setrlimit();
+int sys_getrlimit(), sys_getrusage(), sys_gettimeofday();
+int sys_settimeofday(), sys_getgroups(), sys_setgroups();
+int sys_setgroups32(), sys_getgroups32();
+int sys_oldselect(), sys_symlink(), sys_oldlstat(), sys_readlink();
+int sys_uselib(), sys_swapon(), sys_reboot(), sys_readdir();
+int sys_mmap(), sys_munmap(), sys_truncate(), sys_ftruncate();
+int sys_fchmod(), sys_fchown(), sys_getpriority();
+int sys_setpriority(), sys_profil(), sys_statfs(), sys_fstatfs();
+int sys_ioperm(), sys_socketcall(), sys_syslog(), sys_setitimer();
+int sys_getitimer(), sys_stat(), sys_lstat(), sys_fstat();
+int sys_uname(), sys_iopl(), sys_vhangup(), sys_idle(), sys_vm86();
+int sys_wait4(), sys_swapoff(), sys_ipc(), sys_sigreturn();
+int sys_fsync(), sys_clone(), sys_setdomainname(), sys_sysinfo();
+int sys_modify_ldt(), sys_adjtimex(), sys_mprotect();
+int sys_sigprocmask(), sys_create_module(), sys_init_module();
+int sys_delete_module(), sys_get_kernel_syms(), sys_quotactl();
+int sys_getpgid(), sys_fchdir(), sys_bdflush();
+int sys_sysfs(), sys_personality(), sys_afs_syscall();
+int sys_setfsuid(), sys_setfsgid(), sys_llseek();
+int sys_getdents(), sys_flock(), sys_msync();
+int sys_readv(), sys_writev(), sys_select();
+int sys_getsid(), sys_fdatasync(), sys_sysctl();
+int sys_mlock(), sys_munlock(), sys_mlockall(), sys_munlockall(), sys_madvise();
+int sys_sched_setparam(), sys_sched_getparam();
+int sys_sched_setscheduler(), sys_sched_getscheduler(), sys_sched_yield();
+int sys_sched_get_priority_max(), sys_sched_get_priority_min();
+int sys_sched_rr_get_interval(), sys_nanosleep(), sys_mremap();
+int sys_sendmsg(), sys_recvmsg(), sys_setresuid(), sys_setresgid();
+int sys_getresuid(), sys_getresgid(), sys_pread(), sys_pwrite(), sys_getcwd();
+int sys_sigaltstack(), sys_rt_sigprocmask(), sys_rt_sigaction();
+int sys_rt_sigpending(), sys_rt_sigsuspend(), sys_rt_sigqueueinfo();
+int sys_rt_sigtimedwait(), sys_prctl(), sys_poll(), sys_vfork();
+int sys_sendfile(), sys_old_mmap(), sys_stat64(), sys_lstat64(), sys_fstat64();
+int sys_truncate64(), sys_ftruncate64(), sys_pivotroot();
+int sys_getdents64();
+int sys_getpmsg(), sys_putpmsg(), sys_readahead(), sys_sendfile64();
+int sys_setxattr(), sys_fsetxattr(), sys_getxattr(), sys_fgetxattr();
+int sys_listxattr(), sys_flistxattr(), sys_removexattr(), sys_fremovexattr();
+int sys_sched_setaffinity(), sys_sched_getaffinity(), sys_futex();
+int sys_set_thread_area(), sys_get_thread_area(), sys_remap_file_pages();
+int sys_timer_create(), sys_timer_delete(), sys_timer_getoverrun();
+int sys_timer_gettime(), sys_timer_settime(), sys_clock_settime();
+int sys_clock_gettime(), sys_clock_getres(), sys_clock_nanosleep();
+int sys_semtimedop(), sys_statfs64(), sys_fstatfs64(), sys_tgkill();
+int sys_mq_open(), sys_mq_timedsend(), sys_mq_timedreceive();
+int sys_mq_notify(), sys_mq_getsetattr();
+int sys_epoll_create(), sys_epoll_ctl(), sys_epoll_wait();
+int sys_waitid(), sys_fadvise64(), sys_fadvise64_64();
+int sys_mbind(), sys_get_mempolicy(), sys_set_mempolicy();
+int sys_arch_prctl();
+int sys_io_setup(), sys_io_submit(), sys_io_cancel(), sys_io_getevents(), sys_io_destroy();
+
+/* sys_socketcall subcalls */
+
+int sys_socket(), sys_bind(), sys_connect(), sys_listen();
+int sys_accept(), sys_getsockname(), sys_getpeername(), sys_socketpair();
+int sys_send(), sys_recv(), sys_sendto(), sys_recvfrom();
+int sys_shutdown(), sys_setsockopt(), sys_getsockopt();
+
+/* new ones */
+int sys_query_module();
+int sys_poll();
+int sys_mincore();
+
+/* architecture-specific calls */
+#ifdef ALPHA
+int sys_osf_select();
+int sys_osf_gettimeofday();
+int sys_osf_settimeofday();
+int sys_osf_getitimer();
+int sys_osf_setitimer();
+int sys_osf_getrusage();
+int sys_osf_wait4();
+int sys_osf_utimes();
+#endif
+
+
+#ifndef SYS_waitid
+# ifdef I386
+# define SYS_waitid 284
+# elif defined ALPHA
+# define SYS_waitid 438
+# elif defined ARM
+# define SYS_waitid (NR_SYSCALL_BASE + 280)
+# elif defined IA64
+# define SYS_waitid 1270
+# elif defined M68K
+# define SYS_waitid 277
+# elif defined POWERPC
+# define SYS_waitid 272
+# elif defined S390 || defined S390X
+# define SYS_waitid 281
+# elif defined SH64
+# define SYS_waitid 312
+# elif defined SH64
+# define SYS_waitid 312
+# elif defined SH
+# define SYS_waitid 284
+# elif defined SPARC || defined SPARC64
+# define SYS_waitid 279
+# elif defined X86_64
+# define SYS_waitid 247
+# endif
+#endif
+
+#if !defined(ALPHA) && !defined(MIPS) && !defined(HPPA)
+# ifdef IA64
+/*
+ * IA64 syscall numbers (the only ones available from standard header
+ * files) are disjoint from IA32 syscall numbers. We need to define
+ * the IA32 socket call number here.
+ */
+# define SYS_socketcall 102
+
+# undef SYS_socket
+# undef SYS_bind
+# undef SYS_connect
+# undef SYS_listen
+# undef SYS_accept
+# undef SYS_getsockname
+# undef SYS_getpeername
+# undef SYS_socketpair
+# undef SYS_send
+# undef SYS_recv
+# undef SYS_sendto
+# undef SYS_recvfrom
+# undef SYS_shutdown
+# undef SYS_setsockopt
+# undef SYS_getsockopt
+# undef SYS_sendmsg
+# undef SYS_recvmsg
+# endif /* IA64 */
+# define SYS_socket_subcall 300
+#define SYS_sub_socket (SYS_socket_subcall + 1)
+#define SYS_sub_bind (SYS_socket_subcall + 2)
+#define SYS_sub_connect (SYS_socket_subcall + 3)
+#define SYS_sub_listen (SYS_socket_subcall + 4)
+#define SYS_sub_accept (SYS_socket_subcall + 5)
+#define SYS_sub_getsockname (SYS_socket_subcall + 6)
+#define SYS_sub_getpeername (SYS_socket_subcall + 7)
+#define SYS_sub_socketpair (SYS_socket_subcall + 8)
+#define SYS_sub_send (SYS_socket_subcall + 9)
+#define SYS_sub_recv (SYS_socket_subcall + 10)
+#define SYS_sub_sendto (SYS_socket_subcall + 11)
+#define SYS_sub_recvfrom (SYS_socket_subcall + 12)
+#define SYS_sub_shutdown (SYS_socket_subcall + 13)
+#define SYS_sub_setsockopt (SYS_socket_subcall + 14)
+#define SYS_sub_getsockopt (SYS_socket_subcall + 15)
+#define SYS_sub_sendmsg (SYS_socket_subcall + 16)
+#define SYS_sub_recvmsg (SYS_socket_subcall + 17)
+
+#define SYS_socket_nsubcalls 18
+#endif /* !(ALPHA || MIPS || HPPA) */
+
+/* sys_ipc subcalls */
+
+int sys_semget(), sys_semctl(), sys_semop();
+int sys_msgsnd(), sys_msgrcv(), sys_msgget(), sys_msgctl();
+int sys_shmat(), sys_shmdt(), sys_shmget(), sys_shmctl();
+
+#if !defined(ALPHA) && !defined(MIPS) && !defined(SPARC) && !defined(HPPA)
+# ifdef IA64
+ /*
+ * IA64 syscall numbers (the only ones available from standard
+ * header files) are disjoint from IA32 syscall numbers. We need
+ * to define the IA32 socket call number here. Fortunately, this
+ * symbol, `SYS_ipc', is not used by any of the IA64 code so
+ * re-defining this symbol will not cause a problem.
+ */
+# undef SYS_ipc
+# define SYS_ipc 117
+# undef SYS_semop
+# undef SYS_semget
+# undef SYS_semctl
+# undef SYS_semtimedop
+# undef SYS_msgsnd
+# undef SYS_msgrcv
+# undef SYS_msgget
+# undef SYS_msgctl
+# undef SYS_shmat
+# undef SYS_shmdt
+# undef SYS_shmget
+# undef SYS_shmctl
+# endif /* IA64 */
+#define SYS_ipc_subcall ((SYS_socket_subcall)+(SYS_socket_nsubcalls))
+#define SYS_sub_semop (SYS_ipc_subcall + 1)
+#define SYS_sub_semget (SYS_ipc_subcall + 2)
+#define SYS_sub_semctl (SYS_ipc_subcall + 3)
+#define SYS_sub_semtimedop (SYS_ipc_subcall + 4)
+#define SYS_sub_msgsnd (SYS_ipc_subcall + 11)
+#define SYS_sub_msgrcv (SYS_ipc_subcall + 12)
+#define SYS_sub_msgget (SYS_ipc_subcall + 13)
+#define SYS_sub_msgctl (SYS_ipc_subcall + 14)
+#define SYS_sub_shmat (SYS_ipc_subcall + 21)
+#define SYS_sub_shmdt (SYS_ipc_subcall + 22)
+#define SYS_sub_shmget (SYS_ipc_subcall + 23)
+#define SYS_sub_shmctl (SYS_ipc_subcall + 24)
+
+#define SYS_ipc_nsubcalls 25
+#endif /* !(ALPHA || MIPS || SPARC || HPPA) */
+
+#if defined SYS_ipc_subcall && !defined SYS_ipc
+# define SYS_ipc SYS_ipc_subcall
+#endif
+#if defined SYS_socket_subcall && !defined SYS_socketcall
+# define SYS_socketcall SYS_socket_subcall
+#endif
+
+#ifdef IA64
+ /*
+ * IA64 syscall numbers (the only ones available from standard header
+ * files) are disjoint from IA32 syscall numbers. We need to define
+ * some IA32 specific syscalls here.
+ */
+# define SYS_fork 2
+# define SYS_vfork 190
+# define SYS32_exit 1
+# define SYS_waitpid 7
+# define SYS32_wait4 114
+# define SYS32_execve 11
+#endif /* IA64 */
+
+#if defined(ALPHA) || defined(IA64)
+int sys_getpagesize();
+#endif
+
+#ifdef ALPHA
+int osf_statfs(), osf_fstatfs();
+#endif
+
+#ifdef IA64
+int sys_getpmsg(), sys_putpmsg(); /* STREAMS stuff */
+#endif
+
+#ifdef MIPS
+int sys_sysmips();
+#endif
+
+int sys_setpgrp(), sys_gethostname(), sys_getdtablesize(), sys_utimes();
+int sys_capget(), sys_capset();
+
+#ifdef M68K
+int sys_cacheflush();
+#endif
diff --git a/linux/syscallent.h b/linux/syscallent.h
new file mode 100644
index 0000000..f5d5b24
--- /dev/null
+++ b/linux/syscallent.h
@@ -0,0 +1,407 @@
+/*
+ * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
+ * Copyright (c) 1993, 1994, 1995 Rick Sladkey <jrs@world.std.com>
+ * 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.
+ *
+ * $Id: syscallent.h,v 1.34 2005/06/07 23:21:24 roland Exp $
+ */
+
+ { 0, 0, sys_setup, "setup" }, /* 0 */
+ { 1, TP, sys_exit, "_exit", SYS_exit }, /* 1 */
+ { 0, TP, sys_fork, "fork", SYS_fork }, /* 2 */
+ { 3, 0, sys_read, "read", SYS_read }, /* 3 */
+ { 3, 0, sys_write, "write", SYS_write }, /* 4 */
+ { 3, TF, sys_open, "open" }, /* 5 */
+ { 1, 0, sys_close, "close" }, /* 6 */
+ { 3, TP, sys_waitpid, "waitpid", SYS_wait4 }, /* 7 */
+ { 2, TF, sys_creat, "creat" }, /* 8 */
+ { 2, TF, sys_link, "link" }, /* 9 */
+ { 1, TF, sys_unlink, "unlink" }, /* 10 */
+ { 3, TF|TP, sys_execve, "execve", SYS_execve }, /* 11 */
+ { 1, TF, sys_chdir, "chdir" }, /* 12 */
+ { 1, 0, sys_time, "time" }, /* 13 */
+ { 3, TF, sys_mknod, "mknod" }, /* 14 */
+ { 2, TF, sys_chmod, "chmod" }, /* 15 */
+#ifdef M68K
+ { 3, TF, sys_chown, "chown" }, /* 16 */
+#else
+ { 3, TF, sys_chown, "lchown" }, /* 16 */
+#endif
+ { 0, 0, sys_break, "break" }, /* 17 */
+ { 2, TF, sys_oldstat, "oldstat" }, /* 18 */
+ { 3, 0, sys_lseek, "lseek" }, /* 19 */
+ { 0, 0, sys_getpid, "getpid" }, /* 20 */
+ { 5, TF, sys_mount, "mount" }, /* 21 */
+ { 1, TF, sys_umount, "oldumount" }, /* 22 */
+ { 1, 0, sys_setuid, "setuid" }, /* 23 */
+ { 0, 0, sys_getuid, "getuid" }, /* 24 */
+ { 1, 0, sys_stime, "stime" }, /* 25 */
+ { 4, 0, sys_ptrace, "ptrace" }, /* 26 */
+ { 1, 0, sys_alarm, "alarm" }, /* 27 */
+ { 2, 0, sys_oldfstat, "oldfstat" }, /* 28 */
+ { 0, TS, sys_pause, "pause" }, /* 29 */
+ { 2, TF, sys_utime, "utime" }, /* 30 */
+ { 2, 0, sys_stty, "stty" }, /* 31 */
+ { 2, 0, sys_gtty, "gtty" }, /* 32 */
+ { 2, TF, sys_access, "access" }, /* 33 */
+ { 1, 0, sys_nice, "nice" }, /* 34 */
+ { 0, 0, sys_ftime, "ftime" }, /* 35 */
+ { 0, 0, sys_sync, "sync" }, /* 36 */
+ { 2, TS, sys_kill, "kill" }, /* 37 */
+ { 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, 0, sys_times, "times" }, /* 43 */
+ { 0, 0, sys_prof, "prof" }, /* 44 */
+ { 1, 0, sys_brk, "brk" }, /* 45 */
+ { 1, 0, sys_setgid, "setgid" }, /* 46 */
+ { 0, 0, sys_getgid, "getgid" }, /* 47 */
+ { 3, TS, sys_signal, "signal" }, /* 48 */
+ { 0, 0, sys_geteuid, "geteuid" }, /* 49 */
+ { 0, 0, sys_getegid, "getegid" }, /* 50 */
+ { 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 */
+ { 0, 0, sys_mpx, "mpx" }, /* 56 */
+ { 2, 0, sys_setpgid, "setpgid" }, /* 57 */
+ { 2, 0, sys_ulimit, "ulimit" }, /* 58 */
+ { 1, 0, sys_oldolduname, "oldolduname" }, /* 59 */
+ { 1, 0, sys_umask, "umask" }, /* 60 */
+ { 1, TF, sys_chroot, "chroot" }, /* 61 */
+ { 2, 0, sys_ustat, "ustat" }, /* 62 */
+ { 2, 0, sys_dup2, "dup2" }, /* 63 */
+ { 0, 0, sys_getppid, "getppid" }, /* 64 */
+ { 0, 0, sys_getpgrp, "getpgrp" }, /* 65 */
+ { 0, 0, sys_setsid, "setsid" }, /* 66 */
+ { 3, TS, sys_sigaction, "sigaction" }, /* 67 */
+ { 0, TS, sys_siggetmask, "siggetmask" }, /* 68 */
+ { 1, TS, sys_sigsetmask, "sigsetmask" }, /* 69 */
+ { 2, 0, sys_setreuid, "setreuid" }, /* 70 */
+ { 2, 0, sys_setregid, "setregid" }, /* 71 */
+ { 3, TS, sys_sigsuspend, "sigsuspend" }, /* 72 */
+ { 1, TS, sys_sigpending, "sigpending" }, /* 73 */
+ { 2, 0, sys_sethostname, "sethostname" }, /* 74 */
+ { 2, 0, sys_setrlimit, "setrlimit" }, /* 75 */
+ { 2, 0, sys_getrlimit, "old_getrlimit" }, /* 76 */
+ { 2, 0, sys_getrusage, "getrusage" }, /* 77 */
+ { 2, 0, sys_gettimeofday, "gettimeofday" }, /* 78 */
+ { 2, 0, sys_settimeofday, "settimeofday" }, /* 79 */
+ { 2, 0, sys_getgroups, "getgroups" }, /* 80 */
+ { 2, 0, sys_setgroups, "setgroups" }, /* 81 */
+ { 1, 0, 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 */
+ { 1, TF, sys_swapon, "swapon" }, /* 87 */
+ { 3, 0, sys_reboot, "reboot" }, /* 88 */
+ { 3, 0, sys_readdir, "readdir" }, /* 89 */
+ { 6, 0, sys_old_mmap, "old_mmap" }, /* 90 */
+ { 2, 0, 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, 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 */
+ { 3, 0, sys_ioperm, "ioperm" }, /* 101 */
+#ifdef HAVE_ANDROID_OS
+ { 2, 0, sys_socketcall, "socketcall"}, /* 102 */
+#else
+ { 2, 0, sys_socketcall, "socketcall", SYS_socketcall }, /* 102 */
+#endif
+ { 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 */
+ { 1, 0, sys_olduname, "olduname" }, /* 109 */
+ { 1, 0, sys_iopl, "iopl" }, /* 110 */
+ { 0, 0, sys_vhangup, "vhangup" }, /* 111 */
+ { 0, 0, sys_idle, "idle" }, /* 112 */
+ { 1, 0, sys_vm86old, "vm86old" }, /* 113 */
+ { 4, TP, sys_wait4, "wait4", SYS_wait4 }, /* 114 */
+ { 1, 0, sys_swapoff, "swapoff" }, /* 115 */
+ { 1, 0, sys_sysinfo, "sysinfo" }, /* 116 */
+#ifdef HAVE_ANDROID_OS
+ { 6, 0, sys_ipc, "ipc"}, /* 117 */
+#else
+ { 6, 0, sys_ipc, "ipc", SYS_ipc }, /* 117 */
+#endif
+ { 1, 0, sys_fsync, "fsync" }, /* 118 */
+ { 1, TS, sys_sigreturn, "sigreturn" }, /* 119 */
+ { 5, TP, sys_clone, "clone", SYS_clone }, /* 120 */
+ { 2, 0, sys_setdomainname, "setdomainname" }, /* 121 */
+ { 1, 0, sys_uname, "uname" }, /* 122 */
+#ifdef M68K
+ { 4, 0, sys_cacheflush, "cacheflush" }, /* 123 */
+#else
+ { 3, 0, sys_modify_ldt, "modify_ldt" }, /* 123 */
+#endif
+ { 1, 0, sys_adjtimex, "adjtimex" }, /* 124 */
+ { 3, 0, sys_mprotect, "mprotect" }, /* 125 */
+ { 3, TS, sys_sigprocmask, "sigprocmask" }, /* 126 */
+ { 2, 0, sys_create_module, "create_module" }, /* 127 */
+ { 2, 0, sys_init_module, "init_module" }, /* 128 */
+ { 1, 0, sys_delete_module, "delete_module" }, /* 129 */
+ { 1, 0, sys_get_kernel_syms, "get_kernel_syms"}, /* 130 */
+ { 4, 0, sys_quotactl, "quotactl" }, /* 131 */
+ { 1, 0, sys_getpgid, "getpgid" }, /* 132 */
+ { 1, 0, sys_fchdir, "fchdir" }, /* 133 */
+ { 0, 0, sys_bdflush, "bdflush" }, /* 134 */
+ { 3, 0, sys_sysfs, "sysfs", SYS_sysfs }, /* 135 */
+ { 1, 0, sys_personality, "personality" }, /* 136 */
+ { 5, 0, sys_afs_syscall, "afs_syscall" }, /* 137 */
+ { 1, 0, sys_setfsuid, "setfsuid" }, /* 138 */
+ { 1, 0, 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", SYS_readv }, /* 145 */
+ { 3, 0, sys_writev, "writev", SYS_writev }, /* 146 */
+ { 1, 0, sys_getsid, "getsid" }, /* 147 */
+ { 1, 0, sys_fdatasync, "fdatasync" }, /* 148 */
+ { 1, 0, sys_sysctl, "_sysctl" }, /* 149 */
+ { 2, 0, sys_mlock, "mlock" }, /* 150 */
+ { 2, 0, sys_munlock, "munlock" }, /* 151 */
+ { 2, 0, sys_mlockall, "mlockall" }, /* 152 */
+ { 0, 0, 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 */
+ { 1, 0, sys_sched_getscheduler, "sched_getscheduler"}, /* 157 */
+ { 0, 0, sys_sched_yield, "sched_yield"}, /* 158 */
+ { 1, 0, sys_sched_get_priority_max,"sched_get_priority_max"}, /* 159 */
+ { 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 */
+ { 4, 0, sys_mremap, "mremap" }, /* 163 */
+ { 3, 0, sys_setresuid, "setresuid" }, /* 164 */
+ { 3, 0, sys_getresuid, "getresuid" }, /* 165 */
+#ifdef M68K
+ { 5, 0, printargs, "SYS_166" }, /* 166 */
+#else
+ { 5, 0, printargs, "vm86" }, /* 166 */
+#endif
+ { 5, 0, sys_query_module, "query_module" }, /* 167 */
+ { 3, 0, sys_poll, "poll" }, /* 168 */
+ { 3, 0, printargs, "nfsservctl" }, /* 169 */
+ { 3, 0, sys_setresgid, "setresgid" }, /* 170 */
+ { 3, 0, sys_getresgid, "getresgid" }, /* 171 */
+ { 5, 0, printargs, "prctl" }, /* 172 */
+ { 1, TS, printargs, "rt_sigreturn" }, /* 173 */
+ { 4, TS, sys_rt_sigaction, "rt_sigaction" }, /* 174 */
+ { 4, TS, sys_rt_sigprocmask, "rt_sigprocmask"}, /* 175 */
+ { 2, TS, sys_rt_sigpending, "rt_sigpending" }, /* 176 */
+ { 4, TS, sys_rt_sigtimedwait, "rt_sigtimedwait"}, /* 177 */
+ { 3, TS, sys_rt_sigqueueinfo, "rt_sigqueueinfo"}, /* 178 */
+ { 2, TS, sys_rt_sigsuspend, "rt_sigsuspend" }, /* 179 */
+
+ { 5, TF, sys_pread, "pread64", SYS_read }, /* 180 */
+ { 5, TF, sys_pwrite, "pwrite64", SYS_write }, /* 181 */
+#ifdef M68K
+ { 3, TF, sys_chown, "lchown" }, /* 182 */
+#else
+ { 3, TF, sys_chown, "chown" }, /* 182 */
+#endif
+ { 2, TF, sys_getcwd, "getcwd" }, /* 183 */
+ { 2, 0, sys_capget, "capget" }, /* 184 */
+ { 2, 0, sys_capset, "capset" }, /* 185 */
+ { 2, TS, sys_sigaltstack, "sigaltstack" }, /* 186 */
+ { 4, TF, sys_sendfile, "sendfile" }, /* 187 */
+ { 5, 0, sys_getpmsg, "getpmsg" }, /* 188 */
+ { 5, 0, sys_putpmsg, "putpmsg" }, /* 189 */
+ { 0, TP, sys_vfork, "vfork", SYS_vfork }, /* 190 */
+ { 2, 0, sys_getrlimit, "getrlimit" }, /* 191 */
+ { 6, 0, sys_mmap, "mmap2" }, /* 192 */
+ { 3, TF, sys_truncate64, "truncate64" }, /* 193 */
+ { 3, TF, sys_ftruncate64, "ftruncate64" }, /* 194 */
+ { 2, TF, sys_stat64, "stat64" }, /* 195 */
+ { 2, TF, sys_lstat64, "lstat64" }, /* 196 */
+ { 2, TF, sys_fstat64, "fstat64" }, /* 197 */
+ { 3, TF, sys_chown, "lchown32" }, /* 198 */
+ { 0, 0, sys_getuid, "getuid32" }, /* 199 */
+
+ { 0, 0, sys_getgid, "getgid32" }, /* 200 */
+ { 0, 0, sys_geteuid, "geteuid32" }, /* 201 */
+ { 0, 0, sys_geteuid, "getegid32" }, /* 202 */
+ { 2, 0, sys_setreuid, "setreuid32" }, /* 203 */
+ { 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, 0, sys_setresuid, "setresuid32" }, /* 208 */
+ { 3, 0, sys_getresuid, "getresuid32" }, /* 209 */
+ { 3, 0, sys_setresgid, "setresgid32" }, /* 210 */
+ { 3, 0, sys_getresgid, "getresgid32" }, /* 211 */
+ { 3, TF, sys_chown, "chown32" }, /* 212 */
+ { 1, 0, sys_setuid, "setuid32" }, /* 213 */
+ { 1, 0, sys_setgid, "setgid32" }, /* 214 */
+ { 1, 0, sys_setfsuid, "setfsuid32" }, /* 215 */
+ { 1, 0, sys_setfsgid, "setfsgid32" }, /* 216 */
+ { 2, TF, sys_pivotroot, "pivot_root" }, /* 217 */
+ { 3, 0, sys_mincore, "mincore" }, /* 218 */
+ { 3, 0, sys_madvise, "madvise" }, /* 219 */
+ { 4, 0, sys_getdents64, "getdents64" }, /* 220 */
+ { 3, 0, sys_fcntl, "fcntl64" }, /* 221 */
+ { 4, 0, printargs, "SYS_222" }, /* 222 */
+/*TODO*/{ 5, 0, printargs, "security" }, /* 223 */
+ { 0, 0, printargs, "gettid" }, /* 224 */
+ { 4, 0, sys_readahead, "readahead" }, /* 225 */
+ { 5, TF, sys_setxattr, "setxattr" }, /* 226 */
+ { 5, TF, sys_setxattr, "lsetxattr" }, /* 227 */
+ { 5, 0, sys_fsetxattr, "fsetxattr" }, /* 228 */
+ { 4, TF, sys_getxattr, "getxattr" }, /* 229 */
+ { 4, TF, sys_getxattr, "lgetxattr" }, /* 230 */
+ { 4, 0, sys_fgetxattr, "fgetxattr" }, /* 231 */
+ { 3, TF, sys_listxattr, "listxattr" }, /* 232 */
+ { 3, TF, sys_listxattr, "llistxattr" }, /* 233 */
+ { 3, 0, sys_flistxattr, "flistxattr" }, /* 234 */
+ { 2, TF, sys_removexattr, "removexattr" }, /* 235 */
+ { 2, TF, sys_removexattr, "lremovexattr" }, /* 236 */
+ { 2, 0, sys_fremovexattr, "fremovexattr" }, /* 237 */
+ { 2, TS, sys_kill, "tkill" }, /* 238 */
+ { 4, TF, sys_sendfile64, "sendfile64" }, /* 239 */
+ { 5, 0, sys_futex, "futex" }, /* 240 */
+ { 3, 0, sys_sched_setaffinity, "sched_setaffinity" },/* 241 */
+ { 3, 0, sys_sched_getaffinity, "sched_getaffinity" },/* 242 */
+ { 1, 0, sys_set_thread_area, "set_thread_area" }, /* 243 */
+ { 1, 0, sys_get_thread_area, "get_thread_area" }, /* 244 */
+ { 2, 0, sys_io_setup, "io_setup" }, /* 245 */
+ { 1, 0, sys_io_destroy, "io_destroy" }, /* 246 */
+ { 5, 0, sys_io_getevents, "io_getevents" }, /* 247 */
+ { 3, 0, sys_io_submit, "io_submit" }, /* 248 */
+ { 3, 0, sys_io_cancel, "io_cancel" }, /* 249 */
+ { 5, TF, sys_fadvise64, "fadvise64" }, /* 250 */
+ { 5, 0, printargs, "SYS_251" }, /* 251 */
+ { 1, TP, sys_exit, "exit_group", __NR_exit_group }, /* 252 */
+ { 4, 0, printargs, "lookup_dcookie"}, /* 253 */
+ { 1, 0, sys_epoll_create, "epoll_create" }, /* 254 */
+ { 4, 0, sys_epoll_ctl, "epoll_ctl" }, /* 255 */
+ { 4, 0, sys_epoll_wait, "epoll_wait" }, /* 256 */
+ { 5, 0, sys_remap_file_pages, "remap_file_pages"}, /* 257 */
+ { 1, 0, printargs, "set_tid_address"}, /* 258 */
+ { 3, 0, sys_timer_create, "timer_create" }, /* 259 */
+ { 4, 0, sys_timer_settime, "timer_settime" }, /* 260 */
+ { 2, 0, sys_timer_gettime, "timer_gettime" }, /* 261 */
+ { 1, 0, sys_timer_getoverrun, "timer_getoverrun"}, /* 262 */
+ { 1, 0, sys_timer_delete, "timer_delete" }, /* 263 */
+ { 2, 0, sys_clock_settime, "clock_settime" }, /* 264 */
+ { 2, 0, sys_clock_gettime, "clock_gettime" }, /* 265 */
+ { 2, 0, sys_clock_getres, "clock_getres" }, /* 266 */
+ { 4, 0, sys_clock_nanosleep, "clock_nanosleep"}, /* 267 */
+ { 3, TF, sys_statfs64, "statfs64" }, /* 268 */
+ { 3, TF, sys_fstatfs64, "fstatfs64" }, /* 269 */
+ { 3, TS, sys_tgkill, "tgkill" }, /* 270 */
+ { 2, TF, sys_utimes, "utimes" }, /* 271 */
+ { 6, TF, sys_fadvise64_64, "fadvise64_64" }, /* 272 */
+ { 5, 0, printargs, "vserver" }, /* 273 */
+ { 6, 0, sys_mbind, "mbind" }, /* 274 */
+ { 5, 0, sys_get_mempolicy, "get_mempolicy" }, /* 275 */
+ { 3, 0, 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 */
+ { 5, 0, sys_mq_timedreceive, "mq_timedreceive" }, /* 280 */
+ { 2, 0, sys_mq_notify, "mq_notify" }, /* 281 */
+ { 3, 0, sys_mq_getsetattr, "mq_getsetattr" }, /* 282 */
+ { 5, 0, printargs, "sys_kexec_load" }, /* 283 */
+ { 5, TP, sys_waitid, "waitid", SYS_waitid }, /* 284 */
+ { 5, 0, printargs, "SYS_285" }, /* 285 */
+ { 5, 0, printargs, "SYS_286" }, /* 286 */
+ { 5, 0, printargs, "SYS_287" }, /* 287 */
+ { 5, 0, printargs, "SYS_288" }, /* 288 */
+ { 5, 0, printargs, "SYS_289" }, /* 289 */
+ { 5, 0, printargs, "SYS_290" }, /* 290 */
+ { 5, 0, printargs, "SYS_291" }, /* 291 */
+ { 5, 0, printargs, "SYS_292" }, /* 292 */
+ { 5, 0, printargs, "SYS_293" }, /* 293 */
+ { 5, 0, printargs, "SYS_294" }, /* 294 */
+ { 5, 0, printargs, "SYS_295" }, /* 295 */
+ { 5, 0, printargs, "SYS_296" }, /* 296 */
+ { 5, 0, printargs, "SYS_297" }, /* 297 */
+ { 5, 0, printargs, "SYS_298" }, /* 298 */
+ { 5, 0, printargs, "SYS_299" }, /* 299 */
+
+#if SYS_socket_subcall != 300
+ #error fix me
+#endif
+ { 8, 0, printargs, "socket_subcall"}, /* 300 */
+ { 3, TN, sys_socket, "socket" }, /* 301 */
+ { 3, TN, sys_bind, "bind" }, /* 302 */
+ { 3, TN, sys_connect, "connect" }, /* 303 */
+ { 2, TN, sys_listen, "listen" }, /* 304 */
+ { 3, TN, sys_accept, "accept" }, /* 305 */
+ { 3, TN, sys_getsockname, "getsockname" }, /* 306 */
+ { 3, TN, sys_getpeername, "getpeername" }, /* 307 */
+ { 4, TN, sys_socketpair, "socketpair" }, /* 308 */
+ { 4, TN, sys_send, "send", SYS_sub_send }, /* 309 */
+ { 4, TN, sys_recv, "recv", SYS_sub_recv }, /* 310 */
+ { 6, TN, sys_sendto, "sendto", SYS_sub_sendto }, /* 311 */
+ { 6, TN, sys_recvfrom, "recvfrom", SYS_sub_recvfrom }, /* 312 */
+ { 2, TN, sys_shutdown, "shutdown" }, /* 313 */
+ { 5, TN, sys_setsockopt, "setsockopt" }, /* 314 */
+ { 5, TN, sys_getsockopt, "getsockopt" }, /* 315 */
+ { 5, TN, sys_sendmsg, "sendmsg" }, /* 316 */
+ { 5, TN, sys_recvmsg, "recvmsg" }, /* 317 */
+
+#if SYS_ipc_subcall != 318
+ #error fix me
+#endif
+ { 4, 0, printargs, "ipc_subcall" }, /* 318 */
+ { 4, TI, sys_semop, "semop" }, /* 319 */
+ { 4, TI, sys_semget, "semget" }, /* 320 */
+ { 4, TI, sys_semctl, "semctl" }, /* 321 */
+ { 5, TI, sys_semtimedop, "semtimedop" }, /* 322 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 323 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 324 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 325 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 326 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 327 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 328 */
+ { 4, TI, sys_msgsnd, "msgsnd" }, /* 329 */
+ { 4, TI, sys_msgrcv, "msgrcv" }, /* 330 */
+ { 4, TI, sys_msgget, "msgget" }, /* 331 */
+ { 4, TI, sys_msgctl, "msgctl" }, /* 332 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 333 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 334 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 335 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 336 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 337 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 338 */
+ { 4, TI, sys_shmat, "shmat" }, /* 339 */
+ { 4, TI, sys_shmdt, "shmdt" }, /* 340 */
+ { 4, TI, sys_shmget, "shmget" }, /* 341 */
+ { 4, TI, sys_shmctl, "shmctl" }, /* 342 */
diff --git a/mem.c b/mem.c
new file mode 100644
index 0000000..d7fc857
--- /dev/null
+++ b/mem.c
@@ -0,0 +1,778 @@
+/*
+ * Copyright (c) 1991, 1992 Paul Kranenburg <pk@cs.few.eur.nl>
+ * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
+ * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
+ * Copyright (c) 1996-1999 Wichert Akkerman <wichert@cistron.nl>
+ * Copyright (c) 2000 PocketPenguins Inc. Linux for Hitachi SuperH
+ * port by Greg Banks <gbanks@pocketpenguins.com>
+ * 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.
+ *
+ * $Id: mem.c,v 1.36 2005/06/01 19:22:07 roland Exp $
+ */
+
+#include "defs.h"
+
+#ifdef LINUX
+#include <asm/mman.h>
+#endif
+#include <sys/mman.h>
+
+#if defined(LINUX) && defined(I386)
+#include <asm/ldt.h>
+# ifdef HAVE_STRUCT_USER_DESC
+# define modify_ldt_ldt_s user_desc
+# endif
+#endif
+#if defined(LINUX) && 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
+
+int
+sys_brk(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%#lx", tcp->u_arg[0]);
+ }
+#ifdef LINUX
+ return RVAL_HEX;
+#else
+ return 0;
+#endif
+}
+
+int
+sys_sbrk(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%lu", tcp->u_arg[0]);
+ }
+ return RVAL_HEX;
+}
+
+static const struct xlat mmap_prot[] = {
+ { PROT_NONE, "PROT_NONE", },
+ { PROT_READ, "PROT_READ" },
+ { PROT_WRITE, "PROT_WRITE" },
+ { PROT_EXEC, "PROT_EXEC" },
+#ifdef PROT_SEM
+ { PROT_SEM, "PROT_SEM" },
+#endif
+#ifdef PROT_GROWSDOWN
+ { PROT_GROWSDOWN,"PROT_GROWSDOWN"},
+#endif
+#ifdef PROT_GROWSUP
+ { PROT_GROWSUP, "PROT_GROWSUP" },
+#endif
+ { 0, NULL },
+};
+
+static const struct xlat mmap_flags[] = {
+ { MAP_SHARED, "MAP_SHARED" },
+ { MAP_PRIVATE, "MAP_PRIVATE" },
+ { MAP_FIXED, "MAP_FIXED" },
+#ifdef MAP_ANONYMOUS
+ { MAP_ANONYMOUS,"MAP_ANONYMOUS" },
+#endif
+#ifdef MAP_RENAME
+ { MAP_RENAME, "MAP_RENAME" },
+#endif
+#ifdef MAP_NORESERVE
+ { MAP_NORESERVE,"MAP_NORESERVE" },
+#endif
+#ifdef MAP_POPULATE
+ { MAP_POPULATE, "MAP_POPULATE" },
+#endif
+#ifdef MAP_NONBLOCK
+ { MAP_NONBLOCK, "MAP_NONBLOCK" },
+#endif
+ /*
+ * XXX - this was introduced in SunOS 4.x to distinguish between
+ * the old pre-4.x "mmap()", which:
+ *
+ * only let you map devices with an "mmap" routine (e.g.,
+ * frame buffers) in;
+ *
+ * required you to specify the mapping address;
+ *
+ * returned 0 on success and -1 on failure;
+ *
+ * memory and which, and the 4.x "mmap()" which:
+ *
+ * can map plain files;
+ *
+ * can be asked to pick where to map the file;
+ *
+ * returns the address where it mapped the file on success
+ * and -1 on failure.
+ *
+ * It's not actually used in source code that calls "mmap()"; the
+ * "mmap()" routine adds it for you.
+ *
+ * It'd be nice to come up with some way of eliminating it from
+ * the flags, e.g. reporting calls *without* it as "old_mmap()"
+ * and calls with it as "mmap()".
+ */
+#ifdef _MAP_NEW
+ { _MAP_NEW, "_MAP_NEW" },
+#endif
+#ifdef MAP_GROWSDOWN
+ { MAP_GROWSDOWN,"MAP_GROWSDOWN" },
+#endif
+#ifdef MAP_DENYWRITE
+ { MAP_DENYWRITE,"MAP_DENYWRITE" },
+#endif
+#ifdef MAP_EXECUTABLE
+ { MAP_EXECUTABLE,"MAP_EXECUTABLE"},
+#endif
+#ifdef MAP_INHERIT
+ { MAP_INHERIT,"MAP_INHERIT" },
+#endif
+#ifdef MAP_FILE
+ { MAP_FILE,"MAP_FILE"},
+#endif
+#ifdef MAP_LOCKED
+ { MAP_LOCKED,"MAP_LOCKED"},
+#endif
+ /* FreeBSD ones */
+#ifdef MAP_ANON
+ { MAP_ANON, "MAP_ANON" },
+#endif
+#ifdef MAP_HASSEMAPHORE
+ { MAP_HASSEMAPHORE, "MAP_HASSEMAPHORE" },
+#endif
+#ifdef MAP_STACK
+ { MAP_STACK, "MAP_STACK" },
+#endif
+#ifdef MAP_NOSYNC
+ { MAP_NOSYNC, "MAP_NOSYNC" },
+#endif
+#ifdef MAP_NOCORE
+ { MAP_NOCORE, "MAP_NOCORE" },
+#endif
+ { 0, NULL },
+};
+
+#if !HAVE_LONG_LONG_OFF_T
+static
+int
+print_mmap(tcp,u_arg)
+struct tcb *tcp;
+long *u_arg;
+{
+ if (entering(tcp)) {
+ /* addr */
+ if (!u_arg[0])
+ tprintf("NULL, ");
+ else
+ tprintf("%#lx, ", u_arg[0]);
+ /* len */
+ tprintf("%lu, ", u_arg[1]);
+ /* prot */
+ printflags(mmap_prot, u_arg[2], "PROT_???");
+ tprintf(", ");
+ /* 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 (is always int, not long) */
+ tprintf(", %d, ", (int)u_arg[4]);
+ /* offset */
+ tprintf("%#lx", u_arg[5]);
+ }
+ return RVAL_HEX;
+}
+
+#ifdef LINUX
+int sys_old_mmap(tcp)
+struct tcb *tcp;
+{
+ long u_arg[6];
+
+#if defined(IA64)
+ int i, v;
+ /*
+ * IA64 processes never call this routine, they only use the
+ * new `sys_mmap' interface. This code converts the integer
+ * arguments that the IA32 process 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.
+ */
+ for (i = 0; i < 6; i++)
+ if (umove(tcp, tcp->u_arg[0] + (i * sizeof(int)), &v) == -1)
+ return 0;
+ else
+ u_arg[i] = v;
+#elif defined(SH) || defined(SH64)
+ /* SH has always passed the args in registers */
+ int i;
+ for (i=0; i<6; i++)
+ u_arg[i] = tcp->u_arg[i];
+#else
+ if (umoven(tcp, tcp->u_arg[0], sizeof u_arg, (char *) u_arg) == -1)
+ return 0;
+#endif // defined(IA64)
+ return print_mmap(tcp, u_arg);
+
+}
+#endif
+
+int
+sys_mmap(tcp)
+struct tcb *tcp;
+{
+#if defined(LINUX) && 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.
+ */
+ tcp->u_arg[5] <<= PAGE_SHIFT;
+#endif
+ return print_mmap(tcp, tcp->u_arg);
+}
+#endif /* !HAVE_LONG_LONG_OFF_T */
+
+#if _LFS64_LARGEFILE || HAVE_LONG_LONG_OFF_T
+int
+sys_mmap64(tcp)
+struct tcb *tcp;
+{
+#ifdef linux
+#ifdef ALPHA
+ long *u_arg = tcp->u_arg;
+#else /* !ALPHA */
+ long u_arg[7];
+#endif /* !ALPHA */
+#else /* !linux */
+ long *u_arg = tcp->u_arg;
+#endif /* !linux */
+
+ if (entering(tcp)) {
+#ifdef linux
+#ifndef ALPHA
+ if (umoven(tcp, tcp->u_arg[0], sizeof u_arg,
+ (char *) u_arg) == -1)
+ return 0;
+#endif /* ALPHA */
+#endif /* linux */
+ ALIGN64 (tcp, 5); /* FreeBSD wierdies */
+
+ /* addr */
+ tprintf("%#lx, ", u_arg[0]);
+ /* len */
+ tprintf("%lu, ", u_arg[1]);
+ /* prot */
+ printflags(mmap_prot, u_arg[2], "PROT_???");
+ tprintf(", ");
+ /* 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 */
+ tprintf(", %ld, ", u_arg[4]);
+ /* offset */
+ tprintf("%#llx", LONG_LONG(u_arg[5], u_arg[6]));
+ }
+ return RVAL_HEX;
+}
+#endif
+
+
+int
+sys_munmap(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%#lx, %lu",
+ tcp->u_arg[0], tcp->u_arg[1]);
+ }
+ return 0;
+}
+
+int
+sys_mprotect(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%#lx, %lu, ",
+ tcp->u_arg[0], tcp->u_arg[1]);
+ printflags(mmap_prot, tcp->u_arg[2], "PROT_???");
+ }
+ return 0;
+}
+
+#ifdef LINUX
+
+static const struct xlat mremap_flags[] = {
+ { MREMAP_MAYMOVE, "MREMAP_MAYMOVE" },
+ { 0, NULL }
+};
+
+int
+sys_mremap(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%#lx, %lu, %lu, ", tcp->u_arg[0], tcp->u_arg[1],
+ tcp->u_arg[2]);
+ printflags(mremap_flags, tcp->u_arg[3], "MREMAP_???");
+ }
+ return RVAL_HEX;
+}
+
+static const struct xlat madvise_flags[] = {
+#ifdef MADV_NORMAL
+ { MADV_NORMAL, "MADV_NORMAL" },
+#endif
+#ifdef MADZV_RANDOM
+ { MADV_RANDOM, "MADV_RANDOM" },
+#endif
+#ifdef MADV_SEQUENTIAL
+ { MADV_SEQUENTIAL, "MADV_SEQUENTIAL" },
+#endif
+#ifdef MADV_WILLNEED
+ { MADV_WILLNEED, "MADV_WILLNEED" },
+#endif
+#ifdef MADV_DONTNED
+ { MADV_DONTNEED, "MADV_DONTNEED" },
+#endif
+ { 0, NULL },
+};
+
+
+int
+sys_madvise(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%#lx, %lu, ", tcp->u_arg[0], tcp->u_arg[1]);
+ printflags(madvise_flags, tcp->u_arg[2], "MADV_???");
+ }
+ return 0;
+}
+
+
+static const struct xlat mlockall_flags[] = {
+#ifdef MCL_CURRENT
+ { MCL_CURRENT, "MCL_CURRENT" },
+#endif
+#ifdef MCL_FUTURE
+ { MCL_FUTURE, "MCL_FUTURE" },
+#endif
+ { 0, NULL}
+};
+
+int
+sys_mlockall(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printflags(mlockall_flags, tcp->u_arg[0], "MCL_???");
+ }
+ return 0;
+}
+
+
+#endif /* LINUX */
+
+#ifdef MS_ASYNC
+
+static const struct xlat mctl_sync[] = {
+#ifdef MS_SYNC
+ { MS_SYNC, "MS_SYNC" },
+#endif
+ { MS_ASYNC, "MS_ASYNC" },
+ { MS_INVALIDATE,"MS_INVALIDATE" },
+ { 0, NULL },
+};
+
+int
+sys_msync(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ /* addr */
+ tprintf("%#lx", tcp->u_arg[0]);
+ /* len */
+ tprintf(", %lu, ", tcp->u_arg[1]);
+ /* flags */
+ printflags(mctl_sync, tcp->u_arg[2], "MS_???");
+ }
+ return 0;
+}
+
+#endif /* MS_ASYNC */
+
+#ifdef MC_SYNC
+
+static const struct xlat mctl_funcs[] = {
+ { MC_LOCK, "MC_LOCK" },
+ { MC_LOCKAS, "MC_LOCKAS" },
+ { MC_SYNC, "MC_SYNC" },
+ { MC_UNLOCK, "MC_UNLOCK" },
+ { MC_UNLOCKAS, "MC_UNLOCKAS" },
+ { 0, NULL },
+};
+
+static const struct xlat mctl_lockas[] = {
+ { MCL_CURRENT, "MCL_CURRENT" },
+ { MCL_FUTURE, "MCL_FUTURE" },
+ { 0, NULL },
+};
+
+int
+sys_mctl(tcp)
+struct tcb *tcp;
+{
+ int arg, function;
+
+ if (entering(tcp)) {
+ /* addr */
+ tprintf("%#lx", tcp->u_arg[0]);
+ /* len */
+ tprintf(", %lu, ", tcp->u_arg[1]);
+ /* function */
+ function = tcp->u_arg[2];
+ printflags(mctl_funcs, function, "MC_???");
+ /* arg */
+ arg = tcp->u_arg[3];
+ tprintf(", ");
+ switch (function) {
+ case MC_SYNC:
+ printflags(mctl_sync, arg, "MS_???");
+ break;
+ case MC_LOCKAS:
+ printflags(mctl_lockas, arg, "MCL_???");
+ break;
+ default:
+ tprintf("%#x", arg);
+ break;
+ }
+ }
+ return 0;
+}
+
+#endif /* MC_SYNC */
+
+int
+sys_mincore(tcp)
+struct tcb *tcp;
+{
+ unsigned long i, len;
+ char *vec = NULL;
+
+ if (entering(tcp)) {
+ tprintf("%#lx, %lu, ", tcp->u_arg[0], tcp->u_arg[1]);
+ } else {
+ len = tcp->u_arg[1];
+ if (syserror(tcp) || tcp->u_arg[2] == 0 ||
+ (vec = malloc(len)) == NULL ||
+ umoven(tcp, tcp->u_arg[2], len, vec) < 0)
+ tprintf("%#lx", tcp->u_arg[2]);
+ else {
+ tprintf("[");
+ for (i = 0; i < len; i++) {
+ if (abbrev(tcp) && i >= max_strlen) {
+ tprintf("...");
+ break;
+ }
+ tprintf((vec[i] & 1) ? "1" : "0");
+ }
+ tprintf("]");
+ }
+ if (vec)
+ free(vec);
+ }
+ return 0;
+}
+
+int
+sys_getpagesize(tcp)
+struct tcb *tcp;
+{
+ if (exiting(tcp))
+ return RVAL_HEX;
+ return 0;
+}
+
+#if defined(LINUX) && defined(__i386__)
+void
+print_ldt_entry (ldt_entry)
+struct modify_ldt_ldt_s *ldt_entry;
+{
+ tprintf("base_addr:%#08lx, "
+ "limit:%d, "
+ "seg_32bit:%d, "
+ "contents:%d, "
+ "read_exec_only:%d, "
+ "limit_in_pages:%d, "
+ "seg_not_present:%d, "
+ "useable:%d}",
+ ldt_entry->base_addr,
+ ldt_entry->limit,
+ ldt_entry->seg_32bit,
+ ldt_entry->contents,
+ ldt_entry->read_exec_only,
+ ldt_entry->limit_in_pages,
+ ldt_entry->seg_not_present,
+ ldt_entry->useable);
+}
+
+int
+sys_modify_ldt(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ struct modify_ldt_ldt_s copy;
+ tprintf("%ld", tcp->u_arg[0]);
+ if (tcp->u_arg[1] == 0
+ || tcp->u_arg[2] != sizeof (struct modify_ldt_ldt_s)
+ || umove(tcp, tcp->u_arg[1], ©) == -1)
+ tprintf(", %lx", tcp->u_arg[1]);
+ else {
+ tprintf(", {entry_number:%d, ", copy.entry_number);
+ if (!verbose(tcp))
+ tprintf("...}");
+ else {
+ print_ldt_entry(©);
+ }
+ }
+ tprintf(", %lu", tcp->u_arg[2]);
+ }
+ return 0;
+}
+
+int
+sys_set_thread_area(tcp)
+struct tcb *tcp;
+{
+ struct modify_ldt_ldt_s copy;
+ if (entering(tcp)) {
+ if (umove(tcp, tcp->u_arg[0], ©) != -1) {
+ if (copy.entry_number == -1)
+ tprintf("{entry_number:%d -> ",
+ copy.entry_number);
+ else
+ tprintf("{entry_number:");
+ }
+ } else {
+ if (umove(tcp, tcp->u_arg[0], ©) != -1) {
+ tprintf("%d, ", copy.entry_number);
+ if (!verbose(tcp))
+ tprintf("...}");
+ else {
+ print_ldt_entry(©);
+ }
+ } else {
+ tprintf("%lx", tcp->u_arg[0]);
+ }
+ }
+ return 0;
+
+}
+
+int
+sys_get_thread_area(tcp)
+struct tcb *tcp;
+{
+ struct modify_ldt_ldt_s copy;
+ if (exiting(tcp)) {
+ if (umove(tcp, tcp->u_arg[0], ©) != -1) {
+ tprintf("{entry_number:%d, ", copy.entry_number);
+ if (!verbose(tcp))
+ tprintf("...}");
+ else {
+ print_ldt_entry(©);
+ }
+ } else {
+ tprintf("%lx", tcp->u_arg[0]);
+ }
+ }
+ return 0;
+
+}
+#endif /* LINUX && __i386__ */
+
+#if defined(LINUX)
+int
+sys_remap_file_pages(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%#lx, %lu, ", tcp->u_arg[0], tcp->u_arg[1]);
+ printflags(mmap_prot, tcp->u_arg[2], "PROT_???");
+ tprintf(", %lu, ", tcp->u_arg[3]);
+#ifdef MAP_TYPE
+ printxval(mmap_flags, tcp->u_arg[4] & MAP_TYPE, "MAP_???");
+ addflags(mmap_flags, tcp->u_arg[4] & ~MAP_TYPE);
+#else
+ printflags(mmap_flags, tcp->u_arg[4], "MAP_???");
+#endif
+ }
+ return 0;
+}
+
+
+#define MPOL_DEFAULT 0
+#define MPOL_PREFERRED 1
+#define MPOL_BIND 2
+#define MPOL_INTERLEAVE 3
+
+#define MPOL_F_NODE (1<<0)
+#define MPOL_F_ADDR (1<<1)
+
+#define MPOL_MF_STRICT (1<<0)
+
+
+static const struct xlat policies[] = {
+ { MPOL_DEFAULT, "MPOL_DEFAULT" },
+ { MPOL_PREFERRED, "MPOL_PREFERRED" },
+ { MPOL_BIND, "MPOL_BIND" },
+ { MPOL_INTERLEAVE, "MPOL_INTERLEAVE" },
+ { 0, NULL }
+};
+
+static const struct xlat mbindflags[] = {
+ { MPOL_MF_STRICT, "MPOL_MF_STRICT" },
+ { 0, NULL }
+};
+
+static const struct xlat mempolicyflags[] = {
+ { MPOL_F_NODE, "MPOL_F_NODE" },
+ { MPOL_F_ADDR, "MPOL_F_ADDR" },
+ { 0, NULL }
+};
+
+
+static void
+get_nodes(tcp, ptr, maxnodes, err)
+struct tcb *tcp;
+unsigned long ptr;
+unsigned long maxnodes;
+int err;
+{
+ unsigned long nlongs, size, end;
+
+ nlongs = (maxnodes + 8 * sizeof(long) - 1) / (8 * sizeof(long));
+ size = nlongs * sizeof(long);
+ end = ptr + size;
+ if (nlongs == 0 || ((err || verbose(tcp)) && (size * 8 == maxnodes)
+ && (end > ptr))) {
+ unsigned long n, cur, abbrev_end;
+ int failed = 0;
+
+ if (abbrev(tcp)) {
+ abbrev_end = ptr + max_strlen * sizeof(long);
+ if (abbrev_end < ptr)
+ abbrev_end = end;
+ } else {
+ abbrev_end = end;
+ }
+ tprintf(", {");
+ for (cur = ptr; cur < end; cur += sizeof(long)) {
+ if (cur > ptr)
+ tprintf(", ");
+ if (cur >= abbrev_end) {
+ tprintf("...");
+ break;
+ }
+ if (umoven(tcp, cur, sizeof(n), (char *) &n) < 0) {
+ tprintf("?");
+ failed = 1;
+ break;
+ }
+ tprintf("%#0*lx", (int) sizeof(long) * 2 + 2, n);
+ }
+ tprintf("}");
+ if (failed)
+ tprintf(" %#lx", ptr);
+ } else
+ tprintf(", %#lx", ptr);
+ tprintf(", %lu", maxnodes);
+}
+
+int
+sys_mbind(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%lu, %lu, ", tcp->u_arg[0], tcp->u_arg[1]);
+ printxval(policies, tcp->u_arg[2], "MPOL_???");
+ get_nodes(tcp, tcp->u_arg[3], tcp->u_arg[4], 0);
+ tprintf(", ");
+ printflags(mbindflags, tcp->u_arg[5], "MPOL_???");
+ }
+ return 0;
+}
+
+int
+sys_set_mempolicy(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printxval(policies, tcp->u_arg[0], "MPOL_???");
+ get_nodes(tcp, tcp->u_arg[1], tcp->u_arg[2], 0);
+ }
+ return 0;
+}
+
+int
+sys_get_mempolicy(tcp)
+struct tcb *tcp;
+{
+ if (exiting(tcp)) {
+ int pol;
+ if (tcp->u_arg[0] == 0)
+ tprintf("NULL");
+ else if (syserror(tcp) || umove(tcp, tcp->u_arg[0], &pol) < 0)
+ tprintf("%#lx", tcp->u_arg[0]);
+ else
+ printxval(policies, pol, "MPOL_???");
+ get_nodes(tcp, tcp->u_arg[1], tcp->u_arg[2], syserror(tcp));
+ tprintf(", %#lx, ", tcp->u_arg[3]);
+ printflags(mempolicyflags, tcp->u_arg[4], "MPOL_???");
+ }
+ return 0;
+}
+#endif
diff --git a/missing b/missing
new file mode 100755
index 0000000..e7ef83a
--- /dev/null
+++ b/missing
@@ -0,0 +1,360 @@
+#! /bin/sh
+# Common stub for a few missing GNU programs while installing.
+
+scriptversion=2003-09-02.23
+
+# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003
+# Free Software Foundation, Inc.
+# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
+
+# 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, 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.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+if test $# -eq 0; then
+ echo 1>&2 "Try \`$0 --help' for more information"
+ exit 1
+fi
+
+run=:
+
+# In the cases where this matters, `missing' is being run in the
+# srcdir already.
+if test -f configure.ac; then
+ configure_ac=configure.ac
+else
+ configure_ac=configure.in
+fi
+
+msg="missing on your system"
+
+case "$1" in
+--run)
+ # Try to run requested program, and just exit if it succeeds.
+ run=
+ shift
+ "$@" && exit 0
+ # Exit code 63 means version mismatch. This often happens
+ # when the user try to use an ancient version of a tool on
+ # a file that requires a minimum version. In this case we
+ # we should proceed has if the program had been absent, or
+ # if --run hadn't been passed.
+ if test $? = 63; then
+ run=:
+ msg="probably too old"
+ fi
+ ;;
+esac
+
+# If it does not exist, or fails to run (possibly an outdated version),
+# try to emulate it.
+case "$1" in
+
+ -h|--h|--he|--hel|--help)
+ echo "\
+$0 [OPTION]... PROGRAM [ARGUMENT]...
+
+Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
+error status if there is no known handling for PROGRAM.
+
+Options:
+ -h, --help display this help and exit
+ -v, --version output version information and exit
+ --run try to run the given command, and emulate it if it fails
+
+Supported PROGRAM values:
+ aclocal touch file \`aclocal.m4'
+ autoconf touch file \`configure'
+ autoheader touch file \`config.h.in'
+ automake touch all \`Makefile.in' files
+ bison create \`y.tab.[ch]', if possible, from existing .[ch]
+ flex create \`lex.yy.c', if possible, from existing .c
+ help2man touch the output file
+ lex create \`lex.yy.c', if possible, from existing .c
+ makeinfo touch the output file
+ tar try tar, gnutar, gtar, then tar without non-portable flags
+ yacc create \`y.tab.[ch]', if possible, from existing .[ch]
+
+Send bug reports to <bug-automake@gnu.org>."
+ ;;
+
+ -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
+ echo "missing $scriptversion (GNU Automake)"
+ ;;
+
+ -*)
+ echo 1>&2 "$0: Unknown \`$1' option"
+ echo 1>&2 "Try \`$0 --help' for more information"
+ exit 1
+ ;;
+
+ aclocal*)
+ if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+ # We have it, but it failed.
+ exit 1
+ fi
+
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified \`acinclude.m4' or \`${configure_ac}'. You might want
+ to install the \`Automake' and \`Perl' packages. Grab them from
+ any GNU archive site."
+ touch aclocal.m4
+ ;;
+
+ autoconf)
+ if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+ # We have it, but it failed.
+ exit 1
+ fi
+
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified \`${configure_ac}'. You might want to install the
+ \`Autoconf' and \`GNU m4' packages. Grab them from any GNU
+ archive site."
+ touch configure
+ ;;
+
+ autoheader)
+ if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+ # We have it, but it failed.
+ exit 1
+ fi
+
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified \`acconfig.h' or \`${configure_ac}'. You might want
+ to install the \`Autoconf' and \`GNU m4' packages. Grab them
+ from any GNU archive site."
+ files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
+ test -z "$files" && files="config.h"
+ touch_files=
+ for f in $files; do
+ case "$f" in
+ *:*) touch_files="$touch_files "`echo "$f" |
+ sed -e 's/^[^:]*://' -e 's/:.*//'`;;
+ *) touch_files="$touch_files $f.in";;
+ esac
+ done
+ touch $touch_files
+ ;;
+
+ automake*)
+ if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+ # We have it, but it failed.
+ exit 1
+ fi
+
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
+ You might want to install the \`Automake' and \`Perl' packages.
+ Grab them from any GNU archive site."
+ find . -type f -name Makefile.am -print |
+ sed 's/\.am$/.in/' |
+ while read f; do touch "$f"; done
+ ;;
+
+ autom4te)
+ if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+ # We have it, but it failed.
+ exit 1
+ fi
+
+ echo 1>&2 "\
+WARNING: \`$1' is needed, but is $msg.
+ You might have modified some files without having the
+ proper tools for further handling them.
+ You can get \`$1' as part of \`Autoconf' from any GNU
+ archive site."
+
+ file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
+ test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
+ if test -f "$file"; then
+ touch $file
+ else
+ test -z "$file" || exec >$file
+ echo "#! /bin/sh"
+ echo "# Created by GNU Automake missing as a replacement of"
+ echo "# $ $@"
+ echo "exit 0"
+ chmod +x $file
+ exit 1
+ fi
+ ;;
+
+ bison|yacc)
+ echo 1>&2 "\
+WARNING: \`$1' $msg. You should only need it if
+ you modified a \`.y' file. You may need the \`Bison' package
+ in order for those modifications to take effect. You can get
+ \`Bison' from any GNU archive site."
+ rm -f y.tab.c y.tab.h
+ if [ $# -ne 1 ]; then
+ eval LASTARG="\${$#}"
+ case "$LASTARG" in
+ *.y)
+ SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
+ if [ -f "$SRCFILE" ]; then
+ cp "$SRCFILE" y.tab.c
+ fi
+ SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
+ if [ -f "$SRCFILE" ]; then
+ cp "$SRCFILE" y.tab.h
+ fi
+ ;;
+ esac
+ fi
+ if [ ! -f y.tab.h ]; then
+ echo >y.tab.h
+ fi
+ if [ ! -f y.tab.c ]; then
+ echo 'main() { return 0; }' >y.tab.c
+ fi
+ ;;
+
+ lex|flex)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified a \`.l' file. You may need the \`Flex' package
+ in order for those modifications to take effect. You can get
+ \`Flex' from any GNU archive site."
+ rm -f lex.yy.c
+ if [ $# -ne 1 ]; then
+ eval LASTARG="\${$#}"
+ case "$LASTARG" in
+ *.l)
+ SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
+ if [ -f "$SRCFILE" ]; then
+ cp "$SRCFILE" lex.yy.c
+ fi
+ ;;
+ esac
+ fi
+ if [ ! -f lex.yy.c ]; then
+ echo 'main() { return 0; }' >lex.yy.c
+ fi
+ ;;
+
+ help2man)
+ if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+ # We have it, but it failed.
+ exit 1
+ fi
+
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified a dependency of a manual page. You may need the
+ \`Help2man' package in order for those modifications to take
+ effect. You can get \`Help2man' from any GNU archive site."
+
+ file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
+ if test -z "$file"; then
+ file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
+ fi
+ if [ -f "$file" ]; then
+ touch $file
+ else
+ test -z "$file" || exec >$file
+ echo ".ab help2man is required to generate this page"
+ exit 1
+ fi
+ ;;
+
+ makeinfo)
+ if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then
+ # We have makeinfo, but it failed.
+ exit 1
+ fi
+
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified a \`.texi' or \`.texinfo' file, or any other file
+ indirectly affecting the aspect of the manual. The spurious
+ call might also be the consequence of using a buggy \`make' (AIX,
+ DU, IRIX). You might want to install the \`Texinfo' package or
+ the \`GNU make' package. Grab either from any GNU archive site."
+ file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
+ if test -z "$file"; then
+ file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
+ file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
+ fi
+ touch $file
+ ;;
+
+ tar)
+ shift
+ if test -n "$run"; then
+ echo 1>&2 "ERROR: \`tar' requires --run"
+ exit 1
+ fi
+
+ # We have already tried tar in the generic part.
+ # Look for gnutar/gtar before invocation to avoid ugly error
+ # messages.
+ if (gnutar --version > /dev/null 2>&1); then
+ gnutar "$@" && exit 0
+ fi
+ if (gtar --version > /dev/null 2>&1); then
+ gtar "$@" && exit 0
+ fi
+ firstarg="$1"
+ if shift; then
+ case "$firstarg" in
+ *o*)
+ firstarg=`echo "$firstarg" | sed s/o//`
+ tar "$firstarg" "$@" && exit 0
+ ;;
+ esac
+ case "$firstarg" in
+ *h*)
+ firstarg=`echo "$firstarg" | sed s/h//`
+ tar "$firstarg" "$@" && exit 0
+ ;;
+ esac
+ fi
+
+ echo 1>&2 "\
+WARNING: I can't seem to be able to run \`tar' with the given arguments.
+ You may want to install GNU tar or Free paxutils, or check the
+ command line arguments."
+ exit 1
+ ;;
+
+ *)
+ echo 1>&2 "\
+WARNING: \`$1' is needed, and is $msg.
+ You might have modified some files without having the
+ proper tools for further handling them. Check the \`README' file,
+ it often tells you about the needed prerequisites for installing
+ this package. You may also peek at any GNU archive site, in case
+ some other package would contain this missing \`$1' program."
+ exit 1
+ ;;
+esac
+
+exit 0
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:
diff --git a/mkinstalldirs b/mkinstalldirs
new file mode 100755
index 0000000..6fbe5e1
--- /dev/null
+++ b/mkinstalldirs
@@ -0,0 +1,150 @@
+#! /bin/sh
+# mkinstalldirs --- make directory hierarchy
+
+scriptversion=2004-02-15.20
+
+# Original author: Noah Friedman <friedman@prep.ai.mit.edu>
+# Created: 1993-05-16
+# Public domain.
+#
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+errstatus=0
+dirmode=""
+
+usage="\
+Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ...
+
+Create each directory DIR (with mode MODE, if specified), including all
+leading file name components.
+
+Report bugs to <bug-automake@gnu.org>."
+
+# process command line arguments
+while test $# -gt 0 ; do
+ case $1 in
+ -h | --help | --h*) # -h for help
+ echo "$usage"
+ exit 0
+ ;;
+ -m) # -m PERM arg
+ shift
+ test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
+ dirmode=$1
+ shift
+ ;;
+ --version)
+ echo "$0 $scriptversion"
+ exit 0
+ ;;
+ --) # stop option processing
+ shift
+ break
+ ;;
+ -*) # unknown option
+ echo "$usage" 1>&2
+ exit 1
+ ;;
+ *) # first non-opt arg
+ break
+ ;;
+ esac
+done
+
+for file
+do
+ if test -d "$file"; then
+ shift
+ else
+ break
+ fi
+done
+
+case $# in
+ 0) exit 0 ;;
+esac
+
+# Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and
+# mkdir -p a/c at the same time, both will detect that a is missing,
+# one will create a, then the other will try to create a and die with
+# a "File exists" error. This is a problem when calling mkinstalldirs
+# from a parallel make. We use --version in the probe to restrict
+# ourselves to GNU mkdir, which is thread-safe.
+case $dirmode in
+ '')
+ if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
+ echo "mkdir -p -- $*"
+ exec mkdir -p -- "$@"
+ else
+ # On NextStep and OpenStep, the `mkdir' command does not
+ # recognize any option. It will interpret all options as
+ # directories to create, and then abort because `.' already
+ # exists.
+ test -d ./-p && rmdir ./-p
+ test -d ./--version && rmdir ./--version
+ fi
+ ;;
+ *)
+ if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 &&
+ test ! -d ./--version; then
+ echo "mkdir -m $dirmode -p -- $*"
+ exec mkdir -m "$dirmode" -p -- "$@"
+ else
+ # Clean up after NextStep and OpenStep mkdir.
+ for d in ./-m ./-p ./--version "./$dirmode";
+ do
+ test -d $d && rmdir $d
+ done
+ fi
+ ;;
+esac
+
+for file
+do
+ set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
+ shift
+
+ pathcomp=
+ for d
+ do
+ pathcomp="$pathcomp$d"
+ case $pathcomp in
+ -*) pathcomp=./$pathcomp ;;
+ esac
+
+ if test ! -d "$pathcomp"; then
+ echo "mkdir $pathcomp"
+
+ mkdir "$pathcomp" || lasterr=$?
+
+ if test ! -d "$pathcomp"; then
+ errstatus=$lasterr
+ else
+ if test ! -z "$dirmode"; then
+ echo "chmod $dirmode $pathcomp"
+ lasterr=""
+ chmod "$dirmode" "$pathcomp" || lasterr=$?
+
+ if test ! -z "$lasterr"; then
+ errstatus=$lasterr
+ fi
+ fi
+ fi
+ fi
+
+ pathcomp="$pathcomp/"
+ done
+done
+
+exit $errstatus
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:
diff --git a/net.c b/net.c
new file mode 100644
index 0000000..640c767
--- /dev/null
+++ b/net.c
@@ -0,0 +1,1925 @@
+/*
+ * Copyright (c) 1991, 1992 Paul Kranenburg <pk@cs.few.eur.nl>
+ * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
+ * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
+ * Copyright (c) 1996-2000 Wichert Akkerman <wichert@cistron.nl>
+ * 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.
+ *
+ * $Id: net.c,v 1.48 2005/06/01 19:22:07 roland Exp $
+ */
+
+#include "defs.h"
+
+#include <sys/stat.h>
+#include <sys/socket.h>
+#include <sys/un.h>
+
+#if defined(HAVE_SIN6_SCOPE_ID_LINUX)
+#define in6_addr in6_addr_libc
+#define ipv6_mreq ipv6_mreq_libc
+#define sockaddr_in6 sockaddr_in6_libc
+#endif
+
+#include <netinet/in.h>
+#ifdef HAVE_NETINET_TCP_H
+#include <netinet/tcp.h>
+#endif
+#ifdef HAVE_NETINET_UDP_H
+#include <netinet/udp.h>
+#endif
+#include <arpa/inet.h>
+#include <net/if.h>
+#if defined(LINUX)
+#include <asm/types.h>
+#if defined(__GLIBC__) && (__GLIBC__ >= 2) && (__GLIBC__ + __GLIBC_MINOR__ >= 3)
+# include <netipx/ipx.h>
+#else
+# include <linux/ipx.h>
+#endif
+#endif /* LINUX */
+
+#if defined (__GLIBC__) && (((__GLIBC__ < 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 1)) || defined(HAVE_SIN6_SCOPE_ID_LINUX))
+#if defined(HAVE_LINUX_IN6_H)
+#if defined(HAVE_SIN6_SCOPE_ID_LINUX)
+#undef in6_addr
+#undef ipv6_mreq
+#undef sockaddr_in6
+#define in6_addr in6_addr_kernel
+#define ipv6_mreq ipv6_mreq_kernel
+#define sockaddr_in6 sockaddr_in6_kernel
+#endif
+#include <linux/in6.h>
+#if defined(HAVE_SIN6_SCOPE_ID_LINUX)
+#undef in6_addr
+#undef ipv6_mreq
+#undef sockaddr_in6
+#define in6_addr in6_addr_libc
+#define ipv6_mreq ipv6_mreq_libc
+#define sockaddr_in6 sockaddr_in6_kernel
+#endif
+#endif
+#endif
+
+#if defined(HAVE_SYS_UIO_H)
+#include <sys/uio.h>
+#endif
+
+#if defined(HAVE_LINUX_NETLINK_H)
+#include <linux/netlink.h>
+#endif
+
+#if defined(HAVE_LINUX_IF_PACKET_H)
+#include <linux/if_packet.h>
+#endif
+
+#if defined(HAVE_LINUX_ICMP_H)
+#include <linux/icmp.h>
+#endif
+
+#ifndef PF_UNSPEC
+#define PF_UNSPEC AF_UNSPEC
+#endif
+
+#if UNIXWARE >= 7
+#define HAVE_SENDMSG 1 /* HACK - *FIXME* */
+#endif
+
+#ifdef LINUX
+/* Under Linux these are enums so we can't test for them with ifdef. */
+#define IPPROTO_EGP IPPROTO_EGP
+#define IPPROTO_PUP IPPROTO_PUP
+#define IPPROTO_IDP IPPROTO_IDP
+#define IPPROTO_IGMP IPPROTO_IGMP
+#define IPPROTO_RAW IPPROTO_RAW
+#define IPPROTO_MAX IPPROTO_MAX
+#endif
+
+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" },
+#endif
+#ifdef PF_LOCAL
+ { PF_LOCAL, "PF_LOCAL" },
+#endif
+#ifdef PF_NETBEUI
+ { PF_NETBEUI, "PF_NETBEUI" },
+#endif
+#ifdef PF_NETLINK
+ { PF_NETLINK, "PF_NETLINK" },
+#endif
+#ifdef PF_NETROM
+ { PF_NETROM, "PF_NETROM" },
+#endif
+#ifdef PF_PACKET
+ { PF_PACKET, "PF_PACKET" },
+#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" },
+#endif
+#ifdef PF_X25
+ { PF_X25, "PF_X25" },
+#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" },
+#endif
+#ifdef AF_LOCAL
+ { AF_LOCAL, "AF_LOCAL" },
+#endif
+#ifdef AF_NETBEUI
+ { AF_NETBEUI, "AF_NETBEUI" },
+#endif
+#ifdef AF_NETLINK
+ { AF_NETLINK, "AF_NETLINK" },
+#endif
+#ifdef AF_NETROM
+ { AF_NETROM, "AF_NETROM" },
+#endif
+#ifdef AF_PACKET
+ { AF_PACKET, "AF_PACKET" },
+#endif
+#ifdef AF_PPPOX
+ { AF_PPPOX, "AF_PPPOX" },
+#endif
+#ifdef AF_ROSE
+ { AF_ROSE, "AF_ROSE" },
+#endif
+#ifdef AF_ROUTE
+ { AF_ROUTE, "AF_ROUTE" },
+#endif
+#ifdef AF_SECURITY
+ { AF_SECURITY, "AF_SECURITY" },
+#endif
+#ifdef AF_SNA
+ { AF_SNA, "AF_SNA" },
+#endif
+#ifdef AF_UNSPEC
+ { AF_UNSPEC, "AF_UNSPEC" },
+#endif
+#ifdef AF_WANPIPE
+ { AF_WANPIPE, "AF_WANPIPE" },
+#endif
+#ifdef AF_X25
+ { AF_X25, "AF_X25" },
+#endif
+ { 0, NULL },
+};
+static const struct xlat socktypes[] = {
+ { SOCK_STREAM, "SOCK_STREAM" },
+ { SOCK_DGRAM, "SOCK_DGRAM" },
+#ifdef SOCK_RAW
+ { SOCK_RAW, "SOCK_RAW" },
+#endif
+#ifdef SOCK_SEQPACKET
+ { SOCK_SEQPACKET,"SOCK_SEQPACKET"},
+#endif
+#ifdef SOCK_RDM
+ { SOCK_RDM, "SOCK_RDM" },
+#endif
+#ifdef SOCK_PACKET
+ { SOCK_PACKET, "SOCK_PACKET" },
+#endif
+ { 0, NULL },
+};
+static const struct xlat socketlayers[] = {
+#if defined(SOL_IP)
+ { SOL_IP, "SOL_IP" },
+#endif
+#if defined(SOL_ICMP)
+ { SOL_ICMP, "SOL_ICMP" },
+#endif
+#if defined(SOL_TCP)
+ { SOL_TCP, "SOL_TCP" },
+#endif
+#if defined(SOL_UDP)
+ { SOL_UDP, "SOL_UDP" },
+#endif
+#if defined(SOL_IPV6)
+ { SOL_IPV6, "SOL_IPV6" },
+#endif
+#if defined(SOL_ICMPV6)
+ { SOL_ICMPV6, "SOL_ICMPV6" },
+#endif
+#if defined(SOL_RAW)
+ { SOL_RAW, "SOL_RAW" },
+#endif
+#if defined(SOL_IPX)
+ { SOL_IPX, "SOL_IPX" },
+#endif
+#if defined(SOL_IPX)
+ { SOL_IPX, "SOL_IPX" },
+#endif
+#if defined(SOL_AX25)
+ { SOL_AX25, "SOL_AX25" },
+#endif
+#if defined(SOL_ATALK)
+ { SOL_ATALK, "SOL_ATALK" },
+#endif
+#if defined(SOL_NETROM)
+ { SOL_NETROM, "SOL_NETROM" },
+#endif
+#if defined(SOL_ROSE)
+ { SOL_ROSE, "SOL_ROSE" },
+#endif
+#if defined(SOL_DECNET)
+ { SOL_DECNET, "SOL_DECNET" },
+#endif
+#if defined(SOL_X25)
+ { SOL_X25, "SOL_X25" },
+#endif
+#if defined(SOL_PACKET)
+ { SOL_PACKET, "SOL_PACKET" },
+#endif
+#if defined(SOL_ATM)
+ { SOL_ATM, "SOL_ATM" },
+#endif
+#if defined(SOL_AAL)
+ { SOL_AAL, "SOL_AAL" },
+#endif
+#if defined(SOL_IRDA)
+ { SOL_IRDA, "SOL_IRDA" },
+#endif
+ { SOL_SOCKET, "SOL_SOCKET" }, /* Never used! */
+};
+/*** WARNING: DANGER WILL ROBINSON: NOTE "socketlayers" array above
+ falls into "protocols" array below!!!! This is intended!!! ***/
+static const struct xlat protocols[] = {
+ { IPPROTO_IP, "IPPROTO_IP" },
+ { IPPROTO_ICMP, "IPPROTO_ICMP" },
+ { IPPROTO_TCP, "IPPROTO_TCP" },
+ { IPPROTO_UDP, "IPPROTO_UDP" },
+#ifdef IPPROTO_GGP
+ { IPPROTO_GGP, "IPPROTO_GGP" },
+#endif
+#ifdef IPPROTO_EGP
+ { IPPROTO_EGP, "IPPROTO_EGP" },
+#endif
+#ifdef IPPROTO_PUP
+ { IPPROTO_PUP, "IPPROTO_PUP" },
+#endif
+#ifdef IPPROTO_IDP
+ { IPPROTO_IDP, "IPPROTO_IDP" },
+#endif
+#ifdef IPPROTO_IPV6
+ { IPPROTO_IPV6, "IPPROTO_IPV6" },
+#endif
+#ifdef IPPROTO_ICMPV6
+ { IPPROTO_ICMPV6,"IPPROTO_ICMPV6"},
+#endif
+#ifdef IPPROTO_IGMP
+ { IPPROTO_IGMP, "IPPROTO_IGMP" },
+#endif
+#ifdef IPPROTO_HELLO
+ { IPPROTO_HELLO,"IPPROTO_HELLO" },
+#endif
+#ifdef IPPROTO_ND
+ { IPPROTO_ND, "IPPROTO_ND" },
+#endif
+#ifdef IPPROTO_RAW
+ { IPPROTO_RAW, "IPPROTO_RAW" },
+#endif
+#ifdef IPPROTO_MAX
+ { IPPROTO_MAX, "IPPROTO_MAX" },
+#endif
+#ifdef IPPROTO_IPIP
+ { IPPROTO_IPIP, "IPPROTO_IPIP" },
+#endif
+ { 0, NULL },
+};
+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_CTRUNC
+ { MSG_CTRUNC, "MSG_CTRUNC" },
+#endif
+#ifdef MSG_PROXY
+ { MSG_PROXY, "MSG_PROXY" },
+#endif
+#ifdef MSG_EOR
+ { MSG_EOR, "MSG_EOR" },
+#endif
+#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_RST
+ { MSG_RST, "MSG_RST" },
+#endif
+#ifdef MSG_NOSIGNAL
+ { MSG_NOSIGNAL, "MSG_NOSIGNAL" },
+#endif
+#ifdef MSG_MORE
+ { MSG_MORE, "MSG_MORE" },
+#endif
+ { 0, NULL },
+};
+
+static const struct xlat sockoptions[] = {
+#ifdef SO_ACCEPTCONN
+ { SO_ACCEPTCONN, "SO_ACCEPTCONN" },
+#endif
+#ifdef SO_ALLRAW
+ { SO_ALLRAW, "SO_ALLRAW" },
+#endif
+#ifdef SO_ATTACH_FILTER
+ { SO_ATTACH_FILTER, "SO_ATTACH_FILTER" },
+#endif
+#ifdef SO_BINDTODEVICE
+ { SO_BINDTODEVICE, "SO_BINDTODEVICE" },
+#endif
+#ifdef SO_BROADCAST
+ { SO_BROADCAST, "SO_BROADCAST" },
+#endif
+#ifdef SO_BSDCOMPAT
+ { SO_BSDCOMPAT, "SO_BSDCOMPAT" },
+#endif
+#ifdef SO_DEBUG
+ { SO_DEBUG, "SO_DEBUG" },
+#endif
+#ifdef SO_DETACH_FILTER
+ { SO_DETACH_FILTER, "SO_DETACH_FILTER" },
+#endif
+#ifdef SO_DONTROUTE
+ { SO_DONTROUTE, "SO_DONTROUTE" },
+#endif
+#ifdef SO_ERROR
+ { SO_ERROR, "SO_ERROR" },
+#endif
+#ifdef SO_ICS
+ { SO_ICS, "SO_ICS" },
+#endif
+#ifdef SO_IMASOCKET
+ { SO_IMASOCKET, "SO_IMASOCKET" },
+#endif
+#ifdef SO_KEEPALIVE
+ { SO_KEEPALIVE, "SO_KEEPALIVE" },
+#endif
+#ifdef SO_LINGER
+ { SO_LINGER, "SO_LINGER" },
+#endif
+#ifdef SO_LISTENING
+ { SO_LISTENING, "SO_LISTENING" },
+#endif
+#ifdef SO_MGMT
+ { SO_MGMT, "SO_MGMT" },
+#endif
+#ifdef SO_NO_CHECK
+ { SO_NO_CHECK, "SO_NO_CHECK" },
+#endif
+#ifdef SO_OOBINLINE
+ { SO_OOBINLINE, "SO_OOBINLINE" },
+#endif
+#ifdef SO_ORDREL
+ { SO_ORDREL, "SO_ORDREL" },
+#endif
+#ifdef SO_PARALLELSVR
+ { SO_PARALLELSVR, "SO_PARALLELSVR" },
+#endif
+#ifdef SO_PASSCRED
+ { SO_PASSCRED, "SO_PASSCRED" },
+#endif
+#ifdef SO_PEERCRED
+ { SO_PEERCRED, "SO_PEERCRED" },
+#endif
+#ifdef SO_PEERNAME
+ { SO_PEERNAME, "SO_PEERNAME" },
+#endif
+#ifdef SO_PEERSEC
+ { SO_PEERSEC, "SO_PEERSEC" },
+#endif
+#ifdef SO_PRIORITY
+ { SO_PRIORITY, "SO_PRIORITY" },
+#endif
+#ifdef SO_PROTOTYPE
+ { SO_PROTOTYPE, "SO_PROTOTYPE" },
+#endif
+#ifdef SO_RCVBUF
+ { SO_RCVBUF, "SO_RCVBUF" },
+#endif
+#ifdef SO_RCVLOWAT
+ { SO_RCVLOWAT, "SO_RCVLOWAT" },
+#endif
+#ifdef SO_RCVTIMEO
+ { SO_RCVTIMEO, "SO_RCVTIMEO" },
+#endif
+#ifdef SO_RDWR
+ { SO_RDWR, "SO_RDWR" },
+#endif
+#ifdef SO_REUSEADDR
+ { SO_REUSEADDR, "SO_REUSEADDR" },
+#endif
+#ifdef SO_REUSEPORT
+ { SO_REUSEPORT, "SO_REUSEPORT" },
+#endif
+#ifdef SO_SECURITY_AUTHENTICATION
+ { SO_SECURITY_AUTHENTICATION,"SO_SECURITY_AUTHENTICATION"},
+#endif
+#ifdef SO_SECURITY_ENCRYPTION_NETWORK
+ { SO_SECURITY_ENCRYPTION_NETWORK,"SO_SECURITY_ENCRYPTION_NETWORK"},
+#endif
+#ifdef SO_SECURITY_ENCRYPTION_TRANSPORT
+ { SO_SECURITY_ENCRYPTION_TRANSPORT,"SO_SECURITY_ENCRYPTION_TRANSPORT"},
+#endif
+#ifdef SO_SEMA
+ { SO_SEMA, "SO_SEMA" },
+#endif
+#ifdef SO_SNDBUF
+ { SO_SNDBUF, "SO_SNDBUF" },
+#endif
+#ifdef SO_SNDLOWAT
+ { SO_SNDLOWAT, "SO_SNDLOWAT" },
+#endif
+#ifdef SO_SNDTIMEO
+ { SO_SNDTIMEO, "SO_SNDTIMEO" },
+#endif
+#ifdef SO_TIMESTAMP
+ { SO_TIMESTAMP, "SO_TIMESTAMP" },
+#endif
+#ifdef SO_TYPE
+ { SO_TYPE, "SO_TYPE" },
+#endif
+#ifdef SO_USELOOPBACK
+ { SO_USELOOPBACK, "SO_USELOOPBACK" },
+#endif
+ { 0, NULL },
+};
+
+#if !defined (SOL_IP) && defined (IPPROTO_IP)
+#define SOL_IP IPPROTO_IP
+#endif
+
+#ifdef SOL_IP
+static const struct xlat sockipoptions[] = {
+#ifdef IP_TOS
+ { IP_TOS, "IP_TOS" },
+#endif
+#ifdef IP_TTL
+ { IP_TTL, "IP_TTL" },
+#endif
+#ifdef IP_HDRINCL
+ { IP_HDRINCL, "IP_HDRINCL" },
+#endif
+#ifdef IP_OPTIONS
+ { IP_OPTIONS, "IP_OPTIONS" },
+#endif
+#ifdef IP_ROUTER_ALERT
+ { IP_ROUTER_ALERT, "IP_ROUTER_ALERT" },
+#endif
+#ifdef IP_RECVOPTIONS
+ { IP_RECVOPTIONS, "IP_RECVOPTIONS" },
+#endif
+#ifdef IP_RECVOPTS
+ { IP_RECVOPTS, "IP_RECVOPTS" },
+#endif
+#ifdef IP_RECVRETOPTS
+ { IP_RECVRETOPTS, "IP_RECVRETOPTS" },
+#endif
+#ifdef IP_RECVDSTADDR
+ { IP_RECVDSTADDR, "IP_RECVDSTADDR" },
+#endif
+#ifdef IP_RETOPTS
+ { IP_RETOPTS, "IP_RETOPTS" },
+#endif
+#ifdef IP_PKTINFO
+ { IP_PKTINFO, "IP_PKTINFO" },
+#endif
+#ifdef IP_PKTOPTIONS
+ { IP_PKTOPTIONS, "IP_PKTOPTIONS" },
+#endif
+#ifdef IP_MTU_DISCOVER
+ { IP_MTU_DISCOVER, "IP_MTU_DISCOVER" },
+#endif
+#ifdef IP_RECVERR
+ { IP_RECVERR, "IP_RECVERR" },
+#endif
+#ifdef IP_RECVTTL
+ { IP_RECVTTL, "IP_RECRECVTTL" },
+#endif
+#ifdef IP_RECVTOS
+ { IP_RECVTOS, "IP_RECRECVTOS" },
+#endif
+#ifdef IP_MTU
+ { IP_MTU, "IP_MTU" },
+#endif
+#ifdef IP_MULTICAST_IF
+ { IP_MULTICAST_IF, "IP_MULTICAST_IF" },
+#endif
+#ifdef IP_MULTICAST_TTL
+ { IP_MULTICAST_TTL, "IP_MULTICAST_TTL" },
+#endif
+#ifdef IP_MULTICAST_LOOP
+ { IP_MULTICAST_LOOP, "IP_MULTICAST_LOOP" },
+#endif
+#ifdef IP_ADD_MEMBERSHIP
+ { IP_ADD_MEMBERSHIP, "IP_ADD_MEMBERSHIP" },
+#endif
+#ifdef IP_DROP_MEMBERSHIP
+ { IP_DROP_MEMBERSHIP, "IP_DROP_MEMBERSHIP" },
+#endif
+#ifdef IP_BROADCAST_IF
+ { IP_BROADCAST_IF, "IP_BROADCAST_IF" },
+#endif
+#ifdef IP_RECVIFINDEX
+ { IP_RECVIFINDEX, "IP_RECVIFINDEX" },
+#endif
+#ifdef IP_MSFILTER
+ { IP_MSFILTER, "IP_MSFILTER" },
+#endif
+#ifdef MCAST_MSFILTER
+ { MCAST_MSFILTER, "MCAST_MSFILTER" },
+#endif
+#ifdef IP_FREEBIND
+ { IP_FREEBIND, "IP_FREEBIND" },
+#endif
+ { 0, NULL },
+};
+#endif /* SOL_IP */
+
+#ifdef SOL_IPV6
+static const struct xlat sockipv6options[] = {
+#ifdef IPV6_ADDRFORM
+ { IPV6_ADDRFORM, "IPV6_ADDRFORM" },
+#endif
+#ifdef MCAST_FILTER
+ { MCAST_FILTER, "MCAST_FILTER" },
+#endif
+#ifdef IPV6_PKTOPTIONS
+ { IPV6_PKTOPTIONS, "IPV6_PKTOPTIONS" },
+#endif
+#ifdef IPV6_MTU
+ { IPV6_MTU, "IPV6_MTU" },
+#endif
+#ifdef IPV6_V6ONLY
+ { IPV6_V6ONLY, "IPV6_V6ONLY" },
+#endif
+#ifdef IPV6_PKTINFO
+ { IPV6_PKTINFO, "IPV6_PKTINFO" },
+#endif
+#ifdef IPV6_HOPLIMIT
+ { IPV6_HOPLIMIT, "IPV6_HOPLIMIT" },
+#endif
+#ifdef IPV6_RTHDR
+ { IPV6_RTHDR, "IPV6_RTHDR" },
+#endif
+#ifdef IPV6_HOPOPTS
+ { IPV6_HOPOPTS, "IPV6_HOPOPTS" },
+#endif
+#ifdef IPV6_DSTOPTS
+ { IPV6_DSTOPTS, "IPV6_DSTOPTS" },
+#endif
+#ifdef IPV6_FLOWINFO
+ { IPV6_FLOWINFO, "IPV6_FLOWINFO" },
+#endif
+#ifdef IPV6_UNICAST_HOPS
+ { IPV6_UNICAST_HOPS, "IPV6_UNICAST_HOPS" },
+#endif
+#ifdef IPV6_MULTICAST_HOPS
+ { IPV6_MULTICAST_HOPS, "IPV6_MULTICAST_HOPS" },
+#endif
+#ifdef IPV6_MULTICAST_LOOP
+ { IPV6_MULTICAST_LOOP, "IPV6_MULTICAST_LOOP" },
+#endif
+#ifdef IPV6_MULTICAST_IF
+ { IPV6_MULTICAST_IF, "IPV6_MULTICAST_IF" },
+#endif
+#ifdef IPV6_MTU_DISCOVER
+ { IPV6_MTU_DISCOVER, "IPV6_MTU_DISCOVER" },
+#endif
+#ifdef IPV6_RECVERR
+ { IPV6_RECVERR, "IPV6_RECVERR" },
+#endif
+#ifdef IPV6_FLOWINFO_SEND
+ { IPV6_FLOWINFO_SEND, "IPV6_FLOWINFO_SEND" },
+#endif
+ { 0, NULL },
+};
+#endif /* SOL_IPV6 */
+
+#ifdef SOL_IPX
+static const struct xlat sockipxoptions[] = {
+ { IPX_TYPE, "IPX_TYPE" },
+ { 0, NULL },
+};
+#endif /* SOL_IPX */
+
+#ifdef SOL_RAW
+static const struct xlat sockrawoptions[] = {
+#if defined(ICMP_FILTER)
+ { ICMP_FILTER, "ICMP_FILTER" },
+#endif
+ { 0, NULL },
+};
+#endif /* SOL_RAW */
+
+#ifdef SOL_PACKET
+static const struct xlat sockpacketoptions[] = {
+ { PACKET_ADD_MEMBERSHIP, "PACKET_ADD_MEMBERSHIP" },
+ { PACKET_DROP_MEMBERSHIP, "PACKET_DROP_MEMBERSHIP"},
+#if defined(PACKET_RECV_OUTPUT)
+ { PACKET_RECV_OUTPUT, "PACKET_RECV_OUTPUT" },
+#endif
+#if defined(PACKET_RX_RING)
+ { PACKET_RX_RING, "PACKET_RX_RING" },
+#endif
+#if defined(PACKET_STATISTICS)
+ { PACKET_STATISTICS, "PACKET_STATISTICS" },
+#endif
+ { 0, NULL },
+};
+#endif /* SOL_PACKET */
+
+#if !defined (SOL_TCP) && defined (IPPROTO_TCP)
+#define SOL_TCP IPPROTO_TCP
+#endif
+
+#ifdef SOL_TCP
+static const struct xlat socktcpoptions[] = {
+ { TCP_NODELAY, "TCP_NODELAY" },
+ { TCP_MAXSEG, "TCP_MAXSEG" },
+#if defined(TCP_CORK)
+ { TCP_CORK, "TCP_CORK" },
+#endif
+#if defined(TCP_KEEPIDLE)
+ { TCP_KEEPIDLE, "TCP_KEEPIDLE" },
+#endif
+#if defined(TCP_KEEPINTVL)
+ { TCP_KEEPINTVL, "TCP_KEEPINTVL" },
+#endif
+#if defined(TCP_KEEPCNT)
+ { TCP_KEEPCNT, "TCP_KEEPCNT" },
+#endif
+#if defined(TCP_NKEEP)
+ { TCP_NKEEP, "TCP_NKEEP" },
+#endif
+#if defined(TCP_SYNCNT)
+ { TCP_SYNCNT, "TCP_SYNCNT" },
+#endif
+#if defined(TCP_LINGER2)
+ { TCP_LINGER2, "TCP_LINGER2" },
+#endif
+#if defined(TCP_DEFER_ACCEPT)
+ { TCP_DEFER_ACCEPT, "TCP_DEFER_ACCEPT" },
+#endif
+#if defined(TCP_WINDOW_CLAMP)
+ { TCP_WINDOW_CLAMP, "TCP_WINDOW_CLAMP" },
+#endif
+#if defined(TCP_INFO)
+ { TCP_INFO, "TCP_INFO" },
+#endif
+#if defined(TCP_QUICKACK)
+ { TCP_QUICKACK, "TCP_QUICKACK" },
+#endif
+ { 0, NULL },
+};
+#endif /* SOL_TCP */
+
+#ifdef SOL_RAW
+static const struct xlat icmpfilterflags[] = {
+#if defined(ICMP_ECHOREPLY)
+ { (1<<ICMP_ECHOREPLY), "ICMP_ECHOREPLY" },
+#endif
+#if defined(ICMP_DEST_UNREACH)
+ { (1<<ICMP_DEST_UNREACH), "ICMP_DEST_UNREACH" },
+#endif
+#if defined(ICMP_SOURCE_QUENCH)
+ { (1<<ICMP_SOURCE_QUENCH), "ICMP_SOURCE_QUENCH" },
+#endif
+#if defined(ICMP_REDIRECT)
+ { (1<<ICMP_REDIRECT), "ICMP_REDIRECT" },
+#endif
+#if defined(ICMP_ECHO)
+ { (1<<ICMP_ECHO), "ICMP_ECHO" },
+#endif
+#if defined(ICMP_TIME_EXCEEDED)
+ { (1<<ICMP_TIME_EXCEEDED), "ICMP_TIME_EXCEEDED" },
+#endif
+#if defined(ICMP_PARAMETERPROB)
+ { (1<<ICMP_PARAMETERPROB), "ICMP_PARAMETERPROB" },
+#endif
+#if defined(ICMP_TIMESTAMP)
+ { (1<<ICMP_TIMESTAMP), "ICMP_TIMESTAMP" },
+#endif
+#if defined(ICMP_TIMESTAMPREPLY)
+ { (1<<ICMP_TIMESTAMPREPLY), "ICMP_TIMESTAMPREPLY" },
+#endif
+#if defined(ICMP_INFO_REQUEST)
+ { (1<<ICMP_INFO_REQUEST), "ICMP_INFO_REQUEST" },
+#endif
+#if defined(ICMP_INFO_REPLY)
+ { (1<<ICMP_INFO_REPLY), "ICMP_INFO_REPLY" },
+#endif
+#if defined(ICMP_ADDRESS)
+ { (1<<ICMP_ADDRESS), "ICMP_ADDRESS" },
+#endif
+#if defined(ICMP_ADDRESSREPLY)
+ { (1<<ICMP_ADDRESSREPLY), "ICMP_ADDRESSREPLY" },
+#endif
+ { 0, NULL },
+};
+#endif /* SOL_RAW */
+
+#if defined(AF_PACKET) /* from e.g. linux/if_packet.h */
+static const struct xlat af_packet_types[] = {
+#if defined(PACKET_HOST)
+ { PACKET_HOST, "PACKET_HOST" },
+#endif
+#if defined(PACKET_BROADCAST)
+ { PACKET_BROADCAST, "PACKET_BROADCAST" },
+#endif
+#if defined(PACKET_MULTICAST)
+ { PACKET_MULTICAST, "PACKET_MULTICAST" },
+#endif
+#if defined(PACKET_OTHERHOST)
+ { PACKET_OTHERHOST, "PACKET_OTHERHOST" },
+#endif
+#if defined(PACKET_OUTGOING)
+ { PACKET_OUTGOING, "PACKET_OUTGOING" },
+#endif
+#if defined(PACKET_LOOPBACK)
+ { PACKET_LOOPBACK, "PACKET_LOOPBACK" },
+#endif
+#if defined(PACKET_FASTROUTE)
+ { PACKET_FASTROUTE, "PACKET_FASTROUTE" },
+#endif
+ { 0, NULL },
+};
+#endif /* defined(AF_PACKET) */
+
+
+void
+printsock(tcp, addr, addrlen)
+struct tcb *tcp;
+long addr;
+int addrlen;
+{
+ union {
+ char pad[128];
+ struct sockaddr sa;
+ struct sockaddr_in sin;
+ struct sockaddr_un sau;
+#ifdef HAVE_INET_NTOP
+ struct sockaddr_in6 sa6;
+#endif
+#if defined(LINUX) && defined(AF_IPX)
+ struct sockaddr_ipx sipx;
+#endif
+#ifdef AF_PACKET
+ struct sockaddr_ll ll;
+#endif
+#ifdef AF_NETLINK
+ struct sockaddr_nl nl;
+#endif
+ } addrbuf;
+ char string_addr[100];
+
+ if (addr == 0) {
+ tprintf("NULL");
+ return;
+ }
+ if (!verbose(tcp)) {
+ tprintf("%#lx", addr);
+ return;
+ }
+ if ((addrlen<2) || (addrlen>sizeof(addrbuf)))
+ addrlen=sizeof(addrbuf);
+
+ if (umoven(tcp, addr, addrlen, (char*)&addrbuf) < 0) {
+ tprintf("{...}");
+ return;
+ }
+
+ tprintf("{sa_family=");
+ printxval(addrfams, addrbuf.sa.sa_family, "AF_???");
+ tprintf(", ");
+
+ switch (addrbuf.sa.sa_family) {
+ case AF_UNIX:
+ if (addrlen==2) {
+ tprintf("<nil>");
+ } else if (addrbuf.sau.sun_path[0]) {
+ tprintf("path=\"%-.*s\"", addrlen-2, addrbuf.sau.sun_path);
+ } else {
+ tprintf("path=@%-.*s", addrlen-3, addrbuf.sau.sun_path+1);
+ }
+ break;
+ case AF_INET:
+ tprintf("sin_port=htons(%u), sin_addr=inet_addr(\"%s\")",
+ ntohs(addrbuf.sin.sin_port), inet_ntoa(addrbuf.sin.sin_addr));
+ break;
+#ifdef HAVE_INET_NTOP
+ case AF_INET6:
+ inet_ntop(AF_INET6, &addrbuf.sa6.sin6_addr, string_addr, sizeof(string_addr));
+ tprintf("sin6_port=htons(%u), inet_pton(AF_INET6, \"%s\", &sin6_addr), sin6_flowinfo=%u",
+ ntohs(addrbuf.sa6.sin6_port), string_addr,
+ addrbuf.sa6.sin6_flowinfo);
+#ifdef HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID
+ {
+#if defined(HAVE_IF_INDEXTONAME) && defined(IN6_IS_ADDR_LINKLOCAL) && defined(IN6_IS_ADDR_MC_LINKLOCAL)
+ int numericscope = 0;
+ if (IN6_IS_ADDR_LINKLOCAL (&addrbuf.sa6.sin6_addr)
+ || IN6_IS_ADDR_MC_LINKLOCAL (&addrbuf.sa6.sin6_addr)) {
+ char scopebuf[IFNAMSIZ + 1];
+
+ if (if_indextoname (addrbuf.sa6.sin6_scope_id, scopebuf) == NULL)
+ numericscope++;
+ else
+ tprintf(", sin6_scope_id=if_nametoindex(\"%s\")", scopebuf);
+ } else
+ numericscope++;
+
+ if (numericscope)
+#endif
+ tprintf(", sin6_scope_id=%u", addrbuf.sa6.sin6_scope_id);
+ }
+#endif
+ break;
+#endif
+#if defined(AF_IPX) && defined(linux)
+ case AF_IPX:
+ {
+ int i;
+ tprintf("sipx_port=htons(%u), ",
+ ntohs(addrbuf.sipx.sipx_port));
+ /* Yes, I know, this does not look too
+ * strace-ish, but otherwise the IPX
+ * addresses just look monstrous...
+ * Anyways, feel free if you don't like
+ * this way.. :)
+ */
+ tprintf("%08lx:", (unsigned long)ntohl(addrbuf.sipx.sipx_network));
+ for (i = 0; i<IPX_NODE_LEN; i++)
+ tprintf("%02x", addrbuf.sipx.sipx_node[i]);
+ tprintf("/[%02x]", addrbuf.sipx.sipx_type);
+ }
+ break;
+#endif /* AF_IPX && linux */
+#ifdef AF_PACKET
+ case AF_PACKET:
+ {
+ int i;
+ tprintf("proto=%#04x, if%d, pkttype=",
+ ntohs(addrbuf.ll.sll_protocol),
+ addrbuf.ll.sll_ifindex);
+ printxval(af_packet_types, addrbuf.ll.sll_pkttype, "?");
+ tprintf(", addr(%d)={%d, ",
+ addrbuf.ll.sll_halen,
+ addrbuf.ll.sll_hatype);
+ for (i=0; i<addrbuf.ll.sll_halen; i++)
+ tprintf("%02x", addrbuf.ll.sll_addr[i]);
+ }
+ break;
+
+#endif /* AF_APACKET */
+#ifdef AF_NETLINK
+ case AF_NETLINK:
+ tprintf("pid=%d, groups=%08x", addrbuf.nl.nl_pid, addrbuf.nl.nl_groups);
+ break;
+#endif /* AF_NETLINK */
+ /* AF_AX25 AF_APPLETALK AF_NETROM AF_BRIDGE AF_AAL5
+ AF_X25 AF_ROSE etc. still need to be done */
+
+ default:
+ tprintf("sa_data=");
+ printstr(tcp, (long) &((struct sockaddr *) addr)->sa_data,
+ sizeof addrbuf.sa.sa_data);
+ break;
+ }
+ tprintf("}");
+}
+
+#if HAVE_SENDMSG
+static const struct xlat scmvals[] = {
+#ifdef SCM_RIGHTS
+ { SCM_RIGHTS, "SCM_RIGHTS" },
+#endif
+#ifdef SCM_CREDENTIALS
+ { SCM_CREDENTIALS, "SCM_CREDENTIALS" },
+#endif
+ { 0, NULL }
+};
+
+static void
+printcmsghdr(tcp, addr, len)
+struct tcb *tcp;
+unsigned long addr;
+unsigned long len;
+{
+ struct cmsghdr *cmsg = len < sizeof(struct cmsghdr) ?
+ NULL : malloc(len);
+ if (cmsg == NULL || umoven(tcp, addr, len, (char *) cmsg) < 0) {
+ tprintf(", msg_control=%#lx", addr);
+ free(cmsg);
+ return;
+ }
+
+ tprintf(", {cmsg_len=%zu, cmsg_level=", cmsg->cmsg_len);
+ printxval(socketlayers, cmsg->cmsg_level, "SOL_???");
+ tprintf(", cmsg_type=");
+
+ if (cmsg->cmsg_level == SOL_SOCKET) {
+ unsigned long cmsg_len;
+
+ printxval(scmvals, cmsg->cmsg_type, "SCM_???");
+ cmsg_len = (len < cmsg->cmsg_len) ? len : cmsg->cmsg_len;
+
+ if (cmsg->cmsg_type == SCM_RIGHTS
+ && CMSG_LEN(sizeof(int)) <= cmsg_len) {
+ int *fds = (int *) CMSG_DATA (cmsg);
+ int first = 1;
+
+ tprintf(", {");
+ while ((char *) fds < ((char *) cmsg + cmsg_len)) {
+ if (!first)
+ tprintf(", ");
+ tprintf("%d", *fds++);
+ first = 0;
+ }
+ tprintf("}}");
+ free(cmsg);
+ return;
+ }
+ if (cmsg->cmsg_type == SCM_CREDENTIALS
+ && CMSG_LEN(sizeof(struct ucred)) <= cmsg_len) {
+ struct ucred *uc = (struct ucred *) CMSG_DATA (cmsg);
+
+ tprintf("{pid=%ld, uid=%ld, gid=%ld}}",
+ (long)uc->pid, (long)uc->uid, (long)uc->gid);
+ free(cmsg);
+ return;
+ }
+ }
+ free(cmsg);
+ tprintf(", ...}");
+}
+
+static void
+printmsghdr(tcp, addr)
+struct tcb *tcp;
+long addr;
+{
+ struct msghdr msg;
+
+ if (umove(tcp, addr, &msg) < 0) {
+ tprintf("%#lx", addr);
+ return;
+ }
+ tprintf("{msg_name(%d)=", msg.msg_namelen);
+ printsock(tcp, (long)msg.msg_name, msg.msg_namelen);
+
+ tprintf(", msg_iov(%lu)=", (unsigned long)msg.msg_iovlen);
+ tprint_iov(tcp, (unsigned long)msg.msg_iovlen,
+ (unsigned long)msg.msg_iov);
+
+#ifdef HAVE_STRUCT_MSGHDR_MSG_CONTROL
+ tprintf(", msg_controllen=%lu", (unsigned long)msg.msg_controllen);
+ if (msg.msg_controllen)
+ printcmsghdr(tcp, (unsigned long) msg.msg_control,
+ msg.msg_controllen);
+ tprintf(", msg_flags=");
+ printflags(msg_flags, msg.msg_flags, "MSG_???");
+#else /* !HAVE_STRUCT_MSGHDR_MSG_CONTROL */
+ tprintf("msg_accrights=%#lx, msg_accrightslen=%u",
+ (unsigned long) msg.msg_accrights, msg.msg_accrightslen);
+#endif /* !HAVE_STRUCT_MSGHDR_MSG_CONTROL */
+ tprintf("}");
+}
+
+#endif /* HAVE_SENDMSG */
+
+int
+sys_socket(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printxval(domains, tcp->u_arg[0], "PF_???");
+ tprintf(", ");
+ printxval(socktypes, tcp->u_arg[1], "SOCK_???");
+ tprintf(", ");
+ switch (tcp->u_arg[0]) {
+ case PF_INET:
+#ifdef PF_INET6
+ case PF_INET6:
+#endif
+ printxval(protocols, tcp->u_arg[2], "IPPROTO_???");
+ break;
+#ifdef PF_IPX
+ case PF_IPX:
+ /* BTW: I don't believe this.. */
+ tprintf("[");
+ printxval(domains, tcp->u_arg[2], "PF_???");
+ tprintf("]");
+ break;
+#endif /* PF_IPX */
+ default:
+ tprintf("%lu", tcp->u_arg[2]);
+ break;
+ }
+ }
+ return 0;
+}
+
+int
+sys_so_socket(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ /* not sure really what these args are... but this
+ * is how truss prints it
+ */
+ tprintf("%ld, %ld, %ld, ",
+ tcp->u_arg[0], tcp->u_arg[1], tcp->u_arg[2]);
+ printpath(tcp, tcp->u_arg[3]);
+ tprintf(", %ld", tcp->u_arg[4]);
+ }
+ return 0;
+}
+
+int
+sys_so_socketpair(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ /* not sure what this arg is */
+ tprintf("0x%lx", tcp->u_arg[0]);
+ }
+ return 0;
+}
+
+int
+sys_bind(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, ", tcp->u_arg[0]);
+ printsock(tcp, tcp->u_arg[1], tcp->u_arg[2]);
+ tprintf(", %lu", tcp->u_arg[2]);
+ }
+ return 0;
+}
+
+int
+sys_connect(tcp)
+struct tcb *tcp;
+{
+ return sys_bind(tcp);
+}
+
+int
+sys_listen(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, %lu", tcp->u_arg[0], tcp->u_arg[1]);
+ }
+ return 0;
+}
+
+int
+sys_accept(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, ", tcp->u_arg[0]);
+ } else if (!tcp->u_arg[2])
+ tprintf("%#lx, NULL", tcp->u_arg[1]);
+ else {
+ if (tcp->u_arg[1] == 0 || syserror(tcp)) {
+ tprintf("%#lx", tcp->u_arg[1]);
+ } else {
+ printsock(tcp, tcp->u_arg[1], tcp->u_arg[2]);
+ }
+ tprintf(", ");
+ printnum(tcp, tcp->u_arg[2], "%lu");
+ }
+ return 0;
+}
+
+int
+sys_send(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, ", tcp->u_arg[0]);
+ printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
+ tprintf(", %lu, ", tcp->u_arg[2]);
+ /* flags */
+ printflags(msg_flags, tcp->u_arg[3], "MSG_???");
+ }
+ return 0;
+}
+
+int
+sys_sendto(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, ", tcp->u_arg[0]);
+ printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
+ tprintf(", %lu, ", tcp->u_arg[2]);
+ /* flags */
+ printflags(msg_flags, tcp->u_arg[3], "MSG_???");
+ /* to address */
+ tprintf(", ");
+ printsock(tcp, tcp->u_arg[4], tcp->u_arg[5]);
+ /* to length */
+ tprintf(", %lu", tcp->u_arg[5]);
+ }
+ return 0;
+}
+
+#ifdef HAVE_SENDMSG
+
+int
+sys_sendmsg(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, ", tcp->u_arg[0]);
+ printmsghdr(tcp, tcp->u_arg[1]);
+ /* flags */
+ tprintf(", ");
+ printflags(msg_flags, tcp->u_arg[2], "MSG_???");
+ }
+ return 0;
+}
+
+#endif /* HAVE_SENDMSG */
+
+int
+sys_recv(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, ", tcp->u_arg[0]);
+ } else {
+ if (syserror(tcp))
+ tprintf("%#lx", tcp->u_arg[1]);
+ else
+ printstr(tcp, tcp->u_arg[1], tcp->u_rval);
+
+ tprintf(", %lu, ", tcp->u_arg[2]);
+ printflags(msg_flags, tcp->u_arg[3], "MSG_???");
+ }
+ return 0;
+}
+
+int
+sys_recvfrom(tcp)
+struct tcb *tcp;
+{
+ int fromlen;
+
+ if (entering(tcp)) {
+ tprintf("%ld, ", tcp->u_arg[0]);
+ } else {
+ if (syserror(tcp)) {
+ tprintf("%#lx, %lu, %lu, %#lx, %#lx",
+ tcp->u_arg[1], tcp->u_arg[2], tcp->u_arg[3],
+ tcp->u_arg[4], tcp->u_arg[5]);
+ return 0;
+ }
+ /* buf */
+ printstr(tcp, tcp->u_arg[1], tcp->u_rval);
+ /* len */
+ tprintf(", %lu, ", tcp->u_arg[2]);
+ /* flags */
+ printflags(msg_flags, tcp->u_arg[3], "MSG_???");
+ /* from address, len */
+ if (!tcp->u_arg[4] || !tcp->u_arg[5]) {
+ if (tcp->u_arg[4] == 0)
+ tprintf(", NULL");
+ else
+ tprintf(", %#lx", tcp->u_arg[4]);
+ if (tcp->u_arg[5] == 0)
+ tprintf(", NULL");
+ else
+ tprintf(", %#lx", tcp->u_arg[5]);
+ return 0;
+ }
+ if (umove(tcp, tcp->u_arg[5], &fromlen) < 0) {
+ tprintf(", {...}, [?]");
+ return 0;
+ }
+ tprintf(", ");
+ printsock(tcp, tcp->u_arg[4], tcp->u_arg[5]);
+ /* from length */
+ tprintf(", [%u]", fromlen);
+ }
+ return 0;
+}
+
+#ifdef HAVE_SENDMSG
+
+int
+sys_recvmsg(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, ", tcp->u_arg[0]);
+ } else {
+ if (syserror(tcp) || !verbose(tcp))
+ tprintf("%#lx", tcp->u_arg[1]);
+ else
+ printmsghdr(tcp, tcp->u_arg[1]);
+ /* flags */
+ tprintf(", ");
+ printflags(msg_flags, tcp->u_arg[2], "MSG_???");
+ }
+ return 0;
+}
+
+#endif /* HAVE_SENDMSG */
+
+int
+sys_shutdown(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, %ld", tcp->u_arg[0], tcp->u_arg[1]);
+ switch (tcp->u_arg[1]) {
+ case 0:
+ tprintf("%s", " /* receive */");
+ break;
+ case 1:
+ tprintf("%s", " /* send */");
+ break;
+ case 2:
+ tprintf("%s", " /* send and receive */");
+ break;
+ }
+ }
+ return 0;
+}
+
+int
+sys_getsockname(tcp)
+struct tcb *tcp;
+{
+ return sys_accept(tcp);
+}
+
+int
+sys_getpeername(tcp)
+struct tcb *tcp;
+{
+ return sys_accept(tcp);
+}
+
+int
+sys_pipe(tcp)
+struct tcb *tcp;
+{
+
+#if defined(LINUX) && !defined(SPARC) && !defined(SPARC64) && !defined(SH) && !defined(IA64)
+ int fds[2];
+
+ if (exiting(tcp)) {
+ if (syserror(tcp)) {
+ tprintf("%#lx", tcp->u_arg[0]);
+ return 0;
+ }
+ if (umoven(tcp, tcp->u_arg[0], sizeof fds, (char *) fds) < 0)
+ tprintf("[...]");
+ else
+ tprintf("[%u, %u]", fds[0], fds[1]);
+ }
+#elif defined(SPARC) || defined(SPARC64) || defined(SH) || defined(SVR4) || defined(FREEBSD) || defined(IA64)
+ if (exiting(tcp))
+ tprintf("[%lu, %lu]", tcp->u_rval, getrval2(tcp));
+#endif
+ return 0;
+}
+
+int
+sys_socketpair(tcp)
+struct tcb *tcp;
+{
+#ifdef LINUX
+ int fds[2];
+#endif
+
+ if (entering(tcp)) {
+ printxval(domains, tcp->u_arg[0], "PF_???");
+ tprintf(", ");
+ printxval(socktypes, tcp->u_arg[1], "SOCK_???");
+ tprintf(", ");
+ switch (tcp->u_arg[0]) {
+ case PF_INET:
+ printxval(protocols, tcp->u_arg[2], "IPPROTO_???");
+ break;
+#ifdef PF_IPX
+ case PF_IPX:
+ /* BTW: I don't believe this.. */
+ tprintf("[");
+ printxval(domains, tcp->u_arg[2], "PF_???");
+ tprintf("]");
+ break;
+#endif /* PF_IPX */
+ default:
+ tprintf("%lu", tcp->u_arg[2]);
+ break;
+ }
+ } else {
+ if (syserror(tcp)) {
+ tprintf(", %#lx", tcp->u_arg[3]);
+ return 0;
+ }
+#ifdef LINUX
+ if (umoven(tcp, tcp->u_arg[3], sizeof fds, (char *) fds) < 0)
+ tprintf(", [...]");
+ else
+ tprintf(", [%u, %u]", fds[0], fds[1]);
+#endif /* LINUX */
+#if defined(SUNOS4) || defined(SVR4) || defined(FREEBSD)
+ tprintf(", [%lu, %lu]", tcp->u_rval, getrval2(tcp));
+#endif /* SUNOS4 || SVR4 || FREEBSD */
+ }
+ return 0;
+}
+
+int
+sys_getsockopt(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, ", tcp->u_arg[0]);
+ printxval(socketlayers, tcp->u_arg[1], "SOL_???");
+ tprintf (", ");
+ switch (tcp->u_arg[1]) {
+ case SOL_SOCKET:
+ printxval(sockoptions, tcp->u_arg[2], "SO_???");
+ break;
+#ifdef SOL_IP
+ case SOL_IP:
+ printxval(sockipoptions, tcp->u_arg[2], "IP_???");
+ break;
+#endif
+#ifdef SOL_IPV6
+ case SOL_IPV6:
+ printxval(sockipv6options, tcp->u_arg[2], "IPV6_???");
+ break;
+#endif
+#ifdef SOL_IPX
+ case SOL_IPX:
+ printxval(sockipxoptions, tcp->u_arg[2], "IPX_???");
+ break;
+#endif
+#ifdef SOL_PACKET
+ case SOL_PACKET:
+ printxval(sockpacketoptions, tcp->u_arg[2], "PACKET_???");
+ break;
+#endif
+#ifdef SOL_TCP
+ case SOL_TCP:
+ printxval(socktcpoptions, tcp->u_arg[2], "TCP_???");
+ break;
+#endif
+
+ /* SOL_AX25 SOL_ROSE SOL_ATALK SOL_NETROM SOL_UDP SOL_DECNET SOL_X25
+ * etc. still need work */
+ default:
+ tprintf("%lu", tcp->u_arg[2]);
+ break;
+ }
+ } else {
+ int len;
+ if (syserror(tcp) || umove (tcp, tcp->u_arg[4], &len) < 0) {
+ tprintf(", %#lx, %#lx",
+ tcp->u_arg[3], tcp->u_arg[4]);
+ return 0;
+ }
+
+ switch (tcp->u_arg[1]) {
+ case SOL_SOCKET:
+ switch (tcp->u_arg[2]) {
+#ifdef SO_LINGER
+ case SO_LINGER:
+ if (len == sizeof (struct linger)) {
+ struct linger linger;
+ if (umove (tcp,
+ tcp->u_arg[3],
+ &linger) < 0)
+ break;
+ tprintf(", {onoff=%d, linger=%d}, "
+ "[%d]",
+ linger.l_onoff,
+ linger.l_linger,
+ len);
+ return 0;
+ }
+ break;
+#endif
+ }
+ break;
+ }
+
+ tprintf (", ");
+ if (len == sizeof (int)) {
+ printnum(tcp, tcp->u_arg[3], "%ld");
+ }
+ else {
+ printstr (tcp, tcp->u_arg[3], len);
+ }
+ tprintf(", [%d]", len);
+ }
+ return 0;
+}
+
+#if defined(ICMP_FILTER)
+static void printicmpfilter(tcp, addr)
+struct tcb *tcp;
+long addr;
+{
+ struct icmp_filter filter;
+
+ if (!addr) {
+ tprintf("NULL");
+ return;
+ }
+ if (syserror(tcp) || !verbose(tcp)) {
+ tprintf("%#lx", addr);
+ return;
+ }
+ if (umove(tcp, addr, &filter) < 0) {
+ tprintf("{...}");
+ return;
+ }
+
+ tprintf("~(");
+ printflags(icmpfilterflags, ~filter.data, "ICMP_???");
+ tprintf(")");
+}
+#endif /* ICMP_FILTER */
+
+static int
+printsockopt (tcp, level, name, addr, len)
+struct tcb *tcp;
+int level;
+int name;
+long addr;
+int len;
+{
+ printxval(socketlayers, level, "SOL_??");
+ tprintf (", ");
+ switch (level) {
+ case SOL_SOCKET:
+ printxval(sockoptions, name, "SO_???");
+ switch (name) {
+#if defined(SO_LINGER)
+ case SO_LINGER:
+ if (len == sizeof (struct linger)) {
+ struct linger linger;
+ if (umove (tcp, addr, &linger) < 0)
+ break;
+ tprintf(", {onoff=%d, linger=%d}",
+ linger.l_onoff,
+ linger.l_linger);
+ return 0;
+ }
+ break;
+#endif
+ }
+ break;
+#ifdef SOL_IP
+ case SOL_IP:
+ printxval(sockipoptions, name, "IP_???");
+ break;
+#endif
+#ifdef SOL_IPV6
+ case SOL_IPV6:
+ printxval(sockipv6options, name, "IPV6_???");
+ break;
+#endif
+#ifdef SOL_IPX
+ case SOL_IPX:
+ printxval(sockipxoptions, name, "IPX_???");
+ break;
+#endif
+#ifdef SOL_PACKET
+ case SOL_PACKET:
+ printxval(sockpacketoptions, name, "PACKET_???");
+ /* TODO: decode packate_mreq for PACKET_*_MEMBERSHIP */
+ break;
+#endif
+#ifdef SOL_TCP
+ case SOL_TCP:
+ printxval(socktcpoptions, name, "TCP_???");
+ break;
+#endif
+#ifdef SOL_RAW
+ case SOL_RAW:
+ printxval(sockrawoptions, name, "RAW_???");
+ switch (name) {
+#if defined(ICMP_FILTER)
+ case ICMP_FILTER:
+ tprintf(", ");
+ printicmpfilter(tcp, addr);
+ return 0;
+#endif
+ }
+ break;
+#endif
+
+ /* SOL_AX25 SOL_ATALK SOL_NETROM SOL_UDP SOL_DECNET SOL_X25
+ * etc. still need work */
+
+ default:
+ tprintf("%u", name);
+ }
+
+ /* default arg printing */
+
+ tprintf (", ");
+
+ if (len == sizeof (int)) {
+ printnum(tcp, addr, "%ld");
+ }
+ else {
+ printstr (tcp, addr, len);
+ }
+ return 0;
+}
+
+
+#ifdef HAVE_STRUCT_OPTHDR
+
+void
+print_sock_optmgmt (tcp, addr, len)
+struct tcb *tcp;
+long addr;
+int len;
+{
+ int c = 0;
+ struct opthdr hdr;
+
+ while (len >= (int) sizeof hdr) {
+ if (umove(tcp, addr, &hdr) < 0) break;
+ if (c++) {
+ tprintf (", ");
+ }
+ else if (len > hdr.len + sizeof hdr) {
+ tprintf ("[");
+ }
+ tprintf ("{");
+ addr += sizeof hdr;
+ len -= sizeof hdr;
+ printsockopt (tcp, hdr.level, hdr.name, addr, hdr.len);
+ if (hdr.len > 0) {
+ addr += hdr.len;
+ len -= hdr.len;
+ }
+ tprintf ("}");
+ }
+ if (len > 0) {
+ if (c++) tprintf (", ");
+ printstr (tcp, addr, len);
+ }
+ if (c > 1) tprintf ("]");
+}
+
+#endif
+
+int
+sys_setsockopt(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, ", tcp->u_arg[0]);
+ printsockopt (tcp, tcp->u_arg[1], tcp->u_arg[2],
+ tcp->u_arg[3], tcp->u_arg[4]);
+ tprintf(", %lu", tcp->u_arg[4]);
+ }
+ return 0;
+}
+
+#if UNIXWARE >= 7
+
+static const struct xlat sock_version[] = {
+ { __NETLIB_UW211_SVR4, "UW211_SVR4" },
+ { __NETLIB_UW211_XPG4, "UW211_XPG4" },
+ { __NETLIB_GEMINI_SVR4, "GEMINI_SVR4" },
+ { __NETLIB_GEMINI_XPG4, "GEMINI_XPG4" },
+ { __NETLIB_FP1_SVR4, "FP1_SVR4" },
+ { __NETLIB_FP1_XPG4, "FP1_XPG4" },
+ { 0, NULL },
+};
+
+
+int
+netlib_call(tcp, func)
+struct tcb *tcp;
+int (*func) ();
+{
+ if (entering(tcp)) {
+ int i;
+ printxval (sock_version, tcp->u_arg[0], "__NETLIB_???");
+ tprintf(", ");
+ --tcp->u_nargs;
+ for (i = 0; i < tcp->u_nargs; i++)
+ tcp->u_arg[i] = tcp->u_arg[i + 1];
+ return func (tcp);
+
+ }
+
+ return func (tcp);
+}
+
+int
+sys_xsocket(tcp)
+struct tcb *tcp;
+{
+ return netlib_call (tcp, sys_socket);
+}
+
+int
+sys_xsocketpair(tcp)
+struct tcb *tcp;
+{
+ return netlib_call (tcp, sys_socketpair);
+}
+
+int
+sys_xbind(tcp)
+struct tcb *tcp;
+{
+ return netlib_call (tcp, sys_bind);
+}
+
+int
+sys_xconnect(tcp)
+struct tcb *tcp;
+{
+ return netlib_call (tcp, sys_connect);
+}
+
+int
+sys_xlisten(tcp)
+struct tcb *tcp;
+{
+ return netlib_call (tcp, sys_listen);
+}
+
+int
+sys_xaccept(tcp)
+struct tcb *tcp;
+{
+ return netlib_call (tcp, sys_accept);
+}
+
+int
+sys_xsendmsg(tcp)
+struct tcb *tcp;
+{
+ return netlib_call (tcp, sys_sendmsg);
+}
+
+int
+sys_xrecvmsg(tcp)
+struct tcb *tcp;
+{
+ return netlib_call (tcp, sys_recvmsg);
+}
+
+int
+sys_xgetsockaddr(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printxval (sock_version, tcp->u_arg[0], "__NETLIB_???");
+ tprintf(", ");
+ if (tcp->u_arg[1] == 0) {
+ tprintf ("LOCALNAME, ");
+ }
+ else if (tcp->u_arg[1] == 1) {
+ tprintf ("REMOTENAME, ");
+ }
+ else {
+ tprintf ("%ld, ", tcp->u_arg [1]);
+ }
+ tprintf ("%ld, ", tcp->u_arg [2]);
+ }
+ else {
+ if (tcp->u_arg[3] == 0 || syserror(tcp)) {
+ tprintf("%#lx", tcp->u_arg[3]);
+ } else {
+ printsock(tcp, tcp->u_arg[3], tcp->u_arg[4]);
+ }
+ tprintf(", ");
+ printnum(tcp, tcp->u_arg[4], "%lu");
+ }
+
+ return 0;
+
+}
+
+#if 0
+
+int
+sys_xsetsockaddr(tcp)
+struct tcb *tcp;
+{
+ return netlib_call (tcp, sys_setsockaddr);
+}
+
+#endif
+
+int
+sys_xgetsockopt(tcp)
+struct tcb *tcp;
+{
+ return netlib_call (tcp, sys_getsockopt);
+}
+
+int
+sys_xsetsockopt(tcp)
+struct tcb *tcp;
+{
+ return netlib_call (tcp, sys_setsockopt);
+}
+
+int
+sys_xshutdown(tcp)
+struct tcb *tcp;
+{
+ return netlib_call (tcp, sys_shutdown);
+}
+
+#endif
diff --git a/proc.c b/proc.c
new file mode 100644
index 0000000..f7c5636
--- /dev/null
+++ b/proc.c
@@ -0,0 +1,260 @@
+/*
+ * Copyright (c) 1993, 1994, 1995 Rick Sladkey <jrs@world.std.com>
+ * 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.
+ *
+ * $Id: proc.c,v 1.7 2005/06/01 19:02:36 roland Exp $
+ */
+
+#include "defs.h"
+
+#ifdef SVR4
+#ifndef HAVE_MP_PROCFS
+
+static const struct xlat proc_status_flags[] = {
+ { PR_STOPPED, "PR_STOPPED" },
+ { PR_ISTOP, "PR_ISTOP" },
+ { PR_DSTOP, "PR_DSTOP" },
+ { PR_ASLEEP, "PR_ASLEEP" },
+ { PR_FORK, "PR_FORK" },
+ { PR_RLC, "PR_RLC" },
+ { PR_PTRACE, "PR_PTRACE" },
+ { PR_PCINVAL, "PR_PCINVAL" },
+ { PR_ISSYS, "PR_ISSYS" },
+#ifdef PR_STEP
+ { PR_STEP, "PR_STEP" },
+#endif
+#ifdef PR_KLC
+ { PR_KLC, "PR_KLC" },
+#endif
+#ifdef PR_ASYNC
+ { PR_ASYNC, "PR_ASYNC" },
+#endif
+#ifdef PR_PCOMPAT
+ { PR_PCOMPAT, "PR_PCOMPAT" },
+#endif
+ { 0, NULL },
+};
+
+static const struct xlat proc_status_why[] = {
+ { PR_REQUESTED, "PR_REQUESTED" },
+ { PR_SIGNALLED, "PR_SIGNALLED" },
+ { PR_SYSENTRY, "PR_SYSENTRY" },
+ { PR_SYSEXIT, "PR_SYSEXIT" },
+ { PR_JOBCONTROL,"PR_JOBCONTROL" },
+ { PR_FAULTED, "PR_FAULTED" },
+#ifdef PR_SUSPENDED
+ { PR_SUSPENDED, "PR_SUSPENDED" },
+#endif
+#ifdef PR_CHECKPOINT
+ { PR_CHECKPOINT,"PR_CHECKPOINT" },
+#endif
+ { 0, NULL },
+};
+
+static const struct xlat proc_run_flags[] = {
+ { PRCSIG, "PRCSIG" },
+ { PRCFAULT, "PRCFAULT" },
+ { PRSTRACE, "PRSTRACE" },
+ { PRSHOLD, "PRSHOLD" },
+ { PRSFAULT, "PRSFAULT" },
+ { PRSVADDR, "PRSVADDR" },
+ { PRSTEP, "PRSTEP" },
+ { PRSABORT, "PRSABORT" },
+ { PRSTOP, "PRSTOP" },
+ { 0, NULL },
+};
+
+int
+proc_ioctl(tcp, code, arg)
+struct tcb *tcp;
+int code, arg;
+{
+ int val;
+ prstatus_t status;
+ prrun_t run;
+
+ if (entering(tcp))
+ return 0;
+
+ switch (code) {
+ case PIOCSTATUS:
+ case PIOCSTOP:
+ case PIOCWSTOP:
+ if (arg == 0)
+ tprintf(", NULL");
+ else if (syserror(tcp))
+ tprintf(", %#x", arg);
+ else if (umove(tcp, arg, &status) < 0)
+ tprintf(", {...}");
+ else {
+ tprintf(", {pr_flags=");
+ printflags(proc_status_flags, status.pr_flags, "PR_???");
+ if (status.pr_why) {
+ tprintf(", pr_why=");
+ printxval(proc_status_why, status.pr_why,
+ "PR_???");
+ }
+ switch (status.pr_why) {
+ case PR_SIGNALLED:
+ case PR_JOBCONTROL:
+ tprintf(", pr_what=");
+ printsignal(status.pr_what);
+ break;
+ case PR_FAULTED:
+ tprintf(", pr_what=%d", status.pr_what);
+ break;
+ case PR_SYSENTRY:
+ case PR_SYSEXIT:
+ tprintf(", pr_what=SYS_%s",
+ sysent[status.pr_what].sys_name);
+ break;
+ }
+ tprintf(", ...}");
+ }
+ return 1;
+ case PIOCRUN:
+ if (arg == 0)
+ tprintf(", NULL");
+ else if (umove(tcp, arg, &run) < 0)
+ tprintf(", {...}");
+ else {
+ tprintf(", {pr_flags=");
+ printflags(proc_run_flags, run.pr_flags, "PR???");
+ tprintf(", ...}");
+ }
+ return 1;
+#ifdef PIOCSET
+ case PIOCSET:
+ case PIOCRESET:
+ if (umove(tcp, arg, &val) < 0)
+ tprintf(", [?]");
+ else {
+ tprintf(", [");
+ printflags(proc_status_flags, val, "PR_???");
+ tprintf("]");
+ }
+ return 1;
+#endif /* PIOCSET */
+ case PIOCKILL:
+ case PIOCUNKILL:
+ /* takes a pointer to a signal */
+ if (umove(tcp, arg, &val) < 0)
+ tprintf(", [?]");
+ else {
+ tprintf(", [");
+ printsignal(val);
+ tprintf("]");
+ }
+ return 1;
+ case PIOCSFORK:
+ case PIOCRFORK:
+ case PIOCSRLC:
+ case PIOCRRLC:
+ /* doesn't take an arg */
+ return 1;
+ default:
+ /* ad naseum */
+ return 0;
+ }
+}
+
+#endif /* HAVE_MP_PROCFS */
+#endif /* SVR4 */
+
+#ifdef FREEBSD
+#include <sys/pioctl.h>
+
+static const struct xlat proc_status_why[] = {
+ { S_EXEC, "S_EXEC" },
+ { S_SIG, "S_SIG" },
+ { S_SCE, "S_SCE" },
+ { S_SCX, "S_SCX" },
+ { S_CORE, "S_CORE" },
+ { S_EXIT, "S_EXIT" },
+ { 0, NULL }
+};
+
+static const struct xlat proc_status_flags[] = {
+ { PF_LINGER, "PF_LINGER" },
+ { PF_ISUGID, "PF_ISUGID" },
+ { 0, NULL }
+};
+
+int
+proc_ioctl(tcp, code, arg)
+struct tcb *tcp;
+int code, arg;
+{
+ int val;
+ struct procfs_status status;
+
+ if (entering(tcp))
+ return 0;
+
+ switch (code) {
+ case PIOCSTATUS:
+ case PIOCWAIT:
+ if (arg == 0)
+ tprintf(", NULL");
+ else if (syserror(tcp))
+ tprintf(", %x", arg);
+ else if (umove(tcp, arg, &status) < 0)
+ tprintf(", {...}");
+ else {
+ tprintf(", {state=%d, flags=", status.state);
+ printflags(proc_status_flags, status.flags, "PF_???");
+ tprintf(", events=");
+ printflags(proc_status_why, status.events, "S_???");
+ tprintf(", why=");
+ printxval(proc_status_why, status.why, "S_???");
+ tprintf(", val=%lu}", status.val);
+ }
+ return 1;
+ case PIOCBIS:
+ tprintf(", ");
+ printflags(proc_status_why, arg, "S_???");
+ return 1;
+ return 1;
+ case PIOCSFL:
+ tprintf(", ");
+ printflags(proc_status_flags, arg, "PF_???");
+ return 1;
+ case PIOCGFL:
+ if (syserror(tcp))
+ tprintf(", %#x", arg);
+ else if (umove(tcp, arg, &val) < 0)
+ tprintf(", {...}");
+ else {
+ tprintf(", [");
+ printflags(proc_status_flags, val, "PF_???");
+ tprintf("]");
+ }
+ return 1;
+ default:
+ /* ad naseum */
+ return 0;
+ }
+}
+#endif
diff --git a/process.c b/process.c
new file mode 100644
index 0000000..edbc8d5
--- /dev/null
+++ b/process.c
@@ -0,0 +1,3253 @@
+/*
+ * Copyright (c) 1991, 1992 Paul Kranenburg <pk@cs.few.eur.nl>
+ * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
+ * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
+ * Copyright (c) 1996-1999 Wichert Akkerman <wichert@cistron.nl>
+ * Copyright (c) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ * Linux for s390 port by D.J. Barrow
+ * <barrow_dj@mail.yahoo.com,djbarrow@de.ibm.com>
+ * Copyright (c) 2000 PocketPenguins Inc. Linux for Hitachi SuperH
+ * port by Greg Banks <gbanks@pocketpenguins.com>
+
+ *
+ * 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.
+ *
+ * $Id: process.c,v 1.97 2005/06/08 20:45:28 roland Exp $
+ */
+
+#include "defs.h"
+
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <sys/time.h>
+#include <sys/wait.h>
+#include <sys/resource.h>
+#include <sys/utsname.h>
+#ifdef HAVE_ANDROID_OS
+#include <asm/user.h>
+#else
+#include <sys/user.h>
+#endif
+#include <sys/syscall.h>
+#include <signal.h>
+#ifdef SUNOS4
+#include <machine/reg.h>
+#endif /* SUNOS4 */
+
+#ifdef FREEBSD
+#include <sys/ptrace.h>
+#endif
+
+#ifdef HAVE_ANDROID_OS
+/* for struct sched_param */
+#define sched_priority __sched_priority
+#endif
+
+#if HAVE_ASM_REG_H
+#if defined (SPARC) || defined (SPARC64)
+# define fpq kernel_fpq
+# define fq kernel_fq
+# define fpu kernel_fpu
+#endif /* SPARC || SPARC64 */
+#include <asm/reg.h>
+#if defined (SPARC) || defined (SPARC64)
+# undef fpq
+# undef fq
+# undef fpu
+#endif /* SPARC || SPARC64 */
+#endif /* HAVE_ASM_REG_H */
+
+#ifdef HAVE_SYS_REG_H
+# include <sys/reg.h>
+#ifndef PTRACE_PEEKUSR
+# define PTRACE_PEEKUSR PTRACE_PEEKUSER
+#endif
+#ifndef PTRACE_POKEUSR
+# define PTRACE_POKEUSR PTRACE_POKEUSER
+#endif
+#endif
+
+#ifdef HAVE_LINUX_PTRACE_H
+#undef PTRACE_SYSCALL
+# ifdef HAVE_STRUCT_IA64_FPREG
+# define ia64_fpreg XXX_ia64_fpreg
+# endif
+# ifdef HAVE_STRUCT_PT_ALL_USER_REGS
+# define pt_all_user_regs XXX_pt_all_user_regs
+# endif
+#include <linux/ptrace.h>
+# undef ia64_fpreg
+# undef pt_all_user_regs
+#endif
+
+#if defined (LINUX) && defined (SPARC64)
+# define r_pc r_tpc
+# undef PTRACE_GETREGS
+# define PTRACE_GETREGS PTRACE_GETREGS64
+# undef PTRACE_SETREGS
+# define PTRACE_SETREGS PTRACE_SETREGS64
+#endif /* LINUX && SPARC64 */
+
+#ifdef HAVE_LINUX_FUTEX_H
+#include <linux/futex.h>
+#endif
+#if defined LINUX
+# ifndef FUTEX_WAIT
+# define FUTEX_WAIT 0
+# endif
+# ifndef FUTEX_WAKE
+# define FUTEX_WAKE 1
+# endif
+# ifndef FUTEX_FD
+# define FUTEX_FD 2
+# endif
+# ifndef FUTEX_REQUEUE
+# define FUTEX_REQUEUE 3
+# endif
+#endif
+
+#ifdef LINUX
+#include <sched.h>
+#include <asm/posix_types.h>
+#undef GETGROUPS_T
+#define GETGROUPS_T __kernel_gid_t
+#undef GETGROUPS32_T
+#define GETGROUPS32_T __kernel_gid32_t
+#endif /* LINUX */
+
+#if defined(LINUX) && defined(IA64)
+# include <asm/ptrace_offsets.h>
+# include <asm/rse.h>
+#endif
+
+#ifdef HAVE_PRCTL
+#include <sys/prctl.h>
+#endif
+
+#ifndef WCOREDUMP
+#define WCOREDUMP(status) ((status) & 0200)
+#endif
+
+/* WTA: this was `&& !defined(LINUXSPARC)', this seems unneeded though? */
+#if defined(HAVE_PRCTL)
+static const struct xlat prctl_options[] = {
+#ifdef PR_MAXPROCS
+ { PR_MAXPROCS, "PR_MAXPROCS" },
+#endif
+#ifdef PR_ISBLOCKED
+ { PR_ISBLOCKED, "PR_ISBLOCKED" },
+#endif
+#ifdef PR_SETSTACKSIZE
+ { PR_SETSTACKSIZE, "PR_SETSTACKSIZE" },
+#endif
+#ifdef PR_GETSTACKSIZE
+ { PR_GETSTACKSIZE, "PR_GETSTACKSIZE" },
+#endif
+#ifdef PR_MAXPPROCS
+ { PR_MAXPPROCS, "PR_MAXPPROCS" },
+#endif
+#ifdef PR_UNBLKONEXEC
+ { PR_UNBLKONEXEC, "PR_UNBLKONEXEC" },
+#endif
+#ifdef PR_ATOMICSIM
+ { PR_ATOMICSIM, "PR_ATOMICSIM" },
+#endif
+#ifdef PR_SETEXITSIG
+ { PR_SETEXITSIG, "PR_SETEXITSIG" },
+#endif
+#ifdef PR_RESIDENT
+ { PR_RESIDENT, "PR_RESIDENT" },
+#endif
+#ifdef PR_ATTACHADDR
+ { PR_ATTACHADDR, "PR_ATTACHADDR" },
+#endif
+#ifdef PR_DETACHADDR
+ { PR_DETACHADDR, "PR_DETACHADDR" },
+#endif
+#ifdef PR_TERMCHILD
+ { PR_TERMCHILD, "PR_TERMCHILD" },
+#endif
+#ifdef PR_GETSHMASK
+ { PR_GETSHMASK, "PR_GETSHMASK" },
+#endif
+#ifdef PR_GETNSHARE
+ { PR_GETNSHARE, "PR_GETNSHARE" },
+#endif
+#if defined(PR_SET_PDEATHSIG)
+ { PR_SET_PDEATHSIG, "PR_SET_PDEATHSIG" },
+#endif
+#ifdef PR_COREPID
+ { PR_COREPID, "PR_COREPID" },
+#endif
+#ifdef PR_ATTACHADDRPERM
+ { PR_ATTACHADDRPERM, "PR_ATTACHADDRPERM" },
+#endif
+#ifdef PR_PTHREADEXIT
+ { PR_PTHREADEXIT, "PR_PTHREADEXIT" },
+#endif
+#ifdef PR_SET_PDEATHSIG
+ { PR_SET_PDEATHSIG, "PR_SET_PDEATHSIG" },
+#endif
+#ifdef PR_GET_PDEATHSIG
+ { PR_GET_PDEATHSIG, "PR_GET_PDEATHSIG" },
+#endif
+#ifdef PR_GET_UNALIGN
+ { PR_GET_UNALIGN, "PR_GET_UNALIGN" },
+#endif
+#ifdef PR_SET_UNALIGN
+ { PR_SET_UNALIGN, "PR_SET_UNALIGN" },
+#endif
+#ifdef PR_GET_KEEPCAPS
+ { PR_GET_KEEPCAPS, "PR_GET_KEEP_CAPS" },
+#endif
+#ifdef PR_SET_KEEPCAPS
+ { PR_SET_KEEPCAPS, "PR_SET_KEEP_CAPS" },
+#endif
+ { 0, NULL },
+};
+
+
+static const char *
+unalignctl_string (unsigned int ctl)
+{
+ static char buf[16];
+
+ switch (ctl) {
+#ifdef PR_UNALIGN_NOPRINT
+ case PR_UNALIGN_NOPRINT:
+ return "NOPRINT";
+#endif
+#ifdef PR_UNALIGN_SIGBUS
+ case PR_UNALIGN_SIGBUS:
+ return "SIGBUS";
+#endif
+ default:
+ break;
+ }
+ sprintf(buf, "%x", ctl);
+ return buf;
+}
+
+
+int
+sys_prctl(tcp)
+struct tcb *tcp;
+{
+ int i;
+
+ if (entering(tcp)) {
+ printxval(prctl_options, tcp->u_arg[0], "PR_???");
+ switch (tcp->u_arg[0]) {
+#ifdef PR_GETNSHARE
+ case PR_GETNSHARE:
+ break;
+#endif
+#ifdef PR_SET_DEATHSIG
+ case PR_GET_PDEATHSIG:
+ break;
+#endif
+#ifdef PR_SET_UNALIGN
+ case PR_SET_UNALIGN:
+ tprintf(", %s", unalignctl_string(tcp->u_arg[1]));
+ break;
+#endif
+#ifdef PR_GET_UNALIGN
+ case PR_GET_UNALIGN:
+ tprintf(", %#lx", tcp->u_arg[1]);
+ break;
+#endif
+ default:
+ for (i = 1; i < tcp->u_nargs; i++)
+ tprintf(", %#lx", tcp->u_arg[i]);
+ break;
+ }
+ } else {
+ switch (tcp->u_arg[0]) {
+#ifdef PR_GET_PDEATHSIG
+ case PR_GET_PDEATHSIG:
+ for (i=1; i<tcp->u_nargs; i++)
+ tprintf(", %#lx", tcp->u_arg[i]);
+ break;
+#endif
+#ifdef PR_SET_UNALIGN
+ case PR_SET_UNALIGN:
+ break;
+#endif
+#ifdef PR_GET_UNALIGN
+ case PR_GET_UNALIGN:
+ {
+ int ctl;
+
+ umove(tcp, tcp->u_arg[1], &ctl);
+ tcp->auxstr = unalignctl_string(ctl);
+ return RVAL_STR;
+ }
+#endif
+ default:
+ break;
+ }
+ }
+ return 0;
+}
+
+#endif /* HAVE_PRCTL */
+
+int
+sys_gethostid(tcp)
+struct tcb *tcp;
+{
+ if (exiting(tcp))
+ return RVAL_HEX;
+ return 0;
+}
+
+int
+sys_sethostname(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpathn(tcp, tcp->u_arg[0], tcp->u_arg[1]);
+ tprintf(", %lu", tcp->u_arg[1]);
+ }
+ return 0;
+}
+
+int
+sys_gethostname(tcp)
+struct tcb *tcp;
+{
+ if (exiting(tcp)) {
+ if (syserror(tcp))
+ tprintf("%#lx", tcp->u_arg[0]);
+ else
+ printpath(tcp, tcp->u_arg[0]);
+ tprintf(", %lu", tcp->u_arg[1]);
+ }
+ return 0;
+}
+
+int
+sys_setdomainname(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpathn(tcp, tcp->u_arg[0], tcp->u_arg[1]);
+ tprintf(", %lu", tcp->u_arg[1]);
+ }
+ return 0;
+}
+
+#if !defined(LINUX)
+
+int
+sys_getdomainname(tcp)
+struct tcb *tcp;
+{
+ if (exiting(tcp)) {
+ if (syserror(tcp))
+ tprintf("%#lx", tcp->u_arg[0]);
+ else
+ printpath(tcp, tcp->u_arg[0]);
+ tprintf(", %lu", tcp->u_arg[1]);
+ }
+ return 0;
+}
+#endif /* !LINUX */
+
+int
+sys_exit(tcp)
+struct tcb *tcp;
+{
+ if (exiting(tcp)) {
+ fprintf(stderr, "_exit returned!\n");
+ return -1;
+ }
+ /* special case: we stop tracing this process, finish line now */
+ tprintf("%ld) ", tcp->u_arg[0]);
+ tabto(acolumn);
+ tprintf("= ?");
+ printtrailer(tcp);
+ return 0;
+}
+
+int
+internal_exit(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tcp->flags |= TCB_EXITING;
+#ifdef __NR_exit_group
+# ifdef IA64
+ if (ia32) {
+ if (tcp->scno == 252)
+ tcp->flags |= TCB_GROUP_EXITING;
+ } else
+# endif
+ if (known_scno(tcp) == __NR_exit_group)
+ tcp->flags |= TCB_GROUP_EXITING;
+#endif
+ }
+ return 0;
+}
+
+/* TCP is creating a child we want to follow.
+ If there will be space in tcbtab for it, set TCB_FOLLOWFORK and return 0.
+ If not, clear TCB_FOLLOWFORK, print an error, and return 1. */
+static int
+fork_tcb(struct tcb *tcp)
+{
+ if (nprocs == tcbtabsize) {
+ if (expand_tcbtab()) {
+ tcp->flags &= ~TCB_FOLLOWFORK;
+ fprintf(stderr, "sys_fork: tcb table full\n");
+ }
+ }
+
+ tcp->flags |= TCB_FOLLOWFORK;
+ return 0;
+}
+
+#ifdef USE_PROCFS
+
+int
+sys_fork(tcp)
+struct tcb *tcp;
+{
+ if (exiting(tcp)) {
+ if (getrval2(tcp)) {
+ tcp->auxstr = "child process";
+ return RVAL_UDECIMAL | RVAL_STR;
+ }
+ }
+ return 0;
+}
+
+#if UNIXWARE > 2
+
+int
+sys_rfork(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf ("%ld", tcp->u_arg[0]);
+ }
+ else {
+ if (getrval2(tcp)) {
+ tcp->auxstr = "child process";
+ return RVAL_UDECIMAL | RVAL_STR;
+ }
+ }
+ return 0;
+}
+
+#endif
+
+int
+internal_fork(tcp)
+struct tcb *tcp;
+{
+ struct tcb *tcpchild;
+
+ if (exiting(tcp)) {
+#ifdef SYS_rfork
+ if (known_scno(tcp) == SYS_rfork && !(tcp->u_arg[0]&RFPROC))
+ return 0;
+#endif
+ if (getrval2(tcp))
+ return 0;
+ if (!followfork)
+ return 0;
+ if (fork_tcb(tcp))
+ return 0;
+ if (syserror(tcp))
+ return 0;
+ if ((tcpchild = alloctcb(tcp->u_rval)) == NULL) {
+ fprintf(stderr, "sys_fork: tcb table full\n");
+ return 0;
+ }
+ if (proc_open(tcpchild, 2) < 0)
+ droptcb(tcpchild);
+ }
+ return 0;
+}
+
+#else /* !USE_PROCFS */
+
+#ifdef LINUX
+
+/* defines copied from linux/sched.h since we can't include that
+ * ourselves (it conflicts with *lots* of libc includes)
+ */
+#define CSIGNAL 0x000000ff /* signal mask to be sent at exit */
+#define CLONE_VM 0x00000100 /* set if VM shared between processes */
+#define CLONE_FS 0x00000200 /* set if fs info shared between processes */
+#define CLONE_FILES 0x00000400 /* set if open files shared between processes */
+#define CLONE_SIGHAND 0x00000800 /* set if signal handlers shared */
+#define CLONE_IDLETASK 0x00001000 /* kernel-only flag */
+#define CLONE_PTRACE 0x00002000 /* set if we want to let tracing continue on the child too */
+#define CLONE_VFORK 0x00004000 /* set if the parent wants the child to wake it up on mm_release */
+#define CLONE_PARENT 0x00008000 /* set if we want to have the same parent as the cloner */
+#define CLONE_THREAD 0x00010000 /* Same thread group? */
+#define CLONE_NEWNS 0x00020000 /* New namespace group? */
+#define CLONE_SYSVSEM 0x00040000 /* share system V SEM_UNDO semantics */
+#define CLONE_SETTLS 0x00080000 /* create a new TLS for the child */
+#define CLONE_PARENT_SETTID 0x00100000 /* set the TID in the parent */
+#define CLONE_CHILD_CLEARTID 0x00200000 /* clear the TID in the child */
+#define CLONE_DETACHED 0x00400000 /* parent wants no child-exit signal */
+#define CLONE_UNTRACED 0x00800000 /* set if the tracing process can't force CLONE_PTRACE on this clone */
+#define CLONE_CHILD_SETTID 0x01000000 /* set the TID in the child */
+
+static const struct xlat clone_flags[] = {
+ { CLONE_VM, "CLONE_VM" },
+ { CLONE_FS, "CLONE_FS" },
+ { CLONE_FILES, "CLONE_FILES" },
+ { CLONE_SIGHAND, "CLONE_SIGHAND" },
+ { CLONE_IDLETASK, "CLONE_IDLETASK"},
+ { CLONE_PTRACE, "CLONE_PTRACE" },
+ { CLONE_VFORK, "CLONE_VFORK" },
+ { CLONE_PARENT, "CLONE_PARENT" },
+ { CLONE_THREAD, "CLONE_THREAD" },
+ { CLONE_NEWNS, "CLONE_NEWNS" },
+ { CLONE_SYSVSEM, "CLONE_SYSVSEM" },
+ { CLONE_SETTLS, "CLONE_SETTLS" },
+ { CLONE_PARENT_SETTID,"CLONE_PARENT_SETTID" },
+ { CLONE_CHILD_CLEARTID,"CLONE_CHILD_CLEARTID" },
+ { CLONE_DETACHED, "CLONE_DETACHED" },
+ { CLONE_UNTRACED, "CLONE_UNTRACED" },
+ { CLONE_CHILD_SETTID,"CLONE_CHILD_SETTID" },
+ { 0, NULL },
+};
+
+# ifdef I386
+# include <asm/ldt.h>
+# ifdef HAVE_STRUCT_USER_DESC
+# define modify_ldt_ldt_s user_desc
+# endif
+extern void print_ldt_entry();
+# endif
+
+# if defined IA64
+# define ARG_FLAGS 0
+# define ARG_STACK 1
+# define ARG_STACKSIZE (known_scno(tcp) == SYS_clone2 ? 2 : -1)
+# define ARG_PTID (known_scno(tcp) == SYS_clone2 ? 3 : 2)
+# define ARG_CTID (known_scno(tcp) == SYS_clone2 ? 4 : 3)
+# define ARG_TLS (known_scno(tcp) == SYS_clone2 ? 5 : 4)
+# elif defined S390 || defined S390X
+# define ARG_STACK 0
+# define ARG_FLAGS 1
+# define ARG_PTID 2
+# define ARG_CTID 3
+# define ARG_TLS 4
+# elif defined X86_64 || defined ALPHA
+# define ARG_FLAGS 0
+# define ARG_STACK 1
+# define ARG_PTID 2
+# define ARG_CTID 3
+# define ARG_TLS 4
+# else
+# define ARG_FLAGS 0
+# define ARG_STACK 1
+# define ARG_PTID 2
+# define ARG_TLS 3
+# define ARG_CTID 4
+# endif
+
+int
+sys_clone(tcp)
+struct tcb *tcp;
+{
+ if (exiting(tcp)) {
+ unsigned long flags = tcp->u_arg[ARG_FLAGS];
+ tprintf("child_stack=%#lx, ", tcp->u_arg[ARG_STACK]);
+# ifdef ARG_STACKSIZE
+ if (ARG_STACKSIZE != -1)
+ tprintf("stack_size=%#lx, ",
+ tcp->u_arg[ARG_STACKSIZE]);
+# endif
+ tprintf("flags=");
+ printflags(clone_flags, flags &~ CSIGNAL, NULL);
+ if ((flags & CSIGNAL) != 0)
+ tprintf("|%s", signame(flags & CSIGNAL));
+ if ((flags & (CLONE_PARENT_SETTID|CLONE_CHILD_SETTID
+ |CLONE_CHILD_CLEARTID|CLONE_SETTLS)) == 0)
+ return 0;
+ if (flags & CLONE_PARENT_SETTID)
+ tprintf(", parent_tidptr=%#lx", tcp->u_arg[ARG_PTID]);
+ if (flags & CLONE_SETTLS) {
+# ifdef I386
+ struct modify_ldt_ldt_s copy;
+ if (umove(tcp, tcp->u_arg[ARG_TLS], ©) != -1) {
+ tprintf(", {entry_number:%d, ",
+ copy.entry_number);
+ if (!verbose(tcp))
+ tprintf("...}");
+ else
+ print_ldt_entry(©);
+ }
+ else
+# endif
+ tprintf(", tls=%#lx", tcp->u_arg[ARG_TLS]);
+ }
+ if (flags & (CLONE_CHILD_SETTID|CLONE_CHILD_CLEARTID))
+ tprintf(", child_tidptr=%#lx", tcp->u_arg[ARG_CTID]);
+ }
+ return 0;
+}
+#endif
+
+int
+sys_fork(tcp)
+struct tcb *tcp;
+{
+ if (exiting(tcp))
+ return RVAL_UDECIMAL;
+ return 0;
+}
+
+int
+change_syscall(tcp, new)
+struct tcb *tcp;
+int new;
+{
+#if defined(LINUX)
+#if defined(I386)
+ /* Attempt to make vfork into fork, which we can follow. */
+ if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(ORIG_EAX * 4), new) < 0)
+ return -1;
+ return 0;
+#elif defined(X86_64)
+ /* Attempt to make vfork into fork, which we can follow. */
+ 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 regs regs;
+ if (ptrace(PTRACE_GETREGS, tcp->pid, (char*)®s, 0)<0)
+ return -1;
+ regs.r_g1=new;
+ if (ptrace(PTRACE_SETREGS, tcp->pid, (char*)®s, 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(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(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) != 0)
+ return -1;
+
+ return 0;
+#else
+#warning Do not know how to handle change_syscall for this architecture
+#endif /* architecture */
+#endif /* LINUX */
+ return -1;
+}
+
+#if 0
+int
+setarg(tcp, argnum)
+ struct tcb *tcp;
+ int argnum;
+{
+#if defined (IA64)
+ {
+ unsigned long *bsp, *ap;
+
+ if (upeek(tcp->pid, PT_AR_BSP, (long *) &bsp) , 0)
+ return -1;
+
+ ap = ia64_rse_skip_regs(bsp, argnum);
+ errno = 0;
+ ptrace(PTRACE_POKEDATA, tcp->pid, (char *) ap, tcp->u_arg[argnum]);
+ if (errno)
+ return -1;
+
+ }
+#elif defined(I386)
+ {
+ ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(4*argnum), tcp->u_arg[argnum]);
+ if (errno)
+ return -1;
+ }
+#elif defined(X86_64)
+ {
+ ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(8*(long)argnum), tcp->u_arg[argnum]);
+ if (errno)
+ return -1;
+ }
+#elif defined(POWERPC)
+#ifndef PT_ORIG_R3
+#define PT_ORIG_R3 34
+#endif
+ {
+ ptrace(PTRACE_POKEUSER, tcp->pid,
+ (char*)((argnum==0 ? PT_ORIG_R3 : argnum+PT_R3)*sizeof(unsigned long)),
+ tcp->u_arg[argnum]);
+ if (errno)
+ return -1;
+ }
+#elif defined(MIPS)
+ {
+ errno = 0;
+ if (argnum < 4)
+ ptrace(PTRACE_POKEUSER, tcp->pid,
+ (char*)(REG_A0 + argnum), tcp->u_arg[argnum]);
+ else {
+ unsigned long *sp;
+
+ if (upeek(tcp->pid, REG_SP, (long *) &sp) , 0)
+ return -1;
+
+ ptrace(PTRACE_POKEDATA, tcp->pid,
+ (char*)(sp + argnum - 4), tcp->u_arg[argnum]);
+ }
+ if (errno)
+ return -1;
+ }
+#elif defined(S390) || defined(S390X)
+ {
+ if(argnum <= 5)
+ ptrace(PTRACE_POKEUSER, tcp->pid,
+ (char *) (argnum==0 ? PT_ORIGGPR2 :
+ PT_GPR2 + argnum*sizeof(long)),
+ tcp->u_arg[argnum]);
+ else
+ return -E2BIG;
+ if (errno)
+ return -1;
+ }
+#else
+# warning Sorry, setargs not implemented for this architecture.
+#endif
+ return 0;
+}
+#endif
+
+#if defined SYS_clone || defined SYS_clone2 || defined __NR_clone
+int
+internal_clone(tcp)
+struct tcb *tcp;
+{
+ struct tcb *tcpchild;
+ int pid;
+ if (entering(tcp)) {
+ if (!followfork)
+ return 0;
+ if (fork_tcb(tcp))
+ return 0;
+ if (setbpt(tcp) < 0)
+ return 0;
+ } else {
+ int bpt = tcp->flags & TCB_BPTSET;
+
+ if (!(tcp->flags & TCB_FOLLOWFORK))
+ return 0;
+
+ if (syserror(tcp)) {
+ if (bpt)
+ clearbpt(tcp);
+ return 0;
+ }
+
+ pid = tcp->u_rval;
+
+#ifdef CLONE_PTRACE /* See new setbpt code. */
+ tcpchild = pid2tcb(pid);
+ if (tcpchild != NULL) {
+ /* The child already reported its startup trap
+ before the parent reported its syscall return. */
+ if ((tcpchild->flags
+ & (TCB_STARTUP|TCB_ATTACHED|TCB_SUSPENDED))
+ != (TCB_STARTUP|TCB_ATTACHED|TCB_SUSPENDED))
+ fprintf(stderr, "\
+[preattached child %d of %d in weird state!]\n",
+ pid, tcp->pid);
+ }
+ else
+#endif
+ if ((tcpchild = alloctcb(pid)) == NULL) {
+ if (bpt)
+ clearbpt(tcp);
+ fprintf(stderr, " [tcb table full]\n");
+ kill(pid, SIGKILL); /* XXX */
+ return 0;
+ }
+
+#ifndef CLONE_PTRACE
+ /* Attach to the new child */
+ if (ptrace(PTRACE_ATTACH, pid, (char *) 1, 0) < 0) {
+ if (bpt)
+ clearbpt(tcp);
+ perror("PTRACE_ATTACH");
+ fprintf(stderr, "Too late?\n");
+ droptcb(tcpchild);
+ return 0;
+ }
+#endif
+
+ if (bpt)
+ clearbpt(tcp);
+
+ tcpchild->flags |= TCB_ATTACHED;
+ /* Child has BPT too, must be removed on first occasion. */
+ if (bpt) {
+ tcpchild->flags |= TCB_BPTSET;
+ tcpchild->baddr = tcp->baddr;
+ memcpy(tcpchild->inst, tcp->inst,
+ sizeof tcpchild->inst);
+ }
+ tcpchild->parent = tcp;
+ tcp->nchildren++;
+ if (tcpchild->flags & TCB_SUSPENDED) {
+ /* The child was born suspended, due to our having
+ forced CLONE_PTRACE. */
+ if (bpt)
+ clearbpt(tcpchild);
+
+ tcpchild->flags &= ~(TCB_SUSPENDED|TCB_STARTUP);
+ if (ptrace(PTRACE_SYSCALL, pid, (char *) 1, 0) < 0) {
+ perror("resume: ptrace(PTRACE_SYSCALL, ...)");
+ return -1;
+ }
+
+ if (!qflag)
+ fprintf(stderr, "\
+Process %u resumed (parent %d ready)\n",
+ pid, tcp->pid);
+ }
+ else {
+ newoutf(tcpchild);
+ if (!qflag)
+ fprintf(stderr, "Process %d attached\n", pid);
+ }
+
+#ifdef TCB_CLONE_THREAD
+ {
+ /*
+ * Save the flags used in this call,
+ * in case we point TCP to our parent below.
+ */
+ int call_flags = tcp->u_arg[ARG_FLAGS];
+ if ((tcp->flags & TCB_CLONE_THREAD) &&
+ tcp->parent != NULL) {
+ /* The parent in this clone is itself a
+ thread belonging to another process.
+ There is no meaning to the parentage
+ relationship of the new child with the
+ thread, only with the process. We
+ associate the new thread with our
+ parent. Since this is done for every
+ new thread, there will never be a
+ TCB_CLONE_THREAD process that has
+ children. */
+ --tcp->nchildren;
+ tcp = tcp->parent;
+ tcpchild->parent = tcp;
+ ++tcp->nchildren;
+ }
+ if (call_flags & CLONE_THREAD) {
+ tcpchild->flags |= TCB_CLONE_THREAD;
+ ++tcp->nclone_threads;
+ }
+ if (call_flags & CLONE_DETACHED) {
+ tcpchild->flags |= TCB_CLONE_DETACHED;
+ ++tcp->nclone_detached;
+ }
+ }
+#endif
+
+ }
+ return 0;
+}
+#endif
+
+int
+internal_fork(tcp)
+struct tcb *tcp;
+{
+#ifdef LINUX
+ /* We do special magic with clone for any clone or fork. */
+ return internal_clone(tcp);
+#else
+
+ struct tcb *tcpchild;
+ int pid;
+ int dont_follow = 0;
+
+#ifdef SYS_vfork
+ if (known_scno(tcp) == SYS_vfork) {
+ /* Attempt to make vfork into fork, which we can follow. */
+ if (!followvfork ||
+ change_syscall(tcp, SYS_fork) < 0)
+ dont_follow = 1;
+ }
+#endif
+ if (entering(tcp)) {
+ if (!followfork || dont_follow)
+ return 0;
+ if (fork_tcb(tcp))
+ return 0;
+ if (setbpt(tcp) < 0)
+ return 0;
+ }
+ else {
+ int bpt = tcp->flags & TCB_BPTSET;
+
+ if (!(tcp->flags & TCB_FOLLOWFORK))
+ return 0;
+ if (bpt)
+ clearbpt(tcp);
+
+ if (syserror(tcp))
+ return 0;
+
+ pid = tcp->u_rval;
+ if ((tcpchild = alloctcb(pid)) == NULL) {
+ fprintf(stderr, " [tcb table full]\n");
+ kill(pid, SIGKILL); /* XXX */
+ return 0;
+ }
+#ifdef LINUX
+#ifdef HPPA
+ /* The child must have run before it can be attached. */
+ /* This must be a bug in the parisc kernel, but I havn't
+ * identified it yet. Seems to be an issue associated
+ * with attaching to a process (which sends it a signal)
+ * before that process has ever been scheduled. When
+ * debugging, I started seeing crashes in
+ * arch/parisc/kernel/signal.c:do_signal(), apparently
+ * caused by r8 getting corrupt over the dequeue_signal()
+ * call. Didn't make much sense though...
+ */
+ {
+ struct timeval tv;
+ tv.tv_sec = 0;
+ tv.tv_usec = 10000;
+ select(0, NULL, NULL, NULL, &tv);
+ }
+#endif
+ if (ptrace(PTRACE_ATTACH, pid, (char *) 1, 0) < 0) {
+ perror("PTRACE_ATTACH");
+ fprintf(stderr, "Too late?\n");
+ droptcb(tcpchild);
+ return 0;
+ }
+#endif /* LINUX */
+#ifdef SUNOS4
+#ifdef oldway
+ /* The child must have run before it can be attached. */
+ {
+ struct timeval tv;
+ tv.tv_sec = 0;
+ tv.tv_usec = 10000;
+ select(0, NULL, NULL, NULL, &tv);
+ }
+ if (ptrace(PTRACE_ATTACH, pid, (char *)1, 0) < 0) {
+ perror("PTRACE_ATTACH");
+ fprintf(stderr, "Too late?\n");
+ droptcb(tcpchild);
+ return 0;
+ }
+#else /* !oldway */
+ /* Try to catch the new process as soon as possible. */
+ {
+ int i;
+ for (i = 0; i < 1024; i++)
+ if (ptrace(PTRACE_ATTACH, pid, (char *) 1, 0) >= 0)
+ break;
+ if (i == 1024) {
+ perror("PTRACE_ATTACH");
+ fprintf(stderr, "Too late?\n");
+ droptcb(tcpchild);
+ return 0;
+ }
+ }
+#endif /* !oldway */
+#endif /* SUNOS4 */
+ tcpchild->flags |= TCB_ATTACHED;
+ /* Child has BPT too, must be removed on first occasion */
+ if (bpt) {
+ tcpchild->flags |= TCB_BPTSET;
+ tcpchild->baddr = tcp->baddr;
+ memcpy(tcpchild->inst, tcp->inst,
+ sizeof tcpchild->inst);
+ }
+ newoutf(tcpchild);
+ tcpchild->parent = tcp;
+ tcp->nchildren++;
+ if (!qflag)
+ fprintf(stderr, "Process %d attached\n", pid);
+ }
+ return 0;
+#endif
+}
+
+#endif /* !USE_PROCFS */
+
+#if defined(SUNOS4) || defined(LINUX) || defined(FREEBSD)
+
+int
+sys_vfork(tcp)
+struct tcb *tcp;
+{
+ if (exiting(tcp))
+ return RVAL_UDECIMAL;
+ return 0;
+}
+
+#endif /* SUNOS4 || LINUX || FREEBSD */
+
+#ifndef LINUX
+
+static char idstr[16];
+
+int
+sys_getpid(tcp)
+struct tcb *tcp;
+{
+ if (exiting(tcp)) {
+ sprintf(idstr, "ppid %lu", getrval2(tcp));
+ tcp->auxstr = idstr;
+ return RVAL_STR;
+ }
+ return 0;
+}
+
+int
+sys_getuid(tcp)
+struct tcb *tcp;
+{
+ if (exiting(tcp)) {
+ sprintf(idstr, "euid %lu", getrval2(tcp));
+ tcp->auxstr = idstr;
+ return RVAL_STR;
+ }
+ return 0;
+}
+
+int
+sys_getgid(tcp)
+struct tcb *tcp;
+{
+ if (exiting(tcp)) {
+ sprintf(idstr, "egid %lu", getrval2(tcp));
+ tcp->auxstr = idstr;
+ return RVAL_STR;
+ }
+ return 0;
+}
+
+#endif /* !LINUX */
+
+#ifdef LINUX
+
+int
+sys_setuid(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%u", (uid_t) tcp->u_arg[0]);
+ }
+ return 0;
+}
+
+int
+sys_setgid(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%u", (gid_t) tcp->u_arg[0]);
+ }
+ return 0;
+}
+
+int
+sys_getresuid(tcp)
+ struct tcb *tcp;
+{
+ if (exiting(tcp)) {
+ __kernel_uid_t uid;
+ if (syserror(tcp))
+ tprintf("%#lx, %#lx, %#lx", tcp->u_arg[0],
+ tcp->u_arg[1], tcp->u_arg[2]);
+ else {
+ if (umove(tcp, tcp->u_arg[0], &uid) < 0)
+ tprintf("%#lx, ", tcp->u_arg[0]);
+ else
+ tprintf("[%lu], ", (unsigned long) uid);
+ if (umove(tcp, tcp->u_arg[1], &uid) < 0)
+ tprintf("%#lx, ", tcp->u_arg[1]);
+ else
+ tprintf("[%lu], ", (unsigned long) uid);
+ if (umove(tcp, tcp->u_arg[2], &uid) < 0)
+ tprintf("%#lx", tcp->u_arg[2]);
+ else
+ tprintf("[%lu]", (unsigned long) uid);
+ }
+ }
+ return 0;
+}
+
+int
+sys_getresgid(tcp)
+struct tcb *tcp;
+{
+ if (exiting(tcp)) {
+ __kernel_gid_t gid;
+ if (syserror(tcp))
+ tprintf("%#lx, %#lx, %#lx", tcp->u_arg[0],
+ tcp->u_arg[1], tcp->u_arg[2]);
+ else {
+ if (umove(tcp, tcp->u_arg[0], &gid) < 0)
+ tprintf("%#lx, ", tcp->u_arg[0]);
+ else
+ tprintf("[%lu], ", (unsigned long) gid);
+ if (umove(tcp, tcp->u_arg[1], &gid) < 0)
+ tprintf("%#lx, ", tcp->u_arg[1]);
+ else
+ tprintf("[%lu], ", (unsigned long) gid);
+ if (umove(tcp, tcp->u_arg[2], &gid) < 0)
+ tprintf("%#lx", tcp->u_arg[2]);
+ else
+ tprintf("[%lu]", (unsigned long) gid);
+ }
+ }
+ return 0;
+}
+
+#endif /* LINUX */
+
+int
+sys_setreuid(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printuid("", tcp->u_arg[0]);
+ printuid(", ", tcp->u_arg[1]);
+ }
+ return 0;
+}
+
+int
+sys_setregid(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printuid("", tcp->u_arg[0]);
+ printuid(", ", tcp->u_arg[1]);
+ }
+ return 0;
+}
+
+#if defined(LINUX) || defined(FREEBSD)
+int
+sys_setresuid(tcp)
+ struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printuid("", tcp->u_arg[0]);
+ printuid(", ", tcp->u_arg[1]);
+ printuid(", ", tcp->u_arg[2]);
+ }
+ return 0;
+}
+int
+sys_setresgid(tcp)
+ struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printuid("", tcp->u_arg[0]);
+ printuid(", ", tcp->u_arg[1]);
+ printuid(", ", tcp->u_arg[2]);
+ }
+ return 0;
+}
+
+#endif /* LINUX || FREEBSD */
+
+int
+sys_setgroups(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ unsigned long len, size, start, cur, end, abbrev_end;
+ GETGROUPS_T gid;
+ int failed = 0;
+
+ len = tcp->u_arg[0];
+ tprintf("%lu, ", len);
+ if (len == 0) {
+ tprintf("[]");
+ return 0;
+ }
+ start = tcp->u_arg[1];
+ if (start == 0) {
+ tprintf("NULL");
+ return 0;
+ }
+ size = len * sizeof(gid);
+ end = start + size;
+ if (!verbose(tcp) || size / sizeof(gid) != len || end < start) {
+ tprintf("%#lx", start);
+ return 0;
+ }
+ if (abbrev(tcp)) {
+ abbrev_end = start + max_strlen * sizeof(gid);
+ if (abbrev_end < start)
+ abbrev_end = end;
+ } else {
+ abbrev_end = end;
+ }
+ tprintf("[");
+ for (cur = start; cur < end; cur += sizeof(gid)) {
+ if (cur > start)
+ tprintf(", ");
+ if (cur >= abbrev_end) {
+ tprintf("...");
+ break;
+ }
+ if (umoven(tcp, cur, sizeof(gid), (char *) &gid) < 0) {
+ tprintf("?");
+ failed = 1;
+ break;
+ }
+ tprintf("%lu", (unsigned long) gid);
+ }
+ tprintf("]");
+ if (failed)
+ tprintf(" %#lx", tcp->u_arg[1]);
+ }
+ return 0;
+}
+
+int
+sys_getgroups(tcp)
+struct tcb *tcp;
+{
+ unsigned long len;
+
+ if (entering(tcp)) {
+ len = tcp->u_arg[0];
+ tprintf("%lu, ", len);
+ } else {
+ unsigned long size, start, cur, end, abbrev_end;
+ GETGROUPS_T gid;
+ int failed = 0;
+
+ len = tcp->u_rval;
+ if (len == 0) {
+ tprintf("[]");
+ return 0;
+ }
+ start = tcp->u_arg[1];
+ if (start == 0) {
+ tprintf("NULL");
+ return 0;
+ }
+ if (tcp->u_arg[0] == 0) {
+ tprintf("%#lx", start);
+ return 0;
+ }
+ size = len * sizeof(gid);
+ end = start + size;
+ if (!verbose(tcp) || tcp->u_arg[0] == 0 ||
+ size / sizeof(gid) != len || end < start) {
+ tprintf("%#lx", start);
+ return 0;
+ }
+ if (abbrev(tcp)) {
+ abbrev_end = start + max_strlen * sizeof(gid);
+ if (abbrev_end < start)
+ abbrev_end = end;
+ } else {
+ abbrev_end = end;
+ }
+ tprintf("[");
+ for (cur = start; cur < end; cur += sizeof(gid)) {
+ if (cur > start)
+ tprintf(", ");
+ if (cur >= abbrev_end) {
+ tprintf("...");
+ break;
+ }
+ if (umoven(tcp, cur, sizeof(gid), (char *) &gid) < 0) {
+ tprintf("?");
+ failed = 1;
+ break;
+ }
+ tprintf("%lu", (unsigned long) gid);
+ }
+ tprintf("]");
+ if (failed)
+ tprintf(" %#lx", tcp->u_arg[1]);
+ }
+ return 0;
+}
+
+#ifdef LINUX
+int
+sys_setgroups32(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ unsigned long len, size, start, cur, end, abbrev_end;
+ GETGROUPS32_T gid;
+ int failed = 0;
+
+ len = tcp->u_arg[0];
+ tprintf("%lu, ", len);
+ if (len == 0) {
+ tprintf("[]");
+ return 0;
+ }
+ start = tcp->u_arg[1];
+ if (start == 0) {
+ tprintf("NULL");
+ return 0;
+ }
+ size = len * sizeof(gid);
+ end = start + size;
+ if (!verbose(tcp) || size / sizeof(gid) != len || end < start) {
+ tprintf("%#lx", start);
+ return 0;
+ }
+ if (abbrev(tcp)) {
+ abbrev_end = start + max_strlen * sizeof(gid);
+ if (abbrev_end < start)
+ abbrev_end = end;
+ } else {
+ abbrev_end = end;
+ }
+ tprintf("[");
+ for (cur = start; cur < end; cur += sizeof(gid)) {
+ if (cur > start)
+ tprintf(", ");
+ if (cur >= abbrev_end) {
+ tprintf("...");
+ break;
+ }
+ if (umoven(tcp, cur, sizeof(gid), (char *) &gid) < 0) {
+ tprintf("?");
+ failed = 1;
+ break;
+ }
+ tprintf("%lu", (unsigned long) gid);
+ }
+ tprintf("]");
+ if (failed)
+ tprintf(" %#lx", tcp->u_arg[1]);
+ }
+ return 0;
+}
+
+int
+sys_getgroups32(tcp)
+struct tcb *tcp;
+{
+ unsigned long len;
+
+ if (entering(tcp)) {
+ len = tcp->u_arg[0];
+ tprintf("%lu, ", len);
+ } else {
+ unsigned long size, start, cur, end, abbrev_end;
+ GETGROUPS32_T gid;
+ int failed = 0;
+
+ len = tcp->u_rval;
+ if (len == 0) {
+ tprintf("[]");
+ return 0;
+ }
+ start = tcp->u_arg[1];
+ if (start == 0) {
+ tprintf("NULL");
+ return 0;
+ }
+ size = len * sizeof(gid);
+ end = start + size;
+ if (!verbose(tcp) || tcp->u_arg[0] == 0 ||
+ size / sizeof(gid) != len || end < start) {
+ tprintf("%#lx", start);
+ return 0;
+ }
+ if (abbrev(tcp)) {
+ abbrev_end = start + max_strlen * sizeof(gid);
+ if (abbrev_end < start)
+ abbrev_end = end;
+ } else {
+ abbrev_end = end;
+ }
+ tprintf("[");
+ for (cur = start; cur < end; cur += sizeof(gid)) {
+ if (cur > start)
+ tprintf(", ");
+ if (cur >= abbrev_end) {
+ tprintf("...");
+ break;
+ }
+ if (umoven(tcp, cur, sizeof(gid), (char *) &gid) < 0) {
+ tprintf("?");
+ failed = 1;
+ break;
+ }
+ tprintf("%lu", (unsigned long) gid);
+ }
+ tprintf("]");
+ if (failed)
+ tprintf(" %#lx", tcp->u_arg[1]);
+ }
+ return 0;
+}
+#endif /* LINUX */
+
+int
+sys_setpgrp(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+#ifndef SVR4
+ tprintf("%lu, %lu", tcp->u_arg[0], tcp->u_arg[1]);
+#endif /* !SVR4 */
+ }
+ return 0;
+}
+
+int
+sys_getpgrp(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+#ifndef SVR4
+ tprintf("%lu", tcp->u_arg[0]);
+#endif /* !SVR4 */
+ }
+ return 0;
+}
+
+int
+sys_getsid(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%lu", tcp->u_arg[0]);
+ }
+ return 0;
+}
+
+int
+sys_setsid(tcp)
+struct tcb *tcp;
+{
+ return 0;
+}
+
+int
+sys_getpgid(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%lu", tcp->u_arg[0]);
+ }
+ return 0;
+}
+
+int
+sys_setpgid(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%lu, %lu", tcp->u_arg[0], tcp->u_arg[1]);
+ }
+ return 0;
+}
+
+#if UNIXWARE >= 2
+
+#include <sys/privilege.h>
+
+
+static const struct xlat procpriv_cmds [] = {
+ { SETPRV, "SETPRV" },
+ { CLRPRV, "CLRPRV" },
+ { PUTPRV, "PUTPRV" },
+ { GETPRV, "GETPRV" },
+ { CNTPRV, "CNTPRV" },
+ { 0, NULL },
+};
+
+
+static const struct xlat procpriv_priv [] = {
+ { P_OWNER, "P_OWNER" },
+ { P_AUDIT, "P_AUDIT" },
+ { P_COMPAT, "P_COMPAT" },
+ { P_DACREAD, "P_DACREAD" },
+ { P_DACWRITE, "P_DACWRITE" },
+ { P_DEV, "P_DEV" },
+ { P_FILESYS, "P_FILESYS" },
+ { P_MACREAD, "P_MACREAD" },
+ { P_MACWRITE, "P_MACWRITE" },
+ { P_MOUNT, "P_MOUNT" },
+ { P_MULTIDIR, "P_MULTIDIR" },
+ { P_SETPLEVEL, "P_SETPLEVEL" },
+ { P_SETSPRIV, "P_SETSPRIV" },
+ { P_SETUID, "P_SETUID" },
+ { P_SYSOPS, "P_SYSOPS" },
+ { P_SETUPRIV, "P_SETUPRIV" },
+ { P_DRIVER, "P_DRIVER" },
+ { P_RTIME, "P_RTIME" },
+ { P_MACUPGRADE, "P_MACUPGRADE" },
+ { P_FSYSRANGE, "P_FSYSRANGE" },
+ { P_SETFLEVEL, "P_SETFLEVEL" },
+ { P_AUDITWR, "P_AUDITWR" },
+ { P_TSHAR, "P_TSHAR" },
+ { P_PLOCK, "P_PLOCK" },
+ { P_CORE, "P_CORE" },
+ { P_LOADMOD, "P_LOADMOD" },
+ { P_BIND, "P_BIND" },
+ { P_ALLPRIVS, "P_ALLPRIVS" },
+ { 0, NULL },
+};
+
+
+static const struct xlat procpriv_type [] = {
+ { PS_FIX, "PS_FIX" },
+ { PS_INH, "PS_INH" },
+ { PS_MAX, "PS_MAX" },
+ { PS_WKG, "PS_WKG" },
+ { 0, NULL },
+};
+
+
+static void
+printpriv(tcp, addr, len, opt)
+struct tcb *tcp;
+long addr;
+int len;
+const struct xlat *opt;
+{
+ priv_t buf [128];
+ int max = verbose (tcp) ? sizeof buf / sizeof buf [0] : 10;
+ int dots = len > max;
+ int i;
+
+ if (len > max) len = max;
+
+ if (len <= 0 ||
+ umoven (tcp, addr, len * sizeof buf[0], (char *) buf) < 0)
+ {
+ tprintf ("%#lx", addr);
+ return;
+ }
+
+ tprintf ("[");
+
+ for (i = 0; i < len; ++i) {
+ char *t, *p;
+
+ if (i) tprintf (", ");
+
+ if ((t = xlookup (procpriv_type, buf [i] & PS_TYPE)) &&
+ (p = xlookup (procpriv_priv, buf [i] & ~PS_TYPE)))
+ {
+ tprintf ("%s|%s", t, p);
+ }
+ else {
+ tprintf ("%#lx", buf [i]);
+ }
+ }
+
+ if (dots) tprintf (" ...");
+
+ tprintf ("]");
+}
+
+
+int
+sys_procpriv(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printxval(procpriv_cmds, tcp->u_arg[0], "???PRV");
+ switch (tcp->u_arg[0]) {
+ case CNTPRV:
+ tprintf(", %#lx, %ld", tcp->u_arg[1], tcp->u_arg[2]);
+ break;
+
+ case GETPRV:
+ break;
+
+ default:
+ tprintf (", ");
+ printpriv (tcp, tcp->u_arg[1], tcp->u_arg[2]);
+ tprintf (", %ld", tcp->u_arg[2]);
+ }
+ }
+ else if (tcp->u_arg[0] == GETPRV) {
+ if (syserror (tcp)) {
+ tprintf(", %#lx, %ld", tcp->u_arg[1], tcp->u_arg[2]);
+ }
+ else {
+ tprintf (", ");
+ printpriv (tcp, tcp->u_arg[1], tcp->u_rval);
+ tprintf (", %ld", tcp->u_arg[2]);
+ }
+ }
+
+ return 0;
+}
+
+#endif
+
+
+static void
+printargv(tcp, addr)
+struct tcb *tcp;
+long addr;
+{
+ char *cp;
+ char *sep;
+ int max = max_strlen / 2;
+
+ for (sep = ""; --max >= 0; sep = ", ") {
+ if (!abbrev(tcp))
+ max++;
+ if (umove(tcp, addr, &cp) < 0) {
+ tprintf("%#lx", addr);
+ return;
+ }
+ if (cp == 0)
+ break;
+ tprintf(sep);
+ printstr(tcp, (long) cp, -1);
+ addr += sizeof(char *);
+ }
+ if (cp)
+ tprintf(", ...");
+}
+
+static void
+printargc(fmt, tcp, addr)
+char *fmt;
+struct tcb *tcp;
+long addr;
+{
+ int count;
+ char *cp;
+
+ for (count = 0; umove(tcp, addr, &cp) >= 0 && cp != NULL; count++) {
+ addr += sizeof(char *);
+ }
+ tprintf(fmt, count, count == 1 ? "" : "s");
+}
+
+int
+sys_execv(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ if (!verbose(tcp))
+ tprintf(", %#lx", tcp->u_arg[1]);
+#if 0
+ else if (abbrev(tcp))
+ printargc(", [/* %d arg%s */]", tcp, tcp->u_arg[1]);
+#endif
+ else {
+ tprintf(", [");
+ printargv(tcp, tcp->u_arg[1]);
+ tprintf("]");
+ }
+ }
+ return 0;
+}
+
+int
+sys_execve(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ if (!verbose(tcp))
+ tprintf(", %#lx", tcp->u_arg[1]);
+#if 0
+ else if (abbrev(tcp))
+ printargc(", [/* %d arg%s */]", tcp, tcp->u_arg[1]);
+#endif
+ else {
+ tprintf(", [");
+ printargv(tcp, tcp->u_arg[1]);
+ tprintf("]");
+ }
+ if (!verbose(tcp))
+ tprintf(", %#lx", tcp->u_arg[2]);
+ else if (abbrev(tcp))
+ printargc(", [/* %d var%s */]", tcp, tcp->u_arg[2]);
+ else {
+ tprintf(", [");
+ printargv(tcp, tcp->u_arg[2]);
+ tprintf("]");
+ }
+ }
+ return 0;
+}
+
+#if UNIXWARE > 2
+
+int sys_rexecve(tcp)
+struct tcb *tcp;
+{
+ if (entering (tcp)) {
+ sys_execve (tcp);
+ tprintf (", %ld", tcp->u_arg[3]);
+ }
+ return 0;
+}
+
+#endif
+
+int
+internal_exec(tcp)
+struct tcb *tcp;
+{
+#ifdef SUNOS4
+ if (exiting(tcp) && !syserror(tcp) && followfork)
+ fixvfork(tcp);
+#endif /* SUNOS4 */
+#if defined LINUX && defined TCB_WAITEXECVE
+ if (exiting(tcp) && syserror(tcp))
+ tcp->flags &= ~TCB_WAITEXECVE;
+ else
+ tcp->flags |= TCB_WAITEXECVE;
+#endif /* LINUX && TCB_WAITEXECVE */
+ return 0;
+}
+
+#ifdef LINUX
+#ifndef __WNOTHREAD
+#define __WNOTHREAD 0x20000000
+#endif
+#ifndef __WALL
+#define __WALL 0x40000000
+#endif
+#ifndef __WCLONE
+#define __WCLONE 0x80000000
+#endif
+#endif /* LINUX */
+
+static const struct xlat wait4_options[] = {
+ { WNOHANG, "WNOHANG" },
+#ifndef WSTOPPED
+ { WUNTRACED, "WUNTRACED" },
+#endif
+#ifdef WEXITED
+ { WEXITED, "WEXITED" },
+#endif
+#ifdef WTRAPPED
+ { WTRAPPED, "WTRAPPED" },
+#endif
+#ifdef WSTOPPED
+ { WSTOPPED, "WSTOPPED" },
+#endif
+#ifdef WCONTINUED
+ { WCONTINUED, "WCONTINUED" },
+#endif
+#ifdef WNOWAIT
+ { WNOWAIT, "WNOWAIT" },
+#endif
+#ifdef __WCLONE
+ { __WCLONE, "__WCLONE" },
+#endif
+#ifdef __WALL
+ { __WALL, "__WALL" },
+#endif
+#ifdef __WNOTHREAD
+ { __WNOTHREAD, "__WNOTHREAD" },
+#endif
+ { 0, NULL },
+};
+
+#if !defined WCOREFLAG && defined WCOREFLG
+# define WCOREFLAG WCOREFLG
+#endif
+#ifndef WCOREFLAG
+#define WCOREFLAG 0x80
+#endif
+
+#ifndef W_STOPCODE
+#define W_STOPCODE(sig) ((sig) << 8 | 0x7f)
+#endif
+#ifndef W_EXITCODE
+#define W_EXITCODE(ret, sig) ((ret) << 8 | (sig))
+#endif
+
+static int
+printstatus(status)
+int status;
+{
+ int exited = 0;
+
+ /*
+ * Here is a tricky presentation problem. This solution
+ * is still not entirely satisfactory but since there
+ * are no wait status constructors it will have to do.
+ */
+ if (WIFSTOPPED(status)) {
+ tprintf("[{WIFSTOPPED(s) && WSTOPSIG(s) == %s}",
+ signame(WSTOPSIG(status)));
+ status &= ~W_STOPCODE(WSTOPSIG(status));
+ }
+ else if (WIFSIGNALED(status)) {
+ tprintf("[{WIFSIGNALED(s) && WTERMSIG(s) == %s%s}",
+ signame(WTERMSIG(status)),
+ WCOREDUMP(status) ? " && WCOREDUMP(s)" : "");
+ status &= ~(W_EXITCODE(0, WTERMSIG(status)) | WCOREFLAG);
+ }
+ else if (WIFEXITED(status)) {
+ tprintf("[{WIFEXITED(s) && WEXITSTATUS(s) == %d}",
+ WEXITSTATUS(status));
+ exited = 1;
+ status &= ~W_EXITCODE(WEXITSTATUS(status), 0);
+ }
+ else {
+ tprintf("[%#x]", status);
+ return 0;
+ }
+
+ if (status == 0)
+ tprintf("]");
+ else
+ tprintf(" | %#x]", status);
+
+ return exited;
+}
+
+static int
+printwaitn(tcp, n, bitness)
+struct tcb *tcp;
+int n;
+int bitness;
+{
+ int status;
+ int exited = 0;
+
+ if (entering(tcp)) {
+ tprintf("%ld, ", tcp->u_arg[0]);
+ } else {
+ /* status */
+ if (!tcp->u_arg[1])
+ tprintf("NULL");
+ else if (syserror(tcp) || tcp->u_rval == 0)
+ tprintf("%#lx", tcp->u_arg[1]);
+ else if (umove(tcp, tcp->u_arg[1], &status) < 0)
+ tprintf("[?]");
+ else
+ exited = printstatus(status);
+ /* options */
+ tprintf(", ");
+ printflags(wait4_options, tcp->u_arg[2], "W???");
+ if (n == 4) {
+ tprintf(", ");
+ /* usage */
+ if (!tcp->u_arg[3])
+ tprintf("NULL");
+#ifdef LINUX
+ else if (tcp->u_rval > 0) {
+#ifdef LINUX_64BIT
+ if (bitness)
+ printrusage32(tcp, tcp->u_arg[3]);
+ else
+#endif
+ printrusage(tcp, tcp->u_arg[3]);
+ }
+#endif /* LINUX */
+#ifdef SUNOS4
+ else if (tcp->u_rval > 0 && exited)
+ printrusage(tcp, tcp->u_arg[3]);
+#endif /* SUNOS4 */
+ else
+ tprintf("%#lx", tcp->u_arg[3]);
+ }
+ }
+ return 0;
+}
+
+int
+internal_wait(tcp, flagarg)
+struct tcb *tcp;
+int flagarg;
+{
+ int got_kids;
+
+#ifdef TCB_CLONE_THREAD
+ if (tcp->flags & TCB_CLONE_THREAD)
+ /* The children we wait for are our parent's children. */
+ got_kids = (tcp->parent->nchildren
+ > tcp->parent->nclone_detached);
+ else
+ got_kids = (tcp->nchildren > tcp->nclone_detached);
+#else
+ got_kids = tcp->nchildren > 0;
+#endif
+
+ if (entering(tcp) && got_kids) {
+ /* There are children that this parent should block for.
+ But ptrace made us the parent of the traced children
+ and the real parent will get ECHILD from the wait call.
+
+ XXX If we attached with strace -f -p PID, then there
+ may be untraced dead children the parent could be reaping
+ now, but we make him block. */
+
+ /* ??? WTA: fix bug with hanging children */
+
+ if (!(tcp->u_arg[flagarg] & WNOHANG)) {
+ /*
+ * There are traced children. We'll make the parent
+ * block to avoid a false ECHILD error due to our
+ * ptrace having stolen the children. However,
+ * we shouldn't block if there are zombies to reap.
+ * XXX doesn't handle pgrp matches (u_arg[0]==0,<-1)
+ */
+ struct tcb *child = NULL;
+ if (tcp->nzombies > 0 &&
+ (tcp->u_arg[0] == -1 ||
+ (child = pid2tcb(tcp->u_arg[0])) == NULL))
+ return 0;
+ if (tcp->u_arg[0] > 0) {
+ /*
+ * If the parent waits for a specified child
+ * PID, then it must get ECHILD right away
+ * if that PID is not one of its children.
+ * Make sure that the requested PID matches
+ * one of the parent's children that we are
+ * tracing, and don't suspend it otherwise.
+ */
+ if (child == NULL)
+ child = pid2tcb(tcp->u_arg[0]);
+ if (child == NULL || child->parent != (
+#ifdef TCB_CLONE_THREAD
+ (tcp->flags & TCB_CLONE_THREAD)
+ ? tcp->parent :
+#endif
+ tcp))
+ return 0;
+ }
+ tcp->flags |= TCB_SUSPENDED;
+ tcp->waitpid = tcp->u_arg[0];
+#ifdef TCB_CLONE_THREAD
+ if (tcp->flags & TCB_CLONE_THREAD)
+ tcp->parent->nclone_waiting++;
+#endif
+ }
+ }
+ if (exiting(tcp) && tcp->u_error == ECHILD && got_kids) {
+ if (tcp->u_arg[flagarg] & WNOHANG) {
+ /* We must force a fake result of 0 instead of
+ the ECHILD error. */
+ extern int force_result();
+ return force_result(tcp, 0, 0);
+ }
+ }
+ else if (exiting(tcp) && tcp->u_error == 0 && tcp->u_rval > 0 &&
+ tcp->nzombies > 0 && pid2tcb(tcp->u_rval) == NULL) {
+ /*
+ * We just reaped a child we don't know about,
+ * presumably a zombie we already droptcb'd.
+ */
+ tcp->nzombies--;
+ }
+ return 0;
+}
+
+#ifdef SVR4
+
+int
+sys_wait(tcp)
+struct tcb *tcp;
+{
+ if (exiting(tcp)) {
+ /* The library wrapper stuffs this into the user variable. */
+ if (!syserror(tcp))
+ printstatus(getrval2(tcp));
+ }
+ return 0;
+}
+
+#endif /* SVR4 */
+
+#ifdef FREEBSD
+int
+sys_wait(tcp)
+struct tcb *tcp;
+{
+ int status;
+
+ if (exiting(tcp)) {
+ if (!syserror(tcp)) {
+ if (umove(tcp, tcp->u_arg[0], &status) < 0)
+ tprintf("%#lx", tcp->u_arg[0]);
+ else
+ printstatus(status);
+ }
+ }
+ return 0;
+}
+#endif
+
+int
+sys_waitpid(tcp)
+struct tcb *tcp;
+{
+ return printwaitn(tcp, 3, 0);
+}
+
+int
+sys_wait4(tcp)
+struct tcb *tcp;
+{
+ return printwaitn(tcp, 4, 0);
+}
+
+#ifdef ALPHA
+int
+sys_osf_wait4(tcp)
+struct tcb *tcp;
+{
+ return printwaitn(tcp, 4, 1);
+}
+#endif
+
+#if defined SVR4 || defined LINUX
+
+static const struct xlat waitid_types[] = {
+ { P_PID, "P_PID" },
+#ifdef P_PPID
+ { P_PPID, "P_PPID" },
+#endif
+ { P_PGID, "P_PGID" },
+#ifdef P_SID
+ { P_SID, "P_SID" },
+#endif
+#ifdef P_CID
+ { P_CID, "P_CID" },
+#endif
+#ifdef P_UID
+ { P_UID, "P_UID" },
+#endif
+#ifdef P_GID
+ { P_GID, "P_GID" },
+#endif
+ { P_ALL, "P_ALL" },
+#ifdef P_LWPID
+ { P_LWPID, "P_LWPID" },
+#endif
+ { 0, NULL },
+};
+
+int
+sys_waitid(tcp)
+struct tcb *tcp;
+{
+ siginfo_t si;
+ int exited;
+
+ if (entering(tcp)) {
+ printxval(waitid_types, tcp->u_arg[0], "P_???");
+ tprintf(", %ld, ", tcp->u_arg[1]);
+ }
+ else {
+ /* siginfo */
+ exited = 0;
+ if (!tcp->u_arg[2])
+ tprintf("NULL");
+ else if (syserror(tcp))
+ tprintf("%#lx", tcp->u_arg[2]);
+ else if (umove(tcp, tcp->u_arg[2], &si) < 0)
+ tprintf("{???}");
+ else
+ printsiginfo(&si, verbose (tcp));
+ /* options */
+ tprintf(", ");
+ printflags(wait4_options, tcp->u_arg[3], "W???");
+ if (tcp->u_nargs > 4) {
+ /* usage */
+ tprintf(", ");
+ if (!tcp->u_arg[4])
+ tprintf("NULL");
+ else if (tcp->u_error)
+ tprintf("%#lx", tcp->u_arg[4]);
+ else
+ printrusage(tcp, tcp->u_arg[4]);
+ }
+ }
+ return 0;
+}
+
+#endif /* SVR4 or LINUX */
+
+int
+sys_alarm(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp))
+ tprintf("%lu", tcp->u_arg[0]);
+ return 0;
+}
+
+int
+sys_uname(tcp)
+struct tcb *tcp;
+{
+ struct utsname uname;
+
+ if (exiting(tcp)) {
+ if (syserror(tcp) || !verbose(tcp))
+ tprintf("%#lx", tcp->u_arg[0]);
+ else if (umove(tcp, tcp->u_arg[0], &uname) < 0)
+ tprintf("{...}");
+ else if (!abbrev(tcp)) {
+
+ tprintf("{sysname=\"%s\", nodename=\"%s\", ",
+ uname.sysname, uname.nodename);
+ tprintf("release=\"%s\", version=\"%s\", ",
+ uname.release, uname.version);
+ tprintf("machine=\"%s\"", uname.machine);
+#ifdef LINUX
+#ifndef __GLIBC__
+ tprintf(", domainname=\"%s\"", uname.domainname);
+#endif /* __GLIBC__ */
+#endif /* LINUX */
+ tprintf("}");
+ }
+ else
+ tprintf("{sys=\"%s\", node=\"%s\", ...}",
+ uname.sysname, uname.nodename);
+ }
+ return 0;
+}
+
+#ifndef SVR4
+
+static const struct xlat ptrace_cmds[] = {
+#ifndef FREEBSD
+ { PTRACE_TRACEME, "PTRACE_TRACEME" },
+ { PTRACE_PEEKTEXT, "PTRACE_PEEKTEXT", },
+ { PTRACE_PEEKDATA, "PTRACE_PEEKDATA", },
+ { PTRACE_PEEKUSER, "PTRACE_PEEKUSER", },
+ { PTRACE_POKETEXT, "PTRACE_POKETEXT", },
+ { PTRACE_POKEDATA, "PTRACE_POKEDATA", },
+ { PTRACE_POKEUSER, "PTRACE_POKEUSER", },
+ { PTRACE_CONT, "PTRACE_CONT" },
+ { PTRACE_KILL, "PTRACE_KILL" },
+ { PTRACE_SINGLESTEP, "PTRACE_SINGLESTEP" },
+ { PTRACE_ATTACH, "PTRACE_ATTACH" },
+ { PTRACE_DETACH, "PTRACE_DETACH" },
+#ifdef PTRACE_GETREGS
+ { PTRACE_GETREGS, "PTRACE_GETREGS" },
+#endif
+#ifdef PTRACE_SETREGS
+ { PTRACE_SETREGS, "PTRACE_SETREGS" },
+#endif
+#ifdef PTRACE_GETFPREGS
+ { PTRACE_GETFPREGS, "PTRACE_GETFPREGS", },
+#endif
+#ifdef PTRACE_SETFPREGS
+ { PTRACE_SETFPREGS, "PTRACE_SETFPREGS", },
+#endif
+#ifdef PTRACE_GETFPXREGS
+ { PTRACE_GETFPXREGS, "PTRACE_GETFPXREGS", },
+#endif
+#ifdef PTRACE_SETFPXREGS
+ { PTRACE_SETFPXREGS, "PTRACE_SETFPXREGS", },
+#endif
+#ifdef PTRACE_GETVRREGS
+ { PTRACE_GETVRREGS, "PTRACE_GETVRREGS", },
+#endif
+#ifdef PTRACE_SETVRREGS
+ { PTRACE_SETVRREGS, "PTRACE_SETVRREGS", },
+#endif
+#ifdef SUNOS4
+ { PTRACE_READDATA, "PTRACE_READDATA" },
+ { PTRACE_WRITEDATA, "PTRACE_WRITEDATA" },
+ { PTRACE_READTEXT, "PTRACE_READTEXT" },
+ { PTRACE_WRITETEXT, "PTRACE_WRITETEXT" },
+ { PTRACE_GETFPAREGS, "PTRACE_GETFPAREGS" },
+ { PTRACE_SETFPAREGS, "PTRACE_SETFPAREGS" },
+#ifdef SPARC
+ { PTRACE_GETWINDOW, "PTRACE_GETWINDOW" },
+ { PTRACE_SETWINDOW, "PTRACE_SETWINDOW" },
+#else /* !SPARC */
+ { PTRACE_22, "PTRACE_PTRACE_22" },
+ { PTRACE_23, "PTRACE_PTRACE_23" },
+#endif /* !SPARC */
+#endif /* SUNOS4 */
+ { PTRACE_SYSCALL, "PTRACE_SYSCALL" },
+#ifdef SUNOS4
+ { PTRACE_DUMPCORE, "PTRACE_DUMPCORE" },
+#ifdef I386
+ { PTRACE_SETWRBKPT, "PTRACE_SETWRBKPT" },
+ { PTRACE_SETACBKPT, "PTRACE_SETACBKPT" },
+ { PTRACE_CLRDR7, "PTRACE_CLRDR7" },
+#else /* !I386 */
+ { PTRACE_26, "PTRACE_26" },
+ { PTRACE_27, "PTRACE_27" },
+ { PTRACE_28, "PTRACE_28" },
+#endif /* !I386 */
+ { PTRACE_GETUCODE, "PTRACE_GETUCODE" },
+#endif /* SUNOS4 */
+#else /* FREEBSD */
+ { PT_TRACE_ME, "PT_TRACE_ME" },
+ { PT_READ_I, "PT_READ_I" },
+ { PT_READ_D, "PT_READ_D" },
+ { PT_WRITE_I, "PT_WRITE_I" },
+ { PT_WRITE_D, "PT_WRITE_D" },
+#ifdef PT_READ_U
+ { PT_READ_U, "PT_READ_U" },
+#endif
+ { PT_CONTINUE, "PT_CONTINUE" },
+ { PT_KILL, "PT_KILL" },
+ { PT_STEP, "PT_STEP" },
+ { PT_ATTACH, "PT_ATTACH" },
+ { PT_DETACH, "PT_DETACH" },
+ { PT_GETREGS, "PT_GETREGS" },
+ { PT_SETREGS, "PT_SETREGS" },
+ { PT_GETFPREGS, "PT_GETFPREGS" },
+ { PT_SETFPREGS, "PT_SETFPREGS" },
+ { PT_GETDBREGS, "PT_GETDBREGS" },
+ { PT_SETDBREGS, "PT_SETDBREGS" },
+#endif /* FREEBSD */
+ { 0, NULL },
+};
+
+#ifndef FREEBSD
+#ifndef SUNOS4_KERNEL_ARCH_KLUDGE
+static
+#endif /* !SUNOS4_KERNEL_ARCH_KLUDGE */
+const struct xlat struct_user_offsets[] = {
+#ifdef LINUX
+#if defined(S390) || defined(S390X)
+ { PT_PSWMASK, "psw_mask" },
+ { PT_PSWADDR, "psw_addr" },
+ { PT_GPR0, "gpr0" },
+ { PT_GPR1, "gpr1" },
+ { PT_GPR2, "gpr2" },
+ { PT_GPR3, "gpr3" },
+ { PT_GPR4, "gpr4" },
+ { PT_GPR5, "gpr5" },
+ { PT_GPR6, "gpr6" },
+ { PT_GPR7, "gpr7" },
+ { PT_GPR8, "gpr8" },
+ { PT_GPR9, "gpr9" },
+ { PT_GPR10, "gpr10" },
+ { PT_GPR11, "gpr11" },
+ { PT_GPR12, "gpr12" },
+ { PT_GPR13, "gpr13" },
+ { PT_GPR14, "gpr14" },
+ { PT_GPR15, "gpr15" },
+ { PT_ACR0, "acr0" },
+ { PT_ACR1, "acr1" },
+ { PT_ACR2, "acr2" },
+ { PT_ACR3, "acr3" },
+ { PT_ACR4, "acr4" },
+ { PT_ACR5, "acr5" },
+ { PT_ACR6, "acr6" },
+ { PT_ACR7, "acr7" },
+ { PT_ACR8, "acr8" },
+ { PT_ACR9, "acr9" },
+ { PT_ACR10, "acr10" },
+ { PT_ACR11, "acr11" },
+ { PT_ACR12, "acr12" },
+ { PT_ACR13, "acr13" },
+ { PT_ACR14, "acr14" },
+ { PT_ACR15, "acr15" },
+ { PT_ORIGGPR2, "orig_gpr2" },
+ { PT_FPC, "fpc" },
+#if defined(S390)
+ { PT_FPR0_HI, "fpr0.hi" },
+ { PT_FPR0_LO, "fpr0.lo" },
+ { PT_FPR1_HI, "fpr1.hi" },
+ { PT_FPR1_LO, "fpr1.lo" },
+ { PT_FPR2_HI, "fpr2.hi" },
+ { PT_FPR2_LO, "fpr2.lo" },
+ { PT_FPR3_HI, "fpr3.hi" },
+ { PT_FPR3_LO, "fpr3.lo" },
+ { PT_FPR4_HI, "fpr4.hi" },
+ { PT_FPR4_LO, "fpr4.lo" },
+ { PT_FPR5_HI, "fpr5.hi" },
+ { PT_FPR5_LO, "fpr5.lo" },
+ { PT_FPR6_HI, "fpr6.hi" },
+ { PT_FPR6_LO, "fpr6.lo" },
+ { PT_FPR7_HI, "fpr7.hi" },
+ { PT_FPR7_LO, "fpr7.lo" },
+ { PT_FPR8_HI, "fpr8.hi" },
+ { PT_FPR8_LO, "fpr8.lo" },
+ { PT_FPR9_HI, "fpr9.hi" },
+ { PT_FPR9_LO, "fpr9.lo" },
+ { PT_FPR10_HI, "fpr10.hi" },
+ { PT_FPR10_LO, "fpr10.lo" },
+ { PT_FPR11_HI, "fpr11.hi" },
+ { PT_FPR11_LO, "fpr11.lo" },
+ { PT_FPR12_HI, "fpr12.hi" },
+ { PT_FPR12_LO, "fpr12.lo" },
+ { PT_FPR13_HI, "fpr13.hi" },
+ { PT_FPR13_LO, "fpr13.lo" },
+ { PT_FPR14_HI, "fpr14.hi" },
+ { PT_FPR14_LO, "fpr14.lo" },
+ { PT_FPR15_HI, "fpr15.hi" },
+ { PT_FPR15_LO, "fpr15.lo" },
+#endif
+#if defined(S390X)
+ { PT_FPR0, "fpr0" },
+ { PT_FPR1, "fpr1" },
+ { PT_FPR2, "fpr2" },
+ { PT_FPR3, "fpr3" },
+ { PT_FPR4, "fpr4" },
+ { PT_FPR5, "fpr5" },
+ { PT_FPR6, "fpr6" },
+ { PT_FPR7, "fpr7" },
+ { PT_FPR8, "fpr8" },
+ { PT_FPR9, "fpr9" },
+ { PT_FPR10, "fpr10" },
+ { PT_FPR11, "fpr11" },
+ { PT_FPR12, "fpr12" },
+ { PT_FPR13, "fpr13" },
+ { PT_FPR14, "fpr14" },
+ { PT_FPR15, "fpr15" },
+#endif
+ { PT_CR_9, "cr9" },
+ { PT_CR_10, "cr10" },
+ { PT_CR_11, "cr11" },
+ { PT_IEEE_IP, "ieee_exception_ip" },
+#endif
+#if defined(SPARC)
+ /* XXX No support for these offsets yet. */
+#elif defined(HPPA)
+ /* XXX No support for these offsets yet. */
+#elif defined(POWERPC)
+#ifndef PT_ORIG_R3
+#define PT_ORIG_R3 34
+#endif
+#define REGSIZE (sizeof(unsigned long))
+ { REGSIZE*PT_R0, "r0" },
+ { REGSIZE*PT_R1, "r1" },
+ { REGSIZE*PT_R2, "r2" },
+ { REGSIZE*PT_R3, "r3" },
+ { REGSIZE*PT_R4, "r4" },
+ { REGSIZE*PT_R5, "r5" },
+ { REGSIZE*PT_R6, "r6" },
+ { REGSIZE*PT_R7, "r7" },
+ { REGSIZE*PT_R8, "r8" },
+ { REGSIZE*PT_R9, "r9" },
+ { REGSIZE*PT_R10, "r10" },
+ { REGSIZE*PT_R11, "r11" },
+ { REGSIZE*PT_R12, "r12" },
+ { REGSIZE*PT_R13, "r13" },
+ { REGSIZE*PT_R14, "r14" },
+ { REGSIZE*PT_R15, "r15" },
+ { REGSIZE*PT_R16, "r16" },
+ { REGSIZE*PT_R17, "r17" },
+ { REGSIZE*PT_R18, "r18" },
+ { REGSIZE*PT_R19, "r19" },
+ { REGSIZE*PT_R20, "r20" },
+ { REGSIZE*PT_R21, "r21" },
+ { REGSIZE*PT_R22, "r22" },
+ { REGSIZE*PT_R23, "r23" },
+ { REGSIZE*PT_R24, "r24" },
+ { REGSIZE*PT_R25, "r25" },
+ { REGSIZE*PT_R26, "r26" },
+ { REGSIZE*PT_R27, "r27" },
+ { REGSIZE*PT_R28, "r28" },
+ { REGSIZE*PT_R29, "r29" },
+ { REGSIZE*PT_R30, "r30" },
+ { REGSIZE*PT_R31, "r31" },
+ { REGSIZE*PT_NIP, "NIP" },
+ { REGSIZE*PT_MSR, "MSR" },
+ { REGSIZE*PT_ORIG_R3, "ORIG_R3" },
+ { REGSIZE*PT_CTR, "CTR" },
+ { REGSIZE*PT_LNK, "LNK" },
+ { REGSIZE*PT_XER, "XER" },
+ { REGSIZE*PT_CCR, "CCR" },
+ { REGSIZE*PT_FPR0, "FPR0" },
+#undef REGSIZE
+#else
+#ifdef ALPHA
+ { 0, "r0" },
+ { 1, "r1" },
+ { 2, "r2" },
+ { 3, "r3" },
+ { 4, "r4" },
+ { 5, "r5" },
+ { 6, "r6" },
+ { 7, "r7" },
+ { 8, "r8" },
+ { 9, "r9" },
+ { 10, "r10" },
+ { 11, "r11" },
+ { 12, "r12" },
+ { 13, "r13" },
+ { 14, "r14" },
+ { 15, "r15" },
+ { 16, "r16" },
+ { 17, "r17" },
+ { 18, "r18" },
+ { 19, "r19" },
+ { 20, "r20" },
+ { 21, "r21" },
+ { 22, "r22" },
+ { 23, "r23" },
+ { 24, "r24" },
+ { 25, "r25" },
+ { 26, "r26" },
+ { 27, "r27" },
+ { 28, "r28" },
+ { 29, "gp" },
+ { 30, "fp" },
+ { 31, "zero" },
+ { 32, "fp0" },
+ { 33, "fp" },
+ { 34, "fp2" },
+ { 35, "fp3" },
+ { 36, "fp4" },
+ { 37, "fp5" },
+ { 38, "fp6" },
+ { 39, "fp7" },
+ { 40, "fp8" },
+ { 41, "fp9" },
+ { 42, "fp10" },
+ { 43, "fp11" },
+ { 44, "fp12" },
+ { 45, "fp13" },
+ { 46, "fp14" },
+ { 47, "fp15" },
+ { 48, "fp16" },
+ { 49, "fp17" },
+ { 50, "fp18" },
+ { 51, "fp19" },
+ { 52, "fp20" },
+ { 53, "fp21" },
+ { 54, "fp22" },
+ { 55, "fp23" },
+ { 56, "fp24" },
+ { 57, "fp25" },
+ { 58, "fp26" },
+ { 59, "fp27" },
+ { 60, "fp28" },
+ { 61, "fp29" },
+ { 62, "fp30" },
+ { 63, "fp31" },
+ { 64, "pc" },
+#else /* !ALPHA */
+#ifdef IA64
+ { PT_F32, "f32" }, { PT_F33, "f33" }, { PT_F34, "f34" },
+ { PT_F35, "f35" }, { PT_F36, "f36" }, { PT_F37, "f37" },
+ { PT_F38, "f38" }, { PT_F39, "f39" }, { PT_F40, "f40" },
+ { PT_F41, "f41" }, { PT_F42, "f42" }, { PT_F43, "f43" },
+ { PT_F44, "f44" }, { PT_F45, "f45" }, { PT_F46, "f46" },
+ { PT_F47, "f47" }, { PT_F48, "f48" }, { PT_F49, "f49" },
+ { PT_F50, "f50" }, { PT_F51, "f51" }, { PT_F52, "f52" },
+ { PT_F53, "f53" }, { PT_F54, "f54" }, { PT_F55, "f55" },
+ { PT_F56, "f56" }, { PT_F57, "f57" }, { PT_F58, "f58" },
+ { PT_F59, "f59" }, { PT_F60, "f60" }, { PT_F61, "f61" },
+ { PT_F62, "f62" }, { PT_F63, "f63" }, { PT_F64, "f64" },
+ { PT_F65, "f65" }, { PT_F66, "f66" }, { PT_F67, "f67" },
+ { PT_F68, "f68" }, { PT_F69, "f69" }, { PT_F70, "f70" },
+ { PT_F71, "f71" }, { PT_F72, "f72" }, { PT_F73, "f73" },
+ { PT_F74, "f74" }, { PT_F75, "f75" }, { PT_F76, "f76" },
+ { PT_F77, "f77" }, { PT_F78, "f78" }, { PT_F79, "f79" },
+ { PT_F80, "f80" }, { PT_F81, "f81" }, { PT_F82, "f82" },
+ { PT_F83, "f83" }, { PT_F84, "f84" }, { PT_F85, "f85" },
+ { PT_F86, "f86" }, { PT_F87, "f87" }, { PT_F88, "f88" },
+ { PT_F89, "f89" }, { PT_F90, "f90" }, { PT_F91, "f91" },
+ { PT_F92, "f92" }, { PT_F93, "f93" }, { PT_F94, "f94" },
+ { PT_F95, "f95" }, { PT_F96, "f96" }, { PT_F97, "f97" },
+ { PT_F98, "f98" }, { PT_F99, "f99" }, { PT_F100, "f100" },
+ { PT_F101, "f101" }, { PT_F102, "f102" }, { PT_F103, "f103" },
+ { PT_F104, "f104" }, { PT_F105, "f105" }, { PT_F106, "f106" },
+ { PT_F107, "f107" }, { PT_F108, "f108" }, { PT_F109, "f109" },
+ { PT_F110, "f110" }, { PT_F111, "f111" }, { PT_F112, "f112" },
+ { PT_F113, "f113" }, { PT_F114, "f114" }, { PT_F115, "f115" },
+ { PT_F116, "f116" }, { PT_F117, "f117" }, { PT_F118, "f118" },
+ { PT_F119, "f119" }, { PT_F120, "f120" }, { PT_F121, "f121" },
+ { PT_F122, "f122" }, { PT_F123, "f123" }, { PT_F124, "f124" },
+ { PT_F125, "f125" }, { PT_F126, "f126" }, { PT_F127, "f127" },
+ /* switch stack: */
+ { PT_F2, "f2" }, { PT_F3, "f3" }, { PT_F4, "f4" },
+ { PT_F5, "f5" }, { PT_F10, "f10" }, { PT_F11, "f11" },
+ { PT_F12, "f12" }, { PT_F13, "f13" }, { PT_F14, "f14" },
+ { PT_F15, "f15" }, { PT_F16, "f16" }, { PT_F17, "f17" },
+ { PT_F18, "f18" }, { PT_F19, "f19" }, { PT_F20, "f20" },
+ { PT_F21, "f21" }, { PT_F22, "f22" }, { PT_F23, "f23" },
+ { PT_F24, "f24" }, { PT_F25, "f25" }, { PT_F26, "f26" },
+ { PT_F27, "f27" }, { PT_F28, "f28" }, { PT_F29, "f29" },
+ { PT_F30, "f30" }, { PT_F31, "f31" }, { PT_R4, "r4" },
+ { PT_R5, "r5" }, { PT_R6, "r6" }, { PT_R7, "r7" },
+ { PT_B1, "b1" }, { PT_B2, "b2" }, { PT_B3, "b3" },
+ { PT_B4, "b4" }, { PT_B5, "b5" },
+ { PT_AR_EC, "ar.ec" }, { PT_AR_LC, "ar.lc" },
+ /* pt_regs */
+ { PT_CR_IPSR, "psr" }, { PT_CR_IIP, "ip" },
+ { PT_CFM, "cfm" }, { PT_AR_UNAT, "ar.unat" },
+ { PT_AR_PFS, "ar.pfs" }, { PT_AR_RSC, "ar.rsc" },
+ { PT_AR_RNAT, "ar.rnat" }, { PT_AR_BSPSTORE, "ar.bspstore" },
+ { PT_PR, "pr" }, { PT_B6, "b6" }, { PT_AR_BSP, "ar.bsp" },
+ { PT_R1, "r1" }, { PT_R2, "r2" }, { PT_R3, "r3" },
+ { PT_R12, "r12" }, { PT_R13, "r13" }, { PT_R14, "r14" },
+ { PT_R15, "r15" }, { PT_R8, "r8" }, { PT_R9, "r9" },
+ { PT_R10, "r10" }, { PT_R11, "r11" }, { PT_R16, "r16" },
+ { PT_R17, "r17" }, { PT_R18, "r18" }, { PT_R19, "r19" },
+ { PT_R20, "r20" }, { PT_R21, "r21" }, { PT_R22, "r22" },
+ { PT_R23, "r23" }, { PT_R24, "r24" }, { PT_R25, "r25" },
+ { PT_R26, "r26" }, { PT_R27, "r27" }, { PT_R28, "r28" },
+ { PT_R29, "r29" }, { PT_R30, "r30" }, { PT_R31, "r31" },
+ { PT_AR_CCV, "ar.ccv" }, { PT_AR_FPSR, "ar.fpsr" },
+ { PT_B0, "b0" }, { PT_B7, "b7" }, { PT_F6, "f6" },
+ { PT_F7, "f7" }, { PT_F8, "f8" }, { PT_F9, "f9" },
+# ifdef PT_AR_CSD
+ { PT_AR_CSD, "ar.csd" },
+# endif
+# ifdef PT_AR_SSD
+ { PT_AR_SSD, "ar.ssd" },
+# endif
+ { PT_DBR, "dbr" }, { PT_IBR, "ibr" }, { PT_PMD, "pmd" },
+#else /* !IA64 */
+#ifdef I386
+ { 4*EBX, "4*EBX" },
+ { 4*ECX, "4*ECX" },
+ { 4*EDX, "4*EDX" },
+ { 4*ESI, "4*ESI" },
+ { 4*EDI, "4*EDI" },
+ { 4*EBP, "4*EBP" },
+ { 4*EAX, "4*EAX" },
+ { 4*DS, "4*DS" },
+ { 4*ES, "4*ES" },
+ { 4*FS, "4*FS" },
+ { 4*GS, "4*GS" },
+ { 4*ORIG_EAX, "4*ORIG_EAX" },
+ { 4*EIP, "4*EIP" },
+ { 4*CS, "4*CS" },
+ { 4*EFL, "4*EFL" },
+ { 4*UESP, "4*UESP" },
+ { 4*SS, "4*SS" },
+#else /* !I386 */
+#ifdef X86_64
+ { 8*R15, "8*R15" },
+ { 8*R14, "8*R14" },
+ { 8*R13, "8*R13" },
+ { 8*R12, "8*R12" },
+ { 8*RBP, "8*RBP" },
+ { 8*RBX, "8*RBX" },
+ { 8*R11, "8*R11" },
+ { 8*R10, "8*R10" },
+ { 8*R9, "8*R9" },
+ { 8*R8, "8*R8" },
+ { 8*RAX, "8*RAX" },
+ { 8*RCX, "8*RCX" },
+ { 8*RDX, "8*RDX" },
+ { 8*RSI, "8*RSI" },
+ { 8*RDI, "8*RDI" },
+#if 0
+ { DS, "DS" },
+ { ES, "ES" },
+ { FS, "FS" },
+ { GS, "GS" },
+#endif
+ { 8*ORIG_RAX, "8*ORIG_RAX" },
+ { 8*RIP, "8*RIP" },
+ { 8*CS, "8*CS" },
+ { 8*EFLAGS, "8*EFL" },
+ { 8*RSP, "8*RSP" },
+ { 8*SS, "8*SS" },
+#endif
+#ifdef M68K
+ { 4*PT_D1, "4*PT_D1" },
+ { 4*PT_D2, "4*PT_D2" },
+ { 4*PT_D3, "4*PT_D3" },
+ { 4*PT_D4, "4*PT_D4" },
+ { 4*PT_D5, "4*PT_D5" },
+ { 4*PT_D6, "4*PT_D6" },
+ { 4*PT_D7, "4*PT_D7" },
+ { 4*PT_A0, "4*PT_A0" },
+ { 4*PT_A1, "4*PT_A1" },
+ { 4*PT_A2, "4*PT_A2" },
+ { 4*PT_A3, "4*PT_A3" },
+ { 4*PT_A4, "4*PT_A4" },
+ { 4*PT_A5, "4*PT_A5" },
+ { 4*PT_A6, "4*PT_A6" },
+ { 4*PT_D0, "4*PT_D0" },
+ { 4*PT_USP, "4*PT_USP" },
+ { 4*PT_ORIG_D0, "4*PT_ORIG_D0" },
+ { 4*PT_SR, "4*PT_SR" },
+ { 4*PT_PC, "4*PT_PC" },
+#endif /* M68K */
+#endif /* !I386 */
+#ifdef SH
+ { 4*REG_REG0, "4*REG_REG0" },
+ { 4*(REG_REG0+1), "4*REG_REG1" },
+ { 4*(REG_REG0+2), "4*REG_REG2" },
+ { 4*(REG_REG0+3), "4*REG_REG3" },
+ { 4*(REG_REG0+4), "4*REG_REG4" },
+ { 4*(REG_REG0+5), "4*REG_REG5" },
+ { 4*(REG_REG0+6), "4*REG_REG6" },
+ { 4*(REG_REG0+7), "4*REG_REG7" },
+ { 4*(REG_REG0+8), "4*REG_REG8" },
+ { 4*(REG_REG0+9), "4*REG_REG9" },
+ { 4*(REG_REG0+10), "4*REG_REG10" },
+ { 4*(REG_REG0+11), "4*REG_REG11" },
+ { 4*(REG_REG0+12), "4*REG_REG12" },
+ { 4*(REG_REG0+13), "4*REG_REG13" },
+ { 4*(REG_REG0+14), "4*REG_REG14" },
+ { 4*REG_REG15, "4*REG_REG15" },
+ { 4*REG_PC, "4*REG_PC" },
+ { 4*REG_PR, "4*REG_PR" },
+ { 4*REG_SR, "4*REG_SR" },
+ { 4*REG_GBR, "4*REG_GBR" },
+ { 4*REG_MACH, "4*REG_MACH" },
+ { 4*REG_MACL, "4*REG_MACL" },
+ { 4*REG_SYSCALL, "4*REG_SYSCALL" },
+ { 4*REG_FPUL, "4*REG_FPUL" },
+ { 4*REG_FPREG0, "4*REG_FPREG0" },
+ { 4*(REG_FPREG0+1), "4*REG_FPREG1" },
+ { 4*(REG_FPREG0+2), "4*REG_FPREG2" },
+ { 4*(REG_FPREG0+3), "4*REG_FPREG3" },
+ { 4*(REG_FPREG0+4), "4*REG_FPREG4" },
+ { 4*(REG_FPREG0+5), "4*REG_FPREG5" },
+ { 4*(REG_FPREG0+6), "4*REG_FPREG6" },
+ { 4*(REG_FPREG0+7), "4*REG_FPREG7" },
+ { 4*(REG_FPREG0+8), "4*REG_FPREG8" },
+ { 4*(REG_FPREG0+9), "4*REG_FPREG9" },
+ { 4*(REG_FPREG0+10), "4*REG_FPREG10" },
+ { 4*(REG_FPREG0+11), "4*REG_FPREG11" },
+ { 4*(REG_FPREG0+12), "4*REG_FPREG12" },
+ { 4*(REG_FPREG0+13), "4*REG_FPREG13" },
+ { 4*(REG_FPREG0+14), "4*REG_FPREG14" },
+ { 4*REG_FPREG15, "4*REG_FPREG15" },
+#ifdef REG_XDREG0
+ { 4*REG_XDREG0, "4*REG_XDREG0" },
+ { 4*(REG_XDREG0+2), "4*REG_XDREG2" },
+ { 4*(REG_XDREG0+4), "4*REG_XDREG4" },
+ { 4*(REG_XDREG0+6), "4*REG_XDREG6" },
+ { 4*(REG_XDREG0+8), "4*REG_XDREG8" },
+ { 4*(REG_XDREG0+10), "4*REG_XDREG10" },
+ { 4*(REG_XDREG0+12), "4*REG_XDREG12" },
+ { 4*REG_XDREG14, "4*REG_XDREG14" },
+#endif
+ { 4*REG_FPSCR, "4*REG_FPSCR" },
+#endif /* SH */
+#ifdef SH64
+ { 0, "PC(L)" },
+ { 4, "PC(U)" },
+ { 8, "SR(L)" },
+ { 12, "SR(U)" },
+ { 16, "syscall no.(L)" },
+ { 20, "syscall_no.(U)" },
+ { 24, "R0(L)" },
+ { 28, "R0(U)" },
+ { 32, "R1(L)" },
+ { 36, "R1(U)" },
+ { 40, "R2(L)" },
+ { 44, "R2(U)" },
+ { 48, "R3(L)" },
+ { 52, "R3(U)" },
+ { 56, "R4(L)" },
+ { 60, "R4(U)" },
+ { 64, "R5(L)" },
+ { 68, "R5(U)" },
+ { 72, "R6(L)" },
+ { 76, "R6(U)" },
+ { 80, "R7(L)" },
+ { 84, "R7(U)" },
+ { 88, "R8(L)" },
+ { 92, "R8(U)" },
+ { 96, "R9(L)" },
+ { 100, "R9(U)" },
+ { 104, "R10(L)" },
+ { 108, "R10(U)" },
+ { 112, "R11(L)" },
+ { 116, "R11(U)" },
+ { 120, "R12(L)" },
+ { 124, "R12(U)" },
+ { 128, "R13(L)" },
+ { 132, "R13(U)" },
+ { 136, "R14(L)" },
+ { 140, "R14(U)" },
+ { 144, "R15(L)" },
+ { 148, "R15(U)" },
+ { 152, "R16(L)" },
+ { 156, "R16(U)" },
+ { 160, "R17(L)" },
+ { 164, "R17(U)" },
+ { 168, "R18(L)" },
+ { 172, "R18(U)" },
+ { 176, "R19(L)" },
+ { 180, "R19(U)" },
+ { 184, "R20(L)" },
+ { 188, "R20(U)" },
+ { 192, "R21(L)" },
+ { 196, "R21(U)" },
+ { 200, "R22(L)" },
+ { 204, "R22(U)" },
+ { 208, "R23(L)" },
+ { 212, "R23(U)" },
+ { 216, "R24(L)" },
+ { 220, "R24(U)" },
+ { 224, "R25(L)" },
+ { 228, "R25(U)" },
+ { 232, "R26(L)" },
+ { 236, "R26(U)" },
+ { 240, "R27(L)" },
+ { 244, "R27(U)" },
+ { 248, "R28(L)" },
+ { 252, "R28(U)" },
+ { 256, "R29(L)" },
+ { 260, "R29(U)" },
+ { 264, "R30(L)" },
+ { 268, "R30(U)" },
+ { 272, "R31(L)" },
+ { 276, "R31(U)" },
+ { 280, "R32(L)" },
+ { 284, "R32(U)" },
+ { 288, "R33(L)" },
+ { 292, "R33(U)" },
+ { 296, "R34(L)" },
+ { 300, "R34(U)" },
+ { 304, "R35(L)" },
+ { 308, "R35(U)" },
+ { 312, "R36(L)" },
+ { 316, "R36(U)" },
+ { 320, "R37(L)" },
+ { 324, "R37(U)" },
+ { 328, "R38(L)" },
+ { 332, "R38(U)" },
+ { 336, "R39(L)" },
+ { 340, "R39(U)" },
+ { 344, "R40(L)" },
+ { 348, "R40(U)" },
+ { 352, "R41(L)" },
+ { 356, "R41(U)" },
+ { 360, "R42(L)" },
+ { 364, "R42(U)" },
+ { 368, "R43(L)" },
+ { 372, "R43(U)" },
+ { 376, "R44(L)" },
+ { 380, "R44(U)" },
+ { 384, "R45(L)" },
+ { 388, "R45(U)" },
+ { 392, "R46(L)" },
+ { 396, "R46(U)" },
+ { 400, "R47(L)" },
+ { 404, "R47(U)" },
+ { 408, "R48(L)" },
+ { 412, "R48(U)" },
+ { 416, "R49(L)" },
+ { 420, "R49(U)" },
+ { 424, "R50(L)" },
+ { 428, "R50(U)" },
+ { 432, "R51(L)" },
+ { 436, "R51(U)" },
+ { 440, "R52(L)" },
+ { 444, "R52(U)" },
+ { 448, "R53(L)" },
+ { 452, "R53(U)" },
+ { 456, "R54(L)" },
+ { 460, "R54(U)" },
+ { 464, "R55(L)" },
+ { 468, "R55(U)" },
+ { 472, "R56(L)" },
+ { 476, "R56(U)" },
+ { 480, "R57(L)" },
+ { 484, "R57(U)" },
+ { 488, "R58(L)" },
+ { 492, "R58(U)" },
+ { 496, "R59(L)" },
+ { 500, "R59(U)" },
+ { 504, "R60(L)" },
+ { 508, "R60(U)" },
+ { 512, "R61(L)" },
+ { 516, "R61(U)" },
+ { 520, "R62(L)" },
+ { 524, "R62(U)" },
+ { 528, "TR0(L)" },
+ { 532, "TR0(U)" },
+ { 536, "TR1(L)" },
+ { 540, "TR1(U)" },
+ { 544, "TR2(L)" },
+ { 548, "TR2(U)" },
+ { 552, "TR3(L)" },
+ { 556, "TR3(U)" },
+ { 560, "TR4(L)" },
+ { 564, "TR4(U)" },
+ { 568, "TR5(L)" },
+ { 572, "TR5(U)" },
+ { 576, "TR6(L)" },
+ { 580, "TR6(U)" },
+ { 584, "TR7(L)" },
+ { 588, "TR7(U)" },
+ /* This entry is in case pt_regs contains dregs (depends on
+ the kernel build options). */
+ { uoff(regs), "offsetof(struct user, regs)" },
+ { uoff(fpu), "offsetof(struct user, fpu)" },
+#endif
+#ifdef ARM
+ { uoff(regs.ARM_r0), "r0" },
+ { uoff(regs.ARM_r1), "r1" },
+ { uoff(regs.ARM_r2), "r2" },
+ { uoff(regs.ARM_r3), "r3" },
+ { uoff(regs.ARM_r4), "r4" },
+ { uoff(regs.ARM_r5), "r5" },
+ { uoff(regs.ARM_r6), "r6" },
+ { uoff(regs.ARM_r7), "r7" },
+ { uoff(regs.ARM_r8), "r8" },
+ { uoff(regs.ARM_r9), "r9" },
+ { uoff(regs.ARM_r10), "r10" },
+ { uoff(regs.ARM_fp), "fp" },
+ { uoff(regs.ARM_ip), "ip" },
+ { uoff(regs.ARM_sp), "sp" },
+ { uoff(regs.ARM_lr), "lr" },
+ { uoff(regs.ARM_pc), "pc" },
+ { uoff(regs.ARM_cpsr), "cpsr" },
+#endif
+
+#if !defined(S390) && !defined(S390X) && !defined(MIPS) && !defined(SPARC64)
+ { uoff(u_fpvalid), "offsetof(struct user, u_fpvalid)" },
+#endif
+#if defined(I386) || defined(X86_64)
+ { uoff(i387), "offsetof(struct user, i387)" },
+#else /* !I386 */
+#ifdef M68K
+ { uoff(m68kfp), "offsetof(struct user, m68kfp)" },
+#endif /* M68K */
+#endif /* !I386 */
+ { 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
+#ifdef SH64
+ { uoff(start_data), "offsetof(struct user, start_data)" },
+#endif
+#if !defined(SPARC64)
+ { uoff(start_stack), "offsetof(struct user, start_stack)" },
+#endif
+ { uoff(signal), "offsetof(struct user, signal)" },
+#if !defined(S390) && !defined(S390X) && !defined(MIPS) && !defined(SH) && !defined(SH64) && !defined(SPARC64)
+ { uoff(reserved), "offsetof(struct user, reserved)" },
+#endif
+#if !defined(SPARC64)
+ { uoff(u_ar0), "offsetof(struct user, u_ar0)" },
+#endif
+#if !defined(ARM) && !defined(MIPS) && !defined(S390) && !defined(S390X) && !defined(SPARC64)
+ { 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)
+ { uoff(u_debugreg), "offsetof(struct user, u_debugreg)" },
+#endif /* I386 */
+#endif /* !IA64 */
+#endif /* !ALPHA */
+#endif /* !POWERPC/!SPARC */
+#endif /* LINUX */
+#ifdef SUNOS4
+ { uoff(u_pcb), "offsetof(struct user, u_pcb)" },
+ { uoff(u_procp), "offsetof(struct user, u_procp)" },
+ { uoff(u_ar0), "offsetof(struct user, u_ar0)" },
+ { uoff(u_comm[0]), "offsetof(struct user, u_comm[0])" },
+ { uoff(u_arg[0]), "offsetof(struct user, u_arg[0])" },
+ { uoff(u_ap), "offsetof(struct user, u_ap)" },
+ { uoff(u_qsave), "offsetof(struct user, u_qsave)" },
+ { uoff(u_rval1), "offsetof(struct user, u_rval1)" },
+ { uoff(u_rval2), "offsetof(struct user, u_rval2)" },
+ { uoff(u_error), "offsetof(struct user, u_error)" },
+ { uoff(u_eosys), "offsetof(struct user, u_eosys)" },
+ { uoff(u_ssave), "offsetof(struct user, u_ssave)" },
+ { uoff(u_signal[0]), "offsetof(struct user, u_signal)" },
+ { uoff(u_sigmask[0]), "offsetof(struct user, u_sigmask)" },
+ { uoff(u_sigonstack), "offsetof(struct user, u_sigonstack)" },
+ { uoff(u_sigintr), "offsetof(struct user, u_sigintr)" },
+ { uoff(u_sigreset), "offsetof(struct user, u_sigreset)" },
+ { uoff(u_oldmask), "offsetof(struct user, u_oldmask)" },
+ { uoff(u_code), "offsetof(struct user, u_code)" },
+ { uoff(u_addr), "offsetof(struct user, u_addr)" },
+ { uoff(u_sigstack), "offsetof(struct user, u_sigstack)" },
+ { uoff(u_ofile), "offsetof(struct user, u_ofile)" },
+ { uoff(u_pofile), "offsetof(struct user, u_pofile)" },
+ { uoff(u_ofile_arr[0]), "offsetof(struct user, u_ofile_arr[0])" },
+ { uoff(u_pofile_arr[0]),"offsetof(struct user, u_pofile_arr[0])"},
+ { uoff(u_lastfile), "offsetof(struct user, u_lastfile)" },
+ { uoff(u_cwd), "offsetof(struct user, u_cwd)" },
+ { uoff(u_cdir), "offsetof(struct user, u_cdir)" },
+ { uoff(u_rdir), "offsetof(struct user, u_rdir)" },
+ { uoff(u_cmask), "offsetof(struct user, u_cmask)" },
+ { uoff(u_ru), "offsetof(struct user, u_ru)" },
+ { uoff(u_cru), "offsetof(struct user, u_cru)" },
+ { uoff(u_timer[0]), "offsetof(struct user, u_timer[0])" },
+ { uoff(u_XXX[0]), "offsetof(struct user, u_XXX[0])" },
+ { uoff(u_ioch), "offsetof(struct user, u_ioch)" },
+ { uoff(u_start), "offsetof(struct user, u_start)" },
+ { uoff(u_acflag), "offsetof(struct user, u_acflag)" },
+ { uoff(u_prof.pr_base), "offsetof(struct user, u_prof.pr_base)" },
+ { uoff(u_prof.pr_size), "offsetof(struct user, u_prof.pr_size)" },
+ { uoff(u_prof.pr_off), "offsetof(struct user, u_prof.pr_off)" },
+ { uoff(u_prof.pr_scale),"offsetof(struct user, u_prof.pr_scale)"},
+ { uoff(u_rlimit[0]), "offsetof(struct user, u_rlimit)" },
+ { uoff(u_exdata.Ux_A), "offsetof(struct user, u_exdata.Ux_A)" },
+ { uoff(u_exdata.ux_shell[0]),"offsetof(struct user, u_exdata.ux_shell[0])"},
+ { uoff(u_lofault), "offsetof(struct user, u_lofault)" },
+#endif /* SUNOS4 */
+#ifndef HPPA
+ { sizeof(struct user), "sizeof(struct user)" },
+#endif
+ { 0, NULL },
+};
+#endif
+
+int
+sys_ptrace(tcp)
+struct tcb *tcp;
+{
+ const struct xlat *x;
+ long addr;
+
+ if (entering(tcp)) {
+ printxval(ptrace_cmds, tcp->u_arg[0],
+#ifndef FREEBSD
+ "PTRACE_???"
+#else
+ "PT_???"
+#endif
+ );
+ tprintf(", %lu, ", tcp->u_arg[1]);
+ addr = tcp->u_arg[2];
+#ifndef FREEBSD
+ if (tcp->u_arg[0] == PTRACE_PEEKUSER
+ || tcp->u_arg[0] == PTRACE_POKEUSER) {
+ for (x = struct_user_offsets; x->str; x++) {
+ if (x->val >= addr)
+ break;
+ }
+ if (!x->str)
+ tprintf("%#lx, ", addr);
+ else if (x->val > addr && x != struct_user_offsets) {
+ x--;
+ tprintf("%s + %ld, ", x->str, addr - x->val);
+ }
+ else
+ tprintf("%s, ", x->str);
+ }
+ else
+#endif
+ tprintf("%#lx, ", tcp->u_arg[2]);
+#ifdef LINUX
+ switch (tcp->u_arg[0]) {
+ case PTRACE_PEEKDATA:
+ case PTRACE_PEEKTEXT:
+ case PTRACE_PEEKUSER:
+ break;
+ case PTRACE_CONT:
+ case PTRACE_SINGLESTEP:
+ case PTRACE_SYSCALL:
+ case PTRACE_DETACH:
+ printsignal(tcp->u_arg[3]);
+ break;
+ default:
+ tprintf("%#lx", tcp->u_arg[3]);
+ break;
+ }
+ } else {
+ switch (tcp->u_arg[0]) {
+ case PTRACE_PEEKDATA:
+ case PTRACE_PEEKTEXT:
+ case PTRACE_PEEKUSER:
+ printnum(tcp, tcp->u_arg[3], "%#lx");
+ break;
+ }
+ }
+#endif /* LINUX */
+#ifdef SUNOS4
+ if (tcp->u_arg[0] == PTRACE_WRITEDATA ||
+ tcp->u_arg[0] == PTRACE_WRITETEXT) {
+ tprintf("%lu, ", tcp->u_arg[3]);
+ printstr(tcp, tcp->u_arg[4], tcp->u_arg[3]);
+ } else if (tcp->u_arg[0] != PTRACE_READDATA &&
+ tcp->u_arg[0] != PTRACE_READTEXT) {
+ tprintf("%#lx", tcp->u_arg[3]);
+ }
+ } else {
+ if (tcp->u_arg[0] == PTRACE_READDATA ||
+ tcp->u_arg[0] == PTRACE_READTEXT) {
+ tprintf("%lu, ", tcp->u_arg[3]);
+ printstr(tcp, tcp->u_arg[4], tcp->u_arg[3]);
+ }
+ }
+#endif /* SUNOS4 */
+#ifdef FREEBSD
+ tprintf("%lu", tcp->u_arg[3]);
+ }
+#endif /* FREEBSD */
+ return 0;
+}
+
+#endif /* !SVR4 */
+
+#ifdef LINUX
+static const struct xlat futexops[] = {
+ { FUTEX_WAIT, "FUTEX_WAIT" },
+ { FUTEX_WAKE, "FUTEX_WAKE" },
+ { FUTEX_FD, "FUTEX_FD" },
+ { FUTEX_REQUEUE,"FUTEX_REQUEUE" },
+ { 0, NULL }
+};
+
+int
+sys_futex(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%p, ", (void *) tcp->u_arg[0]);
+ printxval(futexops, tcp->u_arg[1], "FUTEX_???");
+ tprintf(", %ld", tcp->u_arg[2]);
+ if (tcp->u_arg[1] == FUTEX_WAIT) {
+ tprintf(", ");
+ printtv(tcp, tcp->u_arg[3]);
+ } else if (tcp->u_arg[1] == FUTEX_REQUEUE)
+ tprintf(", %ld, %p", tcp->u_arg[3], (void *) tcp->u_arg[4]);
+ }
+ return 0;
+}
+
+static void
+print_affinitylist(tcp, list, len)
+struct tcb *tcp;
+long list;
+unsigned int len;
+{
+ int first = 1;
+ tprintf(" {");
+ while (len >= sizeof (unsigned long)) {
+ unsigned long w;
+ umove(tcp, list, &w);
+ tprintf("%s %lx", first ? "" : ",", w);
+ first = 0;
+ len -= sizeof (unsigned long);
+ list += sizeof(unsigned long);
+ }
+ tprintf(" }");
+}
+
+int
+sys_sched_setaffinity(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, %lu, ", tcp->u_arg[0], tcp->u_arg[1]);
+ print_affinitylist(tcp, tcp->u_arg[2], tcp->u_arg[1]);
+ }
+ return 0;
+}
+
+int
+sys_sched_getaffinity(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, %lu, ", tcp->u_arg[0], tcp->u_arg[1]);
+ } else {
+ if (tcp->u_rval == -1)
+ tprintf("%#lx", tcp->u_arg[2]);
+ else
+ print_affinitylist(tcp, tcp->u_arg[2], tcp->u_rval);
+ }
+ return 0;
+}
+
+static const struct xlat schedulers[] = {
+ { SCHED_OTHER, "SCHED_OTHER" },
+ { SCHED_RR, "SCHED_RR" },
+ { SCHED_FIFO, "SCHED_FIFO" },
+ { 0, NULL }
+};
+
+int
+sys_sched_getscheduler(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%d", (int) tcp->u_arg[0]);
+ } else if (! syserror(tcp)) {
+ tcp->auxstr = xlookup (schedulers, tcp->u_rval);
+ if (tcp->auxstr != NULL)
+ return RVAL_STR;
+ }
+ return 0;
+}
+
+int
+sys_sched_setscheduler(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ struct sched_param p;
+ tprintf("%d, ", (int) tcp->u_arg[0]);
+ printxval(schedulers, tcp->u_arg[1], "SCHED_???");
+ if (umove(tcp, tcp->u_arg[2], &p) < 0)
+ tprintf(", %#lx", tcp->u_arg[2]);
+ else
+ tprintf(", { %d }", p.__sched_priority);
+ }
+ return 0;
+}
+
+int
+sys_sched_getparam(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%d, ", (int) tcp->u_arg[0]);
+ } else {
+ struct sched_param p;
+ if (umove(tcp, tcp->u_arg[1], &p) < 0)
+ tprintf("%#lx", tcp->u_arg[1]);
+ else
+ tprintf("{ %d }", p.__sched_priority);
+ }
+ return 0;
+}
+
+int
+sys_sched_setparam(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ struct sched_param p;
+ if (umove(tcp, tcp->u_arg[1], &p) < 0)
+ tprintf("%d, %#lx", (int) tcp->u_arg[0], tcp->u_arg[1]);
+ else
+ tprintf("%d, { %d }", (int) tcp->u_arg[0], p.__sched_priority);
+ }
+ return 0;
+}
+
+int
+sys_sched_get_priority_min(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printxval(schedulers, tcp->u_arg[0], "SCHED_???");
+ }
+ return 0;
+}
+
+#ifdef X86_64
+#include <asm/prctl.h>
+
+static const struct xlat archvals[] = {
+ { ARCH_SET_GS, "ARCH_SET_GS" },
+ { ARCH_SET_FS, "ARCH_SET_FS" },
+ { ARCH_GET_FS, "ARCH_GET_FS" },
+ { ARCH_GET_GS, "ARCH_GET_GS" },
+ { 0, NULL },
+};
+
+int
+sys_arch_prctl(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printxval(archvals, tcp->u_arg[0], "ARCH_???");
+ if (tcp->u_arg[0] == ARCH_SET_GS
+ || tcp->u_arg[0] == ARCH_SET_FS)
+ tprintf(", %#lx", tcp->u_arg[1]);
+ } else {
+ if (tcp->u_arg[0] == ARCH_GET_GS
+ || tcp->u_arg[0] == ARCH_GET_FS) {
+ long int v;
+ if (!syserror(tcp) && umove(tcp, tcp->u_arg[1], &v) != -1)
+ tprintf(", [%#lx]", v);
+ else
+ tprintf(", %#lx", tcp->u_arg[1]);
+ }
+ }
+ return 0;
+}
+#endif
+
+#endif
diff --git a/resource.c b/resource.c
new file mode 100644
index 0000000..1c31bbc
--- /dev/null
+++ b/resource.c
@@ -0,0 +1,613 @@
+/*
+ * Copyright (c) 1991, 1992 Paul Kranenburg <pk@cs.few.eur.nl>
+ * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
+ * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
+ * Copyright (c) 1996-1999 Wichert Akkerman <wichert@cistron.nl>
+ * 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.
+ *
+ * $Id: resource.c,v 1.13 2004/10/06 22:14:53 roland Exp $
+ */
+
+#include "defs.h"
+
+#include <sys/resource.h>
+#ifdef LINUX
+#include <sys/times.h>
+#include <linux/kernel.h>
+#ifdef HAVE_ANDROID_OS
+#define spinlock_t struct spinlock_t
+#define if_dqblk dqblk
+#define dqb_curblocks dqb_curspace
+#else
+#include <sys/quota.h>
+#endif
+#include <linux/quota.h>
+#endif /* LINUX */
+#ifdef SUNOS4
+#include <ufs/quota.h>
+#endif /* SUNOS4 */
+#if defined(SVR4) || defined(FREEBSD)
+#include <sys/times.h>
+#include <sys/time.h>
+#endif
+
+#if HAVE_LONG_LONG_RLIM_T
+/*
+ * Hacks for systems that have a long long rlim_t
+ */
+
+#define rlimit64 rlimit /* Ugly hack */
+#define rlim64_t rlim_t /* Ugly hack */
+#define RLIM64_INFINITY RLIM_INFINITY /* You guessed it */
+
+#define sys_getrlimit64 sys_getrlimit
+#define sys_setrlimit64 sys_setrlimit
+#endif
+
+static const struct xlat resources[] = {
+#ifdef RLIMIT_CPU
+ { RLIMIT_CPU, "RLIMIT_CPU" },
+#endif
+#ifdef RLIMIT_FSIZE
+ { RLIMIT_FSIZE, "RLIMIT_FSIZE" },
+#endif
+#ifdef RLIMIT_DATA
+ { RLIMIT_DATA, "RLIMIT_DATA" },
+#endif
+#ifdef RLIMIT_STACK
+ { RLIMIT_STACK, "RLIMIT_STACK" },
+#endif
+#ifdef RLIMIT_CORE
+ { RLIMIT_CORE, "RLIMIT_CORE" },
+#endif
+#ifdef RLIMIT_RSS
+ { RLIMIT_RSS, "RLIMIT_RSS" },
+#endif
+#ifdef RLIMIT_NPROC
+ { RLIMIT_NPROC,"RLIMIT_NPROC" },
+#endif
+#ifdef RLIMIT_NOFILE
+ { RLIMIT_NOFILE,"RLIMIT_NOFILE" },
+#endif
+#ifdef RLIMIT_MEMLOCK
+ { RLIMIT_MEMLOCK, "RLIMIT_MEMLOCK" },
+#endif
+#ifdef RLIMIT_VMEM
+ { RLIMIT_VMEM, "RLIMIT_VMEM" },
+#endif
+#ifdef RLIMIT_AS
+ { RLIMIT_AS, "RLIMIT_AS" },
+#endif
+#ifdef RLIMIT_LOCKS
+ { RLIMIT_LOCKS, "RLIMIT_LOCKS" },
+#endif
+#ifdef RLIMIT_SIGPENDING
+ { RLIMIT_SIGPENDING, "RLIMIT_SIGPENDING" },
+#endif
+#ifdef RLIMIT_MSGQUEUE
+ { RLIMIT_MSGQUEUE, "RLIMIT_MSGQUEUE" },
+#endif
+ { 0, NULL },
+};
+
+#if !HAVE_LONG_LONG_RLIM_T
+static char *
+sprintrlim(lim)
+long lim;
+{
+ static char buf[32];
+
+ if (lim == RLIM_INFINITY)
+ sprintf(buf, "RLIM_INFINITY");
+ else if (lim > 1024 && lim%1024 == 0)
+ sprintf(buf, "%ld*1024", lim/1024);
+ else
+ sprintf(buf, "%ld", lim);
+ return buf;
+}
+
+int
+sys_getrlimit(tcp)
+struct tcb *tcp;
+{
+ struct rlimit rlim;
+
+ if (entering(tcp)) {
+ printxval(resources, tcp->u_arg[0], "RLIMIT_???");
+ tprintf(", ");
+ }
+ else {
+ if (syserror(tcp) || !verbose(tcp))
+ tprintf("%#lx", tcp->u_arg[1]);
+ else if (umove(tcp, tcp->u_arg[1], &rlim) < 0)
+ tprintf("{...}");
+ else {
+ tprintf("{rlim_cur=%s,", sprintrlim(rlim.rlim_cur));
+ tprintf(" rlim_max=%s}", sprintrlim(rlim.rlim_max));
+ }
+ }
+ return 0;
+}
+
+int
+sys_setrlimit(tcp)
+struct tcb *tcp;
+{
+ struct rlimit rlim;
+
+ if (entering(tcp)) {
+ printxval(resources, tcp->u_arg[0], "RLIMIT_???");
+ tprintf(", ");
+ if (!verbose(tcp))
+ tprintf("%#lx", tcp->u_arg[1]);
+ else if (umove(tcp, tcp->u_arg[1], &rlim) < 0)
+ tprintf("{...}");
+ else {
+ tprintf("{rlim_cur=%s,", sprintrlim(rlim.rlim_cur));
+ tprintf(" rlim_max=%s}", sprintrlim(rlim.rlim_max));
+ }
+ }
+ return 0;
+}
+#endif /* !HAVE_LONG_LONG_RLIM_T */
+
+#ifndef HAVE_ANDROID_OS
+#if _LFS64_LARGEFILE || HAVE_LONG_LONG_RLIM_T
+static char *
+sprintrlim64(lim)
+rlim64_t lim;
+{
+ static char buf[64];
+
+ if (lim == RLIM64_INFINITY)
+ sprintf(buf, "RLIM64_INFINITY");
+ else if (lim > 1024 && lim%1024 == 0)
+ sprintf(buf, "%lld*1024", (long long) lim/1024);
+ else
+ sprintf(buf, "%lld", (long long) lim);
+ return buf;
+}
+
+int
+sys_getrlimit64(tcp)
+struct tcb *tcp;
+{
+ struct rlimit64 rlim;
+
+ if (entering(tcp)) {
+ printxval(resources, tcp->u_arg[0], "RLIMIT_???");
+ tprintf(", ");
+ }
+ else {
+ if (syserror(tcp) || !verbose(tcp))
+ tprintf("%#lx", tcp->u_arg[1]);
+ else if (umove(tcp, tcp->u_arg[1], &rlim) < 0)
+ tprintf("{...}");
+ else {
+ tprintf("{rlim_cur=%s,", sprintrlim64(rlim.rlim_cur));
+ tprintf(" rlim_max=%s}", sprintrlim64(rlim.rlim_max));
+ }
+ }
+ return 0;
+}
+
+int
+sys_setrlimit64(tcp)
+struct tcb *tcp;
+{
+ struct rlimit64 rlim;
+
+ if (entering(tcp)) {
+ printxval(resources, tcp->u_arg[0], "RLIMIT_???");
+ tprintf(", ");
+ if (!verbose(tcp))
+ tprintf("%#lx", tcp->u_arg[1]);
+ else if (umove(tcp, tcp->u_arg[1], &rlim) < 0)
+ tprintf("{...}");
+ else {
+ tprintf("{rlim_cur=%s,", sprintrlim64(rlim.rlim_cur));
+ tprintf(" rlim_max=%s}", sprintrlim64(rlim.rlim_max));
+ }
+ }
+ return 0;
+}
+#endif /* _LFS64_LARGEFILES || HAVE_LONG_LONG_RLIM_T */
+#endif /* HAVE_ANDROID_OS */
+
+#ifndef SVR4
+
+static const struct xlat usagewho[] = {
+ { RUSAGE_SELF, "RUSAGE_SELF" },
+ { RUSAGE_CHILDREN, "RUSAGE_CHILDREN" },
+#ifdef RUSAGE_BOTH
+ { RUSAGE_BOTH, "RUSAGE_BOTH" },
+#endif
+ { 0, NULL },
+};
+
+#ifdef ALPHA
+void
+printrusage32(tcp, addr)
+struct tcb *tcp;
+long addr;
+{
+ struct timeval32
+ {
+ unsigned tv_sec;
+ unsigned tv_usec;
+ };
+ struct rusage32
+ {
+ struct timeval32 ru_utime; /* user time used */
+ struct timeval32 ru_stime; /* system time used */
+ long ru_maxrss; /* maximum resident set size */
+ long ru_ixrss; /* integral shared memory size */
+ long ru_idrss; /* integral unshared data size */
+ long ru_isrss; /* integral unshared stack size */
+ long ru_minflt; /* page reclaims */
+ long ru_majflt; /* page faults */
+ long ru_nswap; /* swaps */
+ long ru_inblock; /* block input operations */
+ long ru_oublock; /* block output operations */
+ long ru_msgsnd; /* messages sent */
+ long ru_msgrcv; /* messages received */
+ long ru_nsignals; /* signals received */
+ long ru_nvcsw; /* voluntary context switches */
+ long ru_nivcsw; /* involuntary " */
+ } ru;
+
+ if (!addr)
+ tprintf("NULL");
+ else if (syserror(tcp) || !verbose(tcp))
+ tprintf("%#lx", addr);
+ else if (umove(tcp, addr, &ru) < 0)
+ tprintf("{...}");
+ else if (!abbrev(tcp)) {
+ tprintf("{ru_utime={%lu, %lu}, ru_stime={%lu, %lu}, ",
+ (long) ru.ru_utime.tv_sec, (long) ru.ru_utime.tv_usec,
+ (long) ru.ru_stime.tv_sec, (long) ru.ru_stime.tv_usec);
+ tprintf("ru_maxrss=%lu, ru_ixrss=%lu, ",
+ ru.ru_maxrss, ru.ru_ixrss);
+ tprintf("ru_idrss=%lu, ru_isrss=%lu, ",
+ ru.ru_idrss, ru.ru_isrss);
+ tprintf("ru_minflt=%lu, ru_majflt=%lu, ru_nswap=%lu, ",
+ ru.ru_minflt, ru.ru_majflt, ru.ru_nswap);
+ tprintf("ru_inblock=%lu, ru_oublock=%lu, ",
+ ru.ru_inblock, ru.ru_oublock);
+ tprintf("ru_msgsnd=%lu, ru_msgrcv=%lu, ",
+ ru.ru_msgsnd, ru.ru_msgrcv);
+ tprintf("ru_nsignals=%lu, ru_nvcsw=%lu, ru_nivcsw=%lu}",
+ ru.ru_nsignals, ru.ru_nvcsw, ru.ru_nivcsw);
+ }
+ else {
+ tprintf("{ru_utime={%lu, %lu}, ru_stime={%lu, %lu}, ...}",
+ (long) ru.ru_utime.tv_sec, (long) ru.ru_utime.tv_usec,
+ (long) ru.ru_stime.tv_sec, (long) ru.ru_stime.tv_usec);
+ }
+}
+#endif
+
+void
+printrusage(tcp, addr)
+struct tcb *tcp;
+long addr;
+{
+ struct rusage ru;
+
+ if (!addr)
+ tprintf("NULL");
+ else if (syserror(tcp) || !verbose(tcp))
+ tprintf("%#lx", addr);
+ else if (umove(tcp, addr, &ru) < 0)
+ tprintf("{...}");
+ else if (!abbrev(tcp)) {
+ tprintf("{ru_utime={%lu, %lu}, ru_stime={%lu, %lu}, ",
+ (long) ru.ru_utime.tv_sec, (long) ru.ru_utime.tv_usec,
+ (long) ru.ru_stime.tv_sec, (long) ru.ru_stime.tv_usec);
+ tprintf("ru_maxrss=%lu, ru_ixrss=%lu, ",
+ ru.ru_maxrss, ru.ru_ixrss);
+ tprintf("ru_idrss=%lu, ru_isrss=%lu, ",
+ ru.ru_idrss, ru.ru_isrss);
+ tprintf("ru_minflt=%lu, ru_majflt=%lu, ru_nswap=%lu, ",
+ ru.ru_minflt, ru.ru_majflt, ru.ru_nswap);
+ tprintf("ru_inblock=%lu, ru_oublock=%lu, ",
+ ru.ru_inblock, ru.ru_oublock);
+ tprintf("ru_msgsnd=%lu, ru_msgrcv=%lu, ",
+ ru.ru_msgsnd, ru.ru_msgrcv);
+ tprintf("ru_nsignals=%lu, ru_nvcsw=%lu, ru_nivcsw=%lu}",
+ ru.ru_nsignals, ru.ru_nvcsw, ru.ru_nivcsw);
+ }
+ else {
+ tprintf("{ru_utime={%lu, %lu}, ru_stime={%lu, %lu}, ...}",
+ (long) ru.ru_utime.tv_sec, (long) ru.ru_utime.tv_usec,
+ (long) ru.ru_stime.tv_sec, (long) ru.ru_stime.tv_usec);
+ }
+}
+
+int
+sys_getrusage(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printxval(usagewho, tcp->u_arg[0], "RUSAGE_???");
+ tprintf(", ");
+ }
+ else
+ printrusage(tcp, tcp->u_arg[1]);
+ return 0;
+}
+
+#ifdef ALPHA
+int
+sys_osf_getrusage(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printxval(usagewho, tcp->u_arg[0], "RUSAGE_???");
+ tprintf(", ");
+ }
+ else
+ printrusage32(tcp, tcp->u_arg[1]);
+ return 0;
+}
+#endif /* ALPHA */
+
+#endif /* !SVR4 */
+
+#ifdef LINUX
+
+int
+sys_sysinfo(tcp)
+struct tcb *tcp;
+{
+ struct sysinfo si;
+
+ if (exiting(tcp)) {
+ if (syserror(tcp) || !verbose(tcp))
+ tprintf("%#lx", tcp->u_arg[0]);
+ else if (umove(tcp, tcp->u_arg[0], &si) < 0)
+ tprintf("{...}");
+ else {
+ tprintf("{uptime=%lu, loads=[%lu, %lu, %lu] ",
+ si.uptime, si.loads[0], si.loads[1],
+ si.loads[2]);
+ tprintf("totalram=%lu, freeram=%lu, ",
+ si.totalram, si.freeram);
+ tprintf("sharedram=%lu, bufferram=%lu} ",
+ si.sharedram, si.bufferram);
+ tprintf("totalswap=%lu, freeswap=%lu, procs=%hu}",
+ si.totalswap, si.freeswap, si.procs);
+ }
+ }
+ return 0;
+}
+
+#endif /* LINUX */
+
+static const struct xlat priorities[] = {
+ { PRIO_PROCESS, "PRIO_PROCESS" },
+ { PRIO_PGRP, "PRIO_PGRP" },
+ { PRIO_USER, "PRIO_USER" },
+ { 0, NULL },
+};
+
+int
+sys_getpriority(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printxval(priorities, tcp->u_arg[0], "PRIO_???");
+ tprintf(", %lu", tcp->u_arg[1]);
+ }
+ return 0;
+}
+
+int
+sys_setpriority(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printxval(priorities, tcp->u_arg[0], "PRIO_???");
+ tprintf(", %lu, %ld", tcp->u_arg[1], tcp->u_arg[2]);
+ }
+ return 0;
+}
+
+int
+sys_nice(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp))
+ tprintf("%ld", tcp->u_arg[0]);
+ return 0;
+}
+
+#ifndef SUNOS4
+
+int
+sys_times(tcp)
+struct tcb *tcp;
+{
+ struct tms tbuf;
+
+ if (exiting(tcp)) {
+ if (tcp->u_arg[0] == 0)
+ tprintf("NULL");
+ else if (syserror(tcp))
+ tprintf("%#lx", tcp->u_arg[0]);
+ else if (umove(tcp, tcp->u_arg[0], &tbuf) < 0)
+ tprintf("{...}");
+ else {
+ tprintf("{tms_utime=%lu, tms_stime=%lu, ",
+ tbuf.tms_utime, tbuf.tms_stime);
+ tprintf("tms_cutime=%lu, tms_cstime=%lu}",
+ tbuf.tms_cutime, tbuf.tms_cstime);
+ }
+ }
+ return 0;
+}
+
+#endif /* !SUNOS4 */
+
+
+//#ifndef HAVE_ANDROID_OS
+#ifdef LINUX
+
+#define NEW_CMD(c) ((0x80<<16)+(c))
+#define XQM_CMD(c) (('X'<<8)+(c))
+#define NEW_COMMAND(c) (( ((c) >> SUBCMDSHIFT) & (0x80 << 16)))
+#define XQM_COMMAND(c) (( ((c) >> SUBCMDSHIFT) & ('X' << 8)) == ('X' << 8))
+#define OLD_COMMAND(c) (!NEW_COMMAND(c) && !XQM_COMMAND(c))
+
+static const struct xlat quotacmds[] = {
+ { Q_QUOTAON, "Q_QUOTAON" },
+ { Q_QUOTAOFF, "Q_QUOTAOFF" },
+ { Q_GETQUOTA, "Q_GETQUOTA" },
+ { Q_SETQUOTA, "Q_SETQUOTA" },
+#ifndef HAVE_ANDROID_OS
+ { Q_SETUSE, "Q_SETUSE" },
+#endif
+ { Q_SYNC, "Q_SYNC" },
+#ifndef HAVE_ANDROID_OS
+ { Q_SETQLIM, "Q_SETQLIM" },
+ { Q_GETSTATS, "Q_GETSTATS" },
+ { Q_RSQUASH, "Q_RSQUASH" },
+#endif
+ { NEW_CMD(0x1), "Q_SYNC" },
+ { NEW_CMD(0x2), "Q_QUOTAON" },
+ { NEW_CMD(0x3), "Q_QUOTAOFF" },
+ { NEW_CMD(0x4), "Q_GETFMT" },
+ { NEW_CMD(0x5), "Q_GETINFO" },
+ { NEW_CMD(0x6), "Q_SETINFO" },
+ { NEW_CMD(0x7), "Q_GETQUOTA" },
+ { NEW_CMD(0x8), "Q_SETQUOTA" },
+ { XQM_CMD(0x1), "Q_XQUOTAON" },
+ { XQM_CMD(0x2), "Q_XQUOTAOFF" },
+ { XQM_CMD(0x3), "Q_XGETQUOTA" },
+ { XQM_CMD(0x4), "Q_XSETQLIM" },
+ { XQM_CMD(0x5), "Q_XGETQSTAT" },
+ { XQM_CMD(0x6), "Q_XQUOTARM" },
+ { 0, NULL },
+};
+
+static const struct xlat quotatypes[] = {
+ { USRQUOTA, "USRQUOTA" },
+ { GRPQUOTA, "GRPQUOTA" },
+ { 0, NULL },
+};
+
+int
+sys_quotactl(tcp)
+struct tcb *tcp;
+{
+ /*
+ * The Linux kernel only looks at the low 32 bits of the command
+ * argument, but on some 64-bit architectures (s390x) this word
+ * will have been sign-extended when we see it. The high 1 bits
+ * don't mean anything, so don't confuse the output with them.
+ */
+ unsigned int cmd = tcp->u_arg[0];
+
+ if (entering(tcp)) {
+ printxval(quotacmds, cmd >> SUBCMDSHIFT, "Q_???");
+ tprintf("|");
+ printxval(quotatypes, cmd & SUBCMDMASK, "???QUOTA");
+ tprintf(", ");
+ printstr(tcp, tcp->u_arg[1], -1);
+ tprintf(", %lu, ", tcp->u_arg[2]);
+ }
+ else {
+ struct dqblk dq;
+
+ if (!tcp->u_arg[3])
+ tprintf("NULL");
+ else if (!verbose(tcp) || !OLD_COMMAND(cmd))
+ tprintf("%#lx", tcp->u_arg[3]);
+ else if (umoven(tcp, tcp->u_arg[3], sizeof(struct dqblk),
+ (char *) &dq) < 0)
+ tprintf("???");
+ else {
+ tprintf("{");
+ tprintf("%u, ", dq.dqb_bhardlimit);
+ tprintf("%u, ", dq.dqb_bsoftlimit);
+ tprintf("%u, ", dq.dqb_curblocks);
+ tprintf("%u, ", dq.dqb_ihardlimit);
+ tprintf("%u, ", dq.dqb_isoftlimit);
+ tprintf("%u, ", dq.dqb_curinodes);
+ tprintf("%lu, ", dq.dqb_btime);
+ tprintf("%lu", dq.dqb_itime);
+ tprintf("}");
+ }
+
+ }
+ return 0;
+}
+
+#endif /* Linux */
+//#endif /* HAVE_ANDROID_OS */
+
+#if defined(SUNOS4) || defined(FREEBSD)
+
+#ifdef FREEBSD
+#include <ufs/ufs/quota.h>
+#endif
+
+static const struct xlat quotacmds[] = {
+ { Q_QUOTAON, "Q_QUOTAON" },
+ { Q_QUOTAOFF, "Q_QUOTAOFF" },
+ { Q_GETQUOTA, "Q_GETQUOTA" },
+ { Q_SETQUOTA, "Q_SETQUOTA" },
+#ifdef Q_SETQLIM
+ { Q_SETQLIM, "Q_SETQLIM" },
+#endif
+#ifdef Q_SETUSE
+ { Q_SETUSE, "Q_SETUSE" },
+#endif
+ { Q_SYNC, "Q_SYNC" },
+ { 0, NULL },
+};
+
+int
+sys_quotactl(tcp)
+struct tcb *tcp;
+{
+ /* fourth arg (addr) not interpreted here */
+ if (entering(tcp)) {
+#ifdef SUNOS4
+ printxval(quotacmds, tcp->u_arg[0], "Q_???");
+ tprintf(", ");
+ printstr(tcp, tcp->u_arg[1], -1);
+#endif
+#ifdef FREEBSD
+ printpath(tcp, tcp->u_arg[0]);
+ tprintf(", ");
+ printxval(quotacmds, tcp->u_arg[1], "Q_???");
+#endif
+ tprintf(", %lu, %#lx", tcp->u_arg[2], tcp->u_arg[3]);
+ }
+ return 0;
+}
+
+#endif /* SUNOS4 || FREEBSD */
diff --git a/signal.c b/signal.c
new file mode 100644
index 0000000..145fe08
--- /dev/null
+++ b/signal.c
@@ -0,0 +1,1966 @@
+/*
+ * Copyright (c) 1991, 1992 Paul Kranenburg <pk@cs.few.eur.nl>
+ * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
+ * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
+ * Copyright (c) 1996-1999 Wichert Akkerman <wichert@cistron.nl>
+ * Copyright (c) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ * Linux for s390 port by D.J. Barrow
+ * <barrow_dj@mail.yahoo.com,djbarrow@de.ibm.com>
+ * 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.
+ *
+ * $Id: signal.c,v 1.54 2005/06/01 19:02:37 roland Exp $
+ */
+
+#include "defs.h"
+
+#include <signal.h>
+#ifdef HAVE_ANDROID_OS
+#else
+#include <sys/user.h>
+#endif
+#include <fcntl.h>
+
+#ifdef SVR4
+#include <sys/ucontext.h>
+#endif /* SVR4 */
+
+#ifdef HAVE_SYS_REG_H
+# include <sys/reg.h>
+#ifndef PTRACE_PEEKUSR
+# define PTRACE_PEEKUSR PTRACE_PEEKUSER
+#endif
+#ifndef PTRACE_POKEUSR
+# define PTRACE_POKEUSR PTRACE_POKEUSER
+#endif
+#elif defined(HAVE_LINUX_PTRACE_H)
+#undef PTRACE_SYSCALL
+# ifdef HAVE_STRUCT_IA64_FPREG
+# define ia64_fpreg XXX_ia64_fpreg
+# endif
+# ifdef HAVE_STRUCT_PT_ALL_USER_REGS
+# define pt_all_user_regs XXX_pt_all_user_regs
+# endif
+#include <linux/ptrace.h>
+# undef ia64_fpreg
+# undef pt_all_user_regs
+#endif
+
+
+#ifdef LINUX
+
+#ifdef IA64
+# include <asm/ptrace_offsets.h>
+#endif /* !IA64 */
+
+#if HAVE_ASM_REG_H
+# if defined (SPARC) || defined (SPARC64)
+# define fpq kernel_fpq
+# define fq kernel_fq
+# define fpu kernel_fpu
+# endif
+# include <asm/reg.h>
+# if defined (SPARC) || defined (SPARC64)
+# undef fpq
+# undef fq
+# undef fpu
+# endif
+#if defined (LINUX) && defined (SPARC64)
+# define r_pc r_tpc
+# undef PTRACE_GETREGS
+# define PTRACE_GETREGS PTRACE_GETREGS64
+# undef PTRACE_SETREGS
+# define PTRACE_SETREGS PTRACE_SETREGS64
+#endif /* LINUX && SPARC64 */
+#endif /* HAVE_ASM_REG_H */
+
+#if defined (SPARC) || defined (SPARC64)
+typedef struct {
+ struct regs si_regs;
+ int si_mask;
+} m_siginfo_t;
+#elif defined HAVE_ASM_SIGCONTEXT_H
+#if !defined(IA64) && !defined(X86_64)
+#include <asm/sigcontext.h>
+#endif /* !IA64 && !X86_64 */
+#else /* !HAVE_ASM_SIGCONTEXT_H */
+#ifdef I386
+struct sigcontext_struct {
+ unsigned short gs, __gsh;
+ unsigned short fs, __fsh;
+ unsigned short es, __esh;
+ unsigned short ds, __dsh;
+ unsigned long edi;
+ unsigned long esi;
+ unsigned long ebp;
+ unsigned long esp;
+ unsigned long ebx;
+ unsigned long edx;
+ unsigned long ecx;
+ unsigned long eax;
+ unsigned long trapno;
+ unsigned long err;
+ unsigned long eip;
+ unsigned short cs, __csh;
+ unsigned long eflags;
+ unsigned long esp_at_signal;
+ unsigned short ss, __ssh;
+ unsigned long i387;
+ unsigned long oldmask;
+ unsigned long cr2;
+};
+#else /* !I386 */
+#ifdef M68K
+struct sigcontext
+{
+ unsigned long sc_mask;
+ unsigned long sc_usp;
+ unsigned long sc_d0;
+ unsigned long sc_d1;
+ unsigned long sc_a0;
+ unsigned long sc_a1;
+ unsigned short sc_sr;
+ unsigned long sc_pc;
+ unsigned short sc_formatvec;
+};
+#endif /* M68K */
+#endif /* !I386 */
+#endif /* !HAVE_ASM_SIGCONTEXT_H */
+#ifndef NSIG
+#define NSIG 32
+#endif
+#ifdef ARM
+#undef NSIG
+#define NSIG 32
+#endif
+#endif /* LINUX */
+
+const char *const signalent0[] = {
+#include "signalent.h"
+};
+const int nsignals0 = sizeof signalent0 / sizeof signalent0[0];
+
+#if SUPPORTED_PERSONALITIES >= 2
+const char *const signalent1[] = {
+#include "signalent1.h"
+};
+const int nsignals1 = sizeof signalent1 / sizeof signalent1[0];
+#endif /* SUPPORTED_PERSONALITIES >= 2 */
+
+#if SUPPORTED_PERSONALITIES >= 3
+const char *const signalent2[] = {
+#include "signalent2.h"
+};
+const int nsignals2 = sizeof signalent2 / sizeof signalent2[0];
+#endif /* SUPPORTED_PERSONALITIES >= 3 */
+
+const char *const *signalent;
+int nsignals;
+
+#if defined(SUNOS4) || defined(FREEBSD)
+
+static const struct xlat sigvec_flags[] = {
+ { SV_ONSTACK, "SV_ONSTACK" },
+ { SV_INTERRUPT, "SV_INTERRUPT" },
+ { SV_RESETHAND, "SV_RESETHAND" },
+ { SA_NOCLDSTOP, "SA_NOCLDSTOP" },
+ { 0, NULL },
+};
+
+#endif /* SUNOS4 || FREEBSD */
+
+#ifdef HAVE_SIGACTION
+
+#if defined LINUX && (defined I386 || defined X86_64)
+/* The libc headers do not define this constant since it should only be
+ used by the implementation. So wwe define it here. */
+# ifndef SA_RESTORER
+# define SA_RESTORER 0x04000000
+# endif
+#endif
+
+static const struct xlat sigact_flags[] = {
+#ifdef SA_RESTORER
+ { SA_RESTORER, "SA_RESTORER" },
+#endif
+#ifdef SA_STACK
+ { SA_STACK, "SA_STACK" },
+#endif
+#ifdef SA_RESTART
+ { SA_RESTART, "SA_RESTART" },
+#endif
+#ifdef SA_INTERRUPT
+ { SA_INTERRUPT, "SA_INTERRUPT" },
+#endif
+#ifdef SA_NOMASK
+ { SA_NOMASK, "SA_NOMASK" },
+#endif
+#ifdef SA_ONESHOT
+ { SA_ONESHOT, "SA_ONESHOT" },
+#endif
+#ifdef SA_SIGINFO
+ { SA_SIGINFO, "SA_SIGINFO" },
+#endif
+#ifdef SA_RESETHAND
+ { SA_RESETHAND, "SA_RESETHAND" },
+#endif
+#ifdef SA_ONSTACK
+ { SA_ONSTACK, "SA_ONSTACK" },
+#endif
+#ifdef SA_NODEFER
+ { SA_NODEFER, "SA_NODEFER" },
+#endif
+#ifdef SA_NOCLDSTOP
+ { SA_NOCLDSTOP, "SA_NOCLDSTOP" },
+#endif
+#ifdef SA_NOCLDWAIT
+ { SA_NOCLDWAIT, "SA_NOCLDWAIT" },
+#endif
+#ifdef _SA_BSDCALL
+ { _SA_BSDCALL, "_SA_BSDCALL" },
+#endif
+ { 0, NULL },
+};
+
+static const struct xlat sigprocmaskcmds[] = {
+ { SIG_BLOCK, "SIG_BLOCK" },
+ { SIG_UNBLOCK, "SIG_UNBLOCK" },
+ { SIG_SETMASK, "SIG_SETMASK" },
+#ifdef SIG_SETMASK32
+ { SIG_SETMASK32,"SIG_SETMASK32" },
+#endif
+ { 0, NULL },
+};
+
+#endif /* HAVE_SIGACTION */
+
+/* Anonymous realtime signals. */
+/* Under glibc 2.1, SIGRTMIN et al are functions, but __SIGRTMIN is a
+ constant. This is what we want. Otherwise, just use SIGRTMIN. */
+#ifdef SIGRTMIN
+#ifndef __SIGRTMIN
+#define __SIGRTMIN SIGRTMIN
+#define __SIGRTMAX SIGRTMAX /* likewise */
+#endif
+#endif
+
+const char *
+signame(sig)
+int sig;
+{
+ static char buf[30];
+ if (sig >= 0 && sig < nsignals) {
+ return signalent[sig];
+#ifdef SIGRTMIN
+ } else if (sig >= __SIGRTMIN && sig <= __SIGRTMAX) {
+ sprintf(buf, "SIGRT_%ld", (long)(sig - __SIGRTMIN));
+ return buf;
+#endif /* SIGRTMIN */
+ } else {
+ sprintf(buf, "%d", sig);
+ return buf;
+ }
+}
+
+#ifndef UNIXWARE
+static void
+long_to_sigset(l, s)
+long l;
+sigset_t *s;
+{
+ sigemptyset(s);
+ *(long *)s = l;
+}
+#endif
+
+static int
+copy_sigset_len(tcp, addr, s, len)
+struct tcb *tcp;
+long addr;
+sigset_t *s;
+int len;
+{
+ if (len > sizeof(*s))
+ len = sizeof(*s);
+ sigemptyset(s);
+ if (umoven(tcp, addr, len, (char *)s) < 0)
+ return -1;
+ return 0;
+}
+
+#ifdef LINUX
+/* Original sigset is unsigned long */
+#define copy_sigset(tcp, addr, s) copy_sigset_len(tcp, addr, s, sizeof(long))
+#else
+#define copy_sigset(tcp, addr, s) copy_sigset_len(tcp, addr, s, sizeof(sigset_t))
+#endif
+
+static char *
+sprintsigmask(s, mask, rt)
+char *s;
+sigset_t *mask;
+int rt; /* set might include realtime sigs */
+{
+ int i, nsigs;
+ int maxsigs;
+ char *format;
+ static char outstr[8 * sizeof(sigset_t) * 8];
+
+ strcpy(outstr, s);
+ s = outstr + strlen(outstr);
+ nsigs = 0;
+ maxsigs = nsignals;
+#ifdef __SIGRTMAX
+ if (rt)
+ maxsigs = __SIGRTMAX; /* instead */
+#endif
+ for (i = 1; i < maxsigs; i++) {
+ if (sigismember(mask, i) == 1)
+ nsigs++;
+ }
+ if (nsigs >= nsignals * 2 / 3) {
+ *s++ = '~';
+ for (i = 1; i < maxsigs; i++) {
+ switch (sigismember(mask, i)) {
+ case 1:
+ sigdelset(mask, i);
+ break;
+ case 0:
+ sigaddset(mask, i);
+ break;
+ }
+ }
+ }
+ format = "%s";
+ *s++ = '[';
+ for (i = 1; i < maxsigs; i++) {
+ if (sigismember(mask, i) == 1) {
+ /* real-time signals on solaris don't have
+ * signalent entries
+ */
+ if (i < nsignals) {
+ sprintf(s, format, signalent[i] + 3);
+ }
+#ifdef SIGRTMIN
+ else if (i >= __SIGRTMIN && i <= __SIGRTMAX) {
+ char tsig[40];
+ sprintf(tsig, "RT_%u", i - __SIGRTMIN);
+ sprintf(s, format, tsig);
+ }
+#endif /* SIGRTMIN */
+ else {
+ char tsig[32];
+ sprintf(tsig, "%u", i);
+ sprintf(s, format, tsig);
+ }
+ s += strlen(s);
+ format = " %s";
+ }
+ }
+ *s++ = ']';
+ *s = '\0';
+ return outstr;
+}
+
+static void
+printsigmask(mask, rt)
+sigset_t *mask;
+int rt;
+{
+ tprintf("%s", sprintsigmask("", mask, rt));
+}
+
+void
+printsignal(nr)
+int nr;
+{
+ tprintf(signame(nr));
+}
+
+#ifdef LINUX
+
+#ifndef ILL_ILLOPC
+#define ILL_ILLOPC 1 /* illegal opcode */
+#define ILL_ILLOPN 2 /* illegal operand */
+#define ILL_ILLADR 3 /* illegal addressing mode */
+#define ILL_ILLTRP 4 /* illegal trap */
+#define ILL_PRVOPC 5 /* privileged opcode */
+#define ILL_PRVREG 6 /* privileged register */
+#define ILL_COPROC 7 /* coprocessor error */
+#define ILL_BADSTK 8 /* internal stack error */
+#define FPE_INTDIV 1 /* integer divide by zero */
+#define FPE_INTOVF 2 /* integer overflow */
+#define FPE_FLTDIV 3 /* floating point divide by zero */
+#define FPE_FLTOVF 4 /* floating point overflow */
+#define FPE_FLTUND 5 /* floating point underflow */
+#define FPE_FLTRES 6 /* floating point inexact result */
+#define FPE_FLTINV 7 /* floating point invalid operation */
+#define FPE_FLTSUB 8 /* subscript out of range */
+#define SEGV_MAPERR 1 /* address not mapped to object */
+#define SEGV_ACCERR 2 /* invalid permissions for mapped object */
+#define BUS_ADRALN 1 /* invalid address alignment */
+#define BUS_ADRERR 2 /* non-existant physical address */
+#define BUS_OBJERR 3 /* object specific hardware error */
+#define TRAP_BRKPT 1 /* process breakpoint */
+#define TRAP_TRACE 2 /* process trace trap */
+#define CLD_EXITED 1 /* child has exited */
+#define CLD_KILLED 2 /* child was killed */
+#define CLD_DUMPED 3 /* child terminated abnormally */
+#define CLD_TRAPPED 4 /* traced child has trapped */
+#define CLD_STOPPED 5 /* child has stopped */
+#define CLD_CONTINUED 6 /* stopped child has continued */
+#define POLL_IN 1 /* data input available */
+#define POLL_OUT 2 /* output buffers available */
+#define POLL_MSG 3 /* input message available */
+#define POLL_ERR 4 /* i/o error */
+#define POLL_PRI 5 /* high priority input available */
+#define POLL_HUP 6 /* device disconnected */
+#define SI_USER 0 /* sent by kill, sigsend, raise */
+#define SI_QUEUE -1 /* sent by sigqueue */
+#define SI_TIMER -2 /* sent by timer expiration */
+#define SI_MESGQ -3 /* sent by real time mesq state change */
+#define SI_ASYNCIO -4 /* sent by AIO completion */
+#define SI_SIGIO -5 /* Sent by SIGIO */
+#define SI_TKILL -6 /* Sent by tkill */
+#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
+
+#endif
+
+#if defined (SVR4) || defined (LINUX)
+
+static const struct xlat siginfo_codes[] = {
+#ifdef SI_NOINFO
+ { SI_NOINFO, "SI_NOINFO" },
+#endif
+#ifdef SI_USER
+ { SI_USER, "SI_USER" },
+#endif
+#ifdef SI_LWP
+ { SI_LWP, "SI_LWP" },
+#endif
+#ifdef SI_QUEUE
+ { SI_QUEUE, "SI_QUEUE" },
+#endif
+#ifdef SI_TIMER
+ { SI_TIMER, "SI_TIMER" },
+#endif
+#ifdef SI_ASYNCIO
+ { SI_ASYNCIO, "SI_ASYNCIO" },
+#endif
+#ifdef SI_MESGQ
+ { SI_MESGQ, "SI_MESGQ" },
+#endif
+#ifdef SI_SIGIO
+ { SI_SIGIO, "SI_SIGIO" },
+#endif
+#ifdef SI_TKILL
+ { SI_TKILL, "SI_TKILL" },
+#endif
+ { 0, NULL },
+};
+
+static const struct xlat sigill_codes[] = {
+ { ILL_ILLOPC, "ILL_ILLOPC" },
+ { ILL_ILLOPN, "ILL_ILLOPN" },
+ { ILL_ILLADR, "ILL_ILLADR" },
+ { ILL_ILLTRP, "ILL_ILLTRP" },
+ { ILL_PRVOPC, "ILL_PRVOPC" },
+ { ILL_PRVREG, "ILL_PRVREG" },
+ { ILL_COPROC, "ILL_COPROC" },
+ { ILL_BADSTK, "ILL_BADSTK" },
+ { 0, NULL },
+};
+
+static const struct xlat sigfpe_codes[] = {
+ { FPE_INTDIV, "FPE_INTDIV" },
+ { FPE_INTOVF, "FPE_INTOVF" },
+ { FPE_FLTDIV, "FPE_FLTDIV" },
+ { FPE_FLTOVF, "FPE_FLTOVF" },
+ { FPE_FLTUND, "FPE_FLTUND" },
+ { FPE_FLTRES, "FPE_FLTRES" },
+ { FPE_FLTINV, "FPE_FLTINV" },
+ { FPE_FLTSUB, "FPE_FLTSUB" },
+ { 0, NULL },
+};
+
+static const struct xlat sigtrap_codes[] = {
+ { TRAP_BRKPT, "TRAP_BRKPT" },
+ { TRAP_TRACE, "TRAP_TRACE" },
+ { 0, NULL },
+};
+
+static const struct xlat sigchld_codes[] = {
+ { CLD_EXITED, "CLD_EXITED" },
+ { CLD_KILLED, "CLD_KILLED" },
+ { CLD_DUMPED, "CLD_DUMPED" },
+ { CLD_TRAPPED, "CLD_TRAPPED" },
+ { CLD_STOPPED, "CLD_STOPPED" },
+ { CLD_CONTINUED,"CLD_CONTINUED" },
+ { 0, NULL },
+};
+
+static const struct xlat sigpoll_codes[] = {
+ { POLL_IN, "POLL_IN" },
+ { POLL_OUT, "POLL_OUT" },
+ { POLL_MSG, "POLL_MSG" },
+ { POLL_ERR, "POLL_ERR" },
+ { POLL_PRI, "POLL_PRI" },
+ { POLL_HUP, "POLL_HUP" },
+ { 0, NULL },
+};
+
+static const struct xlat sigprof_codes[] = {
+#ifdef PROF_SIG
+ { PROF_SIG, "PROF_SIG" },
+#endif
+ { 0, NULL },
+};
+
+#ifdef SIGEMT
+static const struct xlat sigemt_codes[] = {
+#ifdef EMT_TAGOVF
+ { EMT_TAGOVF, "EMT_TAGOVF" },
+#endif
+ { 0, NULL },
+};
+#endif
+
+static const struct xlat sigsegv_codes[] = {
+ { SEGV_MAPERR, "SEGV_MAPERR" },
+ { SEGV_ACCERR, "SEGV_ACCERR" },
+ { 0, NULL },
+};
+
+static const struct xlat sigbus_codes[] = {
+ { BUS_ADRALN, "BUS_ADRALN" },
+ { BUS_ADRERR, "BUS_ADRERR" },
+ { BUS_OBJERR, "BUS_OBJERR" },
+ { 0, NULL },
+};
+
+void
+printsiginfo(sip, verbose)
+siginfo_t *sip;
+int verbose;
+{
+ const char *code;
+
+ if (sip->si_signo == 0) {
+ tprintf ("{}");
+ return;
+ }
+ tprintf("{si_signo=");
+ printsignal(sip->si_signo);
+ code = xlookup(siginfo_codes, sip->si_code);
+ if (!code) {
+ switch (sip->si_signo) {
+ case SIGTRAP:
+ code = xlookup(sigtrap_codes, sip->si_code);
+ break;
+ case SIGCHLD:
+ code = xlookup(sigchld_codes, sip->si_code);
+ break;
+ case SIGPOLL:
+ code = xlookup(sigpoll_codes, sip->si_code);
+ break;
+ case SIGPROF:
+ code = xlookup(sigprof_codes, sip->si_code);
+ break;
+ case SIGILL:
+ code = xlookup(sigill_codes, sip->si_code);
+ break;
+#ifdef SIGEMT
+ case SIGEMT:
+ code = xlookup(sigemt_codes, sip->si_code);
+ break;
+#endif
+ case SIGFPE:
+ code = xlookup(sigfpe_codes, sip->si_code);
+ break;
+ case SIGSEGV:
+ code = xlookup(sigsegv_codes, sip->si_code);
+ break;
+ case SIGBUS:
+ code = xlookup(sigbus_codes, sip->si_code);
+ break;
+ }
+ }
+ if (code)
+ tprintf(", si_code=%s", code);
+ else
+ tprintf(", si_code=%#x", sip->si_code);
+#ifdef SI_NOINFO
+ if (sip->si_code != SI_NOINFO)
+#endif
+ {
+ if (sip->si_errno) {
+ if (sip->si_errno < 0 || sip->si_errno >= nerrnos)
+ tprintf(", si_errno=%d", sip->si_errno);
+ else
+ tprintf(", si_errno=%s",
+ errnoent[sip->si_errno]);
+ }
+#ifdef SI_FROMUSER
+ if (SI_FROMUSER(sip)) {
+ tprintf(", si_pid=%ld, si_uid=%ld",
+ sip->si_pid, sip->si_uid);
+#ifdef SI_QUEUE
+ switch (sip->si_code) {
+ case SI_QUEUE:
+#ifdef SI_TIMER
+ case SI_TIMER:
+#endif /* SI_QUEUE */
+ case SI_ASYNCIO:
+#ifdef SI_MESGQ
+ case SI_MESGQ:
+#endif /* SI_MESGQ */
+ tprintf(", si_value=%d",
+ sip->si_value.sival_int);
+ break;
+ }
+#endif /* SI_QUEUE */
+ }
+ else
+#endif /* SI_FROMUSER */
+ {
+ switch (sip->si_signo) {
+ case SIGCHLD:
+ tprintf(", si_pid=%ld, si_status=",
+ (long) sip->si_pid);
+ if (sip->si_code == CLD_EXITED)
+ tprintf("%d", sip->si_status);
+ else
+ printsignal(sip->si_status);
+#if LINUX
+ if (!verbose)
+ tprintf(", ...");
+ else
+ tprintf(", si_utime=%lu, si_stime=%lu",
+ sip->si_utime,
+ sip->si_stime);
+#endif
+ break;
+ case SIGILL: case SIGFPE:
+ case SIGSEGV: case SIGBUS:
+ tprintf(", si_addr=%#lx",
+ (unsigned long) sip->si_addr);
+ break;
+ case SIGPOLL:
+ switch (sip->si_code) {
+ case POLL_IN: case POLL_OUT: case POLL_MSG:
+ tprintf(", si_band=%ld",
+ (long) sip->si_band);
+ break;
+ }
+ break;
+#ifdef LINUX
+ default:
+ tprintf(", si_pid=%lu, si_uid=%lu, ",
+ (unsigned long) sip->si_pid,
+ (unsigned long) sip->si_uid);
+ if (!verbose)
+ tprintf("...");
+ else {
+ tprintf("si_value={int=%u, ptr=%#lx}",
+ sip->si_int,
+ (unsigned long) sip->si_ptr);
+ }
+#endif
+
+ }
+ }
+ }
+ tprintf("}");
+}
+
+#endif /* SVR4 || LINUX */
+
+#ifdef LINUX
+
+static void
+parse_sigset_t (const char *str, sigset_t *set)
+{
+ const char *p;
+ unsigned int digit;
+ int i;
+
+ sigemptyset(set);
+
+ p = strchr(str, '\n');
+ if (p == NULL)
+ p = strchr(str, '\0');
+ for (i = 0; p-- > str; i += 4) {
+ if (*p >= '0' && *p <= '9')
+ digit = *p - '0';
+ else if (*p >= 'a' && *p <= 'f')
+ digit = *p - 'a' + 10;
+ else if (*p >= 'A' && *p <= 'F')
+ digit = *p - 'A' + 10;
+ else
+ break;
+ if (digit & 1)
+ sigaddset(set, i + 1);
+ if (digit & 2)
+ sigaddset(set, i + 2);
+ if (digit & 4)
+ sigaddset(set, i + 3);
+ if (digit & 8)
+ sigaddset(set, i + 4);
+ }
+}
+
+#endif
+
+/*
+ * Check process TCP for the disposition of signal SIG.
+ * Return 1 if the process would somehow manage to survive signal SIG,
+ * else return 0. This routine will never be called with SIGKILL.
+ */
+int
+sigishandled(tcp, sig)
+struct tcb *tcp;
+int sig;
+{
+#ifdef LINUX
+ int sfd;
+ char sname[32];
+ char buf[2048];
+ char *s;
+ int i;
+ sigset_t ignored, caught;
+#endif
+#ifdef SVR4
+ /*
+ * Since procfs doesn't interfere with wait I think it is safe
+ * to punt on this question. If not, the information is there.
+ */
+ return 1;
+#else /* !SVR4 */
+ switch (sig) {
+ case SIGCONT:
+ case SIGSTOP:
+ case SIGTSTP:
+ case SIGTTIN:
+ case SIGTTOU:
+ case SIGCHLD:
+ case SIGIO:
+#if defined(SIGURG) && SIGURG != SIGIO
+ case SIGURG:
+#endif
+ case SIGWINCH:
+ /* Gloria Gaynor says ... */
+ return 1;
+ default:
+ break;
+ }
+#endif /* !SVR4 */
+#ifdef LINUX
+
+ /* This is incredibly costly but it's worth it. */
+ /* NOTE: LinuxThreads internally uses SIGRTMIN, SIGRTMIN + 1 and
+ SIGRTMIN + 2, so we can't use the obsolete /proc/%d/stat which
+ doesn't handle real-time signals). */
+ sprintf(sname, "/proc/%d/status", tcp->pid);
+ if ((sfd = open(sname, O_RDONLY)) == -1) {
+ perror(sname);
+ return 1;
+ }
+ i = read(sfd, buf, sizeof(buf));
+ buf[i] = '\0';
+ close(sfd);
+ /*
+ * Skip the extraneous fields. We need to skip
+ * command name has any spaces in it. So be it.
+ */
+ s = strstr(buf, "SigIgn:\t");
+ if (!s)
+ {
+ fprintf(stderr, "/proc/pid/status format error\n");
+ return 1;
+ }
+ parse_sigset_t(s + 8, &ignored);
+
+ s = strstr(buf, "SigCgt:\t");
+ if (!s)
+ {
+ fprintf(stderr, "/proc/pid/status format error\n");
+ return 1;
+ }
+ parse_sigset_t(s + 8, &caught);
+
+#ifdef DEBUG
+ fprintf(stderr, "sigs: %016qx %016qx (sig=%d)\n",
+ *(long long *) &ignored, *(long long *) &caught, sig);
+#endif
+ if (sigismember(&ignored, sig) || sigismember(&caught, sig))
+ return 1;
+#endif /* LINUX */
+
+#ifdef SUNOS4
+ void (*u_signal)();
+
+ if (upeek(tcp->pid, uoff(u_signal[0]) + sig*sizeof(u_signal),
+ (long *) &u_signal) < 0) {
+ return 0;
+ }
+ if (u_signal != SIG_DFL)
+ return 1;
+#endif /* SUNOS4 */
+
+ return 0;
+}
+
+#if defined(SUNOS4) || defined(FREEBSD)
+
+int
+sys_sigvec(tcp)
+struct tcb *tcp;
+{
+ struct sigvec sv;
+ long addr;
+
+ if (entering(tcp)) {
+ printsignal(tcp->u_arg[0]);
+ tprintf(", ");
+ addr = tcp->u_arg[1];
+ } else {
+ addr = tcp->u_arg[2];
+ }
+ if (addr == 0)
+ tprintf("NULL");
+ else if (!verbose(tcp))
+ tprintf("%#lx", addr);
+ else if (umove(tcp, addr, &sv) < 0)
+ tprintf("{...}");
+ else {
+ switch ((int) sv.sv_handler) {
+ case (int) SIG_ERR:
+ tprintf("{SIG_ERR}");
+ break;
+ case (int) SIG_DFL:
+ tprintf("{SIG_DFL}");
+ break;
+ case (int) SIG_IGN:
+ if (tcp->u_arg[0] == SIGTRAP) {
+ tcp->flags |= TCB_SIGTRAPPED;
+ kill(tcp->pid, SIGSTOP);
+ }
+ tprintf("{SIG_IGN}");
+ break;
+ case (int) SIG_HOLD:
+ if (tcp->u_arg[0] == SIGTRAP) {
+ tcp->flags |= TCB_SIGTRAPPED;
+ kill(tcp->pid, SIGSTOP);
+ }
+ tprintf("SIG_HOLD");
+ break;
+ default:
+ if (tcp->u_arg[0] == SIGTRAP) {
+ tcp->flags |= TCB_SIGTRAPPED;
+ kill(tcp->pid, SIGSTOP);
+ }
+ tprintf("{%#lx, ", (unsigned long) sv.sv_handler);
+ printsigmask(&sv.sv_mask, 0);
+ tprintf(", ");
+ printflags(sigvec_flags, sv.sv_flags, "SV_???");
+ tprintf("}");
+ }
+ }
+ if (entering(tcp))
+ tprintf(", ");
+ return 0;
+}
+
+int
+sys_sigpause(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) { /* WTA: UD had a bug here: he forgot the braces */
+ sigset_t sigm;
+ long_to_sigset(tcp->u_arg[0], &sigm);
+ printsigmask(&sigm, 0);
+ }
+ return 0;
+}
+
+int
+sys_sigstack(tcp)
+struct tcb *tcp;
+{
+ struct sigstack ss;
+ long addr;
+
+ if (entering(tcp))
+ addr = tcp->u_arg[0];
+ else
+ addr = tcp->u_arg[1];
+ if (addr == 0)
+ tprintf("NULL");
+ else if (umove(tcp, addr, &ss) < 0)
+ tprintf("%#lx", addr);
+ else {
+ tprintf("{ss_sp %#lx ", (unsigned long) ss.ss_sp);
+ tprintf("ss_onstack %s}", ss.ss_onstack ? "YES" : "NO");
+ }
+ if (entering(tcp))
+ tprintf(", ");
+ return 0;
+}
+
+int
+sys_sigcleanup(tcp)
+struct tcb *tcp;
+{
+ return 0;
+}
+
+#endif /* SUNOS4 || FREEBSD */
+
+#ifndef SVR4
+
+int
+sys_sigsetmask(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ sigset_t sigm;
+ long_to_sigset(tcp->u_arg[0], &sigm);
+ printsigmask(&sigm, 0);
+#ifndef USE_PROCFS
+#ifdef HAVE_ANDROID_OS
+//FIXME use "sigprocmask" or something
+#define sigmask(sig) (1UL << ((sig) - 1))
+#endif
+
+ if ((tcp->u_arg[0] & sigmask(SIGTRAP))) {
+ /* Mark attempt to block SIGTRAP */
+ tcp->flags |= TCB_SIGTRAPPED;
+ /* Send unblockable signal */
+ kill(tcp->pid, SIGSTOP);
+ }
+#endif /* !USE_PROCFS */
+ }
+ else if (!syserror(tcp)) {
+ sigset_t sigm;
+ long_to_sigset(tcp->u_rval, &sigm);
+ tcp->auxstr = sprintsigmask("old mask ", &sigm, 0);
+
+ return RVAL_HEX | RVAL_STR;
+ }
+ return 0;
+}
+
+int
+sys_sigblock(tcp)
+struct tcb *tcp;
+{
+ return sys_sigsetmask(tcp);
+}
+
+#endif /* !SVR4 */
+
+#ifdef HAVE_SIGACTION
+
+#ifdef LINUX
+struct old_sigaction {
+ __sighandler_t __sa_handler;
+ unsigned long sa_mask;
+ unsigned long sa_flags;
+ void (*sa_restorer)(void);
+};
+#define SA_HANDLER __sa_handler
+#endif /* LINUX */
+
+#ifndef SA_HANDLER
+#define SA_HANDLER sa_handler
+#endif
+
+int
+sys_sigaction(tcp)
+struct tcb *tcp;
+{
+ long addr;
+#ifdef LINUX
+ sigset_t sigset;
+ struct old_sigaction sa;
+#else
+ struct sigaction sa;
+#endif
+
+
+ if (entering(tcp)) {
+ printsignal(tcp->u_arg[0]);
+ tprintf(", ");
+ addr = tcp->u_arg[1];
+ } else
+ addr = tcp->u_arg[2];
+ if (addr == 0)
+ tprintf("NULL");
+ else if (!verbose(tcp))
+ tprintf("%#lx", addr);
+ else if (umove(tcp, addr, &sa) < 0)
+ tprintf("{...}");
+ else {
+ switch ((long) sa.SA_HANDLER) {
+ case (long) SIG_ERR:
+ tprintf("{SIG_ERR}");
+ break;
+ case (long) SIG_DFL:
+ tprintf("{SIG_DFL}");
+ break;
+ case (long) SIG_IGN:
+#ifndef USE_PROCFS
+ if (tcp->u_arg[0] == SIGTRAP) {
+ tcp->flags |= TCB_SIGTRAPPED;
+ kill(tcp->pid, SIGSTOP);
+ }
+#endif /* !USE_PROCFS */
+ tprintf("{SIG_IGN}");
+ break;
+ default:
+#ifndef USE_PROCFS
+ if (tcp->u_arg[0] == SIGTRAP) {
+ tcp->flags |= TCB_SIGTRAPPED;
+ kill(tcp->pid, SIGSTOP);
+ }
+#endif /* !USE_PROCFS */
+ tprintf("{%#lx, ", (long) sa.SA_HANDLER);
+#ifndef LINUX
+ printsigmask (&sa.sa_mask, 0);
+#else
+ long_to_sigset(sa.sa_mask, &sigset);
+ printsigmask(&sigset, 0);
+#endif
+ tprintf(", ");
+ printflags(sigact_flags, sa.sa_flags, "SA_???");
+#ifdef SA_RESTORER
+ if (sa.sa_flags & SA_RESTORER)
+ tprintf(", %p", sa.sa_restorer);
+#endif
+ tprintf("}");
+ }
+ }
+ if (entering(tcp))
+ tprintf(", ");
+#ifdef LINUX
+ else
+ tprintf(", %#lx", (unsigned long) sa.sa_restorer);
+#endif
+ return 0;
+}
+
+int
+sys_signal(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printsignal(tcp->u_arg[0]);
+ tprintf(", ");
+ switch (tcp->u_arg[1]) {
+ case (int) SIG_ERR:
+ tprintf("SIG_ERR");
+ break;
+ case (int) SIG_DFL:
+ tprintf("SIG_DFL");
+ break;
+ case (int) SIG_IGN:
+#ifndef USE_PROCFS
+ if (tcp->u_arg[0] == SIGTRAP) {
+ tcp->flags |= TCB_SIGTRAPPED;
+ kill(tcp->pid, SIGSTOP);
+ }
+#endif /* !USE_PROCFS */
+ tprintf("SIG_IGN");
+ break;
+ default:
+#ifndef USE_PROCFS
+ if (tcp->u_arg[0] == SIGTRAP) {
+ tcp->flags |= TCB_SIGTRAPPED;
+ kill(tcp->pid, SIGSTOP);
+ }
+#endif /* !USE_PROCFS */
+ tprintf("%#lx", tcp->u_arg[1]);
+ }
+ return 0;
+ }
+ else {
+ switch (tcp->u_rval) {
+ case (int) SIG_ERR:
+ tcp->auxstr = "SIG_ERR"; break;
+ case (int) SIG_DFL:
+ tcp->auxstr = "SIG_DFL"; break;
+ case (int) SIG_IGN:
+ tcp->auxstr = "SIG_IGN"; break;
+ default:
+ tcp->auxstr = NULL;
+ }
+ return RVAL_HEX | RVAL_STR;
+ }
+}
+
+int
+sys_sighold(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printsignal(tcp->u_arg[0]);
+ }
+ return 0;
+}
+
+#endif /* HAVE_SIGACTION */
+
+#ifdef HAVE_ANDROID_OS
+#define sigcontext_struct sigcontext
+#endif
+//#ifndef HAVE_ANDROID_OS
+#ifdef LINUX
+
+int
+sys_sigreturn(tcp)
+struct tcb *tcp;
+{
+#ifdef ARM
+ struct pt_regs regs;
+ struct sigcontext_struct sc;
+
+ if (entering(tcp)) {
+ tcp->u_arg[0] = 0;
+
+ if (ptrace(PTRACE_GETREGS, tcp->pid, NULL, (void *)®s) == -1)
+ return 0;
+
+ if (umove(tcp, regs.ARM_sp, &sc) < 0)
+ return 0;
+
+ tcp->u_arg[0] = 1;
+ tcp->u_arg[1] = sc.oldmask;
+ } else {
+ sigset_t sigm;
+ long_to_sigset(tcp->u_arg[1], &sigm);
+ tcp->u_rval = tcp->u_error = 0;
+ if (tcp->u_arg[0] == 0)
+ return 0;
+ tcp->auxstr = sprintsigmask("mask now ", &sigm, 0);
+ return RVAL_NONE | RVAL_STR;
+ }
+ return 0;
+#elif defined(S390) || defined(S390X)
+ long usp;
+ struct sigcontext_struct sc;
+
+ if (entering(tcp)) {
+ tcp->u_arg[0] = 0;
+ if (upeek(tcp->pid,PT_GPR15,&usp)<0)
+ return 0;
+ if (umove(tcp, usp+__SIGNAL_FRAMESIZE, &sc) < 0)
+ return 0;
+ tcp->u_arg[0] = 1;
+ memcpy(&tcp->u_arg[1],&sc.oldmask[0],sizeof(sigset_t));
+ } else {
+ tcp->u_rval = tcp->u_error = 0;
+ if (tcp->u_arg[0] == 0)
+ return 0;
+ tcp->auxstr = sprintsigmask("mask now ",(sigset_t *)&tcp->u_arg[1],0);
+ return RVAL_NONE | RVAL_STR;
+ }
+ return 0;
+#else
+#ifdef I386
+ long esp;
+ struct sigcontext_struct sc;
+
+ if (entering(tcp)) {
+ tcp->u_arg[0] = 0;
+ if (upeek(tcp->pid, 4*UESP, &esp) < 0)
+ return 0;
+ if (umove(tcp, esp, &sc) < 0)
+ return 0;
+ tcp->u_arg[0] = 1;
+ tcp->u_arg[1] = sc.oldmask;
+ }
+ else {
+ sigset_t sigm;
+ long_to_sigset(tcp->u_arg[1], &sigm);
+ tcp->u_rval = tcp->u_error = 0;
+ if (tcp->u_arg[0] == 0)
+ return 0;
+ tcp->auxstr = sprintsigmask("mask now ", &sigm, 0);
+ return RVAL_NONE | RVAL_STR;
+ }
+ return 0;
+#else /* !I386 */
+#ifdef IA64
+ struct sigcontext sc;
+ long sp;
+
+ if (entering(tcp)) {
+ /* offset of sigcontext in the kernel's sigframe structure: */
+# define SIGFRAME_SC_OFFSET 0x90
+ tcp->u_arg[0] = 0;
+ if (upeek(tcp->pid, PT_R12, &sp) < 0)
+ return 0;
+ if (umove(tcp, sp + 16 + SIGFRAME_SC_OFFSET, &sc) < 0)
+ return 0;
+ tcp->u_arg[0] = 1;
+ memcpy(tcp->u_arg + 1, &sc.sc_mask, sizeof(sc.sc_mask));
+ }
+ else {
+ sigset_t sigm;
+
+ memcpy(&sigm, tcp->u_arg + 1, sizeof (sigm));
+ tcp->u_rval = tcp->u_error = 0;
+ if (tcp->u_arg[0] == 0)
+ return 0;
+ tcp->auxstr = sprintsigmask("mask now ", &sigm, 0);
+ return RVAL_NONE | RVAL_STR;
+ }
+ return 0;
+#else /* !IA64 */
+#ifdef POWERPC
+ long esp;
+ struct sigcontext_struct sc;
+
+ if (entering(tcp)) {
+ tcp->u_arg[0] = 0;
+ if (upeek(tcp->pid, sizeof(unsigned long)*PT_R1, &esp) < 0)
+ return 0;
+ if (umove(tcp, esp, &sc) < 0)
+ return 0;
+ tcp->u_arg[0] = 1;
+ tcp->u_arg[1] = sc.oldmask;
+ }
+ else {
+ sigset_t sigm;
+ long_to_sigset(tcp->u_arg[1], &sigm);
+ tcp->u_rval = tcp->u_error = 0;
+ if (tcp->u_arg[0] == 0)
+ return 0;
+ tcp->auxstr = sprintsigmask("mask now ", &sigm, 0);
+ return RVAL_NONE | RVAL_STR;
+ }
+ return 0;
+#else /* !POWERPC */
+#ifdef M68K
+ long usp;
+ struct sigcontext sc;
+
+ if (entering(tcp)) {
+ tcp->u_arg[0] = 0;
+ if (upeek(tcp->pid, 4*PT_USP, &usp) < 0)
+ return 0;
+ if (umove(tcp, usp, &sc) < 0)
+ return 0;
+ tcp->u_arg[0] = 1;
+ tcp->u_arg[1] = sc.sc_mask;
+ }
+ else {
+ sigset_t sigm;
+ long_to_sigset(tcp->u_arg[1], &sigm);
+ tcp->u_rval = tcp->u_error = 0;
+ if (tcp->u_arg[0] == 0)
+ return 0;
+ tcp->auxstr = sprintsigmask("mask now ", &sigm, 0);
+ return RVAL_NONE | RVAL_STR;
+ }
+ return 0;
+#else /* !M68K */
+#ifdef ALPHA
+ long fp;
+ struct sigcontext_struct sc;
+
+ if (entering(tcp)) {
+ tcp->u_arg[0] = 0;
+ if (upeek(tcp->pid, REG_FP, &fp) < 0)
+ return 0;
+ if (umove(tcp, fp, &sc) < 0)
+ return 0;
+ tcp->u_arg[0] = 1;
+ tcp->u_arg[1] = sc.sc_mask;
+ }
+ else {
+ sigset_t sigm;
+ long_to_sigset(tcp->u_arg[1], &sigm);
+ tcp->u_rval = tcp->u_error = 0;
+ if (tcp->u_arg[0] == 0)
+ return 0;
+ tcp->auxstr = sprintsigmask("mask now ", &sigm, 0);
+ return RVAL_NONE | RVAL_STR;
+ }
+ return 0;
+#else
+#if defined (SPARC) || defined (SPARC64)
+ long i1;
+ struct regs regs;
+ m_siginfo_t si;
+
+ if(ptrace(PTRACE_GETREGS, tcp->pid, (char *)®s, 0) < 0) {
+ perror("sigreturn: PTRACE_GETREGS ");
+ return 0;
+ }
+ if(entering(tcp)) {
+ tcp->u_arg[0] = 0;
+ i1 = regs.r_o1;
+ if(umove(tcp, i1, &si) < 0) {
+ perror("sigreturn: umove ");
+ return 0;
+ }
+ tcp->u_arg[0] = 1;
+ tcp->u_arg[1] = si.si_mask;
+ } else {
+ sigset_t sigm;
+ long_to_sigset(tcp->u_arg[1], &sigm);
+ tcp->u_rval = tcp->u_error = 0;
+ if(tcp->u_arg[0] == 0)
+ return 0;
+ tcp->auxstr = sprintsigmask("mask now ", &sigm, 0);
+ return RVAL_NONE | RVAL_STR;
+ }
+ return 0;
+#else
+#ifdef MIPS
+ long sp;
+ struct sigcontext sc;
+
+ if(entering(tcp)) {
+ tcp->u_arg[0] = 0;
+ if (upeek(tcp->pid, REG_SP, &sp) < 0)
+ return 0;
+ if (umove(tcp, sp, &sc) < 0)
+ return 0;
+ tcp->u_arg[0] = 1;
+ tcp->u_arg[1] = sc.sc_sigset;
+ } else {
+ tcp->u_rval = tcp->u_error = 0;
+ if(tcp->u_arg[0] == 0)
+ return 0;
+ tcp->auxstr = sprintsigmask("mask now ", tcp->u_arg[1]);
+ return RVAL_NONE | RVAL_STR;
+ }
+ return 0;
+#else
+#warning No sys_sigreturn() for this architecture
+#warning (no problem, just a reminder :-)
+ return 0;
+#endif /* MIPS */
+#endif /* SPARC || SPARC64 */
+#endif /* ALPHA */
+#endif /* !M68K */
+#endif /* !POWERPC */
+#endif /* !IA64 */
+#endif /* !I386 */
+#endif /* S390 */
+}
+
+int
+sys_siggetmask(tcp)
+struct tcb *tcp;
+{
+ if (exiting(tcp)) {
+ sigset_t sigm;
+ long_to_sigset(tcp->u_rval, &sigm);
+ tcp->auxstr = sprintsigmask("mask ", &sigm, 0);
+ }
+ return RVAL_HEX | RVAL_STR;
+}
+
+int
+sys_sigsuspend(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ sigset_t sigm;
+ long_to_sigset(tcp->u_arg[2], &sigm);
+#if 0
+ /* first two are not really arguments, but print them anyway */
+ /* nevermind, they are an anachronism now, too bad... */
+ tprintf("%d, %#x, ", tcp->u_arg[0], tcp->u_arg[1]);
+#endif
+ printsigmask(&sigm, 0);
+ }
+ return 0;
+}
+
+#endif /* LINUX */
+//#endif /* HAVE_ANDROID_OS */
+
+#if defined(SVR4) || defined(FREEBSD)
+
+int
+sys_sigsuspend(tcp)
+struct tcb *tcp;
+{
+ sigset_t sigset;
+
+ if (entering(tcp)) {
+ if (umove(tcp, tcp->u_arg[0], &sigset) < 0)
+ tprintf("[?]");
+ else
+ printsigmask(&sigset, 0);
+ }
+ return 0;
+}
+#ifndef FREEBSD
+static const struct xlat ucontext_flags[] = {
+ { UC_SIGMASK, "UC_SIGMASK" },
+ { UC_STACK, "UC_STACK" },
+ { UC_CPU, "UC_CPU" },
+#ifdef UC_FPU
+ { UC_FPU, "UC_FPU" },
+#endif
+#ifdef UC_INTR
+ { UC_INTR, "UC_INTR" },
+#endif
+ { 0, NULL },
+};
+#endif /* !FREEBSD */
+#endif /* SVR4 || FREEBSD */
+
+#if defined SVR4 || defined LINUX || defined FREEBSD
+#if defined LINUX && !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
+#ifdef FREEBSD
+#define stack_t struct sigaltstack
+#endif
+
+static const struct xlat sigaltstack_flags[] = {
+ { SS_ONSTACK, "SS_ONSTACK" },
+ { SS_DISABLE, "SS_DISABLE" },
+ { 0, NULL },
+};
+#endif
+
+#ifdef SVR4
+static void
+printcontext(tcp, ucp)
+struct tcb *tcp;
+ucontext_t *ucp;
+{
+ tprintf("{");
+ if (!abbrev(tcp)) {
+ tprintf("uc_flags=");
+ printflags(ucontext_flags, ucp->uc_flags, "UC_???");
+ tprintf(", uc_link=%#lx, ", (unsigned long) ucp->uc_link);
+ }
+ tprintf("uc_sigmask=");
+ printsigmask(&ucp->uc_sigmask, 0);
+ if (!abbrev(tcp)) {
+ tprintf(", uc_stack={ss_sp=%#lx, ss_size=%d, ss_flags=",
+ (unsigned long) ucp->uc_stack.ss_sp,
+ ucp->uc_stack.ss_size);
+ printflags(sigaltstack_flags, ucp->uc_stack.ss_flags, "SS_???");
+ tprintf("}");
+ }
+ tprintf(", ...}");
+}
+
+int
+sys_getcontext(tcp)
+struct tcb *tcp;
+{
+ ucontext_t uc;
+
+ if (exiting(tcp)) {
+ if (tcp->u_error)
+ tprintf("%#lx", tcp->u_arg[0]);
+ else if (!tcp->u_arg[0])
+ tprintf("NULL");
+ else if (umove(tcp, tcp->u_arg[0], &uc) < 0)
+ tprintf("{...}");
+ else
+ printcontext(tcp, &uc);
+ }
+ return 0;
+}
+
+int
+sys_setcontext(tcp)
+struct tcb *tcp;
+{
+ ucontext_t uc;
+
+ if (entering(tcp)) {
+ if (!tcp->u_arg[0])
+ tprintf("NULL");
+ else if (umove(tcp, tcp->u_arg[0], &uc) < 0)
+ tprintf("{...}");
+ else
+ printcontext(tcp, &uc);
+ }
+ else {
+ tcp->u_rval = tcp->u_error = 0;
+ if (tcp->u_arg[0] == 0)
+ return 0;
+ return RVAL_NONE;
+ }
+ return 0;
+}
+
+#endif /* SVR4 */
+
+#if defined(LINUX) || defined(FREEBSD)
+
+static int
+print_stack_t(tcp, addr)
+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;
+}
+
+int
+sys_sigaltstack(tcp)
+ struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ if (tcp->u_arg[0] == 0)
+ tprintf("NULL");
+ else if (print_stack_t(tcp, tcp->u_arg[0]) < 0)
+ return -1;
+ }
+ else {
+ tprintf(", ");
+ if (tcp->u_arg[1] == 0)
+ tprintf("NULL");
+ else if (print_stack_t(tcp, tcp->u_arg[1]) < 0)
+ return -1;
+ }
+ return 0;
+}
+#endif
+
+#ifdef HAVE_SIGACTION
+
+int
+sys_sigprocmask(tcp)
+struct tcb *tcp;
+{
+#ifdef ALPHA
+ if (entering(tcp)) {
+ printxval(sigprocmaskcmds, tcp->u_arg[0], "SIG_???");
+ tprintf(", ");
+ printsigmask(tcp->u_arg[1], 0);
+ }
+ else if (!syserror(tcp)) {
+ tcp->auxstr = sprintsigmask("old mask ", tcp->u_rval, 0);
+ return RVAL_HEX | RVAL_STR;
+ }
+#else /* !ALPHA */
+ sigset_t sigset;
+
+ if (entering(tcp)) {
+#ifdef SVR4
+ if (tcp->u_arg[0] == 0)
+ tprintf("0");
+ else
+#endif /* SVR4 */
+ printxval(sigprocmaskcmds, tcp->u_arg[0], "SIG_???");
+ tprintf(", ");
+ if (!tcp->u_arg[1])
+ tprintf("NULL, ");
+ else if (copy_sigset(tcp, tcp->u_arg[1], &sigset) < 0)
+ tprintf("%#lx, ", tcp->u_arg[1]);
+ else {
+ printsigmask(&sigset, 0);
+ tprintf(", ");
+ }
+ }
+ else {
+ if (!tcp->u_arg[2])
+ tprintf("NULL");
+ else if (syserror(tcp))
+ tprintf("%#lx", tcp->u_arg[2]);
+ else if (copy_sigset(tcp, tcp->u_arg[2], &sigset) < 0)
+ tprintf("[?]");
+ else
+ printsigmask(&sigset, 0);
+ }
+#endif /* !ALPHA */
+ return 0;
+}
+
+#endif /* HAVE_SIGACTION */
+
+int
+sys_kill(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, %s", tcp->u_arg[0], signame(tcp->u_arg[1]));
+ }
+ return 0;
+}
+
+int
+sys_killpg(tcp)
+struct tcb *tcp;
+{
+ return sys_kill(tcp);
+}
+
+#ifdef LINUX
+int
+sys_tgkill(tcp)
+ struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%ld, %ld, %s",
+ tcp->u_arg[0], tcp->u_arg[1], signame(tcp->u_arg[2]));
+ }
+ return 0;
+}
+#endif
+
+int
+sys_sigpending(tcp)
+struct tcb *tcp;
+{
+ sigset_t sigset;
+
+ if (exiting(tcp)) {
+ if (syserror(tcp))
+ tprintf("%#lx", tcp->u_arg[0]);
+ else if (copy_sigset(tcp, tcp->u_arg[0], &sigset) < 0)
+ tprintf("[?]");
+ else
+ printsigmask(&sigset, 0);
+ }
+ return 0;
+}
+
+int sys_sigwait(tcp)
+struct tcb *tcp;
+{
+ sigset_t sigset;
+
+ if (entering(tcp)) {
+ if (copy_sigset(tcp, tcp->u_arg[0], &sigset) < 0)
+ tprintf("[?]");
+ else
+ printsigmask(&sigset, 0);
+ }
+ else {
+ if (!syserror(tcp)) {
+ tcp->auxstr = signalent[tcp->u_rval];
+ return RVAL_DECIMAL | RVAL_STR;
+ }
+ }
+ return 0;
+}
+
+#ifdef LINUX
+
+ int
+sys_rt_sigprocmask(tcp)
+ struct tcb *tcp;
+{
+ sigset_t sigset;
+
+ /* Note: arg[3] is the length of the sigset. */
+ if (entering(tcp)) {
+ printxval(sigprocmaskcmds, tcp->u_arg[0], "SIG_???");
+ tprintf(", ");
+ if (!tcp->u_arg[1])
+ tprintf("NULL, ");
+ else if (copy_sigset_len(tcp, tcp->u_arg[1], &sigset, tcp->u_arg[3]) < 0)
+ tprintf("%#lx, ", tcp->u_arg[1]);
+ else {
+ printsigmask(&sigset, 1);
+ tprintf(", ");
+ }
+ }
+ else {
+ if (!tcp->u_arg[2])
+
+ tprintf("NULL");
+ else if (syserror(tcp))
+ tprintf("%#lx", tcp->u_arg[2]);
+ else if (copy_sigset_len(tcp, tcp->u_arg[2], &sigset, tcp->u_arg[3]) < 0)
+ tprintf("[?]");
+ else
+ printsigmask(&sigset, 1);
+ tprintf(", %lu", tcp->u_arg[3]);
+ }
+ return 0;
+}
+
+
+/* Structure describing the action to be taken when a signal arrives. */
+struct new_sigaction
+{
+ union
+ {
+ __sighandler_t __sa_handler;
+ void (*__sa_sigaction) (int, siginfo_t *, void *);
+ }
+ __sigaction_handler;
+ unsigned long sa_flags;
+ void (*sa_restorer) (void);
+ unsigned long int sa_mask[2];
+};
+
+
+ int
+sys_rt_sigaction(tcp)
+ struct tcb *tcp;
+{
+ struct new_sigaction sa;
+ sigset_t sigset;
+ long addr;
+
+ if (entering(tcp)) {
+ printsignal(tcp->u_arg[0]);
+ tprintf(", ");
+ addr = tcp->u_arg[1];
+ } else
+ addr = tcp->u_arg[2];
+ if (addr == 0)
+ tprintf("NULL");
+ else if (!verbose(tcp))
+ tprintf("%#lx", addr);
+ else if (umove(tcp, addr, &sa) < 0)
+ tprintf("{...}");
+ else {
+ switch ((long) sa.__sigaction_handler.__sa_handler) {
+ case (long) SIG_ERR:
+ tprintf("{SIG_ERR}");
+ break;
+ case (long) SIG_DFL:
+ tprintf("{SIG_DFL}");
+ break;
+ case (long) SIG_IGN:
+ tprintf("{SIG_IGN}");
+ break;
+ default:
+ tprintf("{%#lx, ",
+ (long) sa.__sigaction_handler.__sa_handler);
+ sigemptyset(&sigset);
+#ifdef LINUXSPARC
+ if (tcp->u_arg[4] <= sizeof(sigset))
+ memcpy(&sigset, &sa.sa_mask, tcp->u_arg[4]);
+#else
+ if (tcp->u_arg[3] <= sizeof(sigset))
+ memcpy(&sigset, &sa.sa_mask, tcp->u_arg[3]);
+#endif
+ else
+ memcpy(&sigset, &sa.sa_mask, sizeof(sigset));
+ printsigmask(&sigset, 1);
+ tprintf(", ");
+ printflags(sigact_flags, sa.sa_flags, "SA_???");
+#ifdef SA_RESTORER
+ if (sa.sa_flags & SA_RESTORER)
+ tprintf(", %p", sa.sa_restorer);
+#endif
+ tprintf("}");
+ }
+ }
+ if (entering(tcp))
+ tprintf(", ");
+ else
+#ifdef LINUXSPARC
+ 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]);
+#else
+ tprintf(", %lu", addr = tcp->u_arg[3]);
+#endif
+ return 0;
+}
+
+ int
+sys_rt_sigpending(tcp)
+ struct tcb *tcp;
+{
+ sigset_t sigset;
+
+ if (exiting(tcp)) {
+ if (syserror(tcp))
+ tprintf("%#lx", tcp->u_arg[0]);
+ else if (copy_sigset_len(tcp, tcp->u_arg[0],
+ &sigset, tcp->u_arg[1]) < 0)
+ tprintf("[?]");
+ else
+ printsigmask(&sigset, 1);
+ }
+ return 0;
+}
+ int
+sys_rt_sigsuspend(tcp)
+ struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ sigset_t sigm;
+ if (copy_sigset_len(tcp, tcp->u_arg[0], &sigm, tcp->u_arg[1]) < 0)
+ tprintf("[?]");
+ else
+ printsigmask(&sigm, 1);
+ }
+ return 0;
+}
+ int
+sys_rt_sigqueueinfo(tcp)
+ struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ siginfo_t si;
+ tprintf("%lu, ", tcp->u_arg[0]);
+ printsignal(tcp->u_arg[1]);
+ tprintf(", ");
+ if (umove(tcp, tcp->u_arg[2], &si) < 0)
+ tprintf("%#lx", tcp->u_arg[2]);
+ else
+ printsiginfo(&si, verbose (tcp));
+ }
+ return 0;
+}
+
+int sys_rt_sigtimedwait(tcp)
+ struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ sigset_t sigset;
+
+ if (copy_sigset_len(tcp, tcp->u_arg[0],
+ &sigset, tcp->u_arg[3]) < 0)
+ tprintf("[?]");
+ else
+ printsigmask(&sigset, 1);
+ tprintf(", ");
+ }
+ else {
+ if (syserror(tcp))
+ tprintf("%#lx", tcp->u_arg[0]);
+ else {
+ siginfo_t si;
+ if (umove(tcp, tcp->u_arg[1], &si) < 0)
+ tprintf("%#lx", tcp->u_arg[1]);
+ else
+ printsiginfo(&si, verbose (tcp));
+ /* XXX For now */
+ tprintf(", %#lx", tcp->u_arg[2]);
+ tprintf(", %d", (int) tcp->u_arg[3]);
+ }
+ }
+ return 0;
+};
+
+#endif /* LINUX */
diff --git a/signalent.sh b/signalent.sh
new file mode 100644
index 0000000..f1c0a1f
--- /dev/null
+++ b/signalent.sh
@@ -0,0 +1,55 @@
+#!/bin/sh
+# Copyright (c) 1996 Rick Sladkey <jrs@world.std.com>
+# 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.
+#
+# $Id: signalent.sh,v 1.1.1.1 1999/02/19 00:22:28 wichert Exp $
+
+cat $* |
+ sed -n -e 's/\/\*.*\*\// /' -e 's/^#[ ]*define[ ][ ]*SIG\([^_ ]*\)[ ][ ]*\([0-9][0-9]*\)[ ]*$/\1 \2/p' |
+ sort +1n |
+ awk '
+ BEGIN {
+ tabs = "\t\t\t\t\t\t\t\t"
+ signal = -1;
+ }
+ $2 <= 256 {
+ if (signal == $2)
+ next
+ while (++signal < $2) {
+ n = "\"SIG_" signal "\""
+ s = "\t" n ","
+ s = s substr(tabs, 1, 16/8 - int((length(n) + 1)/8))
+ s = s "/* " signal " */"
+ print s
+ }
+ if (signal == $2)
+ n = "\"SIG" $1 "\""
+ n = "\"SIG" $1 "\""
+ s = "\t" n ","
+ s = s substr(tabs, 1, 16/8 - int((length(n) + 1)/8))
+ s = s "/* " signal " */"
+ print s
+ }
+ '
diff --git a/sock.c b/sock.c
new file mode 100644
index 0000000..902ccfe
--- /dev/null
+++ b/sock.c
@@ -0,0 +1,253 @@
+/*
+ * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
+ * 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.
+ *
+ * $Id: sock.c,v 1.11 2005/06/01 19:02:37 roland Exp $
+ */
+
+#include "defs.h"
+
+#ifdef LINUX
+#include <sys/socket.h>
+#include <linux/sockios.h>
+#else
+#include <sys/socket.h>
+#include <sys/sockio.h>
+#endif
+#include <arpa/inet.h>
+
+#if defined (ALPHA) || defined(SH) || defined(SH64)
+#ifdef HAVE_SYS_IOCTL_H
+#include <sys/ioctl.h>
+#elif defined(HAVE_IOCTLS_H)
+#include <ioctls.h>
+#endif
+#endif
+#include <net/if.h>
+
+extern const struct xlat addrfams[];
+
+static const struct xlat iffflags[] = {
+ { IFF_UP, "IFF_UP" },
+ { IFF_BROADCAST, "IFF_BROADCAST" },
+ { IFF_DEBUG, "IFF_DEBUG" },
+ { IFF_LOOPBACK, "IFF_LOOPBACK" },
+ { IFF_POINTOPOINT, "IFF_POINTOPOINT" },
+ { IFF_NOTRAILERS, "IFF_NOTRAILERS" },
+ { IFF_RUNNING, "IFF_RUNNING" },
+ { IFF_NOARP, "IFF_NOARP" },
+ { IFF_PROMISC, "IFF_PROMISC" },
+ { IFF_ALLMULTI, "IFF_ALLMULTI" },
+ { IFF_MASTER, "IFF_MASTER" },
+ { IFF_SLAVE, "IFF_SLAVE" },
+ { IFF_MULTICAST, "IFF_MULTICAST" },
+ { IFF_PORTSEL, "IFF_PORTSEL" },
+ { IFF_AUTOMEDIA, "IFF_AUTOMEDIA" },
+ { 0, NULL }
+};
+
+
+static void
+print_addr(tcp, addr, ifr)
+struct tcb *tcp;
+long addr;
+struct ifreq *ifr;
+{
+ if (ifr->ifr_addr.sa_family == AF_INET) {
+ struct sockaddr_in *sinp;
+ sinp = (struct sockaddr_in *) &ifr->ifr_addr;
+ tprintf("inet_addr(\"%s\")", inet_ntoa(sinp->sin_addr));
+ } else
+ printstr(tcp, addr, sizeof(ifr->ifr_addr.sa_data));
+}
+
+int
+sock_ioctl(tcp, code, arg)
+struct tcb *tcp;
+long code, arg;
+{
+ struct ifreq ifr;
+ struct ifconf ifc;
+ const char *str = NULL;
+ unsigned char *bytes;
+
+ if (entering(tcp)) {
+ if (code == SIOCGIFCONF) {
+ umove(tcp, tcp->u_arg[2], &ifc);
+ if (ifc.ifc_buf == NULL)
+ tprintf(", {%d -> ", ifc.ifc_len);
+ else
+ tprintf(", {");
+ }
+ return 0;
+ }
+
+ switch (code) {
+#ifdef SIOCSHIWAT
+ case SIOCSHIWAT:
+#endif
+#ifdef SIOCGHIWAT
+ case SIOCGHIWAT:
+#endif
+#ifdef SIOCSLOWAT
+ case SIOCSLOWAT:
+#endif
+#ifdef SIOCGLOWAT
+ case SIOCGLOWAT:
+#endif
+#ifdef FIOSETOWN
+ case FIOSETOWN:
+#endif
+#ifdef FIOGETOWN
+ case FIOGETOWN:
+#endif
+#ifdef SIOCSPGRP
+ case SIOCSPGRP:
+#endif
+#ifdef SIOCGPGRP
+ case SIOCGPGRP:
+#endif
+#ifdef SIOCATMARK
+ case SIOCATMARK:
+#endif
+ printnum(tcp, arg, ", %#d");
+ return 1;
+#ifdef LINUX
+ case SIOCGIFNAME:
+ case SIOCGIFINDEX:
+ case SIOCGIFADDR:
+ case SIOCGIFDSTADDR:
+ case SIOCGIFBRDADDR:
+ case SIOCGIFNETMASK:
+ case SIOCGIFFLAGS:
+ case SIOCGIFMETRIC:
+ case SIOCGIFMTU:
+ case SIOCGIFSLAVE:
+ case SIOCGIFHWADDR:
+ umove(tcp, tcp->u_arg[2], &ifr);
+ if (syserror(tcp)) {
+ if (code == SIOCGIFNAME)
+ tprintf(", {ifr_index=%d, ifr_name=???}", ifr.ifr_ifindex);
+ else
+ tprintf(", {ifr_name=\"%s\", ???}", ifr.ifr_name);
+ } else if (code == SIOCGIFNAME)
+ tprintf(", {ifr_index=%d, ifr_name=\"%s\"}",
+ ifr.ifr_ifindex, ifr.ifr_name);
+ else {
+ tprintf(", {ifr_name=\"%s\", ", ifr.ifr_name);
+ switch (code) {
+ case SIOCGIFINDEX:
+ tprintf("ifr_index=%d", ifr.ifr_ifindex);
+ break;
+ case SIOCGIFADDR:
+ str = "ifr_addr";
+ case SIOCGIFDSTADDR:
+ if (str == NULL)
+ str = "ifr_dstaddr";
+ case SIOCGIFBRDADDR:
+ if (str == NULL)
+ str = "ifr_broadaddr";
+ case SIOCGIFNETMASK:
+ if (str == NULL)
+ str = "ifr_netmask";
+ tprintf("%s={", str);
+ printxval(addrfams,
+ ifr.ifr_addr.sa_family,
+ "AF_???");
+ tprintf(", ");
+ print_addr(tcp, ((long) tcp->u_arg[2]
+ + offsetof (struct ifreq,
+ ifr_addr.sa_data)),
+ &ifr);
+ tprintf("}");
+ break;
+ case SIOCGIFHWADDR:
+ /* XXX Are there other hardware addresses
+ than 6-byte MACs? */
+ bytes = (unsigned char *) &ifr.ifr_hwaddr.sa_data;
+ tprintf("ifr_hwaddr=%02x:%02x:%02x:%02x:%02x:%02x",
+ bytes[0], bytes[1], bytes[2],
+ bytes[3], bytes[4], bytes[5]);
+ break;
+ case SIOCGIFFLAGS:
+ tprintf("ifr_flags=");
+ printflags(iffflags, ifr.ifr_flags, "IFF_???");
+ break;
+ case SIOCGIFMETRIC:
+ tprintf("ifr_metric=%d", ifr.ifr_metric);
+ break;
+ case SIOCGIFMTU:
+ tprintf("ifr_mtu=%d", ifr.ifr_mtu);
+ break;
+ case SIOCGIFSLAVE:
+ tprintf("ifr_slave=\"%s\"", ifr.ifr_slave);
+ break;
+ }
+ tprintf("}");
+ }
+ return 1;
+ case SIOCGIFCONF:
+ umove(tcp, tcp->u_arg[2], &ifc);
+ tprintf("%d, ", ifc.ifc_len);
+ if (syserror(tcp)) {
+ tprintf("%lx", (unsigned long) ifc.ifc_buf);
+ } else if (ifc.ifc_buf == NULL) {
+ tprintf("NULL");
+ } else {
+ int i;
+ unsigned nifra = ifc.ifc_len / sizeof(struct ifreq);
+ struct ifreq ifra[nifra];
+ umoven(tcp, (unsigned long) ifc.ifc_buf, sizeof(ifra),
+ (char *) ifra);
+ tprintf("{");
+ for (i = 0; i < nifra; ++i ) {
+ if (i > 0)
+ tprintf(", ");
+ tprintf("{\"%s\", {",
+ ifra[i].ifr_name);
+ if (verbose(tcp)) {
+ printxval(addrfams,
+ ifra[i].ifr_addr.sa_family,
+ "AF_???");
+ tprintf(", ");
+ print_addr(tcp, ((long) tcp->u_arg[2]
+ + offsetof (struct ifreq,
+ ifr_addr.sa_data)
+ + ((char *) &ifra[i]
+ - (char *) &ifra[0])),
+ &ifra[i]);
+ } else
+ tprintf("...");
+ tprintf("}}");
+ }
+ tprintf("}");
+ }
+ tprintf("}");
+ return 1;
+#endif
+ default:
+ return 0;
+ }
+}
diff --git a/strace-graph b/strace-graph
new file mode 100755
index 0000000..8f9247f
--- /dev/null
+++ b/strace-graph
@@ -0,0 +1,339 @@
+#!/usr/bin/perl
+
+# This script processes strace -f output. It displays a graph of invoked
+# subprocesses, and is useful for finding out what complex commands do.
+
+# You will probably want to invoke strace with -q as well, and with
+# -s 100 to get complete filenames.
+
+# The script can also handle the output with strace -t, -tt, or -ttt.
+# It will add elapsed time for each process in that case.
+
+# This script is Copyright (C) 1998 by Richard Braakman <dark@xs4all.nl>.
+
+# 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.
+#
+# $Id: strace-graph,v 1.2 1999/08/30 23:26:53 wichert Exp $
+
+my %unfinished;
+
+# Scales for strace slowdown. Make configurable!
+my $scale_factor = 3.5;
+
+while (<>) {
+ my ($pid, $call, $args, $result, $time);
+ chop;
+
+ s/^(\d+)\s+//;
+ $pid = $1;
+
+ if (s/^(\d\d):(\d\d):(\d\d)(?:\.(\d\d\d\d\d\d))? //) {
+ $time = $1 * 3600 + $2 * 60 + $3;
+ if (defined $4) {
+ $time = $time + $4 / 1000000;
+ $floatform = 1;
+ }
+ } elsif (s/^(\d+)\.(\d\d\d\d\d\d) //) {
+ $time = $1 + ($2 / 1000000);
+ $floatform = 1;
+ }
+
+ if (s/ <unfinished ...>$//) {
+ $unfinished{$pid} = $_;
+ next;
+ }
+
+ if (s/^<... \S+ resumed> //) {
+ unless (exists $unfinished{$pid}) {
+ print STDERR "$0: $ARGV: cannot find start of resumed call on line $.";
+ next;
+ }
+ $_ = $unfinished{$pid} . $_;
+ delete $unfinished{$pid};
+ }
+
+ if (/^--- SIG(\S+) \(.*\) ---$/) {
+ # $pid received signal $1
+ # currently we don't do anything with this
+ next;
+ }
+
+ if (/^\+\+\+ killed by SIG(\S+) \+\+\+$/) {
+ # $pid received signal $1
+ handle_killed($pid, $time);
+ next;
+ }
+
+ ($call, $args, $result) = /(\S+)\((.*)\)\s+= (.*)$/;
+ unless (defined $result) {
+ print STDERR "$0: $ARGV: $.: cannot parse line.\n";
+ next;
+ }
+
+ handle_trace($pid, $call, $args, $result, $time);
+}
+
+display_trace();
+
+exit 0;
+
+sub parse_str {
+ my ($in) = @_;
+ my $result = "";
+
+ while (1) {
+ if ($in =~ s/^\\(.)//) {
+ $result .= $1;
+ } elsif ($in =~ s/^\"//) {
+ if ($in =~ s/^\.\.\.//) {
+ return ("$result...", $in);
+ }
+ return ($result, $in);
+ } elsif ($in =~ s/([^\\\"]*)//) {
+ $result .= $1;
+ } else {
+ return (undef, $in);
+ }
+ }
+}
+
+sub parse_one {
+ my ($in) = @_;
+
+ if ($in =~ s/^\"//) {
+ ($tmp, $in) = parse_str($in);
+ if (not defined $tmp) {
+ print STDERR "$0: $ARGV: $.: cannot parse string.\n";
+ return (undef, $in);
+ }
+ return ($tmp, $in);
+ } elsif ($in =~ s/^0x(\x+)//) {
+ return (hex $1, $in);
+ } elsif ($in =~ s/^(\d+)//) {
+ return (int $1, $in);
+ } else {
+ print STDERR "$0: $ARGV: $.: unrecognized element.\n";
+ return (undef, $in);
+ }
+}
+
+sub parseargs {
+ my ($in) = @_;
+ my @args = ();
+ my $tmp;
+
+ while (length $in) {
+ if ($in =~ s/^\[//) {
+ my @subarr = ();
+ if ($in =~ s,^/\* (\d+) vars \*/\],,) {
+ push @args, $1;
+ } else {
+ while ($in !~ s/^\]//) {
+ ($tmp, $in) = parse_one($in);
+ defined $tmp or return undef;
+ push @subarr, $tmp;
+ unless ($in =~ /^\]/ or $in =~ s/^, //) {
+ print STDERR "$0: $ARGV: $.: missing comma in array.\n";
+ return undef;
+ }
+ if ($in =~ s/^\.\.\.//) {
+ push @subarr, "...";
+ }
+ }
+ push @args, \@subarr;
+ }
+ } elsif ($in =~ s/^\{//) {
+ my %subhash = ();
+ while ($in !~ s/^\}//) {
+ my $key;
+ unless ($in =~ s/^(\w+)=//) {
+ print STDERR "$0: $ARGV: $.: struct field expected.\n";
+ return undef;
+ }
+ $key = $1;
+ ($tmp, $in) = parse_one($in);
+ defined $tmp or return undef;
+ $subhash{$key} = $tmp;
+ unless ($in =~ s/, //) {
+ print STDERR "$0: $ARGV: $.: missing comma in struct.\n";
+ return undef;
+ }
+ }
+ push @args, \%subhash;
+ } else {
+ ($tmp, $in) = parse_one($in);
+ defined $tmp or return undef;
+ push @args, $tmp;
+ }
+ unless (length($in) == 0 or $in =~ s/^, //) {
+ print STDERR "$0: $ARGV: $.: missing comma.\n";
+ return undef;
+ }
+ }
+ return @args;
+}
+
+
+my $depth = "";
+
+# process info, indexed by pid.
+# fields:
+# parent pid number
+# seq forks and execs for this pid, in sequence (array)
+
+# filename and argv (from latest exec)
+# basename (derived from filename)
+# argv[0] is modified to add the basename if it differs from the 0th argument.
+
+my %pr;
+
+sub handle_trace {
+ my ($pid, $call, $args, $result, $time) = @_;
+ my $p;
+
+ if (defined $time and not defined $pr{$pid}{start}) {
+ $pr{$pid}{start} = $time;
+ }
+
+ if ($call eq 'execve') {
+ return if $result != 0;
+
+ my ($filename, $argv) = parseargs($args);
+ ($basename) = $filename =~ m/([^\/]*)$/;
+ if ($basename ne $$argv[0]) {
+ $$argv[0] = "$basename($$argv[0])";
+ }
+ my $seq = $pr{$pid}{seq};
+ $seq = [] if not defined $seq;
+
+ push @$seq, ['EXEC', $filename, $argv];
+
+ $pr{$pid}{seq} = $seq;
+ } elsif ($call eq 'fork') {
+ return if $result == 0;
+
+ my $seq = $pr{$pid}{seq};
+ $seq = [] if not defined $seq;
+ push @$seq, ['FORK', $result];
+ $pr{$pid}{seq} = $seq;
+ $pr{$result}{parent} = $pid;
+ } elsif ($call eq '_exit') {
+ $pr{$pid}{end} = $time if defined $time;
+ }
+}
+
+sub handle_killed {
+ my ($pid, $time) = @_;
+ $pr{$pid}{end} = $time if defined $time;
+}
+
+sub straight_seq {
+ my ($pid) = @_;
+ my $seq = $pr{$pid}{seq};
+
+ for $elem (@$seq) {
+ if ($$elem[0] eq 'EXEC') {
+ my $argv = $$elem[2];
+ print "$$elem[0] $$elem[1] @$argv\n";
+ } elsif ($$elem[0] eq 'FORK') {
+ print "$$elem[0] $$elem[1]\n";
+ } else {
+ print "$$elem[0]\n";
+ }
+ }
+}
+
+sub first_exec {
+ my ($pid) = @_;
+ my $seq = $pr{$pid}{seq};
+
+ for $elem (@$seq) {
+ if ($$elem[0] eq 'EXEC') {
+ return $elem;
+ }
+ }
+ return undef;
+}
+
+sub display_pid_trace {
+ my ($pid, $lead) = @_;
+ my $i = 0;
+ my @seq = @{$pr{$pid}{seq}};
+ my $elapsed;
+
+ if (not defined first_exec($pid)) {
+ unshift @seq, ['EXEC', '', ['(anon)'] ];
+ }
+
+ if (defined $pr{$pid}{start} and defined $pr{$pid}{end}) {
+ $elapsed = $pr{$pid}{end} - $pr{$pid}{start};
+ $elapsed /= $scale_factor;
+ if ($floatform) {
+ $elapsed = sprintf("%0.02f", $elapsed);
+ } else {
+ $elapsed = int $elapsed;
+ }
+ }
+
+ for $elem (@seq) {
+ $i++;
+ if ($$elem[0] eq 'EXEC') {
+ my $argv = $$elem[2];
+ if (defined $elapsed) {
+ print "$lead [$elapsed] @$argv\n";
+ undef $elapsed;
+ } else {
+ print "$lead @$argv\n";
+ }
+ } elsif ($$elem[0] eq 'FORK') {
+ if ($i == 1) {
+ if ($lead =~ /-$/) {
+ display_pid_trace($$elem[1], "$lead--+--");
+ } else {
+ display_pid_trace($$elem[1], "$lead +--");
+ }
+ } elsif ($i == @seq) {
+ display_pid_trace($$elem[1], "$lead `--");
+ } else {
+ display_pid_trace($$elem[1], "$lead +--");
+ }
+ }
+ if ($i == 1) {
+ $lead =~ s/\`--/ /g;
+ $lead =~ s/-/ /g;
+ $lead =~ s/\+/|/g;
+ }
+ }
+}
+
+sub display_trace {
+ my ($startpid) = @_;
+
+ $startpid = (keys %pr)[0];
+ while ($pr{$startpid}{parent}) {
+ $startpid = $pr{$startpid}{parent};
+ }
+
+ display_pid_trace($startpid, "");
+}
+
diff --git a/strace.1 b/strace.1
new file mode 100644
index 0000000..ba6b11c
--- /dev/null
+++ b/strace.1
@@ -0,0 +1,660 @@
+.\" Copyright (c) 1991, 1992 Paul Kranenburg <pk@cs.few.eur.nl>
+.\" Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
+.\" Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
+.\" 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.
+.\"
+.\" $Id: strace.1,v 1.12 2004/08/31 07:47:47 roland Exp $
+.\"
+.de CW
+.sp
+.nf
+.ft CW
+..
+.de CE
+.ft R
+.fi
+.sp
+..
+.TH STRACE 1 "2003-01-21"
+.SH NAME
+strace \- trace system calls and signals
+.SH SYNOPSIS
+.B strace
+[
+.B \-dffhiqrtttTvxx
+]
+[
+.BI \-a column
+]
+[
+.BI \-e expr
+]
+\&...
+[
+.BI \-o file
+]
+[
+.BI \-p pid
+]
+\&...
+[
+.BI \-s strsize
+]
+[
+.BI \-u username
+]
+[
+.BI \-E var=val
+]
+\&...
+[
+.BI \-E var
+]
+\&...
+[
+.I command
+[
+.I arg
+\&...
+]
+]
+.sp
+.B strace
+.B \-c
+[
+.BI \-e expr
+]
+\&...
+[
+.BI \-O overhead
+]
+[
+.BI \-S sortby
+]
+[
+.I command
+[
+.I arg
+\&...
+]
+]
+.SH DESCRIPTION
+.IX "strace command" "" "\fLstrace\fR command"
+.LP
+In the simplest case
+.B strace
+runs the specified
+.I command
+until it exits.
+It intercepts and records the system calls which are called
+by a process and the signals which are received by a process.
+The name of each system call, its arguments and its return value
+are printed on standard error or to the file specified with the
+.B \-o
+option.
+.LP
+.B strace
+is a useful diagnostic, instructional, and debugging tool.
+System administrators, diagnosticians and trouble-shooters will find
+it invaluable for solving problems with
+programs for which the source is not readily available since
+they do not need to be recompiled in order to trace them.
+Students, hackers and the overly-curious will find that
+a great deal can be learned about a system and its system calls by
+tracing even ordinary programs. And programmers will find that
+since system calls and signals are events that happen at the user/kernel
+interface, a close examination of this boundary is very
+useful for bug isolation, sanity checking and
+attempting to capture race conditions.
+.LP
+Each line in the trace contains the system call name, followed
+by its arguments in parentheses and its return value.
+An example from stracing the command ``cat /dev/null'' is:
+.CW
+open("/dev/null", O_RDONLY) = 3
+.CE
+Errors (typically a return value of \-1) have the errno symbol
+and error string appended.
+.CW
+open("/foo/bar", O_RDONLY) = -1 ENOENT (No such file or directory)
+.CE
+Signals are printed as a signal symbol and a signal string.
+An excerpt from stracing and interrupting the command ``sleep 666'' is:
+.CW
+sigsuspend([] <unfinished ...>
+--- SIGINT (Interrupt) ---
++++ killed by SIGINT +++
+.CE
+Arguments are printed in symbolic form with a passion.
+This example shows the shell performing ``>>xyzzy'' output redirection:
+.CW
+open("xyzzy", O_WRONLY|O_APPEND|O_CREAT, 0666) = 3
+.CE
+Here the three argument form of open is decoded by breaking down the
+flag argument into its three bitwise-OR constituents and printing the
+mode value in octal by tradition. Where traditional or native
+usage differs from ANSI or POSIX, the latter forms are preferred.
+In some cases,
+.B strace
+output has proven to be more readable than the source.
+.LP
+Structure pointers are dereferenced and the members are displayed
+as appropriate. In all cases arguments are formatted in the most C-like
+fashion possible.
+For example, the essence of the command ``ls \-l /dev/null'' is captured as:
+.CW
+lstat("/dev/null", {st_mode=S_IFCHR|0666, st_rdev=makedev(1, 3), ...}) = 0
+.CE
+Notice how the `struct stat' argument is dereferenced and how each member is
+displayed symbolically. In particular, observe how the st_mode member
+is carefully decoded into a bitwise-OR of symbolic and numeric values.
+Also notice in this example that the first argument to lstat is an input
+to the system call and the second argument is an output. Since output
+arguments are not modified if the system call fails, arguments may not
+always be dereferenced. For example, retrying the ``ls \-l'' example
+with a non-existent file produces the following line:
+.CW
+lstat("/foo/bar", 0xb004) = -1 ENOENT (No such file or directory)
+.CE
+In this case the porch light is on but nobody is home.
+.LP
+Character pointers are dereferenced and printed as C strings.
+Non-printing characters in strings are normally represented by
+ordinary C escape codes.
+Only the first
+.I strsize
+(32 by default) bytes of strings are printed;
+longer strings have an ellipsis appended following the closing quote.
+Here is a line from ``ls \-l'' where the
+.B getpwuid
+library routine is reading the password file:
+.CW
+read(3, "root::0:0:System Administrator:/"..., 1024) = 422
+.CE
+While structures are annotated using curly braces, simple pointers
+and arrays are printed using square brackets with commas separating
+elements. Here is an example from the command ``id'' on a system with
+supplementary group ids:
+.CW
+getgroups(32, [100, 0]) = 2
+.CE
+On the other hand, bit-sets are also shown using square brackets
+but set elements are separated only by a space. Here is the shell
+preparing to execute an external command:
+.CW
+sigprocmask(SIG_BLOCK, [CHLD TTOU], []) = 0
+.CE
+Here the second argument is a bit-set of two signals, SIGCHLD and SIGTTOU.
+In some cases the bit-set is so full that printing out the unset
+elements is more valuable. In that case, the bit-set is prefixed by
+a tilde like this:
+.CW
+sigprocmask(SIG_UNBLOCK, ~[], NULL) = 0
+.CE
+Here the second argument represents the full set of all signals.
+.SH OPTIONS
+.TP 12
+.TP
+.B \-c
+Count time, calls, and errors for each system call and report a summary on
+program exit. On Linux, this attempts to show system time (CPU time spent
+running in the kernel) independent of wall clock time.
+.TP
+.B \-d
+Show some debugging output of
+.B strace
+itself on the standard error.
+.TP
+.B \-f
+Trace child processes as they are created by currently traced
+processes as a result of the
+.BR fork (2)
+system call. 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.
+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).
+.TP
+.B \-ff
+If the
+.B \-o
+.I filename
+option is in effect, each processes trace is written to
+.I filename.pid
+where pid is the numeric process id of each process.
+.TP
+.B \-F
+Attempt to follow
+.BR vfork s.
+(On SunOS 4.x, this is accomplished with
+some dynamic linking trickery.)
+Otherwise,
+.BR vfork s
+will
+not be followed even if
+.B \-f
+has been given.
+.TP
+.B \-h
+Print the help summary.
+.TP
+.B \-i
+Print the instruction pointer at the time of the system call.
+.TP
+.B \-q
+Suppress messages about attaching, detaching etc. This happens
+automatically when output is redirected to a file and the command
+is run directly instead of attaching.
+.TP
+.B \-r
+Print a relative timestamp upon entry to each system call. This
+records the time difference between the beginning of successive
+system calls.
+.TP
+.B \-t
+Prefix each line of the trace with the time of day.
+.TP
+.B \-tt
+If given twice, the time printed will include the microseconds.
+.TP
+.B \-ttt
+If given thrice, the time printed will include the microseconds
+and the leading portion will be printed as the number
+of seconds since the epoch.
+.TP
+.B \-T
+Show the time spent in system calls. This records the time
+difference between the beginning and the end of each system call.
+.TP
+.B \-v
+Print unabbreviated versions of environment, stat, termios, etc.
+calls. These structures are very common in calls and so the default
+behavior displays a reasonable subset of structure members. Use
+this option to get all of the gory details.
+.TP
+.B \-V
+Print the version number of
+.BR strace .
+.TP
+.B \-x
+Print all non-ASCII strings in hexadecimal string format.
+.TP
+.B \-xx
+Print all strings in hexadecimal string format.
+.TP
+.BI "\-a " column
+Align return values in a specific column (default column 40).
+.TP
+.BI "\-e " expr
+A qualifying expression which modifies which events to trace
+or how to trace them. The format of the expression is:
+.RS 15
+.IP
+[\fIqualifier\fB=\fR][\fB!\fR]\fIvalue1\fR[\fB,\fIvalue2\fR]...
+.RE
+.IP
+where
+.I qualifier
+is one of
+.BR trace ,
+.BR abbrev ,
+.BR verbose ,
+.BR raw ,
+.BR signal ,
+.BR read ,
+or
+.B write
+and
+.I value
+is a qualifier-dependent symbol or number. The default
+qualifier is
+.BR trace .
+Using an exclamation mark negates the set of values. For example,
+.B \-eopen
+means literally
+.B "\-e trace=open"
+which in turn means trace only the
+.B open
+system call. By contrast,
+.B "\-etrace=!open"
+means to trace every system call except
+.BR open .
+In addition, the special values
+.B all
+and
+.B none
+have the obvious meanings.
+.IP
+Note that some shells use the exclamation point for history
+expansion even inside quoted arguments. If so, you must escape
+the exclamation point with a backslash.
+.TP
+.BI "\-e trace=" set
+Trace only the specified set of system calls. The
+.B \-c
+option is useful for determining which system calls might be useful
+to trace. For example,
+.B trace=open,close,read,write
+means to only
+trace those four system calls. Be careful when making inferences
+about the user/kernel boundary if only a subset of system calls
+are being monitored. The default is
+.BR trace=all .
+.TP
+.B "\-e trace=file"
+Trace all system calls which take a file name as an argument. You
+can think of this as an abbreviation for
+.BR "\-e\ trace=open,stat,chmod,unlink," ...
+which is useful to seeing what files the process is referencing.
+Furthermore, using the abbreviation will ensure that you don't
+accidentally forget to include a call like
+.B lstat
+in the list. Betchya woulda forgot that one.
+.TP
+.B "\-e trace=process"
+Trace all system calls which involve process management. This
+is useful for watching the fork, wait, and exec steps of a process.
+.TP
+.B "\-e trace=network"
+Trace all the network related system calls.
+.TP
+.B "\-e trace=signal"
+Trace all signal related system calls.
+.TP
+.B "\-e trace=ipc"
+Trace all IPC related system calls.
+.TP
+.BI "\-e abbrev=" set
+Abbreviate the output from printing each member of large structures.
+The default is
+.BR abbrev=all .
+The
+.B \-v
+option has the effect of
+.BR abbrev=none .
+.TP
+.BI "\-e verbose=" set
+Dereference structures for the specified set of system calls. The
+default is
+.BR verbose=all .
+.TP
+.BI "\-e raw=" set
+Print raw, undecoded arguments for the specified set of system calls.
+This option has the effect of causing all arguments to be printed
+in hexadecimal. This is mostly useful if you don't trust the
+decoding or you need to know the actual numeric value of an
+argument.
+.TP
+.BI "\-e signal=" set
+Trace only the specified subset of signals. The default is
+.BR signal=all .
+For example,
+.B signal=!SIGIO
+(or
+.BR signal=!io )
+causes SIGIO signals not to be traced.
+.TP
+.BI "\-e read=" set
+Perform a full hexadecimal and ASCII dump of all the data read from
+file descriptors listed in the specified set. For example, to see
+all input activity on file descriptors 3 and 5 use
+.BR "\-e read=3,5" .
+Note that this is independent from the normal tracing of the
+.BR read (2)
+system call which is controlled by the option
+.BR "\-e trace=read" .
+.TP
+.BI "\-e write=" set
+Perform a full hexadecimal and ASCII dump of all the data written to
+file descriptors listed in the specified set. For example, to see
+all output activity on file descriptors 3 and 5 use
+.BR "\-e write=3,5" .
+Note that this is independent from the normal tracing of the
+.BR write (2)
+system call which is controlled by the option
+.BR "\-e trace=write" .
+.TP
+.BI "\-o " filename
+Write the trace output to the file
+.I filename
+rather than to stderr.
+Use
+.I filename.pid
+if
+.B \-ff
+is used.
+If the argument begins with `|' or with `!' then the rest of the
+argument is treated as a command and all output is piped to it.
+This is convenient for piping the debugging output to a program
+without affecting the redirections of executed programs.
+.TP
+.BI "\-O " overhead
+Set the overhead for tracing system calls to
+.I overhead
+microseconds.
+This is useful for overriding the default heuristic for guessing
+how much time is spent in mere measuring when timing system calls using
+the
+.B \-c
+option. The accuracy of the heuristic can be gauged by timing a given
+program run without tracing (using
+.BR time (1))
+and comparing the accumulated
+system call time to the total produced using
+.BR \-c .
+.TP
+.BI "\-p " pid
+Attach to the process with the process
+.SM ID
+.I pid
+and begin tracing.
+The trace may be terminated
+at any time by a keyboard interrupt signal (\c
+.SM CTRL\s0-C).
+.B strace
+will respond by detaching itself from the traced process(es)
+leaving it (them) to continue running.
+Multiple
+.B \-p
+options can be used to attach to up to 32 processes in addition to
+.I command
+(which is optional if at least one
+.B \-p
+option is given).
+.TP
+.BI "\-s " strsize
+Specify the maximum string size to print (the default is 32). Note
+that filenames are not considered strings and are always printed in
+full.
+.TP
+.BI "\-S " sortby
+Sort the output of the histogram printed by the
+.B \-c
+option by the specified criterion. Legal values are
+.BR time ,
+.BR calls ,
+.BR name ,
+and
+.B nothing
+(default
+.BR time ).
+.TP
+.BI "\-u " username
+Run command with the user \s-1ID\s0, group \s-2ID\s0, and
+supplementary groups of
+.IR username .
+This option is only useful when running as root and enables the
+correct execution of setuid and/or setgid binaries.
+Unless this option is used setuid and setgid programs are executed
+without effective privileges.
+.TP
+.BI "\-E " var=val
+Run command with
+.IR var=val
+in its list of environment variables.
+.TP
+.BI "\-E " var
+Remove
+.IR var
+from the inherited list of environment variables before passing it on to
+the command.
+.SH "SETUID INSTALLATION"
+If
+.B strace
+is installed setuid to root then the invoking user will be able to
+attach to and trace processes owned by any user.
+In addition setuid and setgid programs will be executed and traced
+with the correct effective privileges.
+Since only users trusted with full root privileges should be allowed
+to do these things,
+it only makes sense to install
+.B strace
+as setuid to root when the users who can execute it are restricted
+to those users who have this trust.
+For example, it makes sense to install a special version of
+.B strace
+with mode `rwsr-xr--', user
+.B root
+and group
+.BR trace ,
+where members of the
+.B trace
+group are trusted users.
+If you do use this feature, please remember to install
+a non-setuid version of
+.B strace
+for ordinary lusers to use.
+.SH "SEE ALSO"
+.BR ptrace (2),
+.BR proc (4),
+.BR time (1),
+.BR trace (1),
+.BR truss (1)
+.SH NOTES
+It is a pity that so much tracing clutter is produced by systems
+employing shared libraries.
+.LP
+It is instructive to think about system call inputs and outputs
+as data-flow across the user/kernel boundary. Because user-space
+and kernel-space are separate and address-protected, it is
+sometimes possible to make deductive inferences about process
+behavior using inputs and outputs as propositions.
+.LP
+In some cases, a system call will differ from the documented behavior
+or have a different name. For example, on System V-derived systems
+the true
+.BR time (2)
+system call does not take an argument and the
+.B stat
+function is called
+.B xstat
+and takes an extra leading argument. These
+discrepancies are normal but idiosyncratic characteristics of the
+system call interface and are accounted for by C library wrapper
+functions.
+.LP
+On some platforms a process that has a system call trace applied
+to it with the
+.B \-p
+option will receive a
+.BR \s-1SIGSTOP\s0 .
+This signal may interrupt a system call that is not restartable.
+This may have an unpredictable effect on the process
+if the process takes no action to restart the system call.
+.SH BUGS
+Programs that use the
+.I setuid
+bit do not have
+effective user
+.SM ID
+privileges while being traced.
+.LP
+A traced process ignores
+.SM SIGSTOP
+except on SVR4 platforms.
+.LP
+A traced process which tries to block SIGTRAP will be sent a SIGSTOP
+in an attempt to force continuation of tracing.
+.LP
+A traced process runs slowly.
+.LP
+Traced processes which are descended from
+.I command
+may be left running after an interrupt signal (\c
+.SM CTRL\s0-C).
+.LP
+On Linux, exciting as it would be, tracing the init process is forbidden.
+.LP
+The
+.B \-i
+option is weakly supported.
+.SH HISTORY
+.B strace
+The original
+.B strace
+was written by Paul Kranenburg
+for SunOS and was inspired by its trace utility.
+The SunOS version of
+.B strace
+was ported to Linux and enhanced
+by Branko Lankester, who also wrote the Linux kernel support.
+Even though Paul released
+.B strace
+2.5 in 1992,
+Branko's work was based on Paul's
+.B strace
+1.5 release from 1991.
+In 1993, Rick Sladkey merged
+.B strace
+2.5 for SunOS and the second release of
+.B strace
+for Linux, added many of the features of
+.BR truss (1)
+from SVR4, and produced an
+.B strace
+that worked on both platforms. In 1994 Rick ported
+.B strace
+to SVR4 and Solaris and wrote the
+automatic configuration support. In 1995 he ported
+.B strace
+to Irix
+and tired of writing about himself in the third person.
+.SH PROBLEMS
+Problems with
+.B strace
+should be reported via the Debian Bug Tracking System,
+or to the
+.B strace
+mailing list at <strace-devel@lists.sourceforge.net>.
diff --git a/strace.c b/strace.c
new file mode 100644
index 0000000..a0d0d20
--- /dev/null
+++ b/strace.c
@@ -0,0 +1,2451 @@
+/*
+ * Copyright (c) 1991, 1992 Paul Kranenburg <pk@cs.few.eur.nl>
+ * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
+ * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
+ * Copyright (c) 1996-1999 Wichert Akkerman <wichert@cistron.nl>
+ * 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.
+ *
+ * $Id: strace.c,v 1.66 2005/06/07 23:21:31 roland Exp $
+ */
+
+#include "defs.h"
+
+#include <sys/types.h>
+#include <signal.h>
+#include <errno.h>
+#include <sys/param.h>
+#include <fcntl.h>
+#include <sys/resource.h>
+#include <sys/wait.h>
+#include <sys/stat.h>
+#include <pwd.h>
+#include <grp.h>
+#include <string.h>
+#include <limits.h>
+#include <dirent.h>
+
+#if defined(IA64) && defined(LINUX)
+# include <asm/ptrace_offsets.h>
+#endif
+
+#ifdef USE_PROCFS
+#include <poll.h>
+#endif
+
+#ifdef SVR4
+#include <sys/stropts.h>
+#ifdef HAVE_MP_PROCFS
+#ifdef HAVE_SYS_UIO_H
+#include <sys/uio.h>
+#endif
+#endif
+#endif
+
+#ifdef HAVE_ANDROID_OS
+#define wait4 __wait4
+#endif
+
+int debug = 0, followfork = 0, followvfork = 0, interactive = 0;
+int rflag = 0, tflag = 0, dtime = 0, cflag = 0;
+int iflag = 0, xflag = 0, qflag = 0;
+int pflag_seen = 0;
+
+/* Sometimes we want to print only succeeding syscalls. */
+int not_failing_only = 0;
+
+char *username = NULL;
+uid_t run_uid;
+gid_t run_gid;
+
+int acolumn = DEFAULT_ACOLUMN;
+int max_strlen = DEFAULT_STRLEN;
+char *outfname = NULL;
+FILE *outf;
+struct tcb **tcbtab;
+unsigned int nprocs, tcbtabsize;
+char *progname;
+extern char **environ;
+
+static int trace P((void));
+static void cleanup P((void));
+static void interrupt P((int sig));
+static sigset_t empty_set, blocked_set;
+
+#ifdef HAVE_SIG_ATOMIC_T
+static volatile sig_atomic_t interrupted;
+#else /* !HAVE_SIG_ATOMIC_T */
+#ifdef __STDC__
+static volatile int interrupted;
+#else /* !__STDC__ */
+static int interrupted;
+#endif /* !__STDC__ */
+#endif /* !HAVE_SIG_ATOMIC_T */
+
+#ifdef USE_PROCFS
+
+static struct tcb *pfd2tcb P((int pfd));
+static void reaper P((int sig));
+static void rebuild_pollv P((void));
+static struct pollfd *pollv;
+
+#ifndef HAVE_POLLABLE_PROCFS
+
+static void proc_poll_open P((void));
+static void proc_poller P((int pfd));
+
+struct proc_pollfd {
+ int fd;
+ int revents;
+ int pid;
+};
+
+static int poller_pid;
+static int proc_poll_pipe[2] = { -1, -1 };
+
+#endif /* !HAVE_POLLABLE_PROCFS */
+
+#ifdef HAVE_MP_PROCFS
+#define POLLWANT POLLWRNORM
+#else
+#define POLLWANT POLLPRI
+#endif
+#endif /* USE_PROCFS */
+
+static void
+usage(ofp, exitval)
+FILE *ofp;
+int exitval;
+{
+ fprintf(ofp, "\
+usage: strace [-dffhiqrtttTvVxx] [-a column] [-e expr] ... [-o file]\n\
+ [-p pid] ... [-s strsize] [-u username] [-E var=val] ...\n\
+ [command [arg ...]]\n\
+ or: strace -c [-e expr] ... [-O overhead] [-S sortby] [-E var=val] ...\n\
+ [command [arg ...]]\n\
+-c -- count time, calls, and errors for each syscall and report summary\n\
+-f -- follow forks, -ff -- with output into separate files\n\
+-F -- attempt to follow vforks, -h -- print help message\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\
+-T -- print time spent in each syscall, -V -- print version\n\
+-v -- verbose mode: print unabbreviated argv, stat, termio[s], etc. args\n\
+-x -- print non-ascii strings in hex, -xx -- print all strings in hex\n\
+-a column -- alignment COLUMN for printing syscall results (default %d)\n\
+-e expr -- a qualifying expression: option=[!]all or option=[!]val1[,val2]...\n\
+ options: trace, abbrev, verbose, raw, signal, read, or write\n\
+-o file -- send trace output to FILE instead of stderr\n\
+-O overhead -- set overhead for tracing syscalls to OVERHEAD usecs\n\
+-p pid -- trace process with process id PID, may be repeated\n\
+-s strsize -- limit length of print strings to STRSIZE chars (default %d)\n\
+-S sortby -- sort syscall counts by: time, calls, name, nothing (default %s)\n\
+-u username -- run command as username handling setuid and/or setgid\n\
+-E var=val -- put var=val in the environment for command\n\
+-E var -- remove var from the environment for command\n\
+" /* this is broken, so don't document it
+-z -- print only succeeding syscalls\n\
+ */
+, DEFAULT_ACOLUMN, DEFAULT_STRLEN, DEFAULT_SORTBY);
+ exit(exitval);
+}
+
+#ifdef SVR4
+#ifdef MIPS
+void
+foobar()
+{
+}
+#endif /* MIPS */
+#endif /* SVR4 */
+
+int
+main(argc, argv)
+int argc;
+char *argv[];
+{
+ extern int optind;
+ extern char *optarg;
+ struct tcb *tcp;
+ int c, pid = 0;
+ struct sigaction sa;
+
+ static char buf[BUFSIZ];
+
+ /* Allocate the initial tcbtab. */
+ tcbtabsize = argc; /* Surely enough for all -p args. */
+ tcbtab = (struct tcb **) malloc (tcbtabsize * sizeof tcbtab[0]);
+ tcbtab[0] = (struct tcb *) calloc (tcbtabsize, sizeof *tcbtab[0]);
+ for (tcp = tcbtab[0]; tcp < &tcbtab[0][tcbtabsize]; ++tcp)
+ tcbtab[tcp - tcbtab[0]] = &tcbtab[0][tcp - tcbtab[0]];
+
+ progname = argv[0];
+ outf = stderr;
+ interactive = 1;
+ qualify("trace=all");
+ qualify("abbrev=all");
+ qualify("verbose=all");
+ qualify("signal=all");
+ set_sortby(DEFAULT_SORTBY);
+ set_personality(DEFAULT_PERSONALITY);
+ while ((c = getopt(argc, argv,
+ "+cdfFhiqrtTvVxza:e:o:O:p:s:S:u:E:")) != EOF) {
+ switch (c) {
+ case 'c':
+ cflag++;
+ dtime++;
+ break;
+ case 'd':
+ debug++;
+ break;
+ case 'f':
+ followfork++;
+ break;
+ case 'F':
+ followvfork++;
+ break;
+ case 'h':
+ usage(stdout, 0);
+ break;
+ case 'i':
+ iflag++;
+ break;
+ case 'q':
+ qflag++;
+ break;
+ case 'r':
+ rflag++;
+ tflag++;
+ break;
+ case 't':
+ tflag++;
+ break;
+ case 'T':
+ dtime++;
+ break;
+ case 'x':
+ xflag++;
+ break;
+ case 'v':
+ qualify("abbrev=none");
+ break;
+ case 'V':
+ printf("%s -- version %s\n", PACKAGE_NAME, VERSION);
+ exit(0);
+ break;
+ case 'z':
+ not_failing_only = 1;
+ break;
+ case 'a':
+ acolumn = atoi(optarg);
+ break;
+ case 'e':
+ qualify(optarg);
+ break;
+ case 'o':
+ outfname = strdup(optarg);
+ break;
+ case 'O':
+ set_overhead(atoi(optarg));
+ break;
+ case 'p':
+ if ((pid = atoi(optarg)) <= 0) {
+ fprintf(stderr, "%s: Invalid process id: %s\n",
+ progname, optarg);
+ break;
+ }
+ if (pid == getpid()) {
+ fprintf(stderr, "%s: I'm sorry, I can't let you do that, Dave.\n", progname);
+ break;
+ }
+ if ((tcp = alloctcb(pid)) == NULL) {
+ fprintf(stderr, "%s: out of memory\n",
+ progname);
+ exit(1);
+ }
+ tcp->flags |= TCB_ATTACHED;
+ pflag_seen++;
+ break;
+ case 's':
+ max_strlen = atoi(optarg);
+ if (max_strlen < 0) {
+ fprintf(stderr,
+ "%s: invalid -s argument: %s\n",
+ progname, optarg);
+ exit(1);
+ }
+ break;
+ case 'S':
+ set_sortby(optarg);
+ break;
+ case 'u':
+ username = strdup(optarg);
+ break;
+ case 'E':
+ if (putenv(optarg) < 0) {
+ fprintf(stderr, "%s: out of memory\n",
+ progname);
+ exit(1);
+ }
+ break;
+ default:
+ usage(stderr, 1);
+ break;
+ }
+ }
+
+ if (optind == argc && !pflag_seen)
+ usage(stderr, 1);
+
+ /* See if they want to run as another user. */
+ if (username != NULL) {
+ struct passwd *pent;
+
+ if (getuid() != 0 || geteuid() != 0) {
+ fprintf(stderr,
+ "%s: you must be root to use the -u option\n",
+ progname);
+ exit(1);
+ }
+ if ((pent = getpwnam(username)) == NULL) {
+ fprintf(stderr, "%s: cannot find user `%s'\n",
+ progname, optarg);
+ exit(1);
+ }
+ run_uid = pent->pw_uid;
+ run_gid = pent->pw_gid;
+ }
+ else {
+ run_uid = getuid();
+ run_gid = getgid();
+ }
+
+#ifndef SVR4
+ setreuid(geteuid(), getuid());
+#endif
+
+ /* Check if they want to redirect the output. */
+ if (outfname) {
+ long f;
+
+ /* See if they want to pipe the output. */
+ if (outfname[0] == '|' || outfname[0] == '!') {
+ /*
+ * We can't do the <outfname>.PID funny business
+ * when using popen, so prohibit it.
+ */
+ if (followfork > 1) {
+ fprintf(stderr, "\
+%s: piping the output and -ff are mutually exclusive options\n",
+ progname);
+ exit(1);
+ }
+
+#ifdef HAVE_ANDROID_OS
+ fprintf(stderr,"output to a pipe not supported on android.\n");
+ exit(-1);
+#else
+ if ((outf = popen(outfname + 1, "w")) == NULL) {
+ fprintf(stderr, "%s: can't popen '%s': %s\n",
+ progname, outfname + 1,
+ strerror(errno));
+ exit(1);
+ }
+#endif
+ }
+ else if ((outf = fopen(outfname, "w")) == NULL) {
+ fprintf(stderr, "%s: can't fopen '%s': %s\n",
+ progname, outfname, strerror(errno));
+ exit(1);
+ }
+
+ if ((f=fcntl(fileno(outf), F_GETFD)) < 0 ) {
+ perror("failed to get flags for outputfile");
+ exit(1);
+ }
+
+ if (fcntl(fileno(outf), F_SETFD, f|FD_CLOEXEC) < 0 ) {
+ perror("failed to set flags for outputfile");
+ exit(1);
+ }
+ }
+
+#ifndef SVR4
+ setreuid(geteuid(), getuid());
+#endif
+
+ if (!outfname || outfname[0] == '|' || outfname[0] == '!')
+ setvbuf(outf, buf, _IOLBF, BUFSIZ);
+ if (outfname && optind < argc) {
+ interactive = 0;
+ qflag = 1;
+ }
+
+ for (c = 0; c < tcbtabsize; c++) {
+ tcp = tcbtab[c];
+ /* Reinitialize the output since it may have changed. */
+ tcp->outf = outf;
+ if (!(tcp->flags & TCB_INUSE) || !(tcp->flags & TCB_ATTACHED))
+ continue;
+#ifdef USE_PROCFS
+ if (proc_open(tcp, 1) < 0) {
+ fprintf(stderr, "trouble opening proc file\n");
+ droptcb(tcp);
+ continue;
+ }
+#else /* !USE_PROCFS */
+# ifdef LINUX
+ if (tcp->flags & TCB_CLONE_THREAD)
+ continue;
+ if (followfork) {
+ char procdir[MAXPATHLEN];
+ DIR *dir;
+ sprintf(procdir, "/proc/%d/task", tcp->pid);
+ dir = opendir(procdir);
+ if (dir != NULL) {
+ unsigned int ntid = 0, nerr = 0;
+ struct dirent *de;
+ int tid;
+ while ((de = readdir(dir)) != NULL) {
+ if (de->d_fileno == 0 ||
+ de->d_name[0] == '.')
+ continue;
+ tid = atoi(de->d_name);
+ if (tid <= 0)
+ continue;
+ ++ntid;
+ if (ptrace(PTRACE_ATTACH, tid,
+ (char *) 1, 0) < 0)
+ ++nerr;
+ else if (tid != tcbtab[c]->pid) {
+ if (nprocs == tcbtabsize &&
+ expand_tcbtab())
+ tcp = NULL;
+ else
+ tcp = alloctcb(tid);
+ if (tcp == NULL) {
+ fprintf(stderr, "%s: out of memory\n",
+ progname);
+ exit(1);
+ }
+ tcp->flags |= TCB_ATTACHED|TCB_CLONE_THREAD|TCB_CLONE_DETACHED|TCB_FOLLOWFORK;
+ tcbtab[c]->nchildren++;
+ tcbtab[c]->nclone_threads++;
+ tcbtab[c]->nclone_detached++;
+ tcp->parent = tcbtab[c];
+ }
+ }
+ closedir(dir);
+ if (nerr == ntid) {
+ perror("attach: ptrace(PTRACE_ATTACH, ...)");
+ droptcb(tcp);
+ continue;
+ }
+ if (!qflag) {
+ ntid -= nerr;
+ if (ntid > 1)
+ fprintf(stderr, "\
+Process %u attached with %u threads - interrupt to quit\n",
+ tcp->pid, ntid);
+ else
+ fprintf(stderr, "\
+Process %u attached - interrupt to quit\n",
+ tcp->pid);
+ }
+ continue;
+ }
+ }
+# endif
+ if (ptrace(PTRACE_ATTACH, tcp->pid, (char *) 1, 0) < 0) {
+ perror("attach: ptrace(PTRACE_ATTACH, ...)");
+ droptcb(tcp);
+ continue;
+ }
+#endif /* !USE_PROCFS */
+ if (!qflag)
+ fprintf(stderr,
+ "Process %u attached - interrupt to quit\n",
+ tcp->pid);
+ }
+
+ if (!pflag_seen) {
+ struct stat statbuf;
+ char *filename;
+ char pathname[MAXPATHLEN];
+
+ filename = argv[optind];
+ if (strchr(filename, '/')) {
+ if (strlen(filename) > sizeof pathname - 1) {
+ errno = ENAMETOOLONG;
+ perror("strace: exec");
+ exit(1);
+ }
+ strcpy(pathname, filename);
+ }
+#ifdef USE_DEBUGGING_EXEC
+ /*
+ * Debuggers customarily check the current directory
+ * first regardless of the path but doing that gives
+ * security geeks a panic attack.
+ */
+ else if (stat(filename, &statbuf) == 0)
+ strcpy(pathname, filename);
+#endif /* USE_DEBUGGING_EXEC */
+ else {
+ char *path;
+ int m, n, len;
+
+ for (path = getenv("PATH"); path && *path; path += m) {
+ if (strchr(path, ':')) {
+ n = strchr(path, ':') - path;
+ m = n + 1;
+ }
+ else
+ m = n = strlen(path);
+ if (n == 0) {
+ getcwd(pathname, MAXPATHLEN);
+ len = strlen(pathname);
+ }
+ else if (n > sizeof pathname - 1)
+ continue;
+ else {
+ strncpy(pathname, path, n);
+ len = n;
+ }
+ if (len && pathname[len - 1] != '/')
+ pathname[len++] = '/';
+ strcpy(pathname + len, filename);
+ if (stat(pathname, &statbuf) == 0 &&
+ /* Accept only regular files
+ with some execute bits set.
+ XXX not perfect, might still fail */
+ S_ISREG(statbuf.st_mode) &&
+ (statbuf.st_mode & 0111))
+ break;
+ }
+ }
+ if (stat(pathname, &statbuf) < 0) {
+ fprintf(stderr, "%s: %s: command not found\n",
+ progname, filename);
+ exit(1);
+ }
+ switch (pid = fork()) {
+ case -1:
+ perror("strace: fork");
+ cleanup();
+ exit(1);
+ break;
+ case 0: {
+#ifdef USE_PROCFS
+ if (outf != stderr) close (fileno (outf));
+#ifdef MIPS
+ /* Kludge for SGI, see proc_open for details. */
+ sa.sa_handler = foobar;
+ sa.sa_flags = 0;
+ sigemptyset(&sa.sa_mask);
+ sigaction(SIGINT, &sa, NULL);
+#endif /* MIPS */
+#ifndef FREEBSD
+ pause();
+#else /* FREEBSD */
+ kill(getpid(), SIGSTOP); /* stop HERE */
+#endif /* FREEBSD */
+#else /* !USE_PROCFS */
+ if (outf!=stderr)
+ close(fileno (outf));
+
+ if (ptrace(PTRACE_TRACEME, 0, (char *) 1, 0) < 0) {
+ perror("strace: ptrace(PTRACE_TRACEME, ...)");
+ return -1;
+ }
+ if (debug)
+ kill(getpid(), SIGSTOP);
+
+ if (username != NULL || geteuid() == 0) {
+ 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 (username != NULL) {
+#ifndef HAVE_ANDROID_OS
+ if (initgroups(username, run_gid) < 0) {
+ perror("initgroups");
+ exit(1);
+ }
+#endif /* HAVE_ANDROID_OS */
+ if (setregid(run_gid, run_egid) < 0) {
+ perror("setregid");
+ exit(1);
+ }
+ if (setreuid(run_uid, run_euid) < 0) {
+ perror("setreuid");
+ exit(1);
+ }
+ }
+ }
+ else
+ setreuid(run_uid, run_uid);
+
+ /*
+ * Induce an immediate stop so that the parent
+ * will resume us with PTRACE_SYSCALL and display
+ * this execve call normally.
+ */
+ kill(getpid(), SIGSTOP);
+#endif /* !USE_PROCFS */
+
+ execv(pathname, &argv[optind]);
+ perror("strace: exec");
+ _exit(1);
+ break;
+ }
+ default:
+ if ((tcp = alloctcb(pid)) == NULL) {
+ fprintf(stderr, "tcb table full\n");
+ cleanup();
+ exit(1);
+ }
+#ifdef USE_PROCFS
+ if (proc_open(tcp, 0) < 0) {
+ fprintf(stderr, "trouble opening proc file\n");
+ cleanup();
+ exit(1);
+ }
+#endif /* USE_PROCFS */
+ break;
+ }
+ }
+
+ sigemptyset(&empty_set);
+ sigemptyset(&blocked_set);
+ sa.sa_handler = SIG_IGN;
+ sigemptyset(&sa.sa_mask);
+ sa.sa_flags = 0;
+ sigaction(SIGTTOU, &sa, NULL);
+ sigaction(SIGTTIN, &sa, NULL);
+ if (interactive) {
+ sigaddset(&blocked_set, SIGHUP);
+ sigaddset(&blocked_set, SIGINT);
+ sigaddset(&blocked_set, SIGQUIT);
+ sigaddset(&blocked_set, SIGPIPE);
+ sigaddset(&blocked_set, SIGTERM);
+ sa.sa_handler = interrupt;
+#ifdef SUNOS4
+ /* POSIX signals on sunos4.1 are a little broken. */
+ sa.sa_flags = SA_INTERRUPT;
+#endif /* SUNOS4 */
+ }
+ sigaction(SIGHUP, &sa, NULL);
+ sigaction(SIGINT, &sa, NULL);
+ sigaction(SIGQUIT, &sa, NULL);
+ sigaction(SIGPIPE, &sa, NULL);
+ sigaction(SIGTERM, &sa, NULL);
+#ifdef USE_PROCFS
+ sa.sa_handler = reaper;
+ sigaction(SIGCHLD, &sa, NULL);
+#else
+ /* Make sure SIGCHLD has the default action so that waitpid
+ definitely works without losing track of children. The user
+ should not have given us a bogus state to inherit, but he might
+ have. Arguably we should detect SIG_IGN here and pass it on
+ to children, but probably noone really needs that. */
+ sa.sa_handler = SIG_DFL;
+ sigaction(SIGCHLD, &sa, NULL);
+#endif /* USE_PROCFS */
+
+ if (trace() < 0)
+ exit(1);
+ cleanup();
+ exit(0);
+}
+
+void
+newoutf(tcp)
+struct tcb *tcp;
+{
+ char name[MAXPATHLEN];
+ FILE *fp;
+
+ if (outfname && followfork > 1) {
+ sprintf(name, "%s.%u", outfname, tcp->pid);
+#ifndef SVR4
+ setreuid(geteuid(), getuid());
+#endif
+ fp = fopen(name, "w");
+#ifndef SVR4
+ setreuid(geteuid(), getuid());
+#endif
+ if (fp == NULL) {
+ perror("fopen");
+ return;
+ }
+ tcp->outf = fp;
+ }
+ return;
+}
+
+int
+expand_tcbtab()
+{
+ /* Allocate some more TCBs and expand the table.
+ We don't want to relocate the TCBs because our
+ callers have pointers and it would be a pain.
+ So tcbtab is a table of pointers. Since we never
+ free the TCBs, we allocate a single chunk of many. */
+ struct tcb **newtab = (struct tcb **)
+ realloc(tcbtab, 2 * tcbtabsize * sizeof tcbtab[0]);
+ struct tcb *newtcbs = (struct tcb *) calloc(tcbtabsize,
+ sizeof *newtcbs);
+ int i;
+ if (newtab == NULL || newtcbs == NULL) {
+ if (newtab != NULL)
+ free(newtab);
+ return 1;
+ }
+ for (i = tcbtabsize; i < 2 * tcbtabsize; ++i)
+ newtab[i] = &newtcbs[i - tcbtabsize];
+ tcbtabsize *= 2;
+ tcbtab = newtab;
+
+ return 0;
+}
+
+
+struct tcb *
+alloctcb(pid)
+int pid;
+{
+ int i;
+ struct tcb *tcp;
+
+ for (i = 0; i < tcbtabsize; i++) {
+ tcp = tcbtab[i];
+ if ((tcp->flags & TCB_INUSE) == 0) {
+ tcp->pid = pid;
+ tcp->parent = NULL;
+ tcp->nchildren = 0;
+ tcp->nzombies = 0;
+#ifdef TCB_CLONE_THREAD
+ tcp->nclone_threads = tcp->nclone_detached = 0;
+ tcp->nclone_waiting = 0;
+#endif
+ tcp->flags = TCB_INUSE | TCB_STARTUP;
+ tcp->outf = outf; /* Initialise to current out file */
+ tcp->stime.tv_sec = 0;
+ tcp->stime.tv_usec = 0;
+ tcp->pfd = -1;
+ nprocs++;
+ return tcp;
+ }
+ }
+ return NULL;
+}
+
+#ifdef USE_PROCFS
+int
+proc_open(tcp, attaching)
+struct tcb *tcp;
+int attaching;
+{
+ char proc[32];
+ long arg;
+#ifdef SVR4
+ int i;
+ sysset_t syscalls;
+ sigset_t signals;
+ fltset_t faults;
+#endif
+#ifndef HAVE_POLLABLE_PROCFS
+ static int last_pfd;
+#endif
+
+#ifdef HAVE_MP_PROCFS
+ /* Open the process pseudo-files in /proc. */
+ sprintf(proc, "/proc/%d/ctl", tcp->pid);
+ if ((tcp->pfd = open(proc, O_WRONLY|O_EXCL)) < 0) {
+ perror("strace: open(\"/proc/...\", ...)");
+ return -1;
+ }
+ if ((arg = fcntl(tcp->pfd, F_GETFD)) < 0) {
+ perror("F_GETFD");
+ return -1;
+ }
+ if (fcntl(tcp->pfd, F_SETFD, arg|FD_CLOEXEC) < 0) {
+ perror("F_SETFD");
+ return -1;
+ }
+ sprintf(proc, "/proc/%d/status", tcp->pid);
+ if ((tcp->pfd_stat = open(proc, O_RDONLY|O_EXCL)) < 0) {
+ perror("strace: open(\"/proc/...\", ...)");
+ return -1;
+ }
+ if ((arg = fcntl(tcp->pfd_stat, F_GETFD)) < 0) {
+ perror("F_GETFD");
+ return -1;
+ }
+ if (fcntl(tcp->pfd_stat, F_SETFD, arg|FD_CLOEXEC) < 0) {
+ perror("F_SETFD");
+ return -1;
+ }
+ sprintf(proc, "/proc/%d/as", tcp->pid);
+ if ((tcp->pfd_as = open(proc, O_RDONLY|O_EXCL)) < 0) {
+ perror("strace: open(\"/proc/...\", ...)");
+ return -1;
+ }
+ if ((arg = fcntl(tcp->pfd_as, F_GETFD)) < 0) {
+ perror("F_GETFD");
+ return -1;
+ }
+ if (fcntl(tcp->pfd_as, F_SETFD, arg|FD_CLOEXEC) < 0) {
+ perror("F_SETFD");
+ return -1;
+ }
+#else
+ /* Open the process pseudo-file in /proc. */
+#ifndef FREEBSD
+ sprintf(proc, "/proc/%d", tcp->pid);
+ if ((tcp->pfd = open(proc, O_RDWR|O_EXCL)) < 0) {
+#else /* FREEBSD */
+ sprintf(proc, "/proc/%d/mem", tcp->pid);
+ if ((tcp->pfd = open(proc, O_RDWR)) < 0) {
+#endif /* FREEBSD */
+ perror("strace: open(\"/proc/...\", ...)");
+ return -1;
+ }
+ if ((arg = fcntl(tcp->pfd, F_GETFD)) < 0) {
+ perror("F_GETFD");
+ return -1;
+ }
+ if (fcntl(tcp->pfd, F_SETFD, arg|FD_CLOEXEC) < 0) {
+ perror("F_SETFD");
+ return -1;
+ }
+#endif
+#ifdef FREEBSD
+ sprintf(proc, "/proc/%d/regs", tcp->pid);
+ if ((tcp->pfd_reg = open(proc, O_RDONLY)) < 0) {
+ perror("strace: open(\"/proc/.../regs\", ...)");
+ return -1;
+ }
+ if (cflag) {
+ sprintf(proc, "/proc/%d/status", tcp->pid);
+ if ((tcp->pfd_status = open(proc, O_RDONLY)) < 0) {
+ perror("strace: open(\"/proc/.../status\", ...)");
+ return -1;
+ }
+ } else
+ tcp->pfd_status = -1;
+#endif /* FREEBSD */
+ rebuild_pollv();
+ if (!attaching) {
+ /*
+ * Wait for the child to pause. Because of a race
+ * condition we have to poll for the event.
+ */
+ for (;;) {
+ if (IOCTL_STATUS (tcp) < 0) {
+ perror("strace: PIOCSTATUS");
+ return -1;
+ }
+ if (tcp->status.PR_FLAGS & PR_ASLEEP)
+ break;
+ }
+ }
+#ifndef FREEBSD
+ /* Stop the process so that we own the stop. */
+ if (IOCTL(tcp->pfd, PIOCSTOP, (char *)NULL) < 0) {
+ perror("strace: PIOCSTOP");
+ return -1;
+ }
+#endif
+#ifdef PIOCSET
+ /* Set Run-on-Last-Close. */
+ arg = PR_RLC;
+ if (IOCTL(tcp->pfd, PIOCSET, &arg) < 0) {
+ perror("PIOCSET PR_RLC");
+ return -1;
+ }
+ /* Set or Reset Inherit-on-Fork. */
+ arg = PR_FORK;
+ if (IOCTL(tcp->pfd, followfork ? PIOCSET : PIOCRESET, &arg) < 0) {
+ perror("PIOC{SET,RESET} PR_FORK");
+ return -1;
+ }
+#else /* !PIOCSET */
+#ifndef FREEBSD
+ if (ioctl(tcp->pfd, PIOCSRLC) < 0) {
+ perror("PIOCSRLC");
+ return -1;
+ }
+ if (ioctl(tcp->pfd, followfork ? PIOCSFORK : PIOCRFORK) < 0) {
+ perror("PIOC{S,R}FORK");
+ return -1;
+ }
+#else /* FREEBSD */
+ /* just unset the PF_LINGER flag for the Run-on-Last-Close. */
+ if (ioctl(tcp->pfd, PIOCGFL, &arg) < 0) {
+ perror("PIOCGFL");
+ return -1;
+ }
+ arg &= ~PF_LINGER;
+ if (ioctl(tcp->pfd, PIOCSFL, arg) < 0) {
+ perror("PIOCSFL");
+ return -1;
+ }
+#endif /* FREEBSD */
+#endif /* !PIOCSET */
+#ifndef FREEBSD
+ /* Enable all syscall entries we care about. */
+ premptyset(&syscalls);
+ for (i = 1; i < MAX_QUALS; ++i) {
+ if (i > (sizeof syscalls) * CHAR_BIT) break;
+ if (qual_flags [i] & QUAL_TRACE) praddset (&syscalls, i);
+ }
+ praddset (&syscalls, SYS_execve);
+ if (followfork) {
+ praddset (&syscalls, SYS_fork);
+#ifdef SYS_forkall
+ praddset (&syscalls, SYS_forkall);
+#endif
+#ifdef SYS_fork1
+ praddset (&syscalls, SYS_fork1);
+#endif
+#ifdef SYS_rfork1
+ praddset (&syscalls, SYS_rfork1);
+#endif
+#ifdef SYS_rforkall
+ praddset (&syscalls, SYS_rforkall);
+#endif
+ }
+ if (IOCTL(tcp->pfd, PIOCSENTRY, &syscalls) < 0) {
+ perror("PIOCSENTRY");
+ return -1;
+ }
+ /* Enable the syscall exits. */
+ if (IOCTL(tcp->pfd, PIOCSEXIT, &syscalls) < 0) {
+ perror("PIOSEXIT");
+ return -1;
+ }
+ /* Enable signals we care about. */
+ premptyset(&signals);
+ for (i = 1; i < MAX_QUALS; ++i) {
+ if (i > (sizeof signals) * CHAR_BIT) break;
+ if (qual_flags [i] & QUAL_SIGNAL) praddset (&signals, i);
+ }
+ if (IOCTL(tcp->pfd, PIOCSTRACE, &signals) < 0) {
+ perror("PIOCSTRACE");
+ return -1;
+ }
+ /* Enable faults we care about */
+ premptyset(&faults);
+ for (i = 1; i < MAX_QUALS; ++i) {
+ if (i > (sizeof faults) * CHAR_BIT) break;
+ if (qual_flags [i] & QUAL_FAULT) praddset (&faults, i);
+ }
+ if (IOCTL(tcp->pfd, PIOCSFAULT, &faults) < 0) {
+ perror("PIOCSFAULT");
+ return -1;
+ }
+#else /* FREEBSD */
+ /* set events flags. */
+ arg = S_SIG | S_SCE | S_SCX ;
+ if(ioctl(tcp->pfd, PIOCBIS, arg) < 0) {
+ perror("PIOCBIS");
+ return -1;
+ }
+#endif /* FREEBSD */
+ if (!attaching) {
+#ifdef MIPS
+ /*
+ * The SGI PRSABORT doesn't work for pause() so
+ * we send it a caught signal to wake it up.
+ */
+ kill(tcp->pid, SIGINT);
+#else /* !MIPS */
+#ifdef PRSABORT
+ /* The child is in a pause(), abort it. */
+ arg = PRSABORT;
+ if (IOCTL (tcp->pfd, PIOCRUN, &arg) < 0) {
+ perror("PIOCRUN");
+ return -1;
+ }
+#endif
+#endif /* !MIPS*/
+#ifdef FREEBSD
+ /* wake up the child if it received the SIGSTOP */
+ kill(tcp->pid, SIGCONT);
+#endif
+ for (;;) {
+ /* Wait for the child to do something. */
+ if (IOCTL_WSTOP (tcp) < 0) {
+ perror("PIOCWSTOP");
+ return -1;
+ }
+ if (tcp->status.PR_WHY == PR_SYSENTRY) {
+ tcp->flags &= ~TCB_INSYSCALL;
+ get_scno(tcp);
+ if (known_scno(tcp) == SYS_execve)
+ break;
+ }
+ /* Set it running: maybe execve will be next. */
+#ifndef FREEBSD
+ arg = 0;
+ if (IOCTL(tcp->pfd, PIOCRUN, &arg) < 0) {
+#else /* FREEBSD */
+ if (IOCTL(tcp->pfd, PIOCRUN, 0) < 0) {
+#endif /* FREEBSD */
+ perror("PIOCRUN");
+ return -1;
+ }
+#ifdef FREEBSD
+ /* handle the case where we "opened" the child before
+ it did the kill -STOP */
+ if (tcp->status.PR_WHY == PR_SIGNALLED &&
+ tcp->status.PR_WHAT == SIGSTOP)
+ kill(tcp->pid, SIGCONT);
+#endif
+ }
+#ifndef FREEBSD
+ }
+#else /* FREEBSD */
+ } else {
+ if (attaching < 2) {
+ /* We are attaching to an already running process.
+ * Try to figure out the state of the process in syscalls,
+ * to handle the first event well.
+ * This is done by having a look at the "wchan" property of the
+ * process, which tells where it is stopped (if it is). */
+ FILE * status;
+ char wchan[20]; /* should be enough */
+
+ sprintf(proc, "/proc/%d/status", tcp->pid);
+ status = fopen(proc, "r");
+ if (status &&
+ (fscanf(status, "%*s %*d %*d %*d %*d %*d,%*d %*s %*d,%*d"
+ "%*d,%*d %*d,%*d %19s", wchan) == 1) &&
+ strcmp(wchan, "nochan") && strcmp(wchan, "spread") &&
+ strcmp(wchan, "stopevent")) {
+ /* The process is asleep in the middle of a syscall.
+ Fake the syscall entry event */
+ tcp->flags &= ~(TCB_INSYSCALL|TCB_STARTUP);
+ tcp->status.PR_WHY = PR_SYSENTRY;
+ trace_syscall(tcp);
+ }
+ if (status)
+ fclose(status);
+ } /* otherwise it's a fork being followed */
+ }
+#endif /* FREEBSD */
+#ifndef HAVE_POLLABLE_PROCFS
+ if (proc_poll_pipe[0] != -1)
+ proc_poller(tcp->pfd);
+ else if (nprocs > 1) {
+ proc_poll_open();
+ proc_poller(last_pfd);
+ proc_poller(tcp->pfd);
+ }
+ last_pfd = tcp->pfd;
+#endif /* !HAVE_POLLABLE_PROCFS */
+ return 0;
+}
+
+#endif /* USE_PROCFS */
+
+struct tcb *
+pid2tcb(pid)
+int pid;
+{
+ int i;
+ struct tcb *tcp;
+
+ for (i = 0; i < tcbtabsize; i++) {
+ tcp = tcbtab[i];
+ if (pid && tcp->pid != pid)
+ continue;
+ if (tcp->flags & TCB_INUSE)
+ return tcp;
+ }
+ return NULL;
+}
+
+#ifdef USE_PROCFS
+
+static struct tcb *
+pfd2tcb(pfd)
+int pfd;
+{
+ int i;
+
+ for (i = 0; i < tcbtabsize; i++) {
+ struct tcb *tcp = tcbtab[i];
+ if (tcp->pfd != pfd)
+ continue;
+ if (tcp->flags & TCB_INUSE)
+ return tcp;
+ }
+ return NULL;
+}
+
+#endif /* USE_PROCFS */
+
+void
+droptcb(tcp)
+struct tcb *tcp;
+{
+ if (tcp->pid == 0)
+ return;
+#ifdef TCB_CLONE_THREAD
+ if (tcp->nclone_threads > 0) {
+ /* There are other threads left in this process, but this
+ is the one whose PID represents the whole process.
+ We need to keep this record around as a zombie until
+ all the threads die. */
+ tcp->flags |= TCB_EXITING;
+ return;
+ }
+#endif
+ nprocs--;
+ tcp->pid = 0;
+
+ if (tcp->parent != NULL) {
+ tcp->parent->nchildren--;
+#ifdef TCB_CLONE_THREAD
+ if (tcp->flags & TCB_CLONE_DETACHED)
+ tcp->parent->nclone_detached--;
+ if (tcp->flags & TCB_CLONE_THREAD)
+ tcp->parent->nclone_threads--;
+#endif
+#ifdef TCB_CLONE_DETACHED
+ if (!(tcp->flags & TCB_CLONE_DETACHED))
+#endif
+ tcp->parent->nzombies++;
+ tcp->parent = NULL;
+ }
+
+ tcp->flags = 0;
+ if (tcp->pfd != -1) {
+ close(tcp->pfd);
+ tcp->pfd = -1;
+#ifdef FREEBSD
+ if (tcp->pfd_reg != -1) {
+ close(tcp->pfd_reg);
+ tcp->pfd_reg = -1;
+ }
+ if (tcp->pfd_status != -1) {
+ close(tcp->pfd_status);
+ tcp->pfd_status = -1;
+ }
+#endif /* !FREEBSD */
+#ifdef USE_PROCFS
+ rebuild_pollv(); /* Note, flags needs to be cleared by now. */
+#endif
+ }
+
+ if (outfname && followfork > 1 && tcp->outf)
+ fclose(tcp->outf);
+
+ tcp->outf = 0;
+}
+
+#ifndef USE_PROCFS
+
+static int
+resume(tcp)
+struct tcb *tcp;
+{
+ if (tcp == NULL)
+ return -1;
+
+ if (!(tcp->flags & TCB_SUSPENDED)) {
+ fprintf(stderr, "PANIC: pid %u not suspended\n", tcp->pid);
+ return -1;
+ }
+ tcp->flags &= ~TCB_SUSPENDED;
+#ifdef TCB_CLONE_THREAD
+ if (tcp->flags & TCB_CLONE_THREAD)
+ tcp->parent->nclone_waiting--;
+#endif
+
+ if (ptrace(PTRACE_SYSCALL, tcp->pid, (char *) 1, 0) < 0) {
+ perror("resume: ptrace(PTRACE_SYSCALL, ...)");
+ return -1;
+ }
+
+ if (!qflag)
+ fprintf(stderr, "Process %u resumed\n", tcp->pid);
+ return 0;
+}
+
+#endif /* !USE_PROCFS */
+
+/* detach traced process; continue with sig */
+
+static int
+detach(tcp, sig)
+struct tcb *tcp;
+int sig;
+{
+ int error = 0;
+#ifdef LINUX
+ int status, resumed;
+#endif
+
+ if (tcp->flags & TCB_BPTSET)
+ sig = SIGKILL;
+
+#ifdef LINUX
+ /*
+ * Linux wrongly insists the child be stopped
+ * before detaching. Arghh. We go through hoops
+ * to make a clean break of things.
+ */
+#if defined(SPARC)
+#undef PTRACE_DETACH
+#define PTRACE_DETACH PTRACE_SUNDETACH
+#endif
+ if ((error = ptrace(PTRACE_DETACH, tcp->pid, (char *) 1, sig)) == 0) {
+ /* On a clear day, you can see forever. */
+ }
+ else if (errno != ESRCH) {
+ /* Shouldn't happen. */
+ perror("detach: ptrace(PTRACE_DETACH, ...)");
+ }
+ else if (kill(tcp->pid, 0) < 0) {
+ if (errno != ESRCH)
+ perror("detach: checking sanity");
+ }
+ else if (kill(tcp->pid, SIGSTOP) < 0) {
+ if (errno != ESRCH)
+ perror("detach: stopping child");
+ }
+ else {
+ for (;;) {
+#ifdef __WALL
+ if (wait4(tcp->pid, &status, __WALL, NULL) < 0) {
+ if (errno == ECHILD) /* Already gone. */
+ break;
+ if (errno != EINVAL) {
+ perror("detach: waiting");
+ break;
+ }
+#endif /* __WALL */
+ /* No __WALL here. */
+ if (waitpid(tcp->pid, &status, 0) < 0) {
+ if (errno != ECHILD) {
+ perror("detach: waiting");
+ break;
+ }
+#ifdef __WCLONE
+ /* If no processes, try clones. */
+ if (wait4(tcp->pid, &status, __WCLONE,
+ NULL) < 0) {
+ if (errno != ECHILD)
+ perror("detach: waiting");
+ break;
+ }
+#endif /* __WCLONE */
+ }
+#ifdef __WALL
+ }
+#endif
+ if (!WIFSTOPPED(status)) {
+ /* Au revoir, mon ami. */
+ break;
+ }
+ if (WSTOPSIG(status) == SIGSTOP) {
+ if ((error = ptrace(PTRACE_DETACH,
+ tcp->pid, (char *) 1, sig)) < 0) {
+ if (errno != ESRCH)
+ perror("detach: ptrace(PTRACE_DETACH, ...)");
+ /* I died trying. */
+ }
+ break;
+ }
+ if ((error = ptrace(PTRACE_CONT, tcp->pid, (char *) 1,
+ WSTOPSIG(status) == SIGTRAP ?
+ 0 : WSTOPSIG(status))) < 0) {
+ if (errno != ESRCH)
+ perror("detach: ptrace(PTRACE_CONT, ...)");
+ break;
+ }
+ }
+ }
+#endif /* LINUX */
+
+#if defined(SUNOS4)
+ /* PTRACE_DETACH won't respect `sig' argument, so we post it here. */
+ if (sig && kill(tcp->pid, sig) < 0)
+ perror("detach: kill");
+ sig = 0;
+ if ((error = ptrace(PTRACE_DETACH, tcp->pid, (char *) 1, sig)) < 0)
+ perror("detach: ptrace(PTRACE_DETACH, ...)");
+#endif /* SUNOS4 */
+
+#ifndef USE_PROCFS
+ resumed = 0;
+
+ /* XXX This won't always be quite right (but it never was).
+ A waiter with argument 0 or < -1 is waiting for any pid in
+ a particular pgrp, which this child might or might not be
+ in. The waiter will only wake up if it's argument is -1
+ or if it's waiting for tcp->pid's pgrp. It makes a
+ difference to wake up a waiter when there might be more
+ traced children, because it could get a false ECHILD
+ error. OTOH, if this was the last child in the pgrp, then
+ it ought to wake up and get ECHILD. We would have to
+ search the system for all pid's in the pgrp to be sure.
+
+ && (t->waitpid == -1 ||
+ (t->waitpid == 0 && getpgid (tcp->pid) == getpgid (t->pid))
+ || (t->waitpid < 0 && t->waitpid == -getpid (t->pid)))
+ */
+
+ if (tcp->parent &&
+ (tcp->parent->flags & TCB_SUSPENDED) &&
+ (tcp->parent->waitpid <= 0 || tcp->parent->waitpid == tcp->pid)) {
+ error = resume(tcp->parent);
+ ++resumed;
+ }
+#ifdef TCB_CLONE_THREAD
+ if (tcp->parent && tcp->parent->nclone_waiting > 0) {
+ /* Some other threads of our parent are waiting too. */
+ unsigned int i;
+
+ /* Resume all the threads that were waiting for this PID. */
+ for (i = 0; i < tcbtabsize; i++) {
+ struct tcb *t = tcbtab[i];
+ if (t->parent == tcp->parent && t != tcp
+ && ((t->flags & (TCB_CLONE_THREAD|TCB_SUSPENDED))
+ == (TCB_CLONE_THREAD|TCB_SUSPENDED))
+ && t->waitpid == tcp->pid) {
+ error |= resume (t);
+ ++resumed;
+ }
+ }
+ if (resumed == 0)
+ /* Noone was waiting for this PID in particular,
+ so now we might need to resume some wildcarders. */
+ for (i = 0; i < tcbtabsize; i++) {
+ struct tcb *t = tcbtab[i];
+ if (t->parent == tcp->parent && t != tcp
+ && ((t->flags
+ & (TCB_CLONE_THREAD|TCB_SUSPENDED))
+ == (TCB_CLONE_THREAD|TCB_SUSPENDED))
+ && t->waitpid <= 0
+ ) {
+ error |= resume (t);
+ break;
+ }
+ }
+ }
+#endif
+
+#endif /* !USE_PROCFS */
+
+ if (!qflag)
+ fprintf(stderr, "Process %u detached\n", tcp->pid);
+
+ droptcb(tcp);
+ return error;
+}
+
+#ifdef USE_PROCFS
+
+static void
+reaper(sig)
+int sig;
+{
+ int pid;
+ int status;
+
+ while ((pid = waitpid(-1, &status, WNOHANG)) > 0) {
+#if 0
+ struct tcb *tcp;
+
+ tcp = pid2tcb(pid);
+ if (tcp)
+ droptcb(tcp);
+#endif
+ }
+}
+
+#endif /* USE_PROCFS */
+
+static void
+cleanup()
+{
+ int i;
+ struct tcb *tcp;
+
+ for (i = 0; i < tcbtabsize; i++) {
+ tcp = tcbtab[i];
+ if (!(tcp->flags & TCB_INUSE))
+ continue;
+ if (debug)
+ fprintf(stderr,
+ "cleanup: looking at pid %u\n", tcp->pid);
+ if (tcp_last &&
+ (!outfname || followfork < 2 || tcp_last == tcp)) {
+ tprintf(" <unfinished ...>\n");
+ tcp_last = NULL;
+ }
+ if (tcp->flags & TCB_ATTACHED)
+ detach(tcp, 0);
+ else {
+ kill(tcp->pid, SIGCONT);
+ kill(tcp->pid, SIGTERM);
+ }
+ }
+ if (cflag)
+ call_summary(outf);
+}
+
+static void
+interrupt(sig)
+int sig;
+{
+ interrupted = 1;
+}
+
+#ifndef HAVE_STRERROR
+
+#if !HAVE_DECL_SYS_ERRLIST
+extern int sys_nerr;
+extern char *sys_errlist[];
+#endif /* HAVE_DECL_SYS_ERRLIST */
+
+const char *
+strerror(errno)
+int errno;
+{
+ static char buf[64];
+
+ if (errno < 1 || errno >= sys_nerr) {
+ sprintf(buf, "Unknown error %d", errno);
+ return buf;
+ }
+ return sys_errlist[errno];
+}
+
+#endif /* HAVE_STERRROR */
+
+#ifndef HAVE_STRSIGNAL
+
+#if defined HAVE_SYS_SIGLIST && !defined HAVE_DECL_SYS_SIGLIST
+extern char *sys_siglist[];
+#endif
+#if defined HAVE_SYS__SIGLIST && !defined HAVE_DECL__SYS_SIGLIST
+extern char *_sys_siglist[];
+#endif
+
+const char *
+strsignal(sig)
+int sig;
+{
+ static char buf[64];
+
+ if (sig < 1 || sig >= NSIG) {
+ sprintf(buf, "Unknown signal %d", sig);
+ return buf;
+ }
+#ifdef HAVE__SYS_SIGLIST
+ return _sys_siglist[sig];
+#else
+ return sys_siglist[sig];
+#endif
+}
+
+#endif /* HAVE_STRSIGNAL */
+
+#ifdef USE_PROCFS
+
+static void
+rebuild_pollv()
+{
+ int i, j;
+
+ if (pollv != NULL)
+ free (pollv);
+ pollv = (struct pollfd *) malloc(nprocs * sizeof pollv[0]);
+ if (pollv == NULL) {
+ fprintf(stderr, "%s: out of memory\n", progname);
+ exit(1);
+ }
+
+ for (i = j = 0; i < tcbtabsize; i++) {
+ struct tcb *tcp = tcbtab[i];
+ if (!(tcp->flags & TCB_INUSE))
+ continue;
+ pollv[j].fd = tcp->pfd;
+ pollv[j].events = POLLWANT;
+ j++;
+ }
+ if (j != nprocs) {
+ fprintf(stderr, "strace: proc miscount\n");
+ exit(1);
+ }
+}
+
+#ifndef HAVE_POLLABLE_PROCFS
+
+static void
+proc_poll_open()
+{
+ int arg;
+ int i;
+
+ if (pipe(proc_poll_pipe) < 0) {
+ perror("pipe");
+ exit(1);
+ }
+ for (i = 0; i < 2; i++) {
+ if ((arg = fcntl(proc_poll_pipe[i], F_GETFD)) < 0) {
+ perror("F_GETFD");
+ exit(1);
+ }
+ if (fcntl(proc_poll_pipe[i], F_SETFD, arg|FD_CLOEXEC) < 0) {
+ perror("F_SETFD");
+ exit(1);
+ }
+ }
+}
+
+static int
+proc_poll(pollv, nfds, timeout)
+struct pollfd *pollv;
+int nfds;
+int timeout;
+{
+ int i;
+ int n;
+ struct proc_pollfd pollinfo;
+
+ if ((n = read(proc_poll_pipe[0], &pollinfo, sizeof(pollinfo))) < 0)
+ return n;
+ if (n != sizeof(struct proc_pollfd)) {
+ fprintf(stderr, "panic: short read: %d\n", n);
+ exit(1);
+ }
+ for (i = 0; i < nprocs; i++) {
+ if (pollv[i].fd == pollinfo.fd)
+ pollv[i].revents = pollinfo.revents;
+ else
+ pollv[i].revents = 0;
+ }
+ poller_pid = pollinfo.pid;
+ return 1;
+}
+
+static void
+wakeup_handler(sig)
+int sig;
+{
+}
+
+static void
+proc_poller(pfd)
+int pfd;
+{
+ struct proc_pollfd pollinfo;
+ struct sigaction sa;
+ sigset_t blocked_set, empty_set;
+ int i;
+ int n;
+ struct rlimit rl;
+#ifdef FREEBSD
+ struct procfs_status pfs;
+#endif /* FREEBSD */
+
+ switch (fork()) {
+ case -1:
+ perror("fork");
+ _exit(0);
+ case 0:
+ break;
+ default:
+ return;
+ }
+
+ sa.sa_handler = interactive ? SIG_DFL : SIG_IGN;
+ sa.sa_flags = 0;
+ sigemptyset(&sa.sa_mask);
+ sigaction(SIGHUP, &sa, NULL);
+ sigaction(SIGINT, &sa, NULL);
+ sigaction(SIGQUIT, &sa, NULL);
+ sigaction(SIGPIPE, &sa, NULL);
+ sigaction(SIGTERM, &sa, NULL);
+ sa.sa_handler = wakeup_handler;
+ sigaction(SIGUSR1, &sa, NULL);
+ sigemptyset(&blocked_set);
+ sigaddset(&blocked_set, SIGUSR1);
+ sigprocmask(SIG_BLOCK, &blocked_set, NULL);
+ sigemptyset(&empty_set);
+
+ if (getrlimit(RLIMIT_NOFILE, &rl) < 0) {
+ perror("getrlimit(RLIMIT_NOFILE, ...)");
+ _exit(0);
+ }
+ n = rl.rlim_cur;
+ for (i = 0; i < n; i++) {
+ if (i != pfd && i != proc_poll_pipe[1])
+ close(i);
+ }
+
+ pollinfo.fd = pfd;
+ pollinfo.pid = getpid();
+ for (;;) {
+#ifndef FREEBSD
+ if (ioctl(pfd, PIOCWSTOP, NULL) < 0)
+#else /* FREEBSD */
+ if (ioctl(pfd, PIOCWSTOP, &pfs) < 0)
+#endif /* FREEBSD */
+ {
+ switch (errno) {
+ case EINTR:
+ continue;
+ case EBADF:
+ pollinfo.revents = POLLERR;
+ break;
+ case ENOENT:
+ pollinfo.revents = POLLHUP;
+ break;
+ default:
+ perror("proc_poller: PIOCWSTOP");
+ }
+ write(proc_poll_pipe[1], &pollinfo, sizeof(pollinfo));
+ _exit(0);
+ }
+ pollinfo.revents = POLLWANT;
+ write(proc_poll_pipe[1], &pollinfo, sizeof(pollinfo));
+ sigsuspend(&empty_set);
+ }
+}
+
+#endif /* !HAVE_POLLABLE_PROCFS */
+
+static int
+choose_pfd()
+{
+ int i, j;
+ struct tcb *tcp;
+
+ static int last;
+
+ if (followfork < 2 &&
+ last < nprocs && (pollv[last].revents & POLLWANT)) {
+ /*
+ * The previous process is ready to run again. We'll
+ * let it do so if it is currently in a syscall. This
+ * heuristic improves the readability of the trace.
+ */
+ tcp = pfd2tcb(pollv[last].fd);
+ if (tcp && (tcp->flags & TCB_INSYSCALL))
+ return pollv[last].fd;
+ }
+
+ for (i = 0; i < nprocs; i++) {
+ /* Let competing children run round robin. */
+ j = (i + last + 1) % nprocs;
+ if (pollv[j].revents & (POLLHUP | POLLERR)) {
+ tcp = pfd2tcb(pollv[j].fd);
+ if (!tcp) {
+ fprintf(stderr, "strace: lost proc\n");
+ exit(1);
+ }
+ droptcb(tcp);
+ return -1;
+ }
+ if (pollv[j].revents & POLLWANT) {
+ last = j;
+ return pollv[j].fd;
+ }
+ }
+ fprintf(stderr, "strace: nothing ready\n");
+ exit(1);
+}
+
+static int
+trace()
+{
+#ifdef POLL_HACK
+ struct tcb *in_syscall = NULL;
+#endif
+ struct tcb *tcp;
+ int pfd;
+ int what;
+ int ioctl_result = 0, ioctl_errno = 0;
+ long arg;
+
+ for (;;) {
+ if (interactive)
+ sigprocmask(SIG_SETMASK, &empty_set, NULL);
+
+ if (nprocs == 0)
+ break;
+
+ switch (nprocs) {
+ case 1:
+#ifndef HAVE_POLLABLE_PROCFS
+ if (proc_poll_pipe[0] == -1) {
+#endif
+ tcp = pid2tcb(0);
+ if (!tcp)
+ continue;
+ pfd = tcp->pfd;
+ if (pfd == -1)
+ continue;
+ break;
+#ifndef HAVE_POLLABLE_PROCFS
+ }
+ /* fall through ... */
+#endif /* !HAVE_POLLABLE_PROCFS */
+ default:
+#ifdef HAVE_POLLABLE_PROCFS
+#ifdef POLL_HACK
+ /* On some systems (e.g. UnixWare) we get too much ugly
+ "unfinished..." stuff when multiple proceses are in
+ syscalls. Here's a nasty hack */
+
+ if (in_syscall) {
+ struct pollfd pv;
+ tcp = in_syscall;
+ in_syscall = NULL;
+ pv.fd = tcp->pfd;
+ pv.events = POLLWANT;
+ if ((what = poll (&pv, 1, 1)) < 0) {
+ if (interrupted)
+ return 0;
+ continue;
+ }
+ else if (what == 1 && pv.revents & POLLWANT) {
+ goto FOUND;
+ }
+ }
+#endif
+
+ if (poll(pollv, nprocs, INFTIM) < 0) {
+ if (interrupted)
+ return 0;
+ continue;
+ }
+#else /* !HAVE_POLLABLE_PROCFS */
+ if (proc_poll(pollv, nprocs, INFTIM) < 0) {
+ if (interrupted)
+ return 0;
+ continue;
+ }
+#endif /* !HAVE_POLLABLE_PROCFS */
+ pfd = choose_pfd();
+ if (pfd == -1)
+ continue;
+ break;
+ }
+
+ /* Look up `pfd' in our table. */
+ if ((tcp = pfd2tcb(pfd)) == NULL) {
+ fprintf(stderr, "unknown pfd: %u\n", pfd);
+ exit(1);
+ }
+#ifdef POLL_HACK
+ FOUND:
+#endif
+ /* Get the status of the process. */
+ if (!interrupted) {
+#ifndef FREEBSD
+ ioctl_result = IOCTL_WSTOP (tcp);
+#else /* FREEBSD */
+ /* Thanks to some scheduling mystery, the first poller
+ sometimes waits for the already processed end of fork
+ event. Doing a non blocking poll here solves the problem. */
+ if (proc_poll_pipe[0] != -1)
+ ioctl_result = IOCTL_STATUS (tcp);
+ else
+ ioctl_result = IOCTL_WSTOP (tcp);
+#endif /* FREEBSD */
+ ioctl_errno = errno;
+#ifndef HAVE_POLLABLE_PROCFS
+ if (proc_poll_pipe[0] != -1) {
+ if (ioctl_result < 0)
+ kill(poller_pid, SIGKILL);
+ else
+ kill(poller_pid, SIGUSR1);
+ }
+#endif /* !HAVE_POLLABLE_PROCFS */
+ }
+ if (interrupted)
+ return 0;
+
+ if (interactive)
+ sigprocmask(SIG_BLOCK, &blocked_set, NULL);
+
+ if (ioctl_result < 0) {
+ /* Find out what happened if it failed. */
+ switch (ioctl_errno) {
+ case EINTR:
+ case EBADF:
+ continue;
+#ifdef FREEBSD
+ case ENOTTY:
+#endif
+ case ENOENT:
+ droptcb(tcp);
+ continue;
+ default:
+ perror("PIOCWSTOP");
+ exit(1);
+ }
+ }
+
+#ifdef FREEBSD
+ if ((tcp->flags & TCB_STARTUP) && (tcp->status.PR_WHY == PR_SYSEXIT)) {
+ /* discard first event for a syscall we never entered */
+ IOCTL (tcp->pfd, PIOCRUN, 0);
+ continue;
+ }
+#endif
+
+ /* clear the just started flag */
+ tcp->flags &= ~TCB_STARTUP;
+
+ /* set current output file */
+ outf = tcp->outf;
+
+ if (cflag) {
+ struct timeval stime;
+#ifdef FREEBSD
+ char buf[1024];
+ int len;
+
+ if ((len = pread(tcp->pfd_status, buf, sizeof(buf) - 1, 0)) > 0) {
+ buf[len] = '\0';
+ sscanf(buf,
+ "%*s %*d %*d %*d %*d %*d,%*d %*s %*d,%*d %*d,%*d %ld,%ld",
+ &stime.tv_sec, &stime.tv_usec);
+ } else
+ stime.tv_sec = stime.tv_usec = 0;
+#else /* !FREEBSD */
+ stime.tv_sec = tcp->status.pr_stime.tv_sec;
+ stime.tv_usec = tcp->status.pr_stime.tv_nsec/1000;
+#endif /* !FREEBSD */
+ tv_sub(&tcp->dtime, &stime, &tcp->stime);
+ tcp->stime = stime;
+ }
+ what = tcp->status.PR_WHAT;
+ switch (tcp->status.PR_WHY) {
+#ifndef FREEBSD
+ case PR_REQUESTED:
+ if (tcp->status.PR_FLAGS & PR_ASLEEP) {
+ tcp->status.PR_WHY = PR_SYSENTRY;
+ if (trace_syscall(tcp) < 0) {
+ fprintf(stderr, "syscall trouble\n");
+ exit(1);
+ }
+ }
+ break;
+#endif /* !FREEBSD */
+ case PR_SYSENTRY:
+#ifdef POLL_HACK
+ in_syscall = tcp;
+#endif
+ case PR_SYSEXIT:
+ if (trace_syscall(tcp) < 0) {
+ fprintf(stderr, "syscall trouble\n");
+ exit(1);
+ }
+ break;
+ case PR_SIGNALLED:
+ if (!cflag && (qual_flags[what] & QUAL_SIGNAL)) {
+ printleader(tcp);
+ tprintf("--- %s (%s) ---",
+ signame(what), strsignal(what));
+ printtrailer(tcp);
+#ifdef PR_INFO
+ if (tcp->status.PR_INFO.si_signo == what) {
+ printleader(tcp);
+ tprintf(" siginfo=");
+ printsiginfo(&tcp->status.PR_INFO, 1);
+ printtrailer(tcp);
+ }
+#endif
+ }
+ break;
+ case PR_FAULTED:
+ if (!cflag && (qual_flags[what] & QUAL_FAULT)) {
+ printleader(tcp);
+ tprintf("=== FAULT %d ===", what);
+ printtrailer(tcp);
+ }
+ break;
+#ifdef FREEBSD
+ case 0: /* handle case we polled for nothing */
+ continue;
+#endif
+ default:
+ fprintf(stderr, "odd stop %d\n", tcp->status.PR_WHY);
+ exit(1);
+ break;
+ }
+ arg = 0;
+#ifndef FREEBSD
+ if (IOCTL (tcp->pfd, PIOCRUN, &arg) < 0) {
+#else
+ if (IOCTL (tcp->pfd, PIOCRUN, 0) < 0) {
+#endif
+ perror("PIOCRUN");
+ exit(1);
+ }
+ }
+ return 0;
+}
+
+#else /* !USE_PROCFS */
+
+#ifdef TCB_GROUP_EXITING
+/* Handle an exit detach or death signal that is taking all the
+ related clone threads with it. This is called in three circumstances:
+ SIG == -1 TCP has already died (TCB_ATTACHED is clear, strace is parent).
+ SIG == 0 Continuing TCP will perform an exit_group syscall.
+ SIG == other Continuing TCP with SIG will kill the process.
+*/
+static int
+handle_group_exit(struct tcb *tcp, int sig)
+{
+ /* We need to locate our records of all the clone threads
+ related to TCP, either its children or siblings. */
+ struct tcb *leader = ((tcp->flags & TCB_CLONE_THREAD)
+ ? tcp->parent
+ : tcp->nclone_detached > 0
+ ? tcp : NULL);
+
+ if (sig < 0) {
+ if (leader != NULL && leader != tcp &&
+ !(leader->flags & TCB_GROUP_EXITING))
+ fprintf(stderr,
+ "PANIC: handle_group_exit: %d leader %d\n",
+ tcp->pid, leader ? leader->pid : -1);
+ droptcb(tcp); /* Already died. */
+ }
+ else {
+ if (tcp->flags & TCB_ATTACHED) {
+ if (leader != NULL && leader != tcp) {
+ if (leader->flags & TCB_ATTACHED) {
+ /* We need to detach the leader so
+ that the process death will be
+ reported to its real parent.
+ But we kill it first to prevent
+ it doing anything before we kill
+ the whole process in a moment.
+ We can use PTRACE_KILL on a
+ thread that's not already
+ stopped. Then the value we pass
+ in PTRACE_DETACH just sets the
+ death signal reported to the
+ real parent. */
+ ptrace(PTRACE_KILL, leader->pid, 0, 0);
+ if (debug)
+ fprintf(stderr,
+ " [%d exit %d kills %d]\n",
+ tcp->pid, sig, leader->pid);
+ detach(leader, sig);
+ }
+ else
+ leader->flags |= TCB_GROUP_EXITING;
+ }
+ detach(tcp, sig);
+ }
+ else if (ptrace(PTRACE_CONT, tcp->pid, (char *) 1, sig) < 0) {
+ perror("strace: ptrace(PTRACE_CONT, ...)");
+ cleanup();
+ return -1;
+ }
+ else {
+ if (leader != NULL)
+ leader->flags |= TCB_GROUP_EXITING;
+ if (leader != NULL && leader != tcp)
+ droptcb(tcp);
+ /* The leader will report to us as parent now,
+ and then we'll get to the SIG==-1 case. */
+ return 0;
+ }
+ }
+
+ return 0;
+}
+#endif
+
+static int
+trace()
+{
+ int pid;
+ int wait_errno;
+ int status;
+ struct tcb *tcp;
+#ifdef LINUX
+ struct rusage ru;
+#ifdef __WALL
+ static int wait4_options = __WALL;
+#endif
+#endif /* LINUX */
+
+ while (nprocs != 0) {
+ if (interactive)
+ sigprocmask(SIG_SETMASK, &empty_set, NULL);
+#ifdef LINUX
+#ifdef __WALL
+ pid = wait4(-1, &status, wait4_options, cflag ? &ru : NULL);
+ if (pid < 0 && (wait4_options & __WALL) && errno == EINVAL) {
+ /* this kernel does not support __WALL */
+ wait4_options &= ~__WALL;
+ errno = 0;
+ pid = wait4(-1, &status, wait4_options,
+ cflag ? &ru : NULL);
+ }
+ if (pid < 0 && !(wait4_options & __WALL) && errno == ECHILD) {
+ /* most likely a "cloned" process */
+ pid = wait4(-1, &status, __WCLONE,
+ cflag ? &ru : NULL);
+ if (pid == -1) {
+ fprintf(stderr, "strace: clone wait4 "
+ "failed: %s\n", strerror(errno));
+ }
+ }
+#else
+ pid = wait4(-1, &status, 0, cflag ? &ru : NULL);
+#endif /* __WALL */
+#endif /* LINUX */
+#ifdef SUNOS4
+ pid = wait(&status);
+#endif /* SUNOS4 */
+ wait_errno = errno;
+ if (interactive)
+ sigprocmask(SIG_BLOCK, &blocked_set, NULL);
+
+ if (interrupted)
+ return 0;
+
+ if (pid == -1) {
+ switch (wait_errno) {
+ case EINTR:
+ continue;
+ case ECHILD:
+ /*
+ * We would like to verify this case
+ * but sometimes a race in Solbourne's
+ * version of SunOS sometimes reports
+ * ECHILD before sending us SIGCHILD.
+ */
+#if 0
+ if (nprocs == 0)
+ return 0;
+ fprintf(stderr, "strace: proc miscount\n");
+ exit(1);
+#endif
+ return 0;
+ default:
+ errno = wait_errno;
+ perror("strace: wait");
+ return -1;
+ }
+ }
+ if (debug)
+ fprintf(stderr, " [wait(%#x) = %u]\n", status, pid);
+
+ /* Look up `pid' in our table. */
+ if ((tcp = pid2tcb(pid)) == NULL) {
+#ifdef LINUX
+ if (followfork || followvfork) {
+ /* 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. */
+ if ((tcp = alloctcb(pid)) == NULL) {
+ fprintf(stderr, " [tcb table full]\n");
+ kill(pid, SIGKILL); /* XXX */
+ return 0;
+ }
+ tcp->flags |= TCB_ATTACHED | TCB_SUSPENDED;
+ newoutf(tcp);
+ if (!qflag)
+ fprintf(stderr, "\
+Process %d attached (waiting for parent)\n",
+ pid);
+ }
+ else
+ /* This can happen if a clone call used
+ CLONE_PTRACE itself. */
+#endif
+ {
+ fprintf(stderr, "unknown pid: %u\n", pid);
+ if (WIFSTOPPED(status))
+ ptrace(PTRACE_CONT, pid, (char *) 1, 0);
+ exit(1);
+ }
+ }
+ /* set current output file */
+ outf = tcp->outf;
+ if (cflag) {
+#ifdef LINUX
+ tv_sub(&tcp->dtime, &ru.ru_stime, &tcp->stime);
+ tcp->stime = ru.ru_stime;
+#endif /* !LINUX */
+ }
+
+ if (tcp->flags & TCB_SUSPENDED) {
+ /*
+ * Apparently, doing any ptrace() call on a stopped
+ * process, provokes the kernel to report the process
+ * status again on a subsequent wait(), even if the
+ * process has not been actually restarted.
+ * Since we have inspected the arguments of suspended
+ * processes we end up here testing for this case.
+ */
+ continue;
+ }
+ if (WIFSIGNALED(status)) {
+ if (!cflag
+ && (qual_flags[WTERMSIG(status)] & QUAL_SIGNAL)) {
+ printleader(tcp);
+ tprintf("+++ killed by %s %s+++",
+ signame(WTERMSIG(status)),
+#ifdef WCOREDUMP
+ WCOREDUMP(status) ? "(core dumped) " :
+#endif
+ "");
+ printtrailer(tcp);
+ }
+#ifdef TCB_GROUP_EXITING
+ handle_group_exit(tcp, -1);
+#else
+ droptcb(tcp);
+#endif
+ continue;
+ }
+ if (WIFEXITED(status)) {
+ if (debug)
+ fprintf(stderr, "pid %u exited\n", pid);
+ if ((tcp->flags & TCB_ATTACHED)
+#ifdef TCB_GROUP_EXITING
+ && !(tcp->parent && (tcp->parent->flags &
+ TCB_GROUP_EXITING))
+#endif
+ )
+ fprintf(stderr,
+ "PANIC: attached pid %u exited\n",
+ pid);
+ if (tcp == tcp_last) {
+ if ((tcp->flags & (TCB_INSYSCALL|TCB_REPRINT))
+ == TCB_INSYSCALL)
+ tprintf(" <unfinished ... exit status %d>\n",
+ WEXITSTATUS(status));
+ tcp_last = NULL;
+ }
+#ifdef TCB_GROUP_EXITING
+ handle_group_exit(tcp, -1);
+#else
+ droptcb(tcp);
+#endif
+ continue;
+ }
+ if (!WIFSTOPPED(status)) {
+ fprintf(stderr, "PANIC: pid %u not stopped\n", pid);
+ droptcb(tcp);
+ continue;
+ }
+ if (debug)
+ fprintf(stderr, "pid %u stopped, [%s]\n",
+ pid, signame(WSTOPSIG(status)));
+
+ if (tcp->flags & TCB_STARTUP) {
+ /*
+ * This flag is there to keep us in sync.
+ * Next time this process stops it should
+ * really be entering a system call.
+ */
+ tcp->flags &= ~TCB_STARTUP;
+ if (tcp->flags & TCB_ATTACHED) {
+ /*
+ * Interestingly, the process may stop
+ * with STOPSIG equal to some other signal
+ * than SIGSTOP if we happend to attach
+ * just before the process takes a signal.
+ */
+ if (!WIFSTOPPED(status)) {
+ fprintf(stderr,
+ "pid %u not stopped\n", pid);
+ detach(tcp, WSTOPSIG(status));
+ continue;
+ }
+ }
+ else {
+#ifdef SUNOS4
+ /* A child of us stopped at exec */
+ if (WSTOPSIG(status) == SIGTRAP && followvfork)
+ fixvfork(tcp);
+#endif /* SUNOS4 */
+ }
+ if (tcp->flags & TCB_BPTSET) {
+ if (clearbpt(tcp) < 0) /* Pretty fatal */ {
+ droptcb(tcp);
+ cleanup();
+ return -1;
+ }
+ }
+ goto tracing;
+ }
+
+ if (WSTOPSIG(status) != SIGTRAP) {
+ if (WSTOPSIG(status) == SIGSTOP &&
+ (tcp->flags & TCB_SIGTRAPPED)) {
+ /*
+ * Trapped attempt to block SIGTRAP
+ * Hope we are back in control now.
+ */
+ tcp->flags &= ~(TCB_INSYSCALL | TCB_SIGTRAPPED);
+ if (ptrace(PTRACE_SYSCALL,
+ pid, (char *) 1, 0) < 0) {
+ perror("trace: ptrace(PTRACE_SYSCALL, ...)");
+ cleanup();
+ return -1;
+ }
+ continue;
+ }
+ if (!cflag
+ && (qual_flags[WSTOPSIG(status)] & QUAL_SIGNAL)) {
+ unsigned long addr = 0, pc = 0;
+#ifdef PT_GETSIGINFO
+# define PSR_RI 41
+ struct siginfo si;
+ unsigned long psr;
+
+ upeek(pid, PT_CR_IPSR, &psr);
+ upeek(pid, PT_CR_IIP, &pc);
+
+ pc += (psr >> PSR_RI) & 0x3;
+ ptrace(PT_GETSIGINFO, pid, 0, (long) &si);
+ addr = (unsigned long) si.si_addr;
+#elif defined PTRACE_GETSIGINFO
+ if (WSTOPSIG(status) == SIGSEGV ||
+ WSTOPSIG(status) == SIGBUS) {
+ siginfo_t si;
+ if (ptrace(PTRACE_GETSIGINFO, pid,
+ 0, &si) == 0)
+ addr = (unsigned long)
+ si.si_addr;
+ }
+#endif
+ printleader(tcp);
+ tprintf("--- %s (%s) @ %lx (%lx) ---",
+ signame(WSTOPSIG(status)),
+ strsignal(WSTOPSIG(status)), pc, addr);
+ printtrailer(tcp);
+ }
+ if (((tcp->flags & TCB_ATTACHED) ||
+ tcp->nclone_threads > 0) &&
+ !sigishandled(tcp, WSTOPSIG(status))) {
+#ifdef TCB_GROUP_EXITING
+ handle_group_exit(tcp, WSTOPSIG(status));
+#else
+ detach(tcp, WSTOPSIG(status));
+#endif
+ continue;
+ }
+ if (ptrace(PTRACE_SYSCALL, pid, (char *) 1,
+ WSTOPSIG(status)) < 0) {
+ perror("trace: ptrace(PTRACE_SYSCALL, ...)");
+ cleanup();
+ return -1;
+ }
+ tcp->flags &= ~TCB_SUSPENDED;
+ continue;
+ }
+ if (trace_syscall(tcp) < 0) {
+ if (tcp->flags & TCB_ATTACHED)
+ detach(tcp, 0);
+ else {
+ ptrace(PTRACE_KILL,
+ tcp->pid, (char *) 1, SIGTERM);
+ droptcb(tcp);
+ }
+ continue;
+ }
+ if (tcp->flags & TCB_EXITING) {
+#ifdef TCB_GROUP_EXITING
+ if (tcp->flags & TCB_GROUP_EXITING) {
+ if (handle_group_exit(tcp, 0) < 0)
+ return -1;
+ continue;
+ }
+#endif
+ if (tcp->flags & TCB_ATTACHED)
+ detach(tcp, 0);
+ else if (ptrace(PTRACE_CONT, pid, (char *) 1, 0) < 0) {
+ perror("strace: ptrace(PTRACE_CONT, ...)");
+ cleanup();
+ return -1;
+ }
+ continue;
+ }
+ if (tcp->flags & TCB_SUSPENDED) {
+ if (!qflag)
+ fprintf(stderr, "Process %u suspended\n", pid);
+ continue;
+ }
+ tracing:
+ if (ptrace(PTRACE_SYSCALL, pid, (char *) 1, 0) < 0) {
+ perror("trace: ptrace(PTRACE_SYSCALL, ...)");
+ cleanup();
+ return -1;
+ }
+ }
+ return 0;
+}
+
+#endif /* !USE_PROCFS */
+
+static int curcol;
+
+#ifdef __STDC__
+#include <stdarg.h>
+#define VA_START(a, b) va_start(a, b)
+#else
+#include <varargs.h>
+#define VA_START(a, b) va_start(a)
+#endif
+
+void
+#ifdef __STDC__
+tprintf(const char *fmt, ...)
+#else
+tprintf(fmt, va_alist)
+char *fmt;
+va_dcl
+#endif
+{
+ va_list args;
+
+ VA_START(args, fmt);
+ if (outf) {
+ int n = vfprintf(outf, fmt, args);
+ if (n < 0 && outf != stderr)
+ perror(outfname == NULL
+ ? "<writing to pipe>" : outfname);
+ else
+ curcol += n;
+ }
+ va_end(args);
+ return;
+}
+
+void
+printleader(tcp)
+struct tcb *tcp;
+{
+ if (tcp_last && (!outfname || followfork < 2 || tcp_last == tcp)) {
+ tcp_last->flags |= TCB_REPRINT;
+ tprintf(" <unfinished ...>\n");
+ }
+ curcol = 0;
+ if ((followfork == 1 || pflag_seen > 1) && outfname)
+ tprintf("%-5d ", tcp->pid);
+ else if (nprocs > 1 && !outfname)
+ tprintf("[pid %5u] ", tcp->pid);
+ if (tflag) {
+ char str[sizeof("HH:MM:SS")];
+ struct timeval tv, dtv;
+ static struct timeval otv;
+
+ gettimeofday(&tv, NULL);
+ if (rflag) {
+ if (otv.tv_sec == 0)
+ otv = tv;
+ tv_sub(&dtv, &tv, &otv);
+ tprintf("%6ld.%06ld ",
+ (long) dtv.tv_sec, (long) dtv.tv_usec);
+ otv = tv;
+ }
+ else if (tflag > 2) {
+ tprintf("%ld.%06ld ",
+ (long) tv.tv_sec, (long) tv.tv_usec);
+ }
+ else {
+ time_t local = tv.tv_sec;
+ strftime(str, sizeof(str), "%T", localtime(&local));
+ if (tflag > 1)
+ tprintf("%s.%06ld ", str, (long) tv.tv_usec);
+ else
+ tprintf("%s ", str);
+ }
+ }
+ if (iflag)
+ printcall(tcp);
+}
+
+void
+tabto(col)
+int col;
+{
+ if (curcol < col)
+ tprintf("%*s", col - curcol, "");
+}
+
+void
+printtrailer(tcp)
+struct tcb *tcp;
+{
+ tprintf("\n");
+ tcp_last = NULL;
+}
+
+#ifdef HAVE_MP_PROCFS
+
+int mp_ioctl (int fd, int cmd, void *arg, int size) {
+
+ struct iovec iov[2];
+ int n = 1;
+
+ iov[0].iov_base = &cmd;
+ iov[0].iov_len = sizeof cmd;
+ if (arg) {
+ ++n;
+ iov[1].iov_base = arg;
+ iov[1].iov_len = size;
+ }
+
+ return writev (fd, iov, n);
+}
+
+#endif
diff --git a/strace.spec b/strace.spec
new file mode 100644
index 0000000..1e94fa5
--- /dev/null
+++ b/strace.spec
@@ -0,0 +1,356 @@
+Summary: Tracks and displays system calls associated with a running process.
+Name: strace
+Version: 4.5.12
+Release: 1
+License: BSD
+Group: Development/Debuggers
+URL: http://sourceforge.net/projects/strace/
+Source0: %{name}-%{version}.tar.bz2
+BuildRoot: %{_tmppath}/%{name}-root
+
+%define strace64_arches ppc64
+
+%description
+The strace program intercepts and records the system calls called and
+received by a running process. Strace can print a record of each
+system call, its arguments and its return value. Strace is useful for
+diagnosing problems and debugging, as well as for instructional
+purposes.
+
+Install strace if you need a tool to track the system calls made and
+received by a process.
+
+%ifarch %{strace64_arches}
+%package -n strace64
+Summary: Tracks and displays system calls associated with a running process.
+Group: Development/Debuggers
+
+%description -n strace64
+The strace program intercepts and records the system calls called and
+received by a running process. Strace can print a record of each
+system call, its arguments and its return value. Strace is useful for
+diagnosing problems and debugging, as well as for instructional
+purposes.
+
+Install strace if you need a tool to track the system calls made and
+received by a process.
+
+This package provides the `strace64' program to trace 64-bit processes.
+The `strace' program in the `strace' package is for 32-bit processes.
+%endif
+
+%prep
+%setup -q
+
+%build
+%configure
+make
+
+%install
+rm -rf %{buildroot}
+mkdir -p %{buildroot}%{_mandir}/man1
+mkdir -p %{buildroot}%{_bindir}
+%makeinstall man1dir=%{buildroot}%{_mandir}/man1
+
+# remove unpackaged files from the buildroot
+rm -f %{buildroot}%{_bindir}/strace-graph
+
+%ifarch %{strace64_arches}
+ln %{buildroot}%{_bindir}/strace %{buildroot}%{_bindir}/strace64
+%endif
+
+%clean
+rm -rf %{buildroot}
+
+%files
+%defattr(-,root,root)
+%{_bindir}/strace
+%{_mandir}/man1/*
+
+%ifarch %{strace64_arches}
+%files -n strace64
+%defattr(-,root,root)
+%{_bindir}/strace64
+%endif
+
+
+%changelog
+* Wed Jun 8 2005 Roland McGrath <roland@redhat.com> - 4.5.12-1
+- Fix known syscall recognition for IA32 processes on x86-64 (#158934).
+- Fix bad output for ptrace on x86-64 (#159787).
+- Fix potential buffer overruns (#151570, #159196).
+- Make some diagnostics more consistent (#159308).
+- Update PowerPC system calls.
+- Better printing for Linux aio system calls.
+- Don't truncate statfs64 fields to 32 bits in output (#158243).
+- Cosmetic code cleanups (#159688).
+
+* Tue Mar 22 2005 Roland McGrath <roland@redhat.com> - 4.5.11-1
+- Build tweaks.
+- Note 4.5.10 select fix (#151570).
+
+* Mon Mar 14 2005 Roland McGrath <roland@redhat.com> - 4.5.10-1
+- Fix select handling on nonstandard fd_set sizes.
+- Don't print errors for null file name pointers.
+- Fix initial execve output with -i (#143365).
+
+* Fri Feb 4 2005 Roland McGrath <roland@redhat.com> - 4.5.9-2
+- update ia64 syscall list (#146245)
+- fix x86_64 syscall argument extraction for 32-bit processes (#146093)
+- fix -e signal=NAME parsing (#143362)
+- fix x86_64 exit_group syscall handling
+- improve socket ioctl printing (#138223)
+- code cleanups (#143369, #143370)
+- improve mount flags printing (#141932)
+- support symbolic printing of x86_64 arch_prctl parameters (#142667)
+- fix potential crash in getxattr printing
+
+* Tue Oct 19 2004 Roland McGrath <roland@redhat.com> - 4.5.8-1
+- fix multithreaded exit handling (#132150, #135254)
+- fix ioctl name matching (#129808)
+- print RTC_* ioctl structure contents (#58606)
+- grok epoll_* syscalls (#134463)
+- grok new RLIMIT_* values (#133594)
+- print struct cmsghdr contents for sendmsg (#131689)
+- fix clock_* and timer_* argument output (#131420)
+
+* Tue Aug 31 2004 Roland McGrath <roland@redhat.com> - 4.5.7-2
+- new upstream version, misc fixes and updates (#128091, #129166, #128391, #129378, #130965, #131177)
+
+* Mon Jul 12 2004 Roland McGrath <roland@redhat.com> 4.5.6-1
+- new upstream version, updates ioctl lists (#127398), fixes quotactl (#127393), more ioctl decoding (#126917)
+
+* Sun Jun 27 2004 Roland McGrath <roland@redhat.com> 4.5.5-1
+- new upstream version, fixes x86-64 biarch support (#126547)
+
+* Tue Jun 15 2004 Elliot Lee <sopwith@redhat.com> 4.5.4-2
+- rebuilt
+
+* Thu Jun 3 2004 Roland McGrath <roland@redhat.com> 4.5.4-0.FC1
+- rebuilt for FC1 update
+
+* Thu Jun 3 2004 Roland McGrath <roland@redhat.com> 4.5.4-1
+- new upstream version, more ioctls (#122257), minor fixes
+
+* Fri Apr 16 2004 Roland McGrath <roland@redhat.com> 4.5.3-1
+- new upstream version, mq_* calls (#120701), -p vs NPTL (#120462), more fixes (#118694, #120541, #118685)
+
+* Tue Mar 02 2004 Elliot Lee <sopwith@redhat.com> 4.5.2-1.1
+- rebuilt
+
+* Mon Mar 1 2004 Roland McGrath <roland@redhat.com> 4.5.2-1
+- new upstream version, sched_* calls (#116990), show core flag (#112117)
+
+* Fri Feb 13 2004 Elliot Lee <sopwith@redhat.com>
+- rebuilt
+
+* Thu Nov 13 2003 Roland McGrath <roland@redhat.com> 4.5.1-1
+- new upstream version, more fixes (#108012, #105366, #105359, #105358)
+
+* Tue Sep 30 2003 Roland McGrath <roland@redhat.com> 4.5-3
+- revert bogus s390 fix
+
+* Thu Sep 25 2003 Roland McGrath <roland@redhat.com> 4.5-1.2.1AS
+- rebuilt for 2.1AS erratum
+
+* Wed Sep 24 2003 Roland McGrath <roland@redhat.com> 4.5-2
+- rebuilt
+
+* Wed Sep 24 2003 Roland McGrath <roland@redhat.com> 4.5-1
+- new upstream version, more fixes (#101499, #104365)
+
+* Thu Jul 17 2003 Roland McGrath <roland@redhat.com> 4.4.99-2
+- rebuilt
+
+* Thu Jul 17 2003 Roland McGrath <roland@redhat.com> 4.4.99-1
+- new upstream version, groks more new system calls, PF_INET6 sockets
+
+* Mon Jun 10 2003 Roland McGrath <roland@redhat.com> 4.4.98-1
+- new upstream version, more fixes (#90754, #91085)
+
+* Wed Jun 04 2003 Elliot Lee <sopwith@redhat.com>
+- rebuilt
+
+* Sun Mar 30 2003 Roland McGrath <roland@redhat.com> 4.4.96-1
+- new upstream version, handles yet more 2.5 syscalls, x86_64 & ia64 fixes
+
+* Mon Feb 24 2003 Elliot Lee <sopwith@redhat.com> 4.4.95-2
+- rebuilt
+
+* Mon Feb 24 2003 Roland McGrath <roland@redhat.com> 4.4.95-1
+- new upstream version, fixed getresuid/getresgid (#84959)
+
+* Wed Feb 19 2003 Roland McGrath <roland@redhat.com> 4.4.94-1
+- new upstream version, new option -E to set environment variables (#82392)
+
+* Wed Jan 22 2003 Tim Powers <timp@redhat.com> 4.4.93-2
+- rebuilt
+
+* Tue Jan 21 2003 Roland McGrath <roland@redhat.com> 4.4.93-1
+- new upstream version, fixes ppc and s390 bugs, adds missing ptrace requests
+
+* Fri Jan 10 2003 Roland McGrath <roland@redhat.com> 4.4.91-1
+- new upstream version, fixes -f on x86-64
+
+* Fri Jan 10 2003 Roland McGrath <roland@redhat.com> 4.4.90-1
+- new upstream version, fixes all known bugs modulo ia64 and s390 issues
+
+* Fri Jan 03 2003 Florian La Roche <Florian.LaRoche@redhat.de> 4.4-11
+- add further s390 patch from IBM
+
+* Wed Nov 27 2002 Tim Powers <timp@redhat.com> 4.4-10
+- remove unpackaged files from the buildroot
+
+* Mon Oct 07 2002 Phil Knirsch <pknirsch@redhat.com> 4.4-9.1
+- Added latest s390(x) patch.
+
+* Fri Sep 06 2002 Karsten Hopp <karsten@redhat.de> 4.4-9
+- preliminary x86_64 support with an ugly patch to help
+ debugging. Needs cleanup!
+
+* Mon Sep 2 2002 Jakub Jelinek <jakub@redhat.com> 4.4-8
+- newer version of the clone fixing patch (Roland McGrath)
+- aio syscalls for i386/ia64/ppc (Ben LaHaise)
+
+* Wed Aug 28 2002 Jakub Jelinek <jakub@redhat.com> 4.4-7
+- fix strace -f (Roland McGrath, #68994)
+- handle ?et_thread_area, SA_RESTORER (Ulrich Drepper)
+
+* Fri Jun 21 2002 Jakub Jelinek <jakub@redhat.com> 4.4-6
+- handle futexes, *xattr, sendfile64, etc. (Ulrich Drepper)
+- handle modify_ldt (#66894)
+
+* Thu May 23 2002 Tim Powers <timp@redhat.com>
+- automated rebuild
+
+* Tue Apr 16 2002 Jakub Jelinek <jakub@redhat.com> 4.4-4
+- fix for the last patch by Jeff Law (#62591)
+
+* Mon Mar 4 2002 Preston Brown <pbrown@redhat.com> 4.4-3
+- integrate patch from Jeff Law to eliminate hang tracing threads
+
+* Sat Feb 23 2002 Florian La Roche <Florian.LaRoche@redhat.de>
+- minor update from debian tar-ball
+
+* Wed Jan 02 2002 Florian La Roche <Florian.LaRoche@redhat.de>
+- update to 4.4
+
+* Sun Jul 22 2001 Florian La Roche <Florian.LaRoche@redhat.de>
+- disable s390 patches, they are already included
+
+* Wed Jul 18 2001 Preston Brown <pbrown@redhat.com> 4.3-1
+- new upstream version. Seems to have integrated most new syscalls
+- tracing threaded programs is now functional.
+
+* Mon Jun 11 2001 Than Ngo <than@redhat.com>
+- port s390 patches from IBM
+
+* Wed May 16 2001 Nalin Dahyabhai <nalin@redhat.com>
+- modify new syscall patch to allocate enough heap space in setgroups32()
+
+* Wed Feb 14 2001 Jakub Jelinek <jakub@redhat.com>
+- #include <time.h> in addition to <sys/time.h>
+
+* Fri Jan 26 2001 Karsten Hopp <karsten@redhat.com>
+- clean up conflicting patches. This happened only
+ when building on S390
+
+* Fri Jan 19 2001 Bill Nottingham <notting@redhat.com>
+- update to CVS, reintegrate ia64 support
+
+* Sat Dec 8 2000 Bernhard Rosenkraenzer <bero@redhat.com>
+- Get S/390 support into the normal package
+
+* Sat Nov 18 2000 Florian La Roche <Florian.LaRoche@redhat.de>
+- added S/390 patch from IBM, adapting it to not conflict with
+ IA64 patch
+
+* Sat Aug 19 2000 Jakub Jelinek <jakub@redhat.com>
+- doh, actually apply the 2.4 syscalls patch
+- make it compile with 2.4.0-test7-pre4+ headers, add
+ getdents64 and fcntl64
+
+* Thu Aug 3 2000 Jakub Jelinek <jakub@redhat.com>
+- add a bunch of new 2.4 syscalls (#14036)
+
+* Wed Jul 12 2000 Prospector <bugzilla@redhat.com>
+- automatic rebuild
+- excludearch ia64
+
+* Fri Jun 2 2000 Matt Wilson <msw@redhat.com>
+- use buildinstall for FHS
+
+* Wed May 24 2000 Jakub Jelinek <jakub@redhat.com>
+- make things compile on sparc
+- fix sigreturn on sparc
+
+* Fri Mar 31 2000 Bill Nottingham <notting@redhat.com>
+- fix stat64 misdef (#10485)
+
+* Tue Mar 21 2000 Michael K. Johnson <johnsonm@redhat.com>
+- added ia64 patch
+
+* Thu Feb 03 2000 Cristian Gafton <gafton@redhat.com>
+- man pages are compressed
+- version 4.2 (why are we keeping all these patches around?)
+
+* Sat Nov 27 1999 Jeff Johnson <jbj@redhat.com>
+- update to 4.1 (with sparc socketcall patch).
+
+* Fri Nov 12 1999 Jakub Jelinek <jakub@redhat.com>
+- fix socketcall on sparc.
+
+* Thu Sep 02 1999 Cristian Gafton <gafton@redhat.com>
+- fix KERN_SECURELVL compile problem
+
+* Tue Aug 31 1999 Cristian Gafton <gafton@redhat.com>
+- added alpha patch from HJLu to fix the osf_sigprocmask interpretation
+
+* Sat Jun 12 1999 Jeff Johnson <jbj@redhat.com>
+- update to 3.99.1.
+
+* Wed Jun 2 1999 Jeff Johnson <jbj@redhat.com>
+- add (the other :-) jj's sparc patch.
+
+* Wed May 26 1999 Jeff Johnson <jbj@redhat.com>
+- upgrade to 3.99 in order to
+- add new 2.2.x open flags (#2955).
+- add new 2.2.x syscalls (#2866).
+- strace 3.1 patches carried along for now.
+
+* Sun May 16 1999 Jeff Johnson <jbj@redhat.com>
+- don't rely on (broken!) rpm %patch (#2735)
+
+* Tue Apr 06 1999 Preston Brown <pbrown@redhat.com>
+- strip binary
+
+* Sun Mar 21 1999 Cristian Gafton <gafton@redhat.com>
+- auto rebuild in the new build environment (release 16)
+
+* Tue Feb 9 1999 Jeff Johnson <jbj@redhat.com>
+- vfork est arrive!
+
+* Tue Feb 9 1999 Christopher Blizzard <blizzard@redhat.com>
+- Add patch to follow clone() syscalls, too.
+
+* Sun Jan 17 1999 Jeff Johnson <jbj@redhat.com>
+- patch to build alpha/sparc with glibc 2.1.
+
+* Thu Dec 03 1998 Cristian Gafton <gafton@redhat.com>
+- patch to build on ARM
+
+* Wed Sep 30 1998 Jeff Johnson <jbj@redhat.com>
+- fix typo (printf, not tprintf).
+
+* Sat Sep 19 1998 Jeff Johnson <jbj@redhat.com>
+- fix compile problem on sparc.
+
+* Tue Aug 18 1998 Cristian Gafton <gafton@redhat.com>
+- buildroot
+
+* Mon Jul 20 1998 Cristian Gafton <gafton@redhat.com>
+- added the umoven patch from James Youngman <jay@gnu.org>
+- fixed build problems on newer glibc releases
+
+* Mon Jun 08 1998 Prospector System <bugs@redhat.com>
+- translations modified for de, fr, tr
diff --git a/strace/linux/alpha/errnoent.h b/strace/linux/alpha/errnoent.h
new file mode 100644
index 0000000..4ffaff9
--- /dev/null
+++ b/strace/linux/alpha/errnoent.h
@@ -0,0 +1,516 @@
+ "ERRNO_0", /* 0 */
+ "EPERM", /* 1 */
+ "ENOENT", /* 2 */
+ "ESRCH", /* 3 */
+ "EINTR", /* 4 */
+ "EIO", /* 5 */
+ "ENXIO", /* 6 */
+ "E2BIG", /* 7 */
+ "ENOEXEC", /* 8 */
+ "EBADF", /* 9 */
+ "ECHILD", /* 10 */
+ "EDEADLK", /* 11 */
+ "ENOMEM", /* 12 */
+ "EACCES", /* 13 */
+ "EFAULT", /* 14 */
+ "ENOTBLK", /* 15 */
+ "EBUSY", /* 16 */
+ "EEXIST", /* 17 */
+ "EXDEV", /* 18 */
+ "ENODEV", /* 19 */
+ "ENOTDIR", /* 20 */
+ "EISDIR", /* 21 */
+ "EINVAL", /* 22 */
+ "ENFILE", /* 23 */
+ "EMFILE", /* 24 */
+ "ENOTTY", /* 25 */
+ "ETXTBSY", /* 26 */
+ "EFBIG", /* 27 */
+ "ENOSPC", /* 28 */
+ "ESPIPE", /* 29 */
+ "EROFS", /* 30 */
+ "EMLINK", /* 31 */
+ "EPIPE", /* 32 */
+ "EDOM", /* 33 */
+ "ERANGE", /* 34 */
+ "EAGAIN", /* 35 */
+ "EINPROGRESS", /* 36 */
+ "EALREADY", /* 37 */
+ "ENOTSOCK", /* 38 */
+ "EDESTADDRREQ", /* 39 */
+ "EMSGSIZE", /* 40 */
+ "EPROTOTYPE", /* 41 */
+ "ENOPROTOOPT", /* 42 */
+ "EPROTONOSUPPORT", /* 43 */
+ "ESOCKTNOSUPPORT", /* 44 */
+ "EOPNOTSUPP", /* 45 */
+ "EPFNOSUPPORT", /* 46 */
+ "EAFNOSUPPORT", /* 47 */
+ "EADDRINUSE", /* 48 */
+ "EADDRNOTAVAIL", /* 49 */
+ "ENETDOWN", /* 50 */
+ "ENETUNREACH", /* 51 */
+ "ENETRESET", /* 52 */
+ "ECONNABORTED", /* 53 */
+ "ECONNRESET", /* 54 */
+ "ENOBUFS", /* 55 */
+ "EISCONN", /* 56 */
+ "ENOTCONN", /* 57 */
+ "ESHUTDOWN", /* 58 */
+ "ETOOMANYREFS", /* 59 */
+ "ETIMEDOUT", /* 60 */
+ "ECONNREFUSED", /* 61 */
+ "ELOOP", /* 62 */
+ "ENAMETOOLONG", /* 63 */
+ "EHOSTDOWN", /* 64 */
+ "EHOSTUNREACH", /* 65 */
+ "ENOTEMPTY", /* 66 */
+ "ERRNO_67", /* 67 */
+ "EUSERS", /* 68 */
+ "EDQUOT", /* 69 */
+ "ESTALE", /* 70 */
+ "EREMOTE", /* 71 */
+ "ERRNO_72", /* 72 */
+ "ERRNO_73", /* 73 */
+ "ERRNO_74", /* 74 */
+ "ERRNO_75", /* 75 */
+ "ERRNO_76", /* 76 */
+ "ENOLCK", /* 77 */
+ "ENOSYS", /* 78 */
+ "ERRNO_79", /* 79 */
+ "ENOMSG", /* 80 */
+ "EIDRM", /* 81 */
+ "ENOSR", /* 82 */
+ "ETIME", /* 83 */
+ "EBADMSG", /* 84 */
+ "EPROTO", /* 85 */
+ "ENODATA", /* 86 */
+ "ENOSTR", /* 87 */
+ "ECHRNG", /* 88 */
+ "EL2NSYNC", /* 89 */
+ "EL3HLT", /* 90 */
+ "EL3RST", /* 91 */
+ "ENOPKG", /* 92 */
+ "ELNRNG", /* 93 */
+ "EUNATCH", /* 94 */
+ "ENOCSI", /* 95 */
+ "EL2HLT", /* 96 */
+ "EBADE", /* 97 */
+ "EBADR", /* 98 */
+ "EXFULL", /* 99 */
+ "ENOANO", /* 100 */
+ "EBADRQC", /* 101 */
+ "EBADSLT", /* 102 */
+ "EDEADLOCK", /* 103 */
+ "EBFONT", /* 104 */
+ "ENONET", /* 105 */
+ "ENOLINK", /* 106 */
+ "EADV", /* 107 */
+ "ESRMNT", /* 108 */
+ "ECOMM", /* 109 */
+ "EMULTIHOP", /* 110 */
+ "EDOTDOT", /* 111 */
+ "EOVERFLOW", /* 112 */
+ "ENOTUNIQ", /* 113 */
+ "EBADFD", /* 114 */
+ "EREMCHG", /* 115 */
+ "EILSEQ", /* 116 */
+ "EUCLEAN", /* 117 */
+ "ENOTNAM", /* 118 */
+ "ENAVAIL", /* 119 */
+ "EISNAM", /* 120 */
+ "EREMOTEIO", /* 121 */
+ "ELIBACC", /* 122 */
+ "ELIBBAD", /* 123 */
+ "ELIBSCN", /* 124 */
+ "ELIBMAX", /* 125 */
+ "ELIBEXEC", /* 126 */
+ "ERESTART", /* 127 */
+ "ESTRPIPE", /* 128 */
+ "ERRNO_129", /* 129 */
+ "ERRNO_130", /* 130 */
+ "ERRNO_131", /* 131 */
+ "ERRNO_132", /* 132 */
+ "ERRNO_133", /* 133 */
+ "ERRNO_134", /* 134 */
+ "ERRNO_135", /* 135 */
+ "ERRNO_136", /* 136 */
+ "ERRNO_137", /* 137 */
+ "ERRNO_138", /* 138 */
+ "ERRNO_139", /* 139 */
+ "ERRNO_140", /* 140 */
+ "ERRNO_141", /* 141 */
+ "ERRNO_142", /* 142 */
+ "ERRNO_143", /* 143 */
+ "ERRNO_144", /* 144 */
+ "ERRNO_145", /* 145 */
+ "ERRNO_146", /* 146 */
+ "ERRNO_147", /* 147 */
+ "ERRNO_148", /* 148 */
+ "ERRNO_149", /* 149 */
+ "ERRNO_150", /* 150 */
+ "ERRNO_151", /* 151 */
+ "ERRNO_152", /* 152 */
+ "ERRNO_153", /* 153 */
+ "ERRNO_154", /* 154 */
+ "ERRNO_155", /* 155 */
+ "ERRNO_156", /* 156 */
+ "ERRNO_157", /* 157 */
+ "ERRNO_158", /* 158 */
+ "ERRNO_159", /* 159 */
+ "ERRNO_160", /* 160 */
+ "ERRNO_161", /* 161 */
+ "ERRNO_162", /* 162 */
+ "ERRNO_163", /* 163 */
+ "ERRNO_164", /* 164 */
+ "ERRNO_165", /* 165 */
+ "ERRNO_166", /* 166 */
+ "ERRNO_167", /* 167 */
+ "ERRNO_168", /* 168 */
+ "ERRNO_169", /* 169 */
+ "ERRNO_170", /* 170 */
+ "ERRNO_171", /* 171 */
+ "ERRNO_172", /* 172 */
+ "ERRNO_173", /* 173 */
+ "ERRNO_174", /* 174 */
+ "ERRNO_175", /* 175 */
+ "ERRNO_176", /* 176 */
+ "ERRNO_177", /* 177 */
+ "ERRNO_178", /* 178 */
+ "ERRNO_179", /* 179 */
+ "ERRNO_180", /* 180 */
+ "ERRNO_181", /* 181 */
+ "ERRNO_182", /* 182 */
+ "ERRNO_183", /* 183 */
+ "ERRNO_184", /* 184 */
+ "ERRNO_185", /* 185 */
+ "ERRNO_186", /* 186 */
+ "ERRNO_187", /* 187 */
+ "ERRNO_188", /* 188 */
+ "ERRNO_189", /* 189 */
+ "ERRNO_190", /* 190 */
+ "ERRNO_191", /* 191 */
+ "ERRNO_192", /* 192 */
+ "ERRNO_193", /* 193 */
+ "ERRNO_194", /* 194 */
+ "ERRNO_195", /* 195 */
+ "ERRNO_196", /* 196 */
+ "ERRNO_197", /* 197 */
+ "ERRNO_198", /* 198 */
+ "ERRNO_199", /* 199 */
+ "ERRNO_200", /* 200 */
+ "ERRNO_201", /* 201 */
+ "ERRNO_202", /* 202 */
+ "ERRNO_203", /* 203 */
+ "ERRNO_204", /* 204 */
+ "ERRNO_205", /* 205 */
+ "ERRNO_206", /* 206 */
+ "ERRNO_207", /* 207 */
+ "ERRNO_208", /* 208 */
+ "ERRNO_209", /* 209 */
+ "ERRNO_210", /* 210 */
+ "ERRNO_211", /* 211 */
+ "ERRNO_212", /* 212 */
+ "ERRNO_213", /* 213 */
+ "ERRNO_214", /* 214 */
+ "ERRNO_215", /* 215 */
+ "ERRNO_216", /* 216 */
+ "ERRNO_217", /* 217 */
+ "ERRNO_218", /* 218 */
+ "ERRNO_219", /* 219 */
+ "ERRNO_220", /* 220 */
+ "ERRNO_221", /* 221 */
+ "ERRNO_222", /* 222 */
+ "ERRNO_223", /* 223 */
+ "ERRNO_224", /* 224 */
+ "ERRNO_225", /* 225 */
+ "ERRNO_226", /* 226 */
+ "ERRNO_227", /* 227 */
+ "ERRNO_228", /* 228 */
+ "ERRNO_229", /* 229 */
+ "ERRNO_230", /* 230 */
+ "ERRNO_231", /* 231 */
+ "ERRNO_232", /* 232 */
+ "ERRNO_233", /* 233 */
+ "ERRNO_234", /* 234 */
+ "ERRNO_235", /* 235 */
+ "ERRNO_236", /* 236 */
+ "ERRNO_237", /* 237 */
+ "ERRNO_238", /* 238 */
+ "ERRNO_239", /* 239 */
+ "ERRNO_240", /* 240 */
+ "ERRNO_241", /* 241 */
+ "ERRNO_242", /* 242 */
+ "ERRNO_243", /* 243 */
+ "ERRNO_244", /* 244 */
+ "ERRNO_245", /* 245 */
+ "ERRNO_246", /* 246 */
+ "ERRNO_247", /* 247 */
+ "ERRNO_248", /* 248 */
+ "ERRNO_249", /* 249 */
+ "ERRNO_250", /* 250 */
+ "ERRNO_251", /* 251 */
+ "ERRNO_252", /* 252 */
+ "ERRNO_253", /* 253 */
+ "ERRNO_254", /* 254 */
+ "ERRNO_255", /* 255 */
+ "ERRNO_256", /* 256 */
+ "ERRNO_257", /* 257 */
+ "ERRNO_258", /* 258 */
+ "ERRNO_259", /* 259 */
+ "ERRNO_260", /* 260 */
+ "ERRNO_261", /* 261 */
+ "ERRNO_262", /* 262 */
+ "ERRNO_263", /* 263 */
+ "ERRNO_264", /* 264 */
+ "ERRNO_265", /* 265 */
+ "ERRNO_266", /* 266 */
+ "ERRNO_267", /* 267 */
+ "ERRNO_268", /* 268 */
+ "ERRNO_269", /* 269 */
+ "ERRNO_270", /* 270 */
+ "ERRNO_271", /* 271 */
+ "ERRNO_272", /* 272 */
+ "ERRNO_273", /* 273 */
+ "ERRNO_274", /* 274 */
+ "ERRNO_275", /* 275 */
+ "ERRNO_276", /* 276 */
+ "ERRNO_277", /* 277 */
+ "ERRNO_278", /* 278 */
+ "ERRNO_279", /* 279 */
+ "ERRNO_280", /* 280 */
+ "ERRNO_281", /* 281 */
+ "ERRNO_282", /* 282 */
+ "ERRNO_283", /* 283 */
+ "ERRNO_284", /* 284 */
+ "ERRNO_285", /* 285 */
+ "ERRNO_286", /* 286 */
+ "ERRNO_287", /* 287 */
+ "ERRNO_288", /* 288 */
+ "ERRNO_289", /* 289 */
+ "ERRNO_290", /* 290 */
+ "ERRNO_291", /* 291 */
+ "ERRNO_292", /* 292 */
+ "ERRNO_293", /* 293 */
+ "ERRNO_294", /* 294 */
+ "ERRNO_295", /* 295 */
+ "ERRNO_296", /* 296 */
+ "ERRNO_297", /* 297 */
+ "ERRNO_298", /* 298 */
+ "ERRNO_299", /* 299 */
+ "ERRNO_300", /* 300 */
+ "ERRNO_301", /* 301 */
+ "ERRNO_302", /* 302 */
+ "ERRNO_303", /* 303 */
+ "ERRNO_304", /* 304 */
+ "ERRNO_305", /* 305 */
+ "ERRNO_306", /* 306 */
+ "ERRNO_307", /* 307 */
+ "ERRNO_308", /* 308 */
+ "ERRNO_309", /* 309 */
+ "ERRNO_310", /* 310 */
+ "ERRNO_311", /* 311 */
+ "ERRNO_312", /* 312 */
+ "ERRNO_313", /* 313 */
+ "ERRNO_314", /* 314 */
+ "ERRNO_315", /* 315 */
+ "ERRNO_316", /* 316 */
+ "ERRNO_317", /* 317 */
+ "ERRNO_318", /* 318 */
+ "ERRNO_319", /* 319 */
+ "ERRNO_320", /* 320 */
+ "ERRNO_321", /* 321 */
+ "ERRNO_322", /* 322 */
+ "ERRNO_323", /* 323 */
+ "ERRNO_324", /* 324 */
+ "ERRNO_325", /* 325 */
+ "ERRNO_326", /* 326 */
+ "ERRNO_327", /* 327 */
+ "ERRNO_328", /* 328 */
+ "ERRNO_329", /* 329 */
+ "ERRNO_330", /* 330 */
+ "ERRNO_331", /* 331 */
+ "ERRNO_332", /* 332 */
+ "ERRNO_333", /* 333 */
+ "ERRNO_334", /* 334 */
+ "ERRNO_335", /* 335 */
+ "ERRNO_336", /* 336 */
+ "ERRNO_337", /* 337 */
+ "ERRNO_338", /* 338 */
+ "ERRNO_339", /* 339 */
+ "ERRNO_340", /* 340 */
+ "ERRNO_341", /* 341 */
+ "ERRNO_342", /* 342 */
+ "ERRNO_343", /* 343 */
+ "ERRNO_344", /* 344 */
+ "ERRNO_345", /* 345 */
+ "ERRNO_346", /* 346 */
+ "ERRNO_347", /* 347 */
+ "ERRNO_348", /* 348 */
+ "ERRNO_349", /* 349 */
+ "ERRNO_350", /* 350 */
+ "ERRNO_351", /* 351 */
+ "ERRNO_352", /* 352 */
+ "ERRNO_353", /* 353 */
+ "ERRNO_354", /* 354 */
+ "ERRNO_355", /* 355 */
+ "ERRNO_356", /* 356 */
+ "ERRNO_357", /* 357 */
+ "ERRNO_358", /* 358 */
+ "ERRNO_359", /* 359 */
+ "ERRNO_360", /* 360 */
+ "ERRNO_361", /* 361 */
+ "ERRNO_362", /* 362 */
+ "ERRNO_363", /* 363 */
+ "ERRNO_364", /* 364 */
+ "ERRNO_365", /* 365 */
+ "ERRNO_366", /* 366 */
+ "ERRNO_367", /* 367 */
+ "ERRNO_368", /* 368 */
+ "ERRNO_369", /* 369 */
+ "ERRNO_370", /* 370 */
+ "ERRNO_371", /* 371 */
+ "ERRNO_372", /* 372 */
+ "ERRNO_373", /* 373 */
+ "ERRNO_374", /* 374 */
+ "ERRNO_375", /* 375 */
+ "ERRNO_376", /* 376 */
+ "ERRNO_377", /* 377 */
+ "ERRNO_378", /* 378 */
+ "ERRNO_379", /* 379 */
+ "ERRNO_380", /* 380 */
+ "ERRNO_381", /* 381 */
+ "ERRNO_382", /* 382 */
+ "ERRNO_383", /* 383 */
+ "ERRNO_384", /* 384 */
+ "ERRNO_385", /* 385 */
+ "ERRNO_386", /* 386 */
+ "ERRNO_387", /* 387 */
+ "ERRNO_388", /* 388 */
+ "ERRNO_389", /* 389 */
+ "ERRNO_390", /* 390 */
+ "ERRNO_391", /* 391 */
+ "ERRNO_392", /* 392 */
+ "ERRNO_393", /* 393 */
+ "ERRNO_394", /* 394 */
+ "ERRNO_395", /* 395 */
+ "ERRNO_396", /* 396 */
+ "ERRNO_397", /* 397 */
+ "ERRNO_398", /* 398 */
+ "ERRNO_399", /* 399 */
+ "ERRNO_400", /* 400 */
+ "ERRNO_401", /* 401 */
+ "ERRNO_402", /* 402 */
+ "ERRNO_403", /* 403 */
+ "ERRNO_404", /* 404 */
+ "ERRNO_405", /* 405 */
+ "ERRNO_406", /* 406 */
+ "ERRNO_407", /* 407 */
+ "ERRNO_408", /* 408 */
+ "ERRNO_409", /* 409 */
+ "ERRNO_410", /* 410 */
+ "ERRNO_411", /* 411 */
+ "ERRNO_412", /* 412 */
+ "ERRNO_413", /* 413 */
+ "ERRNO_414", /* 414 */
+ "ERRNO_415", /* 415 */
+ "ERRNO_416", /* 416 */
+ "ERRNO_417", /* 417 */
+ "ERRNO_418", /* 418 */
+ "ERRNO_419", /* 419 */
+ "ERRNO_420", /* 420 */
+ "ERRNO_421", /* 421 */
+ "ERRNO_422", /* 422 */
+ "ERRNO_423", /* 423 */
+ "ERRNO_424", /* 424 */
+ "ERRNO_425", /* 425 */
+ "ERRNO_426", /* 426 */
+ "ERRNO_427", /* 427 */
+ "ERRNO_428", /* 428 */
+ "ERRNO_429", /* 429 */
+ "ERRNO_430", /* 430 */
+ "ERRNO_431", /* 431 */
+ "ERRNO_432", /* 432 */
+ "ERRNO_433", /* 433 */
+ "ERRNO_434", /* 434 */
+ "ERRNO_435", /* 435 */
+ "ERRNO_436", /* 436 */
+ "ERRNO_437", /* 437 */
+ "ERRNO_438", /* 438 */
+ "ERRNO_439", /* 439 */
+ "ERRNO_440", /* 440 */
+ "ERRNO_441", /* 441 */
+ "ERRNO_442", /* 442 */
+ "ERRNO_443", /* 443 */
+ "ERRNO_444", /* 444 */
+ "ERRNO_445", /* 445 */
+ "ERRNO_446", /* 446 */
+ "ERRNO_447", /* 447 */
+ "ERRNO_448", /* 448 */
+ "ERRNO_449", /* 449 */
+ "ERRNO_450", /* 450 */
+ "ERRNO_451", /* 451 */
+ "ERRNO_452", /* 452 */
+ "ERRNO_453", /* 453 */
+ "ERRNO_454", /* 454 */
+ "ERRNO_455", /* 455 */
+ "ERRNO_456", /* 456 */
+ "ERRNO_457", /* 457 */
+ "ERRNO_458", /* 458 */
+ "ERRNO_459", /* 459 */
+ "ERRNO_460", /* 460 */
+ "ERRNO_461", /* 461 */
+ "ERRNO_462", /* 462 */
+ "ERRNO_463", /* 463 */
+ "ERRNO_464", /* 464 */
+ "ERRNO_465", /* 465 */
+ "ERRNO_466", /* 466 */
+ "ERRNO_467", /* 467 */
+ "ERRNO_468", /* 468 */
+ "ERRNO_469", /* 469 */
+ "ERRNO_470", /* 470 */
+ "ERRNO_471", /* 471 */
+ "ERRNO_472", /* 472 */
+ "ERRNO_473", /* 473 */
+ "ERRNO_474", /* 474 */
+ "ERRNO_475", /* 475 */
+ "ERRNO_476", /* 476 */
+ "ERRNO_477", /* 477 */
+ "ERRNO_478", /* 478 */
+ "ERRNO_479", /* 479 */
+ "ERRNO_480", /* 480 */
+ "ERRNO_481", /* 481 */
+ "ERRNO_482", /* 482 */
+ "ERRNO_483", /* 483 */
+ "ERRNO_484", /* 484 */
+ "ERRNO_485", /* 485 */
+ "ERRNO_486", /* 486 */
+ "ERRNO_487", /* 487 */
+ "ERRNO_488", /* 488 */
+ "ERRNO_489", /* 489 */
+ "ERRNO_490", /* 490 */
+ "ERRNO_491", /* 491 */
+ "ERRNO_492", /* 492 */
+ "ERRNO_493", /* 493 */
+ "ERRNO_494", /* 494 */
+ "ERRNO_495", /* 495 */
+ "ERRNO_496", /* 496 */
+ "ERRNO_497", /* 497 */
+ "ERRNO_498", /* 498 */
+ "ERRNO_499", /* 499 */
+ "ERRNO_500", /* 500 */
+ "ERRNO_501", /* 501 */
+ "ERRNO_502", /* 502 */
+ "ERRNO_503", /* 503 */
+ "ERRNO_504", /* 504 */
+ "ERRNO_505", /* 505 */
+ "ERRNO_506", /* 506 */
+ "ERRNO_507", /* 507 */
+ "ERRNO_508", /* 508 */
+ "ERRNO_509", /* 509 */
+ "ERRNO_510", /* 510 */
+ "ERRNO_511", /* 511 */
+ "ERESTARTSYS", /* 512 */
+ "ERESTARTNOINTR", /* 513 */
+ "ERESTARTNOHAND", /* 514 */
+ "ENOIOCTLCMD", /* 515 */
diff --git a/strace/linux/alpha/ioctlent.h b/strace/linux/alpha/ioctlent.h
new file mode 100644
index 0000000..3cfdb5b
--- /dev/null
+++ b/strace/linux/alpha/ioctlent.h
@@ -0,0 +1,852 @@
+ {"linux/fs.h", "FIBMAP", 0x1},
+ {"linux/fs.h", "FIGETBSZ", 0x2},
+ {"linux/fd.h", "FDGETPRM", 0x204},
+ {"linux/fd.h", "FDGETMAXERRS", 0x20e},
+ {"linux/fd.h", "FDGETDRVTYP", 0x20f},
+ {"linux/fd.h", "FDGETDRVPRM", 0x211},
+ {"linux/fd.h", "FDGETDRVSTAT", 0x212},
+ {"linux/fd.h", "FDPOLLDRVSTAT", 0x213},
+ {"linux/fd.h", "FDGETFDCSTAT", 0x215},
+ {"linux/fd.h", "FDWERRORGET", 0x217},
+ {"linux/fd.h", "FDCLRPRM", 0x241},
+ {"linux/fd.h", "FDSETPRM", 0x242},
+ {"linux/fd.h", "FDDEFPRM", 0x243},
+ {"linux/fd.h", "FDMSGON", 0x245},
+ {"linux/fd.h", "FDMSGOFF", 0x246},
+ {"linux/fd.h", "FDFMTBEG", 0x247},
+ {"linux/fd.h", "FDFMTTRK", 0x248},
+ {"linux/fd.h", "FDFMTEND", 0x249},
+ {"linux/fd.h", "FDSETEMSGTRESH", 0x24a},
+ {"linux/fd.h", "FDFLUSH", 0x24b},
+ {"linux/fd.h", "FDSETMAXERRS", 0x24c},
+ {"linux/fd.h", "FDRESET", 0x254},
+ {"linux/fd.h", "FDWERRORCLR", 0x256},
+ {"linux/fd.h", "FDRAWCMD", 0x258},
+ {"linux/fd.h", "FDTWADDLE", 0x259},
+ {"linux/fd.h", "FDEJECT", 0x25a},
+ {"linux/fd.h", "FDSETDRVPRM", 0x290},
+ {"linux/umsdos_fs.h", "UMSDOS_READDIR_DOS", 0x4d2},
+ {"linux/umsdos_fs.h", "UMSDOS_UNLINK_DOS", 0x4d3},
+ {"linux/umsdos_fs.h", "UMSDOS_RMDIR_DOS", 0x4d4},
+ {"linux/umsdos_fs.h", "UMSDOS_STAT_DOS", 0x4d5},
+ {"linux/umsdos_fs.h", "UMSDOS_CREAT_EMD", 0x4d6},
+ {"linux/umsdos_fs.h", "UMSDOS_UNLINK_EMD", 0x4d7},
+ {"linux/umsdos_fs.h", "UMSDOS_READDIR_EMD", 0x4d8},
+ {"linux/umsdos_fs.h", "UMSDOS_GETVERSION", 0x4d9},
+ {"linux/umsdos_fs.h", "UMSDOS_INIT_EMD", 0x4da},
+ {"linux/umsdos_fs.h", "UMSDOS_DOS_SETUP", 0x4db},
+ {"linux/umsdos_fs.h", "UMSDOS_RENAME_DOS", 0x4dc},
+ {"linux/fs.h", "BLKROSET", 0x125d},
+ {"linux/fs.h", "BLKROGET", 0x125e},
+ {"linux/fs.h", "BLKRRPART", 0x125f},
+ {"linux/fs.h", "BLKGETSIZE", 0x1260},
+ {"linux/fs.h", "BLKFLSBUF", 0x1261},
+ {"linux/fs.h", "BLKRASET", 0x1262},
+ {"linux/fs.h", "BLKRAGET", 0x1263},
+ {"linux/fs.h", "BLKFRASET", 0x1264},
+ {"linux/fs.h", "BLKFRAGET", 0x1265},
+ {"linux/fs.h", "BLKSECTSET", 0x1266},
+ {"linux/fs.h", "BLKSECTGET", 0x1267},
+ {"linux/fs.h", "BLKSSZGET", 0x1268},
+ {"linux/blkpg.h", "BLKPG", 0x1269},
+ {"linux/fs.h", "BLKPG", 0x1269},
+ {"linux/elevator.h", "BLKELVGET", 0x126a},
+ {"linux/fs.h", "BLKELVGET", 0x126a},
+ {"linux/elevator.h", "BLKELVSET", 0x126b},
+ {"linux/fs.h", "BLKELVSET", 0x126b},
+ {"linux/fs.h", "BLKBSZGET", 0x1270},
+ {"linux/fs.h", "BLKBSZSET", 0x1271},
+ {"linux/fs.h", "BLKGETSIZE64", 0x1272},
+ {"linux/agpgart.h", "AGPIOC_INFO", 0x4100},
+ {"linux/agpgart.h", "AGPIOC_ACQUIRE", 0x4101},
+ {"linux/apm_bios.h", "APM_IOC_STANDBY", 0x4101},
+ {"linux/agpgart.h", "AGPIOC_RELEASE", 0x4102},
+ {"linux/apm_bios.h", "APM_IOC_SUSPEND", 0x4102},
+ {"linux/agpgart.h", "AGPIOC_SETUP", 0x4103},
+ {"linux/agpgart.h", "AGPIOC_RESERVE", 0x4104},
+ {"linux/agpgart.h", "AGPIOC_PROTECT", 0x4105},
+ {"linux/agpgart.h", "AGPIOC_ALLOCATE", 0x4106},
+ {"linux/agpgart.h", "AGPIOC_DEALLOCATE", 0x4107},
+ {"linux/agpgart.h", "AGPIOC_BIND", 0x4108},
+ {"linux/agpgart.h", "AGPIOC_UNBIND", 0x4109},
+ {"linux/pmu.h", "PMU_IOC_SLEEP", 0x4200},
+ {"linux/cciss_ioctl.h", "CCISS_GETPCIINFO", 0x4201},
+ {"linux/pmu.h", "PMU_IOC_GET_BACKLIGHT", 0x4201},
+ {"linux/cciss_ioctl.h", "CCISS_GETINTINFO", 0x4202},
+ {"linux/pmu.h", "PMU_IOC_SET_BACKLIGHT", 0x4202},
+ {"linux/cciss_ioctl.h", "CCISS_SETINTINFO", 0x4203},
+ {"linux/pmu.h", "PMU_IOC_GET_MODEL", 0x4203},
+ {"linux/cciss_ioctl.h", "CCISS_GETNODENAME", 0x4204},
+ {"linux/pmu.h", "PMU_IOC_HAS_ADB", 0x4204},
+ {"linux/cciss_ioctl.h", "CCISS_SETNODENAME", 0x4205},
+ {"linux/pmu.h", "PMU_IOC_CAN_SLEEP", 0x4205},
+ {"linux/cciss_ioctl.h", "CCISS_GETHEARTBEAT", 0x4206},
+ {"linux/cciss_ioctl.h", "CCISS_GETBUSTYPES", 0x4207},
+ {"linux/cciss_ioctl.h", "CCISS_GETFIRMVER", 0x4208},
+ {"linux/cciss_ioctl.h", "CCISS_GETDRIVVER", 0x4209},
+ {"linux/cciss_ioctl.h", "CCISS_REVALIDVOLS", 0x420a},
+ {"linux/cciss_ioctl.h", "CCISS_PASSTHRU", 0x420b},
+ {"linux/soundcard.h", "SNDCTL_COPR_RESET", 0x4300},
+ {"linux/capi.h", "CAPI_REGISTER", 0x4301},
+ {"linux/soundcard.h", "SNDCTL_COPR_LOAD", 0x4301},
+ {"linux/soundcard.h", "SNDCTL_COPR_RDATA", 0x4302},
+ {"linux/soundcard.h", "SNDCTL_COPR_RCODE", 0x4303},
+ {"linux/soundcard.h", "SNDCTL_COPR_WDATA", 0x4304},
+ {"linux/soundcard.h", "SNDCTL_COPR_WCODE", 0x4305},
+ {"linux/capi.h", "CAPI_GET_MANUFACTURER", 0x4306},
+ {"linux/soundcard.h", "SNDCTL_COPR_RUN", 0x4306},
+ {"linux/capi.h", "CAPI_GET_VERSION", 0x4307},
+ {"linux/soundcard.h", "SNDCTL_COPR_HALT", 0x4307},
+ {"linux/capi.h", "CAPI_GET_SERIAL", 0x4308},
+ {"linux/soundcard.h", "SNDCTL_COPR_SENDMSG", 0x4308},
+ {"linux/capi.h", "CAPI_GET_PROFILE", 0x4309},
+ {"linux/soundcard.h", "SNDCTL_COPR_RCVMSG", 0x4309},
+ {"linux/capi.h", "CAPI_MANUFACTURER_CMD", 0x4320},
+ {"linux/capi.h", "CAPI_GET_ERRCODE", 0x4321},
+ {"linux/capi.h", "CAPI_INSTALLED", 0x4322},
+ {"linux/capi.h", "CAPI_GET_FLAGS", 0x4323},
+ {"linux/capi.h", "CAPI_SET_FLAGS", 0x4324},
+ {"linux/capi.h", "CAPI_CLR_FLAGS", 0x4325},
+ {"linux/capi.h", "CAPI_NCCI_OPENCOUNT", 0x4326},
+ {"linux/capi.h", "CAPI_NCCI_GETUNIT", 0x4327},
+ {"linux/input.h", "EVIOCGVERSION", 0x4501},
+ {"linux/input.h", "EVIOCGID", 0x4502},
+ {"linux/input.h", "EVIOCGREP", 0x4503},
+ {"linux/input.h", "EVIOCSREP", 0x4503},
+ {"linux/input.h", "EVIOCGKEYCODE", 0x4504},
+ {"linux/input.h", "EVIOCSKEYCODE", 0x4504},
+ {"linux/input.h", "EVIOCGKEY", 0x4505},
+ {"linux/input.h", "EVIOCGBUS", 0x4507},
+ {"linux/input.h", "EVIOCRMFF", 0x4581},
+ {"linux/input.h", "EVIOCSGAIN", 0x4582},
+ {"linux/input.h", "EVIOCSAUTOCENTER", 0x4583},
+ {"linux/input.h", "EVIOCGEFFECTS", 0x4584},
+ {"linux/fb.h", "FBIOGET_VBLANK", 0x4612},
+ {"linux/hiddev.h", "HIDIOCGVERSION", 0x4801},
+ {"linux/hiddev.h", "HIDIOCAPPLICATION", 0x4802},
+ {"linux/hiddev.h", "HIDIOCGDEVINFO", 0x4803},
+ {"linux/hiddev.h", "HIDIOCGSTRING", 0x4804},
+ {"linux/hiddev.h", "HIDIOCINITREPORT", 0x4805},
+ {"linux/hiddev.h", "HIDIOCGREPORT", 0x4807},
+ {"linux/hiddev.h", "HIDIOCSREPORT", 0x4808},
+ {"linux/hiddev.h", "HIDIOCGREPORTINFO", 0x4809},
+ {"linux/hiddev.h", "HIDIOCGFIELDINFO", 0x480a},
+ {"linux/hiddev.h", "HIDIOCGUSAGE", 0x480b},
+ {"linux/hiddev.h", "HIDIOCSUSAGE", 0x480c},
+ {"linux/hiddev.h", "HIDIOCGUCODE", 0x480d},
+ {"linux/isdn.h", "IIOCNETAIF", 0x4901},
+ {"linux/isdn.h", "IIOCNETDIF", 0x4902},
+ {"linux/isdn.h", "IIOCNETSCF", 0x4903},
+ {"linux/isdn.h", "IIOCNETGCF", 0x4904},
+ {"linux/isdn.h", "IIOCNETANM", 0x4905},
+ {"linux/isdn.h", "IIOCNETDNM", 0x4906},
+ {"linux/isdn.h", "IIOCNETGNM", 0x4907},
+ {"linux/isdn.h", "IIOCGETSET", 0x4908},
+ {"linux/isdn.h", "IIOCSETSET", 0x4909},
+ {"linux/isdn.h", "IIOCSETVER", 0x490a},
+ {"linux/isdn.h", "IIOCNETHUP", 0x490b},
+ {"linux/isdn.h", "IIOCSETGST", 0x490c},
+ {"linux/isdn.h", "IIOCSETBRJ", 0x490d},
+ {"linux/isdn.h", "IIOCSIGPRF", 0x490e},
+ {"linux/isdn.h", "IIOCGETPRF", 0x490f},
+ {"linux/isdn.h", "IIOCSETPRF", 0x4910},
+ {"linux/isdn.h", "IIOCGETMAP", 0x4911},
+ {"linux/isdn.h", "IIOCSETMAP", 0x4912},
+ {"linux/isdn.h", "IIOCNETASL", 0x4913},
+ {"linux/isdn.h", "IIOCNETDIL", 0x4914},
+ {"linux/isdn.h", "IIOCGETCPS", 0x4915},
+ {"linux/isdn.h", "IIOCGETDVR", 0x4916},
+ {"linux/isdn.h", "IIOCNETLCR", 0x4917},
+ {"linux/isdn.h", "IIOCNETDWRSET", 0x4918},
+ {"linux/isdn.h", "IIOCNETALN", 0x4920},
+ {"linux/isdn.h", "IIOCNETDLN", 0x4921},
+ {"linux/isdn.h", "IIOCNETGPN", 0x4922},
+ {"linux/isdn.h", "IIOCDBGVAR", 0x497f},
+ {"linux/isdn.h", "IIOCDRVCTL", 0x4980},
+ {"linux/soundcard.h", "SOUND_MIXER_INFO", 0x4d65},
+ {"linux/soundcard.h", "SOUND_OLD_MIXER_INFO", 0x4d65},
+ {"linux/soundcard.h", "SOUND_MIXER_ACCESS", 0x4d66},
+ {"linux/soundcard.h", "SOUND_MIXER_AGC", 0x4d67},
+ {"linux/soundcard.h", "SOUND_MIXER_3DSE", 0x4d68},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE1", 0x4d6f},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE2", 0x4d70},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE3", 0x4d71},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE4", 0x4d72},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE5", 0x4d73},
+ {"linux/soundcard.h", "SOUND_MIXER_GETLEVELS", 0x4d74},
+ {"linux/soundcard.h", "SOUND_MIXER_SETLEVELS", 0x4d75},
+ {"linux/soundcard.h", "OSS_GETVERSION", 0x4d76},
+ {"linux/soundcard.h", "SNDCTL_DSP_RESET", 0x5000},
+ {"linux/soundcard.h", "SNDCTL_DSP_SYNC", 0x5001},
+ {"linux/soundcard.h", "SNDCTL_DSP_SPEED", 0x5002},
+ {"linux/soundcard.h", "SOUND_PCM_READ_RATE", 0x5002},
+ {"linux/soundcard.h", "SNDCTL_DSP_STEREO", 0x5003},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETBLKSIZE", 0x5004},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETFMT", 0x5005},
+ {"linux/soundcard.h", "SOUND_PCM_READ_BITS", 0x5005},
+ {"linux/soundcard.h", "SNDCTL_DSP_CHANNELS", 0x5006},
+ {"linux/soundcard.h", "SOUND_PCM_READ_CHANNELS", 0x5006},
+ {"linux/soundcard.h", "SOUND_PCM_WRITE_FILTER", 0x5007},
+ {"linux/soundcard.h", "SOUND_PCM_READ_FILTER", 0x5007},
+ {"linux/soundcard.h", "SNDCTL_DSP_POST", 0x5008},
+ {"linux/soundcard.h", "SNDCTL_DSP_SUBDIVIDE", 0x5009},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETFRAGMENT", 0x500a},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETFMTS", 0x500b},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETOSPACE", 0x500c},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETISPACE", 0x500d},
+ {"linux/soundcard.h", "SNDCTL_DSP_NONBLOCK", 0x500e},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETCAPS", 0x500f},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETTRIGGER", 0x5010},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETTRIGGER", 0x5010},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETIPTR", 0x5011},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETOPTR", 0x5012},
+ {"linux/soundcard.h", "SNDCTL_DSP_MAPINBUF", 0x5013},
+ {"linux/soundcard.h", "SNDCTL_DSP_MAPOUTBUF", 0x5014},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETSYNCRO", 0x5015},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETDUPLEX", 0x5016},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETODELAY", 0x5017},
+ {"linux/soundcard.h", "SNDCTL_DSP_PROFILE", 0x5017},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETCHANNELMASK", 0x5040},
+ {"linux/soundcard.h", "SNDCTL_DSP_BIND_CHANNEL", 0x5041},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETSPDIF", 0x5042},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETSPDIF", 0x5043},
+ {"linux/soundcard.h", "SNDCTL_SEQ_RESET", 0x5100},
+ {"linux/soundcard.h", "SNDCTL_SEQ_SYNC", 0x5101},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_INFO", 0x5102},
+ {"linux/soundcard.h", "SNDCTL_SEQ_CTRLRATE", 0x5103},
+ {"linux/soundcard.h", "SNDCTL_SEQ_GETOUTCOUNT", 0x5104},
+ {"linux/soundcard.h", "SNDCTL_SEQ_GETINCOUNT", 0x5105},
+ {"linux/soundcard.h", "SNDCTL_SEQ_PERCMODE", 0x5106},
+ {"linux/soundcard.h", "SNDCTL_FM_LOAD_INSTR", 0x5107},
+ {"linux/soundcard.h", "SNDCTL_SEQ_TESTMIDI", 0x5108},
+ {"linux/soundcard.h", "SNDCTL_SEQ_RESETSAMPLES", 0x5109},
+ {"linux/soundcard.h", "SNDCTL_SEQ_NRSYNTHS", 0x510a},
+ {"linux/soundcard.h", "SNDCTL_SEQ_NRMIDIS", 0x510b},
+ {"linux/soundcard.h", "SNDCTL_MIDI_INFO", 0x510c},
+ {"linux/soundcard.h", "SNDCTL_SEQ_THRESHOLD", 0x510d},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_MEMAVL", 0x510e},
+ {"linux/soundcard.h", "SNDCTL_FM_4OP_ENABLE", 0x510f},
+ {"linux/soundcard.h", "SNDCTL_SEQ_PANIC", 0x5111},
+ {"linux/soundcard.h", "SNDCTL_SEQ_OUTOFBAND", 0x5112},
+ {"linux/soundcard.h", "SNDCTL_SEQ_GETTIME", 0x5113},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_ID", 0x5114},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_CONTROL", 0x5115},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_REMOVESAMPLE", 0x5116},
+ {"linux/random.h", "RNDGETENTCNT", 0x5200},
+ {"linux/random.h", "RNDADDTOENTCNT", 0x5201},
+ {"linux/random.h", "RNDGETPOOL", 0x5202},
+ {"linux/random.h", "RNDADDENTROPY", 0x5203},
+ {"linux/random.h", "RNDZAPENTCNT", 0x5204},
+ {"linux/random.h", "RNDCLEARPOOL", 0x5206},
+ {"linux/soundcard.h", "SNDCTL_TMR_TIMEBASE", 0x5401},
+ {"linux/soundcard.h", "SNDCTL_TMR_START", 0x5402},
+ {"linux/soundcard.h", "SNDCTL_TMR_STOP", 0x5403},
+ {"linux/soundcard.h", "SNDCTL_TMR_CONTINUE", 0x5404},
+ {"linux/soundcard.h", "SNDCTL_TMR_TEMPO", 0x5405},
+ {"linux/soundcard.h", "SNDCTL_TMR_SOURCE", 0x5406},
+ {"linux/soundcard.h", "SNDCTL_TMR_METRONOME", 0x5407},
+ {"linux/soundcard.h", "SNDCTL_TMR_SELECT", 0x5408},
+ {"asm/ioctls.h", "TIOCEXCL", 0x540c},
+ {"asm/ioctls.h", "TIOCNXCL", 0x540d},
+ {"asm/ioctls.h", "TIOCSCTTY", 0x540e},
+ {"asm/ioctls.h", "TIOCSTI", 0x5412},
+ {"asm/ioctls.h", "TIOCMGET", 0x5415},
+ {"asm/ioctls.h", "TIOCMBIS", 0x5416},
+ {"asm/ioctls.h", "TIOCMBIC", 0x5417},
+ {"asm/ioctls.h", "TIOCMSET", 0x5418},
+ {"asm/ioctls.h", "TIOCGSOFTCAR", 0x5419},
+ {"asm/ioctls.h", "TIOCSSOFTCAR", 0x541a},
+ {"asm/ioctls.h", "TIOCLINUX", 0x541c},
+ {"asm/ioctls.h", "TIOCCONS", 0x541d},
+ {"asm/ioctls.h", "TIOCGSERIAL", 0x541e},
+ {"asm/ioctls.h", "TIOCSSERIAL", 0x541f},
+ {"asm/ioctls.h", "TIOCPKT", 0x5420},
+ {"asm/ioctls.h", "TIOCNOTTY", 0x5422},
+ {"asm/ioctls.h", "TIOCSETD", 0x5423},
+ {"asm/ioctls.h", "TIOCGETD", 0x5424},
+ {"asm/ioctls.h", "TCSBRKP", 0x5425},
+ {"asm/ioctls.h", "TIOCTTYGSTRUCT", 0x5426},
+ {"asm/ioctls.h", "TIOCSBRK", 0x5427},
+ {"asm/ioctls.h", "TIOCCBRK", 0x5428},
+ {"asm/ioctls.h", "TIOCGSID", 0x5429},
+ {"asm/ioctls.h", "TIOCGPTN", 0x5430},
+ {"asm/ioctls.h", "TIOCSPTLCK", 0x5431},
+ {"asm/ioctls.h", "TIOCSERCONFIG", 0x5453},
+ {"asm/ioctls.h", "TIOCSERGWILD", 0x5454},
+ {"asm/ioctls.h", "TIOCSERSWILD", 0x5455},
+ {"asm/ioctls.h", "TIOCGLCKTRMIOS", 0x5456},
+ {"asm/ioctls.h", "TIOCSLCKTRMIOS", 0x5457},
+ {"asm/ioctls.h", "TIOCSERGSTRUCT", 0x5458},
+ {"asm/ioctls.h", "TIOCSERGETLSR", 0x5459},
+ {"asm/ioctls.h", "TIOCSERGETMULTI", 0x545a},
+ {"asm/ioctls.h", "TIOCSERSETMULTI", 0x545b},
+ {"asm/ioctls.h", "TIOCMIWAIT", 0x545c},
+ {"asm/ioctls.h", "TIOCGICOUNT", 0x545d},
+ {"asm/ioctls.h", "TIOCGHAYESESP", 0x545e},
+ {"asm/ioctls.h", "TIOCSHAYESESP", 0x545f},
+ {"linux/if_tun.h", "TUNSETNOCSUM", 0x54c8},
+ {"linux/if_tun.h", "TUNSETDEBUG", 0x54c9},
+ {"linux/if_tun.h", "TUNSETIFF", 0x54ca},
+ {"linux/if_tun.h", "TUNSETPERSIST", 0x54cb},
+ {"linux/if_tun.h", "TUNSETOWNER", 0x54cc},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CONTROL", 0x5500},
+ {"linux/usbdevice_fs.h", "USBDEVFS_BULK", 0x5502},
+ {"linux/usbdevice_fs.h", "USBDEVFS_RESETEP", 0x5503},
+ {"linux/usbdevice_fs.h", "USBDEVFS_SETINTERFACE", 0x5504},
+ {"linux/usbdevice_fs.h", "USBDEVFS_SETCONFIGURATION", 0x5505},
+ {"linux/usbdevice_fs.h", "USBDEVFS_GETDRIVER", 0x5508},
+ {"linux/usbdevice_fs.h", "USBDEVFS_SUBMITURB", 0x550a},
+ {"linux/usbdevice_fs.h", "USBDEVFS_DISCARDURB", 0x550b},
+ {"linux/usbdevice_fs.h", "USBDEVFS_REAPURB", 0x550c},
+ {"linux/usbdevice_fs.h", "USBDEVFS_REAPURBNDELAY", 0x550d},
+ {"linux/usbdevice_fs.h", "USBDEVFS_DISCSIGNAL", 0x550e},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CLAIMINTERFACE", 0x550f},
+ {"linux/usbdevice_fs.h", "USBDEVFS_RELEASEINTERFACE", 0x5510},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CONNECTINFO", 0x5511},
+ {"linux/usbdevice_fs.h", "USBDEVFS_IOCTL", 0x5512},
+ {"linux/usbdevice_fs.h", "USBDEVFS_HUB_PORTINFO", 0x5513},
+ {"linux/usbdevice_fs.h", "USBDEVFS_RESET", 0x5514},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CLEAR_HALT", 0x5515},
+ {"linux/watchdog.h", "WDIOC_GETSUPPORT", 0x5700},
+ {"linux/watchdog.h", "WDIOC_GETSTATUS", 0x5701},
+ {"linux/watchdog.h", "WDIOC_GETBOOTSTATUS", 0x5702},
+ {"linux/watchdog.h", "WDIOC_GETTEMP", 0x5703},
+ {"linux/watchdog.h", "WDIOC_SETOPTIONS", 0x5704},
+ {"linux/watchdog.h", "WDIOC_KEEPALIVE", 0x5705},
+ {"linux/watchdog.h", "WDIOC_SETTIMEOUT", 0x5706},
+ {"linux/watchdog.h", "WDIOC_GETTIMEOUT", 0x5707},
+ {"linux/ite_gpio.h", "ITE_GPIO_IN", 0x5a00},
+ {"linux/ite_gpio.h", "ITE_GPIO_OUT", 0x5a01},
+ {"linux/ite_gpio.h", "ITE_GPIO_INT_CTRL", 0x5a02},
+ {"linux/ite_gpio.h", "ITE_GPIO_IN_STATUS", 0x5a03},
+ {"linux/ite_gpio.h", "ITE_GPIO_OUT_STATUS", 0x5a04},
+ {"linux/ite_gpio.h", "ITE_GPIO_GEN_CTRL", 0x5a05},
+ {"linux/ite_gpio.h", "ITE_GPIO_INT_WAIT", 0x5a06},
+ {"linux/sonet.h", "SONET_GETSTAT", 0x6110},
+ {"linux/sonet.h", "SONET_GETSTATZ", 0x6111},
+ {"linux/sonet.h", "SONET_SETDIAG", 0x6112},
+ {"linux/sonet.h", "SONET_CLRDIAG", 0x6113},
+ {"linux/sonet.h", "SONET_GETDIAG", 0x6114},
+ {"linux/sonet.h", "SONET_SETFRAMING", 0x6115},
+ {"linux/sonet.h", "SONET_GETFRAMING", 0x6116},
+ {"linux/sonet.h", "SONET_GETFRSENSE", 0x6117},
+ {"linux/atm_idt77105.h", "IDT77105_GETSTAT", 0x6132},
+ {"linux/atm_idt77105.h", "IDT77105_GETSTATZ", 0x6133},
+ {"linux/atmdev.h", "ATM_GETSTAT", 0x6150},
+ {"linux/atmdev.h", "ATM_GETSTATZ", 0x6151},
+ {"linux/atmdev.h", "ATM_GETLOOP", 0x6152},
+ {"linux/atmdev.h", "ATM_SETLOOP", 0x6153},
+ {"linux/atmdev.h", "ATM_QUERYLOOP", 0x6154},
+ {"linux/atm_eni.h", "ENI_MEMDUMP", 0x6160},
+ {"linux/atm_nicstar.h", "NS_GETPSTAT", 0x6161},
+ {"linux/atm_zatm.h", "ZATM_GETPOOL", 0x6161},
+ {"linux/atm_nicstar.h", "NS_SETBUFLEV", 0x6162},
+ {"linux/atm_zatm.h", "ZATM_GETPOOLZ", 0x6162},
+ {"linux/atm_nicstar.h", "NS_ADJBUFLEV", 0x6163},
+ {"linux/atm_zatm.h", "ZATM_SETPOOL", 0x6163},
+ {"linux/atm_zatm.h", "ZATM_GETTHIST", 0x6164},
+ {"linux/atm_eni.h", "ENI_SETMULT", 0x6167},
+ {"linux/atm_tcp.h", "SIOCSIFATMTCP", 0x6180},
+ {"linux/atmdev.h", "ATM_GETLINKRATE", 0x6181},
+ {"linux/atmdev.h", "ATM_GETNAMES", 0x6183},
+ {"linux/atmdev.h", "ATM_GETTYPE", 0x6184},
+ {"linux/atmdev.h", "ATM_GETESI", 0x6185},
+ {"linux/atmdev.h", "ATM_GETADDR", 0x6186},
+ {"linux/atmdev.h", "ATM_RSTADDR", 0x6187},
+ {"linux/atmdev.h", "ATM_ADDADDR", 0x6188},
+ {"linux/atmdev.h", "ATM_DELADDR", 0x6189},
+ {"linux/atmdev.h", "ATM_GETCIRANGE", 0x618a},
+ {"linux/atmdev.h", "ATM_SETCIRANGE", 0x618b},
+ {"linux/atmdev.h", "ATM_SETESI", 0x618c},
+ {"linux/atmdev.h", "ATM_SETESIF", 0x618d},
+ {"linux/atm_tcp.h", "ATMTCP_CREATE", 0x618e},
+ {"linux/atm_tcp.h", "ATMTCP_REMOVE", 0x618f},
+ {"linux/atmlec.h", "ATMLEC_CTRL", 0x61d0},
+ {"linux/atmlec.h", "ATMLEC_DATA", 0x61d1},
+ {"linux/atmlec.h", "ATMLEC_MCAST", 0x61d2},
+ {"linux/atmmpc.h", "ATMMPC_CTRL", 0x61d8},
+ {"linux/atmmpc.h", "ATMMPC_DATA", 0x61d9},
+ {"linux/atmclip.h", "SIOCMKCLIP", 0x61e0},
+ {"linux/atmarp.h", "ATMARPD_CTRL", 0x61e1},
+ {"linux/atmarp.h", "ATMARP_MKIP", 0x61e2},
+ {"linux/atmarp.h", "ATMARP_SETENTRY", 0x61e3},
+ {"linux/atmarp.h", "ATMARP_ENCAP", 0x61e5},
+ {"linux/atmsvc.h", "ATMSIGD_CTRL", 0x61f0},
+ {"linux/atmdev.h", "ATM_SETSC", 0x61f1},
+ {"linux/atmdev.h", "ATM_SETBACKEND", 0x61f2},
+ {"linux/coda.h", "CIOC_KERNEL_VERSION", 0x630a},
+ {"linux/comstats.h", "COM_GETPORTSTATS", 0x631e},
+ {"linux/comstats.h", "COM_CLRPORTSTATS", 0x631f},
+ {"linux/comstats.h", "COM_GETBRDSTATS", 0x6320},
+ {"linux/comstats.h", "COM_READPORT", 0x6328},
+ {"linux/comstats.h", "COM_READBOARD", 0x6329},
+ {"linux/comstats.h", "COM_READPANEL", 0x632a},
+ {"linux/devfs_fs.h", "DEVFSDIOC_GET_PROTO_REV", 0x6400},
+ {"linux/video_decoder.h", "DECODER_GET_CAPABILITIES", 0x6401},
+ {"linux/devfs_fs.h", "DEVFSDIOC_SET_EVENT_MASK", 0x6402},
+ {"linux/video_decoder.h", "DECODER_GET_STATUS", 0x6402},
+ {"linux/devfs_fs.h", "DEVFSDIOC_RELEASE_EVENT_QUEUE", 0x6403},
+ {"linux/video_decoder.h", "DECODER_SET_NORM", 0x6403},
+ {"linux/devfs_fs.h", "DEVFSDIOC_SET_DEBUG_MASK", 0x6404},
+ {"linux/video_decoder.h", "DECODER_SET_INPUT", 0x6404},
+ {"linux/video_decoder.h", "DECODER_SET_OUTPUT", 0x6405},
+ {"linux/video_decoder.h", "DECODER_ENABLE_OUTPUT", 0x6406},
+ {"linux/video_decoder.h", "DECODER_SET_PICTURE", 0x6407},
+ {"linux/video_decoder.h", "DECODER_DUMP", 0x64c0},
+ {"linux/video_encoder.h", "ENCODER_GET_CAPABILITIES", 0x6501},
+ {"linux/video_encoder.h", "ENCODER_SET_NORM", 0x6502},
+ {"linux/video_encoder.h", "ENCODER_SET_INPUT", 0x6503},
+ {"linux/video_encoder.h", "ENCODER_SET_OUTPUT", 0x6504},
+ {"linux/video_encoder.h", "ENCODER_ENABLE_OUTPUT", 0x6505},
+ {"linux/ext2_fs.h", "EXT2_IOC_GETFLAGS", 0x6601},
+ {"linux/ext3_fs.h", "EXT3_IOC_GETFLAGS", 0x6601},
+ {"asm/ioctls.h", "FIOCLEX", 0x6601},
+ {"linux/ext2_fs.h", "EXT2_IOC_SETFLAGS", 0x6602},
+ {"linux/ext3_fs.h", "EXT3_IOC_SETFLAGS", 0x6602},
+ {"asm/ioctls.h", "FIONCLEX", 0x6602},
+ {"linux/ext3_fs.h", "EXT3_IOC_GETVERSION", 0x6603},
+ {"linux/ext3_fs.h", "EXT3_IOC_SETVERSION", 0x6604},
+ {"linux/ext3_fs.h", "EXT3_IOC_WAIT_FOR_READONLY", 0x6663},
+ {"asm/sockios.h", "FIOGETOWN", 0x667b},
+ {"asm/sockios.h", "FIOSETOWN", 0x667c},
+ {"asm/ioctls.h", "FIOASYNC", 0x667d},
+ {"asm/ioctls.h", "FIONBIO", 0x667e},
+ {"asm/ioctls.h", "FIONREAD", 0x667f},
+ {"linux/i2o-dev.h", "I2OGETIOPS", 0x6900},
+ {"linux/i2o-dev.h", "I2OHRTGET", 0x6901},
+ {"linux/i2o-dev.h", "I2OLCTGET", 0x6902},
+ {"linux/i2o-dev.h", "I2OPARMSET", 0x6903},
+ {"linux/i2o-dev.h", "I2OPARMGET", 0x6904},
+ {"linux/i2o-dev.h", "I2OSWDL", 0x6905},
+ {"linux/i2o-dev.h", "I2OSWUL", 0x6906},
+ {"linux/i2o-dev.h", "I2OSWDEL", 0x6907},
+ {"linux/i2o-dev.h", "I2OVALIDATE", 0x6908},
+ {"linux/i2o-dev.h", "I2OHTML", 0x6909},
+ {"linux/i2o-dev.h", "I2OEVTREG", 0x690a},
+ {"linux/i2o-dev.h", "I2OEVTGET", 0x690b},
+ {"linux/i8k.h", "I8K_BIOS_VERSION", 0x6980},
+ {"linux/i8k.h", "I8K_MACHINE_ID", 0x6981},
+ {"linux/i8k.h", "I8K_POWER_STATUS", 0x6982},
+ {"linux/i8k.h", "I8K_FN_STATUS", 0x6983},
+ {"linux/i8k.h", "I8K_GET_TEMP", 0x6984},
+ {"linux/i8k.h", "I8K_GET_SPEED", 0x6985},
+ {"linux/i8k.h", "I8K_GET_FAN", 0x6986},
+ {"linux/i8k.h", "I8K_SET_FAN", 0x6987},
+ {"linux/joystick.h", "JSIOCGVERSION", 0x6a01},
+ {"linux/joystick.h", "JSIOCGAXES", 0x6a11},
+ {"linux/joystick.h", "JSIOCGBUTTONS", 0x6a12},
+ {"linux/joystick.h", "JSIOCSCORR", 0x6a21},
+ {"linux/joystick.h", "JSIOCGCORR", 0x6a22},
+ {"linux/joystick.h", "JSIOCSAXMAP", 0x6a31},
+ {"linux/joystick.h", "JSIOCGAXMAP", 0x6a32},
+ {"linux/joystick.h", "JSIOCSBTNMAP", 0x6a33},
+ {"linux/joystick.h", "JSIOCGBTNMAP", 0x6a34},
+ {"linux/udf_fs_i.h", "UDF_GETEASIZE", 0x6c40},
+ {"linux/udf_fs_i.h", "UDF_GETEABLOCK", 0x6c41},
+ {"linux/udf_fs_i.h", "UDF_GETVOLIDENT", 0x6c42},
+ {"linux/udf_fs_i.h", "UDF_RELOCATE_BLOCKS", 0x6c43},
+ {"linux/soundcard.h", "SNDCTL_MIDI_PRETIME", 0x6d00},
+ {"linux/synclink.h", "MGSL_IOCSPARAMS", 0x6d00},
+ {"linux/mtio.h", "MTIOCTOP", 0x6d01},
+ {"linux/soundcard.h", "SNDCTL_MIDI_MPUMODE", 0x6d01},
+ {"linux/synclink.h", "MGSL_IOCGPARAMS", 0x6d01},
+ {"linux/mtio.h", "MTIOCGET", 0x6d02},
+ {"linux/soundcard.h", "SNDCTL_MIDI_MPUCMD", 0x6d02},
+ {"linux/synclink.h", "MGSL_IOCSTXIDLE", 0x6d02},
+ {"linux/mtio.h", "MTIOCPOS", 0x6d03},
+ {"linux/synclink.h", "MGSL_IOCGTXIDLE", 0x6d03},
+ {"linux/mtio.h", "MTIOCGETCONFIG", 0x6d04},
+ {"linux/synclink.h", "MGSL_IOCTXENABLE", 0x6d04},
+ {"linux/mtio.h", "MTIOCSETCONFIG", 0x6d05},
+ {"linux/synclink.h", "MGSL_IOCRXENABLE", 0x6d05},
+ {"linux/mtio.h", "MTIOCRDFTSEG", 0x6d06},
+ {"linux/synclink.h", "MGSL_IOCTXABORT", 0x6d06},
+ {"linux/mtio.h", "MTIOCWRFTSEG", 0x6d07},
+ {"linux/synclink.h", "MGSL_IOCGSTATS", 0x6d07},
+ {"linux/mtio.h", "MTIOCVOLINFO", 0x6d08},
+ {"linux/synclink.h", "MGSL_IOCWAITEVENT", 0x6d08},
+ {"linux/mtio.h", "MTIOCGETSIZE", 0x6d09},
+ {"linux/synclink.h", "MGSL_IOCLOOPTXDONE", 0x6d09},
+ {"linux/mtio.h", "MTIOCFTFORMAT", 0x6d0a},
+ {"linux/mtio.h", "MTIOCFTCMD", 0x6d0b},
+ {"linux/synclink.h", "MGSL_IOCCLRMODCOUNT", 0x6d0f},
+ {"linux/zftape.h", "MTIOC_ZFTAPE_GETBLKSZ", 0x6d68},
+ {"linux/ncp_fs.h", "NCP_IOC_NCPREQUEST", 0x6e01},
+ {"linux/ncp_fs.h", "NCP_IOC_GETMOUNTUID", 0x6e02},
+ {"linux/ncp_fs.h", "NCP_IOC_GETMOUNTUID2", 0x6e02},
+ {"linux/ncp_fs.h", "NCP_IOC_CONN_LOGGED_IN", 0x6e03},
+ {"linux/ncp_fs.h", "NCP_IOC_GET_FS_INFO", 0x6e04},
+ {"linux/ncp_fs.h", "NCP_IOC_GET_FS_INFO_V2", 0x6e04},
+ {"linux/ncp_fs.h", "NCP_IOC_SIGN_INIT", 0x6e05},
+ {"linux/ncp_fs.h", "NCP_IOC_SIGN_WANTED", 0x6e06},
+ {"linux/ncp_fs.h", "NCP_IOC_SET_SIGN_WANTED", 0x6e06},
+ {"linux/ncp_fs.h", "NCP_IOC_LOCKUNLOCK", 0x6e07},
+ {"linux/ncp_fs.h", "NCP_IOC_GETROOT", 0x6e08},
+ {"linux/ncp_fs.h", "NCP_IOC_SETROOT", 0x6e08},
+ {"linux/ncp_fs.h", "NCP_IOC_GETOBJECTNAME", 0x6e09},
+ {"linux/ncp_fs.h", "NCP_IOC_SETOBJECTNAME", 0x6e09},
+ {"linux/ncp_fs.h", "NCP_IOC_GETPRIVATEDATA", 0x6e0a},
+ {"linux/ncp_fs.h", "NCP_IOC_SETPRIVATEDATA", 0x6e0a},
+ {"linux/ncp_fs.h", "NCP_IOC_GETCHARSETS", 0x6e0b},
+ {"linux/ncp_fs.h", "NCP_IOC_SETCHARSETS", 0x6e0b},
+ {"linux/ncp_fs.h", "NCP_IOC_GETDENTRYTTL", 0x6e0c},
+ {"linux/ncp_fs.h", "NCP_IOC_SETDENTRYTTL", 0x6e0c},
+ {"linux/matroxfb.h", "MATROXFB_SET_OUTPUT_CONNECTION", 0x6ef8},
+ {"linux/matroxfb.h", "MATROXFB_GET_OUTPUT_CONNECTION", 0x6ef8},
+ {"linux/matroxfb.h", "MATROXFB_GET_AVAILABLE_OUTPUTS", 0x6ef9},
+ {"linux/matroxfb.h", "MATROXFB_SET_OUTPUT_MODE", 0x6efa},
+ {"linux/matroxfb.h", "MATROXFB_GET_OUTPUT_MODE", 0x6efa},
+ {"linux/matroxfb.h", "MATROXFB_GET_ALL_OUTPUTS", 0x6efb},
+ {"linux/rtc.h", "RTC_AIE_ON", 0x7001},
+ {"linux/rtc.h", "RTC_AIE_OFF", 0x7002},
+ {"linux/intermezzo_fs.h", "PRESTO_GETMOUNT", 0x7003},
+ {"linux/rtc.h", "RTC_UIE_ON", 0x7003},
+ {"linux/intermezzo_fs.h", "PRESTO_SETPID", 0x7004},
+ {"linux/rtc.h", "RTC_UIE_OFF", 0x7004},
+ {"linux/rtc.h", "RTC_PIE_ON", 0x7005},
+ {"linux/intermezzo_fs.h", "PRESTO_CLOSE_JOURNALF", 0x7006},
+ {"linux/rtc.h", "RTC_PIE_OFF", 0x7006},
+ {"linux/intermezzo_fs.h", "PRESTO_SET_FSETROOT", 0x7007},
+ {"linux/rtc.h", "RTC_ALM_SET", 0x7007},
+ {"linux/intermezzo_fs.h", "PRESTO_CLEAR_FSETROOT", 0x7008},
+ {"linux/rtc.h", "RTC_ALM_READ", 0x7008},
+ {"linux/intermezzo_fs.h", "PRESTO_SETOPT", 0x7009},
+ {"linux/rtc.h", "RTC_RD_TIME", 0x7009},
+ {"linux/intermezzo_fs.h", "PRESTO_GETOPT", 0x700a},
+ {"linux/rtc.h", "RTC_SET_TIME", 0x700a},
+ {"linux/intermezzo_fs.h", "PRESTO_GET_KMLSIZE", 0x700b},
+ {"linux/rtc.h", "RTC_IRQP_READ", 0x700b},
+ {"linux/intermezzo_fs.h", "PRESTO_GET_RECNO", 0x700c},
+ {"linux/rtc.h", "RTC_IRQP_SET", 0x700c},
+ {"linux/rtc.h", "RTC_EPOCH_READ", 0x700d},
+ {"linux/rtc.h", "RTC_EPOCH_SET", 0x700e},
+ {"linux/rtc.h", "RTC_WIE_ON", 0x700f},
+ {"linux/rtc.h", "RTC_WKALM_SET", 0x700f},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_SETATTR", 0x7010},
+ {"linux/rtc.h", "RTC_WIE_OFF", 0x7010},
+ {"linux/rtc.h", "RTC_WKALM_RD", 0x7010},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_CREATE", 0x7011},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_LINK", 0x7012},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_UNLINK", 0x7013},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_SYMLINK", 0x7014},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_MKDIR", 0x7015},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_RMDIR", 0x7016},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_MKNOD", 0x7017},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_RENAME", 0x7018},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_CLOSE", 0x701a},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_IOPEN", 0x701b},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_SETEXTATTR", 0x701c},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_DELEXTATTR", 0x701d},
+ {"linux/intermezzo_fs.h", "PRESTO_MARK", 0x7020},
+ {"linux/intermezzo_fs.h", "PRESTO_RELEASE_PERMIT", 0x7021},
+ {"linux/intermezzo_fs.h", "PRESTO_CLEAR_ALL_FSETROOTS", 0x7022},
+ {"linux/intermezzo_fs.h", "PRESTO_BACKFETCH_LML", 0x7023},
+ {"linux/intermezzo_fs.h", "PRESTO_REINT", 0x7024},
+ {"linux/intermezzo_fs.h", "PRESTO_CANCEL_LML", 0x7025},
+ {"linux/intermezzo_fs.h", "PRESTO_RESET_FSET", 0x7026},
+ {"linux/intermezzo_fs.h", "PRESTO_COMPLETE_CLOSES", 0x7027},
+ {"linux/intermezzo_fs.h", "PRESTO_REINT_BEGIN", 0x7030},
+ {"linux/intermezzo_fs.h", "PRESTO_DO_REINT", 0x7031},
+ {"linux/intermezzo_fs.h", "PRESTO_REINT_END", 0x7032},
+ {"linux/nvram.h", "NVRAM_INIT", 0x7040},
+ {"linux/nvram.h", "NVRAM_SETCKS", 0x7041},
+ {"linux/ppdev.h", "PPSETMODE", 0x7080},
+ {"linux/ppdev.h", "PPRSTATUS", 0x7081},
+ {"linux/ppdev.h", "PPRCONTROL", 0x7083},
+ {"linux/ppdev.h", "PPWCONTROL", 0x7084},
+ {"linux/ppdev.h", "PPRDATA", 0x7085},
+ {"linux/ppdev.h", "PPWDATA", 0x7086},
+ {"linux/ppdev.h", "PPCLAIM", 0x708b},
+ {"linux/ppdev.h", "PPRELEASE", 0x708c},
+ {"linux/ppdev.h", "PPYIELD", 0x708d},
+ {"linux/ppdev.h", "PPFCONTROL", 0x708e},
+ {"linux/ppdev.h", "PPEXCL", 0x708f},
+ {"linux/ppdev.h", "PPDATADIR", 0x7090},
+ {"linux/ppdev.h", "PPNEGOT", 0x7091},
+ {"linux/ppdev.h", "PPWCTLONIRQ", 0x7092},
+ {"linux/ppdev.h", "PPCLRIRQ", 0x7093},
+ {"linux/ppdev.h", "PPSETPHASE", 0x7094},
+ {"linux/ppdev.h", "PPGETTIME", 0x7095},
+ {"linux/ppdev.h", "PPSETTIME", 0x7096},
+ {"linux/ppdev.h", "PPGETMODES", 0x7097},
+ {"linux/ppdev.h", "PPGETMODE", 0x7098},
+ {"linux/ppdev.h", "PPGETPHASE", 0x7099},
+ {"linux/ppdev.h", "PPGETFLAGS", 0x709a},
+ {"linux/ppdev.h", "PPSETFLAGS", 0x709b},
+ {"linux/serio.h", "SPIOCSTYPE", 0x7101},
+ {"linux/telephony.h", "PHONE_CAPABILITIES", 0x7180},
+ {"linux/telephony.h", "PHONE_CAPABILITIES_LIST", 0x7181},
+ {"linux/telephony.h", "PHONE_CAPABILITIES_CHECK", 0x7182},
+ {"linux/telephony.h", "PHONE_RING", 0x7183},
+ {"linux/telephony.h", "PHONE_HOOKSTATE", 0x7184},
+ {"linux/telephony.h", "PHONE_MAXRINGS", 0x7185},
+ {"linux/telephony.h", "PHONE_RING_CADENCE", 0x7186},
+ {"linux/telephony.h", "OLD_PHONE_RING_START", 0x7187},
+ {"linux/telephony.h", "PHONE_RING_START", 0x7187},
+ {"linux/telephony.h", "PHONE_RING_STOP", 0x7188},
+ {"linux/telephony.h", "PHONE_REC_CODEC", 0x7189},
+ {"linux/telephony.h", "PHONE_REC_START", 0x718a},
+ {"linux/telephony.h", "PHONE_REC_STOP", 0x718b},
+ {"linux/telephony.h", "PHONE_REC_DEPTH", 0x718c},
+ {"linux/telephony.h", "PHONE_FRAME", 0x718d},
+ {"linux/telephony.h", "PHONE_REC_VOLUME", 0x718e},
+ {"linux/telephony.h", "PHONE_REC_LEVEL", 0x718f},
+ {"linux/telephony.h", "PHONE_PLAY_CODEC", 0x7190},
+ {"linux/telephony.h", "PHONE_PLAY_START", 0x7191},
+ {"linux/telephony.h", "PHONE_PLAY_STOP", 0x7192},
+ {"linux/telephony.h", "PHONE_PLAY_DEPTH", 0x7193},
+ {"linux/telephony.h", "PHONE_PLAY_VOLUME", 0x7194},
+ {"linux/telephony.h", "PHONE_PLAY_LEVEL", 0x7195},
+ {"linux/telephony.h", "PHONE_DTMF_READY", 0x7196},
+ {"linux/telephony.h", "PHONE_GET_DTMF", 0x7197},
+ {"linux/telephony.h", "PHONE_GET_DTMF_ASCII", 0x7198},
+ {"linux/telephony.h", "PHONE_DTMF_OOB", 0x7199},
+ {"linux/telephony.h", "PHONE_EXCEPTION", 0x719a},
+ {"linux/telephony.h", "PHONE_PLAY_TONE", 0x719b},
+ {"linux/telephony.h", "PHONE_SET_TONE_ON_TIME", 0x719c},
+ {"linux/telephony.h", "PHONE_SET_TONE_OFF_TIME", 0x719d},
+ {"linux/telephony.h", "PHONE_GET_TONE_ON_TIME", 0x719e},
+ {"linux/telephony.h", "PHONE_GET_TONE_OFF_TIME", 0x719f},
+ {"linux/telephony.h", "PHONE_GET_TONE_STATE", 0x71a0},
+ {"linux/telephony.h", "PHONE_BUSY", 0x71a1},
+ {"linux/telephony.h", "PHONE_RINGBACK", 0x71a2},
+ {"linux/telephony.h", "PHONE_DIALTONE", 0x71a3},
+ {"linux/telephony.h", "PHONE_CPT_STOP", 0x71a4},
+ {"linux/telephony.h", "PHONE_PSTN_SET_STATE", 0x71a4},
+ {"linux/telephony.h", "PHONE_PSTN_GET_STATE", 0x71a5},
+ {"linux/telephony.h", "PHONE_WINK_DURATION", 0x71a6},
+ {"linux/telephony.h", "PHONE_QUERY_CODEC", 0x71a7},
+ {"linux/telephony.h", "PHONE_PSTN_LINETEST", 0x71a8},
+ {"linux/telephony.h", "PHONE_VAD", 0x71a9},
+ {"linux/telephony.h", "PHONE_WINK", 0x71aa},
+ {"linux/ixjuser.h", "IXJCTL_DSP_RESET", 0x71c0},
+ {"linux/ixjuser.h", "IXJCTL_CARDTYPE", 0x71c1},
+ {"linux/ixjuser.h", "IXJCTL_SERIAL", 0x71c2},
+ {"linux/ixjuser.h", "IXJCTL_DSP_TYPE", 0x71c3},
+ {"linux/ixjuser.h", "IXJCTL_DSP_VERSION", 0x71c4},
+ {"linux/ixjuser.h", "IXJCTL_DSP_IDLE", 0x71c5},
+ {"linux/ixjuser.h", "IXJCTL_TESTRAM", 0x71c6},
+ {"linux/ixjuser.h", "IXJCTL_SET_FILTER", 0x71c7},
+ {"linux/ixjuser.h", "IXJCTL_GET_FILTER_HIST", 0x71c8},
+ {"linux/ixjuser.h", "IXJCTL_INIT_TONE", 0x71c9},
+ {"linux/ixjuser.h", "IXJCTL_TONE_CADENCE", 0x71ca},
+ {"linux/ixjuser.h", "IXJCTL_AEC_START", 0x71cb},
+ {"linux/ixjuser.h", "IXJCTL_AEC_STOP", 0x71cc},
+ {"linux/ixjuser.h", "IXJCTL_AEC_GET_LEVEL", 0x71cd},
+ {"linux/ixjuser.h", "IXJCTL_SET_LED", 0x71ce},
+ {"linux/ixjuser.h", "IXJCTL_MIXER", 0x71cf},
+ {"linux/ixjuser.h", "IXJCTL_DAA_COEFF_SET", 0x71d0},
+ {"linux/ixjuser.h", "IXJCTL_PORT", 0x71d1},
+ {"linux/ixjuser.h", "IXJCTL_DAA_AGAIN", 0x71d2},
+ {"linux/ixjuser.h", "IXJCTL_PSTN_LINETEST", 0x71d3},
+ {"linux/ixjuser.h", "IXJCTL_CID", 0x71d4},
+ {"linux/ixjuser.h", "IXJCTL_POTS_PSTN", 0x71d5},
+ {"linux/ixjuser.h", "IXJCTL_FILTER_CADENCE", 0x71d6},
+ {"linux/ixjuser.h", "IXJCTL_PLAY_CID", 0x71d7},
+ {"linux/ixjuser.h", "IXJCTL_VMWI", 0x71d8},
+ {"linux/ixjuser.h", "IXJCTL_CIDCW", 0x71d9},
+ {"linux/ixjuser.h", "IXJCTL_VERSION", 0x71da},
+ {"linux/telephony.h", "PHONE_REC_VOLUME_LINEAR", 0x71db},
+ {"linux/telephony.h", "PHONE_PLAY_VOLUME_LINEAR", 0x71dc},
+ {"linux/ixjuser.h", "IXJCTL_SET_FILTER_RAW", 0x71dd},
+ {"linux/ixjuser.h", "IXJCTL_HZ", 0x71e0},
+ {"linux/ixjuser.h", "IXJCTL_RATE", 0x71e1},
+ {"linux/ixjuser.h", "IXJCTL_FRAMES_READ", 0x71e2},
+ {"linux/ixjuser.h", "IXJCTL_FRAMES_WRITTEN", 0x71e3},
+ {"linux/ixjuser.h", "IXJCTL_READ_WAIT", 0x71e4},
+ {"linux/ixjuser.h", "IXJCTL_WRITE_WAIT", 0x71e5},
+ {"linux/ixjuser.h", "IXJCTL_DRYBUFFER_READ", 0x71e6},
+ {"linux/ixjuser.h", "IXJCTL_DRYBUFFER_CLEAR", 0x71e7},
+ {"linux/ixjuser.h", "IXJCTL_DTMF_PRESCALE", 0x71e8},
+ {"linux/ixjuser.h", "IXJCTL_SIGCTL", 0x71e9},
+ {"linux/ixjuser.h", "IXJCTL_SC_RXG", 0x71ea},
+ {"linux/ixjuser.h", "IXJCTL_SC_TXG", 0x71eb},
+ {"linux/ixjuser.h", "IXJCTL_INTERCOM_START", 0x71fd},
+ {"linux/ixjuser.h", "IXJCTL_INTERCOM_STOP", 0x71fe},
+ {"linux/msdos_fs.h", "VFAT_IOCTL_READDIR_BOTH", 0x7201},
+ {"linux/msdos_fs.h", "VFAT_IOCTL_READDIR_SHORT", 0x7202},
+ {"asm/sockios.h", "SIOCATMARK", 0x7307},
+ {"asm/sockios.h", "SIOCSPGRP", 0x7308},
+ {"asm/sockios.h", "SIOCGPGRP", 0x7309},
+ {"linux/cdk.h", "STL_BINTR", 0x7314},
+ {"linux/cdk.h", "STL_BSTART", 0x7315},
+ {"linux/cdk.h", "STL_BSTOP", 0x7316},
+ {"linux/cdk.h", "STL_BRESET", 0x7317},
+ {"linux/cdk.h", "STL_GETPFLAG", 0x7350},
+ {"linux/cdk.h", "STL_SETPFLAG", 0x7351},
+ {"asm/ioctls.h", "TIOCGETP", 0x7408},
+ {"asm/ioctls.h", "TIOCSETP", 0x7409},
+ {"asm/ioctls.h", "TIOCSETN", 0x740a},
+ {"asm/ioctls.h", "TIOCSETC", 0x7411},
+ {"asm/ioctls.h", "TIOCGETC", 0x7412},
+ {"asm/ioctls.h", "TCGETS", 0x7413},
+ {"asm/ioctls.h", "TCSETS", 0x7414},
+ {"asm/ioctls.h", "TCSETSW", 0x7415},
+ {"asm/ioctls.h", "TCSETSF", 0x7416},
+ {"asm/ioctls.h", "TCGETA", 0x7417},
+ {"asm/ioctls.h", "TCSETA", 0x7418},
+ {"asm/ioctls.h", "TCSETAW", 0x7419},
+ {"asm/ioctls.h", "TCSETAF", 0x741c},
+ {"asm/ioctls.h", "TCSBRK", 0x741d},
+ {"asm/ioctls.h", "TCXONC", 0x741e},
+ {"asm/ioctls.h", "TCFLSH", 0x741f},
+ {"linux/if_ppp.h", "PPPIOCGCHAN", 0x7437},
+ {"linux/if_ppp.h", "PPPIOCATTCHAN", 0x7438},
+ {"linux/if_ppp.h", "PPPIOCDISCONN", 0x7439},
+ {"linux/if_ppp.h", "PPPIOCCONNECT", 0x743a},
+ {"linux/if_ppp.h", "PPPIOCSMRRU", 0x743b},
+ {"linux/if_ppp.h", "PPPIOCDETACH", 0x743c},
+ {"linux/if_ppp.h", "PPPIOCATTACH", 0x743d},
+ {"linux/if_ppp.h", "PPPIOCNEWUNIT", 0x743e},
+ {"linux/if_ppp.h", "PPPIOCGIDLE", 0x743f},
+ {"linux/if_ppp.h", "PPPIOCSDEBUG", 0x7440},
+ {"linux/if_ppp.h", "PPPIOCGDEBUG", 0x7441},
+ {"linux/if_ppp.h", "PPPIOCSACTIVE", 0x7446},
+ {"linux/if_ppp.h", "PPPIOCSPASS", 0x7447},
+ {"linux/if_ppp.h", "PPPIOCSNPMODE", 0x744b},
+ {"linux/if_ppp.h", "PPPIOCGNPMODE", 0x744c},
+ {"linux/if_ppp.h", "PPPIOCSCOMPRESS", 0x744d},
+ {"linux/if_ppp.h", "PPPIOCXFERUNIT", 0x744e},
+ {"linux/if_ppp.h", "PPPIOCSXASYNCMAP", 0x744f},
+ {"linux/if_ppp.h", "PPPIOCGXASYNCMAP", 0x7450},
+ {"linux/if_ppp.h", "PPPIOCSMAXCID", 0x7451},
+ {"linux/if_ppp.h", "PPPIOCSMRU", 0x7452},
+ {"linux/if_ppp.h", "PPPIOCGMRU", 0x7453},
+ {"linux/if_ppp.h", "PPPIOCSRASYNCMAP", 0x7454},
+ {"linux/if_ppp.h", "PPPIOCGRASYNCMAP", 0x7455},
+ {"linux/if_ppp.h", "PPPIOCGUNIT", 0x7456},
+ {"linux/if_ppp.h", "PPPIOCSASYNCMAP", 0x7457},
+ {"linux/if_ppp.h", "PPPIOCGASYNCMAP", 0x7458},
+ {"linux/if_ppp.h", "PPPIOCSFLAGS", 0x7459},
+ {"linux/if_ppp.h", "PPPIOCGFLAGS", 0x745a},
+ {"linux/jffs.h", "JFFS_PRINT_HASH", 0x745a},
+ {"linux/jffs.h", "JFFS_PRINT_TREE", 0x745b},
+ {"linux/jffs.h", "JFFS_GET_STATUS", 0x745c},
+ {"asm/ioctls.h", "TIOCSWINSZ", 0x7467},
+ {"asm/ioctls.h", "TIOCGWINSZ", 0x7468},
+ {"asm/ioctls.h", "TIOCSTART", 0x746e},
+ {"asm/ioctls.h", "TIOCSTOP", 0x746f},
+ {"asm/ioctls.h", "TIOCOUTQ", 0x7473},
+ {"asm/ioctls.h", "TIOCGLTC", 0x7474},
+ {"asm/ioctls.h", "TIOCSLTC", 0x7475},
+ {"asm/ioctls.h", "TIOCSPGRP", 0x7476},
+ {"asm/ioctls.h", "TIOCGPGRP", 0x7477},
+ {"linux/isdn_ppp.h", "PPPIOCGCALLINFO", 0x7480},
+ {"linux/isdn_ppp.h", "PPPIOCBUNDLE", 0x7481},
+ {"linux/isdn_ppp.h", "PPPIOCGMPFLAGS", 0x7482},
+ {"linux/isdn_ppp.h", "PPPIOCSMPFLAGS", 0x7483},
+ {"linux/isdn_ppp.h", "PPPIOCSMPMTU", 0x7484},
+ {"linux/isdn_ppp.h", "PPPIOCSMPMRU", 0x7485},
+ {"linux/isdn_ppp.h", "PPPIOCGCOMPRESSORS", 0x7486},
+ {"linux/isdn_ppp.h", "PPPIOCSCOMPRESSOR", 0x7487},
+ {"linux/isdn_ppp.h", "PPPIOCGIFNAME", 0x7488},
+ {"linux/toshiba.h", "TOSH_SMM", 0x7490},
+ {"linux/smb_fs.h", "SMB_IOC_GETMOUNTUID", 0x7501},
+ {"linux/smb_fs.h", "SMB_IOC_NEWCONN", 0x7502},
+ {"linux/smb_fs.h", "SMB_IOC_GETMOUNTUID32", 0x7503},
+ {"linux/sonypi.h", "SONYPI_IOCGBRT", 0x7600},
+ {"linux/sonypi.h", "SONYPI_IOCSBRT", 0x7600},
+ {"linux/ext2_fs.h", "EXT2_IOC_GETVERSION", 0x7601},
+ {"linux/ext3_fs.h", "EXT3_IOC_GETVERSION_OLD", 0x7601},
+ {"linux/videodev.h", "VIDIOCGCAP", 0x7601},
+ {"linux/ext2_fs.h", "EXT2_IOC_SETVERSION", 0x7602},
+ {"linux/ext3_fs.h", "EXT3_IOC_SETVERSION_OLD", 0x7602},
+ {"linux/sonypi.h", "SONYPI_IOCGBAT1CAP", 0x7602},
+ {"linux/videodev.h", "VIDIOCGCHAN", 0x7602},
+ {"linux/sonypi.h", "SONYPI_IOCGBAT1REM", 0x7603},
+ {"linux/videodev.h", "VIDIOCSCHAN", 0x7603},
+ {"linux/sonypi.h", "SONYPI_IOCGBAT2CAP", 0x7604},
+ {"linux/videodev.h", "VIDIOCGTUNER", 0x7604},
+ {"linux/sonypi.h", "SONYPI_IOCGBAT2REM", 0x7605},
+ {"linux/videodev.h", "VIDIOCSTUNER", 0x7605},
+ {"linux/videodev.h", "VIDIOCGPICT", 0x7606},
+ {"linux/sonypi.h", "SONYPI_IOCGBATFLAGS", 0x7607},
+ {"linux/videodev.h", "VIDIOCSPICT", 0x7607},
+ {"linux/sonypi.h", "SONYPI_IOCGBLUE", 0x7608},
+ {"linux/videodev.h", "VIDIOCCAPTURE", 0x7608},
+ {"linux/sonypi.h", "SONYPI_IOCSBLUE", 0x7609},
+ {"linux/videodev.h", "VIDIOCGWIN", 0x7609},
+ {"linux/videodev.h", "VIDIOCSWIN", 0x760a},
+ {"linux/videodev.h", "VIDIOCGFBUF", 0x760b},
+ {"linux/videodev.h", "VIDIOCSFBUF", 0x760c},
+ {"linux/videodev.h", "VIDIOCKEY", 0x760d},
+ {"linux/videodev.h", "VIDIOCGFREQ", 0x760e},
+ {"linux/videodev.h", "VIDIOCSFREQ", 0x760f},
+ {"linux/videodev.h", "VIDIOCGAUDIO", 0x7610},
+ {"linux/videodev.h", "VIDIOCSAUDIO", 0x7611},
+ {"linux/videodev.h", "VIDIOCSYNC", 0x7612},
+ {"linux/videodev.h", "VIDIOCMCAPTURE", 0x7613},
+ {"linux/videodev.h", "VIDIOCGMBUF", 0x7614},
+ {"linux/videodev.h", "VIDIOCGUNIT", 0x7615},
+ {"linux/videodev.h", "VIDIOCGCAPTURE", 0x7616},
+ {"linux/videodev.h", "VIDIOCSCAPTURE", 0x7617},
+ {"linux/videodev.h", "VIDIOCSPLAYMODE", 0x7618},
+ {"linux/videodev.h", "VIDIOCSWRITEMODE", 0x7619},
+ {"linux/videodev.h", "VIDIOCGPLAYINFO", 0x761a},
+ {"linux/videodev.h", "VIDIOCSMICROCODE", 0x761b},
+ {"linux/videodev.h", "VIDIOCGVBIFMT", 0x761c},
+ {"linux/videodev.h", "VIDIOCSVBIFMT", 0x761d},
+ {"linux/meye.h", "MEYEIOC_G_PARAMS", 0x76c0},
+ {"linux/meye.h", "MEYEIOC_S_PARAMS", 0x76c1},
+ {"linux/meye.h", "MEYEIOC_QBUF_CAPT", 0x76c2},
+ {"linux/meye.h", "MEYEIOC_SYNC", 0x76c3},
+ {"linux/meye.h", "MEYEIOC_STILLCAPT", 0x76c4},
+ {"linux/meye.h", "MEYEIOC_STILLJCAPT", 0x76c5},
+ {"linux/dn.h", "SIOCSNETADDR", 0x89e0},
+ {"linux/dn.h", "OSIOCSNETADDR", 0x89e0},
+ {"linux/dn.h", "SIOCGNETADDR", 0x89e1},
+ {"linux/dn.h", "OSIOCGNETADDR", 0x89e1},
+ {"linux/auto_fs.h", "AUTOFS_IOC_READY", 0x9360},
+ {"linux/auto_fs.h", "AUTOFS_IOC_FAIL", 0x9361},
+ {"linux/auto_fs.h", "AUTOFS_IOC_CATATONIC", 0x9362},
+ {"linux/auto_fs.h", "AUTOFS_IOC_PROTOVER", 0x9363},
+ {"linux/auto_fs.h", "AUTOFS_IOC_SETTIMEOUT", 0x9364},
+ {"linux/auto_fs.h", "AUTOFS_IOC_EXPIRE", 0x9365},
+ {"linux/auto_fs4.h", "AUTOFS_IOC_EXPIRE_MULTI", 0x9366},
+ {"linux/nbd.h", "NBD_SET_SOCK", 0xab00},
+ {"linux/nbd.h", "NBD_SET_BLKSIZE", 0xab01},
+ {"linux/nbd.h", "NBD_SET_SIZE", 0xab02},
+ {"linux/nbd.h", "NBD_DO_IT", 0xab03},
+ {"linux/nbd.h", "NBD_CLEAR_SOCK", 0xab04},
+ {"linux/nbd.h", "NBD_CLEAR_QUE", 0xab05},
+ {"linux/nbd.h", "NBD_PRINT_DEBUG", 0xab06},
+ {"linux/nbd.h", "NBD_SET_SIZE_BLOCKS", 0xab07},
+ {"linux/nbd.h", "NBD_DISCONNECT", 0xab08},
+ {"linux/raw.h", "RAW_SETBIND", 0xac00},
+ {"linux/raw.h", "RAW_GETBIND", 0xac01},
+ {"linux/if_pppox.h", "PPPOEIOCSFWD", 0xb100},
+ {"linux/if_pppox.h", "PPPOEIOCDFWD", 0xb101},
+ {"linux/reiserfs_fs.h", "REISERFS_IOC_UNPACK", 0xcd01},
+ {"linux/lvm.h", "VG_CREATE_OLD", 0xfe00},
+ {"linux/lvm.h", "VG_REMOVE", 0xfe01},
+ {"linux/lvm.h", "VG_EXTEND", 0xfe03},
+ {"linux/lvm.h", "VG_REDUCE", 0xfe04},
+ {"linux/lvm.h", "VG_STATUS", 0xfe05},
+ {"linux/lvm.h", "VG_STATUS_GET_COUNT", 0xfe06},
+ {"linux/lvm.h", "VG_STATUS_GET_NAMELIST", 0xfe07},
+ {"linux/lvm.h", "VG_SET_EXTENDABLE", 0xfe08},
+ {"linux/lvm.h", "VG_RENAME", 0xfe09},
+ {"linux/lvm.h", "VG_CREATE", 0xfe0a},
+ {"linux/lvm.h", "LV_CREATE", 0xfe20},
+ {"linux/lvm.h", "LV_REMOVE", 0xfe21},
+ {"linux/lvm.h", "LV_ACTIVATE", 0xfe22},
+ {"linux/lvm.h", "LV_DEACTIVATE", 0xfe23},
+ {"linux/lvm.h", "LV_EXTEND", 0xfe24},
+ {"linux/lvm.h", "LV_REDUCE", 0xfe25},
+ {"linux/lvm.h", "LV_STATUS_BYNAME", 0xfe26},
+ {"linux/lvm.h", "LV_STATUS_BYINDEX", 0xfe27},
+ {"linux/lvm.h", "LV_SET_ACCESS", 0xfe28},
+ {"linux/lvm.h", "LV_SET_ALLOCATION", 0xfe29},
+ {"linux/lvm.h", "LV_SET_STATUS", 0xfe2a},
+ {"linux/lvm.h", "LE_REMAP", 0xfe2b},
+ {"linux/lvm.h", "LV_SNAPSHOT_USE_RATE", 0xfe2c},
+ {"linux/lvm.h", "LV_STATUS_BYDEV", 0xfe2e},
+ {"linux/lvm.h", "LV_RENAME", 0xfe2f},
+ {"linux/lvm.h", "LV_BMAP", 0xfe30},
+ {"linux/lvm.h", "PV_STATUS", 0xfe40},
+ {"linux/lvm.h", "PV_CHANGE", 0xfe41},
+ {"linux/lvm.h", "PV_FLUSH", 0xfe42},
+ {"linux/lvm.h", "PE_LOCK_UNLOCK", 0xfe50},
+ {"linux/lvm.h", "LVM_GET_IOP_VERSION", 0xfe98},
+ {"linux/lvm.h", "LVM_RESET", 0xfe99},
+ {"linux/lvm.h", "LVM_LOCK_LVM", 0xff00},
diff --git a/strace/linux/alpha/signalent.h b/strace/linux/alpha/signalent.h
new file mode 100644
index 0000000..2b507e3
--- /dev/null
+++ b/strace/linux/alpha/signalent.h
@@ -0,0 +1,32 @@
+ "SIG_0", /* 0 */
+ "SIGHUP", /* 1 */
+ "SIGINT", /* 2 */
+ "SIGQUIT", /* 3 */
+ "SIGILL", /* 4 */
+ "SIGTRAP", /* 5 */
+ "SIGABRT", /* 6 */
+ "SIGEMT", /* 7 */
+ "SIGFPE", /* 8 */
+ "SIGKILL", /* 9 */
+ "SIGBUS", /* 10 */
+ "SIGSEGV", /* 11 */
+ "SIGSYS", /* 12 */
+ "SIGPIPE", /* 13 */
+ "SIGALRM", /* 14 */
+ "SIGTERM", /* 15 */
+ "SIGURG", /* 16 */
+ "SIGSTOP", /* 17 */
+ "SIGTSTP", /* 18 */
+ "SIGCONT", /* 19 */
+ "SIGCHLD", /* 20 */
+ "SIGTTIN", /* 21 */
+ "SIGTTOU", /* 22 */
+ "SIGIO", /* 23 */
+ "SIGXCPU", /* 24 */
+ "SIGXFSZ", /* 25 */
+ "SIGVTALRM", /* 26 */
+ "SIGPROF", /* 27 */
+ "SIGWINCH", /* 28 */
+ "SIGINFO", /* 29 */
+ "SIGUSR1", /* 30 */
+ "SIGUSR2", /* 31 */
diff --git a/strace/linux/alpha/syscallent.h b/strace/linux/alpha/syscallent.h
new file mode 100644
index 0000000..98c17ad
--- /dev/null
+++ b/strace/linux/alpha/syscallent.h
@@ -0,0 +1,469 @@
+/*
+ * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
+ * Copyright (c) 1993, 1994, 1995 Rick Sladkey <jrs@world.std.com>
+ * 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.
+ *
+ * $Id: syscallent.h,v 1.15 2005/05/09 08:02:05 roland Exp $
+ */
+
+ { 6, 0, printargs, "osf_syscall" }, /* 0, not implemented */
+ { 1, TP, sys_exit, "exit" }, /* 1 */
+ { 0, TP, sys_fork, "fork" }, /* 2 */
+ { 3, TF, sys_read, "read" }, /* 3 */
+ { 3, TF, sys_write, "write" }, /* 4 */
+ { 5, 0, printargs, "osf_old_open" }, /* 5, not implemented */
+ { 1, 0, sys_close, "close" }, /* 6 */
+ { 4, TP, sys_osf_wait4, "osf_wait4" }, /* 7 */
+ { 5, 0, printargs, "osf_old_creat" }, /* 8, not implemented */
+ { 2, TF, sys_link, "link" }, /* 9 */
+ { 1, TF, sys_unlink, "unlink" }, /* 10 */
+ { 5, 0, printargs, "osf_execve" }, /* 11, not implemented */
+ { 1, TF, sys_chdir, "chdir" }, /* 12 */
+ { 1, TF, sys_fchdir, "fchdir" }, /* 13 */
+ { 3, TF, sys_mknod, "mknod" }, /* 14 */
+ { 2, TF, sys_chmod, "chmod" }, /* 15 */
+ { 3, TF, sys_chown, "chown" }, /* 16 */
+ { 1, 0, sys_brk, "brk" }, /* 17 */
+ { 5, 0, printargs, "osf_getfsstat" }, /* 18, not implemented */
+ { 3, TF, sys_lseek, "lseek" }, /* 19 */
+ { 0, 0, sys_getpid, "getxpid" }, /* 20 */
+ { 4, 0, printargs, "osf_mount" }, /* 21 */
+ { 2, 0, sys_umount2, "umount" }, /* 22 */
+ { 1, 0, sys_setuid, "setuid" }, /* 23 */
+ { 0, 0, sys_getuid, "getxuid" }, /* 24 */
+ { 5, 0, printargs, "exec_with_loader" }, /* 25, not implemented */
+ { 4, 0, sys_ptrace, "ptrace" }, /* 26 */
+ { 5, 0, printargs, "osf_nrecvmsg" }, /* 27, not implemented */
+ { 5, 0, printargs, "osf_nsendmsg" }, /* 28, not implemented */
+ { 5, 0, printargs, "osf_nrecvfrom" }, /* 29, not implemented */
+ { 5, 0, printargs, "osf_naccept" }, /* 30, not implemented */
+ { 5, 0, printargs, "osf_ngetpeername" }, /* 31, not implemented */
+ { 5, 0, printargs, "osf_ngetsockname" }, /* 32, not implemented */
+ { 2, TF, sys_access, "access" }, /* 33 */
+ { 5, 0, printargs, "osf_chflags" }, /* 34, not implemented */
+ { 5, 0, printargs, "osf_fchflags" }, /* 35, not implemented */
+ { 0, 0, sys_sync, "sync" }, /* 36 */
+ { 2, TS, sys_kill, "kill" }, /* 37 */
+ { 5, 0, printargs, "osf_old_stat" }, /* 38, not implemented */
+ { 2, 0, sys_setpgid, "setpgid" }, /* 39 */
+ { 5, 0, printargs, "osf_old_lstat" }, /* 40, not implemented */
+ { 1, 0, sys_dup, "dup" }, /* 41 */
+ { 1, 0, sys_pipe, "pipe" }, /* 42 */
+ { 5, 0, printargs, "osf_set_program_attributes" }, /* 43 */
+ { 5, 0, printargs, "osf_profil" }, /* 44, not implemented */
+ { 3, TF, sys_open, "open" }, /* 45 */
+ { 5, 0, printargs, "osf_old_sigaction" }, /* 46, not implemented */
+ { 1, 0, sys_getgid, "getxgid" }, /* 47 */
+ { 3, TS, printargs, "osf_sigprocmask" }, /* 48 */
+ { 5, 0, printargs, "osf_getlogin" }, /* 49, not implemented */
+ { 5, 0, printargs, "osf_setlogin" }, /* 50, not implemented */
+ { 1, TF, sys_acct, "acct" }, /* 51 */
+ { 1, TS, sys_sigpending, "sigpending" }, /* 52 */
+ { 5, 0, printargs, "SYS_53" }, /* 53 */
+ { 3, 0, sys_ioctl, "ioctl" }, /* 54 */
+ { 5, 0, printargs, "osf_reboot" }, /* 55, not implemented */
+ { 5, 0, printargs, "osf_revoke" }, /* 56, not implemented */
+ { 2, TF, sys_symlink, "symlink" }, /* 57 */
+ { 3, TF, sys_readlink, "readlink" }, /* 58 */
+ { 3, TF|TP, sys_execve, "execve" }, /* 59 */
+ { 1, 0, sys_umask, "umask" }, /* 60 */
+ { 1, TF, sys_chroot, "chroot" }, /* 61 */
+ { 5, 0, printargs, "osf_old_fstat" }, /* 62, not implemented */
+ { 0, 0, sys_getpgrp, "getpgrp" }, /* 63 */
+ { 0, 0, sys_getpagesize, "getpagesize" }, /* 64 */
+ { 5, 0, printargs, "osf_mremap" }, /* 65, not implemented */
+ { 0, TP, sys_fork, "vfork" }, /* 66 */
+ { 2, TF, sys_stat, "stat" }, /* 67 */
+ { 2, TF, sys_lstat, "lstat" }, /* 68 */
+ { 5, 0, printargs, "osf_sbrk" }, /* 69, not implemented */
+ { 5, 0, printargs, "osf_sstk" }, /* 70, not implemented */
+ { 6, 0, sys_mmap, "mmap" }, /* 71 */
+ { 5, 0, printargs, "osf_old_vadvise" }, /* 72, not implemented */
+ { 2, 0, sys_munmap, "munmap" }, /* 73 */
+ { 3, 0, sys_mprotect, "mprotect" }, /* 74 */
+ { 0, 0, sys_madvise, "madvise" }, /* 75 */
+ { 0, 0, sys_vhangup, "vhangup" }, /* 76 */
+ { 5, 0, printargs, "osf_kmodcall" }, /* 77, not implemented */
+ { 5, 0, printargs, "osf_mincore" }, /* 78, not implemented */
+ { 2, 0, sys_getgroups, "getgroups" }, /* 79 */
+ { 2, 0, sys_setgroups, "setgroups" }, /* 80 */
+ { 5, 0, printargs, "osf_old_getpgrp" }, /* 81, not implemented */
+ { 2, 0, sys_setpgrp, "setpgrp" }, /* 82 */
+ { 3, 0, sys_osf_setitimer, "osf_setitimer" }, /* 83 */
+ { 5, 0, printargs, "osf_old_wait" }, /* 84, not implemented */
+ { 5, 0, printargs, "osf_table" }, /* 85, not implemented */
+ { 2, 0, sys_osf_getitimer, "osf_getitimer" }, /* 86 */
+ { 2, 0, sys_gethostname, "gethostname" }, /* 87 */
+ { 2, 0, sys_sethostname, "sethostname" }, /* 88 */
+ { 0, 0, sys_getdtablesize, "getdtablesize" }, /* 89 */
+ { 2, 0, sys_dup2, "dup2" }, /* 90 */
+ { 2, 0, sys_fstat, "fstat" }, /* 91 */
+ { 3, 0, sys_fcntl, "fcntl" }, /* 92 */
+ { 5, 0, sys_osf_select, "osf_select" }, /* 93 */
+ { 3, 0, sys_poll, "poll" }, /* 94 */
+ { 1, 0, sys_fsync, "fsync" }, /* 95 */
+ { 3, 0, sys_setpriority, "setpriority" }, /* 96 */
+ { 3, TN, sys_socket, "socket" }, /* 97 */
+ { 3, TN, sys_connect, "connect" }, /* 98 */
+ { 3, TN, sys_accept, "accept" }, /* 99 */
+ { 2, 0, sys_getpriority, "osf_getpriority" }, /* 100 */
+ { 4, TN, sys_send, "send" }, /* 101 */
+ { 4, TN, sys_recv, "recv" }, /* 102 */
+ { 1, TS, sys_sigreturn, "sigreturn" }, /* 103 */
+ { 3, TN, sys_bind, "bind" }, /* 104 */
+ { 5, TN, sys_setsockopt, "setsockopt" }, /* 105 */
+ { 2, TN, sys_listen, "listen" }, /* 106 */
+ { 5, 0, printargs, "osf_plock" }, /* 107, not implemented */
+ { 5, 0, printargs, "osf_old_sigvec" }, /* 108, not implemented */
+ { 5, 0, printargs, "osf_old_sigblock" }, /* 109, not implemented */
+ { 5, 0, printargs, "osf_old_sigsetmask" }, /* 110, not implemented */
+ { 3, TS, sys_sigsuspend, "sigsuspend" }, /* 111 */
+ { 5, 0, printargs, "sigstack" }, /* 112 */
+ { 3, TN, sys_recvmsg, "recvmsg" }, /* 113 */
+ { 3, TN, sys_sendmsg, "sendmsg" }, /* 114 */
+ { 5, 0, printargs, "osf_old_vtrace" }, /* 115, not implemented */
+ { 2, 0, sys_osf_gettimeofday, "osf_gettimeofday" }, /* 116 */
+ { 2, 0, sys_osf_getrusage, "osf_getrusage" }, /* 117 */
+ { 5, TN, sys_getsockopt, "getsockopt" }, /* 118 */
+ { 5, 0, printargs, "SYS_119" }, /* 119 */
+ { 3, 0, sys_readv, "readv" }, /* 120 */
+ { 3, 0, sys_writev, "writev" }, /* 121 */
+ { 2, 0, sys_osf_settimeofday, "osf_settimeofday" }, /* 122 */
+ { 3, 0, sys_fchown, "fchown" }, /* 123 */
+ { 2, 0, sys_fchmod, "fchmod" }, /* 124 */
+ { 6, TN, sys_recvfrom, "recvfrom" }, /* 125 */
+ { 2, 0, sys_setreuid, "setreuid" }, /* 126 */
+ { 2, 0, sys_setregid, "setregid" }, /* 127 */
+ { 2, TF, sys_rename, "rename" }, /* 128 */
+ { 2, TF, sys_truncate, "truncate" }, /* 129 */
+ { 2, 0, sys_ftruncate, "ftruncate" }, /* 130 */
+ { 2, 0, sys_flock, "flock" }, /* 131 */
+ { 1, 0, sys_setgid, "setgid" }, /* 132 */
+ { 6, TN, sys_sendto, "sendto" }, /* 133 */
+ { 2, TN, sys_shutdown, "shutdown" }, /* 134 */
+ { 4, TN, sys_socketpair, "socketpair" }, /* 135 */
+ { 2, TF, sys_mkdir, "mkdir" }, /* 136 */
+ { 1, TF, sys_rmdir, "rmdir" }, /* 137 */
+ { 2, 0, sys_osf_utimes, "osf_utimes" }, /* 138 */
+ { 5, 0, printargs, "osf_old_sigreturn" }, /* 139 */
+ { 5, 0, printargs, "osf_adjtime" }, /* 140, not implemented */
+ { 3, TN, sys_getpeername, "getpeername" }, /* 141 */
+ { 5, 0, printargs, "osf_gethostid" }, /* 142, not implemented */
+ { 5, 0, printargs, "osf_sethostid" }, /* 143, not implemented */
+ { 2, 0, sys_getrlimit, "getrlimit" }, /* 144 */
+ { 2, 0, sys_setrlimit, "setrlimit" }, /* 145 */
+ { 5, 0, printargs, "osf_old_killpg" }, /* 146, not implemented */
+ { 0, 0, sys_setsid, "setsid" }, /* 147 */
+ { 4, 0, sys_quotactl, "quotactl" }, /* 148 */
+ { 5, 0, printargs, "osf_oldquota" }, /* 149, not implemented */
+ { 3, TN, sys_getsockname, "getsockname" }, /* 150 */
+ { 5, 0, printargs, "SYS_151" }, /* 151 */
+ { 5, 0, printargs, "SYS_152" }, /* 152 */
+ { 5, 0, printargs, "osf_pid_block" }, /* 153, not implemented */
+ { 5, 0, printargs, "osf_pid_unblock" }, /* 154, not implemented */
+ { 5, 0, printargs, "SYS_155" }, /* 155 */
+ { 3, TS, sys_sigaction, "sigaction" }, /* 156 */
+ { 5, 0, printargs, "osf_sigwaitprim" }, /* 157, not implemented */
+ { 5, 0, printargs, "osf_nfssvc" }, /* 158, not implemented */
+ { 4, 0, printargs, "osf_getdirentries" }, /* 159 */
+ { 3, 0, osf_statfs, "osf_statfs" }, /* 160 */
+ { 3, 0, osf_fstatfs, "osf_fstatfs" }, /* 161 */
+ { 5, 0, printargs, "SYS_162" }, /* 162 */
+ { 5, 0, printargs, "osf_asynch_daemon" }, /* 163, not implemented */
+ { 5, 0, printargs, "osf_getfh" }, /* 164, not implemented */
+ { 2, 0, printargs, "osf_getdomainname" }, /* 165 */
+ { 2, 0, sys_setdomainname, "setdomainname" }, /* 166 */
+ { 5, 0, printargs, "SYS_167" }, /* 167 */
+ { 5, 0, printargs, "SYS_168" }, /* 168 */
+ { 5, 0, printargs, "osf_exportfs" }, /* 169, not implemented */
+ { 5, 0, printargs, "SYS_170" }, /* 170 */
+ { 5, 0, printargs, "SYS_171" }, /* 171 */
+ { 5, 0, printargs, "SYS_172" }, /* 172 */
+ { 5, 0, printargs, "SYS_173" }, /* 173 */
+ { 5, 0, printargs, "SYS_174" }, /* 174 */
+ { 5, 0, printargs, "SYS_175" }, /* 175 */
+ { 5, 0, printargs, "SYS_176" }, /* 176 */
+ { 5, 0, printargs, "SYS_177" }, /* 177 */
+ { 5, 0, printargs, "SYS_178" }, /* 178 */
+ { 5, 0, printargs, "SYS_179" }, /* 179 */
+ { 5, 0, printargs, "SYS_180" }, /* 180 */
+ { 5, 0, printargs, "osf_alt_plock" }, /* 181, not implemented */
+ { 5, 0, printargs, "SYS_182" }, /* 182 */
+ { 5, 0, printargs, "SYS_183" }, /* 183 */
+ { 5, 0, printargs, "osf_getmnt" }, /* 184, not implemented */
+ { 5, 0, printargs, "SYS_185" }, /* 185 */
+ { 5, 0, printargs, "SYS_186" }, /* 186 */
+ { 5, 0, printargs, "osf_alt_sigpending" }, /* 187, not implemented */
+ { 5, 0, printargs, "osf_alt_setsid" }, /* 188, not implemented */
+ { 5, 0, printargs, "SYS_189" }, /* 189 */
+ { 5, 0, printargs, "SYS_190" }, /* 190 */
+ { 5, 0, printargs, "SYS_191" }, /* 191 */
+ { 5, 0, printargs, "SYS_192" }, /* 192 */
+ { 5, 0, printargs, "SYS_193" }, /* 193 */
+ { 5, 0, printargs, "SYS_194" }, /* 194 */
+ { 5, 0, printargs, "SYS_195" }, /* 195 */
+ { 5, 0, printargs, "SYS_196" }, /* 196 */
+ { 5, 0, printargs, "SYS_197" }, /* 197 */
+ { 5, 0, printargs, "SYS_198" }, /* 198 */
+ { 4, 0, printargs, "osf_swapon" }, /* 199 */
+ { 4, TI, sys_msgctl, "msgctl" }, /* 200 */
+ { 4, TI, sys_msgget, "msgget" }, /* 201 */
+ { 4, TI, sys_msgrcv, "msgrcv" }, /* 202 */
+ { 4, TI, sys_msgsnd, "msgsnd" }, /* 203 */
+ { 4, TI, sys_semctl, "semctl" }, /* 204 */
+ { 4, TI, sys_semget, "semget" }, /* 205 */
+ { 4, TI, printargs, "semop" }, /* 206 */
+ { 1, 0, printargs, "osf_utsname" }, /* 207 */
+ { 3, TF, sys_chown, "lchown" }, /* 208 */
+ { 3, TI, printargs, "osf_shmat" }, /* 209 */
+ { 4, TI, sys_shmctl, "shmctl" }, /* 210 */
+ { 4, TI, sys_shmdt, "shmdt" }, /* 211 */
+ { 4, TI, sys_shmget, "shmget" }, /* 212 */
+ { 5, 0, printargs, "osf_mvalid" }, /* 213, not implemented */
+ { 5, 0, printargs, "osf_getaddressconf" }, /* 214, not implemented */
+ { 5, 0, printargs, "osf_msleep" }, /* 215, not implemented */
+ { 5, 0, printargs, "osf_mwakeup" }, /* 216, not implemented */
+ { 3, 0, sys_msync, "msync" }, /* 217 */
+ { 5, 0, printargs, "osf_signal" }, /* 218, not implemented */
+ { 5, 0, printargs, "osf_utc_gettime" }, /* 219, not implemented */
+ { 5, 0, printargs, "osf_utc_adjtime" }, /* 220, not implemented */
+ { 5, 0, printargs, "SYS_221" }, /* 221 */
+ { 5, 0, printargs, "osf_security" }, /* 222, not implemented */
+ { 5, 0, printargs, "osf_kloadcall" }, /* 223, not implemented */
+ { 5, 0, printargs, "SYS_224" }, /* 224 */
+ { 5, 0, printargs, "SYS_225" }, /* 225 */
+ { 5, 0, printargs, "SYS_226" }, /* 226 */
+ { 5, 0, printargs, "SYS_227" }, /* 227 */
+ { 5, 0, printargs, "SYS_228" }, /* 228 */
+ { 5, 0, printargs, "SYS_229" }, /* 229 */
+ { 5, 0, printargs, "SYS_230" }, /* 230 */
+ { 5, 0, printargs, "SYS_231" }, /* 231 */
+ { 5, 0, printargs, "SYS_232" }, /* 232 */
+ { 1, 0, sys_getpgid, "getpgid" }, /* 233 */
+ { 1, 0, sys_getsid, "getsid" }, /* 234 */
+ { 5, 0, sys_sigaltstack, "sigaltstack" }, /* 235 */
+ { 5, 0, printargs, "osf_waitid" }, /* 236, not implemented */
+ { 5, 0, printargs, "osf_priocntlset" }, /* 237, not implemented */
+ { 5, 0, printargs, "osf_sigsendset" }, /* 238, not implemented */
+ { 5, 0, printargs, "osf_set_speculative" }, /* 239, not implemented */
+ { 5, 0, printargs, "osf_msfs_syscall" }, /* 240, not implemented */
+ { 5, 0, printargs, "osf_sysinfo" }, /* 241 */
+ { 5, 0, printargs, "osf_uadmin" }, /* 242, not implemented */
+ { 5, 0, printargs, "osf_fuser" }, /* 243, not implemented */
+ { 2, 0, printargs, "osf_proplist_syscall" }, /* 244 */
+ { 5, 0, printargs, "osf_ntp_adjtime" }, /* 245, not implemented */
+ { 5, 0, printargs, "osf_ntp_gettime" }, /* 246, not implemented */
+ { 5, 0, printargs, "osf_pathconf" }, /* 247, not implemented */
+ { 5, 0, printargs, "osf_fpathconf" }, /* 248, not implemented */
+ { 5, 0, printargs, "SYS_249" }, /* 249 */
+ { 5, 0, printargs, "osf_uswitch" }, /* 250, not implemented */
+ { 2, 0, printargs, "osf_usleep_thread" }, /* 251 */
+ { 5, 0, printargs, "osf_audcntl" }, /* 252, not implemented */
+ { 5, 0, printargs, "osf_audgen" }, /* 253, not implemented */
+ { 5, 0, sys_sysfs, "sysfs" }, /* 254 */
+ { 5, 0, printargs, "osf_subsysinfo" }, /* 255, not implemented */
+ { 5, 0, printargs, "osf_getsysinfo" }, /* 256 */
+ { 5, 0, printargs, "osf_setsysinfo" }, /* 257 */
+ { 5, 0, printargs, "osf_afs_syscall" }, /* 258, not implemented */
+ { 5, 0, printargs, "osf_swapctl" }, /* 259, not implemented */
+ { 5, 0, printargs, "osf_memcntl" }, /* 260, not implemented */
+ { 5, 0, printargs, "osf_fdatasync" }, /* 261, not implemented */
+ { 5, 0, printargs, "SYS_262" }, /* 262 */
+ { 5, 0, printargs, "SYS_263" }, /* 263 */
+ { 5, 0, printargs, "SYS_264" }, /* 264 */
+ { 5, 0, printargs, "SYS_265" }, /* 265 */
+ { 5, 0, printargs, "SYS_266" }, /* 266 */
+ { 5, 0, printargs, "SYS_267" }, /* 267 */
+ { 5, 0, printargs, "SYS_268" }, /* 268 */
+ { 5, 0, printargs, "SYS_269" }, /* 269 */
+ { 5, 0, printargs, "SYS_270" }, /* 270 */
+ { 5, 0, printargs, "SYS_271" }, /* 271 */
+ { 5, 0, printargs, "SYS_272" }, /* 272 */
+ { 5, 0, printargs, "SYS_273" }, /* 273 */
+ { 5, 0, printargs, "SYS_274" }, /* 274 */
+ { 5, 0, printargs, "SYS_275" }, /* 275 */
+ { 5, 0, printargs, "SYS_276" }, /* 276 */
+ { 5, 0, printargs, "SYS_277" }, /* 277 */
+ { 5, 0, printargs, "SYS_278" }, /* 278 */
+ { 5, 0, printargs, "SYS_279" }, /* 279 */
+ { 5, 0, printargs, "SYS_280" }, /* 280 */
+ { 5, 0, printargs, "SYS_281" }, /* 281 */
+ { 5, 0, printargs, "SYS_282" }, /* 282 */
+ { 5, 0, printargs, "SYS_283" }, /* 283 */
+ { 5, 0, printargs, "SYS_284" }, /* 284 */
+ { 5, 0, printargs, "SYS_285" }, /* 285 */
+ { 5, 0, printargs, "SYS_286" }, /* 286 */
+ { 5, 0, printargs, "SYS_287" }, /* 287 */
+ { 5, 0, printargs, "SYS_288" }, /* 288 */
+ { 5, 0, printargs, "SYS_289" }, /* 289 */
+ { 5, 0, printargs, "SYS_290" }, /* 290 */
+ { 5, 0, printargs, "SYS_291" }, /* 291 */
+ { 5, 0, printargs, "SYS_292" }, /* 292 */
+ { 5, 0, printargs, "SYS_293" }, /* 293 */
+ { 5, 0, printargs, "SYS_294" }, /* 294 */
+ { 5, 0, printargs, "SYS_295" }, /* 295 */
+ { 5, 0, printargs, "SYS_296" }, /* 296 */
+ { 5, 0, printargs, "SYS_297" }, /* 297 */
+ { 5, 0, printargs, "SYS_298" }, /* 298 */
+ { 5, 0, printargs, "SYS_299" }, /* 299 */
+ { 0, 0, sys_bdflush, "bdflush" }, /* 300 */
+ { 3, 0, printargs, "sethae" }, /* 301 */
+ { 5, TF, sys_mount, "mount" }, /* 302 */
+ { 1, 0, sys_adjtimex, "adjtimex32" }, /* 303 */
+ { 1, 0, sys_swapoff, "swapoff" }, /* 304 */
+ { 3, 0, sys_getdents, "getdents" }, /* 305 */
+ { 2, 0, sys_create_module, "create_module" }, /* 306 */
+ { 4, 0, sys_init_module, "init_module" }, /* 307 */
+ { 1, 0, sys_delete_module, "delete_module" }, /* 308 */
+ { 1, 0, sys_get_kernel_syms, "get_kernel_syms" }, /* 309 */
+ { 3, 0, sys_syslog, "syslog" }, /* 310 */
+ { 3, 0, sys_reboot, "reboot" }, /* 311 */
+ { 5, TP, sys_clone, "clone" }, /* 312 */
+ { 1, 0, sys_uselib, "uselib" }, /* 313 */
+ { 2, 0, sys_mlock, "mlock" }, /* 314 */
+ { 2, 0, sys_munlock, "munlock" }, /* 315 */
+ { 1, 0, sys_mlockall, "mlockall" }, /* 316 */
+ { 0, 0, sys_munlockall, "munlockall" }, /* 317 */
+ { 1, 0, sys_sysinfo, "sysinfo" }, /* 318 */
+ { 1, 0, sys_sysctl, "sysctl" }, /* 319 */
+ { 0, 0, sys_idle, "idle" }, /* 320 */
+ { 1, 0, sys_umount, "oldumount" }, /* 321 */
+ { 1, 0, sys_swapon, "swapon" }, /* 322 */
+ { 1, 0, sys_times, "times" }, /* 323 */
+ { 1, 0, sys_personality, "personality" }, /* 324 */
+ { 1, 0, sys_setfsuid, "setfsuid" }, /* 325 */
+ { 1, 0, sys_setfsgid, "setfsgid" }, /* 326 */
+ { 2, 0, sys_ustat, "ustat" }, /* 327 */
+ { 2, TF, sys_statfs, "statfs" }, /* 328 */
+ { 2, 0, sys_fstatfs, "fstatfs" }, /* 329 */
+ { 2, 0, sys_sched_setparam, "sched_setparam" }, /* 330 */
+ { 2, 0, sys_sched_getparam, "sched_getparam" }, /* 331 */
+ { 3, 0, sys_sched_setscheduler, "sched_setscheduler" }, /* 332 */
+ { 2, 0, sys_sched_getscheduler, "sched_getscheduler" }, /* 333 */
+ { 0, 0, sys_sched_yield, "sched_yield" }, /* 334 */
+ { 1, 0, sys_sched_get_priority_max,"sched_get_priority_max" }, /* 335 */
+ { 1, 0, sys_sched_get_priority_min,"sched_get_priority_min" }, /* 336 */
+ { 2, 0, sys_sched_rr_get_interval,"sched_rr_get_interval" }, /* 337 */
+ { 5, 0, sys_afs_syscall, "afs_syscall" }, /* 338 */
+ { 1, 0, sys_uname, "uname" }, /* 339 */
+ { 2, 0, sys_nanosleep, "nanosleep" }, /* 340 */
+ { 5, 0, sys_mremap, "mremap" }, /* 341 */
+ { 5, 0, printargs, "nfsservctl" }, /* 342 */
+ { 3, 0, sys_setresuid, "setresuid" }, /* 343 */
+ { 3, 0, sys_getresuid, "getresuid" }, /* 344 */
+ { 5, 0, printargs, "pciconfig_read" }, /* 345 */
+ { 5, 0, printargs, "pciconfig_write" }, /* 346 */
+ { 5, 0, sys_query_module, "query_module" }, /* 347 */
+ { 5, 0, printargs, "prctl" }, /* 348 */
+ { 5, TF, sys_pread, "pread" }, /* 349 */
+ { 5, TF, sys_pwrite, "pwrite" }, /* 350 */
+ { 1, TS, printargs, "rt_sigreturn" }, /* 351 */
+ { 4, TS, sys_rt_sigaction, "rt_sigaction" }, /* 352 */
+ { 4, TS, sys_rt_sigprocmask, "rt_sigprocmask" }, /* 353 */
+ { 2, TS, sys_rt_sigpending, "rt_sigpending" }, /* 354 */
+ { 4, TS, sys_rt_sigtimedwait, "rt_sigtimedwait" }, /* 355 */
+ { 3, TS, sys_rt_sigqueueinfo, "rt_sigqueueinfo" }, /* 356 */
+ { 2, TS, sys_rt_sigsuspend, "rt_sigsuspend" }, /* 357 */
+ { 5, 0, sys_select, "select" }, /* 358 */
+ { 2, 0, sys_gettimeofday, "gettimeofday" }, /* 359 */
+ { 3, 0, sys_settimeofday, "settimeofday" }, /* 360 */
+ { 2, 0, sys_getitimer, "getitimer" }, /* 361 */
+ { 3, 0, sys_setitimer, "setitimer" }, /* 362 */
+ { 2, 0, sys_utimes, "utimes" }, /* 363 */
+ { 2, 0, sys_getrusage, "getrusage" }, /* 364 */
+ { 4, TP, sys_wait4, "wait4" }, /* 365 */
+ { 1, 0, sys_adjtimex, "adjtimex" }, /* 366 */
+ { 2, 0, sys_getcwd, "getcwd" }, /* 367 */
+ { 2, 0, sys_capget, "capget" }, /* 368 */
+ { 2, 0, sys_capset, "capset" }, /* 369 */
+ { 4, TF, sys_sendfile, "sendfile" }, /* 370 */
+ { 3, 0, printargs, "setresgid" }, /* 371 */
+ { 3, 0, printargs, "getresgid" }, /* 372 */
+ { 4, 0, printargs, "dipc" }, /* 373, not implemented */
+ { 2, TF, printargs, "pivot_root" }, /* 374 */
+ { 3, 0, printargs, "mincore" }, /* 375 */
+ { 4, 0, printargs, "pciconfig_iobase" }, /* 376 */
+ { 4, 0, sys_getdents64, "getdents64" }, /* 377 */
+ { 0, 0, printargs, "gettid" }, /* 378 */
+ { 4, 0, sys_readahead, "readahead" }, /* 379 */
+ { 5, 0, printargs, "SYS_380" }, /* 380 */
+ { 2, TS, sys_kill, "tkill" }, /* 381 */
+ { 5, TF, sys_setxattr, "setxattr" }, /* 382 */
+ { 5, TF, sys_setxattr, "lsetxattr" }, /* 383 */
+ { 5, 0, sys_fsetxattr, "fsetxattr" }, /* 384 */
+ { 4, TF, sys_getxattr, "getxattr" }, /* 385 */
+ { 4, TF, sys_getxattr, "lgetxattr" }, /* 386 */
+ { 4, 0, sys_fgetxattr, "fgetxattr" }, /* 387 */
+ { 3, TF, sys_listxattr, "listxattr" }, /* 388 */
+ { 3, TF, sys_listxattr, "llistxattr" }, /* 389 */
+ { 3, 0, sys_flistxattr, "flistxattr" }, /* 390 */
+ { 2, TF, sys_removexattr, "removexattr" }, /* 391 */
+ { 2, TF, sys_removexattr, "lremovexattr" }, /* 392 */
+ { 2, 0, sys_fremovexattr, "fremovexattr" }, /* 393 */
+ { 5, 0, sys_futex, "futex" }, /* 394 */
+ { 3, 0, sys_sched_setaffinity, "sched_setaffinity" }, /* 395 */
+ { 3, 0, sys_sched_getaffinity, "sched_getaffinity" }, /* 396 */
+ { 5, 0, printargs, "tuxcall" }, /* 397 */
+ { 2, 0, sys_io_setup, "io_setup" }, /* 398 */
+ { 1, 0, sys_io_destroy, "io_destroy" }, /* 399 */
+ { 5, 0, sys_io_getevents, "io_getevents" }, /* 400 */
+ { 3, 0, sys_io_submit, "io_submit" }, /* 401 */
+ { 3, 0, sys_io_cancel, "io_cancel" }, /* 402 */
+ { 5, 0, printargs, "SYS_403" }, /* 403 */
+ { 5, 0, printargs, "SYS_404" }, /* 404 */
+ { 1, TP, sys_exit, "exit_group" }, /* 405 */
+ { 4, 0, printargs, "lookup_dcookie" }, /* 406 */
+ { 1, 0, sys_epoll_create, "epoll_create" }, /* 407 */
+ { 4, 0, sys_epoll_ctl, "epoll_ctl" }, /* 408 */
+ { 4, 0, sys_epoll_wait, "epoll_wait" }, /* 409 */
+ { 5, 0, sys_remap_file_pages, "remap_file_pages" }, /* 410 */
+ { 1, 0, printargs, "set_tid_address" }, /* 411 */
+ { 0, 0, printargs, "restart_syscall" }, /* 412 */
+ { 4, 0, printargs, "fadvise" }, /* 413 */
+ { 3, 0, sys_timer_create, "timer_create" }, /* 414 */
+ { 4, 0, sys_timer_settime, "timer_settime" }, /* 415 */
+ { 2, 0, sys_timer_gettime, "timer_gettime" }, /* 416 */
+ { 1, 0, sys_timer_getoverrun, "timer_getoverrun" }, /* 417 */
+ { 1, 0, sys_timer_delete, "timer_delete" }, /* 418 */
+ { 2, 0, sys_clock_settime, "clock_settime" }, /* 419 */
+ { 2, 0, sys_clock_gettime, "clock_gettime" }, /* 420 */
+ { 2, 0, sys_clock_getres, "clock_getres" }, /* 421 */
+ { 4, 0, sys_clock_nanosleep, "clock_nanosleep" }, /* 422 */
+ { 5, TI, sys_semtimedop, "semtimedop" }, /* 423 */
+ { 3, TS, sys_tgkill, "tgkill" }, /* 424 */
+ { 2, TF, sys_stat64, "stat64" }, /* 425 */
+ { 2, TF, sys_lstat64, "lstat64" }, /* 426 */
+ { 2, 0, sys_fstat64, "fstat64" }, /* 427 */
+ { 5, 0, printargs, "vserver" }, /* 428 ??? */
+ { 5, 0, printargs, "mbind" }, /* 429 ??? */
+ { 5, 0, printargs, "get_mempolicy" }, /* 430 ??? */
+ { 5, 0, printargs, "set_mempolicy" }, /* 431 ??? */
+ { 4, 0, sys_mq_open, "mq_open" }, /* 432 */
+ { 1, 0, sys_mq_unlink, "mq_unlink" }, /* 433 */
+ { 5, 0, sys_mq_timedsend, "mq_timedsend" }, /* 434 */
+ { 5, 0, sys_mq_timedreceive, "mq_timedreceive" }, /* 435 */
+ { 2, 0, sys_mq_notify, "mq_notify" }, /* 436 */
+ { 3, 0, sys_mq_getsetattr, "mq_getsetattr" }, /* 437 */
+ { 4, 0, printargs, "waitid" }, /* 438 */
diff --git a/strace/linux/dummy.h b/strace/linux/dummy.h
new file mode 100644
index 0000000..a56cd05
--- /dev/null
+++ b/strace/linux/dummy.h
@@ -0,0 +1,226 @@
+/*
+ * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
+ * Copyright (c) 1993, 1994, 1995 Rick Sladkey <jrs@world.std.com>
+ * 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.
+ *
+ * $Id: dummy.h,v 1.17 2004/04/16 21:48:44 roland Exp $
+ */
+
+/* still unfinished */
+#define sys_ioperm printargs
+#define sys_syslog printargs
+#define sys_iopl printargs
+#define sys_vm86old printargs
+#define sys_get_kernel_syms printargs
+#define sys_bdflush printargs
+#define sys_sysfs printargs
+#define sys_afs_syscall printargs
+
+/* machine-specific */
+#ifndef I386
+#define sys_modify_ldt printargs
+#define sys_get_thread_area printargs
+#define sys_set_thread_area printargs
+#endif
+
+#define sys_sched_yield printargs
+#define sys_sched_get_priority_max sys_sched_get_priority_min
+#define sys_sched_rr_get_interval printargs
+
+/* like another call */
+#define sys_uselib sys_chdir
+#define sys_umount sys_chdir
+#define sys_swapon sys_chdir
+#define sys_swapoff sys_chdir
+#define sys_delete_module sys_chdir
+#define sys_fchdir sys_close
+#define sys_setfsuid sys_setuid
+#define sys_setfsgid sys_setgid
+#define sys_nanosleep sys_adjtime
+#define sys_acct sys_chdir
+#define sys_fdatasync sys_close
+#define sys_mlock sys_munmap
+#define sys_munlock sys_munmap
+#define sys_clock_getres sys_clock_gettime
+#define sys_mq_unlink sys_unlink
+
+/* printargs does the right thing */
+#define sys_setup printargs
+#define sys_getpid printargs
+#define sys_getuid printargs
+#define sys_pause printargs
+#define sys_sync printargs
+#define sys_getgid printargs
+#define sys_geteuid printargs
+#define sys_getegid printargs
+#define sys_getppid printargs
+#define sys_getpgrp printargs
+#define sys_setsid printargs
+#define sys_vhangup printargs
+#define sys_idle printargs
+#define sys_getpgid printargs
+#define sys_munlockall printargs
+#define sys_timer_getoverrun printargs
+#define sys_timer_delete printargs
+
+/* subcall entry points */
+#define sys_socketcall printargs
+#define sys_ipc printargs
+
+/* unimplemented */
+#define sys_stty printargs
+#define sys_gtty printargs
+#define sys_ftime printargs
+#define sys_prof printargs
+#define sys_phys printargs
+#define sys_lock printargs
+#define sys_mpx printargs
+#define sys_ulimit printargs
+#define sys_profil printargs
+#define sys_ustat printargs
+#define sys_break printargs
+
+/* deprecated */
+#define sys_olduname printargs
+#define sys_oldolduname printargs
+
+/* no library support */
+#ifndef HAVE_SENDMSG
+#define sys_sendmsg printargs
+#define sys_recvmsg printargs
+#endif
+
+#ifndef SYS_getpmsg
+#define sys_getpmsg printargs
+#endif
+#ifndef SYS_putpmsg
+#define sys_putpmsg printargs
+#endif
+
+#ifndef HAVE_STRUCT___OLD_KERNEL_STAT
+#define sys_oldstat printargs
+#define sys_oldfstat printargs
+#define sys_oldlstat printargs
+#endif
+
+#if DONE
+#define sys_oldselect printargs
+#define sys_msync printargs
+#define sys_flock printargs
+#define sys_getdents printargs
+#define sys_stime printargs
+#define sys_time printargs
+#define sys_times printargs
+#define sys_mount printargs
+#define sys_nice printargs
+#define sys_mprotect printargs
+#define sys_sigprocmask printargs
+#define sys_adjtimex printargs
+#define sys_sysinfo printargs
+#define sys_ipc printargs
+#define sys_setdomainname printargs
+#define sys_statfs printargs
+#define sys_fstatfs printargs
+#define sys_ptrace printargs
+#define sys_sigreturn printargs
+#define sys_fsync printargs
+#define sys_alarm printargs
+#define sys_socketcall printargs
+#define sys_sigsuspend printargs
+#define sys_utime printargs
+#define sys_brk printargs
+#define sys_mmap printargs
+#define sys_munmap printargs
+#define sys_select printargs
+#define sys_setuid printargs
+#define sys_setgid printargs
+#define sys_setreuid printargs
+#define sys_setregid printargs
+#define sys_getgroups printargs
+#define sys_setgroups printargs
+#define sys_setrlimit printargs
+#define sys_getrlimit printargs
+#define sys_getrusage printargs
+#define sys_getpriority printargs
+#define sys_setpriority printargs
+#define sys_setpgid printargs
+#define sys_access printargs
+#define sys_sethostname printargs
+#define sys_readdir printargs
+#define sys_waitpid printargs
+#define sys_wait4 printargs
+#define sys_execve printargs
+#define sys_fork printargs
+#define sys_uname printargs
+#define sys_pipe printargs
+#define sys_siggetmask printargs
+#define sys_sigsetmask printargs
+#define sys_exit printargs
+#define sys_kill printargs
+#define sys_signal printargs
+#define sys_sigaction printargs
+#define sys_sigpending printargs
+#define sys_fcntl printargs
+#define sys_dup printargs
+#define sys_dup2 printargs
+#define sys_close printargs
+#define sys_ioctl printargs
+#define sys_read printargs
+#define sys_write printargs
+#define sys_open printargs
+#define sys_creat printargs
+#define sys_link printargs
+#define sys_unlink printargs
+#define sys_chdir printargs
+#define sys_mknod printargs
+#define sys_chmod printargs
+#define sys_chown printargs
+#define sys_lseek printargs
+#define sys_rename printargs
+#define sys_mkdir printargs
+#define sys_rmdir printargs
+#define sys_umask printargs
+#define sys_chroot printargs
+#define sys_gettimeofday printargs
+#define sys_settimeofday printargs
+#define sys_symlink printargs
+#define sys_readlink printargs
+#define sys_truncate printargs
+#define sys_ftruncate printargs
+#define sys_fchmod printargs
+#define sys_fchown printargs
+#define sys_setitimer printargs
+#define sys_getitimer printargs
+#define sys_stat printargs
+#define sys_lstat printargs
+#define sys_fstat printargs
+#define sys_personality printargs
+#define sys_poll printargs
+#define sys_create_module printargs
+#define sys_init_module printargs
+#define sys_quotactl printargs
+#define sys_mlockall printargs
+#define sys_reboot printargs
+#endif
diff --git a/strace/linux/errnoent.h b/strace/linux/errnoent.h
new file mode 100644
index 0000000..68b2adc
--- /dev/null
+++ b/strace/linux/errnoent.h
@@ -0,0 +1,529 @@
+ "ERRNO_0", /* 0 */
+ "EPERM", /* 1 */
+ "ENOENT", /* 2 */
+ "ESRCH", /* 3 */
+ "EINTR", /* 4 */
+ "EIO", /* 5 */
+ "ENXIO", /* 6 */
+ "E2BIG", /* 7 */
+ "ENOEXEC", /* 8 */
+ "EBADF", /* 9 */
+ "ECHILD", /* 10 */
+ "EAGAIN", /* 11 */
+ "ENOMEM", /* 12 */
+ "EACCES", /* 13 */
+ "EFAULT", /* 14 */
+ "ENOTBLK", /* 15 */
+ "EBUSY", /* 16 */
+ "EEXIST", /* 17 */
+ "EXDEV", /* 18 */
+ "ENODEV", /* 19 */
+ "ENOTDIR", /* 20 */
+ "EISDIR", /* 21 */
+ "EINVAL", /* 22 */
+ "ENFILE", /* 23 */
+ "EMFILE", /* 24 */
+ "ENOTTY", /* 25 */
+ "ETXTBSY", /* 26 */
+ "EFBIG", /* 27 */
+ "ENOSPC", /* 28 */
+ "ESPIPE", /* 29 */
+ "EROFS", /* 30 */
+ "EMLINK", /* 31 */
+ "EPIPE", /* 32 */
+ "EDOM", /* 33 */
+ "ERANGE", /* 34 */
+ "EDEADLK", /* 35 */
+ "ENAMETOOLONG", /* 36 */
+ "ENOLCK", /* 37 */
+ "ENOSYS", /* 38 */
+ "ENOTEMPTY", /* 39 */
+ "ELOOP", /* 40 */
+ "ERRNO_41", /* 41 */
+ "ENOMSG", /* 42 */
+ "EIDRM", /* 43 */
+ "ECHRNG", /* 44 */
+ "EL2NSYNC", /* 45 */
+ "EL3HLT", /* 46 */
+ "EL3RST", /* 47 */
+ "ELNRNG", /* 48 */
+ "EUNATCH", /* 49 */
+ "ENOCSI", /* 50 */
+ "EL2HLT", /* 51 */
+ "EBADE", /* 52 */
+ "EBADR", /* 53 */
+ "EXFULL", /* 54 */
+ "ENOANO", /* 55 */
+ "EBADRQC", /* 56 */
+ "EBADSLT", /* 57 */
+ "ERRNO_58", /* 58 */
+ "EBFONT", /* 59 */
+ "ENOSTR", /* 60 */
+ "ENODATA", /* 61 */
+ "ETIME", /* 62 */
+ "ENOSR", /* 63 */
+ "ENONET", /* 64 */
+ "ENOPKG", /* 65 */
+ "EREMOTE", /* 66 */
+ "ENOLINK", /* 67 */
+ "EADV", /* 68 */
+ "ESRMNT", /* 69 */
+ "ECOMM", /* 70 */
+ "EPROTO", /* 71 */
+ "EMULTIHOP", /* 72 */
+ "EDOTDOT", /* 73 */
+ "EBADMSG", /* 74 */
+ "EOVERFLOW", /* 75 */
+ "ENOTUNIQ", /* 76 */
+ "EBADFD", /* 77 */
+ "EREMCHG", /* 78 */
+ "ELIBACC", /* 79 */
+ "ELIBBAD", /* 80 */
+ "ELIBSCN", /* 81 */
+ "ELIBMAX", /* 82 */
+ "ELIBEXEC", /* 83 */
+ "EILSEQ", /* 84 */
+ "ERESTART", /* 85 */
+ "ESTRPIPE", /* 86 */
+ "EUSERS", /* 87 */
+ "ENOTSOCK", /* 88 */
+ "EDESTADDRREQ", /* 89 */
+ "EMSGSIZE", /* 90 */
+ "EPROTOTYPE", /* 91 */
+ "ENOPROTOOPT", /* 92 */
+ "EPROTONOSUPPORT", /* 93 */
+ "ESOCKTNOSUPPORT", /* 94 */
+ "EOPNOTSUPP", /* 95 */
+ "EPFNOSUPPORT", /* 96 */
+ "EAFNOSUPPORT", /* 97 */
+ "EADDRINUSE", /* 98 */
+ "EADDRNOTAVAIL", /* 99 */
+ "ENETDOWN", /* 100 */
+ "ENETUNREACH", /* 101 */
+ "ENETRESET", /* 102 */
+ "ECONNABORTED", /* 103 */
+ "ECONNRESET", /* 104 */
+ "ENOBUFS", /* 105 */
+ "EISCONN", /* 106 */
+ "ENOTCONN", /* 107 */
+ "ESHUTDOWN", /* 108 */
+ "ETOOMANYREFS", /* 109 */
+ "ETIMEDOUT", /* 110 */
+ "ECONNREFUSED", /* 111 */
+ "EHOSTDOWN", /* 112 */
+ "EHOSTUNREACH", /* 113 */
+ "EALREADY", /* 114 */
+ "EINPROGRESS", /* 115 */
+ "ESTALE", /* 116 */
+ "EUCLEAN", /* 117 */
+ "ENOTNAM", /* 118 */
+ "ENAVAIL", /* 119 */
+ "EISNAM", /* 120 */
+ "EREMOTEIO", /* 121 */
+ "EDQUOT", /* 122 */
+ "ENOMEDIUM", /* 123 */
+ "EMEDIUMTYPE", /* 124 */
+ "ERRNO_125", /* 125 */
+ "ERRNO_126", /* 126 */
+ "ERRNO_127", /* 127 */
+ "ERRNO_128", /* 128 */
+ "ERRNO_129", /* 129 */
+ "ERRNO_130", /* 130 */
+ "ERRNO_131", /* 131 */
+ "ERRNO_132", /* 132 */
+ "ERRNO_133", /* 133 */
+ "ERRNO_134", /* 134 */
+ "ERRNO_135", /* 135 */
+ "ERRNO_136", /* 136 */
+ "ERRNO_137", /* 137 */
+ "ERRNO_138", /* 138 */
+ "ERRNO_139", /* 139 */
+ "ERRNO_140", /* 140 */
+ "ERRNO_141", /* 141 */
+ "ERRNO_142", /* 142 */
+ "ERRNO_143", /* 143 */
+ "ERRNO_144", /* 144 */
+ "ERRNO_145", /* 145 */
+ "ERRNO_146", /* 146 */
+ "ERRNO_147", /* 147 */
+ "ERRNO_148", /* 148 */
+ "ERRNO_149", /* 149 */
+ "ERRNO_150", /* 150 */
+ "ERRNO_151", /* 151 */
+ "ERRNO_152", /* 152 */
+ "ERRNO_153", /* 153 */
+ "ERRNO_154", /* 154 */
+ "ERRNO_155", /* 155 */
+ "ERRNO_156", /* 156 */
+ "ERRNO_157", /* 157 */
+ "ERRNO_158", /* 158 */
+ "ERRNO_159", /* 159 */
+ "ERRNO_160", /* 160 */
+ "ERRNO_161", /* 161 */
+ "ERRNO_162", /* 162 */
+ "ERRNO_163", /* 163 */
+ "ERRNO_164", /* 164 */
+ "ERRNO_165", /* 165 */
+ "ERRNO_166", /* 166 */
+ "ERRNO_167", /* 167 */
+ "ERRNO_168", /* 168 */
+ "ERRNO_169", /* 169 */
+ "ERRNO_170", /* 170 */
+ "ERRNO_171", /* 171 */
+ "ERRNO_172", /* 172 */
+ "ERRNO_173", /* 173 */
+ "ERRNO_174", /* 174 */
+ "ERRNO_175", /* 175 */
+ "ERRNO_176", /* 176 */
+ "ERRNO_177", /* 177 */
+ "ERRNO_178", /* 178 */
+ "ERRNO_179", /* 179 */
+ "ERRNO_180", /* 180 */
+ "ERRNO_181", /* 181 */
+ "ERRNO_182", /* 182 */
+ "ERRNO_183", /* 183 */
+ "ERRNO_184", /* 184 */
+ "ERRNO_185", /* 185 */
+ "ERRNO_186", /* 186 */
+ "ERRNO_187", /* 187 */
+ "ERRNO_188", /* 188 */
+ "ERRNO_189", /* 189 */
+ "ERRNO_190", /* 190 */
+ "ERRNO_191", /* 191 */
+ "ERRNO_192", /* 192 */
+ "ERRNO_193", /* 193 */
+ "ERRNO_194", /* 194 */
+ "ERRNO_195", /* 195 */
+ "ERRNO_196", /* 196 */
+ "ERRNO_197", /* 197 */
+ "ERRNO_198", /* 198 */
+ "ERRNO_199", /* 199 */
+ "ERRNO_200", /* 200 */
+ "ERRNO_201", /* 201 */
+ "ERRNO_202", /* 202 */
+ "ERRNO_203", /* 203 */
+ "ERRNO_204", /* 204 */
+ "ERRNO_205", /* 205 */
+ "ERRNO_206", /* 206 */
+ "ERRNO_207", /* 207 */
+ "ERRNO_208", /* 208 */
+ "ERRNO_209", /* 209 */
+ "ERRNO_210", /* 210 */
+ "ERRNO_211", /* 211 */
+ "ERRNO_212", /* 212 */
+ "ERRNO_213", /* 213 */
+ "ERRNO_214", /* 214 */
+ "ERRNO_215", /* 215 */
+ "ERRNO_216", /* 216 */
+ "ERRNO_217", /* 217 */
+ "ERRNO_218", /* 218 */
+ "ERRNO_219", /* 219 */
+ "ERRNO_220", /* 220 */
+ "ERRNO_221", /* 221 */
+ "ERRNO_222", /* 222 */
+ "ERRNO_223", /* 223 */
+ "ERRNO_224", /* 224 */
+ "ERRNO_225", /* 225 */
+ "ERRNO_226", /* 226 */
+ "ERRNO_227", /* 227 */
+ "ERRNO_228", /* 228 */
+ "ERRNO_229", /* 229 */
+ "ERRNO_230", /* 230 */
+ "ERRNO_231", /* 231 */
+ "ERRNO_232", /* 232 */
+ "ERRNO_233", /* 233 */
+ "ERRNO_234", /* 234 */
+ "ERRNO_235", /* 235 */
+ "ERRNO_236", /* 236 */
+ "ERRNO_237", /* 237 */
+ "ERRNO_238", /* 238 */
+ "ERRNO_239", /* 239 */
+ "ERRNO_240", /* 240 */
+ "ERRNO_241", /* 241 */
+ "ERRNO_242", /* 242 */
+ "ERRNO_243", /* 243 */
+ "ERRNO_244", /* 244 */
+ "ERRNO_245", /* 245 */
+ "ERRNO_246", /* 246 */
+ "ERRNO_247", /* 247 */
+ "ERRNO_248", /* 248 */
+ "ERRNO_249", /* 249 */
+ "ERRNO_250", /* 250 */
+ "ERRNO_251", /* 251 */
+ "ERRNO_252", /* 252 */
+ "ERRNO_253", /* 253 */
+ "ERRNO_254", /* 254 */
+ "ERRNO_255", /* 255 */
+ "ERRNO_256", /* 256 */
+ "ERRNO_257", /* 257 */
+ "ERRNO_258", /* 258 */
+ "ERRNO_259", /* 259 */
+ "ERRNO_260", /* 260 */
+ "ERRNO_261", /* 261 */
+ "ERRNO_262", /* 262 */
+ "ERRNO_263", /* 263 */
+ "ERRNO_264", /* 264 */
+ "ERRNO_265", /* 265 */
+ "ERRNO_266", /* 266 */
+ "ERRNO_267", /* 267 */
+ "ERRNO_268", /* 268 */
+ "ERRNO_269", /* 269 */
+ "ERRNO_270", /* 270 */
+ "ERRNO_271", /* 271 */
+ "ERRNO_272", /* 272 */
+ "ERRNO_273", /* 273 */
+ "ERRNO_274", /* 274 */
+ "ERRNO_275", /* 275 */
+ "ERRNO_276", /* 276 */
+ "ERRNO_277", /* 277 */
+ "ERRNO_278", /* 278 */
+ "ERRNO_279", /* 279 */
+ "ERRNO_280", /* 280 */
+ "ERRNO_281", /* 281 */
+ "ERRNO_282", /* 282 */
+ "ERRNO_283", /* 283 */
+ "ERRNO_284", /* 284 */
+ "ERRNO_285", /* 285 */
+ "ERRNO_286", /* 286 */
+ "ERRNO_287", /* 287 */
+ "ERRNO_288", /* 288 */
+ "ERRNO_289", /* 289 */
+ "ERRNO_290", /* 290 */
+ "ERRNO_291", /* 291 */
+ "ERRNO_292", /* 292 */
+ "ERRNO_293", /* 293 */
+ "ERRNO_294", /* 294 */
+ "ERRNO_295", /* 295 */
+ "ERRNO_296", /* 296 */
+ "ERRNO_297", /* 297 */
+ "ERRNO_298", /* 298 */
+ "ERRNO_299", /* 299 */
+ "ERRNO_300", /* 300 */
+ "ERRNO_301", /* 301 */
+ "ERRNO_302", /* 302 */
+ "ERRNO_303", /* 303 */
+ "ERRNO_304", /* 304 */
+ "ERRNO_305", /* 305 */
+ "ERRNO_306", /* 306 */
+ "ERRNO_307", /* 307 */
+ "ERRNO_308", /* 308 */
+ "ERRNO_309", /* 309 */
+ "ERRNO_310", /* 310 */
+ "ERRNO_311", /* 311 */
+ "ERRNO_312", /* 312 */
+ "ERRNO_313", /* 313 */
+ "ERRNO_314", /* 314 */
+ "ERRNO_315", /* 315 */
+ "ERRNO_316", /* 316 */
+ "ERRNO_317", /* 317 */
+ "ERRNO_318", /* 318 */
+ "ERRNO_319", /* 319 */
+ "ERRNO_320", /* 320 */
+ "ERRNO_321", /* 321 */
+ "ERRNO_322", /* 322 */
+ "ERRNO_323", /* 323 */
+ "ERRNO_324", /* 324 */
+ "ERRNO_325", /* 325 */
+ "ERRNO_326", /* 326 */
+ "ERRNO_327", /* 327 */
+ "ERRNO_328", /* 328 */
+ "ERRNO_329", /* 329 */
+ "ERRNO_330", /* 330 */
+ "ERRNO_331", /* 331 */
+ "ERRNO_332", /* 332 */
+ "ERRNO_333", /* 333 */
+ "ERRNO_334", /* 334 */
+ "ERRNO_335", /* 335 */
+ "ERRNO_336", /* 336 */
+ "ERRNO_337", /* 337 */
+ "ERRNO_338", /* 338 */
+ "ERRNO_339", /* 339 */
+ "ERRNO_340", /* 340 */
+ "ERRNO_341", /* 341 */
+ "ERRNO_342", /* 342 */
+ "ERRNO_343", /* 343 */
+ "ERRNO_344", /* 344 */
+ "ERRNO_345", /* 345 */
+ "ERRNO_346", /* 346 */
+ "ERRNO_347", /* 347 */
+ "ERRNO_348", /* 348 */
+ "ERRNO_349", /* 349 */
+ "ERRNO_350", /* 350 */
+ "ERRNO_351", /* 351 */
+ "ERRNO_352", /* 352 */
+ "ERRNO_353", /* 353 */
+ "ERRNO_354", /* 354 */
+ "ERRNO_355", /* 355 */
+ "ERRNO_356", /* 356 */
+ "ERRNO_357", /* 357 */
+ "ERRNO_358", /* 358 */
+ "ERRNO_359", /* 359 */
+ "ERRNO_360", /* 360 */
+ "ERRNO_361", /* 361 */
+ "ERRNO_362", /* 362 */
+ "ERRNO_363", /* 363 */
+ "ERRNO_364", /* 364 */
+ "ERRNO_365", /* 365 */
+ "ERRNO_366", /* 366 */
+ "ERRNO_367", /* 367 */
+ "ERRNO_368", /* 368 */
+ "ERRNO_369", /* 369 */
+ "ERRNO_370", /* 370 */
+ "ERRNO_371", /* 371 */
+ "ERRNO_372", /* 372 */
+ "ERRNO_373", /* 373 */
+ "ERRNO_374", /* 374 */
+ "ERRNO_375", /* 375 */
+ "ERRNO_376", /* 376 */
+ "ERRNO_377", /* 377 */
+ "ERRNO_378", /* 378 */
+ "ERRNO_379", /* 379 */
+ "ERRNO_380", /* 380 */
+ "ERRNO_381", /* 381 */
+ "ERRNO_382", /* 382 */
+ "ERRNO_383", /* 383 */
+ "ERRNO_384", /* 384 */
+ "ERRNO_385", /* 385 */
+ "ERRNO_386", /* 386 */
+ "ERRNO_387", /* 387 */
+ "ERRNO_388", /* 388 */
+ "ERRNO_389", /* 389 */
+ "ERRNO_390", /* 390 */
+ "ERRNO_391", /* 391 */
+ "ERRNO_392", /* 392 */
+ "ERRNO_393", /* 393 */
+ "ERRNO_394", /* 394 */
+ "ERRNO_395", /* 395 */
+ "ERRNO_396", /* 396 */
+ "ERRNO_397", /* 397 */
+ "ERRNO_398", /* 398 */
+ "ERRNO_399", /* 399 */
+ "ERRNO_400", /* 400 */
+ "ERRNO_401", /* 401 */
+ "ERRNO_402", /* 402 */
+ "ERRNO_403", /* 403 */
+ "ERRNO_404", /* 404 */
+ "ERRNO_405", /* 405 */
+ "ERRNO_406", /* 406 */
+ "ERRNO_407", /* 407 */
+ "ERRNO_408", /* 408 */
+ "ERRNO_409", /* 409 */
+ "ERRNO_410", /* 410 */
+ "ERRNO_411", /* 411 */
+ "ERRNO_412", /* 412 */
+ "ERRNO_413", /* 413 */
+ "ERRNO_414", /* 414 */
+ "ERRNO_415", /* 415 */
+ "ERRNO_416", /* 416 */
+ "ERRNO_417", /* 417 */
+ "ERRNO_418", /* 418 */
+ "ERRNO_419", /* 419 */
+ "ERRNO_420", /* 420 */
+ "ERRNO_421", /* 421 */
+ "ERRNO_422", /* 422 */
+ "ERRNO_423", /* 423 */
+ "ERRNO_424", /* 424 */
+ "ERRNO_425", /* 425 */
+ "ERRNO_426", /* 426 */
+ "ERRNO_427", /* 427 */
+ "ERRNO_428", /* 428 */
+ "ERRNO_429", /* 429 */
+ "ERRNO_430", /* 430 */
+ "ERRNO_431", /* 431 */
+ "ERRNO_432", /* 432 */
+ "ERRNO_433", /* 433 */
+ "ERRNO_434", /* 434 */
+ "ERRNO_435", /* 435 */
+ "ERRNO_436", /* 436 */
+ "ERRNO_437", /* 437 */
+ "ERRNO_438", /* 438 */
+ "ERRNO_439", /* 439 */
+ "ERRNO_440", /* 440 */
+ "ERRNO_441", /* 441 */
+ "ERRNO_442", /* 442 */
+ "ERRNO_443", /* 443 */
+ "ERRNO_444", /* 444 */
+ "ERRNO_445", /* 445 */
+ "ERRNO_446", /* 446 */
+ "ERRNO_447", /* 447 */
+ "ERRNO_448", /* 448 */
+ "ERRNO_449", /* 449 */
+ "ERRNO_450", /* 450 */
+ "ERRNO_451", /* 451 */
+ "ERRNO_452", /* 452 */
+ "ERRNO_453", /* 453 */
+ "ERRNO_454", /* 454 */
+ "ERRNO_455", /* 455 */
+ "ERRNO_456", /* 456 */
+ "ERRNO_457", /* 457 */
+ "ERRNO_458", /* 458 */
+ "ERRNO_459", /* 459 */
+ "ERRNO_460", /* 460 */
+ "ERRNO_461", /* 461 */
+ "ERRNO_462", /* 462 */
+ "ERRNO_463", /* 463 */
+ "ERRNO_464", /* 464 */
+ "ERRNO_465", /* 465 */
+ "ERRNO_466", /* 466 */
+ "ERRNO_467", /* 467 */
+ "ERRNO_468", /* 468 */
+ "ERRNO_469", /* 469 */
+ "ERRNO_470", /* 470 */
+ "ERRNO_471", /* 471 */
+ "ERRNO_472", /* 472 */
+ "ERRNO_473", /* 473 */
+ "ERRNO_474", /* 474 */
+ "ERRNO_475", /* 475 */
+ "ERRNO_476", /* 476 */
+ "ERRNO_477", /* 477 */
+ "ERRNO_478", /* 478 */
+ "ERRNO_479", /* 479 */
+ "ERRNO_480", /* 480 */
+ "ERRNO_481", /* 481 */
+ "ERRNO_482", /* 482 */
+ "ERRNO_483", /* 483 */
+ "ERRNO_484", /* 484 */
+ "ERRNO_485", /* 485 */
+ "ERRNO_486", /* 486 */
+ "ERRNO_487", /* 487 */
+ "ERRNO_488", /* 488 */
+ "ERRNO_489", /* 489 */
+ "ERRNO_490", /* 490 */
+ "ERRNO_491", /* 491 */
+ "ERRNO_492", /* 492 */
+ "ERRNO_493", /* 493 */
+ "ERRNO_494", /* 494 */
+ "ERRNO_495", /* 495 */
+ "ERRNO_496", /* 496 */
+ "ERRNO_497", /* 497 */
+ "ERRNO_498", /* 498 */
+ "ERRNO_499", /* 499 */
+ "ERRNO_500", /* 500 */
+ "ERRNO_501", /* 501 */
+ "ERRNO_502", /* 502 */
+ "ERRNO_503", /* 503 */
+ "ERRNO_504", /* 504 */
+ "ERRNO_505", /* 505 */
+ "ERRNO_506", /* 506 */
+ "ERRNO_507", /* 507 */
+ "ERRNO_508", /* 508 */
+ "ERRNO_509", /* 509 */
+ "ERRNO_510", /* 510 */
+ "ERRNO_511", /* 511 */
+ "ERESTARTSYS", /* 512 */
+ "ERESTARTNOINTR", /* 513 */
+ "ERESTARTNOHAND", /* 514 */
+ "ENOIOCTLCMD", /* 515 */
+ "ERRNO_516", /* 516 */
+ "ERRNO_517", /* 517 */
+ "ERRNO_518", /* 518 */
+ "ERRNO_519", /* 519 */
+ "ERRNO_520", /* 520 */
+ "EBADHANDLE", /* 521 */
+ "ENOTSYNC", /* 522 */
+ "EBADCOOKIE", /* 523 */
+ "ENOTSUPP", /* 524 */
+ "ETOOSMALL", /* 525 */
+ "ESERVERFAULT", /* 526 */
+ "EBADTYPE", /* 527 */
+ "EJUKEBOX", /* 528 */
diff --git a/strace/linux/hppa/errnoent.h b/strace/linux/hppa/errnoent.h
new file mode 100644
index 0000000..2c92633
--- /dev/null
+++ b/strace/linux/hppa/errnoent.h
@@ -0,0 +1,254 @@
+ "ERRNO_0", /* 0 */
+ "EPERM", /* 1 */
+ "ENOENT", /* 2 */
+ "ESRCH", /* 3 */
+ "EINTR", /* 4 */
+ "EIO", /* 5 */
+ "ENXIO", /* 6 */
+ "E2BIG", /* 7 */
+ "ENOEXEC", /* 8 */
+ "EBADF", /* 9 */
+ "ECHILD", /* 10 */
+ "EAGAIN", /* 11 */
+ "ENOMEM", /* 12 */
+ "EACCES", /* 13 */
+ "EFAULT", /* 14 */
+ "ENOTBLK", /* 15 */
+ "EBUSY", /* 16 */
+ "EEXIST", /* 17 */
+ "EXDEV", /* 18 */
+ "ENODEV", /* 19 */
+ "ENOTDIR", /* 20 */
+ "EISDIR", /* 21 */
+ "EINVAL", /* 22 */
+ "ENFILE", /* 23 */
+ "EMFILE", /* 24 */
+ "ENOTTY", /* 25 */
+ "ETXTBSY", /* 26 */
+ "EFBIG", /* 27 */
+ "ENOSPC", /* 28 */
+ "ESPIPE", /* 29 */
+ "EROFS", /* 30 */
+ "EMLINK", /* 31 */
+ "EPIPE", /* 32 */
+ "EDOM", /* 33 */
+ "ERANGE", /* 34 */
+ "ENOMSG", /* 35 */
+ "EIDRM", /* 36 */
+ "ECHRNG", /* 37 */
+ "EL2NSYNC", /* 38 */
+ "EL3HLT", /* 39 */
+ "EL3RST", /* 40 */
+ "ELNRNG", /* 41 */
+ "EUNATCH", /* 42 */
+ "ENOCSI", /* 43 */
+ "EL2HLT", /* 44 */
+ "EDEADLK", /* 45 */
+ "ENOLCK", /* 46 */
+ "EILSEQ", /* 47 */
+ "ERRNO_48", /* 48 */
+ "ERRNO_49", /* 49 */
+ "ENONET", /* 50 */
+ "ENODATA", /* 51 */
+ "ETIME", /* 52 */
+ "ENOSR", /* 53 */
+ "ENOSTR", /* 54 */
+ "ENOPKG", /* 55 */
+ "ERRNO_56", /* 56 */
+ "ENOLINK", /* 57 */
+ "EADV", /* 58 */
+ "ESRMNT", /* 59 */
+ "ECOMM", /* 60 */
+ "EPROTO", /* 61 */
+ "ERRNO_62", /* 62 */
+ "ERRNO_63", /* 63 */
+ "EMULTIHOP", /* 64 */
+ "ERRNO_65", /* 65 */
+ "EDOTDOT", /* 66 */
+ "EBADMSG", /* 67 */
+ "EUSERS", /* 68 */
+ "EDQUOT", /* 69 */
+ "ESTALE", /* 70 */
+ "EREMOTE", /* 71 */
+ "EOVERFLOW", /* 72 */
+ "ERRNO_73", /* 73 */
+ "ERRNO_74", /* 74 */
+ "ERRNO_75", /* 75 */
+ "ERRNO_76", /* 76 */
+ "ERRNO_77", /* 77 */
+ "ERRNO_78", /* 78 */
+ "ERRNO_79", /* 79 */
+ "ERRNO_80", /* 80 */
+ "ERRNO_81", /* 81 */
+ "ERRNO_82", /* 82 */
+ "ERRNO_83", /* 83 */
+ "ERRNO_84", /* 84 */
+ "ERRNO_85", /* 85 */
+ "ERRNO_86", /* 86 */
+ "ERRNO_87", /* 87 */
+ "ERRNO_88", /* 88 */
+ "ERRNO_89", /* 89 */
+ "ERRNO_90", /* 90 */
+ "ERRNO_91", /* 91 */
+ "ERRNO_92", /* 92 */
+ "ERRNO_93", /* 93 */
+ "ERRNO_94", /* 94 */
+ "ERRNO_95", /* 95 */
+ "ERRNO_96", /* 96 */
+ "ERRNO_97", /* 97 */
+ "ERRNO_98", /* 98 */
+ "ERRNO_99", /* 99 */
+ "ERRNO_100", /* 100 */
+ "ERRNO_101", /* 101 */
+ "ERRNO_102", /* 102 */
+ "ERRNO_103", /* 103 */
+ "ERRNO_104", /* 104 */
+ "ERRNO_105", /* 105 */
+ "ERRNO_106", /* 106 */
+ "ERRNO_107", /* 107 */
+ "ERRNO_108", /* 108 */
+ "ERRNO_109", /* 109 */
+ "ERRNO_110", /* 110 */
+ "ERRNO_111", /* 111 */
+ "ERRNO_112", /* 112 */
+ "ERRNO_113", /* 113 */
+ "ERRNO_114", /* 114 */
+ "ERRNO_115", /* 115 */
+ "ERRNO_116", /* 116 */
+ "ERRNO_117", /* 117 */
+ "ERRNO_118", /* 118 */
+ "ERRNO_119", /* 119 */
+ "ERRNO_120", /* 120 */
+ "ERRNO_121", /* 121 */
+ "ERRNO_122", /* 122 */
+ "ERRNO_123", /* 123 */
+ "ERRNO_124", /* 124 */
+ "ERRNO_125", /* 125 */
+ "ERRNO_126", /* 126 */
+ "ERRNO_127", /* 127 */
+ "ERRNO_128", /* 128 */
+ "ERRNO_129", /* 129 */
+ "ERRNO_130", /* 130 */
+ "ERRNO_131", /* 131 */
+ "ERRNO_132", /* 132 */
+ "ERRNO_133", /* 133 */
+ "ERRNO_134", /* 134 */
+ "ERRNO_135", /* 135 */
+ "ERRNO_136", /* 136 */
+ "ERRNO_137", /* 137 */
+ "ERRNO_138", /* 138 */
+ "ERRNO_139", /* 139 */
+ "ERRNO_140", /* 140 */
+ "ERRNO_141", /* 141 */
+ "ERRNO_142", /* 142 */
+ "ERRNO_143", /* 143 */
+ "ERRNO_144", /* 144 */
+ "ERRNO_145", /* 145 */
+ "ERRNO_146", /* 146 */
+ "ERRNO_147", /* 147 */
+ "ERRNO_148", /* 148 */
+ "ERRNO_149", /* 149 */
+ "ERRNO_150", /* 150 */
+ "ERRNO_151", /* 151 */
+ "ERRNO_152", /* 152 */
+ "ERRNO_153", /* 153 */
+ "ERRNO_154", /* 154 */
+ "ERRNO_155", /* 155 */
+ "ERRNO_156", /* 156 */
+ "ERRNO_157", /* 157 */
+ "ERRNO_158", /* 158 */
+ "ERRNO_159", /* 159 */
+ "EBADE", /* 160 */
+ "EBADR", /* 161 */
+ "EXFULL", /* 162 */
+ "ENOANO", /* 163 */
+ "EBADRQC", /* 164 */
+ "EBADSLT", /* 165 */
+ "EBFONT", /* 166 */
+ "ENOTUNIQ", /* 167 */
+ "EBADFD", /* 168 */
+ "EREMCHG", /* 169 */
+ "ELIBACC", /* 170 */
+ "ELIBBAD", /* 171 */
+ "ELIBSCN", /* 172 */
+ "ELIBMAX", /* 173 */
+ "ELIBEXEC", /* 174 */
+ "ERESTART", /* 175 */
+ "ESTRPIPE", /* 176 */
+ "EUCLEAN", /* 177 */
+ "ENOTNAM", /* 178 */
+ "ENAVAIL", /* 179 */
+ "EISNAM", /* 180 */
+ "EREMOTEIO", /* 181 */
+ "ENOMEDIUM", /* 182 */
+ "EMEDIUMTYPE", /* 183 */
+ "ERRNO_184", /* 184 */
+ "ERRNO_185", /* 185 */
+ "ERRNO_186", /* 186 */
+ "ERRNO_187", /* 187 */
+ "ERRNO_188", /* 188 */
+ "ERRNO_189", /* 189 */
+ "ERRNO_190", /* 190 */
+ "ERRNO_191", /* 191 */
+ "ERRNO_192", /* 192 */
+ "ERRNO_193", /* 193 */
+ "ERRNO_194", /* 194 */
+ "ERRNO_195", /* 195 */
+ "ERRNO_196", /* 196 */
+ "ERRNO_197", /* 197 */
+ "ERRNO_198", /* 198 */
+ "ERRNO_199", /* 199 */
+ "ERRNO_200", /* 200 */
+ "ERRNO_201", /* 201 */
+ "ERRNO_202", /* 202 */
+ "ERRNO_203", /* 203 */
+ "ERRNO_204", /* 204 */
+ "ERRNO_205", /* 205 */
+ "ERRNO_206", /* 206 */
+ "ERRNO_207", /* 207 */
+ "ERRNO_208", /* 208 */
+ "ERRNO_209", /* 209 */
+ "ERRNO_210", /* 210 */
+ "ERRNO_211", /* 211 */
+ "ERRNO_212", /* 212 */
+ "ERRNO_213", /* 213 */
+ "ERRNO_214", /* 214 */
+ "ENOSYM", /* 215 */
+ "ENOTSOCK", /* 216 */
+ "EDESTADDRREQ", /* 217 */
+ "EMSGSIZE", /* 218 */
+ "EPROTOTYPE", /* 219 */
+ "ENOPROTOOPT", /* 220 */
+ "EPROTONOSUPPORT", /* 221 */
+ "ESOCKTNOSUPPORT", /* 222 */
+ "EOPNOTSUPP", /* 223 */
+ "EPFNOSUPPORT", /* 224 */
+ "EAFNOSUPPORT", /* 225 */
+ "EADDRINUSE", /* 226 */
+ "EADDRNOTAVAIL", /* 227 */
+ "ENETDOWN", /* 228 */
+ "ENETUNREACH", /* 229 */
+ "ENETRESET", /* 230 */
+ "ECONNABORTED", /* 231 */
+ "ECONNRESET", /* 232 */
+ "ENOBUFS", /* 233 */
+ "EISCONN", /* 234 */
+ "ENOTCONN", /* 235 */
+ "ESHUTDOWN", /* 236 */
+ "ETOOMANYREFS", /* 237 */
+ "ETIMEDOUT", /* 238 */
+ "ECONNREFUSED", /* 239 */
+ "EREMOTERELEASE", /* 240 */
+ "EHOSTDOWN", /* 241 */
+ "EHOSTUNREACH", /* 242 */
+ "ERRNO_243", /* 243 */
+ "EALREADY", /* 244 */
+ "EINPROGRESS", /* 245 */
+ "EWOULDBLOCK", /* 246 */
+ "ENOTEMPTY", /* 247 */
+ "ENAMETOOLONG", /* 248 */
+ "ELOOP", /* 249 */
+ "ERRNO_250", /* 250 */
+ "ENOSYS", /* 251 */
+ "ENOTSUP", /* 252 */
+ "ECANCELLED", /* 253 */
diff --git a/strace/linux/hppa/ioctlent.h b/strace/linux/hppa/ioctlent.h
new file mode 100644
index 0000000..7ddaaf5
--- /dev/null
+++ b/strace/linux/hppa/ioctlent.h
@@ -0,0 +1,779 @@
+ {"linux/fs.h", "FIBMAP", 0x1},
+ {"linux/fs.h", "FIGETBSZ", 0x2},
+ {"linux/fd.h", "FDGETPRM", 0x204},
+ {"linux/fd.h", "FDGETMAXERRS", 0x20e},
+ {"linux/fd.h", "FDGETDRVTYP", 0x20f},
+ {"linux/fd.h", "FDGETDRVPRM", 0x211},
+ {"linux/fd.h", "FDGETDRVSTAT", 0x212},
+ {"linux/fd.h", "FDPOLLDRVSTAT", 0x213},
+ {"linux/fd.h", "FDGETFDCSTAT", 0x215},
+ {"linux/fd.h", "FDWERRORGET", 0x217},
+ {"linux/fd.h", "FDCLRPRM", 0x241},
+ {"linux/fd.h", "FDSETPRM", 0x242},
+ {"linux/fd.h", "FDDEFPRM", 0x243},
+ {"linux/fd.h", "FDMSGON", 0x245},
+ {"linux/fd.h", "FDMSGOFF", 0x246},
+ {"linux/fd.h", "FDFMTBEG", 0x247},
+ {"linux/fd.h", "FDFMTTRK", 0x248},
+ {"linux/fd.h", "FDFMTEND", 0x249},
+ {"linux/fd.h", "FDSETEMSGTRESH", 0x24a},
+ {"linux/fd.h", "FDFLUSH", 0x24b},
+ {"linux/fd.h", "FDSETMAXERRS", 0x24c},
+ {"linux/fd.h", "FDRESET", 0x254},
+ {"linux/fd.h", "FDWERRORCLR", 0x256},
+ {"linux/fd.h", "FDRAWCMD", 0x258},
+ {"linux/fd.h", "FDTWADDLE", 0x259},
+ {"linux/fd.h", "FDEJECT", 0x25a},
+ {"linux/fd.h", "FDSETDRVPRM", 0x290},
+ {"linux/umsdos_fs.h", "UMSDOS_READDIR_DOS", 0x4d2},
+ {"linux/umsdos_fs.h", "UMSDOS_UNLINK_DOS", 0x4d3},
+ {"linux/umsdos_fs.h", "UMSDOS_RMDIR_DOS", 0x4d4},
+ {"linux/umsdos_fs.h", "UMSDOS_STAT_DOS", 0x4d5},
+ {"linux/umsdos_fs.h", "UMSDOS_CREAT_EMD", 0x4d6},
+ {"linux/umsdos_fs.h", "UMSDOS_UNLINK_EMD", 0x4d7},
+ {"linux/umsdos_fs.h", "UMSDOS_READDIR_EMD", 0x4d8},
+ {"linux/umsdos_fs.h", "UMSDOS_GETVERSION", 0x4d9},
+ {"linux/umsdos_fs.h", "UMSDOS_INIT_EMD", 0x4da},
+ {"linux/umsdos_fs.h", "UMSDOS_DOS_SETUP", 0x4db},
+ {"linux/umsdos_fs.h", "UMSDOS_RENAME_DOS", 0x4dc},
+ {"linux/fs.h", "BLKROSET", 0x125d},
+ {"linux/fs.h", "BLKROGET", 0x125e},
+ {"linux/fs.h", "BLKRRPART", 0x125f},
+ {"linux/fs.h", "BLKGETSIZE", 0x1260},
+ {"linux/fs.h", "BLKFLSBUF", 0x1261},
+ {"linux/fs.h", "BLKRASET", 0x1262},
+ {"linux/fs.h", "BLKRAGET", 0x1263},
+ {"linux/fs.h", "BLKFRASET", 0x1264},
+ {"linux/fs.h", "BLKFRAGET", 0x1265},
+ {"linux/fs.h", "BLKSECTSET", 0x1266},
+ {"linux/fs.h", "BLKSECTGET", 0x1267},
+ {"linux/fs.h", "BLKSSZGET", 0x1268},
+ {"linux/blkpg.h", "BLKPG", 0x1269},
+ {"linux/fs.h", "BLKPG", 0x1269},
+ {"linux/elevator.h", "BLKELVGET", 0x126a},
+ {"linux/fs.h", "BLKELVGET", 0x126a},
+ {"linux/elevator.h", "BLKELVSET", 0x126b},
+ {"linux/fs.h", "BLKELVSET", 0x126b},
+ {"linux/fs.h", "BLKBSZGET", 0x1270},
+ {"linux/fs.h", "BLKBSZSET", 0x1271},
+ {"linux/fs.h", "BLKGETSIZE64", 0x1272},
+ {"linux/agpgart.h", "AGPIOC_INFO", 0x4100},
+ {"linux/agpgart.h", "AGPIOC_ACQUIRE", 0x4101},
+ {"linux/apm_bios.h", "APM_IOC_STANDBY", 0x4101},
+ {"linux/agpgart.h", "AGPIOC_RELEASE", 0x4102},
+ {"linux/apm_bios.h", "APM_IOC_SUSPEND", 0x4102},
+ {"linux/agpgart.h", "AGPIOC_SETUP", 0x4103},
+ {"linux/agpgart.h", "AGPIOC_RESERVE", 0x4104},
+ {"linux/agpgart.h", "AGPIOC_PROTECT", 0x4105},
+ {"linux/agpgart.h", "AGPIOC_ALLOCATE", 0x4106},
+ {"linux/agpgart.h", "AGPIOC_DEALLOCATE", 0x4107},
+ {"linux/agpgart.h", "AGPIOC_BIND", 0x4108},
+ {"linux/agpgart.h", "AGPIOC_UNBIND", 0x4109},
+ {"linux/pmu.h", "PMU_IOC_SLEEP", 0x4200},
+ {"linux/cciss_ioctl.h", "CCISS_GETPCIINFO", 0x4201},
+ {"linux/pmu.h", "PMU_IOC_GET_BACKLIGHT", 0x4201},
+ {"linux/cciss_ioctl.h", "CCISS_GETINTINFO", 0x4202},
+ {"linux/pmu.h", "PMU_IOC_SET_BACKLIGHT", 0x4202},
+ {"linux/cciss_ioctl.h", "CCISS_SETINTINFO", 0x4203},
+ {"linux/pmu.h", "PMU_IOC_GET_MODEL", 0x4203},
+ {"linux/cciss_ioctl.h", "CCISS_GETNODENAME", 0x4204},
+ {"linux/pmu.h", "PMU_IOC_HAS_ADB", 0x4204},
+ {"linux/cciss_ioctl.h", "CCISS_SETNODENAME", 0x4205},
+ {"linux/pmu.h", "PMU_IOC_CAN_SLEEP", 0x4205},
+ {"linux/cciss_ioctl.h", "CCISS_GETHEARTBEAT", 0x4206},
+ {"linux/cciss_ioctl.h", "CCISS_GETBUSTYPES", 0x4207},
+ {"linux/cciss_ioctl.h", "CCISS_GETFIRMVER", 0x4208},
+ {"linux/cciss_ioctl.h", "CCISS_GETDRIVVER", 0x4209},
+ {"linux/cciss_ioctl.h", "CCISS_REVALIDVOLS", 0x420a},
+ {"linux/cciss_ioctl.h", "CCISS_PASSTHRU", 0x420b},
+ {"linux/soundcard.h", "SNDCTL_COPR_RESET", 0x4300},
+ {"linux/capi.h", "CAPI_REGISTER", 0x4301},
+ {"linux/soundcard.h", "SNDCTL_COPR_LOAD", 0x4301},
+ {"linux/soundcard.h", "SNDCTL_COPR_RDATA", 0x4302},
+ {"linux/soundcard.h", "SNDCTL_COPR_RCODE", 0x4303},
+ {"linux/soundcard.h", "SNDCTL_COPR_WDATA", 0x4304},
+ {"linux/soundcard.h", "SNDCTL_COPR_WCODE", 0x4305},
+ {"linux/capi.h", "CAPI_GET_MANUFACTURER", 0x4306},
+ {"linux/soundcard.h", "SNDCTL_COPR_RUN", 0x4306},
+ {"linux/capi.h", "CAPI_GET_VERSION", 0x4307},
+ {"linux/soundcard.h", "SNDCTL_COPR_HALT", 0x4307},
+ {"linux/capi.h", "CAPI_GET_SERIAL", 0x4308},
+ {"linux/soundcard.h", "SNDCTL_COPR_SENDMSG", 0x4308},
+ {"linux/capi.h", "CAPI_GET_PROFILE", 0x4309},
+ {"linux/soundcard.h", "SNDCTL_COPR_RCVMSG", 0x4309},
+ {"linux/capi.h", "CAPI_MANUFACTURER_CMD", 0x4320},
+ {"linux/capi.h", "CAPI_GET_ERRCODE", 0x4321},
+ {"linux/capi.h", "CAPI_INSTALLED", 0x4322},
+ {"linux/capi.h", "CAPI_GET_FLAGS", 0x4323},
+ {"linux/capi.h", "CAPI_SET_FLAGS", 0x4324},
+ {"linux/capi.h", "CAPI_CLR_FLAGS", 0x4325},
+ {"linux/capi.h", "CAPI_NCCI_OPENCOUNT", 0x4326},
+ {"linux/capi.h", "CAPI_NCCI_GETUNIT", 0x4327},
+ {"linux/input.h", "EVIOCGVERSION", 0x4501},
+ {"linux/input.h", "EVIOCGID", 0x4502},
+ {"linux/input.h", "EVIOCGREP", 0x4503},
+ {"linux/input.h", "EVIOCSREP", 0x4503},
+ {"linux/input.h", "EVIOCGKEYCODE", 0x4504},
+ {"linux/input.h", "EVIOCSKEYCODE", 0x4504},
+ {"linux/input.h", "EVIOCGKEY", 0x4505},
+ {"linux/input.h", "EVIOCGBUS", 0x4507},
+ {"linux/input.h", "EVIOCRMFF", 0x4581},
+ {"linux/input.h", "EVIOCSGAIN", 0x4582},
+ {"linux/input.h", "EVIOCSAUTOCENTER", 0x4583},
+ {"linux/input.h", "EVIOCGEFFECTS", 0x4584},
+ {"linux/fb.h", "FBIOGET_VBLANK", 0x4612},
+ {"linux/hiddev.h", "HIDIOCGVERSION", 0x4801},
+ {"linux/hiddev.h", "HIDIOCAPPLICATION", 0x4802},
+ {"linux/hiddev.h", "HIDIOCGDEVINFO", 0x4803},
+ {"linux/hiddev.h", "HIDIOCGSTRING", 0x4804},
+ {"linux/hiddev.h", "HIDIOCINITREPORT", 0x4805},
+ {"linux/hiddev.h", "HIDIOCGREPORT", 0x4807},
+ {"linux/hiddev.h", "HIDIOCSREPORT", 0x4808},
+ {"linux/hiddev.h", "HIDIOCGREPORTINFO", 0x4809},
+ {"linux/hiddev.h", "HIDIOCGFIELDINFO", 0x480a},
+ {"linux/hiddev.h", "HIDIOCGUSAGE", 0x480b},
+ {"linux/hiddev.h", "HIDIOCSUSAGE", 0x480c},
+ {"linux/hiddev.h", "HIDIOCGUCODE", 0x480d},
+ {"linux/isdn.h", "IIOCNETAIF", 0x4901},
+ {"linux/isdn.h", "IIOCNETDIF", 0x4902},
+ {"linux/isdn.h", "IIOCNETSCF", 0x4903},
+ {"linux/isdn.h", "IIOCNETGCF", 0x4904},
+ {"linux/isdn.h", "IIOCNETANM", 0x4905},
+ {"linux/isdn.h", "IIOCNETDNM", 0x4906},
+ {"linux/isdn.h", "IIOCNETGNM", 0x4907},
+ {"linux/isdn.h", "IIOCGETSET", 0x4908},
+ {"linux/isdn.h", "IIOCSETSET", 0x4909},
+ {"linux/isdn.h", "IIOCSETVER", 0x490a},
+ {"linux/isdn.h", "IIOCNETHUP", 0x490b},
+ {"linux/isdn.h", "IIOCSETGST", 0x490c},
+ {"linux/isdn.h", "IIOCSETBRJ", 0x490d},
+ {"linux/isdn.h", "IIOCSIGPRF", 0x490e},
+ {"linux/isdn.h", "IIOCGETPRF", 0x490f},
+ {"linux/isdn.h", "IIOCSETPRF", 0x4910},
+ {"linux/isdn.h", "IIOCGETMAP", 0x4911},
+ {"linux/isdn.h", "IIOCSETMAP", 0x4912},
+ {"linux/isdn.h", "IIOCNETASL", 0x4913},
+ {"linux/isdn.h", "IIOCNETDIL", 0x4914},
+ {"linux/isdn.h", "IIOCGETCPS", 0x4915},
+ {"linux/isdn.h", "IIOCGETDVR", 0x4916},
+ {"linux/isdn.h", "IIOCNETLCR", 0x4917},
+ {"linux/isdn.h", "IIOCNETDWRSET", 0x4918},
+ {"linux/isdn.h", "IIOCNETALN", 0x4920},
+ {"linux/isdn.h", "IIOCNETDLN", 0x4921},
+ {"linux/isdn.h", "IIOCNETGPN", 0x4922},
+ {"linux/isdn.h", "IIOCDBGVAR", 0x497f},
+ {"linux/isdn.h", "IIOCDRVCTL", 0x4980},
+ {"linux/soundcard.h", "SOUND_MIXER_INFO", 0x4d65},
+ {"linux/soundcard.h", "SOUND_OLD_MIXER_INFO", 0x4d65},
+ {"linux/soundcard.h", "SOUND_MIXER_ACCESS", 0x4d66},
+ {"linux/soundcard.h", "SOUND_MIXER_AGC", 0x4d67},
+ {"linux/soundcard.h", "SOUND_MIXER_3DSE", 0x4d68},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE1", 0x4d6f},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE2", 0x4d70},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE3", 0x4d71},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE4", 0x4d72},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE5", 0x4d73},
+ {"linux/soundcard.h", "SOUND_MIXER_GETLEVELS", 0x4d74},
+ {"linux/soundcard.h", "SOUND_MIXER_SETLEVELS", 0x4d75},
+ {"linux/soundcard.h", "OSS_GETVERSION", 0x4d76},
+ {"linux/soundcard.h", "SNDCTL_DSP_RESET", 0x5000},
+ {"linux/soundcard.h", "SNDCTL_DSP_SYNC", 0x5001},
+ {"linux/soundcard.h", "SNDCTL_DSP_SPEED", 0x5002},
+ {"linux/soundcard.h", "SOUND_PCM_READ_RATE", 0x5002},
+ {"linux/soundcard.h", "SNDCTL_DSP_STEREO", 0x5003},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETBLKSIZE", 0x5004},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETFMT", 0x5005},
+ {"linux/soundcard.h", "SOUND_PCM_READ_BITS", 0x5005},
+ {"linux/soundcard.h", "SNDCTL_DSP_CHANNELS", 0x5006},
+ {"linux/soundcard.h", "SOUND_PCM_READ_CHANNELS", 0x5006},
+ {"linux/soundcard.h", "SOUND_PCM_WRITE_FILTER", 0x5007},
+ {"linux/soundcard.h", "SOUND_PCM_READ_FILTER", 0x5007},
+ {"linux/soundcard.h", "SNDCTL_DSP_POST", 0x5008},
+ {"linux/soundcard.h", "SNDCTL_DSP_SUBDIVIDE", 0x5009},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETFRAGMENT", 0x500a},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETFMTS", 0x500b},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETOSPACE", 0x500c},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETISPACE", 0x500d},
+ {"linux/soundcard.h", "SNDCTL_DSP_NONBLOCK", 0x500e},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETCAPS", 0x500f},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETTRIGGER", 0x5010},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETTRIGGER", 0x5010},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETIPTR", 0x5011},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETOPTR", 0x5012},
+ {"linux/soundcard.h", "SNDCTL_DSP_MAPINBUF", 0x5013},
+ {"linux/soundcard.h", "SNDCTL_DSP_MAPOUTBUF", 0x5014},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETSYNCRO", 0x5015},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETDUPLEX", 0x5016},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETODELAY", 0x5017},
+ {"linux/soundcard.h", "SNDCTL_DSP_PROFILE", 0x5017},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETCHANNELMASK", 0x5040},
+ {"linux/soundcard.h", "SNDCTL_DSP_BIND_CHANNEL", 0x5041},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETSPDIF", 0x5042},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETSPDIF", 0x5043},
+ {"linux/soundcard.h", "SNDCTL_SEQ_RESET", 0x5100},
+ {"linux/soundcard.h", "SNDCTL_SEQ_SYNC", 0x5101},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_INFO", 0x5102},
+ {"linux/soundcard.h", "SNDCTL_SEQ_CTRLRATE", 0x5103},
+ {"linux/soundcard.h", "SNDCTL_SEQ_GETOUTCOUNT", 0x5104},
+ {"linux/soundcard.h", "SNDCTL_SEQ_GETINCOUNT", 0x5105},
+ {"linux/soundcard.h", "SNDCTL_SEQ_PERCMODE", 0x5106},
+ {"linux/soundcard.h", "SNDCTL_FM_LOAD_INSTR", 0x5107},
+ {"linux/soundcard.h", "SNDCTL_SEQ_TESTMIDI", 0x5108},
+ {"linux/soundcard.h", "SNDCTL_SEQ_RESETSAMPLES", 0x5109},
+ {"linux/soundcard.h", "SNDCTL_SEQ_NRSYNTHS", 0x510a},
+ {"linux/soundcard.h", "SNDCTL_SEQ_NRMIDIS", 0x510b},
+ {"linux/soundcard.h", "SNDCTL_MIDI_INFO", 0x510c},
+ {"linux/soundcard.h", "SNDCTL_SEQ_THRESHOLD", 0x510d},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_MEMAVL", 0x510e},
+ {"linux/soundcard.h", "SNDCTL_FM_4OP_ENABLE", 0x510f},
+ {"linux/soundcard.h", "SNDCTL_SEQ_PANIC", 0x5111},
+ {"linux/soundcard.h", "SNDCTL_SEQ_OUTOFBAND", 0x5112},
+ {"linux/soundcard.h", "SNDCTL_SEQ_GETTIME", 0x5113},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_ID", 0x5114},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_CONTROL", 0x5115},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_REMOVESAMPLE", 0x5116},
+ {"linux/random.h", "RNDGETENTCNT", 0x5200},
+ {"linux/random.h", "RNDADDTOENTCNT", 0x5201},
+ {"linux/random.h", "RNDGETPOOL", 0x5202},
+ {"linux/random.h", "RNDADDENTROPY", 0x5203},
+ {"linux/random.h", "RNDZAPENTCNT", 0x5204},
+ {"linux/random.h", "RNDCLEARPOOL", 0x5206},
+ {"linux/soundcard.h", "SNDCTL_TMR_TIMEBASE", 0x5401},
+ {"linux/soundcard.h", "SNDCTL_TMR_START", 0x5402},
+ {"linux/soundcard.h", "SNDCTL_TMR_STOP", 0x5403},
+ {"linux/soundcard.h", "SNDCTL_TMR_CONTINUE", 0x5404},
+ {"linux/soundcard.h", "SNDCTL_TMR_TEMPO", 0x5405},
+ {"linux/soundcard.h", "SNDCTL_TMR_SOURCE", 0x5406},
+ {"linux/soundcard.h", "SNDCTL_TMR_METRONOME", 0x5407},
+ {"linux/soundcard.h", "SNDCTL_TMR_SELECT", 0x5408},
+ {"linux/if_tun.h", "TUNSETNOCSUM", 0x54c8},
+ {"linux/if_tun.h", "TUNSETDEBUG", 0x54c9},
+ {"linux/if_tun.h", "TUNSETIFF", 0x54ca},
+ {"linux/if_tun.h", "TUNSETPERSIST", 0x54cb},
+ {"linux/if_tun.h", "TUNSETOWNER", 0x54cc},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CONTROL", 0x5500},
+ {"linux/usbdevice_fs.h", "USBDEVFS_BULK", 0x5502},
+ {"linux/usbdevice_fs.h", "USBDEVFS_RESETEP", 0x5503},
+ {"linux/usbdevice_fs.h", "USBDEVFS_SETINTERFACE", 0x5504},
+ {"linux/usbdevice_fs.h", "USBDEVFS_SETCONFIGURATION", 0x5505},
+ {"linux/usbdevice_fs.h", "USBDEVFS_GETDRIVER", 0x5508},
+ {"linux/usbdevice_fs.h", "USBDEVFS_SUBMITURB", 0x550a},
+ {"linux/usbdevice_fs.h", "USBDEVFS_DISCARDURB", 0x550b},
+ {"linux/usbdevice_fs.h", "USBDEVFS_REAPURB", 0x550c},
+ {"linux/usbdevice_fs.h", "USBDEVFS_REAPURBNDELAY", 0x550d},
+ {"linux/usbdevice_fs.h", "USBDEVFS_DISCSIGNAL", 0x550e},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CLAIMINTERFACE", 0x550f},
+ {"linux/usbdevice_fs.h", "USBDEVFS_RELEASEINTERFACE", 0x5510},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CONNECTINFO", 0x5511},
+ {"linux/usbdevice_fs.h", "USBDEVFS_IOCTL", 0x5512},
+ {"linux/usbdevice_fs.h", "USBDEVFS_HUB_PORTINFO", 0x5513},
+ {"linux/usbdevice_fs.h", "USBDEVFS_RESET", 0x5514},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CLEAR_HALT", 0x5515},
+ {"linux/watchdog.h", "WDIOC_GETSUPPORT", 0x5700},
+ {"linux/watchdog.h", "WDIOC_GETSTATUS", 0x5701},
+ {"linux/watchdog.h", "WDIOC_GETBOOTSTATUS", 0x5702},
+ {"linux/watchdog.h", "WDIOC_GETTEMP", 0x5703},
+ {"linux/watchdog.h", "WDIOC_SETOPTIONS", 0x5704},
+ {"linux/watchdog.h", "WDIOC_KEEPALIVE", 0x5705},
+ {"linux/watchdog.h", "WDIOC_SETTIMEOUT", 0x5706},
+ {"linux/watchdog.h", "WDIOC_GETTIMEOUT", 0x5707},
+ {"linux/ite_gpio.h", "ITE_GPIO_IN", 0x5a00},
+ {"linux/ite_gpio.h", "ITE_GPIO_OUT", 0x5a01},
+ {"linux/ite_gpio.h", "ITE_GPIO_INT_CTRL", 0x5a02},
+ {"linux/ite_gpio.h", "ITE_GPIO_IN_STATUS", 0x5a03},
+ {"linux/ite_gpio.h", "ITE_GPIO_OUT_STATUS", 0x5a04},
+ {"linux/ite_gpio.h", "ITE_GPIO_GEN_CTRL", 0x5a05},
+ {"linux/ite_gpio.h", "ITE_GPIO_INT_WAIT", 0x5a06},
+ {"linux/sonet.h", "SONET_GETSTAT", 0x6110},
+ {"linux/sonet.h", "SONET_GETSTATZ", 0x6111},
+ {"linux/sonet.h", "SONET_SETDIAG", 0x6112},
+ {"linux/sonet.h", "SONET_CLRDIAG", 0x6113},
+ {"linux/sonet.h", "SONET_GETDIAG", 0x6114},
+ {"linux/sonet.h", "SONET_SETFRAMING", 0x6115},
+ {"linux/sonet.h", "SONET_GETFRAMING", 0x6116},
+ {"linux/sonet.h", "SONET_GETFRSENSE", 0x6117},
+ {"linux/atm_idt77105.h", "IDT77105_GETSTAT", 0x6132},
+ {"linux/atm_idt77105.h", "IDT77105_GETSTATZ", 0x6133},
+ {"linux/atmdev.h", "ATM_GETSTAT", 0x6150},
+ {"linux/atmdev.h", "ATM_GETSTATZ", 0x6151},
+ {"linux/atmdev.h", "ATM_GETLOOP", 0x6152},
+ {"linux/atmdev.h", "ATM_SETLOOP", 0x6153},
+ {"linux/atmdev.h", "ATM_QUERYLOOP", 0x6154},
+ {"linux/atm_eni.h", "ENI_MEMDUMP", 0x6160},
+ {"linux/atm_nicstar.h", "NS_GETPSTAT", 0x6161},
+ {"linux/atm_zatm.h", "ZATM_GETPOOL", 0x6161},
+ {"linux/atm_nicstar.h", "NS_SETBUFLEV", 0x6162},
+ {"linux/atm_zatm.h", "ZATM_GETPOOLZ", 0x6162},
+ {"linux/atm_nicstar.h", "NS_ADJBUFLEV", 0x6163},
+ {"linux/atm_zatm.h", "ZATM_SETPOOL", 0x6163},
+ {"linux/atm_zatm.h", "ZATM_GETTHIST", 0x6164},
+ {"linux/atm_eni.h", "ENI_SETMULT", 0x6167},
+ {"linux/atm_tcp.h", "SIOCSIFATMTCP", 0x6180},
+ {"linux/atmdev.h", "ATM_GETLINKRATE", 0x6181},
+ {"linux/atmdev.h", "ATM_GETNAMES", 0x6183},
+ {"linux/atmdev.h", "ATM_GETTYPE", 0x6184},
+ {"linux/atmdev.h", "ATM_GETESI", 0x6185},
+ {"linux/atmdev.h", "ATM_GETADDR", 0x6186},
+ {"linux/atmdev.h", "ATM_RSTADDR", 0x6187},
+ {"linux/atmdev.h", "ATM_ADDADDR", 0x6188},
+ {"linux/atmdev.h", "ATM_DELADDR", 0x6189},
+ {"linux/atmdev.h", "ATM_GETCIRANGE", 0x618a},
+ {"linux/atmdev.h", "ATM_SETCIRANGE", 0x618b},
+ {"linux/atmdev.h", "ATM_SETESI", 0x618c},
+ {"linux/atmdev.h", "ATM_SETESIF", 0x618d},
+ {"linux/atm_tcp.h", "ATMTCP_CREATE", 0x618e},
+ {"linux/atm_tcp.h", "ATMTCP_REMOVE", 0x618f},
+ {"linux/atmlec.h", "ATMLEC_CTRL", 0x61d0},
+ {"linux/atmlec.h", "ATMLEC_DATA", 0x61d1},
+ {"linux/atmlec.h", "ATMLEC_MCAST", 0x61d2},
+ {"linux/atmmpc.h", "ATMMPC_CTRL", 0x61d8},
+ {"linux/atmmpc.h", "ATMMPC_DATA", 0x61d9},
+ {"linux/atmclip.h", "SIOCMKCLIP", 0x61e0},
+ {"linux/atmarp.h", "ATMARPD_CTRL", 0x61e1},
+ {"linux/atmarp.h", "ATMARP_MKIP", 0x61e2},
+ {"linux/atmarp.h", "ATMARP_SETENTRY", 0x61e3},
+ {"linux/atmarp.h", "ATMARP_ENCAP", 0x61e5},
+ {"linux/atmsvc.h", "ATMSIGD_CTRL", 0x61f0},
+ {"linux/atmdev.h", "ATM_SETSC", 0x61f1},
+ {"linux/atmdev.h", "ATM_SETBACKEND", 0x61f2},
+ {"linux/coda.h", "CIOC_KERNEL_VERSION", 0x630a},
+ {"linux/comstats.h", "COM_GETPORTSTATS", 0x631e},
+ {"linux/comstats.h", "COM_CLRPORTSTATS", 0x631f},
+ {"linux/comstats.h", "COM_GETBRDSTATS", 0x6320},
+ {"linux/comstats.h", "COM_READPORT", 0x6328},
+ {"linux/comstats.h", "COM_READBOARD", 0x6329},
+ {"linux/comstats.h", "COM_READPANEL", 0x632a},
+ {"linux/devfs_fs.h", "DEVFSDIOC_GET_PROTO_REV", 0x6400},
+ {"linux/video_decoder.h", "DECODER_GET_CAPABILITIES", 0x6401},
+ {"linux/devfs_fs.h", "DEVFSDIOC_SET_EVENT_MASK", 0x6402},
+ {"linux/video_decoder.h", "DECODER_GET_STATUS", 0x6402},
+ {"linux/devfs_fs.h", "DEVFSDIOC_RELEASE_EVENT_QUEUE", 0x6403},
+ {"linux/video_decoder.h", "DECODER_SET_NORM", 0x6403},
+ {"linux/devfs_fs.h", "DEVFSDIOC_SET_DEBUG_MASK", 0x6404},
+ {"linux/video_decoder.h", "DECODER_SET_INPUT", 0x6404},
+ {"linux/video_decoder.h", "DECODER_SET_OUTPUT", 0x6405},
+ {"linux/video_decoder.h", "DECODER_ENABLE_OUTPUT", 0x6406},
+ {"linux/video_decoder.h", "DECODER_SET_PICTURE", 0x6407},
+ {"linux/video_decoder.h", "DECODER_DUMP", 0x64c0},
+ {"linux/video_encoder.h", "ENCODER_GET_CAPABILITIES", 0x6501},
+ {"linux/video_encoder.h", "ENCODER_SET_NORM", 0x6502},
+ {"linux/video_encoder.h", "ENCODER_SET_INPUT", 0x6503},
+ {"linux/video_encoder.h", "ENCODER_SET_OUTPUT", 0x6504},
+ {"linux/video_encoder.h", "ENCODER_ENABLE_OUTPUT", 0x6505},
+ {"linux/ext2_fs.h", "EXT2_IOC_GETFLAGS", 0x6601},
+ {"linux/ext3_fs.h", "EXT3_IOC_GETFLAGS", 0x6601},
+ {"linux/ext2_fs.h", "EXT2_IOC_SETFLAGS", 0x6602},
+ {"linux/ext3_fs.h", "EXT3_IOC_SETFLAGS", 0x6602},
+ {"linux/ext3_fs.h", "EXT3_IOC_GETVERSION", 0x6603},
+ {"linux/ext3_fs.h", "EXT3_IOC_SETVERSION", 0x6604},
+ {"linux/ext3_fs.h", "EXT3_IOC_WAIT_FOR_READONLY", 0x6663},
+ {"linux/i2o-dev.h", "I2OGETIOPS", 0x6900},
+ {"linux/i2o-dev.h", "I2OHRTGET", 0x6901},
+ {"linux/i2o-dev.h", "I2OLCTGET", 0x6902},
+ {"linux/i2o-dev.h", "I2OPARMSET", 0x6903},
+ {"linux/i2o-dev.h", "I2OPARMGET", 0x6904},
+ {"linux/i2o-dev.h", "I2OSWDL", 0x6905},
+ {"linux/i2o-dev.h", "I2OSWUL", 0x6906},
+ {"linux/i2o-dev.h", "I2OSWDEL", 0x6907},
+ {"linux/i2o-dev.h", "I2OVALIDATE", 0x6908},
+ {"linux/i2o-dev.h", "I2OHTML", 0x6909},
+ {"linux/i2o-dev.h", "I2OEVTREG", 0x690a},
+ {"linux/i2o-dev.h", "I2OEVTGET", 0x690b},
+ {"linux/i8k.h", "I8K_BIOS_VERSION", 0x6980},
+ {"linux/i8k.h", "I8K_MACHINE_ID", 0x6981},
+ {"linux/i8k.h", "I8K_POWER_STATUS", 0x6982},
+ {"linux/i8k.h", "I8K_FN_STATUS", 0x6983},
+ {"linux/i8k.h", "I8K_GET_TEMP", 0x6984},
+ {"linux/i8k.h", "I8K_GET_SPEED", 0x6985},
+ {"linux/i8k.h", "I8K_GET_FAN", 0x6986},
+ {"linux/i8k.h", "I8K_SET_FAN", 0x6987},
+ {"linux/joystick.h", "JSIOCGVERSION", 0x6a01},
+ {"linux/joystick.h", "JSIOCGAXES", 0x6a11},
+ {"linux/joystick.h", "JSIOCGBUTTONS", 0x6a12},
+ {"linux/joystick.h", "JSIOCSCORR", 0x6a21},
+ {"linux/joystick.h", "JSIOCGCORR", 0x6a22},
+ {"linux/joystick.h", "JSIOCSAXMAP", 0x6a31},
+ {"linux/joystick.h", "JSIOCGAXMAP", 0x6a32},
+ {"linux/joystick.h", "JSIOCSBTNMAP", 0x6a33},
+ {"linux/joystick.h", "JSIOCGBTNMAP", 0x6a34},
+ {"linux/udf_fs_i.h", "UDF_GETEASIZE", 0x6c40},
+ {"linux/udf_fs_i.h", "UDF_GETEABLOCK", 0x6c41},
+ {"linux/udf_fs_i.h", "UDF_GETVOLIDENT", 0x6c42},
+ {"linux/udf_fs_i.h", "UDF_RELOCATE_BLOCKS", 0x6c43},
+ {"linux/soundcard.h", "SNDCTL_MIDI_PRETIME", 0x6d00},
+ {"linux/synclink.h", "MGSL_IOCSPARAMS", 0x6d00},
+ {"linux/mtio.h", "MTIOCTOP", 0x6d01},
+ {"linux/soundcard.h", "SNDCTL_MIDI_MPUMODE", 0x6d01},
+ {"linux/synclink.h", "MGSL_IOCGPARAMS", 0x6d01},
+ {"linux/mtio.h", "MTIOCGET", 0x6d02},
+ {"linux/soundcard.h", "SNDCTL_MIDI_MPUCMD", 0x6d02},
+ {"linux/synclink.h", "MGSL_IOCSTXIDLE", 0x6d02},
+ {"linux/mtio.h", "MTIOCPOS", 0x6d03},
+ {"linux/synclink.h", "MGSL_IOCGTXIDLE", 0x6d03},
+ {"linux/mtio.h", "MTIOCGETCONFIG", 0x6d04},
+ {"linux/synclink.h", "MGSL_IOCTXENABLE", 0x6d04},
+ {"linux/mtio.h", "MTIOCSETCONFIG", 0x6d05},
+ {"linux/synclink.h", "MGSL_IOCRXENABLE", 0x6d05},
+ {"linux/mtio.h", "MTIOCRDFTSEG", 0x6d06},
+ {"linux/synclink.h", "MGSL_IOCTXABORT", 0x6d06},
+ {"linux/mtio.h", "MTIOCWRFTSEG", 0x6d07},
+ {"linux/synclink.h", "MGSL_IOCGSTATS", 0x6d07},
+ {"linux/mtio.h", "MTIOCVOLINFO", 0x6d08},
+ {"linux/synclink.h", "MGSL_IOCWAITEVENT", 0x6d08},
+ {"linux/mtio.h", "MTIOCGETSIZE", 0x6d09},
+ {"linux/synclink.h", "MGSL_IOCLOOPTXDONE", 0x6d09},
+ {"linux/mtio.h", "MTIOCFTFORMAT", 0x6d0a},
+ {"linux/mtio.h", "MTIOCFTCMD", 0x6d0b},
+ {"linux/synclink.h", "MGSL_IOCCLRMODCOUNT", 0x6d0f},
+ {"linux/zftape.h", "MTIOC_ZFTAPE_GETBLKSZ", 0x6d68},
+ {"linux/ncp_fs.h", "NCP_IOC_NCPREQUEST", 0x6e01},
+ {"linux/ncp_fs.h", "NCP_IOC_GETMOUNTUID", 0x6e02},
+ {"linux/ncp_fs.h", "NCP_IOC_GETMOUNTUID2", 0x6e02},
+ {"linux/ncp_fs.h", "NCP_IOC_CONN_LOGGED_IN", 0x6e03},
+ {"linux/ncp_fs.h", "NCP_IOC_GET_FS_INFO", 0x6e04},
+ {"linux/ncp_fs.h", "NCP_IOC_GET_FS_INFO_V2", 0x6e04},
+ {"linux/ncp_fs.h", "NCP_IOC_SIGN_INIT", 0x6e05},
+ {"linux/ncp_fs.h", "NCP_IOC_SIGN_WANTED", 0x6e06},
+ {"linux/ncp_fs.h", "NCP_IOC_SET_SIGN_WANTED", 0x6e06},
+ {"linux/ncp_fs.h", "NCP_IOC_LOCKUNLOCK", 0x6e07},
+ {"linux/ncp_fs.h", "NCP_IOC_GETROOT", 0x6e08},
+ {"linux/ncp_fs.h", "NCP_IOC_SETROOT", 0x6e08},
+ {"linux/ncp_fs.h", "NCP_IOC_GETOBJECTNAME", 0x6e09},
+ {"linux/ncp_fs.h", "NCP_IOC_SETOBJECTNAME", 0x6e09},
+ {"linux/ncp_fs.h", "NCP_IOC_GETPRIVATEDATA", 0x6e0a},
+ {"linux/ncp_fs.h", "NCP_IOC_SETPRIVATEDATA", 0x6e0a},
+ {"linux/ncp_fs.h", "NCP_IOC_GETCHARSETS", 0x6e0b},
+ {"linux/ncp_fs.h", "NCP_IOC_SETCHARSETS", 0x6e0b},
+ {"linux/ncp_fs.h", "NCP_IOC_GETDENTRYTTL", 0x6e0c},
+ {"linux/ncp_fs.h", "NCP_IOC_SETDENTRYTTL", 0x6e0c},
+ {"linux/matroxfb.h", "MATROXFB_SET_OUTPUT_CONNECTION", 0x6ef8},
+ {"linux/matroxfb.h", "MATROXFB_GET_OUTPUT_CONNECTION", 0x6ef8},
+ {"linux/matroxfb.h", "MATROXFB_GET_AVAILABLE_OUTPUTS", 0x6ef9},
+ {"linux/matroxfb.h", "MATROXFB_SET_OUTPUT_MODE", 0x6efa},
+ {"linux/matroxfb.h", "MATROXFB_GET_OUTPUT_MODE", 0x6efa},
+ {"linux/matroxfb.h", "MATROXFB_GET_ALL_OUTPUTS", 0x6efb},
+ {"linux/rtc.h", "RTC_AIE_ON", 0x7001},
+ {"linux/rtc.h", "RTC_AIE_OFF", 0x7002},
+ {"linux/intermezzo_fs.h", "PRESTO_GETMOUNT", 0x7003},
+ {"linux/rtc.h", "RTC_UIE_ON", 0x7003},
+ {"linux/intermezzo_fs.h", "PRESTO_SETPID", 0x7004},
+ {"linux/rtc.h", "RTC_UIE_OFF", 0x7004},
+ {"linux/rtc.h", "RTC_PIE_ON", 0x7005},
+ {"linux/intermezzo_fs.h", "PRESTO_CLOSE_JOURNALF", 0x7006},
+ {"linux/rtc.h", "RTC_PIE_OFF", 0x7006},
+ {"linux/intermezzo_fs.h", "PRESTO_SET_FSETROOT", 0x7007},
+ {"linux/rtc.h", "RTC_ALM_SET", 0x7007},
+ {"linux/intermezzo_fs.h", "PRESTO_CLEAR_FSETROOT", 0x7008},
+ {"linux/rtc.h", "RTC_ALM_READ", 0x7008},
+ {"linux/intermezzo_fs.h", "PRESTO_SETOPT", 0x7009},
+ {"linux/rtc.h", "RTC_RD_TIME", 0x7009},
+ {"linux/intermezzo_fs.h", "PRESTO_GETOPT", 0x700a},
+ {"linux/rtc.h", "RTC_SET_TIME", 0x700a},
+ {"linux/intermezzo_fs.h", "PRESTO_GET_KMLSIZE", 0x700b},
+ {"linux/rtc.h", "RTC_IRQP_READ", 0x700b},
+ {"linux/intermezzo_fs.h", "PRESTO_GET_RECNO", 0x700c},
+ {"linux/rtc.h", "RTC_IRQP_SET", 0x700c},
+ {"linux/rtc.h", "RTC_EPOCH_READ", 0x700d},
+ {"linux/rtc.h", "RTC_EPOCH_SET", 0x700e},
+ {"linux/rtc.h", "RTC_WIE_ON", 0x700f},
+ {"linux/rtc.h", "RTC_WKALM_SET", 0x700f},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_SETATTR", 0x7010},
+ {"linux/rtc.h", "RTC_WIE_OFF", 0x7010},
+ {"linux/rtc.h", "RTC_WKALM_RD", 0x7010},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_CREATE", 0x7011},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_LINK", 0x7012},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_UNLINK", 0x7013},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_SYMLINK", 0x7014},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_MKDIR", 0x7015},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_RMDIR", 0x7016},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_MKNOD", 0x7017},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_RENAME", 0x7018},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_CLOSE", 0x701a},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_IOPEN", 0x701b},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_SETEXTATTR", 0x701c},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_DELEXTATTR", 0x701d},
+ {"linux/intermezzo_fs.h", "PRESTO_MARK", 0x7020},
+ {"linux/intermezzo_fs.h", "PRESTO_RELEASE_PERMIT", 0x7021},
+ {"linux/intermezzo_fs.h", "PRESTO_CLEAR_ALL_FSETROOTS", 0x7022},
+ {"linux/intermezzo_fs.h", "PRESTO_BACKFETCH_LML", 0x7023},
+ {"linux/intermezzo_fs.h", "PRESTO_REINT", 0x7024},
+ {"linux/intermezzo_fs.h", "PRESTO_CANCEL_LML", 0x7025},
+ {"linux/intermezzo_fs.h", "PRESTO_RESET_FSET", 0x7026},
+ {"linux/intermezzo_fs.h", "PRESTO_COMPLETE_CLOSES", 0x7027},
+ {"linux/intermezzo_fs.h", "PRESTO_REINT_BEGIN", 0x7030},
+ {"linux/intermezzo_fs.h", "PRESTO_DO_REINT", 0x7031},
+ {"linux/intermezzo_fs.h", "PRESTO_REINT_END", 0x7032},
+ {"linux/nvram.h", "NVRAM_INIT", 0x7040},
+ {"linux/nvram.h", "NVRAM_SETCKS", 0x7041},
+ {"linux/ppdev.h", "PPSETMODE", 0x7080},
+ {"linux/ppdev.h", "PPRSTATUS", 0x7081},
+ {"linux/ppdev.h", "PPRCONTROL", 0x7083},
+ {"linux/ppdev.h", "PPWCONTROL", 0x7084},
+ {"linux/ppdev.h", "PPRDATA", 0x7085},
+ {"linux/ppdev.h", "PPWDATA", 0x7086},
+ {"linux/ppdev.h", "PPCLAIM", 0x708b},
+ {"linux/ppdev.h", "PPRELEASE", 0x708c},
+ {"linux/ppdev.h", "PPYIELD", 0x708d},
+ {"linux/ppdev.h", "PPFCONTROL", 0x708e},
+ {"linux/ppdev.h", "PPEXCL", 0x708f},
+ {"linux/ppdev.h", "PPDATADIR", 0x7090},
+ {"linux/ppdev.h", "PPNEGOT", 0x7091},
+ {"linux/ppdev.h", "PPWCTLONIRQ", 0x7092},
+ {"linux/ppdev.h", "PPCLRIRQ", 0x7093},
+ {"linux/ppdev.h", "PPSETPHASE", 0x7094},
+ {"linux/ppdev.h", "PPGETTIME", 0x7095},
+ {"linux/ppdev.h", "PPSETTIME", 0x7096},
+ {"linux/ppdev.h", "PPGETMODES", 0x7097},
+ {"linux/ppdev.h", "PPGETMODE", 0x7098},
+ {"linux/ppdev.h", "PPGETPHASE", 0x7099},
+ {"linux/ppdev.h", "PPGETFLAGS", 0x709a},
+ {"linux/ppdev.h", "PPSETFLAGS", 0x709b},
+ {"linux/serio.h", "SPIOCSTYPE", 0x7101},
+ {"linux/telephony.h", "PHONE_CAPABILITIES", 0x7180},
+ {"linux/telephony.h", "PHONE_CAPABILITIES_LIST", 0x7181},
+ {"linux/telephony.h", "PHONE_CAPABILITIES_CHECK", 0x7182},
+ {"linux/telephony.h", "PHONE_RING", 0x7183},
+ {"linux/telephony.h", "PHONE_HOOKSTATE", 0x7184},
+ {"linux/telephony.h", "PHONE_MAXRINGS", 0x7185},
+ {"linux/telephony.h", "PHONE_RING_CADENCE", 0x7186},
+ {"linux/telephony.h", "OLD_PHONE_RING_START", 0x7187},
+ {"linux/telephony.h", "PHONE_RING_START", 0x7187},
+ {"linux/telephony.h", "PHONE_RING_STOP", 0x7188},
+ {"linux/telephony.h", "PHONE_REC_CODEC", 0x7189},
+ {"linux/telephony.h", "PHONE_REC_START", 0x718a},
+ {"linux/telephony.h", "PHONE_REC_STOP", 0x718b},
+ {"linux/telephony.h", "PHONE_REC_DEPTH", 0x718c},
+ {"linux/telephony.h", "PHONE_FRAME", 0x718d},
+ {"linux/telephony.h", "PHONE_REC_VOLUME", 0x718e},
+ {"linux/telephony.h", "PHONE_REC_LEVEL", 0x718f},
+ {"linux/telephony.h", "PHONE_PLAY_CODEC", 0x7190},
+ {"linux/telephony.h", "PHONE_PLAY_START", 0x7191},
+ {"linux/telephony.h", "PHONE_PLAY_STOP", 0x7192},
+ {"linux/telephony.h", "PHONE_PLAY_DEPTH", 0x7193},
+ {"linux/telephony.h", "PHONE_PLAY_VOLUME", 0x7194},
+ {"linux/telephony.h", "PHONE_PLAY_LEVEL", 0x7195},
+ {"linux/telephony.h", "PHONE_DTMF_READY", 0x7196},
+ {"linux/telephony.h", "PHONE_GET_DTMF", 0x7197},
+ {"linux/telephony.h", "PHONE_GET_DTMF_ASCII", 0x7198},
+ {"linux/telephony.h", "PHONE_DTMF_OOB", 0x7199},
+ {"linux/telephony.h", "PHONE_EXCEPTION", 0x719a},
+ {"linux/telephony.h", "PHONE_PLAY_TONE", 0x719b},
+ {"linux/telephony.h", "PHONE_SET_TONE_ON_TIME", 0x719c},
+ {"linux/telephony.h", "PHONE_SET_TONE_OFF_TIME", 0x719d},
+ {"linux/telephony.h", "PHONE_GET_TONE_ON_TIME", 0x719e},
+ {"linux/telephony.h", "PHONE_GET_TONE_OFF_TIME", 0x719f},
+ {"linux/telephony.h", "PHONE_GET_TONE_STATE", 0x71a0},
+ {"linux/telephony.h", "PHONE_BUSY", 0x71a1},
+ {"linux/telephony.h", "PHONE_RINGBACK", 0x71a2},
+ {"linux/telephony.h", "PHONE_DIALTONE", 0x71a3},
+ {"linux/telephony.h", "PHONE_CPT_STOP", 0x71a4},
+ {"linux/telephony.h", "PHONE_PSTN_SET_STATE", 0x71a4},
+ {"linux/telephony.h", "PHONE_PSTN_GET_STATE", 0x71a5},
+ {"linux/telephony.h", "PHONE_WINK_DURATION", 0x71a6},
+ {"linux/telephony.h", "PHONE_QUERY_CODEC", 0x71a7},
+ {"linux/telephony.h", "PHONE_PSTN_LINETEST", 0x71a8},
+ {"linux/telephony.h", "PHONE_VAD", 0x71a9},
+ {"linux/telephony.h", "PHONE_WINK", 0x71aa},
+ {"linux/ixjuser.h", "IXJCTL_DSP_RESET", 0x71c0},
+ {"linux/ixjuser.h", "IXJCTL_CARDTYPE", 0x71c1},
+ {"linux/ixjuser.h", "IXJCTL_SERIAL", 0x71c2},
+ {"linux/ixjuser.h", "IXJCTL_DSP_TYPE", 0x71c3},
+ {"linux/ixjuser.h", "IXJCTL_DSP_VERSION", 0x71c4},
+ {"linux/ixjuser.h", "IXJCTL_DSP_IDLE", 0x71c5},
+ {"linux/ixjuser.h", "IXJCTL_TESTRAM", 0x71c6},
+ {"linux/ixjuser.h", "IXJCTL_SET_FILTER", 0x71c7},
+ {"linux/ixjuser.h", "IXJCTL_GET_FILTER_HIST", 0x71c8},
+ {"linux/ixjuser.h", "IXJCTL_INIT_TONE", 0x71c9},
+ {"linux/ixjuser.h", "IXJCTL_TONE_CADENCE", 0x71ca},
+ {"linux/ixjuser.h", "IXJCTL_AEC_START", 0x71cb},
+ {"linux/ixjuser.h", "IXJCTL_AEC_STOP", 0x71cc},
+ {"linux/ixjuser.h", "IXJCTL_AEC_GET_LEVEL", 0x71cd},
+ {"linux/ixjuser.h", "IXJCTL_SET_LED", 0x71ce},
+ {"linux/ixjuser.h", "IXJCTL_MIXER", 0x71cf},
+ {"linux/ixjuser.h", "IXJCTL_DAA_COEFF_SET", 0x71d0},
+ {"linux/ixjuser.h", "IXJCTL_PORT", 0x71d1},
+ {"linux/ixjuser.h", "IXJCTL_DAA_AGAIN", 0x71d2},
+ {"linux/ixjuser.h", "IXJCTL_PSTN_LINETEST", 0x71d3},
+ {"linux/ixjuser.h", "IXJCTL_CID", 0x71d4},
+ {"linux/ixjuser.h", "IXJCTL_POTS_PSTN", 0x71d5},
+ {"linux/ixjuser.h", "IXJCTL_FILTER_CADENCE", 0x71d6},
+ {"linux/ixjuser.h", "IXJCTL_PLAY_CID", 0x71d7},
+ {"linux/ixjuser.h", "IXJCTL_VMWI", 0x71d8},
+ {"linux/ixjuser.h", "IXJCTL_CIDCW", 0x71d9},
+ {"linux/ixjuser.h", "IXJCTL_VERSION", 0x71da},
+ {"linux/telephony.h", "PHONE_REC_VOLUME_LINEAR", 0x71db},
+ {"linux/telephony.h", "PHONE_PLAY_VOLUME_LINEAR", 0x71dc},
+ {"linux/ixjuser.h", "IXJCTL_SET_FILTER_RAW", 0x71dd},
+ {"linux/ixjuser.h", "IXJCTL_HZ", 0x71e0},
+ {"linux/ixjuser.h", "IXJCTL_RATE", 0x71e1},
+ {"linux/ixjuser.h", "IXJCTL_FRAMES_READ", 0x71e2},
+ {"linux/ixjuser.h", "IXJCTL_FRAMES_WRITTEN", 0x71e3},
+ {"linux/ixjuser.h", "IXJCTL_READ_WAIT", 0x71e4},
+ {"linux/ixjuser.h", "IXJCTL_WRITE_WAIT", 0x71e5},
+ {"linux/ixjuser.h", "IXJCTL_DRYBUFFER_READ", 0x71e6},
+ {"linux/ixjuser.h", "IXJCTL_DRYBUFFER_CLEAR", 0x71e7},
+ {"linux/ixjuser.h", "IXJCTL_DTMF_PRESCALE", 0x71e8},
+ {"linux/ixjuser.h", "IXJCTL_SIGCTL", 0x71e9},
+ {"linux/ixjuser.h", "IXJCTL_SC_RXG", 0x71ea},
+ {"linux/ixjuser.h", "IXJCTL_SC_TXG", 0x71eb},
+ {"linux/ixjuser.h", "IXJCTL_INTERCOM_START", 0x71fd},
+ {"linux/ixjuser.h", "IXJCTL_INTERCOM_STOP", 0x71fe},
+ {"linux/msdos_fs.h", "VFAT_IOCTL_READDIR_BOTH", 0x7201},
+ {"linux/msdos_fs.h", "VFAT_IOCTL_READDIR_SHORT", 0x7202},
+ {"linux/cdk.h", "STL_BINTR", 0x7314},
+ {"linux/cdk.h", "STL_BSTART", 0x7315},
+ {"linux/cdk.h", "STL_BSTOP", 0x7316},
+ {"linux/cdk.h", "STL_BRESET", 0x7317},
+ {"linux/cdk.h", "STL_GETPFLAG", 0x7350},
+ {"linux/cdk.h", "STL_SETPFLAG", 0x7351},
+ {"linux/if_ppp.h", "PPPIOCGCHAN", 0x7437},
+ {"linux/if_ppp.h", "PPPIOCATTCHAN", 0x7438},
+ {"linux/if_ppp.h", "PPPIOCDISCONN", 0x7439},
+ {"linux/if_ppp.h", "PPPIOCCONNECT", 0x743a},
+ {"linux/if_ppp.h", "PPPIOCSMRRU", 0x743b},
+ {"linux/if_ppp.h", "PPPIOCDETACH", 0x743c},
+ {"linux/if_ppp.h", "PPPIOCATTACH", 0x743d},
+ {"linux/if_ppp.h", "PPPIOCNEWUNIT", 0x743e},
+ {"linux/if_ppp.h", "PPPIOCGIDLE", 0x743f},
+ {"linux/if_ppp.h", "PPPIOCSDEBUG", 0x7440},
+ {"linux/if_ppp.h", "PPPIOCGDEBUG", 0x7441},
+ {"linux/if_ppp.h", "PPPIOCSACTIVE", 0x7446},
+ {"linux/if_ppp.h", "PPPIOCSPASS", 0x7447},
+ {"linux/if_ppp.h", "PPPIOCSNPMODE", 0x744b},
+ {"linux/if_ppp.h", "PPPIOCGNPMODE", 0x744c},
+ {"linux/if_ppp.h", "PPPIOCSCOMPRESS", 0x744d},
+ {"linux/if_ppp.h", "PPPIOCXFERUNIT", 0x744e},
+ {"linux/if_ppp.h", "PPPIOCSXASYNCMAP", 0x744f},
+ {"linux/if_ppp.h", "PPPIOCGXASYNCMAP", 0x7450},
+ {"linux/if_ppp.h", "PPPIOCSMAXCID", 0x7451},
+ {"linux/if_ppp.h", "PPPIOCSMRU", 0x7452},
+ {"linux/if_ppp.h", "PPPIOCGMRU", 0x7453},
+ {"linux/if_ppp.h", "PPPIOCSRASYNCMAP", 0x7454},
+ {"linux/if_ppp.h", "PPPIOCGRASYNCMAP", 0x7455},
+ {"linux/if_ppp.h", "PPPIOCGUNIT", 0x7456},
+ {"linux/if_ppp.h", "PPPIOCSASYNCMAP", 0x7457},
+ {"linux/if_ppp.h", "PPPIOCGASYNCMAP", 0x7458},
+ {"linux/if_ppp.h", "PPPIOCSFLAGS", 0x7459},
+ {"linux/if_ppp.h", "PPPIOCGFLAGS", 0x745a},
+ {"linux/jffs.h", "JFFS_PRINT_HASH", 0x745a},
+ {"linux/jffs.h", "JFFS_PRINT_TREE", 0x745b},
+ {"linux/jffs.h", "JFFS_GET_STATUS", 0x745c},
+ {"linux/isdn_ppp.h", "PPPIOCGCALLINFO", 0x7480},
+ {"linux/isdn_ppp.h", "PPPIOCBUNDLE", 0x7481},
+ {"linux/isdn_ppp.h", "PPPIOCGMPFLAGS", 0x7482},
+ {"linux/isdn_ppp.h", "PPPIOCSMPFLAGS", 0x7483},
+ {"linux/isdn_ppp.h", "PPPIOCSMPMTU", 0x7484},
+ {"linux/isdn_ppp.h", "PPPIOCSMPMRU", 0x7485},
+ {"linux/isdn_ppp.h", "PPPIOCGCOMPRESSORS", 0x7486},
+ {"linux/isdn_ppp.h", "PPPIOCSCOMPRESSOR", 0x7487},
+ {"linux/isdn_ppp.h", "PPPIOCGIFNAME", 0x7488},
+ {"linux/toshiba.h", "TOSH_SMM", 0x7490},
+ {"linux/smb_fs.h", "SMB_IOC_GETMOUNTUID", 0x7501},
+ {"linux/smb_fs.h", "SMB_IOC_NEWCONN", 0x7502},
+ {"linux/smb_fs.h", "SMB_IOC_GETMOUNTUID32", 0x7503},
+ {"linux/sonypi.h", "SONYPI_IOCGBRT", 0x7600},
+ {"linux/sonypi.h", "SONYPI_IOCSBRT", 0x7600},
+ {"linux/ext2_fs.h", "EXT2_IOC_GETVERSION", 0x7601},
+ {"linux/ext3_fs.h", "EXT3_IOC_GETVERSION_OLD", 0x7601},
+ {"linux/videodev.h", "VIDIOCGCAP", 0x7601},
+ {"linux/ext2_fs.h", "EXT2_IOC_SETVERSION", 0x7602},
+ {"linux/ext3_fs.h", "EXT3_IOC_SETVERSION_OLD", 0x7602},
+ {"linux/sonypi.h", "SONYPI_IOCGBAT1CAP", 0x7602},
+ {"linux/videodev.h", "VIDIOCGCHAN", 0x7602},
+ {"linux/sonypi.h", "SONYPI_IOCGBAT1REM", 0x7603},
+ {"linux/videodev.h", "VIDIOCSCHAN", 0x7603},
+ {"linux/sonypi.h", "SONYPI_IOCGBAT2CAP", 0x7604},
+ {"linux/videodev.h", "VIDIOCGTUNER", 0x7604},
+ {"linux/sonypi.h", "SONYPI_IOCGBAT2REM", 0x7605},
+ {"linux/videodev.h", "VIDIOCSTUNER", 0x7605},
+ {"linux/videodev.h", "VIDIOCGPICT", 0x7606},
+ {"linux/sonypi.h", "SONYPI_IOCGBATFLAGS", 0x7607},
+ {"linux/videodev.h", "VIDIOCSPICT", 0x7607},
+ {"linux/sonypi.h", "SONYPI_IOCGBLUE", 0x7608},
+ {"linux/videodev.h", "VIDIOCCAPTURE", 0x7608},
+ {"linux/sonypi.h", "SONYPI_IOCSBLUE", 0x7609},
+ {"linux/videodev.h", "VIDIOCGWIN", 0x7609},
+ {"linux/videodev.h", "VIDIOCSWIN", 0x760a},
+ {"linux/videodev.h", "VIDIOCGFBUF", 0x760b},
+ {"linux/videodev.h", "VIDIOCSFBUF", 0x760c},
+ {"linux/videodev.h", "VIDIOCKEY", 0x760d},
+ {"linux/videodev.h", "VIDIOCGFREQ", 0x760e},
+ {"linux/videodev.h", "VIDIOCSFREQ", 0x760f},
+ {"linux/videodev.h", "VIDIOCGAUDIO", 0x7610},
+ {"linux/videodev.h", "VIDIOCSAUDIO", 0x7611},
+ {"linux/videodev.h", "VIDIOCSYNC", 0x7612},
+ {"linux/videodev.h", "VIDIOCMCAPTURE", 0x7613},
+ {"linux/videodev.h", "VIDIOCGMBUF", 0x7614},
+ {"linux/videodev.h", "VIDIOCGUNIT", 0x7615},
+ {"linux/videodev.h", "VIDIOCGCAPTURE", 0x7616},
+ {"linux/videodev.h", "VIDIOCSCAPTURE", 0x7617},
+ {"linux/videodev.h", "VIDIOCSPLAYMODE", 0x7618},
+ {"linux/videodev.h", "VIDIOCSWRITEMODE", 0x7619},
+ {"linux/videodev.h", "VIDIOCGPLAYINFO", 0x761a},
+ {"linux/videodev.h", "VIDIOCSMICROCODE", 0x761b},
+ {"linux/videodev.h", "VIDIOCGVBIFMT", 0x761c},
+ {"linux/videodev.h", "VIDIOCSVBIFMT", 0x761d},
+ {"linux/meye.h", "MEYEIOC_G_PARAMS", 0x76c0},
+ {"linux/meye.h", "MEYEIOC_S_PARAMS", 0x76c1},
+ {"linux/meye.h", "MEYEIOC_QBUF_CAPT", 0x76c2},
+ {"linux/meye.h", "MEYEIOC_SYNC", 0x76c3},
+ {"linux/meye.h", "MEYEIOC_STILLCAPT", 0x76c4},
+ {"linux/meye.h", "MEYEIOC_STILLJCAPT", 0x76c5},
+ {"linux/dn.h", "SIOCSNETADDR", 0x89e0},
+ {"linux/dn.h", "OSIOCSNETADDR", 0x89e0},
+ {"linux/dn.h", "SIOCGNETADDR", 0x89e1},
+ {"linux/dn.h", "OSIOCGNETADDR", 0x89e1},
+ {"linux/auto_fs.h", "AUTOFS_IOC_READY", 0x9360},
+ {"linux/auto_fs.h", "AUTOFS_IOC_FAIL", 0x9361},
+ {"linux/auto_fs.h", "AUTOFS_IOC_CATATONIC", 0x9362},
+ {"linux/auto_fs.h", "AUTOFS_IOC_PROTOVER", 0x9363},
+ {"linux/auto_fs.h", "AUTOFS_IOC_SETTIMEOUT", 0x9364},
+ {"linux/auto_fs.h", "AUTOFS_IOC_EXPIRE", 0x9365},
+ {"linux/auto_fs4.h", "AUTOFS_IOC_EXPIRE_MULTI", 0x9366},
+ {"linux/nbd.h", "NBD_SET_SOCK", 0xab00},
+ {"linux/nbd.h", "NBD_SET_BLKSIZE", 0xab01},
+ {"linux/nbd.h", "NBD_SET_SIZE", 0xab02},
+ {"linux/nbd.h", "NBD_DO_IT", 0xab03},
+ {"linux/nbd.h", "NBD_CLEAR_SOCK", 0xab04},
+ {"linux/nbd.h", "NBD_CLEAR_QUE", 0xab05},
+ {"linux/nbd.h", "NBD_PRINT_DEBUG", 0xab06},
+ {"linux/nbd.h", "NBD_SET_SIZE_BLOCKS", 0xab07},
+ {"linux/nbd.h", "NBD_DISCONNECT", 0xab08},
+ {"linux/raw.h", "RAW_SETBIND", 0xac00},
+ {"linux/raw.h", "RAW_GETBIND", 0xac01},
+ {"linux/if_pppox.h", "PPPOEIOCSFWD", 0xb100},
+ {"linux/if_pppox.h", "PPPOEIOCDFWD", 0xb101},
+ {"linux/reiserfs_fs.h", "REISERFS_IOC_UNPACK", 0xcd01},
+ {"linux/lvm.h", "VG_CREATE_OLD", 0xfe00},
+ {"linux/lvm.h", "VG_REMOVE", 0xfe01},
+ {"linux/lvm.h", "VG_EXTEND", 0xfe03},
+ {"linux/lvm.h", "VG_REDUCE", 0xfe04},
+ {"linux/lvm.h", "VG_STATUS", 0xfe05},
+ {"linux/lvm.h", "VG_STATUS_GET_COUNT", 0xfe06},
+ {"linux/lvm.h", "VG_STATUS_GET_NAMELIST", 0xfe07},
+ {"linux/lvm.h", "VG_SET_EXTENDABLE", 0xfe08},
+ {"linux/lvm.h", "VG_RENAME", 0xfe09},
+ {"linux/lvm.h", "VG_CREATE", 0xfe0a},
+ {"linux/lvm.h", "LV_CREATE", 0xfe20},
+ {"linux/lvm.h", "LV_REMOVE", 0xfe21},
+ {"linux/lvm.h", "LV_ACTIVATE", 0xfe22},
+ {"linux/lvm.h", "LV_DEACTIVATE", 0xfe23},
+ {"linux/lvm.h", "LV_EXTEND", 0xfe24},
+ {"linux/lvm.h", "LV_REDUCE", 0xfe25},
+ {"linux/lvm.h", "LV_STATUS_BYNAME", 0xfe26},
+ {"linux/lvm.h", "LV_STATUS_BYINDEX", 0xfe27},
+ {"linux/lvm.h", "LV_SET_ACCESS", 0xfe28},
+ {"linux/lvm.h", "LV_SET_ALLOCATION", 0xfe29},
+ {"linux/lvm.h", "LV_SET_STATUS", 0xfe2a},
+ {"linux/lvm.h", "LE_REMAP", 0xfe2b},
+ {"linux/lvm.h", "LV_SNAPSHOT_USE_RATE", 0xfe2c},
+ {"linux/lvm.h", "LV_STATUS_BYDEV", 0xfe2e},
+ {"linux/lvm.h", "LV_RENAME", 0xfe2f},
+ {"linux/lvm.h", "LV_BMAP", 0xfe30},
+ {"linux/lvm.h", "PV_STATUS", 0xfe40},
+ {"linux/lvm.h", "PV_CHANGE", 0xfe41},
+ {"linux/lvm.h", "PV_FLUSH", 0xfe42},
+ {"linux/lvm.h", "PE_LOCK_UNLOCK", 0xfe50},
+ {"linux/lvm.h", "LVM_GET_IOP_VERSION", 0xfe98},
+ {"linux/lvm.h", "LVM_RESET", 0xfe99},
+ {"linux/lvm.h", "LVM_LOCK_LVM", 0xff00},
diff --git a/strace/linux/hppa/signalent.h b/strace/linux/hppa/signalent.h
new file mode 100644
index 0000000..92e5565
--- /dev/null
+++ b/strace/linux/hppa/signalent.h
@@ -0,0 +1,38 @@
+ "SIG_0", /* 0 */
+ "SIGHUP", /* 1 */
+ "SIGINT", /* 2 */
+ "SIGQUIT", /* 3 */
+ "SIGILL", /* 4 */
+ "SIGTRAP", /* 5 */
+ "SIGABRT", /* 6 */
+ "SIGEMT", /* 7 */
+ "SIGFPE", /* 8 */
+ "SIGKILL", /* 9 */
+ "SIGBUS", /* 10 */
+ "SIGSEGV", /* 11 */
+ "SIGSYS", /* 12 */
+ "SIGPIPE", /* 13 */
+ "SIGALRM", /* 14 */
+ "SIGTERM", /* 15 */
+ "SIGUSR1", /* 16 */
+ "SIGUSR2", /* 17 */
+ "SIGCHLD", /* 18 */
+ "SIGPWR", /* 19 */
+ "SIGVTALRM", /* 20 */
+ "SIGPROF", /* 21 */
+ "SIGIO", /* 22 */
+ "SIGWINCH", /* 23 */
+ "SIGSTOP", /* 24 */
+ "SIGTSTP", /* 25 */
+ "SIGCONT", /* 26 */
+ "SIGTTIN", /* 27 */
+ "SIGTTOU", /* 28 */
+ "SIGURG", /* 29 */
+ "SIGLOST", /* 30 */
+ "SIGUNUSED", /* 31 */
+ "SIG_32", /* 32 */
+ "SIGXCPU", /* 33 */
+ "SIGXFSZ", /* 34 */
+ "SIG_35", /* 35 */
+ "SIGSTKFLT", /* 36 */
+ "SIGRTMIN", /* 37 */
diff --git a/strace/linux/hppa/syscallent.h b/strace/linux/hppa/syscallent.h
new file mode 100644
index 0000000..60a5016
--- /dev/null
+++ b/strace/linux/hppa/syscallent.h
@@ -0,0 +1,302 @@
+/*
+ * Copyright (c) 2001 Hewlett-Packard, Matthew Wilcox
+ *
+ * $Id: syscallent.h,v 1.12 2005/05/09 08:02:04 roland Exp $
+ *
+ */
+
+ { 5, 0, printargs, "SYS_0" }, /* 0 */
+ { 1, TP, sys_exit, "exit" }, /* 1 */
+ { 0, TP, sys_fork, "fork" }, /* 2 */
+ { 3, TF, sys_read, "read" }, /* 3 */
+ { 3, TF, sys_write, "write" }, /* 4 */
+ { 3, TF, sys_open, "open" }, /* 5 */
+ { 1, 0, sys_close, "close" }, /* 6 */
+ { 3, TP, sys_waitpid, "waitpid" }, /* 7 */
+ { 2, TF, sys_creat, "creat" }, /* 8 */
+ { 2, TF, sys_link, "link" }, /* 9 */
+ { 1, TF, sys_unlink, "unlink" }, /* 10 */
+ { 3, TF|TP, sys_execve, "execve" }, /* 11 */
+ { 1, TF, sys_chdir, "chdir" }, /* 12 */
+ { 1, 0, sys_time, "time" }, /* 13 */
+ { 3, TF, sys_mknod, "mknod" }, /* 14 */
+ { 2, TF, sys_chmod, "chmod" }, /* 15 */
+ { 3, TF, sys_chown, "lchown" }, /* 16 */
+ { 3, TN, sys_socket, "socket" }, /* 17 */
+ { 2, TF, sys_stat, "newstat" }, /* 18 */
+ { 3, TF, sys_lseek, "lseek" }, /* 19 */
+ { 0, 0, sys_getpid, "getpid" }, /* 20 */
+ { 5, TF, sys_mount, "mount" }, /* 21 */
+ { 3, TN, sys_bind, "bind" }, /* 22 */
+ { 1, 0, sys_setuid, "setuid" }, /* 23 */
+ { 0, 0, sys_getuid, "getuid" }, /* 24 */
+ { 1, 0, sys_stime, "stime" }, /* 25 */
+ { 4, 0, sys_ptrace, "ptrace" }, /* 26 */
+ { 1, 0, sys_alarm, "alarm" }, /* 27 */
+ { 2, 0, sys_fstat, "newfstat" }, /* 28 */
+ { 0, 0, sys_pause, "pause" }, /* 29 */
+ { 2, 0, sys_utime, "utime" }, /* 30 */
+ { 3, TN, sys_connect, "connect" }, /* 31 */
+ { 2, TN, sys_listen, "listen" }, /* 32 */
+ { 2, TF, sys_access, "access" }, /* 33 */
+ { 1, 0, sys_nice, "nice" }, /* 34 */
+ { 3, TN, sys_accept, "accept" }, /* 35 */
+ { 0, 0, sys_sync, "sync" }, /* 36 */
+ { 2, TS, sys_kill, "kill" }, /* 37 */
+ { 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, 0, sys_times, "times" }, /* 43 */
+ { 3, TN, sys_getsockname, "getsockname" }, /* 44 */
+ { 1, 0, sys_brk, "brk" }, /* 45 */
+ { 1, 0, sys_setgid, "setgid" }, /* 46 */
+ { 0, 0, sys_getgid, "getgid" }, /* 47 */
+ { 2, 0, sys_signal, "signal" }, /* 48 */
+ { 0, 0, sys_geteuid, "geteuid" }, /* 49 */
+ { 0, 0, sys_getegid, "getegid" }, /* 50 */
+ { 1, TF, sys_acct, "acct" }, /* 51 */
+ { 2, 0, sys_umount2, "umount2" }, /* 52 */
+ { 3, TN, sys_getpeername, "lock" }, /* 53 */
+ { 3, 0, sys_ioctl, "ioctl" }, /* 54 */
+ { 3, 0, sys_fcntl, "fcntl" }, /* 55 */
+ { 4, TN, sys_socketpair, "socketpair" }, /* 56 */
+ { 2, 0, sys_setpgid, "setpgid" }, /* 57 */
+ { 4, TN, sys_send, "send" }, /* 58 */
+ { 1, 0, sys_uname, "newuname" }, /* 59 */
+ { 1, 0, sys_umask, "umask" }, /* 60 */
+ { 1, TF, sys_chroot, "chroot" }, /* 61 */
+ { 2, 0, sys_ustat, "ustat" }, /* 62 */
+ { 2, 0, sys_dup2, "dup2" }, /* 63 */
+ { 0, 0, sys_getppid, "getppid" }, /* 64 */
+ { 0, 0, sys_getpgrp, "getpgrp" }, /* 65 */
+ { 0, 0, sys_setsid, "setsid" }, /* 66 */
+ { 2, TF, sys_pivotroot, "pivot_root" }, /* 67 */
+ { 5, 0, printargs, "sgetmask" }, /* 68 */
+ { 5, 0, printargs, "ssetmask" }, /* 69 */
+ { 2, 0, sys_setreuid, "setreuid" }, /* 70 */
+ { 2, 0, sys_setregid, "setregid" }, /* 71 */
+ { 3, 0, sys_mincore, "mincore" }, /* 72 */
+ { 1, TS, sys_sigpending, "sigpending" }, /* 73 */
+ { 2, 0, sys_sethostname, "sethostname" }, /* 74 */
+ { 2, 0, sys_setrlimit, "setrlimit" }, /* 75 */
+ { 2, 0, sys_getrlimit, "getrlimit" }, /* 76 */
+ { 2, 0, sys_getrusage, "getrusage" }, /* 77 */
+ { 2, 0, sys_gettimeofday, "gettimeofday" }, /* 78 */
+ { 2, 0, sys_settimeofday, "settimeofday" }, /* 79 */
+ { 2, 0, sys_getgroups, "getgroups" }, /* 80 */
+ { 2, 0, sys_setgroups, "setgroups" }, /* 81 */
+ { 6, TN, sys_sendto, "sendto" }, /* 82 */
+ { 2, TF, sys_symlink, "symlink" }, /* 83 */
+ { 2, TF, sys_lstat, "newlstat" }, /* 84 */
+ { 3, TF, sys_readlink, "readlink" }, /* 85 */
+ { 1, 0, sys_uselib, "uselib" }, /* 86 */
+ { 1, 0, sys_swapon, "swapon" }, /* 87 */
+ { 3, 0, sys_reboot, "reboot" }, /* 88 */
+ { 6, 0, sys_mmap, "mmap2" }, /* 89 */
+ { 6, 0, sys_mmap, "mmap" }, /* 90 */
+ { 2, 0, 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, 0, sys_getpriority, "getpriority" }, /* 96 */
+ { 3, 0, sys_setpriority, "setpriority" }, /* 97 */
+ { 4, TN, sys_recv, "recv" }, /* 98 */
+ { 2, TF, sys_statfs, "statfs" }, /* 99 */
+ { 2, 0, sys_fstatfs, "fstatfs" }, /* 100 */
+ { 2, TF, sys_stat64, "stat64" }, /* 101 */
+ { 5, 0, printargs, "SYS_102" }, /* 102 */
+ { 3, 0, sys_syslog, "syslog" }, /* 103 */
+ { 3, 0, sys_setitimer, "setitimer" }, /* 104 */
+ { 2, 0, sys_getitimer, "getitimer" }, /* 105 */
+ { 2, 0, sys_capget, "capget" }, /* 106 */
+ { 2, 0, sys_capset, "capset" }, /* 107 */
+ { 5, TF, sys_pread, "pread" }, /* 108 */
+ { 5, TF, sys_pwrite, "pwrite" }, /* 109 */
+ { 2, 0, sys_getcwd, "getcwd" }, /* 110 */
+ { 0, 0, sys_vhangup, "vhangup" }, /* 111 */
+ { 2, TF, sys_fstat64, "fstat64" }, /* 112 */
+ { 0, 0, sys_vfork, "vfork" }, /* 113 */
+ { 4, TP, sys_wait4, "wait4" }, /* 114 */
+ { 1, 0, sys_swapoff, "swapoff" }, /* 115 */
+ { 1, 0, sys_sysinfo, "sysinfo" }, /* 116 */
+ { 2, TN, sys_shutdown, "shutdown" }, /* 117 */
+ { 1, 0, sys_fsync, "fsync" }, /* 118 */
+ { 3, 0, sys_madvise, "madvise" }, /* 119 */
+ { 5, TP, sys_clone, "clone" }, /* 120 */
+ { 2, 0, sys_setdomainname, "setdomainname" }, /* 121 */
+ { 4, TF, sys_sendfile, "sendfile" }, /* 122 */
+ { 6, TN, sys_recvfrom, "recvfrom" }, /* 123 */
+ { 1, 0, sys_adjtimex, "adjtimex" }, /* 124 */
+ { 3, 0, sys_mprotect, "mprotect" }, /* 125 */
+ { 3, TS, sys_sigprocmask, "sigprocmask" }, /* 126 */
+ { 2, 0, sys_create_module, "create_module" }, /* 127 */
+ { 4, 0, sys_init_module, "init_module" }, /* 128 */
+ { 1, 0, sys_delete_module, "delete_module" }, /* 129 */
+ { 1, 0, sys_get_kernel_syms, "get_kernel_syms" }, /* 130 */
+ { 4, 0, sys_quotactl, "quotactl" }, /* 131 */
+ { 1, 0, sys_getpgid, "getpgid" }, /* 132 */
+ { 1, TF, sys_fchdir, "fchdir" }, /* 133 */
+ { 0, 0, sys_bdflush, "bdflush" }, /* 134 */
+ { 5, 0, sys_sysfs, "sysfs" }, /* 135 */
+ { 1, 0, sys_personality, "personality" }, /* 136 */
+ { 5, 0, sys_afs_syscall, "afs_syscall" }, /* 137 */
+ { 1, 0, sys_setfsuid, "setfsuid" }, /* 138 */
+ { 1, 0, sys_setfsgid, "setfsgid" }, /* 139 */
+ { 5, TF, sys_llseek, "_llseek" }, /* 140 */
+ { 3, 0, sys_getdents, "getdents" }, /* 141 */
+ { 5, 0, sys_select, "_newselect" }, /* 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 */
+ { 1, 0, sys_getsid, "getsid" }, /* 147 */
+ { 1, 0, 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 */
+ { 1, 0, sys_munlockall, "munlockall" }, /* 153 */
+ { 2, 0, sys_sched_setparam, "sched_setparam" }, /* 154 */
+ { 2, 0, sys_sched_getparam, "sched_getparam" }, /* 155 */
+ { 3, 0, sys_sched_setscheduler, "sched_setscheduler" }, /* 156 */
+ { 2, 0, sys_sched_getscheduler, "sched_getscheduler" }, /* 157 */
+ { 0, 0, sys_sched_yield, "sched_yield" }, /* 158 */
+ { 1, 0, sys_sched_get_priority_max,"sched_get_priority_max"}, /* 159 */
+ { 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 */
+ { 4, 0, sys_mremap, "mremap" }, /* 163 */
+ { 3, 0, sys_setresuid, "setresuid" }, /* 164 */
+ { 3, 0, sys_setresuid, "getresuid" }, /* 165 */
+ { 2, TS, sys_sigaltstack, "sigaltstack" }, /* 166 */
+ { 5, 0, sys_query_module, "query_module" }, /* 167 */
+ { 3, 0, sys_poll, "poll" }, /* 168 */
+ { 3, 0, printargs, "nfsservctl" }, /* 169 */
+ { 3, 0, sys_setresgid, "setresgid" }, /* 170 */
+ { 3, 0, sys_setresgid, "getresgid" }, /* 171 */
+ { 5, 0, sys_prctl, "prctl" }, /* 172 */
+ { 1, TS, sys_sigreturn, "rt_sigreturn" }, /* 173 */
+ { 4, TS, sys_rt_sigaction, "rt_sigaction" }, /* 174 */
+ { 4, TS, sys_rt_sigprocmask, "rt_sigprocmask" }, /* 175 */
+ { 2, TS, sys_rt_sigpending, "rt_sigpending" }, /* 176 */
+ { 4, TS, sys_rt_sigtimedwait, "rt_sigtimedwait" }, /* 177 */
+ { 3, TS, sys_rt_sigqueueinfo, "rt_sigqueueinfo" }, /* 178 */
+ { 2, TS, sys_rt_sigsuspend, "rt_sigsuspend" }, /* 179 */
+ { 3, TF, sys_chown, "chown" }, /* 180 */
+ { 5, TN, sys_setsockopt, "setsockopt" }, /* 181 */
+ { 5, TN, sys_getsockopt, "getsockopt" }, /* 182 */
+ { 5, TN, sys_sendmsg, "sendmsg" }, /* 183 */
+ { 5, TN, sys_recvmsg, "recvmsg" }, /* 184 */
+ { 4, TI, sys_semop, "semop" }, /* 185 */
+ { 4, TI, sys_semget, "semget" }, /* 186 */
+ { 4, TI, sys_semctl, "semctl" }, /* 187 */
+ { 4, TI, sys_msgsnd, "msgsnd" }, /* 188 */
+ { 4, TI, sys_msgrcv, "msgrcv" }, /* 189 */
+ { 4, TI, sys_msgget, "msgget" }, /* 190 */
+ { 4, TI, sys_msgctl, "msgctl" }, /* 191 */
+ { 4, TI, sys_shmat, "shmat" }, /* 192 */
+ { 4, TI, sys_shmdt, "shmdt" }, /* 193 */
+ { 4, TI, sys_shmget, "shmget" }, /* 194 */
+ { 4, TI, sys_shmctl, "shmctl" }, /* 195 */
+ { 5, 0, sys_getpmsg, "getpmsg" }, /* 196 */
+ { 5, 0, sys_putpmsg, "putpmsg" }, /* 197 */
+ { 2, TF, sys_lstat64, "lstat64" }, /* 198 */
+ { 3, TF, sys_truncate64, "truncate64" }, /* 199 */
+ { 3, TF, sys_ftruncate64, "ftruncate64" }, /* 200 */
+ { 3, 0, sys_getdents64, "getdents64" }, /* 201 */
+ { 3, 0, sys_fcntl, "fcntl64" }, /* 202 */
+ { 5, 0, printargs, "attrctl" }, /* 203 */
+ { 5, 0, printargs, "acl_get" }, /* 204 */
+ { 5, 0, printargs, "acl_set" }, /* 205 */
+ { 0, 0, printargs, "gettid" }, /* 206 */
+ { 4, 0, sys_readahead, "readahead" }, /* 207 */
+ { 2, TS, sys_kill, "tkill" }, /* 208 */
+ { 4, TF, sys_sendfile, "sendfile64" }, /* 209 */
+ { 5, 0, sys_futex, "futex" }, /* 210 */
+ { 3, 0, sys_sched_setaffinity, "sched_setaffinity" }, /* 211 */
+ { 3, 0, sys_sched_getaffinity, "sched_getaffinity" }, /* 212 */
+ { 5, 0, printargs, "set_thread_area" }, /* 213 */
+ { 5, 0, printargs, "get_thread_area" }, /* 214 */
+ { 2, 0, sys_io_setup, "io_setup" }, /* 215 */
+ { 1, 0, sys_io_destroy, "io_destroy" }, /* 216 */
+ { 5, 0, sys_io_getevents, "io_getevents" }, /* 217 */
+ { 3, 0, sys_io_submit, "io_submit" }, /* 218 */
+ { 4, 0, sys_io_cancel, "io_cancel" }, /* 219 */
+ { 5, 0, printargs, "alloc_hugepages" }, /* 220 */
+ { 1, 0, printargs, "free_hugepages" }, /* 221 */
+ { 1, TP, sys_exit, "exit_group" }, /* 222 */
+ { 4, 0, printargs, "lookup_dcookie" }, /* 223 */
+ { 1, 0, sys_epoll_create, "epoll_create" }, /* 224 */
+ { 4, 0, sys_epoll_ctl, "epoll_ctl" }, /* 225 */
+ { 4, 0, sys_epoll_wait, "epoll_wait" }, /* 226 */
+ { 5, 0, printargs, "remap_file_pages" }, /* 227 */
+ { 5, 0, printargs, "semtimedop" }, /* 228 */
+ { 5, 0, printargs, "mq_open" }, /* 229 */
+ { 5, 0, printargs, "mq_unlink" }, /* 230 */
+ { 5, 0, printargs, "mq_timedsend" }, /* 231 */
+ { 5, 0, printargs, "mq_timedreceive" }, /* 232 */
+ { 5, 0, printargs, "mq_notify" }, /* 233 */
+ { 5, 0, printargs, "mq_getsetattr" }, /* 234 */
+ { 4, 0, printargs, "waitid" }, /* 235 */
+ { 5, 0, printargs, "fadvise64_64" }, /* 236 */
+ { 5, 0, printargs, "set_tid_address" }, /* 237 */
+ { 5, TF, sys_setxattr, "setxattr" }, /* 238 */
+ { 5, TF, sys_setxattr, "lsetxattr" }, /* 239 */
+ { 5, 0, sys_fsetxattr, "fsetxattr" }, /* 240 */
+ { 4, TF, sys_getxattr, "getxattr" }, /* 241 */
+ { 4, TF, sys_getxattr, "lgetxattr" }, /* 242 */
+ { 4, 0, sys_fgetxattr, "fgetxattr" }, /* 243 */
+ { 5, TF, sys_listxattr, "listxattr" }, /* 244 */
+ { 5, TF, sys_listxattr, "llistxattr" }, /* 245 */
+ { 5, 0, sys_flistxattr, "flistxattr" }, /* 246 */
+ { 5, TF, sys_removexattr, "removexattr" }, /* 247 */
+ { 5, TF, sys_removexattr, "lremovexattr" }, /* 248 */
+ { 5, 0, sys_fremovexattr, "fremovexattr" }, /* 249 */
+ { 3, 0, sys_timer_create, "timer_create" }, /* 250 */
+ { 4, 0, sys_timer_settime, "timer_settime" }, /* 251 */
+ { 2, 0, sys_timer_gettime, "timer_gettime" }, /* 252 */
+ { 1, 0, sys_timer_getoverrun, "timer_getoverrun" }, /* 253 */
+ { 1, 0, sys_timer_delete, "timer_delete" }, /* 254 */
+ { 2, 0, sys_clock_settime, "clock_settime" }, /* 255 */
+ { 2, 0, sys_clock_gettime, "clock_gettime" }, /* 256 */
+ { 2, 0, sys_clock_getres, "clock_getres" }, /* 257 */
+ { 5, 0, printargs, "clock_nanosleep" }, /* 258 */
+ { 5, 0, printargs, "tgkill" }, /* 259 */
+ { 5, 0, printargs, "mbind" }, /* 260 */
+ { 5, 0, printargs, "get_mempolicy" }, /* 261 */
+ { 5, 0, printargs, "set_mempolicy" }, /* 262 */
+ { 5, 0, printargs, "SYS_263" }, /* 263 */
+ { 5, 0, printargs, "SYS_264" }, /* 264 */
+ { 5, 0, printargs, "SYS_265" }, /* 265 */
+ { 5, 0, printargs, "SYS_266" }, /* 266 */
+ { 5, 0, printargs, "SYS_267" }, /* 267 */
+ { 5, 0, printargs, "SYS_268" }, /* 268 */
+ { 5, 0, printargs, "SYS_269" }, /* 269 */
+ { 5, 0, printargs, "SYS_270" }, /* 270 */
+ { 5, 0, printargs, "SYS_271" }, /* 271 */
+ { 5, 0, printargs, "SYS_272" }, /* 272 */
+ { 5, 0, printargs, "SYS_273" }, /* 273 */
+ { 5, 0, printargs, "SYS_274" }, /* 274 */
+ { 5, 0, printargs, "SYS_275" }, /* 275 */
+ { 5, 0, printargs, "SYS_276" }, /* 276 */
+ { 5, 0, printargs, "SYS_277" }, /* 277 */
+ { 5, 0, printargs, "SYS_278" }, /* 278 */
+ { 5, 0, printargs, "SYS_279" }, /* 279 */
+ { 5, 0, printargs, "SYS_280" }, /* 280 */
+ { 5, 0, printargs, "SYS_281" }, /* 281 */
+ { 5, 0, printargs, "SYS_282" }, /* 282 */
+ { 5, 0, printargs, "SYS_283" }, /* 283 */
+ { 5, 0, printargs, "SYS_284" }, /* 284 */
+ { 5, 0, printargs, "SYS_285" }, /* 285 */
+ { 5, 0, printargs, "SYS_286" }, /* 286 */
+ { 5, 0, printargs, "SYS_287" }, /* 287 */
+ { 5, 0, printargs, "SYS_288" }, /* 288 */
+ { 5, 0, printargs, "SYS_289" }, /* 289 */
+ { 5, 0, printargs, "SYS_290" }, /* 290 */
+ { 5, 0, printargs, "SYS_291" }, /* 291 */
+ { 5, 0, printargs, "SYS_292" }, /* 292 */
+ { 5, 0, printargs, "SYS_293" }, /* 293 */
+ { 5, 0, printargs, "SYS_294" }, /* 294 */
diff --git a/strace/linux/ia64/errnoent.h b/strace/linux/ia64/errnoent.h
new file mode 100644
index 0000000..180b506
--- /dev/null
+++ b/strace/linux/ia64/errnoent.h
@@ -0,0 +1,125 @@
+ "ERRNO_0", /* 0 */
+ "EPERM", /* 1 */
+ "ENOENT", /* 2 */
+ "ESRCH", /* 3 */
+ "EINTR", /* 4 */
+ "EIO", /* 5 */
+ "ENXIO", /* 6 */
+ "E2BIG", /* 7 */
+ "ENOEXEC", /* 8 */
+ "EBADF", /* 9 */
+ "ECHILD", /* 10 */
+ "EAGAIN", /* 11 */
+ "ENOMEM", /* 12 */
+ "EACCES", /* 13 */
+ "EFAULT", /* 14 */
+ "ENOTBLK", /* 15 */
+ "EBUSY", /* 16 */
+ "EEXIST", /* 17 */
+ "EXDEV", /* 18 */
+ "ENODEV", /* 19 */
+ "ENOTDIR", /* 20 */
+ "EISDIR", /* 21 */
+ "EINVAL", /* 22 */
+ "ENFILE", /* 23 */
+ "EMFILE", /* 24 */
+ "ENOTTY", /* 25 */
+ "ETXTBSY", /* 26 */
+ "EFBIG", /* 27 */
+ "ENOSPC", /* 28 */
+ "ESPIPE", /* 29 */
+ "EROFS", /* 30 */
+ "EMLINK", /* 31 */
+ "EPIPE", /* 32 */
+ "EDOM", /* 33 */
+ "ERANGE", /* 34 */
+ "EDEADLK", /* 35 */
+ "ENAMETOOLONG", /* 36 */
+ "ENOLCK", /* 37 */
+ "ENOSYS", /* 38 */
+ "ENOTEMPTY", /* 39 */
+ "ELOOP", /* 40 */
+ "ERRNO_41", /* 41 */
+ "ENOMSG", /* 42 */
+ "EIDRM", /* 43 */
+ "ECHRNG", /* 44 */
+ "EL2NSYNC", /* 45 */
+ "EL3HLT", /* 46 */
+ "EL3RST", /* 47 */
+ "ELNRNG", /* 48 */
+ "EUNATCH", /* 49 */
+ "ENOCSI", /* 50 */
+ "EL2HLT", /* 51 */
+ "EBADE", /* 52 */
+ "EBADR", /* 53 */
+ "EXFULL", /* 54 */
+ "ENOANO", /* 55 */
+ "EBADRQC", /* 56 */
+ "EBADSLT", /* 57 */
+ "ERRNO_58", /* 58 */
+ "EBFONT", /* 59 */
+ "ENOSTR", /* 60 */
+ "ENODATA", /* 61 */
+ "ETIME", /* 62 */
+ "ENOSR", /* 63 */
+ "ENONET", /* 64 */
+ "ENOPKG", /* 65 */
+ "EREMOTE", /* 66 */
+ "ENOLINK", /* 67 */
+ "EADV", /* 68 */
+ "ESRMNT", /* 69 */
+ "ECOMM", /* 70 */
+ "EPROTO", /* 71 */
+ "EMULTIHOP", /* 72 */
+ "EDOTDOT", /* 73 */
+ "EBADMSG", /* 74 */
+ "EOVERFLOW", /* 75 */
+ "ENOTUNIQ", /* 76 */
+ "EBADFD", /* 77 */
+ "EREMCHG", /* 78 */
+ "ELIBACC", /* 79 */
+ "ELIBBAD", /* 80 */
+ "ELIBSCN", /* 81 */
+ "ELIBMAX", /* 82 */
+ "ELIBEXEC", /* 83 */
+ "EILSEQ", /* 84 */
+ "ERESTART", /* 85 */
+ "ESTRPIPE", /* 86 */
+ "EUSERS", /* 87 */
+ "ENOTSOCK", /* 88 */
+ "EDESTADDRREQ", /* 89 */
+ "EMSGSIZE", /* 90 */
+ "EPROTOTYPE", /* 91 */
+ "ENOPROTOOPT", /* 92 */
+ "EPROTONOSUPPORT", /* 93 */
+ "ESOCKTNOSUPPORT", /* 94 */
+ "EOPNOTSUPP", /* 95 */
+ "EPFNOSUPPORT", /* 96 */
+ "EAFNOSUPPORT", /* 97 */
+ "EADDRINUSE", /* 98 */
+ "EADDRNOTAVAIL", /* 99 */
+ "ENETDOWN", /* 100 */
+ "ENETUNREACH", /* 101 */
+ "ENETRESET", /* 102 */
+ "ECONNABORTED", /* 103 */
+ "ECONNRESET", /* 104 */
+ "ENOBUFS", /* 105 */
+ "EISCONN", /* 106 */
+ "ENOTCONN", /* 107 */
+ "ESHUTDOWN", /* 108 */
+ "ETOOMANYREFS", /* 109 */
+ "ETIMEDOUT", /* 110 */
+ "ECONNREFUSED", /* 111 */
+ "EHOSTDOWN", /* 112 */
+ "EHOSTUNREACH", /* 113 */
+ "EALREADY", /* 114 */
+ "EINPROGRESS", /* 115 */
+ "ESTALE", /* 116 */
+ "EUCLEAN", /* 117 */
+ "ENOTNAM", /* 118 */
+ "ENAVAIL", /* 119 */
+ "EISNAM", /* 120 */
+ "EREMOTEIO", /* 121 */
+ "EDQUOT", /* 122 */
+ "ENOMEDIUM", /* 123 */
+ "EMEDIUMTYPE", /* 124 */
diff --git a/strace/linux/ia64/ioctlent.h b/strace/linux/ia64/ioctlent.h
new file mode 100644
index 0000000..8cd2acd
--- /dev/null
+++ b/strace/linux/ia64/ioctlent.h
@@ -0,0 +1,1080 @@
+ /* Generated by ioctlsort */
+ {"linux/fs.h", "FIBMAP", 0x1},
+ {"linux/fs.h", "FIGETBSZ", 0x2},
+ {"linux/fd.h", "FDGETPRM", 0x204},
+ {"linux/fd.h", "FDGETMAXERRS", 0x20e},
+ {"linux/fd.h", "FDGETDRVTYP", 0x20f},
+ {"linux/fd.h", "FDGETDRVPRM", 0x211},
+ {"linux/fd.h", "FDGETDRVSTAT", 0x212},
+ {"linux/fd.h", "FDPOLLDRVSTAT", 0x213},
+ {"linux/fd.h", "FDGETFDCSTAT", 0x215},
+ {"linux/fd.h", "FDWERRORGET", 0x217},
+ {"linux/fd.h", "FDCLRPRM", 0x241},
+ {"linux/fd.h", "FDSETPRM", 0x242},
+ {"linux/fd.h", "FDDEFPRM", 0x243},
+ {"linux/fd.h", "FDMSGON", 0x245},
+ {"linux/fd.h", "FDMSGOFF", 0x246},
+ {"linux/fd.h", "FDFMTBEG", 0x247},
+ {"linux/fd.h", "FDFMTTRK", 0x248},
+ {"linux/fd.h", "FDFMTEND", 0x249},
+ {"linux/fd.h", "FDSETEMSGTRESH", 0x24a},
+ {"linux/fd.h", "FDFLUSH", 0x24b},
+ {"linux/fd.h", "FDSETMAXERRS", 0x24c},
+ {"linux/fd.h", "FDRESET", 0x254},
+ {"linux/fd.h", "FDWERRORCLR", 0x256},
+ {"linux/fd.h", "FDRAWCMD", 0x258},
+ {"linux/fd.h", "FDTWADDLE", 0x259},
+ {"linux/fd.h", "FDEJECT", 0x25a},
+ {"linux/fd.h", "FDSETDRVPRM", 0x290},
+ {"linux/fs.h", "BLKROSET", 0x125d},
+ {"linux/fs.h", "BLKROGET", 0x125e},
+ {"linux/fs.h", "BLKRRPART", 0x125f},
+ {"linux/fs.h", "BLKGETSIZE", 0x1260},
+ {"linux/fs.h", "BLKFLSBUF", 0x1261},
+ {"linux/fs.h", "BLKRASET", 0x1262},
+ {"linux/fs.h", "BLKRAGET", 0x1263},
+ {"linux/fs.h", "BLKFRASET", 0x1264},
+ {"linux/fs.h", "BLKFRAGET", 0x1265},
+ {"linux/fs.h", "BLKSECTSET", 0x1266},
+ {"linux/fs.h", "BLKSECTGET", 0x1267},
+ {"linux/fs.h", "BLKSSZGET", 0x1268},
+ {"linux/blkpg.h", "BLKPG", 0x1269},
+ {"linux/fs.h", "BLKPG", 0x1269},
+ {"linux/fs.h", "BLKELVGET", 0x126a},
+ {"linux/fs.h", "BLKELVSET", 0x126b},
+ {"linux/fs.h", "BLKGETLASTSECT", 0x126c},
+ {"linux/fs.h", "BLKSETLASTSECT", 0x126d},
+ {"linux/fs.h", "BLKBSZGET", 0x1270},
+ {"linux/fs.h", "BLKBSZSET", 0x1271},
+ {"linux/audit.h", "AUIOCATTACH", 0x4065},
+ {"linux/audit.h", "AUIOCDETACH", 0x4066},
+ {"linux/audit.h", "AUIOCSUSPEND", 0x4067},
+ {"linux/audit.h", "AUIOCRESUME", 0x4068},
+ {"linux/audit.h", "AUIOCCLRPOLICY", 0x4069},
+ {"linux/audit.h", "AUIOCSETPOLICY", 0x406a},
+ {"linux/audit.h", "AUIOCIAMAUDITD", 0x406b},
+ {"linux/audit.h", "AUIOCSETAUDITID", 0x406c},
+ {"linux/audit.h", "AUIOCLOGIN", 0x406e},
+ {"linux/audit.h", "AUIOCUSERMESSAGE", 0x406f},
+ {"linux/audit.h", "AUIOCCLRFILTER", 0x4070},
+ {"linux/audit.h", "AUIOCSETFILTER", 0x4071},
+ {"linux/agpgart.h", "AGPIOC_INFO", 0x4100},
+ {"linux/agpgart.h", "AGPIOC_ACQUIRE", 0x4101},
+ {"linux/apm_bios.h", "APM_IOC_STANDBY", 0x4101},
+ {"linux/agpgart.h", "AGPIOC_RELEASE", 0x4102},
+ {"linux/apm_bios.h", "APM_IOC_SUSPEND", 0x4102},
+ {"linux/agpgart.h", "AGPIOC_SETUP", 0x4103},
+ {"linux/agpgart.h", "AGPIOC_RESERVE", 0x4104},
+ {"linux/agpgart.h", "AGPIOC_PROTECT", 0x4105},
+ {"linux/agpgart.h", "AGPIOC_ALLOCATE", 0x4106},
+ {"linux/agpgart.h", "AGPIOC_DEALLOCATE", 0x4107},
+ {"linux/agpgart.h", "AGPIOC_BIND", 0x4108},
+ {"linux/agpgart.h", "AGPIOC_UNBIND", 0x4109},
+ {"linux/pmu.h", "PMU_IOC_SLEEP", 0x4200},
+ {"linux/cciss_ioctl.h", "CCISS_GETPCIINFO", 0x4201},
+ {"linux/pmu.h", "PMU_IOC_GET_BACKLIGHT", 0x4201},
+ {"linux/cciss_ioctl.h", "CCISS_GETINTINFO", 0x4202},
+ {"linux/pmu.h", "PMU_IOC_SET_BACKLIGHT", 0x4202},
+ {"linux/cciss_ioctl.h", "CCISS_SETINTINFO", 0x4203},
+ {"linux/pmu.h", "PMU_IOC_GET_MODEL", 0x4203},
+ {"linux/cciss_ioctl.h", "CCISS_GETNODENAME", 0x4204},
+ {"linux/pmu.h", "PMU_IOC_HAS_ADB", 0x4204},
+ {"linux/cciss_ioctl.h", "CCISS_SETNODENAME", 0x4205},
+ {"linux/pmu.h", "PMU_IOC_CAN_SLEEP", 0x4205},
+ {"linux/cciss_ioctl.h", "CCISS_GETHEARTBEAT", 0x4206},
+ {"linux/cciss_ioctl.h", "CCISS_GETBUSTYPES", 0x4207},
+ {"linux/cciss_ioctl.h", "CCISS_GETFIRMVER", 0x4208},
+ {"linux/cciss_ioctl.h", "CCISS_GETDRIVVER", 0x4209},
+ {"linux/cciss_ioctl.h", "CCISS_REVALIDVOLS", 0x420a},
+ {"linux/cciss_ioctl.h", "CCISS_PASSTHRU", 0x420b},
+ {"linux/soundcard.h", "SNDCTL_COPR_RESET", 0x4300},
+ {"linux/capi.h", "CAPI_REGISTER", 0x4301},
+ {"linux/soundcard.h", "SNDCTL_COPR_LOAD", 0x4301},
+ {"linux/soundcard.h", "SNDCTL_COPR_RDATA", 0x4302},
+ {"linux/soundcard.h", "SNDCTL_COPR_RCODE", 0x4303},
+ {"linux/soundcard.h", "SNDCTL_COPR_WDATA", 0x4304},
+ {"linux/soundcard.h", "SNDCTL_COPR_WCODE", 0x4305},
+ {"linux/capi.h", "CAPI_GET_MANUFACTURER", 0x4306},
+ {"linux/soundcard.h", "SNDCTL_COPR_RUN", 0x4306},
+ {"linux/capi.h", "CAPI_GET_VERSION", 0x4307},
+ {"linux/soundcard.h", "SNDCTL_COPR_HALT", 0x4307},
+ {"linux/capi.h", "CAPI_GET_SERIAL", 0x4308},
+ {"linux/soundcard.h", "SNDCTL_COPR_SENDMSG", 0x4308},
+ {"linux/capi.h", "CAPI_GET_PROFILE", 0x4309},
+ {"linux/soundcard.h", "SNDCTL_COPR_RCVMSG", 0x4309},
+ {"linux/capi.h", "CAPI_MANUFACTURER_CMD", 0x4320},
+ {"linux/capi.h", "CAPI_GET_ERRCODE", 0x4321},
+ {"linux/capi.h", "CAPI_INSTALLED", 0x4322},
+ {"linux/capi.h", "CAPI_GET_FLAGS", 0x4323},
+ {"linux/capi.h", "CAPI_SET_FLAGS", 0x4324},
+ {"linux/capi.h", "CAPI_CLR_FLAGS", 0x4325},
+ {"linux/capi.h", "CAPI_NCCI_OPENCOUNT", 0x4326},
+ {"linux/capi.h", "CAPI_NCCI_GETUNIT", 0x4327},
+ {"linux/input.h", "EVIOCGVERSION", 0x4501},
+ {"linux/input.h", "EVIOCGID", 0x4502},
+ {"linux/input.h", "EVIOCGREP", 0x4503},
+ {"linux/input.h", "EVIOCSREP", 0x4503},
+ {"linux/input.h", "EVIOCGKEYCODE", 0x4504},
+ {"linux/input.h", "EVIOCSKEYCODE", 0x4504},
+ {"linux/input.h", "EVIOCGKEY", 0x4505},
+ {"linux/input.h", "EVIOCGBUS", 0x4507},
+ {"linux/input.h", "EVIOCRMFF", 0x4581},
+ {"linux/input.h", "EVIOCSGAIN", 0x4582},
+ {"linux/input.h", "EVIOCSAUTOCENTER", 0x4583},
+ {"linux/input.h", "EVIOCGEFFECTS", 0x4584},
+ {"linux/fb.h", "FBIOGET_VSCREENINFO", 0x4600},
+ {"linux/fb.h", "FBIOPUT_VSCREENINFO", 0x4601},
+ {"linux/fb.h", "FBIOGET_FSCREENINFO", 0x4602},
+ {"linux/fb.h", "FBIOGETCMAP", 0x4604},
+ {"linux/fb.h", "FBIOPUTCMAP", 0x4605},
+ {"linux/fb.h", "FBIOPAN_DISPLAY", 0x4606},
+ {"linux/fb.h", "FBIOGET_FCURSORINFO", 0x4607},
+ {"linux/fb.h", "FBIOGET_VCURSORINFO", 0x4608},
+ {"linux/fb.h", "FBIOPUT_VCURSORINFO", 0x4609},
+ {"linux/fb.h", "FBIOGET_CURSORSTATE", 0x460a},
+ {"linux/fb.h", "FBIOPUT_CURSORSTATE", 0x460b},
+ {"linux/fb.h", "FBIOGET_CON2FBMAP", 0x460f},
+ {"linux/fb.h", "FBIOPUT_CON2FBMAP", 0x4610},
+ {"linux/fb.h", "FBIOBLANK", 0x4611},
+ {"linux/fb.h", "FBIOGET_VBLANK", 0x4612},
+ {"linux/fb.h", "FBIO_ALLOC", 0x4613},
+ {"linux/fb.h", "FBIO_FREE", 0x4614},
+ {"linux/fb.h", "FBIOGET_GLYPH", 0x4615},
+ {"linux/fb.h", "FBIOGET_HWCINFO", 0x4616},
+ {"linux/fb.h", "FBIOPUT_MODEINFO", 0x4617},
+ {"linux/fb.h", "FBIOGET_DISPINFO", 0x4618},
+ {"linux/hiddev.h", "HIDIOCGVERSION", 0x4801},
+ {"linux/hiddev.h", "HIDIOCAPPLICATION", 0x4802},
+ {"linux/hiddev.h", "HIDIOCGDEVINFO", 0x4803},
+ {"linux/hiddev.h", "HIDIOCGSTRING", 0x4804},
+ {"linux/hiddev.h", "HIDIOCINITREPORT", 0x4805},
+ {"linux/hiddev.h", "HIDIOCGREPORT", 0x4807},
+ {"linux/hiddev.h", "HIDIOCSREPORT", 0x4808},
+ {"linux/hiddev.h", "HIDIOCGREPORTINFO", 0x4809},
+ {"linux/hiddev.h", "HIDIOCGFIELDINFO", 0x480a},
+ {"linux/hiddev.h", "HIDIOCGUSAGE", 0x480b},
+ {"linux/hiddev.h", "HIDIOCSUSAGE", 0x480c},
+ {"linux/hiddev.h", "HIDIOCGUCODE", 0x480d},
+ {"linux/isdn.h", "IIOCNETAIF", 0x4901},
+ {"linux/isdn.h", "IIOCNETDIF", 0x4902},
+ {"linux/isdn.h", "IIOCNETSCF", 0x4903},
+ {"linux/isdn.h", "IIOCNETGCF", 0x4904},
+ {"linux/isdn.h", "IIOCNETANM", 0x4905},
+ {"linux/isdn.h", "IIOCNETDNM", 0x4906},
+ {"linux/isdn.h", "IIOCNETGNM", 0x4907},
+ {"linux/isdn.h", "IIOCGETSET", 0x4908},
+ {"linux/isdn.h", "IIOCSETSET", 0x4909},
+ {"linux/isdn.h", "IIOCSETVER", 0x490a},
+ {"linux/isdn.h", "IIOCNETHUP", 0x490b},
+ {"linux/isdn.h", "IIOCSETGST", 0x490c},
+ {"linux/isdn.h", "IIOCSETBRJ", 0x490d},
+ {"linux/isdn.h", "IIOCSIGPRF", 0x490e},
+ {"linux/isdn.h", "IIOCGETPRF", 0x490f},
+ {"linux/isdn.h", "IIOCSETPRF", 0x4910},
+ {"linux/isdn.h", "IIOCGETMAP", 0x4911},
+ {"linux/isdn.h", "IIOCSETMAP", 0x4912},
+ {"linux/isdn.h", "IIOCNETASL", 0x4913},
+ {"linux/isdn.h", "IIOCNETDIL", 0x4914},
+ {"linux/isdn.h", "IIOCGETCPS", 0x4915},
+ {"linux/isdn.h", "IIOCGETDVR", 0x4916},
+ {"linux/isdn.h", "IIOCNETLCR", 0x4917},
+ {"linux/isdn.h", "IIOCNETDWRSET", 0x4918},
+ {"linux/isdn.h", "IIOCNETALN", 0x4920},
+ {"linux/isdn.h", "IIOCNETDLN", 0x4921},
+ {"linux/isdn.h", "IIOCNETGPN", 0x4922},
+ {"linux/isdn.h", "IIOCDBGVAR", 0x497f},
+ {"linux/isdn.h", "IIOCDRVCTL", 0x4980},
+ {"linux/kd.h", "KIOCSOUND", 0x4b2f},
+ {"linux/kd.h", "KDMKTONE", 0x4b30},
+ {"linux/kd.h", "KDGETLED", 0x4b31},
+ {"linux/kd.h", "KDSETLED", 0x4b32},
+ {"linux/kd.h", "KDGKBTYPE", 0x4b33},
+ {"linux/kd.h", "KDADDIO", 0x4b34},
+ {"linux/kd.h", "KDDELIO", 0x4b35},
+ {"linux/kd.h", "KDENABIO", 0x4b36},
+ {"linux/kd.h", "KDDISABIO", 0x4b37},
+ {"linux/kd.h", "KDSETMODE", 0x4b3a},
+ {"linux/kd.h", "KDGETMODE", 0x4b3b},
+ {"linux/kd.h", "KDMAPDISP", 0x4b3c},
+ {"linux/kd.h", "KDUNMAPDISP", 0x4b3d},
+ {"linux/kd.h", "GIO_SCRNMAP", 0x4b40},
+ {"linux/kd.h", "PIO_SCRNMAP", 0x4b41},
+ {"linux/kd.h", "KDGKBMODE", 0x4b44},
+ {"linux/kd.h", "KDSKBMODE", 0x4b45},
+ {"linux/kd.h", "KDGKBENT", 0x4b46},
+ {"linux/kd.h", "KDSKBENT", 0x4b47},
+ {"linux/kd.h", "KDGKBSENT", 0x4b48},
+ {"linux/kd.h", "KDSKBSENT", 0x4b49},
+ {"linux/kd.h", "KDGKBDIACR", 0x4b4a},
+ {"linux/kd.h", "KDSKBDIACR", 0x4b4b},
+ {"linux/kd.h", "KDGETKEYCODE", 0x4b4c},
+ {"linux/kd.h", "KDSETKEYCODE", 0x4b4d},
+ {"linux/kd.h", "KDSIGACCEPT", 0x4b4e},
+ {"linux/kd.h", "KDGHWCLK", 0x4b50},
+ {"linux/kd.h", "KDSHWCLK", 0x4b51},
+ {"linux/kd.h", "KDKBDREP", 0x4b52},
+ {"linux/kd.h", "GIO_FONT", 0x4b60},
+ {"linux/kd.h", "PIO_FONT", 0x4b61},
+ {"linux/kd.h", "KDGKBMETA", 0x4b62},
+ {"linux/kd.h", "KDSKBMETA", 0x4b63},
+ {"linux/kd.h", "KDGKBLED", 0x4b64},
+ {"linux/kd.h", "KDSKBLED", 0x4b65},
+ {"linux/kd.h", "GIO_UNIMAP", 0x4b66},
+ {"linux/kd.h", "PIO_UNIMAP", 0x4b67},
+ {"linux/kd.h", "PIO_UNIMAPCLR", 0x4b68},
+ {"linux/kd.h", "GIO_UNISCRNMAP", 0x4b69},
+ {"linux/kd.h", "PIO_UNISCRNMAP", 0x4b6a},
+ {"linux/kd.h", "GIO_FONTX", 0x4b6b},
+ {"linux/kd.h", "PIO_FONTX", 0x4b6c},
+ {"linux/kd.h", "PIO_FONTRESET", 0x4b6d},
+ {"linux/kd.h", "GIO_CMAP", 0x4b70},
+ {"linux/kd.h", "PIO_CMAP", 0x4b71},
+ {"linux/kd.h", "KDFONTOP", 0x4b72},
+ {"linux/soundcard.h", "SOUND_MIXER_INFO", 0x4d65},
+ {"linux/soundcard.h", "SOUND_OLD_MIXER_INFO", 0x4d65},
+ {"linux/soundcard.h", "SOUND_MIXER_ACCESS", 0x4d66},
+ {"linux/soundcard.h", "SOUND_MIXER_AGC", 0x4d67},
+ {"linux/soundcard.h", "SOUND_MIXER_3DSE", 0x4d68},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE1", 0x4d6f},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE2", 0x4d70},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE3", 0x4d71},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE4", 0x4d72},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE5", 0x4d73},
+ {"linux/soundcard.h", "SOUND_MIXER_GETLEVELS", 0x4d74},
+ {"linux/soundcard.h", "SOUND_MIXER_SETLEVELS", 0x4d75},
+ {"linux/soundcard.h", "OSS_GETVERSION", 0x4d76},
+ {"linux/soundcard.h", "SNDCTL_DSP_RESET", 0x5000},
+ {"linux/soundcard.h", "SNDCTL_DSP_SYNC", 0x5001},
+ {"linux/soundcard.h", "SNDCTL_DSP_SPEED", 0x5002},
+ {"linux/soundcard.h", "SOUND_PCM_READ_RATE", 0x5002},
+ {"linux/soundcard.h", "SNDCTL_DSP_STEREO", 0x5003},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETBLKSIZE", 0x5004},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETFMT", 0x5005},
+ {"linux/soundcard.h", "SOUND_PCM_READ_BITS", 0x5005},
+ {"linux/soundcard.h", "SNDCTL_DSP_CHANNELS", 0x5006},
+ {"linux/soundcard.h", "SOUND_PCM_READ_CHANNELS", 0x5006},
+ {"linux/soundcard.h", "SOUND_PCM_READ_FILTER", 0x5007},
+ {"linux/soundcard.h", "SOUND_PCM_WRITE_FILTER", 0x5007},
+ {"linux/soundcard.h", "SNDCTL_DSP_POST", 0x5008},
+ {"linux/soundcard.h", "SNDCTL_DSP_SUBDIVIDE", 0x5009},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETFRAGMENT", 0x500a},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETFMTS", 0x500b},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETOSPACE", 0x500c},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETISPACE", 0x500d},
+ {"linux/soundcard.h", "SNDCTL_DSP_NONBLOCK", 0x500e},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETCAPS", 0x500f},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETTRIGGER", 0x5010},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETTRIGGER", 0x5010},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETIPTR", 0x5011},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETOPTR", 0x5012},
+ {"linux/soundcard.h", "SNDCTL_DSP_MAPINBUF", 0x5013},
+ {"linux/soundcard.h", "SNDCTL_DSP_MAPOUTBUF", 0x5014},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETSYNCRO", 0x5015},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETDUPLEX", 0x5016},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETODELAY", 0x5017},
+ {"linux/soundcard.h", "SNDCTL_DSP_PROFILE", 0x5017},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETCHANNELMASK", 0x5040},
+ {"linux/soundcard.h", "SNDCTL_DSP_BIND_CHANNEL", 0x5041},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETSPDIF", 0x5042},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETSPDIF", 0x5043},
+ {"linux/soundcard.h", "SNDCTL_SEQ_RESET", 0x5100},
+ {"linux/soundcard.h", "SNDCTL_SEQ_SYNC", 0x5101},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_INFO", 0x5102},
+ {"linux/soundcard.h", "SNDCTL_SEQ_CTRLRATE", 0x5103},
+ {"linux/soundcard.h", "SNDCTL_SEQ_GETOUTCOUNT", 0x5104},
+ {"linux/soundcard.h", "SNDCTL_SEQ_GETINCOUNT", 0x5105},
+ {"linux/soundcard.h", "SNDCTL_SEQ_PERCMODE", 0x5106},
+ {"linux/soundcard.h", "SNDCTL_FM_LOAD_INSTR", 0x5107},
+ {"linux/soundcard.h", "SNDCTL_SEQ_TESTMIDI", 0x5108},
+ {"linux/soundcard.h", "SNDCTL_SEQ_RESETSAMPLES", 0x5109},
+ {"linux/soundcard.h", "SNDCTL_SEQ_NRSYNTHS", 0x510a},
+ {"linux/soundcard.h", "SNDCTL_SEQ_NRMIDIS", 0x510b},
+ {"linux/soundcard.h", "SNDCTL_MIDI_INFO", 0x510c},
+ {"linux/soundcard.h", "SNDCTL_SEQ_THRESHOLD", 0x510d},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_MEMAVL", 0x510e},
+ {"linux/soundcard.h", "SNDCTL_FM_4OP_ENABLE", 0x510f},
+ {"linux/soundcard.h", "SNDCTL_SEQ_PANIC", 0x5111},
+ {"linux/soundcard.h", "SNDCTL_SEQ_OUTOFBAND", 0x5112},
+ {"linux/soundcard.h", "SNDCTL_SEQ_GETTIME", 0x5113},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_ID", 0x5114},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_CONTROL", 0x5115},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_REMOVESAMPLE", 0x5116},
+ {"linux/random.h", "RNDGETENTCNT", 0x5200},
+ {"linux/random.h", "RNDADDTOENTCNT", 0x5201},
+ {"linux/random.h", "RNDGETPOOL", 0x5202},
+ {"linux/random.h", "RNDADDENTROPY", 0x5203},
+ {"linux/random.h", "RNDZAPENTCNT", 0x5204},
+ {"linux/random.h", "RNDCLEARPOOL", 0x5206},
+ {"linux/cdrom.h", "CDROMPAUSE", 0x5301},
+ {"linux/cdrom.h", "CDROMRESUME", 0x5302},
+ {"linux/cdrom.h", "CDROMPLAYMSF", 0x5303},
+ {"linux/cdrom.h", "CDROMPLAYTRKIND", 0x5304},
+ {"linux/cdrom.h", "CDROMREADTOCHDR", 0x5305},
+ {"linux/cdrom.h", "CDROMREADTOCENTRY", 0x5306},
+ {"linux/cdrom.h", "CDROMSTOP", 0x5307},
+ {"linux/cdrom.h", "CDROMSTART", 0x5308},
+ {"linux/cdrom.h", "CDROMEJECT", 0x5309},
+ {"linux/cdrom.h", "CDROMVOLCTRL", 0x530a},
+ {"linux/cdrom.h", "CDROMSUBCHNL", 0x530b},
+ {"linux/cdrom.h", "CDROMREADMODE2", 0x530c},
+ {"linux/cdrom.h", "CDROMREADMODE1", 0x530d},
+ {"linux/cdrom.h", "CDROMREADAUDIO", 0x530e},
+ {"linux/cdrom.h", "CDROMEJECT_SW", 0x530f},
+ {"linux/cdrom.h", "CDROMMULTISESSION", 0x5310},
+ {"linux/cdrom.h", "CDROM_GET_MCN", 0x5311},
+ {"linux/cdrom.h", "CDROMRESET", 0x5312},
+ {"linux/cdrom.h", "CDROMVOLREAD", 0x5313},
+ {"linux/cdrom.h", "CDROMREADRAW", 0x5314},
+ {"linux/cdrom.h", "CDROMREADCOOKED", 0x5315},
+ {"linux/cdrom.h", "CDROMSEEK", 0x5316},
+ {"linux/cdrom.h", "CDROMPLAYBLK", 0x5317},
+ {"linux/cdrom.h", "CDROMREADALL", 0x5318},
+ {"linux/cdrom.h", "CDROMCLOSETRAY", 0x5319},
+ {"linux/cdrom.h", "CDROMGETSPINDOWN", 0x531d},
+ {"linux/cdrom.h", "CDROMSETSPINDOWN", 0x531e},
+ {"linux/cdrom.h", "CDROM_SET_OPTIONS", 0x5320},
+ {"linux/cdrom.h", "CDROM_CLEAR_OPTIONS", 0x5321},
+ {"linux/cdrom.h", "CDROM_SELECT_SPEED", 0x5322},
+ {"linux/cdrom.h", "CDROM_SELECT_DISC", 0x5323},
+ {"linux/cdrom.h", "CDROM_MEDIA_CHANGED", 0x5325},
+ {"linux/cdrom.h", "CDROM_DRIVE_STATUS", 0x5326},
+ {"linux/cdrom.h", "CDROM_DISC_STATUS", 0x5327},
+ {"linux/cdrom.h", "CDROM_CHANGER_NSLOTS", 0x5328},
+ {"linux/cdrom.h", "CDROM_LOCKDOOR", 0x5329},
+ {"linux/cdrom.h", "CDROM_DEBUG", 0x5330},
+ {"linux/cdrom.h", "CDROM_GET_CAPABILITY", 0x5331},
+ {"linux/cdrom.h", "CDROMAUDIOBUFSIZ", 0x5382},
+ {"linux/cdrom.h", "DVD_READ_STRUCT", 0x5390},
+ {"linux/cdrom.h", "DVD_WRITE_STRUCT", 0x5391},
+ {"linux/cdrom.h", "DVD_AUTH", 0x5392},
+ {"linux/cdrom.h", "CDROM_SEND_PACKET", 0x5393},
+ {"linux/cdrom.h", "CDROM_NEXT_WRITABLE", 0x5394},
+ {"linux/cdrom.h", "CDROM_LAST_WRITTEN", 0x5395},
+ {"linux/soundcard.h", "SNDCTL_TMR_TIMEBASE", 0x5401},
+ {"asm/ioctls.h", "TCGETS", 0x5401},
+ {"linux/soundcard.h", "SNDCTL_TMR_START", 0x5402},
+ {"asm/ioctls.h", "TCSETS", 0x5402},
+ {"linux/soundcard.h", "SNDCTL_TMR_STOP", 0x5403},
+ {"asm/ioctls.h", "TCSETSW", 0x5403},
+ {"linux/soundcard.h", "SNDCTL_TMR_CONTINUE", 0x5404},
+ {"asm/ioctls.h", "TCSETSF", 0x5404},
+ {"linux/soundcard.h", "SNDCTL_TMR_TEMPO", 0x5405},
+ {"asm/ioctls.h", "TCGETA", 0x5405},
+ {"linux/soundcard.h", "SNDCTL_TMR_SOURCE", 0x5406},
+ {"asm/ioctls.h", "TCSETA", 0x5406},
+ {"linux/soundcard.h", "SNDCTL_TMR_METRONOME", 0x5407},
+ {"asm/ioctls.h", "TCSETAW", 0x5407},
+ {"linux/soundcard.h", "SNDCTL_TMR_SELECT", 0x5408},
+ {"asm/ioctls.h", "TCSETAF", 0x5408},
+ {"asm/ioctls.h", "TCSBRK", 0x5409},
+ {"asm/ioctls.h", "TCXONC", 0x540a},
+ {"asm/ioctls.h", "TCFLSH", 0x540b},
+ {"asm/ioctls.h", "TIOCEXCL", 0x540c},
+ {"asm/ioctls.h", "TIOCNXCL", 0x540d},
+ {"asm/ioctls.h", "TIOCSCTTY", 0x540e},
+ {"asm/ioctls.h", "TIOCGPGRP", 0x540f},
+ {"asm/ioctls.h", "TIOCSPGRP", 0x5410},
+ {"asm/ioctls.h", "TIOCOUTQ", 0x5411},
+ {"asm/ioctls.h", "TIOCSTI", 0x5412},
+ {"asm/ioctls.h", "TIOCGWINSZ", 0x5413},
+ {"asm/ioctls.h", "TIOCSWINSZ", 0x5414},
+ {"asm/ioctls.h", "TIOCMGET", 0x5415},
+ {"asm/ioctls.h", "TIOCMBIS", 0x5416},
+ {"asm/ioctls.h", "TIOCMBIC", 0x5417},
+ {"asm/ioctls.h", "TIOCMSET", 0x5418},
+ {"asm/ioctls.h", "TIOCGSOFTCAR", 0x5419},
+ {"asm/ioctls.h", "TIOCSSOFTCAR", 0x541a},
+ {"asm/ioctls.h", "FIONREAD", 0x541b},
+ {"asm/ioctls.h", "TIOCLINUX", 0x541c},
+ {"asm/ioctls.h", "TIOCCONS", 0x541d},
+ {"asm/ioctls.h", "TIOCGSERIAL", 0x541e},
+ {"asm/ioctls.h", "TIOCSSERIAL", 0x541f},
+ {"asm/ioctls.h", "TIOCPKT", 0x5420},
+ {"asm/ioctls.h", "FIONBIO", 0x5421},
+ {"asm/ioctls.h", "TIOCNOTTY", 0x5422},
+ {"asm/ioctls.h", "TIOCSETD", 0x5423},
+ {"asm/ioctls.h", "TIOCGETD", 0x5424},
+ {"asm/ioctls.h", "TCSBRKP", 0x5425},
+ {"asm/ioctls.h", "TIOCTTYGSTRUCT", 0x5426},
+ {"asm/ioctls.h", "TIOCSBRK", 0x5427},
+ {"asm/ioctls.h", "TIOCCBRK", 0x5428},
+ {"asm/ioctls.h", "TIOCGSID", 0x5429},
+ {"asm/ioctls.h", "TIOCGPTN", 0x5430},
+ {"asm/ioctls.h", "TIOCSPTLCK", 0x5431},
+ {"asm/ioctls.h", "FIONCLEX", 0x5450},
+ {"asm/ioctls.h", "FIOCLEX", 0x5451},
+ {"asm/ioctls.h", "FIOASYNC", 0x5452},
+ {"asm/ioctls.h", "TIOCSERCONFIG", 0x5453},
+ {"asm/ioctls.h", "TIOCSERGWILD", 0x5454},
+ {"asm/ioctls.h", "TIOCSERSWILD", 0x5455},
+ {"asm/ioctls.h", "TIOCGLCKTRMIOS", 0x5456},
+ {"asm/ioctls.h", "TIOCSLCKTRMIOS", 0x5457},
+ {"asm/ioctls.h", "TIOCSERGSTRUCT", 0x5458},
+ {"asm/ioctls.h", "TIOCSERGETLSR", 0x5459},
+ {"asm/ioctls.h", "TIOCSERGETMULTI", 0x545a},
+ {"asm/ioctls.h", "TIOCSERSETMULTI", 0x545b},
+ {"asm/ioctls.h", "TIOCMIWAIT", 0x545c},
+ {"asm/ioctls.h", "TIOCGICOUNT", 0x545d},
+ {"asm/ioctls.h", "TIOCGHAYESESP", 0x545e},
+ {"asm/ioctls.h", "TIOCSHAYESESP", 0x545f},
+ {"asm/ioctls.h", "FIOQSIZE", 0x5460},
+ {"linux/if_tun.h", "TUNSETNOCSUM", 0x54c8},
+ {"linux/if_tun.h", "TUNSETDEBUG", 0x54c9},
+ {"linux/if_tun.h", "TUNSETIFF", 0x54ca},
+ {"linux/if_tun.h", "TUNSETPERSIST", 0x54cb},
+ {"linux/if_tun.h", "TUNSETOWNER", 0x54cc},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CONTROL", 0x5500},
+ {"linux/usbdevice_fs.h", "USBDEVFS_BULK", 0x5502},
+ {"linux/usbdevice_fs.h", "USBDEVFS_RESETEP", 0x5503},
+ {"linux/usbdevice_fs.h", "USBDEVFS_SETINTERFACE", 0x5504},
+ {"linux/usbdevice_fs.h", "USBDEVFS_SETCONFIGURATION", 0x5505},
+ {"linux/usbdevice_fs.h", "USBDEVFS_GETDRIVER", 0x5508},
+ {"linux/usbdevice_fs.h", "USBDEVFS_SUBMITURB", 0x550a},
+ {"linux/usbdevice_fs.h", "USBDEVFS_DISCARDURB", 0x550b},
+ {"linux/usbdevice_fs.h", "USBDEVFS_REAPURB", 0x550c},
+ {"linux/usbdevice_fs.h", "USBDEVFS_REAPURBNDELAY", 0x550d},
+ {"linux/usbdevice_fs.h", "USBDEVFS_DISCSIGNAL", 0x550e},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CLAIMINTERFACE", 0x550f},
+ {"linux/usbdevice_fs.h", "USBDEVFS_RELEASEINTERFACE", 0x5510},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CONNECTINFO", 0x5511},
+ {"linux/usbdevice_fs.h", "USBDEVFS_IOCTL", 0x5512},
+ {"linux/usbdevice_fs.h", "USBDEVFS_HUB_PORTINFO", 0x5513},
+ {"linux/usbdevice_fs.h", "USBDEVFS_RESET", 0x5514},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CLEAR_HALT", 0x5515},
+ {"linux/vt.h", "VT_OPENQRY", 0x5600},
+ {"linux/vt.h", "VT_GETMODE", 0x5601},
+ {"linux/vt.h", "VT_SETMODE", 0x5602},
+ {"linux/vt.h", "VT_GETSTATE", 0x5603},
+ {"linux/vt.h", "VT_SENDSIG", 0x5604},
+ {"linux/vt.h", "VT_RELDISP", 0x5605},
+ {"linux/vt.h", "VT_ACTIVATE", 0x5606},
+ {"linux/vt.h", "VT_WAITACTIVE", 0x5607},
+ {"linux/vt.h", "VT_DISALLOCATE", 0x5608},
+ {"linux/vt.h", "VT_RESIZE", 0x5609},
+ {"linux/vt.h", "VT_RESIZEX", 0x560a},
+ {"linux/vt.h", "VT_LOCKSWITCH", 0x560b},
+ {"linux/vt.h", "VT_UNLOCKSWITCH", 0x560c},
+ {"linux/watchdog.h", "WDIOC_GETSUPPORT", 0x5700},
+ {"linux/watchdog.h", "WDIOC_GETSTATUS", 0x5701},
+ {"linux/watchdog.h", "WDIOC_GETBOOTSTATUS", 0x5702},
+ {"linux/watchdog.h", "WDIOC_GETTEMP", 0x5703},
+ {"linux/watchdog.h", "WDIOC_SETOPTIONS", 0x5704},
+ {"linux/watchdog.h", "WDIOC_KEEPALIVE", 0x5705},
+ {"linux/ite_gpio.h", "ITE_GPIO_IN", 0x5a00},
+ {"linux/ite_gpio.h", "ITE_GPIO_OUT", 0x5a01},
+ {"linux/ite_gpio.h", "ITE_GPIO_INT_CTRL", 0x5a02},
+ {"linux/ite_gpio.h", "ITE_GPIO_IN_STATUS", 0x5a03},
+ {"linux/ite_gpio.h", "ITE_GPIO_OUT_STATUS", 0x5a04},
+ {"linux/ite_gpio.h", "ITE_GPIO_GEN_CTRL", 0x5a05},
+ {"linux/ite_gpio.h", "ITE_GPIO_INT_WAIT", 0x5a06},
+ {"linux/sonet.h", "SONET_GETSTAT", 0x6110},
+ {"linux/sonet.h", "SONET_GETSTATZ", 0x6111},
+ {"linux/sonet.h", "SONET_SETDIAG", 0x6112},
+ {"linux/sonet.h", "SONET_CLRDIAG", 0x6113},
+ {"linux/sonet.h", "SONET_GETDIAG", 0x6114},
+ {"linux/sonet.h", "SONET_SETFRAMING", 0x6115},
+ {"linux/sonet.h", "SONET_GETFRAMING", 0x6116},
+ {"linux/sonet.h", "SONET_GETFRSENSE", 0x6117},
+ {"linux/atm_idt77105.h", "IDT77105_GETSTAT", 0x6132},
+ {"linux/atm_idt77105.h", "IDT77105_GETSTATZ", 0x6133},
+ {"linux/atmdev.h", "ATM_GETSTAT", 0x6150},
+ {"linux/atmdev.h", "ATM_GETSTATZ", 0x6151},
+ {"linux/atmdev.h", "ATM_GETLOOP", 0x6152},
+ {"linux/atmdev.h", "ATM_SETLOOP", 0x6153},
+ {"linux/atmdev.h", "ATM_QUERYLOOP", 0x6154},
+ {"linux/atm_eni.h", "ENI_MEMDUMP", 0x6160},
+ {"linux/atm_nicstar.h", "NS_GETPSTAT", 0x6161},
+ {"linux/atm_zatm.h", "ZATM_GETPOOL", 0x6161},
+ {"linux/atm_nicstar.h", "NS_SETBUFLEV", 0x6162},
+ {"linux/atm_zatm.h", "ZATM_GETPOOLZ", 0x6162},
+ {"linux/atm_nicstar.h", "NS_ADJBUFLEV", 0x6163},
+ {"linux/atm_zatm.h", "ZATM_SETPOOL", 0x6163},
+ {"linux/atm_zatm.h", "ZATM_GETTHIST", 0x6164},
+ {"linux/atm_eni.h", "ENI_SETMULT", 0x6167},
+ {"linux/atm_tcp.h", "SIOCSIFATMTCP", 0x6180},
+ {"linux/atmdev.h", "ATM_GETLINKRATE", 0x6181},
+ {"linux/atmdev.h", "ATM_GETNAMES", 0x6183},
+ {"linux/atmdev.h", "ATM_GETTYPE", 0x6184},
+ {"linux/atmdev.h", "ATM_GETESI", 0x6185},
+ {"linux/atmdev.h", "ATM_GETADDR", 0x6186},
+ {"linux/atmdev.h", "ATM_RSTADDR", 0x6187},
+ {"linux/atmdev.h", "ATM_ADDADDR", 0x6188},
+ {"linux/atmdev.h", "ATM_DELADDR", 0x6189},
+ {"linux/atmdev.h", "ATM_GETCIRANGE", 0x618a},
+ {"linux/atmdev.h", "ATM_SETCIRANGE", 0x618b},
+ {"linux/atmdev.h", "ATM_SETESI", 0x618c},
+ {"linux/atmdev.h", "ATM_SETESIF", 0x618d},
+ {"linux/atm_tcp.h", "ATMTCP_CREATE", 0x618e},
+ {"linux/atm_tcp.h", "ATMTCP_REMOVE", 0x618f},
+ {"linux/atmlec.h", "ATMLEC_CTRL", 0x61d0},
+ {"linux/atmlec.h", "ATMLEC_DATA", 0x61d1},
+ {"linux/atmlec.h", "ATMLEC_MCAST", 0x61d2},
+ {"linux/atmmpc.h", "ATMMPC_CTRL", 0x61d8},
+ {"linux/atmmpc.h", "ATMMPC_DATA", 0x61d9},
+ {"linux/atmclip.h", "SIOCMKCLIP", 0x61e0},
+ {"linux/atmarp.h", "ATMARPD_CTRL", 0x61e1},
+ {"linux/atmarp.h", "ATMARP_MKIP", 0x61e2},
+ {"linux/atmarp.h", "ATMARP_SETENTRY", 0x61e3},
+ {"linux/atmarp.h", "ATMARP_ENCAP", 0x61e5},
+ {"linux/atmsvc.h", "ATMSIGD_CTRL", 0x61f0},
+ {"linux/atmdev.h", "ATM_SETSC", 0x61f1},
+ {"linux/atmdev.h", "ATM_SETBACKEND", 0x61f2},
+ {"linux/coda.h", "CIOC_KERNEL_VERSION", 0x630a},
+ {"linux/comstats.h", "COM_GETPORTSTATS", 0x631e},
+ {"linux/comstats.h", "COM_CLRPORTSTATS", 0x631f},
+ {"linux/comstats.h", "COM_GETBRDSTATS", 0x6320},
+ {"linux/comstats.h", "COM_READPORT", 0x6328},
+ {"linux/comstats.h", "COM_READBOARD", 0x6329},
+ {"linux/comstats.h", "COM_READPANEL", 0x632a},
+ {"linux/devfs_fs.h", "DEVFSDIOC_GET_PROTO_REV", 0x6400},
+ {"linux/video_decoder.h", "DECODER_GET_CAPABILITIES", 0x6401},
+ {"linux/video_decoder.h", "DECODER_GET_STATUS", 0x6402},
+ {"linux/devfs_fs.h", "DEVFSDIOC_SET_EVENT_MASK", 0x6402},
+ {"linux/video_decoder.h", "DECODER_SET_NORM", 0x6403},
+ {"linux/devfs_fs.h", "DEVFSDIOC_RELEASE_EVENT_QUEUE", 0x6403},
+ {"linux/video_decoder.h", "DECODER_SET_INPUT", 0x6404},
+ {"linux/devfs_fs.h", "DEVFSDIOC_SET_DEBUG_MASK", 0x6404},
+ {"linux/video_decoder.h", "DECODER_SET_OUTPUT", 0x6405},
+ {"linux/video_decoder.h", "DECODER_ENABLE_OUTPUT", 0x6406},
+ {"linux/video_decoder.h", "DECODER_SET_PICTURE", 0x6407},
+ {"linux/video_decoder.h", "DECODER_DUMP", 0x64c0},
+ {"linux/video_encoder.h", "ENCODER_GET_CAPABILITIES", 0x6501},
+ {"linux/video_encoder.h", "ENCODER_SET_NORM", 0x6502},
+ {"linux/video_encoder.h", "ENCODER_SET_INPUT", 0x6503},
+ {"linux/video_encoder.h", "ENCODER_SET_OUTPUT", 0x6504},
+ {"linux/video_encoder.h", "ENCODER_ENABLE_OUTPUT", 0x6505},
+ {"linux/ext2_fs.h", "EXT2_IOC_GETFLAGS", 0x6601},
+ {"linux/ext3_fs.h", "EXT3_IOC_GETFLAGS", 0x6601},
+ {"linux/ext2_fs.h", "EXT2_IOC_SETFLAGS", 0x6602},
+ {"linux/ext3_fs.h", "EXT3_IOC_SETFLAGS", 0x6602},
+ {"linux/ext3_fs.h", "EXT3_IOC_GETVERSION", 0x6603},
+ {"linux/ext3_fs.h", "EXT3_IOC_SETVERSION", 0x6604},
+ {"linux/ext3_fs.h", "EXT3_IOC_WAIT_FOR_READONLY", 0x6663},
+ {"linux/i2o-dev.h", "I2OGETIOPS", 0x6900},
+ {"linux/i2o-dev.h", "I2OHRTGET", 0x6901},
+ {"linux/i2o-dev.h", "I2OLCTGET", 0x6902},
+ {"linux/i2o-dev.h", "I2OPARMSET", 0x6903},
+ {"linux/i2o-dev.h", "I2OPARMGET", 0x6904},
+ {"linux/i2o-dev.h", "I2OSWDL", 0x6905},
+ {"linux/i2o-dev.h", "I2OSWUL", 0x6906},
+ {"linux/i2o-dev.h", "I2OSWDEL", 0x6907},
+ {"linux/i2o-dev.h", "I2OVALIDATE", 0x6908},
+ {"linux/i2o-dev.h", "I2OHTML", 0x6909},
+ {"linux/i2o-dev.h", "I2OEVTREG", 0x690a},
+ {"linux/i2o-dev.h", "I2OEVTGET", 0x690b},
+ {"linux/joystick.h", "JSIOCGVERSION", 0x6a01},
+ {"linux/joystick.h", "JSIOCGAXES", 0x6a11},
+ {"linux/joystick.h", "JSIOCGBUTTONS", 0x6a12},
+ {"linux/joystick.h", "JSIOCSCORR", 0x6a21},
+ {"linux/joystick.h", "JSIOCGCORR", 0x6a22},
+ {"linux/joystick.h", "JSIOCSAXMAP", 0x6a31},
+ {"linux/joystick.h", "JSIOCGAXMAP", 0x6a32},
+ {"linux/joystick.h", "JSIOCSBTNMAP", 0x6a33},
+ {"linux/joystick.h", "JSIOCGBTNMAP", 0x6a34},
+ {"linux/udf_fs_i.h", "UDF_GETEASIZE", 0x6c40},
+ {"linux/udf_fs_i.h", "UDF_GETEABLOCK", 0x6c41},
+ {"linux/udf_fs_i.h", "UDF_GETVOLIDENT", 0x6c42},
+ {"linux/udf_fs_i.h", "UDF_RELOCATE_BLOCKS", 0x6c43},
+ {"linux/synclink.h", "MGSL_IOCSPARAMS", 0x6d00},
+ {"linux/soundcard.h", "SNDCTL_MIDI_PRETIME", 0x6d00},
+ {"linux/synclink.h", "MGSL_IOCGPARAMS", 0x6d01},
+ {"linux/mtio.h", "MTIOCTOP", 0x6d01},
+ {"linux/soundcard.h", "SNDCTL_MIDI_MPUMODE", 0x6d01},
+ {"linux/synclink.h", "MGSL_IOCSTXIDLE", 0x6d02},
+ {"linux/mtio.h", "MTIOCGET", 0x6d02},
+ {"linux/soundcard.h", "SNDCTL_MIDI_MPUCMD", 0x6d02},
+ {"linux/synclink.h", "MGSL_IOCGTXIDLE", 0x6d03},
+ {"linux/mtio.h", "MTIOCPOS", 0x6d03},
+ {"linux/synclink.h", "MGSL_IOCTXENABLE", 0x6d04},
+ {"linux/mtio.h", "MTIOCGETCONFIG", 0x6d04},
+ {"linux/synclink.h", "MGSL_IOCRXENABLE", 0x6d05},
+ {"linux/mtio.h", "MTIOCSETCONFIG", 0x6d05},
+ {"linux/synclink.h", "MGSL_IOCTXABORT", 0x6d06},
+ {"linux/mtio.h", "MTIOCRDFTSEG", 0x6d06},
+ {"linux/synclink.h", "MGSL_IOCGSTATS", 0x6d07},
+ {"linux/mtio.h", "MTIOCWRFTSEG", 0x6d07},
+ {"linux/synclink.h", "MGSL_IOCWAITEVENT", 0x6d08},
+ {"linux/mtio.h", "MTIOCVOLINFO", 0x6d08},
+ {"linux/synclink.h", "MGSL_IOCLOOPTXDONE", 0x6d09},
+ {"linux/mtio.h", "MTIOCGETSIZE", 0x6d09},
+ {"linux/mtio.h", "MTIOCFTFORMAT", 0x6d0a},
+ {"linux/mtio.h", "MTIOCFTCMD", 0x6d0b},
+ {"linux/synclink.h", "MGSL_IOCCLRMODCOUNT", 0x6d0f},
+ {"linux/zftape.h", "MTIOC_ZFTAPE_GETBLKSZ", 0x6d68},
+ {"linux/ncp_fs.h", "NCP_IOC_NCPREQUEST", 0x6e01},
+ {"linux/ncp_fs.h", "NCP_IOC_GETMOUNTUID", 0x6e02},
+ {"linux/ncp_fs.h", "NCP_IOC_GETMOUNTUID2", 0x6e02},
+ {"linux/ncp_fs.h", "NCP_IOC_CONN_LOGGED_IN", 0x6e03},
+ {"linux/ncp_fs.h", "NCP_IOC_GET_FS_INFO", 0x6e04},
+ {"linux/ncp_fs.h", "NCP_IOC_GET_FS_INFO_V2", 0x6e04},
+ {"linux/ncp_fs.h", "NCP_IOC_SIGN_INIT", 0x6e05},
+ {"linux/ncp_fs.h", "NCP_IOC_SET_SIGN_WANTED", 0x6e06},
+ {"linux/ncp_fs.h", "NCP_IOC_SIGN_WANTED", 0x6e06},
+ {"linux/ncp_fs.h", "NCP_IOC_LOCKUNLOCK", 0x6e07},
+ {"linux/ncp_fs.h", "NCP_IOC_GETROOT", 0x6e08},
+ {"linux/ncp_fs.h", "NCP_IOC_SETROOT", 0x6e08},
+ {"linux/ncp_fs.h", "NCP_IOC_GETOBJECTNAME", 0x6e09},
+ {"linux/ncp_fs.h", "NCP_IOC_SETOBJECTNAME", 0x6e09},
+ {"linux/ncp_fs.h", "NCP_IOC_GETPRIVATEDATA", 0x6e0a},
+ {"linux/ncp_fs.h", "NCP_IOC_SETPRIVATEDATA", 0x6e0a},
+ {"linux/ncp_fs.h", "NCP_IOC_GETCHARSETS", 0x6e0b},
+ {"linux/ncp_fs.h", "NCP_IOC_SETCHARSETS", 0x6e0b},
+ {"linux/ncp_fs.h", "NCP_IOC_GETDENTRYTTL", 0x6e0c},
+ {"linux/ncp_fs.h", "NCP_IOC_SETDENTRYTTL", 0x6e0c},
+ {"linux/matroxfb.h", "MATROXFB_GET_OUTPUT_CONNECTION", 0x6ef8},
+ {"linux/matroxfb.h", "MATROXFB_SET_OUTPUT_CONNECTION", 0x6ef8},
+ {"linux/matroxfb.h", "MATROXFB_GET_AVAILABLE_OUTPUTS", 0x6ef9},
+ {"linux/matroxfb.h", "MATROXFB_GET_OUTPUT_MODE", 0x6efa},
+ {"linux/matroxfb.h", "MATROXFB_SET_OUTPUT_MODE", 0x6efa},
+ {"linux/matroxfb.h", "MATROXFB_GET_ALL_OUTPUTS", 0x6efb},
+ {"linux/rtc.h", "RTC_AIE_ON", 0x7001},
+ {"linux/rtc.h", "RTC_AIE_OFF", 0x7002},
+ {"linux/intermezzo_fs.h", "PRESTO_GETMOUNT", 0x7003},
+ {"linux/rtc.h", "RTC_UIE_ON", 0x7003},
+ {"linux/intermezzo_fs.h", "PRESTO_SETPID", 0x7004},
+ {"linux/rtc.h", "RTC_UIE_OFF", 0x7004},
+ {"linux/rtc.h", "RTC_PIE_ON", 0x7005},
+ {"linux/intermezzo_fs.h", "PRESTO_CLOSE_JOURNALF", 0x7006},
+ {"linux/rtc.h", "RTC_PIE_OFF", 0x7006},
+ {"linux/intermezzo_fs.h", "PRESTO_SET_FSETROOT", 0x7007},
+ {"linux/rtc.h", "RTC_ALM_SET", 0x7007},
+ {"linux/intermezzo_fs.h", "PRESTO_CLEAR_FSETROOT", 0x7008},
+ {"linux/rtc.h", "RTC_ALM_READ", 0x7008},
+ {"linux/intermezzo_fs.h", "PRESTO_SETOPT", 0x7009},
+ {"linux/rtc.h", "RTC_RD_TIME", 0x7009},
+ {"linux/intermezzo_fs.h", "PRESTO_GETOPT", 0x700a},
+ {"linux/rtc.h", "RTC_SET_TIME", 0x700a},
+ {"linux/intermezzo_fs.h", "PRESTO_GET_KMLSIZE", 0x700b},
+ {"linux/rtc.h", "RTC_IRQP_READ", 0x700b},
+ {"linux/intermezzo_fs.h", "PRESTO_GET_RECNO", 0x700c},
+ {"linux/rtc.h", "RTC_IRQP_SET", 0x700c},
+ {"linux/rtc.h", "RTC_EPOCH_READ", 0x700d},
+ {"linux/rtc.h", "RTC_EPOCH_SET", 0x700e},
+ {"linux/rtc.h", "RTC_WIE_ON", 0x700f},
+ {"linux/rtc.h", "RTC_WKALM_SET", 0x700f},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_SETATTR", 0x7010},
+ {"linux/rtc.h", "RTC_WIE_OFF", 0x7010},
+ {"linux/rtc.h", "RTC_WKALM_RD", 0x7010},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_CREATE", 0x7011},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_LINK", 0x7012},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_UNLINK", 0x7013},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_SYMLINK", 0x7014},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_MKDIR", 0x7015},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_RMDIR", 0x7016},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_MKNOD", 0x7017},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_RENAME", 0x7018},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_CLOSE", 0x701a},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_IOPEN", 0x701b},
+ {"linux/intermezzo_fs.h", "PRESTO_MARK", 0x7020},
+ {"linux/intermezzo_fs.h", "PRESTO_RELEASE_PERMIT", 0x7021},
+ {"linux/intermezzo_fs.h", "PRESTO_CLEAR_ALL_FSETROOTS", 0x7022},
+ {"linux/intermezzo_fs.h", "PRESTO_BACKFETCH_LML", 0x7023},
+ {"linux/intermezzo_fs.h", "PRESTO_REINT", 0x7024},
+ {"linux/intermezzo_fs.h", "PRESTO_CANCEL_LML", 0x7025},
+ {"linux/intermezzo_fs.h", "PRESTO_RESET_FSET", 0x7026},
+ {"linux/intermezzo_fs.h", "PRESTO_COMPLETE_CLOSES", 0x7027},
+ {"linux/intermezzo_fs.h", "PRESTO_REINT_BEGIN", 0x7030},
+ {"linux/intermezzo_fs.h", "PRESTO_DO_REINT", 0x7031},
+ {"linux/intermezzo_fs.h", "PRESTO_REINT_END", 0x7032},
+ {"linux/nvram.h", "NVRAM_INIT", 0x7040},
+ {"linux/nvram.h", "NVRAM_SETCKS", 0x7041},
+ {"linux/ppdev.h", "PPSETMODE", 0x7080},
+ {"linux/ppdev.h", "PPRSTATUS", 0x7081},
+ {"linux/ppdev.h", "PPRCONTROL", 0x7083},
+ {"linux/ppdev.h", "PPWCONTROL", 0x7084},
+ {"linux/ppdev.h", "PPRDATA", 0x7085},
+ {"linux/ppdev.h", "PPWDATA", 0x7086},
+ {"linux/ppdev.h", "PPCLAIM", 0x708b},
+ {"linux/ppdev.h", "PPRELEASE", 0x708c},
+ {"linux/ppdev.h", "PPYIELD", 0x708d},
+ {"linux/ppdev.h", "PPFCONTROL", 0x708e},
+ {"linux/ppdev.h", "PPEXCL", 0x708f},
+ {"linux/ppdev.h", "PPDATADIR", 0x7090},
+ {"linux/ppdev.h", "PPNEGOT", 0x7091},
+ {"linux/ppdev.h", "PPWCTLONIRQ", 0x7092},
+ {"linux/ppdev.h", "PPCLRIRQ", 0x7093},
+ {"linux/ppdev.h", "PPSETPHASE", 0x7094},
+ {"linux/ppdev.h", "PPGETTIME", 0x7095},
+ {"linux/ppdev.h", "PPSETTIME", 0x7096},
+ {"linux/ppdev.h", "PPGETMODES", 0x7097},
+ {"linux/ppdev.h", "PPGETMODE", 0x7098},
+ {"linux/ppdev.h", "PPGETPHASE", 0x7099},
+ {"linux/ppdev.h", "PPGETFLAGS", 0x709a},
+ {"linux/ppdev.h", "PPSETFLAGS", 0x709b},
+ {"linux/serio.h", "SPIOCSTYPE", 0x7101},
+ {"linux/videotext.h", "VTXIOCGETINFO", 0x7101},
+ {"linux/videotext.h", "VTXIOCCLRPAGE", 0x7102},
+ {"linux/videotext.h", "VTXIOCCLRFOUND", 0x7103},
+ {"linux/videotext.h", "VTXIOCPAGEREQ", 0x7104},
+ {"linux/videotext.h", "VTXIOCGETSTAT", 0x7105},
+ {"linux/videotext.h", "VTXIOCGETPAGE", 0x7106},
+ {"linux/videotext.h", "VTXIOCSTOPDAU", 0x7107},
+ {"linux/videotext.h", "VTXIOCPUTPAGE", 0x7108},
+ {"linux/videotext.h", "VTXIOCSETDISP", 0x7109},
+ {"linux/videotext.h", "VTXIOCPUTSTAT", 0x710a},
+ {"linux/videotext.h", "VTXIOCCLRCACHE", 0x710b},
+ {"linux/videotext.h", "VTXIOCSETVIRT", 0x710c},
+ {"linux/telephony.h", "PHONE_CAPABILITIES", 0x7180},
+ {"linux/telephony.h", "PHONE_CAPABILITIES_LIST", 0x7181},
+ {"linux/telephony.h", "PHONE_CAPABILITIES_CHECK", 0x7182},
+ {"linux/telephony.h", "PHONE_RING", 0x7183},
+ {"linux/telephony.h", "PHONE_HOOKSTATE", 0x7184},
+ {"linux/telephony.h", "PHONE_MAXRINGS", 0x7185},
+ {"linux/telephony.h", "PHONE_RING_CADENCE", 0x7186},
+ {"linux/telephony.h", "OLD_PHONE_RING_START", 0x7187},
+ {"linux/telephony.h", "PHONE_RING_START", 0x7187},
+ {"linux/telephony.h", "PHONE_RING_STOP", 0x7188},
+ {"linux/telephony.h", "PHONE_REC_CODEC", 0x7189},
+ {"linux/telephony.h", "PHONE_REC_START", 0x718a},
+ {"linux/telephony.h", "PHONE_REC_STOP", 0x718b},
+ {"linux/telephony.h", "PHONE_REC_DEPTH", 0x718c},
+ {"linux/telephony.h", "PHONE_FRAME", 0x718d},
+ {"linux/telephony.h", "PHONE_REC_VOLUME", 0x718e},
+ {"linux/telephony.h", "PHONE_REC_LEVEL", 0x718f},
+ {"linux/telephony.h", "PHONE_PLAY_CODEC", 0x7190},
+ {"linux/telephony.h", "PHONE_PLAY_START", 0x7191},
+ {"linux/telephony.h", "PHONE_PLAY_STOP", 0x7192},
+ {"linux/telephony.h", "PHONE_PLAY_DEPTH", 0x7193},
+ {"linux/telephony.h", "PHONE_PLAY_VOLUME", 0x7194},
+ {"linux/telephony.h", "PHONE_PLAY_LEVEL", 0x7195},
+ {"linux/telephony.h", "PHONE_DTMF_READY", 0x7196},
+ {"linux/telephony.h", "PHONE_GET_DTMF", 0x7197},
+ {"linux/telephony.h", "PHONE_GET_DTMF_ASCII", 0x7198},
+ {"linux/telephony.h", "PHONE_DTMF_OOB", 0x7199},
+ {"linux/telephony.h", "PHONE_EXCEPTION", 0x719a},
+ {"linux/telephony.h", "PHONE_PLAY_TONE", 0x719b},
+ {"linux/telephony.h", "PHONE_SET_TONE_ON_TIME", 0x719c},
+ {"linux/telephony.h", "PHONE_SET_TONE_OFF_TIME", 0x719d},
+ {"linux/telephony.h", "PHONE_GET_TONE_ON_TIME", 0x719e},
+ {"linux/telephony.h", "PHONE_GET_TONE_OFF_TIME", 0x719f},
+ {"linux/telephony.h", "PHONE_GET_TONE_STATE", 0x71a0},
+ {"linux/telephony.h", "PHONE_BUSY", 0x71a1},
+ {"linux/telephony.h", "PHONE_RINGBACK", 0x71a2},
+ {"linux/telephony.h", "PHONE_DIALTONE", 0x71a3},
+ {"linux/telephony.h", "PHONE_CPT_STOP", 0x71a4},
+ {"linux/telephony.h", "PHONE_PSTN_SET_STATE", 0x71a4},
+ {"linux/telephony.h", "PHONE_PSTN_GET_STATE", 0x71a5},
+ {"linux/telephony.h", "PHONE_WINK_DURATION", 0x71a6},
+ {"linux/telephony.h", "PHONE_QUERY_CODEC", 0x71a7},
+ {"linux/telephony.h", "PHONE_PSTN_LINETEST", 0x71a8},
+ {"linux/telephony.h", "PHONE_VAD", 0x71a9},
+ {"linux/telephony.h", "PHONE_WINK", 0x71aa},
+ {"linux/ixjuser.h", "IXJCTL_DSP_RESET", 0x71c0},
+ {"linux/ixjuser.h", "IXJCTL_CARDTYPE", 0x71c1},
+ {"linux/ixjuser.h", "IXJCTL_SERIAL", 0x71c2},
+ {"linux/ixjuser.h", "IXJCTL_DSP_TYPE", 0x71c3},
+ {"linux/ixjuser.h", "IXJCTL_DSP_VERSION", 0x71c4},
+ {"linux/ixjuser.h", "IXJCTL_DSP_IDLE", 0x71c5},
+ {"linux/ixjuser.h", "IXJCTL_TESTRAM", 0x71c6},
+ {"linux/ixjuser.h", "IXJCTL_SET_FILTER", 0x71c7},
+ {"linux/ixjuser.h", "IXJCTL_GET_FILTER_HIST", 0x71c8},
+ {"linux/ixjuser.h", "IXJCTL_INIT_TONE", 0x71c9},
+ {"linux/ixjuser.h", "IXJCTL_TONE_CADENCE", 0x71ca},
+ {"linux/ixjuser.h", "IXJCTL_AEC_START", 0x71cb},
+ {"linux/ixjuser.h", "IXJCTL_AEC_STOP", 0x71cc},
+ {"linux/ixjuser.h", "IXJCTL_AEC_GET_LEVEL", 0x71cd},
+ {"linux/ixjuser.h", "IXJCTL_SET_LED", 0x71ce},
+ {"linux/ixjuser.h", "IXJCTL_MIXER", 0x71cf},
+ {"linux/ixjuser.h", "IXJCTL_DAA_COEFF_SET", 0x71d0},
+ {"linux/ixjuser.h", "IXJCTL_PORT", 0x71d1},
+ {"linux/ixjuser.h", "IXJCTL_DAA_AGAIN", 0x71d2},
+ {"linux/ixjuser.h", "IXJCTL_PSTN_LINETEST", 0x71d3},
+ {"linux/ixjuser.h", "IXJCTL_CID", 0x71d4},
+ {"linux/ixjuser.h", "IXJCTL_POTS_PSTN", 0x71d5},
+ {"linux/ixjuser.h", "IXJCTL_FILTER_CADENCE", 0x71d6},
+ {"linux/ixjuser.h", "IXJCTL_PLAY_CID", 0x71d7},
+ {"linux/ixjuser.h", "IXJCTL_VMWI", 0x71d8},
+ {"linux/ixjuser.h", "IXJCTL_CIDCW", 0x71d9},
+ {"linux/ixjuser.h", "IXJCTL_VERSION", 0x71da},
+ {"linux/telephony.h", "PHONE_REC_VOLUME_LINEAR", 0x71db},
+ {"linux/telephony.h", "PHONE_PLAY_VOLUME_LINEAR", 0x71dc},
+ {"linux/ixjuser.h", "IXJCTL_SET_FILTER_RAW", 0x71dd},
+ {"linux/ixjuser.h", "IXJCTL_HZ", 0x71e0},
+ {"linux/ixjuser.h", "IXJCTL_RATE", 0x71e1},
+ {"linux/ixjuser.h", "IXJCTL_FRAMES_READ", 0x71e2},
+ {"linux/ixjuser.h", "IXJCTL_FRAMES_WRITTEN", 0x71e3},
+ {"linux/ixjuser.h", "IXJCTL_READ_WAIT", 0x71e4},
+ {"linux/ixjuser.h", "IXJCTL_WRITE_WAIT", 0x71e5},
+ {"linux/ixjuser.h", "IXJCTL_DRYBUFFER_READ", 0x71e6},
+ {"linux/ixjuser.h", "IXJCTL_DRYBUFFER_CLEAR", 0x71e7},
+ {"linux/ixjuser.h", "IXJCTL_DTMF_PRESCALE", 0x71e8},
+ {"linux/ixjuser.h", "IXJCTL_SIGCTL", 0x71e9},
+ {"linux/ixjuser.h", "IXJCTL_SC_RXG", 0x71ea},
+ {"linux/ixjuser.h", "IXJCTL_SC_TXG", 0x71eb},
+ {"linux/ixjuser.h", "IXJCTL_INTERCOM_START", 0x71fd},
+ {"linux/ixjuser.h", "IXJCTL_INTERCOM_STOP", 0x71fe},
+ {"linux/videotext.h", "TUNIOCGETINFO", 0x7201},
+ {"linux/msdos_fs.h", "VFAT_IOCTL_READDIR_BOTH", 0x7201},
+ {"linux/videotext.h", "TUNIOCRESET", 0x7202},
+ {"linux/msdos_fs.h", "VFAT_IOCTL_READDIR_SHORT", 0x7202},
+ {"linux/videotext.h", "TUNIOCSETFREQ", 0x7203},
+ {"linux/videotext.h", "TUNIOCGETFREQ", 0x7204},
+ {"linux/videotext.h", "TUNIOCSETCHAN", 0x7205},
+ {"linux/videotext.h", "TUNIOCGETCHAN", 0x7206},
+ {"linux/cdk.h", "STL_BINTR", 0x7314},
+ {"linux/cdk.h", "STL_BSTART", 0x7315},
+ {"linux/cdk.h", "STL_BSTOP", 0x7316},
+ {"linux/cdk.h", "STL_BRESET", 0x7317},
+ {"linux/cdk.h", "STL_GETPFLAG", 0x7350},
+ {"linux/cdk.h", "STL_SETPFLAG", 0x7351},
+ {"linux/if_ppp.h", "PPPIOCGCHAN", 0x7437},
+ {"linux/if_ppp.h", "PPPIOCATTCHAN", 0x7438},
+ {"linux/if_ppp.h", "PPPIOCDISCONN", 0x7439},
+ {"linux/if_ppp.h", "PPPIOCCONNECT", 0x743a},
+ {"linux/if_ppp.h", "PPPIOCSMRRU", 0x743b},
+ {"linux/if_ppp.h", "PPPIOCDETACH", 0x743c},
+ {"linux/if_ppp.h", "PPPIOCATTACH", 0x743d},
+ {"linux/if_ppp.h", "PPPIOCNEWUNIT", 0x743e},
+ {"linux/if_ppp.h", "PPPIOCGIDLE", 0x743f},
+ {"linux/if_ppp.h", "PPPIOCSDEBUG", 0x7440},
+ {"linux/if_ppp.h", "PPPIOCGDEBUG", 0x7441},
+ {"linux/if_ppp.h", "PPPIOCSACTIVE", 0x7446},
+ {"linux/if_ppp.h", "PPPIOCSPASS", 0x7447},
+ {"linux/if_ppp.h", "PPPIOCSNPMODE", 0x744b},
+ {"linux/if_ppp.h", "PPPIOCGNPMODE", 0x744c},
+ {"linux/if_ppp.h", "PPPIOCSCOMPRESS", 0x744d},
+ {"linux/if_ppp.h", "PPPIOCXFERUNIT", 0x744e},
+ {"linux/if_ppp.h", "PPPIOCSXASYNCMAP", 0x744f},
+ {"linux/if_ppp.h", "PPPIOCGXASYNCMAP", 0x7450},
+ {"linux/if_ppp.h", "PPPIOCSMAXCID", 0x7451},
+ {"linux/if_ppp.h", "PPPIOCSMRU", 0x7452},
+ {"linux/if_ppp.h", "PPPIOCGMRU", 0x7453},
+ {"linux/if_ppp.h", "PPPIOCSRASYNCMAP", 0x7454},
+ {"linux/if_ppp.h", "PPPIOCGRASYNCMAP", 0x7455},
+ {"linux/if_ppp.h", "PPPIOCGUNIT", 0x7456},
+ {"linux/if_ppp.h", "PPPIOCSASYNCMAP", 0x7457},
+ {"linux/if_ppp.h", "PPPIOCGASYNCMAP", 0x7458},
+ {"linux/if_ppp.h", "PPPIOCSFLAGS", 0x7459},
+ {"linux/jffs.h", "JFFS_PRINT_HASH", 0x745a},
+ {"linux/if_ppp.h", "PPPIOCGFLAGS", 0x745a},
+ {"linux/jffs.h", "JFFS_PRINT_TREE", 0x745b},
+ {"linux/jffs.h", "JFFS_GET_STATUS", 0x745c},
+ {"linux/isdn_ppp.h", "PPPIOCGCALLINFO", 0x7480},
+ {"linux/isdn_ppp.h", "PPPIOCBUNDLE", 0x7481},
+ {"linux/isdn_ppp.h", "PPPIOCGMPFLAGS", 0x7482},
+ {"linux/isdn_ppp.h", "PPPIOCSMPFLAGS", 0x7483},
+ {"linux/isdn_ppp.h", "PPPIOCSMPMTU", 0x7484},
+ {"linux/isdn_ppp.h", "PPPIOCSMPMRU", 0x7485},
+ {"linux/isdn_ppp.h", "PPPIOCGCOMPRESSORS", 0x7486},
+ {"linux/isdn_ppp.h", "PPPIOCSCOMPRESSOR", 0x7487},
+ {"linux/isdn_ppp.h", "PPPIOCGIFNAME", 0x7488},
+ {"linux/toshiba.h", "TOSH_SMM", 0x7490},
+ {"linux/smb_fs.h", "SMB_IOC_GETMOUNTUID", 0x7501},
+ {"linux/smb_fs.h", "SMB_IOC_NEWCONN", 0x7502},
+ {"linux/smb_fs.h", "SMB_IOC_GETMOUNTUID32", 0x7503},
+ {"linux/sonypi.h", "SONYPI_IOCGBRT", 0x7600},
+ {"linux/sonypi.h", "SONYPI_IOCSBRT", 0x7600},
+ {"linux/ext2_fs.h", "EXT2_IOC_GETVERSION", 0x7601},
+ {"linux/ext3_fs.h", "EXT3_IOC_GETVERSION_OLD", 0x7601},
+ {"linux/videodev.h", "VIDIOCGCAP", 0x7601},
+ {"linux/ext2_fs.h", "EXT2_IOC_SETVERSION", 0x7602},
+ {"linux/ext3_fs.h", "EXT3_IOC_SETVERSION_OLD", 0x7602},
+ {"linux/videodev.h", "VIDIOCGCHAN", 0x7602},
+ {"linux/videodev.h", "VIDIOCSCHAN", 0x7603},
+ {"linux/videodev.h", "VIDIOCGTUNER", 0x7604},
+ {"linux/videodev.h", "VIDIOCSTUNER", 0x7605},
+ {"linux/videodev.h", "VIDIOCGPICT", 0x7606},
+ {"linux/videodev.h", "VIDIOCSPICT", 0x7607},
+ {"linux/videodev.h", "VIDIOCCAPTURE", 0x7608},
+ {"linux/videodev.h", "VIDIOCGWIN", 0x7609},
+ {"linux/videodev.h", "VIDIOCSWIN", 0x760a},
+ {"linux/videodev.h", "VIDIOCGFBUF", 0x760b},
+ {"linux/videodev.h", "VIDIOCSFBUF", 0x760c},
+ {"linux/videodev.h", "VIDIOCKEY", 0x760d},
+ {"linux/videodev.h", "VIDIOCGFREQ", 0x760e},
+ {"linux/videodev.h", "VIDIOCSFREQ", 0x760f},
+ {"linux/videodev.h", "VIDIOCGAUDIO", 0x7610},
+ {"linux/videodev.h", "VIDIOCSAUDIO", 0x7611},
+ {"linux/videodev.h", "VIDIOCSYNC", 0x7612},
+ {"linux/videodev.h", "VIDIOCMCAPTURE", 0x7613},
+ {"linux/videodev.h", "VIDIOCGMBUF", 0x7614},
+ {"linux/videodev.h", "VIDIOCGUNIT", 0x7615},
+ {"linux/videodev.h", "VIDIOCGCAPTURE", 0x7616},
+ {"linux/videodev.h", "VIDIOCSCAPTURE", 0x7617},
+ {"linux/videodev.h", "VIDIOCSPLAYMODE", 0x7618},
+ {"linux/videodev.h", "VIDIOCSWRITEMODE", 0x7619},
+ {"linux/videodev.h", "VIDIOCGPLAYINFO", 0x761a},
+ {"linux/videodev.h", "VIDIOCSMICROCODE", 0x761b},
+ {"linux/videodev.h", "VIDIOCGVBIFMT", 0x761c},
+ {"linux/videodev.h", "VIDIOCSVBIFMT", 0x761d},
+ {"linux/meye.h", "MEYEIOC_G_PARAMS", 0x76c0},
+ {"linux/meye.h", "MEYEIOC_S_PARAMS", 0x76c1},
+ {"linux/meye.h", "MEYEIOC_QBUF_CAPT", 0x76c2},
+ {"linux/meye.h", "MEYEIOC_SYNC", 0x76c3},
+ {"linux/meye.h", "MEYEIOC_STILLCAPT", 0x76c4},
+ {"linux/meye.h", "MEYEIOC_STILLJCAPT", 0x76c5},
+ {"asm/sockios.h", "FIOSETOWN", 0x8901},
+ {"asm/sockios.h", "SIOCSPGRP", 0x8902},
+ {"asm/sockios.h", "FIOGETOWN", 0x8903},
+ {"asm/sockios.h", "SIOCGPGRP", 0x8904},
+ {"asm/sockios.h", "SIOCATMARK", 0x8905},
+ {"asm/sockios.h", "SIOCGSTAMP", 0x8906},
+ {"linux/sockios.h", "SIOCADDRT", 0x890b},
+ {"linux/sockios.h", "SIOCDELRT", 0x890c},
+ {"linux/sockios.h", "SIOCRTMSG", 0x890d},
+ {"linux/sockios.h", "SIOCGIFNAME", 0x8910},
+ {"linux/sockios.h", "SIOCSIFLINK", 0x8911},
+ {"linux/sockios.h", "SIOCGIFCONF", 0x8912},
+ {"linux/sockios.h", "SIOCGIFFLAGS", 0x8913},
+ {"linux/sockios.h", "SIOCSIFFLAGS", 0x8914},
+ {"linux/sockios.h", "SIOCGIFADDR", 0x8915},
+ {"linux/sockios.h", "SIOCSIFADDR", 0x8916},
+ {"linux/sockios.h", "SIOCGIFDSTADDR", 0x8917},
+ {"linux/sockios.h", "SIOCSIFDSTADDR", 0x8918},
+ {"linux/sockios.h", "SIOCGIFBRDADDR", 0x8919},
+ {"linux/sockios.h", "SIOCSIFBRDADDR", 0x891a},
+ {"linux/sockios.h", "SIOCGIFNETMASK", 0x891b},
+ {"linux/sockios.h", "SIOCSIFNETMASK", 0x891c},
+ {"linux/sockios.h", "SIOCGIFMETRIC", 0x891d},
+ {"linux/sockios.h", "SIOCSIFMETRIC", 0x891e},
+ {"linux/sockios.h", "SIOCGIFMEM", 0x891f},
+ {"linux/sockios.h", "SIOCSIFMEM", 0x8920},
+ {"linux/sockios.h", "SIOCGIFMTU", 0x8921},
+ {"linux/sockios.h", "SIOCSIFMTU", 0x8922},
+ {"linux/sockios.h", "SIOCSIFNAME", 0x8923},
+ {"linux/sockios.h", "SIOCSIFHWADDR", 0x8924},
+ {"linux/sockios.h", "SIOCGIFENCAP", 0x8925},
+ {"linux/sockios.h", "SIOCSIFENCAP", 0x8926},
+ {"linux/sockios.h", "SIOCGIFHWADDR", 0x8927},
+ {"linux/sockios.h", "SIOCGIFSLAVE", 0x8929},
+ {"linux/sockios.h", "SIOCSIFSLAVE", 0x8930},
+ {"linux/sockios.h", "SIOCADDMULTI", 0x8931},
+ {"linux/sockios.h", "SIOCDELMULTI", 0x8932},
+ {"linux/sockios.h", "SIOCGIFINDEX", 0x8933},
+ {"linux/sockios.h", "SIOCSIFPFLAGS", 0x8934},
+ {"linux/sockios.h", "SIOCGIFPFLAGS", 0x8935},
+ {"linux/sockios.h", "SIOCDIFADDR", 0x8936},
+ {"linux/sockios.h", "SIOCSIFHWBROADCAST", 0x8937},
+ {"linux/sockios.h", "SIOCGIFCOUNT", 0x8938},
+ {"linux/sockios.h", "SIOCGIFBR", 0x8940},
+ {"linux/sockios.h", "SIOCSIFBR", 0x8941},
+ {"linux/sockios.h", "SIOCGIFTXQLEN", 0x8942},
+ {"linux/sockios.h", "SIOCSIFTXQLEN", 0x8943},
+ {"linux/sockios.h", "SIOCGIFDIVERT", 0x8944},
+ {"linux/sockios.h", "SIOCSIFDIVERT", 0x8945},
+ {"linux/sockios.h", "SIOCETHTOOL", 0x8946},
+ {"linux/sockios.h", "SIOCGMIIPHY", 0x8947},
+ {"linux/sockios.h", "SIOCGMIIREG", 0x8948},
+ {"linux/sockios.h", "SIOCSMIIREG", 0x8949},
+ {"linux/sockios.h", "SIOCDARP", 0x8953},
+ {"linux/sockios.h", "SIOCGARP", 0x8954},
+ {"linux/sockios.h", "SIOCSARP", 0x8955},
+ {"linux/sockios.h", "SIOCDRARP", 0x8960},
+ {"linux/sockios.h", "SIOCGRARP", 0x8961},
+ {"linux/sockios.h", "SIOCSRARP", 0x8962},
+ {"linux/sockios.h", "SIOCGIFMAP", 0x8970},
+ {"linux/sockios.h", "SIOCSIFMAP", 0x8971},
+ {"linux/sockios.h", "SIOCADDDLCI", 0x8980},
+ {"linux/sockios.h", "SIOCDELDLCI", 0x8981},
+ {"linux/sockios.h", "SIOCGIFVLAN", 0x8982},
+ {"linux/sockios.h", "SIOCSIFVLAN", 0x8983},
+ {"linux/sockios.h", "SIOCBONDENSLAVE", 0x8990},
+ {"linux/sockios.h", "SIOCBONDRELEASE", 0x8991},
+ {"linux/sockios.h", "SIOCBONDSETHWADDR", 0x8992},
+ {"linux/sockios.h", "SIOCBONDSLAVEINFOQUERY", 0x8993},
+ {"linux/sockios.h", "SIOCBONDINFOQUERY", 0x8994},
+ {"linux/sockios.h", "SIOCBONDCHANGEACTIVE", 0x8995},
+ {"linux/dn.h", "OSIOCSNETADDR", 0x89e0},
+ {"linux/sockios.h", "SIOCPROTOPRIVATE", 0x89e0},
+ {"linux/dn.h", "SIOCSNETADDR", 0x89e0},
+ {"linux/dn.h", "OSIOCGNETADDR", 0x89e1},
+ {"linux/dn.h", "SIOCGNETADDR", 0x89e1},
+ {"linux/sockios.h", "SIOCDEVPRIVATE", 0x89f0},
+ {"linux/wireless.h", "SIOCIWFIRST", 0x8b00},
+ {"linux/wireless.h", "SIOCSIWCOMMIT", 0x8b00},
+ {"linux/wireless.h", "SIOCGIWNAME", 0x8b01},
+ {"linux/wireless.h", "SIOCSIWNWID", 0x8b02},
+ {"linux/wireless.h", "SIOCGIWNWID", 0x8b03},
+ {"linux/wireless.h", "SIOCSIWFREQ", 0x8b04},
+ {"linux/wireless.h", "SIOCGIWFREQ", 0x8b05},
+ {"linux/wireless.h", "SIOCSIWMODE", 0x8b06},
+ {"linux/wireless.h", "SIOCGIWMODE", 0x8b07},
+ {"linux/wireless.h", "SIOCSIWSENS", 0x8b08},
+ {"linux/wireless.h", "SIOCGIWSENS", 0x8b09},
+ {"linux/wireless.h", "SIOCSIWRANGE", 0x8b0a},
+ {"linux/wireless.h", "SIOCGIWRANGE", 0x8b0b},
+ {"linux/wireless.h", "SIOCSIWPRIV", 0x8b0c},
+ {"linux/wireless.h", "SIOCGIWPRIV", 0x8b0d},
+ {"linux/wireless.h", "SIOCSIWSTATS", 0x8b0e},
+ {"linux/wireless.h", "SIOCGIWSTATS", 0x8b0f},
+ {"linux/wireless.h", "SIOCSIWSPY", 0x8b10},
+ {"linux/wireless.h", "SIOCGIWSPY", 0x8b11},
+ {"linux/wireless.h", "SIOCSIWAP", 0x8b14},
+ {"linux/wireless.h", "SIOCGIWAP", 0x8b15},
+ {"linux/wireless.h", "SIOCGIWAPLIST", 0x8b17},
+ {"linux/wireless.h", "SIOCSIWSCAN", 0x8b18},
+ {"linux/wireless.h", "SIOCGIWSCAN", 0x8b19},
+ {"linux/wireless.h", "SIOCSIWESSID", 0x8b1a},
+ {"linux/wireless.h", "SIOCGIWESSID", 0x8b1b},
+ {"linux/wireless.h", "SIOCSIWNICKN", 0x8b1c},
+ {"linux/wireless.h", "SIOCGIWNICKN", 0x8b1d},
+ {"linux/wireless.h", "SIOCSIWRATE", 0x8b20},
+ {"linux/wireless.h", "SIOCGIWRATE", 0x8b21},
+ {"linux/wireless.h", "SIOCSIWRTS", 0x8b22},
+ {"linux/wireless.h", "SIOCGIWRTS", 0x8b23},
+ {"linux/wireless.h", "SIOCSIWFRAG", 0x8b24},
+ {"linux/wireless.h", "SIOCGIWFRAG", 0x8b25},
+ {"linux/wireless.h", "SIOCSIWTXPOW", 0x8b26},
+ {"linux/wireless.h", "SIOCGIWTXPOW", 0x8b27},
+ {"linux/wireless.h", "SIOCSIWRETRY", 0x8b28},
+ {"linux/wireless.h", "SIOCGIWRETRY", 0x8b29},
+ {"linux/wireless.h", "SIOCSIWENCODE", 0x8b2a},
+ {"linux/wireless.h", "SIOCGIWENCODE", 0x8b2b},
+ {"linux/wireless.h", "SIOCSIWPOWER", 0x8b2c},
+ {"linux/wireless.h", "SIOCGIWPOWER", 0x8b2d},
+ {"linux/wireless.h", "SIOCIWFIRSTPRIV", 0x8be0},
+ {"linux/wireless.h", "SIOCIWLASTPRIV", 0x8bff},
+ {"linux/auto_fs.h", "AUTOFS_IOC_READY", 0x9360},
+ {"linux/auto_fs.h", "AUTOFS_IOC_FAIL", 0x9361},
+ {"linux/auto_fs.h", "AUTOFS_IOC_CATATONIC", 0x9362},
+ {"linux/auto_fs.h", "AUTOFS_IOC_PROTOVER", 0x9363},
+ {"linux/auto_fs.h", "AUTOFS_IOC_SETTIMEOUT", 0x9364},
+ {"linux/auto_fs.h", "AUTOFS_IOC_EXPIRE", 0x9365},
+ {"linux/auto_fs4.h", "AUTOFS_IOC_EXPIRE_MULTI", 0x9366},
+ {"linux/nbd.h", "NBD_SET_SOCK", 0xab00},
+ {"linux/nbd.h", "NBD_SET_BLKSIZE", 0xab01},
+ {"linux/nbd.h", "NBD_SET_SIZE", 0xab02},
+ {"linux/nbd.h", "NBD_DO_IT", 0xab03},
+ {"linux/nbd.h", "NBD_CLEAR_SOCK", 0xab04},
+ {"linux/nbd.h", "NBD_CLEAR_QUE", 0xab05},
+ {"linux/nbd.h", "NBD_PRINT_DEBUG", 0xab06},
+ {"linux/nbd.h", "NBD_SET_SIZE_BLOCKS", 0xab07},
+ {"linux/nbd.h", "NBD_DISCONNECT", 0xab08},
+ {"linux/raw.h", "RAW_SETBIND", 0xac00},
+ {"linux/raw.h", "RAW_GETBIND", 0xac01},
+ {"linux/if_pppox.h", "PPPOEIOCSFWD", 0xb100},
+ {"linux/if_pppox.h", "PPPOEIOCDFWD", 0xb101},
+ {"linux/reiserfs_fs.h", "REISERFS_IOC_UNPACK", 0xcd01},
+ {"linux/lvm.h", "VG_CREATE_OLD", 0xfe00},
+ {"linux/lvm.h", "VG_REMOVE", 0xfe01},
+ {"linux/lvm.h", "VG_EXTEND", 0xfe03},
+ {"linux/lvm.h", "VG_REDUCE", 0xfe04},
+ {"linux/lvm.h", "VG_STATUS", 0xfe05},
+ {"linux/lvm.h", "VG_STATUS_GET_COUNT", 0xfe06},
+ {"linux/lvm.h", "VG_STATUS_GET_NAMELIST", 0xfe07},
+ {"linux/lvm.h", "VG_SET_EXTENDABLE", 0xfe08},
+ {"linux/lvm.h", "VG_RENAME", 0xfe09},
+ {"linux/lvm.h", "VG_CREATE", 0xfe0a},
+ {"linux/lvm.h", "LV_CREATE", 0xfe20},
+ {"linux/lvm.h", "LV_REMOVE", 0xfe21},
+ {"linux/lvm.h", "LV_ACTIVATE", 0xfe22},
+ {"linux/lvm.h", "LV_DEACTIVATE", 0xfe23},
+ {"linux/lvm.h", "LV_EXTEND", 0xfe24},
+ {"linux/lvm.h", "LV_REDUCE", 0xfe25},
+ {"linux/lvm.h", "LV_STATUS_BYNAME", 0xfe26},
+ {"linux/lvm.h", "LV_STATUS_BYINDEX", 0xfe27},
+ {"linux/lvm.h", "LV_SET_ACCESS", 0xfe28},
+ {"linux/lvm.h", "LV_SET_ALLOCATION", 0xfe29},
+ {"linux/lvm.h", "LV_SET_STATUS", 0xfe2a},
+ {"linux/lvm.h", "LE_REMAP", 0xfe2b},
+ {"linux/lvm.h", "LV_SNAPSHOT_USE_RATE", 0xfe2c},
+ {"linux/lvm.h", "LV_STATUS_BYDEV", 0xfe2e},
+ {"linux/lvm.h", "LV_RENAME", 0xfe2f},
+ {"linux/lvm.h", "LV_BMAP", 0xfe30},
+ {"linux/lvm.h", "PV_STATUS", 0xfe40},
+ {"linux/lvm.h", "PV_CHANGE", 0xfe41},
+ {"linux/lvm.h", "PV_FLUSH", 0xfe42},
+ {"linux/lvm.h", "PE_LOCK_UNLOCK", 0xfe50},
+ {"linux/lvm.h", "LVM_GET_IOP_VERSION", 0xfe98},
+ {"linux/lvm.h", "LVM_RESET", 0xfe99},
+ {"linux/lvm.h", "LVM_LOCK_LVM", 0xff00},
diff --git a/strace/linux/ia64/signalent.h b/strace/linux/ia64/signalent.h
new file mode 100644
index 0000000..e791a64
--- /dev/null
+++ b/strace/linux/ia64/signalent.h
@@ -0,0 +1,64 @@
+ "SIG_0", /* 0 */
+ "SIGHUP", /* 1 */
+ "SIGINT", /* 2 */
+ "SIGQUIT", /* 3 */
+ "SIGILL", /* 4 */
+ "SIGTRAP", /* 5 */
+ "SIGABRT", /* 6 */
+ "SIGBUS", /* 7 */
+ "SIGFPE", /* 8 */
+ "SIGKILL", /* 9 */
+ "SIGUSR1", /* 10 */
+ "SIGSEGV", /* 11 */
+ "SIGUSR2", /* 12 */
+ "SIGPIPE", /* 13 */
+ "SIGALRM", /* 14 */
+ "SIGTERM", /* 15 */
+ "SIGSTKFLT", /* 16 */
+ "SIGCHLD", /* 17 */
+ "SIGCONT", /* 18 */
+ "SIGSTOP", /* 19 */
+ "SIGTSTP", /* 20 */
+ "SIGTTIN", /* 21 */
+ "SIGTTOU", /* 22 */
+ "SIGURG", /* 23 */
+ "SIGXCPU", /* 24 */
+ "SIGXFSZ", /* 25 */
+ "SIGVTALRM", /* 26 */
+ "SIGPROF", /* 27 */
+ "SIGWINCH", /* 28 */
+ "SIGIO", /* 29 */
+ "SIGPWR", /* 30 */
+ "SIGSYS", /* 31 */
+ "SIGRT0", /* 32 */
+ "SIGRT1", /* 33 */
+ "SIGRT2", /* 34 */
+ "SIGRT3", /* 35 */
+ "SIGRT4", /* 36 */
+ "SIGRT5", /* 37 */
+ "SIGRT6", /* 38 */
+ "SIGRT7", /* 39 */
+ "SIGRT8", /* 40 */
+ "SIGRT9", /* 41 */
+ "SIGRT10", /* 42 */
+ "SIGRT11", /* 43 */
+ "SIGRT12", /* 44 */
+ "SIGRT13", /* 45 */
+ "SIGRT14", /* 46 */
+ "SIGRT15", /* 47 */
+ "SIGRT16", /* 48 */
+ "SIGRT17", /* 49 */
+ "SIGRT18", /* 50 */
+ "SIGRT19", /* 51 */
+ "SIGRT20", /* 52 */
+ "SIGRT21", /* 53 */
+ "SIGRT22", /* 54 */
+ "SIGRT23", /* 55 */
+ "SIGRT24", /* 56 */
+ "SIGRT25", /* 57 */
+ "SIGRT26", /* 58 */
+ "SIGRT27", /* 59 */
+ "SIGRT28", /* 60 */
+ "SIGRT29", /* 61 */
+ "SIGRT30", /* 62 */
+ "SIGRT31", /* 63 */
diff --git a/strace/linux/ia64/syscallent.h b/strace/linux/ia64/syscallent.h
new file mode 100644
index 0000000..737e86f
--- /dev/null
+++ b/strace/linux/ia64/syscallent.h
@@ -0,0 +1,1211 @@
+/*
+ * Copyright (c) 1999, 2001 Hewlett-Packard Co
+ * David Mosberger-Tang <davidm@hpl.hp.com>
+ * 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.
+ *
+ * $Id: syscallent.h,v 1.18 2005/05/09 08:02:05 roland Exp $
+ */
+
+/*
+ * IA-32 syscalls that have pointer arguments which are incompatible
+ * with 64-bit layout get redirected to printargs.
+ */
+#define sys_getrlimit printargs
+#define sys_afs_syscall printargs
+#define sys_getpmsg printargs
+#define sys_putpmsg printargs
+#define sys_ugetrlimit printargs
+#define sys_fork printargs
+#define sys_waitpid printargs
+#define sys_time printargs
+#define sys_break printargs
+#define sys_oldstat printargs
+#define sys_lseek printargs
+#define sys_stime printargs
+#define sys_ptrace printargs
+#define sys_alarm printargs
+#define sys_oldfstat printargs
+#define sys_pause printargs
+#define sys_utime printargs
+#define sys_stty printargs
+#define sys_gtty printargs
+#define sys_ftime printargs
+#define sys_pipe printargs
+#define sys_times printargs
+#define sys_prof printargs
+#define sys_signal printargs
+#define sys_lock printargs
+#define sys_ioctl printargs
+#define sys_fcntl printargs
+#define sys_mpx printargs
+#define sys_ulimit printargs
+#define sys_oldolduname printargs
+#define sys_sigaction printargs
+#define sys_sgetmask printargs
+#define sys_ssetmask printargs
+#define sys_sigsuspend printargs
+#define sys_sigpending printargs
+#define sys_setrlimit printargs
+#define sys_getrusage printargs
+#define sys_gettimeofday printargs
+#define sys_settimeofday printargs
+#define sys_getgroups printargs
+#define sys_setgroups printargs
+#define sys_select printargs
+#define sys_oldlstat printargs
+#define sys_readdir printargs
+#define sys_profil printargs
+#define sys_statfs printargs
+#define sys_fstatfs printargs
+#define sys_ioperm printargs
+#define sys_socketcall printargs
+#define sys_setitimer printargs
+#define sys_getitimer printargs
+#define sys_stat printargs
+#define sys_lstat printargs
+#define sys_fstat printargs
+#define sys_olduname printargs
+#define sys_iopl printargs
+#define sys_idle printargs
+#define sys_vm86old printargs
+#define sys_wait4 printargs
+#define sys_sysinfo printargs
+#define sys_ipc printargs
+#define sys_sigreturn printargs
+#define sys_uname printargs
+#define sys_modify_ldt printargs
+#define sys_adjtimex printargs
+#define sys_sigprocmask printargs
+#define sys_create_module printargs
+#define sys_init_module printargs
+#define sys_get_kernel_syms printargs
+#define sys_quotactl printargs
+#define sys_bdflush printargs
+#define sys_personality printargs
+#define sys_getdents printargs
+#define sys__newselect printargs
+#define sys_msync printargs
+#define sys_readv printargs
+#define sys_writev printargs
+#define sys__sysctl printargs
+#define sys_sched_rr_get_interval printargs
+#define sys_getresuid printargs
+#define sys_vm86 printargs
+#define sys_query_module printargs
+#define sys_nfsservctl printargs
+#define sys_getresgid printargs
+#define sys_rt_sigreturn printargs
+#define sys_rt_sigaction printargs
+#define sys_rt_sigprocmask printargs
+#define sys_rt_sigtimedwait printargs
+#define sys_rt_sigqueueinfo printargs
+#define sys_rt_sigsuspend printargs
+#define sys_pread printargs
+#define sys_pwrite printargs
+#define sys_sigaltstack printargs
+#define sys_sendfile printargs
+#define sys_vfork printargs
+#define sys_truncate64 printargs
+#define sys_ftruncate64 printargs
+#define sys_stat64 printargs
+#define sys_lstat64 printargs
+#define sys_fstat64 printargs
+#define sys_fcntl64 printargs
+
+#include "../syscallent.h"
+
+#undef sys_getrlimit
+#undef sys_afs_syscall
+#undef sys_getpmsg
+#undef sys_putpmsg
+#undef sys_ugetrlimit
+#undef sys_fork
+#undef sys_waitpid
+#undef sys_time
+#undef sys_break
+#undef sys_oldstat
+#undef sys_lseek
+#undef sys_stime
+#undef sys_ptrace
+#undef sys_alarm
+#undef sys_oldfstat
+#undef sys_pause
+#undef sys_utime
+#undef sys_stty
+#undef sys_gtty
+#undef sys_ftime
+#undef sys_pipe
+#undef sys_times
+#undef sys_prof
+#undef sys_signal
+#undef sys_lock
+#undef sys_ioctl
+#undef sys_fcntl
+#undef sys_mpx
+#undef sys_ulimit
+#undef sys_oldolduname
+#undef sys_sigaction
+#undef sys_sgetmask
+#undef sys_ssetmask
+#undef sys_sigsuspend
+#undef sys_sigpending
+#undef sys_setrlimit
+#undef sys_getrusage
+#undef sys_gettimeofday
+#undef sys_settimeofday
+#undef sys_getgroups
+#undef sys_setgroups
+#undef sys_select
+#undef sys_oldlstat
+#undef sys_readdir
+#undef sys_profil
+#undef sys_statfs
+#undef sys_fstatfs
+#undef sys_ioperm
+#undef sys_socketcall
+#undef sys_setitimer
+#undef sys_getitimer
+#undef sys_stat
+#undef sys_lstat
+#undef sys_fstat
+#undef sys_olduname
+#undef sys_iopl
+#undef sys_idle
+#undef sys_vm86old
+#undef sys_wait4
+#undef sys_sysinfo
+#undef sys_ipc
+#undef sys_sigreturn
+#undef sys_uname
+#undef sys_modify_ldt
+#undef sys_adjtimex
+#undef sys_sigprocmask
+#undef sys_create_module
+#undef sys_init_module
+#undef sys_delete_module
+#undef sys_get_kernel_syms
+#undef sys_quotactl
+#undef sys_bdflush
+#undef sys_personality
+#undef sys_getdents
+#undef sys__newselect
+#undef sys_msync
+#undef sys_readv
+#undef sys_writev
+#undef sys__sysctl
+#undef sys_sched_rr_get_interval
+#undef sys_nanosleep
+#undef sys_getresuid
+#undef sys_vm86
+#undef sys_query_module
+#undef sys_nfsservctl
+#undef sys_getresgid
+#undef sys_rt_sigreturn
+#undef sys_rt_sigaction
+#undef sys_rt_sigprocmask
+#undef sys_rt_sigtimedwait
+#undef sys_rt_sigqueueinfo
+#undef sys_rt_sigsuspend
+#undef sys_pread
+#undef sys_pwrite
+#undef sys_sigaltstack
+#undef sys_sendfile
+#undef sys_vfork
+#undef sys_truncate64
+#undef sys_ftruncate64
+#undef sys_stat64
+#undef sys_lstat64
+#undef sys_fstat64
+#undef sys_fcntl64
+
+#include "../dummy.h"
+
+/* You must be careful to check ../syscallent.h so that this table
+ starts where that one leaves off.
+*/
+
+ { 8, 0, printargs, "SYS_343" }, /* 343 */
+ { 8, 0, printargs, "SYS_344" }, /* 344 */
+ { 8, 0, printargs, "SYS_345" }, /* 345 */
+ { 8, 0, printargs, "SYS_346" }, /* 346 */
+ { 8, 0, printargs, "SYS_347" }, /* 347 */
+ { 8, 0, printargs, "SYS_348" }, /* 348 */
+ { 8, 0, printargs, "SYS_349" }, /* 349 */
+ { 8, 0, printargs, "SYS_350" }, /* 350 */
+ { 8, 0, printargs, "SYS_351" }, /* 351 */
+ { 8, 0, printargs, "SYS_352" }, /* 352 */
+ { 8, 0, printargs, "SYS_353" }, /* 353 */
+ { 8, 0, printargs, "SYS_354" }, /* 354 */
+ { 8, 0, printargs, "SYS_355" }, /* 355 */
+ { 8, 0, printargs, "SYS_356" }, /* 356 */
+ { 8, 0, printargs, "SYS_357" }, /* 357 */
+ { 8, 0, printargs, "SYS_358" }, /* 358 */
+ { 8, 0, printargs, "SYS_359" }, /* 359 */
+ { 8, 0, printargs, "SYS_360" }, /* 360 */
+ { 8, 0, printargs, "SYS_361" }, /* 361 */
+ { 8, 0, printargs, "SYS_362" }, /* 362 */
+ { 8, 0, printargs, "SYS_363" }, /* 363 */
+ { 8, 0, printargs, "SYS_364" }, /* 364 */
+ { 8, 0, printargs, "SYS_365" }, /* 365 */
+ { 8, 0, printargs, "SYS_366" }, /* 366 */
+ { 8, 0, printargs, "SYS_367" }, /* 367 */
+ { 8, 0, printargs, "SYS_368" }, /* 368 */
+ { 8, 0, printargs, "SYS_369" }, /* 369 */
+ { 8, 0, printargs, "SYS_370" }, /* 370 */
+ { 8, 0, printargs, "SYS_371" }, /* 371 */
+ { 8, 0, printargs, "SYS_372" }, /* 372 */
+ { 8, 0, printargs, "SYS_373" }, /* 373 */
+ { 8, 0, printargs, "SYS_374" }, /* 374 */
+ { 8, 0, printargs, "SYS_375" }, /* 375 */
+ { 8, 0, printargs, "SYS_376" }, /* 376 */
+ { 8, 0, printargs, "SYS_377" }, /* 377 */
+ { 8, 0, printargs, "SYS_378" }, /* 378 */
+ { 8, 0, printargs, "SYS_379" }, /* 379 */
+ { 8, 0, printargs, "SYS_380" }, /* 380 */
+ { 8, 0, printargs, "SYS_381" }, /* 381 */
+ { 8, 0, printargs, "SYS_382" }, /* 382 */
+ { 8, 0, printargs, "SYS_383" }, /* 383 */
+ { 8, 0, printargs, "SYS_384" }, /* 384 */
+ { 8, 0, printargs, "SYS_385" }, /* 385 */
+ { 8, 0, printargs, "SYS_386" }, /* 386 */
+ { 8, 0, printargs, "SYS_387" }, /* 387 */
+ { 8, 0, printargs, "SYS_388" }, /* 388 */
+ { 8, 0, printargs, "SYS_389" }, /* 389 */
+ { 8, 0, printargs, "SYS_390" }, /* 390 */
+ { 8, 0, printargs, "SYS_391" }, /* 391 */
+ { 8, 0, printargs, "SYS_392" }, /* 392 */
+ { 8, 0, printargs, "SYS_393" }, /* 393 */
+ { 8, 0, printargs, "SYS_394" }, /* 394 */
+ { 8, 0, printargs, "SYS_395" }, /* 395 */
+ { 8, 0, printargs, "SYS_396" }, /* 396 */
+ { 8, 0, printargs, "SYS_397" }, /* 397 */
+ { 8, 0, printargs, "SYS_398" }, /* 398 */
+ { 8, 0, printargs, "SYS_399" }, /* 399 */
+ { 8, 0, printargs, "SYS_400" }, /* 400 */
+ { 8, 0, printargs, "SYS_401" }, /* 401 */
+ { 8, 0, printargs, "SYS_402" }, /* 402 */
+ { 8, 0, printargs, "SYS_403" }, /* 403 */
+ { 8, 0, printargs, "SYS_404" }, /* 404 */
+ { 8, 0, printargs, "SYS_405" }, /* 405 */
+ { 8, 0, printargs, "SYS_406" }, /* 406 */
+ { 8, 0, printargs, "SYS_407" }, /* 407 */
+ { 8, 0, printargs, "SYS_408" }, /* 408 */
+ { 8, 0, printargs, "SYS_409" }, /* 409 */
+ { 8, 0, printargs, "SYS_410" }, /* 410 */
+ { 8, 0, printargs, "SYS_411" }, /* 411 */
+ { 8, 0, printargs, "SYS_412" }, /* 412 */
+ { 8, 0, printargs, "SYS_413" }, /* 413 */
+ { 8, 0, printargs, "SYS_414" }, /* 414 */
+ { 8, 0, printargs, "SYS_415" }, /* 415 */
+ { 8, 0, printargs, "SYS_416" }, /* 416 */
+ { 8, 0, printargs, "SYS_417" }, /* 417 */
+ { 8, 0, printargs, "SYS_418" }, /* 418 */
+ { 8, 0, printargs, "SYS_419" }, /* 419 */
+ { 8, 0, printargs, "SYS_420" }, /* 420 */
+ { 8, 0, printargs, "SYS_421" }, /* 421 */
+ { 8, 0, printargs, "SYS_422" }, /* 422 */
+ { 8, 0, printargs, "SYS_423" }, /* 423 */
+ { 8, 0, printargs, "SYS_424" }, /* 424 */
+ { 8, 0, printargs, "SYS_425" }, /* 425 */
+ { 8, 0, printargs, "SYS_426" }, /* 426 */
+ { 8, 0, printargs, "SYS_427" }, /* 427 */
+ { 8, 0, printargs, "SYS_428" }, /* 428 */
+ { 8, 0, printargs, "SYS_429" }, /* 429 */
+ { 8, 0, printargs, "SYS_430" }, /* 430 */
+ { 8, 0, printargs, "SYS_431" }, /* 431 */
+ { 8, 0, printargs, "SYS_432" }, /* 432 */
+ { 8, 0, printargs, "SYS_433" }, /* 433 */
+ { 8, 0, printargs, "SYS_434" }, /* 434 */
+ { 8, 0, printargs, "SYS_435" }, /* 435 */
+ { 8, 0, printargs, "SYS_436" }, /* 436 */
+ { 8, 0, printargs, "SYS_437" }, /* 437 */
+ { 8, 0, printargs, "SYS_438" }, /* 438 */
+ { 8, 0, printargs, "SYS_439" }, /* 439 */
+ { 8, 0, printargs, "SYS_440" }, /* 440 */
+ { 8, 0, printargs, "SYS_441" }, /* 441 */
+ { 8, 0, printargs, "SYS_442" }, /* 442 */
+ { 8, 0, printargs, "SYS_443" }, /* 443 */
+ { 8, 0, printargs, "SYS_444" }, /* 444 */
+ { 8, 0, printargs, "SYS_445" }, /* 445 */
+ { 8, 0, printargs, "SYS_446" }, /* 446 */
+ { 8, 0, printargs, "SYS_447" }, /* 447 */
+ { 8, 0, printargs, "SYS_448" }, /* 448 */
+ { 8, 0, printargs, "SYS_449" }, /* 449 */
+ { 8, 0, printargs, "SYS_450" }, /* 450 */
+ { 8, 0, printargs, "SYS_451" }, /* 451 */
+ { 8, 0, printargs, "SYS_452" }, /* 452 */
+ { 8, 0, printargs, "SYS_453" }, /* 453 */
+ { 8, 0, printargs, "SYS_454" }, /* 454 */
+ { 8, 0, printargs, "SYS_455" }, /* 455 */
+ { 8, 0, printargs, "SYS_456" }, /* 456 */
+ { 8, 0, printargs, "SYS_457" }, /* 457 */
+ { 8, 0, printargs, "SYS_458" }, /* 458 */
+ { 8, 0, printargs, "SYS_459" }, /* 459 */
+ { 8, 0, printargs, "SYS_460" }, /* 460 */
+ { 8, 0, printargs, "SYS_461" }, /* 461 */
+ { 8, 0, printargs, "SYS_462" }, /* 462 */
+ { 8, 0, printargs, "SYS_463" }, /* 463 */
+ { 8, 0, printargs, "SYS_464" }, /* 464 */
+ { 8, 0, printargs, "SYS_465" }, /* 465 */
+ { 8, 0, printargs, "SYS_466" }, /* 466 */
+ { 8, 0, printargs, "SYS_467" }, /* 467 */
+ { 8, 0, printargs, "SYS_468" }, /* 468 */
+ { 8, 0, printargs, "SYS_469" }, /* 469 */
+ { 8, 0, printargs, "SYS_470" }, /* 470 */
+ { 8, 0, printargs, "SYS_471" }, /* 471 */
+ { 8, 0, printargs, "SYS_472" }, /* 472 */
+ { 8, 0, printargs, "SYS_473" }, /* 473 */
+ { 8, 0, printargs, "SYS_474" }, /* 474 */
+ { 8, 0, printargs, "SYS_475" }, /* 475 */
+ { 8, 0, printargs, "SYS_476" }, /* 476 */
+ { 8, 0, printargs, "SYS_477" }, /* 477 */
+ { 8, 0, printargs, "SYS_478" }, /* 478 */
+ { 8, 0, printargs, "SYS_479" }, /* 479 */
+ { 8, 0, printargs, "SYS_480" }, /* 480 */
+ { 8, 0, printargs, "SYS_481" }, /* 481 */
+ { 8, 0, printargs, "SYS_482" }, /* 482 */
+ { 8, 0, printargs, "SYS_483" }, /* 483 */
+ { 8, 0, printargs, "SYS_484" }, /* 484 */
+ { 8, 0, printargs, "SYS_485" }, /* 485 */
+ { 8, 0, printargs, "SYS_486" }, /* 486 */
+ { 8, 0, printargs, "SYS_487" }, /* 487 */
+ { 8, 0, printargs, "SYS_488" }, /* 488 */
+ { 8, 0, printargs, "SYS_489" }, /* 489 */
+ { 8, 0, printargs, "SYS_490" }, /* 490 */
+ { 8, 0, printargs, "SYS_491" }, /* 491 */
+ { 8, 0, printargs, "SYS_492" }, /* 492 */
+ { 8, 0, printargs, "SYS_493" }, /* 493 */
+ { 8, 0, printargs, "SYS_494" }, /* 494 */
+ { 8, 0, printargs, "SYS_495" }, /* 495 */
+ { 8, 0, printargs, "SYS_496" }, /* 496 */
+ { 8, 0, printargs, "SYS_497" }, /* 497 */
+ { 8, 0, printargs, "SYS_498" }, /* 498 */
+ { 8, 0, printargs, "SYS_499" }, /* 499 */
+ { 8, 0, printargs, "SYS_500" }, /* 500 */
+ { 8, 0, printargs, "SYS_501" }, /* 501 */
+ { 8, 0, printargs, "SYS_502" }, /* 502 */
+ { 8, 0, printargs, "SYS_503" }, /* 503 */
+ { 8, 0, printargs, "SYS_504" }, /* 504 */
+ { 8, 0, printargs, "SYS_505" }, /* 505 */
+ { 8, 0, printargs, "SYS_506" }, /* 506 */
+ { 8, 0, printargs, "SYS_507" }, /* 507 */
+ { 8, 0, printargs, "SYS_508" }, /* 508 */
+ { 8, 0, printargs, "SYS_509" }, /* 509 */
+ { 8, 0, printargs, "SYS_510" }, /* 510 */
+ { 8, 0, printargs, "SYS_511" }, /* 511 */
+ { 8, 0, printargs, "SYS_512" }, /* 512 */
+ { 8, 0, printargs, "SYS_513" }, /* 513 */
+ { 8, 0, printargs, "SYS_514" }, /* 514 */
+ { 8, 0, printargs, "SYS_515" }, /* 515 */
+ { 8, 0, printargs, "SYS_516" }, /* 516 */
+ { 8, 0, printargs, "SYS_517" }, /* 517 */
+ { 8, 0, printargs, "SYS_518" }, /* 518 */
+ { 8, 0, printargs, "SYS_519" }, /* 519 */
+ { 8, 0, printargs, "SYS_520" }, /* 520 */
+ { 8, 0, printargs, "SYS_521" }, /* 521 */
+ { 8, 0, printargs, "SYS_522" }, /* 522 */
+ { 8, 0, printargs, "SYS_523" }, /* 523 */
+ { 8, 0, printargs, "SYS_524" }, /* 524 */
+ { 8, 0, printargs, "SYS_525" }, /* 525 */
+ { 8, 0, printargs, "SYS_526" }, /* 526 */
+ { 8, 0, printargs, "SYS_527" }, /* 527 */
+ { 8, 0, printargs, "SYS_528" }, /* 528 */
+ { 8, 0, printargs, "SYS_529" }, /* 529 */
+ { 8, 0, printargs, "SYS_530" }, /* 530 */
+ { 8, 0, printargs, "SYS_531" }, /* 531 */
+ { 8, 0, printargs, "SYS_532" }, /* 532 */
+ { 8, 0, printargs, "SYS_533" }, /* 533 */
+ { 8, 0, printargs, "SYS_534" }, /* 534 */
+ { 8, 0, printargs, "SYS_535" }, /* 535 */
+ { 8, 0, printargs, "SYS_536" }, /* 536 */
+ { 8, 0, printargs, "SYS_537" }, /* 537 */
+ { 8, 0, printargs, "SYS_538" }, /* 538 */
+ { 8, 0, printargs, "SYS_539" }, /* 539 */
+ { 8, 0, printargs, "SYS_540" }, /* 540 */
+ { 8, 0, printargs, "SYS_541" }, /* 541 */
+ { 8, 0, printargs, "SYS_542" }, /* 542 */
+ { 8, 0, printargs, "SYS_543" }, /* 543 */
+ { 8, 0, printargs, "SYS_544" }, /* 544 */
+ { 8, 0, printargs, "SYS_545" }, /* 545 */
+ { 8, 0, printargs, "SYS_546" }, /* 546 */
+ { 8, 0, printargs, "SYS_547" }, /* 547 */
+ { 8, 0, printargs, "SYS_548" }, /* 548 */
+ { 8, 0, printargs, "SYS_549" }, /* 549 */
+ { 8, 0, printargs, "SYS_550" }, /* 550 */
+ { 8, 0, printargs, "SYS_551" }, /* 551 */
+ { 8, 0, printargs, "SYS_552" }, /* 552 */
+ { 8, 0, printargs, "SYS_553" }, /* 553 */
+ { 8, 0, printargs, "SYS_554" }, /* 554 */
+ { 8, 0, printargs, "SYS_555" }, /* 555 */
+ { 8, 0, printargs, "SYS_556" }, /* 556 */
+ { 8, 0, printargs, "SYS_557" }, /* 557 */
+ { 8, 0, printargs, "SYS_558" }, /* 558 */
+ { 8, 0, printargs, "SYS_559" }, /* 559 */
+ { 8, 0, printargs, "SYS_560" }, /* 560 */
+ { 8, 0, printargs, "SYS_561" }, /* 561 */
+ { 8, 0, printargs, "SYS_562" }, /* 562 */
+ { 8, 0, printargs, "SYS_563" }, /* 563 */
+ { 8, 0, printargs, "SYS_564" }, /* 564 */
+ { 8, 0, printargs, "SYS_565" }, /* 565 */
+ { 8, 0, printargs, "SYS_566" }, /* 566 */
+ { 8, 0, printargs, "SYS_567" }, /* 567 */
+ { 8, 0, printargs, "SYS_568" }, /* 568 */
+ { 8, 0, printargs, "SYS_569" }, /* 569 */
+ { 8, 0, printargs, "SYS_570" }, /* 570 */
+ { 8, 0, printargs, "SYS_571" }, /* 571 */
+ { 8, 0, printargs, "SYS_572" }, /* 572 */
+ { 8, 0, printargs, "SYS_573" }, /* 573 */
+ { 8, 0, printargs, "SYS_574" }, /* 574 */
+ { 8, 0, printargs, "SYS_575" }, /* 575 */
+ { 8, 0, printargs, "SYS_576" }, /* 576 */
+ { 8, 0, printargs, "SYS_577" }, /* 577 */
+ { 8, 0, printargs, "SYS_578" }, /* 578 */
+ { 8, 0, printargs, "SYS_579" }, /* 579 */
+ { 8, 0, printargs, "SYS_580" }, /* 580 */
+ { 8, 0, printargs, "SYS_581" }, /* 581 */
+ { 8, 0, printargs, "SYS_582" }, /* 582 */
+ { 8, 0, printargs, "SYS_583" }, /* 583 */
+ { 8, 0, printargs, "SYS_584" }, /* 584 */
+ { 8, 0, printargs, "SYS_585" }, /* 585 */
+ { 8, 0, printargs, "SYS_586" }, /* 586 */
+ { 8, 0, printargs, "SYS_587" }, /* 587 */
+ { 8, 0, printargs, "SYS_588" }, /* 588 */
+ { 8, 0, printargs, "SYS_589" }, /* 589 */
+ { 8, 0, printargs, "SYS_590" }, /* 590 */
+ { 8, 0, printargs, "SYS_591" }, /* 591 */
+ { 8, 0, printargs, "SYS_592" }, /* 592 */
+ { 8, 0, printargs, "SYS_593" }, /* 593 */
+ { 8, 0, printargs, "SYS_594" }, /* 594 */
+ { 8, 0, printargs, "SYS_595" }, /* 595 */
+ { 8, 0, printargs, "SYS_596" }, /* 596 */
+ { 8, 0, printargs, "SYS_597" }, /* 597 */
+ { 8, 0, printargs, "SYS_598" }, /* 598 */
+ { 8, 0, printargs, "SYS_599" }, /* 599 */
+ { 8, 0, printargs, "SYS_600" }, /* 600 */
+ { 8, 0, printargs, "SYS_601" }, /* 601 */
+ { 8, 0, printargs, "SYS_602" }, /* 602 */
+ { 8, 0, printargs, "SYS_603" }, /* 603 */
+ { 8, 0, printargs, "SYS_604" }, /* 604 */
+ { 8, 0, printargs, "SYS_605" }, /* 605 */
+ { 8, 0, printargs, "SYS_606" }, /* 606 */
+ { 8, 0, printargs, "SYS_607" }, /* 607 */
+ { 8, 0, printargs, "SYS_608" }, /* 608 */
+ { 8, 0, printargs, "SYS_609" }, /* 609 */
+ { 8, 0, printargs, "SYS_610" }, /* 610 */
+ { 8, 0, printargs, "SYS_611" }, /* 611 */
+ { 8, 0, printargs, "SYS_612" }, /* 612 */
+ { 8, 0, printargs, "SYS_613" }, /* 613 */
+ { 8, 0, printargs, "SYS_614" }, /* 614 */
+ { 8, 0, printargs, "SYS_615" }, /* 615 */
+ { 8, 0, printargs, "SYS_616" }, /* 616 */
+ { 8, 0, printargs, "SYS_617" }, /* 617 */
+ { 8, 0, printargs, "SYS_618" }, /* 618 */
+ { 8, 0, printargs, "SYS_619" }, /* 619 */
+ { 8, 0, printargs, "SYS_620" }, /* 620 */
+ { 8, 0, printargs, "SYS_621" }, /* 621 */
+ { 8, 0, printargs, "SYS_622" }, /* 622 */
+ { 8, 0, printargs, "SYS_623" }, /* 623 */
+ { 8, 0, printargs, "SYS_624" }, /* 624 */
+ { 8, 0, printargs, "SYS_625" }, /* 625 */
+ { 8, 0, printargs, "SYS_626" }, /* 626 */
+ { 8, 0, printargs, "SYS_627" }, /* 627 */
+ { 8, 0, printargs, "SYS_628" }, /* 628 */
+ { 8, 0, printargs, "SYS_629" }, /* 629 */
+ { 8, 0, printargs, "SYS_630" }, /* 630 */
+ { 8, 0, printargs, "SYS_631" }, /* 631 */
+ { 8, 0, printargs, "SYS_632" }, /* 632 */
+ { 8, 0, printargs, "SYS_633" }, /* 633 */
+ { 8, 0, printargs, "SYS_634" }, /* 634 */
+ { 8, 0, printargs, "SYS_635" }, /* 635 */
+ { 8, 0, printargs, "SYS_636" }, /* 636 */
+ { 8, 0, printargs, "SYS_637" }, /* 637 */
+ { 8, 0, printargs, "SYS_638" }, /* 638 */
+ { 8, 0, printargs, "SYS_639" }, /* 639 */
+ { 8, 0, printargs, "SYS_640" }, /* 640 */
+ { 8, 0, printargs, "SYS_641" }, /* 641 */
+ { 8, 0, printargs, "SYS_642" }, /* 642 */
+ { 8, 0, printargs, "SYS_643" }, /* 643 */
+ { 8, 0, printargs, "SYS_644" }, /* 644 */
+ { 8, 0, printargs, "SYS_645" }, /* 645 */
+ { 8, 0, printargs, "SYS_646" }, /* 646 */
+ { 8, 0, printargs, "SYS_647" }, /* 647 */
+ { 8, 0, printargs, "SYS_648" }, /* 648 */
+ { 8, 0, printargs, "SYS_649" }, /* 649 */
+ { 8, 0, printargs, "SYS_650" }, /* 650 */
+ { 8, 0, printargs, "SYS_651" }, /* 651 */
+ { 8, 0, printargs, "SYS_652" }, /* 652 */
+ { 8, 0, printargs, "SYS_653" }, /* 653 */
+ { 8, 0, printargs, "SYS_654" }, /* 654 */
+ { 8, 0, printargs, "SYS_655" }, /* 655 */
+ { 8, 0, printargs, "SYS_656" }, /* 656 */
+ { 8, 0, printargs, "SYS_657" }, /* 657 */
+ { 8, 0, printargs, "SYS_658" }, /* 658 */
+ { 8, 0, printargs, "SYS_659" }, /* 659 */
+ { 8, 0, printargs, "SYS_660" }, /* 660 */
+ { 8, 0, printargs, "SYS_661" }, /* 661 */
+ { 8, 0, printargs, "SYS_662" }, /* 662 */
+ { 8, 0, printargs, "SYS_663" }, /* 663 */
+ { 8, 0, printargs, "SYS_664" }, /* 664 */
+ { 8, 0, printargs, "SYS_665" }, /* 665 */
+ { 8, 0, printargs, "SYS_666" }, /* 666 */
+ { 8, 0, printargs, "SYS_667" }, /* 667 */
+ { 8, 0, printargs, "SYS_668" }, /* 668 */
+ { 8, 0, printargs, "SYS_669" }, /* 669 */
+ { 8, 0, printargs, "SYS_670" }, /* 670 */
+ { 8, 0, printargs, "SYS_671" }, /* 671 */
+ { 8, 0, printargs, "SYS_672" }, /* 672 */
+ { 8, 0, printargs, "SYS_673" }, /* 673 */
+ { 8, 0, printargs, "SYS_674" }, /* 674 */
+ { 8, 0, printargs, "SYS_675" }, /* 675 */
+ { 8, 0, printargs, "SYS_676" }, /* 676 */
+ { 8, 0, printargs, "SYS_677" }, /* 677 */
+ { 8, 0, printargs, "SYS_678" }, /* 678 */
+ { 8, 0, printargs, "SYS_679" }, /* 679 */
+ { 8, 0, printargs, "SYS_680" }, /* 680 */
+ { 8, 0, printargs, "SYS_681" }, /* 681 */
+ { 8, 0, printargs, "SYS_682" }, /* 682 */
+ { 8, 0, printargs, "SYS_683" }, /* 683 */
+ { 8, 0, printargs, "SYS_684" }, /* 684 */
+ { 8, 0, printargs, "SYS_685" }, /* 685 */
+ { 8, 0, printargs, "SYS_686" }, /* 686 */
+ { 8, 0, printargs, "SYS_687" }, /* 687 */
+ { 8, 0, printargs, "SYS_688" }, /* 688 */
+ { 8, 0, printargs, "SYS_689" }, /* 689 */
+ { 8, 0, printargs, "SYS_690" }, /* 690 */
+ { 8, 0, printargs, "SYS_691" }, /* 691 */
+ { 8, 0, printargs, "SYS_692" }, /* 692 */
+ { 8, 0, printargs, "SYS_693" }, /* 693 */
+ { 8, 0, printargs, "SYS_694" }, /* 694 */
+ { 8, 0, printargs, "SYS_695" }, /* 695 */
+ { 8, 0, printargs, "SYS_696" }, /* 696 */
+ { 8, 0, printargs, "SYS_697" }, /* 697 */
+ { 8, 0, printargs, "SYS_698" }, /* 698 */
+ { 8, 0, printargs, "SYS_699" }, /* 699 */
+ { 8, 0, printargs, "SYS_700" }, /* 700 */
+ { 8, 0, printargs, "SYS_701" }, /* 701 */
+ { 8, 0, printargs, "SYS_702" }, /* 702 */
+ { 8, 0, printargs, "SYS_703" }, /* 703 */
+ { 8, 0, printargs, "SYS_704" }, /* 704 */
+ { 8, 0, printargs, "SYS_705" }, /* 705 */
+ { 8, 0, printargs, "SYS_706" }, /* 706 */
+ { 8, 0, printargs, "SYS_707" }, /* 707 */
+ { 8, 0, printargs, "SYS_708" }, /* 708 */
+ { 8, 0, printargs, "SYS_709" }, /* 709 */
+ { 8, 0, printargs, "SYS_710" }, /* 710 */
+ { 8, 0, printargs, "SYS_711" }, /* 711 */
+ { 8, 0, printargs, "SYS_712" }, /* 712 */
+ { 8, 0, printargs, "SYS_713" }, /* 713 */
+ { 8, 0, printargs, "SYS_714" }, /* 714 */
+ { 8, 0, printargs, "SYS_715" }, /* 715 */
+ { 8, 0, printargs, "SYS_716" }, /* 716 */
+ { 8, 0, printargs, "SYS_717" }, /* 717 */
+ { 8, 0, printargs, "SYS_718" }, /* 718 */
+ { 8, 0, printargs, "SYS_719" }, /* 719 */
+ { 8, 0, printargs, "SYS_720" }, /* 720 */
+ { 8, 0, printargs, "SYS_721" }, /* 721 */
+ { 8, 0, printargs, "SYS_722" }, /* 722 */
+ { 8, 0, printargs, "SYS_723" }, /* 723 */
+ { 8, 0, printargs, "SYS_724" }, /* 724 */
+ { 8, 0, printargs, "SYS_725" }, /* 725 */
+ { 8, 0, printargs, "SYS_726" }, /* 726 */
+ { 8, 0, printargs, "SYS_727" }, /* 727 */
+ { 8, 0, printargs, "SYS_728" }, /* 728 */
+ { 8, 0, printargs, "SYS_729" }, /* 729 */
+ { 8, 0, printargs, "SYS_730" }, /* 730 */
+ { 8, 0, printargs, "SYS_731" }, /* 731 */
+ { 8, 0, printargs, "SYS_732" }, /* 732 */
+ { 8, 0, printargs, "SYS_733" }, /* 733 */
+ { 8, 0, printargs, "SYS_734" }, /* 734 */
+ { 8, 0, printargs, "SYS_735" }, /* 735 */
+ { 8, 0, printargs, "SYS_736" }, /* 736 */
+ { 8, 0, printargs, "SYS_737" }, /* 737 */
+ { 8, 0, printargs, "SYS_738" }, /* 738 */
+ { 8, 0, printargs, "SYS_739" }, /* 739 */
+ { 8, 0, printargs, "SYS_740" }, /* 740 */
+ { 8, 0, printargs, "SYS_741" }, /* 741 */
+ { 8, 0, printargs, "SYS_742" }, /* 742 */
+ { 8, 0, printargs, "SYS_743" }, /* 743 */
+ { 8, 0, printargs, "SYS_744" }, /* 744 */
+ { 8, 0, printargs, "SYS_745" }, /* 745 */
+ { 8, 0, printargs, "SYS_746" }, /* 746 */
+ { 8, 0, printargs, "SYS_747" }, /* 747 */
+ { 8, 0, printargs, "SYS_748" }, /* 748 */
+ { 8, 0, printargs, "SYS_749" }, /* 749 */
+ { 8, 0, printargs, "SYS_750" }, /* 750 */
+ { 8, 0, printargs, "SYS_751" }, /* 751 */
+ { 8, 0, printargs, "SYS_752" }, /* 752 */
+ { 8, 0, printargs, "SYS_753" }, /* 753 */
+ { 8, 0, printargs, "SYS_754" }, /* 754 */
+ { 8, 0, printargs, "SYS_755" }, /* 755 */
+ { 8, 0, printargs, "SYS_756" }, /* 756 */
+ { 8, 0, printargs, "SYS_757" }, /* 757 */
+ { 8, 0, printargs, "SYS_758" }, /* 758 */
+ { 8, 0, printargs, "SYS_759" }, /* 759 */
+ { 8, 0, printargs, "SYS_760" }, /* 760 */
+ { 8, 0, printargs, "SYS_761" }, /* 761 */
+ { 8, 0, printargs, "SYS_762" }, /* 762 */
+ { 8, 0, printargs, "SYS_763" }, /* 763 */
+ { 8, 0, printargs, "SYS_764" }, /* 764 */
+ { 8, 0, printargs, "SYS_765" }, /* 765 */
+ { 8, 0, printargs, "SYS_766" }, /* 766 */
+ { 8, 0, printargs, "SYS_767" }, /* 767 */
+ { 8, 0, printargs, "SYS_768" }, /* 768 */
+ { 8, 0, printargs, "SYS_769" }, /* 769 */
+ { 8, 0, printargs, "SYS_770" }, /* 770 */
+ { 8, 0, printargs, "SYS_771" }, /* 771 */
+ { 8, 0, printargs, "SYS_772" }, /* 772 */
+ { 8, 0, printargs, "SYS_773" }, /* 773 */
+ { 8, 0, printargs, "SYS_774" }, /* 774 */
+ { 8, 0, printargs, "SYS_775" }, /* 775 */
+ { 8, 0, printargs, "SYS_776" }, /* 776 */
+ { 8, 0, printargs, "SYS_777" }, /* 777 */
+ { 8, 0, printargs, "SYS_778" }, /* 778 */
+ { 8, 0, printargs, "SYS_779" }, /* 779 */
+ { 8, 0, printargs, "SYS_780" }, /* 780 */
+ { 8, 0, printargs, "SYS_781" }, /* 781 */
+ { 8, 0, printargs, "SYS_782" }, /* 782 */
+ { 8, 0, printargs, "SYS_783" }, /* 783 */
+ { 8, 0, printargs, "SYS_784" }, /* 784 */
+ { 8, 0, printargs, "SYS_785" }, /* 785 */
+ { 8, 0, printargs, "SYS_786" }, /* 786 */
+ { 8, 0, printargs, "SYS_787" }, /* 787 */
+ { 8, 0, printargs, "SYS_788" }, /* 788 */
+ { 8, 0, printargs, "SYS_789" }, /* 789 */
+ { 8, 0, printargs, "SYS_790" }, /* 790 */
+ { 8, 0, printargs, "SYS_791" }, /* 791 */
+ { 8, 0, printargs, "SYS_792" }, /* 792 */
+ { 8, 0, printargs, "SYS_793" }, /* 793 */
+ { 8, 0, printargs, "SYS_794" }, /* 794 */
+ { 8, 0, printargs, "SYS_795" }, /* 795 */
+ { 8, 0, printargs, "SYS_796" }, /* 796 */
+ { 8, 0, printargs, "SYS_797" }, /* 797 */
+ { 8, 0, printargs, "SYS_798" }, /* 798 */
+ { 8, 0, printargs, "SYS_799" }, /* 799 */
+ { 8, 0, printargs, "SYS_800" }, /* 800 */
+ { 8, 0, printargs, "SYS_801" }, /* 801 */
+ { 8, 0, printargs, "SYS_802" }, /* 802 */
+ { 8, 0, printargs, "SYS_803" }, /* 803 */
+ { 8, 0, printargs, "SYS_804" }, /* 804 */
+ { 8, 0, printargs, "SYS_805" }, /* 805 */
+ { 8, 0, printargs, "SYS_806" }, /* 806 */
+ { 8, 0, printargs, "SYS_807" }, /* 807 */
+ { 8, 0, printargs, "SYS_808" }, /* 808 */
+ { 8, 0, printargs, "SYS_809" }, /* 809 */
+ { 8, 0, printargs, "SYS_810" }, /* 810 */
+ { 8, 0, printargs, "SYS_811" }, /* 811 */
+ { 8, 0, printargs, "SYS_812" }, /* 812 */
+ { 8, 0, printargs, "SYS_813" }, /* 813 */
+ { 8, 0, printargs, "SYS_814" }, /* 814 */
+ { 8, 0, printargs, "SYS_815" }, /* 815 */
+ { 8, 0, printargs, "SYS_816" }, /* 816 */
+ { 8, 0, printargs, "SYS_817" }, /* 817 */
+ { 8, 0, printargs, "SYS_818" }, /* 818 */
+ { 8, 0, printargs, "SYS_819" }, /* 819 */
+ { 8, 0, printargs, "SYS_820" }, /* 820 */
+ { 8, 0, printargs, "SYS_821" }, /* 821 */
+ { 8, 0, printargs, "SYS_822" }, /* 822 */
+ { 8, 0, printargs, "SYS_823" }, /* 823 */
+ { 8, 0, printargs, "SYS_824" }, /* 824 */
+ { 8, 0, printargs, "SYS_825" }, /* 825 */
+ { 8, 0, printargs, "SYS_826" }, /* 826 */
+ { 8, 0, printargs, "SYS_827" }, /* 827 */
+ { 8, 0, printargs, "SYS_828" }, /* 828 */
+ { 8, 0, printargs, "SYS_829" }, /* 829 */
+ { 8, 0, printargs, "SYS_830" }, /* 830 */
+ { 8, 0, printargs, "SYS_831" }, /* 831 */
+ { 8, 0, printargs, "SYS_832" }, /* 832 */
+ { 8, 0, printargs, "SYS_833" }, /* 833 */
+ { 8, 0, printargs, "SYS_834" }, /* 834 */
+ { 8, 0, printargs, "SYS_835" }, /* 835 */
+ { 8, 0, printargs, "SYS_836" }, /* 836 */
+ { 8, 0, printargs, "SYS_837" }, /* 837 */
+ { 8, 0, printargs, "SYS_838" }, /* 838 */
+ { 8, 0, printargs, "SYS_839" }, /* 839 */
+ { 8, 0, printargs, "SYS_840" }, /* 840 */
+ { 8, 0, printargs, "SYS_841" }, /* 841 */
+ { 8, 0, printargs, "SYS_842" }, /* 842 */
+ { 8, 0, printargs, "SYS_843" }, /* 843 */
+ { 8, 0, printargs, "SYS_844" }, /* 844 */
+ { 8, 0, printargs, "SYS_845" }, /* 845 */
+ { 8, 0, printargs, "SYS_846" }, /* 846 */
+ { 8, 0, printargs, "SYS_847" }, /* 847 */
+ { 8, 0, printargs, "SYS_848" }, /* 848 */
+ { 8, 0, printargs, "SYS_849" }, /* 849 */
+ { 8, 0, printargs, "SYS_850" }, /* 850 */
+ { 8, 0, printargs, "SYS_851" }, /* 851 */
+ { 8, 0, printargs, "SYS_852" }, /* 852 */
+ { 8, 0, printargs, "SYS_853" }, /* 853 */
+ { 8, 0, printargs, "SYS_854" }, /* 854 */
+ { 8, 0, printargs, "SYS_855" }, /* 855 */
+ { 8, 0, printargs, "SYS_856" }, /* 856 */
+ { 8, 0, printargs, "SYS_857" }, /* 857 */
+ { 8, 0, printargs, "SYS_858" }, /* 858 */
+ { 8, 0, printargs, "SYS_859" }, /* 859 */
+ { 8, 0, printargs, "SYS_860" }, /* 860 */
+ { 8, 0, printargs, "SYS_861" }, /* 861 */
+ { 8, 0, printargs, "SYS_862" }, /* 862 */
+ { 8, 0, printargs, "SYS_863" }, /* 863 */
+ { 8, 0, printargs, "SYS_864" }, /* 864 */
+ { 8, 0, printargs, "SYS_865" }, /* 865 */
+ { 8, 0, printargs, "SYS_866" }, /* 866 */
+ { 8, 0, printargs, "SYS_867" }, /* 867 */
+ { 8, 0, printargs, "SYS_868" }, /* 868 */
+ { 8, 0, printargs, "SYS_869" }, /* 869 */
+ { 8, 0, printargs, "SYS_870" }, /* 870 */
+ { 8, 0, printargs, "SYS_871" }, /* 871 */
+ { 8, 0, printargs, "SYS_872" }, /* 872 */
+ { 8, 0, printargs, "SYS_873" }, /* 873 */
+ { 8, 0, printargs, "SYS_874" }, /* 874 */
+ { 8, 0, printargs, "SYS_875" }, /* 875 */
+ { 8, 0, printargs, "SYS_876" }, /* 876 */
+ { 8, 0, printargs, "SYS_877" }, /* 877 */
+ { 8, 0, printargs, "SYS_878" }, /* 878 */
+ { 8, 0, printargs, "SYS_879" }, /* 879 */
+ { 8, 0, printargs, "SYS_880" }, /* 880 */
+ { 8, 0, printargs, "SYS_881" }, /* 881 */
+ { 8, 0, printargs, "SYS_882" }, /* 882 */
+ { 8, 0, printargs, "SYS_883" }, /* 883 */
+ { 8, 0, printargs, "SYS_884" }, /* 884 */
+ { 8, 0, printargs, "SYS_885" }, /* 885 */
+ { 8, 0, printargs, "SYS_886" }, /* 886 */
+ { 8, 0, printargs, "SYS_887" }, /* 887 */
+ { 8, 0, printargs, "SYS_888" }, /* 888 */
+ { 8, 0, printargs, "SYS_889" }, /* 889 */
+ { 8, 0, printargs, "SYS_890" }, /* 890 */
+ { 8, 0, printargs, "SYS_891" }, /* 891 */
+ { 8, 0, printargs, "SYS_892" }, /* 892 */
+ { 8, 0, printargs, "SYS_893" }, /* 893 */
+ { 8, 0, printargs, "SYS_894" }, /* 894 */
+ { 8, 0, printargs, "SYS_895" }, /* 895 */
+ { 8, 0, printargs, "SYS_896" }, /* 896 */
+ { 8, 0, printargs, "SYS_897" }, /* 897 */
+ { 8, 0, printargs, "SYS_898" }, /* 898 */
+ { 8, 0, printargs, "SYS_899" }, /* 899 */
+ { 8, 0, printargs, "SYS_900" }, /* 900 */
+ { 8, 0, printargs, "SYS_901" }, /* 901 */
+ { 8, 0, printargs, "SYS_902" }, /* 902 */
+ { 8, 0, printargs, "SYS_903" }, /* 903 */
+ { 8, 0, printargs, "SYS_904" }, /* 904 */
+ { 8, 0, printargs, "SYS_905" }, /* 905 */
+ { 8, 0, printargs, "SYS_906" }, /* 906 */
+ { 8, 0, printargs, "SYS_907" }, /* 907 */
+ { 8, 0, printargs, "SYS_908" }, /* 908 */
+ { 8, 0, printargs, "SYS_909" }, /* 909 */
+ { 8, 0, printargs, "SYS_910" }, /* 910 */
+ { 8, 0, printargs, "SYS_911" }, /* 911 */
+ { 8, 0, printargs, "SYS_912" }, /* 912 */
+ { 8, 0, printargs, "SYS_913" }, /* 913 */
+ { 8, 0, printargs, "SYS_914" }, /* 914 */
+ { 8, 0, printargs, "SYS_915" }, /* 915 */
+ { 8, 0, printargs, "SYS_916" }, /* 916 */
+ { 8, 0, printargs, "SYS_917" }, /* 917 */
+ { 8, 0, printargs, "SYS_918" }, /* 918 */
+ { 8, 0, printargs, "SYS_919" }, /* 919 */
+ { 8, 0, printargs, "SYS_920" }, /* 920 */
+ { 8, 0, printargs, "SYS_921" }, /* 921 */
+ { 8, 0, printargs, "SYS_922" }, /* 922 */
+ { 8, 0, printargs, "SYS_923" }, /* 923 */
+ { 8, 0, printargs, "SYS_924" }, /* 924 */
+ { 8, 0, printargs, "SYS_925" }, /* 925 */
+ { 8, 0, printargs, "SYS_926" }, /* 926 */
+ { 8, 0, printargs, "SYS_927" }, /* 927 */
+ { 8, 0, printargs, "SYS_928" }, /* 928 */
+ { 8, 0, printargs, "SYS_929" }, /* 929 */
+ { 8, 0, printargs, "SYS_930" }, /* 930 */
+ { 8, 0, printargs, "SYS_931" }, /* 931 */
+ { 8, 0, printargs, "SYS_932" }, /* 932 */
+ { 8, 0, printargs, "SYS_933" }, /* 933 */
+ { 8, 0, printargs, "SYS_934" }, /* 934 */
+ { 8, 0, printargs, "SYS_935" }, /* 935 */
+ { 8, 0, printargs, "SYS_936" }, /* 936 */
+ { 8, 0, printargs, "SYS_937" }, /* 937 */
+ { 8, 0, printargs, "SYS_938" }, /* 938 */
+ { 8, 0, printargs, "SYS_939" }, /* 939 */
+ { 8, 0, printargs, "SYS_940" }, /* 940 */
+ { 8, 0, printargs, "SYS_941" }, /* 941 */
+ { 8, 0, printargs, "SYS_942" }, /* 942 */
+ { 8, 0, printargs, "SYS_943" }, /* 943 */
+ { 8, 0, printargs, "SYS_944" }, /* 944 */
+ { 8, 0, printargs, "SYS_945" }, /* 945 */
+ { 8, 0, printargs, "SYS_946" }, /* 946 */
+ { 8, 0, printargs, "SYS_947" }, /* 947 */
+ { 8, 0, printargs, "SYS_948" }, /* 948 */
+ { 8, 0, printargs, "SYS_949" }, /* 949 */
+ { 8, 0, printargs, "SYS_950" }, /* 950 */
+ { 8, 0, printargs, "SYS_951" }, /* 951 */
+ { 8, 0, printargs, "SYS_952" }, /* 952 */
+ { 8, 0, printargs, "SYS_953" }, /* 953 */
+ { 8, 0, printargs, "SYS_954" }, /* 954 */
+ { 8, 0, printargs, "SYS_955" }, /* 955 */
+ { 8, 0, printargs, "SYS_956" }, /* 956 */
+ { 8, 0, printargs, "SYS_957" }, /* 957 */
+ { 8, 0, printargs, "SYS_958" }, /* 958 */
+ { 8, 0, printargs, "SYS_959" }, /* 959 */
+ { 8, 0, printargs, "SYS_960" }, /* 960 */
+ { 8, 0, printargs, "SYS_961" }, /* 961 */
+ { 8, 0, printargs, "SYS_962" }, /* 962 */
+ { 8, 0, printargs, "SYS_963" }, /* 963 */
+ { 8, 0, printargs, "SYS_964" }, /* 964 */
+ { 8, 0, printargs, "SYS_965" }, /* 965 */
+ { 8, 0, printargs, "SYS_966" }, /* 966 */
+ { 8, 0, printargs, "SYS_967" }, /* 967 */
+ { 8, 0, printargs, "SYS_968" }, /* 968 */
+ { 8, 0, printargs, "SYS_969" }, /* 969 */
+ { 8, 0, printargs, "SYS_970" }, /* 970 */
+ { 8, 0, printargs, "SYS_971" }, /* 971 */
+ { 8, 0, printargs, "SYS_972" }, /* 972 */
+ { 8, 0, printargs, "SYS_973" }, /* 973 */
+ { 8, 0, printargs, "SYS_974" }, /* 974 */
+ { 8, 0, printargs, "SYS_975" }, /* 975 */
+ { 8, 0, printargs, "SYS_976" }, /* 976 */
+ { 8, 0, printargs, "SYS_977" }, /* 977 */
+ { 8, 0, printargs, "SYS_978" }, /* 978 */
+ { 8, 0, printargs, "SYS_979" }, /* 979 */
+ { 8, 0, printargs, "SYS_980" }, /* 980 */
+ { 8, 0, printargs, "SYS_981" }, /* 981 */
+ { 8, 0, printargs, "SYS_982" }, /* 982 */
+ { 8, 0, printargs, "SYS_983" }, /* 983 */
+ { 8, 0, printargs, "SYS_984" }, /* 984 */
+ { 8, 0, printargs, "SYS_985" }, /* 985 */
+ { 8, 0, printargs, "SYS_986" }, /* 986 */
+ { 8, 0, printargs, "SYS_987" }, /* 987 */
+ { 8, 0, printargs, "SYS_988" }, /* 988 */
+ { 8, 0, printargs, "SYS_989" }, /* 989 */
+ { 8, 0, printargs, "SYS_990" }, /* 990 */
+ { 8, 0, printargs, "SYS_991" }, /* 991 */
+ { 8, 0, printargs, "SYS_992" }, /* 992 */
+ { 8, 0, printargs, "SYS_993" }, /* 993 */
+ { 8, 0, printargs, "SYS_994" }, /* 994 */
+ { 8, 0, printargs, "SYS_995" }, /* 995 */
+ { 8, 0, printargs, "SYS_996" }, /* 996 */
+ { 8, 0, printargs, "SYS_997" }, /* 997 */
+ { 8, 0, printargs, "SYS_998" }, /* 998 */
+ { 8, 0, printargs, "SYS_999" }, /* 999 */
+ { 8, 0, printargs, "SYS_1000" }, /* 1000 */
+ { 8, 0, printargs, "SYS_1001" }, /* 1001 */
+ { 8, 0, printargs, "SYS_1002" }, /* 1002 */
+ { 8, 0, printargs, "SYS_1003" }, /* 1003 */
+ { 8, 0, printargs, "SYS_1004" }, /* 1004 */
+ { 8, 0, printargs, "SYS_1005" }, /* 1005 */
+ { 8, 0, printargs, "SYS_1006" }, /* 1006 */
+ { 8, 0, printargs, "SYS_1007" }, /* 1007 */
+ { 8, 0, printargs, "SYS_1008" }, /* 1008 */
+ { 8, 0, printargs, "SYS_1009" }, /* 1009 */
+ { 8, 0, printargs, "SYS_1010" }, /* 1010 */
+ { 8, 0, printargs, "SYS_1011" }, /* 1011 */
+ { 8, 0, printargs, "SYS_1012" }, /* 1012 */
+ { 8, 0, printargs, "SYS_1013" }, /* 1013 */
+ { 8, 0, printargs, "SYS_1014" }, /* 1014 */
+ { 8, 0, printargs, "SYS_1015" }, /* 1015 */
+ { 8, 0, printargs, "SYS_1016" }, /* 1016 */
+ { 8, 0, printargs, "SYS_1017" }, /* 1017 */
+ { 8, 0, printargs, "SYS_1018" }, /* 1018 */
+ { 8, 0, printargs, "SYS_1019" }, /* 1019 */
+ { 8, 0, printargs, "SYS_1020" }, /* 1020 */
+ { 8, 0, printargs, "SYS_1021" }, /* 1021 */
+ { 8, 0, printargs, "SYS_1022" }, /* 1022 */
+ { 8, 0, printargs, "SYS_1023" }, /* 1023 */
+ { 0, 0, printargs, "ni_syscall" }, /* 1024 */
+ { 1, TP, sys_exit, "exit" }, /* 1025 */
+ { 3, TF, sys_read, "read" }, /* 1026 */
+ { 3, TF, sys_write, "write" }, /* 1027 */
+ { 3, TF, sys_open, "open" }, /* 1028 */
+ { 1, 0, sys_close, "close" }, /* 1029 */
+ { 2, 0, sys_creat, "creat" }, /* 1030 */
+ { 2, TF, sys_link, "link" }, /* 1031 */
+ { 1, TF, sys_unlink, "unlink" }, /* 1032 */
+ { 3, TF|TP, sys_execve, "execve" }, /* 1033 */
+ { 1, TF, sys_chdir, "chdir" }, /* 1034 */
+ { 1, TF, sys_fchdir, "fchdir" }, /* 1035 */
+ { 2, 0, sys_utimes, "utimes" }, /* 1036 */
+ { 3, TF, sys_mknod, "mknod" }, /* 1037 */
+ { 2, TF, sys_chmod, "chmod" }, /* 1038 */
+ { 3, TF, sys_chown, "chown" }, /* 1039 */
+ { 3, TF, sys_lseek, "lseek" }, /* 1040 */
+ { 0, 0, sys_getpid, "getpid" }, /* 1041 */
+ { 0, 0, sys_getppid, "getppid" }, /* 1042 */
+ { 5, TF, sys_mount, "mount" }, /* 1043 */
+ { 1, 0, sys_umount2, "umount" }, /* 1044 */
+ { 1, 0, sys_setuid, "setuid" }, /* 1045 */
+ { 0, 0, sys_getuid, "getuid" }, /* 1046 */
+ { 0, 0, sys_geteuid, "geteuid" }, /* 1047 */
+ { 4, 0, sys_ptrace, "ptrace" }, /* 1048 */
+ { 2, TF, sys_access, "access" }, /* 1049 */
+ { 0, 0, sys_sync, "sync" }, /* 1050 */
+ { 1, 0, sys_fsync, "fsync" }, /* 1051 */
+ { 1, 0, sys_fdatasync, "fdatasync" }, /* 1052 */
+ { 2, TS, sys_kill, "kill" }, /* 1053 */
+ { 2, TF, sys_rename, "rename" }, /* 1054 */
+ { 2, TF, sys_mkdir, "mkdir" }, /* 1055 */
+ { 1, TF, sys_rmdir, "rmdir" }, /* 1056 */
+ { 1, 0, sys_dup, "dup" }, /* 1057 */
+ { 1, 0, sys_pipe, "pipe" }, /* 1058 */
+ { 1, 0, sys_times, "times" }, /* 1059 */
+ { 1, 0, sys_brk, "brk" }, /* 1060 */
+ { 1, 0, sys_setgid, "setgid" }, /* 1061 */
+ { 0, 0, sys_getgid, "getgid" }, /* 1062 */
+ { 0, 0, sys_getegid, "getegid" }, /* 1063 */
+ { 1, TF, sys_acct, "acct" }, /* 1064 */
+ { 3, 0, sys_ioctl, "ioctl" }, /* 1065 */
+ { 3, 0, sys_fcntl, "fcntl" }, /* 1066 */
+ { 1, 0, sys_umask, "umask" }, /* 1067 */
+ { 1, TF, sys_chroot, "chroot" }, /* 1068 */
+ { 2, 0, sys_ustat, "ustat" }, /* 1069 */
+ { 2, 0, sys_dup2, "dup2" }, /* 1070 */
+ { 2, 0, sys_setreuid, "setreuid" }, /* 1071 */
+ { 2, 0, sys_setregid, "setregid" }, /* 1072 */
+ { 3, 0, printargs, "getresuid" }, /* 1073 */
+ { 3, 0, sys_setresuid, "setresuid" }, /* 1074 */
+ { 3, 0, sys_getresuid, "getresgid" }, /* 1075 */
+ { 3, 0, printargs, "setresgid" }, /* 1076 */
+ { 2, 0, sys_getgroups, "getgroups" }, /* 1077 */
+ { 2, 0, sys_setgroups, "setgroups" }, /* 1078 */
+ { 1, 0, sys_getpgid, "getpgid" }, /* 1079 */
+ { 2, 0, sys_setpgid, "setpgid" }, /* 1080 */
+ { 0, 0, sys_setsid, "setsid" }, /* 1081 */
+ { 1, 0, sys_getsid, "getsid" }, /* 1082 */
+ { 2, 0, sys_sethostname, "sethostname" }, /* 1083 */
+ { 2, 0, sys_setrlimit, "setrlimit" }, /* 1084 */
+ { 2, 0, sys_getrlimit, "getrlimit" }, /* 1085 */
+ { 2, 0, sys_getrusage, "getrusage" }, /* 1086 */
+ { 2, 0, sys_gettimeofday, "gettimeofday" }, /* 1087 */
+ { 2, 0, sys_settimeofday, "settimeofday" }, /* 1088 */
+ { 5, 0, sys_select, "select" }, /* 1089 */
+ { 3, 0, sys_poll, "poll" }, /* 1090 */
+ { 2, TF, sys_symlink, "symlink" }, /* 1091 */
+ { 3, TF, sys_readlink, "readlink" }, /* 1092 */
+ { 1, 0, sys_uselib, "uselib" }, /* 1093 */
+ { 1, 0, sys_swapon, "swapon" }, /* 1094 */
+ { 1, 0, sys_swapoff, "swapoff" }, /* 1095 */
+ { 3, 0, sys_reboot, "reboot" }, /* 1096 */
+ { 2, TF, sys_truncate, "truncate" }, /* 1097 */
+ { 2, 0, sys_ftruncate, "ftruncate" }, /* 1098 */
+ { 2, 0, sys_fchmod, "fchmod" }, /* 1099 */
+ { 3, 0, sys_fchown, "fchown" }, /* 1100 */
+ { 2, 0, sys_getpriority, "getpriority" }, /* 1101 */
+ { 3, 0, sys_setpriority, "setpriority" }, /* 1102 */
+ { 2, TF, sys_statfs, "statfs" }, /* 1103 */
+ { 2, 0, sys_fstatfs, "fstatfs" }, /* 1104 */
+ { 3, 0, sys_ioperm, "ioperm" }, /* 1105 */
+ { 3, TI, sys_semget, "semget" }, /* 1106 */
+ { 3, TI, printargs, "semop" }, /* 1107 */
+ { 4, TI, sys_semctl, "semctl" }, /* 1108 */
+ { 2, TI, sys_msgget, "msgget" }, /* 1109 */
+ { 4, TI, sys_msgsnd, "msgsnd" }, /* 1110 */
+ { 5, TI, sys_msgrcv, "msgrcv" }, /* 1111 */
+ { 3, TI, sys_msgctl, "msgctl" }, /* 1112 */
+ { 3, TI, sys_shmget, "shmget" }, /* 1113 */
+ { 3, TI, sys_shmat, "shmat" }, /* 1114 */
+ { 1, TI, sys_shmdt, "shmdt" }, /* 1115 */
+ { 3, TI, sys_shmctl, "shmctl" }, /* 1116 */
+ { 3, 0, sys_syslog, "syslog" }, /* 1117 */
+ { 3, 0, sys_setitimer, "setitimer" }, /* 1118 */
+ { 2, 0, sys_getitimer, "getitimer" }, /* 1119 */
+ { 2, TF, sys_stat, "stat" }, /* 1120 */
+ { 2, TF, sys_lstat, "lstat" }, /* 1121 */
+ { 2, 0, sys_fstat, "fstat" }, /* 1122 */
+ { 0, 0, sys_vhangup, "vhangup" }, /* 1123 */
+ { 3, TF, sys_chown, "lchown" }, /* 1124 */
+ { 5, 0, printargs, "vm86" }, /* 1125 */
+ { 4, TP, sys_wait4, "wait4" }, /* 1126 */
+ { 1, 0, sys_sysinfo, "sysinfo" }, /* 1127 */
+ { 5, TP, sys_clone, "clone" }, /* 1128 */
+ { 2, 0, sys_setdomainname, "setdomainname" }, /* 1129 */
+ { 1, 0, sys_uname, "uname" }, /* 1130 */
+ { 1, 0, sys_adjtimex, "adjtimex" }, /* 1131 */
+ { 2, 0, sys_create_module, "create_module" }, /* 1132 */
+ { 4, 0, sys_init_module, "init_module" }, /* 1133 */
+ { 1, 0, sys_delete_module, "delete_module" }, /* 1134 */
+ { 1, 0, sys_get_kernel_syms, "get_kernel_syms"}, /* 1135 */
+ { 5, 0, sys_query_module, "query_module" }, /* 1136 */
+ { 4, 0, sys_quotactl, "quotactl" }, /* 1137 */
+ { 0, 0, sys_bdflush, "bdflush" }, /* 1138 */
+ { 3, 0, sys_sysfs, "sysfs" }, /* 1139 */
+ { 1, 0, sys_personality, "personality" }, /* 1140 */
+ { 5, 0, sys_afs_syscall, "afs_syscall" }, /* 1141 */
+ { 1, 0, sys_setfsuid, "setfsuid" }, /* 1142 */
+ { 1, 0, sys_setfsgid, "setfsgid" }, /* 1143 */
+ { 3, 0, sys_getdents, "getdents" }, /* 1144 */
+ { 2, 0, sys_flock, "flock" }, /* 1145 */
+ { 5, 0, sys_readv, "readv" }, /* 1146 */
+ { 5, 0, sys_writev, "writev" }, /* 1147 */
+ { 4, 0, sys_pread, "pread" }, /* 1148 */
+ { 4, 0, sys_pwrite, "pwrite" }, /* 1149 */
+ { 1, 0, printargs, "_sysctl" }, /* 1150 */
+ { 6, 0, sys_mmap, "mmap" }, /* 1151 */
+ { 2, 0, sys_munmap, "munmap" }, /* 1152 */
+ { 2, 0, sys_mlock, "mlock" }, /* 1153 */
+ { 1, 0, sys_mlockall, "mlockall" }, /* 1154 */
+ { 3, 0, sys_mprotect, "mprotect" }, /* 1155 */
+ { 4, 0, sys_mremap, "mremap" }, /* 1156 */
+ { 3, 0, sys_msync, "msync" }, /* 1157 */
+ { 2, 0, sys_munlock, "munlock" }, /* 1158 */
+ { 0, 0, sys_munlockall, "munlockall" }, /* 1159 */
+ { 2, 0, sys_sched_getparam, "sched_getparam"}, /* 1160 */
+ { 2, 0, sys_sched_setparam, "sched_setparam"}, /* 1161 */
+ { 2, 0, sys_sched_getscheduler, "sched_getscheduler"}, /* 1162 */
+ { 3, 0, sys_sched_setscheduler, "sched_setscheduler"}, /* 1163 */
+ { 0, 0, sys_sched_yield, "sched_yield" }, /* 1164 */
+ { 1, 0, sys_sched_get_priority_max,"sched_get_priority_max"}, /* 1165 */
+ { 1, 0, sys_sched_get_priority_min,"sched_get_priority_min"}, /* 1166 */
+ { 2, 0, sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 1167 */
+ { 2, 0, sys_nanosleep, "nanosleep" }, /* 1168 */
+ { 3, 0, printargs, "nfsservctl" }, /* 1169 */
+ { 5, 0, sys_prctl, "prctl" }, /* 1170 */
+ { 1, 0, sys_getpagesize, "getpagesize" }, /* 1171 */
+ { 6, 0, sys_mmap, "mmap2" }, /* 1172 */
+ { 5, 0, printargs, "pciconfig_read"}, /* 1173 */
+ { 5, 0, printargs, "pciconfig_write"}, /* 1174 */
+ { 8, 0, printargs, "perfmonctl" }, /* 1175 */
+ { 2, TS, sys_sigaltstack, "sigaltstack" }, /* 1176 */
+ { 4, TS, sys_rt_sigaction, "rt_sigaction" }, /* 1177 */
+ { 2, TS, sys_rt_sigpending, "rt_sigpending" }, /* 1178 */
+ { 4, TS, sys_rt_sigprocmask, "rt_sigprocmask"}, /* 1179 */
+ { 3, TS, sys_rt_sigqueueinfo, "rt_sigqueueinfo"}, /* 1180 */
+ { 0, TS, sys_sigreturn, "rt_sigreturn" }, /* 1181 */
+ { 2, TS, sys_rt_sigsuspend, "rt_sigsuspend" }, /* 1182 */
+ { 4, TS, sys_rt_sigtimedwait, "rt_sigtimedwait"}, /* 1183 */
+ { 2, TF, sys_getcwd, "getcwd" }, /* 1184 */
+ { 2, 0, sys_capget, "capget" }, /* 1185 */
+ { 2, 0, sys_capset, "capset" }, /* 1186 */
+ { 4, TF, sys_sendfile, "sendfile" }, /* 1187 */
+ { 5, TN, printargs, "getpmsg" }, /* 1188 */
+ { 5, TN, printargs, "putpmsg" }, /* 1189 */
+ { 3, TN, sys_socket, "socket" }, /* 1190 */
+ { 3, TN, sys_bind, "bind" }, /* 1191 */
+ { 3, TN, sys_connect, "connect" }, /* 1192 */
+ { 2, TN, sys_listen, "listen" }, /* 1193 */
+ { 3, TN, sys_accept, "accept" }, /* 1194 */
+ { 3, TN, sys_getsockname, "getsockname" }, /* 1195 */
+ { 3, TN, sys_getpeername, "getpeername" }, /* 1196 */
+ { 4, TN, sys_socketpair, "socketpair" }, /* 1197 */
+ { 4, TN, sys_send, "send" }, /* 1198 */
+ { 6, TN, sys_sendto, "sendto" }, /* 1199 */
+ { 4, TN, sys_recv, "recv" }, /* 1200 */
+ { 6, TN, sys_recvfrom, "recvfrom" }, /* 1201 */
+ { 2, TN, sys_shutdown, "shutdown" }, /* 1202 */
+ { 5, TN, sys_setsockopt, "setsockopt" }, /* 1203 */
+ { 5, TN, sys_getsockopt, "getsockopt" }, /* 1204 */
+ { 3, TN, sys_sendmsg, "sendmsg" }, /* 1205 */
+ { 3, TN, sys_recvmsg, "recvmsg" }, /* 1206 */
+ { 2, TF, sys_pivotroot, "pivot_root" }, /* 1207 */
+ { 3, 0, printargs, "mincore" }, /* 1208 */
+ { 3, 0, sys_madvise, "madvise" }, /* 1209 */
+ { 2, TF, sys_stat, "stat" }, /* 1210 */
+ { 2, 0, sys_lstat, "lstat" }, /* 1211 */
+ { 2, TF, sys_fstat, "fstat" }, /* 1212 */
+ { 6, TP, sys_clone, "clone2" }, /* 1213 */
+ { 3, 0, printargs, "getdents64" }, /* 1214 */
+ { 2, 0, printargs, "getunwind" }, /* 1215 */
+ { 4, 0, sys_readahead, "readahead" }, /* 1216 */
+ { 5, TF, sys_setxattr, "setxattr" }, /* 1217 */
+ { 5, TF, sys_setxattr, "lsetxattr" }, /* 1218 */
+ { 5, 0, sys_setxattr, "fsetxattr" }, /* 1219 */
+ { 4, TF, sys_getxattr, "getxattr" }, /* 1220 */
+ { 4, TF, sys_getxattr, "lgetxattr" }, /* 1221 */
+ { 4, 0, sys_getxattr, "fgetxattr" }, /* 1222 */
+ { 3, TF, sys_listxattr, "listxattr" }, /* 1223 */
+ { 3, TF, sys_listxattr, "llistxattr" }, /* 1224 */
+ { 3, 0, sys_listxattr, "flistxattr" }, /* 1225 */
+ { 2, TF, sys_removexattr, "removexattr" }, /* 1226 */
+ { 2, TF, sys_removexattr, "lremovexattr" }, /* 1227 */
+ { 2, 0, sys_removexattr, "fremovexattr" }, /* 1228 */
+ { 2, TS, sys_kill, "tkill" }, /* 1229 */
+ { 5, 0, sys_futex, "futex" }, /* 1230 */
+ { 3, 0, sys_sched_setaffinity, "sched_setaffinity"},/* 1231 */
+ { 3, 0, sys_sched_getaffinity, "sched_getaffinity"},/* 1232 */
+ { 1, 0, printargs, "set_tid_address"}, /* 1233 */
+ { 5, TF, sys_fadvise64, "fadvise64" }, /* 1234 */
+ { 3, TS, sys_tgkill, "tgkill" }, /* 1235 */
+ { 1, TP, sys_exit, "exit_group" }, /* 1236 */
+ { 4, 0, printargs, "lookup_dcookie"}, /* 1237 */
+ { 2, 0, sys_io_setup, "io_setup" }, /* 1238 */
+ { 1, 0, sys_io_destroy, "io_destroy" }, /* 1239 */
+ { 5, 0, sys_io_getevents, "io_getevents" }, /* 1240 */
+ { 3, 0, sys_io_submit, "io_submit" }, /* 1241 */
+ { 3, 0, sys_io_cancel, "io_cancel" }, /* 1242 */
+ { 1, 0, sys_epoll_create, "epoll_create" }, /* 1243 */
+ { 4, 0, sys_epoll_ctl, "epoll_ctl" }, /* 1244 */
+ { 4, 0, sys_epoll_wait, "epoll_wait" }, /* 1245 */
+ { 0, 0, printargs, "restart_syscall"}, /* 1246 */
+ { 5, TI, sys_semtimedop, "semtimedop" }, /* 1247 */
+ { 3, 0, sys_timer_create, "timer_create" }, /* 1248 */
+ { 4, 0, sys_timer_settime, "timer_settime" }, /* 1249 */
+ { 2, 0, sys_timer_gettime, "timer_gettime" }, /* 1250 */
+ { 1, 0, sys_timer_getoverrun, "timer_getoverrun"}, /* 1251 */
+ { 1, 0, sys_timer_delete, "timer_delete" }, /* 1252 */
+ { 2, 0, sys_clock_settime, "clock_settime" }, /* 1253 */
+ { 2, 0, sys_clock_gettime, "clock_gettime" }, /* 1254 */
+ { 2, 0, sys_clock_getres, "clock_getres" }, /* 1255 */
+ { 4, 0, sys_clock_nanosleep, "clock_nanosleep"}, /* 1256 */
+ { 8, 0, printargs, "fstatfs64" }, /* 1257 */
+ { 8, 0, printargs, "statfs64" }, /* 1258 */
+ { 6, 0, sys_mbind, "mbind" }, /* 1259 */
+ { 5, 0, sys_get_mempolicy, "get_mempolicy" }, /* 1260 */
+ { 3, 0, sys_set_mempolicy, "set_mempolicy" }, /* 1261 */
+ { 4, 0, sys_mq_open, "mq_open" }, /* 1262 */
+ { 1, 0, sys_mq_unlink, "mq_unlink" }, /* 1263 */
+ { 5, 0, sys_mq_timedsend, "mq_timedsend" }, /* 1264 */
+ { 5, 0, sys_mq_timedreceive, "mq_timedreceive" }, /* 1265 */
+ { 2, 0, sys_mq_notify, "mq_notify" }, /* 1266 */
+ { 3, 0, sys_mq_getsetattr, "mq_getsetattr" }, /* 1267 */
+ { 5, 0, printargs, "sys_kexec_load" }, /* 1268 */
+ { 5, 0, printargs, "vserver" }, /* 1269 */
+ { 5, TP, sys_waitid, "waitid" }, /* 1270 */
+ { 8, 0, printargs, "SYS_1271" }, /* 1271 */
+ { 8, 0, printargs, "SYS_1272" }, /* 1272 */
+ { 8, 0, printargs, "SYS_1273" }, /* 1273 */
+ { 8, 0, printargs, "SYS_1274" }, /* 1274 */
+ { 8, 0, printargs, "SYS_1275" }, /* 1275 */
+ { 8, 0, printargs, "SYS_1276" }, /* 1276 */
+ { 8, 0, printargs, "SYS_1277" }, /* 1277 */
+ { 8, 0, printargs, "SYS_1278" }, /* 1278 */
+ { 8, 0, printargs, "SYS_1279" }, /* 1279 */
+ { 8, 0, printargs, "SYS_1280" }, /* 1280 */
+ { 8, 0, printargs, "SYS_1281" }, /* 1281 */
+ { 8, 0, printargs, "SYS_1282" }, /* 1282 */
+ { 8, 0, printargs, "SYS_1283" }, /* 1283 */
+ { 8, 0, printargs, "SYS_1284" }, /* 1284 */
+ { 8, 0, printargs, "SYS_1285" }, /* 1285 */
+ { 8, 0, printargs, "SYS_1286" }, /* 1286 */
+ { 8, 0, printargs, "SYS_1287" }, /* 1287 */
+ { 8, 0, printargs, "SYS_1288" }, /* 1288 */
+ { 8, 0, printargs, "SYS_1289" }, /* 1289 */
+ { 8, 0, printargs, "SYS_1290" }, /* 1290 */
+ { 8, 0, printargs, "SYS_1291" }, /* 1291 */
+ { 8, 0, printargs, "SYS_1292" }, /* 1292 */
+ { 8, 0, printargs, "SYS_1293" }, /* 1293 */
+ { 8, 0, printargs, "SYS_1294" }, /* 1294 */
+ { 8, 0, printargs, "SYS_1295" }, /* 1295 */
+ { 8, 0, printargs, "SYS_1296" }, /* 1296 */
+ { 8, 0, printargs, "SYS_1297" }, /* 1297 */
+ { 8, 0, printargs, "SYS_1298" }, /* 1298 */
+ { 8, 0, printargs, "SYS_1299" }, /* 1299 */
+ { 8, 0, printargs, "SYS_1300" }, /* 1300 */
+ { 8, 0, printargs, "SYS_1301" }, /* 1301 */
+ { 8, 0, printargs, "SYS_1302" }, /* 1302 */
+ { 8, 0, printargs, "SYS_1303" }, /* 1303 */
+ { 8, 0, printargs, "SYS_1304" }, /* 1304 */
+ { 8, 0, printargs, "SYS_1305" }, /* 1305 */
diff --git a/strace/linux/ioctlent.h b/strace/linux/ioctlent.h
new file mode 100644
index 0000000..57a2070
--- /dev/null
+++ b/strace/linux/ioctlent.h
@@ -0,0 +1,1312 @@
+ /* Generated by ioctlsort */
+ {"linux/fs.h", "FIBMAP", 0x1},
+ {"linux/fs.h", "FIGETBSZ", 0x2},
+ {"linux/fd.h", "FDGETPRM", 0x204},
+ {"linux/fd.h", "FDGETMAXERRS", 0x20e},
+ {"linux/fd.h", "FDGETDRVTYP", 0x20f},
+ {"linux/fd.h", "FDGETDRVPRM", 0x211},
+ {"linux/fd.h", "FDGETDRVSTAT", 0x212},
+ {"linux/fd.h", "FDPOLLDRVSTAT", 0x213},
+ {"linux/fd.h", "FDGETFDCSTAT", 0x215},
+ {"linux/fd.h", "FDWERRORGET", 0x217},
+ {"linux/fd.h", "FDCLRPRM", 0x241},
+ {"linux/fd.h", "FDSETPRM", 0x242},
+ {"linux/fd.h", "FDDEFPRM", 0x243},
+ {"linux/fd.h", "FDMSGON", 0x245},
+ {"linux/fd.h", "FDMSGOFF", 0x246},
+ {"linux/fd.h", "FDFMTBEG", 0x247},
+ {"linux/fd.h", "FDFMTTRK", 0x248},
+ {"linux/fd.h", "FDFMTEND", 0x249},
+ {"linux/fd.h", "FDSETEMSGTRESH", 0x24a},
+ {"linux/fd.h", "FDFLUSH", 0x24b},
+ {"linux/fd.h", "FDSETMAXERRS", 0x24c},
+ {"linux/fd.h", "FDRESET", 0x254},
+ {"linux/fd.h", "FDWERRORCLR", 0x256},
+ {"linux/fd.h", "FDRAWCMD", 0x258},
+ {"linux/fd.h", "FDTWADDLE", 0x259},
+ {"linux/fd.h", "FDEJECT", 0x25a},
+ {"linux/fd.h", "FDSETDRVPRM", 0x290},
+ {"linux/umsdos_fs.h", "UMSDOS_READDIR_DOS", 0x4d2},
+ {"linux/umsdos_fs.h", "UMSDOS_UNLINK_DOS", 0x4d3},
+ {"linux/umsdos_fs.h", "UMSDOS_RMDIR_DOS", 0x4d4},
+ {"linux/umsdos_fs.h", "UMSDOS_STAT_DOS", 0x4d5},
+ {"linux/umsdos_fs.h", "UMSDOS_CREAT_EMD", 0x4d6},
+ {"linux/umsdos_fs.h", "UMSDOS_UNLINK_EMD", 0x4d7},
+ {"linux/umsdos_fs.h", "UMSDOS_READDIR_EMD", 0x4d8},
+ {"linux/umsdos_fs.h", "UMSDOS_GETVERSION", 0x4d9},
+ {"linux/umsdos_fs.h", "UMSDOS_INIT_EMD", 0x4da},
+ {"linux/umsdos_fs.h", "UMSDOS_DOS_SETUP", 0x4db},
+ {"linux/umsdos_fs.h", "UMSDOS_RENAME_DOS", 0x4dc},
+ {"linux/fs.h", "BLKROSET", 0x125d},
+ {"linux/fs.h", "BLKROGET", 0x125e},
+ {"linux/fs.h", "BLKRRPART", 0x125f},
+ {"linux/fs.h", "BLKGETSIZE", 0x1260},
+ {"linux/fs.h", "BLKFLSBUF", 0x1261},
+ {"linux/fs.h", "BLKRASET", 0x1262},
+ {"linux/fs.h", "BLKRAGET", 0x1263},
+ {"linux/fs.h", "BLKFRASET", 0x1264},
+ {"linux/fs.h", "BLKFRAGET", 0x1265},
+ {"linux/fs.h", "BLKSECTSET", 0x1266},
+ {"linux/fs.h", "BLKSECTGET", 0x1267},
+ {"linux/fs.h", "BLKSSZGET", 0x1268},
+ {"linux/blkpg.h", "BLKPG", 0x1269},
+ {"linux/elevator.h", "BLKELVGET", 0x126a},
+ {"linux/elevator.h", "BLKELVSET", 0x126b},
+ {"linux/fs.h", "BLKGETLASTSECT", 0x126c},
+ {"linux/fs.h", "BLKSETLASTSECT", 0x126d},
+ {"linux/fs.h", "BLKBSZGET", 0x1270},
+ {"linux/fs.h", "BLKBSZSET", 0x1271},
+ {"linux/fs.h", "BLKGETSIZE64", 0x1272},
+ {"scsi/sg.h", "SG_SET_TIMEOUT", 0x2201},
+ {"scsi/sg.h", "SG_GET_TIMEOUT", 0x2202},
+ {"scsi/sg.h", "SG_EMULATED_HOST", 0x2203},
+ {"scsi/sg.h", "SG_SET_TRANSFORM", 0x2204},
+ {"scsi/sg.h", "SG_GET_TRANSFORM", 0x2205},
+ {"scsi/sg.h", "SG_GET_COMMAND_Q", 0x2270},
+ {"scsi/sg.h", "SG_SET_COMMAND_Q", 0x2271},
+ {"scsi/sg.h", "SG_GET_RESERVED_SIZE", 0x2272},
+ {"scsi/sg.h", "SG_SET_RESERVED_SIZE", 0x2275},
+ {"scsi/sg.h", "SG_GET_SCSI_ID", 0x2276},
+ {"scsi/sg.h", "SG_SET_FORCE_LOW_DMA", 0x2279},
+ {"scsi/sg.h", "SG_GET_LOW_DMA", 0x227a},
+ {"scsi/sg.h", "SG_SET_FORCE_PACK_ID", 0x227b},
+ {"scsi/sg.h", "SG_GET_PACK_ID", 0x227c},
+ {"scsi/sg.h", "SG_GET_NUM_WAITING", 0x227d},
+ {"scsi/sg.h", "SG_SET_DEBUG", 0x227e},
+ {"scsi/sg.h", "SG_GET_SG_TABLESIZE", 0x227f},
+ {"scsi/sg.h", "SG_GET_VERSION_NUM", 0x2282},
+ {"scsi/sg.h", "SG_NEXT_CMD_LEN", 0x2283},
+ {"scsi/sg.h", "SG_SCSI_RESET", 0x2284},
+ {"scsi/sg.h", "SG_IO", 0x2285},
+ {"scsi/sg.h", "SG_GET_REQUEST_TABLE", 0x2286},
+ {"scsi/sg.h", "SG_SET_KEEP_ORPHAN", 0x2287},
+ {"scsi/sg.h", "SG_GET_KEEP_ORPHAN", 0x2288},
+ {"scsi/sg.h", "SG_GET_ACCESS_COUNT", 0x2289},
+ {"linux/i2o.h", "BLKI2OGRSTRAT", 0x3201},
+ {"linux/i2o.h", "BLKI2OGWSTRAT", 0x3202},
+ {"linux/i2o.h", "BLKI2OSRSTRAT", 0x3203},
+ {"linux/i2o.h", "BLKI2OSWSTRAT", 0x3204},
+ {"asm/processor.h", "MICROCODE_IOCFREE", 0x3600},
+ {"linux/radeonfb.h", "FBIO_RADEON_GET_MIRROR", 0x4003},
+ {"linux/radeonfb.h", "FBIO_RADEON_SET_MIRROR", 0x4004},
+ {"linux/agpgart.h", "AGPIOC_INFO", 0x4100},
+ {"linux/agpgart.h", "AGPIOC_ACQUIRE", 0x4101},
+ {"linux/apm_bios.h", "APM_IOC_STANDBY", 0x4101},
+ {"linux/agpgart.h", "AGPIOC_RELEASE", 0x4102},
+ {"linux/apm_bios.h", "APM_IOC_SUSPEND", 0x4102},
+ {"linux/agpgart.h", "AGPIOC_SETUP", 0x4103},
+ {"linux/agpgart.h", "AGPIOC_RESERVE", 0x4104},
+ {"linux/agpgart.h", "AGPIOC_PROTECT", 0x4105},
+ {"linux/agpgart.h", "AGPIOC_ALLOCATE", 0x4106},
+ {"linux/agpgart.h", "AGPIOC_DEALLOCATE", 0x4107},
+ {"linux/agpgart.h", "AGPIOC_BIND", 0x4108},
+ {"linux/agpgart.h", "AGPIOC_UNBIND", 0x4109},
+ {"linux/pmu.h", "PMU_IOC_SLEEP", 0x4200},
+ {"linux/cciss_ioctl.h", "CCISS_GETPCIINFO", 0x4201},
+ {"linux/pmu.h", "PMU_IOC_GET_BACKLIGHT", 0x4201},
+ {"linux/cciss_ioctl.h", "CCISS_GETINTINFO", 0x4202},
+ {"linux/pmu.h", "PMU_IOC_SET_BACKLIGHT", 0x4202},
+ {"linux/cciss_ioctl.h", "CCISS_SETINTINFO", 0x4203},
+ {"linux/pmu.h", "PMU_IOC_GET_MODEL", 0x4203},
+ {"linux/cciss_ioctl.h", "CCISS_GETNODENAME", 0x4204},
+ {"linux/pmu.h", "PMU_IOC_HAS_ADB", 0x4204},
+ {"linux/cciss_ioctl.h", "CCISS_SETNODENAME", 0x4205},
+ {"linux/pmu.h", "PMU_IOC_CAN_SLEEP", 0x4205},
+ {"linux/cciss_ioctl.h", "CCISS_GETHEARTBEAT", 0x4206},
+ {"linux/pmu.h", "PMU_IOC_GRAB_BACKLIGHT", 0x4206},
+ {"linux/cciss_ioctl.h", "CCISS_GETBUSTYPES", 0x4207},
+ {"linux/cciss_ioctl.h", "CCISS_GETFIRMVER", 0x4208},
+ {"linux/cciss_ioctl.h", "CCISS_GETDRIVVER", 0x4209},
+ {"linux/cciss_ioctl.h", "CCISS_REVALIDVOLS", 0x420a},
+ {"linux/cciss_ioctl.h", "CCISS_PASSTHRU", 0x420b},
+ {"linux/cciss_ioctl.h", "CCISS_DEREGDISK", 0x420c},
+ {"linux/cciss_ioctl.h", "CCISS_REGNEWDISK", 0x420d},
+ {"linux/cciss_ioctl.h", "CCISS_REGNEWD", 0x420e},
+ {"linux/cciss_ioctl.h", "CCISS_RESCANDISK", 0x4210},
+ {"linux/cciss_ioctl.h", "CCISS_GETLUNINFO", 0x4211},
+ {"linux/cciss_ioctl.h", "CCISS_BIG_PASSTHRU", 0x4212},
+ {"linux/soundcard.h", "SNDCTL_COPR_RESET", 0x4300},
+ {"linux/capi.h", "CAPI_REGISTER", 0x4301},
+ {"linux/soundcard.h", "SNDCTL_COPR_LOAD", 0x4301},
+ {"linux/soundcard.h", "SNDCTL_COPR_RDATA", 0x4302},
+ {"linux/soundcard.h", "SNDCTL_COPR_RCODE", 0x4303},
+ {"linux/soundcard.h", "SNDCTL_COPR_WDATA", 0x4304},
+ {"linux/soundcard.h", "SNDCTL_COPR_WCODE", 0x4305},
+ {"linux/capi.h", "CAPI_GET_MANUFACTURER", 0x4306},
+ {"linux/soundcard.h", "SNDCTL_COPR_RUN", 0x4306},
+ {"linux/capi.h", "CAPI_GET_VERSION", 0x4307},
+ {"linux/soundcard.h", "SNDCTL_COPR_HALT", 0x4307},
+ {"linux/capi.h", "CAPI_GET_SERIAL", 0x4308},
+ {"linux/soundcard.h", "SNDCTL_COPR_SENDMSG", 0x4308},
+ {"linux/capi.h", "CAPI_GET_PROFILE", 0x4309},
+ {"linux/soundcard.h", "SNDCTL_COPR_RCVMSG", 0x4309},
+ {"linux/capi.h", "CAPI_MANUFACTURER_CMD", 0x4320},
+ {"linux/capi.h", "CAPI_GET_ERRCODE", 0x4321},
+ {"linux/capi.h", "CAPI_INSTALLED", 0x4322},
+ {"linux/capi.h", "CAPI_GET_FLAGS", 0x4323},
+ {"linux/capi.h", "CAPI_SET_FLAGS", 0x4324},
+ {"linux/capi.h", "CAPI_CLR_FLAGS", 0x4325},
+ {"linux/capi.h", "CAPI_NCCI_OPENCOUNT", 0x4326},
+ {"linux/capi.h", "CAPI_NCCI_GETUNIT", 0x4327},
+ {"linux/input.h", "EVIOCGVERSION", 0x4501},
+ {"linux/input.h", "EVIOCGID", 0x4502},
+ {"linux/input.h", "EVIOCGREP", 0x4503},
+ {"linux/input.h", "EVIOCGKEYCODE", 0x4504},
+ {"linux/input.h", "EVIOCGKEY", 0x4505},
+ {"linux/input.h", "EVIOCGBUS", 0x4507},
+ {"linux/input.h", "EVIOCRMFF", 0x4581},
+ {"linux/input.h", "EVIOCSGAIN", 0x4582},
+ {"linux/input.h", "EVIOCSAUTOCENTER", 0x4583},
+ {"linux/input.h", "EVIOCGEFFECTS", 0x4584},
+ {"linux/input.h", "EVIOCGRAB", 0x4590},
+ {"linux/fb.h", "FBIOGET_VSCREENINFO", 0x4600},
+ {"linux/fb.h", "FBIOPUT_VSCREENINFO", 0x4601},
+ {"linux/fb.h", "FBIOGET_FSCREENINFO", 0x4602},
+ {"linux/fb.h", "FBIOGETCMAP", 0x4604},
+ {"linux/fb.h", "FBIOPUTCMAP", 0x4605},
+ {"linux/fb.h", "FBIOPAN_DISPLAY", 0x4606},
+ {"linux/fb.h", "FBIOGET_FCURSORINFO", 0x4607},
+ {"linux/fb.h", "FBIOGET_VCURSORINFO", 0x4608},
+ {"linux/fb.h", "FBIO_CURSOR", 0x4608},
+ {"linux/fb.h", "FBIOPUT_VCURSORINFO", 0x4609},
+ {"linux/fb.h", "FBIOGET_CURSORSTATE", 0x460a},
+ {"linux/fb.h", "FBIOPUT_CURSORSTATE", 0x460b},
+ {"linux/fb.h", "FBIOGET_CON2FBMAP", 0x460f},
+ {"linux/fb.h", "FBIOPUT_CON2FBMAP", 0x4610},
+ {"linux/fb.h", "FBIOBLANK", 0x4611},
+ {"linux/fb.h", "FBIOGET_VBLANK", 0x4612},
+ {"linux/fb.h", "FBIO_ALLOC", 0x4613},
+ {"linux/fb.h", "FBIO_FREE", 0x4614},
+ {"linux/fb.h", "FBIOGET_GLYPH", 0x4615},
+ {"linux/fb.h", "FBIOGET_HWCINFO", 0x4616},
+ {"linux/fb.h", "FBIOPUT_MODEINFO", 0x4617},
+ {"linux/fb.h", "FBIOGET_DISPINFO", 0x4618},
+ {"linux/matroxfb.h", "FBIO_WAITFORVSYNC", 0x4620},
+ {"linux/hiddev.h", "HIDIOCGVERSION", 0x4801},
+ {"linux/hiddev.h", "HIDIOCAPPLICATION", 0x4802},
+ {"linux/hiddev.h", "HIDIOCGDEVINFO", 0x4803},
+ {"linux/hiddev.h", "HIDIOCGSTRING", 0x4804},
+ {"linux/hiddev.h", "HIDIOCINITREPORT", 0x4805},
+ {"linux/hiddev.h", "HIDIOCGREPORT", 0x4807},
+ {"linux/hiddev.h", "HIDIOCSREPORT", 0x4808},
+ {"linux/hiddev.h", "HIDIOCGREPORTINFO", 0x4809},
+ {"linux/hiddev.h", "HIDIOCGFIELDINFO", 0x480a},
+ {"linux/hiddev.h", "HIDIOCGUSAGE", 0x480b},
+ {"linux/hiddev.h", "HIDIOCSUSAGE", 0x480c},
+ {"linux/hiddev.h", "HIDIOCGUCODE", 0x480d},
+ {"linux/hiddev.h", "HIDIOCGFLAG", 0x480e},
+ {"linux/hiddev.h", "HIDIOCSFLAG", 0x480f},
+ {"linux/hiddev.h", "HIDIOCGCOLLECTIONINDEX", 0x4810},
+ {"sound/emu10k1.h", "SNDRV_EMU10K1_IOCTL_INFO", 0x4810},
+ {"sound/sb16_csp.h", "SNDRV_SB_CSP_IOCTL_INFO", 0x4810},
+ {"linux/hiddev.h", "HIDIOCGCOLLECTIONINFO", 0x4811},
+ {"sound/emu10k1.h", "SNDRV_EMU10K1_IOCTL_CODE_POKE", 0x4811},
+ {"sound/sb16_csp.h", "SNDRV_SB_CSP_IOCTL_LOAD_CODE", 0x4811},
+ {"sound/emu10k1.h", "SNDRV_EMU10K1_IOCTL_CODE_PEEK", 0x4812},
+ {"sound/sb16_csp.h", "SNDRV_SB_CSP_IOCTL_UNLOAD_CODE", 0x4812},
+ {"linux/hiddev.h", "HIDIOCGUSAGES", 0x4813},
+ {"sound/sb16_csp.h", "SNDRV_SB_CSP_IOCTL_START", 0x4813},
+ {"linux/hiddev.h", "HIDIOCSUSAGES", 0x4814},
+ {"sound/sb16_csp.h", "SNDRV_SB_CSP_IOCTL_STOP", 0x4814},
+ {"sound/sb16_csp.h", "SNDRV_SB_CSP_IOCTL_PAUSE", 0x4815},
+ {"sound/sb16_csp.h", "SNDRV_SB_CSP_IOCTL_RESTART", 0x4816},
+ {"sound/asound_fm.h", "SNDRV_DM_FM_IOCTL_INFO", 0x4820},
+ {"sound/emu10k1.h", "SNDRV_EMU10K1_IOCTL_TRAM_SETUP", 0x4820},
+ {"sound/asound_fm.h", "SNDRV_DM_FM_IOCTL_RESET", 0x4821},
+ {"sound/emu10k1.h", "SNDRV_EMU10K1_IOCTL_TRAM_POKE", 0x4821},
+ {"sound/asound_fm.h", "SNDRV_DM_FM_IOCTL_PLAY_NOTE", 0x4822},
+ {"sound/emu10k1.h", "SNDRV_EMU10K1_IOCTL_TRAM_PEEK", 0x4822},
+ {"sound/asound_fm.h", "SNDRV_DM_FM_IOCTL_SET_VOICE", 0x4823},
+ {"sound/asound_fm.h", "SNDRV_DM_FM_IOCTL_SET_PARAMS", 0x4824},
+ {"sound/asound_fm.h", "SNDRV_DM_FM_IOCTL_SET_MODE", 0x4825},
+ {"sound/asound_fm.h", "SNDRV_DM_FM_IOCTL_SET_CONNECTION", 0x4826},
+ {"sound/emu10k1.h", "SNDRV_EMU10K1_IOCTL_PCM_POKE", 0x4830},
+ {"sound/emu10k1.h", "SNDRV_EMU10K1_IOCTL_PCM_PEEK", 0x4831},
+ {"sound/hdsp.h", "SNDRV_HDSP_IOCTL_GET_PEAK_RMS", 0x4840},
+ {"sound/hdsp.h", "SNDRV_HDSP_IOCTL_GET_CONFIG_INFO", 0x4841},
+ {"sound/hdsp.h", "SNDRV_HDSP_IOCTL_UPLOAD_FIRMWARE", 0x4842},
+ {"sound/hdsp.h", "SNDRV_HDSP_IOCTL_GET_VERSION", 0x4843},
+ {"sound/hdsp.h", "SNDRV_HDSP_IOCTL_GET_MIXER", 0x4844},
+ {"sound/hdsp.h", "SNDRV_HDSP_IOCTL_GET_9632_AEB", 0x4845},
+ {"sound/emu10k1.h", "SNDRV_EMU10K1_IOCTL_STOP", 0x4880},
+ {"sound/emu10k1.h", "SNDRV_EMU10K1_IOCTL_CONTINUE", 0x4881},
+ {"sound/emu10k1.h", "SNDRV_EMU10K1_IOCTL_ZERO_TRAM_COUNTER", 0x4882},
+ {"sound/emu10k1.h", "SNDRV_EMU10K1_IOCTL_SINGLE_STEP", 0x4883},
+ {"sound/emu10k1.h", "SNDRV_EMU10K1_IOCTL_DBG_READ", 0x4884},
+ {"linux/isdn.h", "IIOCNETAIF", 0x4901},
+ {"linux/isdn.h", "IIOCNETDIF", 0x4902},
+ {"linux/isdn.h", "IIOCNETSCF", 0x4903},
+ {"linux/isdn.h", "IIOCNETGCF", 0x4904},
+ {"linux/isdn.h", "IIOCNETANM", 0x4905},
+ {"linux/isdn.h", "IIOCNETDNM", 0x4906},
+ {"linux/isdn.h", "IIOCNETGNM", 0x4907},
+ {"linux/isdn.h", "IIOCGETSET", 0x4908},
+ {"linux/isdn.h", "IIOCSETSET", 0x4909},
+ {"linux/isdn.h", "IIOCSETVER", 0x490a},
+ {"linux/isdn.h", "IIOCNETHUP", 0x490b},
+ {"linux/isdn.h", "IIOCSETGST", 0x490c},
+ {"linux/isdn.h", "IIOCSETBRJ", 0x490d},
+ {"linux/isdn.h", "IIOCSIGPRF", 0x490e},
+ {"linux/isdn.h", "IIOCGETPRF", 0x490f},
+ {"linux/isdn.h", "IIOCSETPRF", 0x4910},
+ {"linux/isdn.h", "IIOCGETMAP", 0x4911},
+ {"linux/isdn.h", "IIOCSETMAP", 0x4912},
+ {"linux/isdn.h", "IIOCNETASL", 0x4913},
+ {"linux/isdn.h", "IIOCNETDIL", 0x4914},
+ {"linux/isdn.h", "IIOCGETCPS", 0x4915},
+ {"linux/isdn.h", "IIOCGETDVR", 0x4916},
+ {"linux/isdn.h", "IIOCNETLCR", 0x4917},
+ {"linux/isdn.h", "IIOCNETDWRSET", 0x4918},
+ {"linux/isdn.h", "IIOCNETALN", 0x4920},
+ {"linux/isdn.h", "IIOCNETDLN", 0x4921},
+ {"linux/isdn.h", "IIOCNETGPN", 0x4922},
+ {"linux/isdn.h", "IIOCDBGVAR", 0x497f},
+ {"linux/isdn.h", "IIOCDRVCTL", 0x4980},
+ {"linux/kd.h", "KIOCSOUND", 0x4b2f},
+ {"linux/kd.h", "KDMKTONE", 0x4b30},
+ {"linux/kd.h", "KDGETLED", 0x4b31},
+ {"linux/kd.h", "KDSETLED", 0x4b32},
+ {"linux/kd.h", "KDGKBTYPE", 0x4b33},
+ {"linux/kd.h", "KDADDIO", 0x4b34},
+ {"linux/kd.h", "KDDELIO", 0x4b35},
+ {"linux/kd.h", "KDENABIO", 0x4b36},
+ {"linux/kd.h", "KDDISABIO", 0x4b37},
+ {"linux/kd.h", "KDSETMODE", 0x4b3a},
+ {"linux/kd.h", "KDGETMODE", 0x4b3b},
+ {"linux/kd.h", "KDMAPDISP", 0x4b3c},
+ {"linux/kd.h", "KDUNMAPDISP", 0x4b3d},
+ {"linux/kd.h", "GIO_SCRNMAP", 0x4b40},
+ {"linux/kd.h", "PIO_SCRNMAP", 0x4b41},
+ {"linux/kd.h", "KDGKBMODE", 0x4b44},
+ {"linux/kd.h", "KDSKBMODE", 0x4b45},
+ {"linux/kd.h", "KDGKBENT", 0x4b46},
+ {"linux/kd.h", "KDSKBENT", 0x4b47},
+ {"linux/kd.h", "KDGKBSENT", 0x4b48},
+ {"linux/kd.h", "KDSKBSENT", 0x4b49},
+ {"linux/kd.h", "KDGKBDIACR", 0x4b4a},
+ {"linux/kd.h", "KDSKBDIACR", 0x4b4b},
+ {"linux/kd.h", "KDGETKEYCODE", 0x4b4c},
+ {"linux/kd.h", "KDSETKEYCODE", 0x4b4d},
+ {"linux/kd.h", "KDSIGACCEPT", 0x4b4e},
+ {"linux/kd.h", "KDKBDREP", 0x4b52},
+ {"linux/kd.h", "GIO_FONT", 0x4b60},
+ {"linux/kd.h", "PIO_FONT", 0x4b61},
+ {"linux/kd.h", "KDGKBMETA", 0x4b62},
+ {"linux/kd.h", "KDSKBMETA", 0x4b63},
+ {"linux/kd.h", "KDGKBLED", 0x4b64},
+ {"linux/kd.h", "KDSKBLED", 0x4b65},
+ {"linux/kd.h", "GIO_UNIMAP", 0x4b66},
+ {"linux/kd.h", "PIO_UNIMAP", 0x4b67},
+ {"linux/kd.h", "PIO_UNIMAPCLR", 0x4b68},
+ {"linux/kd.h", "GIO_UNISCRNMAP", 0x4b69},
+ {"linux/kd.h", "PIO_UNISCRNMAP", 0x4b6a},
+ {"linux/kd.h", "GIO_FONTX", 0x4b6b},
+ {"linux/kd.h", "PIO_FONTX", 0x4b6c},
+ {"linux/kd.h", "PIO_FONTRESET", 0x4b6d},
+ {"linux/kd.h", "GIO_CMAP", 0x4b70},
+ {"linux/kd.h", "PIO_CMAP", 0x4b71},
+ {"linux/kd.h", "KDFONTOP", 0x4b72},
+ {"asm/mtrr.h", "MTRRIOC_ADD_ENTRY", 0x4d00},
+ {"asm/mtrr.h", "MTRRIOC_SET_ENTRY", 0x4d01},
+ {"asm/mtrr.h", "MTRRIOC_DEL_ENTRY", 0x4d02},
+ {"asm/mtrr.h", "MTRRIOC_GET_ENTRY", 0x4d03},
+ {"asm/mtrr.h", "MTRRIOC_KILL_ENTRY", 0x4d04},
+ {"asm/mtrr.h", "MTRRIOC_ADD_PAGE_ENTRY", 0x4d05},
+ {"asm/mtrr.h", "MTRRIOC_SET_PAGE_ENTRY", 0x4d06},
+ {"asm/mtrr.h", "MTRRIOC_DEL_PAGE_ENTRY", 0x4d07},
+ {"asm/mtrr.h", "MTRRIOC_GET_PAGE_ENTRY", 0x4d08},
+ {"asm/mtrr.h", "MTRRIOC_KILL_PAGE_ENTRY", 0x4d09},
+ {"linux/soundcard.h", "SOUND_MIXER_INFO", 0x4d65},
+ {"linux/soundcard.h", "SOUND_MIXER_ACCESS", 0x4d66},
+ {"linux/soundcard.h", "SOUND_MIXER_AGC", 0x4d67},
+ {"linux/soundcard.h", "SOUND_MIXER_3DSE", 0x4d68},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE1", 0x4d6f},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE2", 0x4d70},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE3", 0x4d71},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE4", 0x4d72},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE5", 0x4d73},
+ {"linux/soundcard.h", "SOUND_MIXER_GETLEVELS", 0x4d74},
+ {"linux/soundcard.h", "SOUND_MIXER_SETLEVELS", 0x4d75},
+ {"linux/soundcard.h", "OSS_GETVERSION", 0x4d76},
+ {"linux/ticable.h", "IOCTL_TIUSB_TIMEOUT", 0x4e20},
+ {"linux/ticable.h", "IOCTL_TIUSB_RESET_DEVICE", 0x4e21},
+ {"linux/ticable.h", "IOCTL_TIUSB_RESET_PIPES", 0x4e22},
+ {"linux/soundcard.h", "SNDCTL_DSP_RESET", 0x5000},
+ {"linux/soundcard.h", "SNDCTL_DSP_SYNC", 0x5001},
+ {"linux/soundcard.h", "SNDCTL_DSP_SPEED", 0x5002},
+ {"linux/soundcard.h", "SOUND_PCM_READ_RATE", 0x5002},
+ {"linux/soundcard.h", "SNDCTL_DSP_STEREO", 0x5003},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETBLKSIZE", 0x5004},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETFMT", 0x5005},
+ {"linux/soundcard.h", "SOUND_PCM_READ_BITS", 0x5005},
+ {"linux/soundcard.h", "SOUND_PCM_READ_CHANNELS", 0x5006},
+ {"linux/soundcard.h", "SOUND_PCM_READ_FILTER", 0x5007},
+ {"linux/soundcard.h", "SNDCTL_DSP_POST", 0x5008},
+ {"linux/soundcard.h", "SNDCTL_DSP_SUBDIVIDE", 0x5009},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETFRAGMENT", 0x500a},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETFMTS", 0x500b},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETOSPACE", 0x500c},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETISPACE", 0x500d},
+ {"linux/soundcard.h", "SNDCTL_DSP_NONBLOCK", 0x500e},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETCAPS", 0x500f},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETTRIGGER", 0x5010},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETIPTR", 0x5011},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETOPTR", 0x5012},
+ {"linux/soundcard.h", "SNDCTL_DSP_MAPINBUF", 0x5013},
+ {"linux/soundcard.h", "SNDCTL_DSP_MAPOUTBUF", 0x5014},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETSYNCRO", 0x5015},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETDUPLEX", 0x5016},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETODELAY", 0x5017},
+ {"linux/soundcard.h", "SNDCTL_DSP_PROFILE", 0x5017},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETCHANNELMASK", 0x5040},
+ {"linux/soundcard.h", "SNDCTL_DSP_BIND_CHANNEL", 0x5041},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETSPDIF", 0x5042},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETSPDIF", 0x5043},
+ {"sound/sscape_ioctl.h", "SND_SSCAPE_LOAD_BOOTB", 0x5064},
+ {"sound/sscape_ioctl.h", "SND_SSCAPE_LOAD_MCODE", 0x5065},
+ {"linux/soundcard.h", "SNDCTL_SEQ_RESET", 0x5100},
+ {"linux/soundcard.h", "SNDCTL_SEQ_SYNC", 0x5101},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_INFO", 0x5102},
+ {"linux/soundcard.h", "SNDCTL_SEQ_CTRLRATE", 0x5103},
+ {"linux/soundcard.h", "SNDCTL_SEQ_GETOUTCOUNT", 0x5104},
+ {"linux/soundcard.h", "SNDCTL_SEQ_GETINCOUNT", 0x5105},
+ {"linux/soundcard.h", "SNDCTL_SEQ_PERCMODE", 0x5106},
+ {"linux/soundcard.h", "SNDCTL_FM_LOAD_INSTR", 0x5107},
+ {"linux/soundcard.h", "SNDCTL_SEQ_TESTMIDI", 0x5108},
+ {"linux/soundcard.h", "SNDCTL_SEQ_RESETSAMPLES", 0x5109},
+ {"linux/soundcard.h", "SNDCTL_SEQ_NRSYNTHS", 0x510a},
+ {"linux/soundcard.h", "SNDCTL_SEQ_NRMIDIS", 0x510b},
+ {"linux/soundcard.h", "SNDCTL_MIDI_INFO", 0x510c},
+ {"linux/soundcard.h", "SNDCTL_SEQ_THRESHOLD", 0x510d},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_MEMAVL", 0x510e},
+ {"linux/soundcard.h", "SNDCTL_FM_4OP_ENABLE", 0x510f},
+ {"linux/soundcard.h", "SNDCTL_SEQ_PANIC", 0x5111},
+ {"linux/soundcard.h", "SNDCTL_SEQ_OUTOFBAND", 0x5112},
+ {"linux/soundcard.h", "SNDCTL_SEQ_GETTIME", 0x5113},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_ID", 0x5114},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_CONTROL", 0x5115},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_REMOVESAMPLE", 0x5116},
+ {"linux/random.h", "RNDGETENTCNT", 0x5200},
+ {"linux/random.h", "RNDADDTOENTCNT", 0x5201},
+ {"linux/random.h", "RNDGETPOOL", 0x5202},
+ {"linux/random.h", "RNDADDENTROPY", 0x5203},
+ {"linux/random.h", "RNDZAPENTCNT", 0x5204},
+ {"linux/random.h", "RNDCLEARPOOL", 0x5206},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_PVERSION", 0x5300},
+ {"linux/cdrom.h", "CDROMPAUSE", 0x5301},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_CLIENT_ID", 0x5301},
+ {"linux/cdrom.h", "CDROMRESUME", 0x5302},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_SYSTEM_INFO", 0x5302},
+ {"linux/cdrom.h", "CDROMPLAYMSF", 0x5303},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_RUNNING_MODE", 0x5303},
+ {"linux/cdrom.h", "CDROMPLAYTRKIND", 0x5304},
+ {"linux/cdrom.h", "CDROMREADTOCHDR", 0x5305},
+ {"linux/cdrom.h", "CDROMREADTOCENTRY", 0x5306},
+ {"linux/cdrom.h", "CDROMSTOP", 0x5307},
+ {"linux/cdrom.h", "CDROMSTART", 0x5308},
+ {"linux/cdrom.h", "CDROMEJECT", 0x5309},
+ {"linux/cdrom.h", "CDROMVOLCTRL", 0x530a},
+ {"linux/cdrom.h", "CDROMSUBCHNL", 0x530b},
+ {"linux/cdrom.h", "CDROMREADMODE2", 0x530c},
+ {"linux/cdrom.h", "CDROMREADMODE1", 0x530d},
+ {"linux/cdrom.h", "CDROMREADAUDIO", 0x530e},
+ {"linux/cdrom.h", "CDROMEJECT_SW", 0x530f},
+ {"linux/cdrom.h", "CDROMMULTISESSION", 0x5310},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_GET_CLIENT_INFO", 0x5310},
+ {"linux/cdrom.h", "CDROM_GET_MCN", 0x5311},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_SET_CLIENT_INFO", 0x5311},
+ {"linux/cdrom.h", "CDROMRESET", 0x5312},
+ {"linux/cdrom.h", "CDROMVOLREAD", 0x5313},
+ {"linux/cdrom.h", "CDROMREADRAW", 0x5314},
+ {"linux/cdrom.h", "CDROMREADCOOKED", 0x5315},
+ {"linux/cdrom.h", "CDROMSEEK", 0x5316},
+ {"linux/cdrom.h", "CDROMPLAYBLK", 0x5317},
+ {"linux/cdrom.h", "CDROMREADALL", 0x5318},
+ {"linux/cdrom.h", "CDROMCLOSETRAY", 0x5319},
+ {"linux/cdrom.h", "CDROMGETSPINDOWN", 0x531d},
+ {"linux/cdrom.h", "CDROMSETSPINDOWN", 0x531e},
+ {"linux/cdrom.h", "CDROM_SET_OPTIONS", 0x5320},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_CREATE_PORT", 0x5320},
+ {"linux/cdrom.h", "CDROM_CLEAR_OPTIONS", 0x5321},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_DELETE_PORT", 0x5321},
+ {"linux/cdrom.h", "CDROM_SELECT_SPEED", 0x5322},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_GET_PORT_INFO", 0x5322},
+ {"linux/cdrom.h", "CDROM_SELECT_DISC", 0x5323},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_SET_PORT_INFO", 0x5323},
+ {"linux/cdrom.h", "CDROM_MEDIA_CHANGED", 0x5325},
+ {"linux/cdrom.h", "CDROM_DRIVE_STATUS", 0x5326},
+ {"linux/cdrom.h", "CDROM_DISC_STATUS", 0x5327},
+ {"linux/cdrom.h", "CDROM_CHANGER_NSLOTS", 0x5328},
+ {"linux/cdrom.h", "CDROM_LOCKDOOR", 0x5329},
+ {"linux/cdrom.h", "CDROM_DEBUG", 0x5330},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_SUBSCRIBE_PORT", 0x5330},
+ {"linux/cdrom.h", "CDROM_GET_CAPABILITY", 0x5331},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_UNSUBSCRIBE_PORT", 0x5331},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_CREATE_QUEUE", 0x5332},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_DELETE_QUEUE", 0x5333},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_GET_QUEUE_INFO", 0x5334},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_SET_QUEUE_INFO", 0x5335},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_GET_NAMED_QUEUE", 0x5336},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS", 0x5340},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_GET_QUEUE_TEMPO", 0x5341},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_SET_QUEUE_TEMPO", 0x5342},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_GET_QUEUE_OWNER", 0x5343},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_SET_QUEUE_OWNER", 0x5344},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_GET_QUEUE_TIMER", 0x5345},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_SET_QUEUE_TIMER", 0x5346},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_GET_QUEUE_CLIENT", 0x5349},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_SET_QUEUE_CLIENT", 0x534a},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_GET_CLIENT_POOL", 0x534b},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_SET_CLIENT_POOL", 0x534c},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_REMOVE_EVENTS", 0x534e},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_QUERY_SUBS", 0x534f},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_GET_SUBSCRIPTION", 0x5350},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_QUERY_NEXT_CLIENT", 0x5351},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_QUERY_NEXT_PORT", 0x5352},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_GET_QUEUE_SYNC", 0x5353},
+ {"sound/asequencer.h", "SNDRV_SEQ_IOCTL_SET_QUEUE_SYNC", 0x5354},
+ {"scsi/scsi_ioctl.h", "SCSI_IOCTL_DOORLOCK", 0x5380},
+ {"scsi/scsi_ioctl.h", "SCSI_IOCTL_DOORUNLOCK", 0x5381},
+ {"linux/cdrom.h", "CDROMAUDIOBUFSIZ", 0x5382},
+ {"scsi/scsi.h", "SCSI_IOCTL_GET_IDLUN", 0x5382},
+ {"scsi/scsi.h", "SCSI_IOCTL_TAGGED_ENABLE", 0x5383},
+ {"scsi/scsi.h", "SCSI_IOCTL_TAGGED_DISABLE", 0x5384},
+ {"scsi/scsi.h", "SCSI_IOCTL_PROBE_HOST", 0x5385},
+ {"scsi/scsi.h", "SCSI_IOCTL_GET_BUS_NUMBER", 0x5386},
+ {"scsi/scsi.h", "SCSI_IOCTL_GET_PCI", 0x5387},
+ {"linux/cdrom.h", "DVD_READ_STRUCT", 0x5390},
+ {"linux/cdrom.h", "DVD_WRITE_STRUCT", 0x5391},
+ {"linux/cdrom.h", "DVD_AUTH", 0x5392},
+ {"linux/cdrom.h", "CDROM_SEND_PACKET", 0x5393},
+ {"linux/cdrom.h", "CDROM_NEXT_WRITABLE", 0x5394},
+ {"linux/cdrom.h", "CDROM_LAST_WRITTEN", 0x5395},
+ {"linux/soundcard.h", "SNDCTL_TMR_TIMEBASE", 0x5401},
+ {"asm/ioctls.h", "TCGETS", 0x5401},
+ {"linux/soundcard.h", "SNDCTL_TMR_START", 0x5402},
+ {"asm/ioctls.h", "TCSETS", 0x5402},
+ {"linux/soundcard.h", "SNDCTL_TMR_STOP", 0x5403},
+ {"asm/ioctls.h", "TCSETSW", 0x5403},
+ {"linux/soundcard.h", "SNDCTL_TMR_CONTINUE", 0x5404},
+ {"asm/ioctls.h", "TCSETSF", 0x5404},
+ {"linux/soundcard.h", "SNDCTL_TMR_TEMPO", 0x5405},
+ {"asm/ioctls.h", "TCGETA", 0x5405},
+ {"linux/soundcard.h", "SNDCTL_TMR_SOURCE", 0x5406},
+ {"asm/ioctls.h", "TCSETA", 0x5406},
+ {"linux/soundcard.h", "SNDCTL_TMR_METRONOME", 0x5407},
+ {"asm/ioctls.h", "TCSETAW", 0x5407},
+ {"linux/soundcard.h", "SNDCTL_TMR_SELECT", 0x5408},
+ {"asm/ioctls.h", "TCSETAF", 0x5408},
+ {"asm/ioctls.h", "TCSBRK", 0x5409},
+ {"asm/ioctls.h", "TCXONC", 0x540a},
+ {"asm/ioctls.h", "TCFLSH", 0x540b},
+ {"asm/ioctls.h", "TIOCEXCL", 0x540c},
+ {"asm/ioctls.h", "TIOCNXCL", 0x540d},
+ {"asm/ioctls.h", "TIOCSCTTY", 0x540e},
+ {"asm/ioctls.h", "TIOCGPGRP", 0x540f},
+ {"asm/ioctls.h", "TIOCSPGRP", 0x5410},
+ {"asm/ioctls.h", "TIOCOUTQ", 0x5411},
+ {"asm/ioctls.h", "TIOCSTI", 0x5412},
+ {"asm/ioctls.h", "TIOCGWINSZ", 0x5413},
+ {"asm/ioctls.h", "TIOCSWINSZ", 0x5414},
+ {"asm/ioctls.h", "TIOCMGET", 0x5415},
+ {"asm/ioctls.h", "TIOCMBIS", 0x5416},
+ {"asm/ioctls.h", "TIOCMBIC", 0x5417},
+ {"asm/ioctls.h", "TIOCMSET", 0x5418},
+ {"asm/ioctls.h", "TIOCGSOFTCAR", 0x5419},
+ {"asm/ioctls.h", "TIOCSSOFTCAR", 0x541a},
+ {"asm/ioctls.h", "FIONREAD", 0x541b},
+ {"asm/ioctls.h", "TIOCLINUX", 0x541c},
+ {"asm/ioctls.h", "TIOCCONS", 0x541d},
+ {"asm/ioctls.h", "TIOCGSERIAL", 0x541e},
+ {"asm/ioctls.h", "TIOCSSERIAL", 0x541f},
+ {"asm/ioctls.h", "TIOCPKT", 0x5420},
+ {"asm/ioctls.h", "FIONBIO", 0x5421},
+ {"asm/ioctls.h", "TIOCNOTTY", 0x5422},
+ {"asm/ioctls.h", "TIOCSETD", 0x5423},
+ {"asm/ioctls.h", "TIOCGETD", 0x5424},
+ {"asm/ioctls.h", "TCSBRKP", 0x5425},
+ {"asm/ioctls.h", "TIOCTTYGSTRUCT", 0x5426},
+ {"asm/ioctls.h", "TIOCSBRK", 0x5427},
+ {"asm/ioctls.h", "TIOCCBRK", 0x5428},
+ {"asm/ioctls.h", "TIOCGSID", 0x5429},
+ {"asm/ioctls.h", "TIOCGPTN", 0x5430},
+ {"asm/ioctls.h", "TIOCSPTLCK", 0x5431},
+ {"asm/ioctls.h", "TIOCGDEV", 0x5432},
+ {"asm/ioctls.h", "FIONCLEX", 0x5450},
+ {"asm/ioctls.h", "FIOCLEX", 0x5451},
+ {"asm/ioctls.h", "FIOASYNC", 0x5452},
+ {"asm/ioctls.h", "TIOCSERCONFIG", 0x5453},
+ {"asm/ioctls.h", "TIOCSERGWILD", 0x5454},
+ {"asm/ioctls.h", "TIOCSERSWILD", 0x5455},
+ {"asm/ioctls.h", "TIOCGLCKTRMIOS", 0x5456},
+ {"asm/ioctls.h", "TIOCSLCKTRMIOS", 0x5457},
+ {"asm/ioctls.h", "TIOCSERGSTRUCT", 0x5458},
+ {"asm/ioctls.h", "TIOCSERGETLSR", 0x5459},
+ {"asm/ioctls.h", "TIOCSERGETMULTI", 0x545a},
+ {"asm/ioctls.h", "TIOCSERSETMULTI", 0x545b},
+ {"asm/ioctls.h", "TIOCMIWAIT", 0x545c},
+ {"asm/ioctls.h", "TIOCGICOUNT", 0x545d},
+ {"asm/ioctls.h", "TIOCGHAYESESP", 0x545e},
+ {"asm/ioctls.h", "TIOCSHAYESESP", 0x545f},
+ {"asm/ioctls.h", "FIOQSIZE", 0x5460},
+ {"linux/if_tun.h", "TUNSETNOCSUM", 0x54c8},
+ {"linux/if_tun.h", "TUNSETDEBUG", 0x54c9},
+ {"linux/if_tun.h", "TUNSETIFF", 0x54ca},
+ {"linux/if_tun.h", "TUNSETPERSIST", 0x54cb},
+ {"linux/if_tun.h", "TUNSETOWNER", 0x54cc},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CONTROL", 0x5500},
+ {"linux/uinput.h", "UI_DEV_CREATE", 0x5501},
+ {"linux/uinput.h", "UI_DEV_DESTROY", 0x5502},
+ {"linux/usbdevice_fs.h", "USBDEVFS_BULK", 0x5502},
+ {"linux/usbdevice_fs.h", "USBDEVFS_RESETEP", 0x5503},
+ {"linux/usbdevice_fs.h", "USBDEVFS_SETINTERFACE", 0x5504},
+ {"linux/usbdevice_fs.h", "USBDEVFS_SETCONFIGURATION", 0x5505},
+ {"linux/usbdevice_fs.h", "USBDEVFS_GETDRIVER", 0x5508},
+ {"linux/usbdevice_fs.h", "USBDEVFS_SUBMITURB", 0x550a},
+ {"linux/usbdevice_fs.h", "USBDEVFS_DISCARDURB", 0x550b},
+ {"linux/usbdevice_fs.h", "USBDEVFS_REAPURB", 0x550c},
+ {"linux/usbdevice_fs.h", "USBDEVFS_REAPURBNDELAY", 0x550d},
+ {"linux/usbdevice_fs.h", "USBDEVFS_DISCSIGNAL", 0x550e},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CLAIMINTERFACE", 0x550f},
+ {"linux/usbdevice_fs.h", "USBDEVFS_RELEASEINTERFACE", 0x5510},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CONNECTINFO", 0x5511},
+ {"linux/usbdevice_fs.h", "USBDEVFS_IOCTL", 0x5512},
+ {"linux/usbdevice_fs.h", "USBDEVFS_HUB_PORTINFO", 0x5513},
+ {"linux/usbdevice_fs.h", "USBDEVFS_RESET", 0x5514},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CLEAR_HALT", 0x5515},
+ {"linux/usbdevice_fs.h", "USBDEVFS_DISCONNECT", 0x5516},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CONNECT", 0x5517},
+ {"linux/uinput.h", "UI_SET_EVBIT", 0x5564},
+ {"linux/uinput.h", "UI_SET_KEYBIT", 0x5565},
+ {"linux/uinput.h", "UI_SET_RELBIT", 0x5566},
+ {"linux/uinput.h", "UI_SET_ABSBIT", 0x5567},
+ {"linux/uinput.h", "UI_SET_MSCBIT", 0x5568},
+ {"linux/uinput.h", "UI_SET_LEDBIT", 0x5569},
+ {"linux/uinput.h", "UI_SET_SNDBIT", 0x556a},
+ {"linux/uinput.h", "UI_SET_FFBIT", 0x556b},
+ {"linux/videodev2.h", "VIDIOC_QUERYCAP", 0x5600},
+ {"linux/vt.h", "VT_OPENQRY", 0x5600},
+ {"linux/videodev2.h", "VIDIOC_RESERVED", 0x5601},
+ {"linux/vt.h", "VT_GETMODE", 0x5601},
+ {"linux/videodev2.h", "VIDIOC_ENUM_FMT", 0x5602},
+ {"linux/vt.h", "VT_SETMODE", 0x5602},
+ {"linux/vt.h", "VT_GETSTATE", 0x5603},
+ {"linux/videodev2.h", "VIDIOC_G_FMT", 0x5604},
+ {"linux/vt.h", "VT_SENDSIG", 0x5604},
+ {"linux/videodev2.h", "VIDIOC_S_FMT", 0x5605},
+ {"linux/vt.h", "VT_RELDISP", 0x5605},
+ {"linux/videodev2.h", "VIDIOC_G_COMP", 0x5606},
+ {"linux/vt.h", "VT_ACTIVATE", 0x5606},
+ {"linux/videodev2.h", "VIDIOC_S_COMP", 0x5607},
+ {"linux/vt.h", "VT_WAITACTIVE", 0x5607},
+ {"linux/videodev2.h", "VIDIOC_REQBUFS", 0x5608},
+ {"linux/vt.h", "VT_DISALLOCATE", 0x5608},
+ {"linux/videodev2.h", "VIDIOC_QUERYBUF", 0x5609},
+ {"linux/vt.h", "VT_RESIZE", 0x5609},
+ {"linux/videodev2.h", "VIDIOC_G_FBUF", 0x560a},
+ {"linux/vt.h", "VT_RESIZEX", 0x560a},
+ {"linux/videodev2.h", "VIDIOC_S_FBUF", 0x560b},
+ {"linux/vt.h", "VT_LOCKSWITCH", 0x560b},
+ {"linux/vt.h", "VT_UNLOCKSWITCH", 0x560c},
+ {"linux/videodev2.h", "VIDIOC_OVERLAY", 0x560e},
+ {"linux/videodev2.h", "VIDIOC_QBUF", 0x560f},
+ {"linux/videodev2.h", "VIDIOC_DQBUF", 0x5611},
+ {"linux/videodev2.h", "VIDIOC_STREAMON", 0x5612},
+ {"linux/videodev2.h", "VIDIOC_STREAMOFF", 0x5613},
+ {"linux/videodev2.h", "VIDIOC_G_PARM", 0x5615},
+ {"linux/videodev2.h", "VIDIOC_S_PARM", 0x5616},
+ {"linux/videodev2.h", "VIDIOC_G_STD", 0x5617},
+ {"linux/videodev2.h", "VIDIOC_S_STD", 0x5618},
+ {"linux/videodev2.h", "VIDIOC_ENUMSTD", 0x5619},
+ {"linux/videodev2.h", "VIDIOC_ENUMINPUT", 0x561a},
+ {"linux/matroxfb.h", "MATROXFB_G_TVOCTRL", 0x561b},
+ {"linux/videodev2.h", "VIDIOC_G_CTRL", 0x561b},
+ {"linux/matroxfb.h", "MATROXFB_S_TVOCTRL", 0x561c},
+ {"linux/videodev2.h", "VIDIOC_S_CTRL", 0x561c},
+ {"linux/videodev2.h", "VIDIOC_G_TUNER", 0x561d},
+ {"linux/videodev2.h", "VIDIOC_S_TUNER", 0x561e},
+ {"linux/videodev2.h", "VIDIOC_G_AUDIO", 0x5621},
+ {"linux/videodev2.h", "VIDIOC_S_AUDIO", 0x5622},
+ {"linux/matroxfb.h", "MATROXFB_TVOQUERYCTRL", 0x5624},
+ {"linux/videodev2.h", "VIDIOC_QUERYCTRL", 0x5624},
+ {"linux/videodev2.h", "VIDIOC_QUERYMENU", 0x5625},
+ {"linux/videodev2.h", "VIDIOC_G_INPUT", 0x5626},
+ {"linux/videodev2.h", "VIDIOC_S_INPUT", 0x5627},
+ {"linux/videodev2.h", "VIDIOC_G_OUTPUT", 0x562e},
+ {"linux/videodev2.h", "VIDIOC_S_OUTPUT", 0x562f},
+ {"linux/videodev2.h", "VIDIOC_ENUMOUTPUT", 0x5630},
+ {"linux/videodev2.h", "VIDIOC_G_AUDOUT", 0x5631},
+ {"linux/videodev2.h", "VIDIOC_S_AUDOUT", 0x5632},
+ {"linux/videodev2.h", "VIDIOC_G_MODULATOR", 0x5636},
+ {"linux/videodev2.h", "VIDIOC_S_MODULATOR", 0x5637},
+ {"linux/videodev2.h", "VIDIOC_G_FREQUENCY", 0x5638},
+ {"linux/videodev2.h", "VIDIOC_S_FREQUENCY", 0x5639},
+ {"linux/videodev2.h", "VIDIOC_CROPCAP", 0x563a},
+ {"linux/videodev2.h", "VIDIOC_G_CROP", 0x563b},
+ {"linux/videodev2.h", "VIDIOC_S_CROP", 0x563c},
+ {"linux/videodev2.h", "VIDIOC_G_JPEGCOMP", 0x563d},
+ {"linux/videodev2.h", "VIDIOC_S_JPEGCOMP", 0x563e},
+ {"linux/videodev2.h", "VIDIOC_QUERYSTD", 0x563f},
+ {"linux/videodev2.h", "VIDIOC_TRY_FMT", 0x5640},
+ {"linux/videodev2.h", "VIDIOC_ENUMAUDIO", 0x5641},
+ {"linux/videodev2.h", "VIDIOC_ENUMAUDOUT", 0x5642},
+ {"linux/videodev2.h", "VIDIOC_G_PRIORITY", 0x5643},
+ {"linux/videodev2.h", "VIDIOC_S_PRIORITY", 0x5644},
+ {"linux/watchdog.h", "WDIOC_GETSUPPORT", 0x5700},
+ {"linux/watchdog.h", "WDIOC_GETSTATUS", 0x5701},
+ {"linux/watchdog.h", "WDIOC_GETBOOTSTATUS", 0x5702},
+ {"linux/watchdog.h", "WDIOC_GETTEMP", 0x5703},
+ {"linux/watchdog.h", "WDIOC_SETOPTIONS", 0x5704},
+ {"linux/watchdog.h", "WDIOC_KEEPALIVE", 0x5705},
+ {"linux/watchdog.h", "WDIOC_SETTIMEOUT", 0x5706},
+ {"linux/watchdog.h", "WDIOC_GETTIMEOUT", 0x5707},
+ {"linux/ite_gpio.h", "ITE_GPIO_IN", 0x5a00},
+ {"linux/ite_gpio.h", "ITE_GPIO_OUT", 0x5a01},
+ {"linux/ite_gpio.h", "ITE_GPIO_INT_CTRL", 0x5a02},
+ {"linux/ite_gpio.h", "ITE_GPIO_IN_STATUS", 0x5a03},
+ {"linux/ite_gpio.h", "ITE_GPIO_OUT_STATUS", 0x5a04},
+ {"linux/ite_gpio.h", "ITE_GPIO_GEN_CTRL", 0x5a05},
+ {"linux/ite_gpio.h", "ITE_GPIO_INT_WAIT", 0x5a06},
+ {"linux/sonet.h", "SONET_GETSTAT", 0x6110},
+ {"linux/sonet.h", "SONET_GETSTATZ", 0x6111},
+ {"linux/sonet.h", "SONET_SETDIAG", 0x6112},
+ {"linux/sonet.h", "SONET_CLRDIAG", 0x6113},
+ {"linux/sonet.h", "SONET_GETDIAG", 0x6114},
+ {"linux/sonet.h", "SONET_SETFRAMING", 0x6115},
+ {"linux/sonet.h", "SONET_GETFRAMING", 0x6116},
+ {"linux/sonet.h", "SONET_GETFRSENSE", 0x6117},
+ {"linux/atm_idt77105.h", "IDT77105_GETSTAT", 0x6132},
+ {"linux/atm_idt77105.h", "IDT77105_GETSTATZ", 0x6133},
+ {"linux/atmdev.h", "ATM_GETSTAT", 0x6150},
+ {"linux/atmdev.h", "ATM_GETSTATZ", 0x6151},
+ {"linux/atmdev.h", "ATM_GETLOOP", 0x6152},
+ {"linux/atmdev.h", "ATM_SETLOOP", 0x6153},
+ {"linux/atmdev.h", "ATM_QUERYLOOP", 0x6154},
+ {"linux/atm_eni.h", "ENI_MEMDUMP", 0x6160},
+ {"linux/atm_he.h", "HE_GET_REG", 0x6160},
+ {"linux/atm_nicstar.h", "NS_GETPSTAT", 0x6161},
+ {"linux/atm_zatm.h", "ZATM_GETPOOL", 0x6161},
+ {"linux/atm_nicstar.h", "NS_SETBUFLEV", 0x6162},
+ {"linux/atm_zatm.h", "ZATM_GETPOOLZ", 0x6162},
+ {"linux/atm_nicstar.h", "NS_ADJBUFLEV", 0x6163},
+ {"linux/atm_zatm.h", "ZATM_SETPOOL", 0x6163},
+ {"linux/atm_zatm.h", "ZATM_GETTHIST", 0x6164},
+ {"linux/atm_eni.h", "ENI_SETMULT", 0x6167},
+ {"linux/atm_tcp.h", "SIOCSIFATMTCP", 0x6180},
+ {"linux/atmdev.h", "ATM_GETLINKRATE", 0x6181},
+ {"linux/atmdev.h", "ATM_GETNAMES", 0x6183},
+ {"linux/atmdev.h", "ATM_GETTYPE", 0x6184},
+ {"linux/atmdev.h", "ATM_GETESI", 0x6185},
+ {"linux/atmdev.h", "ATM_GETADDR", 0x6186},
+ {"linux/atmdev.h", "ATM_RSTADDR", 0x6187},
+ {"linux/atmdev.h", "ATM_ADDADDR", 0x6188},
+ {"linux/atmdev.h", "ATM_DELADDR", 0x6189},
+ {"linux/atmdev.h", "ATM_GETCIRANGE", 0x618a},
+ {"linux/atmdev.h", "ATM_SETCIRANGE", 0x618b},
+ {"linux/atmdev.h", "ATM_SETESI", 0x618c},
+ {"linux/atmdev.h", "ATM_SETESIF", 0x618d},
+ {"linux/atm_tcp.h", "ATMTCP_CREATE", 0x618e},
+ {"linux/atm_tcp.h", "ATMTCP_REMOVE", 0x618f},
+ {"linux/atmbr2684.h", "BR2684_SETFILT", 0x6190},
+ {"linux/atmlec.h", "ATMLEC_CTRL", 0x61d0},
+ {"linux/atmlec.h", "ATMLEC_DATA", 0x61d1},
+ {"linux/atmlec.h", "ATMLEC_MCAST", 0x61d2},
+ {"linux/atmmpc.h", "ATMMPC_CTRL", 0x61d8},
+ {"linux/atmmpc.h", "ATMMPC_DATA", 0x61d9},
+ {"linux/atmclip.h", "SIOCMKCLIP", 0x61e0},
+ {"linux/atmarp.h", "ATMARPD_CTRL", 0x61e1},
+ {"linux/atmarp.h", "ATMARP_MKIP", 0x61e2},
+ {"linux/atmarp.h", "ATMARP_SETENTRY", 0x61e3},
+ {"linux/atmarp.h", "ATMARP_ENCAP", 0x61e5},
+ {"linux/atmsvc.h", "ATMSIGD_CTRL", 0x61f0},
+ {"linux/atmdev.h", "ATM_SETSC", 0x61f1},
+ {"linux/atmdev.h", "ATM_SETBACKEND", 0x61f2},
+ {"linux/atmdev.h", "ATM_NEWBACKENDIF", 0x61f3},
+ {"linux/coda.h", "CIOC_KERNEL_VERSION", 0x630a},
+ {"linux/comstats.h", "COM_GETPORTSTATS", 0x631e},
+ {"linux/comstats.h", "COM_CLRPORTSTATS", 0x631f},
+ {"linux/comstats.h", "COM_GETBRDSTATS", 0x6320},
+ {"linux/comstats.h", "COM_READPORT", 0x6328},
+ {"linux/comstats.h", "COM_READBOARD", 0x6329},
+ {"linux/comstats.h", "COM_READPANEL", 0x632a},
+ {"linux/devfs_fs.h", "DEVFSDIOC_GET_PROTO_REV", 0x6400},
+ {"linux/video_decoder.h", "DECODER_GET_CAPABILITIES", 0x6401},
+ {"linux/video_decoder.h", "DECODER_GET_STATUS", 0x6402},
+ {"linux/devfs_fs.h", "DEVFSDIOC_SET_EVENT_MASK", 0x6402},
+ {"linux/video_decoder.h", "DECODER_SET_NORM", 0x6403},
+ {"linux/devfs_fs.h", "DEVFSDIOC_RELEASE_EVENT_QUEUE", 0x6403},
+ {"linux/video_decoder.h", "DECODER_SET_INPUT", 0x6404},
+ {"linux/devfs_fs.h", "DEVFSDIOC_SET_DEBUG_MASK", 0x6404},
+ {"linux/video_decoder.h", "DECODER_SET_OUTPUT", 0x6405},
+ {"linux/video_decoder.h", "DECODER_ENABLE_OUTPUT", 0x6406},
+ {"linux/video_decoder.h", "DECODER_SET_PICTURE", 0x6407},
+ {"linux/video_decoder.h", "DECODER_DUMP", 0x64c0},
+ {"linux/video_encoder.h", "ENCODER_GET_CAPABILITIES", 0x6501},
+ {"linux/video_encoder.h", "ENCODER_SET_NORM", 0x6502},
+ {"linux/video_encoder.h", "ENCODER_SET_INPUT", 0x6503},
+ {"linux/video_encoder.h", "ENCODER_SET_OUTPUT", 0x6504},
+ {"linux/video_encoder.h", "ENCODER_ENABLE_OUTPUT", 0x6505},
+ {"linux/ext2_fs.h", "EXT2_IOC_GETFLAGS", 0x6601},
+ {"linux/ext2_fs.h", "EXT2_IOC_SETFLAGS", 0x6602},
+ {"linux/ext3_fs.h", "EXT3_IOC_GETVERSION", 0x6603},
+ {"linux/ext3_fs.h", "EXT3_IOC_SETVERSION", 0x6604},
+ {"linux/ext3_fs.h", "EXT3_IOC_WAIT_FOR_READONLY", 0x6663},
+ {"linux/usb_gadgetfs.h", "GADGETFS_FIFO_STATUS", 0x6701},
+ {"linux/usb_gadgetfs.h", "GADGETFS_FIFO_FLUSH", 0x6702},
+ {"linux/usb_gadgetfs.h", "GADGETFS_CLEAR_HALT", 0x6703},
+ {"linux/i2o-dev.h", "I2OGETIOPS", 0x6900},
+ {"linux/i2o-dev.h", "I2OHRTGET", 0x6901},
+ {"linux/i2o-dev.h", "I2OLCTGET", 0x6902},
+ {"linux/i2o-dev.h", "I2OPARMSET", 0x6903},
+ {"linux/i2o-dev.h", "I2OPARMGET", 0x6904},
+ {"linux/i2o-dev.h", "I2OSWDL", 0x6905},
+ {"linux/i2o-dev.h", "I2OSWUL", 0x6906},
+ {"linux/i2o-dev.h", "I2OSWDEL", 0x6907},
+ {"linux/i2o-dev.h", "I2OVALIDATE", 0x6908},
+ {"linux/i2o-dev.h", "I2OHTML", 0x6909},
+ {"linux/i2o-dev.h", "I2OEVTREG", 0x690a},
+ {"linux/i2o-dev.h", "I2OEVTGET", 0x690b},
+ {"linux/ipmi.h", "IPMICTL_RECEIVE_MSG_TRUNC", 0x690b},
+ {"linux/ipmi.h", "IPMICTL_RECEIVE_MSG", 0x690c},
+ {"linux/ipmi.h", "IPMICTL_SEND_COMMAND", 0x690d},
+ {"linux/ipmi.h", "IPMICTL_REGISTER_FOR_CMD", 0x690e},
+ {"linux/ipmi.h", "IPMICTL_UNREGISTER_FOR_CMD", 0x690f},
+ {"linux/ipmi.h", "IPMICTL_SET_GETS_EVENTS_CMD", 0x6910},
+ {"linux/ipmi.h", "IPMICTL_SET_MY_ADDRESS_CMD", 0x6911},
+ {"linux/ipmi.h", "IPMICTL_GET_MY_ADDRESS_CMD", 0x6912},
+ {"linux/ipmi.h", "IPMICTL_SET_MY_LUN_CMD", 0x6913},
+ {"linux/ipmi.h", "IPMICTL_GET_MY_LUN_CMD", 0x6914},
+ {"linux/i8k.h", "I8K_BIOS_VERSION", 0x6980},
+ {"linux/i8k.h", "I8K_MACHINE_ID", 0x6981},
+ {"linux/i8k.h", "I8K_POWER_STATUS", 0x6982},
+ {"linux/i8k.h", "I8K_FN_STATUS", 0x6983},
+ {"linux/i8k.h", "I8K_GET_TEMP", 0x6984},
+ {"linux/i8k.h", "I8K_GET_SPEED", 0x6985},
+ {"linux/i8k.h", "I8K_GET_FAN", 0x6986},
+ {"linux/i8k.h", "I8K_SET_FAN", 0x6987},
+ {"linux/joystick.h", "JSIOCGVERSION", 0x6a01},
+ {"linux/joystick.h", "JSIOCGAXES", 0x6a11},
+ {"linux/joystick.h", "JSIOCGBUTTONS", 0x6a12},
+ {"linux/joystick.h", "JSIOCSCORR", 0x6a21},
+ {"linux/joystick.h", "JSIOCGCORR", 0x6a22},
+ {"linux/joystick.h", "JSIOCSAXMAP", 0x6a31},
+ {"linux/joystick.h", "JSIOCGAXMAP", 0x6a32},
+ {"linux/joystick.h", "JSIOCSBTNMAP", 0x6a33},
+ {"linux/joystick.h", "JSIOCGBTNMAP", 0x6a34},
+ {"linux/udf_fs_i.h", "UDF_GETEASIZE", 0x6c40},
+ {"linux/udf_fs_i.h", "UDF_GETEABLOCK", 0x6c41},
+ {"linux/udf_fs_i.h", "UDF_GETVOLIDENT", 0x6c42},
+ {"linux/udf_fs_i.h", "UDF_RELOCATE_BLOCKS", 0x6c43},
+ {"linux/synclink.h", "MGSL_IOCSPARAMS", 0x6d00},
+ {"linux/soundcard.h", "SNDCTL_MIDI_PRETIME", 0x6d00},
+ {"linux/synclink.h", "MGSL_IOCGPARAMS", 0x6d01},
+ {"linux/mtio.h", "MTIOCTOP", 0x6d01},
+ {"linux/soundcard.h", "SNDCTL_MIDI_MPUMODE", 0x6d01},
+ {"linux/synclink.h", "MGSL_IOCSTXIDLE", 0x6d02},
+ {"linux/mtio.h", "MTIOCGET", 0x6d02},
+ {"linux/soundcard.h", "SNDCTL_MIDI_MPUCMD", 0x6d02},
+ {"linux/synclink.h", "MGSL_IOCGTXIDLE", 0x6d03},
+ {"linux/mtio.h", "MTIOCPOS", 0x6d03},
+ {"linux/synclink.h", "MGSL_IOCTXENABLE", 0x6d04},
+ {"linux/mtio.h", "MTIOCGETCONFIG", 0x6d04},
+ {"linux/synclink.h", "MGSL_IOCRXENABLE", 0x6d05},
+ {"linux/mtio.h", "MTIOCSETCONFIG", 0x6d05},
+ {"linux/synclink.h", "MGSL_IOCTXABORT", 0x6d06},
+ {"linux/mtio.h", "MTIOCRDFTSEG", 0x6d06},
+ {"linux/synclink.h", "MGSL_IOCGSTATS", 0x6d07},
+ {"linux/mtio.h", "MTIOCWRFTSEG", 0x6d07},
+ {"linux/synclink.h", "MGSL_IOCWAITEVENT", 0x6d08},
+ {"linux/mtio.h", "MTIOCVOLINFO", 0x6d08},
+ {"linux/synclink.h", "MGSL_IOCLOOPTXDONE", 0x6d09},
+ {"linux/mtio.h", "MTIOCGETSIZE", 0x6d09},
+ {"linux/synclink.h", "MGSL_IOCSIF", 0x6d0a},
+ {"linux/mtio.h", "MTIOCFTFORMAT", 0x6d0a},
+ {"linux/synclink.h", "MGSL_IOCGIF", 0x6d0b},
+ {"linux/mtio.h", "MTIOCFTCMD", 0x6d0b},
+ {"linux/synclink.h", "MGSL_IOCCLRMODCOUNT", 0x6d0f},
+ {"linux/zftape.h", "MTIOC_ZFTAPE_GETBLKSZ", 0x6d68},
+ {"linux/ncp_fs.h", "NCP_IOC_NCPREQUEST", 0x6e01},
+ {"linux/ncp_fs.h", "NCP_IOC_GETMOUNTUID", 0x6e02},
+ {"linux/ncp_fs.h", "NCP_IOC_CONN_LOGGED_IN", 0x6e03},
+ {"linux/ncp_fs.h", "NCP_IOC_GET_FS_INFO", 0x6e04},
+ {"linux/ncp_fs.h", "NCP_IOC_SIGN_INIT", 0x6e05},
+ {"linux/ncp_fs.h", "NCP_IOC_SIGN_WANTED", 0x6e06},
+ {"linux/ncp_fs.h", "NCP_IOC_LOCKUNLOCK", 0x6e07},
+ {"linux/ncp_fs.h", "NCP_IOC_GETROOT", 0x6e08},
+ {"linux/ncp_fs.h", "NCP_IOC_GETOBJECTNAME", 0x6e09},
+ {"linux/ncp_fs.h", "NCP_IOC_GETPRIVATEDATA", 0x6e0a},
+ {"linux/ncp_fs.h", "NCP_IOC_GETCHARSETS", 0x6e0b},
+ {"linux/ncp_fs.h", "NCP_IOC_GETDENTRYTTL", 0x6e0c},
+ {"linux/matroxfb.h", "MATROXFB_GET_OUTPUT_CONNECTION", 0x6ef8},
+ {"linux/sisfb.h", "SISFB_GET_INFO", 0x6ef8},
+ {"linux/matroxfb.h", "MATROXFB_GET_AVAILABLE_OUTPUTS", 0x6ef9},
+ {"linux/matroxfb.h", "MATROXFB_GET_OUTPUT_MODE", 0x6efa},
+ {"linux/matroxfb.h", "MATROXFB_GET_ALL_OUTPUTS", 0x6efb},
+ {"linux/rtc.h", "RTC_AIE_ON", 0x7001},
+ {"linux/rtc.h", "RTC_AIE_OFF", 0x7002},
+ {"linux/rtc.h", "RTC_UIE_ON", 0x7003},
+ {"linux/rtc.h", "RTC_UIE_OFF", 0x7004},
+ {"linux/rtc.h", "RTC_PIE_ON", 0x7005},
+ {"linux/rtc.h", "RTC_PIE_OFF", 0x7006},
+ {"linux/rtc.h", "RTC_ALM_SET", 0x7007},
+ {"linux/rtc.h", "RTC_ALM_READ", 0x7008},
+ {"linux/rtc.h", "RTC_RD_TIME", 0x7009},
+ {"linux/rtc.h", "RTC_SET_TIME", 0x700a},
+ {"linux/rtc.h", "RTC_IRQP_READ", 0x700b},
+ {"linux/rtc.h", "RTC_IRQP_SET", 0x700c},
+ {"linux/rtc.h", "RTC_EPOCH_READ", 0x700d},
+ {"linux/rtc.h", "RTC_EPOCH_SET", 0x700e},
+ {"linux/rtc.h", "RTC_WIE_ON", 0x700f},
+ {"linux/rtc.h", "RTC_WKALM_SET", 0x700f},
+ {"linux/rtc.h", "RTC_WIE_OFF", 0x7010},
+ {"linux/rtc.h", "RTC_WKALM_RD", 0x7010},
+ {"linux/rtc.h", "RTC_PLL_GET", 0x7011},
+ {"linux/rtc.h", "RTC_PLL_SET", 0x7012},
+ {"linux/nvram.h", "NVRAM_INIT", 0x7040},
+ {"linux/nvram.h", "NVRAM_SETCKS", 0x7041},
+ {"linux/intermezzo_idl.h", "IZO_IOC_DEVICE", 0x7050},
+ {"linux/intermezzo_idl.h", "IZO_IOC_REINTKML", 0x7051},
+ {"linux/intermezzo_idl.h", "IZO_IOC_GET_RCVD", 0x7052},
+ {"linux/intermezzo_idl.h", "IZO_IOC_SET_IOCTL_UID", 0x7053},
+ {"linux/intermezzo_idl.h", "IZO_IOC_GET_KML_SIZE", 0x7054},
+ {"linux/intermezzo_idl.h", "IZO_IOC_PURGE_FILE_DATA", 0x7055},
+ {"linux/intermezzo_idl.h", "IZO_IOC_CONNECT", 0x7056},
+ {"linux/intermezzo_idl.h", "IZO_IOC_GO_FETCH_KML", 0x7057},
+ {"linux/intermezzo_idl.h", "IZO_IOC_MARK", 0x7058},
+ {"linux/intermezzo_idl.h", "IZO_IOC_CLEAR_FSET", 0x7059},
+ {"linux/intermezzo_idl.h", "IZO_IOC_CLEAR_ALL_FSETS", 0x7060},
+ {"linux/intermezzo_idl.h", "IZO_IOC_SET_FSET", 0x7061},
+ {"linux/intermezzo_idl.h", "IZO_IOC_REVOKE_PERMIT", 0x7062},
+ {"linux/intermezzo_idl.h", "IZO_IOC_SET_KMLSIZE", 0x7063},
+ {"linux/intermezzo_idl.h", "IZO_IOC_CLIENT_MAKE_BRANCH", 0x7064},
+ {"linux/intermezzo_idl.h", "IZO_IOC_SERVER_MAKE_BRANCH", 0x7065},
+ {"linux/intermezzo_idl.h", "IZO_IOC_BRANCH_UNDO", 0x7066},
+ {"linux/intermezzo_idl.h", "IZO_IOC_BRANCH_REDO", 0x7067},
+ {"linux/intermezzo_idl.h", "IZO_IOC_SET_PID", 0x7068},
+ {"linux/intermezzo_idl.h", "IZO_IOC_SET_CHANNEL", 0x7069},
+ {"linux/intermezzo_idl.h", "IZO_IOC_GET_CHANNEL", 0x7070},
+ {"linux/intermezzo_idl.h", "IZO_IOC_GET_FILEID", 0x7071},
+ {"linux/intermezzo_idl.h", "IZO_IOC_ADJUST_LML", 0x7072},
+ {"linux/intermezzo_idl.h", "IZO_IOC_SET_FILEID", 0x7073},
+ {"linux/intermezzo_idl.h", "IZO_IOC_REPSTATUS", 0x7074},
+ {"linux/ppdev.h", "PPSETMODE", 0x7080},
+ {"linux/ppdev.h", "PPRSTATUS", 0x7081},
+ {"linux/ppdev.h", "PPRCONTROL", 0x7083},
+ {"linux/ppdev.h", "PPWCONTROL", 0x7084},
+ {"linux/ppdev.h", "PPRDATA", 0x7085},
+ {"linux/ppdev.h", "PPWDATA", 0x7086},
+ {"linux/ppdev.h", "PPCLAIM", 0x708b},
+ {"linux/ppdev.h", "PPRELEASE", 0x708c},
+ {"linux/ppdev.h", "PPYIELD", 0x708d},
+ {"linux/ppdev.h", "PPFCONTROL", 0x708e},
+ {"linux/ppdev.h", "PPEXCL", 0x708f},
+ {"linux/ppdev.h", "PPDATADIR", 0x7090},
+ {"linux/ppdev.h", "PPNEGOT", 0x7091},
+ {"linux/ppdev.h", "PPWCTLONIRQ", 0x7092},
+ {"linux/ppdev.h", "PPCLRIRQ", 0x7093},
+ {"linux/ppdev.h", "PPSETPHASE", 0x7094},
+ {"linux/ppdev.h", "PPGETTIME", 0x7095},
+ {"linux/ppdev.h", "PPSETTIME", 0x7096},
+ {"linux/ppdev.h", "PPGETMODES", 0x7097},
+ {"linux/ppdev.h", "PPGETMODE", 0x7098},
+ {"linux/ppdev.h", "PPGETPHASE", 0x7099},
+ {"linux/ppdev.h", "PPGETFLAGS", 0x709a},
+ {"linux/ppdev.h", "PPSETFLAGS", 0x709b},
+ {"linux/ticable.h", "IOCTL_TISER_DELAY", 0x70a0},
+ {"linux/ticable.h", "IOCTL_TISER_TIMEOUT", 0x70a1},
+ {"linux/ticable.h", "IOCTL_TIPAR_DELAY", 0x70a8},
+ {"linux/ticable.h", "IOCTL_TIPAR_TIMEOUT", 0x70a9},
+ {"linux/serio.h", "SPIOCSTYPE", 0x7101},
+ {"linux/videotext.h", "VTXIOCGETINFO", 0x7101},
+ {"linux/videotext.h", "VTXIOCCLRPAGE", 0x7102},
+ {"linux/videotext.h", "VTXIOCCLRFOUND", 0x7103},
+ {"linux/videotext.h", "VTXIOCPAGEREQ", 0x7104},
+ {"linux/videotext.h", "VTXIOCGETSTAT", 0x7105},
+ {"linux/videotext.h", "VTXIOCGETPAGE", 0x7106},
+ {"linux/videotext.h", "VTXIOCSTOPDAU", 0x7107},
+ {"linux/videotext.h", "VTXIOCPUTPAGE", 0x7108},
+ {"linux/videotext.h", "VTXIOCSETDISP", 0x7109},
+ {"linux/videotext.h", "VTXIOCPUTSTAT", 0x710a},
+ {"linux/videotext.h", "VTXIOCCLRCACHE", 0x710b},
+ {"linux/videotext.h", "VTXIOCSETVIRT", 0x710c},
+ {"linux/telephony.h", "PHONE_CAPABILITIES", 0x7180},
+ {"linux/telephony.h", "PHONE_CAPABILITIES_LIST", 0x7181},
+ {"linux/telephony.h", "PHONE_CAPABILITIES_CHECK", 0x7182},
+ {"linux/telephony.h", "PHONE_RING", 0x7183},
+ {"linux/telephony.h", "PHONE_HOOKSTATE", 0x7184},
+ {"linux/telephony.h", "PHONE_MAXRINGS", 0x7185},
+ {"linux/telephony.h", "PHONE_RING_CADENCE", 0x7186},
+ {"linux/telephony.h", "PHONE_RING_START", 0x7187},
+ {"linux/telephony.h", "PHONE_RING_STOP", 0x7188},
+ {"linux/telephony.h", "PHONE_REC_CODEC", 0x7189},
+ {"linux/telephony.h", "PHONE_REC_START", 0x718a},
+ {"linux/telephony.h", "PHONE_REC_STOP", 0x718b},
+ {"linux/telephony.h", "PHONE_REC_DEPTH", 0x718c},
+ {"linux/telephony.h", "PHONE_FRAME", 0x718d},
+ {"linux/telephony.h", "PHONE_REC_VOLUME", 0x718e},
+ {"linux/telephony.h", "PHONE_REC_LEVEL", 0x718f},
+ {"linux/telephony.h", "PHONE_PLAY_CODEC", 0x7190},
+ {"linux/telephony.h", "PHONE_PLAY_START", 0x7191},
+ {"linux/telephony.h", "PHONE_PLAY_STOP", 0x7192},
+ {"linux/telephony.h", "PHONE_PLAY_DEPTH", 0x7193},
+ {"linux/telephony.h", "PHONE_PLAY_VOLUME", 0x7194},
+ {"linux/telephony.h", "PHONE_PLAY_LEVEL", 0x7195},
+ {"linux/telephony.h", "PHONE_DTMF_READY", 0x7196},
+ {"linux/telephony.h", "PHONE_GET_DTMF", 0x7197},
+ {"linux/telephony.h", "PHONE_GET_DTMF_ASCII", 0x7198},
+ {"linux/telephony.h", "PHONE_DTMF_OOB", 0x7199},
+ {"linux/telephony.h", "PHONE_EXCEPTION", 0x719a},
+ {"linux/telephony.h", "PHONE_PLAY_TONE", 0x719b},
+ {"linux/telephony.h", "PHONE_SET_TONE_ON_TIME", 0x719c},
+ {"linux/telephony.h", "PHONE_SET_TONE_OFF_TIME", 0x719d},
+ {"linux/telephony.h", "PHONE_GET_TONE_ON_TIME", 0x719e},
+ {"linux/telephony.h", "PHONE_GET_TONE_OFF_TIME", 0x719f},
+ {"linux/telephony.h", "PHONE_GET_TONE_STATE", 0x71a0},
+ {"linux/telephony.h", "PHONE_BUSY", 0x71a1},
+ {"linux/telephony.h", "PHONE_RINGBACK", 0x71a2},
+ {"linux/telephony.h", "PHONE_DIALTONE", 0x71a3},
+ {"linux/telephony.h", "PHONE_CPT_STOP", 0x71a4},
+ {"linux/telephony.h", "PHONE_PSTN_SET_STATE", 0x71a4},
+ {"linux/telephony.h", "PHONE_PSTN_GET_STATE", 0x71a5},
+ {"linux/telephony.h", "PHONE_WINK_DURATION", 0x71a6},
+ {"linux/telephony.h", "PHONE_QUERY_CODEC", 0x71a7},
+ {"linux/telephony.h", "PHONE_PSTN_LINETEST", 0x71a8},
+ {"linux/telephony.h", "PHONE_VAD", 0x71a9},
+ {"linux/telephony.h", "PHONE_WINK", 0x71aa},
+ {"linux/ixjuser.h", "IXJCTL_DSP_RESET", 0x71c0},
+ {"linux/ixjuser.h", "IXJCTL_CARDTYPE", 0x71c1},
+ {"linux/ixjuser.h", "IXJCTL_SERIAL", 0x71c2},
+ {"linux/ixjuser.h", "IXJCTL_DSP_TYPE", 0x71c3},
+ {"linux/ixjuser.h", "IXJCTL_DSP_VERSION", 0x71c4},
+ {"linux/ixjuser.h", "IXJCTL_DSP_IDLE", 0x71c5},
+ {"linux/ixjuser.h", "IXJCTL_TESTRAM", 0x71c6},
+ {"linux/ixjuser.h", "IXJCTL_SET_FILTER", 0x71c7},
+ {"linux/ixjuser.h", "IXJCTL_GET_FILTER_HIST", 0x71c8},
+ {"linux/ixjuser.h", "IXJCTL_INIT_TONE", 0x71c9},
+ {"linux/ixjuser.h", "IXJCTL_TONE_CADENCE", 0x71ca},
+ {"linux/ixjuser.h", "IXJCTL_AEC_START", 0x71cb},
+ {"linux/ixjuser.h", "IXJCTL_AEC_STOP", 0x71cc},
+ {"linux/ixjuser.h", "IXJCTL_AEC_GET_LEVEL", 0x71cd},
+ {"linux/ixjuser.h", "IXJCTL_SET_LED", 0x71ce},
+ {"linux/ixjuser.h", "IXJCTL_MIXER", 0x71cf},
+ {"linux/ixjuser.h", "IXJCTL_DAA_COEFF_SET", 0x71d0},
+ {"linux/ixjuser.h", "IXJCTL_PORT", 0x71d1},
+ {"linux/ixjuser.h", "IXJCTL_DAA_AGAIN", 0x71d2},
+ {"linux/ixjuser.h", "IXJCTL_PSTN_LINETEST", 0x71d3},
+ {"linux/ixjuser.h", "IXJCTL_CID", 0x71d4},
+ {"linux/ixjuser.h", "IXJCTL_POTS_PSTN", 0x71d5},
+ {"linux/ixjuser.h", "IXJCTL_FILTER_CADENCE", 0x71d6},
+ {"linux/ixjuser.h", "IXJCTL_PLAY_CID", 0x71d7},
+ {"linux/ixjuser.h", "IXJCTL_VMWI", 0x71d8},
+ {"linux/ixjuser.h", "IXJCTL_CIDCW", 0x71d9},
+ {"linux/ixjuser.h", "IXJCTL_VERSION", 0x71da},
+ {"linux/telephony.h", "PHONE_REC_VOLUME_LINEAR", 0x71db},
+ {"linux/telephony.h", "PHONE_PLAY_VOLUME_LINEAR", 0x71dc},
+ {"linux/ixjuser.h", "IXJCTL_SET_FILTER_RAW", 0x71dd},
+ {"linux/ixjuser.h", "IXJCTL_HZ", 0x71e0},
+ {"linux/ixjuser.h", "IXJCTL_RATE", 0x71e1},
+ {"linux/ixjuser.h", "IXJCTL_FRAMES_READ", 0x71e2},
+ {"linux/ixjuser.h", "IXJCTL_FRAMES_WRITTEN", 0x71e3},
+ {"linux/ixjuser.h", "IXJCTL_READ_WAIT", 0x71e4},
+ {"linux/ixjuser.h", "IXJCTL_WRITE_WAIT", 0x71e5},
+ {"linux/ixjuser.h", "IXJCTL_DRYBUFFER_READ", 0x71e6},
+ {"linux/ixjuser.h", "IXJCTL_DRYBUFFER_CLEAR", 0x71e7},
+ {"linux/ixjuser.h", "IXJCTL_DTMF_PRESCALE", 0x71e8},
+ {"linux/ixjuser.h", "IXJCTL_SIGCTL", 0x71e9},
+ {"linux/ixjuser.h", "IXJCTL_SC_RXG", 0x71ea},
+ {"linux/ixjuser.h", "IXJCTL_SC_TXG", 0x71eb},
+ {"linux/ixjuser.h", "IXJCTL_INTERCOM_START", 0x71fd},
+ {"linux/ixjuser.h", "IXJCTL_INTERCOM_STOP", 0x71fe},
+ {"linux/videotext.h", "TUNIOCGETINFO", 0x7201},
+ {"linux/msdos_fs.h", "VFAT_IOCTL_READDIR_BOTH", 0x7201},
+ {"linux/videotext.h", "TUNIOCRESET", 0x7202},
+ {"linux/msdos_fs.h", "VFAT_IOCTL_READDIR_SHORT", 0x7202},
+ {"linux/videotext.h", "TUNIOCSETFREQ", 0x7203},
+ {"linux/videotext.h", "TUNIOCGETFREQ", 0x7204},
+ {"linux/videotext.h", "TUNIOCSETCHAN", 0x7205},
+ {"linux/videotext.h", "TUNIOCGETCHAN", 0x7206},
+ {"linux/cdk.h", "STL_BINTR", 0x7314},
+ {"linux/cdk.h", "STL_BSTART", 0x7315},
+ {"linux/cdk.h", "STL_BSTOP", 0x7316},
+ {"linux/cdk.h", "STL_BRESET", 0x7317},
+ {"linux/cdk.h", "STL_GETPFLAG", 0x7350},
+ {"linux/cdk.h", "STL_SETPFLAG", 0x7351},
+ {"linux/if_ppp.h", "PPPIOCGCHAN", 0x7437},
+ {"linux/if_ppp.h", "PPPIOCATTCHAN", 0x7438},
+ {"linux/if_ppp.h", "PPPIOCDISCONN", 0x7439},
+ {"linux/if_ppp.h", "PPPIOCCONNECT", 0x743a},
+ {"linux/if_ppp.h", "PPPIOCSMRRU", 0x743b},
+ {"linux/if_ppp.h", "PPPIOCDETACH", 0x743c},
+ {"linux/if_ppp.h", "PPPIOCATTACH", 0x743d},
+ {"linux/if_ppp.h", "PPPIOCNEWUNIT", 0x743e},
+ {"linux/if_ppp.h", "PPPIOCGIDLE", 0x743f},
+ {"linux/if_ppp.h", "PPPIOCSDEBUG", 0x7440},
+ {"linux/if_ppp.h", "PPPIOCGDEBUG", 0x7441},
+ {"linux/if_ppp.h", "PPPIOCSACTIVE", 0x7446},
+ {"linux/if_ppp.h", "PPPIOCSPASS", 0x7447},
+ {"linux/if_ppp.h", "PPPIOCSNPMODE", 0x744b},
+ {"linux/if_ppp.h", "PPPIOCGNPMODE", 0x744c},
+ {"linux/if_ppp.h", "PPPIOCSCOMPRESS", 0x744d},
+ {"linux/if_ppp.h", "PPPIOCXFERUNIT", 0x744e},
+ {"linux/if_ppp.h", "PPPIOCSXASYNCMAP", 0x744f},
+ {"linux/if_ppp.h", "PPPIOCGXASYNCMAP", 0x7450},
+ {"linux/if_ppp.h", "PPPIOCSMAXCID", 0x7451},
+ {"linux/if_ppp.h", "PPPIOCSMRU", 0x7452},
+ {"linux/if_ppp.h", "PPPIOCGMRU", 0x7453},
+ {"linux/if_ppp.h", "PPPIOCSRASYNCMAP", 0x7454},
+ {"linux/if_ppp.h", "PPPIOCGRASYNCMAP", 0x7455},
+ {"linux/if_ppp.h", "PPPIOCGUNIT", 0x7456},
+ {"linux/if_ppp.h", "PPPIOCSASYNCMAP", 0x7457},
+ {"linux/if_ppp.h", "PPPIOCGASYNCMAP", 0x7458},
+ {"linux/if_ppp.h", "PPPIOCSFLAGS", 0x7459},
+ {"linux/jffs.h", "JFFS_PRINT_HASH", 0x745a},
+ {"linux/if_ppp.h", "PPPIOCGFLAGS", 0x745a},
+ {"linux/jffs.h", "JFFS_PRINT_TREE", 0x745b},
+ {"linux/jffs.h", "JFFS_GET_STATUS", 0x745c},
+ {"linux/isdn_ppp.h", "PPPIOCGCALLINFO", 0x7480},
+ {"linux/isdn_ppp.h", "PPPIOCBUNDLE", 0x7481},
+ {"linux/isdn_ppp.h", "PPPIOCGMPFLAGS", 0x7482},
+ {"linux/isdn_ppp.h", "PPPIOCSMPFLAGS", 0x7483},
+ {"linux/isdn_ppp.h", "PPPIOCSMPMTU", 0x7484},
+ {"linux/isdn_ppp.h", "PPPIOCSMPMRU", 0x7485},
+ {"linux/isdn_ppp.h", "PPPIOCGCOMPRESSORS", 0x7486},
+ {"linux/isdn_ppp.h", "PPPIOCSCOMPRESSOR", 0x7487},
+ {"linux/isdn_ppp.h", "PPPIOCGIFNAME", 0x7488},
+ {"linux/toshiba.h", "TOSH_SMM", 0x7490},
+ {"linux/smb_fs.h", "SMB_IOC_GETMOUNTUID", 0x7501},
+ {"linux/smb_fs.h", "SMB_IOC_NEWCONN", 0x7502},
+ {"linux/smb_fs.h", "SMB_IOC_GETMOUNTUID32", 0x7503},
+ {"linux/sonypi.h", "SONYPI_IOCGBRT", 0x7600},
+ {"linux/ext2_fs.h", "EXT2_IOC_GETVERSION", 0x7601},
+ {"linux/videodev.h", "VIDIOCGCAP", 0x7601},
+ {"linux/ext2_fs.h", "EXT2_IOC_SETVERSION", 0x7602},
+ {"linux/sonypi.h", "SONYPI_IOCGBAT1CAP", 0x7602},
+ {"linux/videodev.h", "VIDIOCGCHAN", 0x7602},
+ {"linux/sonypi.h", "SONYPI_IOCGBAT1REM", 0x7603},
+ {"linux/videodev.h", "VIDIOCSCHAN", 0x7603},
+ {"linux/sonypi.h", "SONYPI_IOCGBAT2CAP", 0x7604},
+ {"linux/videodev.h", "VIDIOCGTUNER", 0x7604},
+ {"linux/sonypi.h", "SONYPI_IOCGBAT2REM", 0x7605},
+ {"linux/videodev.h", "VIDIOCSTUNER", 0x7605},
+ {"linux/videodev.h", "VIDIOCGPICT", 0x7606},
+ {"linux/sonypi.h", "SONYPI_IOCGBATFLAGS", 0x7607},
+ {"linux/videodev.h", "VIDIOCSPICT", 0x7607},
+ {"linux/sonypi.h", "SONYPI_IOCGBLUE", 0x7608},
+ {"linux/videodev.h", "VIDIOCCAPTURE", 0x7608},
+ {"linux/sonypi.h", "SONYPI_IOCSBLUE", 0x7609},
+ {"linux/videodev.h", "VIDIOCGWIN", 0x7609},
+ {"linux/videodev.h", "VIDIOCSWIN", 0x760a},
+ {"linux/videodev.h", "VIDIOCGFBUF", 0x760b},
+ {"linux/videodev.h", "VIDIOCSFBUF", 0x760c},
+ {"linux/videodev.h", "VIDIOCKEY", 0x760d},
+ {"linux/videodev.h", "VIDIOCGFREQ", 0x760e},
+ {"linux/videodev.h", "VIDIOCSFREQ", 0x760f},
+ {"linux/videodev.h", "VIDIOCGAUDIO", 0x7610},
+ {"linux/videodev.h", "VIDIOCSAUDIO", 0x7611},
+ {"linux/videodev.h", "VIDIOCSYNC", 0x7612},
+ {"linux/videodev.h", "VIDIOCMCAPTURE", 0x7613},
+ {"linux/videodev.h", "VIDIOCGMBUF", 0x7614},
+ {"linux/videodev.h", "VIDIOCGUNIT", 0x7615},
+ {"linux/videodev.h", "VIDIOCGCAPTURE", 0x7616},
+ {"linux/videodev.h", "VIDIOCSCAPTURE", 0x7617},
+ {"linux/videodev.h", "VIDIOCSPLAYMODE", 0x7618},
+ {"linux/videodev.h", "VIDIOCSWRITEMODE", 0x7619},
+ {"linux/videodev.h", "VIDIOCGPLAYINFO", 0x761a},
+ {"linux/videodev.h", "VIDIOCSMICROCODE", 0x761b},
+ {"linux/videodev.h", "VIDIOCGVBIFMT", 0x761c},
+ {"linux/videodev.h", "VIDIOCSVBIFMT", 0x761d},
+ {"linux/meye.h", "MEYEIOC_G_PARAMS", 0x76c0},
+ {"linux/meye.h", "MEYEIOC_S_PARAMS", 0x76c1},
+ {"linux/meye.h", "MEYEIOC_QBUF_CAPT", 0x76c2},
+ {"linux/meye.h", "MEYEIOC_SYNC", 0x76c3},
+ {"linux/meye.h", "MEYEIOC_STILLCAPT", 0x76c4},
+ {"linux/meye.h", "MEYEIOC_STILLJCAPT", 0x76c5},
+ {"asm/sockios.h", "FIOSETOWN", 0x8901},
+ {"asm/sockios.h", "SIOCSPGRP", 0x8902},
+ {"asm/sockios.h", "FIOGETOWN", 0x8903},
+ {"asm/sockios.h", "SIOCGPGRP", 0x8904},
+ {"asm/sockios.h", "SIOCATMARK", 0x8905},
+ {"asm/sockios.h", "SIOCGSTAMP", 0x8906},
+ {"linux/sockios.h", "SIOCADDRT", 0x890b},
+ {"linux/sockios.h", "SIOCDELRT", 0x890c},
+ {"linux/sockios.h", "SIOCRTMSG", 0x890d},
+ {"linux/sockios.h", "SIOCGIFNAME", 0x8910},
+ {"linux/sockios.h", "SIOCSIFLINK", 0x8911},
+ {"linux/sockios.h", "SIOCGIFCONF", 0x8912},
+ {"linux/sockios.h", "SIOCGIFFLAGS", 0x8913},
+ {"linux/sockios.h", "SIOCSIFFLAGS", 0x8914},
+ {"linux/sockios.h", "SIOCGIFADDR", 0x8915},
+ {"linux/sockios.h", "SIOCSIFADDR", 0x8916},
+ {"linux/sockios.h", "SIOCGIFDSTADDR", 0x8917},
+ {"linux/sockios.h", "SIOCSIFDSTADDR", 0x8918},
+ {"linux/sockios.h", "SIOCGIFBRDADDR", 0x8919},
+ {"linux/sockios.h", "SIOCSIFBRDADDR", 0x891a},
+ {"linux/sockios.h", "SIOCGIFNETMASK", 0x891b},
+ {"linux/sockios.h", "SIOCSIFNETMASK", 0x891c},
+ {"linux/sockios.h", "SIOCGIFMETRIC", 0x891d},
+ {"linux/sockios.h", "SIOCSIFMETRIC", 0x891e},
+ {"linux/sockios.h", "SIOCGIFMEM", 0x891f},
+ {"linux/sockios.h", "SIOCSIFMEM", 0x8920},
+ {"linux/sockios.h", "SIOCGIFMTU", 0x8921},
+ {"linux/sockios.h", "SIOCSIFMTU", 0x8922},
+ {"linux/sockios.h", "SIOCSIFNAME", 0x8923},
+ {"linux/sockios.h", "SIOCSIFHWADDR", 0x8924},
+ {"linux/sockios.h", "SIOCGIFENCAP", 0x8925},
+ {"linux/sockios.h", "SIOCSIFENCAP", 0x8926},
+ {"linux/sockios.h", "SIOCGIFHWADDR", 0x8927},
+ {"linux/sockios.h", "SIOCGIFSLAVE", 0x8929},
+ {"linux/sockios.h", "SIOCSIFSLAVE", 0x8930},
+ {"linux/sockios.h", "SIOCADDMULTI", 0x8931},
+ {"linux/sockios.h", "SIOCDELMULTI", 0x8932},
+ {"linux/sockios.h", "SIOCGIFINDEX", 0x8933},
+ {"linux/sockios.h", "SIOCSIFPFLAGS", 0x8934},
+ {"linux/sockios.h", "SIOCGIFPFLAGS", 0x8935},
+ {"linux/sockios.h", "SIOCDIFADDR", 0x8936},
+ {"linux/sockios.h", "SIOCSIFHWBROADCAST", 0x8937},
+ {"linux/sockios.h", "SIOCGIFCOUNT", 0x8938},
+ {"linux/sockios.h", "SIOCGIFBR", 0x8940},
+ {"linux/sockios.h", "SIOCSIFBR", 0x8941},
+ {"linux/sockios.h", "SIOCGIFTXQLEN", 0x8942},
+ {"linux/sockios.h", "SIOCSIFTXQLEN", 0x8943},
+ {"linux/sockios.h", "SIOCGIFDIVERT", 0x8944},
+ {"linux/sockios.h", "SIOCSIFDIVERT", 0x8945},
+ {"linux/sockios.h", "SIOCETHTOOL", 0x8946},
+ {"linux/sockios.h", "SIOCGMIIPHY", 0x8947},
+ {"linux/sockios.h", "SIOCGMIIREG", 0x8948},
+ {"linux/sockios.h", "SIOCSMIIREG", 0x8949},
+ {"linux/sockios.h", "SIOCWANDEV", 0x894a},
+ {"linux/sockios.h", "SIOCDARP", 0x8953},
+ {"linux/sockios.h", "SIOCGARP", 0x8954},
+ {"linux/sockios.h", "SIOCSARP", 0x8955},
+ {"linux/sockios.h", "SIOCDRARP", 0x8960},
+ {"linux/sockios.h", "SIOCGRARP", 0x8961},
+ {"linux/sockios.h", "SIOCSRARP", 0x8962},
+ {"linux/sockios.h", "SIOCGIFMAP", 0x8970},
+ {"linux/sockios.h", "SIOCSIFMAP", 0x8971},
+ {"linux/sockios.h", "SIOCADDDLCI", 0x8980},
+ {"linux/sockios.h", "SIOCDELDLCI", 0x8981},
+ {"linux/sockios.h", "SIOCGIFVLAN", 0x8982},
+ {"linux/sockios.h", "SIOCSIFVLAN", 0x8983},
+ {"linux/sockios.h", "SIOCBONDENSLAVE", 0x8990},
+ {"linux/sockios.h", "SIOCBONDRELEASE", 0x8991},
+ {"linux/sockios.h", "SIOCBONDSETHWADDR", 0x8992},
+ {"linux/sockios.h", "SIOCBONDSLAVEINFOQUERY", 0x8993},
+ {"linux/sockios.h", "SIOCBONDINFOQUERY", 0x8994},
+ {"linux/sockios.h", "SIOCBONDCHANGEACTIVE", 0x8995},
+ {"linux/sockios.h", "SIOCPROTOPRIVATE", 0x89e0},
+ {"linux/dn.h", "SIOCSNETADDR", 0x89e0},
+ {"linux/dn.h", "SIOCGNETADDR", 0x89e1},
+ {"linux/sockios.h", "SIOCDEVPRIVATE", 0x89f0},
+ {"linux/wireless.h", "SIOCSIWCOMMIT", 0x8b00},
+ {"linux/wireless.h", "SIOCGIWNAME", 0x8b01},
+ {"linux/wireless.h", "SIOCSIWNWID", 0x8b02},
+ {"linux/wireless.h", "SIOCGIWNWID", 0x8b03},
+ {"linux/wireless.h", "SIOCSIWFREQ", 0x8b04},
+ {"linux/wireless.h", "SIOCGIWFREQ", 0x8b05},
+ {"linux/wireless.h", "SIOCSIWMODE", 0x8b06},
+ {"linux/wireless.h", "SIOCGIWMODE", 0x8b07},
+ {"linux/wireless.h", "SIOCSIWSENS", 0x8b08},
+ {"linux/wireless.h", "SIOCGIWSENS", 0x8b09},
+ {"linux/wireless.h", "SIOCSIWRANGE", 0x8b0a},
+ {"linux/wireless.h", "SIOCGIWRANGE", 0x8b0b},
+ {"linux/wireless.h", "SIOCSIWPRIV", 0x8b0c},
+ {"linux/wireless.h", "SIOCGIWPRIV", 0x8b0d},
+ {"linux/wireless.h", "SIOCSIWSTATS", 0x8b0e},
+ {"linux/wireless.h", "SIOCGIWSTATS", 0x8b0f},
+ {"linux/wireless.h", "SIOCSIWSPY", 0x8b10},
+ {"linux/wireless.h", "SIOCGIWSPY", 0x8b11},
+ {"linux/wireless.h", "SIOCSIWTHRSPY", 0x8b12},
+ {"linux/wireless.h", "SIOCGIWTHRSPY", 0x8b13},
+ {"linux/wireless.h", "SIOCSIWAP", 0x8b14},
+ {"linux/wireless.h", "SIOCGIWAP", 0x8b15},
+ {"linux/wireless.h", "SIOCGIWAPLIST", 0x8b17},
+ {"linux/wireless.h", "SIOCSIWSCAN", 0x8b18},
+ {"linux/wireless.h", "SIOCGIWSCAN", 0x8b19},
+ {"linux/wireless.h", "SIOCSIWESSID", 0x8b1a},
+ {"linux/wireless.h", "SIOCGIWESSID", 0x8b1b},
+ {"linux/wireless.h", "SIOCSIWNICKN", 0x8b1c},
+ {"linux/wireless.h", "SIOCGIWNICKN", 0x8b1d},
+ {"linux/wireless.h", "SIOCSIWRATE", 0x8b20},
+ {"linux/wireless.h", "SIOCGIWRATE", 0x8b21},
+ {"linux/wireless.h", "SIOCSIWRTS", 0x8b22},
+ {"linux/wireless.h", "SIOCGIWRTS", 0x8b23},
+ {"linux/wireless.h", "SIOCSIWFRAG", 0x8b24},
+ {"linux/wireless.h", "SIOCGIWFRAG", 0x8b25},
+ {"linux/wireless.h", "SIOCSIWTXPOW", 0x8b26},
+ {"linux/wireless.h", "SIOCGIWTXPOW", 0x8b27},
+ {"linux/wireless.h", "SIOCSIWRETRY", 0x8b28},
+ {"linux/wireless.h", "SIOCGIWRETRY", 0x8b29},
+ {"linux/wireless.h", "SIOCSIWENCODE", 0x8b2a},
+ {"linux/wireless.h", "SIOCGIWENCODE", 0x8b2b},
+ {"linux/wireless.h", "SIOCSIWPOWER", 0x8b2c},
+ {"linux/wireless.h", "SIOCGIWPOWER", 0x8b2d},
+ {"linux/wireless.h", "SIOCIWFIRSTPRIV", 0x8be0},
+ {"linux/wireless.h", "SIOCIWLASTPRIV", 0x8bff},
+ {"linux/auto_fs.h", "AUTOFS_IOC_READY", 0x9360},
+ {"linux/auto_fs.h", "AUTOFS_IOC_FAIL", 0x9361},
+ {"linux/auto_fs.h", "AUTOFS_IOC_CATATONIC", 0x9362},
+ {"linux/auto_fs.h", "AUTOFS_IOC_PROTOVER", 0x9363},
+ {"linux/auto_fs.h", "AUTOFS_IOC_SETTIMEOUT", 0x9364},
+ {"linux/auto_fs.h", "AUTOFS_IOC_EXPIRE", 0x9365},
+ {"linux/auto_fs4.h", "AUTOFS_IOC_EXPIRE_MULTI", 0x9366},
+ {"linux/nbd.h", "NBD_SET_SOCK", 0xab00},
+ {"linux/nbd.h", "NBD_SET_BLKSIZE", 0xab01},
+ {"linux/nbd.h", "NBD_SET_SIZE", 0xab02},
+ {"linux/nbd.h", "NBD_DO_IT", 0xab03},
+ {"linux/nbd.h", "NBD_CLEAR_SOCK", 0xab04},
+ {"linux/nbd.h", "NBD_CLEAR_QUE", 0xab05},
+ {"linux/nbd.h", "NBD_PRINT_DEBUG", 0xab06},
+ {"linux/nbd.h", "NBD_SET_SIZE_BLOCKS", 0xab07},
+ {"linux/nbd.h", "NBD_DISCONNECT", 0xab08},
+ {"linux/raw.h", "RAW_SETBIND", 0xac00},
+ {"linux/raw.h", "RAW_GETBIND", 0xac01},
+ {"linux/if_pppox.h", "PPPOEIOCSFWD", 0xb100},
+ {"linux/if_pppox.h", "PPPOEIOCDFWD", 0xb101},
+ {"linux/reiserfs_fs.h", "REISERFS_IOC_UNPACK", 0xcd01},
+ {"linux/dm-ioctl.h", "DM_VERSION", 0xfd00},
+ {"linux/dm-ioctl.h", "DM_REMOVE_ALL", 0xfd01},
+ {"linux/dm-ioctl.h", "DM_LIST_DEVICES", 0xfd02},
+ {"linux/dm-ioctl.h", "DM_DEV_CREATE", 0xfd03},
+ {"linux/dm-ioctl.h", "DM_DEV_REMOVE", 0xfd04},
+ {"linux/dm-ioctl.h", "DM_DEV_RENAME", 0xfd05},
+ {"linux/dm-ioctl.h", "DM_DEV_SUSPEND", 0xfd06},
+ {"linux/dm-ioctl.h", "DM_DEV_STATUS", 0xfd07},
+ {"linux/dm-ioctl.h", "DM_DEV_WAIT", 0xfd08},
+ {"linux/dm-ioctl.h", "DM_TABLE_LOAD", 0xfd09},
+ {"linux/dm-ioctl.h", "DM_TABLE_CLEAR", 0xfd0a},
+ {"linux/dm-ioctl.h", "DM_TABLE_DEPS", 0xfd0b},
+ {"linux/dm-ioctl.h", "DM_TABLE_STATUS", 0xfd0c},
+ {"linux/dm-ioctl.h", "DM_LIST_VERSIONS", 0xfd0d},
+ {"linux/lvm.h", "VG_CREATE_OLD", 0xfe00},
+ {"linux/lvm.h", "VG_REMOVE", 0xfe01},
+ {"linux/lvm.h", "VG_EXTEND", 0xfe03},
+ {"linux/lvm.h", "VG_REDUCE", 0xfe04},
+ {"linux/lvm.h", "VG_STATUS", 0xfe05},
+ {"linux/lvm.h", "VG_STATUS_GET_COUNT", 0xfe06},
+ {"linux/lvm.h", "VG_STATUS_GET_NAMELIST", 0xfe07},
+ {"linux/lvm.h", "VG_SET_EXTENDABLE", 0xfe08},
+ {"linux/lvm.h", "VG_RENAME", 0xfe09},
+ {"linux/lvm.h", "VG_CREATE", 0xfe0a},
+ {"linux/lvm.h", "LV_CREATE", 0xfe20},
+ {"linux/lvm.h", "LV_REMOVE", 0xfe21},
+ {"linux/lvm.h", "LV_ACTIVATE", 0xfe22},
+ {"linux/lvm.h", "LV_DEACTIVATE", 0xfe23},
+ {"linux/lvm.h", "LV_EXTEND", 0xfe24},
+ {"linux/lvm.h", "LV_REDUCE", 0xfe25},
+ {"linux/lvm.h", "LV_STATUS_BYNAME", 0xfe26},
+ {"linux/lvm.h", "LV_STATUS_BYINDEX", 0xfe27},
+ {"linux/lvm.h", "LV_SET_ACCESS", 0xfe28},
+ {"linux/lvm.h", "LV_SET_ALLOCATION", 0xfe29},
+ {"linux/lvm.h", "LV_SET_STATUS", 0xfe2a},
+ {"linux/lvm.h", "LE_REMAP", 0xfe2b},
+ {"linux/lvm.h", "LV_SNAPSHOT_USE_RATE", 0xfe2c},
+ {"linux/lvm.h", "LV_STATUS_BYDEV", 0xfe2e},
+ {"linux/lvm.h", "LV_RENAME", 0xfe2f},
+ {"linux/lvm.h", "LV_BMAP", 0xfe30},
+ {"linux/lvm.h", "PV_STATUS", 0xfe40},
+ {"linux/lvm.h", "PV_CHANGE", 0xfe41},
+ {"linux/lvm.h", "PV_FLUSH", 0xfe42},
+ {"linux/lvm.h", "PE_LOCK_UNLOCK", 0xfe50},
+ {"linux/lvm.h", "LVM_GET_IOP_VERSION", 0xfe98},
+ {"linux/lvm.h", "LVM_RESET", 0xfe99},
+ {"linux/lvm.h", "LVM_LOCK_LVM", 0xfe9a},
diff --git a/strace/linux/ioctlent.sh b/strace/linux/ioctlent.sh
new file mode 100644
index 0000000..8f3d74b
--- /dev/null
+++ b/strace/linux/ioctlent.sh
@@ -0,0 +1,89 @@
+#! /bin/sh
+#
+# Copyright (c) 2001 Wichert Akkerman <wichert@cistron.nl>
+# 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.
+#
+# $Id: ioctlent.sh,v 1.12 2004/10/06 22:31:38 roland Exp $
+#
+
+# Validate arg count.
+case $# in
+1)
+ dir="$1"
+ asm=asm
+ ;;
+2)
+ dir="$1"
+ asm="$2"
+ ;;
+*)
+ echo "usage: $0 include-directory [asm-subdirectory]" >&2
+ exit 1
+ ;;
+esac
+
+lookup_ioctls()
+{
+ type="$1"
+ shift
+
+ # 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 ) |
+ sed -ne "s,$asm/,asm/,g"'
+s/^\(.*\):[[:space:]]*#[[:space:]]*define[[:space:]]*\([A-Z0-9_]*\)[[:space:]]*\(0x'"$type"'..\).*/ { "\1", "\2", \3 },/p' \
+ >> ioctls.h
+}
+
+: > ioctls.h
+lookup_ioctls 22 scsi/sg.h
+lookup_ioctls 46 linux/fb.h
+lookup_ioctls 4B linux/kd.h
+lookup_ioctls 53 linux/cdrom.h scsi/scsi.h scsi/scsi_ioctl.h
+lookup_ioctls 54 $asm/ioctls.h
+lookup_ioctls 56 linux/vt.h
+lookup_ioctls '7[12]' linux/videotext.h
+lookup_ioctls 89 $asm/sockios.h linux/sockios.h
+lookup_ioctls 8B linux/wireless.h
+
+files="linux/* $asm/* scsi/* sound/*"
+
+# Build the list of all ioctls
+regexp='^[[:space:]]*#[[:space:]]*define[[:space:]]\+[A-Z][A-Z0-9_]*[[:space:]]\+_S\?\(IO\|IOW\|IOR\|IOWR\)\>'
+(cd $dir ; grep $regexp $files 2>/dev/null ) | \
+ sed -ne "s,$asm/,asm/,g"'
+s/^\(.*\):[[:space:]]*#[[:space:]]*define[[:space:]]*\([A-Z0-9_]*\)[[:space:]]*_S\?I.*(\([^[,]*\)[[:space:]]*,[[:space:]]*\([^,)]*\).*/ { "\1", "\2", _IOC(_IOC_NONE,\3,\4,0) },/p' \
+ >> ioctls.h
+
+# Some use a special base to offset their ioctls on. Extract that as well.
+: > ioctldefs.h
+
+bases=$(sed -ne 's/.*_IOC_NONE.*,[[:space:]]*\([A-Z][A-Z0-9_]\+\)[[:space:]+,].*/\1/p' ioctls.h | uniq | sort)
+for base in $bases ; do
+ echo "Looking for $base"
+ regexp="^[[:space:]]*#[[:space:]]*define[[:space:]]\+$base"
+ (cd $dir ; grep -h $regexp 2>/dev/null $files ) | \
+ grep -v '\<_IO' >> ioctldefs.h
+done
diff --git a/strace/linux/ioctlsort.c b/strace/linux/ioctlsort.c
new file mode 100644
index 0000000..f544d84
--- /dev/null
+++ b/strace/linux/ioctlsort.c
@@ -0,0 +1,52 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
+#include <stdint.h>
+
+#include <asm/ioctl.h>
+#include <linux/types.h>
+
+#include "ioctldefs.h"
+#include <linux/atmioc.h>
+
+struct ioctlent {
+ const char* header;
+ const char* name;
+ unsigned long code;
+};
+
+struct ioctlent ioctls[] = {
+#include "ioctls.h"
+};
+
+int nioctls = sizeof(ioctls) / sizeof(ioctls[0]);
+
+
+int compare(const void* a, const void* b) {
+ unsigned long code1 = ((struct ioctlent *) a)->code;
+ unsigned long code2 = ((struct ioctlent *) b)->code;
+ const char *name1 = ((struct ioctlent *) a)->name;
+ const char *name2 = ((struct ioctlent *) b)->name;
+ return (code1 > code2) ? 1 : (code1 < code2) ? -1 : strcmp (name1, name2);
+}
+
+
+int main(int argc, char** argv) {
+ int i;
+
+#ifdef POWERPC /* unspeakable kludge */
+ for (i = 0; i < nioctls; i++)
+ ioctls[i].code &= ~_IOC_DIRMASK;
+#endif
+
+ qsort(ioctls, nioctls, sizeof(ioctls[0]), compare);
+ puts ("\t/* Generated by ioctlsort */");
+ for (i = 0; i < nioctls; i++)
+ if (i == 0 || ioctls[i].code != ioctls[i-1].code ||
+ strcmp (ioctls[i].name, ioctls[i-1].name))
+ printf("\t{\"%s\",\t\"%s\",\t%#lx},\n",
+ ioctls[i].header, ioctls[i].name, ioctls[i].code);
+
+ return 0;
+}
diff --git a/strace/linux/mips/errnoent.h b/strace/linux/mips/errnoent.h
new file mode 100644
index 0000000..b22ee87
--- /dev/null
+++ b/strace/linux/mips/errnoent.h
@@ -0,0 +1,1135 @@
+ "ERRNO_0", /* 0 */
+ "EPERM", /* 1 */
+ "ENOENT", /* 2 */
+ "ESRCH", /* 3 */
+ "EINTR", /* 4 */
+ "EIO", /* 5 */
+ "ENXIO", /* 6 */
+ "E2BIG", /* 7 */
+ "ENOEXEC", /* 8 */
+ "EBADF", /* 9 */
+ "ECHILD", /* 10 */
+ "EAGAIN", /* 11 */
+ "ENOMEM", /* 12 */
+ "EACCES", /* 13 */
+ "EFAULT", /* 14 */
+ "ENOTBLK", /* 15 */
+ "EBUSY", /* 16 */
+ "EEXIST", /* 17 */
+ "EXDEV", /* 18 */
+ "ENODEV", /* 19 */
+ "ENOTDIR", /* 20 */
+ "EISDIR", /* 21 */
+ "EINVAL", /* 22 */
+ "ENFILE", /* 23 */
+ "EMFILE", /* 24 */
+ "ENOTTY", /* 25 */
+ "ETXTBSY", /* 26 */
+ "EFBIG", /* 27 */
+ "ENOSPC", /* 28 */
+ "ESPIPE", /* 29 */
+ "EROFS", /* 30 */
+ "EMLINK", /* 31 */
+ "EPIPE", /* 32 */
+ "EDOM", /* 33 */
+ "ERANGE", /* 34 */
+ "ENOMSG", /* 35 */
+ "EIDRM", /* 36 */
+ "ECHRNG", /* 37 */
+ "EL2NSYNC", /* 38 */
+ "EL3HLT", /* 39 */
+ "EL3RST", /* 40 */
+ "ELNRNG", /* 41 */
+ "EUNATCH", /* 42 */
+ "ENOCSI", /* 43 */
+ "EL2HLT", /* 44 */
+ "EDEADLK", /* 45 */
+ "ENOLCK", /* 46 */
+ "ERRNO_47", /* 47 */
+ "ERRNO_48", /* 48 */
+ "ERRNO_49", /* 49 */
+ "EBADE", /* 50 */
+ "EBADR", /* 51 */
+ "EXFULL", /* 52 */
+ "ENOANO", /* 53 */
+ "EBADRQC", /* 54 */
+ "EBADSLT", /* 55 */
+ "EDEADLOCK", /* 56 */
+ "ERRNO_57", /* 57 */
+ "ERRNO_58", /* 58 */
+ "EBFONT", /* 59 */
+ "ENOSTR", /* 60 */
+ "ENODATA", /* 61 */
+ "ETIME", /* 62 */
+ "ENOSR", /* 63 */
+ "ENONET", /* 64 */
+ "ENOPKG", /* 65 */
+ "EREMOTE", /* 66 */
+ "ENOLINK", /* 67 */
+ "EADV", /* 68 */
+ "ESRMNT", /* 69 */
+ "ECOMM", /* 70 */
+ "EPROTO", /* 71 */
+ "ERRNO_72", /* 72 */
+ "EDOTDOT", /* 73 */
+ "EMULTIHOP", /* 74 */
+ "ERRNO_75", /* 75 */
+ "ERRNO_76", /* 76 */
+ "EBADMSG", /* 77 */
+ "ENAMETOOLONG", /* 78 */
+ "EOVERFLOW", /* 79 */
+ "ENOTUNIQ", /* 80 */
+ "EBADFD", /* 81 */
+ "EREMCHG", /* 82 */
+ "ELIBACC", /* 83 */
+ "ELIBBAD", /* 84 */
+ "ELIBSCN", /* 85 */
+ "ELIBMAX", /* 86 */
+ "ELIBEXEC", /* 87 */
+ "EILSEQ", /* 88 */
+ "ENOSYS", /* 89 */
+ "ELOOP", /* 90 */
+ "ERESTART", /* 91 */
+ "ESTRPIPE", /* 92 */
+ "ENOTEMPTY", /* 93 */
+ "EUSERS", /* 94 */
+ "ENOTSOCK", /* 95 */
+ "EDESTADDRREQ", /* 96 */
+ "EMSGSIZE", /* 97 */
+ "EPROTOTYPE", /* 98 */
+ "ENOPROTOOPT", /* 99 */
+ "ERRNO_100", /* 100 */
+ "ERRNO_101", /* 101 */
+ "ERRNO_102", /* 102 */
+ "ERRNO_103", /* 103 */
+ "ERRNO_104", /* 104 */
+ "ERRNO_105", /* 105 */
+ "ERRNO_106", /* 106 */
+ "ERRNO_107", /* 107 */
+ "ERRNO_108", /* 108 */
+ "ERRNO_109", /* 109 */
+ "ERRNO_110", /* 110 */
+ "ERRNO_111", /* 111 */
+ "ERRNO_112", /* 112 */
+ "ERRNO_113", /* 113 */
+ "ERRNO_114", /* 114 */
+ "ERRNO_115", /* 115 */
+ "ERRNO_116", /* 116 */
+ "ERRNO_117", /* 117 */
+ "ERRNO_118", /* 118 */
+ "ERRNO_119", /* 119 */
+ "EPROTONOSUPPORT", /* 120 */
+ "ESOCKTNOSUPPORT", /* 121 */
+ "EOPNOTSUPP", /* 122 */
+ "EPFNOSUPPORT", /* 123 */
+ "EAFNOSUPPORT", /* 124 */
+ "EADDRINUSE", /* 125 */
+ "EADDRNOTAVAIL", /* 126 */
+ "ENETDOWN", /* 127 */
+ "ENETUNREACH", /* 128 */
+ "ENETRESET", /* 129 */
+ "ECONNABORTED", /* 130 */
+ "ECONNRESET", /* 131 */
+ "ENOBUFS", /* 132 */
+ "EISCONN", /* 133 */
+ "ENOTCONN", /* 134 */
+ "EUCLEAN", /* 135 */
+ "ERRNO_136", /* 136 */
+ "ENOTNAM", /* 137 */
+ "ENAVAIL", /* 138 */
+ "EISNAM", /* 139 */
+ "EREMOTEIO", /* 140 */
+ "EINIT", /* 141 */
+ "EREMDEV", /* 142 */
+ "ESHUTDOWN", /* 143 */
+ "ETOOMANYREFS", /* 144 */
+ "ETIMEDOUT", /* 145 */
+ "ECONNREFUSED", /* 146 */
+ "EHOSTDOWN", /* 147 */
+ "EHOSTUNREACH", /* 148 */
+ "EALREADY", /* 149 */
+ "EINPROGRESS", /* 150 */
+ "ESTALE", /* 151 */
+ "ERRNO_152", /* 152 */
+ "ERRNO_153", /* 153 */
+ "ERRNO_154", /* 154 */
+ "ERRNO_155", /* 155 */
+ "ERRNO_156", /* 156 */
+ "ERRNO_157", /* 157 */
+ "ECANCELED", /* 158 */
+ "ENOMEDIUM", /* 159 */
+ "EMEDIUMTYPE", /* 160 */
+ "ERRNO_161", /* 161 */
+ "ERRNO_162", /* 162 */
+ "ERRNO_163", /* 163 */
+ "ERRNO_164", /* 164 */
+ "ERRNO_165", /* 165 */
+ "ERRNO_166", /* 166 */
+ "ERRNO_167", /* 167 */
+ "ERRNO_168", /* 168 */
+ "ERRNO_169", /* 169 */
+ "ERRNO_170", /* 170 */
+ "ERRNO_171", /* 171 */
+ "ERRNO_172", /* 172 */
+ "ERRNO_173", /* 173 */
+ "ERRNO_174", /* 174 */
+ "ERRNO_175", /* 175 */
+ "ERRNO_176", /* 176 */
+ "ERRNO_177", /* 177 */
+ "ERRNO_178", /* 178 */
+ "ERRNO_179", /* 179 */
+ "ERRNO_180", /* 180 */
+ "ERRNO_181", /* 181 */
+ "ERRNO_182", /* 182 */
+ "ERRNO_183", /* 183 */
+ "ERRNO_184", /* 184 */
+ "ERRNO_185", /* 185 */
+ "ERRNO_186", /* 186 */
+ "ERRNO_187", /* 187 */
+ "ERRNO_188", /* 188 */
+ "ERRNO_189", /* 189 */
+ "ERRNO_190", /* 190 */
+ "ERRNO_191", /* 191 */
+ "ERRNO_192", /* 192 */
+ "ERRNO_193", /* 193 */
+ "ERRNO_194", /* 194 */
+ "ERRNO_195", /* 195 */
+ "ERRNO_196", /* 196 */
+ "ERRNO_197", /* 197 */
+ "ERRNO_198", /* 198 */
+ "ERRNO_199", /* 199 */
+ "ERRNO_200", /* 200 */
+ "ERRNO_201", /* 201 */
+ "ERRNO_202", /* 202 */
+ "ERRNO_203", /* 203 */
+ "ERRNO_204", /* 204 */
+ "ERRNO_205", /* 205 */
+ "ERRNO_206", /* 206 */
+ "ERRNO_207", /* 207 */
+ "ERRNO_208", /* 208 */
+ "ERRNO_209", /* 209 */
+ "ERRNO_210", /* 210 */
+ "ERRNO_211", /* 211 */
+ "ERRNO_212", /* 212 */
+ "ERRNO_213", /* 213 */
+ "ERRNO_214", /* 214 */
+ "ERRNO_215", /* 215 */
+ "ERRNO_216", /* 216 */
+ "ERRNO_217", /* 217 */
+ "ERRNO_218", /* 218 */
+ "ERRNO_219", /* 219 */
+ "ERRNO_220", /* 220 */
+ "ERRNO_221", /* 221 */
+ "ERRNO_222", /* 222 */
+ "ERRNO_223", /* 223 */
+ "ERRNO_224", /* 224 */
+ "ERRNO_225", /* 225 */
+ "ERRNO_226", /* 226 */
+ "ERRNO_227", /* 227 */
+ "ERRNO_228", /* 228 */
+ "ERRNO_229", /* 229 */
+ "ERRNO_230", /* 230 */
+ "ERRNO_231", /* 231 */
+ "ERRNO_232", /* 232 */
+ "ERRNO_233", /* 233 */
+ "ERRNO_234", /* 234 */
+ "ERRNO_235", /* 235 */
+ "ERRNO_236", /* 236 */
+ "ERRNO_237", /* 237 */
+ "ERRNO_238", /* 238 */
+ "ERRNO_239", /* 239 */
+ "ERRNO_240", /* 240 */
+ "ERRNO_241", /* 241 */
+ "ERRNO_242", /* 242 */
+ "ERRNO_243", /* 243 */
+ "ERRNO_244", /* 244 */
+ "ERRNO_245", /* 245 */
+ "ERRNO_246", /* 246 */
+ "ERRNO_247", /* 247 */
+ "ERRNO_248", /* 248 */
+ "ERRNO_249", /* 249 */
+ "ERRNO_250", /* 250 */
+ "ERRNO_251", /* 251 */
+ "ERRNO_252", /* 252 */
+ "ERRNO_253", /* 253 */
+ "ERRNO_254", /* 254 */
+ "ERRNO_255", /* 255 */
+ "ERRNO_256", /* 256 */
+ "ERRNO_257", /* 257 */
+ "ERRNO_258", /* 258 */
+ "ERRNO_259", /* 259 */
+ "ERRNO_260", /* 260 */
+ "ERRNO_261", /* 261 */
+ "ERRNO_262", /* 262 */
+ "ERRNO_263", /* 263 */
+ "ERRNO_264", /* 264 */
+ "ERRNO_265", /* 265 */
+ "ERRNO_266", /* 266 */
+ "ERRNO_267", /* 267 */
+ "ERRNO_268", /* 268 */
+ "ERRNO_269", /* 269 */
+ "ERRNO_270", /* 270 */
+ "ERRNO_271", /* 271 */
+ "ERRNO_272", /* 272 */
+ "ERRNO_273", /* 273 */
+ "ERRNO_274", /* 274 */
+ "ERRNO_275", /* 275 */
+ "ERRNO_276", /* 276 */
+ "ERRNO_277", /* 277 */
+ "ERRNO_278", /* 278 */
+ "ERRNO_279", /* 279 */
+ "ERRNO_280", /* 280 */
+ "ERRNO_281", /* 281 */
+ "ERRNO_282", /* 282 */
+ "ERRNO_283", /* 283 */
+ "ERRNO_284", /* 284 */
+ "ERRNO_285", /* 285 */
+ "ERRNO_286", /* 286 */
+ "ERRNO_287", /* 287 */
+ "ERRNO_288", /* 288 */
+ "ERRNO_289", /* 289 */
+ "ERRNO_290", /* 290 */
+ "ERRNO_291", /* 291 */
+ "ERRNO_292", /* 292 */
+ "ERRNO_293", /* 293 */
+ "ERRNO_294", /* 294 */
+ "ERRNO_295", /* 295 */
+ "ERRNO_296", /* 296 */
+ "ERRNO_297", /* 297 */
+ "ERRNO_298", /* 298 */
+ "ERRNO_299", /* 299 */
+ "ERRNO_300", /* 300 */
+ "ERRNO_301", /* 301 */
+ "ERRNO_302", /* 302 */
+ "ERRNO_303", /* 303 */
+ "ERRNO_304", /* 304 */
+ "ERRNO_305", /* 305 */
+ "ERRNO_306", /* 306 */
+ "ERRNO_307", /* 307 */
+ "ERRNO_308", /* 308 */
+ "ERRNO_309", /* 309 */
+ "ERRNO_310", /* 310 */
+ "ERRNO_311", /* 311 */
+ "ERRNO_312", /* 312 */
+ "ERRNO_313", /* 313 */
+ "ERRNO_314", /* 314 */
+ "ERRNO_315", /* 315 */
+ "ERRNO_316", /* 316 */
+ "ERRNO_317", /* 317 */
+ "ERRNO_318", /* 318 */
+ "ERRNO_319", /* 319 */
+ "ERRNO_320", /* 320 */
+ "ERRNO_321", /* 321 */
+ "ERRNO_322", /* 322 */
+ "ERRNO_323", /* 323 */
+ "ERRNO_324", /* 324 */
+ "ERRNO_325", /* 325 */
+ "ERRNO_326", /* 326 */
+ "ERRNO_327", /* 327 */
+ "ERRNO_328", /* 328 */
+ "ERRNO_329", /* 329 */
+ "ERRNO_330", /* 330 */
+ "ERRNO_331", /* 331 */
+ "ERRNO_332", /* 332 */
+ "ERRNO_333", /* 333 */
+ "ERRNO_334", /* 334 */
+ "ERRNO_335", /* 335 */
+ "ERRNO_336", /* 336 */
+ "ERRNO_337", /* 337 */
+ "ERRNO_338", /* 338 */
+ "ERRNO_339", /* 339 */
+ "ERRNO_340", /* 340 */
+ "ERRNO_341", /* 341 */
+ "ERRNO_342", /* 342 */
+ "ERRNO_343", /* 343 */
+ "ERRNO_344", /* 344 */
+ "ERRNO_345", /* 345 */
+ "ERRNO_346", /* 346 */
+ "ERRNO_347", /* 347 */
+ "ERRNO_348", /* 348 */
+ "ERRNO_349", /* 349 */
+ "ERRNO_350", /* 350 */
+ "ERRNO_351", /* 351 */
+ "ERRNO_352", /* 352 */
+ "ERRNO_353", /* 353 */
+ "ERRNO_354", /* 354 */
+ "ERRNO_355", /* 355 */
+ "ERRNO_356", /* 356 */
+ "ERRNO_357", /* 357 */
+ "ERRNO_358", /* 358 */
+ "ERRNO_359", /* 359 */
+ "ERRNO_360", /* 360 */
+ "ERRNO_361", /* 361 */
+ "ERRNO_362", /* 362 */
+ "ERRNO_363", /* 363 */
+ "ERRNO_364", /* 364 */
+ "ERRNO_365", /* 365 */
+ "ERRNO_366", /* 366 */
+ "ERRNO_367", /* 367 */
+ "ERRNO_368", /* 368 */
+ "ERRNO_369", /* 369 */
+ "ERRNO_370", /* 370 */
+ "ERRNO_371", /* 371 */
+ "ERRNO_372", /* 372 */
+ "ERRNO_373", /* 373 */
+ "ERRNO_374", /* 374 */
+ "ERRNO_375", /* 375 */
+ "ERRNO_376", /* 376 */
+ "ERRNO_377", /* 377 */
+ "ERRNO_378", /* 378 */
+ "ERRNO_379", /* 379 */
+ "ERRNO_380", /* 380 */
+ "ERRNO_381", /* 381 */
+ "ERRNO_382", /* 382 */
+ "ERRNO_383", /* 383 */
+ "ERRNO_384", /* 384 */
+ "ERRNO_385", /* 385 */
+ "ERRNO_386", /* 386 */
+ "ERRNO_387", /* 387 */
+ "ERRNO_388", /* 388 */
+ "ERRNO_389", /* 389 */
+ "ERRNO_390", /* 390 */
+ "ERRNO_391", /* 391 */
+ "ERRNO_392", /* 392 */
+ "ERRNO_393", /* 393 */
+ "ERRNO_394", /* 394 */
+ "ERRNO_395", /* 395 */
+ "ERRNO_396", /* 396 */
+ "ERRNO_397", /* 397 */
+ "ERRNO_398", /* 398 */
+ "ERRNO_399", /* 399 */
+ "ERRNO_400", /* 400 */
+ "ERRNO_401", /* 401 */
+ "ERRNO_402", /* 402 */
+ "ERRNO_403", /* 403 */
+ "ERRNO_404", /* 404 */
+ "ERRNO_405", /* 405 */
+ "ERRNO_406", /* 406 */
+ "ERRNO_407", /* 407 */
+ "ERRNO_408", /* 408 */
+ "ERRNO_409", /* 409 */
+ "ERRNO_410", /* 410 */
+ "ERRNO_411", /* 411 */
+ "ERRNO_412", /* 412 */
+ "ERRNO_413", /* 413 */
+ "ERRNO_414", /* 414 */
+ "ERRNO_415", /* 415 */
+ "ERRNO_416", /* 416 */
+ "ERRNO_417", /* 417 */
+ "ERRNO_418", /* 418 */
+ "ERRNO_419", /* 419 */
+ "ERRNO_420", /* 420 */
+ "ERRNO_421", /* 421 */
+ "ERRNO_422", /* 422 */
+ "ERRNO_423", /* 423 */
+ "ERRNO_424", /* 424 */
+ "ERRNO_425", /* 425 */
+ "ERRNO_426", /* 426 */
+ "ERRNO_427", /* 427 */
+ "ERRNO_428", /* 428 */
+ "ERRNO_429", /* 429 */
+ "ERRNO_430", /* 430 */
+ "ERRNO_431", /* 431 */
+ "ERRNO_432", /* 432 */
+ "ERRNO_433", /* 433 */
+ "ERRNO_434", /* 434 */
+ "ERRNO_435", /* 435 */
+ "ERRNO_436", /* 436 */
+ "ERRNO_437", /* 437 */
+ "ERRNO_438", /* 438 */
+ "ERRNO_439", /* 439 */
+ "ERRNO_440", /* 440 */
+ "ERRNO_441", /* 441 */
+ "ERRNO_442", /* 442 */
+ "ERRNO_443", /* 443 */
+ "ERRNO_444", /* 444 */
+ "ERRNO_445", /* 445 */
+ "ERRNO_446", /* 446 */
+ "ERRNO_447", /* 447 */
+ "ERRNO_448", /* 448 */
+ "ERRNO_449", /* 449 */
+ "ERRNO_450", /* 450 */
+ "ERRNO_451", /* 451 */
+ "ERRNO_452", /* 452 */
+ "ERRNO_453", /* 453 */
+ "ERRNO_454", /* 454 */
+ "ERRNO_455", /* 455 */
+ "ERRNO_456", /* 456 */
+ "ERRNO_457", /* 457 */
+ "ERRNO_458", /* 458 */
+ "ERRNO_459", /* 459 */
+ "ERRNO_460", /* 460 */
+ "ERRNO_461", /* 461 */
+ "ERRNO_462", /* 462 */
+ "ERRNO_463", /* 463 */
+ "ERRNO_464", /* 464 */
+ "ERRNO_465", /* 465 */
+ "ERRNO_466", /* 466 */
+ "ERRNO_467", /* 467 */
+ "ERRNO_468", /* 468 */
+ "ERRNO_469", /* 469 */
+ "ERRNO_470", /* 470 */
+ "ERRNO_471", /* 471 */
+ "ERRNO_472", /* 472 */
+ "ERRNO_473", /* 473 */
+ "ERRNO_474", /* 474 */
+ "ERRNO_475", /* 475 */
+ "ERRNO_476", /* 476 */
+ "ERRNO_477", /* 477 */
+ "ERRNO_478", /* 478 */
+ "ERRNO_479", /* 479 */
+ "ERRNO_480", /* 480 */
+ "ERRNO_481", /* 481 */
+ "ERRNO_482", /* 482 */
+ "ERRNO_483", /* 483 */
+ "ERRNO_484", /* 484 */
+ "ERRNO_485", /* 485 */
+ "ERRNO_486", /* 486 */
+ "ERRNO_487", /* 487 */
+ "ERRNO_488", /* 488 */
+ "ERRNO_489", /* 489 */
+ "ERRNO_490", /* 490 */
+ "ERRNO_491", /* 491 */
+ "ERRNO_492", /* 492 */
+ "ERRNO_493", /* 493 */
+ "ERRNO_494", /* 494 */
+ "ERRNO_495", /* 495 */
+ "ERRNO_496", /* 496 */
+ "ERRNO_497", /* 497 */
+ "ERRNO_498", /* 498 */
+ "ERRNO_499", /* 499 */
+ "ERRNO_500", /* 500 */
+ "ERRNO_501", /* 501 */
+ "ERRNO_502", /* 502 */
+ "ERRNO_503", /* 503 */
+ "ERRNO_504", /* 504 */
+ "ERRNO_505", /* 505 */
+ "ERRNO_506", /* 506 */
+ "ERRNO_507", /* 507 */
+ "ERRNO_508", /* 508 */
+ "ERRNO_509", /* 509 */
+ "ERRNO_510", /* 510 */
+ "ERRNO_511", /* 511 */
+ "ERRNO_512", /* 512 */
+ "ERRNO_513", /* 513 */
+ "ERRNO_514", /* 514 */
+ "ERRNO_515", /* 515 */
+ "ERRNO_516", /* 516 */
+ "ERRNO_517", /* 517 */
+ "ERRNO_518", /* 518 */
+ "ERRNO_519", /* 519 */
+ "ERRNO_520", /* 520 */
+ "ERRNO_521", /* 521 */
+ "ERRNO_522", /* 522 */
+ "ERRNO_523", /* 523 */
+ "ERRNO_524", /* 524 */
+ "ERRNO_525", /* 525 */
+ "ERRNO_526", /* 526 */
+ "ERRNO_527", /* 527 */
+ "ERRNO_528", /* 528 */
+ "ERRNO_529", /* 529 */
+ "ERRNO_530", /* 530 */
+ "ERRNO_531", /* 531 */
+ "ERRNO_532", /* 532 */
+ "ERRNO_533", /* 533 */
+ "ERRNO_534", /* 534 */
+ "ERRNO_535", /* 535 */
+ "ERRNO_536", /* 536 */
+ "ERRNO_537", /* 537 */
+ "ERRNO_538", /* 538 */
+ "ERRNO_539", /* 539 */
+ "ERRNO_540", /* 540 */
+ "ERRNO_541", /* 541 */
+ "ERRNO_542", /* 542 */
+ "ERRNO_543", /* 543 */
+ "ERRNO_544", /* 544 */
+ "ERRNO_545", /* 545 */
+ "ERRNO_546", /* 546 */
+ "ERRNO_547", /* 547 */
+ "ERRNO_548", /* 548 */
+ "ERRNO_549", /* 549 */
+ "ERRNO_550", /* 550 */
+ "ERRNO_551", /* 551 */
+ "ERRNO_552", /* 552 */
+ "ERRNO_553", /* 553 */
+ "ERRNO_554", /* 554 */
+ "ERRNO_555", /* 555 */
+ "ERRNO_556", /* 556 */
+ "ERRNO_557", /* 557 */
+ "ERRNO_558", /* 558 */
+ "ERRNO_559", /* 559 */
+ "ERRNO_560", /* 560 */
+ "ERRNO_561", /* 561 */
+ "ERRNO_562", /* 562 */
+ "ERRNO_563", /* 563 */
+ "ERRNO_564", /* 564 */
+ "ERRNO_565", /* 565 */
+ "ERRNO_566", /* 566 */
+ "ERRNO_567", /* 567 */
+ "ERRNO_568", /* 568 */
+ "ERRNO_569", /* 569 */
+ "ERRNO_570", /* 570 */
+ "ERRNO_571", /* 571 */
+ "ERRNO_572", /* 572 */
+ "ERRNO_573", /* 573 */
+ "ERRNO_574", /* 574 */
+ "ERRNO_575", /* 575 */
+ "ERRNO_576", /* 576 */
+ "ERRNO_577", /* 577 */
+ "ERRNO_578", /* 578 */
+ "ERRNO_579", /* 579 */
+ "ERRNO_580", /* 580 */
+ "ERRNO_581", /* 581 */
+ "ERRNO_582", /* 582 */
+ "ERRNO_583", /* 583 */
+ "ERRNO_584", /* 584 */
+ "ERRNO_585", /* 585 */
+ "ERRNO_586", /* 586 */
+ "ERRNO_587", /* 587 */
+ "ERRNO_588", /* 588 */
+ "ERRNO_589", /* 589 */
+ "ERRNO_590", /* 590 */
+ "ERRNO_591", /* 591 */
+ "ERRNO_592", /* 592 */
+ "ERRNO_593", /* 593 */
+ "ERRNO_594", /* 594 */
+ "ERRNO_595", /* 595 */
+ "ERRNO_596", /* 596 */
+ "ERRNO_597", /* 597 */
+ "ERRNO_598", /* 598 */
+ "ERRNO_599", /* 599 */
+ "ERRNO_600", /* 600 */
+ "ERRNO_601", /* 601 */
+ "ERRNO_602", /* 602 */
+ "ERRNO_603", /* 603 */
+ "ERRNO_604", /* 604 */
+ "ERRNO_605", /* 605 */
+ "ERRNO_606", /* 606 */
+ "ERRNO_607", /* 607 */
+ "ERRNO_608", /* 608 */
+ "ERRNO_609", /* 609 */
+ "ERRNO_610", /* 610 */
+ "ERRNO_611", /* 611 */
+ "ERRNO_612", /* 612 */
+ "ERRNO_613", /* 613 */
+ "ERRNO_614", /* 614 */
+ "ERRNO_615", /* 615 */
+ "ERRNO_616", /* 616 */
+ "ERRNO_617", /* 617 */
+ "ERRNO_618", /* 618 */
+ "ERRNO_619", /* 619 */
+ "ERRNO_620", /* 620 */
+ "ERRNO_621", /* 621 */
+ "ERRNO_622", /* 622 */
+ "ERRNO_623", /* 623 */
+ "ERRNO_624", /* 624 */
+ "ERRNO_625", /* 625 */
+ "ERRNO_626", /* 626 */
+ "ERRNO_627", /* 627 */
+ "ERRNO_628", /* 628 */
+ "ERRNO_629", /* 629 */
+ "ERRNO_630", /* 630 */
+ "ERRNO_631", /* 631 */
+ "ERRNO_632", /* 632 */
+ "ERRNO_633", /* 633 */
+ "ERRNO_634", /* 634 */
+ "ERRNO_635", /* 635 */
+ "ERRNO_636", /* 636 */
+ "ERRNO_637", /* 637 */
+ "ERRNO_638", /* 638 */
+ "ERRNO_639", /* 639 */
+ "ERRNO_640", /* 640 */
+ "ERRNO_641", /* 641 */
+ "ERRNO_642", /* 642 */
+ "ERRNO_643", /* 643 */
+ "ERRNO_644", /* 644 */
+ "ERRNO_645", /* 645 */
+ "ERRNO_646", /* 646 */
+ "ERRNO_647", /* 647 */
+ "ERRNO_648", /* 648 */
+ "ERRNO_649", /* 649 */
+ "ERRNO_650", /* 650 */
+ "ERRNO_651", /* 651 */
+ "ERRNO_652", /* 652 */
+ "ERRNO_653", /* 653 */
+ "ERRNO_654", /* 654 */
+ "ERRNO_655", /* 655 */
+ "ERRNO_656", /* 656 */
+ "ERRNO_657", /* 657 */
+ "ERRNO_658", /* 658 */
+ "ERRNO_659", /* 659 */
+ "ERRNO_660", /* 660 */
+ "ERRNO_661", /* 661 */
+ "ERRNO_662", /* 662 */
+ "ERRNO_663", /* 663 */
+ "ERRNO_664", /* 664 */
+ "ERRNO_665", /* 665 */
+ "ERRNO_666", /* 666 */
+ "ERRNO_667", /* 667 */
+ "ERRNO_668", /* 668 */
+ "ERRNO_669", /* 669 */
+ "ERRNO_670", /* 670 */
+ "ERRNO_671", /* 671 */
+ "ERRNO_672", /* 672 */
+ "ERRNO_673", /* 673 */
+ "ERRNO_674", /* 674 */
+ "ERRNO_675", /* 675 */
+ "ERRNO_676", /* 676 */
+ "ERRNO_677", /* 677 */
+ "ERRNO_678", /* 678 */
+ "ERRNO_679", /* 679 */
+ "ERRNO_680", /* 680 */
+ "ERRNO_681", /* 681 */
+ "ERRNO_682", /* 682 */
+ "ERRNO_683", /* 683 */
+ "ERRNO_684", /* 684 */
+ "ERRNO_685", /* 685 */
+ "ERRNO_686", /* 686 */
+ "ERRNO_687", /* 687 */
+ "ERRNO_688", /* 688 */
+ "ERRNO_689", /* 689 */
+ "ERRNO_690", /* 690 */
+ "ERRNO_691", /* 691 */
+ "ERRNO_692", /* 692 */
+ "ERRNO_693", /* 693 */
+ "ERRNO_694", /* 694 */
+ "ERRNO_695", /* 695 */
+ "ERRNO_696", /* 696 */
+ "ERRNO_697", /* 697 */
+ "ERRNO_698", /* 698 */
+ "ERRNO_699", /* 699 */
+ "ERRNO_700", /* 700 */
+ "ERRNO_701", /* 701 */
+ "ERRNO_702", /* 702 */
+ "ERRNO_703", /* 703 */
+ "ERRNO_704", /* 704 */
+ "ERRNO_705", /* 705 */
+ "ERRNO_706", /* 706 */
+ "ERRNO_707", /* 707 */
+ "ERRNO_708", /* 708 */
+ "ERRNO_709", /* 709 */
+ "ERRNO_710", /* 710 */
+ "ERRNO_711", /* 711 */
+ "ERRNO_712", /* 712 */
+ "ERRNO_713", /* 713 */
+ "ERRNO_714", /* 714 */
+ "ERRNO_715", /* 715 */
+ "ERRNO_716", /* 716 */
+ "ERRNO_717", /* 717 */
+ "ERRNO_718", /* 718 */
+ "ERRNO_719", /* 719 */
+ "ERRNO_720", /* 720 */
+ "ERRNO_721", /* 721 */
+ "ERRNO_722", /* 722 */
+ "ERRNO_723", /* 723 */
+ "ERRNO_724", /* 724 */
+ "ERRNO_725", /* 725 */
+ "ERRNO_726", /* 726 */
+ "ERRNO_727", /* 727 */
+ "ERRNO_728", /* 728 */
+ "ERRNO_729", /* 729 */
+ "ERRNO_730", /* 730 */
+ "ERRNO_731", /* 731 */
+ "ERRNO_732", /* 732 */
+ "ERRNO_733", /* 733 */
+ "ERRNO_734", /* 734 */
+ "ERRNO_735", /* 735 */
+ "ERRNO_736", /* 736 */
+ "ERRNO_737", /* 737 */
+ "ERRNO_738", /* 738 */
+ "ERRNO_739", /* 739 */
+ "ERRNO_740", /* 740 */
+ "ERRNO_741", /* 741 */
+ "ERRNO_742", /* 742 */
+ "ERRNO_743", /* 743 */
+ "ERRNO_744", /* 744 */
+ "ERRNO_745", /* 745 */
+ "ERRNO_746", /* 746 */
+ "ERRNO_747", /* 747 */
+ "ERRNO_748", /* 748 */
+ "ERRNO_749", /* 749 */
+ "ERRNO_750", /* 750 */
+ "ERRNO_751", /* 751 */
+ "ERRNO_752", /* 752 */
+ "ERRNO_753", /* 753 */
+ "ERRNO_754", /* 754 */
+ "ERRNO_755", /* 755 */
+ "ERRNO_756", /* 756 */
+ "ERRNO_757", /* 757 */
+ "ERRNO_758", /* 758 */
+ "ERRNO_759", /* 759 */
+ "ERRNO_760", /* 760 */
+ "ERRNO_761", /* 761 */
+ "ERRNO_762", /* 762 */
+ "ERRNO_763", /* 763 */
+ "ERRNO_764", /* 764 */
+ "ERRNO_765", /* 765 */
+ "ERRNO_766", /* 766 */
+ "ERRNO_767", /* 767 */
+ "ERRNO_768", /* 768 */
+ "ERRNO_769", /* 769 */
+ "ERRNO_770", /* 770 */
+ "ERRNO_771", /* 771 */
+ "ERRNO_772", /* 772 */
+ "ERRNO_773", /* 773 */
+ "ERRNO_774", /* 774 */
+ "ERRNO_775", /* 775 */
+ "ERRNO_776", /* 776 */
+ "ERRNO_777", /* 777 */
+ "ERRNO_778", /* 778 */
+ "ERRNO_779", /* 779 */
+ "ERRNO_780", /* 780 */
+ "ERRNO_781", /* 781 */
+ "ERRNO_782", /* 782 */
+ "ERRNO_783", /* 783 */
+ "ERRNO_784", /* 784 */
+ "ERRNO_785", /* 785 */
+ "ERRNO_786", /* 786 */
+ "ERRNO_787", /* 787 */
+ "ERRNO_788", /* 788 */
+ "ERRNO_789", /* 789 */
+ "ERRNO_790", /* 790 */
+ "ERRNO_791", /* 791 */
+ "ERRNO_792", /* 792 */
+ "ERRNO_793", /* 793 */
+ "ERRNO_794", /* 794 */
+ "ERRNO_795", /* 795 */
+ "ERRNO_796", /* 796 */
+ "ERRNO_797", /* 797 */
+ "ERRNO_798", /* 798 */
+ "ERRNO_799", /* 799 */
+ "ERRNO_800", /* 800 */
+ "ERRNO_801", /* 801 */
+ "ERRNO_802", /* 802 */
+ "ERRNO_803", /* 803 */
+ "ERRNO_804", /* 804 */
+ "ERRNO_805", /* 805 */
+ "ERRNO_806", /* 806 */
+ "ERRNO_807", /* 807 */
+ "ERRNO_808", /* 808 */
+ "ERRNO_809", /* 809 */
+ "ERRNO_810", /* 810 */
+ "ERRNO_811", /* 811 */
+ "ERRNO_812", /* 812 */
+ "ERRNO_813", /* 813 */
+ "ERRNO_814", /* 814 */
+ "ERRNO_815", /* 815 */
+ "ERRNO_816", /* 816 */
+ "ERRNO_817", /* 817 */
+ "ERRNO_818", /* 818 */
+ "ERRNO_819", /* 819 */
+ "ERRNO_820", /* 820 */
+ "ERRNO_821", /* 821 */
+ "ERRNO_822", /* 822 */
+ "ERRNO_823", /* 823 */
+ "ERRNO_824", /* 824 */
+ "ERRNO_825", /* 825 */
+ "ERRNO_826", /* 826 */
+ "ERRNO_827", /* 827 */
+ "ERRNO_828", /* 828 */
+ "ERRNO_829", /* 829 */
+ "ERRNO_830", /* 830 */
+ "ERRNO_831", /* 831 */
+ "ERRNO_832", /* 832 */
+ "ERRNO_833", /* 833 */
+ "ERRNO_834", /* 834 */
+ "ERRNO_835", /* 835 */
+ "ERRNO_836", /* 836 */
+ "ERRNO_837", /* 837 */
+ "ERRNO_838", /* 838 */
+ "ERRNO_839", /* 839 */
+ "ERRNO_840", /* 840 */
+ "ERRNO_841", /* 841 */
+ "ERRNO_842", /* 842 */
+ "ERRNO_843", /* 843 */
+ "ERRNO_844", /* 844 */
+ "ERRNO_845", /* 845 */
+ "ERRNO_846", /* 846 */
+ "ERRNO_847", /* 847 */
+ "ERRNO_848", /* 848 */
+ "ERRNO_849", /* 849 */
+ "ERRNO_850", /* 850 */
+ "ERRNO_851", /* 851 */
+ "ERRNO_852", /* 852 */
+ "ERRNO_853", /* 853 */
+ "ERRNO_854", /* 854 */
+ "ERRNO_855", /* 855 */
+ "ERRNO_856", /* 856 */
+ "ERRNO_857", /* 857 */
+ "ERRNO_858", /* 858 */
+ "ERRNO_859", /* 859 */
+ "ERRNO_860", /* 860 */
+ "ERRNO_861", /* 861 */
+ "ERRNO_862", /* 862 */
+ "ERRNO_863", /* 863 */
+ "ERRNO_864", /* 864 */
+ "ERRNO_865", /* 865 */
+ "ERRNO_866", /* 866 */
+ "ERRNO_867", /* 867 */
+ "ERRNO_868", /* 868 */
+ "ERRNO_869", /* 869 */
+ "ERRNO_870", /* 870 */
+ "ERRNO_871", /* 871 */
+ "ERRNO_872", /* 872 */
+ "ERRNO_873", /* 873 */
+ "ERRNO_874", /* 874 */
+ "ERRNO_875", /* 875 */
+ "ERRNO_876", /* 876 */
+ "ERRNO_877", /* 877 */
+ "ERRNO_878", /* 878 */
+ "ERRNO_879", /* 879 */
+ "ERRNO_880", /* 880 */
+ "ERRNO_881", /* 881 */
+ "ERRNO_882", /* 882 */
+ "ERRNO_883", /* 883 */
+ "ERRNO_884", /* 884 */
+ "ERRNO_885", /* 885 */
+ "ERRNO_886", /* 886 */
+ "ERRNO_887", /* 887 */
+ "ERRNO_888", /* 888 */
+ "ERRNO_889", /* 889 */
+ "ERRNO_890", /* 890 */
+ "ERRNO_891", /* 891 */
+ "ERRNO_892", /* 892 */
+ "ERRNO_893", /* 893 */
+ "ERRNO_894", /* 894 */
+ "ERRNO_895", /* 895 */
+ "ERRNO_896", /* 896 */
+ "ERRNO_897", /* 897 */
+ "ERRNO_898", /* 898 */
+ "ERRNO_899", /* 899 */
+ "ERRNO_900", /* 900 */
+ "ERRNO_901", /* 901 */
+ "ERRNO_902", /* 902 */
+ "ERRNO_903", /* 903 */
+ "ERRNO_904", /* 904 */
+ "ERRNO_905", /* 905 */
+ "ERRNO_906", /* 906 */
+ "ERRNO_907", /* 907 */
+ "ERRNO_908", /* 908 */
+ "ERRNO_909", /* 909 */
+ "ERRNO_910", /* 910 */
+ "ERRNO_911", /* 911 */
+ "ERRNO_912", /* 912 */
+ "ERRNO_913", /* 913 */
+ "ERRNO_914", /* 914 */
+ "ERRNO_915", /* 915 */
+ "ERRNO_916", /* 916 */
+ "ERRNO_917", /* 917 */
+ "ERRNO_918", /* 918 */
+ "ERRNO_919", /* 919 */
+ "ERRNO_920", /* 920 */
+ "ERRNO_921", /* 921 */
+ "ERRNO_922", /* 922 */
+ "ERRNO_923", /* 923 */
+ "ERRNO_924", /* 924 */
+ "ERRNO_925", /* 925 */
+ "ERRNO_926", /* 926 */
+ "ERRNO_927", /* 927 */
+ "ERRNO_928", /* 928 */
+ "ERRNO_929", /* 929 */
+ "ERRNO_930", /* 930 */
+ "ERRNO_931", /* 931 */
+ "ERRNO_932", /* 932 */
+ "ERRNO_933", /* 933 */
+ "ERRNO_934", /* 934 */
+ "ERRNO_935", /* 935 */
+ "ERRNO_936", /* 936 */
+ "ERRNO_937", /* 937 */
+ "ERRNO_938", /* 938 */
+ "ERRNO_939", /* 939 */
+ "ERRNO_940", /* 940 */
+ "ERRNO_941", /* 941 */
+ "ERRNO_942", /* 942 */
+ "ERRNO_943", /* 943 */
+ "ERRNO_944", /* 944 */
+ "ERRNO_945", /* 945 */
+ "ERRNO_946", /* 946 */
+ "ERRNO_947", /* 947 */
+ "ERRNO_948", /* 948 */
+ "ERRNO_949", /* 949 */
+ "ERRNO_950", /* 950 */
+ "ERRNO_951", /* 951 */
+ "ERRNO_952", /* 952 */
+ "ERRNO_953", /* 953 */
+ "ERRNO_954", /* 954 */
+ "ERRNO_955", /* 955 */
+ "ERRNO_956", /* 956 */
+ "ERRNO_957", /* 957 */
+ "ERRNO_958", /* 958 */
+ "ERRNO_959", /* 959 */
+ "ERRNO_960", /* 960 */
+ "ERRNO_961", /* 961 */
+ "ERRNO_962", /* 962 */
+ "ERRNO_963", /* 963 */
+ "ERRNO_964", /* 964 */
+ "ERRNO_965", /* 965 */
+ "ERRNO_966", /* 966 */
+ "ERRNO_967", /* 967 */
+ "ERRNO_968", /* 968 */
+ "ERRNO_969", /* 969 */
+ "ERRNO_970", /* 970 */
+ "ERRNO_971", /* 971 */
+ "ERRNO_972", /* 972 */
+ "ERRNO_973", /* 973 */
+ "ERRNO_974", /* 974 */
+ "ERRNO_975", /* 975 */
+ "ERRNO_976", /* 976 */
+ "ERRNO_977", /* 977 */
+ "ERRNO_978", /* 978 */
+ "ERRNO_979", /* 979 */
+ "ERRNO_980", /* 980 */
+ "ERRNO_981", /* 981 */
+ "ERRNO_982", /* 982 */
+ "ERRNO_983", /* 983 */
+ "ERRNO_984", /* 984 */
+ "ERRNO_985", /* 985 */
+ "ERRNO_986", /* 986 */
+ "ERRNO_987", /* 987 */
+ "ERRNO_988", /* 988 */
+ "ERRNO_989", /* 989 */
+ "ERRNO_990", /* 990 */
+ "ERRNO_991", /* 991 */
+ "ERRNO_992", /* 992 */
+ "ERRNO_993", /* 993 */
+ "ERRNO_994", /* 994 */
+ "ERRNO_995", /* 995 */
+ "ERRNO_996", /* 996 */
+ "ERRNO_997", /* 997 */
+ "ERRNO_998", /* 998 */
+ "ERRNO_999", /* 999 */
+ "ECANCELED", /* 1000 */
+ "ERRNO_1001", /* 1001 */
+ "ERRNO_1002", /* 1002 */
+ "ERRNO_1003", /* 1003 */
+ "ERRNO_1004", /* 1004 */
+ "ERRNO_1005", /* 1005 */
+ "ERRNO_1006", /* 1006 */
+ "ERRNO_1007", /* 1007 */
+ "ERRNO_1008", /* 1008 */
+ "ERRNO_1009", /* 1009 */
+ "ERRNO_1010", /* 1010 */
+ "ERRNO_1011", /* 1011 */
+ "ERRNO_1012", /* 1012 */
+ "ERRNO_1013", /* 1013 */
+ "ERRNO_1014", /* 1014 */
+ "ERRNO_1015", /* 1015 */
+ "ERRNO_1016", /* 1016 */
+ "ERRNO_1017", /* 1017 */
+ "ERRNO_1018", /* 1018 */
+ "ERRNO_1019", /* 1019 */
+ "ERRNO_1020", /* 1020 */
+ "ERRNO_1021", /* 1021 */
+ "ERRNO_1022", /* 1022 */
+ "ERRNO_1023", /* 1023 */
+ "ERRNO_1024", /* 1024 */
+ "ERRNO_1025", /* 1025 */
+ "ERRNO_1026", /* 1026 */
+ "ERRNO_1027", /* 1027 */
+ "ERRNO_1028", /* 1028 */
+ "ERRNO_1029", /* 1029 */
+ "ERRNO_1030", /* 1030 */
+ "ERRNO_1031", /* 1031 */
+ "ERRNO_1032", /* 1032 */
+ "ERRNO_1033", /* 1033 */
+ "ERRNO_1034", /* 1034 */
+ "ERRNO_1035", /* 1035 */
+ "ERRNO_1036", /* 1036 */
+ "ERRNO_1037", /* 1037 */
+ "ERRNO_1038", /* 1038 */
+ "ERRNO_1039", /* 1039 */
+ "ERRNO_1040", /* 1040 */
+ "ERRNO_1041", /* 1041 */
+ "ERRNO_1042", /* 1042 */
+ "ERRNO_1043", /* 1043 */
+ "ERRNO_1044", /* 1044 */
+ "ERRNO_1045", /* 1045 */
+ "ERRNO_1046", /* 1046 */
+ "ERRNO_1047", /* 1047 */
+ "ERRNO_1048", /* 1048 */
+ "ERRNO_1049", /* 1049 */
+ "ERRNO_1050", /* 1050 */
+ "ERRNO_1051", /* 1051 */
+ "ERRNO_1052", /* 1052 */
+ "ERRNO_1053", /* 1053 */
+ "ERRNO_1054", /* 1054 */
+ "ERRNO_1055", /* 1055 */
+ "ERRNO_1056", /* 1056 */
+ "ERRNO_1057", /* 1057 */
+ "ERRNO_1058", /* 1058 */
+ "ERRNO_1059", /* 1059 */
+ "ERRNO_1060", /* 1060 */
+ "ERRNO_1061", /* 1061 */
+ "ERRNO_1062", /* 1062 */
+ "ERRNO_1063", /* 1063 */
+ "ERRNO_1064", /* 1064 */
+ "ERRNO_1065", /* 1065 */
+ "ERRNO_1066", /* 1066 */
+ "ERRNO_1067", /* 1067 */
+ "ERRNO_1068", /* 1068 */
+ "ERRNO_1069", /* 1069 */
+ "ERRNO_1070", /* 1070 */
+ "ERRNO_1071", /* 1071 */
+ "ERRNO_1072", /* 1072 */
+ "ERRNO_1073", /* 1073 */
+ "ERRNO_1074", /* 1074 */
+ "ERRNO_1075", /* 1075 */
+ "ERRNO_1076", /* 1076 */
+ "ERRNO_1077", /* 1077 */
+ "ERRNO_1078", /* 1078 */
+ "ERRNO_1079", /* 1079 */
+ "ERRNO_1080", /* 1080 */
+ "ERRNO_1081", /* 1081 */
+ "ERRNO_1082", /* 1082 */
+ "ERRNO_1083", /* 1083 */
+ "ERRNO_1084", /* 1084 */
+ "ERRNO_1085", /* 1085 */
+ "ERRNO_1086", /* 1086 */
+ "ERRNO_1087", /* 1087 */
+ "ERRNO_1088", /* 1088 */
+ "ERRNO_1089", /* 1089 */
+ "ERRNO_1090", /* 1090 */
+ "ERRNO_1091", /* 1091 */
+ "ERRNO_1092", /* 1092 */
+ "ERRNO_1093", /* 1093 */
+ "ERRNO_1094", /* 1094 */
+ "ERRNO_1095", /* 1095 */
+ "ERRNO_1096", /* 1096 */
+ "ERRNO_1097", /* 1097 */
+ "ERRNO_1098", /* 1098 */
+ "ERRNO_1099", /* 1099 */
+ "ERRNO_1100", /* 1100 */
+ "ERRNO_1101", /* 1101 */
+ "ERRNO_1102", /* 1102 */
+ "ERRNO_1103", /* 1103 */
+ "ERRNO_1104", /* 1104 */
+ "ERRNO_1105", /* 1105 */
+ "ERRNO_1106", /* 1106 */
+ "ERRNO_1107", /* 1107 */
+ "ERRNO_1108", /* 1108 */
+ "ERRNO_1109", /* 1109 */
+ "ERRNO_1110", /* 1110 */
+ "ERRNO_1111", /* 1111 */
+ "ERRNO_1112", /* 1112 */
+ "ERRNO_1113", /* 1113 */
+ "ERRNO_1114", /* 1114 */
+ "ERRNO_1115", /* 1115 */
+ "ERRNO_1116", /* 1116 */
+ "ERRNO_1117", /* 1117 */
+ "ERRNO_1118", /* 1118 */
+ "ERRNO_1119", /* 1119 */
+ "ERRNO_1120", /* 1120 */
+ "ERRNO_1121", /* 1121 */
+ "ERRNO_1122", /* 1122 */
+ "ERRNO_1123", /* 1123 */
+ "ERRNO_1124", /* 1124 */
+ "ERRNO_1125", /* 1125 */
+ "ERRNO_1126", /* 1126 */
+ "ERRNO_1127", /* 1127 */
+ "ERRNO_1128", /* 1128 */
+ "ERRNO_1129", /* 1129 */
+ "ERRNO_1130", /* 1130 */
+ "ERRNO_1131", /* 1131 */
+ "ERRNO_1132", /* 1132 */
+ "EDQUOT", /* 1133 */
+ "EMAXERRNO", /* 1134 */
diff --git a/strace/linux/mips/ioctlent.h b/strace/linux/mips/ioctlent.h
new file mode 100644
index 0000000..c1d6b8a
--- /dev/null
+++ b/strace/linux/mips/ioctlent.h
@@ -0,0 +1,838 @@
+ {"linux/fs.h", "FIBMAP", 0x1},
+ {"linux/fs.h", "FIGETBSZ", 0x2},
+ {"linux/fd.h", "FDGETPRM", 0x204},
+ {"linux/fd.h", "FDGETMAXERRS", 0x20e},
+ {"linux/fd.h", "FDGETDRVTYP", 0x20f},
+ {"linux/fd.h", "FDGETDRVPRM", 0x211},
+ {"linux/fd.h", "FDGETDRVSTAT", 0x212},
+ {"linux/fd.h", "FDPOLLDRVSTAT", 0x213},
+ {"linux/fd.h", "FDGETFDCSTAT", 0x215},
+ {"linux/fd.h", "FDWERRORGET", 0x217},
+ {"linux/fd.h", "FDCLRPRM", 0x241},
+ {"linux/fd.h", "FDSETPRM", 0x242},
+ {"linux/fd.h", "FDDEFPRM", 0x243},
+ {"linux/fd.h", "FDMSGON", 0x245},
+ {"linux/fd.h", "FDMSGOFF", 0x246},
+ {"linux/fd.h", "FDFMTBEG", 0x247},
+ {"linux/fd.h", "FDFMTTRK", 0x248},
+ {"linux/fd.h", "FDFMTEND", 0x249},
+ {"linux/fd.h", "FDSETEMSGTRESH", 0x24a},
+ {"linux/fd.h", "FDFLUSH", 0x24b},
+ {"linux/fd.h", "FDSETMAXERRS", 0x24c},
+ {"linux/fd.h", "FDRESET", 0x254},
+ {"linux/fd.h", "FDWERRORCLR", 0x256},
+ {"linux/fd.h", "FDRAWCMD", 0x258},
+ {"linux/fd.h", "FDTWADDLE", 0x259},
+ {"linux/fd.h", "FDEJECT", 0x25a},
+ {"linux/fd.h", "FDSETDRVPRM", 0x290},
+ {"linux/umsdos_fs.h", "UMSDOS_READDIR_DOS", 0x4d2},
+ {"linux/umsdos_fs.h", "UMSDOS_UNLINK_DOS", 0x4d3},
+ {"linux/umsdos_fs.h", "UMSDOS_RMDIR_DOS", 0x4d4},
+ {"linux/umsdos_fs.h", "UMSDOS_STAT_DOS", 0x4d5},
+ {"linux/umsdos_fs.h", "UMSDOS_CREAT_EMD", 0x4d6},
+ {"linux/umsdos_fs.h", "UMSDOS_UNLINK_EMD", 0x4d7},
+ {"linux/umsdos_fs.h", "UMSDOS_READDIR_EMD", 0x4d8},
+ {"linux/umsdos_fs.h", "UMSDOS_GETVERSION", 0x4d9},
+ {"linux/umsdos_fs.h", "UMSDOS_INIT_EMD", 0x4da},
+ {"linux/umsdos_fs.h", "UMSDOS_DOS_SETUP", 0x4db},
+ {"linux/umsdos_fs.h", "UMSDOS_RENAME_DOS", 0x4dc},
+ {"linux/fs.h", "BLKROSET", 0x125d},
+ {"linux/fs.h", "BLKROGET", 0x125e},
+ {"linux/fs.h", "BLKRRPART", 0x125f},
+ {"linux/fs.h", "BLKGETSIZE", 0x1260},
+ {"linux/fs.h", "BLKFLSBUF", 0x1261},
+ {"linux/fs.h", "BLKRASET", 0x1262},
+ {"linux/fs.h", "BLKRAGET", 0x1263},
+ {"linux/fs.h", "BLKFRASET", 0x1264},
+ {"linux/fs.h", "BLKFRAGET", 0x1265},
+ {"linux/fs.h", "BLKSECTSET", 0x1266},
+ {"linux/fs.h", "BLKSECTGET", 0x1267},
+ {"linux/fs.h", "BLKSSZGET", 0x1268},
+ {"linux/blkpg.h", "BLKPG", 0x1269},
+ {"linux/fs.h", "BLKPG", 0x1269},
+ {"linux/elevator.h", "BLKELVGET", 0x126a},
+ {"linux/fs.h", "BLKELVGET", 0x126a},
+ {"linux/elevator.h", "BLKELVSET", 0x126b},
+ {"linux/fs.h", "BLKELVSET", 0x126b},
+ {"linux/fs.h", "BLKBSZGET", 0x1270},
+ {"linux/fs.h", "BLKBSZSET", 0x1271},
+ {"linux/fs.h", "BLKGETSIZE64", 0x1272},
+ {"linux/agpgart.h", "AGPIOC_INFO", 0x4100},
+ {"linux/agpgart.h", "AGPIOC_ACQUIRE", 0x4101},
+ {"linux/apm_bios.h", "APM_IOC_STANDBY", 0x4101},
+ {"linux/agpgart.h", "AGPIOC_RELEASE", 0x4102},
+ {"linux/apm_bios.h", "APM_IOC_SUSPEND", 0x4102},
+ {"linux/agpgart.h", "AGPIOC_SETUP", 0x4103},
+ {"linux/agpgart.h", "AGPIOC_RESERVE", 0x4104},
+ {"linux/agpgart.h", "AGPIOC_PROTECT", 0x4105},
+ {"linux/agpgart.h", "AGPIOC_ALLOCATE", 0x4106},
+ {"linux/agpgart.h", "AGPIOC_DEALLOCATE", 0x4107},
+ {"linux/agpgart.h", "AGPIOC_BIND", 0x4108},
+ {"linux/agpgart.h", "AGPIOC_UNBIND", 0x4109},
+ {"linux/pmu.h", "PMU_IOC_SLEEP", 0x4200},
+ {"linux/cciss_ioctl.h", "CCISS_GETPCIINFO", 0x4201},
+ {"linux/pmu.h", "PMU_IOC_GET_BACKLIGHT", 0x4201},
+ {"linux/cciss_ioctl.h", "CCISS_GETINTINFO", 0x4202},
+ {"linux/pmu.h", "PMU_IOC_SET_BACKLIGHT", 0x4202},
+ {"linux/cciss_ioctl.h", "CCISS_SETINTINFO", 0x4203},
+ {"linux/pmu.h", "PMU_IOC_GET_MODEL", 0x4203},
+ {"linux/cciss_ioctl.h", "CCISS_GETNODENAME", 0x4204},
+ {"linux/pmu.h", "PMU_IOC_HAS_ADB", 0x4204},
+ {"linux/cciss_ioctl.h", "CCISS_SETNODENAME", 0x4205},
+ {"linux/pmu.h", "PMU_IOC_CAN_SLEEP", 0x4205},
+ {"linux/cciss_ioctl.h", "CCISS_GETHEARTBEAT", 0x4206},
+ {"linux/cciss_ioctl.h", "CCISS_GETBUSTYPES", 0x4207},
+ {"linux/cciss_ioctl.h", "CCISS_GETFIRMVER", 0x4208},
+ {"linux/cciss_ioctl.h", "CCISS_GETDRIVVER", 0x4209},
+ {"linux/cciss_ioctl.h", "CCISS_REVALIDVOLS", 0x420a},
+ {"linux/cciss_ioctl.h", "CCISS_PASSTHRU", 0x420b},
+ {"linux/soundcard.h", "SNDCTL_COPR_RESET", 0x4300},
+ {"linux/capi.h", "CAPI_REGISTER", 0x4301},
+ {"linux/soundcard.h", "SNDCTL_COPR_LOAD", 0x4301},
+ {"linux/soundcard.h", "SNDCTL_COPR_RDATA", 0x4302},
+ {"linux/soundcard.h", "SNDCTL_COPR_RCODE", 0x4303},
+ {"linux/soundcard.h", "SNDCTL_COPR_WDATA", 0x4304},
+ {"linux/soundcard.h", "SNDCTL_COPR_WCODE", 0x4305},
+ {"linux/capi.h", "CAPI_GET_MANUFACTURER", 0x4306},
+ {"linux/soundcard.h", "SNDCTL_COPR_RUN", 0x4306},
+ {"linux/capi.h", "CAPI_GET_VERSION", 0x4307},
+ {"linux/soundcard.h", "SNDCTL_COPR_HALT", 0x4307},
+ {"linux/capi.h", "CAPI_GET_SERIAL", 0x4308},
+ {"linux/soundcard.h", "SNDCTL_COPR_SENDMSG", 0x4308},
+ {"linux/capi.h", "CAPI_GET_PROFILE", 0x4309},
+ {"linux/soundcard.h", "SNDCTL_COPR_RCVMSG", 0x4309},
+ {"linux/capi.h", "CAPI_MANUFACTURER_CMD", 0x4320},
+ {"linux/capi.h", "CAPI_GET_ERRCODE", 0x4321},
+ {"linux/capi.h", "CAPI_INSTALLED", 0x4322},
+ {"linux/capi.h", "CAPI_GET_FLAGS", 0x4323},
+ {"linux/capi.h", "CAPI_SET_FLAGS", 0x4324},
+ {"linux/capi.h", "CAPI_CLR_FLAGS", 0x4325},
+ {"linux/capi.h", "CAPI_NCCI_OPENCOUNT", 0x4326},
+ {"linux/capi.h", "CAPI_NCCI_GETUNIT", 0x4327},
+ {"linux/input.h", "EVIOCGVERSION", 0x4501},
+ {"linux/input.h", "EVIOCGID", 0x4502},
+ {"linux/input.h", "EVIOCGREP", 0x4503},
+ {"linux/input.h", "EVIOCSREP", 0x4503},
+ {"linux/input.h", "EVIOCGKEYCODE", 0x4504},
+ {"linux/input.h", "EVIOCSKEYCODE", 0x4504},
+ {"linux/input.h", "EVIOCGKEY", 0x4505},
+ {"linux/input.h", "EVIOCGBUS", 0x4507},
+ {"linux/input.h", "EVIOCRMFF", 0x4581},
+ {"linux/input.h", "EVIOCSGAIN", 0x4582},
+ {"linux/input.h", "EVIOCSAUTOCENTER", 0x4583},
+ {"linux/input.h", "EVIOCGEFFECTS", 0x4584},
+ {"linux/fb.h", "FBIOGET_VBLANK", 0x4612},
+ {"linux/hiddev.h", "HIDIOCGVERSION", 0x4801},
+ {"linux/hiddev.h", "HIDIOCAPPLICATION", 0x4802},
+ {"linux/hiddev.h", "HIDIOCGDEVINFO", 0x4803},
+ {"linux/hiddev.h", "HIDIOCGSTRING", 0x4804},
+ {"linux/hiddev.h", "HIDIOCINITREPORT", 0x4805},
+ {"linux/hiddev.h", "HIDIOCGREPORT", 0x4807},
+ {"linux/hiddev.h", "HIDIOCSREPORT", 0x4808},
+ {"linux/hiddev.h", "HIDIOCGREPORTINFO", 0x4809},
+ {"linux/hiddev.h", "HIDIOCGFIELDINFO", 0x480a},
+ {"linux/hiddev.h", "HIDIOCGUSAGE", 0x480b},
+ {"linux/hiddev.h", "HIDIOCSUSAGE", 0x480c},
+ {"linux/hiddev.h", "HIDIOCGUCODE", 0x480d},
+ {"linux/isdn.h", "IIOCNETAIF", 0x4901},
+ {"linux/isdn.h", "IIOCNETDIF", 0x4902},
+ {"linux/isdn.h", "IIOCNETSCF", 0x4903},
+ {"linux/isdn.h", "IIOCNETGCF", 0x4904},
+ {"linux/isdn.h", "IIOCNETANM", 0x4905},
+ {"linux/isdn.h", "IIOCNETDNM", 0x4906},
+ {"linux/isdn.h", "IIOCNETGNM", 0x4907},
+ {"linux/isdn.h", "IIOCGETSET", 0x4908},
+ {"linux/isdn.h", "IIOCSETSET", 0x4909},
+ {"linux/isdn.h", "IIOCSETVER", 0x490a},
+ {"linux/isdn.h", "IIOCNETHUP", 0x490b},
+ {"linux/isdn.h", "IIOCSETGST", 0x490c},
+ {"linux/isdn.h", "IIOCSETBRJ", 0x490d},
+ {"linux/isdn.h", "IIOCSIGPRF", 0x490e},
+ {"linux/isdn.h", "IIOCGETPRF", 0x490f},
+ {"linux/isdn.h", "IIOCSETPRF", 0x4910},
+ {"linux/isdn.h", "IIOCGETMAP", 0x4911},
+ {"linux/isdn.h", "IIOCSETMAP", 0x4912},
+ {"linux/isdn.h", "IIOCNETASL", 0x4913},
+ {"linux/isdn.h", "IIOCNETDIL", 0x4914},
+ {"linux/isdn.h", "IIOCGETCPS", 0x4915},
+ {"linux/isdn.h", "IIOCGETDVR", 0x4916},
+ {"linux/isdn.h", "IIOCNETLCR", 0x4917},
+ {"linux/isdn.h", "IIOCNETDWRSET", 0x4918},
+ {"linux/isdn.h", "IIOCNETALN", 0x4920},
+ {"linux/isdn.h", "IIOCNETDLN", 0x4921},
+ {"linux/isdn.h", "IIOCNETGPN", 0x4922},
+ {"linux/isdn.h", "IIOCDBGVAR", 0x497f},
+ {"linux/isdn.h", "IIOCDRVCTL", 0x4980},
+ {"linux/soundcard.h", "SOUND_MIXER_INFO", 0x4d65},
+ {"linux/soundcard.h", "SOUND_OLD_MIXER_INFO", 0x4d65},
+ {"linux/soundcard.h", "SOUND_MIXER_ACCESS", 0x4d66},
+ {"linux/soundcard.h", "SOUND_MIXER_AGC", 0x4d67},
+ {"linux/soundcard.h", "SOUND_MIXER_3DSE", 0x4d68},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE1", 0x4d6f},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE2", 0x4d70},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE3", 0x4d71},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE4", 0x4d72},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE5", 0x4d73},
+ {"linux/soundcard.h", "SOUND_MIXER_GETLEVELS", 0x4d74},
+ {"linux/soundcard.h", "SOUND_MIXER_SETLEVELS", 0x4d75},
+ {"linux/soundcard.h", "OSS_GETVERSION", 0x4d76},
+ {"linux/soundcard.h", "SNDCTL_DSP_RESET", 0x5000},
+ {"linux/soundcard.h", "SNDCTL_DSP_SYNC", 0x5001},
+ {"linux/soundcard.h", "SNDCTL_DSP_SPEED", 0x5002},
+ {"linux/soundcard.h", "SOUND_PCM_READ_RATE", 0x5002},
+ {"linux/soundcard.h", "SNDCTL_DSP_STEREO", 0x5003},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETBLKSIZE", 0x5004},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETFMT", 0x5005},
+ {"linux/soundcard.h", "SOUND_PCM_READ_BITS", 0x5005},
+ {"linux/soundcard.h", "SNDCTL_DSP_CHANNELS", 0x5006},
+ {"linux/soundcard.h", "SOUND_PCM_READ_CHANNELS", 0x5006},
+ {"linux/soundcard.h", "SOUND_PCM_WRITE_FILTER", 0x5007},
+ {"linux/soundcard.h", "SOUND_PCM_READ_FILTER", 0x5007},
+ {"linux/soundcard.h", "SNDCTL_DSP_POST", 0x5008},
+ {"linux/soundcard.h", "SNDCTL_DSP_SUBDIVIDE", 0x5009},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETFRAGMENT", 0x500a},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETFMTS", 0x500b},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETOSPACE", 0x500c},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETISPACE", 0x500d},
+ {"linux/soundcard.h", "SNDCTL_DSP_NONBLOCK", 0x500e},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETCAPS", 0x500f},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETTRIGGER", 0x5010},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETTRIGGER", 0x5010},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETIPTR", 0x5011},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETOPTR", 0x5012},
+ {"linux/soundcard.h", "SNDCTL_DSP_MAPINBUF", 0x5013},
+ {"linux/soundcard.h", "SNDCTL_DSP_MAPOUTBUF", 0x5014},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETSYNCRO", 0x5015},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETDUPLEX", 0x5016},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETODELAY", 0x5017},
+ {"linux/soundcard.h", "SNDCTL_DSP_PROFILE", 0x5017},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETCHANNELMASK", 0x5040},
+ {"linux/soundcard.h", "SNDCTL_DSP_BIND_CHANNEL", 0x5041},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETSPDIF", 0x5042},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETSPDIF", 0x5043},
+ {"linux/soundcard.h", "SNDCTL_SEQ_RESET", 0x5100},
+ {"linux/soundcard.h", "SNDCTL_SEQ_SYNC", 0x5101},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_INFO", 0x5102},
+ {"linux/soundcard.h", "SNDCTL_SEQ_CTRLRATE", 0x5103},
+ {"linux/soundcard.h", "SNDCTL_SEQ_GETOUTCOUNT", 0x5104},
+ {"linux/soundcard.h", "SNDCTL_SEQ_GETINCOUNT", 0x5105},
+ {"linux/soundcard.h", "SNDCTL_SEQ_PERCMODE", 0x5106},
+ {"linux/soundcard.h", "SNDCTL_FM_LOAD_INSTR", 0x5107},
+ {"linux/soundcard.h", "SNDCTL_SEQ_TESTMIDI", 0x5108},
+ {"linux/soundcard.h", "SNDCTL_SEQ_RESETSAMPLES", 0x5109},
+ {"linux/soundcard.h", "SNDCTL_SEQ_NRSYNTHS", 0x510a},
+ {"linux/soundcard.h", "SNDCTL_SEQ_NRMIDIS", 0x510b},
+ {"linux/soundcard.h", "SNDCTL_MIDI_INFO", 0x510c},
+ {"linux/soundcard.h", "SNDCTL_SEQ_THRESHOLD", 0x510d},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_MEMAVL", 0x510e},
+ {"linux/soundcard.h", "SNDCTL_FM_4OP_ENABLE", 0x510f},
+ {"linux/soundcard.h", "SNDCTL_SEQ_PANIC", 0x5111},
+ {"linux/soundcard.h", "SNDCTL_SEQ_OUTOFBAND", 0x5112},
+ {"linux/soundcard.h", "SNDCTL_SEQ_GETTIME", 0x5113},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_ID", 0x5114},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_CONTROL", 0x5115},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_REMOVESAMPLE", 0x5116},
+ {"linux/random.h", "RNDGETENTCNT", 0x5200},
+ {"linux/random.h", "RNDADDTOENTCNT", 0x5201},
+ {"linux/random.h", "RNDGETPOOL", 0x5202},
+ {"linux/random.h", "RNDADDENTROPY", 0x5203},
+ {"linux/random.h", "RNDZAPENTCNT", 0x5204},
+ {"linux/random.h", "RNDCLEARPOOL", 0x5206},
+ {"asm/ioctls.h", "TCGETS", 0x5401},
+ {"linux/soundcard.h", "SNDCTL_TMR_TIMEBASE", 0x5401},
+ {"asm/ioctls.h", "TCSETS", 0x5402},
+ {"linux/soundcard.h", "SNDCTL_TMR_START", 0x5402},
+ {"asm/ioctls.h", "TCSETSW", 0x5403},
+ {"linux/soundcard.h", "SNDCTL_TMR_STOP", 0x5403},
+ {"asm/ioctls.h", "TCSETSF", 0x5404},
+ {"linux/soundcard.h", "SNDCTL_TMR_CONTINUE", 0x5404},
+ {"asm/ioctls.h", "TCGETA", 0x5405},
+ {"linux/soundcard.h", "SNDCTL_TMR_TEMPO", 0x5405},
+ {"asm/ioctls.h", "TCSETA", 0x5406},
+ {"linux/soundcard.h", "SNDCTL_TMR_SOURCE", 0x5406},
+ {"asm/ioctls.h", "TCSETAW", 0x5407},
+ {"linux/soundcard.h", "SNDCTL_TMR_METRONOME", 0x5407},
+ {"asm/ioctls.h", "TCSETAF", 0x5408},
+ {"linux/soundcard.h", "SNDCTL_TMR_SELECT", 0x5408},
+ {"asm/ioctls.h", "TCSBRK", 0x5409},
+ {"asm/ioctls.h", "TCXONC", 0x540a},
+ {"asm/ioctls.h", "TCFLSH", 0x540b},
+ {"asm/ioctls.h", "TIOCEXCL", 0x540c},
+ {"asm/ioctls.h", "TIOCNXCL", 0x540d},
+ {"asm/ioctls.h", "TIOCSCTTY", 0x540e},
+ {"asm/ioctls.h", "TIOCGPGRP", 0x540f},
+ {"asm/ioctls.h", "TIOCSPGRP", 0x5410},
+ {"asm/ioctls.h", "TIOCOUTQ", 0x5411},
+ {"asm/ioctls.h", "TIOCSTI", 0x5412},
+ {"asm/ioctls.h", "TIOCGWINSZ", 0x5413},
+ {"asm/ioctls.h", "TIOCSWINSZ", 0x5414},
+ {"asm/ioctls.h", "TIOCMGET", 0x5415},
+ {"asm/ioctls.h", "TIOCMBIS", 0x5416},
+ {"asm/ioctls.h", "TIOCMBIC", 0x5417},
+ {"asm/ioctls.h", "TIOCMSET", 0x5418},
+ {"asm/ioctls.h", "TIOCGSOFTCAR", 0x5419},
+ {"asm/ioctls.h", "TIOCSSOFTCAR", 0x541a},
+ {"asm/ioctls.h", "FIONREAD", 0x541b},
+ {"asm/ioctls.h", "TIOCLINUX", 0x541c},
+ {"asm/ioctls.h", "TIOCCONS", 0x541d},
+ {"asm/ioctls.h", "TIOCGSERIAL", 0x541e},
+ {"asm/ioctls.h", "TIOCSSERIAL", 0x541f},
+ {"asm/ioctls.h", "TIOCPKT", 0x5420},
+ {"asm/ioctls.h", "FIONBIO", 0x5421},
+ {"asm/ioctls.h", "TIOCNOTTY", 0x5422},
+ {"asm/ioctls.h", "TIOCSETD", 0x5423},
+ {"asm/ioctls.h", "TIOCGETD", 0x5424},
+ {"asm/ioctls.h", "TCSBRKP", 0x5425},
+ {"asm/ioctls.h", "TIOCTTYGSTRUCT", 0x5426},
+ {"asm/ioctls.h", "TIOCSBRK", 0x5427},
+ {"asm/ioctls.h", "TIOCCBRK", 0x5428},
+ {"asm/ioctls.h", "TIOCGSID", 0x5429},
+ {"asm/ioctls.h", "TIOCGPTN", 0x5430},
+ {"asm/ioctls.h", "TIOCSPTLCK", 0x5431},
+ {"asm/ioctls.h", "FIONCLEX", 0x5450},
+ {"asm/ioctls.h", "FIOCLEX", 0x5451},
+ {"asm/ioctls.h", "FIOASYNC", 0x5452},
+ {"asm/ioctls.h", "TIOCSERCONFIG", 0x5453},
+ {"asm/ioctls.h", "TIOCSERGWILD", 0x5454},
+ {"asm/ioctls.h", "TIOCSERSWILD", 0x5455},
+ {"asm/ioctls.h", "TIOCGLCKTRMIOS", 0x5456},
+ {"asm/ioctls.h", "TIOCSLCKTRMIOS", 0x5457},
+ {"asm/ioctls.h", "TIOCSERGSTRUCT", 0x5458},
+ {"asm/ioctls.h", "TIOCSERGETLSR", 0x5459},
+ {"asm/ioctls.h", "TIOCSERGETMULTI", 0x545a},
+ {"asm/ioctls.h", "TIOCSERSETMULTI", 0x545b},
+ {"asm/ioctls.h", "TIOCMIWAIT", 0x545c},
+ {"asm/ioctls.h", "TIOCGICOUNT", 0x545d},
+ {"asm/ioctls.h", "TIOCGHAYESESP", 0x545e},
+ {"asm/ioctls.h", "TIOCSHAYESESP", 0x545f},
+ {"linux/if_tun.h", "TUNSETNOCSUM", 0x54c8},
+ {"linux/if_tun.h", "TUNSETDEBUG", 0x54c9},
+ {"linux/if_tun.h", "TUNSETIFF", 0x54ca},
+ {"linux/if_tun.h", "TUNSETPERSIST", 0x54cb},
+ {"linux/if_tun.h", "TUNSETOWNER", 0x54cc},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CONTROL", 0x5500},
+ {"linux/usbdevice_fs.h", "USBDEVFS_BULK", 0x5502},
+ {"linux/usbdevice_fs.h", "USBDEVFS_RESETEP", 0x5503},
+ {"linux/usbdevice_fs.h", "USBDEVFS_SETINTERFACE", 0x5504},
+ {"linux/usbdevice_fs.h", "USBDEVFS_SETCONFIGURATION", 0x5505},
+ {"linux/usbdevice_fs.h", "USBDEVFS_GETDRIVER", 0x5508},
+ {"linux/usbdevice_fs.h", "USBDEVFS_SUBMITURB", 0x550a},
+ {"linux/usbdevice_fs.h", "USBDEVFS_DISCARDURB", 0x550b},
+ {"linux/usbdevice_fs.h", "USBDEVFS_REAPURB", 0x550c},
+ {"linux/usbdevice_fs.h", "USBDEVFS_REAPURBNDELAY", 0x550d},
+ {"linux/usbdevice_fs.h", "USBDEVFS_DISCSIGNAL", 0x550e},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CLAIMINTERFACE", 0x550f},
+ {"linux/usbdevice_fs.h", "USBDEVFS_RELEASEINTERFACE", 0x5510},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CONNECTINFO", 0x5511},
+ {"linux/usbdevice_fs.h", "USBDEVFS_IOCTL", 0x5512},
+ {"linux/usbdevice_fs.h", "USBDEVFS_HUB_PORTINFO", 0x5513},
+ {"linux/usbdevice_fs.h", "USBDEVFS_RESET", 0x5514},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CLEAR_HALT", 0x5515},
+ {"linux/watchdog.h", "WDIOC_GETSUPPORT", 0x5700},
+ {"linux/watchdog.h", "WDIOC_GETSTATUS", 0x5701},
+ {"linux/watchdog.h", "WDIOC_GETBOOTSTATUS", 0x5702},
+ {"linux/watchdog.h", "WDIOC_GETTEMP", 0x5703},
+ {"linux/watchdog.h", "WDIOC_SETOPTIONS", 0x5704},
+ {"linux/watchdog.h", "WDIOC_KEEPALIVE", 0x5705},
+ {"linux/watchdog.h", "WDIOC_SETTIMEOUT", 0x5706},
+ {"linux/watchdog.h", "WDIOC_GETTIMEOUT", 0x5707},
+ {"linux/ite_gpio.h", "ITE_GPIO_IN", 0x5a00},
+ {"linux/ite_gpio.h", "ITE_GPIO_OUT", 0x5a01},
+ {"linux/ite_gpio.h", "ITE_GPIO_INT_CTRL", 0x5a02},
+ {"linux/ite_gpio.h", "ITE_GPIO_IN_STATUS", 0x5a03},
+ {"linux/ite_gpio.h", "ITE_GPIO_OUT_STATUS", 0x5a04},
+ {"linux/ite_gpio.h", "ITE_GPIO_GEN_CTRL", 0x5a05},
+ {"linux/ite_gpio.h", "ITE_GPIO_INT_WAIT", 0x5a06},
+ {"linux/sonet.h", "SONET_GETSTAT", 0x6110},
+ {"linux/sonet.h", "SONET_GETSTATZ", 0x6111},
+ {"linux/sonet.h", "SONET_SETDIAG", 0x6112},
+ {"linux/sonet.h", "SONET_CLRDIAG", 0x6113},
+ {"linux/sonet.h", "SONET_GETDIAG", 0x6114},
+ {"linux/sonet.h", "SONET_SETFRAMING", 0x6115},
+ {"linux/sonet.h", "SONET_GETFRAMING", 0x6116},
+ {"linux/sonet.h", "SONET_GETFRSENSE", 0x6117},
+ {"linux/atm_idt77105.h", "IDT77105_GETSTAT", 0x6132},
+ {"linux/atm_idt77105.h", "IDT77105_GETSTATZ", 0x6133},
+ {"linux/atmdev.h", "ATM_GETSTAT", 0x6150},
+ {"linux/atmdev.h", "ATM_GETSTATZ", 0x6151},
+ {"linux/atmdev.h", "ATM_GETLOOP", 0x6152},
+ {"linux/atmdev.h", "ATM_SETLOOP", 0x6153},
+ {"linux/atmdev.h", "ATM_QUERYLOOP", 0x6154},
+ {"linux/atm_eni.h", "ENI_MEMDUMP", 0x6160},
+ {"linux/atm_nicstar.h", "NS_GETPSTAT", 0x6161},
+ {"linux/atm_zatm.h", "ZATM_GETPOOL", 0x6161},
+ {"linux/atm_nicstar.h", "NS_SETBUFLEV", 0x6162},
+ {"linux/atm_zatm.h", "ZATM_GETPOOLZ", 0x6162},
+ {"linux/atm_nicstar.h", "NS_ADJBUFLEV", 0x6163},
+ {"linux/atm_zatm.h", "ZATM_SETPOOL", 0x6163},
+ {"linux/atm_zatm.h", "ZATM_GETTHIST", 0x6164},
+ {"linux/atm_eni.h", "ENI_SETMULT", 0x6167},
+ {"linux/atm_tcp.h", "SIOCSIFATMTCP", 0x6180},
+ {"linux/atmdev.h", "ATM_GETLINKRATE", 0x6181},
+ {"linux/atmdev.h", "ATM_GETNAMES", 0x6183},
+ {"linux/atmdev.h", "ATM_GETTYPE", 0x6184},
+ {"linux/atmdev.h", "ATM_GETESI", 0x6185},
+ {"linux/atmdev.h", "ATM_GETADDR", 0x6186},
+ {"linux/atmdev.h", "ATM_RSTADDR", 0x6187},
+ {"linux/atmdev.h", "ATM_ADDADDR", 0x6188},
+ {"linux/atmdev.h", "ATM_DELADDR", 0x6189},
+ {"linux/atmdev.h", "ATM_GETCIRANGE", 0x618a},
+ {"linux/atmdev.h", "ATM_SETCIRANGE", 0x618b},
+ {"linux/atmdev.h", "ATM_SETESI", 0x618c},
+ {"linux/atmdev.h", "ATM_SETESIF", 0x618d},
+ {"linux/atm_tcp.h", "ATMTCP_CREATE", 0x618e},
+ {"linux/atm_tcp.h", "ATMTCP_REMOVE", 0x618f},
+ {"linux/atmlec.h", "ATMLEC_CTRL", 0x61d0},
+ {"linux/atmlec.h", "ATMLEC_DATA", 0x61d1},
+ {"linux/atmlec.h", "ATMLEC_MCAST", 0x61d2},
+ {"linux/atmmpc.h", "ATMMPC_CTRL", 0x61d8},
+ {"linux/atmmpc.h", "ATMMPC_DATA", 0x61d9},
+ {"linux/atmclip.h", "SIOCMKCLIP", 0x61e0},
+ {"linux/atmarp.h", "ATMARPD_CTRL", 0x61e1},
+ {"linux/atmarp.h", "ATMARP_MKIP", 0x61e2},
+ {"linux/atmarp.h", "ATMARP_SETENTRY", 0x61e3},
+ {"linux/atmarp.h", "ATMARP_ENCAP", 0x61e5},
+ {"linux/atmsvc.h", "ATMSIGD_CTRL", 0x61f0},
+ {"linux/atmdev.h", "ATM_SETSC", 0x61f1},
+ {"linux/atmdev.h", "ATM_SETBACKEND", 0x61f2},
+ {"linux/coda.h", "CIOC_KERNEL_VERSION", 0x630a},
+ {"linux/comstats.h", "COM_GETPORTSTATS", 0x631e},
+ {"linux/comstats.h", "COM_CLRPORTSTATS", 0x631f},
+ {"linux/comstats.h", "COM_GETBRDSTATS", 0x6320},
+ {"linux/comstats.h", "COM_READPORT", 0x6328},
+ {"linux/comstats.h", "COM_READBOARD", 0x6329},
+ {"linux/comstats.h", "COM_READPANEL", 0x632a},
+ {"linux/devfs_fs.h", "DEVFSDIOC_GET_PROTO_REV", 0x6400},
+ {"linux/video_decoder.h", "DECODER_GET_CAPABILITIES", 0x6401},
+ {"linux/devfs_fs.h", "DEVFSDIOC_SET_EVENT_MASK", 0x6402},
+ {"linux/video_decoder.h", "DECODER_GET_STATUS", 0x6402},
+ {"linux/devfs_fs.h", "DEVFSDIOC_RELEASE_EVENT_QUEUE", 0x6403},
+ {"linux/video_decoder.h", "DECODER_SET_NORM", 0x6403},
+ {"linux/devfs_fs.h", "DEVFSDIOC_SET_DEBUG_MASK", 0x6404},
+ {"linux/video_decoder.h", "DECODER_SET_INPUT", 0x6404},
+ {"linux/video_decoder.h", "DECODER_SET_OUTPUT", 0x6405},
+ {"linux/video_decoder.h", "DECODER_ENABLE_OUTPUT", 0x6406},
+ {"linux/video_decoder.h", "DECODER_SET_PICTURE", 0x6407},
+ {"linux/video_decoder.h", "DECODER_DUMP", 0x64c0},
+ {"linux/video_encoder.h", "ENCODER_GET_CAPABILITIES", 0x6501},
+ {"linux/video_encoder.h", "ENCODER_SET_NORM", 0x6502},
+ {"linux/video_encoder.h", "ENCODER_SET_INPUT", 0x6503},
+ {"linux/video_encoder.h", "ENCODER_SET_OUTPUT", 0x6504},
+ {"linux/video_encoder.h", "ENCODER_ENABLE_OUTPUT", 0x6505},
+ {"linux/ext2_fs.h", "EXT2_IOC_GETFLAGS", 0x6601},
+ {"linux/ext3_fs.h", "EXT3_IOC_GETFLAGS", 0x6601},
+ {"linux/ext2_fs.h", "EXT2_IOC_SETFLAGS", 0x6602},
+ {"linux/ext3_fs.h", "EXT3_IOC_SETFLAGS", 0x6602},
+ {"linux/ext3_fs.h", "EXT3_IOC_GETVERSION", 0x6603},
+ {"linux/ext3_fs.h", "EXT3_IOC_SETVERSION", 0x6604},
+ {"linux/ext3_fs.h", "EXT3_IOC_WAIT_FOR_READONLY", 0x6663},
+ {"linux/i2o-dev.h", "I2OGETIOPS", 0x6900},
+ {"linux/i2o-dev.h", "I2OHRTGET", 0x6901},
+ {"linux/i2o-dev.h", "I2OLCTGET", 0x6902},
+ {"linux/i2o-dev.h", "I2OPARMSET", 0x6903},
+ {"linux/i2o-dev.h", "I2OPARMGET", 0x6904},
+ {"linux/i2o-dev.h", "I2OSWDL", 0x6905},
+ {"linux/i2o-dev.h", "I2OSWUL", 0x6906},
+ {"linux/i2o-dev.h", "I2OSWDEL", 0x6907},
+ {"linux/i2o-dev.h", "I2OVALIDATE", 0x6908},
+ {"linux/i2o-dev.h", "I2OHTML", 0x6909},
+ {"linux/i2o-dev.h", "I2OEVTREG", 0x690a},
+ {"linux/i2o-dev.h", "I2OEVTGET", 0x690b},
+ {"linux/i8k.h", "I8K_BIOS_VERSION", 0x6980},
+ {"linux/i8k.h", "I8K_MACHINE_ID", 0x6981},
+ {"linux/i8k.h", "I8K_POWER_STATUS", 0x6982},
+ {"linux/i8k.h", "I8K_FN_STATUS", 0x6983},
+ {"linux/i8k.h", "I8K_GET_TEMP", 0x6984},
+ {"linux/i8k.h", "I8K_GET_SPEED", 0x6985},
+ {"linux/i8k.h", "I8K_GET_FAN", 0x6986},
+ {"linux/i8k.h", "I8K_SET_FAN", 0x6987},
+ {"linux/joystick.h", "JSIOCGVERSION", 0x6a01},
+ {"linux/joystick.h", "JSIOCGAXES", 0x6a11},
+ {"linux/joystick.h", "JSIOCGBUTTONS", 0x6a12},
+ {"linux/joystick.h", "JSIOCSCORR", 0x6a21},
+ {"linux/joystick.h", "JSIOCGCORR", 0x6a22},
+ {"linux/joystick.h", "JSIOCSAXMAP", 0x6a31},
+ {"linux/joystick.h", "JSIOCGAXMAP", 0x6a32},
+ {"linux/joystick.h", "JSIOCSBTNMAP", 0x6a33},
+ {"linux/joystick.h", "JSIOCGBTNMAP", 0x6a34},
+ {"linux/udf_fs_i.h", "UDF_GETEASIZE", 0x6c40},
+ {"linux/udf_fs_i.h", "UDF_GETEABLOCK", 0x6c41},
+ {"linux/udf_fs_i.h", "UDF_GETVOLIDENT", 0x6c42},
+ {"linux/udf_fs_i.h", "UDF_RELOCATE_BLOCKS", 0x6c43},
+ {"linux/soundcard.h", "SNDCTL_MIDI_PRETIME", 0x6d00},
+ {"linux/synclink.h", "MGSL_IOCSPARAMS", 0x6d00},
+ {"linux/mtio.h", "MTIOCTOP", 0x6d01},
+ {"linux/soundcard.h", "SNDCTL_MIDI_MPUMODE", 0x6d01},
+ {"linux/synclink.h", "MGSL_IOCGPARAMS", 0x6d01},
+ {"linux/mtio.h", "MTIOCGET", 0x6d02},
+ {"linux/soundcard.h", "SNDCTL_MIDI_MPUCMD", 0x6d02},
+ {"linux/synclink.h", "MGSL_IOCSTXIDLE", 0x6d02},
+ {"linux/mtio.h", "MTIOCPOS", 0x6d03},
+ {"linux/synclink.h", "MGSL_IOCGTXIDLE", 0x6d03},
+ {"linux/mtio.h", "MTIOCGETCONFIG", 0x6d04},
+ {"linux/synclink.h", "MGSL_IOCTXENABLE", 0x6d04},
+ {"linux/mtio.h", "MTIOCSETCONFIG", 0x6d05},
+ {"linux/synclink.h", "MGSL_IOCRXENABLE", 0x6d05},
+ {"linux/mtio.h", "MTIOCRDFTSEG", 0x6d06},
+ {"linux/synclink.h", "MGSL_IOCTXABORT", 0x6d06},
+ {"linux/mtio.h", "MTIOCWRFTSEG", 0x6d07},
+ {"linux/synclink.h", "MGSL_IOCGSTATS", 0x6d07},
+ {"linux/mtio.h", "MTIOCVOLINFO", 0x6d08},
+ {"linux/synclink.h", "MGSL_IOCWAITEVENT", 0x6d08},
+ {"linux/mtio.h", "MTIOCGETSIZE", 0x6d09},
+ {"linux/synclink.h", "MGSL_IOCLOOPTXDONE", 0x6d09},
+ {"linux/mtio.h", "MTIOCFTFORMAT", 0x6d0a},
+ {"linux/mtio.h", "MTIOCFTCMD", 0x6d0b},
+ {"linux/synclink.h", "MGSL_IOCCLRMODCOUNT", 0x6d0f},
+ {"linux/zftape.h", "MTIOC_ZFTAPE_GETBLKSZ", 0x6d68},
+ {"linux/ncp_fs.h", "NCP_IOC_NCPREQUEST", 0x6e01},
+ {"linux/ncp_fs.h", "NCP_IOC_GETMOUNTUID", 0x6e02},
+ {"linux/ncp_fs.h", "NCP_IOC_GETMOUNTUID2", 0x6e02},
+ {"linux/ncp_fs.h", "NCP_IOC_CONN_LOGGED_IN", 0x6e03},
+ {"linux/ncp_fs.h", "NCP_IOC_GET_FS_INFO", 0x6e04},
+ {"linux/ncp_fs.h", "NCP_IOC_GET_FS_INFO_V2", 0x6e04},
+ {"linux/ncp_fs.h", "NCP_IOC_SIGN_INIT", 0x6e05},
+ {"linux/ncp_fs.h", "NCP_IOC_SIGN_WANTED", 0x6e06},
+ {"linux/ncp_fs.h", "NCP_IOC_SET_SIGN_WANTED", 0x6e06},
+ {"linux/ncp_fs.h", "NCP_IOC_LOCKUNLOCK", 0x6e07},
+ {"linux/ncp_fs.h", "NCP_IOC_GETROOT", 0x6e08},
+ {"linux/ncp_fs.h", "NCP_IOC_SETROOT", 0x6e08},
+ {"linux/ncp_fs.h", "NCP_IOC_GETOBJECTNAME", 0x6e09},
+ {"linux/ncp_fs.h", "NCP_IOC_SETOBJECTNAME", 0x6e09},
+ {"linux/ncp_fs.h", "NCP_IOC_GETPRIVATEDATA", 0x6e0a},
+ {"linux/ncp_fs.h", "NCP_IOC_SETPRIVATEDATA", 0x6e0a},
+ {"linux/ncp_fs.h", "NCP_IOC_GETCHARSETS", 0x6e0b},
+ {"linux/ncp_fs.h", "NCP_IOC_SETCHARSETS", 0x6e0b},
+ {"linux/ncp_fs.h", "NCP_IOC_GETDENTRYTTL", 0x6e0c},
+ {"linux/ncp_fs.h", "NCP_IOC_SETDENTRYTTL", 0x6e0c},
+ {"linux/matroxfb.h", "MATROXFB_SET_OUTPUT_CONNECTION", 0x6ef8},
+ {"linux/matroxfb.h", "MATROXFB_GET_OUTPUT_CONNECTION", 0x6ef8},
+ {"linux/matroxfb.h", "MATROXFB_GET_AVAILABLE_OUTPUTS", 0x6ef9},
+ {"linux/matroxfb.h", "MATROXFB_SET_OUTPUT_MODE", 0x6efa},
+ {"linux/matroxfb.h", "MATROXFB_GET_OUTPUT_MODE", 0x6efa},
+ {"linux/matroxfb.h", "MATROXFB_GET_ALL_OUTPUTS", 0x6efb},
+ {"linux/rtc.h", "RTC_AIE_ON", 0x7001},
+ {"linux/rtc.h", "RTC_AIE_OFF", 0x7002},
+ {"linux/intermezzo_fs.h", "PRESTO_GETMOUNT", 0x7003},
+ {"linux/rtc.h", "RTC_UIE_ON", 0x7003},
+ {"linux/intermezzo_fs.h", "PRESTO_SETPID", 0x7004},
+ {"linux/rtc.h", "RTC_UIE_OFF", 0x7004},
+ {"linux/rtc.h", "RTC_PIE_ON", 0x7005},
+ {"linux/intermezzo_fs.h", "PRESTO_CLOSE_JOURNALF", 0x7006},
+ {"linux/rtc.h", "RTC_PIE_OFF", 0x7006},
+ {"linux/intermezzo_fs.h", "PRESTO_SET_FSETROOT", 0x7007},
+ {"linux/rtc.h", "RTC_ALM_SET", 0x7007},
+ {"linux/intermezzo_fs.h", "PRESTO_CLEAR_FSETROOT", 0x7008},
+ {"linux/rtc.h", "RTC_ALM_READ", 0x7008},
+ {"linux/intermezzo_fs.h", "PRESTO_SETOPT", 0x7009},
+ {"linux/rtc.h", "RTC_RD_TIME", 0x7009},
+ {"linux/intermezzo_fs.h", "PRESTO_GETOPT", 0x700a},
+ {"linux/rtc.h", "RTC_SET_TIME", 0x700a},
+ {"linux/intermezzo_fs.h", "PRESTO_GET_KMLSIZE", 0x700b},
+ {"linux/rtc.h", "RTC_IRQP_READ", 0x700b},
+ {"linux/intermezzo_fs.h", "PRESTO_GET_RECNO", 0x700c},
+ {"linux/rtc.h", "RTC_IRQP_SET", 0x700c},
+ {"linux/rtc.h", "RTC_EPOCH_READ", 0x700d},
+ {"linux/rtc.h", "RTC_EPOCH_SET", 0x700e},
+ {"linux/rtc.h", "RTC_WIE_ON", 0x700f},
+ {"linux/rtc.h", "RTC_WKALM_SET", 0x700f},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_SETATTR", 0x7010},
+ {"linux/rtc.h", "RTC_WIE_OFF", 0x7010},
+ {"linux/rtc.h", "RTC_WKALM_RD", 0x7010},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_CREATE", 0x7011},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_LINK", 0x7012},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_UNLINK", 0x7013},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_SYMLINK", 0x7014},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_MKDIR", 0x7015},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_RMDIR", 0x7016},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_MKNOD", 0x7017},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_RENAME", 0x7018},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_CLOSE", 0x701a},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_IOPEN", 0x701b},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_SETEXTATTR", 0x701c},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_DELEXTATTR", 0x701d},
+ {"linux/intermezzo_fs.h", "PRESTO_MARK", 0x7020},
+ {"linux/intermezzo_fs.h", "PRESTO_RELEASE_PERMIT", 0x7021},
+ {"linux/intermezzo_fs.h", "PRESTO_CLEAR_ALL_FSETROOTS", 0x7022},
+ {"linux/intermezzo_fs.h", "PRESTO_BACKFETCH_LML", 0x7023},
+ {"linux/intermezzo_fs.h", "PRESTO_REINT", 0x7024},
+ {"linux/intermezzo_fs.h", "PRESTO_CANCEL_LML", 0x7025},
+ {"linux/intermezzo_fs.h", "PRESTO_RESET_FSET", 0x7026},
+ {"linux/intermezzo_fs.h", "PRESTO_COMPLETE_CLOSES", 0x7027},
+ {"linux/intermezzo_fs.h", "PRESTO_REINT_BEGIN", 0x7030},
+ {"linux/intermezzo_fs.h", "PRESTO_DO_REINT", 0x7031},
+ {"linux/intermezzo_fs.h", "PRESTO_REINT_END", 0x7032},
+ {"linux/nvram.h", "NVRAM_INIT", 0x7040},
+ {"linux/nvram.h", "NVRAM_SETCKS", 0x7041},
+ {"linux/ppdev.h", "PPSETMODE", 0x7080},
+ {"linux/ppdev.h", "PPRSTATUS", 0x7081},
+ {"linux/ppdev.h", "PPRCONTROL", 0x7083},
+ {"linux/ppdev.h", "PPWCONTROL", 0x7084},
+ {"linux/ppdev.h", "PPRDATA", 0x7085},
+ {"linux/ppdev.h", "PPWDATA", 0x7086},
+ {"linux/ppdev.h", "PPCLAIM", 0x708b},
+ {"linux/ppdev.h", "PPRELEASE", 0x708c},
+ {"linux/ppdev.h", "PPYIELD", 0x708d},
+ {"linux/ppdev.h", "PPFCONTROL", 0x708e},
+ {"linux/ppdev.h", "PPEXCL", 0x708f},
+ {"linux/ppdev.h", "PPDATADIR", 0x7090},
+ {"linux/ppdev.h", "PPNEGOT", 0x7091},
+ {"linux/ppdev.h", "PPWCTLONIRQ", 0x7092},
+ {"linux/ppdev.h", "PPCLRIRQ", 0x7093},
+ {"linux/ppdev.h", "PPSETPHASE", 0x7094},
+ {"linux/ppdev.h", "PPGETTIME", 0x7095},
+ {"linux/ppdev.h", "PPSETTIME", 0x7096},
+ {"linux/ppdev.h", "PPGETMODES", 0x7097},
+ {"linux/ppdev.h", "PPGETMODE", 0x7098},
+ {"linux/ppdev.h", "PPGETPHASE", 0x7099},
+ {"linux/ppdev.h", "PPGETFLAGS", 0x709a},
+ {"linux/ppdev.h", "PPSETFLAGS", 0x709b},
+ {"linux/serio.h", "SPIOCSTYPE", 0x7101},
+ {"linux/telephony.h", "PHONE_CAPABILITIES", 0x7180},
+ {"linux/telephony.h", "PHONE_CAPABILITIES_LIST", 0x7181},
+ {"linux/telephony.h", "PHONE_CAPABILITIES_CHECK", 0x7182},
+ {"linux/telephony.h", "PHONE_RING", 0x7183},
+ {"linux/telephony.h", "PHONE_HOOKSTATE", 0x7184},
+ {"linux/telephony.h", "PHONE_MAXRINGS", 0x7185},
+ {"linux/telephony.h", "PHONE_RING_CADENCE", 0x7186},
+ {"linux/telephony.h", "OLD_PHONE_RING_START", 0x7187},
+ {"linux/telephony.h", "PHONE_RING_START", 0x7187},
+ {"linux/telephony.h", "PHONE_RING_STOP", 0x7188},
+ {"linux/telephony.h", "PHONE_REC_CODEC", 0x7189},
+ {"linux/telephony.h", "PHONE_REC_START", 0x718a},
+ {"linux/telephony.h", "PHONE_REC_STOP", 0x718b},
+ {"linux/telephony.h", "PHONE_REC_DEPTH", 0x718c},
+ {"linux/telephony.h", "PHONE_FRAME", 0x718d},
+ {"linux/telephony.h", "PHONE_REC_VOLUME", 0x718e},
+ {"linux/telephony.h", "PHONE_REC_LEVEL", 0x718f},
+ {"linux/telephony.h", "PHONE_PLAY_CODEC", 0x7190},
+ {"linux/telephony.h", "PHONE_PLAY_START", 0x7191},
+ {"linux/telephony.h", "PHONE_PLAY_STOP", 0x7192},
+ {"linux/telephony.h", "PHONE_PLAY_DEPTH", 0x7193},
+ {"linux/telephony.h", "PHONE_PLAY_VOLUME", 0x7194},
+ {"linux/telephony.h", "PHONE_PLAY_LEVEL", 0x7195},
+ {"linux/telephony.h", "PHONE_DTMF_READY", 0x7196},
+ {"linux/telephony.h", "PHONE_GET_DTMF", 0x7197},
+ {"linux/telephony.h", "PHONE_GET_DTMF_ASCII", 0x7198},
+ {"linux/telephony.h", "PHONE_DTMF_OOB", 0x7199},
+ {"linux/telephony.h", "PHONE_EXCEPTION", 0x719a},
+ {"linux/telephony.h", "PHONE_PLAY_TONE", 0x719b},
+ {"linux/telephony.h", "PHONE_SET_TONE_ON_TIME", 0x719c},
+ {"linux/telephony.h", "PHONE_SET_TONE_OFF_TIME", 0x719d},
+ {"linux/telephony.h", "PHONE_GET_TONE_ON_TIME", 0x719e},
+ {"linux/telephony.h", "PHONE_GET_TONE_OFF_TIME", 0x719f},
+ {"linux/telephony.h", "PHONE_GET_TONE_STATE", 0x71a0},
+ {"linux/telephony.h", "PHONE_BUSY", 0x71a1},
+ {"linux/telephony.h", "PHONE_RINGBACK", 0x71a2},
+ {"linux/telephony.h", "PHONE_DIALTONE", 0x71a3},
+ {"linux/telephony.h", "PHONE_CPT_STOP", 0x71a4},
+ {"linux/telephony.h", "PHONE_PSTN_SET_STATE", 0x71a4},
+ {"linux/telephony.h", "PHONE_PSTN_GET_STATE", 0x71a5},
+ {"linux/telephony.h", "PHONE_WINK_DURATION", 0x71a6},
+ {"linux/telephony.h", "PHONE_QUERY_CODEC", 0x71a7},
+ {"linux/telephony.h", "PHONE_PSTN_LINETEST", 0x71a8},
+ {"linux/telephony.h", "PHONE_VAD", 0x71a9},
+ {"linux/telephony.h", "PHONE_WINK", 0x71aa},
+ {"linux/ixjuser.h", "IXJCTL_DSP_RESET", 0x71c0},
+ {"linux/ixjuser.h", "IXJCTL_CARDTYPE", 0x71c1},
+ {"linux/ixjuser.h", "IXJCTL_SERIAL", 0x71c2},
+ {"linux/ixjuser.h", "IXJCTL_DSP_TYPE", 0x71c3},
+ {"linux/ixjuser.h", "IXJCTL_DSP_VERSION", 0x71c4},
+ {"linux/ixjuser.h", "IXJCTL_DSP_IDLE", 0x71c5},
+ {"linux/ixjuser.h", "IXJCTL_TESTRAM", 0x71c6},
+ {"linux/ixjuser.h", "IXJCTL_SET_FILTER", 0x71c7},
+ {"linux/ixjuser.h", "IXJCTL_GET_FILTER_HIST", 0x71c8},
+ {"linux/ixjuser.h", "IXJCTL_INIT_TONE", 0x71c9},
+ {"linux/ixjuser.h", "IXJCTL_TONE_CADENCE", 0x71ca},
+ {"linux/ixjuser.h", "IXJCTL_AEC_START", 0x71cb},
+ {"linux/ixjuser.h", "IXJCTL_AEC_STOP", 0x71cc},
+ {"linux/ixjuser.h", "IXJCTL_AEC_GET_LEVEL", 0x71cd},
+ {"linux/ixjuser.h", "IXJCTL_SET_LED", 0x71ce},
+ {"linux/ixjuser.h", "IXJCTL_MIXER", 0x71cf},
+ {"linux/ixjuser.h", "IXJCTL_DAA_COEFF_SET", 0x71d0},
+ {"linux/ixjuser.h", "IXJCTL_PORT", 0x71d1},
+ {"linux/ixjuser.h", "IXJCTL_DAA_AGAIN", 0x71d2},
+ {"linux/ixjuser.h", "IXJCTL_PSTN_LINETEST", 0x71d3},
+ {"linux/ixjuser.h", "IXJCTL_CID", 0x71d4},
+ {"linux/ixjuser.h", "IXJCTL_POTS_PSTN", 0x71d5},
+ {"linux/ixjuser.h", "IXJCTL_FILTER_CADENCE", 0x71d6},
+ {"linux/ixjuser.h", "IXJCTL_PLAY_CID", 0x71d7},
+ {"linux/ixjuser.h", "IXJCTL_VMWI", 0x71d8},
+ {"linux/ixjuser.h", "IXJCTL_CIDCW", 0x71d9},
+ {"linux/ixjuser.h", "IXJCTL_VERSION", 0x71da},
+ {"linux/telephony.h", "PHONE_REC_VOLUME_LINEAR", 0x71db},
+ {"linux/telephony.h", "PHONE_PLAY_VOLUME_LINEAR", 0x71dc},
+ {"linux/ixjuser.h", "IXJCTL_SET_FILTER_RAW", 0x71dd},
+ {"linux/ixjuser.h", "IXJCTL_HZ", 0x71e0},
+ {"linux/ixjuser.h", "IXJCTL_RATE", 0x71e1},
+ {"linux/ixjuser.h", "IXJCTL_FRAMES_READ", 0x71e2},
+ {"linux/ixjuser.h", "IXJCTL_FRAMES_WRITTEN", 0x71e3},
+ {"linux/ixjuser.h", "IXJCTL_READ_WAIT", 0x71e4},
+ {"linux/ixjuser.h", "IXJCTL_WRITE_WAIT", 0x71e5},
+ {"linux/ixjuser.h", "IXJCTL_DRYBUFFER_READ", 0x71e6},
+ {"linux/ixjuser.h", "IXJCTL_DRYBUFFER_CLEAR", 0x71e7},
+ {"linux/ixjuser.h", "IXJCTL_DTMF_PRESCALE", 0x71e8},
+ {"linux/ixjuser.h", "IXJCTL_SIGCTL", 0x71e9},
+ {"linux/ixjuser.h", "IXJCTL_SC_RXG", 0x71ea},
+ {"linux/ixjuser.h", "IXJCTL_SC_TXG", 0x71eb},
+ {"linux/ixjuser.h", "IXJCTL_INTERCOM_START", 0x71fd},
+ {"linux/ixjuser.h", "IXJCTL_INTERCOM_STOP", 0x71fe},
+ {"linux/msdos_fs.h", "VFAT_IOCTL_READDIR_BOTH", 0x7201},
+ {"linux/msdos_fs.h", "VFAT_IOCTL_READDIR_SHORT", 0x7202},
+ {"linux/cdk.h", "STL_BINTR", 0x7314},
+ {"linux/cdk.h", "STL_BSTART", 0x7315},
+ {"linux/cdk.h", "STL_BSTOP", 0x7316},
+ {"linux/cdk.h", "STL_BRESET", 0x7317},
+ {"linux/cdk.h", "STL_GETPFLAG", 0x7350},
+ {"linux/cdk.h", "STL_SETPFLAG", 0x7351},
+ {"linux/if_ppp.h", "PPPIOCGCHAN", 0x7437},
+ {"linux/if_ppp.h", "PPPIOCATTCHAN", 0x7438},
+ {"linux/if_ppp.h", "PPPIOCDISCONN", 0x7439},
+ {"linux/if_ppp.h", "PPPIOCCONNECT", 0x743a},
+ {"linux/if_ppp.h", "PPPIOCSMRRU", 0x743b},
+ {"linux/if_ppp.h", "PPPIOCDETACH", 0x743c},
+ {"linux/if_ppp.h", "PPPIOCATTACH", 0x743d},
+ {"linux/if_ppp.h", "PPPIOCNEWUNIT", 0x743e},
+ {"linux/if_ppp.h", "PPPIOCGIDLE", 0x743f},
+ {"linux/if_ppp.h", "PPPIOCSDEBUG", 0x7440},
+ {"linux/if_ppp.h", "PPPIOCGDEBUG", 0x7441},
+ {"linux/if_ppp.h", "PPPIOCSACTIVE", 0x7446},
+ {"linux/if_ppp.h", "PPPIOCSPASS", 0x7447},
+ {"linux/if_ppp.h", "PPPIOCSNPMODE", 0x744b},
+ {"linux/if_ppp.h", "PPPIOCGNPMODE", 0x744c},
+ {"linux/if_ppp.h", "PPPIOCSCOMPRESS", 0x744d},
+ {"linux/if_ppp.h", "PPPIOCXFERUNIT", 0x744e},
+ {"linux/if_ppp.h", "PPPIOCSXASYNCMAP", 0x744f},
+ {"linux/if_ppp.h", "PPPIOCGXASYNCMAP", 0x7450},
+ {"linux/if_ppp.h", "PPPIOCSMAXCID", 0x7451},
+ {"linux/if_ppp.h", "PPPIOCSMRU", 0x7452},
+ {"linux/if_ppp.h", "PPPIOCGMRU", 0x7453},
+ {"linux/if_ppp.h", "PPPIOCSRASYNCMAP", 0x7454},
+ {"linux/if_ppp.h", "PPPIOCGRASYNCMAP", 0x7455},
+ {"linux/if_ppp.h", "PPPIOCGUNIT", 0x7456},
+ {"linux/if_ppp.h", "PPPIOCSASYNCMAP", 0x7457},
+ {"linux/if_ppp.h", "PPPIOCGASYNCMAP", 0x7458},
+ {"linux/if_ppp.h", "PPPIOCSFLAGS", 0x7459},
+ {"linux/if_ppp.h", "PPPIOCGFLAGS", 0x745a},
+ {"linux/jffs.h", "JFFS_PRINT_HASH", 0x745a},
+ {"linux/jffs.h", "JFFS_PRINT_TREE", 0x745b},
+ {"linux/jffs.h", "JFFS_GET_STATUS", 0x745c},
+ {"linux/isdn_ppp.h", "PPPIOCGCALLINFO", 0x7480},
+ {"linux/isdn_ppp.h", "PPPIOCBUNDLE", 0x7481},
+ {"linux/isdn_ppp.h", "PPPIOCGMPFLAGS", 0x7482},
+ {"linux/isdn_ppp.h", "PPPIOCSMPFLAGS", 0x7483},
+ {"linux/isdn_ppp.h", "PPPIOCSMPMTU", 0x7484},
+ {"linux/isdn_ppp.h", "PPPIOCSMPMRU", 0x7485},
+ {"linux/isdn_ppp.h", "PPPIOCGCOMPRESSORS", 0x7486},
+ {"linux/isdn_ppp.h", "PPPIOCSCOMPRESSOR", 0x7487},
+ {"linux/isdn_ppp.h", "PPPIOCGIFNAME", 0x7488},
+ {"linux/toshiba.h", "TOSH_SMM", 0x7490},
+ {"linux/smb_fs.h", "SMB_IOC_GETMOUNTUID", 0x7501},
+ {"linux/smb_fs.h", "SMB_IOC_NEWCONN", 0x7502},
+ {"linux/smb_fs.h", "SMB_IOC_GETMOUNTUID32", 0x7503},
+ {"linux/sonypi.h", "SONYPI_IOCGBRT", 0x7600},
+ {"linux/sonypi.h", "SONYPI_IOCSBRT", 0x7600},
+ {"linux/ext2_fs.h", "EXT2_IOC_GETVERSION", 0x7601},
+ {"linux/ext3_fs.h", "EXT3_IOC_GETVERSION_OLD", 0x7601},
+ {"linux/videodev.h", "VIDIOCGCAP", 0x7601},
+ {"linux/ext2_fs.h", "EXT2_IOC_SETVERSION", 0x7602},
+ {"linux/ext3_fs.h", "EXT3_IOC_SETVERSION_OLD", 0x7602},
+ {"linux/sonypi.h", "SONYPI_IOCGBAT1CAP", 0x7602},
+ {"linux/videodev.h", "VIDIOCGCHAN", 0x7602},
+ {"linux/sonypi.h", "SONYPI_IOCGBAT1REM", 0x7603},
+ {"linux/videodev.h", "VIDIOCSCHAN", 0x7603},
+ {"linux/sonypi.h", "SONYPI_IOCGBAT2CAP", 0x7604},
+ {"linux/videodev.h", "VIDIOCGTUNER", 0x7604},
+ {"linux/sonypi.h", "SONYPI_IOCGBAT2REM", 0x7605},
+ {"linux/videodev.h", "VIDIOCSTUNER", 0x7605},
+ {"linux/videodev.h", "VIDIOCGPICT", 0x7606},
+ {"linux/sonypi.h", "SONYPI_IOCGBATFLAGS", 0x7607},
+ {"linux/videodev.h", "VIDIOCSPICT", 0x7607},
+ {"linux/sonypi.h", "SONYPI_IOCGBLUE", 0x7608},
+ {"linux/videodev.h", "VIDIOCCAPTURE", 0x7608},
+ {"linux/sonypi.h", "SONYPI_IOCSBLUE", 0x7609},
+ {"linux/videodev.h", "VIDIOCGWIN", 0x7609},
+ {"linux/videodev.h", "VIDIOCSWIN", 0x760a},
+ {"linux/videodev.h", "VIDIOCGFBUF", 0x760b},
+ {"linux/videodev.h", "VIDIOCSFBUF", 0x760c},
+ {"linux/videodev.h", "VIDIOCKEY", 0x760d},
+ {"linux/videodev.h", "VIDIOCGFREQ", 0x760e},
+ {"linux/videodev.h", "VIDIOCSFREQ", 0x760f},
+ {"linux/videodev.h", "VIDIOCGAUDIO", 0x7610},
+ {"linux/videodev.h", "VIDIOCSAUDIO", 0x7611},
+ {"linux/videodev.h", "VIDIOCSYNC", 0x7612},
+ {"linux/videodev.h", "VIDIOCMCAPTURE", 0x7613},
+ {"linux/videodev.h", "VIDIOCGMBUF", 0x7614},
+ {"linux/videodev.h", "VIDIOCGUNIT", 0x7615},
+ {"linux/videodev.h", "VIDIOCGCAPTURE", 0x7616},
+ {"linux/videodev.h", "VIDIOCSCAPTURE", 0x7617},
+ {"linux/videodev.h", "VIDIOCSPLAYMODE", 0x7618},
+ {"linux/videodev.h", "VIDIOCSWRITEMODE", 0x7619},
+ {"linux/videodev.h", "VIDIOCGPLAYINFO", 0x761a},
+ {"linux/videodev.h", "VIDIOCSMICROCODE", 0x761b},
+ {"linux/videodev.h", "VIDIOCGVBIFMT", 0x761c},
+ {"linux/videodev.h", "VIDIOCSVBIFMT", 0x761d},
+ {"linux/meye.h", "MEYEIOC_G_PARAMS", 0x76c0},
+ {"linux/meye.h", "MEYEIOC_S_PARAMS", 0x76c1},
+ {"linux/meye.h", "MEYEIOC_QBUF_CAPT", 0x76c2},
+ {"linux/meye.h", "MEYEIOC_SYNC", 0x76c3},
+ {"linux/meye.h", "MEYEIOC_STILLCAPT", 0x76c4},
+ {"linux/meye.h", "MEYEIOC_STILLJCAPT", 0x76c5},
+ {"linux/dn.h", "SIOCSNETADDR", 0x89e0},
+ {"linux/dn.h", "OSIOCSNETADDR", 0x89e0},
+ {"linux/dn.h", "SIOCGNETADDR", 0x89e1},
+ {"linux/dn.h", "OSIOCGNETADDR", 0x89e1},
+ {"linux/auto_fs.h", "AUTOFS_IOC_READY", 0x9360},
+ {"linux/auto_fs.h", "AUTOFS_IOC_FAIL", 0x9361},
+ {"linux/auto_fs.h", "AUTOFS_IOC_CATATONIC", 0x9362},
+ {"linux/auto_fs.h", "AUTOFS_IOC_PROTOVER", 0x9363},
+ {"linux/auto_fs.h", "AUTOFS_IOC_SETTIMEOUT", 0x9364},
+ {"linux/auto_fs.h", "AUTOFS_IOC_EXPIRE", 0x9365},
+ {"linux/auto_fs4.h", "AUTOFS_IOC_EXPIRE_MULTI", 0x9366},
+ {"linux/nbd.h", "NBD_SET_SOCK", 0xab00},
+ {"linux/nbd.h", "NBD_SET_BLKSIZE", 0xab01},
+ {"linux/nbd.h", "NBD_SET_SIZE", 0xab02},
+ {"linux/nbd.h", "NBD_DO_IT", 0xab03},
+ {"linux/nbd.h", "NBD_CLEAR_SOCK", 0xab04},
+ {"linux/nbd.h", "NBD_CLEAR_QUE", 0xab05},
+ {"linux/nbd.h", "NBD_PRINT_DEBUG", 0xab06},
+ {"linux/nbd.h", "NBD_SET_SIZE_BLOCKS", 0xab07},
+ {"linux/nbd.h", "NBD_DISCONNECT", 0xab08},
+ {"linux/raw.h", "RAW_SETBIND", 0xac00},
+ {"linux/raw.h", "RAW_GETBIND", 0xac01},
+ {"linux/if_pppox.h", "PPPOEIOCSFWD", 0xb100},
+ {"linux/if_pppox.h", "PPPOEIOCDFWD", 0xb101},
+ {"linux/reiserfs_fs.h", "REISERFS_IOC_UNPACK", 0xcd01},
+ {"linux/lvm.h", "VG_CREATE_OLD", 0xfe00},
+ {"linux/lvm.h", "VG_REMOVE", 0xfe01},
+ {"linux/lvm.h", "VG_EXTEND", 0xfe03},
+ {"linux/lvm.h", "VG_REDUCE", 0xfe04},
+ {"linux/lvm.h", "VG_STATUS", 0xfe05},
+ {"linux/lvm.h", "VG_STATUS_GET_COUNT", 0xfe06},
+ {"linux/lvm.h", "VG_STATUS_GET_NAMELIST", 0xfe07},
+ {"linux/lvm.h", "VG_SET_EXTENDABLE", 0xfe08},
+ {"linux/lvm.h", "VG_RENAME", 0xfe09},
+ {"linux/lvm.h", "VG_CREATE", 0xfe0a},
+ {"linux/lvm.h", "LV_CREATE", 0xfe20},
+ {"linux/lvm.h", "LV_REMOVE", 0xfe21},
+ {"linux/lvm.h", "LV_ACTIVATE", 0xfe22},
+ {"linux/lvm.h", "LV_DEACTIVATE", 0xfe23},
+ {"linux/lvm.h", "LV_EXTEND", 0xfe24},
+ {"linux/lvm.h", "LV_REDUCE", 0xfe25},
+ {"linux/lvm.h", "LV_STATUS_BYNAME", 0xfe26},
+ {"linux/lvm.h", "LV_STATUS_BYINDEX", 0xfe27},
+ {"linux/lvm.h", "LV_SET_ACCESS", 0xfe28},
+ {"linux/lvm.h", "LV_SET_ALLOCATION", 0xfe29},
+ {"linux/lvm.h", "LV_SET_STATUS", 0xfe2a},
+ {"linux/lvm.h", "LE_REMAP", 0xfe2b},
+ {"linux/lvm.h", "LV_SNAPSHOT_USE_RATE", 0xfe2c},
+ {"linux/lvm.h", "LV_STATUS_BYDEV", 0xfe2e},
+ {"linux/lvm.h", "LV_RENAME", 0xfe2f},
+ {"linux/lvm.h", "LV_BMAP", 0xfe30},
+ {"linux/lvm.h", "PV_STATUS", 0xfe40},
+ {"linux/lvm.h", "PV_CHANGE", 0xfe41},
+ {"linux/lvm.h", "PV_FLUSH", 0xfe42},
+ {"linux/lvm.h", "PE_LOCK_UNLOCK", 0xfe50},
+ {"linux/lvm.h", "LVM_GET_IOP_VERSION", 0xfe98},
+ {"linux/lvm.h", "LVM_RESET", 0xfe99},
+ {"linux/lvm.h", "LVM_LOCK_LVM", 0xff00},
diff --git a/strace/linux/mips/ioctlent.sh b/strace/linux/mips/ioctlent.sh
new file mode 100644
index 0000000..b79d2c7
--- /dev/null
+++ b/strace/linux/mips/ioctlent.sh
@@ -0,0 +1,98 @@
+#!/bin/sh
+# Copyright (c) 1993, 1994, 1995 Rick Sladkey <jrs@world.std.com>
+# All rights reserved.
+#
+# Copyright (c) 1995, 1996 Michael Elizabeth Chastain <mec@duracef.shout.net>
+# 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.
+#
+# $Id: ioctlent.sh,v 1.1 1999/11/01 00:46:49 wichert Exp $
+
+# Files to find.
+file_find='asm/*.h linux/*.h scsi/*.h'
+
+# Files to stop.
+file_stop='asm/byteorder.h linux/config.h linux/pci.h linux/xd.h'
+
+# Defs to find.
+# Work on the kernel source to convert all to df_iowr.
+# Don't know how to find low-numbered ioctls in linux/mc146818rtc.h.
+df_name='^[ ]*#[ ]*define[ ]+[A-Z_][A-Z0-9_]*[ ]+'
+df_iowr='_IO|_IOR|_IOW|_IOWR'
+df_NNNN='0[Xx](03|06|22|46|4B|4C|53|54|56|89|90)[0-9A-Fa-f][0-9A-Fa-f]'
+df_4359='0[Xx]4359[0-9A-Fa-f][0-9A-Fa-f]' # linux/cyclades.h
+df_470N='470[0-9]' # linux/fs.h (only in 1.2.13)
+df_smix='MIXER_READ|MIXER_WRITE' # linux/soundcard.h
+df_12NN='12[3-4][0-9]' # linux/umsdos_fs.h (only in 1.2.13)
+df_tail='([() ]|$)'
+def_find="$df_name($df_iowr|$df_NNNN|$df_4359|$df_470N|$df_smix|$df_12NN)$df_tail"
+
+# Defs to stop.
+ds_tail='_MAGIC|_PATCH'
+ds_fdmp='FD(DEF|GET|SET)MEDIAPRM' # linux/fd.h aliases (only in 1.2.13)
+ds_mtio='MTIOC(GET|SET)CONFIG' # linux/mtio.h needs config (only in 1.2.13)
+def_stop="$ds_tail|$ds_fdmp|$ds_mtio"
+
+# Validate arg count.
+if [ $# -ne 1 ]
+then
+ echo "usage: $0 include-directory" >&2
+ exit 1
+fi
+
+# Grep through the files.
+(
+ # Construct list: find files minus stop files.
+ cd $1 || exit
+ file_list=`(ls $file_find $file_stop $file_stop 2>/dev/null) | sort | uniq -u`
+
+ # Grep matching #define lines.
+ # Transform to C structure form.
+ # Filter out stop list.
+ egrep "$def_find" $file_list |
+ sed -n -e 's/^\(.*\):#[ ]*define[ ]*\([A-Z_][A-Z0-9_]*\).*$/ { "\1", "\2", \2 },/p' |
+ egrep -v "$def_stop"
+) > ioctlent.tmp
+
+# Generate the output file.
+echo '/* This file is automatically generated by ioctlent.sh */'
+echo
+echo '#include <sys/types.h>'
+echo
+echo '/* Needed for <linux/baycom.h> */'
+echo '#define BAYCOM_DEBUG'
+echo
+echo '/* Needed for <linux/cyclades.h> */'
+echo '#include <linux/termios.h>'
+echo '#include <linux/tqueue.h>'
+echo
+awk '{ print "#include <" substr($2, 2, length($2) - 3) ">" }' ioctlent.tmp | sort -u
+echo
+echo 'struct ioctlent ioctlent [] ='
+echo '{'
+cat ioctlent.tmp
+echo '};'
+
+# Clean up.
+rm -f ioctlent.tmp
diff --git a/strace/linux/mips/signalent.h b/strace/linux/mips/signalent.h
new file mode 100644
index 0000000..2cf746a
--- /dev/null
+++ b/strace/linux/mips/signalent.h
@@ -0,0 +1,32 @@
+ "SIG_0", /* 0 */
+ "SIGHUP", /* 1 */
+ "SIGINT", /* 2 */
+ "SIGQUIT", /* 3 */
+ "SIGILL", /* 4 */
+ "SIGTRAP", /* 5 */
+ "SIGIOT", /* 6 */
+ "SIGEMT", /* 7 */
+ "SIGFPE", /* 8 */
+ "SIGKILL", /* 9 */
+ "SIGBUS", /* 10 */
+ "SIGSEGV", /* 11 */
+ "SIGSYS", /* 12 */
+ "SIGPIPE", /* 13 */
+ "SIGALRM", /* 14 */
+ "SIGTERM", /* 15 */
+ "SIGUSR1", /* 16 */
+ "SIGUSR2", /* 17 */
+ "SIGCHLD", /* 18 */
+ "SIGPWR", /* 19 */
+ "SIGWINCH", /* 20 */
+ "SIGURG", /* 21 */
+ "SIGIO", /* 22 */
+ "SIGSTOP", /* 23 */
+ "SIGTSTP", /* 24 */
+ "SIGCONT", /* 25 */
+ "SIGTTIN", /* 26 */
+ "SIGTTOU", /* 27 */
+ "SIGVTALRM", /* 28 */
+ "SIGPROF", /* 29 */
+ "SIGXCPU", /* 30 */
+ "SIGXFSZ", /* 31 */
diff --git a/strace/linux/mips/syscallent.h b/strace/linux/mips/syscallent.h
new file mode 100644
index 0000000..a9edc62
--- /dev/null
+++ b/strace/linux/mips/syscallent.h
@@ -0,0 +1,5000 @@
+ { 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, printargs, "SYS_64", }, /* 064 */
+ { 0, 0, printargs, "SYS_65", }, /* 065 */
+ { 0, 0, printargs, "SYS_66", }, /* 066 */
+ { 0, 0, printargs, "SYS_67", }, /* 067 */
+ { 0, 0, printargs, "SYS_68", }, /* 068 */
+ { 0, 0, printargs, "SYS_69", }, /* 069 */
+ { 0, 0, printargs, "svr4_advfs" }, /* 070 */
+ { 0, 0, printargs, "svr4_unadvfs" }, /* 071 */
+ { 0, 0, printargs, "SYS_72", }, /* 072 */
+ { 0, 0, printargs, "SYS_73", }, /* 073 */
+ { 0, 0, printargs, "svr4_rfstart" }, /* 074 */
+ { 0, 0, printargs, "SYS_75", }, /* 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, printargs, "SYS_105", }, /* 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, printargs, "SYS_140", }, /* 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, printargs, "SYS_146", }, /* 146 */
+ { 0, 0, printargs, "SYS_147", }, /* 147 */
+ { 0, 0, printargs, "SYS_148", }, /* 148 */
+ { 0, 0, printargs, "SYS_149", }, /* 149 */
+ { 0, 0, printargs, "SYS_150", }, /* 150 */
+ { 0, 0, printargs, "SYS_151", }, /* 151 */
+ { 0, 0, printargs, "SYS_152", }, /* 152 */
+ { 0, 0, printargs, "SYS_153", }, /* 153 */
+ { 0, 0, printargs, "SYS_154", }, /* 154 */
+ { 0, 0, printargs, "SYS_155", }, /* 155 */
+ { 0, 0, printargs, "SYS_156", }, /* 156 */
+ { 0, 0, printargs, "SYS_157", }, /* 157 */
+ { 0, 0, printargs, "SYS_158", }, /* 158 */
+ { 0, 0, printargs, "SYS_159", }, /* 159 */
+ { 0, 0, printargs, "SYS_160", }, /* 160 */
+ { 0, 0, printargs, "SYS_161", }, /* 161 */
+ { 0, 0, printargs, "SYS_162", }, /* 162 */
+ { 0, 0, printargs, "SYS_163", }, /* 163 */
+ { 0, 0, printargs, "SYS_164", }, /* 164 */
+ { 0, 0, printargs, "SYS_165", }, /* 165 */
+ { 0, 0, printargs, "SYS_166", }, /* 166 */
+ { 0, 0, printargs, "SYS_167", }, /* 167 */
+ { 0, 0, printargs, "SYS_168", }, /* 168 */
+ { 0, 0, printargs, "SYS_169", }, /* 169 */
+ { 0, 0, printargs, "SYS_170", }, /* 170 */
+ { 0, 0, printargs, "SYS_171", }, /* 171 */
+ { 0, 0, printargs, "SYS_172", }, /* 172 */
+ { 0, 0, printargs, "SYS_173", }, /* 173 */
+ { 0, 0, printargs, "SYS_174", }, /* 174 */
+ { 0, 0, printargs, "SYS_175", }, /* 175 */
+ { 0, 0, printargs, "SYS_176", }, /* 176 */
+ { 0, 0, printargs, "SYS_177", }, /* 177 */
+ { 0, 0, printargs, "SYS_178", }, /* 178 */
+ { 0, 0, printargs, "SYS_179", }, /* 179 */
+ { 0, 0, printargs, "SYS_180", }, /* 180 */
+ { 0, 0, printargs, "SYS_181", }, /* 181 */
+ { 0, 0, printargs, "SYS_182", }, /* 182 */
+ { 0, 0, printargs, "SYS_183", }, /* 183 */
+ { 0, 0, printargs, "SYS_184", }, /* 184 */
+ { 0, 0, printargs, "SYS_185", }, /* 185 */
+ { 0, 0, printargs, "SYS_186", }, /* 186 */
+ { 0, 0, printargs, "SYS_187", }, /* 187 */
+ { 0, 0, printargs, "SYS_188", }, /* 188 */
+ { 0, 0, printargs, "SYS_189", }, /* 189 */
+ { 0, 0, printargs, "SYS_190", }, /* 190 */
+ { 0, 0, printargs, "SYS_191", }, /* 191 */
+ { 0, 0, printargs, "SYS_192", }, /* 192 */
+ { 0, 0, printargs, "SYS_193", }, /* 193 */
+ { 0, 0, printargs, "SYS_194", }, /* 194 */
+ { 0, 0, printargs, "SYS_195", }, /* 195 */
+ { 0, 0, printargs, "SYS_196", }, /* 196 */
+ { 0, 0, printargs, "SYS_197", }, /* 197 */
+ { 0, 0, printargs, "SYS_198", }, /* 198 */
+ { 0, 0, printargs, "SYS_199", }, /* 199 */
+ { 0, 0, printargs, "SYS_200", }, /* 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, printargs, "SYS_209", }, /* 209 */
+ { 0, 0, printargs, "SYS_210", }, /* 210 */
+ { 0, 0, printargs, "SYS_211", }, /* 211 */
+ { 0, 0, printargs, "SYS_212", }, /* 212 */
+ { 0, 0, printargs, "SYS_213", }, /* 213 */
+ { 0, 0, printargs, "SYS_214", }, /* 214 */
+ { 0, 0, printargs, "SYS_215", }, /* 215 */
+ { 0, 0, printargs, "SYS_216", }, /* 216 */
+ { 0, 0, printargs, "SYS_217", }, /* 217 */
+ { 0, 0, printargs, "SYS_218", }, /* 218 */
+ { 0, 0, printargs, "SYS_219", }, /* 219 */
+ { 0, 0, printargs, "SYS_220", }, /* 220 */
+ { 0, 0, printargs, "SYS_221", }, /* 221 */
+ { 0, 0, printargs, "SYS_222", }, /* 222 */
+ { 0, 0, printargs, "SYS_223", }, /* 223 */
+ { 0, 0, printargs, "SYS_224", }, /* 224 */
+ { 0, 0, printargs, "SYS_225", }, /* 225 */
+ { 0, 0, printargs, "SYS_226", }, /* 226 */
+ { 0, 0, printargs, "SYS_227", }, /* 227 */
+ { 0, 0, printargs, "SYS_228", }, /* 228 */
+ { 0, 0, printargs, "SYS_229", }, /* 229 */
+ { 0, 0, printargs, "SYS_230", }, /* 230 */
+ { 0, 0, printargs, "SYS_231", }, /* 231 */
+ { 0, 0, printargs, "SYS_232", }, /* 232 */
+ { 0, 0, printargs, "SYS_233", }, /* 233 */
+ { 0, 0, printargs, "SYS_234", }, /* 234 */
+ { 0, 0, printargs, "SYS_235", }, /* 235 */
+ { 0, 0, printargs, "SYS_236", }, /* 236 */
+ { 0, 0, printargs, "SYS_237", }, /* 237 */
+ { 0, 0, printargs, "SYS_238", }, /* 238 */
+ { 0, 0, printargs, "SYS_239", }, /* 239 */
+ { 0, 0, printargs, "SYS_240", }, /* 240 */
+ { 0, 0, printargs, "SYS_241" }, /* 241 */
+ { 0, 0, printargs, "SYS_242" }, /* 242 */
+ { 0, 0, printargs, "SYS_243" }, /* 243 */
+ { 0, 0, printargs, "SYS_244" }, /* 244 */
+ { 0, 0, printargs, "SYS_245" }, /* 245 */
+ { 0, 0, printargs, "SYS_246" }, /* 246 */
+ { 0, 0, printargs, "SYS_247" }, /* 247 */
+ { 0, 0, printargs, "SYS_248" }, /* 248 */
+ { 0, 0, printargs, "SYS_249" }, /* 249 */
+ { 0, 0, printargs, "SYS_250" }, /* 250 */
+ { 0, 0, printargs, "SYS_251" }, /* 251 */
+ { 0, 0, printargs, "SYS_252" }, /* 252 */
+ { 0, 0, printargs, "SYS_253" }, /* 253 */
+ { 0, 0, printargs, "SYS_254" }, /* 254 */
+ { 0, 0, printargs, "SYS_255" }, /* 255 */
+ { 0, 0, printargs, "SYS_256" }, /* 256 */
+ { 0, 0, printargs, "SYS_257" }, /* 257 */
+ { 0, 0, printargs, "SYS_258" }, /* 258 */
+ { 0, 0, printargs, "SYS_259" }, /* 259 */
+ { 0, 0, printargs, "SYS_260" }, /* 260 */
+ { 0, 0, printargs, "SYS_261" }, /* 261 */
+ { 0, 0, printargs, "SYS_262" }, /* 262 */
+ { 0, 0, printargs, "SYS_263" }, /* 263 */
+ { 0, 0, printargs, "SYS_264" }, /* 264 */
+ { 0, 0, printargs, "SYS_265" }, /* 265 */
+ { 0, 0, printargs, "SYS_266" }, /* 266 */
+ { 0, 0, printargs, "SYS_267" }, /* 267 */
+ { 0, 0, printargs, "SYS_268" }, /* 268 */
+ { 0, 0, printargs, "SYS_269" }, /* 269 */
+ { 0, 0, printargs, "SYS_270" }, /* 270 */
+ { 0, 0, printargs, "SYS_271" }, /* 271 */
+ { 0, 0, printargs, "SYS_272" }, /* 272 */
+ { 0, 0, printargs, "SYS_273" }, /* 273 */
+ { 0, 0, printargs, "SYS_274" }, /* 274 */
+ { 0, 0, printargs, "SYS_275" }, /* 275 */
+ { 0, 0, printargs, "SYS_276" }, /* 276 */
+ { 0, 0, printargs, "SYS_277" }, /* 277 */
+ { 0, 0, printargs, "SYS_278" }, /* 278 */
+ { 0, 0, printargs, "SYS_279" }, /* 279 */
+ { 0, 0, printargs, "SYS_280" }, /* 280 */
+ { 0, 0, printargs, "SYS_281" }, /* 281 */
+ { 0, 0, printargs, "SYS_282" }, /* 282 */
+ { 0, 0, printargs, "SYS_283" }, /* 283 */
+ { 0, 0, printargs, "SYS_284" }, /* 284 */
+ { 0, 0, printargs, "SYS_285" }, /* 285 */
+ { 0, 0, printargs, "SYS_286" }, /* 286 */
+ { 0, 0, printargs, "SYS_287" }, /* 287 */
+ { 0, 0, printargs, "SYS_288" }, /* 288 */
+ { 0, 0, printargs, "SYS_289" }, /* 289 */
+ { 0, 0, printargs, "SYS_290" }, /* 290 */
+ { 0, 0, printargs, "SYS_291" }, /* 291 */
+ { 0, 0, printargs, "SYS_292" }, /* 292 */
+ { 0, 0, printargs, "SYS_293" }, /* 293 */
+ { 0, 0, printargs, "SYS_294" }, /* 294 */
+ { 0, 0, printargs, "SYS_295" }, /* 295 */
+ { 0, 0, printargs, "SYS_296" }, /* 296 */
+ { 0, 0, printargs, "SYS_297" }, /* 297 */
+ { 0, 0, printargs, "SYS_298" }, /* 298 */
+ { 0, 0, printargs, "SYS_299" }, /* 299 */
+ { 0, 0, printargs, "SYS_300" }, /* 300 */
+ { 0, 0, printargs, "SYS_301" }, /* 301 */
+ { 0, 0, printargs, "SYS_302" }, /* 302 */
+ { 0, 0, printargs, "SYS_303" }, /* 303 */
+ { 0, 0, printargs, "SYS_304" }, /* 304 */
+ { 0, 0, printargs, "SYS_305" }, /* 305 */
+ { 0, 0, printargs, "SYS_306" }, /* 306 */
+ { 0, 0, printargs, "SYS_307" }, /* 307 */
+ { 0, 0, printargs, "SYS_308" }, /* 308 */
+ { 0, 0, printargs, "SYS_309" }, /* 309 */
+ { 0, 0, printargs, "SYS_310" }, /* 310 */
+ { 0, 0, printargs, "SYS_311" }, /* 311 */
+ { 0, 0, printargs, "SYS_312" }, /* 312 */
+ { 0, 0, printargs, "SYS_313" }, /* 313 */
+ { 0, 0, printargs, "SYS_314" }, /* 314 */
+ { 0, 0, printargs, "SYS_315" }, /* 315 */
+ { 0, 0, printargs, "SYS_316" }, /* 316 */
+ { 0, 0, printargs, "SYS_317" }, /* 317 */
+ { 0, 0, printargs, "SYS_318" }, /* 318 */
+ { 0, 0, printargs, "SYS_319" }, /* 319 */
+ { 0, 0, printargs, "SYS_320" }, /* 320 */
+ { 0, 0, printargs, "SYS_321" }, /* 321 */
+ { 0, 0, printargs, "SYS_322" }, /* 322 */
+ { 0, 0, printargs, "SYS_323" }, /* 323 */
+ { 0, 0, printargs, "SYS_324" }, /* 324 */
+ { 0, 0, printargs, "SYS_325" }, /* 325 */
+ { 0, 0, printargs, "SYS_326" }, /* 326 */
+ { 0, 0, printargs, "SYS_327" }, /* 327 */
+ { 0, 0, printargs, "SYS_328" }, /* 328 */
+ { 0, 0, printargs, "SYS_329" }, /* 329 */
+ { 0, 0, printargs, "SYS_330" }, /* 330 */
+ { 0, 0, printargs, "SYS_331" }, /* 331 */
+ { 0, 0, printargs, "SYS_332" }, /* 332 */
+ { 0, 0, printargs, "SYS_333" }, /* 333 */
+ { 0, 0, printargs, "SYS_334" }, /* 334 */
+ { 0, 0, printargs, "SYS_335" }, /* 335 */
+ { 0, 0, printargs, "SYS_336" }, /* 336 */
+ { 0, 0, printargs, "SYS_337" }, /* 337 */
+ { 0, 0, printargs, "SYS_338" }, /* 338 */
+ { 0, 0, printargs, "SYS_339" }, /* 339 */
+ { 0, 0, printargs, "SYS_340" }, /* 340 */
+ { 0, 0, printargs, "SYS_341" }, /* 341 */
+ { 0, 0, printargs, "SYS_342" }, /* 342 */
+ { 0, 0, printargs, "SYS_343" }, /* 343 */
+ { 0, 0, printargs, "SYS_344" }, /* 344 */
+ { 0, 0, printargs, "SYS_345" }, /* 345 */
+ { 0, 0, printargs, "SYS_346" }, /* 346 */
+ { 0, 0, printargs, "SYS_347" }, /* 347 */
+ { 0, 0, printargs, "SYS_348" }, /* 348 */
+ { 0, 0, printargs, "SYS_349" }, /* 349 */
+ { 0, 0, printargs, "SYS_350" }, /* 350 */
+ { 0, 0, printargs, "SYS_351" }, /* 351 */
+ { 0, 0, printargs, "SYS_352" }, /* 352 */
+ { 0, 0, printargs, "SYS_353" }, /* 353 */
+ { 0, 0, printargs, "SYS_354" }, /* 354 */
+ { 0, 0, printargs, "SYS_355" }, /* 355 */
+ { 0, 0, printargs, "SYS_356" }, /* 356 */
+ { 0, 0, printargs, "SYS_357" }, /* 357 */
+ { 0, 0, printargs, "SYS_358" }, /* 358 */
+ { 0, 0, printargs, "SYS_359" }, /* 359 */
+ { 0, 0, printargs, "SYS_360" }, /* 360 */
+ { 0, 0, printargs, "SYS_361" }, /* 361 */
+ { 0, 0, printargs, "SYS_362" }, /* 362 */
+ { 0, 0, printargs, "SYS_363" }, /* 363 */
+ { 0, 0, printargs, "SYS_364" }, /* 364 */
+ { 0, 0, printargs, "SYS_365" }, /* 365 */
+ { 0, 0, printargs, "SYS_366" }, /* 366 */
+ { 0, 0, printargs, "SYS_367" }, /* 367 */
+ { 0, 0, printargs, "SYS_368" }, /* 368 */
+ { 0, 0, printargs, "SYS_369" }, /* 369 */
+ { 0, 0, printargs, "SYS_370" }, /* 370 */
+ { 0, 0, printargs, "SYS_371" }, /* 371 */
+ { 0, 0, printargs, "SYS_372" }, /* 372 */
+ { 0, 0, printargs, "SYS_373" }, /* 373 */
+ { 0, 0, printargs, "SYS_374" }, /* 374 */
+ { 0, 0, printargs, "SYS_375" }, /* 375 */
+ { 0, 0, printargs, "SYS_376" }, /* 376 */
+ { 0, 0, printargs, "SYS_377" }, /* 377 */
+ { 0, 0, printargs, "SYS_378" }, /* 378 */
+ { 0, 0, printargs, "SYS_379" }, /* 379 */
+ { 0, 0, printargs, "SYS_380" }, /* 380 */
+ { 0, 0, printargs, "SYS_381" }, /* 381 */
+ { 0, 0, printargs, "SYS_382" }, /* 382 */
+ { 0, 0, printargs, "SYS_383" }, /* 383 */
+ { 0, 0, printargs, "SYS_384" }, /* 384 */
+ { 0, 0, printargs, "SYS_385" }, /* 385 */
+ { 0, 0, printargs, "SYS_386" }, /* 386 */
+ { 0, 0, printargs, "SYS_387" }, /* 387 */
+ { 0, 0, printargs, "SYS_388" }, /* 388 */
+ { 0, 0, printargs, "SYS_389" }, /* 389 */
+ { 0, 0, printargs, "SYS_390" }, /* 390 */
+ { 0, 0, printargs, "SYS_391" }, /* 391 */
+ { 0, 0, printargs, "SYS_392" }, /* 392 */
+ { 0, 0, printargs, "SYS_393" }, /* 393 */
+ { 0, 0, printargs, "SYS_394" }, /* 394 */
+ { 0, 0, printargs, "SYS_395" }, /* 395 */
+ { 0, 0, printargs, "SYS_396" }, /* 396 */
+ { 0, 0, printargs, "SYS_397" }, /* 397 */
+ { 0, 0, printargs, "SYS_398" }, /* 398 */
+ { 0, 0, printargs, "SYS_399" }, /* 399 */
+ { 0, 0, printargs, "SYS_400" }, /* 400 */
+ { 0, 0, printargs, "SYS_401" }, /* 401 */
+ { 0, 0, printargs, "SYS_402" }, /* 402 */
+ { 0, 0, printargs, "SYS_403" }, /* 403 */
+ { 0, 0, printargs, "SYS_404" }, /* 404 */
+ { 0, 0, printargs, "SYS_405" }, /* 405 */
+ { 0, 0, printargs, "SYS_406" }, /* 406 */
+ { 0, 0, printargs, "SYS_407" }, /* 407 */
+ { 0, 0, printargs, "SYS_408" }, /* 408 */
+ { 0, 0, printargs, "SYS_409" }, /* 409 */
+ { 0, 0, printargs, "SYS_410" }, /* 410 */
+ { 0, 0, printargs, "SYS_411" }, /* 411 */
+ { 0, 0, printargs, "SYS_412" }, /* 412 */
+ { 0, 0, printargs, "SYS_413" }, /* 413 */
+ { 0, 0, printargs, "SYS_414" }, /* 414 */
+ { 0, 0, printargs, "SYS_415" }, /* 415 */
+ { 0, 0, printargs, "SYS_416" }, /* 416 */
+ { 0, 0, printargs, "SYS_417" }, /* 417 */
+ { 0, 0, printargs, "SYS_418" }, /* 418 */
+ { 0, 0, printargs, "SYS_419" }, /* 419 */
+ { 0, 0, printargs, "SYS_420" }, /* 420 */
+ { 0, 0, printargs, "SYS_421" }, /* 421 */
+ { 0, 0, printargs, "SYS_422" }, /* 422 */
+ { 0, 0, printargs, "SYS_423" }, /* 423 */
+ { 0, 0, printargs, "SYS_424" }, /* 424 */
+ { 0, 0, printargs, "SYS_425" }, /* 425 */
+ { 0, 0, printargs, "SYS_426" }, /* 426 */
+ { 0, 0, printargs, "SYS_427" }, /* 427 */
+ { 0, 0, printargs, "SYS_428" }, /* 428 */
+ { 0, 0, printargs, "SYS_429" }, /* 429 */
+ { 0, 0, printargs, "SYS_430" }, /* 430 */
+ { 0, 0, printargs, "SYS_431" }, /* 431 */
+ { 0, 0, printargs, "SYS_432" }, /* 432 */
+ { 0, 0, printargs, "SYS_433" }, /* 433 */
+ { 0, 0, printargs, "SYS_434" }, /* 434 */
+ { 0, 0, printargs, "SYS_435" }, /* 435 */
+ { 0, 0, printargs, "SYS_436" }, /* 436 */
+ { 0, 0, printargs, "SYS_437" }, /* 437 */
+ { 0, 0, printargs, "SYS_438" }, /* 438 */
+ { 0, 0, printargs, "SYS_439" }, /* 439 */
+ { 0, 0, printargs, "SYS_440" }, /* 440 */
+ { 0, 0, printargs, "SYS_441" }, /* 441 */
+ { 0, 0, printargs, "SYS_442" }, /* 442 */
+ { 0, 0, printargs, "SYS_443" }, /* 443 */
+ { 0, 0, printargs, "SYS_444" }, /* 444 */
+ { 0, 0, printargs, "SYS_445" }, /* 445 */
+ { 0, 0, printargs, "SYS_446" }, /* 446 */
+ { 0, 0, printargs, "SYS_447" }, /* 447 */
+ { 0, 0, printargs, "SYS_448" }, /* 448 */
+ { 0, 0, printargs, "SYS_449" }, /* 449 */
+ { 0, 0, printargs, "SYS_450" }, /* 450 */
+ { 0, 0, printargs, "SYS_451" }, /* 451 */
+ { 0, 0, printargs, "SYS_452" }, /* 452 */
+ { 0, 0, printargs, "SYS_453" }, /* 453 */
+ { 0, 0, printargs, "SYS_454" }, /* 454 */
+ { 0, 0, printargs, "SYS_455" }, /* 455 */
+ { 0, 0, printargs, "SYS_456" }, /* 456 */
+ { 0, 0, printargs, "SYS_457" }, /* 457 */
+ { 0, 0, printargs, "SYS_458" }, /* 458 */
+ { 0, 0, printargs, "SYS_459" }, /* 459 */
+ { 0, 0, printargs, "SYS_460" }, /* 460 */
+ { 0, 0, printargs, "SYS_461" }, /* 461 */
+ { 0, 0, printargs, "SYS_462" }, /* 462 */
+ { 0, 0, printargs, "SYS_463" }, /* 463 */
+ { 0, 0, printargs, "SYS_464" }, /* 464 */
+ { 0, 0, printargs, "SYS_465" }, /* 465 */
+ { 0, 0, printargs, "SYS_466" }, /* 466 */
+ { 0, 0, printargs, "SYS_467" }, /* 467 */
+ { 0, 0, printargs, "SYS_468" }, /* 468 */
+ { 0, 0, printargs, "SYS_469" }, /* 469 */
+ { 0, 0, printargs, "SYS_470" }, /* 470 */
+ { 0, 0, printargs, "SYS_471" }, /* 471 */
+ { 0, 0, printargs, "SYS_472" }, /* 472 */
+ { 0, 0, printargs, "SYS_473" }, /* 473 */
+ { 0, 0, printargs, "SYS_474" }, /* 474 */
+ { 0, 0, printargs, "SYS_475" }, /* 475 */
+ { 0, 0, printargs, "SYS_476" }, /* 476 */
+ { 0, 0, printargs, "SYS_477" }, /* 477 */
+ { 0, 0, printargs, "SYS_478" }, /* 478 */
+ { 0, 0, printargs, "SYS_479" }, /* 479 */
+ { 0, 0, printargs, "SYS_480" }, /* 480 */
+ { 0, 0, printargs, "SYS_481" }, /* 481 */
+ { 0, 0, printargs, "SYS_482" }, /* 482 */
+ { 0, 0, printargs, "SYS_483" }, /* 483 */
+ { 0, 0, printargs, "SYS_484" }, /* 484 */
+ { 0, 0, printargs, "SYS_485" }, /* 485 */
+ { 0, 0, printargs, "SYS_486" }, /* 486 */
+ { 0, 0, printargs, "SYS_487" }, /* 487 */
+ { 0, 0, printargs, "SYS_488" }, /* 488 */
+ { 0, 0, printargs, "SYS_489" }, /* 489 */
+ { 0, 0, printargs, "SYS_490" }, /* 490 */
+ { 0, 0, printargs, "SYS_491" }, /* 491 */
+ { 0, 0, printargs, "SYS_492" }, /* 492 */
+ { 0, 0, printargs, "SYS_493" }, /* 493 */
+ { 0, 0, printargs, "SYS_494" }, /* 494 */
+ { 0, 0, printargs, "SYS_495" }, /* 495 */
+ { 0, 0, printargs, "SYS_496" }, /* 496 */
+ { 0, 0, printargs, "SYS_497" }, /* 497 */
+ { 0, 0, printargs, "SYS_498" }, /* 498 */
+ { 0, 0, printargs, "SYS_499" }, /* 499 */
+ { 0, 0, printargs, "SYS_500" }, /* 500 */
+ { 0, 0, printargs, "SYS_501" }, /* 501 */
+ { 0, 0, printargs, "SYS_502" }, /* 502 */
+ { 0, 0, printargs, "SYS_503" }, /* 503 */
+ { 0, 0, printargs, "SYS_504" }, /* 504 */
+ { 0, 0, printargs, "SYS_505" }, /* 505 */
+ { 0, 0, printargs, "SYS_506" }, /* 506 */
+ { 0, 0, printargs, "SYS_507" }, /* 507 */
+ { 0, 0, printargs, "SYS_508" }, /* 508 */
+ { 0, 0, printargs, "SYS_509" }, /* 509 */
+ { 0, 0, printargs, "SYS_510" }, /* 510 */
+ { 0, 0, printargs, "SYS_511" }, /* 511 */
+ { 0, 0, printargs, "SYS_512" }, /* 512 */
+ { 0, 0, printargs, "SYS_513" }, /* 513 */
+ { 0, 0, printargs, "SYS_514" }, /* 514 */
+ { 0, 0, printargs, "SYS_515" }, /* 515 */
+ { 0, 0, printargs, "SYS_516" }, /* 516 */
+ { 0, 0, printargs, "SYS_517" }, /* 517 */
+ { 0, 0, printargs, "SYS_518" }, /* 518 */
+ { 0, 0, printargs, "SYS_519" }, /* 519 */
+ { 0, 0, printargs, "SYS_520" }, /* 520 */
+ { 0, 0, printargs, "SYS_521" }, /* 521 */
+ { 0, 0, printargs, "SYS_522" }, /* 522 */
+ { 0, 0, printargs, "SYS_523" }, /* 523 */
+ { 0, 0, printargs, "SYS_524" }, /* 524 */
+ { 0, 0, printargs, "SYS_525" }, /* 525 */
+ { 0, 0, printargs, "SYS_526" }, /* 526 */
+ { 0, 0, printargs, "SYS_527" }, /* 527 */
+ { 0, 0, printargs, "SYS_528" }, /* 528 */
+ { 0, 0, printargs, "SYS_529" }, /* 529 */
+ { 0, 0, printargs, "SYS_530" }, /* 530 */
+ { 0, 0, printargs, "SYS_531" }, /* 531 */
+ { 0, 0, printargs, "SYS_532" }, /* 532 */
+ { 0, 0, printargs, "SYS_533" }, /* 533 */
+ { 0, 0, printargs, "SYS_534" }, /* 534 */
+ { 0, 0, printargs, "SYS_535" }, /* 535 */
+ { 0, 0, printargs, "SYS_536" }, /* 536 */
+ { 0, 0, printargs, "SYS_537" }, /* 537 */
+ { 0, 0, printargs, "SYS_538" }, /* 538 */
+ { 0, 0, printargs, "SYS_539" }, /* 539 */
+ { 0, 0, printargs, "SYS_540" }, /* 540 */
+ { 0, 0, printargs, "SYS_541" }, /* 541 */
+ { 0, 0, printargs, "SYS_542" }, /* 542 */
+ { 0, 0, printargs, "SYS_543" }, /* 543 */
+ { 0, 0, printargs, "SYS_544" }, /* 544 */
+ { 0, 0, printargs, "SYS_545" }, /* 545 */
+ { 0, 0, printargs, "SYS_546" }, /* 546 */
+ { 0, 0, printargs, "SYS_547" }, /* 547 */
+ { 0, 0, printargs, "SYS_548" }, /* 548 */
+ { 0, 0, printargs, "SYS_549" }, /* 549 */
+ { 0, 0, printargs, "SYS_550" }, /* 550 */
+ { 0, 0, printargs, "SYS_551" }, /* 551 */
+ { 0, 0, printargs, "SYS_552" }, /* 552 */
+ { 0, 0, printargs, "SYS_553" }, /* 553 */
+ { 0, 0, printargs, "SYS_554" }, /* 554 */
+ { 0, 0, printargs, "SYS_555" }, /* 555 */
+ { 0, 0, printargs, "SYS_556" }, /* 556 */
+ { 0, 0, printargs, "SYS_557" }, /* 557 */
+ { 0, 0, printargs, "SYS_558" }, /* 558 */
+ { 0, 0, printargs, "SYS_559" }, /* 559 */
+ { 0, 0, printargs, "SYS_560" }, /* 560 */
+ { 0, 0, printargs, "SYS_561" }, /* 561 */
+ { 0, 0, printargs, "SYS_562" }, /* 562 */
+ { 0, 0, printargs, "SYS_563" }, /* 563 */
+ { 0, 0, printargs, "SYS_564" }, /* 564 */
+ { 0, 0, printargs, "SYS_565" }, /* 565 */
+ { 0, 0, printargs, "SYS_566" }, /* 566 */
+ { 0, 0, printargs, "SYS_567" }, /* 567 */
+ { 0, 0, printargs, "SYS_568" }, /* 568 */
+ { 0, 0, printargs, "SYS_569" }, /* 569 */
+ { 0, 0, printargs, "SYS_570" }, /* 570 */
+ { 0, 0, printargs, "SYS_571" }, /* 571 */
+ { 0, 0, printargs, "SYS_572" }, /* 572 */
+ { 0, 0, printargs, "SYS_573" }, /* 573 */
+ { 0, 0, printargs, "SYS_574" }, /* 574 */
+ { 0, 0, printargs, "SYS_575" }, /* 575 */
+ { 0, 0, printargs, "SYS_576" }, /* 576 */
+ { 0, 0, printargs, "SYS_577" }, /* 577 */
+ { 0, 0, printargs, "SYS_578" }, /* 578 */
+ { 0, 0, printargs, "SYS_579" }, /* 579 */
+ { 0, 0, printargs, "SYS_580" }, /* 580 */
+ { 0, 0, printargs, "SYS_581" }, /* 581 */
+ { 0, 0, printargs, "SYS_582" }, /* 582 */
+ { 0, 0, printargs, "SYS_583" }, /* 583 */
+ { 0, 0, printargs, "SYS_584" }, /* 584 */
+ { 0, 0, printargs, "SYS_585" }, /* 585 */
+ { 0, 0, printargs, "SYS_586" }, /* 586 */
+ { 0, 0, printargs, "SYS_587" }, /* 587 */
+ { 0, 0, printargs, "SYS_588" }, /* 588 */
+ { 0, 0, printargs, "SYS_589" }, /* 589 */
+ { 0, 0, printargs, "SYS_590" }, /* 590 */
+ { 0, 0, printargs, "SYS_591" }, /* 591 */
+ { 0, 0, printargs, "SYS_592" }, /* 592 */
+ { 0, 0, printargs, "SYS_593" }, /* 593 */
+ { 0, 0, printargs, "SYS_594" }, /* 594 */
+ { 0, 0, printargs, "SYS_595" }, /* 595 */
+ { 0, 0, printargs, "SYS_596" }, /* 596 */
+ { 0, 0, printargs, "SYS_597" }, /* 597 */
+ { 0, 0, printargs, "SYS_598" }, /* 598 */
+ { 0, 0, printargs, "SYS_599" }, /* 599 */
+ { 0, 0, printargs, "SYS_600" }, /* 600 */
+ { 0, 0, printargs, "SYS_601" }, /* 601 */
+ { 0, 0, printargs, "SYS_602" }, /* 602 */
+ { 0, 0, printargs, "SYS_603" }, /* 603 */
+ { 0, 0, printargs, "SYS_604" }, /* 604 */
+ { 0, 0, printargs, "SYS_605" }, /* 605 */
+ { 0, 0, printargs, "SYS_606" }, /* 606 */
+ { 0, 0, printargs, "SYS_607" }, /* 607 */
+ { 0, 0, printargs, "SYS_608" }, /* 608 */
+ { 0, 0, printargs, "SYS_609" }, /* 609 */
+ { 0, 0, printargs, "SYS_610" }, /* 610 */
+ { 0, 0, printargs, "SYS_611" }, /* 611 */
+ { 0, 0, printargs, "SYS_612" }, /* 612 */
+ { 0, 0, printargs, "SYS_613" }, /* 613 */
+ { 0, 0, printargs, "SYS_614" }, /* 614 */
+ { 0, 0, printargs, "SYS_615" }, /* 615 */
+ { 0, 0, printargs, "SYS_616" }, /* 616 */
+ { 0, 0, printargs, "SYS_617" }, /* 617 */
+ { 0, 0, printargs, "SYS_618" }, /* 618 */
+ { 0, 0, printargs, "SYS_619" }, /* 619 */
+ { 0, 0, printargs, "SYS_620" }, /* 620 */
+ { 0, 0, printargs, "SYS_621" }, /* 621 */
+ { 0, 0, printargs, "SYS_622" }, /* 622 */
+ { 0, 0, printargs, "SYS_623" }, /* 623 */
+ { 0, 0, printargs, "SYS_624" }, /* 624 */
+ { 0, 0, printargs, "SYS_625" }, /* 625 */
+ { 0, 0, printargs, "SYS_626" }, /* 626 */
+ { 0, 0, printargs, "SYS_627" }, /* 627 */
+ { 0, 0, printargs, "SYS_628" }, /* 628 */
+ { 0, 0, printargs, "SYS_629" }, /* 629 */
+ { 0, 0, printargs, "SYS_630" }, /* 630 */
+ { 0, 0, printargs, "SYS_631" }, /* 631 */
+ { 0, 0, printargs, "SYS_632" }, /* 632 */
+ { 0, 0, printargs, "SYS_633" }, /* 633 */
+ { 0, 0, printargs, "SYS_634" }, /* 634 */
+ { 0, 0, printargs, "SYS_635" }, /* 635 */
+ { 0, 0, printargs, "SYS_636" }, /* 636 */
+ { 0, 0, printargs, "SYS_637" }, /* 637 */
+ { 0, 0, printargs, "SYS_638" }, /* 638 */
+ { 0, 0, printargs, "SYS_639" }, /* 639 */
+ { 0, 0, printargs, "SYS_640" }, /* 640 */
+ { 0, 0, printargs, "SYS_641" }, /* 641 */
+ { 0, 0, printargs, "SYS_642" }, /* 642 */
+ { 0, 0, printargs, "SYS_643" }, /* 643 */
+ { 0, 0, printargs, "SYS_644" }, /* 644 */
+ { 0, 0, printargs, "SYS_645" }, /* 645 */
+ { 0, 0, printargs, "SYS_646" }, /* 646 */
+ { 0, 0, printargs, "SYS_647" }, /* 647 */
+ { 0, 0, printargs, "SYS_648" }, /* 648 */
+ { 0, 0, printargs, "SYS_649" }, /* 649 */
+ { 0, 0, printargs, "SYS_650" }, /* 650 */
+ { 0, 0, printargs, "SYS_651" }, /* 651 */
+ { 0, 0, printargs, "SYS_652" }, /* 652 */
+ { 0, 0, printargs, "SYS_653" }, /* 653 */
+ { 0, 0, printargs, "SYS_654" }, /* 654 */
+ { 0, 0, printargs, "SYS_655" }, /* 655 */
+ { 0, 0, printargs, "SYS_656" }, /* 656 */
+ { 0, 0, printargs, "SYS_657" }, /* 657 */
+ { 0, 0, printargs, "SYS_658" }, /* 658 */
+ { 0, 0, printargs, "SYS_659" }, /* 659 */
+ { 0, 0, printargs, "SYS_660" }, /* 660 */
+ { 0, 0, printargs, "SYS_661" }, /* 661 */
+ { 0, 0, printargs, "SYS_662" }, /* 662 */
+ { 0, 0, printargs, "SYS_663" }, /* 663 */
+ { 0, 0, printargs, "SYS_664" }, /* 664 */
+ { 0, 0, printargs, "SYS_665" }, /* 665 */
+ { 0, 0, printargs, "SYS_666" }, /* 666 */
+ { 0, 0, printargs, "SYS_667" }, /* 667 */
+ { 0, 0, printargs, "SYS_668" }, /* 668 */
+ { 0, 0, printargs, "SYS_669" }, /* 669 */
+ { 0, 0, printargs, "SYS_670" }, /* 670 */
+ { 0, 0, printargs, "SYS_671" }, /* 671 */
+ { 0, 0, printargs, "SYS_672" }, /* 672 */
+ { 0, 0, printargs, "SYS_673" }, /* 673 */
+ { 0, 0, printargs, "SYS_674" }, /* 674 */
+ { 0, 0, printargs, "SYS_675" }, /* 675 */
+ { 0, 0, printargs, "SYS_676" }, /* 676 */
+ { 0, 0, printargs, "SYS_677" }, /* 677 */
+ { 0, 0, printargs, "SYS_678" }, /* 678 */
+ { 0, 0, printargs, "SYS_679" }, /* 679 */
+ { 0, 0, printargs, "SYS_680" }, /* 680 */
+ { 0, 0, printargs, "SYS_681" }, /* 681 */
+ { 0, 0, printargs, "SYS_682" }, /* 682 */
+ { 0, 0, printargs, "SYS_683" }, /* 683 */
+ { 0, 0, printargs, "SYS_684" }, /* 684 */
+ { 0, 0, printargs, "SYS_685" }, /* 685 */
+ { 0, 0, printargs, "SYS_686" }, /* 686 */
+ { 0, 0, printargs, "SYS_687" }, /* 687 */
+ { 0, 0, printargs, "SYS_688" }, /* 688 */
+ { 0, 0, printargs, "SYS_689" }, /* 689 */
+ { 0, 0, printargs, "SYS_690" }, /* 690 */
+ { 0, 0, printargs, "SYS_691" }, /* 691 */
+ { 0, 0, printargs, "SYS_692" }, /* 692 */
+ { 0, 0, printargs, "SYS_693" }, /* 693 */
+ { 0, 0, printargs, "SYS_694" }, /* 694 */
+ { 0, 0, printargs, "SYS_695" }, /* 695 */
+ { 0, 0, printargs, "SYS_696" }, /* 696 */
+ { 0, 0, printargs, "SYS_697" }, /* 697 */
+ { 0, 0, printargs, "SYS_698" }, /* 698 */
+ { 0, 0, printargs, "SYS_699" }, /* 699 */
+ { 0, 0, printargs, "SYS_700" }, /* 700 */
+ { 0, 0, printargs, "SYS_701" }, /* 701 */
+ { 0, 0, printargs, "SYS_702" }, /* 702 */
+ { 0, 0, printargs, "SYS_703" }, /* 703 */
+ { 0, 0, printargs, "SYS_704" }, /* 704 */
+ { 0, 0, printargs, "SYS_705" }, /* 705 */
+ { 0, 0, printargs, "SYS_706" }, /* 706 */
+ { 0, 0, printargs, "SYS_707" }, /* 707 */
+ { 0, 0, printargs, "SYS_708" }, /* 708 */
+ { 0, 0, printargs, "SYS_709" }, /* 709 */
+ { 0, 0, printargs, "SYS_710" }, /* 710 */
+ { 0, 0, printargs, "SYS_711" }, /* 711 */
+ { 0, 0, printargs, "SYS_712" }, /* 712 */
+ { 0, 0, printargs, "SYS_713" }, /* 713 */
+ { 0, 0, printargs, "SYS_714" }, /* 714 */
+ { 0, 0, printargs, "SYS_715" }, /* 715 */
+ { 0, 0, printargs, "SYS_716" }, /* 716 */
+ { 0, 0, printargs, "SYS_717" }, /* 717 */
+ { 0, 0, printargs, "SYS_718" }, /* 718 */
+ { 0, 0, printargs, "SYS_719" }, /* 719 */
+ { 0, 0, printargs, "SYS_720" }, /* 720 */
+ { 0, 0, printargs, "SYS_721" }, /* 721 */
+ { 0, 0, printargs, "SYS_722" }, /* 722 */
+ { 0, 0, printargs, "SYS_723" }, /* 723 */
+ { 0, 0, printargs, "SYS_724" }, /* 724 */
+ { 0, 0, printargs, "SYS_725" }, /* 725 */
+ { 0, 0, printargs, "SYS_726" }, /* 726 */
+ { 0, 0, printargs, "SYS_727" }, /* 727 */
+ { 0, 0, printargs, "SYS_728" }, /* 728 */
+ { 0, 0, printargs, "SYS_729" }, /* 729 */
+ { 0, 0, printargs, "SYS_730" }, /* 730 */
+ { 0, 0, printargs, "SYS_731" }, /* 731 */
+ { 0, 0, printargs, "SYS_732" }, /* 732 */
+ { 0, 0, printargs, "SYS_733" }, /* 733 */
+ { 0, 0, printargs, "SYS_734" }, /* 734 */
+ { 0, 0, printargs, "SYS_735" }, /* 735 */
+ { 0, 0, printargs, "SYS_736" }, /* 736 */
+ { 0, 0, printargs, "SYS_737" }, /* 737 */
+ { 0, 0, printargs, "SYS_738" }, /* 738 */
+ { 0, 0, printargs, "SYS_739" }, /* 739 */
+ { 0, 0, printargs, "SYS_740" }, /* 740 */
+ { 0, 0, printargs, "SYS_741" }, /* 741 */
+ { 0, 0, printargs, "SYS_742" }, /* 742 */
+ { 0, 0, printargs, "SYS_743" }, /* 743 */
+ { 0, 0, printargs, "SYS_744" }, /* 744 */
+ { 0, 0, printargs, "SYS_745" }, /* 745 */
+ { 0, 0, printargs, "SYS_746" }, /* 746 */
+ { 0, 0, printargs, "SYS_747" }, /* 747 */
+ { 0, 0, printargs, "SYS_748" }, /* 748 */
+ { 0, 0, printargs, "SYS_749" }, /* 749 */
+ { 0, 0, printargs, "SYS_750" }, /* 750 */
+ { 0, 0, printargs, "SYS_751" }, /* 751 */
+ { 0, 0, printargs, "SYS_752" }, /* 752 */
+ { 0, 0, printargs, "SYS_753" }, /* 753 */
+ { 0, 0, printargs, "SYS_754" }, /* 754 */
+ { 0, 0, printargs, "SYS_755" }, /* 755 */
+ { 0, 0, printargs, "SYS_756" }, /* 756 */
+ { 0, 0, printargs, "SYS_757" }, /* 757 */
+ { 0, 0, printargs, "SYS_758" }, /* 758 */
+ { 0, 0, printargs, "SYS_759" }, /* 759 */
+ { 0, 0, printargs, "SYS_760" }, /* 760 */
+ { 0, 0, printargs, "SYS_761" }, /* 761 */
+ { 0, 0, printargs, "SYS_762" }, /* 762 */
+ { 0, 0, printargs, "SYS_763" }, /* 763 */
+ { 0, 0, printargs, "SYS_764" }, /* 764 */
+ { 0, 0, printargs, "SYS_765" }, /* 765 */
+ { 0, 0, printargs, "SYS_766" }, /* 766 */
+ { 0, 0, printargs, "SYS_767" }, /* 767 */
+ { 0, 0, printargs, "SYS_768" }, /* 768 */
+ { 0, 0, printargs, "SYS_769" }, /* 769 */
+ { 0, 0, printargs, "SYS_770" }, /* 770 */
+ { 0, 0, printargs, "SYS_771" }, /* 771 */
+ { 0, 0, printargs, "SYS_772" }, /* 772 */
+ { 0, 0, printargs, "SYS_773" }, /* 773 */
+ { 0, 0, printargs, "SYS_774" }, /* 774 */
+ { 0, 0, printargs, "SYS_775" }, /* 775 */
+ { 0, 0, printargs, "SYS_776" }, /* 776 */
+ { 0, 0, printargs, "SYS_777" }, /* 777 */
+ { 0, 0, printargs, "SYS_778" }, /* 778 */
+ { 0, 0, printargs, "SYS_779" }, /* 779 */
+ { 0, 0, printargs, "SYS_780" }, /* 780 */
+ { 0, 0, printargs, "SYS_781" }, /* 781 */
+ { 0, 0, printargs, "SYS_782" }, /* 782 */
+ { 0, 0, printargs, "SYS_783" }, /* 783 */
+ { 0, 0, printargs, "SYS_784" }, /* 784 */
+ { 0, 0, printargs, "SYS_785" }, /* 785 */
+ { 0, 0, printargs, "SYS_786" }, /* 786 */
+ { 0, 0, printargs, "SYS_787" }, /* 787 */
+ { 0, 0, printargs, "SYS_788" }, /* 788 */
+ { 0, 0, printargs, "SYS_789" }, /* 789 */
+ { 0, 0, printargs, "SYS_790" }, /* 790 */
+ { 0, 0, printargs, "SYS_791" }, /* 791 */
+ { 0, 0, printargs, "SYS_792" }, /* 792 */
+ { 0, 0, printargs, "SYS_793" }, /* 793 */
+ { 0, 0, printargs, "SYS_794" }, /* 794 */
+ { 0, 0, printargs, "SYS_795" }, /* 795 */
+ { 0, 0, printargs, "SYS_796" }, /* 796 */
+ { 0, 0, printargs, "SYS_797" }, /* 797 */
+ { 0, 0, printargs, "SYS_798" }, /* 798 */
+ { 0, 0, printargs, "SYS_799" }, /* 799 */
+ { 0, 0, printargs, "SYS_800" }, /* 800 */
+ { 0, 0, printargs, "SYS_801" }, /* 801 */
+ { 0, 0, printargs, "SYS_802" }, /* 802 */
+ { 0, 0, printargs, "SYS_803" }, /* 803 */
+ { 0, 0, printargs, "SYS_804" }, /* 804 */
+ { 0, 0, printargs, "SYS_805" }, /* 805 */
+ { 0, 0, printargs, "SYS_806" }, /* 806 */
+ { 0, 0, printargs, "SYS_807" }, /* 807 */
+ { 0, 0, printargs, "SYS_808" }, /* 808 */
+ { 0, 0, printargs, "SYS_809" }, /* 809 */
+ { 0, 0, printargs, "SYS_810" }, /* 810 */
+ { 0, 0, printargs, "SYS_811" }, /* 811 */
+ { 0, 0, printargs, "SYS_812" }, /* 812 */
+ { 0, 0, printargs, "SYS_813" }, /* 813 */
+ { 0, 0, printargs, "SYS_814" }, /* 814 */
+ { 0, 0, printargs, "SYS_815" }, /* 815 */
+ { 0, 0, printargs, "SYS_816" }, /* 816 */
+ { 0, 0, printargs, "SYS_817" }, /* 817 */
+ { 0, 0, printargs, "SYS_818" }, /* 818 */
+ { 0, 0, printargs, "SYS_819" }, /* 819 */
+ { 0, 0, printargs, "SYS_820" }, /* 820 */
+ { 0, 0, printargs, "SYS_821" }, /* 821 */
+ { 0, 0, printargs, "SYS_822" }, /* 822 */
+ { 0, 0, printargs, "SYS_823" }, /* 823 */
+ { 0, 0, printargs, "SYS_824" }, /* 824 */
+ { 0, 0, printargs, "SYS_825" }, /* 825 */
+ { 0, 0, printargs, "SYS_826" }, /* 826 */
+ { 0, 0, printargs, "SYS_827" }, /* 827 */
+ { 0, 0, printargs, "SYS_828" }, /* 828 */
+ { 0, 0, printargs, "SYS_829" }, /* 829 */
+ { 0, 0, printargs, "SYS_830" }, /* 830 */
+ { 0, 0, printargs, "SYS_831" }, /* 831 */
+ { 0, 0, printargs, "SYS_832" }, /* 832 */
+ { 0, 0, printargs, "SYS_833" }, /* 833 */
+ { 0, 0, printargs, "SYS_834" }, /* 834 */
+ { 0, 0, printargs, "SYS_835" }, /* 835 */
+ { 0, 0, printargs, "SYS_836" }, /* 836 */
+ { 0, 0, printargs, "SYS_837" }, /* 837 */
+ { 0, 0, printargs, "SYS_838" }, /* 838 */
+ { 0, 0, printargs, "SYS_839" }, /* 839 */
+ { 0, 0, printargs, "SYS_840" }, /* 840 */
+ { 0, 0, printargs, "SYS_841" }, /* 841 */
+ { 0, 0, printargs, "SYS_842" }, /* 842 */
+ { 0, 0, printargs, "SYS_843" }, /* 843 */
+ { 0, 0, printargs, "SYS_844" }, /* 844 */
+ { 0, 0, printargs, "SYS_845" }, /* 845 */
+ { 0, 0, printargs, "SYS_846" }, /* 846 */
+ { 0, 0, printargs, "SYS_847" }, /* 847 */
+ { 0, 0, printargs, "SYS_848" }, /* 848 */
+ { 0, 0, printargs, "SYS_849" }, /* 849 */
+ { 0, 0, printargs, "SYS_850" }, /* 850 */
+ { 0, 0, printargs, "SYS_851" }, /* 851 */
+ { 0, 0, printargs, "SYS_852" }, /* 852 */
+ { 0, 0, printargs, "SYS_853" }, /* 853 */
+ { 0, 0, printargs, "SYS_854" }, /* 854 */
+ { 0, 0, printargs, "SYS_855" }, /* 855 */
+ { 0, 0, printargs, "SYS_856" }, /* 856 */
+ { 0, 0, printargs, "SYS_857" }, /* 857 */
+ { 0, 0, printargs, "SYS_858" }, /* 858 */
+ { 0, 0, printargs, "SYS_859" }, /* 859 */
+ { 0, 0, printargs, "SYS_860" }, /* 860 */
+ { 0, 0, printargs, "SYS_861" }, /* 861 */
+ { 0, 0, printargs, "SYS_862" }, /* 862 */
+ { 0, 0, printargs, "SYS_863" }, /* 863 */
+ { 0, 0, printargs, "SYS_864" }, /* 864 */
+ { 0, 0, printargs, "SYS_865" }, /* 865 */
+ { 0, 0, printargs, "SYS_866" }, /* 866 */
+ { 0, 0, printargs, "SYS_867" }, /* 867 */
+ { 0, 0, printargs, "SYS_868" }, /* 868 */
+ { 0, 0, printargs, "SYS_869" }, /* 869 */
+ { 0, 0, printargs, "SYS_870" }, /* 870 */
+ { 0, 0, printargs, "SYS_871" }, /* 871 */
+ { 0, 0, printargs, "SYS_872" }, /* 872 */
+ { 0, 0, printargs, "SYS_873" }, /* 873 */
+ { 0, 0, printargs, "SYS_874" }, /* 874 */
+ { 0, 0, printargs, "SYS_875" }, /* 875 */
+ { 0, 0, printargs, "SYS_876" }, /* 876 */
+ { 0, 0, printargs, "SYS_877" }, /* 877 */
+ { 0, 0, printargs, "SYS_878" }, /* 878 */
+ { 0, 0, printargs, "SYS_879" }, /* 879 */
+ { 0, 0, printargs, "SYS_880" }, /* 880 */
+ { 0, 0, printargs, "SYS_881" }, /* 881 */
+ { 0, 0, printargs, "SYS_882" }, /* 882 */
+ { 0, 0, printargs, "SYS_883" }, /* 883 */
+ { 0, 0, printargs, "SYS_884" }, /* 884 */
+ { 0, 0, printargs, "SYS_885" }, /* 885 */
+ { 0, 0, printargs, "SYS_886" }, /* 886 */
+ { 0, 0, printargs, "SYS_887" }, /* 887 */
+ { 0, 0, printargs, "SYS_888" }, /* 888 */
+ { 0, 0, printargs, "SYS_889" }, /* 889 */
+ { 0, 0, printargs, "SYS_890" }, /* 890 */
+ { 0, 0, printargs, "SYS_891" }, /* 891 */
+ { 0, 0, printargs, "SYS_892" }, /* 892 */
+ { 0, 0, printargs, "SYS_893" }, /* 893 */
+ { 0, 0, printargs, "SYS_894" }, /* 894 */
+ { 0, 0, printargs, "SYS_895" }, /* 895 */
+ { 0, 0, printargs, "SYS_896" }, /* 896 */
+ { 0, 0, printargs, "SYS_897" }, /* 897 */
+ { 0, 0, printargs, "SYS_898" }, /* 898 */
+ { 0, 0, printargs, "SYS_899" }, /* 899 */
+ { 0, 0, printargs, "SYS_900" }, /* 900 */
+ { 0, 0, printargs, "SYS_901" }, /* 901 */
+ { 0, 0, printargs, "SYS_902" }, /* 902 */
+ { 0, 0, printargs, "SYS_903" }, /* 903 */
+ { 0, 0, printargs, "SYS_904" }, /* 904 */
+ { 0, 0, printargs, "SYS_905" }, /* 905 */
+ { 0, 0, printargs, "SYS_906" }, /* 906 */
+ { 0, 0, printargs, "SYS_907" }, /* 907 */
+ { 0, 0, printargs, "SYS_908" }, /* 908 */
+ { 0, 0, printargs, "SYS_909" }, /* 909 */
+ { 0, 0, printargs, "SYS_910" }, /* 910 */
+ { 0, 0, printargs, "SYS_911" }, /* 911 */
+ { 0, 0, printargs, "SYS_912" }, /* 912 */
+ { 0, 0, printargs, "SYS_913" }, /* 913 */
+ { 0, 0, printargs, "SYS_914" }, /* 914 */
+ { 0, 0, printargs, "SYS_915" }, /* 915 */
+ { 0, 0, printargs, "SYS_916" }, /* 916 */
+ { 0, 0, printargs, "SYS_917" }, /* 917 */
+ { 0, 0, printargs, "SYS_918" }, /* 918 */
+ { 0, 0, printargs, "SYS_919" }, /* 919 */
+ { 0, 0, printargs, "SYS_920" }, /* 920 */
+ { 0, 0, printargs, "SYS_921" }, /* 921 */
+ { 0, 0, printargs, "SYS_922" }, /* 922 */
+ { 0, 0, printargs, "SYS_923" }, /* 923 */
+ { 0, 0, printargs, "SYS_924" }, /* 924 */
+ { 0, 0, printargs, "SYS_925" }, /* 925 */
+ { 0, 0, printargs, "SYS_926" }, /* 926 */
+ { 0, 0, printargs, "SYS_927" }, /* 927 */
+ { 0, 0, printargs, "SYS_928" }, /* 928 */
+ { 0, 0, printargs, "SYS_929" }, /* 929 */
+ { 0, 0, printargs, "SYS_930" }, /* 930 */
+ { 0, 0, printargs, "SYS_931" }, /* 931 */
+ { 0, 0, printargs, "SYS_932" }, /* 932 */
+ { 0, 0, printargs, "SYS_933" }, /* 933 */
+ { 0, 0, printargs, "SYS_934" }, /* 934 */
+ { 0, 0, printargs, "SYS_935" }, /* 935 */
+ { 0, 0, printargs, "SYS_936" }, /* 936 */
+ { 0, 0, printargs, "SYS_937" }, /* 937 */
+ { 0, 0, printargs, "SYS_938" }, /* 938 */
+ { 0, 0, printargs, "SYS_939" }, /* 939 */
+ { 0, 0, printargs, "SYS_940" }, /* 940 */
+ { 0, 0, printargs, "SYS_941" }, /* 941 */
+ { 0, 0, printargs, "SYS_942" }, /* 942 */
+ { 0, 0, printargs, "SYS_943" }, /* 943 */
+ { 0, 0, printargs, "SYS_944" }, /* 944 */
+ { 0, 0, printargs, "SYS_945" }, /* 945 */
+ { 0, 0, printargs, "SYS_946" }, /* 946 */
+ { 0, 0, printargs, "SYS_947" }, /* 947 */
+ { 0, 0, printargs, "SYS_948" }, /* 948 */
+ { 0, 0, printargs, "SYS_949" }, /* 949 */
+ { 0, 0, printargs, "SYS_950" }, /* 950 */
+ { 0, 0, printargs, "SYS_951" }, /* 951 */
+ { 0, 0, printargs, "SYS_952" }, /* 952 */
+ { 0, 0, printargs, "SYS_953" }, /* 953 */
+ { 0, 0, printargs, "SYS_954" }, /* 954 */
+ { 0, 0, printargs, "SYS_955" }, /* 955 */
+ { 0, 0, printargs, "SYS_956" }, /* 956 */
+ { 0, 0, printargs, "SYS_957" }, /* 957 */
+ { 0, 0, printargs, "SYS_958" }, /* 958 */
+ { 0, 0, printargs, "SYS_959" }, /* 959 */
+ { 0, 0, printargs, "SYS_960" }, /* 960 */
+ { 0, 0, printargs, "SYS_961" }, /* 961 */
+ { 0, 0, printargs, "SYS_962" }, /* 962 */
+ { 0, 0, printargs, "SYS_963" }, /* 963 */
+ { 0, 0, printargs, "SYS_964" }, /* 964 */
+ { 0, 0, printargs, "SYS_965" }, /* 965 */
+ { 0, 0, printargs, "SYS_966" }, /* 966 */
+ { 0, 0, printargs, "SYS_967" }, /* 967 */
+ { 0, 0, printargs, "SYS_968" }, /* 968 */
+ { 0, 0, printargs, "SYS_969" }, /* 969 */
+ { 0, 0, printargs, "SYS_970" }, /* 970 */
+ { 0, 0, printargs, "SYS_971" }, /* 971 */
+ { 0, 0, printargs, "SYS_972" }, /* 972 */
+ { 0, 0, printargs, "SYS_973" }, /* 973 */
+ { 0, 0, printargs, "SYS_974" }, /* 974 */
+ { 0, 0, printargs, "SYS_975" }, /* 975 */
+ { 0, 0, printargs, "SYS_976" }, /* 976 */
+ { 0, 0, printargs, "SYS_977" }, /* 977 */
+ { 0, 0, printargs, "SYS_978" }, /* 978 */
+ { 0, 0, printargs, "SYS_979" }, /* 979 */
+ { 0, 0, printargs, "SYS_980" }, /* 980 */
+ { 0, 0, printargs, "SYS_981" }, /* 981 */
+ { 0, 0, printargs, "SYS_982" }, /* 982 */
+ { 0, 0, printargs, "SYS_983" }, /* 983 */
+ { 0, 0, printargs, "SYS_984" }, /* 984 */
+ { 0, 0, printargs, "SYS_985" }, /* 985 */
+ { 0, 0, printargs, "SYS_986" }, /* 986 */
+ { 0, 0, printargs, "SYS_987" }, /* 987 */
+ { 0, 0, printargs, "SYS_988" }, /* 988 */
+ { 0, 0, printargs, "SYS_989" }, /* 989 */
+ { 0, 0, printargs, "SYS_990" }, /* 990 */
+ { 0, 0, printargs, "SYS_991" }, /* 991 */
+ { 0, 0, printargs, "SYS_992" }, /* 992 */
+ { 0, 0, printargs, "SYS_993" }, /* 993 */
+ { 0, 0, printargs, "SYS_994" }, /* 994 */
+ { 0, 0, printargs, "SYS_995" }, /* 995 */
+ { 0, 0, printargs, "SYS_996" }, /* 996 */
+ { 0, 0, printargs, "SYS_997" }, /* 997 */
+ { 0, 0, printargs, "SYS_998" }, /* 998 */
+ { 0, 0, printargs, "SYS_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, 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, printargs, "SYS_1058", }, /* 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, printargs, "SYS_1064", }, /* 1064 */
+ { 0, 0, printargs, "SYS_1065", }, /* 1065 */
+ { 0, 0, printargs, "SYS_1066", }, /* 1066 */
+ { 0, 0, printargs, "SYS_1067", }, /* 1067 */
+ { 0, 0, printargs, "SYS_1068", }, /* 1068 */
+ { 0, 0, printargs, "SYS_1069", }, /* 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, printargs, "SYS_1189" }, /* 1189 */
+ { 0, 0, printargs, "SYS_1190" }, /* 1190 */
+ { 0, 0, printargs, "SYS_1191" }, /* 1191 */
+ { 0, 0, printargs, "SYS_1192" }, /* 1192 */
+ { 0, 0, printargs, "SYS_1193" }, /* 1193 */
+ { 0, 0, printargs, "SYS_1194" }, /* 1194 */
+ { 0, 0, printargs, "SYS_1195" }, /* 1195 */
+ { 0, 0, printargs, "SYS_1196" }, /* 1196 */
+ { 0, 0, printargs, "SYS_1197" }, /* 1197 */
+ { 0, 0, printargs, "SYS_1198" }, /* 1198 */
+ { 0, 0, printargs, "SYS_1199" }, /* 1199 */
+ { 0, 0, printargs, "SYS_1200" }, /* 1200 */
+ { 0, 0, printargs, "SYS_1201" }, /* 1201 */
+ { 0, 0, printargs, "SYS_1202" }, /* 1202 */
+ { 0, 0, printargs, "SYS_1203" }, /* 1203 */
+ { 0, 0, printargs, "SYS_1204" }, /* 1204 */
+ { 0, 0, printargs, "SYS_1205" }, /* 1205 */
+ { 0, 0, printargs, "SYS_1206" }, /* 1206 */
+ { 0, 0, printargs, "SYS_1207" }, /* 1207 */
+ { 0, 0, printargs, "SYS_1208" }, /* 1208 */
+ { 0, 0, printargs, "SYS_1209" }, /* 1209 */
+ { 0, 0, printargs, "SYS_1210" }, /* 1210 */
+ { 0, 0, printargs, "SYS_1211" }, /* 1211 */
+ { 0, 0, printargs, "SYS_1212" }, /* 1212 */
+ { 0, 0, printargs, "SYS_1213" }, /* 1213 */
+ { 0, 0, printargs, "SYS_1214" }, /* 1214 */
+ { 0, 0, printargs, "SYS_1215" }, /* 1215 */
+ { 0, 0, printargs, "SYS_1216" }, /* 1216 */
+ { 0, 0, printargs, "SYS_1217" }, /* 1217 */
+ { 0, 0, printargs, "SYS_1218" }, /* 1218 */
+ { 0, 0, printargs, "SYS_1219" }, /* 1219 */
+ { 0, 0, printargs, "SYS_1220" }, /* 1220 */
+ { 0, 0, printargs, "SYS_1221" }, /* 1221 */
+ { 0, 0, printargs, "SYS_1222" }, /* 1222 */
+ { 0, 0, printargs, "SYS_1223" }, /* 1223 */
+ { 0, 0, printargs, "SYS_1224" }, /* 1224 */
+ { 0, 0, printargs, "SYS_1225" }, /* 1225 */
+ { 0, 0, printargs, "SYS_1226" }, /* 1226 */
+ { 0, 0, printargs, "SYS_1227" }, /* 1227 */
+ { 0, 0, printargs, "SYS_1228" }, /* 1228 */
+ { 0, 0, printargs, "SYS_1229" }, /* 1229 */
+ { 0, 0, printargs, "SYS_1230" }, /* 1230 */
+ { 0, 0, printargs, "SYS_1231" }, /* 1231 */
+ { 0, 0, printargs, "SYS_1232" }, /* 1232 */
+ { 0, 0, printargs, "SYS_1233" }, /* 1233 */
+ { 0, 0, printargs, "SYS_1234" }, /* 1234 */
+ { 0, 0, printargs, "SYS_1235" }, /* 1235 */
+ { 0, 0, printargs, "SYS_1236" }, /* 1236 */
+ { 0, 0, printargs, "SYS_1237" }, /* 1237 */
+ { 0, 0, printargs, "SYS_1238" }, /* 1238 */
+ { 0, 0, printargs, "SYS_1239" }, /* 1239 */
+ { 0, 0, printargs, "SYS_1240" }, /* 1240 */
+ { 0, 0, printargs, "SYS_1241" }, /* 1241 */
+ { 0, 0, printargs, "SYS_1242" }, /* 1242 */
+ { 0, 0, printargs, "SYS_1243" }, /* 1243 */
+ { 0, 0, printargs, "SYS_1244" }, /* 1244 */
+ { 0, 0, printargs, "SYS_1245" }, /* 1245 */
+ { 0, 0, printargs, "SYS_1246" }, /* 1246 */
+ { 0, 0, printargs, "SYS_1247" }, /* 1247 */
+ { 0, 0, printargs, "SYS_1248" }, /* 1248 */
+ { 0, 0, printargs, "SYS_1249" }, /* 1249 */
+ { 0, 0, printargs, "SYS_1250" }, /* 1250 */
+ { 0, 0, printargs, "SYS_1251" }, /* 1251 */
+ { 0, 0, printargs, "SYS_1252" }, /* 1252 */
+ { 0, 0, printargs, "SYS_1253" }, /* 1253 */
+ { 0, 0, printargs, "SYS_1254" }, /* 1254 */
+ { 0, 0, printargs, "SYS_1255" }, /* 1255 */
+ { 0, 0, printargs, "SYS_1256" }, /* 1256 */
+ { 0, 0, printargs, "SYS_1257" }, /* 1257 */
+ { 0, 0, printargs, "SYS_1258" }, /* 1258 */
+ { 0, 0, printargs, "SYS_1259" }, /* 1259 */
+ { 0, 0, printargs, "SYS_1260" }, /* 1260 */
+ { 0, 0, printargs, "SYS_1261" }, /* 1261 */
+ { 0, 0, printargs, "SYS_1262" }, /* 1262 */
+ { 0, 0, printargs, "SYS_1263" }, /* 1263 */
+ { 0, 0, printargs, "SYS_1264" }, /* 1264 */
+ { 0, 0, printargs, "SYS_1265" }, /* 1265 */
+ { 0, 0, printargs, "SYS_1266" }, /* 1266 */
+ { 0, 0, printargs, "SYS_1267" }, /* 1267 */
+ { 0, 0, printargs, "SYS_1268" }, /* 1268 */
+ { 0, 0, printargs, "SYS_1269" }, /* 1269 */
+ { 0, 0, printargs, "SYS_1270" }, /* 1270 */
+ { 0, 0, printargs, "SYS_1271" }, /* 1271 */
+ { 0, 0, printargs, "SYS_1272" }, /* 1272 */
+ { 0, 0, printargs, "SYS_1273" }, /* 1273 */
+ { 0, 0, printargs, "SYS_1274" }, /* 1274 */
+ { 0, 0, printargs, "SYS_1275" }, /* 1275 */
+ { 0, 0, printargs, "SYS_1276" }, /* 1276 */
+ { 0, 0, printargs, "SYS_1277" }, /* 1277 */
+ { 0, 0, printargs, "SYS_1278" }, /* 1278 */
+ { 0, 0, printargs, "SYS_1279" }, /* 1279 */
+ { 0, 0, printargs, "SYS_1280" }, /* 1280 */
+ { 0, 0, printargs, "SYS_1281" }, /* 1281 */
+ { 0, 0, printargs, "SYS_1282" }, /* 1282 */
+ { 0, 0, printargs, "SYS_1283" }, /* 1283 */
+ { 0, 0, printargs, "SYS_1284" }, /* 1284 */
+ { 0, 0, printargs, "SYS_1285" }, /* 1285 */
+ { 0, 0, printargs, "SYS_1286" }, /* 1286 */
+ { 0, 0, printargs, "SYS_1287" }, /* 1287 */
+ { 0, 0, printargs, "SYS_1288" }, /* 1288 */
+ { 0, 0, printargs, "SYS_1289" }, /* 1289 */
+ { 0, 0, printargs, "SYS_1290" }, /* 1290 */
+ { 0, 0, printargs, "SYS_1291" }, /* 1291 */
+ { 0, 0, printargs, "SYS_1292" }, /* 1292 */
+ { 0, 0, printargs, "SYS_1293" }, /* 1293 */
+ { 0, 0, printargs, "SYS_1294" }, /* 1294 */
+ { 0, 0, printargs, "SYS_1295" }, /* 1295 */
+ { 0, 0, printargs, "SYS_1296" }, /* 1296 */
+ { 0, 0, printargs, "SYS_1297" }, /* 1297 */
+ { 0, 0, printargs, "SYS_1298" }, /* 1298 */
+ { 0, 0, printargs, "SYS_1299" }, /* 1299 */
+ { 0, 0, printargs, "SYS_1300" }, /* 1300 */
+ { 0, 0, printargs, "SYS_1301" }, /* 1301 */
+ { 0, 0, printargs, "SYS_1302" }, /* 1302 */
+ { 0, 0, printargs, "SYS_1303" }, /* 1303 */
+ { 0, 0, printargs, "SYS_1304" }, /* 1304 */
+ { 0, 0, printargs, "SYS_1305" }, /* 1305 */
+ { 0, 0, printargs, "SYS_1306" }, /* 1306 */
+ { 0, 0, printargs, "SYS_1307" }, /* 1307 */
+ { 0, 0, printargs, "SYS_1308" }, /* 1308 */
+ { 0, 0, printargs, "SYS_1309" }, /* 1309 */
+ { 0, 0, printargs, "SYS_1310" }, /* 1310 */
+ { 0, 0, printargs, "SYS_1311" }, /* 1311 */
+ { 0, 0, printargs, "SYS_1312" }, /* 1312 */
+ { 0, 0, printargs, "SYS_1313" }, /* 1313 */
+ { 0, 0, printargs, "SYS_1314" }, /* 1314 */
+ { 0, 0, printargs, "SYS_1315" }, /* 1315 */
+ { 0, 0, printargs, "SYS_1316" }, /* 1316 */
+ { 0, 0, printargs, "SYS_1317" }, /* 1317 */
+ { 0, 0, printargs, "SYS_1318" }, /* 1318 */
+ { 0, 0, printargs, "SYS_1319" }, /* 1319 */
+ { 0, 0, printargs, "SYS_1320" }, /* 1320 */
+ { 0, 0, printargs, "SYS_1321" }, /* 1321 */
+ { 0, 0, printargs, "SYS_1322" }, /* 1322 */
+ { 0, 0, printargs, "SYS_1323" }, /* 1323 */
+ { 0, 0, printargs, "SYS_1324" }, /* 1324 */
+ { 0, 0, printargs, "SYS_1325" }, /* 1325 */
+ { 0, 0, printargs, "SYS_1326" }, /* 1326 */
+ { 0, 0, printargs, "SYS_1327" }, /* 1327 */
+ { 0, 0, printargs, "SYS_1328" }, /* 1328 */
+ { 0, 0, printargs, "SYS_1329" }, /* 1329 */
+ { 0, 0, printargs, "SYS_1330" }, /* 1330 */
+ { 0, 0, printargs, "SYS_1331" }, /* 1331 */
+ { 0, 0, printargs, "SYS_1332" }, /* 1332 */
+ { 0, 0, printargs, "SYS_1333" }, /* 1333 */
+ { 0, 0, printargs, "SYS_1334" }, /* 1334 */
+ { 0, 0, printargs, "SYS_1335" }, /* 1335 */
+ { 0, 0, printargs, "SYS_1336" }, /* 1336 */
+ { 0, 0, printargs, "SYS_1337" }, /* 1337 */
+ { 0, 0, printargs, "SYS_1338" }, /* 1338 */
+ { 0, 0, printargs, "SYS_1339" }, /* 1339 */
+ { 0, 0, printargs, "SYS_1340" }, /* 1340 */
+ { 0, 0, printargs, "SYS_1341" }, /* 1341 */
+ { 0, 0, printargs, "SYS_1342" }, /* 1342 */
+ { 0, 0, printargs, "SYS_1343" }, /* 1343 */
+ { 0, 0, printargs, "SYS_1344" }, /* 1344 */
+ { 0, 0, printargs, "SYS_1345" }, /* 1345 */
+ { 0, 0, printargs, "SYS_1346" }, /* 1346 */
+ { 0, 0, printargs, "SYS_1347" }, /* 1347 */
+ { 0, 0, printargs, "SYS_1348" }, /* 1348 */
+ { 0, 0, printargs, "SYS_1349" }, /* 1349 */
+ { 0, 0, printargs, "SYS_1350" }, /* 1350 */
+ { 0, 0, printargs, "SYS_1351" }, /* 1351 */
+ { 0, 0, printargs, "SYS_1352" }, /* 1352 */
+ { 0, 0, printargs, "SYS_1353" }, /* 1353 */
+ { 0, 0, printargs, "SYS_1354" }, /* 1354 */
+ { 0, 0, printargs, "SYS_1355" }, /* 1355 */
+ { 0, 0, printargs, "SYS_1356" }, /* 1356 */
+ { 0, 0, printargs, "SYS_1357" }, /* 1357 */
+ { 0, 0, printargs, "SYS_1358" }, /* 1358 */
+ { 0, 0, printargs, "SYS_1359" }, /* 1359 */
+ { 0, 0, printargs, "SYS_1360" }, /* 1360 */
+ { 0, 0, printargs, "SYS_1361" }, /* 1361 */
+ { 0, 0, printargs, "SYS_1362" }, /* 1362 */
+ { 0, 0, printargs, "SYS_1363" }, /* 1363 */
+ { 0, 0, printargs, "SYS_1364" }, /* 1364 */
+ { 0, 0, printargs, "SYS_1365" }, /* 1365 */
+ { 0, 0, printargs, "SYS_1366" }, /* 1366 */
+ { 0, 0, printargs, "SYS_1367" }, /* 1367 */
+ { 0, 0, printargs, "SYS_1368" }, /* 1368 */
+ { 0, 0, printargs, "SYS_1369" }, /* 1369 */
+ { 0, 0, printargs, "SYS_1370" }, /* 1370 */
+ { 0, 0, printargs, "SYS_1371" }, /* 1371 */
+ { 0, 0, printargs, "SYS_1372" }, /* 1372 */
+ { 0, 0, printargs, "SYS_1373" }, /* 1373 */
+ { 0, 0, printargs, "SYS_1374" }, /* 1374 */
+ { 0, 0, printargs, "SYS_1375" }, /* 1375 */
+ { 0, 0, printargs, "SYS_1376" }, /* 1376 */
+ { 0, 0, printargs, "SYS_1377" }, /* 1377 */
+ { 0, 0, printargs, "SYS_1378" }, /* 1378 */
+ { 0, 0, printargs, "SYS_1379" }, /* 1379 */
+ { 0, 0, printargs, "SYS_1380" }, /* 1380 */
+ { 0, 0, printargs, "SYS_1381" }, /* 1381 */
+ { 0, 0, printargs, "SYS_1382" }, /* 1382 */
+ { 0, 0, printargs, "SYS_1383" }, /* 1383 */
+ { 0, 0, printargs, "SYS_1384" }, /* 1384 */
+ { 0, 0, printargs, "SYS_1385" }, /* 1385 */
+ { 0, 0, printargs, "SYS_1386" }, /* 1386 */
+ { 0, 0, printargs, "SYS_1387" }, /* 1387 */
+ { 0, 0, printargs, "SYS_1388" }, /* 1388 */
+ { 0, 0, printargs, "SYS_1389" }, /* 1389 */
+ { 0, 0, printargs, "SYS_1390" }, /* 1390 */
+ { 0, 0, printargs, "SYS_1391" }, /* 1391 */
+ { 0, 0, printargs, "SYS_1392" }, /* 1392 */
+ { 0, 0, printargs, "SYS_1393" }, /* 1393 */
+ { 0, 0, printargs, "SYS_1394" }, /* 1394 */
+ { 0, 0, printargs, "SYS_1395" }, /* 1395 */
+ { 0, 0, printargs, "SYS_1396" }, /* 1396 */
+ { 0, 0, printargs, "SYS_1397" }, /* 1397 */
+ { 0, 0, printargs, "SYS_1398" }, /* 1398 */
+ { 0, 0, printargs, "SYS_1399" }, /* 1399 */
+ { 0, 0, printargs, "SYS_1400" }, /* 1400 */
+ { 0, 0, printargs, "SYS_1401" }, /* 1401 */
+ { 0, 0, printargs, "SYS_1402" }, /* 1402 */
+ { 0, 0, printargs, "SYS_1403" }, /* 1403 */
+ { 0, 0, printargs, "SYS_1404" }, /* 1404 */
+ { 0, 0, printargs, "SYS_1405" }, /* 1405 */
+ { 0, 0, printargs, "SYS_1406" }, /* 1406 */
+ { 0, 0, printargs, "SYS_1407" }, /* 1407 */
+ { 0, 0, printargs, "SYS_1408" }, /* 1408 */
+ { 0, 0, printargs, "SYS_1409" }, /* 1409 */
+ { 0, 0, printargs, "SYS_1410" }, /* 1410 */
+ { 0, 0, printargs, "SYS_1411" }, /* 1411 */
+ { 0, 0, printargs, "SYS_1412" }, /* 1412 */
+ { 0, 0, printargs, "SYS_1413" }, /* 1413 */
+ { 0, 0, printargs, "SYS_1414" }, /* 1414 */
+ { 0, 0, printargs, "SYS_1415" }, /* 1415 */
+ { 0, 0, printargs, "SYS_1416" }, /* 1416 */
+ { 0, 0, printargs, "SYS_1417" }, /* 1417 */
+ { 0, 0, printargs, "SYS_1418" }, /* 1418 */
+ { 0, 0, printargs, "SYS_1419" }, /* 1419 */
+ { 0, 0, printargs, "SYS_1420" }, /* 1420 */
+ { 0, 0, printargs, "SYS_1421" }, /* 1421 */
+ { 0, 0, printargs, "SYS_1422" }, /* 1422 */
+ { 0, 0, printargs, "SYS_1423" }, /* 1423 */
+ { 0, 0, printargs, "SYS_1424" }, /* 1424 */
+ { 0, 0, printargs, "SYS_1425" }, /* 1425 */
+ { 0, 0, printargs, "SYS_1426" }, /* 1426 */
+ { 0, 0, printargs, "SYS_1427" }, /* 1427 */
+ { 0, 0, printargs, "SYS_1428" }, /* 1428 */
+ { 0, 0, printargs, "SYS_1429" }, /* 1429 */
+ { 0, 0, printargs, "SYS_1430" }, /* 1430 */
+ { 0, 0, printargs, "SYS_1431" }, /* 1431 */
+ { 0, 0, printargs, "SYS_1432" }, /* 1432 */
+ { 0, 0, printargs, "SYS_1433" }, /* 1433 */
+ { 0, 0, printargs, "SYS_1434" }, /* 1434 */
+ { 0, 0, printargs, "SYS_1435" }, /* 1435 */
+ { 0, 0, printargs, "SYS_1436" }, /* 1436 */
+ { 0, 0, printargs, "SYS_1437" }, /* 1437 */
+ { 0, 0, printargs, "SYS_1438" }, /* 1438 */
+ { 0, 0, printargs, "SYS_1439" }, /* 1439 */
+ { 0, 0, printargs, "SYS_1440" }, /* 1440 */
+ { 0, 0, printargs, "SYS_1441" }, /* 1441 */
+ { 0, 0, printargs, "SYS_1442" }, /* 1442 */
+ { 0, 0, printargs, "SYS_1443" }, /* 1443 */
+ { 0, 0, printargs, "SYS_1444" }, /* 1444 */
+ { 0, 0, printargs, "SYS_1445" }, /* 1445 */
+ { 0, 0, printargs, "SYS_1446" }, /* 1446 */
+ { 0, 0, printargs, "SYS_1447" }, /* 1447 */
+ { 0, 0, printargs, "SYS_1448" }, /* 1448 */
+ { 0, 0, printargs, "SYS_1449" }, /* 1449 */
+ { 0, 0, printargs, "SYS_1450" }, /* 1450 */
+ { 0, 0, printargs, "SYS_1451" }, /* 1451 */
+ { 0, 0, printargs, "SYS_1452" }, /* 1452 */
+ { 0, 0, printargs, "SYS_1453" }, /* 1453 */
+ { 0, 0, printargs, "SYS_1454" }, /* 1454 */
+ { 0, 0, printargs, "SYS_1455" }, /* 1455 */
+ { 0, 0, printargs, "SYS_1456" }, /* 1456 */
+ { 0, 0, printargs, "SYS_1457" }, /* 1457 */
+ { 0, 0, printargs, "SYS_1458" }, /* 1458 */
+ { 0, 0, printargs, "SYS_1459" }, /* 1459 */
+ { 0, 0, printargs, "SYS_1460" }, /* 1460 */
+ { 0, 0, printargs, "SYS_1461" }, /* 1461 */
+ { 0, 0, printargs, "SYS_1462" }, /* 1462 */
+ { 0, 0, printargs, "SYS_1463" }, /* 1463 */
+ { 0, 0, printargs, "SYS_1464" }, /* 1464 */
+ { 0, 0, printargs, "SYS_1465" }, /* 1465 */
+ { 0, 0, printargs, "SYS_1466" }, /* 1466 */
+ { 0, 0, printargs, "SYS_1467" }, /* 1467 */
+ { 0, 0, printargs, "SYS_1468" }, /* 1468 */
+ { 0, 0, printargs, "SYS_1469" }, /* 1469 */
+ { 0, 0, printargs, "SYS_1470" }, /* 1470 */
+ { 0, 0, printargs, "SYS_1471" }, /* 1471 */
+ { 0, 0, printargs, "SYS_1472" }, /* 1472 */
+ { 0, 0, printargs, "SYS_1473" }, /* 1473 */
+ { 0, 0, printargs, "SYS_1474" }, /* 1474 */
+ { 0, 0, printargs, "SYS_1475" }, /* 1475 */
+ { 0, 0, printargs, "SYS_1476" }, /* 1476 */
+ { 0, 0, printargs, "SYS_1477" }, /* 1477 */
+ { 0, 0, printargs, "SYS_1478" }, /* 1478 */
+ { 0, 0, printargs, "SYS_1479" }, /* 1479 */
+ { 0, 0, printargs, "SYS_1480" }, /* 1480 */
+ { 0, 0, printargs, "SYS_1481" }, /* 1481 */
+ { 0, 0, printargs, "SYS_1482" }, /* 1482 */
+ { 0, 0, printargs, "SYS_1483" }, /* 1483 */
+ { 0, 0, printargs, "SYS_1484" }, /* 1484 */
+ { 0, 0, printargs, "SYS_1485" }, /* 1485 */
+ { 0, 0, printargs, "SYS_1486" }, /* 1486 */
+ { 0, 0, printargs, "SYS_1487" }, /* 1487 */
+ { 0, 0, printargs, "SYS_1488" }, /* 1488 */
+ { 0, 0, printargs, "SYS_1489" }, /* 1489 */
+ { 0, 0, printargs, "SYS_1490" }, /* 1490 */
+ { 0, 0, printargs, "SYS_1491" }, /* 1491 */
+ { 0, 0, printargs, "SYS_1492" }, /* 1492 */
+ { 0, 0, printargs, "SYS_1493" }, /* 1493 */
+ { 0, 0, printargs, "SYS_1494" }, /* 1494 */
+ { 0, 0, printargs, "SYS_1495" }, /* 1495 */
+ { 0, 0, printargs, "SYS_1496" }, /* 1496 */
+ { 0, 0, printargs, "SYS_1497" }, /* 1497 */
+ { 0, 0, printargs, "SYS_1498" }, /* 1498 */
+ { 0, 0, printargs, "SYS_1499" }, /* 1499 */
+ { 0, 0, printargs, "SYS_1500" }, /* 1500 */
+ { 0, 0, printargs, "SYS_1501" }, /* 1501 */
+ { 0, 0, printargs, "SYS_1502" }, /* 1502 */
+ { 0, 0, printargs, "SYS_1503" }, /* 1503 */
+ { 0, 0, printargs, "SYS_1504" }, /* 1504 */
+ { 0, 0, printargs, "SYS_1505" }, /* 1505 */
+ { 0, 0, printargs, "SYS_1506" }, /* 1506 */
+ { 0, 0, printargs, "SYS_1507" }, /* 1507 */
+ { 0, 0, printargs, "SYS_1508" }, /* 1508 */
+ { 0, 0, printargs, "SYS_1509" }, /* 1509 */
+ { 0, 0, printargs, "SYS_1510" }, /* 1510 */
+ { 0, 0, printargs, "SYS_1511" }, /* 1511 */
+ { 0, 0, printargs, "SYS_1512" }, /* 1512 */
+ { 0, 0, printargs, "SYS_1513" }, /* 1513 */
+ { 0, 0, printargs, "SYS_1514" }, /* 1514 */
+ { 0, 0, printargs, "SYS_1515" }, /* 1515 */
+ { 0, 0, printargs, "SYS_1516" }, /* 1516 */
+ { 0, 0, printargs, "SYS_1517" }, /* 1517 */
+ { 0, 0, printargs, "SYS_1518" }, /* 1518 */
+ { 0, 0, printargs, "SYS_1519" }, /* 1519 */
+ { 0, 0, printargs, "SYS_1520" }, /* 1520 */
+ { 0, 0, printargs, "SYS_1521" }, /* 1521 */
+ { 0, 0, printargs, "SYS_1522" }, /* 1522 */
+ { 0, 0, printargs, "SYS_1523" }, /* 1523 */
+ { 0, 0, printargs, "SYS_1524" }, /* 1524 */
+ { 0, 0, printargs, "SYS_1525" }, /* 1525 */
+ { 0, 0, printargs, "SYS_1526" }, /* 1526 */
+ { 0, 0, printargs, "SYS_1527" }, /* 1527 */
+ { 0, 0, printargs, "SYS_1528" }, /* 1528 */
+ { 0, 0, printargs, "SYS_1529" }, /* 1529 */
+ { 0, 0, printargs, "SYS_1530" }, /* 1530 */
+ { 0, 0, printargs, "SYS_1531" }, /* 1531 */
+ { 0, 0, printargs, "SYS_1532" }, /* 1532 */
+ { 0, 0, printargs, "SYS_1533" }, /* 1533 */
+ { 0, 0, printargs, "SYS_1534" }, /* 1534 */
+ { 0, 0, printargs, "SYS_1535" }, /* 1535 */
+ { 0, 0, printargs, "SYS_1536" }, /* 1536 */
+ { 0, 0, printargs, "SYS_1537" }, /* 1537 */
+ { 0, 0, printargs, "SYS_1538" }, /* 1538 */
+ { 0, 0, printargs, "SYS_1539" }, /* 1539 */
+ { 0, 0, printargs, "SYS_1540" }, /* 1540 */
+ { 0, 0, printargs, "SYS_1541" }, /* 1541 */
+ { 0, 0, printargs, "SYS_1542" }, /* 1542 */
+ { 0, 0, printargs, "SYS_1543" }, /* 1543 */
+ { 0, 0, printargs, "SYS_1544" }, /* 1544 */
+ { 0, 0, printargs, "SYS_1545" }, /* 1545 */
+ { 0, 0, printargs, "SYS_1546" }, /* 1546 */
+ { 0, 0, printargs, "SYS_1547" }, /* 1547 */
+ { 0, 0, printargs, "SYS_1548" }, /* 1548 */
+ { 0, 0, printargs, "SYS_1549" }, /* 1549 */
+ { 0, 0, printargs, "SYS_1550" }, /* 1550 */
+ { 0, 0, printargs, "SYS_1551" }, /* 1551 */
+ { 0, 0, printargs, "SYS_1552" }, /* 1552 */
+ { 0, 0, printargs, "SYS_1553" }, /* 1553 */
+ { 0, 0, printargs, "SYS_1554" }, /* 1554 */
+ { 0, 0, printargs, "SYS_1555" }, /* 1555 */
+ { 0, 0, printargs, "SYS_1556" }, /* 1556 */
+ { 0, 0, printargs, "SYS_1557" }, /* 1557 */
+ { 0, 0, printargs, "SYS_1558" }, /* 1558 */
+ { 0, 0, printargs, "SYS_1559" }, /* 1559 */
+ { 0, 0, printargs, "SYS_1560" }, /* 1560 */
+ { 0, 0, printargs, "SYS_1561" }, /* 1561 */
+ { 0, 0, printargs, "SYS_1562" }, /* 1562 */
+ { 0, 0, printargs, "SYS_1563" }, /* 1563 */
+ { 0, 0, printargs, "SYS_1564" }, /* 1564 */
+ { 0, 0, printargs, "SYS_1565" }, /* 1565 */
+ { 0, 0, printargs, "SYS_1566" }, /* 1566 */
+ { 0, 0, printargs, "SYS_1567" }, /* 1567 */
+ { 0, 0, printargs, "SYS_1568" }, /* 1568 */
+ { 0, 0, printargs, "SYS_1569" }, /* 1569 */
+ { 0, 0, printargs, "SYS_1570" }, /* 1570 */
+ { 0, 0, printargs, "SYS_1571" }, /* 1571 */
+ { 0, 0, printargs, "SYS_1572" }, /* 1572 */
+ { 0, 0, printargs, "SYS_1573" }, /* 1573 */
+ { 0, 0, printargs, "SYS_1574" }, /* 1574 */
+ { 0, 0, printargs, "SYS_1575" }, /* 1575 */
+ { 0, 0, printargs, "SYS_1576" }, /* 1576 */
+ { 0, 0, printargs, "SYS_1577" }, /* 1577 */
+ { 0, 0, printargs, "SYS_1578" }, /* 1578 */
+ { 0, 0, printargs, "SYS_1579" }, /* 1579 */
+ { 0, 0, printargs, "SYS_1580" }, /* 1580 */
+ { 0, 0, printargs, "SYS_1581" }, /* 1581 */
+ { 0, 0, printargs, "SYS_1582" }, /* 1582 */
+ { 0, 0, printargs, "SYS_1583" }, /* 1583 */
+ { 0, 0, printargs, "SYS_1584" }, /* 1584 */
+ { 0, 0, printargs, "SYS_1585" }, /* 1585 */
+ { 0, 0, printargs, "SYS_1586" }, /* 1586 */
+ { 0, 0, printargs, "SYS_1587" }, /* 1587 */
+ { 0, 0, printargs, "SYS_1588" }, /* 1588 */
+ { 0, 0, printargs, "SYS_1589" }, /* 1589 */
+ { 0, 0, printargs, "SYS_1590" }, /* 1590 */
+ { 0, 0, printargs, "SYS_1591" }, /* 1591 */
+ { 0, 0, printargs, "SYS_1592" }, /* 1592 */
+ { 0, 0, printargs, "SYS_1593" }, /* 1593 */
+ { 0, 0, printargs, "SYS_1594" }, /* 1594 */
+ { 0, 0, printargs, "SYS_1595" }, /* 1595 */
+ { 0, 0, printargs, "SYS_1596" }, /* 1596 */
+ { 0, 0, printargs, "SYS_1597" }, /* 1597 */
+ { 0, 0, printargs, "SYS_1598" }, /* 1598 */
+ { 0, 0, printargs, "SYS_1599" }, /* 1599 */
+ { 0, 0, printargs, "SYS_1600" }, /* 1600 */
+ { 0, 0, printargs, "SYS_1601" }, /* 1601 */
+ { 0, 0, printargs, "SYS_1602" }, /* 1602 */
+ { 0, 0, printargs, "SYS_1603" }, /* 1603 */
+ { 0, 0, printargs, "SYS_1604" }, /* 1604 */
+ { 0, 0, printargs, "SYS_1605" }, /* 1605 */
+ { 0, 0, printargs, "SYS_1606" }, /* 1606 */
+ { 0, 0, printargs, "SYS_1607" }, /* 1607 */
+ { 0, 0, printargs, "SYS_1608" }, /* 1608 */
+ { 0, 0, printargs, "SYS_1609" }, /* 1609 */
+ { 0, 0, printargs, "SYS_1610" }, /* 1610 */
+ { 0, 0, printargs, "SYS_1611" }, /* 1611 */
+ { 0, 0, printargs, "SYS_1612" }, /* 1612 */
+ { 0, 0, printargs, "SYS_1613" }, /* 1613 */
+ { 0, 0, printargs, "SYS_1614" }, /* 1614 */
+ { 0, 0, printargs, "SYS_1615" }, /* 1615 */
+ { 0, 0, printargs, "SYS_1616" }, /* 1616 */
+ { 0, 0, printargs, "SYS_1617" }, /* 1617 */
+ { 0, 0, printargs, "SYS_1618" }, /* 1618 */
+ { 0, 0, printargs, "SYS_1619" }, /* 1619 */
+ { 0, 0, printargs, "SYS_1620" }, /* 1620 */
+ { 0, 0, printargs, "SYS_1621" }, /* 1621 */
+ { 0, 0, printargs, "SYS_1622" }, /* 1622 */
+ { 0, 0, printargs, "SYS_1623" }, /* 1623 */
+ { 0, 0, printargs, "SYS_1624" }, /* 1624 */
+ { 0, 0, printargs, "SYS_1625" }, /* 1625 */
+ { 0, 0, printargs, "SYS_1626" }, /* 1626 */
+ { 0, 0, printargs, "SYS_1627" }, /* 1627 */
+ { 0, 0, printargs, "SYS_1628" }, /* 1628 */
+ { 0, 0, printargs, "SYS_1629" }, /* 1629 */
+ { 0, 0, printargs, "SYS_1630" }, /* 1630 */
+ { 0, 0, printargs, "SYS_1631" }, /* 1631 */
+ { 0, 0, printargs, "SYS_1632" }, /* 1632 */
+ { 0, 0, printargs, "SYS_1633" }, /* 1633 */
+ { 0, 0, printargs, "SYS_1634" }, /* 1634 */
+ { 0, 0, printargs, "SYS_1635" }, /* 1635 */
+ { 0, 0, printargs, "SYS_1636" }, /* 1636 */
+ { 0, 0, printargs, "SYS_1637" }, /* 1637 */
+ { 0, 0, printargs, "SYS_1638" }, /* 1638 */
+ { 0, 0, printargs, "SYS_1639" }, /* 1639 */
+ { 0, 0, printargs, "SYS_1640" }, /* 1640 */
+ { 0, 0, printargs, "SYS_1641" }, /* 1641 */
+ { 0, 0, printargs, "SYS_1642" }, /* 1642 */
+ { 0, 0, printargs, "SYS_1643" }, /* 1643 */
+ { 0, 0, printargs, "SYS_1644" }, /* 1644 */
+ { 0, 0, printargs, "SYS_1645" }, /* 1645 */
+ { 0, 0, printargs, "SYS_1646" }, /* 1646 */
+ { 0, 0, printargs, "SYS_1647" }, /* 1647 */
+ { 0, 0, printargs, "SYS_1648" }, /* 1648 */
+ { 0, 0, printargs, "SYS_1649" }, /* 1649 */
+ { 0, 0, printargs, "SYS_1650" }, /* 1650 */
+ { 0, 0, printargs, "SYS_1651" }, /* 1651 */
+ { 0, 0, printargs, "SYS_1652" }, /* 1652 */
+ { 0, 0, printargs, "SYS_1653" }, /* 1653 */
+ { 0, 0, printargs, "SYS_1654" }, /* 1654 */
+ { 0, 0, printargs, "SYS_1655" }, /* 1655 */
+ { 0, 0, printargs, "SYS_1656" }, /* 1656 */
+ { 0, 0, printargs, "SYS_1657" }, /* 1657 */
+ { 0, 0, printargs, "SYS_1658" }, /* 1658 */
+ { 0, 0, printargs, "SYS_1659" }, /* 1659 */
+ { 0, 0, printargs, "SYS_1660" }, /* 1660 */
+ { 0, 0, printargs, "SYS_1661" }, /* 1661 */
+ { 0, 0, printargs, "SYS_1662" }, /* 1662 */
+ { 0, 0, printargs, "SYS_1663" }, /* 1663 */
+ { 0, 0, printargs, "SYS_1664" }, /* 1664 */
+ { 0, 0, printargs, "SYS_1665" }, /* 1665 */
+ { 0, 0, printargs, "SYS_1666" }, /* 1666 */
+ { 0, 0, printargs, "SYS_1667" }, /* 1667 */
+ { 0, 0, printargs, "SYS_1668" }, /* 1668 */
+ { 0, 0, printargs, "SYS_1669" }, /* 1669 */
+ { 0, 0, printargs, "SYS_1670" }, /* 1670 */
+ { 0, 0, printargs, "SYS_1671" }, /* 1671 */
+ { 0, 0, printargs, "SYS_1672" }, /* 1672 */
+ { 0, 0, printargs, "SYS_1673" }, /* 1673 */
+ { 0, 0, printargs, "SYS_1674" }, /* 1674 */
+ { 0, 0, printargs, "SYS_1675" }, /* 1675 */
+ { 0, 0, printargs, "SYS_1676" }, /* 1676 */
+ { 0, 0, printargs, "SYS_1677" }, /* 1677 */
+ { 0, 0, printargs, "SYS_1678" }, /* 1678 */
+ { 0, 0, printargs, "SYS_1679" }, /* 1679 */
+ { 0, 0, printargs, "SYS_1680" }, /* 1680 */
+ { 0, 0, printargs, "SYS_1681" }, /* 1681 */
+ { 0, 0, printargs, "SYS_1682" }, /* 1682 */
+ { 0, 0, printargs, "SYS_1683" }, /* 1683 */
+ { 0, 0, printargs, "SYS_1684" }, /* 1684 */
+ { 0, 0, printargs, "SYS_1685" }, /* 1685 */
+ { 0, 0, printargs, "SYS_1686" }, /* 1686 */
+ { 0, 0, printargs, "SYS_1687" }, /* 1687 */
+ { 0, 0, printargs, "SYS_1688" }, /* 1688 */
+ { 0, 0, printargs, "SYS_1689" }, /* 1689 */
+ { 0, 0, printargs, "SYS_1690" }, /* 1690 */
+ { 0, 0, printargs, "SYS_1691" }, /* 1691 */
+ { 0, 0, printargs, "SYS_1692" }, /* 1692 */
+ { 0, 0, printargs, "SYS_1693" }, /* 1693 */
+ { 0, 0, printargs, "SYS_1694" }, /* 1694 */
+ { 0, 0, printargs, "SYS_1695" }, /* 1695 */
+ { 0, 0, printargs, "SYS_1696" }, /* 1696 */
+ { 0, 0, printargs, "SYS_1697" }, /* 1697 */
+ { 0, 0, printargs, "SYS_1698" }, /* 1698 */
+ { 0, 0, printargs, "SYS_1699" }, /* 1699 */
+ { 0, 0, printargs, "SYS_1700" }, /* 1700 */
+ { 0, 0, printargs, "SYS_1701" }, /* 1701 */
+ { 0, 0, printargs, "SYS_1702" }, /* 1702 */
+ { 0, 0, printargs, "SYS_1703" }, /* 1703 */
+ { 0, 0, printargs, "SYS_1704" }, /* 1704 */
+ { 0, 0, printargs, "SYS_1705" }, /* 1705 */
+ { 0, 0, printargs, "SYS_1706" }, /* 1706 */
+ { 0, 0, printargs, "SYS_1707" }, /* 1707 */
+ { 0, 0, printargs, "SYS_1708" }, /* 1708 */
+ { 0, 0, printargs, "SYS_1709" }, /* 1709 */
+ { 0, 0, printargs, "SYS_1710" }, /* 1710 */
+ { 0, 0, printargs, "SYS_1711" }, /* 1711 */
+ { 0, 0, printargs, "SYS_1712" }, /* 1712 */
+ { 0, 0, printargs, "SYS_1713" }, /* 1713 */
+ { 0, 0, printargs, "SYS_1714" }, /* 1714 */
+ { 0, 0, printargs, "SYS_1715" }, /* 1715 */
+ { 0, 0, printargs, "SYS_1716" }, /* 1716 */
+ { 0, 0, printargs, "SYS_1717" }, /* 1717 */
+ { 0, 0, printargs, "SYS_1718" }, /* 1718 */
+ { 0, 0, printargs, "SYS_1719" }, /* 1719 */
+ { 0, 0, printargs, "SYS_1720" }, /* 1720 */
+ { 0, 0, printargs, "SYS_1721" }, /* 1721 */
+ { 0, 0, printargs, "SYS_1722" }, /* 1722 */
+ { 0, 0, printargs, "SYS_1723" }, /* 1723 */
+ { 0, 0, printargs, "SYS_1724" }, /* 1724 */
+ { 0, 0, printargs, "SYS_1725" }, /* 1725 */
+ { 0, 0, printargs, "SYS_1726" }, /* 1726 */
+ { 0, 0, printargs, "SYS_1727" }, /* 1727 */
+ { 0, 0, printargs, "SYS_1728" }, /* 1728 */
+ { 0, 0, printargs, "SYS_1729" }, /* 1729 */
+ { 0, 0, printargs, "SYS_1730" }, /* 1730 */
+ { 0, 0, printargs, "SYS_1731" }, /* 1731 */
+ { 0, 0, printargs, "SYS_1732" }, /* 1732 */
+ { 0, 0, printargs, "SYS_1733" }, /* 1733 */
+ { 0, 0, printargs, "SYS_1734" }, /* 1734 */
+ { 0, 0, printargs, "SYS_1735" }, /* 1735 */
+ { 0, 0, printargs, "SYS_1736" }, /* 1736 */
+ { 0, 0, printargs, "SYS_1737" }, /* 1737 */
+ { 0, 0, printargs, "SYS_1738" }, /* 1738 */
+ { 0, 0, printargs, "SYS_1739" }, /* 1739 */
+ { 0, 0, printargs, "SYS_1740" }, /* 1740 */
+ { 0, 0, printargs, "SYS_1741" }, /* 1741 */
+ { 0, 0, printargs, "SYS_1742" }, /* 1742 */
+ { 0, 0, printargs, "SYS_1743" }, /* 1743 */
+ { 0, 0, printargs, "SYS_1744" }, /* 1744 */
+ { 0, 0, printargs, "SYS_1745" }, /* 1745 */
+ { 0, 0, printargs, "SYS_1746" }, /* 1746 */
+ { 0, 0, printargs, "SYS_1747" }, /* 1747 */
+ { 0, 0, printargs, "SYS_1748" }, /* 1748 */
+ { 0, 0, printargs, "SYS_1749" }, /* 1749 */
+ { 0, 0, printargs, "SYS_1750" }, /* 1750 */
+ { 0, 0, printargs, "SYS_1751" }, /* 1751 */
+ { 0, 0, printargs, "SYS_1752" }, /* 1752 */
+ { 0, 0, printargs, "SYS_1753" }, /* 1753 */
+ { 0, 0, printargs, "SYS_1754" }, /* 1754 */
+ { 0, 0, printargs, "SYS_1755" }, /* 1755 */
+ { 0, 0, printargs, "SYS_1756" }, /* 1756 */
+ { 0, 0, printargs, "SYS_1757" }, /* 1757 */
+ { 0, 0, printargs, "SYS_1758" }, /* 1758 */
+ { 0, 0, printargs, "SYS_1759" }, /* 1759 */
+ { 0, 0, printargs, "SYS_1760" }, /* 1760 */
+ { 0, 0, printargs, "SYS_1761" }, /* 1761 */
+ { 0, 0, printargs, "SYS_1762" }, /* 1762 */
+ { 0, 0, printargs, "SYS_1763" }, /* 1763 */
+ { 0, 0, printargs, "SYS_1764" }, /* 1764 */
+ { 0, 0, printargs, "SYS_1765" }, /* 1765 */
+ { 0, 0, printargs, "SYS_1766" }, /* 1766 */
+ { 0, 0, printargs, "SYS_1767" }, /* 1767 */
+ { 0, 0, printargs, "SYS_1768" }, /* 1768 */
+ { 0, 0, printargs, "SYS_1769" }, /* 1769 */
+ { 0, 0, printargs, "SYS_1770" }, /* 1770 */
+ { 0, 0, printargs, "SYS_1771" }, /* 1771 */
+ { 0, 0, printargs, "SYS_1772" }, /* 1772 */
+ { 0, 0, printargs, "SYS_1773" }, /* 1773 */
+ { 0, 0, printargs, "SYS_1774" }, /* 1774 */
+ { 0, 0, printargs, "SYS_1775" }, /* 1775 */
+ { 0, 0, printargs, "SYS_1776" }, /* 1776 */
+ { 0, 0, printargs, "SYS_1777" }, /* 1777 */
+ { 0, 0, printargs, "SYS_1778" }, /* 1778 */
+ { 0, 0, printargs, "SYS_1779" }, /* 1779 */
+ { 0, 0, printargs, "SYS_1780" }, /* 1780 */
+ { 0, 0, printargs, "SYS_1781" }, /* 1781 */
+ { 0, 0, printargs, "SYS_1782" }, /* 1782 */
+ { 0, 0, printargs, "SYS_1783" }, /* 1783 */
+ { 0, 0, printargs, "SYS_1784" }, /* 1784 */
+ { 0, 0, printargs, "SYS_1785" }, /* 1785 */
+ { 0, 0, printargs, "SYS_1786" }, /* 1786 */
+ { 0, 0, printargs, "SYS_1787" }, /* 1787 */
+ { 0, 0, printargs, "SYS_1788" }, /* 1788 */
+ { 0, 0, printargs, "SYS_1789" }, /* 1789 */
+ { 0, 0, printargs, "SYS_1790" }, /* 1790 */
+ { 0, 0, printargs, "SYS_1791" }, /* 1791 */
+ { 0, 0, printargs, "SYS_1792" }, /* 1792 */
+ { 0, 0, printargs, "SYS_1793" }, /* 1793 */
+ { 0, 0, printargs, "SYS_1794" }, /* 1794 */
+ { 0, 0, printargs, "SYS_1795" }, /* 1795 */
+ { 0, 0, printargs, "SYS_1796" }, /* 1796 */
+ { 0, 0, printargs, "SYS_1797" }, /* 1797 */
+ { 0, 0, printargs, "SYS_1798" }, /* 1798 */
+ { 0, 0, printargs, "SYS_1799" }, /* 1799 */
+ { 0, 0, printargs, "SYS_1800" }, /* 1800 */
+ { 0, 0, printargs, "SYS_1801" }, /* 1801 */
+ { 0, 0, printargs, "SYS_1802" }, /* 1802 */
+ { 0, 0, printargs, "SYS_1803" }, /* 1803 */
+ { 0, 0, printargs, "SYS_1804" }, /* 1804 */
+ { 0, 0, printargs, "SYS_1805" }, /* 1805 */
+ { 0, 0, printargs, "SYS_1806" }, /* 1806 */
+ { 0, 0, printargs, "SYS_1807" }, /* 1807 */
+ { 0, 0, printargs, "SYS_1808" }, /* 1808 */
+ { 0, 0, printargs, "SYS_1809" }, /* 1809 */
+ { 0, 0, printargs, "SYS_1810" }, /* 1810 */
+ { 0, 0, printargs, "SYS_1811" }, /* 1811 */
+ { 0, 0, printargs, "SYS_1812" }, /* 1812 */
+ { 0, 0, printargs, "SYS_1813" }, /* 1813 */
+ { 0, 0, printargs, "SYS_1814" }, /* 1814 */
+ { 0, 0, printargs, "SYS_1815" }, /* 1815 */
+ { 0, 0, printargs, "SYS_1816" }, /* 1816 */
+ { 0, 0, printargs, "SYS_1817" }, /* 1817 */
+ { 0, 0, printargs, "SYS_1818" }, /* 1818 */
+ { 0, 0, printargs, "SYS_1819" }, /* 1819 */
+ { 0, 0, printargs, "SYS_1820" }, /* 1820 */
+ { 0, 0, printargs, "SYS_1821" }, /* 1821 */
+ { 0, 0, printargs, "SYS_1822" }, /* 1822 */
+ { 0, 0, printargs, "SYS_1823" }, /* 1823 */
+ { 0, 0, printargs, "SYS_1824" }, /* 1824 */
+ { 0, 0, printargs, "SYS_1825" }, /* 1825 */
+ { 0, 0, printargs, "SYS_1826" }, /* 1826 */
+ { 0, 0, printargs, "SYS_1827" }, /* 1827 */
+ { 0, 0, printargs, "SYS_1828" }, /* 1828 */
+ { 0, 0, printargs, "SYS_1829" }, /* 1829 */
+ { 0, 0, printargs, "SYS_1830" }, /* 1830 */
+ { 0, 0, printargs, "SYS_1831" }, /* 1831 */
+ { 0, 0, printargs, "SYS_1832" }, /* 1832 */
+ { 0, 0, printargs, "SYS_1833" }, /* 1833 */
+ { 0, 0, printargs, "SYS_1834" }, /* 1834 */
+ { 0, 0, printargs, "SYS_1835" }, /* 1835 */
+ { 0, 0, printargs, "SYS_1836" }, /* 1836 */
+ { 0, 0, printargs, "SYS_1837" }, /* 1837 */
+ { 0, 0, printargs, "SYS_1838" }, /* 1838 */
+ { 0, 0, printargs, "SYS_1839" }, /* 1839 */
+ { 0, 0, printargs, "SYS_1840" }, /* 1840 */
+ { 0, 0, printargs, "SYS_1841" }, /* 1841 */
+ { 0, 0, printargs, "SYS_1842" }, /* 1842 */
+ { 0, 0, printargs, "SYS_1843" }, /* 1843 */
+ { 0, 0, printargs, "SYS_1844" }, /* 1844 */
+ { 0, 0, printargs, "SYS_1845" }, /* 1845 */
+ { 0, 0, printargs, "SYS_1846" }, /* 1846 */
+ { 0, 0, printargs, "SYS_1847" }, /* 1847 */
+ { 0, 0, printargs, "SYS_1848" }, /* 1848 */
+ { 0, 0, printargs, "SYS_1849" }, /* 1849 */
+ { 0, 0, printargs, "SYS_1850" }, /* 1850 */
+ { 0, 0, printargs, "SYS_1851" }, /* 1851 */
+ { 0, 0, printargs, "SYS_1852" }, /* 1852 */
+ { 0, 0, printargs, "SYS_1853" }, /* 1853 */
+ { 0, 0, printargs, "SYS_1854" }, /* 1854 */
+ { 0, 0, printargs, "SYS_1855" }, /* 1855 */
+ { 0, 0, printargs, "SYS_1856" }, /* 1856 */
+ { 0, 0, printargs, "SYS_1857" }, /* 1857 */
+ { 0, 0, printargs, "SYS_1858" }, /* 1858 */
+ { 0, 0, printargs, "SYS_1859" }, /* 1859 */
+ { 0, 0, printargs, "SYS_1860" }, /* 1860 */
+ { 0, 0, printargs, "SYS_1861" }, /* 1861 */
+ { 0, 0, printargs, "SYS_1862" }, /* 1862 */
+ { 0, 0, printargs, "SYS_1863" }, /* 1863 */
+ { 0, 0, printargs, "SYS_1864" }, /* 1864 */
+ { 0, 0, printargs, "SYS_1865" }, /* 1865 */
+ { 0, 0, printargs, "SYS_1866" }, /* 1866 */
+ { 0, 0, printargs, "SYS_1867" }, /* 1867 */
+ { 0, 0, printargs, "SYS_1868" }, /* 1868 */
+ { 0, 0, printargs, "SYS_1869" }, /* 1869 */
+ { 0, 0, printargs, "SYS_1870" }, /* 1870 */
+ { 0, 0, printargs, "SYS_1871" }, /* 1871 */
+ { 0, 0, printargs, "SYS_1872" }, /* 1872 */
+ { 0, 0, printargs, "SYS_1873" }, /* 1873 */
+ { 0, 0, printargs, "SYS_1874" }, /* 1874 */
+ { 0, 0, printargs, "SYS_1875" }, /* 1875 */
+ { 0, 0, printargs, "SYS_1876" }, /* 1876 */
+ { 0, 0, printargs, "SYS_1877" }, /* 1877 */
+ { 0, 0, printargs, "SYS_1878" }, /* 1878 */
+ { 0, 0, printargs, "SYS_1879" }, /* 1879 */
+ { 0, 0, printargs, "SYS_1880" }, /* 1880 */
+ { 0, 0, printargs, "SYS_1881" }, /* 1881 */
+ { 0, 0, printargs, "SYS_1882" }, /* 1882 */
+ { 0, 0, printargs, "SYS_1883" }, /* 1883 */
+ { 0, 0, printargs, "SYS_1884" }, /* 1884 */
+ { 0, 0, printargs, "SYS_1885" }, /* 1885 */
+ { 0, 0, printargs, "SYS_1886" }, /* 1886 */
+ { 0, 0, printargs, "SYS_1887" }, /* 1887 */
+ { 0, 0, printargs, "SYS_1888" }, /* 1888 */
+ { 0, 0, printargs, "SYS_1889" }, /* 1889 */
+ { 0, 0, printargs, "SYS_1890" }, /* 1890 */
+ { 0, 0, printargs, "SYS_1891" }, /* 1891 */
+ { 0, 0, printargs, "SYS_1892" }, /* 1892 */
+ { 0, 0, printargs, "SYS_1893" }, /* 1893 */
+ { 0, 0, printargs, "SYS_1894" }, /* 1894 */
+ { 0, 0, printargs, "SYS_1895" }, /* 1895 */
+ { 0, 0, printargs, "SYS_1896" }, /* 1896 */
+ { 0, 0, printargs, "SYS_1897" }, /* 1897 */
+ { 0, 0, printargs, "SYS_1898" }, /* 1898 */
+ { 0, 0, printargs, "SYS_1899" }, /* 1899 */
+ { 0, 0, printargs, "SYS_1900" }, /* 1900 */
+ { 0, 0, printargs, "SYS_1901" }, /* 1901 */
+ { 0, 0, printargs, "SYS_1902" }, /* 1902 */
+ { 0, 0, printargs, "SYS_1903" }, /* 1903 */
+ { 0, 0, printargs, "SYS_1904" }, /* 1904 */
+ { 0, 0, printargs, "SYS_1905" }, /* 1905 */
+ { 0, 0, printargs, "SYS_1906" }, /* 1906 */
+ { 0, 0, printargs, "SYS_1907" }, /* 1907 */
+ { 0, 0, printargs, "SYS_1908" }, /* 1908 */
+ { 0, 0, printargs, "SYS_1909" }, /* 1909 */
+ { 0, 0, printargs, "SYS_1910" }, /* 1910 */
+ { 0, 0, printargs, "SYS_1911" }, /* 1911 */
+ { 0, 0, printargs, "SYS_1912" }, /* 1912 */
+ { 0, 0, printargs, "SYS_1913" }, /* 1913 */
+ { 0, 0, printargs, "SYS_1914" }, /* 1914 */
+ { 0, 0, printargs, "SYS_1915" }, /* 1915 */
+ { 0, 0, printargs, "SYS_1916" }, /* 1916 */
+ { 0, 0, printargs, "SYS_1917" }, /* 1917 */
+ { 0, 0, printargs, "SYS_1918" }, /* 1918 */
+ { 0, 0, printargs, "SYS_1919" }, /* 1919 */
+ { 0, 0, printargs, "SYS_1920" }, /* 1920 */
+ { 0, 0, printargs, "SYS_1921" }, /* 1921 */
+ { 0, 0, printargs, "SYS_1922" }, /* 1922 */
+ { 0, 0, printargs, "SYS_1923" }, /* 1923 */
+ { 0, 0, printargs, "SYS_1924" }, /* 1924 */
+ { 0, 0, printargs, "SYS_1925" }, /* 1925 */
+ { 0, 0, printargs, "SYS_1926" }, /* 1926 */
+ { 0, 0, printargs, "SYS_1927" }, /* 1927 */
+ { 0, 0, printargs, "SYS_1928" }, /* 1928 */
+ { 0, 0, printargs, "SYS_1929" }, /* 1929 */
+ { 0, 0, printargs, "SYS_1930" }, /* 1930 */
+ { 0, 0, printargs, "SYS_1931" }, /* 1931 */
+ { 0, 0, printargs, "SYS_1932" }, /* 1932 */
+ { 0, 0, printargs, "SYS_1933" }, /* 1933 */
+ { 0, 0, printargs, "SYS_1934" }, /* 1934 */
+ { 0, 0, printargs, "SYS_1935" }, /* 1935 */
+ { 0, 0, printargs, "SYS_1936" }, /* 1936 */
+ { 0, 0, printargs, "SYS_1937" }, /* 1937 */
+ { 0, 0, printargs, "SYS_1938" }, /* 1938 */
+ { 0, 0, printargs, "SYS_1939" }, /* 1939 */
+ { 0, 0, printargs, "SYS_1940" }, /* 1940 */
+ { 0, 0, printargs, "SYS_1941" }, /* 1941 */
+ { 0, 0, printargs, "SYS_1942" }, /* 1942 */
+ { 0, 0, printargs, "SYS_1943" }, /* 1943 */
+ { 0, 0, printargs, "SYS_1944" }, /* 1944 */
+ { 0, 0, printargs, "SYS_1945" }, /* 1945 */
+ { 0, 0, printargs, "SYS_1946" }, /* 1946 */
+ { 0, 0, printargs, "SYS_1947" }, /* 1947 */
+ { 0, 0, printargs, "SYS_1948" }, /* 1948 */
+ { 0, 0, printargs, "SYS_1949" }, /* 1949 */
+ { 0, 0, printargs, "SYS_1950" }, /* 1950 */
+ { 0, 0, printargs, "SYS_1951" }, /* 1951 */
+ { 0, 0, printargs, "SYS_1952" }, /* 1952 */
+ { 0, 0, printargs, "SYS_1953" }, /* 1953 */
+ { 0, 0, printargs, "SYS_1954" }, /* 1954 */
+ { 0, 0, printargs, "SYS_1955" }, /* 1955 */
+ { 0, 0, printargs, "SYS_1956" }, /* 1956 */
+ { 0, 0, printargs, "SYS_1957" }, /* 1957 */
+ { 0, 0, printargs, "SYS_1958" }, /* 1958 */
+ { 0, 0, printargs, "SYS_1959" }, /* 1959 */
+ { 0, 0, printargs, "SYS_1960" }, /* 1960 */
+ { 0, 0, printargs, "SYS_1961" }, /* 1961 */
+ { 0, 0, printargs, "SYS_1962" }, /* 1962 */
+ { 0, 0, printargs, "SYS_1963" }, /* 1963 */
+ { 0, 0, printargs, "SYS_1964" }, /* 1964 */
+ { 0, 0, printargs, "SYS_1965" }, /* 1965 */
+ { 0, 0, printargs, "SYS_1966" }, /* 1966 */
+ { 0, 0, printargs, "SYS_1967" }, /* 1967 */
+ { 0, 0, printargs, "SYS_1968" }, /* 1968 */
+ { 0, 0, printargs, "SYS_1969" }, /* 1969 */
+ { 0, 0, printargs, "SYS_1970" }, /* 1970 */
+ { 0, 0, printargs, "SYS_1971" }, /* 1971 */
+ { 0, 0, printargs, "SYS_1972" }, /* 1972 */
+ { 0, 0, printargs, "SYS_1973" }, /* 1973 */
+ { 0, 0, printargs, "SYS_1974" }, /* 1974 */
+ { 0, 0, printargs, "SYS_1975" }, /* 1975 */
+ { 0, 0, printargs, "SYS_1976" }, /* 1976 */
+ { 0, 0, printargs, "SYS_1977" }, /* 1977 */
+ { 0, 0, printargs, "SYS_1978" }, /* 1978 */
+ { 0, 0, printargs, "SYS_1979" }, /* 1979 */
+ { 0, 0, printargs, "SYS_1980" }, /* 1980 */
+ { 0, 0, printargs, "SYS_1981" }, /* 1981 */
+ { 0, 0, printargs, "SYS_1982" }, /* 1982 */
+ { 0, 0, printargs, "SYS_1983" }, /* 1983 */
+ { 0, 0, printargs, "SYS_1984" }, /* 1984 */
+ { 0, 0, printargs, "SYS_1985" }, /* 1985 */
+ { 0, 0, printargs, "SYS_1986" }, /* 1986 */
+ { 0, 0, printargs, "SYS_1987" }, /* 1987 */
+ { 0, 0, printargs, "SYS_1988" }, /* 1988 */
+ { 0, 0, printargs, "SYS_1989" }, /* 1989 */
+ { 0, 0, printargs, "SYS_1990" }, /* 1990 */
+ { 0, 0, printargs, "SYS_1991" }, /* 1991 */
+ { 0, 0, printargs, "SYS_1992" }, /* 1992 */
+ { 0, 0, printargs, "SYS_1993" }, /* 1993 */
+ { 0, 0, printargs, "SYS_1994" }, /* 1994 */
+ { 0, 0, printargs, "SYS_1995" }, /* 1995 */
+ { 0, 0, printargs, "SYS_1996" }, /* 1996 */
+ { 0, 0, printargs, "SYS_1997" }, /* 1997 */
+ { 0, 0, printargs, "SYS_1998" }, /* 1998 */
+ { 0, 0, printargs, "SYS_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, 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, printargs, "SYS_2049" }, /* 2049 */
+ { 0, 0, printargs, "SYS_2050" }, /* 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, printargs, "SYS_2063" }, /* 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, printargs, "SYS_2119" }, /* 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, printargs, "SYS_2155" }, /* 2155 */
+ { 0, 0, printargs, "SYS_2156" }, /* 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, printargs, "SYS_2177" }, /* 2177 */
+ { 0, 0, printargs, "SYS_2178" }, /* 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, printargs, "SYS_2192" }, /* 2192 */
+ { 0, 0, printargs, "SYS_2193" }, /* 2193 */
+ { 0, 0, printargs, "SYS_2194" }, /* 2194 */
+ { 0, 0, printargs, "SYS_2195" }, /* 2195 */
+ { 0, 0, printargs, "SYS_2196" }, /* 2196 */
+ { 0, 0, printargs, "SYS_2197" }, /* 2197 */
+ { 0, 0, printargs, "SYS_2198" }, /* 2198 */
+ { 0, 0, printargs, "SYS_2199" }, /* 2199 */
+ { 0, 0, printargs, "SYS_2200" }, /* 2200 */
+ { 0, 0, printargs, "SYS_2201" }, /* 2201 */
+ { 0, 0, printargs, "SYS_2202" }, /* 2202 */
+ { 0, 0, printargs, "SYS_2203" }, /* 2203 */
+ { 0, 0, printargs, "SYS_2204" }, /* 2204 */
+ { 0, 0, printargs, "SYS_2205" }, /* 2205 */
+ { 0, 0, printargs, "SYS_2206" }, /* 2206 */
+ { 0, 0, printargs, "SYS_2207" }, /* 2207 */
+ { 0, 0, printargs, "SYS_2208" }, /* 2208 */
+ { 0, 0, printargs, "SYS_2209" }, /* 2209 */
+ { 0, 0, printargs, "SYS_2210" }, /* 2210 */
+ { 0, 0, printargs, "SYS_2211" }, /* 2211 */
+ { 0, 0, printargs, "SYS_2212" }, /* 2212 */
+ { 0, 0, printargs, "SYS_2213" }, /* 2213 */
+ { 0, 0, printargs, "SYS_2214" }, /* 2214 */
+ { 0, 0, printargs, "SYS_2215" }, /* 2215 */
+ { 0, 0, printargs, "SYS_2216" }, /* 2216 */
+ { 0, 0, printargs, "SYS_2217" }, /* 2217 */
+ { 0, 0, printargs, "SYS_2218" }, /* 2218 */
+ { 0, 0, printargs, "SYS_2219" }, /* 2219 */
+ { 0, 0, printargs, "SYS_2220" }, /* 2220 */
+ { 0, 0, printargs, "SYS_2221" }, /* 2221 */
+ { 0, 0, printargs, "SYS_2222" }, /* 2222 */
+ { 0, 0, printargs, "SYS_2223" }, /* 2223 */
+ { 0, 0, printargs, "SYS_2224" }, /* 2224 */
+ { 0, 0, printargs, "SYS_2225" }, /* 2225 */
+ { 0, 0, printargs, "SYS_2226" }, /* 2226 */
+ { 0, 0, printargs, "SYS_2227" }, /* 2227 */
+ { 0, 0, printargs, "SYS_2228" }, /* 2228 */
+ { 0, 0, printargs, "SYS_2229" }, /* 2229 */
+ { 0, 0, printargs, "SYS_2230" }, /* 2230 */
+ { 0, 0, printargs, "SYS_2231" }, /* 2231 */
+ { 0, 0, printargs, "SYS_2232" }, /* 2232 */
+ { 0, 0, printargs, "SYS_2233" }, /* 2233 */
+ { 0, 0, printargs, "SYS_2234" }, /* 2234 */
+ { 0, 0, printargs, "SYS_2235" }, /* 2235 */
+ { 0, 0, printargs, "SYS_2236" }, /* 2236 */
+ { 0, 0, printargs, "SYS_2237" }, /* 2237 */
+ { 0, 0, printargs, "SYS_2238" }, /* 2238 */
+ { 0, 0, printargs, "SYS_2239" }, /* 2239 */
+ { 0, 0, printargs, "SYS_2240" }, /* 2240 */
+ { 0, 0, printargs, "SYS_2241" }, /* 2241 */
+ { 0, 0, printargs, "SYS_2242" }, /* 2242 */
+ { 0, 0, printargs, "SYS_2243" }, /* 2243 */
+ { 0, 0, printargs, "SYS_2244" }, /* 2244 */
+ { 0, 0, printargs, "SYS_2245" }, /* 2245 */
+ { 0, 0, printargs, "SYS_2246" }, /* 2246 */
+ { 0, 0, printargs, "SYS_2247" }, /* 2247 */
+ { 0, 0, printargs, "SYS_2248" }, /* 2248 */
+ { 0, 0, printargs, "SYS_2249" }, /* 2249 */
+ { 0, 0, printargs, "SYS_2250" }, /* 2250 */
+ { 0, 0, printargs, "SYS_2251" }, /* 2251 */
+ { 0, 0, printargs, "SYS_2252" }, /* 2252 */
+ { 0, 0, printargs, "SYS_2253" }, /* 2253 */
+ { 0, 0, printargs, "SYS_2254" }, /* 2254 */
+ { 0, 0, printargs, "SYS_2255" }, /* 2255 */
+ { 0, 0, printargs, "SYS_2256" }, /* 2256 */
+ { 0, 0, printargs, "SYS_2257" }, /* 2257 */
+ { 0, 0, printargs, "SYS_2258" }, /* 2258 */
+ { 0, 0, printargs, "SYS_2259" }, /* 2259 */
+ { 0, 0, printargs, "SYS_2260" }, /* 2260 */
+ { 0, 0, printargs, "SYS_2261" }, /* 2261 */
+ { 0, 0, printargs, "SYS_2262" }, /* 2262 */
+ { 0, 0, printargs, "SYS_2263" }, /* 2263 */
+ { 0, 0, printargs, "SYS_2264" }, /* 2264 */
+ { 0, 0, printargs, "SYS_2265" }, /* 2265 */
+ { 0, 0, printargs, "SYS_2266" }, /* 2266 */
+ { 0, 0, printargs, "SYS_2267" }, /* 2267 */
+ { 0, 0, printargs, "SYS_2268" }, /* 2268 */
+ { 0, 0, printargs, "SYS_2269" }, /* 2269 */
+ { 0, 0, printargs, "SYS_2270" }, /* 2270 */
+ { 0, 0, printargs, "SYS_2271" }, /* 2271 */
+ { 0, 0, printargs, "SYS_2272" }, /* 2272 */
+ { 0, 0, printargs, "SYS_2273" }, /* 2273 */
+ { 0, 0, printargs, "SYS_2274" }, /* 2274 */
+ { 0, 0, printargs, "SYS_2275" }, /* 2275 */
+ { 0, 0, printargs, "SYS_2276" }, /* 2276 */
+ { 0, 0, printargs, "SYS_2277" }, /* 2277 */
+ { 0, 0, printargs, "SYS_2278" }, /* 2278 */
+ { 0, 0, printargs, "SYS_2279" }, /* 2279 */
+ { 0, 0, printargs, "SYS_2280" }, /* 2280 */
+ { 0, 0, printargs, "SYS_2281" }, /* 2281 */
+ { 0, 0, printargs, "SYS_2282" }, /* 2282 */
+ { 0, 0, printargs, "SYS_2283" }, /* 2283 */
+ { 0, 0, printargs, "SYS_2284" }, /* 2284 */
+ { 0, 0, printargs, "SYS_2285" }, /* 2285 */
+ { 0, 0, printargs, "SYS_2286" }, /* 2286 */
+ { 0, 0, printargs, "SYS_2287" }, /* 2287 */
+ { 0, 0, printargs, "SYS_2288" }, /* 2288 */
+ { 0, 0, printargs, "SYS_2289" }, /* 2289 */
+ { 0, 0, printargs, "SYS_2290" }, /* 2290 */
+ { 0, 0, printargs, "SYS_2291" }, /* 2291 */
+ { 0, 0, printargs, "SYS_2292" }, /* 2292 */
+ { 0, 0, printargs, "SYS_2293" }, /* 2293 */
+ { 0, 0, printargs, "SYS_2294" }, /* 2294 */
+ { 0, 0, printargs, "SYS_2295" }, /* 2295 */
+ { 0, 0, printargs, "SYS_2296" }, /* 2296 */
+ { 0, 0, printargs, "SYS_2297" }, /* 2297 */
+ { 0, 0, printargs, "SYS_2298" }, /* 2298 */
+ { 0, 0, printargs, "SYS_2299" }, /* 2299 */
+ { 0, 0, printargs, "SYS_2300" }, /* 2300 */
+ { 0, 0, printargs, "SYS_2301" }, /* 2301 */
+ { 0, 0, printargs, "SYS_2302" }, /* 2302 */
+ { 0, 0, printargs, "SYS_2303" }, /* 2303 */
+ { 0, 0, printargs, "SYS_2304" }, /* 2304 */
+ { 0, 0, printargs, "SYS_2305" }, /* 2305 */
+ { 0, 0, printargs, "SYS_2306" }, /* 2306 */
+ { 0, 0, printargs, "SYS_2307" }, /* 2307 */
+ { 0, 0, printargs, "SYS_2308" }, /* 2308 */
+ { 0, 0, printargs, "SYS_2309" }, /* 2309 */
+ { 0, 0, printargs, "SYS_2310" }, /* 2310 */
+ { 0, 0, printargs, "SYS_2311" }, /* 2311 */
+ { 0, 0, printargs, "SYS_2312" }, /* 2312 */
+ { 0, 0, printargs, "SYS_2313" }, /* 2313 */
+ { 0, 0, printargs, "SYS_2314" }, /* 2314 */
+ { 0, 0, printargs, "SYS_2315" }, /* 2315 */
+ { 0, 0, printargs, "SYS_2316" }, /* 2316 */
+ { 0, 0, printargs, "SYS_2317" }, /* 2317 */
+ { 0, 0, printargs, "SYS_2318" }, /* 2318 */
+ { 0, 0, printargs, "SYS_2319" }, /* 2319 */
+ { 0, 0, printargs, "SYS_2320" }, /* 2320 */
+ { 0, 0, printargs, "SYS_2321" }, /* 2321 */
+ { 0, 0, printargs, "SYS_2322" }, /* 2322 */
+ { 0, 0, printargs, "SYS_2323" }, /* 2323 */
+ { 0, 0, printargs, "SYS_2324" }, /* 2324 */
+ { 0, 0, printargs, "SYS_2325" }, /* 2325 */
+ { 0, 0, printargs, "SYS_2326" }, /* 2326 */
+ { 0, 0, printargs, "SYS_2327" }, /* 2327 */
+ { 0, 0, printargs, "SYS_2328" }, /* 2328 */
+ { 0, 0, printargs, "SYS_2329" }, /* 2329 */
+ { 0, 0, printargs, "SYS_2330" }, /* 2330 */
+ { 0, 0, printargs, "SYS_2331" }, /* 2331 */
+ { 0, 0, printargs, "SYS_2332" }, /* 2332 */
+ { 0, 0, printargs, "SYS_2333" }, /* 2333 */
+ { 0, 0, printargs, "SYS_2334" }, /* 2334 */
+ { 0, 0, printargs, "SYS_2335" }, /* 2335 */
+ { 0, 0, printargs, "SYS_2336" }, /* 2336 */
+ { 0, 0, printargs, "SYS_2337" }, /* 2337 */
+ { 0, 0, printargs, "SYS_2338" }, /* 2338 */
+ { 0, 0, printargs, "SYS_2339" }, /* 2339 */
+ { 0, 0, printargs, "SYS_2340" }, /* 2340 */
+ { 0, 0, printargs, "SYS_2341" }, /* 2341 */
+ { 0, 0, printargs, "SYS_2342" }, /* 2342 */
+ { 0, 0, printargs, "SYS_2343" }, /* 2343 */
+ { 0, 0, printargs, "SYS_2344" }, /* 2344 */
+ { 0, 0, printargs, "SYS_2345" }, /* 2345 */
+ { 0, 0, printargs, "SYS_2346" }, /* 2346 */
+ { 0, 0, printargs, "SYS_2347" }, /* 2347 */
+ { 0, 0, printargs, "SYS_2348" }, /* 2348 */
+ { 0, 0, printargs, "SYS_2349" }, /* 2349 */
+ { 0, 0, printargs, "SYS_2350" }, /* 2350 */
+ { 0, 0, printargs, "SYS_2351" }, /* 2351 */
+ { 0, 0, printargs, "SYS_2352" }, /* 2352 */
+ { 0, 0, printargs, "SYS_2353" }, /* 2353 */
+ { 0, 0, printargs, "SYS_2354" }, /* 2354 */
+ { 0, 0, printargs, "SYS_2355" }, /* 2355 */
+ { 0, 0, printargs, "SYS_2356" }, /* 2356 */
+ { 0, 0, printargs, "SYS_2357" }, /* 2357 */
+ { 0, 0, printargs, "SYS_2358" }, /* 2358 */
+ { 0, 0, printargs, "SYS_2359" }, /* 2359 */
+ { 0, 0, printargs, "SYS_2360" }, /* 2360 */
+ { 0, 0, printargs, "SYS_2361" }, /* 2361 */
+ { 0, 0, printargs, "SYS_2362" }, /* 2362 */
+ { 0, 0, printargs, "SYS_2363" }, /* 2363 */
+ { 0, 0, printargs, "SYS_2364" }, /* 2364 */
+ { 0, 0, printargs, "SYS_2365" }, /* 2365 */
+ { 0, 0, printargs, "SYS_2366" }, /* 2366 */
+ { 0, 0, printargs, "SYS_2367" }, /* 2367 */
+ { 0, 0, printargs, "SYS_2368" }, /* 2368 */
+ { 0, 0, printargs, "SYS_2369" }, /* 2369 */
+ { 0, 0, printargs, "SYS_2370" }, /* 2370 */
+ { 0, 0, printargs, "SYS_2371" }, /* 2371 */
+ { 0, 0, printargs, "SYS_2372" }, /* 2372 */
+ { 0, 0, printargs, "SYS_2373" }, /* 2373 */
+ { 0, 0, printargs, "SYS_2374" }, /* 2374 */
+ { 0, 0, printargs, "SYS_2375" }, /* 2375 */
+ { 0, 0, printargs, "SYS_2376" }, /* 2376 */
+ { 0, 0, printargs, "SYS_2377" }, /* 2377 */
+ { 0, 0, printargs, "SYS_2378" }, /* 2378 */
+ { 0, 0, printargs, "SYS_2379" }, /* 2379 */
+ { 0, 0, printargs, "SYS_2380" }, /* 2380 */
+ { 0, 0, printargs, "SYS_2381" }, /* 2381 */
+ { 0, 0, printargs, "SYS_2382" }, /* 2382 */
+ { 0, 0, printargs, "SYS_2383" }, /* 2383 */
+ { 0, 0, printargs, "SYS_2384" }, /* 2384 */
+ { 0, 0, printargs, "SYS_2385" }, /* 2385 */
+ { 0, 0, printargs, "SYS_2386" }, /* 2386 */
+ { 0, 0, printargs, "SYS_2387" }, /* 2387 */
+ { 0, 0, printargs, "SYS_2388" }, /* 2388 */
+ { 0, 0, printargs, "SYS_2389" }, /* 2389 */
+ { 0, 0, printargs, "SYS_2390" }, /* 2390 */
+ { 0, 0, printargs, "SYS_2391" }, /* 2391 */
+ { 0, 0, printargs, "SYS_2392" }, /* 2392 */
+ { 0, 0, printargs, "SYS_2393" }, /* 2393 */
+ { 0, 0, printargs, "SYS_2394" }, /* 2394 */
+ { 0, 0, printargs, "SYS_2395" }, /* 2395 */
+ { 0, 0, printargs, "SYS_2396" }, /* 2396 */
+ { 0, 0, printargs, "SYS_2397" }, /* 2397 */
+ { 0, 0, printargs, "SYS_2398" }, /* 2398 */
+ { 0, 0, printargs, "SYS_2399" }, /* 2399 */
+ { 0, 0, printargs, "SYS_2400" }, /* 2400 */
+ { 0, 0, printargs, "SYS_2401" }, /* 2401 */
+ { 0, 0, printargs, "SYS_2402" }, /* 2402 */
+ { 0, 0, printargs, "SYS_2403" }, /* 2403 */
+ { 0, 0, printargs, "SYS_2404" }, /* 2404 */
+ { 0, 0, printargs, "SYS_2405" }, /* 2405 */
+ { 0, 0, printargs, "SYS_2406" }, /* 2406 */
+ { 0, 0, printargs, "SYS_2407" }, /* 2407 */
+ { 0, 0, printargs, "SYS_2408" }, /* 2408 */
+ { 0, 0, printargs, "SYS_2409" }, /* 2409 */
+ { 0, 0, printargs, "SYS_2410" }, /* 2410 */
+ { 0, 0, printargs, "SYS_2411" }, /* 2411 */
+ { 0, 0, printargs, "SYS_2412" }, /* 2412 */
+ { 0, 0, printargs, "SYS_2413" }, /* 2413 */
+ { 0, 0, printargs, "SYS_2414" }, /* 2414 */
+ { 0, 0, printargs, "SYS_2415" }, /* 2415 */
+ { 0, 0, printargs, "SYS_2416" }, /* 2416 */
+ { 0, 0, printargs, "SYS_2417" }, /* 2417 */
+ { 0, 0, printargs, "SYS_2418" }, /* 2418 */
+ { 0, 0, printargs, "SYS_2419" }, /* 2419 */
+ { 0, 0, printargs, "SYS_2420" }, /* 2420 */
+ { 0, 0, printargs, "SYS_2421" }, /* 2421 */
+ { 0, 0, printargs, "SYS_2422" }, /* 2422 */
+ { 0, 0, printargs, "SYS_2423" }, /* 2423 */
+ { 0, 0, printargs, "SYS_2424" }, /* 2424 */
+ { 0, 0, printargs, "SYS_2425" }, /* 2425 */
+ { 0, 0, printargs, "SYS_2426" }, /* 2426 */
+ { 0, 0, printargs, "SYS_2427" }, /* 2427 */
+ { 0, 0, printargs, "SYS_2428" }, /* 2428 */
+ { 0, 0, printargs, "SYS_2429" }, /* 2429 */
+ { 0, 0, printargs, "SYS_2430" }, /* 2430 */
+ { 0, 0, printargs, "SYS_2431" }, /* 2431 */
+ { 0, 0, printargs, "SYS_2432" }, /* 2432 */
+ { 0, 0, printargs, "SYS_2433" }, /* 2433 */
+ { 0, 0, printargs, "SYS_2434" }, /* 2434 */
+ { 0, 0, printargs, "SYS_2435" }, /* 2435 */
+ { 0, 0, printargs, "SYS_2436" }, /* 2436 */
+ { 0, 0, printargs, "SYS_2437" }, /* 2437 */
+ { 0, 0, printargs, "SYS_2438" }, /* 2438 */
+ { 0, 0, printargs, "SYS_2439" }, /* 2439 */
+ { 0, 0, printargs, "SYS_2440" }, /* 2440 */
+ { 0, 0, printargs, "SYS_2441" }, /* 2441 */
+ { 0, 0, printargs, "SYS_2442" }, /* 2442 */
+ { 0, 0, printargs, "SYS_2443" }, /* 2443 */
+ { 0, 0, printargs, "SYS_2444" }, /* 2444 */
+ { 0, 0, printargs, "SYS_2445" }, /* 2445 */
+ { 0, 0, printargs, "SYS_2446" }, /* 2446 */
+ { 0, 0, printargs, "SYS_2447" }, /* 2447 */
+ { 0, 0, printargs, "SYS_2448" }, /* 2448 */
+ { 0, 0, printargs, "SYS_2449" }, /* 2449 */
+ { 0, 0, printargs, "SYS_2450" }, /* 2450 */
+ { 0, 0, printargs, "SYS_2451" }, /* 2451 */
+ { 0, 0, printargs, "SYS_2452" }, /* 2452 */
+ { 0, 0, printargs, "SYS_2453" }, /* 2453 */
+ { 0, 0, printargs, "SYS_2454" }, /* 2454 */
+ { 0, 0, printargs, "SYS_2455" }, /* 2455 */
+ { 0, 0, printargs, "SYS_2456" }, /* 2456 */
+ { 0, 0, printargs, "SYS_2457" }, /* 2457 */
+ { 0, 0, printargs, "SYS_2458" }, /* 2458 */
+ { 0, 0, printargs, "SYS_2459" }, /* 2459 */
+ { 0, 0, printargs, "SYS_2460" }, /* 2460 */
+ { 0, 0, printargs, "SYS_2461" }, /* 2461 */
+ { 0, 0, printargs, "SYS_2462" }, /* 2462 */
+ { 0, 0, printargs, "SYS_2463" }, /* 2463 */
+ { 0, 0, printargs, "SYS_2464" }, /* 2464 */
+ { 0, 0, printargs, "SYS_2465" }, /* 2465 */
+ { 0, 0, printargs, "SYS_2466" }, /* 2466 */
+ { 0, 0, printargs, "SYS_2467" }, /* 2467 */
+ { 0, 0, printargs, "SYS_2468" }, /* 2468 */
+ { 0, 0, printargs, "SYS_2469" }, /* 2469 */
+ { 0, 0, printargs, "SYS_2470" }, /* 2470 */
+ { 0, 0, printargs, "SYS_2471" }, /* 2471 */
+ { 0, 0, printargs, "SYS_2472" }, /* 2472 */
+ { 0, 0, printargs, "SYS_2473" }, /* 2473 */
+ { 0, 0, printargs, "SYS_2474" }, /* 2474 */
+ { 0, 0, printargs, "SYS_2475" }, /* 2475 */
+ { 0, 0, printargs, "SYS_2476" }, /* 2476 */
+ { 0, 0, printargs, "SYS_2477" }, /* 2477 */
+ { 0, 0, printargs, "SYS_2478" }, /* 2478 */
+ { 0, 0, printargs, "SYS_2479" }, /* 2479 */
+ { 0, 0, printargs, "SYS_2480" }, /* 2480 */
+ { 0, 0, printargs, "SYS_2481" }, /* 2481 */
+ { 0, 0, printargs, "SYS_2482" }, /* 2482 */
+ { 0, 0, printargs, "SYS_2483" }, /* 2483 */
+ { 0, 0, printargs, "SYS_2484" }, /* 2484 */
+ { 0, 0, printargs, "SYS_2485" }, /* 2485 */
+ { 0, 0, printargs, "SYS_2486" }, /* 2486 */
+ { 0, 0, printargs, "SYS_2487" }, /* 2487 */
+ { 0, 0, printargs, "SYS_2488" }, /* 2488 */
+ { 0, 0, printargs, "SYS_2489" }, /* 2489 */
+ { 0, 0, printargs, "SYS_2490" }, /* 2490 */
+ { 0, 0, printargs, "SYS_2491" }, /* 2491 */
+ { 0, 0, printargs, "SYS_2492" }, /* 2492 */
+ { 0, 0, printargs, "SYS_2493" }, /* 2493 */
+ { 0, 0, printargs, "SYS_2494" }, /* 2494 */
+ { 0, 0, printargs, "SYS_2495" }, /* 2495 */
+ { 0, 0, printargs, "SYS_2496" }, /* 2496 */
+ { 0, 0, printargs, "SYS_2497" }, /* 2497 */
+ { 0, 0, printargs, "SYS_2498" }, /* 2498 */
+ { 0, 0, printargs, "SYS_2499" }, /* 2499 */
+ { 0, 0, printargs, "SYS_2500" }, /* 2500 */
+ { 0, 0, printargs, "SYS_2501" }, /* 2501 */
+ { 0, 0, printargs, "SYS_2502" }, /* 2502 */
+ { 0, 0, printargs, "SYS_2503" }, /* 2503 */
+ { 0, 0, printargs, "SYS_2504" }, /* 2504 */
+ { 0, 0, printargs, "SYS_2505" }, /* 2505 */
+ { 0, 0, printargs, "SYS_2506" }, /* 2506 */
+ { 0, 0, printargs, "SYS_2507" }, /* 2507 */
+ { 0, 0, printargs, "SYS_2508" }, /* 2508 */
+ { 0, 0, printargs, "SYS_2509" }, /* 2509 */
+ { 0, 0, printargs, "SYS_2510" }, /* 2510 */
+ { 0, 0, printargs, "SYS_2511" }, /* 2511 */
+ { 0, 0, printargs, "SYS_2512" }, /* 2512 */
+ { 0, 0, printargs, "SYS_2513" }, /* 2513 */
+ { 0, 0, printargs, "SYS_2514" }, /* 2514 */
+ { 0, 0, printargs, "SYS_2515" }, /* 2515 */
+ { 0, 0, printargs, "SYS_2516" }, /* 2516 */
+ { 0, 0, printargs, "SYS_2517" }, /* 2517 */
+ { 0, 0, printargs, "SYS_2518" }, /* 2518 */
+ { 0, 0, printargs, "SYS_2519" }, /* 2519 */
+ { 0, 0, printargs, "SYS_2520" }, /* 2520 */
+ { 0, 0, printargs, "SYS_2521" }, /* 2521 */
+ { 0, 0, printargs, "SYS_2522" }, /* 2522 */
+ { 0, 0, printargs, "SYS_2523" }, /* 2523 */
+ { 0, 0, printargs, "SYS_2524" }, /* 2524 */
+ { 0, 0, printargs, "SYS_2525" }, /* 2525 */
+ { 0, 0, printargs, "SYS_2526" }, /* 2526 */
+ { 0, 0, printargs, "SYS_2527" }, /* 2527 */
+ { 0, 0, printargs, "SYS_2528" }, /* 2528 */
+ { 0, 0, printargs, "SYS_2529" }, /* 2529 */
+ { 0, 0, printargs, "SYS_2530" }, /* 2530 */
+ { 0, 0, printargs, "SYS_2531" }, /* 2531 */
+ { 0, 0, printargs, "SYS_2532" }, /* 2532 */
+ { 0, 0, printargs, "SYS_2533" }, /* 2533 */
+ { 0, 0, printargs, "SYS_2534" }, /* 2534 */
+ { 0, 0, printargs, "SYS_2535" }, /* 2535 */
+ { 0, 0, printargs, "SYS_2536" }, /* 2536 */
+ { 0, 0, printargs, "SYS_2537" }, /* 2537 */
+ { 0, 0, printargs, "SYS_2538" }, /* 2538 */
+ { 0, 0, printargs, "SYS_2539" }, /* 2539 */
+ { 0, 0, printargs, "SYS_2540" }, /* 2540 */
+ { 0, 0, printargs, "SYS_2541" }, /* 2541 */
+ { 0, 0, printargs, "SYS_2542" }, /* 2542 */
+ { 0, 0, printargs, "SYS_2543" }, /* 2543 */
+ { 0, 0, printargs, "SYS_2544" }, /* 2544 */
+ { 0, 0, printargs, "SYS_2545" }, /* 2545 */
+ { 0, 0, printargs, "SYS_2546" }, /* 2546 */
+ { 0, 0, printargs, "SYS_2547" }, /* 2547 */
+ { 0, 0, printargs, "SYS_2548" }, /* 2548 */
+ { 0, 0, printargs, "SYS_2549" }, /* 2549 */
+ { 0, 0, printargs, "SYS_2550" }, /* 2550 */
+ { 0, 0, printargs, "SYS_2551" }, /* 2551 */
+ { 0, 0, printargs, "SYS_2552" }, /* 2552 */
+ { 0, 0, printargs, "SYS_2553" }, /* 2553 */
+ { 0, 0, printargs, "SYS_2554" }, /* 2554 */
+ { 0, 0, printargs, "SYS_2555" }, /* 2555 */
+ { 0, 0, printargs, "SYS_2556" }, /* 2556 */
+ { 0, 0, printargs, "SYS_2557" }, /* 2557 */
+ { 0, 0, printargs, "SYS_2558" }, /* 2558 */
+ { 0, 0, printargs, "SYS_2559" }, /* 2559 */
+ { 0, 0, printargs, "SYS_2560" }, /* 2560 */
+ { 0, 0, printargs, "SYS_2561" }, /* 2561 */
+ { 0, 0, printargs, "SYS_2562" }, /* 2562 */
+ { 0, 0, printargs, "SYS_2563" }, /* 2563 */
+ { 0, 0, printargs, "SYS_2564" }, /* 2564 */
+ { 0, 0, printargs, "SYS_2565" }, /* 2565 */
+ { 0, 0, printargs, "SYS_2566" }, /* 2566 */
+ { 0, 0, printargs, "SYS_2567" }, /* 2567 */
+ { 0, 0, printargs, "SYS_2568" }, /* 2568 */
+ { 0, 0, printargs, "SYS_2569" }, /* 2569 */
+ { 0, 0, printargs, "SYS_2570" }, /* 2570 */
+ { 0, 0, printargs, "SYS_2571" }, /* 2571 */
+ { 0, 0, printargs, "SYS_2572" }, /* 2572 */
+ { 0, 0, printargs, "SYS_2573" }, /* 2573 */
+ { 0, 0, printargs, "SYS_2574" }, /* 2574 */
+ { 0, 0, printargs, "SYS_2575" }, /* 2575 */
+ { 0, 0, printargs, "SYS_2576" }, /* 2576 */
+ { 0, 0, printargs, "SYS_2577" }, /* 2577 */
+ { 0, 0, printargs, "SYS_2578" }, /* 2578 */
+ { 0, 0, printargs, "SYS_2579" }, /* 2579 */
+ { 0, 0, printargs, "SYS_2580" }, /* 2580 */
+ { 0, 0, printargs, "SYS_2581" }, /* 2581 */
+ { 0, 0, printargs, "SYS_2582" }, /* 2582 */
+ { 0, 0, printargs, "SYS_2583" }, /* 2583 */
+ { 0, 0, printargs, "SYS_2584" }, /* 2584 */
+ { 0, 0, printargs, "SYS_2585" }, /* 2585 */
+ { 0, 0, printargs, "SYS_2586" }, /* 2586 */
+ { 0, 0, printargs, "SYS_2587" }, /* 2587 */
+ { 0, 0, printargs, "SYS_2588" }, /* 2588 */
+ { 0, 0, printargs, "SYS_2589" }, /* 2589 */
+ { 0, 0, printargs, "SYS_2590" }, /* 2590 */
+ { 0, 0, printargs, "SYS_2591" }, /* 2591 */
+ { 0, 0, printargs, "SYS_2592" }, /* 2592 */
+ { 0, 0, printargs, "SYS_2593" }, /* 2593 */
+ { 0, 0, printargs, "SYS_2594" }, /* 2594 */
+ { 0, 0, printargs, "SYS_2595" }, /* 2595 */
+ { 0, 0, printargs, "SYS_2596" }, /* 2596 */
+ { 0, 0, printargs, "SYS_2597" }, /* 2597 */
+ { 0, 0, printargs, "SYS_2598" }, /* 2598 */
+ { 0, 0, printargs, "SYS_2599" }, /* 2599 */
+ { 0, 0, printargs, "SYS_2600" }, /* 2600 */
+ { 0, 0, printargs, "SYS_2601" }, /* 2601 */
+ { 0, 0, printargs, "SYS_2602" }, /* 2602 */
+ { 0, 0, printargs, "SYS_2603" }, /* 2603 */
+ { 0, 0, printargs, "SYS_2604" }, /* 2604 */
+ { 0, 0, printargs, "SYS_2605" }, /* 2605 */
+ { 0, 0, printargs, "SYS_2606" }, /* 2606 */
+ { 0, 0, printargs, "SYS_2607" }, /* 2607 */
+ { 0, 0, printargs, "SYS_2608" }, /* 2608 */
+ { 0, 0, printargs, "SYS_2609" }, /* 2609 */
+ { 0, 0, printargs, "SYS_2610" }, /* 2610 */
+ { 0, 0, printargs, "SYS_2611" }, /* 2611 */
+ { 0, 0, printargs, "SYS_2612" }, /* 2612 */
+ { 0, 0, printargs, "SYS_2613" }, /* 2613 */
+ { 0, 0, printargs, "SYS_2614" }, /* 2614 */
+ { 0, 0, printargs, "SYS_2615" }, /* 2615 */
+ { 0, 0, printargs, "SYS_2616" }, /* 2616 */
+ { 0, 0, printargs, "SYS_2617" }, /* 2617 */
+ { 0, 0, printargs, "SYS_2618" }, /* 2618 */
+ { 0, 0, printargs, "SYS_2619" }, /* 2619 */
+ { 0, 0, printargs, "SYS_2620" }, /* 2620 */
+ { 0, 0, printargs, "SYS_2621" }, /* 2621 */
+ { 0, 0, printargs, "SYS_2622" }, /* 2622 */
+ { 0, 0, printargs, "SYS_2623" }, /* 2623 */
+ { 0, 0, printargs, "SYS_2624" }, /* 2624 */
+ { 0, 0, printargs, "SYS_2625" }, /* 2625 */
+ { 0, 0, printargs, "SYS_2626" }, /* 2626 */
+ { 0, 0, printargs, "SYS_2627" }, /* 2627 */
+ { 0, 0, printargs, "SYS_2628" }, /* 2628 */
+ { 0, 0, printargs, "SYS_2629" }, /* 2629 */
+ { 0, 0, printargs, "SYS_2630" }, /* 2630 */
+ { 0, 0, printargs, "SYS_2631" }, /* 2631 */
+ { 0, 0, printargs, "SYS_2632" }, /* 2632 */
+ { 0, 0, printargs, "SYS_2633" }, /* 2633 */
+ { 0, 0, printargs, "SYS_2634" }, /* 2634 */
+ { 0, 0, printargs, "SYS_2635" }, /* 2635 */
+ { 0, 0, printargs, "SYS_2636" }, /* 2636 */
+ { 0, 0, printargs, "SYS_2637" }, /* 2637 */
+ { 0, 0, printargs, "SYS_2638" }, /* 2638 */
+ { 0, 0, printargs, "SYS_2639" }, /* 2639 */
+ { 0, 0, printargs, "SYS_2640" }, /* 2640 */
+ { 0, 0, printargs, "SYS_2641" }, /* 2641 */
+ { 0, 0, printargs, "SYS_2642" }, /* 2642 */
+ { 0, 0, printargs, "SYS_2643" }, /* 2643 */
+ { 0, 0, printargs, "SYS_2644" }, /* 2644 */
+ { 0, 0, printargs, "SYS_2645" }, /* 2645 */
+ { 0, 0, printargs, "SYS_2646" }, /* 2646 */
+ { 0, 0, printargs, "SYS_2647" }, /* 2647 */
+ { 0, 0, printargs, "SYS_2648" }, /* 2648 */
+ { 0, 0, printargs, "SYS_2649" }, /* 2649 */
+ { 0, 0, printargs, "SYS_2650" }, /* 2650 */
+ { 0, 0, printargs, "SYS_2651" }, /* 2651 */
+ { 0, 0, printargs, "SYS_2652" }, /* 2652 */
+ { 0, 0, printargs, "SYS_2653" }, /* 2653 */
+ { 0, 0, printargs, "SYS_2654" }, /* 2654 */
+ { 0, 0, printargs, "SYS_2655" }, /* 2655 */
+ { 0, 0, printargs, "SYS_2656" }, /* 2656 */
+ { 0, 0, printargs, "SYS_2657" }, /* 2657 */
+ { 0, 0, printargs, "SYS_2658" }, /* 2658 */
+ { 0, 0, printargs, "SYS_2659" }, /* 2659 */
+ { 0, 0, printargs, "SYS_2660" }, /* 2660 */
+ { 0, 0, printargs, "SYS_2661" }, /* 2661 */
+ { 0, 0, printargs, "SYS_2662" }, /* 2662 */
+ { 0, 0, printargs, "SYS_2663" }, /* 2663 */
+ { 0, 0, printargs, "SYS_2664" }, /* 2664 */
+ { 0, 0, printargs, "SYS_2665" }, /* 2665 */
+ { 0, 0, printargs, "SYS_2666" }, /* 2666 */
+ { 0, 0, printargs, "SYS_2667" }, /* 2667 */
+ { 0, 0, printargs, "SYS_2668" }, /* 2668 */
+ { 0, 0, printargs, "SYS_2669" }, /* 2669 */
+ { 0, 0, printargs, "SYS_2670" }, /* 2670 */
+ { 0, 0, printargs, "SYS_2671" }, /* 2671 */
+ { 0, 0, printargs, "SYS_2672" }, /* 2672 */
+ { 0, 0, printargs, "SYS_2673" }, /* 2673 */
+ { 0, 0, printargs, "SYS_2674" }, /* 2674 */
+ { 0, 0, printargs, "SYS_2675" }, /* 2675 */
+ { 0, 0, printargs, "SYS_2676" }, /* 2676 */
+ { 0, 0, printargs, "SYS_2677" }, /* 2677 */
+ { 0, 0, printargs, "SYS_2678" }, /* 2678 */
+ { 0, 0, printargs, "SYS_2679" }, /* 2679 */
+ { 0, 0, printargs, "SYS_2680" }, /* 2680 */
+ { 0, 0, printargs, "SYS_2681" }, /* 2681 */
+ { 0, 0, printargs, "SYS_2682" }, /* 2682 */
+ { 0, 0, printargs, "SYS_2683" }, /* 2683 */
+ { 0, 0, printargs, "SYS_2684" }, /* 2684 */
+ { 0, 0, printargs, "SYS_2685" }, /* 2685 */
+ { 0, 0, printargs, "SYS_2686" }, /* 2686 */
+ { 0, 0, printargs, "SYS_2687" }, /* 2687 */
+ { 0, 0, printargs, "SYS_2688" }, /* 2688 */
+ { 0, 0, printargs, "SYS_2689" }, /* 2689 */
+ { 0, 0, printargs, "SYS_2690" }, /* 2690 */
+ { 0, 0, printargs, "SYS_2691" }, /* 2691 */
+ { 0, 0, printargs, "SYS_2692" }, /* 2692 */
+ { 0, 0, printargs, "SYS_2693" }, /* 2693 */
+ { 0, 0, printargs, "SYS_2694" }, /* 2694 */
+ { 0, 0, printargs, "SYS_2695" }, /* 2695 */
+ { 0, 0, printargs, "SYS_2696" }, /* 2696 */
+ { 0, 0, printargs, "SYS_2697" }, /* 2697 */
+ { 0, 0, printargs, "SYS_2698" }, /* 2698 */
+ { 0, 0, printargs, "SYS_2699" }, /* 2699 */
+ { 0, 0, printargs, "SYS_2700" }, /* 2700 */
+ { 0, 0, printargs, "SYS_2701" }, /* 2701 */
+ { 0, 0, printargs, "SYS_2702" }, /* 2702 */
+ { 0, 0, printargs, "SYS_2703" }, /* 2703 */
+ { 0, 0, printargs, "SYS_2704" }, /* 2704 */
+ { 0, 0, printargs, "SYS_2705" }, /* 2705 */
+ { 0, 0, printargs, "SYS_2706" }, /* 2706 */
+ { 0, 0, printargs, "SYS_2707" }, /* 2707 */
+ { 0, 0, printargs, "SYS_2708" }, /* 2708 */
+ { 0, 0, printargs, "SYS_2709" }, /* 2709 */
+ { 0, 0, printargs, "SYS_2710" }, /* 2710 */
+ { 0, 0, printargs, "SYS_2711" }, /* 2711 */
+ { 0, 0, printargs, "SYS_2712" }, /* 2712 */
+ { 0, 0, printargs, "SYS_2713" }, /* 2713 */
+ { 0, 0, printargs, "SYS_2714" }, /* 2714 */
+ { 0, 0, printargs, "SYS_2715" }, /* 2715 */
+ { 0, 0, printargs, "SYS_2716" }, /* 2716 */
+ { 0, 0, printargs, "SYS_2717" }, /* 2717 */
+ { 0, 0, printargs, "SYS_2718" }, /* 2718 */
+ { 0, 0, printargs, "SYS_2719" }, /* 2719 */
+ { 0, 0, printargs, "SYS_2720" }, /* 2720 */
+ { 0, 0, printargs, "SYS_2721" }, /* 2721 */
+ { 0, 0, printargs, "SYS_2722" }, /* 2722 */
+ { 0, 0, printargs, "SYS_2723" }, /* 2723 */
+ { 0, 0, printargs, "SYS_2724" }, /* 2724 */
+ { 0, 0, printargs, "SYS_2725" }, /* 2725 */
+ { 0, 0, printargs, "SYS_2726" }, /* 2726 */
+ { 0, 0, printargs, "SYS_2727" }, /* 2727 */
+ { 0, 0, printargs, "SYS_2728" }, /* 2728 */
+ { 0, 0, printargs, "SYS_2729" }, /* 2729 */
+ { 0, 0, printargs, "SYS_2730" }, /* 2730 */
+ { 0, 0, printargs, "SYS_2731" }, /* 2731 */
+ { 0, 0, printargs, "SYS_2732" }, /* 2732 */
+ { 0, 0, printargs, "SYS_2733" }, /* 2733 */
+ { 0, 0, printargs, "SYS_2734" }, /* 2734 */
+ { 0, 0, printargs, "SYS_2735" }, /* 2735 */
+ { 0, 0, printargs, "SYS_2736" }, /* 2736 */
+ { 0, 0, printargs, "SYS_2737" }, /* 2737 */
+ { 0, 0, printargs, "SYS_2738" }, /* 2738 */
+ { 0, 0, printargs, "SYS_2739" }, /* 2739 */
+ { 0, 0, printargs, "SYS_2740" }, /* 2740 */
+ { 0, 0, printargs, "SYS_2741" }, /* 2741 */
+ { 0, 0, printargs, "SYS_2742" }, /* 2742 */
+ { 0, 0, printargs, "SYS_2743" }, /* 2743 */
+ { 0, 0, printargs, "SYS_2744" }, /* 2744 */
+ { 0, 0, printargs, "SYS_2745" }, /* 2745 */
+ { 0, 0, printargs, "SYS_2746" }, /* 2746 */
+ { 0, 0, printargs, "SYS_2747" }, /* 2747 */
+ { 0, 0, printargs, "SYS_2748" }, /* 2748 */
+ { 0, 0, printargs, "SYS_2749" }, /* 2749 */
+ { 0, 0, printargs, "SYS_2750" }, /* 2750 */
+ { 0, 0, printargs, "SYS_2751" }, /* 2751 */
+ { 0, 0, printargs, "SYS_2752" }, /* 2752 */
+ { 0, 0, printargs, "SYS_2753" }, /* 2753 */
+ { 0, 0, printargs, "SYS_2754" }, /* 2754 */
+ { 0, 0, printargs, "SYS_2755" }, /* 2755 */
+ { 0, 0, printargs, "SYS_2756" }, /* 2756 */
+ { 0, 0, printargs, "SYS_2757" }, /* 2757 */
+ { 0, 0, printargs, "SYS_2758" }, /* 2758 */
+ { 0, 0, printargs, "SYS_2759" }, /* 2759 */
+ { 0, 0, printargs, "SYS_2760" }, /* 2760 */
+ { 0, 0, printargs, "SYS_2761" }, /* 2761 */
+ { 0, 0, printargs, "SYS_2762" }, /* 2762 */
+ { 0, 0, printargs, "SYS_2763" }, /* 2763 */
+ { 0, 0, printargs, "SYS_2764" }, /* 2764 */
+ { 0, 0, printargs, "SYS_2765" }, /* 2765 */
+ { 0, 0, printargs, "SYS_2766" }, /* 2766 */
+ { 0, 0, printargs, "SYS_2767" }, /* 2767 */
+ { 0, 0, printargs, "SYS_2768" }, /* 2768 */
+ { 0, 0, printargs, "SYS_2769" }, /* 2769 */
+ { 0, 0, printargs, "SYS_2770" }, /* 2770 */
+ { 0, 0, printargs, "SYS_2771" }, /* 2771 */
+ { 0, 0, printargs, "SYS_2772" }, /* 2772 */
+ { 0, 0, printargs, "SYS_2773" }, /* 2773 */
+ { 0, 0, printargs, "SYS_2774" }, /* 2774 */
+ { 0, 0, printargs, "SYS_2775" }, /* 2775 */
+ { 0, 0, printargs, "SYS_2776" }, /* 2776 */
+ { 0, 0, printargs, "SYS_2777" }, /* 2777 */
+ { 0, 0, printargs, "SYS_2778" }, /* 2778 */
+ { 0, 0, printargs, "SYS_2779" }, /* 2779 */
+ { 0, 0, printargs, "SYS_2780" }, /* 2780 */
+ { 0, 0, printargs, "SYS_2781" }, /* 2781 */
+ { 0, 0, printargs, "SYS_2782" }, /* 2782 */
+ { 0, 0, printargs, "SYS_2783" }, /* 2783 */
+ { 0, 0, printargs, "SYS_2784" }, /* 2784 */
+ { 0, 0, printargs, "SYS_2785" }, /* 2785 */
+ { 0, 0, printargs, "SYS_2786" }, /* 2786 */
+ { 0, 0, printargs, "SYS_2787" }, /* 2787 */
+ { 0, 0, printargs, "SYS_2788" }, /* 2788 */
+ { 0, 0, printargs, "SYS_2789" }, /* 2789 */
+ { 0, 0, printargs, "SYS_2790" }, /* 2790 */
+ { 0, 0, printargs, "SYS_2791" }, /* 2791 */
+ { 0, 0, printargs, "SYS_2792" }, /* 2792 */
+ { 0, 0, printargs, "SYS_2793" }, /* 2793 */
+ { 0, 0, printargs, "SYS_2794" }, /* 2794 */
+ { 0, 0, printargs, "SYS_2795" }, /* 2795 */
+ { 0, 0, printargs, "SYS_2796" }, /* 2796 */
+ { 0, 0, printargs, "SYS_2797" }, /* 2797 */
+ { 0, 0, printargs, "SYS_2798" }, /* 2798 */
+ { 0, 0, printargs, "SYS_2799" }, /* 2799 */
+ { 0, 0, printargs, "SYS_2800" }, /* 2800 */
+ { 0, 0, printargs, "SYS_2801" }, /* 2801 */
+ { 0, 0, printargs, "SYS_2802" }, /* 2802 */
+ { 0, 0, printargs, "SYS_2803" }, /* 2803 */
+ { 0, 0, printargs, "SYS_2804" }, /* 2804 */
+ { 0, 0, printargs, "SYS_2805" }, /* 2805 */
+ { 0, 0, printargs, "SYS_2806" }, /* 2806 */
+ { 0, 0, printargs, "SYS_2807" }, /* 2807 */
+ { 0, 0, printargs, "SYS_2808" }, /* 2808 */
+ { 0, 0, printargs, "SYS_2809" }, /* 2809 */
+ { 0, 0, printargs, "SYS_2810" }, /* 2810 */
+ { 0, 0, printargs, "SYS_2811" }, /* 2811 */
+ { 0, 0, printargs, "SYS_2812" }, /* 2812 */
+ { 0, 0, printargs, "SYS_2813" }, /* 2813 */
+ { 0, 0, printargs, "SYS_2814" }, /* 2814 */
+ { 0, 0, printargs, "SYS_2815" }, /* 2815 */
+ { 0, 0, printargs, "SYS_2816" }, /* 2816 */
+ { 0, 0, printargs, "SYS_2817" }, /* 2817 */
+ { 0, 0, printargs, "SYS_2818" }, /* 2818 */
+ { 0, 0, printargs, "SYS_2819" }, /* 2819 */
+ { 0, 0, printargs, "SYS_2820" }, /* 2820 */
+ { 0, 0, printargs, "SYS_2821" }, /* 2821 */
+ { 0, 0, printargs, "SYS_2822" }, /* 2822 */
+ { 0, 0, printargs, "SYS_2823" }, /* 2823 */
+ { 0, 0, printargs, "SYS_2824" }, /* 2824 */
+ { 0, 0, printargs, "SYS_2825" }, /* 2825 */
+ { 0, 0, printargs, "SYS_2826" }, /* 2826 */
+ { 0, 0, printargs, "SYS_2827" }, /* 2827 */
+ { 0, 0, printargs, "SYS_2828" }, /* 2828 */
+ { 0, 0, printargs, "SYS_2829" }, /* 2829 */
+ { 0, 0, printargs, "SYS_2830" }, /* 2830 */
+ { 0, 0, printargs, "SYS_2831" }, /* 2831 */
+ { 0, 0, printargs, "SYS_2832" }, /* 2832 */
+ { 0, 0, printargs, "SYS_2833" }, /* 2833 */
+ { 0, 0, printargs, "SYS_2834" }, /* 2834 */
+ { 0, 0, printargs, "SYS_2835" }, /* 2835 */
+ { 0, 0, printargs, "SYS_2836" }, /* 2836 */
+ { 0, 0, printargs, "SYS_2837" }, /* 2837 */
+ { 0, 0, printargs, "SYS_2838" }, /* 2838 */
+ { 0, 0, printargs, "SYS_2839" }, /* 2839 */
+ { 0, 0, printargs, "SYS_2840" }, /* 2840 */
+ { 0, 0, printargs, "SYS_2841" }, /* 2841 */
+ { 0, 0, printargs, "SYS_2842" }, /* 2842 */
+ { 0, 0, printargs, "SYS_2843" }, /* 2843 */
+ { 0, 0, printargs, "SYS_2844" }, /* 2844 */
+ { 0, 0, printargs, "SYS_2845" }, /* 2845 */
+ { 0, 0, printargs, "SYS_2846" }, /* 2846 */
+ { 0, 0, printargs, "SYS_2847" }, /* 2847 */
+ { 0, 0, printargs, "SYS_2848" }, /* 2848 */
+ { 0, 0, printargs, "SYS_2849" }, /* 2849 */
+ { 0, 0, printargs, "SYS_2850" }, /* 2850 */
+ { 0, 0, printargs, "SYS_2851" }, /* 2851 */
+ { 0, 0, printargs, "SYS_2852" }, /* 2852 */
+ { 0, 0, printargs, "SYS_2853" }, /* 2853 */
+ { 0, 0, printargs, "SYS_2854" }, /* 2854 */
+ { 0, 0, printargs, "SYS_2855" }, /* 2855 */
+ { 0, 0, printargs, "SYS_2856" }, /* 2856 */
+ { 0, 0, printargs, "SYS_2857" }, /* 2857 */
+ { 0, 0, printargs, "SYS_2858" }, /* 2858 */
+ { 0, 0, printargs, "SYS_2859" }, /* 2859 */
+ { 0, 0, printargs, "SYS_2860" }, /* 2860 */
+ { 0, 0, printargs, "SYS_2861" }, /* 2861 */
+ { 0, 0, printargs, "SYS_2862" }, /* 2862 */
+ { 0, 0, printargs, "SYS_2863" }, /* 2863 */
+ { 0, 0, printargs, "SYS_2864" }, /* 2864 */
+ { 0, 0, printargs, "SYS_2865" }, /* 2865 */
+ { 0, 0, printargs, "SYS_2866" }, /* 2866 */
+ { 0, 0, printargs, "SYS_2867" }, /* 2867 */
+ { 0, 0, printargs, "SYS_2868" }, /* 2868 */
+ { 0, 0, printargs, "SYS_2869" }, /* 2869 */
+ { 0, 0, printargs, "SYS_2870" }, /* 2870 */
+ { 0, 0, printargs, "SYS_2871" }, /* 2871 */
+ { 0, 0, printargs, "SYS_2872" }, /* 2872 */
+ { 0, 0, printargs, "SYS_2873" }, /* 2873 */
+ { 0, 0, printargs, "SYS_2874" }, /* 2874 */
+ { 0, 0, printargs, "SYS_2875" }, /* 2875 */
+ { 0, 0, printargs, "SYS_2876" }, /* 2876 */
+ { 0, 0, printargs, "SYS_2877" }, /* 2877 */
+ { 0, 0, printargs, "SYS_2878" }, /* 2878 */
+ { 0, 0, printargs, "SYS_2879" }, /* 2879 */
+ { 0, 0, printargs, "SYS_2880" }, /* 2880 */
+ { 0, 0, printargs, "SYS_2881" }, /* 2881 */
+ { 0, 0, printargs, "SYS_2882" }, /* 2882 */
+ { 0, 0, printargs, "SYS_2883" }, /* 2883 */
+ { 0, 0, printargs, "SYS_2884" }, /* 2884 */
+ { 0, 0, printargs, "SYS_2885" }, /* 2885 */
+ { 0, 0, printargs, "SYS_2886" }, /* 2886 */
+ { 0, 0, printargs, "SYS_2887" }, /* 2887 */
+ { 0, 0, printargs, "SYS_2888" }, /* 2888 */
+ { 0, 0, printargs, "SYS_2889" }, /* 2889 */
+ { 0, 0, printargs, "SYS_2890" }, /* 2890 */
+ { 0, 0, printargs, "SYS_2891" }, /* 2891 */
+ { 0, 0, printargs, "SYS_2892" }, /* 2892 */
+ { 0, 0, printargs, "SYS_2893" }, /* 2893 */
+ { 0, 0, printargs, "SYS_2894" }, /* 2894 */
+ { 0, 0, printargs, "SYS_2895" }, /* 2895 */
+ { 0, 0, printargs, "SYS_2896" }, /* 2896 */
+ { 0, 0, printargs, "SYS_2897" }, /* 2897 */
+ { 0, 0, printargs, "SYS_2898" }, /* 2898 */
+ { 0, 0, printargs, "SYS_2899" }, /* 2899 */
+ { 0, 0, printargs, "SYS_2900" }, /* 2900 */
+ { 0, 0, printargs, "SYS_2901" }, /* 2901 */
+ { 0, 0, printargs, "SYS_2902" }, /* 2902 */
+ { 0, 0, printargs, "SYS_2903" }, /* 2903 */
+ { 0, 0, printargs, "SYS_2904" }, /* 2904 */
+ { 0, 0, printargs, "SYS_2905" }, /* 2905 */
+ { 0, 0, printargs, "SYS_2906" }, /* 2906 */
+ { 0, 0, printargs, "SYS_2907" }, /* 2907 */
+ { 0, 0, printargs, "SYS_2908" }, /* 2908 */
+ { 0, 0, printargs, "SYS_2909" }, /* 2909 */
+ { 0, 0, printargs, "SYS_2910" }, /* 2910 */
+ { 0, 0, printargs, "SYS_2911" }, /* 2911 */
+ { 0, 0, printargs, "SYS_2912" }, /* 2912 */
+ { 0, 0, printargs, "SYS_2913" }, /* 2913 */
+ { 0, 0, printargs, "SYS_2914" }, /* 2914 */
+ { 0, 0, printargs, "SYS_2915" }, /* 2915 */
+ { 0, 0, printargs, "SYS_2916" }, /* 2916 */
+ { 0, 0, printargs, "SYS_2917" }, /* 2917 */
+ { 0, 0, printargs, "SYS_2918" }, /* 2918 */
+ { 0, 0, printargs, "SYS_2919" }, /* 2919 */
+ { 0, 0, printargs, "SYS_2920" }, /* 2920 */
+ { 0, 0, printargs, "SYS_2921" }, /* 2921 */
+ { 0, 0, printargs, "SYS_2922" }, /* 2922 */
+ { 0, 0, printargs, "SYS_2923" }, /* 2923 */
+ { 0, 0, printargs, "SYS_2924" }, /* 2924 */
+ { 0, 0, printargs, "SYS_2925" }, /* 2925 */
+ { 0, 0, printargs, "SYS_2926" }, /* 2926 */
+ { 0, 0, printargs, "SYS_2927" }, /* 2927 */
+ { 0, 0, printargs, "SYS_2928" }, /* 2928 */
+ { 0, 0, printargs, "SYS_2929" }, /* 2929 */
+ { 0, 0, printargs, "SYS_2930" }, /* 2930 */
+ { 0, 0, printargs, "SYS_2931" }, /* 2931 */
+ { 0, 0, printargs, "SYS_2932" }, /* 2932 */
+ { 0, 0, printargs, "SYS_2933" }, /* 2933 */
+ { 0, 0, printargs, "SYS_2934" }, /* 2934 */
+ { 0, 0, printargs, "SYS_2935" }, /* 2935 */
+ { 0, 0, printargs, "SYS_2936" }, /* 2936 */
+ { 0, 0, printargs, "SYS_2937" }, /* 2937 */
+ { 0, 0, printargs, "SYS_2938" }, /* 2938 */
+ { 0, 0, printargs, "SYS_2939" }, /* 2939 */
+ { 0, 0, printargs, "SYS_2940" }, /* 2940 */
+ { 0, 0, printargs, "SYS_2941" }, /* 2941 */
+ { 0, 0, printargs, "SYS_2942" }, /* 2942 */
+ { 0, 0, printargs, "SYS_2943" }, /* 2943 */
+ { 0, 0, printargs, "SYS_2944" }, /* 2944 */
+ { 0, 0, printargs, "SYS_2945" }, /* 2945 */
+ { 0, 0, printargs, "SYS_2946" }, /* 2946 */
+ { 0, 0, printargs, "SYS_2947" }, /* 2947 */
+ { 0, 0, printargs, "SYS_2948" }, /* 2948 */
+ { 0, 0, printargs, "SYS_2949" }, /* 2949 */
+ { 0, 0, printargs, "SYS_2950" }, /* 2950 */
+ { 0, 0, printargs, "SYS_2951" }, /* 2951 */
+ { 0, 0, printargs, "SYS_2952" }, /* 2952 */
+ { 0, 0, printargs, "SYS_2953" }, /* 2953 */
+ { 0, 0, printargs, "SYS_2954" }, /* 2954 */
+ { 0, 0, printargs, "SYS_2955" }, /* 2955 */
+ { 0, 0, printargs, "SYS_2956" }, /* 2956 */
+ { 0, 0, printargs, "SYS_2957" }, /* 2957 */
+ { 0, 0, printargs, "SYS_2958" }, /* 2958 */
+ { 0, 0, printargs, "SYS_2959" }, /* 2959 */
+ { 0, 0, printargs, "SYS_2960" }, /* 2960 */
+ { 0, 0, printargs, "SYS_2961" }, /* 2961 */
+ { 0, 0, printargs, "SYS_2962" }, /* 2962 */
+ { 0, 0, printargs, "SYS_2963" }, /* 2963 */
+ { 0, 0, printargs, "SYS_2964" }, /* 2964 */
+ { 0, 0, printargs, "SYS_2965" }, /* 2965 */
+ { 0, 0, printargs, "SYS_2966" }, /* 2966 */
+ { 0, 0, printargs, "SYS_2967" }, /* 2967 */
+ { 0, 0, printargs, "SYS_2968" }, /* 2968 */
+ { 0, 0, printargs, "SYS_2969" }, /* 2969 */
+ { 0, 0, printargs, "SYS_2970" }, /* 2970 */
+ { 0, 0, printargs, "SYS_2971" }, /* 2971 */
+ { 0, 0, printargs, "SYS_2972" }, /* 2972 */
+ { 0, 0, printargs, "SYS_2973" }, /* 2973 */
+ { 0, 0, printargs, "SYS_2974" }, /* 2974 */
+ { 0, 0, printargs, "SYS_2975" }, /* 2975 */
+ { 0, 0, printargs, "SYS_2976" }, /* 2976 */
+ { 0, 0, printargs, "SYS_2977" }, /* 2977 */
+ { 0, 0, printargs, "SYS_2978" }, /* 2978 */
+ { 0, 0, printargs, "SYS_2979" }, /* 2979 */
+ { 0, 0, printargs, "SYS_2980" }, /* 2980 */
+ { 0, 0, printargs, "SYS_2981" }, /* 2981 */
+ { 0, 0, printargs, "SYS_2982" }, /* 2982 */
+ { 0, 0, printargs, "SYS_2983" }, /* 2983 */
+ { 0, 0, printargs, "SYS_2984" }, /* 2984 */
+ { 0, 0, printargs, "SYS_2985" }, /* 2985 */
+ { 0, 0, printargs, "SYS_2986" }, /* 2986 */
+ { 0, 0, printargs, "SYS_2987" }, /* 2987 */
+ { 0, 0, printargs, "SYS_2988" }, /* 2988 */
+ { 0, 0, printargs, "SYS_2989" }, /* 2989 */
+ { 0, 0, printargs, "SYS_2990" }, /* 2990 */
+ { 0, 0, printargs, "SYS_2991" }, /* 2991 */
+ { 0, 0, printargs, "SYS_2992" }, /* 2992 */
+ { 0, 0, printargs, "SYS_2993" }, /* 2993 */
+ { 0, 0, printargs, "SYS_2994" }, /* 2994 */
+ { 0, 0, printargs, "SYS_2995" }, /* 2995 */
+ { 0, 0, printargs, "SYS_2996" }, /* 2996 */
+ { 0, 0, printargs, "SYS_2997" }, /* 2997 */
+ { 0, 0, printargs, "SYS_2998" }, /* 2998 */
+ { 0, 0, printargs, "SYS_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, 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, printargs, "SYS_3058", }, /* 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, printargs, "SYS_3064", }, /* 3064 */
+ { 0, 0, printargs, "SYS_3065", }, /* 3065 */
+ { 0, 0, printargs, "SYS_3066", }, /* 3066 */
+ { 0, 0, printargs, "SYS_3067", }, /* 3067 */
+ { 0, 0, printargs, "SYS_3068", }, /* 3068 */
+ { 0, 0, printargs, "SYS_3069", }, /* 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, printargs, "SYS_3075", }, /* 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, printargs, "SYS_3132", }, /* 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, printargs, "SYS_3145", }, /* 3145 */
+ { 0, 0, printargs, "SYS_3146", }, /* 3146 */
+ { 0, 0, printargs, "SYS_3147", }, /* 3147 */
+ { 0, 0, printargs, "SYS_3148", }, /* 3148 */
+ { 0, 0, printargs, "SYS_3149", }, /* 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, printargs, "SYS_3170", }, /* 3170 */
+ { 0, 0, printargs, "SYS_3171", }, /* 3171 */
+ { 0, 0, printargs, "SYS_3172", }, /* 3172 */
+ { 0, 0, printargs, "SYS_3173", }, /* 3173 */
+ { 0, 0, printargs, "SYS_3174", }, /* 3174 */
+ { 0, 0, printargs, "SYS_3175", }, /* 3175 */
+ { 0, 0, printargs, "SYS_3176", }, /* 3176 */
+ { 0, 0, printargs, "SYS_3177", }, /* 3177 */
+ { 0, 0, printargs, "SYS_3178", }, /* 3178 */
+ { 0, 0, printargs, "SYS_3179", }, /* 3179 */
+ { 0, 0, printargs, "SYS_3180", }, /* 3180 */
+ { 0, 0, printargs, "SYS_3181", }, /* 3181 */
+ { 0, 0, printargs, "SYS_3182", }, /* 3182 */
+ { 0, 0, printargs, "SYS_3183", }, /* 3183 */
+ { 0, 0, printargs, "SYS_3184", }, /* 3184 */
+ { 0, 0, printargs, "SYS_3185", }, /* 3185 */
+ { 0, 0, printargs, "SYS_3186", }, /* 3186 */
+ { 0, 0, printargs, "SYS_3187", }, /* 3187 */
+ { 0, 0, printargs, "SYS_3188", }, /* 3188 */
+ { 0, 0, printargs, "SYS_3189", }, /* 3189 */
+ { 0, 0, printargs, "SYS_3190", }, /* 3190 */
+ { 0, 0, printargs, "SYS_3191", }, /* 3191 */
+ { 0, 0, printargs, "SYS_3192", }, /* 3192 */
+ { 0, 0, printargs, "SYS_3193", }, /* 3193 */
+ { 0, 0, printargs, "SYS_3194", }, /* 3194 */
+ { 0, 0, printargs, "SYS_3195", }, /* 3195 */
+ { 0, 0, printargs, "SYS_3196", }, /* 3196 */
+ { 0, 0, printargs, "SYS_3197", }, /* 3197 */
+ { 0, 0, printargs, "SYS_3198", }, /* 3198 */
+ { 0, 0, printargs, "SYS_3199", }, /* 3199 */
+ { 0, 0, printargs, "SYS_3200", }, /* 3200 */
+ { 0, 0, printargs, "SYS_3201", }, /* 3201 */
+ { 0, 0, printargs, "SYS_3202", }, /* 3202 */
+ { 0, 0, printargs, "SYS_3203", }, /* 3203 */
+ { 0, 0, printargs, "SYS_3204", }, /* 3204 */
+ { 0, 0, printargs, "SYS_3205", }, /* 3205 */
+ { 0, 0, printargs, "SYS_3206", }, /* 3206 */
+ { 0, 0, printargs, "SYS_3207", }, /* 3207 */
+ { 0, 0, printargs, "SYS_3208", }, /* 3208 */
+ { 0, 0, printargs, "SYS_3209", }, /* 3209 */
+ { 0, 0, printargs, "SYS_3210", }, /* 3210 */
+ { 0, 0, printargs, "SYS_3211", }, /* 3211 */
+ { 0, 0, printargs, "SYS_3212", }, /* 3212 */
+ { 0, 0, printargs, "SYS_3213", }, /* 3213 */
+ { 0, 0, printargs, "SYS_3214", }, /* 3214 */
+ { 0, 0, printargs, "SYS_3215", }, /* 3215 */
+ { 0, 0, printargs, "SYS_3216", }, /* 3216 */
+ { 0, 0, printargs, "SYS_3217", }, /* 3217 */
+ { 0, 0, printargs, "SYS_3218", }, /* 3218 */
+ { 0, 0, printargs, "SYS_3219", }, /* 3219 */
+ { 0, 0, printargs, "SYS_3220", }, /* 3220 */
+ { 0, 0, printargs, "SYS_3221", }, /* 3221 */
+ { 0, 0, printargs, "SYS_3222", }, /* 3222 */
+ { 0, 0, printargs, "SYS_3223", }, /* 3223 */
+ { 0, 0, printargs, "SYS_3224", }, /* 3224 */
+ { 0, 0, printargs, "SYS_3225", }, /* 3225 */
+ { 0, 0, printargs, "SYS_3226", }, /* 3226 */
+ { 0, 0, printargs, "SYS_3227", }, /* 3227 */
+ { 0, 0, printargs, "SYS_3228", }, /* 3228 */
+ { 0, 0, printargs, "SYS_3229", }, /* 3229 */
+ { 0, 0, printargs, "SYS_3230", }, /* 3230 */
+ { 0, 0, printargs, "SYS_3231", }, /* 3231 */
+ { 0, 0, printargs, "SYS_3232", }, /* 3232 */
+ { 0, 0, printargs, "SYS_3233", }, /* 3233 */
+ { 0, 0, printargs, "SYS_3234", }, /* 3234 */
+ { 0, 0, printargs, "SYS_3235", }, /* 3235 */
+ { 0, 0, printargs, "SYS_3236", }, /* 3236 */
+ { 0, 0, printargs, "SYS_3237", }, /* 3237 */
+ { 0, 0, printargs, "SYS_3238", }, /* 3238 */
+ { 0, 0, printargs, "SYS_3239", }, /* 3239 */
+ { 0, 0, printargs, "SYS_3240", }, /* 3240 */
+ { 0, 0, printargs, "SYS_3241", }, /* 3241 */
+ { 0, 0, printargs, "SYS_3242", }, /* 3242 */
+ { 0, 0, printargs, "SYS_3243", }, /* 3243 */
+ { 0, 0, printargs, "SYS_3244", }, /* 3244 */
+ { 0, 0, printargs, "SYS_3245", }, /* 3245 */
+ { 0, 0, printargs, "SYS_3246", }, /* 3246 */
+ { 0, 0, printargs, "SYS_3247", }, /* 3247 */
+ { 0, 0, printargs, "SYS_3248", }, /* 3248 */
+ { 0, 0, printargs, "SYS_3249", }, /* 3249 */
+ { 0, 0, printargs, "SYS_3250", }, /* 3250 */
+ { 0, 0, printargs, "SYS_3251", }, /* 3251 */
+ { 0, 0, printargs, "SYS_3252", }, /* 3252 */
+ { 0, 0, printargs, "SYS_3253", }, /* 3253 */
+ { 0, 0, printargs, "SYS_3254", }, /* 3254 */
+ { 0, 0, printargs, "SYS_3255", }, /* 3255 */
+ { 0, 0, printargs, "SYS_3256", }, /* 3256 */
+ { 0, 0, printargs, "SYS_3257", }, /* 3257 */
+ { 0, 0, printargs, "SYS_3258", }, /* 3258 */
+ { 0, 0, printargs, "SYS_3259", }, /* 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, printargs, "SYS_3269", }, /* 3269 */
+ { 0, 0, printargs, "SYS_3270", }, /* 3270 */
+ { 0, 0, printargs, "SYS_3271", }, /* 3271 */
+ { 0, 0, printargs, "SYS_3272", }, /* 3272 */
+ { 0, 0, printargs, "SYS_3273", }, /* 3273 */
+ { 0, 0, printargs, "SYS_3274", }, /* 3274 */
+ { 0, 0, printargs, "SYS_3275", }, /* 3275 */
+ { 0, 0, printargs, "SYS_3276", }, /* 3276 */
+ { 0, 0, printargs, "SYS_3277", }, /* 3277 */
+ { 0, 0, printargs, "SYS_3278", }, /* 3278 */
+ { 0, 0, printargs, "SYS_3279", }, /* 3279 */
+ { 0, 0, printargs, "SYS_3280", }, /* 3280 */
+ { 0, 0, printargs, "SYS_3281", }, /* 3281 */
+ { 0, 0, printargs, "SYS_3282", }, /* 3282 */
+ { 0, 0, printargs, "SYS_3283", }, /* 3283 */
+ { 0, 0, printargs, "SYS_3284", }, /* 3284 */
+ { 0, 0, printargs, "SYS_3285", }, /* 3285 */
+ { 0, 0, printargs, "SYS_3286", }, /* 3286 */
+ { 0, 0, printargs, "SYS_3287", }, /* 3287 */
+ { 0, 0, printargs, "SYS_3288", }, /* 3288 */
+ { 0, 0, printargs, "SYS_3289", }, /* 3289 */
+ { 0, 0, printargs, "SYS_3290", }, /* 3290 */
+ { 0, 0, printargs, "SYS_3291", }, /* 3291 */
+ { 0, 0, printargs, "SYS_3292", }, /* 3292 */
+ { 0, 0, printargs, "SYS_3293", }, /* 3293 */
+ { 0, 0, printargs, "SYS_3294", }, /* 3294 */
+ { 0, 0, printargs, "SYS_3295", }, /* 3295 */
+ { 0, 0, printargs, "SYS_3296", }, /* 3296 */
+ { 0, 0, printargs, "SYS_3297", }, /* 3297 */
+ { 0, 0, printargs, "SYS_3298", }, /* 3298 */
+ { 0, 0, printargs, "SYS_3299", }, /* 3299 */
+ { 0, 0, printargs, "SYS_3300", }, /* 3300 */
+ { 0, 0, printargs, "SYS_3301", }, /* 3301 */
+ { 0, 0, printargs, "SYS_3302", }, /* 3302 */
+ { 0, 0, printargs, "SYS_3303", }, /* 3303 */
+ { 0, 0, printargs, "SYS_3304", }, /* 3304 */
+ { 0, 0, printargs, "SYS_3305", }, /* 3305 */
+ { 0, 0, printargs, "SYS_3306", }, /* 3306 */
+ { 0, 0, printargs, "SYS_3307", }, /* 3307 */
+ { 0, 0, printargs, "SYS_3308", }, /* 3308 */
+ { 0, 0, printargs, "SYS_3309", }, /* 3309 */
+ { 0, 0, printargs, "SYS_3310", }, /* 3310 */
+ { 0, 0, printargs, "SYS_3311", }, /* 3311 */
+ { 0, 0, printargs, "SYS_3312", }, /* 3312 */
+ { 0, 0, printargs, "SYS_3313", }, /* 3313 */
+ { 0, 0, printargs, "SYS_3314", }, /* 3314 */
+ { 0, 0, printargs, "SYS_3315", }, /* 3315 */
+ { 0, 0, printargs, "SYS_3316", }, /* 3316 */
+ { 0, 0, printargs, "SYS_3317", }, /* 3317 */
+ { 0, 0, printargs, "SYS_3318", }, /* 3318 */
+ { 0, 0, printargs, "SYS_3319", }, /* 3319 */
+ { 0, 0, printargs, "SYS_3320" }, /* 3320 */
+ { 0, 0, printargs, "SYS_3321" }, /* 3321 */
+ { 0, 0, printargs, "SYS_3322" }, /* 3322 */
+ { 0, 0, printargs, "SYS_3323" }, /* 3323 */
+ { 0, 0, printargs, "SYS_3324" }, /* 3324 */
+ { 0, 0, printargs, "SYS_3325" }, /* 3325 */
+ { 0, 0, printargs, "SYS_3326" }, /* 3326 */
+ { 0, 0, printargs, "SYS_3327" }, /* 3327 */
+ { 0, 0, printargs, "SYS_3328" }, /* 3328 */
+ { 0, 0, printargs, "SYS_3329" }, /* 3329 */
+ { 0, 0, printargs, "SYS_3330" }, /* 3330 */
+ { 0, 0, printargs, "SYS_3331" }, /* 3331 */
+ { 0, 0, printargs, "SYS_3332" }, /* 3332 */
+ { 0, 0, printargs, "SYS_3333" }, /* 3333 */
+ { 0, 0, printargs, "SYS_3334" }, /* 3334 */
+ { 0, 0, printargs, "SYS_3335" }, /* 3335 */
+ { 0, 0, printargs, "SYS_3336" }, /* 3336 */
+ { 0, 0, printargs, "SYS_3337" }, /* 3337 */
+ { 0, 0, printargs, "SYS_3338" }, /* 3338 */
+ { 0, 0, printargs, "SYS_3339" }, /* 3339 */
+ { 0, 0, printargs, "SYS_3340" }, /* 3340 */
+ { 0, 0, printargs, "SYS_3341" }, /* 3341 */
+ { 0, 0, printargs, "SYS_3342" }, /* 3342 */
+ { 0, 0, printargs, "SYS_3343" }, /* 3343 */
+ { 0, 0, printargs, "SYS_3344" }, /* 3344 */
+ { 0, 0, printargs, "SYS_3345" }, /* 3345 */
+ { 0, 0, printargs, "SYS_3346" }, /* 3346 */
+ { 0, 0, printargs, "SYS_3347" }, /* 3347 */
+ { 0, 0, printargs, "SYS_3348" }, /* 3348 */
+ { 0, 0, printargs, "SYS_3349" }, /* 3349 */
+ { 0, 0, printargs, "SYS_3350" }, /* 3350 */
+ { 0, 0, printargs, "SYS_3351" }, /* 3351 */
+ { 0, 0, printargs, "SYS_3352" }, /* 3352 */
+ { 0, 0, printargs, "SYS_3353" }, /* 3353 */
+ { 0, 0, printargs, "SYS_3354" }, /* 3354 */
+ { 0, 0, printargs, "SYS_3355" }, /* 3355 */
+ { 0, 0, printargs, "SYS_3356" }, /* 3356 */
+ { 0, 0, printargs, "SYS_3357" }, /* 3357 */
+ { 0, 0, printargs, "SYS_3358" }, /* 3358 */
+ { 0, 0, printargs, "SYS_3359" }, /* 3359 */
+ { 0, 0, printargs, "SYS_3360" }, /* 3360 */
+ { 0, 0, printargs, "SYS_3361" }, /* 3361 */
+ { 0, 0, printargs, "SYS_3362" }, /* 3362 */
+ { 0, 0, printargs, "SYS_3363" }, /* 3363 */
+ { 0, 0, printargs, "SYS_3364" }, /* 3364 */
+ { 0, 0, printargs, "SYS_3365" }, /* 3365 */
+ { 0, 0, printargs, "SYS_3366" }, /* 3366 */
+ { 0, 0, printargs, "SYS_3367" }, /* 3367 */
+ { 0, 0, printargs, "SYS_3368" }, /* 3368 */
+ { 0, 0, printargs, "SYS_3369" }, /* 3369 */
+ { 0, 0, printargs, "SYS_3370" }, /* 3370 */
+ { 0, 0, printargs, "SYS_3371" }, /* 3371 */
+ { 0, 0, printargs, "SYS_3372" }, /* 3372 */
+ { 0, 0, printargs, "SYS_3373" }, /* 3373 */
+ { 0, 0, printargs, "SYS_3374" }, /* 3374 */
+ { 0, 0, printargs, "SYS_3375" }, /* 3375 */
+ { 0, 0, printargs, "SYS_3376" }, /* 3376 */
+ { 0, 0, printargs, "SYS_3377" }, /* 3377 */
+ { 0, 0, printargs, "SYS_3378" }, /* 3378 */
+ { 0, 0, printargs, "SYS_3379" }, /* 3379 */
+ { 0, 0, printargs, "SYS_3380" }, /* 3380 */
+ { 0, 0, printargs, "SYS_3381" }, /* 3381 */
+ { 0, 0, printargs, "SYS_3382" }, /* 3382 */
+ { 0, 0, printargs, "SYS_3383" }, /* 3383 */
+ { 0, 0, printargs, "SYS_3384" }, /* 3384 */
+ { 0, 0, printargs, "SYS_3385" }, /* 3385 */
+ { 0, 0, printargs, "SYS_3386" }, /* 3386 */
+ { 0, 0, printargs, "SYS_3387" }, /* 3387 */
+ { 0, 0, printargs, "SYS_3388" }, /* 3388 */
+ { 0, 0, printargs, "SYS_3389" }, /* 3389 */
+ { 0, 0, printargs, "SYS_3390" }, /* 3390 */
+ { 0, 0, printargs, "SYS_3391" }, /* 3391 */
+ { 0, 0, printargs, "SYS_3392" }, /* 3392 */
+ { 0, 0, printargs, "SYS_3393" }, /* 3393 */
+ { 0, 0, printargs, "SYS_3394" }, /* 3394 */
+ { 0, 0, printargs, "SYS_3395" }, /* 3395 */
+ { 0, 0, printargs, "SYS_3396" }, /* 3396 */
+ { 0, 0, printargs, "SYS_3397" }, /* 3397 */
+ { 0, 0, printargs, "SYS_3398" }, /* 3398 */
+ { 0, 0, printargs, "SYS_3399" }, /* 3399 */
+ { 0, 0, printargs, "SYS_3400" }, /* 3400 */
+ { 0, 0, printargs, "SYS_3401" }, /* 3401 */
+ { 0, 0, printargs, "SYS_3402" }, /* 3402 */
+ { 0, 0, printargs, "SYS_3403" }, /* 3403 */
+ { 0, 0, printargs, "SYS_3404" }, /* 3404 */
+ { 0, 0, printargs, "SYS_3405" }, /* 3405 */
+ { 0, 0, printargs, "SYS_3406" }, /* 3406 */
+ { 0, 0, printargs, "SYS_3407" }, /* 3407 */
+ { 0, 0, printargs, "SYS_3408" }, /* 3408 */
+ { 0, 0, printargs, "SYS_3409" }, /* 3409 */
+ { 0, 0, printargs, "SYS_3410" }, /* 3410 */
+ { 0, 0, printargs, "SYS_3411" }, /* 3411 */
+ { 0, 0, printargs, "SYS_3412" }, /* 3412 */
+ { 0, 0, printargs, "SYS_3413" }, /* 3413 */
+ { 0, 0, printargs, "SYS_3414" }, /* 3414 */
+ { 0, 0, printargs, "SYS_3415" }, /* 3415 */
+ { 0, 0, printargs, "SYS_3416" }, /* 3416 */
+ { 0, 0, printargs, "SYS_3417" }, /* 3417 */
+ { 0, 0, printargs, "SYS_3418" }, /* 3418 */
+ { 0, 0, printargs, "SYS_3419" }, /* 3419 */
+ { 0, 0, printargs, "SYS_3420" }, /* 3420 */
+ { 0, 0, printargs, "SYS_3421" }, /* 3421 */
+ { 0, 0, printargs, "SYS_3422" }, /* 3422 */
+ { 0, 0, printargs, "SYS_3423" }, /* 3423 */
+ { 0, 0, printargs, "SYS_3424" }, /* 3424 */
+ { 0, 0, printargs, "SYS_3425" }, /* 3425 */
+ { 0, 0, printargs, "SYS_3426" }, /* 3426 */
+ { 0, 0, printargs, "SYS_3427" }, /* 3427 */
+ { 0, 0, printargs, "SYS_3428" }, /* 3428 */
+ { 0, 0, printargs, "SYS_3429" }, /* 3429 */
+ { 0, 0, printargs, "SYS_3430" }, /* 3430 */
+ { 0, 0, printargs, "SYS_3431" }, /* 3431 */
+ { 0, 0, printargs, "SYS_3432" }, /* 3432 */
+ { 0, 0, printargs, "SYS_3433" }, /* 3433 */
+ { 0, 0, printargs, "SYS_3434" }, /* 3434 */
+ { 0, 0, printargs, "SYS_3435" }, /* 3435 */
+ { 0, 0, printargs, "SYS_3436" }, /* 3436 */
+ { 0, 0, printargs, "SYS_3437" }, /* 3437 */
+ { 0, 0, printargs, "SYS_3438" }, /* 3438 */
+ { 0, 0, printargs, "SYS_3439" }, /* 3439 */
+ { 0, 0, printargs, "SYS_3440" }, /* 3440 */
+ { 0, 0, printargs, "SYS_3441" }, /* 3441 */
+ { 0, 0, printargs, "SYS_3442" }, /* 3442 */
+ { 0, 0, printargs, "SYS_3443" }, /* 3443 */
+ { 0, 0, printargs, "SYS_3444" }, /* 3444 */
+ { 0, 0, printargs, "SYS_3445" }, /* 3445 */
+ { 0, 0, printargs, "SYS_3446" }, /* 3446 */
+ { 0, 0, printargs, "SYS_3447" }, /* 3447 */
+ { 0, 0, printargs, "SYS_3448" }, /* 3448 */
+ { 0, 0, printargs, "SYS_3449" }, /* 3449 */
+ { 0, 0, printargs, "SYS_3450" }, /* 3450 */
+ { 0, 0, printargs, "SYS_3451" }, /* 3451 */
+ { 0, 0, printargs, "SYS_3452" }, /* 3452 */
+ { 0, 0, printargs, "SYS_3453" }, /* 3453 */
+ { 0, 0, printargs, "SYS_3454" }, /* 3454 */
+ { 0, 0, printargs, "SYS_3455" }, /* 3455 */
+ { 0, 0, printargs, "SYS_3456" }, /* 3456 */
+ { 0, 0, printargs, "SYS_3457" }, /* 3457 */
+ { 0, 0, printargs, "SYS_3458" }, /* 3458 */
+ { 0, 0, printargs, "SYS_3459" }, /* 3459 */
+ { 0, 0, printargs, "SYS_3460" }, /* 3460 */
+ { 0, 0, printargs, "SYS_3461" }, /* 3461 */
+ { 0, 0, printargs, "SYS_3462" }, /* 3462 */
+ { 0, 0, printargs, "SYS_3463" }, /* 3463 */
+ { 0, 0, printargs, "SYS_3464" }, /* 3464 */
+ { 0, 0, printargs, "SYS_3465" }, /* 3465 */
+ { 0, 0, printargs, "SYS_3466" }, /* 3466 */
+ { 0, 0, printargs, "SYS_3467" }, /* 3467 */
+ { 0, 0, printargs, "SYS_3468" }, /* 3468 */
+ { 0, 0, printargs, "SYS_3469" }, /* 3469 */
+ { 0, 0, printargs, "SYS_3470" }, /* 3470 */
+ { 0, 0, printargs, "SYS_3471" }, /* 3471 */
+ { 0, 0, printargs, "SYS_3472" }, /* 3472 */
+ { 0, 0, printargs, "SYS_3473" }, /* 3473 */
+ { 0, 0, printargs, "SYS_3474" }, /* 3474 */
+ { 0, 0, printargs, "SYS_3475" }, /* 3475 */
+ { 0, 0, printargs, "SYS_3476" }, /* 3476 */
+ { 0, 0, printargs, "SYS_3477" }, /* 3477 */
+ { 0, 0, printargs, "SYS_3478" }, /* 3478 */
+ { 0, 0, printargs, "SYS_3479" }, /* 3479 */
+ { 0, 0, printargs, "SYS_3480" }, /* 3480 */
+ { 0, 0, printargs, "SYS_3481" }, /* 3481 */
+ { 0, 0, printargs, "SYS_3482" }, /* 3482 */
+ { 0, 0, printargs, "SYS_3483" }, /* 3483 */
+ { 0, 0, printargs, "SYS_3484" }, /* 3484 */
+ { 0, 0, printargs, "SYS_3485" }, /* 3485 */
+ { 0, 0, printargs, "SYS_3486" }, /* 3486 */
+ { 0, 0, printargs, "SYS_3487" }, /* 3487 */
+ { 0, 0, printargs, "SYS_3488" }, /* 3488 */
+ { 0, 0, printargs, "SYS_3489" }, /* 3489 */
+ { 0, 0, printargs, "SYS_3490" }, /* 3490 */
+ { 0, 0, printargs, "SYS_3491" }, /* 3491 */
+ { 0, 0, printargs, "SYS_3492" }, /* 3492 */
+ { 0, 0, printargs, "SYS_3493" }, /* 3493 */
+ { 0, 0, printargs, "SYS_3494" }, /* 3494 */
+ { 0, 0, printargs, "SYS_3495" }, /* 3495 */
+ { 0, 0, printargs, "SYS_3496" }, /* 3496 */
+ { 0, 0, printargs, "SYS_3497" }, /* 3497 */
+ { 0, 0, printargs, "SYS_3498" }, /* 3498 */
+ { 0, 0, printargs, "SYS_3499" }, /* 3499 */
+ { 0, 0, printargs, "SYS_3500" }, /* 3500 */
+ { 0, 0, printargs, "SYS_3501" }, /* 3501 */
+ { 0, 0, printargs, "SYS_3502" }, /* 3502 */
+ { 0, 0, printargs, "SYS_3503" }, /* 3503 */
+ { 0, 0, printargs, "SYS_3504" }, /* 3504 */
+ { 0, 0, printargs, "SYS_3505" }, /* 3505 */
+ { 0, 0, printargs, "SYS_3506" }, /* 3506 */
+ { 0, 0, printargs, "SYS_3507" }, /* 3507 */
+ { 0, 0, printargs, "SYS_3508" }, /* 3508 */
+ { 0, 0, printargs, "SYS_3509" }, /* 3509 */
+ { 0, 0, printargs, "SYS_3510" }, /* 3510 */
+ { 0, 0, printargs, "SYS_3511" }, /* 3511 */
+ { 0, 0, printargs, "SYS_3512" }, /* 3512 */
+ { 0, 0, printargs, "SYS_3513" }, /* 3513 */
+ { 0, 0, printargs, "SYS_3514" }, /* 3514 */
+ { 0, 0, printargs, "SYS_3515" }, /* 3515 */
+ { 0, 0, printargs, "SYS_3516" }, /* 3516 */
+ { 0, 0, printargs, "SYS_3517" }, /* 3517 */
+ { 0, 0, printargs, "SYS_3518" }, /* 3518 */
+ { 0, 0, printargs, "SYS_3519" }, /* 3519 */
+ { 0, 0, printargs, "SYS_3520" }, /* 3520 */
+ { 0, 0, printargs, "SYS_3521" }, /* 3521 */
+ { 0, 0, printargs, "SYS_3522" }, /* 3522 */
+ { 0, 0, printargs, "SYS_3523" }, /* 3523 */
+ { 0, 0, printargs, "SYS_3524" }, /* 3524 */
+ { 0, 0, printargs, "SYS_3525" }, /* 3525 */
+ { 0, 0, printargs, "SYS_3526" }, /* 3526 */
+ { 0, 0, printargs, "SYS_3527" }, /* 3527 */
+ { 0, 0, printargs, "SYS_3528" }, /* 3528 */
+ { 0, 0, printargs, "SYS_3529" }, /* 3529 */
+ { 0, 0, printargs, "SYS_3530" }, /* 3530 */
+ { 0, 0, printargs, "SYS_3531" }, /* 3531 */
+ { 0, 0, printargs, "SYS_3532" }, /* 3532 */
+ { 0, 0, printargs, "SYS_3533" }, /* 3533 */
+ { 0, 0, printargs, "SYS_3534" }, /* 3534 */
+ { 0, 0, printargs, "SYS_3535" }, /* 3535 */
+ { 0, 0, printargs, "SYS_3536" }, /* 3536 */
+ { 0, 0, printargs, "SYS_3537" }, /* 3537 */
+ { 0, 0, printargs, "SYS_3538" }, /* 3538 */
+ { 0, 0, printargs, "SYS_3539" }, /* 3539 */
+ { 0, 0, printargs, "SYS_3540" }, /* 3540 */
+ { 0, 0, printargs, "SYS_3541" }, /* 3541 */
+ { 0, 0, printargs, "SYS_3542" }, /* 3542 */
+ { 0, 0, printargs, "SYS_3543" }, /* 3543 */
+ { 0, 0, printargs, "SYS_3544" }, /* 3544 */
+ { 0, 0, printargs, "SYS_3545" }, /* 3545 */
+ { 0, 0, printargs, "SYS_3546" }, /* 3546 */
+ { 0, 0, printargs, "SYS_3547" }, /* 3547 */
+ { 0, 0, printargs, "SYS_3548" }, /* 3548 */
+ { 0, 0, printargs, "SYS_3549" }, /* 3549 */
+ { 0, 0, printargs, "SYS_3550" }, /* 3550 */
+ { 0, 0, printargs, "SYS_3551" }, /* 3551 */
+ { 0, 0, printargs, "SYS_3552" }, /* 3552 */
+ { 0, 0, printargs, "SYS_3553" }, /* 3553 */
+ { 0, 0, printargs, "SYS_3554" }, /* 3554 */
+ { 0, 0, printargs, "SYS_3555" }, /* 3555 */
+ { 0, 0, printargs, "SYS_3556" }, /* 3556 */
+ { 0, 0, printargs, "SYS_3557" }, /* 3557 */
+ { 0, 0, printargs, "SYS_3558" }, /* 3558 */
+ { 0, 0, printargs, "SYS_3559" }, /* 3559 */
+ { 0, 0, printargs, "SYS_3560" }, /* 3560 */
+ { 0, 0, printargs, "SYS_3561" }, /* 3561 */
+ { 0, 0, printargs, "SYS_3562" }, /* 3562 */
+ { 0, 0, printargs, "SYS_3563" }, /* 3563 */
+ { 0, 0, printargs, "SYS_3564" }, /* 3564 */
+ { 0, 0, printargs, "SYS_3565" }, /* 3565 */
+ { 0, 0, printargs, "SYS_3566" }, /* 3566 */
+ { 0, 0, printargs, "SYS_3567" }, /* 3567 */
+ { 0, 0, printargs, "SYS_3568" }, /* 3568 */
+ { 0, 0, printargs, "SYS_3569" }, /* 3569 */
+ { 0, 0, printargs, "SYS_3570" }, /* 3570 */
+ { 0, 0, printargs, "SYS_3571" }, /* 3571 */
+ { 0, 0, printargs, "SYS_3572" }, /* 3572 */
+ { 0, 0, printargs, "SYS_3573" }, /* 3573 */
+ { 0, 0, printargs, "SYS_3574" }, /* 3574 */
+ { 0, 0, printargs, "SYS_3575" }, /* 3575 */
+ { 0, 0, printargs, "SYS_3576" }, /* 3576 */
+ { 0, 0, printargs, "SYS_3577" }, /* 3577 */
+ { 0, 0, printargs, "SYS_3578" }, /* 3578 */
+ { 0, 0, printargs, "SYS_3579" }, /* 3579 */
+ { 0, 0, printargs, "SYS_3580" }, /* 3580 */
+ { 0, 0, printargs, "SYS_3581" }, /* 3581 */
+ { 0, 0, printargs, "SYS_3582" }, /* 3582 */
+ { 0, 0, printargs, "SYS_3583" }, /* 3583 */
+ { 0, 0, printargs, "SYS_3584" }, /* 3584 */
+ { 0, 0, printargs, "SYS_3585" }, /* 3585 */
+ { 0, 0, printargs, "SYS_3586" }, /* 3586 */
+ { 0, 0, printargs, "SYS_3587" }, /* 3587 */
+ { 0, 0, printargs, "SYS_3588" }, /* 3588 */
+ { 0, 0, printargs, "SYS_3589" }, /* 3589 */
+ { 0, 0, printargs, "SYS_3590" }, /* 3590 */
+ { 0, 0, printargs, "SYS_3591" }, /* 3591 */
+ { 0, 0, printargs, "SYS_3592" }, /* 3592 */
+ { 0, 0, printargs, "SYS_3593" }, /* 3593 */
+ { 0, 0, printargs, "SYS_3594" }, /* 3594 */
+ { 0, 0, printargs, "SYS_3595" }, /* 3595 */
+ { 0, 0, printargs, "SYS_3596" }, /* 3596 */
+ { 0, 0, printargs, "SYS_3597" }, /* 3597 */
+ { 0, 0, printargs, "SYS_3598" }, /* 3598 */
+ { 0, 0, printargs, "SYS_3599" }, /* 3599 */
+ { 0, 0, printargs, "SYS_3600" }, /* 3600 */
+ { 0, 0, printargs, "SYS_3601" }, /* 3601 */
+ { 0, 0, printargs, "SYS_3602" }, /* 3602 */
+ { 0, 0, printargs, "SYS_3603" }, /* 3603 */
+ { 0, 0, printargs, "SYS_3604" }, /* 3604 */
+ { 0, 0, printargs, "SYS_3605" }, /* 3605 */
+ { 0, 0, printargs, "SYS_3606" }, /* 3606 */
+ { 0, 0, printargs, "SYS_3607" }, /* 3607 */
+ { 0, 0, printargs, "SYS_3608" }, /* 3608 */
+ { 0, 0, printargs, "SYS_3609" }, /* 3609 */
+ { 0, 0, printargs, "SYS_3610" }, /* 3610 */
+ { 0, 0, printargs, "SYS_3611" }, /* 3611 */
+ { 0, 0, printargs, "SYS_3612" }, /* 3612 */
+ { 0, 0, printargs, "SYS_3613" }, /* 3613 */
+ { 0, 0, printargs, "SYS_3614" }, /* 3614 */
+ { 0, 0, printargs, "SYS_3615" }, /* 3615 */
+ { 0, 0, printargs, "SYS_3616" }, /* 3616 */
+ { 0, 0, printargs, "SYS_3617" }, /* 3617 */
+ { 0, 0, printargs, "SYS_3618" }, /* 3618 */
+ { 0, 0, printargs, "SYS_3619" }, /* 3619 */
+ { 0, 0, printargs, "SYS_3620" }, /* 3620 */
+ { 0, 0, printargs, "SYS_3621" }, /* 3621 */
+ { 0, 0, printargs, "SYS_3622" }, /* 3622 */
+ { 0, 0, printargs, "SYS_3623" }, /* 3623 */
+ { 0, 0, printargs, "SYS_3624" }, /* 3624 */
+ { 0, 0, printargs, "SYS_3625" }, /* 3625 */
+ { 0, 0, printargs, "SYS_3626" }, /* 3626 */
+ { 0, 0, printargs, "SYS_3627" }, /* 3627 */
+ { 0, 0, printargs, "SYS_3628" }, /* 3628 */
+ { 0, 0, printargs, "SYS_3629" }, /* 3629 */
+ { 0, 0, printargs, "SYS_3630" }, /* 3630 */
+ { 0, 0, printargs, "SYS_3631" }, /* 3631 */
+ { 0, 0, printargs, "SYS_3632" }, /* 3632 */
+ { 0, 0, printargs, "SYS_3633" }, /* 3633 */
+ { 0, 0, printargs, "SYS_3634" }, /* 3634 */
+ { 0, 0, printargs, "SYS_3635" }, /* 3635 */
+ { 0, 0, printargs, "SYS_3636" }, /* 3636 */
+ { 0, 0, printargs, "SYS_3637" }, /* 3637 */
+ { 0, 0, printargs, "SYS_3638" }, /* 3638 */
+ { 0, 0, printargs, "SYS_3639" }, /* 3639 */
+ { 0, 0, printargs, "SYS_3640" }, /* 3640 */
+ { 0, 0, printargs, "SYS_3641" }, /* 3641 */
+ { 0, 0, printargs, "SYS_3642" }, /* 3642 */
+ { 0, 0, printargs, "SYS_3643" }, /* 3643 */
+ { 0, 0, printargs, "SYS_3644" }, /* 3644 */
+ { 0, 0, printargs, "SYS_3645" }, /* 3645 */
+ { 0, 0, printargs, "SYS_3646" }, /* 3646 */
+ { 0, 0, printargs, "SYS_3647" }, /* 3647 */
+ { 0, 0, printargs, "SYS_3648" }, /* 3648 */
+ { 0, 0, printargs, "SYS_3649" }, /* 3649 */
+ { 0, 0, printargs, "SYS_3650" }, /* 3650 */
+ { 0, 0, printargs, "SYS_3651" }, /* 3651 */
+ { 0, 0, printargs, "SYS_3652" }, /* 3652 */
+ { 0, 0, printargs, "SYS_3653" }, /* 3653 */
+ { 0, 0, printargs, "SYS_3654" }, /* 3654 */
+ { 0, 0, printargs, "SYS_3655" }, /* 3655 */
+ { 0, 0, printargs, "SYS_3656" }, /* 3656 */
+ { 0, 0, printargs, "SYS_3657" }, /* 3657 */
+ { 0, 0, printargs, "SYS_3658" }, /* 3658 */
+ { 0, 0, printargs, "SYS_3659" }, /* 3659 */
+ { 0, 0, printargs, "SYS_3660" }, /* 3660 */
+ { 0, 0, printargs, "SYS_3661" }, /* 3661 */
+ { 0, 0, printargs, "SYS_3662" }, /* 3662 */
+ { 0, 0, printargs, "SYS_3663" }, /* 3663 */
+ { 0, 0, printargs, "SYS_3664" }, /* 3664 */
+ { 0, 0, printargs, "SYS_3665" }, /* 3665 */
+ { 0, 0, printargs, "SYS_3666" }, /* 3666 */
+ { 0, 0, printargs, "SYS_3667" }, /* 3667 */
+ { 0, 0, printargs, "SYS_3668" }, /* 3668 */
+ { 0, 0, printargs, "SYS_3669" }, /* 3669 */
+ { 0, 0, printargs, "SYS_3670" }, /* 3670 */
+ { 0, 0, printargs, "SYS_3671" }, /* 3671 */
+ { 0, 0, printargs, "SYS_3672" }, /* 3672 */
+ { 0, 0, printargs, "SYS_3673" }, /* 3673 */
+ { 0, 0, printargs, "SYS_3674" }, /* 3674 */
+ { 0, 0, printargs, "SYS_3675" }, /* 3675 */
+ { 0, 0, printargs, "SYS_3676" }, /* 3676 */
+ { 0, 0, printargs, "SYS_3677" }, /* 3677 */
+ { 0, 0, printargs, "SYS_3678" }, /* 3678 */
+ { 0, 0, printargs, "SYS_3679" }, /* 3679 */
+ { 0, 0, printargs, "SYS_3680" }, /* 3680 */
+ { 0, 0, printargs, "SYS_3681" }, /* 3681 */
+ { 0, 0, printargs, "SYS_3682" }, /* 3682 */
+ { 0, 0, printargs, "SYS_3683" }, /* 3683 */
+ { 0, 0, printargs, "SYS_3684" }, /* 3684 */
+ { 0, 0, printargs, "SYS_3685" }, /* 3685 */
+ { 0, 0, printargs, "SYS_3686" }, /* 3686 */
+ { 0, 0, printargs, "SYS_3687" }, /* 3687 */
+ { 0, 0, printargs, "SYS_3688" }, /* 3688 */
+ { 0, 0, printargs, "SYS_3689" }, /* 3689 */
+ { 0, 0, printargs, "SYS_3690" }, /* 3690 */
+ { 0, 0, printargs, "SYS_3691" }, /* 3691 */
+ { 0, 0, printargs, "SYS_3692" }, /* 3692 */
+ { 0, 0, printargs, "SYS_3693" }, /* 3693 */
+ { 0, 0, printargs, "SYS_3694" }, /* 3694 */
+ { 0, 0, printargs, "SYS_3695" }, /* 3695 */
+ { 0, 0, printargs, "SYS_3696" }, /* 3696 */
+ { 0, 0, printargs, "SYS_3697" }, /* 3697 */
+ { 0, 0, printargs, "SYS_3698" }, /* 3698 */
+ { 0, 0, printargs, "SYS_3699" }, /* 3699 */
+ { 0, 0, printargs, "SYS_3700" }, /* 3700 */
+ { 0, 0, printargs, "SYS_3701" }, /* 3701 */
+ { 0, 0, printargs, "SYS_3702" }, /* 3702 */
+ { 0, 0, printargs, "SYS_3703" }, /* 3703 */
+ { 0, 0, printargs, "SYS_3704" }, /* 3704 */
+ { 0, 0, printargs, "SYS_3705" }, /* 3705 */
+ { 0, 0, printargs, "SYS_3706" }, /* 3706 */
+ { 0, 0, printargs, "SYS_3707" }, /* 3707 */
+ { 0, 0, printargs, "SYS_3708" }, /* 3708 */
+ { 0, 0, printargs, "SYS_3709" }, /* 3709 */
+ { 0, 0, printargs, "SYS_3710" }, /* 3710 */
+ { 0, 0, printargs, "SYS_3711" }, /* 3711 */
+ { 0, 0, printargs, "SYS_3712" }, /* 3712 */
+ { 0, 0, printargs, "SYS_3713" }, /* 3713 */
+ { 0, 0, printargs, "SYS_3714" }, /* 3714 */
+ { 0, 0, printargs, "SYS_3715" }, /* 3715 */
+ { 0, 0, printargs, "SYS_3716" }, /* 3716 */
+ { 0, 0, printargs, "SYS_3717" }, /* 3717 */
+ { 0, 0, printargs, "SYS_3718" }, /* 3718 */
+ { 0, 0, printargs, "SYS_3719" }, /* 3719 */
+ { 0, 0, printargs, "SYS_3720" }, /* 3720 */
+ { 0, 0, printargs, "SYS_3721" }, /* 3721 */
+ { 0, 0, printargs, "SYS_3722" }, /* 3722 */
+ { 0, 0, printargs, "SYS_3723" }, /* 3723 */
+ { 0, 0, printargs, "SYS_3724" }, /* 3724 */
+ { 0, 0, printargs, "SYS_3725" }, /* 3725 */
+ { 0, 0, printargs, "SYS_3726" }, /* 3726 */
+ { 0, 0, printargs, "SYS_3727" }, /* 3727 */
+ { 0, 0, printargs, "SYS_3728" }, /* 3728 */
+ { 0, 0, printargs, "SYS_3729" }, /* 3729 */
+ { 0, 0, printargs, "SYS_3730" }, /* 3730 */
+ { 0, 0, printargs, "SYS_3731" }, /* 3731 */
+ { 0, 0, printargs, "SYS_3732" }, /* 3732 */
+ { 0, 0, printargs, "SYS_3733" }, /* 3733 */
+ { 0, 0, printargs, "SYS_3734" }, /* 3734 */
+ { 0, 0, printargs, "SYS_3735" }, /* 3735 */
+ { 0, 0, printargs, "SYS_3736" }, /* 3736 */
+ { 0, 0, printargs, "SYS_3737" }, /* 3737 */
+ { 0, 0, printargs, "SYS_3738" }, /* 3738 */
+ { 0, 0, printargs, "SYS_3739" }, /* 3739 */
+ { 0, 0, printargs, "SYS_3740" }, /* 3740 */
+ { 0, 0, printargs, "SYS_3741" }, /* 3741 */
+ { 0, 0, printargs, "SYS_3742" }, /* 3742 */
+ { 0, 0, printargs, "SYS_3743" }, /* 3743 */
+ { 0, 0, printargs, "SYS_3744" }, /* 3744 */
+ { 0, 0, printargs, "SYS_3745" }, /* 3745 */
+ { 0, 0, printargs, "SYS_3746" }, /* 3746 */
+ { 0, 0, printargs, "SYS_3747" }, /* 3747 */
+ { 0, 0, printargs, "SYS_3748" }, /* 3748 */
+ { 0, 0, printargs, "SYS_3749" }, /* 3749 */
+ { 0, 0, printargs, "SYS_3750" }, /* 3750 */
+ { 0, 0, printargs, "SYS_3751" }, /* 3751 */
+ { 0, 0, printargs, "SYS_3752" }, /* 3752 */
+ { 0, 0, printargs, "SYS_3753" }, /* 3753 */
+ { 0, 0, printargs, "SYS_3754" }, /* 3754 */
+ { 0, 0, printargs, "SYS_3755" }, /* 3755 */
+ { 0, 0, printargs, "SYS_3756" }, /* 3756 */
+ { 0, 0, printargs, "SYS_3757" }, /* 3757 */
+ { 0, 0, printargs, "SYS_3758" }, /* 3758 */
+ { 0, 0, printargs, "SYS_3759" }, /* 3759 */
+ { 0, 0, printargs, "SYS_3760" }, /* 3760 */
+ { 0, 0, printargs, "SYS_3761" }, /* 3761 */
+ { 0, 0, printargs, "SYS_3762" }, /* 3762 */
+ { 0, 0, printargs, "SYS_3763" }, /* 3763 */
+ { 0, 0, printargs, "SYS_3764" }, /* 3764 */
+ { 0, 0, printargs, "SYS_3765" }, /* 3765 */
+ { 0, 0, printargs, "SYS_3766" }, /* 3766 */
+ { 0, 0, printargs, "SYS_3767" }, /* 3767 */
+ { 0, 0, printargs, "SYS_3768" }, /* 3768 */
+ { 0, 0, printargs, "SYS_3769" }, /* 3769 */
+ { 0, 0, printargs, "SYS_3770" }, /* 3770 */
+ { 0, 0, printargs, "SYS_3771" }, /* 3771 */
+ { 0, 0, printargs, "SYS_3772" }, /* 3772 */
+ { 0, 0, printargs, "SYS_3773" }, /* 3773 */
+ { 0, 0, printargs, "SYS_3774" }, /* 3774 */
+ { 0, 0, printargs, "SYS_3775" }, /* 3775 */
+ { 0, 0, printargs, "SYS_3776" }, /* 3776 */
+ { 0, 0, printargs, "SYS_3777" }, /* 3777 */
+ { 0, 0, printargs, "SYS_3778" }, /* 3778 */
+ { 0, 0, printargs, "SYS_3779" }, /* 3779 */
+ { 0, 0, printargs, "SYS_3780" }, /* 3780 */
+ { 0, 0, printargs, "SYS_3781" }, /* 3781 */
+ { 0, 0, printargs, "SYS_3782" }, /* 3782 */
+ { 0, 0, printargs, "SYS_3783" }, /* 3783 */
+ { 0, 0, printargs, "SYS_3784" }, /* 3784 */
+ { 0, 0, printargs, "SYS_3785" }, /* 3785 */
+ { 0, 0, printargs, "SYS_3786" }, /* 3786 */
+ { 0, 0, printargs, "SYS_3787" }, /* 3787 */
+ { 0, 0, printargs, "SYS_3788" }, /* 3788 */
+ { 0, 0, printargs, "SYS_3789" }, /* 3789 */
+ { 0, 0, printargs, "SYS_3790" }, /* 3790 */
+ { 0, 0, printargs, "SYS_3791" }, /* 3791 */
+ { 0, 0, printargs, "SYS_3792" }, /* 3792 */
+ { 0, 0, printargs, "SYS_3793" }, /* 3793 */
+ { 0, 0, printargs, "SYS_3794" }, /* 3794 */
+ { 0, 0, printargs, "SYS_3795" }, /* 3795 */
+ { 0, 0, printargs, "SYS_3796" }, /* 3796 */
+ { 0, 0, printargs, "SYS_3797" }, /* 3797 */
+ { 0, 0, printargs, "SYS_3798" }, /* 3798 */
+ { 0, 0, printargs, "SYS_3799" }, /* 3799 */
+ { 0, 0, printargs, "SYS_3800" }, /* 3800 */
+ { 0, 0, printargs, "SYS_3801" }, /* 3801 */
+ { 0, 0, printargs, "SYS_3802" }, /* 3802 */
+ { 0, 0, printargs, "SYS_3803" }, /* 3803 */
+ { 0, 0, printargs, "SYS_3804" }, /* 3804 */
+ { 0, 0, printargs, "SYS_3805" }, /* 3805 */
+ { 0, 0, printargs, "SYS_3806" }, /* 3806 */
+ { 0, 0, printargs, "SYS_3807" }, /* 3807 */
+ { 0, 0, printargs, "SYS_3808" }, /* 3808 */
+ { 0, 0, printargs, "SYS_3809" }, /* 3809 */
+ { 0, 0, printargs, "SYS_3810" }, /* 3810 */
+ { 0, 0, printargs, "SYS_3811" }, /* 3811 */
+ { 0, 0, printargs, "SYS_3812" }, /* 3812 */
+ { 0, 0, printargs, "SYS_3813" }, /* 3813 */
+ { 0, 0, printargs, "SYS_3814" }, /* 3814 */
+ { 0, 0, printargs, "SYS_3815" }, /* 3815 */
+ { 0, 0, printargs, "SYS_3816" }, /* 3816 */
+ { 0, 0, printargs, "SYS_3817" }, /* 3817 */
+ { 0, 0, printargs, "SYS_3818" }, /* 3818 */
+ { 0, 0, printargs, "SYS_3819" }, /* 3819 */
+ { 0, 0, printargs, "SYS_3820" }, /* 3820 */
+ { 0, 0, printargs, "SYS_3821" }, /* 3821 */
+ { 0, 0, printargs, "SYS_3822" }, /* 3822 */
+ { 0, 0, printargs, "SYS_3823" }, /* 3823 */
+ { 0, 0, printargs, "SYS_3824" }, /* 3824 */
+ { 0, 0, printargs, "SYS_3825" }, /* 3825 */
+ { 0, 0, printargs, "SYS_3826" }, /* 3826 */
+ { 0, 0, printargs, "SYS_3827" }, /* 3827 */
+ { 0, 0, printargs, "SYS_3828" }, /* 3828 */
+ { 0, 0, printargs, "SYS_3829" }, /* 3829 */
+ { 0, 0, printargs, "SYS_3830" }, /* 3830 */
+ { 0, 0, printargs, "SYS_3831" }, /* 3831 */
+ { 0, 0, printargs, "SYS_3832" }, /* 3832 */
+ { 0, 0, printargs, "SYS_3833" }, /* 3833 */
+ { 0, 0, printargs, "SYS_3834" }, /* 3834 */
+ { 0, 0, printargs, "SYS_3835" }, /* 3835 */
+ { 0, 0, printargs, "SYS_3836" }, /* 3836 */
+ { 0, 0, printargs, "SYS_3837" }, /* 3837 */
+ { 0, 0, printargs, "SYS_3838" }, /* 3838 */
+ { 0, 0, printargs, "SYS_3839" }, /* 3839 */
+ { 0, 0, printargs, "SYS_3840" }, /* 3840 */
+ { 0, 0, printargs, "SYS_3841" }, /* 3841 */
+ { 0, 0, printargs, "SYS_3842" }, /* 3842 */
+ { 0, 0, printargs, "SYS_3843" }, /* 3843 */
+ { 0, 0, printargs, "SYS_3844" }, /* 3844 */
+ { 0, 0, printargs, "SYS_3845" }, /* 3845 */
+ { 0, 0, printargs, "SYS_3846" }, /* 3846 */
+ { 0, 0, printargs, "SYS_3847" }, /* 3847 */
+ { 0, 0, printargs, "SYS_3848" }, /* 3848 */
+ { 0, 0, printargs, "SYS_3849" }, /* 3849 */
+ { 0, 0, printargs, "SYS_3850" }, /* 3850 */
+ { 0, 0, printargs, "SYS_3851" }, /* 3851 */
+ { 0, 0, printargs, "SYS_3852" }, /* 3852 */
+ { 0, 0, printargs, "SYS_3853" }, /* 3853 */
+ { 0, 0, printargs, "SYS_3854" }, /* 3854 */
+ { 0, 0, printargs, "SYS_3855" }, /* 3855 */
+ { 0, 0, printargs, "SYS_3856" }, /* 3856 */
+ { 0, 0, printargs, "SYS_3857" }, /* 3857 */
+ { 0, 0, printargs, "SYS_3858" }, /* 3858 */
+ { 0, 0, printargs, "SYS_3859" }, /* 3859 */
+ { 0, 0, printargs, "SYS_3860" }, /* 3860 */
+ { 0, 0, printargs, "SYS_3861" }, /* 3861 */
+ { 0, 0, printargs, "SYS_3862" }, /* 3862 */
+ { 0, 0, printargs, "SYS_3863" }, /* 3863 */
+ { 0, 0, printargs, "SYS_3864" }, /* 3864 */
+ { 0, 0, printargs, "SYS_3865" }, /* 3865 */
+ { 0, 0, printargs, "SYS_3866" }, /* 3866 */
+ { 0, 0, printargs, "SYS_3867" }, /* 3867 */
+ { 0, 0, printargs, "SYS_3868" }, /* 3868 */
+ { 0, 0, printargs, "SYS_3869" }, /* 3869 */
+ { 0, 0, printargs, "SYS_3870" }, /* 3870 */
+ { 0, 0, printargs, "SYS_3871" }, /* 3871 */
+ { 0, 0, printargs, "SYS_3872" }, /* 3872 */
+ { 0, 0, printargs, "SYS_3873" }, /* 3873 */
+ { 0, 0, printargs, "SYS_3874" }, /* 3874 */
+ { 0, 0, printargs, "SYS_3875" }, /* 3875 */
+ { 0, 0, printargs, "SYS_3876" }, /* 3876 */
+ { 0, 0, printargs, "SYS_3877" }, /* 3877 */
+ { 0, 0, printargs, "SYS_3878" }, /* 3878 */
+ { 0, 0, printargs, "SYS_3879" }, /* 3879 */
+ { 0, 0, printargs, "SYS_3880" }, /* 3880 */
+ { 0, 0, printargs, "SYS_3881" }, /* 3881 */
+ { 0, 0, printargs, "SYS_3882" }, /* 3882 */
+ { 0, 0, printargs, "SYS_3883" }, /* 3883 */
+ { 0, 0, printargs, "SYS_3884" }, /* 3884 */
+ { 0, 0, printargs, "SYS_3885" }, /* 3885 */
+ { 0, 0, printargs, "SYS_3886" }, /* 3886 */
+ { 0, 0, printargs, "SYS_3887" }, /* 3887 */
+ { 0, 0, printargs, "SYS_3888" }, /* 3888 */
+ { 0, 0, printargs, "SYS_3889" }, /* 3889 */
+ { 0, 0, printargs, "SYS_3890" }, /* 3890 */
+ { 0, 0, printargs, "SYS_3891" }, /* 3891 */
+ { 0, 0, printargs, "SYS_3892" }, /* 3892 */
+ { 0, 0, printargs, "SYS_3893" }, /* 3893 */
+ { 0, 0, printargs, "SYS_3894" }, /* 3894 */
+ { 0, 0, printargs, "SYS_3895" }, /* 3895 */
+ { 0, 0, printargs, "SYS_3896" }, /* 3896 */
+ { 0, 0, printargs, "SYS_3897" }, /* 3897 */
+ { 0, 0, printargs, "SYS_3898" }, /* 3898 */
+ { 0, 0, printargs, "SYS_3899" }, /* 3899 */
+ { 0, 0, printargs, "SYS_3900" }, /* 3900 */
+ { 0, 0, printargs, "SYS_3901" }, /* 3901 */
+ { 0, 0, printargs, "SYS_3902" }, /* 3902 */
+ { 0, 0, printargs, "SYS_3903" }, /* 3903 */
+ { 0, 0, printargs, "SYS_3904" }, /* 3904 */
+ { 0, 0, printargs, "SYS_3905" }, /* 3905 */
+ { 0, 0, printargs, "SYS_3906" }, /* 3906 */
+ { 0, 0, printargs, "SYS_3907" }, /* 3907 */
+ { 0, 0, printargs, "SYS_3908" }, /* 3908 */
+ { 0, 0, printargs, "SYS_3909" }, /* 3909 */
+ { 0, 0, printargs, "SYS_3910" }, /* 3910 */
+ { 0, 0, printargs, "SYS_3911" }, /* 3911 */
+ { 0, 0, printargs, "SYS_3912" }, /* 3912 */
+ { 0, 0, printargs, "SYS_3913" }, /* 3913 */
+ { 0, 0, printargs, "SYS_3914" }, /* 3914 */
+ { 0, 0, printargs, "SYS_3915" }, /* 3915 */
+ { 0, 0, printargs, "SYS_3916" }, /* 3916 */
+ { 0, 0, printargs, "SYS_3917" }, /* 3917 */
+ { 0, 0, printargs, "SYS_3918" }, /* 3918 */
+ { 0, 0, printargs, "SYS_3919" }, /* 3919 */
+ { 0, 0, printargs, "SYS_3920" }, /* 3920 */
+ { 0, 0, printargs, "SYS_3921" }, /* 3921 */
+ { 0, 0, printargs, "SYS_3922" }, /* 3922 */
+ { 0, 0, printargs, "SYS_3923" }, /* 3923 */
+ { 0, 0, printargs, "SYS_3924" }, /* 3924 */
+ { 0, 0, printargs, "SYS_3925" }, /* 3925 */
+ { 0, 0, printargs, "SYS_3926" }, /* 3926 */
+ { 0, 0, printargs, "SYS_3927" }, /* 3927 */
+ { 0, 0, printargs, "SYS_3928" }, /* 3928 */
+ { 0, 0, printargs, "SYS_3929" }, /* 3929 */
+ { 0, 0, printargs, "SYS_3930" }, /* 3930 */
+ { 0, 0, printargs, "SYS_3931" }, /* 3931 */
+ { 0, 0, printargs, "SYS_3932" }, /* 3932 */
+ { 0, 0, printargs, "SYS_3933" }, /* 3933 */
+ { 0, 0, printargs, "SYS_3934" }, /* 3934 */
+ { 0, 0, printargs, "SYS_3935" }, /* 3935 */
+ { 0, 0, printargs, "SYS_3936" }, /* 3936 */
+ { 0, 0, printargs, "SYS_3937" }, /* 3937 */
+ { 0, 0, printargs, "SYS_3938" }, /* 3938 */
+ { 0, 0, printargs, "SYS_3939" }, /* 3939 */
+ { 0, 0, printargs, "SYS_3940" }, /* 3940 */
+ { 0, 0, printargs, "SYS_3941" }, /* 3941 */
+ { 0, 0, printargs, "SYS_3942" }, /* 3942 */
+ { 0, 0, printargs, "SYS_3943" }, /* 3943 */
+ { 0, 0, printargs, "SYS_3944" }, /* 3944 */
+ { 0, 0, printargs, "SYS_3945" }, /* 3945 */
+ { 0, 0, printargs, "SYS_3946" }, /* 3946 */
+ { 0, 0, printargs, "SYS_3947" }, /* 3947 */
+ { 0, 0, printargs, "SYS_3948" }, /* 3948 */
+ { 0, 0, printargs, "SYS_3949" }, /* 3949 */
+ { 0, 0, printargs, "SYS_3950" }, /* 3950 */
+ { 0, 0, printargs, "SYS_3951" }, /* 3951 */
+ { 0, 0, printargs, "SYS_3952" }, /* 3952 */
+ { 0, 0, printargs, "SYS_3953" }, /* 3953 */
+ { 0, 0, printargs, "SYS_3954" }, /* 3954 */
+ { 0, 0, printargs, "SYS_3955" }, /* 3955 */
+ { 0, 0, printargs, "SYS_3956" }, /* 3956 */
+ { 0, 0, printargs, "SYS_3957" }, /* 3957 */
+ { 0, 0, printargs, "SYS_3958" }, /* 3958 */
+ { 0, 0, printargs, "SYS_3959" }, /* 3959 */
+ { 0, 0, printargs, "SYS_3960" }, /* 3960 */
+ { 0, 0, printargs, "SYS_3961" }, /* 3961 */
+ { 0, 0, printargs, "SYS_3962" }, /* 3962 */
+ { 0, 0, printargs, "SYS_3963" }, /* 3963 */
+ { 0, 0, printargs, "SYS_3964" }, /* 3964 */
+ { 0, 0, printargs, "SYS_3965" }, /* 3965 */
+ { 0, 0, printargs, "SYS_3966" }, /* 3966 */
+ { 0, 0, printargs, "SYS_3967" }, /* 3967 */
+ { 0, 0, printargs, "SYS_3968" }, /* 3968 */
+ { 0, 0, printargs, "SYS_3969" }, /* 3969 */
+ { 0, 0, printargs, "SYS_3970" }, /* 3970 */
+ { 0, 0, printargs, "SYS_3971" }, /* 3971 */
+ { 0, 0, printargs, "SYS_3972" }, /* 3972 */
+ { 0, 0, printargs, "SYS_3973" }, /* 3973 */
+ { 0, 0, printargs, "SYS_3974" }, /* 3974 */
+ { 0, 0, printargs, "SYS_3975" }, /* 3975 */
+ { 0, 0, printargs, "SYS_3976" }, /* 3976 */
+ { 0, 0, printargs, "SYS_3977" }, /* 3977 */
+ { 0, 0, printargs, "SYS_3978" }, /* 3978 */
+ { 0, 0, printargs, "SYS_3979" }, /* 3979 */
+ { 0, 0, printargs, "SYS_3980" }, /* 3980 */
+ { 0, 0, printargs, "SYS_3981" }, /* 3981 */
+ { 0, 0, printargs, "SYS_3982" }, /* 3982 */
+ { 0, 0, printargs, "SYS_3983" }, /* 3983 */
+ { 0, 0, printargs, "SYS_3984" }, /* 3984 */
+ { 0, 0, printargs, "SYS_3985" }, /* 3985 */
+ { 0, 0, printargs, "SYS_3986" }, /* 3986 */
+ { 0, 0, printargs, "SYS_3987" }, /* 3987 */
+ { 0, 0, printargs, "SYS_3988" }, /* 3988 */
+ { 0, 0, printargs, "SYS_3989" }, /* 3989 */
+ { 0, 0, printargs, "SYS_3990" }, /* 3990 */
+ { 0, 0, printargs, "SYS_3991" }, /* 3991 */
+ { 0, 0, printargs, "SYS_3992" }, /* 3992 */
+ { 0, 0, printargs, "SYS_3993" }, /* 3993 */
+ { 0, 0, printargs, "SYS_3994" }, /* 3994 */
+ { 0, 0, printargs, "SYS_3995" }, /* 3995 */
+ { 0, 0, printargs, "SYS_3996" }, /* 3996 */
+ { 0, 0, printargs, "SYS_3997" }, /* 3997 */
+ { 0, 0, printargs, "SYS_3998" }, /* 3998 */
+ { 0, 0, printargs, "SYS_3999" }, /* 3999 */ /* end of POSIX */
+ { 8, 0, printargs, "syscall" }, /* 4000 */ /* start of Linux o32 */
+ { 1, TP, sys_exit, "exit" }, /* 4001 */
+ { 0, TP, sys_fork, "fork" }, /* 4002 */
+ { 3, TF, sys_read, "read" }, /* 4003 */
+ { 3, TF, sys_write, "write" }, /* 4004 */
+ { 3, TF, sys_open, "open" }, /* 4005 */
+ { 1, 0, sys_close, "close" }, /* 4006 */
+ { 3, TP, sys_waitpid, "waitpid" }, /* 4007 */
+ { 2, 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, 0, 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, 0, 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, 0, sys_dup, "dup" }, /* 4041 */
+ { 1, 0, 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, 0, sys_getgid, "getgid" }, /* 4047 */
+ { 1, TS, sys_signal, "signal" }, /* 4048 */
+ { 0, 0, sys_geteuid, "geteuid" }, /* 4049 */
+ { 0, 0, sys_getegid, "getegid" }, /* 4050 */
+ { 1, TF, sys_acct, "acct" }, /* 4051 */
+ { 2, TF, sys_umount2, "umount" }, /* 4052 */
+ { 0, 0, sys_lock, "lock" }, /* 4053 */
+ { 3, 0, sys_ioctl, "ioctl" }, /* 4054 */
+ { 3, 0, 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, 0, 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, "siggetmask" }, /* 4068 */
+ { 1, TS, sys_sigsetmask, "sigsetmask" }, /* 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 */
+ { 1, TF, sys_swapon, "swapon" }, /* 4087 */
+ { 3, 0, sys_reboot, "reboot" }, /* 4088 */
+ { 3, 0, sys_readdir, "readdir" }, /* 4089 */
+ { 6, 0, sys_mmap, "old_mmap" }, /* 4090 */
+ { 2, 0, sys_munmap, "munmap" }, /* 4091 */
+ { 2, TF, sys_truncate, "truncate" }, /* 4092 */
+ { 2, 0, sys_ftruncate, "ftruncate" }, /* 4093 */
+ { 2, 0, sys_fchmod, "fchmod" }, /* 4094 */
+ { 3, 0, 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, TF, sys_fstatfs, "fstatfs" }, /* 4100 */
+ { 0, 0, sys_ioperm, "ioperm" }, /* 4101 */
+ { 2, 0, 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, TF, 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, 0, sys_swapoff, "swapoff" }, /* 4115 */
+ { 1, 0, sys_sysinfo, "sysinfo" }, /* 4116 */
+ { 6, 0, sys_ipc, "ipc" }, /* 4117 */
+ { 1, 0, sys_fsync, "fsync" }, /* 4118 */
+ { 1, 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 */
+ { 1, 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, 0, sys_setfsuid, "setfsuid" }, /* 4138 */
+ { 1, 0, sys_setfsgid, "setfsgid" }, /* 4139 */
+ { 5, TF, sys_llseek, "_llseek" }, /* 4140 */
+ { 3, 0, sys_getdents, "getdents" }, /* 4141 */
+ { 5, 0, sys_select, "_newselect" }, /* 4142 */
+ { 2, 0, sys_flock, "flock" }, /* 4143 */
+ { 3, 0, sys_msync, "msync" }, /* 4144 */
+ { 3, 0, sys_readv, "readv" }, /* 4145 */
+ { 3, 0, 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, 0, 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 */
+ { 4, 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, 0, sys_poll, "poll" }, /* 4188 */
+ { 3, 0, printargs, "nfsservctl" }, /* 4189 */
+ { 3, 0, sys_setresgid, "setresgid" }, /* 4190 */
+ { 3, 0, sys_getresgid, "getresgid" }, /* 4191 */
+ { 5, 0, printargs, "prctl" }, /* 4192 */
+ { 1, TS, printargs, "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, TF, sys_pread, "pread" }, /* 4200 */
+ { 6, TF, 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, TF, sys_sendfile, "sendfile" }, /* 4207 */
+ { 0, 0, printargs, "SYS_4208" }, /* 4208 */
+ { 0, 0, printargs, "SYS_4209" }, /* 4209 */
+ { 6, 0, sys_mmap, "mmap" }, /* 4210 */
+ { 4, TF, sys_truncate64, "truncate64" }, /* 4211 */
+ { 4, TF, sys_ftruncate64, "ftruncate64" }, /* 4212 */
+ { 2, TF, printargs, "stat64" }, /* 4213 */
+ { 2, TF, sys_lstat64, "lstat64" }, /* 4214 */
+ { 2, TF, sys_fstat64, "fstat64" }, /* 4215 */
+ { 2, TF, sys_pivotroot, "pivot_root" }, /* 4216 */
+ { 3, 0, printargs, "mincore" }, /* 4217 */
+ { 3, 0, sys_madvise, "madvise" }, /* 4218 */
+ { 3, TF, sys_getdents64, "getdents64" }, /* 4219 */
+ { 3, 0, sys_fcntl, "fcntl64" }, /* 4220 */
+ { 0, 0, printargs, "SYS_4221" }, /* 4221 */
+ { 0, 0, printargs, "gettid" }, /* 4222 */
+ { 5, 0, sys_readahead, "readahead" }, /* 4223 */
+ { 5, TF, sys_setxattr, "setxattr" }, /* 4224 */
+ { 5, TF, sys_setxattr, "lsetxattr" }, /* 4225 */
+ { 5, 0, sys_fsetxattr, "fsetxattr" }, /* 4226 */
+ { 4, TF, sys_getxattr, "getxattr" }, /* 4227 */
+ { 4, TF, sys_getxattr, "lgetxattr" }, /* 4228 */
+ { 4, 0, sys_fgetxattr, "fgetxattr" }, /* 4229 */
+ { 3, TF, sys_listxattr, "listxattr" }, /* 4230 */
+ { 3, TF, sys_listxattr, "llistxattr" }, /* 4231 */
+ { 3, 0, sys_flistxattr, "flistxattr" }, /* 4232 */
+ { 2, TF, sys_removexattr, "removexattr" }, /* 4233 */
+ { 2, TF, sys_removexattr, "lremovexattr" }, /* 4234 */
+ { 2, 0, sys_fremovexattr, "fremovexattr" }, /* 4235 */
+ { 2, TS, sys_kill, "tkill" }, /* 4236 */
+ { 5, TF, 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 */
+ { 3, 0, printargs, "lookup_dcookie"}, /* 4247 */
+ { 1, 0, sys_epoll_create, "epoll_create" }, /* 4248 */
+ { 4, 0, sys_epoll_ctl, "epoll_ctl" }, /* 4249 */
+ { 3, 0, sys_epoll_wait, "epoll_wait" }, /* 4250 */
+ { 5, 0, sys_remap_file_pages, "remap_file_pages"}, /* 4251 */
+ { 1, 0, printargs, "set_tid_address"}, /* 4252 */
+ { 0, 0, printargs, "restart_syscall"}, /* 4253 */
+ { 7, TF, sys_fadvise64_64, "fadvise64_64" }, /* 4254 */
+ { 3, TF, sys_statfs64, "statfs64" }, /* 4255 */
+ { 2, TF, 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, printargs, "SYS_4269" }, /* 4269 */
+ { 0, 0, printargs, "SYS_4270" }, /* 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, printargs, "SYS_4277" }, /* 4277 */
+ { 5, TP, sys_waitid, "waitid" }, /* 4278 */
+ { 0, 0, printargs, "SYS_4279" }, /* 4279 */
+ { 5, 0, printargs, "add_key" }, /* 4280 */
+ { 4, 0, printargs, "request_key" }, /* 4281 */
+ { 5, 0, printargs, "keyctl" }, /* 4282 */
+ { 0, 0, printargs, "SYS_4283" }, /* 4283 */
+ { 0, 0, printargs, "SYS_4284" }, /* 4284 */
+ { 0, 0, printargs, "SYS_4285" }, /* 4285 */
+ { 0, 0, printargs, "SYS_4286" }, /* 4286 */
+ { 0, 0, printargs, "SYS_4287" }, /* 4287 */
+ { 0, 0, printargs, "SYS_4288" }, /* 4288 */
+ { 0, 0, printargs, "SYS_4289" }, /* 4289 */
+ { 0, 0, printargs, "SYS_4290" }, /* 4290 */
+ { 0, 0, printargs, "SYS_4291" }, /* 4291 */
+ { 0, 0, printargs, "SYS_4292" }, /* 4292 */
+ { 0, 0, printargs, "SYS_4293" }, /* 4293 */
+ { 0, 0, printargs, "SYS_4294" }, /* 4294 */
+ { 0, 0, printargs, "SYS_4295" }, /* 4295 */
+ { 0, 0, printargs, "SYS_4296" }, /* 4296 */
+ { 0, 0, printargs, "SYS_4297" }, /* 4297 */
+ { 0, 0, printargs, "SYS_4298" }, /* 4298 */
+ { 0, 0, printargs, "SYS_4299" }, /* 4299 */
+ { 0, 0, printargs, "SYS_4300" }, /* 4300 */
+ { 0, 0, printargs, "SYS_4301" }, /* 4301 */
+ { 0, 0, printargs, "SYS_4302" }, /* 4302 */
+ { 0, 0, printargs, "SYS_4303" }, /* 4303 */
+ { 0, 0, printargs, "SYS_4304" }, /* 4304 */
+ { 0, 0, printargs, "SYS_4305" }, /* 4305 */
+ { 0, 0, printargs, "SYS_4306" }, /* 4306 */
+ { 0, 0, printargs, "SYS_4307" }, /* 4307 */
+ { 0, 0, printargs, "SYS_4308" }, /* 4308 */
+ { 0, 0, printargs, "SYS_4309" }, /* 4309 */
+ { 0, 0, printargs, "SYS_4310" }, /* 4310 */
+ { 0, 0, printargs, "SYS_4311" }, /* 4311 */
+ { 0, 0, printargs, "SYS_4312" }, /* 4312 */
+ { 0, 0, printargs, "SYS_4313" }, /* 4313 */
+ { 0, 0, printargs, "SYS_4314" }, /* 4314 */
+ { 0, 0, printargs, "SYS_4315" }, /* 4315 */
+ { 0, 0, printargs, "SYS_4316" }, /* 4316 */
+ { 0, 0, printargs, "SYS_4317" }, /* 4317 */
+ { 0, 0, printargs, "SYS_4318" }, /* 4318 */
+ { 0, 0, printargs, "SYS_4319" }, /* 4319 */
+ { 0, 0, printargs, "SYS_4320" }, /* 4320 */
+ { 0, 0, printargs, "SYS_4321" }, /* 4321 */
+ { 0, 0, printargs, "SYS_4322" }, /* 4322 */
+ { 0, 0, printargs, "SYS_4323" }, /* 4323 */
+ { 0, 0, printargs, "SYS_4324" }, /* 4324 */
+ { 0, 0, printargs, "SYS_4325" }, /* 4325 */
+ { 0, 0, printargs, "SYS_4326" }, /* 4326 */
+ { 0, 0, printargs, "SYS_4327" }, /* 4327 */
+ { 0, 0, printargs, "SYS_4328" }, /* 4328 */
+ { 0, 0, printargs, "SYS_4329" }, /* 4329 */
+ { 0, 0, printargs, "SYS_4330" }, /* 4330 */
+ { 0, 0, printargs, "SYS_4331" }, /* 4331 */
+ { 0, 0, printargs, "SYS_4332" }, /* 4332 */
+ { 0, 0, printargs, "SYS_4333" }, /* 4333 */
+ { 0, 0, printargs, "SYS_4334" }, /* 4334 */
+ { 0, 0, printargs, "SYS_4335" }, /* 4335 */
+ { 0, 0, printargs, "SYS_4336" }, /* 4336 */
+ { 0, 0, printargs, "SYS_4337" }, /* 4337 */
+ { 0, 0, printargs, "SYS_4338" }, /* 4338 */
+ { 0, 0, printargs, "SYS_4339" }, /* 4339 */
+ { 0, 0, printargs, "SYS_4340" }, /* 4340 */
+ { 0, 0, printargs, "SYS_4341" }, /* 4341 */
+ { 0, 0, printargs, "SYS_4342" }, /* 4342 */
+ { 0, 0, printargs, "SYS_4343" }, /* 4343 */
+ { 0, 0, printargs, "SYS_4344" }, /* 4344 */
+ { 0, 0, printargs, "SYS_4345" }, /* 4345 */
+ { 0, 0, printargs, "SYS_4346" }, /* 4346 */
+ { 0, 0, printargs, "SYS_4347" }, /* 4347 */
+ { 0, 0, printargs, "SYS_4348" }, /* 4348 */
+ { 0, 0, printargs, "SYS_4349" }, /* 4349 */
+ { 0, 0, printargs, "SYS_4350" }, /* 4350 */
+ { 0, 0, printargs, "SYS_4351" }, /* 4351 */
+ { 0, 0, printargs, "SYS_4352" }, /* 4352 */
+ { 0, 0, printargs, "SYS_4353" }, /* 4353 */
+ { 0, 0, printargs, "SYS_4354" }, /* 4354 */
+ { 0, 0, printargs, "SYS_4355" }, /* 4355 */
+ { 0, 0, printargs, "SYS_4356" }, /* 4356 */
+ { 0, 0, printargs, "SYS_4357" }, /* 4357 */
+ { 0, 0, printargs, "SYS_4358" }, /* 4358 */
+ { 0, 0, printargs, "SYS_4359" }, /* 4359 */
+ { 0, 0, printargs, "SYS_4360" }, /* 4360 */
+ { 0, 0, printargs, "SYS_4361" }, /* 4361 */
+ { 0, 0, printargs, "SYS_4362" }, /* 4362 */
+ { 0, 0, printargs, "SYS_4363" }, /* 4363 */
+ { 0, 0, printargs, "SYS_4364" }, /* 4364 */
+ { 0, 0, printargs, "SYS_4365" }, /* 4365 */
+ { 0, 0, printargs, "SYS_4366" }, /* 4366 */
+ { 0, 0, printargs, "SYS_4367" }, /* 4367 */
+ { 0, 0, printargs, "SYS_4368" }, /* 4368 */
+ { 0, 0, printargs, "SYS_4369" }, /* 4369 */
+ { 0, 0, printargs, "SYS_4370" }, /* 4370 */
+ { 0, 0, printargs, "SYS_4371" }, /* 4371 */
+ { 0, 0, printargs, "SYS_4372" }, /* 4372 */
+ { 0, 0, printargs, "SYS_4373" }, /* 4373 */
+ { 0, 0, printargs, "SYS_4374" }, /* 4374 */
+ { 0, 0, printargs, "SYS_4375" }, /* 4375 */
+ { 0, 0, printargs, "SYS_4376" }, /* 4376 */
+ { 0, 0, printargs, "SYS_4377" }, /* 4377 */
+ { 0, 0, printargs, "SYS_4378" }, /* 4378 */
+ { 0, 0, printargs, "SYS_4379" }, /* 4379 */
+ { 0, 0, printargs, "SYS_4380" }, /* 4380 */
+ { 0, 0, printargs, "SYS_4381" }, /* 4381 */
+ { 0, 0, printargs, "SYS_4382" }, /* 4382 */
+ { 0, 0, printargs, "SYS_4383" }, /* 4383 */
+ { 0, 0, printargs, "SYS_4384" }, /* 4384 */
+ { 0, 0, printargs, "SYS_4385" }, /* 4385 */
+ { 0, 0, printargs, "SYS_4386" }, /* 4386 */
+ { 0, 0, printargs, "SYS_4387" }, /* 4387 */
+ { 0, 0, printargs, "SYS_4388" }, /* 4388 */
+ { 0, 0, printargs, "SYS_4389" }, /* 4389 */
+ { 0, 0, printargs, "SYS_4390" }, /* 4390 */
+ { 0, 0, printargs, "SYS_4391" }, /* 4391 */
+ { 0, 0, printargs, "SYS_4392" }, /* 4392 */
+ { 0, 0, printargs, "SYS_4393" }, /* 4393 */
+ { 0, 0, printargs, "SYS_4394" }, /* 4394 */
+ { 0, 0, printargs, "SYS_4395" }, /* 4395 */
+ { 0, 0, printargs, "SYS_4396" }, /* 4396 */
+ { 0, 0, printargs, "SYS_4397" }, /* 4397 */
+ { 0, 0, printargs, "SYS_4398" }, /* 4398 */
+ { 0, 0, printargs, "SYS_4399" }, /* 4399 */
+ { 0, 0, printargs, "SYS_4400" }, /* 4400 */
+ { 0, 0, printargs, "SYS_4401" }, /* 4401 */
+ { 0, 0, printargs, "SYS_4402" }, /* 4402 */
+ { 0, 0, printargs, "SYS_4403" }, /* 4403 */
+ { 0, 0, printargs, "SYS_4404" }, /* 4404 */
+ { 0, 0, printargs, "SYS_4405" }, /* 4405 */
+ { 0, 0, printargs, "SYS_4406" }, /* 4406 */
+ { 0, 0, printargs, "SYS_4407" }, /* 4407 */
+ { 0, 0, printargs, "SYS_4408" }, /* 4408 */
+ { 0, 0, printargs, "SYS_4409" }, /* 4409 */
+ { 0, 0, printargs, "SYS_4410" }, /* 4410 */
+ { 0, 0, printargs, "SYS_4411" }, /* 4411 */
+ { 0, 0, printargs, "SYS_4412" }, /* 4412 */
+ { 0, 0, printargs, "SYS_4413" }, /* 4413 */
+ { 0, 0, printargs, "SYS_4414" }, /* 4414 */
+ { 0, 0, printargs, "SYS_4415" }, /* 4415 */
+ { 0, 0, printargs, "SYS_4416" }, /* 4416 */
+ { 0, 0, printargs, "SYS_4417" }, /* 4417 */
+ { 0, 0, printargs, "SYS_4418" }, /* 4418 */
+ { 0, 0, printargs, "SYS_4419" }, /* 4419 */
+ { 0, 0, printargs, "SYS_4420" }, /* 4420 */
+ { 0, 0, printargs, "SYS_4421" }, /* 4421 */
+ { 0, 0, printargs, "SYS_4422" }, /* 4422 */
+ { 0, 0, printargs, "SYS_4423" }, /* 4423 */
+ { 0, 0, printargs, "SYS_4424" }, /* 4424 */
+ { 0, 0, printargs, "SYS_4425" }, /* 4425 */
+ { 0, 0, printargs, "SYS_4426" }, /* 4426 */
+ { 0, 0, printargs, "SYS_4427" }, /* 4427 */
+ { 0, 0, printargs, "SYS_4428" }, /* 4428 */
+ { 0, 0, printargs, "SYS_4429" }, /* 4429 */
+ { 0, 0, printargs, "SYS_4430" }, /* 4430 */
+ { 0, 0, printargs, "SYS_4431" }, /* 4431 */
+ { 0, 0, printargs, "SYS_4432" }, /* 4432 */
+ { 0, 0, printargs, "SYS_4433" }, /* 4433 */
+ { 0, 0, printargs, "SYS_4434" }, /* 4434 */
+ { 0, 0, printargs, "SYS_4435" }, /* 4435 */
+ { 0, 0, printargs, "SYS_4436" }, /* 4436 */
+ { 0, 0, printargs, "SYS_4437" }, /* 4437 */
+ { 0, 0, printargs, "SYS_4438" }, /* 4438 */
+ { 0, 0, printargs, "SYS_4439" }, /* 4439 */
+ { 0, 0, printargs, "SYS_4440" }, /* 4440 */
+ { 0, 0, printargs, "SYS_4441" }, /* 4441 */
+ { 0, 0, printargs, "SYS_4442" }, /* 4442 */
+ { 0, 0, printargs, "SYS_4443" }, /* 4443 */
+ { 0, 0, printargs, "SYS_4444" }, /* 4444 */
+ { 0, 0, printargs, "SYS_4445" }, /* 4445 */
+ { 0, 0, printargs, "SYS_4446" }, /* 4446 */
+ { 0, 0, printargs, "SYS_4447" }, /* 4447 */
+ { 0, 0, printargs, "SYS_4448" }, /* 4448 */
+ { 0, 0, printargs, "SYS_4449" }, /* 4449 */
+ { 0, 0, printargs, "SYS_4450" }, /* 4450 */
+ { 0, 0, printargs, "SYS_4451" }, /* 4451 */
+ { 0, 0, printargs, "SYS_4452" }, /* 4452 */
+ { 0, 0, printargs, "SYS_4453" }, /* 4453 */
+ { 0, 0, printargs, "SYS_4454" }, /* 4454 */
+ { 0, 0, printargs, "SYS_4455" }, /* 4455 */
+ { 0, 0, printargs, "SYS_4456" }, /* 4456 */
+ { 0, 0, printargs, "SYS_4457" }, /* 4457 */
+ { 0, 0, printargs, "SYS_4458" }, /* 4458 */
+ { 0, 0, printargs, "SYS_4459" }, /* 4459 */
+ { 0, 0, printargs, "SYS_4460" }, /* 4460 */
+ { 0, 0, printargs, "SYS_4461" }, /* 4461 */
+ { 0, 0, printargs, "SYS_4462" }, /* 4462 */
+ { 0, 0, printargs, "SYS_4463" }, /* 4463 */
+ { 0, 0, printargs, "SYS_4464" }, /* 4464 */
+ { 0, 0, printargs, "SYS_4465" }, /* 4465 */
+ { 0, 0, printargs, "SYS_4466" }, /* 4466 */
+ { 0, 0, printargs, "SYS_4467" }, /* 4467 */
+ { 0, 0, printargs, "SYS_4468" }, /* 4468 */
+ { 0, 0, printargs, "SYS_4469" }, /* 4469 */
+ { 0, 0, printargs, "SYS_4470" }, /* 4470 */
+ { 0, 0, printargs, "SYS_4471" }, /* 4471 */
+ { 0, 0, printargs, "SYS_4472" }, /* 4472 */
+ { 0, 0, printargs, "SYS_4473" }, /* 4473 */
+ { 0, 0, printargs, "SYS_4474" }, /* 4474 */
+ { 0, 0, printargs, "SYS_4475" }, /* 4475 */
+ { 0, 0, printargs, "SYS_4476" }, /* 4476 */
+ { 0, 0, printargs, "SYS_4477" }, /* 4477 */
+ { 0, 0, printargs, "SYS_4478" }, /* 4478 */
+ { 0, 0, printargs, "SYS_4479" }, /* 4479 */
+ { 0, 0, printargs, "SYS_4480" }, /* 4480 */
+ { 0, 0, printargs, "SYS_4481" }, /* 4481 */
+ { 0, 0, printargs, "SYS_4482" }, /* 4482 */
+ { 0, 0, printargs, "SYS_4483" }, /* 4483 */
+ { 0, 0, printargs, "SYS_4484" }, /* 4484 */
+ { 0, 0, printargs, "SYS_4485" }, /* 4485 */
+ { 0, 0, printargs, "SYS_4486" }, /* 4486 */
+ { 0, 0, printargs, "SYS_4487" }, /* 4487 */
+ { 0, 0, printargs, "SYS_4488" }, /* 4488 */
+ { 0, 0, printargs, "SYS_4489" }, /* 4489 */
+ { 0, 0, printargs, "SYS_4490" }, /* 4490 */
+ { 0, 0, printargs, "SYS_4491" }, /* 4491 */
+ { 0, 0, printargs, "SYS_4492" }, /* 4492 */
+ { 0, 0, printargs, "SYS_4493" }, /* 4493 */
+ { 0, 0, printargs, "SYS_4494" }, /* 4494 */
+ { 0, 0, printargs, "SYS_4495" }, /* 4495 */
+ { 0, 0, printargs, "SYS_4496" }, /* 4496 */
+ { 0, 0, printargs, "SYS_4497" }, /* 4497 */
+ { 0, 0, printargs, "SYS_4498" }, /* 4498 */
+ { 0, 0, printargs, "SYS_4499" }, /* 4499 */
+ { 0, 0, printargs, "SYS_4500" }, /* 4500 */
+ { 0, 0, printargs, "SYS_4501" }, /* 4501 */
+ { 0, 0, printargs, "SYS_4502" }, /* 4502 */
+ { 0, 0, printargs, "SYS_4503" }, /* 4503 */
+ { 0, 0, printargs, "SYS_4504" }, /* 4504 */
+ { 0, 0, printargs, "SYS_4505" }, /* 4505 */
+ { 0, 0, printargs, "SYS_4506" }, /* 4506 */
+ { 0, 0, printargs, "SYS_4507" }, /* 4507 */
+ { 0, 0, printargs, "SYS_4508" }, /* 4508 */
+ { 0, 0, printargs, "SYS_4509" }, /* 4509 */
+ { 0, 0, printargs, "SYS_4510" }, /* 4510 */
+ { 0, 0, printargs, "SYS_4511" }, /* 4511 */
+ { 0, 0, printargs, "SYS_4512" }, /* 4512 */
+ { 0, 0, printargs, "SYS_4513" }, /* 4513 */
+ { 0, 0, printargs, "SYS_4514" }, /* 4514 */
+ { 0, 0, printargs, "SYS_4515" }, /* 4515 */
+ { 0, 0, printargs, "SYS_4516" }, /* 4516 */
+ { 0, 0, printargs, "SYS_4517" }, /* 4517 */
+ { 0, 0, printargs, "SYS_4518" }, /* 4518 */
+ { 0, 0, printargs, "SYS_4519" }, /* 4519 */
+ { 0, 0, printargs, "SYS_4520" }, /* 4520 */
+ { 0, 0, printargs, "SYS_4521" }, /* 4521 */
+ { 0, 0, printargs, "SYS_4522" }, /* 4522 */
+ { 0, 0, printargs, "SYS_4523" }, /* 4523 */
+ { 0, 0, printargs, "SYS_4524" }, /* 4524 */
+ { 0, 0, printargs, "SYS_4525" }, /* 4525 */
+ { 0, 0, printargs, "SYS_4526" }, /* 4526 */
+ { 0, 0, printargs, "SYS_4527" }, /* 4527 */
+ { 0, 0, printargs, "SYS_4528" }, /* 4528 */
+ { 0, 0, printargs, "SYS_4529" }, /* 4529 */
+ { 0, 0, printargs, "SYS_4530" }, /* 4530 */
+ { 0, 0, printargs, "SYS_4531" }, /* 4531 */
+ { 0, 0, printargs, "SYS_4532" }, /* 4532 */
+ { 0, 0, printargs, "SYS_4533" }, /* 4533 */
+ { 0, 0, printargs, "SYS_4534" }, /* 4534 */
+ { 0, 0, printargs, "SYS_4535" }, /* 4535 */
+ { 0, 0, printargs, "SYS_4536" }, /* 4536 */
+ { 0, 0, printargs, "SYS_4537" }, /* 4537 */
+ { 0, 0, printargs, "SYS_4538" }, /* 4538 */
+ { 0, 0, printargs, "SYS_4539" }, /* 4539 */
+ { 0, 0, printargs, "SYS_4540" }, /* 4540 */
+ { 0, 0, printargs, "SYS_4541" }, /* 4541 */
+ { 0, 0, printargs, "SYS_4542" }, /* 4542 */
+ { 0, 0, printargs, "SYS_4543" }, /* 4543 */
+ { 0, 0, printargs, "SYS_4544" }, /* 4544 */
+ { 0, 0, printargs, "SYS_4545" }, /* 4545 */
+ { 0, 0, printargs, "SYS_4546" }, /* 4546 */
+ { 0, 0, printargs, "SYS_4547" }, /* 4547 */
+ { 0, 0, printargs, "SYS_4548" }, /* 4548 */
+ { 0, 0, printargs, "SYS_4549" }, /* 4549 */
+ { 0, 0, printargs, "SYS_4550" }, /* 4550 */
+ { 0, 0, printargs, "SYS_4551" }, /* 4551 */
+ { 0, 0, printargs, "SYS_4552" }, /* 4552 */
+ { 0, 0, printargs, "SYS_4553" }, /* 4553 */
+ { 0, 0, printargs, "SYS_4554" }, /* 4554 */
+ { 0, 0, printargs, "SYS_4555" }, /* 4555 */
+ { 0, 0, printargs, "SYS_4556" }, /* 4556 */
+ { 0, 0, printargs, "SYS_4557" }, /* 4557 */
+ { 0, 0, printargs, "SYS_4558" }, /* 4558 */
+ { 0, 0, printargs, "SYS_4559" }, /* 4559 */
+ { 0, 0, printargs, "SYS_4560" }, /* 4560 */
+ { 0, 0, printargs, "SYS_4561" }, /* 4561 */
+ { 0, 0, printargs, "SYS_4562" }, /* 4562 */
+ { 0, 0, printargs, "SYS_4563" }, /* 4563 */
+ { 0, 0, printargs, "SYS_4564" }, /* 4564 */
+ { 0, 0, printargs, "SYS_4565" }, /* 4565 */
+ { 0, 0, printargs, "SYS_4566" }, /* 4566 */
+ { 0, 0, printargs, "SYS_4567" }, /* 4567 */
+ { 0, 0, printargs, "SYS_4568" }, /* 4568 */
+ { 0, 0, printargs, "SYS_4569" }, /* 4569 */
+ { 0, 0, printargs, "SYS_4570" }, /* 4570 */
+ { 0, 0, printargs, "SYS_4571" }, /* 4571 */
+ { 0, 0, printargs, "SYS_4572" }, /* 4572 */
+ { 0, 0, printargs, "SYS_4573" }, /* 4573 */
+ { 0, 0, printargs, "SYS_4574" }, /* 4574 */
+ { 0, 0, printargs, "SYS_4575" }, /* 4575 */
+ { 0, 0, printargs, "SYS_4576" }, /* 4576 */
+ { 0, 0, printargs, "SYS_4577" }, /* 4577 */
+ { 0, 0, printargs, "SYS_4578" }, /* 4578 */
+ { 0, 0, printargs, "SYS_4579" }, /* 4579 */
+ { 0, 0, printargs, "SYS_4580" }, /* 4580 */
+ { 0, 0, printargs, "SYS_4581" }, /* 4581 */
+ { 0, 0, printargs, "SYS_4582" }, /* 4582 */
+ { 0, 0, printargs, "SYS_4583" }, /* 4583 */
+ { 0, 0, printargs, "SYS_4584" }, /* 4584 */
+ { 0, 0, printargs, "SYS_4585" }, /* 4585 */
+ { 0, 0, printargs, "SYS_4586" }, /* 4586 */
+ { 0, 0, printargs, "SYS_4587" }, /* 4587 */
+ { 0, 0, printargs, "SYS_4588" }, /* 4588 */
+ { 0, 0, printargs, "SYS_4589" }, /* 4589 */
+ { 0, 0, printargs, "SYS_4590" }, /* 4590 */
+ { 0, 0, printargs, "SYS_4591" }, /* 4591 */
+ { 0, 0, printargs, "SYS_4592" }, /* 4592 */
+ { 0, 0, printargs, "SYS_4593" }, /* 4593 */
+ { 0, 0, printargs, "SYS_4594" }, /* 4594 */
+ { 0, 0, printargs, "SYS_4595" }, /* 4595 */
+ { 0, 0, printargs, "SYS_4596" }, /* 4596 */
+ { 0, 0, printargs, "SYS_4597" }, /* 4597 */
+ { 0, 0, printargs, "SYS_4598" }, /* 4598 */
+ { 0, 0, printargs, "SYS_4599" }, /* 4599 */
+ { 0, 0, printargs, "SYS_4600" }, /* 4600 */
+ { 0, 0, printargs, "SYS_4601" }, /* 4601 */
+ { 0, 0, printargs, "SYS_4602" }, /* 4602 */
+ { 0, 0, printargs, "SYS_4603" }, /* 4603 */
+ { 0, 0, printargs, "SYS_4604" }, /* 4604 */
+ { 0, 0, printargs, "SYS_4605" }, /* 4605 */
+ { 0, 0, printargs, "SYS_4606" }, /* 4606 */
+ { 0, 0, printargs, "SYS_4607" }, /* 4607 */
+ { 0, 0, printargs, "SYS_4608" }, /* 4608 */
+ { 0, 0, printargs, "SYS_4609" }, /* 4609 */
+ { 0, 0, printargs, "SYS_4610" }, /* 4610 */
+ { 0, 0, printargs, "SYS_4611" }, /* 4611 */
+ { 0, 0, printargs, "SYS_4612" }, /* 4612 */
+ { 0, 0, printargs, "SYS_4613" }, /* 4613 */
+ { 0, 0, printargs, "SYS_4614" }, /* 4614 */
+ { 0, 0, printargs, "SYS_4615" }, /* 4615 */
+ { 0, 0, printargs, "SYS_4616" }, /* 4616 */
+ { 0, 0, printargs, "SYS_4617" }, /* 4617 */
+ { 0, 0, printargs, "SYS_4618" }, /* 4618 */
+ { 0, 0, printargs, "SYS_4619" }, /* 4619 */
+ { 0, 0, printargs, "SYS_4620" }, /* 4620 */
+ { 0, 0, printargs, "SYS_4621" }, /* 4621 */
+ { 0, 0, printargs, "SYS_4622" }, /* 4622 */
+ { 0, 0, printargs, "SYS_4623" }, /* 4623 */
+ { 0, 0, printargs, "SYS_4624" }, /* 4624 */
+ { 0, 0, printargs, "SYS_4625" }, /* 4625 */
+ { 0, 0, printargs, "SYS_4626" }, /* 4626 */
+ { 0, 0, printargs, "SYS_4627" }, /* 4627 */
+ { 0, 0, printargs, "SYS_4628" }, /* 4628 */
+ { 0, 0, printargs, "SYS_4629" }, /* 4629 */
+ { 0, 0, printargs, "SYS_4630" }, /* 4630 */
+ { 0, 0, printargs, "SYS_4631" }, /* 4631 */
+ { 0, 0, printargs, "SYS_4632" }, /* 4632 */
+ { 0, 0, printargs, "SYS_4633" }, /* 4633 */
+ { 0, 0, printargs, "SYS_4634" }, /* 4634 */
+ { 0, 0, printargs, "SYS_4635" }, /* 4635 */
+ { 0, 0, printargs, "SYS_4636" }, /* 4636 */
+ { 0, 0, printargs, "SYS_4637" }, /* 4637 */
+ { 0, 0, printargs, "SYS_4638" }, /* 4638 */
+ { 0, 0, printargs, "SYS_4639" }, /* 4639 */
+ { 0, 0, printargs, "SYS_4640" }, /* 4640 */
+ { 0, 0, printargs, "SYS_4641" }, /* 4641 */
+ { 0, 0, printargs, "SYS_4642" }, /* 4642 */
+ { 0, 0, printargs, "SYS_4643" }, /* 4643 */
+ { 0, 0, printargs, "SYS_4644" }, /* 4644 */
+ { 0, 0, printargs, "SYS_4645" }, /* 4645 */
+ { 0, 0, printargs, "SYS_4646" }, /* 4646 */
+ { 0, 0, printargs, "SYS_4647" }, /* 4647 */
+ { 0, 0, printargs, "SYS_4648" }, /* 4648 */
+ { 0, 0, printargs, "SYS_4649" }, /* 4649 */
+ { 0, 0, printargs, "SYS_4650" }, /* 4650 */
+ { 0, 0, printargs, "SYS_4651" }, /* 4651 */
+ { 0, 0, printargs, "SYS_4652" }, /* 4652 */
+ { 0, 0, printargs, "SYS_4653" }, /* 4653 */
+ { 0, 0, printargs, "SYS_4654" }, /* 4654 */
+ { 0, 0, printargs, "SYS_4655" }, /* 4655 */
+ { 0, 0, printargs, "SYS_4656" }, /* 4656 */
+ { 0, 0, printargs, "SYS_4657" }, /* 4657 */
+ { 0, 0, printargs, "SYS_4658" }, /* 4658 */
+ { 0, 0, printargs, "SYS_4659" }, /* 4659 */
+ { 0, 0, printargs, "SYS_4660" }, /* 4660 */
+ { 0, 0, printargs, "SYS_4661" }, /* 4661 */
+ { 0, 0, printargs, "SYS_4662" }, /* 4662 */
+ { 0, 0, printargs, "SYS_4663" }, /* 4663 */
+ { 0, 0, printargs, "SYS_4664" }, /* 4664 */
+ { 0, 0, printargs, "SYS_4665" }, /* 4665 */
+ { 0, 0, printargs, "SYS_4666" }, /* 4666 */
+ { 0, 0, printargs, "SYS_4667" }, /* 4667 */
+ { 0, 0, printargs, "SYS_4668" }, /* 4668 */
+ { 0, 0, printargs, "SYS_4669" }, /* 4669 */
+ { 0, 0, printargs, "SYS_4670" }, /* 4670 */
+ { 0, 0, printargs, "SYS_4671" }, /* 4671 */
+ { 0, 0, printargs, "SYS_4672" }, /* 4672 */
+ { 0, 0, printargs, "SYS_4673" }, /* 4673 */
+ { 0, 0, printargs, "SYS_4674" }, /* 4674 */
+ { 0, 0, printargs, "SYS_4675" }, /* 4675 */
+ { 0, 0, printargs, "SYS_4676" }, /* 4676 */
+ { 0, 0, printargs, "SYS_4677" }, /* 4677 */
+ { 0, 0, printargs, "SYS_4678" }, /* 4678 */
+ { 0, 0, printargs, "SYS_4679" }, /* 4679 */
+ { 0, 0, printargs, "SYS_4680" }, /* 4680 */
+ { 0, 0, printargs, "SYS_4681" }, /* 4681 */
+ { 0, 0, printargs, "SYS_4682" }, /* 4682 */
+ { 0, 0, printargs, "SYS_4683" }, /* 4683 */
+ { 0, 0, printargs, "SYS_4684" }, /* 4684 */
+ { 0, 0, printargs, "SYS_4685" }, /* 4685 */
+ { 0, 0, printargs, "SYS_4686" }, /* 4686 */
+ { 0, 0, printargs, "SYS_4687" }, /* 4687 */
+ { 0, 0, printargs, "SYS_4688" }, /* 4688 */
+ { 0, 0, printargs, "SYS_4689" }, /* 4689 */
+ { 0, 0, printargs, "SYS_4690" }, /* 4690 */
+ { 0, 0, printargs, "SYS_4691" }, /* 4691 */
+ { 0, 0, printargs, "SYS_4692" }, /* 4692 */
+ { 0, 0, printargs, "SYS_4693" }, /* 4693 */
+ { 0, 0, printargs, "SYS_4694" }, /* 4694 */
+ { 0, 0, printargs, "SYS_4695" }, /* 4695 */
+ { 0, 0, printargs, "SYS_4696" }, /* 4696 */
+ { 0, 0, printargs, "SYS_4697" }, /* 4697 */
+ { 0, 0, printargs, "SYS_4698" }, /* 4698 */
+ { 0, 0, printargs, "SYS_4699" }, /* 4699 */
+ { 0, 0, printargs, "SYS_4700" }, /* 4700 */
+ { 0, 0, printargs, "SYS_4701" }, /* 4701 */
+ { 0, 0, printargs, "SYS_4702" }, /* 4702 */
+ { 0, 0, printargs, "SYS_4703" }, /* 4703 */
+ { 0, 0, printargs, "SYS_4704" }, /* 4704 */
+ { 0, 0, printargs, "SYS_4705" }, /* 4705 */
+ { 0, 0, printargs, "SYS_4706" }, /* 4706 */
+ { 0, 0, printargs, "SYS_4707" }, /* 4707 */
+ { 0, 0, printargs, "SYS_4708" }, /* 4708 */
+ { 0, 0, printargs, "SYS_4709" }, /* 4709 */
+ { 0, 0, printargs, "SYS_4710" }, /* 4710 */
+ { 0, 0, printargs, "SYS_4711" }, /* 4711 */
+ { 0, 0, printargs, "SYS_4712" }, /* 4712 */
+ { 0, 0, printargs, "SYS_4713" }, /* 4713 */
+ { 0, 0, printargs, "SYS_4714" }, /* 4714 */
+ { 0, 0, printargs, "SYS_4715" }, /* 4715 */
+ { 0, 0, printargs, "SYS_4716" }, /* 4716 */
+ { 0, 0, printargs, "SYS_4717" }, /* 4717 */
+ { 0, 0, printargs, "SYS_4718" }, /* 4718 */
+ { 0, 0, printargs, "SYS_4719" }, /* 4719 */
+ { 0, 0, printargs, "SYS_4720" }, /* 4720 */
+ { 0, 0, printargs, "SYS_4721" }, /* 4721 */
+ { 0, 0, printargs, "SYS_4722" }, /* 4722 */
+ { 0, 0, printargs, "SYS_4723" }, /* 4723 */
+ { 0, 0, printargs, "SYS_4724" }, /* 4724 */
+ { 0, 0, printargs, "SYS_4725" }, /* 4725 */
+ { 0, 0, printargs, "SYS_4726" }, /* 4726 */
+ { 0, 0, printargs, "SYS_4727" }, /* 4727 */
+ { 0, 0, printargs, "SYS_4728" }, /* 4728 */
+ { 0, 0, printargs, "SYS_4729" }, /* 4729 */
+ { 0, 0, printargs, "SYS_4730" }, /* 4730 */
+ { 0, 0, printargs, "SYS_4731" }, /* 4731 */
+ { 0, 0, printargs, "SYS_4732" }, /* 4732 */
+ { 0, 0, printargs, "SYS_4733" }, /* 4733 */
+ { 0, 0, printargs, "SYS_4734" }, /* 4734 */
+ { 0, 0, printargs, "SYS_4735" }, /* 4735 */
+ { 0, 0, printargs, "SYS_4736" }, /* 4736 */
+ { 0, 0, printargs, "SYS_4737" }, /* 4737 */
+ { 0, 0, printargs, "SYS_4738" }, /* 4738 */
+ { 0, 0, printargs, "SYS_4739" }, /* 4739 */
+ { 0, 0, printargs, "SYS_4740" }, /* 4740 */
+ { 0, 0, printargs, "SYS_4741" }, /* 4741 */
+ { 0, 0, printargs, "SYS_4742" }, /* 4742 */
+ { 0, 0, printargs, "SYS_4743" }, /* 4743 */
+ { 0, 0, printargs, "SYS_4744" }, /* 4744 */
+ { 0, 0, printargs, "SYS_4745" }, /* 4745 */
+ { 0, 0, printargs, "SYS_4746" }, /* 4746 */
+ { 0, 0, printargs, "SYS_4747" }, /* 4747 */
+ { 0, 0, printargs, "SYS_4748" }, /* 4748 */
+ { 0, 0, printargs, "SYS_4749" }, /* 4749 */
+ { 0, 0, printargs, "SYS_4750" }, /* 4750 */
+ { 0, 0, printargs, "SYS_4751" }, /* 4751 */
+ { 0, 0, printargs, "SYS_4752" }, /* 4752 */
+ { 0, 0, printargs, "SYS_4753" }, /* 4753 */
+ { 0, 0, printargs, "SYS_4754" }, /* 4754 */
+ { 0, 0, printargs, "SYS_4755" }, /* 4755 */
+ { 0, 0, printargs, "SYS_4756" }, /* 4756 */
+ { 0, 0, printargs, "SYS_4757" }, /* 4757 */
+ { 0, 0, printargs, "SYS_4758" }, /* 4758 */
+ { 0, 0, printargs, "SYS_4759" }, /* 4759 */
+ { 0, 0, printargs, "SYS_4760" }, /* 4760 */
+ { 0, 0, printargs, "SYS_4761" }, /* 4761 */
+ { 0, 0, printargs, "SYS_4762" }, /* 4762 */
+ { 0, 0, printargs, "SYS_4763" }, /* 4763 */
+ { 0, 0, printargs, "SYS_4764" }, /* 4764 */
+ { 0, 0, printargs, "SYS_4765" }, /* 4765 */
+ { 0, 0, printargs, "SYS_4766" }, /* 4766 */
+ { 0, 0, printargs, "SYS_4767" }, /* 4767 */
+ { 0, 0, printargs, "SYS_4768" }, /* 4768 */
+ { 0, 0, printargs, "SYS_4769" }, /* 4769 */
+ { 0, 0, printargs, "SYS_4770" }, /* 4770 */
+ { 0, 0, printargs, "SYS_4771" }, /* 4771 */
+ { 0, 0, printargs, "SYS_4772" }, /* 4772 */
+ { 0, 0, printargs, "SYS_4773" }, /* 4773 */
+ { 0, 0, printargs, "SYS_4774" }, /* 4774 */
+ { 0, 0, printargs, "SYS_4775" }, /* 4775 */
+ { 0, 0, printargs, "SYS_4776" }, /* 4776 */
+ { 0, 0, printargs, "SYS_4777" }, /* 4777 */
+ { 0, 0, printargs, "SYS_4778" }, /* 4778 */
+ { 0, 0, printargs, "SYS_4779" }, /* 4779 */
+ { 0, 0, printargs, "SYS_4780" }, /* 4780 */
+ { 0, 0, printargs, "SYS_4781" }, /* 4781 */
+ { 0, 0, printargs, "SYS_4782" }, /* 4782 */
+ { 0, 0, printargs, "SYS_4783" }, /* 4783 */
+ { 0, 0, printargs, "SYS_4784" }, /* 4784 */
+ { 0, 0, printargs, "SYS_4785" }, /* 4785 */
+ { 0, 0, printargs, "SYS_4786" }, /* 4786 */
+ { 0, 0, printargs, "SYS_4787" }, /* 4787 */
+ { 0, 0, printargs, "SYS_4788" }, /* 4788 */
+ { 0, 0, printargs, "SYS_4789" }, /* 4789 */
+ { 0, 0, printargs, "SYS_4790" }, /* 4790 */
+ { 0, 0, printargs, "SYS_4791" }, /* 4791 */
+ { 0, 0, printargs, "SYS_4792" }, /* 4792 */
+ { 0, 0, printargs, "SYS_4793" }, /* 4793 */
+ { 0, 0, printargs, "SYS_4794" }, /* 4794 */
+ { 0, 0, printargs, "SYS_4795" }, /* 4795 */
+ { 0, 0, printargs, "SYS_4796" }, /* 4796 */
+ { 0, 0, printargs, "SYS_4797" }, /* 4797 */
+ { 0, 0, printargs, "SYS_4798" }, /* 4798 */
+ { 0, 0, printargs, "SYS_4799" }, /* 4799 */
+ { 0, 0, printargs, "SYS_4800" }, /* 4800 */
+ { 0, 0, printargs, "SYS_4801" }, /* 4801 */
+ { 0, 0, printargs, "SYS_4802" }, /* 4802 */
+ { 0, 0, printargs, "SYS_4803" }, /* 4803 */
+ { 0, 0, printargs, "SYS_4804" }, /* 4804 */
+ { 0, 0, printargs, "SYS_4805" }, /* 4805 */
+ { 0, 0, printargs, "SYS_4806" }, /* 4806 */
+ { 0, 0, printargs, "SYS_4807" }, /* 4807 */
+ { 0, 0, printargs, "SYS_4808" }, /* 4808 */
+ { 0, 0, printargs, "SYS_4809" }, /* 4809 */
+ { 0, 0, printargs, "SYS_4810" }, /* 4810 */
+ { 0, 0, printargs, "SYS_4811" }, /* 4811 */
+ { 0, 0, printargs, "SYS_4812" }, /* 4812 */
+ { 0, 0, printargs, "SYS_4813" }, /* 4813 */
+ { 0, 0, printargs, "SYS_4814" }, /* 4814 */
+ { 0, 0, printargs, "SYS_4815" }, /* 4815 */
+ { 0, 0, printargs, "SYS_4816" }, /* 4816 */
+ { 0, 0, printargs, "SYS_4817" }, /* 4817 */
+ { 0, 0, printargs, "SYS_4818" }, /* 4818 */
+ { 0, 0, printargs, "SYS_4819" }, /* 4819 */
+ { 0, 0, printargs, "SYS_4820" }, /* 4820 */
+ { 0, 0, printargs, "SYS_4821" }, /* 4821 */
+ { 0, 0, printargs, "SYS_4822" }, /* 4822 */
+ { 0, 0, printargs, "SYS_4823" }, /* 4823 */
+ { 0, 0, printargs, "SYS_4824" }, /* 4824 */
+ { 0, 0, printargs, "SYS_4825" }, /* 4825 */
+ { 0, 0, printargs, "SYS_4826" }, /* 4826 */
+ { 0, 0, printargs, "SYS_4827" }, /* 4827 */
+ { 0, 0, printargs, "SYS_4828" }, /* 4828 */
+ { 0, 0, printargs, "SYS_4829" }, /* 4829 */
+ { 0, 0, printargs, "SYS_4830" }, /* 4830 */
+ { 0, 0, printargs, "SYS_4831" }, /* 4831 */
+ { 0, 0, printargs, "SYS_4832" }, /* 4832 */
+ { 0, 0, printargs, "SYS_4833" }, /* 4833 */
+ { 0, 0, printargs, "SYS_4834" }, /* 4834 */
+ { 0, 0, printargs, "SYS_4835" }, /* 4835 */
+ { 0, 0, printargs, "SYS_4836" }, /* 4836 */
+ { 0, 0, printargs, "SYS_4837" }, /* 4837 */
+ { 0, 0, printargs, "SYS_4838" }, /* 4838 */
+ { 0, 0, printargs, "SYS_4839" }, /* 4839 */
+ { 0, 0, printargs, "SYS_4840" }, /* 4840 */
+ { 0, 0, printargs, "SYS_4841" }, /* 4841 */
+ { 0, 0, printargs, "SYS_4842" }, /* 4842 */
+ { 0, 0, printargs, "SYS_4843" }, /* 4843 */
+ { 0, 0, printargs, "SYS_4844" }, /* 4844 */
+ { 0, 0, printargs, "SYS_4845" }, /* 4845 */
+ { 0, 0, printargs, "SYS_4846" }, /* 4846 */
+ { 0, 0, printargs, "SYS_4847" }, /* 4847 */
+ { 0, 0, printargs, "SYS_4848" }, /* 4848 */
+ { 0, 0, printargs, "SYS_4849" }, /* 4849 */
+ { 0, 0, printargs, "SYS_4850" }, /* 4850 */
+ { 0, 0, printargs, "SYS_4851" }, /* 4851 */
+ { 0, 0, printargs, "SYS_4852" }, /* 4852 */
+ { 0, 0, printargs, "SYS_4853" }, /* 4853 */
+ { 0, 0, printargs, "SYS_4854" }, /* 4854 */
+ { 0, 0, printargs, "SYS_4855" }, /* 4855 */
+ { 0, 0, printargs, "SYS_4856" }, /* 4856 */
+ { 0, 0, printargs, "SYS_4857" }, /* 4857 */
+ { 0, 0, printargs, "SYS_4858" }, /* 4858 */
+ { 0, 0, printargs, "SYS_4859" }, /* 4859 */
+ { 0, 0, printargs, "SYS_4860" }, /* 4860 */
+ { 0, 0, printargs, "SYS_4861" }, /* 4861 */
+ { 0, 0, printargs, "SYS_4862" }, /* 4862 */
+ { 0, 0, printargs, "SYS_4863" }, /* 4863 */
+ { 0, 0, printargs, "SYS_4864" }, /* 4864 */
+ { 0, 0, printargs, "SYS_4865" }, /* 4865 */
+ { 0, 0, printargs, "SYS_4866" }, /* 4866 */
+ { 0, 0, printargs, "SYS_4867" }, /* 4867 */
+ { 0, 0, printargs, "SYS_4868" }, /* 4868 */
+ { 0, 0, printargs, "SYS_4869" }, /* 4869 */
+ { 0, 0, printargs, "SYS_4870" }, /* 4870 */
+ { 0, 0, printargs, "SYS_4871" }, /* 4871 */
+ { 0, 0, printargs, "SYS_4872" }, /* 4872 */
+ { 0, 0, printargs, "SYS_4873" }, /* 4873 */
+ { 0, 0, printargs, "SYS_4874" }, /* 4874 */
+ { 0, 0, printargs, "SYS_4875" }, /* 4875 */
+ { 0, 0, printargs, "SYS_4876" }, /* 4876 */
+ { 0, 0, printargs, "SYS_4877" }, /* 4877 */
+ { 0, 0, printargs, "SYS_4878" }, /* 4878 */
+ { 0, 0, printargs, "SYS_4879" }, /* 4879 */
+ { 0, 0, printargs, "SYS_4880" }, /* 4880 */
+ { 0, 0, printargs, "SYS_4881" }, /* 4881 */
+ { 0, 0, printargs, "SYS_4882" }, /* 4882 */
+ { 0, 0, printargs, "SYS_4883" }, /* 4883 */
+ { 0, 0, printargs, "SYS_4884" }, /* 4884 */
+ { 0, 0, printargs, "SYS_4885" }, /* 4885 */
+ { 0, 0, printargs, "SYS_4886" }, /* 4886 */
+ { 0, 0, printargs, "SYS_4887" }, /* 4887 */
+ { 0, 0, printargs, "SYS_4888" }, /* 4888 */
+ { 0, 0, printargs, "SYS_4889" }, /* 4889 */
+ { 0, 0, printargs, "SYS_4890" }, /* 4890 */
+ { 0, 0, printargs, "SYS_4891" }, /* 4891 */
+ { 0, 0, printargs, "SYS_4892" }, /* 4892 */
+ { 0, 0, printargs, "SYS_4893" }, /* 4893 */
+ { 0, 0, printargs, "SYS_4894" }, /* 4894 */
+ { 0, 0, printargs, "SYS_4895" }, /* 4895 */
+ { 0, 0, printargs, "SYS_4896" }, /* 4896 */
+ { 0, 0, printargs, "SYS_4897" }, /* 4897 */
+ { 0, 0, printargs, "SYS_4898" }, /* 4898 */
+ { 0, 0, printargs, "SYS_4899" }, /* 4899 */
+ { 0, 0, printargs, "SYS_4900" }, /* 4900 */
+ { 0, 0, printargs, "SYS_4901" }, /* 4901 */
+ { 0, 0, printargs, "SYS_4902" }, /* 4902 */
+ { 0, 0, printargs, "SYS_4903" }, /* 4903 */
+ { 0, 0, printargs, "SYS_4904" }, /* 4904 */
+ { 0, 0, printargs, "SYS_4905" }, /* 4905 */
+ { 0, 0, printargs, "SYS_4906" }, /* 4906 */
+ { 0, 0, printargs, "SYS_4907" }, /* 4907 */
+ { 0, 0, printargs, "SYS_4908" }, /* 4908 */
+ { 0, 0, printargs, "SYS_4909" }, /* 4909 */
+ { 0, 0, printargs, "SYS_4910" }, /* 4910 */
+ { 0, 0, printargs, "SYS_4911" }, /* 4911 */
+ { 0, 0, printargs, "SYS_4912" }, /* 4912 */
+ { 0, 0, printargs, "SYS_4913" }, /* 4913 */
+ { 0, 0, printargs, "SYS_4914" }, /* 4914 */
+ { 0, 0, printargs, "SYS_4915" }, /* 4915 */
+ { 0, 0, printargs, "SYS_4916" }, /* 4916 */
+ { 0, 0, printargs, "SYS_4917" }, /* 4917 */
+ { 0, 0, printargs, "SYS_4918" }, /* 4918 */
+ { 0, 0, printargs, "SYS_4919" }, /* 4919 */
+ { 0, 0, printargs, "SYS_4920" }, /* 4920 */
+ { 0, 0, printargs, "SYS_4921" }, /* 4921 */
+ { 0, 0, printargs, "SYS_4922" }, /* 4922 */
+ { 0, 0, printargs, "SYS_4923" }, /* 4923 */
+ { 0, 0, printargs, "SYS_4924" }, /* 4924 */
+ { 0, 0, printargs, "SYS_4925" }, /* 4925 */
+ { 0, 0, printargs, "SYS_4926" }, /* 4926 */
+ { 0, 0, printargs, "SYS_4927" }, /* 4927 */
+ { 0, 0, printargs, "SYS_4928" }, /* 4928 */
+ { 0, 0, printargs, "SYS_4929" }, /* 4929 */
+ { 0, 0, printargs, "SYS_4930" }, /* 4930 */
+ { 0, 0, printargs, "SYS_4931" }, /* 4931 */
+ { 0, 0, printargs, "SYS_4932" }, /* 4932 */
+ { 0, 0, printargs, "SYS_4933" }, /* 4933 */
+ { 0, 0, printargs, "SYS_4934" }, /* 4934 */
+ { 0, 0, printargs, "SYS_4935" }, /* 4935 */
+ { 0, 0, printargs, "SYS_4936" }, /* 4936 */
+ { 0, 0, printargs, "SYS_4937" }, /* 4937 */
+ { 0, 0, printargs, "SYS_4938" }, /* 4938 */
+ { 0, 0, printargs, "SYS_4939" }, /* 4939 */
+ { 0, 0, printargs, "SYS_4940" }, /* 4940 */
+ { 0, 0, printargs, "SYS_4941" }, /* 4941 */
+ { 0, 0, printargs, "SYS_4942" }, /* 4942 */
+ { 0, 0, printargs, "SYS_4943" }, /* 4943 */
+ { 0, 0, printargs, "SYS_4944" }, /* 4944 */
+ { 0, 0, printargs, "SYS_4945" }, /* 4945 */
+ { 0, 0, printargs, "SYS_4946" }, /* 4946 */
+ { 0, 0, printargs, "SYS_4947" }, /* 4947 */
+ { 0, 0, printargs, "SYS_4948" }, /* 4948 */
+ { 0, 0, printargs, "SYS_4949" }, /* 4949 */
+ { 0, 0, printargs, "SYS_4950" }, /* 4950 */
+ { 0, 0, printargs, "SYS_4951" }, /* 4951 */
+ { 0, 0, printargs, "SYS_4952" }, /* 4952 */
+ { 0, 0, printargs, "SYS_4953" }, /* 4953 */
+ { 0, 0, printargs, "SYS_4954" }, /* 4954 */
+ { 0, 0, printargs, "SYS_4955" }, /* 4955 */
+ { 0, 0, printargs, "SYS_4956" }, /* 4956 */
+ { 0, 0, printargs, "SYS_4957" }, /* 4957 */
+ { 0, 0, printargs, "SYS_4958" }, /* 4958 */
+ { 0, 0, printargs, "SYS_4959" }, /* 4959 */
+ { 0, 0, printargs, "SYS_4960" }, /* 4960 */
+ { 0, 0, printargs, "SYS_4961" }, /* 4961 */
+ { 0, 0, printargs, "SYS_4962" }, /* 4962 */
+ { 0, 0, printargs, "SYS_4963" }, /* 4963 */
+ { 0, 0, printargs, "SYS_4964" }, /* 4964 */
+ { 0, 0, printargs, "SYS_4965" }, /* 4965 */
+ { 0, 0, printargs, "SYS_4966" }, /* 4966 */
+ { 0, 0, printargs, "SYS_4967" }, /* 4967 */
+ { 0, 0, printargs, "SYS_4968" }, /* 4968 */
+ { 0, 0, printargs, "SYS_4969" }, /* 4969 */
+ { 0, 0, printargs, "SYS_4970" }, /* 4970 */
+ { 0, 0, printargs, "SYS_4971" }, /* 4971 */
+ { 0, 0, printargs, "SYS_4972" }, /* 4972 */
+ { 0, 0, printargs, "SYS_4973" }, /* 4973 */
+ { 0, 0, printargs, "SYS_4974" }, /* 4974 */
+ { 0, 0, printargs, "SYS_4975" }, /* 4975 */
+ { 0, 0, printargs, "SYS_4976" }, /* 4976 */
+ { 0, 0, printargs, "SYS_4977" }, /* 4977 */
+ { 0, 0, printargs, "SYS_4978" }, /* 4978 */
+ { 0, 0, printargs, "SYS_4979" }, /* 4979 */
+ { 0, 0, printargs, "SYS_4980" }, /* 4980 */
+ { 0, 0, printargs, "SYS_4981" }, /* 4981 */
+ { 0, 0, printargs, "SYS_4982" }, /* 4982 */
+ { 0, 0, printargs, "SYS_4983" }, /* 4983 */
+ { 0, 0, printargs, "SYS_4984" }, /* 4984 */
+ { 0, 0, printargs, "SYS_4985" }, /* 4985 */
+ { 0, 0, printargs, "SYS_4986" }, /* 4986 */
+ { 0, 0, printargs, "SYS_4987" }, /* 4987 */
+ { 0, 0, printargs, "SYS_4988" }, /* 4988 */
+ { 0, 0, printargs, "SYS_4989" }, /* 4989 */
+ { 0, 0, printargs, "SYS_4990" }, /* 4990 */
+ { 0, 0, printargs, "SYS_4991" }, /* 4991 */
+ { 0, 0, printargs, "SYS_4992" }, /* 4992 */
+ { 0, 0, printargs, "SYS_4993" }, /* 4993 */
+ { 0, 0, printargs, "SYS_4994" }, /* 4994 */
+ { 0, 0, printargs, "SYS_4995" }, /* 4995 */
+ { 0, 0, printargs, "SYS_4996" }, /* 4996 */
+ { 0, 0, printargs, "SYS_4997" }, /* 4997 */
+ { 0, 0, printargs, "SYS_4998" }, /* 4998 */
+ { 0, 0, printargs, "SYS_4999" }, /* 4999 */ /* end of Linux o32 */
diff --git a/strace/linux/powerpc/errnoent.h b/strace/linux/powerpc/errnoent.h
new file mode 100644
index 0000000..22659a4
--- /dev/null
+++ b/strace/linux/powerpc/errnoent.h
@@ -0,0 +1,529 @@
+ "ERRNO_0", /* 0 */
+ "EPERM", /* 1 */
+ "ENOENT", /* 2 */
+ "ESRCH", /* 3 */
+ "EINTR", /* 4 */
+ "EIO", /* 5 */
+ "ENXIO", /* 6 */
+ "E2BIG", /* 7 */
+ "ENOEXEC", /* 8 */
+ "EBADF", /* 9 */
+ "ECHILD", /* 10 */
+ "EAGAIN", /* 11 */
+ "ENOMEM", /* 12 */
+ "EACCES", /* 13 */
+ "EFAULT", /* 14 */
+ "ENOTBLK", /* 15 */
+ "EBUSY", /* 16 */
+ "EEXIST", /* 17 */
+ "EXDEV", /* 18 */
+ "ENODEV", /* 19 */
+ "ENOTDIR", /* 20 */
+ "EISDIR", /* 21 */
+ "EINVAL", /* 22 */
+ "ENFILE", /* 23 */
+ "EMFILE", /* 24 */
+ "ENOTTY", /* 25 */
+ "ETXTBSY", /* 26 */
+ "EFBIG", /* 27 */
+ "ENOSPC", /* 28 */
+ "ESPIPE", /* 29 */
+ "EROFS", /* 30 */
+ "EMLINK", /* 31 */
+ "EPIPE", /* 32 */
+ "EDOM", /* 33 */
+ "ERANGE", /* 34 */
+ "EDEADLK", /* 35 */
+ "ENAMETOOLONG", /* 36 */
+ "ENOLCK", /* 37 */
+ "ENOSYS", /* 38 */
+ "ENOTEMPTY", /* 39 */
+ "ELOOP", /* 40 */
+ "ERRNO_41", /* 41 */
+ "ENOMSG", /* 42 */
+ "EIDRM", /* 43 */
+ "ECHRNG", /* 44 */
+ "EL2NSYNC", /* 45 */
+ "EL3HLT", /* 46 */
+ "EL3RST", /* 47 */
+ "ELNRNG", /* 48 */
+ "EUNATCH", /* 49 */
+ "ENOCSI", /* 50 */
+ "EL2HLT", /* 51 */
+ "EBADE", /* 52 */
+ "EBADR", /* 53 */
+ "EXFULL", /* 54 */
+ "ENOANO", /* 55 */
+ "EBADRQC", /* 56 */
+ "EBADSLT", /* 57 */
+ "EDEADLOCK", /* 58 */
+ "EBFONT", /* 59 */
+ "ENOSTR", /* 60 */
+ "ENODATA", /* 61 */
+ "ETIME", /* 62 */
+ "ENOSR", /* 63 */
+ "ENONET", /* 64 */
+ "ENOPKG", /* 65 */
+ "EREMOTE", /* 66 */
+ "ENOLINK", /* 67 */
+ "EADV", /* 68 */
+ "ESRMNT", /* 69 */
+ "ECOMM", /* 70 */
+ "EPROTO", /* 71 */
+ "EMULTIHOP", /* 72 */
+ "EDOTDOT", /* 73 */
+ "EBADMSG", /* 74 */
+ "EOVERFLOW", /* 75 */
+ "ENOTUNIQ", /* 76 */
+ "EBADFD", /* 77 */
+ "EREMCHG", /* 78 */
+ "ELIBACC", /* 79 */
+ "ELIBBAD", /* 80 */
+ "ELIBSCN", /* 81 */
+ "ELIBMAX", /* 82 */
+ "ELIBEXEC", /* 83 */
+ "EILSEQ", /* 84 */
+ "ERESTART", /* 85 */
+ "ESTRPIPE", /* 86 */
+ "EUSERS", /* 87 */
+ "ENOTSOCK", /* 88 */
+ "EDESTADDRREQ", /* 89 */
+ "EMSGSIZE", /* 90 */
+ "EPROTOTYPE", /* 91 */
+ "ENOPROTOOPT", /* 92 */
+ "EPROTONOSUPPORT", /* 93 */
+ "ESOCKTNOSUPPORT", /* 94 */
+ "EOPNOTSUPP", /* 95 */
+ "EPFNOSUPPORT", /* 96 */
+ "EAFNOSUPPORT", /* 97 */
+ "EADDRINUSE", /* 98 */
+ "EADDRNOTAVAIL", /* 99 */
+ "ENETDOWN", /* 100 */
+ "ENETUNREACH", /* 101 */
+ "ENETRESET", /* 102 */
+ "ECONNABORTED", /* 103 */
+ "ECONNRESET", /* 104 */
+ "ENOBUFS", /* 105 */
+ "EISCONN", /* 106 */
+ "ENOTCONN", /* 107 */
+ "ESHUTDOWN", /* 108 */
+ "ETOOMANYREFS", /* 109 */
+ "ETIMEDOUT", /* 110 */
+ "ECONNREFUSED", /* 111 */
+ "EHOSTDOWN", /* 112 */
+ "EHOSTUNREACH", /* 113 */
+ "EALREADY", /* 114 */
+ "EINPROGRESS", /* 115 */
+ "ESTALE", /* 116 */
+ "EUCLEAN", /* 117 */
+ "ENOTNAM", /* 118 */
+ "ENAVAIL", /* 119 */
+ "EISNAM", /* 120 */
+ "EREMOTEIO", /* 121 */
+ "EDQUOT", /* 122 */
+ "ENOMEDIUM", /* 123 */
+ "EMEDIUMTYPE", /* 124 */
+ "ERRNO_125", /* 125 */
+ "ERRNO_126", /* 126 */
+ "ERRNO_127", /* 127 */
+ "ERRNO_128", /* 128 */
+ "ERRNO_129", /* 129 */
+ "ERRNO_130", /* 130 */
+ "ERRNO_131", /* 131 */
+ "ERRNO_132", /* 132 */
+ "ERRNO_133", /* 133 */
+ "ERRNO_134", /* 134 */
+ "ERRNO_135", /* 135 */
+ "ERRNO_136", /* 136 */
+ "ERRNO_137", /* 137 */
+ "ERRNO_138", /* 138 */
+ "ERRNO_139", /* 139 */
+ "ERRNO_140", /* 140 */
+ "ERRNO_141", /* 141 */
+ "ERRNO_142", /* 142 */
+ "ERRNO_143", /* 143 */
+ "ERRNO_144", /* 144 */
+ "ERRNO_145", /* 145 */
+ "ERRNO_146", /* 146 */
+ "ERRNO_147", /* 147 */
+ "ERRNO_148", /* 148 */
+ "ERRNO_149", /* 149 */
+ "ERRNO_150", /* 150 */
+ "ERRNO_151", /* 151 */
+ "ERRNO_152", /* 152 */
+ "ERRNO_153", /* 153 */
+ "ERRNO_154", /* 154 */
+ "ERRNO_155", /* 155 */
+ "ERRNO_156", /* 156 */
+ "ERRNO_157", /* 157 */
+ "ERRNO_158", /* 158 */
+ "ERRNO_159", /* 159 */
+ "ERRNO_160", /* 160 */
+ "ERRNO_161", /* 161 */
+ "ERRNO_162", /* 162 */
+ "ERRNO_163", /* 163 */
+ "ERRNO_164", /* 164 */
+ "ERRNO_165", /* 165 */
+ "ERRNO_166", /* 166 */
+ "ERRNO_167", /* 167 */
+ "ERRNO_168", /* 168 */
+ "ERRNO_169", /* 169 */
+ "ERRNO_170", /* 170 */
+ "ERRNO_171", /* 171 */
+ "ERRNO_172", /* 172 */
+ "ERRNO_173", /* 173 */
+ "ERRNO_174", /* 174 */
+ "ERRNO_175", /* 175 */
+ "ERRNO_176", /* 176 */
+ "ERRNO_177", /* 177 */
+ "ERRNO_178", /* 178 */
+ "ERRNO_179", /* 179 */
+ "ERRNO_180", /* 180 */
+ "ERRNO_181", /* 181 */
+ "ERRNO_182", /* 182 */
+ "ERRNO_183", /* 183 */
+ "ERRNO_184", /* 184 */
+ "ERRNO_185", /* 185 */
+ "ERRNO_186", /* 186 */
+ "ERRNO_187", /* 187 */
+ "ERRNO_188", /* 188 */
+ "ERRNO_189", /* 189 */
+ "ERRNO_190", /* 190 */
+ "ERRNO_191", /* 191 */
+ "ERRNO_192", /* 192 */
+ "ERRNO_193", /* 193 */
+ "ERRNO_194", /* 194 */
+ "ERRNO_195", /* 195 */
+ "ERRNO_196", /* 196 */
+ "ERRNO_197", /* 197 */
+ "ERRNO_198", /* 198 */
+ "ERRNO_199", /* 199 */
+ "ERRNO_200", /* 200 */
+ "ERRNO_201", /* 201 */
+ "ERRNO_202", /* 202 */
+ "ERRNO_203", /* 203 */
+ "ERRNO_204", /* 204 */
+ "ERRNO_205", /* 205 */
+ "ERRNO_206", /* 206 */
+ "ERRNO_207", /* 207 */
+ "ERRNO_208", /* 208 */
+ "ERRNO_209", /* 209 */
+ "ERRNO_210", /* 210 */
+ "ERRNO_211", /* 211 */
+ "ERRNO_212", /* 212 */
+ "ERRNO_213", /* 213 */
+ "ERRNO_214", /* 214 */
+ "ERRNO_215", /* 215 */
+ "ERRNO_216", /* 216 */
+ "ERRNO_217", /* 217 */
+ "ERRNO_218", /* 218 */
+ "ERRNO_219", /* 219 */
+ "ERRNO_220", /* 220 */
+ "ERRNO_221", /* 221 */
+ "ERRNO_222", /* 222 */
+ "ERRNO_223", /* 223 */
+ "ERRNO_224", /* 224 */
+ "ERRNO_225", /* 225 */
+ "ERRNO_226", /* 226 */
+ "ERRNO_227", /* 227 */
+ "ERRNO_228", /* 228 */
+ "ERRNO_229", /* 229 */
+ "ERRNO_230", /* 230 */
+ "ERRNO_231", /* 231 */
+ "ERRNO_232", /* 232 */
+ "ERRNO_233", /* 233 */
+ "ERRNO_234", /* 234 */
+ "ERRNO_235", /* 235 */
+ "ERRNO_236", /* 236 */
+ "ERRNO_237", /* 237 */
+ "ERRNO_238", /* 238 */
+ "ERRNO_239", /* 239 */
+ "ERRNO_240", /* 240 */
+ "ERRNO_241", /* 241 */
+ "ERRNO_242", /* 242 */
+ "ERRNO_243", /* 243 */
+ "ERRNO_244", /* 244 */
+ "ERRNO_245", /* 245 */
+ "ERRNO_246", /* 246 */
+ "ERRNO_247", /* 247 */
+ "ERRNO_248", /* 248 */
+ "ERRNO_249", /* 249 */
+ "ERRNO_250", /* 250 */
+ "ERRNO_251", /* 251 */
+ "ERRNO_252", /* 252 */
+ "ERRNO_253", /* 253 */
+ "ERRNO_254", /* 254 */
+ "ERRNO_255", /* 255 */
+ "ERRNO_256", /* 256 */
+ "ERRNO_257", /* 257 */
+ "ERRNO_258", /* 258 */
+ "ERRNO_259", /* 259 */
+ "ERRNO_260", /* 260 */
+ "ERRNO_261", /* 261 */
+ "ERRNO_262", /* 262 */
+ "ERRNO_263", /* 263 */
+ "ERRNO_264", /* 264 */
+ "ERRNO_265", /* 265 */
+ "ERRNO_266", /* 266 */
+ "ERRNO_267", /* 267 */
+ "ERRNO_268", /* 268 */
+ "ERRNO_269", /* 269 */
+ "ERRNO_270", /* 270 */
+ "ERRNO_271", /* 271 */
+ "ERRNO_272", /* 272 */
+ "ERRNO_273", /* 273 */
+ "ERRNO_274", /* 274 */
+ "ERRNO_275", /* 275 */
+ "ERRNO_276", /* 276 */
+ "ERRNO_277", /* 277 */
+ "ERRNO_278", /* 278 */
+ "ERRNO_279", /* 279 */
+ "ERRNO_280", /* 280 */
+ "ERRNO_281", /* 281 */
+ "ERRNO_282", /* 282 */
+ "ERRNO_283", /* 283 */
+ "ERRNO_284", /* 284 */
+ "ERRNO_285", /* 285 */
+ "ERRNO_286", /* 286 */
+ "ERRNO_287", /* 287 */
+ "ERRNO_288", /* 288 */
+ "ERRNO_289", /* 289 */
+ "ERRNO_290", /* 290 */
+ "ERRNO_291", /* 291 */
+ "ERRNO_292", /* 292 */
+ "ERRNO_293", /* 293 */
+ "ERRNO_294", /* 294 */
+ "ERRNO_295", /* 295 */
+ "ERRNO_296", /* 296 */
+ "ERRNO_297", /* 297 */
+ "ERRNO_298", /* 298 */
+ "ERRNO_299", /* 299 */
+ "ERRNO_300", /* 300 */
+ "ERRNO_301", /* 301 */
+ "ERRNO_302", /* 302 */
+ "ERRNO_303", /* 303 */
+ "ERRNO_304", /* 304 */
+ "ERRNO_305", /* 305 */
+ "ERRNO_306", /* 306 */
+ "ERRNO_307", /* 307 */
+ "ERRNO_308", /* 308 */
+ "ERRNO_309", /* 309 */
+ "ERRNO_310", /* 310 */
+ "ERRNO_311", /* 311 */
+ "ERRNO_312", /* 312 */
+ "ERRNO_313", /* 313 */
+ "ERRNO_314", /* 314 */
+ "ERRNO_315", /* 315 */
+ "ERRNO_316", /* 316 */
+ "ERRNO_317", /* 317 */
+ "ERRNO_318", /* 318 */
+ "ERRNO_319", /* 319 */
+ "ERRNO_320", /* 320 */
+ "ERRNO_321", /* 321 */
+ "ERRNO_322", /* 322 */
+ "ERRNO_323", /* 323 */
+ "ERRNO_324", /* 324 */
+ "ERRNO_325", /* 325 */
+ "ERRNO_326", /* 326 */
+ "ERRNO_327", /* 327 */
+ "ERRNO_328", /* 328 */
+ "ERRNO_329", /* 329 */
+ "ERRNO_330", /* 330 */
+ "ERRNO_331", /* 331 */
+ "ERRNO_332", /* 332 */
+ "ERRNO_333", /* 333 */
+ "ERRNO_334", /* 334 */
+ "ERRNO_335", /* 335 */
+ "ERRNO_336", /* 336 */
+ "ERRNO_337", /* 337 */
+ "ERRNO_338", /* 338 */
+ "ERRNO_339", /* 339 */
+ "ERRNO_340", /* 340 */
+ "ERRNO_341", /* 341 */
+ "ERRNO_342", /* 342 */
+ "ERRNO_343", /* 343 */
+ "ERRNO_344", /* 344 */
+ "ERRNO_345", /* 345 */
+ "ERRNO_346", /* 346 */
+ "ERRNO_347", /* 347 */
+ "ERRNO_348", /* 348 */
+ "ERRNO_349", /* 349 */
+ "ERRNO_350", /* 350 */
+ "ERRNO_351", /* 351 */
+ "ERRNO_352", /* 352 */
+ "ERRNO_353", /* 353 */
+ "ERRNO_354", /* 354 */
+ "ERRNO_355", /* 355 */
+ "ERRNO_356", /* 356 */
+ "ERRNO_357", /* 357 */
+ "ERRNO_358", /* 358 */
+ "ERRNO_359", /* 359 */
+ "ERRNO_360", /* 360 */
+ "ERRNO_361", /* 361 */
+ "ERRNO_362", /* 362 */
+ "ERRNO_363", /* 363 */
+ "ERRNO_364", /* 364 */
+ "ERRNO_365", /* 365 */
+ "ERRNO_366", /* 366 */
+ "ERRNO_367", /* 367 */
+ "ERRNO_368", /* 368 */
+ "ERRNO_369", /* 369 */
+ "ERRNO_370", /* 370 */
+ "ERRNO_371", /* 371 */
+ "ERRNO_372", /* 372 */
+ "ERRNO_373", /* 373 */
+ "ERRNO_374", /* 374 */
+ "ERRNO_375", /* 375 */
+ "ERRNO_376", /* 376 */
+ "ERRNO_377", /* 377 */
+ "ERRNO_378", /* 378 */
+ "ERRNO_379", /* 379 */
+ "ERRNO_380", /* 380 */
+ "ERRNO_381", /* 381 */
+ "ERRNO_382", /* 382 */
+ "ERRNO_383", /* 383 */
+ "ERRNO_384", /* 384 */
+ "ERRNO_385", /* 385 */
+ "ERRNO_386", /* 386 */
+ "ERRNO_387", /* 387 */
+ "ERRNO_388", /* 388 */
+ "ERRNO_389", /* 389 */
+ "ERRNO_390", /* 390 */
+ "ERRNO_391", /* 391 */
+ "ERRNO_392", /* 392 */
+ "ERRNO_393", /* 393 */
+ "ERRNO_394", /* 394 */
+ "ERRNO_395", /* 395 */
+ "ERRNO_396", /* 396 */
+ "ERRNO_397", /* 397 */
+ "ERRNO_398", /* 398 */
+ "ERRNO_399", /* 399 */
+ "ERRNO_400", /* 400 */
+ "ERRNO_401", /* 401 */
+ "ERRNO_402", /* 402 */
+ "ERRNO_403", /* 403 */
+ "ERRNO_404", /* 404 */
+ "ERRNO_405", /* 405 */
+ "ERRNO_406", /* 406 */
+ "ERRNO_407", /* 407 */
+ "ERRNO_408", /* 408 */
+ "ERRNO_409", /* 409 */
+ "ERRNO_410", /* 410 */
+ "ERRNO_411", /* 411 */
+ "ERRNO_412", /* 412 */
+ "ERRNO_413", /* 413 */
+ "ERRNO_414", /* 414 */
+ "ERRNO_415", /* 415 */
+ "ERRNO_416", /* 416 */
+ "ERRNO_417", /* 417 */
+ "ERRNO_418", /* 418 */
+ "ERRNO_419", /* 419 */
+ "ERRNO_420", /* 420 */
+ "ERRNO_421", /* 421 */
+ "ERRNO_422", /* 422 */
+ "ERRNO_423", /* 423 */
+ "ERRNO_424", /* 424 */
+ "ERRNO_425", /* 425 */
+ "ERRNO_426", /* 426 */
+ "ERRNO_427", /* 427 */
+ "ERRNO_428", /* 428 */
+ "ERRNO_429", /* 429 */
+ "ERRNO_430", /* 430 */
+ "ERRNO_431", /* 431 */
+ "ERRNO_432", /* 432 */
+ "ERRNO_433", /* 433 */
+ "ERRNO_434", /* 434 */
+ "ERRNO_435", /* 435 */
+ "ERRNO_436", /* 436 */
+ "ERRNO_437", /* 437 */
+ "ERRNO_438", /* 438 */
+ "ERRNO_439", /* 439 */
+ "ERRNO_440", /* 440 */
+ "ERRNO_441", /* 441 */
+ "ERRNO_442", /* 442 */
+ "ERRNO_443", /* 443 */
+ "ERRNO_444", /* 444 */
+ "ERRNO_445", /* 445 */
+ "ERRNO_446", /* 446 */
+ "ERRNO_447", /* 447 */
+ "ERRNO_448", /* 448 */
+ "ERRNO_449", /* 449 */
+ "ERRNO_450", /* 450 */
+ "ERRNO_451", /* 451 */
+ "ERRNO_452", /* 452 */
+ "ERRNO_453", /* 453 */
+ "ERRNO_454", /* 454 */
+ "ERRNO_455", /* 455 */
+ "ERRNO_456", /* 456 */
+ "ERRNO_457", /* 457 */
+ "ERRNO_458", /* 458 */
+ "ERRNO_459", /* 459 */
+ "ERRNO_460", /* 460 */
+ "ERRNO_461", /* 461 */
+ "ERRNO_462", /* 462 */
+ "ERRNO_463", /* 463 */
+ "ERRNO_464", /* 464 */
+ "ERRNO_465", /* 465 */
+ "ERRNO_466", /* 466 */
+ "ERRNO_467", /* 467 */
+ "ERRNO_468", /* 468 */
+ "ERRNO_469", /* 469 */
+ "ERRNO_470", /* 470 */
+ "ERRNO_471", /* 471 */
+ "ERRNO_472", /* 472 */
+ "ERRNO_473", /* 473 */
+ "ERRNO_474", /* 474 */
+ "ERRNO_475", /* 475 */
+ "ERRNO_476", /* 476 */
+ "ERRNO_477", /* 477 */
+ "ERRNO_478", /* 478 */
+ "ERRNO_479", /* 479 */
+ "ERRNO_480", /* 480 */
+ "ERRNO_481", /* 481 */
+ "ERRNO_482", /* 482 */
+ "ERRNO_483", /* 483 */
+ "ERRNO_484", /* 484 */
+ "ERRNO_485", /* 485 */
+ "ERRNO_486", /* 486 */
+ "ERRNO_487", /* 487 */
+ "ERRNO_488", /* 488 */
+ "ERRNO_489", /* 489 */
+ "ERRNO_490", /* 490 */
+ "ERRNO_491", /* 491 */
+ "ERRNO_492", /* 492 */
+ "ERRNO_493", /* 493 */
+ "ERRNO_494", /* 494 */
+ "ERRNO_495", /* 495 */
+ "ERRNO_496", /* 496 */
+ "ERRNO_497", /* 497 */
+ "ERRNO_498", /* 498 */
+ "ERRNO_499", /* 499 */
+ "ERRNO_500", /* 500 */
+ "ERRNO_501", /* 501 */
+ "ERRNO_502", /* 502 */
+ "ERRNO_503", /* 503 */
+ "ERRNO_504", /* 504 */
+ "ERRNO_505", /* 505 */
+ "ERRNO_506", /* 506 */
+ "ERRNO_507", /* 507 */
+ "ERRNO_508", /* 508 */
+ "ERRNO_509", /* 509 */
+ "ERRNO_510", /* 510 */
+ "ERRNO_511", /* 511 */
+ "ERESTARTSYS", /* 512 */
+ "ERESTARTNOINTR", /* 513 */
+ "ERESTARTNOHAND", /* 514 */
+ "ENOIOCTLCMD", /* 515 */
+ "ERRNO_516", /* 516 */
+ "ERRNO_517", /* 517 */
+ "ERRNO_518", /* 518 */
+ "ERRNO_519", /* 519 */
+ "ERRNO_520", /* 520 */
+ "EBADHANDLE", /* 521 */
+ "ENOTSYNC", /* 522 */
+ "EBADCOOKIE", /* 523 */
+ "ENOTSUPP", /* 524 */
+ "ETOOSMALL", /* 525 */
+ "ESERVERFAULT", /* 526 */
+ "EBADTYPE", /* 527 */
+ "EJUKEBOX", /* 528 */
diff --git a/strace/linux/powerpc/ioctlent.h b/strace/linux/powerpc/ioctlent.h
new file mode 100644
index 0000000..16010da
--- /dev/null
+++ b/strace/linux/powerpc/ioctlent.h
@@ -0,0 +1,1181 @@
+ /* Generated by ioctlsort */
+ {"linux/fs.h", "FIBMAP", 0x1},
+ {"linux/fs.h", "FIGETBSZ", 0x2},
+ {"linux/fd.h", "FDGETPRM", 0x204},
+ {"linux/fd.h", "FDGETMAXERRS", 0x20e},
+ {"linux/fd.h", "FDGETDRVTYP", 0x20f},
+ {"linux/fd.h", "FDGETDRVPRM", 0x211},
+ {"linux/fd.h", "FDGETDRVSTAT", 0x212},
+ {"linux/fd.h", "FDPOLLDRVSTAT", 0x213},
+ {"linux/fd.h", "FDGETFDCSTAT", 0x215},
+ {"linux/fd.h", "FDWERRORGET", 0x217},
+ {"linux/fd.h", "FDCLRPRM", 0x241},
+ {"linux/fd.h", "FDSETPRM", 0x242},
+ {"linux/fd.h", "FDDEFPRM", 0x243},
+ {"linux/fd.h", "FDMSGON", 0x245},
+ {"linux/fd.h", "FDMSGOFF", 0x246},
+ {"linux/fd.h", "FDFMTBEG", 0x247},
+ {"linux/fd.h", "FDFMTTRK", 0x248},
+ {"linux/fd.h", "FDFMTEND", 0x249},
+ {"linux/fd.h", "FDSETEMSGTRESH", 0x24a},
+ {"linux/fd.h", "FDFLUSH", 0x24b},
+ {"linux/fd.h", "FDSETMAXERRS", 0x24c},
+ {"linux/fd.h", "FDRESET", 0x254},
+ {"linux/fd.h", "FDWERRORCLR", 0x256},
+ {"linux/fd.h", "FDRAWCMD", 0x258},
+ {"linux/fd.h", "FDTWADDLE", 0x259},
+ {"linux/fd.h", "FDEJECT", 0x25a},
+ {"linux/fd.h", "FDSETDRVPRM", 0x290},
+ {"linux/umsdos_fs.h", "UMSDOS_READDIR_DOS", 0x4d2},
+ {"linux/umsdos_fs.h", "UMSDOS_UNLINK_DOS", 0x4d3},
+ {"linux/umsdos_fs.h", "UMSDOS_RMDIR_DOS", 0x4d4},
+ {"linux/umsdos_fs.h", "UMSDOS_STAT_DOS", 0x4d5},
+ {"linux/umsdos_fs.h", "UMSDOS_CREAT_EMD", 0x4d6},
+ {"linux/umsdos_fs.h", "UMSDOS_UNLINK_EMD", 0x4d7},
+ {"linux/umsdos_fs.h", "UMSDOS_READDIR_EMD", 0x4d8},
+ {"linux/umsdos_fs.h", "UMSDOS_GETVERSION", 0x4d9},
+ {"linux/umsdos_fs.h", "UMSDOS_INIT_EMD", 0x4da},
+ {"linux/umsdos_fs.h", "UMSDOS_DOS_SETUP", 0x4db},
+ {"linux/umsdos_fs.h", "UMSDOS_RENAME_DOS", 0x4dc},
+ {"linux/fs.h", "BLKROSET", 0x125d},
+ {"linux/fs.h", "BLKROGET", 0x125e},
+ {"linux/fs.h", "BLKRRPART", 0x125f},
+ {"linux/fs.h", "BLKGETSIZE", 0x1260},
+ {"linux/fs.h", "BLKFLSBUF", 0x1261},
+ {"linux/fs.h", "BLKRASET", 0x1262},
+ {"linux/fs.h", "BLKRAGET", 0x1263},
+ {"linux/fs.h", "BLKFRASET", 0x1264},
+ {"linux/fs.h", "BLKFRAGET", 0x1265},
+ {"linux/fs.h", "BLKSECTSET", 0x1266},
+ {"linux/fs.h", "BLKSECTGET", 0x1267},
+ {"linux/fs.h", "BLKSSZGET", 0x1268},
+ {"linux/blkpg.h", "BLKPG", 0x1269},
+ {"linux/fs.h", "BLKELVGET", 0x126a},
+ {"linux/fs.h", "BLKELVSET", 0x126b},
+ {"linux/fs.h", "BLKBSZGET", 0x1270},
+ {"linux/fs.h", "BLKBSZSET", 0x1271},
+ {"linux/fs.h", "BLKGETSIZE64", 0x1272},
+ {"scsi/sg.h", "SG_SET_TIMEOUT", 0x2201},
+ {"scsi/sg.h", "SG_GET_TIMEOUT", 0x2202},
+ {"scsi/sg.h", "SG_EMULATED_HOST", 0x2203},
+ {"scsi/sg.h", "SG_SET_TRANSFORM", 0x2204},
+ {"scsi/sg.h", "SG_GET_TRANSFORM", 0x2205},
+ {"scsi/sg.h", "SG_GET_COMMAND_Q", 0x2270},
+ {"scsi/sg.h", "SG_SET_COMMAND_Q", 0x2271},
+ {"scsi/sg.h", "SG_GET_RESERVED_SIZE", 0x2272},
+ {"scsi/sg.h", "SG_SET_RESERVED_SIZE", 0x2275},
+ {"scsi/sg.h", "SG_GET_SCSI_ID", 0x2276},
+ {"scsi/sg.h", "SG_SET_FORCE_LOW_DMA", 0x2279},
+ {"scsi/sg.h", "SG_GET_LOW_DMA", 0x227a},
+ {"scsi/sg.h", "SG_SET_FORCE_PACK_ID", 0x227b},
+ {"scsi/sg.h", "SG_GET_PACK_ID", 0x227c},
+ {"scsi/sg.h", "SG_GET_NUM_WAITING", 0x227d},
+ {"scsi/sg.h", "SG_SET_DEBUG", 0x227e},
+ {"scsi/sg.h", "SG_GET_SG_TABLESIZE", 0x227f},
+ {"scsi/sg.h", "SG_GET_VERSION_NUM", 0x2282},
+ {"scsi/sg.h", "SG_NEXT_CMD_LEN", 0x2283},
+ {"scsi/sg.h", "SG_SCSI_RESET", 0x2284},
+ {"scsi/sg.h", "SG_IO", 0x2285},
+ {"scsi/sg.h", "SG_GET_REQUEST_TABLE", 0x2286},
+ {"scsi/sg.h", "SG_SET_KEEP_ORPHAN", 0x2287},
+ {"scsi/sg.h", "SG_GET_KEEP_ORPHAN", 0x2288},
+ {"linux/i2o.h", "BLKI2OGRSTRAT", 0x3201},
+ {"linux/i2o.h", "BLKI2OGWSTRAT", 0x3202},
+ {"linux/i2o.h", "BLKI2OSRSTRAT", 0x3203},
+ {"linux/i2o.h", "BLKI2OSWSTRAT", 0x3204},
+ {"linux/radeonfb.h", "FBIO_RADEON_GET_MIRROR", 0x4003},
+ {"linux/radeonfb.h", "FBIO_RADEON_SET_MIRROR", 0x4004},
+ {"linux/agpgart.h", "AGPIOC_INFO", 0x4100},
+ {"linux/agpgart.h", "AGPIOC_ACQUIRE", 0x4101},
+ {"linux/apm_bios.h", "APM_IOC_STANDBY", 0x4101},
+ {"linux/agpgart.h", "AGPIOC_RELEASE", 0x4102},
+ {"linux/apm_bios.h", "APM_IOC_SUSPEND", 0x4102},
+ {"linux/agpgart.h", "AGPIOC_SETUP", 0x4103},
+ {"linux/agpgart.h", "AGPIOC_RESERVE", 0x4104},
+ {"linux/agpgart.h", "AGPIOC_PROTECT", 0x4105},
+ {"linux/agpgart.h", "AGPIOC_ALLOCATE", 0x4106},
+ {"linux/agpgart.h", "AGPIOC_DEALLOCATE", 0x4107},
+ {"linux/agpgart.h", "AGPIOC_BIND", 0x4108},
+ {"linux/agpgart.h", "AGPIOC_UNBIND", 0x4109},
+ {"linux/pmu.h", "PMU_IOC_SLEEP", 0x4200},
+ {"linux/cciss_ioctl.h", "CCISS_GETPCIINFO", 0x4201},
+ {"linux/pmu.h", "PMU_IOC_GET_BACKLIGHT", 0x4201},
+ {"linux/cciss_ioctl.h", "CCISS_GETINTINFO", 0x4202},
+ {"linux/pmu.h", "PMU_IOC_SET_BACKLIGHT", 0x4202},
+ {"linux/cciss_ioctl.h", "CCISS_SETINTINFO", 0x4203},
+ {"linux/pmu.h", "PMU_IOC_GET_MODEL", 0x4203},
+ {"linux/cciss_ioctl.h", "CCISS_GETNODENAME", 0x4204},
+ {"linux/pmu.h", "PMU_IOC_HAS_ADB", 0x4204},
+ {"linux/cciss_ioctl.h", "CCISS_SETNODENAME", 0x4205},
+ {"linux/pmu.h", "PMU_IOC_CAN_SLEEP", 0x4205},
+ {"linux/cciss_ioctl.h", "CCISS_GETHEARTBEAT", 0x4206},
+ {"linux/pmu.h", "PMU_IOC_GRAB_BACKLIGHT", 0x4206},
+ {"linux/cciss_ioctl.h", "CCISS_GETBUSTYPES", 0x4207},
+ {"linux/cciss_ioctl.h", "CCISS_GETFIRMVER", 0x4208},
+ {"linux/cciss_ioctl.h", "CCISS_GETDRIVVER", 0x4209},
+ {"linux/cciss_ioctl.h", "CCISS_REVALIDVOLS", 0x420a},
+ {"linux/cciss_ioctl.h", "CCISS_PASSTHRU", 0x420b},
+ {"linux/cciss_ioctl.h", "CCISS_DEREGDISK", 0x420c},
+ {"linux/cciss_ioctl.h", "CCISS_REGNEWDISK", 0x420d},
+ {"linux/cciss_ioctl.h", "CCISS_REGNEWD", 0x420e},
+ {"linux/cciss_ioctl.h", "CCISS_GETLUNINFO", 0x4211},
+ {"linux/cciss_ioctl.h", "CCISS_BIG_PASSTHRU", 0x4212},
+ {"linux/soundcard.h", "SNDCTL_COPR_RESET", 0x4300},
+ {"linux/capi.h", "CAPI_REGISTER", 0x4301},
+ {"linux/soundcard.h", "SNDCTL_COPR_LOAD", 0x4301},
+ {"linux/soundcard.h", "SNDCTL_COPR_RDATA", 0x4302},
+ {"linux/soundcard.h", "SNDCTL_COPR_RCODE", 0x4303},
+ {"linux/soundcard.h", "SNDCTL_COPR_WDATA", 0x4304},
+ {"linux/soundcard.h", "SNDCTL_COPR_WCODE", 0x4305},
+ {"linux/capi.h", "CAPI_GET_MANUFACTURER", 0x4306},
+ {"linux/soundcard.h", "SNDCTL_COPR_RUN", 0x4306},
+ {"linux/capi.h", "CAPI_GET_VERSION", 0x4307},
+ {"linux/soundcard.h", "SNDCTL_COPR_HALT", 0x4307},
+ {"linux/capi.h", "CAPI_GET_SERIAL", 0x4308},
+ {"linux/soundcard.h", "SNDCTL_COPR_SENDMSG", 0x4308},
+ {"linux/capi.h", "CAPI_GET_PROFILE", 0x4309},
+ {"linux/soundcard.h", "SNDCTL_COPR_RCVMSG", 0x4309},
+ {"linux/capi.h", "CAPI_MANUFACTURER_CMD", 0x4320},
+ {"linux/capi.h", "CAPI_GET_ERRCODE", 0x4321},
+ {"linux/capi.h", "CAPI_INSTALLED", 0x4322},
+ {"linux/capi.h", "CAPI_GET_FLAGS", 0x4323},
+ {"linux/capi.h", "CAPI_SET_FLAGS", 0x4324},
+ {"linux/capi.h", "CAPI_CLR_FLAGS", 0x4325},
+ {"linux/capi.h", "CAPI_NCCI_OPENCOUNT", 0x4326},
+ {"linux/capi.h", "CAPI_NCCI_GETUNIT", 0x4327},
+ {"linux/input.h", "EVIOCGVERSION", 0x4501},
+ {"linux/input.h", "EVIOCGID", 0x4502},
+ {"linux/input.h", "EVIOCGKEYCODE", 0x4504},
+ {"linux/input.h", "EVIOCSKEYCODE", 0x4504},
+ {"linux/input.h", "EVIOCRMFF", 0x4581},
+ {"linux/input.h", "EVIOCGEFFECTS", 0x4584},
+ {"linux/input.h", "EVIOCGRAB", 0x4590},
+ {"linux/fb.h", "FBIOGET_VSCREENINFO", 0x4600},
+ {"linux/fb.h", "FBIOPUT_VSCREENINFO", 0x4601},
+ {"linux/fb.h", "FBIOGET_FSCREENINFO", 0x4602},
+ {"linux/fb.h", "FBIOGETCMAP", 0x4604},
+ {"linux/fb.h", "FBIOPUTCMAP", 0x4605},
+ {"linux/fb.h", "FBIOPAN_DISPLAY", 0x4606},
+ {"linux/fb.h", "FBIO_CURSOR", 0x4608},
+ {"linux/fb.h", "FBIOGET_CON2FBMAP", 0x460f},
+ {"linux/fb.h", "FBIOPUT_CON2FBMAP", 0x4610},
+ {"linux/fb.h", "FBIOBLANK", 0x4611},
+ {"linux/fb.h", "FBIOGET_VBLANK", 0x4612},
+ {"linux/fb.h", "FBIO_ALLOC", 0x4613},
+ {"linux/fb.h", "FBIO_FREE", 0x4614},
+ {"linux/fb.h", "FBIOGET_GLYPH", 0x4615},
+ {"linux/fb.h", "FBIOGET_HWCINFO", 0x4616},
+ {"linux/fb.h", "FBIOPUT_MODEINFO", 0x4617},
+ {"linux/fb.h", "FBIOGET_DISPINFO", 0x4618},
+ {"linux/matroxfb.h", "FBIO_WAITFORVSYNC", 0x4620},
+ {"linux/hiddev.h", "HIDIOCGVERSION", 0x4801},
+ {"linux/hiddev.h", "HIDIOCAPPLICATION", 0x4802},
+ {"linux/hiddev.h", "HIDIOCGDEVINFO", 0x4803},
+ {"linux/hiddev.h", "HIDIOCGSTRING", 0x4804},
+ {"linux/hiddev.h", "HIDIOCINITREPORT", 0x4805},
+ {"linux/hiddev.h", "HIDIOCGREPORT", 0x4807},
+ {"linux/hiddev.h", "HIDIOCSREPORT", 0x4808},
+ {"linux/hiddev.h", "HIDIOCGREPORTINFO", 0x4809},
+ {"linux/hiddev.h", "HIDIOCGFIELDINFO", 0x480a},
+ {"linux/hiddev.h", "HIDIOCGUSAGE", 0x480b},
+ {"linux/hiddev.h", "HIDIOCSUSAGE", 0x480c},
+ {"linux/hiddev.h", "HIDIOCGUCODE", 0x480d},
+ {"linux/hiddev.h", "HIDIOCGFLAG", 0x480e},
+ {"linux/hiddev.h", "HIDIOCSFLAG", 0x480f},
+ {"linux/hiddev.h", "HIDIOCGCOLLECTIONINDEX", 0x4810},
+ {"linux/hiddev.h", "HIDIOCGCOLLECTIONINFO", 0x4811},
+ {"linux/isdn.h", "IIOCNETAIF", 0x4901},
+ {"linux/isdn.h", "IIOCNETDIF", 0x4902},
+ {"linux/isdn.h", "IIOCNETSCF", 0x4903},
+ {"linux/isdn.h", "IIOCNETGCF", 0x4904},
+ {"linux/isdn.h", "IIOCNETANM", 0x4905},
+ {"linux/isdn.h", "IIOCNETDNM", 0x4906},
+ {"linux/isdn.h", "IIOCNETGNM", 0x4907},
+ {"linux/isdn.h", "IIOCGETSET", 0x4908},
+ {"linux/isdn.h", "IIOCSETSET", 0x4909},
+ {"linux/isdn.h", "IIOCSETVER", 0x490a},
+ {"linux/isdn.h", "IIOCNETHUP", 0x490b},
+ {"linux/isdn.h", "IIOCSETGST", 0x490c},
+ {"linux/isdn.h", "IIOCSETBRJ", 0x490d},
+ {"linux/isdn.h", "IIOCSIGPRF", 0x490e},
+ {"linux/isdn.h", "IIOCGETPRF", 0x490f},
+ {"linux/isdn.h", "IIOCSETPRF", 0x4910},
+ {"linux/isdn.h", "IIOCGETMAP", 0x4911},
+ {"linux/isdn.h", "IIOCSETMAP", 0x4912},
+ {"linux/isdn.h", "IIOCNETASL", 0x4913},
+ {"linux/isdn.h", "IIOCNETDIL", 0x4914},
+ {"linux/isdn.h", "IIOCGETCPS", 0x4915},
+ {"linux/isdn.h", "IIOCGETDVR", 0x4916},
+ {"linux/isdn.h", "IIOCNETLCR", 0x4917},
+ {"linux/isdn.h", "IIOCNETDWRSET", 0x4918},
+ {"linux/isdn.h", "IIOCNETALN", 0x4920},
+ {"linux/isdn.h", "IIOCNETDLN", 0x4921},
+ {"linux/isdn.h", "IIOCNETGPN", 0x4922},
+ {"linux/isdn.h", "IIOCDBGVAR", 0x497f},
+ {"linux/isdn.h", "IIOCDRVCTL", 0x4980},
+ {"linux/kd.h", "KIOCSOUND", 0x4b2f},
+ {"linux/kd.h", "KDMKTONE", 0x4b30},
+ {"linux/kd.h", "KDGETLED", 0x4b31},
+ {"linux/kd.h", "KDSETLED", 0x4b32},
+ {"linux/kd.h", "KDGKBTYPE", 0x4b33},
+ {"linux/kd.h", "KDADDIO", 0x4b34},
+ {"linux/kd.h", "KDDELIO", 0x4b35},
+ {"linux/kd.h", "KDENABIO", 0x4b36},
+ {"linux/kd.h", "KDDISABIO", 0x4b37},
+ {"linux/kd.h", "KDSETMODE", 0x4b3a},
+ {"linux/kd.h", "KDGETMODE", 0x4b3b},
+ {"linux/kd.h", "KDMAPDISP", 0x4b3c},
+ {"linux/kd.h", "KDUNMAPDISP", 0x4b3d},
+ {"linux/kd.h", "GIO_SCRNMAP", 0x4b40},
+ {"linux/kd.h", "PIO_SCRNMAP", 0x4b41},
+ {"linux/kd.h", "KDGKBMODE", 0x4b44},
+ {"linux/kd.h", "KDSKBMODE", 0x4b45},
+ {"linux/kd.h", "KDGKBENT", 0x4b46},
+ {"linux/kd.h", "KDSKBENT", 0x4b47},
+ {"linux/kd.h", "KDGKBSENT", 0x4b48},
+ {"linux/kd.h", "KDSKBSENT", 0x4b49},
+ {"linux/kd.h", "KDGKBDIACR", 0x4b4a},
+ {"linux/kd.h", "KDSKBDIACR", 0x4b4b},
+ {"linux/kd.h", "KDGETKEYCODE", 0x4b4c},
+ {"linux/kd.h", "KDSETKEYCODE", 0x4b4d},
+ {"linux/kd.h", "KDSIGACCEPT", 0x4b4e},
+ {"linux/kd.h", "KDKBDREP", 0x4b52},
+ {"linux/kd.h", "GIO_FONT", 0x4b60},
+ {"linux/kd.h", "PIO_FONT", 0x4b61},
+ {"linux/kd.h", "KDGKBMETA", 0x4b62},
+ {"linux/kd.h", "KDSKBMETA", 0x4b63},
+ {"linux/kd.h", "KDGKBLED", 0x4b64},
+ {"linux/kd.h", "KDSKBLED", 0x4b65},
+ {"linux/kd.h", "GIO_UNIMAP", 0x4b66},
+ {"linux/kd.h", "PIO_UNIMAP", 0x4b67},
+ {"linux/kd.h", "PIO_UNIMAPCLR", 0x4b68},
+ {"linux/kd.h", "GIO_UNISCRNMAP", 0x4b69},
+ {"linux/kd.h", "PIO_UNISCRNMAP", 0x4b6a},
+ {"linux/kd.h", "GIO_FONTX", 0x4b6b},
+ {"linux/kd.h", "PIO_FONTX", 0x4b6c},
+ {"linux/kd.h", "PIO_FONTRESET", 0x4b6d},
+ {"linux/kd.h", "GIO_CMAP", 0x4b70},
+ {"linux/kd.h", "PIO_CMAP", 0x4b71},
+ {"linux/kd.h", "KDFONTOP", 0x4b72},
+ {"linux/soundcard.h", "SOUND_MIXER_INFO", 0x4d65},
+ {"linux/soundcard.h", "SOUND_OLD_MIXER_INFO", 0x4d65},
+ {"linux/soundcard.h", "SOUND_MIXER_ACCESS", 0x4d66},
+ {"linux/soundcard.h", "SOUND_MIXER_AGC", 0x4d67},
+ {"linux/soundcard.h", "SOUND_MIXER_3DSE", 0x4d68},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE1", 0x4d6f},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE2", 0x4d70},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE3", 0x4d71},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE4", 0x4d72},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE5", 0x4d73},
+ {"linux/soundcard.h", "SOUND_MIXER_GETLEVELS", 0x4d74},
+ {"linux/soundcard.h", "SOUND_MIXER_SETLEVELS", 0x4d75},
+ {"linux/soundcard.h", "OSS_GETVERSION", 0x4d76},
+ {"linux/ticable.h", "IOCTL_TIUSB_TIMEOUT", 0x4e20},
+ {"linux/ticable.h", "IOCTL_TIUSB_RESET_DEVICE", 0x4e21},
+ {"linux/ticable.h", "IOCTL_TIUSB_RESET_PIPES", 0x4e22},
+ {"linux/soundcard.h", "SNDCTL_DSP_RESET", 0x5000},
+ {"linux/soundcard.h", "SNDCTL_DSP_SYNC", 0x5001},
+ {"linux/soundcard.h", "SNDCTL_DSP_SPEED", 0x5002},
+ {"linux/soundcard.h", "SOUND_PCM_READ_RATE", 0x5002},
+ {"linux/soundcard.h", "SNDCTL_DSP_STEREO", 0x5003},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETBLKSIZE", 0x5004},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETFMT", 0x5005},
+ {"linux/soundcard.h", "SOUND_PCM_READ_BITS", 0x5005},
+ {"linux/soundcard.h", "SNDCTL_DSP_CHANNELS", 0x5006},
+ {"linux/soundcard.h", "SOUND_PCM_READ_CHANNELS", 0x5006},
+ {"linux/soundcard.h", "SOUND_PCM_READ_FILTER", 0x5007},
+ {"linux/soundcard.h", "SOUND_PCM_WRITE_FILTER", 0x5007},
+ {"linux/soundcard.h", "SNDCTL_DSP_POST", 0x5008},
+ {"linux/soundcard.h", "SNDCTL_DSP_SUBDIVIDE", 0x5009},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETFRAGMENT", 0x500a},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETFMTS", 0x500b},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETOSPACE", 0x500c},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETISPACE", 0x500d},
+ {"linux/soundcard.h", "SNDCTL_DSP_NONBLOCK", 0x500e},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETCAPS", 0x500f},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETTRIGGER", 0x5010},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETTRIGGER", 0x5010},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETIPTR", 0x5011},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETOPTR", 0x5012},
+ {"linux/soundcard.h", "SNDCTL_DSP_MAPINBUF", 0x5013},
+ {"linux/soundcard.h", "SNDCTL_DSP_MAPOUTBUF", 0x5014},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETSYNCRO", 0x5015},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETDUPLEX", 0x5016},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETODELAY", 0x5017},
+ {"linux/soundcard.h", "SNDCTL_DSP_PROFILE", 0x5017},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETCHANNELMASK", 0x5040},
+ {"linux/soundcard.h", "SNDCTL_DSP_BIND_CHANNEL", 0x5041},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETSPDIF", 0x5042},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETSPDIF", 0x5043},
+ {"linux/soundcard.h", "SNDCTL_SEQ_RESET", 0x5100},
+ {"linux/soundcard.h", "SNDCTL_SEQ_SYNC", 0x5101},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_INFO", 0x5102},
+ {"linux/soundcard.h", "SNDCTL_SEQ_CTRLRATE", 0x5103},
+ {"linux/soundcard.h", "SNDCTL_SEQ_GETOUTCOUNT", 0x5104},
+ {"linux/soundcard.h", "SNDCTL_SEQ_GETINCOUNT", 0x5105},
+ {"linux/soundcard.h", "SNDCTL_SEQ_PERCMODE", 0x5106},
+ {"linux/soundcard.h", "SNDCTL_FM_LOAD_INSTR", 0x5107},
+ {"linux/soundcard.h", "SNDCTL_SEQ_TESTMIDI", 0x5108},
+ {"linux/soundcard.h", "SNDCTL_SEQ_RESETSAMPLES", 0x5109},
+ {"linux/soundcard.h", "SNDCTL_SEQ_NRSYNTHS", 0x510a},
+ {"linux/soundcard.h", "SNDCTL_SEQ_NRMIDIS", 0x510b},
+ {"linux/soundcard.h", "SNDCTL_MIDI_INFO", 0x510c},
+ {"linux/soundcard.h", "SNDCTL_SEQ_THRESHOLD", 0x510d},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_MEMAVL", 0x510e},
+ {"linux/soundcard.h", "SNDCTL_FM_4OP_ENABLE", 0x510f},
+ {"linux/soundcard.h", "SNDCTL_SEQ_PANIC", 0x5111},
+ {"linux/soundcard.h", "SNDCTL_SEQ_OUTOFBAND", 0x5112},
+ {"linux/soundcard.h", "SNDCTL_SEQ_GETTIME", 0x5113},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_ID", 0x5114},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_CONTROL", 0x5115},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_REMOVESAMPLE", 0x5116},
+ {"linux/random.h", "RNDGETENTCNT", 0x5200},
+ {"linux/random.h", "RNDADDTOENTCNT", 0x5201},
+ {"linux/random.h", "RNDGETPOOL", 0x5202},
+ {"linux/random.h", "RNDADDENTROPY", 0x5203},
+ {"linux/random.h", "RNDZAPENTCNT", 0x5204},
+ {"linux/random.h", "RNDCLEARPOOL", 0x5206},
+ {"linux/cdrom.h", "CDROMPAUSE", 0x5301},
+ {"linux/cdrom.h", "CDROMRESUME", 0x5302},
+ {"linux/cdrom.h", "CDROMPLAYMSF", 0x5303},
+ {"linux/cdrom.h", "CDROMPLAYTRKIND", 0x5304},
+ {"linux/cdrom.h", "CDROMREADTOCHDR", 0x5305},
+ {"linux/cdrom.h", "CDROMREADTOCENTRY", 0x5306},
+ {"linux/cdrom.h", "CDROMSTOP", 0x5307},
+ {"linux/cdrom.h", "CDROMSTART", 0x5308},
+ {"linux/cdrom.h", "CDROMEJECT", 0x5309},
+ {"linux/cdrom.h", "CDROMVOLCTRL", 0x530a},
+ {"linux/cdrom.h", "CDROMSUBCHNL", 0x530b},
+ {"linux/cdrom.h", "CDROMREADMODE2", 0x530c},
+ {"linux/cdrom.h", "CDROMREADMODE1", 0x530d},
+ {"linux/cdrom.h", "CDROMREADAUDIO", 0x530e},
+ {"linux/cdrom.h", "CDROMEJECT_SW", 0x530f},
+ {"linux/cdrom.h", "CDROMMULTISESSION", 0x5310},
+ {"linux/cdrom.h", "CDROM_GET_MCN", 0x5311},
+ {"linux/cdrom.h", "CDROMRESET", 0x5312},
+ {"linux/cdrom.h", "CDROMVOLREAD", 0x5313},
+ {"linux/cdrom.h", "CDROMREADRAW", 0x5314},
+ {"linux/cdrom.h", "CDROMREADCOOKED", 0x5315},
+ {"linux/cdrom.h", "CDROMSEEK", 0x5316},
+ {"linux/cdrom.h", "CDROMPLAYBLK", 0x5317},
+ {"linux/cdrom.h", "CDROMREADALL", 0x5318},
+ {"linux/cdrom.h", "CDROMCLOSETRAY", 0x5319},
+ {"linux/cdrom.h", "CDROMGETSPINDOWN", 0x531d},
+ {"linux/cdrom.h", "CDROMSETSPINDOWN", 0x531e},
+ {"linux/cdrom.h", "CDROM_SET_OPTIONS", 0x5320},
+ {"linux/cdrom.h", "CDROM_CLEAR_OPTIONS", 0x5321},
+ {"linux/cdrom.h", "CDROM_SELECT_SPEED", 0x5322},
+ {"linux/cdrom.h", "CDROM_SELECT_DISC", 0x5323},
+ {"linux/cdrom.h", "CDROM_MEDIA_CHANGED", 0x5325},
+ {"linux/cdrom.h", "CDROM_DRIVE_STATUS", 0x5326},
+ {"linux/cdrom.h", "CDROM_DISC_STATUS", 0x5327},
+ {"linux/cdrom.h", "CDROM_CHANGER_NSLOTS", 0x5328},
+ {"linux/cdrom.h", "CDROM_LOCKDOOR", 0x5329},
+ {"linux/cdrom.h", "CDROM_DEBUG", 0x5330},
+ {"linux/cdrom.h", "CDROM_GET_CAPABILITY", 0x5331},
+ {"scsi/scsi_ioctl.h", "SCSI_IOCTL_DOORLOCK", 0x5380},
+ {"scsi/scsi_ioctl.h", "SCSI_IOCTL_DOORUNLOCK", 0x5381},
+ {"linux/cdrom.h", "CDROMAUDIOBUFSIZ", 0x5382},
+ {"scsi/scsi.h", "SCSI_IOCTL_GET_IDLUN", 0x5382},
+ {"scsi/scsi.h", "SCSI_IOCTL_TAGGED_ENABLE", 0x5383},
+ {"scsi/scsi.h", "SCSI_IOCTL_TAGGED_DISABLE", 0x5384},
+ {"scsi/scsi.h", "SCSI_IOCTL_PROBE_HOST", 0x5385},
+ {"scsi/scsi.h", "SCSI_IOCTL_GET_BUS_NUMBER", 0x5386},
+ {"linux/cdrom.h", "DVD_READ_STRUCT", 0x5390},
+ {"linux/cdrom.h", "DVD_WRITE_STRUCT", 0x5391},
+ {"linux/cdrom.h", "DVD_AUTH", 0x5392},
+ {"linux/cdrom.h", "CDROM_SEND_PACKET", 0x5393},
+ {"linux/cdrom.h", "CDROM_NEXT_WRITABLE", 0x5394},
+ {"linux/cdrom.h", "CDROM_LAST_WRITTEN", 0x5395},
+ {"linux/soundcard.h", "SNDCTL_TMR_TIMEBASE", 0x5401},
+ {"linux/soundcard.h", "SNDCTL_TMR_START", 0x5402},
+ {"linux/soundcard.h", "SNDCTL_TMR_STOP", 0x5403},
+ {"linux/soundcard.h", "SNDCTL_TMR_CONTINUE", 0x5404},
+ {"linux/soundcard.h", "SNDCTL_TMR_TEMPO", 0x5405},
+ {"linux/soundcard.h", "SNDCTL_TMR_SOURCE", 0x5406},
+ {"linux/soundcard.h", "SNDCTL_TMR_METRONOME", 0x5407},
+ {"linux/soundcard.h", "SNDCTL_TMR_SELECT", 0x5408},
+ {"asm/ioctls.h", "TIOCEXCL", 0x540c},
+ {"asm/ioctls.h", "TIOCNXCL", 0x540d},
+ {"asm/ioctls.h", "TIOCSCTTY", 0x540e},
+ {"asm/ioctls.h", "TIOCSTI", 0x5412},
+ {"asm/ioctls.h", "TIOCMGET", 0x5415},
+ {"asm/ioctls.h", "TIOCMBIS", 0x5416},
+ {"asm/ioctls.h", "TIOCMBIC", 0x5417},
+ {"asm/ioctls.h", "TIOCMSET", 0x5418},
+ {"asm/ioctls.h", "TIOCGSOFTCAR", 0x5419},
+ {"asm/ioctls.h", "TIOCSSOFTCAR", 0x541a},
+ {"asm/ioctls.h", "TIOCLINUX", 0x541c},
+ {"asm/ioctls.h", "TIOCCONS", 0x541d},
+ {"asm/ioctls.h", "TIOCGSERIAL", 0x541e},
+ {"asm/ioctls.h", "TIOCSSERIAL", 0x541f},
+ {"asm/ioctls.h", "TIOCPKT", 0x5420},
+ {"asm/ioctls.h", "TIOCNOTTY", 0x5422},
+ {"asm/ioctls.h", "TIOCSETD", 0x5423},
+ {"asm/ioctls.h", "TIOCGETD", 0x5424},
+ {"asm/ioctls.h", "TCSBRKP", 0x5425},
+ {"asm/ioctls.h", "TIOCSBRK", 0x5427},
+ {"asm/ioctls.h", "TIOCCBRK", 0x5428},
+ {"asm/ioctls.h", "TIOCGSID", 0x5429},
+ {"asm/ioctls.h", "TIOCGPTN", 0x5430},
+ {"asm/ioctls.h", "TIOCSPTLCK", 0x5431},
+ {"asm/ioctls.h", "TIOCSERCONFIG", 0x5453},
+ {"asm/ioctls.h", "TIOCSERGWILD", 0x5454},
+ {"asm/ioctls.h", "TIOCSERSWILD", 0x5455},
+ {"asm/ioctls.h", "TIOCGLCKTRMIOS", 0x5456},
+ {"asm/ioctls.h", "TIOCSLCKTRMIOS", 0x5457},
+ {"asm/ioctls.h", "TIOCSERGSTRUCT", 0x5458},
+ {"asm/ioctls.h", "TIOCSERGETLSR", 0x5459},
+ {"asm/ioctls.h", "TIOCSERGETMULTI", 0x545a},
+ {"asm/ioctls.h", "TIOCSERSETMULTI", 0x545b},
+ {"asm/ioctls.h", "TIOCMIWAIT", 0x545c},
+ {"asm/ioctls.h", "TIOCGICOUNT", 0x545d},
+ {"linux/if_tun.h", "TUNSETNOCSUM", 0x54c8},
+ {"linux/if_tun.h", "TUNSETDEBUG", 0x54c9},
+ {"linux/if_tun.h", "TUNSETIFF", 0x54ca},
+ {"linux/if_tun.h", "TUNSETPERSIST", 0x54cb},
+ {"linux/if_tun.h", "TUNSETOWNER", 0x54cc},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CONTROL", 0x5500},
+ {"linux/uinput.h", "UI_DEV_CREATE", 0x5501},
+ {"linux/uinput.h", "UI_DEV_DESTROY", 0x5502},
+ {"linux/usbdevice_fs.h", "USBDEVFS_BULK", 0x5502},
+ {"linux/usbdevice_fs.h", "USBDEVFS_RESETEP", 0x5503},
+ {"linux/usbdevice_fs.h", "USBDEVFS_SETINTERFACE", 0x5504},
+ {"linux/usbdevice_fs.h", "USBDEVFS_SETCONFIGURATION", 0x5505},
+ {"linux/usbdevice_fs.h", "USBDEVFS_GETDRIVER", 0x5508},
+ {"linux/usbdevice_fs.h", "USBDEVFS_SUBMITURB", 0x550a},
+ {"linux/usbdevice_fs.h", "USBDEVFS_DISCARDURB", 0x550b},
+ {"linux/usbdevice_fs.h", "USBDEVFS_REAPURB", 0x550c},
+ {"linux/usbdevice_fs.h", "USBDEVFS_REAPURBNDELAY", 0x550d},
+ {"linux/usbdevice_fs.h", "USBDEVFS_DISCSIGNAL", 0x550e},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CLAIMINTERFACE", 0x550f},
+ {"linux/usbdevice_fs.h", "USBDEVFS_RELEASEINTERFACE", 0x5510},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CONNECTINFO", 0x5511},
+ {"linux/usbdevice_fs.h", "USBDEVFS_IOCTL", 0x5512},
+ {"linux/usbdevice_fs.h", "USBDEVFS_HUB_PORTINFO", 0x5513},
+ {"linux/usbdevice_fs.h", "USBDEVFS_RESET", 0x5514},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CLEAR_HALT", 0x5515},
+ {"linux/usbdevice_fs.h", "USBDEVFS_DISCONNECT", 0x5516},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CONNECT", 0x5517},
+ {"linux/uinput.h", "UI_SET_EVBIT", 0x5564},
+ {"linux/uinput.h", "UI_SET_KEYBIT", 0x5565},
+ {"linux/uinput.h", "UI_SET_RELBIT", 0x5566},
+ {"linux/uinput.h", "UI_SET_ABSBIT", 0x5567},
+ {"linux/uinput.h", "UI_SET_MSCBIT", 0x5568},
+ {"linux/uinput.h", "UI_SET_LEDBIT", 0x5569},
+ {"linux/uinput.h", "UI_SET_SNDBIT", 0x556a},
+ {"linux/uinput.h", "UI_SET_FFBIT", 0x556b},
+ {"linux/videodev2.h", "VIDIOC_QUERYCAP", 0x5600},
+ {"linux/vt.h", "VT_OPENQRY", 0x5600},
+ {"linux/videodev2.h", "VIDIOC_RESERVED", 0x5601},
+ {"linux/vt.h", "VT_GETMODE", 0x5601},
+ {"linux/videodev2.h", "VIDIOC_ENUM_FMT", 0x5602},
+ {"linux/vt.h", "VT_SETMODE", 0x5602},
+ {"linux/vt.h", "VT_GETSTATE", 0x5603},
+ {"linux/videodev2.h", "VIDIOC_G_FMT", 0x5604},
+ {"linux/vt.h", "VT_SENDSIG", 0x5604},
+ {"linux/videodev2.h", "VIDIOC_S_FMT", 0x5605},
+ {"linux/vt.h", "VT_RELDISP", 0x5605},
+ {"linux/videodev2.h", "VIDIOC_G_COMP", 0x5606},
+ {"linux/vt.h", "VT_ACTIVATE", 0x5606},
+ {"linux/videodev2.h", "VIDIOC_S_COMP", 0x5607},
+ {"linux/vt.h", "VT_WAITACTIVE", 0x5607},
+ {"linux/videodev2.h", "VIDIOC_REQBUFS", 0x5608},
+ {"linux/vt.h", "VT_DISALLOCATE", 0x5608},
+ {"linux/videodev2.h", "VIDIOC_QUERYBUF", 0x5609},
+ {"linux/vt.h", "VT_RESIZE", 0x5609},
+ {"linux/videodev2.h", "VIDIOC_G_FBUF", 0x560a},
+ {"linux/vt.h", "VT_RESIZEX", 0x560a},
+ {"linux/videodev2.h", "VIDIOC_S_FBUF", 0x560b},
+ {"linux/vt.h", "VT_LOCKSWITCH", 0x560b},
+ {"linux/vt.h", "VT_UNLOCKSWITCH", 0x560c},
+ {"linux/videodev2.h", "VIDIOC_OVERLAY", 0x560e},
+ {"linux/videodev2.h", "VIDIOC_QBUF", 0x560f},
+ {"linux/videodev2.h", "VIDIOC_DQBUF", 0x5611},
+ {"linux/videodev2.h", "VIDIOC_STREAMON", 0x5612},
+ {"linux/videodev2.h", "VIDIOC_STREAMOFF", 0x5613},
+ {"linux/videodev2.h", "VIDIOC_G_PARM", 0x5615},
+ {"linux/videodev2.h", "VIDIOC_S_PARM", 0x5616},
+ {"linux/videodev2.h", "VIDIOC_G_STD", 0x5617},
+ {"linux/videodev2.h", "VIDIOC_S_STD", 0x5618},
+ {"linux/videodev2.h", "VIDIOC_ENUMSTD", 0x5619},
+ {"linux/videodev2.h", "VIDIOC_ENUMINPUT", 0x561a},
+ {"linux/videodev2.h", "VIDIOC_G_CTRL", 0x561b},
+ {"linux/videodev2.h", "VIDIOC_S_CTRL", 0x561c},
+ {"linux/videodev2.h", "VIDIOC_G_TUNER", 0x561d},
+ {"linux/videodev2.h", "VIDIOC_S_TUNER", 0x561e},
+ {"linux/videodev2.h", "VIDIOC_G_AUDIO", 0x5621},
+ {"linux/videodev2.h", "VIDIOC_S_AUDIO", 0x5622},
+ {"linux/videodev2.h", "VIDIOC_QUERYCTRL", 0x5624},
+ {"linux/videodev2.h", "VIDIOC_QUERYMENU", 0x5625},
+ {"linux/videodev2.h", "VIDIOC_G_INPUT", 0x5626},
+ {"linux/videodev2.h", "VIDIOC_S_INPUT", 0x5627},
+ {"linux/videodev2.h", "VIDIOC_G_OUTPUT", 0x562e},
+ {"linux/videodev2.h", "VIDIOC_S_OUTPUT", 0x562f},
+ {"linux/videodev2.h", "VIDIOC_ENUMOUTPUT", 0x5630},
+ {"linux/videodev2.h", "VIDIOC_G_AUDOUT", 0x5631},
+ {"linux/videodev2.h", "VIDIOC_S_AUDOUT", 0x5632},
+ {"linux/videodev2.h", "VIDIOC_G_MODULATOR", 0x5636},
+ {"linux/videodev2.h", "VIDIOC_S_MODULATOR", 0x5637},
+ {"linux/videodev2.h", "VIDIOC_G_FREQUENCY", 0x5638},
+ {"linux/videodev2.h", "VIDIOC_S_FREQUENCY", 0x5639},
+ {"linux/videodev2.h", "VIDIOC_CROPCAP", 0x563a},
+ {"linux/videodev2.h", "VIDIOC_G_CROP", 0x563b},
+ {"linux/videodev2.h", "VIDIOC_S_CROP", 0x563c},
+ {"linux/videodev2.h", "VIDIOC_G_JPEGCOMP", 0x563d},
+ {"linux/videodev2.h", "VIDIOC_S_JPEGCOMP", 0x563e},
+ {"linux/videodev2.h", "VIDIOC_QUERYSTD", 0x563f},
+ {"linux/videodev2.h", "VIDIOC_TRY_FMT", 0x5640},
+ {"linux/watchdog.h", "WDIOC_GETSUPPORT", 0x5700},
+ {"linux/watchdog.h", "WDIOC_GETSTATUS", 0x5701},
+ {"linux/watchdog.h", "WDIOC_GETBOOTSTATUS", 0x5702},
+ {"linux/watchdog.h", "WDIOC_GETTEMP", 0x5703},
+ {"linux/watchdog.h", "WDIOC_SETOPTIONS", 0x5704},
+ {"linux/watchdog.h", "WDIOC_KEEPALIVE", 0x5705},
+ {"linux/watchdog.h", "WDIOC_SETTIMEOUT", 0x5706},
+ {"linux/watchdog.h", "WDIOC_GETTIMEOUT", 0x5707},
+ {"linux/ite_gpio.h", "ITE_GPIO_IN", 0x5a00},
+ {"linux/ite_gpio.h", "ITE_GPIO_OUT", 0x5a01},
+ {"linux/ite_gpio.h", "ITE_GPIO_INT_CTRL", 0x5a02},
+ {"linux/ite_gpio.h", "ITE_GPIO_IN_STATUS", 0x5a03},
+ {"linux/ite_gpio.h", "ITE_GPIO_OUT_STATUS", 0x5a04},
+ {"linux/ite_gpio.h", "ITE_GPIO_GEN_CTRL", 0x5a05},
+ {"linux/ite_gpio.h", "ITE_GPIO_INT_WAIT", 0x5a06},
+ {"linux/sonet.h", "SONET_GETSTAT", 0x6110},
+ {"linux/sonet.h", "SONET_GETSTATZ", 0x6111},
+ {"linux/sonet.h", "SONET_SETDIAG", 0x6112},
+ {"linux/sonet.h", "SONET_CLRDIAG", 0x6113},
+ {"linux/sonet.h", "SONET_GETDIAG", 0x6114},
+ {"linux/sonet.h", "SONET_SETFRAMING", 0x6115},
+ {"linux/sonet.h", "SONET_GETFRAMING", 0x6116},
+ {"linux/sonet.h", "SONET_GETFRSENSE", 0x6117},
+ {"linux/atm_idt77105.h", "IDT77105_GETSTAT", 0x6132},
+ {"linux/atm_idt77105.h", "IDT77105_GETSTATZ", 0x6133},
+ {"linux/atmdev.h", "ATM_GETSTAT", 0x6150},
+ {"linux/atmdev.h", "ATM_GETSTATZ", 0x6151},
+ {"linux/atmdev.h", "ATM_GETLOOP", 0x6152},
+ {"linux/atmdev.h", "ATM_SETLOOP", 0x6153},
+ {"linux/atmdev.h", "ATM_QUERYLOOP", 0x6154},
+ {"linux/atm_eni.h", "ENI_MEMDUMP", 0x6160},
+ {"linux/atm_he.h", "HE_GET_REG", 0x6160},
+ {"linux/atm_nicstar.h", "NS_GETPSTAT", 0x6161},
+ {"linux/atm_zatm.h", "ZATM_GETPOOL", 0x6161},
+ {"linux/atm_nicstar.h", "NS_SETBUFLEV", 0x6162},
+ {"linux/atm_zatm.h", "ZATM_GETPOOLZ", 0x6162},
+ {"linux/atm_nicstar.h", "NS_ADJBUFLEV", 0x6163},
+ {"linux/atm_zatm.h", "ZATM_SETPOOL", 0x6163},
+ {"linux/atm_eni.h", "ENI_SETMULT", 0x6167},
+ {"linux/atm_tcp.h", "SIOCSIFATMTCP", 0x6180},
+ {"linux/atmdev.h", "ATM_GETLINKRATE", 0x6181},
+ {"linux/atmdev.h", "ATM_GETNAMES", 0x6183},
+ {"linux/atmdev.h", "ATM_GETTYPE", 0x6184},
+ {"linux/atmdev.h", "ATM_GETESI", 0x6185},
+ {"linux/atmdev.h", "ATM_GETADDR", 0x6186},
+ {"linux/atmdev.h", "ATM_RSTADDR", 0x6187},
+ {"linux/atmdev.h", "ATM_ADDADDR", 0x6188},
+ {"linux/atmdev.h", "ATM_DELADDR", 0x6189},
+ {"linux/atmdev.h", "ATM_GETCIRANGE", 0x618a},
+ {"linux/atmdev.h", "ATM_SETCIRANGE", 0x618b},
+ {"linux/atmdev.h", "ATM_SETESI", 0x618c},
+ {"linux/atmdev.h", "ATM_SETESIF", 0x618d},
+ {"linux/atm_tcp.h", "ATMTCP_CREATE", 0x618e},
+ {"linux/atm_tcp.h", "ATMTCP_REMOVE", 0x618f},
+ {"linux/atmbr2684.h", "BR2684_SETFILT", 0x6190},
+ {"linux/atmlec.h", "ATMLEC_CTRL", 0x61d0},
+ {"linux/atmlec.h", "ATMLEC_DATA", 0x61d1},
+ {"linux/atmlec.h", "ATMLEC_MCAST", 0x61d2},
+ {"linux/atmmpc.h", "ATMMPC_CTRL", 0x61d8},
+ {"linux/atmmpc.h", "ATMMPC_DATA", 0x61d9},
+ {"linux/atmclip.h", "SIOCMKCLIP", 0x61e0},
+ {"linux/atmarp.h", "ATMARPD_CTRL", 0x61e1},
+ {"linux/atmarp.h", "ATMARP_MKIP", 0x61e2},
+ {"linux/atmarp.h", "ATMARP_SETENTRY", 0x61e3},
+ {"linux/atmarp.h", "ATMARP_ENCAP", 0x61e5},
+ {"linux/atmsvc.h", "ATMSIGD_CTRL", 0x61f0},
+ {"linux/atmdev.h", "ATM_SETSC", 0x61f1},
+ {"linux/atmdev.h", "ATM_SETBACKEND", 0x61f2},
+ {"linux/atmdev.h", "ATM_NEWBACKENDIF", 0x61f3},
+ {"linux/coda.h", "CIOC_KERNEL_VERSION", 0x630a},
+ {"linux/comstats.h", "COM_GETPORTSTATS", 0x631e},
+ {"linux/comstats.h", "COM_CLRPORTSTATS", 0x631f},
+ {"linux/comstats.h", "COM_GETBRDSTATS", 0x6320},
+ {"linux/comstats.h", "COM_READPORT", 0x6328},
+ {"linux/comstats.h", "COM_READBOARD", 0x6329},
+ {"linux/comstats.h", "COM_READPANEL", 0x632a},
+ {"linux/devfs_fs.h", "DEVFSDIOC_GET_PROTO_REV", 0x6400},
+ {"linux/video_decoder.h", "DECODER_GET_CAPABILITIES", 0x6401},
+ {"linux/video_decoder.h", "DECODER_GET_STATUS", 0x6402},
+ {"linux/devfs_fs.h", "DEVFSDIOC_SET_EVENT_MASK", 0x6402},
+ {"linux/video_decoder.h", "DECODER_SET_NORM", 0x6403},
+ {"linux/devfs_fs.h", "DEVFSDIOC_RELEASE_EVENT_QUEUE", 0x6403},
+ {"linux/video_decoder.h", "DECODER_SET_INPUT", 0x6404},
+ {"linux/devfs_fs.h", "DEVFSDIOC_SET_DEBUG_MASK", 0x6404},
+ {"linux/video_decoder.h", "DECODER_SET_OUTPUT", 0x6405},
+ {"linux/video_decoder.h", "DECODER_ENABLE_OUTPUT", 0x6406},
+ {"linux/video_decoder.h", "DECODER_SET_PICTURE", 0x6407},
+ {"linux/video_decoder.h", "DECODER_DUMP", 0x64c0},
+ {"linux/video_encoder.h", "ENCODER_GET_CAPABILITIES", 0x6501},
+ {"linux/video_encoder.h", "ENCODER_SET_NORM", 0x6502},
+ {"linux/video_encoder.h", "ENCODER_SET_INPUT", 0x6503},
+ {"linux/video_encoder.h", "ENCODER_SET_OUTPUT", 0x6504},
+ {"linux/video_encoder.h", "ENCODER_ENABLE_OUTPUT", 0x6505},
+ {"linux/ext2_fs.h", "EXT2_IOC_GETFLAGS", 0x6601},
+ {"linux/ext3_fs.h", "EXT3_IOC_GETFLAGS", 0x6601},
+ {"asm/ioctls.h", "FIOCLEX", 0x6601},
+ {"linux/ext2_fs.h", "EXT2_IOC_SETFLAGS", 0x6602},
+ {"linux/ext3_fs.h", "EXT3_IOC_SETFLAGS", 0x6602},
+ {"asm/ioctls.h", "FIONCLEX", 0x6602},
+ {"linux/ext3_fs.h", "EXT3_IOC_GETVERSION", 0x6603},
+ {"linux/ext3_fs.h", "EXT3_IOC_SETVERSION", 0x6604},
+ {"linux/ext3_fs.h", "EXT3_IOC_WAIT_FOR_READONLY", 0x6663},
+ {"asm/sockios.h", "FIOGETOWN", 0x667b},
+ {"asm/sockios.h", "FIOSETOWN", 0x667c},
+ {"asm/ioctls.h", "FIOASYNC", 0x667d},
+ {"asm/ioctls.h", "FIONBIO", 0x667e},
+ {"asm/ioctls.h", "FIONREAD", 0x667f},
+ {"asm/ioctls.h", "FIOQSIZE", 0x6680},
+ {"linux/usb_gadgetfs.h", "GADGETFS_FIFO_STATUS", 0x6701},
+ {"linux/usb_gadgetfs.h", "GADGETFS_FIFO_FLUSH", 0x6702},
+ {"linux/usb_gadgetfs.h", "GADGETFS_CLEAR_HALT", 0x6703},
+ {"linux/i2o-dev.h", "I2OGETIOPS", 0x6900},
+ {"linux/i2o-dev.h", "I2OHRTGET", 0x6901},
+ {"linux/i2o-dev.h", "I2OLCTGET", 0x6902},
+ {"linux/i2o-dev.h", "I2OPARMSET", 0x6903},
+ {"linux/i2o-dev.h", "I2OPARMGET", 0x6904},
+ {"linux/i2o-dev.h", "I2OSWDL", 0x6905},
+ {"linux/i2o-dev.h", "I2OSWUL", 0x6906},
+ {"linux/i2o-dev.h", "I2OSWDEL", 0x6907},
+ {"linux/i2o-dev.h", "I2OVALIDATE", 0x6908},
+ {"linux/i2o-dev.h", "I2OHTML", 0x6909},
+ {"linux/i2o-dev.h", "I2OEVTREG", 0x690a},
+ {"linux/i2o-dev.h", "I2OEVTGET", 0x690b},
+ {"linux/ipmi.h", "IPMICTL_RECEIVE_MSG_TRUNC", 0x690b},
+ {"linux/ipmi.h", "IPMICTL_RECEIVE_MSG", 0x690c},
+ {"linux/ipmi.h", "IPMICTL_SEND_COMMAND", 0x690d},
+ {"linux/ipmi.h", "IPMICTL_REGISTER_FOR_CMD", 0x690e},
+ {"linux/ipmi.h", "IPMICTL_UNREGISTER_FOR_CMD", 0x690f},
+ {"linux/ipmi.h", "IPMICTL_SET_GETS_EVENTS_CMD", 0x6910},
+ {"linux/ipmi.h", "IPMICTL_SET_MY_ADDRESS_CMD", 0x6911},
+ {"linux/ipmi.h", "IPMICTL_GET_MY_ADDRESS_CMD", 0x6912},
+ {"linux/ipmi.h", "IPMICTL_SET_MY_LUN_CMD", 0x6913},
+ {"linux/ipmi.h", "IPMICTL_GET_MY_LUN_CMD", 0x6914},
+ {"linux/i8k.h", "I8K_BIOS_VERSION", 0x6980},
+ {"linux/i8k.h", "I8K_MACHINE_ID", 0x6981},
+ {"linux/i8k.h", "I8K_POWER_STATUS", 0x6982},
+ {"linux/i8k.h", "I8K_FN_STATUS", 0x6983},
+ {"linux/i8k.h", "I8K_GET_TEMP", 0x6984},
+ {"linux/i8k.h", "I8K_GET_SPEED", 0x6985},
+ {"linux/i8k.h", "I8K_GET_FAN", 0x6986},
+ {"linux/i8k.h", "I8K_SET_FAN", 0x6987},
+ {"linux/joystick.h", "JSIOCGVERSION", 0x6a01},
+ {"linux/joystick.h", "JSIOCGAXES", 0x6a11},
+ {"linux/joystick.h", "JSIOCGBUTTONS", 0x6a12},
+ {"linux/joystick.h", "JSIOCSCORR", 0x6a21},
+ {"linux/joystick.h", "JSIOCGCORR", 0x6a22},
+ {"linux/joystick.h", "JSIOCSAXMAP", 0x6a31},
+ {"linux/joystick.h", "JSIOCGAXMAP", 0x6a32},
+ {"linux/joystick.h", "JSIOCSBTNMAP", 0x6a33},
+ {"linux/joystick.h", "JSIOCGBTNMAP", 0x6a34},
+ {"linux/udf_fs_i.h", "UDF_GETEASIZE", 0x6c40},
+ {"linux/udf_fs_i.h", "UDF_GETEABLOCK", 0x6c41},
+ {"linux/udf_fs_i.h", "UDF_GETVOLIDENT", 0x6c42},
+ {"linux/udf_fs_i.h", "UDF_RELOCATE_BLOCKS", 0x6c43},
+ {"linux/synclink.h", "MGSL_IOCSPARAMS", 0x6d00},
+ {"linux/soundcard.h", "SNDCTL_MIDI_PRETIME", 0x6d00},
+ {"linux/synclink.h", "MGSL_IOCGPARAMS", 0x6d01},
+ {"linux/mtio.h", "MTIOCTOP", 0x6d01},
+ {"linux/soundcard.h", "SNDCTL_MIDI_MPUMODE", 0x6d01},
+ {"linux/synclink.h", "MGSL_IOCSTXIDLE", 0x6d02},
+ {"linux/mtio.h", "MTIOCGET", 0x6d02},
+ {"linux/soundcard.h", "SNDCTL_MIDI_MPUCMD", 0x6d02},
+ {"linux/synclink.h", "MGSL_IOCGTXIDLE", 0x6d03},
+ {"linux/mtio.h", "MTIOCPOS", 0x6d03},
+ {"linux/synclink.h", "MGSL_IOCTXENABLE", 0x6d04},
+ {"linux/mtio.h", "MTIOCGETCONFIG", 0x6d04},
+ {"linux/synclink.h", "MGSL_IOCRXENABLE", 0x6d05},
+ {"linux/mtio.h", "MTIOCSETCONFIG", 0x6d05},
+ {"linux/synclink.h", "MGSL_IOCTXABORT", 0x6d06},
+ {"linux/mtio.h", "MTIOCRDFTSEG", 0x6d06},
+ {"linux/synclink.h", "MGSL_IOCGSTATS", 0x6d07},
+ {"linux/mtio.h", "MTIOCWRFTSEG", 0x6d07},
+ {"linux/synclink.h", "MGSL_IOCWAITEVENT", 0x6d08},
+ {"linux/mtio.h", "MTIOCVOLINFO", 0x6d08},
+ {"linux/synclink.h", "MGSL_IOCLOOPTXDONE", 0x6d09},
+ {"linux/mtio.h", "MTIOCGETSIZE", 0x6d09},
+ {"linux/synclink.h", "MGSL_IOCSIF", 0x6d0a},
+ {"linux/mtio.h", "MTIOCFTFORMAT", 0x6d0a},
+ {"linux/synclink.h", "MGSL_IOCGIF", 0x6d0b},
+ {"linux/mtio.h", "MTIOCFTCMD", 0x6d0b},
+ {"linux/synclink.h", "MGSL_IOCCLRMODCOUNT", 0x6d0f},
+ {"linux/zftape.h", "MTIOC_ZFTAPE_GETBLKSZ", 0x6d68},
+ {"linux/ncp_fs.h", "NCP_IOC_NCPREQUEST", 0x6e01},
+ {"linux/ncp_fs.h", "NCP_IOC_GETMOUNTUID", 0x6e02},
+ {"linux/ncp_fs.h", "NCP_IOC_GETMOUNTUID2", 0x6e02},
+ {"linux/ncp_fs.h", "NCP_IOC_CONN_LOGGED_IN", 0x6e03},
+ {"linux/ncp_fs.h", "NCP_IOC_GET_FS_INFO", 0x6e04},
+ {"linux/ncp_fs.h", "NCP_IOC_GET_FS_INFO_V2", 0x6e04},
+ {"linux/ncp_fs.h", "NCP_IOC_SIGN_INIT", 0x6e05},
+ {"linux/ncp_fs.h", "NCP_IOC_SET_SIGN_WANTED", 0x6e06},
+ {"linux/ncp_fs.h", "NCP_IOC_SIGN_WANTED", 0x6e06},
+ {"linux/ncp_fs.h", "NCP_IOC_LOCKUNLOCK", 0x6e07},
+ {"linux/ncp_fs.h", "NCP_IOC_GETROOT", 0x6e08},
+ {"linux/ncp_fs.h", "NCP_IOC_SETROOT", 0x6e08},
+ {"linux/ncp_fs.h", "NCP_IOC_GETOBJECTNAME", 0x6e09},
+ {"linux/ncp_fs.h", "NCP_IOC_SETOBJECTNAME", 0x6e09},
+ {"linux/ncp_fs.h", "NCP_IOC_GETPRIVATEDATA", 0x6e0a},
+ {"linux/ncp_fs.h", "NCP_IOC_SETPRIVATEDATA", 0x6e0a},
+ {"linux/ncp_fs.h", "NCP_IOC_GETCHARSETS", 0x6e0b},
+ {"linux/ncp_fs.h", "NCP_IOC_SETCHARSETS", 0x6e0b},
+ {"linux/ncp_fs.h", "NCP_IOC_GETDENTRYTTL", 0x6e0c},
+ {"linux/ncp_fs.h", "NCP_IOC_SETDENTRYTTL", 0x6e0c},
+ {"linux/matroxfb.h", "MATROXFB_GET_OUTPUT_CONNECTION", 0x6ef8},
+ {"linux/matroxfb.h", "MATROXFB_SET_OUTPUT_CONNECTION", 0x6ef8},
+ {"linux/matroxfb.h", "MATROXFB_GET_AVAILABLE_OUTPUTS", 0x6ef9},
+ {"linux/matroxfb.h", "MATROXFB_GET_OUTPUT_MODE", 0x6efa},
+ {"linux/matroxfb.h", "MATROXFB_SET_OUTPUT_MODE", 0x6efa},
+ {"linux/matroxfb.h", "MATROXFB_GET_ALL_OUTPUTS", 0x6efb},
+ {"linux/rtc.h", "RTC_AIE_ON", 0x7001},
+ {"linux/rtc.h", "RTC_AIE_OFF", 0x7002},
+ {"linux/rtc.h", "RTC_UIE_ON", 0x7003},
+ {"linux/rtc.h", "RTC_UIE_OFF", 0x7004},
+ {"linux/rtc.h", "RTC_PIE_ON", 0x7005},
+ {"linux/rtc.h", "RTC_PIE_OFF", 0x7006},
+ {"linux/rtc.h", "RTC_ALM_SET", 0x7007},
+ {"linux/rtc.h", "RTC_ALM_READ", 0x7008},
+ {"linux/rtc.h", "RTC_RD_TIME", 0x7009},
+ {"linux/rtc.h", "RTC_SET_TIME", 0x700a},
+ {"linux/rtc.h", "RTC_IRQP_READ", 0x700b},
+ {"linux/rtc.h", "RTC_IRQP_SET", 0x700c},
+ {"linux/rtc.h", "RTC_EPOCH_READ", 0x700d},
+ {"linux/rtc.h", "RTC_EPOCH_SET", 0x700e},
+ {"linux/rtc.h", "RTC_WIE_ON", 0x700f},
+ {"linux/rtc.h", "RTC_WKALM_SET", 0x700f},
+ {"linux/rtc.h", "RTC_WIE_OFF", 0x7010},
+ {"linux/rtc.h", "RTC_WKALM_RD", 0x7010},
+ {"linux/rtc.h", "RTC_PLL_GET", 0x7011},
+ {"linux/rtc.h", "RTC_PLL_SET", 0x7012},
+ {"linux/nvram.h", "NVRAM_INIT", 0x7040},
+ {"asm/nvram.h", "PMAC_NVRAM_GET_OFFSET", 0x7040},
+ {"linux/nvram.h", "NVRAM_SETCKS", 0x7041},
+ {"linux/ppdev.h", "PPSETMODE", 0x7080},
+ {"linux/ppdev.h", "PPRSTATUS", 0x7081},
+ {"linux/ppdev.h", "PPRCONTROL", 0x7083},
+ {"linux/ppdev.h", "PPWCONTROL", 0x7084},
+ {"linux/ppdev.h", "PPRDATA", 0x7085},
+ {"linux/ppdev.h", "PPWDATA", 0x7086},
+ {"linux/ppdev.h", "PPCLAIM", 0x708b},
+ {"linux/ppdev.h", "PPRELEASE", 0x708c},
+ {"linux/ppdev.h", "PPYIELD", 0x708d},
+ {"linux/ppdev.h", "PPFCONTROL", 0x708e},
+ {"linux/ppdev.h", "PPEXCL", 0x708f},
+ {"linux/ppdev.h", "PPDATADIR", 0x7090},
+ {"linux/ppdev.h", "PPNEGOT", 0x7091},
+ {"linux/ppdev.h", "PPWCTLONIRQ", 0x7092},
+ {"linux/ppdev.h", "PPCLRIRQ", 0x7093},
+ {"linux/ppdev.h", "PPSETPHASE", 0x7094},
+ {"linux/ppdev.h", "PPGETTIME", 0x7095},
+ {"linux/ppdev.h", "PPSETTIME", 0x7096},
+ {"linux/ppdev.h", "PPGETMODES", 0x7097},
+ {"linux/ppdev.h", "PPGETMODE", 0x7098},
+ {"linux/ppdev.h", "PPGETPHASE", 0x7099},
+ {"linux/ppdev.h", "PPGETFLAGS", 0x709a},
+ {"linux/ppdev.h", "PPSETFLAGS", 0x709b},
+ {"linux/ticable.h", "IOCTL_TISER_DELAY", 0x70a0},
+ {"linux/ticable.h", "IOCTL_TISER_TIMEOUT", 0x70a1},
+ {"linux/ticable.h", "IOCTL_TIPAR_DELAY", 0x70a8},
+ {"linux/ticable.h", "IOCTL_TIPAR_TIMEOUT", 0x70a9},
+ {"linux/serio.h", "SPIOCSTYPE", 0x7101},
+ {"linux/videotext.h", "VTXIOCGETINFO", 0x7101},
+ {"linux/videotext.h", "VTXIOCCLRPAGE", 0x7102},
+ {"linux/videotext.h", "VTXIOCCLRFOUND", 0x7103},
+ {"linux/videotext.h", "VTXIOCPAGEREQ", 0x7104},
+ {"linux/videotext.h", "VTXIOCGETSTAT", 0x7105},
+ {"linux/videotext.h", "VTXIOCGETPAGE", 0x7106},
+ {"linux/videotext.h", "VTXIOCSTOPDAU", 0x7107},
+ {"linux/videotext.h", "VTXIOCPUTPAGE", 0x7108},
+ {"linux/videotext.h", "VTXIOCSETDISP", 0x7109},
+ {"linux/videotext.h", "VTXIOCPUTSTAT", 0x710a},
+ {"linux/videotext.h", "VTXIOCCLRCACHE", 0x710b},
+ {"linux/videotext.h", "VTXIOCSETVIRT", 0x710c},
+ {"linux/telephony.h", "PHONE_CAPABILITIES", 0x7180},
+ {"linux/telephony.h", "PHONE_CAPABILITIES_LIST", 0x7181},
+ {"linux/telephony.h", "PHONE_CAPABILITIES_CHECK", 0x7182},
+ {"linux/telephony.h", "PHONE_RING", 0x7183},
+ {"linux/telephony.h", "PHONE_HOOKSTATE", 0x7184},
+ {"linux/telephony.h", "PHONE_MAXRINGS", 0x7185},
+ {"linux/telephony.h", "PHONE_RING_CADENCE", 0x7186},
+ {"linux/telephony.h", "OLD_PHONE_RING_START", 0x7187},
+ {"linux/telephony.h", "PHONE_RING_START", 0x7187},
+ {"linux/telephony.h", "PHONE_RING_STOP", 0x7188},
+ {"linux/telephony.h", "PHONE_REC_CODEC", 0x7189},
+ {"linux/telephony.h", "PHONE_REC_START", 0x718a},
+ {"linux/telephony.h", "PHONE_REC_STOP", 0x718b},
+ {"linux/telephony.h", "PHONE_REC_DEPTH", 0x718c},
+ {"linux/telephony.h", "PHONE_FRAME", 0x718d},
+ {"linux/telephony.h", "PHONE_REC_VOLUME", 0x718e},
+ {"linux/telephony.h", "PHONE_REC_LEVEL", 0x718f},
+ {"linux/telephony.h", "PHONE_PLAY_CODEC", 0x7190},
+ {"linux/telephony.h", "PHONE_PLAY_START", 0x7191},
+ {"linux/telephony.h", "PHONE_PLAY_STOP", 0x7192},
+ {"linux/telephony.h", "PHONE_PLAY_DEPTH", 0x7193},
+ {"linux/telephony.h", "PHONE_PLAY_VOLUME", 0x7194},
+ {"linux/telephony.h", "PHONE_PLAY_LEVEL", 0x7195},
+ {"linux/telephony.h", "PHONE_DTMF_READY", 0x7196},
+ {"linux/telephony.h", "PHONE_GET_DTMF", 0x7197},
+ {"linux/telephony.h", "PHONE_GET_DTMF_ASCII", 0x7198},
+ {"linux/telephony.h", "PHONE_DTMF_OOB", 0x7199},
+ {"linux/telephony.h", "PHONE_EXCEPTION", 0x719a},
+ {"linux/telephony.h", "PHONE_PLAY_TONE", 0x719b},
+ {"linux/telephony.h", "PHONE_SET_TONE_ON_TIME", 0x719c},
+ {"linux/telephony.h", "PHONE_SET_TONE_OFF_TIME", 0x719d},
+ {"linux/telephony.h", "PHONE_GET_TONE_ON_TIME", 0x719e},
+ {"linux/telephony.h", "PHONE_GET_TONE_OFF_TIME", 0x719f},
+ {"linux/telephony.h", "PHONE_GET_TONE_STATE", 0x71a0},
+ {"linux/telephony.h", "PHONE_BUSY", 0x71a1},
+ {"linux/telephony.h", "PHONE_RINGBACK", 0x71a2},
+ {"linux/telephony.h", "PHONE_DIALTONE", 0x71a3},
+ {"linux/telephony.h", "PHONE_CPT_STOP", 0x71a4},
+ {"linux/telephony.h", "PHONE_PSTN_SET_STATE", 0x71a4},
+ {"linux/telephony.h", "PHONE_PSTN_GET_STATE", 0x71a5},
+ {"linux/telephony.h", "PHONE_WINK_DURATION", 0x71a6},
+ {"linux/telephony.h", "PHONE_QUERY_CODEC", 0x71a7},
+ {"linux/telephony.h", "PHONE_PSTN_LINETEST", 0x71a8},
+ {"linux/telephony.h", "PHONE_VAD", 0x71a9},
+ {"linux/telephony.h", "PHONE_WINK", 0x71aa},
+ {"linux/ixjuser.h", "IXJCTL_DSP_RESET", 0x71c0},
+ {"linux/ixjuser.h", "IXJCTL_CARDTYPE", 0x71c1},
+ {"linux/ixjuser.h", "IXJCTL_SERIAL", 0x71c2},
+ {"linux/ixjuser.h", "IXJCTL_DSP_TYPE", 0x71c3},
+ {"linux/ixjuser.h", "IXJCTL_DSP_VERSION", 0x71c4},
+ {"linux/ixjuser.h", "IXJCTL_DSP_IDLE", 0x71c5},
+ {"linux/ixjuser.h", "IXJCTL_TESTRAM", 0x71c6},
+ {"linux/ixjuser.h", "IXJCTL_SET_FILTER", 0x71c7},
+ {"linux/ixjuser.h", "IXJCTL_GET_FILTER_HIST", 0x71c8},
+ {"linux/ixjuser.h", "IXJCTL_INIT_TONE", 0x71c9},
+ {"linux/ixjuser.h", "IXJCTL_TONE_CADENCE", 0x71ca},
+ {"linux/ixjuser.h", "IXJCTL_AEC_START", 0x71cb},
+ {"linux/ixjuser.h", "IXJCTL_AEC_STOP", 0x71cc},
+ {"linux/ixjuser.h", "IXJCTL_AEC_GET_LEVEL", 0x71cd},
+ {"linux/ixjuser.h", "IXJCTL_SET_LED", 0x71ce},
+ {"linux/ixjuser.h", "IXJCTL_MIXER", 0x71cf},
+ {"linux/ixjuser.h", "IXJCTL_DAA_COEFF_SET", 0x71d0},
+ {"linux/ixjuser.h", "IXJCTL_PORT", 0x71d1},
+ {"linux/ixjuser.h", "IXJCTL_DAA_AGAIN", 0x71d2},
+ {"linux/ixjuser.h", "IXJCTL_PSTN_LINETEST", 0x71d3},
+ {"linux/ixjuser.h", "IXJCTL_CID", 0x71d4},
+ {"linux/ixjuser.h", "IXJCTL_POTS_PSTN", 0x71d5},
+ {"linux/ixjuser.h", "IXJCTL_FILTER_CADENCE", 0x71d6},
+ {"linux/ixjuser.h", "IXJCTL_PLAY_CID", 0x71d7},
+ {"linux/ixjuser.h", "IXJCTL_VMWI", 0x71d8},
+ {"linux/ixjuser.h", "IXJCTL_CIDCW", 0x71d9},
+ {"linux/ixjuser.h", "IXJCTL_VERSION", 0x71da},
+ {"linux/telephony.h", "PHONE_REC_VOLUME_LINEAR", 0x71db},
+ {"linux/telephony.h", "PHONE_PLAY_VOLUME_LINEAR", 0x71dc},
+ {"linux/ixjuser.h", "IXJCTL_SET_FILTER_RAW", 0x71dd},
+ {"linux/ixjuser.h", "IXJCTL_HZ", 0x71e0},
+ {"linux/ixjuser.h", "IXJCTL_RATE", 0x71e1},
+ {"linux/ixjuser.h", "IXJCTL_FRAMES_READ", 0x71e2},
+ {"linux/ixjuser.h", "IXJCTL_FRAMES_WRITTEN", 0x71e3},
+ {"linux/ixjuser.h", "IXJCTL_READ_WAIT", 0x71e4},
+ {"linux/ixjuser.h", "IXJCTL_WRITE_WAIT", 0x71e5},
+ {"linux/ixjuser.h", "IXJCTL_DRYBUFFER_READ", 0x71e6},
+ {"linux/ixjuser.h", "IXJCTL_DRYBUFFER_CLEAR", 0x71e7},
+ {"linux/ixjuser.h", "IXJCTL_DTMF_PRESCALE", 0x71e8},
+ {"linux/ixjuser.h", "IXJCTL_SIGCTL", 0x71e9},
+ {"linux/ixjuser.h", "IXJCTL_SC_RXG", 0x71ea},
+ {"linux/ixjuser.h", "IXJCTL_SC_TXG", 0x71eb},
+ {"linux/ixjuser.h", "IXJCTL_INTERCOM_START", 0x71fd},
+ {"linux/ixjuser.h", "IXJCTL_INTERCOM_STOP", 0x71fe},
+ {"linux/videotext.h", "TUNIOCGETINFO", 0x7201},
+ {"linux/msdos_fs.h", "VFAT_IOCTL_READDIR_BOTH", 0x7201},
+ {"linux/videotext.h", "TUNIOCRESET", 0x7202},
+ {"linux/msdos_fs.h", "VFAT_IOCTL_READDIR_SHORT", 0x7202},
+ {"linux/videotext.h", "TUNIOCSETFREQ", 0x7203},
+ {"linux/videotext.h", "TUNIOCGETFREQ", 0x7204},
+ {"linux/videotext.h", "TUNIOCSETCHAN", 0x7205},
+ {"linux/videotext.h", "TUNIOCGETCHAN", 0x7206},
+ {"asm/sockios.h", "SIOCATMARK", 0x7307},
+ {"asm/sockios.h", "SIOCSPGRP", 0x7308},
+ {"asm/sockios.h", "SIOCGPGRP", 0x7309},
+ {"linux/cdk.h", "STL_BINTR", 0x7314},
+ {"linux/cdk.h", "STL_BSTART", 0x7315},
+ {"linux/cdk.h", "STL_BSTOP", 0x7316},
+ {"linux/cdk.h", "STL_BRESET", 0x7317},
+ {"linux/cdk.h", "STL_GETPFLAG", 0x7350},
+ {"linux/cdk.h", "STL_SETPFLAG", 0x7351},
+ {"asm/ioctls.h", "TIOCGETP", 0x7408},
+ {"asm/ioctls.h", "TIOCSETP", 0x7409},
+ {"asm/ioctls.h", "TIOCSETN", 0x740a},
+ {"asm/ioctls.h", "TIOCSETC", 0x7411},
+ {"asm/ioctls.h", "TIOCGETC", 0x7412},
+ {"asm/ioctls.h", "TCGETS", 0x7413},
+ {"asm/ioctls.h", "TCSETS", 0x7414},
+ {"asm/ioctls.h", "TCSETSW", 0x7415},
+ {"asm/ioctls.h", "TCSETSF", 0x7416},
+ {"asm/ioctls.h", "TCGETA", 0x7417},
+ {"asm/ioctls.h", "TCSETA", 0x7418},
+ {"asm/ioctls.h", "TCSETAW", 0x7419},
+ {"asm/ioctls.h", "TCSETAF", 0x741c},
+ {"asm/ioctls.h", "TCSBRK", 0x741d},
+ {"asm/ioctls.h", "TCXONC", 0x741e},
+ {"asm/ioctls.h", "TCFLSH", 0x741f},
+ {"linux/if_ppp.h", "PPPIOCGCHAN", 0x7437},
+ {"linux/if_ppp.h", "PPPIOCATTCHAN", 0x7438},
+ {"linux/if_ppp.h", "PPPIOCDISCONN", 0x7439},
+ {"linux/if_ppp.h", "PPPIOCCONNECT", 0x743a},
+ {"linux/if_ppp.h", "PPPIOCSMRRU", 0x743b},
+ {"linux/if_ppp.h", "PPPIOCDETACH", 0x743c},
+ {"linux/if_ppp.h", "PPPIOCATTACH", 0x743d},
+ {"linux/if_ppp.h", "PPPIOCNEWUNIT", 0x743e},
+ {"linux/if_ppp.h", "PPPIOCGIDLE", 0x743f},
+ {"linux/if_ppp.h", "PPPIOCSDEBUG", 0x7440},
+ {"linux/if_ppp.h", "PPPIOCGDEBUG", 0x7441},
+ {"linux/if_ppp.h", "PPPIOCSACTIVE", 0x7446},
+ {"linux/if_ppp.h", "PPPIOCSPASS", 0x7447},
+ {"linux/if_ppp.h", "PPPIOCSNPMODE", 0x744b},
+ {"linux/if_ppp.h", "PPPIOCGNPMODE", 0x744c},
+ {"linux/if_ppp.h", "PPPIOCSCOMPRESS", 0x744d},
+ {"linux/if_ppp.h", "PPPIOCXFERUNIT", 0x744e},
+ {"linux/if_ppp.h", "PPPIOCSXASYNCMAP", 0x744f},
+ {"linux/if_ppp.h", "PPPIOCGXASYNCMAP", 0x7450},
+ {"linux/if_ppp.h", "PPPIOCSMAXCID", 0x7451},
+ {"linux/if_ppp.h", "PPPIOCSMRU", 0x7452},
+ {"linux/if_ppp.h", "PPPIOCGMRU", 0x7453},
+ {"linux/if_ppp.h", "PPPIOCSRASYNCMAP", 0x7454},
+ {"linux/if_ppp.h", "PPPIOCGRASYNCMAP", 0x7455},
+ {"linux/if_ppp.h", "PPPIOCGUNIT", 0x7456},
+ {"linux/if_ppp.h", "PPPIOCSASYNCMAP", 0x7457},
+ {"linux/if_ppp.h", "PPPIOCGASYNCMAP", 0x7458},
+ {"linux/if_ppp.h", "PPPIOCSFLAGS", 0x7459},
+ {"linux/jffs.h", "JFFS_PRINT_HASH", 0x745a},
+ {"linux/if_ppp.h", "PPPIOCGFLAGS", 0x745a},
+ {"linux/jffs.h", "JFFS_PRINT_TREE", 0x745b},
+ {"linux/jffs.h", "JFFS_GET_STATUS", 0x745c},
+ {"asm/ioctls.h", "TIOCSWINSZ", 0x7467},
+ {"asm/ioctls.h", "TIOCGWINSZ", 0x7468},
+ {"asm/ioctls.h", "TIOCSTART", 0x746e},
+ {"asm/ioctls.h", "TIOCSTOP", 0x746f},
+ {"asm/ioctls.h", "TIOCOUTQ", 0x7473},
+ {"asm/ioctls.h", "TIOCGLTC", 0x7474},
+ {"asm/ioctls.h", "TIOCSLTC", 0x7475},
+ {"asm/ioctls.h", "TIOCSPGRP", 0x7476},
+ {"asm/ioctls.h", "TIOCGPGRP", 0x7477},
+ {"linux/isdn_ppp.h", "PPPIOCGCALLINFO", 0x7480},
+ {"linux/isdn_ppp.h", "PPPIOCBUNDLE", 0x7481},
+ {"linux/isdn_ppp.h", "PPPIOCGMPFLAGS", 0x7482},
+ {"linux/isdn_ppp.h", "PPPIOCSMPFLAGS", 0x7483},
+ {"linux/isdn_ppp.h", "PPPIOCSMPMTU", 0x7484},
+ {"linux/isdn_ppp.h", "PPPIOCSMPMRU", 0x7485},
+ {"linux/isdn_ppp.h", "PPPIOCGCOMPRESSORS", 0x7486},
+ {"linux/isdn_ppp.h", "PPPIOCSCOMPRESSOR", 0x7487},
+ {"linux/isdn_ppp.h", "PPPIOCGIFNAME", 0x7488},
+ {"linux/toshiba.h", "TOSH_SMM", 0x7490},
+ {"linux/smb_fs.h", "SMB_IOC_GETMOUNTUID", 0x7501},
+ {"linux/smb_fs.h", "SMB_IOC_NEWCONN", 0x7502},
+ {"linux/smb_fs.h", "SMB_IOC_GETMOUNTUID32", 0x7503},
+ {"linux/sonypi.h", "SONYPI_IOCGBRT", 0x7600},
+ {"linux/sonypi.h", "SONYPI_IOCSBRT", 0x7600},
+ {"linux/ext2_fs.h", "EXT2_IOC_GETVERSION", 0x7601},
+ {"linux/ext3_fs.h", "EXT3_IOC_GETVERSION_OLD", 0x7601},
+ {"linux/videodev.h", "VIDIOCGCAP", 0x7601},
+ {"linux/ext2_fs.h", "EXT2_IOC_SETVERSION", 0x7602},
+ {"linux/ext3_fs.h", "EXT3_IOC_SETVERSION_OLD", 0x7602},
+ {"linux/sonypi.h", "SONYPI_IOCGBAT1CAP", 0x7602},
+ {"linux/videodev.h", "VIDIOCGCHAN", 0x7602},
+ {"linux/sonypi.h", "SONYPI_IOCGBAT1REM", 0x7603},
+ {"linux/videodev.h", "VIDIOCSCHAN", 0x7603},
+ {"linux/sonypi.h", "SONYPI_IOCGBAT2CAP", 0x7604},
+ {"linux/videodev.h", "VIDIOCGTUNER", 0x7604},
+ {"linux/sonypi.h", "SONYPI_IOCGBAT2REM", 0x7605},
+ {"linux/videodev.h", "VIDIOCSTUNER", 0x7605},
+ {"linux/videodev.h", "VIDIOCGPICT", 0x7606},
+ {"linux/sonypi.h", "SONYPI_IOCGBATFLAGS", 0x7607},
+ {"linux/videodev.h", "VIDIOCSPICT", 0x7607},
+ {"linux/sonypi.h", "SONYPI_IOCGBLUE", 0x7608},
+ {"linux/videodev.h", "VIDIOCCAPTURE", 0x7608},
+ {"linux/sonypi.h", "SONYPI_IOCSBLUE", 0x7609},
+ {"linux/videodev.h", "VIDIOCGWIN", 0x7609},
+ {"linux/videodev.h", "VIDIOCSWIN", 0x760a},
+ {"linux/videodev.h", "VIDIOCGFBUF", 0x760b},
+ {"linux/videodev.h", "VIDIOCSFBUF", 0x760c},
+ {"linux/videodev.h", "VIDIOCKEY", 0x760d},
+ {"linux/videodev.h", "VIDIOCGFREQ", 0x760e},
+ {"linux/videodev.h", "VIDIOCSFREQ", 0x760f},
+ {"linux/videodev.h", "VIDIOCGAUDIO", 0x7610},
+ {"linux/videodev.h", "VIDIOCSAUDIO", 0x7611},
+ {"linux/videodev.h", "VIDIOCSYNC", 0x7612},
+ {"linux/videodev.h", "VIDIOCMCAPTURE", 0x7613},
+ {"linux/videodev.h", "VIDIOCGMBUF", 0x7614},
+ {"linux/videodev.h", "VIDIOCGUNIT", 0x7615},
+ {"linux/videodev.h", "VIDIOCGCAPTURE", 0x7616},
+ {"linux/videodev.h", "VIDIOCSCAPTURE", 0x7617},
+ {"linux/videodev.h", "VIDIOCSPLAYMODE", 0x7618},
+ {"linux/videodev.h", "VIDIOCSWRITEMODE", 0x7619},
+ {"linux/videodev.h", "VIDIOCGPLAYINFO", 0x761a},
+ {"linux/videodev.h", "VIDIOCSMICROCODE", 0x761b},
+ {"linux/videodev.h", "VIDIOCGVBIFMT", 0x761c},
+ {"linux/videodev.h", "VIDIOCSVBIFMT", 0x761d},
+ {"linux/meye.h", "MEYEIOC_G_PARAMS", 0x76c0},
+ {"linux/meye.h", "MEYEIOC_S_PARAMS", 0x76c1},
+ {"linux/meye.h", "MEYEIOC_QBUF_CAPT", 0x76c2},
+ {"linux/meye.h", "MEYEIOC_SYNC", 0x76c3},
+ {"linux/meye.h", "MEYEIOC_STILLCAPT", 0x76c4},
+ {"linux/meye.h", "MEYEIOC_STILLJCAPT", 0x76c5},
+ {"asm/sockios.h", "FIOSETOWN", 0x8901},
+ {"asm/sockios.h", "SIOCSPGRP", 0x8902},
+ {"asm/sockios.h", "FIOGETOWN", 0x8903},
+ {"asm/sockios.h", "SIOCGPGRP", 0x8904},
+ {"asm/sockios.h", "SIOCATMARK", 0x8905},
+ {"asm/sockios.h", "SIOCGSTAMP", 0x8906},
+ {"linux/sockios.h", "SIOCADDRT", 0x890b},
+ {"linux/sockios.h", "SIOCDELRT", 0x890c},
+ {"linux/sockios.h", "SIOCRTMSG", 0x890d},
+ {"linux/sockios.h", "SIOCGIFNAME", 0x8910},
+ {"linux/sockios.h", "SIOCSIFLINK", 0x8911},
+ {"linux/sockios.h", "SIOCGIFCONF", 0x8912},
+ {"linux/sockios.h", "SIOCGIFFLAGS", 0x8913},
+ {"linux/sockios.h", "SIOCSIFFLAGS", 0x8914},
+ {"linux/sockios.h", "SIOCGIFADDR", 0x8915},
+ {"linux/sockios.h", "SIOCSIFADDR", 0x8916},
+ {"linux/sockios.h", "SIOCGIFDSTADDR", 0x8917},
+ {"linux/sockios.h", "SIOCSIFDSTADDR", 0x8918},
+ {"linux/sockios.h", "SIOCGIFBRDADDR", 0x8919},
+ {"linux/sockios.h", "SIOCSIFBRDADDR", 0x891a},
+ {"linux/sockios.h", "SIOCGIFNETMASK", 0x891b},
+ {"linux/sockios.h", "SIOCSIFNETMASK", 0x891c},
+ {"linux/sockios.h", "SIOCGIFMETRIC", 0x891d},
+ {"linux/sockios.h", "SIOCSIFMETRIC", 0x891e},
+ {"linux/sockios.h", "SIOCGIFMEM", 0x891f},
+ {"linux/sockios.h", "SIOCSIFMEM", 0x8920},
+ {"linux/sockios.h", "SIOCGIFMTU", 0x8921},
+ {"linux/sockios.h", "SIOCSIFMTU", 0x8922},
+ {"linux/sockios.h", "SIOCSIFNAME", 0x8923},
+ {"linux/sockios.h", "SIOCSIFHWADDR", 0x8924},
+ {"linux/sockios.h", "SIOCGIFENCAP", 0x8925},
+ {"linux/sockios.h", "SIOCSIFENCAP", 0x8926},
+ {"linux/sockios.h", "SIOCGIFHWADDR", 0x8927},
+ {"linux/sockios.h", "SIOCGIFSLAVE", 0x8929},
+ {"linux/sockios.h", "SIOCSIFSLAVE", 0x8930},
+ {"linux/sockios.h", "SIOCADDMULTI", 0x8931},
+ {"linux/sockios.h", "SIOCDELMULTI", 0x8932},
+ {"linux/sockios.h", "SIOCGIFINDEX", 0x8933},
+ {"linux/sockios.h", "SIOCSIFPFLAGS", 0x8934},
+ {"linux/sockios.h", "SIOCGIFPFLAGS", 0x8935},
+ {"linux/sockios.h", "SIOCDIFADDR", 0x8936},
+ {"linux/sockios.h", "SIOCSIFHWBROADCAST", 0x8937},
+ {"linux/sockios.h", "SIOCGIFCOUNT", 0x8938},
+ {"linux/sockios.h", "SIOCGIFBR", 0x8940},
+ {"linux/sockios.h", "SIOCSIFBR", 0x8941},
+ {"linux/sockios.h", "SIOCGIFTXQLEN", 0x8942},
+ {"linux/sockios.h", "SIOCSIFTXQLEN", 0x8943},
+ {"linux/sockios.h", "SIOCGIFDIVERT", 0x8944},
+ {"linux/sockios.h", "SIOCSIFDIVERT", 0x8945},
+ {"linux/sockios.h", "SIOCETHTOOL", 0x8946},
+ {"linux/sockios.h", "SIOCGMIIPHY", 0x8947},
+ {"linux/sockios.h", "SIOCGMIIREG", 0x8948},
+ {"linux/sockios.h", "SIOCSMIIREG", 0x8949},
+ {"linux/sockios.h", "SIOCWANDEV", 0x894a},
+ {"linux/sockios.h", "SIOCDARP", 0x8953},
+ {"linux/sockios.h", "SIOCGARP", 0x8954},
+ {"linux/sockios.h", "SIOCSARP", 0x8955},
+ {"linux/sockios.h", "SIOCDRARP", 0x8960},
+ {"linux/sockios.h", "SIOCGRARP", 0x8961},
+ {"linux/sockios.h", "SIOCSRARP", 0x8962},
+ {"linux/sockios.h", "SIOCGIFMAP", 0x8970},
+ {"linux/sockios.h", "SIOCSIFMAP", 0x8971},
+ {"linux/sockios.h", "SIOCADDDLCI", 0x8980},
+ {"linux/sockios.h", "SIOCDELDLCI", 0x8981},
+ {"linux/sockios.h", "SIOCGIFVLAN", 0x8982},
+ {"linux/sockios.h", "SIOCSIFVLAN", 0x8983},
+ {"linux/sockios.h", "SIOCBONDENSLAVE", 0x8990},
+ {"linux/sockios.h", "SIOCBONDRELEASE", 0x8991},
+ {"linux/sockios.h", "SIOCBONDSETHWADDR", 0x8992},
+ {"linux/sockios.h", "SIOCBONDSLAVEINFOQUERY", 0x8993},
+ {"linux/sockios.h", "SIOCBONDINFOQUERY", 0x8994},
+ {"linux/sockios.h", "SIOCBONDCHANGEACTIVE", 0x8995},
+ {"linux/dn.h", "OSIOCSNETADDR", 0x89e0},
+ {"linux/sockios.h", "SIOCPROTOPRIVATE", 0x89e0},
+ {"linux/dn.h", "SIOCSNETADDR", 0x89e0},
+ {"linux/dn.h", "OSIOCGNETADDR", 0x89e1},
+ {"linux/dn.h", "SIOCGNETADDR", 0x89e1},
+ {"linux/sockios.h", "SIOCDEVPRIVATE", 0x89f0},
+ {"linux/wireless.h", "SIOCIWFIRST", 0x8b00},
+ {"linux/wireless.h", "SIOCSIWCOMMIT", 0x8b00},
+ {"linux/wireless.h", "SIOCGIWNAME", 0x8b01},
+ {"linux/wireless.h", "SIOCSIWNWID", 0x8b02},
+ {"linux/wireless.h", "SIOCGIWNWID", 0x8b03},
+ {"linux/wireless.h", "SIOCSIWFREQ", 0x8b04},
+ {"linux/wireless.h", "SIOCGIWFREQ", 0x8b05},
+ {"linux/wireless.h", "SIOCSIWMODE", 0x8b06},
+ {"linux/wireless.h", "SIOCGIWMODE", 0x8b07},
+ {"linux/wireless.h", "SIOCSIWSENS", 0x8b08},
+ {"linux/wireless.h", "SIOCGIWSENS", 0x8b09},
+ {"linux/wireless.h", "SIOCSIWRANGE", 0x8b0a},
+ {"linux/wireless.h", "SIOCGIWRANGE", 0x8b0b},
+ {"linux/wireless.h", "SIOCSIWPRIV", 0x8b0c},
+ {"linux/wireless.h", "SIOCGIWPRIV", 0x8b0d},
+ {"linux/wireless.h", "SIOCSIWSTATS", 0x8b0e},
+ {"linux/wireless.h", "SIOCGIWSTATS", 0x8b0f},
+ {"linux/wireless.h", "SIOCSIWSPY", 0x8b10},
+ {"linux/wireless.h", "SIOCGIWSPY", 0x8b11},
+ {"linux/wireless.h", "SIOCSIWTHRSPY", 0x8b12},
+ {"linux/wireless.h", "SIOCGIWTHRSPY", 0x8b13},
+ {"linux/wireless.h", "SIOCSIWAP", 0x8b14},
+ {"linux/wireless.h", "SIOCGIWAP", 0x8b15},
+ {"linux/wireless.h", "SIOCGIWAPLIST", 0x8b17},
+ {"linux/wireless.h", "SIOCSIWSCAN", 0x8b18},
+ {"linux/wireless.h", "SIOCGIWSCAN", 0x8b19},
+ {"linux/wireless.h", "SIOCSIWESSID", 0x8b1a},
+ {"linux/wireless.h", "SIOCGIWESSID", 0x8b1b},
+ {"linux/wireless.h", "SIOCSIWNICKN", 0x8b1c},
+ {"linux/wireless.h", "SIOCGIWNICKN", 0x8b1d},
+ {"linux/wireless.h", "SIOCSIWRATE", 0x8b20},
+ {"linux/wireless.h", "SIOCGIWRATE", 0x8b21},
+ {"linux/wireless.h", "SIOCSIWRTS", 0x8b22},
+ {"linux/wireless.h", "SIOCGIWRTS", 0x8b23},
+ {"linux/wireless.h", "SIOCSIWFRAG", 0x8b24},
+ {"linux/wireless.h", "SIOCGIWFRAG", 0x8b25},
+ {"linux/wireless.h", "SIOCSIWTXPOW", 0x8b26},
+ {"linux/wireless.h", "SIOCGIWTXPOW", 0x8b27},
+ {"linux/wireless.h", "SIOCSIWRETRY", 0x8b28},
+ {"linux/wireless.h", "SIOCGIWRETRY", 0x8b29},
+ {"linux/wireless.h", "SIOCSIWENCODE", 0x8b2a},
+ {"linux/wireless.h", "SIOCGIWENCODE", 0x8b2b},
+ {"linux/wireless.h", "SIOCSIWPOWER", 0x8b2c},
+ {"linux/wireless.h", "SIOCGIWPOWER", 0x8b2d},
+ {"linux/wireless.h", "SIOCIWFIRSTPRIV", 0x8be0},
+ {"linux/wireless.h", "SIOCIWLASTPRIV", 0x8bff},
+ {"linux/auto_fs.h", "AUTOFS_IOC_READY", 0x9360},
+ {"linux/auto_fs.h", "AUTOFS_IOC_FAIL", 0x9361},
+ {"linux/auto_fs.h", "AUTOFS_IOC_CATATONIC", 0x9362},
+ {"linux/auto_fs.h", "AUTOFS_IOC_PROTOVER", 0x9363},
+ {"linux/auto_fs.h", "AUTOFS_IOC_SETTIMEOUT", 0x9364},
+ {"linux/auto_fs.h", "AUTOFS_IOC_EXPIRE", 0x9365},
+ {"linux/auto_fs4.h", "AUTOFS_IOC_EXPIRE_MULTI", 0x9366},
+ {"linux/nbd.h", "NBD_SET_SOCK", 0xab00},
+ {"linux/nbd.h", "NBD_SET_BLKSIZE", 0xab01},
+ {"linux/nbd.h", "NBD_SET_SIZE", 0xab02},
+ {"linux/nbd.h", "NBD_DO_IT", 0xab03},
+ {"linux/nbd.h", "NBD_CLEAR_SOCK", 0xab04},
+ {"linux/nbd.h", "NBD_CLEAR_QUE", 0xab05},
+ {"linux/nbd.h", "NBD_PRINT_DEBUG", 0xab06},
+ {"linux/nbd.h", "NBD_SET_SIZE_BLOCKS", 0xab07},
+ {"linux/nbd.h", "NBD_DISCONNECT", 0xab08},
+ {"linux/raw.h", "RAW_SETBIND", 0xac00},
+ {"linux/raw.h", "RAW_GETBIND", 0xac01},
+ {"linux/if_pppox.h", "PPPOEIOCSFWD", 0xb100},
+ {"linux/if_pppox.h", "PPPOEIOCDFWD", 0xb101},
+ {"linux/reiserfs_fs.h", "REISERFS_IOC_UNPACK", 0xcd01},
+ {"linux/dm-ioctl-v4.h", "DM_VERSION", 0xfd00},
+ {"linux/dm-ioctl-v4.h", "DM_REMOVE_ALL", 0xfd01},
+ {"linux/dm-ioctl-v4.h", "DM_LIST_DEVICES", 0xfd02},
+ {"linux/dm-ioctl-v4.h", "DM_DEV_CREATE", 0xfd03},
+ {"linux/dm-ioctl-v4.h", "DM_DEV_REMOVE", 0xfd04},
+ {"linux/dm-ioctl-v4.h", "DM_DEV_RENAME", 0xfd05},
+ {"linux/dm-ioctl-v4.h", "DM_DEV_SUSPEND", 0xfd06},
+ {"linux/dm-ioctl-v4.h", "DM_DEV_STATUS", 0xfd07},
+ {"linux/dm-ioctl-v4.h", "DM_DEV_WAIT", 0xfd08},
+ {"linux/dm-ioctl-v4.h", "DM_TABLE_LOAD", 0xfd09},
+ {"linux/dm-ioctl-v4.h", "DM_TABLE_CLEAR", 0xfd0a},
+ {"linux/dm-ioctl-v4.h", "DM_TABLE_DEPS", 0xfd0b},
+ {"linux/dm-ioctl-v4.h", "DM_TABLE_STATUS", 0xfd0c},
diff --git a/strace/linux/powerpc/signalent.h b/strace/linux/powerpc/signalent.h
new file mode 100644
index 0000000..04b00b1
--- /dev/null
+++ b/strace/linux/powerpc/signalent.h
@@ -0,0 +1,33 @@
+ "SIG_0", /* 0 */
+ "SIGHUP", /* 1 */
+ "SIGINT", /* 2 */
+ "SIGQUIT", /* 3 */
+ "SIGILL", /* 4 */
+ "SIGTRAP", /* 5 */
+ "SIGABRT", /* 6 */
+ "SIGBUS", /* 7 */
+ "SIGFPE", /* 8 */
+ "SIGKILL", /* 9 */
+ "SIGUSR1", /* 10 */
+ "SIGSEGV", /* 11 */
+ "SIGUSR2", /* 12 */
+ "SIGPIPE", /* 13 */
+ "SIGALRM", /* 14 */
+ "SIGTERM", /* 15 */
+ "SIGSTKFLT", /* 16 */
+ "SIGCHLD", /* 17 */
+ "SIGCONT", /* 18 */
+ "SIGSTOP", /* 19 */
+ "SIGTSTP", /* 20 */
+ "SIGTTIN", /* 21 */
+ "SIGTTOU", /* 22 */
+ "SIGURG", /* 23 */
+ "SIGXCPU", /* 24 */
+ "SIGXFSZ", /* 25 */
+ "SIGVTALRM", /* 26 */
+ "SIGPROF", /* 27 */
+ "SIGWINCH", /* 28 */
+ "SIGIO", /* 29 */
+ "SIGPWR", /* 30 */
+ "SIGUNUSED", /* 31 */
+ "SIGRTMIN", /* 32 */
diff --git a/strace/linux/powerpc/syscallent.h b/strace/linux/powerpc/syscallent.h
new file mode 100644
index 0000000..5492227
--- /dev/null
+++ b/strace/linux/powerpc/syscallent.h
@@ -0,0 +1,381 @@
+/*
+ * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
+ * Copyright (c) 1993, 1994, 1995 Rick Sladkey <jrs@world.std.com>
+ * 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.
+ *
+ * $Id: syscallent.h,v 1.19 2005/05/09 08:02:05 roland Exp $
+ */
+
+ { 5, 0, printargs, "SYS_0" }, /* 0 */
+ { 1, TP, sys_exit, "exit" }, /* 1 */
+ { 0, TP, sys_fork, "fork" }, /* 2 */
+ { 3, TF, sys_read, "read" }, /* 3 */
+ { 3, TF, sys_write, "write" }, /* 4 */
+ { 3, TF, sys_open, "open" }, /* 5 */
+ { 1, 0, sys_close, "close" }, /* 6 */
+ { 3, TP, sys_waitpid, "waitpid" }, /* 7 */
+ { 2, TF, sys_creat, "creat" }, /* 8 */
+ { 2, TF, sys_link, "link" }, /* 9 */
+ { 1, TF, sys_unlink, "unlink" }, /* 10 */
+ { 3, TF|TP, sys_execve, "execve" }, /* 11 */
+ { 1, TF, sys_chdir, "chdir" }, /* 12 */
+ { 1, 0, sys_time, "time" }, /* 13 */
+ { 3, TF, sys_mknod, "mknod" }, /* 14 */
+ { 2, TF, sys_chmod, "chmod" }, /* 15 */
+ { 3, TF, sys_chown, "lchown" }, /* 16 */
+ { 0, 0, sys_break, "break" }, /* 17 */
+ { 2, TF, sys_oldstat, "oldstat" }, /* 18 */
+ { 3, TF, sys_lseek, "lseek" }, /* 19 */
+ { 0, 0, sys_getpid, "getpid" }, /* 20 */
+ { 5, TF, sys_mount, "mount" }, /* 21 */
+ { 1, TF, sys_umount, "oldumount" }, /* 22 */
+ { 1, 0, sys_setuid, "setuid" }, /* 23 */
+ { 0, 0, sys_getuid, "getuid" }, /* 24 */
+ { 1, 0, sys_stime, "stime" }, /* 25 */
+ { 4, 0, sys_ptrace, "ptrace" }, /* 26 */
+ { 1, 0, sys_alarm, "alarm" }, /* 27 */
+ { 2, 0, sys_oldfstat, "oldfstat" }, /* 28 */
+ { 0, TS, sys_pause, "pause" }, /* 29 */
+ { 2, TF, sys_utime, "utime" }, /* 30 */
+ { 2, 0, sys_stty, "stty" }, /* 31 */
+ { 2, 0, sys_gtty, "gtty" }, /* 32 */
+ { 2, TF, sys_access, "access" }, /* 33 */
+ { 1, 0, sys_nice, "nice" }, /* 34 */
+ { 0, 0, sys_ftime, "ftime" }, /* 35 */
+ { 0, 0, sys_sync, "sync" }, /* 36 */
+ { 2, TS, sys_kill, "kill" }, /* 37 */
+ { 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, 0, sys_times, "times" }, /* 43 */
+ { 0, 0, sys_prof, "prof" }, /* 44 */
+ { 1, 0, sys_brk, "brk" }, /* 45 */
+ { 1, 0, sys_setgid, "setgid" }, /* 46 */
+ { 0, 0, sys_getgid, "getgid" }, /* 47 */
+ { 3, TS, sys_signal, "signal" }, /* 48 */
+ { 0, 0, sys_geteuid, "geteuid" }, /* 49 */
+ { 0, 0, sys_getegid, "getegid" }, /* 50 */
+ { 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 */
+ { 0, 0, sys_mpx, "sys_mpx" }, /* 56 */
+ { 2, 0, sys_setpgid, "setpgid" }, /* 57 */
+ { 2, 0, sys_ulimit, "ulimit" }, /* 58 */
+ { 1, 0, sys_oldolduname, "oldolduname" }, /* 59 */
+ { 1, 0, sys_umask, "umask" }, /* 60 */
+ { 1, TF, sys_chroot, "chroot" }, /* 61 */
+ { 2, 0, sys_ustat, "ustat" }, /* 62 */
+ { 2, 0, sys_dup2, "dup2" }, /* 63 */
+ { 0, 0, sys_getppid, "getppid" }, /* 64 */
+ { 0, 0, sys_getpgrp, "getpgrp" }, /* 65 */
+ { 0, 0, sys_setsid, "setsid" }, /* 66 */
+ { 3, TS, sys_sigaction, "sigaction" }, /* 67 */
+ { 1, TS, printargs, "sgetmask" }, /* 68 */
+ { 1, TS, printargs, "ssetmask" }, /* 69 */
+ { 2, 0, sys_setreuid, "setreuid" }, /* 70 */
+ { 2, 0, sys_setregid, "setregid" }, /* 71 */
+ { 3, TS, sys_sigsuspend, "sigsuspend" }, /* 72 */
+ { 1, TS, sys_sigpending, "sigpending" }, /* 73 */
+ { 2, 0, sys_sethostname, "sethostname" }, /* 74 */
+ { 2, 0, sys_setrlimit, "setrlimit" }, /* 75 */
+ { 2, 0, sys_getrlimit, "oldgetrlimit" }, /* 76 */
+ { 2, 0, sys_getrusage, "getrusage" }, /* 77 */
+ { 2, 0, sys_gettimeofday, "gettimeofday" }, /* 78 */
+ { 2, 0, sys_settimeofday, "settimeofday" }, /* 79 */
+ { 2, 0, sys_getgroups, "getgroups" }, /* 80 */
+ { 2, 0, sys_setgroups, "setgroups" }, /* 81 */
+ { 1, 0, 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 */
+ { 1, TF, sys_swapon, "swapon" }, /* 87 */
+ { 3, 0, sys_reboot, "reboot" }, /* 88 */
+ { 3, 0, sys_readdir, "readdir" }, /* 89 */
+ { 6, 0, sys_mmap, "mmap" }, /* 90 */
+ { 2, 0, 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, 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 */
+ { 3, 0, sys_ioperm, "ioperm" }, /* 101 */
+ { 2, 0, 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, TF, sys_fstat, "fstat" }, /* 108 */
+ { 1, 0, sys_olduname, "olduname" }, /* 109 */
+ { 5, 0, printargs, "SYS_110" }, /* 110 */
+ { 0, 0, sys_vhangup, "vhangup" }, /* 111 */
+ { 0, 0, sys_idle, "idle" }, /* 112 */
+ { 5, 0, printargs, "SYS_113" }, /* 113 */
+ { 4, TP, sys_wait4, "wait4" }, /* 114 */
+ { 1, 0, sys_swapoff, "swapoff" }, /* 115 */
+ { 1, 0, sys_sysinfo, "sysinfo" }, /* 116 */
+ { 6, 0, sys_ipc, "ipc" }, /* 117 */
+ { 1, 0, sys_fsync, "fsync" }, /* 118 */
+ { 1, TS, sys_sigreturn, "sigreturn" }, /* 119 */
+ { 5, TP, sys_clone, "clone" }, /* 120 */
+ { 2, 0, sys_setdomainname, "setdomainname" }, /* 121 */
+ { 1, 0, sys_uname, "uname" }, /* 122 */
+ { 5, 0, printargs, "SYS_123" }, /* 123 */
+ { 1, 0, sys_adjtimex, "adjtimex" }, /* 124 */
+ { 3, 0, sys_mprotect, "mprotect" }, /* 125 */
+ { 3, TS, sys_sigprocmask, "sigprocmask" }, /* 126 */
+ { 2, 0, sys_create_module, "create_module" }, /* 127 */
+ { 2, 0, sys_init_module, "init_module" }, /* 128 */
+ { 1, 0, sys_delete_module, "delete_module" }, /* 129 */
+ { 1, 0, sys_get_kernel_syms, "get_kernel_syms" }, /* 130 */
+ { 4, 0, sys_quotactl, "quotactl" }, /* 131 */
+ { 1, 0, sys_getpgid, "getpgid" }, /* 132 */
+ { 1, TF, 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, 0, sys_setfsuid, "setfsuid" }, /* 138 */
+ { 1, 0, sys_setfsgid, "setfsgid" }, /* 139 */
+ { 5, TF, 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 */
+ { 1, 0, sys_getsid, "getsid" }, /* 147 */
+ { 1, 0, 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, 0, sys_sched_setparam, "sched_setparam" }, /* 154 */
+ { 2, 0, sys_sched_getparam, "sched_getparam" }, /* 155 */
+ { 3, 0, sys_sched_setscheduler, "sched_setscheduler" }, /* 156 */
+ { 1, 0, sys_sched_getscheduler, "sched_getscheduler" }, /* 157 */
+ { 0, 0, sys_sched_yield, "sched_yield" }, /* 158 */
+ { 1, 0, sys_sched_get_priority_max,"sched_get_priority_max"}, /* 159 */
+ { 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 */
+ { 4, 0, sys_mremap, "mremap" }, /* 163 */
+ { 3, 0, sys_setresuid, "setresuid" }, /* 164 */
+ { 3, 0, sys_getresuid, "getresuid" }, /* 165 */
+ { 5, 0, sys_query_module, "query_module" }, /* 166 */
+ { 3, 0, sys_poll, "poll" }, /* 167 */
+ { 3, 0, printargs, "nfsservctl" }, /* 168 */
+ { 3, 0, sys_setresgid, "setresgid" }, /* 169 */
+ { 3, 0, sys_getresgid, "getresgid" }, /* 170 */
+ { 5, 0, printargs, "prctl" }, /* 171 */
+ { 1, TS, printargs, "rt_sigreturn" }, /* 172 */
+ { 4, TS, sys_rt_sigaction, "rt_sigaction" }, /* 173 */
+ { 4, TS, sys_rt_sigprocmask, "rt_sigprocmask" }, /* 174 */
+ { 2, TS, sys_rt_sigpending, "rt_sigpending" }, /* 175 */
+ { 4, TS, sys_rt_sigtimedwait, "rt_sigtimedwait" }, /* 176 */
+ { 3, TS, sys_rt_sigqueueinfo, "rt_sigqueueinfo" }, /* 177 */
+ { 2, TS, sys_rt_sigsuspend, "rt_sigsuspend" }, /* 178 */
+ { 6, TF, sys_pread, "pread64" }, /* 179 */
+ { 6, TF, sys_pwrite, "pwrite64" }, /* 180 */
+ { 3, TF, sys_chown, "chown" }, /* 181 */
+ { 2, TF, sys_getcwd, "getcwd" }, /* 182 */
+ { 2, 0, sys_capget, "capget" }, /* 183 */
+ { 2, 0, sys_capset, "capset" }, /* 184 */
+ { 2, TS, sys_sigaltstack, "sigaltstack" }, /* 185 */
+ { 4, TF, sys_sendfile, "sendfile" }, /* 186 */
+ { 5, 0, sys_getpmsg, "getpmsg" }, /* 187 */
+ { 5, 0, sys_putpmsg, "putpmsg" }, /* 188 */
+ { 0, TP, sys_vfork, "vfork" }, /* 189 */
+ { 2, 0, sys_getrlimit, "getrlimit" }, /* 190 */
+ { 4, 0, sys_readahead, "readahead" }, /* 190 */
+ { 6, 0, sys_mmap, "mmap2" }, /* 192 */
+ { 4, TF, sys_truncate64, "truncate64" }, /* 193 */
+ { 4, TF, sys_ftruncate64, "ftruncate64" }, /* 194 */
+
+ { 2, TF, sys_stat64, "stat64" }, /* 195 */
+ { 2, TF, sys_lstat64, "lstat64" }, /* 196 */
+ { 2, TF, sys_fstat64, "fstat64" }, /* 197 */
+ { 5, 0, printargs, "pciconfig_read" }, /* 198 */
+ { 5, 0, printargs, "pciconfig_write" }, /* 199 */
+ { 3, 0, printargs, "pciconfig_iobase" }, /* 200 */
+ { 8, 0, printargs, "MOL" }, /* 201 */
+ { 3, 0, sys_getdents64, "getdents64" }, /* 202 */
+ { 2, TF, sys_pivotroot, "pivot_root" }, /* 203 */
+ { 3, 0, sys_fcntl, "fcntl64" }, /* 204 */
+ { 3, 0, sys_madvise, "madvise" }, /* 205 */
+ { 3, 0, sys_mincore, "mincore" }, /* 206 */
+ { 0, 0, printargs, "gettid" }, /* 207 */
+ { 2, TS, sys_kill, "tkill" }, /* 208 */
+ { 5, TF, sys_setxattr, "setxattr" }, /* 209 */
+ { 5, TF, sys_setxattr, "lsetxattr" }, /* 210 */
+ { 5, 0, sys_fsetxattr, "fsetxattr" }, /* 211 */
+ { 4, TF, sys_getxattr, "getxattr" }, /* 212 */
+ { 4, TF, sys_getxattr, "lgetxattr" }, /* 213 */
+ { 4, 0, sys_fgetxattr, "fgetxattr" }, /* 214 */
+ { 3, TF, sys_listxattr, "listxattr" }, /* 215 */
+ { 3, TF, sys_listxattr, "llistxattr" }, /* 216 */
+ { 3, 0, sys_flistxattr, "flistxattr" }, /* 217 */
+ { 2, TF, sys_removexattr, "removexattr" }, /* 218 */
+ { 2, TF, sys_removexattr, "lremovexattr" }, /* 219 */
+ { 2, 0, sys_fremovexattr, "fremovexattr" }, /* 220 */
+ { 5, 0, sys_futex, "futex" }, /* 221 */
+ { 3, 0, sys_sched_setaffinity, "sched_setaffinity" }, /* 222 */
+ { 3, 0, sys_sched_getaffinity, "sched_getaffinity" }, /* 223 */
+ { 5, 0, printargs, "SYS_224" }, /* 224 */
+ { 5, 0, printargs, "tux" }, /* 225 */
+ { 4, TF, sys_sendfile64, "sendfile64" }, /* 226 */
+ { 2, 0, sys_io_setup, "io_setup" }, /* 227 */
+ { 1, 0, sys_io_destroy, "io_destroy" }, /* 228 */
+ { 5, 0, sys_io_getevents, "io_getevents" }, /* 229 */
+ { 3, 0, sys_io_submit, "io_submit" }, /* 230 */
+ { 3, 0, sys_io_cancel, "io_cancel" }, /* 231 */
+ { 1, 0, printargs, "set_tid_address" }, /* 232 */
+ { 6, TF, sys_fadvise64, "fadvise64" }, /* 233 */
+ { 1, TP, sys_exit, "exit_group" }, /* 234 */
+ { 4, 0, printargs, "lookup_dcookie" }, /* 235 */
+ { 1, 0, sys_epoll_create, "epoll_create" }, /* 236 */
+ { 4, 0, sys_epoll_ctl, "epoll_ctl" }, /* 237 */
+ { 4, 0, sys_epoll_wait, "epoll_wait" }, /* 238 */
+ { 5, 0, sys_remap_file_pages, "remap_file_pages" }, /* 239 */
+ { 3, 0, sys_timer_create, "timer_create" }, /* 240 */
+ { 4, 0, sys_timer_settime, "timer_settime" }, /* 241 */
+ { 2, 0, sys_timer_gettime, "timer_gettime" }, /* 242 */
+ { 1, 0, sys_timer_getoverrun, "timer_getoverrun" }, /* 243 */
+ { 1, 0, sys_timer_delete, "timer_delete" }, /* 244 */
+ { 2, 0, sys_clock_settime, "clock_settime" }, /* 245 */
+ { 2, 0, sys_clock_gettime, "clock_gettime" }, /* 246 */
+ { 2, 0, sys_clock_getres, "clock_getres" }, /* 247 */
+ { 4, 0, sys_clock_nanosleep, "clock_nanosleep" }, /* 248 */
+ { 2, 0, printargs, "swapcontext" }, /* 249 */
+ { 3, TS, sys_tgkill, "tgkill" }, /* 250 */
+ { 2, TF, sys_utimes, "utimes" }, /* 251 */
+ { 3, TF, sys_statfs64, "statfs64" }, /* 252 */
+ { 3, TF, sys_fstatfs64, "fstatfs64" }, /* 253 */
+ { 6, TF, sys_fadvise64_64, "fadvise64_64" }, /* 254 */
+ { 1, 0, printargs, "rtas" }, /* 255 */
+ { 5, 0, printargs, "debug_setcontext" }, /* 256 */
+ { 5, 0, printargs, "vserver" }, /* 257 */
+ { 5, 0, printargs, "SYS_258" }, /* 258 */
+ { 6, 0, sys_mbind, "mbind" }, /* 259 */
+ { 5, 0, sys_get_mempolicy, "get_mempolicy" }, /* 260 */
+ { 3, 0, sys_set_mempolicy, "set_mempolicy" }, /* 261 */
+ { 4, 0, sys_mq_open, "mq_open" }, /* 262 */
+ { 1, 0, sys_mq_unlink, "mq_unlink" }, /* 263 */
+ { 5, 0, sys_mq_timedsend, "mq_timedsend" }, /* 264 */
+ { 5, 0, sys_mq_timedreceive, "mq_timedreceive" }, /* 265 */
+ { 2, 0, sys_mq_notify, "mq_notify" }, /* 266 */
+ { 3, 0, sys_mq_getsetattr, "mq_getsetattr" }, /* 267 */
+ { 5, 0, printargs, "sys_kexec_load" }, /* 268 */
+ { 5, 0, printargs, "add_key" }, /* 269 */
+ { 5, 0, printargs, "request_key" }, /* 270 */
+ { 5, 0, printargs, "keyctl" }, /* 271 */
+ { 5, TP, sys_waitid, "waitid" }, /* 272 */
+ { 5, 0, printargs, "SYS_273" }, /* 273 */
+ { 5, 0, printargs, "SYS_274" }, /* 274 */
+ { 5, 0, printargs, "SYS_275" }, /* 275 */
+ { 5, 0, printargs, "SYS_276" }, /* 276 */
+ { 5, 0, printargs, "SYS_277" }, /* 277 */
+ { 5, 0, printargs, "SYS_278" }, /* 278 */
+ { 5, 0, printargs, "SYS_279" }, /* 279 */
+ { 5, 0, printargs, "SYS_280" }, /* 280 */
+ { 5, 0, printargs, "SYS_281" }, /* 281 */
+ { 5, 0, printargs, "SYS_282" }, /* 282 */
+ { 5, 0, printargs, "SYS_283" }, /* 283 */
+ { 5, 0, printargs, "SYS_284" }, /* 284 */
+ { 5, 0, printargs, "SYS_285" }, /* 285 */
+ { 5, 0, printargs, "SYS_286" }, /* 286 */
+ { 5, 0, printargs, "SYS_287" }, /* 287 */
+ { 5, 0, printargs, "SYS_288" }, /* 288 */
+ { 5, 0, printargs, "SYS_289" }, /* 289 */
+ { 5, 0, printargs, "SYS_290" }, /* 290 */
+ { 5, 0, printargs, "SYS_291" }, /* 291 */
+ { 5, 0, printargs, "SYS_292" }, /* 292 */
+ { 5, 0, printargs, "SYS_293" }, /* 293 */
+ { 5, 0, printargs, "SYS_294" }, /* 294 */
+ { 5, 0, printargs, "SYS_295" }, /* 295 */
+ { 5, 0, printargs, "SYS_296" }, /* 296 */
+ { 5, 0, printargs, "SYS_297" }, /* 297 */
+ { 5, 0, printargs, "SYS_298" }, /* 298 */
+ { 5, 0, printargs, "SYS_299" }, /* 299 */
+
+ { 8, 0, printargs, "socket_subcall"}, /* 300 */
+ { 3, TN, sys_socket, "socket" }, /* 301 */
+ { 3, TN, sys_bind, "bind" }, /* 302 */
+ { 3, TN, sys_connect, "connect" }, /* 303 */
+ { 2, TN, sys_listen, "listen" }, /* 304 */
+ { 3, TN, sys_accept, "accept" }, /* 305 */
+ { 3, TN, sys_getsockname, "getsockname" }, /* 306 */
+ { 3, TN, sys_getpeername, "getpeername" }, /* 307 */
+ { 4, TN, sys_socketpair, "socketpair" }, /* 308 */
+ { 4, TN, sys_send, "send" }, /* 309 */
+ { 4, TN, sys_recv, "recv" }, /* 310 */
+ { 6, TN, sys_sendto, "sendto" }, /* 311 */
+ { 6, TN, sys_recvfrom, "recvfrom" }, /* 312 */
+ { 2, TN, sys_shutdown, "shutdown" }, /* 313 */
+ { 5, TN, sys_setsockopt, "setsockopt" }, /* 314 */
+ { 5, TN, sys_getsockopt, "getsockopt" }, /* 315 */
+ { 5, TN, sys_sendmsg, "sendmsg" }, /* 316 */
+ { 5, TN, sys_recvmsg, "recvmsg" }, /* 317 */
+
+ { 4, 0, printargs, "ipc_subcall" }, /* 318 */
+ { 4, TI, printargs, "semop" }, /* 319 */
+ { 4, TI, sys_semget, "semget" }, /* 320 */
+ { 4, TI, sys_semctl, "semctl" }, /* 321 */
+ { 5, TI, sys_semtimedop, "semtimedop" }, /* 322 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 323 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 324 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 325 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 326 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 327 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 328 */
+ { 4, TI, sys_msgsnd, "msgsnd" }, /* 329 */
+ { 4, TI, sys_msgrcv, "msgrcv" }, /* 330 */
+ { 4, TI, sys_msgget, "msgget" }, /* 331 */
+ { 4, TI, sys_msgctl, "msgctl" }, /* 332 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 333 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 334 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 335 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 336 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 337 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 338 */
+ { 4, TI, sys_shmat, "shmat" }, /* 339 */
+ { 4, TI, sys_shmdt, "shmdt" }, /* 340 */
+ { 4, TI, sys_shmget, "shmget" }, /* 341 */
+ { 4, TI, sys_shmctl, "shmctl" }, /* 342 */
+ { 5, 0, printargs, "SYS_343" }, /* 343 */
+ { 5, 0, printargs, "SYS_344" }, /* 344 */
+ { 5, 0, printargs, "SYS_345" }, /* 345 */
+ { 5, 0, printargs, "SYS_346" }, /* 346 */
+ { 5, 0, printargs, "SYS_347" }, /* 347 */
diff --git a/strace/linux/s390/errnoent.h b/strace/linux/s390/errnoent.h
new file mode 100644
index 0000000..180b506
--- /dev/null
+++ b/strace/linux/s390/errnoent.h
@@ -0,0 +1,125 @@
+ "ERRNO_0", /* 0 */
+ "EPERM", /* 1 */
+ "ENOENT", /* 2 */
+ "ESRCH", /* 3 */
+ "EINTR", /* 4 */
+ "EIO", /* 5 */
+ "ENXIO", /* 6 */
+ "E2BIG", /* 7 */
+ "ENOEXEC", /* 8 */
+ "EBADF", /* 9 */
+ "ECHILD", /* 10 */
+ "EAGAIN", /* 11 */
+ "ENOMEM", /* 12 */
+ "EACCES", /* 13 */
+ "EFAULT", /* 14 */
+ "ENOTBLK", /* 15 */
+ "EBUSY", /* 16 */
+ "EEXIST", /* 17 */
+ "EXDEV", /* 18 */
+ "ENODEV", /* 19 */
+ "ENOTDIR", /* 20 */
+ "EISDIR", /* 21 */
+ "EINVAL", /* 22 */
+ "ENFILE", /* 23 */
+ "EMFILE", /* 24 */
+ "ENOTTY", /* 25 */
+ "ETXTBSY", /* 26 */
+ "EFBIG", /* 27 */
+ "ENOSPC", /* 28 */
+ "ESPIPE", /* 29 */
+ "EROFS", /* 30 */
+ "EMLINK", /* 31 */
+ "EPIPE", /* 32 */
+ "EDOM", /* 33 */
+ "ERANGE", /* 34 */
+ "EDEADLK", /* 35 */
+ "ENAMETOOLONG", /* 36 */
+ "ENOLCK", /* 37 */
+ "ENOSYS", /* 38 */
+ "ENOTEMPTY", /* 39 */
+ "ELOOP", /* 40 */
+ "ERRNO_41", /* 41 */
+ "ENOMSG", /* 42 */
+ "EIDRM", /* 43 */
+ "ECHRNG", /* 44 */
+ "EL2NSYNC", /* 45 */
+ "EL3HLT", /* 46 */
+ "EL3RST", /* 47 */
+ "ELNRNG", /* 48 */
+ "EUNATCH", /* 49 */
+ "ENOCSI", /* 50 */
+ "EL2HLT", /* 51 */
+ "EBADE", /* 52 */
+ "EBADR", /* 53 */
+ "EXFULL", /* 54 */
+ "ENOANO", /* 55 */
+ "EBADRQC", /* 56 */
+ "EBADSLT", /* 57 */
+ "ERRNO_58", /* 58 */
+ "EBFONT", /* 59 */
+ "ENOSTR", /* 60 */
+ "ENODATA", /* 61 */
+ "ETIME", /* 62 */
+ "ENOSR", /* 63 */
+ "ENONET", /* 64 */
+ "ENOPKG", /* 65 */
+ "EREMOTE", /* 66 */
+ "ENOLINK", /* 67 */
+ "EADV", /* 68 */
+ "ESRMNT", /* 69 */
+ "ECOMM", /* 70 */
+ "EPROTO", /* 71 */
+ "EMULTIHOP", /* 72 */
+ "EDOTDOT", /* 73 */
+ "EBADMSG", /* 74 */
+ "EOVERFLOW", /* 75 */
+ "ENOTUNIQ", /* 76 */
+ "EBADFD", /* 77 */
+ "EREMCHG", /* 78 */
+ "ELIBACC", /* 79 */
+ "ELIBBAD", /* 80 */
+ "ELIBSCN", /* 81 */
+ "ELIBMAX", /* 82 */
+ "ELIBEXEC", /* 83 */
+ "EILSEQ", /* 84 */
+ "ERESTART", /* 85 */
+ "ESTRPIPE", /* 86 */
+ "EUSERS", /* 87 */
+ "ENOTSOCK", /* 88 */
+ "EDESTADDRREQ", /* 89 */
+ "EMSGSIZE", /* 90 */
+ "EPROTOTYPE", /* 91 */
+ "ENOPROTOOPT", /* 92 */
+ "EPROTONOSUPPORT", /* 93 */
+ "ESOCKTNOSUPPORT", /* 94 */
+ "EOPNOTSUPP", /* 95 */
+ "EPFNOSUPPORT", /* 96 */
+ "EAFNOSUPPORT", /* 97 */
+ "EADDRINUSE", /* 98 */
+ "EADDRNOTAVAIL", /* 99 */
+ "ENETDOWN", /* 100 */
+ "ENETUNREACH", /* 101 */
+ "ENETRESET", /* 102 */
+ "ECONNABORTED", /* 103 */
+ "ECONNRESET", /* 104 */
+ "ENOBUFS", /* 105 */
+ "EISCONN", /* 106 */
+ "ENOTCONN", /* 107 */
+ "ESHUTDOWN", /* 108 */
+ "ETOOMANYREFS", /* 109 */
+ "ETIMEDOUT", /* 110 */
+ "ECONNREFUSED", /* 111 */
+ "EHOSTDOWN", /* 112 */
+ "EHOSTUNREACH", /* 113 */
+ "EALREADY", /* 114 */
+ "EINPROGRESS", /* 115 */
+ "ESTALE", /* 116 */
+ "EUCLEAN", /* 117 */
+ "ENOTNAM", /* 118 */
+ "ENAVAIL", /* 119 */
+ "EISNAM", /* 120 */
+ "EREMOTEIO", /* 121 */
+ "EDQUOT", /* 122 */
+ "ENOMEDIUM", /* 123 */
+ "EMEDIUMTYPE", /* 124 */
diff --git a/strace/linux/s390/ioctlent.h b/strace/linux/s390/ioctlent.h
new file mode 100644
index 0000000..414fbeb
--- /dev/null
+++ b/strace/linux/s390/ioctlent.h
@@ -0,0 +1,941 @@
+{"linux/fs.h", "FIBMAP", 0x1},
+{"linux/fs.h", "FIGETBSZ", 0x2},
+{"linux/fd.h", "FDCLRPRM", 0x241},
+{"linux/fd.h", "FDMSGON", 0x245},
+{"linux/fd.h", "FDMSGOFF", 0x246},
+{"linux/fd.h", "FDFMTBEG", 0x247},
+{"linux/fd.h", "FDFMTEND", 0x249},
+{"linux/fd.h", "FDSETEMSGTRESH", 0x24a},
+{"linux/fd.h", "FDFLUSH", 0x24b},
+{"linux/fd.h", "FDRESET", 0x254},
+{"linux/fd.h", "FDWERRORCLR", 0x256},
+{"linux/fd.h", "FDRAWCMD", 0x258},
+{"linux/fd.h", "FDTWADDLE", 0x259},
+{"linux/fd.h", "FDEJECT", 0x25a},
+{"linux/hdreg.h", "HDIO_GETGEO", 0x301},
+{"linux/hdreg.h", "HDIO_GET_UNMASKINTR", 0x302},
+{"linux/hdreg.h", "HDIO_GET_MULTCOUNT", 0x304},
+{"linux/hdreg.h", "HDIO_OBSOLETE_IDENTITY", 0x307},
+{"linux/hdreg.h", "HDIO_GET_KEEPSETTINGS", 0x308},
+{"linux/hdreg.h", "HDIO_GET_32BIT", 0x309},
+{"linux/hdreg.h", "HDIO_GET_NOWERR", 0x30a},
+{"linux/hdreg.h", "HDIO_GET_DMA", 0x30b},
+{"linux/hdreg.h", "HDIO_GET_NICE", 0x30c},
+{"linux/hdreg.h", "HDIO_GET_IDENTITY", 0x30d},
+{"linux/hdreg.h", "HDIO_DRIVE_RESET", 0x31c},
+{"linux/hdreg.h", "HDIO_TRISTATE_HWIF", 0x31d},
+{"linux/hdreg.h", "HDIO_DRIVE_TASK", 0x31e},
+{"linux/hdreg.h", "HDIO_DRIVE_CMD", 0x31f},
+{"linux/hdreg.h", "HDIO_SET_MULTCOUNT", 0x321},
+{"linux/hdreg.h", "HDIO_SET_UNMASKINTR", 0x322},
+{"linux/hdreg.h", "HDIO_SET_KEEPSETTINGS", 0x323},
+{"linux/hdreg.h", "HDIO_SET_32BIT", 0x324},
+{"linux/hdreg.h", "HDIO_SET_NOWERR", 0x325},
+{"linux/hdreg.h", "HDIO_SET_DMA", 0x326},
+{"linux/hdreg.h", "HDIO_SET_PIO_MODE", 0x327},
+{"linux/hdreg.h", "HDIO_SCAN_HWIF", 0x328},
+{"linux/hdreg.h", "HDIO_SET_NICE", 0x329},
+{"linux/hdreg.h", "HDIO_UNREGISTER_HWIF", 0x32a},
+{"linux/hdreg.h", "HDIO_GETGEO_BIG", 0x330},
+{"linux/hdreg.h", "HDIO_GETGEO_BIG_RAW", 0x331},
+{"linux/umsdos_fs.h", "UMSDOS_READDIR_DOS", 0x4d2},
+{"linux/umsdos_fs.h", "UMSDOS_UNLINK_DOS", 0x4d3},
+{"linux/umsdos_fs.h", "UMSDOS_RMDIR_DOS", 0x4d4},
+{"linux/umsdos_fs.h", "UMSDOS_STAT_DOS", 0x4d5},
+{"linux/umsdos_fs.h", "UMSDOS_CREAT_EMD", 0x4d6},
+{"linux/umsdos_fs.h", "UMSDOS_UNLINK_EMD", 0x4d7},
+{"linux/umsdos_fs.h", "UMSDOS_READDIR_EMD", 0x4d8},
+{"linux/umsdos_fs.h", "UMSDOS_GETVERSION", 0x4d9},
+{"linux/umsdos_fs.h", "UMSDOS_INIT_EMD", 0x4da},
+{"linux/umsdos_fs.h", "UMSDOS_DOS_SETUP", 0x4db},
+{"linux/umsdos_fs.h", "UMSDOS_RENAME_DOS", 0x4dc},
+{"linux/lp.h", "LPCHAR", 0x601},
+{"linux/lp.h", "LPTIME", 0x602},
+{"linux/lp.h", "LPABORT", 0x604},
+{"linux/lp.h", "LPSETIRQ", 0x605},
+{"linux/ac97_codec.h", "AC97_RECMUX_MONO_MIX", 0x606},
+{"linux/lp.h", "LPGETIRQ", 0x606},
+{"linux/lp.h", "LPWAIT", 0x608},
+{"linux/lp.h", "LPCAREFUL", 0x609},
+{"linux/lp.h", "LPABORTOPEN", 0x60a},
+{"linux/lp.h", "LPGETSTATUS", 0x60b},
+{"linux/lp.h", "LPRESET", 0x60c},
+{"linux/lp.h", "LPGETSTATS", 0x60d},
+{"linux/lp.h", "LPGETFLAGS", 0x60e},
+{"linux/lp.h", "LPSETTIMEOUT", 0x60f},
+{"linux/fs.h", "BLKROSET", 0x125d},
+{"linux/fs.h", "BLKROGET", 0x125e},
+{"linux/fs.h", "BLKRRPART", 0x125f},
+{"linux/fs.h", "BLKGETSIZE", 0x1260},
+{"linux/fs.h", "BLKFLSBUF", 0x1261},
+{"linux/fs.h", "BLKRASET", 0x1262},
+{"linux/fs.h", "BLKRAGET", 0x1263},
+{"linux/fs.h", "BLKFRASET", 0x1264},
+{"linux/fs.h", "BLKFRAGET", 0x1265},
+{"linux/fs.h", "BLKSECTSET", 0x1266},
+{"linux/fs.h", "BLKSECTGET", 0x1267},
+{"linux/fs.h", "BLKSSZGET", 0x1268},
+{"linux/fs.h", "BLKPG", 0x1269},
+{"scsi/sg.h", "SG_SET_TIMEOUT", 0x2201},
+{"scsi/sg.h", "SG_GET_TIMEOUT", 0x2202},
+{"scsi/sg.h", "SG_EMULATED_HOST", 0x2203},
+{"scsi/sg.h", "SG_SET_TRANSFORM", 0x2204},
+{"scsi/sg.h", "SG_GET_TRANSFORM", 0x2205},
+{"scsi/sg.h", "SG_GET_COMMAND_Q", 0x2270},
+{"scsi/sg.h", "SG_SET_COMMAND_Q", 0x2271},
+{"scsi/sg.h", "SG_GET_RESERVED_SIZE", 0x2272},
+{"scsi/sg.h", "SG_SET_RESERVED_SIZE", 0x2275},
+{"scsi/sg.h", "SG_GET_SCSI_ID", 0x2276},
+{"scsi/sg.h", "SG_SET_FORCE_LOW_DMA", 0x2279},
+{"scsi/sg.h", "SG_GET_LOW_DMA", 0x227a},
+{"scsi/sg.h", "SG_SET_FORCE_PACK_ID", 0x227b},
+{"scsi/sg.h", "SG_GET_PACK_ID", 0x227c},
+{"scsi/sg.h", "SG_GET_NUM_WAITING", 0x227d},
+{"scsi/sg.h", "SG_SET_DEBUG", 0x227e},
+{"scsi/sg.h", "SG_GET_SG_TABLESIZE", 0x227f},
+{"scsi/sg.h", "SG_GET_VERSION_NUM", 0x2282},
+{"scsi/sg.h", "SG_NEXT_CMD_LEN", 0x2283},
+{"scsi/sg.h", "SG_SCSI_RESET", 0x2284},
+{"scsi/sg.h", "SG_IO", 0x2285},
+{"scsi/sg.h", "SG_GET_REQUEST_TABLE", 0x2286},
+{"scsi/sg.h", "SG_SET_KEEP_ORPHAN", 0x2287},
+{"scsi/sg.h", "SG_GET_KEEP_ORPHAN", 0x2288},
+{"linux/agpgart.h", "AGPIOC_ACQUIRE", 0x4101},
+{"linux/agpgart.h", "AGPIOC_RELEASE", 0x4102},
+{"linux/pmu.h", "PMU_IOC_SLEEP", 0x4200},
+{"asm/dasd.h", "BIODASDDISABLE", 0x4400},
+{"asm/dasd.h", "BIODASDENABLE", 0x4401},
+{"asm/dasd.h", "BIODASDRSRV", 0x4402},
+{"asm/dasd.h", "BIODASDRLSE", 0x4403},
+{"asm/dasd.h", "BIODASDSLCK", 0x4404},
+{"asm/dasd.h", "BIODASDPRRST", 0x4405},
+{"asm/dasd.h", "BIODASDQUIESCE", 0x4406},
+{"asm/dasd.h", "BIODASDRESUME", 0x4407},
+{"asm/cmb.h", "BIODASDCMFENABLE", 0x4420},
+{"asm/cmb.h", "BIODASDCMFDISABLE", 0x4421},
+{"asm/cmb.h", "BIODASDRESETCMB", 0x4422},
+{"linux/fb.h", "FBIOGET_VSCREENINFO", 0x4600},
+{"linux/fb.h", "FBIOPUT_VSCREENINFO", 0x4601},
+{"linux/ps2esdi.h", "CMD_READ", 0x4601},
+{"linux/fb.h", "FBIOGET_FSCREENINFO", 0x4602},
+{"linux/ps2esdi.h", "CMD_WRITE", 0x4602},
+{"linux/fb.h", "FBIOGETCMAP", 0x4604},
+{"linux/fb.h", "FBIOPUTCMAP", 0x4605},
+{"linux/fb.h", "FBIOPAN_DISPLAY", 0x4606},
+{"linux/fb.h", "FBIOGET_FCURSORINFO", 0x4607},
+{"linux/fb.h", "FBIOGET_VCURSORINFO", 0x4608},
+{"linux/fb.h", "FBIOPUT_VCURSORINFO", 0x4609},
+{"linux/fb.h", "FBIOGET_CURSORSTATE", 0x460a},
+{"linux/fb.h", "FBIOPUT_CURSORSTATE", 0x460b},
+{"linux/fb.h", "FBIOGET_CON2FBMAP", 0x460f},
+{"linux/fb.h", "FBIOPUT_CON2FBMAP", 0x4610},
+{"linux/fb.h", "FBIOBLANK", 0x4611},
+{"linux/fb.h", "FBIO_ALLOC", 0x4613},
+{"linux/fb.h", "FBIO_FREE", 0x4614},
+{"linux/fb.h", "FBIOGET_GLYPH", 0x4615},
+{"linux/fb.h", "FBIOGET_HWCINFO", 0x4616},
+{"linux/isdn.h", "IIOCNETAIF", 0x4901},
+{"linux/isdn.h", "IIOCNETDIF", 0x4902},
+{"linux/isdn.h", "IIOCNETSCF", 0x4903},
+{"linux/isdn.h", "IIOCNETGCF", 0x4904},
+{"linux/isdn.h", "IIOCNETANM", 0x4905},
+{"linux/isdn.h", "IIOCNETDNM", 0x4906},
+{"linux/isdn.h", "IIOCNETGNM", 0x4907},
+{"linux/isdn.h", "IIOCGETSET", 0x4908},
+{"linux/isdn.h", "IIOCSETSET", 0x4909},
+{"linux/isdn.h", "IIOCSETVER", 0x490a},
+{"linux/isdn.h", "IIOCNETHUP", 0x490b},
+{"linux/isdn.h", "IIOCSETGST", 0x490c},
+{"linux/isdn.h", "IIOCSETBRJ", 0x490d},
+{"linux/isdn.h", "IIOCSIGPRF", 0x490e},
+{"linux/isdn.h", "IIOCGETPRF", 0x490f},
+{"linux/isdn.h", "IIOCSETPRF", 0x4910},
+{"linux/isdn.h", "IIOCGETMAP", 0x4911},
+{"linux/isdn.h", "IIOCSETMAP", 0x4912},
+{"linux/isdn.h", "IIOCNETASL", 0x4913},
+{"linux/isdn.h", "IIOCNETDIL", 0x4914},
+{"linux/isdn.h", "IIOCGETCPS", 0x4915},
+{"linux/isdn.h", "IIOCGETDVR", 0x4916},
+{"linux/isdn.h", "IIOCNETLCR", 0x4917},
+{"linux/isdn.h", "IIOCNETDWRSET", 0x4918},
+{"linux/isdn.h", "IIOCNETALN", 0x4920},
+{"linux/isdn.h", "IIOCNETDLN", 0x4921},
+{"linux/isdn.h", "IIOCNETGPN", 0x4922},
+{"linux/isdn.h", "IIOCDBGVAR", 0x497f},
+{"linux/isdn.h", "IIOCDRVCTL", 0x4980},
+{"linux/kd.h", "KIOCSOUND", 0x4b2f},
+{"linux/kd.h", "KDMKTONE", 0x4b30},
+{"linux/kd.h", "KDGETLED", 0x4b31},
+{"linux/kd.h", "KDSETLED", 0x4b32},
+{"linux/kd.h", "KDGKBTYPE", 0x4b33},
+{"linux/kd.h", "KDADDIO", 0x4b34},
+{"linux/kd.h", "KDDELIO", 0x4b35},
+{"linux/kd.h", "KDENABIO", 0x4b36},
+{"linux/kd.h", "KDDISABIO", 0x4b37},
+{"linux/kd.h", "KDSETMODE", 0x4b3a},
+{"linux/kd.h", "KDGETMODE", 0x4b3b},
+{"linux/kd.h", "KDMAPDISP", 0x4b3c},
+{"linux/kd.h", "KDUNMAPDISP", 0x4b3d},
+{"linux/kd.h", "GIO_SCRNMAP", 0x4b40},
+{"linux/kd.h", "PIO_SCRNMAP", 0x4b41},
+{"linux/kd.h", "KDGKBMODE", 0x4b44},
+{"linux/kd.h", "KDSKBMODE", 0x4b45},
+{"linux/kd.h", "KDGKBENT", 0x4b46},
+{"linux/kd.h", "KDSKBENT", 0x4b47},
+{"linux/kd.h", "KDGKBSENT", 0x4b48},
+{"linux/kd.h", "KDSKBSENT", 0x4b49},
+{"linux/kd.h", "KDGKBDIACR", 0x4b4a},
+{"linux/kd.h", "KDSKBDIACR", 0x4b4b},
+{"linux/kd.h", "KDGETKEYCODE", 0x4b4c},
+{"linux/kd.h", "KDSETKEYCODE", 0x4b4d},
+{"linux/kd.h", "KDSIGACCEPT", 0x4b4e},
+{"linux/kd.h", "KDGHWCLK", 0x4b50},
+{"linux/kd.h", "KDSHWCLK", 0x4b51},
+{"linux/kd.h", "KDKBDREP", 0x4b52},
+{"linux/kd.h", "GIO_FONT", 0x4b60},
+{"linux/kd.h", "PIO_FONT", 0x4b61},
+{"linux/kd.h", "KDGKBMETA", 0x4b62},
+{"linux/kd.h", "KDSKBMETA", 0x4b63},
+{"linux/kd.h", "KDGKBLED", 0x4b64},
+{"linux/kd.h", "KDSKBLED", 0x4b65},
+{"linux/kd.h", "GIO_UNIMAP", 0x4b66},
+{"linux/kd.h", "PIO_UNIMAP", 0x4b67},
+{"linux/kd.h", "PIO_UNIMAPCLR", 0x4b68},
+{"linux/kd.h", "GIO_UNISCRNMAP", 0x4b69},
+{"linux/kd.h", "PIO_UNISCRNMAP", 0x4b6a},
+{"linux/kd.h", "GIO_FONTX", 0x4b6b},
+{"linux/kd.h", "PIO_FONTX", 0x4b6c},
+{"linux/kd.h", "PIO_FONTRESET", 0x4b6d},
+{"linux/kd.h", "GIO_CMAP", 0x4b70},
+{"linux/kd.h", "PIO_CMAP", 0x4b71},
+{"linux/kd.h", "KDFONTOP", 0x4b72},
+{"linux/loop.h", "LOOP_SET_FD", 0x4c00},
+{"linux/loop.h", "LOOP_CLR_FD", 0x4c01},
+{"linux/loop.h", "LOOP_SET_STATUS", 0x4c02},
+{"linux/loop.h", "LOOP_GET_STATUS", 0x4c03},
+{"linux/random.h", "RNDZAPENTCNT", 0x5204},
+{"linux/random.h", "RNDCLEARPOOL", 0x5206},
+{"linux/cdrom.h", "CDROMPAUSE", 0x5301},
+{"linux/cdrom.h", "CDROMRESUME", 0x5302},
+{"linux/cdrom.h", "CDROMPLAYMSF", 0x5303},
+{"linux/cdrom.h", "CDROMPLAYTRKIND", 0x5304},
+{"linux/cdrom.h", "CDROMREADTOCHDR", 0x5305},
+{"linux/cdrom.h", "CDROMREADTOCENTRY", 0x5306},
+{"linux/cdrom.h", "CDROMSTOP", 0x5307},
+{"linux/cdrom.h", "CDROMSTART", 0x5308},
+{"linux/cdrom.h", "CDROMEJECT", 0x5309},
+{"linux/cdrom.h", "CDROMVOLCTRL", 0x530a},
+{"linux/cdrom.h", "CDROMSUBCHNL", 0x530b},
+{"linux/cdrom.h", "CDROMREADMODE2", 0x530c},
+{"linux/cdrom.h", "CDROMREADMODE1", 0x530d},
+{"linux/cdrom.h", "CDROMREADAUDIO", 0x530e},
+{"linux/cdrom.h", "CDROMEJECT_SW", 0x530f},
+{"linux/cdrom.h", "CDROMMULTISESSION", 0x5310},
+{"linux/cdrom.h", "CDROM_GET_MCN", 0x5311},
+{"linux/cdrom.h", "CDROMRESET", 0x5312},
+{"linux/cdrom.h", "CDROMVOLREAD", 0x5313},
+{"linux/cdrom.h", "CDROMREADRAW", 0x5314},
+{"linux/cdrom.h", "CDROMREADCOOKED", 0x5315},
+{"linux/cdrom.h", "CDROMSEEK", 0x5316},
+{"linux/cdrom.h", "CDROMPLAYBLK", 0x5317},
+{"linux/cdrom.h", "CDROMREADALL", 0x5318},
+{"linux/cdrom.h", "CDROMCLOSETRAY", 0x5319},
+{"linux/cdrom.h", "CDROMGETSPINDOWN", 0x531d},
+{"linux/cdrom.h", "CDROMSETSPINDOWN", 0x531e},
+{"linux/cdrom.h", "CDROM_SET_OPTIONS", 0x5320},
+{"linux/cdrom.h", "CDROM_CLEAR_OPTIONS", 0x5321},
+{"linux/cdrom.h", "CDROM_SELECT_SPEED", 0x5322},
+{"linux/cdrom.h", "CDROM_SELECT_DISC", 0x5323},
+{"linux/cdrom.h", "CDROM_MEDIA_CHANGED", 0x5325},
+{"linux/cdrom.h", "CDROM_DRIVE_STATUS", 0x5326},
+{"linux/cdrom.h", "CDROM_DISC_STATUS", 0x5327},
+{"linux/cdrom.h", "CDROM_CHANGER_NSLOTS", 0x5328},
+{"linux/cdrom.h", "CDROM_LOCKDOOR", 0x5329},
+{"linux/cdrom.h", "CDROM_DEBUG", 0x5330},
+{"linux/cdrom.h", "CDROM_GET_CAPABILITY", 0x5331},
+{"scsi/scsi_ioctl.h", "SCSI_IOCTL_DOORLOCK", 0x5380},
+{"scsi/scsi_ioctl.h", "SCSI_IOCTL_DOORUNLOCK", 0x5381},
+{"scsi/scsi.h", "SCSI_IOCTL_GET_IDLUN", 0x5382},
+{"scsi/scsi.h", "SCSI_IOCTL_TAGGED_ENABLE", 0x5383},
+{"scsi/scsi.h", "SCSI_IOCTL_TAGGED_DISABLE", 0x5384},
+{"scsi/scsi.h", "SCSI_IOCTL_PROBE_HOST", 0x5385},
+{"scsi/scsi.h", "SCSI_IOCTL_GET_BUS_NUMBER", 0x5386},
+{"linux/cdrom.h", "DVD_READ_STRUCT", 0x5390},
+{"linux/cdrom.h", "DVD_WRITE_STRUCT", 0x5391},
+{"linux/cdrom.h", "DVD_AUTH", 0x5392},
+{"linux/cdrom.h", "CDROM_SEND_PACKET", 0x5393},
+{"linux/cdrom.h", "CDROM_NEXT_WRITABLE", 0x5394},
+{"linux/cdrom.h", "CDROM_LAST_WRITTEN", 0x5395},
+{"asm/ioctls.h", "TCGETS", 0x5401},
+{"asm/ioctls.h", "TCSETS", 0x5402},
+{"asm/ioctls.h", "TCSETSW", 0x5403},
+{"asm/ioctls.h", "TCSETSF", 0x5404},
+{"asm/ioctls.h", "TCGETA", 0x5405},
+{"asm/ioctls.h", "TCSETA", 0x5406},
+{"asm/ioctls.h", "TCSETAW", 0x5407},
+{"asm/ioctls.h", "TCSETAF", 0x5408},
+{"asm/ioctls.h", "TCSBRK", 0x5409},
+{"asm/ioctls.h", "TCXONC", 0x540a},
+{"asm/ioctls.h", "TCFLSH", 0x540b},
+{"asm/ioctls.h", "TIOCEXCL", 0x540c},
+{"asm/ioctls.h", "TIOCNXCL", 0x540d},
+{"asm/ioctls.h", "TIOCSCTTY", 0x540e},
+{"asm/ioctls.h", "TIOCGPGRP", 0x540f},
+{"asm/ioctls.h", "TIOCSPGRP", 0x5410},
+{"asm/ioctls.h", "TIOCOUTQ", 0x5411},
+{"asm/ioctls.h", "TIOCSTI", 0x5412},
+{"asm/ioctls.h", "TIOCGWINSZ", 0x5413},
+{"asm/ioctls.h", "TIOCSWINSZ", 0x5414},
+{"asm/ioctls.h", "TIOCMGET", 0x5415},
+{"asm/ioctls.h", "TIOCMBIS", 0x5416},
+{"asm/ioctls.h", "TIOCMBIC", 0x5417},
+{"asm/ioctls.h", "TIOCMSET", 0x5418},
+{"asm/ioctls.h", "TIOCGSOFTCAR", 0x5419},
+{"asm/ioctls.h", "TIOCSSOFTCAR", 0x541a},
+{"asm/ioctls.h", "FIONREAD", 0x541b},
+{"asm/ioctls.h", "TIOCLINUX", 0x541c},
+{"asm/ioctls.h", "TIOCCONS", 0x541d},
+{"asm/ioctls.h", "TIOCGSERIAL", 0x541e},
+{"asm/ioctls.h", "TIOCSSERIAL", 0x541f},
+{"asm/ioctls.h", "TIOCPKT", 0x5420},
+{"asm/ioctls.h", "FIONBIO", 0x5421},
+{"asm/ioctls.h", "TIOCNOTTY", 0x5422},
+{"asm/ioctls.h", "TIOCSETD", 0x5423},
+{"asm/ioctls.h", "TIOCGETD", 0x5424},
+{"asm/ioctls.h", "TCSBRKP", 0x5425},
+{"asm/ioctls.h", "TIOCTTYGSTRUCT", 0x5426},
+{"asm/ioctls.h", "TIOCSBRK", 0x5427},
+{"asm/ioctls.h", "TIOCCBRK", 0x5428},
+{"asm/ioctls.h", "TIOCGSID", 0x5429},
+{"asm/ioctls.h", "FIONCLEX", 0x5450},
+{"asm/ioctls.h", "FIOCLEX", 0x5451},
+{"asm/ioctls.h", "FIOASYNC", 0x5452},
+{"asm/ioctls.h", "TIOCSERCONFIG", 0x5453},
+{"asm/ioctls.h", "TIOCSERGWILD", 0x5454},
+{"asm/ioctls.h", "TIOCSERSWILD", 0x5455},
+{"asm/ioctls.h", "TIOCGLCKTRMIOS", 0x5456},
+{"asm/ioctls.h", "TIOCSLCKTRMIOS", 0x5457},
+{"asm/ioctls.h", "TIOCSERGSTRUCT", 0x5458},
+{"asm/ioctls.h", "TIOCSERGETLSR", 0x5459},
+{"asm/ioctls.h", "TIOCSERGETMULTI", 0x545a},
+{"asm/ioctls.h", "TIOCSERSETMULTI", 0x545b},
+{"asm/ioctls.h", "TIOCMIWAIT", 0x545c},
+{"asm/ioctls.h", "TIOCGICOUNT", 0x545d},
+{"asm/ioctls.h", "FIOQSIZE", 0x545e},
+{"linux/usbdevice_fs.h", "USBDEVFS_DISCARDURB", 0x550b},
+{"linux/usbdevice_fs.h", "USBDEVFS_RESET", 0x5514},
+{"linux/vt.h", "VT_OPENQRY", 0x5600},
+{"linux/vt.h", "VT_GETMODE", 0x5601},
+{"linux/vt.h", "VT_SETMODE", 0x5602},
+{"linux/vt.h", "VT_GETSTATE", 0x5603},
+{"linux/vt.h", "VT_SENDSIG", 0x5604},
+{"linux/vt.h", "VT_RELDISP", 0x5605},
+{"linux/vt.h", "VT_ACTIVATE", 0x5606},
+{"linux/vt.h", "VT_WAITACTIVE", 0x5607},
+{"linux/vt.h", "VT_DISALLOCATE", 0x5608},
+{"linux/vt.h", "VT_RESIZE", 0x5609},
+{"linux/vt.h", "VT_RESIZEX", 0x560a},
+{"linux/vt.h", "VT_LOCKSWITCH", 0x560b},
+{"linux/vt.h", "VT_UNLOCKSWITCH", 0x560c},
+{"linux/sonet.h", "SONET_SETFRAMING", 0x6115},
+{"linux/atm_nicstar.h", "NS_ADJBUFLEV", 0x6163},
+{"linux/atm_tcp.h", "SIOCSIFATMTCP", 0x6180},
+{"linux/atm_tcp.h", "ATMTCP_CREATE", 0x618e},
+{"linux/atm_tcp.h", "ATMTCP_REMOVE", 0x618f},
+{"linux/atmlec.h", "ATMLEC_CTRL", 0x61d0},
+{"linux/atmlec.h", "ATMLEC_DATA", 0x61d1},
+{"linux/atmlec.h", "ATMLEC_MCAST", 0x61d2},
+{"linux/atmmpc.h", "ATMMPC_CTRL", 0x61d8},
+{"linux/atmmpc.h", "ATMMPC_DATA", 0x61d9},
+{"linux/atmclip.h", "SIOCMKCLIP", 0x61e0},
+{"linux/atmarp.h", "ATMARPD_CTRL", 0x61e1},
+{"linux/atmarp.h", "ATMARP_MKIP", 0x61e2},
+{"linux/atmarp.h", "ATMARP_SETENTRY", 0x61e3},
+{"linux/atmarp.h", "ATMARP_ENCAP", 0x61e5},
+{"linux/atmsvc.h", "ATMSIGD_CTRL", 0x61f0},
+{"linux/comstats.h", "COM_GETPORTSTATS", 0x631e},
+{"linux/comstats.h", "COM_CLRPORTSTATS", 0x631f},
+{"linux/comstats.h", "COM_GETBRDSTATS", 0x6320},
+{"linux/comstats.h", "COM_READPORT", 0x6328},
+{"linux/comstats.h", "COM_READBOARD", 0x6329},
+{"linux/comstats.h", "COM_READPANEL", 0x632a},
+{"linux/video_decoder.h", "DECODER_DUMP", 0x64c0},
+{"linux/synclink.h", "MGSL_IOCSTXIDLE", 0x6d02},
+{"linux/synclink.h", "MGSL_IOCGTXIDLE", 0x6d03},
+{"linux/synclink.h", "MGSL_IOCTXENABLE", 0x6d04},
+{"linux/synclink.h", "MGSL_IOCRXENABLE", 0x6d05},
+{"linux/synclink.h", "MGSL_IOCTXABORT", 0x6d06},
+{"linux/synclink.h", "MGSL_IOCGSTATS", 0x6d07},
+{"linux/synclink.h", "MGSL_IOCLOOPTXDONE", 0x6d09},
+{"linux/synclink.h", "MGSL_IOCCLRMODCOUNT", 0x6d0f},
+{"linux/ncp_fs.h", "NCP_IOC_CONN_LOGGED_IN", 0x6e03},
+{"linux/rtc.h", "RTC_AIE_ON", 0x7001},
+{"linux/rtc.h", "RTC_AIE_OFF", 0x7002},
+{"linux/rtc.h", "RTC_UIE_ON", 0x7003},
+{"linux/rtc.h", "RTC_UIE_OFF", 0x7004},
+{"linux/rtc.h", "RTC_PIE_ON", 0x7005},
+{"linux/rtc.h", "RTC_PIE_OFF", 0x7006},
+{"linux/rtc.h", "RTC_WIE_ON", 0x700f},
+{"linux/rtc.h", "RTC_WIE_OFF", 0x7010},
+{"linux/nvram.h", "NVRAM_INIT", 0x7040},
+{"linux/nvram.h", "NVRAM_SETCKS", 0x7041},
+{"linux/ppdev.h", "PPCLAIM", 0x708b},
+{"linux/ppdev.h", "PPRELEASE", 0x708c},
+{"linux/ppdev.h", "PPYIELD", 0x708d},
+{"linux/ppdev.h", "PPEXCL", 0x708f},
+{"linux/telephony.h", "PHONE_CAPABILITIES", 0x7180},
+{"linux/telephony.h", "PHONE_RING", 0x7183},
+{"linux/telephony.h", "PHONE_HOOKSTATE", 0x7184},
+{"linux/telephony.h", "PHONE_RING_START", 0x7187},
+{"linux/telephony.h", "PHONE_RING_STOP", 0x7188},
+{"linux/telephony.h", "PHONE_REC_START", 0x718a},
+{"linux/telephony.h", "PHONE_REC_STOP", 0x718b},
+{"linux/telephony.h", "PHONE_REC_LEVEL", 0x718f},
+{"linux/telephony.h", "PHONE_PLAY_START", 0x7191},
+{"linux/telephony.h", "PHONE_PLAY_STOP", 0x7192},
+{"linux/telephony.h", "PHONE_PLAY_LEVEL", 0x7195},
+{"linux/telephony.h", "PHONE_GET_TONE_ON_TIME", 0x719e},
+{"linux/telephony.h", "PHONE_GET_TONE_OFF_TIME", 0x719f},
+{"linux/telephony.h", "PHONE_GET_TONE_STATE", 0x71a0},
+{"linux/telephony.h", "PHONE_BUSY", 0x71a1},
+{"linux/telephony.h", "PHONE_RINGBACK", 0x71a2},
+{"linux/telephony.h", "PHONE_DIALTONE", 0x71a3},
+{"linux/telephony.h", "PHONE_CPT_STOP", 0x71a4},
+{"linux/telephony.h", "PHONE_PSTN_GET_STATE", 0x71a5},
+{"linux/telephony.h", "PHONE_PSTN_LINETEST", 0x71a8},
+{"linux/ixjuser.h", "IXJCTL_DSP_RESET", 0x71c0},
+{"linux/ixjuser.h", "IXJCTL_DSP_IDLE", 0x71c5},
+{"linux/ixjuser.h", "IXJCTL_TESTRAM", 0x71c6},
+{"linux/ixjuser.h", "IXJCTL_AEC_STOP", 0x71cc},
+{"linux/ixjuser.h", "IXJCTL_AEC_GET_LEVEL", 0x71cd},
+{"linux/ixjuser.h", "IXJCTL_PSTN_LINETEST", 0x71d3},
+{"linux/ixjuser.h", "IXJCTL_DRYBUFFER_CLEAR", 0x71e7},
+{"linux/cdk.h", "STL_BINTR", 0x7314},
+{"linux/cdk.h", "STL_BSTART", 0x7315},
+{"linux/cdk.h", "STL_BSTOP", 0x7316},
+{"linux/cdk.h", "STL_BRESET", 0x7317},
+{"linux/cdk.h", "STL_GETPFLAG", 0x7350},
+{"linux/cdk.h", "STL_SETPFLAG", 0x7351},
+{"linux/if_ppp.h", "PPPIOCDISCONN", 0x7439},
+{"linux/if_ppp.h", "PPPIOCXFERUNIT", 0x744e},
+{"linux/jffs.h", "JFFS_PRINT_HASH", 0x745a},
+{"linux/jffs.h", "JFFS_PRINT_TREE", 0x745b},
+{"linux/jffs.h", "JFFS_GET_STATUS", 0x745c},
+{"asm/sockios.h", "FIOSETOWN", 0x8901},
+{"asm/sockios.h", "SIOCSPGRP", 0x8902},
+{"asm/sockios.h", "FIOGETOWN", 0x8903},
+{"asm/sockios.h", "SIOCGPGRP", 0x8904},
+{"asm/sockios.h", "SIOCATMARK", 0x8905},
+{"asm/sockios.h", "SIOCGSTAMP", 0x8906},
+{"linux/sockios.h", "SIOCADDRT", 0x890b},
+{"linux/sockios.h", "SIOCDELRT", 0x890c},
+{"linux/sockios.h", "SIOCRTMSG", 0x890d},
+{"linux/sockios.h", "SIOCGIFNAME", 0x8910},
+{"linux/sockios.h", "SIOCSIFLINK", 0x8911},
+{"linux/sockios.h", "SIOCGIFCONF", 0x8912},
+{"linux/sockios.h", "SIOCGIFFLAGS", 0x8913},
+{"linux/sockios.h", "SIOCSIFFLAGS", 0x8914},
+{"linux/sockios.h", "SIOCGIFADDR", 0x8915},
+{"linux/sockios.h", "SIOCSIFADDR", 0x8916},
+{"linux/sockios.h", "SIOCGIFDSTADDR", 0x8917},
+{"linux/sockios.h", "SIOCSIFDSTADDR", 0x8918},
+{"linux/sockios.h", "SIOCGIFBRDADDR", 0x8919},
+{"linux/sockios.h", "SIOCSIFBRDADDR", 0x891a},
+{"linux/sockios.h", "SIOCGIFNETMASK", 0x891b},
+{"linux/sockios.h", "SIOCSIFNETMASK", 0x891c},
+{"linux/sockios.h", "SIOCGIFMETRIC", 0x891d},
+{"linux/sockios.h", "SIOCSIFMETRIC", 0x891e},
+{"linux/sockios.h", "SIOCGIFMEM", 0x891f},
+{"linux/sockios.h", "SIOCSIFMEM", 0x8920},
+{"linux/sockios.h", "SIOCGIFMTU", 0x8921},
+{"linux/sockios.h", "SIOCSIFMTU", 0x8922},
+{"linux/sockios.h", "SIOCSIFNAME", 0x8923},
+{"linux/sockios.h", "SIOCSIFHWADDR", 0x8924},
+{"linux/sockios.h", "SIOCGIFENCAP", 0x8925},
+{"linux/sockios.h", "SIOCSIFENCAP", 0x8926},
+{"linux/sockios.h", "SIOCGIFHWADDR", 0x8927},
+{"linux/sockios.h", "SIOCGIFSLAVE", 0x8929},
+{"linux/sockios.h", "SIOCSIFSLAVE", 0x8930},
+{"linux/sockios.h", "SIOCADDMULTI", 0x8931},
+{"linux/sockios.h", "SIOCDELMULTI", 0x8932},
+{"linux/sockios.h", "SIOCGIFINDEX", 0x8933},
+{"linux/sockios.h", "SIOCSIFPFLAGS", 0x8934},
+{"linux/sockios.h", "SIOCGIFPFLAGS", 0x8935},
+{"linux/sockios.h", "SIOCDIFADDR", 0x8936},
+{"linux/sockios.h", "SIOCSIFHWBROADCAST", 0x8937},
+{"linux/sockios.h", "SIOCGIFCOUNT", 0x8938},
+{"linux/sockios.h", "SIOCGIFBR", 0x8940},
+{"linux/sockios.h", "SIOCSIFBR", 0x8941},
+{"linux/sockios.h", "SIOCGIFTXQLEN", 0x8942},
+{"linux/sockios.h", "SIOCSIFTXQLEN", 0x8943},
+{"linux/sockios.h", "SIOCDARP", 0x8953},
+{"linux/sockios.h", "SIOCGARP", 0x8954},
+{"linux/sockios.h", "SIOCSARP", 0x8955},
+{"linux/sockios.h", "SIOCDRARP", 0x8960},
+{"linux/sockios.h", "SIOCGRARP", 0x8961},
+{"linux/sockios.h", "SIOCSRARP", 0x8962},
+{"linux/sockios.h", "SIOCGIFMAP", 0x8970},
+{"linux/sockios.h", "SIOCSIFMAP", 0x8971},
+{"linux/sockios.h", "SIOCADDDLCI", 0x8980},
+{"linux/sockios.h", "SIOCDELDLCI", 0x8981},
+{"linux/sockios.h", "SIOCPROTOPRIVATE", 0x89e0},
+{"linux/sockios.h", "SIOCDEVPRIVATE", 0x89f0},
+{"linux/auto_fs.h", "AUTOFS_IOC_READY", 0x9360},
+{"linux/auto_fs.h", "AUTOFS_IOC_FAIL", 0x9361},
+{"linux/auto_fs.h", "AUTOFS_IOC_CATATONIC", 0x9362},
+{"linux/nbd.h", "NBD_SET_SOCK", 0xab00},
+{"linux/nbd.h", "NBD_SET_BLKSIZE", 0xab01},
+{"linux/nbd.h", "NBD_SET_SIZE", 0xab02},
+{"linux/nbd.h", "NBD_DO_IT", 0xab03},
+{"linux/nbd.h", "NBD_CLEAR_SOCK", 0xab04},
+{"linux/nbd.h", "NBD_CLEAR_QUE", 0xab05},
+{"linux/nbd.h", "NBD_PRINT_DEBUG", 0xab06},
+{"linux/nbd.h", "NBD_SET_SIZE_BLOCKS", 0xab07},
+{"linux/nbd.h", "NBD_DISCONNECT", 0xab08},
+{"linux/raw.h", "RAW_SETBIND", 0xac00},
+{"linux/raw.h", "RAW_GETBIND", 0xac01},
+{"linux/if_pppox.h", "PPPOEIOCDFWD", 0xb101},
+{"linux/lvm.h", "LV_ACTIVATE", 0xfe22},
+{"linux/lvm.h", "LV_DEACTIVATE", 0xfe23},
+{"linux/lvm.h", "LVM_RESET", 0xfe99},
+{"linux/lvm.h", "LVM_LOCK_LVM", 0xff00},
+{"linux/cyclades.h", "CYGETMON", 0x435901},
+{"linux/cyclades.h", "CYGETTHRESH", 0x435902},
+{"linux/cyclades.h", "CYSETTHRESH", 0x435903},
+{"linux/cyclades.h", "CYGETDEFTHRESH", 0x435904},
+{"linux/cyclades.h", "CYSETDEFTHRESH", 0x435905},
+{"linux/cyclades.h", "CYGETTIMEOUT", 0x435906},
+{"linux/cyclades.h", "CYSETTIMEOUT", 0x435907},
+{"linux/cyclades.h", "CYGETDEFTIMEOUT", 0x435908},
+{"linux/cyclades.h", "CYSETDEFTIMEOUT", 0x435909},
+{"linux/cyclades.h", "CYSETRFLOW", 0x43590a},
+{"linux/cyclades.h", "CYGETRFLOW", 0x43590b},
+{"linux/cyclades.h", "CYSETRTSDTR_INV", 0x43590c},
+{"linux/cyclades.h", "CYGETRTSDTR_INV", 0x43590d},
+{"linux/cyclades.h", "CYZSETPOLLCYCLE", 0x43590e},
+{"linux/cyclades.h", "CYZGETPOLLCYCLE", 0x43590f},
+{"linux/cyclades.h", "CYGETCD1400VER", 0x435910},
+{"linux/cyclades.h", "CYGETCARDINFO", 0x435911},
+{"linux/cyclades.h", "CYSETWAIT", 0x435912},
+{"linux/cyclades.h", "CYGETWAIT", 0x435913},
+{"linux/soundcard.h", "SOUND_MIXER_READ_VOLUME", 0x20044d00},
+{"linux/soundcard.h", "SOUND_MIXER_READ_BASS", 0x20044d01},
+{"linux/soundcard.h", "SOUND_MIXER_READ_TREBLE", 0x20044d02},
+{"linux/soundcard.h", "SOUND_MIXER_READ_SYNTH", 0x20044d03},
+{"linux/soundcard.h", "SOUND_MIXER_READ_PCM", 0x20044d04},
+{"linux/soundcard.h", "SOUND_MIXER_READ_SPEAKER", 0x20044d05},
+{"linux/soundcard.h", "SOUND_MIXER_READ_LINE", 0x20044d06},
+{"linux/soundcard.h", "SOUND_MIXER_READ_MIC", 0x20044d07},
+{"linux/soundcard.h", "SOUND_MIXER_READ_CD", 0x20044d08},
+{"linux/soundcard.h", "SOUND_MIXER_READ_IMIX", 0x20044d09},
+{"linux/soundcard.h", "SOUND_MIXER_READ_ALTPCM", 0x20044d0a},
+{"linux/soundcard.h", "SOUND_MIXER_READ_RECLEV", 0x20044d0b},
+{"linux/soundcard.h", "SOUND_MIXER_READ_IGAIN", 0x20044d0c},
+{"linux/soundcard.h", "SOUND_MIXER_READ_OGAIN", 0x20044d0d},
+{"linux/soundcard.h", "SOUND_MIXER_READ_LINE1", 0x20044d0e},
+{"linux/soundcard.h", "SOUND_MIXER_READ_LINE2", 0x20044d0f},
+{"linux/soundcard.h", "SOUND_MIXER_READ_LINE3", 0x20044d10},
+{"linux/soundcard.h", "SOUND_MIXER_READ_MUTE", 0x20044d1f},
+{"linux/soundcard.h", "SOUND_MIXER_READ_ENHANCE", 0x20044d1f},
+{"linux/soundcard.h", "SOUND_MIXER_READ_LOUD", 0x20044d1f},
+{"linux/soundcard.h", "SOUND_MIXER_READ_STEREODEVS", 0x20044dfb},
+{"linux/soundcard.h", "SOUND_MIXER_READ_CAPS", 0x20044dfc},
+{"linux/soundcard.h", "SOUND_MIXER_READ_RECMASK", 0x20044dfd},
+{"linux/soundcard.h", "SOUND_MIXER_READ_DEVMASK", 0x20044dfe},
+{"linux/soundcard.h", "SOUND_MIXER_READ_RECSRC", 0x20044dff},
+{"linux/ppdev.h", "PPWCONTROL", 0x40017084},
+{"linux/ppdev.h", "PPWDATA", 0x40017086},
+{"linux/ppdev.h", "PPWCTLONIRQ", 0x40017092},
+{"linux/telephony.h", "PHONE_MAXRINGS", 0x40017185},
+{"linux/telephony.h", "PHONE_PLAY_TONE", 0x4001719b},
+{"linux/ppdev.h", "PPFCONTROL", 0x4002708e},
+{"linux/telephony.h", "PHONE_RING_CADENCE", 0x40027186},
+{"linux/agpgart.h", "AGPIOC_DEALLOCATE", 0x40044107},
+{"linux/random.h", "RNDADDTOENTCNT", 0x40045201},
+{"asm/ioctls.h", "TIOCSPTLCK", 0x40045431},
+{"linux/atmdev.h", "ATM_SETSC", 0x400461f1},
+{"linux/devfs_fs.h", "DEVFSDIOC_SET_EVENT_MASK", 0x40046402},
+{"linux/devfs_fs.h", "DEVFSDIOC_RELEASE_EVENT_QUEUE", 0x40046403},
+{"linux/video_decoder.h", "DECODER_SET_NORM", 0x40046403},
+{"linux/devfs_fs.h", "DEVFSDIOC_SET_DEBUG_MASK", 0x40046404},
+{"linux/video_decoder.h", "DECODER_SET_INPUT", 0x40046404},
+{"linux/video_decoder.h", "DECODER_SET_OUTPUT", 0x40046405},
+{"linux/video_decoder.h", "DECODER_ENABLE_OUTPUT", 0x40046406},
+{"linux/video_encoder.h", "ENCODER_SET_NORM", 0x40046502},
+{"linux/video_encoder.h", "ENCODER_SET_INPUT", 0x40046503},
+{"linux/video_encoder.h", "ENCODER_SET_OUTPUT", 0x40046504},
+{"linux/video_encoder.h", "ENCODER_ENABLE_OUTPUT", 0x40046505},
+{"linux/ncp_fs.h", "NCP_IOC_GETMOUNTUID", 0x40046e02},
+{"linux/ncp_fs.h", "NCP_IOC_SET_SIGN_WANTED", 0x40046e06},
+{"linux/ncp_fs.h", "NCP_IOC_GETDENTRYTTL", 0x40046e0c},
+{"linux/ppdev.h", "PPSETMODE", 0x40047080},
+{"linux/ppdev.h", "PPDATADIR", 0x40047090},
+{"linux/ppdev.h", "PPNEGOT", 0x40047091},
+{"linux/ppdev.h", "PPSETPHASE", 0x40047094},
+{"linux/telephony.h", "PHONE_REC_CODEC", 0x40047189},
+{"linux/telephony.h", "PHONE_REC_DEPTH", 0x4004718c},
+{"linux/telephony.h", "PHONE_FRAME", 0x4004718d},
+{"linux/telephony.h", "PHONE_REC_VOLUME", 0x4004718e},
+{"linux/telephony.h", "PHONE_PLAY_CODEC", 0x40047190},
+{"linux/telephony.h", "PHONE_PLAY_DEPTH", 0x40047193},
+{"linux/telephony.h", "PHONE_PLAY_VOLUME", 0x40047194},
+{"linux/telephony.h", "PHONE_DTMF_OOB", 0x40047199},
+{"linux/telephony.h", "PHONE_SET_TONE_ON_TIME", 0x4004719c},
+{"linux/telephony.h", "PHONE_SET_TONE_OFF_TIME", 0x4004719d},
+{"linux/telephony.h", "PHONE_PSTN_SET_STATE", 0x400471a4},
+{"linux/telephony.h", "PHONE_WINK_DURATION", 0x400471a6},
+{"linux/ixjuser.h", "IXJCTL_GET_FILTER_HIST", 0x400471c8},
+{"linux/ixjuser.h", "IXJCTL_AEC_START", 0x400471cb},
+{"linux/ixjuser.h", "IXJCTL_SET_LED", 0x400471ce},
+{"linux/ixjuser.h", "IXJCTL_MIXER", 0x400471cf},
+{"linux/ixjuser.h", "IXJCTL_DAA_COEFF_SET", 0x400471d0},
+{"linux/ixjuser.h", "IXJCTL_PORT", 0x400471d1},
+{"linux/ixjuser.h", "IXJCTL_DAA_AGAIN", 0x400471d2},
+{"linux/ixjuser.h", "IXJCTL_POTS_PSTN", 0x400471d5},
+{"linux/ixjuser.h", "IXJCTL_HZ", 0x400471e0},
+{"linux/ixjuser.h", "IXJCTL_RATE", 0x400471e1},
+{"linux/ixjuser.h", "IXJCTL_INTERCOM_START", 0x400471fd},
+{"linux/ixjuser.h", "IXJCTL_INTERCOM_STOP", 0x400471fe},
+{"linux/if_ppp.h", "PPPIOCATTCHAN", 0x40047438},
+{"linux/if_ppp.h", "PPPIOCCONNECT", 0x4004743a},
+{"linux/if_ppp.h", "PPPIOCSMRRU", 0x4004743b},
+{"linux/if_ppp.h", "PPPIOCDETACH", 0x4004743c},
+{"linux/if_ppp.h", "PPPIOCATTACH", 0x4004743d},
+{"linux/if_ppp.h", "PPPIOCSDEBUG", 0x40047440},
+{"linux/if_ppp.h", "PPPIOCSMAXCID", 0x40047451},
+{"linux/if_ppp.h", "PPPIOCSMRU", 0x40047452},
+{"linux/if_ppp.h", "PPPIOCSRASYNCMAP", 0x40047454},
+{"linux/if_ppp.h", "PPPIOCSASYNCMAP", 0x40047457},
+{"linux/if_ppp.h", "PPPIOCSFLAGS", 0x40047459},
+{"linux/isdn_ppp.h", "PPPIOCBUNDLE", 0x40047481},
+{"linux/isdn_ppp.h", "PPPIOCSMPFLAGS", 0x40047483},
+{"linux/isdn_ppp.h", "PPPIOCSMPMTU", 0x40047484},
+{"linux/isdn_ppp.h", "PPPIOCSMPMRU", 0x40047485},
+{"linux/isdn_ppp.h", "PPPIOCSCOMPRESSOR", 0x40047487},
+{"linux/videodev.h", "VIDIOCCAPTURE", 0x40047608},
+{"linux/videodev.h", "VIDIOCSYNC", 0x40047612},
+{"linux/videodev.h", "VIDIOCSWRITEMODE", 0x40047619},
+{"linux/dn.h", "SIOCSNETADDR", 0x400489e0},
+{"linux/dn.h", "OSIOCSNETADDR", 0x400489e0},
+{"linux/auto_fs4.h", "AUTOFS_IOC_EXPIRE_MULTI", 0x40049366},
+{"linux/lvm.h", "VG_CREATE", 0x4004fe00},
+{"linux/lvm.h", "VG_REMOVE", 0x4004fe01},
+{"linux/lvm.h", "VG_EXTEND", 0x4004fe03},
+{"linux/lvm.h", "VG_REDUCE", 0x4004fe04},
+{"linux/lvm.h", "VG_SET_EXTENDABLE", 0x4004fe08},
+{"linux/lvm.h", "LV_CREATE", 0x4004fe20},
+{"linux/lvm.h", "LV_REMOVE", 0x4004fe21},
+{"linux/lvm.h", "LV_EXTEND", 0x4004fe24},
+{"linux/lvm.h", "LV_REDUCE", 0x4004fe25},
+{"linux/lvm.h", "LV_SET_ACCESS", 0x4004fe28},
+{"linux/lvm.h", "LV_SET_ALLOCATION", 0x4004fe29},
+{"linux/lvm.h", "LV_SET_STATUS", 0x4004fe2a},
+{"linux/lvm.h", "LE_REMAP", 0x4004fe2b},
+{"linux/lvm.h", "PV_FLUSH", 0x4004fe42},
+{"linux/lvm.h", "PE_LOCK_UNLOCK", 0x4004fe50},
+{"linux/elevator.h", "BLKELVSET", 0x4008126b},
+{"linux/fs.h", "BLKELVSET", 0x4008126b},
+{"linux/agpgart.h", "AGPIOC_SETUP", 0x40084103},
+{"linux/agpgart.h", "AGPIOC_RESERVE", 0x40084104},
+{"linux/agpgart.h", "AGPIOC_PROTECT", 0x40084105},
+{"linux/agpgart.h", "AGPIOC_BIND", 0x40084108},
+{"linux/agpgart.h", "AGPIOC_UNBIND", 0x40084109},
+{"linux/pmu.h", "PMU_IOC_SET_BACKLIGHT", 0x40084202},
+{"linux/input.h", "EVIOCSREP", 0x40084503},
+{"linux/input.h", "EVIOCSKEYCODE", 0x40084504},
+{"linux/random.h", "RNDADDENTROPY", 0x40085203},
+{"linux/usbdevice_fs.h", "USBDEVFS_REAPURB", 0x4008550c},
+{"linux/usbdevice_fs.h", "USBDEVFS_REAPURBNDELAY", 0x4008550d},
+{"linux/usbdevice_fs.h", "USBDEVFS_CONNECTINFO", 0x40085511},
+{"linux/ext2_fs.h", "EXT2_IOC_SETFLAGS", 0x40086602},
+{"linux/mtio.h", "MTIOCTOP", 0x40086d01},
+{"linux/ncp_fs.h", "NCP_IOC_GETMOUNTUID2", 0x40086e02},
+{"linux/matroxfb.h", "MATROXFB_SET_OUTPUT_CONNECTION", 0x40086ef8},
+{"linux/matroxfb.h", "MATROXFB_SET_OUTPUT_MODE", 0x40086efa},
+{"linux/rtc.h", "RTC_IRQP_SET", 0x4008700c},
+{"linux/rtc.h", "RTC_EPOCH_SET", 0x4008700e},
+{"linux/serio.h", "SPIOCSTYPE", 0x40087101},
+{"linux/telephony.h", "PHONE_CAPABILITIES_CHECK", 0x40087182},
+{"linux/ixjuser.h", "IXJCTL_SET_FILTER", 0x400871c7},
+{"linux/ixjuser.h", "IXJCTL_INIT_TONE", 0x400871c9},
+{"linux/ixjuser.h", "IXJCTL_TONE_CADENCE", 0x400871ca},
+{"linux/if_ppp.h", "PPPIOCSNPMODE", 0x4008744b},
+{"linux/ext2_fs.h", "EXT2_IOC_SETVERSION", 0x40087602},
+{"linux/videodev.h", "VIDIOCSFREQ", 0x4008760f},
+{"linux/if_pppox.h", "PPPOEIOCSFWD", 0x4008b100},
+{"linux/fd.h", "FDFMTTRK", 0x400c0248},
+{"linux/capi.h", "CAPI_REGISTER", 0x400c4301},
+{"linux/i2o-dev.h", "I2OEVTREG", 0x400c690a},
+{"linux/ncp_fs.h", "NCP_IOC_GETROOT", 0x400c6e08},
+{"linux/videodev.h", "VIDIOCSPLAYMODE", 0x400c7618},
+{"linux/video_decoder.h", "DECODER_SET_PICTURE", 0x400e6407},
+{"linux/videodev.h", "VIDIOCSPICT", 0x400e7607},
+{"asm/dasd.h", "BIODASDFMT", 0x40104401},
+{"linux/atm_idt77105.h", "IDT77105_GETSTAT", 0x40106132},
+{"linux/atm_idt77105.h", "IDT77105_GETSTATZ", 0x40106133},
+{"linux/atmdev.h", "ATM_GETSTAT", 0x40106150},
+{"linux/atmdev.h", "ATM_GETSTATZ", 0x40106151},
+{"linux/atmdev.h", "ATM_GETLOOP", 0x40106152},
+{"linux/atmdev.h", "ATM_SETLOOP", 0x40106153},
+{"linux/atmdev.h", "ATM_QUERYLOOP", 0x40106154},
+{"linux/atm_eni.h", "ENI_MEMDUMP", 0x40106160},
+{"linux/atm_zatm.h", "ZATM_GETPOOL", 0x40106161},
+{"linux/atm_nicstar.h", "NS_SETBUFLEV", 0x40106162},
+{"linux/atm_zatm.h", "ZATM_GETPOOLZ", 0x40106162},
+{"linux/atm_zatm.h", "ZATM_SETPOOL", 0x40106163},
+{"linux/atm_zatm.h", "ZATM_GETTHIST", 0x40106164},
+{"linux/atm_eni.h", "ENI_SETMULT", 0x40106167},
+{"linux/atmdev.h", "ATM_GETLINKRATE", 0x40106181},
+{"linux/atmdev.h", "ATM_GETNAMES", 0x40106183},
+{"linux/atmdev.h", "ATM_GETTYPE", 0x40106184},
+{"linux/atmdev.h", "ATM_GETESI", 0x40106185},
+{"linux/atmdev.h", "ATM_GETADDR", 0x40106186},
+{"linux/atmdev.h", "ATM_RSTADDR", 0x40106187},
+{"linux/atmdev.h", "ATM_ADDADDR", 0x40106188},
+{"linux/atmdev.h", "ATM_DELADDR", 0x40106189},
+{"linux/atmdev.h", "ATM_GETCIRANGE", 0x4010618a},
+{"linux/atmdev.h", "ATM_SETCIRANGE", 0x4010618b},
+{"linux/atmdev.h", "ATM_SETESI", 0x4010618c},
+{"linux/atmdev.h", "ATM_SETESIF", 0x4010618d},
+{"linux/ppdev.h", "PPSETTIME", 0x40107096},
+{"linux/if_ppp.h", "PPPIOCSCOMPRESS", 0x4010744d},
+{"linux/videodev.h", "VIDIOCMCAPTURE", 0x40107613},
+{"asm/tape390.h", "TAPE390_DISPLAY", 0x40116401},
+{"linux/fd.h", "FDSETMAXERRS", 0x4014024c},
+{"linux/videodev.h", "VIDIOCSCAPTURE", 0x40147617},
+{"linux/videodev.h", "VIDIOCSFBUF", 0x4018760c},
+{"linux/fd.h", "FDSETPRM", 0x40200242},
+{"linux/fd.h", "FDDEFPRM", 0x40200243},
+{"asm/dasd.h", "BIODASDSATTR", 0x40204402},
+{"linux/if_ppp.h", "PPPIOCSXASYNCMAP", 0x4020744f},
+{"linux/videodev.h", "VIDIOCSMICROCODE", 0x4020761b},
+{"linux/videodev.h", "VIDIOCSVBIFMT", 0x4020761d},
+{"linux/joystick.h", "JSIOCSCORR", 0x40246a21},
+{"linux/rtc.h", "RTC_ALM_SET", 0x40247007},
+{"linux/rtc.h", "RTC_SET_TIME", 0x4024700a},
+{"linux/rtc.h", "RTC_WKALM_SET", 0x4028700f},
+{"linux/videodev.h", "VIDIOCSWIN", 0x4028760a},
+{"linux/videodev.h", "VIDIOCSAUDIO", 0x40287611},
+{"linux/smb_fs.h", "SMB_IOC_NEWCONN", 0x402c7502},
+{"linux/synclink.h", "MGSL_IOCSPARAMS", 0x40306d00},
+{"linux/videodev.h", "VIDIOCSCHAN", 0x40307603},
+{"linux/videodev.h", "VIDIOCSTUNER", 0x40407605},
+{"linux/fd.h", "FDSETDRVPRM", 0x40800290},
+{"linux/usbdevice_fs.h", "USBDEVFS_GETDRIVER", 0x41045508},
+{"linux/soundcard.h", "SOUND_MIXER_WRITE_VOLUME", 0x60044d00},
+{"linux/soundcard.h", "SOUND_MIXER_WRITE_BASS", 0x60044d01},
+{"linux/soundcard.h", "SOUND_MIXER_WRITE_TREBLE", 0x60044d02},
+{"linux/soundcard.h", "SOUND_MIXER_WRITE_SYNTH", 0x60044d03},
+{"linux/soundcard.h", "SOUND_MIXER_WRITE_PCM", 0x60044d04},
+{"linux/soundcard.h", "SOUND_MIXER_WRITE_SPEAKER", 0x60044d05},
+{"linux/soundcard.h", "SOUND_MIXER_WRITE_LINE", 0x60044d06},
+{"linux/soundcard.h", "SOUND_MIXER_WRITE_MIC", 0x60044d07},
+{"linux/soundcard.h", "SOUND_MIXER_WRITE_CD", 0x60044d08},
+{"linux/soundcard.h", "SOUND_MIXER_WRITE_IMIX", 0x60044d09},
+{"linux/soundcard.h", "SOUND_MIXER_WRITE_ALTPCM", 0x60044d0a},
+{"linux/soundcard.h", "SOUND_MIXER_WRITE_RECLEV", 0x60044d0b},
+{"linux/soundcard.h", "SOUND_MIXER_WRITE_IGAIN", 0x60044d0c},
+{"linux/soundcard.h", "SOUND_MIXER_WRITE_OGAIN", 0x60044d0d},
+{"linux/soundcard.h", "SOUND_MIXER_WRITE_LINE1", 0x60044d0e},
+{"linux/soundcard.h", "SOUND_MIXER_WRITE_LINE2", 0x60044d0f},
+{"linux/soundcard.h", "SOUND_MIXER_WRITE_LINE3", 0x60044d10},
+{"linux/soundcard.h", "SOUND_MIXER_WRITE_MUTE", 0x60044d1f},
+{"linux/soundcard.h", "SOUND_MIXER_WRITE_ENHANCE", 0x60044d1f},
+{"linux/soundcard.h", "SOUND_MIXER_WRITE_LOUD", 0x60044d1f},
+{"linux/soundcard.h", "SOUND_MIXER_WRITE_RECSRC", 0x60044dff},
+{"linux/joystick.h", "JSIOCGAXES", 0x80016a11},
+{"linux/joystick.h", "JSIOCGBUTTONS", 0x80016a12},
+{"linux/ppdev.h", "PPRSTATUS", 0x80017081},
+{"linux/ppdev.h", "PPRCONTROL", 0x80017083},
+{"linux/ppdev.h", "PPRDATA", 0x80017085},
+{"linux/capi.h", "CAPI_GET_ERRCODE", 0x80024321},
+{"linux/capi.h", "CAPI_INSTALLED", 0x80024322},
+{"linux/capi.h", "CAPI_GET_FLAGS", 0x80044323},
+{"linux/capi.h", "CAPI_SET_FLAGS", 0x80044324},
+{"linux/capi.h", "CAPI_CLR_FLAGS", 0x80044325},
+{"linux/capi.h", "CAPI_NCCI_OPENCOUNT", 0x80044326},
+{"linux/capi.h", "CAPI_NCCI_GETUNIT", 0x80044327},
+{"asm/dasd.h", "DASDAPIVER", 0x80044400},
+{"linux/input.h", "EVIOCGVERSION", 0x80044501},
+{"linux/random.h", "RNDGETENTCNT", 0x80045200},
+{"asm/ioctls.h", "TIOCGPTN", 0x80045430},
+{"linux/usbdevice_fs.h", "USBDEVFS_RESETEP", 0x80045503},
+{"linux/usbdevice_fs.h", "USBDEVFS_SETCONFIGURATION", 0x80045505},
+{"linux/usbdevice_fs.h", "USBDEVFS_CLAIMINTERFACE", 0x8004550f},
+{"linux/usbdevice_fs.h", "USBDEVFS_RELEASEINTERFACE", 0x80045510},
+{"linux/usbdevice_fs.h", "USBDEVFS_CLEAR_HALT", 0x80045515},
+{"linux/watchdog.h", "WDIOC_GETSTATUS", 0x80045701},
+{"linux/watchdog.h", "WDIOC_GETBOOTSTATUS", 0x80045702},
+{"linux/watchdog.h", "WDIOC_GETTEMP", 0x80045703},
+{"linux/watchdog.h", "WDIOC_SETOPTIONS", 0x80045704},
+{"linux/watchdog.h", "WDIOC_KEEPALIVE", 0x80045705},
+{"linux/sonet.h", "SONET_GETDIAG", 0x80046114},
+{"linux/sonet.h", "SONET_GETFRAMING", 0x80046116},
+{"linux/devfs_fs.h", "DEVFSDIOC_GET_PROTO_REV", 0x80046400},
+{"linux/video_decoder.h", "DECODER_GET_STATUS", 0x80046402},
+{"linux/i2o-dev.h", "I2OVALIDATE", 0x80046908},
+{"linux/joystick.h", "JSIOCGVERSION", 0x80046a01},
+{"linux/udf_fs_i.h", "UDF_GETEASIZE", 0x80046c40},
+{"linux/zftape.h", "MTIOC_ZFTAPE_GETBLKSZ", 0x80046d68},
+{"linux/ncp_fs.h", "NCP_IOC_SIGN_WANTED", 0x80046e06},
+{"linux/ncp_fs.h", "NCP_IOC_SETDENTRYTTL", 0x80046e0c},
+{"linux/ppdev.h", "PPCLRIRQ", 0x80047093},
+{"linux/telephony.h", "PHONE_DTMF_READY", 0x80047196},
+{"linux/telephony.h", "PHONE_GET_DTMF", 0x80047197},
+{"linux/telephony.h", "PHONE_GET_DTMF_ASCII", 0x80047198},
+{"linux/telephony.h", "PHONE_EXCEPTION", 0x8004719a},
+{"linux/ixjuser.h", "IXJCTL_CARDTYPE", 0x800471c1},
+{"linux/ixjuser.h", "IXJCTL_SERIAL", 0x800471c2},
+{"linux/ixjuser.h", "IXJCTL_DSP_TYPE", 0x800471c3},
+{"linux/ixjuser.h", "IXJCTL_DSP_VERSION", 0x800471c4},
+{"linux/if_ppp.h", "PPPIOCGCHAN", 0x80047437},
+{"linux/if_ppp.h", "PPPIOCGDEBUG", 0x80047441},
+{"linux/if_ppp.h", "PPPIOCGMRU", 0x80047453},
+{"linux/if_ppp.h", "PPPIOCGRASYNCMAP", 0x80047455},
+{"linux/if_ppp.h", "PPPIOCGUNIT", 0x80047456},
+{"linux/if_ppp.h", "PPPIOCGASYNCMAP", 0x80047458},
+{"linux/if_ppp.h", "PPPIOCGFLAGS", 0x8004745a},
+{"linux/isdn_ppp.h", "PPPIOCGMPFLAGS", 0x80047482},
+{"linux/smb_fs.h", "SMB_IOC_GETMOUNTUID", 0x80047501},
+{"linux/smb_fs.h", "SMB_IOC_GETMOUNTUID32", 0x80047503},
+{"linux/dn.h", "SIOCGNETADDR", 0x800489e1},
+{"linux/dn.h", "OSIOCGNETADDR", 0x800489e1},
+{"linux/auto_fs.h", "AUTOFS_IOC_PROTOVER", 0x80049363},
+{"linux/lvm.h", "LVM_GET_IOP_VERSION", 0x8004fe98},
+{"linux/sonet.h", "SONET_GETFRSENSE", 0x80066117},
+{"linux/elevator.h", "BLKELVGET", 0x8008126a},
+{"linux/fs.h", "BLKELVGET", 0x8008126a},
+{"linux/agpgart.h", "AGPIOC_INFO", 0x80084100},
+{"linux/pmu.h", "PMU_IOC_GET_BACKLIGHT", 0x80084201},
+{"linux/pmu.h", "PMU_IOC_GET_MODEL", 0x80084203},
+{"linux/pmu.h", "PMU_IOC_HAS_ADB", 0x80084204},
+{"linux/input.h", "EVIOCGID", 0x80084502},
+{"linux/input.h", "EVIOCGREP", 0x80084503},
+{"linux/input.h", "EVIOCGKEYCODE", 0x80084504},
+{"linux/input.h", "EVIOCGKEY", 0x80084505},
+{"linux/random.h", "RNDGETPOOL", 0x80085202},
+{"linux/usbdevice_fs.h", "USBDEVFS_SETINTERFACE", 0x80085504},
+{"linux/ext2_fs.h", "EXT2_IOC_GETFLAGS", 0x80086601},
+{"linux/udf_fs_i.h", "UDF_GETEABLOCK", 0x80086c41},
+{"linux/udf_fs_i.h", "UDF_GETVOLIDENT", 0x80086c42},
+{"linux/mtio.h", "MTIOCPOS", 0x80086d03},
+{"linux/matroxfb.h", "MATROXFB_GET_OUTPUT_CONNECTION", 0x80086ef8},
+{"linux/matroxfb.h", "MATROXFB_GET_AVAILABLE_OUTPUTS", 0x80086ef9},
+{"linux/matroxfb.h", "MATROXFB_GET_ALL_OUTPUTS", 0x80086efb},
+{"linux/rtc.h", "RTC_IRQP_READ", 0x8008700b},
+{"linux/rtc.h", "RTC_EPOCH_READ", 0x8008700d},
+{"linux/telephony.h", "PHONE_CAPABILITIES_LIST", 0x80087181},
+{"linux/ixjuser.h", "IXJCTL_CID", 0x800871d4},
+{"linux/ixjuser.h", "IXJCTL_FRAMES_READ", 0x800871e2},
+{"linux/ixjuser.h", "IXJCTL_FRAMES_WRITTEN", 0x800871e3},
+{"linux/ixjuser.h", "IXJCTL_READ_WAIT", 0x800871e4},
+{"linux/ixjuser.h", "IXJCTL_WRITE_WAIT", 0x800871e5},
+{"linux/ixjuser.h", "IXJCTL_DRYBUFFER_READ", 0x800871e6},
+{"linux/ext2_fs.h", "EXT2_IOC_GETVERSION", 0x80087601},
+{"linux/videodev.h", "VIDIOCGFREQ", 0x8008760e},
+{"linux/video_decoder.h", "DECODER_GET_CAPABILITIES", 0x800c6401},
+{"linux/video_encoder.h", "ENCODER_GET_CAPABILITIES", 0x800c6501},
+{"linux/ncp_fs.h", "NCP_IOC_SETROOT", 0x800c6e08},
+{"linux/videodev.h", "VIDIOCKEY", 0x800c760d},
+{"linux/videodev.h", "VIDIOCGPICT", 0x800e7606},
+{"linux/fd.h", "FDGETDRVTYP", 0x8010020f},
+{"linux/usbdevice_fs.h", "USBDEVFS_DISCSIGNAL", 0x8010550e},
+{"linux/mtio.h", "MTIOCGETSIZE", 0x80106d09},
+{"linux/ncp_fs.h", "NCP_IOC_NCPREQUEST", 0x80106e01},
+{"linux/ncp_fs.h", "NCP_IOC_SETPRIVATEDATA", 0x80106e0a},
+{"linux/ppdev.h", "PPGETTIME", 0x80107095},
+{"linux/if_ppp.h", "PPPIOCGIDLE", 0x8010743f},
+{"linux/isdn_ppp.h", "PPPIOCGIFNAME", 0x80107488},
+{"linux/fd.h", "FDGETMAXERRS", 0x8014020e},
+{"linux/mtio.h", "MTIOCVOLINFO", 0x80146d08},
+{"linux/ncp_fs.h", "NCP_IOC_LOCKUNLOCK", 0x80146e07},
+{"linux/videodev.h", "VIDIOCGUNIT", 0x80147615},
+{"linux/videodev.h", "VIDIOCGCAPTURE", 0x80147616},
+{"linux/ncp_fs.h", "NCP_IOC_SIGN_INIT", 0x80186e05},
+{"linux/ncp_fs.h", "NCP_IOC_SETOBJECTNAME", 0x80186e09},
+{"linux/videodev.h", "VIDIOCGFBUF", 0x8018760b},
+{"linux/fd.h", "FDGETPRM", 0x80200204},
+{"asm/dasd.h", "BIODASDGATTR", 0x80204405},
+{"linux/fb.h", "FBIOGET_VBLANK", 0x80204612},
+{"linux/if_ppp.h", "PPPIOCGXASYNCMAP", 0x80207450},
+{"linux/videodev.h", "VIDIOCGVBIFMT", 0x8020761c},
+{"linux/sonet.h", "SONET_GETSTAT", 0x80246110},
+{"linux/sonet.h", "SONET_GETSTATZ", 0x80246111},
+{"linux/joystick.h", "JSIOCGCORR", 0x80246a22},
+{"linux/rtc.h", "RTC_ALM_READ", 0x80247008},
+{"linux/rtc.h", "RTC_RD_TIME", 0x80247009},
+{"linux/fd.h", "FDGETFDCSTAT", 0x80280215},
+{"linux/fd.h", "FDWERRORGET", 0x80280217},
+{"linux/rtc.h", "RTC_WKALM_RD", 0x80287010},
+{"linux/videodev.h", "VIDIOCGWIN", 0x80287609},
+{"linux/videodev.h", "VIDIOCGAUDIO", 0x80287610},
+{"linux/ncp_fs.h", "NCP_IOC_SETCHARSETS", 0x802a6e0b},
+{"linux/synclink.h", "MGSL_IOCGPARAMS", 0x80306d01},
+{"linux/mtio.h", "MTIOCGET", 0x80306d02},
+{"linux/usbdevice_fs.h", "USBDEVFS_SUBMITURB", 0x8038550a},
+{"linux/videodev.h", "VIDIOCGCAP", 0x803c7601},
+{"linux/i2o-dev.h", "I2OGETIOPS", 0x80406900},
+{"linux/isdn_ppp.h", "PPPIOCGCOMPRESSORS", 0x80407486},
+{"linux/watchdog.h", "WDIOC_GETSUPPORT", 0x80485700},
+{"linux/fd.h", "FDGETDRVSTAT", 0x80500212},
+{"linux/fd.h", "FDPOLLDRVSTAT", 0x80500213},
+{"linux/i2o-dev.h", "I2OEVTGET", 0x8068690b},
+{"linux/fd.h", "FDGETDRVPRM", 0x80800211},
+{"linux/usbdevice_fs.h", "USBDEVFS_HUB_PORTINFO", 0x80805513},
+{"linux/videodev.h", "VIDIOCGMBUF", 0x80887614},
+{"asm/dasd.h", "BIODASDPSRD", 0x80c04404},
+{"linux/auto_fs.h", "AUTOFS_IOC_EXPIRE", 0x810c9365},
+{"linux/videodev.h", "VIDIOCGPLAYINFO", 0x8118761a},
+{"asm/dasd.h", "BIODASDINFO", 0x81784401},
+{"asm/dasd.h", "BIODASDINFO2", 0x81a04403},
+{"linux/msdos_fs.h", "VFAT_IOCTL_READDIR_BOTH", 0x82307201},
+{"linux/msdos_fs.h", "VFAT_IOCTL_READDIR_SHORT", 0x82307202},
+{"asm/dasd.h", "BIODASDPRRD", 0x84084402},
+{"linux/capi.h", "CAPI_GET_MANUFACTURER", 0xc0044306},
+{"linux/capi.h", "CAPI_GET_SERIAL", 0xc0044308},
+{"linux/sonet.h", "SONET_SETDIAG", 0xc0046112},
+{"linux/sonet.h", "SONET_CLRDIAG", 0xc0046113},
+{"linux/synclink.h", "MGSL_IOCWAITEVENT", 0xc0046d08},
+{"linux/if_ppp.h", "PPPIOCNEWUNIT", 0xc004743e},
+{"linux/lvm.h", "VG_STATUS", 0xc004fe05},
+{"linux/lvm.h", "VG_STATUS_GET_COUNT", 0xc004fe06},
+{"linux/lvm.h", "VG_STATUS_GET_NAMELIST", 0xc004fe07},
+{"linux/lvm.h", "LV_STATUS_BYNAME", 0xc004fe26},
+{"linux/lvm.h", "LV_STATUS_BYINDEX", 0xc004fe27},
+{"linux/lvm.h", "PV_STATUS", 0xc004fe40},
+{"linux/lvm.h", "PV_CHANGE", 0xc004fe41},
+{"linux/agpgart.h", "AGPIOC_ALLOCATE", 0xc0084106},
+{"asm/cmb.h", "BIODASDREADCMB", 0xc0084420},
+{"linux/coda.h", "CIOC_KERNEL_VERSION", 0xc008630a},
+{"linux/matroxfb.h", "MATROXFB_GET_OUTPUT_MODE", 0xc0086efa},
+{"linux/telephony.h", "PHONE_QUERY_CODEC", 0xc00871a7},
+{"linux/if_ppp.h", "PPPIOCGNPMODE", 0xc008744c},
+{"linux/auto_fs.h", "AUTOFS_IOC_SETTIMEOUT", 0xc0089364},
+{"linux/capi.h", "CAPI_GET_VERSION", 0xc0104307},
+{"linux/capi.h", "CAPI_MANUFACTURER_CMD", 0xc0104320},
+{"linux/usbdevice_fs.h", "USBDEVFS_IOCTL", 0xc0105512},
+{"linux/atm_nicstar.h", "NS_GETPSTAT", 0xc0106161},
+{"linux/ncp_fs.h", "NCP_IOC_GETPRIVATEDATA", 0xc0106e0a},
+{"linux/usbdevice_fs.h", "USBDEVFS_CONTROL", 0xc0185500},
+{"linux/usbdevice_fs.h", "USBDEVFS_BULK", 0xc0185502},
+{"linux/i2o-dev.h", "I2OHRTGET", 0xc0186901},
+{"linux/i2o-dev.h", "I2OLCTGET", 0xc0186902},
+{"linux/mtio.h", "MTIOCRDFTSEG", 0xc0186d06},
+{"linux/mtio.h", "MTIOCWRFTSEG", 0xc0186d07},
+{"linux/mtio.h", "MTIOCFTFORMAT", 0xc0186d0a},
+{"linux/ncp_fs.h", "NCP_IOC_GETOBJECTNAME", 0xc0186e09},
+{"linux/mtio.h", "MTIOCFTCMD", 0xc0206d0b},
+{"linux/i2o-dev.h", "I2OPARMSET", 0xc0286903},
+{"linux/i2o-dev.h", "I2OPARMGET", 0xc0286904},
+{"linux/ncp_fs.h", "NCP_IOC_GET_FS_INFO", 0xc0286e04},
+{"linux/ncp_fs.h", "NCP_IOC_GETCHARSETS", 0xc02a6e0b},
+{"linux/i2o-dev.h", "I2OSWDL", 0xc0306905},
+{"linux/i2o-dev.h", "I2OSWUL", 0xc0306906},
+{"linux/i2o-dev.h", "I2OSWDEL", 0xc0306907},
+{"linux/i2o-dev.h", "I2OHTML", 0xc0306909},
+{"linux/ncp_fs.h", "NCP_IOC_GET_FS_INFO_V2", 0xc0306e04},
+{"linux/videodev.h", "VIDIOCGCHAN", 0xc0307602},
+{"linux/capi.h", "CAPI_GET_PROFILE", 0xc0404309},
+{"linux/videodev.h", "VIDIOCGTUNER", 0xc0407604},
+{"asm/cmb.h", "BIODASDREADALLCMB", 0xc0584421},
+{"linux/isdn_ppp.h", "PPPIOCGCALLINFO", 0xc0887480},
diff --git a/strace/linux/s390/signalent.h b/strace/linux/s390/signalent.h
new file mode 100644
index 0000000..04b00b1
--- /dev/null
+++ b/strace/linux/s390/signalent.h
@@ -0,0 +1,33 @@
+ "SIG_0", /* 0 */
+ "SIGHUP", /* 1 */
+ "SIGINT", /* 2 */
+ "SIGQUIT", /* 3 */
+ "SIGILL", /* 4 */
+ "SIGTRAP", /* 5 */
+ "SIGABRT", /* 6 */
+ "SIGBUS", /* 7 */
+ "SIGFPE", /* 8 */
+ "SIGKILL", /* 9 */
+ "SIGUSR1", /* 10 */
+ "SIGSEGV", /* 11 */
+ "SIGUSR2", /* 12 */
+ "SIGPIPE", /* 13 */
+ "SIGALRM", /* 14 */
+ "SIGTERM", /* 15 */
+ "SIGSTKFLT", /* 16 */
+ "SIGCHLD", /* 17 */
+ "SIGCONT", /* 18 */
+ "SIGSTOP", /* 19 */
+ "SIGTSTP", /* 20 */
+ "SIGTTIN", /* 21 */
+ "SIGTTOU", /* 22 */
+ "SIGURG", /* 23 */
+ "SIGXCPU", /* 24 */
+ "SIGXFSZ", /* 25 */
+ "SIGVTALRM", /* 26 */
+ "SIGPROF", /* 27 */
+ "SIGWINCH", /* 28 */
+ "SIGIO", /* 29 */
+ "SIGPWR", /* 30 */
+ "SIGUNUSED", /* 31 */
+ "SIGRTMIN", /* 32 */
diff --git a/strace/linux/s390/syscallent.h b/strace/linux/s390/syscallent.h
new file mode 100644
index 0000000..23125f8
--- /dev/null
+++ b/strace/linux/s390/syscallent.h
@@ -0,0 +1,382 @@
+/*
+ * Copyright (c) 2000 IBM Deutschland Entwicklung GmbH, IBM Coporation
+ * Authors: Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+ * D.J. Barrow <barrow_dj@mail.yahoo.com,djbarrow@de.ibm.com>
+ * 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.
+ *
+ */
+
+ { 0, 0, sys_setup, "setup" }, /* 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 */
+ { -1, 0, printargs, "SYS_7" }, /* 7 */
+ { 2, TF, sys_creat, "creat" }, /* 8 */
+ { 2, TF, sys_link, "link" }, /* 9 */
+ { 1, TF, sys_unlink, "unlink" }, /* 10 */
+ { 3, TF|TP, sys_execve, "execve" }, /* 11 */
+ { 1, TF, sys_chdir, "chdir" }, /* 12 */
+ { 1, 0, sys_time, "time" }, /* 13 */
+ { 3, TF, sys_mknod, "mknod" }, /* 14 */
+ { 2, TF, sys_chmod, "chmod" }, /* 15 */
+ { 3, TF, sys_chown, "lchown" }, /* 16 */
+ { -1, 0, printargs, "SYS_17" }, /* 17 */
+ { -1, 0, printargs, "SYS_18" }, /* 18 */
+ { 3, 0, sys_lseek, "lseek" }, /* 19 */
+ { 0, 0, sys_getpid, "getpid" }, /* 20 */
+ { 5, TF, sys_mount, "mount" }, /* 21 */
+ { 1, TF, sys_umount, "oldumount" }, /* 22 */
+ { 1, 0, sys_setuid, "setuid" }, /* 23 */
+ { 0, 0, sys_getuid, "getuid" }, /* 24 */
+ { 1, 0, sys_stime, "stime" }, /* 25 */
+ { 4, 0, sys_ptrace, "ptrace" }, /* 26 */
+ { 1, 0, sys_alarm, "alarm" }, /* 27 */
+ { -1, 0, printargs, "SYS_28" }, /* 28 */
+ { 0, TS, sys_pause, "pause" }, /* 29 */
+ { 2, TF, sys_utime, "utime" }, /* 30 */
+ { -1, 0, printargs, "SYS_31" }, /* 31 */
+ { -1, 0, printargs, "SYS_32" }, /* 32 */
+ { 2, TF, sys_access, "access" }, /* 33 */
+ { 1, 0, sys_nice, "nice" }, /* 34 */
+ { -1, 0, printargs, "SYS_35" }, /* 35 */
+ { 0, 0, sys_sync, "sync" }, /* 36 */
+ { 2, TS, sys_kill, "kill" }, /* 37 */
+ { 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, 0, sys_times, "times" }, /* 43 */
+ { -1, 0, printargs, "SYS_44" }, /* 44 */
+ { 1, 0, sys_brk, "brk" }, /* 45 */
+ { -1, 0, printargs, "SYS_46" }, /* 46 */
+ { -1, 0, printargs, "SYS_47" }, /* 47 */
+ { 3, TS, sys_signal, "signal" }, /* 48 */
+ { 0, 0, sys_geteuid, "geteuid" }, /* 49 */
+ { 0, 0, sys_getegid, "getegid" }, /* 50 */
+ { 1, TF, sys_acct, "acct" }, /* 51 */
+ { 2, TF, sys_umount2, "umount" }, /* 52 */
+ { -1, 0, printargs, "SYS_53" }, /* 53 */
+ { 3, 0, sys_ioctl, "ioctl" }, /* 54 */
+ { 3, 0, sys_fcntl, "fcntl" }, /* 55 */
+ { -1, 0, printargs, "SYS_56" }, /* 56 */
+ { 2, 0, sys_setpgid, "setpgid" }, /* 57 */
+ { -1, 0, printargs, "SYS_58" }, /* 58 */
+ { -1, 0, printargs, "SYS_59" }, /* 59 */
+ { 1, 0, sys_umask, "umask" }, /* 60 */
+ { 1, TF, sys_chroot, "chroot" }, /* 61 */
+ { 2, 0, sys_ustat, "ustat" }, /* 62 */
+ { 2, 0, sys_dup2, "dup2" }, /* 63 */
+ { 0, 0, sys_getppid, "getppid" }, /* 64 */
+ { 0, 0, sys_getpgrp, "getpgrp" }, /* 65 */
+ { 0, 0, sys_setsid, "setsid" }, /* 66 */
+ { 3, TS, sys_sigaction, "sigaction" }, /* 67 */
+ { -1, 0, printargs, "SYS_68" }, /* 68 */
+ { -1, 0, printargs, "SYS_69" }, /* 69 */
+ { 2, 0, sys_setreuid, "setreuid" }, /* 70 */
+ { 2, 0, sys_setregid, "setregid" }, /* 71 */
+ { 3, TS, sys_sigsuspend, "sigsuspend" }, /* 72 */
+ { 1, TS, sys_sigpending, "sigpending" }, /* 73 */
+ { 2, 0, sys_sethostname, "sethostname" }, /* 74 */
+ { 2, 0, sys_setrlimit, "setrlimit" }, /* 75 */
+ { 2, 0, sys_getrlimit, "getrlimit" }, /* 76 */
+ { 2, 0, sys_getrusage, "getrusage" }, /* 77 */
+ { 2, 0, sys_gettimeofday, "gettimeofday" }, /* 78 */
+ { 2, 0, sys_settimeofday, "settimeofday" }, /* 79 */
+ { 2, 0, sys_getgroups, "getgroups" }, /* 80 */
+ { 2, 0, sys_setgroups, "setgroups" }, /* 81 */
+ { -1, 0, printargs, "SYS_82" }, /* 82 */
+ { 2, TF, sys_symlink, "symlink" }, /* 83 */
+ { -1, 0, printargs, "SYS_84" }, /* 84 */
+ { 3, TF, sys_readlink, "readlink" }, /* 85 */
+ { 1, TF, sys_uselib, "uselib" }, /* 86 */
+ { 1, TF, sys_swapon, "swapon" }, /* 87 */
+ { 3, 0, sys_reboot, "reboot" }, /* 88 */
+ { 3, 0, sys_readdir, "readdir" }, /* 89 */
+ { 6, 0, sys_old_mmap, "mmap" }, /* 90 */
+ { 2, 0, sys_munmap, "munmap" }, /* 91 */
+ { 2, TF, sys_truncate, "truncate" }, /* 92 */
+ { 2, 0, sys_ftruncate, "ftruncate" }, /* 93 */
+ { 2, 0, sys_fchmod, "fchmod" }, /* 94 */
+ { 3, 0, sys_fchown, "fchown" }, /* 95 */
+ { 2, 0, sys_getpriority, "getpriority" }, /* 96 */
+ { 3, 0, sys_setpriority, "setpriority" }, /* 97 */
+ { -1, 0, printargs, "SYS_98" }, /* 98 */
+ { 2, TF, sys_statfs, "statfs" }, /* 99 */
+ { 2, 0, sys_fstatfs, "fstatfs" }, /* 100 */
+ { 3, 0, sys_ioperm, "ioperm" }, /* 101 */
+ { 2, 0, 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 */
+ { -1, 0, printargs, "SYS_109" }, /* 109 */
+ { -1, 0, printargs, "SYS_110" }, /* 110 */
+ { 0, 0, sys_vhangup, "vhangup" }, /* 111 */
+ { 0, 0, sys_idle, "idle" }, /* 112 */
+ { -1, 0, printargs, "SYS_113" }, /* 113 */
+ { 4, TP, sys_wait4, "wait4" }, /* 114 */
+ { 1, 0, sys_swapoff, "swapoff" }, /* 115 */
+ { 1, 0, sys_sysinfo, "sysinfo" }, /* 116 */
+ { 5, 0, sys_ipc, "ipc" }, /* 117 */
+ { 1, 0, sys_fsync, "fsync" }, /* 118 */
+ { 1, TS, sys_sigreturn, "sigreturn" }, /* 119 */
+ { 5, TP, sys_clone, "clone" }, /* 120 */
+ { 2, 0, sys_setdomainname, "setdomainname" }, /* 121 */
+ { 1, 0, sys_uname, "uname" }, /* 122 */
+ { -1, 0, printargs, "SYS_123" }, /* 123 */
+ { 1, 0, sys_adjtimex, "adjtimex" }, /* 124 */
+ { 3, 0, sys_mprotect, "mprotect" }, /* 125 */
+ { 3, TS, sys_sigprocmask, "sigprocmask" }, /* 126 */
+ { 2, 0, sys_create_module, "create_module" }, /* 127 */
+ { 2, 0, sys_init_module, "init_module" }, /* 128 */
+ { 1, 0, sys_delete_module, "delete_module" }, /* 129 */
+ { 1, 0, sys_get_kernel_syms, "get_kernel_syms"}, /* 130 */
+ { 4, 0, sys_quotactl, "quotactl" }, /* 131 */
+ { 1, 0, sys_getpgid, "getpgid" }, /* 132 */
+ { 1, 0, 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, 0, sys_setfsuid, "setfsuid" }, /* 138 */
+ { 1, 0, 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 */
+ { 1, 0, sys_getsid, "getsid" }, /* 147 */
+ { 1, 0, sys_fdatasync, "fdatasync" }, /* 148 */
+ { 1, 0, sys_sysctl, "_sysctl" }, /* 149 */
+ { 2, 0, sys_mlock, "mlock" }, /* 150 */
+ { 2, 0, sys_munlock, "munlock" }, /* 151 */
+ { 2, 0, sys_mlockall, "mlockall" }, /* 152 */
+ { 0, 0, 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 */
+ { 1, 0, sys_sched_getscheduler, "sched_getscheduler"}, /* 157 */
+ { 0, 0, sys_sched_yield, "sched_yield"}, /* 158 */
+ { 1, 0, sys_sched_get_priority_max,"sched_get_priority_max"}, /* 159 */
+ { 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 */
+ { 4, 0, sys_mremap, "mremap" }, /* 163 */
+ { 3, 0, sys_setresuid, "setresuid" }, /* 164 */
+ { 3, 0, sys_getresuid, "getresuid" }, /* 165 */
+ { -1, 0, printargs, "SYS_166" }, /* 166 */
+ { 5, 0, sys_query_module, "query_module" }, /* 167 */
+ { 3, 0, sys_poll, "poll" }, /* 168 */
+ { 3, 0, printargs, "nfsservctl" }, /* 169 */
+ { 3, 0, sys_setresgid, "setresgid" }, /* 170 */
+ { 3, 0, sys_getresgid, "getresgid" }, /* 171 */
+ { 5, 0, printargs, "prctl" }, /* 172 */
+ { 1, TS, sys_sigreturn, "rt_sigreturn" }, /* 173 */
+ { 4, TS, sys_rt_sigaction, "rt_sigaction" }, /* 174 */
+ { 4, TS, sys_rt_sigprocmask, "rt_sigprocmask"}, /* 175 */
+ { 2, TS, sys_rt_sigpending, "rt_sigpending" }, /* 176 */
+ { 4, TS, sys_rt_sigtimedwait, "rt_sigtimedwait"}, /* 177 */
+ { 3, TS, sys_rt_sigqueueinfo, "rt_sigqueueinfo"}, /* 178 */
+ { 2, TS, sys_rt_sigsuspend, "rt_sigsuspend" }, /* 179 */
+ { 5, TF, sys_pread, "pread" }, /* 180 */
+ { 5, TF, sys_pwrite, "pwrite" }, /* 181 */
+ { 3, TF, sys_chown, "lchown" }, /* 182 */
+ { 2, TF, sys_getcwd, "getcwd" }, /* 183 */
+ { 2, 0, sys_capget, "capget" }, /* 184 */
+ { 2, 0, sys_capset, "capset" }, /* 185 */
+ { 2, TS, sys_sigaltstack, "sigaltstack" }, /* 186 */
+ { 4, TF, sys_sendfile, "sendfile" }, /* 187 */
+ { 5, 0, sys_getpmsg, "getpmsg" }, /* 188 */
+ { 5, 0, sys_putpmsg, "putpmsg" }, /* 189 */
+ { 0, TP, sys_vfork, "vfork" }, /* 190 */
+ { 2, 0, sys_getrlimit, "getrlimit" }, /* 191 */
+ { 6, 0, sys_mmap, "mmap2" }, /* 192 */
+ { 2, TF, sys_truncate64, "truncate64" }, /* 193 */
+ { 2, TF, sys_ftruncate64, "ftruncate64" }, /* 194 */
+ { 2, TF, sys_stat64, "stat64" }, /* 195 */
+ { 2, TF, sys_lstat64, "lstat64" }, /* 196 */
+ { 2, TF, sys_fstat64, "fstat64" }, /* 197 */
+ { 3, TF, sys_chown, "lchown" }, /* 198 */
+ { 0, 0, sys_getuid, "getuid" }, /* 199 */
+ { 0, 0, sys_getgid, "getgid" }, /* 200 */
+ { 0, 0, sys_geteuid, "geteuid" }, /* 201 */
+ { 0, 0, sys_getegid, "getegid" }, /* 202 */
+ { 2, 0, sys_setreuid, "setreuid" }, /* 203 */
+ { 2, 0, sys_setregid, "setregid" }, /* 204 */
+ { 2, 0, sys_getgroups, "getgroups" }, /* 205 */
+ { 2, 0, sys_setgroups, "setgroups" }, /* 206 */
+ { 3, 0, sys_fchown, "fchown" }, /* 207 */
+ { 3, 0, sys_setresuid, "setresuid" }, /* 208 */
+ { 3, 0, sys_getresuid, "getresuid" }, /* 209 */
+ { 3, 0, sys_setresgid, "setresgid" }, /* 210 */
+ { 3, 0, sys_getresgid, "getresgid" }, /* 211 */
+ { 3, TF, sys_chown, "chown" }, /* 212 */
+ { 1, 0, sys_setuid, "setuid" }, /* 213 */
+ { 1, 0, sys_setgid, "setgid" }, /* 214 */
+ { 1, 0, sys_setfsuid, "setfsuid" }, /* 215 */
+ { 1, 0, sys_setfsgid, "setfsgid" }, /* 216 */
+ { 2, TF, sys_pivotroot, "pivot_root" }, /* 217 */
+ { 3, 0, sys_mincore, "mincore" }, /* 218 */
+ { 3, 0, sys_madvise, "madvise" }, /* 219 */
+ { 3, 0, sys_getdents64, "getdents64" }, /* 220 */
+ { 3, 0, sys_fcntl, "fcntl64" }, /* 221 */
+ { 4, 0, sys_readahead, "readahead" }, /* 222 */
+ { 4, TF, sys_sendfile64, "sendfile64" }, /* 223 */
+ { 5, TF, sys_setxattr, "setxattr" }, /* 224 */
+ { 5, TF, sys_setxattr, "lsetxattr" }, /* 225 */
+ { 5, 0, sys_fsetxattr, "fsetxattr" }, /* 226 */
+ { 4, TF, sys_getxattr, "getxattr" }, /* 227 */
+ { 4, TF, sys_getxattr, "lgetxattr" }, /* 228 */
+ { 4, 0, sys_fgetxattr, "fgetxattr" }, /* 229 */
+ { 3, TF, sys_listxattr, "listxattr" }, /* 230 */
+ { 3, TF, sys_listxattr, "llistxattr" }, /* 231 */
+ { 3, 0, sys_flistxattr, "flistxattr" }, /* 232 */
+ { 2, TF, sys_removexattr, "removexattr" }, /* 233 */
+ { 2, TF, sys_removexattr, "lremovexattr" }, /* 234 */
+ { 2, 0, sys_fremovexattr, "fremovexattr" }, /* 235 */
+ { 0, 0, printargs, "gettid" }, /* 236 */
+ { 2, TS, sys_kill, "tkill" }, /* 237 */
+ { 5, 0, sys_futex, "futex" }, /* 238 */
+ { 3, 0, sys_sched_setaffinity, "sched_setaffinity" },/* 239 */
+ { 3, 0, sys_sched_getaffinity, "sched_getaffinity" },/* 240 */
+ { -1, 0, printargs, "SYS_241" }, /* 241 */
+ { -1, 0, printargs, "SYS_242" }, /* 242 */
+ { 2, 0, sys_io_setup, "io_setup" }, /* 243 */
+ { 1, 0, sys_io_destroy, "io_destroy" }, /* 244 */
+ { 5, 0, sys_io_getevents, "io_getevents" }, /* 245 */
+ { 3, 0, sys_io_submit, "io_submit" }, /* 246 */
+ { 3, 0, sys_io_cancel, "io_cancel" }, /* 247 */
+ { 1, TP, sys_exit, "exit_group" }, /* 248 */
+ { 1, 0, sys_epoll_create, "epoll_create" }, /* 249 */
+ { 4, 0, sys_epoll_ctl, "epoll_ctl" }, /* 250 */
+ { 4, 0, sys_epoll_wait, "epoll_wait" }, /* 251 */
+ { 1, 0, printargs, "set_tid_address"}, /* 252 */
+ { 5, 0, printargs, "fadvise64" }, /* 253 */
+ { 3, 0, sys_timer_create, "timer_create" }, /* 254 */
+ { 4, 0, sys_timer_settime, "timer_settime" }, /* 255 */
+ { 2, 0, sys_timer_gettime, "timer_gettime" }, /* 256 */
+ { 1, 0, sys_timer_getoverrun, "timer_getoverrun"}, /* 257 */
+ { 1, 0, sys_timer_delete, "timer_delete" }, /* 258 */
+ { 2, 0, sys_clock_settime, "clock_settime" }, /* 259 */
+ { 2, 0, sys_clock_gettime, "clock_gettime" }, /* 260 */
+ { 2, 0, sys_clock_getres, "clock_getres" }, /* 261 */
+ { 4, 0, sys_clock_nanosleep, "clock_nanosleep"}, /* 262 */
+
+ { 5, 0, printargs, "SYS_263" }, /* 263 */
+ { 5, 0, printargs, "SYS_264" }, /* 264 */
+ { 5, 0, printargs, "SYS_265" }, /* 265 */
+ { 5, 0, printargs, "SYS_266" }, /* 266 */
+ { 5, 0, printargs, "SYS_267" }, /* 267 */
+ { 5, 0, printargs, "SYS_268" }, /* 268 */
+ { 5, 0, printargs, "SYS_269" }, /* 269 */
+ { 5, 0, printargs, "SYS_270" }, /* 270 */
+ { 5, 0, printargs, "SYS_271" }, /* 271 */
+ { 5, 0, printargs, "SYS_272" }, /* 272 */
+ { 5, 0, printargs, "SYS_273" }, /* 273 */
+ { 5, 0, printargs, "SYS_274" }, /* 274 */
+ { 5, 0, printargs, "SYS_275" }, /* 275 */
+ { 5, 0, printargs, "SYS_276" }, /* 276 */
+ { 5, 0, printargs, "SYS_277" }, /* 277 */
+ { 5, 0, printargs, "SYS_278" }, /* 278 */
+ { 5, 0, printargs, "SYS_279" }, /* 279 */
+ { 5, 0, printargs, "SYS_280" }, /* 280 */
+ { 5, 0, printargs, "SYS_281" }, /* 281 */
+ { 5, 0, printargs, "SYS_282" }, /* 282 */
+ { 5, 0, printargs, "SYS_283" }, /* 283 */
+ { 5, 0, printargs, "SYS_284" }, /* 284 */
+ { 5, 0, printargs, "SYS_285" }, /* 285 */
+ { 5, 0, printargs, "SYS_286" }, /* 286 */
+ { 5, 0, printargs, "SYS_287" }, /* 287 */
+ { 5, 0, printargs, "SYS_288" }, /* 288 */
+ { 5, 0, printargs, "SYS_289" }, /* 289 */
+ { 5, 0, printargs, "SYS_290" }, /* 290 */
+ { 5, 0, printargs, "SYS_291" }, /* 291 */
+ { 5, 0, printargs, "SYS_292" }, /* 292 */
+ { 5, 0, printargs, "SYS_293" }, /* 293 */
+ { 5, 0, printargs, "SYS_294" }, /* 294 */
+ { 5, 0, printargs, "SYS_295" }, /* 295 */
+ { 5, 0, printargs, "SYS_296" }, /* 296 */
+ { 5, 0, printargs, "SYS_297" }, /* 297 */
+ { 5, 0, printargs, "SYS_298" }, /* 298 */
+ { 5, 0, printargs, "SYS_299" }, /* 299 */
+
+#if SYS_socket_subcall != 300
+ #error fix me
+#endif
+ { 8, 0, printargs, "socket_subcall"}, /* 300 */
+ { 3, TN, sys_socket, "socket" }, /* 301 */
+ { 3, TN, sys_bind, "bind" }, /* 302 */
+ { 3, TN, sys_connect, "connect" }, /* 303 */
+ { 2, TN, sys_listen, "listen" }, /* 304 */
+ { 3, TN, sys_accept, "accept" }, /* 305 */
+ { 3, TN, sys_getsockname, "getsockname" }, /* 306 */
+ { 3, TN, sys_getpeername, "getpeername" }, /* 307 */
+ { 4, TN, sys_socketpair, "socketpair" }, /* 308 */
+ { 4, TN, sys_send, "send" }, /* 309 */
+ { 4, TN, sys_recv, "recv" }, /* 310 */
+ { 6, TN, sys_sendto, "sendto" }, /* 311 */
+ { 6, TN, sys_recvfrom, "recvfrom" }, /* 312 */
+ { 2, TN, sys_shutdown, "shutdown" }, /* 313 */
+ { 5, TN, sys_setsockopt, "setsockopt" }, /* 314 */
+ { 5, TN, sys_getsockopt, "getsockopt" }, /* 315 */
+ { 5, TN, sys_sendmsg, "sendmsg" }, /* 316 */
+ { 5, TN, sys_recvmsg, "recvmsg" }, /* 317 */
+
+#if SYS_ipc_subcall != 318
+ #error fix me
+#endif
+ { 4, 0, printargs, "ipc_subcall" }, /* 318 */
+ { 4, TI, sys_semop, "semop" }, /* 319 */
+ { 4, TI, sys_semget, "semget" }, /* 320 */
+ { 4, TI, sys_semctl, "semctl" }, /* 321 */
+ { 5, TI, sys_semtimedop, "semtimedop" }, /* 322 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 323 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 324 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 325 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 326 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 327 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 328 */
+ { 4, TI, sys_msgsnd, "msgsnd" }, /* 329 */
+ { 4, TI, sys_msgrcv, "msgrcv" }, /* 330 */
+ { 4, TI, sys_msgget, "msgget" }, /* 331 */
+ { 4, TI, sys_msgctl, "msgctl" }, /* 332 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 333 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 334 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 335 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 336 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 337 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 338 */
+ { 4, TI, sys_shmat, "shmat" }, /* 339 */
+ { 4, TI, sys_shmdt, "shmdt" }, /* 340 */
+ { 4, TI, sys_shmget, "shmget" }, /* 341 */
+ { 4, TI, sys_shmctl, "shmctl" }, /* 342 */
diff --git a/strace/linux/s390x/errnoent.h b/strace/linux/s390x/errnoent.h
new file mode 100644
index 0000000..180b506
--- /dev/null
+++ b/strace/linux/s390x/errnoent.h
@@ -0,0 +1,125 @@
+ "ERRNO_0", /* 0 */
+ "EPERM", /* 1 */
+ "ENOENT", /* 2 */
+ "ESRCH", /* 3 */
+ "EINTR", /* 4 */
+ "EIO", /* 5 */
+ "ENXIO", /* 6 */
+ "E2BIG", /* 7 */
+ "ENOEXEC", /* 8 */
+ "EBADF", /* 9 */
+ "ECHILD", /* 10 */
+ "EAGAIN", /* 11 */
+ "ENOMEM", /* 12 */
+ "EACCES", /* 13 */
+ "EFAULT", /* 14 */
+ "ENOTBLK", /* 15 */
+ "EBUSY", /* 16 */
+ "EEXIST", /* 17 */
+ "EXDEV", /* 18 */
+ "ENODEV", /* 19 */
+ "ENOTDIR", /* 20 */
+ "EISDIR", /* 21 */
+ "EINVAL", /* 22 */
+ "ENFILE", /* 23 */
+ "EMFILE", /* 24 */
+ "ENOTTY", /* 25 */
+ "ETXTBSY", /* 26 */
+ "EFBIG", /* 27 */
+ "ENOSPC", /* 28 */
+ "ESPIPE", /* 29 */
+ "EROFS", /* 30 */
+ "EMLINK", /* 31 */
+ "EPIPE", /* 32 */
+ "EDOM", /* 33 */
+ "ERANGE", /* 34 */
+ "EDEADLK", /* 35 */
+ "ENAMETOOLONG", /* 36 */
+ "ENOLCK", /* 37 */
+ "ENOSYS", /* 38 */
+ "ENOTEMPTY", /* 39 */
+ "ELOOP", /* 40 */
+ "ERRNO_41", /* 41 */
+ "ENOMSG", /* 42 */
+ "EIDRM", /* 43 */
+ "ECHRNG", /* 44 */
+ "EL2NSYNC", /* 45 */
+ "EL3HLT", /* 46 */
+ "EL3RST", /* 47 */
+ "ELNRNG", /* 48 */
+ "EUNATCH", /* 49 */
+ "ENOCSI", /* 50 */
+ "EL2HLT", /* 51 */
+ "EBADE", /* 52 */
+ "EBADR", /* 53 */
+ "EXFULL", /* 54 */
+ "ENOANO", /* 55 */
+ "EBADRQC", /* 56 */
+ "EBADSLT", /* 57 */
+ "ERRNO_58", /* 58 */
+ "EBFONT", /* 59 */
+ "ENOSTR", /* 60 */
+ "ENODATA", /* 61 */
+ "ETIME", /* 62 */
+ "ENOSR", /* 63 */
+ "ENONET", /* 64 */
+ "ENOPKG", /* 65 */
+ "EREMOTE", /* 66 */
+ "ENOLINK", /* 67 */
+ "EADV", /* 68 */
+ "ESRMNT", /* 69 */
+ "ECOMM", /* 70 */
+ "EPROTO", /* 71 */
+ "EMULTIHOP", /* 72 */
+ "EDOTDOT", /* 73 */
+ "EBADMSG", /* 74 */
+ "EOVERFLOW", /* 75 */
+ "ENOTUNIQ", /* 76 */
+ "EBADFD", /* 77 */
+ "EREMCHG", /* 78 */
+ "ELIBACC", /* 79 */
+ "ELIBBAD", /* 80 */
+ "ELIBSCN", /* 81 */
+ "ELIBMAX", /* 82 */
+ "ELIBEXEC", /* 83 */
+ "EILSEQ", /* 84 */
+ "ERESTART", /* 85 */
+ "ESTRPIPE", /* 86 */
+ "EUSERS", /* 87 */
+ "ENOTSOCK", /* 88 */
+ "EDESTADDRREQ", /* 89 */
+ "EMSGSIZE", /* 90 */
+ "EPROTOTYPE", /* 91 */
+ "ENOPROTOOPT", /* 92 */
+ "EPROTONOSUPPORT", /* 93 */
+ "ESOCKTNOSUPPORT", /* 94 */
+ "EOPNOTSUPP", /* 95 */
+ "EPFNOSUPPORT", /* 96 */
+ "EAFNOSUPPORT", /* 97 */
+ "EADDRINUSE", /* 98 */
+ "EADDRNOTAVAIL", /* 99 */
+ "ENETDOWN", /* 100 */
+ "ENETUNREACH", /* 101 */
+ "ENETRESET", /* 102 */
+ "ECONNABORTED", /* 103 */
+ "ECONNRESET", /* 104 */
+ "ENOBUFS", /* 105 */
+ "EISCONN", /* 106 */
+ "ENOTCONN", /* 107 */
+ "ESHUTDOWN", /* 108 */
+ "ETOOMANYREFS", /* 109 */
+ "ETIMEDOUT", /* 110 */
+ "ECONNREFUSED", /* 111 */
+ "EHOSTDOWN", /* 112 */
+ "EHOSTUNREACH", /* 113 */
+ "EALREADY", /* 114 */
+ "EINPROGRESS", /* 115 */
+ "ESTALE", /* 116 */
+ "EUCLEAN", /* 117 */
+ "ENOTNAM", /* 118 */
+ "ENAVAIL", /* 119 */
+ "EISNAM", /* 120 */
+ "EREMOTEIO", /* 121 */
+ "EDQUOT", /* 122 */
+ "ENOMEDIUM", /* 123 */
+ "EMEDIUMTYPE", /* 124 */
diff --git a/strace/linux/s390x/ioctlent.h b/strace/linux/s390x/ioctlent.h
new file mode 100644
index 0000000..414fbeb
--- /dev/null
+++ b/strace/linux/s390x/ioctlent.h
@@ -0,0 +1,941 @@
+{"linux/fs.h", "FIBMAP", 0x1},
+{"linux/fs.h", "FIGETBSZ", 0x2},
+{"linux/fd.h", "FDCLRPRM", 0x241},
+{"linux/fd.h", "FDMSGON", 0x245},
+{"linux/fd.h", "FDMSGOFF", 0x246},
+{"linux/fd.h", "FDFMTBEG", 0x247},
+{"linux/fd.h", "FDFMTEND", 0x249},
+{"linux/fd.h", "FDSETEMSGTRESH", 0x24a},
+{"linux/fd.h", "FDFLUSH", 0x24b},
+{"linux/fd.h", "FDRESET", 0x254},
+{"linux/fd.h", "FDWERRORCLR", 0x256},
+{"linux/fd.h", "FDRAWCMD", 0x258},
+{"linux/fd.h", "FDTWADDLE", 0x259},
+{"linux/fd.h", "FDEJECT", 0x25a},
+{"linux/hdreg.h", "HDIO_GETGEO", 0x301},
+{"linux/hdreg.h", "HDIO_GET_UNMASKINTR", 0x302},
+{"linux/hdreg.h", "HDIO_GET_MULTCOUNT", 0x304},
+{"linux/hdreg.h", "HDIO_OBSOLETE_IDENTITY", 0x307},
+{"linux/hdreg.h", "HDIO_GET_KEEPSETTINGS", 0x308},
+{"linux/hdreg.h", "HDIO_GET_32BIT", 0x309},
+{"linux/hdreg.h", "HDIO_GET_NOWERR", 0x30a},
+{"linux/hdreg.h", "HDIO_GET_DMA", 0x30b},
+{"linux/hdreg.h", "HDIO_GET_NICE", 0x30c},
+{"linux/hdreg.h", "HDIO_GET_IDENTITY", 0x30d},
+{"linux/hdreg.h", "HDIO_DRIVE_RESET", 0x31c},
+{"linux/hdreg.h", "HDIO_TRISTATE_HWIF", 0x31d},
+{"linux/hdreg.h", "HDIO_DRIVE_TASK", 0x31e},
+{"linux/hdreg.h", "HDIO_DRIVE_CMD", 0x31f},
+{"linux/hdreg.h", "HDIO_SET_MULTCOUNT", 0x321},
+{"linux/hdreg.h", "HDIO_SET_UNMASKINTR", 0x322},
+{"linux/hdreg.h", "HDIO_SET_KEEPSETTINGS", 0x323},
+{"linux/hdreg.h", "HDIO_SET_32BIT", 0x324},
+{"linux/hdreg.h", "HDIO_SET_NOWERR", 0x325},
+{"linux/hdreg.h", "HDIO_SET_DMA", 0x326},
+{"linux/hdreg.h", "HDIO_SET_PIO_MODE", 0x327},
+{"linux/hdreg.h", "HDIO_SCAN_HWIF", 0x328},
+{"linux/hdreg.h", "HDIO_SET_NICE", 0x329},
+{"linux/hdreg.h", "HDIO_UNREGISTER_HWIF", 0x32a},
+{"linux/hdreg.h", "HDIO_GETGEO_BIG", 0x330},
+{"linux/hdreg.h", "HDIO_GETGEO_BIG_RAW", 0x331},
+{"linux/umsdos_fs.h", "UMSDOS_READDIR_DOS", 0x4d2},
+{"linux/umsdos_fs.h", "UMSDOS_UNLINK_DOS", 0x4d3},
+{"linux/umsdos_fs.h", "UMSDOS_RMDIR_DOS", 0x4d4},
+{"linux/umsdos_fs.h", "UMSDOS_STAT_DOS", 0x4d5},
+{"linux/umsdos_fs.h", "UMSDOS_CREAT_EMD", 0x4d6},
+{"linux/umsdos_fs.h", "UMSDOS_UNLINK_EMD", 0x4d7},
+{"linux/umsdos_fs.h", "UMSDOS_READDIR_EMD", 0x4d8},
+{"linux/umsdos_fs.h", "UMSDOS_GETVERSION", 0x4d9},
+{"linux/umsdos_fs.h", "UMSDOS_INIT_EMD", 0x4da},
+{"linux/umsdos_fs.h", "UMSDOS_DOS_SETUP", 0x4db},
+{"linux/umsdos_fs.h", "UMSDOS_RENAME_DOS", 0x4dc},
+{"linux/lp.h", "LPCHAR", 0x601},
+{"linux/lp.h", "LPTIME", 0x602},
+{"linux/lp.h", "LPABORT", 0x604},
+{"linux/lp.h", "LPSETIRQ", 0x605},
+{"linux/ac97_codec.h", "AC97_RECMUX_MONO_MIX", 0x606},
+{"linux/lp.h", "LPGETIRQ", 0x606},
+{"linux/lp.h", "LPWAIT", 0x608},
+{"linux/lp.h", "LPCAREFUL", 0x609},
+{"linux/lp.h", "LPABORTOPEN", 0x60a},
+{"linux/lp.h", "LPGETSTATUS", 0x60b},
+{"linux/lp.h", "LPRESET", 0x60c},
+{"linux/lp.h", "LPGETSTATS", 0x60d},
+{"linux/lp.h", "LPGETFLAGS", 0x60e},
+{"linux/lp.h", "LPSETTIMEOUT", 0x60f},
+{"linux/fs.h", "BLKROSET", 0x125d},
+{"linux/fs.h", "BLKROGET", 0x125e},
+{"linux/fs.h", "BLKRRPART", 0x125f},
+{"linux/fs.h", "BLKGETSIZE", 0x1260},
+{"linux/fs.h", "BLKFLSBUF", 0x1261},
+{"linux/fs.h", "BLKRASET", 0x1262},
+{"linux/fs.h", "BLKRAGET", 0x1263},
+{"linux/fs.h", "BLKFRASET", 0x1264},
+{"linux/fs.h", "BLKFRAGET", 0x1265},
+{"linux/fs.h", "BLKSECTSET", 0x1266},
+{"linux/fs.h", "BLKSECTGET", 0x1267},
+{"linux/fs.h", "BLKSSZGET", 0x1268},
+{"linux/fs.h", "BLKPG", 0x1269},
+{"scsi/sg.h", "SG_SET_TIMEOUT", 0x2201},
+{"scsi/sg.h", "SG_GET_TIMEOUT", 0x2202},
+{"scsi/sg.h", "SG_EMULATED_HOST", 0x2203},
+{"scsi/sg.h", "SG_SET_TRANSFORM", 0x2204},
+{"scsi/sg.h", "SG_GET_TRANSFORM", 0x2205},
+{"scsi/sg.h", "SG_GET_COMMAND_Q", 0x2270},
+{"scsi/sg.h", "SG_SET_COMMAND_Q", 0x2271},
+{"scsi/sg.h", "SG_GET_RESERVED_SIZE", 0x2272},
+{"scsi/sg.h", "SG_SET_RESERVED_SIZE", 0x2275},
+{"scsi/sg.h", "SG_GET_SCSI_ID", 0x2276},
+{"scsi/sg.h", "SG_SET_FORCE_LOW_DMA", 0x2279},
+{"scsi/sg.h", "SG_GET_LOW_DMA", 0x227a},
+{"scsi/sg.h", "SG_SET_FORCE_PACK_ID", 0x227b},
+{"scsi/sg.h", "SG_GET_PACK_ID", 0x227c},
+{"scsi/sg.h", "SG_GET_NUM_WAITING", 0x227d},
+{"scsi/sg.h", "SG_SET_DEBUG", 0x227e},
+{"scsi/sg.h", "SG_GET_SG_TABLESIZE", 0x227f},
+{"scsi/sg.h", "SG_GET_VERSION_NUM", 0x2282},
+{"scsi/sg.h", "SG_NEXT_CMD_LEN", 0x2283},
+{"scsi/sg.h", "SG_SCSI_RESET", 0x2284},
+{"scsi/sg.h", "SG_IO", 0x2285},
+{"scsi/sg.h", "SG_GET_REQUEST_TABLE", 0x2286},
+{"scsi/sg.h", "SG_SET_KEEP_ORPHAN", 0x2287},
+{"scsi/sg.h", "SG_GET_KEEP_ORPHAN", 0x2288},
+{"linux/agpgart.h", "AGPIOC_ACQUIRE", 0x4101},
+{"linux/agpgart.h", "AGPIOC_RELEASE", 0x4102},
+{"linux/pmu.h", "PMU_IOC_SLEEP", 0x4200},
+{"asm/dasd.h", "BIODASDDISABLE", 0x4400},
+{"asm/dasd.h", "BIODASDENABLE", 0x4401},
+{"asm/dasd.h", "BIODASDRSRV", 0x4402},
+{"asm/dasd.h", "BIODASDRLSE", 0x4403},
+{"asm/dasd.h", "BIODASDSLCK", 0x4404},
+{"asm/dasd.h", "BIODASDPRRST", 0x4405},
+{"asm/dasd.h", "BIODASDQUIESCE", 0x4406},
+{"asm/dasd.h", "BIODASDRESUME", 0x4407},
+{"asm/cmb.h", "BIODASDCMFENABLE", 0x4420},
+{"asm/cmb.h", "BIODASDCMFDISABLE", 0x4421},
+{"asm/cmb.h", "BIODASDRESETCMB", 0x4422},
+{"linux/fb.h", "FBIOGET_VSCREENINFO", 0x4600},
+{"linux/fb.h", "FBIOPUT_VSCREENINFO", 0x4601},
+{"linux/ps2esdi.h", "CMD_READ", 0x4601},
+{"linux/fb.h", "FBIOGET_FSCREENINFO", 0x4602},
+{"linux/ps2esdi.h", "CMD_WRITE", 0x4602},
+{"linux/fb.h", "FBIOGETCMAP", 0x4604},
+{"linux/fb.h", "FBIOPUTCMAP", 0x4605},
+{"linux/fb.h", "FBIOPAN_DISPLAY", 0x4606},
+{"linux/fb.h", "FBIOGET_FCURSORINFO", 0x4607},
+{"linux/fb.h", "FBIOGET_VCURSORINFO", 0x4608},
+{"linux/fb.h", "FBIOPUT_VCURSORINFO", 0x4609},
+{"linux/fb.h", "FBIOGET_CURSORSTATE", 0x460a},
+{"linux/fb.h", "FBIOPUT_CURSORSTATE", 0x460b},
+{"linux/fb.h", "FBIOGET_CON2FBMAP", 0x460f},
+{"linux/fb.h", "FBIOPUT_CON2FBMAP", 0x4610},
+{"linux/fb.h", "FBIOBLANK", 0x4611},
+{"linux/fb.h", "FBIO_ALLOC", 0x4613},
+{"linux/fb.h", "FBIO_FREE", 0x4614},
+{"linux/fb.h", "FBIOGET_GLYPH", 0x4615},
+{"linux/fb.h", "FBIOGET_HWCINFO", 0x4616},
+{"linux/isdn.h", "IIOCNETAIF", 0x4901},
+{"linux/isdn.h", "IIOCNETDIF", 0x4902},
+{"linux/isdn.h", "IIOCNETSCF", 0x4903},
+{"linux/isdn.h", "IIOCNETGCF", 0x4904},
+{"linux/isdn.h", "IIOCNETANM", 0x4905},
+{"linux/isdn.h", "IIOCNETDNM", 0x4906},
+{"linux/isdn.h", "IIOCNETGNM", 0x4907},
+{"linux/isdn.h", "IIOCGETSET", 0x4908},
+{"linux/isdn.h", "IIOCSETSET", 0x4909},
+{"linux/isdn.h", "IIOCSETVER", 0x490a},
+{"linux/isdn.h", "IIOCNETHUP", 0x490b},
+{"linux/isdn.h", "IIOCSETGST", 0x490c},
+{"linux/isdn.h", "IIOCSETBRJ", 0x490d},
+{"linux/isdn.h", "IIOCSIGPRF", 0x490e},
+{"linux/isdn.h", "IIOCGETPRF", 0x490f},
+{"linux/isdn.h", "IIOCSETPRF", 0x4910},
+{"linux/isdn.h", "IIOCGETMAP", 0x4911},
+{"linux/isdn.h", "IIOCSETMAP", 0x4912},
+{"linux/isdn.h", "IIOCNETASL", 0x4913},
+{"linux/isdn.h", "IIOCNETDIL", 0x4914},
+{"linux/isdn.h", "IIOCGETCPS", 0x4915},
+{"linux/isdn.h", "IIOCGETDVR", 0x4916},
+{"linux/isdn.h", "IIOCNETLCR", 0x4917},
+{"linux/isdn.h", "IIOCNETDWRSET", 0x4918},
+{"linux/isdn.h", "IIOCNETALN", 0x4920},
+{"linux/isdn.h", "IIOCNETDLN", 0x4921},
+{"linux/isdn.h", "IIOCNETGPN", 0x4922},
+{"linux/isdn.h", "IIOCDBGVAR", 0x497f},
+{"linux/isdn.h", "IIOCDRVCTL", 0x4980},
+{"linux/kd.h", "KIOCSOUND", 0x4b2f},
+{"linux/kd.h", "KDMKTONE", 0x4b30},
+{"linux/kd.h", "KDGETLED", 0x4b31},
+{"linux/kd.h", "KDSETLED", 0x4b32},
+{"linux/kd.h", "KDGKBTYPE", 0x4b33},
+{"linux/kd.h", "KDADDIO", 0x4b34},
+{"linux/kd.h", "KDDELIO", 0x4b35},
+{"linux/kd.h", "KDENABIO", 0x4b36},
+{"linux/kd.h", "KDDISABIO", 0x4b37},
+{"linux/kd.h", "KDSETMODE", 0x4b3a},
+{"linux/kd.h", "KDGETMODE", 0x4b3b},
+{"linux/kd.h", "KDMAPDISP", 0x4b3c},
+{"linux/kd.h", "KDUNMAPDISP", 0x4b3d},
+{"linux/kd.h", "GIO_SCRNMAP", 0x4b40},
+{"linux/kd.h", "PIO_SCRNMAP", 0x4b41},
+{"linux/kd.h", "KDGKBMODE", 0x4b44},
+{"linux/kd.h", "KDSKBMODE", 0x4b45},
+{"linux/kd.h", "KDGKBENT", 0x4b46},
+{"linux/kd.h", "KDSKBENT", 0x4b47},
+{"linux/kd.h", "KDGKBSENT", 0x4b48},
+{"linux/kd.h", "KDSKBSENT", 0x4b49},
+{"linux/kd.h", "KDGKBDIACR", 0x4b4a},
+{"linux/kd.h", "KDSKBDIACR", 0x4b4b},
+{"linux/kd.h", "KDGETKEYCODE", 0x4b4c},
+{"linux/kd.h", "KDSETKEYCODE", 0x4b4d},
+{"linux/kd.h", "KDSIGACCEPT", 0x4b4e},
+{"linux/kd.h", "KDGHWCLK", 0x4b50},
+{"linux/kd.h", "KDSHWCLK", 0x4b51},
+{"linux/kd.h", "KDKBDREP", 0x4b52},
+{"linux/kd.h", "GIO_FONT", 0x4b60},
+{"linux/kd.h", "PIO_FONT", 0x4b61},
+{"linux/kd.h", "KDGKBMETA", 0x4b62},
+{"linux/kd.h", "KDSKBMETA", 0x4b63},
+{"linux/kd.h", "KDGKBLED", 0x4b64},
+{"linux/kd.h", "KDSKBLED", 0x4b65},
+{"linux/kd.h", "GIO_UNIMAP", 0x4b66},
+{"linux/kd.h", "PIO_UNIMAP", 0x4b67},
+{"linux/kd.h", "PIO_UNIMAPCLR", 0x4b68},
+{"linux/kd.h", "GIO_UNISCRNMAP", 0x4b69},
+{"linux/kd.h", "PIO_UNISCRNMAP", 0x4b6a},
+{"linux/kd.h", "GIO_FONTX", 0x4b6b},
+{"linux/kd.h", "PIO_FONTX", 0x4b6c},
+{"linux/kd.h", "PIO_FONTRESET", 0x4b6d},
+{"linux/kd.h", "GIO_CMAP", 0x4b70},
+{"linux/kd.h", "PIO_CMAP", 0x4b71},
+{"linux/kd.h", "KDFONTOP", 0x4b72},
+{"linux/loop.h", "LOOP_SET_FD", 0x4c00},
+{"linux/loop.h", "LOOP_CLR_FD", 0x4c01},
+{"linux/loop.h", "LOOP_SET_STATUS", 0x4c02},
+{"linux/loop.h", "LOOP_GET_STATUS", 0x4c03},
+{"linux/random.h", "RNDZAPENTCNT", 0x5204},
+{"linux/random.h", "RNDCLEARPOOL", 0x5206},
+{"linux/cdrom.h", "CDROMPAUSE", 0x5301},
+{"linux/cdrom.h", "CDROMRESUME", 0x5302},
+{"linux/cdrom.h", "CDROMPLAYMSF", 0x5303},
+{"linux/cdrom.h", "CDROMPLAYTRKIND", 0x5304},
+{"linux/cdrom.h", "CDROMREADTOCHDR", 0x5305},
+{"linux/cdrom.h", "CDROMREADTOCENTRY", 0x5306},
+{"linux/cdrom.h", "CDROMSTOP", 0x5307},
+{"linux/cdrom.h", "CDROMSTART", 0x5308},
+{"linux/cdrom.h", "CDROMEJECT", 0x5309},
+{"linux/cdrom.h", "CDROMVOLCTRL", 0x530a},
+{"linux/cdrom.h", "CDROMSUBCHNL", 0x530b},
+{"linux/cdrom.h", "CDROMREADMODE2", 0x530c},
+{"linux/cdrom.h", "CDROMREADMODE1", 0x530d},
+{"linux/cdrom.h", "CDROMREADAUDIO", 0x530e},
+{"linux/cdrom.h", "CDROMEJECT_SW", 0x530f},
+{"linux/cdrom.h", "CDROMMULTISESSION", 0x5310},
+{"linux/cdrom.h", "CDROM_GET_MCN", 0x5311},
+{"linux/cdrom.h", "CDROMRESET", 0x5312},
+{"linux/cdrom.h", "CDROMVOLREAD", 0x5313},
+{"linux/cdrom.h", "CDROMREADRAW", 0x5314},
+{"linux/cdrom.h", "CDROMREADCOOKED", 0x5315},
+{"linux/cdrom.h", "CDROMSEEK", 0x5316},
+{"linux/cdrom.h", "CDROMPLAYBLK", 0x5317},
+{"linux/cdrom.h", "CDROMREADALL", 0x5318},
+{"linux/cdrom.h", "CDROMCLOSETRAY", 0x5319},
+{"linux/cdrom.h", "CDROMGETSPINDOWN", 0x531d},
+{"linux/cdrom.h", "CDROMSETSPINDOWN", 0x531e},
+{"linux/cdrom.h", "CDROM_SET_OPTIONS", 0x5320},
+{"linux/cdrom.h", "CDROM_CLEAR_OPTIONS", 0x5321},
+{"linux/cdrom.h", "CDROM_SELECT_SPEED", 0x5322},
+{"linux/cdrom.h", "CDROM_SELECT_DISC", 0x5323},
+{"linux/cdrom.h", "CDROM_MEDIA_CHANGED", 0x5325},
+{"linux/cdrom.h", "CDROM_DRIVE_STATUS", 0x5326},
+{"linux/cdrom.h", "CDROM_DISC_STATUS", 0x5327},
+{"linux/cdrom.h", "CDROM_CHANGER_NSLOTS", 0x5328},
+{"linux/cdrom.h", "CDROM_LOCKDOOR", 0x5329},
+{"linux/cdrom.h", "CDROM_DEBUG", 0x5330},
+{"linux/cdrom.h", "CDROM_GET_CAPABILITY", 0x5331},
+{"scsi/scsi_ioctl.h", "SCSI_IOCTL_DOORLOCK", 0x5380},
+{"scsi/scsi_ioctl.h", "SCSI_IOCTL_DOORUNLOCK", 0x5381},
+{"scsi/scsi.h", "SCSI_IOCTL_GET_IDLUN", 0x5382},
+{"scsi/scsi.h", "SCSI_IOCTL_TAGGED_ENABLE", 0x5383},
+{"scsi/scsi.h", "SCSI_IOCTL_TAGGED_DISABLE", 0x5384},
+{"scsi/scsi.h", "SCSI_IOCTL_PROBE_HOST", 0x5385},
+{"scsi/scsi.h", "SCSI_IOCTL_GET_BUS_NUMBER", 0x5386},
+{"linux/cdrom.h", "DVD_READ_STRUCT", 0x5390},
+{"linux/cdrom.h", "DVD_WRITE_STRUCT", 0x5391},
+{"linux/cdrom.h", "DVD_AUTH", 0x5392},
+{"linux/cdrom.h", "CDROM_SEND_PACKET", 0x5393},
+{"linux/cdrom.h", "CDROM_NEXT_WRITABLE", 0x5394},
+{"linux/cdrom.h", "CDROM_LAST_WRITTEN", 0x5395},
+{"asm/ioctls.h", "TCGETS", 0x5401},
+{"asm/ioctls.h", "TCSETS", 0x5402},
+{"asm/ioctls.h", "TCSETSW", 0x5403},
+{"asm/ioctls.h", "TCSETSF", 0x5404},
+{"asm/ioctls.h", "TCGETA", 0x5405},
+{"asm/ioctls.h", "TCSETA", 0x5406},
+{"asm/ioctls.h", "TCSETAW", 0x5407},
+{"asm/ioctls.h", "TCSETAF", 0x5408},
+{"asm/ioctls.h", "TCSBRK", 0x5409},
+{"asm/ioctls.h", "TCXONC", 0x540a},
+{"asm/ioctls.h", "TCFLSH", 0x540b},
+{"asm/ioctls.h", "TIOCEXCL", 0x540c},
+{"asm/ioctls.h", "TIOCNXCL", 0x540d},
+{"asm/ioctls.h", "TIOCSCTTY", 0x540e},
+{"asm/ioctls.h", "TIOCGPGRP", 0x540f},
+{"asm/ioctls.h", "TIOCSPGRP", 0x5410},
+{"asm/ioctls.h", "TIOCOUTQ", 0x5411},
+{"asm/ioctls.h", "TIOCSTI", 0x5412},
+{"asm/ioctls.h", "TIOCGWINSZ", 0x5413},
+{"asm/ioctls.h", "TIOCSWINSZ", 0x5414},
+{"asm/ioctls.h", "TIOCMGET", 0x5415},
+{"asm/ioctls.h", "TIOCMBIS", 0x5416},
+{"asm/ioctls.h", "TIOCMBIC", 0x5417},
+{"asm/ioctls.h", "TIOCMSET", 0x5418},
+{"asm/ioctls.h", "TIOCGSOFTCAR", 0x5419},
+{"asm/ioctls.h", "TIOCSSOFTCAR", 0x541a},
+{"asm/ioctls.h", "FIONREAD", 0x541b},
+{"asm/ioctls.h", "TIOCLINUX", 0x541c},
+{"asm/ioctls.h", "TIOCCONS", 0x541d},
+{"asm/ioctls.h", "TIOCGSERIAL", 0x541e},
+{"asm/ioctls.h", "TIOCSSERIAL", 0x541f},
+{"asm/ioctls.h", "TIOCPKT", 0x5420},
+{"asm/ioctls.h", "FIONBIO", 0x5421},
+{"asm/ioctls.h", "TIOCNOTTY", 0x5422},
+{"asm/ioctls.h", "TIOCSETD", 0x5423},
+{"asm/ioctls.h", "TIOCGETD", 0x5424},
+{"asm/ioctls.h", "TCSBRKP", 0x5425},
+{"asm/ioctls.h", "TIOCTTYGSTRUCT", 0x5426},
+{"asm/ioctls.h", "TIOCSBRK", 0x5427},
+{"asm/ioctls.h", "TIOCCBRK", 0x5428},
+{"asm/ioctls.h", "TIOCGSID", 0x5429},
+{"asm/ioctls.h", "FIONCLEX", 0x5450},
+{"asm/ioctls.h", "FIOCLEX", 0x5451},
+{"asm/ioctls.h", "FIOASYNC", 0x5452},
+{"asm/ioctls.h", "TIOCSERCONFIG", 0x5453},
+{"asm/ioctls.h", "TIOCSERGWILD", 0x5454},
+{"asm/ioctls.h", "TIOCSERSWILD", 0x5455},
+{"asm/ioctls.h", "TIOCGLCKTRMIOS", 0x5456},
+{"asm/ioctls.h", "TIOCSLCKTRMIOS", 0x5457},
+{"asm/ioctls.h", "TIOCSERGSTRUCT", 0x5458},
+{"asm/ioctls.h", "TIOCSERGETLSR", 0x5459},
+{"asm/ioctls.h", "TIOCSERGETMULTI", 0x545a},
+{"asm/ioctls.h", "TIOCSERSETMULTI", 0x545b},
+{"asm/ioctls.h", "TIOCMIWAIT", 0x545c},
+{"asm/ioctls.h", "TIOCGICOUNT", 0x545d},
+{"asm/ioctls.h", "FIOQSIZE", 0x545e},
+{"linux/usbdevice_fs.h", "USBDEVFS_DISCARDURB", 0x550b},
+{"linux/usbdevice_fs.h", "USBDEVFS_RESET", 0x5514},
+{"linux/vt.h", "VT_OPENQRY", 0x5600},
+{"linux/vt.h", "VT_GETMODE", 0x5601},
+{"linux/vt.h", "VT_SETMODE", 0x5602},
+{"linux/vt.h", "VT_GETSTATE", 0x5603},
+{"linux/vt.h", "VT_SENDSIG", 0x5604},
+{"linux/vt.h", "VT_RELDISP", 0x5605},
+{"linux/vt.h", "VT_ACTIVATE", 0x5606},
+{"linux/vt.h", "VT_WAITACTIVE", 0x5607},
+{"linux/vt.h", "VT_DISALLOCATE", 0x5608},
+{"linux/vt.h", "VT_RESIZE", 0x5609},
+{"linux/vt.h", "VT_RESIZEX", 0x560a},
+{"linux/vt.h", "VT_LOCKSWITCH", 0x560b},
+{"linux/vt.h", "VT_UNLOCKSWITCH", 0x560c},
+{"linux/sonet.h", "SONET_SETFRAMING", 0x6115},
+{"linux/atm_nicstar.h", "NS_ADJBUFLEV", 0x6163},
+{"linux/atm_tcp.h", "SIOCSIFATMTCP", 0x6180},
+{"linux/atm_tcp.h", "ATMTCP_CREATE", 0x618e},
+{"linux/atm_tcp.h", "ATMTCP_REMOVE", 0x618f},
+{"linux/atmlec.h", "ATMLEC_CTRL", 0x61d0},
+{"linux/atmlec.h", "ATMLEC_DATA", 0x61d1},
+{"linux/atmlec.h", "ATMLEC_MCAST", 0x61d2},
+{"linux/atmmpc.h", "ATMMPC_CTRL", 0x61d8},
+{"linux/atmmpc.h", "ATMMPC_DATA", 0x61d9},
+{"linux/atmclip.h", "SIOCMKCLIP", 0x61e0},
+{"linux/atmarp.h", "ATMARPD_CTRL", 0x61e1},
+{"linux/atmarp.h", "ATMARP_MKIP", 0x61e2},
+{"linux/atmarp.h", "ATMARP_SETENTRY", 0x61e3},
+{"linux/atmarp.h", "ATMARP_ENCAP", 0x61e5},
+{"linux/atmsvc.h", "ATMSIGD_CTRL", 0x61f0},
+{"linux/comstats.h", "COM_GETPORTSTATS", 0x631e},
+{"linux/comstats.h", "COM_CLRPORTSTATS", 0x631f},
+{"linux/comstats.h", "COM_GETBRDSTATS", 0x6320},
+{"linux/comstats.h", "COM_READPORT", 0x6328},
+{"linux/comstats.h", "COM_READBOARD", 0x6329},
+{"linux/comstats.h", "COM_READPANEL", 0x632a},
+{"linux/video_decoder.h", "DECODER_DUMP", 0x64c0},
+{"linux/synclink.h", "MGSL_IOCSTXIDLE", 0x6d02},
+{"linux/synclink.h", "MGSL_IOCGTXIDLE", 0x6d03},
+{"linux/synclink.h", "MGSL_IOCTXENABLE", 0x6d04},
+{"linux/synclink.h", "MGSL_IOCRXENABLE", 0x6d05},
+{"linux/synclink.h", "MGSL_IOCTXABORT", 0x6d06},
+{"linux/synclink.h", "MGSL_IOCGSTATS", 0x6d07},
+{"linux/synclink.h", "MGSL_IOCLOOPTXDONE", 0x6d09},
+{"linux/synclink.h", "MGSL_IOCCLRMODCOUNT", 0x6d0f},
+{"linux/ncp_fs.h", "NCP_IOC_CONN_LOGGED_IN", 0x6e03},
+{"linux/rtc.h", "RTC_AIE_ON", 0x7001},
+{"linux/rtc.h", "RTC_AIE_OFF", 0x7002},
+{"linux/rtc.h", "RTC_UIE_ON", 0x7003},
+{"linux/rtc.h", "RTC_UIE_OFF", 0x7004},
+{"linux/rtc.h", "RTC_PIE_ON", 0x7005},
+{"linux/rtc.h", "RTC_PIE_OFF", 0x7006},
+{"linux/rtc.h", "RTC_WIE_ON", 0x700f},
+{"linux/rtc.h", "RTC_WIE_OFF", 0x7010},
+{"linux/nvram.h", "NVRAM_INIT", 0x7040},
+{"linux/nvram.h", "NVRAM_SETCKS", 0x7041},
+{"linux/ppdev.h", "PPCLAIM", 0x708b},
+{"linux/ppdev.h", "PPRELEASE", 0x708c},
+{"linux/ppdev.h", "PPYIELD", 0x708d},
+{"linux/ppdev.h", "PPEXCL", 0x708f},
+{"linux/telephony.h", "PHONE_CAPABILITIES", 0x7180},
+{"linux/telephony.h", "PHONE_RING", 0x7183},
+{"linux/telephony.h", "PHONE_HOOKSTATE", 0x7184},
+{"linux/telephony.h", "PHONE_RING_START", 0x7187},
+{"linux/telephony.h", "PHONE_RING_STOP", 0x7188},
+{"linux/telephony.h", "PHONE_REC_START", 0x718a},
+{"linux/telephony.h", "PHONE_REC_STOP", 0x718b},
+{"linux/telephony.h", "PHONE_REC_LEVEL", 0x718f},
+{"linux/telephony.h", "PHONE_PLAY_START", 0x7191},
+{"linux/telephony.h", "PHONE_PLAY_STOP", 0x7192},
+{"linux/telephony.h", "PHONE_PLAY_LEVEL", 0x7195},
+{"linux/telephony.h", "PHONE_GET_TONE_ON_TIME", 0x719e},
+{"linux/telephony.h", "PHONE_GET_TONE_OFF_TIME", 0x719f},
+{"linux/telephony.h", "PHONE_GET_TONE_STATE", 0x71a0},
+{"linux/telephony.h", "PHONE_BUSY", 0x71a1},
+{"linux/telephony.h", "PHONE_RINGBACK", 0x71a2},
+{"linux/telephony.h", "PHONE_DIALTONE", 0x71a3},
+{"linux/telephony.h", "PHONE_CPT_STOP", 0x71a4},
+{"linux/telephony.h", "PHONE_PSTN_GET_STATE", 0x71a5},
+{"linux/telephony.h", "PHONE_PSTN_LINETEST", 0x71a8},
+{"linux/ixjuser.h", "IXJCTL_DSP_RESET", 0x71c0},
+{"linux/ixjuser.h", "IXJCTL_DSP_IDLE", 0x71c5},
+{"linux/ixjuser.h", "IXJCTL_TESTRAM", 0x71c6},
+{"linux/ixjuser.h", "IXJCTL_AEC_STOP", 0x71cc},
+{"linux/ixjuser.h", "IXJCTL_AEC_GET_LEVEL", 0x71cd},
+{"linux/ixjuser.h", "IXJCTL_PSTN_LINETEST", 0x71d3},
+{"linux/ixjuser.h", "IXJCTL_DRYBUFFER_CLEAR", 0x71e7},
+{"linux/cdk.h", "STL_BINTR", 0x7314},
+{"linux/cdk.h", "STL_BSTART", 0x7315},
+{"linux/cdk.h", "STL_BSTOP", 0x7316},
+{"linux/cdk.h", "STL_BRESET", 0x7317},
+{"linux/cdk.h", "STL_GETPFLAG", 0x7350},
+{"linux/cdk.h", "STL_SETPFLAG", 0x7351},
+{"linux/if_ppp.h", "PPPIOCDISCONN", 0x7439},
+{"linux/if_ppp.h", "PPPIOCXFERUNIT", 0x744e},
+{"linux/jffs.h", "JFFS_PRINT_HASH", 0x745a},
+{"linux/jffs.h", "JFFS_PRINT_TREE", 0x745b},
+{"linux/jffs.h", "JFFS_GET_STATUS", 0x745c},
+{"asm/sockios.h", "FIOSETOWN", 0x8901},
+{"asm/sockios.h", "SIOCSPGRP", 0x8902},
+{"asm/sockios.h", "FIOGETOWN", 0x8903},
+{"asm/sockios.h", "SIOCGPGRP", 0x8904},
+{"asm/sockios.h", "SIOCATMARK", 0x8905},
+{"asm/sockios.h", "SIOCGSTAMP", 0x8906},
+{"linux/sockios.h", "SIOCADDRT", 0x890b},
+{"linux/sockios.h", "SIOCDELRT", 0x890c},
+{"linux/sockios.h", "SIOCRTMSG", 0x890d},
+{"linux/sockios.h", "SIOCGIFNAME", 0x8910},
+{"linux/sockios.h", "SIOCSIFLINK", 0x8911},
+{"linux/sockios.h", "SIOCGIFCONF", 0x8912},
+{"linux/sockios.h", "SIOCGIFFLAGS", 0x8913},
+{"linux/sockios.h", "SIOCSIFFLAGS", 0x8914},
+{"linux/sockios.h", "SIOCGIFADDR", 0x8915},
+{"linux/sockios.h", "SIOCSIFADDR", 0x8916},
+{"linux/sockios.h", "SIOCGIFDSTADDR", 0x8917},
+{"linux/sockios.h", "SIOCSIFDSTADDR", 0x8918},
+{"linux/sockios.h", "SIOCGIFBRDADDR", 0x8919},
+{"linux/sockios.h", "SIOCSIFBRDADDR", 0x891a},
+{"linux/sockios.h", "SIOCGIFNETMASK", 0x891b},
+{"linux/sockios.h", "SIOCSIFNETMASK", 0x891c},
+{"linux/sockios.h", "SIOCGIFMETRIC", 0x891d},
+{"linux/sockios.h", "SIOCSIFMETRIC", 0x891e},
+{"linux/sockios.h", "SIOCGIFMEM", 0x891f},
+{"linux/sockios.h", "SIOCSIFMEM", 0x8920},
+{"linux/sockios.h", "SIOCGIFMTU", 0x8921},
+{"linux/sockios.h", "SIOCSIFMTU", 0x8922},
+{"linux/sockios.h", "SIOCSIFNAME", 0x8923},
+{"linux/sockios.h", "SIOCSIFHWADDR", 0x8924},
+{"linux/sockios.h", "SIOCGIFENCAP", 0x8925},
+{"linux/sockios.h", "SIOCSIFENCAP", 0x8926},
+{"linux/sockios.h", "SIOCGIFHWADDR", 0x8927},
+{"linux/sockios.h", "SIOCGIFSLAVE", 0x8929},
+{"linux/sockios.h", "SIOCSIFSLAVE", 0x8930},
+{"linux/sockios.h", "SIOCADDMULTI", 0x8931},
+{"linux/sockios.h", "SIOCDELMULTI", 0x8932},
+{"linux/sockios.h", "SIOCGIFINDEX", 0x8933},
+{"linux/sockios.h", "SIOCSIFPFLAGS", 0x8934},
+{"linux/sockios.h", "SIOCGIFPFLAGS", 0x8935},
+{"linux/sockios.h", "SIOCDIFADDR", 0x8936},
+{"linux/sockios.h", "SIOCSIFHWBROADCAST", 0x8937},
+{"linux/sockios.h", "SIOCGIFCOUNT", 0x8938},
+{"linux/sockios.h", "SIOCGIFBR", 0x8940},
+{"linux/sockios.h", "SIOCSIFBR", 0x8941},
+{"linux/sockios.h", "SIOCGIFTXQLEN", 0x8942},
+{"linux/sockios.h", "SIOCSIFTXQLEN", 0x8943},
+{"linux/sockios.h", "SIOCDARP", 0x8953},
+{"linux/sockios.h", "SIOCGARP", 0x8954},
+{"linux/sockios.h", "SIOCSARP", 0x8955},
+{"linux/sockios.h", "SIOCDRARP", 0x8960},
+{"linux/sockios.h", "SIOCGRARP", 0x8961},
+{"linux/sockios.h", "SIOCSRARP", 0x8962},
+{"linux/sockios.h", "SIOCGIFMAP", 0x8970},
+{"linux/sockios.h", "SIOCSIFMAP", 0x8971},
+{"linux/sockios.h", "SIOCADDDLCI", 0x8980},
+{"linux/sockios.h", "SIOCDELDLCI", 0x8981},
+{"linux/sockios.h", "SIOCPROTOPRIVATE", 0x89e0},
+{"linux/sockios.h", "SIOCDEVPRIVATE", 0x89f0},
+{"linux/auto_fs.h", "AUTOFS_IOC_READY", 0x9360},
+{"linux/auto_fs.h", "AUTOFS_IOC_FAIL", 0x9361},
+{"linux/auto_fs.h", "AUTOFS_IOC_CATATONIC", 0x9362},
+{"linux/nbd.h", "NBD_SET_SOCK", 0xab00},
+{"linux/nbd.h", "NBD_SET_BLKSIZE", 0xab01},
+{"linux/nbd.h", "NBD_SET_SIZE", 0xab02},
+{"linux/nbd.h", "NBD_DO_IT", 0xab03},
+{"linux/nbd.h", "NBD_CLEAR_SOCK", 0xab04},
+{"linux/nbd.h", "NBD_CLEAR_QUE", 0xab05},
+{"linux/nbd.h", "NBD_PRINT_DEBUG", 0xab06},
+{"linux/nbd.h", "NBD_SET_SIZE_BLOCKS", 0xab07},
+{"linux/nbd.h", "NBD_DISCONNECT", 0xab08},
+{"linux/raw.h", "RAW_SETBIND", 0xac00},
+{"linux/raw.h", "RAW_GETBIND", 0xac01},
+{"linux/if_pppox.h", "PPPOEIOCDFWD", 0xb101},
+{"linux/lvm.h", "LV_ACTIVATE", 0xfe22},
+{"linux/lvm.h", "LV_DEACTIVATE", 0xfe23},
+{"linux/lvm.h", "LVM_RESET", 0xfe99},
+{"linux/lvm.h", "LVM_LOCK_LVM", 0xff00},
+{"linux/cyclades.h", "CYGETMON", 0x435901},
+{"linux/cyclades.h", "CYGETTHRESH", 0x435902},
+{"linux/cyclades.h", "CYSETTHRESH", 0x435903},
+{"linux/cyclades.h", "CYGETDEFTHRESH", 0x435904},
+{"linux/cyclades.h", "CYSETDEFTHRESH", 0x435905},
+{"linux/cyclades.h", "CYGETTIMEOUT", 0x435906},
+{"linux/cyclades.h", "CYSETTIMEOUT", 0x435907},
+{"linux/cyclades.h", "CYGETDEFTIMEOUT", 0x435908},
+{"linux/cyclades.h", "CYSETDEFTIMEOUT", 0x435909},
+{"linux/cyclades.h", "CYSETRFLOW", 0x43590a},
+{"linux/cyclades.h", "CYGETRFLOW", 0x43590b},
+{"linux/cyclades.h", "CYSETRTSDTR_INV", 0x43590c},
+{"linux/cyclades.h", "CYGETRTSDTR_INV", 0x43590d},
+{"linux/cyclades.h", "CYZSETPOLLCYCLE", 0x43590e},
+{"linux/cyclades.h", "CYZGETPOLLCYCLE", 0x43590f},
+{"linux/cyclades.h", "CYGETCD1400VER", 0x435910},
+{"linux/cyclades.h", "CYGETCARDINFO", 0x435911},
+{"linux/cyclades.h", "CYSETWAIT", 0x435912},
+{"linux/cyclades.h", "CYGETWAIT", 0x435913},
+{"linux/soundcard.h", "SOUND_MIXER_READ_VOLUME", 0x20044d00},
+{"linux/soundcard.h", "SOUND_MIXER_READ_BASS", 0x20044d01},
+{"linux/soundcard.h", "SOUND_MIXER_READ_TREBLE", 0x20044d02},
+{"linux/soundcard.h", "SOUND_MIXER_READ_SYNTH", 0x20044d03},
+{"linux/soundcard.h", "SOUND_MIXER_READ_PCM", 0x20044d04},
+{"linux/soundcard.h", "SOUND_MIXER_READ_SPEAKER", 0x20044d05},
+{"linux/soundcard.h", "SOUND_MIXER_READ_LINE", 0x20044d06},
+{"linux/soundcard.h", "SOUND_MIXER_READ_MIC", 0x20044d07},
+{"linux/soundcard.h", "SOUND_MIXER_READ_CD", 0x20044d08},
+{"linux/soundcard.h", "SOUND_MIXER_READ_IMIX", 0x20044d09},
+{"linux/soundcard.h", "SOUND_MIXER_READ_ALTPCM", 0x20044d0a},
+{"linux/soundcard.h", "SOUND_MIXER_READ_RECLEV", 0x20044d0b},
+{"linux/soundcard.h", "SOUND_MIXER_READ_IGAIN", 0x20044d0c},
+{"linux/soundcard.h", "SOUND_MIXER_READ_OGAIN", 0x20044d0d},
+{"linux/soundcard.h", "SOUND_MIXER_READ_LINE1", 0x20044d0e},
+{"linux/soundcard.h", "SOUND_MIXER_READ_LINE2", 0x20044d0f},
+{"linux/soundcard.h", "SOUND_MIXER_READ_LINE3", 0x20044d10},
+{"linux/soundcard.h", "SOUND_MIXER_READ_MUTE", 0x20044d1f},
+{"linux/soundcard.h", "SOUND_MIXER_READ_ENHANCE", 0x20044d1f},
+{"linux/soundcard.h", "SOUND_MIXER_READ_LOUD", 0x20044d1f},
+{"linux/soundcard.h", "SOUND_MIXER_READ_STEREODEVS", 0x20044dfb},
+{"linux/soundcard.h", "SOUND_MIXER_READ_CAPS", 0x20044dfc},
+{"linux/soundcard.h", "SOUND_MIXER_READ_RECMASK", 0x20044dfd},
+{"linux/soundcard.h", "SOUND_MIXER_READ_DEVMASK", 0x20044dfe},
+{"linux/soundcard.h", "SOUND_MIXER_READ_RECSRC", 0x20044dff},
+{"linux/ppdev.h", "PPWCONTROL", 0x40017084},
+{"linux/ppdev.h", "PPWDATA", 0x40017086},
+{"linux/ppdev.h", "PPWCTLONIRQ", 0x40017092},
+{"linux/telephony.h", "PHONE_MAXRINGS", 0x40017185},
+{"linux/telephony.h", "PHONE_PLAY_TONE", 0x4001719b},
+{"linux/ppdev.h", "PPFCONTROL", 0x4002708e},
+{"linux/telephony.h", "PHONE_RING_CADENCE", 0x40027186},
+{"linux/agpgart.h", "AGPIOC_DEALLOCATE", 0x40044107},
+{"linux/random.h", "RNDADDTOENTCNT", 0x40045201},
+{"asm/ioctls.h", "TIOCSPTLCK", 0x40045431},
+{"linux/atmdev.h", "ATM_SETSC", 0x400461f1},
+{"linux/devfs_fs.h", "DEVFSDIOC_SET_EVENT_MASK", 0x40046402},
+{"linux/devfs_fs.h", "DEVFSDIOC_RELEASE_EVENT_QUEUE", 0x40046403},
+{"linux/video_decoder.h", "DECODER_SET_NORM", 0x40046403},
+{"linux/devfs_fs.h", "DEVFSDIOC_SET_DEBUG_MASK", 0x40046404},
+{"linux/video_decoder.h", "DECODER_SET_INPUT", 0x40046404},
+{"linux/video_decoder.h", "DECODER_SET_OUTPUT", 0x40046405},
+{"linux/video_decoder.h", "DECODER_ENABLE_OUTPUT", 0x40046406},
+{"linux/video_encoder.h", "ENCODER_SET_NORM", 0x40046502},
+{"linux/video_encoder.h", "ENCODER_SET_INPUT", 0x40046503},
+{"linux/video_encoder.h", "ENCODER_SET_OUTPUT", 0x40046504},
+{"linux/video_encoder.h", "ENCODER_ENABLE_OUTPUT", 0x40046505},
+{"linux/ncp_fs.h", "NCP_IOC_GETMOUNTUID", 0x40046e02},
+{"linux/ncp_fs.h", "NCP_IOC_SET_SIGN_WANTED", 0x40046e06},
+{"linux/ncp_fs.h", "NCP_IOC_GETDENTRYTTL", 0x40046e0c},
+{"linux/ppdev.h", "PPSETMODE", 0x40047080},
+{"linux/ppdev.h", "PPDATADIR", 0x40047090},
+{"linux/ppdev.h", "PPNEGOT", 0x40047091},
+{"linux/ppdev.h", "PPSETPHASE", 0x40047094},
+{"linux/telephony.h", "PHONE_REC_CODEC", 0x40047189},
+{"linux/telephony.h", "PHONE_REC_DEPTH", 0x4004718c},
+{"linux/telephony.h", "PHONE_FRAME", 0x4004718d},
+{"linux/telephony.h", "PHONE_REC_VOLUME", 0x4004718e},
+{"linux/telephony.h", "PHONE_PLAY_CODEC", 0x40047190},
+{"linux/telephony.h", "PHONE_PLAY_DEPTH", 0x40047193},
+{"linux/telephony.h", "PHONE_PLAY_VOLUME", 0x40047194},
+{"linux/telephony.h", "PHONE_DTMF_OOB", 0x40047199},
+{"linux/telephony.h", "PHONE_SET_TONE_ON_TIME", 0x4004719c},
+{"linux/telephony.h", "PHONE_SET_TONE_OFF_TIME", 0x4004719d},
+{"linux/telephony.h", "PHONE_PSTN_SET_STATE", 0x400471a4},
+{"linux/telephony.h", "PHONE_WINK_DURATION", 0x400471a6},
+{"linux/ixjuser.h", "IXJCTL_GET_FILTER_HIST", 0x400471c8},
+{"linux/ixjuser.h", "IXJCTL_AEC_START", 0x400471cb},
+{"linux/ixjuser.h", "IXJCTL_SET_LED", 0x400471ce},
+{"linux/ixjuser.h", "IXJCTL_MIXER", 0x400471cf},
+{"linux/ixjuser.h", "IXJCTL_DAA_COEFF_SET", 0x400471d0},
+{"linux/ixjuser.h", "IXJCTL_PORT", 0x400471d1},
+{"linux/ixjuser.h", "IXJCTL_DAA_AGAIN", 0x400471d2},
+{"linux/ixjuser.h", "IXJCTL_POTS_PSTN", 0x400471d5},
+{"linux/ixjuser.h", "IXJCTL_HZ", 0x400471e0},
+{"linux/ixjuser.h", "IXJCTL_RATE", 0x400471e1},
+{"linux/ixjuser.h", "IXJCTL_INTERCOM_START", 0x400471fd},
+{"linux/ixjuser.h", "IXJCTL_INTERCOM_STOP", 0x400471fe},
+{"linux/if_ppp.h", "PPPIOCATTCHAN", 0x40047438},
+{"linux/if_ppp.h", "PPPIOCCONNECT", 0x4004743a},
+{"linux/if_ppp.h", "PPPIOCSMRRU", 0x4004743b},
+{"linux/if_ppp.h", "PPPIOCDETACH", 0x4004743c},
+{"linux/if_ppp.h", "PPPIOCATTACH", 0x4004743d},
+{"linux/if_ppp.h", "PPPIOCSDEBUG", 0x40047440},
+{"linux/if_ppp.h", "PPPIOCSMAXCID", 0x40047451},
+{"linux/if_ppp.h", "PPPIOCSMRU", 0x40047452},
+{"linux/if_ppp.h", "PPPIOCSRASYNCMAP", 0x40047454},
+{"linux/if_ppp.h", "PPPIOCSASYNCMAP", 0x40047457},
+{"linux/if_ppp.h", "PPPIOCSFLAGS", 0x40047459},
+{"linux/isdn_ppp.h", "PPPIOCBUNDLE", 0x40047481},
+{"linux/isdn_ppp.h", "PPPIOCSMPFLAGS", 0x40047483},
+{"linux/isdn_ppp.h", "PPPIOCSMPMTU", 0x40047484},
+{"linux/isdn_ppp.h", "PPPIOCSMPMRU", 0x40047485},
+{"linux/isdn_ppp.h", "PPPIOCSCOMPRESSOR", 0x40047487},
+{"linux/videodev.h", "VIDIOCCAPTURE", 0x40047608},
+{"linux/videodev.h", "VIDIOCSYNC", 0x40047612},
+{"linux/videodev.h", "VIDIOCSWRITEMODE", 0x40047619},
+{"linux/dn.h", "SIOCSNETADDR", 0x400489e0},
+{"linux/dn.h", "OSIOCSNETADDR", 0x400489e0},
+{"linux/auto_fs4.h", "AUTOFS_IOC_EXPIRE_MULTI", 0x40049366},
+{"linux/lvm.h", "VG_CREATE", 0x4004fe00},
+{"linux/lvm.h", "VG_REMOVE", 0x4004fe01},
+{"linux/lvm.h", "VG_EXTEND", 0x4004fe03},
+{"linux/lvm.h", "VG_REDUCE", 0x4004fe04},
+{"linux/lvm.h", "VG_SET_EXTENDABLE", 0x4004fe08},
+{"linux/lvm.h", "LV_CREATE", 0x4004fe20},
+{"linux/lvm.h", "LV_REMOVE", 0x4004fe21},
+{"linux/lvm.h", "LV_EXTEND", 0x4004fe24},
+{"linux/lvm.h", "LV_REDUCE", 0x4004fe25},
+{"linux/lvm.h", "LV_SET_ACCESS", 0x4004fe28},
+{"linux/lvm.h", "LV_SET_ALLOCATION", 0x4004fe29},
+{"linux/lvm.h", "LV_SET_STATUS", 0x4004fe2a},
+{"linux/lvm.h", "LE_REMAP", 0x4004fe2b},
+{"linux/lvm.h", "PV_FLUSH", 0x4004fe42},
+{"linux/lvm.h", "PE_LOCK_UNLOCK", 0x4004fe50},
+{"linux/elevator.h", "BLKELVSET", 0x4008126b},
+{"linux/fs.h", "BLKELVSET", 0x4008126b},
+{"linux/agpgart.h", "AGPIOC_SETUP", 0x40084103},
+{"linux/agpgart.h", "AGPIOC_RESERVE", 0x40084104},
+{"linux/agpgart.h", "AGPIOC_PROTECT", 0x40084105},
+{"linux/agpgart.h", "AGPIOC_BIND", 0x40084108},
+{"linux/agpgart.h", "AGPIOC_UNBIND", 0x40084109},
+{"linux/pmu.h", "PMU_IOC_SET_BACKLIGHT", 0x40084202},
+{"linux/input.h", "EVIOCSREP", 0x40084503},
+{"linux/input.h", "EVIOCSKEYCODE", 0x40084504},
+{"linux/random.h", "RNDADDENTROPY", 0x40085203},
+{"linux/usbdevice_fs.h", "USBDEVFS_REAPURB", 0x4008550c},
+{"linux/usbdevice_fs.h", "USBDEVFS_REAPURBNDELAY", 0x4008550d},
+{"linux/usbdevice_fs.h", "USBDEVFS_CONNECTINFO", 0x40085511},
+{"linux/ext2_fs.h", "EXT2_IOC_SETFLAGS", 0x40086602},
+{"linux/mtio.h", "MTIOCTOP", 0x40086d01},
+{"linux/ncp_fs.h", "NCP_IOC_GETMOUNTUID2", 0x40086e02},
+{"linux/matroxfb.h", "MATROXFB_SET_OUTPUT_CONNECTION", 0x40086ef8},
+{"linux/matroxfb.h", "MATROXFB_SET_OUTPUT_MODE", 0x40086efa},
+{"linux/rtc.h", "RTC_IRQP_SET", 0x4008700c},
+{"linux/rtc.h", "RTC_EPOCH_SET", 0x4008700e},
+{"linux/serio.h", "SPIOCSTYPE", 0x40087101},
+{"linux/telephony.h", "PHONE_CAPABILITIES_CHECK", 0x40087182},
+{"linux/ixjuser.h", "IXJCTL_SET_FILTER", 0x400871c7},
+{"linux/ixjuser.h", "IXJCTL_INIT_TONE", 0x400871c9},
+{"linux/ixjuser.h", "IXJCTL_TONE_CADENCE", 0x400871ca},
+{"linux/if_ppp.h", "PPPIOCSNPMODE", 0x4008744b},
+{"linux/ext2_fs.h", "EXT2_IOC_SETVERSION", 0x40087602},
+{"linux/videodev.h", "VIDIOCSFREQ", 0x4008760f},
+{"linux/if_pppox.h", "PPPOEIOCSFWD", 0x4008b100},
+{"linux/fd.h", "FDFMTTRK", 0x400c0248},
+{"linux/capi.h", "CAPI_REGISTER", 0x400c4301},
+{"linux/i2o-dev.h", "I2OEVTREG", 0x400c690a},
+{"linux/ncp_fs.h", "NCP_IOC_GETROOT", 0x400c6e08},
+{"linux/videodev.h", "VIDIOCSPLAYMODE", 0x400c7618},
+{"linux/video_decoder.h", "DECODER_SET_PICTURE", 0x400e6407},
+{"linux/videodev.h", "VIDIOCSPICT", 0x400e7607},
+{"asm/dasd.h", "BIODASDFMT", 0x40104401},
+{"linux/atm_idt77105.h", "IDT77105_GETSTAT", 0x40106132},
+{"linux/atm_idt77105.h", "IDT77105_GETSTATZ", 0x40106133},
+{"linux/atmdev.h", "ATM_GETSTAT", 0x40106150},
+{"linux/atmdev.h", "ATM_GETSTATZ", 0x40106151},
+{"linux/atmdev.h", "ATM_GETLOOP", 0x40106152},
+{"linux/atmdev.h", "ATM_SETLOOP", 0x40106153},
+{"linux/atmdev.h", "ATM_QUERYLOOP", 0x40106154},
+{"linux/atm_eni.h", "ENI_MEMDUMP", 0x40106160},
+{"linux/atm_zatm.h", "ZATM_GETPOOL", 0x40106161},
+{"linux/atm_nicstar.h", "NS_SETBUFLEV", 0x40106162},
+{"linux/atm_zatm.h", "ZATM_GETPOOLZ", 0x40106162},
+{"linux/atm_zatm.h", "ZATM_SETPOOL", 0x40106163},
+{"linux/atm_zatm.h", "ZATM_GETTHIST", 0x40106164},
+{"linux/atm_eni.h", "ENI_SETMULT", 0x40106167},
+{"linux/atmdev.h", "ATM_GETLINKRATE", 0x40106181},
+{"linux/atmdev.h", "ATM_GETNAMES", 0x40106183},
+{"linux/atmdev.h", "ATM_GETTYPE", 0x40106184},
+{"linux/atmdev.h", "ATM_GETESI", 0x40106185},
+{"linux/atmdev.h", "ATM_GETADDR", 0x40106186},
+{"linux/atmdev.h", "ATM_RSTADDR", 0x40106187},
+{"linux/atmdev.h", "ATM_ADDADDR", 0x40106188},
+{"linux/atmdev.h", "ATM_DELADDR", 0x40106189},
+{"linux/atmdev.h", "ATM_GETCIRANGE", 0x4010618a},
+{"linux/atmdev.h", "ATM_SETCIRANGE", 0x4010618b},
+{"linux/atmdev.h", "ATM_SETESI", 0x4010618c},
+{"linux/atmdev.h", "ATM_SETESIF", 0x4010618d},
+{"linux/ppdev.h", "PPSETTIME", 0x40107096},
+{"linux/if_ppp.h", "PPPIOCSCOMPRESS", 0x4010744d},
+{"linux/videodev.h", "VIDIOCMCAPTURE", 0x40107613},
+{"asm/tape390.h", "TAPE390_DISPLAY", 0x40116401},
+{"linux/fd.h", "FDSETMAXERRS", 0x4014024c},
+{"linux/videodev.h", "VIDIOCSCAPTURE", 0x40147617},
+{"linux/videodev.h", "VIDIOCSFBUF", 0x4018760c},
+{"linux/fd.h", "FDSETPRM", 0x40200242},
+{"linux/fd.h", "FDDEFPRM", 0x40200243},
+{"asm/dasd.h", "BIODASDSATTR", 0x40204402},
+{"linux/if_ppp.h", "PPPIOCSXASYNCMAP", 0x4020744f},
+{"linux/videodev.h", "VIDIOCSMICROCODE", 0x4020761b},
+{"linux/videodev.h", "VIDIOCSVBIFMT", 0x4020761d},
+{"linux/joystick.h", "JSIOCSCORR", 0x40246a21},
+{"linux/rtc.h", "RTC_ALM_SET", 0x40247007},
+{"linux/rtc.h", "RTC_SET_TIME", 0x4024700a},
+{"linux/rtc.h", "RTC_WKALM_SET", 0x4028700f},
+{"linux/videodev.h", "VIDIOCSWIN", 0x4028760a},
+{"linux/videodev.h", "VIDIOCSAUDIO", 0x40287611},
+{"linux/smb_fs.h", "SMB_IOC_NEWCONN", 0x402c7502},
+{"linux/synclink.h", "MGSL_IOCSPARAMS", 0x40306d00},
+{"linux/videodev.h", "VIDIOCSCHAN", 0x40307603},
+{"linux/videodev.h", "VIDIOCSTUNER", 0x40407605},
+{"linux/fd.h", "FDSETDRVPRM", 0x40800290},
+{"linux/usbdevice_fs.h", "USBDEVFS_GETDRIVER", 0x41045508},
+{"linux/soundcard.h", "SOUND_MIXER_WRITE_VOLUME", 0x60044d00},
+{"linux/soundcard.h", "SOUND_MIXER_WRITE_BASS", 0x60044d01},
+{"linux/soundcard.h", "SOUND_MIXER_WRITE_TREBLE", 0x60044d02},
+{"linux/soundcard.h", "SOUND_MIXER_WRITE_SYNTH", 0x60044d03},
+{"linux/soundcard.h", "SOUND_MIXER_WRITE_PCM", 0x60044d04},
+{"linux/soundcard.h", "SOUND_MIXER_WRITE_SPEAKER", 0x60044d05},
+{"linux/soundcard.h", "SOUND_MIXER_WRITE_LINE", 0x60044d06},
+{"linux/soundcard.h", "SOUND_MIXER_WRITE_MIC", 0x60044d07},
+{"linux/soundcard.h", "SOUND_MIXER_WRITE_CD", 0x60044d08},
+{"linux/soundcard.h", "SOUND_MIXER_WRITE_IMIX", 0x60044d09},
+{"linux/soundcard.h", "SOUND_MIXER_WRITE_ALTPCM", 0x60044d0a},
+{"linux/soundcard.h", "SOUND_MIXER_WRITE_RECLEV", 0x60044d0b},
+{"linux/soundcard.h", "SOUND_MIXER_WRITE_IGAIN", 0x60044d0c},
+{"linux/soundcard.h", "SOUND_MIXER_WRITE_OGAIN", 0x60044d0d},
+{"linux/soundcard.h", "SOUND_MIXER_WRITE_LINE1", 0x60044d0e},
+{"linux/soundcard.h", "SOUND_MIXER_WRITE_LINE2", 0x60044d0f},
+{"linux/soundcard.h", "SOUND_MIXER_WRITE_LINE3", 0x60044d10},
+{"linux/soundcard.h", "SOUND_MIXER_WRITE_MUTE", 0x60044d1f},
+{"linux/soundcard.h", "SOUND_MIXER_WRITE_ENHANCE", 0x60044d1f},
+{"linux/soundcard.h", "SOUND_MIXER_WRITE_LOUD", 0x60044d1f},
+{"linux/soundcard.h", "SOUND_MIXER_WRITE_RECSRC", 0x60044dff},
+{"linux/joystick.h", "JSIOCGAXES", 0x80016a11},
+{"linux/joystick.h", "JSIOCGBUTTONS", 0x80016a12},
+{"linux/ppdev.h", "PPRSTATUS", 0x80017081},
+{"linux/ppdev.h", "PPRCONTROL", 0x80017083},
+{"linux/ppdev.h", "PPRDATA", 0x80017085},
+{"linux/capi.h", "CAPI_GET_ERRCODE", 0x80024321},
+{"linux/capi.h", "CAPI_INSTALLED", 0x80024322},
+{"linux/capi.h", "CAPI_GET_FLAGS", 0x80044323},
+{"linux/capi.h", "CAPI_SET_FLAGS", 0x80044324},
+{"linux/capi.h", "CAPI_CLR_FLAGS", 0x80044325},
+{"linux/capi.h", "CAPI_NCCI_OPENCOUNT", 0x80044326},
+{"linux/capi.h", "CAPI_NCCI_GETUNIT", 0x80044327},
+{"asm/dasd.h", "DASDAPIVER", 0x80044400},
+{"linux/input.h", "EVIOCGVERSION", 0x80044501},
+{"linux/random.h", "RNDGETENTCNT", 0x80045200},
+{"asm/ioctls.h", "TIOCGPTN", 0x80045430},
+{"linux/usbdevice_fs.h", "USBDEVFS_RESETEP", 0x80045503},
+{"linux/usbdevice_fs.h", "USBDEVFS_SETCONFIGURATION", 0x80045505},
+{"linux/usbdevice_fs.h", "USBDEVFS_CLAIMINTERFACE", 0x8004550f},
+{"linux/usbdevice_fs.h", "USBDEVFS_RELEASEINTERFACE", 0x80045510},
+{"linux/usbdevice_fs.h", "USBDEVFS_CLEAR_HALT", 0x80045515},
+{"linux/watchdog.h", "WDIOC_GETSTATUS", 0x80045701},
+{"linux/watchdog.h", "WDIOC_GETBOOTSTATUS", 0x80045702},
+{"linux/watchdog.h", "WDIOC_GETTEMP", 0x80045703},
+{"linux/watchdog.h", "WDIOC_SETOPTIONS", 0x80045704},
+{"linux/watchdog.h", "WDIOC_KEEPALIVE", 0x80045705},
+{"linux/sonet.h", "SONET_GETDIAG", 0x80046114},
+{"linux/sonet.h", "SONET_GETFRAMING", 0x80046116},
+{"linux/devfs_fs.h", "DEVFSDIOC_GET_PROTO_REV", 0x80046400},
+{"linux/video_decoder.h", "DECODER_GET_STATUS", 0x80046402},
+{"linux/i2o-dev.h", "I2OVALIDATE", 0x80046908},
+{"linux/joystick.h", "JSIOCGVERSION", 0x80046a01},
+{"linux/udf_fs_i.h", "UDF_GETEASIZE", 0x80046c40},
+{"linux/zftape.h", "MTIOC_ZFTAPE_GETBLKSZ", 0x80046d68},
+{"linux/ncp_fs.h", "NCP_IOC_SIGN_WANTED", 0x80046e06},
+{"linux/ncp_fs.h", "NCP_IOC_SETDENTRYTTL", 0x80046e0c},
+{"linux/ppdev.h", "PPCLRIRQ", 0x80047093},
+{"linux/telephony.h", "PHONE_DTMF_READY", 0x80047196},
+{"linux/telephony.h", "PHONE_GET_DTMF", 0x80047197},
+{"linux/telephony.h", "PHONE_GET_DTMF_ASCII", 0x80047198},
+{"linux/telephony.h", "PHONE_EXCEPTION", 0x8004719a},
+{"linux/ixjuser.h", "IXJCTL_CARDTYPE", 0x800471c1},
+{"linux/ixjuser.h", "IXJCTL_SERIAL", 0x800471c2},
+{"linux/ixjuser.h", "IXJCTL_DSP_TYPE", 0x800471c3},
+{"linux/ixjuser.h", "IXJCTL_DSP_VERSION", 0x800471c4},
+{"linux/if_ppp.h", "PPPIOCGCHAN", 0x80047437},
+{"linux/if_ppp.h", "PPPIOCGDEBUG", 0x80047441},
+{"linux/if_ppp.h", "PPPIOCGMRU", 0x80047453},
+{"linux/if_ppp.h", "PPPIOCGRASYNCMAP", 0x80047455},
+{"linux/if_ppp.h", "PPPIOCGUNIT", 0x80047456},
+{"linux/if_ppp.h", "PPPIOCGASYNCMAP", 0x80047458},
+{"linux/if_ppp.h", "PPPIOCGFLAGS", 0x8004745a},
+{"linux/isdn_ppp.h", "PPPIOCGMPFLAGS", 0x80047482},
+{"linux/smb_fs.h", "SMB_IOC_GETMOUNTUID", 0x80047501},
+{"linux/smb_fs.h", "SMB_IOC_GETMOUNTUID32", 0x80047503},
+{"linux/dn.h", "SIOCGNETADDR", 0x800489e1},
+{"linux/dn.h", "OSIOCGNETADDR", 0x800489e1},
+{"linux/auto_fs.h", "AUTOFS_IOC_PROTOVER", 0x80049363},
+{"linux/lvm.h", "LVM_GET_IOP_VERSION", 0x8004fe98},
+{"linux/sonet.h", "SONET_GETFRSENSE", 0x80066117},
+{"linux/elevator.h", "BLKELVGET", 0x8008126a},
+{"linux/fs.h", "BLKELVGET", 0x8008126a},
+{"linux/agpgart.h", "AGPIOC_INFO", 0x80084100},
+{"linux/pmu.h", "PMU_IOC_GET_BACKLIGHT", 0x80084201},
+{"linux/pmu.h", "PMU_IOC_GET_MODEL", 0x80084203},
+{"linux/pmu.h", "PMU_IOC_HAS_ADB", 0x80084204},
+{"linux/input.h", "EVIOCGID", 0x80084502},
+{"linux/input.h", "EVIOCGREP", 0x80084503},
+{"linux/input.h", "EVIOCGKEYCODE", 0x80084504},
+{"linux/input.h", "EVIOCGKEY", 0x80084505},
+{"linux/random.h", "RNDGETPOOL", 0x80085202},
+{"linux/usbdevice_fs.h", "USBDEVFS_SETINTERFACE", 0x80085504},
+{"linux/ext2_fs.h", "EXT2_IOC_GETFLAGS", 0x80086601},
+{"linux/udf_fs_i.h", "UDF_GETEABLOCK", 0x80086c41},
+{"linux/udf_fs_i.h", "UDF_GETVOLIDENT", 0x80086c42},
+{"linux/mtio.h", "MTIOCPOS", 0x80086d03},
+{"linux/matroxfb.h", "MATROXFB_GET_OUTPUT_CONNECTION", 0x80086ef8},
+{"linux/matroxfb.h", "MATROXFB_GET_AVAILABLE_OUTPUTS", 0x80086ef9},
+{"linux/matroxfb.h", "MATROXFB_GET_ALL_OUTPUTS", 0x80086efb},
+{"linux/rtc.h", "RTC_IRQP_READ", 0x8008700b},
+{"linux/rtc.h", "RTC_EPOCH_READ", 0x8008700d},
+{"linux/telephony.h", "PHONE_CAPABILITIES_LIST", 0x80087181},
+{"linux/ixjuser.h", "IXJCTL_CID", 0x800871d4},
+{"linux/ixjuser.h", "IXJCTL_FRAMES_READ", 0x800871e2},
+{"linux/ixjuser.h", "IXJCTL_FRAMES_WRITTEN", 0x800871e3},
+{"linux/ixjuser.h", "IXJCTL_READ_WAIT", 0x800871e4},
+{"linux/ixjuser.h", "IXJCTL_WRITE_WAIT", 0x800871e5},
+{"linux/ixjuser.h", "IXJCTL_DRYBUFFER_READ", 0x800871e6},
+{"linux/ext2_fs.h", "EXT2_IOC_GETVERSION", 0x80087601},
+{"linux/videodev.h", "VIDIOCGFREQ", 0x8008760e},
+{"linux/video_decoder.h", "DECODER_GET_CAPABILITIES", 0x800c6401},
+{"linux/video_encoder.h", "ENCODER_GET_CAPABILITIES", 0x800c6501},
+{"linux/ncp_fs.h", "NCP_IOC_SETROOT", 0x800c6e08},
+{"linux/videodev.h", "VIDIOCKEY", 0x800c760d},
+{"linux/videodev.h", "VIDIOCGPICT", 0x800e7606},
+{"linux/fd.h", "FDGETDRVTYP", 0x8010020f},
+{"linux/usbdevice_fs.h", "USBDEVFS_DISCSIGNAL", 0x8010550e},
+{"linux/mtio.h", "MTIOCGETSIZE", 0x80106d09},
+{"linux/ncp_fs.h", "NCP_IOC_NCPREQUEST", 0x80106e01},
+{"linux/ncp_fs.h", "NCP_IOC_SETPRIVATEDATA", 0x80106e0a},
+{"linux/ppdev.h", "PPGETTIME", 0x80107095},
+{"linux/if_ppp.h", "PPPIOCGIDLE", 0x8010743f},
+{"linux/isdn_ppp.h", "PPPIOCGIFNAME", 0x80107488},
+{"linux/fd.h", "FDGETMAXERRS", 0x8014020e},
+{"linux/mtio.h", "MTIOCVOLINFO", 0x80146d08},
+{"linux/ncp_fs.h", "NCP_IOC_LOCKUNLOCK", 0x80146e07},
+{"linux/videodev.h", "VIDIOCGUNIT", 0x80147615},
+{"linux/videodev.h", "VIDIOCGCAPTURE", 0x80147616},
+{"linux/ncp_fs.h", "NCP_IOC_SIGN_INIT", 0x80186e05},
+{"linux/ncp_fs.h", "NCP_IOC_SETOBJECTNAME", 0x80186e09},
+{"linux/videodev.h", "VIDIOCGFBUF", 0x8018760b},
+{"linux/fd.h", "FDGETPRM", 0x80200204},
+{"asm/dasd.h", "BIODASDGATTR", 0x80204405},
+{"linux/fb.h", "FBIOGET_VBLANK", 0x80204612},
+{"linux/if_ppp.h", "PPPIOCGXASYNCMAP", 0x80207450},
+{"linux/videodev.h", "VIDIOCGVBIFMT", 0x8020761c},
+{"linux/sonet.h", "SONET_GETSTAT", 0x80246110},
+{"linux/sonet.h", "SONET_GETSTATZ", 0x80246111},
+{"linux/joystick.h", "JSIOCGCORR", 0x80246a22},
+{"linux/rtc.h", "RTC_ALM_READ", 0x80247008},
+{"linux/rtc.h", "RTC_RD_TIME", 0x80247009},
+{"linux/fd.h", "FDGETFDCSTAT", 0x80280215},
+{"linux/fd.h", "FDWERRORGET", 0x80280217},
+{"linux/rtc.h", "RTC_WKALM_RD", 0x80287010},
+{"linux/videodev.h", "VIDIOCGWIN", 0x80287609},
+{"linux/videodev.h", "VIDIOCGAUDIO", 0x80287610},
+{"linux/ncp_fs.h", "NCP_IOC_SETCHARSETS", 0x802a6e0b},
+{"linux/synclink.h", "MGSL_IOCGPARAMS", 0x80306d01},
+{"linux/mtio.h", "MTIOCGET", 0x80306d02},
+{"linux/usbdevice_fs.h", "USBDEVFS_SUBMITURB", 0x8038550a},
+{"linux/videodev.h", "VIDIOCGCAP", 0x803c7601},
+{"linux/i2o-dev.h", "I2OGETIOPS", 0x80406900},
+{"linux/isdn_ppp.h", "PPPIOCGCOMPRESSORS", 0x80407486},
+{"linux/watchdog.h", "WDIOC_GETSUPPORT", 0x80485700},
+{"linux/fd.h", "FDGETDRVSTAT", 0x80500212},
+{"linux/fd.h", "FDPOLLDRVSTAT", 0x80500213},
+{"linux/i2o-dev.h", "I2OEVTGET", 0x8068690b},
+{"linux/fd.h", "FDGETDRVPRM", 0x80800211},
+{"linux/usbdevice_fs.h", "USBDEVFS_HUB_PORTINFO", 0x80805513},
+{"linux/videodev.h", "VIDIOCGMBUF", 0x80887614},
+{"asm/dasd.h", "BIODASDPSRD", 0x80c04404},
+{"linux/auto_fs.h", "AUTOFS_IOC_EXPIRE", 0x810c9365},
+{"linux/videodev.h", "VIDIOCGPLAYINFO", 0x8118761a},
+{"asm/dasd.h", "BIODASDINFO", 0x81784401},
+{"asm/dasd.h", "BIODASDINFO2", 0x81a04403},
+{"linux/msdos_fs.h", "VFAT_IOCTL_READDIR_BOTH", 0x82307201},
+{"linux/msdos_fs.h", "VFAT_IOCTL_READDIR_SHORT", 0x82307202},
+{"asm/dasd.h", "BIODASDPRRD", 0x84084402},
+{"linux/capi.h", "CAPI_GET_MANUFACTURER", 0xc0044306},
+{"linux/capi.h", "CAPI_GET_SERIAL", 0xc0044308},
+{"linux/sonet.h", "SONET_SETDIAG", 0xc0046112},
+{"linux/sonet.h", "SONET_CLRDIAG", 0xc0046113},
+{"linux/synclink.h", "MGSL_IOCWAITEVENT", 0xc0046d08},
+{"linux/if_ppp.h", "PPPIOCNEWUNIT", 0xc004743e},
+{"linux/lvm.h", "VG_STATUS", 0xc004fe05},
+{"linux/lvm.h", "VG_STATUS_GET_COUNT", 0xc004fe06},
+{"linux/lvm.h", "VG_STATUS_GET_NAMELIST", 0xc004fe07},
+{"linux/lvm.h", "LV_STATUS_BYNAME", 0xc004fe26},
+{"linux/lvm.h", "LV_STATUS_BYINDEX", 0xc004fe27},
+{"linux/lvm.h", "PV_STATUS", 0xc004fe40},
+{"linux/lvm.h", "PV_CHANGE", 0xc004fe41},
+{"linux/agpgart.h", "AGPIOC_ALLOCATE", 0xc0084106},
+{"asm/cmb.h", "BIODASDREADCMB", 0xc0084420},
+{"linux/coda.h", "CIOC_KERNEL_VERSION", 0xc008630a},
+{"linux/matroxfb.h", "MATROXFB_GET_OUTPUT_MODE", 0xc0086efa},
+{"linux/telephony.h", "PHONE_QUERY_CODEC", 0xc00871a7},
+{"linux/if_ppp.h", "PPPIOCGNPMODE", 0xc008744c},
+{"linux/auto_fs.h", "AUTOFS_IOC_SETTIMEOUT", 0xc0089364},
+{"linux/capi.h", "CAPI_GET_VERSION", 0xc0104307},
+{"linux/capi.h", "CAPI_MANUFACTURER_CMD", 0xc0104320},
+{"linux/usbdevice_fs.h", "USBDEVFS_IOCTL", 0xc0105512},
+{"linux/atm_nicstar.h", "NS_GETPSTAT", 0xc0106161},
+{"linux/ncp_fs.h", "NCP_IOC_GETPRIVATEDATA", 0xc0106e0a},
+{"linux/usbdevice_fs.h", "USBDEVFS_CONTROL", 0xc0185500},
+{"linux/usbdevice_fs.h", "USBDEVFS_BULK", 0xc0185502},
+{"linux/i2o-dev.h", "I2OHRTGET", 0xc0186901},
+{"linux/i2o-dev.h", "I2OLCTGET", 0xc0186902},
+{"linux/mtio.h", "MTIOCRDFTSEG", 0xc0186d06},
+{"linux/mtio.h", "MTIOCWRFTSEG", 0xc0186d07},
+{"linux/mtio.h", "MTIOCFTFORMAT", 0xc0186d0a},
+{"linux/ncp_fs.h", "NCP_IOC_GETOBJECTNAME", 0xc0186e09},
+{"linux/mtio.h", "MTIOCFTCMD", 0xc0206d0b},
+{"linux/i2o-dev.h", "I2OPARMSET", 0xc0286903},
+{"linux/i2o-dev.h", "I2OPARMGET", 0xc0286904},
+{"linux/ncp_fs.h", "NCP_IOC_GET_FS_INFO", 0xc0286e04},
+{"linux/ncp_fs.h", "NCP_IOC_GETCHARSETS", 0xc02a6e0b},
+{"linux/i2o-dev.h", "I2OSWDL", 0xc0306905},
+{"linux/i2o-dev.h", "I2OSWUL", 0xc0306906},
+{"linux/i2o-dev.h", "I2OSWDEL", 0xc0306907},
+{"linux/i2o-dev.h", "I2OHTML", 0xc0306909},
+{"linux/ncp_fs.h", "NCP_IOC_GET_FS_INFO_V2", 0xc0306e04},
+{"linux/videodev.h", "VIDIOCGCHAN", 0xc0307602},
+{"linux/capi.h", "CAPI_GET_PROFILE", 0xc0404309},
+{"linux/videodev.h", "VIDIOCGTUNER", 0xc0407604},
+{"asm/cmb.h", "BIODASDREADALLCMB", 0xc0584421},
+{"linux/isdn_ppp.h", "PPPIOCGCALLINFO", 0xc0887480},
diff --git a/strace/linux/s390x/signalent.h b/strace/linux/s390x/signalent.h
new file mode 100644
index 0000000..04b00b1
--- /dev/null
+++ b/strace/linux/s390x/signalent.h
@@ -0,0 +1,33 @@
+ "SIG_0", /* 0 */
+ "SIGHUP", /* 1 */
+ "SIGINT", /* 2 */
+ "SIGQUIT", /* 3 */
+ "SIGILL", /* 4 */
+ "SIGTRAP", /* 5 */
+ "SIGABRT", /* 6 */
+ "SIGBUS", /* 7 */
+ "SIGFPE", /* 8 */
+ "SIGKILL", /* 9 */
+ "SIGUSR1", /* 10 */
+ "SIGSEGV", /* 11 */
+ "SIGUSR2", /* 12 */
+ "SIGPIPE", /* 13 */
+ "SIGALRM", /* 14 */
+ "SIGTERM", /* 15 */
+ "SIGSTKFLT", /* 16 */
+ "SIGCHLD", /* 17 */
+ "SIGCONT", /* 18 */
+ "SIGSTOP", /* 19 */
+ "SIGTSTP", /* 20 */
+ "SIGTTIN", /* 21 */
+ "SIGTTOU", /* 22 */
+ "SIGURG", /* 23 */
+ "SIGXCPU", /* 24 */
+ "SIGXFSZ", /* 25 */
+ "SIGVTALRM", /* 26 */
+ "SIGPROF", /* 27 */
+ "SIGWINCH", /* 28 */
+ "SIGIO", /* 29 */
+ "SIGPWR", /* 30 */
+ "SIGUNUSED", /* 31 */
+ "SIGRTMIN", /* 32 */
diff --git a/strace/linux/s390x/syscallent.h b/strace/linux/s390x/syscallent.h
new file mode 100644
index 0000000..b7d02f3
--- /dev/null
+++ b/strace/linux/s390x/syscallent.h
@@ -0,0 +1,381 @@
+/*
+ * Copyright (c) 2000 IBM Deutschland Entwicklung GmbH, IBM Coporation
+ * Author: Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+ * 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.
+ *
+ */
+
+ { 0, 0, sys_setup, "setup" }, /* 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 */
+ { -1, 0, printargs, "SYS_7" }, /* 7 */
+ { 2, TF, sys_creat, "creat" }, /* 8 */
+ { 2, TF, sys_link, "link" }, /* 9 */
+ { 1, TF, sys_unlink, "unlink" }, /* 10 */
+ { 3, TF|TP, sys_execve, "execve" }, /* 11 */
+ { 1, TF, sys_chdir, "chdir" }, /* 12 */
+ { -1, 0, printargs, "SYS_13" }, /* 13 */
+ { 3, TF, sys_mknod, "mknod" }, /* 14 */
+ { 2, TF, sys_chmod, "chmod" }, /* 15 */
+ { -1, 0, printargs, "SYS_16" }, /* 16 */
+ { -1, 0, printargs, "SYS_17" }, /* 17 */
+ { -1, 0, printargs, "SYS_18" }, /* 18 */
+ { 3, 0, sys_lseek, "lseek" }, /* 19 */
+ { 0, 0, sys_getpid, "getpid" }, /* 20 */
+ { 5, TF, sys_mount, "mount" }, /* 21 */
+ { 1, TF, sys_umount, "oldumount" }, /* 22 */
+ { -1, 0, printargs, "SYS_23" }, /* 23 */
+ { -1, 0, printargs, "SYS_24" }, /* 24 */
+ { -1, 0, printargs, "SYS_25" }, /* 25 */
+ { 4, 0, sys_ptrace, "ptrace" }, /* 26 */
+ { 1, 0, sys_alarm, "alarm" }, /* 27 */
+ { -1, 0, printargs, "SYS_28" }, /* 28 */
+ { 0, TS, sys_pause, "pause" }, /* 29 */
+ { 2, TF, sys_utime, "utime" }, /* 30 */
+ { -1, 0, printargs, "SYS_31" }, /* 31 */
+ { -1, 0, printargs, "SYS_32" }, /* 32 */
+ { 2, TF, sys_access, "access" }, /* 33 */
+ { 1, 0, sys_nice, "nice" }, /* 34 */
+ { -1, 0, printargs, "SYS_35" }, /* 35 */
+ { 0, 0, sys_sync, "sync" }, /* 36 */
+ { 2, TS, sys_kill, "kill" }, /* 37 */
+ { 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, 0, sys_times, "times" }, /* 43 */
+ { -1, 0, printargs, "SYS_44" }, /* 44 */
+ { 1, 0, sys_brk, "brk" }, /* 45 */
+ { -1, 0, printargs, "SYS_46" }, /* 46 */
+ { -1, 0, printargs, "SYS_47" }, /* 47 */
+ { 3, TS, sys_signal, "signal" }, /* 48 */
+ { -1, 0, printargs, "SYS_49" }, /* 49 */
+ { -1, 0, printargs, "SYS_50" }, /* 50 */
+ { 1, TF, sys_acct, "acct" }, /* 51 */
+ { 2, TF, sys_umount2, "umount" }, /* 52 */
+ { -1, 0, printargs, "SYS_53" }, /* 53 */
+ { 3, 0, sys_ioctl, "ioctl" }, /* 54 */
+ { 3, 0, sys_fcntl, "fcntl" }, /* 55 */
+ { -1, 0, printargs, "SYS_56" }, /* 56 */
+ { 2, 0, sys_setpgid, "setpgid" }, /* 57 */
+ { -1, 0, printargs, "SYS_58" }, /* 58 */
+ { -1, 0, printargs, "SYS_59" }, /* 59 */
+ { 1, 0, sys_umask, "umask" }, /* 60 */
+ { 1, TF, sys_chroot, "chroot" }, /* 61 */
+ { 2, 0, sys_ustat, "ustat" }, /* 62 */
+ { 2, 0, sys_dup2, "dup2" }, /* 63 */
+ { 0, 0, sys_getppid, "getppid" }, /* 64 */
+ { 0, 0, sys_getpgrp, "getpgrp" }, /* 65 */
+ { 0, 0, sys_setsid, "setsid" }, /* 66 */
+ { 3, TS, sys_sigaction, "sigaction" }, /* 67 */
+ { -1, 0, printargs, "SYS_68" }, /* 68 */
+ { -1, 0, printargs, "SYS_69" }, /* 69 */
+ { -1, 0, printargs, "SYS_70" }, /* 70 */
+ { -1, 0, printargs, "SYS_71" }, /* 71 */
+ { 3, TS, sys_sigsuspend, "sigsuspend" }, /* 72 */
+ { 1, TS, sys_sigpending, "sigpending" }, /* 73 */
+ { 2, 0, sys_sethostname, "sethostname" }, /* 74 */
+ { 2, 0, sys_setrlimit, "setrlimit" }, /* 75 */
+ { 2, 0, sys_getrlimit, "getrlimit" }, /* 76 */
+ { 2, 0, sys_getrusage, "getrusage" }, /* 77 */
+ { 2, 0, sys_gettimeofday, "gettimeofday" }, /* 78 */
+ { 2, 0, sys_settimeofday, "settimeofday" }, /* 79 */
+ { -1, 0, printargs, "SYS_80" }, /* 80 */
+ { -1, 0, printargs, "SYS_81" }, /* 81 */
+ { -1, 0, printargs, "SYS_82" }, /* 82 */
+ { 2, TF, sys_symlink, "symlink" }, /* 83 */
+ { -1, 0, printargs, "SYS_84" }, /* 84 */
+ { 3, TF, sys_readlink, "readlink" }, /* 85 */
+ { 1, TF, sys_uselib, "uselib" }, /* 86 */
+ { 1, TF, sys_swapon, "swapon" }, /* 87 */
+ { 3, 0, sys_reboot, "reboot" }, /* 88 */
+ { -1, 0, printargs, "SYS_89" }, /* 89 */
+ { 6, 0, sys_old_mmap, "mmap" }, /* 90 */
+ { 2, 0, sys_munmap, "munmap" }, /* 91 */
+ { 2, TF, sys_truncate, "truncate" }, /* 92 */
+ { 2, 0, sys_ftruncate, "ftruncate" }, /* 93 */
+ { 2, 0, sys_fchmod, "fchmod" }, /* 94 */
+ { -1, 0, printargs, "SYS_95" }, /* 95 */
+ { 2, 0, sys_getpriority, "getpriority" }, /* 96 */
+ { 3, 0, sys_setpriority, "setpriority" }, /* 97 */
+ { -1, 0, printargs, "SYS_98" }, /* 98 */
+ { 2, TF, sys_statfs, "statfs" }, /* 99 */
+ { 2, 0, sys_fstatfs, "fstatfs" }, /* 100 */
+ { -1, 0, printargs, "SYS_101" }, /* 101 */
+ { 2, 0, 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 */
+ { -1, 0, printargs, "SYS_109" }, /* 109 */
+ { -1, 0, printargs, "SYS_110" }, /* 110 */
+ { 0, 0, sys_vhangup, "vhangup" }, /* 111 */
+ { 0, 0, sys_idle, "idle" }, /* 112 */
+ { -1, 0, printargs, "SYS_113" }, /* 113 */
+ { 4, TP, sys_wait4, "wait4" }, /* 114 */
+ { 1, 0, sys_swapoff, "swapoff" }, /* 115 */
+ { 1, 0, sys_sysinfo, "sysinfo" }, /* 116 */
+ { 5, 0, sys_ipc, "ipc" }, /* 117 */
+ { 1, 0, sys_fsync, "fsync" }, /* 118 */
+ { 1, TS, sys_sigreturn, "sigreturn" }, /* 119 */
+ { 5, TP, sys_clone, "clone" }, /* 120 */
+ { 2, 0, sys_setdomainname, "setdomainname" }, /* 121 */
+ { 1, 0, sys_uname, "uname" }, /* 122 */
+ { -1, 0, printargs, "SYS_123" }, /* 123 */
+ { 1, 0, sys_adjtimex, "adjtimex" }, /* 124 */
+ { 3, 0, sys_mprotect, "mprotect" }, /* 125 */
+ { 3, TS, sys_sigprocmask, "sigprocmask" }, /* 126 */
+ { 2, 0, sys_create_module, "create_module" }, /* 127 */
+ { 2, 0, sys_init_module, "init_module" }, /* 128 */
+ { 1, 0, sys_delete_module, "delete_module" }, /* 129 */
+ { 1, 0, sys_get_kernel_syms, "get_kernel_syms"}, /* 130 */
+ { 4, 0, sys_quotactl, "quotactl" }, /* 131 */
+ { 1, 0, sys_getpgid, "getpgid" }, /* 132 */
+ { 1, 0, 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, 0, printargs, "SYS_138" }, /* 138 */
+ { -1, 0, printargs, "SYS_139" }, /* 139 */
+ { -1, 0, printargs, "SYS_140" }, /* 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 */
+ { 1, 0, sys_getsid, "getsid" }, /* 147 */
+ { 1, 0, sys_fdatasync, "fdatasync" }, /* 148 */
+ { 1, 0, sys_sysctl, "_sysctl" }, /* 149 */
+ { 2, 0, sys_mlock, "mlock" }, /* 150 */
+ { 2, 0, sys_munlock, "munlock" }, /* 151 */
+ { 2, 0, sys_mlockall, "mlockall" }, /* 152 */
+ { 0, 0, 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 */
+ { 1, 0, sys_sched_getscheduler, "sched_getscheduler"}, /* 157 */
+ { 0, 0, sys_sched_yield, "sched_yield"}, /* 158 */
+ { 1, 0, sys_sched_get_priority_max,"sched_get_priority_max"}, /* 159 */
+ { 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 */
+ { 4, 0, sys_mremap, "mremap" }, /* 163 */
+ { -1, 0, printargs, "SYS_164" }, /* 164 */
+ { -1, 0, printargs, "SYS_165" }, /* 165 */
+ { -1, 0, printargs, "SYS_166" }, /* 166 */
+ { 5, 0, sys_query_module, "query_module" }, /* 167 */
+ { 3, 0, sys_poll, "poll" }, /* 168 */
+ { 3, 0, printargs, "nfsservctl" }, /* 169 */
+ { -1, 0, printargs, "SYS_170" }, /* 170 */
+ { -1, 0, printargs, "SYS_171" }, /* 171 */
+ { 5, 0, printargs, "prctl" }, /* 172 */
+ { 1, TS, sys_sigreturn, "rt_sigreturn" }, /* 173 */
+ { 4, TS, sys_rt_sigaction, "rt_sigaction" }, /* 174 */
+ { 4, TS, sys_rt_sigprocmask, "rt_sigprocmask"}, /* 175 */
+ { 2, TS, sys_rt_sigpending, "rt_sigpending" }, /* 176 */
+ { 4, TS, sys_rt_sigtimedwait, "rt_sigtimedwait"}, /* 177 */
+ { 3, TS, sys_rt_sigqueueinfo, "rt_sigqueueinfo"}, /* 178 */
+ { 2, TS, sys_rt_sigsuspend, "rt_sigsuspend" }, /* 179 */
+ { 5, TF, sys_pread, "pread" }, /* 180 */
+ { 5, TF, sys_pwrite, "pwrite" }, /* 181 */
+ { -1, 0, printargs, "SYS_182" }, /* 182 */
+ { 2, TF, sys_getcwd, "getcwd" }, /* 183 */
+ { 2, 0, sys_capget, "capget" }, /* 184 */
+ { 2, 0, sys_capset, "capset" }, /* 185 */
+ { 2, TS, sys_sigaltstack, "sigaltstack" }, /* 186 */
+ { 4, TF, sys_sendfile, "sendfile" }, /* 187 */
+ { 5, 0, sys_getpmsg, "getpmsg" }, /* 188 */
+ { 5, 0, sys_putpmsg, "putpmsg" }, /* 189 */
+ { 0, TP, sys_vfork, "vfork" }, /* 190 */
+ { 2, 0, sys_getrlimit, "getrlimit" }, /* 191 */
+ { -1, 0, printargs, "SYS_192" }, /* 192 */
+ { -1, 0, printargs, "SYS_193" }, /* 193 */
+ { -1, 0, printargs, "SYS_194" }, /* 194 */
+ { -1, 0, printargs, "SYS_195" }, /* 195 */
+ { -1, 0, printargs, "SYS_196" }, /* 196 */
+ { -1, 0, printargs, "SYS_197" }, /* 197 */
+ { 3, TF, sys_chown, "lchown" }, /* 198 */
+ { 0, 0, sys_getuid, "getuid" }, /* 199 */
+ { 0, 0, sys_getgid, "getgid" }, /* 200 */
+ { 0, 0, sys_geteuid, "geteuid" }, /* 201 */
+ { 0, 0, sys_getegid, "getegid" }, /* 202 */
+ { 2, 0, sys_setreuid, "setreuid" }, /* 203 */
+ { 2, 0, sys_setregid, "setregid" }, /* 204 */
+ { 2, 0, sys_getgroups, "getgroups" }, /* 205 */
+ { 2, 0, sys_setgroups, "setgroups" }, /* 206 */
+ { 3, 0, sys_fchown, "fchown" }, /* 207 */
+ { 3, 0, sys_setresuid, "setresuid" }, /* 208 */
+ { 3, 0, sys_getresuid, "getresuid" }, /* 209 */
+ { 3, 0, sys_setresgid, "setresgid" }, /* 210 */
+ { 3, 0, sys_getresgid, "getresgid" }, /* 211 */
+ { 3, TF, sys_chown, "chown" }, /* 212 */
+ { 1, 0, sys_setuid, "setuid" }, /* 213 */
+ { 1, 0, sys_setgid, "setgid" }, /* 214 */
+ { 1, 0, sys_setfsuid, "setfsuid" }, /* 215 */
+ { 1, 0, sys_setfsgid, "setfsgid" }, /* 216 */
+ { 2, TF, sys_pivotroot, "pivot_root" }, /* 217 */
+ { 3, 0, sys_mincore, "mincore" }, /* 218 */
+ { 3, 0, sys_madvise, "madvise" }, /* 219 */
+ { 3, 0, sys_getdents64, "getdents64" }, /* 220 */
+ { -1, 0, printargs, "SYS_221" }, /* 221 */
+ { 4, 0, sys_readahead, "readahead" }, /* 222 */
+ { 4, TF, sys_sendfile64, "sendfile64" }, /* 223 */
+ { 5, TF, sys_setxattr, "setxattr" }, /* 224 */
+ { 5, TF, sys_setxattr, "lsetxattr" }, /* 225 */
+ { 5, 0, sys_fsetxattr, "fsetxattr" }, /* 226 */
+ { 4, TF, sys_getxattr, "getxattr" }, /* 227 */
+ { 4, TF, sys_getxattr, "lgetxattr" }, /* 228 */
+ { 4, 0, sys_fgetxattr, "fgetxattr" }, /* 229 */
+ { 3, TF, sys_listxattr, "listxattr" }, /* 230 */
+ { 3, TF, sys_listxattr, "llistxattr" }, /* 231 */
+ { 3, 0, sys_flistxattr, "flistxattr" }, /* 232 */
+ { 2, TF, sys_removexattr, "removexattr" }, /* 233 */
+ { 2, TF, sys_removexattr, "lremovexattr" }, /* 234 */
+ { 2, 0, sys_fremovexattr, "fremovexattr" }, /* 235 */
+ { 0, 0, printargs, "gettid" }, /* 236 */
+ { 2, TS, sys_kill, "tkill" }, /* 237 */
+ { 5, 0, sys_futex, "futex" }, /* 238 */
+ { 3, 0, sys_sched_setaffinity, "sched_setaffinity" },/* 239 */
+ { 3, 0, sys_sched_getaffinity, "sched_getaffinity" },/* 240 */
+ { -1, 0, printargs, "SYS_241" }, /* 241 */
+ { -1, 0, printargs, "SYS_242" }, /* 242 */
+ { 2, 0, sys_io_setup, "io_setup" }, /* 243 */
+ { 1, 0, sys_io_destroy, "io_destroy" }, /* 244 */
+ { 5, 0, sys_io_getevents, "io_getevents" }, /* 245 */
+ { 3, 0, sys_io_submit, "io_submit" }, /* 246 */
+ { 3, 0, sys_io_cancel, "io_cancel" }, /* 247 */
+ { 1, TP, sys_exit, "exit_group" }, /* 248 */
+ { 1, 0, sys_epoll_create, "epoll_create" }, /* 249 */
+ { 4, 0, sys_epoll_ctl, "epoll_ctl" }, /* 250 */
+ { 4, 0, sys_epoll_wait, "epoll_wait" }, /* 251 */
+ { 1, 0, printargs, "set_tid_address"}, /* 252 */
+ { 5, 0, printargs, "fadvise64" }, /* 253 */
+ { 3, 0, sys_timer_create, "timer_create" }, /* 254 */
+ { 4, 0, sys_timer_settime, "timer_settime" }, /* 255 */
+ { 2, 0, sys_timer_gettime, "timer_gettime" }, /* 256 */
+ { 1, 0, sys_timer_getoverrun, "timer_getoverrun"}, /* 257 */
+ { 1, 0, sys_timer_delete, "timer_delete" }, /* 258 */
+ { 2, 0, sys_clock_settime, "clock_settime" }, /* 259 */
+ { 2, 0, sys_clock_gettime, "clock_gettime" }, /* 260 */
+ { 2, 0, sys_clock_getres, "clock_getres" }, /* 261 */
+ { 4, 0, sys_clock_nanosleep, "clock_nanosleep"}, /* 262 */
+
+ { 5, 0, printargs, "SYS_263" }, /* 263 */
+ { 5, 0, printargs, "SYS_264" }, /* 264 */
+ { 5, 0, printargs, "SYS_265" }, /* 265 */
+ { 5, 0, printargs, "SYS_266" }, /* 266 */
+ { 5, 0, printargs, "SYS_267" }, /* 267 */
+ { 5, 0, printargs, "SYS_268" }, /* 268 */
+ { 5, 0, printargs, "SYS_269" }, /* 269 */
+ { 5, 0, printargs, "SYS_270" }, /* 270 */
+ { 5, 0, printargs, "SYS_271" }, /* 271 */
+ { 5, 0, printargs, "SYS_272" }, /* 272 */
+ { 5, 0, printargs, "SYS_273" }, /* 273 */
+ { 5, 0, printargs, "SYS_274" }, /* 274 */
+ { 5, 0, printargs, "SYS_275" }, /* 275 */
+ { 5, 0, printargs, "SYS_276" }, /* 276 */
+ { 5, 0, printargs, "SYS_277" }, /* 277 */
+ { 5, 0, printargs, "SYS_278" }, /* 278 */
+ { 5, 0, printargs, "SYS_279" }, /* 279 */
+ { 5, 0, printargs, "SYS_280" }, /* 280 */
+ { 5, 0, printargs, "SYS_281" }, /* 281 */
+ { 5, 0, printargs, "SYS_282" }, /* 282 */
+ { 5, 0, printargs, "SYS_283" }, /* 283 */
+ { 5, 0, printargs, "SYS_284" }, /* 284 */
+ { 5, 0, printargs, "SYS_285" }, /* 285 */
+ { 5, 0, printargs, "SYS_286" }, /* 286 */
+ { 5, 0, printargs, "SYS_287" }, /* 287 */
+ { 5, 0, printargs, "SYS_288" }, /* 288 */
+ { 5, 0, printargs, "SYS_289" }, /* 289 */
+ { 5, 0, printargs, "SYS_290" }, /* 290 */
+ { 5, 0, printargs, "SYS_291" }, /* 291 */
+ { 5, 0, printargs, "SYS_292" }, /* 292 */
+ { 5, 0, printargs, "SYS_293" }, /* 293 */
+ { 5, 0, printargs, "SYS_294" }, /* 294 */
+ { 5, 0, printargs, "SYS_295" }, /* 295 */
+ { 5, 0, printargs, "SYS_296" }, /* 296 */
+ { 5, 0, printargs, "SYS_297" }, /* 297 */
+ { 5, 0, printargs, "SYS_298" }, /* 298 */
+ { 5, 0, printargs, "SYS_299" }, /* 299 */
+
+#if SYS_socket_subcall != 300
+ #error fix me
+#endif
+ { 8, 0, printargs, "socket_subcall"}, /* 300 */
+ { 3, TN, sys_socket, "socket" }, /* 301 */
+ { 3, TN, sys_bind, "bind" }, /* 302 */
+ { 3, TN, sys_connect, "connect" }, /* 303 */
+ { 2, TN, sys_listen, "listen" }, /* 304 */
+ { 3, TN, sys_accept, "accept" }, /* 305 */
+ { 3, TN, sys_getsockname, "getsockname" }, /* 306 */
+ { 3, TN, sys_getpeername, "getpeername" }, /* 307 */
+ { 4, TN, sys_socketpair, "socketpair" }, /* 308 */
+ { 4, TN, sys_send, "send" }, /* 309 */
+ { 4, TN, sys_recv, "recv" }, /* 310 */
+ { 6, TN, sys_sendto, "sendto" }, /* 311 */
+ { 6, TN, sys_recvfrom, "recvfrom" }, /* 312 */
+ { 2, TN, sys_shutdown, "shutdown" }, /* 313 */
+ { 5, TN, sys_setsockopt, "setsockopt" }, /* 314 */
+ { 5, TN, sys_getsockopt, "getsockopt" }, /* 315 */
+ { 5, TN, sys_sendmsg, "sendmsg" }, /* 316 */
+ { 5, TN, sys_recvmsg, "recvmsg" }, /* 317 */
+
+#if SYS_ipc_subcall != 318
+ #error fix me
+#endif
+ { 4, 0, printargs, "ipc_subcall" }, /* 318 */
+ { 4, TI, sys_semop, "semop" }, /* 319 */
+ { 4, TI, sys_semget, "semget" }, /* 320 */
+ { 4, TI, sys_semctl, "semctl" }, /* 321 */
+ { 5, TI, sys_semtimedop, "semtimedop" }, /* 322 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 323 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 324 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 325 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 326 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 327 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 328 */
+ { 4, TI, sys_msgsnd, "msgsnd" }, /* 329 */
+ { 4, TI, sys_msgrcv, "msgrcv" }, /* 330 */
+ { 4, TI, sys_msgget, "msgget" }, /* 331 */
+ { 4, TI, sys_msgctl, "msgctl" }, /* 332 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 333 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 334 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 335 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 336 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 337 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 338 */
+ { 4, TI, sys_shmat, "shmat" }, /* 339 */
+ { 4, TI, sys_shmdt, "shmdt" }, /* 340 */
+ { 4, TI, sys_shmget, "shmget" }, /* 341 */
+ { 4, TI, sys_shmctl, "shmctl" }, /* 342 */
diff --git a/strace/linux/sh/errnoent.h b/strace/linux/sh/errnoent.h
new file mode 100644
index 0000000..68b2adc
--- /dev/null
+++ b/strace/linux/sh/errnoent.h
@@ -0,0 +1,529 @@
+ "ERRNO_0", /* 0 */
+ "EPERM", /* 1 */
+ "ENOENT", /* 2 */
+ "ESRCH", /* 3 */
+ "EINTR", /* 4 */
+ "EIO", /* 5 */
+ "ENXIO", /* 6 */
+ "E2BIG", /* 7 */
+ "ENOEXEC", /* 8 */
+ "EBADF", /* 9 */
+ "ECHILD", /* 10 */
+ "EAGAIN", /* 11 */
+ "ENOMEM", /* 12 */
+ "EACCES", /* 13 */
+ "EFAULT", /* 14 */
+ "ENOTBLK", /* 15 */
+ "EBUSY", /* 16 */
+ "EEXIST", /* 17 */
+ "EXDEV", /* 18 */
+ "ENODEV", /* 19 */
+ "ENOTDIR", /* 20 */
+ "EISDIR", /* 21 */
+ "EINVAL", /* 22 */
+ "ENFILE", /* 23 */
+ "EMFILE", /* 24 */
+ "ENOTTY", /* 25 */
+ "ETXTBSY", /* 26 */
+ "EFBIG", /* 27 */
+ "ENOSPC", /* 28 */
+ "ESPIPE", /* 29 */
+ "EROFS", /* 30 */
+ "EMLINK", /* 31 */
+ "EPIPE", /* 32 */
+ "EDOM", /* 33 */
+ "ERANGE", /* 34 */
+ "EDEADLK", /* 35 */
+ "ENAMETOOLONG", /* 36 */
+ "ENOLCK", /* 37 */
+ "ENOSYS", /* 38 */
+ "ENOTEMPTY", /* 39 */
+ "ELOOP", /* 40 */
+ "ERRNO_41", /* 41 */
+ "ENOMSG", /* 42 */
+ "EIDRM", /* 43 */
+ "ECHRNG", /* 44 */
+ "EL2NSYNC", /* 45 */
+ "EL3HLT", /* 46 */
+ "EL3RST", /* 47 */
+ "ELNRNG", /* 48 */
+ "EUNATCH", /* 49 */
+ "ENOCSI", /* 50 */
+ "EL2HLT", /* 51 */
+ "EBADE", /* 52 */
+ "EBADR", /* 53 */
+ "EXFULL", /* 54 */
+ "ENOANO", /* 55 */
+ "EBADRQC", /* 56 */
+ "EBADSLT", /* 57 */
+ "ERRNO_58", /* 58 */
+ "EBFONT", /* 59 */
+ "ENOSTR", /* 60 */
+ "ENODATA", /* 61 */
+ "ETIME", /* 62 */
+ "ENOSR", /* 63 */
+ "ENONET", /* 64 */
+ "ENOPKG", /* 65 */
+ "EREMOTE", /* 66 */
+ "ENOLINK", /* 67 */
+ "EADV", /* 68 */
+ "ESRMNT", /* 69 */
+ "ECOMM", /* 70 */
+ "EPROTO", /* 71 */
+ "EMULTIHOP", /* 72 */
+ "EDOTDOT", /* 73 */
+ "EBADMSG", /* 74 */
+ "EOVERFLOW", /* 75 */
+ "ENOTUNIQ", /* 76 */
+ "EBADFD", /* 77 */
+ "EREMCHG", /* 78 */
+ "ELIBACC", /* 79 */
+ "ELIBBAD", /* 80 */
+ "ELIBSCN", /* 81 */
+ "ELIBMAX", /* 82 */
+ "ELIBEXEC", /* 83 */
+ "EILSEQ", /* 84 */
+ "ERESTART", /* 85 */
+ "ESTRPIPE", /* 86 */
+ "EUSERS", /* 87 */
+ "ENOTSOCK", /* 88 */
+ "EDESTADDRREQ", /* 89 */
+ "EMSGSIZE", /* 90 */
+ "EPROTOTYPE", /* 91 */
+ "ENOPROTOOPT", /* 92 */
+ "EPROTONOSUPPORT", /* 93 */
+ "ESOCKTNOSUPPORT", /* 94 */
+ "EOPNOTSUPP", /* 95 */
+ "EPFNOSUPPORT", /* 96 */
+ "EAFNOSUPPORT", /* 97 */
+ "EADDRINUSE", /* 98 */
+ "EADDRNOTAVAIL", /* 99 */
+ "ENETDOWN", /* 100 */
+ "ENETUNREACH", /* 101 */
+ "ENETRESET", /* 102 */
+ "ECONNABORTED", /* 103 */
+ "ECONNRESET", /* 104 */
+ "ENOBUFS", /* 105 */
+ "EISCONN", /* 106 */
+ "ENOTCONN", /* 107 */
+ "ESHUTDOWN", /* 108 */
+ "ETOOMANYREFS", /* 109 */
+ "ETIMEDOUT", /* 110 */
+ "ECONNREFUSED", /* 111 */
+ "EHOSTDOWN", /* 112 */
+ "EHOSTUNREACH", /* 113 */
+ "EALREADY", /* 114 */
+ "EINPROGRESS", /* 115 */
+ "ESTALE", /* 116 */
+ "EUCLEAN", /* 117 */
+ "ENOTNAM", /* 118 */
+ "ENAVAIL", /* 119 */
+ "EISNAM", /* 120 */
+ "EREMOTEIO", /* 121 */
+ "EDQUOT", /* 122 */
+ "ENOMEDIUM", /* 123 */
+ "EMEDIUMTYPE", /* 124 */
+ "ERRNO_125", /* 125 */
+ "ERRNO_126", /* 126 */
+ "ERRNO_127", /* 127 */
+ "ERRNO_128", /* 128 */
+ "ERRNO_129", /* 129 */
+ "ERRNO_130", /* 130 */
+ "ERRNO_131", /* 131 */
+ "ERRNO_132", /* 132 */
+ "ERRNO_133", /* 133 */
+ "ERRNO_134", /* 134 */
+ "ERRNO_135", /* 135 */
+ "ERRNO_136", /* 136 */
+ "ERRNO_137", /* 137 */
+ "ERRNO_138", /* 138 */
+ "ERRNO_139", /* 139 */
+ "ERRNO_140", /* 140 */
+ "ERRNO_141", /* 141 */
+ "ERRNO_142", /* 142 */
+ "ERRNO_143", /* 143 */
+ "ERRNO_144", /* 144 */
+ "ERRNO_145", /* 145 */
+ "ERRNO_146", /* 146 */
+ "ERRNO_147", /* 147 */
+ "ERRNO_148", /* 148 */
+ "ERRNO_149", /* 149 */
+ "ERRNO_150", /* 150 */
+ "ERRNO_151", /* 151 */
+ "ERRNO_152", /* 152 */
+ "ERRNO_153", /* 153 */
+ "ERRNO_154", /* 154 */
+ "ERRNO_155", /* 155 */
+ "ERRNO_156", /* 156 */
+ "ERRNO_157", /* 157 */
+ "ERRNO_158", /* 158 */
+ "ERRNO_159", /* 159 */
+ "ERRNO_160", /* 160 */
+ "ERRNO_161", /* 161 */
+ "ERRNO_162", /* 162 */
+ "ERRNO_163", /* 163 */
+ "ERRNO_164", /* 164 */
+ "ERRNO_165", /* 165 */
+ "ERRNO_166", /* 166 */
+ "ERRNO_167", /* 167 */
+ "ERRNO_168", /* 168 */
+ "ERRNO_169", /* 169 */
+ "ERRNO_170", /* 170 */
+ "ERRNO_171", /* 171 */
+ "ERRNO_172", /* 172 */
+ "ERRNO_173", /* 173 */
+ "ERRNO_174", /* 174 */
+ "ERRNO_175", /* 175 */
+ "ERRNO_176", /* 176 */
+ "ERRNO_177", /* 177 */
+ "ERRNO_178", /* 178 */
+ "ERRNO_179", /* 179 */
+ "ERRNO_180", /* 180 */
+ "ERRNO_181", /* 181 */
+ "ERRNO_182", /* 182 */
+ "ERRNO_183", /* 183 */
+ "ERRNO_184", /* 184 */
+ "ERRNO_185", /* 185 */
+ "ERRNO_186", /* 186 */
+ "ERRNO_187", /* 187 */
+ "ERRNO_188", /* 188 */
+ "ERRNO_189", /* 189 */
+ "ERRNO_190", /* 190 */
+ "ERRNO_191", /* 191 */
+ "ERRNO_192", /* 192 */
+ "ERRNO_193", /* 193 */
+ "ERRNO_194", /* 194 */
+ "ERRNO_195", /* 195 */
+ "ERRNO_196", /* 196 */
+ "ERRNO_197", /* 197 */
+ "ERRNO_198", /* 198 */
+ "ERRNO_199", /* 199 */
+ "ERRNO_200", /* 200 */
+ "ERRNO_201", /* 201 */
+ "ERRNO_202", /* 202 */
+ "ERRNO_203", /* 203 */
+ "ERRNO_204", /* 204 */
+ "ERRNO_205", /* 205 */
+ "ERRNO_206", /* 206 */
+ "ERRNO_207", /* 207 */
+ "ERRNO_208", /* 208 */
+ "ERRNO_209", /* 209 */
+ "ERRNO_210", /* 210 */
+ "ERRNO_211", /* 211 */
+ "ERRNO_212", /* 212 */
+ "ERRNO_213", /* 213 */
+ "ERRNO_214", /* 214 */
+ "ERRNO_215", /* 215 */
+ "ERRNO_216", /* 216 */
+ "ERRNO_217", /* 217 */
+ "ERRNO_218", /* 218 */
+ "ERRNO_219", /* 219 */
+ "ERRNO_220", /* 220 */
+ "ERRNO_221", /* 221 */
+ "ERRNO_222", /* 222 */
+ "ERRNO_223", /* 223 */
+ "ERRNO_224", /* 224 */
+ "ERRNO_225", /* 225 */
+ "ERRNO_226", /* 226 */
+ "ERRNO_227", /* 227 */
+ "ERRNO_228", /* 228 */
+ "ERRNO_229", /* 229 */
+ "ERRNO_230", /* 230 */
+ "ERRNO_231", /* 231 */
+ "ERRNO_232", /* 232 */
+ "ERRNO_233", /* 233 */
+ "ERRNO_234", /* 234 */
+ "ERRNO_235", /* 235 */
+ "ERRNO_236", /* 236 */
+ "ERRNO_237", /* 237 */
+ "ERRNO_238", /* 238 */
+ "ERRNO_239", /* 239 */
+ "ERRNO_240", /* 240 */
+ "ERRNO_241", /* 241 */
+ "ERRNO_242", /* 242 */
+ "ERRNO_243", /* 243 */
+ "ERRNO_244", /* 244 */
+ "ERRNO_245", /* 245 */
+ "ERRNO_246", /* 246 */
+ "ERRNO_247", /* 247 */
+ "ERRNO_248", /* 248 */
+ "ERRNO_249", /* 249 */
+ "ERRNO_250", /* 250 */
+ "ERRNO_251", /* 251 */
+ "ERRNO_252", /* 252 */
+ "ERRNO_253", /* 253 */
+ "ERRNO_254", /* 254 */
+ "ERRNO_255", /* 255 */
+ "ERRNO_256", /* 256 */
+ "ERRNO_257", /* 257 */
+ "ERRNO_258", /* 258 */
+ "ERRNO_259", /* 259 */
+ "ERRNO_260", /* 260 */
+ "ERRNO_261", /* 261 */
+ "ERRNO_262", /* 262 */
+ "ERRNO_263", /* 263 */
+ "ERRNO_264", /* 264 */
+ "ERRNO_265", /* 265 */
+ "ERRNO_266", /* 266 */
+ "ERRNO_267", /* 267 */
+ "ERRNO_268", /* 268 */
+ "ERRNO_269", /* 269 */
+ "ERRNO_270", /* 270 */
+ "ERRNO_271", /* 271 */
+ "ERRNO_272", /* 272 */
+ "ERRNO_273", /* 273 */
+ "ERRNO_274", /* 274 */
+ "ERRNO_275", /* 275 */
+ "ERRNO_276", /* 276 */
+ "ERRNO_277", /* 277 */
+ "ERRNO_278", /* 278 */
+ "ERRNO_279", /* 279 */
+ "ERRNO_280", /* 280 */
+ "ERRNO_281", /* 281 */
+ "ERRNO_282", /* 282 */
+ "ERRNO_283", /* 283 */
+ "ERRNO_284", /* 284 */
+ "ERRNO_285", /* 285 */
+ "ERRNO_286", /* 286 */
+ "ERRNO_287", /* 287 */
+ "ERRNO_288", /* 288 */
+ "ERRNO_289", /* 289 */
+ "ERRNO_290", /* 290 */
+ "ERRNO_291", /* 291 */
+ "ERRNO_292", /* 292 */
+ "ERRNO_293", /* 293 */
+ "ERRNO_294", /* 294 */
+ "ERRNO_295", /* 295 */
+ "ERRNO_296", /* 296 */
+ "ERRNO_297", /* 297 */
+ "ERRNO_298", /* 298 */
+ "ERRNO_299", /* 299 */
+ "ERRNO_300", /* 300 */
+ "ERRNO_301", /* 301 */
+ "ERRNO_302", /* 302 */
+ "ERRNO_303", /* 303 */
+ "ERRNO_304", /* 304 */
+ "ERRNO_305", /* 305 */
+ "ERRNO_306", /* 306 */
+ "ERRNO_307", /* 307 */
+ "ERRNO_308", /* 308 */
+ "ERRNO_309", /* 309 */
+ "ERRNO_310", /* 310 */
+ "ERRNO_311", /* 311 */
+ "ERRNO_312", /* 312 */
+ "ERRNO_313", /* 313 */
+ "ERRNO_314", /* 314 */
+ "ERRNO_315", /* 315 */
+ "ERRNO_316", /* 316 */
+ "ERRNO_317", /* 317 */
+ "ERRNO_318", /* 318 */
+ "ERRNO_319", /* 319 */
+ "ERRNO_320", /* 320 */
+ "ERRNO_321", /* 321 */
+ "ERRNO_322", /* 322 */
+ "ERRNO_323", /* 323 */
+ "ERRNO_324", /* 324 */
+ "ERRNO_325", /* 325 */
+ "ERRNO_326", /* 326 */
+ "ERRNO_327", /* 327 */
+ "ERRNO_328", /* 328 */
+ "ERRNO_329", /* 329 */
+ "ERRNO_330", /* 330 */
+ "ERRNO_331", /* 331 */
+ "ERRNO_332", /* 332 */
+ "ERRNO_333", /* 333 */
+ "ERRNO_334", /* 334 */
+ "ERRNO_335", /* 335 */
+ "ERRNO_336", /* 336 */
+ "ERRNO_337", /* 337 */
+ "ERRNO_338", /* 338 */
+ "ERRNO_339", /* 339 */
+ "ERRNO_340", /* 340 */
+ "ERRNO_341", /* 341 */
+ "ERRNO_342", /* 342 */
+ "ERRNO_343", /* 343 */
+ "ERRNO_344", /* 344 */
+ "ERRNO_345", /* 345 */
+ "ERRNO_346", /* 346 */
+ "ERRNO_347", /* 347 */
+ "ERRNO_348", /* 348 */
+ "ERRNO_349", /* 349 */
+ "ERRNO_350", /* 350 */
+ "ERRNO_351", /* 351 */
+ "ERRNO_352", /* 352 */
+ "ERRNO_353", /* 353 */
+ "ERRNO_354", /* 354 */
+ "ERRNO_355", /* 355 */
+ "ERRNO_356", /* 356 */
+ "ERRNO_357", /* 357 */
+ "ERRNO_358", /* 358 */
+ "ERRNO_359", /* 359 */
+ "ERRNO_360", /* 360 */
+ "ERRNO_361", /* 361 */
+ "ERRNO_362", /* 362 */
+ "ERRNO_363", /* 363 */
+ "ERRNO_364", /* 364 */
+ "ERRNO_365", /* 365 */
+ "ERRNO_366", /* 366 */
+ "ERRNO_367", /* 367 */
+ "ERRNO_368", /* 368 */
+ "ERRNO_369", /* 369 */
+ "ERRNO_370", /* 370 */
+ "ERRNO_371", /* 371 */
+ "ERRNO_372", /* 372 */
+ "ERRNO_373", /* 373 */
+ "ERRNO_374", /* 374 */
+ "ERRNO_375", /* 375 */
+ "ERRNO_376", /* 376 */
+ "ERRNO_377", /* 377 */
+ "ERRNO_378", /* 378 */
+ "ERRNO_379", /* 379 */
+ "ERRNO_380", /* 380 */
+ "ERRNO_381", /* 381 */
+ "ERRNO_382", /* 382 */
+ "ERRNO_383", /* 383 */
+ "ERRNO_384", /* 384 */
+ "ERRNO_385", /* 385 */
+ "ERRNO_386", /* 386 */
+ "ERRNO_387", /* 387 */
+ "ERRNO_388", /* 388 */
+ "ERRNO_389", /* 389 */
+ "ERRNO_390", /* 390 */
+ "ERRNO_391", /* 391 */
+ "ERRNO_392", /* 392 */
+ "ERRNO_393", /* 393 */
+ "ERRNO_394", /* 394 */
+ "ERRNO_395", /* 395 */
+ "ERRNO_396", /* 396 */
+ "ERRNO_397", /* 397 */
+ "ERRNO_398", /* 398 */
+ "ERRNO_399", /* 399 */
+ "ERRNO_400", /* 400 */
+ "ERRNO_401", /* 401 */
+ "ERRNO_402", /* 402 */
+ "ERRNO_403", /* 403 */
+ "ERRNO_404", /* 404 */
+ "ERRNO_405", /* 405 */
+ "ERRNO_406", /* 406 */
+ "ERRNO_407", /* 407 */
+ "ERRNO_408", /* 408 */
+ "ERRNO_409", /* 409 */
+ "ERRNO_410", /* 410 */
+ "ERRNO_411", /* 411 */
+ "ERRNO_412", /* 412 */
+ "ERRNO_413", /* 413 */
+ "ERRNO_414", /* 414 */
+ "ERRNO_415", /* 415 */
+ "ERRNO_416", /* 416 */
+ "ERRNO_417", /* 417 */
+ "ERRNO_418", /* 418 */
+ "ERRNO_419", /* 419 */
+ "ERRNO_420", /* 420 */
+ "ERRNO_421", /* 421 */
+ "ERRNO_422", /* 422 */
+ "ERRNO_423", /* 423 */
+ "ERRNO_424", /* 424 */
+ "ERRNO_425", /* 425 */
+ "ERRNO_426", /* 426 */
+ "ERRNO_427", /* 427 */
+ "ERRNO_428", /* 428 */
+ "ERRNO_429", /* 429 */
+ "ERRNO_430", /* 430 */
+ "ERRNO_431", /* 431 */
+ "ERRNO_432", /* 432 */
+ "ERRNO_433", /* 433 */
+ "ERRNO_434", /* 434 */
+ "ERRNO_435", /* 435 */
+ "ERRNO_436", /* 436 */
+ "ERRNO_437", /* 437 */
+ "ERRNO_438", /* 438 */
+ "ERRNO_439", /* 439 */
+ "ERRNO_440", /* 440 */
+ "ERRNO_441", /* 441 */
+ "ERRNO_442", /* 442 */
+ "ERRNO_443", /* 443 */
+ "ERRNO_444", /* 444 */
+ "ERRNO_445", /* 445 */
+ "ERRNO_446", /* 446 */
+ "ERRNO_447", /* 447 */
+ "ERRNO_448", /* 448 */
+ "ERRNO_449", /* 449 */
+ "ERRNO_450", /* 450 */
+ "ERRNO_451", /* 451 */
+ "ERRNO_452", /* 452 */
+ "ERRNO_453", /* 453 */
+ "ERRNO_454", /* 454 */
+ "ERRNO_455", /* 455 */
+ "ERRNO_456", /* 456 */
+ "ERRNO_457", /* 457 */
+ "ERRNO_458", /* 458 */
+ "ERRNO_459", /* 459 */
+ "ERRNO_460", /* 460 */
+ "ERRNO_461", /* 461 */
+ "ERRNO_462", /* 462 */
+ "ERRNO_463", /* 463 */
+ "ERRNO_464", /* 464 */
+ "ERRNO_465", /* 465 */
+ "ERRNO_466", /* 466 */
+ "ERRNO_467", /* 467 */
+ "ERRNO_468", /* 468 */
+ "ERRNO_469", /* 469 */
+ "ERRNO_470", /* 470 */
+ "ERRNO_471", /* 471 */
+ "ERRNO_472", /* 472 */
+ "ERRNO_473", /* 473 */
+ "ERRNO_474", /* 474 */
+ "ERRNO_475", /* 475 */
+ "ERRNO_476", /* 476 */
+ "ERRNO_477", /* 477 */
+ "ERRNO_478", /* 478 */
+ "ERRNO_479", /* 479 */
+ "ERRNO_480", /* 480 */
+ "ERRNO_481", /* 481 */
+ "ERRNO_482", /* 482 */
+ "ERRNO_483", /* 483 */
+ "ERRNO_484", /* 484 */
+ "ERRNO_485", /* 485 */
+ "ERRNO_486", /* 486 */
+ "ERRNO_487", /* 487 */
+ "ERRNO_488", /* 488 */
+ "ERRNO_489", /* 489 */
+ "ERRNO_490", /* 490 */
+ "ERRNO_491", /* 491 */
+ "ERRNO_492", /* 492 */
+ "ERRNO_493", /* 493 */
+ "ERRNO_494", /* 494 */
+ "ERRNO_495", /* 495 */
+ "ERRNO_496", /* 496 */
+ "ERRNO_497", /* 497 */
+ "ERRNO_498", /* 498 */
+ "ERRNO_499", /* 499 */
+ "ERRNO_500", /* 500 */
+ "ERRNO_501", /* 501 */
+ "ERRNO_502", /* 502 */
+ "ERRNO_503", /* 503 */
+ "ERRNO_504", /* 504 */
+ "ERRNO_505", /* 505 */
+ "ERRNO_506", /* 506 */
+ "ERRNO_507", /* 507 */
+ "ERRNO_508", /* 508 */
+ "ERRNO_509", /* 509 */
+ "ERRNO_510", /* 510 */
+ "ERRNO_511", /* 511 */
+ "ERESTARTSYS", /* 512 */
+ "ERESTARTNOINTR", /* 513 */
+ "ERESTARTNOHAND", /* 514 */
+ "ENOIOCTLCMD", /* 515 */
+ "ERRNO_516", /* 516 */
+ "ERRNO_517", /* 517 */
+ "ERRNO_518", /* 518 */
+ "ERRNO_519", /* 519 */
+ "ERRNO_520", /* 520 */
+ "EBADHANDLE", /* 521 */
+ "ENOTSYNC", /* 522 */
+ "EBADCOOKIE", /* 523 */
+ "ENOTSUPP", /* 524 */
+ "ETOOSMALL", /* 525 */
+ "ESERVERFAULT", /* 526 */
+ "EBADTYPE", /* 527 */
+ "EJUKEBOX", /* 528 */
diff --git a/strace/linux/sh/ioctlent.h b/strace/linux/sh/ioctlent.h
new file mode 100644
index 0000000..ef8bc7b
--- /dev/null
+++ b/strace/linux/sh/ioctlent.h
@@ -0,0 +1,836 @@
+ {"linux/fs.h", "FIBMAP", 0x1},
+ {"linux/fs.h", "FIGETBSZ", 0x2},
+ {"linux/fd.h", "FDGETPRM", 0x204},
+ {"linux/fd.h", "FDGETMAXERRS", 0x20e},
+ {"linux/fd.h", "FDGETDRVTYP", 0x20f},
+ {"linux/fd.h", "FDGETDRVPRM", 0x211},
+ {"linux/fd.h", "FDGETDRVSTAT", 0x212},
+ {"linux/fd.h", "FDPOLLDRVSTAT", 0x213},
+ {"linux/fd.h", "FDGETFDCSTAT", 0x215},
+ {"linux/fd.h", "FDWERRORGET", 0x217},
+ {"linux/fd.h", "FDCLRPRM", 0x241},
+ {"linux/fd.h", "FDSETPRM", 0x242},
+ {"linux/fd.h", "FDDEFPRM", 0x243},
+ {"linux/fd.h", "FDMSGON", 0x245},
+ {"linux/fd.h", "FDMSGOFF", 0x246},
+ {"linux/fd.h", "FDFMTBEG", 0x247},
+ {"linux/fd.h", "FDFMTTRK", 0x248},
+ {"linux/fd.h", "FDFMTEND", 0x249},
+ {"linux/fd.h", "FDSETEMSGTRESH", 0x24a},
+ {"linux/fd.h", "FDFLUSH", 0x24b},
+ {"linux/fd.h", "FDSETMAXERRS", 0x24c},
+ {"linux/fd.h", "FDRESET", 0x254},
+ {"linux/fd.h", "FDWERRORCLR", 0x256},
+ {"linux/fd.h", "FDRAWCMD", 0x258},
+ {"linux/fd.h", "FDTWADDLE", 0x259},
+ {"linux/fd.h", "FDEJECT", 0x25a},
+ {"linux/fd.h", "FDSETDRVPRM", 0x290},
+ {"linux/umsdos_fs.h", "UMSDOS_READDIR_DOS", 0x4d2},
+ {"linux/umsdos_fs.h", "UMSDOS_UNLINK_DOS", 0x4d3},
+ {"linux/umsdos_fs.h", "UMSDOS_RMDIR_DOS", 0x4d4},
+ {"linux/umsdos_fs.h", "UMSDOS_STAT_DOS", 0x4d5},
+ {"linux/umsdos_fs.h", "UMSDOS_CREAT_EMD", 0x4d6},
+ {"linux/umsdos_fs.h", "UMSDOS_UNLINK_EMD", 0x4d7},
+ {"linux/umsdos_fs.h", "UMSDOS_READDIR_EMD", 0x4d8},
+ {"linux/umsdos_fs.h", "UMSDOS_GETVERSION", 0x4d9},
+ {"linux/umsdos_fs.h", "UMSDOS_INIT_EMD", 0x4da},
+ {"linux/umsdos_fs.h", "UMSDOS_DOS_SETUP", 0x4db},
+ {"linux/umsdos_fs.h", "UMSDOS_RENAME_DOS", 0x4dc},
+ {"linux/fs.h", "BLKROSET", 0x125d},
+ {"linux/fs.h", "BLKROGET", 0x125e},
+ {"linux/fs.h", "BLKRRPART", 0x125f},
+ {"linux/fs.h", "BLKGETSIZE", 0x1260},
+ {"linux/fs.h", "BLKFLSBUF", 0x1261},
+ {"linux/fs.h", "BLKRASET", 0x1262},
+ {"linux/fs.h", "BLKRAGET", 0x1263},
+ {"linux/fs.h", "BLKFRASET", 0x1264},
+ {"linux/fs.h", "BLKFRAGET", 0x1265},
+ {"linux/fs.h", "BLKSECTSET", 0x1266},
+ {"linux/fs.h", "BLKSECTGET", 0x1267},
+ {"linux/fs.h", "BLKSSZGET", 0x1268},
+ {"linux/blkpg.h", "BLKPG", 0x1269},
+ {"linux/fs.h", "BLKPG", 0x1269},
+ {"linux/elevator.h", "BLKELVGET", 0x126a},
+ {"linux/fs.h", "BLKELVGET", 0x126a},
+ {"linux/elevator.h", "BLKELVSET", 0x126b},
+ {"linux/fs.h", "BLKELVSET", 0x126b},
+ {"linux/fs.h", "BLKBSZGET", 0x1270},
+ {"linux/fs.h", "BLKBSZSET", 0x1271},
+ {"linux/fs.h", "BLKGETSIZE64", 0x1272},
+ {"linux/agpgart.h", "AGPIOC_INFO", 0x4100},
+ {"linux/agpgart.h", "AGPIOC_ACQUIRE", 0x4101},
+ {"linux/apm_bios.h", "APM_IOC_STANDBY", 0x4101},
+ {"linux/agpgart.h", "AGPIOC_RELEASE", 0x4102},
+ {"linux/apm_bios.h", "APM_IOC_SUSPEND", 0x4102},
+ {"linux/agpgart.h", "AGPIOC_SETUP", 0x4103},
+ {"linux/agpgart.h", "AGPIOC_RESERVE", 0x4104},
+ {"linux/agpgart.h", "AGPIOC_PROTECT", 0x4105},
+ {"linux/agpgart.h", "AGPIOC_ALLOCATE", 0x4106},
+ {"linux/agpgart.h", "AGPIOC_DEALLOCATE", 0x4107},
+ {"linux/agpgart.h", "AGPIOC_BIND", 0x4108},
+ {"linux/agpgart.h", "AGPIOC_UNBIND", 0x4109},
+ {"linux/pmu.h", "PMU_IOC_SLEEP", 0x4200},
+ {"linux/cciss_ioctl.h", "CCISS_GETPCIINFO", 0x4201},
+ {"linux/pmu.h", "PMU_IOC_GET_BACKLIGHT", 0x4201},
+ {"linux/cciss_ioctl.h", "CCISS_GETINTINFO", 0x4202},
+ {"linux/pmu.h", "PMU_IOC_SET_BACKLIGHT", 0x4202},
+ {"linux/cciss_ioctl.h", "CCISS_SETINTINFO", 0x4203},
+ {"linux/pmu.h", "PMU_IOC_GET_MODEL", 0x4203},
+ {"linux/cciss_ioctl.h", "CCISS_GETNODENAME", 0x4204},
+ {"linux/pmu.h", "PMU_IOC_HAS_ADB", 0x4204},
+ {"linux/cciss_ioctl.h", "CCISS_SETNODENAME", 0x4205},
+ {"linux/pmu.h", "PMU_IOC_CAN_SLEEP", 0x4205},
+ {"linux/cciss_ioctl.h", "CCISS_GETHEARTBEAT", 0x4206},
+ {"linux/cciss_ioctl.h", "CCISS_GETBUSTYPES", 0x4207},
+ {"linux/cciss_ioctl.h", "CCISS_GETFIRMVER", 0x4208},
+ {"linux/cciss_ioctl.h", "CCISS_GETDRIVVER", 0x4209},
+ {"linux/cciss_ioctl.h", "CCISS_REVALIDVOLS", 0x420a},
+ {"linux/cciss_ioctl.h", "CCISS_PASSTHRU", 0x420b},
+ {"linux/soundcard.h", "SNDCTL_COPR_RESET", 0x4300},
+ {"linux/capi.h", "CAPI_REGISTER", 0x4301},
+ {"linux/soundcard.h", "SNDCTL_COPR_LOAD", 0x4301},
+ {"linux/soundcard.h", "SNDCTL_COPR_RDATA", 0x4302},
+ {"linux/soundcard.h", "SNDCTL_COPR_RCODE", 0x4303},
+ {"linux/soundcard.h", "SNDCTL_COPR_WDATA", 0x4304},
+ {"linux/soundcard.h", "SNDCTL_COPR_WCODE", 0x4305},
+ {"linux/capi.h", "CAPI_GET_MANUFACTURER", 0x4306},
+ {"linux/soundcard.h", "SNDCTL_COPR_RUN", 0x4306},
+ {"linux/capi.h", "CAPI_GET_VERSION", 0x4307},
+ {"linux/soundcard.h", "SNDCTL_COPR_HALT", 0x4307},
+ {"linux/capi.h", "CAPI_GET_SERIAL", 0x4308},
+ {"linux/soundcard.h", "SNDCTL_COPR_SENDMSG", 0x4308},
+ {"linux/capi.h", "CAPI_GET_PROFILE", 0x4309},
+ {"linux/soundcard.h", "SNDCTL_COPR_RCVMSG", 0x4309},
+ {"linux/capi.h", "CAPI_MANUFACTURER_CMD", 0x4320},
+ {"linux/capi.h", "CAPI_GET_ERRCODE", 0x4321},
+ {"linux/capi.h", "CAPI_INSTALLED", 0x4322},
+ {"linux/capi.h", "CAPI_GET_FLAGS", 0x4323},
+ {"linux/capi.h", "CAPI_SET_FLAGS", 0x4324},
+ {"linux/capi.h", "CAPI_CLR_FLAGS", 0x4325},
+ {"linux/capi.h", "CAPI_NCCI_OPENCOUNT", 0x4326},
+ {"linux/capi.h", "CAPI_NCCI_GETUNIT", 0x4327},
+ {"linux/input.h", "EVIOCGVERSION", 0x4501},
+ {"linux/input.h", "EVIOCGID", 0x4502},
+ {"linux/input.h", "EVIOCGREP", 0x4503},
+ {"linux/input.h", "EVIOCSREP", 0x4503},
+ {"linux/input.h", "EVIOCGKEYCODE", 0x4504},
+ {"linux/input.h", "EVIOCSKEYCODE", 0x4504},
+ {"linux/input.h", "EVIOCGKEY", 0x4505},
+ {"linux/input.h", "EVIOCGBUS", 0x4507},
+ {"linux/input.h", "EVIOCRMFF", 0x4581},
+ {"linux/input.h", "EVIOCSGAIN", 0x4582},
+ {"linux/input.h", "EVIOCSAUTOCENTER", 0x4583},
+ {"linux/input.h", "EVIOCGEFFECTS", 0x4584},
+ {"linux/fb.h", "FBIOGET_VBLANK", 0x4612},
+ {"linux/hiddev.h", "HIDIOCGVERSION", 0x4801},
+ {"linux/hiddev.h", "HIDIOCAPPLICATION", 0x4802},
+ {"linux/hiddev.h", "HIDIOCGDEVINFO", 0x4803},
+ {"linux/hiddev.h", "HIDIOCGSTRING", 0x4804},
+ {"linux/hiddev.h", "HIDIOCINITREPORT", 0x4805},
+ {"linux/hiddev.h", "HIDIOCGREPORT", 0x4807},
+ {"linux/hiddev.h", "HIDIOCSREPORT", 0x4808},
+ {"linux/hiddev.h", "HIDIOCGREPORTINFO", 0x4809},
+ {"linux/hiddev.h", "HIDIOCGFIELDINFO", 0x480a},
+ {"linux/hiddev.h", "HIDIOCGUSAGE", 0x480b},
+ {"linux/hiddev.h", "HIDIOCSUSAGE", 0x480c},
+ {"linux/hiddev.h", "HIDIOCGUCODE", 0x480d},
+ {"linux/isdn.h", "IIOCNETAIF", 0x4901},
+ {"linux/isdn.h", "IIOCNETDIF", 0x4902},
+ {"linux/isdn.h", "IIOCNETSCF", 0x4903},
+ {"linux/isdn.h", "IIOCNETGCF", 0x4904},
+ {"linux/isdn.h", "IIOCNETANM", 0x4905},
+ {"linux/isdn.h", "IIOCNETDNM", 0x4906},
+ {"linux/isdn.h", "IIOCNETGNM", 0x4907},
+ {"linux/isdn.h", "IIOCGETSET", 0x4908},
+ {"linux/isdn.h", "IIOCSETSET", 0x4909},
+ {"linux/isdn.h", "IIOCSETVER", 0x490a},
+ {"linux/isdn.h", "IIOCNETHUP", 0x490b},
+ {"linux/isdn.h", "IIOCSETGST", 0x490c},
+ {"linux/isdn.h", "IIOCSETBRJ", 0x490d},
+ {"linux/isdn.h", "IIOCSIGPRF", 0x490e},
+ {"linux/isdn.h", "IIOCGETPRF", 0x490f},
+ {"linux/isdn.h", "IIOCSETPRF", 0x4910},
+ {"linux/isdn.h", "IIOCGETMAP", 0x4911},
+ {"linux/isdn.h", "IIOCSETMAP", 0x4912},
+ {"linux/isdn.h", "IIOCNETASL", 0x4913},
+ {"linux/isdn.h", "IIOCNETDIL", 0x4914},
+ {"linux/isdn.h", "IIOCGETCPS", 0x4915},
+ {"linux/isdn.h", "IIOCGETDVR", 0x4916},
+ {"linux/isdn.h", "IIOCNETLCR", 0x4917},
+ {"linux/isdn.h", "IIOCNETDWRSET", 0x4918},
+ {"linux/isdn.h", "IIOCNETALN", 0x4920},
+ {"linux/isdn.h", "IIOCNETDLN", 0x4921},
+ {"linux/isdn.h", "IIOCNETGPN", 0x4922},
+ {"linux/isdn.h", "IIOCDBGVAR", 0x497f},
+ {"linux/isdn.h", "IIOCDRVCTL", 0x4980},
+ {"linux/soundcard.h", "SOUND_MIXER_INFO", 0x4d65},
+ {"linux/soundcard.h", "SOUND_OLD_MIXER_INFO", 0x4d65},
+ {"linux/soundcard.h", "SOUND_MIXER_ACCESS", 0x4d66},
+ {"linux/soundcard.h", "SOUND_MIXER_AGC", 0x4d67},
+ {"linux/soundcard.h", "SOUND_MIXER_3DSE", 0x4d68},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE1", 0x4d6f},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE2", 0x4d70},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE3", 0x4d71},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE4", 0x4d72},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE5", 0x4d73},
+ {"linux/soundcard.h", "SOUND_MIXER_GETLEVELS", 0x4d74},
+ {"linux/soundcard.h", "SOUND_MIXER_SETLEVELS", 0x4d75},
+ {"linux/soundcard.h", "OSS_GETVERSION", 0x4d76},
+ {"linux/soundcard.h", "SNDCTL_DSP_RESET", 0x5000},
+ {"linux/soundcard.h", "SNDCTL_DSP_SYNC", 0x5001},
+ {"linux/soundcard.h", "SNDCTL_DSP_SPEED", 0x5002},
+ {"linux/soundcard.h", "SOUND_PCM_READ_RATE", 0x5002},
+ {"linux/soundcard.h", "SNDCTL_DSP_STEREO", 0x5003},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETBLKSIZE", 0x5004},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETFMT", 0x5005},
+ {"linux/soundcard.h", "SOUND_PCM_READ_BITS", 0x5005},
+ {"linux/soundcard.h", "SNDCTL_DSP_CHANNELS", 0x5006},
+ {"linux/soundcard.h", "SOUND_PCM_READ_CHANNELS", 0x5006},
+ {"linux/soundcard.h", "SOUND_PCM_WRITE_FILTER", 0x5007},
+ {"linux/soundcard.h", "SOUND_PCM_READ_FILTER", 0x5007},
+ {"linux/soundcard.h", "SNDCTL_DSP_POST", 0x5008},
+ {"linux/soundcard.h", "SNDCTL_DSP_SUBDIVIDE", 0x5009},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETFRAGMENT", 0x500a},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETFMTS", 0x500b},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETOSPACE", 0x500c},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETISPACE", 0x500d},
+ {"linux/soundcard.h", "SNDCTL_DSP_NONBLOCK", 0x500e},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETCAPS", 0x500f},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETTRIGGER", 0x5010},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETTRIGGER", 0x5010},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETIPTR", 0x5011},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETOPTR", 0x5012},
+ {"linux/soundcard.h", "SNDCTL_DSP_MAPINBUF", 0x5013},
+ {"linux/soundcard.h", "SNDCTL_DSP_MAPOUTBUF", 0x5014},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETSYNCRO", 0x5015},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETDUPLEX", 0x5016},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETODELAY", 0x5017},
+ {"linux/soundcard.h", "SNDCTL_DSP_PROFILE", 0x5017},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETCHANNELMASK", 0x5040},
+ {"linux/soundcard.h", "SNDCTL_DSP_BIND_CHANNEL", 0x5041},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETSPDIF", 0x5042},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETSPDIF", 0x5043},
+ {"linux/soundcard.h", "SNDCTL_SEQ_RESET", 0x5100},
+ {"linux/soundcard.h", "SNDCTL_SEQ_SYNC", 0x5101},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_INFO", 0x5102},
+ {"linux/soundcard.h", "SNDCTL_SEQ_CTRLRATE", 0x5103},
+ {"linux/soundcard.h", "SNDCTL_SEQ_GETOUTCOUNT", 0x5104},
+ {"linux/soundcard.h", "SNDCTL_SEQ_GETINCOUNT", 0x5105},
+ {"linux/soundcard.h", "SNDCTL_SEQ_PERCMODE", 0x5106},
+ {"linux/soundcard.h", "SNDCTL_FM_LOAD_INSTR", 0x5107},
+ {"linux/soundcard.h", "SNDCTL_SEQ_TESTMIDI", 0x5108},
+ {"linux/soundcard.h", "SNDCTL_SEQ_RESETSAMPLES", 0x5109},
+ {"linux/soundcard.h", "SNDCTL_SEQ_NRSYNTHS", 0x510a},
+ {"linux/soundcard.h", "SNDCTL_SEQ_NRMIDIS", 0x510b},
+ {"linux/soundcard.h", "SNDCTL_MIDI_INFO", 0x510c},
+ {"linux/soundcard.h", "SNDCTL_SEQ_THRESHOLD", 0x510d},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_MEMAVL", 0x510e},
+ {"linux/soundcard.h", "SNDCTL_FM_4OP_ENABLE", 0x510f},
+ {"linux/soundcard.h", "SNDCTL_SEQ_PANIC", 0x5111},
+ {"linux/soundcard.h", "SNDCTL_SEQ_OUTOFBAND", 0x5112},
+ {"linux/soundcard.h", "SNDCTL_SEQ_GETTIME", 0x5113},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_ID", 0x5114},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_CONTROL", 0x5115},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_REMOVESAMPLE", 0x5116},
+ {"linux/random.h", "RNDGETENTCNT", 0x5200},
+ {"linux/random.h", "RNDADDTOENTCNT", 0x5201},
+ {"linux/random.h", "RNDGETPOOL", 0x5202},
+ {"linux/random.h", "RNDADDENTROPY", 0x5203},
+ {"linux/random.h", "RNDZAPENTCNT", 0x5204},
+ {"linux/random.h", "RNDCLEARPOOL", 0x5206},
+ {"asm/ioctls.h", "TCGETS", 0x5401},
+ {"linux/soundcard.h", "SNDCTL_TMR_TIMEBASE", 0x5401},
+ {"asm/ioctls.h", "TCSETS", 0x5402},
+ {"linux/soundcard.h", "SNDCTL_TMR_START", 0x5402},
+ {"asm/ioctls.h", "TCSETSW", 0x5403},
+ {"linux/soundcard.h", "SNDCTL_TMR_STOP", 0x5403},
+ {"asm/ioctls.h", "TCSETSF", 0x5404},
+ {"linux/soundcard.h", "SNDCTL_TMR_CONTINUE", 0x5404},
+ {"linux/soundcard.h", "SNDCTL_TMR_TEMPO", 0x5405},
+ {"linux/soundcard.h", "SNDCTL_TMR_SOURCE", 0x5406},
+ {"linux/soundcard.h", "SNDCTL_TMR_METRONOME", 0x5407},
+ {"linux/soundcard.h", "SNDCTL_TMR_SELECT", 0x5408},
+ {"asm/ioctls.h", "TIOCEXCL", 0x540c},
+ {"asm/ioctls.h", "TIOCNXCL", 0x540d},
+ {"asm/ioctls.h", "TIOCSCTTY", 0x540e},
+ {"asm/ioctls.h", "TIOCSTI", 0x5412},
+ {"asm/ioctls.h", "TIOCMGET", 0x5415},
+ {"asm/ioctls.h", "TIOCMBIS", 0x5416},
+ {"asm/ioctls.h", "TIOCMBIC", 0x5417},
+ {"asm/ioctls.h", "TIOCMSET", 0x5418},
+ {"asm/ioctls.h", "TIOCGSOFTCAR", 0x5419},
+ {"asm/ioctls.h", "TIOCSSOFTCAR", 0x541a},
+ {"asm/ioctls.h", "TIOCLINUX", 0x541c},
+ {"asm/ioctls.h", "TIOCCONS", 0x541d},
+ {"asm/ioctls.h", "TIOCGSERIAL", 0x541e},
+ {"asm/ioctls.h", "TIOCSSERIAL", 0x541f},
+ {"asm/ioctls.h", "TIOCPKT", 0x5420},
+ {"asm/ioctls.h", "TIOCNOTTY", 0x5422},
+ {"asm/ioctls.h", "TIOCSETD", 0x5423},
+ {"asm/ioctls.h", "TIOCGETD", 0x5424},
+ {"asm/ioctls.h", "TCSBRKP", 0x5425},
+ {"asm/ioctls.h", "TIOCTTYGSTRUCT", 0x5426},
+ {"asm/ioctls.h", "TIOCSBRK", 0x5427},
+ {"asm/ioctls.h", "TIOCCBRK", 0x5428},
+ {"asm/ioctls.h", "TIOCGSID", 0x5429},
+ {"asm/ioctls.h", "TIOCGPTN", 0x5430},
+ {"asm/ioctls.h", "TIOCSPTLCK", 0x5431},
+ {"asm/ioctls.h", "TIOCSERCONFIG", 0x5453},
+ {"asm/ioctls.h", "TIOCSERGWILD", 0x5454},
+ {"asm/ioctls.h", "TIOCSERSWILD", 0x5455},
+ {"asm/ioctls.h", "TIOCGLCKTRMIOS", 0x5456},
+ {"asm/ioctls.h", "TIOCSLCKTRMIOS", 0x5457},
+ {"asm/ioctls.h", "TIOCSERGSTRUCT", 0x5458},
+ {"asm/ioctls.h", "TIOCSERGETLSR", 0x5459},
+ {"asm/ioctls.h", "TIOCSERGETMULTI", 0x545a},
+ {"asm/ioctls.h", "TIOCSERSETMULTI", 0x545b},
+ {"asm/ioctls.h", "TIOCMIWAIT", 0x545c},
+ {"asm/ioctls.h", "TIOCGICOUNT", 0x545d},
+ {"linux/if_tun.h", "TUNSETNOCSUM", 0x54c8},
+ {"linux/if_tun.h", "TUNSETDEBUG", 0x54c9},
+ {"linux/if_tun.h", "TUNSETIFF", 0x54ca},
+ {"linux/if_tun.h", "TUNSETPERSIST", 0x54cb},
+ {"linux/if_tun.h", "TUNSETOWNER", 0x54cc},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CONTROL", 0x5500},
+ {"linux/usbdevice_fs.h", "USBDEVFS_BULK", 0x5502},
+ {"linux/usbdevice_fs.h", "USBDEVFS_RESETEP", 0x5503},
+ {"linux/usbdevice_fs.h", "USBDEVFS_SETINTERFACE", 0x5504},
+ {"linux/usbdevice_fs.h", "USBDEVFS_SETCONFIGURATION", 0x5505},
+ {"linux/usbdevice_fs.h", "USBDEVFS_GETDRIVER", 0x5508},
+ {"linux/usbdevice_fs.h", "USBDEVFS_SUBMITURB", 0x550a},
+ {"linux/usbdevice_fs.h", "USBDEVFS_DISCARDURB", 0x550b},
+ {"linux/usbdevice_fs.h", "USBDEVFS_REAPURB", 0x550c},
+ {"linux/usbdevice_fs.h", "USBDEVFS_REAPURBNDELAY", 0x550d},
+ {"linux/usbdevice_fs.h", "USBDEVFS_DISCSIGNAL", 0x550e},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CLAIMINTERFACE", 0x550f},
+ {"linux/usbdevice_fs.h", "USBDEVFS_RELEASEINTERFACE", 0x5510},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CONNECTINFO", 0x5511},
+ {"linux/usbdevice_fs.h", "USBDEVFS_IOCTL", 0x5512},
+ {"linux/usbdevice_fs.h", "USBDEVFS_HUB_PORTINFO", 0x5513},
+ {"linux/usbdevice_fs.h", "USBDEVFS_RESET", 0x5514},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CLEAR_HALT", 0x5515},
+ {"linux/watchdog.h", "WDIOC_GETSUPPORT", 0x5700},
+ {"linux/watchdog.h", "WDIOC_GETSTATUS", 0x5701},
+ {"linux/watchdog.h", "WDIOC_GETBOOTSTATUS", 0x5702},
+ {"linux/watchdog.h", "WDIOC_GETTEMP", 0x5703},
+ {"linux/watchdog.h", "WDIOC_SETOPTIONS", 0x5704},
+ {"linux/watchdog.h", "WDIOC_KEEPALIVE", 0x5705},
+ {"linux/watchdog.h", "WDIOC_SETTIMEOUT", 0x5706},
+ {"linux/ite_gpio.h", "ITE_GPIO_IN", 0x5a00},
+ {"linux/ite_gpio.h", "ITE_GPIO_OUT", 0x5a01},
+ {"linux/ite_gpio.h", "ITE_GPIO_INT_CTRL", 0x5a02},
+ {"linux/ite_gpio.h", "ITE_GPIO_IN_STATUS", 0x5a03},
+ {"linux/ite_gpio.h", "ITE_GPIO_OUT_STATUS", 0x5a04},
+ {"linux/ite_gpio.h", "ITE_GPIO_GEN_CTRL", 0x5a05},
+ {"linux/ite_gpio.h", "ITE_GPIO_INT_WAIT", 0x5a06},
+ {"linux/sonet.h", "SONET_GETSTAT", 0x6110},
+ {"linux/sonet.h", "SONET_GETSTATZ", 0x6111},
+ {"linux/sonet.h", "SONET_SETDIAG", 0x6112},
+ {"linux/sonet.h", "SONET_CLRDIAG", 0x6113},
+ {"linux/sonet.h", "SONET_GETDIAG", 0x6114},
+ {"linux/sonet.h", "SONET_SETFRAMING", 0x6115},
+ {"linux/sonet.h", "SONET_GETFRAMING", 0x6116},
+ {"linux/sonet.h", "SONET_GETFRSENSE", 0x6117},
+ {"linux/atm_idt77105.h", "IDT77105_GETSTAT", 0x6132},
+ {"linux/atm_idt77105.h", "IDT77105_GETSTATZ", 0x6133},
+ {"linux/atmdev.h", "ATM_GETSTAT", 0x6150},
+ {"linux/atmdev.h", "ATM_GETSTATZ", 0x6151},
+ {"linux/atmdev.h", "ATM_GETLOOP", 0x6152},
+ {"linux/atmdev.h", "ATM_SETLOOP", 0x6153},
+ {"linux/atmdev.h", "ATM_QUERYLOOP", 0x6154},
+ {"linux/atm_eni.h", "ENI_MEMDUMP", 0x6160},
+ {"linux/atm_nicstar.h", "NS_GETPSTAT", 0x6161},
+ {"linux/atm_zatm.h", "ZATM_GETPOOL", 0x6161},
+ {"linux/atm_nicstar.h", "NS_SETBUFLEV", 0x6162},
+ {"linux/atm_zatm.h", "ZATM_GETPOOLZ", 0x6162},
+ {"linux/atm_nicstar.h", "NS_ADJBUFLEV", 0x6163},
+ {"linux/atm_zatm.h", "ZATM_SETPOOL", 0x6163},
+ {"linux/atm_zatm.h", "ZATM_GETTHIST", 0x6164},
+ {"linux/atm_eni.h", "ENI_SETMULT", 0x6167},
+ {"linux/atm_tcp.h", "SIOCSIFATMTCP", 0x6180},
+ {"linux/atmdev.h", "ATM_GETLINKRATE", 0x6181},
+ {"linux/atmdev.h", "ATM_GETNAMES", 0x6183},
+ {"linux/atmdev.h", "ATM_GETTYPE", 0x6184},
+ {"linux/atmdev.h", "ATM_GETESI", 0x6185},
+ {"linux/atmdev.h", "ATM_GETADDR", 0x6186},
+ {"linux/atmdev.h", "ATM_RSTADDR", 0x6187},
+ {"linux/atmdev.h", "ATM_ADDADDR", 0x6188},
+ {"linux/atmdev.h", "ATM_DELADDR", 0x6189},
+ {"linux/atmdev.h", "ATM_GETCIRANGE", 0x618a},
+ {"linux/atmdev.h", "ATM_SETCIRANGE", 0x618b},
+ {"linux/atmdev.h", "ATM_SETESI", 0x618c},
+ {"linux/atmdev.h", "ATM_SETESIF", 0x618d},
+ {"linux/atm_tcp.h", "ATMTCP_CREATE", 0x618e},
+ {"linux/atm_tcp.h", "ATMTCP_REMOVE", 0x618f},
+ {"linux/atmlec.h", "ATMLEC_CTRL", 0x61d0},
+ {"linux/atmlec.h", "ATMLEC_DATA", 0x61d1},
+ {"linux/atmlec.h", "ATMLEC_MCAST", 0x61d2},
+ {"linux/atmmpc.h", "ATMMPC_CTRL", 0x61d8},
+ {"linux/atmmpc.h", "ATMMPC_DATA", 0x61d9},
+ {"linux/atmclip.h", "SIOCMKCLIP", 0x61e0},
+ {"linux/atmarp.h", "ATMARPD_CTRL", 0x61e1},
+ {"linux/atmarp.h", "ATMARP_MKIP", 0x61e2},
+ {"linux/atmarp.h", "ATMARP_SETENTRY", 0x61e3},
+ {"linux/atmarp.h", "ATMARP_ENCAP", 0x61e5},
+ {"linux/atmsvc.h", "ATMSIGD_CTRL", 0x61f0},
+ {"linux/atmdev.h", "ATM_SETSC", 0x61f1},
+ {"linux/atmdev.h", "ATM_SETBACKEND", 0x61f2},
+ {"linux/coda.h", "CIOC_KERNEL_VERSION", 0x630a},
+ {"linux/comstats.h", "COM_GETPORTSTATS", 0x631e},
+ {"linux/comstats.h", "COM_CLRPORTSTATS", 0x631f},
+ {"linux/comstats.h", "COM_GETBRDSTATS", 0x6320},
+ {"linux/comstats.h", "COM_READPORT", 0x6328},
+ {"linux/comstats.h", "COM_READBOARD", 0x6329},
+ {"linux/comstats.h", "COM_READPANEL", 0x632a},
+ {"linux/devfs_fs.h", "DEVFSDIOC_GET_PROTO_REV", 0x6400},
+ {"linux/video_decoder.h", "DECODER_GET_CAPABILITIES", 0x6401},
+ {"linux/devfs_fs.h", "DEVFSDIOC_SET_EVENT_MASK", 0x6402},
+ {"linux/video_decoder.h", "DECODER_GET_STATUS", 0x6402},
+ {"linux/devfs_fs.h", "DEVFSDIOC_RELEASE_EVENT_QUEUE", 0x6403},
+ {"linux/video_decoder.h", "DECODER_SET_NORM", 0x6403},
+ {"linux/devfs_fs.h", "DEVFSDIOC_SET_DEBUG_MASK", 0x6404},
+ {"linux/video_decoder.h", "DECODER_SET_INPUT", 0x6404},
+ {"linux/video_decoder.h", "DECODER_SET_OUTPUT", 0x6405},
+ {"linux/video_decoder.h", "DECODER_ENABLE_OUTPUT", 0x6406},
+ {"linux/video_decoder.h", "DECODER_SET_PICTURE", 0x6407},
+ {"linux/video_decoder.h", "DECODER_DUMP", 0x64c0},
+ {"linux/video_encoder.h", "ENCODER_GET_CAPABILITIES", 0x6501},
+ {"linux/video_encoder.h", "ENCODER_SET_NORM", 0x6502},
+ {"linux/video_encoder.h", "ENCODER_SET_INPUT", 0x6503},
+ {"linux/video_encoder.h", "ENCODER_SET_OUTPUT", 0x6504},
+ {"linux/video_encoder.h", "ENCODER_ENABLE_OUTPUT", 0x6505},
+ {"linux/ext2_fs.h", "EXT2_IOC_GETFLAGS", 0x6601},
+ {"linux/ext3_fs.h", "EXT3_IOC_GETFLAGS", 0x6601},
+ {"asm/ioctls.h", "FIOCLEX", 0x6601},
+ {"linux/ext2_fs.h", "EXT2_IOC_SETFLAGS", 0x6602},
+ {"linux/ext3_fs.h", "EXT3_IOC_SETFLAGS", 0x6602},
+ {"asm/ioctls.h", "FIONCLEX", 0x6602},
+ {"linux/ext3_fs.h", "EXT3_IOC_GETVERSION", 0x6603},
+ {"linux/ext3_fs.h", "EXT3_IOC_SETVERSION", 0x6604},
+ {"linux/ext3_fs.h", "EXT3_IOC_WAIT_FOR_READONLY", 0x6663},
+ {"asm/sockios.h", "FIOGETOWN", 0x667b},
+ {"asm/sockios.h", "FIOSETOWN", 0x667c},
+ {"asm/ioctls.h", "FIOASYNC", 0x667d},
+ {"asm/ioctls.h", "FIONBIO", 0x667e},
+ {"asm/ioctls.h", "FIONREAD", 0x667f},
+ {"linux/i2o-dev.h", "I2OGETIOPS", 0x6900},
+ {"linux/i2o-dev.h", "I2OHRTGET", 0x6901},
+ {"linux/i2o-dev.h", "I2OLCTGET", 0x6902},
+ {"linux/i2o-dev.h", "I2OPARMSET", 0x6903},
+ {"linux/i2o-dev.h", "I2OPARMGET", 0x6904},
+ {"linux/i2o-dev.h", "I2OSWDL", 0x6905},
+ {"linux/i2o-dev.h", "I2OSWUL", 0x6906},
+ {"linux/i2o-dev.h", "I2OSWDEL", 0x6907},
+ {"linux/i2o-dev.h", "I2OVALIDATE", 0x6908},
+ {"linux/i2o-dev.h", "I2OHTML", 0x6909},
+ {"linux/i2o-dev.h", "I2OEVTREG", 0x690a},
+ {"linux/i2o-dev.h", "I2OEVTGET", 0x690b},
+ {"linux/i8k.h", "I8K_BIOS_VERSION", 0x6980},
+ {"linux/i8k.h", "I8K_MACHINE_ID", 0x6981},
+ {"linux/i8k.h", "I8K_POWER_STATUS", 0x6982},
+ {"linux/i8k.h", "I8K_FN_STATUS", 0x6983},
+ {"linux/i8k.h", "I8K_GET_TEMP", 0x6984},
+ {"linux/i8k.h", "I8K_GET_SPEED", 0x6985},
+ {"linux/i8k.h", "I8K_GET_FAN", 0x6986},
+ {"linux/i8k.h", "I8K_SET_FAN", 0x6987},
+ {"linux/joystick.h", "JSIOCGVERSION", 0x6a01},
+ {"linux/joystick.h", "JSIOCGAXES", 0x6a11},
+ {"linux/joystick.h", "JSIOCGBUTTONS", 0x6a12},
+ {"linux/joystick.h", "JSIOCSCORR", 0x6a21},
+ {"linux/joystick.h", "JSIOCGCORR", 0x6a22},
+ {"linux/joystick.h", "JSIOCSAXMAP", 0x6a31},
+ {"linux/joystick.h", "JSIOCGAXMAP", 0x6a32},
+ {"linux/joystick.h", "JSIOCSBTNMAP", 0x6a33},
+ {"linux/joystick.h", "JSIOCGBTNMAP", 0x6a34},
+ {"linux/udf_fs_i.h", "UDF_GETEASIZE", 0x6c40},
+ {"linux/udf_fs_i.h", "UDF_GETEABLOCK", 0x6c41},
+ {"linux/udf_fs_i.h", "UDF_GETVOLIDENT", 0x6c42},
+ {"linux/udf_fs_i.h", "UDF_RELOCATE_BLOCKS", 0x6c43},
+ {"linux/soundcard.h", "SNDCTL_MIDI_PRETIME", 0x6d00},
+ {"linux/synclink.h", "MGSL_IOCSPARAMS", 0x6d00},
+ {"linux/mtio.h", "MTIOCTOP", 0x6d01},
+ {"linux/soundcard.h", "SNDCTL_MIDI_MPUMODE", 0x6d01},
+ {"linux/synclink.h", "MGSL_IOCGPARAMS", 0x6d01},
+ {"linux/mtio.h", "MTIOCGET", 0x6d02},
+ {"linux/soundcard.h", "SNDCTL_MIDI_MPUCMD", 0x6d02},
+ {"linux/synclink.h", "MGSL_IOCSTXIDLE", 0x6d02},
+ {"linux/mtio.h", "MTIOCPOS", 0x6d03},
+ {"linux/synclink.h", "MGSL_IOCGTXIDLE", 0x6d03},
+ {"linux/mtio.h", "MTIOCGETCONFIG", 0x6d04},
+ {"linux/synclink.h", "MGSL_IOCTXENABLE", 0x6d04},
+ {"linux/mtio.h", "MTIOCSETCONFIG", 0x6d05},
+ {"linux/synclink.h", "MGSL_IOCRXENABLE", 0x6d05},
+ {"linux/mtio.h", "MTIOCRDFTSEG", 0x6d06},
+ {"linux/synclink.h", "MGSL_IOCTXABORT", 0x6d06},
+ {"linux/mtio.h", "MTIOCWRFTSEG", 0x6d07},
+ {"linux/synclink.h", "MGSL_IOCGSTATS", 0x6d07},
+ {"linux/mtio.h", "MTIOCVOLINFO", 0x6d08},
+ {"linux/synclink.h", "MGSL_IOCWAITEVENT", 0x6d08},
+ {"linux/mtio.h", "MTIOCGETSIZE", 0x6d09},
+ {"linux/synclink.h", "MGSL_IOCLOOPTXDONE", 0x6d09},
+ {"linux/mtio.h", "MTIOCFTFORMAT", 0x6d0a},
+ {"linux/mtio.h", "MTIOCFTCMD", 0x6d0b},
+ {"linux/synclink.h", "MGSL_IOCCLRMODCOUNT", 0x6d0f},
+ {"linux/zftape.h", "MTIOC_ZFTAPE_GETBLKSZ", 0x6d68},
+ {"linux/ncp_fs.h", "NCP_IOC_NCPREQUEST", 0x6e01},
+ {"linux/ncp_fs.h", "NCP_IOC_GETMOUNTUID", 0x6e02},
+ {"linux/ncp_fs.h", "NCP_IOC_GETMOUNTUID2", 0x6e02},
+ {"linux/ncp_fs.h", "NCP_IOC_CONN_LOGGED_IN", 0x6e03},
+ {"linux/ncp_fs.h", "NCP_IOC_GET_FS_INFO", 0x6e04},
+ {"linux/ncp_fs.h", "NCP_IOC_GET_FS_INFO_V2", 0x6e04},
+ {"linux/ncp_fs.h", "NCP_IOC_SIGN_INIT", 0x6e05},
+ {"linux/ncp_fs.h", "NCP_IOC_SIGN_WANTED", 0x6e06},
+ {"linux/ncp_fs.h", "NCP_IOC_SET_SIGN_WANTED", 0x6e06},
+ {"linux/ncp_fs.h", "NCP_IOC_LOCKUNLOCK", 0x6e07},
+ {"linux/ncp_fs.h", "NCP_IOC_GETROOT", 0x6e08},
+ {"linux/ncp_fs.h", "NCP_IOC_SETROOT", 0x6e08},
+ {"linux/ncp_fs.h", "NCP_IOC_GETOBJECTNAME", 0x6e09},
+ {"linux/ncp_fs.h", "NCP_IOC_SETOBJECTNAME", 0x6e09},
+ {"linux/ncp_fs.h", "NCP_IOC_GETPRIVATEDATA", 0x6e0a},
+ {"linux/ncp_fs.h", "NCP_IOC_SETPRIVATEDATA", 0x6e0a},
+ {"linux/ncp_fs.h", "NCP_IOC_GETCHARSETS", 0x6e0b},
+ {"linux/ncp_fs.h", "NCP_IOC_SETCHARSETS", 0x6e0b},
+ {"linux/ncp_fs.h", "NCP_IOC_GETDENTRYTTL", 0x6e0c},
+ {"linux/ncp_fs.h", "NCP_IOC_SETDENTRYTTL", 0x6e0c},
+ {"linux/matroxfb.h", "MATROXFB_SET_OUTPUT_CONNECTION", 0x6ef8},
+ {"linux/matroxfb.h", "MATROXFB_GET_OUTPUT_CONNECTION", 0x6ef8},
+ {"linux/matroxfb.h", "MATROXFB_GET_AVAILABLE_OUTPUTS", 0x6ef9},
+ {"linux/matroxfb.h", "MATROXFB_SET_OUTPUT_MODE", 0x6efa},
+ {"linux/matroxfb.h", "MATROXFB_GET_OUTPUT_MODE", 0x6efa},
+ {"linux/matroxfb.h", "MATROXFB_GET_ALL_OUTPUTS", 0x6efb},
+ {"linux/rtc.h", "RTC_AIE_ON", 0x7001},
+ {"linux/rtc.h", "RTC_AIE_OFF", 0x7002},
+ {"linux/intermezzo_fs.h", "PRESTO_GETMOUNT", 0x7003},
+ {"linux/rtc.h", "RTC_UIE_ON", 0x7003},
+ {"linux/intermezzo_fs.h", "PRESTO_SETPID", 0x7004},
+ {"linux/rtc.h", "RTC_UIE_OFF", 0x7004},
+ {"linux/rtc.h", "RTC_PIE_ON", 0x7005},
+ {"linux/intermezzo_fs.h", "PRESTO_CLOSE_JOURNALF", 0x7006},
+ {"linux/rtc.h", "RTC_PIE_OFF", 0x7006},
+ {"linux/intermezzo_fs.h", "PRESTO_SET_FSETROOT", 0x7007},
+ {"linux/rtc.h", "RTC_ALM_SET", 0x7007},
+ {"linux/intermezzo_fs.h", "PRESTO_CLEAR_FSETROOT", 0x7008},
+ {"linux/rtc.h", "RTC_ALM_READ", 0x7008},
+ {"linux/intermezzo_fs.h", "PRESTO_SETOPT", 0x7009},
+ {"linux/rtc.h", "RTC_RD_TIME", 0x7009},
+ {"linux/intermezzo_fs.h", "PRESTO_GETOPT", 0x700a},
+ {"linux/rtc.h", "RTC_SET_TIME", 0x700a},
+ {"linux/intermezzo_fs.h", "PRESTO_GET_KMLSIZE", 0x700b},
+ {"linux/rtc.h", "RTC_IRQP_READ", 0x700b},
+ {"linux/intermezzo_fs.h", "PRESTO_GET_RECNO", 0x700c},
+ {"linux/rtc.h", "RTC_IRQP_SET", 0x700c},
+ {"linux/rtc.h", "RTC_EPOCH_READ", 0x700d},
+ {"linux/rtc.h", "RTC_EPOCH_SET", 0x700e},
+ {"linux/rtc.h", "RTC_WIE_ON", 0x700f},
+ {"linux/rtc.h", "RTC_WKALM_SET", 0x700f},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_SETATTR", 0x7010},
+ {"linux/rtc.h", "RTC_WIE_OFF", 0x7010},
+ {"linux/rtc.h", "RTC_WKALM_RD", 0x7010},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_CREATE", 0x7011},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_LINK", 0x7012},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_UNLINK", 0x7013},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_SYMLINK", 0x7014},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_MKDIR", 0x7015},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_RMDIR", 0x7016},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_MKNOD", 0x7017},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_RENAME", 0x7018},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_CLOSE", 0x701a},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_IOPEN", 0x701b},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_SETEXTATTR", 0x701c},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_DELEXTATTR", 0x701d},
+ {"linux/intermezzo_fs.h", "PRESTO_MARK", 0x7020},
+ {"linux/intermezzo_fs.h", "PRESTO_RELEASE_PERMIT", 0x7021},
+ {"linux/intermezzo_fs.h", "PRESTO_CLEAR_ALL_FSETROOTS", 0x7022},
+ {"linux/intermezzo_fs.h", "PRESTO_BACKFETCH_LML", 0x7023},
+ {"linux/intermezzo_fs.h", "PRESTO_REINT", 0x7024},
+ {"linux/intermezzo_fs.h", "PRESTO_CANCEL_LML", 0x7025},
+ {"linux/intermezzo_fs.h", "PRESTO_RESET_FSET", 0x7026},
+ {"linux/intermezzo_fs.h", "PRESTO_COMPLETE_CLOSES", 0x7027},
+ {"linux/intermezzo_fs.h", "PRESTO_REINT_BEGIN", 0x7030},
+ {"linux/intermezzo_fs.h", "PRESTO_DO_REINT", 0x7031},
+ {"linux/intermezzo_fs.h", "PRESTO_REINT_END", 0x7032},
+ {"linux/nvram.h", "NVRAM_INIT", 0x7040},
+ {"linux/nvram.h", "NVRAM_SETCKS", 0x7041},
+ {"linux/ppdev.h", "PPSETMODE", 0x7080},
+ {"linux/ppdev.h", "PPRSTATUS", 0x7081},
+ {"linux/ppdev.h", "PPRCONTROL", 0x7083},
+ {"linux/ppdev.h", "PPWCONTROL", 0x7084},
+ {"linux/ppdev.h", "PPRDATA", 0x7085},
+ {"linux/ppdev.h", "PPWDATA", 0x7086},
+ {"linux/ppdev.h", "PPCLAIM", 0x708b},
+ {"linux/ppdev.h", "PPRELEASE", 0x708c},
+ {"linux/ppdev.h", "PPYIELD", 0x708d},
+ {"linux/ppdev.h", "PPFCONTROL", 0x708e},
+ {"linux/ppdev.h", "PPEXCL", 0x708f},
+ {"linux/ppdev.h", "PPDATADIR", 0x7090},
+ {"linux/ppdev.h", "PPNEGOT", 0x7091},
+ {"linux/ppdev.h", "PPWCTLONIRQ", 0x7092},
+ {"linux/ppdev.h", "PPCLRIRQ", 0x7093},
+ {"linux/ppdev.h", "PPSETPHASE", 0x7094},
+ {"linux/ppdev.h", "PPGETTIME", 0x7095},
+ {"linux/ppdev.h", "PPSETTIME", 0x7096},
+ {"linux/ppdev.h", "PPGETMODES", 0x7097},
+ {"linux/ppdev.h", "PPGETMODE", 0x7098},
+ {"linux/ppdev.h", "PPGETPHASE", 0x7099},
+ {"linux/ppdev.h", "PPGETFLAGS", 0x709a},
+ {"linux/ppdev.h", "PPSETFLAGS", 0x709b},
+ {"linux/serio.h", "SPIOCSTYPE", 0x7101},
+ {"linux/telephony.h", "PHONE_CAPABILITIES", 0x7180},
+ {"linux/telephony.h", "PHONE_CAPABILITIES_LIST", 0x7181},
+ {"linux/telephony.h", "PHONE_CAPABILITIES_CHECK", 0x7182},
+ {"linux/telephony.h", "PHONE_RING", 0x7183},
+ {"linux/telephony.h", "PHONE_HOOKSTATE", 0x7184},
+ {"linux/telephony.h", "PHONE_MAXRINGS", 0x7185},
+ {"linux/telephony.h", "PHONE_RING_CADENCE", 0x7186},
+ {"linux/telephony.h", "OLD_PHONE_RING_START", 0x7187},
+ {"linux/telephony.h", "PHONE_RING_START", 0x7187},
+ {"linux/telephony.h", "PHONE_RING_STOP", 0x7188},
+ {"linux/telephony.h", "PHONE_REC_CODEC", 0x7189},
+ {"linux/telephony.h", "PHONE_REC_START", 0x718a},
+ {"linux/telephony.h", "PHONE_REC_STOP", 0x718b},
+ {"linux/telephony.h", "PHONE_REC_DEPTH", 0x718c},
+ {"linux/telephony.h", "PHONE_FRAME", 0x718d},
+ {"linux/telephony.h", "PHONE_REC_VOLUME", 0x718e},
+ {"linux/telephony.h", "PHONE_REC_LEVEL", 0x718f},
+ {"linux/telephony.h", "PHONE_PLAY_CODEC", 0x7190},
+ {"linux/telephony.h", "PHONE_PLAY_START", 0x7191},
+ {"linux/telephony.h", "PHONE_PLAY_STOP", 0x7192},
+ {"linux/telephony.h", "PHONE_PLAY_DEPTH", 0x7193},
+ {"linux/telephony.h", "PHONE_PLAY_VOLUME", 0x7194},
+ {"linux/telephony.h", "PHONE_PLAY_LEVEL", 0x7195},
+ {"linux/telephony.h", "PHONE_DTMF_READY", 0x7196},
+ {"linux/telephony.h", "PHONE_GET_DTMF", 0x7197},
+ {"linux/telephony.h", "PHONE_GET_DTMF_ASCII", 0x7198},
+ {"linux/telephony.h", "PHONE_DTMF_OOB", 0x7199},
+ {"linux/telephony.h", "PHONE_EXCEPTION", 0x719a},
+ {"linux/telephony.h", "PHONE_PLAY_TONE", 0x719b},
+ {"linux/telephony.h", "PHONE_SET_TONE_ON_TIME", 0x719c},
+ {"linux/telephony.h", "PHONE_SET_TONE_OFF_TIME", 0x719d},
+ {"linux/telephony.h", "PHONE_GET_TONE_ON_TIME", 0x719e},
+ {"linux/telephony.h", "PHONE_GET_TONE_OFF_TIME", 0x719f},
+ {"linux/telephony.h", "PHONE_GET_TONE_STATE", 0x71a0},
+ {"linux/telephony.h", "PHONE_BUSY", 0x71a1},
+ {"linux/telephony.h", "PHONE_RINGBACK", 0x71a2},
+ {"linux/telephony.h", "PHONE_DIALTONE", 0x71a3},
+ {"linux/telephony.h", "PHONE_CPT_STOP", 0x71a4},
+ {"linux/telephony.h", "PHONE_PSTN_SET_STATE", 0x71a4},
+ {"linux/telephony.h", "PHONE_PSTN_GET_STATE", 0x71a5},
+ {"linux/telephony.h", "PHONE_WINK_DURATION", 0x71a6},
+ {"linux/telephony.h", "PHONE_QUERY_CODEC", 0x71a7},
+ {"linux/telephony.h", "PHONE_PSTN_LINETEST", 0x71a8},
+ {"linux/telephony.h", "PHONE_VAD", 0x71a9},
+ {"linux/telephony.h", "PHONE_WINK", 0x71aa},
+ {"linux/ixjuser.h", "IXJCTL_DSP_RESET", 0x71c0},
+ {"linux/ixjuser.h", "IXJCTL_CARDTYPE", 0x71c1},
+ {"linux/ixjuser.h", "IXJCTL_SERIAL", 0x71c2},
+ {"linux/ixjuser.h", "IXJCTL_DSP_TYPE", 0x71c3},
+ {"linux/ixjuser.h", "IXJCTL_DSP_VERSION", 0x71c4},
+ {"linux/ixjuser.h", "IXJCTL_DSP_IDLE", 0x71c5},
+ {"linux/ixjuser.h", "IXJCTL_TESTRAM", 0x71c6},
+ {"linux/ixjuser.h", "IXJCTL_SET_FILTER", 0x71c7},
+ {"linux/ixjuser.h", "IXJCTL_GET_FILTER_HIST", 0x71c8},
+ {"linux/ixjuser.h", "IXJCTL_INIT_TONE", 0x71c9},
+ {"linux/ixjuser.h", "IXJCTL_TONE_CADENCE", 0x71ca},
+ {"linux/ixjuser.h", "IXJCTL_AEC_START", 0x71cb},
+ {"linux/ixjuser.h", "IXJCTL_AEC_STOP", 0x71cc},
+ {"linux/ixjuser.h", "IXJCTL_AEC_GET_LEVEL", 0x71cd},
+ {"linux/ixjuser.h", "IXJCTL_SET_LED", 0x71ce},
+ {"linux/ixjuser.h", "IXJCTL_MIXER", 0x71cf},
+ {"linux/ixjuser.h", "IXJCTL_DAA_COEFF_SET", 0x71d0},
+ {"linux/ixjuser.h", "IXJCTL_PORT", 0x71d1},
+ {"linux/ixjuser.h", "IXJCTL_DAA_AGAIN", 0x71d2},
+ {"linux/ixjuser.h", "IXJCTL_PSTN_LINETEST", 0x71d3},
+ {"linux/ixjuser.h", "IXJCTL_CID", 0x71d4},
+ {"linux/ixjuser.h", "IXJCTL_POTS_PSTN", 0x71d5},
+ {"linux/ixjuser.h", "IXJCTL_FILTER_CADENCE", 0x71d6},
+ {"linux/ixjuser.h", "IXJCTL_PLAY_CID", 0x71d7},
+ {"linux/ixjuser.h", "IXJCTL_VMWI", 0x71d8},
+ {"linux/ixjuser.h", "IXJCTL_CIDCW", 0x71d9},
+ {"linux/ixjuser.h", "IXJCTL_VERSION", 0x71da},
+ {"linux/telephony.h", "PHONE_REC_VOLUME_LINEAR", 0x71db},
+ {"linux/telephony.h", "PHONE_PLAY_VOLUME_LINEAR", 0x71dc},
+ {"linux/ixjuser.h", "IXJCTL_SET_FILTER_RAW", 0x71dd},
+ {"linux/ixjuser.h", "IXJCTL_HZ", 0x71e0},
+ {"linux/ixjuser.h", "IXJCTL_RATE", 0x71e1},
+ {"linux/ixjuser.h", "IXJCTL_FRAMES_READ", 0x71e2},
+ {"linux/ixjuser.h", "IXJCTL_FRAMES_WRITTEN", 0x71e3},
+ {"linux/ixjuser.h", "IXJCTL_READ_WAIT", 0x71e4},
+ {"linux/ixjuser.h", "IXJCTL_WRITE_WAIT", 0x71e5},
+ {"linux/ixjuser.h", "IXJCTL_DRYBUFFER_READ", 0x71e6},
+ {"linux/ixjuser.h", "IXJCTL_DRYBUFFER_CLEAR", 0x71e7},
+ {"linux/ixjuser.h", "IXJCTL_DTMF_PRESCALE", 0x71e8},
+ {"linux/ixjuser.h", "IXJCTL_SIGCTL", 0x71e9},
+ {"linux/ixjuser.h", "IXJCTL_SC_RXG", 0x71ea},
+ {"linux/ixjuser.h", "IXJCTL_SC_TXG", 0x71eb},
+ {"linux/ixjuser.h", "IXJCTL_INTERCOM_START", 0x71fd},
+ {"linux/ixjuser.h", "IXJCTL_INTERCOM_STOP", 0x71fe},
+ {"linux/msdos_fs.h", "VFAT_IOCTL_READDIR_BOTH", 0x7201},
+ {"linux/msdos_fs.h", "VFAT_IOCTL_READDIR_SHORT", 0x7202},
+ {"asm/sockios.h", "SIOCATMARK", 0x7307},
+ {"asm/sockios.h", "SIOCSPGRP", 0x7308},
+ {"asm/sockios.h", "SIOCGPGRP", 0x7309},
+ {"linux/cdk.h", "STL_BINTR", 0x7314},
+ {"linux/cdk.h", "STL_BSTART", 0x7315},
+ {"linux/cdk.h", "STL_BSTOP", 0x7316},
+ {"linux/cdk.h", "STL_BRESET", 0x7317},
+ {"linux/cdk.h", "STL_GETPFLAG", 0x7350},
+ {"linux/cdk.h", "STL_SETPFLAG", 0x7351},
+ {"asm/sockios.h", "SIOCGSTAMP", 0x7364},
+ {"asm/ioctls.h", "TCGETA", 0x7417},
+ {"asm/ioctls.h", "TCSETA", 0x7418},
+ {"asm/ioctls.h", "TCSETAW", 0x7419},
+ {"asm/ioctls.h", "TCSETAF", 0x741c},
+ {"asm/ioctls.h", "TCSBRK", 0x741d},
+ {"asm/ioctls.h", "TCXONC", 0x741e},
+ {"asm/ioctls.h", "TCFLSH", 0x741f},
+ {"linux/if_ppp.h", "PPPIOCGCHAN", 0x7437},
+ {"linux/if_ppp.h", "PPPIOCATTCHAN", 0x7438},
+ {"linux/if_ppp.h", "PPPIOCDISCONN", 0x7439},
+ {"linux/if_ppp.h", "PPPIOCCONNECT", 0x743a},
+ {"linux/if_ppp.h", "PPPIOCSMRRU", 0x743b},
+ {"linux/if_ppp.h", "PPPIOCDETACH", 0x743c},
+ {"linux/if_ppp.h", "PPPIOCATTACH", 0x743d},
+ {"linux/if_ppp.h", "PPPIOCNEWUNIT", 0x743e},
+ {"linux/if_ppp.h", "PPPIOCGIDLE", 0x743f},
+ {"linux/if_ppp.h", "PPPIOCSDEBUG", 0x7440},
+ {"linux/if_ppp.h", "PPPIOCGDEBUG", 0x7441},
+ {"linux/if_ppp.h", "PPPIOCSACTIVE", 0x7446},
+ {"linux/if_ppp.h", "PPPIOCSPASS", 0x7447},
+ {"linux/if_ppp.h", "PPPIOCSNPMODE", 0x744b},
+ {"linux/if_ppp.h", "PPPIOCGNPMODE", 0x744c},
+ {"linux/if_ppp.h", "PPPIOCSCOMPRESS", 0x744d},
+ {"linux/if_ppp.h", "PPPIOCXFERUNIT", 0x744e},
+ {"linux/if_ppp.h", "PPPIOCSXASYNCMAP", 0x744f},
+ {"linux/if_ppp.h", "PPPIOCGXASYNCMAP", 0x7450},
+ {"linux/if_ppp.h", "PPPIOCSMAXCID", 0x7451},
+ {"linux/if_ppp.h", "PPPIOCSMRU", 0x7452},
+ {"linux/if_ppp.h", "PPPIOCGMRU", 0x7453},
+ {"linux/if_ppp.h", "PPPIOCSRASYNCMAP", 0x7454},
+ {"linux/if_ppp.h", "PPPIOCGRASYNCMAP", 0x7455},
+ {"linux/if_ppp.h", "PPPIOCGUNIT", 0x7456},
+ {"linux/if_ppp.h", "PPPIOCSASYNCMAP", 0x7457},
+ {"linux/if_ppp.h", "PPPIOCGASYNCMAP", 0x7458},
+ {"linux/if_ppp.h", "PPPIOCSFLAGS", 0x7459},
+ {"linux/if_ppp.h", "PPPIOCGFLAGS", 0x745a},
+ {"linux/jffs.h", "JFFS_PRINT_HASH", 0x745a},
+ {"linux/jffs.h", "JFFS_PRINT_TREE", 0x745b},
+ {"linux/jffs.h", "JFFS_GET_STATUS", 0x745c},
+ {"asm/ioctls.h", "TIOCSWINSZ", 0x7467},
+ {"asm/ioctls.h", "TIOCGWINSZ", 0x7468},
+ {"asm/ioctls.h", "TIOCSTART", 0x746e},
+ {"asm/ioctls.h", "TIOCSTOP", 0x746f},
+ {"asm/ioctls.h", "TIOCOUTQ", 0x7473},
+ {"asm/ioctls.h", "TIOCSPGRP", 0x7476},
+ {"asm/ioctls.h", "TIOCGPGRP", 0x7477},
+ {"linux/isdn_ppp.h", "PPPIOCGCALLINFO", 0x7480},
+ {"linux/isdn_ppp.h", "PPPIOCBUNDLE", 0x7481},
+ {"linux/isdn_ppp.h", "PPPIOCGMPFLAGS", 0x7482},
+ {"linux/isdn_ppp.h", "PPPIOCSMPFLAGS", 0x7483},
+ {"linux/isdn_ppp.h", "PPPIOCSMPMTU", 0x7484},
+ {"linux/isdn_ppp.h", "PPPIOCSMPMRU", 0x7485},
+ {"linux/isdn_ppp.h", "PPPIOCGCOMPRESSORS", 0x7486},
+ {"linux/isdn_ppp.h", "PPPIOCSCOMPRESSOR", 0x7487},
+ {"linux/isdn_ppp.h", "PPPIOCGIFNAME", 0x7488},
+ {"linux/toshiba.h", "TOSH_SMM", 0x7490},
+ {"linux/smb_fs.h", "SMB_IOC_GETMOUNTUID", 0x7501},
+ {"linux/smb_fs.h", "SMB_IOC_NEWCONN", 0x7502},
+ {"linux/smb_fs.h", "SMB_IOC_GETMOUNTUID32", 0x7503},
+ {"linux/sonypi.h", "SONYPI_IOCGBRT", 0x7600},
+ {"linux/sonypi.h", "SONYPI_IOCSBRT", 0x7600},
+ {"linux/ext2_fs.h", "EXT2_IOC_GETVERSION", 0x7601},
+ {"linux/ext3_fs.h", "EXT3_IOC_GETVERSION_OLD", 0x7601},
+ {"linux/videodev.h", "VIDIOCGCAP", 0x7601},
+ {"linux/ext2_fs.h", "EXT2_IOC_SETVERSION", 0x7602},
+ {"linux/ext3_fs.h", "EXT3_IOC_SETVERSION_OLD", 0x7602},
+ {"linux/videodev.h", "VIDIOCGCHAN", 0x7602},
+ {"linux/videodev.h", "VIDIOCSCHAN", 0x7603},
+ {"linux/videodev.h", "VIDIOCGTUNER", 0x7604},
+ {"linux/videodev.h", "VIDIOCSTUNER", 0x7605},
+ {"linux/videodev.h", "VIDIOCGPICT", 0x7606},
+ {"linux/videodev.h", "VIDIOCSPICT", 0x7607},
+ {"linux/videodev.h", "VIDIOCCAPTURE", 0x7608},
+ {"linux/videodev.h", "VIDIOCGWIN", 0x7609},
+ {"linux/videodev.h", "VIDIOCSWIN", 0x760a},
+ {"linux/videodev.h", "VIDIOCGFBUF", 0x760b},
+ {"linux/videodev.h", "VIDIOCSFBUF", 0x760c},
+ {"linux/videodev.h", "VIDIOCKEY", 0x760d},
+ {"linux/videodev.h", "VIDIOCGFREQ", 0x760e},
+ {"linux/videodev.h", "VIDIOCSFREQ", 0x760f},
+ {"linux/videodev.h", "VIDIOCGAUDIO", 0x7610},
+ {"linux/videodev.h", "VIDIOCSAUDIO", 0x7611},
+ {"linux/videodev.h", "VIDIOCSYNC", 0x7612},
+ {"linux/videodev.h", "VIDIOCMCAPTURE", 0x7613},
+ {"linux/videodev.h", "VIDIOCGMBUF", 0x7614},
+ {"linux/videodev.h", "VIDIOCGUNIT", 0x7615},
+ {"linux/videodev.h", "VIDIOCGCAPTURE", 0x7616},
+ {"linux/videodev.h", "VIDIOCSCAPTURE", 0x7617},
+ {"linux/videodev.h", "VIDIOCSPLAYMODE", 0x7618},
+ {"linux/videodev.h", "VIDIOCSWRITEMODE", 0x7619},
+ {"linux/videodev.h", "VIDIOCGPLAYINFO", 0x761a},
+ {"linux/videodev.h", "VIDIOCSMICROCODE", 0x761b},
+ {"linux/videodev.h", "VIDIOCGVBIFMT", 0x761c},
+ {"linux/videodev.h", "VIDIOCSVBIFMT", 0x761d},
+ {"linux/meye.h", "MEYEIOC_G_PARAMS", 0x76c0},
+ {"linux/meye.h", "MEYEIOC_S_PARAMS", 0x76c1},
+ {"linux/meye.h", "MEYEIOC_QBUF_CAPT", 0x76c2},
+ {"linux/meye.h", "MEYEIOC_SYNC", 0x76c3},
+ {"linux/meye.h", "MEYEIOC_STILLCAPT", 0x76c4},
+ {"linux/meye.h", "MEYEIOC_STILLJCAPT", 0x76c5},
+ {"linux/dn.h", "SIOCSNETADDR", 0x89e0},
+ {"linux/dn.h", "OSIOCSNETADDR", 0x89e0},
+ {"linux/dn.h", "SIOCGNETADDR", 0x89e1},
+ {"linux/dn.h", "OSIOCGNETADDR", 0x89e1},
+ {"linux/auto_fs.h", "AUTOFS_IOC_READY", 0x9360},
+ {"linux/auto_fs.h", "AUTOFS_IOC_FAIL", 0x9361},
+ {"linux/auto_fs.h", "AUTOFS_IOC_CATATONIC", 0x9362},
+ {"linux/auto_fs.h", "AUTOFS_IOC_PROTOVER", 0x9363},
+ {"linux/auto_fs.h", "AUTOFS_IOC_SETTIMEOUT", 0x9364},
+ {"linux/auto_fs.h", "AUTOFS_IOC_EXPIRE", 0x9365},
+ {"linux/auto_fs4.h", "AUTOFS_IOC_EXPIRE_MULTI", 0x9366},
+ {"linux/nbd.h", "NBD_SET_SOCK", 0xab00},
+ {"linux/nbd.h", "NBD_SET_BLKSIZE", 0xab01},
+ {"linux/nbd.h", "NBD_SET_SIZE", 0xab02},
+ {"linux/nbd.h", "NBD_DO_IT", 0xab03},
+ {"linux/nbd.h", "NBD_CLEAR_SOCK", 0xab04},
+ {"linux/nbd.h", "NBD_CLEAR_QUE", 0xab05},
+ {"linux/nbd.h", "NBD_PRINT_DEBUG", 0xab06},
+ {"linux/nbd.h", "NBD_SET_SIZE_BLOCKS", 0xab07},
+ {"linux/nbd.h", "NBD_DISCONNECT", 0xab08},
+ {"linux/raw.h", "RAW_SETBIND", 0xac00},
+ {"linux/raw.h", "RAW_GETBIND", 0xac01},
+ {"linux/if_pppox.h", "PPPOEIOCSFWD", 0xb100},
+ {"linux/if_pppox.h", "PPPOEIOCDFWD", 0xb101},
+ {"linux/reiserfs_fs.h", "REISERFS_IOC_UNPACK", 0xcd01},
+ {"linux/lvm.h", "VG_CREATE_OLD", 0xfe00},
+ {"linux/lvm.h", "VG_REMOVE", 0xfe01},
+ {"linux/lvm.h", "VG_EXTEND", 0xfe03},
+ {"linux/lvm.h", "VG_REDUCE", 0xfe04},
+ {"linux/lvm.h", "VG_STATUS", 0xfe05},
+ {"linux/lvm.h", "VG_STATUS_GET_COUNT", 0xfe06},
+ {"linux/lvm.h", "VG_STATUS_GET_NAMELIST", 0xfe07},
+ {"linux/lvm.h", "VG_SET_EXTENDABLE", 0xfe08},
+ {"linux/lvm.h", "VG_RENAME", 0xfe09},
+ {"linux/lvm.h", "VG_CREATE", 0xfe0a},
+ {"linux/lvm.h", "LV_CREATE", 0xfe20},
+ {"linux/lvm.h", "LV_REMOVE", 0xfe21},
+ {"linux/lvm.h", "LV_ACTIVATE", 0xfe22},
+ {"linux/lvm.h", "LV_DEACTIVATE", 0xfe23},
+ {"linux/lvm.h", "LV_EXTEND", 0xfe24},
+ {"linux/lvm.h", "LV_REDUCE", 0xfe25},
+ {"linux/lvm.h", "LV_STATUS_BYNAME", 0xfe26},
+ {"linux/lvm.h", "LV_STATUS_BYINDEX", 0xfe27},
+ {"linux/lvm.h", "LV_SET_ACCESS", 0xfe28},
+ {"linux/lvm.h", "LV_SET_ALLOCATION", 0xfe29},
+ {"linux/lvm.h", "LV_SET_STATUS", 0xfe2a},
+ {"linux/lvm.h", "LE_REMAP", 0xfe2b},
+ {"linux/lvm.h", "LV_SNAPSHOT_USE_RATE", 0xfe2c},
+ {"linux/lvm.h", "LV_STATUS_BYDEV", 0xfe2e},
+ {"linux/lvm.h", "LV_RENAME", 0xfe2f},
+ {"linux/lvm.h", "LV_BMAP", 0xfe30},
+ {"linux/lvm.h", "PV_STATUS", 0xfe40},
+ {"linux/lvm.h", "PV_CHANGE", 0xfe41},
+ {"linux/lvm.h", "PV_FLUSH", 0xfe42},
+ {"linux/lvm.h", "PE_LOCK_UNLOCK", 0xfe50},
+ {"linux/lvm.h", "LVM_GET_IOP_VERSION", 0xfe98},
+ {"linux/lvm.h", "LVM_RESET", 0xfe99},
+ {"linux/lvm.h", "LVM_LOCK_LVM", 0xff00},
diff --git a/strace/linux/sh/signalent.h b/strace/linux/sh/signalent.h
new file mode 100644
index 0000000..112f746
--- /dev/null
+++ b/strace/linux/sh/signalent.h
@@ -0,0 +1,33 @@
+ "SIG_0", /* 0 */
+ "SIGHUP", /* 1 */
+ "SIGINT", /* 2 */
+ "SIGQUIT", /* 3 */
+ "SIGILL", /* 4 */
+ "SIGTRAP", /* 5 */
+ "SIGABRT", /* 6 */
+ "SIGBUS", /* 7 */
+ "SIGFPE", /* 8 */
+ "SIGKILL", /* 9 */
+ "SIGUSR1", /* 10 */
+ "SIGSEGV", /* 11 */
+ "SIGUSR2", /* 12 */
+ "SIGPIPE", /* 13 */
+ "SIGALRM", /* 14 */
+ "SIGTERM", /* 15 */
+ "SIGSTKFLT", /* 16 */
+ "SIGCHLD", /* 17 */
+ "SIGCONT", /* 18 */
+ "SIGSTOP", /* 19 */
+ "SIGTSTP", /* 20 */
+ "SIGTTIN", /* 21 */
+ "SIGTTOU", /* 22 */
+ "SIGURG", /* 23 */
+ "SIGXCPU", /* 24 */
+ "SIGXFSZ", /* 25 */
+ "SIGVTALRM", /* 26 */
+ "SIGPROF", /* 27 */
+ "SIGWINCH", /* 28 */
+ "SIGIO", /* 29 */
+ "SIGPWR", /* 30 */
+ "SIGSYS", /* 31 */
+ "SIGRTMIN", /* 32 */
diff --git a/strace/linux/sh/syscallent.h b/strace/linux/sh/syscallent.h
new file mode 100644
index 0000000..bb63f75
--- /dev/null
+++ b/strace/linux/sh/syscallent.h
@@ -0,0 +1,337 @@
+/*
+ * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
+ * Copyright (c) 1993, 1994, 1995 Rick Sladkey <jrs@world.std.com>
+ * Copyright (c) 2000 PocketPenguins Inc. Linux for Hitachi SuperH
+ * port by Greg Banks <gbanks@pocketpenguins.com>
+ * 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.
+ *
+ * $Id: syscallent.h,v 1.4 2003/11/13 22:32:28 roland Exp $
+ */
+
+ { 0, 0, sys_setup, "setup" }, /* 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, TP, sys_waitpid, "waitpid" }, /* 7 */
+ { 2, TF, sys_creat, "creat" }, /* 8 */
+ { 2, TF, sys_link, "link" }, /* 9 */
+ { 1, TF, sys_unlink, "unlink" }, /* 10 */
+ { 3, TF|TP, sys_execve, "execve" }, /* 11 */
+ { 1, TF, sys_chdir, "chdir" }, /* 12 */
+ { 1, 0, sys_time, "time" }, /* 13 */
+ { 3, TF, sys_mknod, "mknod" }, /* 14 */
+ { 2, TF, sys_chmod, "chmod" }, /* 15 */
+ { 3, TF, sys_chown, "lchown" }, /* 16 */
+ { 0, 0, sys_break, "break" }, /* 17 */
+ { 2, TF, sys_oldstat, "oldstat" }, /* 18 */
+ { 3, 0, sys_lseek, "lseek" }, /* 19 */
+ { 0, 0, sys_getpid, "getpid" }, /* 20 */
+ { 5, TF, sys_mount, "mount" }, /* 21 */
+ { 1, TF, sys_umount, "oldumount" }, /* 22 */
+ { 1, 0, sys_setuid, "setuid" }, /* 23 */
+ { 0, 0, sys_getuid, "getuid" }, /* 24 */
+ { 1, 0, sys_stime, "stime" }, /* 25 */
+ { 4, 0, sys_ptrace, "ptrace" }, /* 26 */
+ { 1, 0, sys_alarm, "alarm" }, /* 27 */
+ { 2, 0, sys_oldfstat, "oldfstat" }, /* 28 */
+ { 0, TS, sys_pause, "pause" }, /* 29 */
+ { 2, TF, sys_utime, "utime" }, /* 30 */
+ { 2, 0, sys_stty, "stty" }, /* 31 */
+ { 2, 0, sys_gtty, "gtty" }, /* 32 */
+ { 2, TF, sys_access, "access" }, /* 33 */
+ { 1, 0, sys_nice, "nice" }, /* 34 */
+ { 0, 0, sys_ftime, "ftime" }, /* 35 */
+ { 0, 0, sys_sync, "sync" }, /* 36 */
+ { 2, TS, sys_kill, "kill" }, /* 37 */
+ { 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, 0, sys_times, "times" }, /* 43 */
+ { 0, 0, sys_prof, "prof" }, /* 44 */
+ { 1, 0, sys_brk, "brk" }, /* 45 */
+ { 1, 0, sys_setgid, "setgid" }, /* 46 */
+ { 0, 0, sys_getgid, "getgid" }, /* 47 */
+ { 3, TS, sys_signal, "signal" }, /* 48 */
+ { 0, 0, sys_geteuid, "geteuid" }, /* 49 */
+ { 0, 0, sys_getegid, "getegid" }, /* 50 */
+ { 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 */
+ { 0, 0, sys_mpx, "mpx" }, /* 56 */
+ { 2, 0, sys_setpgid, "setpgid" }, /* 57 */
+ { 2, 0, sys_ulimit, "ulimit" }, /* 58 */
+ { 1, 0, sys_oldolduname, "oldolduname" }, /* 59 */
+ { 1, 0, sys_umask, "umask" }, /* 60 */
+ { 1, TF, sys_chroot, "chroot" }, /* 61 */
+ { 2, 0, sys_ustat, "ustat" }, /* 62 */
+ { 2, 0, sys_dup2, "dup2" }, /* 63 */
+ { 0, 0, sys_getppid, "getppid" }, /* 64 */
+ { 0, 0, sys_getpgrp, "getpgrp" }, /* 65 */
+ { 0, 0, sys_setsid, "setsid" }, /* 66 */
+ { 3, TS, sys_sigaction, "sigaction" }, /* 67 */
+ { 0, TS, sys_siggetmask, "siggetmask" }, /* 68 */
+ { 1, TS, sys_sigsetmask, "sigsetmask" }, /* 69 */
+ { 2, 0, sys_setreuid, "setreuid" }, /* 70 */
+ { 2, 0, sys_setregid, "setregid" }, /* 71 */
+ { 3, TS, sys_sigsuspend, "sigsuspend" }, /* 72 */
+ { 1, TS, sys_sigpending, "sigpending" }, /* 73 */
+ { 2, 0, sys_sethostname, "sethostname" }, /* 74 */
+ { 2, 0, sys_setrlimit, "setrlimit" }, /* 75 */
+ { 2, 0, sys_getrlimit, "getrlimit" }, /* 76 */
+ { 2, 0, sys_getrusage, "getrusage" }, /* 77 */
+ { 2, 0, sys_gettimeofday, "gettimeofday" }, /* 78 */
+ { 2, 0, sys_settimeofday, "settimeofday" }, /* 79 */
+ { 2, 0, sys_getgroups, "getgroups" }, /* 80 */
+ { 2, 0, sys_setgroups, "setgroups" }, /* 81 */
+ { 1, 0, 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 */
+ { 1, TF, sys_swapon, "swapon" }, /* 87 */
+ { 3, 0, sys_reboot, "reboot" }, /* 88 */
+ { 3, 0, sys_readdir, "readdir" }, /* 89 */
+ { 6, 0, sys_old_mmap, "old_mmap" }, /* 90 */
+ { 2, 0, 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, 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 */
+ { 3, 0, sys_ioperm, "ioperm" }, /* 101 */
+ { 2, 0, 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 */
+ { 1, 0, sys_olduname, "olduname" }, /* 109 */
+ { 1, 0, sys_iopl, "iopl" }, /* 110 */
+ { 0, 0, sys_vhangup, "vhangup" }, /* 111 */
+ { 0, 0, sys_idle, "idle" }, /* 112 */
+ { 1, 0, sys_vm86old, "vm86old" }, /* 113 */
+ { 4, TP, sys_wait4, "wait4" }, /* 114 */
+ { 1, 0, sys_swapoff, "swapoff" }, /* 115 */
+ { 1, 0, sys_sysinfo, "sysinfo" }, /* 116 */
+ { 5, 0, sys_ipc, "ipc" }, /* 117 */
+ { 1, 0, sys_fsync, "fsync" }, /* 118 */
+ { 1, 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, TS, sys_sigprocmask, "sigprocmask" }, /* 126 */
+ { 2, 0, sys_create_module, "create_module" }, /* 127 */
+ { 2, 0, sys_init_module, "init_module" }, /* 128 */
+ { 1, 0, sys_delete_module, "delete_module" }, /* 129 */
+ { 1, 0, sys_get_kernel_syms, "get_kernel_syms"}, /* 130 */
+ { 4, 0, sys_quotactl, "quotactl" }, /* 131 */
+ { 1, 0, sys_getpgid, "getpgid" }, /* 132 */
+ { 1, 0, 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, 0, sys_setfsuid, "setfsuid" }, /* 138 */
+ { 1, 0, 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 */
+ { 1, 0, sys_getsid, "getsid" }, /* 147 */
+ { 1, 0, sys_fdatasync, "fdatasync" }, /* 148 */
+ { 1, 0, sys_sysctl, "_sysctl" }, /* 149 */
+ { 1, 0, sys_mlock, "mlock" }, /* 150 */
+ { 2, 0, sys_munlock, "munlock" }, /* 151 */
+ { 2, 0, sys_mlockall, "mlockall" }, /* 152 */
+ { 1, 0, 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 */
+ { 1, 0, sys_sched_getscheduler, "sched_getscheduler"}, /* 157 */
+ { 0, 0, sys_sched_yield, "sched_yield"}, /* 158 */
+ { 1, 0, sys_sched_get_priority_max,"sched_get_priority_max"}, /* 159 */
+ { 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 */
+ { 4, 0, sys_mremap, "mremap" }, /* 163 */
+ { 3, 0, sys_setresuid, "setresuid" }, /* 164 */
+ { 3, 0, sys_getresuid, "getresuid" }, /* 165 */
+ { 5, 0, printargs, "vm86" }, /* 166 */
+ { 5, 0, sys_query_module, "query_module" }, /* 167 */
+ { 3, 0, sys_poll, "poll" }, /* 168 */
+ { 3, 0, printargs, "nfsservctl" }, /* 169 */
+ { 3, 0, sys_setresgid, "setresgid" }, /* 170 */
+ { 3, 0, sys_getresgid, "getresgid" }, /* 171 */
+ { 5, 0, printargs, "prctl" }, /* 172 */
+ { 1, TS, printargs, "rt_sigreturn" }, /* 173 */
+ { 4, TS, sys_rt_sigaction, "rt_sigaction" }, /* 174 */
+ { 4, TS, sys_rt_sigprocmask, "rt_sigprocmask"}, /* 175 */
+ { 2, TS, sys_rt_sigpending, "rt_sigpending" }, /* 176 */
+ { 4, TS, sys_rt_sigtimedwait, "rt_sigtimedwait"}, /* 177 */
+ { 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 */
+ { 3, TF, sys_chown, "chown" }, /* 182 */
+ { 2, 0, sys_getcwd, "getcwd" }, /* 183 */
+ { 2, 0, sys_capget, "capget" }, /* 184 */
+ { 2, 0, sys_capset, "capset" }, /* 185 */
+ { 2, TS, sys_sigaltstack, "sigaltstack" }, /* 186 */
+ { 4, TF, sys_sendfile, "sendfile" }, /* 187 */
+ { 5, 0, printargs, "SYS_188" }, /* 188 */
+ { 5, 0, printargs, "SYS_189" }, /* 189 */
+ { 0, TP, sys_vfork, "vfork" }, /* 190 */
+ { 5, 0, printargs, "getrlimit" }, /* 191 */
+ { 6, 0, sys_mmap, "mmap2" }, /* 192 */
+ { 5, 0, sys_truncate64, "truncate64" }, /* 193 */
+ { 5, 0, sys_ftruncate64, "ftruncate64" }, /* 194 */
+ { 2, TF, sys_stat64, "stat64" }, /* 195 */
+ { 2, TF, sys_lstat64, "lstat64" }, /* 196 */
+ { 2, TF, sys_fstat64, "fstat64" }, /* 197 */
+/*TODO*/{ 3, TF, printargs, "lchown32" }, /* 198 */
+/*TODO*/{ 0, 0, printargs, "getuid32" }, /* 199 */
+
+ { 0, 0, printargs, "getgid32" }, /* 200 */
+ { 0, 0, printargs, "geteuid32" }, /* 201 */
+ { 0, 0, printargs, "getegid32" }, /* 202 */
+ { 2, 0, printargs, "setreuid32" }, /* 203 */
+ { 2, 0, printargs, "setregid32" }, /* 204 */
+ { 2, 0, sys_getgroups32, "getgroups32" }, /* 205 */
+ { 2, 0, sys_setgroups32, "setgroups32" }, /* 206 */
+ { 3, 0, printargs, "fchown32" }, /* 207 */
+ { 3, 0, printargs, "setresuid32" }, /* 208 */
+ { 3, 0, printargs, "getresuid32" }, /* 209 */
+ { 3, 0, printargs, "setresgid32" }, /* 210 */
+ { 3, 0, printargs, "getsetgid32" }, /* 211 */
+ { 3, TF, printargs, "chown32" }, /* 212 */
+ { 1, 0, printargs, "setuid32" }, /* 213 */
+ { 1, 0, printargs, "setgid32" }, /* 214 */
+ { 1, 0, printargs, "setfsuid32" }, /* 215 */
+ { 1, 0, printargs, "setfsgid32" }, /* 216 */
+ { 2, TF, sys_pivotroot, "pivot_root" }, /* 217 */
+ { 3, 0, printargs, "mincore" }, /* 218 */
+ { 3, 0, sys_madvise, "madvise" }, /* 219 */
+ { 4, 0, printargs, "getdents64" }, /* 220 */
+ { 3, 0, sys_fcntl, "fcntl64" }, /* 221 */
+ { 4, 0, printargs, "SYS_222" }, /* 222 */
+ { 4, 0, printargs, "SYS_223" }, /* 223 */
+ { 4, 0, printargs, "SYS_224" }, /* 224 */
+ { 5, 0, printargs, "SYS_225" }, /* 225 */
+ { 5, 0, printargs, "SYS_226" }, /* 226 */
+ { 5, 0, printargs, "SYS_227" }, /* 227 */
+ { 5, 0, printargs, "SYS_228" }, /* 228 */
+ { 5, 0, printargs, "SYS_229" }, /* 229 */
+
+ { 8, 0, printargs, "socket_subcall"}, /* 230 */
+ { 3, TN, sys_socket, "socket" }, /* 231 */
+ { 3, TN, sys_bind, "bind" }, /* 232 */
+ { 3, TN, sys_connect, "connect" }, /* 233 */
+ { 2, TN, sys_listen, "listen" }, /* 234 */
+ { 3, TN, sys_accept, "accept" }, /* 235 */
+ { 3, TN, sys_getsockname, "getsockname" }, /* 236 */
+ { 3, TN, sys_getpeername, "getpeername" }, /* 237 */
+ { 4, TN, sys_socketpair, "socketpair" }, /* 238 */
+ { 4, TN, sys_send, "send" }, /* 239 */
+ { 4, TN, sys_recv, "recv" }, /* 240 */
+ { 6, TN, sys_sendto, "sendto" }, /* 241 */
+ { 6, TN, sys_recvfrom, "recvfrom" }, /* 242 */
+ { 2, TN, sys_shutdown, "shutdown" }, /* 243 */
+ { 5, TN, sys_setsockopt, "setsockopt" }, /* 244 */
+ { 5, TN, sys_getsockopt, "getsockopt" }, /* 245 */
+ { 5, TN, sys_sendmsg, "sendmsg" }, /* 246 */
+ { 5, TN, sys_recvmsg, "recvmsg" }, /* 247 */
+ { 5, 0, printargs, "SYS_248" }, /* 248 */
+ { 5, 0, printargs, "SYS_249" }, /* 249 */
+
+ { 4, 0, printargs, "ipc_subcall" }, /* 250 */
+ { 4, TI, sys_semop, "semop" }, /* 251 */
+ { 4, TI, sys_semget, "semget" }, /* 252 */
+ { 4, TI, sys_semctl, "semctl" }, /* 253 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 254 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 255 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 256 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 257 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 258 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 259 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 260 */
+ { 4, TI, sys_msgsnd, "msgsnd" }, /* 261 */
+ { 4, TI, sys_msgrcv, "msgrcv" }, /* 262 */
+ { 4, TI, sys_msgget, "msgget" }, /* 263 */
+ { 4, TI, sys_msgctl, "msgctl" }, /* 264 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 265 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 266 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 267 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 268 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 269 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 270 */
+ { 4, TI, sys_shmat, "shmat" }, /* 271 */
+ { 4, TI, sys_shmdt, "shmdt" }, /* 272 */
+ { 4, TI, sys_shmget, "shmget" }, /* 273 */
+ { 4, TI, sys_shmctl, "shmctl" }, /* 274 */
+ { 5, 0, printargs, "SYS_275" }, /* 275 */
+ { 5, 0, printargs, "SYS_276" }, /* 276 */
+ { 5, 0, printargs, "SYS_277" }, /* 277 */
+ { 5, 0, printargs, "SYS_278" }, /* 278 */
+ { 5, 0, printargs, "SYS_279" }, /* 279 */
+
+ { 8, 0, printargs, "socket_subcall"}, /* 280 */
+ { 3, TN, sys_socket, "socket" }, /* 281 */
+ { 3, TN, sys_bind, "bind" }, /* 282 */
+ { 3, TN, sys_connect, "connect" }, /* 283 */
+ { 2, TN, sys_listen, "listen" }, /* 284 */
+ { 3, TN, sys_accept, "accept" }, /* 285 */
+ { 3, TN, sys_getsockname, "getsockname" }, /* 286 */
+ { 3, TN, sys_getpeername, "getpeername" }, /* 287 */
+ { 4, TN, sys_socketpair, "socketpair" }, /* 288 */
+ { 4, TN, sys_send, "send" }, /* 289 */
+ { 4, TN, sys_recv, "recv" }, /* 290 */
+ { 6, TN, sys_sendto, "sendto" }, /* 291 */
+ { 6, TN, sys_recvfrom, "recvfrom" }, /* 292 */
+ { 2, TN, sys_shutdown, "shutdown" }, /* 293 */
+ { 5, TN, sys_setsockopt, "setsockopt" }, /* 294 */
+ { 5, TN, sys_getsockopt, "getsockopt" }, /* 295 */
+ { 5, TN, sys_sendmsg, "sendmsg" }, /* 296 */
+ { 5, TN, sys_recvmsg, "recvmsg" }, /* 297 */
+ { 5, 0, printargs, "SYS_298" }, /* 298 */
+ { 5, 0, printargs, "SYS_299" }, /* 299 */
diff --git a/strace/linux/sh64/syscallent.h b/strace/linux/sh64/syscallent.h
new file mode 100644
index 0000000..8701da0
--- /dev/null
+++ b/strace/linux/sh64/syscallent.h
@@ -0,0 +1,349 @@
+/*
+ * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
+ * Copyright (c) 1993, 1994, 1995 Rick Sladkey <jrs@world.std.com>
+ * 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.
+ *
+ * $Id: syscallent.h,v 1.2 2003/11/13 22:32:28 roland Exp $
+ */
+
+ { 0, 0, sys_setup, "setup" }, /* 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, TP, sys_waitpid, "waitpid" }, /* 7 */
+ { 2, TF, sys_creat, "creat" }, /* 8 */
+ { 2, TF, sys_link, "link" }, /* 9 */
+ { 1, TF, sys_unlink, "unlink" }, /* 10 */
+ { 3, TF|TP, sys_execve, "execve" }, /* 11 */
+ { 1, TF, sys_chdir, "chdir" }, /* 12 */
+ { 1, 0, sys_time, "time" }, /* 13 */
+ { 3, TF, sys_mknod, "mknod" }, /* 14 */
+ { 2, TF, sys_chmod, "chmod" }, /* 15 */
+ { 3, TF, sys_chown, "lchown" }, /* 16 */
+ { 0, 0, sys_break, "break" }, /* 17 */
+ { 2, TF, sys_oldstat, "oldstat" }, /* 18 */
+ { 3, 0, sys_lseek, "lseek" }, /* 19 */
+ { 0, 0, sys_getpid, "getpid" }, /* 20 */
+ { 5, TF, sys_mount, "mount" }, /* 21 */
+ { 1, TF, sys_umount, "oldumount" }, /* 22 */
+ { 1, 0, sys_setuid, "setuid" }, /* 23 */
+ { 0, 0, sys_getuid, "getuid" }, /* 24 */
+ { 1, 0, sys_stime, "stime" }, /* 25 */
+ { 4, 0, sys_ptrace, "ptrace" }, /* 26 */
+ { 1, 0, sys_alarm, "alarm" }, /* 27 */
+ { 2, 0, sys_oldfstat, "oldfstat" }, /* 28 */
+ { 0, TS, sys_pause, "pause" }, /* 29 */
+ { 2, TF, sys_utime, "utime" }, /* 30 */
+ { 2, 0, sys_stty, "stty" }, /* 31 */
+ { 2, 0, sys_gtty, "gtty" }, /* 32 */
+ { 2, TF, sys_access, "access" }, /* 33 */
+ { 1, 0, sys_nice, "nice" }, /* 34 */
+ { 0, 0, sys_ftime, "ftime" }, /* 35 */
+ { 0, 0, sys_sync, "sync" }, /* 36 */
+ { 2, TS, sys_kill, "kill" }, /* 37 */
+ { 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, 0, sys_times, "times" }, /* 43 */
+ { 0, 0, sys_prof, "prof" }, /* 44 */
+ { 1, 0, sys_brk, "brk" }, /* 45 */
+ { 1, 0, sys_setgid, "setgid" }, /* 46 */
+ { 0, 0, sys_getgid, "getgid" }, /* 47 */
+ { 3, TS, sys_signal, "signal" }, /* 48 */
+ { 0, 0, sys_geteuid, "geteuid" }, /* 49 */
+ { 0, 0, sys_getegid, "getegid" }, /* 50 */
+ { 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 */
+ { 0, 0, sys_mpx, "mpx" }, /* 56 */
+ { 2, 0, sys_setpgid, "setpgid" }, /* 57 */
+ { 2, 0, sys_ulimit, "ulimit" }, /* 58 */
+ { 1, 0, sys_oldolduname, "oldolduname" }, /* 59 */
+ { 1, 0, sys_umask, "umask" }, /* 60 */
+ { 1, TF, sys_chroot, "chroot" }, /* 61 */
+ { 2, 0, sys_ustat, "ustat" }, /* 62 */
+ { 2, 0, sys_dup2, "dup2" }, /* 63 */
+ { 0, 0, sys_getppid, "getppid" }, /* 64 */
+ { 0, 0, sys_getpgrp, "getpgrp" }, /* 65 */
+ { 0, 0, sys_setsid, "setsid" }, /* 66 */
+ { 3, TS, sys_sigaction, "sigaction" }, /* 67 */
+ { 0, TS, sys_siggetmask, "siggetmask" }, /* 68 */
+ { 1, TS, sys_sigsetmask, "sigsetmask" }, /* 69 */
+ { 2, 0, sys_setreuid, "setreuid" }, /* 70 */
+ { 2, 0, sys_setregid, "setregid" }, /* 71 */
+ { 3, TS, sys_sigsuspend, "sigsuspend" }, /* 72 */
+ { 1, TS, sys_sigpending, "sigpending" }, /* 73 */
+ { 2, 0, sys_sethostname, "sethostname" }, /* 74 */
+ { 2, 0, sys_setrlimit, "setrlimit" }, /* 75 */
+ { 2, 0, sys_getrlimit, "getrlimit" }, /* 76 */
+ { 2, 0, sys_getrusage, "getrusage" }, /* 77 */
+ { 2, 0, sys_gettimeofday, "gettimeofday" }, /* 78 */
+ { 2, 0, sys_settimeofday, "settimeofday" }, /* 79 */
+ { 2, 0, sys_getgroups, "getgroups" }, /* 80 */
+ { 2, 0, sys_setgroups, "setgroups" }, /* 81 */
+ { 1, 0, 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 */
+ { 1, TF, sys_swapon, "swapon" }, /* 87 */
+ { 3, 0, sys_reboot, "reboot" }, /* 88 */
+ { 3, 0, sys_readdir, "readdir" }, /* 89 */
+ { 6, 0, sys_old_mmap, "old_mmap" }, /* 90 */
+ { 2, 0, 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, 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 */
+ { 3, 0, sys_ioperm, "ioperm" }, /* 101 */
+ { 2, 0, 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 */
+ { 1, 0, sys_olduname, "olduname" }, /* 109 */
+ { 1, 0, sys_iopl, "iopl" }, /* 110 */
+ { 0, 0, sys_vhangup, "vhangup" }, /* 111 */
+ { 0, 0, sys_idle, "idle" }, /* 112 */
+ { 1, 0, printargs, "SYS_113" }, /* 113 */
+ { 4, TP, sys_wait4, "wait4" }, /* 114 */
+ { 1, 0, sys_swapoff, "swapoff" }, /* 115 */
+ { 1, 0, sys_sysinfo, "sysinfo" }, /* 116 */
+ { 5, 0, sys_ipc, "ipc" }, /* 117 */
+ { 1, 0, sys_fsync, "fsync" }, /* 118 */
+ { 1, 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, printargs, "SYS_123" }, /* 123 */
+ { 1, 0, sys_adjtimex, "adjtimex" }, /* 124 */
+ { 3, 0, sys_mprotect, "mprotect" }, /* 125 */
+ { 3, TS, sys_sigprocmask, "sigprocmask" }, /* 126 */
+ { 2, 0, sys_create_module, "create_module" }, /* 127 */
+ { 2, 0, sys_init_module, "init_module" }, /* 128 */
+ { 1, 0, sys_delete_module, "delete_module" }, /* 129 */
+ { 1, 0, sys_get_kernel_syms, "get_kernel_syms"}, /* 130 */
+ { 4, 0, sys_quotactl, "quotactl" }, /* 131 */
+ { 1, 0, sys_getpgid, "getpgid" }, /* 132 */
+ { 1, 0, 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, 0, sys_setfsuid, "setfsuid" }, /* 138 */
+ { 1, 0, 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 */
+ { 1, 0, sys_getsid, "getsid" }, /* 147 */
+ { 1, 0, sys_fdatasync, "fdatasync" }, /* 148 */
+ { 1, 0, sys_sysctl, "_sysctl" }, /* 149 */
+ { 1, 0, sys_mlock, "mlock" }, /* 150 */
+ { 2, 0, sys_munlock, "munlock" }, /* 151 */
+ { 2, 0, sys_mlockall, "mlockall" }, /* 152 */
+ { 0, 0, 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 */
+ { 1, 0, sys_sched_getscheduler, "sched_getscheduler"}, /* 157 */
+ { 0, 0, sys_sched_yield, "sched_yield"}, /* 158 */
+ { 1, 0, sys_sched_get_priority_max,"sched_get_priority_max"}, /* 159 */
+ { 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 */
+ { 4, 0, sys_mremap, "mremap" }, /* 163 */
+ { 3, 0, sys_setresuid, "setresuid" }, /* 164 */
+ { 3, 0, sys_getresuid, "getresuid" }, /* 165 */
+ { 5, 0, printargs, "SYS_166" }, /* 166 */
+ { 5, 0, sys_query_module, "query_module" }, /* 167 */
+ { 3, 0, sys_poll, "poll" }, /* 168 */
+ { 3, 0, printargs, "nfsservctl" }, /* 169 */
+ { 3, 0, sys_setresgid, "setresgid" }, /* 170 */
+ { 3, 0, sys_getresgid, "getresgid" }, /* 171 */
+ { 5, 0, printargs, "prctl" }, /* 172 */
+ { 1, TS, printargs, "rt_sigreturn" }, /* 173 */
+ { 4, TS, sys_rt_sigaction, "rt_sigaction" }, /* 174 */
+ { 4, TS, sys_rt_sigprocmask, "rt_sigprocmask"}, /* 175 */
+ { 2, TS, sys_rt_sigpending, "rt_sigpending" }, /* 176 */
+ { 4, TS, sys_rt_sigtimedwait, "rt_sigtimedwait"}, /* 177 */
+ { 3, TS, sys_rt_sigqueueinfo, "rt_sigqueueinfo"}, /* 178 */
+ { 2, TS, sys_rt_sigsuspend, "rt_sigsuspend" }, /* 179 */
+ { 5, TF, sys_pread, "pread" }, /* 180 */
+ { 5, TF, sys_pwrite, "pwrite" }, /* 181 */
+ { 3, TF, sys_chown, "chown" }, /* 182 */
+ { 2, TF, sys_getcwd, "getcwd" }, /* 183 */
+ { 2, 0, sys_capget, "capget" }, /* 184 */
+ { 2, 0, sys_capset, "capset" }, /* 185 */
+ { 2, TS, sys_sigaltstack, "sigaltstack" }, /* 186 */
+ { 4, TF, sys_sendfile, "sendfile" }, /* 187 */
+ { 5, 0, printargs, "SYS_188" }, /* 188 */
+ { 5, 0, printargs, "SYS_189" }, /* 189 */
+ { 0, TP, sys_vfork, "vfork" }, /* 190 */
+ { 2, 0, printargs, "getrlimit" }, /* 191 */
+ { 6, 0, sys_mmap, "mmap2" }, /* 192 */
+ { 2, TF, sys_truncate64, "truncate64" }, /* 193 */
+ { 2, TF, sys_ftruncate64, "ftruncate64" }, /* 194 */
+ { 2, TF, sys_stat64, "stat64" }, /* 195 */
+ { 2, TF, sys_lstat64, "lstat64" }, /* 196 */
+ { 2, TF, sys_fstat64, "fstat64" }, /* 197 */
+ { 3, TF, sys_chown, "lchown32" }, /* 198 */
+ { 0, 0, sys_getuid, "getuid32" }, /* 199 */
+ { 0, 0, printargs, "getgid32" }, /* 200 */
+ { 0, 0, printargs, "geteuid32" }, /* 201 */
+ { 0, 0, printargs, "getegid32" }, /* 202 */
+ { 2, 0, printargs, "setreuid32" }, /* 203 */
+ { 2, 0, printargs, "setregid32" }, /* 204 */
+ { 2, 0, sys_getgroups32, "getgroups32" }, /* 205 */
+ { 2, 0, sys_setgroups32, "setgroups32" }, /* 206 */
+ { 3, 0, printargs, "fchown32" }, /* 207 */
+ { 3, 0, printargs, "setresuid32" }, /* 208 */
+ { 3, 0, printargs, "getresuid32" }, /* 209 */
+ { 3, 0, printargs, "setresgid32" }, /* 210 */
+ { 3, 0, printargs, "getresgid32" }, /* 211 */
+ { 3, TF, printargs, "chown32" }, /* 212 */
+ { 1, 0, printargs, "setuid32" }, /* 213 */
+ { 1, 0, printargs, "setgid32" }, /* 214 */
+ { 1, 0, printargs, "setfsuid32" }, /* 215 */
+ { 1, 0, printargs, "setfsgid32" }, /* 216 */
+ { 2, TF, sys_pivotroot, "pivot_root" }, /* 217 */
+ { 3, 0, printargs, "mincore" }, /* 218 */
+ { 3, 0, sys_madvise, "madvise" }, /* 219 */
+ { 3, TN, sys_socket, "socket" }, /* 220 */
+ { 3, TN, sys_bind, "bind" }, /* 221 */
+ { 3, TN, sys_connect, "connect" }, /* 222 */
+ { 2, TN, sys_listen, "listen" }, /* 223 */
+ { 3, TN, sys_accept, "accept" }, /* 224 */
+ { 3, TN, sys_getsockname, "getsockname" }, /* 225 */
+ { 3, TN, sys_getpeername, "getpeername" }, /* 226 */
+ { 4, TN, sys_socketpair, "socketpair" }, /* 227 */
+ { 4, TN, sys_send, "send" }, /* 228 */
+ { 6, TN, sys_sendto, "sendto" }, /* 229 */
+ { 4, TN, sys_recv, "recv" }, /* 230 */
+ { 6, TN, sys_recvfrom, "recvfrom" }, /* 231 */
+ { 2, TN, sys_shutdown, "shutdown" }, /* 232 */
+ { 5, TN, sys_setsockopt, "setsockopt" }, /* 233 */
+ { 5, TN, sys_getsockopt, "getsockopt" }, /* 234 */
+ { 5, TN, sys_sendmsg, "sendmsg" }, /* 235 */
+ { 5, TN, sys_recvmsg, "recvmsg" }, /* 236 */
+ { 4, TI, sys_semop, "semop" }, /* 237 */
+ { 4, TI, sys_semget, "semget" }, /* 238 */
+ { 4, TI, sys_semctl, "semctl" }, /* 239 */
+ { 4, TI, sys_msgsnd, "msgsnd" }, /* 240 */
+ { 4, TI, sys_msgrcv, "msgrcv" }, /* 241 */
+ { 4, TI, sys_msgget, "msgget" }, /* 242 */
+ { 4, TI, sys_msgctl, "msgctl" }, /* 243 */
+ { 4, TI, sys_shmat, "shmat" }, /* 244 */
+ { 4, TI, sys_shmdt, "shmdt" }, /* 245 */
+ { 4, TI, sys_shmget, "shmget" }, /* 246 */
+ { 4, TI, sys_shmctl, "shmctl" }, /* 247 */
+ { 5, 0, printargs, "SYS_248" }, /* 248 */
+ { 5, 0, printargs, "SYS_249" }, /* 249 */
+ { 5, 0, printargs, "SYS_250" }, /* 250 */
+ { 5, 0, printargs, "SYS_251" }, /* 251 */
+ { 5, 0, printargs, "SYS_252" }, /* 252 */
+ { 5, 0, printargs, "SYS_253" }, /* 253 */
+ { 5, 0, printargs, "SYS_254" }, /* 254 */
+ { 5, 0, printargs, "SYS_255" }, /* 255 */
+ { 5, 0, printargs, "SYS_256" }, /* 256 */
+ { 5, 0, printargs, "SYS_257" }, /* 257 */
+ { 5, 0, printargs, "SYS_258" }, /* 258 */
+ { 5, 0, printargs, "SYS_259" }, /* 259 */
+ { 5, 0, printargs, "SYS_260" }, /* 260 */
+ { 5, 0, printargs, "SYS_261" }, /* 261 */
+ { 5, 0, printargs, "SYS_262" }, /* 262 */
+ { 5, 0, printargs, "SYS_263" }, /* 263 */
+ { 5, 0, printargs, "SYS_264" }, /* 264 */
+ { 5, 0, printargs, "SYS_265" }, /* 265 */
+ { 5, 0, printargs, "SYS_266" }, /* 266 */
+ { 5, 0, printargs, "SYS_267" }, /* 267 */
+ { 5, 0, printargs, "SYS_268" }, /* 268 */
+ { 5, 0, printargs, "SYS_269" }, /* 269 */
+ { 5, 0, printargs, "SYS_270" }, /* 270 */
+ { 5, 0, printargs, "SYS_271" }, /* 271 */
+ { 5, 0, printargs, "SYS_272" }, /* 272 */
+ { 5, 0, printargs, "SYS_273" }, /* 273 */
+ { 5, 0, printargs, "SYS_274" }, /* 274 */
+ { 5, 0, printargs, "SYS_275" }, /* 275 */
+ { 5, 0, printargs, "SYS_276" }, /* 276 */
+ { 5, 0, printargs, "SYS_277" }, /* 277 */
+ { 5, 0, printargs, "SYS_278" }, /* 278 */
+ { 5, 0, printargs, "SYS_279" }, /* 279 */
+ { 5, 0, printargs, "SYS_280" }, /* 280 */
+ { 5, 0, printargs, "SYS_281" }, /* 281 */
+ { 5, 0, printargs, "SYS_282" }, /* 282 */
+ { 5, 0, printargs, "SYS_283" }, /* 283 */
+ { 5, 0, printargs, "SYS_284" }, /* 284 */
+ { 5, 0, printargs, "SYS_285" }, /* 285 */
+ { 5, 0, printargs, "SYS_286" }, /* 286 */
+ { 5, 0, printargs, "SYS_287" }, /* 287 */
+ { 5, 0, printargs, "SYS_288" }, /* 288 */
+ { 5, 0, printargs, "SYS_289" }, /* 289 */
+ { 5, 0, printargs, "SYS_290" }, /* 290 */
+ { 5, 0, printargs, "SYS_291" }, /* 291 */
+ { 5, 0, printargs, "SYS_292" }, /* 292 */
+ { 5, 0, printargs, "SYS_293" }, /* 293 */
+ { 5, 0, printargs, "SYS_294" }, /* 294 */
+ { 5, 0, printargs, "SYS_295" }, /* 295 */
+ { 5, 0, printargs, "SYS_296" }, /* 296 */
+ { 5, 0, printargs, "SYS_297" }, /* 297 */
+ { 5, 0, printargs, "SYS_298" }, /* 298 */
+ { 5, 0, printargs, "SYS_299" }, /* 299 */
+ { 8, 0, printargs, "socket_subcall"}, /* 300 */
+ { 3, TN, sys_socket, "socket" }, /* 301 */
+ { 3, TN, sys_bind, "bind" }, /* 302 */
+ { 3, TN, sys_connect, "connect" }, /* 303 */
+ { 2, TN, sys_listen, "listen" }, /* 304 */
+ { 3, TN, sys_accept, "accept" }, /* 305 */
+ { 3, TN, sys_getsockname, "getsockname" }, /* 306 */
+ { 3, TN, sys_getpeername, "getpeername" }, /* 307 */
+ { 4, TN, sys_socketpair, "socketpair" }, /* 308 */
+ { 4, TN, sys_send, "send" }, /* 309 */
+ { 4, TN, sys_recv, "recv" }, /* 310 */
+ { 6, TN, sys_sendto, "sendto" }, /* 311 */
+ { 6, TN, sys_recvfrom, "recvfrom" }, /* 312 */
+ { 2, TN, sys_shutdown, "shutdown" }, /* 313 */
+ { 5, TN, sys_setsockopt, "setsockopt" }, /* 314 */
+ { 5, TN, sys_getsockopt, "getsockopt" }, /* 315 */
+ { 5, TN, sys_sendmsg, "sendmsg" }, /* 316 */
+ { 5, TN, sys_recvmsg, "recvmsg" }, /* 317 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 318 */
diff --git a/strace/linux/signalent.h b/strace/linux/signalent.h
new file mode 100644
index 0000000..112f746
--- /dev/null
+++ b/strace/linux/signalent.h
@@ -0,0 +1,33 @@
+ "SIG_0", /* 0 */
+ "SIGHUP", /* 1 */
+ "SIGINT", /* 2 */
+ "SIGQUIT", /* 3 */
+ "SIGILL", /* 4 */
+ "SIGTRAP", /* 5 */
+ "SIGABRT", /* 6 */
+ "SIGBUS", /* 7 */
+ "SIGFPE", /* 8 */
+ "SIGKILL", /* 9 */
+ "SIGUSR1", /* 10 */
+ "SIGSEGV", /* 11 */
+ "SIGUSR2", /* 12 */
+ "SIGPIPE", /* 13 */
+ "SIGALRM", /* 14 */
+ "SIGTERM", /* 15 */
+ "SIGSTKFLT", /* 16 */
+ "SIGCHLD", /* 17 */
+ "SIGCONT", /* 18 */
+ "SIGSTOP", /* 19 */
+ "SIGTSTP", /* 20 */
+ "SIGTTIN", /* 21 */
+ "SIGTTOU", /* 22 */
+ "SIGURG", /* 23 */
+ "SIGXCPU", /* 24 */
+ "SIGXFSZ", /* 25 */
+ "SIGVTALRM", /* 26 */
+ "SIGPROF", /* 27 */
+ "SIGWINCH", /* 28 */
+ "SIGIO", /* 29 */
+ "SIGPWR", /* 30 */
+ "SIGSYS", /* 31 */
+ "SIGRTMIN", /* 32 */
diff --git a/strace/linux/sparc/dummy2.h b/strace/linux/sparc/dummy2.h
new file mode 100644
index 0000000..79c7753
--- /dev/null
+++ b/strace/linux/sparc/dummy2.h
@@ -0,0 +1,282 @@
+/*
+ * Copyright (c) 1993, 1994, 1995 Rick Sladkey <jrs@world.std.com>
+ * 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.
+ *
+ * $Id: dummy2.h,v 1.1.1.1 1999/02/19 00:23:09 wichert Exp $
+ */
+
+/* still unfinished */
+
+#define solaris_sysmp printargs
+#define solaris_sginap printargs
+#define solaris_sgikopt printargs
+#define solaris_sysmips printargs
+#define solaris_sigreturn printargs
+#define solaris_recvmsg printargs
+#define solaris_sendmsg printargs
+#define solaris_nfssvc printargs
+#define solaris_getfh printargs
+#define solaris_async_daemon printargs
+#define solaris_exportfs printargs
+#define solaris_BSD_getime printargs
+#define solaris_sproc printargs
+#define solaris_procblk printargs
+#define solaris_sprocsp printargs
+#define solaris_msync printargs
+#define solaris_madvise printargs
+#define solaris_pagelock printargs
+#define solaris_quotactl printargs
+#define solaris_cacheflush printargs
+#define solaris_cachectl printargs
+#define solaris_nuname printargs
+#define solaris_sigpoll printargs
+#define solaris_swapctl printargs
+#define solaris_sigstack printargs
+#define solaris_sigsendset printargs
+#define solaris_priocntl printargs
+#define solaris_ksigqueue printargs
+#define solaris_lwp_sema_wait printargs
+#define solaris_memcntl printargs
+#define solaris_syscall printargs
+#define solaris_clocal printargs
+#define solaris_syssun printargs
+#define solaris_sysi86 printargs
+#define solaris_sysmachine printargs
+#define solaris_plock printargs
+#define solaris_pathconf printargs
+#define solaris_sigtimedwait printargs
+#define solaris_ulimit printargs
+#define solaris_ptrace printargs
+#define solaris_stty printargs
+#define solaris_lwp_info printargs
+#define solaris_priocntlsys printargs
+#define solaris_hrtsys printargs
+#define solaris_xenix printargs
+#define solaris_statfs printargs
+#define solaris_fstatfs printargs
+#define solaris_statvfs printargs
+#define solaris_fstatvfs printargs
+#define solaris_fork1 printargs
+#define solaris_sigsendsys printargs
+#define solaris_gtty printargs
+#define solaris_vtrace printargs
+#define solaris_fpathconf printargs
+#define solaris_evsys printargs
+#define solaris_acct printargs
+#define solaris_exec printargs
+#define solaris_lwp_sema_post printargs
+#define solaris_nfssys printargs
+#define solaris_sigaltstack printargs
+#define solaris_uadmin printargs
+#define solaris_umount printargs
+#define solaris_modctl printargs
+#define solaris_acancel printargs
+#define solaris_async printargs
+#define solaris_evtrapret printargs
+#define solaris_lwp_create printargs
+#define solaris_lwp_exit printargs
+#define solaris_lwp_suspend printargs
+#define solaris_lwp_continue printargs
+#define solaris_lwp_kill printargs
+#define solaris_lwp_self printargs
+#define solaris_lwp_setprivate printargs
+#define solaris_lwp_getprivate printargs
+#define solaris_lwp_wait printargs
+#define solaris_lwp_mutex_unlock printargs
+#define solaris_lwp_mutex_lock printargs
+#define solaris_lwp_cond_wait printargs
+#define solaris_lwp_cond_signal printargs
+#define solaris_lwp_cond_broadcast printargs
+#define solaris_llseek printargs
+#define solaris_inst_sync printargs
+#define solaris_auditsys printargs
+#define solaris_processor_bind printargs
+#define solaris_processor_info printargs
+#define solaris_p_online printargs
+#define solaris_sigqueue printargs
+#define solaris_clock_gettime printargs
+#define solaris_clock_settime printargs
+#define solaris_clock_getres printargs
+#define solaris_nanosleep printargs
+#define solaris_timer_create printargs
+#define solaris_timer_delete printargs
+#define solaris_timer_settime printargs
+#define solaris_timer_gettime printargs
+#define solaris_timer_getoverrun printargs
+#define solaris_signal printargs
+#define solaris_sigset printargs
+#define solaris_sighold printargs
+#define solaris_sigrelse printargs
+#define solaris_sigignore printargs
+#define solaris_sigpause printargs
+#define solaris_msgctl printargs
+#define solaris_msgget printargs
+#define solaris_msgrcv printargs
+#define solaris_msgsnd printargs
+#define solaris_shmat printargs
+#define solaris_shmctl printargs
+#define solaris_shmdt printargs
+#define solaris_shmget printargs
+#define solaris_semctl printargs
+#define solaris_semget printargs
+#define solaris_semop printargs
+#define solaris_olduname printargs
+#define solaris_ustat printargs
+#define solaris_fusers printargs
+#define solaris_sysfs1 printargs
+#define solaris_sysfs2 printargs
+#define solaris_sysfs3 printargs
+
+/* like another call */
+#define solaris_lchown solaris_chown
+#define solaris_setuid solaris_close
+#define solaris_seteuid solaris_close
+#define solaris_setgid solaris_close
+#define solaris_setegid solaris_close
+#define solaris_vhangup solaris_close
+#define solaris_fdsync solaris_close
+#define solaris_sigfillset solaris_sigpending
+#define solaris_vfork solaris_fork
+#define solaris_ksigaction solaris_sigaction
+#define solaris_BSDgetpgrp solaris_getpgrp
+#define solaris_BSDsetpgrp solaris_setpgrp
+#define solaris_waitsys solaris_waitid
+
+/* printargs does the right thing */
+#define solaris_sync printargs
+#define solaris_profil printargs
+#define solaris_yield printargs
+#define solaris_pause printargs
+#define solaris_sethostid printargs
+
+/* subfunction entry points */
+#define solaris_pgrpsys printargs
+#define solaris_sigcall printargs
+#define solaris_msgsys printargs
+#define solaris_shmsys printargs
+#define solaris_semsys printargs
+#define solaris_utssys printargs
+#define solaris_sysfs printargs
+#define solaris_spcall printargs
+#define solaris_context printargs
+
+/* same as linux */
+#define solaris_exit sys_exit
+#define solaris_fork sys_fork
+#define solaris_read sys_read
+#define solaris_write sys_write
+#define solaris_close sys_close
+#define solaris_creat sys_creat
+#define solaris_link sys_link
+#define solaris_unlink sys_unlink
+#define solaris_chdir sys_chdir
+#define solaris_time sys_time
+#define solaris_chmod sys_chmod
+#define solaris_lseek sys_lseek
+#define solaris_stime sys_stime
+#define solaris_alarm sys_alarm
+#define solaris_utime sys_utime
+#define solaris_access sys_access
+#define solaris_nice sys_nice
+#define solaris_dup sys_dup
+#define solaris_pipe sys_pipe
+#define solaris_times sys_times
+#define solaris_execve sys_execve
+#define solaris_umask sys_umask
+#define solaris_chroot sys_chroot
+#define solaris_rmdir sys_rmdir
+#define solaris_mkdir sys_mkdir
+#define solaris_getdents sys_getdents
+#define solaris_poll sys_poll
+#define solaris_symlink sys_symlink
+#define solaris_readlink sys_readlink
+#define solaris_setgroups sys_setgroups
+#define solaris_getgroups sys_getgroups
+#define solaris_fchmod sys_fchmod
+#define solaris_fchown sys_fchown
+#define solaris_mprotect sys_mprotect
+#define solaris_munmap sys_munmap
+#define solaris_readv sys_readv
+#define solaris_writev sys_writev
+#define solaris_chown sys_chown
+#define solaris_rename sys_rename
+#define solaris_gettimeofday sys_gettimeofday
+#define solaris_getitimer sys_getitimer
+#define solaris_setitimer sys_setitimer
+#define solaris_brk sys_brk
+#define solaris_mmap sys_mmap
+#define solaris_getsid sys_getsid
+#define solaris_setsid sys_setsid
+#define solaris_getpgid sys_getpgid
+#define solaris_setpgid sys_setpgid
+#define solaris_getpgrp sys_getpgrp
+
+/* These are handled according to current_personality */
+#define solaris_xstat sys_xstat
+#define solaris_fxstat sys_fxstat
+#define solaris_lxstat sys_lxstat
+#define solaris_xmknod sys_xmknod
+#define solaris_stat sys_stat
+#define solaris_fstat sys_fstat
+#define solaris_lstat sys_lstat
+#define solaris_pread sys_pread
+#define solaris_pwrite sys_pwrite
+#define solaris_ioctl sys_ioctl
+#define solaris_mknod sys_mknod
+
+/* To be done */
+#define solaris_mount printargs
+#define solaris_sysinfo printargs
+#define solaris_sysconfig printargs
+#define solaris_getpmsg printargs
+#define solaris_putpmsg printargs
+#define solaris_wait printargs
+#define solaris_waitid printargs
+#define solaris_sigsuspend printargs
+#define solaris_setpgrp printargs
+#define solaris_getcontext printargs
+#define solaris_setcontext printargs
+#define solaris_getpid printargs
+#define solaris_getuid printargs
+#define solaris_kill printargs
+#define solaris_getgid printargs
+#define solaris_fcntl printargs
+#define solaris_getmsg printargs
+#define solaris_putmsg printargs
+#define solaris_sigprocmask printargs
+#define solaris_sigaction printargs
+#define solaris_sigpending printargs
+#define solaris_mincore printargs
+#define solaris_fchdir printargs
+#define solaris_setrlimit printargs
+#define solaris_getrlimit printargs
+#define solaris_uname printargs
+#define solaris_adjtime printargs
+#define solaris_fchroot printargs
+#define solaris_utimes printargs
+
+#if DONE
+#define solaris_open printargs
+#endif
diff --git a/strace/linux/sparc/errnoent.h b/strace/linux/sparc/errnoent.h
new file mode 100644
index 0000000..d243699
--- /dev/null
+++ b/strace/linux/sparc/errnoent.h
@@ -0,0 +1,127 @@
+ "ERRNO_0", /* 0 */
+ "EPERM", /* 1 */
+ "ENOENT", /* 2 */
+ "ESRCH", /* 3 */
+ "EINTR", /* 4 */
+ "EIO", /* 5 */
+ "ENXIO", /* 6 */
+ "E2BIG", /* 7 */
+ "ENOEXEC", /* 8 */
+ "EBADF", /* 9 */
+ "ECHILD", /* 10 */
+ "EAGAIN", /* 11 */
+ "ENOMEM", /* 12 */
+ "EACCES", /* 13 */
+ "EFAULT", /* 14 */
+ "ENOTBLK", /* 15 */
+ "EBUSY", /* 16 */
+ "EEXIST", /* 17 */
+ "EXDEV", /* 18 */
+ "ENODEV", /* 19 */
+ "ENOTDIR", /* 20 */
+ "EISDIR", /* 21 */
+ "EINVAL", /* 22 */
+ "ENFILE", /* 23 */
+ "EMFILE", /* 24 */
+ "ENOTTY", /* 25 */
+ "ETXTBSY", /* 26 */
+ "EFBIG", /* 27 */
+ "ENOSPC", /* 28 */
+ "ESPIPE", /* 29 */
+ "EROFS", /* 30 */
+ "EMLINK", /* 31 */
+ "EPIPE", /* 32 */
+ "EDOM", /* 33 */
+ "ERANGE", /* 34 */
+ "EWOULDBLOCK", /* 35 */
+ "EINPROGRESS", /* 36 */
+ "EALREADY", /* 37 */
+ "ENOTSOCK", /* 38 */
+ "EDESTADDRREQ", /* 39 */
+ "EMSGSIZE", /* 40 */
+ "EPROTOTYPE", /* 41 */
+ "ENOPROTOOPT", /* 42 */
+ "EPROTONOSUPPORT", /* 43 */
+ "ESOCKTNOSUPPORT", /* 44 */
+ "EOPNOTSUPP", /* 45 */
+ "EPFNOSUPPORT", /* 46 */
+ "EAFNOSUPPORT", /* 47 */
+ "EADDRINUSE", /* 48 */
+ "EADDRNOTAVAIL", /* 49 */
+ "ENETDOWN", /* 50 */
+ "ENETUNREACH", /* 51 */
+ "ENETRESET", /* 52 */
+ "ECONNABORTED", /* 53 */
+ "ECONNRESET", /* 54 */
+ "ENOBUFS", /* 55 */
+ "EISCONN", /* 56 */
+ "ENOTCONN", /* 57 */
+ "ESHUTDOWN", /* 58 */
+ "ETOOMANYREFS", /* 59 */
+ "ETIMEDOUT", /* 60 */
+ "ECONNREFUSED", /* 61 */
+ "ELOOP", /* 62 */
+ "ENAMETOOLONG", /* 63 */
+ "EHOSTDOWN", /* 64 */
+ "EHOSTUNREACH", /* 65 */
+ "ENOTEMPTY", /* 66 */
+ "EPROCLIM", /* 67 */
+ "EUSERS", /* 68 */
+ "EDQUOT", /* 69 */
+ "ESTALE", /* 70 */
+ "EREMOTE", /* 71 */
+ "ENOSTR", /* 72 */
+ "ETIME", /* 73 */
+ "ENOSR", /* 74 */
+ "ENOMSG", /* 75 */
+ "EBADMSG", /* 76 */
+ "EIDRM", /* 77 */
+ "EDEADLK", /* 78 */
+ "ENOLCK", /* 79 */
+ "ENONET", /* 80 */
+ "ERREMOTE", /* 81 */
+ "ENOLINK", /* 82 */
+ "EADV", /* 83 */
+ "ESRMNT", /* 84 */
+ "ECOMM", /* 85 */
+ "EPROTO", /* 86 */
+ "EMULTIHOP", /* 87 */
+ "EDOTDOT", /* 88 */
+ "EREMCHG", /* 89 */
+ "ENOSYS", /* 90 */
+ "ESTRPIPE", /* 91 */
+ "EOVERFLOW", /* 92 */
+ "EBADFD", /* 93 */
+ "ECHRNG", /* 94 */
+ "EL2NSYNC", /* 95 */
+ "EL3HLT", /* 96 */
+ "EL3RST", /* 97 */
+ "ELNRNG", /* 98 */
+ "EUNATCH", /* 99 */
+ "ENOCSI", /* 100 */
+ "EL2HLT", /* 101 */
+ "EBADE", /* 102 */
+ "EBADR", /* 103 */
+ "EXFULL", /* 104 */
+ "ENOANO", /* 105 */
+ "EBADRQC", /* 106 */
+ "EBADSLT", /* 107 */
+ "EDEADLOCK", /* 108 */
+ "EBFONT", /* 109 */
+ "ELIBEXEC", /* 110 */
+ "ENODATA", /* 111 */
+ "ELIBBAD", /* 112 */
+ "ENOPKG", /* 113 */
+ "ELIBACC", /* 114 */
+ "ENOTUNIQ", /* 115 */
+ "ERESTART", /* 116 */
+ "EUCLEAN", /* 117 */
+ "ENOTNAM", /* 118 */
+ "ENAVAIL", /* 119 */
+ "EISNAM", /* 120 */
+ "EREMOTEIO", /* 121 */
+ "EILSEQ", /* 122 */
+ "ELIBMAX", /* 123 */
+ "ELIBSCN", /* 124 */
+ "ENOMEDIUM", /* 125 */
+ "EMEDIUMTYPE", /* 126 */
diff --git a/strace/linux/sparc/errnoent1.h b/strace/linux/sparc/errnoent1.h
new file mode 100644
index 0000000..4d750bd
--- /dev/null
+++ b/strace/linux/sparc/errnoent1.h
@@ -0,0 +1 @@
+#include "../svr4/errnoent.h"
diff --git a/strace/linux/sparc/gen.pl b/strace/linux/sparc/gen.pl
new file mode 100644
index 0000000..1a320ee
--- /dev/null
+++ b/strace/linux/sparc/gen.pl
@@ -0,0 +1,38 @@
+open SPARC, "syscallent.h" || die "no puedo abrir el de la sparc";
+open ALPHA, "../alpha/syscallent.h" || die "no puedo abrir el de la alpha";
+open PC, "../syscallent.h" || die "no puedo abrir PC\n";
+
+while (<SPARC>) {
+ chop;
+ ($i1, $i2, $i3, $syscall, $syscall_name) = split;
+ $strn[$index] = $syscall_name;
+ $name[$index++] = $syscall;
+}
+
+while (<ALPHA>){
+ if (/\{/) {
+ ($i1, $n, $pr, $syscall) = split;
+ $par{$syscall} = $n;
+ $prr{$syscall} = $pr;
+ }
+}
+
+while (<PC>){
+ if (/\{/) {
+ ($i1, $n, $pr, $syscall) = split;
+ $par{$syscall} = $n;
+ $prr{$syscall} = $pr;
+ }
+}
+
+print "missing \n";
+
+for ($i = 0; $i < $index; $i++){
+ $x = $name[$i];
+ $y = $strn[$i];
+ $n = $par{$x};
+ $p = $prr{$x};
+ $j++;
+ print "\t{ $n\t$p\t$x\t$y },\t /* $j */\n";
+}
+
diff --git a/strace/linux/sparc/ioctlent.h b/strace/linux/sparc/ioctlent.h
new file mode 100644
index 0000000..c1d6b8a
--- /dev/null
+++ b/strace/linux/sparc/ioctlent.h
@@ -0,0 +1,838 @@
+ {"linux/fs.h", "FIBMAP", 0x1},
+ {"linux/fs.h", "FIGETBSZ", 0x2},
+ {"linux/fd.h", "FDGETPRM", 0x204},
+ {"linux/fd.h", "FDGETMAXERRS", 0x20e},
+ {"linux/fd.h", "FDGETDRVTYP", 0x20f},
+ {"linux/fd.h", "FDGETDRVPRM", 0x211},
+ {"linux/fd.h", "FDGETDRVSTAT", 0x212},
+ {"linux/fd.h", "FDPOLLDRVSTAT", 0x213},
+ {"linux/fd.h", "FDGETFDCSTAT", 0x215},
+ {"linux/fd.h", "FDWERRORGET", 0x217},
+ {"linux/fd.h", "FDCLRPRM", 0x241},
+ {"linux/fd.h", "FDSETPRM", 0x242},
+ {"linux/fd.h", "FDDEFPRM", 0x243},
+ {"linux/fd.h", "FDMSGON", 0x245},
+ {"linux/fd.h", "FDMSGOFF", 0x246},
+ {"linux/fd.h", "FDFMTBEG", 0x247},
+ {"linux/fd.h", "FDFMTTRK", 0x248},
+ {"linux/fd.h", "FDFMTEND", 0x249},
+ {"linux/fd.h", "FDSETEMSGTRESH", 0x24a},
+ {"linux/fd.h", "FDFLUSH", 0x24b},
+ {"linux/fd.h", "FDSETMAXERRS", 0x24c},
+ {"linux/fd.h", "FDRESET", 0x254},
+ {"linux/fd.h", "FDWERRORCLR", 0x256},
+ {"linux/fd.h", "FDRAWCMD", 0x258},
+ {"linux/fd.h", "FDTWADDLE", 0x259},
+ {"linux/fd.h", "FDEJECT", 0x25a},
+ {"linux/fd.h", "FDSETDRVPRM", 0x290},
+ {"linux/umsdos_fs.h", "UMSDOS_READDIR_DOS", 0x4d2},
+ {"linux/umsdos_fs.h", "UMSDOS_UNLINK_DOS", 0x4d3},
+ {"linux/umsdos_fs.h", "UMSDOS_RMDIR_DOS", 0x4d4},
+ {"linux/umsdos_fs.h", "UMSDOS_STAT_DOS", 0x4d5},
+ {"linux/umsdos_fs.h", "UMSDOS_CREAT_EMD", 0x4d6},
+ {"linux/umsdos_fs.h", "UMSDOS_UNLINK_EMD", 0x4d7},
+ {"linux/umsdos_fs.h", "UMSDOS_READDIR_EMD", 0x4d8},
+ {"linux/umsdos_fs.h", "UMSDOS_GETVERSION", 0x4d9},
+ {"linux/umsdos_fs.h", "UMSDOS_INIT_EMD", 0x4da},
+ {"linux/umsdos_fs.h", "UMSDOS_DOS_SETUP", 0x4db},
+ {"linux/umsdos_fs.h", "UMSDOS_RENAME_DOS", 0x4dc},
+ {"linux/fs.h", "BLKROSET", 0x125d},
+ {"linux/fs.h", "BLKROGET", 0x125e},
+ {"linux/fs.h", "BLKRRPART", 0x125f},
+ {"linux/fs.h", "BLKGETSIZE", 0x1260},
+ {"linux/fs.h", "BLKFLSBUF", 0x1261},
+ {"linux/fs.h", "BLKRASET", 0x1262},
+ {"linux/fs.h", "BLKRAGET", 0x1263},
+ {"linux/fs.h", "BLKFRASET", 0x1264},
+ {"linux/fs.h", "BLKFRAGET", 0x1265},
+ {"linux/fs.h", "BLKSECTSET", 0x1266},
+ {"linux/fs.h", "BLKSECTGET", 0x1267},
+ {"linux/fs.h", "BLKSSZGET", 0x1268},
+ {"linux/blkpg.h", "BLKPG", 0x1269},
+ {"linux/fs.h", "BLKPG", 0x1269},
+ {"linux/elevator.h", "BLKELVGET", 0x126a},
+ {"linux/fs.h", "BLKELVGET", 0x126a},
+ {"linux/elevator.h", "BLKELVSET", 0x126b},
+ {"linux/fs.h", "BLKELVSET", 0x126b},
+ {"linux/fs.h", "BLKBSZGET", 0x1270},
+ {"linux/fs.h", "BLKBSZSET", 0x1271},
+ {"linux/fs.h", "BLKGETSIZE64", 0x1272},
+ {"linux/agpgart.h", "AGPIOC_INFO", 0x4100},
+ {"linux/agpgart.h", "AGPIOC_ACQUIRE", 0x4101},
+ {"linux/apm_bios.h", "APM_IOC_STANDBY", 0x4101},
+ {"linux/agpgart.h", "AGPIOC_RELEASE", 0x4102},
+ {"linux/apm_bios.h", "APM_IOC_SUSPEND", 0x4102},
+ {"linux/agpgart.h", "AGPIOC_SETUP", 0x4103},
+ {"linux/agpgart.h", "AGPIOC_RESERVE", 0x4104},
+ {"linux/agpgart.h", "AGPIOC_PROTECT", 0x4105},
+ {"linux/agpgart.h", "AGPIOC_ALLOCATE", 0x4106},
+ {"linux/agpgart.h", "AGPIOC_DEALLOCATE", 0x4107},
+ {"linux/agpgart.h", "AGPIOC_BIND", 0x4108},
+ {"linux/agpgart.h", "AGPIOC_UNBIND", 0x4109},
+ {"linux/pmu.h", "PMU_IOC_SLEEP", 0x4200},
+ {"linux/cciss_ioctl.h", "CCISS_GETPCIINFO", 0x4201},
+ {"linux/pmu.h", "PMU_IOC_GET_BACKLIGHT", 0x4201},
+ {"linux/cciss_ioctl.h", "CCISS_GETINTINFO", 0x4202},
+ {"linux/pmu.h", "PMU_IOC_SET_BACKLIGHT", 0x4202},
+ {"linux/cciss_ioctl.h", "CCISS_SETINTINFO", 0x4203},
+ {"linux/pmu.h", "PMU_IOC_GET_MODEL", 0x4203},
+ {"linux/cciss_ioctl.h", "CCISS_GETNODENAME", 0x4204},
+ {"linux/pmu.h", "PMU_IOC_HAS_ADB", 0x4204},
+ {"linux/cciss_ioctl.h", "CCISS_SETNODENAME", 0x4205},
+ {"linux/pmu.h", "PMU_IOC_CAN_SLEEP", 0x4205},
+ {"linux/cciss_ioctl.h", "CCISS_GETHEARTBEAT", 0x4206},
+ {"linux/cciss_ioctl.h", "CCISS_GETBUSTYPES", 0x4207},
+ {"linux/cciss_ioctl.h", "CCISS_GETFIRMVER", 0x4208},
+ {"linux/cciss_ioctl.h", "CCISS_GETDRIVVER", 0x4209},
+ {"linux/cciss_ioctl.h", "CCISS_REVALIDVOLS", 0x420a},
+ {"linux/cciss_ioctl.h", "CCISS_PASSTHRU", 0x420b},
+ {"linux/soundcard.h", "SNDCTL_COPR_RESET", 0x4300},
+ {"linux/capi.h", "CAPI_REGISTER", 0x4301},
+ {"linux/soundcard.h", "SNDCTL_COPR_LOAD", 0x4301},
+ {"linux/soundcard.h", "SNDCTL_COPR_RDATA", 0x4302},
+ {"linux/soundcard.h", "SNDCTL_COPR_RCODE", 0x4303},
+ {"linux/soundcard.h", "SNDCTL_COPR_WDATA", 0x4304},
+ {"linux/soundcard.h", "SNDCTL_COPR_WCODE", 0x4305},
+ {"linux/capi.h", "CAPI_GET_MANUFACTURER", 0x4306},
+ {"linux/soundcard.h", "SNDCTL_COPR_RUN", 0x4306},
+ {"linux/capi.h", "CAPI_GET_VERSION", 0x4307},
+ {"linux/soundcard.h", "SNDCTL_COPR_HALT", 0x4307},
+ {"linux/capi.h", "CAPI_GET_SERIAL", 0x4308},
+ {"linux/soundcard.h", "SNDCTL_COPR_SENDMSG", 0x4308},
+ {"linux/capi.h", "CAPI_GET_PROFILE", 0x4309},
+ {"linux/soundcard.h", "SNDCTL_COPR_RCVMSG", 0x4309},
+ {"linux/capi.h", "CAPI_MANUFACTURER_CMD", 0x4320},
+ {"linux/capi.h", "CAPI_GET_ERRCODE", 0x4321},
+ {"linux/capi.h", "CAPI_INSTALLED", 0x4322},
+ {"linux/capi.h", "CAPI_GET_FLAGS", 0x4323},
+ {"linux/capi.h", "CAPI_SET_FLAGS", 0x4324},
+ {"linux/capi.h", "CAPI_CLR_FLAGS", 0x4325},
+ {"linux/capi.h", "CAPI_NCCI_OPENCOUNT", 0x4326},
+ {"linux/capi.h", "CAPI_NCCI_GETUNIT", 0x4327},
+ {"linux/input.h", "EVIOCGVERSION", 0x4501},
+ {"linux/input.h", "EVIOCGID", 0x4502},
+ {"linux/input.h", "EVIOCGREP", 0x4503},
+ {"linux/input.h", "EVIOCSREP", 0x4503},
+ {"linux/input.h", "EVIOCGKEYCODE", 0x4504},
+ {"linux/input.h", "EVIOCSKEYCODE", 0x4504},
+ {"linux/input.h", "EVIOCGKEY", 0x4505},
+ {"linux/input.h", "EVIOCGBUS", 0x4507},
+ {"linux/input.h", "EVIOCRMFF", 0x4581},
+ {"linux/input.h", "EVIOCSGAIN", 0x4582},
+ {"linux/input.h", "EVIOCSAUTOCENTER", 0x4583},
+ {"linux/input.h", "EVIOCGEFFECTS", 0x4584},
+ {"linux/fb.h", "FBIOGET_VBLANK", 0x4612},
+ {"linux/hiddev.h", "HIDIOCGVERSION", 0x4801},
+ {"linux/hiddev.h", "HIDIOCAPPLICATION", 0x4802},
+ {"linux/hiddev.h", "HIDIOCGDEVINFO", 0x4803},
+ {"linux/hiddev.h", "HIDIOCGSTRING", 0x4804},
+ {"linux/hiddev.h", "HIDIOCINITREPORT", 0x4805},
+ {"linux/hiddev.h", "HIDIOCGREPORT", 0x4807},
+ {"linux/hiddev.h", "HIDIOCSREPORT", 0x4808},
+ {"linux/hiddev.h", "HIDIOCGREPORTINFO", 0x4809},
+ {"linux/hiddev.h", "HIDIOCGFIELDINFO", 0x480a},
+ {"linux/hiddev.h", "HIDIOCGUSAGE", 0x480b},
+ {"linux/hiddev.h", "HIDIOCSUSAGE", 0x480c},
+ {"linux/hiddev.h", "HIDIOCGUCODE", 0x480d},
+ {"linux/isdn.h", "IIOCNETAIF", 0x4901},
+ {"linux/isdn.h", "IIOCNETDIF", 0x4902},
+ {"linux/isdn.h", "IIOCNETSCF", 0x4903},
+ {"linux/isdn.h", "IIOCNETGCF", 0x4904},
+ {"linux/isdn.h", "IIOCNETANM", 0x4905},
+ {"linux/isdn.h", "IIOCNETDNM", 0x4906},
+ {"linux/isdn.h", "IIOCNETGNM", 0x4907},
+ {"linux/isdn.h", "IIOCGETSET", 0x4908},
+ {"linux/isdn.h", "IIOCSETSET", 0x4909},
+ {"linux/isdn.h", "IIOCSETVER", 0x490a},
+ {"linux/isdn.h", "IIOCNETHUP", 0x490b},
+ {"linux/isdn.h", "IIOCSETGST", 0x490c},
+ {"linux/isdn.h", "IIOCSETBRJ", 0x490d},
+ {"linux/isdn.h", "IIOCSIGPRF", 0x490e},
+ {"linux/isdn.h", "IIOCGETPRF", 0x490f},
+ {"linux/isdn.h", "IIOCSETPRF", 0x4910},
+ {"linux/isdn.h", "IIOCGETMAP", 0x4911},
+ {"linux/isdn.h", "IIOCSETMAP", 0x4912},
+ {"linux/isdn.h", "IIOCNETASL", 0x4913},
+ {"linux/isdn.h", "IIOCNETDIL", 0x4914},
+ {"linux/isdn.h", "IIOCGETCPS", 0x4915},
+ {"linux/isdn.h", "IIOCGETDVR", 0x4916},
+ {"linux/isdn.h", "IIOCNETLCR", 0x4917},
+ {"linux/isdn.h", "IIOCNETDWRSET", 0x4918},
+ {"linux/isdn.h", "IIOCNETALN", 0x4920},
+ {"linux/isdn.h", "IIOCNETDLN", 0x4921},
+ {"linux/isdn.h", "IIOCNETGPN", 0x4922},
+ {"linux/isdn.h", "IIOCDBGVAR", 0x497f},
+ {"linux/isdn.h", "IIOCDRVCTL", 0x4980},
+ {"linux/soundcard.h", "SOUND_MIXER_INFO", 0x4d65},
+ {"linux/soundcard.h", "SOUND_OLD_MIXER_INFO", 0x4d65},
+ {"linux/soundcard.h", "SOUND_MIXER_ACCESS", 0x4d66},
+ {"linux/soundcard.h", "SOUND_MIXER_AGC", 0x4d67},
+ {"linux/soundcard.h", "SOUND_MIXER_3DSE", 0x4d68},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE1", 0x4d6f},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE2", 0x4d70},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE3", 0x4d71},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE4", 0x4d72},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE5", 0x4d73},
+ {"linux/soundcard.h", "SOUND_MIXER_GETLEVELS", 0x4d74},
+ {"linux/soundcard.h", "SOUND_MIXER_SETLEVELS", 0x4d75},
+ {"linux/soundcard.h", "OSS_GETVERSION", 0x4d76},
+ {"linux/soundcard.h", "SNDCTL_DSP_RESET", 0x5000},
+ {"linux/soundcard.h", "SNDCTL_DSP_SYNC", 0x5001},
+ {"linux/soundcard.h", "SNDCTL_DSP_SPEED", 0x5002},
+ {"linux/soundcard.h", "SOUND_PCM_READ_RATE", 0x5002},
+ {"linux/soundcard.h", "SNDCTL_DSP_STEREO", 0x5003},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETBLKSIZE", 0x5004},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETFMT", 0x5005},
+ {"linux/soundcard.h", "SOUND_PCM_READ_BITS", 0x5005},
+ {"linux/soundcard.h", "SNDCTL_DSP_CHANNELS", 0x5006},
+ {"linux/soundcard.h", "SOUND_PCM_READ_CHANNELS", 0x5006},
+ {"linux/soundcard.h", "SOUND_PCM_WRITE_FILTER", 0x5007},
+ {"linux/soundcard.h", "SOUND_PCM_READ_FILTER", 0x5007},
+ {"linux/soundcard.h", "SNDCTL_DSP_POST", 0x5008},
+ {"linux/soundcard.h", "SNDCTL_DSP_SUBDIVIDE", 0x5009},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETFRAGMENT", 0x500a},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETFMTS", 0x500b},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETOSPACE", 0x500c},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETISPACE", 0x500d},
+ {"linux/soundcard.h", "SNDCTL_DSP_NONBLOCK", 0x500e},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETCAPS", 0x500f},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETTRIGGER", 0x5010},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETTRIGGER", 0x5010},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETIPTR", 0x5011},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETOPTR", 0x5012},
+ {"linux/soundcard.h", "SNDCTL_DSP_MAPINBUF", 0x5013},
+ {"linux/soundcard.h", "SNDCTL_DSP_MAPOUTBUF", 0x5014},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETSYNCRO", 0x5015},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETDUPLEX", 0x5016},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETODELAY", 0x5017},
+ {"linux/soundcard.h", "SNDCTL_DSP_PROFILE", 0x5017},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETCHANNELMASK", 0x5040},
+ {"linux/soundcard.h", "SNDCTL_DSP_BIND_CHANNEL", 0x5041},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETSPDIF", 0x5042},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETSPDIF", 0x5043},
+ {"linux/soundcard.h", "SNDCTL_SEQ_RESET", 0x5100},
+ {"linux/soundcard.h", "SNDCTL_SEQ_SYNC", 0x5101},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_INFO", 0x5102},
+ {"linux/soundcard.h", "SNDCTL_SEQ_CTRLRATE", 0x5103},
+ {"linux/soundcard.h", "SNDCTL_SEQ_GETOUTCOUNT", 0x5104},
+ {"linux/soundcard.h", "SNDCTL_SEQ_GETINCOUNT", 0x5105},
+ {"linux/soundcard.h", "SNDCTL_SEQ_PERCMODE", 0x5106},
+ {"linux/soundcard.h", "SNDCTL_FM_LOAD_INSTR", 0x5107},
+ {"linux/soundcard.h", "SNDCTL_SEQ_TESTMIDI", 0x5108},
+ {"linux/soundcard.h", "SNDCTL_SEQ_RESETSAMPLES", 0x5109},
+ {"linux/soundcard.h", "SNDCTL_SEQ_NRSYNTHS", 0x510a},
+ {"linux/soundcard.h", "SNDCTL_SEQ_NRMIDIS", 0x510b},
+ {"linux/soundcard.h", "SNDCTL_MIDI_INFO", 0x510c},
+ {"linux/soundcard.h", "SNDCTL_SEQ_THRESHOLD", 0x510d},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_MEMAVL", 0x510e},
+ {"linux/soundcard.h", "SNDCTL_FM_4OP_ENABLE", 0x510f},
+ {"linux/soundcard.h", "SNDCTL_SEQ_PANIC", 0x5111},
+ {"linux/soundcard.h", "SNDCTL_SEQ_OUTOFBAND", 0x5112},
+ {"linux/soundcard.h", "SNDCTL_SEQ_GETTIME", 0x5113},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_ID", 0x5114},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_CONTROL", 0x5115},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_REMOVESAMPLE", 0x5116},
+ {"linux/random.h", "RNDGETENTCNT", 0x5200},
+ {"linux/random.h", "RNDADDTOENTCNT", 0x5201},
+ {"linux/random.h", "RNDGETPOOL", 0x5202},
+ {"linux/random.h", "RNDADDENTROPY", 0x5203},
+ {"linux/random.h", "RNDZAPENTCNT", 0x5204},
+ {"linux/random.h", "RNDCLEARPOOL", 0x5206},
+ {"asm/ioctls.h", "TCGETS", 0x5401},
+ {"linux/soundcard.h", "SNDCTL_TMR_TIMEBASE", 0x5401},
+ {"asm/ioctls.h", "TCSETS", 0x5402},
+ {"linux/soundcard.h", "SNDCTL_TMR_START", 0x5402},
+ {"asm/ioctls.h", "TCSETSW", 0x5403},
+ {"linux/soundcard.h", "SNDCTL_TMR_STOP", 0x5403},
+ {"asm/ioctls.h", "TCSETSF", 0x5404},
+ {"linux/soundcard.h", "SNDCTL_TMR_CONTINUE", 0x5404},
+ {"asm/ioctls.h", "TCGETA", 0x5405},
+ {"linux/soundcard.h", "SNDCTL_TMR_TEMPO", 0x5405},
+ {"asm/ioctls.h", "TCSETA", 0x5406},
+ {"linux/soundcard.h", "SNDCTL_TMR_SOURCE", 0x5406},
+ {"asm/ioctls.h", "TCSETAW", 0x5407},
+ {"linux/soundcard.h", "SNDCTL_TMR_METRONOME", 0x5407},
+ {"asm/ioctls.h", "TCSETAF", 0x5408},
+ {"linux/soundcard.h", "SNDCTL_TMR_SELECT", 0x5408},
+ {"asm/ioctls.h", "TCSBRK", 0x5409},
+ {"asm/ioctls.h", "TCXONC", 0x540a},
+ {"asm/ioctls.h", "TCFLSH", 0x540b},
+ {"asm/ioctls.h", "TIOCEXCL", 0x540c},
+ {"asm/ioctls.h", "TIOCNXCL", 0x540d},
+ {"asm/ioctls.h", "TIOCSCTTY", 0x540e},
+ {"asm/ioctls.h", "TIOCGPGRP", 0x540f},
+ {"asm/ioctls.h", "TIOCSPGRP", 0x5410},
+ {"asm/ioctls.h", "TIOCOUTQ", 0x5411},
+ {"asm/ioctls.h", "TIOCSTI", 0x5412},
+ {"asm/ioctls.h", "TIOCGWINSZ", 0x5413},
+ {"asm/ioctls.h", "TIOCSWINSZ", 0x5414},
+ {"asm/ioctls.h", "TIOCMGET", 0x5415},
+ {"asm/ioctls.h", "TIOCMBIS", 0x5416},
+ {"asm/ioctls.h", "TIOCMBIC", 0x5417},
+ {"asm/ioctls.h", "TIOCMSET", 0x5418},
+ {"asm/ioctls.h", "TIOCGSOFTCAR", 0x5419},
+ {"asm/ioctls.h", "TIOCSSOFTCAR", 0x541a},
+ {"asm/ioctls.h", "FIONREAD", 0x541b},
+ {"asm/ioctls.h", "TIOCLINUX", 0x541c},
+ {"asm/ioctls.h", "TIOCCONS", 0x541d},
+ {"asm/ioctls.h", "TIOCGSERIAL", 0x541e},
+ {"asm/ioctls.h", "TIOCSSERIAL", 0x541f},
+ {"asm/ioctls.h", "TIOCPKT", 0x5420},
+ {"asm/ioctls.h", "FIONBIO", 0x5421},
+ {"asm/ioctls.h", "TIOCNOTTY", 0x5422},
+ {"asm/ioctls.h", "TIOCSETD", 0x5423},
+ {"asm/ioctls.h", "TIOCGETD", 0x5424},
+ {"asm/ioctls.h", "TCSBRKP", 0x5425},
+ {"asm/ioctls.h", "TIOCTTYGSTRUCT", 0x5426},
+ {"asm/ioctls.h", "TIOCSBRK", 0x5427},
+ {"asm/ioctls.h", "TIOCCBRK", 0x5428},
+ {"asm/ioctls.h", "TIOCGSID", 0x5429},
+ {"asm/ioctls.h", "TIOCGPTN", 0x5430},
+ {"asm/ioctls.h", "TIOCSPTLCK", 0x5431},
+ {"asm/ioctls.h", "FIONCLEX", 0x5450},
+ {"asm/ioctls.h", "FIOCLEX", 0x5451},
+ {"asm/ioctls.h", "FIOASYNC", 0x5452},
+ {"asm/ioctls.h", "TIOCSERCONFIG", 0x5453},
+ {"asm/ioctls.h", "TIOCSERGWILD", 0x5454},
+ {"asm/ioctls.h", "TIOCSERSWILD", 0x5455},
+ {"asm/ioctls.h", "TIOCGLCKTRMIOS", 0x5456},
+ {"asm/ioctls.h", "TIOCSLCKTRMIOS", 0x5457},
+ {"asm/ioctls.h", "TIOCSERGSTRUCT", 0x5458},
+ {"asm/ioctls.h", "TIOCSERGETLSR", 0x5459},
+ {"asm/ioctls.h", "TIOCSERGETMULTI", 0x545a},
+ {"asm/ioctls.h", "TIOCSERSETMULTI", 0x545b},
+ {"asm/ioctls.h", "TIOCMIWAIT", 0x545c},
+ {"asm/ioctls.h", "TIOCGICOUNT", 0x545d},
+ {"asm/ioctls.h", "TIOCGHAYESESP", 0x545e},
+ {"asm/ioctls.h", "TIOCSHAYESESP", 0x545f},
+ {"linux/if_tun.h", "TUNSETNOCSUM", 0x54c8},
+ {"linux/if_tun.h", "TUNSETDEBUG", 0x54c9},
+ {"linux/if_tun.h", "TUNSETIFF", 0x54ca},
+ {"linux/if_tun.h", "TUNSETPERSIST", 0x54cb},
+ {"linux/if_tun.h", "TUNSETOWNER", 0x54cc},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CONTROL", 0x5500},
+ {"linux/usbdevice_fs.h", "USBDEVFS_BULK", 0x5502},
+ {"linux/usbdevice_fs.h", "USBDEVFS_RESETEP", 0x5503},
+ {"linux/usbdevice_fs.h", "USBDEVFS_SETINTERFACE", 0x5504},
+ {"linux/usbdevice_fs.h", "USBDEVFS_SETCONFIGURATION", 0x5505},
+ {"linux/usbdevice_fs.h", "USBDEVFS_GETDRIVER", 0x5508},
+ {"linux/usbdevice_fs.h", "USBDEVFS_SUBMITURB", 0x550a},
+ {"linux/usbdevice_fs.h", "USBDEVFS_DISCARDURB", 0x550b},
+ {"linux/usbdevice_fs.h", "USBDEVFS_REAPURB", 0x550c},
+ {"linux/usbdevice_fs.h", "USBDEVFS_REAPURBNDELAY", 0x550d},
+ {"linux/usbdevice_fs.h", "USBDEVFS_DISCSIGNAL", 0x550e},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CLAIMINTERFACE", 0x550f},
+ {"linux/usbdevice_fs.h", "USBDEVFS_RELEASEINTERFACE", 0x5510},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CONNECTINFO", 0x5511},
+ {"linux/usbdevice_fs.h", "USBDEVFS_IOCTL", 0x5512},
+ {"linux/usbdevice_fs.h", "USBDEVFS_HUB_PORTINFO", 0x5513},
+ {"linux/usbdevice_fs.h", "USBDEVFS_RESET", 0x5514},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CLEAR_HALT", 0x5515},
+ {"linux/watchdog.h", "WDIOC_GETSUPPORT", 0x5700},
+ {"linux/watchdog.h", "WDIOC_GETSTATUS", 0x5701},
+ {"linux/watchdog.h", "WDIOC_GETBOOTSTATUS", 0x5702},
+ {"linux/watchdog.h", "WDIOC_GETTEMP", 0x5703},
+ {"linux/watchdog.h", "WDIOC_SETOPTIONS", 0x5704},
+ {"linux/watchdog.h", "WDIOC_KEEPALIVE", 0x5705},
+ {"linux/watchdog.h", "WDIOC_SETTIMEOUT", 0x5706},
+ {"linux/watchdog.h", "WDIOC_GETTIMEOUT", 0x5707},
+ {"linux/ite_gpio.h", "ITE_GPIO_IN", 0x5a00},
+ {"linux/ite_gpio.h", "ITE_GPIO_OUT", 0x5a01},
+ {"linux/ite_gpio.h", "ITE_GPIO_INT_CTRL", 0x5a02},
+ {"linux/ite_gpio.h", "ITE_GPIO_IN_STATUS", 0x5a03},
+ {"linux/ite_gpio.h", "ITE_GPIO_OUT_STATUS", 0x5a04},
+ {"linux/ite_gpio.h", "ITE_GPIO_GEN_CTRL", 0x5a05},
+ {"linux/ite_gpio.h", "ITE_GPIO_INT_WAIT", 0x5a06},
+ {"linux/sonet.h", "SONET_GETSTAT", 0x6110},
+ {"linux/sonet.h", "SONET_GETSTATZ", 0x6111},
+ {"linux/sonet.h", "SONET_SETDIAG", 0x6112},
+ {"linux/sonet.h", "SONET_CLRDIAG", 0x6113},
+ {"linux/sonet.h", "SONET_GETDIAG", 0x6114},
+ {"linux/sonet.h", "SONET_SETFRAMING", 0x6115},
+ {"linux/sonet.h", "SONET_GETFRAMING", 0x6116},
+ {"linux/sonet.h", "SONET_GETFRSENSE", 0x6117},
+ {"linux/atm_idt77105.h", "IDT77105_GETSTAT", 0x6132},
+ {"linux/atm_idt77105.h", "IDT77105_GETSTATZ", 0x6133},
+ {"linux/atmdev.h", "ATM_GETSTAT", 0x6150},
+ {"linux/atmdev.h", "ATM_GETSTATZ", 0x6151},
+ {"linux/atmdev.h", "ATM_GETLOOP", 0x6152},
+ {"linux/atmdev.h", "ATM_SETLOOP", 0x6153},
+ {"linux/atmdev.h", "ATM_QUERYLOOP", 0x6154},
+ {"linux/atm_eni.h", "ENI_MEMDUMP", 0x6160},
+ {"linux/atm_nicstar.h", "NS_GETPSTAT", 0x6161},
+ {"linux/atm_zatm.h", "ZATM_GETPOOL", 0x6161},
+ {"linux/atm_nicstar.h", "NS_SETBUFLEV", 0x6162},
+ {"linux/atm_zatm.h", "ZATM_GETPOOLZ", 0x6162},
+ {"linux/atm_nicstar.h", "NS_ADJBUFLEV", 0x6163},
+ {"linux/atm_zatm.h", "ZATM_SETPOOL", 0x6163},
+ {"linux/atm_zatm.h", "ZATM_GETTHIST", 0x6164},
+ {"linux/atm_eni.h", "ENI_SETMULT", 0x6167},
+ {"linux/atm_tcp.h", "SIOCSIFATMTCP", 0x6180},
+ {"linux/atmdev.h", "ATM_GETLINKRATE", 0x6181},
+ {"linux/atmdev.h", "ATM_GETNAMES", 0x6183},
+ {"linux/atmdev.h", "ATM_GETTYPE", 0x6184},
+ {"linux/atmdev.h", "ATM_GETESI", 0x6185},
+ {"linux/atmdev.h", "ATM_GETADDR", 0x6186},
+ {"linux/atmdev.h", "ATM_RSTADDR", 0x6187},
+ {"linux/atmdev.h", "ATM_ADDADDR", 0x6188},
+ {"linux/atmdev.h", "ATM_DELADDR", 0x6189},
+ {"linux/atmdev.h", "ATM_GETCIRANGE", 0x618a},
+ {"linux/atmdev.h", "ATM_SETCIRANGE", 0x618b},
+ {"linux/atmdev.h", "ATM_SETESI", 0x618c},
+ {"linux/atmdev.h", "ATM_SETESIF", 0x618d},
+ {"linux/atm_tcp.h", "ATMTCP_CREATE", 0x618e},
+ {"linux/atm_tcp.h", "ATMTCP_REMOVE", 0x618f},
+ {"linux/atmlec.h", "ATMLEC_CTRL", 0x61d0},
+ {"linux/atmlec.h", "ATMLEC_DATA", 0x61d1},
+ {"linux/atmlec.h", "ATMLEC_MCAST", 0x61d2},
+ {"linux/atmmpc.h", "ATMMPC_CTRL", 0x61d8},
+ {"linux/atmmpc.h", "ATMMPC_DATA", 0x61d9},
+ {"linux/atmclip.h", "SIOCMKCLIP", 0x61e0},
+ {"linux/atmarp.h", "ATMARPD_CTRL", 0x61e1},
+ {"linux/atmarp.h", "ATMARP_MKIP", 0x61e2},
+ {"linux/atmarp.h", "ATMARP_SETENTRY", 0x61e3},
+ {"linux/atmarp.h", "ATMARP_ENCAP", 0x61e5},
+ {"linux/atmsvc.h", "ATMSIGD_CTRL", 0x61f0},
+ {"linux/atmdev.h", "ATM_SETSC", 0x61f1},
+ {"linux/atmdev.h", "ATM_SETBACKEND", 0x61f2},
+ {"linux/coda.h", "CIOC_KERNEL_VERSION", 0x630a},
+ {"linux/comstats.h", "COM_GETPORTSTATS", 0x631e},
+ {"linux/comstats.h", "COM_CLRPORTSTATS", 0x631f},
+ {"linux/comstats.h", "COM_GETBRDSTATS", 0x6320},
+ {"linux/comstats.h", "COM_READPORT", 0x6328},
+ {"linux/comstats.h", "COM_READBOARD", 0x6329},
+ {"linux/comstats.h", "COM_READPANEL", 0x632a},
+ {"linux/devfs_fs.h", "DEVFSDIOC_GET_PROTO_REV", 0x6400},
+ {"linux/video_decoder.h", "DECODER_GET_CAPABILITIES", 0x6401},
+ {"linux/devfs_fs.h", "DEVFSDIOC_SET_EVENT_MASK", 0x6402},
+ {"linux/video_decoder.h", "DECODER_GET_STATUS", 0x6402},
+ {"linux/devfs_fs.h", "DEVFSDIOC_RELEASE_EVENT_QUEUE", 0x6403},
+ {"linux/video_decoder.h", "DECODER_SET_NORM", 0x6403},
+ {"linux/devfs_fs.h", "DEVFSDIOC_SET_DEBUG_MASK", 0x6404},
+ {"linux/video_decoder.h", "DECODER_SET_INPUT", 0x6404},
+ {"linux/video_decoder.h", "DECODER_SET_OUTPUT", 0x6405},
+ {"linux/video_decoder.h", "DECODER_ENABLE_OUTPUT", 0x6406},
+ {"linux/video_decoder.h", "DECODER_SET_PICTURE", 0x6407},
+ {"linux/video_decoder.h", "DECODER_DUMP", 0x64c0},
+ {"linux/video_encoder.h", "ENCODER_GET_CAPABILITIES", 0x6501},
+ {"linux/video_encoder.h", "ENCODER_SET_NORM", 0x6502},
+ {"linux/video_encoder.h", "ENCODER_SET_INPUT", 0x6503},
+ {"linux/video_encoder.h", "ENCODER_SET_OUTPUT", 0x6504},
+ {"linux/video_encoder.h", "ENCODER_ENABLE_OUTPUT", 0x6505},
+ {"linux/ext2_fs.h", "EXT2_IOC_GETFLAGS", 0x6601},
+ {"linux/ext3_fs.h", "EXT3_IOC_GETFLAGS", 0x6601},
+ {"linux/ext2_fs.h", "EXT2_IOC_SETFLAGS", 0x6602},
+ {"linux/ext3_fs.h", "EXT3_IOC_SETFLAGS", 0x6602},
+ {"linux/ext3_fs.h", "EXT3_IOC_GETVERSION", 0x6603},
+ {"linux/ext3_fs.h", "EXT3_IOC_SETVERSION", 0x6604},
+ {"linux/ext3_fs.h", "EXT3_IOC_WAIT_FOR_READONLY", 0x6663},
+ {"linux/i2o-dev.h", "I2OGETIOPS", 0x6900},
+ {"linux/i2o-dev.h", "I2OHRTGET", 0x6901},
+ {"linux/i2o-dev.h", "I2OLCTGET", 0x6902},
+ {"linux/i2o-dev.h", "I2OPARMSET", 0x6903},
+ {"linux/i2o-dev.h", "I2OPARMGET", 0x6904},
+ {"linux/i2o-dev.h", "I2OSWDL", 0x6905},
+ {"linux/i2o-dev.h", "I2OSWUL", 0x6906},
+ {"linux/i2o-dev.h", "I2OSWDEL", 0x6907},
+ {"linux/i2o-dev.h", "I2OVALIDATE", 0x6908},
+ {"linux/i2o-dev.h", "I2OHTML", 0x6909},
+ {"linux/i2o-dev.h", "I2OEVTREG", 0x690a},
+ {"linux/i2o-dev.h", "I2OEVTGET", 0x690b},
+ {"linux/i8k.h", "I8K_BIOS_VERSION", 0x6980},
+ {"linux/i8k.h", "I8K_MACHINE_ID", 0x6981},
+ {"linux/i8k.h", "I8K_POWER_STATUS", 0x6982},
+ {"linux/i8k.h", "I8K_FN_STATUS", 0x6983},
+ {"linux/i8k.h", "I8K_GET_TEMP", 0x6984},
+ {"linux/i8k.h", "I8K_GET_SPEED", 0x6985},
+ {"linux/i8k.h", "I8K_GET_FAN", 0x6986},
+ {"linux/i8k.h", "I8K_SET_FAN", 0x6987},
+ {"linux/joystick.h", "JSIOCGVERSION", 0x6a01},
+ {"linux/joystick.h", "JSIOCGAXES", 0x6a11},
+ {"linux/joystick.h", "JSIOCGBUTTONS", 0x6a12},
+ {"linux/joystick.h", "JSIOCSCORR", 0x6a21},
+ {"linux/joystick.h", "JSIOCGCORR", 0x6a22},
+ {"linux/joystick.h", "JSIOCSAXMAP", 0x6a31},
+ {"linux/joystick.h", "JSIOCGAXMAP", 0x6a32},
+ {"linux/joystick.h", "JSIOCSBTNMAP", 0x6a33},
+ {"linux/joystick.h", "JSIOCGBTNMAP", 0x6a34},
+ {"linux/udf_fs_i.h", "UDF_GETEASIZE", 0x6c40},
+ {"linux/udf_fs_i.h", "UDF_GETEABLOCK", 0x6c41},
+ {"linux/udf_fs_i.h", "UDF_GETVOLIDENT", 0x6c42},
+ {"linux/udf_fs_i.h", "UDF_RELOCATE_BLOCKS", 0x6c43},
+ {"linux/soundcard.h", "SNDCTL_MIDI_PRETIME", 0x6d00},
+ {"linux/synclink.h", "MGSL_IOCSPARAMS", 0x6d00},
+ {"linux/mtio.h", "MTIOCTOP", 0x6d01},
+ {"linux/soundcard.h", "SNDCTL_MIDI_MPUMODE", 0x6d01},
+ {"linux/synclink.h", "MGSL_IOCGPARAMS", 0x6d01},
+ {"linux/mtio.h", "MTIOCGET", 0x6d02},
+ {"linux/soundcard.h", "SNDCTL_MIDI_MPUCMD", 0x6d02},
+ {"linux/synclink.h", "MGSL_IOCSTXIDLE", 0x6d02},
+ {"linux/mtio.h", "MTIOCPOS", 0x6d03},
+ {"linux/synclink.h", "MGSL_IOCGTXIDLE", 0x6d03},
+ {"linux/mtio.h", "MTIOCGETCONFIG", 0x6d04},
+ {"linux/synclink.h", "MGSL_IOCTXENABLE", 0x6d04},
+ {"linux/mtio.h", "MTIOCSETCONFIG", 0x6d05},
+ {"linux/synclink.h", "MGSL_IOCRXENABLE", 0x6d05},
+ {"linux/mtio.h", "MTIOCRDFTSEG", 0x6d06},
+ {"linux/synclink.h", "MGSL_IOCTXABORT", 0x6d06},
+ {"linux/mtio.h", "MTIOCWRFTSEG", 0x6d07},
+ {"linux/synclink.h", "MGSL_IOCGSTATS", 0x6d07},
+ {"linux/mtio.h", "MTIOCVOLINFO", 0x6d08},
+ {"linux/synclink.h", "MGSL_IOCWAITEVENT", 0x6d08},
+ {"linux/mtio.h", "MTIOCGETSIZE", 0x6d09},
+ {"linux/synclink.h", "MGSL_IOCLOOPTXDONE", 0x6d09},
+ {"linux/mtio.h", "MTIOCFTFORMAT", 0x6d0a},
+ {"linux/mtio.h", "MTIOCFTCMD", 0x6d0b},
+ {"linux/synclink.h", "MGSL_IOCCLRMODCOUNT", 0x6d0f},
+ {"linux/zftape.h", "MTIOC_ZFTAPE_GETBLKSZ", 0x6d68},
+ {"linux/ncp_fs.h", "NCP_IOC_NCPREQUEST", 0x6e01},
+ {"linux/ncp_fs.h", "NCP_IOC_GETMOUNTUID", 0x6e02},
+ {"linux/ncp_fs.h", "NCP_IOC_GETMOUNTUID2", 0x6e02},
+ {"linux/ncp_fs.h", "NCP_IOC_CONN_LOGGED_IN", 0x6e03},
+ {"linux/ncp_fs.h", "NCP_IOC_GET_FS_INFO", 0x6e04},
+ {"linux/ncp_fs.h", "NCP_IOC_GET_FS_INFO_V2", 0x6e04},
+ {"linux/ncp_fs.h", "NCP_IOC_SIGN_INIT", 0x6e05},
+ {"linux/ncp_fs.h", "NCP_IOC_SIGN_WANTED", 0x6e06},
+ {"linux/ncp_fs.h", "NCP_IOC_SET_SIGN_WANTED", 0x6e06},
+ {"linux/ncp_fs.h", "NCP_IOC_LOCKUNLOCK", 0x6e07},
+ {"linux/ncp_fs.h", "NCP_IOC_GETROOT", 0x6e08},
+ {"linux/ncp_fs.h", "NCP_IOC_SETROOT", 0x6e08},
+ {"linux/ncp_fs.h", "NCP_IOC_GETOBJECTNAME", 0x6e09},
+ {"linux/ncp_fs.h", "NCP_IOC_SETOBJECTNAME", 0x6e09},
+ {"linux/ncp_fs.h", "NCP_IOC_GETPRIVATEDATA", 0x6e0a},
+ {"linux/ncp_fs.h", "NCP_IOC_SETPRIVATEDATA", 0x6e0a},
+ {"linux/ncp_fs.h", "NCP_IOC_GETCHARSETS", 0x6e0b},
+ {"linux/ncp_fs.h", "NCP_IOC_SETCHARSETS", 0x6e0b},
+ {"linux/ncp_fs.h", "NCP_IOC_GETDENTRYTTL", 0x6e0c},
+ {"linux/ncp_fs.h", "NCP_IOC_SETDENTRYTTL", 0x6e0c},
+ {"linux/matroxfb.h", "MATROXFB_SET_OUTPUT_CONNECTION", 0x6ef8},
+ {"linux/matroxfb.h", "MATROXFB_GET_OUTPUT_CONNECTION", 0x6ef8},
+ {"linux/matroxfb.h", "MATROXFB_GET_AVAILABLE_OUTPUTS", 0x6ef9},
+ {"linux/matroxfb.h", "MATROXFB_SET_OUTPUT_MODE", 0x6efa},
+ {"linux/matroxfb.h", "MATROXFB_GET_OUTPUT_MODE", 0x6efa},
+ {"linux/matroxfb.h", "MATROXFB_GET_ALL_OUTPUTS", 0x6efb},
+ {"linux/rtc.h", "RTC_AIE_ON", 0x7001},
+ {"linux/rtc.h", "RTC_AIE_OFF", 0x7002},
+ {"linux/intermezzo_fs.h", "PRESTO_GETMOUNT", 0x7003},
+ {"linux/rtc.h", "RTC_UIE_ON", 0x7003},
+ {"linux/intermezzo_fs.h", "PRESTO_SETPID", 0x7004},
+ {"linux/rtc.h", "RTC_UIE_OFF", 0x7004},
+ {"linux/rtc.h", "RTC_PIE_ON", 0x7005},
+ {"linux/intermezzo_fs.h", "PRESTO_CLOSE_JOURNALF", 0x7006},
+ {"linux/rtc.h", "RTC_PIE_OFF", 0x7006},
+ {"linux/intermezzo_fs.h", "PRESTO_SET_FSETROOT", 0x7007},
+ {"linux/rtc.h", "RTC_ALM_SET", 0x7007},
+ {"linux/intermezzo_fs.h", "PRESTO_CLEAR_FSETROOT", 0x7008},
+ {"linux/rtc.h", "RTC_ALM_READ", 0x7008},
+ {"linux/intermezzo_fs.h", "PRESTO_SETOPT", 0x7009},
+ {"linux/rtc.h", "RTC_RD_TIME", 0x7009},
+ {"linux/intermezzo_fs.h", "PRESTO_GETOPT", 0x700a},
+ {"linux/rtc.h", "RTC_SET_TIME", 0x700a},
+ {"linux/intermezzo_fs.h", "PRESTO_GET_KMLSIZE", 0x700b},
+ {"linux/rtc.h", "RTC_IRQP_READ", 0x700b},
+ {"linux/intermezzo_fs.h", "PRESTO_GET_RECNO", 0x700c},
+ {"linux/rtc.h", "RTC_IRQP_SET", 0x700c},
+ {"linux/rtc.h", "RTC_EPOCH_READ", 0x700d},
+ {"linux/rtc.h", "RTC_EPOCH_SET", 0x700e},
+ {"linux/rtc.h", "RTC_WIE_ON", 0x700f},
+ {"linux/rtc.h", "RTC_WKALM_SET", 0x700f},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_SETATTR", 0x7010},
+ {"linux/rtc.h", "RTC_WIE_OFF", 0x7010},
+ {"linux/rtc.h", "RTC_WKALM_RD", 0x7010},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_CREATE", 0x7011},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_LINK", 0x7012},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_UNLINK", 0x7013},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_SYMLINK", 0x7014},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_MKDIR", 0x7015},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_RMDIR", 0x7016},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_MKNOD", 0x7017},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_RENAME", 0x7018},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_CLOSE", 0x701a},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_IOPEN", 0x701b},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_SETEXTATTR", 0x701c},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_DELEXTATTR", 0x701d},
+ {"linux/intermezzo_fs.h", "PRESTO_MARK", 0x7020},
+ {"linux/intermezzo_fs.h", "PRESTO_RELEASE_PERMIT", 0x7021},
+ {"linux/intermezzo_fs.h", "PRESTO_CLEAR_ALL_FSETROOTS", 0x7022},
+ {"linux/intermezzo_fs.h", "PRESTO_BACKFETCH_LML", 0x7023},
+ {"linux/intermezzo_fs.h", "PRESTO_REINT", 0x7024},
+ {"linux/intermezzo_fs.h", "PRESTO_CANCEL_LML", 0x7025},
+ {"linux/intermezzo_fs.h", "PRESTO_RESET_FSET", 0x7026},
+ {"linux/intermezzo_fs.h", "PRESTO_COMPLETE_CLOSES", 0x7027},
+ {"linux/intermezzo_fs.h", "PRESTO_REINT_BEGIN", 0x7030},
+ {"linux/intermezzo_fs.h", "PRESTO_DO_REINT", 0x7031},
+ {"linux/intermezzo_fs.h", "PRESTO_REINT_END", 0x7032},
+ {"linux/nvram.h", "NVRAM_INIT", 0x7040},
+ {"linux/nvram.h", "NVRAM_SETCKS", 0x7041},
+ {"linux/ppdev.h", "PPSETMODE", 0x7080},
+ {"linux/ppdev.h", "PPRSTATUS", 0x7081},
+ {"linux/ppdev.h", "PPRCONTROL", 0x7083},
+ {"linux/ppdev.h", "PPWCONTROL", 0x7084},
+ {"linux/ppdev.h", "PPRDATA", 0x7085},
+ {"linux/ppdev.h", "PPWDATA", 0x7086},
+ {"linux/ppdev.h", "PPCLAIM", 0x708b},
+ {"linux/ppdev.h", "PPRELEASE", 0x708c},
+ {"linux/ppdev.h", "PPYIELD", 0x708d},
+ {"linux/ppdev.h", "PPFCONTROL", 0x708e},
+ {"linux/ppdev.h", "PPEXCL", 0x708f},
+ {"linux/ppdev.h", "PPDATADIR", 0x7090},
+ {"linux/ppdev.h", "PPNEGOT", 0x7091},
+ {"linux/ppdev.h", "PPWCTLONIRQ", 0x7092},
+ {"linux/ppdev.h", "PPCLRIRQ", 0x7093},
+ {"linux/ppdev.h", "PPSETPHASE", 0x7094},
+ {"linux/ppdev.h", "PPGETTIME", 0x7095},
+ {"linux/ppdev.h", "PPSETTIME", 0x7096},
+ {"linux/ppdev.h", "PPGETMODES", 0x7097},
+ {"linux/ppdev.h", "PPGETMODE", 0x7098},
+ {"linux/ppdev.h", "PPGETPHASE", 0x7099},
+ {"linux/ppdev.h", "PPGETFLAGS", 0x709a},
+ {"linux/ppdev.h", "PPSETFLAGS", 0x709b},
+ {"linux/serio.h", "SPIOCSTYPE", 0x7101},
+ {"linux/telephony.h", "PHONE_CAPABILITIES", 0x7180},
+ {"linux/telephony.h", "PHONE_CAPABILITIES_LIST", 0x7181},
+ {"linux/telephony.h", "PHONE_CAPABILITIES_CHECK", 0x7182},
+ {"linux/telephony.h", "PHONE_RING", 0x7183},
+ {"linux/telephony.h", "PHONE_HOOKSTATE", 0x7184},
+ {"linux/telephony.h", "PHONE_MAXRINGS", 0x7185},
+ {"linux/telephony.h", "PHONE_RING_CADENCE", 0x7186},
+ {"linux/telephony.h", "OLD_PHONE_RING_START", 0x7187},
+ {"linux/telephony.h", "PHONE_RING_START", 0x7187},
+ {"linux/telephony.h", "PHONE_RING_STOP", 0x7188},
+ {"linux/telephony.h", "PHONE_REC_CODEC", 0x7189},
+ {"linux/telephony.h", "PHONE_REC_START", 0x718a},
+ {"linux/telephony.h", "PHONE_REC_STOP", 0x718b},
+ {"linux/telephony.h", "PHONE_REC_DEPTH", 0x718c},
+ {"linux/telephony.h", "PHONE_FRAME", 0x718d},
+ {"linux/telephony.h", "PHONE_REC_VOLUME", 0x718e},
+ {"linux/telephony.h", "PHONE_REC_LEVEL", 0x718f},
+ {"linux/telephony.h", "PHONE_PLAY_CODEC", 0x7190},
+ {"linux/telephony.h", "PHONE_PLAY_START", 0x7191},
+ {"linux/telephony.h", "PHONE_PLAY_STOP", 0x7192},
+ {"linux/telephony.h", "PHONE_PLAY_DEPTH", 0x7193},
+ {"linux/telephony.h", "PHONE_PLAY_VOLUME", 0x7194},
+ {"linux/telephony.h", "PHONE_PLAY_LEVEL", 0x7195},
+ {"linux/telephony.h", "PHONE_DTMF_READY", 0x7196},
+ {"linux/telephony.h", "PHONE_GET_DTMF", 0x7197},
+ {"linux/telephony.h", "PHONE_GET_DTMF_ASCII", 0x7198},
+ {"linux/telephony.h", "PHONE_DTMF_OOB", 0x7199},
+ {"linux/telephony.h", "PHONE_EXCEPTION", 0x719a},
+ {"linux/telephony.h", "PHONE_PLAY_TONE", 0x719b},
+ {"linux/telephony.h", "PHONE_SET_TONE_ON_TIME", 0x719c},
+ {"linux/telephony.h", "PHONE_SET_TONE_OFF_TIME", 0x719d},
+ {"linux/telephony.h", "PHONE_GET_TONE_ON_TIME", 0x719e},
+ {"linux/telephony.h", "PHONE_GET_TONE_OFF_TIME", 0x719f},
+ {"linux/telephony.h", "PHONE_GET_TONE_STATE", 0x71a0},
+ {"linux/telephony.h", "PHONE_BUSY", 0x71a1},
+ {"linux/telephony.h", "PHONE_RINGBACK", 0x71a2},
+ {"linux/telephony.h", "PHONE_DIALTONE", 0x71a3},
+ {"linux/telephony.h", "PHONE_CPT_STOP", 0x71a4},
+ {"linux/telephony.h", "PHONE_PSTN_SET_STATE", 0x71a4},
+ {"linux/telephony.h", "PHONE_PSTN_GET_STATE", 0x71a5},
+ {"linux/telephony.h", "PHONE_WINK_DURATION", 0x71a6},
+ {"linux/telephony.h", "PHONE_QUERY_CODEC", 0x71a7},
+ {"linux/telephony.h", "PHONE_PSTN_LINETEST", 0x71a8},
+ {"linux/telephony.h", "PHONE_VAD", 0x71a9},
+ {"linux/telephony.h", "PHONE_WINK", 0x71aa},
+ {"linux/ixjuser.h", "IXJCTL_DSP_RESET", 0x71c0},
+ {"linux/ixjuser.h", "IXJCTL_CARDTYPE", 0x71c1},
+ {"linux/ixjuser.h", "IXJCTL_SERIAL", 0x71c2},
+ {"linux/ixjuser.h", "IXJCTL_DSP_TYPE", 0x71c3},
+ {"linux/ixjuser.h", "IXJCTL_DSP_VERSION", 0x71c4},
+ {"linux/ixjuser.h", "IXJCTL_DSP_IDLE", 0x71c5},
+ {"linux/ixjuser.h", "IXJCTL_TESTRAM", 0x71c6},
+ {"linux/ixjuser.h", "IXJCTL_SET_FILTER", 0x71c7},
+ {"linux/ixjuser.h", "IXJCTL_GET_FILTER_HIST", 0x71c8},
+ {"linux/ixjuser.h", "IXJCTL_INIT_TONE", 0x71c9},
+ {"linux/ixjuser.h", "IXJCTL_TONE_CADENCE", 0x71ca},
+ {"linux/ixjuser.h", "IXJCTL_AEC_START", 0x71cb},
+ {"linux/ixjuser.h", "IXJCTL_AEC_STOP", 0x71cc},
+ {"linux/ixjuser.h", "IXJCTL_AEC_GET_LEVEL", 0x71cd},
+ {"linux/ixjuser.h", "IXJCTL_SET_LED", 0x71ce},
+ {"linux/ixjuser.h", "IXJCTL_MIXER", 0x71cf},
+ {"linux/ixjuser.h", "IXJCTL_DAA_COEFF_SET", 0x71d0},
+ {"linux/ixjuser.h", "IXJCTL_PORT", 0x71d1},
+ {"linux/ixjuser.h", "IXJCTL_DAA_AGAIN", 0x71d2},
+ {"linux/ixjuser.h", "IXJCTL_PSTN_LINETEST", 0x71d3},
+ {"linux/ixjuser.h", "IXJCTL_CID", 0x71d4},
+ {"linux/ixjuser.h", "IXJCTL_POTS_PSTN", 0x71d5},
+ {"linux/ixjuser.h", "IXJCTL_FILTER_CADENCE", 0x71d6},
+ {"linux/ixjuser.h", "IXJCTL_PLAY_CID", 0x71d7},
+ {"linux/ixjuser.h", "IXJCTL_VMWI", 0x71d8},
+ {"linux/ixjuser.h", "IXJCTL_CIDCW", 0x71d9},
+ {"linux/ixjuser.h", "IXJCTL_VERSION", 0x71da},
+ {"linux/telephony.h", "PHONE_REC_VOLUME_LINEAR", 0x71db},
+ {"linux/telephony.h", "PHONE_PLAY_VOLUME_LINEAR", 0x71dc},
+ {"linux/ixjuser.h", "IXJCTL_SET_FILTER_RAW", 0x71dd},
+ {"linux/ixjuser.h", "IXJCTL_HZ", 0x71e0},
+ {"linux/ixjuser.h", "IXJCTL_RATE", 0x71e1},
+ {"linux/ixjuser.h", "IXJCTL_FRAMES_READ", 0x71e2},
+ {"linux/ixjuser.h", "IXJCTL_FRAMES_WRITTEN", 0x71e3},
+ {"linux/ixjuser.h", "IXJCTL_READ_WAIT", 0x71e4},
+ {"linux/ixjuser.h", "IXJCTL_WRITE_WAIT", 0x71e5},
+ {"linux/ixjuser.h", "IXJCTL_DRYBUFFER_READ", 0x71e6},
+ {"linux/ixjuser.h", "IXJCTL_DRYBUFFER_CLEAR", 0x71e7},
+ {"linux/ixjuser.h", "IXJCTL_DTMF_PRESCALE", 0x71e8},
+ {"linux/ixjuser.h", "IXJCTL_SIGCTL", 0x71e9},
+ {"linux/ixjuser.h", "IXJCTL_SC_RXG", 0x71ea},
+ {"linux/ixjuser.h", "IXJCTL_SC_TXG", 0x71eb},
+ {"linux/ixjuser.h", "IXJCTL_INTERCOM_START", 0x71fd},
+ {"linux/ixjuser.h", "IXJCTL_INTERCOM_STOP", 0x71fe},
+ {"linux/msdos_fs.h", "VFAT_IOCTL_READDIR_BOTH", 0x7201},
+ {"linux/msdos_fs.h", "VFAT_IOCTL_READDIR_SHORT", 0x7202},
+ {"linux/cdk.h", "STL_BINTR", 0x7314},
+ {"linux/cdk.h", "STL_BSTART", 0x7315},
+ {"linux/cdk.h", "STL_BSTOP", 0x7316},
+ {"linux/cdk.h", "STL_BRESET", 0x7317},
+ {"linux/cdk.h", "STL_GETPFLAG", 0x7350},
+ {"linux/cdk.h", "STL_SETPFLAG", 0x7351},
+ {"linux/if_ppp.h", "PPPIOCGCHAN", 0x7437},
+ {"linux/if_ppp.h", "PPPIOCATTCHAN", 0x7438},
+ {"linux/if_ppp.h", "PPPIOCDISCONN", 0x7439},
+ {"linux/if_ppp.h", "PPPIOCCONNECT", 0x743a},
+ {"linux/if_ppp.h", "PPPIOCSMRRU", 0x743b},
+ {"linux/if_ppp.h", "PPPIOCDETACH", 0x743c},
+ {"linux/if_ppp.h", "PPPIOCATTACH", 0x743d},
+ {"linux/if_ppp.h", "PPPIOCNEWUNIT", 0x743e},
+ {"linux/if_ppp.h", "PPPIOCGIDLE", 0x743f},
+ {"linux/if_ppp.h", "PPPIOCSDEBUG", 0x7440},
+ {"linux/if_ppp.h", "PPPIOCGDEBUG", 0x7441},
+ {"linux/if_ppp.h", "PPPIOCSACTIVE", 0x7446},
+ {"linux/if_ppp.h", "PPPIOCSPASS", 0x7447},
+ {"linux/if_ppp.h", "PPPIOCSNPMODE", 0x744b},
+ {"linux/if_ppp.h", "PPPIOCGNPMODE", 0x744c},
+ {"linux/if_ppp.h", "PPPIOCSCOMPRESS", 0x744d},
+ {"linux/if_ppp.h", "PPPIOCXFERUNIT", 0x744e},
+ {"linux/if_ppp.h", "PPPIOCSXASYNCMAP", 0x744f},
+ {"linux/if_ppp.h", "PPPIOCGXASYNCMAP", 0x7450},
+ {"linux/if_ppp.h", "PPPIOCSMAXCID", 0x7451},
+ {"linux/if_ppp.h", "PPPIOCSMRU", 0x7452},
+ {"linux/if_ppp.h", "PPPIOCGMRU", 0x7453},
+ {"linux/if_ppp.h", "PPPIOCSRASYNCMAP", 0x7454},
+ {"linux/if_ppp.h", "PPPIOCGRASYNCMAP", 0x7455},
+ {"linux/if_ppp.h", "PPPIOCGUNIT", 0x7456},
+ {"linux/if_ppp.h", "PPPIOCSASYNCMAP", 0x7457},
+ {"linux/if_ppp.h", "PPPIOCGASYNCMAP", 0x7458},
+ {"linux/if_ppp.h", "PPPIOCSFLAGS", 0x7459},
+ {"linux/if_ppp.h", "PPPIOCGFLAGS", 0x745a},
+ {"linux/jffs.h", "JFFS_PRINT_HASH", 0x745a},
+ {"linux/jffs.h", "JFFS_PRINT_TREE", 0x745b},
+ {"linux/jffs.h", "JFFS_GET_STATUS", 0x745c},
+ {"linux/isdn_ppp.h", "PPPIOCGCALLINFO", 0x7480},
+ {"linux/isdn_ppp.h", "PPPIOCBUNDLE", 0x7481},
+ {"linux/isdn_ppp.h", "PPPIOCGMPFLAGS", 0x7482},
+ {"linux/isdn_ppp.h", "PPPIOCSMPFLAGS", 0x7483},
+ {"linux/isdn_ppp.h", "PPPIOCSMPMTU", 0x7484},
+ {"linux/isdn_ppp.h", "PPPIOCSMPMRU", 0x7485},
+ {"linux/isdn_ppp.h", "PPPIOCGCOMPRESSORS", 0x7486},
+ {"linux/isdn_ppp.h", "PPPIOCSCOMPRESSOR", 0x7487},
+ {"linux/isdn_ppp.h", "PPPIOCGIFNAME", 0x7488},
+ {"linux/toshiba.h", "TOSH_SMM", 0x7490},
+ {"linux/smb_fs.h", "SMB_IOC_GETMOUNTUID", 0x7501},
+ {"linux/smb_fs.h", "SMB_IOC_NEWCONN", 0x7502},
+ {"linux/smb_fs.h", "SMB_IOC_GETMOUNTUID32", 0x7503},
+ {"linux/sonypi.h", "SONYPI_IOCGBRT", 0x7600},
+ {"linux/sonypi.h", "SONYPI_IOCSBRT", 0x7600},
+ {"linux/ext2_fs.h", "EXT2_IOC_GETVERSION", 0x7601},
+ {"linux/ext3_fs.h", "EXT3_IOC_GETVERSION_OLD", 0x7601},
+ {"linux/videodev.h", "VIDIOCGCAP", 0x7601},
+ {"linux/ext2_fs.h", "EXT2_IOC_SETVERSION", 0x7602},
+ {"linux/ext3_fs.h", "EXT3_IOC_SETVERSION_OLD", 0x7602},
+ {"linux/sonypi.h", "SONYPI_IOCGBAT1CAP", 0x7602},
+ {"linux/videodev.h", "VIDIOCGCHAN", 0x7602},
+ {"linux/sonypi.h", "SONYPI_IOCGBAT1REM", 0x7603},
+ {"linux/videodev.h", "VIDIOCSCHAN", 0x7603},
+ {"linux/sonypi.h", "SONYPI_IOCGBAT2CAP", 0x7604},
+ {"linux/videodev.h", "VIDIOCGTUNER", 0x7604},
+ {"linux/sonypi.h", "SONYPI_IOCGBAT2REM", 0x7605},
+ {"linux/videodev.h", "VIDIOCSTUNER", 0x7605},
+ {"linux/videodev.h", "VIDIOCGPICT", 0x7606},
+ {"linux/sonypi.h", "SONYPI_IOCGBATFLAGS", 0x7607},
+ {"linux/videodev.h", "VIDIOCSPICT", 0x7607},
+ {"linux/sonypi.h", "SONYPI_IOCGBLUE", 0x7608},
+ {"linux/videodev.h", "VIDIOCCAPTURE", 0x7608},
+ {"linux/sonypi.h", "SONYPI_IOCSBLUE", 0x7609},
+ {"linux/videodev.h", "VIDIOCGWIN", 0x7609},
+ {"linux/videodev.h", "VIDIOCSWIN", 0x760a},
+ {"linux/videodev.h", "VIDIOCGFBUF", 0x760b},
+ {"linux/videodev.h", "VIDIOCSFBUF", 0x760c},
+ {"linux/videodev.h", "VIDIOCKEY", 0x760d},
+ {"linux/videodev.h", "VIDIOCGFREQ", 0x760e},
+ {"linux/videodev.h", "VIDIOCSFREQ", 0x760f},
+ {"linux/videodev.h", "VIDIOCGAUDIO", 0x7610},
+ {"linux/videodev.h", "VIDIOCSAUDIO", 0x7611},
+ {"linux/videodev.h", "VIDIOCSYNC", 0x7612},
+ {"linux/videodev.h", "VIDIOCMCAPTURE", 0x7613},
+ {"linux/videodev.h", "VIDIOCGMBUF", 0x7614},
+ {"linux/videodev.h", "VIDIOCGUNIT", 0x7615},
+ {"linux/videodev.h", "VIDIOCGCAPTURE", 0x7616},
+ {"linux/videodev.h", "VIDIOCSCAPTURE", 0x7617},
+ {"linux/videodev.h", "VIDIOCSPLAYMODE", 0x7618},
+ {"linux/videodev.h", "VIDIOCSWRITEMODE", 0x7619},
+ {"linux/videodev.h", "VIDIOCGPLAYINFO", 0x761a},
+ {"linux/videodev.h", "VIDIOCSMICROCODE", 0x761b},
+ {"linux/videodev.h", "VIDIOCGVBIFMT", 0x761c},
+ {"linux/videodev.h", "VIDIOCSVBIFMT", 0x761d},
+ {"linux/meye.h", "MEYEIOC_G_PARAMS", 0x76c0},
+ {"linux/meye.h", "MEYEIOC_S_PARAMS", 0x76c1},
+ {"linux/meye.h", "MEYEIOC_QBUF_CAPT", 0x76c2},
+ {"linux/meye.h", "MEYEIOC_SYNC", 0x76c3},
+ {"linux/meye.h", "MEYEIOC_STILLCAPT", 0x76c4},
+ {"linux/meye.h", "MEYEIOC_STILLJCAPT", 0x76c5},
+ {"linux/dn.h", "SIOCSNETADDR", 0x89e0},
+ {"linux/dn.h", "OSIOCSNETADDR", 0x89e0},
+ {"linux/dn.h", "SIOCGNETADDR", 0x89e1},
+ {"linux/dn.h", "OSIOCGNETADDR", 0x89e1},
+ {"linux/auto_fs.h", "AUTOFS_IOC_READY", 0x9360},
+ {"linux/auto_fs.h", "AUTOFS_IOC_FAIL", 0x9361},
+ {"linux/auto_fs.h", "AUTOFS_IOC_CATATONIC", 0x9362},
+ {"linux/auto_fs.h", "AUTOFS_IOC_PROTOVER", 0x9363},
+ {"linux/auto_fs.h", "AUTOFS_IOC_SETTIMEOUT", 0x9364},
+ {"linux/auto_fs.h", "AUTOFS_IOC_EXPIRE", 0x9365},
+ {"linux/auto_fs4.h", "AUTOFS_IOC_EXPIRE_MULTI", 0x9366},
+ {"linux/nbd.h", "NBD_SET_SOCK", 0xab00},
+ {"linux/nbd.h", "NBD_SET_BLKSIZE", 0xab01},
+ {"linux/nbd.h", "NBD_SET_SIZE", 0xab02},
+ {"linux/nbd.h", "NBD_DO_IT", 0xab03},
+ {"linux/nbd.h", "NBD_CLEAR_SOCK", 0xab04},
+ {"linux/nbd.h", "NBD_CLEAR_QUE", 0xab05},
+ {"linux/nbd.h", "NBD_PRINT_DEBUG", 0xab06},
+ {"linux/nbd.h", "NBD_SET_SIZE_BLOCKS", 0xab07},
+ {"linux/nbd.h", "NBD_DISCONNECT", 0xab08},
+ {"linux/raw.h", "RAW_SETBIND", 0xac00},
+ {"linux/raw.h", "RAW_GETBIND", 0xac01},
+ {"linux/if_pppox.h", "PPPOEIOCSFWD", 0xb100},
+ {"linux/if_pppox.h", "PPPOEIOCDFWD", 0xb101},
+ {"linux/reiserfs_fs.h", "REISERFS_IOC_UNPACK", 0xcd01},
+ {"linux/lvm.h", "VG_CREATE_OLD", 0xfe00},
+ {"linux/lvm.h", "VG_REMOVE", 0xfe01},
+ {"linux/lvm.h", "VG_EXTEND", 0xfe03},
+ {"linux/lvm.h", "VG_REDUCE", 0xfe04},
+ {"linux/lvm.h", "VG_STATUS", 0xfe05},
+ {"linux/lvm.h", "VG_STATUS_GET_COUNT", 0xfe06},
+ {"linux/lvm.h", "VG_STATUS_GET_NAMELIST", 0xfe07},
+ {"linux/lvm.h", "VG_SET_EXTENDABLE", 0xfe08},
+ {"linux/lvm.h", "VG_RENAME", 0xfe09},
+ {"linux/lvm.h", "VG_CREATE", 0xfe0a},
+ {"linux/lvm.h", "LV_CREATE", 0xfe20},
+ {"linux/lvm.h", "LV_REMOVE", 0xfe21},
+ {"linux/lvm.h", "LV_ACTIVATE", 0xfe22},
+ {"linux/lvm.h", "LV_DEACTIVATE", 0xfe23},
+ {"linux/lvm.h", "LV_EXTEND", 0xfe24},
+ {"linux/lvm.h", "LV_REDUCE", 0xfe25},
+ {"linux/lvm.h", "LV_STATUS_BYNAME", 0xfe26},
+ {"linux/lvm.h", "LV_STATUS_BYINDEX", 0xfe27},
+ {"linux/lvm.h", "LV_SET_ACCESS", 0xfe28},
+ {"linux/lvm.h", "LV_SET_ALLOCATION", 0xfe29},
+ {"linux/lvm.h", "LV_SET_STATUS", 0xfe2a},
+ {"linux/lvm.h", "LE_REMAP", 0xfe2b},
+ {"linux/lvm.h", "LV_SNAPSHOT_USE_RATE", 0xfe2c},
+ {"linux/lvm.h", "LV_STATUS_BYDEV", 0xfe2e},
+ {"linux/lvm.h", "LV_RENAME", 0xfe2f},
+ {"linux/lvm.h", "LV_BMAP", 0xfe30},
+ {"linux/lvm.h", "PV_STATUS", 0xfe40},
+ {"linux/lvm.h", "PV_CHANGE", 0xfe41},
+ {"linux/lvm.h", "PV_FLUSH", 0xfe42},
+ {"linux/lvm.h", "PE_LOCK_UNLOCK", 0xfe50},
+ {"linux/lvm.h", "LVM_GET_IOP_VERSION", 0xfe98},
+ {"linux/lvm.h", "LVM_RESET", 0xfe99},
+ {"linux/lvm.h", "LVM_LOCK_LVM", 0xff00},
diff --git a/strace/linux/sparc/ioctlent1.h b/strace/linux/sparc/ioctlent1.h
new file mode 100644
index 0000000..5d536cf
--- /dev/null
+++ b/strace/linux/sparc/ioctlent1.h
@@ -0,0 +1 @@
+#include "../svr4/ioctlent.h"
diff --git a/strace/linux/sparc/signalent.h b/strace/linux/sparc/signalent.h
new file mode 100644
index 0000000..e059b5d
--- /dev/null
+++ b/strace/linux/sparc/signalent.h
@@ -0,0 +1,32 @@
+ "SIG_0", /* 0 */
+ "SIGHUP", /* 1 */
+ "SIGINT", /* 2 */
+ "SIGQUIT", /* 3 */
+ "SIGILL", /* 4 */
+ "SIGTRAP", /* 5 */
+ "SIGABRT", /* 6 */
+ "SIGEMT", /* 7 */
+ "SIGFPE", /* 8 */
+ "SIGKILL", /* 9 */
+ "SIGBUS", /* 10 */
+ "SIGSEGV", /* 11 */
+ "SIGSYS", /* 12 */
+ "SIGPIPE", /* 13 */
+ "SIGALRM", /* 14 */
+ "SIGTERM", /* 15 */
+ "SIGURG", /* 16 */
+ "SIGSTOP", /* 17 */
+ "SIGTSTP", /* 18 */
+ "SIGCONT", /* 19 */
+ "SIGCHLD", /* 20 */
+ "SIGTTIN", /* 21 */
+ "SIGTTOU", /* 22 */
+ "SIGIO", /* 23 */
+ "SIGXCPU", /* 24 */
+ "SIGXFSZ", /* 25 */
+ "SIGVTALRM", /* 26 */
+ "SIGPROF", /* 27 */
+ "SIGWINCH", /* 28 */
+ "SIGLOST", /* 29 */
+ "SIGUSR1", /* 30 */
+ "SIGUSR2", /* 31 */
diff --git a/strace/linux/sparc/signalent1.h b/strace/linux/sparc/signalent1.h
new file mode 100644
index 0000000..6be7a26
--- /dev/null
+++ b/strace/linux/sparc/signalent1.h
@@ -0,0 +1 @@
+#include "../svr4/signalent.h"
diff --git a/strace/linux/sparc/syscall.h b/strace/linux/sparc/syscall.h
new file mode 100644
index 0000000..a259842
--- /dev/null
+++ b/strace/linux/sparc/syscall.h
@@ -0,0 +1,205 @@
+/*
+ * Copyright (c) 1991, 1992 Paul Kranenburg <pk@cs.few.eur.nl>
+ * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
+ * 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.
+ *
+ * $Id: syscall.h,v 1.10 2005/02/02 20:32:13 roland Exp $
+ */
+#include "dummy.h"
+
+int sys_nosys();
+int sys_nullsys();
+int sys_errsys();
+
+/* 1.1 processes and protection */
+int sys_gethostid(),sys_sethostname(),sys_gethostname(),sys_getpid();
+int sys_setdomainname(),sys_getdomainname();
+int sys_fork(),sys_clone(),sys_exit(),sys_execv(),sys_execve(),sys_wait4(),sys_waitpid();
+int sys_setuid(),sys_setgid(),sys_getuid(),sys_setreuid(),sys_getgid(),sys_getgroups(),sys_setregid(),sys_setgroups();
+int sys_getpgrp(),sys_setpgrp();
+int sys_setsid(), sys_setpgid();
+int sys_uname(), sys_sysinfo();
+
+/* 1.2 memory management */
+int sys_brk(),sys_sbrk(),sys_sstk();
+int sys_getpagesize(),sys_mmap(),sys_mctl(),sys_munmap(),sys_mprotect(),sys_mincore(), sys_mremap();
+int sys_omsync(),sys_omadvise(), sys_madvise(),sys_mlockall();
+
+/* 1.3 signals */
+int sys_sigvec(),sys_sigblock(),sys_sigsetmask(),sys_sigpause(),sys_sigstack(),sys_sigcleanup(), sys_sigreturn();
+int sys_kill(), sys_killpg(), sys_sigpending(), sys_signal(), sys_sigaction(), sys_sigsuspend(), sys_sigprocmask();
+
+/* 1.4 timing and statistics */
+int sys_gettimeofday(),sys_settimeofday();
+int sys_adjtime(), sys_adjtimex();
+int sys_getitimer(),sys_setitimer();
+
+/* 1.5 descriptors */
+int sys_getdtablesize(),sys_dup(),sys_dup2(),sys_close();
+int sys_oldselect(),sys_select(),sys_getdopt(),sys_setdopt(),sys_fcntl(),sys_flock();
+int sys_epoll_create(), sys_epoll_ctl(), sys_epoll_wait();
+
+/* 1.6 resource controls */
+int sys_getpriority(),sys_setpriority(),sys_getrusage(),sys_getrlimit(),sys_setrlimit();
+int sys_oldquota(), sys_quotactl();
+int sys_rtschedule(), sys_personality();
+
+/* 1.7 system operation support */
+int sys_mount(),sys_unmount(),sys_swapon(),sys_pivotroot();
+int sys_sync(),sys_reboot();
+int sys_sysacct();
+int sys_auditsys();
+
+/* 2.1 generic operations */
+int sys_read(),sys_write(),sys_readv(),sys_writev(),sys_ioctl();
+
+/* 2.1.1 asynch operations */
+int sys_aioread(), sys_aiowrite(), sys_aiowait(), sys_aiocancel();
+
+/* 2.2 file system */
+int sys_chdir(),sys_chroot();
+int sys_fchdir(),sys_fchroot();
+int sys_mkdir(),sys_rmdir(),sys_getdirentries();
+int sys_getdents(), sys_getdents64(), sys_readdir();
+int sys_creat(),sys_open(),sys_mknod(),sys_unlink(),sys_stat(),sys_fstat(),sys_lstat();
+int sys_chown(),sys_fchown(),sys_chmod(),sys_fchmod(),sys_utimes();
+int sys_link(),sys_symlink(),sys_readlink(),sys_rename();
+int sys_lseek(), sys_llseek();
+int sys_truncate(),sys_ftruncate(),sys_access(),sys_fsync(),sys_sysctl();
+int sys_statfs(),sys_fstatfs(),sys_msync();
+int sys_stat64(), sys_lstat64(), sys_fstat64();
+int sys_truncate64(), sys_ftruncate64();
+
+
+/* 2.3 communications */
+int sys_socket(),sys_bind(),sys_listen(),sys_accept(),sys_connect();
+int sys_socketpair(),sys_sendto(),sys_send(),sys_recvfrom(),sys_recv();
+int sys_sendmsg(),sys_recvmsg(),sys_shutdown(),sys_setsockopt(),sys_getsockopt();
+int sys_getsockname(),sys_getpeername(),sys_pipe();
+
+int sys_setresuid(), sys_setresgid(), sys_getresuid(), sys_getresgid(), sys_pread();
+int sys_pwrite(), sys_getcwd();
+int sys_sigaltstack(), sys_rt_sigprocmask(), sys_rt_sigaction();
+int sys_rt_sigpending(), sys_rt_sigsuspend(), sys_rt_sigqueueinfo();
+int sys_rt_sigtimedwait(), sys_prctl(), sys_poll();
+int sys_sendfile(), sys_query_module(), sys_capget(), sys_capset();
+int sys_create_module(), sys_init_module();
+
+int sys_umask(); /* XXX */
+
+int sys_sched_setparam(), sys_sched_getparam();
+int sys_sched_setscheduler(), sys_sched_getscheduler(), sys_sched_yield();
+int sys_sched_get_priority_max(), sys_sched_get_priority_min();
+
+/* 2.3.1 SystemV-compatible IPC */
+int sys_semsys(), sys_semctl(), sys_semget();
+#define SYS_semsys_subcall 200
+#define SYS_semsys_nsubcalls 3
+#define SYS_semctl (SYS_semsys_subcall + 0)
+#define SYS_semget (SYS_semsys_subcall + 1)
+#define SYS_semop (SYS_semsys_subcall + 2)
+int sys_msgsys(), sys_msgget(), sys_msgctl(), sys_msgrcv(), sys_msgsnd();
+#define SYS_msgsys_subcall 203
+#define SYS_msgsys_nsubcalls 4
+#define SYS_msgget (SYS_msgsys_subcall + 0)
+#define SYS_msgctl (SYS_msgsys_subcall + 1)
+#define SYS_msgrcv (SYS_msgsys_subcall + 2)
+#define SYS_msgsnd (SYS_msgsys_subcall + 3)
+int sys_shmsys(), sys_shmat(), sys_shmctl(), sys_shmdt(), sys_shmget();
+#define SYS_shmsys_subcall 207
+#define SYS_shmsys_nsubcalls 4
+#define SYS_shmat (SYS_shmsys_subcall + 0)
+#define SYS_shmctl (SYS_shmsys_subcall + 1)
+#define SYS_shmdt (SYS_shmsys_subcall + 2)
+#define SYS_shmget (SYS_shmsys_subcall + 3)
+
+/* 2.4 processes */
+int sys_ptrace();
+
+/* 2.5 terminals */
+
+/* emulations for backwards compatibility */
+int sys_otime(); /* now use gettimeofday */
+int sys_ostime(); /* now use settimeofday */
+int sys_oalarm(); /* now use setitimer */
+int sys_outime(); /* now use utimes */
+int sys_opause(); /* now use sigpause */
+int sys_onice(); /* now use setpriority,getpriority */
+int sys_oftime(); /* now use gettimeofday */
+int sys_osetpgrp(); /* ??? */
+int sys_otimes(); /* now use getrusage */
+int sys_ossig(); /* now use sigvec, etc */
+int sys_ovlimit(); /* now use setrlimit,getrlimit */
+int sys_ovtimes(); /* now use getrusage */
+int sys_osetuid(); /* now use setreuid */
+int sys_osetgid(); /* now use setregid */
+int sys_ostat(); /* now use stat */
+int sys_ofstat(); /* now use fstat */
+
+/* BEGIN JUNK */
+int sys_profil(); /* 'cuz sys calls are interruptible */
+int sys_vhangup(); /* should just do in sys_exit() */
+int sys_vfork(); /* XXX - was awaiting fork w/ copy on write */
+int sys_ovadvise(); /* awaiting new madvise */
+int sys_indir(); /* indirect system call */
+int sys_ustat(); /* System V compatibility */
+int sys_owait(); /* should use wait4 interface */
+int sys_owait3(); /* should use wait4 interface */
+int sys_umount(); /* still more Sys V (and 4.2?) compatibility */
+int sys_umount2();
+int sys_pathconf(); /* posix */
+int sys_fpathconf(); /* posix */
+int sys_sysconf(); /* posix */
+int sys_delete_module();
+int sys_debug();
+/* END JUNK */
+
+int sys_vtrace(); /* kernel event tracing */
+
+/* nfs */
+int sys_async_daemon(); /* client async daemon */
+int sys_nfs_svc(); /* run nfs server */
+int sys_nfs_getfh(); /* get file handle */
+int sys_exportfs(); /* export file systems */
+
+int sys_rfssys(); /* RFS-related calls */
+
+int sys_getmsg();
+int sys_putmsg();
+int sys_poll();
+
+int sys_vpixsys(); /* VP/ix system calls */
+
+int sys_sendfile64(), sys_futex(), sys_gettid(), sys_sched_setaffinity();
+int sys_sched_getaffinity(), sys_setxattr(), sys_lsetxattr();
+int sys_fsetxattr(), sys_getxattr(), sys_lgetxattr(), sys_fgetxattr();
+int sys_listxattr(), sys_llistxattr(), sys_flistxattr();
+int sys_removexattr(), sys_lremovexattr(), sys_fremovexattr();
+int sys_remap_file_pages(), sys_readahead(), sys_tgkill(), sys_statfs64();
+int sys_fstatfs64(), sys_clock_settime(), sys_clock_gettime();
+int sys_clock_getres(), sys_clock_nanosleep();
+int sys_timer_create(), sys_timer_settime(), sys_timer_gettime();
+
+#include "syscall1.h"
diff --git a/strace/linux/sparc/syscall.h.2 b/strace/linux/sparc/syscall.h.2
new file mode 100644
index 0000000..60c0bca
--- /dev/null
+++ b/strace/linux/sparc/syscall.h.2
@@ -0,0 +1,142 @@
+/*
+ * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
+ * Copyright (c) 1993, 1994, 1995 Rick Sladkey <jrs@world.std.com>
+ * 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.
+ *
+ * $Id: syscall.h.2,v 1.1.1.1 1999/02/19 00:23:14 wichert Exp $
+ */
+
+#include "dummy.h"
+
+/* primary syscalls */
+
+int sys_setup(), sys_exit(), sys_fork(), sys_read(), sys_write();
+int sys_open(), sys_close(), sys_waitpid(), sys_creat(), sys_link();
+int sys_unlink(), sys_execve(), sys_chdir(), sys_time(), sys_mknod();
+int sys_chmod(), sys_chown(), sys_break(), sys_oldstat();
+int sys_lseek(), sys_getpid(), sys_mount(), sys_umount();
+int sys_setuid(), sys_getuid(), sys_stime(), sys_ptrace();
+int sys_alarm(), sys_oldfstat(), sys_pause(), sys_utime();
+int sys_stty(), sys_gtty(), sys_access(), sys_nice(), sys_ftime();
+int sys_sync(), sys_kill(), sys_rename(), sys_mkdir(), sys_rmdir();
+int sys_dup(), sys_pipe(), sys_times(), sys_prof(), sys_brk();
+int sys_setgid(), sys_getgid(), sys_signal(), sys_geteuid();
+int sys_getegid(), sys_acct(), sys_phys(), sys_lock(), sys_ioctl();
+int sys_fcntl(), sys_mpx(), sys_setpgid(), sys_ulimit();
+int sys_olduname(), sys_umask(), sys_chroot(), sys_ustat();
+int sys_dup2(), sys_getppid(), sys_getpgrp(), sys_setsid();
+int sys_sigaction(), sys_siggetmask(), sys_sigsetmask();
+int sys_setreuid(), sys_setregid(), sys_sigsuspend();
+int sys_sigpending(), sys_sethostname(), sys_setrlimit();
+int sys_getrlimit(), sys_getrusage(), sys_gettimeofday();
+int sys_settimeofday(), sys_getgroups(), sys_setgroups();
+int sys_oldselect(), sys_symlink(), sys_oldlstat(), sys_readlink();
+int sys_uselib(), sys_swapon(), sys_reboot(), sys_readdir();
+int sys_mmap(), sys_munmap(), sys_truncate(), sys_ftruncate();
+int sys_fchmod(), sys_fchown(), sys_getpriority();
+int sys_setpriority(), sys_profil(), sys_statfs(), sys_fstatfs();
+int sys_ioperm(), sys_socketcall(), sys_syslog(), sys_setitimer();
+int sys_getitimer(), sys_stat(), sys_lstat(), sys_fstat();
+int sys_uname(), sys_iopl(), sys_vhangup(), sys_idle(), sys_vm86();
+int sys_wait4(), sys_swapoff(), sys_ipc(), sys_sigreturn();
+int sys_fsync(), sys_clone(), sys_setdomainname(), sys_sysinfo();
+int sys_modify_ldt(), sys_adjtimex(), sys_mprotect();
+int sys_sigprocmask(), sys_create_module(), sys_init_module();
+int sys_delete_module(), sys_get_kernel_syms(), sys_quotactl();
+int sys_getpgid(), sys_fchdir(), sys_bdflush();
+int sys_sysfs(), sys_personality(), sys_afs_syscall();
+int sys_setfsuid(), sys_setfsgid(), sys_llseek();
+int sys_getdents(), sys_flock(), sys_msync();
+int sys_readv(), sys_writev(), sys_select();
+int sys_getsid(), sys_fdatasync(), sys_sysctl();
+int sys_mlock(), sys_munlock(), sys_mlockall(), sys_munlockall();
+int sys_sched_setparam(), sys_sched_getparam();
+int sys_sched_setscheduler(), sys_sched_getscheduler(), sys_sched_yield();
+int sys_sched_get_priority_max(), sys_sched_get_priority_min();
+int sys_sched_rr_get_interval(), sys_nanosleep(), sys_mremap();
+int sys_sendmsg(), sys_recvmsg();
+
+/* sys_socketcall subcalls */
+
+int sys_socket(), sys_bind(), sys_connect(), sys_listen();
+int sys_accept(), sys_getsockname(), sys_getpeername(), sys_socketpair();
+int sys_send(), sys_recv(), sys_sendto(), sys_recvfrom();
+int sys_shutdown(), sys_setsockopt(), sys_getsockopt();
+
+#ifndef ALPHA
+#define SYS_socket_subcall 180
+#define SYS_socket (SYS_socket_subcall + 1)
+#define SYS_bind (SYS_socket_subcall + 2)
+#define SYS_connect (SYS_socket_subcall + 3)
+#define SYS_listen (SYS_socket_subcall + 4)
+#define SYS_accept (SYS_socket_subcall + 5)
+#define SYS_getsockname (SYS_socket_subcall + 6)
+#define SYS_getpeername (SYS_socket_subcall + 7)
+#define SYS_socketpair (SYS_socket_subcall + 8)
+#define SYS_send (SYS_socket_subcall + 9)
+#define SYS_recv (SYS_socket_subcall + 10)
+#define SYS_sendto (SYS_socket_subcall + 11)
+#define SYS_recvfrom (SYS_socket_subcall + 12)
+#define SYS_shutdown (SYS_socket_subcall + 13)
+#define SYS_setsockopt (SYS_socket_subcall + 14)
+#define SYS_getsockopt (SYS_socket_subcall + 15)
+
+#define SYS_socket_nsubcalls 16
+#endif /* !ALPHA */
+
+/* sys_ipc subcalls */
+
+int sys_semget(), sys_semctl();
+int sys_msgsnd(), sys_msgrcv(), sys_msgget(), sys_msgctl();
+int sys_shmat(), sys_shmdt(), sys_shmget(), sys_shmctl();
+
+#ifndef ALPHA
+#define SYS_ipc_subcall 200
+#define SYS_semop (SYS_ipc_subcall + 1)
+#define SYS_semget (SYS_ipc_subcall + 2)
+#define SYS_semctl (SYS_ipc_subcall + 3)
+#define SYS_msgsnd (SYS_ipc_subcall + 11)
+#define SYS_msgrcv (SYS_ipc_subcall + 12)
+#define SYS_msgget (SYS_ipc_subcall + 13)
+#define SYS_msgctl (SYS_ipc_subcall + 14)
+#define SYS_shmat (SYS_ipc_subcall + 21)
+#define SYS_shmdt (SYS_ipc_subcall + 22)
+#define SYS_shmget (SYS_ipc_subcall + 23)
+#define SYS_shmctl (SYS_ipc_subcall + 24)
+
+#define SYS_ipc_nsubcalls 25
+#endif /* ALPHA */
+
+#ifdef ALPHA
+int osf_statfs(), osf_fstatfs(), sys_getpagesize(), sys_madvise();
+int sys_setpgrp(), sys_gethostname(), sys_getdtablesize(), sys_utimes();
+#endif
+
+int sys__llseek(), sys__newselect(), sys__sysctl(), sys_klog();
+int sys_prev_fstat(), sys_prev_lstat(), sys_prev_mknod(), sys_prev_stat();
+int sys_prev_ustat(), sys_syscall_flock(), sys_syscall_readv();
+int sys_syscall_writev();
+
+#include "syscall1.h"
diff --git a/strace/linux/sparc/syscall1.h b/strace/linux/sparc/syscall1.h
new file mode 100644
index 0000000..7ed7624
--- /dev/null
+++ b/strace/linux/sparc/syscall1.h
@@ -0,0 +1,501 @@
+/*
+ * Copyright (c) 1993, 1994, 1995 Rick Sladkey <jrs@world.std.com>
+ * 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.
+ *
+ * $Id: syscall1.h,v 1.1.1.1 1999/02/19 00:23:16 wichert Exp $
+ */
+
+#define SOLARIS_syscall 0
+#define SOLARIS_exit 1
+#define SOLARIS_fork 2
+#define SOLARIS_read 3
+#define SOLARIS_write 4
+#define SOLARIS_open 5
+#define SOLARIS_close 6
+#define SOLARIS_wait 7
+#define SOLARIS_creat 8
+#define SOLARIS_link 9
+#define SOLARIS_unlink 10
+#define SOLARIS_exec 11
+#define SOLARIS_chdir 12
+#define SOLARIS_time 13
+#define SOLARIS_mknod 14
+#define SOLARIS_chmod 15
+#define SOLARIS_chown 16
+#define SOLARIS_brk 17
+#define SOLARIS_stat 18
+#define SOLARIS_lseek 19
+#define SOLARIS_getpid 20
+#define SOLARIS_mount 21
+#define SOLARIS_umount 22
+#define SOLARIS_setuid 23
+#define SOLARIS_getuid 24
+#define SOLARIS_stime 25
+#define SOLARIS_ptrace 26
+#define SOLARIS_alarm 27
+#define SOLARIS_fstat 28
+#define SOLARIS_pause 29
+#define SOLARIS_utime 30
+#define SOLARIS_stty 31
+#define SOLARIS_gtty 32
+#define SOLARIS_access 33
+#define SOLARIS_nice 34
+#define SOLARIS_statfs 35
+#define SOLARIS_sync 36
+#define SOLARIS_kill 37
+#define SOLARIS_fstatfs 38
+#define SOLARIS_pgrpsys 39
+#define SOLARIS_xenix 40
+#define SOLARIS_dup 41
+#define SOLARIS_pipe 42
+#define SOLARIS_times 43
+#define SOLARIS_profil 44
+#define SOLARIS_plock 45
+#define SOLARIS_setgid 46
+#define SOLARIS_getgid 47
+#define SOLARIS_signal 48
+#define SOLARIS_msgsys 49
+#define SOLARIS_syssun 50
+#define SOLARIS_acct 51
+#define SOLARIS_shmsys 52
+#define SOLARIS_semsys 53
+#define SOLARIS_ioctl 54
+#define SOLARIS_uadmin 55
+#define SOLARIS_utssys 57
+#define SOLARIS_fdsync 58
+#define SOLARIS_execve 59
+#define SOLARIS_umask 60
+#define SOLARIS_chroot 61
+#define SOLARIS_fcntl 62
+#define SOLARIS_ulimit 63
+#define SOLARIS_rmdir 79
+#define SOLARIS_mkdir 80
+#define SOLARIS_getdents 81
+#define SOLARIS_sysfs 84
+#define SOLARIS_getmsg 85
+#define SOLARIS_putmsg 86
+#define SOLARIS_poll 87
+#define SOLARIS_lstat 88
+#define SOLARIS_symlink 89
+#define SOLARIS_readlink 90
+#define SOLARIS_setgroups 91
+#define SOLARIS_getgroups 92
+#define SOLARIS_fchmod 93
+#define SOLARIS_fchown 94
+#define SOLARIS_sigprocmask 95
+#define SOLARIS_sigsuspend 96
+#define SOLARIS_sigaltstack 97
+#define SOLARIS_sigaction 98
+#define SOLARIS_sigpending 99
+#define SOLARIS_context 100
+#define SOLARIS_evsys 101
+#define SOLARIS_evtrapret 102
+#define SOLARIS_statvfs 103
+#define SOLARIS_fstatvfs 104
+#define SOLARIS_nfssys 106
+#define SOLARIS_waitsys 107
+#define SOLARIS_sigsendsys 108
+#define SOLARIS_hrtsys 109
+#define SOLARIS_acancel 110
+#define SOLARIS_async 111
+#define SOLARIS_priocntlsys 112
+#define SOLARIS_pathconf 113
+#define SOLARIS_mincore 114
+#define SOLARIS_mmap 115
+#define SOLARIS_mprotect 116
+#define SOLARIS_munmap 117
+#define SOLARIS_fpathconf 118
+#define SOLARIS_vfork 119
+#define SOLARIS_fchdir 120
+#define SOLARIS_readv 121
+#define SOLARIS_writev 122
+#define SOLARIS_xstat 123
+#define SOLARIS_lxstat 124
+#define SOLARIS_fxstat 125
+#define SOLARIS_xmknod 126
+#define SOLARIS_clocal 127
+#define SOLARIS_setrlimit 128
+#define SOLARIS_getrlimit 129
+#define SOLARIS_lchown 130
+#define SOLARIS_memcntl 131
+#define SOLARIS_getpmsg 132
+#define SOLARIS_putpmsg 133
+#define SOLARIS_rename 134
+#define SOLARIS_uname 135
+#define SOLARIS_setegid 136
+#define SOLARIS_sysconfig 137
+#define SOLARIS_adjtime 138
+#define SOLARIS_systeminfo 139
+#define SOLARIS_seteuid 141
+#define SOLARIS_vtrace 142
+#define SOLARIS_fork1 143
+#define SOLARIS_sigtimedwait 144
+#define SOLARIS_lwp_info 145
+#define SOLARIS_yield 146
+#define SOLARIS_lwp_sema_wait 147
+#define SOLARIS_lwp_sema_post 148
+#define SOLARIS_modctl 152
+#define SOLARIS_fchroot 153
+#define SOLARIS_utimes 154
+#define SOLARIS_vhangup 155
+#define SOLARIS_gettimeofday 156
+#define SOLARIS_getitimer 157
+#define SOLARIS_setitimer 158
+#define SOLARIS_lwp_create 159
+#define SOLARIS_lwp_exit 160
+#define SOLARIS_lwp_suspend 161
+#define SOLARIS_lwp_continue 162
+#define SOLARIS_lwp_kill 163
+#define SOLARIS_lwp_self 164
+#define SOLARIS_lwp_setprivate 165
+#define SOLARIS_lwp_getprivate 166
+#define SOLARIS_lwp_wait 167
+#define SOLARIS_lwp_mutex_unlock 168
+#define SOLARIS_lwp_mutex_lock 169
+#define SOLARIS_lwp_cond_wait 170
+#define SOLARIS_lwp_cond_signal 171
+#define SOLARIS_lwp_cond_broadcast 172
+#define SOLARIS_pread 173
+#define SOLARIS_pwrite 174
+#define SOLARIS_llseek 175
+#define SOLARIS_inst_sync 176
+#define SOLARIS_kaio 178
+#define SOLARIS_tsolsys 184
+#define SOLARIS_acl 185
+#define SOLARIS_auditsys 186
+#define SOLARIS_processor_bind 187
+#define SOLARIS_processor_info 188
+#define SOLARIS_p_online 189
+#define SOLARIS_sigqueue 190
+#define SOLARIS_clock_gettime 191
+#define SOLARIS_clock_settime 192
+#define SOLARIS_clock_getres 193
+#define SOLARIS_timer_create 194
+#define SOLARIS_timer_delete 195
+#define SOLARIS_timer_settime 196
+#define SOLARIS_timer_gettime 197
+#define SOLARIS_timer_getoverrun 198
+#define SOLARIS_nanosleep 199
+#define SOLARIS_facl 200
+#define SOLARIS_door 201
+#define SOLARIS_setreuid 202
+#define SOLARIS_setregid 203
+#define SOLARIS_signotifywait 210
+#define SOLARIS_lwp_sigredirect 211
+#define SOLARIS_lwp_alarm 212
+
+#include "dummy2.h"
+
+extern int solaris_syscall();
+extern int solaris_exit();
+extern int solaris_fork();
+extern int solaris_read();
+extern int solaris_write();
+extern int solaris_open();
+extern int solaris_close();
+extern int solaris_wait();
+extern int solaris_creat();
+extern int solaris_link();
+extern int solaris_unlink();
+extern int solaris_exec();
+extern int solaris_chdir();
+extern int solaris_time();
+extern int solaris_mknod();
+extern int solaris_chmod();
+extern int solaris_chown();
+extern int solaris_brk();
+extern int solaris_stat();
+extern int solaris_lseek();
+extern int solaris_getpid();
+extern int solaris_mount();
+extern int solaris_umount();
+extern int solaris_setuid();
+extern int solaris_getuid();
+extern int solaris_stime();
+extern int solaris_ptrace();
+extern int solaris_alarm();
+extern int solaris_fstat();
+extern int solaris_pause();
+extern int solaris_utime();
+extern int solaris_stty();
+extern int solaris_gtty();
+extern int solaris_access();
+extern int solaris_nice();
+extern int solaris_statfs();
+extern int solaris_sync();
+extern int solaris_kill();
+extern int solaris_fstatfs();
+extern int solaris_pgrpsys();
+extern int solaris_setpgrp();
+extern int solaris_xenix();
+extern int solaris_syssgi();
+extern int solaris_dup();
+extern int solaris_pipe();
+extern int solaris_times();
+extern int solaris_profil();
+extern int solaris_plock();
+extern int solaris_setgid();
+extern int solaris_getgid();
+extern int solaris_sigcall();
+extern int solaris_msgsys();
+extern int solaris_syssun();
+extern int solaris_sysi86();
+extern int solaris_sysmips();
+extern int solaris_sysmachine();
+extern int solaris_acct();
+extern int solaris_shmsys();
+extern int solaris_semsys();
+extern int solaris_ioctl();
+extern int solaris_uadmin();
+extern int solaris_utssys();
+extern int solaris_fdsync();
+extern int solaris_execve();
+extern int solaris_umask();
+extern int solaris_chroot();
+extern int solaris_fcntl();
+extern int solaris_ulimit();
+extern int solaris_rmdir();
+extern int solaris_mkdir();
+extern int solaris_getdents();
+extern int solaris_sysfs();
+extern int solaris_getmsg();
+extern int solaris_putmsg();
+extern int solaris_poll();
+extern int solaris_lstat();
+extern int solaris_symlink();
+extern int solaris_readlink();
+extern int solaris_setgroups();
+extern int solaris_getgroups();
+extern int solaris_fchmod();
+extern int solaris_fchown();
+extern int solaris_sigprocmask();
+extern int solaris_sigsuspend();
+extern int solaris_sigaltstack();
+extern int solaris_sigaction();
+extern int solaris_spcall();
+extern int solaris_context();
+extern int solaris_evsys();
+extern int solaris_evtrapret();
+extern int solaris_statvfs();
+extern int solaris_fstatvfs();
+extern int solaris_nfssys();
+extern int solaris_waitid();
+extern int solaris_sigsendsys();
+extern int solaris_hrtsys();
+extern int solaris_acancel();
+extern int solaris_async();
+extern int solaris_priocntlsys();
+extern int solaris_pathconf();
+extern int solaris_mincore();
+extern int solaris_mmap();
+extern int solaris_mprotect();
+extern int solaris_munmap();
+extern int solaris_fpathconf();
+extern int solaris_vfork();
+extern int solaris_fchdir();
+extern int solaris_readv();
+extern int solaris_writev();
+extern int solaris_xstat();
+extern int solaris_lxstat();
+extern int solaris_fxstat();
+extern int solaris_xmknod();
+extern int solaris_clocal();
+extern int solaris_setrlimit();
+extern int solaris_getrlimit();
+extern int solaris_lchown();
+extern int solaris_memcntl();
+extern int solaris_getpmsg();
+extern int solaris_putpmsg();
+extern int solaris_rename();
+extern int solaris_uname();
+extern int solaris_setegid();
+extern int solaris_sysconfig();
+extern int solaris_adjtime();
+extern int solaris_sysinfo();
+extern int solaris_seteuid();
+extern int solaris_vtrace();
+extern int solaris_fork1();
+extern int solaris_sigtimedwait();
+extern int solaris_lwp_info();
+extern int solaris_yield();
+extern int solaris_lwp_sema_wait();
+extern int solaris_lwp_sema_post();
+extern int solaris_modctl();
+extern int solaris_fchroot();
+extern int solaris_utimes();
+extern int solaris_vhangup();
+extern int solaris_gettimeofday();
+extern int solaris_getitimer();
+extern int solaris_setitimer();
+extern int solaris_lwp_create();
+extern int solaris_lwp_exit();
+extern int solaris_lwp_suspend();
+extern int solaris_lwp_continue();
+extern int solaris_lwp_kill();
+extern int solaris_lwp_self();
+extern int solaris_lwp_setprivate();
+extern int solaris_lwp_getprivate();
+extern int solaris_lwp_wait();
+extern int solaris_lwp_mutex_unlock();
+extern int solaris_lwp_mutex_lock();
+extern int solaris_lwp_cond_wait();
+extern int solaris_lwp_cond_signal();
+extern int solaris_lwp_cond_broadcast();
+extern int solaris_pread();
+extern int solaris_pwrite();
+extern int solaris_llseek();
+extern int solaris_inst_sync();
+extern int solaris_auditsys();
+extern int solaris_processor_bind();
+extern int solaris_processor_info();
+extern int solaris_p_online();
+extern int solaris_sigqueue();
+extern int solaris_clock_gettime();
+extern int solaris_clock_settime();
+extern int solaris_clock_getres();
+extern int solaris_timer_create();
+extern int solaris_timer_delete();
+extern int solaris_timer_settime();
+extern int solaris_timer_gettime();
+extern int solaris_timer_getoverrun();
+extern int solaris_nanosleep();
+
+/* solaris_pgrpsys subcalls */
+
+extern int solaris_getpgrp(), solaris_setpgrp(), solaris_getsid();
+extern int solaris_setsid(), solaris_getpgid(), solaris_setpgid();
+
+#define SOLARIS_pgrpsys_subcall 300
+#define SOLARIS_getpgrp (SOLARIS_pgrpsys_subcall + 0)
+#define SOLARIS_setpgrp (SOLARIS_pgrpsys_subcall + 1)
+#define SOLARIS_getsid (SOLARIS_pgrpsys_subcall + 2)
+#define SOLARIS_setsid (SOLARIS_pgrpsys_subcall + 3)
+#define SOLARIS_getpgid (SOLARIS_pgrpsys_subcall + 4)
+#define SOLARIS_setpgid (SOLARIS_pgrpsys_subcall + 5)
+
+#define SOLARIS_pgrpsys_nsubcalls 6
+
+/* solaris_sigcall subcalls */
+
+#undef SOLARIS_signal
+#define SOLARIS_sigcall 48
+
+extern int solaris_signal(), solaris_sigset(), solaris_sighold();
+extern int solaris_sigrelse(), solaris_sigignore(), solaris_sigpause();
+
+#define SOLARIS_sigcall_subcall 310
+#define SOLARIS_signal (SOLARIS_sigcall_subcall + 0)
+#define SOLARIS_sigset (SOLARIS_sigcall_subcall + 1)
+#define SOLARIS_sighold (SOLARIS_sigcall_subcall + 2)
+#define SOLARIS_sigrelse (SOLARIS_sigcall_subcall + 3)
+#define SOLARIS_sigignore (SOLARIS_sigcall_subcall + 4)
+#define SOLARIS_sigpause (SOLARIS_sigcall_subcall + 5)
+
+#define SOLARIS_sigcall_nsubcalls 6
+
+/* msgsys subcalls */
+
+extern int solaris_msgget(), solaris_msgctl(), solaris_msgrcv(), solaris_msgsnd();
+
+#define SOLARIS_msgsys_subcall 320
+#define SOLARIS_msgget (SOLARIS_msgsys_subcall + 0)
+#define SOLARIS_msgctl (SOLARIS_msgsys_subcall + 1)
+#define SOLARIS_msgrcv (SOLARIS_msgsys_subcall + 2)
+#define SOLARIS_msgsnd (SOLARIS_msgsys_subcall + 3)
+
+#define SOLARIS_msgsys_nsubcalls 4
+
+/* shmsys subcalls */
+
+extern int solaris_shmat(), solaris_shmctl(), solaris_shmdt(), solaris_shmget();
+
+#define SOLARIS_shmsys_subcall 330
+#define SOLARIS_shmat (SOLARIS_shmsys_subcall + 0)
+#define SOLARIS_shmctl (SOLARIS_shmsys_subcall + 1)
+#define SOLARIS_shmdt (SOLARIS_shmsys_subcall + 2)
+#define SOLARIS_shmget (SOLARIS_shmsys_subcall + 3)
+
+#define SOLARIS_shmsys_nsubcalls 4
+
+/* semsys subcalls */
+
+extern int solaris_semctl(), solaris_semget(), solaris_semop();
+
+#define SOLARIS_semsys_subcall 340
+#define SOLARIS_semctl (SOLARIS_semsys_subcall + 0)
+#define SOLARIS_semget (SOLARIS_semsys_subcall + 1)
+#define SOLARIS_semop (SOLARIS_semsys_subcall + 2)
+
+#define SOLARIS_semsys_nsubcalls 3
+
+/* utssys subcalls */
+
+extern int solaris_olduname(), solaris_ustat(), solaris_fusers();
+
+#define SOLARIS_utssys_subcall 350
+
+#define SOLARIS_olduname (SOLARIS_utssys_subcall + 0)
+ /* 1 is unused */
+#define SOLARIS_ustat (SOLARIS_utssys_subcall + 2)
+#define SOLARIS_fusers (SOLARIS_utssys_subcall + 3)
+
+#define SOLARIS_utssys_nsubcalls 4
+
+/* sysfs subcalls */
+
+extern int solaris_sysfs1(), solaris_sysfs2(), solaris_sysfs3();
+
+#define SOLARIS_sysfs_subcall 360
+ /* 0 is unused */
+#define SOLARIS_sysfs1 (SOLARIS_sysfs_subcall + 1)
+#define SOLARIS_sysfs2 (SOLARIS_sysfs_subcall + 2)
+#define SOLARIS_sysfs3 (SOLARIS_sysfs_subcall + 3)
+
+#define SOLARIS_sysfs_nsubcalls 4
+
+/* solaris_spcall subcalls */
+
+#undef SOLARIS_sigpending
+#define SOLARIS_spcall 99
+
+extern int solaris_sigpending(), solaris_sigfillset();
+
+#define SOLARIS_spcall_subcall 370
+ /* 0 is unused */
+#define SOLARIS_sigpending (SOLARIS_spcall_subcall + 1)
+#define SOLARIS_sigfillset (SOLARIS_spcall_subcall + 2)
+
+#define SOLARIS_spcall_nsubcalls 3
+
+/* solaris_context subcalls */
+
+extern int solaris_getcontext(), solaris_setcontext();
+
+#define SOLARIS_context_subcall 380
+#define SOLARIS_getcontext (SOLARIS_context_subcall + 0)
+#define SOLARIS_setcontext (SOLARIS_context_subcall + 1)
+
+#define SOLARIS_context_nsubcalls 2
+
diff --git a/strace/linux/sparc/syscallent.h b/strace/linux/sparc/syscallent.h
new file mode 100644
index 0000000..2872946
--- /dev/null
+++ b/strace/linux/sparc/syscallent.h
@@ -0,0 +1,353 @@
+ { 1, 0, sys_setup, "setup" }, /* 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 */
+ { 4, TP, sys_wait4, "wait4" }, /* 7 */
+ { 2, TF, sys_creat, "creat" }, /* 8 */
+ { 2, TF, sys_link, "link" }, /* 9 */
+ { 1, TF, sys_unlink, "unlink" }, /* 10 */
+ { 2, TF|TP, sys_execv, "execv" }, /* 11 */
+ { 1, TF, sys_chdir, "chdir" }, /* 12 */
+ { 3, TF, sys_chown, "chown"}, /* 13 */
+ { 3, TF, sys_mknod, "mknod" }, /* 14 */
+ { 2, TF, sys_chmod, "chmod" }, /* 15 */
+ { 3, TF, sys_chown, "lchown" }, /* 16 */
+ { 1, 0, sys_brk, "brk" }, /* 17 */
+ { 4, 0, printargs, "perfctr" }, /* 18 */
+ { 3, 0, sys_lseek, "lseek" }, /* 19 */
+ { 0, 0, sys_getpid, "getpid" }, /* 20 */
+ { 2, 0, sys_capget, "capget" }, /* 21 */
+ { 2, 0, sys_capset, "capset" }, /* 22 */
+ { 1, 0, sys_setuid, "setuid" }, /* 23 */
+ { 0, 0, sys_getuid, "getuid" }, /* 24 */
+ { 1, 0, sys_time, "time" }, /* 25 */
+ { 5, 0, sys_ptrace, "ptrace" }, /* 26 */
+ { 1, 0, sys_alarm, "alarm" }, /* 27 */
+ { 2, TS, sys_sigaltstack,"sigaltstack" }, /* 28 */
+ { 0, TS, sys_pause, "pause" }, /* 29 */
+ { 2, TF, sys_utime, "utime" }, /* 30 */
+ { 3, TF, sys_chown, "lchown32" }, /* 31 */
+ { 3, 0, sys_fchown, "fchown32" }, /* 32 */
+ { 2, TF, sys_access, "access" }, /* 33 */
+ { 1, 0, sys_nice, "nice" }, /* 34 */
+ { 3, TF, sys_chown, "chown32" }, /* 35 */
+ { 0, 0, sys_sync, "sync" }, /* 36 */
+ { 2, TS, sys_kill, "kill" }, /* 37 */
+ { 2, TF, sys_stat, "stat" }, /* 38 */
+ { 4, TF, sys_sendfile, "sendfile" }, /* 39 */
+ { 2, TF, sys_lstat, "lstat" }, /* 40 */
+ { 2, 0, sys_dup, "dup" }, /* 41 */
+ { 0, 0, sys_pipe, "pipe" }, /* 42 */
+ { 1, 0, sys_times, "times" }, /* 43 */
+ { 0, 0, sys_getuid, "getuid32" }, /* 44 */
+ { 2, TF, sys_umount2, "umount" }, /* 45 */
+ { 1, 0, sys_setgid, "setgid" }, /* 46 */
+ { 0, 0, sys_getgid, "getgid" }, /* 47 */
+ { 3, TS, sys_signal, "signal" }, /* 48 */
+ { 0, 0, sys_geteuid, "geteuid" }, /* 49 */
+ { 0, 0, sys_getegid, "getegid" }, /* 50 */
+ { 1, TF, sys_acct, "acct" }, /* 51 */
+ { 2, 0, printargs, "memory_ordering" }, /* 52 */
+ { 0, 0, sys_getgid, "getgid32" }, /* 53 */
+ { 3, 0, sys_ioctl, "ioctl" }, /* 54 */
+ { 3, 0, sys_reboot, "reboot" }, /* 55 */
+ { 6, 0, sys_mmap, "mmap2" }, /* 56 */
+ { 2, TF, sys_symlink, "symlink" }, /* 57 */
+ { 3, TF, sys_readlink, "readlink" }, /* 58 */
+ { 3, TF|TP, sys_execve, "execve" }, /* 59 */
+ { 1, 0, sys_umask, "umask" }, /* 60 */
+ { 1, TF, sys_chroot, "chroot" }, /* 61 */
+ { 2, 0, sys_fstat, "fstat" }, /* 62 */
+ { 2, TF, sys_fstat64, "fstat64" }, /* 63 */
+ { 0, 0, sys_getpagesize,"getpagesize" }, /* 64 */
+ { 3, 0, sys_msync, "msync" }, /* 65 */
+ { 0, TP, sys_vfork, "vfork" }, /* 66 */
+ { 5, TF, sys_pread, "pread" }, /* 67 */
+ { 5, TF, sys_pwrite, "pwrite" }, /* 68 */
+ { 0, 0, sys_geteuid, "geteuid32" }, /* 69 */
+ { 0, 0, sys_getegid, "getegid32" }, /* 70 */
+ { 6, 0, sys_mmap, "mmap" }, /* 71 */
+ { 2, 0, sys_setreuid, "setreuid32" }, /* 72 */
+ { 2, 0, sys_munmap, "munmap" }, /* 73 */
+ { 3, 0, sys_mprotect, "mprotect" }, /* 74 */
+ { 3, 0, sys_madvise, "madvise" }, /* 75 */
+ { 0, 0, sys_vhangup, "vhangup" }, /* 76 */
+ { 3, TF, sys_truncate64, "truncate64" }, /* 77 */
+ { 3, 0, sys_mincore, "mincore" }, /* 78 */
+ { 2, 0, sys_getgroups, "getgroups" }, /* 79 */
+ { 2, 0, sys_setgroups, "setgroups" }, /* 80 */
+ { 0, 0, sys_getpgrp, "getpgrp" }, /* 81 */
+ { 2, 0, sys_setgroups, "setgroups32" }, /* 82 */
+ { 3, 0, sys_setitimer, "setitimer" }, /* 83 */
+ { 2, 0, sys_ftruncate, "ftruncate64" }, /* 84 */
+ { 1, TF, sys_swapon, "swapon" }, /* 85 */
+ { 2, 0, sys_getitimer, "getitimer" }, /* 86 */
+ { 1, 0, sys_setuid, "setuid32" }, /* 87 */
+ { 2, 0, sys_sethostname,"sethostname" }, /* 88 */
+ { 1, 0, sys_setgid, "setgid32" }, /* 89 */
+ { 2, 0, sys_dup2, "dup2" }, /* 90 */
+ { 1, 0, sys_setfsuid, "setfsuid32" }, /* 91 */
+ { 3, 0, sys_fcntl, "fcntl" }, /* 92 */
+ { 5, 0, sys_select, "select" }, /* 93 */
+ { 1, 0, sys_setfsgid, "setfsgid32" }, /* 94 */
+ { 1, 0, sys_fsync, "fsync" }, /* 95 */
+ { 3, 0, sys_setpriority,"setpriority" }, /* 96 */
+ { 3, TN, sys_socket, "socket" }, /* 97 */
+ { 3, TN, sys_connect, "connect" }, /* 98 */
+ { 3, TN, sys_accept, "accept" }, /* 99 */
+ { 2, 0, sys_getpriority,"getpriority" }, /* 100 */
+ { 1, TS, printargs, "rt_sigreturn" }, /* 101 */
+ { 4, TS, sys_rt_sigaction,"rt_sigaction" }, /* 102 */
+ { 4, TS, sys_rt_sigprocmask,"rt_sigprocmask" }, /* 103 */
+ { 2, TS, sys_rt_sigpending,"rt_sigpending" }, /* 104 */
+ { 4, TS, sys_rt_sigtimedwait,"rt_sigtimedwait" },/* 105 */
+ { 3, TS, sys_rt_sigqueueinfo,"rt_sigqueueinfo" },/* 106 */
+ { 2, TS, sys_rt_sigsuspend,"rt_sigsuspend" }, /* 107 */
+ { 3, TS, sys_setresuid, "setresuid" }, /* 108 */
+ { 3, TS, sys_getresuid, "getresuid" }, /* 109 */
+ { 3, TS, sys_setresgid, "setresgid" }, /* 110 */
+ { 3, TS, sys_getresgid, "getresgid" }, /* 111 */
+ { 2, TS, sys_setresgid, "setresgid32" }, /* 112 */
+ { 5, TN, sys_recvmsg, "recvmsg" }, /* 113 */
+ { 5, TN, sys_sendmsg, "sendmsg" }, /* 114 */
+ { 2, 0, sys_getgroups, "getgroups32" }, /* 115 */
+ { 2, 0, sys_gettimeofday,"gettimeofday" }, /* 116 */
+ { 2, 0, sys_getrusage, "getrusage" }, /* 117 */
+ { 5, TN, sys_getsockopt, "getsockopt" }, /* 118 */
+ { 2, TF, sys_getcwd, "getcwd" }, /* 119 */
+ { 3, 0, sys_readv, "readv" }, /* 120 */
+ { 3, 0, sys_writev, "writev" }, /* 121 */
+ { 2, 0, sys_settimeofday,"settimeofday" }, /* 122 */
+ { 3, 0, sys_fchown, "fchown" }, /* 123 */
+ { 2, 0, sys_fchmod, "fchmod" }, /* 124 */
+ { 6, TN, sys_recvfrom, "recvfrom" }, /* 125 */
+ { 2, 0, sys_setreuid, "setreuid" }, /* 126 */
+ { 2, 0, sys_setregid, "setregid" }, /* 127 */
+ { 2, TF, sys_rename, "rename" }, /* 128 */
+ { 2, TF, sys_truncate, "truncate" }, /* 129 */
+ { 2, 0, sys_ftruncate, "ftruncate" }, /* 130 */
+ { 2, 0, sys_flock, "flock" }, /* 131 */
+ { 2, TF, sys_lstat64, "lstat64" }, /* 132 */
+ { 6, TN, sys_sendto, "sendto" }, /* 133 */
+ { 2, TN, sys_shutdown, "shutdown" }, /* 134 */
+ { 4, TN, sys_socketpair, "socketpair" }, /* 135 */
+ { 2, TF, sys_mkdir, "mkdir" }, /* 136 */
+ { 1, TF, sys_rmdir, "rmdir" }, /* 137 */
+ { 2, TF, sys_utimes, "utimes" }, /* 138 */
+ { 2, TF, sys_stat64, "stat64" }, /* 139 */
+ { 4, TF, sys_sendfile64, "sendfile64" }, /* 140 */
+ { 3, TN, sys_getpeername,"getpeername" }, /* 141 */
+ { 5, 0, sys_futex, "futex" }, /* 142 */
+ { 0, 0, printargs, "gettid" }, /* 143 */
+ { 2, 0, sys_getrlimit, "getrlimit" }, /* 144 */
+ { 2, 0, sys_setrlimit, "setrlimit" }, /* 145 */
+ { 2, TF, sys_pivotroot, "pivot_root" }, /* 146 */
+ { 5, 0, sys_prctl, "prctl" }, /* 147 */
+ { 5, 0, printargs, "pciconfig_read" }, /* 148 */
+ { 5, 0, printargs, "pciconfig_write" }, /* 149 */
+ { 3, TN, sys_getsockname,"getsockname" }, /* 150 */
+ { 4, TN, sys_getmsg, "getmsg" }, /* 151 */
+ { 4, TN, sys_putmsg, "putmsg" }, /* 152 */
+ { 3, 0, sys_poll, "poll" }, /* 153 */
+ { 4, 0, sys_getdents64, "getdents64" }, /* 154 */
+ { 3, 0, sys_fcntl, "fcntl64" }, /* 155 */
+ { 4, 0, printargs, "getdirentries" }, /* 156 */
+ { 2, TF, sys_statfs, "statfs" }, /* 157 */
+ { 2, 0, sys_fstatfs, "fstatfs" }, /* 158 */
+ { 1, TF, sys_umount, "oldumount" }, /* 159 */
+ { 3, 0, sys_sched_setaffinity, "sched_setaffinity" },/* 160 */
+ { 3, 0, sys_sched_getaffinity, "sched_getaffinity" },/* 161 */
+ { 2, 0, printargs, "getdomainname" }, /* 162 */
+ { 2, 0, sys_setdomainname,"setdomainname" }, /* 163 */
+ { 5, 0, printargs, "utrap_install" }, /* 164 */
+ { 4, 0, sys_quotactl, "quotactl" }, /* 165 */
+ { 1, 0, printargs, "set_tid_address" }, /* 166 */
+ { 5, TF, sys_mount, "mount" }, /* 167 */
+ { 2, 0, sys_ustat, "ustat" }, /* 168 */
+ { 5, TF, sys_setxattr, "setxattr" }, /* 169 */
+ { 5, TF, sys_setxattr, "lsetxattr" }, /* 170 */
+ { 5, 0, sys_fsetxattr, "fsetxattr" }, /* 171 */
+ { 4, TF, sys_getxattr, "getxattr" }, /* 172 */
+ { 4, TF, sys_getxattr, "lgetxattr" }, /* 173 */
+ { 3, 0, sys_getdents, "getdents" }, /* 174 */
+ { 0, 0, sys_setsid, "setsid" }, /* 175 */
+ { 1, 0, sys_fchdir, "fchdir" }, /* 176 */
+ { 4, 0, sys_fgetxattr, "fgetxattr" }, /* 177 */
+ { 3, TF, sys_listxattr, "listxattr" }, /* 178 */
+ { 3, TF, sys_listxattr, "llistxattr" }, /* 179 */
+ { 3, 0, sys_flistxattr, "flistxattr" }, /* 180 */
+ { 2, TF, sys_removexattr,"removexattr" }, /* 181 */
+ { 2, TF, sys_removexattr,"lremovexattr" }, /* 182 */
+ { 1, TS, sys_sigpending, "sigpending" }, /* 183 */
+ { 5, 0, sys_query_module,"query_module" }, /* 184 */
+ { 2, 0, sys_setpgid, "setpgid" }, /* 185 */
+ { 2, 0, sys_fremovexattr,"fremovexattr" }, /* 186 */
+ { 2, TS, sys_kill, "tkill" }, /* 187 */
+ { 1, TP, sys_exit, "exit_group" }, /* 188 */
+ { 1, 0, sys_uname, "uname" }, /* 189 */
+ { 2, 0, sys_init_module,"init_module" }, /* 190 */
+ { 1, 0, sys_personality,"personality" }, /* 191 */
+ { 5, 0, sys_remap_file_pages,"remap_file_pages" },/* 192 */
+ { 1, 0, sys_epoll_create,"epoll_create" }, /* 193 */
+ { 4, 0, sys_epoll_ctl, "epoll_ctl" }, /* 194 */
+ { 4, 0, sys_epoll_wait, "epoll_wait" }, /* 195 */
+ { 2, 0, sys_ulimit, "ulimit" }, /* 196 */
+ { 0, 0, sys_getppid, "getppid" }, /* 197 */
+ { 3, TS, sys_sigaction, "sigaction" }, /* 198 */
+ { 5, 0, printargs, "sgetmask" }, /* 199 */
+ { 5, 0, printargs, "ssetmask" }, /* 200 */
+ { 3, TS, sys_sigsuspend, "sigsuspend" }, /* 201 */
+ { 2, TF, sys_lstat, "lstat" }, /* 202 */
+ { 1, TF, sys_uselib, "uselib" }, /* 203 */
+ { 3, 0, sys_readdir, "readdir" }, /* 204 */
+ { 4, 0, sys_readahead, "readahead" }, /* 205 */
+ { 2, 0, sys_socketcall, "socketcall" }, /* 206 */
+ { 3, 0, sys_syslog, "syslog" }, /* 207 */
+ { 4, 0, printargs, "lookup_dcookie" }, /* 208 */
+ { 6, 0, printargs, "fadvise64" }, /* 209 */
+ { 6, 0, printargs, "fadvise64_64" }, /* 210 */
+ { 3, TS, sys_tgkill, "tgkill" }, /* 211 */
+ { 3, TP, sys_waitpid, "waitpid" }, /* 212 */
+ { 1, 0, sys_swapoff, "swapoff" }, /* 213 */
+ { 1, 0, sys_sysinfo, "sysinfo" }, /* 214 */
+ { 5, 0, sys_ipc, "ipc" }, /* 215 */
+ { 1, TS, sys_sigreturn, "sigreturn" }, /* 216 */
+ { 5, TP, sys_clone, "clone" }, /* 217 */
+ { 3, 0, sys_modify_ldt, "modify_ldt" }, /* 218 */
+ { 1, 0, sys_adjtimex, "adjtimex" }, /* 219 */
+ { 3, TS, sys_sigprocmask,"sigprocmask" }, /* 220 */
+ { 2, 0, sys_create_module,"create_module" }, /* 221 */
+ { 1, 0, sys_delete_module,"delete_module" },
+ { 1, 0, sys_get_kernel_syms,"get_kernel_syms"}, /* 223 */
+ { 1, 0, sys_getpgid, "getpgid" }, /* 224 */
+ { 0, 0, sys_bdflush, "bdflush" }, /* 225 */
+ { 3, 0, sys_sysfs, "sysfs" }, /* 226 */
+ { 5, 0, sys_afs_syscall,"afs_syscall" }, /* 227 */
+ { 1, 0, sys_setfsuid, "setfsuid" }, /* 228 */
+ { 1, 0, sys_setfsgid, "setfsgid" }, /* 229 */
+ { 5, 0, sys_select, "select" }, /* 230 */
+ { 1, 0, sys_time, "time" }, /* 231 */
+ { 2, TF, sys_stat, "stat" }, /* 232 */
+ { 1, 0, sys_stime, "stime" }, /* 233 */
+ { 3, TF, sys_statfs64, "statfs64" }, /* 234 */
+ { 3, 0, sys_fstatfs64, "fstatfs64" }, /* 235 */
+ { 5, 0, sys_llseek, "_llseek" }, /* 236 */
+ { 2, 0, sys_mlock, "mlock" }, /* 237 */
+ { 2, 0, sys_munlock, "munlock" }, /* 238 */
+ { 2, 0, sys_mlockall, "mlockall" }, /* 239 */
+ { 0, 0, sys_munlockall, "munlockall" }, /* 240 */
+ { 2, 0, sys_sched_setparam,"sched_setparam"}, /* 241 */
+ { 2, 0, sys_sched_getparam,"sched_getparam"}, /* 242 */
+ { 3, 0, sys_sched_setscheduler,"sched_setscheduler"},/* 243 */
+ { 1, 0, sys_sched_getscheduler,"sched_getscheduler"},/* 244 */
+ { 0, 0, sys_sched_yield,"sched_yield" }, /* 245 */
+ { 1,0,sys_sched_get_priority_max,"sched_get_priority_max"},/* 246 */
+ { 1,0,sys_sched_get_priority_min,"sched_get_priority_min"},/* 247 */
+ { 2, 0,sys_sched_rr_get_interval,"sched_rr_get_interval"},/* 248 */
+ { 2, 0, sys_nanosleep, "nanosleep" }, /* 249 */
+ { 4, 0, sys_mremap, "mremap" }, /* 250 */
+ { 1, 0, sys_sysctl, "_sysctl" }, /* 251 */
+ { 1, 0, sys_getsid, "getsid" }, /* 252 */
+ { 1, 0, sys_fdatasync, "fdatasync" }, /* 253 */
+ { 3, 0, printargs, "nfsservctl" }, /* 254 */
+ { 5, 0, printargs, "aplib" }, /* 255 */
+ { 2, 0, sys_clock_settime,"clock_settime" }, /* 256 */
+ { 2, 0, sys_clock_gettime,"clock_gettime" }, /* 257 */
+ { 2, 0, sys_clock_getres,"clock_getres" }, /* 258 */
+ { 4, 0, sys_clock_nanosleep,"clock_nanosleep" },/* 259 */
+ { 3, 0, sys_sched_setaffinity,"sched_setaffinity" },/* 260 */
+ { 3, 0, sys_sched_getaffinity,"sched_getaffinity" },/* 261 */
+ { 4, 0, sys_timer_settime,"timer_settime" }, /* 262 */
+ { 2, 0, sys_timer_gettime,"timer_gettime" }, /* 263 */
+ { 1, 0, sys_timer_getoverrun,"timer_getoverrun" },/* 264 */
+ { 1, 0, sys_timer_delete,"timer_delete" }, /* 265 */
+ { 3, 0, sys_timer_create,"timer_create" }, /* 266 */
+ { 5, 0, printargs, "SYS_267" }, /* 267 */
+ { 5, 0, printargs, "SYS_268" }, /* 268 */
+ { 5, 0, printargs, "SYS_269" }, /* 269 */
+ { 5, 0, printargs, "SYS_270" }, /* 270 */
+ { 5, 0, printargs, "SYS_271" }, /* 271 */
+ { 5, 0, printargs, "SYS_272" }, /* 272 */
+ { 5, 0, printargs, "SYS_273" }, /* 273 */
+ { 5, 0, printargs, "SYS_274" }, /* 274 */
+ { 5, 0, printargs, "SYS_275" }, /* 275 */
+ { 5, 0, printargs, "SYS_276" }, /* 276 */
+ { 5, 0, printargs, "SYS_277" }, /* 277 */
+ { 5, 0, printargs, "SYS_278" }, /* 278 */
+ { 5, 0, printargs, "SYS_279" }, /* 279 */
+ { 5, 0, printargs, "SYS_280" }, /* 280 */
+ { 5, 0, printargs, "SYS_281" }, /* 281 */
+ { 5, 0, printargs, "SYS_282" }, /* 282 */
+ { 5, 0, printargs, "SYS_283" }, /* 283 */
+ { 5, 0, printargs, "SYS_284" }, /* 284 */
+ { 5, 0, printargs, "SYS_285" }, /* 285 */
+ { 5, 0, printargs, "SYS_286" }, /* 286 */
+ { 5, 0, printargs, "SYS_287" }, /* 287 */
+ { 5, 0, printargs, "SYS_288" }, /* 288 */
+ { 5, 0, printargs, "SYS_289" }, /* 289 */
+ { 5, 0, printargs, "SYS_290" }, /* 290 */
+ { 5, 0, printargs, "SYS_291" }, /* 291 */
+ { 5, 0, printargs, "SYS_292" }, /* 292 */
+ { 5, 0, printargs, "SYS_293" }, /* 293 */
+ { 5, 0, printargs, "SYS_294" }, /* 294 */
+ { 5, 0, printargs, "SYS_295" }, /* 295 */
+ { 5, 0, printargs, "SYS_296" }, /* 296 */
+ { 5, 0, printargs, "SYS_297" }, /* 297 */
+ { 5, 0, printargs, "SYS_298" }, /* 298 */
+ { 5, 0, printargs, "SYS_299" }, /* 299 */
+ { 5, 0, printargs, "SYS_300" }, /* 300 */
+ { 5, 0, printargs, "SYS_301" }, /* 301 */
+ { 5, 0, printargs, "SYS_302" }, /* 302 */
+ { 5, 0, printargs, "SYS_303" }, /* 303 */
+ { 5, 0, printargs, "SYS_304" }, /* 304 */
+ { 5, 0, printargs, "SYS_305" }, /* 305 */
+ { 5, 0, printargs, "SYS_306" }, /* 306 */
+ { 5, 0, printargs, "SYS_307" }, /* 307 */
+ { 5, 0, printargs, "SYS_308" }, /* 308 */
+ { 5, 0, printargs, "SYS_309" }, /* 309 */
+ { 5, 0, printargs, "SYS_310" }, /* 310 */
+ { 5, 0, printargs, "SYS_311" }, /* 311 */
+ { 5, 0, printargs, "SYS_312" }, /* 312 */
+ { 5, 0, printargs, "SYS_313" }, /* 313 */
+ { 5, 0, printargs, "SYS_314" }, /* 314 */
+ { 5, 0, printargs, "SYS_315" }, /* 315 */
+ { 5, 0, printargs, "SYS_316" }, /* 316 */
+ { 5, 0, printargs, "SYS_317" }, /* 317 */
+ { 5, 0, printargs, "SYS_318" }, /* 318 */
+ { 5, 0, printargs, "SYS_319" }, /* 319 */
+ { 5, 0, printargs, "SYS_320" }, /* 320 */
+ { 5, 0, printargs, "SYS_321" }, /* 321 */
+ { 5, 0, printargs, "SYS_322" }, /* 322 */
+ { 5, 0, printargs, "SYS_323" }, /* 323 */
+ { 5, 0, printargs, "SYS_324" }, /* 324 */
+ { 5, 0, printargs, "SYS_325" }, /* 325 */
+ { 5, 0, printargs, "SYS_326" }, /* 326 */
+ { 5, 0, printargs, "SYS_327" }, /* 327 */
+ { 5, 0, printargs, "SYS_328" }, /* 328 */
+ { 5, 0, printargs, "SYS_329" }, /* 329 */
+ { 5, 0, printargs, "SYS_330" }, /* 330 */
+ { 5, 0, printargs, "SYS_331" }, /* 331 */
+ { 5, 0, printargs, "SYS_332" }, /* 332 */
+ { 5, 0, printargs, "SYS_333" }, /* 333 */
+ { 5, 0, printargs, "SYS_334" }, /* 334 */
+ { 5, 0, printargs, "SYS_335" }, /* 335 */
+ { 5, 0, printargs, "SYS_336" }, /* 336 */
+ { 5, 0, printargs, "SYS_337" }, /* 337 */
+ { 5, 0, printargs, "SYS_338" }, /* 338 */
+ { 5, 0, printargs, "SYS_339" }, /* 339 */
+ { 5, 0, printargs, "SYS_340" }, /* 340 */
+ { 5, 0, printargs, "SYS_341" }, /* 341 */
+ { 5, 0, printargs, "SYS_342" }, /* 342 */
+ { 5, 0, printargs, "SYS_343" }, /* 343 */
+ { 5, 0, printargs, "SYS_344" }, /* 344 */
+ { 5, 0, printargs, "SYS_345" }, /* 345 */
+ { 5, 0, printargs, "SYS_346" }, /* 346 */
+ { 5, 0, printargs, "SYS_347" }, /* 347 */
+ { 5, 0, printargs, "SYS_348" }, /* 348 */
+ { 5, 0, printargs, "SYS_349" }, /* 349 */
+ { 5, 0, printargs, "SYS_350" }, /* 350 */
+ { 5, 0, printargs, "SYS_351" }, /* 351 */
+ { 5, 0, printargs, "SYS_352" }, /* 352 */
diff --git a/strace/linux/sparc/syscallent1.h b/strace/linux/sparc/syscallent1.h
new file mode 100644
index 0000000..0b5c335
--- /dev/null
+++ b/strace/linux/sparc/syscallent1.h
@@ -0,0 +1,439 @@
+/*
+ * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
+ * 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.
+ *
+ * $Id: syscallent1.h,v 1.1.1.1 1999/02/19 00:23:19 wichert Exp $
+ */
+
+ { 6, 0, solaris_syscall, "syscall" }, /* 0 */
+ { 6, TP, solaris_exit, "_exit" }, /* 1 */
+ { 6, TP, solaris_fork, "fork" }, /* 2 */
+ { 6, 0, solaris_read, "read" }, /* 3 */
+ { 6, 0, solaris_write, "write" }, /* 4 */
+ { 6, TF, solaris_open, "open" }, /* 5 */
+ { 6, 0, solaris_close, "close" }, /* 6 */
+ { 6, TP, solaris_wait, "wait" }, /* 7 */
+ { 6, TF, solaris_creat, "creat" }, /* 8 */
+ { 6, TF, solaris_link, "link" }, /* 9 */
+ { 6, TF, solaris_unlink, "unlink" }, /* 10 */
+ { 6, TF|TP, solaris_exec, "exec" }, /* 11 */
+ { 6, TF, solaris_chdir, "chdir" }, /* 12 */
+ { 6, 0, solaris_time, "time" }, /* 13 */
+ { 6, TF, solaris_mknod, "mknod" }, /* 14 */
+ { 6, TF, solaris_chmod, "chmod" }, /* 15 */
+ { 6, TF, solaris_chown, "chown" }, /* 16 */
+ { 6, 0, solaris_brk, "brk" }, /* 17 */
+ { 6, TF, solaris_stat, "stat" }, /* 18 */
+ { 6, 0, solaris_lseek, "lseek" }, /* 19 */
+ { 6, 0, solaris_getpid, "getpid" }, /* 20 */
+ { 6, TF, solaris_mount, "mount" }, /* 21 */
+ { 6, TF, solaris_umount, "umount" }, /* 22 */
+ { 6, 0, solaris_setuid, "setuid" }, /* 23 */
+ { 6, 0, solaris_getuid, "getuid" }, /* 24 */
+ { 6, 0, solaris_stime, "stime" }, /* 25 */
+ { 6, 0, solaris_ptrace, "ptrace" }, /* 26 */
+ { 6, 0, solaris_alarm, "alarm" }, /* 27 */
+ { 6, 0, solaris_fstat, "fstat" }, /* 28 */
+ { 6, TS, solaris_pause, "pause" }, /* 29 */
+ { 6, TF, solaris_utime, "utime" }, /* 30 */
+ { 6, 0, solaris_stty, "stty" }, /* 31 */
+ { 6, 0, solaris_gtty, "gtty" }, /* 32 */
+ { 6, TF, solaris_access, "access" }, /* 33 */
+ { 6, 0, solaris_nice, "nice" }, /* 34 */
+ { 6, TF, solaris_statfs, "statfs" }, /* 35 */
+ { 6, 0, solaris_sync, "sync" }, /* 36 */
+ { 6, TS, solaris_kill, "kill" }, /* 37 */
+ { 6, 0, solaris_fstatfs, "fstatfs" }, /* 38 */
+ { 6, 0, solaris_pgrpsys, "pgrpsys" }, /* 39 */
+ { 6, 0, solaris_xenix, "xenix" }, /* 40 */
+ { 6, 0, solaris_dup, "dup" }, /* 41 */
+ { 6, 0, solaris_pipe, "pipe" }, /* 42 */
+ { 6, 0, solaris_times, "times" }, /* 43 */
+ { 6, 0, solaris_profil, "profil" }, /* 44 */
+ { 6, 0, solaris_plock, "plock" }, /* 45 */
+ { 6, 0, solaris_setgid, "setgid" }, /* 46 */
+ { 6, 0, solaris_getgid, "getgid" }, /* 47 */
+ { 6, 0, solaris_sigcall, "sigcall" }, /* 48 */
+ { 6, TI, solaris_msgsys, "msgsys" }, /* 49 */
+ { 6, 0, solaris_syssun, "syssun" }, /* 50 */
+ { 6, TF, solaris_acct, "acct" }, /* 51 */
+ { 6, TI, solaris_shmsys, "shmsys" }, /* 52 */
+ { 6, TI, solaris_semsys, "semsys" }, /* 53 */
+ { 6, 0, solaris_ioctl, "ioctl" }, /* 54 */
+ { 6, 0, solaris_uadmin, "uadmin" }, /* 55 */
+ { 6, 0, solaris_sysmp, "sysmp" }, /* 56 */
+ { 6, 0, solaris_utssys, "utssys" }, /* 57 */
+ { 6, 0, solaris_fdsync, "fdsync" }, /* 58 */
+ { 6, TF|TP, solaris_execve, "execve" }, /* 59 */
+ { 6, 0, solaris_umask, "umask" }, /* 60 */
+ { 6, TF, solaris_chroot, "chroot" }, /* 61 */
+ { 6, 0, solaris_fcntl, "fcntl" }, /* 62 */
+ { 6, 0, solaris_ulimit, "ulimit" }, /* 63 */
+ { 6, 0, printargs, "SYS_64" }, /* 64 */
+ { 6, 0, printargs, "SYS_65" }, /* 65 */
+ { 6, 0, printargs, "SYS_66" }, /* 66 */
+ { 6, 0, printargs, "SYS_67" }, /* 67 */
+ { 6, 0, printargs, "SYS_68" }, /* 68 */
+ { 6, 0, printargs, "SYS_69" }, /* 69 */
+ { 6, 0, printargs, "SYS_70" }, /* 70 */
+ { 6, 0, printargs, "SYS_71" }, /* 71 */
+ { 6, 0, printargs, "SYS_72" }, /* 72 */
+ { 6, 0, printargs, "SYS_73" }, /* 73 */
+ { 6, 0, printargs, "SYS_74" }, /* 74 */
+ { 6, 0, printargs, "SYS_75" }, /* 75 */
+ { 6, 0, printargs, "SYS_76" }, /* 76 */
+ { 6, 0, printargs, "SYS_77" }, /* 77 */
+ { 6, 0, printargs, "SYS_78" }, /* 78 */
+ { 6, TF, solaris_rmdir, "rmdir" }, /* 79 */
+ { 6, TF, solaris_mkdir, "mkdir" }, /* 80 */
+ { 6, 0, solaris_getdents, "getdents" }, /* 81 */
+ { 6, 0, solaris_sginap, "sginap" }, /* 82 */
+ { 6, 0, solaris_sgikopt, "sgikopt" }, /* 83 */
+ { 6, 0, solaris_sysfs, "sysfs" }, /* 84 */
+ { 6, TN, sys_getmsg, "getmsg" }, /* 85 */
+ { 6, TN, sys_putmsg, "putmsg" }, /* 86 */
+ { 6, TN, solaris_poll, "poll" }, /* 87 */
+ { 6, TF, solaris_lstat, "lstat" }, /* 88 */
+ { 6, TF, solaris_symlink, "symlink" }, /* 89 */
+ { 6, TF, solaris_readlink, "readlink" }, /* 90 */
+ { 6, 0, solaris_setgroups, "setgroups" }, /* 91 */
+ { 6, 0, solaris_getgroups, "getgroups" }, /* 92 */
+ { 6, 0, solaris_fchmod, "fchmod" }, /* 93 */
+ { 6, 0, solaris_fchown, "fchown" }, /* 94 */
+ { 6, TS, solaris_sigprocmask, "sigprocmask" }, /* 95 */
+ { 6, TS, solaris_sigsuspend, "sigsuspend" }, /* 96 */
+ { 6, TS, solaris_sigaltstack, "sigaltstack" }, /* 97 */
+ { 6, TS, solaris_sigaction, "sigaction" }, /* 98 */
+ { 6, 0, solaris_spcall, "spcall" }, /* 99 */
+ { 6, 0, solaris_context, "context" }, /* 100 */
+ { 6, 0, solaris_evsys, "evsys" }, /* 101 */
+ { 6, 0, solaris_evtrapret, "evtrapret" }, /* 102 */
+ { 6, TF, solaris_statvfs, "statvfs" }, /* 103 */
+ { 6, 0, solaris_fstatvfs, "fstatvfs" }, /* 104 */
+ { 6, 0, printargs, "SYS_105" }, /* 105 */
+ { 6, 0, solaris_nfssys, "nfssys" }, /* 106 */
+ { 6, TP, solaris_waitid, "waitid" }, /* 107 */
+ { 6, 0, solaris_sigsendsys, "sigsendsys" }, /* 108 */
+ { 6, 0, solaris_hrtsys, "hrtsys" }, /* 109 */
+ { 6, 0, solaris_acancel, "acancel" }, /* 110 */
+ { 6, 0, solaris_async, "async" }, /* 111 */
+ { 6, 0, solaris_priocntlsys, "priocntlsys" }, /* 112 */
+ { 6, TF, solaris_pathconf, "pathconf" }, /* 113 */
+ { 6, 0, solaris_mincore, "mincore" }, /* 114 */
+ { 6, 0, solaris_mmap, "mmap" }, /* 115 */
+ { 6, 0, solaris_mprotect, "mprotect" }, /* 116 */
+ { 6, 0, solaris_munmap, "munmap" }, /* 117 */
+ { 6, 0, solaris_fpathconf, "fpathconf" }, /* 118 */
+ { 6, TP, solaris_vfork, "vfork" }, /* 119 */
+ { 6, 0, solaris_fchdir, "fchdir" }, /* 120 */
+ { 6, 0, solaris_readv, "readv" }, /* 121 */
+ { 6, 0, solaris_writev, "writev" }, /* 122 */
+ { 6, TF, solaris_xstat, "xstat" }, /* 123 */
+ { 6, TF, solaris_lxstat, "lxstat" }, /* 124 */
+ { 6, 0, solaris_fxstat, "fxstat" }, /* 125 */
+ { 6, TF, solaris_xmknod, "xmknod" }, /* 126 */
+ { 6, 0, solaris_clocal, "clocal" }, /* 127 */
+ { 6, 0, solaris_setrlimit, "setrlimit" }, /* 128 */
+ { 6, 0, solaris_getrlimit, "getrlimit" }, /* 129 */
+ { 6, TF, solaris_lchown, "lchown" }, /* 130 */
+ { 6, 0, solaris_memcntl, "memcntl" }, /* 131 */
+ { 6, TN, solaris_getpmsg, "getpmsg" }, /* 132 */
+ { 6, TN, solaris_putpmsg, "putpmsg" }, /* 133 */
+ { 6, TF, solaris_rename, "rename" }, /* 134 */
+ { 6, 0, solaris_uname, "uname" }, /* 135 */
+ { 6, 0, solaris_setegid, "setegid" }, /* 136 */
+ { 6, 0, solaris_sysconfig, "sysconfig" }, /* 137 */
+ { 6, 0, solaris_adjtime, "adjtime" }, /* 138 */
+ { 6, 0, solaris_sysinfo, "sysinfo" }, /* 139 */
+ { 6, 0, printargs, "SYS_140" }, /* 140 */
+ { 6, 0, solaris_seteuid, "seteuid" }, /* 141 */
+ { 6, 0, solaris_vtrace, "vtrace" }, /* 142 */
+ { 6, TP, solaris_fork1, "fork1" }, /* 143 */
+ { 6, TS, solaris_sigtimedwait, "sigtimedwait" }, /* 144 */
+ { 6, 0, solaris_lwp_info, "lwp_info" }, /* 145 */
+ { 6, 0, solaris_yield, "yield" }, /* 146 */
+ { 6, 0, solaris_lwp_sema_wait, "lwp_sema_wait" }, /* 147 */
+ { 6, 0, solaris_lwp_sema_post, "lwp_sema_post" }, /* 148 */
+ { 6, 0, printargs, "SYS_149" }, /* 149 */
+ { 6, 0, printargs, "SYS_150" }, /* 150 */
+ { 6, 0, printargs, "SYS_151" }, /* 151 */
+ { 6, 0, solaris_modctl, "modctl" }, /* 152 */
+ { 6, 0, solaris_fchroot, "fchroot" }, /* 153 */
+ { 6, TF, solaris_utimes, "utimes" }, /* 154 */
+ { 6, 0, solaris_vhangup, "vhangup" }, /* 155 */
+ { 6, 0, solaris_gettimeofday, "gettimeofday" }, /* 156 */
+ { 6, 0, solaris_getitimer, "getitimer" }, /* 157 */
+ { 6, 0, solaris_setitimer, "setitimer" }, /* 158 */
+ { 6, 0, solaris_lwp_create, "lwp_create" }, /* 159 */
+ { 6, 0, solaris_lwp_exit, "lwp_exit" }, /* 160 */
+ { 6, 0, solaris_lwp_suspend, "lwp_suspend" }, /* 161 */
+ { 6, 0, solaris_lwp_continue, "lwp_continue" }, /* 162 */
+ { 6, 0, solaris_lwp_kill, "lwp_kill" }, /* 163 */
+ { 6, 0, solaris_lwp_self, "lwp_self" }, /* 164 */
+ { 6, 0, solaris_lwp_setprivate, "lwp_setprivate"}, /* 165 */
+ { 6, 0, solaris_lwp_getprivate, "lwp_getprivate"}, /* 166 */
+ { 6, 0, solaris_lwp_wait, "lwp_wait" }, /* 167 */
+ { 6, 0, solaris_lwp_mutex_unlock,"lwp_mutex_unlock"}, /* 168 */
+ { 6, 0, solaris_lwp_mutex_lock, "lwp_mutex_lock"}, /* 169 */
+ { 6, 0, solaris_lwp_cond_wait, "lwp_cond_wait"}, /* 170 */
+ { 6, 0, solaris_lwp_cond_signal,"lwp_cond_signal"}, /* 171 */
+ { 6, 0, solaris_lwp_cond_broadcast,"lwp_cond_broadcast"}, /* 172 */
+ { 6, 0, solaris_pread, "pread" }, /* 173 */
+ { 6, 0, solaris_pwrite, "pwrite" }, /* 174 */
+ { 6, 0, solaris_llseek, "llseek" }, /* 175 */
+ { 6, 0, solaris_inst_sync, "inst_sync" }, /* 176 */
+ { 6, 0, printargs, "SYS_177" }, /* 177 */
+ { 6, 0, printargs, "SYS_178" }, /* 178 */
+ { 6, 0, printargs, "SYS_179" }, /* 179 */
+ { 6, 0, printargs, "SYS_180" }, /* 180 */
+ { 6, 0, printargs, "SYS_181" }, /* 181 */
+ { 6, 0, printargs, "SYS_182" }, /* 182 */
+ { 6, 0, printargs, "SYS_183" }, /* 183 */
+ { 6, 0, printargs, "SYS_184" }, /* 184 */
+ { 6, 0, printargs, "SYS_185" }, /* 185 */
+ { 6, 0, solaris_auditsys, "auditsys" }, /* 186 */
+ { 6, 0, solaris_processor_bind, "processor_bind"}, /* 187 */
+ { 6, 0, solaris_processor_info, "processor_info"}, /* 188 */
+ { 6, 0, solaris_p_online, "p_online" }, /* 189 */
+ { 6, 0, solaris_sigqueue, "sigqueue" }, /* 190 */
+ { 6, 0, solaris_clock_gettime, "clock_gettime" }, /* 191 */
+ { 6, 0, solaris_clock_settime, "clock_settime" }, /* 192 */
+ { 6, 0, solaris_clock_getres, "clock_getres" }, /* 193 */
+ { 6, 0, solaris_timer_create, "timer_create" }, /* 194 */
+ { 6, 0, solaris_timer_delete, "timer_delete" }, /* 195 */
+ { 6, 0, solaris_timer_settime, "timer_settime" }, /* 196 */
+ { 6, 0, solaris_timer_gettime, "timer_gettime" }, /* 197 */
+ { 6, 0, solaris_timer_getoverrun,"timer_getoverrun"}, /* 198 */
+ { 6, 0, solaris_nanosleep, "nanosleep" }, /* 199 */
+ { 6, 0, printargs, "SYS_200" }, /* 200 */
+ { 6, 0, printargs, "SYS_201" }, /* 201 */
+ { 6, 0, printargs, "SYS_202" }, /* 202 */
+ { 6, 0, printargs, "SYS_203" }, /* 203 */
+ { 6, 0, printargs, "SYS_204" }, /* 204 */
+ { 6, 0, printargs, "SYS_205" }, /* 205 */
+ { 6, 0, printargs, "SYS_206" }, /* 206 */
+ { 6, 0, printargs, "SYS_207" }, /* 207 */
+ { 6, 0, printargs, "SYS_208" }, /* 208 */
+ { 6, 0, printargs, "SYS_209" }, /* 209 */
+ { 6, 0, printargs, "SYS_210" }, /* 210 */
+ { 6, 0, printargs, "SYS_211" }, /* 211 */
+ { 6, 0, printargs, "SYS_212" }, /* 212 */
+ { 6, 0, printargs, "SYS_213" }, /* 213 */
+ { 6, 0, printargs, "SYS_214" }, /* 214 */
+ { 6, 0, printargs, "SYS_215" }, /* 215 */
+ { 6, 0, printargs, "SYS_216" }, /* 216 */
+ { 6, 0, printargs, "SYS_217" }, /* 217 */
+ { 6, 0, printargs, "SYS_218" }, /* 218 */
+ { 6, 0, printargs, "SYS_219" }, /* 219 */
+ { 6, 0, printargs, "SYS_220" }, /* 220 */
+ { 6, 0, printargs, "SYS_221" }, /* 221 */
+ { 6, 0, printargs, "SYS_222" }, /* 222 */
+ { 6, 0, printargs, "SYS_223" }, /* 223 */
+ { 6, 0, printargs, "SYS_224" }, /* 224 */
+ { 6, 0, printargs, "SYS_225" }, /* 225 */
+ { 6, 0, printargs, "SYS_226" }, /* 226 */
+ { 6, 0, printargs, "SYS_227" }, /* 227 */
+ { 6, 0, printargs, "SYS_228" }, /* 228 */
+ { 6, 0, printargs, "SYS_229" }, /* 229 */
+ { 6, 0, printargs, "SYS_230" }, /* 230 */
+ { 6, 0, printargs, "SYS_231" }, /* 231 */
+ { 6, 0, printargs, "SYS_232" }, /* 232 */
+ { 6, 0, printargs, "SYS_233" }, /* 233 */
+ { 6, 0, printargs, "SYS_234" }, /* 234 */
+ { 6, 0, printargs, "SYS_235" }, /* 235 */
+ { 6, 0, printargs, "SYS_236" }, /* 236 */
+ { 6, 0, printargs, "SYS_237" }, /* 237 */
+ { 6, 0, printargs, "SYS_238" }, /* 238 */
+ { 6, 0, printargs, "SYS_239" }, /* 239 */
+ { 6, 0, printargs, "SYS_240" }, /* 240 */
+ { 6, 0, printargs, "SYS_241" }, /* 241 */
+ { 6, 0, printargs, "SYS_242" }, /* 242 */
+ { 6, 0, printargs, "SYS_243" }, /* 243 */
+ { 6, 0, printargs, "SYS_244" }, /* 244 */
+ { 6, 0, printargs, "SYS_245" }, /* 245 */
+ { 6, 0, printargs, "SYS_246" }, /* 246 */
+ { 6, 0, printargs, "SYS_247" }, /* 247 */
+ { 6, 0, printargs, "SYS_248" }, /* 248 */
+ { 6, 0, printargs, "SYS_249" }, /* 249 */
+ { 6, 0, printargs, "SYS_250" }, /* 250 */
+ { 6, 0, printargs, "SYS_251" }, /* 251 */
+ { 6, 0, printargs, "SYS_252" }, /* 252 */
+ { 6, 0, printargs, "SYS_253" }, /* 253 */
+ { 6, 0, printargs, "SYS_254" }, /* 254 */
+ { 6, 0, printargs, "SYS_255" }, /* 255 */
+ { 6, 0, printargs, "SYS_256" }, /* 256 */
+ { 6, 0, printargs, "SYS_257" }, /* 257 */
+ { 6, 0, printargs, "SYS_258" }, /* 258 */
+ { 6, 0, printargs, "SYS_259" }, /* 259 */
+ { 6, 0, printargs, "SYS_260" }, /* 260 */
+ { 6, 0, printargs, "SYS_261" }, /* 261 */
+ { 6, 0, printargs, "SYS_262" }, /* 262 */
+ { 6, 0, printargs, "SYS_263" }, /* 263 */
+ { 6, 0, printargs, "SYS_264" }, /* 264 */
+ { 6, 0, printargs, "SYS_265" }, /* 265 */
+ { 6, 0, printargs, "SYS_266" }, /* 266 */
+ { 6, 0, printargs, "SYS_267" }, /* 267 */
+ { 6, 0, printargs, "SYS_268" }, /* 268 */
+ { 6, 0, printargs, "SYS_269" }, /* 269 */
+ { 6, 0, printargs, "SYS_270" }, /* 270 */
+ { 6, 0, printargs, "SYS_271" }, /* 271 */
+ { 6, 0, printargs, "SYS_272" }, /* 272 */
+ { 6, 0, printargs, "SYS_273" }, /* 273 */
+ { 6, 0, printargs, "SYS_274" }, /* 274 */
+ { 6, 0, printargs, "SYS_275" }, /* 275 */
+ { 6, 0, printargs, "SYS_276" }, /* 276 */
+ { 6, 0, printargs, "SYS_277" }, /* 277 */
+ { 6, 0, printargs, "SYS_278" }, /* 278 */
+ { 6, 0, printargs, "SYS_279" }, /* 279 */
+ { 6, 0, printargs, "SYS_280" }, /* 280 */
+ { 6, 0, printargs, "SYS_281" }, /* 281 */
+ { 6, 0, printargs, "SYS_282" }, /* 282 */
+ { 6, 0, printargs, "SYS_283" }, /* 283 */
+ { 6, 0, printargs, "SYS_284" }, /* 284 */
+ { 6, 0, printargs, "SYS_285" }, /* 285 */
+ { 6, 0, printargs, "SYS_286" }, /* 286 */
+ { 6, 0, printargs, "SYS_287" }, /* 287 */
+ { 6, 0, printargs, "SYS_288" }, /* 288 */
+ { 6, 0, printargs, "SYS_289" }, /* 289 */
+ { 6, 0, printargs, "SYS_290" }, /* 290 */
+ { 6, 0, printargs, "SYS_291" }, /* 291 */
+ { 6, 0, printargs, "SYS_292" }, /* 292 */
+ { 6, 0, printargs, "SYS_293" }, /* 293 */
+ { 6, 0, printargs, "SYS_294" }, /* 294 */
+ { 6, 0, printargs, "SYS_295" }, /* 295 */
+ { 6, 0, printargs, "SYS_296" }, /* 296 */
+ { 6, 0, printargs, "SYS_297" }, /* 297 */
+ { 6, 0, printargs, "SYS_298" }, /* 298 */
+ { 6, 0, printargs, "SYS_299" }, /* 299 */
+
+ { 6, 0, solaris_getpgrp, "getpgrp" }, /* 300 */
+ { 6, 0, solaris_setpgrp, "setpgrp" }, /* 301 */
+ { 6, 0, solaris_getsid, "getsid" }, /* 302 */
+ { 6, 0, solaris_setsid, "setsid" }, /* 303 */
+ { 6, 0, solaris_getpgid, "getpgid" }, /* 304 */
+ { 6, 0, solaris_setpgid, "setpgid" }, /* 305 */
+ { 6, 0, printargs, "SYS_306" }, /* 306 */
+ { 6, 0, printargs, "SYS_307" }, /* 307 */
+ { 6, 0, printargs, "SYS_308" }, /* 308 */
+ { 6, 0, printargs, "SYS_309" }, /* 309 */
+
+ { 6, TS, solaris_signal, "signal" }, /* 310 */
+ { 6, TS, solaris_sigset, "sigset" }, /* 311 */
+ { 6, TS, solaris_sighold, "sighold" }, /* 312 */
+ { 6, TS, solaris_sigrelse, "sigrelse" }, /* 313 */
+ { 6, TS, solaris_sigignore, "sigignore" }, /* 314 */
+ { 6, TS, solaris_sigpause, "sigpause" }, /* 315 */
+ { 6, 0, printargs, "SYS_316" }, /* 316 */
+ { 6, 0, printargs, "SYS_317" }, /* 317 */
+ { 6, 0, printargs, "SYS_318" }, /* 318 */
+ { 6, 0, printargs, "SYS_319" }, /* 319 */
+
+ { 6, TI, solaris_msgget, "msgget" }, /* 320 */
+ { 6, TI, solaris_msgctl, "msgctl" }, /* 321 */
+ { 6, TI, solaris_msgrcv, "msgrcv" }, /* 322 */
+ { 6, TI, solaris_msgsnd, "msgsnd" }, /* 323 */
+ { 6, 0, printargs, "SYS_324" }, /* 324 */
+ { 6, 0, printargs, "SYS_325" }, /* 325 */
+ { 6, 0, printargs, "SYS_326" }, /* 326 */
+ { 6, 0, printargs, "SYS_327" }, /* 327 */
+ { 6, 0, printargs, "SYS_328" }, /* 328 */
+ { 6, 0, printargs, "SYS_329" }, /* 329 */
+
+ { 6, TI, solaris_shmat, "shmat" }, /* 330 */
+ { 6, TI, solaris_shmctl, "shmctl" }, /* 331 */
+ { 6, TI, solaris_shmdt, "shmdt" }, /* 332 */
+ { 6, TI, solaris_shmget, "shmget" }, /* 333 */
+ { 6, 0, printargs, "SYS_334" }, /* 334 */
+ { 6, 0, printargs, "SYS_335" }, /* 335 */
+ { 6, 0, printargs, "SYS_336" }, /* 336 */
+ { 6, 0, printargs, "SYS_337" }, /* 337 */
+ { 6, 0, printargs, "SYS_338" }, /* 338 */
+ { 6, 0, printargs, "SYS_339" }, /* 339 */
+
+ { 6, TI, solaris_semctl, "semctl" }, /* 340 */
+ { 6, TI, solaris_semget, "semget" }, /* 341 */
+ { 6, TI, solaris_semop, "semop" }, /* 342 */
+ { 6, 0, printargs, "SYS_343" }, /* 343 */
+ { 6, 0, printargs, "SYS_344" }, /* 344 */
+ { 6, 0, printargs, "SYS_345" }, /* 345 */
+ { 6, 0, printargs, "SYS_346" }, /* 346 */
+ { 6, 0, printargs, "SYS_347" }, /* 347 */
+ { 6, 0, printargs, "SYS_348" }, /* 348 */
+ { 6, 0, printargs, "SYS_349" }, /* 349 */
+
+ { 6, 0, solaris_olduname, "olduname" }, /* 350 */
+ { 6, 0, printargs, "utssys1" }, /* 351 */
+ { 6, 0, solaris_ustat, "ustat" }, /* 352 */
+ { 6, 0, solaris_fusers, "fusers" }, /* 353 */
+ { 6, 0, printargs, "SYS_354" }, /* 354 */
+ { 6, 0, printargs, "SYS_355" }, /* 355 */
+ { 6, 0, printargs, "SYS_356" }, /* 356 */
+ { 6, 0, printargs, "SYS_357" }, /* 357 */
+ { 6, 0, printargs, "SYS_358" }, /* 358 */
+ { 6, 0, printargs, "SYS_359" }, /* 359 */
+
+ { 6, 0, printargs, "sysfs0" }, /* 360 */
+ { 6, 0, solaris_sysfs1, "sysfs1" }, /* 361 */
+ { 6, 0, solaris_sysfs2, "sysfs2" }, /* 362 */
+ { 6, 0, solaris_sysfs3, "sysfs3" }, /* 363 */
+ { 6, 0, printargs, "SYS_364" }, /* 364 */
+ { 6, 0, printargs, "SYS_365" }, /* 365 */
+ { 6, 0, printargs, "SYS_366" }, /* 366 */
+ { 6, 0, printargs, "SYS_367" }, /* 367 */
+ { 6, 0, printargs, "SYS_368" }, /* 368 */
+ { 6, 0, printargs, "SYS_369" }, /* 369 */
+
+ { 6, 0, printargs, "spcall0" }, /* 370 */
+ { 6, TS, solaris_sigpending, "sigpending" }, /* 371 */
+ { 6, TS, solaris_sigfillset, "sigfillset" }, /* 372 */
+ { 6, 0, printargs, "SYS_373" }, /* 373 */
+ { 6, 0, printargs, "SYS_374" }, /* 374 */
+ { 6, 0, printargs, "SYS_375" }, /* 375 */
+ { 6, 0, printargs, "SYS_376" }, /* 376 */
+ { 6, 0, printargs, "SYS_377" }, /* 377 */
+ { 6, 0, printargs, "SYS_378" }, /* 378 */
+ { 6, 0, printargs, "SYS_379" }, /* 379 */
+
+ { 6, 0, solaris_getcontext, "getcontext" }, /* 380 */
+ { 6, 0, solaris_setcontext, "setcontext" }, /* 381 */
+ { 6, 0, printargs, "SYS_382" }, /* 382 */
+ { 6, 0, printargs, "SYS_383" }, /* 383 */
+ { 6, 0, printargs, "SYS_384" }, /* 384 */
+ { 6, 0, printargs, "SYS_385" }, /* 385 */
+ { 6, 0, printargs, "SYS_386" }, /* 386 */
+ { 6, 0, printargs, "SYS_387" }, /* 387 */
+ { 6, 0, printargs, "SYS_388" }, /* 388 */
+ { 6, 0, printargs, "SYS_389" }, /* 389 */
+
+ { 6, 0, printargs, "SYS_390" }, /* 390 */
+ { 6, 0, printargs, "SYS_391" }, /* 391 */
+ { 6, 0, printargs, "SYS_392" }, /* 392 */
+ { 6, 0, printargs, "SYS_393" }, /* 393 */
+ { 6, 0, printargs, "SYS_394" }, /* 394 */
+ { 6, 0, printargs, "SYS_395" }, /* 395 */
+ { 6, 0, printargs, "SYS_396" }, /* 396 */
+ { 6, 0, printargs, "SYS_397" }, /* 397 */
+ { 6, 0, printargs, "SYS_398" }, /* 398 */
+ { 6, 0, printargs, "SYS_399" }, /* 399 */
diff --git a/strace/linux/sparc64/dummy2.h b/strace/linux/sparc64/dummy2.h
new file mode 100644
index 0000000..df32c6b
--- /dev/null
+++ b/strace/linux/sparc64/dummy2.h
@@ -0,0 +1,282 @@
+/*
+ * Copyright (c) 1993, 1994, 1995 Rick Sladkey <jrs@world.std.com>
+ * 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.
+ *
+ * $Id: dummy2.h,v 1.1 2004/07/12 07:44:08 roland Exp $
+ */
+
+/* still unfinished */
+
+#define solaris_sysmp printargs
+#define solaris_sginap printargs
+#define solaris_sgikopt printargs
+#define solaris_sysmips printargs
+#define solaris_sigreturn printargs
+#define solaris_recvmsg printargs
+#define solaris_sendmsg printargs
+#define solaris_nfssvc printargs
+#define solaris_getfh printargs
+#define solaris_async_daemon printargs
+#define solaris_exportfs printargs
+#define solaris_BSD_getime printargs
+#define solaris_sproc printargs
+#define solaris_procblk printargs
+#define solaris_sprocsp printargs
+#define solaris_msync printargs
+#define solaris_madvise printargs
+#define solaris_pagelock printargs
+#define solaris_quotactl printargs
+#define solaris_cacheflush printargs
+#define solaris_cachectl printargs
+#define solaris_nuname printargs
+#define solaris_sigpoll printargs
+#define solaris_swapctl printargs
+#define solaris_sigstack printargs
+#define solaris_sigsendset printargs
+#define solaris_priocntl printargs
+#define solaris_ksigqueue printargs
+#define solaris_lwp_sema_wait printargs
+#define solaris_memcntl printargs
+#define solaris_syscall printargs
+#define solaris_clocal printargs
+#define solaris_syssun printargs
+#define solaris_sysi86 printargs
+#define solaris_sysmachine printargs
+#define solaris_plock printargs
+#define solaris_pathconf printargs
+#define solaris_sigtimedwait printargs
+#define solaris_ulimit printargs
+#define solaris_ptrace printargs
+#define solaris_stty printargs
+#define solaris_lwp_info printargs
+#define solaris_priocntlsys printargs
+#define solaris_hrtsys printargs
+#define solaris_xenix printargs
+#define solaris_statfs printargs
+#define solaris_fstatfs printargs
+#define solaris_statvfs printargs
+#define solaris_fstatvfs printargs
+#define solaris_fork1 printargs
+#define solaris_sigsendsys printargs
+#define solaris_gtty printargs
+#define solaris_vtrace printargs
+#define solaris_fpathconf printargs
+#define solaris_evsys printargs
+#define solaris_acct printargs
+#define solaris_exec printargs
+#define solaris_lwp_sema_post printargs
+#define solaris_nfssys printargs
+#define solaris_sigaltstack printargs
+#define solaris_uadmin printargs
+#define solaris_umount printargs
+#define solaris_modctl printargs
+#define solaris_acancel printargs
+#define solaris_async printargs
+#define solaris_evtrapret printargs
+#define solaris_lwp_create printargs
+#define solaris_lwp_exit printargs
+#define solaris_lwp_suspend printargs
+#define solaris_lwp_continue printargs
+#define solaris_lwp_kill printargs
+#define solaris_lwp_self printargs
+#define solaris_lwp_setprivate printargs
+#define solaris_lwp_getprivate printargs
+#define solaris_lwp_wait printargs
+#define solaris_lwp_mutex_unlock printargs
+#define solaris_lwp_mutex_lock printargs
+#define solaris_lwp_cond_wait printargs
+#define solaris_lwp_cond_signal printargs
+#define solaris_lwp_cond_broadcast printargs
+#define solaris_llseek printargs
+#define solaris_inst_sync printargs
+#define solaris_auditsys printargs
+#define solaris_processor_bind printargs
+#define solaris_processor_info printargs
+#define solaris_p_online printargs
+#define solaris_sigqueue printargs
+#define solaris_clock_gettime printargs
+#define solaris_clock_settime printargs
+#define solaris_clock_getres printargs
+#define solaris_nanosleep printargs
+#define solaris_timer_create printargs
+#define solaris_timer_delete printargs
+#define solaris_timer_settime printargs
+#define solaris_timer_gettime printargs
+#define solaris_timer_getoverrun printargs
+#define solaris_signal printargs
+#define solaris_sigset printargs
+#define solaris_sighold printargs
+#define solaris_sigrelse printargs
+#define solaris_sigignore printargs
+#define solaris_sigpause printargs
+#define solaris_msgctl printargs
+#define solaris_msgget printargs
+#define solaris_msgrcv printargs
+#define solaris_msgsnd printargs
+#define solaris_shmat printargs
+#define solaris_shmctl printargs
+#define solaris_shmdt printargs
+#define solaris_shmget printargs
+#define solaris_semctl printargs
+#define solaris_semget printargs
+#define solaris_semop printargs
+#define solaris_olduname printargs
+#define solaris_ustat printargs
+#define solaris_fusers printargs
+#define solaris_sysfs1 printargs
+#define solaris_sysfs2 printargs
+#define solaris_sysfs3 printargs
+
+/* like another call */
+#define solaris_lchown solaris_chown
+#define solaris_setuid solaris_close
+#define solaris_seteuid solaris_close
+#define solaris_setgid solaris_close
+#define solaris_setegid solaris_close
+#define solaris_vhangup solaris_close
+#define solaris_fdsync solaris_close
+#define solaris_sigfillset solaris_sigpending
+#define solaris_vfork solaris_fork
+#define solaris_ksigaction solaris_sigaction
+#define solaris_BSDgetpgrp solaris_getpgrp
+#define solaris_BSDsetpgrp solaris_setpgrp
+#define solaris_waitsys solaris_waitid
+
+/* printargs does the right thing */
+#define solaris_sync printargs
+#define solaris_profil printargs
+#define solaris_yield printargs
+#define solaris_pause printargs
+#define solaris_sethostid printargs
+
+/* subfunction entry points */
+#define solaris_pgrpsys printargs
+#define solaris_sigcall printargs
+#define solaris_msgsys printargs
+#define solaris_shmsys printargs
+#define solaris_semsys printargs
+#define solaris_utssys printargs
+#define solaris_sysfs printargs
+#define solaris_spcall printargs
+#define solaris_context printargs
+
+/* same as linux */
+#define solaris_exit sys_exit
+#define solaris_fork sys_fork
+#define solaris_read sys_read
+#define solaris_write sys_write
+#define solaris_close sys_close
+#define solaris_creat sys_creat
+#define solaris_link sys_link
+#define solaris_unlink sys_unlink
+#define solaris_chdir sys_chdir
+#define solaris_time sys_time
+#define solaris_chmod sys_chmod
+#define solaris_lseek sys_lseek
+#define solaris_stime sys_stime
+#define solaris_alarm sys_alarm
+#define solaris_utime sys_utime
+#define solaris_access sys_access
+#define solaris_nice sys_nice
+#define solaris_dup sys_dup
+#define solaris_pipe sys_pipe
+#define solaris_times sys_times
+#define solaris_execve sys_execve
+#define solaris_umask sys_umask
+#define solaris_chroot sys_chroot
+#define solaris_rmdir sys_rmdir
+#define solaris_mkdir sys_mkdir
+#define solaris_getdents sys_getdents
+#define solaris_poll sys_poll
+#define solaris_symlink sys_symlink
+#define solaris_readlink sys_readlink
+#define solaris_setgroups sys_setgroups
+#define solaris_getgroups sys_getgroups
+#define solaris_fchmod sys_fchmod
+#define solaris_fchown sys_fchown
+#define solaris_mprotect sys_mprotect
+#define solaris_munmap sys_munmap
+#define solaris_readv sys_readv
+#define solaris_writev sys_writev
+#define solaris_chown sys_chown
+#define solaris_rename sys_rename
+#define solaris_gettimeofday sys_gettimeofday
+#define solaris_getitimer sys_getitimer
+#define solaris_setitimer sys_setitimer
+#define solaris_brk sys_brk
+#define solaris_mmap sys_mmap
+#define solaris_getsid sys_getsid
+#define solaris_setsid sys_setsid
+#define solaris_getpgid sys_getpgid
+#define solaris_setpgid sys_setpgid
+#define solaris_getpgrp sys_getpgrp
+
+/* These are handled according to current_personality */
+#define solaris_xstat sys_xstat
+#define solaris_fxstat sys_fxstat
+#define solaris_lxstat sys_lxstat
+#define solaris_xmknod sys_xmknod
+#define solaris_stat sys_stat
+#define solaris_fstat sys_fstat
+#define solaris_lstat sys_lstat
+#define solaris_pread sys_pread
+#define solaris_pwrite sys_pwrite
+#define solaris_ioctl sys_ioctl
+#define solaris_mknod sys_mknod
+
+/* To be done */
+#define solaris_mount printargs
+#define solaris_sysinfo printargs
+#define solaris_sysconfig printargs
+#define solaris_getpmsg printargs
+#define solaris_putpmsg printargs
+#define solaris_wait printargs
+#define solaris_waitid printargs
+#define solaris_sigsuspend printargs
+#define solaris_setpgrp printargs
+#define solaris_getcontext printargs
+#define solaris_setcontext printargs
+#define solaris_getpid printargs
+#define solaris_getuid printargs
+#define solaris_kill printargs
+#define solaris_getgid printargs
+#define solaris_fcntl printargs
+#define solaris_getmsg printargs
+#define solaris_putmsg printargs
+#define solaris_sigprocmask printargs
+#define solaris_sigaction printargs
+#define solaris_sigpending printargs
+#define solaris_mincore printargs
+#define solaris_fchdir printargs
+#define solaris_setrlimit printargs
+#define solaris_getrlimit printargs
+#define solaris_uname printargs
+#define solaris_adjtime printargs
+#define solaris_fchroot printargs
+#define solaris_utimes printargs
+
+#if DONE
+#define solaris_open printargs
+#endif
diff --git a/strace/linux/sparc64/errnoent.h b/strace/linux/sparc64/errnoent.h
new file mode 100644
index 0000000..d243699
--- /dev/null
+++ b/strace/linux/sparc64/errnoent.h
@@ -0,0 +1,127 @@
+ "ERRNO_0", /* 0 */
+ "EPERM", /* 1 */
+ "ENOENT", /* 2 */
+ "ESRCH", /* 3 */
+ "EINTR", /* 4 */
+ "EIO", /* 5 */
+ "ENXIO", /* 6 */
+ "E2BIG", /* 7 */
+ "ENOEXEC", /* 8 */
+ "EBADF", /* 9 */
+ "ECHILD", /* 10 */
+ "EAGAIN", /* 11 */
+ "ENOMEM", /* 12 */
+ "EACCES", /* 13 */
+ "EFAULT", /* 14 */
+ "ENOTBLK", /* 15 */
+ "EBUSY", /* 16 */
+ "EEXIST", /* 17 */
+ "EXDEV", /* 18 */
+ "ENODEV", /* 19 */
+ "ENOTDIR", /* 20 */
+ "EISDIR", /* 21 */
+ "EINVAL", /* 22 */
+ "ENFILE", /* 23 */
+ "EMFILE", /* 24 */
+ "ENOTTY", /* 25 */
+ "ETXTBSY", /* 26 */
+ "EFBIG", /* 27 */
+ "ENOSPC", /* 28 */
+ "ESPIPE", /* 29 */
+ "EROFS", /* 30 */
+ "EMLINK", /* 31 */
+ "EPIPE", /* 32 */
+ "EDOM", /* 33 */
+ "ERANGE", /* 34 */
+ "EWOULDBLOCK", /* 35 */
+ "EINPROGRESS", /* 36 */
+ "EALREADY", /* 37 */
+ "ENOTSOCK", /* 38 */
+ "EDESTADDRREQ", /* 39 */
+ "EMSGSIZE", /* 40 */
+ "EPROTOTYPE", /* 41 */
+ "ENOPROTOOPT", /* 42 */
+ "EPROTONOSUPPORT", /* 43 */
+ "ESOCKTNOSUPPORT", /* 44 */
+ "EOPNOTSUPP", /* 45 */
+ "EPFNOSUPPORT", /* 46 */
+ "EAFNOSUPPORT", /* 47 */
+ "EADDRINUSE", /* 48 */
+ "EADDRNOTAVAIL", /* 49 */
+ "ENETDOWN", /* 50 */
+ "ENETUNREACH", /* 51 */
+ "ENETRESET", /* 52 */
+ "ECONNABORTED", /* 53 */
+ "ECONNRESET", /* 54 */
+ "ENOBUFS", /* 55 */
+ "EISCONN", /* 56 */
+ "ENOTCONN", /* 57 */
+ "ESHUTDOWN", /* 58 */
+ "ETOOMANYREFS", /* 59 */
+ "ETIMEDOUT", /* 60 */
+ "ECONNREFUSED", /* 61 */
+ "ELOOP", /* 62 */
+ "ENAMETOOLONG", /* 63 */
+ "EHOSTDOWN", /* 64 */
+ "EHOSTUNREACH", /* 65 */
+ "ENOTEMPTY", /* 66 */
+ "EPROCLIM", /* 67 */
+ "EUSERS", /* 68 */
+ "EDQUOT", /* 69 */
+ "ESTALE", /* 70 */
+ "EREMOTE", /* 71 */
+ "ENOSTR", /* 72 */
+ "ETIME", /* 73 */
+ "ENOSR", /* 74 */
+ "ENOMSG", /* 75 */
+ "EBADMSG", /* 76 */
+ "EIDRM", /* 77 */
+ "EDEADLK", /* 78 */
+ "ENOLCK", /* 79 */
+ "ENONET", /* 80 */
+ "ERREMOTE", /* 81 */
+ "ENOLINK", /* 82 */
+ "EADV", /* 83 */
+ "ESRMNT", /* 84 */
+ "ECOMM", /* 85 */
+ "EPROTO", /* 86 */
+ "EMULTIHOP", /* 87 */
+ "EDOTDOT", /* 88 */
+ "EREMCHG", /* 89 */
+ "ENOSYS", /* 90 */
+ "ESTRPIPE", /* 91 */
+ "EOVERFLOW", /* 92 */
+ "EBADFD", /* 93 */
+ "ECHRNG", /* 94 */
+ "EL2NSYNC", /* 95 */
+ "EL3HLT", /* 96 */
+ "EL3RST", /* 97 */
+ "ELNRNG", /* 98 */
+ "EUNATCH", /* 99 */
+ "ENOCSI", /* 100 */
+ "EL2HLT", /* 101 */
+ "EBADE", /* 102 */
+ "EBADR", /* 103 */
+ "EXFULL", /* 104 */
+ "ENOANO", /* 105 */
+ "EBADRQC", /* 106 */
+ "EBADSLT", /* 107 */
+ "EDEADLOCK", /* 108 */
+ "EBFONT", /* 109 */
+ "ELIBEXEC", /* 110 */
+ "ENODATA", /* 111 */
+ "ELIBBAD", /* 112 */
+ "ENOPKG", /* 113 */
+ "ELIBACC", /* 114 */
+ "ENOTUNIQ", /* 115 */
+ "ERESTART", /* 116 */
+ "EUCLEAN", /* 117 */
+ "ENOTNAM", /* 118 */
+ "ENAVAIL", /* 119 */
+ "EISNAM", /* 120 */
+ "EREMOTEIO", /* 121 */
+ "EILSEQ", /* 122 */
+ "ELIBMAX", /* 123 */
+ "ELIBSCN", /* 124 */
+ "ENOMEDIUM", /* 125 */
+ "EMEDIUMTYPE", /* 126 */
diff --git a/strace/linux/sparc64/errnoent1.h b/strace/linux/sparc64/errnoent1.h
new file mode 100644
index 0000000..4d750bd
--- /dev/null
+++ b/strace/linux/sparc64/errnoent1.h
@@ -0,0 +1 @@
+#include "../svr4/errnoent.h"
diff --git a/strace/linux/sparc64/errnoent2.h b/strace/linux/sparc64/errnoent2.h
new file mode 100644
index 0000000..d243699
--- /dev/null
+++ b/strace/linux/sparc64/errnoent2.h
@@ -0,0 +1,127 @@
+ "ERRNO_0", /* 0 */
+ "EPERM", /* 1 */
+ "ENOENT", /* 2 */
+ "ESRCH", /* 3 */
+ "EINTR", /* 4 */
+ "EIO", /* 5 */
+ "ENXIO", /* 6 */
+ "E2BIG", /* 7 */
+ "ENOEXEC", /* 8 */
+ "EBADF", /* 9 */
+ "ECHILD", /* 10 */
+ "EAGAIN", /* 11 */
+ "ENOMEM", /* 12 */
+ "EACCES", /* 13 */
+ "EFAULT", /* 14 */
+ "ENOTBLK", /* 15 */
+ "EBUSY", /* 16 */
+ "EEXIST", /* 17 */
+ "EXDEV", /* 18 */
+ "ENODEV", /* 19 */
+ "ENOTDIR", /* 20 */
+ "EISDIR", /* 21 */
+ "EINVAL", /* 22 */
+ "ENFILE", /* 23 */
+ "EMFILE", /* 24 */
+ "ENOTTY", /* 25 */
+ "ETXTBSY", /* 26 */
+ "EFBIG", /* 27 */
+ "ENOSPC", /* 28 */
+ "ESPIPE", /* 29 */
+ "EROFS", /* 30 */
+ "EMLINK", /* 31 */
+ "EPIPE", /* 32 */
+ "EDOM", /* 33 */
+ "ERANGE", /* 34 */
+ "EWOULDBLOCK", /* 35 */
+ "EINPROGRESS", /* 36 */
+ "EALREADY", /* 37 */
+ "ENOTSOCK", /* 38 */
+ "EDESTADDRREQ", /* 39 */
+ "EMSGSIZE", /* 40 */
+ "EPROTOTYPE", /* 41 */
+ "ENOPROTOOPT", /* 42 */
+ "EPROTONOSUPPORT", /* 43 */
+ "ESOCKTNOSUPPORT", /* 44 */
+ "EOPNOTSUPP", /* 45 */
+ "EPFNOSUPPORT", /* 46 */
+ "EAFNOSUPPORT", /* 47 */
+ "EADDRINUSE", /* 48 */
+ "EADDRNOTAVAIL", /* 49 */
+ "ENETDOWN", /* 50 */
+ "ENETUNREACH", /* 51 */
+ "ENETRESET", /* 52 */
+ "ECONNABORTED", /* 53 */
+ "ECONNRESET", /* 54 */
+ "ENOBUFS", /* 55 */
+ "EISCONN", /* 56 */
+ "ENOTCONN", /* 57 */
+ "ESHUTDOWN", /* 58 */
+ "ETOOMANYREFS", /* 59 */
+ "ETIMEDOUT", /* 60 */
+ "ECONNREFUSED", /* 61 */
+ "ELOOP", /* 62 */
+ "ENAMETOOLONG", /* 63 */
+ "EHOSTDOWN", /* 64 */
+ "EHOSTUNREACH", /* 65 */
+ "ENOTEMPTY", /* 66 */
+ "EPROCLIM", /* 67 */
+ "EUSERS", /* 68 */
+ "EDQUOT", /* 69 */
+ "ESTALE", /* 70 */
+ "EREMOTE", /* 71 */
+ "ENOSTR", /* 72 */
+ "ETIME", /* 73 */
+ "ENOSR", /* 74 */
+ "ENOMSG", /* 75 */
+ "EBADMSG", /* 76 */
+ "EIDRM", /* 77 */
+ "EDEADLK", /* 78 */
+ "ENOLCK", /* 79 */
+ "ENONET", /* 80 */
+ "ERREMOTE", /* 81 */
+ "ENOLINK", /* 82 */
+ "EADV", /* 83 */
+ "ESRMNT", /* 84 */
+ "ECOMM", /* 85 */
+ "EPROTO", /* 86 */
+ "EMULTIHOP", /* 87 */
+ "EDOTDOT", /* 88 */
+ "EREMCHG", /* 89 */
+ "ENOSYS", /* 90 */
+ "ESTRPIPE", /* 91 */
+ "EOVERFLOW", /* 92 */
+ "EBADFD", /* 93 */
+ "ECHRNG", /* 94 */
+ "EL2NSYNC", /* 95 */
+ "EL3HLT", /* 96 */
+ "EL3RST", /* 97 */
+ "ELNRNG", /* 98 */
+ "EUNATCH", /* 99 */
+ "ENOCSI", /* 100 */
+ "EL2HLT", /* 101 */
+ "EBADE", /* 102 */
+ "EBADR", /* 103 */
+ "EXFULL", /* 104 */
+ "ENOANO", /* 105 */
+ "EBADRQC", /* 106 */
+ "EBADSLT", /* 107 */
+ "EDEADLOCK", /* 108 */
+ "EBFONT", /* 109 */
+ "ELIBEXEC", /* 110 */
+ "ENODATA", /* 111 */
+ "ELIBBAD", /* 112 */
+ "ENOPKG", /* 113 */
+ "ELIBACC", /* 114 */
+ "ENOTUNIQ", /* 115 */
+ "ERESTART", /* 116 */
+ "EUCLEAN", /* 117 */
+ "ENOTNAM", /* 118 */
+ "ENAVAIL", /* 119 */
+ "EISNAM", /* 120 */
+ "EREMOTEIO", /* 121 */
+ "EILSEQ", /* 122 */
+ "ELIBMAX", /* 123 */
+ "ELIBSCN", /* 124 */
+ "ENOMEDIUM", /* 125 */
+ "EMEDIUMTYPE", /* 126 */
diff --git a/strace/linux/sparc64/ioctlent.h b/strace/linux/sparc64/ioctlent.h
new file mode 100644
index 0000000..c1d6b8a
--- /dev/null
+++ b/strace/linux/sparc64/ioctlent.h
@@ -0,0 +1,838 @@
+ {"linux/fs.h", "FIBMAP", 0x1},
+ {"linux/fs.h", "FIGETBSZ", 0x2},
+ {"linux/fd.h", "FDGETPRM", 0x204},
+ {"linux/fd.h", "FDGETMAXERRS", 0x20e},
+ {"linux/fd.h", "FDGETDRVTYP", 0x20f},
+ {"linux/fd.h", "FDGETDRVPRM", 0x211},
+ {"linux/fd.h", "FDGETDRVSTAT", 0x212},
+ {"linux/fd.h", "FDPOLLDRVSTAT", 0x213},
+ {"linux/fd.h", "FDGETFDCSTAT", 0x215},
+ {"linux/fd.h", "FDWERRORGET", 0x217},
+ {"linux/fd.h", "FDCLRPRM", 0x241},
+ {"linux/fd.h", "FDSETPRM", 0x242},
+ {"linux/fd.h", "FDDEFPRM", 0x243},
+ {"linux/fd.h", "FDMSGON", 0x245},
+ {"linux/fd.h", "FDMSGOFF", 0x246},
+ {"linux/fd.h", "FDFMTBEG", 0x247},
+ {"linux/fd.h", "FDFMTTRK", 0x248},
+ {"linux/fd.h", "FDFMTEND", 0x249},
+ {"linux/fd.h", "FDSETEMSGTRESH", 0x24a},
+ {"linux/fd.h", "FDFLUSH", 0x24b},
+ {"linux/fd.h", "FDSETMAXERRS", 0x24c},
+ {"linux/fd.h", "FDRESET", 0x254},
+ {"linux/fd.h", "FDWERRORCLR", 0x256},
+ {"linux/fd.h", "FDRAWCMD", 0x258},
+ {"linux/fd.h", "FDTWADDLE", 0x259},
+ {"linux/fd.h", "FDEJECT", 0x25a},
+ {"linux/fd.h", "FDSETDRVPRM", 0x290},
+ {"linux/umsdos_fs.h", "UMSDOS_READDIR_DOS", 0x4d2},
+ {"linux/umsdos_fs.h", "UMSDOS_UNLINK_DOS", 0x4d3},
+ {"linux/umsdos_fs.h", "UMSDOS_RMDIR_DOS", 0x4d4},
+ {"linux/umsdos_fs.h", "UMSDOS_STAT_DOS", 0x4d5},
+ {"linux/umsdos_fs.h", "UMSDOS_CREAT_EMD", 0x4d6},
+ {"linux/umsdos_fs.h", "UMSDOS_UNLINK_EMD", 0x4d7},
+ {"linux/umsdos_fs.h", "UMSDOS_READDIR_EMD", 0x4d8},
+ {"linux/umsdos_fs.h", "UMSDOS_GETVERSION", 0x4d9},
+ {"linux/umsdos_fs.h", "UMSDOS_INIT_EMD", 0x4da},
+ {"linux/umsdos_fs.h", "UMSDOS_DOS_SETUP", 0x4db},
+ {"linux/umsdos_fs.h", "UMSDOS_RENAME_DOS", 0x4dc},
+ {"linux/fs.h", "BLKROSET", 0x125d},
+ {"linux/fs.h", "BLKROGET", 0x125e},
+ {"linux/fs.h", "BLKRRPART", 0x125f},
+ {"linux/fs.h", "BLKGETSIZE", 0x1260},
+ {"linux/fs.h", "BLKFLSBUF", 0x1261},
+ {"linux/fs.h", "BLKRASET", 0x1262},
+ {"linux/fs.h", "BLKRAGET", 0x1263},
+ {"linux/fs.h", "BLKFRASET", 0x1264},
+ {"linux/fs.h", "BLKFRAGET", 0x1265},
+ {"linux/fs.h", "BLKSECTSET", 0x1266},
+ {"linux/fs.h", "BLKSECTGET", 0x1267},
+ {"linux/fs.h", "BLKSSZGET", 0x1268},
+ {"linux/blkpg.h", "BLKPG", 0x1269},
+ {"linux/fs.h", "BLKPG", 0x1269},
+ {"linux/elevator.h", "BLKELVGET", 0x126a},
+ {"linux/fs.h", "BLKELVGET", 0x126a},
+ {"linux/elevator.h", "BLKELVSET", 0x126b},
+ {"linux/fs.h", "BLKELVSET", 0x126b},
+ {"linux/fs.h", "BLKBSZGET", 0x1270},
+ {"linux/fs.h", "BLKBSZSET", 0x1271},
+ {"linux/fs.h", "BLKGETSIZE64", 0x1272},
+ {"linux/agpgart.h", "AGPIOC_INFO", 0x4100},
+ {"linux/agpgart.h", "AGPIOC_ACQUIRE", 0x4101},
+ {"linux/apm_bios.h", "APM_IOC_STANDBY", 0x4101},
+ {"linux/agpgart.h", "AGPIOC_RELEASE", 0x4102},
+ {"linux/apm_bios.h", "APM_IOC_SUSPEND", 0x4102},
+ {"linux/agpgart.h", "AGPIOC_SETUP", 0x4103},
+ {"linux/agpgart.h", "AGPIOC_RESERVE", 0x4104},
+ {"linux/agpgart.h", "AGPIOC_PROTECT", 0x4105},
+ {"linux/agpgart.h", "AGPIOC_ALLOCATE", 0x4106},
+ {"linux/agpgart.h", "AGPIOC_DEALLOCATE", 0x4107},
+ {"linux/agpgart.h", "AGPIOC_BIND", 0x4108},
+ {"linux/agpgart.h", "AGPIOC_UNBIND", 0x4109},
+ {"linux/pmu.h", "PMU_IOC_SLEEP", 0x4200},
+ {"linux/cciss_ioctl.h", "CCISS_GETPCIINFO", 0x4201},
+ {"linux/pmu.h", "PMU_IOC_GET_BACKLIGHT", 0x4201},
+ {"linux/cciss_ioctl.h", "CCISS_GETINTINFO", 0x4202},
+ {"linux/pmu.h", "PMU_IOC_SET_BACKLIGHT", 0x4202},
+ {"linux/cciss_ioctl.h", "CCISS_SETINTINFO", 0x4203},
+ {"linux/pmu.h", "PMU_IOC_GET_MODEL", 0x4203},
+ {"linux/cciss_ioctl.h", "CCISS_GETNODENAME", 0x4204},
+ {"linux/pmu.h", "PMU_IOC_HAS_ADB", 0x4204},
+ {"linux/cciss_ioctl.h", "CCISS_SETNODENAME", 0x4205},
+ {"linux/pmu.h", "PMU_IOC_CAN_SLEEP", 0x4205},
+ {"linux/cciss_ioctl.h", "CCISS_GETHEARTBEAT", 0x4206},
+ {"linux/cciss_ioctl.h", "CCISS_GETBUSTYPES", 0x4207},
+ {"linux/cciss_ioctl.h", "CCISS_GETFIRMVER", 0x4208},
+ {"linux/cciss_ioctl.h", "CCISS_GETDRIVVER", 0x4209},
+ {"linux/cciss_ioctl.h", "CCISS_REVALIDVOLS", 0x420a},
+ {"linux/cciss_ioctl.h", "CCISS_PASSTHRU", 0x420b},
+ {"linux/soundcard.h", "SNDCTL_COPR_RESET", 0x4300},
+ {"linux/capi.h", "CAPI_REGISTER", 0x4301},
+ {"linux/soundcard.h", "SNDCTL_COPR_LOAD", 0x4301},
+ {"linux/soundcard.h", "SNDCTL_COPR_RDATA", 0x4302},
+ {"linux/soundcard.h", "SNDCTL_COPR_RCODE", 0x4303},
+ {"linux/soundcard.h", "SNDCTL_COPR_WDATA", 0x4304},
+ {"linux/soundcard.h", "SNDCTL_COPR_WCODE", 0x4305},
+ {"linux/capi.h", "CAPI_GET_MANUFACTURER", 0x4306},
+ {"linux/soundcard.h", "SNDCTL_COPR_RUN", 0x4306},
+ {"linux/capi.h", "CAPI_GET_VERSION", 0x4307},
+ {"linux/soundcard.h", "SNDCTL_COPR_HALT", 0x4307},
+ {"linux/capi.h", "CAPI_GET_SERIAL", 0x4308},
+ {"linux/soundcard.h", "SNDCTL_COPR_SENDMSG", 0x4308},
+ {"linux/capi.h", "CAPI_GET_PROFILE", 0x4309},
+ {"linux/soundcard.h", "SNDCTL_COPR_RCVMSG", 0x4309},
+ {"linux/capi.h", "CAPI_MANUFACTURER_CMD", 0x4320},
+ {"linux/capi.h", "CAPI_GET_ERRCODE", 0x4321},
+ {"linux/capi.h", "CAPI_INSTALLED", 0x4322},
+ {"linux/capi.h", "CAPI_GET_FLAGS", 0x4323},
+ {"linux/capi.h", "CAPI_SET_FLAGS", 0x4324},
+ {"linux/capi.h", "CAPI_CLR_FLAGS", 0x4325},
+ {"linux/capi.h", "CAPI_NCCI_OPENCOUNT", 0x4326},
+ {"linux/capi.h", "CAPI_NCCI_GETUNIT", 0x4327},
+ {"linux/input.h", "EVIOCGVERSION", 0x4501},
+ {"linux/input.h", "EVIOCGID", 0x4502},
+ {"linux/input.h", "EVIOCGREP", 0x4503},
+ {"linux/input.h", "EVIOCSREP", 0x4503},
+ {"linux/input.h", "EVIOCGKEYCODE", 0x4504},
+ {"linux/input.h", "EVIOCSKEYCODE", 0x4504},
+ {"linux/input.h", "EVIOCGKEY", 0x4505},
+ {"linux/input.h", "EVIOCGBUS", 0x4507},
+ {"linux/input.h", "EVIOCRMFF", 0x4581},
+ {"linux/input.h", "EVIOCSGAIN", 0x4582},
+ {"linux/input.h", "EVIOCSAUTOCENTER", 0x4583},
+ {"linux/input.h", "EVIOCGEFFECTS", 0x4584},
+ {"linux/fb.h", "FBIOGET_VBLANK", 0x4612},
+ {"linux/hiddev.h", "HIDIOCGVERSION", 0x4801},
+ {"linux/hiddev.h", "HIDIOCAPPLICATION", 0x4802},
+ {"linux/hiddev.h", "HIDIOCGDEVINFO", 0x4803},
+ {"linux/hiddev.h", "HIDIOCGSTRING", 0x4804},
+ {"linux/hiddev.h", "HIDIOCINITREPORT", 0x4805},
+ {"linux/hiddev.h", "HIDIOCGREPORT", 0x4807},
+ {"linux/hiddev.h", "HIDIOCSREPORT", 0x4808},
+ {"linux/hiddev.h", "HIDIOCGREPORTINFO", 0x4809},
+ {"linux/hiddev.h", "HIDIOCGFIELDINFO", 0x480a},
+ {"linux/hiddev.h", "HIDIOCGUSAGE", 0x480b},
+ {"linux/hiddev.h", "HIDIOCSUSAGE", 0x480c},
+ {"linux/hiddev.h", "HIDIOCGUCODE", 0x480d},
+ {"linux/isdn.h", "IIOCNETAIF", 0x4901},
+ {"linux/isdn.h", "IIOCNETDIF", 0x4902},
+ {"linux/isdn.h", "IIOCNETSCF", 0x4903},
+ {"linux/isdn.h", "IIOCNETGCF", 0x4904},
+ {"linux/isdn.h", "IIOCNETANM", 0x4905},
+ {"linux/isdn.h", "IIOCNETDNM", 0x4906},
+ {"linux/isdn.h", "IIOCNETGNM", 0x4907},
+ {"linux/isdn.h", "IIOCGETSET", 0x4908},
+ {"linux/isdn.h", "IIOCSETSET", 0x4909},
+ {"linux/isdn.h", "IIOCSETVER", 0x490a},
+ {"linux/isdn.h", "IIOCNETHUP", 0x490b},
+ {"linux/isdn.h", "IIOCSETGST", 0x490c},
+ {"linux/isdn.h", "IIOCSETBRJ", 0x490d},
+ {"linux/isdn.h", "IIOCSIGPRF", 0x490e},
+ {"linux/isdn.h", "IIOCGETPRF", 0x490f},
+ {"linux/isdn.h", "IIOCSETPRF", 0x4910},
+ {"linux/isdn.h", "IIOCGETMAP", 0x4911},
+ {"linux/isdn.h", "IIOCSETMAP", 0x4912},
+ {"linux/isdn.h", "IIOCNETASL", 0x4913},
+ {"linux/isdn.h", "IIOCNETDIL", 0x4914},
+ {"linux/isdn.h", "IIOCGETCPS", 0x4915},
+ {"linux/isdn.h", "IIOCGETDVR", 0x4916},
+ {"linux/isdn.h", "IIOCNETLCR", 0x4917},
+ {"linux/isdn.h", "IIOCNETDWRSET", 0x4918},
+ {"linux/isdn.h", "IIOCNETALN", 0x4920},
+ {"linux/isdn.h", "IIOCNETDLN", 0x4921},
+ {"linux/isdn.h", "IIOCNETGPN", 0x4922},
+ {"linux/isdn.h", "IIOCDBGVAR", 0x497f},
+ {"linux/isdn.h", "IIOCDRVCTL", 0x4980},
+ {"linux/soundcard.h", "SOUND_MIXER_INFO", 0x4d65},
+ {"linux/soundcard.h", "SOUND_OLD_MIXER_INFO", 0x4d65},
+ {"linux/soundcard.h", "SOUND_MIXER_ACCESS", 0x4d66},
+ {"linux/soundcard.h", "SOUND_MIXER_AGC", 0x4d67},
+ {"linux/soundcard.h", "SOUND_MIXER_3DSE", 0x4d68},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE1", 0x4d6f},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE2", 0x4d70},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE3", 0x4d71},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE4", 0x4d72},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE5", 0x4d73},
+ {"linux/soundcard.h", "SOUND_MIXER_GETLEVELS", 0x4d74},
+ {"linux/soundcard.h", "SOUND_MIXER_SETLEVELS", 0x4d75},
+ {"linux/soundcard.h", "OSS_GETVERSION", 0x4d76},
+ {"linux/soundcard.h", "SNDCTL_DSP_RESET", 0x5000},
+ {"linux/soundcard.h", "SNDCTL_DSP_SYNC", 0x5001},
+ {"linux/soundcard.h", "SNDCTL_DSP_SPEED", 0x5002},
+ {"linux/soundcard.h", "SOUND_PCM_READ_RATE", 0x5002},
+ {"linux/soundcard.h", "SNDCTL_DSP_STEREO", 0x5003},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETBLKSIZE", 0x5004},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETFMT", 0x5005},
+ {"linux/soundcard.h", "SOUND_PCM_READ_BITS", 0x5005},
+ {"linux/soundcard.h", "SNDCTL_DSP_CHANNELS", 0x5006},
+ {"linux/soundcard.h", "SOUND_PCM_READ_CHANNELS", 0x5006},
+ {"linux/soundcard.h", "SOUND_PCM_WRITE_FILTER", 0x5007},
+ {"linux/soundcard.h", "SOUND_PCM_READ_FILTER", 0x5007},
+ {"linux/soundcard.h", "SNDCTL_DSP_POST", 0x5008},
+ {"linux/soundcard.h", "SNDCTL_DSP_SUBDIVIDE", 0x5009},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETFRAGMENT", 0x500a},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETFMTS", 0x500b},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETOSPACE", 0x500c},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETISPACE", 0x500d},
+ {"linux/soundcard.h", "SNDCTL_DSP_NONBLOCK", 0x500e},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETCAPS", 0x500f},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETTRIGGER", 0x5010},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETTRIGGER", 0x5010},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETIPTR", 0x5011},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETOPTR", 0x5012},
+ {"linux/soundcard.h", "SNDCTL_DSP_MAPINBUF", 0x5013},
+ {"linux/soundcard.h", "SNDCTL_DSP_MAPOUTBUF", 0x5014},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETSYNCRO", 0x5015},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETDUPLEX", 0x5016},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETODELAY", 0x5017},
+ {"linux/soundcard.h", "SNDCTL_DSP_PROFILE", 0x5017},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETCHANNELMASK", 0x5040},
+ {"linux/soundcard.h", "SNDCTL_DSP_BIND_CHANNEL", 0x5041},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETSPDIF", 0x5042},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETSPDIF", 0x5043},
+ {"linux/soundcard.h", "SNDCTL_SEQ_RESET", 0x5100},
+ {"linux/soundcard.h", "SNDCTL_SEQ_SYNC", 0x5101},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_INFO", 0x5102},
+ {"linux/soundcard.h", "SNDCTL_SEQ_CTRLRATE", 0x5103},
+ {"linux/soundcard.h", "SNDCTL_SEQ_GETOUTCOUNT", 0x5104},
+ {"linux/soundcard.h", "SNDCTL_SEQ_GETINCOUNT", 0x5105},
+ {"linux/soundcard.h", "SNDCTL_SEQ_PERCMODE", 0x5106},
+ {"linux/soundcard.h", "SNDCTL_FM_LOAD_INSTR", 0x5107},
+ {"linux/soundcard.h", "SNDCTL_SEQ_TESTMIDI", 0x5108},
+ {"linux/soundcard.h", "SNDCTL_SEQ_RESETSAMPLES", 0x5109},
+ {"linux/soundcard.h", "SNDCTL_SEQ_NRSYNTHS", 0x510a},
+ {"linux/soundcard.h", "SNDCTL_SEQ_NRMIDIS", 0x510b},
+ {"linux/soundcard.h", "SNDCTL_MIDI_INFO", 0x510c},
+ {"linux/soundcard.h", "SNDCTL_SEQ_THRESHOLD", 0x510d},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_MEMAVL", 0x510e},
+ {"linux/soundcard.h", "SNDCTL_FM_4OP_ENABLE", 0x510f},
+ {"linux/soundcard.h", "SNDCTL_SEQ_PANIC", 0x5111},
+ {"linux/soundcard.h", "SNDCTL_SEQ_OUTOFBAND", 0x5112},
+ {"linux/soundcard.h", "SNDCTL_SEQ_GETTIME", 0x5113},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_ID", 0x5114},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_CONTROL", 0x5115},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_REMOVESAMPLE", 0x5116},
+ {"linux/random.h", "RNDGETENTCNT", 0x5200},
+ {"linux/random.h", "RNDADDTOENTCNT", 0x5201},
+ {"linux/random.h", "RNDGETPOOL", 0x5202},
+ {"linux/random.h", "RNDADDENTROPY", 0x5203},
+ {"linux/random.h", "RNDZAPENTCNT", 0x5204},
+ {"linux/random.h", "RNDCLEARPOOL", 0x5206},
+ {"asm/ioctls.h", "TCGETS", 0x5401},
+ {"linux/soundcard.h", "SNDCTL_TMR_TIMEBASE", 0x5401},
+ {"asm/ioctls.h", "TCSETS", 0x5402},
+ {"linux/soundcard.h", "SNDCTL_TMR_START", 0x5402},
+ {"asm/ioctls.h", "TCSETSW", 0x5403},
+ {"linux/soundcard.h", "SNDCTL_TMR_STOP", 0x5403},
+ {"asm/ioctls.h", "TCSETSF", 0x5404},
+ {"linux/soundcard.h", "SNDCTL_TMR_CONTINUE", 0x5404},
+ {"asm/ioctls.h", "TCGETA", 0x5405},
+ {"linux/soundcard.h", "SNDCTL_TMR_TEMPO", 0x5405},
+ {"asm/ioctls.h", "TCSETA", 0x5406},
+ {"linux/soundcard.h", "SNDCTL_TMR_SOURCE", 0x5406},
+ {"asm/ioctls.h", "TCSETAW", 0x5407},
+ {"linux/soundcard.h", "SNDCTL_TMR_METRONOME", 0x5407},
+ {"asm/ioctls.h", "TCSETAF", 0x5408},
+ {"linux/soundcard.h", "SNDCTL_TMR_SELECT", 0x5408},
+ {"asm/ioctls.h", "TCSBRK", 0x5409},
+ {"asm/ioctls.h", "TCXONC", 0x540a},
+ {"asm/ioctls.h", "TCFLSH", 0x540b},
+ {"asm/ioctls.h", "TIOCEXCL", 0x540c},
+ {"asm/ioctls.h", "TIOCNXCL", 0x540d},
+ {"asm/ioctls.h", "TIOCSCTTY", 0x540e},
+ {"asm/ioctls.h", "TIOCGPGRP", 0x540f},
+ {"asm/ioctls.h", "TIOCSPGRP", 0x5410},
+ {"asm/ioctls.h", "TIOCOUTQ", 0x5411},
+ {"asm/ioctls.h", "TIOCSTI", 0x5412},
+ {"asm/ioctls.h", "TIOCGWINSZ", 0x5413},
+ {"asm/ioctls.h", "TIOCSWINSZ", 0x5414},
+ {"asm/ioctls.h", "TIOCMGET", 0x5415},
+ {"asm/ioctls.h", "TIOCMBIS", 0x5416},
+ {"asm/ioctls.h", "TIOCMBIC", 0x5417},
+ {"asm/ioctls.h", "TIOCMSET", 0x5418},
+ {"asm/ioctls.h", "TIOCGSOFTCAR", 0x5419},
+ {"asm/ioctls.h", "TIOCSSOFTCAR", 0x541a},
+ {"asm/ioctls.h", "FIONREAD", 0x541b},
+ {"asm/ioctls.h", "TIOCLINUX", 0x541c},
+ {"asm/ioctls.h", "TIOCCONS", 0x541d},
+ {"asm/ioctls.h", "TIOCGSERIAL", 0x541e},
+ {"asm/ioctls.h", "TIOCSSERIAL", 0x541f},
+ {"asm/ioctls.h", "TIOCPKT", 0x5420},
+ {"asm/ioctls.h", "FIONBIO", 0x5421},
+ {"asm/ioctls.h", "TIOCNOTTY", 0x5422},
+ {"asm/ioctls.h", "TIOCSETD", 0x5423},
+ {"asm/ioctls.h", "TIOCGETD", 0x5424},
+ {"asm/ioctls.h", "TCSBRKP", 0x5425},
+ {"asm/ioctls.h", "TIOCTTYGSTRUCT", 0x5426},
+ {"asm/ioctls.h", "TIOCSBRK", 0x5427},
+ {"asm/ioctls.h", "TIOCCBRK", 0x5428},
+ {"asm/ioctls.h", "TIOCGSID", 0x5429},
+ {"asm/ioctls.h", "TIOCGPTN", 0x5430},
+ {"asm/ioctls.h", "TIOCSPTLCK", 0x5431},
+ {"asm/ioctls.h", "FIONCLEX", 0x5450},
+ {"asm/ioctls.h", "FIOCLEX", 0x5451},
+ {"asm/ioctls.h", "FIOASYNC", 0x5452},
+ {"asm/ioctls.h", "TIOCSERCONFIG", 0x5453},
+ {"asm/ioctls.h", "TIOCSERGWILD", 0x5454},
+ {"asm/ioctls.h", "TIOCSERSWILD", 0x5455},
+ {"asm/ioctls.h", "TIOCGLCKTRMIOS", 0x5456},
+ {"asm/ioctls.h", "TIOCSLCKTRMIOS", 0x5457},
+ {"asm/ioctls.h", "TIOCSERGSTRUCT", 0x5458},
+ {"asm/ioctls.h", "TIOCSERGETLSR", 0x5459},
+ {"asm/ioctls.h", "TIOCSERGETMULTI", 0x545a},
+ {"asm/ioctls.h", "TIOCSERSETMULTI", 0x545b},
+ {"asm/ioctls.h", "TIOCMIWAIT", 0x545c},
+ {"asm/ioctls.h", "TIOCGICOUNT", 0x545d},
+ {"asm/ioctls.h", "TIOCGHAYESESP", 0x545e},
+ {"asm/ioctls.h", "TIOCSHAYESESP", 0x545f},
+ {"linux/if_tun.h", "TUNSETNOCSUM", 0x54c8},
+ {"linux/if_tun.h", "TUNSETDEBUG", 0x54c9},
+ {"linux/if_tun.h", "TUNSETIFF", 0x54ca},
+ {"linux/if_tun.h", "TUNSETPERSIST", 0x54cb},
+ {"linux/if_tun.h", "TUNSETOWNER", 0x54cc},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CONTROL", 0x5500},
+ {"linux/usbdevice_fs.h", "USBDEVFS_BULK", 0x5502},
+ {"linux/usbdevice_fs.h", "USBDEVFS_RESETEP", 0x5503},
+ {"linux/usbdevice_fs.h", "USBDEVFS_SETINTERFACE", 0x5504},
+ {"linux/usbdevice_fs.h", "USBDEVFS_SETCONFIGURATION", 0x5505},
+ {"linux/usbdevice_fs.h", "USBDEVFS_GETDRIVER", 0x5508},
+ {"linux/usbdevice_fs.h", "USBDEVFS_SUBMITURB", 0x550a},
+ {"linux/usbdevice_fs.h", "USBDEVFS_DISCARDURB", 0x550b},
+ {"linux/usbdevice_fs.h", "USBDEVFS_REAPURB", 0x550c},
+ {"linux/usbdevice_fs.h", "USBDEVFS_REAPURBNDELAY", 0x550d},
+ {"linux/usbdevice_fs.h", "USBDEVFS_DISCSIGNAL", 0x550e},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CLAIMINTERFACE", 0x550f},
+ {"linux/usbdevice_fs.h", "USBDEVFS_RELEASEINTERFACE", 0x5510},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CONNECTINFO", 0x5511},
+ {"linux/usbdevice_fs.h", "USBDEVFS_IOCTL", 0x5512},
+ {"linux/usbdevice_fs.h", "USBDEVFS_HUB_PORTINFO", 0x5513},
+ {"linux/usbdevice_fs.h", "USBDEVFS_RESET", 0x5514},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CLEAR_HALT", 0x5515},
+ {"linux/watchdog.h", "WDIOC_GETSUPPORT", 0x5700},
+ {"linux/watchdog.h", "WDIOC_GETSTATUS", 0x5701},
+ {"linux/watchdog.h", "WDIOC_GETBOOTSTATUS", 0x5702},
+ {"linux/watchdog.h", "WDIOC_GETTEMP", 0x5703},
+ {"linux/watchdog.h", "WDIOC_SETOPTIONS", 0x5704},
+ {"linux/watchdog.h", "WDIOC_KEEPALIVE", 0x5705},
+ {"linux/watchdog.h", "WDIOC_SETTIMEOUT", 0x5706},
+ {"linux/watchdog.h", "WDIOC_GETTIMEOUT", 0x5707},
+ {"linux/ite_gpio.h", "ITE_GPIO_IN", 0x5a00},
+ {"linux/ite_gpio.h", "ITE_GPIO_OUT", 0x5a01},
+ {"linux/ite_gpio.h", "ITE_GPIO_INT_CTRL", 0x5a02},
+ {"linux/ite_gpio.h", "ITE_GPIO_IN_STATUS", 0x5a03},
+ {"linux/ite_gpio.h", "ITE_GPIO_OUT_STATUS", 0x5a04},
+ {"linux/ite_gpio.h", "ITE_GPIO_GEN_CTRL", 0x5a05},
+ {"linux/ite_gpio.h", "ITE_GPIO_INT_WAIT", 0x5a06},
+ {"linux/sonet.h", "SONET_GETSTAT", 0x6110},
+ {"linux/sonet.h", "SONET_GETSTATZ", 0x6111},
+ {"linux/sonet.h", "SONET_SETDIAG", 0x6112},
+ {"linux/sonet.h", "SONET_CLRDIAG", 0x6113},
+ {"linux/sonet.h", "SONET_GETDIAG", 0x6114},
+ {"linux/sonet.h", "SONET_SETFRAMING", 0x6115},
+ {"linux/sonet.h", "SONET_GETFRAMING", 0x6116},
+ {"linux/sonet.h", "SONET_GETFRSENSE", 0x6117},
+ {"linux/atm_idt77105.h", "IDT77105_GETSTAT", 0x6132},
+ {"linux/atm_idt77105.h", "IDT77105_GETSTATZ", 0x6133},
+ {"linux/atmdev.h", "ATM_GETSTAT", 0x6150},
+ {"linux/atmdev.h", "ATM_GETSTATZ", 0x6151},
+ {"linux/atmdev.h", "ATM_GETLOOP", 0x6152},
+ {"linux/atmdev.h", "ATM_SETLOOP", 0x6153},
+ {"linux/atmdev.h", "ATM_QUERYLOOP", 0x6154},
+ {"linux/atm_eni.h", "ENI_MEMDUMP", 0x6160},
+ {"linux/atm_nicstar.h", "NS_GETPSTAT", 0x6161},
+ {"linux/atm_zatm.h", "ZATM_GETPOOL", 0x6161},
+ {"linux/atm_nicstar.h", "NS_SETBUFLEV", 0x6162},
+ {"linux/atm_zatm.h", "ZATM_GETPOOLZ", 0x6162},
+ {"linux/atm_nicstar.h", "NS_ADJBUFLEV", 0x6163},
+ {"linux/atm_zatm.h", "ZATM_SETPOOL", 0x6163},
+ {"linux/atm_zatm.h", "ZATM_GETTHIST", 0x6164},
+ {"linux/atm_eni.h", "ENI_SETMULT", 0x6167},
+ {"linux/atm_tcp.h", "SIOCSIFATMTCP", 0x6180},
+ {"linux/atmdev.h", "ATM_GETLINKRATE", 0x6181},
+ {"linux/atmdev.h", "ATM_GETNAMES", 0x6183},
+ {"linux/atmdev.h", "ATM_GETTYPE", 0x6184},
+ {"linux/atmdev.h", "ATM_GETESI", 0x6185},
+ {"linux/atmdev.h", "ATM_GETADDR", 0x6186},
+ {"linux/atmdev.h", "ATM_RSTADDR", 0x6187},
+ {"linux/atmdev.h", "ATM_ADDADDR", 0x6188},
+ {"linux/atmdev.h", "ATM_DELADDR", 0x6189},
+ {"linux/atmdev.h", "ATM_GETCIRANGE", 0x618a},
+ {"linux/atmdev.h", "ATM_SETCIRANGE", 0x618b},
+ {"linux/atmdev.h", "ATM_SETESI", 0x618c},
+ {"linux/atmdev.h", "ATM_SETESIF", 0x618d},
+ {"linux/atm_tcp.h", "ATMTCP_CREATE", 0x618e},
+ {"linux/atm_tcp.h", "ATMTCP_REMOVE", 0x618f},
+ {"linux/atmlec.h", "ATMLEC_CTRL", 0x61d0},
+ {"linux/atmlec.h", "ATMLEC_DATA", 0x61d1},
+ {"linux/atmlec.h", "ATMLEC_MCAST", 0x61d2},
+ {"linux/atmmpc.h", "ATMMPC_CTRL", 0x61d8},
+ {"linux/atmmpc.h", "ATMMPC_DATA", 0x61d9},
+ {"linux/atmclip.h", "SIOCMKCLIP", 0x61e0},
+ {"linux/atmarp.h", "ATMARPD_CTRL", 0x61e1},
+ {"linux/atmarp.h", "ATMARP_MKIP", 0x61e2},
+ {"linux/atmarp.h", "ATMARP_SETENTRY", 0x61e3},
+ {"linux/atmarp.h", "ATMARP_ENCAP", 0x61e5},
+ {"linux/atmsvc.h", "ATMSIGD_CTRL", 0x61f0},
+ {"linux/atmdev.h", "ATM_SETSC", 0x61f1},
+ {"linux/atmdev.h", "ATM_SETBACKEND", 0x61f2},
+ {"linux/coda.h", "CIOC_KERNEL_VERSION", 0x630a},
+ {"linux/comstats.h", "COM_GETPORTSTATS", 0x631e},
+ {"linux/comstats.h", "COM_CLRPORTSTATS", 0x631f},
+ {"linux/comstats.h", "COM_GETBRDSTATS", 0x6320},
+ {"linux/comstats.h", "COM_READPORT", 0x6328},
+ {"linux/comstats.h", "COM_READBOARD", 0x6329},
+ {"linux/comstats.h", "COM_READPANEL", 0x632a},
+ {"linux/devfs_fs.h", "DEVFSDIOC_GET_PROTO_REV", 0x6400},
+ {"linux/video_decoder.h", "DECODER_GET_CAPABILITIES", 0x6401},
+ {"linux/devfs_fs.h", "DEVFSDIOC_SET_EVENT_MASK", 0x6402},
+ {"linux/video_decoder.h", "DECODER_GET_STATUS", 0x6402},
+ {"linux/devfs_fs.h", "DEVFSDIOC_RELEASE_EVENT_QUEUE", 0x6403},
+ {"linux/video_decoder.h", "DECODER_SET_NORM", 0x6403},
+ {"linux/devfs_fs.h", "DEVFSDIOC_SET_DEBUG_MASK", 0x6404},
+ {"linux/video_decoder.h", "DECODER_SET_INPUT", 0x6404},
+ {"linux/video_decoder.h", "DECODER_SET_OUTPUT", 0x6405},
+ {"linux/video_decoder.h", "DECODER_ENABLE_OUTPUT", 0x6406},
+ {"linux/video_decoder.h", "DECODER_SET_PICTURE", 0x6407},
+ {"linux/video_decoder.h", "DECODER_DUMP", 0x64c0},
+ {"linux/video_encoder.h", "ENCODER_GET_CAPABILITIES", 0x6501},
+ {"linux/video_encoder.h", "ENCODER_SET_NORM", 0x6502},
+ {"linux/video_encoder.h", "ENCODER_SET_INPUT", 0x6503},
+ {"linux/video_encoder.h", "ENCODER_SET_OUTPUT", 0x6504},
+ {"linux/video_encoder.h", "ENCODER_ENABLE_OUTPUT", 0x6505},
+ {"linux/ext2_fs.h", "EXT2_IOC_GETFLAGS", 0x6601},
+ {"linux/ext3_fs.h", "EXT3_IOC_GETFLAGS", 0x6601},
+ {"linux/ext2_fs.h", "EXT2_IOC_SETFLAGS", 0x6602},
+ {"linux/ext3_fs.h", "EXT3_IOC_SETFLAGS", 0x6602},
+ {"linux/ext3_fs.h", "EXT3_IOC_GETVERSION", 0x6603},
+ {"linux/ext3_fs.h", "EXT3_IOC_SETVERSION", 0x6604},
+ {"linux/ext3_fs.h", "EXT3_IOC_WAIT_FOR_READONLY", 0x6663},
+ {"linux/i2o-dev.h", "I2OGETIOPS", 0x6900},
+ {"linux/i2o-dev.h", "I2OHRTGET", 0x6901},
+ {"linux/i2o-dev.h", "I2OLCTGET", 0x6902},
+ {"linux/i2o-dev.h", "I2OPARMSET", 0x6903},
+ {"linux/i2o-dev.h", "I2OPARMGET", 0x6904},
+ {"linux/i2o-dev.h", "I2OSWDL", 0x6905},
+ {"linux/i2o-dev.h", "I2OSWUL", 0x6906},
+ {"linux/i2o-dev.h", "I2OSWDEL", 0x6907},
+ {"linux/i2o-dev.h", "I2OVALIDATE", 0x6908},
+ {"linux/i2o-dev.h", "I2OHTML", 0x6909},
+ {"linux/i2o-dev.h", "I2OEVTREG", 0x690a},
+ {"linux/i2o-dev.h", "I2OEVTGET", 0x690b},
+ {"linux/i8k.h", "I8K_BIOS_VERSION", 0x6980},
+ {"linux/i8k.h", "I8K_MACHINE_ID", 0x6981},
+ {"linux/i8k.h", "I8K_POWER_STATUS", 0x6982},
+ {"linux/i8k.h", "I8K_FN_STATUS", 0x6983},
+ {"linux/i8k.h", "I8K_GET_TEMP", 0x6984},
+ {"linux/i8k.h", "I8K_GET_SPEED", 0x6985},
+ {"linux/i8k.h", "I8K_GET_FAN", 0x6986},
+ {"linux/i8k.h", "I8K_SET_FAN", 0x6987},
+ {"linux/joystick.h", "JSIOCGVERSION", 0x6a01},
+ {"linux/joystick.h", "JSIOCGAXES", 0x6a11},
+ {"linux/joystick.h", "JSIOCGBUTTONS", 0x6a12},
+ {"linux/joystick.h", "JSIOCSCORR", 0x6a21},
+ {"linux/joystick.h", "JSIOCGCORR", 0x6a22},
+ {"linux/joystick.h", "JSIOCSAXMAP", 0x6a31},
+ {"linux/joystick.h", "JSIOCGAXMAP", 0x6a32},
+ {"linux/joystick.h", "JSIOCSBTNMAP", 0x6a33},
+ {"linux/joystick.h", "JSIOCGBTNMAP", 0x6a34},
+ {"linux/udf_fs_i.h", "UDF_GETEASIZE", 0x6c40},
+ {"linux/udf_fs_i.h", "UDF_GETEABLOCK", 0x6c41},
+ {"linux/udf_fs_i.h", "UDF_GETVOLIDENT", 0x6c42},
+ {"linux/udf_fs_i.h", "UDF_RELOCATE_BLOCKS", 0x6c43},
+ {"linux/soundcard.h", "SNDCTL_MIDI_PRETIME", 0x6d00},
+ {"linux/synclink.h", "MGSL_IOCSPARAMS", 0x6d00},
+ {"linux/mtio.h", "MTIOCTOP", 0x6d01},
+ {"linux/soundcard.h", "SNDCTL_MIDI_MPUMODE", 0x6d01},
+ {"linux/synclink.h", "MGSL_IOCGPARAMS", 0x6d01},
+ {"linux/mtio.h", "MTIOCGET", 0x6d02},
+ {"linux/soundcard.h", "SNDCTL_MIDI_MPUCMD", 0x6d02},
+ {"linux/synclink.h", "MGSL_IOCSTXIDLE", 0x6d02},
+ {"linux/mtio.h", "MTIOCPOS", 0x6d03},
+ {"linux/synclink.h", "MGSL_IOCGTXIDLE", 0x6d03},
+ {"linux/mtio.h", "MTIOCGETCONFIG", 0x6d04},
+ {"linux/synclink.h", "MGSL_IOCTXENABLE", 0x6d04},
+ {"linux/mtio.h", "MTIOCSETCONFIG", 0x6d05},
+ {"linux/synclink.h", "MGSL_IOCRXENABLE", 0x6d05},
+ {"linux/mtio.h", "MTIOCRDFTSEG", 0x6d06},
+ {"linux/synclink.h", "MGSL_IOCTXABORT", 0x6d06},
+ {"linux/mtio.h", "MTIOCWRFTSEG", 0x6d07},
+ {"linux/synclink.h", "MGSL_IOCGSTATS", 0x6d07},
+ {"linux/mtio.h", "MTIOCVOLINFO", 0x6d08},
+ {"linux/synclink.h", "MGSL_IOCWAITEVENT", 0x6d08},
+ {"linux/mtio.h", "MTIOCGETSIZE", 0x6d09},
+ {"linux/synclink.h", "MGSL_IOCLOOPTXDONE", 0x6d09},
+ {"linux/mtio.h", "MTIOCFTFORMAT", 0x6d0a},
+ {"linux/mtio.h", "MTIOCFTCMD", 0x6d0b},
+ {"linux/synclink.h", "MGSL_IOCCLRMODCOUNT", 0x6d0f},
+ {"linux/zftape.h", "MTIOC_ZFTAPE_GETBLKSZ", 0x6d68},
+ {"linux/ncp_fs.h", "NCP_IOC_NCPREQUEST", 0x6e01},
+ {"linux/ncp_fs.h", "NCP_IOC_GETMOUNTUID", 0x6e02},
+ {"linux/ncp_fs.h", "NCP_IOC_GETMOUNTUID2", 0x6e02},
+ {"linux/ncp_fs.h", "NCP_IOC_CONN_LOGGED_IN", 0x6e03},
+ {"linux/ncp_fs.h", "NCP_IOC_GET_FS_INFO", 0x6e04},
+ {"linux/ncp_fs.h", "NCP_IOC_GET_FS_INFO_V2", 0x6e04},
+ {"linux/ncp_fs.h", "NCP_IOC_SIGN_INIT", 0x6e05},
+ {"linux/ncp_fs.h", "NCP_IOC_SIGN_WANTED", 0x6e06},
+ {"linux/ncp_fs.h", "NCP_IOC_SET_SIGN_WANTED", 0x6e06},
+ {"linux/ncp_fs.h", "NCP_IOC_LOCKUNLOCK", 0x6e07},
+ {"linux/ncp_fs.h", "NCP_IOC_GETROOT", 0x6e08},
+ {"linux/ncp_fs.h", "NCP_IOC_SETROOT", 0x6e08},
+ {"linux/ncp_fs.h", "NCP_IOC_GETOBJECTNAME", 0x6e09},
+ {"linux/ncp_fs.h", "NCP_IOC_SETOBJECTNAME", 0x6e09},
+ {"linux/ncp_fs.h", "NCP_IOC_GETPRIVATEDATA", 0x6e0a},
+ {"linux/ncp_fs.h", "NCP_IOC_SETPRIVATEDATA", 0x6e0a},
+ {"linux/ncp_fs.h", "NCP_IOC_GETCHARSETS", 0x6e0b},
+ {"linux/ncp_fs.h", "NCP_IOC_SETCHARSETS", 0x6e0b},
+ {"linux/ncp_fs.h", "NCP_IOC_GETDENTRYTTL", 0x6e0c},
+ {"linux/ncp_fs.h", "NCP_IOC_SETDENTRYTTL", 0x6e0c},
+ {"linux/matroxfb.h", "MATROXFB_SET_OUTPUT_CONNECTION", 0x6ef8},
+ {"linux/matroxfb.h", "MATROXFB_GET_OUTPUT_CONNECTION", 0x6ef8},
+ {"linux/matroxfb.h", "MATROXFB_GET_AVAILABLE_OUTPUTS", 0x6ef9},
+ {"linux/matroxfb.h", "MATROXFB_SET_OUTPUT_MODE", 0x6efa},
+ {"linux/matroxfb.h", "MATROXFB_GET_OUTPUT_MODE", 0x6efa},
+ {"linux/matroxfb.h", "MATROXFB_GET_ALL_OUTPUTS", 0x6efb},
+ {"linux/rtc.h", "RTC_AIE_ON", 0x7001},
+ {"linux/rtc.h", "RTC_AIE_OFF", 0x7002},
+ {"linux/intermezzo_fs.h", "PRESTO_GETMOUNT", 0x7003},
+ {"linux/rtc.h", "RTC_UIE_ON", 0x7003},
+ {"linux/intermezzo_fs.h", "PRESTO_SETPID", 0x7004},
+ {"linux/rtc.h", "RTC_UIE_OFF", 0x7004},
+ {"linux/rtc.h", "RTC_PIE_ON", 0x7005},
+ {"linux/intermezzo_fs.h", "PRESTO_CLOSE_JOURNALF", 0x7006},
+ {"linux/rtc.h", "RTC_PIE_OFF", 0x7006},
+ {"linux/intermezzo_fs.h", "PRESTO_SET_FSETROOT", 0x7007},
+ {"linux/rtc.h", "RTC_ALM_SET", 0x7007},
+ {"linux/intermezzo_fs.h", "PRESTO_CLEAR_FSETROOT", 0x7008},
+ {"linux/rtc.h", "RTC_ALM_READ", 0x7008},
+ {"linux/intermezzo_fs.h", "PRESTO_SETOPT", 0x7009},
+ {"linux/rtc.h", "RTC_RD_TIME", 0x7009},
+ {"linux/intermezzo_fs.h", "PRESTO_GETOPT", 0x700a},
+ {"linux/rtc.h", "RTC_SET_TIME", 0x700a},
+ {"linux/intermezzo_fs.h", "PRESTO_GET_KMLSIZE", 0x700b},
+ {"linux/rtc.h", "RTC_IRQP_READ", 0x700b},
+ {"linux/intermezzo_fs.h", "PRESTO_GET_RECNO", 0x700c},
+ {"linux/rtc.h", "RTC_IRQP_SET", 0x700c},
+ {"linux/rtc.h", "RTC_EPOCH_READ", 0x700d},
+ {"linux/rtc.h", "RTC_EPOCH_SET", 0x700e},
+ {"linux/rtc.h", "RTC_WIE_ON", 0x700f},
+ {"linux/rtc.h", "RTC_WKALM_SET", 0x700f},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_SETATTR", 0x7010},
+ {"linux/rtc.h", "RTC_WIE_OFF", 0x7010},
+ {"linux/rtc.h", "RTC_WKALM_RD", 0x7010},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_CREATE", 0x7011},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_LINK", 0x7012},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_UNLINK", 0x7013},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_SYMLINK", 0x7014},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_MKDIR", 0x7015},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_RMDIR", 0x7016},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_MKNOD", 0x7017},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_RENAME", 0x7018},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_CLOSE", 0x701a},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_IOPEN", 0x701b},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_SETEXTATTR", 0x701c},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_DELEXTATTR", 0x701d},
+ {"linux/intermezzo_fs.h", "PRESTO_MARK", 0x7020},
+ {"linux/intermezzo_fs.h", "PRESTO_RELEASE_PERMIT", 0x7021},
+ {"linux/intermezzo_fs.h", "PRESTO_CLEAR_ALL_FSETROOTS", 0x7022},
+ {"linux/intermezzo_fs.h", "PRESTO_BACKFETCH_LML", 0x7023},
+ {"linux/intermezzo_fs.h", "PRESTO_REINT", 0x7024},
+ {"linux/intermezzo_fs.h", "PRESTO_CANCEL_LML", 0x7025},
+ {"linux/intermezzo_fs.h", "PRESTO_RESET_FSET", 0x7026},
+ {"linux/intermezzo_fs.h", "PRESTO_COMPLETE_CLOSES", 0x7027},
+ {"linux/intermezzo_fs.h", "PRESTO_REINT_BEGIN", 0x7030},
+ {"linux/intermezzo_fs.h", "PRESTO_DO_REINT", 0x7031},
+ {"linux/intermezzo_fs.h", "PRESTO_REINT_END", 0x7032},
+ {"linux/nvram.h", "NVRAM_INIT", 0x7040},
+ {"linux/nvram.h", "NVRAM_SETCKS", 0x7041},
+ {"linux/ppdev.h", "PPSETMODE", 0x7080},
+ {"linux/ppdev.h", "PPRSTATUS", 0x7081},
+ {"linux/ppdev.h", "PPRCONTROL", 0x7083},
+ {"linux/ppdev.h", "PPWCONTROL", 0x7084},
+ {"linux/ppdev.h", "PPRDATA", 0x7085},
+ {"linux/ppdev.h", "PPWDATA", 0x7086},
+ {"linux/ppdev.h", "PPCLAIM", 0x708b},
+ {"linux/ppdev.h", "PPRELEASE", 0x708c},
+ {"linux/ppdev.h", "PPYIELD", 0x708d},
+ {"linux/ppdev.h", "PPFCONTROL", 0x708e},
+ {"linux/ppdev.h", "PPEXCL", 0x708f},
+ {"linux/ppdev.h", "PPDATADIR", 0x7090},
+ {"linux/ppdev.h", "PPNEGOT", 0x7091},
+ {"linux/ppdev.h", "PPWCTLONIRQ", 0x7092},
+ {"linux/ppdev.h", "PPCLRIRQ", 0x7093},
+ {"linux/ppdev.h", "PPSETPHASE", 0x7094},
+ {"linux/ppdev.h", "PPGETTIME", 0x7095},
+ {"linux/ppdev.h", "PPSETTIME", 0x7096},
+ {"linux/ppdev.h", "PPGETMODES", 0x7097},
+ {"linux/ppdev.h", "PPGETMODE", 0x7098},
+ {"linux/ppdev.h", "PPGETPHASE", 0x7099},
+ {"linux/ppdev.h", "PPGETFLAGS", 0x709a},
+ {"linux/ppdev.h", "PPSETFLAGS", 0x709b},
+ {"linux/serio.h", "SPIOCSTYPE", 0x7101},
+ {"linux/telephony.h", "PHONE_CAPABILITIES", 0x7180},
+ {"linux/telephony.h", "PHONE_CAPABILITIES_LIST", 0x7181},
+ {"linux/telephony.h", "PHONE_CAPABILITIES_CHECK", 0x7182},
+ {"linux/telephony.h", "PHONE_RING", 0x7183},
+ {"linux/telephony.h", "PHONE_HOOKSTATE", 0x7184},
+ {"linux/telephony.h", "PHONE_MAXRINGS", 0x7185},
+ {"linux/telephony.h", "PHONE_RING_CADENCE", 0x7186},
+ {"linux/telephony.h", "OLD_PHONE_RING_START", 0x7187},
+ {"linux/telephony.h", "PHONE_RING_START", 0x7187},
+ {"linux/telephony.h", "PHONE_RING_STOP", 0x7188},
+ {"linux/telephony.h", "PHONE_REC_CODEC", 0x7189},
+ {"linux/telephony.h", "PHONE_REC_START", 0x718a},
+ {"linux/telephony.h", "PHONE_REC_STOP", 0x718b},
+ {"linux/telephony.h", "PHONE_REC_DEPTH", 0x718c},
+ {"linux/telephony.h", "PHONE_FRAME", 0x718d},
+ {"linux/telephony.h", "PHONE_REC_VOLUME", 0x718e},
+ {"linux/telephony.h", "PHONE_REC_LEVEL", 0x718f},
+ {"linux/telephony.h", "PHONE_PLAY_CODEC", 0x7190},
+ {"linux/telephony.h", "PHONE_PLAY_START", 0x7191},
+ {"linux/telephony.h", "PHONE_PLAY_STOP", 0x7192},
+ {"linux/telephony.h", "PHONE_PLAY_DEPTH", 0x7193},
+ {"linux/telephony.h", "PHONE_PLAY_VOLUME", 0x7194},
+ {"linux/telephony.h", "PHONE_PLAY_LEVEL", 0x7195},
+ {"linux/telephony.h", "PHONE_DTMF_READY", 0x7196},
+ {"linux/telephony.h", "PHONE_GET_DTMF", 0x7197},
+ {"linux/telephony.h", "PHONE_GET_DTMF_ASCII", 0x7198},
+ {"linux/telephony.h", "PHONE_DTMF_OOB", 0x7199},
+ {"linux/telephony.h", "PHONE_EXCEPTION", 0x719a},
+ {"linux/telephony.h", "PHONE_PLAY_TONE", 0x719b},
+ {"linux/telephony.h", "PHONE_SET_TONE_ON_TIME", 0x719c},
+ {"linux/telephony.h", "PHONE_SET_TONE_OFF_TIME", 0x719d},
+ {"linux/telephony.h", "PHONE_GET_TONE_ON_TIME", 0x719e},
+ {"linux/telephony.h", "PHONE_GET_TONE_OFF_TIME", 0x719f},
+ {"linux/telephony.h", "PHONE_GET_TONE_STATE", 0x71a0},
+ {"linux/telephony.h", "PHONE_BUSY", 0x71a1},
+ {"linux/telephony.h", "PHONE_RINGBACK", 0x71a2},
+ {"linux/telephony.h", "PHONE_DIALTONE", 0x71a3},
+ {"linux/telephony.h", "PHONE_CPT_STOP", 0x71a4},
+ {"linux/telephony.h", "PHONE_PSTN_SET_STATE", 0x71a4},
+ {"linux/telephony.h", "PHONE_PSTN_GET_STATE", 0x71a5},
+ {"linux/telephony.h", "PHONE_WINK_DURATION", 0x71a6},
+ {"linux/telephony.h", "PHONE_QUERY_CODEC", 0x71a7},
+ {"linux/telephony.h", "PHONE_PSTN_LINETEST", 0x71a8},
+ {"linux/telephony.h", "PHONE_VAD", 0x71a9},
+ {"linux/telephony.h", "PHONE_WINK", 0x71aa},
+ {"linux/ixjuser.h", "IXJCTL_DSP_RESET", 0x71c0},
+ {"linux/ixjuser.h", "IXJCTL_CARDTYPE", 0x71c1},
+ {"linux/ixjuser.h", "IXJCTL_SERIAL", 0x71c2},
+ {"linux/ixjuser.h", "IXJCTL_DSP_TYPE", 0x71c3},
+ {"linux/ixjuser.h", "IXJCTL_DSP_VERSION", 0x71c4},
+ {"linux/ixjuser.h", "IXJCTL_DSP_IDLE", 0x71c5},
+ {"linux/ixjuser.h", "IXJCTL_TESTRAM", 0x71c6},
+ {"linux/ixjuser.h", "IXJCTL_SET_FILTER", 0x71c7},
+ {"linux/ixjuser.h", "IXJCTL_GET_FILTER_HIST", 0x71c8},
+ {"linux/ixjuser.h", "IXJCTL_INIT_TONE", 0x71c9},
+ {"linux/ixjuser.h", "IXJCTL_TONE_CADENCE", 0x71ca},
+ {"linux/ixjuser.h", "IXJCTL_AEC_START", 0x71cb},
+ {"linux/ixjuser.h", "IXJCTL_AEC_STOP", 0x71cc},
+ {"linux/ixjuser.h", "IXJCTL_AEC_GET_LEVEL", 0x71cd},
+ {"linux/ixjuser.h", "IXJCTL_SET_LED", 0x71ce},
+ {"linux/ixjuser.h", "IXJCTL_MIXER", 0x71cf},
+ {"linux/ixjuser.h", "IXJCTL_DAA_COEFF_SET", 0x71d0},
+ {"linux/ixjuser.h", "IXJCTL_PORT", 0x71d1},
+ {"linux/ixjuser.h", "IXJCTL_DAA_AGAIN", 0x71d2},
+ {"linux/ixjuser.h", "IXJCTL_PSTN_LINETEST", 0x71d3},
+ {"linux/ixjuser.h", "IXJCTL_CID", 0x71d4},
+ {"linux/ixjuser.h", "IXJCTL_POTS_PSTN", 0x71d5},
+ {"linux/ixjuser.h", "IXJCTL_FILTER_CADENCE", 0x71d6},
+ {"linux/ixjuser.h", "IXJCTL_PLAY_CID", 0x71d7},
+ {"linux/ixjuser.h", "IXJCTL_VMWI", 0x71d8},
+ {"linux/ixjuser.h", "IXJCTL_CIDCW", 0x71d9},
+ {"linux/ixjuser.h", "IXJCTL_VERSION", 0x71da},
+ {"linux/telephony.h", "PHONE_REC_VOLUME_LINEAR", 0x71db},
+ {"linux/telephony.h", "PHONE_PLAY_VOLUME_LINEAR", 0x71dc},
+ {"linux/ixjuser.h", "IXJCTL_SET_FILTER_RAW", 0x71dd},
+ {"linux/ixjuser.h", "IXJCTL_HZ", 0x71e0},
+ {"linux/ixjuser.h", "IXJCTL_RATE", 0x71e1},
+ {"linux/ixjuser.h", "IXJCTL_FRAMES_READ", 0x71e2},
+ {"linux/ixjuser.h", "IXJCTL_FRAMES_WRITTEN", 0x71e3},
+ {"linux/ixjuser.h", "IXJCTL_READ_WAIT", 0x71e4},
+ {"linux/ixjuser.h", "IXJCTL_WRITE_WAIT", 0x71e5},
+ {"linux/ixjuser.h", "IXJCTL_DRYBUFFER_READ", 0x71e6},
+ {"linux/ixjuser.h", "IXJCTL_DRYBUFFER_CLEAR", 0x71e7},
+ {"linux/ixjuser.h", "IXJCTL_DTMF_PRESCALE", 0x71e8},
+ {"linux/ixjuser.h", "IXJCTL_SIGCTL", 0x71e9},
+ {"linux/ixjuser.h", "IXJCTL_SC_RXG", 0x71ea},
+ {"linux/ixjuser.h", "IXJCTL_SC_TXG", 0x71eb},
+ {"linux/ixjuser.h", "IXJCTL_INTERCOM_START", 0x71fd},
+ {"linux/ixjuser.h", "IXJCTL_INTERCOM_STOP", 0x71fe},
+ {"linux/msdos_fs.h", "VFAT_IOCTL_READDIR_BOTH", 0x7201},
+ {"linux/msdos_fs.h", "VFAT_IOCTL_READDIR_SHORT", 0x7202},
+ {"linux/cdk.h", "STL_BINTR", 0x7314},
+ {"linux/cdk.h", "STL_BSTART", 0x7315},
+ {"linux/cdk.h", "STL_BSTOP", 0x7316},
+ {"linux/cdk.h", "STL_BRESET", 0x7317},
+ {"linux/cdk.h", "STL_GETPFLAG", 0x7350},
+ {"linux/cdk.h", "STL_SETPFLAG", 0x7351},
+ {"linux/if_ppp.h", "PPPIOCGCHAN", 0x7437},
+ {"linux/if_ppp.h", "PPPIOCATTCHAN", 0x7438},
+ {"linux/if_ppp.h", "PPPIOCDISCONN", 0x7439},
+ {"linux/if_ppp.h", "PPPIOCCONNECT", 0x743a},
+ {"linux/if_ppp.h", "PPPIOCSMRRU", 0x743b},
+ {"linux/if_ppp.h", "PPPIOCDETACH", 0x743c},
+ {"linux/if_ppp.h", "PPPIOCATTACH", 0x743d},
+ {"linux/if_ppp.h", "PPPIOCNEWUNIT", 0x743e},
+ {"linux/if_ppp.h", "PPPIOCGIDLE", 0x743f},
+ {"linux/if_ppp.h", "PPPIOCSDEBUG", 0x7440},
+ {"linux/if_ppp.h", "PPPIOCGDEBUG", 0x7441},
+ {"linux/if_ppp.h", "PPPIOCSACTIVE", 0x7446},
+ {"linux/if_ppp.h", "PPPIOCSPASS", 0x7447},
+ {"linux/if_ppp.h", "PPPIOCSNPMODE", 0x744b},
+ {"linux/if_ppp.h", "PPPIOCGNPMODE", 0x744c},
+ {"linux/if_ppp.h", "PPPIOCSCOMPRESS", 0x744d},
+ {"linux/if_ppp.h", "PPPIOCXFERUNIT", 0x744e},
+ {"linux/if_ppp.h", "PPPIOCSXASYNCMAP", 0x744f},
+ {"linux/if_ppp.h", "PPPIOCGXASYNCMAP", 0x7450},
+ {"linux/if_ppp.h", "PPPIOCSMAXCID", 0x7451},
+ {"linux/if_ppp.h", "PPPIOCSMRU", 0x7452},
+ {"linux/if_ppp.h", "PPPIOCGMRU", 0x7453},
+ {"linux/if_ppp.h", "PPPIOCSRASYNCMAP", 0x7454},
+ {"linux/if_ppp.h", "PPPIOCGRASYNCMAP", 0x7455},
+ {"linux/if_ppp.h", "PPPIOCGUNIT", 0x7456},
+ {"linux/if_ppp.h", "PPPIOCSASYNCMAP", 0x7457},
+ {"linux/if_ppp.h", "PPPIOCGASYNCMAP", 0x7458},
+ {"linux/if_ppp.h", "PPPIOCSFLAGS", 0x7459},
+ {"linux/if_ppp.h", "PPPIOCGFLAGS", 0x745a},
+ {"linux/jffs.h", "JFFS_PRINT_HASH", 0x745a},
+ {"linux/jffs.h", "JFFS_PRINT_TREE", 0x745b},
+ {"linux/jffs.h", "JFFS_GET_STATUS", 0x745c},
+ {"linux/isdn_ppp.h", "PPPIOCGCALLINFO", 0x7480},
+ {"linux/isdn_ppp.h", "PPPIOCBUNDLE", 0x7481},
+ {"linux/isdn_ppp.h", "PPPIOCGMPFLAGS", 0x7482},
+ {"linux/isdn_ppp.h", "PPPIOCSMPFLAGS", 0x7483},
+ {"linux/isdn_ppp.h", "PPPIOCSMPMTU", 0x7484},
+ {"linux/isdn_ppp.h", "PPPIOCSMPMRU", 0x7485},
+ {"linux/isdn_ppp.h", "PPPIOCGCOMPRESSORS", 0x7486},
+ {"linux/isdn_ppp.h", "PPPIOCSCOMPRESSOR", 0x7487},
+ {"linux/isdn_ppp.h", "PPPIOCGIFNAME", 0x7488},
+ {"linux/toshiba.h", "TOSH_SMM", 0x7490},
+ {"linux/smb_fs.h", "SMB_IOC_GETMOUNTUID", 0x7501},
+ {"linux/smb_fs.h", "SMB_IOC_NEWCONN", 0x7502},
+ {"linux/smb_fs.h", "SMB_IOC_GETMOUNTUID32", 0x7503},
+ {"linux/sonypi.h", "SONYPI_IOCGBRT", 0x7600},
+ {"linux/sonypi.h", "SONYPI_IOCSBRT", 0x7600},
+ {"linux/ext2_fs.h", "EXT2_IOC_GETVERSION", 0x7601},
+ {"linux/ext3_fs.h", "EXT3_IOC_GETVERSION_OLD", 0x7601},
+ {"linux/videodev.h", "VIDIOCGCAP", 0x7601},
+ {"linux/ext2_fs.h", "EXT2_IOC_SETVERSION", 0x7602},
+ {"linux/ext3_fs.h", "EXT3_IOC_SETVERSION_OLD", 0x7602},
+ {"linux/sonypi.h", "SONYPI_IOCGBAT1CAP", 0x7602},
+ {"linux/videodev.h", "VIDIOCGCHAN", 0x7602},
+ {"linux/sonypi.h", "SONYPI_IOCGBAT1REM", 0x7603},
+ {"linux/videodev.h", "VIDIOCSCHAN", 0x7603},
+ {"linux/sonypi.h", "SONYPI_IOCGBAT2CAP", 0x7604},
+ {"linux/videodev.h", "VIDIOCGTUNER", 0x7604},
+ {"linux/sonypi.h", "SONYPI_IOCGBAT2REM", 0x7605},
+ {"linux/videodev.h", "VIDIOCSTUNER", 0x7605},
+ {"linux/videodev.h", "VIDIOCGPICT", 0x7606},
+ {"linux/sonypi.h", "SONYPI_IOCGBATFLAGS", 0x7607},
+ {"linux/videodev.h", "VIDIOCSPICT", 0x7607},
+ {"linux/sonypi.h", "SONYPI_IOCGBLUE", 0x7608},
+ {"linux/videodev.h", "VIDIOCCAPTURE", 0x7608},
+ {"linux/sonypi.h", "SONYPI_IOCSBLUE", 0x7609},
+ {"linux/videodev.h", "VIDIOCGWIN", 0x7609},
+ {"linux/videodev.h", "VIDIOCSWIN", 0x760a},
+ {"linux/videodev.h", "VIDIOCGFBUF", 0x760b},
+ {"linux/videodev.h", "VIDIOCSFBUF", 0x760c},
+ {"linux/videodev.h", "VIDIOCKEY", 0x760d},
+ {"linux/videodev.h", "VIDIOCGFREQ", 0x760e},
+ {"linux/videodev.h", "VIDIOCSFREQ", 0x760f},
+ {"linux/videodev.h", "VIDIOCGAUDIO", 0x7610},
+ {"linux/videodev.h", "VIDIOCSAUDIO", 0x7611},
+ {"linux/videodev.h", "VIDIOCSYNC", 0x7612},
+ {"linux/videodev.h", "VIDIOCMCAPTURE", 0x7613},
+ {"linux/videodev.h", "VIDIOCGMBUF", 0x7614},
+ {"linux/videodev.h", "VIDIOCGUNIT", 0x7615},
+ {"linux/videodev.h", "VIDIOCGCAPTURE", 0x7616},
+ {"linux/videodev.h", "VIDIOCSCAPTURE", 0x7617},
+ {"linux/videodev.h", "VIDIOCSPLAYMODE", 0x7618},
+ {"linux/videodev.h", "VIDIOCSWRITEMODE", 0x7619},
+ {"linux/videodev.h", "VIDIOCGPLAYINFO", 0x761a},
+ {"linux/videodev.h", "VIDIOCSMICROCODE", 0x761b},
+ {"linux/videodev.h", "VIDIOCGVBIFMT", 0x761c},
+ {"linux/videodev.h", "VIDIOCSVBIFMT", 0x761d},
+ {"linux/meye.h", "MEYEIOC_G_PARAMS", 0x76c0},
+ {"linux/meye.h", "MEYEIOC_S_PARAMS", 0x76c1},
+ {"linux/meye.h", "MEYEIOC_QBUF_CAPT", 0x76c2},
+ {"linux/meye.h", "MEYEIOC_SYNC", 0x76c3},
+ {"linux/meye.h", "MEYEIOC_STILLCAPT", 0x76c4},
+ {"linux/meye.h", "MEYEIOC_STILLJCAPT", 0x76c5},
+ {"linux/dn.h", "SIOCSNETADDR", 0x89e0},
+ {"linux/dn.h", "OSIOCSNETADDR", 0x89e0},
+ {"linux/dn.h", "SIOCGNETADDR", 0x89e1},
+ {"linux/dn.h", "OSIOCGNETADDR", 0x89e1},
+ {"linux/auto_fs.h", "AUTOFS_IOC_READY", 0x9360},
+ {"linux/auto_fs.h", "AUTOFS_IOC_FAIL", 0x9361},
+ {"linux/auto_fs.h", "AUTOFS_IOC_CATATONIC", 0x9362},
+ {"linux/auto_fs.h", "AUTOFS_IOC_PROTOVER", 0x9363},
+ {"linux/auto_fs.h", "AUTOFS_IOC_SETTIMEOUT", 0x9364},
+ {"linux/auto_fs.h", "AUTOFS_IOC_EXPIRE", 0x9365},
+ {"linux/auto_fs4.h", "AUTOFS_IOC_EXPIRE_MULTI", 0x9366},
+ {"linux/nbd.h", "NBD_SET_SOCK", 0xab00},
+ {"linux/nbd.h", "NBD_SET_BLKSIZE", 0xab01},
+ {"linux/nbd.h", "NBD_SET_SIZE", 0xab02},
+ {"linux/nbd.h", "NBD_DO_IT", 0xab03},
+ {"linux/nbd.h", "NBD_CLEAR_SOCK", 0xab04},
+ {"linux/nbd.h", "NBD_CLEAR_QUE", 0xab05},
+ {"linux/nbd.h", "NBD_PRINT_DEBUG", 0xab06},
+ {"linux/nbd.h", "NBD_SET_SIZE_BLOCKS", 0xab07},
+ {"linux/nbd.h", "NBD_DISCONNECT", 0xab08},
+ {"linux/raw.h", "RAW_SETBIND", 0xac00},
+ {"linux/raw.h", "RAW_GETBIND", 0xac01},
+ {"linux/if_pppox.h", "PPPOEIOCSFWD", 0xb100},
+ {"linux/if_pppox.h", "PPPOEIOCDFWD", 0xb101},
+ {"linux/reiserfs_fs.h", "REISERFS_IOC_UNPACK", 0xcd01},
+ {"linux/lvm.h", "VG_CREATE_OLD", 0xfe00},
+ {"linux/lvm.h", "VG_REMOVE", 0xfe01},
+ {"linux/lvm.h", "VG_EXTEND", 0xfe03},
+ {"linux/lvm.h", "VG_REDUCE", 0xfe04},
+ {"linux/lvm.h", "VG_STATUS", 0xfe05},
+ {"linux/lvm.h", "VG_STATUS_GET_COUNT", 0xfe06},
+ {"linux/lvm.h", "VG_STATUS_GET_NAMELIST", 0xfe07},
+ {"linux/lvm.h", "VG_SET_EXTENDABLE", 0xfe08},
+ {"linux/lvm.h", "VG_RENAME", 0xfe09},
+ {"linux/lvm.h", "VG_CREATE", 0xfe0a},
+ {"linux/lvm.h", "LV_CREATE", 0xfe20},
+ {"linux/lvm.h", "LV_REMOVE", 0xfe21},
+ {"linux/lvm.h", "LV_ACTIVATE", 0xfe22},
+ {"linux/lvm.h", "LV_DEACTIVATE", 0xfe23},
+ {"linux/lvm.h", "LV_EXTEND", 0xfe24},
+ {"linux/lvm.h", "LV_REDUCE", 0xfe25},
+ {"linux/lvm.h", "LV_STATUS_BYNAME", 0xfe26},
+ {"linux/lvm.h", "LV_STATUS_BYINDEX", 0xfe27},
+ {"linux/lvm.h", "LV_SET_ACCESS", 0xfe28},
+ {"linux/lvm.h", "LV_SET_ALLOCATION", 0xfe29},
+ {"linux/lvm.h", "LV_SET_STATUS", 0xfe2a},
+ {"linux/lvm.h", "LE_REMAP", 0xfe2b},
+ {"linux/lvm.h", "LV_SNAPSHOT_USE_RATE", 0xfe2c},
+ {"linux/lvm.h", "LV_STATUS_BYDEV", 0xfe2e},
+ {"linux/lvm.h", "LV_RENAME", 0xfe2f},
+ {"linux/lvm.h", "LV_BMAP", 0xfe30},
+ {"linux/lvm.h", "PV_STATUS", 0xfe40},
+ {"linux/lvm.h", "PV_CHANGE", 0xfe41},
+ {"linux/lvm.h", "PV_FLUSH", 0xfe42},
+ {"linux/lvm.h", "PE_LOCK_UNLOCK", 0xfe50},
+ {"linux/lvm.h", "LVM_GET_IOP_VERSION", 0xfe98},
+ {"linux/lvm.h", "LVM_RESET", 0xfe99},
+ {"linux/lvm.h", "LVM_LOCK_LVM", 0xff00},
diff --git a/strace/linux/sparc64/ioctlent1.h b/strace/linux/sparc64/ioctlent1.h
new file mode 100644
index 0000000..5d536cf
--- /dev/null
+++ b/strace/linux/sparc64/ioctlent1.h
@@ -0,0 +1 @@
+#include "../svr4/ioctlent.h"
diff --git a/strace/linux/sparc64/ioctlent2.h b/strace/linux/sparc64/ioctlent2.h
new file mode 100644
index 0000000..c1d6b8a
--- /dev/null
+++ b/strace/linux/sparc64/ioctlent2.h
@@ -0,0 +1,838 @@
+ {"linux/fs.h", "FIBMAP", 0x1},
+ {"linux/fs.h", "FIGETBSZ", 0x2},
+ {"linux/fd.h", "FDGETPRM", 0x204},
+ {"linux/fd.h", "FDGETMAXERRS", 0x20e},
+ {"linux/fd.h", "FDGETDRVTYP", 0x20f},
+ {"linux/fd.h", "FDGETDRVPRM", 0x211},
+ {"linux/fd.h", "FDGETDRVSTAT", 0x212},
+ {"linux/fd.h", "FDPOLLDRVSTAT", 0x213},
+ {"linux/fd.h", "FDGETFDCSTAT", 0x215},
+ {"linux/fd.h", "FDWERRORGET", 0x217},
+ {"linux/fd.h", "FDCLRPRM", 0x241},
+ {"linux/fd.h", "FDSETPRM", 0x242},
+ {"linux/fd.h", "FDDEFPRM", 0x243},
+ {"linux/fd.h", "FDMSGON", 0x245},
+ {"linux/fd.h", "FDMSGOFF", 0x246},
+ {"linux/fd.h", "FDFMTBEG", 0x247},
+ {"linux/fd.h", "FDFMTTRK", 0x248},
+ {"linux/fd.h", "FDFMTEND", 0x249},
+ {"linux/fd.h", "FDSETEMSGTRESH", 0x24a},
+ {"linux/fd.h", "FDFLUSH", 0x24b},
+ {"linux/fd.h", "FDSETMAXERRS", 0x24c},
+ {"linux/fd.h", "FDRESET", 0x254},
+ {"linux/fd.h", "FDWERRORCLR", 0x256},
+ {"linux/fd.h", "FDRAWCMD", 0x258},
+ {"linux/fd.h", "FDTWADDLE", 0x259},
+ {"linux/fd.h", "FDEJECT", 0x25a},
+ {"linux/fd.h", "FDSETDRVPRM", 0x290},
+ {"linux/umsdos_fs.h", "UMSDOS_READDIR_DOS", 0x4d2},
+ {"linux/umsdos_fs.h", "UMSDOS_UNLINK_DOS", 0x4d3},
+ {"linux/umsdos_fs.h", "UMSDOS_RMDIR_DOS", 0x4d4},
+ {"linux/umsdos_fs.h", "UMSDOS_STAT_DOS", 0x4d5},
+ {"linux/umsdos_fs.h", "UMSDOS_CREAT_EMD", 0x4d6},
+ {"linux/umsdos_fs.h", "UMSDOS_UNLINK_EMD", 0x4d7},
+ {"linux/umsdos_fs.h", "UMSDOS_READDIR_EMD", 0x4d8},
+ {"linux/umsdos_fs.h", "UMSDOS_GETVERSION", 0x4d9},
+ {"linux/umsdos_fs.h", "UMSDOS_INIT_EMD", 0x4da},
+ {"linux/umsdos_fs.h", "UMSDOS_DOS_SETUP", 0x4db},
+ {"linux/umsdos_fs.h", "UMSDOS_RENAME_DOS", 0x4dc},
+ {"linux/fs.h", "BLKROSET", 0x125d},
+ {"linux/fs.h", "BLKROGET", 0x125e},
+ {"linux/fs.h", "BLKRRPART", 0x125f},
+ {"linux/fs.h", "BLKGETSIZE", 0x1260},
+ {"linux/fs.h", "BLKFLSBUF", 0x1261},
+ {"linux/fs.h", "BLKRASET", 0x1262},
+ {"linux/fs.h", "BLKRAGET", 0x1263},
+ {"linux/fs.h", "BLKFRASET", 0x1264},
+ {"linux/fs.h", "BLKFRAGET", 0x1265},
+ {"linux/fs.h", "BLKSECTSET", 0x1266},
+ {"linux/fs.h", "BLKSECTGET", 0x1267},
+ {"linux/fs.h", "BLKSSZGET", 0x1268},
+ {"linux/blkpg.h", "BLKPG", 0x1269},
+ {"linux/fs.h", "BLKPG", 0x1269},
+ {"linux/elevator.h", "BLKELVGET", 0x126a},
+ {"linux/fs.h", "BLKELVGET", 0x126a},
+ {"linux/elevator.h", "BLKELVSET", 0x126b},
+ {"linux/fs.h", "BLKELVSET", 0x126b},
+ {"linux/fs.h", "BLKBSZGET", 0x1270},
+ {"linux/fs.h", "BLKBSZSET", 0x1271},
+ {"linux/fs.h", "BLKGETSIZE64", 0x1272},
+ {"linux/agpgart.h", "AGPIOC_INFO", 0x4100},
+ {"linux/agpgart.h", "AGPIOC_ACQUIRE", 0x4101},
+ {"linux/apm_bios.h", "APM_IOC_STANDBY", 0x4101},
+ {"linux/agpgart.h", "AGPIOC_RELEASE", 0x4102},
+ {"linux/apm_bios.h", "APM_IOC_SUSPEND", 0x4102},
+ {"linux/agpgart.h", "AGPIOC_SETUP", 0x4103},
+ {"linux/agpgart.h", "AGPIOC_RESERVE", 0x4104},
+ {"linux/agpgart.h", "AGPIOC_PROTECT", 0x4105},
+ {"linux/agpgart.h", "AGPIOC_ALLOCATE", 0x4106},
+ {"linux/agpgart.h", "AGPIOC_DEALLOCATE", 0x4107},
+ {"linux/agpgart.h", "AGPIOC_BIND", 0x4108},
+ {"linux/agpgart.h", "AGPIOC_UNBIND", 0x4109},
+ {"linux/pmu.h", "PMU_IOC_SLEEP", 0x4200},
+ {"linux/cciss_ioctl.h", "CCISS_GETPCIINFO", 0x4201},
+ {"linux/pmu.h", "PMU_IOC_GET_BACKLIGHT", 0x4201},
+ {"linux/cciss_ioctl.h", "CCISS_GETINTINFO", 0x4202},
+ {"linux/pmu.h", "PMU_IOC_SET_BACKLIGHT", 0x4202},
+ {"linux/cciss_ioctl.h", "CCISS_SETINTINFO", 0x4203},
+ {"linux/pmu.h", "PMU_IOC_GET_MODEL", 0x4203},
+ {"linux/cciss_ioctl.h", "CCISS_GETNODENAME", 0x4204},
+ {"linux/pmu.h", "PMU_IOC_HAS_ADB", 0x4204},
+ {"linux/cciss_ioctl.h", "CCISS_SETNODENAME", 0x4205},
+ {"linux/pmu.h", "PMU_IOC_CAN_SLEEP", 0x4205},
+ {"linux/cciss_ioctl.h", "CCISS_GETHEARTBEAT", 0x4206},
+ {"linux/cciss_ioctl.h", "CCISS_GETBUSTYPES", 0x4207},
+ {"linux/cciss_ioctl.h", "CCISS_GETFIRMVER", 0x4208},
+ {"linux/cciss_ioctl.h", "CCISS_GETDRIVVER", 0x4209},
+ {"linux/cciss_ioctl.h", "CCISS_REVALIDVOLS", 0x420a},
+ {"linux/cciss_ioctl.h", "CCISS_PASSTHRU", 0x420b},
+ {"linux/soundcard.h", "SNDCTL_COPR_RESET", 0x4300},
+ {"linux/capi.h", "CAPI_REGISTER", 0x4301},
+ {"linux/soundcard.h", "SNDCTL_COPR_LOAD", 0x4301},
+ {"linux/soundcard.h", "SNDCTL_COPR_RDATA", 0x4302},
+ {"linux/soundcard.h", "SNDCTL_COPR_RCODE", 0x4303},
+ {"linux/soundcard.h", "SNDCTL_COPR_WDATA", 0x4304},
+ {"linux/soundcard.h", "SNDCTL_COPR_WCODE", 0x4305},
+ {"linux/capi.h", "CAPI_GET_MANUFACTURER", 0x4306},
+ {"linux/soundcard.h", "SNDCTL_COPR_RUN", 0x4306},
+ {"linux/capi.h", "CAPI_GET_VERSION", 0x4307},
+ {"linux/soundcard.h", "SNDCTL_COPR_HALT", 0x4307},
+ {"linux/capi.h", "CAPI_GET_SERIAL", 0x4308},
+ {"linux/soundcard.h", "SNDCTL_COPR_SENDMSG", 0x4308},
+ {"linux/capi.h", "CAPI_GET_PROFILE", 0x4309},
+ {"linux/soundcard.h", "SNDCTL_COPR_RCVMSG", 0x4309},
+ {"linux/capi.h", "CAPI_MANUFACTURER_CMD", 0x4320},
+ {"linux/capi.h", "CAPI_GET_ERRCODE", 0x4321},
+ {"linux/capi.h", "CAPI_INSTALLED", 0x4322},
+ {"linux/capi.h", "CAPI_GET_FLAGS", 0x4323},
+ {"linux/capi.h", "CAPI_SET_FLAGS", 0x4324},
+ {"linux/capi.h", "CAPI_CLR_FLAGS", 0x4325},
+ {"linux/capi.h", "CAPI_NCCI_OPENCOUNT", 0x4326},
+ {"linux/capi.h", "CAPI_NCCI_GETUNIT", 0x4327},
+ {"linux/input.h", "EVIOCGVERSION", 0x4501},
+ {"linux/input.h", "EVIOCGID", 0x4502},
+ {"linux/input.h", "EVIOCGREP", 0x4503},
+ {"linux/input.h", "EVIOCSREP", 0x4503},
+ {"linux/input.h", "EVIOCGKEYCODE", 0x4504},
+ {"linux/input.h", "EVIOCSKEYCODE", 0x4504},
+ {"linux/input.h", "EVIOCGKEY", 0x4505},
+ {"linux/input.h", "EVIOCGBUS", 0x4507},
+ {"linux/input.h", "EVIOCRMFF", 0x4581},
+ {"linux/input.h", "EVIOCSGAIN", 0x4582},
+ {"linux/input.h", "EVIOCSAUTOCENTER", 0x4583},
+ {"linux/input.h", "EVIOCGEFFECTS", 0x4584},
+ {"linux/fb.h", "FBIOGET_VBLANK", 0x4612},
+ {"linux/hiddev.h", "HIDIOCGVERSION", 0x4801},
+ {"linux/hiddev.h", "HIDIOCAPPLICATION", 0x4802},
+ {"linux/hiddev.h", "HIDIOCGDEVINFO", 0x4803},
+ {"linux/hiddev.h", "HIDIOCGSTRING", 0x4804},
+ {"linux/hiddev.h", "HIDIOCINITREPORT", 0x4805},
+ {"linux/hiddev.h", "HIDIOCGREPORT", 0x4807},
+ {"linux/hiddev.h", "HIDIOCSREPORT", 0x4808},
+ {"linux/hiddev.h", "HIDIOCGREPORTINFO", 0x4809},
+ {"linux/hiddev.h", "HIDIOCGFIELDINFO", 0x480a},
+ {"linux/hiddev.h", "HIDIOCGUSAGE", 0x480b},
+ {"linux/hiddev.h", "HIDIOCSUSAGE", 0x480c},
+ {"linux/hiddev.h", "HIDIOCGUCODE", 0x480d},
+ {"linux/isdn.h", "IIOCNETAIF", 0x4901},
+ {"linux/isdn.h", "IIOCNETDIF", 0x4902},
+ {"linux/isdn.h", "IIOCNETSCF", 0x4903},
+ {"linux/isdn.h", "IIOCNETGCF", 0x4904},
+ {"linux/isdn.h", "IIOCNETANM", 0x4905},
+ {"linux/isdn.h", "IIOCNETDNM", 0x4906},
+ {"linux/isdn.h", "IIOCNETGNM", 0x4907},
+ {"linux/isdn.h", "IIOCGETSET", 0x4908},
+ {"linux/isdn.h", "IIOCSETSET", 0x4909},
+ {"linux/isdn.h", "IIOCSETVER", 0x490a},
+ {"linux/isdn.h", "IIOCNETHUP", 0x490b},
+ {"linux/isdn.h", "IIOCSETGST", 0x490c},
+ {"linux/isdn.h", "IIOCSETBRJ", 0x490d},
+ {"linux/isdn.h", "IIOCSIGPRF", 0x490e},
+ {"linux/isdn.h", "IIOCGETPRF", 0x490f},
+ {"linux/isdn.h", "IIOCSETPRF", 0x4910},
+ {"linux/isdn.h", "IIOCGETMAP", 0x4911},
+ {"linux/isdn.h", "IIOCSETMAP", 0x4912},
+ {"linux/isdn.h", "IIOCNETASL", 0x4913},
+ {"linux/isdn.h", "IIOCNETDIL", 0x4914},
+ {"linux/isdn.h", "IIOCGETCPS", 0x4915},
+ {"linux/isdn.h", "IIOCGETDVR", 0x4916},
+ {"linux/isdn.h", "IIOCNETLCR", 0x4917},
+ {"linux/isdn.h", "IIOCNETDWRSET", 0x4918},
+ {"linux/isdn.h", "IIOCNETALN", 0x4920},
+ {"linux/isdn.h", "IIOCNETDLN", 0x4921},
+ {"linux/isdn.h", "IIOCNETGPN", 0x4922},
+ {"linux/isdn.h", "IIOCDBGVAR", 0x497f},
+ {"linux/isdn.h", "IIOCDRVCTL", 0x4980},
+ {"linux/soundcard.h", "SOUND_MIXER_INFO", 0x4d65},
+ {"linux/soundcard.h", "SOUND_OLD_MIXER_INFO", 0x4d65},
+ {"linux/soundcard.h", "SOUND_MIXER_ACCESS", 0x4d66},
+ {"linux/soundcard.h", "SOUND_MIXER_AGC", 0x4d67},
+ {"linux/soundcard.h", "SOUND_MIXER_3DSE", 0x4d68},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE1", 0x4d6f},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE2", 0x4d70},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE3", 0x4d71},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE4", 0x4d72},
+ {"linux/soundcard.h", "SOUND_MIXER_PRIVATE5", 0x4d73},
+ {"linux/soundcard.h", "SOUND_MIXER_GETLEVELS", 0x4d74},
+ {"linux/soundcard.h", "SOUND_MIXER_SETLEVELS", 0x4d75},
+ {"linux/soundcard.h", "OSS_GETVERSION", 0x4d76},
+ {"linux/soundcard.h", "SNDCTL_DSP_RESET", 0x5000},
+ {"linux/soundcard.h", "SNDCTL_DSP_SYNC", 0x5001},
+ {"linux/soundcard.h", "SNDCTL_DSP_SPEED", 0x5002},
+ {"linux/soundcard.h", "SOUND_PCM_READ_RATE", 0x5002},
+ {"linux/soundcard.h", "SNDCTL_DSP_STEREO", 0x5003},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETBLKSIZE", 0x5004},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETFMT", 0x5005},
+ {"linux/soundcard.h", "SOUND_PCM_READ_BITS", 0x5005},
+ {"linux/soundcard.h", "SNDCTL_DSP_CHANNELS", 0x5006},
+ {"linux/soundcard.h", "SOUND_PCM_READ_CHANNELS", 0x5006},
+ {"linux/soundcard.h", "SOUND_PCM_WRITE_FILTER", 0x5007},
+ {"linux/soundcard.h", "SOUND_PCM_READ_FILTER", 0x5007},
+ {"linux/soundcard.h", "SNDCTL_DSP_POST", 0x5008},
+ {"linux/soundcard.h", "SNDCTL_DSP_SUBDIVIDE", 0x5009},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETFRAGMENT", 0x500a},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETFMTS", 0x500b},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETOSPACE", 0x500c},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETISPACE", 0x500d},
+ {"linux/soundcard.h", "SNDCTL_DSP_NONBLOCK", 0x500e},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETCAPS", 0x500f},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETTRIGGER", 0x5010},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETTRIGGER", 0x5010},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETIPTR", 0x5011},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETOPTR", 0x5012},
+ {"linux/soundcard.h", "SNDCTL_DSP_MAPINBUF", 0x5013},
+ {"linux/soundcard.h", "SNDCTL_DSP_MAPOUTBUF", 0x5014},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETSYNCRO", 0x5015},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETDUPLEX", 0x5016},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETODELAY", 0x5017},
+ {"linux/soundcard.h", "SNDCTL_DSP_PROFILE", 0x5017},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETCHANNELMASK", 0x5040},
+ {"linux/soundcard.h", "SNDCTL_DSP_BIND_CHANNEL", 0x5041},
+ {"linux/soundcard.h", "SNDCTL_DSP_SETSPDIF", 0x5042},
+ {"linux/soundcard.h", "SNDCTL_DSP_GETSPDIF", 0x5043},
+ {"linux/soundcard.h", "SNDCTL_SEQ_RESET", 0x5100},
+ {"linux/soundcard.h", "SNDCTL_SEQ_SYNC", 0x5101},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_INFO", 0x5102},
+ {"linux/soundcard.h", "SNDCTL_SEQ_CTRLRATE", 0x5103},
+ {"linux/soundcard.h", "SNDCTL_SEQ_GETOUTCOUNT", 0x5104},
+ {"linux/soundcard.h", "SNDCTL_SEQ_GETINCOUNT", 0x5105},
+ {"linux/soundcard.h", "SNDCTL_SEQ_PERCMODE", 0x5106},
+ {"linux/soundcard.h", "SNDCTL_FM_LOAD_INSTR", 0x5107},
+ {"linux/soundcard.h", "SNDCTL_SEQ_TESTMIDI", 0x5108},
+ {"linux/soundcard.h", "SNDCTL_SEQ_RESETSAMPLES", 0x5109},
+ {"linux/soundcard.h", "SNDCTL_SEQ_NRSYNTHS", 0x510a},
+ {"linux/soundcard.h", "SNDCTL_SEQ_NRMIDIS", 0x510b},
+ {"linux/soundcard.h", "SNDCTL_MIDI_INFO", 0x510c},
+ {"linux/soundcard.h", "SNDCTL_SEQ_THRESHOLD", 0x510d},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_MEMAVL", 0x510e},
+ {"linux/soundcard.h", "SNDCTL_FM_4OP_ENABLE", 0x510f},
+ {"linux/soundcard.h", "SNDCTL_SEQ_PANIC", 0x5111},
+ {"linux/soundcard.h", "SNDCTL_SEQ_OUTOFBAND", 0x5112},
+ {"linux/soundcard.h", "SNDCTL_SEQ_GETTIME", 0x5113},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_ID", 0x5114},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_CONTROL", 0x5115},
+ {"linux/soundcard.h", "SNDCTL_SYNTH_REMOVESAMPLE", 0x5116},
+ {"linux/random.h", "RNDGETENTCNT", 0x5200},
+ {"linux/random.h", "RNDADDTOENTCNT", 0x5201},
+ {"linux/random.h", "RNDGETPOOL", 0x5202},
+ {"linux/random.h", "RNDADDENTROPY", 0x5203},
+ {"linux/random.h", "RNDZAPENTCNT", 0x5204},
+ {"linux/random.h", "RNDCLEARPOOL", 0x5206},
+ {"asm/ioctls.h", "TCGETS", 0x5401},
+ {"linux/soundcard.h", "SNDCTL_TMR_TIMEBASE", 0x5401},
+ {"asm/ioctls.h", "TCSETS", 0x5402},
+ {"linux/soundcard.h", "SNDCTL_TMR_START", 0x5402},
+ {"asm/ioctls.h", "TCSETSW", 0x5403},
+ {"linux/soundcard.h", "SNDCTL_TMR_STOP", 0x5403},
+ {"asm/ioctls.h", "TCSETSF", 0x5404},
+ {"linux/soundcard.h", "SNDCTL_TMR_CONTINUE", 0x5404},
+ {"asm/ioctls.h", "TCGETA", 0x5405},
+ {"linux/soundcard.h", "SNDCTL_TMR_TEMPO", 0x5405},
+ {"asm/ioctls.h", "TCSETA", 0x5406},
+ {"linux/soundcard.h", "SNDCTL_TMR_SOURCE", 0x5406},
+ {"asm/ioctls.h", "TCSETAW", 0x5407},
+ {"linux/soundcard.h", "SNDCTL_TMR_METRONOME", 0x5407},
+ {"asm/ioctls.h", "TCSETAF", 0x5408},
+ {"linux/soundcard.h", "SNDCTL_TMR_SELECT", 0x5408},
+ {"asm/ioctls.h", "TCSBRK", 0x5409},
+ {"asm/ioctls.h", "TCXONC", 0x540a},
+ {"asm/ioctls.h", "TCFLSH", 0x540b},
+ {"asm/ioctls.h", "TIOCEXCL", 0x540c},
+ {"asm/ioctls.h", "TIOCNXCL", 0x540d},
+ {"asm/ioctls.h", "TIOCSCTTY", 0x540e},
+ {"asm/ioctls.h", "TIOCGPGRP", 0x540f},
+ {"asm/ioctls.h", "TIOCSPGRP", 0x5410},
+ {"asm/ioctls.h", "TIOCOUTQ", 0x5411},
+ {"asm/ioctls.h", "TIOCSTI", 0x5412},
+ {"asm/ioctls.h", "TIOCGWINSZ", 0x5413},
+ {"asm/ioctls.h", "TIOCSWINSZ", 0x5414},
+ {"asm/ioctls.h", "TIOCMGET", 0x5415},
+ {"asm/ioctls.h", "TIOCMBIS", 0x5416},
+ {"asm/ioctls.h", "TIOCMBIC", 0x5417},
+ {"asm/ioctls.h", "TIOCMSET", 0x5418},
+ {"asm/ioctls.h", "TIOCGSOFTCAR", 0x5419},
+ {"asm/ioctls.h", "TIOCSSOFTCAR", 0x541a},
+ {"asm/ioctls.h", "FIONREAD", 0x541b},
+ {"asm/ioctls.h", "TIOCLINUX", 0x541c},
+ {"asm/ioctls.h", "TIOCCONS", 0x541d},
+ {"asm/ioctls.h", "TIOCGSERIAL", 0x541e},
+ {"asm/ioctls.h", "TIOCSSERIAL", 0x541f},
+ {"asm/ioctls.h", "TIOCPKT", 0x5420},
+ {"asm/ioctls.h", "FIONBIO", 0x5421},
+ {"asm/ioctls.h", "TIOCNOTTY", 0x5422},
+ {"asm/ioctls.h", "TIOCSETD", 0x5423},
+ {"asm/ioctls.h", "TIOCGETD", 0x5424},
+ {"asm/ioctls.h", "TCSBRKP", 0x5425},
+ {"asm/ioctls.h", "TIOCTTYGSTRUCT", 0x5426},
+ {"asm/ioctls.h", "TIOCSBRK", 0x5427},
+ {"asm/ioctls.h", "TIOCCBRK", 0x5428},
+ {"asm/ioctls.h", "TIOCGSID", 0x5429},
+ {"asm/ioctls.h", "TIOCGPTN", 0x5430},
+ {"asm/ioctls.h", "TIOCSPTLCK", 0x5431},
+ {"asm/ioctls.h", "FIONCLEX", 0x5450},
+ {"asm/ioctls.h", "FIOCLEX", 0x5451},
+ {"asm/ioctls.h", "FIOASYNC", 0x5452},
+ {"asm/ioctls.h", "TIOCSERCONFIG", 0x5453},
+ {"asm/ioctls.h", "TIOCSERGWILD", 0x5454},
+ {"asm/ioctls.h", "TIOCSERSWILD", 0x5455},
+ {"asm/ioctls.h", "TIOCGLCKTRMIOS", 0x5456},
+ {"asm/ioctls.h", "TIOCSLCKTRMIOS", 0x5457},
+ {"asm/ioctls.h", "TIOCSERGSTRUCT", 0x5458},
+ {"asm/ioctls.h", "TIOCSERGETLSR", 0x5459},
+ {"asm/ioctls.h", "TIOCSERGETMULTI", 0x545a},
+ {"asm/ioctls.h", "TIOCSERSETMULTI", 0x545b},
+ {"asm/ioctls.h", "TIOCMIWAIT", 0x545c},
+ {"asm/ioctls.h", "TIOCGICOUNT", 0x545d},
+ {"asm/ioctls.h", "TIOCGHAYESESP", 0x545e},
+ {"asm/ioctls.h", "TIOCSHAYESESP", 0x545f},
+ {"linux/if_tun.h", "TUNSETNOCSUM", 0x54c8},
+ {"linux/if_tun.h", "TUNSETDEBUG", 0x54c9},
+ {"linux/if_tun.h", "TUNSETIFF", 0x54ca},
+ {"linux/if_tun.h", "TUNSETPERSIST", 0x54cb},
+ {"linux/if_tun.h", "TUNSETOWNER", 0x54cc},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CONTROL", 0x5500},
+ {"linux/usbdevice_fs.h", "USBDEVFS_BULK", 0x5502},
+ {"linux/usbdevice_fs.h", "USBDEVFS_RESETEP", 0x5503},
+ {"linux/usbdevice_fs.h", "USBDEVFS_SETINTERFACE", 0x5504},
+ {"linux/usbdevice_fs.h", "USBDEVFS_SETCONFIGURATION", 0x5505},
+ {"linux/usbdevice_fs.h", "USBDEVFS_GETDRIVER", 0x5508},
+ {"linux/usbdevice_fs.h", "USBDEVFS_SUBMITURB", 0x550a},
+ {"linux/usbdevice_fs.h", "USBDEVFS_DISCARDURB", 0x550b},
+ {"linux/usbdevice_fs.h", "USBDEVFS_REAPURB", 0x550c},
+ {"linux/usbdevice_fs.h", "USBDEVFS_REAPURBNDELAY", 0x550d},
+ {"linux/usbdevice_fs.h", "USBDEVFS_DISCSIGNAL", 0x550e},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CLAIMINTERFACE", 0x550f},
+ {"linux/usbdevice_fs.h", "USBDEVFS_RELEASEINTERFACE", 0x5510},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CONNECTINFO", 0x5511},
+ {"linux/usbdevice_fs.h", "USBDEVFS_IOCTL", 0x5512},
+ {"linux/usbdevice_fs.h", "USBDEVFS_HUB_PORTINFO", 0x5513},
+ {"linux/usbdevice_fs.h", "USBDEVFS_RESET", 0x5514},
+ {"linux/usbdevice_fs.h", "USBDEVFS_CLEAR_HALT", 0x5515},
+ {"linux/watchdog.h", "WDIOC_GETSUPPORT", 0x5700},
+ {"linux/watchdog.h", "WDIOC_GETSTATUS", 0x5701},
+ {"linux/watchdog.h", "WDIOC_GETBOOTSTATUS", 0x5702},
+ {"linux/watchdog.h", "WDIOC_GETTEMP", 0x5703},
+ {"linux/watchdog.h", "WDIOC_SETOPTIONS", 0x5704},
+ {"linux/watchdog.h", "WDIOC_KEEPALIVE", 0x5705},
+ {"linux/watchdog.h", "WDIOC_SETTIMEOUT", 0x5706},
+ {"linux/watchdog.h", "WDIOC_GETTIMEOUT", 0x5707},
+ {"linux/ite_gpio.h", "ITE_GPIO_IN", 0x5a00},
+ {"linux/ite_gpio.h", "ITE_GPIO_OUT", 0x5a01},
+ {"linux/ite_gpio.h", "ITE_GPIO_INT_CTRL", 0x5a02},
+ {"linux/ite_gpio.h", "ITE_GPIO_IN_STATUS", 0x5a03},
+ {"linux/ite_gpio.h", "ITE_GPIO_OUT_STATUS", 0x5a04},
+ {"linux/ite_gpio.h", "ITE_GPIO_GEN_CTRL", 0x5a05},
+ {"linux/ite_gpio.h", "ITE_GPIO_INT_WAIT", 0x5a06},
+ {"linux/sonet.h", "SONET_GETSTAT", 0x6110},
+ {"linux/sonet.h", "SONET_GETSTATZ", 0x6111},
+ {"linux/sonet.h", "SONET_SETDIAG", 0x6112},
+ {"linux/sonet.h", "SONET_CLRDIAG", 0x6113},
+ {"linux/sonet.h", "SONET_GETDIAG", 0x6114},
+ {"linux/sonet.h", "SONET_SETFRAMING", 0x6115},
+ {"linux/sonet.h", "SONET_GETFRAMING", 0x6116},
+ {"linux/sonet.h", "SONET_GETFRSENSE", 0x6117},
+ {"linux/atm_idt77105.h", "IDT77105_GETSTAT", 0x6132},
+ {"linux/atm_idt77105.h", "IDT77105_GETSTATZ", 0x6133},
+ {"linux/atmdev.h", "ATM_GETSTAT", 0x6150},
+ {"linux/atmdev.h", "ATM_GETSTATZ", 0x6151},
+ {"linux/atmdev.h", "ATM_GETLOOP", 0x6152},
+ {"linux/atmdev.h", "ATM_SETLOOP", 0x6153},
+ {"linux/atmdev.h", "ATM_QUERYLOOP", 0x6154},
+ {"linux/atm_eni.h", "ENI_MEMDUMP", 0x6160},
+ {"linux/atm_nicstar.h", "NS_GETPSTAT", 0x6161},
+ {"linux/atm_zatm.h", "ZATM_GETPOOL", 0x6161},
+ {"linux/atm_nicstar.h", "NS_SETBUFLEV", 0x6162},
+ {"linux/atm_zatm.h", "ZATM_GETPOOLZ", 0x6162},
+ {"linux/atm_nicstar.h", "NS_ADJBUFLEV", 0x6163},
+ {"linux/atm_zatm.h", "ZATM_SETPOOL", 0x6163},
+ {"linux/atm_zatm.h", "ZATM_GETTHIST", 0x6164},
+ {"linux/atm_eni.h", "ENI_SETMULT", 0x6167},
+ {"linux/atm_tcp.h", "SIOCSIFATMTCP", 0x6180},
+ {"linux/atmdev.h", "ATM_GETLINKRATE", 0x6181},
+ {"linux/atmdev.h", "ATM_GETNAMES", 0x6183},
+ {"linux/atmdev.h", "ATM_GETTYPE", 0x6184},
+ {"linux/atmdev.h", "ATM_GETESI", 0x6185},
+ {"linux/atmdev.h", "ATM_GETADDR", 0x6186},
+ {"linux/atmdev.h", "ATM_RSTADDR", 0x6187},
+ {"linux/atmdev.h", "ATM_ADDADDR", 0x6188},
+ {"linux/atmdev.h", "ATM_DELADDR", 0x6189},
+ {"linux/atmdev.h", "ATM_GETCIRANGE", 0x618a},
+ {"linux/atmdev.h", "ATM_SETCIRANGE", 0x618b},
+ {"linux/atmdev.h", "ATM_SETESI", 0x618c},
+ {"linux/atmdev.h", "ATM_SETESIF", 0x618d},
+ {"linux/atm_tcp.h", "ATMTCP_CREATE", 0x618e},
+ {"linux/atm_tcp.h", "ATMTCP_REMOVE", 0x618f},
+ {"linux/atmlec.h", "ATMLEC_CTRL", 0x61d0},
+ {"linux/atmlec.h", "ATMLEC_DATA", 0x61d1},
+ {"linux/atmlec.h", "ATMLEC_MCAST", 0x61d2},
+ {"linux/atmmpc.h", "ATMMPC_CTRL", 0x61d8},
+ {"linux/atmmpc.h", "ATMMPC_DATA", 0x61d9},
+ {"linux/atmclip.h", "SIOCMKCLIP", 0x61e0},
+ {"linux/atmarp.h", "ATMARPD_CTRL", 0x61e1},
+ {"linux/atmarp.h", "ATMARP_MKIP", 0x61e2},
+ {"linux/atmarp.h", "ATMARP_SETENTRY", 0x61e3},
+ {"linux/atmarp.h", "ATMARP_ENCAP", 0x61e5},
+ {"linux/atmsvc.h", "ATMSIGD_CTRL", 0x61f0},
+ {"linux/atmdev.h", "ATM_SETSC", 0x61f1},
+ {"linux/atmdev.h", "ATM_SETBACKEND", 0x61f2},
+ {"linux/coda.h", "CIOC_KERNEL_VERSION", 0x630a},
+ {"linux/comstats.h", "COM_GETPORTSTATS", 0x631e},
+ {"linux/comstats.h", "COM_CLRPORTSTATS", 0x631f},
+ {"linux/comstats.h", "COM_GETBRDSTATS", 0x6320},
+ {"linux/comstats.h", "COM_READPORT", 0x6328},
+ {"linux/comstats.h", "COM_READBOARD", 0x6329},
+ {"linux/comstats.h", "COM_READPANEL", 0x632a},
+ {"linux/devfs_fs.h", "DEVFSDIOC_GET_PROTO_REV", 0x6400},
+ {"linux/video_decoder.h", "DECODER_GET_CAPABILITIES", 0x6401},
+ {"linux/devfs_fs.h", "DEVFSDIOC_SET_EVENT_MASK", 0x6402},
+ {"linux/video_decoder.h", "DECODER_GET_STATUS", 0x6402},
+ {"linux/devfs_fs.h", "DEVFSDIOC_RELEASE_EVENT_QUEUE", 0x6403},
+ {"linux/video_decoder.h", "DECODER_SET_NORM", 0x6403},
+ {"linux/devfs_fs.h", "DEVFSDIOC_SET_DEBUG_MASK", 0x6404},
+ {"linux/video_decoder.h", "DECODER_SET_INPUT", 0x6404},
+ {"linux/video_decoder.h", "DECODER_SET_OUTPUT", 0x6405},
+ {"linux/video_decoder.h", "DECODER_ENABLE_OUTPUT", 0x6406},
+ {"linux/video_decoder.h", "DECODER_SET_PICTURE", 0x6407},
+ {"linux/video_decoder.h", "DECODER_DUMP", 0x64c0},
+ {"linux/video_encoder.h", "ENCODER_GET_CAPABILITIES", 0x6501},
+ {"linux/video_encoder.h", "ENCODER_SET_NORM", 0x6502},
+ {"linux/video_encoder.h", "ENCODER_SET_INPUT", 0x6503},
+ {"linux/video_encoder.h", "ENCODER_SET_OUTPUT", 0x6504},
+ {"linux/video_encoder.h", "ENCODER_ENABLE_OUTPUT", 0x6505},
+ {"linux/ext2_fs.h", "EXT2_IOC_GETFLAGS", 0x6601},
+ {"linux/ext3_fs.h", "EXT3_IOC_GETFLAGS", 0x6601},
+ {"linux/ext2_fs.h", "EXT2_IOC_SETFLAGS", 0x6602},
+ {"linux/ext3_fs.h", "EXT3_IOC_SETFLAGS", 0x6602},
+ {"linux/ext3_fs.h", "EXT3_IOC_GETVERSION", 0x6603},
+ {"linux/ext3_fs.h", "EXT3_IOC_SETVERSION", 0x6604},
+ {"linux/ext3_fs.h", "EXT3_IOC_WAIT_FOR_READONLY", 0x6663},
+ {"linux/i2o-dev.h", "I2OGETIOPS", 0x6900},
+ {"linux/i2o-dev.h", "I2OHRTGET", 0x6901},
+ {"linux/i2o-dev.h", "I2OLCTGET", 0x6902},
+ {"linux/i2o-dev.h", "I2OPARMSET", 0x6903},
+ {"linux/i2o-dev.h", "I2OPARMGET", 0x6904},
+ {"linux/i2o-dev.h", "I2OSWDL", 0x6905},
+ {"linux/i2o-dev.h", "I2OSWUL", 0x6906},
+ {"linux/i2o-dev.h", "I2OSWDEL", 0x6907},
+ {"linux/i2o-dev.h", "I2OVALIDATE", 0x6908},
+ {"linux/i2o-dev.h", "I2OHTML", 0x6909},
+ {"linux/i2o-dev.h", "I2OEVTREG", 0x690a},
+ {"linux/i2o-dev.h", "I2OEVTGET", 0x690b},
+ {"linux/i8k.h", "I8K_BIOS_VERSION", 0x6980},
+ {"linux/i8k.h", "I8K_MACHINE_ID", 0x6981},
+ {"linux/i8k.h", "I8K_POWER_STATUS", 0x6982},
+ {"linux/i8k.h", "I8K_FN_STATUS", 0x6983},
+ {"linux/i8k.h", "I8K_GET_TEMP", 0x6984},
+ {"linux/i8k.h", "I8K_GET_SPEED", 0x6985},
+ {"linux/i8k.h", "I8K_GET_FAN", 0x6986},
+ {"linux/i8k.h", "I8K_SET_FAN", 0x6987},
+ {"linux/joystick.h", "JSIOCGVERSION", 0x6a01},
+ {"linux/joystick.h", "JSIOCGAXES", 0x6a11},
+ {"linux/joystick.h", "JSIOCGBUTTONS", 0x6a12},
+ {"linux/joystick.h", "JSIOCSCORR", 0x6a21},
+ {"linux/joystick.h", "JSIOCGCORR", 0x6a22},
+ {"linux/joystick.h", "JSIOCSAXMAP", 0x6a31},
+ {"linux/joystick.h", "JSIOCGAXMAP", 0x6a32},
+ {"linux/joystick.h", "JSIOCSBTNMAP", 0x6a33},
+ {"linux/joystick.h", "JSIOCGBTNMAP", 0x6a34},
+ {"linux/udf_fs_i.h", "UDF_GETEASIZE", 0x6c40},
+ {"linux/udf_fs_i.h", "UDF_GETEABLOCK", 0x6c41},
+ {"linux/udf_fs_i.h", "UDF_GETVOLIDENT", 0x6c42},
+ {"linux/udf_fs_i.h", "UDF_RELOCATE_BLOCKS", 0x6c43},
+ {"linux/soundcard.h", "SNDCTL_MIDI_PRETIME", 0x6d00},
+ {"linux/synclink.h", "MGSL_IOCSPARAMS", 0x6d00},
+ {"linux/mtio.h", "MTIOCTOP", 0x6d01},
+ {"linux/soundcard.h", "SNDCTL_MIDI_MPUMODE", 0x6d01},
+ {"linux/synclink.h", "MGSL_IOCGPARAMS", 0x6d01},
+ {"linux/mtio.h", "MTIOCGET", 0x6d02},
+ {"linux/soundcard.h", "SNDCTL_MIDI_MPUCMD", 0x6d02},
+ {"linux/synclink.h", "MGSL_IOCSTXIDLE", 0x6d02},
+ {"linux/mtio.h", "MTIOCPOS", 0x6d03},
+ {"linux/synclink.h", "MGSL_IOCGTXIDLE", 0x6d03},
+ {"linux/mtio.h", "MTIOCGETCONFIG", 0x6d04},
+ {"linux/synclink.h", "MGSL_IOCTXENABLE", 0x6d04},
+ {"linux/mtio.h", "MTIOCSETCONFIG", 0x6d05},
+ {"linux/synclink.h", "MGSL_IOCRXENABLE", 0x6d05},
+ {"linux/mtio.h", "MTIOCRDFTSEG", 0x6d06},
+ {"linux/synclink.h", "MGSL_IOCTXABORT", 0x6d06},
+ {"linux/mtio.h", "MTIOCWRFTSEG", 0x6d07},
+ {"linux/synclink.h", "MGSL_IOCGSTATS", 0x6d07},
+ {"linux/mtio.h", "MTIOCVOLINFO", 0x6d08},
+ {"linux/synclink.h", "MGSL_IOCWAITEVENT", 0x6d08},
+ {"linux/mtio.h", "MTIOCGETSIZE", 0x6d09},
+ {"linux/synclink.h", "MGSL_IOCLOOPTXDONE", 0x6d09},
+ {"linux/mtio.h", "MTIOCFTFORMAT", 0x6d0a},
+ {"linux/mtio.h", "MTIOCFTCMD", 0x6d0b},
+ {"linux/synclink.h", "MGSL_IOCCLRMODCOUNT", 0x6d0f},
+ {"linux/zftape.h", "MTIOC_ZFTAPE_GETBLKSZ", 0x6d68},
+ {"linux/ncp_fs.h", "NCP_IOC_NCPREQUEST", 0x6e01},
+ {"linux/ncp_fs.h", "NCP_IOC_GETMOUNTUID", 0x6e02},
+ {"linux/ncp_fs.h", "NCP_IOC_GETMOUNTUID2", 0x6e02},
+ {"linux/ncp_fs.h", "NCP_IOC_CONN_LOGGED_IN", 0x6e03},
+ {"linux/ncp_fs.h", "NCP_IOC_GET_FS_INFO", 0x6e04},
+ {"linux/ncp_fs.h", "NCP_IOC_GET_FS_INFO_V2", 0x6e04},
+ {"linux/ncp_fs.h", "NCP_IOC_SIGN_INIT", 0x6e05},
+ {"linux/ncp_fs.h", "NCP_IOC_SIGN_WANTED", 0x6e06},
+ {"linux/ncp_fs.h", "NCP_IOC_SET_SIGN_WANTED", 0x6e06},
+ {"linux/ncp_fs.h", "NCP_IOC_LOCKUNLOCK", 0x6e07},
+ {"linux/ncp_fs.h", "NCP_IOC_GETROOT", 0x6e08},
+ {"linux/ncp_fs.h", "NCP_IOC_SETROOT", 0x6e08},
+ {"linux/ncp_fs.h", "NCP_IOC_GETOBJECTNAME", 0x6e09},
+ {"linux/ncp_fs.h", "NCP_IOC_SETOBJECTNAME", 0x6e09},
+ {"linux/ncp_fs.h", "NCP_IOC_GETPRIVATEDATA", 0x6e0a},
+ {"linux/ncp_fs.h", "NCP_IOC_SETPRIVATEDATA", 0x6e0a},
+ {"linux/ncp_fs.h", "NCP_IOC_GETCHARSETS", 0x6e0b},
+ {"linux/ncp_fs.h", "NCP_IOC_SETCHARSETS", 0x6e0b},
+ {"linux/ncp_fs.h", "NCP_IOC_GETDENTRYTTL", 0x6e0c},
+ {"linux/ncp_fs.h", "NCP_IOC_SETDENTRYTTL", 0x6e0c},
+ {"linux/matroxfb.h", "MATROXFB_SET_OUTPUT_CONNECTION", 0x6ef8},
+ {"linux/matroxfb.h", "MATROXFB_GET_OUTPUT_CONNECTION", 0x6ef8},
+ {"linux/matroxfb.h", "MATROXFB_GET_AVAILABLE_OUTPUTS", 0x6ef9},
+ {"linux/matroxfb.h", "MATROXFB_SET_OUTPUT_MODE", 0x6efa},
+ {"linux/matroxfb.h", "MATROXFB_GET_OUTPUT_MODE", 0x6efa},
+ {"linux/matroxfb.h", "MATROXFB_GET_ALL_OUTPUTS", 0x6efb},
+ {"linux/rtc.h", "RTC_AIE_ON", 0x7001},
+ {"linux/rtc.h", "RTC_AIE_OFF", 0x7002},
+ {"linux/intermezzo_fs.h", "PRESTO_GETMOUNT", 0x7003},
+ {"linux/rtc.h", "RTC_UIE_ON", 0x7003},
+ {"linux/intermezzo_fs.h", "PRESTO_SETPID", 0x7004},
+ {"linux/rtc.h", "RTC_UIE_OFF", 0x7004},
+ {"linux/rtc.h", "RTC_PIE_ON", 0x7005},
+ {"linux/intermezzo_fs.h", "PRESTO_CLOSE_JOURNALF", 0x7006},
+ {"linux/rtc.h", "RTC_PIE_OFF", 0x7006},
+ {"linux/intermezzo_fs.h", "PRESTO_SET_FSETROOT", 0x7007},
+ {"linux/rtc.h", "RTC_ALM_SET", 0x7007},
+ {"linux/intermezzo_fs.h", "PRESTO_CLEAR_FSETROOT", 0x7008},
+ {"linux/rtc.h", "RTC_ALM_READ", 0x7008},
+ {"linux/intermezzo_fs.h", "PRESTO_SETOPT", 0x7009},
+ {"linux/rtc.h", "RTC_RD_TIME", 0x7009},
+ {"linux/intermezzo_fs.h", "PRESTO_GETOPT", 0x700a},
+ {"linux/rtc.h", "RTC_SET_TIME", 0x700a},
+ {"linux/intermezzo_fs.h", "PRESTO_GET_KMLSIZE", 0x700b},
+ {"linux/rtc.h", "RTC_IRQP_READ", 0x700b},
+ {"linux/intermezzo_fs.h", "PRESTO_GET_RECNO", 0x700c},
+ {"linux/rtc.h", "RTC_IRQP_SET", 0x700c},
+ {"linux/rtc.h", "RTC_EPOCH_READ", 0x700d},
+ {"linux/rtc.h", "RTC_EPOCH_SET", 0x700e},
+ {"linux/rtc.h", "RTC_WIE_ON", 0x700f},
+ {"linux/rtc.h", "RTC_WKALM_SET", 0x700f},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_SETATTR", 0x7010},
+ {"linux/rtc.h", "RTC_WIE_OFF", 0x7010},
+ {"linux/rtc.h", "RTC_WKALM_RD", 0x7010},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_CREATE", 0x7011},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_LINK", 0x7012},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_UNLINK", 0x7013},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_SYMLINK", 0x7014},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_MKDIR", 0x7015},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_RMDIR", 0x7016},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_MKNOD", 0x7017},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_RENAME", 0x7018},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_CLOSE", 0x701a},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_IOPEN", 0x701b},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_SETEXTATTR", 0x701c},
+ {"linux/intermezzo_fs.h", "PRESTO_VFS_DELEXTATTR", 0x701d},
+ {"linux/intermezzo_fs.h", "PRESTO_MARK", 0x7020},
+ {"linux/intermezzo_fs.h", "PRESTO_RELEASE_PERMIT", 0x7021},
+ {"linux/intermezzo_fs.h", "PRESTO_CLEAR_ALL_FSETROOTS", 0x7022},
+ {"linux/intermezzo_fs.h", "PRESTO_BACKFETCH_LML", 0x7023},
+ {"linux/intermezzo_fs.h", "PRESTO_REINT", 0x7024},
+ {"linux/intermezzo_fs.h", "PRESTO_CANCEL_LML", 0x7025},
+ {"linux/intermezzo_fs.h", "PRESTO_RESET_FSET", 0x7026},
+ {"linux/intermezzo_fs.h", "PRESTO_COMPLETE_CLOSES", 0x7027},
+ {"linux/intermezzo_fs.h", "PRESTO_REINT_BEGIN", 0x7030},
+ {"linux/intermezzo_fs.h", "PRESTO_DO_REINT", 0x7031},
+ {"linux/intermezzo_fs.h", "PRESTO_REINT_END", 0x7032},
+ {"linux/nvram.h", "NVRAM_INIT", 0x7040},
+ {"linux/nvram.h", "NVRAM_SETCKS", 0x7041},
+ {"linux/ppdev.h", "PPSETMODE", 0x7080},
+ {"linux/ppdev.h", "PPRSTATUS", 0x7081},
+ {"linux/ppdev.h", "PPRCONTROL", 0x7083},
+ {"linux/ppdev.h", "PPWCONTROL", 0x7084},
+ {"linux/ppdev.h", "PPRDATA", 0x7085},
+ {"linux/ppdev.h", "PPWDATA", 0x7086},
+ {"linux/ppdev.h", "PPCLAIM", 0x708b},
+ {"linux/ppdev.h", "PPRELEASE", 0x708c},
+ {"linux/ppdev.h", "PPYIELD", 0x708d},
+ {"linux/ppdev.h", "PPFCONTROL", 0x708e},
+ {"linux/ppdev.h", "PPEXCL", 0x708f},
+ {"linux/ppdev.h", "PPDATADIR", 0x7090},
+ {"linux/ppdev.h", "PPNEGOT", 0x7091},
+ {"linux/ppdev.h", "PPWCTLONIRQ", 0x7092},
+ {"linux/ppdev.h", "PPCLRIRQ", 0x7093},
+ {"linux/ppdev.h", "PPSETPHASE", 0x7094},
+ {"linux/ppdev.h", "PPGETTIME", 0x7095},
+ {"linux/ppdev.h", "PPSETTIME", 0x7096},
+ {"linux/ppdev.h", "PPGETMODES", 0x7097},
+ {"linux/ppdev.h", "PPGETMODE", 0x7098},
+ {"linux/ppdev.h", "PPGETPHASE", 0x7099},
+ {"linux/ppdev.h", "PPGETFLAGS", 0x709a},
+ {"linux/ppdev.h", "PPSETFLAGS", 0x709b},
+ {"linux/serio.h", "SPIOCSTYPE", 0x7101},
+ {"linux/telephony.h", "PHONE_CAPABILITIES", 0x7180},
+ {"linux/telephony.h", "PHONE_CAPABILITIES_LIST", 0x7181},
+ {"linux/telephony.h", "PHONE_CAPABILITIES_CHECK", 0x7182},
+ {"linux/telephony.h", "PHONE_RING", 0x7183},
+ {"linux/telephony.h", "PHONE_HOOKSTATE", 0x7184},
+ {"linux/telephony.h", "PHONE_MAXRINGS", 0x7185},
+ {"linux/telephony.h", "PHONE_RING_CADENCE", 0x7186},
+ {"linux/telephony.h", "OLD_PHONE_RING_START", 0x7187},
+ {"linux/telephony.h", "PHONE_RING_START", 0x7187},
+ {"linux/telephony.h", "PHONE_RING_STOP", 0x7188},
+ {"linux/telephony.h", "PHONE_REC_CODEC", 0x7189},
+ {"linux/telephony.h", "PHONE_REC_START", 0x718a},
+ {"linux/telephony.h", "PHONE_REC_STOP", 0x718b},
+ {"linux/telephony.h", "PHONE_REC_DEPTH", 0x718c},
+ {"linux/telephony.h", "PHONE_FRAME", 0x718d},
+ {"linux/telephony.h", "PHONE_REC_VOLUME", 0x718e},
+ {"linux/telephony.h", "PHONE_REC_LEVEL", 0x718f},
+ {"linux/telephony.h", "PHONE_PLAY_CODEC", 0x7190},
+ {"linux/telephony.h", "PHONE_PLAY_START", 0x7191},
+ {"linux/telephony.h", "PHONE_PLAY_STOP", 0x7192},
+ {"linux/telephony.h", "PHONE_PLAY_DEPTH", 0x7193},
+ {"linux/telephony.h", "PHONE_PLAY_VOLUME", 0x7194},
+ {"linux/telephony.h", "PHONE_PLAY_LEVEL", 0x7195},
+ {"linux/telephony.h", "PHONE_DTMF_READY", 0x7196},
+ {"linux/telephony.h", "PHONE_GET_DTMF", 0x7197},
+ {"linux/telephony.h", "PHONE_GET_DTMF_ASCII", 0x7198},
+ {"linux/telephony.h", "PHONE_DTMF_OOB", 0x7199},
+ {"linux/telephony.h", "PHONE_EXCEPTION", 0x719a},
+ {"linux/telephony.h", "PHONE_PLAY_TONE", 0x719b},
+ {"linux/telephony.h", "PHONE_SET_TONE_ON_TIME", 0x719c},
+ {"linux/telephony.h", "PHONE_SET_TONE_OFF_TIME", 0x719d},
+ {"linux/telephony.h", "PHONE_GET_TONE_ON_TIME", 0x719e},
+ {"linux/telephony.h", "PHONE_GET_TONE_OFF_TIME", 0x719f},
+ {"linux/telephony.h", "PHONE_GET_TONE_STATE", 0x71a0},
+ {"linux/telephony.h", "PHONE_BUSY", 0x71a1},
+ {"linux/telephony.h", "PHONE_RINGBACK", 0x71a2},
+ {"linux/telephony.h", "PHONE_DIALTONE", 0x71a3},
+ {"linux/telephony.h", "PHONE_CPT_STOP", 0x71a4},
+ {"linux/telephony.h", "PHONE_PSTN_SET_STATE", 0x71a4},
+ {"linux/telephony.h", "PHONE_PSTN_GET_STATE", 0x71a5},
+ {"linux/telephony.h", "PHONE_WINK_DURATION", 0x71a6},
+ {"linux/telephony.h", "PHONE_QUERY_CODEC", 0x71a7},
+ {"linux/telephony.h", "PHONE_PSTN_LINETEST", 0x71a8},
+ {"linux/telephony.h", "PHONE_VAD", 0x71a9},
+ {"linux/telephony.h", "PHONE_WINK", 0x71aa},
+ {"linux/ixjuser.h", "IXJCTL_DSP_RESET", 0x71c0},
+ {"linux/ixjuser.h", "IXJCTL_CARDTYPE", 0x71c1},
+ {"linux/ixjuser.h", "IXJCTL_SERIAL", 0x71c2},
+ {"linux/ixjuser.h", "IXJCTL_DSP_TYPE", 0x71c3},
+ {"linux/ixjuser.h", "IXJCTL_DSP_VERSION", 0x71c4},
+ {"linux/ixjuser.h", "IXJCTL_DSP_IDLE", 0x71c5},
+ {"linux/ixjuser.h", "IXJCTL_TESTRAM", 0x71c6},
+ {"linux/ixjuser.h", "IXJCTL_SET_FILTER", 0x71c7},
+ {"linux/ixjuser.h", "IXJCTL_GET_FILTER_HIST", 0x71c8},
+ {"linux/ixjuser.h", "IXJCTL_INIT_TONE", 0x71c9},
+ {"linux/ixjuser.h", "IXJCTL_TONE_CADENCE", 0x71ca},
+ {"linux/ixjuser.h", "IXJCTL_AEC_START", 0x71cb},
+ {"linux/ixjuser.h", "IXJCTL_AEC_STOP", 0x71cc},
+ {"linux/ixjuser.h", "IXJCTL_AEC_GET_LEVEL", 0x71cd},
+ {"linux/ixjuser.h", "IXJCTL_SET_LED", 0x71ce},
+ {"linux/ixjuser.h", "IXJCTL_MIXER", 0x71cf},
+ {"linux/ixjuser.h", "IXJCTL_DAA_COEFF_SET", 0x71d0},
+ {"linux/ixjuser.h", "IXJCTL_PORT", 0x71d1},
+ {"linux/ixjuser.h", "IXJCTL_DAA_AGAIN", 0x71d2},
+ {"linux/ixjuser.h", "IXJCTL_PSTN_LINETEST", 0x71d3},
+ {"linux/ixjuser.h", "IXJCTL_CID", 0x71d4},
+ {"linux/ixjuser.h", "IXJCTL_POTS_PSTN", 0x71d5},
+ {"linux/ixjuser.h", "IXJCTL_FILTER_CADENCE", 0x71d6},
+ {"linux/ixjuser.h", "IXJCTL_PLAY_CID", 0x71d7},
+ {"linux/ixjuser.h", "IXJCTL_VMWI", 0x71d8},
+ {"linux/ixjuser.h", "IXJCTL_CIDCW", 0x71d9},
+ {"linux/ixjuser.h", "IXJCTL_VERSION", 0x71da},
+ {"linux/telephony.h", "PHONE_REC_VOLUME_LINEAR", 0x71db},
+ {"linux/telephony.h", "PHONE_PLAY_VOLUME_LINEAR", 0x71dc},
+ {"linux/ixjuser.h", "IXJCTL_SET_FILTER_RAW", 0x71dd},
+ {"linux/ixjuser.h", "IXJCTL_HZ", 0x71e0},
+ {"linux/ixjuser.h", "IXJCTL_RATE", 0x71e1},
+ {"linux/ixjuser.h", "IXJCTL_FRAMES_READ", 0x71e2},
+ {"linux/ixjuser.h", "IXJCTL_FRAMES_WRITTEN", 0x71e3},
+ {"linux/ixjuser.h", "IXJCTL_READ_WAIT", 0x71e4},
+ {"linux/ixjuser.h", "IXJCTL_WRITE_WAIT", 0x71e5},
+ {"linux/ixjuser.h", "IXJCTL_DRYBUFFER_READ", 0x71e6},
+ {"linux/ixjuser.h", "IXJCTL_DRYBUFFER_CLEAR", 0x71e7},
+ {"linux/ixjuser.h", "IXJCTL_DTMF_PRESCALE", 0x71e8},
+ {"linux/ixjuser.h", "IXJCTL_SIGCTL", 0x71e9},
+ {"linux/ixjuser.h", "IXJCTL_SC_RXG", 0x71ea},
+ {"linux/ixjuser.h", "IXJCTL_SC_TXG", 0x71eb},
+ {"linux/ixjuser.h", "IXJCTL_INTERCOM_START", 0x71fd},
+ {"linux/ixjuser.h", "IXJCTL_INTERCOM_STOP", 0x71fe},
+ {"linux/msdos_fs.h", "VFAT_IOCTL_READDIR_BOTH", 0x7201},
+ {"linux/msdos_fs.h", "VFAT_IOCTL_READDIR_SHORT", 0x7202},
+ {"linux/cdk.h", "STL_BINTR", 0x7314},
+ {"linux/cdk.h", "STL_BSTART", 0x7315},
+ {"linux/cdk.h", "STL_BSTOP", 0x7316},
+ {"linux/cdk.h", "STL_BRESET", 0x7317},
+ {"linux/cdk.h", "STL_GETPFLAG", 0x7350},
+ {"linux/cdk.h", "STL_SETPFLAG", 0x7351},
+ {"linux/if_ppp.h", "PPPIOCGCHAN", 0x7437},
+ {"linux/if_ppp.h", "PPPIOCATTCHAN", 0x7438},
+ {"linux/if_ppp.h", "PPPIOCDISCONN", 0x7439},
+ {"linux/if_ppp.h", "PPPIOCCONNECT", 0x743a},
+ {"linux/if_ppp.h", "PPPIOCSMRRU", 0x743b},
+ {"linux/if_ppp.h", "PPPIOCDETACH", 0x743c},
+ {"linux/if_ppp.h", "PPPIOCATTACH", 0x743d},
+ {"linux/if_ppp.h", "PPPIOCNEWUNIT", 0x743e},
+ {"linux/if_ppp.h", "PPPIOCGIDLE", 0x743f},
+ {"linux/if_ppp.h", "PPPIOCSDEBUG", 0x7440},
+ {"linux/if_ppp.h", "PPPIOCGDEBUG", 0x7441},
+ {"linux/if_ppp.h", "PPPIOCSACTIVE", 0x7446},
+ {"linux/if_ppp.h", "PPPIOCSPASS", 0x7447},
+ {"linux/if_ppp.h", "PPPIOCSNPMODE", 0x744b},
+ {"linux/if_ppp.h", "PPPIOCGNPMODE", 0x744c},
+ {"linux/if_ppp.h", "PPPIOCSCOMPRESS", 0x744d},
+ {"linux/if_ppp.h", "PPPIOCXFERUNIT", 0x744e},
+ {"linux/if_ppp.h", "PPPIOCSXASYNCMAP", 0x744f},
+ {"linux/if_ppp.h", "PPPIOCGXASYNCMAP", 0x7450},
+ {"linux/if_ppp.h", "PPPIOCSMAXCID", 0x7451},
+ {"linux/if_ppp.h", "PPPIOCSMRU", 0x7452},
+ {"linux/if_ppp.h", "PPPIOCGMRU", 0x7453},
+ {"linux/if_ppp.h", "PPPIOCSRASYNCMAP", 0x7454},
+ {"linux/if_ppp.h", "PPPIOCGRASYNCMAP", 0x7455},
+ {"linux/if_ppp.h", "PPPIOCGUNIT", 0x7456},
+ {"linux/if_ppp.h", "PPPIOCSASYNCMAP", 0x7457},
+ {"linux/if_ppp.h", "PPPIOCGASYNCMAP", 0x7458},
+ {"linux/if_ppp.h", "PPPIOCSFLAGS", 0x7459},
+ {"linux/if_ppp.h", "PPPIOCGFLAGS", 0x745a},
+ {"linux/jffs.h", "JFFS_PRINT_HASH", 0x745a},
+ {"linux/jffs.h", "JFFS_PRINT_TREE", 0x745b},
+ {"linux/jffs.h", "JFFS_GET_STATUS", 0x745c},
+ {"linux/isdn_ppp.h", "PPPIOCGCALLINFO", 0x7480},
+ {"linux/isdn_ppp.h", "PPPIOCBUNDLE", 0x7481},
+ {"linux/isdn_ppp.h", "PPPIOCGMPFLAGS", 0x7482},
+ {"linux/isdn_ppp.h", "PPPIOCSMPFLAGS", 0x7483},
+ {"linux/isdn_ppp.h", "PPPIOCSMPMTU", 0x7484},
+ {"linux/isdn_ppp.h", "PPPIOCSMPMRU", 0x7485},
+ {"linux/isdn_ppp.h", "PPPIOCGCOMPRESSORS", 0x7486},
+ {"linux/isdn_ppp.h", "PPPIOCSCOMPRESSOR", 0x7487},
+ {"linux/isdn_ppp.h", "PPPIOCGIFNAME", 0x7488},
+ {"linux/toshiba.h", "TOSH_SMM", 0x7490},
+ {"linux/smb_fs.h", "SMB_IOC_GETMOUNTUID", 0x7501},
+ {"linux/smb_fs.h", "SMB_IOC_NEWCONN", 0x7502},
+ {"linux/smb_fs.h", "SMB_IOC_GETMOUNTUID32", 0x7503},
+ {"linux/sonypi.h", "SONYPI_IOCGBRT", 0x7600},
+ {"linux/sonypi.h", "SONYPI_IOCSBRT", 0x7600},
+ {"linux/ext2_fs.h", "EXT2_IOC_GETVERSION", 0x7601},
+ {"linux/ext3_fs.h", "EXT3_IOC_GETVERSION_OLD", 0x7601},
+ {"linux/videodev.h", "VIDIOCGCAP", 0x7601},
+ {"linux/ext2_fs.h", "EXT2_IOC_SETVERSION", 0x7602},
+ {"linux/ext3_fs.h", "EXT3_IOC_SETVERSION_OLD", 0x7602},
+ {"linux/sonypi.h", "SONYPI_IOCGBAT1CAP", 0x7602},
+ {"linux/videodev.h", "VIDIOCGCHAN", 0x7602},
+ {"linux/sonypi.h", "SONYPI_IOCGBAT1REM", 0x7603},
+ {"linux/videodev.h", "VIDIOCSCHAN", 0x7603},
+ {"linux/sonypi.h", "SONYPI_IOCGBAT2CAP", 0x7604},
+ {"linux/videodev.h", "VIDIOCGTUNER", 0x7604},
+ {"linux/sonypi.h", "SONYPI_IOCGBAT2REM", 0x7605},
+ {"linux/videodev.h", "VIDIOCSTUNER", 0x7605},
+ {"linux/videodev.h", "VIDIOCGPICT", 0x7606},
+ {"linux/sonypi.h", "SONYPI_IOCGBATFLAGS", 0x7607},
+ {"linux/videodev.h", "VIDIOCSPICT", 0x7607},
+ {"linux/sonypi.h", "SONYPI_IOCGBLUE", 0x7608},
+ {"linux/videodev.h", "VIDIOCCAPTURE", 0x7608},
+ {"linux/sonypi.h", "SONYPI_IOCSBLUE", 0x7609},
+ {"linux/videodev.h", "VIDIOCGWIN", 0x7609},
+ {"linux/videodev.h", "VIDIOCSWIN", 0x760a},
+ {"linux/videodev.h", "VIDIOCGFBUF", 0x760b},
+ {"linux/videodev.h", "VIDIOCSFBUF", 0x760c},
+ {"linux/videodev.h", "VIDIOCKEY", 0x760d},
+ {"linux/videodev.h", "VIDIOCGFREQ", 0x760e},
+ {"linux/videodev.h", "VIDIOCSFREQ", 0x760f},
+ {"linux/videodev.h", "VIDIOCGAUDIO", 0x7610},
+ {"linux/videodev.h", "VIDIOCSAUDIO", 0x7611},
+ {"linux/videodev.h", "VIDIOCSYNC", 0x7612},
+ {"linux/videodev.h", "VIDIOCMCAPTURE", 0x7613},
+ {"linux/videodev.h", "VIDIOCGMBUF", 0x7614},
+ {"linux/videodev.h", "VIDIOCGUNIT", 0x7615},
+ {"linux/videodev.h", "VIDIOCGCAPTURE", 0x7616},
+ {"linux/videodev.h", "VIDIOCSCAPTURE", 0x7617},
+ {"linux/videodev.h", "VIDIOCSPLAYMODE", 0x7618},
+ {"linux/videodev.h", "VIDIOCSWRITEMODE", 0x7619},
+ {"linux/videodev.h", "VIDIOCGPLAYINFO", 0x761a},
+ {"linux/videodev.h", "VIDIOCSMICROCODE", 0x761b},
+ {"linux/videodev.h", "VIDIOCGVBIFMT", 0x761c},
+ {"linux/videodev.h", "VIDIOCSVBIFMT", 0x761d},
+ {"linux/meye.h", "MEYEIOC_G_PARAMS", 0x76c0},
+ {"linux/meye.h", "MEYEIOC_S_PARAMS", 0x76c1},
+ {"linux/meye.h", "MEYEIOC_QBUF_CAPT", 0x76c2},
+ {"linux/meye.h", "MEYEIOC_SYNC", 0x76c3},
+ {"linux/meye.h", "MEYEIOC_STILLCAPT", 0x76c4},
+ {"linux/meye.h", "MEYEIOC_STILLJCAPT", 0x76c5},
+ {"linux/dn.h", "SIOCSNETADDR", 0x89e0},
+ {"linux/dn.h", "OSIOCSNETADDR", 0x89e0},
+ {"linux/dn.h", "SIOCGNETADDR", 0x89e1},
+ {"linux/dn.h", "OSIOCGNETADDR", 0x89e1},
+ {"linux/auto_fs.h", "AUTOFS_IOC_READY", 0x9360},
+ {"linux/auto_fs.h", "AUTOFS_IOC_FAIL", 0x9361},
+ {"linux/auto_fs.h", "AUTOFS_IOC_CATATONIC", 0x9362},
+ {"linux/auto_fs.h", "AUTOFS_IOC_PROTOVER", 0x9363},
+ {"linux/auto_fs.h", "AUTOFS_IOC_SETTIMEOUT", 0x9364},
+ {"linux/auto_fs.h", "AUTOFS_IOC_EXPIRE", 0x9365},
+ {"linux/auto_fs4.h", "AUTOFS_IOC_EXPIRE_MULTI", 0x9366},
+ {"linux/nbd.h", "NBD_SET_SOCK", 0xab00},
+ {"linux/nbd.h", "NBD_SET_BLKSIZE", 0xab01},
+ {"linux/nbd.h", "NBD_SET_SIZE", 0xab02},
+ {"linux/nbd.h", "NBD_DO_IT", 0xab03},
+ {"linux/nbd.h", "NBD_CLEAR_SOCK", 0xab04},
+ {"linux/nbd.h", "NBD_CLEAR_QUE", 0xab05},
+ {"linux/nbd.h", "NBD_PRINT_DEBUG", 0xab06},
+ {"linux/nbd.h", "NBD_SET_SIZE_BLOCKS", 0xab07},
+ {"linux/nbd.h", "NBD_DISCONNECT", 0xab08},
+ {"linux/raw.h", "RAW_SETBIND", 0xac00},
+ {"linux/raw.h", "RAW_GETBIND", 0xac01},
+ {"linux/if_pppox.h", "PPPOEIOCSFWD", 0xb100},
+ {"linux/if_pppox.h", "PPPOEIOCDFWD", 0xb101},
+ {"linux/reiserfs_fs.h", "REISERFS_IOC_UNPACK", 0xcd01},
+ {"linux/lvm.h", "VG_CREATE_OLD", 0xfe00},
+ {"linux/lvm.h", "VG_REMOVE", 0xfe01},
+ {"linux/lvm.h", "VG_EXTEND", 0xfe03},
+ {"linux/lvm.h", "VG_REDUCE", 0xfe04},
+ {"linux/lvm.h", "VG_STATUS", 0xfe05},
+ {"linux/lvm.h", "VG_STATUS_GET_COUNT", 0xfe06},
+ {"linux/lvm.h", "VG_STATUS_GET_NAMELIST", 0xfe07},
+ {"linux/lvm.h", "VG_SET_EXTENDABLE", 0xfe08},
+ {"linux/lvm.h", "VG_RENAME", 0xfe09},
+ {"linux/lvm.h", "VG_CREATE", 0xfe0a},
+ {"linux/lvm.h", "LV_CREATE", 0xfe20},
+ {"linux/lvm.h", "LV_REMOVE", 0xfe21},
+ {"linux/lvm.h", "LV_ACTIVATE", 0xfe22},
+ {"linux/lvm.h", "LV_DEACTIVATE", 0xfe23},
+ {"linux/lvm.h", "LV_EXTEND", 0xfe24},
+ {"linux/lvm.h", "LV_REDUCE", 0xfe25},
+ {"linux/lvm.h", "LV_STATUS_BYNAME", 0xfe26},
+ {"linux/lvm.h", "LV_STATUS_BYINDEX", 0xfe27},
+ {"linux/lvm.h", "LV_SET_ACCESS", 0xfe28},
+ {"linux/lvm.h", "LV_SET_ALLOCATION", 0xfe29},
+ {"linux/lvm.h", "LV_SET_STATUS", 0xfe2a},
+ {"linux/lvm.h", "LE_REMAP", 0xfe2b},
+ {"linux/lvm.h", "LV_SNAPSHOT_USE_RATE", 0xfe2c},
+ {"linux/lvm.h", "LV_STATUS_BYDEV", 0xfe2e},
+ {"linux/lvm.h", "LV_RENAME", 0xfe2f},
+ {"linux/lvm.h", "LV_BMAP", 0xfe30},
+ {"linux/lvm.h", "PV_STATUS", 0xfe40},
+ {"linux/lvm.h", "PV_CHANGE", 0xfe41},
+ {"linux/lvm.h", "PV_FLUSH", 0xfe42},
+ {"linux/lvm.h", "PE_LOCK_UNLOCK", 0xfe50},
+ {"linux/lvm.h", "LVM_GET_IOP_VERSION", 0xfe98},
+ {"linux/lvm.h", "LVM_RESET", 0xfe99},
+ {"linux/lvm.h", "LVM_LOCK_LVM", 0xff00},
diff --git a/strace/linux/sparc64/signalent.h b/strace/linux/sparc64/signalent.h
new file mode 100644
index 0000000..e059b5d
--- /dev/null
+++ b/strace/linux/sparc64/signalent.h
@@ -0,0 +1,32 @@
+ "SIG_0", /* 0 */
+ "SIGHUP", /* 1 */
+ "SIGINT", /* 2 */
+ "SIGQUIT", /* 3 */
+ "SIGILL", /* 4 */
+ "SIGTRAP", /* 5 */
+ "SIGABRT", /* 6 */
+ "SIGEMT", /* 7 */
+ "SIGFPE", /* 8 */
+ "SIGKILL", /* 9 */
+ "SIGBUS", /* 10 */
+ "SIGSEGV", /* 11 */
+ "SIGSYS", /* 12 */
+ "SIGPIPE", /* 13 */
+ "SIGALRM", /* 14 */
+ "SIGTERM", /* 15 */
+ "SIGURG", /* 16 */
+ "SIGSTOP", /* 17 */
+ "SIGTSTP", /* 18 */
+ "SIGCONT", /* 19 */
+ "SIGCHLD", /* 20 */
+ "SIGTTIN", /* 21 */
+ "SIGTTOU", /* 22 */
+ "SIGIO", /* 23 */
+ "SIGXCPU", /* 24 */
+ "SIGXFSZ", /* 25 */
+ "SIGVTALRM", /* 26 */
+ "SIGPROF", /* 27 */
+ "SIGWINCH", /* 28 */
+ "SIGLOST", /* 29 */
+ "SIGUSR1", /* 30 */
+ "SIGUSR2", /* 31 */
diff --git a/strace/linux/sparc64/signalent1.h b/strace/linux/sparc64/signalent1.h
new file mode 100644
index 0000000..6be7a26
--- /dev/null
+++ b/strace/linux/sparc64/signalent1.h
@@ -0,0 +1 @@
+#include "../svr4/signalent.h"
diff --git a/strace/linux/sparc64/signalent2.h b/strace/linux/sparc64/signalent2.h
new file mode 100644
index 0000000..e059b5d
--- /dev/null
+++ b/strace/linux/sparc64/signalent2.h
@@ -0,0 +1,32 @@
+ "SIG_0", /* 0 */
+ "SIGHUP", /* 1 */
+ "SIGINT", /* 2 */
+ "SIGQUIT", /* 3 */
+ "SIGILL", /* 4 */
+ "SIGTRAP", /* 5 */
+ "SIGABRT", /* 6 */
+ "SIGEMT", /* 7 */
+ "SIGFPE", /* 8 */
+ "SIGKILL", /* 9 */
+ "SIGBUS", /* 10 */
+ "SIGSEGV", /* 11 */
+ "SIGSYS", /* 12 */
+ "SIGPIPE", /* 13 */
+ "SIGALRM", /* 14 */
+ "SIGTERM", /* 15 */
+ "SIGURG", /* 16 */
+ "SIGSTOP", /* 17 */
+ "SIGTSTP", /* 18 */
+ "SIGCONT", /* 19 */
+ "SIGCHLD", /* 20 */
+ "SIGTTIN", /* 21 */
+ "SIGTTOU", /* 22 */
+ "SIGIO", /* 23 */
+ "SIGXCPU", /* 24 */
+ "SIGXFSZ", /* 25 */
+ "SIGVTALRM", /* 26 */
+ "SIGPROF", /* 27 */
+ "SIGWINCH", /* 28 */
+ "SIGLOST", /* 29 */
+ "SIGUSR1", /* 30 */
+ "SIGUSR2", /* 31 */
diff --git a/strace/linux/sparc64/syscall.h b/strace/linux/sparc64/syscall.h
new file mode 100644
index 0000000..b56e08d
--- /dev/null
+++ b/strace/linux/sparc64/syscall.h
@@ -0,0 +1 @@
+#include "../sparc/syscall.h"
diff --git a/strace/linux/sparc64/syscall1.h b/strace/linux/sparc64/syscall1.h
new file mode 100644
index 0000000..141f8da
--- /dev/null
+++ b/strace/linux/sparc64/syscall1.h
@@ -0,0 +1,501 @@
+/*
+ * Copyright (c) 1993, 1994, 1995 Rick Sladkey <jrs@world.std.com>
+ * 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.
+ *
+ * $Id: syscall1.h,v 1.1 2004/07/12 07:44:08 roland Exp $
+ */
+
+#define SOLARIS_syscall 0
+#define SOLARIS_exit 1
+#define SOLARIS_fork 2
+#define SOLARIS_read 3
+#define SOLARIS_write 4
+#define SOLARIS_open 5
+#define SOLARIS_close 6
+#define SOLARIS_wait 7
+#define SOLARIS_creat 8
+#define SOLARIS_link 9
+#define SOLARIS_unlink 10
+#define SOLARIS_exec 11
+#define SOLARIS_chdir 12
+#define SOLARIS_time 13
+#define SOLARIS_mknod 14
+#define SOLARIS_chmod 15
+#define SOLARIS_chown 16
+#define SOLARIS_brk 17
+#define SOLARIS_stat 18
+#define SOLARIS_lseek 19
+#define SOLARIS_getpid 20
+#define SOLARIS_mount 21
+#define SOLARIS_umount 22
+#define SOLARIS_setuid 23
+#define SOLARIS_getuid 24
+#define SOLARIS_stime 25
+#define SOLARIS_ptrace 26
+#define SOLARIS_alarm 27
+#define SOLARIS_fstat 28
+#define SOLARIS_pause 29
+#define SOLARIS_utime 30
+#define SOLARIS_stty 31
+#define SOLARIS_gtty 32
+#define SOLARIS_access 33
+#define SOLARIS_nice 34
+#define SOLARIS_statfs 35
+#define SOLARIS_sync 36
+#define SOLARIS_kill 37
+#define SOLARIS_fstatfs 38
+#define SOLARIS_pgrpsys 39
+#define SOLARIS_xenix 40
+#define SOLARIS_dup 41
+#define SOLARIS_pipe 42
+#define SOLARIS_times 43
+#define SOLARIS_profil 44
+#define SOLARIS_plock 45
+#define SOLARIS_setgid 46
+#define SOLARIS_getgid 47
+#define SOLARIS_signal 48
+#define SOLARIS_msgsys 49
+#define SOLARIS_syssun 50
+#define SOLARIS_acct 51
+#define SOLARIS_shmsys 52
+#define SOLARIS_semsys 53
+#define SOLARIS_ioctl 54
+#define SOLARIS_uadmin 55
+#define SOLARIS_utssys 57
+#define SOLARIS_fdsync 58
+#define SOLARIS_execve 59
+#define SOLARIS_umask 60
+#define SOLARIS_chroot 61
+#define SOLARIS_fcntl 62
+#define SOLARIS_ulimit 63
+#define SOLARIS_rmdir 79
+#define SOLARIS_mkdir 80
+#define SOLARIS_getdents 81
+#define SOLARIS_sysfs 84
+#define SOLARIS_getmsg 85
+#define SOLARIS_putmsg 86
+#define SOLARIS_poll 87
+#define SOLARIS_lstat 88
+#define SOLARIS_symlink 89
+#define SOLARIS_readlink 90
+#define SOLARIS_setgroups 91
+#define SOLARIS_getgroups 92
+#define SOLARIS_fchmod 93
+#define SOLARIS_fchown 94
+#define SOLARIS_sigprocmask 95
+#define SOLARIS_sigsuspend 96
+#define SOLARIS_sigaltstack 97
+#define SOLARIS_sigaction 98
+#define SOLARIS_sigpending 99
+#define SOLARIS_context 100
+#define SOLARIS_evsys 101
+#define SOLARIS_evtrapret 102
+#define SOLARIS_statvfs 103
+#define SOLARIS_fstatvfs 104
+#define SOLARIS_nfssys 106
+#define SOLARIS_waitsys 107
+#define SOLARIS_sigsendsys 108
+#define SOLARIS_hrtsys 109
+#define SOLARIS_acancel 110
+#define SOLARIS_async 111
+#define SOLARIS_priocntlsys 112
+#define SOLARIS_pathconf 113
+#define SOLARIS_mincore 114
+#define SOLARIS_mmap 115
+#define SOLARIS_mprotect 116
+#define SOLARIS_munmap 117
+#define SOLARIS_fpathconf 118
+#define SOLARIS_vfork 119
+#define SOLARIS_fchdir 120
+#define SOLARIS_readv 121
+#define SOLARIS_writev 122
+#define SOLARIS_xstat 123
+#define SOLARIS_lxstat 124
+#define SOLARIS_fxstat 125
+#define SOLARIS_xmknod 126
+#define SOLARIS_clocal 127
+#define SOLARIS_setrlimit 128
+#define SOLARIS_getrlimit 129
+#define SOLARIS_lchown 130
+#define SOLARIS_memcntl 131
+#define SOLARIS_getpmsg 132
+#define SOLARIS_putpmsg 133
+#define SOLARIS_rename 134
+#define SOLARIS_uname 135
+#define SOLARIS_setegid 136
+#define SOLARIS_sysconfig 137
+#define SOLARIS_adjtime 138
+#define SOLARIS_systeminfo 139
+#define SOLARIS_seteuid 141
+#define SOLARIS_vtrace 142
+#define SOLARIS_fork1 143
+#define SOLARIS_sigtimedwait 144
+#define SOLARIS_lwp_info 145
+#define SOLARIS_yield 146
+#define SOLARIS_lwp_sema_wait 147
+#define SOLARIS_lwp_sema_post 148
+#define SOLARIS_modctl 152
+#define SOLARIS_fchroot 153
+#define SOLARIS_utimes 154
+#define SOLARIS_vhangup 155
+#define SOLARIS_gettimeofday 156
+#define SOLARIS_getitimer 157
+#define SOLARIS_setitimer 158
+#define SOLARIS_lwp_create 159
+#define SOLARIS_lwp_exit 160
+#define SOLARIS_lwp_suspend 161
+#define SOLARIS_lwp_continue 162
+#define SOLARIS_lwp_kill 163
+#define SOLARIS_lwp_self 164
+#define SOLARIS_lwp_setprivate 165
+#define SOLARIS_lwp_getprivate 166
+#define SOLARIS_lwp_wait 167
+#define SOLARIS_lwp_mutex_unlock 168
+#define SOLARIS_lwp_mutex_lock 169
+#define SOLARIS_lwp_cond_wait 170
+#define SOLARIS_lwp_cond_signal 171
+#define SOLARIS_lwp_cond_broadcast 172
+#define SOLARIS_pread 173
+#define SOLARIS_pwrite 174
+#define SOLARIS_llseek 175
+#define SOLARIS_inst_sync 176
+#define SOLARIS_kaio 178
+#define SOLARIS_tsolsys 184
+#define SOLARIS_acl 185
+#define SOLARIS_auditsys 186
+#define SOLARIS_processor_bind 187
+#define SOLARIS_processor_info 188
+#define SOLARIS_p_online 189
+#define SOLARIS_sigqueue 190
+#define SOLARIS_clock_gettime 191
+#define SOLARIS_clock_settime 192
+#define SOLARIS_clock_getres 193
+#define SOLARIS_timer_create 194
+#define SOLARIS_timer_delete 195
+#define SOLARIS_timer_settime 196
+#define SOLARIS_timer_gettime 197
+#define SOLARIS_timer_getoverrun 198
+#define SOLARIS_nanosleep 199
+#define SOLARIS_facl 200
+#define SOLARIS_door 201
+#define SOLARIS_setreuid 202
+#define SOLARIS_setregid 203
+#define SOLARIS_signotifywait 210
+#define SOLARIS_lwp_sigredirect 211
+#define SOLARIS_lwp_alarm 212
+
+#include "dummy2.h"
+
+extern int solaris_syscall();
+extern int solaris_exit();
+extern int solaris_fork();
+extern int solaris_read();
+extern int solaris_write();
+extern int solaris_open();
+extern int solaris_close();
+extern int solaris_wait();
+extern int solaris_creat();
+extern int solaris_link();
+extern int solaris_unlink();
+extern int solaris_exec();
+extern int solaris_chdir();
+extern int solaris_time();
+extern int solaris_mknod();
+extern int solaris_chmod();
+extern int solaris_chown();
+extern int solaris_brk();
+extern int solaris_stat();
+extern int solaris_lseek();
+extern int solaris_getpid();
+extern int solaris_mount();
+extern int solaris_umount();
+extern int solaris_setuid();
+extern int solaris_getuid();
+extern int solaris_stime();
+extern int solaris_ptrace();
+extern int solaris_alarm();
+extern int solaris_fstat();
+extern int solaris_pause();
+extern int solaris_utime();
+extern int solaris_stty();
+extern int solaris_gtty();
+extern int solaris_access();
+extern int solaris_nice();
+extern int solaris_statfs();
+extern int solaris_sync();
+extern int solaris_kill();
+extern int solaris_fstatfs();
+extern int solaris_pgrpsys();
+extern int solaris_setpgrp();
+extern int solaris_xenix();
+extern int solaris_syssgi();
+extern int solaris_dup();
+extern int solaris_pipe();
+extern int solaris_times();
+extern int solaris_profil();
+extern int solaris_plock();
+extern int solaris_setgid();
+extern int solaris_getgid();
+extern int solaris_sigcall();
+extern int solaris_msgsys();
+extern int solaris_syssun();
+extern int solaris_sysi86();
+extern int solaris_sysmips();
+extern int solaris_sysmachine();
+extern int solaris_acct();
+extern int solaris_shmsys();
+extern int solaris_semsys();
+extern int solaris_ioctl();
+extern int solaris_uadmin();
+extern int solaris_utssys();
+extern int solaris_fdsync();
+extern int solaris_execve();
+extern int solaris_umask();
+extern int solaris_chroot();
+extern int solaris_fcntl();
+extern int solaris_ulimit();
+extern int solaris_rmdir();
+extern int solaris_mkdir();
+extern int solaris_getdents();
+extern int solaris_sysfs();
+extern int solaris_getmsg();
+extern int solaris_putmsg();
+extern int solaris_poll();
+extern int solaris_lstat();
+extern int solaris_symlink();
+extern int solaris_readlink();
+extern int solaris_setgroups();
+extern int solaris_getgroups();
+extern int solaris_fchmod();
+extern int solaris_fchown();
+extern int solaris_sigprocmask();
+extern int solaris_sigsuspend();
+extern int solaris_sigaltstack();
+extern int solaris_sigaction();
+extern int solaris_spcall();
+extern int solaris_context();
+extern int solaris_evsys();
+extern int solaris_evtrapret();
+extern int solaris_statvfs();
+extern int solaris_fstatvfs();
+extern int solaris_nfssys();
+extern int solaris_waitid();
+extern int solaris_sigsendsys();
+extern int solaris_hrtsys();
+extern int solaris_acancel();
+extern int solaris_async();
+extern int solaris_priocntlsys();
+extern int solaris_pathconf();
+extern int solaris_mincore();
+extern int solaris_mmap();
+extern int solaris_mprotect();
+extern int solaris_munmap();
+extern int solaris_fpathconf();
+extern int solaris_vfork();
+extern int solaris_fchdir();
+extern int solaris_readv();
+extern int solaris_writev();
+extern int solaris_xstat();
+extern int solaris_lxstat();
+extern int solaris_fxstat();
+extern int solaris_xmknod();
+extern int solaris_clocal();
+extern int solaris_setrlimit();
+extern int solaris_getrlimit();
+extern int solaris_lchown();
+extern int solaris_memcntl();
+extern int solaris_getpmsg();
+extern int solaris_putpmsg();
+extern int solaris_rename();
+extern int solaris_uname();
+extern int solaris_setegid();
+extern int solaris_sysconfig();
+extern int solaris_adjtime();
+extern int solaris_sysinfo();
+extern int solaris_seteuid();
+extern int solaris_vtrace();
+extern int solaris_fork1();
+extern int solaris_sigtimedwait();
+extern int solaris_lwp_info();
+extern int solaris_yield();
+extern int solaris_lwp_sema_wait();
+extern int solaris_lwp_sema_post();
+extern int solaris_modctl();
+extern int solaris_fchroot();
+extern int solaris_utimes();
+extern int solaris_vhangup();
+extern int solaris_gettimeofday();
+extern int solaris_getitimer();
+extern int solaris_setitimer();
+extern int solaris_lwp_create();
+extern int solaris_lwp_exit();
+extern int solaris_lwp_suspend();
+extern int solaris_lwp_continue();
+extern int solaris_lwp_kill();
+extern int solaris_lwp_self();
+extern int solaris_lwp_setprivate();
+extern int solaris_lwp_getprivate();
+extern int solaris_lwp_wait();
+extern int solaris_lwp_mutex_unlock();
+extern int solaris_lwp_mutex_lock();
+extern int solaris_lwp_cond_wait();
+extern int solaris_lwp_cond_signal();
+extern int solaris_lwp_cond_broadcast();
+extern int solaris_pread();
+extern int solaris_pwrite();
+extern int solaris_llseek();
+extern int solaris_inst_sync();
+extern int solaris_auditsys();
+extern int solaris_processor_bind();
+extern int solaris_processor_info();
+extern int solaris_p_online();
+extern int solaris_sigqueue();
+extern int solaris_clock_gettime();
+extern int solaris_clock_settime();
+extern int solaris_clock_getres();
+extern int solaris_timer_create();
+extern int solaris_timer_delete();
+extern int solaris_timer_settime();
+extern int solaris_timer_gettime();
+extern int solaris_timer_getoverrun();
+extern int solaris_nanosleep();
+
+/* solaris_pgrpsys subcalls */
+
+extern int solaris_getpgrp(), solaris_setpgrp(), solaris_getsid();
+extern int solaris_setsid(), solaris_getpgid(), solaris_setpgid();
+
+#define SOLARIS_pgrpsys_subcall 300
+#define SOLARIS_getpgrp (SOLARIS_pgrpsys_subcall + 0)
+#define SOLARIS_setpgrp (SOLARIS_pgrpsys_subcall + 1)
+#define SOLARIS_getsid (SOLARIS_pgrpsys_subcall + 2)
+#define SOLARIS_setsid (SOLARIS_pgrpsys_subcall + 3)
+#define SOLARIS_getpgid (SOLARIS_pgrpsys_subcall + 4)
+#define SOLARIS_setpgid (SOLARIS_pgrpsys_subcall + 5)
+
+#define SOLARIS_pgrpsys_nsubcalls 6
+
+/* solaris_sigcall subcalls */
+
+#undef SOLARIS_signal
+#define SOLARIS_sigcall 48
+
+extern int solaris_signal(), solaris_sigset(), solaris_sighold();
+extern int solaris_sigrelse(), solaris_sigignore(), solaris_sigpause();
+
+#define SOLARIS_sigcall_subcall 310
+#define SOLARIS_signal (SOLARIS_sigcall_subcall + 0)
+#define SOLARIS_sigset (SOLARIS_sigcall_subcall + 1)
+#define SOLARIS_sighold (SOLARIS_sigcall_subcall + 2)
+#define SOLARIS_sigrelse (SOLARIS_sigcall_subcall + 3)
+#define SOLARIS_sigignore (SOLARIS_sigcall_subcall + 4)
+#define SOLARIS_sigpause (SOLARIS_sigcall_subcall + 5)
+
+#define SOLARIS_sigcall_nsubcalls 6
+
+/* msgsys subcalls */
+
+extern int solaris_msgget(), solaris_msgctl(), solaris_msgrcv(), solaris_msgsnd();
+
+#define SOLARIS_msgsys_subcall 320
+#define SOLARIS_msgget (SOLARIS_msgsys_subcall + 0)
+#define SOLARIS_msgctl (SOLARIS_msgsys_subcall + 1)
+#define SOLARIS_msgrcv (SOLARIS_msgsys_subcall + 2)
+#define SOLARIS_msgsnd (SOLARIS_msgsys_subcall + 3)
+
+#define SOLARIS_msgsys_nsubcalls 4
+
+/* shmsys subcalls */
+
+extern int solaris_shmat(), solaris_shmctl(), solaris_shmdt(), solaris_shmget();
+
+#define SOLARIS_shmsys_subcall 330
+#define SOLARIS_shmat (SOLARIS_shmsys_subcall + 0)
+#define SOLARIS_shmctl (SOLARIS_shmsys_subcall + 1)
+#define SOLARIS_shmdt (SOLARIS_shmsys_subcall + 2)
+#define SOLARIS_shmget (SOLARIS_shmsys_subcall + 3)
+
+#define SOLARIS_shmsys_nsubcalls 4
+
+/* semsys subcalls */
+
+extern int solaris_semctl(), solaris_semget(), solaris_semop();
+
+#define SOLARIS_semsys_subcall 340
+#define SOLARIS_semctl (SOLARIS_semsys_subcall + 0)
+#define SOLARIS_semget (SOLARIS_semsys_subcall + 1)
+#define SOLARIS_semop (SOLARIS_semsys_subcall + 2)
+
+#define SOLARIS_semsys_nsubcalls 3
+
+/* utssys subcalls */
+
+extern int solaris_olduname(), solaris_ustat(), solaris_fusers();
+
+#define SOLARIS_utssys_subcall 350
+
+#define SOLARIS_olduname (SOLARIS_utssys_subcall + 0)
+ /* 1 is unused */
+#define SOLARIS_ustat (SOLARIS_utssys_subcall + 2)
+#define SOLARIS_fusers (SOLARIS_utssys_subcall + 3)
+
+#define SOLARIS_utssys_nsubcalls 4
+
+/* sysfs subcalls */
+
+extern int solaris_sysfs1(), solaris_sysfs2(), solaris_sysfs3();
+
+#define SOLARIS_sysfs_subcall 360
+ /* 0 is unused */
+#define SOLARIS_sysfs1 (SOLARIS_sysfs_subcall + 1)
+#define SOLARIS_sysfs2 (SOLARIS_sysfs_subcall + 2)
+#define SOLARIS_sysfs3 (SOLARIS_sysfs_subcall + 3)
+
+#define SOLARIS_sysfs_nsubcalls 4
+
+/* solaris_spcall subcalls */
+
+#undef SOLARIS_sigpending
+#define SOLARIS_spcall 99
+
+extern int solaris_sigpending(), solaris_sigfillset();
+
+#define SOLARIS_spcall_subcall 370
+ /* 0 is unused */
+#define SOLARIS_sigpending (SOLARIS_spcall_subcall + 1)
+#define SOLARIS_sigfillset (SOLARIS_spcall_subcall + 2)
+
+#define SOLARIS_spcall_nsubcalls 3
+
+/* solaris_context subcalls */
+
+extern int solaris_getcontext(), solaris_setcontext();
+
+#define SOLARIS_context_subcall 380
+#define SOLARIS_getcontext (SOLARIS_context_subcall + 0)
+#define SOLARIS_setcontext (SOLARIS_context_subcall + 1)
+
+#define SOLARIS_context_nsubcalls 2
+
diff --git a/strace/linux/sparc64/syscallent.h b/strace/linux/sparc64/syscallent.h
new file mode 100644
index 0000000..2872946
--- /dev/null
+++ b/strace/linux/sparc64/syscallent.h
@@ -0,0 +1,353 @@
+ { 1, 0, sys_setup, "setup" }, /* 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 */
+ { 4, TP, sys_wait4, "wait4" }, /* 7 */
+ { 2, TF, sys_creat, "creat" }, /* 8 */
+ { 2, TF, sys_link, "link" }, /* 9 */
+ { 1, TF, sys_unlink, "unlink" }, /* 10 */
+ { 2, TF|TP, sys_execv, "execv" }, /* 11 */
+ { 1, TF, sys_chdir, "chdir" }, /* 12 */
+ { 3, TF, sys_chown, "chown"}, /* 13 */
+ { 3, TF, sys_mknod, "mknod" }, /* 14 */
+ { 2, TF, sys_chmod, "chmod" }, /* 15 */
+ { 3, TF, sys_chown, "lchown" }, /* 16 */
+ { 1, 0, sys_brk, "brk" }, /* 17 */
+ { 4, 0, printargs, "perfctr" }, /* 18 */
+ { 3, 0, sys_lseek, "lseek" }, /* 19 */
+ { 0, 0, sys_getpid, "getpid" }, /* 20 */
+ { 2, 0, sys_capget, "capget" }, /* 21 */
+ { 2, 0, sys_capset, "capset" }, /* 22 */
+ { 1, 0, sys_setuid, "setuid" }, /* 23 */
+ { 0, 0, sys_getuid, "getuid" }, /* 24 */
+ { 1, 0, sys_time, "time" }, /* 25 */
+ { 5, 0, sys_ptrace, "ptrace" }, /* 26 */
+ { 1, 0, sys_alarm, "alarm" }, /* 27 */
+ { 2, TS, sys_sigaltstack,"sigaltstack" }, /* 28 */
+ { 0, TS, sys_pause, "pause" }, /* 29 */
+ { 2, TF, sys_utime, "utime" }, /* 30 */
+ { 3, TF, sys_chown, "lchown32" }, /* 31 */
+ { 3, 0, sys_fchown, "fchown32" }, /* 32 */
+ { 2, TF, sys_access, "access" }, /* 33 */
+ { 1, 0, sys_nice, "nice" }, /* 34 */
+ { 3, TF, sys_chown, "chown32" }, /* 35 */
+ { 0, 0, sys_sync, "sync" }, /* 36 */
+ { 2, TS, sys_kill, "kill" }, /* 37 */
+ { 2, TF, sys_stat, "stat" }, /* 38 */
+ { 4, TF, sys_sendfile, "sendfile" }, /* 39 */
+ { 2, TF, sys_lstat, "lstat" }, /* 40 */
+ { 2, 0, sys_dup, "dup" }, /* 41 */
+ { 0, 0, sys_pipe, "pipe" }, /* 42 */
+ { 1, 0, sys_times, "times" }, /* 43 */
+ { 0, 0, sys_getuid, "getuid32" }, /* 44 */
+ { 2, TF, sys_umount2, "umount" }, /* 45 */
+ { 1, 0, sys_setgid, "setgid" }, /* 46 */
+ { 0, 0, sys_getgid, "getgid" }, /* 47 */
+ { 3, TS, sys_signal, "signal" }, /* 48 */
+ { 0, 0, sys_geteuid, "geteuid" }, /* 49 */
+ { 0, 0, sys_getegid, "getegid" }, /* 50 */
+ { 1, TF, sys_acct, "acct" }, /* 51 */
+ { 2, 0, printargs, "memory_ordering" }, /* 52 */
+ { 0, 0, sys_getgid, "getgid32" }, /* 53 */
+ { 3, 0, sys_ioctl, "ioctl" }, /* 54 */
+ { 3, 0, sys_reboot, "reboot" }, /* 55 */
+ { 6, 0, sys_mmap, "mmap2" }, /* 56 */
+ { 2, TF, sys_symlink, "symlink" }, /* 57 */
+ { 3, TF, sys_readlink, "readlink" }, /* 58 */
+ { 3, TF|TP, sys_execve, "execve" }, /* 59 */
+ { 1, 0, sys_umask, "umask" }, /* 60 */
+ { 1, TF, sys_chroot, "chroot" }, /* 61 */
+ { 2, 0, sys_fstat, "fstat" }, /* 62 */
+ { 2, TF, sys_fstat64, "fstat64" }, /* 63 */
+ { 0, 0, sys_getpagesize,"getpagesize" }, /* 64 */
+ { 3, 0, sys_msync, "msync" }, /* 65 */
+ { 0, TP, sys_vfork, "vfork" }, /* 66 */
+ { 5, TF, sys_pread, "pread" }, /* 67 */
+ { 5, TF, sys_pwrite, "pwrite" }, /* 68 */
+ { 0, 0, sys_geteuid, "geteuid32" }, /* 69 */
+ { 0, 0, sys_getegid, "getegid32" }, /* 70 */
+ { 6, 0, sys_mmap, "mmap" }, /* 71 */
+ { 2, 0, sys_setreuid, "setreuid32" }, /* 72 */
+ { 2, 0, sys_munmap, "munmap" }, /* 73 */
+ { 3, 0, sys_mprotect, "mprotect" }, /* 74 */
+ { 3, 0, sys_madvise, "madvise" }, /* 75 */
+ { 0, 0, sys_vhangup, "vhangup" }, /* 76 */
+ { 3, TF, sys_truncate64, "truncate64" }, /* 77 */
+ { 3, 0, sys_mincore, "mincore" }, /* 78 */
+ { 2, 0, sys_getgroups, "getgroups" }, /* 79 */
+ { 2, 0, sys_setgroups, "setgroups" }, /* 80 */
+ { 0, 0, sys_getpgrp, "getpgrp" }, /* 81 */
+ { 2, 0, sys_setgroups, "setgroups32" }, /* 82 */
+ { 3, 0, sys_setitimer, "setitimer" }, /* 83 */
+ { 2, 0, sys_ftruncate, "ftruncate64" }, /* 84 */
+ { 1, TF, sys_swapon, "swapon" }, /* 85 */
+ { 2, 0, sys_getitimer, "getitimer" }, /* 86 */
+ { 1, 0, sys_setuid, "setuid32" }, /* 87 */
+ { 2, 0, sys_sethostname,"sethostname" }, /* 88 */
+ { 1, 0, sys_setgid, "setgid32" }, /* 89 */
+ { 2, 0, sys_dup2, "dup2" }, /* 90 */
+ { 1, 0, sys_setfsuid, "setfsuid32" }, /* 91 */
+ { 3, 0, sys_fcntl, "fcntl" }, /* 92 */
+ { 5, 0, sys_select, "select" }, /* 93 */
+ { 1, 0, sys_setfsgid, "setfsgid32" }, /* 94 */
+ { 1, 0, sys_fsync, "fsync" }, /* 95 */
+ { 3, 0, sys_setpriority,"setpriority" }, /* 96 */
+ { 3, TN, sys_socket, "socket" }, /* 97 */
+ { 3, TN, sys_connect, "connect" }, /* 98 */
+ { 3, TN, sys_accept, "accept" }, /* 99 */
+ { 2, 0, sys_getpriority,"getpriority" }, /* 100 */
+ { 1, TS, printargs, "rt_sigreturn" }, /* 101 */
+ { 4, TS, sys_rt_sigaction,"rt_sigaction" }, /* 102 */
+ { 4, TS, sys_rt_sigprocmask,"rt_sigprocmask" }, /* 103 */
+ { 2, TS, sys_rt_sigpending,"rt_sigpending" }, /* 104 */
+ { 4, TS, sys_rt_sigtimedwait,"rt_sigtimedwait" },/* 105 */
+ { 3, TS, sys_rt_sigqueueinfo,"rt_sigqueueinfo" },/* 106 */
+ { 2, TS, sys_rt_sigsuspend,"rt_sigsuspend" }, /* 107 */
+ { 3, TS, sys_setresuid, "setresuid" }, /* 108 */
+ { 3, TS, sys_getresuid, "getresuid" }, /* 109 */
+ { 3, TS, sys_setresgid, "setresgid" }, /* 110 */
+ { 3, TS, sys_getresgid, "getresgid" }, /* 111 */
+ { 2, TS, sys_setresgid, "setresgid32" }, /* 112 */
+ { 5, TN, sys_recvmsg, "recvmsg" }, /* 113 */
+ { 5, TN, sys_sendmsg, "sendmsg" }, /* 114 */
+ { 2, 0, sys_getgroups, "getgroups32" }, /* 115 */
+ { 2, 0, sys_gettimeofday,"gettimeofday" }, /* 116 */
+ { 2, 0, sys_getrusage, "getrusage" }, /* 117 */
+ { 5, TN, sys_getsockopt, "getsockopt" }, /* 118 */
+ { 2, TF, sys_getcwd, "getcwd" }, /* 119 */
+ { 3, 0, sys_readv, "readv" }, /* 120 */
+ { 3, 0, sys_writev, "writev" }, /* 121 */
+ { 2, 0, sys_settimeofday,"settimeofday" }, /* 122 */
+ { 3, 0, sys_fchown, "fchown" }, /* 123 */
+ { 2, 0, sys_fchmod, "fchmod" }, /* 124 */
+ { 6, TN, sys_recvfrom, "recvfrom" }, /* 125 */
+ { 2, 0, sys_setreuid, "setreuid" }, /* 126 */
+ { 2, 0, sys_setregid, "setregid" }, /* 127 */
+ { 2, TF, sys_rename, "rename" }, /* 128 */
+ { 2, TF, sys_truncate, "truncate" }, /* 129 */
+ { 2, 0, sys_ftruncate, "ftruncate" }, /* 130 */
+ { 2, 0, sys_flock, "flock" }, /* 131 */
+ { 2, TF, sys_lstat64, "lstat64" }, /* 132 */
+ { 6, TN, sys_sendto, "sendto" }, /* 133 */
+ { 2, TN, sys_shutdown, "shutdown" }, /* 134 */
+ { 4, TN, sys_socketpair, "socketpair" }, /* 135 */
+ { 2, TF, sys_mkdir, "mkdir" }, /* 136 */
+ { 1, TF, sys_rmdir, "rmdir" }, /* 137 */
+ { 2, TF, sys_utimes, "utimes" }, /* 138 */
+ { 2, TF, sys_stat64, "stat64" }, /* 139 */
+ { 4, TF, sys_sendfile64, "sendfile64" }, /* 140 */
+ { 3, TN, sys_getpeername,"getpeername" }, /* 141 */
+ { 5, 0, sys_futex, "futex" }, /* 142 */
+ { 0, 0, printargs, "gettid" }, /* 143 */
+ { 2, 0, sys_getrlimit, "getrlimit" }, /* 144 */
+ { 2, 0, sys_setrlimit, "setrlimit" }, /* 145 */
+ { 2, TF, sys_pivotroot, "pivot_root" }, /* 146 */
+ { 5, 0, sys_prctl, "prctl" }, /* 147 */
+ { 5, 0, printargs, "pciconfig_read" }, /* 148 */
+ { 5, 0, printargs, "pciconfig_write" }, /* 149 */
+ { 3, TN, sys_getsockname,"getsockname" }, /* 150 */
+ { 4, TN, sys_getmsg, "getmsg" }, /* 151 */
+ { 4, TN, sys_putmsg, "putmsg" }, /* 152 */
+ { 3, 0, sys_poll, "poll" }, /* 153 */
+ { 4, 0, sys_getdents64, "getdents64" }, /* 154 */
+ { 3, 0, sys_fcntl, "fcntl64" }, /* 155 */
+ { 4, 0, printargs, "getdirentries" }, /* 156 */
+ { 2, TF, sys_statfs, "statfs" }, /* 157 */
+ { 2, 0, sys_fstatfs, "fstatfs" }, /* 158 */
+ { 1, TF, sys_umount, "oldumount" }, /* 159 */
+ { 3, 0, sys_sched_setaffinity, "sched_setaffinity" },/* 160 */
+ { 3, 0, sys_sched_getaffinity, "sched_getaffinity" },/* 161 */
+ { 2, 0, printargs, "getdomainname" }, /* 162 */
+ { 2, 0, sys_setdomainname,"setdomainname" }, /* 163 */
+ { 5, 0, printargs, "utrap_install" }, /* 164 */
+ { 4, 0, sys_quotactl, "quotactl" }, /* 165 */
+ { 1, 0, printargs, "set_tid_address" }, /* 166 */
+ { 5, TF, sys_mount, "mount" }, /* 167 */
+ { 2, 0, sys_ustat, "ustat" }, /* 168 */
+ { 5, TF, sys_setxattr, "setxattr" }, /* 169 */
+ { 5, TF, sys_setxattr, "lsetxattr" }, /* 170 */
+ { 5, 0, sys_fsetxattr, "fsetxattr" }, /* 171 */
+ { 4, TF, sys_getxattr, "getxattr" }, /* 172 */
+ { 4, TF, sys_getxattr, "lgetxattr" }, /* 173 */
+ { 3, 0, sys_getdents, "getdents" }, /* 174 */
+ { 0, 0, sys_setsid, "setsid" }, /* 175 */
+ { 1, 0, sys_fchdir, "fchdir" }, /* 176 */
+ { 4, 0, sys_fgetxattr, "fgetxattr" }, /* 177 */
+ { 3, TF, sys_listxattr, "listxattr" }, /* 178 */
+ { 3, TF, sys_listxattr, "llistxattr" }, /* 179 */
+ { 3, 0, sys_flistxattr, "flistxattr" }, /* 180 */
+ { 2, TF, sys_removexattr,"removexattr" }, /* 181 */
+ { 2, TF, sys_removexattr,"lremovexattr" }, /* 182 */
+ { 1, TS, sys_sigpending, "sigpending" }, /* 183 */
+ { 5, 0, sys_query_module,"query_module" }, /* 184 */
+ { 2, 0, sys_setpgid, "setpgid" }, /* 185 */
+ { 2, 0, sys_fremovexattr,"fremovexattr" }, /* 186 */
+ { 2, TS, sys_kill, "tkill" }, /* 187 */
+ { 1, TP, sys_exit, "exit_group" }, /* 188 */
+ { 1, 0, sys_uname, "uname" }, /* 189 */
+ { 2, 0, sys_init_module,"init_module" }, /* 190 */
+ { 1, 0, sys_personality,"personality" }, /* 191 */
+ { 5, 0, sys_remap_file_pages,"remap_file_pages" },/* 192 */
+ { 1, 0, sys_epoll_create,"epoll_create" }, /* 193 */
+ { 4, 0, sys_epoll_ctl, "epoll_ctl" }, /* 194 */
+ { 4, 0, sys_epoll_wait, "epoll_wait" }, /* 195 */
+ { 2, 0, sys_ulimit, "ulimit" }, /* 196 */
+ { 0, 0, sys_getppid, "getppid" }, /* 197 */
+ { 3, TS, sys_sigaction, "sigaction" }, /* 198 */
+ { 5, 0, printargs, "sgetmask" }, /* 199 */
+ { 5, 0, printargs, "ssetmask" }, /* 200 */
+ { 3, TS, sys_sigsuspend, "sigsuspend" }, /* 201 */
+ { 2, TF, sys_lstat, "lstat" }, /* 202 */
+ { 1, TF, sys_uselib, "uselib" }, /* 203 */
+ { 3, 0, sys_readdir, "readdir" }, /* 204 */
+ { 4, 0, sys_readahead, "readahead" }, /* 205 */
+ { 2, 0, sys_socketcall, "socketcall" }, /* 206 */
+ { 3, 0, sys_syslog, "syslog" }, /* 207 */
+ { 4, 0, printargs, "lookup_dcookie" }, /* 208 */
+ { 6, 0, printargs, "fadvise64" }, /* 209 */
+ { 6, 0, printargs, "fadvise64_64" }, /* 210 */
+ { 3, TS, sys_tgkill, "tgkill" }, /* 211 */
+ { 3, TP, sys_waitpid, "waitpid" }, /* 212 */
+ { 1, 0, sys_swapoff, "swapoff" }, /* 213 */
+ { 1, 0, sys_sysinfo, "sysinfo" }, /* 214 */
+ { 5, 0, sys_ipc, "ipc" }, /* 215 */
+ { 1, TS, sys_sigreturn, "sigreturn" }, /* 216 */
+ { 5, TP, sys_clone, "clone" }, /* 217 */
+ { 3, 0, sys_modify_ldt, "modify_ldt" }, /* 218 */
+ { 1, 0, sys_adjtimex, "adjtimex" }, /* 219 */
+ { 3, TS, sys_sigprocmask,"sigprocmask" }, /* 220 */
+ { 2, 0, sys_create_module,"create_module" }, /* 221 */
+ { 1, 0, sys_delete_module,"delete_module" },
+ { 1, 0, sys_get_kernel_syms,"get_kernel_syms"}, /* 223 */
+ { 1, 0, sys_getpgid, "getpgid" }, /* 224 */
+ { 0, 0, sys_bdflush, "bdflush" }, /* 225 */
+ { 3, 0, sys_sysfs, "sysfs" }, /* 226 */
+ { 5, 0, sys_afs_syscall,"afs_syscall" }, /* 227 */
+ { 1, 0, sys_setfsuid, "setfsuid" }, /* 228 */
+ { 1, 0, sys_setfsgid, "setfsgid" }, /* 229 */
+ { 5, 0, sys_select, "select" }, /* 230 */
+ { 1, 0, sys_time, "time" }, /* 231 */
+ { 2, TF, sys_stat, "stat" }, /* 232 */
+ { 1, 0, sys_stime, "stime" }, /* 233 */
+ { 3, TF, sys_statfs64, "statfs64" }, /* 234 */
+ { 3, 0, sys_fstatfs64, "fstatfs64" }, /* 235 */
+ { 5, 0, sys_llseek, "_llseek" }, /* 236 */
+ { 2, 0, sys_mlock, "mlock" }, /* 237 */
+ { 2, 0, sys_munlock, "munlock" }, /* 238 */
+ { 2, 0, sys_mlockall, "mlockall" }, /* 239 */
+ { 0, 0, sys_munlockall, "munlockall" }, /* 240 */
+ { 2, 0, sys_sched_setparam,"sched_setparam"}, /* 241 */
+ { 2, 0, sys_sched_getparam,"sched_getparam"}, /* 242 */
+ { 3, 0, sys_sched_setscheduler,"sched_setscheduler"},/* 243 */
+ { 1, 0, sys_sched_getscheduler,"sched_getscheduler"},/* 244 */
+ { 0, 0, sys_sched_yield,"sched_yield" }, /* 245 */
+ { 1,0,sys_sched_get_priority_max,"sched_get_priority_max"},/* 246 */
+ { 1,0,sys_sched_get_priority_min,"sched_get_priority_min"},/* 247 */
+ { 2, 0,sys_sched_rr_get_interval,"sched_rr_get_interval"},/* 248 */
+ { 2, 0, sys_nanosleep, "nanosleep" }, /* 249 */
+ { 4, 0, sys_mremap, "mremap" }, /* 250 */
+ { 1, 0, sys_sysctl, "_sysctl" }, /* 251 */
+ { 1, 0, sys_getsid, "getsid" }, /* 252 */
+ { 1, 0, sys_fdatasync, "fdatasync" }, /* 253 */
+ { 3, 0, printargs, "nfsservctl" }, /* 254 */
+ { 5, 0, printargs, "aplib" }, /* 255 */
+ { 2, 0, sys_clock_settime,"clock_settime" }, /* 256 */
+ { 2, 0, sys_clock_gettime,"clock_gettime" }, /* 257 */
+ { 2, 0, sys_clock_getres,"clock_getres" }, /* 258 */
+ { 4, 0, sys_clock_nanosleep,"clock_nanosleep" },/* 259 */
+ { 3, 0, sys_sched_setaffinity,"sched_setaffinity" },/* 260 */
+ { 3, 0, sys_sched_getaffinity,"sched_getaffinity" },/* 261 */
+ { 4, 0, sys_timer_settime,"timer_settime" }, /* 262 */
+ { 2, 0, sys_timer_gettime,"timer_gettime" }, /* 263 */
+ { 1, 0, sys_timer_getoverrun,"timer_getoverrun" },/* 264 */
+ { 1, 0, sys_timer_delete,"timer_delete" }, /* 265 */
+ { 3, 0, sys_timer_create,"timer_create" }, /* 266 */
+ { 5, 0, printargs, "SYS_267" }, /* 267 */
+ { 5, 0, printargs, "SYS_268" }, /* 268 */
+ { 5, 0, printargs, "SYS_269" }, /* 269 */
+ { 5, 0, printargs, "SYS_270" }, /* 270 */
+ { 5, 0, printargs, "SYS_271" }, /* 271 */
+ { 5, 0, printargs, "SYS_272" }, /* 272 */
+ { 5, 0, printargs, "SYS_273" }, /* 273 */
+ { 5, 0, printargs, "SYS_274" }, /* 274 */
+ { 5, 0, printargs, "SYS_275" }, /* 275 */
+ { 5, 0, printargs, "SYS_276" }, /* 276 */
+ { 5, 0, printargs, "SYS_277" }, /* 277 */
+ { 5, 0, printargs, "SYS_278" }, /* 278 */
+ { 5, 0, printargs, "SYS_279" }, /* 279 */
+ { 5, 0, printargs, "SYS_280" }, /* 280 */
+ { 5, 0, printargs, "SYS_281" }, /* 281 */
+ { 5, 0, printargs, "SYS_282" }, /* 282 */
+ { 5, 0, printargs, "SYS_283" }, /* 283 */
+ { 5, 0, printargs, "SYS_284" }, /* 284 */
+ { 5, 0, printargs, "SYS_285" }, /* 285 */
+ { 5, 0, printargs, "SYS_286" }, /* 286 */
+ { 5, 0, printargs, "SYS_287" }, /* 287 */
+ { 5, 0, printargs, "SYS_288" }, /* 288 */
+ { 5, 0, printargs, "SYS_289" }, /* 289 */
+ { 5, 0, printargs, "SYS_290" }, /* 290 */
+ { 5, 0, printargs, "SYS_291" }, /* 291 */
+ { 5, 0, printargs, "SYS_292" }, /* 292 */
+ { 5, 0, printargs, "SYS_293" }, /* 293 */
+ { 5, 0, printargs, "SYS_294" }, /* 294 */
+ { 5, 0, printargs, "SYS_295" }, /* 295 */
+ { 5, 0, printargs, "SYS_296" }, /* 296 */
+ { 5, 0, printargs, "SYS_297" }, /* 297 */
+ { 5, 0, printargs, "SYS_298" }, /* 298 */
+ { 5, 0, printargs, "SYS_299" }, /* 299 */
+ { 5, 0, printargs, "SYS_300" }, /* 300 */
+ { 5, 0, printargs, "SYS_301" }, /* 301 */
+ { 5, 0, printargs, "SYS_302" }, /* 302 */
+ { 5, 0, printargs, "SYS_303" }, /* 303 */
+ { 5, 0, printargs, "SYS_304" }, /* 304 */
+ { 5, 0, printargs, "SYS_305" }, /* 305 */
+ { 5, 0, printargs, "SYS_306" }, /* 306 */
+ { 5, 0, printargs, "SYS_307" }, /* 307 */
+ { 5, 0, printargs, "SYS_308" }, /* 308 */
+ { 5, 0, printargs, "SYS_309" }, /* 309 */
+ { 5, 0, printargs, "SYS_310" }, /* 310 */
+ { 5, 0, printargs, "SYS_311" }, /* 311 */
+ { 5, 0, printargs, "SYS_312" }, /* 312 */
+ { 5, 0, printargs, "SYS_313" }, /* 313 */
+ { 5, 0, printargs, "SYS_314" }, /* 314 */
+ { 5, 0, printargs, "SYS_315" }, /* 315 */
+ { 5, 0, printargs, "SYS_316" }, /* 316 */
+ { 5, 0, printargs, "SYS_317" }, /* 317 */
+ { 5, 0, printargs, "SYS_318" }, /* 318 */
+ { 5, 0, printargs, "SYS_319" }, /* 319 */
+ { 5, 0, printargs, "SYS_320" }, /* 320 */
+ { 5, 0, printargs, "SYS_321" }, /* 321 */
+ { 5, 0, printargs, "SYS_322" }, /* 322 */
+ { 5, 0, printargs, "SYS_323" }, /* 323 */
+ { 5, 0, printargs, "SYS_324" }, /* 324 */
+ { 5, 0, printargs, "SYS_325" }, /* 325 */
+ { 5, 0, printargs, "SYS_326" }, /* 326 */
+ { 5, 0, printargs, "SYS_327" }, /* 327 */
+ { 5, 0, printargs, "SYS_328" }, /* 328 */
+ { 5, 0, printargs, "SYS_329" }, /* 329 */
+ { 5, 0, printargs, "SYS_330" }, /* 330 */
+ { 5, 0, printargs, "SYS_331" }, /* 331 */
+ { 5, 0, printargs, "SYS_332" }, /* 332 */
+ { 5, 0, printargs, "SYS_333" }, /* 333 */
+ { 5, 0, printargs, "SYS_334" }, /* 334 */
+ { 5, 0, printargs, "SYS_335" }, /* 335 */
+ { 5, 0, printargs, "SYS_336" }, /* 336 */
+ { 5, 0, printargs, "SYS_337" }, /* 337 */
+ { 5, 0, printargs, "SYS_338" }, /* 338 */
+ { 5, 0, printargs, "SYS_339" }, /* 339 */
+ { 5, 0, printargs, "SYS_340" }, /* 340 */
+ { 5, 0, printargs, "SYS_341" }, /* 341 */
+ { 5, 0, printargs, "SYS_342" }, /* 342 */
+ { 5, 0, printargs, "SYS_343" }, /* 343 */
+ { 5, 0, printargs, "SYS_344" }, /* 344 */
+ { 5, 0, printargs, "SYS_345" }, /* 345 */
+ { 5, 0, printargs, "SYS_346" }, /* 346 */
+ { 5, 0, printargs, "SYS_347" }, /* 347 */
+ { 5, 0, printargs, "SYS_348" }, /* 348 */
+ { 5, 0, printargs, "SYS_349" }, /* 349 */
+ { 5, 0, printargs, "SYS_350" }, /* 350 */
+ { 5, 0, printargs, "SYS_351" }, /* 351 */
+ { 5, 0, printargs, "SYS_352" }, /* 352 */
diff --git a/strace/linux/sparc64/syscallent1.h b/strace/linux/sparc64/syscallent1.h
new file mode 100644
index 0000000..4c4d813
--- /dev/null
+++ b/strace/linux/sparc64/syscallent1.h
@@ -0,0 +1,439 @@
+/*
+ * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
+ * 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.
+ *
+ * $Id: syscallent1.h,v 1.1 2004/07/12 07:44:08 roland Exp $
+ */
+
+ { 6, 0, solaris_syscall, "syscall" }, /* 0 */
+ { 6, TP, solaris_exit, "_exit" }, /* 1 */
+ { 6, TP, solaris_fork, "fork" }, /* 2 */
+ { 6, 0, solaris_read, "read" }, /* 3 */
+ { 6, 0, solaris_write, "write" }, /* 4 */
+ { 6, TF, solaris_open, "open" }, /* 5 */
+ { 6, 0, solaris_close, "close" }, /* 6 */
+ { 6, TP, solaris_wait, "wait" }, /* 7 */
+ { 6, TF, solaris_creat, "creat" }, /* 8 */
+ { 6, TF, solaris_link, "link" }, /* 9 */
+ { 6, TF, solaris_unlink, "unlink" }, /* 10 */
+ { 6, TF|TP, solaris_exec, "exec" }, /* 11 */
+ { 6, TF, solaris_chdir, "chdir" }, /* 12 */
+ { 6, 0, solaris_time, "time" }, /* 13 */
+ { 6, TF, solaris_mknod, "mknod" }, /* 14 */
+ { 6, TF, solaris_chmod, "chmod" }, /* 15 */
+ { 6, TF, solaris_chown, "chown" }, /* 16 */
+ { 6, 0, solaris_brk, "brk" }, /* 17 */
+ { 6, TF, solaris_stat, "stat" }, /* 18 */
+ { 6, 0, solaris_lseek, "lseek" }, /* 19 */
+ { 6, 0, solaris_getpid, "getpid" }, /* 20 */
+ { 6, TF, solaris_mount, "mount" }, /* 21 */
+ { 6, TF, solaris_umount, "umount" }, /* 22 */
+ { 6, 0, solaris_setuid, "setuid" }, /* 23 */
+ { 6, 0, solaris_getuid, "getuid" }, /* 24 */
+ { 6, 0, solaris_stime, "stime" }, /* 25 */
+ { 6, 0, solaris_ptrace, "ptrace" }, /* 26 */
+ { 6, 0, solaris_alarm, "alarm" }, /* 27 */
+ { 6, 0, solaris_fstat, "fstat" }, /* 28 */
+ { 6, TS, solaris_pause, "pause" }, /* 29 */
+ { 6, TF, solaris_utime, "utime" }, /* 30 */
+ { 6, 0, solaris_stty, "stty" }, /* 31 */
+ { 6, 0, solaris_gtty, "gtty" }, /* 32 */
+ { 6, TF, solaris_access, "access" }, /* 33 */
+ { 6, 0, solaris_nice, "nice" }, /* 34 */
+ { 6, TF, solaris_statfs, "statfs" }, /* 35 */
+ { 6, 0, solaris_sync, "sync" }, /* 36 */
+ { 6, TS, solaris_kill, "kill" }, /* 37 */
+ { 6, 0, solaris_fstatfs, "fstatfs" }, /* 38 */
+ { 6, 0, solaris_pgrpsys, "pgrpsys" }, /* 39 */
+ { 6, 0, solaris_xenix, "xenix" }, /* 40 */
+ { 6, 0, solaris_dup, "dup" }, /* 41 */
+ { 6, 0, solaris_pipe, "pipe" }, /* 42 */
+ { 6, 0, solaris_times, "times" }, /* 43 */
+ { 6, 0, solaris_profil, "profil" }, /* 44 */
+ { 6, 0, solaris_plock, "plock" }, /* 45 */
+ { 6, 0, solaris_setgid, "setgid" }, /* 46 */
+ { 6, 0, solaris_getgid, "getgid" }, /* 47 */
+ { 6, 0, solaris_sigcall, "sigcall" }, /* 48 */
+ { 6, TI, solaris_msgsys, "msgsys" }, /* 49 */
+ { 6, 0, solaris_syssun, "syssun" }, /* 50 */
+ { 6, TF, solaris_acct, "acct" }, /* 51 */
+ { 6, TI, solaris_shmsys, "shmsys" }, /* 52 */
+ { 6, TI, solaris_semsys, "semsys" }, /* 53 */
+ { 6, 0, solaris_ioctl, "ioctl" }, /* 54 */
+ { 6, 0, solaris_uadmin, "uadmin" }, /* 55 */
+ { 6, 0, solaris_sysmp, "sysmp" }, /* 56 */
+ { 6, 0, solaris_utssys, "utssys" }, /* 57 */
+ { 6, 0, solaris_fdsync, "fdsync" }, /* 58 */
+ { 6, TF|TP, solaris_execve, "execve" }, /* 59 */
+ { 6, 0, solaris_umask, "umask" }, /* 60 */
+ { 6, TF, solaris_chroot, "chroot" }, /* 61 */
+ { 6, 0, solaris_fcntl, "fcntl" }, /* 62 */
+ { 6, 0, solaris_ulimit, "ulimit" }, /* 63 */
+ { 6, 0, printargs, "SYS_64" }, /* 64 */
+ { 6, 0, printargs, "SYS_65" }, /* 65 */
+ { 6, 0, printargs, "SYS_66" }, /* 66 */
+ { 6, 0, printargs, "SYS_67" }, /* 67 */
+ { 6, 0, printargs, "SYS_68" }, /* 68 */
+ { 6, 0, printargs, "SYS_69" }, /* 69 */
+ { 6, 0, printargs, "SYS_70" }, /* 70 */
+ { 6, 0, printargs, "SYS_71" }, /* 71 */
+ { 6, 0, printargs, "SYS_72" }, /* 72 */
+ { 6, 0, printargs, "SYS_73" }, /* 73 */
+ { 6, 0, printargs, "SYS_74" }, /* 74 */
+ { 6, 0, printargs, "SYS_75" }, /* 75 */
+ { 6, 0, printargs, "SYS_76" }, /* 76 */
+ { 6, 0, printargs, "SYS_77" }, /* 77 */
+ { 6, 0, printargs, "SYS_78" }, /* 78 */
+ { 6, TF, solaris_rmdir, "rmdir" }, /* 79 */
+ { 6, TF, solaris_mkdir, "mkdir" }, /* 80 */
+ { 6, 0, solaris_getdents, "getdents" }, /* 81 */
+ { 6, 0, solaris_sginap, "sginap" }, /* 82 */
+ { 6, 0, solaris_sgikopt, "sgikopt" }, /* 83 */
+ { 6, 0, solaris_sysfs, "sysfs" }, /* 84 */
+ { 6, TN, sys_getmsg, "getmsg" }, /* 85 */
+ { 6, TN, sys_putmsg, "putmsg" }, /* 86 */
+ { 6, TN, solaris_poll, "poll" }, /* 87 */
+ { 6, TF, solaris_lstat, "lstat" }, /* 88 */
+ { 6, TF, solaris_symlink, "symlink" }, /* 89 */
+ { 6, TF, solaris_readlink, "readlink" }, /* 90 */
+ { 6, 0, solaris_setgroups, "setgroups" }, /* 91 */
+ { 6, 0, solaris_getgroups, "getgroups" }, /* 92 */
+ { 6, 0, solaris_fchmod, "fchmod" }, /* 93 */
+ { 6, 0, solaris_fchown, "fchown" }, /* 94 */
+ { 6, TS, solaris_sigprocmask, "sigprocmask" }, /* 95 */
+ { 6, TS, solaris_sigsuspend, "sigsuspend" }, /* 96 */
+ { 6, TS, solaris_sigaltstack, "sigaltstack" }, /* 97 */
+ { 6, TS, solaris_sigaction, "sigaction" }, /* 98 */
+ { 6, 0, solaris_spcall, "spcall" }, /* 99 */
+ { 6, 0, solaris_context, "context" }, /* 100 */
+ { 6, 0, solaris_evsys, "evsys" }, /* 101 */
+ { 6, 0, solaris_evtrapret, "evtrapret" }, /* 102 */
+ { 6, TF, solaris_statvfs, "statvfs" }, /* 103 */
+ { 6, 0, solaris_fstatvfs, "fstatvfs" }, /* 104 */
+ { 6, 0, printargs, "SYS_105" }, /* 105 */
+ { 6, 0, solaris_nfssys, "nfssys" }, /* 106 */
+ { 6, TP, solaris_waitid, "waitid" }, /* 107 */
+ { 6, 0, solaris_sigsendsys, "sigsendsys" }, /* 108 */
+ { 6, 0, solaris_hrtsys, "hrtsys" }, /* 109 */
+ { 6, 0, solaris_acancel, "acancel" }, /* 110 */
+ { 6, 0, solaris_async, "async" }, /* 111 */
+ { 6, 0, solaris_priocntlsys, "priocntlsys" }, /* 112 */
+ { 6, TF, solaris_pathconf, "pathconf" }, /* 113 */
+ { 6, 0, solaris_mincore, "mincore" }, /* 114 */
+ { 6, 0, solaris_mmap, "mmap" }, /* 115 */
+ { 6, 0, solaris_mprotect, "mprotect" }, /* 116 */
+ { 6, 0, solaris_munmap, "munmap" }, /* 117 */
+ { 6, 0, solaris_fpathconf, "fpathconf" }, /* 118 */
+ { 6, TP, solaris_vfork, "vfork" }, /* 119 */
+ { 6, 0, solaris_fchdir, "fchdir" }, /* 120 */
+ { 6, 0, solaris_readv, "readv" }, /* 121 */
+ { 6, 0, solaris_writev, "writev" }, /* 122 */
+ { 6, TF, solaris_xstat, "xstat" }, /* 123 */
+ { 6, TF, solaris_lxstat, "lxstat" }, /* 124 */
+ { 6, 0, solaris_fxstat, "fxstat" }, /* 125 */
+ { 6, TF, solaris_xmknod, "xmknod" }, /* 126 */
+ { 6, 0, solaris_clocal, "clocal" }, /* 127 */
+ { 6, 0, solaris_setrlimit, "setrlimit" }, /* 128 */
+ { 6, 0, solaris_getrlimit, "getrlimit" }, /* 129 */
+ { 6, TF, solaris_lchown, "lchown" }, /* 130 */
+ { 6, 0, solaris_memcntl, "memcntl" }, /* 131 */
+ { 6, TN, solaris_getpmsg, "getpmsg" }, /* 132 */
+ { 6, TN, solaris_putpmsg, "putpmsg" }, /* 133 */
+ { 6, TF, solaris_rename, "rename" }, /* 134 */
+ { 6, 0, solaris_uname, "uname" }, /* 135 */
+ { 6, 0, solaris_setegid, "setegid" }, /* 136 */
+ { 6, 0, solaris_sysconfig, "sysconfig" }, /* 137 */
+ { 6, 0, solaris_adjtime, "adjtime" }, /* 138 */
+ { 6, 0, solaris_sysinfo, "sysinfo" }, /* 139 */
+ { 6, 0, printargs, "SYS_140" }, /* 140 */
+ { 6, 0, solaris_seteuid, "seteuid" }, /* 141 */
+ { 6, 0, solaris_vtrace, "vtrace" }, /* 142 */
+ { 6, TP, solaris_fork1, "fork1" }, /* 143 */
+ { 6, TS, solaris_sigtimedwait, "sigtimedwait" }, /* 144 */
+ { 6, 0, solaris_lwp_info, "lwp_info" }, /* 145 */
+ { 6, 0, solaris_yield, "yield" }, /* 146 */
+ { 6, 0, solaris_lwp_sema_wait, "lwp_sema_wait" }, /* 147 */
+ { 6, 0, solaris_lwp_sema_post, "lwp_sema_post" }, /* 148 */
+ { 6, 0, printargs, "SYS_149" }, /* 149 */
+ { 6, 0, printargs, "SYS_150" }, /* 150 */
+ { 6, 0, printargs, "SYS_151" }, /* 151 */
+ { 6, 0, solaris_modctl, "modctl" }, /* 152 */
+ { 6, 0, solaris_fchroot, "fchroot" }, /* 153 */
+ { 6, TF, solaris_utimes, "utimes" }, /* 154 */
+ { 6, 0, solaris_vhangup, "vhangup" }, /* 155 */
+ { 6, 0, solaris_gettimeofday, "gettimeofday" }, /* 156 */
+ { 6, 0, solaris_getitimer, "getitimer" }, /* 157 */
+ { 6, 0, solaris_setitimer, "setitimer" }, /* 158 */
+ { 6, 0, solaris_lwp_create, "lwp_create" }, /* 159 */
+ { 6, 0, solaris_lwp_exit, "lwp_exit" }, /* 160 */
+ { 6, 0, solaris_lwp_suspend, "lwp_suspend" }, /* 161 */
+ { 6, 0, solaris_lwp_continue, "lwp_continue" }, /* 162 */
+ { 6, 0, solaris_lwp_kill, "lwp_kill" }, /* 163 */
+ { 6, 0, solaris_lwp_self, "lwp_self" }, /* 164 */
+ { 6, 0, solaris_lwp_setprivate, "lwp_setprivate"}, /* 165 */
+ { 6, 0, solaris_lwp_getprivate, "lwp_getprivate"}, /* 166 */
+ { 6, 0, solaris_lwp_wait, "lwp_wait" }, /* 167 */
+ { 6, 0, solaris_lwp_mutex_unlock,"lwp_mutex_unlock"}, /* 168 */
+ { 6, 0, solaris_lwp_mutex_lock, "lwp_mutex_lock"}, /* 169 */
+ { 6, 0, solaris_lwp_cond_wait, "lwp_cond_wait"}, /* 170 */
+ { 6, 0, solaris_lwp_cond_signal,"lwp_cond_signal"}, /* 171 */
+ { 6, 0, solaris_lwp_cond_broadcast,"lwp_cond_broadcast"}, /* 172 */
+ { 6, 0, solaris_pread, "pread" }, /* 173 */
+ { 6, 0, solaris_pwrite, "pwrite" }, /* 174 */
+ { 6, 0, solaris_llseek, "llseek" }, /* 175 */
+ { 6, 0, solaris_inst_sync, "inst_sync" }, /* 176 */
+ { 6, 0, printargs, "SYS_177" }, /* 177 */
+ { 6, 0, printargs, "SYS_178" }, /* 178 */
+ { 6, 0, printargs, "SYS_179" }, /* 179 */
+ { 6, 0, printargs, "SYS_180" }, /* 180 */
+ { 6, 0, printargs, "SYS_181" }, /* 181 */
+ { 6, 0, printargs, "SYS_182" }, /* 182 */
+ { 6, 0, printargs, "SYS_183" }, /* 183 */
+ { 6, 0, printargs, "SYS_184" }, /* 184 */
+ { 6, 0, printargs, "SYS_185" }, /* 185 */
+ { 6, 0, solaris_auditsys, "auditsys" }, /* 186 */
+ { 6, 0, solaris_processor_bind, "processor_bind"}, /* 187 */
+ { 6, 0, solaris_processor_info, "processor_info"}, /* 188 */
+ { 6, 0, solaris_p_online, "p_online" }, /* 189 */
+ { 6, 0, solaris_sigqueue, "sigqueue" }, /* 190 */
+ { 6, 0, solaris_clock_gettime, "clock_gettime" }, /* 191 */
+ { 6, 0, solaris_clock_settime, "clock_settime" }, /* 192 */
+ { 6, 0, solaris_clock_getres, "clock_getres" }, /* 193 */
+ { 6, 0, solaris_timer_create, "timer_create" }, /* 194 */
+ { 6, 0, solaris_timer_delete, "timer_delete" }, /* 195 */
+ { 6, 0, solaris_timer_settime, "timer_settime" }, /* 196 */
+ { 6, 0, solaris_timer_gettime, "timer_gettime" }, /* 197 */
+ { 6, 0, solaris_timer_getoverrun,"timer_getoverrun"}, /* 198 */
+ { 6, 0, solaris_nanosleep, "nanosleep" }, /* 199 */
+ { 6, 0, printargs, "SYS_200" }, /* 200 */
+ { 6, 0, printargs, "SYS_201" }, /* 201 */
+ { 6, 0, printargs, "SYS_202" }, /* 202 */
+ { 6, 0, printargs, "SYS_203" }, /* 203 */
+ { 6, 0, printargs, "SYS_204" }, /* 204 */
+ { 6, 0, printargs, "SYS_205" }, /* 205 */
+ { 6, 0, printargs, "SYS_206" }, /* 206 */
+ { 6, 0, printargs, "SYS_207" }, /* 207 */
+ { 6, 0, printargs, "SYS_208" }, /* 208 */
+ { 6, 0, printargs, "SYS_209" }, /* 209 */
+ { 6, 0, printargs, "SYS_210" }, /* 210 */
+ { 6, 0, printargs, "SYS_211" }, /* 211 */
+ { 6, 0, printargs, "SYS_212" }, /* 212 */
+ { 6, 0, printargs, "SYS_213" }, /* 213 */
+ { 6, 0, printargs, "SYS_214" }, /* 214 */
+ { 6, 0, printargs, "SYS_215" }, /* 215 */
+ { 6, 0, printargs, "SYS_216" }, /* 216 */
+ { 6, 0, printargs, "SYS_217" }, /* 217 */
+ { 6, 0, printargs, "SYS_218" }, /* 218 */
+ { 6, 0, printargs, "SYS_219" }, /* 219 */
+ { 6, 0, printargs, "SYS_220" }, /* 220 */
+ { 6, 0, printargs, "SYS_221" }, /* 221 */
+ { 6, 0, printargs, "SYS_222" }, /* 222 */
+ { 6, 0, printargs, "SYS_223" }, /* 223 */
+ { 6, 0, printargs, "SYS_224" }, /* 224 */
+ { 6, 0, printargs, "SYS_225" }, /* 225 */
+ { 6, 0, printargs, "SYS_226" }, /* 226 */
+ { 6, 0, printargs, "SYS_227" }, /* 227 */
+ { 6, 0, printargs, "SYS_228" }, /* 228 */
+ { 6, 0, printargs, "SYS_229" }, /* 229 */
+ { 6, 0, printargs, "SYS_230" }, /* 230 */
+ { 6, 0, printargs, "SYS_231" }, /* 231 */
+ { 6, 0, printargs, "SYS_232" }, /* 232 */
+ { 6, 0, printargs, "SYS_233" }, /* 233 */
+ { 6, 0, printargs, "SYS_234" }, /* 234 */
+ { 6, 0, printargs, "SYS_235" }, /* 235 */
+ { 6, 0, printargs, "SYS_236" }, /* 236 */
+ { 6, 0, printargs, "SYS_237" }, /* 237 */
+ { 6, 0, printargs, "SYS_238" }, /* 238 */
+ { 6, 0, printargs, "SYS_239" }, /* 239 */
+ { 6, 0, printargs, "SYS_240" }, /* 240 */
+ { 6, 0, printargs, "SYS_241" }, /* 241 */
+ { 6, 0, printargs, "SYS_242" }, /* 242 */
+ { 6, 0, printargs, "SYS_243" }, /* 243 */
+ { 6, 0, printargs, "SYS_244" }, /* 244 */
+ { 6, 0, printargs, "SYS_245" }, /* 245 */
+ { 6, 0, printargs, "SYS_246" }, /* 246 */
+ { 6, 0, printargs, "SYS_247" }, /* 247 */
+ { 6, 0, printargs, "SYS_248" }, /* 248 */
+ { 6, 0, printargs, "SYS_249" }, /* 249 */
+ { 6, 0, printargs, "SYS_250" }, /* 250 */
+ { 6, 0, printargs, "SYS_251" }, /* 251 */
+ { 6, 0, printargs, "SYS_252" }, /* 252 */
+ { 6, 0, printargs, "SYS_253" }, /* 253 */
+ { 6, 0, printargs, "SYS_254" }, /* 254 */
+ { 6, 0, printargs, "SYS_255" }, /* 255 */
+ { 6, 0, printargs, "SYS_256" }, /* 256 */
+ { 6, 0, printargs, "SYS_257" }, /* 257 */
+ { 6, 0, printargs, "SYS_258" }, /* 258 */
+ { 6, 0, printargs, "SYS_259" }, /* 259 */
+ { 6, 0, printargs, "SYS_260" }, /* 260 */
+ { 6, 0, printargs, "SYS_261" }, /* 261 */
+ { 6, 0, printargs, "SYS_262" }, /* 262 */
+ { 6, 0, printargs, "SYS_263" }, /* 263 */
+ { 6, 0, printargs, "SYS_264" }, /* 264 */
+ { 6, 0, printargs, "SYS_265" }, /* 265 */
+ { 6, 0, printargs, "SYS_266" }, /* 266 */
+ { 6, 0, printargs, "SYS_267" }, /* 267 */
+ { 6, 0, printargs, "SYS_268" }, /* 268 */
+ { 6, 0, printargs, "SYS_269" }, /* 269 */
+ { 6, 0, printargs, "SYS_270" }, /* 270 */
+ { 6, 0, printargs, "SYS_271" }, /* 271 */
+ { 6, 0, printargs, "SYS_272" }, /* 272 */
+ { 6, 0, printargs, "SYS_273" }, /* 273 */
+ { 6, 0, printargs, "SYS_274" }, /* 274 */
+ { 6, 0, printargs, "SYS_275" }, /* 275 */
+ { 6, 0, printargs, "SYS_276" }, /* 276 */
+ { 6, 0, printargs, "SYS_277" }, /* 277 */
+ { 6, 0, printargs, "SYS_278" }, /* 278 */
+ { 6, 0, printargs, "SYS_279" }, /* 279 */
+ { 6, 0, printargs, "SYS_280" }, /* 280 */
+ { 6, 0, printargs, "SYS_281" }, /* 281 */
+ { 6, 0, printargs, "SYS_282" }, /* 282 */
+ { 6, 0, printargs, "SYS_283" }, /* 283 */
+ { 6, 0, printargs, "SYS_284" }, /* 284 */
+ { 6, 0, printargs, "SYS_285" }, /* 285 */
+ { 6, 0, printargs, "SYS_286" }, /* 286 */
+ { 6, 0, printargs, "SYS_287" }, /* 287 */
+ { 6, 0, printargs, "SYS_288" }, /* 288 */
+ { 6, 0, printargs, "SYS_289" }, /* 289 */
+ { 6, 0, printargs, "SYS_290" }, /* 290 */
+ { 6, 0, printargs, "SYS_291" }, /* 291 */
+ { 6, 0, printargs, "SYS_292" }, /* 292 */
+ { 6, 0, printargs, "SYS_293" }, /* 293 */
+ { 6, 0, printargs, "SYS_294" }, /* 294 */
+ { 6, 0, printargs, "SYS_295" }, /* 295 */
+ { 6, 0, printargs, "SYS_296" }, /* 296 */
+ { 6, 0, printargs, "SYS_297" }, /* 297 */
+ { 6, 0, printargs, "SYS_298" }, /* 298 */
+ { 6, 0, printargs, "SYS_299" }, /* 299 */
+
+ { 6, 0, solaris_getpgrp, "getpgrp" }, /* 300 */
+ { 6, 0, solaris_setpgrp, "setpgrp" }, /* 301 */
+ { 6, 0, solaris_getsid, "getsid" }, /* 302 */
+ { 6, 0, solaris_setsid, "setsid" }, /* 303 */
+ { 6, 0, solaris_getpgid, "getpgid" }, /* 304 */
+ { 6, 0, solaris_setpgid, "setpgid" }, /* 305 */
+ { 6, 0, printargs, "SYS_306" }, /* 306 */
+ { 6, 0, printargs, "SYS_307" }, /* 307 */
+ { 6, 0, printargs, "SYS_308" }, /* 308 */
+ { 6, 0, printargs, "SYS_309" }, /* 309 */
+
+ { 6, TS, solaris_signal, "signal" }, /* 310 */
+ { 6, TS, solaris_sigset, "sigset" }, /* 311 */
+ { 6, TS, solaris_sighold, "sighold" }, /* 312 */
+ { 6, TS, solaris_sigrelse, "sigrelse" }, /* 313 */
+ { 6, TS, solaris_sigignore, "sigignore" }, /* 314 */
+ { 6, TS, solaris_sigpause, "sigpause" }, /* 315 */
+ { 6, 0, printargs, "SYS_316" }, /* 316 */
+ { 6, 0, printargs, "SYS_317" }, /* 317 */
+ { 6, 0, printargs, "SYS_318" }, /* 318 */
+ { 6, 0, printargs, "SYS_319" }, /* 319 */
+
+ { 6, TI, solaris_msgget, "msgget" }, /* 320 */
+ { 6, TI, solaris_msgctl, "msgctl" }, /* 321 */
+ { 6, TI, solaris_msgrcv, "msgrcv" }, /* 322 */
+ { 6, TI, solaris_msgsnd, "msgsnd" }, /* 323 */
+ { 6, 0, printargs, "SYS_324" }, /* 324 */
+ { 6, 0, printargs, "SYS_325" }, /* 325 */
+ { 6, 0, printargs, "SYS_326" }, /* 326 */
+ { 6, 0, printargs, "SYS_327" }, /* 327 */
+ { 6, 0, printargs, "SYS_328" }, /* 328 */
+ { 6, 0, printargs, "SYS_329" }, /* 329 */
+
+ { 6, TI, solaris_shmat, "shmat" }, /* 330 */
+ { 6, TI, solaris_shmctl, "shmctl" }, /* 331 */
+ { 6, TI, solaris_shmdt, "shmdt" }, /* 332 */
+ { 6, TI, solaris_shmget, "shmget" }, /* 333 */
+ { 6, 0, printargs, "SYS_334" }, /* 334 */
+ { 6, 0, printargs, "SYS_335" }, /* 335 */
+ { 6, 0, printargs, "SYS_336" }, /* 336 */
+ { 6, 0, printargs, "SYS_337" }, /* 337 */
+ { 6, 0, printargs, "SYS_338" }, /* 338 */
+ { 6, 0, printargs, "SYS_339" }, /* 339 */
+
+ { 6, TI, solaris_semctl, "semctl" }, /* 340 */
+ { 6, TI, solaris_semget, "semget" }, /* 341 */
+ { 6, TI, solaris_semop, "semop" }, /* 342 */
+ { 6, 0, printargs, "SYS_343" }, /* 343 */
+ { 6, 0, printargs, "SYS_344" }, /* 344 */
+ { 6, 0, printargs, "SYS_345" }, /* 345 */
+ { 6, 0, printargs, "SYS_346" }, /* 346 */
+ { 6, 0, printargs, "SYS_347" }, /* 347 */
+ { 6, 0, printargs, "SYS_348" }, /* 348 */
+ { 6, 0, printargs, "SYS_349" }, /* 349 */
+
+ { 6, 0, solaris_olduname, "olduname" }, /* 350 */
+ { 6, 0, printargs, "utssys1" }, /* 351 */
+ { 6, 0, solaris_ustat, "ustat" }, /* 352 */
+ { 6, 0, solaris_fusers, "fusers" }, /* 353 */
+ { 6, 0, printargs, "SYS_354" }, /* 354 */
+ { 6, 0, printargs, "SYS_355" }, /* 355 */
+ { 6, 0, printargs, "SYS_356" }, /* 356 */
+ { 6, 0, printargs, "SYS_357" }, /* 357 */
+ { 6, 0, printargs, "SYS_358" }, /* 358 */
+ { 6, 0, printargs, "SYS_359" }, /* 359 */
+
+ { 6, 0, printargs, "sysfs0" }, /* 360 */
+ { 6, 0, solaris_sysfs1, "sysfs1" }, /* 361 */
+ { 6, 0, solaris_sysfs2, "sysfs2" }, /* 362 */
+ { 6, 0, solaris_sysfs3, "sysfs3" }, /* 363 */
+ { 6, 0, printargs, "SYS_364" }, /* 364 */
+ { 6, 0, printargs, "SYS_365" }, /* 365 */
+ { 6, 0, printargs, "SYS_366" }, /* 366 */
+ { 6, 0, printargs, "SYS_367" }, /* 367 */
+ { 6, 0, printargs, "SYS_368" }, /* 368 */
+ { 6, 0, printargs, "SYS_369" }, /* 369 */
+
+ { 6, 0, printargs, "spcall0" }, /* 370 */
+ { 6, TS, solaris_sigpending, "sigpending" }, /* 371 */
+ { 6, TS, solaris_sigfillset, "sigfillset" }, /* 372 */
+ { 6, 0, printargs, "SYS_373" }, /* 373 */
+ { 6, 0, printargs, "SYS_374" }, /* 374 */
+ { 6, 0, printargs, "SYS_375" }, /* 375 */
+ { 6, 0, printargs, "SYS_376" }, /* 376 */
+ { 6, 0, printargs, "SYS_377" }, /* 377 */
+ { 6, 0, printargs, "SYS_378" }, /* 378 */
+ { 6, 0, printargs, "SYS_379" }, /* 379 */
+
+ { 6, 0, solaris_getcontext, "getcontext" }, /* 380 */
+ { 6, 0, solaris_setcontext, "setcontext" }, /* 381 */
+ { 6, 0, printargs, "SYS_382" }, /* 382 */
+ { 6, 0, printargs, "SYS_383" }, /* 383 */
+ { 6, 0, printargs, "SYS_384" }, /* 384 */
+ { 6, 0, printargs, "SYS_385" }, /* 385 */
+ { 6, 0, printargs, "SYS_386" }, /* 386 */
+ { 6, 0, printargs, "SYS_387" }, /* 387 */
+ { 6, 0, printargs, "SYS_388" }, /* 388 */
+ { 6, 0, printargs, "SYS_389" }, /* 389 */
+
+ { 6, 0, printargs, "SYS_390" }, /* 390 */
+ { 6, 0, printargs, "SYS_391" }, /* 391 */
+ { 6, 0, printargs, "SYS_392" }, /* 392 */
+ { 6, 0, printargs, "SYS_393" }, /* 393 */
+ { 6, 0, printargs, "SYS_394" }, /* 394 */
+ { 6, 0, printargs, "SYS_395" }, /* 395 */
+ { 6, 0, printargs, "SYS_396" }, /* 396 */
+ { 6, 0, printargs, "SYS_397" }, /* 397 */
+ { 6, 0, printargs, "SYS_398" }, /* 398 */
+ { 6, 0, printargs, "SYS_399" }, /* 399 */
diff --git a/strace/linux/sparc64/syscallent2.h b/strace/linux/sparc64/syscallent2.h
new file mode 100644
index 0000000..2872946
--- /dev/null
+++ b/strace/linux/sparc64/syscallent2.h
@@ -0,0 +1,353 @@
+ { 1, 0, sys_setup, "setup" }, /* 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 */
+ { 4, TP, sys_wait4, "wait4" }, /* 7 */
+ { 2, TF, sys_creat, "creat" }, /* 8 */
+ { 2, TF, sys_link, "link" }, /* 9 */
+ { 1, TF, sys_unlink, "unlink" }, /* 10 */
+ { 2, TF|TP, sys_execv, "execv" }, /* 11 */
+ { 1, TF, sys_chdir, "chdir" }, /* 12 */
+ { 3, TF, sys_chown, "chown"}, /* 13 */
+ { 3, TF, sys_mknod, "mknod" }, /* 14 */
+ { 2, TF, sys_chmod, "chmod" }, /* 15 */
+ { 3, TF, sys_chown, "lchown" }, /* 16 */
+ { 1, 0, sys_brk, "brk" }, /* 17 */
+ { 4, 0, printargs, "perfctr" }, /* 18 */
+ { 3, 0, sys_lseek, "lseek" }, /* 19 */
+ { 0, 0, sys_getpid, "getpid" }, /* 20 */
+ { 2, 0, sys_capget, "capget" }, /* 21 */
+ { 2, 0, sys_capset, "capset" }, /* 22 */
+ { 1, 0, sys_setuid, "setuid" }, /* 23 */
+ { 0, 0, sys_getuid, "getuid" }, /* 24 */
+ { 1, 0, sys_time, "time" }, /* 25 */
+ { 5, 0, sys_ptrace, "ptrace" }, /* 26 */
+ { 1, 0, sys_alarm, "alarm" }, /* 27 */
+ { 2, TS, sys_sigaltstack,"sigaltstack" }, /* 28 */
+ { 0, TS, sys_pause, "pause" }, /* 29 */
+ { 2, TF, sys_utime, "utime" }, /* 30 */
+ { 3, TF, sys_chown, "lchown32" }, /* 31 */
+ { 3, 0, sys_fchown, "fchown32" }, /* 32 */
+ { 2, TF, sys_access, "access" }, /* 33 */
+ { 1, 0, sys_nice, "nice" }, /* 34 */
+ { 3, TF, sys_chown, "chown32" }, /* 35 */
+ { 0, 0, sys_sync, "sync" }, /* 36 */
+ { 2, TS, sys_kill, "kill" }, /* 37 */
+ { 2, TF, sys_stat, "stat" }, /* 38 */
+ { 4, TF, sys_sendfile, "sendfile" }, /* 39 */
+ { 2, TF, sys_lstat, "lstat" }, /* 40 */
+ { 2, 0, sys_dup, "dup" }, /* 41 */
+ { 0, 0, sys_pipe, "pipe" }, /* 42 */
+ { 1, 0, sys_times, "times" }, /* 43 */
+ { 0, 0, sys_getuid, "getuid32" }, /* 44 */
+ { 2, TF, sys_umount2, "umount" }, /* 45 */
+ { 1, 0, sys_setgid, "setgid" }, /* 46 */
+ { 0, 0, sys_getgid, "getgid" }, /* 47 */
+ { 3, TS, sys_signal, "signal" }, /* 48 */
+ { 0, 0, sys_geteuid, "geteuid" }, /* 49 */
+ { 0, 0, sys_getegid, "getegid" }, /* 50 */
+ { 1, TF, sys_acct, "acct" }, /* 51 */
+ { 2, 0, printargs, "memory_ordering" }, /* 52 */
+ { 0, 0, sys_getgid, "getgid32" }, /* 53 */
+ { 3, 0, sys_ioctl, "ioctl" }, /* 54 */
+ { 3, 0, sys_reboot, "reboot" }, /* 55 */
+ { 6, 0, sys_mmap, "mmap2" }, /* 56 */
+ { 2, TF, sys_symlink, "symlink" }, /* 57 */
+ { 3, TF, sys_readlink, "readlink" }, /* 58 */
+ { 3, TF|TP, sys_execve, "execve" }, /* 59 */
+ { 1, 0, sys_umask, "umask" }, /* 60 */
+ { 1, TF, sys_chroot, "chroot" }, /* 61 */
+ { 2, 0, sys_fstat, "fstat" }, /* 62 */
+ { 2, TF, sys_fstat64, "fstat64" }, /* 63 */
+ { 0, 0, sys_getpagesize,"getpagesize" }, /* 64 */
+ { 3, 0, sys_msync, "msync" }, /* 65 */
+ { 0, TP, sys_vfork, "vfork" }, /* 66 */
+ { 5, TF, sys_pread, "pread" }, /* 67 */
+ { 5, TF, sys_pwrite, "pwrite" }, /* 68 */
+ { 0, 0, sys_geteuid, "geteuid32" }, /* 69 */
+ { 0, 0, sys_getegid, "getegid32" }, /* 70 */
+ { 6, 0, sys_mmap, "mmap" }, /* 71 */
+ { 2, 0, sys_setreuid, "setreuid32" }, /* 72 */
+ { 2, 0, sys_munmap, "munmap" }, /* 73 */
+ { 3, 0, sys_mprotect, "mprotect" }, /* 74 */
+ { 3, 0, sys_madvise, "madvise" }, /* 75 */
+ { 0, 0, sys_vhangup, "vhangup" }, /* 76 */
+ { 3, TF, sys_truncate64, "truncate64" }, /* 77 */
+ { 3, 0, sys_mincore, "mincore" }, /* 78 */
+ { 2, 0, sys_getgroups, "getgroups" }, /* 79 */
+ { 2, 0, sys_setgroups, "setgroups" }, /* 80 */
+ { 0, 0, sys_getpgrp, "getpgrp" }, /* 81 */
+ { 2, 0, sys_setgroups, "setgroups32" }, /* 82 */
+ { 3, 0, sys_setitimer, "setitimer" }, /* 83 */
+ { 2, 0, sys_ftruncate, "ftruncate64" }, /* 84 */
+ { 1, TF, sys_swapon, "swapon" }, /* 85 */
+ { 2, 0, sys_getitimer, "getitimer" }, /* 86 */
+ { 1, 0, sys_setuid, "setuid32" }, /* 87 */
+ { 2, 0, sys_sethostname,"sethostname" }, /* 88 */
+ { 1, 0, sys_setgid, "setgid32" }, /* 89 */
+ { 2, 0, sys_dup2, "dup2" }, /* 90 */
+ { 1, 0, sys_setfsuid, "setfsuid32" }, /* 91 */
+ { 3, 0, sys_fcntl, "fcntl" }, /* 92 */
+ { 5, 0, sys_select, "select" }, /* 93 */
+ { 1, 0, sys_setfsgid, "setfsgid32" }, /* 94 */
+ { 1, 0, sys_fsync, "fsync" }, /* 95 */
+ { 3, 0, sys_setpriority,"setpriority" }, /* 96 */
+ { 3, TN, sys_socket, "socket" }, /* 97 */
+ { 3, TN, sys_connect, "connect" }, /* 98 */
+ { 3, TN, sys_accept, "accept" }, /* 99 */
+ { 2, 0, sys_getpriority,"getpriority" }, /* 100 */
+ { 1, TS, printargs, "rt_sigreturn" }, /* 101 */
+ { 4, TS, sys_rt_sigaction,"rt_sigaction" }, /* 102 */
+ { 4, TS, sys_rt_sigprocmask,"rt_sigprocmask" }, /* 103 */
+ { 2, TS, sys_rt_sigpending,"rt_sigpending" }, /* 104 */
+ { 4, TS, sys_rt_sigtimedwait,"rt_sigtimedwait" },/* 105 */
+ { 3, TS, sys_rt_sigqueueinfo,"rt_sigqueueinfo" },/* 106 */
+ { 2, TS, sys_rt_sigsuspend,"rt_sigsuspend" }, /* 107 */
+ { 3, TS, sys_setresuid, "setresuid" }, /* 108 */
+ { 3, TS, sys_getresuid, "getresuid" }, /* 109 */
+ { 3, TS, sys_setresgid, "setresgid" }, /* 110 */
+ { 3, TS, sys_getresgid, "getresgid" }, /* 111 */
+ { 2, TS, sys_setresgid, "setresgid32" }, /* 112 */
+ { 5, TN, sys_recvmsg, "recvmsg" }, /* 113 */
+ { 5, TN, sys_sendmsg, "sendmsg" }, /* 114 */
+ { 2, 0, sys_getgroups, "getgroups32" }, /* 115 */
+ { 2, 0, sys_gettimeofday,"gettimeofday" }, /* 116 */
+ { 2, 0, sys_getrusage, "getrusage" }, /* 117 */
+ { 5, TN, sys_getsockopt, "getsockopt" }, /* 118 */
+ { 2, TF, sys_getcwd, "getcwd" }, /* 119 */
+ { 3, 0, sys_readv, "readv" }, /* 120 */
+ { 3, 0, sys_writev, "writev" }, /* 121 */
+ { 2, 0, sys_settimeofday,"settimeofday" }, /* 122 */
+ { 3, 0, sys_fchown, "fchown" }, /* 123 */
+ { 2, 0, sys_fchmod, "fchmod" }, /* 124 */
+ { 6, TN, sys_recvfrom, "recvfrom" }, /* 125 */
+ { 2, 0, sys_setreuid, "setreuid" }, /* 126 */
+ { 2, 0, sys_setregid, "setregid" }, /* 127 */
+ { 2, TF, sys_rename, "rename" }, /* 128 */
+ { 2, TF, sys_truncate, "truncate" }, /* 129 */
+ { 2, 0, sys_ftruncate, "ftruncate" }, /* 130 */
+ { 2, 0, sys_flock, "flock" }, /* 131 */
+ { 2, TF, sys_lstat64, "lstat64" }, /* 132 */
+ { 6, TN, sys_sendto, "sendto" }, /* 133 */
+ { 2, TN, sys_shutdown, "shutdown" }, /* 134 */
+ { 4, TN, sys_socketpair, "socketpair" }, /* 135 */
+ { 2, TF, sys_mkdir, "mkdir" }, /* 136 */
+ { 1, TF, sys_rmdir, "rmdir" }, /* 137 */
+ { 2, TF, sys_utimes, "utimes" }, /* 138 */
+ { 2, TF, sys_stat64, "stat64" }, /* 139 */
+ { 4, TF, sys_sendfile64, "sendfile64" }, /* 140 */
+ { 3, TN, sys_getpeername,"getpeername" }, /* 141 */
+ { 5, 0, sys_futex, "futex" }, /* 142 */
+ { 0, 0, printargs, "gettid" }, /* 143 */
+ { 2, 0, sys_getrlimit, "getrlimit" }, /* 144 */
+ { 2, 0, sys_setrlimit, "setrlimit" }, /* 145 */
+ { 2, TF, sys_pivotroot, "pivot_root" }, /* 146 */
+ { 5, 0, sys_prctl, "prctl" }, /* 147 */
+ { 5, 0, printargs, "pciconfig_read" }, /* 148 */
+ { 5, 0, printargs, "pciconfig_write" }, /* 149 */
+ { 3, TN, sys_getsockname,"getsockname" }, /* 150 */
+ { 4, TN, sys_getmsg, "getmsg" }, /* 151 */
+ { 4, TN, sys_putmsg, "putmsg" }, /* 152 */
+ { 3, 0, sys_poll, "poll" }, /* 153 */
+ { 4, 0, sys_getdents64, "getdents64" }, /* 154 */
+ { 3, 0, sys_fcntl, "fcntl64" }, /* 155 */
+ { 4, 0, printargs, "getdirentries" }, /* 156 */
+ { 2, TF, sys_statfs, "statfs" }, /* 157 */
+ { 2, 0, sys_fstatfs, "fstatfs" }, /* 158 */
+ { 1, TF, sys_umount, "oldumount" }, /* 159 */
+ { 3, 0, sys_sched_setaffinity, "sched_setaffinity" },/* 160 */
+ { 3, 0, sys_sched_getaffinity, "sched_getaffinity" },/* 161 */
+ { 2, 0, printargs, "getdomainname" }, /* 162 */
+ { 2, 0, sys_setdomainname,"setdomainname" }, /* 163 */
+ { 5, 0, printargs, "utrap_install" }, /* 164 */
+ { 4, 0, sys_quotactl, "quotactl" }, /* 165 */
+ { 1, 0, printargs, "set_tid_address" }, /* 166 */
+ { 5, TF, sys_mount, "mount" }, /* 167 */
+ { 2, 0, sys_ustat, "ustat" }, /* 168 */
+ { 5, TF, sys_setxattr, "setxattr" }, /* 169 */
+ { 5, TF, sys_setxattr, "lsetxattr" }, /* 170 */
+ { 5, 0, sys_fsetxattr, "fsetxattr" }, /* 171 */
+ { 4, TF, sys_getxattr, "getxattr" }, /* 172 */
+ { 4, TF, sys_getxattr, "lgetxattr" }, /* 173 */
+ { 3, 0, sys_getdents, "getdents" }, /* 174 */
+ { 0, 0, sys_setsid, "setsid" }, /* 175 */
+ { 1, 0, sys_fchdir, "fchdir" }, /* 176 */
+ { 4, 0, sys_fgetxattr, "fgetxattr" }, /* 177 */
+ { 3, TF, sys_listxattr, "listxattr" }, /* 178 */
+ { 3, TF, sys_listxattr, "llistxattr" }, /* 179 */
+ { 3, 0, sys_flistxattr, "flistxattr" }, /* 180 */
+ { 2, TF, sys_removexattr,"removexattr" }, /* 181 */
+ { 2, TF, sys_removexattr,"lremovexattr" }, /* 182 */
+ { 1, TS, sys_sigpending, "sigpending" }, /* 183 */
+ { 5, 0, sys_query_module,"query_module" }, /* 184 */
+ { 2, 0, sys_setpgid, "setpgid" }, /* 185 */
+ { 2, 0, sys_fremovexattr,"fremovexattr" }, /* 186 */
+ { 2, TS, sys_kill, "tkill" }, /* 187 */
+ { 1, TP, sys_exit, "exit_group" }, /* 188 */
+ { 1, 0, sys_uname, "uname" }, /* 189 */
+ { 2, 0, sys_init_module,"init_module" }, /* 190 */
+ { 1, 0, sys_personality,"personality" }, /* 191 */
+ { 5, 0, sys_remap_file_pages,"remap_file_pages" },/* 192 */
+ { 1, 0, sys_epoll_create,"epoll_create" }, /* 193 */
+ { 4, 0, sys_epoll_ctl, "epoll_ctl" }, /* 194 */
+ { 4, 0, sys_epoll_wait, "epoll_wait" }, /* 195 */
+ { 2, 0, sys_ulimit, "ulimit" }, /* 196 */
+ { 0, 0, sys_getppid, "getppid" }, /* 197 */
+ { 3, TS, sys_sigaction, "sigaction" }, /* 198 */
+ { 5, 0, printargs, "sgetmask" }, /* 199 */
+ { 5, 0, printargs, "ssetmask" }, /* 200 */
+ { 3, TS, sys_sigsuspend, "sigsuspend" }, /* 201 */
+ { 2, TF, sys_lstat, "lstat" }, /* 202 */
+ { 1, TF, sys_uselib, "uselib" }, /* 203 */
+ { 3, 0, sys_readdir, "readdir" }, /* 204 */
+ { 4, 0, sys_readahead, "readahead" }, /* 205 */
+ { 2, 0, sys_socketcall, "socketcall" }, /* 206 */
+ { 3, 0, sys_syslog, "syslog" }, /* 207 */
+ { 4, 0, printargs, "lookup_dcookie" }, /* 208 */
+ { 6, 0, printargs, "fadvise64" }, /* 209 */
+ { 6, 0, printargs, "fadvise64_64" }, /* 210 */
+ { 3, TS, sys_tgkill, "tgkill" }, /* 211 */
+ { 3, TP, sys_waitpid, "waitpid" }, /* 212 */
+ { 1, 0, sys_swapoff, "swapoff" }, /* 213 */
+ { 1, 0, sys_sysinfo, "sysinfo" }, /* 214 */
+ { 5, 0, sys_ipc, "ipc" }, /* 215 */
+ { 1, TS, sys_sigreturn, "sigreturn" }, /* 216 */
+ { 5, TP, sys_clone, "clone" }, /* 217 */
+ { 3, 0, sys_modify_ldt, "modify_ldt" }, /* 218 */
+ { 1, 0, sys_adjtimex, "adjtimex" }, /* 219 */
+ { 3, TS, sys_sigprocmask,"sigprocmask" }, /* 220 */
+ { 2, 0, sys_create_module,"create_module" }, /* 221 */
+ { 1, 0, sys_delete_module,"delete_module" },
+ { 1, 0, sys_get_kernel_syms,"get_kernel_syms"}, /* 223 */
+ { 1, 0, sys_getpgid, "getpgid" }, /* 224 */
+ { 0, 0, sys_bdflush, "bdflush" }, /* 225 */
+ { 3, 0, sys_sysfs, "sysfs" }, /* 226 */
+ { 5, 0, sys_afs_syscall,"afs_syscall" }, /* 227 */
+ { 1, 0, sys_setfsuid, "setfsuid" }, /* 228 */
+ { 1, 0, sys_setfsgid, "setfsgid" }, /* 229 */
+ { 5, 0, sys_select, "select" }, /* 230 */
+ { 1, 0, sys_time, "time" }, /* 231 */
+ { 2, TF, sys_stat, "stat" }, /* 232 */
+ { 1, 0, sys_stime, "stime" }, /* 233 */
+ { 3, TF, sys_statfs64, "statfs64" }, /* 234 */
+ { 3, 0, sys_fstatfs64, "fstatfs64" }, /* 235 */
+ { 5, 0, sys_llseek, "_llseek" }, /* 236 */
+ { 2, 0, sys_mlock, "mlock" }, /* 237 */
+ { 2, 0, sys_munlock, "munlock" }, /* 238 */
+ { 2, 0, sys_mlockall, "mlockall" }, /* 239 */
+ { 0, 0, sys_munlockall, "munlockall" }, /* 240 */
+ { 2, 0, sys_sched_setparam,"sched_setparam"}, /* 241 */
+ { 2, 0, sys_sched_getparam,"sched_getparam"}, /* 242 */
+ { 3, 0, sys_sched_setscheduler,"sched_setscheduler"},/* 243 */
+ { 1, 0, sys_sched_getscheduler,"sched_getscheduler"},/* 244 */
+ { 0, 0, sys_sched_yield,"sched_yield" }, /* 245 */
+ { 1,0,sys_sched_get_priority_max,"sched_get_priority_max"},/* 246 */
+ { 1,0,sys_sched_get_priority_min,"sched_get_priority_min"},/* 247 */
+ { 2, 0,sys_sched_rr_get_interval,"sched_rr_get_interval"},/* 248 */
+ { 2, 0, sys_nanosleep, "nanosleep" }, /* 249 */
+ { 4, 0, sys_mremap, "mremap" }, /* 250 */
+ { 1, 0, sys_sysctl, "_sysctl" }, /* 251 */
+ { 1, 0, sys_getsid, "getsid" }, /* 252 */
+ { 1, 0, sys_fdatasync, "fdatasync" }, /* 253 */
+ { 3, 0, printargs, "nfsservctl" }, /* 254 */
+ { 5, 0, printargs, "aplib" }, /* 255 */
+ { 2, 0, sys_clock_settime,"clock_settime" }, /* 256 */
+ { 2, 0, sys_clock_gettime,"clock_gettime" }, /* 257 */
+ { 2, 0, sys_clock_getres,"clock_getres" }, /* 258 */
+ { 4, 0, sys_clock_nanosleep,"clock_nanosleep" },/* 259 */
+ { 3, 0, sys_sched_setaffinity,"sched_setaffinity" },/* 260 */
+ { 3, 0, sys_sched_getaffinity,"sched_getaffinity" },/* 261 */
+ { 4, 0, sys_timer_settime,"timer_settime" }, /* 262 */
+ { 2, 0, sys_timer_gettime,"timer_gettime" }, /* 263 */
+ { 1, 0, sys_timer_getoverrun,"timer_getoverrun" },/* 264 */
+ { 1, 0, sys_timer_delete,"timer_delete" }, /* 265 */
+ { 3, 0, sys_timer_create,"timer_create" }, /* 266 */
+ { 5, 0, printargs, "SYS_267" }, /* 267 */
+ { 5, 0, printargs, "SYS_268" }, /* 268 */
+ { 5, 0, printargs, "SYS_269" }, /* 269 */
+ { 5, 0, printargs, "SYS_270" }, /* 270 */
+ { 5, 0, printargs, "SYS_271" }, /* 271 */
+ { 5, 0, printargs, "SYS_272" }, /* 272 */
+ { 5, 0, printargs, "SYS_273" }, /* 273 */
+ { 5, 0, printargs, "SYS_274" }, /* 274 */
+ { 5, 0, printargs, "SYS_275" }, /* 275 */
+ { 5, 0, printargs, "SYS_276" }, /* 276 */
+ { 5, 0, printargs, "SYS_277" }, /* 277 */
+ { 5, 0, printargs, "SYS_278" }, /* 278 */
+ { 5, 0, printargs, "SYS_279" }, /* 279 */
+ { 5, 0, printargs, "SYS_280" }, /* 280 */
+ { 5, 0, printargs, "SYS_281" }, /* 281 */
+ { 5, 0, printargs, "SYS_282" }, /* 282 */
+ { 5, 0, printargs, "SYS_283" }, /* 283 */
+ { 5, 0, printargs, "SYS_284" }, /* 284 */
+ { 5, 0, printargs, "SYS_285" }, /* 285 */
+ { 5, 0, printargs, "SYS_286" }, /* 286 */
+ { 5, 0, printargs, "SYS_287" }, /* 287 */
+ { 5, 0, printargs, "SYS_288" }, /* 288 */
+ { 5, 0, printargs, "SYS_289" }, /* 289 */
+ { 5, 0, printargs, "SYS_290" }, /* 290 */
+ { 5, 0, printargs, "SYS_291" }, /* 291 */
+ { 5, 0, printargs, "SYS_292" }, /* 292 */
+ { 5, 0, printargs, "SYS_293" }, /* 293 */
+ { 5, 0, printargs, "SYS_294" }, /* 294 */
+ { 5, 0, printargs, "SYS_295" }, /* 295 */
+ { 5, 0, printargs, "SYS_296" }, /* 296 */
+ { 5, 0, printargs, "SYS_297" }, /* 297 */
+ { 5, 0, printargs, "SYS_298" }, /* 298 */
+ { 5, 0, printargs, "SYS_299" }, /* 299 */
+ { 5, 0, printargs, "SYS_300" }, /* 300 */
+ { 5, 0, printargs, "SYS_301" }, /* 301 */
+ { 5, 0, printargs, "SYS_302" }, /* 302 */
+ { 5, 0, printargs, "SYS_303" }, /* 303 */
+ { 5, 0, printargs, "SYS_304" }, /* 304 */
+ { 5, 0, printargs, "SYS_305" }, /* 305 */
+ { 5, 0, printargs, "SYS_306" }, /* 306 */
+ { 5, 0, printargs, "SYS_307" }, /* 307 */
+ { 5, 0, printargs, "SYS_308" }, /* 308 */
+ { 5, 0, printargs, "SYS_309" }, /* 309 */
+ { 5, 0, printargs, "SYS_310" }, /* 310 */
+ { 5, 0, printargs, "SYS_311" }, /* 311 */
+ { 5, 0, printargs, "SYS_312" }, /* 312 */
+ { 5, 0, printargs, "SYS_313" }, /* 313 */
+ { 5, 0, printargs, "SYS_314" }, /* 314 */
+ { 5, 0, printargs, "SYS_315" }, /* 315 */
+ { 5, 0, printargs, "SYS_316" }, /* 316 */
+ { 5, 0, printargs, "SYS_317" }, /* 317 */
+ { 5, 0, printargs, "SYS_318" }, /* 318 */
+ { 5, 0, printargs, "SYS_319" }, /* 319 */
+ { 5, 0, printargs, "SYS_320" }, /* 320 */
+ { 5, 0, printargs, "SYS_321" }, /* 321 */
+ { 5, 0, printargs, "SYS_322" }, /* 322 */
+ { 5, 0, printargs, "SYS_323" }, /* 323 */
+ { 5, 0, printargs, "SYS_324" }, /* 324 */
+ { 5, 0, printargs, "SYS_325" }, /* 325 */
+ { 5, 0, printargs, "SYS_326" }, /* 326 */
+ { 5, 0, printargs, "SYS_327" }, /* 327 */
+ { 5, 0, printargs, "SYS_328" }, /* 328 */
+ { 5, 0, printargs, "SYS_329" }, /* 329 */
+ { 5, 0, printargs, "SYS_330" }, /* 330 */
+ { 5, 0, printargs, "SYS_331" }, /* 331 */
+ { 5, 0, printargs, "SYS_332" }, /* 332 */
+ { 5, 0, printargs, "SYS_333" }, /* 333 */
+ { 5, 0, printargs, "SYS_334" }, /* 334 */
+ { 5, 0, printargs, "SYS_335" }, /* 335 */
+ { 5, 0, printargs, "SYS_336" }, /* 336 */
+ { 5, 0, printargs, "SYS_337" }, /* 337 */
+ { 5, 0, printargs, "SYS_338" }, /* 338 */
+ { 5, 0, printargs, "SYS_339" }, /* 339 */
+ { 5, 0, printargs, "SYS_340" }, /* 340 */
+ { 5, 0, printargs, "SYS_341" }, /* 341 */
+ { 5, 0, printargs, "SYS_342" }, /* 342 */
+ { 5, 0, printargs, "SYS_343" }, /* 343 */
+ { 5, 0, printargs, "SYS_344" }, /* 344 */
+ { 5, 0, printargs, "SYS_345" }, /* 345 */
+ { 5, 0, printargs, "SYS_346" }, /* 346 */
+ { 5, 0, printargs, "SYS_347" }, /* 347 */
+ { 5, 0, printargs, "SYS_348" }, /* 348 */
+ { 5, 0, printargs, "SYS_349" }, /* 349 */
+ { 5, 0, printargs, "SYS_350" }, /* 350 */
+ { 5, 0, printargs, "SYS_351" }, /* 351 */
+ { 5, 0, printargs, "SYS_352" }, /* 352 */
diff --git a/strace/linux/syscall.h b/strace/linux/syscall.h
new file mode 100644
index 0000000..b0a5993
--- /dev/null
+++ b/strace/linux/syscall.h
@@ -0,0 +1,296 @@
+/*
+ * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
+ * Copyright (c) 1993, 1994, 1995 Rick Sladkey <jrs@world.std.com>
+ * 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.
+ *
+ * $Id: syscall.h,v 1.45 2005/06/07 23:21:28 roland Exp $
+ */
+
+#include "dummy.h"
+
+/* primary syscalls */
+
+int sys_setup(), sys_exit(), sys_fork(), sys_read(), sys_write();
+int sys_open(), sys_close(), sys_waitpid(), sys_creat(), sys_link();
+int sys_unlink(), sys_execve(), sys_chdir(), sys_time(), sys_mknod();
+int sys_chmod(), sys_chown(), sys_break(), sys_oldstat();
+int sys_lseek(), sys_getpid(), sys_mount(), sys_umount(), sys_umount2();
+int sys_setuid(), sys_getuid(), sys_stime(), sys_ptrace();
+int sys_alarm(), sys_oldfstat(), sys_pause(), sys_utime();
+int sys_stty(), sys_gtty(), sys_access(), sys_nice(), sys_ftime();
+int sys_sync(), sys_kill(), sys_rename(), sys_mkdir(), sys_rmdir();
+int sys_dup(), sys_pipe(), sys_times(), sys_prof(), sys_brk();
+int sys_setgid(), sys_getgid(), sys_signal(), sys_geteuid();
+int sys_getegid(), sys_acct(), sys_phys(), sys_lock(), sys_ioctl();
+int sys_fcntl(), sys_mpx(), sys_setpgid(), sys_ulimit();
+int sys_olduname(), sys_umask(), sys_chroot(), sys_ustat();
+int sys_dup2(), sys_getppid(), sys_getpgrp(), sys_setsid();
+int sys_sigaction(), sys_siggetmask(), sys_sigsetmask();
+int sys_setreuid(), sys_setregid(), sys_sigsuspend();
+int sys_sigpending(), sys_sethostname(), sys_setrlimit();
+int sys_getrlimit(), sys_getrusage(), sys_gettimeofday();
+int sys_settimeofday(), sys_getgroups(), sys_setgroups();
+int sys_setgroups32(), sys_getgroups32();
+int sys_oldselect(), sys_symlink(), sys_oldlstat(), sys_readlink();
+int sys_uselib(), sys_swapon(), sys_reboot(), sys_readdir();
+int sys_mmap(), sys_munmap(), sys_truncate(), sys_ftruncate();
+int sys_fchmod(), sys_fchown(), sys_getpriority();
+int sys_setpriority(), sys_profil(), sys_statfs(), sys_fstatfs();
+int sys_ioperm(), sys_socketcall(), sys_syslog(), sys_setitimer();
+int sys_getitimer(), sys_stat(), sys_lstat(), sys_fstat();
+int sys_uname(), sys_iopl(), sys_vhangup(), sys_idle(), sys_vm86();
+int sys_wait4(), sys_swapoff(), sys_ipc(), sys_sigreturn();
+int sys_fsync(), sys_clone(), sys_setdomainname(), sys_sysinfo();
+int sys_modify_ldt(), sys_adjtimex(), sys_mprotect();
+int sys_sigprocmask(), sys_create_module(), sys_init_module();
+int sys_delete_module(), sys_get_kernel_syms(), sys_quotactl();
+int sys_getpgid(), sys_fchdir(), sys_bdflush();
+int sys_sysfs(), sys_personality(), sys_afs_syscall();
+int sys_setfsuid(), sys_setfsgid(), sys_llseek();
+int sys_getdents(), sys_flock(), sys_msync();
+int sys_readv(), sys_writev(), sys_select();
+int sys_getsid(), sys_fdatasync(), sys_sysctl();
+int sys_mlock(), sys_munlock(), sys_mlockall(), sys_munlockall(), sys_madvise();
+int sys_sched_setparam(), sys_sched_getparam();
+int sys_sched_setscheduler(), sys_sched_getscheduler(), sys_sched_yield();
+int sys_sched_get_priority_max(), sys_sched_get_priority_min();
+int sys_sched_rr_get_interval(), sys_nanosleep(), sys_mremap();
+int sys_sendmsg(), sys_recvmsg(), sys_setresuid(), sys_setresgid();
+int sys_getresuid(), sys_getresgid(), sys_pread(), sys_pwrite(), sys_getcwd();
+int sys_sigaltstack(), sys_rt_sigprocmask(), sys_rt_sigaction();
+int sys_rt_sigpending(), sys_rt_sigsuspend(), sys_rt_sigqueueinfo();
+int sys_rt_sigtimedwait(), sys_prctl(), sys_poll(), sys_vfork();
+int sys_sendfile(), sys_old_mmap(), sys_stat64(), sys_lstat64(), sys_fstat64();
+int sys_truncate64(), sys_ftruncate64(), sys_pivotroot();
+int sys_getdents64();
+int sys_getpmsg(), sys_putpmsg(), sys_readahead(), sys_sendfile64();
+int sys_setxattr(), sys_fsetxattr(), sys_getxattr(), sys_fgetxattr();
+int sys_listxattr(), sys_flistxattr(), sys_removexattr(), sys_fremovexattr();
+int sys_sched_setaffinity(), sys_sched_getaffinity(), sys_futex();
+int sys_set_thread_area(), sys_get_thread_area(), sys_remap_file_pages();
+int sys_timer_create(), sys_timer_delete(), sys_timer_getoverrun();
+int sys_timer_gettime(), sys_timer_settime(), sys_clock_settime();
+int sys_clock_gettime(), sys_clock_getres(), sys_clock_nanosleep();
+int sys_semtimedop(), sys_statfs64(), sys_fstatfs64(), sys_tgkill();
+int sys_mq_open(), sys_mq_timedsend(), sys_mq_timedreceive();
+int sys_mq_notify(), sys_mq_getsetattr();
+int sys_epoll_create(), sys_epoll_ctl(), sys_epoll_wait();
+int sys_waitid(), sys_fadvise64(), sys_fadvise64_64();
+int sys_mbind(), sys_get_mempolicy(), sys_set_mempolicy();
+int sys_arch_prctl();
+int sys_io_setup(), sys_io_submit(), sys_io_cancel(), sys_io_getevents(), sys_io_destroy();
+
+/* sys_socketcall subcalls */
+
+int sys_socket(), sys_bind(), sys_connect(), sys_listen();
+int sys_accept(), sys_getsockname(), sys_getpeername(), sys_socketpair();
+int sys_send(), sys_recv(), sys_sendto(), sys_recvfrom();
+int sys_shutdown(), sys_setsockopt(), sys_getsockopt();
+
+/* new ones */
+int sys_query_module();
+int sys_poll();
+int sys_mincore();
+
+/* architecture-specific calls */
+#ifdef ALPHA
+int sys_osf_select();
+int sys_osf_gettimeofday();
+int sys_osf_settimeofday();
+int sys_osf_getitimer();
+int sys_osf_setitimer();
+int sys_osf_getrusage();
+int sys_osf_wait4();
+int sys_osf_utimes();
+#endif
+
+
+#ifndef SYS_waitid
+# ifdef I386
+# define SYS_waitid 284
+# elif defined ALPHA
+# define SYS_waitid 438
+# elif defined ARM
+# define SYS_waitid (NR_SYSCALL_BASE + 280)
+# elif defined IA64
+# define SYS_waitid 1270
+# elif defined M68K
+# define SYS_waitid 277
+# elif defined POWERPC
+# define SYS_waitid 272
+# elif defined S390 || defined S390X
+# define SYS_waitid 281
+# elif defined SH64
+# define SYS_waitid 312
+# elif defined SH64
+# define SYS_waitid 312
+# elif defined SH
+# define SYS_waitid 284
+# elif defined SPARC || defined SPARC64
+# define SYS_waitid 279
+# elif defined X86_64
+# define SYS_waitid 247
+# endif
+#endif
+
+#if !defined(ALPHA) && !defined(MIPS) && !defined(HPPA)
+# ifdef IA64
+/*
+ * IA64 syscall numbers (the only ones available from standard header
+ * files) are disjoint from IA32 syscall numbers. We need to define
+ * the IA32 socket call number here.
+ */
+# define SYS_socketcall 102
+
+# undef SYS_socket
+# undef SYS_bind
+# undef SYS_connect
+# undef SYS_listen
+# undef SYS_accept
+# undef SYS_getsockname
+# undef SYS_getpeername
+# undef SYS_socketpair
+# undef SYS_send
+# undef SYS_recv
+# undef SYS_sendto
+# undef SYS_recvfrom
+# undef SYS_shutdown
+# undef SYS_setsockopt
+# undef SYS_getsockopt
+# undef SYS_sendmsg
+# undef SYS_recvmsg
+# endif /* IA64 */
+# define SYS_socket_subcall 300
+#define SYS_sub_socket (SYS_socket_subcall + 1)
+#define SYS_sub_bind (SYS_socket_subcall + 2)
+#define SYS_sub_connect (SYS_socket_subcall + 3)
+#define SYS_sub_listen (SYS_socket_subcall + 4)
+#define SYS_sub_accept (SYS_socket_subcall + 5)
+#define SYS_sub_getsockname (SYS_socket_subcall + 6)
+#define SYS_sub_getpeername (SYS_socket_subcall + 7)
+#define SYS_sub_socketpair (SYS_socket_subcall + 8)
+#define SYS_sub_send (SYS_socket_subcall + 9)
+#define SYS_sub_recv (SYS_socket_subcall + 10)
+#define SYS_sub_sendto (SYS_socket_subcall + 11)
+#define SYS_sub_recvfrom (SYS_socket_subcall + 12)
+#define SYS_sub_shutdown (SYS_socket_subcall + 13)
+#define SYS_sub_setsockopt (SYS_socket_subcall + 14)
+#define SYS_sub_getsockopt (SYS_socket_subcall + 15)
+#define SYS_sub_sendmsg (SYS_socket_subcall + 16)
+#define SYS_sub_recvmsg (SYS_socket_subcall + 17)
+
+#define SYS_socket_nsubcalls 18
+#endif /* !(ALPHA || MIPS || HPPA) */
+
+/* sys_ipc subcalls */
+
+int sys_semget(), sys_semctl(), sys_semop();
+int sys_msgsnd(), sys_msgrcv(), sys_msgget(), sys_msgctl();
+int sys_shmat(), sys_shmdt(), sys_shmget(), sys_shmctl();
+
+#if !defined(ALPHA) && !defined(MIPS) && !defined(SPARC) && !defined(HPPA)
+# ifdef IA64
+ /*
+ * IA64 syscall numbers (the only ones available from standard
+ * header files) are disjoint from IA32 syscall numbers. We need
+ * to define the IA32 socket call number here. Fortunately, this
+ * symbol, `SYS_ipc', is not used by any of the IA64 code so
+ * re-defining this symbol will not cause a problem.
+ */
+# undef SYS_ipc
+# define SYS_ipc 117
+# undef SYS_semop
+# undef SYS_semget
+# undef SYS_semctl
+# undef SYS_semtimedop
+# undef SYS_msgsnd
+# undef SYS_msgrcv
+# undef SYS_msgget
+# undef SYS_msgctl
+# undef SYS_shmat
+# undef SYS_shmdt
+# undef SYS_shmget
+# undef SYS_shmctl
+# endif /* IA64 */
+#define SYS_ipc_subcall ((SYS_socket_subcall)+(SYS_socket_nsubcalls))
+#define SYS_sub_semop (SYS_ipc_subcall + 1)
+#define SYS_sub_semget (SYS_ipc_subcall + 2)
+#define SYS_sub_semctl (SYS_ipc_subcall + 3)
+#define SYS_sub_semtimedop (SYS_ipc_subcall + 4)
+#define SYS_sub_msgsnd (SYS_ipc_subcall + 11)
+#define SYS_sub_msgrcv (SYS_ipc_subcall + 12)
+#define SYS_sub_msgget (SYS_ipc_subcall + 13)
+#define SYS_sub_msgctl (SYS_ipc_subcall + 14)
+#define SYS_sub_shmat (SYS_ipc_subcall + 21)
+#define SYS_sub_shmdt (SYS_ipc_subcall + 22)
+#define SYS_sub_shmget (SYS_ipc_subcall + 23)
+#define SYS_sub_shmctl (SYS_ipc_subcall + 24)
+
+#define SYS_ipc_nsubcalls 25
+#endif /* !(ALPHA || MIPS || SPARC || HPPA) */
+
+#if defined SYS_ipc_subcall && !defined SYS_ipc
+# define SYS_ipc SYS_ipc_subcall
+#endif
+#if defined SYS_socket_subcall && !defined SYS_socketcall
+# define SYS_socketcall SYS_socket_subcall
+#endif
+
+#ifdef IA64
+ /*
+ * IA64 syscall numbers (the only ones available from standard header
+ * files) are disjoint from IA32 syscall numbers. We need to define
+ * some IA32 specific syscalls here.
+ */
+# define SYS_fork 2
+# define SYS_vfork 190
+# define SYS32_exit 1
+# define SYS_waitpid 7
+# define SYS32_wait4 114
+# define SYS32_execve 11
+#endif /* IA64 */
+
+#if defined(ALPHA) || defined(IA64)
+int sys_getpagesize();
+#endif
+
+#ifdef ALPHA
+int osf_statfs(), osf_fstatfs();
+#endif
+
+#ifdef IA64
+int sys_getpmsg(), sys_putpmsg(); /* STREAMS stuff */
+#endif
+
+#ifdef MIPS
+int sys_sysmips();
+#endif
+
+int sys_setpgrp(), sys_gethostname(), sys_getdtablesize(), sys_utimes();
+int sys_capget(), sys_capset();
+
+#ifdef M68K
+int sys_cacheflush();
+#endif
diff --git a/strace/linux/syscallent.h b/strace/linux/syscallent.h
new file mode 100644
index 0000000..f8505fe
--- /dev/null
+++ b/strace/linux/syscallent.h
@@ -0,0 +1,399 @@
+/*
+ * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
+ * Copyright (c) 1993, 1994, 1995 Rick Sladkey <jrs@world.std.com>
+ * 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.
+ *
+ * $Id: syscallent.h,v 1.34 2005/06/07 23:21:24 roland Exp $
+ */
+
+ { 0, 0, sys_setup, "setup" }, /* 0 */
+ { 1, TP, sys_exit, "_exit", SYS_exit }, /* 1 */
+ { 0, TP, sys_fork, "fork", SYS_fork }, /* 2 */
+ { 3, 0, sys_read, "read", SYS_read }, /* 3 */
+ { 3, 0, sys_write, "write", SYS_write }, /* 4 */
+ { 3, TF, sys_open, "open" }, /* 5 */
+ { 1, 0, sys_close, "close" }, /* 6 */
+ { 3, TP, sys_waitpid, "waitpid", SYS_wait4 }, /* 7 */
+ { 2, TF, sys_creat, "creat" }, /* 8 */
+ { 2, TF, sys_link, "link" }, /* 9 */
+ { 1, TF, sys_unlink, "unlink" }, /* 10 */
+ { 3, TF|TP, sys_execve, "execve", SYS_execve }, /* 11 */
+ { 1, TF, sys_chdir, "chdir" }, /* 12 */
+ { 1, 0, sys_time, "time" }, /* 13 */
+ { 3, TF, sys_mknod, "mknod" }, /* 14 */
+ { 2, TF, sys_chmod, "chmod" }, /* 15 */
+#ifdef M68K
+ { 3, TF, sys_chown, "chown" }, /* 16 */
+#else
+ { 3, TF, sys_chown, "lchown" }, /* 16 */
+#endif
+ { 0, 0, sys_break, "break" }, /* 17 */
+ { 2, TF, sys_oldstat, "oldstat" }, /* 18 */
+ { 3, 0, sys_lseek, "lseek" }, /* 19 */
+ { 0, 0, sys_getpid, "getpid" }, /* 20 */
+ { 5, TF, sys_mount, "mount" }, /* 21 */
+ { 1, TF, sys_umount, "oldumount" }, /* 22 */
+ { 1, 0, sys_setuid, "setuid" }, /* 23 */
+ { 0, 0, sys_getuid, "getuid" }, /* 24 */
+ { 1, 0, sys_stime, "stime" }, /* 25 */
+ { 4, 0, sys_ptrace, "ptrace" }, /* 26 */
+ { 1, 0, sys_alarm, "alarm" }, /* 27 */
+ { 2, 0, sys_oldfstat, "oldfstat" }, /* 28 */
+ { 0, TS, sys_pause, "pause" }, /* 29 */
+ { 2, TF, sys_utime, "utime" }, /* 30 */
+ { 2, 0, sys_stty, "stty" }, /* 31 */
+ { 2, 0, sys_gtty, "gtty" }, /* 32 */
+ { 2, TF, sys_access, "access" }, /* 33 */
+ { 1, 0, sys_nice, "nice" }, /* 34 */
+ { 0, 0, sys_ftime, "ftime" }, /* 35 */
+ { 0, 0, sys_sync, "sync" }, /* 36 */
+ { 2, TS, sys_kill, "kill" }, /* 37 */
+ { 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, 0, sys_times, "times" }, /* 43 */
+ { 0, 0, sys_prof, "prof" }, /* 44 */
+ { 1, 0, sys_brk, "brk" }, /* 45 */
+ { 1, 0, sys_setgid, "setgid" }, /* 46 */
+ { 0, 0, sys_getgid, "getgid" }, /* 47 */
+ { 3, TS, sys_signal, "signal" }, /* 48 */
+ { 0, 0, sys_geteuid, "geteuid" }, /* 49 */
+ { 0, 0, sys_getegid, "getegid" }, /* 50 */
+ { 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 */
+ { 0, 0, sys_mpx, "mpx" }, /* 56 */
+ { 2, 0, sys_setpgid, "setpgid" }, /* 57 */
+ { 2, 0, sys_ulimit, "ulimit" }, /* 58 */
+ { 1, 0, sys_oldolduname, "oldolduname" }, /* 59 */
+ { 1, 0, sys_umask, "umask" }, /* 60 */
+ { 1, TF, sys_chroot, "chroot" }, /* 61 */
+ { 2, 0, sys_ustat, "ustat" }, /* 62 */
+ { 2, 0, sys_dup2, "dup2" }, /* 63 */
+ { 0, 0, sys_getppid, "getppid" }, /* 64 */
+ { 0, 0, sys_getpgrp, "getpgrp" }, /* 65 */
+ { 0, 0, sys_setsid, "setsid" }, /* 66 */
+ { 3, TS, sys_sigaction, "sigaction" }, /* 67 */
+ { 0, TS, sys_siggetmask, "siggetmask" }, /* 68 */
+ { 1, TS, sys_sigsetmask, "sigsetmask" }, /* 69 */
+ { 2, 0, sys_setreuid, "setreuid" }, /* 70 */
+ { 2, 0, sys_setregid, "setregid" }, /* 71 */
+ { 3, TS, sys_sigsuspend, "sigsuspend" }, /* 72 */
+ { 1, TS, sys_sigpending, "sigpending" }, /* 73 */
+ { 2, 0, sys_sethostname, "sethostname" }, /* 74 */
+ { 2, 0, sys_setrlimit, "setrlimit" }, /* 75 */
+ { 2, 0, sys_getrlimit, "old_getrlimit" }, /* 76 */
+ { 2, 0, sys_getrusage, "getrusage" }, /* 77 */
+ { 2, 0, sys_gettimeofday, "gettimeofday" }, /* 78 */
+ { 2, 0, sys_settimeofday, "settimeofday" }, /* 79 */
+ { 2, 0, sys_getgroups, "getgroups" }, /* 80 */
+ { 2, 0, sys_setgroups, "setgroups" }, /* 81 */
+ { 1, 0, 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 */
+ { 1, TF, sys_swapon, "swapon" }, /* 87 */
+ { 3, 0, sys_reboot, "reboot" }, /* 88 */
+ { 3, 0, sys_readdir, "readdir" }, /* 89 */
+ { 6, 0, sys_old_mmap, "old_mmap" }, /* 90 */
+ { 2, 0, 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, 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 */
+ { 3, 0, sys_ioperm, "ioperm" }, /* 101 */
+ { 2, 0, sys_socketcall, "socketcall", SYS_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 */
+ { 1, 0, sys_olduname, "olduname" }, /* 109 */
+ { 1, 0, sys_iopl, "iopl" }, /* 110 */
+ { 0, 0, sys_vhangup, "vhangup" }, /* 111 */
+ { 0, 0, sys_idle, "idle" }, /* 112 */
+ { 1, 0, sys_vm86old, "vm86old" }, /* 113 */
+ { 4, TP, sys_wait4, "wait4", SYS_wait4 }, /* 114 */
+ { 1, 0, sys_swapoff, "swapoff" }, /* 115 */
+ { 1, 0, sys_sysinfo, "sysinfo" }, /* 116 */
+ { 6, 0, sys_ipc, "ipc", SYS_ipc }, /* 117 */
+ { 1, 0, sys_fsync, "fsync" }, /* 118 */
+ { 1, TS, sys_sigreturn, "sigreturn" }, /* 119 */
+ { 5, TP, sys_clone, "clone", SYS_clone }, /* 120 */
+ { 2, 0, sys_setdomainname, "setdomainname" }, /* 121 */
+ { 1, 0, sys_uname, "uname" }, /* 122 */
+#ifdef M68K
+ { 4, 0, sys_cacheflush, "cacheflush" }, /* 123 */
+#else
+ { 3, 0, sys_modify_ldt, "modify_ldt" }, /* 123 */
+#endif
+ { 1, 0, sys_adjtimex, "adjtimex" }, /* 124 */
+ { 3, 0, sys_mprotect, "mprotect" }, /* 125 */
+ { 3, TS, sys_sigprocmask, "sigprocmask" }, /* 126 */
+ { 2, 0, sys_create_module, "create_module" }, /* 127 */
+ { 2, 0, sys_init_module, "init_module" }, /* 128 */
+ { 1, 0, sys_delete_module, "delete_module" }, /* 129 */
+ { 1, 0, sys_get_kernel_syms, "get_kernel_syms"}, /* 130 */
+ { 4, 0, sys_quotactl, "quotactl" }, /* 131 */
+ { 1, 0, sys_getpgid, "getpgid" }, /* 132 */
+ { 1, 0, sys_fchdir, "fchdir" }, /* 133 */
+ { 0, 0, sys_bdflush, "bdflush" }, /* 134 */
+ { 3, 0, sys_sysfs, "sysfs", SYS_sysfs }, /* 135 */
+ { 1, 0, sys_personality, "personality" }, /* 136 */
+ { 5, 0, sys_afs_syscall, "afs_syscall" }, /* 137 */
+ { 1, 0, sys_setfsuid, "setfsuid" }, /* 138 */
+ { 1, 0, 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", SYS_readv }, /* 145 */
+ { 3, 0, sys_writev, "writev", SYS_writev }, /* 146 */
+ { 1, 0, sys_getsid, "getsid" }, /* 147 */
+ { 1, 0, sys_fdatasync, "fdatasync" }, /* 148 */
+ { 1, 0, sys_sysctl, "_sysctl" }, /* 149 */
+ { 2, 0, sys_mlock, "mlock" }, /* 150 */
+ { 2, 0, sys_munlock, "munlock" }, /* 151 */
+ { 2, 0, sys_mlockall, "mlockall" }, /* 152 */
+ { 0, 0, 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 */
+ { 1, 0, sys_sched_getscheduler, "sched_getscheduler"}, /* 157 */
+ { 0, 0, sys_sched_yield, "sched_yield"}, /* 158 */
+ { 1, 0, sys_sched_get_priority_max,"sched_get_priority_max"}, /* 159 */
+ { 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 */
+ { 4, 0, sys_mremap, "mremap" }, /* 163 */
+ { 3, 0, sys_setresuid, "setresuid" }, /* 164 */
+ { 3, 0, sys_getresuid, "getresuid" }, /* 165 */
+#ifdef M68K
+ { 5, 0, printargs, "SYS_166" }, /* 166 */
+#else
+ { 5, 0, printargs, "vm86" }, /* 166 */
+#endif
+ { 5, 0, sys_query_module, "query_module" }, /* 167 */
+ { 3, 0, sys_poll, "poll" }, /* 168 */
+ { 3, 0, printargs, "nfsservctl" }, /* 169 */
+ { 3, 0, sys_setresgid, "setresgid" }, /* 170 */
+ { 3, 0, sys_getresgid, "getresgid" }, /* 171 */
+ { 5, 0, printargs, "prctl" }, /* 172 */
+ { 1, TS, printargs, "rt_sigreturn" }, /* 173 */
+ { 4, TS, sys_rt_sigaction, "rt_sigaction" }, /* 174 */
+ { 4, TS, sys_rt_sigprocmask, "rt_sigprocmask"}, /* 175 */
+ { 2, TS, sys_rt_sigpending, "rt_sigpending" }, /* 176 */
+ { 4, TS, sys_rt_sigtimedwait, "rt_sigtimedwait"}, /* 177 */
+ { 3, TS, sys_rt_sigqueueinfo, "rt_sigqueueinfo"}, /* 178 */
+ { 2, TS, sys_rt_sigsuspend, "rt_sigsuspend" }, /* 179 */
+
+ { 5, TF, sys_pread, "pread64", SYS_read }, /* 180 */
+ { 5, TF, sys_pwrite, "pwrite64", SYS_write }, /* 181 */
+#ifdef M68K
+ { 3, TF, sys_chown, "lchown" }, /* 182 */
+#else
+ { 3, TF, sys_chown, "chown" }, /* 182 */
+#endif
+ { 2, TF, sys_getcwd, "getcwd" }, /* 183 */
+ { 2, 0, sys_capget, "capget" }, /* 184 */
+ { 2, 0, sys_capset, "capset" }, /* 185 */
+ { 2, TS, sys_sigaltstack, "sigaltstack" }, /* 186 */
+ { 4, TF, sys_sendfile, "sendfile" }, /* 187 */
+ { 5, 0, sys_getpmsg, "getpmsg" }, /* 188 */
+ { 5, 0, sys_putpmsg, "putpmsg" }, /* 189 */
+ { 0, TP, sys_vfork, "vfork", SYS_vfork }, /* 190 */
+ { 2, 0, sys_getrlimit, "getrlimit" }, /* 191 */
+ { 6, 0, sys_mmap, "mmap2" }, /* 192 */
+ { 3, TF, sys_truncate64, "truncate64" }, /* 193 */
+ { 3, TF, sys_ftruncate64, "ftruncate64" }, /* 194 */
+ { 2, TF, sys_stat64, "stat64" }, /* 195 */
+ { 2, TF, sys_lstat64, "lstat64" }, /* 196 */
+ { 2, TF, sys_fstat64, "fstat64" }, /* 197 */
+ { 3, TF, sys_chown, "lchown32" }, /* 198 */
+ { 0, 0, sys_getuid, "getuid32" }, /* 199 */
+
+ { 0, 0, sys_getgid, "getgid32" }, /* 200 */
+ { 0, 0, sys_geteuid, "geteuid32" }, /* 201 */
+ { 0, 0, sys_geteuid, "getegid32" }, /* 202 */
+ { 2, 0, sys_setreuid, "setreuid32" }, /* 203 */
+ { 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, 0, sys_setresuid, "setresuid32" }, /* 208 */
+ { 3, 0, sys_getresuid, "getresuid32" }, /* 209 */
+ { 3, 0, sys_setresgid, "setresgid32" }, /* 210 */
+ { 3, 0, sys_getresgid, "getresgid32" }, /* 211 */
+ { 3, TF, sys_chown, "chown32" }, /* 212 */
+ { 1, 0, sys_setuid, "setuid32" }, /* 213 */
+ { 1, 0, sys_setgid, "setgid32" }, /* 214 */
+ { 1, 0, sys_setfsuid, "setfsuid32" }, /* 215 */
+ { 1, 0, sys_setfsgid, "setfsgid32" }, /* 216 */
+ { 2, TF, sys_pivotroot, "pivot_root" }, /* 217 */
+ { 3, 0, sys_mincore, "mincore" }, /* 218 */
+ { 3, 0, sys_madvise, "madvise" }, /* 219 */
+ { 4, 0, sys_getdents64, "getdents64" }, /* 220 */
+ { 3, 0, sys_fcntl, "fcntl64" }, /* 221 */
+ { 4, 0, printargs, "SYS_222" }, /* 222 */
+/*TODO*/{ 5, 0, printargs, "security" }, /* 223 */
+ { 0, 0, printargs, "gettid" }, /* 224 */
+ { 4, 0, sys_readahead, "readahead" }, /* 225 */
+ { 5, TF, sys_setxattr, "setxattr" }, /* 226 */
+ { 5, TF, sys_setxattr, "lsetxattr" }, /* 227 */
+ { 5, 0, sys_fsetxattr, "fsetxattr" }, /* 228 */
+ { 4, TF, sys_getxattr, "getxattr" }, /* 229 */
+ { 4, TF, sys_getxattr, "lgetxattr" }, /* 230 */
+ { 4, 0, sys_fgetxattr, "fgetxattr" }, /* 231 */
+ { 3, TF, sys_listxattr, "listxattr" }, /* 232 */
+ { 3, TF, sys_listxattr, "llistxattr" }, /* 233 */
+ { 3, 0, sys_flistxattr, "flistxattr" }, /* 234 */
+ { 2, TF, sys_removexattr, "removexattr" }, /* 235 */
+ { 2, TF, sys_removexattr, "lremovexattr" }, /* 236 */
+ { 2, 0, sys_fremovexattr, "fremovexattr" }, /* 237 */
+ { 2, TS, sys_kill, "tkill" }, /* 238 */
+ { 4, TF, sys_sendfile64, "sendfile64" }, /* 239 */
+ { 5, 0, sys_futex, "futex" }, /* 240 */
+ { 3, 0, sys_sched_setaffinity, "sched_setaffinity" },/* 241 */
+ { 3, 0, sys_sched_getaffinity, "sched_getaffinity" },/* 242 */
+ { 1, 0, sys_set_thread_area, "set_thread_area" }, /* 243 */
+ { 1, 0, sys_get_thread_area, "get_thread_area" }, /* 244 */
+ { 2, 0, sys_io_setup, "io_setup" }, /* 245 */
+ { 1, 0, sys_io_destroy, "io_destroy" }, /* 246 */
+ { 5, 0, sys_io_getevents, "io_getevents" }, /* 247 */
+ { 3, 0, sys_io_submit, "io_submit" }, /* 248 */
+ { 3, 0, sys_io_cancel, "io_cancel" }, /* 249 */
+ { 5, TF, sys_fadvise64, "fadvise64" }, /* 250 */
+ { 5, 0, printargs, "SYS_251" }, /* 251 */
+ { 1, TP, sys_exit, "exit_group", __NR_exit_group }, /* 252 */
+ { 4, 0, printargs, "lookup_dcookie"}, /* 253 */
+ { 1, 0, sys_epoll_create, "epoll_create" }, /* 254 */
+ { 4, 0, sys_epoll_ctl, "epoll_ctl" }, /* 255 */
+ { 4, 0, sys_epoll_wait, "epoll_wait" }, /* 256 */
+ { 5, 0, sys_remap_file_pages, "remap_file_pages"}, /* 257 */
+ { 1, 0, printargs, "set_tid_address"}, /* 258 */
+ { 3, 0, sys_timer_create, "timer_create" }, /* 259 */
+ { 4, 0, sys_timer_settime, "timer_settime" }, /* 260 */
+ { 2, 0, sys_timer_gettime, "timer_gettime" }, /* 261 */
+ { 1, 0, sys_timer_getoverrun, "timer_getoverrun"}, /* 262 */
+ { 1, 0, sys_timer_delete, "timer_delete" }, /* 263 */
+ { 2, 0, sys_clock_settime, "clock_settime" }, /* 264 */
+ { 2, 0, sys_clock_gettime, "clock_gettime" }, /* 265 */
+ { 2, 0, sys_clock_getres, "clock_getres" }, /* 266 */
+ { 4, 0, sys_clock_nanosleep, "clock_nanosleep"}, /* 267 */
+ { 3, TF, sys_statfs64, "statfs64" }, /* 268 */
+ { 3, TF, sys_fstatfs64, "fstatfs64" }, /* 269 */
+ { 3, TS, sys_tgkill, "tgkill" }, /* 270 */
+ { 2, TF, sys_utimes, "utimes" }, /* 271 */
+ { 6, TF, sys_fadvise64_64, "fadvise64_64" }, /* 272 */
+ { 5, 0, printargs, "vserver" }, /* 273 */
+ { 6, 0, sys_mbind, "mbind" }, /* 274 */
+ { 5, 0, sys_get_mempolicy, "get_mempolicy" }, /* 275 */
+ { 3, 0, 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 */
+ { 5, 0, sys_mq_timedreceive, "mq_timedreceive" }, /* 280 */
+ { 2, 0, sys_mq_notify, "mq_notify" }, /* 281 */
+ { 3, 0, sys_mq_getsetattr, "mq_getsetattr" }, /* 282 */
+ { 5, 0, printargs, "sys_kexec_load" }, /* 283 */
+ { 5, TP, sys_waitid, "waitid", SYS_waitid }, /* 284 */
+ { 5, 0, printargs, "SYS_285" }, /* 285 */
+ { 5, 0, printargs, "SYS_286" }, /* 286 */
+ { 5, 0, printargs, "SYS_287" }, /* 287 */
+ { 5, 0, printargs, "SYS_288" }, /* 288 */
+ { 5, 0, printargs, "SYS_289" }, /* 289 */
+ { 5, 0, printargs, "SYS_290" }, /* 290 */
+ { 5, 0, printargs, "SYS_291" }, /* 291 */
+ { 5, 0, printargs, "SYS_292" }, /* 292 */
+ { 5, 0, printargs, "SYS_293" }, /* 293 */
+ { 5, 0, printargs, "SYS_294" }, /* 294 */
+ { 5, 0, printargs, "SYS_295" }, /* 295 */
+ { 5, 0, printargs, "SYS_296" }, /* 296 */
+ { 5, 0, printargs, "SYS_297" }, /* 297 */
+ { 5, 0, printargs, "SYS_298" }, /* 298 */
+ { 5, 0, printargs, "SYS_299" }, /* 299 */
+
+#if SYS_socket_subcall != 300
+ #error fix me
+#endif
+ { 8, 0, printargs, "socket_subcall"}, /* 300 */
+ { 3, TN, sys_socket, "socket" }, /* 301 */
+ { 3, TN, sys_bind, "bind" }, /* 302 */
+ { 3, TN, sys_connect, "connect" }, /* 303 */
+ { 2, TN, sys_listen, "listen" }, /* 304 */
+ { 3, TN, sys_accept, "accept" }, /* 305 */
+ { 3, TN, sys_getsockname, "getsockname" }, /* 306 */
+ { 3, TN, sys_getpeername, "getpeername" }, /* 307 */
+ { 4, TN, sys_socketpair, "socketpair" }, /* 308 */
+ { 4, TN, sys_send, "send", SYS_sub_send }, /* 309 */
+ { 4, TN, sys_recv, "recv", SYS_sub_recv }, /* 310 */
+ { 6, TN, sys_sendto, "sendto", SYS_sub_sendto }, /* 311 */
+ { 6, TN, sys_recvfrom, "recvfrom", SYS_sub_recvfrom }, /* 312 */
+ { 2, TN, sys_shutdown, "shutdown" }, /* 313 */
+ { 5, TN, sys_setsockopt, "setsockopt" }, /* 314 */
+ { 5, TN, sys_getsockopt, "getsockopt" }, /* 315 */
+ { 5, TN, sys_sendmsg, "sendmsg" }, /* 316 */
+ { 5, TN, sys_recvmsg, "recvmsg" }, /* 317 */
+
+#if SYS_ipc_subcall != 318
+ #error fix me
+#endif
+ { 4, 0, printargs, "ipc_subcall" }, /* 318 */
+ { 4, TI, sys_semop, "semop" }, /* 319 */
+ { 4, TI, sys_semget, "semget" }, /* 320 */
+ { 4, TI, sys_semctl, "semctl" }, /* 321 */
+ { 5, TI, sys_semtimedop, "semtimedop" }, /* 322 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 323 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 324 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 325 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 326 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 327 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 328 */
+ { 4, TI, sys_msgsnd, "msgsnd" }, /* 329 */
+ { 4, TI, sys_msgrcv, "msgrcv" }, /* 330 */
+ { 4, TI, sys_msgget, "msgget" }, /* 331 */
+ { 4, TI, sys_msgctl, "msgctl" }, /* 332 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 333 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 334 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 335 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 336 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 337 */
+ { 4, 0, printargs, "ipc_subcall" }, /* 338 */
+ { 4, TI, sys_shmat, "shmat" }, /* 339 */
+ { 4, TI, sys_shmdt, "shmdt" }, /* 340 */
+ { 4, TI, sys_shmget, "shmget" }, /* 341 */
+ { 4, TI, sys_shmctl, "shmctl" }, /* 342 */
diff --git a/strace/linux/x86_64/errnoent1.h b/strace/linux/x86_64/errnoent1.h
new file mode 100644
index 0000000..a894827
--- /dev/null
+++ b/strace/linux/x86_64/errnoent1.h
@@ -0,0 +1,2 @@
+/* Our second set comes from the i386 files. */
+#include "../errnoent.h"
diff --git a/strace/linux/x86_64/gentab.pl b/strace/linux/x86_64/gentab.pl
new file mode 100644
index 0000000..3251b43
--- /dev/null
+++ b/strace/linux/x86_64/gentab.pl
@@ -0,0 +1,77 @@
+#!/usr/bin/perl -w
+#generate syscall table from a template file (usually the master i386 syscall
+#ent.h) and the x86_64 unistd.h
+%conv = (
+ "exit" => "_exit",
+);
+
+%known = (
+ "mmap" => "sys_mmap",
+ "sched_yield" => "printargs",
+);
+
+# only used when the template file has no entry
+%args = (
+ "arch_prctl" => 2,
+ "tkill" => 2,
+ "gettid" => 0,
+ "readahead" => 3,
+ # should decode all these:
+ "setxattr" => 5,
+ "lsetxattr" => 5,
+ "fsetxattr" => 5,
+ "getxattr" => 4,
+ "lgetxattr" => 4,
+ "fgetxattr" => 4,
+ "listxattr" => 3,
+ "llistxattr" => 3,
+ "flistxattr" => 3,
+ "removexattr" => 2,
+ "lremovexattr" => 2,
+ "fremovexattr" => 2,
+ "mmap" => 6,
+ "sched_yield" => 0,
+);
+
+open(F,$ARGV[0]) || die "cannot open template file $ARGV[0]\n";
+
+while (<F>) {
+ next unless /{/;
+ s/\/\*.*\*\///;
+ ($name) = /"([^"]+)"/;
+ chomp;
+ $call{$name} = $_;
+}
+
+open(SL, ">syscallnum.h") || die "cannot create syscallnum.h\n";
+
+
+
+open(S,$ARGV[1]) || die "cannot open syscall file $ARGV[1]\n";
+while (<S>) {
+ $name = "";
+ next unless (($name, $num) = /define\s+__NR_(\S+)\s+(\d+)/);
+ next if $name eq "";
+
+ $name = $conv{$name} if defined($conv{$name});
+
+ if (!defined($call{$name})) {
+ unless (defined($args{$name})) {
+ print STDERR "unknown call $name $num\n";
+ $na = 3;
+ } else {
+ $na = $args{$name};
+ }
+ if (defined($known{$name})) {
+ $func = $known{$name};
+ } else {
+ $func = "printargs";
+ }
+ print "\t{ $na,\t0,\t$func,\t\"$name\" }, /* $num */\n";
+ } else {
+ print "$call{$name} /* $num */\n";
+ }
+ print SL "#define SYS_$name $num\n"
+}
+
+
diff --git a/strace/linux/x86_64/ioctlent1.h b/strace/linux/x86_64/ioctlent1.h
new file mode 100644
index 0000000..a44b0ae
--- /dev/null
+++ b/strace/linux/x86_64/ioctlent1.h
@@ -0,0 +1,2 @@
+/* Our second set comes from the i386 files. */
+#include "../ioctlent.h"
diff --git a/strace/linux/x86_64/signalent1.h b/strace/linux/x86_64/signalent1.h
new file mode 100644
index 0000000..5c18d98
--- /dev/null
+++ b/strace/linux/x86_64/signalent1.h
@@ -0,0 +1,2 @@
+/* Our second set comes from the i386 files. */
+#include "../signalent.h"
diff --git a/strace/linux/x86_64/syscallent.h b/strace/linux/x86_64/syscallent.h
new file mode 100644
index 0000000..afd9d96
--- /dev/null
+++ b/strace/linux/x86_64/syscallent.h
@@ -0,0 +1,254 @@
+ { 3, 0, sys_read, "read" }, /* 0 */
+ { 3, 0, sys_write, "write" }, /* 1 */
+ { 3, TF, sys_open, "open" }, /* 2 */
+ { 1, 0, sys_close, "close" }, /* 3 */
+ { 2, TF, sys_stat, "stat" }, /* 4 */
+ { 2, 0, sys_fstat, "fstat" }, /* 5 */
+ { 2, TF, sys_lstat, "lstat" }, /* 6 */
+ { 3, 0, sys_poll, "poll" }, /* 7 */
+ { 3, 0, sys_lseek, "lseek" }, /* 8 */
+ { 6, 0, sys_mmap, "mmap" }, /* 9 */
+ { 3, 0, sys_mprotect, "mprotect" }, /* 10 */
+ { 2, 0, sys_munmap, "munmap" }, /* 11 */
+ { 1, 0, sys_brk, "brk" }, /* 12 */
+ { 4, TS, sys_rt_sigaction, "rt_sigaction" }, /* 13 */
+ { 4, TS, sys_rt_sigprocmask, "rt_sigprocmask"}, /* 14 */
+ { 1, TS, printargs, "rt_sigreturn" }, /* 15 */
+ { 3, 0, sys_ioctl, "ioctl" }, /* 16 */
+ { 5, TF, sys_pread, "pread" }, /* 17 */
+ { 5, TF, sys_pwrite, "pwrite" }, /* 18 */
+ { 3, 0, sys_readv, "readv" }, /* 19 */
+ { 3, 0, sys_writev, "writev" }, /* 20 */
+ { 2, TF, sys_access, "access" }, /* 21 */
+ { 1, 0, sys_pipe, "pipe" }, /* 22 */
+ { 5, 0, sys_select, "select" }, /* 23 */
+ { 0, 0, sys_sched_yield, "sched_yield"}, /* 24 */
+ { 4, 0, sys_mremap, "mremap" }, /* 25 */
+ { 3, 0, sys_msync, "msync" }, /* 26 */
+ { 3, 0, sys_mincore, "mincore" }, /* 27 */
+ { 3, 0, sys_madvise, "madvise" }, /* 28 */
+ { 4, TI, sys_shmget, "shmget" }, /* 29 */
+ { 4, TI, sys_shmat, "shmat" }, /* 30 */
+ { 4, TI, sys_shmctl, "shmctl" }, /* 31 */
+ { 1, 0, sys_dup, "dup" }, /* 32 */
+ { 2, 0, sys_dup2, "dup2" }, /* 33 */
+ { 0, TS, sys_pause, "pause" }, /* 34 */
+ { 2, 0, sys_nanosleep, "nanosleep" }, /* 35 */
+ { 2, 0, sys_getitimer, "getitimer" }, /* 36 */
+ { 1, 0, sys_alarm, "alarm" }, /* 37 */
+ { 3, 0, sys_setitimer, "setitimer" }, /* 38 */
+ { 0, 0, sys_getpid, "getpid" }, /* 39 */
+ { 4, TF, sys_sendfile, "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 */
+ { 5, TN, sys_sendmsg, "sendmsg" }, /* 46 */
+ { 5, TN, sys_recvmsg, "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, TP, sys_clone, "clone" }, /* 56 */
+ { 0, TP, sys_fork, "fork" }, /* 57 */
+ { 0, TP, sys_vfork, "vfork" }, /* 58 */
+ { 3, TF|TP, sys_execve, "execve" }, /* 59 */
+ { 1, TP, sys_exit, "_exit" }, /* 60 */
+ { 4, TP, sys_wait4, "wait4" }, /* 61 */
+ { 2, TS, sys_kill, "kill" }, /* 62 */
+ { 1, 0, sys_uname, "uname" }, /* 63 */
+ { 4, TI, sys_semget, "semget" }, /* 64 */
+ { 4, TI, sys_semop, "semop" }, /* 65 */
+ { 4, TI, sys_semctl, "semctl" }, /* 66 */
+ { 4, TI, sys_shmdt, "shmdt" }, /* 67 */
+ { 4, TI, sys_msgget, "msgget" }, /* 68 */
+ { 4, TI, sys_msgsnd, "msgsnd" }, /* 69 */
+ { 4, TI, sys_msgrcv, "msgrcv" }, /* 70 */
+ { 4, TI, sys_msgctl, "msgctl" }, /* 71 */
+ { 3, 0, sys_fcntl, "fcntl" }, /* 72 */
+ { 2, 0, sys_flock, "flock" }, /* 73 */
+ { 1, 0, sys_fsync, "fsync" }, /* 74 */
+ { 1, 0, sys_fdatasync, "fdatasync" }, /* 75 */
+ { 2, TF, sys_truncate, "truncate" }, /* 76 */
+ { 2, 0, sys_ftruncate, "ftruncate" }, /* 77 */
+ { 3, 0, sys_getdents, "getdents" }, /* 78 */
+ { 2, TF, sys_getcwd, "getcwd" }, /* 79 */
+ { 1, TF, sys_chdir, "chdir" }, /* 80 */
+ { 1, 0, sys_fchdir, "fchdir" }, /* 81 */
+ { 2, TF, sys_rename, "rename" }, /* 82 */
+ { 2, TF, sys_mkdir, "mkdir" }, /* 83 */
+ { 1, TF, sys_rmdir, "rmdir" }, /* 84 */
+ { 2, TF, sys_creat, "creat" }, /* 85 */
+ { 2, TF, sys_link, "link" }, /* 86 */
+ { 1, TF, sys_unlink, "unlink" }, /* 87 */
+ { 2, TF, sys_symlink, "symlink" }, /* 88 */
+ { 3, TF, sys_readlink, "readlink" }, /* 89 */
+ { 2, TF, sys_chmod, "chmod" }, /* 90 */
+ { 2, 0, sys_fchmod, "fchmod" }, /* 91 */
+ { 3, TF, sys_chown, "chown" }, /* 92 */
+ { 3, 0, sys_fchown, "fchown" }, /* 93 */
+ { 3, TF, sys_chown, "lchown" }, /* 94 */
+ { 1, 0, sys_umask, "umask" }, /* 95 */
+ { 2, 0, sys_gettimeofday, "gettimeofday" }, /* 96 */
+ { 2, 0, sys_getrlimit, "getrlimit" }, /* 97 */
+ { 2, 0, sys_getrusage, "getrusage" }, /* 98 */
+ { 1, 0, sys_sysinfo, "sysinfo" }, /* 99 */
+ { 1, 0, sys_times, "times" }, /* 100 */
+ { 4, 0, sys_ptrace, "ptrace" }, /* 101 */
+ { 0, 0, sys_getuid, "getuid" }, /* 102 */
+ { 3, 0, sys_syslog, "syslog" }, /* 103 */
+ { 0, 0, sys_getgid, "getgid" }, /* 104 */
+ { 1, 0, sys_setuid, "setuid" }, /* 105 */
+ { 1, 0, sys_setgid, "setgid" }, /* 106 */
+ { 0, 0, sys_geteuid, "geteuid" }, /* 107 */
+ { 0, 0, sys_getegid, "getegid" }, /* 108 */
+ { 2, 0, sys_setpgid, "setpgid" }, /* 109 */
+ { 0, 0, sys_getppid, "getppid" }, /* 110 */
+ { 0, 0, sys_getpgrp, "getpgrp" }, /* 111 */
+ { 0, 0, sys_setsid, "setsid" }, /* 112 */
+ { 2, 0, sys_setreuid, "setreuid" }, /* 113 */
+ { 2, 0, sys_setregid, "setregid" }, /* 114 */
+ { 2, 0, sys_getgroups, "getgroups" }, /* 115 */
+ { 2, 0, sys_setgroups, "setgroups" }, /* 116 */
+ { 3, 0, sys_setresuid, "setresuid" }, /* 117 */
+ { 3, 0, sys_getresuid, "getresuid" }, /* 118 */
+ { 3, 0, sys_setresgid, "setresgid" }, /* 119 */
+ { 3, 0, sys_getresgid, "getresgid" }, /* 120 */
+ { 1, 0, sys_getpgid, "getpgid" }, /* 121 */
+ { 1, 0, sys_setfsuid, "setfsuid" }, /* 122 */
+ { 1, 0, sys_setfsgid, "setfsgid" }, /* 123 */
+ { 1, 0, sys_getsid, "getsid" }, /* 124 */
+ { 2, 0, sys_capget, "capget" }, /* 125 */
+ { 2, 0, sys_capset, "capset" }, /* 126 */
+ { 2, TS, sys_rt_sigpending, "rt_sigpending" }, /* 127 */
+ { 4, TS, sys_rt_sigtimedwait, "rt_sigtimedwait" }, /* 128 */
+ { 3, TS, sys_rt_sigqueueinfo, "rt_sigqueueinfo" }, /* 129 */
+ { 2, TS, sys_rt_sigsuspend, "rt_sigsuspend" }, /* 130 */
+ { 2, TS, sys_sigaltstack, "sigaltstack" }, /* 131 */
+ { 2, TF, sys_utime, "utime" }, /* 132 */
+ { 3, TF, sys_mknod, "mknod" }, /* 133 */
+ { 1, TF, sys_uselib, "uselib" }, /* 134 */
+ { 1, 0, sys_personality, "personality" }, /* 135 */
+ { 2, 0, sys_ustat, "ustat" }, /* 136 */
+ { 2, TF, sys_statfs, "statfs" }, /* 137 */
+ { 2, 0, sys_fstatfs, "fstatfs" }, /* 138 */
+ { 3, 0, sys_sysfs, "sysfs" }, /* 139 */
+ { 2, 0, sys_getpriority, "getpriority" }, /* 140 */
+ { 3, 0, sys_setpriority, "setpriority" }, /* 141 */
+ { 0, 0, sys_sched_setparam, "sched_setparam" }, /* 142 */
+ { 2, 0, sys_sched_getparam, "sched_getparam" }, /* 143 */
+ { 3, 0, sys_sched_setscheduler, "sched_setscheduler" }, /* 144 */
+ { 1, 0, sys_sched_getscheduler, "sched_getscheduler" }, /* 145 */
+ { 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 */
+ { 2, 0, sys_mlockall, "mlockall" }, /* 151 */
+ { 0, 0, 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 */
+ { 1, 0, sys_sysctl, "_sysctl" }, /* 156 */
+ { 5, 0, printargs, "prctl" }, /* 157 */
+ { 2, TP, sys_arch_prctl, "arch_prctl" }, /* 158 */
+ { 1, 0, sys_adjtimex, "adjtimex" }, /* 159 */
+ { 2, 0, sys_setrlimit, "setrlimit" }, /* 160 */
+ { 1, TF, sys_chroot, "chroot" }, /* 161 */
+ { 0, 0, sys_sync, "sync" }, /* 162 */
+ { 1, TF, sys_acct, "acct" }, /* 163 */
+ { 2, 0, sys_settimeofday, "settimeofday" }, /* 164 */
+ { 5, TF, sys_mount, "mount" }, /* 165 */
+ { 2, TF, sys_umount2, "umount" }, /* 166 */
+ { 1, TF, sys_swapon, "swapon" }, /* 167 */
+ { 1, 0, sys_swapoff, "swapoff" }, /* 168 */
+ { 3, 0, sys_reboot, "reboot" }, /* 169 */
+ { 2, 0, sys_sethostname, "sethostname" }, /* 170 */
+ { 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, sys_init_module, "init_module" }, /* 175 */
+ { 1, 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 */
+ { 3, 0, printargs, "nfsservctl" }, /* 180 */
+ { 5, 0, sys_getpmsg, "getpmsg" }, /* 181 */
+ { 5, 0, sys_putpmsg, "putpmsg" }, /* 182 */
+ { 5, 0, sys_afs_syscall, "afs_syscall" }, /* 183 */
+ { 3, 0, printargs, "tuxcall" }, /* 184 */
+ { 3, 0, printargs, "security" }, /* 185 */
+ { 0, 0, printargs, "gettid" }, /* 186 */
+ { 4, 0, sys_readahead, "readahead" }, /* 187 */
+ { 5, TF, sys_setxattr, "setxattr" }, /* 188 */
+ { 5, TF, sys_setxattr, "lsetxattr" }, /* 189 */
+ { 5, 0, sys_fsetxattr, "fsetxattr" }, /* 190 */
+ { 4, TF, sys_getxattr, "getxattr" }, /* 191 */
+ { 4, TF, sys_getxattr, "lgetxattr" }, /* 192 */
+ { 4, 0, sys_fgetxattr, "fgetxattr" }, /* 193 */
+ { 3, TF, sys_listxattr, "listxattr" }, /* 194 */
+ { 3, TF, sys_listxattr, "llistxattr" }, /* 195 */
+ { 3, 0, sys_flistxattr, "flistxattr" }, /* 196 */
+ { 2, TF, sys_removexattr, "removexattr" }, /* 197 */
+ { 2, TF, sys_removexattr, "lremovexattr" }, /* 198 */
+ { 2, 0, sys_fremovexattr, "fremovexattr" }, /* 199 */
+ { 2, 0, sys_kill, "tkill" }, /* 200 */
+ { 1, 0, sys_time, "time" }, /* 201 */
+ { 5, 0, sys_futex, "futex" }, /* 202 */
+ { 3, 0, sys_sched_setaffinity, "sched_setaffinity" },/* 203 */
+ { 3, 0, sys_sched_getaffinity, "sched_getaffinity" },/* 204 */
+ { 1, 0, sys_set_thread_area, "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 */
+ { 1, 0, sys_get_thread_area, "get_thread_area" }, /* 211 */
+ { 4, 0, printargs, "lookup_dcookie"}, /* 212 */
+ { 1, 0, 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 */
+ { 4, 0, sys_getdents64, "getdents64" }, /* 217 */
+ { 1, 0, printargs, "set_tid_address"}, /* 218 */
+ { 5, 0, printargs, "restart_syscall"}, /* 219 */
+ { 5, TI, sys_semtimedop, "semtimedop" }, /* 220 */
+ { 4, TF, sys_fadvise64_64, "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 */
+ { 1, 0, sys_timer_getoverrun, "timer_getoverrun"}, /* 225 */
+ { 1, 0, sys_timer_delete, "timer_delete" }, /* 226 */
+ { 2, 0, sys_clock_settime, "clock_settime" }, /* 227 */
+ { 2, 0, sys_clock_gettime, "clock_gettime" }, /* 228 */
+ { 2, 0, sys_clock_getres, "clock_getres" }, /* 229 */
+ { 4, 0, sys_clock_nanosleep, "clock_nanosleep"}, /* 230 */
+ { 1, TP, sys_exit, "exit_group" }, /* 231 */
+ { 5, 0, sys_epoll_wait, "epoll_wait" }, /* 232 */
+ { 5, 0, sys_epoll_ctl, "epoll_ctl" }, /* 233 */
+ { 3, TS, sys_tgkill, "tgkill" }, /* 234 */
+ { 2, TF, sys_utimes, "utimes" }, /* 235 */
+ { 5, 0, printargs, "vserver" }, /* 236 */
+ { 6, 0, sys_mbind, "mbind" }, /* 237 */
+ { 3, 0, sys_set_mempolicy, "set_mempolicy" }, /* 238 */
+ { 5, 0, 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 */
+ { 2, 0, sys_mq_notify, "mq_notify" }, /* 244 */
+ { 3, 0, sys_mq_getsetattr, "mq_getsetattr" }, /* 245 */
+ { 5, 0, printargs, "kexec_load" }, /* 246 */
+ { 5, TP, sys_waitid, "waitid" }, /* 247 */
+ { 5, 0, printargs, "SYS_248" }, /* 248 */
+ { 5, 0, printargs, "SYS_249" }, /* 249 */
+ { 5, 0, printargs, "SYS_250" }, /* 250 */
+ { 5, 0, printargs, "SYS_251" }, /* 251 */
+ { 5, 0, printargs, "SYS_252" }, /* 252 */
+ { 5, 0, printargs, "SYS_253" }, /* 253 */
diff --git a/strace/linux/x86_64/syscallent1.h b/strace/linux/x86_64/syscallent1.h
new file mode 100644
index 0000000..f6bf143
--- /dev/null
+++ b/strace/linux/x86_64/syscallent1.h
@@ -0,0 +1,7 @@
+/* Our second set comes from the i386 files.
+ Only a couple of calls we cannot support without the i386 headers. */
+
+#define sys_oldstat printargs
+#define sys_oldfstat printargs
+#define sys_oldlstat printargs
+#include "../syscallent.h"
diff --git a/stream.c b/stream.c
new file mode 100644
index 0000000..0029c3d
--- /dev/null
+++ b/stream.c
@@ -0,0 +1,1303 @@
+/*
+ * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
+ * Copyright (c) 1996-1999 Wichert Akkerman <wichert@cistron.nl>
+ * 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.
+ *
+ * $Id: stream.c,v 1.24 2005/06/01 19:22:07 roland Exp $
+ */
+
+#include "defs.h"
+#include <sys/syscall.h>
+
+#ifdef HAVE_POLL_H
+#include <poll.h>
+#endif
+#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
+#ifdef HAVE_SYS_STREAM_H
+#include <sys/stream.h>
+#endif
+#ifdef HAVE_SYS_TIHDR_H
+#include <sys/tihdr.h>
+#endif
+
+#if defined(HAVE_SYS_STREAM_H) || defined(LINUX) || defined(FREEBSD)
+
+#ifndef HAVE_STROPTS_H
+#define RS_HIPRI 1
+struct strbuf {
+ int maxlen; /* no. of bytes in buffer */
+ int len; /* no. of bytes returned */
+ char *buf; /* pointer to data */
+};
+#define MORECTL 1
+#define MOREDATA 2
+#endif /* !HAVE_STROPTS_H */
+
+#ifdef HAVE_SYS_TIUSER_H
+#include <sys/tiuser.h>
+#include <sys/sockmod.h>
+#include <sys/timod.h>
+#endif /* HAVE_SYS_TIUSER_H */
+
+#ifndef FREEBSD
+static const struct xlat msgflags[] = {
+ { RS_HIPRI, "RS_HIPRI" },
+ { 0, NULL },
+};
+
+
+static void
+printstrbuf(tcp, sbp, getting)
+struct tcb *tcp;
+struct strbuf *sbp;
+int getting;
+{
+ if (sbp->maxlen == -1 && getting)
+ tprintf("{maxlen=-1}");
+ else {
+ tprintf("{");
+ if (getting)
+ tprintf("maxlen=%d, ", sbp->maxlen);
+ tprintf("len=%d, buf=", sbp->len);
+ printstr(tcp, (unsigned long) sbp->buf, sbp->len);
+ tprintf("}");
+ }
+}
+
+static void
+printstrbufarg(tcp, arg, getting)
+struct tcb *tcp;
+int arg;
+int getting;
+{
+ struct strbuf buf;
+
+ if (arg == 0)
+ tprintf("NULL");
+ else if (umove(tcp, arg, &buf) < 0)
+ tprintf("{...}");
+ else
+ printstrbuf(tcp, &buf, getting);
+ tprintf(", ");
+}
+
+int
+sys_putmsg(tcp)
+struct tcb *tcp;
+{
+ int i;
+
+ if (entering(tcp)) {
+ /* fd */
+ tprintf("%ld, ", tcp->u_arg[0]);
+ /* control and data */
+ for (i = 1; i < 3; i++)
+ printstrbufarg(tcp, tcp->u_arg[i], 0);
+ /* flags */
+ printflags(msgflags, tcp->u_arg[3], "RS_???");
+ }
+ return 0;
+}
+
+int
+sys_getmsg(tcp)
+struct tcb *tcp;
+{
+ int i, flags;
+
+ if (entering(tcp)) {
+ /* fd */
+ tprintf("%lu, ", tcp->u_arg[0]);
+ } else {
+ if (syserror(tcp)) {
+ tprintf("%#lx, %#lx, %#lx",
+ tcp->u_arg[1], tcp->u_arg[2], tcp->u_arg[3]);
+ return 0;
+ }
+ /* control and data */
+ for (i = 1; i < 3; i++)
+ printstrbufarg(tcp, tcp->u_arg[i], 1);
+ /* pointer to flags */
+ if (tcp->u_arg[3] == 0)
+ tprintf("NULL");
+ else if (umove(tcp, tcp->u_arg[3], &flags) < 0)
+ tprintf("[?]");
+ else {
+ tprintf("[");
+ printflags(msgflags, flags, "RS_???");
+ tprintf("]");
+ }
+ /* decode return value */
+ switch (tcp->u_rval) {
+ case MORECTL:
+ tcp->auxstr = "MORECTL";
+ break;
+ case MORECTL|MOREDATA:
+ tcp->auxstr = "MORECTL|MOREDATA";
+ break;
+ case MOREDATA:
+ tcp->auxstr = "MORECTL";
+ break;
+ default:
+ tcp->auxstr = NULL;
+ break;
+ }
+ }
+ return RVAL_HEX | RVAL_STR;
+}
+
+#if defined SYS_putpmsg || defined SYS_getpmsg
+static const struct xlat pmsgflags[] = {
+#ifdef MSG_HIPRI
+ { MSG_HIPRI, "MSG_HIPRI" },
+#endif
+#ifdef MSG_AND
+ { MSG_ANY, "MSG_ANY" },
+#endif
+#ifdef MSG_BAND
+ { MSG_BAND, "MSG_BAND" },
+#endif
+ { 0, NULL },
+};
+#endif
+
+#ifdef SYS_putpmsg
+int
+sys_putpmsg(tcp)
+struct tcb *tcp;
+{
+ int i;
+
+ if (entering(tcp)) {
+ /* fd */
+ tprintf("%ld, ", tcp->u_arg[0]);
+ /* control and data */
+ for (i = 1; i < 3; i++)
+ printstrbufarg(tcp, tcp->u_arg[i], 0);
+ /* band */
+ tprintf("%ld, ", tcp->u_arg[3]);
+ /* flags */
+ printflags(pmsgflags, tcp->u_arg[4], "MSG_???");
+ }
+ return 0;
+}
+#endif /* SYS_putpmsg */
+
+#ifdef SYS_getpmsg
+int
+sys_getpmsg(tcp)
+struct tcb *tcp;
+{
+ int i, flags;
+
+ if (entering(tcp)) {
+ /* fd */
+ tprintf("%lu, ", tcp->u_arg[0]);
+ } else {
+ if (syserror(tcp)) {
+ tprintf("%#lx, %#lx, %#lx, %#lx", tcp->u_arg[1],
+ tcp->u_arg[2], tcp->u_arg[3], tcp->u_arg[4]);
+ return 0;
+ }
+ /* control and data */
+ for (i = 1; i < 3; i++)
+ printstrbufarg(tcp, tcp->u_arg[i], 1);
+ /* pointer to band */
+ printnum(tcp, tcp->u_arg[3], "%d");
+ tprintf(", ");
+ /* pointer to flags */
+ if (tcp->u_arg[4] == 0)
+ tprintf("NULL");
+ else if (umove(tcp, tcp->u_arg[4], &flags) < 0)
+ tprintf("[?]");
+ else {
+ tprintf("[");
+ printflags(pmsgflags, flags, "MSG_???");
+ tprintf("]");
+ }
+ /* decode return value */
+ switch (tcp->u_rval) {
+ case MORECTL:
+ tcp->auxstr = "MORECTL";
+ break;
+ case MORECTL|MOREDATA:
+ tcp->auxstr = "MORECTL|MOREDATA";
+ break;
+ case MOREDATA:
+ tcp->auxstr = "MORECTL";
+ break;
+ default:
+ tcp->auxstr = NULL;
+ break;
+ }
+ }
+ return RVAL_HEX | RVAL_STR;
+}
+#endif /* SYS_getpmsg */
+
+#endif /* !FREEBSD */
+
+
+#ifdef HAVE_SYS_POLL_H
+
+static const struct xlat pollflags[] = {
+#ifdef POLLIN
+ { POLLIN, "POLLIN" },
+ { POLLPRI, "POLLPRI" },
+ { POLLOUT, "POLLOUT" },
+#ifdef POLLRDNORM
+ { POLLRDNORM, "POLLRDNORM" },
+#endif
+#ifdef POLLWRNORM
+ { POLLWRNORM, "POLLWRNORM" },
+#endif
+#ifdef POLLRDBAND
+ { POLLRDBAND, "POLLRDBAND" },
+#endif
+#ifdef POLLWRBAND
+ { POLLWRBAND, "POLLWRBAND" },
+#endif
+ { POLLERR, "POLLERR" },
+ { POLLHUP, "POLLHUP" },
+ { POLLNVAL, "POLLNVAL" },
+#endif
+ { 0, NULL },
+};
+
+int
+sys_poll(tcp)
+struct tcb *tcp;
+{
+ struct pollfd fds;
+ unsigned nfds;
+ unsigned long size, start, cur, end, abbrev_end;
+ int failed = 0;
+
+ if (entering(tcp))
+ return 0;
+
+ nfds = tcp->u_arg[1];
+ size = sizeof(fds) * nfds;
+ start = tcp->u_arg[0];
+ end = start + size;
+ if (nfds == 0 || size / sizeof(fds) != nfds || end < start) {
+ tprintf("%#lx, %d, %ld",
+ tcp->u_arg[0], nfds, tcp->u_arg[2]);
+ return 0;
+ }
+ if (abbrev(tcp)) {
+ abbrev_end = start + max_strlen * sizeof(fds);
+ if (abbrev_end < start)
+ abbrev_end = end;
+ } else {
+ abbrev_end = end;
+ }
+ tprintf("[");
+ for (cur = start; cur < end; cur += sizeof(fds)) {
+ if (cur > start)
+ tprintf(", ");
+ if (cur >= abbrev_end) {
+ tprintf("...");
+ break;
+ }
+ if (umoven(tcp, cur, sizeof fds, (char *) &fds) < 0) {
+ tprintf("?");
+ failed = 1;
+ break;
+ }
+ if (fds.fd < 0) {
+ tprintf("{fd=%d}", fds.fd);
+ continue;
+ }
+ tprintf("{fd=%d, events=", fds.fd);
+ printflags(pollflags, fds.events, "POLL???");
+ if (!syserror(tcp) && fds.revents) {
+ tprintf(", revents=");
+ printflags(pollflags, fds.revents, "POLL???");
+ }
+ tprintf("}");
+ }
+ tprintf("]");
+ if (failed)
+ tprintf(" %#lx", start);
+ tprintf(", %d, ", nfds);
+#ifdef INFTIM
+ if (tcp->u_arg[2] == INFTIM)
+ tprintf("INFTIM");
+ else
+#endif
+ tprintf("%ld", tcp->u_arg[2]);
+ return 0;
+}
+
+
+#else /* !HAVE_SYS_POLL_H */
+int
+sys_poll(tcp)
+struct tcb *tcp;
+{
+ return 0;
+}
+#endif
+
+#if !defined(LINUX) && !defined(FREEBSD)
+
+static const struct xlat stream_flush_options[] = {
+ { FLUSHR, "FLUSHR" },
+ { FLUSHW, "FLUSHW" },
+ { FLUSHRW, "FLUSHRW" },
+#ifdef FLUSHBAND
+ { FLUSHBAND, "FLUSHBAND" },
+#endif
+ { 0, NULL },
+};
+
+static const struct xlat stream_setsig_flags[] = {
+ { S_INPUT, "S_INPUT" },
+ { S_HIPRI, "S_HIPRI" },
+ { S_OUTPUT, "S_OUTPUT" },
+ { S_MSG, "S_MSG" },
+#ifdef S_ERROR
+ { S_ERROR, "S_ERROR" },
+#endif
+#ifdef S_HANGUP
+ { S_HANGUP, "S_HANGUP" },
+#endif
+#ifdef S_RDNORM
+ { S_RDNORM, "S_RDNORM" },
+#endif
+#ifdef S_WRNORM
+ { S_WRNORM, "S_WRNORM" },
+#endif
+#ifdef S_RDBAND
+ { S_RDBAND, "S_RDBAND" },
+#endif
+#ifdef S_WRBAND
+ { S_WRBAND, "S_WRBAND" },
+#endif
+#ifdef S_BANDURG
+ { S_BANDURG, "S_BANDURG" },
+#endif
+ { 0, NULL },
+};
+
+static const struct xlat stream_read_options[] = {
+ { RNORM, "RNORM" },
+ { RMSGD, "RMSGD" },
+ { RMSGN, "RMSGN" },
+ { 0, NULL },
+};
+
+static const struct xlat stream_read_flags[] = {
+#ifdef RPROTDAT
+ { RPROTDAT, "RPROTDAT" },
+#endif
+#ifdef RPROTDIS
+ { RPROTDIS, "RPROTDIS" },
+#endif
+#ifdef RPROTNORM
+ { RPROTNORM, "RPROTNORM" },
+#endif
+ { 0, NULL },
+};
+
+#ifndef RMODEMASK
+#define RMODEMASK (~0)
+#endif
+
+#ifdef I_SWROPT
+static const struct xlat stream_write_flags[] = {
+ { SNDZERO, "SNDZERO" },
+ { SNDPIPE, "SNDPIPE" },
+ { 0, NULL },
+};
+#endif /* I_SWROPT */
+
+#ifdef I_ATMARK
+static const struct xlat stream_atmark_options[] = {
+ { ANYMARK, "ANYMARK" },
+ { LASTMARK, "LASTMARK" },
+ { 0, NULL },
+};
+#endif /* I_ATMARK */
+
+#ifdef TI_BIND
+static const struct xlat transport_user_options[] = {
+ { T_CONN_REQ, "T_CONN_REQ" },
+ { T_CONN_RES, "T_CONN_RES" },
+ { T_DISCON_REQ, "T_DISCON_REQ" },
+ { T_DATA_REQ, "T_DATA_REQ" },
+ { T_EXDATA_REQ, "T_EXDATA_REQ" },
+ { T_INFO_REQ, "T_INFO_REQ" },
+ { T_BIND_REQ, "T_BIND_REQ" },
+ { T_UNBIND_REQ, "T_UNBIND_REQ" },
+ { T_UNITDATA_REQ,"T_UNITDATA_REQ"},
+ { T_OPTMGMT_REQ,"T_OPTMGMT_REQ" },
+ { T_ORDREL_REQ, "T_ORDREL_REQ" },
+ { 0, NULL },
+};
+
+static const struct xlat transport_user_flags [] = {
+ { 0, "0" },
+ { T_MORE, "T_MORE" },
+ { T_EXPEDITED, "T_EXPEDITED" },
+ { T_NEGOTIATE, "T_NEGOTIATE" },
+ { T_CHECK, "T_CHECK" },
+ { T_DEFAULT, "T_DEFAULT" },
+ { T_SUCCESS, "T_SUCCESS" },
+ { T_FAILURE, "T_FAILURE" },
+ { T_CURRENT, "T_CURRENT" },
+ { T_PARTSUCCESS,"T_PARTSUCCESS" },
+ { T_READONLY, "T_READONLY" },
+ { T_NOTSUPPORT, "T_NOTSUPPORT" },
+ { 0, NULL },
+};
+
+
+#ifdef HAVE_STRUCT_T_OPTHDR
+
+static const struct xlat xti_level [] = {
+ { XTI_GENERIC, "XTI_GENERIC" },
+ { 0, NULL },
+};
+
+static const struct xlat xti_generic [] = {
+ { XTI_DEBUG, "XTI_DEBUG" },
+ { XTI_LINGER, "XTI_LINGER" },
+ { XTI_RCVBUF, "XTI_RCVBUF" },
+ { XTI_RCVLOWAT, "XTI_RCVLOWAT" },
+ { XTI_SNDBUF, "XTI_SNDBUF" },
+ { XTI_SNDLOWAT, "XTI_SNDLOWAT" },
+ { 0, NULL },
+};
+
+
+
+void
+print_xti_optmgmt (tcp, addr, len)
+struct tcb *tcp;
+long addr;
+int len;
+{
+ int c = 0;
+ struct t_opthdr hdr;
+
+ while (len >= (int) sizeof hdr) {
+ if (umove(tcp, addr, &hdr) < 0) break;
+ if (c++) {
+ tprintf (", ");
+ }
+ else if (len > hdr.len + sizeof hdr) {
+ tprintf ("[");
+ }
+ tprintf ("{level=");
+ printxval (xti_level, hdr.level, "???");
+ tprintf (", name=");
+ switch (hdr.level) {
+ case XTI_GENERIC:
+ printxval (xti_generic, hdr.name, "XTI_???");
+ break;
+ default:
+ tprintf ("%ld", hdr.name);
+ break;
+ }
+ tprintf (", status=");
+ printxval (transport_user_flags, hdr.status, "T_???");
+ addr += sizeof hdr;
+ len -= sizeof hdr;
+ if ((hdr.len -= sizeof hdr) > 0) {
+ if (hdr.len > len) break;
+ tprintf (", val=");
+ if (len == sizeof (int))
+ printnum (tcp, addr, "%d");
+ else
+ printstr (tcp, addr, hdr.len);
+ addr += hdr.len;
+ len -= hdr.len;
+ }
+ tprintf ("}");
+ }
+ if (len > 0) {
+ if (c++) tprintf (", ");
+ printstr (tcp, addr, len);
+ }
+ if (c > 1) tprintf ("]");
+}
+
+#endif
+
+
+static void
+print_optmgmt (tcp, addr, len)
+struct tcb *tcp;
+long addr;
+int len;
+{
+ /* We don't know how to tell if TLI (socket) or XTI
+ optmgmt is being used yet, assume TLI. */
+#if defined (HAVE_STRUCT_OPTHDR)
+ print_sock_optmgmt (tcp, addr, len);
+#elif defined (HAVE_STRUCT_T_OPTHDR)
+ print_xti_optmgmt (tcp, addr, len);
+#else
+ printstr (tcp, addr, len);
+#endif
+}
+
+
+
+
+static const struct xlat service_type [] = {
+ { T_COTS, "T_COTS" },
+ { T_COTS_ORD, "T_COTS_ORD" },
+ { T_CLTS, "T_CLTS" },
+ { 0, NULL },
+};
+
+static const struct xlat ts_state [] = {
+ { TS_UNBND, "TS_UNBND" },
+ { TS_WACK_BREQ, "TS_WACK_BREQ" },
+ { TS_WACK_UREQ, "TS_WACK_UREQ" },
+ { TS_IDLE, "TS_IDLE" },
+ { TS_WACK_OPTREQ,"TS_WACK_OPTREQ"},
+ { TS_WACK_CREQ, "TS_WACK_CREQ" },
+ { TS_WCON_CREQ, "TS_WCON_CREQ" },
+ { TS_WRES_CIND, "TS_WRES_CIND" },
+ { TS_WACK_CRES, "TS_WACK_CRES" },
+ { TS_DATA_XFER, "TS_DATA_XFER" },
+ { TS_WIND_ORDREL,"TS_WIND_ORDREL"},
+ { TS_WREQ_ORDREL,"TS_WREQ_ORDREL"},
+ { TS_WACK_DREQ6,"TS_WACK_DREQ6" },
+ { TS_WACK_DREQ7,"TS_WACK_DREQ7" },
+ { TS_WACK_DREQ9,"TS_WACK_DREQ9" },
+ { TS_WACK_DREQ10,"TS_WACK_DREQ10"},
+ { TS_WACK_DREQ11,"TS_WACK_DREQ11"},
+ { 0, NULL },
+};
+
+static const struct xlat provider_flags [] = {
+ { 0, "0" },
+ { SENDZERO, "SENDZERO" },
+ { EXPINLINE, "EXPINLINE" },
+ { XPG4_1, "XPG4_1" },
+ { 0, NULL },
+};
+
+
+static const struct xlat tli_errors [] = {
+ { TBADADDR, "TBADADDR" },
+ { TBADOPT, "TBADOPT" },
+ { TACCES, "TACCES" },
+ { TBADF, "TBADF" },
+ { TNOADDR, "TNOADDR" },
+ { TOUTSTATE, "TOUTSTATE" },
+ { TBADSEQ, "TBADSEQ" },
+ { TSYSERR, "TSYSERR" },
+ { TLOOK, "TLOOK" },
+ { TBADDATA, "TBADDATA" },
+ { TBUFOVFLW, "TBUFOVFLW" },
+ { TFLOW, "TFLOW" },
+ { TNODATA, "TNODATA" },
+ { TNODIS, "TNODIS" },
+ { TNOUDERR, "TNOUDERR" },
+ { TBADFLAG, "TBADFLAG" },
+ { TNOREL, "TNOREL" },
+ { TNOTSUPPORT, "TNOTSUPPORT" },
+ { TSTATECHNG, "TSTATECHNG" },
+ { TNOSTRUCTYPE, "TNOSTRUCTYPE" },
+ { TBADNAME, "TBADNAME" },
+ { TBADQLEN, "TBADQLEN" },
+ { TADDRBUSY, "TADDRBUSY" },
+ { TINDOUT, "TINDOUT" },
+ { TPROVMISMATCH,"TPROVMISMATCH" },
+ { TRESQLEN, "TRESQLEN" },
+ { TRESADDR, "TRESADDR" },
+ { TQFULL, "TQFULL" },
+ { TPROTO, "TPROTO" },
+ { 0, NULL },
+};
+
+
+static int
+print_transport_message (tcp, expect, addr, len)
+struct tcb *tcp;
+int expect;
+long addr;
+int len;
+{
+ union T_primitives m;
+ int c = 0;
+
+ if (len < sizeof m.type) goto dump;
+
+ if (umove (tcp, addr, &m.type) < 0) goto dump;
+
+#define GET(type, struct) \
+ do { \
+ if (len < sizeof m.struct) goto dump; \
+ if (umove (tcp, addr, &m.struct) < 0) goto dump;\
+ tprintf ("{"); \
+ if (expect != type) { \
+ ++c; \
+ tprintf (#type); \
+ } \
+ } \
+ while (0)
+
+#define COMMA() \
+ do { if (c++) tprintf (", "); } while (0)
+
+
+#define STRUCT(struct, elem, print) \
+ do { \
+ COMMA (); \
+ if (m.struct.elem##_length < 0 || \
+ m.struct.elem##_offset < sizeof m.struct || \
+ m.struct.elem##_offset + m.struct.elem##_length > len) \
+ { \
+ tprintf (#elem "_length=%ld, " #elem "_offset=%ld",\
+ m.struct.elem##_length, \
+ m.struct.elem##_offset); \
+ } \
+ else { \
+ tprintf (#elem "="); \
+ print (tcp, \
+ addr + m.struct.elem##_offset, \
+ m.struct.elem##_length); \
+ } \
+ } \
+ while (0)
+
+#define ADDR(struct, elem) STRUCT (struct, elem, printstr)
+
+ switch (m.type) {
+#ifdef T_CONN_REQ
+ case T_CONN_REQ: /* connect request */
+ GET (T_CONN_REQ, conn_req);
+ ADDR (conn_req, DEST);
+ ADDR (conn_req, OPT);
+ break;
+#endif
+#ifdef T_CONN_RES
+ case T_CONN_RES: /* connect response */
+ GET (T_CONN_RES, conn_res);
+#ifdef HAVE_STRUCT_T_CONN_RES_QUEUE_PTR
+ COMMA ();
+ tprintf ("QUEUE=%p", m.conn_res.QUEUE_ptr);
+#elif defined HAVE_STRUCT_T_CONN_RES_ACCEPTOR_ID
+ COMMA ();
+ tprintf ("ACCEPTOR=%#lx", m.conn_res.ACCEPTOR_id);
+#endif
+ ADDR (conn_res, OPT);
+ COMMA ();
+ tprintf ("SEQ=%ld", m.conn_res.SEQ_number);
+ break;
+#endif
+#ifdef T_DISCON_REQ
+ case T_DISCON_REQ: /* disconnect request */
+ GET (T_DISCON_REQ, discon_req);
+ COMMA ();
+ tprintf ("SEQ=%ld", m.discon_req.SEQ_number);
+ break;
+#endif
+#ifdef T_DATA_REQ
+ case T_DATA_REQ: /* data request */
+ GET (T_DATA_REQ, data_req);
+ COMMA ();
+ tprintf ("MORE=%ld", m.data_req.MORE_flag);
+ break;
+#endif
+#ifdef T_EXDATA_REQ
+ case T_EXDATA_REQ: /* expedited data req */
+ GET (T_EXDATA_REQ, exdata_req);
+ COMMA ();
+ tprintf ("MORE=%ld", m.exdata_req.MORE_flag);
+ break;
+#endif
+#ifdef T_INFO_REQ
+ case T_INFO_REQ: /* information req */
+ GET (T_INFO_REQ, info_req);
+ break;
+#endif
+#ifdef T_BIND_REQ
+ case T_BIND_REQ: /* bind request */
+#ifdef O_T_BIND_REQ
+ case O_T_BIND_REQ: /* Ugly xti/tli hack */
+#endif
+ GET (T_BIND_REQ, bind_req);
+ ADDR (bind_req, ADDR);
+ COMMA ();
+ tprintf ("CONIND=%ld", m.bind_req.CONIND_number);
+ break;
+#endif
+#ifdef T_UNBIND_REQ
+ case T_UNBIND_REQ: /* unbind request */
+ GET (T_UNBIND_REQ, unbind_req);
+ break;
+#endif
+#ifdef T_UNITDATA_REQ
+ case T_UNITDATA_REQ: /* unitdata requset */
+ GET (T_UNITDATA_REQ, unitdata_req);
+ ADDR (unitdata_req, DEST);
+ ADDR (unitdata_req, OPT);
+ break;
+#endif
+#ifdef T_OPTMGMT_REQ
+ case T_OPTMGMT_REQ: /* manage opt req */
+ GET (T_OPTMGMT_REQ, optmgmt_req);
+ COMMA ();
+ tprintf ("MGMT=");
+ printflags (transport_user_flags, m.optmgmt_req.MGMT_flags,
+ "T_???");
+ STRUCT (optmgmt_req, OPT, print_optmgmt);
+ break;
+#endif
+#ifdef T_ORDREL_REQ
+ case T_ORDREL_REQ: /* orderly rel req */
+ GET (T_ORDREL_REQ, ordrel_req);
+ break;
+#endif
+#ifdef T_CONN_IND
+ case T_CONN_IND: /* connect indication */
+ GET (T_CONN_IND, conn_ind);
+ ADDR (conn_ind, SRC);
+ ADDR (conn_ind, OPT);
+ tprintf (", SEQ=%ld", m.conn_ind.SEQ_number);
+ break;
+#endif
+#ifdef T_CONN_CON
+ case T_CONN_CON: /* connect corfirm */
+ GET (T_CONN_CON, conn_con);
+ ADDR (conn_con, RES);
+ ADDR (conn_con, OPT);
+ break;
+#endif
+#ifdef T_DISCON_IND
+ case T_DISCON_IND: /* discon indication */
+ GET (T_DISCON_IND, discon_ind);
+ COMMA ();
+ tprintf ("DISCON=%ld, SEQ=%ld",
+ m.discon_ind.DISCON_reason, m.discon_ind.SEQ_number);
+ break;
+#endif
+#ifdef T_DATA_IND
+ case T_DATA_IND: /* data indication */
+ GET (T_DATA_IND, data_ind);
+ COMMA ();
+ tprintf ("MORE=%ld", m.data_ind.MORE_flag);
+ break;
+#endif
+#ifdef T_EXDATA_IND
+ case T_EXDATA_IND: /* expedited data ind */
+ GET (T_EXDATA_IND, exdata_ind);
+ COMMA ();
+ tprintf ("MORE=%ld", m.exdata_ind.MORE_flag);
+ break;
+#endif
+#ifdef T_INFO_ACK
+ case T_INFO_ACK: /* info ack */
+ GET (T_INFO_ACK, info_ack);
+ COMMA ();
+ tprintf ("TSDU=%ld, ETSDU=%ld, CDATA=%ld, DDATA=%ld, "
+ "ADDR=%ld, OPT=%ld, TIDU=%ld, SERV=",
+ m.info_ack.TSDU_size, m.info_ack.ETSDU_size,
+ m.info_ack.CDATA_size, m.info_ack.DDATA_size,
+ m.info_ack.ADDR_size, m.info_ack.OPT_size,
+ m.info_ack.TIDU_size);
+ printxval (service_type, m.info_ack.SERV_type, "T_???");
+ tprintf (", CURRENT=");
+ printxval (ts_state, m.info_ack.CURRENT_state, "TS_???");
+ tprintf (", PROVIDER=");
+ printflags (provider_flags, m.info_ack.PROVIDER_flag, "???");
+ break;
+#endif
+#ifdef T_BIND_ACK
+ case T_BIND_ACK: /* bind ack */
+ GET (T_BIND_ACK, bind_ack);
+ ADDR (bind_ack, ADDR);
+ tprintf (", CONIND=%ld", m.bind_ack.CONIND_number);
+ break;
+#endif
+#ifdef T_ERROR_ACK
+ case T_ERROR_ACK: /* error ack */
+ GET (T_ERROR_ACK, error_ack);
+ COMMA ();
+ tprintf ("ERROR=");
+ printxval (transport_user_options,
+ m.error_ack.ERROR_prim, "TI_???");
+ tprintf (", TLI=");
+ printxval (tli_errors, m.error_ack.TLI_error, "T???");
+ tprintf ("UNIX=%s", strerror (m.error_ack.UNIX_error));
+ break;
+#endif
+#ifdef T_OK_ACK
+ case T_OK_ACK: /* ok ack */
+ GET (T_OK_ACK, ok_ack);
+ COMMA ();
+ tprintf ("CORRECT=");
+ printxval (transport_user_options,
+ m.ok_ack.CORRECT_prim, "TI_???");
+ break;
+#endif
+#ifdef T_UNITDATA_IND
+ case T_UNITDATA_IND: /* unitdata ind */
+ GET (T_UNITDATA_IND, unitdata_ind);
+ ADDR (unitdata_ind, SRC);
+ ADDR (unitdata_ind, OPT);
+ break;
+#endif
+#ifdef T_UDERROR_IND
+ case T_UDERROR_IND: /* unitdata error ind */
+ GET (T_UDERROR_IND, uderror_ind);
+ ADDR (uderror_ind, DEST);
+ ADDR (uderror_ind, OPT);
+ tprintf (", ERROR=%ld", m.uderror_ind.ERROR_type);
+ break;
+#endif
+#ifdef T_OPTMGMT_ACK
+ case T_OPTMGMT_ACK: /* manage opt ack */
+ GET (T_OPTMGMT_ACK, optmgmt_ack);
+ COMMA ();
+ tprintf ("MGMT=");
+ printflags (transport_user_flags, m.optmgmt_ack.MGMT_flags,
+ "T_???");
+ STRUCT (optmgmt_ack, OPT, print_optmgmt);
+ break;
+#endif
+#ifdef T_ORDREL_IND
+ case T_ORDREL_IND: /* orderly rel ind */
+ GET (T_ORDREL_IND, ordrel_ind);
+ break;
+#endif
+#ifdef T_ADDR_REQ
+ case T_ADDR_REQ: /* address req */
+ GET (T_ADDR_REQ, addr_req);
+ break;
+#endif
+#ifdef T_ADDR_ACK
+ case T_ADDR_ACK: /* address response */
+ GET (T_ADDR_ACK, addr_ack);
+ ADDR (addr_ack, LOCADDR);
+ ADDR (addr_ack, REMADDR);
+ break;
+#endif
+ default:
+ dump:
+ c = -1;
+ printstr(tcp, addr, len);
+ break;
+ }
+
+ if (c >= 0) tprintf ("}");
+
+#undef ADDR
+#undef COMMA
+#undef STRUCT
+
+ return 0;
+}
+
+
+#endif /* TI_BIND */
+
+
+static int
+internal_stream_ioctl(tcp, arg)
+struct tcb *tcp;
+int arg;
+{
+ struct strioctl si;
+ struct ioctlent *iop;
+ int in_and_out;
+ int timod = 0;
+#ifdef SI_GETUDATA
+ struct si_udata udata;
+#endif /* SI_GETUDATA */
+
+ if (!arg)
+ return 0;
+ if (umove(tcp, arg, &si) < 0) {
+ if (entering(tcp))
+ tprintf(", {...}");
+ return 1;
+ }
+ if (entering(tcp)) {
+ iop = ioctl_lookup(si.ic_cmd);
+ if (iop) {
+ tprintf(", {ic_cmd=%s", iop->symbol);
+ while ((iop = ioctl_next_match(iop)))
+ tprintf(" or %s", iop->symbol);
+ } else
+ tprintf(", {ic_cmd=%#x", si.ic_cmd);
+ if (si.ic_timout == INFTIM)
+ tprintf(", ic_timout=INFTIM, ");
+ else
+ tprintf(" ic_timout=%d, ", si.ic_timout);
+ }
+ in_and_out = 1;
+ switch (si.ic_cmd) {
+#ifdef SI_GETUDATA
+ case SI_GETUDATA:
+ in_and_out = 0;
+ break;
+#endif /* SI_GETUDATA */
+ }
+ if (in_and_out) {
+ if (entering(tcp))
+ tprintf("/* in */ ");
+ else
+ tprintf(", /* out */ ");
+ }
+ if (in_and_out || entering(tcp))
+ tprintf("ic_len=%d, ic_dp=", si.ic_len);
+ switch (si.ic_cmd) {
+#ifdef TI_BIND
+ case TI_BIND:
+ /* in T_BIND_REQ, out T_BIND_ACK */
+ ++timod;
+ if (entering(tcp)) {
+ print_transport_message (tcp,
+ T_BIND_REQ,
+ si.ic_dp, si.ic_len);
+ }
+ else {
+ print_transport_message (tcp,
+ T_BIND_ACK,
+ si.ic_dp, si.ic_len);
+ }
+ break;
+#endif /* TI_BIND */
+#ifdef TI_UNBIND
+ case TI_UNBIND:
+ /* in T_UNBIND_REQ, out T_OK_ACK */
+ ++timod;
+ if (entering(tcp)) {
+ print_transport_message (tcp,
+ T_UNBIND_REQ,
+ si.ic_dp, si.ic_len);
+ }
+ else {
+ print_transport_message (tcp,
+ T_OK_ACK,
+ si.ic_dp, si.ic_len);
+ }
+ break;
+#endif /* TI_UNBIND */
+#ifdef TI_GETINFO
+ case TI_GETINFO:
+ /* in T_INFO_REQ, out T_INFO_ACK */
+ ++timod;
+ if (entering(tcp)) {
+ print_transport_message (tcp,
+ T_INFO_REQ,
+ si.ic_dp, si.ic_len);
+ }
+ else {
+ print_transport_message (tcp,
+ T_INFO_ACK,
+ si.ic_dp, si.ic_len);
+ }
+ break;
+#endif /* TI_GETINFO */
+#ifdef TI_OPTMGMT
+ case TI_OPTMGMT:
+ /* in T_OPTMGMT_REQ, out T_OPTMGMT_ACK */
+ ++timod;
+ if (entering(tcp)) {
+ print_transport_message (tcp,
+ T_OPTMGMT_REQ,
+ si.ic_dp, si.ic_len);
+ }
+ else {
+ print_transport_message (tcp,
+ T_OPTMGMT_ACK,
+ si.ic_dp, si.ic_len);
+ }
+ break;
+#endif /* TI_OPTMGMT */
+#ifdef SI_GETUDATA
+ case SI_GETUDATA:
+ if (entering(tcp))
+ break;
+#if 0
+ tprintf("struct si_udata ");
+#endif
+ if (umove(tcp, (int) si.ic_dp, &udata) < 0)
+ tprintf("{...}");
+ else {
+ tprintf("{tidusize=%d, addrsize=%d, ",
+ udata.tidusize, udata.addrsize);
+ tprintf("optsize=%d, etsdusize=%d, ",
+ udata.optsize, udata.etsdusize);
+ tprintf("servtype=%d, so_state=%d, ",
+ udata.servtype, udata.so_state);
+ tprintf("so_options=%d", udata.so_options);
+#if 0
+ tprintf(", tsdusize=%d", udata.tsdusize);
+#endif
+ tprintf("}");
+ }
+ break;
+#endif /* SI_GETUDATA */
+ default:
+ printstr(tcp, (long) si.ic_dp, si.ic_len);
+ break;
+ }
+ if (exiting(tcp)) {
+ tprintf("}");
+ if (timod && tcp->u_rval) {
+ tcp->auxstr = xlookup (tli_errors, tcp->u_rval);
+ return RVAL_STR + 1;
+ }
+ }
+
+ return 1;
+}
+
+int
+stream_ioctl(tcp, code, arg)
+struct tcb *tcp;
+int code, arg;
+{
+#ifdef I_LIST
+ int i;
+#endif
+ int val;
+#ifdef I_FLUSHBAND
+ struct bandinfo bi;
+#endif
+ struct strpeek sp;
+ struct strfdinsert sfi;
+ struct strrecvfd srf;
+#ifdef I_LIST
+ struct str_list sl;
+#endif
+
+ /* I_STR is a special case because the data is read & written. */
+ if (code == I_STR)
+ return internal_stream_ioctl(tcp, arg);
+ if (entering(tcp))
+ return 0;
+
+ switch (code) {
+ case I_PUSH:
+ case I_LOOK:
+ case I_FIND:
+ /* arg is a string */
+ tprintf(", ");
+ printpath(tcp, arg);
+ return 1;
+ case I_POP:
+ /* doesn't take an argument */
+ return 1;
+ case I_FLUSH:
+ /* argument is an option */
+ tprintf(", ");
+ printxval(stream_flush_options, arg, "FLUSH???");
+ return 1;
+#ifdef I_FLUSHBAND
+ case I_FLUSHBAND:
+ /* argument is a pointer to a bandinfo struct */
+ if (umove(tcp, arg, &bi) < 0)
+ tprintf(", {...}");
+ else {
+ tprintf(", {bi_pri=%d, bi_flag=", bi.bi_pri);
+ printflags(stream_flush_options, bi.bi_flag, "FLUSH???");
+ tprintf("}");
+ }
+ return 1;
+#endif /* I_FLUSHBAND */
+ case I_SETSIG:
+ /* argument is a set of flags */
+ tprintf(", ");
+ printflags(stream_setsig_flags, arg, "S_???");
+ return 1;
+ case I_GETSIG:
+ /* argument is a pointer to a set of flags */
+ if (syserror(tcp))
+ return 0;
+ tprintf(", [");
+ if (umove(tcp, arg, &val) < 0)
+ tprintf("?");
+ else
+ printflags(stream_setsig_flags, val, "S_???");
+ tprintf("]");
+ return 1;
+ case I_PEEK:
+ /* argument is a pointer to a strpeek structure */
+ if (syserror(tcp) || !arg)
+ return 0;
+ if (umove(tcp, arg, &sp) < 0) {
+ tprintf(", {...}");
+ return 1;
+ }
+ tprintf(", {ctlbuf=");
+ printstrbuf(tcp, &sp.ctlbuf, 1);
+ tprintf(", databuf=");
+ printstrbuf(tcp, &sp.databuf, 1);
+ tprintf(", flags=");
+ printflags(msgflags, sp.flags, "RS_???");
+ tprintf("}");
+ return 1;
+ case I_SRDOPT:
+ /* argument is an option with flags */
+ tprintf(", ");
+ printxval(stream_read_options, arg & RMODEMASK, "R???");
+ addflags(stream_read_flags, arg & ~RMODEMASK);
+ return 1;
+ case I_GRDOPT:
+ /* argument is an pointer to an option with flags */
+ if (syserror(tcp))
+ return 0;
+ tprintf(", [");
+ if (umove(tcp, arg, &val) < 0)
+ tprintf("?");
+ else {
+ printxval(stream_read_options,
+ arg & RMODEMASK, "R???");
+ addflags(stream_read_flags, arg & ~RMODEMASK);
+ }
+ tprintf("]");
+ return 1;
+ case I_NREAD:
+#ifdef I_GETBAND
+ case I_GETBAND:
+#endif
+#ifdef I_SETCLTIME
+ case I_SETCLTIME:
+#endif
+#ifdef I_GETCLTIME
+ case I_GETCLTIME:
+#endif
+ /* argument is a pointer to a decimal integer */
+ if (syserror(tcp))
+ return 0;
+ tprintf(", ");
+ printnum(tcp, arg, "%d");
+ return 1;
+ case I_FDINSERT:
+ /* argument is a pointer to a strfdinsert structure */
+ if (syserror(tcp) || !arg)
+ return 0;
+ if (umove(tcp, arg, &sfi) < 0) {
+ tprintf(", {...}");
+ return 1;
+ }
+ tprintf(", {ctlbuf=");
+ printstrbuf(tcp, &sfi.ctlbuf, 1);
+ tprintf(", databuf=");
+ printstrbuf(tcp, &sfi.databuf, 1);
+ tprintf(", flags=");
+ printflags(msgflags, sfi.flags, "RS_???");
+ tprintf(", filedes=%d, offset=%d}", sfi.fildes, sfi.offset);
+ return 1;
+#ifdef I_SWROPT
+ case I_SWROPT:
+ /* argument is a set of flags */
+ tprintf(", ");
+ printflags(stream_write_flags, arg, "SND???");
+ return 1;
+#endif /* I_SWROPT */
+#ifdef I_GWROPT
+ case I_GWROPT:
+ /* argument is an pointer to an option with flags */
+ if (syserror(tcp))
+ return 0;
+ tprintf(", [");
+ if (umove(tcp, arg, &val) < 0)
+ tprintf("?");
+ else
+ printflags(stream_write_flags, arg, "SND???");
+ tprintf("]");
+ return 1;
+#endif /* I_GWROPT */
+ case I_SENDFD:
+#ifdef I_CKBAND
+ case I_CKBAND:
+#endif
+#ifdef I_CANPUT
+ case I_CANPUT:
+#endif
+ case I_LINK:
+ case I_UNLINK:
+ case I_PLINK:
+ case I_PUNLINK:
+ /* argument is a decimal integer */
+ tprintf(", %d", arg);
+ return 1;
+ case I_RECVFD:
+ /* argument is a pointer to a strrecvfd structure */
+ if (syserror(tcp) || !arg)
+ return 0;
+ if (umove(tcp, arg, &srf) < 0) {
+ tprintf(", {...}");
+ return 1;
+ }
+ tprintf(", {fd=%d, uid=%lu, gid=%lu}", srf.fd,
+ (unsigned long) srf.uid, (unsigned long) srf.gid);
+ return 1;
+#ifdef I_LIST
+ case I_LIST:
+ if (syserror(tcp))
+ return 0;
+ if (arg == 0) {
+ tprintf(", NULL");
+ return 1;
+ }
+ if (umove(tcp, arg, &sl) < 0) {
+ tprintf(", {...}");
+ return 1;
+ }
+ tprintf(", {sl_nmods=%d, sl_modlist=[", sl.sl_nmods);
+ for (i = 0; i < tcp->u_rval; i++) {
+ if (i)
+ tprintf(", ");
+ printpath(tcp, (int) sl.sl_modlist[i].l_name);
+ }
+ tprintf("]}");
+ return 1;
+#endif /* I_LIST */
+#ifdef I_ATMARK
+ case I_ATMARK:
+ tprintf(", ");
+ printxval(stream_atmark_options, arg, "???MARK");
+ return 1;
+#endif /* I_ATMARK */
+ default:
+ return 0;
+ }
+}
+
+#endif /* !LINUX && !FREEBSD */
+
+#endif /* HAVE_SYS_STREAM_H || LINUX || FREEBSD */
diff --git a/syscall-android.h b/syscall-android.h
new file mode 100644
index 0000000..3964b14
--- /dev/null
+++ b/syscall-android.h
@@ -0,0 +1,293 @@
+/* Generated at libc build time from kernel syscall list. */
+
+#ifndef _SYSCALL_H
+//# error "Never use <bits/syscall.h> directly; include <sys/syscall.h> instead."
+#endif
+
+#define SYS__llseek __NR__llseek
+#define SYS__newselect __NR__newselect
+#define SYS__sysctl __NR__sysctl
+#define SYS_access __NR_access
+#define SYS_acct __NR_acct
+#define SYS_add_key __NR_add_key
+#define SYS_adjtimex __NR_adjtimex
+#define SYS_afs_syscall __NR_afs_syscall
+#define SYS_alarm __NR_alarm
+#define SYS_bdflush __NR_bdflush
+#define SYS_break __NR_break
+#define SYS_brk __NR_brk
+#define SYS_capget __NR_capget
+#define SYS_capset __NR_capset
+#define SYS_chdir __NR_chdir
+#define SYS_chmod __NR_chmod
+#define SYS_chown __NR_chown
+#define SYS_chown32 __NR_chown32
+#define SYS_chroot __NR_chroot
+#define SYS_clock_getres __NR_clock_getres
+#define SYS_clock_gettime __NR_clock_gettime
+#define SYS_clock_nanosleep __NR_clock_nanosleep
+#define SYS_clock_settime __NR_clock_settime
+#define SYS_clone __NR_clone
+#define SYS_close __NR_close
+#define SYS_creat __NR_creat
+#define SYS_create_module __NR_create_module
+#define SYS_delete_module __NR_delete_module
+#define SYS_dup __NR_dup
+#define SYS_dup2 __NR_dup2
+#define SYS_epoll_create __NR_epoll_create
+#define SYS_epoll_ctl __NR_epoll_ctl
+#define SYS_epoll_wait __NR_epoll_wait
+#define SYS_execve __NR_execve
+#define SYS_exit __NR_exit
+#define SYS_exit_group __NR_exit_group
+#define SYS_fadvise64 __NR_fadvise64
+#define SYS_fadvise64_64 __NR_fadvise64_64
+#define SYS_fchdir __NR_fchdir
+#define SYS_fchmod __NR_fchmod
+#define SYS_fchown __NR_fchown
+#define SYS_fchown32 __NR_fchown32
+#define SYS_fcntl __NR_fcntl
+#define SYS_fcntl64 __NR_fcntl64
+#define SYS_fdatasync __NR_fdatasync
+#define SYS_fgetxattr __NR_fgetxattr
+#define SYS_flistxattr __NR_flistxattr
+#define SYS_flock __NR_flock
+#define SYS_fork __NR_fork
+#define SYS_fremovexattr __NR_fremovexattr
+#define SYS_fsetxattr __NR_fsetxattr
+#define SYS_fstat __NR_fstat
+#define SYS_fstat64 __NR_fstat64
+#define SYS_fstatfs __NR_fstatfs
+#define SYS_fstatfs64 __NR_fstatfs64
+#define SYS_fsync __NR_fsync
+#define SYS_ftime __NR_ftime
+#define SYS_ftruncate __NR_ftruncate
+#define SYS_ftruncate64 __NR_ftruncate64
+#define SYS_futex __NR_futex
+#define SYS_get_kernel_syms __NR_get_kernel_syms
+#define SYS_get_mempolicy __NR_get_mempolicy
+#define SYS_get_thread_area __NR_get_thread_area
+#define SYS_getcwd __NR_getcwd
+#define SYS_getdents __NR_getdents
+#define SYS_getdents64 __NR_getdents64
+#define SYS_getegid __NR_getegid
+#define SYS_getegid32 __NR_getegid32
+#define SYS_geteuid __NR_geteuid
+#define SYS_geteuid32 __NR_geteuid32
+#define SYS_getgid __NR_getgid
+#define SYS_getgid32 __NR_getgid32
+#define SYS_getgroups __NR_getgroups
+#define SYS_getgroups32 __NR_getgroups32
+#define SYS_getitimer __NR_getitimer
+#define SYS_getpgid __NR_getpgid
+#define SYS_getpgrp __NR_getpgrp
+#define SYS_getpid __NR_getpid
+//#define SYS_getpmsg __NR_getpmsg
+#define SYS_getppid __NR_getppid
+#define SYS_getpriority __NR_getpriority
+#define SYS_getresgid __NR_getresgid
+#define SYS_getresgid32 __NR_getresgid32
+#define SYS_getresuid __NR_getresuid
+#define SYS_getresuid32 __NR_getresuid32
+#define SYS_getrlimit __NR_getrlimit
+#define SYS_getrusage __NR_getrusage
+#define SYS_getsid __NR_getsid
+#define SYS_gettid __NR_gettid
+#define SYS_gettimeofday __NR_gettimeofday
+#define SYS_getuid __NR_getuid
+#define SYS_getuid32 __NR_getuid32
+#define SYS_getxattr __NR_getxattr
+#define SYS_gtty __NR_gtty
+#define SYS_idle __NR_idle
+#define SYS_init_module __NR_init_module
+#define SYS_io_cancel __NR_io_cancel
+#define SYS_io_destroy __NR_io_destroy
+#define SYS_io_getevents __NR_io_getevents
+#define SYS_io_setup __NR_io_setup
+#define SYS_io_submit __NR_io_submit
+#define SYS_ioctl __NR_ioctl
+#define SYS_ioperm __NR_ioperm
+#define SYS_iopl __NR_iopl
+#define SYS_ipc __NR_ipc
+#define SYS_keyctl __NR_keyctl
+#define SYS_kill __NR_kill
+#define SYS_lchown __NR_lchown
+#define SYS_lchown32 __NR_lchown32
+#define SYS_lgetxattr __NR_lgetxattr
+#define SYS_link __NR_link
+#define SYS_listxattr __NR_listxattr
+#define SYS_llistxattr __NR_llistxattr
+#define SYS_lock __NR_lock
+#define SYS_lookup_dcookie __NR_lookup_dcookie
+#define SYS_lremovexattr __NR_lremovexattr
+#define SYS_lseek __NR_lseek
+#define SYS_lsetxattr __NR_lsetxattr
+#define SYS_lstat __NR_lstat
+#define SYS_lstat64 __NR_lstat64
+#define SYS_madvise __NR_madvise
+#define SYS_madvise1 __NR_madvise1
+#define SYS_mbind __NR_mbind
+#define SYS_mincore __NR_mincore
+#define SYS_mkdir __NR_mkdir
+#define SYS_mknod __NR_mknod
+#define SYS_mlock __NR_mlock
+#define SYS_mlockall __NR_mlockall
+#define SYS_mmap __NR_mmap
+#define SYS_mmap2 __NR_mmap2
+#define SYS_modify_ldt __NR_modify_ldt
+#define SYS_mount __NR_mount
+#define SYS_mprotect __NR_mprotect
+#define SYS_mpx __NR_mpx
+#define SYS_mq_getsetattr __NR_mq_getsetattr
+#define SYS_mq_notify __NR_mq_notify
+#define SYS_mq_open __NR_mq_open
+#define SYS_mq_timedreceive __NR_mq_timedreceive
+#define SYS_mq_timedsend __NR_mq_timedsend
+#define SYS_mq_unlink __NR_mq_unlink
+#define SYS_mremap __NR_mremap
+#define SYS_msync __NR_msync
+#define SYS_munlock __NR_munlock
+#define SYS_munlockall __NR_munlockall
+#define SYS_munmap __NR_munmap
+#define SYS_nanosleep __NR_nanosleep
+#define SYS_nfsservctl __NR_nfsservctl
+#define SYS_nice __NR_nice
+#define SYS_oldfstat __NR_oldfstat
+#define SYS_oldlstat __NR_oldlstat
+#define SYS_oldolduname __NR_oldolduname
+#define SYS_oldstat __NR_oldstat
+#define SYS_olduname __NR_olduname
+#define SYS_open __NR_open
+#define SYS_pause __NR_pause
+#define SYS_personality __NR_personality
+#define SYS_pipe __NR_pipe
+#define SYS_pivot_root __NR_pivot_root
+#define SYS_poll __NR_poll
+#define SYS_prctl __NR_prctl
+#define SYS_pread64 __NR_pread64
+#define SYS_prof __NR_prof
+#define SYS_profil __NR_profil
+#define SYS_ptrace __NR_ptrace
+//#define SYS_putpmsg __NR_putpmsg
+#define SYS_pwrite64 __NR_pwrite64
+#define SYS_query_module __NR_query_module
+#define SYS_quotactl __NR_quotactl
+#define SYS_read __NR_read
+#define SYS_readahead __NR_readahead
+#define SYS_readdir __NR_readdir
+#define SYS_readlink __NR_readlink
+#define SYS_readv __NR_readv
+#define SYS_reboot __NR_reboot
+#define SYS_remap_file_pages __NR_remap_file_pages
+#define SYS_removexattr __NR_removexattr
+#define SYS_rename __NR_rename
+#define SYS_request_key __NR_request_key
+#define SYS_restart_syscall __NR_restart_syscall
+#define SYS_rmdir __NR_rmdir
+#define SYS_rt_sigaction __NR_rt_sigaction
+#define SYS_rt_sigpending __NR_rt_sigpending
+#define SYS_rt_sigprocmask __NR_rt_sigprocmask
+#define SYS_rt_sigqueueinfo __NR_rt_sigqueueinfo
+#define SYS_rt_sigreturn __NR_rt_sigreturn
+#define SYS_rt_sigsuspend __NR_rt_sigsuspend
+#define SYS_rt_sigtimedwait __NR_rt_sigtimedwait
+#define SYS_sched_get_priority_max __NR_sched_get_priority_max
+#define SYS_sched_get_priority_min __NR_sched_get_priority_min
+#define SYS_sched_getaffinity __NR_sched_getaffinity
+#define SYS_sched_getparam __NR_sched_getparam
+#define SYS_sched_getscheduler __NR_sched_getscheduler
+#define SYS_sched_rr_get_interval __NR_sched_rr_get_interval
+#define SYS_sched_setaffinity __NR_sched_setaffinity
+#define SYS_sched_setparam __NR_sched_setparam
+#define SYS_sched_setscheduler __NR_sched_setscheduler
+#define SYS_sched_yield __NR_sched_yield
+#define SYS_select __NR_select
+#define SYS_sendfile __NR_sendfile
+#define SYS_sendfile64 __NR_sendfile64
+#define SYS_set_mempolicy __NR_set_mempolicy
+#define SYS_set_thread_area __NR_set_thread_area
+#define SYS_set_tid_address __NR_set_tid_address
+#define SYS_setdomainname __NR_setdomainname
+#define SYS_setfsgid __NR_setfsgid
+#define SYS_setfsgid32 __NR_setfsgid32
+#define SYS_setfsuid __NR_setfsuid
+#define SYS_setfsuid32 __NR_setfsuid32
+#define SYS_setgid __NR_setgid
+#define SYS_setgid32 __NR_setgid32
+#define SYS_setgroups __NR_setgroups
+#define SYS_setgroups32 __NR_setgroups32
+#define SYS_sethostname __NR_sethostname
+#define SYS_setitimer __NR_setitimer
+#define SYS_setpgid __NR_setpgid
+#define SYS_setpriority __NR_setpriority
+#define SYS_setregid __NR_setregid
+#define SYS_setregid32 __NR_setregid32
+#define SYS_setresgid __NR_setresgid
+#define SYS_setresgid32 __NR_setresgid32
+#define SYS_setresuid __NR_setresuid
+#define SYS_setresuid32 __NR_setresuid32
+#define SYS_setreuid __NR_setreuid
+#define SYS_setreuid32 __NR_setreuid32
+#define SYS_setrlimit __NR_setrlimit
+#define SYS_setsid __NR_setsid
+#define SYS_settimeofday __NR_settimeofday
+#define SYS_setuid __NR_setuid
+#define SYS_setuid32 __NR_setuid32
+#define SYS_setxattr __NR_setxattr
+#define SYS_sgetmask __NR_sgetmask
+#define SYS_sigaction __NR_sigaction
+#define SYS_sigaltstack __NR_sigaltstack
+#define SYS_signal __NR_signal
+#define SYS_sigpending __NR_sigpending
+#define SYS_sigprocmask __NR_sigprocmask
+#define SYS_sigreturn __NR_sigreturn
+#define SYS_sigsuspend __NR_sigsuspend
+#define SYS_socketcall __NR_socketcall
+#define SYS_ssetmask __NR_ssetmask
+#define SYS_stat __NR_stat
+#define SYS_stat64 __NR_stat64
+#define SYS_statfs __NR_statfs
+#define SYS_statfs64 __NR_statfs64
+#define SYS_stime __NR_stime
+#define SYS_stty __NR_stty
+#define SYS_swapoff __NR_swapoff
+#define SYS_swapon __NR_swapon
+#define SYS_symlink __NR_symlink
+#define SYS_sync __NR_sync
+#define SYS_sys_kexec_load __NR_sys_kexec_load
+#define SYS_sysfs __NR_sysfs
+#define SYS_sysinfo __NR_sysinfo
+#define SYS_syslog __NR_syslog
+#define SYS_tgkill __NR_tgkill
+#define SYS_time __NR_time
+#define SYS_timer_create __NR_timer_create
+#define SYS_timer_delete __NR_timer_delete
+#define SYS_timer_getoverrun __NR_timer_getoverrun
+#define SYS_timer_gettime __NR_timer_gettime
+#define SYS_timer_settime __NR_timer_settime
+#define SYS_times __NR_times
+#define SYS_tkill __NR_tkill
+#define SYS_truncate __NR_truncate
+#define SYS_truncate64 __NR_truncate64
+#define SYS_ugetrlimit __NR_ugetrlimit
+#define SYS_ulimit __NR_ulimit
+#define SYS_umask __NR_umask
+#define SYS_umount __NR_umount
+#define SYS_umount2 __NR_umount2
+#define SYS_uname __NR_uname
+#define SYS_unlink __NR_unlink
+#define SYS_uselib __NR_uselib
+#define SYS_ustat __NR_ustat
+#define SYS_utime __NR_utime
+#define SYS_utimes __NR_utimes
+#define SYS_vfork __NR_vfork
+#define SYS_vhangup __NR_vhangup
+#define SYS_vm86 __NR_vm86
+#define SYS_vm86old __NR_vm86old
+#define SYS_vserver __NR_vserver
+#define SYS_wait4 __NR_wait4
+#define SYS_waitid __NR_waitid
+//ANDROID
+//#define SYS_waitpid __NR_waitpid
+#define SYS_write __NR_write
+#define SYS_writev __NR_writev
diff --git a/syscall.c b/syscall.c
new file mode 100644
index 0000000..0958e1b
--- /dev/null
+++ b/syscall.c
@@ -0,0 +1,2737 @@
+/*
+ * Copyright (c) 1991, 1992 Paul Kranenburg <pk@cs.few.eur.nl>
+ * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
+ * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
+ * Copyright (c) 1996-1999 Wichert Akkerman <wichert@cistron.nl>
+ * Copyright (c) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ * Linux for s390 port by D.J. Barrow
+ * <barrow_dj@mail.yahoo.com,djbarrow@de.ibm.com>
+ * 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.
+ *
+ * $Id: syscall.c,v 1.79 2005/06/08 20:45:28 roland Exp $
+ */
+
+#include "defs.h"
+
+#include <signal.h>
+#include <time.h>
+#include <errno.h>
+#ifndef HAVE_ANDROID_OS
+#include <sys/user.h>
+#endif
+#include <sys/syscall.h>
+#include <sys/param.h>
+
+#if HAVE_ASM_REG_H
+#if defined (SPARC) || defined (SPARC64)
+# define fpq kernel_fpq
+# define fq kernel_fq
+# define fpu kernel_fpu
+#endif
+#include <asm/reg.h>
+#if defined (SPARC) || defined (SPARC64)
+# undef fpq
+# undef fq
+# undef fpu
+#endif
+#endif
+
+#ifdef HAVE_SYS_REG_H
+#include <sys/reg.h>
+#ifndef PTRACE_PEEKUSR
+# define PTRACE_PEEKUSR PTRACE_PEEKUSER
+#endif
+#elif defined(HAVE_LINUX_PTRACE_H)
+#undef PTRACE_SYSCALL
+# ifdef HAVE_STRUCT_IA64_FPREG
+# define ia64_fpreg XXX_ia64_fpreg
+# endif
+# ifdef HAVE_STRUCT_PT_ALL_USER_REGS
+# define pt_all_user_regs XXX_pt_all_user_regs
+# endif
+#include <linux/ptrace.h>
+# undef ia64_fpreg
+# undef pt_all_user_regs
+#endif
+
+#if defined (LINUX) && defined (SPARC64)
+# define r_pc r_tpc
+# undef PTRACE_GETREGS
+# define PTRACE_GETREGS PTRACE_GETREGS64
+# undef PTRACE_SETREGS
+# define PTRACE_SETREGS PTRACE_SETREGS64
+#endif /* LINUX && SPARC64 */
+
+#if defined(LINUX) && defined(IA64)
+# include <asm/ptrace_offsets.h>
+# include <asm/rse.h>
+#endif
+
+#define NR_SYSCALL_BASE 0
+#ifdef LINUX
+#ifndef ERESTARTSYS
+#define ERESTARTSYS 512
+#endif
+#ifndef ERESTARTNOINTR
+#define ERESTARTNOINTR 513
+#endif
+#ifndef ERESTARTNOHAND
+#define ERESTARTNOHAND 514 /* restart if no handler.. */
+#endif
+#ifndef ENOIOCTLCMD
+#define ENOIOCTLCMD 515 /* No ioctl command */
+#endif
+#ifndef ERESTART_RESTARTBLOCK
+#define ERESTART_RESTARTBLOCK 516 /* restart by calling sys_restart_syscall */
+#endif
+#ifndef NSIG
+#define NSIG 32
+#endif
+#ifdef ARM
+#undef NSIG
+#define NSIG 32
+#undef NR_SYSCALL_BASE
+#define NR_SYSCALL_BASE __NR_SYSCALL_BASE
+#endif
+#endif /* LINUX */
+
+#include "syscall-android.h"
+#include "syscall.h"
+
+/* Define these shorthand notations to simplify the syscallent files. */
+#define TF TRACE_FILE
+#define TI TRACE_IPC
+#define TN TRACE_NETWORK
+#define TP TRACE_PROCESS
+#define TS TRACE_SIGNAL
+
+static const struct sysent sysent0[] = {
+#include "syscallent.h"
+};
+static const int nsyscalls0 = sizeof sysent0 / sizeof sysent0[0];
+
+#if SUPPORTED_PERSONALITIES >= 2
+static const struct sysent sysent1[] = {
+#include "syscallent1.h"
+};
+static const int nsyscalls1 = sizeof sysent1 / sizeof sysent1[0];
+#endif /* SUPPORTED_PERSONALITIES >= 2 */
+
+#if SUPPORTED_PERSONALITIES >= 3
+static const struct sysent sysent2[] = {
+#include "syscallent2.h"
+};
+static const int nsyscalls2 = sizeof sysent2 / sizeof sysent2[0];
+#endif /* SUPPORTED_PERSONALITIES >= 3 */
+
+const struct sysent *sysent;
+int nsyscalls;
+
+/* Now undef them since short defines cause wicked namespace pollution. */
+#undef TF
+#undef TI
+#undef TN
+#undef TP
+#undef TS
+
+static const char *const errnoent0[] = {
+#include "errnoent.h"
+};
+static const int nerrnos0 = sizeof errnoent0 / sizeof errnoent0[0];
+
+#if SUPPORTED_PERSONALITIES >= 2
+static const char *const errnoent1[] = {
+#include "errnoent1.h"
+};
+static const int nerrnos1 = sizeof errnoent1 / sizeof errnoent1[0];
+#endif /* SUPPORTED_PERSONALITIES >= 2 */
+
+#if SUPPORTED_PERSONALITIES >= 3
+static const char *const errnoent2[] = {
+#include "errnoent2.h"
+};
+static const int nerrnos2 = sizeof errnoent2 / sizeof errnoent2[0];
+#endif /* SUPPORTED_PERSONALITIES >= 3 */
+
+const char *const *errnoent;
+int nerrnos;
+
+int current_personality;
+
+int
+set_personality(personality)
+int personality;
+{
+ switch (personality) {
+ case 0:
+ errnoent = errnoent0;
+ nerrnos = nerrnos0;
+ sysent = sysent0;
+ nsyscalls = nsyscalls0;
+ ioctlent = ioctlent0;
+ nioctlents = nioctlents0;
+ signalent = signalent0;
+ nsignals = nsignals0;
+ break;
+
+#if SUPPORTED_PERSONALITIES >= 2
+ case 1:
+ errnoent = errnoent1;
+ nerrnos = nerrnos1;
+ sysent = sysent1;
+ nsyscalls = nsyscalls1;
+ ioctlent = ioctlent1;
+ nioctlents = nioctlents1;
+ signalent = signalent1;
+ nsignals = nsignals1;
+ break;
+#endif /* SUPPORTED_PERSONALITIES >= 2 */
+
+#if SUPPORTED_PERSONALITIES >= 3
+ case 2:
+ errnoent = errnoent2;
+ nerrnos = nerrnos2;
+ sysent = sysent2;
+ nsyscalls = nsyscalls2;
+ ioctlent = ioctlent2;
+ nioctlents = nioctlents2;
+ signalent = signalent2;
+ nsignals = nsignals2;
+ break;
+#endif /* SUPPORTED_PERSONALITIES >= 3 */
+
+ default:
+ return -1;
+ }
+
+ current_personality = personality;
+ return 0;
+}
+
+int qual_flags[MAX_QUALS];
+
+
+struct call_counts {
+ struct timeval time;
+ int calls, errors;
+};
+
+static struct call_counts *counts;
+
+static struct timeval shortest = { 1000000, 0 };
+
+static int qual_syscall(), qual_signal(), qual_fault(), qual_desc();
+
+static const struct qual_options {
+ int bitflag;
+ char *option_name;
+ int (*qualify)();
+ char *argument_name;
+} qual_options[] = {
+ { QUAL_TRACE, "trace", qual_syscall, "system call" },
+ { QUAL_TRACE, "t", qual_syscall, "system call" },
+ { QUAL_ABBREV, "abbrev", qual_syscall, "system call" },
+ { QUAL_ABBREV, "a", qual_syscall, "system call" },
+ { QUAL_VERBOSE, "verbose", qual_syscall, "system call" },
+ { QUAL_VERBOSE, "v", qual_syscall, "system call" },
+ { QUAL_RAW, "raw", qual_syscall, "system call" },
+ { QUAL_RAW, "x", qual_syscall, "system call" },
+ { 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" },
+ { QUAL_WRITE, "write", qual_desc, "descriptor" },
+ { QUAL_WRITE, "writes", qual_desc, "descriptor" },
+ { QUAL_WRITE, "w", qual_desc, "descriptor" },
+ { 0, NULL, NULL, NULL },
+};
+
+static void
+qualify_one(n, opt, not)
+ int n;
+ const struct qual_options *opt;
+ int not;
+{
+ if (not)
+ qual_flags[n] &= ~opt->bitflag;
+ else
+ qual_flags[n] |= opt->bitflag;
+}
+
+static int
+qual_syscall(s, opt, not)
+ char *s;
+ const struct qual_options *opt;
+ int not;
+{
+ int i;
+ int rc = -1;
+
+ for (i = 0; i < nsyscalls; i++) {
+ if (strcmp(s, sysent[i].sys_name) == 0) {
+ qualify_one(i, opt, not);
+ rc = 0;
+ }
+ }
+ return rc;
+}
+
+static int
+qual_signal(s, opt, not)
+ char *s;
+ const struct qual_options *opt;
+ int not;
+{
+ int i;
+ char buf[32];
+
+ if (s && *s && isdigit((unsigned char)*s)) {
+ int signo = atoi(s);
+ if (signo < 0 || signo >= MAX_QUALS)
+ return -1;
+ qualify_one(signo, opt, not);
+ return 0;
+ }
+ if (strlen(s) >= sizeof buf)
+ return -1;
+ strcpy(buf, s);
+ s = buf;
+ for (i = 0; s[i]; i++)
+ s[i] = toupper((unsigned char)(s[i]));
+ if (strncmp(s, "SIG", 3) == 0)
+ s += 3;
+ for (i = 0; i <= NSIG; i++)
+ if (strcmp(s, signame(i) + 3) == 0) {
+ qualify_one(i, opt, not);
+ return 0;
+ }
+ return -1;
+}
+
+static int
+qual_fault(s, opt, not)
+ char *s;
+ const struct qual_options *opt;
+ int not;
+{
+ return -1;
+}
+
+static int
+qual_desc(s, opt, not)
+ char *s;
+ const struct qual_options *opt;
+ int not;
+{
+ if (s && *s && isdigit((unsigned char)*s)) {
+ int desc = atoi(s);
+ if (desc < 0 || desc >= MAX_QUALS)
+ return -1;
+ qualify_one(desc, opt, not);
+ return 0;
+ }
+ return -1;
+}
+
+static int
+lookup_class(s)
+ char *s;
+{
+ if (strcmp(s, "file") == 0)
+ return TRACE_FILE;
+ if (strcmp(s, "ipc") == 0)
+ return TRACE_IPC;
+ if (strcmp(s, "network") == 0)
+ return TRACE_NETWORK;
+ if (strcmp(s, "process") == 0)
+ return TRACE_PROCESS;
+ if (strcmp(s, "signal") == 0)
+ return TRACE_SIGNAL;
+ return -1;
+}
+
+void
+qualify(s)
+char *s;
+{
+ const struct qual_options *opt;
+ int not;
+ char *p;
+ int i, n;
+
+ opt = &qual_options[0];
+ for (i = 0; (p = qual_options[i].option_name); i++) {
+ n = strlen(p);
+ if (strncmp(s, p, n) == 0 && s[n] == '=') {
+ opt = &qual_options[i];
+ s += n + 1;
+ break;
+ }
+ }
+ not = 0;
+ if (*s == '!') {
+ not = 1;
+ s++;
+ }
+ if (strcmp(s, "none") == 0) {
+ not = 1 - not;
+ s = "all";
+ }
+ if (strcmp(s, "all") == 0) {
+ for (i = 0; i < MAX_QUALS; i++) {
+ if (not)
+ qual_flags[i] &= ~opt->bitflag;
+ else
+ qual_flags[i] |= opt->bitflag;
+ }
+ return;
+ }
+ for (i = 0; i < MAX_QUALS; i++) {
+ if (not)
+ qual_flags[i] |= opt->bitflag;
+ else
+ qual_flags[i] &= ~opt->bitflag;
+ }
+ for (p = strtok(s, ","); p; p = strtok(NULL, ",")) {
+ if (opt->bitflag == QUAL_TRACE && (n = lookup_class(p)) > 0) {
+ for (i = 0; i < MAX_QUALS; i++) {
+ if (sysent[i].sys_flags & n) {
+ if (not)
+ qual_flags[i] &= ~opt->bitflag;
+ else
+ qual_flags[i] |= opt->bitflag;
+ }
+ }
+ continue;
+ }
+ if (opt->qualify(p, opt, not)) {
+ fprintf(stderr, "strace: invalid %s `%s'\n",
+ opt->argument_name, p);
+ exit(1);
+ }
+ }
+ return;
+}
+
+static void
+dumpio(tcp)
+struct tcb *tcp;
+{
+ if (syserror(tcp))
+ return;
+ if (tcp->u_arg[0] < 0 || tcp->u_arg[0] >= MAX_QUALS)
+ return;
+ switch (known_scno(tcp)) {
+ case SYS_read:
+#ifdef SYS_pread64
+ case SYS_pread64:
+#endif
+#if defined SYS_pread && SYS_pread64 != SYS_pread
+ case SYS_pread:
+#endif
+#ifdef SYS_recv
+ case SYS_recv:
+#elif defined SYS_sub_recv
+ case SYS_sub_recv:
+#endif
+#ifdef SYS_recvfrom
+ case SYS_recvfrom:
+#elif defined SYS_sub_recvfrom
+ case SYS_sub_recvfrom:
+#endif
+ if (qual_flags[tcp->u_arg[0]] & QUAL_READ)
+ dumpstr(tcp, tcp->u_arg[1], tcp->u_rval);
+ break;
+ case SYS_write:
+#ifdef SYS_pwrite64
+ case SYS_pwrite64:
+#endif
+#if defined SYS_pwrite && SYS_pwrite64 != SYS_pwrite
+ case SYS_pwrite:
+#endif
+#ifdef SYS_send
+ case SYS_send:
+#elif defined SYS_sub_send
+ case SYS_sub_send:
+#endif
+#ifdef SYS_sendto
+ case SYS_sendto:
+#elif defined SYS_sub_sendto
+ case SYS_sub_sendto:
+#endif
+ if (qual_flags[tcp->u_arg[0]] & QUAL_WRITE)
+ dumpstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
+ break;
+#ifdef SYS_readv
+ case SYS_readv:
+ if (qual_flags[tcp->u_arg[0]] & QUAL_READ)
+ dumpiov(tcp, tcp->u_arg[2], tcp->u_arg[1]);
+ break;
+#endif
+#ifdef SYS_writev
+ case SYS_writev:
+
+ if (qual_flags[tcp->u_arg[0]] & QUAL_WRITE)
+ dumpiov(tcp, tcp->u_arg[2], tcp->u_arg[1]);
+ break;
+#endif
+ }
+}
+
+#ifndef FREEBSD
+enum subcall_style { shift_style, deref_style, mask_style, door_style };
+#else /* FREEBSD */
+enum subcall_style { shift_style, deref_style, mask_style, door_style, table_style };
+
+struct subcall {
+ int call;
+ int nsubcalls;
+ int subcalls[5];
+};
+
+static const struct subcall subcalls_table[] = {
+ { SYS_shmsys, 5, { SYS_shmat, SYS_shmctl, SYS_shmdt, SYS_shmget, SYS_shmctl } },
+#ifdef SYS_semconfig
+ { SYS_semsys, 4, { SYS___semctl, SYS_semget, SYS_semop, SYS_semconfig } },
+#else
+ { SYS_semsys, 3, { SYS___semctl, SYS_semget, SYS_semop } },
+#endif
+ { SYS_msgsys, 4, { SYS_msgctl, SYS_msgget, SYS_msgsnd, SYS_msgrcv } },
+};
+#endif /* FREEBSD */
+
+#if !(defined(LINUX) && ( defined(ALPHA) || defined(MIPS) ))
+
+static const int socket_map [] = {
+ /* SYS_SOCKET */ 97,
+ /* SYS_BIND */ 104,
+ /* SYS_CONNECT */ 98,
+ /* SYS_LISTEN */ 106,
+ /* SYS_ACCEPT */ 99,
+ /* SYS_GETSOCKNAME */ 150,
+ /* SYS_GETPEERNAME */ 141,
+ /* SYS_SOCKETPAIR */ 135,
+ /* SYS_SEND */ 101,
+ /* SYS_RECV */ 102,
+ /* SYS_SENDTO */ 133,
+ /* SYS_RECVFROM */ 125,
+ /* SYS_SHUTDOWN */ 134,
+ /* SYS_SETSOCKOPT */ 105,
+ /* SYS_GETSOCKOPT */ 118,
+ /* SYS_SENDMSG */ 114,
+ /* SYS_RECVMSG */ 113
+};
+
+#if defined (SPARC) || defined (SPARC64)
+static void
+sparc_socket_decode (tcp)
+struct tcb *tcp;
+{
+ volatile long addr;
+ volatile int i, n;
+
+ if (tcp->u_arg [0] < 1 || tcp->u_arg [0] > sizeof(socket_map)/sizeof(int)+1){
+ return;
+ }
+ tcp->scno = socket_map [tcp->u_arg [0]-1];
+ n = tcp->u_nargs = sysent [tcp->scno].nargs;
+ addr = tcp->u_arg [1];
+ for (i = 0; i < n; i++){
+ int arg;
+ if (umoven (tcp, addr, sizeof (arg), (void *) &arg) < 0)
+ arg = 0;
+ tcp->u_arg [i] = arg;
+ addr += sizeof (arg);
+ }
+}
+#endif
+
+static void
+decode_subcall(tcp, subcall, nsubcalls, style)
+struct tcb *tcp;
+int subcall;
+int nsubcalls;
+enum subcall_style style;
+{
+ long addr, mask, arg;
+ int i;
+
+ switch (style) {
+ case shift_style:
+ if (tcp->u_arg[0] < 0 || tcp->u_arg[0] >= nsubcalls)
+ return;
+ tcp->scno = subcall + tcp->u_arg[0];
+ if (sysent[tcp->scno].nargs != -1)
+ tcp->u_nargs = sysent[tcp->scno].nargs;
+ else
+ tcp->u_nargs--;
+ for (i = 0; i < tcp->u_nargs; i++)
+ tcp->u_arg[i] = tcp->u_arg[i + 1];
+ break;
+ case deref_style:
+ if (tcp->u_arg[0] < 0 || tcp->u_arg[0] >= nsubcalls)
+ return;
+ tcp->scno = subcall + tcp->u_arg[0];
+ addr = tcp->u_arg[1];
+ for (i = 0; i < sysent[tcp->scno].nargs; i++) {
+ if (umove(tcp, addr, &arg) < 0)
+ arg = 0;
+ tcp->u_arg[i] = arg;
+ addr += sizeof(arg);
+ }
+ tcp->u_nargs = sysent[tcp->scno].nargs;
+ break;
+ case mask_style:
+ mask = (tcp->u_arg[0] >> 8) & 0xff;
+ for (i = 0; mask; i++)
+ mask >>= 1;
+ if (i >= nsubcalls)
+ return;
+ tcp->u_arg[0] &= 0xff;
+ tcp->scno = subcall + i;
+ if (sysent[tcp->scno].nargs != -1)
+ tcp->u_nargs = sysent[tcp->scno].nargs;
+ break;
+ case door_style:
+ /*
+ * Oh, yuck. The call code is the *sixth* argument.
+ * (don't you mean the *last* argument? - JH)
+ */
+ if (tcp->u_arg[5] < 0 || tcp->u_arg[5] >= nsubcalls)
+ return;
+ tcp->scno = subcall + tcp->u_arg[5];
+ if (sysent[tcp->scno].nargs != -1)
+ tcp->u_nargs = sysent[tcp->scno].nargs;
+ else
+ tcp->u_nargs--;
+ break;
+#ifdef FREEBSD
+ case table_style:
+ for (i = 0; i < sizeof(subcalls_table) / sizeof(struct subcall); i++)
+ if (subcalls_table[i].call == tcp->scno) break;
+ if (i < sizeof(subcalls_table) / sizeof(struct subcall) &&
+ tcp->u_arg[0] >= 0 && tcp->u_arg[0] < subcalls_table[i].nsubcalls) {
+ tcp->scno = subcalls_table[i].subcalls[tcp->u_arg[0]];
+ for (i = 0; i < tcp->u_nargs; i++)
+ tcp->u_arg[i] = tcp->u_arg[i + 1];
+ }
+ break;
+#endif /* FREEBSD */
+ }
+}
+#endif
+
+struct tcb *tcp_last = NULL;
+
+static int
+internal_syscall(tcp)
+struct tcb *tcp;
+{
+ /*
+ * We must always trace a few critical system calls in order to
+ * correctly support following forks in the presence of tracing
+ * qualifiers.
+ */
+ switch (known_scno(tcp)) {
+#ifdef SYS_fork
+ case SYS_fork:
+#endif
+#ifdef SYS_vfork
+ case SYS_vfork:
+#endif
+#ifdef SYS_fork1
+ case SYS_fork1:
+#endif
+#ifdef SYS_forkall
+ case SYS_forkall:
+#endif
+#ifdef SYS_rfork1
+ case SYS_rfork1:
+#endif
+#ifdef SYS_rforkall
+ case SYS_rforkall:
+#endif
+#ifdef SYS_rfork
+ case SYS_rfork:
+#endif
+ internal_fork(tcp);
+ break;
+#ifdef SYS_clone
+ case SYS_clone:
+ internal_clone(tcp);
+ break;
+#endif
+#ifdef SYS_clone2
+ case SYS_clone2:
+ internal_clone(tcp);
+ break;
+#endif
+#ifdef SYS_execv
+ case SYS_execv:
+#endif
+#ifdef SYS_execve
+ case SYS_execve:
+#endif
+#ifdef SYS_rexecve
+ case SYS_rexecve:
+#endif
+ internal_exec(tcp);
+ break;
+
+#ifdef SYS_wait
+ case SYS_wait:
+#endif
+#ifdef SYS_wait4
+ case SYS_wait4:
+#endif
+#ifdef SYS32_wait4
+ case SYS32_wait4:
+#endif
+#ifdef SYS_waitpid
+ case SYS_waitpid:
+#endif
+#ifdef SYS_waitsys
+ case SYS_waitsys:
+#endif
+ internal_wait(tcp, 2);
+ break;
+#ifdef SYS_waitid
+ case SYS_waitid:
+ internal_wait(tcp, 3);
+ break;
+#endif
+
+#ifdef SYS_exit
+ case SYS_exit:
+#endif
+#ifdef SYS32_exit
+ case SYS32_exit:
+#endif
+#ifdef __NR_exit_group
+ case __NR_exit_group:
+#endif
+#ifdef IA64
+ case 252: /* IA-32 __NR_exit_group */
+#endif
+ internal_exit(tcp);
+ break;
+ }
+ return 0;
+}
+
+
+#ifdef LINUX
+#if defined (I386)
+ static long eax;
+#elif defined (IA64)
+ long r8, r10, psr;
+ long ia32 = 0;
+#elif defined (POWERPC)
+ static long result,flags;
+#elif defined (M68K)
+ static int d0;
+#elif defined (ARM)
+ static struct pt_regs regs;
+#elif defined (ALPHA)
+ static long r0;
+ static long a3;
+#elif defined (SPARC) || defined (SPARC64)
+ static struct regs regs;
+ static unsigned long trap;
+#elif defined(MIPS)
+ static long a3;
+ static long r2;
+#elif defined(S390) || defined(S390X)
+ static long gpr2;
+ static long pc;
+ static long syscall_mode;
+#elif defined(HPPA)
+ static long r28;
+#elif defined(SH)
+ static long r0;
+#elif defined(SH64)
+ static long r9;
+#elif defined(X86_64)
+ static long rax;
+#endif
+#endif /* LINUX */
+#ifdef FREEBSD
+ struct reg regs;
+#endif /* FREEBSD */
+
+int
+get_scno(tcp)
+struct tcb *tcp;
+{
+ long scno = 0;
+#ifndef USE_PROCFS
+ int pid = tcp->pid;
+#endif /* !PROCFS */
+
+#ifdef LINUX
+#if defined(S390) || defined(S390X)
+ if (tcp->flags & TCB_WAITEXECVE) {
+ /*
+ * When the execve system call completes successfully, the
+ * new process still has -ENOSYS (old style) or __NR_execve
+ * (new style) in gpr2. We cannot recover the scno again
+ * by disassembly, because the image that executed the
+ * syscall is gone now. Fortunately, we don't want it. We
+ * leave the flag set so that syscall_fixup can fake the
+ * result.
+ */
+ if (tcp->flags & TCB_INSYSCALL)
+ return 1;
+ /*
+ * This is the SIGTRAP after execve. We cannot try to read
+ * the system call here either.
+ */
+ tcp->flags &= ~TCB_WAITEXECVE;
+ return 0;
+ }
+
+ if (upeek(pid, PT_GPR2, &syscall_mode) < 0)
+ return -1;
+
+ if (syscall_mode != -ENOSYS) {
+ /*
+ * Since kernel version 2.5.44 the scno gets passed in gpr2.
+ */
+ scno = syscall_mode;
+ } else {
+ /*
+ * Old style of "passing" the scno via the SVC instruction.
+ */
+
+ long opcode, offset_reg, tmp;
+ void * svc_addr;
+ int gpr_offset[16] = {PT_GPR0, PT_GPR1, PT_ORIGGPR2, PT_GPR3,
+ PT_GPR4, PT_GPR5, PT_GPR6, PT_GPR7,
+ PT_GPR8, PT_GPR9, PT_GPR10, PT_GPR11,
+ PT_GPR12, PT_GPR13, PT_GPR14, PT_GPR15};
+
+ if (upeek(pid, PT_PSWADDR, &pc) < 0)
+ return -1;
+ errno = 0;
+ opcode = ptrace(PTRACE_PEEKTEXT, pid, (char *)(pc-sizeof(long)), 0);
+ if (errno) {
+ perror("peektext(pc-oneword)");
+ return -1;
+ }
+
+ /*
+ * We have to check if the SVC got executed directly or via an
+ * EXECUTE instruction. In case of EXECUTE it is necessary to do
+ * instruction decoding to derive the system call number.
+ * Unfortunately the opcode sizes of EXECUTE and SVC are differently,
+ * so that this doesn't work if a SVC opcode is part of an EXECUTE
+ * opcode. Since there is no way to find out the opcode size this
+ * is the best we can do...
+ */
+
+ if ((opcode & 0xff00) == 0x0a00) {
+ /* SVC opcode */
+ scno = opcode & 0xff;
+ }
+ else {
+ /* SVC got executed by EXECUTE instruction */
+
+ /*
+ * Do instruction decoding of EXECUTE. If you really want to
+ * understand this, read the Principles of Operations.
+ */
+ svc_addr = (void *) (opcode & 0xfff);
+
+ tmp = 0;
+ offset_reg = (opcode & 0x000f0000) >> 16;
+ if (offset_reg && (upeek(pid, gpr_offset[offset_reg], &tmp) < 0))
+ return -1;
+ svc_addr += tmp;
+
+ tmp = 0;
+ offset_reg = (opcode & 0x0000f000) >> 12;
+ if (offset_reg && (upeek(pid, gpr_offset[offset_reg], &tmp) < 0))
+ return -1;
+ svc_addr += tmp;
+
+ scno = ptrace(PTRACE_PEEKTEXT, pid, svc_addr, 0);
+ if (errno)
+ return -1;
+#if defined(S390X)
+ scno >>= 48;
+#else
+ scno >>= 16;
+#endif
+ tmp = 0;
+ offset_reg = (opcode & 0x00f00000) >> 20;
+ if (offset_reg && (upeek(pid, gpr_offset[offset_reg], &tmp) < 0))
+ return -1;
+
+ scno = (scno | tmp) & 0xff;
+ }
+ }
+#elif defined (POWERPC)
+ if (upeek(pid, sizeof(unsigned long)*PT_R0, &scno) < 0)
+ return -1;
+ if (!(tcp->flags & TCB_INSYSCALL)) {
+ /* Check if we return from execve. */
+ if (scno == 0 && (tcp->flags & TCB_WAITEXECVE)) {
+ tcp->flags &= ~TCB_WAITEXECVE;
+ return 0;
+ }
+ }
+#elif defined (I386)
+ if (upeek(pid, 4*ORIG_EAX, &scno) < 0)
+ return -1;
+#elif defined (X86_64)
+ if (upeek(pid, 8*ORIG_RAX, &scno) < 0)
+ return -1;
+
+ if (!(tcp->flags & TCB_INSYSCALL)) {
+ static int currpers=-1;
+ long val;
+
+ /* Check CS register value. On x86-64 linux it is:
+ * 0x33 for long mode (64 bit)
+ * 0x23 for compatibility mode (32 bit)
+ * It takes only one ptrace and thus doesn't need
+ * to be cached.
+ */
+ if (upeek(pid, 8*CS, &val) < 0)
+ return -1;
+ switch(val)
+ {
+ case 0x23: currpers = 1; break;
+ case 0x33: currpers = 0; break;
+ default:
+ fprintf(stderr, "Unknown value CS=0x%02X while "
+ "detecting personality of process "
+ "PID=%d\n", (int)val, pid);
+ currpers = current_personality;
+ break;
+ }
+#if 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.
+ */
+ unsigned long val, rip, i;
+
+ if(upeek(pid, 8*RIP, &rip)<0)
+ perror("upeek(RIP)");
+
+ /* sizeof(syscall) == sizeof(int 0x80) == 2 */
+ rip-=2;
+ errno = 0;
+
+ call = ptrace(PTRACE_PEEKTEXT,pid,(char *)rip,0);
+ if (errno)
+ printf("ptrace_peektext failed: %s\n",
+ strerror(errno));
+ switch (call & 0xffff)
+ {
+ /* x86-64: syscall = 0x0f 0x05 */
+ case 0x050f: currpers = 0; break;
+ /* i386: int 0x80 = 0xcd 0x80 */
+ case 0x80cd: currpers = 1; break;
+ default:
+ currpers = current_personality;
+ fprintf(stderr,
+ "Unknown syscall opcode (0x%04X) while "
+ "detecting personality of process "
+ "PID=%d\n", (int)call, pid);
+ break;
+ }
+#endif
+ if(currpers != current_personality)
+ {
+ char *names[]={"64 bit", "32 bit"};
+ set_personality(currpers);
+ printf("[ Process PID=%d runs in %s mode. ]\n",
+ pid, names[current_personality]);
+ }
+ }
+#elif defined(IA64)
+# define IA64_PSR_IS ((long)1 << 34)
+ if (upeek (pid, PT_CR_IPSR, &psr) >= 0)
+ ia32 = (psr & IA64_PSR_IS) != 0;
+ if (!(tcp->flags & TCB_INSYSCALL)) {
+ if (ia32) {
+ if (upeek(pid, PT_R1, &scno) < 0) /* orig eax */
+ return -1;
+ } else {
+ if (upeek (pid, PT_R15, &scno) < 0)
+ return -1;
+ }
+ /* Check if we return from execve. */
+ if (tcp->flags & TCB_WAITEXECVE) {
+ tcp->flags &= ~TCB_WAITEXECVE;
+ return 0;
+ }
+ } else {
+ /* syscall in progress */
+ if (upeek (pid, PT_R8, &r8) < 0)
+ return -1;
+ if (upeek (pid, PT_R10, &r10) < 0)
+ return -1;
+ }
+#elif defined (ARM)
+ /*
+ * Read complete register set in one go.
+ */
+ if (ptrace(PTRACE_GETREGS, pid, NULL, (void *)®s) == -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, pid, (void *)(regs.ARM_pc - 4), NULL);
+ if (errno)
+ return -1;
+
+ if (scno == 0 && (tcp->flags & TCB_WAITEXECVE)) {
+ tcp->flags &= ~TCB_WAITEXECVE;
+ return 0;
+ }
+
+ /* 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 (tcp->flags & TCB_INSYSCALL) {
+ fprintf(stderr, "pid %d stray syscall entry\n", tcp->pid);
+ tcp->flags &= ~TCB_INSYSCALL;
+ }
+ } else {
+ if (!(tcp->flags & TCB_INSYSCALL)) {
+ fprintf(stderr, "pid %d stray syscall exit\n", tcp->pid);
+ tcp->flags |= TCB_INSYSCALL;
+ }
+ }
+#elif defined (M68K)
+ if (upeek(pid, 4*PT_ORIG_D0, &scno) < 0)
+ return -1;
+#elif defined (MIPS)
+ if (upeek(pid, REG_A3, &a3) < 0)
+ return -1;
+
+ if(!(tcp->flags & TCB_INSYSCALL)) {
+ if (upeek(pid, REG_V0, &scno) < 0)
+ return -1;
+
+ if (scno < 0 || scno > nsyscalls) {
+ if(a3 == 0 || a3 == -1) {
+ if(debug)
+ fprintf (stderr, "stray syscall exit: v0 = %ld\n", scno);
+ return 0;
+ }
+ }
+ } else {
+ if (upeek(pid, REG_V0, &r2) < 0)
+ return -1;
+ }
+#elif defined (ALPHA)
+ if (upeek(pid, REG_A3, &a3) < 0)
+ return -1;
+
+ if (!(tcp->flags & TCB_INSYSCALL)) {
+ if (upeek(pid, REG_R0, &scno) < 0)
+ return -1;
+
+ /* Check if we return from execve. */
+ if (scno == 0 && tcp->flags & TCB_WAITEXECVE) {
+ tcp->flags &= ~TCB_WAITEXECVE;
+ return 0;
+ }
+
+ /*
+ * Do some sanity checks to figure out if it's
+ * really a syscall entry
+ */
+ if (scno < 0 || scno > nsyscalls) {
+ if (a3 == 0 || a3 == -1) {
+ if (debug)
+ fprintf (stderr, "stray syscall exit: r0 = %ld\n", scno);
+ return 0;
+ }
+ }
+ }
+ else {
+ if (upeek(pid, REG_R0, &r0) < 0)
+ return -1;
+ }
+#elif defined (SPARC) || defined (SPARC64)
+ /* Everything we need is in the current register set. */
+ if (ptrace(PTRACE_GETREGS,pid,(char *)®s,0) < 0)
+ return -1;
+
+ /* If we are entering, then disassemble the syscall trap. */
+ if (!(tcp->flags & TCB_INSYSCALL)) {
+ /* Retrieve the syscall trap instruction. */
+ errno = 0;
+ trap = ptrace(PTRACE_PEEKTEXT,pid,(char *)regs.r_pc,0);
+#if defined(SPARC64)
+ trap >>= 32;
+#endif
+ if (errno)
+ return -1;
+
+ /* Disassemble the trap to see what personality to use. */
+ switch (trap) {
+ case 0x91d02010:
+ /* Linux/SPARC syscall trap. */
+ set_personality(0);
+ break;
+ case 0x91d0206d:
+ /* Linux/SPARC64 syscall trap. */
+ set_personality(2);
+ break;
+ case 0x91d02000:
+ /* SunOS syscall trap. (pers 1) */
+ fprintf(stderr,"syscall: SunOS no support\n");
+ return -1;
+ case 0x91d02008:
+ /* Solaris 2.x syscall trap. (per 2) */
+ set_personality(1);
+ break;
+ case 0x91d02009:
+ /* NetBSD/FreeBSD syscall trap. */
+ fprintf(stderr,"syscall: NetBSD/FreeBSD not supported\n");
+ return -1;
+ case 0x91d02027:
+ /* Solaris 2.x gettimeofday */
+ set_personality(1);
+ break;
+ default:
+ /* Unknown syscall trap. */
+ if(tcp->flags & TCB_WAITEXECVE) {
+ tcp->flags &= ~TCB_WAITEXECVE;
+ return 0;
+ }
+#if defined (SPARC64)
+ fprintf(stderr,"syscall: unknown syscall trap %08lx %016lx\n", trap, regs.r_tpc);
+#else
+ fprintf(stderr,"syscall: unknown syscall trap %08x %08x\n", trap, regs.r_pc);
+#endif
+ return -1;
+ }
+
+ /* Extract the system call number from the registers. */
+ if (trap == 0x91d02027)
+ scno = 156;
+ else
+ scno = regs.r_g1;
+ if (scno == 0) {
+ scno = regs.r_o0;
+ memmove (®s.r_o0, ®s.r_o1, 7*sizeof(regs.r_o0));
+ }
+ }
+#elif defined(HPPA)
+ if (upeek(pid, PT_GR20, &scno) < 0)
+ return -1;
+ if (!(tcp->flags & TCB_INSYSCALL)) {
+ /* Check if we return from execve. */
+ if ((tcp->flags & TCB_WAITEXECVE)) {
+ tcp->flags &= ~TCB_WAITEXECVE;
+ return 0;
+ }
+ }
+#elif defined(SH)
+ /*
+ * In the new syscall ABI, the system call number is in R3.
+ */
+ if (upeek(pid, 4*(REG_REG0+3), &scno) < 0)
+ return -1;
+
+ if (scno < 0) {
+ /* Odd as it may seem, a glibc bug has been known to cause
+ glibc to issue bogus negative syscall numbers. So for
+ our purposes, make strace print what it *should* have been */
+ long correct_scno = (scno & 0xff);
+ if (debug)
+ fprintf(stderr,
+ "Detected glibc bug: bogus system call number = %ld, "
+ "correcting to %ld\n",
+ scno,
+ correct_scno);
+ scno = correct_scno;
+ }
+
+
+ if (!(tcp->flags & TCB_INSYSCALL)) {
+ /* Check if we return from execve. */
+ if (scno == 0 && tcp->flags & TCB_WAITEXECVE) {
+ tcp->flags &= ~TCB_WAITEXECVE;
+ return 0;
+ }
+ }
+#elif defined(SH64)
+ if (upeek(pid, REG_SYSCALL, &scno) < 0)
+ return -1;
+ scno &= 0xFFFF;
+
+ if (!(tcp->flags & TCB_INSYSCALL)) {
+ /* Check if we return from execve. */
+ if (tcp->flags & TCB_WAITEXECVE) {
+ tcp->flags &= ~TCB_WAITEXECVE;
+ return 0;
+ }
+ }
+#endif /* SH64 */
+#endif /* LINUX */
+#ifdef SUNOS4
+ if (upeek(pid, uoff(u_arg[7]), &scno) < 0)
+ return -1;
+#elif defined(SH)
+ /* new syscall ABI returns result in R0 */
+ if (upeek(pid, 4*REG_REG0, (long *)&r0) < 0)
+ return -1;
+#elif defined(SH64)
+ /* ABI defines result returned in r9 */
+ if (upeek(pid, REG_GENERAL(9), (long *)&r9) < 0)
+ return -1;
+
+#endif
+#ifdef USE_PROCFS
+#ifdef HAVE_PR_SYSCALL
+ scno = tcp->status.PR_SYSCALL;
+#else /* !HAVE_PR_SYSCALL */
+#ifndef FREEBSD
+ scno = tcp->status.PR_WHAT;
+#else /* FREEBSD */
+ if (pread(tcp->pfd_reg, ®s, sizeof(regs), 0) < 0) {
+ perror("pread");
+ return -1;
+ }
+ switch (regs.r_eax) {
+ case SYS_syscall:
+ case SYS___syscall:
+ pread(tcp->pfd, &scno, sizeof(scno), regs.r_esp + sizeof(int));
+ break;
+ default:
+ scno = regs.r_eax;
+ break;
+ }
+#endif /* FREEBSD */
+#endif /* !HAVE_PR_SYSCALL */
+#endif /* USE_PROCFS */
+ if (!(tcp->flags & TCB_INSYSCALL))
+ tcp->scno = scno;
+ return 1;
+}
+
+
+long
+known_scno(tcp)
+struct tcb *tcp;
+{
+ long scno = tcp->scno;
+ if (scno >= 0 && scno < nsyscalls && sysent[scno].native_scno != 0)
+ scno = sysent[scno].native_scno;
+ else
+ scno += NR_SYSCALL_BASE;
+ return scno;
+}
+
+static int
+syscall_fixup(tcp)
+struct tcb *tcp;
+{
+#ifndef USE_PROCFS
+ int pid = tcp->pid;
+#else /* USE_PROCFS */
+ int scno = known_scno(tcp);
+
+ if (!(tcp->flags & TCB_INSYSCALL)) {
+ if (tcp->status.PR_WHY != PR_SYSENTRY) {
+ if (
+ scno == SYS_fork
+#ifdef SYS_vfork
+ || scno == SYS_vfork
+#endif /* SYS_vfork */
+#ifdef SYS_fork1
+ || scno == SYS_fork1
+#endif /* SYS_fork1 */
+#ifdef SYS_forkall
+ || scno == SYS_forkall
+#endif /* SYS_forkall */
+#ifdef SYS_rfork1
+ || scno == SYS_rfork1
+#endif /* SYS_fork1 */
+#ifdef SYS_rforkall
+ || scno == SYS_rforkall
+#endif /* SYS_rforkall */
+ ) {
+ /* We are returning in the child, fake it. */
+ tcp->status.PR_WHY = PR_SYSENTRY;
+ trace_syscall(tcp);
+ tcp->status.PR_WHY = PR_SYSEXIT;
+ }
+ else {
+ fprintf(stderr, "syscall: missing entry\n");
+ tcp->flags |= TCB_INSYSCALL;
+ }
+ }
+ }
+ else {
+ if (tcp->status.PR_WHY != PR_SYSEXIT) {
+ fprintf(stderr, "syscall: missing exit\n");
+ tcp->flags &= ~TCB_INSYSCALL;
+ }
+ }
+#endif /* USE_PROCFS */
+#ifdef SUNOS4
+ if (!(tcp->flags & TCB_INSYSCALL)) {
+ if (scno == 0) {
+ fprintf(stderr, "syscall: missing entry\n");
+ tcp->flags |= TCB_INSYSCALL;
+ }
+ }
+ else {
+ if (scno != 0) {
+ if (debug) {
+ /*
+ * This happens when a signal handler
+ * for a signal which interrupted a
+ * a system call makes another system call.
+ */
+ fprintf(stderr, "syscall: missing exit\n");
+ }
+ tcp->flags &= ~TCB_INSYSCALL;
+ }
+ }
+#endif /* SUNOS4 */
+#ifdef LINUX
+#if defined (I386)
+ if (upeek(pid, 4*EAX, &eax) < 0)
+ return -1;
+ if (eax != -ENOSYS && !(tcp->flags & TCB_INSYSCALL)) {
+ if (debug)
+ fprintf(stderr, "stray syscall exit: eax = %ld\n", eax);
+ return 0;
+ }
+#elif defined (X86_64)
+ if (upeek(pid, 8*RAX, &rax) < 0)
+ return -1;
+ if (current_personality == 1)
+ rax = (long int)(int)rax; /* sign extend from 32 bits */
+ if (rax != -ENOSYS && !(tcp->flags & TCB_INSYSCALL)) {
+ if (debug)
+ fprintf(stderr, "stray syscall exit: rax = %ld\n", rax);
+ return 0;
+ }
+#elif defined (S390) || defined (S390X)
+ if (upeek(pid, PT_GPR2, &gpr2) < 0)
+ return -1;
+ if (syscall_mode != -ENOSYS)
+ syscall_mode = tcp->scno;
+ if (gpr2 != syscall_mode && !(tcp->flags & TCB_INSYSCALL)) {
+ if (debug)
+ fprintf(stderr, "stray syscall exit: gpr2 = %ld\n", gpr2);
+ return 0;
+ }
+ else if (((tcp->flags & (TCB_INSYSCALL|TCB_WAITEXECVE))
+ == (TCB_INSYSCALL|TCB_WAITEXECVE))
+ && (gpr2 == -ENOSYS || gpr2 == tcp->scno)) {
+ /*
+ * Fake a return value of zero. We leave the TCB_WAITEXECVE
+ * flag set for the post-execve SIGTRAP to see and reset.
+ */
+ gpr2 = 0;
+ }
+#elif defined (POWERPC)
+# define SO_MASK 0x10000000
+ if (upeek(pid, sizeof(unsigned long)*PT_CCR, &flags) < 0)
+ return -1;
+ if (upeek(pid, sizeof(unsigned long)*PT_R3, &result) < 0)
+ return -1;
+ if (flags & SO_MASK)
+ result = -result;
+#elif defined (M68K)
+ if (upeek(pid, 4*PT_D0, &d0) < 0)
+ return -1;
+ if (d0 != -ENOSYS && !(tcp->flags & TCB_INSYSCALL)) {
+ if (debug)
+ fprintf(stderr, "stray syscall exit: d0 = %ld\n", d0);
+ return 0;
+ }
+#elif defined (ARM)
+ /*
+ * Nothing required
+ */
+#elif defined (HPPA)
+ if (upeek(pid, PT_GR28, &r28) < 0)
+ return -1;
+#elif defined(IA64)
+ if (upeek(pid, PT_R10, &r10) < 0)
+ return -1;
+ if (upeek(pid, PT_R8, &r8) < 0)
+ return -1;
+ if (ia32 && r8 != -ENOSYS && !(tcp->flags & TCB_INSYSCALL)) {
+ if (debug)
+ fprintf(stderr, "stray syscall exit: r8 = %ld\n", r8);
+ return 0;
+ }
+#endif
+#endif /* LINUX */
+ return 1;
+}
+
+static int
+get_error(tcp)
+struct tcb *tcp;
+{
+ int u_error = 0;
+#ifdef LINUX
+#if defined(S390) || defined(S390X)
+ if (gpr2 && (unsigned) -gpr2 < nerrnos) {
+ tcp->u_rval = -1;
+ u_error = -gpr2;
+ }
+ else {
+ tcp->u_rval = gpr2;
+ u_error = 0;
+ }
+#else /* !S390 && !S390X */
+#ifdef I386
+ if (eax < 0 && -eax < nerrnos) {
+ tcp->u_rval = -1;
+ u_error = -eax;
+ }
+ else {
+ tcp->u_rval = eax;
+ u_error = 0;
+ }
+#else /* !I386 */
+#ifdef X86_64
+ if (rax < 0 && -rax < nerrnos) {
+ tcp->u_rval = -1;
+ u_error = -rax;
+ }
+ else {
+ tcp->u_rval = rax;
+ u_error = 0;
+ }
+#else
+#ifdef IA64
+ if (ia32) {
+ int err;
+
+ err = (int)r8;
+ if (err < 0 && -err < nerrnos) {
+ tcp->u_rval = -1;
+ u_error = -err;
+ }
+ else {
+ tcp->u_rval = err;
+ u_error = 0;
+ }
+ } else {
+ if (r10) {
+ tcp->u_rval = -1;
+ u_error = r8;
+ } else {
+ tcp->u_rval = r8;
+ u_error = 0;
+ }
+ }
+#else /* !IA64 */
+#ifdef MIPS
+ if (a3) {
+ tcp->u_rval = -1;
+ u_error = r2;
+ } else {
+ tcp->u_rval = r2;
+ u_error = 0;
+ }
+#else
+#ifdef POWERPC
+ if (result && (unsigned long) -result < nerrnos) {
+ tcp->u_rval = -1;
+ u_error = -result;
+ }
+ else {
+ tcp->u_rval = result;
+ u_error = 0;
+ }
+#else /* !POWERPC */
+#ifdef M68K
+ if (d0 && (unsigned) -d0 < nerrnos) {
+ tcp->u_rval = -1;
+ u_error = -d0;
+ }
+ else {
+ tcp->u_rval = d0;
+ u_error = 0;
+ }
+#else /* !M68K */
+#ifdef ARM
+ if (regs.ARM_r0 && (unsigned) -regs.ARM_r0 < nerrnos) {
+ tcp->u_rval = -1;
+ u_error = -regs.ARM_r0;
+ }
+ else {
+ tcp->u_rval = regs.ARM_r0;
+ u_error = 0;
+ }
+#else /* !ARM */
+#ifdef ALPHA
+ if (a3) {
+ tcp->u_rval = -1;
+ u_error = r0;
+ }
+ else {
+ tcp->u_rval = r0;
+ u_error = 0;
+ }
+#else /* !ALPHA */
+#ifdef SPARC
+ if (regs.r_psr & PSR_C) {
+ tcp->u_rval = -1;
+ u_error = regs.r_o0;
+ }
+ else {
+ tcp->u_rval = regs.r_o0;
+ u_error = 0;
+ }
+#else /* !SPARC */
+#ifdef SPARC64
+ if (regs.r_tstate & 0x1100000000UL) {
+ tcp->u_rval = -1;
+ u_error = regs.r_o0;
+ }
+ else {
+ tcp->u_rval = regs.r_o0;
+ u_error = 0;
+ }
+#else /* !SPARC64 */
+#ifdef HPPA
+ if (r28 && (unsigned) -r28 < nerrnos) {
+ tcp->u_rval = -1;
+ u_error = -r28;
+ }
+ else {
+ tcp->u_rval = r28;
+ u_error = 0;
+ }
+#else
+#ifdef SH
+ /* interpret R0 as return value or error number */
+ if (r0 && (unsigned) -r0 < nerrnos) {
+ tcp->u_rval = -1;
+ u_error = -r0;
+ }
+ else {
+ tcp->u_rval = r0;
+ u_error = 0;
+ }
+#else
+#ifdef SH64
+ /* interpret result as return value or error number */
+ if (r9 && (unsigned) -r9 < nerrnos) {
+ tcp->u_rval = -1;
+ u_error = -r9;
+ }
+ else {
+ tcp->u_rval = r9;
+ u_error = 0;
+ }
+#endif /* SH64 */
+#endif /* SH */
+#endif /* HPPA */
+#endif /* SPARC */
+#endif /* SPARC64 */
+#endif /* ALPHA */
+#endif /* ARM */
+#endif /* M68K */
+#endif /* POWERPC */
+#endif /* MIPS */
+#endif /* IA64 */
+#endif /* X86_64 */
+#endif /* I386 */
+#endif /* S390 || S390X */
+#endif /* LINUX */
+#ifdef SUNOS4
+ /* get error code from user struct */
+ if (upeek(pid, uoff(u_error), &u_error) < 0)
+ return -1;
+ u_error >>= 24; /* u_error is a char */
+
+ /* get system call return value */
+ if (upeek(pid, uoff(u_rval1), &tcp->u_rval) < 0)
+ return -1;
+#endif /* SUNOS4 */
+#ifdef SVR4
+#ifdef SPARC
+ /* Judicious guessing goes a long way. */
+ if (tcp->status.pr_reg[R_PSR] & 0x100000) {
+ tcp->u_rval = -1;
+ u_error = tcp->status.pr_reg[R_O0];
+ }
+ else {
+ tcp->u_rval = tcp->status.pr_reg[R_O0];
+ u_error = 0;
+ }
+#endif /* SPARC */
+#ifdef I386
+ /* Wanna know how to kill an hour single-stepping? */
+ if (tcp->status.PR_REG[EFL] & 0x1) {
+ tcp->u_rval = -1;
+ u_error = tcp->status.PR_REG[EAX];
+ }
+ else {
+ tcp->u_rval = tcp->status.PR_REG[EAX];
+#ifdef HAVE_LONG_LONG
+ tcp->u_lrval =
+ ((unsigned long long) tcp->status.PR_REG[EDX] << 32) +
+ tcp->status.PR_REG[EAX];
+#endif
+ u_error = 0;
+ }
+#endif /* I386 */
+#ifdef X86_64
+ /* Wanna know how to kill an hour single-stepping? */
+ if (tcp->status.PR_REG[EFLAGS] & 0x1) {
+ tcp->u_rval = -1;
+ u_error = tcp->status.PR_REG[RAX];
+ }
+ else {
+ tcp->u_rval = tcp->status.PR_REG[RAX];
+ u_error = 0;
+ }
+#endif /* X86_64 */
+#ifdef MIPS
+ if (tcp->status.pr_reg[CTX_A3]) {
+ tcp->u_rval = -1;
+ u_error = tcp->status.pr_reg[CTX_V0];
+ }
+ else {
+ tcp->u_rval = tcp->status.pr_reg[CTX_V0];
+ u_error = 0;
+ }
+#endif /* MIPS */
+#endif /* SVR4 */
+#ifdef FREEBSD
+ if (regs.r_eflags & PSL_C) {
+ tcp->u_rval = -1;
+ u_error = regs.r_eax;
+ } else {
+ tcp->u_rval = regs.r_eax;
+ tcp->u_lrval =
+ ((unsigned long long) regs.r_edx << 32) + regs.r_eax;
+ u_error = 0;
+ }
+#endif /* FREEBSD */
+ tcp->u_error = u_error;
+ return 1;
+}
+
+int
+force_result(tcp, error, rval)
+ struct tcb *tcp;
+ int error;
+ long rval;
+{
+#ifdef LINUX
+#if defined(S390) || defined(S390X)
+ gpr2 = error ? -error : rval;
+ if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)PT_GPR2, gpr2) < 0)
+ return -1;
+#else /* !S390 && !S390X */
+#ifdef I386
+ eax = error ? -error : rval;
+ if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(EAX * 4), eax) < 0)
+ return -1;
+#else /* !I386 */
+#ifdef X86_64
+ rax = error ? -error : rval;
+ if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(RAX * 8), rax) < 0)
+ return -1;
+#else
+#ifdef IA64
+ if (ia32) {
+ r8 = error ? -error : rval;
+ if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(PT_R8), r8) < 0)
+ return -1;
+ }
+ else {
+ if (error) {
+ r8 = error;
+ r10 = -1;
+ }
+ else {
+ r8 = rval;
+ r10 = 0;
+ }
+ if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(PT_R8), r8) < 0 ||
+ ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(PT_R10), r10) < 0)
+ return -1;
+ }
+#else /* !IA64 */
+#ifdef MIPS
+ if (error) {
+ r2 = error;
+ a3 = -1;
+ }
+ else {
+ r2 = rval;
+ a3 = 0;
+ }
+ if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(REG_A3), a3) < 0 ||
+ ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(REG_V0), r2) < 0)
+ return -1;
+#else
+#ifdef POWERPC
+ if (upeek(tcp->pid, sizeof(unsigned long)*PT_CCR, &flags) < 0)
+ return -1;
+ if (error) {
+ flags |= SO_MASK;
+ result = error;
+ }
+ else {
+ flags &= ~SO_MASK;
+ result = rval;
+ }
+ if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(sizeof(unsigned long)*PT_CCR), flags) < 0 ||
+ ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(sizeof(unsigned long)*PT_R3), result) < 0)
+ return -1;
+#else /* !POWERPC */
+#ifdef M68K
+ d0 = error ? -error : rval;
+ if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(4*PT_D0), d0) < 0)
+ return -1;
+#else /* !M68K */
+#ifdef ARM
+ regs.ARM_r0 = error ? -error : rval;
+ if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(4*0), regs.ARM_r0) < 0)
+ return -1;
+#else /* !ARM */
+#ifdef ALPHA
+ if (error) {
+ a3 = -1;
+ r0 = error;
+ }
+ else {
+ a3 = 0;
+ r0 = rval;
+ }
+ if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(REG_A3), a3) < 0 ||
+ ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(REG_R0), r0) < 0)
+ return -1;
+#else /* !ALPHA */
+#ifdef SPARC
+ if (ptrace(PTRACE_GETREGS, tcp->pid, (char *)®s, 0) < 0)
+ return -1;
+ if (error) {
+ regs.r_psr |= PSR_C;
+ regs.r_o0 = error;
+ }
+ else {
+ regs.r_psr &= ~PSR_C;
+ regs.r_o0 = rval;
+ }
+ if (ptrace(PTRACE_SETREGS, tcp->pid, (char *)®s, 0) < 0)
+ return -1;
+#else /* !SPARC */
+#ifdef SPARC64
+ if (ptrace(PTRACE_GETREGS, tcp->pid, (char *)®s, 0) < 0)
+ return -1;
+ if (error) {
+ regs.r_tstate |= 0x1100000000UL;
+ regs.r_o0 = error;
+ }
+ else {
+ regs.r_tstate &= ~0x1100000000UL;
+ regs.r_o0 = rval;
+ }
+ if (ptrace(PTRACE_SETREGS, tcp->pid, (char *)®s, 0) < 0)
+ return -1;
+#else /* !SPARC64 */
+#ifdef HPPA
+ r28 = error ? -error : rval;
+ if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(PT_GR28), r28) < 0)
+ return -1;
+#else
+#ifdef SH
+ r0 = error ? -error : rval;
+ if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(4*REG_REG0), r0) < 0)
+ return -1;
+#else
+#ifdef SH64
+ r9 = error ? -error : rval;
+ if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)REG_GENERAL(9), r9) < 0)
+ return -1;
+#endif /* SH64 */
+#endif /* SH */
+#endif /* HPPA */
+#endif /* SPARC */
+#endif /* SPARC64 */
+#endif /* ALPHA */
+#endif /* ARM */
+#endif /* M68K */
+#endif /* POWERPC */
+#endif /* MIPS */
+#endif /* IA64 */
+#endif /* X86_64 */
+#endif /* I386 */
+#endif /* S390 || S390X */
+#endif /* LINUX */
+#ifdef SUNOS4
+ if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)uoff(u_error),
+ error << 24) < 0 ||
+ ptrace(PTRACE_POKEUSER, tcp->pid, (char*)uoff(u_rval1), rval) < 0)
+ return -1;
+#endif /* SUNOS4 */
+#ifdef SVR4
+ /* XXX no clue */
+ return -1;
+#endif /* SVR4 */
+#ifdef FREEBSD
+ if (pread(tcp->pfd_reg, ®s, sizeof(regs), 0) < 0) {
+ perror("pread");
+ return -1;
+ }
+ if (error) {
+ regs.r_eflags |= PSL_C;
+ regs.r_eax = error;
+ }
+ else {
+ regs.r_eflags &= ~PSL_C;
+ regs.r_eax = rval;
+ }
+ if (pwrite(tcp->pfd_reg, ®s, sizeof(regs), 0) < 0) {
+ perror("pwrite");
+ return -1;
+ }
+#endif /* FREEBSD */
+
+ /* All branches reach here on success (only). */
+ tcp->u_error = error;
+ tcp->u_rval = rval;
+ return 0;
+}
+
+static int
+syscall_enter(tcp)
+struct tcb *tcp;
+{
+#ifndef USE_PROCFS
+ int pid = tcp->pid;
+#endif /* !USE_PROCFS */
+#ifdef LINUX
+#if defined(S390) || defined(S390X)
+ {
+ int i;
+ if (tcp->scno >= 0 && tcp->scno < nsyscalls && sysent[tcp->scno].nargs != -1)
+ tcp->u_nargs = sysent[tcp->scno].nargs;
+ else
+ tcp->u_nargs = MAX_ARGS;
+ for (i = 0; i < tcp->u_nargs; i++) {
+ if (upeek(pid,i==0 ? PT_ORIGGPR2:PT_GPR2+i*sizeof(long), &tcp->u_arg[i]) < 0)
+ return -1;
+ }
+ }
+#elif defined (ALPHA)
+ {
+ int i;
+ if (tcp->scno >= 0 && tcp->scno < nsyscalls && sysent[tcp->scno].nargs != -1)
+ tcp->u_nargs = sysent[tcp->scno].nargs;
+ else
+ tcp->u_nargs = MAX_ARGS;
+ for (i = 0; i < tcp->u_nargs; i++) {
+ /* WTA: if scno is out-of-bounds this will bomb. Add range-check
+ * for scno somewhere above here!
+ */
+ if (upeek(pid, REG_A0+i, &tcp->u_arg[i]) < 0)
+ return -1;
+ }
+ }
+#elif defined (IA64)
+ {
+ if (!ia32) {
+ unsigned long *out0, *rbs_end, cfm, sof, sol, i;
+ /* be backwards compatible with kernel < 2.4.4... */
+# ifndef PT_RBS_END
+# define PT_RBS_END PT_AR_BSP
+# endif
+
+ if (upeek(pid, PT_RBS_END, (long *) &rbs_end) < 0)
+ return -1;
+ if (upeek(pid, PT_CFM, (long *) &cfm) < 0)
+ return -1;
+
+ sof = (cfm >> 0) & 0x7f;
+ sol = (cfm >> 7) & 0x7f;
+ out0 = ia64_rse_skip_regs(rbs_end, -sof + sol);
+
+ if (tcp->scno >= 0 && tcp->scno < nsyscalls
+ && sysent[tcp->scno].nargs != -1)
+ tcp->u_nargs = sysent[tcp->scno].nargs;
+ else
+ tcp->u_nargs = MAX_ARGS;
+ for (i = 0; i < tcp->u_nargs; ++i) {
+ if (umoven(tcp, (unsigned long) ia64_rse_skip_regs(out0, i),
+ sizeof(long), (char *) &tcp->u_arg[i]) < 0)
+ return -1;
+ }
+ } else {
+ int i;
+
+ if (/* EBX = out0 */
+ upeek(pid, PT_R11, (long *) &tcp->u_arg[0]) < 0
+ /* ECX = out1 */
+ || upeek(pid, PT_R9, (long *) &tcp->u_arg[1]) < 0
+ /* EDX = out2 */
+ || upeek(pid, PT_R10, (long *) &tcp->u_arg[2]) < 0
+ /* ESI = out3 */
+ || upeek(pid, PT_R14, (long *) &tcp->u_arg[3]) < 0
+ /* EDI = out4 */
+ || upeek(pid, PT_R15, (long *) &tcp->u_arg[4]) < 0
+ /* EBP = out5 */
+ || upeek(pid, PT_R13, (long *) &tcp->u_arg[5]) < 0)
+ return -1;
+
+ for (i = 0; i < 6; ++i)
+ /* truncate away IVE sign-extension */
+ tcp->u_arg[i] &= 0xffffffff;
+
+ if (tcp->scno >= 0 && tcp->scno < nsyscalls
+ && sysent[tcp->scno].nargs != -1)
+ tcp->u_nargs = sysent[tcp->scno].nargs;
+ else
+ tcp->u_nargs = 5;
+ }
+ }
+#elif defined (MIPS)
+ {
+ long sp;
+ int i, nargs;
+
+ if (tcp->scno >= 0 && tcp->scno < nsyscalls && sysent[tcp->scno].nargs != -1)
+ nargs = tcp->u_nargs = sysent[tcp->scno].nargs;
+ else
+ nargs = tcp->u_nargs = MAX_ARGS;
+ if(nargs > 4) {
+ if(upeek(pid, REG_SP, &sp) < 0)
+ return -1;
+ for(i = 0; i < 4; i++) {
+ if (upeek(pid, REG_A0 + i, &tcp->u_arg[i])<0)
+ return -1;
+ }
+ umoven(tcp, sp+16, (nargs-4) * sizeof(tcp->u_arg[0]),
+ (char *)(tcp->u_arg + 4));
+ } else {
+ for(i = 0; i < nargs; i++) {
+ if (upeek(pid, REG_A0 + i, &tcp->u_arg[i]) < 0)
+ return -1;
+ }
+ }
+ }
+#elif defined (POWERPC)
+#ifndef PT_ORIG_R3
+#define PT_ORIG_R3 34
+#endif
+ {
+ int i;
+ if (tcp->scno >= 0 && tcp->scno < nsyscalls && sysent[tcp->scno].nargs != -1)
+ tcp->u_nargs = sysent[tcp->scno].nargs;
+ else
+ tcp->u_nargs = MAX_ARGS;
+ for (i = 0; i < tcp->u_nargs; i++) {
+ if (upeek(pid, (i==0) ?
+ (sizeof(unsigned long)*PT_ORIG_R3) :
+ ((i+PT_R3)*sizeof(unsigned long)),
+ &tcp->u_arg[i]) < 0)
+ return -1;
+ }
+ }
+#elif defined (SPARC) || defined (SPARC64)
+ {
+ int i;
+
+ if (tcp->scno >= 0 && tcp->scno < nsyscalls && sysent[tcp->scno].nargs != -1)
+ tcp->u_nargs = sysent[tcp->scno].nargs;
+ else
+ tcp->u_nargs = MAX_ARGS;
+ for (i = 0; i < tcp->u_nargs; i++)
+ tcp->u_arg[i] = *((®s.r_o0) + i);
+ }
+#elif defined (HPPA)
+ {
+ int i;
+
+ if (tcp->scno >= 0 && tcp->scno < nsyscalls && sysent[tcp->scno].nargs != -1)
+ tcp->u_nargs = sysent[tcp->scno].nargs;
+ else
+ tcp->u_nargs = MAX_ARGS;
+ for (i = 0; i < tcp->u_nargs; i++) {
+ if (upeek(pid, PT_GR26-4*i, &tcp->u_arg[i]) < 0)
+ return -1;
+ }
+ }
+#elif defined(ARM)
+ {
+ int i;
+
+ if (tcp->scno >= 0 && tcp->scno < nsyscalls && sysent[tcp->scno].nargs != -1)
+ tcp->u_nargs = sysent[tcp->scno].nargs;
+ else
+ tcp->u_nargs = MAX_ARGS;
+ for (i = 0; i < tcp->u_nargs; i++)
+ tcp->u_arg[i] = regs.uregs[i];
+ }
+#elif defined(SH)
+ {
+ int i;
+ static int syscall_regs[] = {
+ REG_REG0+4, REG_REG0+5, REG_REG0+6, REG_REG0+7,
+ REG_REG0, REG_REG0+1, REG_REG0+2
+ };
+
+ tcp->u_nargs = sysent[tcp->scno].nargs;
+ for (i = 0; i < tcp->u_nargs; i++) {
+ if (upeek(pid, 4*syscall_regs[i], &tcp->u_arg[i]) < 0)
+ return -1;
+ }
+ }
+#elif defined(SH64)
+ {
+ int i;
+ /* Registers used by SH5 Linux system calls for parameters */
+ static int syscall_regs[] = { 2, 3, 4, 5, 6, 7 };
+
+ /*
+ * TODO: should also check that the number of arguments encoded
+ * in the trap number matches the number strace expects.
+ */
+ /*
+ assert(sysent[tcp->scno].nargs <
+ sizeof(syscall_regs)/sizeof(syscall_regs[0]));
+ */
+
+ tcp->u_nargs = sysent[tcp->scno].nargs;
+ for (i = 0; i < tcp->u_nargs; i++) {
+ if (upeek(pid, REG_GENERAL(syscall_regs[i]), &tcp->u_arg[i]) < 0)
+ return -1;
+ }
+ }
+
+#elif defined(X86_64)
+ {
+ int i;
+ static int argreg[SUPPORTED_PERSONALITIES][MAX_ARGS] = {
+ {RDI,RSI,RDX,R10,R8,R9}, /* x86-64 ABI */
+ {RBX,RCX,RDX,RSI,RDI,RBP} /* i386 ABI */
+ };
+
+ if (tcp->scno >= 0 && tcp->scno < nsyscalls && sysent[tcp->scno].nargs != -1)
+ tcp->u_nargs = sysent[tcp->scno].nargs;
+ else
+ tcp->u_nargs = MAX_ARGS;
+ for (i = 0; i < tcp->u_nargs; i++) {
+ if (upeek(pid, argreg[current_personality][i]*8, &tcp->u_arg[i]) < 0)
+ return -1;
+ }
+ }
+#else /* Other architecture (like i386) (32bits specific) */
+ {
+ int i;
+ if (tcp->scno >= 0 && tcp->scno < nsyscalls && sysent[tcp->scno].nargs != -1)
+ tcp->u_nargs = sysent[tcp->scno].nargs;
+ else
+ tcp->u_nargs = MAX_ARGS;
+ for (i = 0; i < tcp->u_nargs; i++) {
+ if (upeek(pid, i*4, &tcp->u_arg[i]) < 0)
+ return -1;
+ }
+ }
+#endif
+#endif /* LINUX */
+#ifdef SUNOS4
+ {
+ int i;
+ if (tcp->scno >= 0 && tcp->scno < nsyscalls && sysent[tcp->scno].nargs != -1)
+ tcp->u_nargs = sysent[tcp->scno].nargs;
+ else
+ tcp->u_nargs = MAX_ARGS;
+ for (i = 0; i < tcp->u_nargs; i++) {
+ struct user *u;
+
+ if (upeek(pid, uoff(u_arg[0]) +
+ (i*sizeof(u->u_arg[0])), &tcp->u_arg[i]) < 0)
+ return -1;
+ }
+ }
+#endif /* SUNOS4 */
+#ifdef SVR4
+#ifdef MIPS
+ /*
+ * SGI is broken: even though it has pr_sysarg, it doesn't
+ * set them on system call entry. Get a clue.
+ */
+ if (tcp->scno >= 0 && tcp->scno < nsyscalls && sysent[tcp->scno].nargs != -1)
+ tcp->u_nargs = sysent[tcp->scno].nargs;
+ else
+ tcp->u_nargs = tcp->status.pr_nsysarg;
+ if (tcp->u_nargs > 4) {
+ memcpy(tcp->u_arg, &tcp->status.pr_reg[CTX_A0],
+ 4*sizeof(tcp->u_arg[0]));
+ umoven(tcp, tcp->status.pr_reg[CTX_SP] + 16,
+ (tcp->u_nargs - 4)*sizeof(tcp->u_arg[0]), (char *) (tcp->u_arg + 4));
+ }
+ else {
+ memcpy(tcp->u_arg, &tcp->status.pr_reg[CTX_A0],
+ tcp->u_nargs*sizeof(tcp->u_arg[0]));
+ }
+#elif UNIXWARE >= 2
+ /*
+ * Like SGI, UnixWare doesn't set pr_sysarg until system call exit
+ */
+ if (tcp->scno >= 0 && tcp->scno < nsyscalls && sysent[tcp->scno].nargs != -1)
+ tcp->u_nargs = sysent[tcp->scno].nargs;
+ else
+ tcp->u_nargs = tcp->status.pr_lwp.pr_nsysarg;
+ umoven(tcp, tcp->status.PR_REG[UESP] + 4,
+ tcp->u_nargs*sizeof(tcp->u_arg[0]), (char *) tcp->u_arg);
+#elif defined (HAVE_PR_SYSCALL)
+ if (tcp->scno >= 0 && tcp->scno < nsyscalls && sysent[tcp->scno].nargs != -1)
+ tcp->u_nargs = sysent[tcp->scno].nargs;
+ else
+ tcp->u_nargs = tcp->status.pr_nsysarg;
+ {
+ int i;
+ for (i = 0; i < tcp->u_nargs; i++)
+ tcp->u_arg[i] = tcp->status.pr_sysarg[i];
+ }
+#elif defined (I386)
+ if (tcp->scno >= 0 && tcp->scno < nsyscalls && sysent[tcp->scno].nargs != -1)
+ tcp->u_nargs = sysent[tcp->scno].nargs;
+ else
+ tcp->u_nargs = 5;
+ umoven(tcp, tcp->status.PR_REG[UESP] + 4,
+ tcp->u_nargs*sizeof(tcp->u_arg[0]), (char *) tcp->u_arg);
+#else
+ I DONT KNOW WHAT TO DO
+#endif /* !HAVE_PR_SYSCALL */
+#endif /* SVR4 */
+#ifdef FREEBSD
+ if (tcp->scno >= 0 && tcp->scno < nsyscalls &&
+ sysent[tcp->scno].nargs > tcp->status.val)
+ tcp->u_nargs = sysent[tcp->scno].nargs;
+ else
+ tcp->u_nargs = tcp->status.val;
+ if (tcp->u_nargs < 0)
+ tcp->u_nargs = 0;
+ if (tcp->u_nargs > MAX_ARGS)
+ tcp->u_nargs = MAX_ARGS;
+ switch(regs.r_eax) {
+ case SYS___syscall:
+ pread(tcp->pfd, &tcp->u_arg, tcp->u_nargs * sizeof(unsigned long),
+ regs.r_esp + sizeof(int) + sizeof(quad_t));
+ break;
+ case SYS_syscall:
+ pread(tcp->pfd, &tcp->u_arg, tcp->u_nargs * sizeof(unsigned long),
+ regs.r_esp + 2 * sizeof(int));
+ break;
+ default:
+ pread(tcp->pfd, &tcp->u_arg, tcp->u_nargs * sizeof(unsigned long),
+ regs.r_esp + sizeof(int));
+ break;
+ }
+#endif /* FREEBSD */
+ return 1;
+}
+
+int
+trace_syscall(tcp)
+struct tcb *tcp;
+{
+ int sys_res;
+ struct timeval tv;
+ int res;
+
+ /* Measure the exit time as early as possible to avoid errors. */
+ if (dtime && (tcp->flags & TCB_INSYSCALL))
+ gettimeofday(&tv, NULL);
+
+ res = get_scno(tcp);
+ if (res != 1)
+ return res;
+
+ res = syscall_fixup(tcp);
+ if (res != 1)
+ return res;
+
+ if (tcp->flags & TCB_INSYSCALL) {
+ long u_error;
+ res = get_error(tcp);
+ if (res != 1)
+ return res;
+
+ internal_syscall(tcp);
+ if (tcp->scno >= 0 && tcp->scno < nsyscalls &&
+ !(qual_flags[tcp->scno] & QUAL_TRACE)) {
+ tcp->flags &= ~TCB_INSYSCALL;
+ return 0;
+ }
+
+ if (tcp->flags & TCB_REPRINT) {
+ printleader(tcp);
+ tprintf("<... ");
+ if (tcp->scno >= nsyscalls || tcp->scno < 0)
+ tprintf("syscall_%lu", tcp->scno);
+ else
+ tprintf("%s", sysent[tcp->scno].sys_name);
+ tprintf(" resumed> ");
+ }
+
+ if (cflag && tcp->scno < nsyscalls && tcp->scno >= 0) {
+ if (counts == NULL) {
+ counts = calloc(sizeof *counts, nsyscalls);
+ if (counts == NULL) {
+ fprintf(stderr, "\
+strace: out of memory for call counts\n");
+ exit(1);
+ }
+ }
+
+ counts[tcp->scno].calls++;
+ if (tcp->u_error)
+ counts[tcp->scno].errors++;
+ tv_sub(&tv, &tv, &tcp->etime);
+#ifndef HAVE_ANDROID_OS
+#ifdef LINUX
+ if (tv_cmp(&tv, &tcp->dtime) > 0) {
+ static struct timeval one_tick;
+ if (one_tick.tv_usec == 0) {
+ /* Initialize it. */
+ struct itimerval it;
+ memset(&it, 0, sizeof it);
+ it.it_interval.tv_usec = 1;
+ setitimer(ITIMER_REAL, &it, NULL);
+ getitimer(ITIMER_REAL, &it);
+ one_tick = it.it_interval;
+ }
+
+ if (tv_nz(&tcp->dtime))
+ tv = tcp->dtime;
+ else if (tv_cmp(&tv, &one_tick) > 0) {
+ if (tv_cmp(&shortest, &one_tick) < 0)
+ tv = shortest;
+ else
+ tv = one_tick;
+ }
+ }
+#endif /* LINUX */
+#endif
+ if (tv_cmp(&tv, &shortest) < 0)
+ shortest = tv;
+ tv_add(&counts[tcp->scno].time,
+ &counts[tcp->scno].time, &tv);
+ tcp->flags &= ~TCB_INSYSCALL;
+ return 0;
+ }
+
+ if (tcp->scno >= nsyscalls || tcp->scno < 0
+ || (qual_flags[tcp->scno] & QUAL_RAW))
+ sys_res = printargs(tcp);
+ else {
+ if (not_failing_only && tcp->u_error)
+ return 0; /* ignore failed syscalls */
+ sys_res = (*sysent[tcp->scno].sys_func)(tcp);
+ }
+ u_error = tcp->u_error;
+ tprintf(") ");
+ tabto(acolumn);
+ if (tcp->scno >= nsyscalls || tcp->scno < 0 ||
+ qual_flags[tcp->scno] & QUAL_RAW) {
+ if (u_error)
+ tprintf("= -1 (errno %ld)", u_error);
+ else
+ tprintf("= %#lx", tcp->u_rval);
+ }
+ else if (!(sys_res & RVAL_NONE) && u_error) {
+ switch (u_error) {
+#ifdef LINUX
+ case ERESTARTSYS:
+ tprintf("= ? ERESTARTSYS (To be restarted)");
+ break;
+ case ERESTARTNOINTR:
+ tprintf("= ? ERESTARTNOINTR (To be restarted)");
+ break;
+ case ERESTARTNOHAND:
+ tprintf("= ? ERESTARTNOHAND (To be restarted)");
+ break;
+ case ERESTART_RESTARTBLOCK:
+ tprintf("= ? ERESTART_RESTARTBLOCK (To be restarted)");
+ break;
+#endif /* LINUX */
+ default:
+ tprintf("= -1 ");
+ if (u_error < 0)
+ tprintf("E??? (errno %ld)", u_error);
+ else if (u_error < nerrnos)
+ tprintf("%s (%s)", errnoent[u_error],
+ strerror(u_error));
+ else
+ tprintf("ERRNO_%ld (%s)", u_error,
+ strerror(u_error));
+ break;
+ }
+ }
+ else {
+ if (sys_res & RVAL_NONE)
+ tprintf("= ?");
+ else {
+ switch (sys_res & RVAL_MASK) {
+ case RVAL_HEX:
+ tprintf("= %#lx", tcp->u_rval);
+ break;
+ case RVAL_OCTAL:
+ tprintf("= %#lo", tcp->u_rval);
+ break;
+ case RVAL_UDECIMAL:
+ tprintf("= %lu", tcp->u_rval);
+ break;
+ case RVAL_DECIMAL:
+ tprintf("= %ld", tcp->u_rval);
+ break;
+#ifdef HAVE_LONG_LONG
+ case RVAL_LHEX:
+ tprintf("= %#llx", tcp->u_lrval);
+ break;
+ case RVAL_LOCTAL:
+ tprintf("= %#llo", tcp->u_lrval);
+ break;
+ case RVAL_LUDECIMAL:
+ tprintf("= %llu", tcp->u_lrval);
+ break;
+ case RVAL_LDECIMAL:
+ tprintf("= %lld", tcp->u_lrval);
+ break;
+#endif
+ default:
+ fprintf(stderr,
+ "invalid rval format\n");
+ break;
+ }
+ }
+ if ((sys_res & RVAL_STR) && tcp->auxstr)
+ tprintf(" (%s)", tcp->auxstr);
+ }
+ if (dtime) {
+ tv_sub(&tv, &tv, &tcp->etime);
+ tprintf(" <%ld.%06ld>",
+ (long) tv.tv_sec, (long) tv.tv_usec);
+ }
+ printtrailer(tcp);
+
+ dumpio(tcp);
+ if (fflush(tcp->outf) == EOF)
+ return -1;
+ tcp->flags &= ~TCB_INSYSCALL;
+ return 0;
+ }
+
+ /* Entering system call */
+ res = syscall_enter(tcp);
+ if (res != 1)
+ return res;
+
+ switch (known_scno(tcp)) {
+#ifdef LINUX
+#if !defined (ALPHA) && !defined(SPARC) && !defined(SPARC64) && !defined(MIPS) && !defined(HPPA) && !defined(__ARM_EABI__) //ANDROID
+ case SYS_socketcall:
+ decode_subcall(tcp, SYS_socket_subcall,
+ SYS_socket_nsubcalls, deref_style);
+ break;
+ case SYS_ipc:
+ decode_subcall(tcp, SYS_ipc_subcall,
+ SYS_ipc_nsubcalls, shift_style);
+ break;
+#endif /* !ALPHA && !MIPS && !SPARC && !SPARC64 && !HPPA */
+#if defined (SPARC) || defined (SPARC64)
+ case SYS_socketcall:
+ sparc_socket_decode (tcp);
+ break;
+#endif
+#endif /* LINUX */
+#ifdef SVR4
+#ifdef SYS_pgrpsys_subcall
+ case SYS_pgrpsys:
+ decode_subcall(tcp, SYS_pgrpsys_subcall,
+ SYS_pgrpsys_nsubcalls, shift_style);
+ break;
+#endif /* SYS_pgrpsys_subcall */
+#ifdef SYS_sigcall_subcall
+ case SYS_sigcall:
+ decode_subcall(tcp, SYS_sigcall_subcall,
+ SYS_sigcall_nsubcalls, mask_style);
+ break;
+#endif /* SYS_sigcall_subcall */
+ case SYS_msgsys:
+ decode_subcall(tcp, SYS_msgsys_subcall,
+ SYS_msgsys_nsubcalls, shift_style);
+ break;
+ case SYS_shmsys:
+ decode_subcall(tcp, SYS_shmsys_subcall,
+ SYS_shmsys_nsubcalls, shift_style);
+ break;
+ case SYS_semsys:
+ decode_subcall(tcp, SYS_semsys_subcall,
+ SYS_semsys_nsubcalls, shift_style);
+ break;
+#if 0 /* broken */
+ case SYS_utssys:
+ decode_subcall(tcp, SYS_utssys_subcall,
+ SYS_utssys_nsubcalls, shift_style);
+ break;
+#endif
+ case SYS_sysfs:
+ decode_subcall(tcp, SYS_sysfs_subcall,
+ SYS_sysfs_nsubcalls, shift_style);
+ break;
+ case SYS_spcall:
+ decode_subcall(tcp, SYS_spcall_subcall,
+ SYS_spcall_nsubcalls, shift_style);
+ break;
+#ifdef SYS_context_subcall
+ case SYS_context:
+ decode_subcall(tcp, SYS_context_subcall,
+ SYS_context_nsubcalls, shift_style);
+ break;
+#endif /* SYS_context_subcall */
+#ifdef SYS_door_subcall
+ case SYS_door:
+ decode_subcall(tcp, SYS_door_subcall,
+ SYS_door_nsubcalls, door_style);
+ break;
+#endif /* SYS_door_subcall */
+#ifdef SYS_kaio_subcall
+ case SYS_kaio:
+ decode_subcall(tcp, SYS_kaio_subcall,
+ SYS_kaio_nsubcalls, shift_style);
+ break;
+#endif
+#endif /* SVR4 */
+#ifdef FREEBSD
+ case SYS_msgsys:
+ case SYS_shmsys:
+ case SYS_semsys:
+ decode_subcall(tcp, 0, 0, table_style);
+ break;
+#endif
+#ifdef SUNOS4
+ case SYS_semsys:
+ decode_subcall(tcp, SYS_semsys_subcall,
+ SYS_semsys_nsubcalls, shift_style);
+ break;
+ case SYS_msgsys:
+ decode_subcall(tcp, SYS_msgsys_subcall,
+ SYS_msgsys_nsubcalls, shift_style);
+ break;
+ case SYS_shmsys:
+ decode_subcall(tcp, SYS_shmsys_subcall,
+ SYS_shmsys_nsubcalls, shift_style);
+ break;
+#endif
+ }
+
+ internal_syscall(tcp);
+ if (tcp->scno >=0 && tcp->scno < nsyscalls && !(qual_flags[tcp->scno] & QUAL_TRACE)) {
+ tcp->flags |= TCB_INSYSCALL;
+ return 0;
+ }
+
+ if (cflag) {
+ gettimeofday(&tcp->etime, NULL);
+ tcp->flags |= TCB_INSYSCALL;
+ return 0;
+ }
+
+ printleader(tcp);
+ tcp->flags &= ~TCB_REPRINT;
+ tcp_last = tcp;
+ if (tcp->scno >= nsyscalls || tcp->scno < 0)
+ tprintf("syscall_%lu(", tcp->scno);
+ else
+ tprintf("%s(", sysent[tcp->scno].sys_name);
+ if (tcp->scno >= nsyscalls || tcp->scno < 0 ||
+ ((qual_flags[tcp->scno] & QUAL_RAW) && tcp->scno != SYS_exit))
+ sys_res = printargs(tcp);
+ else
+ sys_res = (*sysent[tcp->scno].sys_func)(tcp);
+ if (fflush(tcp->outf) == EOF)
+ return -1;
+ tcp->flags |= TCB_INSYSCALL;
+ /* Measure the entrance time as late as possible to avoid errors. */
+ if (dtime)
+ gettimeofday(&tcp->etime, NULL);
+ return sys_res;
+}
+
+int
+printargs(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ int i;
+
+ for (i = 0; i < tcp->u_nargs; i++)
+ tprintf("%s%#lx", i ? ", " : "", tcp->u_arg[i]);
+ }
+ return 0;
+}
+
+long
+getrval2(tcp)
+struct tcb *tcp;
+{
+ long val = -1;
+
+#ifdef LINUX
+#if defined (SPARC) || defined (SPARC64)
+ struct regs regs;
+ if (ptrace(PTRACE_GETREGS,tcp->pid,(char *)®s,0) < 0)
+ return -1;
+ val = regs.r_o1;
+#elif defined(SH)
+ if (upeek(tcp->pid, 4*(REG_REG0+1), &val) < 0)
+ return -1;
+#elif defined(IA64)
+ if (upeek(tcp->pid, PT_R9, &val) < 0)
+ return -1;
+#endif /* SPARC || SPARC64 */
+#endif /* LINUX */
+
+#ifdef SUNOS4
+ if (upeek(tcp->pid, uoff(u_rval2), &val) < 0)
+ return -1;
+#endif /* SUNOS4 */
+
+#ifdef SVR4
+#ifdef SPARC
+ val = tcp->status.PR_REG[R_O1];
+#endif /* SPARC */
+#ifdef I386
+ val = tcp->status.PR_REG[EDX];
+#endif /* I386 */
+#ifdef X86_64
+ val = tcp->status.PR_REG[RDX];
+#endif /* X86_64 */
+#ifdef MIPS
+ val = tcp->status.PR_REG[CTX_V1];
+#endif /* MIPS */
+#endif /* SVR4 */
+#ifdef FREEBSD
+ struct reg regs;
+ pread(tcp->pfd_reg, ®s, sizeof(regs), 0);
+ val = regs.r_edx;
+#endif
+ return val;
+}
+
+/*
+ * Apparently, indirect system calls have already be converted by ptrace(2),
+ * so if you see "indir" this program has gone astray.
+ */
+int
+sys_indir(tcp)
+struct tcb *tcp;
+{
+ int i, scno, nargs;
+
+ if (entering(tcp)) {
+ if ((scno = tcp->u_arg[0]) > nsyscalls) {
+ fprintf(stderr, "Bogus syscall: %u\n", scno);
+ return 0;
+ }
+ nargs = sysent[scno].nargs;
+ tprintf("%s", sysent[scno].sys_name);
+ for (i = 0; i < nargs; i++)
+ tprintf(", %#lx", tcp->u_arg[i+1]);
+ }
+ return 0;
+}
+
+static int
+time_cmp(a, b)
+void *a;
+void *b;
+{
+ return -tv_cmp(&counts[*((int *) a)].time, &counts[*((int *) b)].time);
+}
+
+static int
+syscall_cmp(a, b)
+void *a;
+void *b;
+{
+ return strcmp(sysent[*((int *) a)].sys_name,
+ sysent[*((int *) b)].sys_name);
+}
+
+static int
+count_cmp(a, b)
+void *a;
+void *b;
+{
+ int m = counts[*((int *) a)].calls, n = counts[*((int *) b)].calls;
+
+ return (m < n) ? 1 : (m > n) ? -1 : 0;
+}
+
+static int (*sortfun)();
+static struct timeval overhead = { -1, -1 };
+
+void
+set_sortby(sortby)
+char *sortby;
+{
+ if (strcmp(sortby, "time") == 0)
+ sortfun = time_cmp;
+ else if (strcmp(sortby, "calls") == 0)
+ sortfun = count_cmp;
+ else if (strcmp(sortby, "name") == 0)
+ sortfun = syscall_cmp;
+ else if (strcmp(sortby, "nothing") == 0)
+ sortfun = NULL;
+ else {
+ fprintf(stderr, "invalid sortby: `%s'\n", sortby);
+ exit(1);
+ }
+}
+
+void set_overhead(n)
+int n;
+{
+ overhead.tv_sec = n / 1000000;
+ overhead.tv_usec = n % 1000000;
+}
+
+void
+call_summary(outf)
+FILE *outf;
+{
+ int i, j;
+ int call_cum, error_cum;
+ struct timeval tv_cum, dtv;
+ double percent;
+ char *dashes = "-------------------------";
+ char error_str[16];
+
+ int *sorted_count = malloc(nsyscalls * sizeof(int));
+
+ call_cum = error_cum = tv_cum.tv_sec = tv_cum.tv_usec = 0;
+ if (overhead.tv_sec == -1) {
+ tv_mul(&overhead, &shortest, 8);
+ tv_div(&overhead, &overhead, 10);
+ }
+ for (i = 0; i < nsyscalls; i++) {
+ sorted_count[i] = i;
+ if (counts == NULL || counts[i].calls == 0)
+ continue;
+ tv_mul(&dtv, &overhead, counts[i].calls);
+ tv_sub(&counts[i].time, &counts[i].time, &dtv);
+ call_cum += counts[i].calls;
+ 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);
+ if (counts) {
+ for (i = 0; i < nsyscalls; i++) {
+ j = sorted_count[i];
+ if (counts[j].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 %4ld.%06ld %11ld %9d %9.9s %s\n",
+ percent, (long) counts[j].time.tv_sec,
+ (long) counts[j].time.tv_usec,
+ (long) 1000000 * dtv.tv_sec + dtv.tv_usec,
+ counts[j].calls,
+ error_str, sysent[j].sys_name);
+ }
+ }
+ free(sorted_count);
+
+ fprintf(outf, "%6.6s %11.11s %11.11s %9.9s %9.9s %-16.16s\n",
+ dashes, dashes, dashes, dashes, dashes, dashes);
+ if (error_cum)
+ sprintf(error_str, "%d", error_cum);
+ else
+ error_str[0] = '\0';
+ fprintf(outf, "%6.6s %4ld.%06ld %11.11s %9d %9.9s %s\n",
+ "100.00", (long) tv_cum.tv_sec, (long) tv_cum.tv_usec, "",
+ call_cum, error_str, "total");
+
+}
diff --git a/syscallent.sh b/syscallent.sh
new file mode 100644
index 0000000..2f08701
--- /dev/null
+++ b/syscallent.sh
@@ -0,0 +1,75 @@
+#!/bin/sh
+# Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
+# 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.
+#
+# $Id: syscallent.sh,v 1.3 2003/03/31 01:03:34 roland Exp $
+
+cat ${1+"$@"} |
+ sed -n 's/^#[ ]*define[ ][ ]*SYS_\([^ ]*\)[ ]*[^0-9]*\([0-9]*\).*$/\1 \2/p
+s/^#[ ]*define[ ][ ]*__NR_\([^ ]*\)[ ]*[^0-9]*\([0-9]*\).*$/\1 \2/p
+s/^#[ ]*define[ ][ ]*__NR_\([^ ]*\)[ ]*[^0-9()]*(__NR_Linux + \([0-9]*\))$/\1 \2/p' |
+ sort +1n | uniq |
+ awk '
+ BEGIN {
+ tabs = "\t\t\t\t\t\t\t\t"
+ call = -1;
+ }
+ {
+ while (++call < $2) {
+ f = "printargs"
+ n = "SYS_" call
+ s = "\t{ -1,\t0,\t"
+ s = s f ","
+ s = s substr(tabs, 1, 24/8 - int((length(f) + 1)/8))
+ s = s "\"" n "\""
+ s = s substr(tabs, 1, 16/8 - int((length(n) + 2)/8))
+ s = s "}, /* " call " */"
+ print s
+ }
+ f = "sys_" $1
+ n = $1
+ s = "\t{ -1,\t0,\t"
+ s = s f ","
+ s = s substr(tabs, 1, 24/8 - int((length(f) + 1)/8))
+ s = s "\"" n "\""
+ s = s substr(tabs, 1, 16/8 - int((length(n) + 2)/8))
+ s = s "}, /* " call " */"
+ print s
+ }
+ END {
+ limit = call + 100
+ while (++call < limit) {
+ f = "printargs"
+ n = "SYS_" call
+ s = "\t{ -1,\t0,\t"
+ s = s f ","
+ s = s substr(tabs, 1, 24/8 - int((length(f) + 1)/8))
+ s = s "\"" n "\""
+ s = s substr(tabs, 1, 16/8 - int((length(n) + 2)/8))
+ s = s "}, /* " call " */"
+ print s
+ }
+ }
+ '
diff --git a/system.c b/system.c
new file mode 100644
index 0000000..e8eb5be
--- /dev/null
+++ b/system.c
@@ -0,0 +1,2241 @@
+/*
+ * Copyright (c) 1991, 1992 Paul Kranenburg <pk@cs.few.eur.nl>
+ * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
+ * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
+ * Copyright (c) 1996-1999 Wichert Akkerman <wichert@cistron.nl>
+ * 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.
+ *
+ * $Id: system.c,v 1.37 2005/06/01 19:22:06 roland Exp $
+ */
+
+#include "defs.h"
+
+#ifdef LINUX
+
+#ifdef HAVE_ANDROID_OS
+#undef __unused
+#include <linux/sysctl.h>
+#include <sys/mount.h>
+#define CTL_PROC 4
+
+#else
+#define _LINUX_SOCKET_H
+#define _LINUX_FS_H
+
+#define MS_RDONLY 1 /* Mount read-only */
+#define MS_NOSUID 2 /* Ignore suid and sgid bits */
+#define MS_NODEV 4 /* Disallow access to device special files */
+#define MS_NOEXEC 8 /* Disallow program execution */
+#define MS_SYNCHRONOUS 16 /* Writes are synced at once */
+#define MS_REMOUNT 32 /* Alter flags of a mounted FS */
+#define MS_MANDLOCK 64 /* Allow mandatory locks on an FS */
+#define MS_DIRSYNC 128 /* Directory modifications are synchronous */
+#define MS_NOATIME 1024 /* Do not update access times. */
+#define MS_NODIRATIME 2048 /* Do not update directory access times */
+#define MS_BIND 4096
+#define MS_MOVE 8192
+#define MS_REC 16384
+#define MS_VERBOSE 32768
+#define MS_POSIXACL (1<<16) /* VFS does not apply the umask */
+#define MS_ACTIVE (1<<30)
+#define MS_NOUSER (1<<31)
+#endif /* HAVE_ANDROID_OS */
+
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+
+#include <sys/syscall.h>
+
+#ifdef SYS_capget
+#include <linux/capability.h>
+#endif
+
+#ifdef SYS_cacheflush
+#include <asm/cachectl.h>
+#endif
+
+#ifdef HAVE_LINUX_USTNAME_H
+#include <linux/utsname.h>
+#endif
+
+#ifdef MIPS
+#include <asm/sysmips.h>
+#endif
+
+#include <linux/sysctl.h>
+
+static const struct xlat mount_flags[] = {
+ { MS_RDONLY, "MS_RDONLY" },
+ { MS_NOSUID, "MS_NOSUID" },
+ { MS_NODEV, "MS_NODEV" },
+ { MS_NOEXEC, "MS_NOEXEC" },
+ { MS_SYNCHRONOUS,"MS_SYNCHRONOUS"},
+ { MS_REMOUNT, "MS_REMOUNT" },
+ { MS_MANDLOCK, "MS_MANDLOCK" },
+ { MS_NOATIME, "MS_NOATIME" },
+ { MS_NODIRATIME,"MS_NODIRATIME" },
+ { MS_BIND, "MS_BIND" },
+ { MS_MOVE, "MS_MOVE" },
+ { MS_REC, "MS_REC" },
+ { MS_VERBOSE, "MS_VERBOSE" },
+ { MS_POSIXACL, "MS_POSIXACL" },
+ { MS_ACTIVE, "MS_ACTIVE" },
+ { MS_NOUSER, "MS_NOUSER" },
+ { 0, NULL },
+};
+
+int
+sys_mount(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ tprintf(", ");
+ printpath(tcp, tcp->u_arg[1]);
+ tprintf(", ");
+ if ((tcp->u_arg[3] & (MS_BIND|MS_MOVE|MS_REMOUNT)) == 0)
+ printpath(tcp, tcp->u_arg[2]);
+ else
+ tprintf("%#lx", tcp->u_arg[2]);
+ tprintf(", ");
+ printflags(mount_flags, tcp->u_arg[3], "MS_???");
+ tprintf(", %#lx", tcp->u_arg[4]);
+ }
+ return 0;
+}
+
+int
+sys_umount2(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printstr(tcp, tcp->u_arg[0], -1);
+ tprintf(", ");
+ if (tcp->u_arg[1] & 1)
+ tprintf("MNT_FORCE");
+ else
+ tprintf("0");
+ }
+ return 0;
+}
+
+/* These are not macros, but enums. We just copy the values by hand
+ from Linux 2.6.9 here. */
+static const struct xlat personality_options[] = {
+ { 0, "PER_LINUX" },
+ { 0x00800000, "PER_LINUX_32BIT"},
+ { 0x04100001, "PER_SVR4" },
+ { 0x05000002, "PER_SVR3" },
+ { 0x07000003, "PER_SCOSVR3" },
+ { 0x06000003, "PER_OSR5" },
+ { 0x05000004, "PER_WYSEV386" },
+ { 0x04000005, "PER_ISCR4" },
+ { 0x00000006, "PER_BSD" },
+ { 0x04000006, "PER_SUNOS" },
+ { 0x05000007, "PER_XENIX" },
+ { 0x00000008, "PER_LINUX32" },
+ { 0x08000008, "PER_LINUX32_3GB"},
+ { 0x04000009, "PER_IRIX32" },
+ { 0x0400000a, "PER_IRIXN32" },
+ { 0x0400000b, "PER_IRIX64" },
+ { 0x0000000c, "PER_RISCOS" },
+ { 0x0400000d, "PER_SOLARIS" },
+ { 0x0410000e, "PER_UW7" },
+ { 0x0000000f, "PER_OSF4" },
+ { 0x00000010, "PER_HPUX" },
+ { 0, NULL },
+};
+
+int
+sys_personality(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp))
+ printxval(personality_options, tcp->u_arg[0], "PER_???");
+ return 0;
+}
+
+#include <linux/reboot.h>
+static const struct xlat bootflags1[] = {
+ { LINUX_REBOOT_MAGIC1, "LINUX_REBOOT_MAGIC1" },
+ { 0, NULL },
+};
+
+static const struct xlat bootflags2[] = {
+ { LINUX_REBOOT_MAGIC2, "LINUX_REBOOT_MAGIC2" },
+ { LINUX_REBOOT_MAGIC2A, "LINUX_REBOOT_MAGIC2A" },
+ { LINUX_REBOOT_MAGIC2B, "LINUX_REBOOT_MAGIC2B" },
+ { 0, NULL },
+};
+
+static const struct xlat bootflags3[] = {
+ { LINUX_REBOOT_CMD_CAD_OFF, "LINUX_REBOOT_CMD_CAD_OFF" },
+ { LINUX_REBOOT_CMD_RESTART, "LINUX_REBOOT_CMD_RESTART" },
+ { LINUX_REBOOT_CMD_HALT, "LINUX_REBOOT_CMD_HALT" },
+ { LINUX_REBOOT_CMD_CAD_ON, "LINUX_REBOOT_CMD_CAD_ON" },
+ { LINUX_REBOOT_CMD_POWER_OFF, "LINUX_REBOOT_CMD_POWER_OFF" },
+ { LINUX_REBOOT_CMD_RESTART2, "LINUX_REBOOT_CMD_RESTART2" },
+ { 0, NULL },
+};
+
+int
+sys_reboot(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printflags(bootflags1, tcp->u_arg[0], "LINUX_REBOOT_MAGIC_???");
+ tprintf(", ");
+ printflags(bootflags2, tcp->u_arg[1], "LINUX_REBOOT_MAGIC_???");
+ tprintf(", ");
+ printflags(bootflags3, tcp->u_arg[2], "LINUX_REBOOT_CMD_???");
+ if (tcp->u_arg[2] == LINUX_REBOOT_CMD_RESTART2) {
+ tprintf(", ");
+ printstr(tcp, tcp->u_arg[3], -1);
+ }
+ }
+ return 0;
+}
+
+#ifdef M68K
+static const struct xlat cacheflush_scope[] = {
+#ifdef FLUSH_SCOPE_LINE
+ { FLUSH_SCOPE_LINE, "FLUSH_SCOPE_LINE" },
+#endif
+#ifdef FLUSH_SCOPE_PAGE
+ { FLUSH_SCOPE_PAGE, "FLUSH_SCOPE_PAGE" },
+#endif
+#ifdef FLUSH_SCOPE_ALL
+ { FLUSH_SCOPE_ALL, "FLUSH_SCOPE_ALL" },
+#endif
+ { 0, NULL },
+};
+
+static const struct xlat cacheflush_flags[] = {
+#ifdef FLUSH_CACHE_BOTH
+ { FLUSH_CACHE_BOTH, "FLUSH_CACHE_BOTH" },
+#endif
+#ifdef FLUSH_CACHE_DATA
+ { FLUSH_CACHE_DATA, "FLUSH_CACHE_DATA" },
+#endif
+#ifdef FLUSH_CACHE_INSN
+ { FLUSH_CACHE_INSN, "FLUSH_CACHE_INSN" },
+#endif
+ { 0, NULL },
+};
+
+int
+sys_cacheflush(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ /* addr */
+ tprintf("%#lx, ", tcp->u_arg[0]);
+ /* scope */
+ printxval(cacheflush_scope, tcp->u_arg[1], "FLUSH_SCOPE_???");
+ tprintf(", ");
+ /* flags */
+ printflags(cacheflush_flags, tcp->u_arg[2], "FLUSH_CACHE_???");
+ /* len */
+ tprintf(", %lu", tcp->u_arg[3]);
+ }
+ return 0;
+}
+#endif /* M68K */
+
+#endif /* LINUX */
+
+#ifdef SUNOS4
+
+#include <sys/reboot.h>
+#define NFSCLIENT
+#define LOFS
+#define RFS
+#define PCFS
+#include <sys/mount.h>
+#include <sys/socket.h>
+#include <nfs/export.h>
+#include <rpc/types.h>
+#include <rpc/auth.h>
+
+/*ARGSUSED*/
+int
+sys_sync(tcp)
+struct tcb *tcp;
+{
+ return 0;
+}
+
+static const struct xlat bootflags[] = {
+ { RB_AUTOBOOT, "RB_AUTOBOOT" }, /* for system auto-booting itself */
+ { RB_ASKNAME, "RB_ASKNAME" }, /* ask for file name to reboot from */
+ { RB_SINGLE, "RB_SINGLE" }, /* reboot to single user only */
+ { RB_NOSYNC, "RB_NOSYNC" }, /* dont sync before reboot */
+ { RB_HALT, "RB_HALT" }, /* don't reboot, just halt */
+ { RB_INITNAME, "RB_INITNAME" }, /* name given for /etc/init */
+ { RB_NOBOOTRC, "RB_NOBOOTRC" }, /* don't run /etc/rc.boot */
+ { RB_DEBUG, "RB_DEBUG" }, /* being run under debugger */
+ { RB_DUMP, "RB_DUMP" }, /* dump system core */
+ { RB_WRITABLE, "RB_WRITABLE" }, /* mount root read/write */
+ { RB_STRING, "RB_STRING" }, /* pass boot args to prom monitor */
+ { 0, NULL },
+};
+
+int
+sys_reboot(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printflags(bootflags, tcp->u_arg[0], "RB_???");
+ if (tcp->u_arg[0] & RB_STRING) {
+ printstr(tcp, tcp->u_arg[1], -1);
+ }
+ }
+ return 0;
+}
+
+int
+sys_sysacct(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printstr(tcp, tcp->u_arg[0], -1);
+ }
+ return 0;
+}
+
+int
+sys_swapon(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printstr(tcp, tcp->u_arg[0], -1);
+ }
+ return 0;
+}
+
+int
+sys_nfs_svc(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printsock(tcp, tcp->u_arg[0]);
+ }
+ return 0;
+}
+
+static const struct xlat mountflags[] = {
+ { M_RDONLY, "M_RDONLY" },
+ { M_NOSUID, "M_NOSUID" },
+ { M_NEWTYPE, "M_NEWTYPE" },
+ { M_GRPID, "M_GRPID" },
+#ifdef M_REMOUNT
+ { M_REMOUNT, "M_REMOUNT" },
+#endif
+#ifdef M_NOSUB
+ { M_NOSUB, "M_NOSUB" },
+#endif
+#ifdef M_MULTI
+ { M_MULTI, "M_MULTI" },
+#endif
+#ifdef M_SYS5
+ { M_SYS5, "M_SYS5" },
+#endif
+ { 0, NULL },
+};
+
+static const struct xlat nfsflags[] = {
+ { NFSMNT_SOFT, "NFSMNT_SOFT" },
+ { NFSMNT_WSIZE, "NFSMNT_WSIZE" },
+ { NFSMNT_RSIZE, "NFSMNT_RSIZE" },
+ { NFSMNT_TIMEO, "NFSMNT_TIMEO" },
+ { NFSMNT_RETRANS, "NFSMNT_RETRANS" },
+ { NFSMNT_HOSTNAME, "NFSMNT_HOSTNAME" },
+ { NFSMNT_INT, "NFSMNT_INT" },
+ { NFSMNT_NOAC, "NFSMNT_NOAC" },
+ { NFSMNT_ACREGMIN, "NFSMNT_ACREGMIN" },
+ { NFSMNT_ACREGMAX, "NFSMNT_ACREGMAX" },
+ { NFSMNT_ACDIRMIN, "NFSMNT_ACDIRMIN" },
+ { NFSMNT_ACDIRMAX, "NFSMNT_ACDIRMAX" },
+#ifdef NFSMNT_SECURE
+ { NFSMNT_SECURE, "NFSMNT_SECURE" },
+#endif
+#ifdef NFSMNT_NOCTO
+ { NFSMNT_NOCTO, "NFSMNT_NOCTO" },
+#endif
+#ifdef NFSMNT_POSIX
+ { NFSMNT_POSIX, "NFSMNT_POSIX" },
+#endif
+ { 0, NULL },
+};
+
+int
+sys_mount(tcp)
+struct tcb *tcp;
+{
+ char type[4];
+
+ if (entering(tcp)) {
+ if (!(tcp->u_arg[2] & M_NEWTYPE) || umovestr(tcp,
+ tcp->u_arg[0], sizeof type, type) < 0) {
+ tprintf("OLDTYPE:#%lx", tcp->u_arg[0]);
+ } else {
+ tprintf("\"%s\", ", type);
+ }
+ printstr(tcp, tcp->u_arg[1], -1);
+ tprintf(", ");
+ printflags(mountflags, tcp->u_arg[2] & ~M_NEWTYPE, "M_???");
+ tprintf(", ");
+
+ if (strcmp(type, "4.2") == 0) {
+ struct ufs_args a;
+ if (umove(tcp, tcp->u_arg[3], &a) < 0)
+ return 0;
+ printstr(tcp, (int)a.fspec, -1);
+ } else if (strcmp(type, "lo") == 0) {
+ struct lo_args a;
+ if (umove(tcp, tcp->u_arg[3], &a) < 0)
+ return 0;
+ printstr(tcp, (int)a.fsdir, -1);
+ } else if (strcmp(type, "nfs") == 0) {
+ struct nfs_args a;
+ if (umove(tcp, tcp->u_arg[3], &a) < 0)
+ return 0;
+ tprintf("[");
+ printsock(tcp, (int) a.addr);
+ tprintf(", ");
+ printflags(nfsflags, a.flags, "NFSMNT_???");
+ tprintf(", ws:%u,rs:%u,to:%u,re:%u,",
+ a.wsize, a.rsize, a.timeo, a.retrans);
+ if (a.flags & NFSMNT_HOSTNAME && a.hostname)
+ printstr(tcp, (int)a.hostname, -1);
+ else
+ tprintf("%#lx", (unsigned long) a.hostname);
+ tprintf(",reg-min:%u,max:%u,dir-min:%u,max:%u,",
+ a.acregmin, a.acregmax, a.acdirmin, a.acdirmax);
+ if ((a.flags & NFSMNT_SECURE) && a.netname)
+ printstr(tcp, (int) a.netname, -1);
+ else
+ tprintf("%#lx", (unsigned long) a.netname);
+ tprintf("]");
+ } else if (strcmp(type, "rfs") == 0) {
+ struct rfs_args a;
+ struct token t;
+ if (umove(tcp, tcp->u_arg[3], &a) < 0)
+ return 0;
+ tprintf("[");
+ printstr(tcp, (int)a.rmtfs, -1);
+ if (umove(tcp, (int)a.token, &t) < 0)
+ return 0;
+ tprintf(", %u, %s]", t.t_id, t.t_uname);
+ } else if (strcmp(type, "pcfs") == 0) {
+ struct pc_args a;
+ if (umove(tcp, tcp->u_arg[3], &a) < 0)
+ return 0;
+ printstr(tcp, (int)a.fspec, -1);
+ }
+ }
+ return 0;
+}
+
+int
+sys_unmount(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printstr(tcp, tcp->u_arg[0], -1);
+ }
+ return 0;
+}
+
+int
+sys_umount(tcp)
+struct tcb *tcp;
+{
+ return sys_unmount(tcp);
+}
+
+int
+sys_auditsys(tcp)
+struct tcb *tcp;
+{
+ /* XXX - no information available */
+ return printargs(tcp);
+}
+
+static const struct xlat ex_auth_flags[] = {
+ { AUTH_UNIX, "AUTH_UNIX" },
+ { AUTH_DES, "AUTH_DES" },
+ { 0, NULL },
+};
+
+int
+sys_exportfs(tcp)
+struct tcb *tcp;
+{
+ struct export e;
+ int i;
+
+ if (entering(tcp)) {
+ printstr(tcp, tcp->u_arg[0], -1);
+ if (umove(tcp, tcp->u_arg[1], &e) < 0) {
+ tprintf("%#lx", tcp->u_arg[1]);
+ return 0;
+ }
+ tprintf("{fl:%u, anon:%u, ", e.ex_flags, e.ex_anon);
+ printxval(ex_auth_flags, e.ex_auth, "AUTH_???");
+ tprintf(", roots:[");
+ if (e.ex_auth == AUTH_UNIX) {
+ for (i=0; i<e.ex_u.exunix.rootaddrs.naddrs; i++) {
+ printsock(tcp,
+ (int)&e.ex_u.exunix.rootaddrs.addrvec[i]);
+ }
+ tprintf("], writers:[");
+ for (i=0; i<e.ex_writeaddrs.naddrs; i++) {
+ printsock(tcp,
+ (int)&e.ex_writeaddrs.addrvec[i]);
+ }
+ tprintf("]");
+ } else {
+ for (i=0; i<e.ex_u.exdes.nnames; i++) {
+ printsock(tcp,
+ (int)&e.ex_u.exdes.rootnames[i]);
+ tprintf(", ");
+ }
+ tprintf("], window:%u", e.ex_u.exdes.window);
+ }
+ tprintf("}");
+ }
+ return 0;
+}
+
+static const struct xlat sysconflimits[] = {
+#ifdef _SC_ARG_MAX
+ { _SC_ARG_MAX, "_SC_ARG_MAX" }, /* space for argv & envp */
+#endif
+#ifdef _SC_CHILD_MAX
+ { _SC_CHILD_MAX, "_SC_CHILD_MAX" }, /* maximum children per process??? */
+#endif
+#ifdef _SC_CLK_TCK
+ { _SC_CLK_TCK, "_SC_CLK_TCK" }, /* clock ticks/sec */
+#endif
+#ifdef _SC_NGROUPS_MAX
+ { _SC_NGROUPS_MAX, "_SC_NGROUPS_MAX" }, /* number of groups if multple supp. */
+#endif
+#ifdef _SC_OPEN_MAX
+ { _SC_OPEN_MAX, "_SC_OPEN_MAX" }, /* max open files per process */
+#endif
+#ifdef _SC_JOB_CONTROL
+ { _SC_JOB_CONTROL, "_SC_JOB_CONTROL" }, /* do we have job control */
+#endif
+#ifdef _SC_SAVED_IDS
+ { _SC_SAVED_IDS, "_SC_SAVED_IDS" }, /* do we have saved uid/gids */
+#endif
+#ifdef _SC_VERSION
+ { _SC_VERSION, "_SC_VERSION" }, /* POSIX version supported */
+#endif
+ { 0, NULL },
+};
+
+int
+sys_sysconf(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printxval(sysconflimits, tcp->u_arg[0], "_SC_???");
+ }
+ return 0;
+}
+
+#endif /* SUNOS4 */
+
+#if defined(SUNOS4) || defined(FREEBSD)
+static const struct xlat pathconflimits[] = {
+#ifdef _PC_LINK_MAX
+ { _PC_LINK_MAX, "_PC_LINK_MAX" }, /* max links to file/dir */
+#endif
+#ifdef _PC_MAX_CANON
+ { _PC_MAX_CANON, "_PC_MAX_CANON" }, /* max line length */
+#endif
+#ifdef _PC_MAX_INPUT
+ { _PC_MAX_INPUT, "_PC_MAX_INPUT" }, /* max "packet" to a tty device */
+#endif
+#ifdef _PC_NAME_MAX
+ { _PC_NAME_MAX, "_PC_NAME_MAX" }, /* max pathname component length */
+#endif
+#ifdef _PC_PATH_MAX
+ { _PC_PATH_MAX, "_PC_PATH_MAX" }, /* max pathname length */
+#endif
+#ifdef _PC_PIPE_BUF
+ { _PC_PIPE_BUF, "_PC_PIPE_BUF" }, /* size of a pipe */
+#endif
+#ifdef _PC_CHOWN_RESTRICTED
+ { _PC_CHOWN_RESTRICTED, "_PC_CHOWN_RESTRICTED" }, /* can we give away files */
+#endif
+#ifdef _PC_NO_TRUNC
+ { _PC_NO_TRUNC, "_PC_NO_TRUNC" }, /* trunc or error on >NAME_MAX */
+#endif
+#ifdef _PC_VDISABLE
+ { _PC_VDISABLE, "_PC_VDISABLE" }, /* best char to shut off tty c_cc */
+#endif
+ { 0, NULL },
+};
+
+
+int
+sys_pathconf(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printstr(tcp, tcp->u_arg[0], -1);
+ tprintf(", ");
+ printxval(pathconflimits, tcp->u_arg[1], "_PC_???");
+ }
+ return 0;
+}
+
+int
+sys_fpathconf(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%lu, ", tcp->u_arg[0]);
+ printxval(pathconflimits, tcp->u_arg[1], "_PC_???");
+ }
+ return 0;
+}
+
+#endif /* SUNOS4 || FREEBSD */
+
+#ifdef SVR4
+
+#ifdef HAVE_SYS_SYSCONFIG_H
+#include <sys/sysconfig.h>
+#endif /* HAVE_SYS_SYSCONFIG_H */
+
+#include <sys/mount.h>
+#include <sys/systeminfo.h>
+#include <sys/utsname.h>
+
+static const struct xlat sysconfig_options[] = {
+#ifdef _CONFIG_NGROUPS
+ { _CONFIG_NGROUPS, "_CONFIG_NGROUPS" },
+#endif
+#ifdef _CONFIG_CHILD_MAX
+ { _CONFIG_CHILD_MAX, "_CONFIG_CHILD_MAX" },
+#endif
+#ifdef _CONFIG_OPEN_FILES
+ { _CONFIG_OPEN_FILES, "_CONFIG_OPEN_FILES" },
+#endif
+#ifdef _CONFIG_POSIX_VER
+ { _CONFIG_POSIX_VER, "_CONFIG_POSIX_VER" },
+#endif
+#ifdef _CONFIG_PAGESIZE
+ { _CONFIG_PAGESIZE, "_CONFIG_PAGESIZE" },
+#endif
+#ifdef _CONFIG_CLK_TCK
+ { _CONFIG_CLK_TCK, "_CONFIG_CLK_TCK" },
+#endif
+#ifdef _CONFIG_XOPEN_VER
+ { _CONFIG_XOPEN_VER, "_CONFIG_XOPEN_VER" },
+#endif
+#ifdef _CONFIG_PROF_TCK
+ { _CONFIG_PROF_TCK, "_CONFIG_PROF_TCK" },
+#endif
+#ifdef _CONFIG_NPROC_CONF
+ { _CONFIG_NPROC_CONF, "_CONFIG_NPROC_CONF" },
+#endif
+#ifdef _CONFIG_NPROC_ONLN
+ { _CONFIG_NPROC_ONLN, "_CONFIG_NPROC_ONLN" },
+#endif
+#ifdef _CONFIG_AIO_LISTIO_MAX
+ { _CONFIG_AIO_LISTIO_MAX, "_CONFIG_AIO_LISTIO_MAX" },
+#endif
+#ifdef _CONFIG_AIO_MAX
+ { _CONFIG_AIO_MAX, "_CONFIG_AIO_MAX" },
+#endif
+#ifdef _CONFIG_AIO_PRIO_DELTA_MAX
+ { _CONFIG_AIO_PRIO_DELTA_MAX, "_CONFIG_AIO_PRIO_DELTA_MAX" },
+#endif
+#ifdef _CONFIG_CONFIG_DELAYTIMER_MAX
+ { _CONFIG_DELAYTIMER_MAX, "_CONFIG_DELAYTIMER_MAX" },
+#endif
+#ifdef _CONFIG_MQ_OPEN_MAX
+ { _CONFIG_MQ_OPEN_MAX, "_CONFIG_MQ_OPEN_MAX" },
+#endif
+#ifdef _CONFIG_MQ_PRIO_MAX
+ { _CONFIG_MQ_PRIO_MAX, "_CONFIG_MQ_PRIO_MAX" },
+#endif
+#ifdef _CONFIG_RTSIG_MAX
+ { _CONFIG_RTSIG_MAX, "_CONFIG_RTSIG_MAX" },
+#endif
+#ifdef _CONFIG_SEM_NSEMS_MAX
+ { _CONFIG_SEM_NSEMS_MAX, "_CONFIG_SEM_NSEMS_MAX" },
+#endif
+#ifdef _CONFIG_SEM_VALUE_MAX
+ { _CONFIG_SEM_VALUE_MAX, "_CONFIG_SEM_VALUE_MAX" },
+#endif
+#ifdef _CONFIG_SIGQUEUE_MAX
+ { _CONFIG_SIGQUEUE_MAX, "_CONFIG_SIGQUEUE_MAX" },
+#endif
+#ifdef _CONFIG_SIGRT_MIN
+ { _CONFIG_SIGRT_MIN, "_CONFIG_SIGRT_MIN" },
+#endif
+#ifdef _CONFIG_SIGRT_MAX
+ { _CONFIG_SIGRT_MAX, "_CONFIG_SIGRT_MAX" },
+#endif
+#ifdef _CONFIG_TIMER_MAX
+ { _CONFIG_TIMER_MAX, "_CONFIG_TIMER_MAX" },
+#endif
+#ifdef _CONFIG_CONFIG_PHYS_PAGES
+ { _CONFIG_PHYS_PAGES, "_CONFIG_PHYS_PAGES" },
+#endif
+#ifdef _CONFIG_AVPHYS_PAGES
+ { _CONFIG_AVPHYS_PAGES, "_CONFIG_AVPHYS_PAGES" },
+#endif
+ { 0, NULL },
+};
+
+int
+sys_sysconfig(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp))
+ printxval(sysconfig_options, tcp->u_arg[0], "_CONFIG_???");
+ return 0;
+}
+
+static const struct xlat sysinfo_options[] = {
+ { SI_SYSNAME, "SI_SYSNAME" },
+ { SI_HOSTNAME, "SI_HOSTNAME" },
+ { SI_RELEASE, "SI_RELEASE" },
+ { SI_VERSION, "SI_VERSION" },
+ { SI_MACHINE, "SI_MACHINE" },
+ { SI_ARCHITECTURE, "SI_ARCHITECTURE" },
+ { SI_HW_SERIAL, "SI_HW_SERIAL" },
+ { SI_HW_PROVIDER, "SI_HW_PROVIDER" },
+ { SI_SRPC_DOMAIN, "SI_SRPC_DOMAIN" },
+#ifdef SI_SET_HOSTNAME
+ { SI_SET_HOSTNAME, "SI_SET_HOSTNAME" },
+#endif
+#ifdef SI_SET_SRPC_DOMAIN
+ { SI_SET_SRPC_DOMAIN, "SI_SET_SRPC_DOMAIN" },
+#endif
+#ifdef SI_SET_KERB_REALM
+ { SI_SET_KERB_REALM, "SI_SET_KERB_REALM" },
+#endif
+#ifdef SI_KERB_REALM
+ { SI_KERB_REALM, "SI_KERB_REALM" },
+#endif
+ { 0, NULL },
+};
+
+int
+sys_sysinfo(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printxval(sysinfo_options, tcp->u_arg[0], "SI_???");
+ tprintf(", ");
+ }
+ else {
+ /* Technically some calls write values. So what. */
+ if (syserror(tcp))
+ tprintf("%#lx", tcp->u_arg[1]);
+ else
+ printpath(tcp, tcp->u_arg[1]);
+ tprintf(", %lu", tcp->u_arg[2]);
+ }
+ return 0;
+}
+
+#ifdef MIPS
+
+#include <sys/syssgi.h>
+
+static const struct xlat syssgi_options[] = {
+ { SGI_SYSID, "SGI_SYSID" },
+#ifdef SGI_RDUBLK
+ { SGI_RDUBLK, "SGI_RDUBLK" },
+#endif
+ { SGI_TUNE, "SGI_TUNE" },
+ { SGI_IDBG, "SGI_IDBG" },
+ { SGI_INVENT, "SGI_INVENT" },
+ { SGI_RDNAME, "SGI_RDNAME" },
+ { SGI_SETLED, "SGI_SETLED" },
+ { SGI_SETNVRAM, "SGI_SETNVRAM" },
+ { SGI_GETNVRAM, "SGI_GETNVRAM" },
+ { SGI_QUERY_FTIMER, "SGI_QUERY_FTIMER" },
+ { SGI_QUERY_CYCLECNTR, "SGI_QUERY_CYCLECNTR" },
+ { SGI_PROCSZ, "SGI_PROCSZ" },
+ { SGI_SIGACTION, "SGI_SIGACTION" },
+ { SGI_SIGPENDING, "SGI_SIGPENDING" },
+ { SGI_SIGPROCMASK, "SGI_SIGPROCMASK" },
+ { SGI_SIGSUSPEND, "SGI_SIGSUSPEND" },
+ { SGI_SETSID, "SGI_SETSID" },
+ { SGI_SETPGID, "SGI_SETPGID" },
+ { SGI_SYSCONF, "SGI_SYSCONF" },
+ { SGI_WAIT4, "SGI_WAIT4" },
+ { SGI_PATHCONF, "SGI_PATHCONF" },
+ { SGI_READB, "SGI_READB" },
+ { SGI_WRITEB, "SGI_WRITEB" },
+ { SGI_SETGROUPS, "SGI_SETGROUPS" },
+ { SGI_GETGROUPS, "SGI_GETGROUPS" },
+ { SGI_SETTIMEOFDAY, "SGI_SETTIMEOFDAY" },
+ { SGI_SETTIMETRIM, "SGI_SETTIMETRIM" },
+ { SGI_GETTIMETRIM, "SGI_GETTIMETRIM" },
+ { SGI_SPROFIL, "SGI_SPROFIL" },
+ { SGI_RUSAGE, "SGI_RUSAGE" },
+ { SGI_SIGSTACK, "SGI_SIGSTACK" },
+ { SGI_SIGSTATUS, "SGI_SIGSTATUS" },
+ { SGI_NETPROC, "SGI_NETPROC" },
+ { SGI_SIGALTSTACK, "SGI_SIGALTSTACK" },
+ { SGI_BDFLUSHCNT, "SGI_BDFLUSHCNT" },
+ { SGI_SSYNC, "SGI_SSYNC" },
+ { SGI_NFSCNVT, "SGI_NFSCNVT" },
+ { SGI_GETPGID, "SGI_GETPGID" },
+ { SGI_GETSID, "SGI_GETSID" },
+ { SGI_IOPROBE, "SGI_IOPROBE" },
+ { SGI_CONFIG, "SGI_CONFIG" },
+ { SGI_ELFMAP, "SGI_ELFMAP" },
+ { SGI_MCONFIG, "SGI_MCONFIG" },
+ { SGI_GETPLABEL, "SGI_GETPLABEL" },
+ { SGI_SETPLABEL, "SGI_SETPLABEL" },
+ { SGI_GETLABEL, "SGI_GETLABEL" },
+ { SGI_SETLABEL, "SGI_SETLABEL" },
+ { SGI_SATREAD, "SGI_SATREAD" },
+ { SGI_SATWRITE, "SGI_SATWRITE" },
+ { SGI_SATCTL, "SGI_SATCTL" },
+ { SGI_LOADATTR, "SGI_LOADATTR" },
+ { SGI_UNLOADATTR, "SGI_UNLOADATTR" },
+#ifdef SGI_RECVLMSG
+ { SGI_RECVLMSG, "SGI_RECVLMSG" },
+#endif
+ { SGI_PLANGMOUNT, "SGI_PLANGMOUNT" },
+ { SGI_GETPSOACL, "SGI_GETPSOACL" },
+ { SGI_SETPSOACL, "SGI_SETPSOACL" },
+#ifdef SGI_EAG_GET_ATTR
+ { SGI_EAG_GET_ATTR, "SGI_EAG_GET_ATTR" },
+#endif
+#ifdef SGI_EAG_SET_ATTR
+ { SGI_EAG_SET_ATTR, "SGI_EAG_SET_ATTR" },
+#endif
+#ifdef SGI_EAG_GET_PROCATTR
+ { SGI_EAG_GET_PROCATTR, "SGI_EAG_GET_PROCATTR" },
+#endif
+#ifdef SGI_EAG_SET_PROCATTR
+ { SGI_EAG_SET_PROCATTR, "SGI_EAG_SET_PROCATTR" },
+#endif
+#ifdef SGI_FREVOKE
+ { SGI_FREVOKE, "SGI_FREVOKE" },
+#endif
+#ifdef SGI_SBE_GET_INFO
+ { SGI_SBE_GET_INFO, "SGI_SBE_GET_INFO" },
+#endif
+#ifdef SGI_SBE_CLR_INFO
+ { SGI_SBE_CLR_INFO, "SGI_SBE_CLR_INFO" },
+#endif
+ { SGI_RMI_FIXECC, "SGI_RMI_FIXECC" },
+ { SGI_R4K_CERRS, "SGI_R4K_CERRS" },
+ { SGI_GET_EVCONF, "SGI_GET_EVCONF" },
+ { SGI_MPCWAROFF, "SGI_MPCWAROFF" },
+ { SGI_SET_AUTOPWRON, "SGI_SET_AUTOPWRON" },
+ { SGI_SPIPE, "SGI_SPIPE" },
+ { SGI_SYMTAB, "SGI_SYMTAB" },
+#ifdef SGI_SET_FPDEBUG
+ { SGI_SET_FPDEBUG, "SGI_SET_FPDEBUG" },
+#endif
+#ifdef SGI_SET_FP_PRECISE
+ { SGI_SET_FP_PRECISE, "SGI_SET_FP_PRECISE" },
+#endif
+ { SGI_TOSSTSAVE, "SGI_TOSSTSAVE" },
+ { SGI_FDHI, "SGI_FDHI" },
+#ifdef SGI_SET_CONFIG_SMM
+ { SGI_SET_CONFIG_SMM, "SGI_SET_CONFIG_SMM" },
+#endif
+#ifdef SGI_SET_FP_PRESERVE
+ { SGI_SET_FP_PRESERVE, "SGI_SET_FP_PRESERVE" },
+#endif
+ { SGI_MINRSS, "SGI_MINRSS" },
+#ifdef SGI_GRIO
+ { SGI_GRIO, "SGI_GRIO" },
+#endif
+#ifdef SGI_XLV_SET_TAB
+ { SGI_XLV_SET_TAB, "SGI_XLV_SET_TAB" },
+#endif
+#ifdef SGI_XLV_GET_TAB
+ { SGI_XLV_GET_TAB, "SGI_XLV_GET_TAB" },
+#endif
+#ifdef SGI_GET_FP_PRECISE
+ { SGI_GET_FP_PRECISE, "SGI_GET_FP_PRECISE" },
+#endif
+#ifdef SGI_GET_CONFIG_SMM
+ { SGI_GET_CONFIG_SMM, "SGI_GET_CONFIG_SMM" },
+#endif
+#ifdef SGI_FP_IMPRECISE_SUPP
+ { SGI_FP_IMPRECISE_SUPP,"SGI_FP_IMPRECISE_SUPP" },
+#endif
+#ifdef SGI_CONFIG_NSMM_SUPP
+ { SGI_CONFIG_NSMM_SUPP, "SGI_CONFIG_NSMM_SUPP" },
+#endif
+#ifdef SGI_RT_TSTAMP_CREATE
+ { SGI_RT_TSTAMP_CREATE, "SGI_RT_TSTAMP_CREATE" },
+#endif
+#ifdef SGI_RT_TSTAMP_DELETE
+ { SGI_RT_TSTAMP_DELETE, "SGI_RT_TSTAMP_DELETE" },
+#endif
+#ifdef SGI_RT_TSTAMP_START
+ { SGI_RT_TSTAMP_START, "SGI_RT_TSTAMP_START" },
+#endif
+#ifdef SGI_RT_TSTAMP_STOP
+ { SGI_RT_TSTAMP_STOP, "SGI_RT_TSTAMP_STOP" },
+#endif
+#ifdef SGI_RT_TSTAMP_ADDR
+ { SGI_RT_TSTAMP_ADDR, "SGI_RT_TSTAMP_ADDR" },
+#endif
+#ifdef SGI_RT_TSTAMP_MASK
+ { SGI_RT_TSTAMP_MASK, "SGI_RT_TSTAMP_MASK" },
+#endif
+#ifdef SGI_RT_TSTAMP_EOB_MODE
+ { SGI_RT_TSTAMP_EOB_MODE,"SGI_RT_TSTAMP_EOB_MODE"},
+#endif
+#ifdef SGI_USE_FP_BCOPY
+ { SGI_USE_FP_BCOPY, "SGI_USE_FP_BCOPY" },
+#endif
+#ifdef SGI_GET_UST
+ { SGI_GET_UST, "SGI_GET_UST" },
+#endif
+#ifdef SGI_SPECULATIVE_EXEC
+ { SGI_SPECULATIVE_EXEC, "SGI_SPECULATIVE_EXEC" },
+#endif
+#ifdef SGI_XLV_NEXT_RQST
+ { SGI_XLV_NEXT_RQST, "SGI_XLV_NEXT_RQST" },
+#endif
+#ifdef SGI_XLV_ATTR_CURSOR
+ { SGI_XLV_ATTR_CURSOR, "SGI_XLV_ATTR_CURSOR" },
+#endif
+#ifdef SGI_XLV_ATTR_GET
+ { SGI_XLV_ATTR_GET, "SGI_XLV_ATTR_GET" },
+#endif
+#ifdef SGI_XLV_ATTR_SET
+ { SGI_XLV_ATTR_SET, "SGI_XLV_ATTR_SET" },
+#endif
+#ifdef SGI_BTOOLSIZE
+ { SGI_BTOOLSIZE, "SGI_BTOOLSIZE" },
+#endif
+#ifdef SGI_BTOOLGET
+ { SGI_BTOOLGET, "SGI_BTOOLGET" },
+#endif
+#ifdef SGI_BTOOLREINIT
+ { SGI_BTOOLREINIT, "SGI_BTOOLREINIT" },
+#endif
+#ifdef SGI_CREATE_UUID
+ { SGI_CREATE_UUID, "SGI_CREATE_UUID" },
+#endif
+#ifdef SGI_NOFPE
+ { SGI_NOFPE, "SGI_NOFPE" },
+#endif
+#ifdef SGI_OLD_SOFTFP
+ { SGI_OLD_SOFTFP, "SGI_OLD_SOFTFP" },
+#endif
+#ifdef SGI_FS_INUMBERS
+ { SGI_FS_INUMBERS, "SGI_FS_INUMBERS" },
+#endif
+#ifdef SGI_FS_BULKSTAT
+ { SGI_FS_BULKSTAT, "SGI_FS_BULKSTAT" },
+#endif
+#ifdef SGI_RT_TSTAMP_WAIT
+ { SGI_RT_TSTAMP_WAIT, "SGI_RT_TSTAMP_WAIT" },
+#endif
+#ifdef SGI_RT_TSTAMP_UPDATE
+ { SGI_RT_TSTAMP_UPDATE, "SGI_RT_TSTAMP_UPDATE" },
+#endif
+#ifdef SGI_PATH_TO_HANDLE
+ { SGI_PATH_TO_HANDLE, "SGI_PATH_TO_HANDLE" },
+#endif
+#ifdef SGI_PATH_TO_FSHANDLE
+ { SGI_PATH_TO_FSHANDLE, "SGI_PATH_TO_FSHANDLE" },
+#endif
+#ifdef SGI_FD_TO_HANDLE
+ { SGI_FD_TO_HANDLE, "SGI_FD_TO_HANDLE" },
+#endif
+#ifdef SGI_OPEN_BY_HANDLE
+ { SGI_OPEN_BY_HANDLE, "SGI_OPEN_BY_HANDLE" },
+#endif
+#ifdef SGI_READLINK_BY_HANDLE
+ { SGI_READLINK_BY_HANDLE,"SGI_READLINK_BY_HANDLE"},
+#endif
+#ifdef SGI_READ_DANGID
+ { SGI_READ_DANGID, "SGI_READ_DANGID" },
+#endif
+#ifdef SGI_CONST
+ { SGI_CONST, "SGI_CONST" },
+#endif
+#ifdef SGI_XFS_FSOPERATIONS
+ { SGI_XFS_FSOPERATIONS, "SGI_XFS_FSOPERATIONS" },
+#endif
+#ifdef SGI_SETASH
+ { SGI_SETASH, "SGI_SETASH" },
+#endif
+#ifdef SGI_GETASH
+ { SGI_GETASH, "SGI_GETASH" },
+#endif
+#ifdef SGI_SETPRID
+ { SGI_SETPRID, "SGI_SETPRID" },
+#endif
+#ifdef SGI_GETPRID
+ { SGI_GETPRID, "SGI_GETPRID" },
+#endif
+#ifdef SGI_SETSPINFO
+ { SGI_SETSPINFO, "SGI_SETSPINFO" },
+#endif
+#ifdef SGI_GETSPINFO
+ { SGI_GETSPINFO, "SGI_GETSPINFO" },
+#endif
+#ifdef SGI_SHAREII
+ { SGI_SHAREII, "SGI_SHAREII" },
+#endif
+#ifdef SGI_NEWARRAYSESS
+ { SGI_NEWARRAYSESS, "SGI_NEWARRAYSESS" },
+#endif
+#ifdef SGI_GETDFLTPRID
+ { SGI_GETDFLTPRID, "SGI_GETDFLTPRID" },
+#endif
+#ifdef SGI_SET_DISMISSED_EXC_CNT
+ { SGI_SET_DISMISSED_EXC_CNT,"SGI_SET_DISMISSED_EXC_CNT" },
+#endif
+#ifdef SGI_GET_DISMISSED_EXC_CNT
+ { SGI_GET_DISMISSED_EXC_CNT,"SGI_GET_DISMISSED_EXC_CNT" },
+#endif
+#ifdef SGI_CYCLECNTR_SIZE
+ { SGI_CYCLECNTR_SIZE, "SGI_CYCLECNTR_SIZE" },
+#endif
+#ifdef SGI_QUERY_FASTTIMER
+ { SGI_QUERY_FASTTIMER, "SGI_QUERY_FASTTIMER" },
+#endif
+#ifdef SGI_PIDSINASH
+ { SGI_PIDSINASH, "SGI_PIDSINASH" },
+#endif
+#ifdef SGI_ULI
+ { SGI_ULI, "SGI_ULI" },
+#endif
+#ifdef SGI_LPG_SHMGET
+ { SGI_LPG_SHMGET, "SGI_LPG_SHMGET" },
+#endif
+#ifdef SGI_LPG_MAP
+ { SGI_LPG_MAP, "SGI_LPG_MAP" },
+#endif
+#ifdef SGI_CACHEFS_SYS
+ { SGI_CACHEFS_SYS, "SGI_CACHEFS_SYS" },
+#endif
+#ifdef SGI_NFSNOTIFY
+ { SGI_NFSNOTIFY, "SGI_NFSNOTIFY" },
+#endif
+#ifdef SGI_LOCKDSYS
+ { SGI_LOCKDSYS, "SGI_LOCKDSYS" },
+#endif
+#ifdef SGI_EVENTCTR
+ { SGI_EVENTCTR, "SGI_EVENTCTR" },
+#endif
+#ifdef SGI_GETPRUSAGE
+ { SGI_GETPRUSAGE, "SGI_GETPRUSAGE" },
+#endif
+#ifdef SGI_PROCMASK_LOCATION
+ { SGI_PROCMASK_LOCATION,"SGI_PROCMASK_LOCATION" },
+#endif
+#ifdef SGI_UNUSED
+ { SGI_UNUSED, "SGI_UNUSED" },
+#endif
+#ifdef SGI_CKPT_SYS
+ { SGI_CKPT_SYS, "SGI_CKPT_SYS" },
+#endif
+#ifdef SGI_CKPT_SYS
+ { SGI_CKPT_SYS, "SGI_CKPT_SYS" },
+#endif
+#ifdef SGI_GETGRPPID
+ { SGI_GETGRPPID, "SGI_GETGRPPID" },
+#endif
+#ifdef SGI_GETSESPID
+ { SGI_GETSESPID, "SGI_GETSESPID" },
+#endif
+#ifdef SGI_ENUMASHS
+ { SGI_ENUMASHS, "SGI_ENUMASHS" },
+#endif
+#ifdef SGI_SETASMACHID
+ { SGI_SETASMACHID, "SGI_SETASMACHID" },
+#endif
+#ifdef SGI_GETASMACHID
+ { SGI_GETASMACHID, "SGI_GETASMACHID" },
+#endif
+#ifdef SGI_GETARSESS
+ { SGI_GETARSESS, "SGI_GETARSESS" },
+#endif
+#ifdef SGI_JOINARRAYSESS
+ { SGI_JOINARRAYSESS, "SGI_JOINARRAYSESS" },
+#endif
+#ifdef SGI_SPROC_KILL
+ { SGI_SPROC_KILL, "SGI_SPROC_KILL" },
+#endif
+#ifdef SGI_DBA_CONFIG
+ { SGI_DBA_CONFIG, "SGI_DBA_CONFIG" },
+#endif
+#ifdef SGI_RELEASE_NAME
+ { SGI_RELEASE_NAME, "SGI_RELEASE_NAME" },
+#endif
+#ifdef SGI_SYNCH_CACHE_HANDLER
+ { SGI_SYNCH_CACHE_HANDLER,"SGI_SYNCH_CACHE_HANDLER"},
+#endif
+#ifdef SGI_SWASH_INIT
+ { SGI_SWASH_INIT, "SGI_SWASH_INIT" },
+#endif
+#ifdef SGI_NUMA_MIGR_PAGE
+ { SGI_NUMA_MIGR_PAGE, "SGI_NUMA_MIGR_PAGE" },
+#endif
+#ifdef SGI_NUMA_MIGR_PAGE_ALT
+ { SGI_NUMA_MIGR_PAGE_ALT,"SGI_NUMA_MIGR_PAGE_ALT"},
+#endif
+#ifdef SGI_KAIO_USERINIT
+ { SGI_KAIO_USERINIT, "SGI_KAIO_USERINIT" },
+#endif
+#ifdef SGI_KAIO_READ
+ { SGI_KAIO_READ, "SGI_KAIO_READ" },
+#endif
+#ifdef SGI_KAIO_WRITE
+ { SGI_KAIO_WRITE, "SGI_KAIO_WRITE" },
+#endif
+#ifdef SGI_KAIO_SUSPEND
+ { SGI_KAIO_SUSPEND, "SGI_KAIO_SUSPEND" },
+#endif
+#ifdef SGI_KAIO_STATS
+ { SGI_KAIO_STATS, "SGI_KAIO_STATS" },
+#endif
+#ifdef SGI_INITIAL_PT_SPROC
+ { SGI_INITIAL_PT_SPROC, "SGI_INITIAL_PT_SPROC" },
+#endif
+ { 0, NULL },
+};
+
+int
+sys_syssgi(tcp)
+struct tcb *tcp;
+{
+ int i;
+
+ if (entering(tcp)) {
+ printxval(syssgi_options, tcp->u_arg[0], "SGI_???");
+ switch (tcp->u_arg[0]) {
+ default:
+ for (i = 1; i < tcp->u_nargs; i++)
+ tprintf(", %#lx", tcp->u_arg[i]);
+ break;
+ }
+ }
+ return 0;
+}
+
+#include <sys/types.h>
+#include <rpc/rpc.h>
+struct cred;
+struct uio;
+#include <sys/fsid.h>
+#include <sys/vnode.h>
+#include <sys/fs/nfs.h>
+#include <sys/fs/nfs_clnt.h>
+
+static const struct xlat mount_flags[] = {
+ { MS_RDONLY, "MS_RDONLY" },
+ { MS_FSS, "MS_FSS" },
+ { MS_DATA, "MS_DATA" },
+ { MS_NOSUID, "MS_NOSUID" },
+ { MS_REMOUNT, "MS_REMOUNT" },
+ { MS_NOTRUNC, "MS_NOTRUNC" },
+ { MS_GRPID, "MS_GRPID" },
+ { MS_NODEV, "MS_NODEV" },
+ { MS_BEFORE, "MS_BEFORE" },
+ { MS_AFTER, "MS_AFTER" },
+ { 0, NULL },
+};
+
+static const struct xlat nfs_flags[] = {
+ { NFSMNT_SOFT, "NFSMNT_SOFT" },
+ { NFSMNT_WSIZE, "NFSMNT_WSIZE" },
+ { NFSMNT_RSIZE, "NFSMNT_RSIZE" },
+ { NFSMNT_TIMEO, "NFSMNT_TIMEO" },
+ { NFSMNT_RETRANS, "NFSMNT_RETRANS" },
+ { NFSMNT_HOSTNAME, "NFSMNT_HOSTNAME" },
+#ifdef NFSMNT_NOINT /* IRIX 6 */
+ { NFSMNT_NOINT, "NFSMNT_NOINT" },
+#endif
+#ifdef NFSMNT_INT /* IRIX 5 */
+ { NFSMNT_INT, "NFSMNT_INT" },
+#endif
+ { NFSMNT_NOAC, "NFSMNT_NOAC" },
+ { NFSMNT_ACREGMIN, "NFSMNT_ACREGMIN" },
+ { NFSMNT_ACREGMAX, "NFSMNT_ACREGMAX" },
+ { NFSMNT_ACDIRMIN, "NFSMNT_ACDIRMIN" },
+ { NFSMNT_ACDIRMAX, "NFSMNT_ACDIRMAX" },
+ { NFSMNT_PRIVATE, "NFSMNT_PRIVATE" },
+ { NFSMNT_SYMTTL, "NFSMNT_SYMTTL" },
+ { NFSMNT_LOOPBACK, "NFSMNT_LOOPBACK" },
+ { NFSMNT_BASETYPE, "NFSMNT_BASETYPE" },
+ { NFSMNT_NAMEMAX, "NFSMNT_NAMEMAX" },
+#ifdef NFSMNT_SHORTUID /* IRIX 6 */
+ { NFSMNT_SHORTUID, "NFSMNT_SHORTUID" },
+#endif
+#ifdef NFSMNT_ASYNCNLM /* IRIX 6 */
+ { NFSMNT_ASYNCNLM, "NFSMNT_ASYNCNLM" },
+#endif
+ { 0, NULL },
+};
+
+int
+sys_mount(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ tprintf(", ");
+ printpath(tcp, tcp->u_arg[1]);
+ tprintf(", ");
+ printflags(mount_flags, tcp->u_arg[2], "MS_???");
+ if (tcp->u_arg[2] & (MS_FSS | MS_DATA)) {
+ tprintf(", ");
+ tprintf("%ld", tcp->u_arg[3]);
+ }
+ if (tcp->u_arg[2] & MS_DATA) {
+ int nfs_type = sysfs(GETFSIND, FSID_NFS);
+
+ tprintf(", ");
+ if (tcp->u_arg[3] == nfs_type) {
+ struct nfs_args args;
+ if (umove(tcp, tcp->u_arg[4], &args) < 0)
+ tprintf("%#lx", tcp->u_arg[4]);
+ else {
+ tprintf("addr=");
+ printsock(tcp, (int) args.addr);
+ tprintf(", flags=");
+ printflags(nfs_flags, args.flags, "NFSMNT_???");
+ tprintf(", hostname=");
+ printstr(tcp, (int) args.hostname, -1);
+ tprintf(", ...}");
+ }
+ }
+ else
+ tprintf("%#lx", tcp->u_arg[4]);
+ tprintf(", %ld", tcp->u_arg[5]);
+ }
+ }
+ return 0;
+}
+
+#else /* !MIPS */
+
+#if UNIXWARE
+
+#include <sys/types.h>
+#include <sys/fstyp.h>
+#include <sys/mount.h>
+#include <sys/xti.h>
+
+#define NFSCLIENT 1
+#include <nfs/mount.h>
+
+#include <sys/fs/vx_ioctl.h>
+
+static const struct xlat mount_flags[] = {
+ { MS_RDONLY, "MS_RDONLY" },
+ { MS_FSS, "MS_FSS" },
+ { MS_DATA, "MS_DATA" },
+ { MS_HADBAD, "MS_HADBAD" },
+ { MS_NOSUID, "MS_NOSUID" },
+ { MS_REMOUNT, "MS_REMOUNT" },
+ { MS_NOTRUNC, "MS_NOTRUNC" },
+ { MS_SOFTMNT, "MS_SOFTMNT" },
+ { MS_SYSSPACE, "MS_SYSSPACE" },
+ { 0, NULL },
+};
+
+#ifdef VX_MS_MASK
+static const struct xlat vxfs_flags[] = {
+ { VX_MS_NOLOG, "VX_MS_NOLOG" },
+ { VX_MS_BLKCLEAR, "VX_MS_BLKCLEAR" },
+ { VX_MS_SNAPSHOT, "VX_MS_SNAPSHOT" },
+ { VX_MS_NODATAINLOG, "VX_MS_NODATAINLOG" },
+ { VX_MS_DELAYLOG, "VX_MS_DELAYLOG" },
+ { VX_MS_TMPLOG, "VX_MS_TMPLOG" },
+ { VX_MS_FILESET, "VX_MS_FILESET" },
+
+ { VX_MS_CACHE_DIRECT, "VX_MS_CACHE_DIRECT" },
+ { VX_MS_CACHE_DSYNC, "VX_MS_CACHE_DSYNC" },
+ { VX_MS_CACHE_CLOSESYNC,"VX_MS_CACHE_CLOSESYNC" },
+ { VX_MS_CACHE_TMPCACHE, "VX_MS_CACHE_TMPCACHE" },
+
+ { VX_MS_OSYNC_DIRECT, "VX_MS_OSYNC_DIRECT" },
+ { VX_MS_OSYNC_DSYNC, "VX_MS_OSYNC_DSYNC" },
+ { VX_MS_OSYNC_CLOSESYNC,"VX_MS_OSYNC_CLOSESYNC" },
+ { VX_MS_OSYNC_DELAY, "VX_MS_OSYNC_DELAY" },
+ { 0, NULL, },
+};
+#endif
+
+static const struct xlat nfs_flags[] = {
+ { NFSMNT_SOFT, "NFSMNT_SOFT" },
+ { NFSMNT_WSIZE, "NFSMNT_WSIZE" },
+ { NFSMNT_RSIZE, "NFSMNT_RSIZE" },
+ { NFSMNT_TIMEO, "NFSMNT_TIMEO" },
+ { NFSMNT_RETRANS, "NFSMNT_RETRANS" },
+ { NFSMNT_HOSTNAME, "NFSMNT_HOSTNAME" },
+ { NFSMNT_INT, "NFSMNT_INT" },
+ { NFSMNT_NOAC, "NFSMNT_NOAC" },
+ { NFSMNT_ACREGMIN, "NFSMNT_ACREGMIN" },
+ { NFSMNT_ACREGMAX, "NFSMNT_ACREGMAX" },
+ { NFSMNT_ACDIRMIN, "NFSMNT_ACDIRMIN" },
+ { NFSMNT_ACDIRMAX, "NFSMNT_ACDIRMAX" },
+ { NFSMNT_SECURE, "NFSMNT_SECURE" },
+ { NFSMNT_NOCTO, "NFSMNT_NOCTO" },
+ { NFSMNT_GRPID, "NFSMNT_GRPID" },
+ { NFSMNT_RPCTIMESYNC, "NFSMNT_RPCTIMESYNC" },
+ { NFSMNT_LWPSMAX, "NFSMNT_LWPSMAX" },
+ { 0, NULL },
+};
+
+int
+sys_mount(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ char fstyp [FSTYPSZ];
+ printpath(tcp, tcp->u_arg[0]);
+ tprintf(", ");
+ printpath(tcp, tcp->u_arg[1]);
+ tprintf(", ");
+ printflags(mount_flags, tcp->u_arg[2], "MS_???");
+ /* The doc sez that the file system type is given as a
+ fsindex, and we should use sysfs to work out the name.
+ This appears to be untrue for UW. Maybe it's untrue
+ for all SVR4's? */
+ if (tcp->u_arg[2] & (MS_FSS | MS_DATA)) {
+ if (umovestr(tcp, tcp->u_arg[3], FSTYPSZ, fstyp) < 0) {
+ *fstyp = 0;
+ tprintf(", %ld", tcp->u_arg[3]);
+ }
+ else
+ tprintf(", \"%s\"", fstyp);
+ }
+ if (tcp->u_arg[2] & MS_DATA) {
+ tprintf(", ");
+#ifdef VX_MS_MASK
+ /* On UW7 they don't give us the defines and structs
+ we need to see what is going on. Bummer. */
+ if (strcmp (fstyp, "vxfs") == 0) {
+ struct vx_mountargs5 args;
+ if (umove(tcp, tcp->u_arg[4], &args) < 0)
+ tprintf("%#lx", tcp->u_arg[4]);
+ else {
+ tprintf("{ flags=");
+ printflags(vxfs_flags, args.mflags, "VX_MS_???");
+ if (args.mflags & VX_MS_SNAPSHOT) {
+ tprintf (", snapof=");
+ printstr (tcp,
+ (long) args.primaryspec,
+ -1);
+ if (args.snapsize > 0)
+ tprintf (", snapsize=%ld", args.snapsize);
+ }
+ tprintf(" }");
+ }
+ }
+ else
+#endif
+ if (strcmp (fstyp, "specfs") == 0) {
+ tprintf ("dev=");
+ printstr (tcp, tcp->u_arg[4], -1);
+ }
+ else
+ if (strcmp (fstyp, "nfs") == 0) {
+ struct nfs_args args;
+ if (umove(tcp, tcp->u_arg[4], &args) < 0)
+ tprintf("%#lx", tcp->u_arg[4]);
+ else {
+ struct netbuf addr;
+ tprintf("{ addr=");
+ if (umove (tcp, (int) args.addr, &addr) < 0) {
+ tprintf ("%#lx", (long) args.addr);
+ }
+ else {
+ printsock(tcp, (int) addr.buf, addr.len);
+ }
+ tprintf(", flags=");
+ printflags(nfs_flags, args.flags, "NFSMNT_???");
+ tprintf(", hostname=");
+ printstr(tcp, (int) args.hostname, -1);
+ tprintf(", ...}");
+ }
+ }
+ else
+ tprintf("%#lx", tcp->u_arg[4]);
+ tprintf(", %ld", tcp->u_arg[5]);
+ }
+ }
+ return 0;
+}
+
+#else /* !UNIXWARE */
+
+int
+sys_mount(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printpath(tcp, tcp->u_arg[0]);
+ tprintf(", ");
+ printpath(tcp, tcp->u_arg[1]);
+ tprintf(", ...");
+ }
+ return 0;
+}
+#endif /* !UNIXWARE */
+
+#endif /* !MIPS */
+
+#endif /* SVR4 */
+
+#ifdef SYS_capget
+
+static const struct xlat capabilities[] = {
+ { 1<<CAP_CHOWN, "CAP_CHOWN" },
+ { 1<<CAP_DAC_OVERRIDE, "CAP_DAC_OVERRIDE"},
+ { 1<<CAP_DAC_READ_SEARCH,"CAP_DAC_READ_SEARCH"},
+ { 1<<CAP_FOWNER, "CAP_FOWNER" },
+ { 1<<CAP_FSETID, "CAP_FSETID" },
+ { 1<<CAP_KILL, "CAP_KILL" },
+ { 1<<CAP_SETGID, "CAP_SETGID" },
+ { 1<<CAP_SETUID, "CAP_SETUID" },
+ { 1<<CAP_SETPCAP, "CAP_SETPCAP" },
+ { 1<<CAP_LINUX_IMMUTABLE,"CAP_LINUX_IMMUTABLE"},
+ { 1<<CAP_NET_BIND_SERVICE,"CAP_NET_BIND_SERVICE"},
+ { 1<<CAP_NET_BROADCAST, "CAP_NET_BROADCAST"},
+ { 1<<CAP_NET_ADMIN, "CAP_NET_ADMIN" },
+ { 1<<CAP_NET_RAW, "CAP_NET_RAW" },
+ { 1<<CAP_IPC_LOCK, "CAP_IPC_LOCK" },
+ { 1<<CAP_IPC_OWNER, "CAP_IPC_OWNER" },
+ { 1<<CAP_SYS_MODULE, "CAP_SYS_MODULE"},
+ { 1<<CAP_SYS_RAWIO, "CAP_SYS_RAWIO" },
+ { 1<<CAP_SYS_CHROOT, "CAP_SYS_CHROOT"},
+ { 1<<CAP_SYS_PTRACE, "CAP_SYS_PTRACE"},
+ { 1<<CAP_SYS_PACCT, "CAP_SYS_PACCT" },
+ { 1<<CAP_SYS_ADMIN, "CAP_SYS_ADMIN" },
+ { 1<<CAP_SYS_BOOT, "CAP_SYS_BOOT" },
+ { 1<<CAP_SYS_NICE, "CAP_SYS_NICE" },
+ { 1<<CAP_SYS_RESOURCE, "CAP_SYS_RESOURCE"},
+ { 1<<CAP_SYS_TIME, "CAP_SYS_TIME" },
+ { 1<<CAP_SYS_TTY_CONFIG,"CAP_SYS_TTY_CONFIG"},
+ { 0, NULL },
+};
+
+
+int
+sys_capget(tcp)
+struct tcb *tcp;
+{
+ static cap_user_header_t arg0 = NULL;
+ static cap_user_data_t arg1 = NULL;
+
+ if(!entering(tcp)) {
+ if (!arg0) {
+ if ((arg0 = malloc(sizeof(*arg0))) == NULL) {
+ fprintf(stderr, "out of memory\n");
+ tprintf("%#lx, %#lx", tcp->u_arg[0], tcp->u_arg[1]);
+ return -1;
+ }
+ }
+ if (!arg1) {
+ if ((arg1 = malloc(sizeof(*arg1))) == NULL) {
+ fprintf(stderr, "out of memory\n");
+ tprintf("%#lx, %#lx", tcp->u_arg[0], tcp->u_arg[1]);
+ return -1;
+ }
+ }
+
+ if (!tcp->u_arg[0])
+ tprintf("NULL");
+ else if (!verbose(tcp))
+ tprintf("%#lx", tcp->u_arg[0]);
+ else if (umoven(tcp, tcp->u_arg[0], sizeof(*arg0), (char *) arg0) < 0)
+ tprintf("???");
+ else {
+ tprintf("%#x, %d", arg0->version, arg0->pid);
+ }
+ tprintf(", ");
+ if (!tcp->u_arg[1])
+ tprintf("NULL");
+ else if (!verbose(tcp))
+ tprintf("%#lx", tcp->u_arg[1]);
+ else if (umoven(tcp, tcp->u_arg[1], sizeof(*arg1), (char *) arg1) < 0)
+ tprintf("???");
+ else {
+ tprintf("{");
+ printflags(capabilities, arg1->effective, "CAP_???");
+ tprintf(", ");
+ printflags(capabilities, arg1->permitted, "CAP_???");
+ tprintf(", ");
+ printflags(capabilities, arg1->inheritable, "CAP_???");
+ tprintf("}");
+ }
+ }
+ return 0;
+}
+
+int
+sys_capset(tcp)
+struct tcb *tcp;
+{
+ static cap_user_header_t arg0 = NULL;
+ static cap_user_data_t arg1 = NULL;
+
+ if(entering(tcp)) {
+ if (!arg0) {
+ if ((arg0 = malloc(sizeof(*arg0))) == NULL) {
+ fprintf(stderr, "out of memory\n");
+ tprintf("%#lx, %#lx", tcp->u_arg[0], tcp->u_arg[1]);
+ return -1;
+ }
+ }
+ if (!arg1) {
+ if ((arg1 = malloc(sizeof(*arg1))) == NULL) {
+ fprintf(stderr, "out of memory\n");
+ tprintf("%#lx, %#lx", tcp->u_arg[0], tcp->u_arg[1]);
+ return -1;
+ }
+ }
+
+ if (!tcp->u_arg[0])
+ tprintf("NULL");
+ else if (!verbose(tcp))
+ tprintf("%#lx", tcp->u_arg[0]);
+ else if (umoven(tcp, tcp->u_arg[0], sizeof(*arg0), (char *) arg0) < 0)
+ tprintf("???");
+ else {
+ tprintf("%#x, %d", arg0->version, arg0->pid);
+ }
+ tprintf(", ");
+ if (!tcp->u_arg[1])
+ tprintf("NULL");
+ else if (!verbose(tcp))
+ tprintf("%#lx", tcp->u_arg[1]);
+ else if (umoven(tcp, tcp->u_arg[1], sizeof(*arg1), (char *) arg1) < 0)
+ tprintf("???");
+ else {
+ tprintf("{");
+ printflags(capabilities, arg1->effective, "CAP_???");
+ tprintf(", ");
+ printflags(capabilities, arg1->permitted, "CAP_???");
+ tprintf(", ");
+ printflags(capabilities, arg1->inheritable, "CAP_???");
+ tprintf("}");
+ }
+ }
+ return 0;
+}
+
+#else
+
+int sys_capget(tcp)
+struct tcb *tcp;
+{
+ return printargs(tcp);
+}
+
+int sys_capset(tcp)
+struct tcb *tcp;
+{
+ return printargs(tcp);
+}
+
+#endif
+
+#ifdef LINUX
+static const struct xlat sysctl_root[] = {
+ { CTL_KERN, "CTL_KERN" },
+ { CTL_VM, "CTL_VM" },
+ { CTL_NET, "CTL_NET" },
+ { CTL_PROC, "CTL_PROC" },
+ { CTL_FS, "CTL_FS" },
+ { CTL_DEBUG, "CTL_DEBUG" },
+ { CTL_DEV, "CTL_DEV" },
+ { 0, NULL }
+};
+
+static const struct xlat sysctl_kern[] = {
+ { KERN_OSTYPE, "KERN_OSTYPE" },
+ { KERN_OSRELEASE, "KERN_OSRELEASE" },
+ { KERN_OSREV, "KERN_OSREV" },
+ { KERN_VERSION, "KERN_VERSION" },
+ { KERN_SECUREMASK, "KERN_SECUREMASK" },
+ { KERN_PROF, "KERN_PROF" },
+ { KERN_NODENAME, "KERN_NODENAME" },
+ { KERN_DOMAINNAME, "KERN_DOMAINNAME" },
+#ifdef KERN_SECURELVL
+ { KERN_SECURELVL, "KERN_SECURELVL" },
+#endif
+ { KERN_PANIC, "KERN_PANIC" },
+#ifdef KERN_REALROOTDEV
+ { KERN_REALROOTDEV, "KERN_REALROOTDEV" },
+#endif
+#ifdef KERN_JAVA_INTERPRETER
+ { KERN_JAVA_INTERPRETER, "KERN_JAVA_INTERPRETER" },
+#endif
+#ifdef KERN_JAVA_APPLETVIEWER
+ { KERN_JAVA_APPLETVIEWER, "KERN_JAVA_APPLETVIEWER" },
+#endif
+ { KERN_SPARC_REBOOT, "KERN_SPARC_REBOOT" },
+ { KERN_CTLALTDEL, "KERN_CTLALTDEL" },
+ { KERN_PRINTK, "KERN_PRINTK" },
+ { KERN_NAMETRANS, "KERN_NAMETRANS" },
+ { KERN_PPC_HTABRECLAIM, "KERN_PPC_HTABRECLAIM" },
+ { KERN_PPC_ZEROPAGED, "KERN_PPC_ZEROPAGED" },
+ { KERN_PPC_POWERSAVE_NAP, "KERN_PPC_POWERSAVE_NAP" },
+ { KERN_MODPROBE, "KERN_MODPROBE" },
+ { KERN_SG_BIG_BUFF, "KERN_SG_BIG_BUFF" },
+ { KERN_ACCT, "KERN_ACCT" },
+ { KERN_PPC_L2CR, "KERN_PPC_L2CR" },
+ { KERN_RTSIGNR, "KERN_RTSIGNR" },
+ { KERN_RTSIGMAX, "KERN_RTSIGMAX" },
+ { KERN_SHMMAX, "KERN_SHMMAX" },
+ { KERN_MSGMAX, "KERN_MSGMAX" },
+ { KERN_MSGMNB, "KERN_MSGMNB" },
+ { KERN_MSGPOOL, "KERN_MSGPOOL" },
+ { 0, NULL }
+};
+
+static const struct xlat sysctl_vm[] = {
+#ifdef VM_SWAPCTL
+ { VM_SWAPCTL, "VM_SWAPCTL" },
+#endif
+#ifdef VM_UNUSED1
+ { VM_UNUSED1, "VM_UNUSED1" },
+#endif
+#ifdef VM_SWAPOUT
+ { VM_SWAPOUT, "VM_SWAPOUT" },
+#endif
+#ifdef VM_UNUSED2
+ { VM_UNUSED2, "VM_UNUSED2" },
+#endif
+#ifdef VM_FREEPG
+ { VM_FREEPG, "VM_FREEPG" },
+#endif
+#ifdef VM_UNUSED3
+ { VM_UNUSED3, "VM_UNUSED3" },
+#endif
+#ifdef VM_BDFLUSH
+ { VM_BDFLUSH, "VM_BDFLUSH" },
+#endif
+#ifdef VM_UNUSED4
+ { VM_UNUSED4, "VM_UNUSED4" },
+#endif
+ { VM_OVERCOMMIT_MEMORY, "VM_OVERCOMMIT_MEMORY" },
+#ifdef VM_BUFFERMEM
+ { VM_BUFFERMEM, "VM_BUFFERMEM" },
+#endif
+#ifdef VM_UNUSED5
+ { VM_UNUSED5, "VM_UNUSED5" },
+#endif
+#ifdef VM_PAGECACHE
+ { VM_PAGECACHE, "VM_PAGECACHE" },
+#endif
+#ifdef VM_UNUSED7
+ { VM_UNUSED7, "VM_UNUSED7" },
+#endif
+#ifdef VM_PAGERDAEMON
+ { VM_PAGERDAEMON, "VM_PAGERDAEMON" },
+#endif
+#ifdef VM_UNUSED8
+ { VM_UNUSED8, "VM_UNUSED8" },
+#endif
+#ifdef VM_PGT_CACHE
+ { VM_PGT_CACHE, "VM_PGT_CACHE" },
+#endif
+#ifdef VM_UNUSED9
+ { VM_UNUSED9, "VM_UNUSED9" },
+#endif
+ { VM_PAGE_CLUSTER, "VM_PAGE_CLUSTER" },
+ { 0, NULL },
+};
+
+static const struct xlat sysctl_net[] = {
+ { NET_CORE, "NET_CORE" },
+ { NET_ETHER, "NET_ETHER" },
+ { NET_802, "NET_802" },
+ { NET_UNIX, "NET_UNIX" },
+ { NET_IPV4, "NET_IPV4" },
+ { NET_IPX, "NET_IPX" },
+ { NET_ATALK, "NET_ATALK" },
+ { NET_NETROM, "NET_NETROM" },
+ { NET_AX25, "NET_AX25" },
+ { NET_BRIDGE, "NET_BRIDGE" },
+ { NET_ROSE, "NET_ROSE" },
+ { NET_IPV6, "NET_IPV6" },
+ { NET_X25, "NET_X25" },
+ { NET_TR, "NET_TR" },
+ { NET_DECNET, "NET_DECNET" },
+ { 0, NULL }
+};
+
+static const struct xlat sysctl_net_core[] = {
+ { NET_CORE_WMEM_MAX, "NET_CORE_WMEM_MAX" },
+ { NET_CORE_RMEM_MAX, "NET_CORE_RMEM_MAX" },
+ { NET_CORE_WMEM_DEFAULT, "NET_CORE_WMEM_DEFAULT" },
+ { NET_CORE_RMEM_DEFAULT, "NET_CORE_RMEM_DEFAULT" },
+ { NET_CORE_MAX_BACKLOG, "NET_CORE_MAX_BACKLOG" },
+ { NET_CORE_FASTROUTE, "NET_CORE_FASTROUTE" },
+ { NET_CORE_MSG_COST, "NET_CORE_MSG_COST" },
+ { NET_CORE_MSG_BURST, "NET_CORE_MSG_BURST" },
+ { NET_CORE_OPTMEM_MAX, "NET_CORE_OPTMEM_MAX" },
+ { 0, NULL }
+};
+
+static const struct xlat sysctl_net_unix[] = {
+ { NET_UNIX_DESTROY_DELAY, "NET_UNIX_DESTROY_DELAY" },
+ { NET_UNIX_DELETE_DELAY, "NET_UNIX_DELETE_DELAY" },
+ { 0, NULL }
+};
+
+static const struct xlat sysctl_net_ipv4[] = {
+ { NET_IPV4_FORWARD, "NET_IPV4_FORWARD" },
+ { NET_IPV4_DYNADDR, "NET_IPV4_DYNADDR" },
+ { NET_IPV4_CONF, "NET_IPV4_CONF" },
+ { NET_IPV4_NEIGH, "NET_IPV4_NEIGH" },
+ { NET_IPV4_ROUTE, "NET_IPV4_ROUTE" },
+ { NET_IPV4_FIB_HASH, "NET_IPV4_FIB_HASH" },
+ { NET_IPV4_TCP_TIMESTAMPS, "NET_IPV4_TCP_TIMESTAMPS" },
+ { NET_IPV4_TCP_WINDOW_SCALING, "NET_IPV4_TCP_WINDOW_SCALING" },
+ { NET_IPV4_TCP_SACK, "NET_IPV4_TCP_SACK" },
+ { NET_IPV4_TCP_RETRANS_COLLAPSE, "NET_IPV4_TCP_RETRANS_COLLAPSE" },
+ { NET_IPV4_DEFAULT_TTL, "NET_IPV4_DEFAULT_TTL" },
+ { NET_IPV4_AUTOCONFIG, "NET_IPV4_AUTOCONFIG" },
+ { NET_IPV4_NO_PMTU_DISC, "NET_IPV4_NO_PMTU_DISC" },
+ { NET_IPV4_TCP_SYN_RETRIES, "NET_IPV4_TCP_SYN_RETRIES" },
+ { NET_IPV4_IPFRAG_HIGH_THRESH, "NET_IPV4_IPFRAG_HIGH_THRESH" },
+ { NET_IPV4_IPFRAG_LOW_THRESH, "NET_IPV4_IPFRAG_LOW_THRESH" },
+ { NET_IPV4_IPFRAG_TIME, "NET_IPV4_IPFRAG_TIME" },
+ { NET_IPV4_TCP_MAX_KA_PROBES, "NET_IPV4_TCP_MAX_KA_PROBES" },
+ { NET_IPV4_TCP_KEEPALIVE_TIME, "NET_IPV4_TCP_KEEPALIVE_TIME" },
+ { NET_IPV4_TCP_KEEPALIVE_PROBES, "NET_IPV4_TCP_KEEPALIVE_PROBES" },
+ { NET_IPV4_TCP_RETRIES1, "NET_IPV4_TCP_RETRIES1" },
+ { NET_IPV4_TCP_RETRIES2, "NET_IPV4_TCP_RETRIES2" },
+ { NET_IPV4_TCP_FIN_TIMEOUT, "NET_IPV4_TCP_FIN_TIMEOUT" },
+ { NET_IPV4_IP_MASQ_DEBUG, "NET_IPV4_IP_MASQ_DEBUG" },
+ { NET_TCP_SYNCOOKIES, "NET_TCP_SYNCOOKIES" },
+ { NET_TCP_STDURG, "NET_TCP_STDURG" },
+ { NET_TCP_RFC1337, "NET_TCP_RFC1337" },
+ { NET_TCP_SYN_TAILDROP, "NET_TCP_SYN_TAILDROP" },
+ { NET_TCP_MAX_SYN_BACKLOG, "NET_TCP_MAX_SYN_BACKLOG" },
+ { NET_IPV4_LOCAL_PORT_RANGE, "NET_IPV4_LOCAL_PORT_RANGE" },
+ { NET_IPV4_ICMP_ECHO_IGNORE_ALL, "NET_IPV4_ICMP_ECHO_IGNORE_ALL" },
+ { NET_IPV4_ICMP_ECHO_IGNORE_BROADCASTS, "NET_IPV4_ICMP_ECHO_IGNORE_BROADCASTS" },
+ { NET_IPV4_ICMP_SOURCEQUENCH_RATE, "NET_IPV4_ICMP_SOURCEQUENCH_RATE" },
+ { NET_IPV4_ICMP_DESTUNREACH_RATE, "NET_IPV4_ICMP_DESTUNREACH_RATE" },
+ { NET_IPV4_ICMP_TIMEEXCEED_RATE, "NET_IPV4_ICMP_TIMEEXCEED_RATE" },
+ { NET_IPV4_ICMP_PARAMPROB_RATE, "NET_IPV4_ICMP_PARAMPROB_RATE" },
+ { NET_IPV4_ICMP_ECHOREPLY_RATE, "NET_IPV4_ICMP_ECHOREPLY_RATE" },
+ { NET_IPV4_ICMP_IGNORE_BOGUS_ERROR_RESPONSES, "NET_IPV4_ICMP_IGNORE_BOGUS_ERROR_RESPONSES" },
+ { NET_IPV4_IGMP_MAX_MEMBERSHIPS, "NET_IPV4_IGMP_MAX_MEMBERSHIPS" },
+ { 0, NULL }
+};
+
+static const struct xlat sysctl_net_ipv4_route[] = {
+ { NET_IPV4_ROUTE_FLUSH, "NET_IPV4_ROUTE_FLUSH" },
+ { NET_IPV4_ROUTE_MIN_DELAY, "NET_IPV4_ROUTE_MIN_DELAY" },
+ { NET_IPV4_ROUTE_MAX_DELAY, "NET_IPV4_ROUTE_MAX_DELAY" },
+ { NET_IPV4_ROUTE_GC_THRESH, "NET_IPV4_ROUTE_GC_THRESH" },
+ { NET_IPV4_ROUTE_MAX_SIZE, "NET_IPV4_ROUTE_MAX_SIZE" },
+ { NET_IPV4_ROUTE_GC_MIN_INTERVAL, "NET_IPV4_ROUTE_GC_MIN_INTERVAL" },
+ { NET_IPV4_ROUTE_GC_TIMEOUT, "NET_IPV4_ROUTE_GC_TIMEOUT" },
+ { NET_IPV4_ROUTE_GC_INTERVAL, "NET_IPV4_ROUTE_GC_INTERVAL" },
+ { NET_IPV4_ROUTE_REDIRECT_LOAD, "NET_IPV4_ROUTE_REDIRECT_LOAD" },
+ { NET_IPV4_ROUTE_REDIRECT_NUMBER, "NET_IPV4_ROUTE_REDIRECT_NUMBER" },
+ { NET_IPV4_ROUTE_REDIRECT_SILENCE, "NET_IPV4_ROUTE_REDIRECT_SILENCE" },
+ { NET_IPV4_ROUTE_ERROR_COST, "NET_IPV4_ROUTE_ERROR_COST" },
+ { NET_IPV4_ROUTE_ERROR_BURST, "NET_IPV4_ROUTE_ERROR_BURST" },
+ { NET_IPV4_ROUTE_GC_ELASTICITY, "NET_IPV4_ROUTE_GC_ELASTICITY" },
+ { 0, NULL }
+};
+
+static const struct xlat sysctl_net_ipv4_conf[] = {
+ { NET_IPV4_CONF_FORWARDING, "NET_IPV4_CONF_FORWARDING" },
+ { NET_IPV4_CONF_MC_FORWARDING, "NET_IPV4_CONF_MC_FORWARDING" },
+ { NET_IPV4_CONF_PROXY_ARP, "NET_IPV4_CONF_PROXY_ARP" },
+ { NET_IPV4_CONF_ACCEPT_REDIRECTS, "NET_IPV4_CONF_ACCEPT_REDIRECTS" },
+ { NET_IPV4_CONF_SECURE_REDIRECTS, "NET_IPV4_CONF_SECURE_REDIRECTS" },
+ { NET_IPV4_CONF_SEND_REDIRECTS, "NET_IPV4_CONF_SEND_REDIRECTS" },
+ { NET_IPV4_CONF_SHARED_MEDIA, "NET_IPV4_CONF_SHARED_MEDIA" },
+ { NET_IPV4_CONF_RP_FILTER, "NET_IPV4_CONF_RP_FILTER" },
+ { NET_IPV4_CONF_ACCEPT_SOURCE_ROUTE, "NET_IPV4_CONF_ACCEPT_SOURCE_ROUTE" },
+ { NET_IPV4_CONF_BOOTP_RELAY, "NET_IPV4_CONF_BOOTP_RELAY" },
+ { NET_IPV4_CONF_LOG_MARTIANS, "NET_IPV4_CONF_LOG_MARTIANS" },
+ { 0, NULL }
+};
+
+static const struct xlat sysctl_net_ipv6[] = {
+ { NET_IPV6_CONF, "NET_IPV6_CONF" },
+ { NET_IPV6_NEIGH, "NET_IPV6_NEIGH" },
+ { NET_IPV6_ROUTE, "NET_IPV6_ROUTE" },
+ { 0, NULL }
+};
+
+static const struct xlat sysctl_net_ipv6_route[] = {
+ { NET_IPV6_ROUTE_FLUSH, "NET_IPV6_ROUTE_FLUSH" },
+ { NET_IPV6_ROUTE_GC_THRESH, "NET_IPV6_ROUTE_GC_THRESH" },
+ { NET_IPV6_ROUTE_MAX_SIZE, "NET_IPV6_ROUTE_MAX_SIZE" },
+ { NET_IPV6_ROUTE_GC_MIN_INTERVAL, "NET_IPV6_ROUTE_GC_MIN_INTERVAL" },
+ { NET_IPV6_ROUTE_GC_TIMEOUT, "NET_IPV6_ROUTE_GC_TIMEOUT" },
+ { NET_IPV6_ROUTE_GC_INTERVAL, "NET_IPV6_ROUTE_GC_INTERVAL" },
+ { NET_IPV6_ROUTE_GC_ELASTICITY, "NET_IPV6_ROUTE_GC_ELASTICITY" },
+ { 0, NULL }
+};
+
+int
+sys_sysctl(tcp)
+struct tcb *tcp;
+{
+ struct __sysctl_args info;
+ int *name;
+ unsigned long size;
+
+ if (umove (tcp, tcp->u_arg[0], &info) < 0)
+ return printargs(tcp);
+
+ size = sizeof (int) * (unsigned long) info.nlen;
+ name = (size / sizeof (int) != info.nlen) ? NULL : malloc (size);
+ if (name == NULL ||
+ umoven(tcp, (unsigned long) info.name, size, (char *) name) < 0) {
+ free(name);
+ if (entering(tcp))
+ tprintf("{%p, %d, %p, %p, %p, %Zu}",
+ info.name, info.nlen, info.oldval,
+ info.oldlenp, info.newval, info.newlen);
+ return 0;
+ }
+
+ if (entering(tcp)) {
+ int cnt = 0, max_cnt;
+
+ tprintf("{{");
+
+ if (info.nlen == 0)
+ goto out;
+ printxval(sysctl_root, name[0], "CTL_???");
+ ++cnt;
+
+ if (info.nlen == 1)
+ goto out;
+ switch (name[0]) {
+ case CTL_KERN:
+ tprintf(", ");
+ printxval(sysctl_kern, name[1], "KERN_???");
+ ++cnt;
+ break;
+ case CTL_VM:
+ tprintf(", ");
+ printxval(sysctl_vm, name[1], "VM_???");
+ ++cnt;
+ break;
+ case CTL_NET:
+ tprintf(", ");
+ printxval(sysctl_net, name[1], "NET_???");
+ ++cnt;
+
+ if (info.nlen == 2)
+ goto out;
+ switch (name[1]) {
+ case NET_CORE:
+ tprintf(", ");
+ printxval(sysctl_net_core, name[2],
+ "NET_CORE_???");
+ break;
+ case NET_UNIX:
+ tprintf(", ");
+ printxval(sysctl_net_unix, name[2],
+ "NET_UNIX_???");
+ break;
+ case NET_IPV4:
+ tprintf(", ");
+ printxval(sysctl_net_ipv4, name[2],
+ "NET_IPV4_???");
+
+ if (info.nlen == 3)
+ goto out;
+ switch (name[2]) {
+ case NET_IPV4_ROUTE:
+ tprintf(", ");
+ printxval(sysctl_net_ipv4_route,
+ name[3],
+ "NET_IPV4_ROUTE_???");
+ break;
+ case NET_IPV4_CONF:
+ tprintf(", ");
+ printxval(sysctl_net_ipv4_conf,
+ name[3],
+ "NET_IPV4_CONF_???");
+ break;
+ default:
+ goto out;
+ }
+ break;
+ case NET_IPV6:
+ tprintf(", ");
+ printxval(sysctl_net_ipv6, name[2],
+ "NET_IPV6_???");
+
+ if (info.nlen == 3)
+ goto out;
+ switch (name[2]) {
+ case NET_IPV6_ROUTE:
+ tprintf(", ");
+ printxval(sysctl_net_ipv6_route,
+ name[3],
+ "NET_IPV6_ROUTE_???");
+ break;
+ default:
+ goto out;
+ }
+ break;
+ default:
+ goto out;
+ }
+ break;
+ default:
+ goto out;
+ }
+ out:
+ max_cnt = abbrev(tcp) ? max_strlen : info.nlen;
+ while (cnt < max_cnt)
+ tprintf(", %x", name[cnt++]);
+ if (cnt < info.nlen)
+ tprintf(", ...");
+ 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
+#ifdef KERN_JAVA_INTERPRETER
+ || name[1] == KERN_JAVA_INTERPRETER
+#endif
+#ifdef KERN_JAVA_APPLETVIEWER
+ || name[1] == KERN_JAVA_APPLETVIEWER
+#endif
+ )))) {
+ printpath(tcp, (size_t)info.oldval);
+ tprintf(", %Zu, ", oldlen);
+ if (info.newval == 0)
+ tprintf("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("}");
+ }
+
+ free(name);
+ return 0;
+}
+#else
+int sys_sysctl(tcp)
+struct tcb *tcp;
+{
+ return printargs(tcp);
+}
+#endif
+
+#ifdef FREEBSD
+#include <sys/sysctl.h>
+
+int sys___sysctl(tcp)
+struct tcb *tcp;
+{
+ int qoid[CTL_MAXNAME+2];
+ char ctl[1024];
+ size_t len;
+ int i, numeric;
+
+ if (entering(tcp)) {
+ if (tcp->u_arg[1] < 0 || tcp->u_arg[1] > CTL_MAXNAME ||
+ (umoven(tcp, tcp->u_arg[0], tcp->u_arg[1] * sizeof(int),
+ (char *) (qoid + 2)) < 0))
+ tprintf("[...], ");
+ else {
+ /* Use sysctl to ask the name of the current MIB
+ This uses the undocumented "Staff-functions" used
+ by the sysctl program. See kern_sysctl.c for
+ details. */
+ qoid[0] = 0; /* sysctl */
+ qoid[1] = 1; /* name */
+ i = sizeof(ctl);
+ tprintf("[");
+ if (sysctl(qoid, tcp->u_arg[1] + 2, ctl, &i, 0, 0) >= 0) {
+ numeric = !abbrev(tcp);
+ tprintf("%s%s", ctl, numeric ? ", " : "");
+ } else
+ numeric = 1;
+ if (numeric) {
+ for (i = 0; i < tcp->u_arg[1]; i++)
+ tprintf("%s%d", i ? "." : "", qoid[i + 2]);
+ }
+ tprintf("], ");
+ tprintf("%lu, ", tcp->u_arg[1]);
+ }
+ } else {
+ if (!syserror(tcp) && (umove(tcp, tcp->u_arg[3], &len) >= 0)) {
+ printstr(tcp, tcp->u_arg[2], len);
+ tprintf(", [%u], ", len);
+ } else
+ tprintf("%#lx, %#lx, ", tcp->u_arg[2], tcp->u_arg[3]);
+ printstr(tcp, tcp->u_arg[4], tcp->u_arg[5]);
+ tprintf(", %lu", tcp->u_arg[5]);
+ }
+ return 0;
+}
+#endif
+
+#if UNIXWARE >= 2
+
+#include <sys/ksym.h>
+#include <sys/elf.h>
+
+static const struct xlat ksym_flags[] = {
+ { STT_NOTYPE, "STT_NOTYPE" },
+ { STT_FUNC, "STT_FUNC" },
+ { STT_OBJECT, "STT_OBJECT" },
+ { 0, NULL },
+};
+
+int
+sys_getksym(tcp)
+struct tcb *tcp;
+{
+ if (entering (tcp)) {
+ printstr(tcp, tcp->u_arg[0], -1);
+ tprintf(", ");
+ }
+ else {
+ if (syserror(tcp)) {
+ tprintf("%#lx, %#lx",
+ tcp->u_arg[1], tcp->u_arg[2]);
+ }
+ else {
+ int val;
+ printnum (tcp, tcp->u_arg[1], "%#lx");
+ tprintf(", ");
+ if (umove(tcp, tcp->u_arg[2], &val) < 0) {
+ tprintf("%#lx", tcp->u_arg[2]);
+ }
+ else {
+ tprintf("[");
+ printxval (ksym_flags, val, "STT_???");
+ tprintf("]");
+ }
+ }
+ }
+
+ return 0;
+}
+
+#ifdef HAVE_SYS_NSCSYS_H
+
+struct cred;
+#include <sys/nscsys.h>
+
+static const struct xlat ssi_cmd [] = {
+ { SSISYS_BADOP, "SSISYS_BADOP" },
+ { SSISYS_LDLVL_INIT,"SSISYS_LDLVL_INIT"},
+ { SSISYS_LDLVL_GETVEC,"SSISYS_LDLVL_GETVEC"},
+ { SSISYS_LDLVL_PUTVEC,"SSISYS_LDLVL_PUTVEC"},
+ { SSISYS_LDLVL_PUTRCMDS,"SSISYS_LDLVL_PUTRCMDS"},
+ { SSISYS_LDLVL_SETREXEC,"SSISYS_LDLVL_SETREXEC"},
+ { SSISYS_CMS_CLUSTERID,"SSISYS_CMS_CLUSTERID"},
+ { SSISYS_CFS_STATVFS,"SSISYS_CFS_STATVFS"},
+ { SSISYS_NODE_GETNUM,"SSISYS_NODE_GETNUM"},
+ { SSISYS_NODE_TABLE,"SSISYS_NODE_TABLE"},
+ { SSISYS_NODE_DOWN,"SSISYS_NODE_DOWN"},
+ { SSISYS_RECLAIM_CHILD,"SSISYS_RECLAIM_CHILD"},
+ { SSISYS_IPC_GETINFO,"SSISYS_IPC_GETINFO"},
+ { SSISYS_ICS_TEST,"SSISYS_ICS_TEST"},
+ { SSISYS_NODE_PID,"SSISYS_NODE_PID"},
+ { SSISYS_ISLOCAL,"SSISYS_ISLOCAL"},
+ { SSISYS_CFS_ISSTACKED,"SSISYS_CFS_ISSTACKED"},
+ { SSISYS_DNET_SYNC,"SSISYS_DNET_SYNC"},
+ { SSISYS_CFS_WAIT_MODE,"SSISYS_CFS_WAIT_MODE"},
+ { SSISYS_CFS_UMOUNT,"SSISYS_CFS_UMOUNT"},
+ { SSISYS_LLSTAT,"SSISYS_LLSTAT" },
+ { SSISYS_LTS_PERFTEST,"SSISYS_LTS_PERFTEST"},
+ { SSISYS_LTS_CONFIG,"SSISYS_LTS_CONFIG"},
+ { SSISYS_SNET_PERFTEST,"SSISYS_SNET_PERFTEST"},
+ { SSISYS_IGNORE_HALFUP,"SSISYS_IGNORE_HALFUP"},
+ { SSISYS_NODE_ROOTDEV,"SSISYS_NODE_ROOTDEV"},
+ { SSISYS_GET_PRIMARY,"SSISYS_GET_PRIMARY"},
+ { SSISYS_GET_SECONDARY,"SSISYS_GET_SECONDARY"},
+ { SSISYS_GET_ROOTDISK,"SSISYS_GET_ROOTDISK"},
+ { SSISYS_CLUSTERNODE_NUM,"SSISYS_CLUSTERNODE_NUM"},
+ { SSISYS_CLUSTER_MEMBERSHIP,"SSISYS_CLUSTER_MEMBERSHIP"},
+ { SSISYS_CLUSTER_DETAILEDTRANS,"SSISYS_CLUSTER_DETAILEDTRANS"},
+ { SSISYS_CLUSTERNODE_INFO,"SSISYS_CLUSTERNODE_INFO"},
+ { SSISYS_CLUSTERNODE_SETINFO,"SSISYS_CLUSTERNODE_SETINFO"},
+ { SSISYS_CLUSTERNODE_AVAIL,"SSISYS_CLUSTERNODE_AVAIL"},
+ { SSISYS_CLUSTER_MAXNODES,"SSISYS_CLUSTER_MAXNODES"},
+ { SSISYS_SET_MEMPRIO,"SSISYS_SET_MEMPRIO"},
+ { SSISYS_GET_USERS,"SSISYS_GET_USERS"},
+ { SSISYS_FORCE_ROOT_NODE,"SSISYS_FORCE_ROOT_NODE"},
+ { SSISYS_CVIP_SET,"SSISYS_CVIP_SET"},
+ { SSISYS_CVIP_GET,"SSISYS_CVIP_GET"},
+ { SSISYS_GET_NODE_COUNTS,"SSISYS_GET_NODE_COUNTS"},
+ { SSISYS_GET_TRANSPORT,"SSISYS_GET_TRANSPORT"},
+ { 0, NULL },
+};
+
+int sys_ssisys (tcp)
+struct tcb *tcp;
+{
+ struct ssisys_iovec iov;
+ cls_nodeinfo_args_t cni;
+ clusternode_info_t info;
+
+ if (entering (tcp)) {
+ ts_reclaim_child_inargs_t trc;
+ if (tcp->u_arg[1] != sizeof iov ||
+ umove (tcp, tcp->u_arg[0], &iov) < 0)
+ {
+ tprintf ("%#lx, %ld", tcp->u_arg[0], tcp->u_arg[1]);
+ return 0;
+ }
+ tprintf ("{id=");
+ printxval(ssi_cmd, iov.tio_id.id_cmd, "SSISYS_???");
+ tprintf (":%d", iov.tio_id.id_ver);
+ switch (iov.tio_id.id_cmd) {
+ case SSISYS_RECLAIM_CHILD:
+ if (iov.tio_udatainlen != sizeof trc ||
+ umove (tcp, (long) iov.tio_udatain, &trc) < 0)
+ goto bad;
+ tprintf (", in={pid=%ld, start=%ld}",
+ trc.trc_pid, trc.trc_start);
+ break;
+ case SSISYS_CLUSTERNODE_INFO:
+ if (iov.tio_udatainlen != sizeof cni ||
+ umove (tcp, (long) iov.tio_udatain, &cni) < 0)
+ goto bad;
+ tprintf (", in={node=%ld, len=%d}",
+ cni.nodenum, cni.info_len);
+ break;
+ default:
+ bad:
+ if (iov.tio_udatainlen) {
+ tprintf (", in=[/* %d bytes */]",
+ iov.tio_udatainlen);
+ }
+ }
+ }
+ else {
+ if (tcp->u_arg[1] != sizeof iov ||
+ umove (tcp, tcp->u_arg[0], &iov) < 0)
+ goto done;
+ switch (iov.tio_id.id_cmd) {
+ case SSISYS_CLUSTERNODE_INFO:
+ if (iov.tio_udatainlen != sizeof cni ||
+ umove (tcp, (long) iov.tio_udatain, &cni) < 0)
+ goto bad_out;
+ if (cni.info_len != sizeof info ||
+ iov.tio_udataoutlen != sizeof &info ||
+ umove (tcp, (long) iov.tio_udataout, &info) < 0)
+ goto bad_out;
+ tprintf (", out={node=%ld, cpus=%d, online=%d}",
+ info.node_num, info.node_totalcpus,
+ info.node_onlinecpus);
+ break;
+
+ default:
+ bad_out:
+ if (iov.tio_udataoutlen) {
+ tprintf (", out=[/* %d bytes */]",
+ iov.tio_udataoutlen);
+ }
+ }
+ done:
+ tprintf ("}, %ld", tcp->u_arg[1]);
+ }
+ return 0;
+}
+
+#endif
+
+#endif /* UNIXWARE > 2 */
+
+#ifdef MIPS
+
+#ifndef __NEW_UTS_LEN
+#define __NEW_UTS_LEN 64
+#endif
+
+static const struct xlat sysmips_operations[] = {
+ { SETNAME, "SETNAME" },
+ { FLUSH_CACHE, "FLUSH_CACHE" },
+ { MIPS_FIXADE, "MIPS_FIXADE" },
+ { MIPS_RDNVRAM, "MIPS_RDNVRAM" },
+ { MIPS_ATOMIC_SET, "MIPS_ATOMIC_SET" },
+ { 0, NULL }
+};
+
+int sys_sysmips(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printxval(sysmips_operations, tcp->u_arg[0], "???");
+ if (!verbose(tcp)) {
+ tprintf("%ld, %ld, %ld", tcp->u_arg[1], tcp->u_arg[2], tcp->u_arg[3]);
+ } else if (tcp->u_arg[0]==SETNAME) {
+ char nodename[__NEW_UTS_LEN + 1];
+ if (umovestr(tcp, tcp->u_arg[1], (__NEW_UTS_LEN + 1), nodename) < 0)
+ tprintf(", %#lx", tcp->u_arg[1]);
+ else
+ tprintf(", \"%s\"", nodename);
+ } else if (tcp->u_arg[0] == MIPS_ATOMIC_SET) {
+ tprintf(", %#lx, 0x%lx", tcp->u_arg[1], tcp->u_arg[2]);
+ } else if (tcp->u_arg[0] == MIPS_FIXADE) {
+ tprintf(", 0x%lx", tcp->u_arg[1]);
+ } else {
+ tprintf("%ld, %ld, %ld", tcp->u_arg[1], tcp->u_arg[2], tcp->u_arg[3]);
+ }
+ }
+
+ return 0;
+}
+
+#endif /* MIPS */
diff --git a/term.c b/term.c
new file mode 100644
index 0000000..2a68af8
--- /dev/null
+++ b/term.c
@@ -0,0 +1,461 @@
+/*
+ * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
+ * 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.
+ *
+ * $Id: term.c,v 1.8 2005/06/01 19:02:38 roland Exp $
+ */
+
+#include "defs.h"
+
+#ifdef LINUX
+/*
+ * The C library's definition of struct termios might differ from
+ * the kernel one, and we need to use the kernel layout.
+ */
+#include <linux/termios.h>
+#else
+
+#ifdef HAVE_TERMIO_H
+#include <termio.h>
+#endif /* HAVE_TERMIO_H */
+
+#include <termios.h>
+#endif
+
+#ifdef HAVE_SYS_FILIO_H
+#include <sys/filio.h>
+#endif
+
+static const struct xlat tcxonc_options[] = {
+ { TCOOFF, "TCOOFF" },
+ { TCOON, "TCOON" },
+ { TCIOFF, "TCIOFF" },
+ { TCION, "TCION" },
+ { 0, NULL },
+};
+
+#ifdef TCLFLSH
+static const struct xlat tcflsh_options[] = {
+ { TCIFLUSH, "TCIFLUSH" },
+ { TCOFLUSH, "TCOFLUSH" },
+ { TCIOFLUSH, "TCIOFLUSH" },
+ { 0, NULL },
+};
+#endif
+
+static const struct xlat baud_options[] = {
+ { B0, "B0" },
+ { B50, "B50" },
+ { B75, "B75" },
+ { B110, "B110" },
+ { B134, "B134" },
+ { B150, "B150" },
+ { B200, "B200" },
+ { B300, "B300" },
+ { B600, "B600" },
+ { B1200, "B1200" },
+ { B1800, "B1800" },
+ { B2400, "B2400" },
+ { B4800, "B4800" },
+ { B9600, "B9600" },
+#ifdef B19200
+ { B19200, "B19200" },
+#endif
+#ifdef B38400
+ { B38400, "B38400" },
+#endif
+#ifdef B57600
+ { B57600, "B57600" },
+#endif
+#ifdef B115200
+ { B115200, "B115200" },
+#endif
+#ifdef B230400
+ { B230400, "B230400" },
+#endif
+#ifdef B460800
+ { B460800, "B460800" },
+#endif
+#ifdef B500000
+ { B500000, "B500000" },
+#endif
+#ifdef B576000
+ { B576000, "B576000" },
+#endif
+#ifdef B921600
+ { B921600, "B921600" },
+#endif
+#ifdef B1000000
+ { B1000000, "B1000000" },
+#endif
+#ifdef B1152000
+ { B1152000, "B1152000" },
+#endif
+#ifdef B1500000
+ { B1500000, "B1500000" },
+#endif
+#ifdef B2000000
+ { B2000000, "B2000000" },
+#endif
+#ifdef B2500000
+ { B2500000, "B2500000" },
+#endif
+#ifdef B3000000
+ { B3000000, "B3000000" },
+#endif
+#ifdef B3500000
+ { B3500000, "B3500000" },
+#endif
+#ifdef B4000000
+ { B4000000, "B4000000" },
+#endif
+#ifdef EXTA
+ { EXTA, "EXTA" },
+#endif
+#ifdef EXTB
+ { EXTB, "EXTB" },
+#endif
+ { 0, NULL },
+};
+
+static const struct xlat modem_flags[] = {
+#ifdef TIOCM_LE
+ { TIOCM_LE, "TIOCM_LE", },
+#endif
+#ifdef TIOCM_DTR
+ { TIOCM_DTR, "TIOCM_DTR", },
+#endif
+#ifdef TIOCM_RTS
+ { TIOCM_RTS, "TIOCM_RTS", },
+#endif
+#ifdef TIOCM_ST
+ { TIOCM_ST, "TIOCM_ST", },
+#endif
+#ifdef TIOCM_SR
+ { TIOCM_SR, "TIOCM_SR", },
+#endif
+#ifdef TIOCM_CTS
+ { TIOCM_CTS, "TIOCM_CTS", },
+#endif
+#ifdef TIOCM_CAR
+ { TIOCM_CAR, "TIOCM_CAR", },
+#endif
+#ifdef TIOCM_CD
+ { TIOCM_CD, "TIOCM_CD", },
+#endif
+#ifdef TIOCM_RNG
+ { TIOCM_RNG, "TIOCM_RNG", },
+#endif
+#ifdef TIOCM_RI
+ { TIOCM_RI, "TIOCM_RI", },
+#endif
+#ifdef TIOCM_DSR
+ { TIOCM_DSR, "TIOCM_DSR", },
+#endif
+ { 0, NULL, },
+};
+
+
+int
+term_ioctl(tcp, code, arg)
+struct tcb *tcp;
+long code, arg;
+{
+ struct termios tios;
+#ifndef FREEBSD
+ struct termio tio;
+#else
+ #define TCGETS TIOCGETA
+ #define TCSETS TIOCSETA
+ #define TCSETSW TIOCSETAW
+ #define TCSETSF TIOCSETAF
+#endif
+ struct winsize ws;
+#ifdef TIOCGSIZE
+ struct ttysize ts;
+#endif
+ int i;
+
+ if (entering(tcp))
+ return 0;
+
+ switch (code) {
+
+ /* ioctls with termios or termio args */
+
+#ifdef TCGETS
+ case TCGETS:
+ if (syserror(tcp))
+ return 0;
+ case TCSETS:
+ case TCSETSW:
+ case TCSETSF:
+ if (!verbose(tcp) || umove(tcp, arg, &tios) < 0)
+ return 0;
+ if (abbrev(tcp)) {
+ tprintf(", {");
+#ifndef FREEBSD
+ printxval(baud_options, tios.c_cflag & CBAUD, "B???");
+#else
+ printxval(baud_options, tios.c_ispeed, "B???");
+ if (tios.c_ispeed != tios.c_ospeed) {
+ tprintf(" (in)");
+ printxval(baud_options, tios.c_ospeed, "B???");
+ tprintf(" (out)");
+ }
+#endif
+ tprintf(" %sopost %sisig %sicanon %secho ...}",
+ (tios.c_oflag & OPOST) ? "" : "-",
+ (tios.c_lflag & ISIG) ? "" : "-",
+ (tios.c_lflag & ICANON) ? "" : "-",
+ (tios.c_lflag & ECHO) ? "" : "-");
+ return 1;
+ }
+ tprintf(", {c_iflags=%#lx, c_oflags=%#lx, ",
+ (long) tios.c_iflag, (long) tios.c_oflag);
+ tprintf("c_cflags=%#lx, c_lflags=%#lx, ",
+ (long) tios.c_cflag, (long) tios.c_lflag);
+#if !defined(SVR4) && !defined(FREEBSD)
+ tprintf("c_line=%u, ", tios.c_line);
+#endif
+ if (!(tios.c_lflag & ICANON))
+ tprintf("c_cc[VMIN]=%d, c_cc[VTIME]=%d, ",
+ tios.c_cc[VMIN], tios.c_cc[VTIME]);
+ tprintf("c_cc=\"");
+ for (i = 0; i < NCCS; i++)
+ tprintf("\\x%02x", tios.c_cc[i]);
+ tprintf("\"}");
+ return 1;
+#endif /* TCGETS */
+
+#ifdef TCGETA
+ case TCGETA:
+ if (syserror(tcp))
+ return 0;
+ case TCSETA:
+ case TCSETAW:
+ case TCSETAF:
+ if (!verbose(tcp) || umove(tcp, arg, &tio) < 0)
+ return 0;
+ if (abbrev(tcp)) {
+ tprintf(", {");
+ printxval(baud_options, tio.c_cflag & CBAUD, "B???");
+ tprintf(" %sopost %sisig %sicanon %secho ...}",
+ (tio.c_oflag & OPOST) ? "" : "-",
+ (tio.c_lflag & ISIG) ? "" : "-",
+ (tio.c_lflag & ICANON) ? "" : "-",
+ (tio.c_lflag & ECHO) ? "" : "-");
+ return 1;
+ }
+ tprintf(", {c_iflags=%#lx, c_oflags=%#lx, ",
+ (long) tio.c_iflag, (long) tio.c_oflag);
+ tprintf("c_cflags=%#lx, c_lflags=%#lx, ",
+ (long) tio.c_cflag, (long) tio.c_lflag);
+ tprintf("c_line=%u, ", tio.c_line);
+#ifdef _VMIN
+ if (!(tio.c_lflag & ICANON))
+ tprintf("c_cc[_VMIN]=%d, c_cc[_VTIME]=%d, ",
+ tio.c_cc[_VMIN], tio.c_cc[_VTIME]);
+#else /* !_VMIN */
+ if (!(tio.c_lflag & ICANON))
+ tprintf("c_cc[VMIN]=%d, c_cc[VTIME]=%d, ",
+ tio.c_cc[VMIN], tio.c_cc[VTIME]);
+#endif /* !_VMIN */
+ tprintf("c_cc=\"");
+ for (i = 0; i < NCC; i++)
+ tprintf("\\x%02x", tio.c_cc[i]);
+ tprintf("\"}");
+ return 1;
+#endif /* TCGETA */
+
+ /* ioctls with winsize or ttysize args */
+
+#ifdef TIOCGWINSZ
+ case TIOCGWINSZ:
+ if (syserror(tcp))
+ return 0;
+ case TIOCSWINSZ:
+ if (!verbose(tcp) || umove(tcp, arg, &ws) < 0)
+ return 0;
+ tprintf(", {ws_row=%d, ws_col=%d, ws_xpixel=%d, ws_ypixel=%d}",
+ ws.ws_row, ws.ws_col, ws.ws_xpixel, ws.ws_ypixel);
+ return 1;
+#endif /* TIOCGWINSZ */
+
+#ifdef TIOCGSIZE
+ case TIOCGSIZE:
+ if (syserror(tcp))
+ return 0;
+ case TIOCSSIZE:
+ if (!verbose(tcp) || umove(tcp, arg, &ts) < 0)
+ return 0;
+ tprintf(", {ts_lines=%d, ts_cols=%d}",
+ ts.ts_lines, ts.ts_cols);
+ return 1;
+#endif
+
+ /* ioctls with a direct decodable arg */
+#ifdef TCXONC
+ case TCXONC:
+ tprintf(", ");
+ printxval(tcxonc_options, arg, "TC???");
+ return 1;
+#endif
+#ifdef TCLFLSH
+ case TCFLSH:
+ tprintf(", ");
+ printxval(tcflsh_options, arg, "TC???");
+ return 1;
+#endif
+
+ /* ioctls with an indirect parameter displayed as modem flags */
+
+#ifdef TIOCMGET
+ case TIOCMGET:
+ case TIOCMBIS:
+ case TIOCMBIC:
+ case TIOCMSET:
+ if (umove(tcp, arg, &arg) < 0)
+ return 0;
+ tprintf(", [");
+ printflags(modem_flags, arg, "TIOCM_???");
+ tprintf("]");
+ return 1;
+#endif /* TIOCMGET */
+
+ /* ioctls with an indirect parameter displayed in decimal */
+
+ case TIOCSPGRP:
+ case TIOCGPGRP:
+#ifdef TIOCGETPGRP
+ case TIOCGETPGRP:
+#endif
+#ifdef TIOCSETPGRP
+ case TIOCSETPGRP:
+#endif
+#ifdef FIONREAD
+ case FIONREAD:
+#endif
+ case TIOCOUTQ:
+#ifdef FIONBIO
+ case FIONBIO:
+#endif
+#ifdef FIOASYNC
+ case FIOASYNC:
+#endif
+#ifdef FIOGETOWN
+ case FIOGETOWN:
+#endif
+#ifdef FIOSETOWN
+ case FIOSETOWN:
+#endif
+#ifdef TIOCGETD
+ case TIOCGETD:
+#endif
+#ifdef TIOCSETD
+ case TIOCSETD:
+#endif
+#ifdef TIOCPKT
+ case TIOCPKT:
+#endif
+#ifdef TIOCREMOTE
+ case TIOCREMOTE:
+#endif
+#ifdef TIOCUCNTL
+ case TIOCUCNTL:
+#endif
+#ifdef TIOCTCNTL
+ case TIOCTCNTL:
+#endif
+#ifdef TIOCSIGNAL
+ case TIOCSIGNAL:
+#endif
+#ifdef TIOCSSOFTCAR
+ case TIOCSSOFTCAR:
+#endif
+#ifdef TIOCGSOFTCAR
+ case TIOCGSOFTCAR:
+#endif
+#ifdef TIOCISPACE
+ case TIOCISPACE:
+#endif
+#ifdef TIOCISIZE
+ case TIOCISIZE:
+#endif
+#ifdef TIOCSINTR
+ case TIOCSINTR:
+#endif
+#ifdef TIOCSPTLCK
+ case TIOCSPTLCK:
+#endif
+#ifdef TIOCGPTN
+ case TIOCGPTN:
+#endif
+ tprintf(", ");
+ printnum(tcp, arg, "%d");
+ return 1;
+
+#if 0
+ /* ioctls with an indirect parameter displayed in hex */
+
+ tprintf(", ");
+ printnum(tcp, arg, "%#x");
+ return 1;
+#endif
+
+ /* ioctls with an indirect parameter displayed as a char */
+
+#ifdef TIOCSTI
+ case TIOCSTI:
+#endif
+ tprintf(", ");
+ printstr(tcp, arg, 1);
+ return 1;
+
+ /* ioctls with no parameters */
+
+#ifdef TIOCSCTTY
+ case TIOCSCTTY:
+#endif
+#ifdef TIOCNOTTY
+ case TIOCNOTTY:
+#endif
+#ifdef FIOCLEX
+ case FIOCLEX:
+#endif
+#ifdef FIONCLEX
+ case FIONCLEX:
+#endif
+#ifdef TIOCCONS
+ case TIOCCONS:
+#endif
+ return 1;
+
+ /* ioctls which are unknown */
+
+ default:
+ return 0;
+ }
+}
diff --git a/time.c b/time.c
new file mode 100644
index 0000000..15ec7c0
--- /dev/null
+++ b/time.c
@@ -0,0 +1,617 @@
+/*
+ * Copyright (c) 1991, 1992 Paul Kranenburg <pk@cs.few.eur.nl>
+ * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
+ * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
+ * 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.
+ *
+ * $Id: time.c,v 1.12 2005/06/01 19:02:38 roland Exp $
+ */
+
+#include "defs.h"
+
+#ifdef LINUX
+#include <linux/version.h>
+#ifdef HAVE_ANDROID_OS
+#include <linux/timex.h>
+#else
+#include <sys/timex.h>
+#endif
+#include <linux/ioctl.h>
+#include <linux/rtc.h>
+#endif /* LINUX */
+
+void
+printtv(tcp, addr)
+struct tcb *tcp;
+long addr;
+{
+ struct timeval tv;
+
+ if (addr == 0)
+ tprintf("NULL");
+ else if (!verbose(tcp))
+ tprintf("%#lx", addr);
+ else if (umove(tcp, addr, &tv) < 0)
+ tprintf("{...}");
+ else
+ tprintf("{%lu, %lu}", (long) tv.tv_sec, (long) tv.tv_usec);
+}
+
+#ifdef ALPHA
+struct timeval32
+{
+ unsigned tv_sec;
+ unsigned tv_usec;
+};
+
+void
+printtv32(tcp, addr)
+struct tcb *tcp;
+long addr;
+{
+ struct timeval32 tv;
+
+ if (addr == 0)
+ tprintf("NULL");
+ else if (!verbose(tcp))
+ tprintf("%#lx", addr);
+ else if (umove(tcp, addr, &tv) < 0)
+ tprintf("{...}");
+ else
+ tprintf("{%u, %u}", tv.tv_sec, tv.tv_usec);
+}
+#endif
+
+
+int
+sys_time(tcp)
+struct tcb *tcp;
+{
+ if (exiting(tcp)) {
+#ifndef SVR4
+ printnum(tcp, tcp->u_arg[0], "%ld");
+#endif /* SVR4 */
+ }
+ return 0;
+}
+
+int
+sys_stime(tcp)
+struct tcb *tcp;
+{
+ if (exiting(tcp)) {
+ printnum(tcp, tcp->u_arg[0], "%ld");
+ }
+ return 0;
+}
+
+int
+sys_gettimeofday(tcp)
+struct tcb *tcp;
+{
+ if (exiting(tcp)) {
+ if (syserror(tcp)) {
+ tprintf("%#lx, %#lx",
+ tcp->u_arg[0], tcp->u_arg[1]);
+ return 0;
+ }
+ printtv(tcp, tcp->u_arg[0]);
+#ifndef SVR4
+ tprintf(", ");
+ printtv(tcp, tcp->u_arg[1]);
+#endif /* !SVR4 */
+ }
+ return 0;
+}
+
+
+#ifdef ALPHA
+int
+sys_osf_gettimeofday(tcp)
+struct tcb *tcp;
+{
+ if (exiting(tcp)) {
+ if (syserror(tcp)) {
+ tprintf("%#lx, %#lx",
+ tcp->u_arg[0], tcp->u_arg[1]);
+ return 0;
+ }
+ printtv32(tcp, tcp->u_arg[0]);
+#ifndef SVR4
+ tprintf(", ");
+ printtv32(tcp, tcp->u_arg[1]);
+#endif /* !SVR4 */
+ }
+ return 0;
+}
+#endif
+
+int
+sys_settimeofday(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printtv(tcp, tcp->u_arg[0]);
+#ifndef SVR4
+ tprintf(", ");
+ printtv(tcp, tcp->u_arg[1]);
+#endif /* !SVR4 */
+ }
+ return 0;
+}
+
+#ifdef ALPHA
+int
+sys_osf_settimeofday(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printtv32(tcp, tcp->u_arg[0]);
+#ifndef SVR4
+ tprintf(", ");
+ printtv32(tcp, tcp->u_arg[1]);
+#endif /* !SVR4 */
+ }
+ return 0;
+}
+#endif
+
+int
+sys_adjtime(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printtv(tcp, tcp->u_arg[0]);
+ tprintf(", ");
+ } else {
+ if (syserror(tcp))
+ tprintf("%#lx", tcp->u_arg[1]);
+ else
+ printtv(tcp, tcp->u_arg[1]);
+ }
+ return 0;
+}
+
+static const struct xlat which[] = {
+ { ITIMER_REAL, "ITIMER_REAL" },
+ { ITIMER_VIRTUAL,"ITIMER_VIRTUAL"},
+ { ITIMER_PROF, "ITIMER_PROF" },
+ { 0, NULL },
+};
+
+static void
+printitv(tcp, addr)
+struct tcb *tcp;
+long addr;
+{
+ struct itimerval itv;
+
+ if (addr == 0)
+ tprintf("NULL");
+ else if (!verbose(tcp))
+ tprintf("%#lx", addr);
+ else if (umove(tcp, addr, &itv) < 0)
+ tprintf("{...}");
+ else {
+ tprintf("{it_interval={%lu, %lu}, it_value={%lu, %lu}}",
+ (long) itv.it_interval.tv_sec, (long) itv.it_interval.tv_usec,
+ (long) itv.it_value.tv_sec, (long) itv.it_value.tv_usec);
+ }
+}
+
+
+#ifdef ALPHA
+static void
+printitv32(tcp, addr)
+struct tcb *tcp;
+long addr;
+{
+ struct itimerval32
+ {
+ struct timeval32 it_interval;
+ struct timeval32 it_value;
+ } itv;
+
+ if (addr == 0)
+ tprintf("NULL");
+ else if (!verbose(tcp))
+ tprintf("%#lx", addr);
+ else if (umove(tcp, addr, &itv) < 0)
+ tprintf("{...}");
+ else {
+ tprintf("{it_interval={%u, %u}, it_value={%u, %u}}",
+ itv.it_interval.tv_sec, itv.it_interval.tv_usec,
+ itv.it_value.tv_sec, itv.it_value.tv_usec);
+ }
+}
+#endif
+
+int
+sys_getitimer(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printxval(which, tcp->u_arg[0], "ITIMER_???");
+ tprintf(", ");
+ } else {
+ if (syserror(tcp))
+ tprintf("%#lx", tcp->u_arg[1]);
+ else
+ printitv(tcp, tcp->u_arg[1]);
+ }
+ return 0;
+}
+
+
+#ifdef ALPHA
+int
+sys_osf_getitimer(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printxval(which, tcp->u_arg[0], "ITIMER_???");
+ tprintf(", ");
+ } else {
+ if (syserror(tcp))
+ tprintf("%#lx", tcp->u_arg[1]);
+ else
+ printitv32(tcp, tcp->u_arg[1]);
+ }
+ return 0;
+}
+#endif
+
+int
+sys_setitimer(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printxval(which, tcp->u_arg[0], "ITIMER_???");
+ tprintf(", ");
+ printitv(tcp, tcp->u_arg[1]);
+ tprintf(", ");
+ } else {
+ if (syserror(tcp))
+ tprintf("%#lx", tcp->u_arg[2]);
+ else
+ printitv(tcp, tcp->u_arg[2]);
+ }
+ return 0;
+}
+
+#ifdef ALPHA
+int
+sys_osf_setitimer(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printxval(which, tcp->u_arg[0], "ITIMER_???");
+ tprintf(", ");
+ printitv32(tcp, tcp->u_arg[1]);
+ tprintf(", ");
+ } else {
+ if (syserror(tcp))
+ tprintf("%#lx", tcp->u_arg[2]);
+ else
+ printitv32(tcp, tcp->u_arg[2]);
+ }
+ return 0;
+}
+#endif
+
+#ifdef LINUX
+
+int
+sys_adjtimex(tcp)
+struct tcb *tcp;
+{
+ struct timex txc;
+
+ if (exiting(tcp)) {
+ if (tcp->u_arg[0] == 0)
+ tprintf("NULL");
+ else if (syserror(tcp) || !verbose(tcp))
+ tprintf("%#lx", tcp->u_arg[0]);
+ else if (umove(tcp, tcp->u_arg[0], &txc) < 0)
+ tprintf("{...}");
+ else {
+#if LINUX_VERSION_CODE < 66332
+ tprintf("{mode=%d, offset=%ld, frequency=%ld, ",
+ txc.mode, txc.offset, txc.frequency);
+ tprintf("maxerror=%ld, esterror=%lu, status=%u, ",
+ txc.maxerror, txc.esterror, txc.status);
+ tprintf("time_constant=%ld, precision=%lu, ",
+ txc.time_constant, txc.precision);
+ tprintf("tolerance=%ld, time={%lu, %lu}}",
+ txc.tolerance, (long) txc.time.tv_sec,
+ (long) txc.time.tv_usec);
+#else
+ tprintf("{modes=%d, offset=%ld, freq=%ld, ",
+ txc.modes, txc.offset, txc.freq);
+ tprintf("maxerror=%ld, esterror=%lu, status=%u, ",
+ txc.maxerror, txc.esterror, txc.status);
+ tprintf("constant=%ld, precision=%lu, ",
+ txc.constant, txc.precision);
+ tprintf("tolerance=%ld, time={%lu, %lu}}",
+ txc.tolerance, (long) txc.time.tv_sec,
+ (long) txc.time.tv_usec);
+ /* there's a bunch of other stuff, but it's not
+ * worth the time or the trouble to include */
+#endif
+ }
+ }
+ return 0;
+}
+
+static const struct xlat clockflags[] = {
+ { TIMER_ABSTIME, "TIMER_ABSTIME" },
+ { 0, NULL }
+};
+
+static const struct xlat clocknames[] = {
+#ifdef CLOCK_REALTIME
+ { CLOCK_REALTIME, "CLOCK_REALTIME" },
+#endif
+#ifdef CLOCK_MONOTONIC
+ { CLOCK_MONOTONIC, "CLOCK_MONOTONIC" },
+#endif
+ { 0, NULL }
+};
+
+int
+sys_clock_settime(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printxval(clocknames, tcp->u_arg[0], "CLOCK_???");
+ tprintf(", ");
+ printtv(tcp, tcp->u_arg[1]);
+ }
+ return 0;
+}
+
+int
+sys_clock_gettime(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printxval(clocknames, tcp->u_arg[0], "CLOCK_???");
+ tprintf(", ");
+ } else {
+ if (syserror(tcp))
+ tprintf("%#lx", tcp->u_arg[1]);
+ else
+ printtv(tcp, tcp->u_arg[1]);
+ }
+ return 0;
+}
+
+int
+sys_clock_nanosleep(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printxval(clocknames, tcp->u_arg[0], "CLOCK_???");
+ tprintf(", ");
+ printflags(clockflags, tcp->u_arg[1], "TIMER_???");
+ tprintf(", ");
+ printtv(tcp, tcp->u_arg[2]);
+ tprintf(", ");
+ } else {
+ if (syserror(tcp))
+ tprintf("%#lx", tcp->u_arg[3]);
+ else
+ printtv(tcp, tcp->u_arg[3]);
+ }
+ return 0;
+}
+
+#ifndef SIGEV_THREAD_ID
+# define SIGEV_THREAD_ID 4
+#endif
+static const struct xlat sigev_value[] = {
+ { SIGEV_SIGNAL+1, "SIGEV_SIGNAL" },
+ { SIGEV_NONE+1, "SIGEV_NONE" },
+ { SIGEV_THREAD+1, "SIGEV_THREAD" },
+ { SIGEV_THREAD_ID+1, "SIGEV_THREAD_ID" },
+ { 0, NULL }
+};
+
+void
+printsigevent(tcp, arg)
+struct tcb *tcp;
+long arg;
+{
+ struct sigevent sev;
+ if (umove (tcp, arg, &sev) < 0)
+ tprintf("{...}");
+ else {
+ tprintf("{%p, ", sev.sigev_value.sival_ptr);
+ if (sev.sigev_notify == SIGEV_SIGNAL)
+ tprintf("%s, ", signame(sev.sigev_signo));
+ else
+ tprintf("%u, ", sev.sigev_signo);
+ printxval(sigev_value, sev.sigev_notify+1, "SIGEV_???");
+ tprintf(", ");
+ if (sev.sigev_notify == SIGEV_THREAD_ID)
+ /* _pad[0] is the _tid field which might not be
+ present in the userlevel definition of the
+ struct. */
+ tprintf("{%d}", sev._sigev_un._pad[0]);
+ else if (sev.sigev_notify == SIGEV_THREAD)
+ tprintf("{%p, %p}", sev.sigev_notify_function,
+ sev.sigev_notify_attributes);
+ else
+ tprintf("{...}");
+ tprintf("}");
+ }
+}
+
+int
+sys_timer_create(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printxval(clocknames, tcp->u_arg[0], "CLOCK_???");
+ tprintf(", ");
+ printsigevent(tcp, tcp->u_arg[1]);
+ tprintf(", ");
+ } else {
+ if (syserror(tcp))
+ tprintf("%#lx", tcp->u_arg[2]);
+ else {
+ void *p;
+ umove(tcp, tcp->u_arg[2], &p);
+ tprintf("{%p}", p);
+ }
+ }
+ return 0;
+}
+
+int
+sys_timer_settime(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%#lx, ", tcp->u_arg[0]);
+ printflags(clockflags, tcp->u_arg[1], "TIMER_???");
+ tprintf(", ");
+ printitv(tcp, tcp->u_arg[2]);
+ tprintf(", ");
+ } else {
+ if (syserror(tcp))
+ tprintf("%#lx", tcp->u_arg[3]);
+ else
+ printitv(tcp, tcp->u_arg[3]);
+ }
+ return 0;
+}
+
+int
+sys_timer_gettime(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ tprintf("%#lx, ", tcp->u_arg[0]);
+ } else {
+ if (syserror(tcp))
+ tprintf("%#lx", tcp->u_arg[1]);
+ else
+ printitv(tcp, tcp->u_arg[1]);
+ }
+ return 0;
+}
+
+static void
+print_rtc(tcp, rt)
+struct tcb *tcp;
+const struct rtc_time *rt;
+{
+ tprintf("{tm_sec=%d, tm_min=%d, tm_hour=%d, "
+ "tm_mday=%d, tm_mon=%d, tm_year=%d, ",
+ rt->tm_sec, rt->tm_min, rt->tm_hour,
+ rt->tm_mday, rt->tm_mon, rt->tm_year);
+ if (!abbrev(tcp))
+ tprintf("tm_wday=%d, tm_yday=%d, tm_isdst=%d}",
+ rt->tm_wday, rt->tm_yday, rt->tm_isdst);
+ else
+ tprintf("...}");
+}
+
+int
+rtc_ioctl(tcp, code, arg)
+struct tcb *tcp;
+long code;
+long arg;
+{
+ switch (code) {
+ case RTC_ALM_SET:
+ case RTC_SET_TIME:
+ if (entering(tcp)) {
+ struct rtc_time rt;
+ if (umove(tcp, arg, &rt) < 0)
+ tprintf(", %#lx", arg);
+ else {
+ tprintf(", ");
+ print_rtc(tcp, &rt);
+ }
+ }
+ break;
+ case RTC_ALM_READ:
+ case RTC_RD_TIME:
+ if (exiting(tcp)) {
+ struct rtc_time rt;
+ if (syserror(tcp) || umove(tcp, arg, &rt) < 0)
+ tprintf(", %#lx", arg);
+ else {
+ tprintf(", ");
+ print_rtc(tcp, &rt);
+ }
+ }
+ break;
+ case RTC_IRQP_SET:
+ case RTC_EPOCH_SET:
+ if (entering(tcp))
+ tprintf(", %lu", arg);
+ break;
+ case RTC_IRQP_READ:
+ case RTC_EPOCH_READ:
+ if (exiting(tcp))
+ tprintf(", %lu", arg);
+ break;
+ case RTC_WKALM_SET:
+ if (entering(tcp)) {
+ struct rtc_wkalrm wk;
+ if (umove(tcp, arg, &wk) < 0)
+ tprintf(", %#lx", arg);
+ else {
+ tprintf(", {enabled=%d, pending=%d, ",
+ wk.enabled, wk.pending);
+ print_rtc(tcp, &wk.time);
+ tprintf("}");
+ }
+ }
+ break;
+ case RTC_WKALM_RD:
+ if (exiting(tcp)) {
+ struct rtc_wkalrm wk;
+ if (syserror(tcp) || umove(tcp, arg, &wk) < 0)
+ tprintf(", %#lx", arg);
+ else {
+ tprintf(", {enabled=%d, pending=%d, ",
+ wk.enabled, wk.pending);
+ print_rtc(tcp, &wk.time);
+ tprintf("}");
+ }
+ }
+ break;
+ default:
+ if (entering(tcp))
+ tprintf(", %#lx", arg);
+ break;
+ }
+ return 1;
+}
+#endif /* LINUX */
diff --git a/util.c b/util.c
new file mode 100644
index 0000000..8dfc0a4
--- /dev/null
+++ b/util.c
@@ -0,0 +1,2086 @@
+/*
+ * Copyright (c) 1991, 1992 Paul Kranenburg <pk@cs.few.eur.nl>
+ * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
+ * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
+ * Copyright (c) 1996-1999 Wichert Akkerman <wichert@cistron.nl>
+ * Copyright (c) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ * Linux for s390 port by D.J. Barrow
+ * <barrow_dj@mail.yahoo.com,djbarrow@de.ibm.com>
+ * 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.
+ *
+ * $Id: util.c,v 1.62 2005/06/08 20:45:28 roland Exp $
+ */
+
+#include "defs.h"
+#include "../syscall-android.h"
+
+#include <signal.h>
+#include <sys/syscall.h>
+#ifndef HAVE_ANDROID_OS
+#include <sys/user.h>
+#endif
+#include <sys/param.h>
+#include <fcntl.h>
+#if HAVE_SYS_UIO_H
+#include <sys/uio.h>
+#endif
+#ifdef SUNOS4
+#include <machine/reg.h>
+#include <a.out.h>
+#include <link.h>
+#endif /* SUNOS4 */
+
+#if defined(linux) && (__GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 1))
+#include <linux/ptrace.h>
+#endif
+
+#if defined(LINUX) && defined(IA64)
+# include <asm/ptrace_offsets.h>
+# include <asm/rse.h>
+#endif
+
+#ifdef HAVE_SYS_REG_H
+#include <sys/reg.h>
+# define PTRACE_PEEKUSR PTRACE_PEEKUSER
+#elif defined(HAVE_LINUX_PTRACE_H)
+#undef PTRACE_SYSCALL
+# ifdef HAVE_STRUCT_IA64_FPREG
+# define ia64_fpreg XXX_ia64_fpreg
+# endif
+# ifdef HAVE_STRUCT_PT_ALL_USER_REGS
+# define pt_all_user_regs XXX_pt_all_user_regs
+# endif
+#include <linux/ptrace.h>
+# undef ia64_fpreg
+# undef pt_all_user_regs
+#endif
+
+#ifdef SUNOS4_KERNEL_ARCH_KLUDGE
+#include <sys/utsname.h>
+#endif /* SUNOS4_KERNEL_ARCH_KLUDGE */
+
+#if defined(LINUXSPARC)
+
+# define fpq kernel_fpq
+# define fq kernel_fq
+# define fpu kernel_fpu
+# include <asm/reg.h>
+# undef fpq
+# undef fq
+# undef fpu
+
+#if defined (SPARC64)
+# define r_pc r_tpc
+# undef PTRACE_GETREGS
+# define PTRACE_GETREGS PTRACE_GETREGS64
+# undef PTRACE_SETREGS
+# define PTRACE_SETREGS PTRACE_SETREGS64
+#endif /* SPARC64 */
+
+#if !defined(__GLIBC__)
+
+#include <linux/unistd.h>
+
+#define _hack_syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,\
+ type5,arg5,syscall) \
+type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5) \
+{ \
+ long __res; \
+\
+__asm__ volatile ("or %%g0, %1, %%o0\n\t" \
+ "or %%g0, %2, %%o1\n\t" \
+ "or %%g0, %3, %%o2\n\t" \
+ "or %%g0, %4, %%o3\n\t" \
+ "or %%g0, %5, %%o4\n\t" \
+ "or %%g0, %6, %%g1\n\t" \
+#if defined (SPARC64)
+ "t 0x6d\n\t" \
+#else
+ "t 0x10\n\t" \
+#endif
+ "bcc 1f\n\t" \
+ "or %%g0, %%o0, %0\n\t" \
+ "sub %%g0, %%o0, %0\n\t" \
+ "1:\n\t" \
+ : "=r" (__res) \
+ : "0" ((long)(arg1)),"1" ((long)(arg2)), \
+ "2" ((long)(arg3)),"3" ((long)(arg4)),"4" ((long)(arg5)), \
+ "i" (__NR_##syscall) \
+ : "g1", "o0", "o1", "o2", "o3", "o4"); \
+if (__res>=0) \
+ return (type) __res; \
+errno = -__res; \
+return -1; \
+}
+
+static _hack_syscall5(int,_ptrace,int,__request,int,__pid,int,__addr,int,__data,int,__addr2,ptrace)
+
+#define _ptrace
+
+#endif
+
+#endif
+
+/* macros */
+#ifndef MAX
+#define MAX(a,b) (((a) > (b)) ? (a) : (b))
+#endif
+#ifndef MIN
+#define MIN(a,b) (((a) < (b)) ? (a) : (b))
+#endif
+
+#if 0
+void
+tv_tv(tv, a, b)
+struct timeval *tv;
+int a;
+int b;
+{
+ tv->tv_sec = a;
+ tv->tv_usec = b;
+}
+#endif
+
+int
+tv_nz(a)
+struct timeval *a;
+{
+ return a->tv_sec || a->tv_usec;
+}
+
+int
+tv_cmp(a, b)
+struct timeval *a, *b;
+{
+ if (a->tv_sec < b->tv_sec
+ || (a->tv_sec == b->tv_sec && a->tv_usec < b->tv_usec))
+ return -1;
+ if (a->tv_sec > b->tv_sec
+ || (a->tv_sec == b->tv_sec && a->tv_usec > b->tv_usec))
+ return 1;
+ return 0;
+}
+
+double
+tv_float(tv)
+struct timeval *tv;
+{
+ return tv->tv_sec + tv->tv_usec/1000000.0;
+}
+
+void
+tv_add(tv, a, b)
+struct timeval *tv, *a, *b;
+{
+ tv->tv_sec = a->tv_sec + b->tv_sec;
+ tv->tv_usec = a->tv_usec + b->tv_usec;
+ if (tv->tv_usec > 1000000) {
+ tv->tv_sec++;
+ tv->tv_usec -= 1000000;
+ }
+}
+
+void
+tv_sub(tv, a, b)
+struct timeval *tv, *a, *b;
+{
+ tv->tv_sec = a->tv_sec - b->tv_sec;
+ tv->tv_usec = a->tv_usec - b->tv_usec;
+ if (((long) tv->tv_usec) < 0) {
+ tv->tv_sec--;
+ tv->tv_usec += 1000000;
+ }
+}
+
+void
+tv_div(tv, a, n)
+struct timeval *tv, *a;
+int n;
+{
+ tv->tv_usec = (a->tv_sec % n * 1000000 + a->tv_usec + n / 2) / n;
+ tv->tv_sec = a->tv_sec / n + tv->tv_usec / 1000000;
+ tv->tv_usec %= 1000000;
+}
+
+void
+tv_mul(tv, a, n)
+struct timeval *tv, *a;
+int n;
+{
+ tv->tv_usec = a->tv_usec * n;
+ tv->tv_sec = a->tv_sec * n + a->tv_usec / 1000000;
+ tv->tv_usec %= 1000000;
+}
+
+char *
+xlookup(xlat, val)
+const struct xlat *xlat;
+int val;
+{
+ for (; xlat->str != NULL; xlat++)
+ if (xlat->val == val)
+ return xlat->str;
+ return NULL;
+}
+
+/*
+ * Print entry in struct xlat table, if there.
+ */
+void
+printxval(xlat, val, dflt)
+const struct xlat *xlat;
+int val;
+const char *dflt;
+{
+ char *str = xlookup(xlat, val);
+
+ if (str)
+ tprintf("%s", str);
+ else
+ tprintf("%#x /* %s */", val, dflt);
+}
+
+/*
+ * Interpret `xlat' as an array of flags
+ * print the entries whose bits are on in `flags'
+ * return # of flags printed.
+ */
+int
+addflags(xlat, flags)
+const struct xlat *xlat;
+int flags;
+{
+ int n;
+
+ for (n = 0; xlat->str; xlat++) {
+ if (xlat->val && (flags & xlat->val) == xlat->val) {
+ tprintf("|%s", xlat->str);
+ flags &= ~xlat->val;
+ n++;
+ }
+ }
+ if (flags) {
+ tprintf("|%#x", flags);
+ n++;
+ }
+ return n;
+}
+
+int
+printflags(xlat, flags, dflt)
+const struct xlat *xlat;
+int flags;
+const char *dflt;
+{
+ int n;
+ char *sep;
+
+ if (flags == 0 && xlat->val == 0) {
+ tprintf("%s", xlat->str);
+ return 1;
+ }
+
+ sep = "";
+ for (n = 0; xlat->str; xlat++) {
+ if (xlat->val && (flags & xlat->val) == xlat->val) {
+ tprintf("%s%s", sep, xlat->str);
+ flags &= ~xlat->val;
+ sep = "|";
+ n++;
+ }
+ }
+
+ if (n) {
+ if (flags) {
+ tprintf("%s%#x", sep, flags);
+ n++;
+ }
+ } else {
+ if (flags) {
+ tprintf("%#x", flags);
+ if (dflt)
+ tprintf(" /* %s */", dflt);
+ } else {
+ if (dflt)
+ tprintf("0");
+ }
+ }
+
+ return n;
+}
+
+void
+printnum(tcp, addr, fmt)
+struct tcb *tcp;
+long addr;
+char *fmt;
+{
+ long num;
+
+ if (!addr) {
+ tprintf("NULL");
+ return;
+ }
+ if (umove(tcp, addr, &num) < 0) {
+ tprintf("%#lx", addr);
+ return;
+ }
+ tprintf("[");
+ tprintf(fmt, num);
+ tprintf("]");
+}
+
+void
+printuid(text, uid)
+const char *text;
+unsigned long uid;
+{
+ tprintf("%s", text);
+ tprintf((uid == -1) ? "%ld" : "%lu", uid);
+}
+
+static char path[MAXPATHLEN + 1];
+
+static void
+string_quote(str)
+const char *str;
+{
+ char buf[2 * MAXPATHLEN + 1];
+ char *s;
+
+ if (!strpbrk(str, "\"\'\\")) {
+ tprintf("\"%s\"", str);
+ return;
+ }
+ for (s = buf; *str; str++) {
+ switch (*str) {
+ case '\"': case '\'': case '\\':
+ *s++ = '\\'; *s++ = *str; break;
+ default:
+ *s++ = *str; break;
+ }
+ }
+ *s = '\0';
+ tprintf("\"%s\"", buf);
+}
+
+void
+printpath(tcp, addr)
+struct tcb *tcp;
+long addr;
+{
+ if (addr == 0)
+ tprintf("NULL");
+ else if (umovestr(tcp, addr, MAXPATHLEN, path) < 0)
+ tprintf("%#lx", addr);
+ else
+ string_quote(path);
+ return;
+}
+
+void
+printpathn(tcp, addr, n)
+struct tcb *tcp;
+long addr;
+int n;
+{
+ if (addr == 0)
+ tprintf("NULL");
+ else if (umovestr(tcp, addr, n, path) < 0)
+ tprintf("%#lx", addr);
+ else {
+ path[n] = '\0';
+ string_quote(path);
+ }
+}
+
+void
+printstr(tcp, addr, len)
+struct tcb *tcp;
+long addr;
+int len;
+{
+ static unsigned char *str = NULL;
+ static char *outstr;
+ int i, n, c, usehex;
+ char *s, *outend;
+
+ if (!addr) {
+ tprintf("NULL");
+ return;
+ }
+ if (!str) {
+ if ((str = malloc(max_strlen)) == NULL
+ || (outstr = malloc(2*max_strlen)) == NULL) {
+ fprintf(stderr, "out of memory\n");
+ tprintf("%#lx", addr);
+ return;
+ }
+ }
+ outend = outstr + max_strlen * 2 - 10;
+ if (len < 0) {
+ n = max_strlen;
+ if (umovestr(tcp, addr, n, (char *) str) < 0) {
+ tprintf("%#lx", addr);
+ return;
+ }
+ }
+ else {
+ n = MIN(len, max_strlen);
+ if (umoven(tcp, addr, n, (char *) str) < 0) {
+ tprintf("%#lx", addr);
+ return;
+ }
+ }
+
+ usehex = 0;
+ if (xflag > 1)
+ usehex = 1;
+ else if (xflag) {
+ for (i = 0; i < n; i++) {
+ c = str[i];
+ if (len < 0 && c == '\0')
+ break;
+ if (!isprint(c) && !isspace(c)) {
+ usehex = 1;
+ break;
+ }
+ }
+ }
+
+ s = outstr;
+ *s++ = '\"';
+
+ if (usehex) {
+ for (i = 0; i < n; i++) {
+ c = str[i];
+ if (len < 0 && c == '\0')
+ break;
+ sprintf(s, "\\x%02x", c);
+ s += 4;
+ if (s > outend)
+ break;
+ }
+ }
+ else {
+ for (i = 0; i < n; i++) {
+ c = str[i];
+ if (len < 0 && c == '\0')
+ break;
+ switch (c) {
+ case '\"': case '\'': case '\\':
+ *s++ = '\\'; *s++ = c; break;
+ case '\f':
+ *s++ = '\\'; *s++ = 'f'; break;
+ case '\n':
+ *s++ = '\\'; *s++ = 'n'; break;
+ case '\r':
+ *s++ = '\\'; *s++ = 'r'; break;
+ case '\t':
+ *s++ = '\\'; *s++ = 't'; break;
+ case '\v':
+ *s++ = '\\'; *s++ = 'v'; break;
+ default:
+ if (isprint(c))
+ *s++ = c;
+ else if (i < n - 1 && isdigit(str[i + 1])) {
+ sprintf(s, "\\%03o", c);
+ s += 4;
+ }
+ else {
+ sprintf(s, "\\%o", c);
+ s += strlen(s);
+ }
+ break;
+ }
+ if (s > outend)
+ break;
+ }
+ }
+
+ *s++ = '\"';
+ if (i < len || (len < 0 && (i == n || s > outend))) {
+ *s++ = '.'; *s++ = '.'; *s++ = '.';
+ }
+ *s = '\0';
+ tprintf("%s", outstr);
+}
+
+#if HAVE_SYS_UIO_H
+void
+dumpiov(tcp, len, addr)
+struct tcb * tcp;
+int len;
+long addr;
+{
+ struct iovec *iov;
+ int i;
+ unsigned long size;
+
+ size = sizeof(*iov) * (unsigned long) len;
+ if (size / sizeof(*iov) != len
+ || (iov = (struct iovec *) malloc(size)) == NULL) {
+ fprintf(stderr, "out of memory\n");
+ return;
+ }
+ if (umoven(tcp, addr, size, (char *) iov) >= 0) {
+ for (i = 0; i < len; i++) {
+ /* include the buffer number to make it easy to
+ * match up the trace with the source */
+ tprintf(" * %lu bytes in buffer %d\n",
+ (unsigned long)iov[i].iov_len, i);
+ dumpstr(tcp, (long) iov[i].iov_base,
+ iov[i].iov_len);
+ }
+ }
+ free((char *) iov);
+
+}
+#endif
+
+void
+dumpstr(tcp, addr, len)
+struct tcb *tcp;
+long addr;
+int len;
+{
+ static int strsize = -1;
+ static unsigned char *str;
+ static char outstr[80];
+ char *s;
+ int i, j;
+
+ if (strsize < len) {
+ if (str)
+ free(str);
+ if ((str = malloc(len)) == NULL) {
+ fprintf(stderr, "out of memory\n");
+ return;
+ }
+ strsize = len;
+ }
+
+ if (umoven(tcp, addr, len, (char *) str) < 0)
+ return;
+
+ for (i = 0; i < len; i += 16) {
+ 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;
+ }
+ else {
+ *s++ = ' '; *s++ = ' '; *s++ = ' ';
+ }
+ }
+ *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++ = '.';
+ }
+ else
+ *s++ = ' ';
+ }
+ tprintf("%s |\n", outstr);
+ }
+}
+
+#define PAGMASK (~(PAGSIZ - 1))
+/*
+ * move `len' bytes of data from process `pid'
+ * at address `addr' to our space at `laddr'
+ */
+int
+umoven(tcp, addr, len, laddr)
+struct tcb *tcp;
+long addr;
+int len;
+char *laddr;
+{
+
+#ifdef LINUX
+ int pid = tcp->pid;
+ int n, m;
+ int started = 0;
+ union {
+ long val;
+ char x[sizeof(long)];
+ } u;
+
+ 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 (started && (errno==EPERM || errno==EIO)) {
+ /* Ran into 'end of memory' - stupid "printpath" */
+ return 0;
+ }
+ /* But if not started, we had a bogus address. */
+ perror("ptrace: umoven");
+ return -1;
+ }
+ started = 1;
+ memcpy(laddr, &u.x[n], m = MIN(sizeof(long) - n, len));
+ addr += sizeof(long), laddr += 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)
+ perror("ptrace: umoven");
+ return -1;
+ }
+ started = 1;
+ memcpy(laddr, u.x, m = MIN(sizeof(long), len));
+ addr += sizeof(long), laddr += m, len -= m;
+ }
+#endif /* LINUX */
+
+#ifdef SUNOS4
+ int pid = tcp->pid;
+#if 0
+ int n, m;
+ union {
+ long val;
+ char x[sizeof(long)];
+ } u;
+
+ 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) {
+ perror("umoven");
+ return -1;
+ }
+ memcpy(laddr, &u.x[n], m = MIN(sizeof(long) - n, len));
+ addr += sizeof(long), laddr += m, len -= m;
+ }
+ while (len) {
+ errno = 0;
+ u.val = ptrace(PTRACE_PEEKDATA, pid, (char *) addr, 0);
+ if (errno) {
+ perror("umoven");
+ return -1;
+ }
+ memcpy(laddr, u.x, m = MIN(sizeof(long), len));
+ addr += sizeof(long), laddr += m, len -= m;
+ }
+#else /* !oldway */
+ int n;
+
+ while (len) {
+ n = MIN(len, PAGSIZ);
+ n = MIN(n, ((addr + PAGSIZ) & PAGMASK) - addr);
+ if (ptrace(PTRACE_READDATA, pid,
+ (char *) addr, len, laddr) < 0) {
+ perror("umoven: ptrace(PTRACE_READDATA, ...)");
+ abort();
+ return -1;
+ }
+ len -= n;
+ addr += n;
+ laddr += n;
+ }
+#endif /* !oldway */
+#endif /* SUNOS4 */
+
+#ifdef USE_PROCFS
+#ifdef HAVE_MP_PROCFS
+ int fd = tcp->pfd_as;
+#else
+ int fd = tcp->pfd;
+#endif
+ lseek(fd, addr, SEEK_SET);
+ if (read(fd, laddr, len) == -1)
+ return -1;
+#endif /* USE_PROCFS */
+
+ return 0;
+}
+
+/*
+ * like `umove' but make the additional effort of looking
+ * for a terminating zero byte.
+ */
+int
+umovestr(tcp, addr, len, laddr)
+struct tcb *tcp;
+long addr;
+int len;
+char *laddr;
+{
+#ifdef USE_PROCFS
+#ifdef HAVE_MP_PROCFS
+ int fd = tcp->pfd_as;
+#else
+ int fd = tcp->pfd;
+#endif
+ /* Some systems (e.g. FreeBSD) can be upset if we read off the
+ end of valid memory, avoid this by trying to read up
+ to page boundaries. But we don't know what a page is (and
+ getpagesize(2) (if it exists) doesn't necessarily return
+ hardware page size). Assume all pages >= 1024 (a-historical
+ I know) */
+
+ int page = 1024; /* How to find this? */
+ int move = page - (addr & (page - 1));
+ int left = len;
+
+ lseek(fd, addr, SEEK_SET);
+
+ while (left) {
+ if (move > left) move = left;
+ if ((move = read(fd, laddr, move)) <= 0)
+ return left != len ? 0 : -1;
+ if (memchr (laddr, 0, move)) break;
+ left -= move;
+ laddr += move;
+ addr += move;
+ move = page;
+ }
+#else /* !USE_PROCFS */
+ int started = 0;
+ int pid = tcp->pid;
+ int i, n, m;
+ union {
+ long val;
+ char x[sizeof(long)];
+ } u;
+
+ 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 (started && (errno==EPERM || errno==EIO)) {
+ /* Ran into 'end of memory' - stupid "printpath" */
+ return 0;
+ }
+ perror("umovestr");
+ return -1;
+ }
+ started = 1;
+ memcpy(laddr, &u.x[n], m = MIN(sizeof(long)-n,len));
+ while (n & (sizeof(long) - 1))
+ if (u.x[n++] == '\0')
+ return 0;
+ addr += sizeof(long), laddr += 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;
+ }
+ perror("umovestr");
+ return -1;
+ }
+ started = 1;
+ memcpy(laddr, u.x, m = MIN(sizeof(long), len));
+ for (i = 0; i < sizeof(long); i++)
+ if (u.x[i] == '\0')
+ return 0;
+
+ addr += sizeof(long), laddr += m, len -= m;
+ }
+#endif /* !USE_PROCFS */
+ return 0;
+}
+
+#ifdef LINUX
+#if !defined (SPARC) && !defined(SPARC64)
+#define PTRACE_WRITETEXT 101
+#define PTRACE_WRITEDATA 102
+#endif /* !SPARC && !SPARC64 */
+#endif /* LINUX */
+
+#ifdef SUNOS4
+
+static int
+uload(cmd, pid, addr, len, laddr)
+int cmd;
+int pid;
+long addr;
+int len;
+char *laddr;
+{
+#if 0
+ int n;
+
+ while (len) {
+ n = MIN(len, PAGSIZ);
+ n = MIN(n, ((addr + PAGSIZ) & PAGMASK) - addr);
+ if (ptrace(cmd, pid, (char *)addr, n, laddr) < 0) {
+ perror("uload: ptrace(PTRACE_WRITE, ...)");
+ return -1;
+ }
+ len -= n;
+ addr += n;
+ laddr += n;
+ }
+#else
+ int peek, poke;
+ int n, m;
+ union {
+ long val;
+ char x[sizeof(long)];
+ } u;
+
+ if (cmd == PTRACE_WRITETEXT) {
+ peek = PTRACE_PEEKTEXT;
+ poke = PTRACE_POKETEXT;
+ }
+ else {
+ peek = PTRACE_PEEKDATA;
+ poke = PTRACE_POKEDATA;
+ }
+ if (addr & (sizeof(long) - 1)) {
+ /* addr not a multiple of sizeof(long) */
+ n = addr - (addr & -sizeof(long)); /* residue */
+ addr &= -sizeof(long);
+ errno = 0;
+ u.val = ptrace(peek, pid, (char *) addr, 0);
+ if (errno) {
+ perror("uload: POKE");
+ return -1;
+ }
+ memcpy(&u.x[n], laddr, m = MIN(sizeof(long) - n, len));
+ if (ptrace(poke, pid, (char *)addr, u.val) < 0) {
+ perror("uload: POKE");
+ return -1;
+ }
+ addr += sizeof(long), laddr += m, len -= m;
+ }
+ while (len) {
+ if (len < sizeof(long))
+ u.val = ptrace(peek, pid, (char *) addr, 0);
+ memcpy(u.x, laddr, m = MIN(sizeof(long), len));
+ if (ptrace(poke, pid, (char *) addr, u.val) < 0) {
+ perror("uload: POKE");
+ return -1;
+ }
+ addr += sizeof(long), laddr += m, len -= m;
+ }
+#endif
+ return 0;
+}
+
+int
+tload(pid, addr, len, laddr)
+int pid;
+int addr, len;
+char *laddr;
+{
+ return uload(PTRACE_WRITETEXT, pid, addr, len, laddr);
+}
+
+int
+dload(pid, addr, len, laddr)
+int pid;
+int addr;
+int len;
+char *laddr;
+{
+ return uload(PTRACE_WRITEDATA, pid, addr, len, laddr);
+}
+
+#endif /* SUNOS4 */
+
+#ifndef USE_PROCFS
+
+int
+upeek(pid, off, res)
+int pid;
+long off;
+long *res;
+{
+ long val;
+
+#ifdef SUNOS4_KERNEL_ARCH_KLUDGE
+ {
+ static int is_sun4m = -1;
+ struct utsname name;
+
+ /* Round up the usual suspects. */
+ if (is_sun4m == -1) {
+ if (uname(&name) < 0) {
+ perror("upeek: uname?");
+ exit(1);
+ }
+ is_sun4m = strcmp(name.machine, "sun4m") == 0;
+ if (is_sun4m) {
+ extern const struct xlat struct_user_offsets[];
+ const struct xlat *x;
+
+ for (x = struct_user_offsets; x->str; x++)
+ x->val += 1024;
+ }
+ }
+ if (is_sun4m)
+ off += 1024;
+ }
+#endif /* SUNOS4_KERNEL_ARCH_KLUDGE */
+ errno = 0;
+ val = ptrace(PTRACE_PEEKUSER, pid, (char *) off, 0);
+ if (val == -1 && errno) {
+ char buf[60];
+ sprintf(buf,"upeek: ptrace(PTRACE_PEEKUSER,%d,%lu,0)",pid,off);
+ perror(buf);
+ return -1;
+ }
+ *res = val;
+ return 0;
+}
+
+#endif /* !USE_PROCFS */
+
+#if 0
+long
+getpc(tcp)
+struct tcb *tcp;
+{
+
+#ifdef LINUX
+ long pc;
+#if defined(I386)
+ if (upeek(tcp->pid, 4*EIP, &pc) < 0)
+ return -1;
+#elif defined(X86_64)
+ if (upeek(tcp->pid, 8*RIP, &pc) < 0)
+ return -1;
+#elif defined(IA64)
+ if (upeek(tcp->pid, PT_B0, &pc) < 0)
+ return -1;
+#elif defined(ARM)
+ if (upeek(tcp->pid, 4*15, &pc) < 0)
+ return -1;
+#elif defined(POWERPC)
+ if (upeek(tcp->pid, sizeof(unsigned long)*PT_NIP, &pc) < 0)
+ return -1;
+#elif defined(M68K)
+ if (upeek(tcp->pid, 4*PT_PC, &pc) < 0)
+ return -1;
+#elif defined(ALPHA)
+ if (upeek(tcp->pid, REG_PC, &pc) < 0)
+ return -1;
+#elif defined(MIPS)
+ if (upeek(tcp->pid, REG_EPC, &pc) < 0)
+ return -1;
+#elif defined(SPARC) || defined(SPARC64)
+ struct regs regs;
+ if (ptrace(PTRACE_GETREGS,tcp->pid,(char *)®s,0) < 0)
+ return -1;
+ pc = regs.r_pc;
+#elif defined(S390) || defined(S390X)
+ if(upeek(tcp->pid,PT_PSWADDR,&pc) < 0)
+ return -1;
+#elif defined(HPPA)
+ if(upeek(tcp->pid,PT_IAOQ0,&pc) < 0)
+ return -1;
+#elif defined(SH)
+ if (upeek(tcp->pid, 4*REG_PC ,&pc) < 0)
+ return -1;
+#elif defined(SH64)
+ if (upeek(tcp->pid, REG_PC ,&pc) < 0)
+ return -1;
+#endif
+ return pc;
+#endif /* LINUX */
+
+#ifdef SUNOS4
+ /*
+ * Return current program counter for `pid'
+ * Assumes PC is never 0xffffffff
+ */
+ struct regs regs;
+
+ if (ptrace(PTRACE_GETREGS, tcp->pid, (char *) ®s, 0) < 0) {
+ perror("getpc: ptrace(PTRACE_GETREGS, ...)");
+ return -1;
+ }
+ return regs.r_pc;
+#endif /* SUNOS4 */
+
+#ifdef SVR4
+ /* XXX */
+ return 0;
+#endif /* SVR4 */
+
+#ifdef FREEBSD
+ struct reg regs;
+ pread(tcp->pfd_reg, ®s, sizeof(regs), 0);
+ return regs.r_eip;
+#endif /* FREEBSD */
+}
+#endif
+
+void
+printcall(tcp)
+struct tcb *tcp;
+{
+#define PRINTBADPC tprintf(sizeof(long) == 4 ? "[????????] " : \
+ sizeof(long) == 8 ? "[????????????????] " : \
+ NULL /* crash */)
+
+#ifdef LINUX
+#ifdef I386
+ long eip;
+
+ if (upeek(tcp->pid, 4*EIP, &eip) < 0) {
+ PRINTBADPC;
+ return;
+ }
+ tprintf("[%08lx] ", eip);
+
+#elif defined(S390) || defined(S390X)
+ long psw;
+ if(upeek(tcp->pid,PT_PSWADDR,&psw) < 0) {
+ PRINTBADPC;
+ return;
+ }
+#ifdef S390
+ tprintf("[%08lx] ", psw);
+#elif S390X
+ tprintf("[%16lx] ", psw);
+#endif
+
+#elif defined(X86_64)
+ long rip;
+
+ if (upeek(tcp->pid, 8*RIP, &rip) < 0) {
+ PRINTBADPC;
+ return;
+ }
+ tprintf("[%16lx] ", rip);
+#elif defined(IA64)
+ long ip;
+
+ if (upeek(tcp->pid, PT_B0, &ip) < 0) {
+ PRINTBADPC;
+ return;
+ }
+ tprintf("[%08lx] ", ip);
+#elif defined(POWERPC)
+ long pc;
+
+ if (upeek(tcp->pid, sizeof(unsigned long)*PT_NIP, &pc) < 0) {
+ tprintf ("[????????] ");
+ return;
+ }
+ tprintf("[%08lx] ", pc);
+#elif defined(M68K)
+ long pc;
+
+ if (upeek(tcp->pid, 4*PT_PC, &pc) < 0) {
+ tprintf ("[????????] ");
+ return;
+ }
+ tprintf("[%08lx] ", pc);
+#elif defined(ALPHA)
+ long pc;
+
+ if (upeek(tcp->pid, REG_PC, &pc) < 0) {
+ tprintf ("[????????????????] ");
+ return;
+ }
+ tprintf("[%08lx] ", pc);
+#elif defined(SPARC) || defined(SPARC64)
+ struct regs regs;
+ if (ptrace(PTRACE_GETREGS,tcp->pid,(char *)®s,0) < 0) {
+ PRINTBADPC;
+ return;
+ }
+ tprintf("[%08lx] ", regs.r_pc);
+#elif defined(HPPA)
+ long pc;
+
+ if(upeek(tcp->pid,PT_IAOQ0,&pc) < 0) {
+ tprintf ("[????????] ");
+ return;
+ }
+ tprintf("[%08lx] ", pc);
+#elif defined(MIPS)
+ long pc;
+
+ if (upeek(tcp->pid, REG_EPC, &pc) < 0) {
+ tprintf ("[????????] ");
+ return;
+ }
+ tprintf("[%08lx] ", pc);
+#elif defined(SH)
+ long pc;
+
+ if (upeek(tcp->pid, 4*REG_PC, &pc) < 0) {
+ tprintf ("[????????] ");
+ return;
+ }
+ tprintf("[%08lx] ", pc);
+#elif defined(SH64)
+ long pc;
+
+ if (upeek(tcp->pid, REG_PC, &pc) < 0) {
+ tprintf ("[????????????????] ");
+ return;
+ }
+ tprintf("[%08lx] ", pc);
+#elif defined(ARM)
+ long pc;
+
+ if (upeek(tcp->pid, 4*15, &pc) < 0) {
+ PRINTBADPC;
+ return;
+ }
+ tprintf("[%08lx] ", pc);
+#endif /* !architecture */
+#endif /* LINUX */
+
+#ifdef SUNOS4
+ struct regs regs;
+
+ if (ptrace(PTRACE_GETREGS, tcp->pid, (char *) ®s, 0) < 0) {
+ perror("printcall: ptrace(PTRACE_GETREGS, ...)");
+ PRINTBADPC;
+ return;
+ }
+ tprintf("[%08x] ", regs.r_o7);
+#endif /* SUNOS4 */
+
+#ifdef SVR4
+ /* XXX */
+ PRINTBADPC;
+#endif
+
+#ifdef FREEBSD
+ struct reg regs;
+ pread(tcp->pfd_reg, ®s, sizeof(regs), 0);
+ tprintf("[%08x] ", regs.r_eip);
+#endif /* FREEBSD */
+}
+
+#ifndef USE_PROCFS
+
+#if defined LINUX
+
+#include <sys/syscall.h>
+#ifndef CLONE_PTRACE
+# define CLONE_PTRACE 0x00002000
+#endif
+#ifndef CLONE_STOPPED
+# define CLONE_STOPPED 0x02000000
+#endif
+
+#ifdef IA64
+
+/* We don't have fork()/vfork() syscalls on ia64 itself, but the ia32
+ subsystem has them for x86... */
+#define SYS_fork 2
+#define SYS_vfork 190
+
+typedef unsigned long *arg_setup_state;
+
+static int
+arg_setup(struct tcb *tcp, arg_setup_state *state)
+{
+ unsigned long *bsp, cfm, sof, sol;
+
+ if (ia32)
+ return 0;
+
+ if (upeek(tcp->pid, PT_AR_BSP, (long *) &bsp) < 0)
+ return -1;
+ if (upeek(tcp->pid, PT_CFM, (long *) &cfm) < 0)
+ return -1;
+
+ sof = (cfm >> 0) & 0x7f;
+ sol = (cfm >> 7) & 0x7f;
+ bsp = ia64_rse_skip_regs(bsp, -sof + sol);
+
+ *state = bsp;
+ return 0;
+}
+
+# define arg_finish_change(tcp, state) 0
+
+#ifdef SYS_fork
+static int
+get_arg0 (struct tcb *tcp, arg_setup_state *state, long *valp)
+{
+ int ret;
+
+ if (ia32)
+ ret = upeek (tcp->pid, PT_R11, valp);
+ else
+ ret = umoven (tcp,
+ (unsigned long) ia64_rse_skip_regs(*state, 0),
+ sizeof(long), (void *) valp);
+ return ret;
+}
+
+static int
+get_arg1 (struct tcb *tcp, arg_setup_state *state, long *valp)
+{
+ int ret;
+
+ if (ia32)
+ ret = upeek (tcp->pid, PT_R9, valp);
+ else
+ ret = umoven (tcp,
+ (unsigned long) ia64_rse_skip_regs(*state, 1),
+ sizeof(long), (void *) valp);
+ return ret;
+}
+#endif
+
+static int
+set_arg0 (struct tcb *tcp, arg_setup_state *state, long val)
+{
+ int req = PTRACE_POKEDATA;
+ void *ap;
+
+ if (ia32) {
+ ap = (void *) (intptr_t) PT_R11; /* r11 == EBX */
+ req = PTRACE_POKEUSER;
+ } else
+ ap = ia64_rse_skip_regs(*state, 0);
+ errno = 0;
+ ptrace(req, tcp->pid, ap, val);
+ return errno ? -1 : 0;
+}
+
+static int
+set_arg1 (struct tcb *tcp, arg_setup_state *state, long val)
+{
+ int req = PTRACE_POKEDATA;
+ void *ap;
+
+ if (ia32) {
+ ap = (void *) (intptr_t) PT_R9; /* r9 == ECX */
+ req = PTRACE_POKEUSER;
+ } else
+ ap = ia64_rse_skip_regs(*state, 1);
+ errno = 0;
+ ptrace(req, tcp->pid, ap, val);
+ return errno ? -1 : 0;
+}
+
+#elif defined (SPARC) || defined (SPARC64)
+
+typedef struct regs arg_setup_state;
+
+# define arg_setup(tcp, state) \
+ (ptrace (PTRACE_GETREGS, tcp->pid, (char *) (state), 0))
+# define arg_finish_change(tcp, state) \
+ (ptrace (PTRACE_SETREGS, tcp->pid, (char *) (state), 0))
+
+# define get_arg0(tcp, state, valp) (*(valp) = (state)->r_o0, 0)
+# define get_arg1(tcp, state, valp) (*(valp) = (state)->r_o1, 0)
+# define set_arg0(tcp, state, val) ((state)->r_o0 = (val), 0)
+# define set_arg1(tcp, state, val) ((state)->r_o1 = (val), 0)
+# define restore_arg0(tcp, state, val) 0
+
+#else
+
+# if defined S390 || defined S390X
+/* Note: this is only true for the `clone' system call, which handles
+ arguments specially. We could as well say that its first two arguments
+ are swapped relative to other architectures, but that would just be
+ another #ifdef in the calls. */
+# define arg0_offset PT_GPR3
+# define arg1_offset PT_ORIGGPR2
+# define restore_arg0(tcp, state, val) ((void) (state), 0)
+# define restore_arg1(tcp, state, val) ((void) (state), 0)
+# define arg0_index 1
+# define arg1_index 0
+# elif defined (ALPHA) || defined (MIPS)
+# define arg0_offset REG_A0
+# define arg1_offset (REG_A0+1)
+# elif defined (POWERPC)
+# define arg0_offset (sizeof(unsigned long)*PT_R3)
+# define arg1_offset (sizeof(unsigned long)*PT_R4)
+# define restore_arg0(tcp, state, val) ((void) (state), 0)
+# elif defined (HPPA)
+# define arg0_offset PT_GR26
+# define arg1_offset (PT_GR26-4)
+# elif defined (X86_64)
+# define arg0_offset ((long)(8*(current_personality ? RBX : RDI)))
+# define arg1_offset ((long)(8*(current_personality ? RCX : RSI)))
+# elif defined (SH)
+# define arg0_offset (4*(REG_REG0+4))
+# define arg1_offset (4*(REG_REG0+5))
+# elif defined (SH64)
+ /* ABI defines arg0 & 1 in r2 & r3 */
+# define arg0_offset (REG_OFFSET+16)
+# define arg1_offset (REG_OFFSET+24)
+# define restore_arg0(tcp, state, val) 0
+# else
+# define arg0_offset 0
+# define arg1_offset 4
+# if defined ARM
+# define restore_arg0(tcp, state, val) 0
+# endif
+# endif
+
+typedef int arg_setup_state;
+
+# define arg_setup(tcp, state) (0)
+# define arg_finish_change(tcp, state) 0
+# define get_arg0(tcp, cookie, valp) \
+ (upeek ((tcp)->pid, arg0_offset, (valp)))
+# define get_arg1(tcp, cookie, valp) \
+ (upeek ((tcp)->pid, arg1_offset, (valp)))
+
+static int
+set_arg0 (struct tcb *tcp, void *cookie, long val)
+{
+ return ptrace (PTRACE_POKEUSER, tcp->pid, (char*)arg0_offset, val);
+}
+
+static int
+set_arg1 (struct tcb *tcp, void *cookie, long val)
+{
+ return ptrace (PTRACE_POKEUSER, tcp->pid, (char*)arg1_offset, val);
+}
+
+#endif
+
+#ifndef restore_arg0
+# define restore_arg0(tcp, state, val) set_arg0((tcp), (state), (val))
+#endif
+#ifndef restore_arg1
+# define restore_arg1(tcp, state, val) set_arg1((tcp), (state), (val))
+#endif
+
+#ifndef arg0_index
+# define arg0_index 0
+# define arg1_index 1
+#endif
+
+int
+setbpt(tcp)
+struct tcb *tcp;
+{
+ extern int change_syscall(struct tcb *, int);
+ arg_setup_state state;
+
+ if (tcp->flags & TCB_BPTSET) {
+ fprintf(stderr, "PANIC: TCB already set in pid %u\n", tcp->pid);
+ return -1;
+ }
+
+ switch (known_scno(tcp)) {
+#ifdef SYS_vfork
+ case SYS_vfork:
+#endif
+#ifdef SYS_fork
+ case SYS_fork:
+#endif
+#if defined SYS_fork || defined 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, SYS_clone) < 0
+ || set_arg0 (tcp, &state, CLONE_PTRACE|SIGCHLD) < 0
+ || set_arg1 (tcp, &state, 0) < 0
+ || arg_finish_change (tcp, &state) < 0)
+ return -1;
+ tcp->u_arg[arg0_index] = CLONE_PTRACE|SIGCHLD;
+ tcp->u_arg[arg1_index] = 0;
+ tcp->flags |= TCB_BPTSET;
+ return 0;
+#endif
+
+ case SYS_clone:
+#ifdef SYS_clone2
+ case SYS_clone2:
+#endif
+ if ((tcp->u_arg[arg0_index] & CLONE_PTRACE) == 0
+ && (arg_setup (tcp, &state) < 0
+ || set_arg0 (tcp, &state,
+ tcp->u_arg[arg0_index] | CLONE_PTRACE) < 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];
+ return 0;
+
+ default:
+ fprintf(stderr, "PANIC: setbpt for syscall %ld on %u???\n",
+ tcp->scno, tcp->pid);
+ break;
+ }
+
+ return -1;
+}
+
+int
+clearbpt(tcp)
+struct tcb *tcp;
+{
+ arg_setup_state state;
+ if (arg_setup (tcp, &state) < 0
+ || restore_arg0 (tcp, &state, tcp->inst[0]) < 0
+ || restore_arg1 (tcp, &state, tcp->inst[1]) < 0
+ || arg_finish_change (tcp, &state))
+ return -1;
+ tcp->flags &= ~TCB_BPTSET;
+ return 0;
+}
+
+#else
+
+int
+setbpt(tcp)
+struct tcb *tcp;
+{
+
+#ifdef LINUX
+#if defined (SPARC) || defined (SPARC64)
+ /* We simply use the SunOS breakpoint code. */
+
+ struct regs regs;
+ unsigned long inst;
+#define LOOPA 0x30800000 /* ba,a 0 */
+
+ if (tcp->flags & TCB_BPTSET) {
+ fprintf(stderr, "PANIC: TCB already set in pid %u\n", tcp->pid);
+ return -1;
+ }
+ if (ptrace(PTRACE_GETREGS, tcp->pid, (char *)®s, 0) < 0) {
+ perror("setbpt: ptrace(PTRACE_GETREGS, ...)");
+ return -1;
+ }
+ tcp->baddr = regs.r_o7 + 8;
+ errno = 0;
+ tcp->inst[0] = ptrace(PTRACE_PEEKTEXT, tcp->pid, (char *)tcp->baddr, 0);
+ if(errno) {
+ perror("setbpt: ptrace(PTRACE_PEEKTEXT, ...)");
+ return -1;
+ }
+
+ /*
+ * XXX - BRUTAL MODE ON
+ * We cannot set a real BPT in the child, since it will not be
+ * traced at the moment it will reach the trap and would probably
+ * die with a core dump.
+ * Thus, we are force our way in by taking out two instructions
+ * and insert an eternal loop instead, in expectance of the SIGSTOP
+ * generated by out PTRACE_ATTACH.
+ * Of cause, if we evaporate ourselves in the middle of all this...
+ */
+ errno = 0;
+ inst = LOOPA;
+#if defined (SPARC64)
+ inst <<= 32;
+ inst |= (tcp->inst[0] & 0xffffffffUL);
+#endif
+ ptrace(PTRACE_POKETEXT, tcp->pid, (char *) tcp->baddr, inst);
+ if(errno) {
+ perror("setbpt: ptrace(PTRACE_POKETEXT, ...)");
+ return -1;
+ }
+ tcp->flags |= TCB_BPTSET;
+
+#else /* !SPARC && !SPARC64 */
+#ifdef IA64
+ if (ia32) {
+# define LOOP 0x0000feeb
+ if (tcp->flags & TCB_BPTSET) {
+ fprintf(stderr, "PANIC: bpt already set in pid %u\n",
+ tcp->pid);
+ return -1;
+ }
+ if (upeek(tcp->pid, PT_CR_IIP, &tcp->baddr) < 0)
+ return -1;
+ if (debug)
+ fprintf(stderr, "[%d] setting bpt at %lx\n",
+ tcp->pid, tcp->baddr);
+ tcp->inst[0] = ptrace(PTRACE_PEEKTEXT, tcp->pid,
+ (char *) tcp->baddr, 0);
+ if (errno) {
+ perror("setbpt: ptrace(PTRACE_PEEKTEXT, ...)");
+ return -1;
+ }
+ ptrace(PTRACE_POKETEXT, tcp->pid, (char *) tcp->baddr, LOOP);
+ if (errno) {
+ perror("setbpt: ptrace(PTRACE_POKETEXT, ...)");
+ return -1;
+ }
+ tcp->flags |= TCB_BPTSET;
+ } else {
+ /*
+ * Our strategy here is to replace the bundle that
+ * contained the clone() syscall with a bundle of the
+ * form:
+ *
+ * { 1: br 1b; br 1b; br 1b }
+ *
+ * This ensures that the newly forked child will loop
+ * endlessly until we've got a chance to attach to it.
+ */
+# define LOOP0 0x0000100000000017
+# define LOOP1 0x4000000000200000
+ unsigned long addr, ipsr;
+ pid_t pid;
+
+ pid = tcp->pid;
+ if (upeek(pid, PT_CR_IPSR, &ipsr) < 0)
+ return -1;
+ if (upeek(pid, PT_CR_IIP, &addr) < 0)
+ return -1;
+ /* store "ri" in low two bits */
+ tcp->baddr = addr | ((ipsr >> 41) & 0x3);
+
+ errno = 0;
+ tcp->inst[0] = ptrace(PTRACE_PEEKTEXT, pid, (char *) addr + 0,
+ 0);
+ tcp->inst[1] = ptrace(PTRACE_PEEKTEXT, pid, (char *) addr + 8,
+ 0);
+ if (errno) {
+ perror("setbpt: ptrace(PTRACE_PEEKTEXT, ...)");
+ return -1;
+ }
+
+ errno = 0;
+ ptrace(PTRACE_POKETEXT, pid, (char *) addr + 0, LOOP0);
+ ptrace(PTRACE_POKETEXT, pid, (char *) addr + 8, LOOP1);
+ if (errno) {
+ perror("setbpt: ptrace(PTRACE_POKETEXT, ...)");
+ return -1;
+ }
+ tcp->flags |= TCB_BPTSET;
+ }
+#else /* !IA64 */
+
+#if defined (I386) || defined(X86_64)
+#define LOOP 0x0000feeb
+#elif defined (M68K)
+#define LOOP 0x60fe0000
+#elif defined (ALPHA)
+#define LOOP 0xc3ffffff
+#elif defined (POWERPC)
+#define LOOP 0x48000000
+#elif defined(ARM)
+#define LOOP 0xEAFFFFFE
+#elif defined(MIPS)
+#define LOOP 0x1000ffff
+#elif defined(S390)
+#define LOOP 0xa7f40000 /* BRC 15,0 */
+#elif defined(S390X)
+#define LOOP 0xa7f4000000000000UL /* BRC 15,0 */
+#elif defined(HPPA)
+#define LOOP 0xe81f1ff7 /* b,l,n <loc>,r0 */
+#elif defined(SH)
+#ifdef __LITTLE_ENDIAN__
+#define LOOP 0x0000affe
+#else
+#define LOOP 0xfeaf0000
+#endif
+#else
+#error unknown architecture
+#endif
+
+ if (tcp->flags & TCB_BPTSET) {
+ fprintf(stderr, "PANIC: bpt already set in pid %u\n", tcp->pid);
+ return -1;
+ }
+#if defined (I386)
+ if (upeek(tcp->pid, 4*EIP, &tcp->baddr) < 0)
+ return -1;
+#elif defined (X86_64)
+ if (upeek(tcp->pid, 8*RIP, &tcp->baddr) < 0)
+ return -1;
+#elif defined (M68K)
+ if (upeek(tcp->pid, 4*PT_PC, &tcp->baddr) < 0)
+ return -1;
+#elif defined (ALPHA)
+ return -1;
+#elif defined (ARM)
+ return -1;
+#elif defined (MIPS)
+ return -1; /* FIXME: I do not know what i do - Flo */
+#elif defined (POWERPC)
+ if (upeek(tcp->pid, sizeof(unsigned long)*PT_NIP, &tcp->baddr) < 0)
+ return -1;
+#elif defined(S390) || defined(S390X)
+ if (upeek(tcp->pid,PT_PSWADDR, &tcp->baddr) < 0)
+ return -1;
+#elif defined(HPPA)
+ if (upeek(tcp->pid, PT_IAOQ0, &tcp->baddr) < 0)
+ return -1;
+ tcp->baddr &= ~0x03;
+#elif defined(SH)
+ if (upeek(tcp->pid, 4*REG_PC, &tcp->baddr) < 0)
+ return -1;
+#else
+#error unknown architecture
+#endif
+ if (debug)
+ fprintf(stderr, "[%d] setting bpt at %lx\n", tcp->pid, tcp->baddr);
+ tcp->inst[0] = ptrace(PTRACE_PEEKTEXT, tcp->pid, (char *) tcp->baddr, 0);
+ if (errno) {
+ perror("setbpt: ptrace(PTRACE_PEEKTEXT, ...)");
+ return -1;
+ }
+ ptrace(PTRACE_POKETEXT, tcp->pid, (char *) tcp->baddr, LOOP);
+ if (errno) {
+ perror("setbpt: ptrace(PTRACE_POKETEXT, ...)");
+ return -1;
+ }
+ tcp->flags |= TCB_BPTSET;
+
+#endif /* !IA64 */
+#endif /* SPARC || SPARC64 */
+#endif /* LINUX */
+
+#ifdef SUNOS4
+#ifdef SPARC /* This code is slightly sparc specific */
+
+ struct regs regs;
+#define BPT 0x91d02001 /* ta 1 */
+#define LOOP 0x10800000 /* ba 0 */
+#define LOOPA 0x30800000 /* ba,a 0 */
+#define NOP 0x01000000
+#if LOOPA
+ static int loopdeloop[1] = {LOOPA};
+#else
+ static int loopdeloop[2] = {LOOP, NOP};
+#endif
+
+ if (tcp->flags & TCB_BPTSET) {
+ fprintf(stderr, "PANIC: TCB already set in pid %u\n", tcp->pid);
+ return -1;
+ }
+ if (ptrace(PTRACE_GETREGS, tcp->pid, (char *)®s, 0) < 0) {
+ perror("setbpt: ptrace(PTRACE_GETREGS, ...)");
+ return -1;
+ }
+ tcp->baddr = regs.r_o7 + 8;
+ if (ptrace(PTRACE_READTEXT, tcp->pid, (char *)tcp->baddr,
+ sizeof tcp->inst, (char *)tcp->inst) < 0) {
+ perror("setbpt: ptrace(PTRACE_READTEXT, ...)");
+ return -1;
+ }
+
+ /*
+ * XXX - BRUTAL MODE ON
+ * We cannot set a real BPT in the child, since it will not be
+ * traced at the moment it will reach the trap and would probably
+ * die with a core dump.
+ * Thus, we are force our way in by taking out two instructions
+ * and insert an eternal loop in stead, in expectance of the SIGSTOP
+ * generated by out PTRACE_ATTACH.
+ * Of cause, if we evaporate ourselves in the middle of all this...
+ */
+ if (ptrace(PTRACE_WRITETEXT, tcp->pid, (char *) tcp->baddr,
+ sizeof loopdeloop, (char *) loopdeloop) < 0) {
+ perror("setbpt: ptrace(PTRACE_WRITETEXT, ...)");
+ return -1;
+ }
+ tcp->flags |= TCB_BPTSET;
+
+#endif /* SPARC */
+#endif /* SUNOS4 */
+
+ return 0;
+}
+
+int
+clearbpt(tcp)
+struct tcb *tcp;
+{
+
+#ifdef LINUX
+#if defined(I386) || defined(X86_64)
+ long eip;
+#elif defined(POWERPC)
+ long pc;
+#elif defined(M68K)
+ long pc;
+#elif defined(ALPHA)
+ long pc;
+#elif defined(HPPA)
+ long iaoq;
+#elif defined(SH)
+ long pc;
+#endif /* architecture */
+
+#if defined (SPARC) || defined (SPARC64)
+ /* Again, we borrow the SunOS breakpoint code. */
+ if (!(tcp->flags & TCB_BPTSET)) {
+ fprintf(stderr, "PANIC: TCB not set in pid %u\n", tcp->pid);
+ return -1;
+ }
+ errno = 0;
+ ptrace(PTRACE_POKETEXT, tcp->pid, (char *) tcp->baddr, tcp->inst[0]);
+ if(errno) {
+ perror("clearbtp: ptrace(PTRACE_POKETEXT, ...)");
+ return -1;
+ }
+ tcp->flags &= ~TCB_BPTSET;
+#elif defined(IA64)
+ if (ia32) {
+ unsigned long addr;
+
+ if (debug)
+ fprintf(stderr, "[%d] clearing bpt\n", tcp->pid);
+ if (!(tcp->flags & TCB_BPTSET)) {
+ fprintf(stderr, "PANIC: TCB not set in pid %u\n", tcp->pid);
+ return -1;
+ }
+ errno = 0;
+ ptrace(PTRACE_POKETEXT, tcp->pid, (char *) tcp->baddr, tcp->inst[0]);
+ if (errno) {
+ perror("clearbtp: ptrace(PTRACE_POKETEXT, ...)");
+ return -1;
+ }
+ tcp->flags &= ~TCB_BPTSET;
+
+ if (upeek(tcp->pid, PT_CR_IIP, &addr) < 0)
+ return -1;
+ if (addr != tcp->baddr) {
+ /* The breakpoint has not been reached yet. */
+ if (debug)
+ fprintf(stderr,
+ "NOTE: PC not at bpt (pc %#lx baddr %#lx)\n",
+ addr, tcp->baddr);
+ return 0;
+ }
+ } else {
+ unsigned long addr, ipsr;
+ pid_t pid;
+
+ pid = tcp->pid;
+
+ if (upeek(pid, PT_CR_IPSR, &ipsr) < 0)
+ return -1;
+ if (upeek(pid, PT_CR_IIP, &addr) < 0)
+ return -1;
+
+ /* restore original bundle: */
+ errno = 0;
+ ptrace(PTRACE_POKETEXT, pid, (char *) addr + 0, tcp->inst[0]);
+ ptrace(PTRACE_POKETEXT, pid, (char *) addr + 8, tcp->inst[1]);
+ if (errno) {
+ perror("clearbpt: ptrace(PTRACE_POKETEXT, ...)");
+ return -1;
+ }
+
+ /* restore original "ri" in ipsr: */
+ ipsr = (ipsr & ~(0x3ul << 41)) | ((tcp->baddr & 0x3) << 41);
+ errno = 0;
+ ptrace(PTRACE_POKEUSER, pid, (char *) PT_CR_IPSR, ipsr);
+ if (errno) {
+ perror("clrbpt: ptrace(PTRACE_POKEUSER, ...)");
+ return -1;
+ }
+
+ tcp->flags &= ~TCB_BPTSET;
+
+ if (addr != (tcp->baddr & ~0x3)) {
+ /* the breakpoint has not been reached yet. */
+ if (debug)
+ fprintf(stderr, "NOTE: PC not at bpt (pc %#lx baddr %#lx)\n",
+ addr, tcp->baddr);
+ return 0;
+ }
+ }
+#else /* !IA64 && !SPARC && !SPARC64 */
+
+ if (debug)
+ fprintf(stderr, "[%d] clearing bpt\n", tcp->pid);
+ if (!(tcp->flags & TCB_BPTSET)) {
+ fprintf(stderr, "PANIC: TCB not set in pid %u\n", tcp->pid);
+ return -1;
+ }
+ errno = 0;
+ ptrace(PTRACE_POKETEXT, tcp->pid, (char *) tcp->baddr, tcp->inst[0]);
+ if (errno) {
+ perror("clearbtp: ptrace(PTRACE_POKETEXT, ...)");
+ return -1;
+ }
+ tcp->flags &= ~TCB_BPTSET;
+
+#ifdef I386
+ if (upeek(tcp->pid, 4*EIP, &eip) < 0)
+ return -1;
+ if (eip != tcp->baddr) {
+ /* The breakpoint has not been reached yet. */
+ if (debug)
+ fprintf(stderr,
+ "NOTE: PC not at bpt (pc %#lx baddr %#lx)\n",
+ eip, tcp->baddr);
+ return 0;
+ }
+#elif defined(X86_64)
+ if (upeek(tcp->pid, 8*RIP, &eip) < 0)
+ return -1;
+ if (eip != tcp->baddr) {
+ /* The breakpoint has not been reached yet. */
+ if (debug)
+ fprintf(stderr,
+ "NOTE: PC not at bpt (pc %#lx baddr %#lx)\n",
+ eip, tcp->baddr);
+ return 0;
+ }
+#elif defined(POWERPC)
+ if (upeek(tcp->pid, sizeof(unsigned long)*PT_NIP, &pc) < 0)
+ return -1;
+ if (pc != tcp->baddr) {
+ /* The breakpoint has not been reached yet. */
+ if (debug)
+ fprintf(stderr, "NOTE: PC not at bpt (pc %#lx baddr %#lx)\n",
+ pc, tcp->baddr);
+ return 0;
+ }
+#elif defined(M68K)
+ if (upeek(tcp->pid, 4*PT_PC, &pc) < 0)
+ return -1;
+ if (pc != tcp->baddr) {
+ /* The breakpoint has not been reached yet. */
+ if (debug)
+ fprintf(stderr, "NOTE: PC not at bpt (pc %#lx baddr %#lx)\n",
+ pc, tcp->baddr);
+ return 0;
+ }
+#elif defined(ALPHA)
+ if (upeek(tcp->pid, REG_PC, &pc) < 0)
+ return -1;
+ if (pc != tcp->baddr) {
+ /* The breakpoint has not been reached yet. */
+ if (debug)
+ fprintf(stderr, "NOTE: PC not at bpt (pc %#lx baddr %#lx)\n",
+ pc, tcp->baddr);
+ return 0;
+ }
+#elif defined(HPPA)
+ if (upeek(tcp->pid, PT_IAOQ0, &iaoq) < 0)
+ return -1;
+ iaoq &= ~0x03;
+ if (iaoq != tcp->baddr && iaoq != tcp->baddr + 4) {
+ /* The breakpoint has not been reached yet. */
+ if (debug)
+ fprintf(stderr, "NOTE: PC not at bpt (iaoq %#lx baddr %#lx)\n",
+ iaoq, tcp->baddr);
+ return 0;
+ }
+ iaoq = tcp->baddr | 3;
+ /* We should be pointing at a 'ldi -1000,r1' in glibc, so it is
+ * safe to set both IAOQ0 and IAOQ1 to that so the PSW N bit
+ * has no significant effect.
+ */
+ ptrace(PTRACE_POKEUSER, tcp->pid, (void *)PT_IAOQ0, iaoq);
+ ptrace(PTRACE_POKEUSER, tcp->pid, (void *)PT_IAOQ1, iaoq);
+#elif defined(SH)
+ if (upeek(tcp->pid, 4*REG_PC, &pc) < 0)
+ return -1;
+ if (pc != tcp->baddr) {
+ /* The breakpoint has not been reached yet. */
+ if (debug)
+ fprintf(stderr, "NOTE: PC not at bpt (pc %#lx baddr %#lx)\n",
+ pc, tcp->baddr);
+ return 0;
+ }
+
+#endif /* arch */
+#endif /* !SPARC && !SPARC64 && !IA64 */
+#endif /* LINUX */
+
+#ifdef SUNOS4
+#ifdef SPARC
+
+#if !LOOPA
+ struct regs regs;
+#endif
+
+ if (!(tcp->flags & TCB_BPTSET)) {
+ fprintf(stderr, "PANIC: TCB not set in pid %u\n", tcp->pid);
+ return -1;
+ }
+ if (ptrace(PTRACE_WRITETEXT, tcp->pid, (char *) tcp->baddr,
+ sizeof tcp->inst, (char *) tcp->inst) < 0) {
+ perror("clearbtp: ptrace(PTRACE_WRITETEXT, ...)");
+ return -1;
+ }
+ tcp->flags &= ~TCB_BPTSET;
+
+#if !LOOPA
+ /*
+ * Since we don't have a single instruction breakpoint, we may have
+ * to adjust the program counter after removing the our `breakpoint'.
+ */
+ if (ptrace(PTRACE_GETREGS, tcp->pid, (char *)®s, 0) < 0) {
+ perror("clearbpt: ptrace(PTRACE_GETREGS, ...)");
+ return -1;
+ }
+ if ((regs.r_pc < tcp->baddr) ||
+ (regs.r_pc > tcp->baddr + 4)) {
+ /* The breakpoint has not been reached yet */
+ if (debug)
+ fprintf(stderr,
+ "NOTE: PC not at bpt (pc %#x baddr %#x)\n",
+ regs.r_pc, tcp->parent->baddr);
+ return 0;
+ }
+ if (regs.r_pc != tcp->baddr)
+ if (debug)
+ fprintf(stderr, "NOTE: PC adjusted (%#x -> %#x\n",
+ regs.r_pc, tcp->baddr);
+
+ regs.r_pc = tcp->baddr;
+ if (ptrace(PTRACE_SETREGS, tcp->pid, (char *)®s, 0) < 0) {
+ perror("clearbpt: ptrace(PTRACE_SETREGS, ...)");
+ return -1;
+ }
+#endif /* LOOPA */
+#endif /* SPARC */
+#endif /* SUNOS4 */
+
+ return 0;
+}
+
+#endif
+
+#endif /* !USE_PROCFS */
+
+#ifdef SUNOS4
+
+static int
+getex(pid, hdr)
+int pid;
+struct exec *hdr;
+{
+ int n;
+
+ for (n = 0; n < sizeof *hdr; n += 4) {
+ long res;
+ if (upeek(pid, uoff(u_exdata) + n, &res) < 0)
+ return -1;
+ memcpy(((char *) hdr) + n, &res, 4);
+ }
+ if (debug) {
+ fprintf(stderr, "[struct exec: magic: %o version %u Mach %o\n",
+ hdr->a_magic, hdr->a_toolversion, hdr->a_machtype);
+ fprintf(stderr, "Text %lu Data %lu Bss %lu Syms %lu Entry %#lx]\n",
+ hdr->a_text, hdr->a_data, hdr->a_bss, hdr->a_syms, hdr->a_entry);
+ }
+ return 0;
+}
+
+int
+fixvfork(tcp)
+struct tcb *tcp;
+{
+ int pid = tcp->pid;
+ /*
+ * Change `vfork' in a freshly exec'ed dynamically linked
+ * executable's (internal) symbol table to plain old `fork'
+ */
+
+ struct exec hdr;
+ struct link_dynamic dyn;
+ struct link_dynamic_2 ld;
+ char *strtab, *cp;
+
+ if (getex(pid, &hdr) < 0)
+ return -1;
+ if (!hdr.a_dynamic)
+ return -1;
+
+ if (umove(tcp, (int) N_DATADDR(hdr), &dyn) < 0) {
+ fprintf(stderr, "Cannot read DYNAMIC\n");
+ return -1;
+ }
+ if (umove(tcp, (int) dyn.ld_un.ld_2, &ld) < 0) {
+ fprintf(stderr, "Cannot read link_dynamic_2\n");
+ return -1;
+ }
+ if ((strtab = malloc((unsigned)ld.ld_symb_size)) == NULL) {
+ fprintf(stderr, "out of memory\n");
+ return -1;
+ }
+ if (umoven(tcp, (int)ld.ld_symbols+(int)N_TXTADDR(hdr),
+ (int)ld.ld_symb_size, strtab) < 0)
+ goto err;
+
+#if 0
+ for (cp = strtab; cp < strtab + ld.ld_symb_size; ) {
+ fprintf(stderr, "[symbol: %s]\n", cp);
+ cp += strlen(cp)+1;
+ }
+ return 0;
+#endif
+ for (cp = strtab; cp < strtab + ld.ld_symb_size; ) {
+ if (strcmp(cp, "_vfork") == 0) {
+ if (debug)
+ fprintf(stderr, "fixvfork: FOUND _vfork\n");
+ strcpy(cp, "_fork");
+ break;
+ }
+ cp += strlen(cp)+1;
+ }
+ if (cp < strtab + ld.ld_symb_size)
+ /*
+ * Write entire symbol table back to avoid
+ * memory alignment bugs in ptrace
+ */
+ if (tload(pid, (int)ld.ld_symbols+(int)N_TXTADDR(hdr),
+ (int)ld.ld_symb_size, strtab) < 0)
+ goto err;
+
+ free(strtab);
+ return 0;
+
+err:
+ free(strtab);
+ return -1;
+}
+
+#endif /* SUNOS4 */